Обновление памяти - Memory refresh

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

В микросхеме DRAM каждый кусочек данных в памяти сохраняется как наличие или отсутствие электрический заряд на маленьком конденсатор на чипе.[2][3] Со временем заряды в ячейках памяти утекают, поэтому без обновления сохраненные данные в конечном итоге будут потеряны. Чтобы предотвратить это, внешняя схема периодически считывает каждую ячейку и перезаписывает ее, восстанавливая заряд конденсатора до исходного уровня. Каждый цикл обновления памяти обновляет последующую область ячеек памяти, таким образом многократно обновляя все ячейки в последовательном цикле. Этот процесс выполняется автоматически в фоновом режиме схемой памяти и прозрачен для пользователя.[2] Пока происходит цикл обновления, память недоступна для обычных операций чтения и записи, но в современной памяти этого «служебного» времени недостаточно, чтобы значительно замедлить работу памяти.

Доступна электронная память, не требующая обновления, называемая статическая оперативная память (SRAM).[2] Схемы SRAM требуют большей площади на кристалле, потому что ячейка памяти SRAM требует от четырех до шести транзисторы по сравнению с одним транзистором и конденсатором для DRAM. В результате плотность данных в микросхемах SRAM намного ниже, чем в DRAM, а SRAM имеет более высокую цену за бит. Поэтому DRAM используется для основной памяти компьютеров, игровых консолей, видеокарт и приложений, требующих большой емкости и низкой стоимости.[4] Необходимость обновления памяти делает синхронизацию DRAM и схемы значительно более сложными, чем схемы SRAM, но преимущества плотности и стоимости DRAM оправдывают эту сложность.

Как работает обновление DRAM

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

Ячейки памяти на микросхеме памяти расположены в виде прямоугольного массива строк и столбцов. Процесс чтения в DRAM разрушительный и снимает заряд с ячеек памяти во всем ряду, поэтому на чипе есть ряд специализированных защелок, называемых усилители чувств, по одному для каждого столбца ячеек памяти, чтобы временно хранить данные. Во время обычной операции чтения усилители чувств после чтения и фиксации данных перезапишите данные в доступной строке[2][7] перед отправкой бита из одного столбца на вывод. Это означает, что обычная электроника чтения на чипе может обновлять всю строку памяти параллельно, что значительно ускоряет процесс обновления. Обычный цикл чтения или записи обновляет строку памяти, но нельзя полагаться на обычный доступ к памяти, чтобы поразить все строки в течение необходимого времени, что требует отдельного процесса обновления. Вместо использования обычного цикла чтения в процессе обновления для экономии времени используется сокращенный цикл, называемый циклом обновления. Цикл обновления аналогичен циклу чтения, но выполняется быстрее по двум причинам:

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

Схема обновления должна выполнять цикл обновления для каждой строки микросхемы в течение интервала времени обновления, чтобы убедиться, что каждая ячейка обновляется.

Типы схем обновления

Хотя в некоторых ранних системах микропроцессор контролируемое обновление, с таймером, запускающим периодический прерывать это запустило подпрограмма который выполнил обновление, это означало, что микропроцессор нельзя было приостановить, пошагово или перевести в режим энергосбережения. спячка без остановки процесса обновления и потери данных в памяти.[6] Таким образом, в современных системах обновление выполняется схемами в контроллер памяти,[2] или всё чаще на самом чипе. Некоторые микросхемы DRAM, такие как псевдостатическая RAM (PSRAM), имеют все схемы обновления на микросхеме и функционируют как статическая RAM что касается остальной части компьютера.[8]

Обычно схема обновления состоит из счетчик обновления который содержит адрес строки, которая должна быть обновлена, которая применяется к адресным строкам строки чипа, и таймер, который увеличивает счетчик для перехода по строкам.[5] Этот счетчик может быть частью схемы контроллера памяти или самой микросхемы памяти. Были использованы две стратегии планирования:[6]

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

