stringtranslate.com

Смена банка

Гипотетическая карта памяти с переключением банков для процессора, который может адресовать только 64 КБ. На этой схеме показано 200 КБ памяти, из которых только 64 КБ могут быть доступны процессору в любой момент времени. Операционная система должна управлять операцией переключения банков, чтобы гарантировать продолжение выполнения программы, когда часть памяти недоступна процессору.

Переключение банков — это метод, используемый в компьютерном проектировании для увеличения объема полезной памяти сверх объема, непосредственно адресуемого инструкциями процессора [1] . Его можно использовать для различной настройки системы в разное время; например, ПЗУ, необходимое для запуска системы с дискеты, можно отключить, когда оно больше не нужно. В системах видеоигр переключение банков позволило разрабатывать более крупные игры для существующих консолей.

Переключение банков зародилось в миникомпьютерных системах. [2] Многие современные микроконтроллеры и микропроцессоры используют переключение банков для управления оперативной памятью , энергонезависимой памятью, устройствами ввода-вывода и регистрами управления системой в небольших встроенных системах . Этот метод был распространен в 8-битных микрокомпьютерных системах. Переключение банков также может использоваться для обхода ограничений ширины адресной шины, когда некоторые аппаратные ограничения препятствуют прямому добавлению большего количества адресных строк, а также для обхода ограничений в ISA , где генерируемые адреса уже ширины адресной шины. Некоторые микропроцессоры, ориентированные на управление, используют метод переключения банков для доступа к внутренним регистрам ввода-вывода и управления, что ограничивает количество битов адреса регистра, которые должны использоваться в каждой инструкции.

В отличие от управления памятью посредством подкачки , обмен данными с устройством хранения данных, таким как дисковое хранилище, не осуществляется . Данные остаются в режиме постоянного хранения в области памяти, которая в данный момент недоступна процессору (хотя может быть доступна видеодисплею, контроллеру DMA или другим подсистемам компьютера) без использования специальных префиксных инструкций.

Техника

Переключение банков можно рассматривать как способ расширения адресного пространства инструкций процессора за счет некоторого регистра. Примеры:

Часто одна база данных охватывает несколько банков, и возникает необходимость перемещения записей между банками (как при сортировке). Если бы одновременно был доступен только один банк, то пришлось бы перемещать каждый байт дважды: сначала в общую область памяти, осуществлять переключение банка на банк назначения, а затем собственно перемещать байт в банк назначения. Если в компьютерной архитектуре имеется механизм DMA или второй ЦП и ограничения доступа к банкам различаются, следует использовать любую подсистему, которая может передавать данные напрямую между банками.

В отличие от схемы виртуальной памяти , переключение банков должно явно управляться работающей программой или операционной системой; аппаратное обеспечение процессора не может автоматически обнаружить, что требуются данные, которые в данный момент не сопоставлены с активным банком. Прикладная программа должна отслеживать, в каком банке памяти хранится необходимая часть данных, а затем вызывать процедуру переключения банков, чтобы сделать этот банк активным. [6] Однако переключение банков позволяет получить доступ к данным гораздо быстрее, чем, например, извлечение данных из дискового хранилища.

Использование микрокомпьютера

Переключатель выбора банка на плате памяти Cromemco использовался для отображения памяти в один или несколько из восьми отдельных банков по 64 КБ. [7]

Процессоры с 16-битной адресацией ( 8080 , Z80 , 6502 , 6809 и т. д.), обычно используемые в ранних игровых консолях и домашних компьютерах, могут напрямую адресовать только 64  КБ . Системы с большим объемом памяти должны были разделить адресное пространство на несколько блоков, которые можно было динамически отображать в части большего адресного пространства. Переключение банков использовалось для достижения большего адресного пространства за счет организации памяти в отдельные банки размером до 64 КБ каждый. [8] Блоки разных размеров включались и выводились через регистры выбора банка или аналогичные механизмы. Cromemco была первым производителем микрокомпьютеров, который использовал переключение банков, поддерживая в своих системах 8 банков по 64 КБ. [9]

