Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебники 60117.doc
Скачиваний:
7
Добавлен:
01.05.2022
Размер:
961.02 Кб
Скачать

5. Память

Все компьютеры используют три вида памяти: оперативную, постоянную и внешнюю.

Оперативная память предназначена для размещения информации, к которой приходится часто обращаться. Оперативная память обеспечивает режимы записи, считывания и хранения информации. Этот вид памяти называют также памятью с произвольным доступом (Random Access Memory, RAM). По способу хранения информации оперативная память бывает статической и динамической.

Постоянная память (ПЗУ - постоянное запоминающее устройство) обычно содержит такую информацию, которая не должна меняться в ходе выполнения микропроцессором различных программ. Постоянная память имеет также название ROM (Read Only Memory), которое указывает на то, что обеспечиваются только режимы считывания и хранения. Постоянная память энергонезависима, т. е. может сохранять информацию и при отключенном питании. Все микросхемы постоянной памяти по способу занесения в них информации делятся на масочные, программируемые изготовителем (ROM), однократно программируемые пользователем (Programmable ROM) и многократно программируемые пользователем (Erasable PROM). Последние, в свою очередь, подразделяются на стираемые электрически и с помощью ультрафиолетового облучения. К элементам EPROM с электрическим стиранием информации относятся, например, микросхемы флэш-памяти (flash). От обычных EPROM они отличаются высокой скоростью доступа и быстрым стиранием записанной информации. Данный тип памяти сегодня широко используется для хранения BIOS и другой постоянной информации.

Внешняя память реализована обычно на магнитных или оптических носителях и используется:

  • в качестве основного энергонезависимого устройства хранения данных в компьютере;

  • для инсталляции системного и прикладного программного обеспечения;

  • для переноса данных с компьютера на компьютер.

Различные типы оперативной и постоянной памяти можно выстроить в виде определенной иерархии по времени доступа к данным. При этом широко используется принцип кэширования данных.

5.1. Контроль четности и корректирующие коды

Контроль четности означает, что при записи байта информации в запоминающее устройство определяется дополнительный контрольный бит, в который записывается 0, если это число - четное, и 1 - если оно нечетное. Таким образом, при чтении ранее записанного байта, вновь получив контрольный бит и сравнив его с уже имеющимся, можно говорить о достоверности получаемой информации. Такая операция особенно актуальна для запоминающих устройств невысокой надежности, в частности для дисковых накопителей. Современные технологические успехи в области полупроводниковой памяти позволяют в ряде случаев обходиться без контроля четности. Некоторые материнские платы хотя и допускают использование модулей памяти с контролем четности, но саму проверку могут не поддерживать.

В ответственных приложениях, требующих повышенной надежности хранения информации, применяются более серьезные, чем контроль четности, методы обеспечения целостности данных. К ним относятся корректирующие коды (ECC - Error Correction Code), позволяющие не только обнаруживать ошибки, но и восстанавливать искаженную информацию за счет ее избыточности. Так, существуют модули памяти со схемами ECC, в которых для хранения контрольной информации используются не один, а два бита, в которых хранится остаток от деления числа на 4. Благодаря этим данным схема ECC умеет обнаруживать и исправлять одиночные искаженные биты, а также обнаруживать (но не исправлять) двойные ошибки. Модули памяти с ECC обычно стоят заметно дороже.

В общем случае ECC применяются во всех современных дисковых накопителях. За счет информационной избыточности закодированных данных удается восстанавливать поврежденные блоки информации длиной в сотни байт. Наиболее широко применяются помехоустойчивые коды Рида-Соломона (Reed-Solomon). Благодаря использованию этих кодов удается хранить информацию без потери данных, несмотря на низкую надежность физического носителя информации.

5.2. Оперативная память (RAM)

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

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

5.2.1. Принцип работы RAM

В современном компьютере в основном используется оперативная память динамического типа – Dynamic Random Access Memory (динамическая память с произвольным доступом, порядком выборки).

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

Рис. 5.1. Упрощенная схема ячейки RAM

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

Рис. 5.2. Матрица памяти RAM

При чтении на все входы подается сигнал RAS (Row Address Strobe – адрес строки). После этого все данные из этой строки записываются в буфер. Затем на регистр подается сигнал CAS (Column Address Strobe – это сигнал выбора столбца), и происходит выбор бита с соответствующим адресом; бит подается на выход. Во время считывания данные в ячейках считанной строки разрушаются, и их необходимо перезаписать, взяв из буфера.

При записи подается сигнал WR (Write), и информация поступает на шину столбца не из регистра, а с информационного входа памяти через коммутатор, определенный адресом столбца. Таким образом, прохождение данных при записи определяется комбинацией сигналов адреса столбца и строки и разрешения записи данных в память. При записи данные из регистра строки на выход не поступают.