Пакетное обновление приводит к длительным периодам, когда память недоступна, поэтому в большинстве современных систем используется распределенное обновление.[5] особенно в реальное время системы. При распределенном обновлении интервал между циклами обновления равен

Например, текущее поколение микросхем (DDR SDRAM ) имеет время обновления 64 мс и 8192 строки, поэтому интервал цикла обновления составляет 7,8 мкс.[5][9]

Последние поколения микросхем DRAM содержат встроенный счетчик обновления, и схема управления памятью может либо использовать этот счетчик, либо предоставлять адрес строки от внешнего счетчика. У этих микросхем есть три стандартных способа обновления, которые выбираются разными шаблонами сигналов в строках «выбор столбца» (CAS) и «выбор строки» (RAS):[6]

  • "Только обновление RAS"- В этом режиме адрес строки для обновления предоставляется линиями адресной шины, поэтому он используется с внешними счетчиками в контроллере памяти.
  • "CAS перед обновлением RAS"(CBR) - в этом режиме встроенный счетчик отслеживает строку, подлежащую обновлению, а внешняя схема просто инициирует циклы обновления.[5] Этот режим потребляет меньше энергии, потому что буферы шины адреса памяти не требуют включения. Он используется в большинстве современных компьютеров.
  • "Скрытое обновление"- это альтернативная версия цикла обновления CBR, которая может быть объединена с предыдущим циклом чтения или записи.[5] Обновление выполняется параллельно во время передачи данных, что экономит время.

В последнем (2012 г.) поколении микросхем исключен режим «Только RAS», и для генерации обновления используется внутренний счетчик. У чипа есть дополнительный «спящий режим» для использования, когда компьютер находится в спячка, в котором встроенная осциллятор генерирует внутренние циклы обновления, чтобы можно было отключить внешние часы.

Обновить накладные расходы

Доля времени, затрачиваемого памятью на обновление, или накладные расходы на обновление, может быть вычислена из системного времени:[10]

Например, последний чип SDRAM имеет 213 = 8192 строки, интервал обновления 64 мс, шина памяти работает на частоте 133 МГц, а цикл обновления занимает 4 тактовых цикла.[10] Время цикла обновления составляет[10]

Таким образом, на циклы обновления уходит менее 0,4% времени микросхемы памяти. В микросхемах SDRAM память в каждой микросхеме разделена на банки, которые обновляются параллельно, что позволяет сэкономить время. Таким образом, количество необходимых циклов обновления - это количество строк в одном банке, указанное в спецификациях, которые в последних (2012 г.) поколениях микросхем были зафиксированы на уровне 8192.

Интервал обновления

Максимальный интервал времени между операциями обновления стандартизирован JEDEC для каждой технологии DRAM и указывается в спецификациях чипа производителя. Обычно он находится в диапазоне миллисекунд для DRAM и микросекунд для eDRAM. Для микросхем DDR2 SDRAM это 64 мс.[11]:20 Это зависит от отношения заряда, хранящегося в конденсаторах ячейки памяти, к токам утечки. Несмотря на то, что геометрия конденсаторов сужается с каждым новым поколением микросхем памяти, поэтому конденсаторы более поздних поколений хранят меньше заряда, время обновления для DRAM улучшается; от 8 мс для 1M чипов, 32 мс для 16M чипов, до 64 мс для 256M чипов. Это улучшение достигается в основном за счет разработки транзисторов, которые вызывают значительно меньшую утечку. Более длительное время обновления означает, что меньшая часть времени устройства занята обновлением, оставляя больше времени для доступа к памяти. Хотя в более ранних DRAM накладные расходы на обновление занимали до 10% времени чипа, в современных чипах эта доля составляет менее 1%.[нужна цитата ]

Поскольку токи утечки в полупроводниках увеличиваются с увеличением температуры, время восстановления должно быть уменьшено при высокой температуре. Текущее поколение микросхем DDR2 SDRAM имеет структуру обновления с температурной компенсацией; время цикла обновления должно быть сокращено вдвое, если температура корпуса микросхемы превышает 85 ° C (185 ° F).[11]:49

