На каком уровне иерархии памяти находится программа в процессе выполнения
Обновлено: 20.11.2024
Целью этого модуля является обсуждение необходимости иерархической системы памяти, а также обсуждение различных доступных типов памяти.
Предыдущие модули касались центрального процессора (ЦП), где мы обсуждали арифметико-логическое устройство (АЛУ) и реализацию пути управления. Мы также рассмотрели различные методы повышения производительности процессоров за счет использования ILP. В этом модуле обсуждается другой компонент цифрового компьютера, а именно память.
Каждый раз, когда мы смотрим на систему памяти, мы хотели бы иметь быструю, большую и в то же время дешевую память. А вот совместить все это невозможно. Более быстрая память дороже и может также занимать больше места. Поэтому объединение всех этих функций в системе памяти нецелесообразно, и единственным решением, позволяющим воспользоваться всеми преимуществами, является иерархическая система памяти.
В иерархической системе памяти все адресуемое пространство памяти доступно в самой большой и самой медленной памяти, а постепенно меньшие и более быстрые памяти, каждая из которых содержит подмножество памяти ниже нее, продвигаются по шагам вверх к процессору. Такая иерархическая организация памяти работает главным образом благодаря принципу локальности. То есть программа обращается к относительно небольшой части адресного пространства в любой момент времени. Нам известно утверждение, что процессор тратит 90% времени на 10% кода. Существует два основных типа локальности: временная и пространственная.
- Местность во времени (локальность во времени): если на элемент ссылаются, то вскоре на него будут ссылаться снова (например, циклы, повторное использование).
- Пространственная локальность (локальность в пространстве): если на элемент ссылаются, элементы, чьи адреса находятся рядом, как правило, становятся ссылками в ближайшее время (например, линейный код, доступ к массиву). по принципу локальности для обеспечения скорости.
Временная и пространственная локализация гарантирует, что почти все ссылки можно найти в памяти меньшего размера, и в то же время создает иллюзию того, что процессору предоставляется большая и быстрая память. На рис. 25.1 показана иерархическая система памяти. Чем быстрее, меньше и дороже память, тем ближе она к процессору. По мере удаления от процессора снижается скорость, уменьшается стоимость и увеличивается размер. Регистры и кэш-память расположены ближе к процессору, удовлетворяя требования процессора к скорости, затем идет основная память и в последнюю очередь — вторичное хранилище, удовлетворяющее требованиям емкости. На рисунке также указаны типичные размеры и время доступа каждого из этих типов памяти. Регистры, являющиеся частью самого ЦП, имеют очень малое время доступа, составляющее несколько сотен пикосекунд, а объем памяти составляет несколько тысяч байтов. Кэш первого уровня имеет несколько килобайт, а время доступа составляет всего несколько наносекунд. Кэш второго уровня имеет несколько сотен килобайт, а время доступа увеличивается примерно до 10 наносекунд. Хранилище увеличивается до нескольких мегабайт в случае третьего уровня кеша, а время доступа увеличивается до нескольких десятков наносекунд. Основная память имеет время доступа порядка нескольких сотен наносекунд, но также имеет больший объем памяти. Хранилище составляет порядка терабайт для вторичного хранилища, а время доступа составляет несколько миллисекунд. В том же духе на рисунке также показана иерархия памяти для персонального мобильного устройства.
На рис. 25.2 показан разрыв в производительности памяти. Хотя люди придумали различные технологические достижения для увеличения скорости процессоров, а также памяти, скорость памяти не поспевает за скоростью процессора, как показано на рис. 25.2. Иерархическая система памяти пытается скрыть разницу в скорости, размещая самые быстрые модули памяти рядом с процессором.
Различные типы памяти: Доступны разные типы памяти. Одна классификация основана на типах доступа. Оперативное запоминающее устройство (ОЗУ) имеет одинаковое время доступа для всех местоположений. Существует два типа оперативной памяти — динамическая и статическая. Динамическая оперативная память имеет высокую плотность, потребляет меньше энергии, дешева и медленна. Он называется динамическим, потому что его нужно регулярно «обновлять». SRAM — статическая оперативная память имеет низкую плотность, потребляет много энергии, дорога и быстра. Здесь контент будет длиться «вечно» (пока не пропадет питание).У нас также есть технология «неслучайного» доступа, при которой время доступа варьируется от места к месту и время от времени. Примеры памяти этого типа включают диски и компакт-диски. Существует также еще один тип памяти, а именно память с последовательным доступом, где время доступа линейно по местоположению (например, лента). Обычно динамическое ОЗУ (DRAM) используется для основной памяти, а статическое ОЗУ (SRAM) — для кэша.
Статическое ОЗУ. На рис. 25.3 показана конструкция типичной ячейки статического ОЗУ. Для его построения требуется шесть транзисторов — отсюда меньшая плотность и повышенная стоимость. Шесть транзисторов соединены перекрестным способом. Они обеспечивают обычный и инвертированный выходы. Поскольку он реализован с использованием процесса CMOS, для сохранения бита требуется малое энергопотребление.
Организация памяти SRAM. На рис. 25.4 показана одномерная организация памяти SRAM, состоящей из 16 слов по 4 бита каждое. Четыре бита адреса передаются декодеру адреса, который выбирает одно из 16 слов. Выбираются все биты этого слова. Сигнал разрешения записи используется для разрешения операции записи. Строки ввода данных используются для записи новых данных в выбранное слово, а строки вывода данных используются для чтения данных из выбранного слова.
Динамическое ОЗУ. Ячейка динамического ОЗУ состоит из одного транзистора и конденсатора, как показано на рис. 25.5, что позволяет снизить стоимость и объем памяти. Однако это деструктивное чтение. Его необходимо периодически обновлять, скажем, каждые 8 мс, но каждую строку можно обновлять одновременно. Для операции записи мы должны управлять битовой линией и выбирать строку. Для операции чтения мы должны предварительно зарядить битовую линию до Vdd и выбрать строку. Ячейка и битовая линия имеют общий заряд, и на битовой линии есть очень небольшое изменение напряжения. Усилитель чувств может обнаруживать изменения примерно в 1 миллион электронов. После выполнения чтения необходимо выполнить запись для восстановления значения. Refresh - это просто фиктивное чтение для каждой ячейки. Преимуществом DRAM является простота ее структуры: на бит требуется только один транзистор и конденсатор по сравнению с четырьмя или шестью транзисторами в SRAM. Это позволяет DRAM достигать очень высокой плотности. Используемые транзисторы и конденсаторы чрезвычайно малы; миллиарды могут поместиться на одном чипе памяти. Из-за динамического характера ячеек памяти DRAM потребляет относительно большое количество энергии, при этом существуют различные способы управления энергопотреблением.
Рисунок 25.5
Организация памяти DRAM. На рис. 25.6 показана двумерная организация памяти DRAM. Ячейки расположены в виде двумерного массива. Строки адреса разделены на две части: одна часть используется для декодера строк, а другая — для декодера столбцов. Только ячейка, выбранная декодером строк и столбцов, может быть прочитана или записана. Как всегда, хотя линии ввода данных и вывода данных не показаны, они используются для операций записи и чтения соответственно. Чтобы сохранить количество адресных строк, адресные строки могут быть мультиплексированы. Сначала может быть передана верхняя половина адреса, а затем нижняя половина адреса. Строб адреса строки (RAS) указывает, что передается адрес строки, а строб адреса столбца (CAS) указывает, что передается адрес столбца.
- Многократный доступ к одной и той же строке
- Синхронная динамическая память
- Добавлены часы в интерфейс DRAM.
- Пакетный режим с первым важным словом
- Более широкие интерфейсы
- Двойная скорость передачи данных (DDR)
- Несколько банков на каждом устройстве DRAM
Различные типы DRAM. В зависимости от проведенной оптимизации существуют разные типы DRAM.
Синхронная память DRAM, SDRAM, предназначена для синхронизации с синхронизацией процессора. Это позволяет контроллеру памяти знать точный тактовый цикл, когда запрошенные данные будут готовы. Следовательно, процессору больше не нужно ждать между обращениями к памяти. Микросхемы SDRAM также используют функции чередования и пакетного режима, которые еще больше ускоряют извлечение данных из памяти. Модули SDRAM поставляются с несколькими скоростями, чтобы синхронизироваться с шиной ЦП, в которой они будут использоваться. Максимальная скорость, с которой будет работать SDRAM, ограничена скоростью шины компьютера. SDRAM является наиболее распространенным типом DRAM, используемым в современных персональных компьютерах.Потребляемую мощность в SDRAM можно уменьшить, снизив напряжение и используя режим пониженного энергопотребления, который игнорирует часы и продолжает обновлять.
Direct Rambus DRAM (RDRAM) — это новая архитектура DRAM и стандарт интерфейса, который бросает вызов традиционным конструкциям основной памяти. Он передает данные со скоростью до 800 МГц по узкой 16-битной шине, называемой прямым каналом Rambus. Такая высокая тактовая частота возможна благодаря функции, называемой «двойной тактовой частотой», которая позволяет выполнять операции как на переднем, так и на заднем фронте тактового цикла. Rambus спроектирован так, чтобы соответствовать существующим стандартам материнских плат. Компоненты, которые вставляются в соединения материнской платы, называются встроенными модулями памяти Rambus (RIMM). Они заменяют обычные модули DIMM. DDR SDRAM и RDRAM конкурируют на рынке высокопроизводительных микрокомпьютеров. Из-за своей новой архитектуры система RDRAM несколько дороже, чем DDR SDRAM. Многие компьютерные компании производят высокопроизводительные микрокомпьютеры с обеими системами памяти и предоставляют потребителю право выбора.
Графическая память SDRAM с удвоенной скоростью передачи данных (GDDR SDRAM) — это тип специализированной памяти DDR SDRAM, предназначенной для использования в качестве основной памяти графических процессоров (GPU). GDDR SDRAM отличается от стандартных типов DDR SDRAM, таких как DDR3, хотя они используют некоторые основные технологии. Их основными характеристиками являются более высокие тактовые частоты как для ядра DRAM, так и для интерфейса ввода-вывода, что обеспечивает большую пропускную способность памяти для графических процессоров. По состоянию на 2015 год существует четыре последовательных поколения GDDR: GDDR2, GDDR3, GDDR4 и GDDR5.
Постоянное запоминающее устройство (ПЗУ) — это тип энергонезависимой памяти, используемой в компьютерах и других электронных устройствах. Данные, хранящиеся в ПЗУ, могут быть изменены только медленно, с трудом или вообще не могут быть изменены, поэтому он в основном используется для хранения прошивки, в качестве BIOS настольных компьютеров и во встроенных устройствах (также служит устройством защиты кода). У нас есть ПЗУ, которые при нормальной работе доступны только для чтения, но их все же можно перепрограммировать каким-либо образом. Стираемую программируемую постоянную память (СППЗУ) и электрически стираемую программируемую постоянную память (ЭСППЗУ) можно стирать и перепрограммировать, но обычно это можно делать только на относительно низких скоростях, для этого может потребоваться специальное оборудование, и обычно возможно только определенное количество раз.
Флэш-память — это электронный энергонезависимый компьютерный носитель данных, который можно электрически стирать и перепрограммировать. Это тип EEPROM. Он должен быть стерт (блоками) перед перезаписью. Имеет ограниченное количество циклов записи. Это дешевле, чем SDRAM, но дороже, чем диск. Он медленнее, чем SRAM, и быстрее, чем диск. Он широко используется в КПК, цифровых аудиоплеерах, цифровых камерах, мобильных телефонах и т. д. Его механическая ударопрочность является причиной его популярности по сравнению с жесткими дисками в портативных устройствах, а также его высокая прочность, способность выдерживать высокое давление, температуру , погружение в воду и т. д.
Терминология иерархии памяти. Давайте теперь рассмотрим терминологию, используемую в иерархической системе памяти. Говорят, что попадание происходит, если данные появляются в некотором блоке на верхнем уровне. Частота попаданий — это доля обращений к памяти, обнаруженная на верхнем уровне, а время попадания — это время доступа к верхнему уровню, которое состоит из времени доступа к ОЗУ + времени для определения попадания/промаха. Считается, что промах происходит, если данные необходимо извлечь из блока на нижнем уровне. Частота промахов = 1 – (Показатель попаданий). Miss Penalty — это время замены блока на верхнем уровне + время доставки блока процессору. Время попадания обычно равно промаху пенальти. Когда слово не найдено в кэше, происходит промах:
• Извлекать слово с более низкого уровня в иерархии, требуя ссылки с более высокой задержкой
• Нижний уровень может быть другим кешем или основной памятью
• Также извлекать другие слова, содержащиеся в блоке
.• Использует преимущества пространственного расположения
Показатели производительности. Задержка зависит от кэша, а пропускная способность зависит от многопроцессорности и операций ввода-вывода. Время доступа — это время между запросом на чтение и получением желаемого слова. Время цикла — это минимальное время между несвязанными запросами к памяти.
Пример, показывающий влияние на производительность. Предположим, что процессор работает с тактовой частотой = 200 МГц (5 нс за цикл) с CPI = 1,1 и с 50 % арифметических/логических операций, 30 % загрузкой/сохранением, 20 % управлением. инструкции. Предположим, что 10 % операций с памятью получают 50 промахов тактов.
Идеальный индекс потребительских цен | 1,1 |
1,5 | |
Отсутствие данных | 0,5 |