RU2435237C1 - Система и способ снижения энергопотребления динамического озу посредством использования указателей действительных данных - Google Patents
Система и способ снижения энергопотребления динамического озу посредством использования указателей действительных данных Download PDFInfo
- Publication number
- RU2435237C1 RU2435237C1 RU2010107059/08A RU2010107059A RU2435237C1 RU 2435237 C1 RU2435237 C1 RU 2435237C1 RU 2010107059/08 A RU2010107059/08 A RU 2010107059/08A RU 2010107059 A RU2010107059 A RU 2010107059A RU 2435237 C1 RU2435237 C1 RU 2435237C1
- Authority
- RU
- Russia
- Prior art keywords
- memory
- independently updated
- update
- pointer
- dram
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40622—Partial refresh of memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4072—Circuits for initialization, powering up or down, clearing memory or presetting
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4093—Input/output [I/O] data interface arrangements, e.g. data buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/401—Indexing scheme relating to cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C2211/406—Refreshing of dynamic cells
- G11C2211/4065—Low level details of refresh operations
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Dram (AREA)
- Power Sources (AREA)
- Memory System (AREA)
Abstract
Изобретение относится к вычислительной технике. Технический результат заключается в снижении энергопотребления динамической оперативной памяти. Способ обновления матрицы динамической оперативной памяти (DRAM), организованной в виде множества независимо обновляемых блоков памяти, содержащий: ассоциирование указателя с каждым независимо обновляемым блоком памяти; при записи данных в независимо обновляемый блок памяти, установку ассоциированного указателя для отражения действительных данных; увеличение задержки между операциями обновления, пропорционально ненулевому числу подавленных циклов обновления, причем цикл обновления подавляется, если ассоциированный указатель отражает недействительные данные, таким образом, чтобы только все независимо обновляемые блоки памяти, которые содержат действительные данные, могли обновляться с максимальным периодом обновления; и обновление с упомянутым максимальным периодом обновления только независимо обновляемых блоков памяти, у которых ассоциированный указатель отражает действительные данные, сохраненные в них. 3 н. и 23 з.п. ф-лы, 6 ил.
Description
Область техники
Настоящее изобретение относится к области запоминающих устройств, в частности к системе и способу для снижения энергопотребления динамического ОЗУ.
Предшествующий уровень техники
Твердотельные динамические ОЗУ (DRAM) представляют собой рентабельное решение памяти большого объема для многих современных вычислительных систем, включая портативные электронные устройства. DRAM, в том числе синхронное динамическое ОЗУ (SDRAM), обеспечивает высокую плотность битов и сравнительно низкую стоимость в расчете на бит по сравнению со структурами быстродействующей внутрикристальной памяти, такими как регистры, статические ОЗУ (SRAM) и тому подобное, а также значительно более высокие скорости доступа, чем электро-, магнито- или оптико-механические блоки памяти большого объема, такие как жесткие диски, ПЗУ на компакт-диске (CD-ROM) и тому подобное.
Фиг.1 изображает логическое представление характерной 512- Мбитовой матрицы 100 DRAM. Матрица 100 организована в виде множества отдельно адресуемых банков 102, 104, 106, 108. Каждый банк разделен на большое число, например, 4096, строк 110. Каждая строка 110 раздела на множество столбцов (например, 512 столбцов), а каждый столбец содержит некоторое количество битов данных, как правило, организованных как байты (например, 8 байтов). Различные схемы адресации данных известны в технике. Например, при адресации по банку, строке, столбцу (BRC), адрес памяти может быть интерпретирован как
31-26 | 25-24 | 23-12 | 11-3 | 2-0 |
Выбор кристалла |
Выбор банка |
Выбор строки | Выбор столбца | Выбор байта |
При альтернативной схеме адресации, такой как адресация по строке, банку, столбцу (RBC), адреса памяти могут быть интерпретированы как
31-26 | 25-14 | 13-12 | 11-3 | 2-0 |
Выбор кристалла |
Выбор строки |
Выбор банка | Выбор столбца | Выбор байта |
Матрицы памяти DRAM являются энергозависимыми; данные, сохраненные в матрице DRAM, должны периодически обновляется, чтобы сохранить свою целостность. Во время операции обновления DRAM, большое количество ячеек хранения данных одновременно считываются из матрицы 100 и повторно загружаются. Традиционно, матрицы DRAM обновляются строка за строкой. То есть строка - или, в некоторых реализациях, та же самая строка одновременно в каждом банке - выбирается, и все данные в строке обновляются в одной операции. Используемый здесь термин "независимо обновляемый блок памяти" или IRMU, относится к кванту данных, которые обновляются в рамках одной операции обновления. IRMU для матрицы DRAM, как правило, является строкой, хотя настоящее изобретение не ограничивается операцией обновления строка за строкой.
Операции обновления, направленные на IRMU, обычно перемежаются с доступами к памяти, и спланированы по времени так, что вся матрица DRAM обновляется, прежде чем какие-либо данные будут потеряны вследствие снижения заряда. Традиционно, адреса обновления - то есть адрес каждого независимо обновляемого блока памяти - поставляются контроллером памяти, таким как процессор, который определяет операцию обновления с помощью уникальной комбинации сигналов управления. Современные компоненты SDRAM могут включать в себя два дополнительных режима обновления: самообновление и автоматическое обновление. В обоих режимах компонент SDRAM включает в себя внутренний счетчик адреса обновления. Самообновление используется во многих системах, таких как электронные устройства с батареями питания, которые используют "неактивный" режим для энергосбережения. В режиме самообновления компонент SDRAM не является доступным для хранения и извлечения данных, однако SDRAM выполняет операции обновления внутренним образом для обеспечения целостности хранимых данных. В режиме автоматического обновления контроллер памяти определяет операцию обновления, но не обеспечивает адрес обновления. Вместо этого компонент SDRAM обеспечивает приращение внутреннему счетчику адресов обновления, который обеспечивает последовательные независимо обновляемые адреса блоков памяти (например, строки).
Каждая операция обновления потребляет энергию, когда данные считываются из матрицы DRAM и перезаряжаются. Однако особенно после включения питания или системного сброса, большинство ячеек хранения памяти в матрице DRAM не содержат действительных данных.
Сущность изобретения
В соответствии с одним или несколькими вариантами осуществления раскрытыми и заявленными здесь, поддерживается указатель, который указывает, содержит или нет обновляемый сегмент памяти действительные данные. Когда операция обновления направлена на ассоциированную память, операция обновления подавляется, если память не содержит действительных данных. Значительная экономия питающей мощности может быть реализована путем подавления операций обновления, направленных на недействительные данные.
Один вариант осуществления относится к способу обновления динамической памяти. Указатель ассоциирован с каждым независимо обновляемым блоком памяти. После записи данных в независимо обновляемый блок памяти ассоциированный указатель устанавливается, чтобы отражать действительные данные. Только независимо обновляемые блоки памяти, у которых ассоциированный указатель отражает действительные данные, сохраненные в нем, обновляются.
Один вариант осуществления относится к компоненту DRAM. Компонент DRAM включает в себя матрицу DRAM, действующую для хранения данных и организованную как множество независимо обновляемых блоков памяти. Компонент DRAM также включает в себя множество указателей, каждый из которых ассоциирован с независимо обновляемым блоком памяти и указывает, являются ли действительными данные, хранящиеся в независимо обновляемом блоке памяти. Компонент DRAM также включает в себя контроллер, принимающий сигналы управления и действующий для проверки указателей и обновления только независимо обновляемых блоков памяти, хранящих действительные данные.
Краткое описание чертежей
На фиг.1 представлена функциональная блок-схема организации данных в матрице DRAM.
Фиг.2 представляет функциональную блок-схему организации данных в матрице DRAM с указателем или битом действительности, ассоциированным с каждым независимо обновляемым блоком памяти.
Фиг.3 представляет функциональную блок-схему компонента SDRAM.
Фиг.4 представляет функциональную блок-схему однопроцессорной вычислительной системы.
Фиг.5 представляет функциональную блок-схему многопроцессорной вычислительной системы.
Фиг.6 - блок-схема способа обновления матрицы DRAM.
Детальное описание
Фиг.2 изображает логическое представление организации матрицы DRAM 200 в соответствии с одним вариантом осуществления. Матрица 200 логически организована как четыре банка 202, 204, 206, 208, причем каждый банк содержит 4096 строк. Характерная строка изображается как 210. В этом варианте осуществления строка 210 является наименьшим независимо обновляемым блоком памяти. Со строкой 210 в матрице 200 ассоциирован указатель 211, отражающий то, содержит ли строка 210 действительные данные. В показанном варианте осуществления каждый указатель 211 содержит один бит, а также упоминаемый в настоящем документе как бит действительности, ассоциированный с каждой строкой. Фиг.2 изображает наборов битов 212, 214, 216, 218 указателей, причем каждый бит-указатель ассоциирован с банками 202, 204, 206, 208 соответственно. В одном варианте осуществления, где наименьший независимо обновляемый блок памяти содержит строку, охватывающую все четыре банка 202, 204, 206, 208, потребуется только один набор битов-указателей 212.
Во время операции обновления проверяется индикатор или бит действительности, например, указатель 211, ассоциированный с текущим адресуемым независимо обновляемым блоком памяти, например, IRMU 210. Если установлен бит-индикатор, указывающий, что ассоциированный IRMU содержит действительные данные, то операция обновления выполняется над IRMU, чтобы сохранить данные. Если бит-индикатор не установлен, указывая, что ассоциированный IRMU не содержит действительных данных, в одном варианте осуществления операция обновления подавляется, что позволяет экономить мощность питания, которая в противном случае потреблялась бы при обновлении IRMU. Таким образом, только IRMU, которые содержат действительные данные, будут обновляться, а IRMU в матрице, которые находятся в неинициализированном или в безразличном состоянии, не обновляются. Адрес обновления может быть предоставлен контроллером памяти, или может генерироваться внутренним адресным счетчиком, например, при автоматическом обновлении или самообновлении.
Биты-индикаторы могут поддерживаться различными путями. В одном варианте осуществления биты-индикаторы хранятся в фиксированной или программируемой части матрицы 200 памяти. В этом случае полезный размер матрицы 200 снижается на 0,003%. В другом варианте осуществления биты-индикаторы хранятся в компоненте DRAM/SDRAM в памяти иной, чем матрица DRAM 200, например, в структуре статической оперативной памяти, в регистрах и т.п. В одном варианте осуществления память индикатора действительности IRMU доступна через 2-цикловую последовательность, подобную последовательностям доступа регистра режима и регистра расширенного режима компонентов SDRAM.
Фиг.3 представляет собой функциональную блок-схему компонента SDRAM 300 в соответствии с одним вариантом осуществления. SDRAM 300 включает в себя матрицу DRAM 301, организованную в виде четырех банков 302, 304, 306, 308. Каждый банк содержит декодеры 312, 310 строк и столбцов. Усилитель 314 считывания выводит считанные данные из матрицы DRAM 301 на буферы 316 ввода-вывода. Записанные данные из буферов 316 ввода-вывода проходят через входной буфер 318 и сохраняются в регистре 320 данных записи перед записью в матрицу DRAM 301.
Работа компонента SDRAM 300 управляется конечным автоматом 322. Адреса банков и памяти вводятся в адресный буфер 324 и сохраняются в адресном регистре 326, где они управляют схемой 328 предварительного декодера столбцов и счетчика. Регистр 330 режима и регистр 332 расширенного режима сохраняют биты выбора режима, такие как задержка строба адреса столбца (CAS), длина пакета и т.п., которые управляют работой счетчика 334 пакетов и схемой 336 управления выводом данных.
Схема 338 логики обновления и таймера принимает адреса IRMU от внутреннего счетчика 340 и биты действительности IRMU из памяти 342 действительности IRMU. Логика обновления выводит адреса IRMU на предварительный декодер 344 строк. Заметим, что хотя память 342 действительности IRMU изображена на фиг.3 как функциональный блок, отдельный от матрицы DRAM 301, память, физически выделенная для хранения указателей действительности IRMU, может быть частью матрицы DRAM 301, или могут иметься отдельные DRAM, SRAM, регистры или другая память.
В одном варианте компонент SDRAM 300 автоматически контролирует адреса записи и устанавливает указатель действительности IRMU соответственно IRMU, на который направлена каждая операция записи. Логика 338 обновления затем проверяет память 342 действительности IRMU после каждой операции обновления, и подавляет циклы обновления, направленные на любой IRMU, который не содержит действительных данных. Это минимизирует энергопотребление компонента SDRAM 300, но не требует никакого знания об обновлении-подавлении или участия контроллера памяти или процессора. Основная экономия электроэнергии может иметь место после включения питания или сброса, когда матрица DRAM 301 большей частью не заполнена действительными данными. По мере того как контроллер памяти записывает данные в большее количество IRMU в матрице DRAM 301, устанавливается больше битов действительности IRMU, и подавляется меньше циклов обновления. В этом варианте осуществления память 342 IRMU автоматически очищается как часть инициализации компонента SDRAM 300 после включения питания или сброса. Этот вариант осуществления позволяет разработчикам систем получать выгоду от низкого энергопотребления компонента SDRAM 300 при использовании существующих контроллеров памяти и программного обеспечения, которые не включают сложные функции управления памятью.
В одном варианте осуществления память 342 IRMU может быть очищена по команде с контроллера памяти, такой как предварительно определенная операция записи регистра 330 режима или регистра 332 расширенного режима или комбинация битов. Этот вариант осуществления позволяет сократить потребляемую мощность компонента SDRAM 300 после программно-инициированного сброса, но требует, чтобы контроллер памяти выдавал команду очистки памяти 342 IRMU.
Фиг.4 изображает вычислительную систему 400, которая управляет и снижает энергопотребление DRAM. Система 400 включает в себя контроллер памяти, такой как процессор 402, аппаратные средства 404 контроллера памяти (которые могут быть интегрированы с процессором 402) и устройство памяти, такое как компонент SDRAM 406. Матрица DRAM в компоненте SDRAM 406 логически делится на независимо обновляемые блоки памяти 408а, 408b, 408c, … 408j. С каждым IRMU ассоциирован указатель действительности IRMU, такой как бит 410а, 410b, 410c, … 410j, который указывает, содержит ли ассоциированный IRMU действительные данные.
Множество задач 412, 414 программного обеспечения выполняются на процессоре 402. Каждая задача программного обеспечения может распределить память для хранения данных и может освободить память, которая больше не требуется. Администратор 416 памяти программного обеспечения представляет собой программный модуль, который управляет памятью для процессора 402. Администратор 416 памяти программного обеспечения принимает запросы "распределить" и/или "освободить" память от задач 412, 414 программного обеспечения. В ответ администратор 416 памяти программного обеспечения распределяет память для и от задач 412, 414, отображает распределенную память одному или более независимо обновляемым блокам 408а, 408b, 408c, … 408j памяти (например, строкам) и устанавливает и сбрасывает соответствующие указатели 410а, 410b, 410c, … 410j действительности IRMU, чтобы отразить статус данных в текущее время в IRMU 408f, 408b, 408c, … 408j. В одном варианте осуществления контроллер текущей памяти является независимым элементом 404 аппаратных средств, в другом варианте осуществления функциональность контроллера памяти интегрирована в процессор 402. Компонент SDRAM 406 подавляет все операции обновления, направленные на IRMU 408а, 408b, 408c, … 408j, которые содержат недействительные данные.
На фиг.5 показана многопроцессорная система, которая управляет распределением памяти и минимизирует потребление мощности SDRAM. Процессоры 502, 504 осуществляют связь друг с другом и с аппаратными средствами 508 контроллера памяти через системную шину 506. Шина 506 также может быть реализована в виде системы коммутации, координатного коммутатора и т.п., как известно в технике. Одна или более задач 503, 516, 518 программного обеспечения выполняются на процессорах 502, 504. Системный администратор 520 памяти программного обеспечения выполняется на одном процессоре 504, распределяя память к и от всех программных задач 503, 516, 518, исполняющихся в системе. Любая программная задача 503, исполняющаяся на процессоре 502, может посылать запросы распределения и освобождения памяти к администратору 520 памяти программного обеспечения по шине 506. Как описано выше, администратор 520 памяти программного обеспечения распределяет память к и от задач 503, 516, 518, отображает распределенную память на один или более независимо обновляемых блоков 512a, 512b, 512с, … 512j памяти и устанавливает и сбрасывает соответствующие указатели 514a, 514b, 514c, … 514j действительности IRMU через аппаратное средство 508 контроллера памяти для отражения состояния данных, сохраненных в текущее время в IRMU 512a, 512b, 512с, … 512j. Компонент SDRAM 510 подавляет операции обновления, направленные на IRMU 512a, 512b, 512с, … 512j, которые содержат недействительные данные.
В обычном режиме обновления, режиме автоматического обновления или режиме самообновления, компонент SDRAM 300, 406, 510 сравнивает адреса обновления (предоставляемые контроллером памяти или внутренним счетчиком) с памятью 342, 410, 514 действительности IRMU и подавляет операции обновления, направленные на IRMU 408, 512, которые не содержат действительных данных. В одном варианте осуществления, в котором администратор 416, 520 памяти программного обеспечения активно управляет памятью и устанавливает/очищает биты 410, 514 действительности IRMU, система может дополнительно оптимизировать обновление памяти и минимизировать энергопотребление путем динамического подавления команд обновления IRMU, когда физическая память освобождается из распределения для программных задач и возвращается в "пул", в этом случае ее содержимое данных не является релевантным.
В обычном режиме обновления администратор 416, 520 памяти программного обеспечения может обеспечивать обновление адресов только IRMU 408, 512, содержащих действительные данные. В режиме автоматического обновления или режиме самообновления компонент SDRAM 300, 406, 510 может "пропустить" недействительную память, путем приращения своего адресного счетчика обновления до следующего IRMU 408, 512 содержащего действительные данные, вслед за каждой операцией обновления. В любом случае контроллер 404, 508 памяти может увеличить задержку между операциями обновления, так что только IRMU 408, 512, которые содержат действительные данные, все обновляются с максимальным периодом обновления. В этом варианте осуществления никакие команды обновления не подавляются компонентом SDRAM 300, 406, 510. Это дополнительно оптимизирует потребление энергии (и уменьшает перегрузку шины), избегая ненужных циклов команд памяти, и сокращает задержки, которые команды обновления накладывают на текущие обращения к памяти.
Фиг.6 изображает способ 600 обновления DRAM в соответствии с одним или несколькими вариантами осуществления. При инициализации все указатели IRMU очищаются (блок 602). Способ затем проверяет, должна ли выполняться операция обновления (блок 604). В традиционном режиме обновления операция обновления указывается сигналами управления, направляемыми на компонент DRAM из контроллера памяти, и IRMU, подлежащий обновлению, указывается на адресной шине. В режиме автоматического обновления операция обновления предписывается командами контроллера памяти, и внутренний счетчик обеспечивает адреса обновления IRMU. В режиме самообновления истечение таймера обновления указывает, что требуется операция обновления, и внутренний счетчик предоставляет адрес IRMU.
Если указывается операция обновления (блок 604), указатель IRMU, ассоциированный с текущим адресом IRMU (таким как, например, адрес строки), проверяется (блок 606). Если указатель IRMU указывает, что IRMU содержит действительные данные (блок 608), то операция обновления выполняется над адресованным IRMU (блок 610). Если указатель IRMU указывает, что IRMU не содержит действительных данных (блок 608), то операция обновления подавляется, экономя энергию, которая иначе была бы израсходована на обновление недействительных (или "безразличных") данных.
В режиме самообновления SDRAM компонент ожидает в блоке 604 следующего истечения счетчика адреса обновления. В других режимах обновления, если операция обновления не предписывается командами (блок 604), DRAM (или SDRAM) компонент выполняет операции считывания, записи и/или доступа к регистру, как предписывается командами контроллера памяти (блок 612). В одном варианте осуществления, в котором программный модуль управления памятью распределяет и освобождает блоки памяти, операции доступа к памяти или регистру могут включать в себя операции, направленные на память IRMU - считывание, настройку и очистку указателей IRMU. В одном варианте осуществления указатель IRMU автоматически устанавливается после операции записи, направленной на ассоциированный IRMU (блок 614). В этом варианте осуществления указатели IRMU лишь сбрасываются при инициализации (блок 602), но могут обеспечивать значительную экономию энергопитания до тех пор, пока действительные данные не будут записаны, по меньшей мере, однократно во многие IRMU.
Путем применения программной парадигмы управления памятью - где память релевантна, только когда она распределяется задаче, и предполагает «безразличное» состояние до распределения или после освобождения - к физическим операциям обновления матрицы DRAM, значительная экономия мощности питания может быть реализована за счет устранения ненужных операций обновления, направленных на сегменты памяти, которые не имеют действительных данных. В одном из вариантов осуществления отслеживание действительных данных путем установки ассоциированных IRMU битов происходит автоматически. В этом варианте энергосберегающие преимущества настоящего изобретения доступны в системах без программного управления памятью или знания о возможности выборочного подавления операций обновления. В других вариантах прямое управление памятью IRMU обеспечивает возможность применения сложного управления памятью и получения максимальной экономии энергопитания.
Используемый здесь термин "независимо обновляемый блок памяти" или IRMU относится к сегменту (кванту) данных, которые обновляются в рамках одной операции обновления. IRMU для матрицы DRAM, как правило, представляет собой строку, хотя настоящее изобретение не ограничено этим. Используемый здесь термин "установить" относится к записи данных в указатель IRMU, чтобы указать, что действительные данные хранятся в ассоциированном IRMU, независимо от значения данных (например, 0 или 1, или многобитовая комбинация). "Очистить" относится к записи данных в указатель IRMU, чтобы указать, что действительные данные не хранятся в ассоциированном IRMU, независимо от значения данных (например, 0 или 1, или многобитовая комбинация). Используемый в настоящем документе термин "матрица DRAM" относится к матрице памяти с динамическим случайным доступом, которая хранит данные в интегрированных компонентах схем как DRAM, так и SDRAM. Как используется в настоящем документе, в объем терминов "DRAM" или "компонент DRAM" включаются как компоненты асинхронной памяти DRAM, так и компоненты SDRAM. Используемый здесь термин "распределять" относится к назначению диапазона адресов памяти для программных задач, а термин "освобождать" означает возвращение ранее распределенных адресов памяти в пул нераспределенной памяти.
Хотя в настоящем изобретении было описано здесь в связи с конкретными признаками, аспектами и вариантами осуществления, должно быть очевидно, что многочисленные вариации, модификации и другие варианты осуществления возможны в широком объеме настоящего изобретения и, соответственно, все вариации, модификации и варианты осуществления должны рассматриваться как входящие в объем изобретения. Поэтому представленные варианты осуществления следует рассматривать во всех аспектах как иллюстративные, а не ограничительные, и все изменения, находящиеся в диапазоне значения и эквивалентности приложенных пунктов формулы изобретения, предполагаются охватываемыми ими.
Claims (26)
1. Способ обновления матрицы динамической оперативной памяти (DRAM), организованной в виде множества независимо обновляемых блоков памяти, содержащий:
ассоциирование указателя с каждым независимо обновляемым блоком памяти;
при записи данных в независимо обновляемый блок памяти, установку ассоциированного указателя для отражения действительных данных; увеличение задержки между операциями обновления, пропорционально ненулевому числу подавленных циклов обновления, причем цикл обновления подавляется, если ассоциированный указатель отражает недействительные данные, таким образом, чтобы только все независимо обновляемые блоки памяти, которые содержат действительные данные, могли обновляться с максимальным периодом обновления; и обновление с упомянутым максимальным периодом обновления только независимо обновляемых блоков памяти, у которых ассоциированный указатель отражает действительные данные, сохраненные в них.
ассоциирование указателя с каждым независимо обновляемым блоком памяти;
при записи данных в независимо обновляемый блок памяти, установку ассоциированного указателя для отражения действительных данных; увеличение задержки между операциями обновления, пропорционально ненулевому числу подавленных циклов обновления, причем цикл обновления подавляется, если ассоциированный указатель отражает недействительные данные, таким образом, чтобы только все независимо обновляемые блоки памяти, которые содержат действительные данные, могли обновляться с максимальным периодом обновления; и обновление с упомянутым максимальным периодом обновления только независимо обновляемых блоков памяти, у которых ассоциированный указатель отражает действительные данные, сохраненные в них.
2. Способ по п.1, в котором независимо обновляемым блоком памяти является строка.
3. Способ по п.1, в котором независимо обновляемый блок памяти содержит строку по двум или более банкам памяти.
4. Способ по п.1, в котором указателем является бит действительности.
5. Способ по п.4, в котором бит действительности сохранен в матрице DRAM.
6. Способ по п.4, в котором бит действительности сохранен в статической памяти.
7. Способ по п.4, в котором бит действительности сохранен в регистре.
8. Способ по п.1, в котором установка ассоциированного указателя для отражения действительных данных включает в себя установку указателя по команде от контроллера памяти.
9. Способ по п.1, в котором указатели, установленные для отражения действительных данных, очищаются при сбросе.
10. Способ по п.1, в котором указатели, установленные для отражения действительных данных, очищаются по команде от контроллера памяти.
11. Способ по п.1, в котором обновление только независимо обновляемых блоков памяти, у которых ассоциированный указатель отражает действительные данные, сохраненные в них, содержит самообновление только независимо обновляемых блоков памяти, у которых ассоциированный указатель отражает действительные данные, сохраненные в них.
12. Способ по п.1, в котором обновление только независимо обновляемых блоков памяти, у которых ассоциированный указатель отражает действительные данные, сохраненные в них, содержит автоматическое обновление только независимо обновляемых блоков памяти, у которых ассоциированный указатель отражает действительные данные, сохраненные в них.
13. Способ по п.1, в котором обновление только независимо обновляемых блоков памяти, у которых ассоциированный указатель отражает действительные данные, сохраненные в них, содержит последовательное обновление несмежных независимо обновляемых блоков памяти.
14. Способ по п.1, в котором обновление только независимо обновляемых блоков памяти, у которых ассоциированный указатель отражает действительные данные, сохраненные в них, содержит:
прием команды обновления;
проверку указателя, ассоциированного с текущим адресом обновления; и если указатель отражает действительные данные, обновление адресуемого независимо обновляемого блока памяти.
прием команды обновления;
проверку указателя, ассоциированного с текущим адресом обновления; и если указатель отражает действительные данные, обновление адресуемого независимо обновляемого блока памяти.
15. Способ по п.13, дополнительно содержащий, если указатель отражает действительные данные, выполнение приращения адреса обновления до следующего независимо обновляемого блока памяти, имеющего указатель, отражающий действительные данные.
16. Компонент динамической оперативной памяти (DRAM), содержащий матрицу DRAM, действующую для хранения данных, причем матрица DRAM организована как множество независимо обновляемых блоков памяти, причем компонент DRAM дополнительно содержит:
множество указателей, каждый из которых ассоциирован с независимо обновляемым блоком памяти, для указания, сохранены ли действительные данные в независимо обновляемом блоке памяти;
причем каждый ассоциированный указатель выполнен с возможностью установки при записи данных в независимо обновляемый блок памяти, таким образом, чтобы отражать действительные данные, сохраненные в блоке; и
контроллер, выполненный с возможностью увеличения задержки между операциями обновления, пропорционально ненулевому числу подавленных циклов обновления, причем цикл обновления подавляется, если ассоциированный указатель отражает недействительные данные, таким образом, чтобы только все независимо обновляемые блоки памяти, которые содержат действительные данные, могли обновляться с максимальным периодом обновления;
причем контроллер дополнительно выполнен с возможностью проверки указателей и обновления с упомянутым максимальным периодом обновления только независимо обновляемых блоков памяти, ассоциированные указатели которых отражают действительные данные, сохраненные в блоке.
множество указателей, каждый из которых ассоциирован с независимо обновляемым блоком памяти, для указания, сохранены ли действительные данные в независимо обновляемом блоке памяти;
причем каждый ассоциированный указатель выполнен с возможностью установки при записи данных в независимо обновляемый блок памяти, таким образом, чтобы отражать действительные данные, сохраненные в блоке; и
контроллер, выполненный с возможностью увеличения задержки между операциями обновления, пропорционально ненулевому числу подавленных циклов обновления, причем цикл обновления подавляется, если ассоциированный указатель отражает недействительные данные, таким образом, чтобы только все независимо обновляемые блоки памяти, которые содержат действительные данные, могли обновляться с максимальным периодом обновления;
причем контроллер дополнительно выполнен с возможностью проверки указателей и обновления с упомянутым максимальным периодом обновления только независимо обновляемых блоков памяти, ассоциированные указатели которых отражают действительные данные, сохраненные в блоке.
17. Компонент DRAM по п.16, дополнительно содержащий счетчик обновления, действующий для генерации адресов независимо обновляемых блоков памяти в матрице DRAM.
18. Компонент DRAM по п.16, дополнительно содержащий модуль управления памятью, действующий для установки указателя, когда данные записываются в ассоциированный независимо обновляемый блок памяти.
19. Компонент DRAM по п.16, в котором указатели очищаются в процессе инициализации.
20. Компонент DRAM по п.16, в котором контроллер дополнительно действует для установки или очистки указателей в ответ на сигналы управления.
21. Компонент DRAM п.16, в котором указатели хранятся в одном или более независимо обновляемых блоках памяти.
22. Машиночитаемый носитель, включающий в себя, по меньшей мере, компьютерную программу управления памятью, действующую для выполнения этапов способа по любому из пп.1-15.
23. Машиночитаемый носитель по п.22, в котором компьютерная программа управления памятью дополнительно действует для выполнения следующих этапов:
приема запросов из программной задачи для освобождения памяти, ранее распределенной этой задаче;
освобождения памяти, ранее распределенной задаче; и
если вся память в независимо обновляемом блоке памяти освобождена, очистки ассоциированного указателя, чтобы предписывать запоминающему устройству подавлять операции обновления,
направленные на этот независимо обновляемый блок памяти.
приема запросов из программной задачи для освобождения памяти, ранее распределенной этой задаче;
освобождения памяти, ранее распределенной задаче; и
если вся память в независимо обновляемом блоке памяти освобождена, очистки ассоциированного указателя, чтобы предписывать запоминающему устройству подавлять операции обновления,
направленные на этот независимо обновляемый блок памяти.
24. Машиночитаемый носитель по п.22, в котором компьютерная программа управления памятью распределяет память для множества программных задач, исполняемых на одном процессоре.
25. Машиночитаемый носитель по п.22, в котором компьютерная программа управления памятью распределяет память для двух или более программных задач, каждая из которых исполняется на другом процессоре.
26. Машиночитаемый носитель по п.22, в котором компьютерная программа управления памятью устанавливает указатель независимо обновляемого блока памяти после первоначальной записи данных в ассоциированный независимо обновляемый блок памяти.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/828,569 US7590021B2 (en) | 2007-07-26 | 2007-07-26 | System and method to reduce dynamic RAM power consumption via the use of valid data indicators |
US11/828,569 | 2007-07-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2010107059A RU2010107059A (ru) | 2011-09-10 |
RU2435237C1 true RU2435237C1 (ru) | 2011-11-27 |
Family
ID=39862963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2010107059/08A RU2435237C1 (ru) | 2007-07-26 | 2008-07-25 | Система и способ снижения энергопотребления динамического озу посредством использования указателей действительных данных |
Country Status (12)
Country | Link |
---|---|
US (1) | US7590021B2 (ru) |
EP (1) | EP2020659B1 (ru) |
JP (2) | JP2010534897A (ru) |
KR (1) | KR101107798B1 (ru) |
CN (1) | CN101765887A (ru) |
AT (1) | ATE528763T1 (ru) |
BR (1) | BRPI0814590A8 (ru) |
CA (1) | CA2693811C (ru) |
ES (1) | ES2375230T3 (ru) |
MX (1) | MX2010000954A (ru) |
RU (1) | RU2435237C1 (ru) |
WO (1) | WO2009015324A1 (ru) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10007599B2 (en) | 2014-06-09 | 2018-06-26 | Huawei Technologies Co., Ltd. | Method for refreshing dynamic random access memory and a computer system |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8237723B2 (en) * | 2007-06-07 | 2012-08-07 | Apple Inc. | Deferred deletion and cleanup for graphics resources |
US7991921B2 (en) * | 2008-03-11 | 2011-08-02 | Freescale Semiconductor, Inc. | System and method for reducing power consumption of memory in an I/O controller |
EP3760180A3 (en) | 2009-07-29 | 2021-01-20 | ICU Medical, Inc. | Fluid transfer devices and methods of use |
US9411674B2 (en) * | 2010-03-19 | 2016-08-09 | Microsoft Technology Licensing, Llc | Providing hardware resources having different reliabilities for use by an application |
US8412882B2 (en) | 2010-06-18 | 2013-04-02 | Microsoft Corporation | Leveraging chip variability |
KR20140005150A (ko) | 2010-09-30 | 2014-01-14 | 키에시 파르마슈티시 엣스. 피. 에이. | 흡입용 건조 분말 제제 내 마그네슘 스테아레이트의 용도 |
WO2012074724A1 (en) | 2010-12-03 | 2012-06-07 | Rambus Inc. | Memory refresh method and devices |
CN104159624A (zh) | 2011-12-22 | 2014-11-19 | Icu医学有限公司 | 流体传输装置及使用方法 |
EP2620838B1 (en) * | 2012-01-26 | 2015-04-22 | ST-Ericsson SA | Automatic partial array self-refresh |
US20160155491A1 (en) * | 2014-11-27 | 2016-06-02 | Advanced Micro Devices, Inc. | Memory persistence management control |
KR102373544B1 (ko) | 2015-11-06 | 2022-03-11 | 삼성전자주식회사 | 요청 기반의 리프레쉬를 수행하는 메모리 장치, 메모리 시스템 및 메모리 장치의 동작방법 |
CA3006951C (en) | 2015-12-04 | 2024-05-14 | Icu Medical, Inc. | Systems, methods, and components for transferring medical fluids |
US9972375B2 (en) * | 2016-04-15 | 2018-05-15 | Via Alliance Semiconductor Co., Ltd. | Sanitize-aware DRAM controller |
USD851745S1 (en) | 2016-07-19 | 2019-06-18 | Icu Medical, Inc. | Medical fluid transfer system |
JP6765941B2 (ja) * | 2016-11-22 | 2020-10-07 | 理想科学工業株式会社 | 半導体メモリ管理装置 |
US10437499B2 (en) * | 2017-12-22 | 2019-10-08 | Nanya Technology Corporation | Hybrid memory system and method of operating the same |
US10762946B2 (en) * | 2018-12-31 | 2020-09-01 | Micron Technology, Inc. | Memory with partial array refresh |
US10811076B1 (en) | 2019-06-29 | 2020-10-20 | Intel Corporation | Battery life based on inhibited memory refreshes |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09312094A (ja) * | 1996-05-23 | 1997-12-02 | Nec Eng Ltd | リフレッシュ制御システム |
JPH10177786A (ja) * | 1996-12-16 | 1998-06-30 | Nec Shizuoka Ltd | メモリリフレッシュ制御装置および方法 |
JPH1196756A (ja) * | 1997-09-26 | 1999-04-09 | Fujitsu Ltd | 半導体記憶装置 |
US6415353B1 (en) * | 1998-10-01 | 2002-07-02 | Monolithic System Technology, Inc. | Read/write buffers for complete hiding of the refresh of a semiconductor memory and method of operating same |
JP2000113667A (ja) * | 1998-10-07 | 2000-04-21 | Nec Corp | Dram装置 |
JP2000123568A (ja) * | 1998-10-14 | 2000-04-28 | Ricoh Co Ltd | Dramリフレッシュ制御回路およびリフレッシュ制御回路を内蔵したdram |
JP2000339953A (ja) * | 1999-05-27 | 2000-12-08 | Ricoh Co Ltd | Dramリフレッシュ制御回路 |
JP2001243767A (ja) * | 2000-02-25 | 2001-09-07 | Nec Microsystems Ltd | 揮発性メモリを用いたfifoメモリ |
JP2002373489A (ja) | 2001-06-15 | 2002-12-26 | Mitsubishi Electric Corp | 半導体記憶装置 |
US6742097B2 (en) | 2001-07-30 | 2004-05-25 | Rambus Inc. | Consolidation of allocated memory to reduce power consumption |
US20030053361A1 (en) * | 2001-09-20 | 2003-03-20 | Haitao Zhang | EDRAM based architecture |
JP2004047051A (ja) * | 2002-05-17 | 2004-02-12 | Matsushita Electric Ind Co Ltd | メモリ制御装置および方法ならびにプログラム |
EP1408510A3 (en) | 2002-05-17 | 2005-05-18 | Matsushita Electric Industrial Co., Ltd. | Memory control apparatus, method and program |
KR100535071B1 (ko) | 2002-11-07 | 2005-12-07 | 주식회사 하이닉스반도체 | 셀프 리프레쉬 장치 |
JP2004259343A (ja) * | 2003-02-25 | 2004-09-16 | Renesas Technology Corp | 半導体記憶装置 |
US6876593B2 (en) * | 2003-07-01 | 2005-04-05 | Intel Corporation | Method and apparatus for partial refreshing of DRAMS |
US20050078538A1 (en) * | 2003-09-30 | 2005-04-14 | Rainer Hoehler | Selective address-range refresh |
US7236416B2 (en) | 2004-05-21 | 2007-06-26 | Qualcomm Incorporated | Method and system for controlling refresh in volatile memories |
US7079440B2 (en) | 2004-05-27 | 2006-07-18 | Qualcomm Incorporated | Method and system for providing directed bank refresh for volatile memories |
US7088633B2 (en) | 2004-05-27 | 2006-08-08 | Qualcomm Incorporated | Method and system for providing seamless self-refresh for directed bank refresh in volatile memories |
US7184350B2 (en) | 2004-05-27 | 2007-02-27 | Qualcomm Incorporated | Method and system for providing independent bank refresh for volatile memories |
US8122187B2 (en) | 2004-07-02 | 2012-02-21 | Qualcomm Incorporated | Refreshing dynamic volatile memory |
US7930471B2 (en) | 2004-11-24 | 2011-04-19 | Qualcomm Incorporated | Method and system for minimizing impact of refresh operations on volatile memory performance |
US7342841B2 (en) | 2004-12-21 | 2008-03-11 | Intel Corporation | Method, apparatus, and system for active refresh management |
US7953921B2 (en) | 2004-12-28 | 2011-05-31 | Qualcomm Incorporated | Directed auto-refresh synchronization |
-
2007
- 2007-07-26 US US11/828,569 patent/US7590021B2/en active Active
-
2008
- 2008-03-25 AT AT08005492T patent/ATE528763T1/de not_active IP Right Cessation
- 2008-03-25 ES ES08005492T patent/ES2375230T3/es active Active
- 2008-03-25 EP EP08005492A patent/EP2020659B1/en active Active
- 2008-07-25 WO PCT/US2008/071153 patent/WO2009015324A1/en active Application Filing
- 2008-07-25 CN CN200880100528A patent/CN101765887A/zh active Pending
- 2008-07-25 KR KR1020107004191A patent/KR101107798B1/ko active IP Right Grant
- 2008-07-25 BR BRPI0814590A patent/BRPI0814590A8/pt not_active IP Right Cessation
- 2008-07-25 MX MX2010000954A patent/MX2010000954A/es active IP Right Grant
- 2008-07-25 RU RU2010107059/08A patent/RU2435237C1/ru not_active IP Right Cessation
- 2008-07-25 CA CA2693811A patent/CA2693811C/en not_active Expired - Fee Related
- 2008-07-25 JP JP2010518407A patent/JP2010534897A/ja active Pending
-
2014
- 2014-05-21 JP JP2014105630A patent/JP2014197446A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10007599B2 (en) | 2014-06-09 | 2018-06-26 | Huawei Technologies Co., Ltd. | Method for refreshing dynamic random access memory and a computer system |
RU2665883C2 (ru) * | 2014-06-09 | 2018-09-04 | Хуавэй Текнолоджиз Ко., Лтд. | Способ и система для обновления динамического оперативного запоминающего устройства (dram) и устройство |
Also Published As
Publication number | Publication date |
---|---|
CA2693811A1 (en) | 2009-01-29 |
EP2020659A1 (en) | 2009-02-04 |
CN101765887A (zh) | 2010-06-30 |
WO2009015324A1 (en) | 2009-01-29 |
ATE528763T1 (de) | 2011-10-15 |
ES2375230T3 (es) | 2012-02-27 |
KR101107798B1 (ko) | 2012-01-25 |
MX2010000954A (es) | 2010-03-10 |
BRPI0814590A8 (pt) | 2019-01-02 |
JP2014197446A (ja) | 2014-10-16 |
CA2693811C (en) | 2013-11-12 |
JP2010534897A (ja) | 2010-11-11 |
KR20100047286A (ko) | 2010-05-07 |
US20090027989A1 (en) | 2009-01-29 |
US7590021B2 (en) | 2009-09-15 |
RU2010107059A (ru) | 2011-09-10 |
BRPI0814590A2 (pt) | 2015-01-20 |
EP2020659B1 (en) | 2011-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2435237C1 (ru) | Система и способ снижения энергопотребления динамического озу посредством использования указателей действительных данных | |
US4725945A (en) | Distributed cache in dynamic rams | |
US6070227A (en) | Main memory bank indexing scheme that optimizes consecutive page hits by linking main memory bank address organization to cache memory address organization | |
KR101213315B1 (ko) | 메모리 영역을 선택하는 방법, 회로, 및 시스템 | |
US4937791A (en) | High performance dynamic ram interface | |
JP4360766B2 (ja) | Dramキャッシュ・メモリ中のデータをリフレッシュする方法および装置 | |
US5751994A (en) | System and method for enhancing computer operation by prefetching data elements on a common bus without delaying bus access by multiple bus masters | |
US7603512B2 (en) | Dynamic memory refresh controller, memory system including the same and method of controlling refresh of dynamic memory | |
US20130044557A1 (en) | Memory control method of memory device and memory control system thereof | |
TWI393050B (zh) | 促進多重處理器介面之板內建快取記憶體系統之記憶體裝置及方法及使用其之電腦系統 | |
JPH02297791A (ja) | メモリ・サブシステム | |
US20030028711A1 (en) | Monitoring in-use memory areas for power conservation | |
Cui et al. | DTail: a flexible approach to DRAM refresh management | |
Kim et al. | Charge-aware DRAM refresh reduction with value transformation | |
US6078532A (en) | Method and apparatus for improving performance of DRAM subsystems with SRAM overlays | |
US8250298B2 (en) | Mechanisms for reducing DRAM power consumption | |
US20060190678A1 (en) | Static random access memory (SRAM) compatible, high availability memory array and method employing synchronous dynamic random access memory (DRAM) in conjunction with a single DRAM cache and tag | |
WO2016043158A1 (ja) | メモリ制御回路および記憶装置 | |
US6542958B1 (en) | Software control of DRAM refresh to reduce power consumption in a data processing system | |
US6433786B1 (en) | Memory architecture for video graphics environment | |
KR102581318B1 (ko) | 반도체 메모리 모듈 및 반도체 메모리 모듈을 포함하는 메모리 시스템 | |
JPH09282873A (ja) | メモリ装置 | |
EP0482575A2 (en) | Storage system for a high-performance processor | |
JP2625348B2 (ja) | キャッシュメモリ | |
JPH1091527A (ja) | 記憶装置および記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20180726 |