Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lection course.doc
Скачиваний:
8
Добавлен:
23.11.2019
Размер:
1.82 Mб
Скачать

Матричный процессор

Матричный процессор (array processor). Набор связанных между собой идентичных процессоров, работающих одновременно под управлением общего устройства управления. Обычно в качестве управляющего устройства выступает центральный процессор. На рисунке 2.2.3 показана структурная организация матричного процессора, где управляющий процессор связан со всеми процессорными элементами (ПЭ), а пунктирными стрелками показаны межпроцессорные шины. Как правило, эти шины имеют низкую разрядность и не предназначены для передачи больших массивов данных.

Реализация матричных процессоров подразумевает использование их для параллельных выполнений однотипных SIMD операций над элементами массива (например, матричных вычислений). Однако в виде исключения бывают реализации такого рода процессоров для выполнения несвязанных параллельных вычислительных процессов. Матричные процессоры используются для быстрого решения задач, связанных с проведением большого объема математических вычислений или для ускорения обработки видеоинформации. Такие процессоры являются мощным средством решения задач, обладающих параллельным алгоритмом. Под матричными системами или матричными процессорами обычно понимается многопроцессорная система, в которой процессоры с помощью той или иной сети связи объединены в матрицу. Задача устройства управления матричным процессором совместно с операционной системой - эффективная загрузка матрицы процессоров и эффективная (быстрая) передача промежуточных результатов. В качестве объектов параллелизма могут выступать этапы решения задачи, машинные команды или даже битовые операции, реализующие машинную команду.

Рисунок 2.2.3 – Структурная организация матричного процессора.

2.3. Организация эвм (6часов)

2.3.1. Иерархическая структура памяти. Основная память машины. Сверхоперативное запоминающее устройство. Внешняя память, расслоение памяти.

2.3.2. Ассоциативная память. Организация кэш памяти. Структура. Алгоритмы замены.

2.3.3. Страничная и сегментная структура памяти.

Второй основной составляющей компьютера (после процессора) является память. Система памяти конструируется в виде иерархии слоев (рис. 2.3.1). Верхний слой состоит из внутренних регистров центрального процессора. Внутренние регистры предоставляют возможность для хранения 32 битных данных на 32-разрядном процессоре и 64 битных на 64-разрядном процессоре, что, как правило, составляет меньше одного килобайта. Данные сохраняются в регистрах общего назначения, этот процесс управляется программой.

Рисунок 2.3.1. Иерархическое представление памяти в компьютере

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

Далее следует оперативная память (ОЗУ – оперативное запоминающее устройство, англ. RAM, Random Access Memory – память с произвольным доступом). Это главная рабочая область запоминающего устройства вычислительной системы. Все запросы центрального процессора, которые не могут быть выполнены кэш-памятью, поступают для обработки в основную память.

Следующим в структуре памяти идет магнитный диск (жесткий диск),структурная представление которого показано на рисунке 2.3.2. Дисковая память на два порядка дешевле ОЗУ в пересчете на бит и больше по величине, но доступ к данным, размещенным на диске, занимает примерно на три порядка больше времени. Причиной низкой скорости жесткого диска является тот факт, что диск представляет собой механическую конструкцию. Жесткий диск состоит из одной или нескольких металлических пластин, вращающихся со скоростью 5400, 7200 или 10800 оборотов в минуту. Информация записывается на пластины в виде концентрических окружностей. Головки чтения/записи в каждой заданной позиции могут прочитать кольцо на пластине, называемое дорожкой. Все вместе дорожки для заданной позиции вилки формируют цилиндр. Каждая дорожка разделена на некоторое количество секторов, обычно по 512 байт на сектор. На современных дисках внешние цилиндры содержат большее количество секторов, чем внутренние. Перемещение головки от одного цилиндра к другому занимает около 1 мс, а перемещение к произвольному цилиндру требует от 5 до 10 мс, в зависимости от диска. Когда головка располагается над нужной дорожкой, нужно ждать, пока двигатель повернет диск так, чтобы под головкой стал требуемый сектор. Это занимает дополнительно от 5 до 10 мс, в зависимости от скорости вращения диска. Когда сектор находится под головкой, процесс чтения или записи происходит со скоростью от 5 Мбайт/с (для низкоскоростных дисков) до 160 Мбайт/с (для высокоскоростных дисков).

Кроме описанных выше видов во многих компьютерах есть постоянная память с произвольным доступом (ПЗУ – постоянное запоминающее устройство, ROM, Read Only Memory – память только для чтения), которая не теряет свое содержимое при выключении питания вычислительной системы. ПЗУ программируется в процессе производства и после этого его содержимое нельзя изменить. На некоторых компьютерах в ПЗУ находятся программы начальной загрузки, используемые при запуске компьютера.

Электрически стираемое ПЗУ (EEPROM, Electrically Erasable ROM) и флэш-ОЗУ (flash RAM) также энергонезависимы, но в отличие от ПЗУ их содержимое можно стереть и переписать. Однако запись данных на них требует намного больше времени, чем запись в оперативную память. Поэтому они используются точно так же, как и ПЗУ.

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

