Ограничение оперативной памяти

Максимальный объем оперативной памяти, доступный компьютеру

Максимальный объем оперативной памяти (ОЗУ), установленной в любой компьютерной системе, ограничен аппаратными, программными и экономическими факторами. Аппаратное обеспечение может иметь ограниченное количество бит адресной шины , ограниченное корпусом процессора или конструкцией системы. Часть адресного пространства может быть разделена между ОЗУ, периферийными устройствами и постоянной памятью. В случае микроконтроллера без внешней ОЗУ размер массива ОЗУ ограничен размером кристалла интегральной схемы. В пакетированной системе может быть предоставлено только достаточное количество ОЗУ для требуемых функций системы, без возможности добавления памяти после изготовления.

Могут присутствовать программные ограничения на используемую физическую RAM. Операционная система может быть разработана только для выделения определенного объема памяти, с верхними адресными битами, зарезервированными для указания обозначений, таких как режим ввода-вывода или супервизора или другой информации о безопасности. Или операционная система может полагаться на внутренние структуры данных с фиксированными ограничениями для адресуемой памяти.

Для персональных компьютеров массового рынка производитель может не получить финансовой выгоды от предоставления большего количества гнезд памяти, адресных линий или другого оборудования, чем необходимо для запуска программного обеспечения массового рынка. Когда устройства памяти были относительно дорогими по сравнению с процессором, часто оперативная память, поставляемая с системой, была намного меньше адресной емкости оборудования из-за стоимости.

Иногда ограничения RAM можно преодолеть с помощью специальных методов. Переключение банков позволяет переключать блоки RAM-памяти в адресное пространство процессора, когда это необходимо, под управлением программы. Операционные системы обычно управляют запущенными программами с помощью виртуальной памяти , где отдельные программы работают так, как будто у них есть доступ к большому пространству памяти, которое имитируется путем обмена областями памяти с дисковым хранилищем.

Ограничения адресации ЦП

По соображениям производительности все параллельные адресные линии адресной шины должны быть действительными одновременно, в противном случае доступ к памяти будет задержан, а производительность серьезно снижена. Корпуса интегральных схем могут иметь ограничение на количество выводов, доступных для обеспечения шины памяти . Могут быть разработаны различные версии архитектуры ЦП в корпусах ИС разного размера, компромисс между уменьшенным размером корпуса и уменьшенным количеством выводов и адресным пространством. Компромисс может быть сделан между адресными выводами и другими функциями, ограничивая физически доступную архитектуре память, даже если она изначально имеет большую емкость. С другой стороны, сегментированные или банковские коммутационные конструкции обеспечивают больше адресного пространства памяти, чем доступно во внутреннем регистре адреса памяти.

Поскольку память на интегральных схемах становилась менее затратной, появилась возможность проектировать системы с все большим и большим объемом физической памяти.

Менее 16 адресных контактов

Микроконтроллерные устройства со встроенным вводом/выводом и памятью на кристалле иногда не имели или имели небольшую адресную шину для внешних устройств. Например, семейство микроконтроллеров, доступное с адресным пространством 2 килобайта, могло иметь вариант, который выводил 11-строчную адресную шину для внешнего ПЗУ; это можно было сделать, переназначив выводы ввода/вывода в качестве выводов адресной шины. Некоторые универсальные процессоры со встроенным ПЗУ разделяли 16-битное адресное пространство между внутренним ПЗУ и внешней 15-битной шиной памяти.

Некоторые микропроцессоры имели менее 16 адресных контактов: например, MOS Technology 6507 (версия 6502 с уменьшенным количеством контактов) использовалась в Atari 2600 и была ограничена 13-линейной адресной шиной.

16 адресных бит, 16 адресных выводов

Большинство 8-битных микропроцессоров общего назначения имеют 16-битные адресные пространства и генерируют 16 адресных линий. Примерами являются Intel 8080 , Intel 8085 , Zilog Z80 , Motorola 6800 , Microchip PIC18 и многие другие. Эти процессоры имеют 8-битные ЦП с 8-битными данными и 16-битной адресацией. Память на этих ЦП адресуется на уровне байтов. Это приводит к адресуемому пределу памяти 2 16 × 1 байт = 65 536 байт или 64 килобайта.

