Способ и устройство для неявной предварительной зарядки динамической оперативной памяти (dram)

Изобретение относится к устройству и способу неявной предварительной зарядки динамической оперативной памяти. Техническим результатом является расширение функциональных возможностей. Устройство памяти содержит, по меньшей мере, один банк, состоящий из ячеек памяти, организованных во множество строк ячеек памяти; и логическое средство управления, соединенное, по меньшей мере, с одним банком, и реагирующее на прием устройством памяти команды активации одиночной строки для открывания конкретной строки таким образом, что, если нет открытых строк, когда принята команда активации строки, то конкретная строка, по меньшей мере, в одном банке открывается, а если в банке открыта другая строка, отличная от конкретной строки, когда принята команда активации строки, то другая строка закрывается и конкретная строка открывается. Устройство управления памятью содержит первое местоположение хранения, в котором сохраняются данные относительно строк в банке ячеек памяти в устройстве памяти и логическое средство управления обращениями, совершаемыми к ячейкам памяти. Компьютерная система содержит процессор, устройство памяти и контроллер памяти. Способы описывают работу указанных устройств. 6 н. и 16 з.п. ф-лы, 6 ил.

 

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ

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

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

По мере того, как устройства динамической оперативной памяти (DRAM) постепенно становились быстрее в результате усовершенствований в конструкции как ячеек динамической оперативной памяти (DRAM), составляющих устройство динамической оперативной памяти (DRAM), так и транзисторов и т.д., используемых для образования ячеек динамической оперативной памяти (DRAM), скорость, на которой работают интерфейсы, составленные из мультиплексированных сигналов ввода и вывода устройств динамической оперативной памяти (DRAM), нуждалась в увеличении. В результате усилий достичь более высоких скоростей интерфейса, поддерживая целостность в передаче команд, адресов и данных, установилась практика синхронизировать различные фазы и функции, выполняемые мультиплексированными вводами и выводами, по синхронизирующему сигналу, чтобы гарантировать, что состояния различных вводов и выводов передаются и запираются в соответствующие времена. Первоначально обычно использовались целые тактовые циклы как основа согласования по времени для событий на шине памяти. Однако еще более быстрые устройства динамической оперативной памяти (DRAM) привели к более недавнему принятию половины тактовых циклов за основу согласования по времени для событий на шине памяти, что привело к так называемой "двойной тактовой синхронизации" сигналов, или что в большинстве случаев упоминается в связи с обычными устройствами синхронной динамической оперативной памяти (SDRAM) как устройства с "удвоенной скоростью передачи данных" (DDR). Хотя увеличенные скорости интерфейсов, казалось бы, обеспечивают возможность полностью вмещать системные издержки многочисленных необходимых команд, на таких более высоких скоростях интерфейса встретились трудности в соблюдении требований более точной настройки сигнала и синхронизации задержек при передаче каждой из различных фаз, необходимых при передаче каждой из бесчисленного множества команд и/или адресов. Эти трудности были такими, что было предложено, чтобы команды и/или адреса передавались со скоростью лишь до половины тактовой частоты, с которой передаются данные, что было названо "2n синхронизацией", таким образом, отказываясь от преимуществ двойной синхронизации для передачи команд и/или адресов.

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

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

Цели, возможности и преимущества данного изобретения будут очевидны специалистам в области техники, принимая во внимание следующее подробное описание в котором:

Фиг.1 - блок-схема варианта воплощения, использующего систему памяти;

Фиг.2a и 2b - схемы согласования по времени и схемы действия соответствующих событий для вариантов воплощения, использующих шину памяти;

Фиг.3 - схема согласования по времени варианта воплощения, использующего шину памяти;

Фиг.4 - блок-схема варианта воплощения, использующего компьютерную систему;

Фиг.5 - схема последовательностей операций варианта воплощения;

ПОДРОБНОЕ ОПИСАНИЕ

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

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

