KR102344768B1 - 메모리 프로토콜 - Google Patents
메모리 프로토콜 Download PDFInfo
- Publication number
- KR102344768B1 KR102344768B1 KR1020217028132A KR20217028132A KR102344768B1 KR 102344768 B1 KR102344768 B1 KR 102344768B1 KR 1020217028132 A KR1020217028132 A KR 1020217028132A KR 20217028132 A KR20217028132 A KR 20217028132A KR 102344768 B1 KR102344768 B1 KR 102344768B1
- Authority
- KR
- South Korea
- Prior art keywords
- read
- memory device
- host
- memory
- controller
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/26—Using a specific storage system architecture
- G06F2212/261—Storage comprising a plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
- Communication Control (AREA)
Abstract
본 개시는 메모리 프로토콜과 관련된 장치 및 방법을 포함한다. 예시적인 장치는 블록 구성 레지스터를 사용하여 호스트로부터 수신된 명령들에 기초하여 메모리 디바이스의 다수의 블록 버퍼들 상의 연산들을 수행할 수 있고, 연산들은 다수의 블록 버퍼들로부터 데이터를 판독하고 메모리 디바이스 상의 다수의 블록 버퍼들에 데이터를 기록할 수 있다.
Description
본 개시는 일반적으로 메모리 디바이스에 관한 것으로, 보다 구체적으로 메모리 프로토콜을 위한 장치 및 방법에 관한 것이다.
메모리 디바이스들은 일반적으로 컴퓨터 또는 기타 전자 디바이스들에 내부, 반도체, 집적 회로로 제공된다. 휘발성 메모리와 비-휘발성 메모리를 포함하여 다양한 유형의 메모리가 존재한다. 휘발성 메모리는 데이터를 유지하기 위해 전력을 필요로 할 수 있으며, 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM) 및 동기식 동적 랜덤 액세스 메모리(SDRAM)를 포함한다. 비-휘발성 메모리는 전원이 공급되지 않을 때 저장된 데이터를 유지함으로써 영구 데이터를 제공할 수 있으며, NAND 플래시 메모리, NOR 플래시 메모리, 판독 전용 메모리(ROM), 전기적 소거 가능 프로그램 가능 ROM(EEPROM), 소거 가능 프로그램 가능 ROM(EPROM), 및 위상 변화 랜덤 액세스 메모리(PCRAM), 저항성 랜덤 액세스 메모리(RRAM), 및 자기 저항 랜덤 액세스 메모리(MRAM)와 같은 저항 가변 메모리 등을 포함할 수 있다.
메모리는 광범위한 전자 어플리케이션들을 위한 휘발성 및 비-휘발성 데이터 저장소로도 활용된다. 비-휘발성 메모리는, 예를 들어, 개인용 컴퓨터, 휴대용 메모리 스틱, 디지털 카메라, 셀룰러 전화기, MP3 플레이어와 같은 휴대용 음악 플레이어, 영화 플레이어, 및 다른 전자 디바이스들에 사용될 수 있다. 메모리 셀들은 어레이들로 배열될 수 있으며, 어레이들은 메모리 디바이스에서 사용된다.
메모리는 컴퓨팅 디바이스들에 사용되는 메모리 모듈(예를 들어, DIMM(dual in-line memory module))의 일부일 수 있다. 메모리 모듈은 예를 들어 DRAM과 같은 휘발성 메모리 및/또는 예를 들어 플래시 메모리 또는 RRAM과 같은 비-휘발성 메모리를 포함할 수 있다. DIMM들은 컴퓨팅 시스템들의 메인 메모리를 사용할 수 있다.
도 1은 본 개시의 다수의 실시 예들에 따른 메모리 시스템을 포함하는 컴퓨팅 시스템의 형태의 장치의 블록도이다.
도 2a 내지 2c는 본 개시의 다수의 실시 예들에 따른 블록 버퍼(block buffer)와 관련된 레지스터들(registers) 및 명령들(commands)을 도시한다.
도 3은 본 개시의 다수의 실시 예들에 따른 판독 증분 정보(read increment information)를 포함하는 판독 명령을 도시한다.
도 4는 본 개시의 다수의 실시 예들에 따른 다수의 판독 명령들 및 배리어 명령(barrier command)을 도시한다.
도 5는 본 개시의 다수의 실시 예들에 따른 버스트 길이 정보(burst length information)를 포함하는 판독 명령 및 기록 명령을 도시한다.
도 6a 내지 도 6d는 본 개시의 다수의 실시 예들에 따른 판독 버퍼 및 기록 버퍼의 크기를 나타내는 레지스터를 도시한다.
도 2a 내지 2c는 본 개시의 다수의 실시 예들에 따른 블록 버퍼(block buffer)와 관련된 레지스터들(registers) 및 명령들(commands)을 도시한다.
도 3은 본 개시의 다수의 실시 예들에 따른 판독 증분 정보(read increment information)를 포함하는 판독 명령을 도시한다.
도 4는 본 개시의 다수의 실시 예들에 따른 다수의 판독 명령들 및 배리어 명령(barrier command)을 도시한다.
도 5는 본 개시의 다수의 실시 예들에 따른 버스트 길이 정보(burst length information)를 포함하는 판독 명령 및 기록 명령을 도시한다.
도 6a 내지 도 6d는 본 개시의 다수의 실시 예들에 따른 판독 버퍼 및 기록 버퍼의 크기를 나타내는 레지스터를 도시한다.
본 개시는 메모리 프로토콜(memory protocol)과 관련된 장치들 및 방법들을 포함한다. 예시적인 장치는 블록 구성 레지스터(block configuration register)를 사용하여 호스트로부터 수신된 명령들에 기초하여 메모리 디바이스 상의 다수의 블록 버퍼들 상에서 연산들(operations)을 수행할 수 있고, 연산들은 상기 다수의 블록 버퍼들로부터 데이터를 판독하고 메모리 디바이스 상의 다수의 블록 버퍼들에 데이터를 기록할 수 있다.
본 개시의 하나 이상의 실시 예들에서, 블록 구성 레지스터는 메모리 디바이스 상에 다수의 블록 버퍼들을 정의하는데 사용될 수 있다. 호스트는 블록 버퍼들에 직접 액세스하여 블록 버퍼 상에서 판독 및/또는 기록 명령들을 실행할 수 있다. 블록 구성 레지스터는 관련된 블록 버퍼 레지스터들과 타겟 어드레스 레지스터들의 쌍들을 포함할 수 있으며, 여기서, 블록 버퍼 레지스터들 각각은 각각의 블록 버퍼에 대한 시작 어드레스(start address) 및 종료 어드레스(end address)를 포함하고 타겟 어드레스 레지스터들 각각은 각각의 블록 버퍼와 연관된 메모리 어레이에 타겟 어드레스를 포함한다. 호스트는 블록 버퍼들의 타겟 어드레스, 시작 어드레스 및 종료 어드레스와 연관된 블록 버퍼들로부터 데이터를 판독 및/또는 기록하기 위해 메모리 디바이스에 판독 및/또는 기록 명령을 송신할 수 있다. 블록 구성 레지스터는 또한 판독 및/또는 기록 명령들이 메모리 장치에 의해 수신 및 실행됨에 따라 호스트에 의해 업데이트되는 블록 버퍼들 내의 데이터에 대한 상태 정보를 포함하는 상태 레지스터를 포함할 수 있다.
본 개시의 하나 이상의 실시 예들에서, 메모리 프로토콜은 결정적 및/또는 비-결정적 타이밍으로 연산들을 수행하는데 사용될 수 있다. 메모리 프로토콜은 판독 증분 값(read increment value)을 갖는 판독 명령들을 전송하는 것을 포함할 수 있고, 여기서, 판독 증분 값은 메모리 디바이스 판독 식별 번호를 판독 명령에 할당하는데 사용되는 카운터를 증가시키는 값을 제어기에 지시한다. 메모리는 호스트로부터 배리어 명령을 전송하는 것을 포함할 수 있고, 여기서, 배리어 명령은 메모리 디바이스에 의해 이전에 수신된 명령들이 배리어 명령에 후속하여 메모리 디바이스에 의해 수신된 명령 전에 수행되어야 함을 지시한다.
하나 이상의 실시 예들에서, 메모리 프로토콜은 메모리 디바이스에 대한 버스트 길이(burst length)를 지시하는 버스트 길이 신호를 갖는 명령들을 전송하는 것을 포함할 수 있다. 버스트 길이 신호는 명령에 대한 요청 크기 및/또는 명령이 실행될 유형 메모리 디바이스에 기초할 수 있다. 메모리 프로토콜은 제1 특정 크기의 판독 버퍼 부분 및 제2 특정 크기의 기록 버퍼 부분을 갖는 버퍼를 구성하는 버퍼 레지스터를 설정하기 위한 명령들을 전송하는 것을 포함할 수 있다.
다음의 본 개시의 상세한 설명에서, 본 명세서의 일부를 형성하고 본 개시의 다수의 실시 예들이 어떻게 실행될 수 있는지를 예시적으로 도시한 첨부 도면들을 참조한다. 이러한 실시 예들은 당업자가 본 개시의 실시 예들을 실시할 수 있도록 충분히 상세하게 설명되며, 다른 실시 예들이 이용될 수 있고, 프로세스, 전기적 및/또는 구조적 변경들이 본 개시의 범위를 벗어나지 않고 이루어질 수 있음을 이해해야 한다. 본 명세서에서 사용된 지정자 "N"은 그렇게 지정된 다수의 특정 특징들이 본 개시의 다수의 실시 예들에 포함될 수 있음을 나타낸다.
본 명세서에서 사용되는 "다수의" 무언가는 그러한 것들 중 하나 이상을 지칭할 수 있다. 예를 들어, 다수의 메모리 디바이스들은 하나 이상의 메모리 디바이스들을 지칭할 있다. 또한, 도면에서 참조 번호들과 관련하여 본 명세서에서 사용되는 "N"과 같은 지정자는 그렇게 지정된 다수의 특정 특징들이 본 개시의 다수의 실시 예들에 포함될 수 있음을 나타낸다.
본 명세서의 도면들은 첫 번째 숫자 또는 숫자들은 도면 번호에 대응되고 나머지 숫자들은 도면에서 요소 또는 구성 요소를 식별하는 번호 부여 규칙을 따른다. 상이한 도면들 사이의 유사한 요소들 또는 구성 요소들은 유사한 숫자들을 사용하여 식별될 수 있다. 인식할 수 있는 바와 같이, 본 명세서의 다양한 실시 예들에 도시된 요소들은 본 개시의 다수의 추가적인 실시 예들을 제공하도록 추가, 교환 및/또는 제거될 수 있다. 또한, 도면들에 제공된 구성 요소들의 비율 및 상대적 스케일은 본 개시의 다양한 실시 예들을 설명하기 위한 것이지 제한적인 의미로 사용되어서는 안 된다.
도 1은 본 개시의 하나 이상의 실시 예들에 따른 다수의 메모리 시스템들(104-1 내지 104-N) 형태의 장치를 포함하는 컴퓨팅 시스템(100)의 기능 블록도이다. 본 명세서에 사용된 바와 같이, "장치"는, 이에 제한되는 것은 아니지만, 예를 들어, 회로 또는 전기 회로망, 다이 또는 다이스, 모듈 또는 모듈들, 디바이스 또는 디바이스들, 또는 시스템 또는 시스템들과 같은 임의의 다양한 구조들 또는 구조들의 조합을 지칭할 수 있다. 도 1에 도시된 실시 예에서, 메모리 시스템들(104-1 내지 104-N)은 하나 이상의 메모리 디바이스들(110-1, ..., 110-X, 110-Y)을 포함할 수 있다. 하나 이상의 실시 예들에서, 메모리 디바이스들(110-1, ..., 110-X, 110-Y)은 듀얼 인-라인 메모리 모듈(dual in-line memory module, DIMM)들일 수 있다. DIMM들은 예를 들어 각각 NVDIMM 및 DRAM DIMM과 같은 휘발성 메모리 및/또는 비-휘발성 메모리를 포함할 수 있다. 다수의 실시 예들에서, 메모리 시스템들(104-1 내지 104-N)은 멀티-칩 디바이스를 포함할 수 있다. 멀티-칩 디바이스는 다수의 상이한 메모리 유형들 및/또는 메모리 모듈들을 포함할 수 있다. 예를 들어, 메모리 시스템은 임의의 유형의 모듈에 비-휘발성 또는 휘발성 메모리를 포함할 수 있다. 도 1 내지 도 4와 관련하여 하기에서 설명되는 예들은 메모리 모듈로서 DIMM을 사용하지만, 메모리가 결정적 및/또는 비-결정적 명령들을 실행할 수 있는 임의의 메모리 시스템에 본 개시의 프로토콜이 사용될 수 있다. 도 1에서, 메모리 시스템(104-1)은 채널(112-1)을 통해 호스트에 연결되고 메모리 디바이스들(110-1 내지 110-X)을 포함할 수 있고, 메모리 시스템(104-N)은 채널(112-N)을 통해 호스트에 연결되고 메모리 디바이스들(110-1 내지 110-Y)을 포함할 수 있다. 이 예에서, 각각의 메모리 디바이스들(110-1, ..., 110-X, 110-Y)은 제어기(114)를 포함한다. 제어기(114)는 호스트(102)로부터 명령들을 수신하고 메모리 디바이스 상에서 명령들의 실행을 제어할 수 있다. 또한, 다수의 실시 예들에서, 본 개시의 프로토콜은 제어기가 없는 메모리 디바이스(예를 들어, DIMM)에 의해 구현될 수 있고 본 개시의 프로토콜을 사용하는 명령들의 실행은 메모리 디바이스에 내장될 수 있다. 호스트(102)는 메모리 디바이스의 유형에 따라, 본 개시의 프로토콜 및/또는 종래의 프로토콜을 사용하는 메모리 디바이스들(110-1, ..., 110-X, 110-Y)에 명령들을 전송할 수 있다. 예를 들어, 호스트는 NVDIMM과 동일한 채널(예를 들어, 채널(112-1)) 상에서 통신하기 위해 본 개시의 프로토콜을 사용할 수 있고, 모두 동일한 메모리 시스템 상에 있는 DRAM DIMM과 통신하기 위해 종래의 프로토콜을 사용할 수 있다.
도 1에 도시된 바와 같이, 호스트(102)는 메모리 시스템(104-1 내지 104-N)에 연결될 수 있다. 다수의 실시 예들에서, 각 메모리 시스템(104-1 내지 104-N)은 채널을 통해 호스트(102)에 연결될 수 있다. 도 1에서, 메모리 시스템(104-1)은 채널(112-1)을 통해 호스트(102)에 연결되고 메모리 시스템(104-N)은 채널(112-N)을 통해 호스트(102)에 연결된다. 호스트(102)는, 다른 호스트 시스템들 중에서, 랩탑 컴퓨터, 퍼스널 컴퓨터, 디지털 카메라, 디지털 기록 및 재생 디바이스, 이동 전화기, PDA, 메모리 카드 판독기, 인터페이스 허브일 수 있으며, 예를 들어 프로세서와 같은 메모리 액세스 디바이스를 포함할 수 있다. 당업자는 "프로세서"가 병렬 처리 시스템(parallel processing system), 다수의 코프로세서들(coprocessors) 등과 같은 하나 이상의 프로세서들을 의도할 수 있다는 것을 이해할 것이다.
호스트(102)는 메모리 시스템들(104-1 내지 104-N)과 통신하기 위한 호스트 제어기(108)를 포함한다. 호스트 제어기(108)는 채널들(112-1 내지 112-N)을 통해 메모리 디바이스들(110-1, .., 110-X, 110-Y)에 명령들을 전송한다. 호스트 제어기(108)는 메모리 디바이스들(110-1, ??, 110-X, 110-Y) 및/또는 각각의 메모리 디바이스들(110-1, ??, 110-X, 110-Y) 상의 제어기(114)와 통신하여, 다른 연산들 중에서, 데이터를 기록하고, 판독하고, 소거한다. 물리적 호스트 인터페이스는 메모리 시스템들(104-1 내지 104-N)과 물리적 호스트 인터페이스를 위한 호환 가능한 수신기들(receptors)을 갖는 호스트(102) 사이에서 제어, 어드레스, 데이터 및 다른 신호들을 전달하기 위한 인터페이스를 제공할 수 있다. 신호는 예를 들어 채널들(112-1 내지 112-N)을 통해 데이터 버스 및/또는 어드레스 버스와 같은 다수의 버스들 상에서 호스트(102)와 메모리 디바이스들(110-1 ,. . 110-X, 110-Y) 사이에서 통신된다.
호스트 제어기(108) 및/또는 메모리 디바이스 상의 제어기(114)는 예를 들어 하드웨어와 같은 제어 회로, 펌웨어 및/또는 소프트웨어를 포함할 수 있다. 하나 이상의 실시 예들에서, 호스트 제어기(108) 및/또는 제어기(114)는 물리적 인터페이스를 포함하는 인쇄 회로 기판에 결합된 주문형 집적 회로(ASIC)일 수 있다. 또한, 각 메모리 디바이스(110-1, ..., 110-X, 110-Y)는 휘발성 및/또는 비-휘발성 메모리의 버퍼(116) 및 레지스터(118)를 포함할 수 있다. 버퍼(116)는 판독 명령들 및/또는 기록 명령들의 실행 중에 사용되는 데이터를 버퍼링하는데 사용될 수 있다. 버퍼(116)는 기록 버퍼, 판독 버퍼 및 다수의 블록 버퍼들로 분할될 수 있다. 기록 버퍼 전용 공간 및 판독 버퍼 전용 공간의 양은 다수의 레지스터들(118)를 프로그래밍하는 호스트 제어기(108)에 의해 제어될 수 있다. 호스트는 특정 메모리 디바이스로 전송되는 명령들의 유형에 기초하여, 기록 버퍼 및 판독 버퍼에 전용된 버퍼(116) 내의 공간의 양을 제어할 수 있다. 다수의 실시 예들에서, 각각의 메모리 디바이스(110-1, ..., 110-X, 110-Y)는 고정된 기록 버퍼 크기 및/또는 고정된 판독 버퍼 크기를 가질 수 있다. 버퍼들(116)은 다수의 블록 버퍼들을 포함할 수 있다. 다수의 블록 버퍼들 각각의 크기는 다수의 레지스터들(118)을 프로그래밍함으로써 호스트에 의해 제어될 수 있다. 레지스터들(118)은 각각의 블록 레지스터의 시작 및 종료 어드레스 및 각 블록 레지스터와 연관된 메모리 어레이의 타겟 어드레스를 설정하도록 프로그래밍될 수 있다. 호스트는 메모리 디바이스들(110-1, ??, 110-X, 110-Y)에 명령들을 전송함으로써 블록 레지스터들에 데이터를 판독 및/또는 기록할 수 있다..
메모리 디바이스들(110-1, ..., 110-X, 110-Y)은 메모리 시스템에 대한 메인 메모리를 제공할 수 있거나 메모리 시스템 전반에 걸쳐 추가 메모리 또는 저장소로서 사용될 수 있다. 각각의 메모리 디바이스(110-1, ..., 110-X, 110-Y)는 메모리 셀들, 예를 들어 비-휘발성 메모리 셀들의 하나 이상의 어레이들을 포함할 수 있다. 어레이들은, 예를 들어 NAND 아키텍처를 갖는 플래시 어레이들일 수 있다. 실시 예들은 특정 유형의 메모리 디바이스로 제한되지 않는다. 예를 들어, 메모리 디바이스는 RAM, ROM, DRAM, SDRAM, PCRAM, RRAM 및 플래시 메모리 등을 포함할 수 있다.
도 1의 실시 예는 본 개시의 실시 예들을 모호하게 하지 않기 위해 도시되지 않은 부가의 회로를 포함할 수 있다. 예를 들어, 메모리 시스템들(104-1 내지 104-N)은 I/O 회로를 통해 I/O 연결들 상으로 제공되는 어드레스 신호들을 래칭하기 위해 어드레스 회로를 포함할 수 있다. 어드레스 신호들은 행 디코더 및 열 디코더에 의해 수신되고 디코딩되어 메모리 디바이스들(110-1 내지 110-N)을 액세스할 수 있다. 당업자는 어드레스 입력 연결들의 수가 메모리 디바이스들(110-1, ..., 110-X, 110-Y)의 밀도 및 아키텍처에 의존할 수 있음을 알 것이다.
도 2a 내지 도 2c는 본 개시의 다수의 실시 예에 따른 블록 버퍼와 연관된 레지스터들 및 명령들을 도시한다. 다수의 실시 예들에서, 메모리 디바이스는 호스트에 의해 어드레싱 가능한 다수의 블록 버퍼들을 포함할 수 있고, 여기서 호스트는 블록 버퍼에서 판독 및/또는 기록 명령들을 수행하기 위해 명령을 전송할 수 있다. 블록 버퍼들의 크기는 호스트에 의해 프로그래밍될 수 있는 블록 구성 레지스터들에 의해 지시될 수 있다. 블록 버퍼들의 크기는 메모리 디바이스의 메모리 어레이의 블록의 크기와 매칭되도록 프로그래밍될 수 있다. 도 2a는 블록 구성 레지스터들의 블록 버퍼 어드레스 레지스터들(230-0 내지 232-R)를 도시하고, 도 2b는 블록 구성 레지스터들의 타겟 어드레스 레지스터들(232-0 내지 232-R)를 도시한다. 블록 구성 레지스터들은 관련된 블록 버퍼 어드레스 레지스터들과 타켓 어드레스 레지스터들의 쌍들을 포함한다. 각각의 블록 버퍼 어드레스 레지스터는 메모리 디바이스의 메모리 어레이 내의 타겟 어드레스와 연관된다. 대응하는 블록 버퍼 레지스터들의 정보에 의해 지시되는 블록 버퍼에 기록된 데이터는 데이터가 메모리에 커밋(commit)될 때 메모리 어레이의 연관된 타켓 어드레스에 기록된다. 블록 버퍼로부터 판독되는 데이터는 블록과 연관된 관련 타켓 어드레스에서 찾아져 이동된다. 각 블록 버퍼 어드레스 레지스터는 버퍼 시작 어드레스(235-0 내지 235-R), 버퍼 종료 어드레스(233-0 내지 233-R) 및 상태 정보(231-0 내지 231-R)를 포함할 수 있다. 각 버퍼에 대한 버퍼 시작 어드레스 및 버퍼 종료 어드레스는 버퍼의 크기를 결정하는 데 사용될 수 있다. 상태 정보는 블록 버퍼에 유효한 데이터가 있는지 여부, 명령과 연관된 데이터가 이동되었는지 여부 및/또는 블록 버퍼 데이터에 복구 가능한 오류 및/또는 치명적인 오류가 있는지 여부를 나타내는 정보를 포함할 수 있다. 또한 각 블록 버퍼에 대한 상태 정보를 저장하는 상태 레지스터가 있을 수 있으므로, 특정 블록 버퍼의 상태를 결정하기 위해 상태 레지스터만 판독될 필요가 있다.
도 2c는 블록 버퍼에서 연산을 수행하기 위한 명령(234)을 도시한다. 명령(234)은 명령이 블록 버퍼 상에서 수행될 것을 나타내는 블록 버퍼 윈도우 정보, 명령이 실행될 블록 버퍼를 나타내는 블록 버퍼 선택 정보, 및 명령과 연관된 데이터가 기록 및/또는 판독될 블록 버퍼 상의 어드레스를 나타내는 블록 버퍼 어드레스 정보를 포함한다.
도 3은 본 개시의 다수의 실시 예들에 따른 판독 증분 정보를 포함하는 판독 명령을 도시한다. 도 3에서, 판독 명령(344)은 판독 식별 번호(RID) 및 판독 증분 정보(RID_INC)를 포함할 수 있다. 판독 식별 번호는 명령을 식별하는 데 사용될 수 있다. 예를 들어, 호스트는 특정 판독 식별 번호를 명령에 할당하고 상기 명령을 메모리 디바이스에 전송할 수 있다. 메모리 디바이스는 판독 식별 번호를 명령에 할당할 수 있다. 메모리 디바이스는 명령에 할당할 판독 식별 번호를 추적하기 위한 카운터를 포함할 수 있다. 카운터는 0으로 초기화되고 판독 명령이 메모리 디바이스에 의해 수신될 때마다 1씩 증가된다. 명령들이 비-결정적 타이밍으로 실행되는 메모리 디바이스들에서, 명령들은 메모리 디바이스에 의해 임의의 순서로 실행될 수 있으므로 매번 카운터를 1씩 증가시키면 메모리 디바이스에 의해 특정 명령에 할당된 판독 식별 번호와 상이한, 호스트에 의해 특정 명령에 할당된 판독 식별 번호를 초래할 수 있다. 예를 들어, 호스트 및 메모리 디바이스는 각각 판독 명령들에 할당하기 위해 4 개의 이용 가능한 판독 식별 번호들을 가질 수 있고 임의의 주어진 판독 식별 번호는 임의의 주어진 시간에 오직 한번만 존재할 수 있다. 호스트가 4 개의 명령들 모두를 메모리 디바이스에 할당하여 전송했지만, 메모리 디바이스로부터 제1, 제2 및 제4 명령이 실행되었음을 나타내는 지시만을 수신하면, 호스트는 제3 식별 번호를 갖는 명령이 메모리 디바이스에 의해 실행될 때까지 제3 식별 번호를 다른 명령에 할당할 수 없다. 제1 및 제2 판독 식별 번호들은 호스트에 의해 다시 사용될 수 있지만, 제3 판독 식별 번호는 호스트에 의해 사용되어서는 안 된다. 판독 증분 정보는 판독 명령과 함께 송신되어 판독 식별 번호가 스킵(skip)되어야 한다는 것을 메모리 디바이스에 지시할 수 있다. 상기 예에서, 판독 증분 정보는 1의 판독 증분 양을 포함 할 수 있으며, 이는 제3 식별 번호가 스킵되어야 함을 나타낸다. 메모리 디바이스는 판독 증분 정보에 기초하여 명령에 할당하기 위해 식별 번호를 증가시킬 수 있고, 따라서 호스트에 의해 명령에 할당된 다음 이용 가능한 판독 식별 번호는 메모리 디바이스에 의해 명령에 할당될 것이다. 도 3에서, 메모리 디바이스(304)는 호스트(302)로부터 명령(344)을 수신할 수 있고, 추가 1 및 메모리 디바이스(304)에 의해 명령 할당된 가장 최근의 판독 식별 번호에 대한 판독 증분(RID_INC) 정보와 관련된 값에 기초하는 판독 식별 번호(345)를 할당할 수 있다.
도 4는 본 개시의 다수의 실시 예들에 따른 다수의 판독 명령들 및 배리어 명령을 도시한다. 도 4에서, 호스트(402)는 판독 명령(444-1, 444-2 및 444-3) 및 배리어 명령(446)을 메모리 디바이스(404)에 전송할 수 있다. 배리어 명령(446)은 배리어 명령(446) 이전에 메모리 디바이스(404)에 전송된 명령들(444-1, 444-2 및 444-4)이 배리어 명령(446) 후에 메모리 디바이스(404)에 전송된 명령들(444-4, 444-5 및 444-6) 전에 실행될 수 있음을 지시할 수 있다. 도 4에서, 판독 명령(444-3)이 실행되었음을 지시하는 판독 식별(RID3)(448-3)은 배리어 명령(446)이 메모리 디바이스로 전송되기 전에 호스트로 전송된다. 배리어 명령(446)은 임의의 후속 명령들 전에 판독 명령들(444-1 및 444-2)이 실행되어야 함을 지시한다. 호스트는 판독 명령(444-1 및 444-2) 후에 실행되는 배리어 명령(446) 이후에 판독 명령들(444-4, 444-5 및 444-6)을 메모리 디바이스에 전송한다. 메모리 디바이스는 판독 명령들(444-1 및 444-2)을 실행하고 판독 식별들(448-1 및 448-2)을 전송한다. 배리어 명령이 전에 메모리 디바이스로 전송된 모든 명령들이 일단 실행되면, 배리어 명령 후에 메모리 디바이스로 전송된 명령들이 실행될 수 있다. 따라서, 메모리 디바이스는 판독 명령들(444-4, 444-5, 444-6)을 실행하고 판독 식별들(448-4, 448-5 및 448-6)을 호스트(402)로 전송한다.
다수의 실시 예들에서, 배리어 명령들은 모든 유형의 명령들, 판독 명령들 또는 기록 명령들에만 적용될 수 있다. 예를 들어, 배리어 명령 이전에 전송된 모든 판독 명령이 배리어 명령에 후속하여 전송되는 임의의 판독 명령 전에 실행되도록 지시하기 위해 판독 배리어 명령이 전송될 수 있다. 배리어 명령들은 호스트에 의해 사용되어 메모리가 비-결정적 타이밍을 갖는 명령들을 실행할 때 명령들의 실행 타이밍을 제어할 수 있다.
도 5는 본 개시의 다수의 실시 예들에 따른 버스트 길이 정보(burst length information)를 포함하는 판독 명령 및 기록 명령을 도시한다. 도 5에서, 판독 명령(544)은 버스트 길이 지시를 포함할 수 있고 기록 명령(562)은 버스트 길이 지시를 포함할 수 있다. 버스트 길이는 판독 및/또는 기록 명령들의 지시를 통해 호스트에 의해 동적으로 변경될 수 있다. 버스트 길이 지시 명령은 버스트 길이 지시 명령을 포함하는 임의의 유형의 명령으로 호스트(502)에 의해 메모리 디바이스(504)로 전송될 수 있다. 버스트 길이는 명령과 관련된 데이터의 양, 명령의 유형, 명령이 실행될 메모리 디바이스의 유형, 및 레이턴시 또는 대역폭 최적화가 필요한지 여부에 기초하여 호스트에 의해 변경될 수 있다.
도 6a 내지 도 6d는 본 개시의 다수의 실시 예들에 따른 판독 버퍼 및 기록 버퍼의 크기를 지시하는 레지스터를 도시한다. 도 6a 및 도 6b에서, 레지스터는 다수의 판독 엔트리들(652-1 및 652-2) 및 다수의 기록 엔트리들(654-4 및 654-2)를 지시하도록 프로그래밍될 수 있다. 레지스터는 메모리 디바이스에 위치할 수 있으며 호스트는 레지스터를 프로그래밍할 수 있다. 레지스터에 지시된 판독 엔트리들(652-1 및 652-2)의 수 및 기록 엔트리들(654-4 및 654-2)의 수는 판독 버퍼 및 기록 버퍼의 크기를 제어하는데 사용될 수 있다. 예를 들어, 판독 엔트리 지시(651-1)는 특정 크기를 갖는 판독 버퍼(656-1)에 대응할 수 있고, 기록 엔트리 지시(654-1)는 특정 크기를 갖는 기록 버퍼(658-1)에 대응할 수 있다. 판독 버퍼(656-1)의 크기는 기록 버퍼(658-1)의 크기보다 작을 수 있다. 판독 엔트리 지시(651-2)는 특정 크기를 갖는 판독 버퍼(656-2)에 대응할 수 있고, 기록 엔트리 지시(654-2)는 특정 크기를 갖는 기록 버퍼(658-2)에 대응할 수 있다. 판독 버퍼(656-2)의 크기는 기록 버퍼(658-1) 및 판독 버퍼(656-1)의 크기보다 클 수 있다. 레지스터 내의 판독 엔트리 지시(652) 및 기록 엔트리 지시(654)는 호스트에 의해 발행되는 판독 및 기록 명령들의 상대적인 양에 기초하여 호스트에 의해 업데이트될 수 있다. 판독 엔트리 지시(652) 및 기록 엔트리 지시(654)는 현재 판독 및/또는 기록 버퍼 엔트리들이 업데이트 판독 및/또는 기록 지시에 의해 수용될 수 있을 때마다 업데이트될 수 있다.
다수의 실시 예들에서, 버퍼는 판독 및 기록 엔트리들 모두를 포함할 수 있고, 레지스터는 버퍼에 대한 판독 엔트리들의 임계 수 및 버퍼에 대한 기록 엔트리들의 임계 수를 정의하도록 프로그래밍될 수 있다. 호스트는 버퍼의 주요한 판독 엔트리들 및 기록 엔트리들의 수를 추적하여 버퍼가 레지스터에 의해 정의된 판독 엔트리들의 임계 수 및 기록 엔트리들의 임계 수보다 많은 엔트리들을 포함하지 않도록 할 수 있다. 레지스터는 버퍼에 대한 판독 엔트리들의 임계 수 및 버퍼에 대한 기록 엔트리들의 임계수를 변경하도록 업데이트될 수 있다.
특정 실시 예들이 본 명세서에 도시되고 설명되었지만, 당업자는 동일한 결과를 얻기 위해 계산된 배열이 도시된 특정 실시 예를 대체할 수 있다는 것을 이해할 것이다. 본 개시는 본 개시의 다양한 실시 예들의 적응들 또는 변형들을 포함하도록 의도된다. 상기 설명은 예시적인 방식으로 이루어졌으며 제한적인 것이 아님을 이해해야 한다. 상기 실시 예들의 조합 및 본원에서 구체적으로 기술되지 않은 다른 실시 예들은 상기 설명을 검토하면 당업자에게 명백할 것이다. 본 개시의 다양한 실시 예들의 범위는 상기 구조들 및 방법들이 사용되는 다른 어플리케이션들을 포함한다. 따라서, 본 개시의 다양한 실시 예들의 범위는 첨부된 청구 범위를 참조하여, 그러한 청구 범위가 부여되는 등가물의 전체 범위와 함께 결정되어야 한다.
전술한 상세한 설명에서, 다양한 특징들은 본 발명을 능률화할 목적으로 단일 실시 예에서 함께 그룹화된다. 본 개시의 방법은 본 개시의 개시된 실시 예들이 각 청구항에 명시적으로 언급된 것보다 많은 특징을 이용해야 한다는 의도를 반영하는 것으로 해석되어서는 안 된다. 오히려, 이하의 청구 범위가 반영하는 바와 같이, 발명의 주제는 단일 개시된 실시 예의 모든 특징보다 적다. 따라서, 이하의 청구 범위는 발명의 상세한 설명에 포함되며, 각 청구항은 별개의 실시 예로서 독자적으로 기재된다.
Claims (12)
- 반도체 장치에 있어서,
제어기를 포함하는 메모리 디바이스를 포함하고,
상기 제어기는 판독 증분 값(read increment value)을 포함하는 호스트로부터 수신된 판독 명령에 기초하여 상기 메모리 디바이스 상에서 연산들을 수행하도록 구성되고,
상기 판독 증분 값은 메모리 디바이스 판독 식별 번호를 상기 판독 명령에 할당하는데 사용되는 카운터를 증가시키는 값을 상기 제어기에 지시하는, 반도체 장치. - 제1항에 있어서,
상기 호스트는 또한, 상기 장치가 이전에 전송된 판독 명령들의 실행을 완료하지 못한 경우 상기 호스트가 상기 장치에 판독 명령들을 계속 보낼 수 있게 하는 상기 판독 증분 값만큼 호스트 판독 식별 번호를 증가시키는, 반도체 장치. - 제1항에 있어서,
상기 판독 증분 값은 상기 장치가 판독 명령들을 상기 제어기에 의해 결정된 순서로 실행할 수 있게 하는, 반도체 장치. - 제1항에 있어서,
상기 제어기는, 상기 호스트로부터 전송된 판독 명령에 포함된 상기 판독 증분 값에 1을 더한 만큼 카운터를 증가시킴으로써 상기 메모리 디바이스 판독 식별 번호를 상기 메모리 디바이스에 의해 수신된 판독 명령에 할당하도록 구성된, 반도체 장치. - 제1항에 있어서,
상기 제어기는 상기 판독 증분 값에 따라 상기 카운터를 증가시킴으로써 실행되지 않은 메모리 디바이스 판독 식별 번호들을 스킵(skip)하도록 구성된, 반도체 장치. - 반도체 장치에 있어서,
제어기를 포함하는 메모리 디바이스를 포함하고,
상기 제어기는 판독 증분 값을 포함하는 호스트로부터 수신된 판독 명령에 기초하여 상기 메모리 디바이스 상에서 연산들을 수행하도록 구성되고,
상기 판독 증분 값은 메모리 디바이스 판독 식별 번호를 상기 판독 명령에 할당하는데 사용되는 카운터를 증가시키는 값을 상기 제어기에 지시하고,
상기 제어기는 상기 판독 증분 값에 따라 상기 카운터를 증가시킴으로써 실행되지 않은 메모리 디바이스 판독 식별 번호들을 스킵하도록 구성된, 반도체 장치. - 제6항에 있어서,
상기 호스트는 또한, 상기 장치가 이전에 전송된 판독 명령의 실행을 완료하지 못한 경우 상기 호스트가 상기 장치에 판독 명령들을 계속 보낼 수 있게 하는 상기 판독 증분 값만큼 호스트 판독 식별 번호를 증가시키는, 반도체 장치. - 제6항에 있어서,
상기 판독 증분 값은 상기 장치가 판독 명령들을 상기 제어기에 의해 결정된 순서로 실행할 수 있게 하는, 반도체 장치. - 메모리 디바이스 상에서 연산들을 수행하기 위한 방법에 있어서, 상기 방법은:
호스트로부터 상기 메모리 디바이스에서, 판독 증분 값을 포함하는 판독 명령을 수신하는 단계; 및
상기 메모리 디바이스 상의 제어기에 의해, 상기 판독 증분 값만큼 증가되는 카운터에 기초하여 메모리 디바이스 판독 식별 번호를 상기 판독 명령에 할당하는 단계를 포함하고,
상기 제어기는 상기 호스트로부터 전송된 상기 판독 명령에 포함된 상기 판독 증분 값에 1을 더한 만큼 상기 카운터를 증가시킴으로써 상기 메모리 디바이스 판독 식별 번호를 상기 메모리 디바이스에 의해 수신된 판독 명령에 할당하도록 구성된, 방법. - 제9항에 있어서,
상기 호스트에 의해, 상기 메모리 디바이스가 이전에 전송된 판독 명령들의 실행을 완료하지 못한 경우 상기 호스트가 상기 메모리 디바이스에 판독 명령들을 계속 보낼 수 있게 하는 상기 판독 증분 값만큼 호스트 판독 식별 번호를 증가시키는 단계를 더 포함하는, 방법. - 제9항에 있어서,
상기 판독 증분 값은 상기 메모리 디바이스가 판독 명령들을 상기 제어기에 의해 결정된 순서로 실행할 수 있게 하는, 방법. - 제9항에 있어서,
상기 판독 증분 값에 따라 상기 카운터를 증가시킴으로써 실행되지 않은 메모리 디바이스 판독 식별 번호들을 스킵하도록 구성된, 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020217042417A KR102442495B1 (ko) | 2016-06-06 | 2017-05-25 | 메모리 프로토콜 |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662346201P | 2016-06-06 | 2016-06-06 | |
US62/346,201 | 2016-06-06 | ||
US15/182,821 | 2016-06-15 | ||
US15/182,821 US10534540B2 (en) | 2016-06-06 | 2016-06-15 | Memory protocol |
KR1020207033373A KR102299721B1 (ko) | 2016-06-06 | 2017-05-25 | 메모리 프로토콜 |
PCT/US2017/034487 WO2017213876A1 (en) | 2016-06-06 | 2017-05-25 | Memory protocol |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020207033373A Division KR102299721B1 (ko) | 2016-06-06 | 2017-05-25 | 메모리 프로토콜 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217042417A Division KR102442495B1 (ko) | 2016-06-06 | 2017-05-25 | 메모리 프로토콜 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210113690A KR20210113690A (ko) | 2021-09-16 |
KR102344768B1 true KR102344768B1 (ko) | 2021-12-31 |
Family
ID=60483878
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217028132A KR102344768B1 (ko) | 2016-06-06 | 2017-05-25 | 메모리 프로토콜 |
KR1020207033373A KR102299721B1 (ko) | 2016-06-06 | 2017-05-25 | 메모리 프로토콜 |
KR1020187037846A KR102183016B1 (ko) | 2016-06-06 | 2017-05-25 | 메모리 프로토콜 |
KR1020227030944A KR20220127374A (ko) | 2016-06-06 | 2017-05-25 | 메모리 프로토콜 |
KR1020217042417A KR102442495B1 (ko) | 2016-06-06 | 2017-05-25 | 메모리 프로토콜 |
Family Applications After (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020207033373A KR102299721B1 (ko) | 2016-06-06 | 2017-05-25 | 메모리 프로토콜 |
KR1020187037846A KR102183016B1 (ko) | 2016-06-06 | 2017-05-25 | 메모리 프로토콜 |
KR1020227030944A KR20220127374A (ko) | 2016-06-06 | 2017-05-25 | 메모리 프로토콜 |
KR1020217042417A KR102442495B1 (ko) | 2016-06-06 | 2017-05-25 | 메모리 프로토콜 |
Country Status (6)
Country | Link |
---|---|
US (4) | US10534540B2 (ko) |
EP (1) | EP3465449B1 (ko) |
KR (5) | KR102344768B1 (ko) |
CN (2) | CN109313620B (ko) |
TW (2) | TWI744632B (ko) |
WO (1) | WO2017213876A1 (ko) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10152237B2 (en) | 2016-05-05 | 2018-12-11 | Micron Technology, Inc. | Non-deterministic memory protocol |
US10534540B2 (en) * | 2016-06-06 | 2020-01-14 | Micron Technology, Inc. | Memory protocol |
US10585624B2 (en) | 2016-12-01 | 2020-03-10 | Micron Technology, Inc. | Memory protocol |
US11003602B2 (en) | 2017-01-24 | 2021-05-11 | Micron Technology, Inc. | Memory protocol with command priority |
KR102340094B1 (ko) * | 2017-03-31 | 2021-12-17 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
US10635613B2 (en) | 2017-04-11 | 2020-04-28 | Micron Technology, Inc. | Transaction identification |
JP2018205859A (ja) * | 2017-05-31 | 2018-12-27 | キヤノン株式会社 | メモリコントローラとその制御方法 |
US11132145B2 (en) | 2018-03-14 | 2021-09-28 | Apple Inc. | Techniques for reducing write amplification on solid state storage devices (SSDs) |
US11474741B1 (en) * | 2020-06-30 | 2022-10-18 | Amazon Technologies, Inc. | Storage device write barriers |
US20220206946A1 (en) * | 2020-12-28 | 2022-06-30 | Advanced Micro Devices, Inc. | Method and apparatus for managing a cache directory |
US20230376206A1 (en) * | 2021-03-19 | 2023-11-23 | Micron Technology, Inc. | Write booster buffer flush operation |
US11941291B2 (en) * | 2021-09-02 | 2024-03-26 | Micron Technology, Inc. | Memory sub-system command fencing |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090006787A1 (en) | 2007-06-27 | 2009-01-01 | Jorge Campello De Souza | Storage device with write barrier sensitive write commands and write barrier insensitive commands |
US20100250827A1 (en) | 2009-03-26 | 2010-09-30 | Scaleo Chip | Apparatus for Enhancing Flash Memory Access |
Family Cites Families (144)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4467411A (en) * | 1981-03-06 | 1984-08-21 | International Business Machines Corporation | Scheduling device operations in a buffered peripheral subsystem |
US5590345A (en) * | 1990-11-13 | 1996-12-31 | International Business Machines Corporation | Advanced parallel array processor(APAP) |
JPH0561748A (ja) | 1991-09-02 | 1993-03-12 | Nippon Telegr & Teleph Corp <Ntt> | データベース・アクセスにおける同期確認の自動化方式 |
US5452311A (en) * | 1992-10-30 | 1995-09-19 | Intel Corporation | Method and apparatus to improve read reliability in semiconductor memories |
DE69300523T2 (de) * | 1993-11-26 | 1996-03-14 | Sgs Thomson Microelectronics | Prozessorschnittstellenschaltung zum Austausch von seriellen digitalen Daten mit einem Peripheriegerät. |
US5574944A (en) | 1993-12-15 | 1996-11-12 | Convex Computer Corporation | System for accessing distributed memory by breaking each accepted access request into series of instructions by using sets of parameters defined as logical channel context |
JP3435267B2 (ja) * | 1995-11-07 | 2003-08-11 | 株式会社東芝 | マイクロプロセッサ及びそのロードアドレス予想方法 |
US5915265A (en) | 1995-12-22 | 1999-06-22 | Intel Corporation | Method and apparatus for dynamically allocating and resizing the dedicated memory in a shared memory buffer architecture system |
US5774683A (en) * | 1996-10-21 | 1998-06-30 | Advanced Micro Devices, Inc. | Interconnect bus configured to implement multiple transfer protocols |
US5937423A (en) * | 1996-12-26 | 1999-08-10 | Intel Corporation | Register interface for flash EEPROM memory arrays |
US6370619B1 (en) | 1998-06-22 | 2002-04-09 | Oracle Corporation | Managing partitioned cache |
US6349363B2 (en) | 1998-12-08 | 2002-02-19 | Intel Corporation | Multi-section cache with different attributes for each section |
US6370614B1 (en) | 1999-01-26 | 2002-04-09 | Motive Power, Inc. | I/O cache with user configurable preload |
US7007099B1 (en) * | 1999-05-03 | 2006-02-28 | Lucent Technologies Inc. | High speed multi-port serial-to-PCI bus interface |
US6775790B2 (en) * | 2000-06-02 | 2004-08-10 | Hewlett-Packard Development Company, L.P. | Distributed fine-grained enhancements for distributed table driven I/O mapping |
US6609192B1 (en) * | 2000-06-06 | 2003-08-19 | International Business Machines Corporation | System and method for asynchronously overlapping storage barrier operations with old and new storage operations |
EP1215577B1 (en) | 2000-08-21 | 2012-02-22 | Texas Instruments Incorporated | Fault management and recovery based on task-ID |
FR2821478A1 (fr) * | 2001-02-23 | 2002-08-30 | St Microelectronics Sa | Procede et dispositif de lecture sequentielle d'une memoire avec saut d'adresse |
US6832280B2 (en) | 2001-08-10 | 2004-12-14 | Freescale Semiconductor, Inc. | Data processing system having an adaptive priority controller |
US6738831B2 (en) | 2001-12-12 | 2004-05-18 | Intel Corporation | Command ordering |
US6957308B1 (en) | 2002-07-11 | 2005-10-18 | Advanced Micro Devices, Inc. | DRAM supporting different burst-length accesses without changing the burst length setting in the mode register |
US7308524B2 (en) * | 2003-01-13 | 2007-12-11 | Silicon Pipe, Inc | Memory chain |
JP3808837B2 (ja) * | 2003-03-11 | 2006-08-16 | 株式会社東芝 | キャッシュメモリーシステム |
US7058764B2 (en) | 2003-04-14 | 2006-06-06 | Hewlett-Packard Development Company, L.P. | Method of adaptive cache partitioning to increase host I/O performance |
US7139878B2 (en) | 2003-06-20 | 2006-11-21 | Freescale Semiconductor, Inc. | Method and apparatus for dynamic prefetch buffer configuration and replacement |
US7480754B2 (en) | 2003-06-27 | 2009-01-20 | Seagate Technology, Llc | Assignment of queue execution modes using tag values |
KR100557215B1 (ko) | 2003-08-19 | 2006-03-10 | 삼성전자주식회사 | 유에스비 디바이스의 엔드포인트 제어 장치 및 그 방법 |
KR100560773B1 (ko) * | 2003-10-09 | 2006-03-13 | 삼성전자주식회사 | 동작 모드의 재설정없이 버스트 길이를 제어할 수 있는반도체 메모리 장치 및 그것을 포함하는 메모리 시스템 |
US7826614B1 (en) * | 2003-11-05 | 2010-11-02 | Globalfoundries Inc. | Methods and apparatus for passing initialization vector information from software to hardware to perform IPsec encryption operation |
US7657706B2 (en) * | 2003-12-18 | 2010-02-02 | Cisco Technology, Inc. | High speed memory and input/output processor subsystem for efficiently allocating and using high-speed memory and slower-speed memory |
US7103803B2 (en) | 2004-01-08 | 2006-09-05 | International Business Machines Corporation | Method for verification of command processing in a computer system design having a multiple priority command queue |
US8082382B2 (en) | 2004-06-04 | 2011-12-20 | Micron Technology, Inc. | Memory device with user configurable density/performance |
US7519788B2 (en) * | 2004-06-04 | 2009-04-14 | Micron Technology, Inc. | System and method for an asynchronous data buffer having buffer write and read pointers |
US7536506B2 (en) | 2004-06-21 | 2009-05-19 | Dot Hill Systems Corporation | RAID controller using capacitor energy source to flush volatile cache data to non-volatile memory during main power outage |
US7243200B2 (en) * | 2004-07-15 | 2007-07-10 | International Business Machines Corporation | Establishing command order in an out of order DMA command queue |
US7500045B2 (en) * | 2005-03-23 | 2009-03-03 | Qualcomm Incorporated | Minimizing memory barriers when enforcing strongly-ordered requests in a weakly-ordered processing system |
US9026744B2 (en) * | 2005-03-23 | 2015-05-05 | Qualcomm Incorporated | Enforcing strongly-ordered requests in a weakly-ordered processing |
US7574536B2 (en) | 2005-04-22 | 2009-08-11 | Sun Microsystems, Inc. | Routing direct memory access requests using doorbell addresses |
US7457910B2 (en) | 2005-06-29 | 2008-11-25 | Sandisk Corproation | Method and system for managing partitions in a storage device |
US7516247B2 (en) * | 2005-08-12 | 2009-04-07 | Advanced Micro Devices, Inc. | Avoiding silent data corruption and data leakage in a virtual environment with multiple guests |
CA2625318C (en) * | 2006-01-05 | 2010-09-28 | X-Ray Flux Pty Ltd | Nickel flux composition |
US7574565B2 (en) * | 2006-01-13 | 2009-08-11 | Hitachi Global Storage Technologies Netherlands B.V. | Transforming flush queue command to memory barrier command in disk drive |
US7917676B2 (en) * | 2006-03-10 | 2011-03-29 | Qualcomm, Incorporated | Efficient execution of memory barrier bus commands with order constrained memory accesses |
US7469329B2 (en) | 2006-03-30 | 2008-12-23 | International Business Machines Corporation | Methods for dynamically resizing memory pools |
JP4895183B2 (ja) | 2006-07-21 | 2012-03-14 | キヤノン株式会社 | メモリコントローラ |
US7711889B2 (en) | 2006-07-31 | 2010-05-04 | Kabushiki Kaisha Toshiba | Nonvolatile memory system, and data read/write method for nonvolatile memory system |
US8074022B2 (en) | 2006-09-28 | 2011-12-06 | Virident Systems, Inc. | Programmable heterogeneous memory controllers for main memory with different memory modules |
US20090276556A1 (en) | 2006-10-04 | 2009-11-05 | Mediatek Inc. | Memory controller and method for writing a data packet to or reading a data packet from a memory |
US7904644B1 (en) * | 2006-11-01 | 2011-03-08 | Marvell International Ltd. | Disk channel system with sector request queue |
US20080162735A1 (en) | 2006-12-29 | 2008-07-03 | Doug Voigt | Methods and systems for prioritizing input/outputs to storage devices |
US20080189501A1 (en) * | 2007-02-05 | 2008-08-07 | Irish John D | Methods and Apparatus for Issuing Commands on a Bus |
US7596643B2 (en) | 2007-02-07 | 2009-09-29 | Siliconsystems, Inc. | Storage subsystem with configurable buffer |
KR100904758B1 (ko) * | 2007-02-08 | 2009-06-29 | 삼성전자주식회사 | 버퍼 메모리를 포함하는 플래쉬 메모리 장치 및 시스템,플래쉬 메모리 장치의 데이터 업데이트 방법 |
US7924521B1 (en) * | 2007-04-10 | 2011-04-12 | Marvell International Ltd. | Data wedge format table synchronization |
US7996599B2 (en) | 2007-04-25 | 2011-08-09 | Apple Inc. | Command resequencing in memory operations |
US7984202B2 (en) * | 2007-06-01 | 2011-07-19 | Qualcomm Incorporated | Device directed memory barriers |
US8874831B2 (en) | 2007-06-01 | 2014-10-28 | Netlist, Inc. | Flash-DRAM hybrid memory module |
US7899999B2 (en) | 2007-06-27 | 2011-03-01 | Microsoft Corporation | Handling falsely doomed parents of nested transactions |
US8438356B2 (en) * | 2007-10-01 | 2013-05-07 | Marvell World Trade Ltd. | Flash memory controller |
US7870351B2 (en) | 2007-11-15 | 2011-01-11 | Micron Technology, Inc. | System, apparatus, and method for modifying the order of memory accesses |
US9513959B2 (en) | 2007-11-21 | 2016-12-06 | Arm Limited | Contention management for a hardware transactional memory |
TW200929237A (en) * | 2007-12-21 | 2009-07-01 | Winbond Electronics Corp | Memory architecture and configuration method thereof |
US20090327535A1 (en) | 2008-06-30 | 2009-12-31 | Liu Tz-Yi | Adjustable read latency for memory device in page-mode access |
JP4631948B2 (ja) * | 2008-08-13 | 2011-02-16 | 日本電気株式会社 | 情報処理装置及び順序保証方式 |
US8332608B2 (en) | 2008-09-19 | 2012-12-11 | Mediatek Inc. | Method of enhancing command executing performance of disc drive |
TW201013400A (en) | 2008-09-22 | 2010-04-01 | Promise Technology Inc | Memory control system, data recovery method and date reading method thereof |
KR101525872B1 (ko) | 2008-11-06 | 2015-06-04 | 삼성전자주식회사 | 반도체 메모리 시스템의 동작 방법 |
GB2465611B (en) * | 2008-11-25 | 2011-04-27 | British Broadcasting Corp | Interleaving or de-interleaving of data of variable rate |
EP2394221A4 (en) * | 2009-02-09 | 2012-11-21 | Rambus Inc | NON-VOLATILE MEMORY WITH MULTIPLE LEVELS WITH SYNCHRONIZED CONTROL |
US7983107B2 (en) | 2009-02-11 | 2011-07-19 | Stec, Inc. | Flash backed DRAM module with a selectable number of flash chips |
US8352682B2 (en) * | 2009-05-26 | 2013-01-08 | Qualcomm Incorporated | Methods and apparatus for issuing memory barrier commands in a weakly ordered storage system |
CN101908368A (zh) | 2009-06-04 | 2010-12-08 | 威刚科技(苏州)有限公司 | 电子存储装置及其操作方法 |
US8250332B2 (en) | 2009-06-11 | 2012-08-21 | Qualcomm Incorporated | Partitioned replacement for cache memory |
US9245371B2 (en) * | 2009-09-11 | 2016-01-26 | Nvidia Corporation | Global stores and atomic operations |
TWI454906B (zh) | 2009-09-24 | 2014-10-01 | Phison Electronics Corp | 資料讀取方法、快閃記憶體控制器與儲存系統 |
JPWO2011043012A1 (ja) * | 2009-10-05 | 2013-02-28 | パナソニック株式会社 | 不揮発性半導体記憶装置、信号処理システム、及び信号処理システムの制御方法、並びに不揮発性半導体記憶装置の書き換え方法 |
JP2011234308A (ja) | 2010-04-30 | 2011-11-17 | Toshiba Corp | 通信装置、この通信装置に搭載されるプログラマブルデバイス及びそのプログラム書き込み制御方法 |
US9104583B2 (en) | 2010-06-24 | 2015-08-11 | International Business Machines Corporation | On demand allocation of cache buffer slots |
US8499106B2 (en) | 2010-06-24 | 2013-07-30 | Arm Limited | Buffering of a data stream |
US9141538B2 (en) | 2010-07-07 | 2015-09-22 | Marvell World Trade Ltd. | Apparatus and method for generating descriptors to transfer data to and from non-volatile semiconductor memory of a storage drive |
US8949502B2 (en) | 2010-11-18 | 2015-02-03 | Nimble Storage, Inc. | PCIe NVRAM card based on NVDIMM |
JP5296041B2 (ja) | 2010-12-15 | 2013-09-25 | 株式会社東芝 | メモリシステムおよびメモリシステムの制御方法 |
WO2012087971A2 (en) | 2010-12-20 | 2012-06-28 | Marvell World Trade Ltd. | Descriptor scheduler |
US9779020B2 (en) | 2011-02-08 | 2017-10-03 | Diablo Technologies Inc. | System and method for providing an address cache for memory map learning |
JP2012234363A (ja) | 2011-04-28 | 2012-11-29 | Toshiba Corp | メモリシステム |
US8560778B2 (en) | 2011-07-11 | 2013-10-15 | Memory Technologies Llc | Accessing data blocks with pre-fetch information |
US20130019057A1 (en) | 2011-07-15 | 2013-01-17 | Violin Memory, Inc. | Flash disk array and controller |
US8700834B2 (en) | 2011-09-06 | 2014-04-15 | Western Digital Technologies, Inc. | Systems and methods for an enhanced controller architecture in data storage systems |
US8799557B1 (en) | 2011-10-13 | 2014-08-05 | Netapp, Inc. | System and method for non-volatile random access memory emulation |
US9558030B2 (en) * | 2011-11-09 | 2017-01-31 | Intel Corporation | Method, apparatus, and system to handle transactions received after a configuration change request |
US8880819B2 (en) * | 2011-12-13 | 2014-11-04 | Micron Technology, Inc. | Memory apparatuses, computer systems and methods for ordering memory responses |
KR101366960B1 (ko) | 2011-12-23 | 2014-02-25 | 한양대학교 산학협력단 | 입출력 핀을 이용한 다중 웨이 낸드 플래시 제어 장치 및 방법 |
US9134919B2 (en) | 2012-03-29 | 2015-09-15 | Samsung Electronics Co., Ltd. | Memory device including priority information and method of operating the same |
US9135192B2 (en) | 2012-03-30 | 2015-09-15 | Sandisk Technologies Inc. | Memory system with command queue reordering |
US9347254B2 (en) * | 2012-05-04 | 2016-05-24 | The Chamberlain Group, Inc. | Command priority levels for an access controller apparatus |
CN102789439B (zh) * | 2012-06-16 | 2016-02-10 | 北京忆恒创源科技有限公司 | 控制数据传输过程中的中断的方法与存储设备 |
US8930636B2 (en) * | 2012-07-20 | 2015-01-06 | Nvidia Corporation | Relaxed coherency between different caches |
US9128845B2 (en) | 2012-07-30 | 2015-09-08 | Hewlett-Packard Development Company, L.P. | Dynamically partition a volatile memory for a cache and a memory partition |
JP6053384B2 (ja) | 2012-08-08 | 2016-12-27 | キヤノン株式会社 | 情報処理装置、メモリ制御装置およびその制御方法 |
US9122401B2 (en) * | 2012-08-23 | 2015-09-01 | Apple Inc. | Efficient enforcement of command execution order in solid state drives |
US20140143476A1 (en) * | 2012-11-16 | 2014-05-22 | Rotem Sela | Usage of cache and write transaction information in a storage device |
US9501332B2 (en) * | 2012-12-20 | 2016-11-22 | Qualcomm Incorporated | System and method to reset a lock indication |
US9250814B2 (en) | 2013-02-11 | 2016-02-02 | Apple Inc. | Command order re-sequencing in non-volatile memory |
US8595427B1 (en) | 2013-03-08 | 2013-11-26 | Avalanche Technology, Inc. | Non-volatile block storage module using magnetic random access memory (MRAM) |
US9128634B1 (en) | 2013-03-11 | 2015-09-08 | Marvell International Ltd. | Systems and methods of packed command management for non-volatile storage devices |
US9741442B2 (en) | 2013-03-12 | 2017-08-22 | Sandisk Technologies Llc | System and method of reading data from memory concurrently with sending write data to the memory |
US20150378886A1 (en) | 2013-04-08 | 2015-12-31 | Avalanche Technology, Inc. | Software-defined ssd and system using the same |
US9418010B2 (en) * | 2013-04-17 | 2016-08-16 | Apple Inc. | Global maintenance command protocol in a cache coherent system |
JP6146128B2 (ja) | 2013-05-20 | 2017-06-14 | ヤマハ株式会社 | データ処理装置 |
WO2014193376A1 (en) | 2013-05-30 | 2014-12-04 | Hewlett-Packard Development Company, L.P. | Separate memory controllers to access data in memory |
US9367472B2 (en) * | 2013-06-10 | 2016-06-14 | Oracle International Corporation | Observation of data in persistent memory |
US10108539B2 (en) * | 2013-06-13 | 2018-10-23 | International Business Machines Corporation | Allocation of distributed data structures |
US9423959B2 (en) * | 2013-06-29 | 2016-08-23 | Intel Corporation | Method and apparatus for store durability and ordering in a persistent memory architecture |
TWI493455B (zh) | 2013-07-02 | 2015-07-21 | Phison Electronics Corp | 命令佇列管理方法、記憶體控制器及記憶體儲存裝置 |
US20150033234A1 (en) * | 2013-07-23 | 2015-01-29 | Qualcomm Incorporated | Providing queue barriers when unsupported by an i/o protocol or target device |
US20150067291A1 (en) | 2013-08-30 | 2015-03-05 | Kabushiki Kaisha Toshiba | Controller, memory system, and method |
WO2015099746A1 (en) | 2013-12-26 | 2015-07-02 | Intel Corporation | Data reorder during memory access |
US10108372B2 (en) | 2014-01-27 | 2018-10-23 | Micron Technology, Inc. | Methods and apparatuses for executing a plurality of queued tasks in a memory |
US9323610B2 (en) | 2014-01-30 | 2016-04-26 | Sandisk Technologies Inc. | Non-blocking commands |
US9454310B2 (en) | 2014-02-14 | 2016-09-27 | Micron Technology, Inc. | Command queuing |
WO2015126518A2 (en) | 2014-02-20 | 2015-08-27 | Rambus Inc. | High performance persistent memory |
US20150279463A1 (en) | 2014-03-31 | 2015-10-01 | Dell Products, L.P. | Adjustable non-volatile memory regions of dram-based memory module |
KR102126760B1 (ko) | 2014-04-07 | 2020-06-25 | 삼성전자 주식회사 | 비휘발성 메모리 장치의 구동 방법 |
KR102249416B1 (ko) | 2014-06-11 | 2021-05-07 | 삼성전자주식회사 | 메모리 시스템 및 메모리 시스템의 구동 방법 |
US9870318B2 (en) * | 2014-07-23 | 2018-01-16 | Advanced Micro Devices, Inc. | Technique to improve performance of memory copies and stores |
US9489239B2 (en) | 2014-08-08 | 2016-11-08 | PernixData, Inc. | Systems and methods to manage tiered cache data storage |
US9721660B2 (en) | 2014-10-24 | 2017-08-01 | Microsoft Technology Licensing, Llc | Configurable volatile memory without a dedicated power source for detecting a data save trigger condition |
US20160170767A1 (en) * | 2014-12-12 | 2016-06-16 | Intel Corporation | Temporary transfer of a multithreaded ip core to single or reduced thread configuration during thread offload to co-processor |
US20160232112A1 (en) * | 2015-02-06 | 2016-08-11 | Futurewei Technologies, Inc. | Unified Memory Bus and Method to Operate the Unified Memory Bus |
US20170024297A1 (en) | 2015-07-22 | 2017-01-26 | Kabushiki Kaisha Toshiba | Storage Device and Data Save Method |
US9996262B1 (en) * | 2015-11-09 | 2018-06-12 | Seagate Technology Llc | Method and apparatus to abort a command |
US20170160929A1 (en) | 2015-12-02 | 2017-06-08 | Hewlett Packard Enterprise Development Lp | In-order execution of commands received via a networking fabric |
US9792051B2 (en) * | 2016-02-24 | 2017-10-17 | Samsung Electronics Co., Ltd. | System and method of application aware efficient IO scheduler |
US10613763B2 (en) * | 2016-04-21 | 2020-04-07 | Adesto Technologies Corporation | Memory device having multiple read buffers for read latency reduction |
US10534540B2 (en) * | 2016-06-06 | 2020-01-14 | Micron Technology, Inc. | Memory protocol |
US20180239532A1 (en) * | 2017-02-23 | 2018-08-23 | Western Digital Technologies, Inc. | Techniques for performing a non-blocking control sync operation |
US10359955B2 (en) * | 2017-02-23 | 2019-07-23 | Western Digital Technologies, Inc. | Data storage device configured to perform a non-blocking control update operation |
US10261907B2 (en) * | 2017-03-09 | 2019-04-16 | International Business Machines Corporation | Caching data in a redundant array of independent disks (RAID) storage system |
US11194524B2 (en) * | 2017-09-15 | 2021-12-07 | Qualcomm Incorporated | Apparatus and method for performing persistent write operations using a persistent write command |
US10691619B1 (en) * | 2017-10-18 | 2020-06-23 | Google Llc | Combined integrity protection, encryption and authentication |
CN110033799A (zh) * | 2018-01-12 | 2019-07-19 | 三星电子株式会社 | 基于屏障命令按顺序存储数据的存储设备 |
US11016890B2 (en) * | 2018-02-05 | 2021-05-25 | Micron Technology, Inc. | CPU cache flushing to persistent memory |
US10613983B2 (en) * | 2018-03-20 | 2020-04-07 | Advanced Micro Devices, Inc. | Prefetcher based speculative dynamic random-access memory read request technique |
US10671486B2 (en) * | 2018-07-25 | 2020-06-02 | International Business Machines Corporation | Flashcopy tracking for storage optimization |
-
2016
- 2016-06-15 US US15/182,821 patent/US10534540B2/en active Active
-
2017
- 2017-05-25 KR KR1020217028132A patent/KR102344768B1/ko active IP Right Grant
- 2017-05-25 KR KR1020207033373A patent/KR102299721B1/ko active IP Right Grant
- 2017-05-25 CN CN201780034967.3A patent/CN109313620B/zh active Active
- 2017-05-25 EP EP17810712.4A patent/EP3465449B1/en active Active
- 2017-05-25 KR KR1020187037846A patent/KR102183016B1/ko active IP Right Grant
- 2017-05-25 CN CN202211271961.7A patent/CN115525587A/zh not_active Withdrawn
- 2017-05-25 KR KR1020227030944A patent/KR20220127374A/ko not_active Application Discontinuation
- 2017-05-25 KR KR1020217042417A patent/KR102442495B1/ko active IP Right Grant
- 2017-05-25 WO PCT/US2017/034487 patent/WO2017213876A1/en unknown
- 2017-06-05 TW TW108116191A patent/TWI744632B/zh active
- 2017-06-05 TW TW106118556A patent/TWI662408B/zh active
-
2019
- 2019-12-18 US US16/719,268 patent/US11340787B2/en active Active
-
2022
- 2022-05-20 US US17/749,801 patent/US11947796B2/en active Active
-
2024
- 2024-04-01 US US18/623,811 patent/US20240248601A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090006787A1 (en) | 2007-06-27 | 2009-01-01 | Jorge Campello De Souza | Storage device with write barrier sensitive write commands and write barrier insensitive commands |
US20100250827A1 (en) | 2009-03-26 | 2010-09-30 | Scaleo Chip | Apparatus for Enhancing Flash Memory Access |
Also Published As
Publication number | Publication date |
---|---|
US20200125263A1 (en) | 2020-04-23 |
US10534540B2 (en) | 2020-01-14 |
EP3465449B1 (en) | 2023-07-05 |
KR20200133822A (ko) | 2020-11-30 |
KR20220127374A (ko) | 2022-09-19 |
KR102183016B1 (ko) | 2020-11-26 |
TW201935246A (zh) | 2019-09-01 |
KR102299721B1 (ko) | 2021-09-10 |
CN109313620A (zh) | 2019-02-05 |
KR20210113690A (ko) | 2021-09-16 |
CN109313620B (zh) | 2022-11-01 |
US20240248601A1 (en) | 2024-07-25 |
TWI744632B (zh) | 2021-11-01 |
EP3465449A4 (en) | 2020-07-22 |
US20170351433A1 (en) | 2017-12-07 |
KR102442495B1 (ko) | 2022-09-14 |
US11340787B2 (en) | 2022-05-24 |
EP3465449A1 (en) | 2019-04-10 |
KR20190003821A (ko) | 2019-01-09 |
US11947796B2 (en) | 2024-04-02 |
US20220276786A1 (en) | 2022-09-01 |
KR20220000931A (ko) | 2022-01-04 |
TWI662408B (zh) | 2019-06-11 |
TW201807575A (zh) | 2018-03-01 |
CN115525587A (zh) | 2022-12-27 |
WO2017213876A1 (en) | 2017-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102344768B1 (ko) | 메모리 프로토콜 | |
KR102307372B1 (ko) | 메모리 제어기 | |
US11586566B2 (en) | Memory protocol with command priority | |
US12093565B2 (en) | Memory protocol | |
US11687283B2 (en) | Memory module interfaces |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
E701 | Decision to grant or registration of patent right |