Логическая организация памяти
Используемый в IBM PC/XT процессор i8086 через свои 20 адресных линий может иметь доступ к пространству памяти всего в 1 Мбайт. Но в то время, когда появились эти компьютеры, возможность увеличения доступной оперативной памяти в 10 раз (по сравнению с обычными 64 Кбайт) была просто фантастической. Отсюда наверно и появилась «волюнтаристская» цифра — 640 Кбайт. Эти первые 640 Кбайт адресуемого пространства в IBM-совместимых компьютерах называют обычно стандартной памятью (conventional memory). Оставшиеся 384 Кбайт были зарезервированы для систем использования и носят название памяти в верхних или высших адресах (UMB, Upper Memory Blocks). Эта область памяти резервируется под размещение системного ROM BIOS (Read Only Меш Basic Input Output System), видеопамяти и ROM-памяти, полнительных адаптеров.
Дополнительная, или ехрanded-памягь
Почти на всех персональных компьютерах область UMB редко оказывается заполненной полностью. Пустует, как правило, область расширения системного ROM BIOS часть видеопамяти и области под дополнительные модули ROM. На этом и базируется спецификация дополнительной памяти EMS (Expanded Memory Specification), разработка фирмами Lotus Development, Intel и Microsoft (поэтому называемая иногда LIM-спецификацией) еще в 1985 г. и позволяющая использовать оперативную память свыше стандартных 640 Кбайт для прикладных программ. Принцип использования дополнительной памяти основан на переключении блоков (страниц) памяти. В выделяется незанятое «окно» (page frame) в 64-Кбайт, которое разбито на 16-килобайтные страницы. Программные и аппаратные средства позволяют отображать любой 16-килобайтный сегмент этой дополнительной expanded-иамйти в любой из выделенных 16-килобайтных страниц окна. Хотя микропроцессор всегда обращается к данным, хранимым в окне (адрес 1 Мбайт), адреса этих данных могут быть смещены в дополнительной памяти относительно окна на несколько мегабайт. Спецификация LIM/EMS 4.0 позволяет использовать до 2048 логических страниц и расширить объем адресуемой памяти до 32 Мбайт. Кроме этого, как и в EMS, физические страницы могут быть расположены в любом месте памяти , отличный от 16 Кбайт. Таким образом могут задействоваться области видеопамяти и UMB. Возможности спецификации позволяют, в частности, организовать многозадачный режим работы.
Paсширенная, или ехрanded-памягь
Компьютеры, использующие процессор i80286 с 24-разрядными адресными шинами, физически могут адресовать 16 Мбайт, а в случае процессоров i80386/486 — 4 Гбайта памяти. Такая возможность появляется только при защищённом режиме работы процессора (protected mode), которого операционная система MS DOS не поддерживает. Расширенная память располагается выше области адресов 1 Мбайт. Для работы с extended-памятью микропроцессор должен переходить из реального в защищенный режим и обратно. Микропроцессоры i80386/486 выполняют эту операцию достаточно легко, чего не скажешь о i80286. При наличии соответствующего программного драйвера расширенную память можно эмулировать как дополнительную. Аппаратную поддержку в этом случае должен обеспечивать процессор не ниже i80386 или вспомогательный набор специальных микросхем.
Кэш-память
Кэш-память предназначена для согласования скорости работы сравнительно медленных устройств, таких, например как динамическая память с относительно быстрым микропроцессором. Использование кэш-памяти позволяет избегать циклов ожидания в его работе, которые снижают производительность всей системы.
У микропроцессора, синхронизируемого, например, тактовой частотой 33 МГц, тактовый период составляет приблизительно 30 нс. Обычные современные микросхемы динамической памяти имеют время выборки от 60 до 80 нс. Отсюда, в частности, следует, что центральный процессор вынужден простаивать 2-3 периода тактовой частоты (т.е. имеет 2-3 цикла ожидания), пока информация из соответствующих микросхем памяти установится на системной шине данных компьютера. Понятно, что в это время процессор не может выполнять никакую другую работу. Такая ситуация ведет обычно к тому, что общая производительность системы снижается, что, разумеется, крайне нежелательно.
С помощью технологии обработки, использующей кэш-память, обычно делается попытка согласовать работу медленных внешних устройств с быстрым процессором. В переводе с английского слово «сасhе» означает не что иное, как убежище или тайник. Эти значения, очевидно, можно толковать по-разному: и как то, что кэш, по сути, является промежуточным буферным запоминающим устройством, и как то, что работа кэш-памяти практически прозрачна (т.е. невидима) для пользователя. Кстати, в отечественной литературе синонимом кэш-памяти является термин «сверхоперативная память».
Соответствующий контроллер кэш-памяти должен заботиться о том, чтобы команды и данные, которые будут необходимы микропроцессору в определенный момент времени, оказывались в кэш-памяти именно к этому моменту. При некоторых обращениях к оперативной памяти соответствующие значения заносятся в кэш. В ходе последующих операций чтения по тем ке адресам памяти обращения происходят только к кэш-память, без затраты процессорного времени на ожидание, которое неизбежно при работе с основной динамической памятью. В персональных компьютерах технология использования кэш-памяти находит применение прежде всего при обмене данными между микропроцессором и оперативной памятью, а также между основной памятью и внешней (накопителями на магнитных носителях).
На кристалле микросхемы оперативной памяти SRАМ находится огромное количество транзисторов. Как уже говорилось, принщп работы ячейки динамической памяти состоит в сохранении ; заряда на крошечном конденсаторе, выполненном в полупроводниковой структуре кристалла. Понятно, что для того чтобы зарядить конденсатор до определенного значения, необходимо некоторое время. Чтобы конденсатор разрядился, также необходимо определенное время. Таким образом, в результате процессов заряда и разряда конденсатора ячейка памяти устанавливает либо в состояние 1, либо в состояние 0. Поскольку для заряда и разряда конденсатора необходимо вполне определенное (и немалое) время, то в этом и кроется причина ограниченного быстродействия динамической памяти.
Статическая же память основана на триггерах, в которых применяются интегральные транзисторы-переключатели. Такие транзисторы используют ключевой принцип работы: они либо закрыты, либо открыты. Конечно, на переход транзистора из одного состояния в другое также необходимо какое-то время, однако оно существенно меньше времени заряда-разряда конденсатора, выполняющего роль элемента памяти. Наряду с таким достоинством, как быстродействие по отношению к динамической памяти, статическая память имеет и недостатки. Она потребляет больший ток и имеет более сложную архитектуру -- на одну ячейку памяти требуется больше транзисторов. Как следствие этого, статическая память существенно дороже динамической. Кроме того, при одинаковом коэффициенте интеграции статическая память обладает значительно меньшей информационной емкостью.
При обмене данными возникает похожая проблема. Адреса данных, которые вскоре понадобятся процессору для обработки, находятся в большинстве случаев рядом с адресами данных, обрабатываемых непосредственно в данное время. Поэтому кэш-контроллер должен также заботиться о размещении всего блока данных в статической памяти.
Метод Write Through, называемый также методом сквозной записи, предполагает наличие двух копий данных — одной в основной памяти, а другой — в кэш-памяти. Каждый цикл записи процессора в память идет через кэш. Это обусловливает, конечно, высокую загрузку системной шины, так как на каждую операцию модификации данных приходится две операции записи. Поэтому каждое обновление содержимого кэш-памяти ощутимо сказывается на работе шины. С другой стороны, микропроцессор по-прежнему вынужден ожидать окончания записи в основную память.
Метод Buffered Write Through является разновидностью метода Write Through и называется также методом буферизованной сквозной записи. Для того чтобы как-то уменьшить загрузку шины, процесс записи выполняется в один или несколько буферов, которые работают по принципу FIFO (First Input-First Output). Таким образом, цикл записи для микропроцессора заканчивается практически мгновенно (т.е. когда данные записаны в буфер), хотя информация в основной памяти еще не сохранена. Сам же микропроцессор может выполнять дальнейшую обработку команд. Конечно, соответствующая логика управления должна заботиться о том, чтобы своевременно опустошать заполненные буферы. При использовании данного метода процессор полностью освобожден от работы с основной памятью.
При использовании метода Write Back, называемого также методом обратной записи, цикл записи микропроцессора происходит сначала в кэш-память, если там есть адрес приемника. Если адреса приемника в кэш-памяти не оказывается, то информация записывается непосредственно в память. Содержимое основной памяти обновляется только тогда, когда из кэш-памяти в нее записывается полный блок данных, называемый длиной строки-кэша (cache-line).
При работе с кэш-памятью применяется ассоциативный принцип, когда старшие разряды адреса используются в качестве признака, а младшие — для выбора слова. Архитектура кэш-памяти определяется тем, каким образом память отображается на кэш. Существуют три разновидности отображения: кэш-память с прямым отображением, частично ассоциативная и полностью ассоциативная. При прямом отображении каждая ячейка основной памяти может отображаться только на одну ячейку кэша, в частично ассоциативной —на две и больше (т.е., если одна ячейка кэша занята, можно использовать другую). В случае наличия четырех входов кэш-память называют 4-канальной частично ассоциативной, как, например, у i486. При полностью ассоциативном подходе в качестве разрядов признаков используются все адресные разряды.
BIOS и CMOS RAM
Базовая система ввода-вывода BIOS (Basic Input Output System) называется так потому, что включает в себя обширный набор программ ввода-вывода, благодаря которым операционная система и прикладные программы могут взаимодействовать с различными устройствами как Самого компьютера, так и с устройствами, подключенными к нему. Вообще говоря, в архитектуре IBM-совместимого компьютера система BIOS занимает особое место. С одной стороны, ее можно рассматривать, как составную часть аппаратных средств, с другой стороны, она является как бы одним из программных модулей операционной системы.
Заметим, что система BIOS, помимо программ взаимодействия с аппаратными средствами на физическом уровне, содержит программу тестирования при включении питание компьютера POST (Power-On-Self-Test) и программу начального загрузчика. Последняя программа необходима для загрузки операционной системы с соответствующего накопителя.
Система BIOS в IBM-совместимых компьютерах реализована в виде одной или двух микросхем, установленных на системной плате компьютера. Наиболее перспективным для хранения системы BIOS является сейчас флэш-память. BIOS на ее основе имеют, например, системные платы фирм Intel, Mylex, Compaq и т.д. Это позволяет легко модифицировать старые или добавлять дополнительные функции для поддержки новых устройств, подключаемых к компьютеру.
Поскольку содержимое ROM BIOS фирмы IBM было защищено авторским правом (т.е. его нельзя подвергать копированию), то большинство других производителей компьютеров вынуждены были использовать микросхемы BIOS независимых фирм, системы BIOS которых, разумеется, были практически полностью совместимы с оригиналом. Наиболее известны из этих фирм три: American Megatrends Inc. (AMI), Award Software и Phoenix Technologies.
CMOS RAM
Система BIOS в компьютерах, основанных на микропроцессорах i80286 и выше, неразрывно связана с неизменяемой памятью (CMOS RAM), в которой хранится информация о текущих показаниях часов, значение времени для будильника, конфигурации компьютера: количестве памяти, типах накопителей и т.д. Именно в этой информации нуждаются программные модули системы BIOS. Название CMOS RAM обязано тому, что эта память выполнена на основе структур КМОП (CMOS - Complementary Metal-Oxide-Semiconductor) которые, как известно, отличаются малым энергопотреблением.
В системе BIOS имеется программа, называемая Setup, которая может изменять содержимое CMOS-памяти. Вызывается эта программа определенной комбинацией клавиш, которая обычно выводится в качестве подсказки на экран монитора после включения питания компьютера. Во время загрузки компьютера можно запустить программу Setup для системы BIOS.
Напомним, что под обычными установками (Standard CMOS Setup) мы понимаем информация дате (месяц, день, год), текущих показаниях часов (часы, минуты, секунды), количестве стандартной и расширенной мяти (в килобайтах), технических параметрах и типе накопителей, дисплея, а также о подключении клавиатуры. Заме например, что если в этой программе в строке Keyboard сказать «Not Installed», то даже при отсутствии клавиатуры компьютер не выдаст сообщения об ошибке.
Расширенные установки (Advanced CMOS Setup и Advanced ChipSet Setup) включают в себя дополнительные возможности конфигурирования системной платы. Наиболее общими являются, например, такие возможности, как допустимая скорость ввода символов с клавиатурв (по умолчанию 15 символов в секунду), тестирование, тестирование памяти выше границы 1 Мбайт, разрешение использования арифметического сопроцессора Weitek, приоритет или последовательность загрузки (т.е. попытка загрузки компьютера сначала с накопителя со сменным, а затем несменным носителем или наоборот), установка определенной тактовой частоты микропроцессора при включении, разрешение парольной защиты и т.д. Как правило, расширенные установки допускают определение областей «теневой» (shadow) памяти для системной ROM BIOS, а также ROM BIOS видеоадаптеров, контроллеров накопителей и дополнительных адаптеров. Кроме этого, возможна установка тактовой частоты системной шины, а также числа тактов ожидания (или временной задержки) для микропроцессора при обращении к устройствам ввода-вывода, оперативной и/или кэш-памяти.
Заметим, что в случае повреждения микросхемы CMOS RAM (а также при разряде батареи или аккумулятора) программа Setup имеет возможность воспользоваться некой информацией по умолчанию (BIOS Setup Default Values), которая хранится в таблице соответствующей микросхемы ROM BIOS.
НОВЫЕ ВИДЫ ПАМЯТИ
Резкое повышение быстродействия процессоров и переход на 32-разрядные многозадачные операционные системы существенно поднимают требования и к другим компонентам компьютера. Важнейшим из них является оперативная память. Возрастание внешних тактовых частот процессоров с 33-40 ÌÃö, характерных для семейства 486 (486DX2-66/80 и 486DX4-100/120), до 50-66 ÌÃö для Pentium (Pentium 75/90/100/120/133), требует прежде всего адекватного увеличения быстродействия подсистемы памяти. Поскольку в качестве оперативной используется относительно медленная динамическая память DRAM (Dynamic Random Access Memory), главный способ увеличения пропускной способности основан на применении кэш-памяти. Кроме встроенной в процессор кэш-памяти первого уровня применяется и кэш-память второго уровня (внешняя), построенная на более быстродействующих, чем DRAM, микросхемах статической памяти SRAM (Static RAM). Для высоких тактовых частот нужно увеличивать быстродействие SRAM. Кроме того, в многозадачном режиме эффективность работы кэш-памяти также может снижаться. Поэтому актуальной становится задача не только увеличения быстродействия кэш-памяти, но и ускорения непосредственного доступа к динамической памяти. Для решения этих проблем начинают использоваться новые типы статической и динамической памяти.
Требования к объемам памяти диктуются программным обеспечением. При использовании Windows оценить необходимое количество памяти можно на основе тестов Winstone, использующих наиболее популярные приложения Windows. Соответствующие данные представлены на рисунке 1.
|
Статическая память
В качестве кэш-памяти второго уровня практически всегда применялась (и до сих пор продолжает широко применяться) стандартная асинхронная память SRAM. При внешних тактовых частотах порядка 33 ÌÃö хорошие результаты давала статическая память со временем выборки 15-20 ns. Для эффективной работы на частотах выше 50 ÌÃö такого быстродействия уже недостаточно. Прямое уменьшение времени выборки до нужных величин (12-8 ns) обходится дорого, так как требует зачастую применения дорогой технологии Bi-CMOS вместо CMOS, что неприемлемо для массового рынка. Поэтому предлагаемое решение заключается в применении новых типов памяти с усовершенствованной архитектурой, которые первоначально были разработаны для мощных рабочих станций. Наиболее перспективна синхронная SRAM. В отличие от обычной асинхронной, она может использовать те же тактовые сигналы, что и остальная система, поэтому и называется синхронной. Она снабжена дополнительными регистрами для хранения информации, что освобождает остальные элементы для подготовки к следующему циклу еще до того, как завершился предыдущий. Быстродействие памяти при этом увеличивается примерно на 20%. Эффективную работу на самых высоких частотах может обеспечить особая разновидность синхронной SRAM — с конвейерной организацией (pipelined burst). При ее применении уменьшается число циклов, требующихся для обращения к памяти в групповом режиме. Пример для тактовой частоты 66 ÌÃö (Pentium 100 и Pentium 133) приведен в таблице1. В случае группового режима чтения-записи для первого обращения нужно 3 цикла, для каждого следующего — только 1.
Тип цикла | Асинхронная SRAM | Конвейерная SRAM |
Single Read | ||
Single Write | ||
Burst Read | 3-2-2-2 | 3-1-1-1 |
Burst Write | 4-3-3-3 | 3-1-1-1 |
|
Динамическая память
Так же, как и для статической памяти, прямое сокращение времени выборки для динамической памяти достаточно трудно технически осуществимо и приводит к резкому росту стоимости. Поэтому ориентация в новых системах идет на микросхемы со временем выборки 60-70 ns. Стандартные микросхемы DRAM имеют страничную организацию памяти — Fast Page Mode (FPM), которая позволяет значительно ускорить доступ к последовательно расположенным (в пределах страницы) данным по сравнению со случаем произвольной выборки. Поскольку обращения к последовательно расположенным данным в реальных задачах встречаются очень часто, применение FPM DRAM заметно повышает производительность. FPM DRAM со временем выборки 60-70 ns обеспечивает необходимые характеристики для тактовых частот 33-40 ÌÃö. При повышении тактовой частоты обеспечить надежное и быстрое считывание данных в страничном режиме уже не удается. Эту проблему в значительной степени решает применение памяти нового типа - EDO DRAM (Extended Data Output DRAM). От обычной памяти со страничной организацией она отличается наличием дополнительных регистров для хранения выходных данных. Увеличивается время, в течение которого данные хранятся на выходе микросхемы, что делает выходную информацию доступной для надежного считывания процессором даже при высоких тактовых частотах (фактически время между обращениями в страничном режиме можно уменьшить до 30 ns по сравнению с 45 ns для FPM).
Радикальный, но не общепризнанный подход к повышению быстродействия динамической памяти заключается во встраивании в микросхемы DRAM собственной кэш-памяти. Это Cached DRAM (CDRAM) и Enhanced DRAM (EDRAM). Память CDRAM выпускается фирмой Mitsubishi и имеет 16 KB кэш-памяти как на 4, так и на 16 Mbit кристалле, обмен между динамической и встроенной кэш-памятью осуществляется словами шириной 128 разрядов.
Вообще говоря, применение новых типов динамической памяти позволяет получать высокую производительность даже и без применения кэш-памяти второго уровня (если кэш-память первого уровня — типа write back), особенно в случае CDRAM и Enhanced DRAM, которые именно так и используются. Однако подавляющее большинство систем для достижения максимальной производительности строится все-таки с использованием кэш-памяти второго уровня. Для них наиболее подходит память типа EDO DRAM. К тому же она стала уже промышленным стандартом, и ее доля будет преобладать в микросхемах памяти емкостью 16 Mbit и более. Фактически эта память приходит на смену стандартной FPM DRAM и ее можно применять в любых системах вместо стандартной.
КОНСТРУКТИВ
Несмотря на то, что наиболее популярным конструктивом для динамической памяти по-прежнему остается SIMM (Single In-line Memory Module), начинают применяться и другие стандарты. Возникновение новых стандартов вызвано необходимостью решения двух основных проблем. Первая связана с увеличением плотности упаковки элементов памяти, особенно актуальной для рабочих станций, использующих память очень большого объема, и мобильных систем. Вторая — с обеспечением устойчивой работы при высоких частотах, которая зависит от размеров, емкости и индуктивности соединителя. Большую по сравнению с SIMM плотность упаковки и, соответственно, объем памяти могут обеспечить модули типа DIMM (Dual In-line Memory Module), у которых, в отличие от SIMM, контакты на обеих сторонах модуля не объединены, а могут использоваться независимо.
Микросхемы стандартной статической памяти в основном выпускаются в корпусах типа DIP и SOJ. Память типа pipelined burst либо запаивается на системную плату сразу в процессе ее изготовления, либо поставляется в виде модулей.
ЖЕСТКИЕ ДИСКИ
Большая часть жестких дисков, представленных на мировом рынке, выпускается специализированными фирмами — Quantum, Seagate, Conner, Western Digital, Maxtor и некоторыми другими.