Фиг.1 является упрощенной блок-схемой одного варианта воплощения, использующего систему памяти. Система 100 памяти, по меньшей мере, частично состоит из контроллера 170 памяти и устройства 190 памяти, соединенных вместе через шину 180 памяти. Специалисты в области проектирования систем памяти легко признают, что фиг. 1 изображает один вид относительно простой системы памяти, и что возможны альтернативные варианты воплощения, в которых точное расположение и конфигурация компонентов могут быть сокращены, увеличены или изменены другим образом без отступления от сущности и объема данного изобретения, как оно заявлено в дальнейшем. Например, хотя система 100 памяти изображена как имеющая только одну шину 180 памяти и только одно устройство 190 памяти ради простоты последующего обсуждения, специалисты в данной области техники легко поймут, что другие возможные варианты воплощения системы 100 памяти могут состоять из нескольких шин памяти и/или устройств.

Контроллер 170 памяти управляет функциями, выполняемыми устройством 190 памяти, что является частью обеспечения доступа к устройству 190 памяти для внешних устройств (не показаны), соединенных с контроллером 170 памяти. А именно, внешнее устройство, соединенное с контроллером 170 памяти, выдает команды контроллеру 170 памяти, чтобы сохранить данные в устройстве 190 памяти и извлечь сохраненные данные из устройства 190 памяти. Контроллер 170 памяти принимает эти команды и передает их на устройство 190 памяти в формате, имеющем согласование по времени и протоколы, совместимые с шиной 180 памяти и/или комбинацией средства 191 логического управления и буфера 197 данных, которые составляют интерфейс между устройством 190 памяти и шиной 180 памяти. В сущности контроллер 170 памяти координирует обращения, совершаемые к ячейкам памяти в устройстве 190 памяти в ответ на команды чтения и записи от внешних устройств. В поддержку этих функций в различных вариантах воплощения контроллер 170 памяти также координирует различные операции обслуживания, которые должны быть выполнены, чтобы гарантировать, что сохранены данные, хранимые в устройстве 190 памяти, в том числе инициирование регулярных операций регенерации и наступление событий операций предварительной зарядки, что необходимо между обращениями.

Шина 180 памяти составлена из различных сигнальных линий управления, адресации и данных, соединяющих вместе контроллер 170 памяти и устройство 190 памяти. Точное количество и характеристики различных сигнальных линий, составляющих различные возможные варианты воплощения шины 180 памяти, могут быть сконфигурированы, чтобы иметь возможность взаимодействовать с любым из множества возможных интерфейсов памяти, в том числе тех, которые подразумеваются совместимыми с известными типами устройств памяти, среди которых устройства динамической оперативной памяти (DRAM), устройства памяти быстрого постраничного режима (FPM), динамическое ОЗУ с увеличенным временем доступности выдачи данных (EDO), двухпортовая видеопамять (VRAM), оперативная память WRAM (window RAM), память с одинарной скоростью передачи данных (SDR), память с удвоенной скоростью передачи данных (DDR), динамическая оперативная память RAMBUS™ и т.д. В некоторых вариантах воплощения, где подразумевается, что активность на различных сигнальных линиях координируется сигналом синхронизации, одна или более сигнальных линий, возможно, сигнальные линии управления, служит для передачи сигнала синхронизации между контроллером 170 памяти и устройством 190 памяти. В некоторых вариантах воплощения один или более сигналов управления и сигналов адресации могут быть мультиплексированы в общих сигнальных линиях таким образом, что сигналы управления и сигналы адресации передаются в разное время по общим проводникам для переноса сигналов между контроллером 170 памяти и устройством 190 памяти. Кроме того, в некоторых вариантах воплощения один или более сигналов адресации и сигналов данных могут быть мультиплексированы в общих сигнальных линиях.

