Динамической памяти в вычислительной машине значительно больше, чем статической, поскольку именно DRAM используется в качестве основной памяти ВМ. Как и SRAM, динамическая память состоит из ядра (массива ЗЭ) и интерфейсной логики (буферных регистров, усилителей чтения данных, схемы регенерации и др.). Хотя количество видов DRAM уже превысило два десятка, ядро у них организовано практически одинаково. Главные различия связаны с интерфейсной логикой, причем различия эти обусловлены также и областью применения микросхем – помимо основной памяти ВМ, ИМС динамической памяти входят, например, в состав видеоадаптеров. Классификация микросхем динамической памяти показана на рис. 72.
Чтобы оценить различия между видами DRAM, предварительно остановимся на алгоритме работы с динамической памятью. Для этого воспользуемся рис. 68.
В отличие от SRAM адрес ячейки DRAM передается в микросхему за два шага - вначале адрес столбца, а затем строки, что позволяет сократить количество выводов шины адреса примерно вдвое, уменьшить размеры корпуса и разместить на материнской плате большее количество микросхем. Это, разумеется, приводит к снижению быстродействия, так как для передачи адреса нужно вдвое больше времени. Для указания, какая именно часть адреса передается в определенный момент, служат два вспомогательных сигнала RAS и CAS. При обращении к ячейке памяти на шину адреса выставляется адрес строки. После стабилизации процессов на шине подается сигнал RAS и адрес записывается во внутренний регистр микросхемы памяти. Затем на шину адреса выставляется адрес столбца и выдается сигнал CAS. В зависимости от состояния линии WE производится чтение данных из ячейки или их запись в ячейку (перед записью данные должны быть помещены на шину данных). Интервал между установкой адреса и выдачей сигнала RAS (или CAS) оговаривается техническими характеристиками микросхемы, но обычно адрес выставляется в одном такте системной шины, а управляющий сигнал - в следующем. Таким образом, для чтения или записи одной ячейки динамического ОЗУ требуется пять тактов, в которых происходит соответственно: выдача адреса строки, выдача сигнала RAS, выдача адреса столбца, выдача сигнала CAS, выполнение операции чтения/записи (в статической памяти процедура занимает лишь от двух до трех тактов).
Рис. 72. Классификация динамических ОЗУ: а) – микросхемы для основной памяти; б) – микросхемы для видеоадаптеров.
Следует также помнить о необходимости регенерации данных. Но наряду с естественным разрядом конденсатора ЗЭ со временем к потере заряда приводит также считывание данных из DRAM, поэтому после каждой операции чтения данные должны быть восстановлены. Это достигается за счет повторной записи тех же данных сразу после чтения. При считывании информации из одной ячейки фактически выдаются данные сразу всей выбранной строки, но используются только те, которые находятся в интересующем столбце, а все остальные игнорируются. Таким образом, операция чтения из одной ячейки приводит к разрушению данных всей строки, и их нужно восстанавливать. Регенерация данных после чтения выполняется автоматически интерфейсной логикой микросхемы, и происходит это сразу же после считывания строки.
Теперь рассмотрим различные типы микросхем динамической памяти, начнем с системных DRAM, то есть микросхем, предназначенных для использования в качестве основной памяти. На начальном этапе это были микросхемы асинхронной памяти, работа которых не привязана жестко к тактовым импульсам системной шины.
Асинхронные динамические ОЗУ. Микросхемы асинхронных динамических ОЗУ управляются сигналами RAS и CAS, и их работа в принципе не связана непосредственно тактовыми импульсами шины. Асинхронной памяти свойственны дополнительные затраты времени на взаимодействие микросхем памяти и контроллера. Так, в асинхронной схеме сигнал RAS будет сформирован только после поступления в контроллер тактирующего импульса и будет воспринят микросхемой памяти через некоторое время. После этого память выдаст данные, но контроллер сможет их считать только по приходу следующего тактирующего импульса, так как он должен работать синхронно с остальными устройствами ВМ. Таким образом, на протяжении цикла чтения/записи происходят небольшие задержки из-за ожидания памятью контроллера и контроллером памяти.
Микросхемы DRAM. В первых микросхемах динамической памяти применялся наиболее простой способ обмена данными, часто называемый традиционным (conventional). Он позволял считывать и записывать строку памяти только на каждый пятый такт. Этапы такой процедуры были описаны ранее. Традиционной DRAM соответствует формула 5-5-5-5. Микросхемы данного типа могли работать на частотах до 40 МГц и из-за своей медлительности (время доступа составляло около 120 нс) просуществовали недолго.
Микросхемы FPMDRAM. Микросхемы динамического ОЗУ, реализующие режим FPM, также относятся к ранним типам DRAM. Сущность режима была показана ранее. Схема чтения для FPM DRAM описывается формулой 5-3-3-3 (всего 14 тактов). Применение схемы быстрого страничного доступа позволило сократить время доступа до 60 нс, что, с учетом возможности работать на более высоких частотах шины, привело к увеличению производительности памяти по сравнению с традиционной DRAM приблизительно на 70%. Данный тип микросхем применялся в персональных компьютерах примерно до 1994 года.
Микросхемы EDO DRAM. Следующим этапом в развитии динамических ОЗУ стали ИМС с гиперстраничным режимом доступа (НРМ, Hyper Page Mode), более известные как EDO (Extended Data Output - расширенное время удержания данных на выходе). Главная особенность технологии - увеличенное по сравнению с FPM DRAM время доступности данных на выходе микросхемы. В микросхемах FPM DRAM выходные данные остаются действительными только при активном сигнале CAS, из-за чего во втором и последующих доступах к строке нужно три такта: такт переключения CAS в активное состояние, такт считывания данных и такт переключения CAS в неактивное состояние. В EDO DRAM по активному (спадающему) фронту сигнала CAS данные запоминаются во внутреннем регистре, где хранятся еще некоторое время после того, как поступит следующий активный фронт сигнала. Это позволяет использовать хранимые данные, когда CAS уже переведен в неактивное состояние. Иными словами, временные параметры улучшаются за счет исключения циклов ожидания момента стабилизации данных на выходе микросхемы.
Схема чтения у EDO DRAM уже 5-2-2-2, что на 20% быстрее, чем у FPM. Время доступа составляет порядка 30-40 нс. Следует отметить, что максимальная частота системной шины для микросхем EDO DRAM не должна была превышать 66 МГц.
Микросхемы BEDO DRAM. Технология EDO была усовершенствована компанией VIA Technologies. Новая модификация EDO известна как BEDO (Burst EDO - пакетная EDO). Новизна метода в том, что при первом обращении считывается вся строка микросхемы, в которую входят последовательные слова пакета. За последовательной пересылкой слов (переключением столбцов) автоматически следит внутренний счетчик микросхемы. Это исключает необходимость выдавать адреса для всех ячеек пакета, но требует поддержки со стороны внешней логики. Способ позволяет сократить время считывания второго и последующих слов еще на один такт, благодаря чему формула приобретает вид 5-1-1-1.
Микросхемы EDRAM. Более быстрая версия DRAM была разработана подразделением фирмы Ramtron - компанией Enhanced Memory Systems. Технология реализована в вариантах FPM, EDO и BEDO. У микросхемы более быстрое ядро и внутренняя кэш-память. Наличие последней - главная особенность технологии. В роли кэш-памяти выступает статическая память (SRAM) емкостью 2048 бит. Ядро EDRAM имеет 2048 столбцов, каждый из которых соединен с внутренней кэш-памятью. При обращении к какой-либо ячейке одновременно считывается целая строка (2048 бит). Считанная строка заносится в SRAM, причем перенос информации в кэш-память практически не сказывается на быстродействии, поскольку происходит за один такт. При дальнейших обращениях к ячейкам, относящимся к той же строке, данные берутся из более быстрой кэш-памяти. Следующее обращение к ядру происходит при доступе к ячейке, не расположенной в строке, хранимой в кэш-памяти микросхемы.
Технология наиболее эффективна при последовательном чтении, то есть когда среднее время доступа для микросхемы приближается к значениям, характерным для статической памяти (порядка 10 нс). Главная сложность состоит в несовместимости с контроллерами, используемыми при работе с другими видами DRAM.
Синхронные динамические ОЗУ. В синхронных DRAM обмен информацией синхронизируется внешними тактовыми сигналами и происходит в строго определенные моменты времени, что позволяет взять все от пропускной способности шины «процессор-память» и избежать циклов ожидания. Адресная и управляющая информация фиксируются в ИМС памяти. После чего ответная реакция микросхемы произойдет через четко определенное число тактовых импульсов, и это время процессор может использовать для других действий, не связанных с обращением к памяти. В случае синхронной динамической памяти вместо продолжительности цикла доступа говорят о минимально допустимом периоде тактовой частоты, и речь уже идет о времени порядка 8-10 нс.
Микросхемы SDRAM. Аббревиатура SDRAM (Synchronous DRAM - синхронная DRAM) используется для обозначения микросхем «обычных» синхронных динамических ОЗУ. Кардинальные отличия SDRAM от рассмотренных выше асинхронных динамических ОЗУ можно свести к четырем положениям:
· синхронный метод передачи данных на шину;
· конвейерный механизм пересылки пакета;
· применение нескольких (двух или четырех) внутренних банков памяти;
· передача части функций контроллера памяти логике самой микросхемы.
Синхронность памяти позволяет контроллеру памяти «знать» моменты готовности данных, за счет чего снижаются издержки циклов ожидания и поиска данных. Так как данные появляются на выходе ИМС одновременно с тактовыми импульсами, упрощается взаимодействие памяти с другими устройствами ВМ.
В отличие от BEDO конвейер позволяет передавать данные пакета по тактам, благодаря чему ОЗУ может работать бесперебойно на более высоких частотах, чем асинхронные ОЗУ. Преимущества конвейера особенно возрастают при передаче длинных пакетов, но не превышающих длину строки микросхемы.
Значительный эффект дает разбиение всей совокупности ячеек на независимые внутренние массивы (банки). Это позволяет совмещать доступ к ячейке одного банка с подготовкой к следующей операции в остальных банках (перезарядкой управляющих цепей и восстановлением информации). Возможность держать открытыми одновременно несколько строк памяти (из разных банков) также способствует повышению быстродействия памяти. При поочередном доступе к банкам частота обращения к каждому из них в отдельности уменьшается пропорционально числу банков и SDRAM может работать на более высоких частотах. Благодаря встроенному счетчику адресов SDRAM, как и BEDO DRAM, позволяет производить чтение и запись в пакетном режиме, причем в SDRAM длина пакета варьируется и в пакетном режиме есть возможность чтения целой строки памяти. ИМС может быть охарактеризована формулой 5-1-1-1. Несмотря на то, что формула для этого типа динамической памяти такая же, что и у BEDO, способность работать на более высоких частотах приводит к тому, что SDRAM с двумя банками при тактовой частоте шины 100 МГц по производительности может почти вдвое превосходить память типа BEDO.
Микросхемы DDR SDRAM. Важным этапом в дальнейшем развитии технологии SDRAM стала DDR SDRAM (Double Data Rate SDRAM - SDRAM с удвоенной скоростью передачи данных). В отличие от SDRAM новая модификация выдает данные в пакетном режиме по обоим фронтам импульса синхронизации, за счет чего пропускная способность возрастает вдвое. Существует несколько спецификаций DDR SDRAM, в зависимости от тактовой частоты системной шины: DDR266, DDR333, DDR400, DDR533. Так, пиковая пропускная способность микросхемы памяти спецификации DDR333 составляет 2,7 Гбайт/с, а для DDR400 - 3,2 Гбайт/с. DDR SDRAM в настоящее время является наиболее распространенным типом динамической памяти персональных ВМ.
Микросхемы RDRAM, DRDRAM. Наиболее очевидные способы повышения эффективности работы процессора с памятью - увеличение тактовой частоты шины либо ширины выборки (количества одновременно пересылаемых разрядов). К сожалению, попытки совмещения обоих вариантов наталкиваются на существенные технические трудности (с повышением частоты усугубляются проблемы электромагнитной совместимости, труднее становится обеспечить одновременность поступления потребителю всех параллельно пересылаемых битов информации). В большинстве синхронных DRAM (SDRAM, DDR) применяется широкая выборка (64 бита) при ограниченной частоте шины.
Принципиально отличный подход к построению DRAM был предложен компанией Rambus в 1997 году. В нем упор сделан на повышение тактовой частоты до 400 МГц при одновременном уменьшении ширины выборки до 16 бит. Новая память известна как RDRAM (Rambus Direct RAM). Существует несколько разновидностей этой технологии: Base, Concurrent и Direct. Во всех тактирование ведется по обоим фронтам синхросигналов (как в DDR), благодаря чему результирующая частота составляет соответственно 500-600, 600-700 и 800 МГц. Два первых варианта практически идентичны, а вот изменения в технологии Direct Rambus (DRDRAM) весьма значительны.
Сначала остановимся на принципиальных моментах технологии RDRAM, ориентируясь в основном на более современный вариант - DRDRAM. Главным отличием от других типов DRAM является оригинальная система обмена данными между ядром и контроллером памяти, в основе которой лежит так называемый «канал Rambus», применяющий асинхронный блочно-ориентированный протокол. На логическом уровне информация между контроллером и памятью передается пакетами.
Различают три вида пакетов: пакеты данных, пакеты строк и пакеты столбцов. Пакеты строк и столбцов служат для передачи от контроллера памяти команд управления соответственно линиями строк и столбцов массива запоминающих элементов. Эти команды заменяют обычную систему управления микросхемой с помощью сигналов RAS, CAS, WE и CS.
Массив ЗЭ разбит на банки. Их число в кристалле емкостью 64 Мбит составляет 8 независимых или 16 сдвоенных банков. В сдвоенных банка^ пара банков использует общие усилители чтения/записи. Внутреннее ядро микросхемы имеет 128-разрядную шину данных, что позволяет по каждому адресу столбца передавать 16 байт. При записи можно использовать маску, в которой каждый бит соответствует одному байту пакета. С помощью маски можно указать, сколько байтов пакета и какие именно должны быть записаны в память.
Линии данных, строк и столбцов в канале полностью независимы, поэтому команды строк, команды столбцов и данные могут передаваться одновременно, причем для разных банков микросхемы. Пакеты столбцов включают в себя по два поля и передаются по пяти линиям. Первое поле задает основную операцию записи или чтения. Во втором поле находится либо указание на использование маски записи (собственно маска передается по линиям данных), либо расширенный код операции, определяющий вариант для основной операции. Пакеты строк подразделяются на пакеты активации, отмены, регенерации и команды переключения режимов энергопотребления. Для передачи пакетов строк выделены три линии.
Операция записи может следовать сразу за чтением - нужна лишь задержка на время прохождения сигнала по каналу (от 2,5 до 30 нс в зависимости от длины канала). Чтобы выровнять задержки в передаче отдельных битов передаваемого кода, проводники на плате должны располагаться строго параллельно, иметь одинаковую длину (длина линий не должна превышать 12 см) и отвечать строгим требованиям, определенным разработчиком.
Каждая запись в канале может быть конвейеризирована, причем время задержки первого пакета данных составляет 50 нс, а остальные операции чтения/записи осуществляются непрерывно (задержка вносится только при смене операции с записи на чтение, и наоборот).
В имеющихся публикациях упоминается работа Intel и Rambus над новой версией RDRAM, названной nDRAM, которая будет поддерживать передачу данных с частотами до 1600 МГц.
Микросхемы SLDRAM. Потенциальным конкурентом RDRAM на роль стандарта архитектуры памяти для будущих персональных ВМ выступает новый вид динамического ОЗУ, разработанный консорциумом производителей ВМ SyncLink Consortium и известный под аббревиатурой SLDRAM. В отличие от RDRAM, технология которой является собственностью компаний Rambus и Intel, данный стандарт - открытый. На системном уровне технологии очень похожи. Данные и команды от контроллера к памяти и обратно в SLDRAM передаются пакетами по 4 или 8 посылок. Команды, адрес и управляющие сигналы посылаются по однонаправленной 10-разрядной командной шине. Считываемые и записываемые данные передаются по двунаправленной 18-разрядной шине данных. Обе шины работают на одинаковой частоте. Пока что еще эта частота равна 200 МГц, что, благодаря технике DDR, эквивалентно 400 МГц. Следующие поколения SLDRAM должны работать на частотах 400 МГц и выше, то есть обеспечивать эффективную частоту более 800 МГц.
К одному контроллеру можно подключить до 8 микросхем памяти. Чтобы избежать запаздывания сигналов от микросхем, более удаленных от контроллера, временные характеристики для каждой микросхемы определяются и заносятся в ее управляющий регистр при включении питания.
Микросхемы ESDRAM. Это синхронная версия EDRAM, в которой используются те же приемы сокращения времени доступа. Операция записи в отличие от чтения происходит в обход кэш-памяти, что увеличивает производительность ESDRAM при возобновлении чтения из строки, уже находящейся в кэш-памяти. Благодаря наличию в микросхеме двух банков простои из-за подготовки к операциям чтения/записи сводятся к минимуму. Недостатки у рассматриваемой микросхемы те же, что и у EDRAM - усложнение контроллера, так как он должен.читывать возможность подготовки к чтению в кэш-память новой строки ядра. Кроме того, при произвольной последовательности адресов кэш-память задействуется неэффективно.
Микросхемы CDRAM. Данный тип ОЗУ разработан в корпорации Mitsubishi, и его можно рассматривать как пересмотренный вариант ESDRAM, свободный от некоторых ее несовершенств. Изменены емкость кэш-памяти и принцип размещения в ней данных. Емкость одного блока, помещаемого в кэш-память, уменьшена до 128 бит, таким образом, в 16-килобитовом кэше можно одновременно хранить копии из 128 участков памяти, что позволяет эффективнее использовать кэш-память. Замена первого помещенного в кэш участка памяти начинается только после заполнения последнего (128-го) блока. Изменению подверглись и средства доступа. Так, в микросхеме используются раздельные адресные шины для статического кэша и динамического ядра. Перенос данных из динамического ядра в кэш-память совмещен с выдачей данных на шину, поэтому частые, но короткие пересылки не снижают производительности ИМС при считывании из памяти больших объемов информации и уравнивают CDRAM с ESDRAM, а при чтении по выборочным адресам CDRAM явно выигрывает. Необходимо, однако, отметить, что вышеперечисленные изменения привели к еще большему усложнению контроллера памяти.
Конец работы -
Эта тема принадлежит разделу:
Организация ЭВМ и систем
Сибирский государственный аэрокосмический университет.. имени академика м ф решетнева.. организация ЭВМ и систем..
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ:
Что будем делать с полученным материалом:
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
| Твитнуть |
Все темы данного раздела:
Уровни детализации структуры вычислительной машины
Вычислительная машина как законченный объект являет собой плод усилий специалистов в самых различных областях человеческих знаний. Каждый специалист рассматривает вычислительную ма
Эволюция средств автоматизации вычислений
Попытки облегчить, а в идеале автоматизировать процесс вычислений имеют давнюю историю, насчитывающую более 5000 лет. С развитием науки и технологий средства автоматизации вычислений непрерывно сов
Нулевое поколение (1492-1945)
Для полноты картины упомянем два события, произошедшие до нашей эры: первые счеты - абак, изобретенные в древнем Вавилоне за 3000 лет до н. э., и их более «современный» вариант с к
Первое поколение(1937-1953)
На роль первой в истории электронной вычислительной машины в разные периоды претендовало несколько разработок. Общим у них было использование схем на базе электронно-вакуумных ламп
Второе поколение (1954-1962)
Второе поколение характеризуется рядом достижений в элементной базе, структуре и программном обеспечении. Принято считать, что поводом для выделения нового поколения ВМ стали техно
Третье поколение (1963-1972)
Третье поколение ознаменовалось резким увеличением вычислительной мощности ВМ, ставшим следствием больших успехов в области архитектуры, технологии и программного обеспечения. Осно
Четвертое поколение (1972-1984)
Отсчет четвертого поколения обычно ведут с перехода на интегральные микросхемы большой (large-scale integration, LSI) и сверхбольшой (very large-scale integration, VLSI) степени и
Пятое поколение (1984-1990)
Главным поводом для выделения вычислительных систем второй половины 80-х годов в самостоятельное поколение стало стремительное развитие ВС с сотнями процессоров, ставшее побудитель
Концепция машины с хранимой в памяти программой
Исходя из целей данного раздела, введем новое определение термина «вычислительная машина» как совокупности технических средств, служащих для автоматизированной обработки дискретны
Принцип двоичного кодирования
Согласно этому принципу, вся информация, как данные, так и команды, кодируются двоичными цифрами 0 и 1. Каждый тип информации представляется двоичной последовательностью и имеет св
Принцип программного управления
Все вычисления, предусмотренные алгоритмом решения задачи, должны быть представлены в виде программы, состоящей из последовательности управляющих слов - команд. Каждая команда пред
Принцип однородности памяти
Команды и данные хранятся в одной и той же памяти и внешне в памяти неразличимы. Распознать их можно только по способу использования. Это позволяет производить над командами те же
Фон-неймановская архитектура
В статье фон Неймана определены основные устройства ВМ, с помощью которых должны быть реализованы вышеперечисленные принципы. Большинство современных ВМ по своей структуре отвечают принципу програ
Структуры вычислительных машин
В настоящее время примерно одинаковое распространение получили два способа построения вычислительных машин: с непосредственными связями и на основе шины.
Типичным представи
Структуры вычислительных систем
Понятие «вычислительная система» предполагает наличие множества процессоров или законченных вычислительных машин, при объединении которых используется один из двух подходов.
Перспективные направления исследований в области архитектуры
Основные направления исследований в области архитектуры ВМ и ВС можно условно разделить на две группы: эволюционные и революционные. К первой группе следует отнести исследования,
Понятие архитектуры системы команд
Системой команд вычислительной машины называют полный перечень команд, которые способна выполнять данная ВМ. В свою очередь, под архитектурой системы команд (АСК) принято определят
Стековая архитектура
Стеком называется память, по своей структурной организации отличная от основной памяти ВМ. Принципы построения стековой памяти детально рассматриваются позже, здесь же выделим только те аспекты, ко
Аккумуляторная архитектура
Архитектура на базе аккумулятора исторически возникла одной из первых. В ней для хранения одного из операндов арифметической или логической операции в процессоре имеется выделенный регистр - аккуму
Регистровая архитектура
В машинах данного типа процессор включает в себя массив регистров (регистровый файл), известных как регистры общего назначения (РОН). Эти регистры, в каком-то смысле, можно рассматр
Архитектура с выделенным доступом к памяти
В архитектуре с выделенным доступом к памяти обращение к основной памяти возможно только с помощью двух специальных команд: load и store. В английской транскрипции данную архитектуру
Форматы команд
Типовая команда, в общем случае, должна указывать:
· подлежащую выполнению операцию;
· адреса исходных данных (операндов), над которыми выполняется операция;
· адрес, по
Длина команды
Это важнейшее обстоятельство, влияющее на организацию и емкость памяти, структуру шин, сложность и быстродействие ЦП. С одной стороны, удобно иметь в распоряжении мощный набор команд, то есть как м
Разрядность адресной части
В адресной части команды содержится информация о местонахождении исходных данных и месте сохранения результата операции. Обычно местонахождение каждого из операндов и результата задается в команде
Количество адресов в команде
Для определения количества адресов, включаемых в адресную часть, будем использовать термин адресность. В «максимальном» варианте необходимо указать три компонента: адрес первого опе
Адресность и время выполнения программы
Время выполнения одной команды складывается из времени выполнения операции и времени обращения к памяти.
Для трехадресной команды последнее суммируется из четырех составля
Способы адресации операндов
Вопрос о том, каким образом в адресном поле команды может быть указано местоположение операндов, считается одним из центральных при разработке архитектуры ВМ. С точки зрения сокра
Непосредственная адресация
При непосредственной адресации (НА) в адресном поле команды вместо адреса содержится непосредственно сам операнд (рис. 15). Этот способ может применяться при выполнении арифметичес
Прямая адресация
При прямой или абсолютной адресации (ПА) адресный код прямо указывает номер ячейки памяти, к которой производится обращение (рис. 22), то есть адресный код совпадает с исполнительн
Косвенная адресация
Одним из путей преодоления проблем, свойственных прямой адресации, может служить прием, когда с помощью ограниченного адресного поля команды указывается адрес ячейки, в свою очеред
Регистровая адресация
Регистровая адресация (РА) напоминает прямую адресацию. Различие состоит в том, что адресное поле инструкции указывает не на ячейку памяти, а на регистр процессора (рис. 24). Иденти
Косвенная регистровая адресация
Косвенная регистровая адресация (КРА) представляет собой косвенную адресацию, где исполнительный адрес операнда хранится не в ячейке основной памяти, а в регистре процессора. Соотв
Адресация со смещением
При адресации со смещением исполнительный адрес формируется в результате суммирования содержимого адресного поля команды с содержимым одного или нескольких регистров процессора (рис
Относительная адресация
При относительной адресации (ОА) для получения исполнительного адреса операнда содержимое подполя Aк команды складывается с содержимым счетчика команд (рис. 27). Таким
Базовая регистровая адресация
В случае базовой регистровой адресации (БРА) регистр, называемый базовым, содержит полноразрядный адрес, а подполе Ас - смещение относительно этого адреса. Ссылка на ба
Индексная адресация
При индексной адресации (ИА) подполе Ас содержит адрес ячейки памяти, а регистр (указанный явно или неявно) - смещение относительно этого адреса. Как видно, этот способ
Страничная адресация
Страничная адресация (СТА) предполагает разбиение адресного пространства на страницы. Страница определяется своим начальным адресом, выступающим в качестве базы. Старшая часть этог
Цикл команды
Программа в фон-неймановской ЭВМ реализуется центральным процессором (ЦП) посредством последовательного исполнения образующих эту программу команд. Действия, требуемые для выборки (
Основные показатели вычислительных машин
Использование конкретной вычислительной машины имеет смысл, если ее показатели соответствуют показателям, определяемым требованиями к реализации заданных алгоритмов. В качестве осно
Программная архитектура i80х86
Одним из наиболее распространенных процессоров общего назначения на данный момент являются процессоры с архитектурой x86 (Intel IA-32). Родоначальником семейства этих процессоров явился ЦП i8086. И
Сегмент кода
В сегменте кода обычно записываются команды микропроцессора, которые выполняются последовательно друг за другом. Для определения адреса следующей команды после выполнения предыдущей
Переменные в программе
Во всех остальных сегментах выделяется место для переменных, используемых в программе. Разделение на сегменты данных, сегмент стека и сегмент дополнительных данных связано с тем, чт
Сегмент стека
Для хранения временных значений, для которых нецелесообразно выделять переменные, предназначена специальная область памяти, называемая стеком. Для адресации такой области служит сег
Микропроцессор i8086
С точки зрения программиста микропроцессор представляется в виде набора регистров. Регистры предназначены для хранения некоторых данных и поэтому, в некотором смысле, они соответств
Доступ к ячейкам памяти
Как уже отмечалось, в состав любой микропроцессорной системы обязательно должна входить память, в которой располагаются программы и необходимые для их работы данные. Физическая и ло
Команды микропроцессора
Программа, работающая в микропроцессорной системе, в конечном виде представляет собой набор байтов, воспринимаемый микропроцессором как код той или иной команды вместе с соответству
Основные группы команд и их краткая характеристика
Для упрощения процесса программирования на языке ассемблера используется мнемоническая запись команд микропроцессора (обычно в виде сокращений английских слов, описывающих действия
Способы адресации в архитектуре i80x86
Рассмотренные выше способы адресации могут быть в полной мере применены при написании программы на языке ассемблера. Рассмотрим методы реализации наиболее часто применяющихся способ
Адресация ячеек памяти
Кроме регистров и констант в командах можно использовать ячейки памяти. Естественно, что они могут использоваться и как источник и как приемник данных.
Более точно, в командах используется
Прямая адресация
При прямой адресации в команде указывается смещение, которое соответствует началу размещения в памяти соответствующего операнда. По умолчанию, при использовании упрощенных директив описания сегмент
Косвенная адресация
При косвенной адресации смещение соответствующего операнда в сегменте содержится в одном из регистров микропроцессора. Таким образом, текущее содержимое регистра микропроцессора определяет исполнит
Косвенная адресация по базе
При использовании косвенной адресации к содержимому регистра можно добавлять константу. В этом случае исполнительный адрес вычисляется как сумма содержимого соответствующего регистра и этой констан
Адресация по базе с индексированием
В микропроцессоре i8086 можно использовать также комбинацию косвенной индексной адресации и адресации по базе. Исполнительный адрес операнда определяется как сумма трех составляющих – содержимого д
Лабораторная работа. Программная архитектура процессора i8086
На языке ассемблера процессора i8086 с использованием любого удобного пакета (рекомендуется TASM) реализуйте следующие задачи:
1. Протабулировать функцию у
Структура взаимосвязей вычислительной машины
Совокупность трактов, объединяющих между собой основные устройства ВМ (центральный процессор, память и модули ввода/вывода), образует структуру взаимосвязей вычислительной машины.
Типы шин
Важным критерием, определяющим характеристики шины, может служить ее целевое назначение. По этому критерию можно выделить:
· шины «процессор-память»;
· шины ввода
Системная шина
С целью снижения стоимости некоторые ВМ имеют общую шину для памяти и устройств ввода/вывода. Такая шина часто называется системной. Системная шина служит для физического и логическ
Вычислительная машина с одной шиной
В структурах взаимосвязей с одной шиной имеется одна системная шина, обеспечивающая обмен информацией между процессором и памятью, а также между УВВ с одной стороны, и процессором л
Вычислительная машина с двумя видами шин
Хотя контроллеры устройств ввода/вывода (УВВ) могут быть подсоединены непосредственно к системной шине, больший эффект достигается применением одной или нескольких шин ввода/вывод
Вычислительная машина с тремя видами шин
Для подключения быстродействующих периферийных устройств в систему шин может быть добавлена высокоскоростная шина расширения.
Механические аспекты
Основная шина, объединяющая устройства вычислительной машины, обычно размещается на так называемой объединительной или материнской плате. Шину образуют тонкие параллельные медные по
Электрические аспекты
Все устройства, использующие шину, электрически подсоединены к ее сигнальным линиям, представляющим собой электрические проводники. Меняя уровни напряжения на сигнальных линиях, ве
Распределение линий шины
Любая транзакция на шине начинается с выставления ведущим устройством адресной информации. Адрес позволяет выбрать ведомое устройство и установить соединение между ним и ведущим. Д
Выделенные и мультиплексируемые линии
В некоторых ВМ линии адреса и данных объединены в единую мультиплексируемую шину адреса/данных. Такая шина функционирует в режиме разделения времени, поскольку цикл шины разбит на
Схемы приоритетов
Каждому потенциальному ведущему присваивается определенный уровень приоритета, который может оставаться неизменным (статический или фиксированный приоритет) либо изменяться по како
Схемы арбитража
Арбитраж запросов на управление шиной может быть организован по централизованной или децентрализованной схеме. Выбор конкретной схемы зависит от требований к производительности и
Интерфейс PCI
Доминирующее положение на рынке ПК достаточное длительное время занимали системы на основе шины PCI (Peripheral Component Interconnect – Взаимодействие периферийных компонентов). Эт
Порт AGP
С повсеместным внедрением технологий мультимедиа пропускной способности шины PCI стало не хватать для производительной работы видеокарты. Чтобы не менять сложившийся стандарт на шин
PCI Express
Интерфейс PCI Express (первоначальное название - 3GIO) использует концепцию PCI, однако физическая их реализация кардинально отличается. На физическом уровне PCI Express представляе
Локализация данных
Под локализацией данных будем понимать возможность обращения к одному из ВУ, а также адресации данных на нем.
Адрес ВУ обычно содержится в адресной части команд ввода/вывод
Управление и синхронизация
Функция управления и синхронизации заключается в том, что МВВ должен координировать перемещение данных между внутренними ресурсами ВМ и внешними устройствами. При разработке систем
Обмен информацией
Основной функцией МВВ является обеспечение обмена информацией. Со стороны «большого» интерфейса - это обмен с ЦП, а со стороны «малого» интерфейса - обмен с ВУ. В таком плане треб
Система прерываний и исключений в архитектуре IA-32
Прерывания и исключения - это события, которые указывают на возникновение в системе или в выполняемой в данный момент задаче определенных условий, требующих вмешательства процессора
Расширенный программируемый контроллер прерываний (APIC)
Микропроцессоры IA-32, начиная с модели Pentium, содержат встроенный расширенный программируемый контроллер прерываний (APIC). Встроенный APIC предназначен для регистрирования преры
Конвейеризация вычислений
Совершенствование элементной базы уже не приводит к кардинальному росту производительности ВМ. Более перспективными в этом плане представляются архитектурные приемы, среди которых о
Синхронные линейные конвейеры
Эффективность синхронного конвейера во многом зависит от правильного выбора длительности тактового периода Тк. Минимально допустимую Тк можно определить как
Метрики эффективности конвейеров
Чтобы охарактеризовать эффект, достигаемый за счет конвейеризации вычислений, обычно используют три метрики: ускорение, эффективность и производительность.
Под ускорен
Нелинейные конвейеры
Конвейер не всегда представляет собой линейную цепочку этапов. В ряде ситуаций оказывается выгодным, когда функциональные блоки соединены между собой не последовательно, а в соотв
Конвейер команд
Идея конвейера команд была предложена в 1956 году академиком С. А. Лебедевым. Как известно, цикл команды представляет собой последовательность этапов. Возложив реализацию каждого из
Конфликты в конвейере команд
Полученное в примере число 14 характеризует лишь потенциальную производительность конвейера команд, На практике в силу возникающих в конвейере конфликтных ситуаций достичь такой про
Методы решения проблемы условного перехода
Несмотря на важность аспекта вычисления исполнительного адреса точки перехода, основные усилия проектировщиков ВМ направлены на решение проблемы условных переходов, поскольку именн
Предсказание переходов
Предсказание переходов на сегодняшний день рассматривается как один из наиболее эффективных способов борьбы с конфликтами по управлению. Идея заключается в том, что еще до момента
Статическое предсказание переходов
Статическое предсказание переходов осуществляется на основе некоторой априорной информации о подлежащей выполнению программе. Предсказание делается на этапе компиляции программы и
Динамическое предсказание переходов
В динамических стратегиях решение о наиболее вероятном исходе команды УП принимается в ходе вычислений, исходя из информации о предшествующих переходах (истории переходов), собирае
Суперконвейерные процессоры
Эффективность конвейера находится в прямой зависимости от того, с какой частотой на его вход подаются объекты обработки. Добиться n-кратного увеличения темпа работы конвейера можно
Архитектуры с полным и сокращенным набором команд
Современная технология программирования ориентирована на языки высокого уровня (ЯВУ), главная задача которых - облегчить процесс написания программ. Более 90% всего процесса програм
Основные черты RISC-архитектуры
Главные усилия в архитектуре RISC направлены на построение максимально эффективного конвейера команд, то есть такого, где все команды извлекаются из памяти и поступают в ЦП на обр
Преимущества и недостатки RISC
Сравнивая достоинства и недостатки CISC и RISC, невозможно сделать однозначный вывод о неоспоримом преимуществе одной архитектуры над другой. Для отдельных сфер использования ВМ л
Суперскалярные процессоры
Поскольку возможности по совершенствованию элементной базы уже практически исчерпаны, дальнейшее повышение производительности ВМ лежит в плоскости архитектурных решений. Как уже о
Лабораторная работа. Исполнительные устройства ВМ
Счетчики.Счетчиком называют устройство, сигналы на выходе которого отображают число импульсов, поступивших на счетный вход. JK-триггер может служить примером просте
Характеристики систем памяти
Перечень основных характеристик, которые необходимо учитывать, рассматривая конкретный вид ЗУ, включает в себя:
· место расположения;
· емкость;
· единицу
Иерархия запоминающих устройств
Память часто называют «узким местом» фон-неймановских ВМ из-за ее серьезного отставания по быстродействию от процессоров, причем разрыв этот неуклонно увеличивается. Так, если прои
Основная память
Основная память (ОП) представляет собой единственный вид памяти, к которой ЦП может обращаться непосредственно (исключение составляют лишь регистры центрального процессора). Информация, хранящая
Блочная организация основной памяти
Емкость основной памяти современных ВМ слишком велика, чтобы ее можно было реализовать на базе единственной интегральной микросхемы (ИМС). Необходимость объединения нескольких ИМС
Организация микросхем памяти
Интегральные микросхемы (ИМС) памяти организованы в виде матрицы ячеек, каждая из которых, в зависимости от разрядности ИМС, состоит из одного или более запоминающих элементов (ЗЭ)
Синхронные и асинхронные запоминающие устройства
В качестве первого критерия, по которому можно классифицировать запоминающие устройства основной памяти, рассмотрим способ синхронизации. С этих позиций известные типы ЗУ подразде
Оперативные запоминающие устройства
Большинство из применяемых в настоящее время типов микросхем оперативной памяти не в состоянии сохранять данные без внешнего источника энергии, то есть являются энергозависимыми (vo
Статическая и динамическая оперативная память
В статических ОЗУ запоминающий элемент может хранить записанную информацию неограниченно долго (при наличии питающего напряжения). Запоминающий элемент динамического
Статические оперативные запоминающие устройства
Напомним, что роль запоминающего элемента в статическом ОЗУ исполняет триггер. Статические ОЗУ на настоящий момент – наиболее быстрый, правда, и наиболее дорогостоящий вид оперативн
Лабораторная работа. Расширенная работа с памятью и передача управления в программе
Реализуйте на языке ассемблера микропроцессора i8086 следующие программы, используя команды передачи управления call и ret:
1. Определить резу
Магнитные диски
Информация в ЗУ на магнитных дисках (МД) хранится на плоских металлических или пластиковых пластинах (дисках), покрытых магнитным материалом. Данные записываются и считываются с д
Организация данных и форматирование
Данные на диске организованы в виде набора концентрических окружностей, называемых дорожками (рис. 72). Каждая из них имеет ту же ширину, что и головка. Соседние дорожки разделены промежутками. Эт
Внутреннее устройство дисковых систем
В ЗУ с фиксированными головками приходится по одной головке считывания/ записи на каждую дорожку. Головки смонтированы на жестком рычаге, пересекающем все дорожки диска. В дисковом
Концепция массива с избыточностью
Магнитные диски, будучи основой внешней памяти любой ВМ, одновременно остаются и одним из «узких мест» из-за сравнительно высокой стоимости, недостаточной производительности и отк
Повышение производительности дисковой подсистемы
Повышение производительности дисковой подсистемы в RAID достигается с помощью приема, называемого расслоением или расщеплением (striping). В его основе лежит разбиение данных и ди
Повышение отказоустойчивости дисковой подсистемы
Одной из целей концепции RAID была возможность обнаружения и коррекции ошибок, возникающих при отказах дисков или в результате сбоев. Достигается это за счет избыточного дискового п
RAID уровня 0
RAID уровня 0, строго говоря, не является полноценным членом семейства RAID, поскольку данная схема не содержит избыточности и нацелена только на повышение производительности в уще
RAID уровня 1
В RAID 1 избыточность достигается с помощью дублирования данных. В принципе исходные данные и их копии могут размещаться по дисковому массиву произвольно, главное чтобы они находи
RAID уровня 2
В системах RAID 2 используется техника параллельного доступа, где в выполнении каждого запроса на В/ВЫВ одновременно участвуют все диски. Обычно шпиндели всех дисков синхронизиров
RAID уровня 3
RAID 3 организован сходно с RAID2. Отличие в том, что RAID 3 требует только одного дополнительного диска - диска паритета, вне зависимости от того, насколько велик массив дисков (р
RAID уровня 4
По своей идее и технике формирования избыточной информации RAID 4 идентичен RAID 3, только размер полос в RAID 4 значительно больше (обычно один-два физических блока на диске). Гла
RAID уровня 5
RAID 5 имеет структуру, напоминающую RAID 4. Различие заключается в том, что RAID 5 не содержит отдельного диска для хранения полос паритета, а разносит их по всем дискам. Типичное
RAID уровня 6
RAID 6 очень похож на RAID 5. Данные также разбиваются на полосы размером в блок и распределяются по всем дискам массива. Аналогично, полосы паритета распределены по разным дискам.
RAID уровня 7
Схема RAID 7, запатентованная Storage Computer Corporation, объединяет массив асинхронно работающих дисков и кэш-память, управляемые встроенной в кон троллер массива операционной с
RAID уровня 10
Данная схема совпадает с RAID 0, но в отличие от нее роль отдельных дисков выполняют дисковые массивы, построенные по схеме RAID 1 (рис. 83).
Таким образом, в RAID 10 соче
Особенности реализации RAID-систем
Массивы RAID могут быть реализованы программно, аппаратно или как комбинация программных и аппаратных средств.
При программной реализации используются обычные дисковые кон
Оптическая память
В 1983 году была представлена первая цифровая аудиосистема на базе компакт-дисков (CD - compact disk). Компакт-диск - это односторонний диск, способный хранить более чем 60-минутную
Уровни параллелизма
Методы и средства реализации параллелизма зависят от того, на каком уровне он должен обеспечиваться. Обычно различают следующие уровни параллелизма:
· Уровень заданий. Неск
Параллелизм уровня программ
О параллелизме на уровне программы имеет смысл говорить в двух случаях. Во-первых, когда в программе могут быть выделены независимые участки, которые допустимо выполнять параллельно
Параллелизм уровня команд
Параллелизм на уровне команд имеет место, когда обработка нескольких команд или выполнение различных этапов одной и той же команды может перекрываться во времени. Разработчики вычис
Профиль параллелизма программы
Число процессоров многопроцессорной системы, параллельно участвующих в выполнении программы в каждый момент времени t, определяют понятием степень параллелизма D(t) (
Рассмотрим параллельное выполнение программы со следующими характеристиками:
· О(п) - общее число операций (команд), выполненных на п-процессорной системе;
Закон Амдала
Приобретая для решения своей задачи параллельную вычислительную систему, пользователь рассчитывает на значительное повышение скорости вычислений за счет распределения вычислительной
Закон Густафсона
Известную долю оптимизма в оценку, даваемую законом Амдала, вносят исследования, проведенные уже упоминавшимся Джоном Густафсоном из NASA Ames Research. Решая на вычислительной сис
Когерентность кэш- памяти в SMP- системах
Требования, предъявляемые современными процессорами к полосе пропускания памяти можно существенно сократить путем применения больших многоуровневых кэшей. Тогда, если эти требования
Когерентность кэш- памяти в MPP-системах
Существуют два различных способа построения крупномасштабных систем с распределенной памятью. Простейший способ заключается в том, чтобы исключить аппаратные механизмы, обеспечивающ
Организация прерываний в мультипроцессорных системах
Рассмотрим реализацию прерываний в наиболее простых симметричных многопроцессорных системах, в которых используется несколько процессоров, объединенных общей шиной. Каждый процессор
Заключение
Охватить все аспекты строения и организации вычислительных машин в одном издании (да и в рамках одного курса) не представляется возможным. Знания в этой области человеческой деятель
Библиографический список
1. Авен, О. И. Оценка качества и оптимизации вычислительных систем / О.И. Авен, Н. Я. Турин, А. Я. Коган. – М.: Наука, 1982. – 464 с.
2. Воеводин, В. В. Параллельные вычи
Динамическая оперативная память (Dynamic RAM - DRAM) используется в большинстве систем оперативной памяти современных ПК. Основное преимущество памяти этого типа состоит в том, что ее ячейки очень плотно упакованы, т.е. в небольшую микросхему можно упаковать много битов, а значит, на их основе можно организовать память большой емкости.
Ячейки памяти в микросхеме DRAM - это крошечные конденсаторы, которые удерживают заряды. Именно так (наличием или отсутствием зарядов) и кодируются биты. Проблемы, связанные с памятью этого типа, вызваны тем, что она динамическая, т.е. должна постоянно регенерироваться, так как в противном случае электрические заряды в конденсаторах памяти будут “стекать” и данные будут потеряны. Регенерация происходит, когда контроллер памяти системы берет крошечный перерыв и обращается ко всем строкам данных в микросхемах памяти. Большинство систем имеют контроллер памяти (обычно встраиваемый в набор микросхем системной платы, однако он может быть встроен и в процессор, как в процессорах Athlon 64 и Opteron), который настроен на соответствующую промышленным стандартам частоту регенерации, равную 15 мс. Это означает, что каждые 15 мс прочитываются все строки в памяти для обеспечения регенерации данных.
Регенерация памяти, к сожалению, отнимает время у процессора. Каждый цикл регенерации по длительности занимает несколько тактов центрального процессора. В старых компьютерах циклы регенерации могли занимать до 10% (или больше) процессорного времени, но в современных системах эти расходы составляют менее 1%. Некоторые системы позволяют изменить параметры регенерации с помощью программы настройки BIOS. Интервал между циклами обновления называется tREF и задается не в миллисекундах, а в тактах. Очень важно понимать, что увеличение значения интервала между циклами обновления для повышения быстродействия системы может привести к случайным произвольным ошибкам.
Произвольная ошибка - это ошибка обработки данных, не связанная с дефектом микросхемы памяти. В большинстве случаев надежнее придерживаться рекомендуемой или заданной по умолчанию частоты регенерации. Поскольку затраты на регенерацию в современных компьютерах составляют менее 1%, изменение частоты регенерации оказывает незначительное влияние на характеристики компьютера. Одним из наиболее приемлемых вариантов является использование для синхронизации памяти значений по умолчанию или автоматических настроек, заданных с помощью программы Setup BIOS. Большинство современных систем не позволяют изменять заданную синхронизацию памяти, постоянно используя автоматически установленные параметры.
В устройствах DRAM для хранения одного бита используются только один транзистор и пара конденсаторов, поэтому они более вместительны, чем микросхемы других типов памяти. В настоящее время уже выпускаются микросхемы динамической оперативной памяти емкостью 4 Гбайт и больше. Это означает, что подобные микросхемы содержат более миллиарда транзисторов! А ведь процессор Core 2 Duo имеет только 230 млн. транзисторов. Откуда такая разница? Дело в том, что в микросхеме памяти все транзисторы и конденсаторы размещаются последовательно, обычно в узлах квадратной решетки, в виде очень простых, периодически повторяющихся структур, в отличие от процессора, представляющего собой более сложную схему различных структур, не имеющую четкой организации.
Транзистор каждого одноразрядного регистра DRAM используется для чтения состояния смежного конденсатора. Если конденсатор заряжен, в ячейке записана единица; если заряда нет - записан нуль. Заряды в крошечных конденсаторах все время стекают, поэтому память должна постоянно регенерироваться. Даже мгновенное прерывание подачи питания или какой-нибудь сбой в циклах регенерации приводит к потере заряда в ячейке DRAM, а, следовательно, и к потере данных. В работающей системе это приводит к появлению “синего экрана смерти”, глобальным отказам системы защиты, повреждению файлов или к полному отказу системы.
Типы ОЗУ и производительность
В вопросах производительности памяти наблюдается некоторая путаница, поскольку обычно она измеряется в наносекундах, в то время как быстродействие процессоров - в мегагерцах и гигагерцах. В новых быстродействующих модулях памяти быстродействие измеряется в мегагерцах, что дополнительно усложняет ситуацию. К счастью, перевести одни единицы измерения в другие не составляет труда.
Наносекунда - это одна миллиардная доля секунды, т.е. очень короткий промежуток времени. В частности, скорость света в вакууме равна 299 792 км/с, т.е. за одну миллиардную долю секунды световой луч проходит расстояние, равное всего 29,98 см, т.е. меньше длины обычной линейки.
Быстродействие микросхем памяти и систем в целом выражается в мегагерцах (МГц), т.е. в миллионах тактов в секунду, или же в гигагерцах (ГГц), т.е. в миллиардах тактов в секунду. Современные процессоры имеют тактовую частоту от 2 до 4 ГГц, хотя гораздо большее влияние на их производительность оказывает их внутренняя архитектура (например, многоядерность).
При увеличении тактовой частоты продолжительность цикла уменьшается. В ходе эволюции компьютеров для повышения эффективности обращения к памяти создавались различные уровни кэширования, позволяющие перехватывать обращения процессора к более медленной основной памяти. Только недавно модули памяти DDR, DDR2 и DDR3 SDRAM сравняли свою производительность с шиной процессора. Когда частоты шин процессора и памяти равны, производительность памяти становится оптимальной для конкретной системы.
К 2000 году скорость шины процессора и памяти увеличилась до 100 и даже 133 МГц (эти модули назывались PC100 и PC133 соответственно). В начале 2001 года быстродействие памяти удвоилось и стало равным 200 и 266 МГц; в 2002 году выпускались модули памяти DDR со скоростью 333 МГц, а в 2003 году - 400 и 533 МГц. В 2005 и 2006 годах рост быстродействия памяти соответствовал росту скорости шины процессора - от 667 до 800 МГц. В 2007 году скорость памяти DDR2 была доведена до 1066 МГц, и одновременно с этим была выпущена память DDR3 с такой же и более высокой частотой. В таблице ниже перечислены основные типы модулей памяти и их быстродействие.
|
EDO. Extended Data Out (расширенные возможности вывода данных).
DIMM. Dual Inline Memory Module (модуль памяти с двухрядным расположением выводов).
DDR. Double Data Rate (удвоенная скорость передачи данных).
FPM. Fast Page Mode (быстрый постраничный режим).
SIMM. Single Inline Memory Module (модуль памяти с однорядным расположением выводов).
RIMM. Rambus Inline Memory Module (модуль памяти стандарта Rambus).
Быстродействие памяти
При замене неисправного модуля или микросхемы памяти новый элемент должен быть того же типа. Обычно проблемы возникают при использовании микросхем или модулей, не удовлетворяющих определенным (не слишком многочисленным) требованиям, например к длительности циклов регенерации. Можно также столкнуться с несоответствием в разводках выводов, емкости, разрядности или конструкции. Если вы не знаете, какие модули памяти позволяет использовать материнская плата, обратитесь к документации.
При установке более быстродействующих модулей памяти производительность компьютера, как правило, не повышается, поскольку система обращается к ней с прежней частотой. В системах, использующих модули DIMM и RIMM, быстродействие и прочие временные характеристики считываются из специального ПЗУ SPD, установленного на модуле. После этого контроллер памяти конфигурируется с применением этих параметров. Производительность таких систем можно повышать, устанавливая более скоростные модули памяти, вплоть до предела, поддерживаемого набором микросхем системной логики.
Чтобы акцентировать внимание на проблемах синхронизации и надежности, Intel и JEDEC создали стандарты для высокоскоростных модулей памяти, определяющие их типы, удовлетворяющие определенным уровням быстродействия. Согласно этим стандартам и выполняется классификация модулей памяти по временным характеристикам.
Основными признаками недостаточного быстродействия памяти или ее несоответствия временным характеристикам системы являются ошибки памяти и четности, а также “зависание” и неустойчивая работа системы. В этом случае тест POST также может выдать ошибки. Если точно не известно, какие модули памяти допустимы для вашей системы, свяжитесь с производителем компьютера и постарайтесь приобрести модули памяти от хорошо зарекомендовавшего себя поставщика.
Контроль четности и коды коррекции ошибок (ECC)
Ошибки при хранении информации в оперативной памяти неизбежны. Они обычно классифицируются как аппаратные отказы и нерегулярные ошибки (сбои).
Если нормально функционирующая микросхема вследствие, например, физического повреждения начинает работать неправильно, то это называется аппаратным отказом. Чтобы устранить данный тип отказа, обычно требуется заменить некоторую часть аппаратных средств памяти, например неисправную микросхему, модуль SIMM или DIMM.
Другой, более коварный тип отказа - нерегулярная ошибка (сбой). Это непостоянный отказ, который не происходит при повторении условий функционирования или через регулярные интервалы. (Такие отказы обычно “лечатся” выключением питания компьютера и последующим его включением.)
Приблизительно 20 лет назад сотрудники Intel установили, что причиной сбоев являются альфа-частицы. Поскольку альфа-частицы не могут проникнуть даже через тонкий лист бумаги, выяснилось, что их источником служит вещество, используемое в полупроводниках. При исследовании были обнаружены частицы тория и урана в пластмассовых и керамических корпусах микросхем, применявшихся в те годы. Изменив технологический процесс, производители памяти избавились от этих примесей.
В настоящее время производители памяти почти полностью устранили источники альфа-частиц. В связи с этим многие производители модулей памяти исключили из своей продукции поддержку проверки четности, несмотря на то что от сбоев памяти не удалось избавиться полностью. Более поздние исследования показали, что альфа-частицы охватывают лишь малую долю причин сбоев памяти.
Сегодня самая главная причина нерегулярных ошибок - космические лучи. Поскольку они имеют очень большую проникающую способность, от них практически невозможно защититься с помощью экранирования. Этот тезис был подтвержден рядом исследований, проведенных компанией IBM под руководством доктора Дж.Ф. Зиглера.
Эксперимент по проверке степени влияния космических лучей на появление ошибок в работе микросхем показал, что соотношение “сигнал–ошибка” (Signal-to-Error Ratio - SER) для некоторых модулей DRAM составило 5950 единиц интенсивности отказов (Failure Units - FU) на миллиард часов наработки для каждой микросхемы. Измерения проводились в условиях, приближенных к реальным, с учетом длительности в несколько миллионов машино-часов. В среднестатистическом компьютере это означало бы появление программной ошибки памяти примерно каждые шесть месяцев. В серверных системах или мощных рабочих станциях с большим объемом установленной оперативной памяти подобная статистика указывает на одну ошибку (или даже более) в работе памяти каждый месяц! Когда тестовая система с теми же модулями DIMM была размещена в надежном убежище на глубине более 15 метров под слоем каменной породы, что полностью устраняет влияние космических лучей, программные ошибки в работе памяти вообще не были зафиксированы. Эксперимент продемонстрировал не только опасность влияния космических лучей, но и доказал, насколько эффективно устранять влияние альфа-лучей и радиоактивных примесей в оболочках модулей памяти.
Ошибки, вызванные космическими лучами, представляют большую опасность для модулей SRAM, чем для DRAM, поскольку заряд, необходимый для хранения одного бита в ячейке SRAM, гораздо меньше емкости конденсатора в DRAM. Космические лучи также представляют большую опасность для микросхем памяти с повышенной плотностью. Чем выше плотность ячеек памяти, тем выше вероятность того, что космический луч заденет такую ячейку. С ростом объема памяти увеличивается и частота ошибок.
К сожалению, производители ПК не признали это причиной погрешностей памяти. Случайную природу сбоя намного легче оправдать разрядом электростатического электричества, большими выбросами мощности или неустойчивой работой программного обеспечения (например, использованием новой версии операционной системы или большой прикладной программы). Исследования показали, что для систем ECC доля программных ошибок в 30 раз больше, чем аппаратных. И это неудивительно, учитывая вредное влияние космических лучей. Количество ошибок зависит от числа установленных модулей памяти и их объема. Программные ошибки могут случаться и раз в месяц, и несколько раз в неделю, и даже чаще.
Хотя космические лучи и радиация являются причиной большинства программных ошибок памяти, существуют и другие факторы.
Скачки в энергоснабжении или шум на линии. Причиной может быть неисправный блок питания или настенная розетка.
Использование памяти с некорректным типом или характеристиками. Тип памяти должен поддерживаться конкретным набором микросхем и обладать определенной этим набором скоростью доступа.
Статические разряды. Вызывают моментальные скачки в энергоснабжении, что может повлиять на целостность данных.
Ошибки синхронизации. Не поступившие своевременно данные могут стать причиной появления программных ошибок. Зачастую причина заключается в неверных параметрах BIOS, оперативной памяти, быстродействие которой ниже, чем требуется системе, разогнанных процессорах и прочих системных компонентах.
Тепловыделение. Скоростные модули памяти характеризуются более высокими рабочими температурами, чем модули устаревших типов. Первыми модулями, оснащенными теплорассеивателями, оказались модули RDRAM RIMM; сейчас теплорассеивателями оснащены многие производительные модули DDR2 и DDR3, так как это единственный способ борьбы с повышенным уровнем тепловыделения.
Большинство описанных проблем не приводят к прекращению работы микросхем памяти (хотя некачественное энергоснабжение или статическое электричество могут физически их повредить), однако могут повлиять на хранимые данные.
Игнорирование сбоев, конечно, - не лучший способ борьбы с ними. Для повышения отказоустойчивости в современных компьютерах применяются такие методы как контроль четности и коды коррекции ошибок (ECC).
Системы без контроля четности вообще не обеспечивают отказоустойчивость. Единственная причина, по которой они используются, - их минимальная базовая стоимость. При этом, в отличие от других технологий, не требуется дополнительная оперативная память. Байт данных с контролем четности включает в себя 9, а не 8 бит, поэтому стоимость памяти с контролем четности выше примерно на 12,5%. Кроме того, контроллеры памяти, не требующие логических мостов для подсчета данных четности или ECC, обладают упрощенной внутренней архитектурой. Портативные системы, для которых вопрос минимального энергопотребления особенно важен, выигрывают от уменьшенного энергоснабжения памяти благодаря использованию меньшего количества микросхем DRAM. И наконец, шина данных памяти без контроля четности имеет меньшую разрядность, что выражается в сокращении количества буферов данных. Статистическая вероятность возникновения ошибок памяти в современных настольных компьютерах составляет примерно одну ошибку в несколько месяцев. При этом количество ошибок зависит от объема и типа используемой памяти.
Подобный уровень ошибок может оказаться приемлемым для обычных компьютеров, не используемых для работы с важными приложениями. В этом случае цена играет основную роль, а дополнительная стоимость модулей памяти с поддержкой контроля четности и кода ECC себя не оправдывает, поэтому легче смириться с нечастыми ошибками.
Контроль четности
Это один из введенных IBM стандартов, в соответствии с которым информация в банках памяти хранится фрагментами по 9 бит, причем восемь из них (составляющих один байт) предназначены собственно для данных, а девятый является битом четности. Использование девятого бита позволяет схемам управления памятью на аппаратном уровне контролировать целостность каждого байта данных. Если обнаруживается ошибка, работа компьютера останавливается, а на экран выводится сообщение о неисправности. Если вы работаете на компьютере под управлением Windows или OS/2, то при возникновении ошибки контроля четности сообщение, возможно, не появится, а просто произойдет блокировка системы. После перезагрузки система BIOS должна идентифицировать ошибку и выдать соответствующее сообщение.
Модули SIMM и DIMM поставляются как с поддержкой битов четности, так и без нее.
Первые ПК использовали память с контролем четности для регулировки точности осуществляемых операций. Начиная с 1994 года на рынке ПК стала развиваться тревожная тенденция. Большинство компаний начали предлагать компьютеры с памятью без контроля четности и вообще без каких бы то ни было средств определения или исправления ошибок. Применение модулей SIMM без контроля четности сокращало стоимость памяти на 10–15%. В свою очередь, память с контролем четности обходилась дороже за счет применения дополнительных битов четности. Технология контроля четности не позволяет исправлять системные ошибки, однако предоставляет пользователю компьютера возможность их обнаружить, что имеет следующие преимущества:
контроль четности защищает от последствий неверных вычислений на базе некорректных данных;
контроль четности точно указывает на источник возникновения ошибок, помогая разобраться в проблеме и улучшая степень эксплуатационной надежности компьютера.
Для реализации поддержки памяти с контролем четности или без него не требуется особых усилий. В частности, внедрить поддержку контроля четности для системной платы не составит труда. Основные затраты внедрения связаны со стоимостью самих модулей памяти с контролем четности. Если покупатели готовы пойти на дополнительные затраты для повышения надежности заказываемых систем, производители компьютеров могут предоставить им такую возможность.
Схема проверки четности
При разработке стандарта контроля четности IBM определила, что значение бита четности задается таким, чтобы количество единиц во всех девяти разрядах (восемь разрядов данных и разряд четности) было нечетным. Другими словами, когда байт (8 бит) данных заносится в память, специальная схема контроля четности (микросхема, установленная на системной плате или на плате памяти) подсчитывает количество единиц в байте. Если оно четное, на выходе микросхемы формируется сигнал логической единицы, который сохраняется в соответствующем разряде памяти как девятый бит (бит четности). Общее количество единиц во всех девяти разрядах при этом становится нечетным. Если же количество единиц в восьми разрядах исходных данных нечетное, то бит четности равен нулю, и сумма двоичных цифр в девяти разрядах также остается нечетной.
Рассмотрим конкретный пример (имейте в виду, что разряды в байте нумеруются с нуля, т.е. 0, 1, 2, ..., 7).
Значение бита: 1 0 1 1 0 0 1 1 0
В данном случае общее число единичных битов данных нечетное (5), поэтому бит четности должен быть равен нулю.
Рассмотрим еще один пример.
Разряд данных: 0 1 2 3 4 5 6 7 бит чётности
Значение бита: 0 0 1 1 0 0 1 1 1
В этом примере общее число единичных битов данных четное (4), поэтому бит четности должен быть равен единице, чтобы количество единиц во всех девяти разрядах было нечетным.
При считывании из памяти та же самая микросхема проверяет информацию на четность. Если в 9-разрядном байте число единиц четное, значит, при считывании или записи данных произошла ошибка. Определить, в каком разряде она произошла, невозможно (нельзя даже выяснить количество испорченных разрядов). Более того, если сбой произошел в трех разрядах (в нечетном их количестве), то ошибка будет зафиксирована; однако при двух ошибочных разрядах (или четном их количестве) сбой не регистрируется. Поскольку одновременная ошибка в нескольких разрядах одного байта крайне маловероятна, такая схема проверки была недорогой и при этом позволяла с большой вероятностью определять ошибки в памяти.
При обнаружении ошибки схема контроля четности на системной плате формирует немаскируемое прерывание (NMI) - системное предупреждение, которое программы не могут проигнорировать. Основная работа прекращается и инициируется специальная процедура, записанная в BIOS.
Еще несколько лет назад, когда память была дорогой, некоторые компании выпускали модули SIMM с фиктивными микросхемами проверки четности. Вместо того чтобы хранить биты четности для каждого байта памяти, эти микросхемы генерировали всегда корректный бит дополнения. Таким образом, когда система пыталась записать бит четности, он попросту отбрасывался, а при считывании байта всегда подставлялся “нужный” бит четности. В результате система всегда получала информацию о корректной работе памяти, хотя на самом деле все могло быть далеко не так.
Такие мошеннические действия были вызваны дороговизной микросхем памяти, и производители были готовы переплатить пару лишних долларов на генератор, чтобы не платить за более дорогую микросхему, хранящую биты четности. К сожалению, определить наличие в модуле памяти такого генератора было достаточно сложно. Поддельный генератор четности внешне отличался от обычных микросхем памяти и имел маркировку, отличную от других микросхем модуля. Большинство из генераторов имели логотип “GSM”, который указывал на изготовителя логического устройства проверки четности, часто отличавшегося от компании, выпустившей сам модуль памяти.
Единственным инструментом, позволявшим выявить модули с поддельным контролем четности, были аппаратные тестеры. Сейчас же цены на память упали, что устранило первопричину подобных махинаций.
Код коррекции ошибок
Коды коррекции ошибок (Error Correcting Code - ECC) позволяют не только обнаружить ошибку, но и исправить ее в одном разряде. Поэтому компьютер, в котором используются подобные коды, в случае ошибки в одном разряде может работать без прерывания, причем данные не будут искажены. Коды коррекции ошибок в большинстве ПК позволяют только обнаруживать, но не исправлять ошибки в двух разрядах. В то же время приблизительно 98% сбоев памяти вызвано именно ошибкой в одном разряде, т.е. она успешно исправляется с помощью данного типа кодов. Данный тип ECC получил название SEC_DED (эта аббревиатура расшифровывается как “одноразрядная коррекция, двухразрядное обнаружение ошибок”).
В кодах коррекции ошибок этого типа для каждых 32 бит требуется дополнительно семь контрольных разрядов при 4-байтовой и восемь - при 8-байтовой организации (64-разрядные процессоры Athlon/Pentium). Реализация кода коррекции ошибок при 4-байтовой организации, естественно, дороже обычной проверки четности, но при 8-байтовой организации их стоимости равны, поскольку требуют одного и того же количества дополнительных разрядов.
Для использования кодов коррекции ошибок необходим контроллер памяти, вычисляющий контрольные разряды при операции записи в память. При чтении из памяти такой контроллер сравнивает прочитанные и вычисленные значения контрольных разрядов и при необходимости исправляет испорченный бит (или биты). Стоимость дополнительных логических схем для реализации кода коррекции ошибок в контроллере памяти не очень высока, но это может значительно снизить быстродействие памяти при операциях записи. Это происходит потому, что при операциях записи и чтения необходимо ожидать завершения вычисления контрольных разрядов. При записи части слова вначале следует прочитать полное слово, затем перезаписать изменяемые байты и только после этого - новые вычисленные контрольные разряды.
В большинстве случаев сбой памяти происходит в одном разряде, и потому такие ошибки успешно исправляются с помощью кода коррекции ошибок. Использование отказоустойчивой памяти обеспечивает высокую надежность компьютера. Память с кодом ECC предназначена для серверов, рабочих станций или приложений, в которых потенциальная стоимость ошибки вычислений значительно превышает дополнительные средства, вкладываемые в оборудование, а также временные затраты системы. Если данные имеют особое значение, и компьютеры применяются для решения важных задач, без памяти ECC не обойтись. По сути, ни один уважающий себя системный инженер не будет использовать сервер, даже самый неприхотливый, без памяти ECC.
Пользователи имеют выбор между системами без контроля четности, с контролем четности и с ECC, т.е. между желательным уровнем отказоустойчивости компьютера и степенью ценности используемых данных.
Вывод
Для использования кодов коррекции ошибок необходим контроллер памяти, вычисляющий контрольные разряды при операции записи в память. Стоимость дополнительных логических схем для реализации кода коррекции ошибок в контроллере памяти не очень высока, но это может значительно снизить быстродействие памяти при операциях записи. Это происходит потому, что при операциях записи и чтения необходимо ожидать завершения вычисления контрольных разрядов.
Использование отказоустойчивой памяти обеспечивает высокую надежность компьютера. Память с кодом ECC предназначена для серверов, рабочих станций или приложений, в которых потенциальная стоимость ошибки вычислений значительно превышает дополнительные средства, вкладываемые в оборудование, а также временные затраты системы. Если данные имеют особое значение, и компьютеры применяются для решения важных задач, без памяти ECC не обойтись.
Типы ОЗУ.
Оперативная память – это память для временного хранения команд и данных, используемых в процессе работы ЭВМ. Она обеспечивает оперативный доступ к требуемой информации процессору, видеокарте и другим элементам ЭВМ, и временное хранение результатов их работы.
В принципе, к оперативной памяти можно отнести любой тип память, как энергонезависимый, так и зависимый, но обладающий достаточным быстродействием, масштабируемостью и надежностью для обеспечения работы процессора и других быстрых компонентов компьютера.
Однако на данный момент оперативную память можно разделить на три типа:
1. Динамическая память (DRAM) – энергозависимая полупроводниковая память с произвольным доступом, в которой каждый разряд храниться в конденсаторе, требующем постоянной регенерации для сохранения информации.
2. Статическая память (SRAM) – энергозависимая полупроводниковая память с произвольным доступом, в которой каждый разряд хранится в триггере, позволяющем поддерживать состояние разряда без постоянной перезаписи.
3. Магниторезистивная оперативная память (MRAM) – это энергонезависимое запоминающее устройство с произвольным доступом, сохраняющее информацию при помощи магнитных моментов, а именно, направления намагниченности ферромагнитного слоя ячейки памяти.
Это деление будет верно, только если не учитывать устаревшие типы памяти, такие как память на ртутных линиях задержки, запоминающие электронно-лучевые трубки (ЭЛТ), память на магнитных сердечниках и так далее, описанных в статье “ЭВМ первого поколения”.
И перспективные разработки, такие как:
FRAM (Ferroelectric Random Access Memory) – сегнетоэлектрическая память, основывающаяся на сегнетоэле?ктриках – диэлектриках, способных менять дипольный момент под действием температуры и внешнего электрического поля;
PCM (Phase Change Memory) – память, основанная на изменении фазового состояния вещества (Ха?лькогени?да) с кристаллического на аморфный и обратно;
PMC (Programmable Metallization Cell) – память на базе программируемой металлизации ячейки, основанной на изменении положения атомов под действием электрического заряда;
RRAM (Resistive Random-Access Memory) – резистивная память, построенная на основе элементов, способных изменять свое сопротивление, в зависимости от величины пропущенного через них тока;
и множество других типов памяти, пока еще не вышедших на рынок в массовом порядке или вообще находящихся в стадии разработки или лабораторного тестирования.
Причем, принцип работы многих из считающихся сегодня перспективными типами памяти был разработан десять и более лет назад, однако из-за дороговизны или сложности производства эти типы памяти не стали популярными, или их разработка вообще не была завершена. И только сейчас на них обратили пристальное внимание.
Динамическая оперативная память.
Динамическая оперативная память (DRAM – Dynamic Random Access Memory) – энергозависимая полупроводниковая память с произвольным доступом. На данный момент – это основной тип оперативной памяти, используемый в современных персональных компьютерах и обеспечивающий наилучший показатель отношения цена-качество по сравнению с другими типами оперативной памяти. Однако, требования к быстродействию, энергопотреблению и надежности оперативной памяти постоянно растут, и динамическая оперативная память уже с трудом соответствует современным потребностям, так что в ближайшие годы стоит ожидать появления серийно выпускаемых конкурирующих типов оперативной памяти, таких как магниторезистивная оперативная память.
1. Устройство динамической оперативной памяти.
1.1. Работа динамической памяти в состоянии покоя.
1.2. Работа динамической памяти при чтении данных и регенерации.
1.3. Работа динамической памяти при записи данных.
2. Этапы модернизации динамической оперативной памяти.
2.1. PM DRAM.
2.2. FPM DRAM.
2.3. EDO-DRAM.
2.4. SDRAM.
2.5. DDR SDRAM.
2.6. DDR2 SDRAM.
2.7. DDR3 SDRAM.
2.8. DDR4 SDRAM.
3. Достоинства и недостатки динамической памяти.
Устройство динамической оперативной памяти.
Динамическая оперативная память (DRAM – Dynamic Random Access Memory) – энергозависимая память с произвольным доступом, каждая ячейка которой состоит из одного конденсатора и нескольких транзисторов. Конденсатор хранит один бит данных, а транзисторы играют роль ключей, удерживающих заряд в конденсаторе и разрешающих доступ к конденсатору при чтении и записи данных.
Однако транзисторы и конденсатор – неидеальные, и на практике заряд с конденсатора достаточно быстро истекает. Поэтому периодически, несколько десятков раз в секунду, приходится дозаряжать конденсатор. К тому же процесс чтения данных из динамической памяти – деструктивен, то есть при чтении конденсатор разряжается, и необходимо его заново подзаряжать, чтобы не потерять навсегда данные, хранящиеся в ячейке памяти.
На практике существуют разные способы реализации динамической памяти. Упрощенная структурная схема одного из способов реализации приведена на рисунке 1.
Как видно из рисунка, основным блоком памяти является матрица памяти, состоящая из множества ячеек, каждая из которых хранит 1 бит информации.
Каждая ячейка состоит из одного конденсатора (С) и трех транзисторов. Транзистор VT1 разрешает или запрещает запись новых данных или регенерацию ячейки. Транзистор VT3 выполняет роль ключа, удерживающего конденсатор от разряда и разрешающего или запрещающего чтение данных из ячейки памяти. Транзистор VT2 используется для считывания данных с конденсатора. Если на конденсаторе есть заряд, то транзистор VT2 открыт, и ток пойдет по линии AB, соответственно, на выходе Q1 тока не будет, что означает – ячейка хранит бит информации с нулевым значением. Если заряда на конденсаторе нет, то конденсатор VT2 закрыт, а ток пойдет по линии AE, соответственно, на выходе Q1 ток будет, что означает – ячейка хранит бит информации со значением “единица”.
Заряд в конденсаторе, используемый для поддержания транзистора VT2 в открытом состоянии, во время прохождения по нему тока, быстро расходуется, поэтому при чтении данных из ячейки необходимо проводить регенерацию заряда конденсатора.
Для работы динамической памяти на матрицу должно всегда поступать напряжение, на схеме оно обозначено, как Uп. С помощью резисторов R напряжение питания Uп равномерно распределяется между всеми столбцами матрицы.
Также в состав памяти входит контроллер шины памяти, который получает команды, адрес и данные от внешних устройств и ретранслирует их во внутренние блоки памяти.
Команды передаются в блок управления, который организует работу остальных блоков и периодическую регенерацию ячеек памяти.
Адрес преобразуется в две составляющие – адрес строки и адрес столбца, и передается в соответствующие дешифраторы.
Дешифратор адреса строки определяет, с какой строки надо провести чтение или запись, и выдает на эту строку напряжение.
Дешифратор адреса столбца при чтении данных определяет, какие из считанных бит данных были запрошены и должны быть выданы в шину памяти. При записи данных дешифратор определяет, в какие столбцы надо подать команды записи.
Блок работы с данными определяет, какие данные, в какую ячейку памяти требуется записать, и выдает соответствующие биты данных для записи в эти ячейки.
Блоки регенерации определяют:
- когда происходит чтение данных и надо провести регенерацию ячейки, из которой данные были считаны;
- когда происходит запись данных, а, следовательно, регенерацию ячейки производить не надо.
Буфер данных сохраняет всю считанную строку матрицы, так как при чтении всегда считывается вся строка целиком, и позволяет потом выбрать из считанной строки требуемые биты данных.
Рассмотрим принцип работы динамической памяти на примере структурной схемы, приведенной на рисунке 1. Рассматривать будем работу с первой ячейкой (M11). Работа остальных ячеек памяти полностью идентична.
Глава 7. Запоминающие устройства ПК
После изучения главы вы должны знать:
запоминающие устройства трех уровней внутренней памяти ПК: микропроцессорную, основную и буферную кэш-память, их назначение, основные характеристики;
физическую и логическую структуру основной памяти, ее модули:SIPP,SIMM, DIMM и типы: DRAM, SDRAM, DRDRAM, DDRDRAM;
методы адресации ячеек основной памяти;
принципы организации виртуальной памяти;
назначение кэш-памяти разных уровней.
Персональные компьютеры имеют три основных уровня памяти:
l микропроцессорная память (МПП);
l основная память(ОП);
l внешняя память (ВЗУ).
К этим уровням добавляется промежуточная буферная или кэш-память. Кроме этого многие устройства ПК имеют собственную локальную память.
Две важнейших характеристики (емкость памяти и ее быстродействие) трех основных типов памяти приведены в табл. 9.1.
Таблица 9.1. Сравнительные характеристики запоминающих устройств
Быстродействие первых двух типов запоминающих устройств измеряется временем обращения (t обр) к ним, а быстродействие внешних запоминающих устройств - двумя параметрами: временем доступа (t дост) и скоростью считывания (V счит):
l t обр - сумма времени поиска, считывания и записи информации (в литературе это время часто называют временем доступа, что не совсем строго);
l t дост - время поиска информации на носителе;
l V счит - скорость последовательного считывания смежных байтов информации.
Напомним общепринятые сокращения: с - секунда, мс - миллисекунда, мкс - микросекунда, нс - наносекунда; 1с = 10 6 мс = 10 6 мкс = 10 9 нс.
Статическая и динамическая оперативная память
Оперативная память может формироваться из микросхем динамического (Dynamic Random Access Memory - DRAM) или статического (Static Random Access Memory - SRAM) типа.
Память статического типа обладает существенно более высоким быстродействием, но значительно дороже DRAM. В статической памяти элементы (ячейки) построены на различных вариантах триггеров - схем с двумя устойчивыми состояниями. После записи бита в такую ячейку она может пребывать в этом состоянии столь угодно долго - необходимо только наличие питания. При обращении к микросхеме статической памяти на нее подается полный адрес, который при помощи внутреннего дешифратора преобразуется в сигналы выборки конкретных ячеек. Ячейки SRAM имеют малое время срабатывания (единицы наносекунд), однако микросхемы на их основе отличаются низкой удельной емкостью (единицы Мбит на корпус) и высоким энергопотреблением. Поэтому статическая память используется в основном в качестве микропроцессорной и буферной (кэш-память).
В динамической памяти ячейки построены на основе полупроводниковых областей с накоплением зарядов - своеобразных конденсаторов, - занимающих гораздо меньшую площадь, нежели триггеры, и практически не потребляющих энергии при хранении. Конденсаторы расположены на пересечении вертикальных и горизонтальных шин матрицы; запись и считывание информации осуществляется подачей электрических импульсов по тем шинам матрицы, которые соединены с элементами, принадлежащими выбранной ячейке памяти. При обращении к микросхеме на ее входы вначале подается адрес строки матрицы, сопровождаемый сигналом RAS (Row Address Strobe - строб адреса строки), затем, через некоторое время - адрес столбца, сопровождаемый сигналом CAS (Column Address Strobe - строб адреса столбца). Поскольку конденсаторы постепенно разряжаются (заряд сохраняется в ячейке в течение нескольких миллисекунд), во избежание потери хранимой информации заряд в них необходимо постоянно регенерировать, отсюда и название памяти - динамическая. На подзаряд тратится и энергия и время, и это снижает производительность системы.
Ячейки динамической памяти по сравнению со статической имеют большее время срабатывания (десятки наносекунд), но большую удельную плотность (порядка десятков Мбит на корпус) и меньшее энергопотребление. Динамическая память используется для построения оперативных запоминающих устройств основной памяти ПК.
Кэш-память
Кэш-память имеет несколько уровней. Уровни l1, L2 и L3 это регистроваякэш-память - высокоскоростная память сравнительно большой емкости, являющаяся буфером между ОП и МП и позволяющая увеличить скорость выполнения операций. Регистры кэш-памяти недоступны для пользователя, отсюда и название кэш (cache), что в переводе с английского означает «тайник».
В современных материнских платах применяется конвейерный кэш с блочным доступом (Pipelined Burst Cache). В кэш-памяти хранятся копии блоков данных тех областей оперативной памяти, к которым выполнялись последние обращения, и весьма вероятны обращения в ближайшие такты работы - быстрый доступ к этим данным и позволяет сократить время выполнения очередных команд программы. При выполнении программы данные, считанные из ОП с небольшим опережением, записываются в кэш-память. В кэш-память записываются и результаты операций, выполненных в МП.
По принципу записи результатов в оперативную память различают два типа кэш-памяти:
l в кэш-памяти «с обратной записью» результаты операций прежде, чем их записать в ОП, фиксируются, а затем контроллер кэш-памяти самостоятельно перезаписывает эти данные в ОП;
l в кэш-памяти «со сквозной записью» результаты операций одновременно, параллельно записываются и в кэш-память, и в ОП.
Микропроцессоры, начиная от МП 80486, обладают встроенной в основное ядро МП кэш-памятью (или кэш-памятью 1-го уровня - L1), чем, в частности, и обусловливается их высокая производительность. Микропроцессоры Pentium имеют кэш-память отдельно для данных и отдельно для команд: у МП Pentium и Pentium Pro емкость этой памяти небольшая - по 8 Кбайт, у следующих версий МП Pentium по 16 Кбайт. У Pentium Pro и выше кроме кэш-памяти 1-го уровня есть и встроенная на микропроцессорную плату кэш-память 2-го уровня (L2) емкостью от 128 Кбайт до 2048 Кбайт. Эта встроенная кэш-память работает либо на полной тактовой частоте МП, либо на его половинной тактовой частоте.
Следует иметь в виду, что для всех МП может использоваться дополнительная кэш-память 2-го (L2) или 3-го (L3) уровня, размещаемая на материнской плате вне МП, емкость которой может достигать нескольких мегабайтов (кэш на MB относится к уровню 3, если МП, установленный на этой плате, имеет кэш 2-го уровня). Время обращения к кэш-памяти зависит от тактовой частоты, на которой кэш работает, и составляет обычно 1–2 такта. Так, для кэш-памяти L1 МП Pentium характерно время обращения 2–5 нс, для кэш-памяти L2 и L3 это время доходит до 10 нс. Пропускная способность кэш-памяти зависит и от времени обращения, и от пропускной способности интерфейса, и лежит в широких пределах от 300 до 3000 Мбайт/с.
Использование кэш-памяти существенно увеличивает производительность системы. Чем больше размер кэш-памяти, тем выше быстродействие, но эта зависимость нелинейная. Имеет место постепенное уменьшение скорости роста общей производительности компьютера с ростом размера кэш-памяти. Для современных ПКрост производительности, как правило, практически прекращается после 1 Мбайт кэш-памяти L2. Создается кэш-память L1, L2, L3 на основе микросхем статической памяти.
В современных ПК применяется и кэш-память между внешними запоминающими устройствами на дисках и оперативной памятью, обычно относящаяся к 3-му уровню, реже, если есть кэш L3 на системной плате, к 4-му уровню. Кэш-память для ВЗУ создается либо в поле оперативной памяти, либо непосредственно в модуле самого ВЗУ.
Основная память
При рассмотрении структуры основной памяти можно говорить как о физической структуре, то есть об основных ее конструктивных компонентах, так и о логической структуре, то есть о ее различных областях, условно выделенных для организации более удобных режимов их использования и обслуживания.
□ tдост - время поиска информации на носителе;
□ Vсчит ~~ скорость считывания смежных байтов информации подряд (трансфер). Напомним общепринятые сокращения: с - секунда, мс - миллисекунда, мкс - микросекунда, нc - наносекунда; 1 с = 106мс = 106мкс = 109нс.
Статическая и динамическая оперативная память
Оперативная память может строиться на микросхемах динамического (Dinamic Random Access Memory - DRAM) или статического (Static Random Access Memory - SRAM) типа.
Статический тип памяти обладает существенно более высоким быстродействием, но значительно дороже динамического. В статической памяти элементы (ячейки) построены на различных вариантах триггеров - схем с двумя устойчивыми состояниями. После записи бита в такую ячейку она может пребывать в этом состоянии сколь угодно долго - необходимо только наличие питания. При обращении к микросхеме статической памяти на нее подается полный адрес, который при помощи внутреннего дешифратора преобразуется в сигналы выборки конкретных ячеек. Ячейки статической памяти имеют малое время срабатывания (единицы наносекунд), однако микросхемы на их основе имеют низкую удельную емкость (единицы мегабит на корпус) и высокое энергопотребление. Поэтому статическая память используется в основном в качестве микропроцессорной и буферной (кэшпамять).
В динамической памяти ячейки построены на основе полупроводниковых областей с накоплением зарядов (своеобразных конденсаторов), занимающих гораздо меньшую площадь, нежели триггеры, и практически не потребляющих энергии при хранении. Конденсаторы расположены на пересечении вертикальных и горизонтальных шин матрицы; запись и считывание информации осуществляется подачей электрических импульсов по тем шинам матрицы, которые соединены с элементами, принадлежащими выбранной ячейке памяти. При обращении к микросхеме на ее входы вначале подается адрес строки матрицы, сопровождаемый сигналом RAS (Row Address Strobe - строб адреса строки), затем, через некоторое время - адрес столбца, сопровождаемый сигналом С AS (Column Address Strobe - строб адреса столбца). Поскольку конденсаторы постепенно разряжаются (заряд сохраняется в ячейке в течение нескольких миллисекунд), во избежание потери хранимой информации заряд в них необходимо постоянно регенерировать, отсюда и название памяти - динамическая. На подзаряд тратится и энергия и время, и это снижает производительность системы.
Ячейки динамической памяти по сравнению со статической имеют большее время срабатывания (десятки наносекунд), но большую удельную плотность (порядка десятков мегабит на корпус) и меньшее энергопотребление. Динамическая память используется для построения оперативных запоминающих устройств основной памяти ПК.
https://pandia.ru/text/78/135/images/image002_232.gif" width="491" height="2 src=">Основная память
При рассмотрении структуры основной памяти можно говорить как о физической структуре, то есть об основных ее конструктивных компонентах, так и о логической структуре, то есть о ее различных областях, условно выделенных для организации более удобных режимов их использования и обслуживания.
Физическая структура основной памяти
Упрощенная структурная схема модуля основной памяти при матричной его организации представлена на рис. 6.1.
При матричной организации адрес ячейки, поступающий в регистр адреса Рег. адр., например, по 20-разрядным кодовым шинам адреса, делится на две 10-разрядные части, поступающие соответственно в Рег. адр. X и Рег. адр. Y . Из этих регистров коды полуадресов поступают в дешифраторы Дешифратор X и Дешифратор У, каждый из которых в соответствии с полученным адресом выбирает одну из 1024 шин. По выбранным шинам подаются сигналы записи/считывания в ячейку памяти, находящуюся на пересечении этих шин. Таким образом, адресуется 106 (точнее, 10242) ячеек.
Считываемая или записываемая информация поступает в регистр данных (Рег.-данных), непосредственно связанный с кодовыми шинами данных. Управляющие сигналы, определяющие, какую операцию следует выполнить, поступают по кодовым шинам инструкций. Куб памяти содержит набор запоминающих элементов - собственно ячеек памяти.
Основная память (ОП) содержит оперативное (RAM - Random Access Memory) и постоянное (ROM - Read Only Memory) запоминающие устройства.
Оперативное запоминающее устройство (ОЗУ) предназначено для хранения информации (программ и данных), непосредственно участвующей в вычислительном процессе в текущий интервал времени. ОЗУ - энергозависимая память: при отключении напряжения питания информация, хранящаяся в ней, теряется. Основу ОЗУ составляют микросхемы динамической памяти DRAM. Это большие интегральные схемы, содержащие матрицы полупроводниковых запоминающих
элементов - полупроводниковых конденсаторов. Наличие заряда в конденсаторе обычно означает «1», отсутствие заряда- «О». Конструктивно элементы оперативной памяти выполняются в виде отдельных модулей памяти - небольших плат с напаянными на них одной или, чаще, несколькими микросхемами. Эти модули вставляются в разъемы - слоты на системной плате. На материнской плате может быть несколько групп разъемов (банков) для установки модулей памяти; в один банк можно ставить только блоки одинаковой емкости; блоки разной емкости можно устанавливать в разных банках.
https://pandia.ru/text/78/135/images/image003_187.gif" width="490">дулей памяти весьма высокая - среднее время наработки на отказ составляет сотни тысяч часов, но тем не менее предпринимаются и дополнительные меры повышения надежности. Вопросы обеспечения надежности и достоверности ввиду их важности специально рассмотрены в части 6 учебника. Здесь лишь укажем, что одним из направлений, повышающих надежность функционирования подсистемы памяти, является использование специальных схем контроля и избыточного кодирования информации.
Модули памяти бывают с контролем четности (parity) и без контроля четности (nоn parity) хранимых бит данных. Контроль по четности позволяет лишь обнаружить ошибку и прервать исполнение выполняемой программы. Существуют и более дорогие модули памяти с автоматической коррекцией ошибок - ЕСС-память, использующие специальные корректирующие коды с исправлением ошибок (см. раздел «Обеспечение достоверности информации» главы 20).
ПРИМЕЧАНИЕ
Некоторые недобросовестные фирмы (китайские, например) с целью повышения конкурентоспособности своих изделий в глазах неопытных покупателей ставят в модули специальный имитатор четности - микросхему-сумматор, выдающую при считыва нии ячейки всегда правильный бит четности. В этом случае никакого контроля нет, а лишь имитируется его выполнение. Надо сказать, что эта имитация иногда и полезна, ибо существуют системные платы, требующие для своей корректной работы при сутствия бита контроля четности.
https://pandia.ru/text/78/135/images/image006_129.gif" width="491">микросхемами памяти типа DIP. SIMM бывают двух разных типов: короткие на 30 контактов (длина 75 мм) и длинные на 72 контакта (длина 100 мм). Модули SIMM имеют емкость 256 Кбайт, 1,4, 8, 16, 32 и 64 Мбайт. Модули SIMM выпускаются с контролем и без контроля по четности и с эмуляцией контроля по четности. SIMM отличаются также быстродействием - обычно они имеют время обращения 60 и 70 нc. Сейчас такое время обращения считается нежелательным, поэтому модули SIMM встречаются только в устаревших ПК.
DIMM (Dual In line Memory Module) - более современные модули, имеющие 168-контактные разъемы (длина модуля 130 мм); могут устанавливаться только на те типы системных плат, которые имеют соответствующие разъемы. Появление DIMM стимулировалось использованием процессоров Pentium, имеющих шину данных 64 бит. Необходимое число модулей памяти для заполнения шины называется банком памяти. В случае 64-разрядной шины для этого требуется два 32-битных 72-контактных модуля SIMM или один 64-битный модуль DIMM, имеющий 168 контактов. Модуль DIMM может иметь разрядность 64 бита (без контроля четности), 72 бита (с контролем четности) и 80 бит (память ЕСС). Емкость модулей DIMM: 16, 32, 64,128, 256 и 512 Мбайт. Время обращения, характерное для современных модулей DIMM, работающих на частоте 100 и 133 МГц (модули РС100, РС133), лежит в пределах 6-10 нc.
RIMM (Rambus In line Memory Module) - новейший тип оперативной памяти. Появление памяти Direct Rambus DRAM потребовало нового конструктива для модулей памяти. Микросхемы Direct RDRAM собираются в модули RIMM, внешне подобные стандартным DIMM, что, кстати, и нашло отражение в названии модулей нового конструктива. На плате модуля RIMM может быть до 16 микросхем памяти Direct RDRAM, установленных по восемь штук с каждой стороны платы. Модули RIMM могут быть использованы на системных платах с форм-фактором ATX, BIOS и чипсеты которых рассчитаны на использование данного типа памяти. Среди микросхем фирмы Intel это чипсеты i820, i840, i850 и их модификации. На системной плате может быть до четырех разъемов под данные модули. Необходимо отметить, что модули RIMM требуют интенсивного охлаждения. Это связано со значительным энергопотреблением и, соответственно, тепловыделением, что обусловлено высоким быстродействием данных модулей памяти (время обращения 5 не и ниже). Хотя внешне модули RIMM напоминают модули DIMM, они имеют меньшее число контактов и с обеих сторон закрыты специальными металлическими экранами, которые защищают модули RIMM, работающие на больших частотах, экранируя их чувствительные электронные схемы от внешних электромагнитных наводок. В настоящее время спецификации определяют три типа модулей, отличающихся рабочими частотами и пропускной способностью. Обозначаются они как RIMM PC800, RIMM PC700, RIMM PC600. Наиболее быстродействующими являются модули RIMM PC800, работающие с чипсетом i850, на внешней тактовой частоте 400 МГц и имеющие пропускную способность 1,6 Гбайт/с. Модули
RIMM PC600 и RIMM PC700 предназначены для работы на повышенных частотах шины памяти, например на частоте 133 МГц, поддерживаемой современными чипсетами.
Типы оперативной памяти
Различают следующие типы оперативной памяти:
□ DRDRAM и. д.т.
FPM DRAM
FPM DRAM (Fast Page Mode DRAM) - динамическая память с быстрым страничным доступом, активно используется с микропроцессорами 80386 и 80486. Память со страничным доступом отличается от обычной динамической памяти тем, что после выбора строки матрицы и удержании RAS допускает многократную установку адреса столбца, стробируемого CAS. Это позволяет ускорить блочные передачи, когда весь блок данных или его часть находятся внутри одной строки матрицы, называемой в этой системе страницей. Существует две разновидности FPM DRAM, отличающиеся временем обращения: 60 и 70 нc. Ввиду своей медлительности они не эффективны в системах с процессорами уровня Pentium II. Модули FPM DRAM в основном выпускались в конструктиве SIMM.
RAM EDO
RAM EDO (EDO - Extended Data Out, расширенное время удержания данных на выходе), фактически представляет собой обычные микросхемы FPM, к которым добавлен набор регистров-«защелок», благодаря чему данные на выходе могут удерживаться в течение следующего запроса к микросхеме. При страничном обмене такие микросхемы работают в режиме простого конвейера: удерживают на выходе содержимое последней выбранной ячейки, в то время как на их входы уже подается адрес следующей выбираемой ячейки. Это позволяет примерно на 15 % по сравнению с FPM ускорить процесс считывания последовательных массивов данных. При случайной адресации такая память никакого выигрыша в быстродействии не дает. Память типа RAM EDO имеет минимальное время обращения 45 нc и максимальную скорость передачи данных по каналу процессор-память 264 Мбайт/с. Модули RAM EDO выпускались в конструктивах SIMM и DIMM.
BEDO DRAM
BEDO DRAM (Burst Extended Data Output, EDO с блочным доступом). Современные процессоры благодаря внутреннему и внешнему кэшированию команд
и данных обмениваются с основной памятью преимущественно блоками слов максимальной длины. Этот вид памяти позволяет читать данные пакетно (блоками), так что данные считываются блоками за один такт. В случае памяти ВЕDО отпадает необходимость постоянной подачи последовательных адресов на входы микросхем с соблюдением необходимых временных задержек - достаточно строби-ровать переход к очередному слову блока. Этот метод позволяет BEDO DRAM работать очень быстро. Память BEDO DRAM поддерживают некоторые чипсеты фирм VIA Apollo (580VP, 590VP, 680VP) и Intel (i480TX и т. д.) на частоте шины не выше 66 МГц. Активную конкуренцию этому виду памяти составляет память SDRAM, которая постепенно ее и вытесняет. BEDO DRAM представлена модулями и SIMM и DIMM.
SDRAM (Synchronous DRAM - синхронная динамическая память), память с синхронным доступом, увеличивает производительность системы за счет синхронизации скорости работы ОЗУ со скоростью работы шины процессора. SDRAM также осуществляет конвейерную обработку информации , выполняется внутреннее разделение массива памяти на два независимых банка, что позволяет совмещать выборку из одного банка с установкой адреса в другом банке. SDRAM также поддерживает блочный обмен. Основная выгода от использования SDRAM состоит в поддержке последовательного доступа в синхронном режиме, где удается исключить дополнительные такты ожидания. Память SDRAM может устойчиво работать на высоких частотах: выпускаются модули, рассчитанные на работу при частотах 100 МГц (спецификация РС100) и 133 МГц (РС133). В начале 2000 года фирма Samsung объявила о выпуске новых чипов SDRAM с рабочей частотой 266 МГц. Время обращения к данным в этой памяти зависит от внутренней тактовой частоты МП и достигает 5-10 нc, максимальная скорость передачи данных процессор-память при частоте шины 100 МГц составляет 800 Мбайт/с (фактически равна скорости передачи данных по каналу процессор-кэш). Память SDRAM дает общее увеличение производительности ПК примерно на 25 %. Правда, эта цифра относится к работе ПК без кэш-памяти - при наличии мощной кэш выигрыш в производительности может составить всего несколько процентов. SDRAM обычно выпускается в 168-контактных модулях типа DIMM. Используется не только в качестве оперативной памяти, но и как память видеоадаптеров, где она полезна при просмотре живого видео и при работе с трехмерной графикой.
DDR SDRAM
DDR SDRAM (Double Data Rate SDRAM - SDRAM 2). Вариант памяти SDRAM, осуществляющий передачу информации по обоим фронтам тактового сигнала. Это позволяет удвоить пропускную способность по сравнению с традиционной памятью SDRAM (до 1,6 Гбайт/с при частоте шины 100 МГц). Кроме того, DDR SDRAM может работать на более высокой частоте - в начале 2000 года были выпущены 143, 166 и 183 МГц 64-мегабитные модули DDR SDRAM. Модули DDR DRAM конструктивно совместимы с традиционными 168-контактными DIMM. Исполь-
зуется не только в качестве элементов оперативной памяти, но и в высокопроизводительных видеоадаптерах. Сейчас они ориентированы в первую очередь на рынок видеоадаптеров.
DRDRAM (Direct Rambus DRAM - динамическая память с прямой шиной для RAM). DRDRAM - перспективный тип оперативной памяти, обеспечивающий значительный рост производительности компьютеров. Высокое быстродействие памяти Direct RDRAM достигается рядом особенностей, не встречающихся в других типах. В частности, применением собственной двухбайтовой шины RAM Bus с частотой 800 МГц, обеспечивающей пиковую пропускную способность до 1,6 Гбайт/с. Контроллер памяти Direct RDRAM управляет шиной Rambus и обеспечивает преобразование ее протокола с частотой 800 МГц в стандартный 64-разрядный интерфейс с частотой шины до 200 МГц. Фирма Intel выпустила чипсеты i820, i840, i850 с поддержкой. DRDRAM Модули Direct RDRAM - RIMM внешне подобны модулям DIMM. Массовый выпуск памяти DRDRAM и ее интенсивное использование в компьютерах ожидается в ближайшем будущем.
Постоянные запоминающие устройства
Постоянное запоминающее устройство (ПЗУ или ROM - Read Only Memory , память только для чтения) также строится на основе установленных на материнской плате модулей (кассет) и используется для хранения неизменяемой информации: загрузочных программ операционной системы, программ тестирования устройств компьютера и некоторых драйверов базовой системы ввода-вывода (BIOS) и т. д.
К ПЗУ принято относить энергонезависимые постоянные и полупостоянные запоминающие устройства, из которых оперативно можно только считывать информацию, запись информации в ПЗУ выполняется вне ПК в лабораторных условиях или при наличии специального программатора и в компьютере. По технологии записи информации можно выделить ПЗУ следующих типов:
□ микросхемы, программируемые только при изготовлении - классические или масочные ПЗУ или ROM;
□ микросхемы, программируемые однократно в лабораторных условиях - про
граммируемые ПЗУ (ППЗУ) или programmable ROM (PROM);
□ микросхемы, программируемые многократно, - перепрограммируемые ПЗУ
или erasable PROM (EPROM). Среди них следует отметить электрически пе
репрограммируемые микросхемы EEPROM (Electrical Erasable PROM), в том
числе ФЛЭШ-память
(FLASH-память).
Устанавливаемые на системной плате ПК модули и кассеты ПЗУ имеют емкость, как правило, не превышающую 128 Кбайт. Быстродействие у постоянной памяти меньшее, нежели у оперативной, поэтому для повышения производительности содержимое ПЗУ копируется в ОЗУ, и при работе непосредственно используется только эта копия, называемая также теневой памятью ПЗУ (Shadow ROM).
В настоящее время в ПК используются полупостоянные, перепрограммируемые запоминающие устройства - FLASH-память. Модули или карты FLASH-памяти могут устанавливаться прямо в разъемы материнской платы и имеют следующие параметры: емкость от 32 Кбайт до 15 Мбайт (в ПЗУ используется до 128 Кбайт), время обращения по считыванию 0,035-0,2 мкс, время записи одного байта 2-10 мкс; FLASH-память - энергонезависимое запоминающее устройство. Примером такой памяти может служить память NVRAM - Non Volatile RAM со скоростью записи 500 Кбайт/с. Обычно для перезаписи информации необходимо подать на специальный вход FLASH-памяти напряжение программирования (12 В), что исключает возможность случайного стирания информации. Перепрограммирование FLASH-памяти может выполняться непосредственно с дискеты или с клавиатуры ПК при наличии специального контроллера либо с внешнего программатора, подключаемого к ПК. FLASH-память может быть весьма полезной как для создания весьма быстродействующих, компактных, альтернативных НМД запоминающих устройств - «твердотельных дисков», так и для замены ПЗУ, хранящего программы BIOS, позволяя «прямо с дискеты» обновлять и заменять эти программы на более новые версии при модернизации ПК.
Логическая структура основной памяти
Структурно основная память состоит из миллионов отдельных ячеек памяти, емкостью 1 байт каждая. Общая емкость основной памяти современных ПК обычно лежит в пределах от 16 до 512 Мбайт. Емкость ОЗУ на один-два порядка превышает емкость ПЗУ: ПЗУ занимает 128 Кбайт, остальной объем - это ОЗУ. Каждая ячейка памяти имеет свой уникальный (отличный от всех других) адрес. Основная память имеет для ОЗУ и ПЗУ - единое адресное пространство.
Адресное пространство определяет максимально возможное количество непосредственно адресуемых ячеек основной памяти. Адресное пространство зависит от разрядности адресных шин, ибо максимальное количество разных адресов определяется разнообразием двоичных чисел, которые можно отобразить в п разрядах, то есть адресное пространство равно 2", где п - разрядность адреса. За основу в ПК взят 16-разрядный адресный код, равный по длине размеру машинного слова. При наличии 16-разрядного кода адреса можно непосредственно адресовать всего 4 К (К = 1024) ячеек памяти. Вот это 64-килобайтное поле памяти, так называемый сегмент, также является базовым в логической структуре ОП. Следует заметить, что в защищенном режиме размер сегмента может быть иным и значительно превышать 64 Кбайта.
Современные ПК (кроме простейших бытовых компьютеров) имеют основную память, емкостью существенно больше 1 Мбайт: память, емкостью 1 Мбайт является еще одним важным структурным компонентом ОП - назовем ее непосредственно адресуемой памятью (справедливо полностью только для реального ре- жима). Для адресации 1 Мбайт = 220= 1 ячеек непосредственно адресуемой памяти необходим 20-разрядный код, получаемый в ПК путем использования специальных приемов структуризации адресов ячеек ОП.
Абсолютный (полный, физический) адрес (Аабс) формируется в виде суммы нескольких составляющих, чаще всего используемыми из которых являются: адрес сегмента и адрес смещения.
Адрес сегмента (АССгм) - это начальный адрес 64-килобайтного поля, внутри которого находится адресуемая ячейка.
Адрес смещения (Аасм) - это относительный 16-разрядный адрес ячейки внутри сегмента.
Асегм должен быть 20-разрядным, но если принять условие, что АсеГм должен быть обязательно кратным параграфу (в последних четырех разрядах должен содержать нули), то однозначно определять этот адрес можно 16-разрядным кодом, увеличенным в 16 раз, что равносильно дополнению его справа четырьмя нулями и превращению его, таким образом, в 20-разрядный код. То есть условно можно записать:
Аабс = 16 Х Асегм + Аасм.
Программисты иногда используют еще две составляющие адреса смещения: адрес базы и адрес индекса. Следует отметить, что процессор ПК может обращаться к основной памяти, используя только абсолютный адрес, в то время как программист может использовать все составляющие адреса, рассмотренные выше.
В современных ПК существует режим виртуальной адресации (Virtual - кажущийся, воображаемый). Виртуальная адресация используется для увеличения адресного пространства ПК при наличии ОП большой емкости (простая виртуальная адресация) или при организации виртуальной памяти, в которую наряду с ОП включается и часть внешней (обычно дисковой) памяти. При виртуальной адресации вместо начального адреса сегмента Ассгм в формировании абсолютного адреса Аабе принимает участие многоразрядный адресный код, считываемый из специальных таблиц. Принцип простой виртуальной адресации можно пояснить следующим образом. В регистре сегмента (обычно регистр DS) содержится не АсеГм, а некий селектор, имеющий структуру:
https://pandia.ru/text/78/135/images/image011_103.gif" width="490 height=2" height="2">Здесь СЛ - вспомогательная служебная информация; F - идентификатор, определяющий тип дескрипторной таблицы для формирования АсеГм (дескрипторные таблицы создаются в ОП при виртуальной адресации автоматически):
□ если F = 0, то используется глобальная дескрипторная таблица (GDT), общая
для всех задач, решаемых в ПК при многопрограммном режиме;
□ если F = 1, то используется локальная дескрипторная таблица (LDT), создава
емая для каждой задачи отдельно;
□ ИНДЕКС - адрес строки в дескрипторной таблице.
В соответствии с индексом и идентификатором из GLT или LDT считывается 64-битовая строка, содержащая, в частности, и адрес сегмента. Разрядность этого адреса зависит от размера адресного пространства микропроцессора, точнее равна разрядности его адресной шины. Подобная виртуальная адресация используется при защищенном режиме работы микропроцессора. Для большей плотности раз-
мещения информации в оперативной памяти (уменьшения сегментированности, характерной для многопрограммного режима) часто используется сегментно-стра- ничная адресация, при которой поля памяти выделяются программам внутри сегментов страницами, размером от 2 до 4 Кбайт. Формирование сегментно-странич-ной структуры адресов выполняется автоматически операционной системой.
Виртуальная память создается при недостаточном объеме оперативной памяти, не позволяющем разместить в ней сразу всю необходимую информацию для выполняемого задания. При загрузке очередной задачи в оперативную память необходимо выполнить распределение машинных ресурсов, в частности оперативной памяти между компонентами одновременно решаемых задач (в принципе, оперативной памяти может не хватить и для решения одной сложной задачи). При подготовке программ используются условные адреса, которые должны быть затем привязаны к конкретному месту в памяти. Распределение памяти может выполняться или в статическом режиме до загрузки программы в ОП, или в динамическом режиме автоматически в момент загрузки программы. Статическое распределение памяти весьма трудоемко, поэтому применяется редко. Если очевидно, что реальная память меньше требуемого программой адресного пространства, программист может вручную разбить программу на части, вызываемые в ОП по мере необходимости, - создать оверлейную структуру программы. Обычно же используется режим динамического распределения памяти.
При динамическом распределении памяти в случае недостаточной емкости ОП полезно воспользоваться виртуальной памятью. В режиме виртуальной памяти пользователь имеет дело не с физической ОП, действительно имеющейся в ПК, а с виртуаль ной (кажущейся) одноуровневой памятью, емкость которой равна всему адресному пространству микропроцессора. На всех этапах подготовки программы, включая ее загрузку в оперативную память, в программе используются виртуальные адреса и лишь при непосредственном исполнении машинной команды выполняется преобразование виртуальных адресов в реальные физические адреса ОП. При этом реально программа может размещаться частично в ОП, частично во внешней памяти. Технология организации виртуальной памяти следующая. Физические оперативная и дисковая (привлеченная к задаче) память и виртуальная память разбиваются на страницы одинакового размера по 4 Кбайта. Страницам виртуальной и физической памяти присваиваются номера, которые сохраняются одними и теми же на весь период решения задачи. Операционная система формирует две таблицы:
□ страниц виртуальной памяти;
□ физического размещения страниц,
и устанавливает логические связи между ними (рис. 6.2).
На рисунке видно, что физические страницы могут находиться в текущий момент времени как в оперативной, так и во внешней памяти. Из внешней памяти виртуальные страницы автоматически перемещаются в оперативную только тогда, когда к ним происходит обращение. При этом они замещают уже отработавшие страницы. Страничные таблицы для каждой программы формируются операционной системой в процессе распределения памяти и изменяются каждый раз, когда физические страницы перемещаются из ВЗУ в ОП. Виртуальная память может иметь
и сегментно-страничную организацию. В этом случае виртуальная память делится сначала на сегменты, а внутри них на страницы. Принцип организации такой памяти аналогичен рассмотренному выше.
Таблица страниц физической памяти |
||
Расположена в памяти | № физической страницы |
|
Рис. 6.2.Таблица страниц