При использовании переключения банков требовалась некоторая осторожность, чтобы не повредить обработку вызовов подпрограмм , прерываний , машинного стека и так далее. Хотя содержимое памяти, временно отключенное от ЦП, было недоступно для процессора, оно могло использоваться другим оборудованием, таким как видеодисплей, DMA , устройства ввода-вывода и т. д. CP/M-80 3.0, выпущенный в 1983 году, и TRS-80 на базе Z80, модели 4 и Model II, поддерживали переключение банков, что позволяло использовать более 64 КБ памяти, к которой мог обращаться процессор 8080 или Z80. [10]

Переключение банков позволило добавить дополнительную память и функции в конструкцию компьютера без затрат и несовместимости, связанных с переключением на процессор с более широкой адресной шиной . Например, в C64 использовалось переключение банков, чтобы обеспечить полные 64 КБ ОЗУ, а также обеспечивать ввод -вывод с отображением в ПЗУ и памяти . Atari 130XE могла предоставить двум своим процессорам (6502 и ANTIC ) доступ к отдельным банкам оперативной памяти, что позволяло программистам создавать большие игровые поля и другие графические объекты, не используя память, видимую для процессора.

Микроконтроллеры

Микроконтроллеры (микропроцессоры со значительным встроенным аппаратным обеспечением ввода/вывода) могут использовать переключение банков, например, для доступа к нескольким регистрам конфигурации или встроенной памяти чтения/записи. Примером является микроконтроллер PIC . Это позволяет коротким командным словам экономить место во время обычного выполнения программы за счет дополнительных инструкций, необходимых для доступа к относительно редко используемым регистрам, например тем, которые используются для конфигурации системы при запуске.

IBM-ПК

Расширенная память в IBM PC

В 1985 году компании Lotus и Intel представили спецификацию расширенной памяти (EMS) 3.0 для использования в IBM PC-совместимых компьютерах под управлением MS-DOS . Microsoft присоединилась к версиям 3.2 в 1986 году и 4.0 в 1987 году, и спецификация стала известна как Lotus-Intel-Microsoft EMS или LIM EMS. [6] [11] [12] Это форма метода переключения банков, которая позволяет использовать более 640 КБ ОЗУ, определенное исходной архитектурой IBM PC, позволяя ему появляться по частям в «окне» размером 64 КБ, расположенном в Верхнем Область памяти . [13] 64 КБ разделены на четыре «страницы» по 16 КБ, каждую из которых можно переключать независимо. В некоторых компьютерных играх это использовалось, и хотя EMS устарела, в настоящее время эта функция эмулируется более поздними операционными системами Microsoft Windows для обеспечения обратной совместимости с этими программами.

Более поздняя спецификация расширенной памяти (XMS), также теперь устаревшая, представляет собой стандарт, в принципе, для моделирования переключения банков для памяти объемом более 1 МБ (называемой « расширенной памятью »), которая не адресуется напрямую в реальном режиме процессоров x86 в который работает под управлением MS-DOS. XMS позволяет копировать расширенную память в любое место в обычной памяти, поэтому границы «банков» не фиксированы, но во всех остальных отношениях это работает подобно переключению банков в EMS с точки зрения программы, которая ее использует. Более поздние версии MS-DOS (начиная с версии 5.0) включали драйвер EMM386, который имитирует память EMS с помощью XMS, позволяя программам использовать расширенную память, даже если они были написаны для EMS. Microsoft Windows также эмулирует XMS для тех программ, которые этого требуют.

Игровые консоли