Устройство 190 памяти является устройством динамической оперативной памяти со средством сопряжения, составленным из логического средства 191 управления и буфера 197 данных, сконфигурированных, чтобы иметь возможность взаимодействовать с шиной памяти 180. В некоторых вариантах воплощения устройство 190 памяти является одной интегральной схемой. В других вариантах воплощения устройство 190 памяти составлено из нескольких интегральных схем сменного модуля памяти, такого как модуль памяти с однорядным расположением выводов (SIMM), корпус с однорядным расположением выводов (SIPP), память с двухрядным расположением выводов (DIMM) и т.д.

Ячейки памяти устройства 190 памяти сгруппированы в множество банков, таких как банки 199a-199d, каждый банк организован в двумерный массив ячеек памяти, имеющий строки и столбцы. В некоторых вариантах воплощения логическое средство 191 управления принимает, по меньшей мере, некоторые команды и адреса от контроллера 170 памяти через шину 180 памяти и выполняет эти команды, используя декодеры 193a-193d адреса строки, декодер 194 адреса столбца и/или логическое средство 192 выбора банка, чтобы обратиться к одной или более конкретных частей одного или более банков 199a-199d. По существу, чтобы получить доступ к ячейке памяти в устройстве 190 памяти, адрес этой ячейки памяти составлен из трех частей, которые передаются контроллером 170 памяти устройству 190 памяти по шине 180 памяти, а именно банк, строка и столбец данной ячейки памяти. В ответ, по меньшей мере, на команды чтения и записи, принятые от контроллера 170 памяти, мультиплексор 195 выбора ввода/вывода и буфер 197 данных используются для сохранения данных в или извлечения данных из одной или более ячеек памяти.

В некоторых вариантах воплощения контроллер 170 памяти поддерживает буферы 179a-179d состояния банка, соответствующие банкам 199a-199d устройства 190 памяти, в которых содержится информация относительно того, открыта или нет строка соответствующего банка, и адрес этой строки. Контроллер 170 памяти полагается на содержимое буферов 179a-179d состояния банка, чтобы определить, существует ли необходимость передать команду активации строки, чтобы подготовить данную строку в данном банке для доступа к ней, и является ли уже открытой другая строка в том же самом банке, таким образом, что может требоваться дополнительное время для закрытия этой другой строки операцией предварительной зарядки, прежде чем данная строка откроется в ответ на команду активации.

Более точно, в некоторых вариантах воплощения, если контроллер 170 памяти будет обращаться к данной строке в данном банке, то контроллер 170 памяти проверяет содержимое каждого из буферов 179a-179d состояния банка, соответствующих данному банку, чтобы определить, открыта ли уже данная строка, и если данная строка не открыта, то определить, открыта или не открыта другая строка. В качестве примера, если контроллер 170 памяти должен обратиться к данной строке в банке 199a, то контроллер 170 памяти проверяет содержимое буфера 179a состояния банка, чтобы определить, открыта ли уже данная строка. Если данная строка уже открыта, то передача команды активации строки для открывания данной строки не нужна. Однако, если данная строка еще не открыта, то контроллер 170 памяти проверяет содержимое буфера 179a состояния банка, чтобы определить, открыта или не открыта другая строка в банке 199a. Если ни одна строка в банке 199a не открыта (что иногда называют состоянием "страница пуста"), то контроллер 170 памяти должен передать команду активации строки устройству 190 памяти, чтобы открыть данную строку в банке 199a в течение подготовки к обращению, и контроллер 170 памяти должен предоставить достаточное время между передачей команды активации и выполнением обращения к данной строке, чтобы произошла подготовка данной строки к обращению. В качестве альтернативы, если данная строка не открыта, но открыта другая строка (что иногда называют состоянием "страница отсутствует"), то контроллер 170 памяти должен передать команду активации строки (с подразумеваемой командой предварительной зарядки) устройству 190 памяти, чтобы закрыть другую строку и открыть данную строку в банке 199a в течение подготовки к обращению, и контроллер 170 памяти должен предоставить достаточное время между передачей команды активации и выполнением обращения к данной строке, чтобы произошли закрытие другой строки через операцию предварительной зарядки и подготовка данной строки к обращению.

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