Фактическое сохранение считываемых значений заряда и, следовательно, данных в большинстве ячеек памяти DRAM намного больше, чем время обновления, до 1–10 секунд.[12] Однако токи утечки транзисторов сильно различаются между разными ячейками памяти на одном и том же кристалле из-за различий в процессе. Чтобы обеспечить обновление всех ячеек памяти до потери одного бита, производители должны установить консервативно короткие времена обновления.[нужна цитата ]

Это частое обновление DRAM потребляет треть всей энергии, потребляемой маломощная электроника Исследователи предложили несколько подходов к увеличению времени работы батареи между зарядками за счет уменьшения частоты обновления, включая обновление с температурной компенсацией (TCR) и размещение с учетом удержания в DRAM (RAPID). Эксперименты показывают, что при обычном выключении - готовая микросхема DRAM, только несколько слабых ячеек действительно требуют наихудшего интервала обновления 64 мс,[13] И даже в этом случае только на верхнем пределе указанного диапазона температур. При комнатной температуре (например, 24 ° C (75 ° F)) те же самые слабые элементы необходимо обновлять каждые 500 мс для правильной работы. Если система может избежать использования самого слабого 1% страниц, типичную DRAM необходимо обновлять только раз в секунду, даже при 70 ° C (158 ° F), для правильной работы оставшихся 99% страниц. объедините эти два взаимодополняющих метода, чтобы обеспечить правильную работу при комнатной температуре с интервалом обновления 10 секунд.[13]

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

Технологии памяти SRAM и DRAM

SRAM

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

Обновление на базе ЦП

Некоторые ранние микропроцессоры (например, Зилог Z80 ) предоставляет специальные внутренние регистры, которые могут обеспечивать строб адреса строки (RAS) для обновления ячеек динамической памяти, причем регистр увеличивается на каждый цикл обновления. Это также может быть выполнено другими интегральные схемы уже используются в системе, если они уже сгенерировали циклические обращения к ОЗУ (например то Motorola 6845 ). В таких процессорах, как Z80, наличие обновления RAS было большим преимуществом из-за упрощения конструкции оборудования. Здесь обновление RAS сигнализируется уникальной комбинацией проводов адреса и управления во время оперативно избыточных тактовых циклов (T-состояний), то есть во время декодирования / выполнения инструкций, когда шины могут не потребоваться. Вместо того, чтобы шина была неактивной во время таких T-состояний, регистр обновления будет представлен на адресной шине вместе с комбинацией проводов управления для указания схемы обновления.

В ранних версиях Z80 повсеместно использовались чипы RAM объемом 16 КБ (т.е. имеющий 128 строк) и некоторая нехватка предвидения привела к тому, что регистр R увеличивался только в 7-битном диапазоне (0–127, т.е. 128 рядов); 8-й бит может быть установлен пользователем, но не будет изменен внутренним циклом. С быстрым появлением микросхем DRAM 64 кбит + (с 8-битным RAS), дополнительные схемы или логика должны были быть построены вокруг сигнала обновления, чтобы синтезировать отсутствующий 8-й бит и предотвратить потерю блоков памяти через несколько миллисекунд. В некоторых случаях можно было использовать прерывает чтобы перевернуть 8-й бит в подходящий момент и таким образом охватить весь диапазон регистра R (256 строк). Другой метод, возможно, более универсальный, но также более сложный с точки зрения аппаратного обеспечения, заключался в использовании 8-битной микросхемы счетчика, выход которой будет предоставлять адрес обновления RAS вместо регистра R: сигнал обновления от ЦП использовался как часы. для этого счетчика, в результате чего строка памяти, которая должна обновляться, увеличивается с каждым циклом обновления. В более поздних версиях и лицензионных «аналогах» ядра Z80 было исправлено невключение 8-го бита в автоматическое циклическое переключение, а современные процессоры значительно расширили такую ​​базовую подготовку, чтобы предоставить богатые универсальные решения для обновления DRAM.

Псевдостатическая DRAM

