Всем компьютерам требуется память нескольких видов и на
каждом шагу выполнения программ. Память нужна как для исходных данных, так и
для хранения результатов, для взаимодействия с периферией компьютера и даже
для поддержания образа, видимого на экране.
Вся память компьютера делится на внутреннюю и внешнюю.
В компьютерных системах работа с памятью основывайся на
очень простых концепциях. В принципе, все, что требуется от компьютерной
памяти, — это сохранять один бит информации так, чтобы потом он мог быть
извлечен оттуда.
В настоящее время широкое распространение получили
устройства динамической памяти, базирующиеся на способности сохранять
электрический заряд. Эти устройства называются конденсаторами.
На первый взгляд конденсатор не удовлетворяет основному
требованию устройств памяти. Он не способен сохранять заряд в течение
длительного промежутка времени, но он позволяет делать это в течение
нескольких миллисекунд, чего вполне достаточно, чтобы использовать это в
электронике. За это время специальные цепи компьютера обеспечивают подзарядку
конденсатора, то есть обновление информации. Из-за непрерывности этого
процесса такая память называется динамической.
В современных персональных компьютерах динамическая память
реализуется на базе специальных цепей проводников, заменивших обычные
конденсаторы. Большое количество таких цепей объединяется в корпусе одного
динамического чипа. Однако, подобно памяти на конденсаторах, такая должна
постоянно освежаться.
В то время как динамическая память, получив заряд электричества,
удерживает его, так называемая статическая память иочпеияет потоку электронов
циркулировать по цепи. Прикладываемое напряжение может изменить направление
движения электронов. Причем существует только два направления движения
потока, что позволяет использовать данные цепи в качестве элементов памяти.
Статическая память работает наподобие выключателя, который переключает
направление электронного потока.
Эволюция микросхем ОЗУ вплотную связана с эволюцией
персональных компьютеров. Для успеха настольных компьютеров требовались
миниатюрные чипы ОЗУ. По мере увеличения емкости памяти цена скачкообразно
возрастала, но потом постоянно уменьшалась по мере отработки технологии и
роста объемов производства.
Динамические микросхемы памяти маркируются специальным
числом, говорящим об их скоростных возможностях. Указанное на корпусе число
отражает время доступа в наносекундах без последнего нуля.
Время доступа не является, однако, единственной или
наиболее важной характеристикой микросхем памяти. Более значимо такое
понятие, как время цикла, которое говорит о том, как быстро можно произвести
повторное обращение. В динамических микросхемах это время больше времени досту
па, в статических чипах эти времена равны, что говорит о Солее скоростных
режимах последних.
Чтобы справиться с ограничением по скорости, были не
пользованы специальные решения по организации памяти. Наиболее простое из них
— это использование обычной архитектуры с необходимым числом циклов ожидания
Хорошая альтернатива предыдущему методу - использование
кэш-памяти, что позволит избежать полного заполнения всей машины быстрой
RAM-памятью. Обычно программа использует память какой-либо ограниченной
области, храпя нужную информацию в кэш-памяти, работа с которой цтво-ляет
процессору обходиться без циклов ожидания
Не всякая кэш-память равнозначна. Большое значение имеет
тот факт, как много информации может содержать кэшпамять. Чем больше кэд;-память,
тем больше информации может быть в ней размещено, а следовательно, тем больше
вероятность, что нужный байт будет содержаться в этой быстрой памяти.
Очевидно, что самый лучший вариант — это когда объем кэш-памяти соответствует
объему всей оперативной памяти. В этом случае вся остальная память становится
ненужной. Противоположная ситуация — 1 байт кэш-памяти -тоже не имеет
практического значения, так как вероятность того, что нужная информация
окажется в этом байте, стремится к нулю. Практически, диапазон используемой
кэш-памяти колеблется в пределах 16—64 КБ.
На самом деле реализация кэш-систем не так проста, как это
может показаться на первый взгляд. Микропроцессор должен не только читать из
памяти, но и писать в нее. Что случится, если процессор занесет новую
информацию в кэш-память, а перед использованием этой информации она будет изменена
в основной памяти. Во избежание подобной ситуации иногда реализуется метод,
названный записью через кэш-память. Очевидно, что этот метод снижает
быстродействие системы, поскольку приходится писать не только в кэш-память.
Хуже того, микропроцессору может понадобиться информация, которую он только
что записал и которая еще не была перезагружена в кэш-память.
Целостность памяти — это одна из самых больших проблем
разработчиков кэш-памяти.
Все вопросы по преодолению этих проблем были возложены на
отдельную микросхему —"кэш-контроллер.
Еще одна разновидность архитектуры оперативной памяти
компьютера — это ее разбивка на отдельные секции и работа с этими секциями
как с малой кэш-памятью. Большая скорость доступа к ограниченным областям
памяти является особенностью некоторых специфических микросхем, которые
позволяют некоторому объему, но не всей памяти, быть считанному без цикла
Ожидания. Этот подход требует специальных RAM-микросхем, которые делят свои
адреса по страницам. Такая технология получила название режима страничного
доступа. Эти специальные микросхемы обеспечивают очень быстрый доступ в одном
из двух направлений их организаций. Если требуется чтение или запись
информации, хранящейся на определенной странице памяти, и предыдущая команда
по работе с памятью использовала информацию с той жи страницы, цикла ожидания
не требуется. Однако при переходе с одной страницы на другую циклы ожидания
неизбежны.
Следующая интересная технология, названная interleaved memory,
очень похожа на ОЗУ страничного режима. Она существенно Повышает скорость
обращения к памяти, но не имеет ограничений по страничной разбивке. При
использовании этой технологии вся оперативная память разбивается на два или
большее число банков. Последовательность битов хранится в разных банках, поэтому
микропроцессор обращается то к одному, то к другому банку при чтении этой
последовательности. Во время обращения к одному банку другой реализует цикл
обновления, и поэтому процессору не приходится ждать. И только если
микропроцессору приходится читать несмежные биты, статус ожидания неминуем,
но вероятность его по явления уменьшается.
Наиболее типовая реализация этой технологии представ ляется
разбивкой оперативной памяти на два банка, а следовательно, вероятность
возникновения ожидания - 50%. Четы рехбанковая организация уменьшает эту
вероятность до 25%
Так как данная технология не требует применения
специальных микросхем памяти, она является наиболее удобной для повышения
скорости системы. Кроме того, ОЩ может совмещаться с ОЗУ страничного режима, еще
больше увеличивая оперативность.
Помимо оперативной памяти существует еще и постоянная
память (ПЗУ). Ее главное отличие от 03У — невозможность в процессе работы
изменить состоянш ячеек ПЗУ. В свою очередь и эта память делится на постоя шую
и ренрограммируемую. Принципы ее функционирования понятны из названия.
Оперативная память
Из микросхем памяти (RAM — Random Access Memory, память с
произвольным доступом) используются два основных типа: статическая (SRAM — Static
RAM) и динамическая (DRAM - Dynamic RAM).
В статической памяти элементы (ячейы ) построены на
различных вариантах триггеров — схем с двумя устойчивыми состояниями. После
записи бита в такую ячейку, она может пребывать в этом состоянии сколько иодно
долго -необходимо только наличие питания. При обращении к микросхеме
статической памяти на нее подаето: полный адрес, который при помощи
внутреннего дешифратора преобразуется в сигналы выборки конкретных ячеек.
Ячейки статической памяти имеют малое время срабатывания (единицы-десятки
наносекунд), однако микросхемы на их основе имеют низкую удельную плотность
данных (перядка единиц Мбит на корпус) и высокое энергопотребление. Поэтому
статическая память используется в основном в качестве бу-ферной (кэш-память).
В динамической памяти ячейки построены на основе областей
с накоплением зарядов, занимающих гораздо меньшую площадь, нежели триггеры, и
практически не- потребляющих энергии при хранении. При записи бита в такую
ячейку в ней формируется электрический заряд, сохраняющийся в течение
нескольких миллисекунд; для постоянного сохранения заряда ячейки необходимо
регенерировать — перезаписывать содержимое для восстановления зарядов. Ячейки
микросхем динамической памяти организованы в виде прямоугольной (обычно —
квадратной) матрицы; при обращении к микросхеме на ее входы вначале подастся
адрес строки матрицы, сопровождаемый сигналом RAS (Row Address Strobe — строб
адреса строки), а через некоторое время — адрес столбца, сопровождаемый
сигналом CAS (Column Address Strobe — строб адреса столбца). При каждом
обращении к ячейке регенерируют все ячейки выбранной строки, поэтому для
полной регенерации матрицы достаточно перебрать адреса строк. Ячейки
динамической памяти имеют большее время срабатывания (десятки-сотни
наносекунд), но большую удельную плотность (порядка десятков Мбит на корпус)
и меньшее энергопотребление. Динамическая память используется в качестве основной.
Обычные виды SRAM и DRAM называют также асинхронными, поскольку установка
адреса, подача управляющих сигналов и чтение/запись данных могут выполняться
в произвольные моменты времени — необходимо только соблюдение временных
соотношений между этими сигналами. В эти временные соотношения включены так
называемые охранные интервалы, необходимые для стабилизации сигналов, не
позволяющих достичь теоретически возможного быстродействия памяти. Существуют
также синхронные виды памяти, получающие внешний синхросигнал, к импульсам
которого жестко привязаны моменты подачи адресов и обмена данными; помимо
экономии времени на охранных интервалах, они позволяют более полно
использовать внутреннюю конвейеризацию и блочный доступ.
FPM DRAM (Fast Page Mode DRAM - динамическая память с
быстрым страничным доступом). Память со страничным доступом позволяет
ускорить блочные передачи, когда весь блок данных или его часть находится
внутри одной строки матрицы, называемой в этой системе страницей, и снизить
накладные расходы на регенерацию памяти.
EDO (Extended Data Out — расширенное время удержания
данных на выходе) фактически представляют собой обычные микросхемы FPM, на
выходе которых установлены регистры-защёлки данных. При страничном обмене
такие микросхемы работают в режиме простого конвейера: удерживают на выходах
данных содержимое последней выбранной ячейки, в то время как на их входы уже
подается адрес следующей выбираемой ячейки. Это позволяет примерно на 15% по
сравнению с FPM ускорить процесс считывания последовательных массивов данных.
При случайной адресации такая память ничем не отличается от обычной.
BEDO (Burst EDO - EDO с блочным доступом) - память на
основе EDO, работающая ае одиночными, а пакетными циклами чтения/записи.
Современные процессоры, благодаря внутреннему и внешнему кэшированию команд и
данных, обмениваются с основной памятью преимущественно блоками слов
максимальной ширины. В случае памяти BED O отпадает необходимость постоянной
подачи последовательных адресов на входы микросхем с соблюдением требуемых
временных задержек — достаточно перейти к очередному слову отдельным
сигналом.
SDRAM (Synchronous DRAM - синхронная динамическая память)
— память с синхронным доступом, работающая быстрее обычной асинхронной
(FPM/EDO/BEDO). Помимо синхронного метода доступа SDRAM использует внутреннее
разделение массива памяти на два независимых банка, что позволяет совмещать
выборку из одного банка с установкой адреса в другом банке. SDRAM также
поддерживает блочный обмен. Основная выгода от использования SDRAM состоит в
поддержке последовательного доступа в синхронном режиме, где не требуется
дополнительных тактов ожидания. При случайном доступе SDRAM работает
практически с той же скоростью, что и FPM/EDO.
РВ SRAM (Pipelined Burst SRAM - статическая память с
блочным конвейерным доступом) - разновидность синхронных SRAM с внутренней
конвейеризацией, за счет чего примерно вдвое повышается скорость обмена
блоками данных.
В современных компьютерах оперативная память конструктивно
изготавливается в виде независимых модулей разной емкости, которые
устанавливаются в соответствующие разъемы на материнской плате:
— DIP (Dual In line Package — корпус
с двумя рядами
выводов) — классические микросхемы, применявшиеся в бло
ках основной памяти XT и ранних AT, а сейчас — в блоках
кэш-памяти;
— SIP (Single In line Package — корпус
с одним рядом
выводов) — микросхема с одним рядом выводов, устанавли
ваемая вертикально;
— SIPP (Single In line Pinned
Package — модуль с одним
рядом проволочных выводов) — модуль памяти, вставляе-
мый в панель наподобие микросхем DIP/SIP; применялся в
ранних AT;
— SIMM (Single In line Memory
Module — модуль памя
ти с одним рядом контактов) — модуль памяти, вставляемый
в зажимающий разъем; применяется во всех современных
платах, а также во многих адаптерах, принтерах и прочих
устройствах. SIMM имеет контакты с двух сторон модуля,
но все они соединены между собой, образуя как бы один ряд
контактов;
— DIMM (Dual In line Memory Module
— модуль памяти
с двумя рядами контактов) — модуль памяти, похожий на
SIMM, но с раздельными контактами (обычно 2x84), за счет
чего увеличивается разрядность или число банков памяти в
модуле. Применяется Е последних платах для Pentium и во
всех платах для Pentium II и старше.
На SIMM в настоящее время устанавливаются преимущественно
микросхемы FPM/EDO/BEDO, а на DIMM -EDO/BEDO/SDRAM.
|