На фиг. 2a ни одна строка ячеек памяти не открыта в банке 299 в момент 286 времени, когда передается команда активации строки, чтобы открыть строку, к которой производится обращение, в банке 299. Одновременно с передачей команды активации может также быть передача адресов банка и/или строки, к которым применяется команда активации, с банком 299 в этом случае. Минимальное предопределенное количество тактовых циклов происходит в течение интервала 287 времени, чтобы предоставить достаточное время, чтобы процесс открытия строки, к которой производится обращение, завершился. Как признают специалисты в данной области техники, другие команды, адреса и/или данные могут быть переданы в течение интервала 287 времени, и передача этих команд, адресов и/или данных, возможно, затрагивает другие банки и/или устройства памяти. Также специалистам в области техники будет очевидно, что интервал 287 времени может быть более длинным, чем просто время, требуемое для открытия строки, к которой производится обращение, чтобы согласовать другие аспекты управления памятью, несвязанные с открытием строки, к которой производится обращение. В момент 288 времени инициируется фактическое обращение к строке, к которой производится обращение, передачей команды чтения или записи. Одновременно с этой передачей команды чтения или записи может также быть передача адреса банка и/или столбца, к которым применяется команда чтения или записи.

На фиг.2b другая строка ячеек памяти, отличная от строки, к которой производится обращение, уже открыта в банке 299 в момент 286 времени, когда передается команда активации строки, чтобы открыть строку, к которой производится обращение в банке 299. Как и на фиг. 2a, одновременно с передачей команды активации могут также быть передача адресов банка и/или строки, к которым применяется команда активации, банком снова является банк 299. Снова минимальное предопределенное количество тактовых циклов происходит в течение интервала 287 времени, в течение которого могут быть переданы различные несвязанные команды, адреса и/или данные. Однако, в отличие от того, что изображено на фиг. 2a, предполагается, что предопределенное количество тактовых циклов обеспечивает достаточное время для завершения как неявного процесса предварительной зарядки (т.е. закрытия) другой строки, которая уже была открыта в момент 286 времени, так и процесса заданной активации строки для открытия строки, к которой производится обращение. Поэтому минимальное количество тактовых циклов, требуемое для завершения обоих процессов в течение интервала 287 времени на фиг. 2b, больше, чем для интервала времени 287 на фиг. 2a. В момент 288 времени инициируется фактическое обращение к строке, к которой производится обращение, передачей команды чтения или записи, и наряду с этим возможна одновременная передача адреса банка и/или столбца, к которым применяется команда чтения или записи.

Что касается длины интервала 287 времени на обеих фиг. 2a и 2b, устройство, передающее команду активации строки в момент 286 времени и/или команду чтения/записи в момент 288 времени, в некоторых вариантах воплощения может использовать некоторый вид буфера, набор регистров и/или другое запоминающее устройство, чтобы поддерживать текущую информацию относительно того, открыта или не открыта строка в банке 299, и если открыта, адрес этой строки. Такая информация может использоваться, чтобы определить, должна ли данная команда активации строки интерпретироваться как содержащая неявную команду предварительной зарядки. При вынесении такого решения такая информация может использоваться, чтобы определить минимальную длину интервала 287 времени, необходимую, чтобы гарантировать, что как операциям активации строки, происходящим без операции предварительной зарядки, так и операциям активации строки, сопровождаемым неявными операциями предварительной зарядки, предоставлено достаточно времени для завершения. В некоторых вариантах воплощения длина интервала 287 времени может быть измерена и/или распределена количеством тактовых переходов или полных тактовых циклов, как описано в отношении обеих фиг.2a и 2b. В качестве альтернативы, в других вариантах воплощения, которые могут включать в себя использование асинхронного согласования во времени, длина интервала 287 времени может быть измерена и/или распределена другими способами. Кроме того, несмотря на особое упоминание о передаче адресов банка, строки и столбца одновременно с передачей конкретных команд в вариантах воплощения, изображенных на фиг.2a и 2b, специалисты в области техники легко признают, что любая комбинация сигналов, адресов и/или команд может быть передана одновременно с передачей команд активации строки и/или чтения/записи, либо для обеспечения функциональной совместимости с существующими спецификациями удвоенной скорости передачи данных (DDR), либо по другим причинам, не отступая от сущности и объема данного изобретения, как оно заявлено в дальнейшем.