Статическая память, SRAM (англ. Static RAM) – энергозависимая память, обладает очень малым временем доступа, основана на использовании триггеров в качестве запоминающего элемента. Триггер может быть построен из 5-6 транзисторов. Статические ОЗУ применяются для построения микроконтроллерных схем из-за простоты построения принципиальной схемы и возможности работать на сколь угодно низких частотах. Кроме того, статические ОЗУ применяются для построения КЭШ-памяти в универсальных компьютерах из-за высокого быстродействия статического ОЗУ. Статические ОЗУ требуют для своего построения большой площади кристалла, поэтому их емкость относительно невелика, что является их недостатком по сравнению с динамической памятью (см. динамическая память). Структура статического ОЗУ представлена на рисунке 2.3.3, где ЭП – это элемент памяти, а УВВ - устройство ввода-вывода.

Рисунок 2.3.3. – Структура статического ОЗУ

Запоминающие элементы заключены в матрице, размерностью 2n * 2m, где n, m – целые числа. Один элемент памяти может хранить бит информации. Вариант исполнения элемента памяти представлен на рисунке 2.3.4. Запоминающим устройством, на этом рисунке является D-триггер, который находится на пересечении i-ой строки и j-го столбца, которые являются выходами дешифраторов строк и столбцов соответственно. Сигнал WR является управляющим и указывает на вид операции (WR=1 – операция записи, WR = 0 – операция чтения). При записи в триггер записывается информация, которая поступает на вход D через шинный формирователь SW. При чтении информация появляется на выходе шинного формирователя, которая поступает с выхода триггера.

Рисунок 2.3.4. – Элемент памяти статического ОЗУ

На рисунке 2.3.5 показано условно-графическое изображение ОЗУ. Сигнал записи показан как WR, сигнал чтения – RD. Сигнал CS (chip select – выбор кристалла) активирует схему памяти для использования, т.е. в пассивном состоянии схема памяти находится в режиме хранения информации.

Рисунок 2.3.5. – Условно-графическое изображение ОЗУ

Временные диаграммы чтения и записи приведены на рисунке 2.3.6. На рисунке “а” изображена диаграмма обращения к ОЗУ для схем совместимая со стандартом от компании INTEL, на “б”, со стандартом от компании MOTOROLA.

а

б

Рисунок 2.3.6 – Временные диаграммы обращения к статической памяти

Стрелочками показаны последовательности, в которых должны формироваться управляющие сигналы. Сигнал DS (data strobe)– сигнал стробирования данных, который является активным в низком состоянии («0»). DI – (data in)- входные (записываемые в память) данные, DO (data out) – выходные (читаемые из памяти) данные.

Динамическая память DRAM (англ. Dynamical RAM) в отличие от статической памяти, в динамической запоминающим элементом является конденсатор. Пример реализации запоминающего элемента представлен на рисунке 2.3.7. Запись и считывание информации производится путем открывания транзисторов Т1 и Т2 и подключением накопительной емкости С к шине данных.

Рисунок 2.3.7 – Схема запомниающего элемента динамической памяти.

Так как в конденсаторах присутствуют токи утечки, для долговременной работы динамической памяти необходимо восстановление заряда в накопительной емкости С. Поэтому в устройствах динамического ОЗУ присутствуют схемы регенерации информации, которое требуют дополнительного времени и немного усложняют схему. Схема регенерации состоит из триггерного элемента, который заряжает ячейку, будучи предварительно установленным значением, которое зависит от уровня заряда конденсатора. Однако, несмотря на это, модули динамической памяти более компактны относительно статической памяти (требуется 1-2 транзистора для хранения 1 бита информации), обладают большой емкостью и применяются в качестве основного ОЗУ в вычислительной технике.

Первые ЗУ, которые впоследствии стали называть асинхронными динамическими ОЗУ, выполняли операции чтения и записи, получив лишь запускающий сигнал (обычно, сигнал строба адреса) независимо от каких-либо внешних синхронизирующих сигналов. Диаграмма циклов чтения и записи для таких ЗУ представлена на рис. 2.3.8, а) и 2.3.8, б) соответственно. Любой цикл (чтения или записи) начинается по спаду (фронту “1” →“0”) сигнала RAS#.

а)

б)

Рисунок 2.3.8. Временные диаграммы простых циклов чтения а) и записи б)

асинхронной динамической памяти.