Переключение банков также использовалось в некоторых игровых консолях . [14] Например, Atari 2600 могла адресовать только 4 КБ ПЗУ, поэтому более поздние игровые картриджи 2600 содержали собственное оборудование переключения банков, чтобы разрешить использование большего ПЗУ и, таким образом, обеспечить возможность создания более сложных игр (за счет большего количества программного кода). и, что не менее важно, большие объемы игровых данных, таких как графика и различные этапы игры). [15] Nintendo Entertainment System содержала модифицированную версию 6502 , но ее картриджи иногда содержали мегабит или более ПЗУ, адресация которого осуществлялась посредством переключения банков, называемого контроллером мультипамяти . В картриджах Game Boy использовался чип под названием MBC (контроллер банка памяти), который предлагал не только переключение банков ПЗУ, но и переключение банков картриджей SRAM и даже доступ к таким периферийным устройствам, как инфракрасные каналы связи или вибрирующие двигатели. Переключение банков все еще использовалось в более поздних игровых системах. Некоторые картриджи Sega Mega Drive , такие как Super Street Fighter II, имели размер более 4 МБ и требовали использования этого метода (4 МБ — максимальный размер адреса). Контроллер GP2X от Gamepark Holdings использует переключение банков для управления начальным адресом (или смещением памяти) для второго процессора.

Обработка видео

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

Альтернативные и последующие методы

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

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

Рекомендации

  1. ^ Аспиналл, Д., изд. (1978). Микропроцессор и его применение: продвинутый курс . Архив Кубка. стр. 47–50. ISBN 0-521-22241-9.
  2. ^ Белл, К. Гордон; Ньюэлл, Аллен (1971). Компьютерные структуры: чтения и примеры . МакГроу Хилл . стр. 156.
  3. ^ «Контроль хранения». Control Data 160-A Руководство по компьютерному программированию (PDF) . CDC. Март 1963 г. с. 2-09. 145е.
  4. ^ Справочное руководство по компьютерной системе Control Data 3600 (PDF) . CDC. 60021300Е.
  5. ^ Хит, Стив (2003). Проектирование встраиваемых систем . Ньюнес. стр. 242. ISBN. 0-7506-5546-1.
  6. ^ Аб Мюллер, Скотт (1992). Модернизация и ремонт компьютеров (2-е изд.). Книги Que. стр. 699–700. ISBN 0-88022-856-3. Проверено 8 февраля 2020 г.
  7. ^ Гарланд, Гарри (март 1977 г.). «Инновации в дизайне персональных компьютеров». Компьютер . 10 (3). Компьютерное общество IEEE : 25. doi : 10.1109/cm.1977.217669. S2CID  32243439 . Проверено 8 февраля 2020 г. Восьмипозиционный DIP-переключатель на таких картах используется для выбора одного (или нескольких) из восьми банков памяти.
  8. ^ Гарланд, Гарри (1979). Введение в проектирование микропроцессорных систем . Книжная компания МакГроу-Хилл . п. 93. ИСБН 0-07-022871-Х. Проверено 8 февраля 2020 г. При выборе банка памяти пространство памяти распределяется по нескольким отдельным банкам емкостью до 64 КБ каждый.
  9. ^ Хоган, Том (8 июня 1981). «Поделитесь и поделитесь одинаково: объяснение многопользовательского оборудования». Инфомир . Том. 3, нет. 11. с. 18 . Проверено 8 февраля 2020 г. Cromemco была первым производителем микрокомпьютеров, который усовершенствовал и использовал переключение банков.
  10. ^ Фрайбергер, Пол (25 октября 1982). «Digital Research предлагает обновление CP/M» . Инфомир . п. 1.
  11. ^ «Новый 1-2-3 получает 4 мегабайта памяти, Lotus, Intel преодолевает барьер памяти DOS для ПК» . Инфомир . 29 апреля 1985 г.
  12. ^ «Обновление EMS улучшает многозадачность DOS» . Инфомир . 17 августа 1987 г.
  13. ^ Росс, Пол В., изд. (1995). Справочник по программному обеспечению для инженеров и ученых . ЦРК Пресс . п. 26. ISBN 0-8493-2530-7.
  14. ^ Синофски, Брайан (2002). Кэри, Чарльз В. (ред.). Американские изобретатели, предприниматели и бизнес-провидцы. Издание информационной базы . стр. 322–324. ISBN 0-8160-4559-3. Проверено 8 февраля 2020 г.
  15. ^ Гранд, Джо; Рассел, Райан; Митник, Кевин Д. (2004). Взлом оборудования: получайте удовольствие, аннулируя гарантию. Сингресс. стр. 229. ISBN. 1-932266-83-6. Проверено 8 февраля 2020 г.

Внешние ссылки