Фиг.3 является схемой согласования по времени вариантов воплощения, использующих передачу сигналов по шине памяти нескольким устройствам памяти, изображающей передачу команд активации строки и чтения/записи двум устройствам памяти. Одно устройство памяти выбрано путем приведения линии -CS0 выбора элемента памяти в состояние с низким уровнем, как часть получения от устройства памяти или передачи устройству памяти адресов, команд и/или данных, и другое устройство памяти выбрано путем аналогичного приведения линии -CS1 выбора элемента памяти в состояние с низким уровнем. Оба устройства памяти изображены получающими команды, соответствующие открытию строки, к которой производится обращение командой активации строки, после предварительного закрывания другой строки, которая уже была открыта. Опять, хотя эта фигура и сопроводительное обсуждение сосредотачиваются на вариантах воплощения шин памяти, в которых имеют место транзакции, которые синхронизированы по сигналу синхронизации, специалисты в области техники легко поймут, что другие варианты воплощения могут использовать другие формы синхронизации или могут быть асинхронными.

Устройство памяти, выбранное через линию -CS0, управляется способом, совместимым с текущими протоколами удвоенной скорости передачи данных (DDR), в которых строка, к которой производится обращение, может быть открыта для доступа только после того, как другая строка в том же самом банке была сначала явно закрыта через явную передачу команды предварительной зарядки строки. В момент 381 времени передача такой явной команды предварительной зарядки происходит, возможно, с одновременной передачей адреса банка памяти, к которому применяется явная команда предварительной зарядки. Между моментами 381 и 383 времени дается промежуток времени, чтобы дать возможность явно заданной операции предварительной зарядки завершиться прежде, чем будет передана команда активации строки, чтобы открыть строку, к которой производится обращение, в момент 383 времени. В вариантах воплощения, подразумевающих соответствие согласованием по времени и/или протоколам текущих реализаций удвоенной скорости передачи данных (DDR), адреса банка и/или строки, к которым применяется команда активации строки, могут также быть переданы одновременно с передачей команды активации строки. Между моментами 383 и 385 времени дается другой промежуток времени, чтобы дать возможность операции активации строки завершиться прежде, чем будет передана команда чтения/записи в момент 385 времени, возможно одновременно с передачей адресов соответствующего банка и/или столбца.

Напротив, другое устройство памяти, выбранное через линию -CS1, управляется для выполнения тех же самых операций, как было только что описано относительно устройства памяти, выбранного через линию -CS0, но без явной передачи команды предварительной зарядки. А именно, в момент 387 времени передается команда активации строки с неявной командой предварительной зарядки, возможно, с соответствующей передачей адреса банка, к которому применяются команды активации и предварительной зарядки, и/или, возможно, с соответствующей передачей адреса строки, к которой применяется команда активации. Между моментами 387 и 389 времени дается промежуток времени, чтобы дать возможность как неявно заданной операции предварительной зарядки, так и явно заданной операции активации завершиться прежде, чем будет передана команда чтения/записи в момент 389 времени, возможно одновременно с передачей адресов соответствующего банка и/или столбца.

