Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
EVM_1.docx
Скачиваний:
3
Добавлен:
27.09.2019
Размер:
681.75 Кб
Скачать

1. Предвыборка данных, принцип повышения скорости передачи информации для памяти ddr2, ddr3

  • Предсказание ветвлений

В любой более-менее сложной программе присутствуют команды условного перехода: «Если некое условие истинно — перейти к исполнению одного участка кода, если нет — другого». До тех пор, пока не станет известно, какой участок кода после условного перехода окажется «актуальным» — его невозможно начать декодировать и исполнять (см. внеочередное исполнение). Для того чтобы как-то примирить концепцию внеочередного исполнения с командами условного перехода, предназначается специальный блок: блок предсказания ветвлений. Он пытается предсказать, на какой участок кода укажет команда условного перехода, ещё до того, как она будет исполнена. Процессором производятся вполне реальные действия: предсказанный участок кода загружается в кэш (если он там отсутствует), и даже начинается декодирование и выполнение его команд. Причём среди выполняемых команд также могут содержаться инструкции условного перехода, и их результаты тоже предсказываются, что порождает целую цепочку из пока не проверенных предсказаний! Разумеется, если блок предсказания ветвлений ошибся, вся проделанная в соответствии с его предсказаниями работа просто аннулируется. Алгоритмы, по которым работает блок предсказания ветвлений, преимущественно просты. Чаще всего команда условного перехода встречается в циклах: некий счётчик принимает значение X, и после каждого прохождения цикла значение счётчика уменьшается на единицу. Соответственно, до тех пор, пока значение счётчика больше нуля — осуществляется переход на начало цикла, а после того, как он становится равным нулю — исполнение продолжается дальше. Блок предсказания ветвлений просто анализирует результат выполнения команды условного перехода, и считает, что если N раз подряд результатом стал переход на определённый адрес — то и в N+1 случае будет осуществлён переход туда же. Однако, несмотря на весь примитивизм, данная схема работает просто замечательно: например, в случае, если счётчик принимает значение 100, а «порог срабатывания» предсказателя ветвлений (N) равен двум переходам подряд на один и тот же адрес — легко заметить, что 97 переходов из 98 будут предсказаны правильно! Разумеется, несмотря на достаточно высокую эффективность простых алгоритмов, механизмы предсказания ветвлений в современных CPU всё равно постоянно совершенствуются и усложняются — но тут уже речь идёт о борьбе за единицы процентов: например, за то, чтобы повысить эффективность работы блока предсказания ветвлений с 95 процентов до 97, или даже с 97% до 99...

  • Предвыборка данных

Блок предвыборки данных (Prefetch) очень похож по принципу своего действия на блок предсказания ветвлений — с той только разницей, что в данном случае речь идёт не о коде, а о данных. Общий принцип действия такой же: если встроенная схема анализа доступа к данным в ОЗУ решает, что к некоему участку памяти, ещё не загруженному в кэш, скоро будет осуществлён доступ — она даёт команду на загрузку данного участка памяти в кэш ещё до того, как он понадобится исполняемой программе. Результативно работающий блок предвыборки позволяет существенно сократить время доступа к нужным данным, и, соответственно, повысить скорость исполнения программы. К слову: грамотный Prefetch очень хорошо компенсирует высокую латентность подсистемы памяти, подгружая нужные данные в кэш, и тем самым, нивелируя задержки при доступе к ним, если бы они находились не в кэше, а в основном ОЗУ. Однако, разумеется, в случае ошибки блока предвыборки данных, неизбежны негативные последствия: загружая де-факто «ненужные» данные в кэш, Prefetch вытесняет из него другие (быть может, как раз нужные). Кроме того, за счёт «предвосхищения» операции считывания, создаётся дополнительная нагрузка на контроллер памяти (де-факто, в случае ошибки — совершенно бесполезная). Алгоритмы Prefetch, как и алгоритмы блока предсказания ветвлений, тоже не блещут интеллектуальностью: как правило, данный блок стремится отследить, не считывается ли информация из памяти с определённым «шагом» (по адресам), и на основании этого анализа пытается предсказать, с какого адреса будут считываться данные в процессе дальнейшей работы программы. Впрочем, как и в случае с блоком предсказания ветвлений, простота алгоритма вовсе не означает низкую эффективность: в среднем, блок предвыборки данных чаще «попадает», чем ошибается (и это, как и в предыдущем случае, прежде всего связано с тем, что «массированное» чтение данных из памяти, как правило происходит в процессе исполнения различных циклов).

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

Описание