Параллельное расположение 8 матриц позволяет сразу считать один байт. Количество линий, по которым будут передаваться данные от (или на) параллельные матрицы определяется разрядностью шины ввода/вывода микросхемы.

Конденсаторы не могут бесконечно долго хранить заряд, поэтому конденсаторы необходимо перезаряжать. Операция перезарядки называется Refresh, или регенерацией. Происходит эта операция примерно каждые 2 мс и порой занимает до 10 % (и более) рабочего времени процессора.

Важнейшей характеристикой RAM является быстродействие. Матрицы памяти состоят из определённого количества строк и столбцов. Одна матрица называется страницей, а совокупность страниц называется банком. Для обращения к ячейке контроллер задаёт номер банка, номер страницы в нём, номер строки и номер столбца, что определяет время обращения к ячейке; помимо этого дополнительное время затрачивается на открытие и закрытие банка и на операции чтения/записи. На каждое действие требуется время, называемое таймингом.

Тайминг - это задержка между отдельными операциями, производимыми контроллером при обращении к памяти.

Недоступным для настройки является тайминг выбора кристалла - CS# (crystal select) - этот сигнал определяет кристалл (чип) на модуле для проведения операции.

Остальные тайминги можно изменять:

  • RCD (RAS-to-CAS Delay) - это задержка между сигналами RAS (Row Address Strobe) и CAS (Column Address Strobe). Данный параметр характеризует интервал между выдачей контроллером памяти сигналов RAS# и CAS#.

  • CAS Latency (CL) - задержка между командой чтения и доступностью к чтению первого слова. Введена для формирования адресными регистрами гарантированно устойчивого уровня сигнала.

  • RAS Precharge (RP) - время повторной выдачи (период накопления заряда) сигнала RAS# - через какое время контроллер памяти будет способен снова выдать сигнал инициализации адреса строки. Порядок операций именно таков (RCD-CL-RP), но зачастую тайминги записывают не по порядку, а по "важности" - CL-RCD-RP.

  • Precharge Delay (или Active Precharge Delay; чаще обозначается как Tras) - время активности строки, т.е. период, в течение которого закрывается строка, если следующая требуемая ячейка находится в другой строке.

  • SDRAM Idle Timer (или SDRAM Idle Cycle Limit) - количество тактов, в течение которых страница остаётся открытой, после этого страница принудительно закрывается либо для доступа к другой странице, либо для обновления (refresh).

  • Burst Length - параметр, который устанавливает размер предвыборки памяти относительно начального адреса обращения. Чем больше этот размер, тем выше производительность памяти.

Оперативной памятью управляет контроллер, который находится в чипсете материнской платы в составе North Bridge.

5.2.2. Типы и характеристики оперативной памяти

Самые распространённые типы памяти это:

  • SDR SDRAM (SDRAM)

  • DDR SDRAM

  • RDRAM

SDRAM (Synchronous Dynamic Random Access Memory) – это синхронизированная динамическая память с произвольным порядком выборки (синхронная динамическая оперативная память). Появилась она в 1997 году, и все наборы системной логики поддерживают этот тип памяти.

SDRAM состоит из физических ячеек, которые собраны в страницы. Размер страницы может быть от 512 байт до нескольких килобайт. Каждая страница разбита на два банка: в одном банке ячейки с нечетными адресами строк, а в другом – с четными (для ускорения работы памяти). Каждая ячейка имеет свой адрес, состоящий из номера (адреса) строки и номера (адреса) столбца. Сначала передается номер строки, затем номер столбца. В страничном режиме, передав номер строки, можно получить доступ ко всем ячейкам с разными номерами столбцов, то есть не надо для каждой из них передавать номер строки, достаточно только номера столбца – экономится цикл. Такой режим называется Fast Page Mode. Строки делятся на четные и нечетные - получается два банка: один – с четными строками, а другой – с нечетными. Во время обращение к одному банку в другом производится выборка адреса - такой режим иногда называют расслоением.

Рис. 5.3. Схема разбиения на банки страниц памяти

Для того чтобы увеличить скорость доступа к памяти, используется пакетный режим (burst) доступа: после установки строки и столбца ячейки происходит обращение к следующим трем смежным адресам без дополнительных состояний ожидания. Схема пакетного режима будет выглядеть так: x-y-y-y, где х – время выполнения первой операции доступа состоящей из продолжительности цикла и времени ожидания, а y – это число циклов, необходимое для выполнения каждой последующей операции. Для SDRAM схема будет выглядеть так: 5-1-1-1.

Основное отличие SDRAM от предшествующих типов памяти заключается в том, что сигналы ее синхронизированы с тактовым генератором системной платы.