Хотя передача команд каждому из устройств памяти, выбранных через линии -CS0 и -CS1, обсуждалась отдельно, различные варианты воплощения контроллера памяти (или другого устройства, используемого как контроллер памяти), способные передавать команды устройству памяти, могут включать в себя поддержку для возможности переключения между использованием либо явно передаваемой команды предварительной зарядки, либо неявной команды предварительной зарядки, сопровождающей передаваемую команду активации. Такой контроллер памяти может сделать возможным объединение устройств памяти, поддерживающих неявную команду предварительной зарядки, с другими устройствами памяти, которые ее не поддерживают. Чтобы продвигать функциональную совместимость с более ограниченными текущими вариантами удвоенной скорости передачи данных (DDR), в которых нет поддержки неявной команды предварительной зарядки, некоторые варианты воплощения контроллера памяти могут включать в себя один или более битов в одном или более регистров управления, чтобы сделать возможной выборочную передачу явных команд предварительной зарядки, чтобы поддерживать более ограниченные текущие варианты устройств памяти удвоенной скорости передачи данных (DDR). Кроме того, варианты устройств памяти, которые поддерживают использование неявной команды предварительной зарядки, могут включать в себя один или более битов в одном или более регистров управления или другом запоминающем устройстве, чтобы обеспечить индикацию наличия возможности выхода за пределы текущих вариантов удвоенной скорости передачи данных (DDR) с помощью поддержки неявной команды предварительной зарядки, чтобы позволить идентифицировать присутствие такой возможности.

Фиг.4 является упрощенной блок-схемой варианта воплощения, использующего компьютерную систему. Компьютерная система 400, по меньшей мере, частично состоит из центрального процессора (ЦП) 410, системной логики 420 и устройства 490 памяти. Системная логика 420 соединена с центральным процессором 410 и выполняет различные функции для поддержки центрального процессора 410, в том числе обеспечение центрального процессора 410 доступом к устройству 490 памяти, с которым системная логика 420 также соединена, используя контроллер 470 памяти в системной логике 420. Центральный процессор 410, системная логика 420 и устройство 490 памяти составляют вид ядра для компьютерной системы 400, которая способна к поддержке выполнения машиночитаемых команд центральным процессором 410 и хранению данных и команд в устройстве 490 памяти.

В различных вариантах воплощения центральный процессор 410 может быть любым из множества типов центральных процессоров, в том числе центральным процессором, способным к выполнению, по меньшей мере, части широко известной и используемой системы команд "x86", а в других различных вариантах воплощения может быть более одного центрального процессора. В различных вариантах воплощения устройство 490 памяти может быть любым из множества типов динамической оперативной памяти, в том числе устройством памяти быстрого постраничного режима (FPM), динамическим ОЗУ с увеличенным временем доступности выдачи данных (EDO), память с одинарной скоростью передачи данных (SDR), синхронной динамической оперативной памятью (SDRAM) видов с одинарной скоростью передачи данных (SDR) или с удвоенной скоростью передачи данных (DDR), оперативной памятью различных технологий, использующих интерфейс RAMBUS ™ и т.д., и контроллер 470 памяти обеспечивает логику 420 соответствующим интерфейсом для типа памяти. По меньшей мере, часть ячеек памяти устройства 490 памяти разделена на банки 499a-d, каждый из которых составлен из ячеек памяти, организованных в строки и столбцы в двумерном массиве памяти. Чтобы осуществить доступ к части ячеек памяти в устройстве 490 памяти, к этой части нужно обратиться с помощью контроллера 470 памяти через комбинацию адресов банка, строки и столбца. Поскольку квалифицированные специалисты в данной области техники поймут, что описание единственного устройства памяти 490 с четырьмя банками ячеек памяти, а именно банками 499a-499d, является всего лишь примером системы памяти, которая может быть частью компьютерной системы, и что может использоваться большее количество устройств памяти и/или другое количество банков в устройстве памяти без отступления от сущности и объема данного изобретения, как оно заявлено в дальнейшем.