Микросхемы памяти DDR SDRAM выпускаются в корпусах TSOP и (освоено позднее) корпусах типа BGA (FBGA), производятся по нормам 0,13 и 0,09-микронного техпроцесса:

Напряжение питания микросхем: 2,6 В +/- 0,1 В

Потребляемая мощность: 527 мВт

Интерфейс ввода-вывода: SSTL_2

Ширина шины памяти составляет 64 бита, то есть по шине за один такт одновременно передаётся 8 байт. В результате получаем следующую формулу для расчёта максимальной скорости передачи для заданного типа памяти: (тактовая частота шины памяти) x 2 (передача данных дважды за такт) x 8 (число байтов передающихся за один такт). Например, чтобы обеспечить передачу данных дважды за такт, используется специальная архитектура «2n Prefetch». Внутренняя шина данных имеет ширину в два раза больше внешней. При передаче данных сначала передаётся первая половина шины данных по фронту тактового сигнала, а затем вторая половина шины данных по спаду.

Помимо удвоенной передачи данных, DDR SDRAM имеет несколько других принципиальных отличий от простой памяти SDRAM. В основном они являются технологическими. Например, был добавлен сигнал QDS, который располагается на печатной плате вместе с линиями данных. По нему происходит синхронизация при передаче данных. Если используется два модуля памяти, то данные от них приходят к контроллеру памяти с небольшой разницей из-за разного расстояния. Возникает проблема в выборе синхросигнала для их считывания и использование QDS успешно это решает.

JEDEC устанавливает стандарты для скоростей DDR SDRAM, разделённых на две части: первая для чипов памяти, а вторая для модулей памяти, на которых, собственно, и размещаются чипы памяти.

DDR2 SDRAM (англ. double-data-rate two synchronous dynamic random access memory — синхронная динамическая память с произвольным доступом и удвоенной скоростью передачи данных, второе поколение) — это тип оперативной памяти используемой в вычислительной технике в качестве оперативной и видеопамяти. Пришла на смену памяти DDR SDRAM.

Как и DDR SDRAM, DDR2 SDRAM использует передачу данных по обоим срезам тактового сигнала, за счёт чего при такой же частоте шины памяти, как и в обычной SDRAM, можно фактически удвоить скорость передачи данных (например, при работе DDR2 на частоте 100 МГц эквивалентная эффективная частота для SDRAM получается 200 МГц). Основное отличие DDR2 от DDR — вдвое большая частота работы шины, по которой данные передаются в буфер микросхемы памяти. При этом, чтобы обеспечить необходимый поток данных, передача на шину осуществляется из четырёх мест одновременно. Итоговые задержки оказываются выше, чем для DDR.

Внешнее отличие модулей памяти DDR2 от DDR — 240 контактов (по 120 с каждой стороны)

Преимущества по сравнению с DDR:

Более высокая полоса пропускания

Как правило, меньшее энергопотребление

Улучшенная конструкция, способствующая охлаждению

Немного уменьшенные задержки (в наносекундах)

DDR3 SDRAM (англ. double-data-rate three synchronous dynamic random access memory — синхронная динамическая память с произвольным доступом и удвоенной скоростью передачи данных, третье поколение) — это тип оперативной памяти, используемой в вычислительной технике в качестве оперативной и видео- памяти. Пришла на смену памяти типа DDR2 SDRAM.

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

Возможности микросхем DDR3 SDRAM:

Предвыборка 8 байт

Функция асинхронного сброса с отдельным контактом

Поддержка компенсации времени готовности на системном уровне

Зеркальное расположение контактов, удобное для сборки модулей

Выполнение CAS Write Latency за такт

Встроенная терминация данных

Встроенная калибровка ввода/вывода (мониторинг времени готовности и корректировка уровней)

Автоматическая калибровка шины данных

Преимущества по сравнению с DDR2:

Бо́льшая пропускная способность (до 19200 МБ/с)

Меньшее энергопотребление

Немного уменьшенные задержки (в наносекундах)

Основным нововведением, позволившим увеличить скорость DDR3, явилось удвоение объема выборки данных из чипов в буфер ввода-вывода. Если в DRR2 SDRAM объем данных, выбираемых за один такт, составлял 4 bit, то в DDR3 SDRAM эта величина составляет уже 8 bit. Поэтому если эффективная частота DDR была в 2 раза больше, DDR2 – в 4, то у DDR3 она в 8 раз выше реальной частоты чипов. Фактически из этого следует, что для реализации модулей памяти нового стандарта необходима лишь модернизация буфера ввода-вывода, а все технологии изготовления микросхем могут оставаться неизменными.

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