Рис. 5.4. Диаграмма работы памяти SDRAM

  • по отдельной линии передается синхронизирующий сигнал;

  • по шине управления передается команда (например, чтение);

  • после этого формируется адрес и по шине адреса передается в память;

  • затем начинается передача информации по шине данных. В этот момент может быть сформирован и передан новый адрес.

DDR SDRAM. Полное название памяти DDR – DDR SDRAM (Double Data Rate Synchronous Dynamic Random Access Memory – динамическая синхронизированная память с произвольным порядком выборки и удвоенной передачей данных). Этот тип памяти сочетает в себе приемлемую скорость и относительную дешевизну.

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

DDR SDRAM управляется инверсными тактовыми сигналами СК. Управляющие и адресные сигналы регистрируются по положительному фронту тактового сигнала, точнее, при переходе сигнала с низкого уровня напряжения на более высокий, а данные передаются по обоим фронтам сигнала (положительному - СК и отрицательному - /СК). Такая схема работы требует более четкой синхронизации. Для этого введен дополнительный строб-сигнал чтения/записи - DQS.

Рис. 5.5. Диаграмма работы памяти DDR

При тактовой частоте системной шины 100 МГц скорость передачи данных будет равна 1600 Мбайт/с, а при 133 МГц – 2100 Мбайт/с. Отсюда следуют названия памяти DDR – РС1600 и РС2100. Максимальная же пропускная способность при частоте в 400 МГц может достигать 3,2 Гбайт/с.

Микросхемы SDRAM и DDR конструктивно не совместимы: в первом случае микросхемы имеют 168 контактов, во втором – 184; расположение ключа - разное. Кроме того, не все чипсеты поддерживают оба типа памяти.

В памяти DDR2 данные передаются не 2, а 4 раза за цикл, что позволяет повысить максимальную пропускную способность до 6,4 Гбайт/сек.

DDR SDRAM - альтернатива RDRAM; она чуть медленнее, но дешевле.

RAMBUS (RDRAM) . Память типа Rambus основана на шине из 30 проводников, имеющих строго одинаковую длину для обеспечения одинаковой задержки. Из них 16 или 18 используются для передачи данных (две группы по восемь), а остальные - для управления и синхронизации. Линия передачи работает на частоте 400 МГц в дифференциальном режиме («0» соответствует 1,0 В, «1» - 1,4 В). Передача данных осуществляется по фронту и срезу тактового сигнала, поэтому потенциальная скорость обмена по шине памяти равна 1,6 Гбайт/с (реальная средняя скорость достигает 600 Мбайт/с). Разность расстояний от разных модулей и микросхем RDRAM выравнивается контроллером за счет программируемых задержек, поэтому доступ к данным жестко синхронизирован и не зависит от числа микросхем и их расположения.

RDRAM обеспечивает конвейерный доступ к памяти с одновременной передачей адреса и данных. При этом допускается одновременная обработка до 4 запросов. Задержка первого пакета данных составляет 50 нс., а остальные следуют без задержки до смены режима чтение/запись. Внутреннее ядро RDRAM имеет 128-разрядную шину данных, работающую на частоте 1/8 системной (100 МГц). Логика RDRAM позволяет иметь различное количество банков памяти, причем увеличение числа банков уменьшает зависимость между запросами и позволяет их распараллеливать.

Для управления потребляемой мощностью в RDRAM предусмотрено четыре состояния: Active, Standby, Nap и PowerDown. Контроллер памяти Rambus использует протокол Direct Rambus Channel, преобразующий 800 МГц внутренний шинный интерфейс во внешний с частотой 200 МГц (64 разряда) или 100 МГц (128 разрядов).

Существуют две разновидности RDRAM: Concurrent Rambus и Direct Rambus. Первая имеет 16-битную шину и работает на частоте 400 МГц, использует улучшенный синхронный параллельный протокол для обработки чередующихся или перекрывающихся данных, показывающий хорошее быстродействие даже на маленьких, случайно расположенных блоках данных. При этом обеспечена совместимость с RDRAM предыдущего поколения. Технология Direct Rambus использует более высокие тактовые частоты, усовершенствованный протокол обмена, а также многобанковые модули, что существенно повышает скорость работы (например, 800 МГц 2-банковый модуль обеспечивает пиковую производительность 1,6 Гбайт/с).

Преимущество Rambus-памяти: чем больше модулей - тем больше пропускная способность, например, до 1.6 Гбайт/с на один канал и до 6.4 Гбайт/с при четырех каналах.

В BIOS при настройках частоты памяти доступна опция By SPD. SPD (Serial Presence Detect) - это микросхема на модуле, в которую зашиты параметры для работы модуля. Сейчас стали записывать в этот чип имя производителя и дату.

