RU2780441C2 - Permanent records for non-volatile memory - Google Patents

Permanent records for non-volatile memory Download PDF

Info

Publication number
RU2780441C2
RU2780441C2 RU2020110130A RU2020110130A RU2780441C2 RU 2780441 C2 RU2780441 C2 RU 2780441C2 RU 2020110130 A RU2020110130 A RU 2020110130A RU 2020110130 A RU2020110130 A RU 2020110130A RU 2780441 C2 RU2780441 C2 RU 2780441C2
Authority
RU
Russia
Prior art keywords
write
persistent
host
nvdimm
permanent
Prior art date
Application number
RU2020110130A
Other languages
Russian (ru)
Other versions
RU2020110130A3 (en
RU2020110130A (en
Inventor
Радж РАМАНУДЖАН
Кулджит Сингх БЭЙНС
Лийонг ВАН
Уэсли КВИН
Original Assignee
Квэлкомм Инкорпорейтед
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US15/706,530 external-priority patent/US11194524B2/en
Application filed by Квэлкомм Инкорпорейтед filed Critical Квэлкомм Инкорпорейтед
Publication of RU2020110130A publication Critical patent/RU2020110130A/en
Publication of RU2020110130A3 publication Critical patent/RU2020110130A3/ru
Application granted granted Critical
Publication of RU2780441C2 publication Critical patent/RU2780441C2/en

Links

Images

Abstract

FIELD: computer technology.
SUBSTANCE: method for performing permanent operations contains: reception by means of a non-volatile dual in-line memory module (hereinafter – NVDIMM) configured to support permanent records of a permanent record command and associated record data from host; performance of a permanent record of record data to non-volatile memory in NVDIMM based on the permanent record command; reception of record identification (hereinafter – WID) associated with the permanent record command from host after successful completion of the permanent record; reception from host of a request for sending a status for a set of permanent records together with associated WID; and reception by means of NVDIMM of a group of two or more permanent record commands with common WID, wherein the last permanent record command of the group has Persist bit set in 1, and the other permanent record commands have corresponding Persist bits set in 0, and provision of an indication on completion of the permanent records for the last permanent record command.
EFFECT: increase in the performance and efficiency of permanent record operations.
30 cl, 8 dwg

Description

Область раскрытияdisclosure area

[0001] Раскрытые аспекты направлены на системы памяти. Более конкретно, примерные аспекты направлены на операции постоянной записи и их протоколы для энергонезависимой памяти.[0001] The disclosed aspects are directed to memory systems. More specifically, exemplary aspects are directed to persistent write operations and their protocols for non-volatile memory.

Предшествующий уровень техникиPrior Art

[0002] Память класса хранилища (SCM), в общем, относится к памяти большой емкости, которая может также иметь высокую производительность. SCM может использоваться в приложениях, таких как серверы или другие системы обработки, причем операционный набор данных для процессора или центрального блока обработки может храниться в SCM, в то время как полный набор данных может храниться в резервной памяти или накопителе на жестком диске (HDD). Важным ожиданием от SCM является постоянство записей, что означает, что информация, записанная в SCM, не должна теряться, если, скажем, сервер выйдет из строя или потеряет питание. Традиционная энергонезависимая память, которая может удовлетворять таким ожиданиям касательно постоянства, не может, однако, быть способна удовлетворять метрикам емкости и производительности, которые могут быть желательны для SCM. Поэтому, технологии, такие как память на фазовых переходах (PCM), магнитная память с произвольным доступом с переносом спинового момента (STT MRAM), резистивная RAM (ReRAM) и т.д., становятся более популярными в реализациях SCM.[0002] Storage class memory (SCM) generally refers to a large capacity memory that can also have high performance. The SCM may be used in applications such as servers or other processing systems, wherein the operating data set for a processor or central processing unit may be stored in the SCM while the complete data set may be stored in a back-up memory or hard disk drive (HDD). An important expectation of the SCM is write persistence, which means that information written to the SCM should not be lost if, say, the server crashes or loses power. Traditional non-volatile memory that can meet such persistence expectations may not, however, be able to meet the capacity and performance metrics that SCMs may desire. Therefore, technologies such as phase change memory (PCM), spin moment transfer magnetic random access memory (STT MRAM), resistive RAM (ReRAM), etc., are becoming more popular in SCM implementations.

[0003] При использовании SCM, приложение может использовать операции записи в память для обновления соответствующей постоянной памяти. Чтобы запись в SCM была постоянной, приложение, запрашивающее операцию записи, может ожидать явного подтверждения, что операция записи достигла постоянной памяти. Напротив, операции записи в непостоянную память (такую как динамическая память с произвольным доступом (DRAM) или другую энергозависимую память) традиционно считаются завершенными или проведенными, с точки зрения приложения, когда операция записи и ассоциированные данные были перенесены в память, и не требуется явного подтверждения, что данные были записаны. Таким образом, для приложений, которые используют SCM с ожиданием постоянства, желательны методы с высокой производительностью, которые обеспечивают явное подтверждение операций записи в постоянную память, причем методы с высокой производительностью также совместимы с разными размерами данных, чтобы максимизировать эффективность.[0003] When using the SCM, the application can use memory write operations to update the corresponding persistent memory. For a write to the SCM to be persistent, an application requesting a write operation can wait for explicit confirmation that the write operation has reached persistent memory. In contrast, write operations to non-persistent memory (such as dynamic random access memory (DRAM) or other volatile memory) are traditionally considered complete or done, from the point of view of the application, when the write operation and associated data have been transferred to memory, and no explicit confirmation is required. that the data has been written. Thus, for applications that use SCM with persistence expectation, high performance methods are desirable that provide explicit acknowledgment of writes to persistent memory, and high performance methods are also compatible with different data sizes to maximize efficiency.

[0004] Существуют два типа традиционных схем для операций постоянной памяти. Первая схема предполагает, что вся система памяти (например, двусторонний модуль памяти (DIMM), содержащий последовательность интегральных схем DRAM, как известно в данной области техники) выполнена с энергетической поддержкой. В этом случае, операция записи в промежуточный буфер на принимающем конце DIMM может быть достаточной для удовлетворения ожиданий постоянства. В одной реализации, когда операция записи по интерфейсу канала между приложением, запрашивающим операцию записи, и DIMM успешно завершена, операция записи может рассматриваться как постоянная. Однако реализация таких схем может предусматривать использование устройств накопления энергии, таких как супер-конденсаторы или батареи, которые обеспечивают питание/зарядку для сброса промежуточных буферов на DIMM, когда обнаружен сбой питания. Но такие устройства накопления энергии могут не быть доступны на всех DIMM, и кроме того, даже если доступны, они связаны с высокими затратами.[0004] There are two types of conventional schemes for persistent memory operations. The first scheme assumes that the entire memory system (eg, a dual-sided memory module (DIMM) containing a string of DRAM integrated circuits, as is known in the art) is energy supported. In this case, a write operation to an intermediate buffer at the receiving end of the DIMM may be sufficient to satisfy persistence expectations. In one implementation, when a write operation on the channel interface between the application requesting the write operation and the DIMM is successfully completed, the write operation may be considered to be permanent. However, the implementation of such circuits may involve the use of energy storage devices such as supercapacitors or batteries that provide power/charge to reset intermediate buffers on the DIMM when a power failure is detected. But such power storage devices may not be available on all DIMMs, and furthermore, even if available, they are associated with high costs.

[0005] Во второй схеме, все предыдущие операции записи могут сбрасываться в постоянную память, в то время как приложение ожидает статуса завершения от DIMM. Однако эта схема может повлечь значительную стоимость выполнения. Например, в случаях, в которых приложение может потребовать постоянных записей мелкой гранулярности для DIMM, но могут иметься другие одновременные, но независимые операции записи, выполняющие потоковый перенос в DIMM, сбрасывание всех предыдущих операций записи в постоянную память при ожидании статуса завершения может замедлять на только запросы постоянной записи, но и одновременные операции записи.[0005] In the second scheme, all previous write operations may be flushed to read-only memory while the application is waiting for the completion status from the DIMM. However, this scheme can incur significant implementation costs. For example, in cases where an application may require constant fine-grained writes to a DIMM, but there may be other concurrent but independent writes streaming to the DIMM, flushing all previous read-only writes while waiting for the completion status may only slow down persistent write requests, but also concurrent write operations.

[0006] Соответственно, в данной области техники существует потребность в операциях постоянной записи с высокой производительностью и высокой эффективностью, которые поддерживают разные гранулярности или размеры постоянных записей, избегая вышеупомянутых недостатков традиционных подходов.[0006] Accordingly, there is a need in the art for high performance, high efficiency persistent write operations that support different granularities or sizes of persistent records, avoiding the aforementioned disadvantages of conventional approaches.

Краткое описание сущности изобретенияBrief description of the essence of the invention

[0007] Примерные аспекты изобретения включают в себя системы и способы для постоянных операций. Система памяти, после приема команды постоянной записи и ассоциированных данных записи от хоста, выполняет постоянную запись данных записи в энергонезависимую память в системе памяти на основе команды постоянной записи. Система памяти может также принимать идентификацию записи (WID), ассоциированную с командой постоянной записи, от хоста и обеспечивать, после успешного завершения постоянной записи, указание завершения постоянной записи вместе с ассоциированной WID на хост.[0007] Exemplary aspects of the invention include systems and methods for ongoing operations. The memory system, after receiving the persistent write command and the associated write data from the host, permanently writes the write data to the non-volatile memory in the memory system based on the persistent write command. The memory system may also receive a write identification (WID) associated with the permanent write command from the host and provide, upon successful completion of the permanent write, an indication of completion of the permanent write along with the associated WID to the host.

[0008] Например, примерный аспект направлен на способ выполнения постоянных операций, способ содержит прием, в системе памяти, команды постоянной записи и ассоциированных данных записи от хоста, и выполнение постоянной записи данных записи в энергонезависимую память в системе памяти на основе команды постоянной записи.[0008] For example, an exemplary aspect is directed to a method for performing persistent operations, the method comprising receiving, at the memory system, a persistent write command and associated write data from a host, and performing a persistent write of the write data to non-volatile memory in the memory system based on the persistent write command.

[0009] Другой примерный аспект направлен на способ выполнения постоянных операций, способ содержит обеспечение, от хоста в систему памяти, команды постоянной записи и ассоциированных данных записи, причем команда постоянной записи указывает системе памяти выполнить постоянную запись данных записи в энергонезависимую память.[0009] Another exemplary aspect is directed to a method for performing persistent operations, the method comprising providing, from a host to a memory system, a persistent write command and associated write data, wherein the persistent write command instructs the memory system to permanently write the write data to non-volatile memory.

[0010] Другой примерный аспект направлен на устройство, содержащее систему памяти, сконфигурированную, чтобы принимать команду постоянной записи и ассоциированные данные записи от хоста и выполнять постоянную запись данных записи в энергонезависимую память в системе памяти на основе команды постоянной записи.[0010] Another exemplary aspect is directed to an apparatus comprising a memory system configured to receive a persistent write command and associated write data from a host, and permanently write the write data to non-volatile memory in the memory system based on the persistent write command.

[0011] Другой примерный аспект направлен на устройство, содержащее хост, сконфигурированный, чтобы обеспечивать команду постоянной записи и ассоциированные данные записи в систему памяти, причем команда постоянной записи указывает системе памяти выполнить постоянную запись данных записи в энергонезависимую память.[0011] Another exemplary aspect is directed to an apparatus comprising a host configured to provide a persistent write command and associated write data to a memory system, wherein the persistent write command instructs the memory system to permanently write the write data to non-volatile memory.

[0012] Другой примерный аспект направлен на устройство, содержащее средство для хранения данных, содержащее средство для приема команды постоянной записи и ассоциированных данных записи от хоста и средство для выполнения постоянной записи данных записи в энергонезависимую память в средстве для хранения, на основе команды постоянной записи.[0012] Another exemplary aspect is directed to an apparatus comprising means for storing data, comprising means for receiving a persistent write command and associated write data from a host, and means for performing persistent writing of the write data to non-volatile memory in the storage means, based on the persistent write command. .

[0013] Другой примерный аспект направлен на устройство, содержащее средство для обработки, содержащее средство для обеспечения команды постоянной записи и ассоциированных данных записи в систему памяти, причем команда постоянной записи указывает системе памяти выполнить постоянную запись данных записи в энергонезависимую память.[0013] Another exemplary aspect is directed to an apparatus comprising means for processing comprising means for providing a persistent write command and associated write data to a memory system, wherein the persistent write command instructs the memory system to permanently write the write data to non-volatile memory.

[0014] Другой примерный аспект направлен на Долговременный считываемый компьютером носитель хранения, содержащий код, который, при исполнении процессором, побуждает процессор выполнять постоянные операции, долговременный считываемый компьютером носитель хранения содержит код для приема, в системе памяти, команды постоянной записи и ассоциированных данных записи от хоста, и код для выполнения постоянной записи данных записи в энергонезависимую память в системе памяти на основе команды постоянной записи.[0014] Another exemplary aspect is directed to a non-volatile computer-readable storage medium comprising code that, when executed by a processor, causes the processor to perform persistent operations, the non-volatile computer-readable storage medium comprises code for receiving, in a memory system, a permanent write command and associated write data from the host, and code for permanently writing the recording data to the non-volatile memory in the memory system based on the persistent write command.

[0015] Другой примерный аспект направлен на Долговременный считываемый компьютером носитель хранения, содержащий код, который, при исполнении процессором, побуждает процессор выполнять постоянные операции, долговременный считываемый компьютером носитель хранения содержит код для обеспечения, от хоста в систему памяти, команды постоянной записи и ассоциированных данных записи, причем команда постоянной записи указывает системе памяти выполнить постоянную запись данных записи в энергонезависимую память.[0015] Another exemplary aspect is directed to a non-volatile computer-readable storage medium comprising code that, when executed by a processor, causes the processor to perform persistent operations, the non-volatile computer-readable storage medium comprises code to provide, from the host to the memory system, a persistent write instruction and associated the write data, wherein the permanent write command instructs the memory system to permanently write the write data to the non-volatile memory.

Краткое описание чертежейBrief description of the drawings

[0016] Прилагаемые чертежи представлены для помощи в описании аспектов изобретения и предоставлены только для иллюстрации аспектов, а не для их ограничения.[0016] The accompanying drawings are presented to assist in describing aspects of the invention and are provided to illustrate the aspects only and not to limit them.

[0017] Фиг. 1 иллюстрирует систему обработки в соответствии с аспектами настоящего раскрытия[0017] FIG. 1 illustrates a processing system in accordance with aspects of the present disclosure.

[0018] Фиг. 2A-C иллюстрируют транзакции для обработки постоянных записей, в соответствии с различными аспектами настоящего раскрытия.[0018] FIG. 2A-C illustrate transactions for processing persistent records, in accordance with various aspects of the present disclosure.

[0019] Фиг. 3 иллюстрирует примерное кодирование для команды постоянной записи в соответствии с настоящим раскрытием.[0019] FIG. 3 illustrates an exemplary coding for a persistent write command in accordance with the present disclosure.

[0020] Фиг. 4A-B иллюстрируют последовательности событий касательно примерных способов выполнения постоянных записей, в соответствии с аспектами настоящего раскрытия.[0020] FIG. 4A-B illustrate sequences of events regarding exemplary methods for performing persistent entries, in accordance with aspects of the present disclosure.

[0021] Фиг. 5 изображает примерное вычислительное устройство, в котором предпочтительно может быть использован аспект раскрытия.[0021] FIG. 5 depicts an exemplary computing device in which an aspect of the disclosure may advantageously be used.

Подробное описаниеDetailed description

[0022] Аспекты изобретения раскрыты в последующем описании и связанных чертежах, направленных на конкретные аспекты изобретения. Альтернативные аспекты могут разрабатываться без отклонения от объема изобретения. Дополнительно, хорошо известные элементы изобретения не будут описываться подробно или будут опущены, чтобы не затенять релевантные детали изобретения.[0022] Aspects of the invention are disclosed in the following description and associated drawings, directed to specific aspects of the invention. Alternative aspects may be developed without departing from the scope of the invention. Additionally, well-known elements of the invention will not be described in detail or will be omitted so as not to obscure relevant details of the invention.

[0023] Слово “примерный” используется здесь для обозначения “служащего в качестве примера, образца или иллюстрации”. Любой аспект, описанный здесь как “примерный”, не обязательно должен пониматься как предпочтительный или преимущественный относительно других аспектов. Подобным образом, термин “аспекты изобретения” не требует, чтобы все аспекты изобретения включали в себя обсуждаемый признак, преимущество или режим операции.[0023] The word “exemplary” is used herein to mean “serving as an example, exemplary, or illustrative”. Any aspect described herein as "exemplary" is not necessarily to be understood as being preferred or advantageous over other aspects. Similarly, the term “aspects of the invention” does not require that all aspects of the invention include the feature, advantage, or mode of operation discussed.

[0024] Терминология, используемая здесь, имеет целью только описывать конкретные аспекты и не предназначена, чтобы ограничивать аспекты изобретения. Как использовано здесь, формы единственного числа предназначены, чтобы включать в себя также и формы множественного числа, если контекст явно не указывает иное. Также должно быть понятно, что термины "содержит", "содержащий", "включает в себя" и/или "включающий в себя", при использовании здесь, определяют наличие указанных признаков, целых чисел, этапов, операций, элементов и/или компонентов, но не исключают наличия или добавления одного или нескольких других признаков, целых чисел, этапов, операций, элементов, компонентов и/или их групп.[0024] The terminology used here is only intended to describe specific aspects and is not intended to limit aspects of the invention. As used here, the singular forms are intended to include the plural forms as well, unless the context clearly indicates otherwise. It should also be understood that the terms "comprises", "comprising", "includes" and/or "comprising", when used here, define the presence of the indicated features, integers, steps, operations, elements and/or components. , but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components and/or groups thereof.

[0025] Дополнительно, многие аспекты описаны в терминах последовательностей действий, которые должны выполняться, например, элементами вычислительного устройства. Будет понятно, что различные действия, описанные здесь, могут выполняться конкретными схемами (например, специализированными интегральными схемами (ASIC)), программными инструкциями, исполняемыми одним или несколькими процессорами, или комбинацией того и другого. Дополнительно, эти последовательности действий, описанные здесь, могут рассматриваться как воплощаемые полностью в любой форме считываемого компьютером носителя хранения, имеющего сохраненный в нем соответствующий набор компьютерных инструкций, которые, при исполнении, побуждали бы ассоциированный процессор выполнять функциональность, описанную здесь. Таким образом, различные аспекты изобретения могут быть воплощены во множестве разных форм, все из которых, как предполагается, входят в объем заявленного предмета. К тому же, для каждого из аспектов, описанных здесь, соответствующая форма любых таких аспектов может быть описана, например, как “логика, сконфигурированная, чтобы” выполнять описанное действие.[0025] Additionally, many aspects are described in terms of sequences of actions to be performed, for example, by elements of a computing device. It will be understood that the various actions described herein may be performed by specific circuits (eg, application specific integrated circuits (ASICs)), software instructions executed by one or more processors, or a combination of both. Additionally, these sequences of actions described herein may be considered to be embodied entirely in any form of a computer-readable storage medium having stored therein an appropriate set of computer instructions that, when executed, would cause an associated processor to perform the functionality described herein. Thus, various aspects of the invention may be embodied in a variety of different forms, all of which are intended to be within the scope of the claimed subject matter. In addition, for each of the aspects described here, the corresponding form of any such aspects can be described, for example, as "logic configured to" perform the described action.

[0026] Примерные аспекты настоящего раскрытия направлены на эффективные и высокопроизводительные операции постоянной записи для энергонезависимой памяти, такой как энергонезависимая DIMM (или NVDIMM). Соответственно, постоянная NVDIMM или NVDIMM-P раскрыта в качестве одной примерной системы памяти, которая поддерживает операции постоянной записи в соответствии с примерными аспектами. Устройство хоста может быть сконфигурировано, чтобы обеспечивать примерные запросы/команды, например, для постоянных операций, и соответствующие данные на примерную систему памяти, и система памяти может быть сконфигурирована, чтобы выполнять запрошенные операции постоянной записи и обеспечивать соответствующую сигнализацию на устройство хоста, как будет рассмотрено более подробно в следующих разделах.[0026] Exemplary aspects of the present disclosure are directed to efficient and high performance persistent write operations for non-volatile memory, such as a non-volatile DIMM (or NVDIMM). Accordingly, a persistent NVDIMM or NVDIMM-P is disclosed as one exemplary memory system that supports persistent write operations in accordance with the exemplary aspects. The host device may be configured to provide exemplary requests/commands for, for example, persistent operations and corresponding data to the exemplary storage system, and the storage system may be configured to perform the requested persistent write operations and provide appropriate signaling to the host device, as will discussed in more detail in the following sections.

[0027] Со ссылкой теперь на фиг. 1, показана примерная система 100 обработки, содержащая хост 120 и систему 130 памяти. Хост 120 может содержать один или несколько элементов обработки, таких как универсальный процессор (CPU), цифровой сигнальный процессор (DSP), мультимедийный процессор, системный процессор, графический процессор (GPU), модулятор-демодулятор (модем), процессор приложений и т.д., даже хотя они не были проиллюстрированы явно. Эти элементы обработки могут выполнять запросы на доступ к системе 130 памяти. Контроллер памяти (не показан) может находиться в хосте 120 для управления этими запросами на доступ.[0027] With reference now to FIG. 1, an exemplary processing system 100 is shown, including a host 120 and a memory system 130. Host 120 may include one or more processing elements such as a general purpose processor (CPU), digital signal processor (DSP), media processor, system processor, graphics processing unit (GPU), modulator/demodulator (modem), application processor, etc. ., even though they have not been explicitly illustrated. These processing elements may make requests to access the memory system 130 . A memory controller (not shown) may reside in host 120 to manage these access requests.

[0028] Система 130 памяти может представлять собой постоянную память, например, NVDIMM-P в соответствии с настоящим раскрытием. Система 130 памяти показана как включающая в себя блок 132 ввода/вывода (I/O) и банк 134 памяти. Банк 134 памяти может включать в себя флэш-память, DRAM и т.д.[0028] The memory system 130 may be read-only memory, such as an NVDIMM-P in accordance with the present disclosure. The memory system 130 is shown as including an input/output (I/O) block 132 and a memory bank 134 . Memory bank 134 may include flash memory, DRAM, and so on.

[0029] Механизм 110 связи показан между хостом 120 и системой 130 памяти, с шиной 112 данных (DQ), шиной 114 команд и адресов (CA) и отдельно идентифицированной шиной ответа 116. Хост 120 может быть способен предоставлять команды и связанные адреса для запросов доступа к памяти посредством CA 114 и отправлять/принимать данные посредством DQ 112 (показана как двунаправленная шина). Шина ответа 116, хотя показана отдельно, может быть сконфигурирована как часть CA 114 и может быть реализована как двунаправленная шина в некоторых случаях. Шина ответа 116 может использоваться, чтобы обеспечивать информацию, такую как статус постоянных записей, в некоторых примерных аспектах. Различные другие шины/провода могут также присутствовать в механизме 110 связи, хотя они не идентифицированы отдельно. В некоторых примерах, система 130 памяти может использовать отдельные шины для детерминированных и недетерминированных ответов, что будет пояснено дополнительно ниже.[0029] Communication mechanism 110 is shown between host 120 and memory system 130, with a data (DQ) bus 112, a command and address (CA) bus 114, and a separately identified response bus 116. Host 120 may be capable of providing commands and associated addresses for requests memory access via CA 114 and send/receive data via DQ 112 (shown as a bi-directional bus). Response bus 116, although shown separately, may be configured as part of CA 114 and may be implemented as a bi-directional bus in some cases. Response bus 116 may be used to provide information, such as the status of persistent entries, in some exemplary aspects. Various other buses/wires may also be present in the communication mechanism 110, although they are not identified separately. In some examples, memory system 130 may use separate buses for deterministic and non-deterministic responses, as will be explained further below.

[0030] В реализации, в которой система 130 памяти может быть сконфигурирована как NVDIMM, с дополнительной поддержкой конфигурации постоянной NVDIMM (NVDIMM-P) для по меньшей мере некоторых операций, хост 120 может быть способен обеспечивать одну или несколько из следующих примерных команд на систему 130 памяти, например, на CA 114:[0030] In an implementation in which memory system 130 may be configured as an NVDIMM, with additional support for persistent NVDIMM (NVDIMM-P) configuration for at least some operations, host 120 may be capable of providing one or more of the following exemplary commands to the system 130 memory, e.g. on CA 114:

- команда READ (например, с длиной кодирования, равной кратным значениям 64 B), вместе с идентификацией считывания (RID);- a READ command (for example, with an encoding length equal to multiples of 64 B), together with a read identification (RID);

- команда WRITE (например, традиционная команда записи);- a WRITE command (for example, a traditional write command);

- команда P-WRITE (например, команда постоянной записи, вместе с идентификацией записи (WID) для постоянных записей, вместе с постоянным (persist) битом, который указывает, когда записям с данной WID необходим сигнал завершения постоянной записи (W_PER) (например, обеспечиваемый по шине ответа 116) от системы 130 памяти);- a P-WRITE command (e.g. a permanent write command, together with a write identification (WID) for persistent writes, together with a persistent bit that indicates when records with a given WID need a permanent write complete (W_PER) signal (e.g., provided over the response bus 116) from the memory system 130);

- команда ADRx: расширенная адресация;- ADRx command: extended addressing;

- команда SEND (например, команда для системы 130 памяти, чтобы обеспечивать статус запроса на считывание данных);- a SEND command (for example, a command for the memory system 130 to provide the status of a data read request);

- команда SEND_Status (например, команда для системы 130 памяти, чтобы обеспечивать вывод отсчета ошибок, WID и т.д., относящихся к постоянным операциям, от системы 130 памяти);- command SEND_Status (for example, a command for the system 130 memory to ensure the output of the error count, WID, etc. related to permanent operations, from the system 130 memory);

- команда FLUSH (чтобы сбросить предыдущие записи, подлежащие внесению в постоянную память);- FLUSH command (to reset previous records to be entered into permanent memory);

- NOP (пустой оператор);- NOP (empty statement);

- команда опережающего считывания (например, используемая для считывания кэшированной памяти); и- a read-ahead command (eg, used to read cached memory); and

- другие команды кэширования, которые могут быть специфическими для реализации.- other caching commands that may be implementation specific.

[0031] Как упомянуто ранее, отдельные шины могут быть обеспечены в механизме 110 связи для детерминированных и недетерминированных ответов от системы 130 памяти на хост 120. Детерминированные ответы включают в себя метаданные, информацию об ошибках/четности, такую как кодирование с исправлением ошибок (ECC) касательно считанных данных, отправленных по DQ 112 на хост 120, и т.д., которые могут мультиплексироваться на шинах, исходящих от контактов, соединенных с I/O 132, таких как контакты битов проверки.[0031] As mentioned earlier, separate buses may be provided in communication engine 110 for deterministic and non-deterministic responses from memory system 130 to host 120. Deterministic responses include metadata, error/parity information such as error correction coding (ECC ) regarding read data sent over DQ 112 to host 120, etc., which may be multiplexed on buses originating from pins connected to I/O 132, such as check bit pins.

[0032] Среди битов ECC, могут иметься, например, биты ECC носителей, специфические для реализаций системы 130 памяти (например, как NVDIMM), и специфические для канала биты ECC в DQ 112, которые могут быть стандартизированы для обеспечения возможности взаимной совместимости по различным реализациям.[0032] Among the ECC bits, there may be, for example, media ECC bits specific to memory system 130 implementations (such as NVDIMM), and channel-specific ECC bits in DQ 112, which can be standardized to allow interoperability across various implementations.

[0033] Биты метаданных могут включать в себя задержанные RID для запросов на считывание, отправленных не по порядку программы (причем, для операций по порядку, RID может быть установлена в статус “безразлично”). Биты метаданных могут также включать в себя разрешение записи (WC), которое относится к неиспользованной квоте для операций записи, распределенных по определенным хостам или элементам обработки хоста 120. Биты метаданных могут дополнительно включать в себя биты “отравления” (poisoning) данных для данных от пользовательского оборудования, как известно в данной области техники, и другие определенные пользователем биты.[0033] The metadata bits may include delayed RIDs for read requests sent out of program order (and, for in-order operations, the RID may be set to don't care). The metadata bits may also include write permission (WC), which refers to the unused quota for write operations allocated to certain hosts or processing elements of host 120. The metadata bits may further include data poisoning bits for data from user equipment, as is known in the art, and other user-defined bits.

[0034] Недетерминированные ответы в соответствии с настоящим раскрытием могут относиться к постоянным операциям и могут отправляться через выделенную сигнализацию, такую как ответ 116 от системы 130 памяти на хост 120, и могут указывать следующее:[0034] Non-deterministic responses in accordance with the present disclosure may relate to persistent operations and may be sent via dedicated signaling, such as response 116 from memory system 130 to host 120, and may indicate the following:

- R_RDY: сигнал от системы 130 памяти на хост 120 для указания, что считанные данные доступны;- R_RDY: signal from memory system 130 to host 120 to indicate that read data is available;

- Wr_Per: сигнал от системы 130 памяти на хост 120 для указания, что постоянная запись завершилась; и- Wr_Per: signal from the memory system 130 to the host 120 to indicate that the persistent write has ended; and

- ERROR: сигнал от системы 130 памяти на хост 120 для указания условий ошибки, таких как проверка CRC, нарушение разрешения (кредита), превышение лимита времени носителей и т.д.- ERROR: Signal from memory system 130 to host 120 to indicate error conditions such as CRC checking, permission (credit) violation, media timeout, etc.

[0035] Для реализации системы 130 памяти как NVDIMM-P, следующие предусмотренные протоколом контакты могут быть, например, определены в I/O 132. С использованием широтно-импульсной модуляции, могут быть реализованы следующие конфигурации контактов и сигналов ответа. Например, в реализации удвоенной скорости 5 передачи данных (DDR5) NVDIMM-P, один провод, маркированный как RSP_n (один выделен на под-канал), может использоваться, чтобы обеспечивать следующую сигнализацию: 2 тактовых импульса низких для R_RDY, 4 низких тактовых импульса для W_PER и 6 низких тактовых импульсов для MESSAGE. За каждым низким импульсом могут следовать по меньшей мере 2 высоких тактовых импульса. Если необходим отдельный сигнал ERROR, то он может определяться как 8 низких тактовых импульсов.[0035] To implement the memory system 130 as NVDIMM-P, the following protocol pins can be defined in I/O 132, for example. Using pulse width modulation, the following pin and response signal configurations can be implemented. For example, in a Double Data Rate 5 (DDR5) NVDIMM-P implementation, one wire labeled RSP_n (one dedicated per sub-channel) can be used to provide the following signaling: 2 clock low for R_RDY, 4 clock low for R_RDY for W_PER and 6 low clocks for MESSAGE. Each low pulse may be followed by at least 2 high clock pulses. If a separate ERROR signal is needed, it can be defined as 8 low clock pulses.

[0036] Для реализации DDR4: два контакта могут использоваться, чтобы решать проблемы производительности с одним контактом (ODT1 и CKE1), причем ODT1 представляет ширину 2 низких тактовых импульсов для R_RDY и 4 низких тактовых импульсов для MESSAGE, и CKE1 представляет 2 низких тактовых импульса для W_PER. За каждым низким импульсом могут следовать по меньшей мере 2 высоких тактовых импульса, и если необходим отдельный сигнал ERROR, то он может определяться как 6 низких тактовых импульсов на ODT1.[0036] For DDR4 implementation: two pins can be used to solve single pin performance issues (ODT1 and CKE1), where ODT1 represents 2 low clock width for R_RDY and 4 low clock for MESSAGE, and CKE1 represents 2 low clock width for W_PER. Each low pulse can be followed by at least 2 high clocks, and if a separate ERROR signal is needed, it can be defined as 6 low clocks on ODT1.

[0037] В примерных реализациях постоянных записей, подходящие комбинации аппаратных средств, программного обеспечения, прошивки и т.д. (например, приложений, драйверов и т.д.) могут быть сконфигурированы, чтобы обеспечивать возможность предоставления уведомлений на хост 120 от системы 130 памяти, когда один или несколько запросов на запись от хоста 120 на систему 130 памяти достигают постоянства. Эти уведомления могут быть специфическими для реализации, как объясняется ниже.[0037] In exemplary implementations of persistent entries, suitable combinations of hardware, software, firmware, etc. (eg, applications, drivers, etc.) may be configured to allow notifications to be provided to host 120 from storage system 130 when one or more write requests from host 120 to storage system 130 reach persistence. These notifications may be implementation specific, as explained below.

[0038] Когда данные, подлежащие записи для операции записи, достигают защищенного от перебоя питания буфера на контроллере носителя (например, защищенной от перебоя питания памяти системы 130 памяти), операция записи может рассматриваться постоянной во время нормальных операций. Однако для определенных нечастых случаев или когда буферы контроллера носителя не защищены от перебоя питания, программное обеспечение будет гарантировать, что записи от начала до конца введены в носитель NVM.[0038] When the data to be written for a write operation reaches the power-failure buffer on the media controller (eg, the fail-safe memory of the memory system 130), the write operation may be considered persistent during normal operations. However, for certain infrequent cases, or when the media controller's buffers are not protected from power failure, the software will ensure that the writes are entered end-to-end into the NVM media.

[0039] Для реализации системы 130 памяти как NVDIMM-P, DIMM с энергетической поддержкой используют конфигурации, в которых вышеупомянутые буферы защищены от перебоя питания, что означает, что команда записи (Write) NVDIMM-P может использоваться, даже когда требуется постоянство для нормальных случаев. Дополнительно, команда сброса (Flush) NVDIMM-P, как определено здесь, может использоваться, чтобы сбрасывать все записи в буферах контроллера носителя в энергонезависимую память. В случае команды сброса, только записи, которые возникли до сброса, гарантируются как созданные постоянными для энергонезависимой памяти. Реализованные в программном обеспечении команды, такие как подходящие барьерные операции, могут использоваться после последней записи и перед выдачей команды сброса для обеспечения того, что поддерживается корректный порядок записей (например, когда хост 120 может быть сконфигурирован, чтобы отправлять запросы на постоянную запись не в порядке программы).[0039] To implement the memory system 130 as an NVDIMM-P, power backed DIMMs use configurations in which the aforementioned buffers are protected from power failure, which means that the NVDIMM-P Write command can be used even when persistence is required for normal cases. Additionally, the NVDIMM-P Flush command, as defined herein, can be used to flush all writes in the media controller's buffers to non-volatile memory. In the case of a reset command, only entries that occurred prior to the reset are guaranteed to be made permanent for non-volatile memory. Software-implemented commands, such as appropriate barrier operations, can be used after the last write and before issuing a reset command to ensure that the correct order of the writes is maintained (e.g., when host 120 can be configured to send persistent write requests out of order programs).

[0040] Хотя DIMM без энергетической поддержки могут использоваться менее часто, чем DIMM с энергетической поддержкой, обсуждаемые выше, команда постоянной записи (Persistent Write) NVDIMM-P может использоваться, когда постоянство требуется также для DIMM без энергетической поддержки. Контроллер памяти хоста 120, как упомянуто ранее, может быть сконфигурирован, чтобы определять, когда следует выдать команду постоянной записи. В этом случае, ожидается, что система 130 памяти обеспечит явное уведомление, когда постоянная запись завершена, как будет обсуждено со ссылкой на фиг. 2A. Дополнительно, команда сброса NVDIMM-P может также использоваться, как ранее, чтобы сбрасывать все записи (даже непостоянные записи) в энергонезависимую память.[0040] Although non-power-backed DIMMs may be used less frequently than the power-backed DIMMs discussed above, the NVDIMM-P Persistent Write command may be used when persistence is also required for non-power-backed DIMMs. Host memory controller 120, as previously mentioned, may be configured to determine when to issue a permanent write command. In this case, memory system 130 is expected to provide explicit notification when persistent recording is completed, as will be discussed with reference to FIG. 2A. Additionally, the NVDIMM-P reset command can also be used, as before, to flush all writes (even non-persistent writes) to non-volatile memory.

[0041] Со ссылкой теперь на фиг. 2A, показан примерный набор транзакций между хостом 120 и системой 130 памяти для иллюстрации аспектов команды постоянной записи. Существуют некоторые признаки примерной команды постоянной записи (Wr_Per) (или просто, “постоянной записи”), которые могут быть общими для вышеописанной команды считывания (Read) от хоста 120. Они включают в себя общую идентификацию записи (WID), которая может представлять собой многобитовый идентификатор, чтобы идентифицировать инструкции, специфические для записи. Показан примерный набор WID 210, из которых каждая может быть до 16 битов шириной, что включает в себя один действительный бит (Valid) “Vld” (соответственно, до 31 WID могут быть представлены в 64-байтном пакете команд, отправляемом на CA 114, например). Команда постоянной записи может также иметь зарезервированное поле в кодировании WID для возвратов статуса команды сброса, что будет дополнительно объяснено в следующих разделах.[0041] With reference now to FIG. 2A, an exemplary set of transactions between host 120 and storage system 130 is shown to illustrate aspects of a persistent write command. There are some features of an exemplary write (Wr_Per) command (or simply, "write permanent") that may be common to the Read command from host 120 described above. These include a common write identification (WID), which may be multi-bit identifier to identify instructions specific to the entry. An exemplary set of WIDs 210 is shown, of which each can be up to 16 bits wide, which includes one valid bit (Valid) “Vld” (correspondingly, up to 31 WIDs can be represented in a 64-byte command packet sent to CA 114, for example). The permanent write command may also have a reserved field in the WID encoding for reset command status returns, which will be further explained in the following sections.

[0042] В одном аспекте, хост 120 может быть сконфигурирован, чтобы выдавать постоянную запись, только когда хост 120 имеет доступными ассоциированные разрешения постоянной записи. Разрешения постоянной записи (аналогично разрешениям считывания, известным в данной области техники) могут определяться во время конфигурации и администрироваться хостом 120 и могут отражать число ожидающих выполнения постоянных записей, которые разрешено выдавать хосту 120.[0042] In one aspect, host 120 may be configured to issue a permanent entry only when host 120 has associated permanent entry permissions available. Persistent write permissions (similar to read permissions known in the art) may be determined at configuration time and administered by host 120 and may reflect the number of pending persistent writes that host 120 is allowed to issue.

[0043] После выдачи, хост 120 может быть сконфигурирован, чтобы отслеживать ожидающие выполнения постоянные записи на основе их соответственных WID 210. На фиг. 2A (со ссылкой также на фиг. 1), показаны две постоянные записи (P-Write 1 с первым адресом и WID, и P-Write 2 со вторым адресом и WID), обозначенные как 202a и 204a, выданные от хоста 120 на систему 130 памяти по CA 114, вместе с соответственными данными, данными записи 202b и данными записи 204b по DQ 112, например.[0043] Once issued, host 120 may be configured to keep track of pending persistent entries based on their respective WIDs 210. FIG. 2A (referring also to FIG. 1) shows two persistent writes (P-Write 1 with first address and WID, and P-Write 2 with second address and WID), labeled 202a and 204a, issued from host 120 to the system. 130 memory over CA 114, along with the respective data, write data 202b and write data 204b over DQ 112, for example.

[0044] Система 130 памяти сконфигурирована, чтобы выдавать отклик “Wr_Per” по шине ответа 116, для конкретной постоянной записи, после того как все данные для этой постоянной записи записаны в энергонезависимую память в системе 130 памяти. Wr_Per 202c и Wr_Per 204c показаны для соответственных постоянных записей 202a и 204a. Однако Wr_Per 202c и Wr_Per 204c показаны как отправляемые в порядке, который отличается от порядка, в котором постоянные записи 202a и 204a были приняты системой 130 памяти, чтобы проиллюстрировать, что ответы не должны находиться в программном порядке или в порядке, в которым запросы на постоянную запись принимаются от хоста 120. В одном аспекте, система 130 памяти может утверждать сигнал “Req” по шине ответа 116 вместе с подходящим кодированием для сообщения “Write_Rdy” для ответов Wr_Per.[0044] The memory system 130 is configured to issue a “Wr_Per” response on the response bus 116 for a particular persistent entry after all data for that persistent entry has been written to non-volatile memory in the memory system 130. Wr_Per 202c and Wr_Per 204c are shown for respective persistent entries 202a and 204a. However, Wr_Per 202c and Wr_Per 204c are shown as being sent in an order that is different from the order in which persistent entries 202a and 204a were received by memory system 130 to illustrate that responses need not be in program order or in the order in which requests for persistent a write is received from host 120. In one aspect, memory system 130 may assert a “Req” signal on response bus 116 along with an appropriate encoding for the “Write_Rdy” message for Wr_Per responses.

[0045] Дополнительно, хост 120 может также быть сконфигурирован, чтобы выдавать команду “Send-Status for WID”, обозначенную ссылочной позицией 206a, в любое время, чтобы определить статус своих ожидающих выполнения постоянных записей. В ответ, система 130 памяти может быть сконфигурирована, чтобы выдавать пакет статуса с WID завершенных постоянных записей, например, при переносе пакета длиной 8 или “BL8” по DQ 112.[0045] Additionally, host 120 may also be configured to issue a “Send-Status for WID” command, denoted at 206a, at any time to determine the status of its pending persistent entries. In response, the memory system 130 may be configured to issue a status packet with the WID of completed persistent writes, such as when a packet of length 8 or "BL8" is carried over DQ 112.

[0046] Как упомянуто ранее, до 31 WID 210 могут быть упакованы в каждый 64 В пакет статуса, причем для каждой WID 210 может иметься всего 16 битов, назначенных для 15-битной WID и бита Valid. Дополнительно, система 130 памяти может также использовать ранее упомянутое поле метаданных, чтобы возвращать статус для других записей. Хост 120 может использовать возвращенные WID 210 в пакете 206b статуса WID, например, чтобы завершать отслеживание ожидающих выполнения постоянных записей.[0046] As previously mentioned, up to 31 WIDs 210 may be packed into each 64 B status packet, with each WID 210 having a total of 16 bits assigned for a 15-bit WID and a Valid bit. Additionally, storage system 130 may also use the previously mentioned metadata field to return status for other entries. Host 120 may use the returned WIDs 210 in the WID status packet 206b, for example, to complete tracking of pending persistent entries.

[0047] В некоторых аспектах, могут быть сгруппированы две или более постоянные записи. Например, набор из 64 B постоянных записей может группироваться для фиксации (или записи в энергонезависимую память) в случае DIMM без энергетической поддержки, например. Примерная реализация может использовать блок постоянных записей, подлежащий выдаче на систему 130 памяти от хоста 120, причем система 130 памяти может быть сконфигурирована, чтобы собирать воедино блок постоянных записей в буфере и фиксировать весь блок постоянных записей сразу, что может приводить к повышению эффективности. Будет понятно, однако, что группировка постоянных записей и их фиксация в блок не требуется для DIMM с энергетической поддержкой, в которых буферы защищены от перебоя питания.[0047] In some aspects, two or more persistent entries may be grouped. For example, a set of 64B permanent entries may be grouped for commit (or write to non-volatile memory) in the case of DIMMs without power support, for example. An exemplary implementation may use a persistent record block to be issued to memory system 130 from host 120, wherein memory system 130 may be configured to aggregate the persistent record block in a buffer and commit the entire persistent record block at once, which may result in increased efficiency. It will be understood, however, that the grouping of persistent entries and their latching into a block is not required for power-backed DIMMs in which buffers are protected from power failure.

[0048] Следующие модификации могут производиться с командой постоянной записи для реализации фиксаций групп, обсуждаемых выше. Хост 120 может выбирать одну WID (из WID 210, например) для набора из двух или более записей. Дополнительный бит, именуемый “Persist” (постоянный), может добавляться в команду постоянной записи при отправке по CA 114, например. Бит Persist может использоваться, чтобы определять, когда вся группа постоянных записей была отправлена на систему 130 памяти.[0048] The following modifications may be made to the persistent write command to implement the group commits discussed above. Host 120 may select one WID (from WID 210, for example) for a set of two or more entries. An additional bit, called “Persist”, may be added to the persistent write command when sent on CA 114, for example. The Persist bit may be used to determine when the entire group of persistent records has been sent to the memory system 130 .

[0049] Например, три 64 B постоянные записи могут группироваться вместе следующим образом с использованием WID=5 в иллюстративном примере. Первая постоянная запись (WID=5, Persist=0), вторая постоянная запись (WID=5, Persist=0) и третья постоянная запись (WID=5, Persist=1) могут отправляться по CA 114. Система 130 памяти может быть сконфигурирована, чтобы собирать постоянные записи с WID=5 в буфере, пока бит Persist установлен в 0, а когда поступает последняя постоянная запись с битом Persist, установленным в 1, инициировать процессы фиксации постоянства.[0049] For example, three 64 B persistent entries may be grouped together as follows using WID=5 in an illustrative example. The first persistent entry (WID=5, Persist=0), the second persistent entry (WID=5, Persist=0), and the third persistent entry (WID=5, Persist=1) may be sent on the CA 114. The memory system 130 may be configured to collect persistent records with WID=5 in the buffer while the Persist bit is set to 0, and when the last persistent record arrives with the Persist bit set to 1, initiate persistence commit processes.

[0050] В одной реализации, только постоянная запись с битом Persist, установленным в 1, может быть сконфигурирована, чтобы получать отклик Wr_Per от системы 130 памяти (например, только третья постоянная запись в примере выше) для группы постоянных записей. Это может уменьшать трафик по шине ответа 116.[0050] In one implementation, only the persistent entry with the Persist bit set to 1 can be configured to receive a Wr_Per response from the memory system 130 (eg, only the third persistent entry in the example above) for a group of persistent entries. This may reduce traffic on the 116 response bus.

[0051] В некоторых аспектах, постоянные записи с разными WID могут чередоваться, например, по CA 114. Соответственно, группировка постоянных записей для постоянной фиксации не подразумевает, что постоянные записи в группе одной и той же WID отправляются последовательно от хоста 120.[0051] In some aspects, persistent records with different WIDs may be interleaved, for example, across CA 114. Accordingly, grouping persistent records for a permanent commit does not imply that persistent records in a group of the same WID are sent sequentially from host 120.

[0052] В некоторых аспектах, чтобы решить проблему условий состязания, которые могут возникать в откликах Wr_Per на постоянные записи, может использоваться способ статуса ID группы записей (WGID), чтобы группировать статусы одной или нескольких постоянных записей, с использованием разных битовых карт, таких как битовая карта завершенной WGID и битовая карта ожидающей WGID, как будет объяснено со ссылкой на фиг. 2B ниже. С учетом постоянных записей с соответствующей WID, система 130 памяти может утверждать соответственный Wr_Per (упоминаемый как “W_PER” для этого случая) для каждой постоянной записи с Persist=1 и для каждого завершения сброса. Хост 120 может использовать другую команду Send-W_PER-Status после приема одного или нескольких W_PER (причем, хост 120 может также поддерживать счет W_PER, упоминаемый как W_PER-Count). Система 130 памяти может возвращать статус завершенной WGID (WGID-Completed Status) с завершенными битами только на основе уже утвержденных W_PER. В свою очередь, хост 120 может обновлять список для WGID или “WGID list” и декрементировать W_PER-Count на основе числа завершений.[0052] In some aspects, to address the problem of race conditions that may occur in Wr_Per responses to persistent entries, the entry group ID (WGID) status method can be used to group the statuses of one or more persistent entries using different bitmaps, such as a completed WGID bitmap and a pending WGID bitmap, as will be explained with reference to FIG. 2B below. Given persistent entries with a corresponding WID, memory system 130 may assert a corresponding Wr_Per (referred to as “W_PER” in this case) for each persistent entry with Persist=1 and for each flush completion. Host 120 may use another Send-W_PER-Status command upon receipt of one or more W_PERs (wherein, host 120 may also maintain a W_PER count, referred to as W_PER-Count). The memory system 130 may only return a WGID-Completed Status with completed bits based on already asserted W_PERs. In turn, host 120 may update the list for the WGID or "WGID list" and decrement W_PER-Count based on the number of terminations.

[0053] В некоторых случаях, неисправимая ошибка (UE) может возникать в транзакциях, что будет обсуждено со ссылкой на фиг. 2C. Когда имеется UE в Send-W_PER-Status, хост 120 может остановить выдачу новых постоянных записей/сбросов и Send-W_PER-Status. Хост 120 может отправить команду считывания статуса, упоминаемую как Xread-Status, на систему 130 памяти. Система 130 памяти в ответ собирает все постоянные записи до приема Xread-Status, чтобы возвратить статус ожидающей WGID (WGID-Pending Status) на хост 120 (пакеты статусов охватывают утверждение W_PER до приема RD_RDY), и система 130 памяти может продолжить выдавать W_PER во время считываний статусов. Хост 120 может обновлять список WGID, поддерживаемый хостом 120, и декрементировать W_PER-Count на основе ожидающих записей. Хост 120 может затем начать повторно выдавать постоянные записи/сбросы.[0053] In some cases, a fatal error (UE) may occur in transactions, which will be discussed with reference to FIG. 2C. When there is a UE in Send-W_PER-Status, host 120 may stop issuing new persistent writes/resets and Send-W_PER-Status. Host 120 may send a status read command, referred to as Xread-Status, to memory system 130. The memory system 130 responds by collecting all persistent records prior to receiving the Xread-Status to return a WGID-Pending Status to the host 120 (status packets cover the W_PER assertion prior to receiving the RD_RDY), and the memory system 130 may continue to issue W_PER during status reads. Host 120 may update the WGID list maintained by host 120 and decrement W_PER-Count based on pending entries. Host 120 may then start reissuing permanent writes/drops.

[0054] Для реализаций DIMM с энергетической поддержкой системы 130 памяти, в нормальном протоколе, хост 120 может выдавать команды постоянных записей (с Persist=0/1) и сброса, но система 130 памяти не будет утверждать W_PER для каждой постоянной записи с Persist=1, а система 130 памяти будет утверждать W_PER для команды сброса, когда сброс завершается. В случае реализаций WGID, обработка W_PER системой 130 памяти остается той же самой, что и в нормальном протоколе, только для сбросов. Битовая карта статуса завершенной WGID, обеспеченная системой 130 памяти, будет иметь установленные биты сброса WGID, когда они завершаются. Когда имеется UE в Send-W_PER-Status, операция остается той же самой, что и нормальный случай, за исключением того, что статус ожидающей WGID применим только для сбросов.[0054] For DIMM implementations with energy support of the memory system 130, in the normal protocol, the host 120 may issue permanent writes (with Persist=0/1) and reset commands, but the memory system 130 will not assert W_PER for every permanent write with Persist= 1, and the memory system 130 will assert W_PER for the reset instruction when the reset is completed. In the case of WGID implementations, the W_PER processing by the memory system 130 remains the same as in the normal protocol, only for resets. The completed WGID status bitmap provided by the memory system 130 will have the WGID reset bits set when they are completed. When there is a UE in Send-W_PER-Status, the operation remains the same as the normal case, except that the pending WGID status is only applicable for resets.

[0055] Разрешения для реализаций WGID могут обрабатываться следующим образом. Отдельные разрешения могут поддерживаться для записей статуса или Xwrites и для постоянных записей, причем хост 120 может определять, как пул разрешений может быть распределен системой 130 памяти. Инкрементный возврат разрешений может обеспечиваться посредством считывания метаданных, причем может использоваться схема кодирования для возвращения разрешений Xwrite или постоянной записи. Возвраты X-Read-Status могут быть доступными для сегментов буфера Xwrite и постоянной записи на основе распределения разрешений.[0055] Permissions for WGID implementations may be processed as follows. Separate permissions may be maintained for status or Xwrites records and for persistent records, where host 120 may determine how the permission pool may be allocated by memory system 130 . Incremental permission return may be provided by reading metadata, and an encoding scheme may be used to return Xwrite or persistent write permissions. X-Read-Status returns may be available for Xwrite buffer segments and persistent writes based on permission allocation.

[0056] В одной реализации, например, которая будет описана со ссылкой на фиг. 2B-C, система 130 памяти может завершать постоянные записи (упоминаемые здесь как PWRITE) и сбросы в любом порядке. Чтобы сохранить конкретную PWRITE на носителе, хост 120 может выдать PWRITE для данной WGID с Persist=1 или выдать PWRITE с Persist=0, за которой следует любой из типов сброса. Система 130 памяти может выдать W_PER для каждой завершенной PWRITE, которая имеет Persist=1 в команде, а также каждого завершенного сброса. Если множество PWRITE сгруппированы с одной WGID с Persist=1 только в последней PWRITE, завершающей группу, система 130 памяти может выдать W_PER, только когда вся группа PWRITE завершена.[0056] In one implementation, for example, to be described with reference to FIG. 2B-C, memory system 130 may complete persistent writes (referred to here as PWRITE) and flushes in any order. To store a particular PWRITE on the media, host 120 may issue a PWRITE for a given WGID with Persist=1, or issue a PWRITE with Persist=0 followed by any of the reset types. The memory system 130 may issue W_PER for each completed PWRITE that has Persist=1 in command, as well as each completed reset. If multiple PWRITEs are grouped with the same WGID with Persist=1 only in the last PWRITE terminating the group, the memory system 130 may issue W_PER only when the entire PWRITE group is completed.

[0057] Со ссылкой теперь на фиг. 2B, будет описана обработка W_PER для нормального случая. Система 250 показана с хостом 120 и системой 130 памяти. Если как разрешения записи, так и свободная WGID доступны, то хост 120 может выдавать одну или несколько команд PWRITE или FLUSH, показанных как 252a, 254a. Хост 120 может отслеживать выданные команды 252a, 254a PWRITE или FLUSH в списке ожидающей WGID хоста (не показано, но может поддерживаться в хосте 120).[0057] With reference now to FIG. 2B, W_PER processing for the normal case will be described. System 250 is shown with host 120 and memory system 130. If both write permissions and a free WGID are available, then host 120 may issue one or more PWRITE or FLUSH commands, shown as 252a, 254a. Host 120 may monitor issued PWRITE or FLUSH commands 252a, 254a in a pending host WGID list (not shown, but may be supported in host 120).

[0058] Соответственно, система 130 памяти может принимать и отслеживать ожидающие команды 252a, 254a PWRITE или FLUSH в списке ожидающей DIMM-WGID (не показано). Система 130 памяти может исполнять ожидающие команды 252a, 254a PWRITE или FLUSH и утверждать соответствующие W_PER 254b и 252b (показаны в обратном порядке принятых команд 252a, 254a PWRITE или FLUSH) для хоста 120 после соответственного завершения каждой принятой команды.[0058] Accordingly, memory system 130 may receive and monitor pending PWRITE or FLUSH commands 252a, 254a in a pending DIMM-WGID list (not shown). The memory system 130 may execute the pending PWRITE or FLUSH commands 252a, 254a and assert the corresponding W_PERs 254b and 252b (shown in reverse order of the received PWRITE or FLUSH commands 252a, 254a) to the host 120 after the respective completion of each received command.

[0059] Система 130 памяти может собирать завершенные принятые команды PWRITE или FLUSH 252a, 254a в битовой карте 260 завершенной WGID, для которой показаны различные обновления 260a, 260b, 260c и т.д. Система 130 памяти может также удалять завершенные команды 252a, 254a PWRITE или FLUSH из списка ожидающей DIMM-WGID.[0059] The memory system 130 may collect completed received PWRITE or FLUSH commands 252a, 254a in a completed WGID bitmap 260 for which various updates 260a, 260b, 260c, etc. are shown. Memory system 130 may also remove completed PWRITE or FLUSH commands 252a, 254a from the pending DIMM-WGID list.

[0060] Хост 120 может поддерживать счет принятых событий W_PER, например, для приема W_PER 254b, 252b, упоминаемых как W_PER-Count. Одновременно, хост 120 может обрабатывать принятые события W_PER следующим образом: если W_PER-Count>0, то хост 120 может выдавать запрос статуса, показанный как Send-W_PER-Status 256a. Спустя предопределенное время, упоминаемое как время Tsend, система 130 памяти может отправлять снимок состояния битовой карты 260 завершенной WGID в этот момент времени (260b в этом случае) в ответе, показанном как WGID_Status 256b, на хост 120. Снимок состояния может включать в себя завершения для W_PER, выданных до начала переноса WGID_Status 256b на хост 120.[0060] Host 120 may maintain a count of received W_PER events, for example, to receive W_PER 254b, 252b, referred to as W_PER-Count. Concurrently, host 120 may process received W_PER events as follows: if W_PER-Count>0, then host 120 may issue a status request, shown as Send-W_PER-Status 256a. After a predetermined time, referred to as time Tsend, memory system 130 may send a snapshot of the status of the completed WGID bitmap 260 at that time (260b in this case) in a response shown as WGID_Status 256b to host 120. The snapshot may include completions for W_PERs issued prior to migration of WGID_Status 256b to host 120.

[0061] В некоторых аспектах, минимум 1 завершение регистрируется в снимке состояния. Система 130 памяти очищает положения битов на битовой карте 260 завершенной WGID на основе завершений, отправленных в WGID_Status 256b, показанных передачей битовой карты 260b завершенной WGID на битовую карту 260c завершенной WGID после сброса или очистки положений битов.[0061] In some aspects, at least 1 termination is registered in the snapshot. The memory system 130 clears the bit positions of the completed WGID bitmap 260 based on the terminations sent to WGID_Status 256b, indicated by the transfer of the completed WGID bitmap 260b to the completed WGID bitmap 260c after resetting or clearing the bit positions.

[0062] Хост 120 принимает WGID-Status 256b и может выводить информацию касательно завершенных WGID. Соответственно, хост 120 может освобождать завершенные WGID из списка ожидающих WGID хоста и декрементировать W_PER-Count на число завершений, принятых в битовой карте 260 завершенной WGID (например, декрементировать счет на 2 на основе двух принятых W_PER, как указано битовой картой 260b завершенной WGID). Хост 120 может повторять вышеописанный процесс, начиная с мониторинга W_PER-Count, и если W_PER-Count>0, то выдавать другой запрос статуса Send-W_PER-Status 256a на систему 130 памяти.[0062] Host 120 receives WGID-Status 256b and may output information regarding completed WGIDs. Accordingly, host 120 may release completed WGIDs from the host's list of pending WGIDs and decrement W_PER-Count by the number of terminations received in completed WGID bitmap 260 (e.g., decrement count by 2 based on two received W_PERs as indicated by completed WGID bitmap 260b) . Host 120 may repeat the above process, starting with monitoring W_PER-Count, and if W_PER-Count>0, then issue another status request Send-W_PER-Status 256a to memory system 130.

[0063] В примерных реализациях, хост 120 и система 130 памяти могут продолжать выдавать и исполнять новую PWRITE, в то время как выполняется обработка события W_PER. Хотя W_PER-Count и списки ожидания, такие как список ожидающей WGID хоста, список ожидающей DIMM-WGID и т.д., были обсуждены для примерной реализации, альтернативные структуры для достижения вышеописанной функциональности могут использоваться без отклонения от объема настоящего раскрытия.[0063] In exemplary implementations, host 120 and memory system 130 may continue to issue and execute a new PWRITE while the W_PER event is being processed. While W_PER-Count and waitlists such as host WGID pending list, DIMM-WGID pending list, etc. have been discussed for exemplary implementation, alternative structures to achieve the above functionality may be used without departing from the scope of this disclosure.

[0064] Со ссылкой теперь на фиг. 2C, показана система 270 для обработки неисправимой ошибки канала (UE), следующая за SEND-W_PER-Status от хоста 120, что приводит к потере завершений, отправленных в WGID_Status 256b (поясняется на фиг. 2B выше) от системы 130 памяти. Дополнительно, следует отметить, что система 130 памяти могла быть очищена перед завершениями из битовой карты 260 завершенной WGID на фиг. 2B.[0064] With reference now to FIG. 2C, a system 270 is shown for handling an unrecoverable link error (UE) following a SEND-W_PER-Status from host 120 resulting in loss of terminations sent to WGID_Status 256b (explained in FIG. 2B above) from memory system 130. Additionally, it should be noted that the memory system 130 may have been cleared prior to terminations from the completed WGID bitmap 260 in FIG. 2b.

[0065] Соответственно, в протоколе для восстановления от таких ошибок в системе 270, хост 120 может инициировать процесс восстановления путем остановки выдачи новых команд PWRITE или FLUSH (например, PWRITE-3 или FLUSH-3 272a не выдаются, показано пунктирными линиями для указания временной шкалы, когда они были бы выданы, если бы ошибка не произошла), в то время как система 130 памяти может продолжить выдавать события RD_RDY и/или W_PER для завершенных считываний или команд PWRITE или FLUSH (например, W_PER 254b показана, как выдаваемая, в то время как 252b не выдается до восстановления от ошибки). Хост 120 может также продолжить выдавать SEND и обновлять W_PER-Count.[0065] Accordingly, in a protocol for recovering from such errors in system 270, host 120 may initiate the recovery process by stopping the issuance of new PWRITE or FLUSH commands (e.g., PWRITE-3 or FLUSH-3 272a is not issued, shown with dotted lines to indicate time scales when they would have been issued if the error had not occurred), while the memory system 130 may continue to issue RD_RDY and/or W_PER events for completed reads or PWRITE or FLUSH commands (e.g., W_PER 254b is shown as being issued in while 252b is not issued until recovery from the error). Host 120 may also continue to issue SEND and update W_PER-Count.

[0066] После предварительно заданной минимальной задержки времени для сигнала разрешения записи, упоминаемой как TWE_Delay, следующей за последней PWRITE, хост 120 выдает XREAD-Status 274a на систему 130 памяти, и система 130 памяти может подготавливать полный пакет статусов со снимком состояния битовой карты 280 ожидающей WGID, которая представляет собой другую битовую карту, обеспечиваемую в дополнение к битовой карте 260 завершенной WGID, обсужденной выше, причем битовая карта 280 ожидающей WGID включает в себя статус всех ожидающих PWRITE/FLUSH. Система 130 памяти может утверждать RD_RDY 276b, и хост 120 может выдавать SEND 278a в ответ.[0066] After a predetermined minimum time delay for the write enable signal, referred to as TWE_Delay, following the last PWRITE, the host 120 issues an XREAD-Status 274a to the memory system 130, and the memory system 130 may prepare a full status packet with a snapshot of the status of the bitmap 280 the pending WGID, which is another bitmap provided in addition to the completed WGID bitmap 260 discussed above, where the pending WGID bitmap 280 includes the status of all pending PWRITE/FLUSH. Memory system 130 may assert RD_RDY 276b and host 120 may issue SEND 278a in response.

[0067] Система 130 памяти может затем возвращать подготовленный пакет 278b статусов, из которого хост 120 может извлечь и обработать битовую карту 280 ожидающей WGID, принятую в пакете 278b статусов. Хост 120 может освобождать подходящие WGID из своего списка отслеживания ожидающих WGID хоста и декрементировать W_PER-Count на число освобожденных WGID. Хост 120 может затем повторять процессы, начиная с выдачи новых команд PWRITE/FLUSH, и обрабатывать ожидающие W_PER в это время как на предыдущий вызов.[0067] Memory system 130 may then return a prepared status packet 278b from which host 120 may retrieve and process the pending WGID bitmap 280 received in status packet 278b. Host 120 may release eligible WGIDs from its pending host WGID tracking list and decrement W_PER-Count by the number of WGIDs released. Host 120 may then repeat the processes starting with the issuance of new PWRITE/FLUSH commands and process pending W_PERs at this time as per the previous call.

[0068] В некоторых аспектах, пакет 278b статусов сконфигурирован, чтобы указывать, имеет ли он битовую карту 260 завершенной WGID или битовую карту 280 ожидающей WGID. Пакеты статусов отклика W_PER содержат битовую карту 260 завершенной WGID, в то время как все другие пакеты статусов содержат битовую карту 280 ожидающей WGID. Время TWE_Delay сконфигурировано, чтобы учитывать время для получения уведомления об ошибке от системы 130 памяти для последней PWRITE, выданной от хоста 120, и время ожидания от обнаружения UE до XREAD-Status 274a, выданного от хоста 120, может меняться в зависимости от того, когда была выдана последняя PWRITE.[0068] In some aspects, status packet 278b is configured to indicate whether it has a completed WGID bitmap 260 or a pending WGID bitmap 280. The W_PER response status packets contain a completed WGID bitmap 260, while all other status packets contain a pending WGID bitmap 280. The TWE_Delay time is configured to take into account the time to receive error notification from memory system 130 for the last PWRITE issued from host 120, and the time to wait from UE discovery to XREAD-Status 274a issued from host 120 may vary depending on when the last PWRITE was issued.

[0069] Со ссылкой на фиг. 3, показано примерное кодирование для постоянных записей, например, для реализации DDR5 системы 130 памяти. Поле CA1 обычно используется, чтобы проводить различие между командами 1UI и 2UI в технологии DDR5, и может сохраняться для реализаций NVDIMM-P. CA 114 в некоторых реализациях может быть сконфигурировано на скоростях DDR для DDR5 только с 7 контактами, и в таких случаях, кодирование отдельной команды может использоваться для постоянных записей, например, как показано на фиг. 3.[0069] With reference to FIG. 3, exemplary coding for persistent entries is shown, for example, for a DDR5 implementation of memory system 130. The CA1 field is commonly used to distinguish between the 1UI and 2UI commands in DDR5 technology, and may be retained for NVDIMM-P implementations. The CA 114 in some implementations may be configured at DDR speeds for DDR5 with only 7 pins, and in such cases, single instruction encoding may be used for persistent entries, such as shown in FIG. 3.

[0070] На фиг. 3, если постоянный бит Persist=1, это указывает, что система 130 памяти должна поместить все постоянные записи, ассоциированные с соответственной WID, в энергонезависимую память. Если существует одна 64 B постоянная запись в группе, бит Persist может быть установлен в 1. Для постоянных записей больше 64 B, все постоянные записи могут иметь одну и ту же WID, причем последняя постоянная запись имеет свой бит Persist, установленный в 1, в то время как оставшиеся постоянные записи имеют свои биты Persist, установленные в 0.[0070] FIG. 3, if the persistent bit Persist=1, this indicates that the memory system 130 should place all persistent entries associated with the respective WID into non-volatile memory. If there is one 64 B persistent entry in a group, the Persist bit may be set to 1. For persistent entries greater than 64 B, all persistent entries may have the same WID, with the last persistent entry having its Persist bit set to 1, in while the remaining persistent entries have their Persist bits set to 0.

[0071] В дополнение к транзакциям выше, как представлено в предыдущих разделах, другая команда может также использоваться в ассоциации с постоянными записями, именуемая командой FLUSH. Команда FLUSH сконфигурирована, чтобы указывать системе 130 памяти, что все предшествующие буферизованные записи (например, в непостоянной или энергозависимой памяти) должны быть помещены в постоянную память, учитывая, что будущие записи могут не затрагиваться подобным образом или помещаться в постоянную память при использовании команды FLUSH.[0071] In addition to the transactions above, as presented in the previous sections, another command may also be used in association with persistent records, referred to as the FLUSH command. The FLUSH command is configured to indicate to the memory system 130 that all previous buffered writes (e.g., in non-persistent or volatile memory) should be placed in read-only memory, given that future writes may not be affected in this manner or placed in read-only memory when the FLUSH command is used. .

[0072] Когда исполнение FLUSH завершено, система 130 памяти может снова утверждать Wr_Per, например, по шине ответа 116 на хост 120, аналогично случаю постоянных записей, обсужденному выше.[0072] When the FLUSH execution is completed, the memory system 130 may assert Wr_Per again, for example, over the response bus 116 to the host 120, similar to the case of persistent writes discussed above.

[0073] Дополнительно, хост 120 может также обеспечивать команду, Send-Status для WID (аналогично постоянным записям) на систему 130 памяти в случае команды FLUSH, на которую система 130 памяти может отвечать пакетом статусов WID с уникальной зарезервированной WID для указания завершения исполнения FLUSH (например, WID со всеми битами, установленными в 1, может представлять собой такую зарезервированную WID, используемую для указания завершения исполнения FLUSH).[0073] Additionally, host 120 may also provide a Send-Status for WID command (similar to persistent writes) to memory system 130 in the case of a FLUSH command, to which memory system 130 may respond with a WID status packet with a unique reserved WID to indicate completion of the FLUSH execution. (eg, a WID with all bits set to 1 could be such a reserved WID used to indicate completion of a FLUSH execution).

[0074] В одной реализации, может быть разрешена только одна ожидающая выполнения команда FLUSH от хоста 120. Таким образом, в этой реализации, хост 120 может быть вынужден ждать ответа завершения FLUSH от системы 130 памяти до отправки другой команды FLUSH. В альтернативных реализациях, команды FLUSH могут сопровождаться соответствующими FLUSH ID (например, выбранными из полей зарезервированных WID), и соответствующий ответ на Send-Status может побуждать систему 130 памяти возвращать FLUSH ID, для которого исполнение FLUSH было завершено.[0074] In one implementation, only one pending FLUSH command from host 120 may be allowed. Thus, in this implementation, host 120 may be forced to wait for a FLUSH completion response from memory system 130 before sending another FLUSH command. In alternative implementations, FLUSH commands may be accompanied by appropriate FLUSH IDs (eg, selected from reserved WID fields), and an appropriate Send-Status response may cause memory system 130 to return a FLUSH ID for which FLUSH execution has been completed.

[0075] Будет понятно, что аспекты включают в себя различные способы для выполнения процессов, функций и/или алгоритмов, раскрытых здесь. Например, фиг. 4A иллюстрирует примерный способ 400 выполнения постоянных операций.[0075] It will be understood that aspects include various methods for performing the processes, functions, and/or algorithms disclosed here. For example, FIG. 4A illustrates an exemplary method 400 for performing persistent operations.

[0076] Блок 402 содержит прием, в системе памяти (например, системе 130 памяти), команды постоянной записи (например, постоянная запись 202a) и ассоциированных данных записи (например, данных 202b) от хоста (например, хоста 120).[0076] Block 402 includes receiving, at the memory system (eg, memory system 130), permanent write commands (eg, permanent write 202a) and associated write data (eg, data 202b) from the host (eg, host 120).

[0077] Блок 404 содержит выполнение постоянной записи данных записи в энергонезависимую память (например, в энергонезависимую память в системе 130 памяти) в системе памяти на основе команды постоянной записи. Идентификация записи (WID), ассоциированная с командой постоянной записи, может приниматься от хоста, и после успешного завершения постоянной записи, указание (Wr_Per) завершения постоянной записи вместе с ассоциированной WID (например, Wr_Per 202c) может предоставляться на хост.[0077] Block 404 comprises performing persistent writing of write data to non-volatile memory (eg, non-volatile memory in memory system 130) in the memory system based on the persistent write command. The write identification (WID) associated with the persistent write command may be received from the host, and upon successful completion of the persistent recording, a permanent recording completion indication (Wr_Per) along with the associated WID (eg, Wr_Per 202c) may be provided to the host.

[0078] Аналогично, фиг. 4B иллюстрирует другой примерный способ 450 выполнения постоянных операций.[0078] Similarly, FIG. 4B illustrates another exemplary method 450 for performing persistent operations.

[0079] Блок 452 содержит обеспечение, от хоста (например, хоста 120) на систему памяти (например, систему 130 памяти), команды постоянной записи (например, постоянная запись 202a) и ассоциированных данных записи (например, данных 202b), причем команда постоянной записи указывает системе памяти выполнить постоянную запись данных записи в энергонезависимую память.[0079] Block 452 includes providing, from the host (eg, host 120) to the storage system (eg, storage system 130), permanent write instructions (eg, permanent write 202a) and associated write data (eg, data 202b), wherein the command permanent write instructs the memory system to permanently write the recording data to non-volatile memory.

[0080] Блок 454 содержит обеспечение идентификации записи (WID) (например, WID 210), ассоциированной с командой постоянной записи, на систему памяти от хоста.[0080] Block 454 comprises providing a write identification (WID) (eg, WID 210) associated with a permanent write command to the memory system from the host.

[0081] Примерное устройство, в котором могут использоваться аспекты настоящего раскрытия, теперь будет обсуждено в отношении фиг. 5. Фиг. 5 показывает блок-схему вычислительного устройства 500. Вычислительное устройство 500 может соответствовать примерной реализации системы 100 обработки согласно фиг. 1, причем процессор 120’ может представлять собой один из элементов обработки хоста 120. Процессор 120’ в качестве примера показан как соединенный с системой 130 памяти через механизм 110 связи, при этом дополнительные подробности механизма 110 связи опущены на этом представлении в целях ясности. Процессор 120’, механизм 110 связи и система 130 памяти могут быть сконфигурированы, чтобы выполнять способы 400-450, как обсуждается выше. Будет понятно, что другие конфигурации памяти, известные в данной области техники, например, использующие один или несколько уровней кэша, хотя не показаны, могут присутствовать в вычислительном устройстве 500.[0081] An exemplary apparatus in which aspects of the present disclosure may be used will now be discussed with respect to FIG. 5. FIG. 5 shows a block diagram of computing device 500. Computing device 500 may correspond to an exemplary implementation of processing system 100 of FIG. 1, where processor 120' may be one of the processing elements of host 120. Processor 120' is shown by way of example as connected to memory system 130 via communication mechanism 110, with additional details of communication mechanism 110 omitted from this representation for the sake of clarity. Processor 120', communication engine 110, and memory system 130 may be configured to perform methods 400-450 as discussed above. It will be appreciated that other memory configurations known in the art, such as using one or more cache levels, although not shown, may be present in computing device 500.

[0082] Фиг. 5 также показывает контроллер 526 дисплея, который соединен с процессором 120’ и с дисплеем 528. В некоторых случаях, вычислительное устройство 500 может использоваться для беспроводной связи, и фиг. 5 также показывает опциональные блоки пунктирными линиями, такие как кодер/декодер (кодек) 534 (например, аудио и/или голосовой кодек), связанный с процессором 120’, и динамик 536 и микрофон 538 могут быть соединены с кодеком 534; и беспроводную антенну 542, связанную с беспроводным контроллером 540, который связан с процессором 120’. Когда представлены один или несколько из этих опциональных блоков, в конкретном аспекте, процессор 120’, контроллер 526 дисплея, система 130 памяти и беспроводной контроллер 540 включены в устройство 522 системы в корпусе или системы на чипе.[0082] FIG. 5 also shows a display controller 526 that is coupled to processor 120' and to display 528. In some cases, computing device 500 may be used for wireless communication, and FIG. 5 also shows optional blocks in dotted lines such as encoder/decoder (codec) 534 (eg, audio and/or voice codec) associated with processor 120', and speaker 536 and microphone 538 may be coupled to codec 534; and a wireless antenna 542 associated with a wireless controller 540 that is associated with the processor 120'. When one or more of these optional blocks are present, in a particular aspect, processor 120', display controller 526, memory system 130, and wireless controller 540 are included in system-on-a-chip or system-on-a-chip device 522.

[0083] Соответственно, в конкретном аспекте, устройство 530 ввода и источник 544 питания соединены с устройством 522 системы на чипе. Более того, в конкретном аспекте, как проиллюстрировано на фиг. 5, где представлены один или несколько опциональных блоков, дисплей 528, устройство 530 ввода, динамик 536, микрофон 538, беспроводная антенна 542 и источник 544 питания являются внешними для устройства 522 системы на чипе. Однако, каждое из дисплея 528, устройства 530 ввода, динамика 536, микрофона 538, беспроводной антенны 542 и источника 544 питания может быть связано с компонентом устройства 522 системы на чипе, таким как интерфейс или контроллер.[0083] Accordingly, in a specific aspect, the input device 530 and the power supply 544 are connected to the system-on-a-chip device 522. Moreover, in a specific aspect, as illustrated in FIG. 5, where one or more option blocks are shown, display 528, input device 530, speaker 536, microphone 538, wireless antenna 542, and power supply 544 are external to system-on-a-chip device 522. However, each of display 528, input device 530, speaker 536, microphone 538, wireless antenna 542, and power supply 544 may be associated with a component of system-on-a-chip device 522, such as an interface or controller.

[0084] Следует отметить, что хотя фиг. 5 в общем изображает вычислительное устройство, процессор 120’ и система 130 памяти могут также быть интегрированы в телевизионную приставку, сервер, музыкальный проигрыватель, видеопроигрыватель, развлекательное устройство, навигационное устройство, персональный цифровой ассистент (PDA), блок данных с фиксированным местоположением, компьютер, ноутбук, планшет, устройство связи, мобильный телефон или другие аналогичные устройства.[0084] It should be noted that although FIG. 5 generally depicts a computing device, processor 120' and memory system 130 may also be integrated into a set-top box, server, music player, video player, entertainment device, navigation device, personal digital assistant (PDA), fixed location data unit, computer, laptop, tablet, communication device, mobile phone or other similar devices.

[0085] Специалисты в данной области техники поймут, что информация и сигналы могут быть представлены с использованием любых из многообразия различных технологий и методов. Например, данные, инструкции, команды, информация, сигналы, биты, символы и элементарные посылки, ссылки на которые могут делаться во всем вышеизложенном описании, могут быть представлены посредством напряжений, токов, электромагнитных волн, магнитных полей или частиц, оптических полей или частиц или любой их комбинации.[0085] Those skilled in the art will appreciate that information and signals may be represented using any of a variety of different technologies and techniques. For example, the data, instructions, commands, information, signals, bits, symbols, and chips that may be referred to throughout the foregoing description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination of them.

[0086] Дополнительно, специалисты в данной области техники поймут, что различные иллюстративные логические блоки, модули, схемы и этапы алгоритмов, описанные в связи с аспектами, раскрытыми здесь, могут быть реализованы как электронные аппаратные средства, компьютерное программное обеспечение или комбинации обоих. Чтобы ясно проиллюстрировать эту взаимозаменяемость аппаратных средств и программного обеспечения, различные иллюстративные компоненты, блоки, модули, схемы и этапы были описаны выше в общем с точки зрения их функциональности. То, реализуется ли такая функциональность как аппаратные средства или программное обеспечение, зависит от конкретного приложения и ограничений при проектировании, налагаемых на всю систему. Специалисты в данной области могут реализовывать описанную функциональность разными способами для каждого конкретного приложения, но такие решения реализации не должны интерпретироваться как вызывающие отклонение от объема настоящего изобретения.[0086] Additionally, those skilled in the art will appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the aspects disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the particular application and design constraints imposed on the overall system. Those skilled in the art may implement the described functionality in different ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.

[0087] Способы, последовательности и/или алгоритмы, описанные в связи с раскрытыми аспектами, могут быть воплощены непосредственно в аппаратных средствах, в исполняемом процессором модуле программного обеспечения или в комбинации двух. Модуль программного обеспечения может находиться в памяти RAM, флэш-памяти, памяти ROM, памяти EPROM, памяти EEPROM, регистрах, жестком диске, съемном диске, CD-ROM или любой другой форме носителя хранения, известной в данной области техники. Примерный носитель хранения связан с процессором, так что процессор может считывать информацию из и записывать информацию на носитель хранения. Альтернативно, носитель хранения может быть интегрирован в процессор.[0087] The methods, sequences, and/or algorithms described in connection with the disclosed aspects may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. The software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, removable disk, CD-ROM, or any other form of storage media known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. Alternatively, the storage medium may be integrated into the processor.

[0088] Соответственно, аспект изобретения может включать в себя считываемые компьютером носители, воплощающие способ выполнения постоянных записей. Соответственно, изобретение не ограничено проиллюстрированными примерами, и любые средства для выполнения функциональности, описанной здесь, включены в аспекты изобретения.[0088] Accordingly, an aspect of the invention may include computer-readable media embodying a method for performing persistent recordings. Accordingly, the invention is not limited to the illustrated examples, and any means for performing the functionality described herein are included within aspects of the invention.

[0089] Хотя предшествующее раскрытие показывает иллюстративные аспекты изобретения, следует отметить, что различные изменения и модификации могут выполняться без отклонения от объема изобретения, как определено прилагаемой формулой изобретения. Функции, этапы и/или действия пунктов формулы изобретения на способ в соответствии с аспектами изобретения, описанными здесь, не требуется выполнять в каком-либо конкретном порядке. Более того, хотя элементы изобретения могут быть описаны или заявлены в единственном числе, множественное число предполагается, если ограничение единственным числом не выражено явно.[0089] Although the foregoing disclosure shows illustrative aspects of the invention, it should be noted that various changes and modifications may be made without departing from the scope of the invention as defined by the appended claims. The functions, steps and/or actions of the claims on the method in accordance with the aspects of the invention described here do not need to be performed in any particular order. Moreover, while elements of the invention may be described or claimed in the singular, the plural is intended unless limitation to the singular is expressly stated.

Claims (49)

1. Способ выполнения постоянных операций, причем способ содержит:1. A method for performing permanent operations, the method comprising: прием посредством энергонезависимого двустороннего модуля памяти (NVDIMM), сконфигурированного, чтобы поддерживать постоянные записи, команды постоянной записи и ассоциированных данных записи от хоста; receiving via a non-volatile dual-sided memory module (NVDIMM) configured to support persistent writes, persistent write commands, and associated write data from a host; выполнение постоянной записи данных записи в энергонезависимую память в NVDIMM на основе команды постоянной записи;performing a permanent write of the write data to the non-volatile memory in the NVDIMM based on the permanent write command; прием идентификации записи (WID), ассоциированной с командой постоянной записи, от хоста после успешного завершения постоянной записи;receiving a write identification (WID) associated with the permanent write command from the host upon successful completion of the permanent write; прием от хоста запроса отправить статус для множества постоянных записей вместе с ассоциированными WID; иreceiving from the host a request to send a status for a plurality of persistent entries along with associated WIDs; and прием посредством NVDIMM группы из двух или более команд постоянной записи с общей WID, причем последняя команда постоянной записи из группы имеет бит Persist, установленный в 1, и оставшиеся команды постоянной записи имеют соответственные биты Persist, установленные в 0, и обеспечение указания завершения постоянной записи для последней команды постоянной записи.receiving by the NVDIMM a group of two or more persistent write commands with a common WID, wherein the last persistent write command of the group has the Persist bit set to 1 and the remaining persistent write commands have their respective Persist bits set to 0, and providing an indication of completion of the persistent write for the last permanent write command. 2. Способ по п. 1, дополнительно содержащий отправку, от NVDIMM после успешного завершения постоянной записи, указания завершения постоянной записи вместе с ассоциированной WID на хост.2. The method of claim 1, further comprising sending, from the NVDIMM upon successful completion of the persistent write, an indication of the completion of the persistent write along with an associated WID to the host. 3. Способ по п. 2, в котором отправка указания завершения постоянной записи содержит отправку двух или более указаний завершения постоянной записи от NVDIMM на хост в порядке, отличном от порядка, в котором соответствующие две или более команды постоянной записи были приняты от хоста.3. The method of claim 2, wherein sending the permanent write complete indication comprises sending two or more permanent write complete indications from the NVDIMM to the host in an order different from the order in which the corresponding two or more permanent write commands were received from the host. 4. Способ по п. 1, дополнительно содержащий отправку пакета статусов от NVDIMM на хост, пакет статусов содержит WID для команд постоянной записи, исполнение которых было завершено.4. The method of claim 1, further comprising sending a status packet from the NVDIMM to the host, the status packet containing the WIDs for the permanent write commands that have completed execution. 5. Способ по п. 1, причем WID содержит многобитовую идентификацию постоянной записи и действительный бит.5. The method of claim 1, wherein the WID contains a multi-bit permanent entry identification and a valid bit. 6. Способ по п. 1, дополнительно содержащий прием посредством NVDIMM команды FLUSH от хоста, причем команда FLUSH указывает, что все предшествующие записи, буферизованные в энергозависимых носителях, должны помещаться в энергонезависимую или постоянную память.6. The method of claim 1, further comprising receiving, by the NVDIMM, a FLUSH command from the host, wherein the FLUSH command indicates that all previous writes buffered in volatile media should be placed in nonvolatile or read only memory. 7. Способ по п. 6, дополнительно содержащий отправку указания завершения FLUSH после завершения исполнения команды FLUSH от NVDIMM на хост.7. The method of claim 6, further comprising sending a FLUSH completion indication upon completion of execution of the FLUSH command from the NVDIMM to the host. 8. Способ по п. 1, дополнительно содержащий прием посредством NVDIMM одной или нескольких команд постоянной записи, поддержание статусов одной или нескольких команд постоянной записи, завершенных в завершенной битовой карте, и статусов одной или нескольких команд постоянной записи, ожидающих в ожидающей битовой карте, и после запроса на статус от хоста, обеспечение завершенной битовой карты, если не имеется неисправимой ошибки, или ожидающей битовой карты, если имеется неисправимая ошибка. 8. The method of claim 1, further comprising receiving by the NVDIMM one or more persistent write commands, maintaining the statuses of one or more persistent write commands completed in the completed bitmap, and the statuses of one or more persistent write commands pending in the pending bitmap, and after a status request from the host, providing a completed bitmap if there is no unrecoverable error, or a pending bitmap if there is an unrecoverable error. 9. Способ выполнения постоянных операций, причем способ содержит:9. A method for performing permanent operations, the method comprising: отправку, от хоста в энергонезависимый двусторонний модуль памяти (NVDIMM), сконфигурированный, чтобы поддерживать постоянные записи, команды постоянной записи и ассоциированных данных записи;sending, from the host, to a non-volatile dual-sided memory module (NVDIMM) configured to support persistent writes, persistent write commands, and associated write data; обеспечение идентификации записи (WID), ассоциированной с командой постоянной записи, в NVDIMM от хоста после успешного завершения постоянной записи;providing a write identification (WID) associated with the persistent write command to the NVDIMM from the host upon successful completion of the persistent write; отправку, от хоста в NVDIMM, запроса отправить статус для множества постоянных записей вместе с ассоциированными WID; иsending, from the host to the NVDIMM, a request to send status for a plurality of persistent entries along with associated WIDs; and отправку от хоста в NVDIMM группы из двух или более команд постоянной записи с общей WID, причем последняя команда постоянной записи из группы имеет бит Persist, установленный в 1, и оставшиеся команды постоянной записи имеют соответственные биты Persist, установленные в 0, и прием от NVDIMM указания завершения постоянной записи для последней постоянной записи,sending from the host to the NVDIMM of a group of two or more persistent write commands with a common WID, with the last persistent write command from the group having the Persist bit set to 1 and the remaining persistent write commands having their respective Persist bits set to 0, and receiving from the NVDIMM specifying the end of the permanent recording for the last permanent recording, причем команда постоянной записи указывает в NVDIMM выполнить постоянную запись данных записи в энергонезависимую память.wherein the permanent write command instructs the NVDIMM to permanently write the write data to the non-volatile memory. 10. Способ по п. 9, дополнительно содержащий прием в хосте указания завершения постоянной записи вместе с ассоциированной WID от NVDIMM после успешного завершения постоянной записи.10. The method of claim 9, further comprising receiving, at the host, a persistent write completion indication along with an associated WID from the NVDIMM upon successful completion of the persistent write. 11. Способ по п. 10, в котором прием указания завершения постоянной записи содержит прием от NVDIMM двух или более указаний завершения постоянной записи в порядке, отличном от порядка, в котором соответствующие две или более команды постоянной записи были отправлены от хоста в NVDIMM.11. The method of claim 10, wherein receiving the persistent write completion indication comprises receiving two or more persistent write completion indications from the NVDIMM in an order different from the order in which the corresponding two or more persistent write commands were sent from the host to the NVDIMM. 12. Способ по п. 11, дополнительно содержащий прием пакета статусов хостом от NVDIMM, пакет статусов содержит WID для команд постоянной записи, исполнение которых было завершено.12. The method of claim 11, further comprising receiving a status packet from the NVDIMM by the host, the status packet containing the WIDs for the permanent write commands that have completed execution. 13. Способ по п. 9, причем WID содержит многобитовую идентификацию постоянной записи и действительный бит.13. The method of claim 9, wherein the WID comprises a multi-bit persistent entry identification and a valid bit. 14. Способ по п. 9, дополнительно содержащий отправку команды FLUSH от хоста в NVDIMM, причем команда FLUSH указывает, что все предшествующие записи, буферизованные в энергозависимых носителях, должны помещаться в энергонезависимую или постоянную память посредством NVDIMM.14. The method of claim 9, further comprising sending a FLUSH command from the host to the NVDIMM, wherein the FLUSH command indicates that all previous writes buffered in volatile media should be placed in non-volatile or persistent memory by the NVDIMM. 15. Способ по п. 14, дополнительно содержащий прием в хосте указания завершения FLUSH после завершения посредством NVDIMM исполнения команды FLUSH.15. The method of claim 14, further comprising receiving at the host a FLUSH completion indication after the NVDIMM has completed execution of the FLUSH command. 16. Устройство для выполнения постоянных операций, содержащее:16. A device for performing permanent operations, comprising: хост; иhost; and энергонезависимый двусторонний модуль памяти (NVDIMM), сконфигурированный, чтобы поддерживать постоянные записи, и сконфигурированный, чтобы: non-volatile dual-sided memory module (NVDIMM) configured to support persistent writes and configured to: принимать команду постоянной записи и ассоциированные данные записи от хоста;receive a persistent write command and associated write data from the host; выполнять постоянную запись данных записи в энергонезависимую память в NVDIMM на основе команды постоянной записи;permanently write the write data to the non-volatile memory in the NVDIMM based on the permanent write command; принимать идентификацию записи (WID), ассоциированную с командой постоянной записи, от хоста после успешного завершения постоянной записи;receive a write identification (WID) associated with the permanent write command from the host after successful completion of the permanent write; принимать от хоста запрос отправить статус для множества постоянных записей вместе с ассоциированными WID; иreceive from the host a request to send a status for a plurality of persistent entries along with associated WIDs; and принимать группу из двух или более команд постоянной записи с общей WID, причем последняя команда постоянной записи из группы имеет бит Persist, установленный в 1, и оставшиеся команды постоянной записи имеют соответственные биты Persist, установленные в 0, и обеспечивать указание завершения постоянной записи для последней команды постоянной записи.receive a group of two or more persistent write commands with a common WID, where the last persistent write command of the group has the Persist bit set to 1 and the remaining persistent write commands have their respective Persist bits set to 0, and provide a permanent write completion indication for the last permanent recording commands. 17. Устройство по п. 16, причем NVDIMM дополнительно сконфигурирован, чтобы обеспечивать, после успешного завершения постоянной записи, указание завершения постоянной записи вместе с ассоциированной WID на хост.17. The apparatus of claim 16, wherein the NVDIMM is further configured to provide, upon successful completion of the persistent write, an indication of the completion of the persistent write along with an associated WID to the host. 18. Устройство по п. 17, причем NVDIMM дополнительно сконфигурирован, чтобы обеспечивать два или более указания завершения постоянной записи на хост в порядке, отличном от порядка, в котором соответствующие две или более команды постоянной записи были приняты от хоста.18. The apparatus of claim 17, wherein the NVDIMM is further configured to provide two or more permanent write completion indications to the host in an order different from the order in which the respective two or more permanent write commands were received from the host. 19. Устройство по п. 18, причем NVDIMM дополнительно сконфигурирована, чтобы обеспечивать пакет статусов на хост, пакет статусов содержит WID для команд постоянной записи, исполнение которых было завершено.19. The apparatus of claim 18, wherein the NVDIMM is further configured to provide a status packet to the host, the status packet contains the WID for the permanent write commands that have completed execution. 20. Устройство по п. 16, причем WID содержит многобитовую идентификацию постоянной записи и действительный бит.20. The apparatus of claim 16, wherein the WID contains a multi-bit persistent entry identification and a valid bit. 21. Устройство по п. 16, причем NVDIMM дополнительно сконфигурирована, чтобы принимать команду FLUSH от хоста, причем команда FLUSH указывает, что все предшествующие записи, буферизованные в энергозависимых носителях, должны помещаться в энергонезависимую или постоянную память.21. The apparatus of claim 16, wherein the NVDIMM is further configured to receive a FLUSH command from the host, the FLUSH command indicating that all previous writes buffered in volatile media should be placed in non-volatile or persistent memory. 22. Устройство по п. 21, причем NVDIMM дополнительно сконфигурирована, чтобы обеспечивать указание завершения FLUSH после завершения исполнения команды FLUSH на хост.22. The apparatus of claim 21, wherein the NVDIMM is further configured to provide a FLUSH completion indication after execution of the FLUSH command to the host has completed. 23. Устройство по п. 16, причем NVDIMM дополнительно сконфигурирована, чтобы принимать одну или несколько команд постоянной записи; поддерживать статусы одной или нескольких команд постоянной записи, завершенных в завершенной битовой карте, и статусы одной или нескольких ожидающих команд постоянной записи в ожидающей битовой карте; и после запроса на статус от хоста обеспечивать завершенную битовую карту, если не имеется неисправимой ошибки, или ожидающую битовую карту, если имеется неисправимая ошибка. 23. The apparatus of claim 16, wherein the NVDIMM is further configured to receive one or more permanent write commands; maintain the statuses of one or more persistent write commands completed in the completed bitmap and the statuses of one or more pending persistent write commands in the pending bitmap; and after a status request from the host, provide a completed bitmap if there is no unrecoverable error, or a pending bitmap if there is an unrecoverable error. 24. Устройство для выполнения постоянных операций, содержащее:24. A device for performing permanent operations, comprising: хост, сконфигурированный, чтобы обеспечивать команду постоянной записи и ассоциированные данные записи; иa host configured to provide a persistent write command and associated write data; and энергонезависимый двусторонний модуль памяти (NVDIMM), сконфигурированный, чтобы принимать команду постоянной записи и ассоциированные данные записи, отправляемые от хоста, причем команда постоянной записи указывает в NVDIMM выполнить постоянную запись данных записи в энергонезависимую память NVDIMM, и при этом хост дополнительно сконфигурирован, чтобы обеспечивать идентификацию записи (WID), ассоциированную с командой постоянной записи, в NVDIMM, и отправлять в NVDIMM, после успешного завершения постоянной записи, запрос отправить статус для множества постоянных записей вместе с ассоциированными WID, и отправлять в NVDIMM группу из двух или более команд постоянной записи с общей WID, причем последняя команда постоянной записи из группы имеет бит Persist, установленный в 1, и оставшиеся команды постоянной записи имеют соответственные биты Persist, установленные в 0, и принимать от NVDIMM указание завершения постоянной записи для последней постоянной записи.a non-volatile reversible memory module (NVDIMM) configured to receive a persistent write command and associated write data sent from a host, wherein the persistent write command instructs the NVDIMM to permanently write the write data to the NVDIMM non-volatile memory, and the host is further configured to provide write identification (WID) associated with a permanent write command to the NVDIMM, and send to the NVDIMM, upon successful completion of the permanent write, a request to send a status for a plurality of permanent writes along with the associated WIDs, and send a group of two or more permanent write commands to the NVDIMM with a common WID, with the last persistent write command from the group having the Persist bit set to 1 and the remaining persistent write commands having their respective Persist bits set to 0, and receive from the NVDIMM a permanent write completion indication for the last persistent write. 25. Устройство по п. 24, причем хост дополнительно сконфигурирован, чтобы принимать указание завершения постоянной записи вместе с ассоциированной WID от NVDIMM после успешного завершения постоянной записи.25. The apparatus of claim 24, wherein the host is further configured to receive a persistent write completion indication along with an associated WID from the NVDIMM upon successful completion of the persistent write. 26. Устройство по п. 25, причем хост дополнительно сконфигурирован, чтобы принимать от NVDIMM два или более указания завершения постоянной записи в порядке, отличном от порядка, в котором соответствующие две или более команды постоянной записи были отправлены в NVDIMM.26. The apparatus of claim 25, wherein the host is further configured to receive two or more permanent write completion indications from the NVDIMM in an order different from the order in which the corresponding two or more permanent write commands were sent to the NVDIMM. 27. Устройство по п. 26, причем хост дополнительно сконфигурирован, чтобы принимать пакет статусов от NVDIMM, пакет статусов содержит WID для команд постоянной записи, исполнение которых было завершено.27. The apparatus of claim 26, wherein the host is further configured to receive a status packet from the NVDIMM, the status packet contains the WID for the permanent write commands that have completed execution. 28. Устройство по п. 27, причем WID содержит многобитовую идентификацию постоянной записи и действительный бит.28. The apparatus of claim 27, wherein the WID contains a multi-bit permanent entry identification and a valid bit. 29. Устройство по п. 24, причем хост дополнительно сконфигурирован, чтобы отправлять команду FLUSH в NVDIMM, причем команда FLUSH указывает, что все предшествующие записи, буферизованные в энергозависимых носителях, должны помещаться в энергонезависимую или постоянную память посредством NVDIMM.29. The apparatus of claim 24, wherein the host is further configured to send a FLUSH command to the NVDIMM, wherein the FLUSH command indicates that all previous writes buffered in volatile media should be placed in non-volatile or persistent memory by the NVDIMM. 30. Устройство по п. 29, причем хост дополнительно сконфигурирован, чтобы принимать указание завершения FLUSH после завершения посредством NVDIMM исполнения команды FLUSH.30. The apparatus of claim 29, wherein the host is further configured to receive a FLUSH completion indication after the NVDIMM completes execution of the FLUSH command.
RU2020110130A 2017-09-15 2018-08-14 Permanent records for non-volatile memory RU2780441C2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/706,530 2017-09-15
US15/706,530 US11194524B2 (en) 2017-09-15 2017-09-15 Apparatus and method for performing persistent write operations using a persistent write command
PCT/US2018/046590 WO2019055164A1 (en) 2017-09-15 2018-08-14 Persistent writes for non-volatile memory

Publications (3)

Publication Number Publication Date
RU2020110130A RU2020110130A (en) 2021-10-15
RU2020110130A3 RU2020110130A3 (en) 2022-03-29
RU2780441C2 true RU2780441C2 (en) 2022-09-23

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100070631A1 (en) * 2008-09-15 2010-03-18 Dell Products L.P. System and Method for Management of Remotely Shared Data
US20120017038A1 (en) * 2003-12-30 2012-01-19 Sergey Anatolievich Gorobets Non-Volatile Memory And Method With Control Data Management
US20160034225A1 (en) * 2013-03-14 2016-02-04 Hewlett-Packard Development Company, L.P. Multiversioned nonvolatile memory hierarchy for persistent memory
US20170147207A1 (en) * 2015-11-20 2017-05-25 Arm Ltd. Non-volatile buffer for memory operations
RU2623801C1 (en) * 2013-07-26 2017-06-29 Интел Корпорейшн Interface of non-volatile memory

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120017038A1 (en) * 2003-12-30 2012-01-19 Sergey Anatolievich Gorobets Non-Volatile Memory And Method With Control Data Management
US20100070631A1 (en) * 2008-09-15 2010-03-18 Dell Products L.P. System and Method for Management of Remotely Shared Data
US20160034225A1 (en) * 2013-03-14 2016-02-04 Hewlett-Packard Development Company, L.P. Multiversioned nonvolatile memory hierarchy for persistent memory
RU2623801C1 (en) * 2013-07-26 2017-06-29 Интел Корпорейшн Interface of non-volatile memory
US20170147207A1 (en) * 2015-11-20 2017-05-25 Arm Ltd. Non-volatile buffer for memory operations

Similar Documents

Publication Publication Date Title
US11650765B2 (en) Apparatus and method for performing persistent write operations using a persistent write command
KR102384907B1 (en) Record credit management for non-volatile memory
KR101861924B1 (en) Storing parity data separate from protected data
US8949492B2 (en) Apparatus including buffer allocation management and related methods
JP5759623B2 (en) Apparatus including memory system controller and associated method
US9076528B2 (en) Apparatus including memory management control circuitry and related methods for allocation of a write block cluster
US8543758B2 (en) Apparatus including memory channel control circuit and related methods for relaying commands to logical units
US20190042413A1 (en) Method and apparatus to provide predictable read latency for a storage device
KR20090019593A (en) Ecc control circuit and multi channel memory system icluding the same
KR102335838B1 (en) Permanent write data to energy-back memory
US20180150233A1 (en) Storage system
EP3696680A1 (en) Method and apparatus to efficiently track locations of dirty cache lines in a cache in a two level main memory
US10180792B1 (en) Cache management in data storage systems
US11500581B2 (en) Efficient TLP fragmentations in extended LBA environment
RU2780441C2 (en) Permanent records for non-volatile memory
CN114730247A (en) Storage device with minimum write size of data