Псевдостатическая RAM (PSRAM или PSDRAM) - это динамическое ОЗУ со встроенной схемой обновления и управления адресом, чтобы оно работало аналогично статическому ОЗУ (SRAM). Он сочетает в себе высокую плотность DRAM с простотой использования настоящего SRAM. PSRAM (от Numonyx) используется в Apple iPhone и других встроенных системах.[14]

Некоторые компоненты DRAM имеют «режим самообновления», который включает в себя большую часть той же логики, которая необходима для псевдостатической работы, но этот режим часто эквивалентен режиму ожидания. Он предоставляется в первую очередь для того, чтобы позволить системе приостанавливать работу своего контроллера DRAM для экономии энергии без потери данных, хранящихся в DRAM, а не для того, чтобы не допускать работу без отдельного контроллера DRAM, как в случае с PSRAM. An встроенный вариант PSRAM продается компанией MoSys под названием 1T-SRAM. Технически это DRAM, но ведет себя так же, как SRAM, и используется в Nintendo Gamecube и Wii консоли.

Другие технологии памяти с использованием обновления

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

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

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

Смотрите также

Рекомендации

  1. ^ "цикл обновления" в Лапланте, Филипп А. (1999). Большой словарь по электротехнике. Springer. п. 540. ISBN  3540648356.
  2. ^ а б c d е ж Ganssle, Джек Ganssle; Тэмми Ноергард; Фред Иди; Левин Эдвардс; Дэвид Дж. Кац (2007). Встроенное оборудование. Newnes. п. 106. ISBN  978-0750685849.
  3. ^ Джейкоб, Брюс; Спенсер Нг; Дэвид Ван (2007). Системы памяти: кэш, DRAM, диск. Морган Кауфманн. С. 431–432. ISBN  978-0123797513.
  4. ^ Лаасби, Гитте (10 марта 2014 г.). «Потребители, имеющие право на получение денег в рамках урегулирования фиксированных цен на компьютерные чипы». Milwaukee Journal-Sentinel. Милуоки, Висконсин. Получено 20 августа, 2014.
  5. ^ а б c d е ж Рейнхардт, Стивен К. (1999). «Память, стр.9-3» (PDF). EECS 373 Design of Microprocessor-based Systems, Lecture Notes, Fall 1999. Электротехника, Univ. Мичигана. Архивировано из оригинал (PDF) 2 января 2014 г.. Получено 26 августа, 2012.
  6. ^ а б c d Хит, Стив (2003). Проектирование встроенных систем, 2-е изд.. Newnes. С. 88–89. ISBN  0750655461.
  7. ^ «Память 1997» (PDF). Интегральная схемотехника. 1997: 7.4. Цитировать журнал требует | журнал = (помощь) на Коллекция чипов, сайт Смитсоновского института
  8. ^ Кумар (2009). Основы цифровых схем, 2-е изд.. Индия: PHI Learning Pvt. ООО п. 819. ISBN  978-8120336797.
  9. ^ «Спецификация SDRAM JEDEC с двойной скоростью передачи данных (DDR)» (PDF). JESD79C. JEDEC Solid State Technology Assoc. Март 2003 г.. Получено 27 августа, 2012. Цитировать журнал требует | журнал = (помощь), стр.20, о Школа инженерии и информатики, Baylor Univ. интернет сайт
  10. ^ а б c Godse, D.A .; А.П. Годсе (2008). Компьютерная организация. Индия: Технические публикации. п. 4.23. ISBN  978-8184313567.
  11. ^ а б «Спецификация JEDEC DDR2 SDRAM» (PDF). ECS.Baylor.edu. JESD79-2b. JEDEC Solid State Technology Assoc. Январь 2005 г.. Получено 27 августа, 2012.
  12. ^ Джейкоб, 2007, стр.356
  13. ^ а б Рави К. Венкатесан, Стивен Херр, Эрик Ротенберг.«Размещение в DRAM с учетом удержания (RAPID): программные методы для квазинегонезависимой памяти DRAM».2006.
  14. ^ EE Times разобрали iPhone 3G