Как видно из диаграмм, адрес на шины адреса поступает двумя частями: адрес строки (обозначенный как R1 или R2) и адрес столбца (C1 и C2). В момент, когда на адресной шине установилось требуемое значение части адреса, соответствующий сигнал строба (RAS# или CAS#) переводится в активное (нулевое) состояние.

Цикл записи начинается так же, как и цикл чтения, по спаду сигнала RAS# после подачи адреса строки. Записываемые данные выставляются на шину данных одновременно с подачей адреса столбца, а сигнал разрешения записи WE# при этом переводится в нулевое состояние (известен и несколько иной цикл “задержанной” записи). По истечении времени, достаточного для записи данных в элементы памяти, сигналы данных, WE#, RAS# и CAS# снимаются, что говорит об окончании цикла записи.

Помимо названного параметра TRAC – времени доступа по отношению к сигналу RAS# (его значение для микросхем второй половины 90-х годов XX столетия составляло от 40 нс до 80 нс), - на временной диаграмме, представленной на рисунке 2.3.8, указаны еще несколько времен:

TRCD – минимальное время задержки между подачей сигналов RAS# и CAS# (RAS-to-CAS Delay);

TRAS и TCAS – длительности (активного уровня) сигналов RAS# и CAS#;

TRC и TWC – длительности циклов чтения и записи соответственно;

TRP и TCP – времена регенерации строки и столбца соответственно (время регенерации определяет минимальную задержку, необходимую перед подачей очередного сигнала RAS# или CAS# после снятия (подъема в “1”) текущего).

Значения времен TRC и TWC для памяти (90-х годов) составляли порядка 50 – 100 нс, так что на одно (полное) обращение уходило от 5 до 7 циклов системной шины в зависимости от ее частоты, особенностей используемого чипсета и, собственно, быстродействия памяти. Так, для системной шины с частотой 66 Мгц длительность цикла составляет порядка 15 нс, что для 5 – 7 циклов дает диапазон 75 – 100 нс, если же частота системной шины составляла 100 МГц, то 5 циклов занимают 50 нс.

Поскольку адрес строки является старшей частью адреса, то для последовательных адресов памяти адрес строки одинаков (исключение составляет переход через границу строки). Это позволяет в (пакетном) цикле обращений по таким адресам задать адрес строки только для обращения по первому адресу, а для всех последующих задавать только адрес столбца. Такой способ получил название FPM (Fast Page Modeбыстрый страничный режим) и мог реализовываться обычными микросхемами памяти при поддержке контроллера памяти чипсета, обеспечивая сокращение времени обращения к памяти для всех циклов пакета, кроме первого. Получающаяся при этом временная диаграмма пакетного цикла чтения представлена на рисунке 2.3.9.

Рисунок 2.3.9. –Временная диаграмма цикла чтения последовательных адресов

динамической памяти DRAM в режиме FPM

Как видно из рисунка, цикл чтения первого слова пакета выполняется так же, как и одиночное обращение. Второй и последующие циклы чтения оказываются короче первого из-за отсутствия фазы подачи адреса строки, и их длительность определяется минимально допустимым периодом следования импульсов CAS# – TPC (Page CAS Time). Соотношение длительностей первого и последующих циклов при частоте системной шины может достигать 5 : 3, откуда и обозначение 5-3-3-3, используемое как характеристика памяти, которая указывает, что первый из циклов пакета занимает по времени 5 циклов системной шины, а последующие – по 3 цикла.

Длительность (низкого уровня) импульса CAS# определяется не только временем извлечения данных из памяти, но и временем удержания их на выходе микросхемы памяти. Последнее необходимо для фиксации прочитанных данных (контроллером памяти), так как данные присутствуют на выходе только до подъема сигнала CAS#. Поэтому следующей модификацией асинхронной динамической памяти стала память EDO (Extended Data Output – растянутый выход данных). В микросхеме EDO памяти на выходе был установлен буфер-защелка, фиксирующий данные после их извлечения из матрицы памяти при подъеме сигнала CAS# и удерживающий их на выходе до следующего его спада. Это позволило сократить длительность сигнала CAS# и соответственно цикла памяти, доведя пакетный цикл до соотношения с циклами системной шины 5-2-2-2 (т.е. сократить длительность второго и последующих циклов в 1,5 раза только за счет выходного регистра-буфера). Временная диаграмма для режима EDO показана на рисунке 2.3.10, а сам этот режим иногда называют гиперстраничным (Hyper Page Mode).

Рисунок 2.3.10 – Временная диаграмма цикла чтения последовательных адресов

динамической памяти DRAM в режиме EDO

Впоследствии появилась и еще одна (последняя) модификация асинхронной DRAM – BEDO (Burst EDO – пакетная EDO память), в которой не только адрес строки, но и адрес столбца подавался лишь в первом цикле пакета, а в последующих циклах адреса столбцов формировались с помощью внутреннего счетчика. Это позволило еще повысить производительность памяти и получить для пакетного цикла соотношение 5-1-1-1.

Однако у отечественных поставщиков этот тип памяти не получил широкого распространения, так как на смену асинхронной памяти пришла синхронная SDRAM (англ. Synchronous Dynamic RAM).

В отличие от других типов DRAM, использовавших асинхронный обмен данными, ответ на поступивший в устройство управляющий сигнал возвращается не сразу, а лишь при получении следующего тактового сигнала. Тактовые сигналы позволяют организовать работу SDRAM в виде конечного автомата, исполняющего входящие команды. При этом входящие команды могут поступать в виде непрерывного потока, не дожидаясь, пока будет завершено выполнение предыдущих инструкций (конвейерная обработка): сразу после команды записи может поступить следующая команда, не ожидая, когда данные окажутся записаны. Поступление команды чтения приведёт к тому, что на выходе данные появятся спустя некоторое количество тактов — это время называется задержкой (англ. SDRAM latency) и является одной из важных характеристик данного типа устройств. Первый стандарт SDRAM с появлением последующих стандартов стал именоваться SDR (Single Data Rate — в отличие от Double Data Rate). За один такт принималась одна управляющая команда и передавалось одно слово данных. Типичными тактовыми частотами были 66, 100 и 133 МГц. Микросхемы SDRAM выпускались с шинами данных различной ширины (обычно 4, 8 или 16 бит), но как правило, эти микросхемы входили в состав 168-пинного модуля DIMM, который позволял прочитать или записать 64 бита (в варианте без контроля чётности) или 72 бита (с контролем чётности) за один такт.

Использование шины данных в SDRAM оказалось осложнено задержкой в 2 или 3 такта между подачей сигнала чтения и появлением данных на шине данных, тогда как во время записи никакой задержки быть не должно. Потребовалась разработка достаточно сложного контроллера, который не позволял бы использовать шину данных для записи и для чтения в один и тот же момент времени.

На рисунке 2.3.11 показана структурная схема модуля SDRAM компании «Samsung», KM432S2030C.

Рисунок 2.3.11 Структурная схема SDRAM модуля.

Основные блоки SDRAM модуля: Address register (регистр адреса) производит считывание адреса с шины и сохраняет значение в регистре адреса. Адрес столбца или строки определяется сигналом LCKE.

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

Bank Select (блок адресации банков памяти) производит активацию блока памяти.

Row Buffer/Refresh Counter (буфер строки/ счетчик регенерации) сохраняет адрес активированной строки и содержит значение счетчика регенерации для обновления данных.

Row Decoder (дешифратор строки) производит дешифрацию и активацию выбранной строки памяти для организации дальнейшего обращения.

Col Buffer (буфер столбца) хранит текущий адрес столбца памяти.

Column Decoder (дешифратор столбца) производит дешифрацию и активацию выбранного столбца памяти для организации ввода вывода.

Latency & Burst Length (устройство задержки и длины последовательного обращения) создает сигналы для синхронного управления блоками памяти в режиме ввода-вывода данных.

Programming Register (регистр управления) хранит конфигурационные значения, необходимые для синхронной работы памяти.

Sense AMP (блок усилителей) производит усиление и согласование уровней выходных данных.

Output Buffer (буфер выходных данных) производит хранение значений выходных данных в режиме чтения.

I/O Control (блок управления вводом-выводом) осуществляет управление потоком ввода-вывода.

Data Input Register (регистр входных данных) хранит значения входных данных для дальнейшей записи в память.

Управляющие сигналы

Команды, управляющие модулем памяти SDR SDRAM, подаются на контакты модуля по 7 сигнальным линиям. По одной из них подается тактовый сигнал, передние (нарастающие) фронты которого задают моменты времени, в которые считываются команды управления с остальных 6 командных линий. Имена (в скобках — расшифровки имен) шести командных линий и описания команд приведены ниже:

CLK (system CLocK) – системная синхронизирующая частота. Все процессы синхронизируются по переходу (переднему фронту) из «0» в «1».

CKE (Clock ENable) — при низком уровне сигнала блокируется подача тактового сигнала на микросхему. Команды не обрабатываются, состояние других командных линий игнорируется.

A0-A10 (Address) – адрес строки и столбца мультиплексируются на этих выводах (адрес строки RA0 - RA10, адрес столбца CA0 - CA7).

BA0,1 (bank select address) – при помощи этих выводов производится активация выбранных банков в режиме установки адреса строки. В режиме чтения/записи производится однозначные операции в выбранных банках памяти.

/CS (Chip Select) — при высоком уровне сигнала все прочие управляющие линии, кроме CLK, CKE и DQM игнорируются. Действует как команда NOP (нет оператора).

DQM0-3 (data input/output mask) — высокий уровень на этой линии запрещает чтение/запись данных. При одновременно поданной команде записи данные не записываются в DRAM. Присутствие этого сигнала в двух тактах, предшествующих циклу чтения приводит к тому, что данные не считываются из памяти.

/RAS (row address strobe) — позволяет получить доступ к строке. Указывает командному аппарату, что присутствующий адрес на шине является адресом строки.

/CAS (column address strobe) — позволяет получить доступ к столбцу. Указывает командному аппарату, что присутствующий адрес на шине является адресом столбца.

/WE (write enable) — указывает на тип проводимой команды (чтение = «1», запись = «0»).

Для управления SDRAM используются следующие команды:

Упрощенная таблица истинности для SDRAM

Таблица 2.3.1.

/CS

/RAS

/CAS

/WE

BAn

A10

An

Команда

1

x

x

x

x

x

x

задержка команды (нет операции).

0

1

1

1

x

x

x

нет операции.

0

1

1

0

x

x

x

остановить текущую операцию пакетного чтения или записи.

0

1

0

1

№ банка

0

№ столбца

считать пакет данных из активированного ряда.

0

1

0

1

№ банка

1

№ столбца

как и предыдущая команда, по завершении произвести деактивацию ряда.

0

1

0

0

№ банка

0

№ столбца

записать пакет данных в активированный ряд.

0

1

0

0

№ банка

1

№ столбца

как и предыдущая команда, по завершении произвести деактивацию ряда.

0

0

1

1

№ банка

№ строки

открыть ряд для операций записи и чтения.

0

0

1

0

№ банка

0

x

деактивировать текущий ряд выбранного банка.

0

0

1

0

x

1

x

деактивировать текущий ряд всех банков.

0

0

0

1

x

X

x

Операция регенерации данных. Все банки должны быть деактивированы.

0

0

0

0

0 0

РЕЖИМ

произвести конфигурирование микросхемы данными с линий BA0,1, A0—A10.

Конфигурирование микросхемы памяти производится путем записи соответствующих значений в поля регистра управления, как показано в таблице 2.3.2.

Таблица значений регистра управления

Таблица2.3.2.

Адрес

BA0-BA1

A10/AP

A9

A8

A7

A6-A4

A3

A2-A0

Функция

резерв

резерв

режим записи

0

0

задержка CAS

тип последователь-ного обращения

длина очереди

Конфигурирование длины очереди (burst length)в режиме последовательного обращения представлено в таблице 2.3.3.

Для рассматриваемого устройства памяти (KM432S2030C) значение «страница» составляет длину очереди из 32 значений.

Таблица значений длины очереди

Таблица 2.3.3.

Длина очереди

A2

A1

A0

BT=0

BT=1

0

0

0

1

1

0

0

1

2

2

0

1

0

4

4

0

1

1

8

8

1

0

0

резерв

резерв

1

0

1

резерв

резерв

1

1

0

резерв

резерв

1

1

1

страница

резерв

Тип последовательного обращения (Burst Type) определяется значением A3. Если A3 = 0, то тип обращения устанавливается последовательный, если A3 = 1, то обращение будет чередующимся. Пример показан в таблицах 2.3.4, 2.3.5.

Последовательность обращений при длине очереди (burst length)= 4

Таблица 2.3.4.

Начальный адрес

Последовательный режим

Чередующийся режим

A1

A0

0

0

0

1

2

3

0

1

2

3

0

1

1

2

3

0

1

0

3

2

1

0

2

3

0

1

2

3

0

1

1

1

3

0

1

2

3

2

1

0

Последовательность обращений при длине очереди (burst length) = 8

Таблица 2.3.5.

Начальный адрес

Последовательный режим

Чередующийся режим

A2

A1

A0

0

0

0

0

1

2

3

4

5

6

7

0

1

2

3

4

5

6

7

0

0

1

1

2

3

4

5

6

7

0

1

0

3

2

5

4

7

6

0

1

0

2

3

4

5

6

7

0

1

2

3

0

1

6

7

4

5

0

1

1

3

4

5

6

7

0

1

2

3

2

1

0

7

6

5

4

1

0

0

4

5

6

7

0

1

2

3

4

5

6

7

0

1

2

3

1

0

1

5

6

7

0

1

2

3

4

5

4

7

6

1

0

3

2

1

1

0

6

7

0

1

2

3

4

5

6

7

4

5

2

3

0

1

1

1

1

7

0

1

2

3

4

5

6

7

6

5

4

3

2

1

0

Задержка CAS устанавливается значениями A6-A4 и определяет количество тактовых импульсов от возникновения активного уровня CAS (адрес столбца) до возникновения данных на выходе в режиме чтения. Диаграмма чтения и записи с длиной очереди = 4 (burst length = 4), представлена на рисунке 2.3.12.

Режим записи устанавливается значением сигнала A9 и определяет либо очередной режим (A9=0), либо одиночный (A9=1).

Рисунок 2.3.12. – Диаграмма чтения и записи с длиной очереди =4

DDR SDRAM (англ. Double Data Rate Synchronous Dynamic Random Access Memory — синхронная динамическая память с произвольным доступом и удвоенной скоростью передачи данных). При использовании DDR SDRAM достигается удвоенная скорость работы, нежели в SDRAM, за счёт считывания команд и данных не только по фронту, как в SDRAM, но и по спаду тактового сигнала. За счёт этого удваивается скорость передачи данных без увеличения частоты тактового сигнала шины памяти. Таким образом, при работе DDR на частоте 100 МГц мы получим эффективную частоту 200 МГц (при сравнении с аналогом SDR SDRAM). В спецификации JEDEC есть замечание, что использовать термин «МГц» в DDR некорректно, правильно указывать скорость «миллионов передач в секунду через один вывод данных».

Отличие DDR2 от DDR - вдвое большая частота работы шины, по которой данные передаются в буфер микросхемы памяти.

Отличие DDR3 от DDR2 уменьшено на 40% потребление энергии, что обусловлено пониженным (1,5 В, по сравнению с 1,8 В для DDR2 и 2,5 В для DDR) напряжением питания для ячеек памяти. Снижение напряжения питания достигается за счёт использования 90-нм (вначале, в дальнейшем 65-, 50-, 40-нм) техпроцесса при производстве микросхем и применения транзисторов с двойным затвором Dual-gate (что способствует снижению токов утечки).

DDR4 Будет поддерживать частоты от 2133 до 4266 МГц, при этом напряжение питания ячеек памяти снижено до 1.2 В.

Флеш-память (англ. flash memory) — разновидность твердотельной полупроводниковой энергонезависимой перезаписываемой памяти (ПППЗУ). Она может быть прочитана сколько угодно раз (в пределах срока хранения данных, типично — 10–100 лет), но писать в такую память можно лишь ограниченное число раз (максимально — около миллиона циклов). Распространена флеш-память, выдерживающая около 100 тысяч циклов перезаписи — намного больше, чем способна выдержать дискета или CD-RW. Не содержит подвижных частей, так что, в отличие от жёстких дисков, более надёжна и компактна.

TRAM (англ. Thyristor RAM) — тиристорная память с произвольным доступом, новый вид оперативной памяти, сочетающий в себе сильные стороны DRAM и SRAM: высокую скорость работы и большой объём. ПамятьTRAM является хорошо масштабируемой, и уже имеет плотность хранения данных в несколько раз превышающую её у SRAM памяти. В данный момент идёт разработка следующего поколения TRAM памяти, которая, как планируется, будет сопоставима по плотности записи с DRAM.

MRAM(англ. Magnetoresistive Random-Access Memory) — это запоминающее устройство c произвольным доступом, которое хранит информацию при помощи магнитных моментов, а не электрических зарядов.

Важнейшее преимущество этого типа памяти — энергонезависимость, то есть способность сохранять записанную информацию при отсутствии внешнего питания.

Технология магниторезистивной памяти разрабатывается с 1990-х годов. В сравнении с растущим объемом производства других типов компьютерной памяти, особенно флэш-памятью и памятью типа DRAM, она пока широко не представлена на рынке.

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

В отличие от обычной машинной памяти (памяти произвольного доступа, или RAM), в которой пользователь задает адрес памяти и ОЗУ возвращает слово данных, хранящееся по этому адресу, АП разработана таким образом, чтобы пользователь задавал слово данных, и АП ищет его во всей памяти, чтобы выяснить, хранится ли оно где-нибудь в нем. Если слово данных найдено, АП возвращает список одного или более адресов хранения, где слово было найдено (и в некоторых архитектурах, также возвращает само слово данных, или другие связанные части данных). Таким образом, АП — аппаратная реализация того, что в терминах программирования назвали бы ассоциативным массивом.

Из-за того, что АП разработана, чтобы искать во всей памяти одной операцией, это получается намного быстрее чем поиск в RAM фактически во всех приложениях поиска. Однако, есть и минус в большей стоимости АП. В отличие от чипа RAM, у которого хранилища простые, у каждого отдельного бита памяти в полностью параллельной АП должна быть собственная присоединенная схема сравнения, чтобы обнаружить совпадение между сохраненным битом и входным битом. К тому же, выходы сравнений от каждой ячейки в слове данных должны быть объединены, чтобы привести к полному результату сравнения слова данных. Дополнительная схема увеличивает физический размер чипа АП, что увеличивает стоимость производства. Дополнительная схема также увеличивает рассеиваемую мощность, так как все схемы сравнений активны на каждом такте. Как следствие, АП используется только в специализированных приложениях, где скорость поиска не может быть достигнута используя другие менее дорогостоящие методы.

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

Двоичная АП — простейший тип ассоциативной памяти, который использует слова поиска данных, состоявшие полностью из единиц и нулей. В троичной АП добавляется третье значение для сравнения «X» или «не важно», для одного или более битов в сохраненном слове данных, добавляя таким образом большей гибкости поиску. Например, в троичной АП могло бы быть сохранено слово «10XX0», которое выдаст совпадение на любое из четырех слов поиска «10000», «10010», «10100», или «10110». Добавление гибкости к поиску приходит за счет увеличения цены двоичной АП, поскольку внутренняя ячейка памяти должна теперь закодировать три возможных состояния вместо двух. Это дополнительное состояние обычно осуществляется добавлением бита маски «важности»(«важно»/«не важно») к каждой ячейке памяти.

Расслоение памяти

Метод расслоения памяти (англ. interleaved memory) применяется для увеличения скорости доступа к основной (оперативной) памяти. В обычном случае, во время обращения к какой-то одной из ячеек модуля основной памяти никакие другие обращения к памяти производиться не могут. При расслоении памяти соседние по адресам ячейки размещаются в различных модулях памяти, так что появляется возможность производить несколько обращений одновременно. Например, при расслоении на два направления ячейки с нечетными адресами оказываются в одном модуле памяти, а с четными — в другом. При простых последовательных обращениях к основной памяти ячейки выбираются поочередно. Таким образом, расслоение памяти позволяет обращаться сразу к нескольким ячейкам, поскольку они относятся к различным модулям памяти. На рисунке 2.3.13 показано расслоение памяти по четырем банкам.

Рисунок 2.3.13 – расслоение памяти по четырем банкам.

Кэш память, алгоритмы замены

Для сравнения, в таблице 2.3.6 показаны характерные особенности для виртуальной и кэш памяти

Таблица 2.3.6

Сравнение виртуальной и кэш-памяти.

Виртуальная память

Кэш-память

Организуется для ускорения обмена между оперативным запоминающим устройством и внешней памятью (ОЗУ и ВнП.)

Организуется для ускорения обмена между центральным процессором и оперативным запоминающим устройством (ЦП и ОЗУ)

Страничный обмен данными (по 2-16 КБ)

Обмен строками (сотни байт)

Ускорение до 1000 раз

Ускорение до 10 раз

При подкачке ЦП может переключаться на другую задачу

При подкачке ЦП ожидает ее завершения

Адресное пространство ВП равно сумме адресного пространства ОЗУ и ВнП

Адресное пространство кэш-памяти равно адресному пространству ОЗУ

В ОЗУ хранятся копии или оригиналы страниц ВП

В буферной памяти хранятся копии строк ОЗУ

Виртуальная память программно доступна

Кэш-память программно не доступна

Алгоритмы замещения информации.

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

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

Сквозная запись (write through). При каждом запросе к основной памяти, в том числе и при записи, просматривается кэш. Если строка с запрашиваемым адресом отсутствует в кэш(для этого просматривают поле тегов), то запись выполняется только в основную память. Если же адрес, по которому выполняется обращение, находится и в КЭШе, то запись производится одновременно в кэш и основную память. Такая операция по времени равносильна обращению в основную (оперативную) память и не дает большого выигрыша от применения кэш-памяти.

Обратная запись (write back). Аналогично, при возникновении запроса к памяти выполняется просмотр кэш, и если строка с запрашиваемым адресом там отсутствует, то запись выполняется только в основную память. В противном же случае запись производится только в кэш-память, при этом в поле управления делается специальная отметка (признак модификации), которая указывает на то, что при вытеснении этих данных из кэш необходимо переписать их в подходящий момент в основную память, чтобы обновить устаревшее содержимое основной памяти. Очевидно, что в этом случае в соответствии с принципами временной и пространственной локальности, обращения будут происходить преимущественно к кэш-памяти, а малая их доля упадёт на основную память. Поэтому временная эффективность метода обратной записи высокая, хотя требует применения более сложных алгоритмов согласования данных. Контроллер кэш-памяти осуществляет копирование модифицированной строки при любых замещениях строки. Модифицированные данные могут выгружаться не только при освобождении места в кэш-памяти для новых данных, но и в «фоновом режиме», то есть в промежутках, когда шинный интерфейс не занят процессором или другими устройствами. В некоторых алгоритмах замещения предусматривается первоочередная выгрузка модифицированных, или, как еще говорят, «грязных» данных.

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

Наиболее эффективным является алгоритм замещения на основе наиболее давнего использования (LRU — Least Recently Used), при котором замещается та строка кэш-памяти, к которой дольше всего не было обращения. Общая реализация производит отслеживание наименее использованной строки. Этот алгоритм реализуется путем добавления дополнительных бит «возраста», а отслеживание сделано при помощи сравнения этих бит.

Алгоритм замещения на основе наименее давнего использования (MRU - Most Recently Used), в отличие от LRU, в первую очередь вытесняется последний использованный элемент. Для схем случайного доступа и циклического сканирования больших наборов данных (схемы циклического доступа), алгоритмы кэширования MRU – имеют больше попаданий по сравнению с LRU за счет из стремления к сохранению старых данных. Алгоритмы MRU наиболее полезны в случаях, когда чем старше элемент, тем больше обращений к нему происходит. [20]

Сегментированный LRU (SLRU – Segmented LRU) – SLRU кэш состоит из двух секций: пробной и защищенной. Пробная секция реализована по алгоритму LRU, защищенная - по алгоритму MRU. При промахе, данные сначала поступают в пробную секцию. Из этой секции, в результате редкого использования данные попадают в защищенную секцию. Такой перенос строки из пробного сегмента в защищенный сегмент может вызвать перенос последней использованной (LRU) строки в защищенном сегменте в MRU-область пробного сегмента, давая этой линии второй шанс быть использованной перед вытеснением.

Кэш прямого отображения (Direct-mapped cache) используется для высокоскоростных кэшей процессора, где не хватает быстродействия 2-канального ассоциативного кэширования. Адрес нового элемента используется для вычисления местонахождения в кэше (в отведенной для этого области). Все, что было ранее, — вытесняется.

Другой возможный алгоритм замещения-алгоритм, работающий по принципу «первый вошел-первый вышел»(FIFO-First In-First Out). Здесь заменяется строка, дольше всего находившаяся в кэш-памяти.

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

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

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

Сегментная организация памяти

При использовании сегментного метода программа разбивается на части – т.н. сегменты, и для каждой такой части выделяется физическая память. Обращение к элементам программы логически представляет собой указание сегмента и смещения относительно начала этого сегмента. А физически имя сегмента соответствует базовому адресу, а смещение – добавка к нему, как показано на рисунке 2.3.14. Преобразование номера сегмента в его порядковый номер (виртуальный адрес) производит система программирования, а при размещении программы ОС получит его фактическое значение, как базовый адрес.

Рисунок 2.3.14 – Механизм определения адреса при сегментном распределении памяти

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

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

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

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

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

Выгружаемый (в случае невозможности размещения в памяти нужного сегмента) сегмент выбирается на основе следующих алгоритмов замещения:

– FIFO (first in – first out) первым пришёл – первым выбывает;

– LRU (least recently used) последний, из недавно использованных или, другими словами, дольше всех не используемый;

– LFU (least frequently used) используемый реже всех;

– Random случайный выбор.

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

Алгоритм FIFO производит выбор сегмента по времени, прошедшем с момента размещения сегмента в оперативной памяти, но не учитывает фактическое использование сегментов. Это может привести к ситуации, когда только выгруженный сегмент снова потребуется программе. Поэтому, более оптимальными являются дисциплины LRU и LFU.

Для реализации алгоритмов замещения LRU и LFU требуются дополнительные аппаратные средства, позволяющие учитывать интенсивность использования сегмента (например, бит активного состояния или бит обращения; периодически ОС анализирует эти данные и определяет активность сегментов).

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

Недостатками сегментного подхода организации памяти являются:

– длительность доступа к искомой ячейке: сначала нужно найти и прочитать дескриптор сегмента (эти данные используются для нахождения сегмента в физическом адресном пространстве, а затем ячейки в пределах сегмента). Для уменьшения этого времени применяется копирование дескрипторов в сверхоперативной памяти;

– фрагментация оперативной памяти.

Этот подход был использован в OS/2 первого поколения.

Страничная организация памяти

При страничном подходе программа разбивается на одинаковые фрагменты за исключением, возможно, последнего. Для размещения фрагментов программы создаются одинаковые единицы памяти – страницы. Программа разбивается на виртуальные страницы, а память – на физические. Часть виртуальных страниц размещается в ОП, часть – во внешней памяти. Последние составляют страничный файл или файл подкачки. Размер страницы обычно кратен степени два (4К = 212). Полный адрес определяется суммой адреса страницы (P) и адреса ячейки(i).

Для отображения виртуального адреса на физическую память для каждой задачи нужно иметь таблицу страниц. Описание страниц производится созданием дескриптора страницы. Он отличается от дескриптора сегмента отсутствием поля «длина» (причина понятна, т.к. все страницы нормированы, имеют одинаковую длину). Идентификатором виртуальной страницы является её номер в таблице дескрипторов. Местонахождение страницы в физическом адресном пространстве, как и ранее, определяется «битом присутствия». Механизм трансляции виртуального адресного пространства на физическую память иллюстрируется рисунком 2.3.15.

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

Рисунок 2.3.15 – Механизм страничного распределения памяти

При различии фактического уровня доступа с разрешённым происходит прерывание программы по защите памяти. При обращении к странице, расположенной во внешней памяти, возникает прерывание, управление передаётся диспетчеру памяти, который производит поиск свободного физического пространства памяти. При его отсутствии, по одному из алгоритмов замещения (FIFO, LRU, LFU, Random) определяется освобождаемая страница, на место которой будет размещена вызываемая.

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

Наиболее эффективной дисциплиной замещения страниц считается LRU, т.е. удаление страницы, неиспользуемой дольше других по длительности (OS/2, Linux). В ОС Windows NT используется FIFO.

Основным достоинством страничного подхода распределения памяти является практическое отсутствие фрагментации: на каждую задачу может приходиться не больше одной незаполненной страницы (которая является последней): ~4К при объемах памяти в единицах Гигабайт.

Недостатками этого способа являются:l

− увеличение сложности алгоритмов и вычислительных ресурсов − таблицы страниц нужно также размещать в памяти и обрабатывать их;

− разбивка программы на страницы производится без учёта логической взаимосвязи элементов кода, и тогда межстраничные переходы могут возникать чаще, чем межсегментные.

Второй недостаток устраняется использованием сегментно-страничного способа размещения памяти (при увеличении требований к вычислительным ресурсам).

Сегментно-страничная организация памяти

Суть данного подхода состоит в следующем. Программа разбивается на логически законченные части − сегменты, каждый из которых размещается на некотором (от 1 до n) количестве стандартных страниц памяти.

В этом случае виртуальный адрес состоит из трёх составляющих: сегмент, страница, индекс. Такая организация вносит ещё большую задержку доступа к памяти. Необходимо сначала вычислить адрес дескриптора сегмента и прочитать его, затем вычислить адрес элемента таблицы страниц этого сегмента и извлечь из памяти необходимый элемент, а уже затем, приписав к номеру физической страницы номер ячейки в странице, получить окончательный физический адрес этого элемента. Величина задержки здесь примерно втрое больше, чем при прямой адресации. Для уменьшения задержки вводится кэширование.

Достоинством сегментно-страничного способа распределения памяти является размещение сегмента программы в памяти целиком, что уменьшает время межстраничного обмена.

Недостаток – алгоритмическая сложность и большие затраты вычислительных ресурсов на реализацию.

Для виртуальной памяти большое значение имеет алгоритм подкачки, то есть способ замены страниц в ОЗУ на страницы во внешней памяти, к которым произошло обращение. При аппаратной организации ВП система подкачки использует ассоциативную память страниц. Стратегии замены страниц в ВП могут быть самыми различными:

1. Наиболее давнее использование (по времени)

2. Наиболее редкое использование.

3. По очереди (по принципу FIFO)

4. Случайным образом.

5. "Наилучший" выбор - гибкое сочетание различных стратегий.

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