В некоторых вариантах воплощения системная логика 420 соединена с центральным процессором 410 и обеспечивает для него доступ к запоминающему устройству 460, через которое можно осуществить доступ к данным и/или командам, которые несет носитель 461 данных. Носители 461 данных могут быть любыми из широкого разнообразия типов и технологий, как понимают специалисты в данной области техники, в том числе компакт-диском, предназначенным только для чтения (CD-ROM), или цифровым диском, предназначенным только для чтения (DVD-ROM), магнитной или оптической дискетой, магнитооптическим диском, лентой, полупроводниковой памятью, символами или перфорацией на бумаге или другом материале и т.д. В некоторых вариантах воплощения энергонезависимое устройство 430 памяти соединено с системной логикой 420 (или другой частью компьютерной системы 400) и обеспечивает хранение для начальной последовательности выполняемых команд в то время, когда компьютерная система 400 либо "перезагружается", либо инициализируется (например, когда компьютерная система 400 "включается"), чтобы выполнить задачи, необходимые для подготовки компьютерной системы 400 к нормальному использованию. В некоторых разновидностях таких вариантов воплощения после инициализации или предварительной загрузки компьютерной системы 400 центральный процессор 410 обращается к энергонезависимому устройству 430 памяти, чтобы извлечь команды, которые должны быть выполнены, чтобы подготовить контроллер памяти 470 к нормальному использованию для обеспечения центральному процессору 410 доступа к устройству 490 памяти. Возможно, что эти же самые извлеченные команды выполняются, чтобы подготовить системную логику 420 к нормальному использованию для обеспечения доступа к запоминающему устройству 460 и к любому виду носителей 461 данных, которые могут использоваться запоминающим устройством 460.

В некоторых вариантах воплощения носители 461 данных хранят доступные для машины команды, которые должны быть выполнены центральным процессором 410, чтобы предписать центральному процессору 410 выполнить одну или более проверок устройства 490 памяти, чтобы определить, какого типа устройств динамической оперативной памяти может быть устройство 490 памяти и/или определить, какие функции может поддерживать устройство 490 памяти. Если определено, что устройство 490 памяти может поддерживать использование неявной команды предварительной зарядки, вложенной в передаваемую команду активации строки, как описано выше, то центральному процессору 410 может быть предписано запрограммировать или другим образом сконфигурировать контроллер 470 памяти для использования такой неявной команды предварительной зарядки. В вариантах воплощения, в которых контроллер 470 памяти так запрограммирован, контроллер 470 памяти может осуществлять доступ к запоминающему устройству или содержать запоминающее устройство, такое как буфер 479 доступа к строке, чтобы поддерживать в нем данные относительно состояния различных строк в устройстве 490 памяти. Такие данные, либо сохраненные в отдельном буфере, таком как буфер 479 доступа к строке, либо не сохраненные, могут обеспечить индикацию, какой из банков 499a-d имеет открытые строки, а также адреса этих открытых строк. Контроллер 470 памяти может обратиться к таким данным, чтобы определить, открыта ли строка, к которой производится обращение, в данном одном из банков 499a-d, и если нет, открыта ли уже другая строка в том же самом банке. Если обнаружено, что строка, к которой производится обращение, уже открыта, то доступ может быть выполнен без передачи команды активации строки. Однако, если обнаружено, что строка, к которой производится обращение, не открыта, то передача команды активации строки и прохождение предопределенного минимального промежутка времени должно предшествовать любому обращению, которое должно быть сделано к строке, к которой производится обращение. Если также определено, что в том же самом банке есть другая строка, которая уже открыта, то команда активации строки будет интерпретирована устройством 490 памяти как являющаяся также неявной командой предварительной зарядки, чтобы закрыть другую строку, и предопределенный минимальный промежуток времени будет дольше, чтобы предусмотреть как закрывание другой строки, так и открывание строки, к которой производится обращение.