16 адресных бит, 20 адресных выводов: 8086, 8088, 80186 и 80188

Intel 8086 и производные, такие как 8088 , 80186 и 80188, составляют основу популярной платформы x86 и являются первым уровнем архитектуры IA16. Это были 16-битные ЦП с 20-битной адресацией. Память на этих ЦП адресуется на уровне байтов. Эти процессоры могут адресовать 2 20 байтов (1 мегабайт).

16-битные адреса, 24 адресных контакта: 80286

Процессор Intel 80286 использовал 24-битную схему адресации. Каждая ячейка памяти имела байтовую адресацию. Это приводило к общему адресуемому пространству 2 24 × 1 байт = 16 777 216 байт или 16 мегабайт. 286 и более поздние модели также могли работать в реальном режиме , что накладывало ограничения на адресацию процессора 8086. 286 поддерживал виртуальную память.

32-битные адреса, 24 адресных контакта

Intel 80386SX был экономичной версией 386DX. Он имел 24-битную схему адресации, в отличие от 32-битной в 386DX. Как и 286, 386SX мог адресовать только до 16 мегабайт памяти.

Motorola 68000 имел 24-битное адресное пространство, что позволяло ему получать доступ к 16 мегабайтам памяти.

32-битные адреса, 32 адресных контакта

386DX имел 32-битную адресацию, что позволяло адресовать до 4 гигабайт (4096 мегабайт) памяти.

Motorola 68020 , выпущенный в 1984 году, имел 32-битное адресное пространство, что давало ему максимальный адресуемый предел памяти в 4 ГБ. Все последующие чипы серии Motorola 68000 унаследовали этот предел.

32-битные адреса, 36 адресных контактов: Pentium Pro (он же P6)

Pentium Pro и все Pentium 4 имеют 36-битную адресацию, что обеспечивает общий объем адресуемого пространства в 64 гигабайта, но для этого требуется, чтобы операционная система поддерживала расширение физического адреса .

64-битные вычисления

Современные 64-битные процессоры, такие как разработки ARM, Intel или AMD, как правило, ограничены поддержкой менее 64 бит для адресов RAM. Они обычно реализуют от 40 до 52 физических адресных бит [1] [2] [3] [4] (поддержка от 1 ТБ до 4 ПБ RAM). Как и предыдущие архитектуры, описанные здесь, некоторые из них разработаны для поддержки более высоких пределов адресации RAM по мере совершенствования технологий. Как в Intel64, так и в AMD64 предел физического адреса в 52 бита определен в спецификациях архитектуры (4 ПБ).

Ограничения оперативной памяти операционной системы

Ограничение адресации CP/M и 8080

Первой крупной операционной системой для микрокомпьютеров была CP/M . Эта операционная система была совместима с микрокомпьютерами типа Altair 8800 , созданными Гэри Килдаллом в сочетании с языком программирования PL/M , и была лицензирована для производителей компьютеров компанией Килдалла Digital Research после того, как она была отклонена Intel . Intel 8080 , используемый этими компьютерами, был 8-битным процессором с 16-битным адресным пространством, что позволяло ему получать доступ к 64 КБ памяти; из-за этого исполняемые файлы .COM, используемые с CP/M, имеют максимальный размер 64 КБ, как и те, которые используются операционными системами DOS для 16-битных микропроцессоров.

Ограничение адресации IBM PC и 8088

В оригинальном IBM PC базовый предел ОЗУ составлял 640 КБ. Это сделано для того, чтобы обеспечить аппаратное адресное пространство в верхних 384 КБ ( верхняя область памяти (UMA)) общего адресуемого пространства памяти в 1024 КБ (1 МБ). Способы преодоления барьера в 640 КБ , как его стали называть, включали использование специальных режимов адресации, доступных в процессорах 286 и более поздних x86. Общее адресное пространство в 1 МБ было результатом ограничения 20-битного адресного пространства, наложенного на ЦП 8088.