Регистровая память. Registered Memory - это память с регистрами, которые служат буфером между контроллером памяти и чипами модуля. Регистры уменьшают нагрузку на систему синхронизации и позволяют набирать очень большое количество памяти (16 или 24 Гбайт), не перегружая цепи контроллера. Данная схема имеет недостаток - регистры вносят задержку в 1 такт на каждую операцию, а значит - регистровая память медленнее обычной при прочих равных условиях.

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

Модификации с контролем: Parity и ECC. Memory with Parity - это память с проверкой чётности, способная детектировать некоторые типы ошибок.

Memory with ECC - это память с коррекцией ошибок; позволяет найти, а также исправить ошибку одного бита в байте; медленнее обычной.

5.2.3. Статическая память

Статическая память (SRAM) в современных компьютерах обычно применяется в качестве кэш-памяти для кэширования основного объема RAM.

Статическая память выполняется обычно на основе ТТЛ, КМОП- или БиКМОП-микросхем и по способу доступа к данным может быть как асинхронной, так и синхронной. Асинхронным называется доступ к данным, который можно осуществлять в произвольный момент времени.

Синхронная память обеспечивает доступ к данным не в произвольные моменты времени, а синхронно с тактовыми импульсами. В промежутках между ними память может готовить для доступа следующую порцию данных. В большинстве материнских плат используется разновидность синхронной памяти - синхронно-конвейерная SRAM (Pipelined Burst SRAM), для которой типичное время одиночной операции чтения/записи составляет 3 такта, а групповая операция занимает 3-1-1-1 такта при первом обращении и 1-1-1-1 при последующих обращениях, что обеспечивает ускорение доступа более чем на 25%.

5.2.4. Обозначения модулей памяти

Существует два типа обозначений для одной и той же памяти: одно - по "эффективной частоте" DDRxxx, а второе - по теоретической пропускной способности PCxxxx.

Обозначение "DDRxxx" исторически сформировалось из последовательности названий стандартов "PC66-PC100-PC133" - когда было принято скорость памяти ассоциировать с частотой (сокращение "DDR" ввели для того, чтобы отличать SDR SDRAM от DDR SDRAM). Одновременно с памятью DDR SDRAM появилась память RDRAM (Rambus), на которой решили ставить не частоту, а пропускную способность - PC800. При этом ширина шины данных осталась равной 64 бит (8 байт), то есть обозначение PC800 (800 Мбайт/с) получилось умножением 100 МГц на 8. От названия ничего не изменилось, и PC800 RDRAM - суть та же самая PC100 SDRAM, только в другом корпусе. Компании, которые выпускают модули, стали писать теоретическую пропускную способность - PCxxxx. Так появились PC1600, PC2100 и следующие. При этом у DDR SDRAM эффективная частота выше в два раза, а значит и большие числа в обозначениях.

Примеры соответствия разных систем обозначения:

100 МГц = PC1600 DDR SDRAM = DDR200 SDRAM = PC100 SDRAM = PC800 RDRAM

133 МГц = PC2100 DDR SDRAM = DDR266 SDRAM = PC133 SDRAM = PC1066 RDRAM

166 МГц = PC2700 DDR SDRAM = DDR333 SDRAM = PC166 SDRAM = PC1333 RDRAM

200 МГц = PC3200 DDR SDRAM = DDR400 SDRAM = PC200 SDRAM = PC1600 RDRAM

250 МГц = PC4000 DDR SDRAM = DDR500 SDRAM

5.3. Видеопамять: MDRAM, VRAM, WRAM и SGRAM

Все перечисленные в заголовке технологии, используемые в видеоадаптерах, относятся к динамической оперативной памяти, работа которой имеет ряд особенностей. Во-первых, доступ к ней осуществляется достаточно крупными блоками. Во-вторых, она должна быстро перезаписывать большие объемы данных без прерывания процедуры считывания, так как образ картинки, формируемой на экране монитора, постоянно считывается из этой памяти с частотой кадровой развертки монитора, и одновременно в эту же память операционная система осуществляет запись, в результате чего происходит изменение изображения. Эту задачу наиболее эффективно решает так называемая двупортовая RAM, для которой возможно одновременное считывание данных системой развертки и запись. Двупортовая память представлена дорогостоящей VRAM (Video RAM) и более дешевой и быстрой WRAM (Windows RAM). В системах с двупортовой памятью увеличение частоты развертки не приводит к снижению производительности видеоадаптера, поэтому в профессиональных моделях, рассчитанных на использование с большими (19 дюймов и более) мониторами, применяется преимущественно такая видеопамять.

Для ускорения доступа к памяти со стороны графического ускорителя (что особенно важно в 3D-акселераторах) используется либо память Multibank DRAM (MDRAM), разработанная компанией MosSys и использующая распараллеливание операций доступа к данным между большим количеством банков памяти, либо синхронная память SGRAM (аналог SDRAM, оптимизированный для задач видеопамяти), либо обычная SDRAM.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]