Фиг.5 является схемой последовательности операций вариантов воплощения. На этапе 510 производится определение относительно того, открыта ли уже строка, к которой производится обращение. Если строка, к которой производится обращение, уже открыта, то на этапе 512 к строке обращаются для чтения, записи и т.д. Однако, если строка, к которой производится обращение, не открыта, то на этапе 520 производится определение относительно того, открыта ли уже другая строка. Если другая строка не открыта, то на этапе 522 передается команда активации строки, чтобы открыть строку, к которой производится обращение, на этапе 524 предоставляется возможность пройти промежутку времени, необходимому для завершения активации строки, к которой производится обращение, и на этапе 512 производится доступ. Однако, если другая строка уже открыта, то на этапе 530 производится определение относительно того, поддерживает ли устройство памяти, имеющее банк, в котором расположены как другая строка, так и строка, к которой производится обращение, использование неявной команды предварительной зарядки. Если устройство памяти поддерживает неявную команду предварительной зарядки, то на этапе 542 команда активации строки с подразумеваемой командой предварительной зарядки передается устройству памяти, на этапе 544 предоставляется возможность пройти промежутку времени, необходимому для завершения предварительной зарядки (закрытия) другой строки, наряду с прохождением на этапе 524 промежутка времени для активации строки, к которой производится обращение, и на этапе 512 производится доступ. Однако, если устройство памяти не поддерживает неявную команду предварительной зарядки, то на этапе 532 передается явная команда предварительной зарядки, чтобы закрыть другую строку, на этапе 534 предоставляется возможность пройти промежутку времени, необходимому для завершения закрытия другой строки, на этапе 522 происходит передача команды активации, чтобы открыть строку, к которой производится обращение, наряду с прохождением на этапе 524 времени, достаточного, чтобы дать возможность произойти активации, и на этапе 512 производится доступ.

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

1. Устройство памяти, которое содержит:

по меньшей мере, один банк, состоящий из ячеек памяти, организованных во множество строк ячеек памяти; и

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

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

3. Устройство памяти по п.1, в котором логическое средство управления программируемо для закрывания другой строки только в ответ на прием явной команды предварительной зарядки.

4. Устройство памяти по п.1, в котором устройство памяти обеспечивает индикацию, которая является читаемой другим устройством через шину памяти, с которой устройство памяти соединено, о способности логического средства управления устройства памяти как открывать конкретную строку, так и закрывать другую строку в ответ на прием команды активации строки для открывания конкретной строки.

5. Устройство памяти по п.4, в котором индикация также обеспечивает описание промежутка времени, требуемого устройством памяти, чтобы закрыть другую строку.

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

7. Устройство управления памятью, которое содержит:

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

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

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

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

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

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

12. Компьютерная система, которая содержит:

процессор;

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

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

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

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

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

16. Способ для управления памятью, содержащий следующие этапы:

определение, открыта или нет конкретная строка в банке ячеек памяти, в котором множество ячеек памяти организовано в строки, в устройстве памяти;

определение, открыта или нет другая строка в банке, если конкретная строка закрыта;

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

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

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

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

19. Способ для управления памятью, содержащий следующие этапы:

прием команды активации строки для открывания конкретной строки в банке ячеек памяти, в котором множество ячеек памяти организовано в строки;

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

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

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

21. Машиночитаемый носитель, содержащий код, который при его выполнении процессором в электронном устройстве предписывает электронному устройству выполнять следующие действия:

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

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

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



 

Похожие патенты:

Изобретение относится к области обработки цифровых данных, в частности, к обработке данных в полупроводниковых запоминающих устройствах (памяти) и к архитектуре памяти, в частности, к устройствам оперативной памяти (RAM), динамической памяти (DRAM), кэш-памяти и т.п.

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

Изобретение относится к вычислительной технике. .

Изобретение относится к технике формирования и обработки радиосигналов. .

Изобретение относится к вычислительной технике и может быть использовано для регенерации динамической памяти ЭВМ. .

Изобретение относится к вычислительной технике и может быть использовано при построении буферных запоминающих устройств. .

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

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

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

Изобретение относится к вычислительной технике и может быть использовано для регенерации динамической памяти ЭВМ. .

Изобретение относится к способу и устройству для динамического хранения критических данных игровой машины путем распределения и освобождения области памяти в игровой машине

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

Изобретение относится к вычислительной технике, а именно к электронной памяти
Наверх