Используя пространство буфера цветного видео, некоторые сторонние утилиты могли бы добавлять память в верхней части области обычной памяти 640k , чтобы расширить память до базового адреса, используемого аппаратными адаптерами. Это могло бы в конечном итоге заполнить ОЗУ до базового адреса MDA.

Аппаратные расширения позволяли получить доступ к большему объему памяти, чем мог адресовать процессор 8086 через страничную память. Такая память была известна как расширенная память . Фактический стандарт отрасли был разработан консорциумом LIM, состоящим из Lotus, Intel и Microsoft. Этот стандарт назывался Expanded Memory Specification (EMS). Страницы памяти из аппаратного обеспечения расширенной памяти были доступны через адресное окно, помещенное в свободную область в пространстве UMA, и путем обмена его на другие страницы при необходимости доступа к другой памяти. EMS поддерживал 16 МБ пространства.

Используя особенность архитектуры ЦП 286, область верхней памяти (HMA) была доступна как первые 64 КБ сверх предела в 1 МБ 20-битной адресации в архитектуре x86.

Используя возможности адресации 24-битной памяти архитектуры ЦП 286, было доступно общее адресное пространство 16 МБ. Память выше предела в 1 МБ называлась расширенной памятью . Однако область между 640 КБ и 1 МБ была зарезервирована для аппаратной адресации в совместимых с IBM PC. DOS и другие программы реального режима, ограниченные 20-битными адресами, могли получить доступ к этому пространству только через эмуляцию EMS на расширенной памяти или аналог EMS для расширенной памяти. Microsoft разработала стандарт, известный как Extended Memory Specification (XMS). Доступ к памяти выше HMA требовал использования защищенного режима ЦП 286.

С развитием архитектуры ЦП i386 адресное пространство было переведено на 32-битную адресацию и ограничение в 4 ГБ. С этим ЦП доступ к областям памяти размером 16 МБ был доступен программам DOS, которые использовали расширители DOS , такие как DOS/4GW, MiniGW/16, MiniGW и другие. Первоначально был разработан фактический промышленный стандарт памяти для взаимодействия, известный как VCPI . Позже его вытеснил стандарт Microsoft, известный как DPMI . Эти стандарты позволяли осуществлять прямой доступ к пространству размером 16 МБ вместо страничной схемы, используемой EMS и XMS.

Ограничение ОЗУ для 16-битной ОС/2

16-битная OS/2 была ограничена 15 МБ из-за резервного пространства, заложенного в операционную систему. Она резервировала верхний 1 МБ из 16 МБ 24-битного адресного пространства для не-памяти (от 16 МБ до 15 МБ).

Ограничение ОЗУ 32-бит x86

В режимах non-PAE 32-разрядных процессоров x86 используемый объем оперативной памяти может быть ограничен менее чем 4 ГБ. Ограничения на память и адресное пространство различаются в зависимости от платформы и операционной системы. Ограничения на физическую память для 32-разрядных платформ также зависят от наличия и использования Physical Address Extension (PAE), что позволяет 32-разрядным системам использовать более 4 ГБ физической памяти.

Системы PAE и 64-разрядные системы могут адресовать все адресное пространство процессора x86.

Смотрите также

Ссылки

  1. ^ "Руководство программиста AMD64, том 2: Системное программирование" (PDF) . Advanced Micro Devices. Декабрь 2016 г. стр. 120.
  2. ^ «Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32, том 3A: Руководство по системному программированию, часть 1» (PDF) . Intel. Сентябрь 2016 г. стр. 4-2.
  3. ^ «Справочное руководство по архитектуре ARM ARMv8, для профиля архитектуры ARMv8-A». стр. D4-1723, D4-1724, D4-1731.
  4. ^ https://developer.arm.com/documentation/den0001/c/ Принципы карт памяти ARM
  • Статья MSDN: Ограничения памяти для выпусков Windows
  • Системная память, указанная в диалоговом окне «Сведения о системе» в Windows Vista, меньше ожидаемого, если установлено 4 ГБ ОЗУ — поясняет проблему
  • Windows Vista SP1 включает отчет об установленной системной памяти (ОЗУ) — сведения об ограничении ОЗУ
Retrieved from "https://en.wikipedia.org/w/index.php?title=RAM_limit&oldid=1234540490"