KR20210053347A - 메모리에서 및 메모리 모듈의 디바이스들 사이에서의 직접 데이터 전달 - Google Patents

메모리에서 및 메모리 모듈의 디바이스들 사이에서의 직접 데이터 전달 Download PDF

Info

Publication number
KR20210053347A
KR20210053347A KR1020217012086A KR20217012086A KR20210053347A KR 20210053347 A KR20210053347 A KR 20210053347A KR 1020217012086 A KR1020217012086 A KR 1020217012086A KR 20217012086 A KR20217012086 A KR 20217012086A KR 20210053347 A KR20210053347 A KR 20210053347A
Authority
KR
South Korea
Prior art keywords
memory
data
memory device
controller
memory devices
Prior art date
Application number
KR1020217012086A
Other languages
English (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
Application filed by 마이크론 테크놀로지, 인크. filed Critical 마이크론 테크놀로지, 인크.
Publication of KR20210053347A publication Critical patent/KR20210053347A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/005Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor comprising combined but independently operative RAM-ROM, RAM-PROM, RAM-EPROM cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1075Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for multiport memories each having random access ports and serial ports, e.g. video RAM
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/16Multiple access memory array, e.g. addressing one storage element via at least two independent addressing line groups
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4093Input/output [I/O] data interface arrangements, e.g. data buffers

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)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Memory System (AREA)
  • Information Transfer Systems (AREA)

Abstract

본 개시는 메모리에서의 직접 데이터 전달에 관련된 장치들 및 방법들을 포함한다. 예시적인 장치는 각각의 제 1 수의 포트들을 통해 호스트에 결합된 제 1 수의 메모리 디바이스들 및 각각의 제 2 수의 포트들을 통해 제 1 수의 메모리 디바이스에 결합된 제 2 수의 메모리 디바이스들을 포함할 수 있으며, 여기에서 제 1 수의 메모리 디바이스들 및 제 2 수의 메모리 디바이스들은 제 1 수의 메모리 디바이스들로부터 데이터를 판독하며 데이터를 제 2 수의 디바이스들로 직접 전송하기 위한 지시들을 포함한 명령의 제 1 부분 및 데이터를 제 2 수의 메모리 디바이스들에 기록하기 위한 지시들을 포함하는 명령의 제 2 부분에 기초하여 데이터를 전달하도록 구성된다.

Description

메모리에서 및 메모리 모듈의 디바이스들 사이에서의 직접 데이터 전달
본 개시는 일반적으로 메모리 디바이스들에 관한 것이며, 보다 특히 메모리에서 및 메모리 모듈의 디바이스들 사이에서의 직접 데이터 전달을 위한 장치들 및 방법들에 관한 것이다.
메모리 디바이스들은 통상적으로 컴퓨터들 또는 다른 전자 디바이스들에서 내부의, 반도체, 집적 회로들로서 제공된다. 휘발성 및 비-휘발성 메모리를 포함한 많은 상이한 유형들의 메모리가 있다. 휘발성 메모리는 그의 데이터를 유지하기 위해 전력을 요구할 수 있으며 다른 것들 중에서 랜덤-액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 및 동기식 동적 랜덤 액세스 메모리(SDRAM)를 포함한다. 비-휘발성 메모리는 동력을 공급받지 않을 때 저장된 데이터를 유지함으로써 영구적 데이터를 제공할 수 있으며 다른 것들 중에서 NAND 플래시 메모리, NOR 플래시 메모리, 판독 전용 메모리(ROM), 전기적으로 삭제 가능한 프로그램 가능 ROM(EEPROM), 삭제 가능한 프로그램 가능 ROM(EPROM), 및 상 변화 랜덤 액세스 메모리(PCRAM), 저항성 랜덤 액세스 메모리(RRAM), 및 자기저항성 랜덤 액세스 메모리(MRAM)와 같은 저항 가변 메모리를 포함할 수 있다.
메모리는 또한 광범위한 전자 애플리케이션들을 위한 휘발성 및 비-휘발성 데이터 저장 장치로서 이용된다. 비-휘발성 메모리는 예를 들어, 개인용 컴퓨터들, 휴대용 메모리 스틱들, 디지털 카메라들, 휴대 전화들, MP3 플레이어들과 같은 휴대용 음악 플레이어들, 영화 플레이어들, 및 다른 전자 디바이스들에서 사용될 수 있다. 메모리 셀들은 어레이들로 배열될 수 있으며, 어레이들은 메모리 디바이스들에서 사용되고 있다.
메모리는 컴퓨팅 디바이스들에서 사용된 메모리 모듈(예컨대, 이중 인-라인 메모리 모듈(DIMM))의 부분일 수 있다. 메모리 모듈들은 예를 들어, DRAM과 같은 휘발성, 및/또는 예를 들어 플래시 메모리 또는 RRAM과 같은, 비-휘발성 메모리를 포함할 수 있다. DIMM들은 컴퓨팅 시스템들에서 메인 메모리로서 사용될 수 있다.
도 1a는 본 개시의 다수의 실시예들에 따른 메모리 시스템을 포함한 컴퓨팅 시스템의 형태에서의 장치의 블록도이다.
도 1b는 본 개시의 다수의 실시예들에 따른 이중 인-라인 메모리 모듈들(DIMM)의 형태에서의 장치의 블록도이다.
도 2는 본 개시의 다수의 실시예들에 따른 포트들을 가진 이중 인-라인 메모리 모듈(DIMM)을 포함한 메모리 시스템 및 호스트를 포함한 컴퓨팅 시스템의 블록도이다.
도 3은 본 개시의 다수의 실시예들에 따른 준비/비지 버스를 가진 이중 인-라인 메모리 모듈(DIMM)을 포함한 메모리 시스템 및 호스트를 포함한 컴퓨팅 시스템의 블록도이다.
도 4는 본 개시의 다수의 실시예들에 따른 메모리에서 직접 데이터 전달을 포함한 예시적인 메모리 프로세스를 예시한 흐름도이다.
도 5는 본 개시의 다수의 실시예들에 따른 메모리에서 직접 데이터 전달을 포함한 예시적인 메모리 프로세스를 예시한 흐름도이다.
본 개시는 메모리에서 및 메모리 모듈의 디바이스들 사이에서의 직접 데이터 전달과 관련된 장치들 및 방법들을 포함한다.
메모리 시스템은 다수의 메모리 디바이스들을 가진 이중 인-라인 메모리 모듈(DIMM)을 포함할 수 있다. 예를 들어, DIMM은 다수의 비-휘발성 메모리 디바이스들을 포함하는 비-휘발성 DIMM(NVDIMM)일 수 있다. DIMM은 호스트와 비-휘발성 메모리 디바이스 사이에서 및 비-휘발성 메모리 디바이스들 사이에서 데이터를 전달하기 위해 명령들을 실행할 수 있다. 명령들은 호스트와 같은, 또 다른 디바이스로부터 DIMM에 의해 수신될 수 있으며 및/또는 DIMM 상의 컨트롤러에 의해 생성될 수 있다.
예를 들어, 제 1 수의 비-휘발성 메모리 디바이스들은 제 1 포트(예컨대, A 사이드 포트)를 통해, 호스트와 같은, 또 다른 디바이스에 결합될 수 있으며 제 2 포트(예컨대, B 사이드 포트)를 통해 DIMM 상의 컨트롤러에 결합될 수 있다. 제 2 수의 비-휘발성 메모리 디바이스들은 DIMM 상에서 컨트롤러에 결합될 수 있다. DIMM은 A 사이드 포트를 통해 호스트와 같은 또 다른 디바이스 및 제 1 수의 비-휘발성 메모리 디바이스들 사이에서 데이터를 전달하기 위해 명령들을 실행할 수 있으며 DIMM은 B 사이드 포트를 통해 제 1 수의 비-휘발성 메모리 디바이스들 및 제 2 수의 비-휘발성 메모리 디바이스들 사이에서 데이터를 전달하기 위해 명령들을 실행할 수 있다. DIMM은 제 1 수의 비-휘발성 메모리 디바이스 및 제 2 수의 비-휘발성 메모리 디바이스들 사이에서 데이터를 전달하기 위해 명령들을 실행하면서 또 다른 디바이스와 제 1 수의 비-휘발성 메모리 디바이스들 사이에서 데이터를 전달하기 위해 명령들을 실행할 수 있다.
DIMM은 제 1 수의 비-휘발성 메모리 디바이스들로 판독 명령을 전송할 수 있다. 제 1 수의 비-휘발성 메모리 디바이스들은 제 1 수의 비-휘발성 메모리 디바이스 및 제 2 수의 비-휘발성 메모리 디바이스들을 직접 결합하는 버스 상에서 판독 명령과 연관된 데이터를 판독하며 데이터를 제 2 수의 비-휘발성 메모리 디바이스들로 전송할 수 있다. DIMM은 제 2 수의 메모리 디바이스들로 기록 명령을 전송할 수 있다. 제 2 수의 비-휘발성 메모리 디바이스들은 기록 명령을 수신하는 것에 응답하여 제 1 수의 비-휘발성 메모리 디바이스들로부터 수신된 데이터를 제 2 수의 비-휘발성 메모리 디바이스들에 기록할 수 있다.
DIMM은 제 2 수의 메모리 디바이스들로 판독 명령을 전송할 수 있다. 제 2 수의 비-휘발성 메모리 디바이스들은 제 2 수의 비-휘발성 메모리 디바이스들과 호스트를 직접 결합하는 버스 상에서 판독 명령과 연관된 데이터를 판독하며 데이터를 호스트로 전송할 수 있다.
DIMM은 포트가 제 1 수의 비-휘발성 메모리 디바이스들을 다른 디바이스들 및/또는 컨트롤러에 결합하기 위해 사용되지 않는 다수의 실시예들을 포함할 수 있다(예컨대, 호스트 및/또는 컨트롤러로부터의 버스는 비-휘발성 메모리 디바이스들에 직접 결합된다). DIMM은 DIMM이 또 다른 디바이스로부터 명령들을 수신할 준비가 되었는지를 나타내는, 준비/대기(ready/wait) 신호를 호스트와 같은, 또 다른 디바이스로 전송할 수 있다. 예를 들어, DIMM은 DIMM이 호스트로부터 명령들을 수신할 준비가 되지 않았으며 DIMM 상의 메모리 디바이스들 사이에서 데이터를 전달하기 위한 명령들을 실행하기에 바쁘다는 것을 나타내는 준비/대기 신호를 호스트로 전송할 수 있다. DIMM은 DIMM이 DIMM 상의 메모리 디바이스 사이에서 데이터를 전달하기 위해 명령들을 실행하는데 바쁘지 않을 때 DIMM이 호스트로부터 명령들을 수신할 준비가 됨을 나타내는 준비/대기 신호를 호스트로 전송할 수 있다.
예시적인 장치는 각각의 제 1 수의 포트들을 통해 호스트에 결합된 제 1 수의 메모리 디바이스들 및 각각의 제 2 수의 포트들을 통해 제 1 수의 메모리 디바이스에 결합된 제 2 수의 메모리 디바이스들을 포함할 수 있으며, 여기에서 제 1 수의 메모리 디바이스들 및 제 2 수의 메모리 디바이스들은 제 1 수의 메모리 디바이스들로부터 데이터를 판독하며 데이터를 직접 제 2 수의 디바이스들로 전송하기 위한 지시들을 포함한 명령의 제 1 부분 및 데이터를 제 2 수의 메모리 디바이스들에 기록하기 위한 지시들을 포함하는 명령의 제 2 부분에 기초하여 데이터를 전달하도록 구성된다.
본 개시의 다음의 상세한 설명에서, 그 일부를 형성하며 예시로서 본 개시의 다수의 실시예들이 어떻게 실시될 수 있는지가 도시되는 수반된 도면들에 대한 참조가 이루어진다. 이들 실시예들은 이 기술분야에서의 통상의 기술자들이 본 개시의 실시예들을 실시할 수 있게 하기 위해 충분히 상세하게 설명되며, 다른 실시예들이 이용될 수 있고, 프로세스, 전기적, 및/또는 구조적 변화들이 본 개시의 범위로부터 벗어나지 않고 이루어질 수 있다는 것이 이해될 것이다. 여기에서 사용된 바와 같이, 지정 문자 "N"은 그렇게 지정된 다수의 특정한 특징이 본 개시의 다수의 실시예들과 함께 포함될 수 있다는 것을 나타낸다.
여기에서 사용된 바와 같이, "다수의" 어떤 것은 이러한 것들 중 하나 이상을 나타낼 수 있다. 예를 들어, 다수의 메모리 디바이스들은 메모리 디바이스들 중 하나 이상을 나타낼 수 있다. 부가적으로, 여기에서 사용된 바와 같이, "N"과 같은 지정 문자들은, 특히 도면들에서의 참조 번호들에 대하여, 그렇게 지정된 다수의 특정한 특징이 본 개시의 다수의 실시예들과 함께 포함될 수 있음을 나타낸다.
여기에서의 도면들은 첫 숫자 또는 숫자들이 도면의 도 번호에 대응하며 나머지 숫자들은 도면에서 요소 또는 구성요소를 식별하는 넘버링 관례를 따른다. 상이한 도면들 사이에서의 유사한 요소들 또는 구성요소들은 유사한 숫자들의 사용에 의해 식별될 수 있다. 이해될 바와 같이, 여기에서의 다양한 실시예들에서 도시된 요소들은 본 개시의 다수의 부가적인 실시예들을 제공하도록 부가되고, 교환되며, 및/또는 제거될 수 있다. 또한, 도면들에서 제공된 요소들의 비율 및 상대적 스케일은 본 개시의 다양한 실시예들을 예시하도록 의도되며 제한적인 의미로 사용되지 않을 것이다.
도 1a는 본 개시의 하나 이상의 실시예들에 따른, 다수의 메모리 시스템들(104-1...104-N)의 형태에서의 장치를 포함한 컴퓨팅 시스템(100)의 기능 블록도이다. 여기에서 사용된 바와 같이, "장치"는 이에 제한되지 않지만, 예를 들어, 회로 또는 회로부, 다이 또는 다이들, 모듈 또는 모듈들, 디바이스 또는 디바이스들, 또는 시스템 또는 시스템들과 같은, 다양한 구조들 또는 구조들의 조합들 중 임의의 것을 나타낼 수 있다. 도 1a에 예시된 실시예에서, 메모리 시스템들(104-1...104-N)은 하나 이상의 이중 인-라인 메모리 모듈들(DIMM)(110-1, ..., 110-X, 110-Y)을 포함할 수 있다. DIMM들(110-1, ..., 110-X, 110-Y)은 휘발성 메모리 및/또는 비-휘발성 메모리를 포함할 수 있다. 다수의 실시예들에서, 메모리 시스템들(104-1, ..., 104-N)은 다중-칩 디바이스를 포함할 수 있다. 다중-칩 디바이스는 다수의 상이한 메모리 유형들 및/또는 메모리 모듈들을 포함할 수 있다. 예를 들어, 메모리 시스템은 임의의 유형의 모듈 상에 비-휘발성 또는 휘발성 메모리를 포함할 수 있다. 도 1a 내지 도 5와 관련하여 이하에서 설명되는 예들은 메모리 모듈로서 DIMM을 사용하지만, 본 개시의 실시예들은 휘발성 및/또는 비-휘발성 메모리를 포함하는 임의의 메모리 시스템상에서 사용될 수 있다. 도 1a에서, 메모리 시스템(104-1)은 채널(103-1)을 통해 호스트에 결합되며 DIMM들(110-1, ..., 110-X)을 포함할 수 있고, 여기에서 DIMM(110-1)은 NVDIMM이며 110-X는 DRAM DIMM이다. 이 예에서, 각각의 DIMM(110-1, ..., 110-X, 110-Y)은 컨트롤러(114)를 포함한다. 컨트롤러(114)는 호스트(102)로부터 명령들을 수신하며 DIMM 상에서 명령들의 실행을 제어할 수 있다. 또한, 다수의 실시예들에서, 본 개시의 프로토콜은 컨트롤러가 없는 메모리 디바이스(예컨대, DIMM)에 의해 구현될 수 있으며 본 개시의 프로토콜을 사용한 명령들의 실행은 메모리 디바이스에 내장될 수 있다. 호스트(102)는, DIMM에서의 메모리의 유형에 의존하여, 본 개시의 프로토콜 및/또는 종래의 프로토콜을 사용하여 DIMM들(110-1, ..., 110-X, 110-Y)로 명령들을 전송할 수 있다. 예를 들어, 호스트는 동일한 채널(예컨대, 채널(103-1)) 상에서 NVDIMM과 통신하기 위해 본 개시의 프로토콜을 및 양쪽 모두가 동일한 메모리 시스템(104) 상에 있는 DRAM DIMM과 통신하기 위해 종래의 프로토콜을 사용할 수 있다.
도 1a에 예시된 바와 같이, 호스트(102)는 메모리 시스템들(104-1...104-N)에 결합될 수 있다. 다수의 실시예들에서, 각각의 메모리 시스템(104-1...104-N)은 채널(예컨대, 채널들(103-1, ..., 103-N))을 통해 호스트(102)에 결합될 수 있다. 도 1a에서, 메모리 시스템(104-1)은 채널(103-1)을 통해 호스트(102)에 결합되며 메모리 시스템(104-N)은 채널(103-N)을 통해 호스트(102)에 결합된다. 호스트(102)는 다른 호스트 시스템들 중에서, 랩탑 컴퓨터, 개인용 컴퓨터들, 디지털 카메라, 디지털 레코딩 및 재생 디바이스, 이동 전화, PDA, 메모리 카드 판독기, 인터페이스 허브일 수 있으며, 메모리 액세스 디바이스, 예컨대 프로세서를 포함할 수 있다. 이 기술분야에서의 통상의 기술자는 "프로세서"가 병렬 프로세싱 시스템, 다수의 코프로세서들 등과 같은, 하나 이상의 프로세서들을 의도할 수 있다는 것을 이해할 것이다.
호스트(102)는 메모리 시스템들(104-1...104-N)과 통신하기 위해 호스트 컨트롤러(108)를 포함한다. 호스트 컨트롤러(108)는 채널들(103-1...103-N)을 통해 DIMM들(110-1, ..., 110-X, 110-Y)로 명령들을 전송할 수 있다. 호스트 컨트롤러(108)는 다른 동작들 중에서, 데이터를 판독하고, 기록하며, 삭제하기 위해 DIMM들(110-1, ..., 110-X, 110-Y) 및/또는 DIMM들(110-1, ..., 110-X, 110-Y)의 각각에서의 컨트롤러(114)와 통신할 수 있다. 물리 호스트 인터페이스는 메모리 시스템들(104-1...104-N)과 물리 호스트 인터페이스를 위한 호환 가능한 수용기들을 가진 호스트(102) 사이에서 제어, 어드레스, 데이터, 및 다른 신호들을 전달하기 위한 인터페이스를 제공할 수 있다. 신호들은 채널들(103-1...103-N)을 통해, 예를 들어, 데이터 버스 및/또는 어드레스 버스와 같은, 다수의 버스들 상에서 102 및 DIMM들(110-1, ..., 110-X, 110-Y) 간에 전달될 수 있다.
호스트 컨트롤러(108) 및/또는 DIMM 상의 컨트롤러(114)는 제어 회로부, 예컨대, 하드웨어, 펌웨어, 및/또는 소프트웨어를 포함할 수 있다. 하나 이상의 실시예들에서, 호스트 컨트롤러(108) 및/또는 컨트롤러(114)는 물리 인터페이스를 포함한 인쇄 회로 보드에 결합된 애플리케이션 특정 집적 회로(ASIC) 및/또는 필드 프로그램 가능한 게이트 어레이(FPGA)일 수 있다. 또한, 각각의 DIMM(110-1, ..., 110-X, 110-Y)은 휘발성 및/또는 비-휘발성 메모리의 버퍼들(116) 및 레지스터들(107)을 포함할 수 있다. 버퍼(106)는 명령들의 실행 동안 사용되는 데이터를 버퍼링하기 위해 사용될 수 있다.
DIMM들(110-1, ..., 110-X, 110-Y)은 메모리 시스템을 위한 메인 메모리를 제공할 수 있거나 또는 메모리 시스템 전체에 걸쳐 부가적인 메모리 또는 저장장치로서 사용될 수 있다. 각각의 DIMM(110-1, ..., 110-X, 110-Y)은 메모리 다이들 상에서 메모리 셀들, 예컨대 휘발성 및/또는 비-휘발성 메모리 셀들의 하나 이상의 어레이들을 포함할 수 있다. 어레이들은 예를 들어, NAND 아키텍처를 가지 플래시 어레이들일 수 있다. 실시예들은 특정한 유형의 메모리 디바이스에 제한되지 않는다. 예를 들어, 메모리 디바이스는, 다른 것들 중에서, RAM, ROM, DRAM, SDRAM, PCRAM, RRAM, 및 플래시 메모리를 포함할 수 있다.
도 1a의 실시예는 본 개시의 실시예들을 모호하게 하지 않도록 예시되지 않은 부가적인 회로부를 포함할 수 있다. 예를 들어, 메모리 시스템들(104-1...104-N)은 I/O 회로부를 통해 I/O 연결들에 걸쳐 제공된 어드레스 신호들을 래칭하기 위해 어드레스 회로부를 포함할 수 있다. 어드레스 신호들이 수신되며 DIMM들(110-1, ..., 110-X, 110-Y)을 액세스하기 위해 로우 디코더 및 컬럼 디코더에 의해 디코딩될 수 있다. 어드레스 입력 연결들의 수는 DIMM들(110-1, ..., 110-X, 110-Y)의 밀도 및 아키텍처에 의존할 수 있다는 것이 이 기술분야의 숙련자들에 의해 이해될 것이다.
도 1b는 본 개시의 다수의 실시예들에 따른 이중 인-라인 메모리 모듈들(DIMM)(110)의 형태에서의 장치의 블록도이다. 도 1b에서, DIMM(110)은 컨트롤러(114)를 포함할 수 있다. 컨트롤러(114)는 버퍼(106) 및/또는 다수의 레지스터들(107)일 수 있는, SRAM 메모리와 같은, 메모리를 포함할 수 있다. DIMM(110)은 컨트롤러에 결합된 다수의 메모리 디바이스들(105-1, ..., 105-Z)을 포함할 수 있다. 메모리 디바이스들(105-1, ..., 105-Z)은 도 2에서의 메모리 디바이스들(221 및 224)과 같은, 휘발성 및/또는 비-휘발성 메모리일 수 있으며, 비-휘발성 메모리 어레이들 및/또는 휘발성 메모리 어레이들을 포함한다. 메모리 디바이스들(105-1 ,..., 105-Z)은 메모리 디바이스들(105-1, ..., 105-Z) 상에서 명령들을 실행하기 위해 사용될 수 있는 제어 회로부(109)(예컨대, 하드웨어, 펌웨어, 및/또는 소프트웨어)를 포함할 수 있다. 제어 회로부(109)는 컨트롤러(114)로부터 명령들을 수신할 수 있다. 제어 회로부(109)는 메모리 디바이스들(105-1, ..., 105-Z)에서 데이터를 판독하고 및/또는 기록하기 위한 명령들을 실행하도록 구성될 수 있다.
도 2는 본 개시의 다수의 실시예들에 따른, 호스트(202) 및 포트들을 가진 이중 인-라인 메모리 모듈(DIMM)(210)을 포함한 메모리 시스템을 포함한 컴퓨팅 시스템(200)의 블록도이다. 도 2에서, 호스트(202)는 데이터 버스들(212-1, ..., 212-8) 및 명령/어드레스 버스(218)를 통해 DIMM(210)에 결합된다. 호스트(202)는 다수의 채널들(예컨대, 도 1a에서 채널들(103-1, ..., 103-N))을 통해 DIMM(210)에 결합될 수 있다. 예를 들어, 호스트(202)는 데이터 버스들(212-1, ..., 212-4) 및 명령/어드레스 버스(218)를 포함하는 제 1 채널을 통해 DIMM(210)에 결합되며 호스트(202)는 데이터 버스들(212-5, ..., 212-8) 및 명령 어드레스/버스(218)를 포함하는 제 2 채널을 통해 DIMM(210)에 결합된다. 호스트(202)는 메모리 디바이스들(221-1, ..., 221-8) 및 메모리 디바이스들(224-1, ..., 224-4) 상에서의 실행을 위해 제 1 채널 상에서 명령들을 전송할 수 있으며 메모리 디바이스들(221-9, ..., 221-16) 및 메모리 디바이스들(224-5, ..., 224-8) 상에서의 실행을 위해 제 2 채널 상에서 명령들을 전송할 수 있다. 컨트롤러(214)는 호스트(202)로부터 명령들을 수신할 수 있다. 호스트(202)로부터의 명령들은 데이터를 판독하며 및/또는 이를 DIMM(210)에 기록할 수 있다. 컨트롤러(214)는 DIMM(210) 상에서 데이터를 판독하고, 기록하며, 전달하기 위해 판독 및/또는 기록 명령들을 메모리 디바이스들(221-1, ..., 221-16 및 224-1, ..., 224-8)로 전송함으로써 호스트(202)로부터의 명령을 해석할 수 있다. 호스트(202)로부터의 명령들은 버스(218)를 통해 레지스터 클록 드라이버(RCD)(217)로 전송될 수 있으며 명령들은 버스(219)를 통해 RCD(217)로부터 컨트롤러(214)로 전송될 수 있다. 컨트롤러(214)는 RCD(217)로부터 명령들을 수신하며 명령들과 연관된 데이터(예컨대, 명령들의 실행 동안 메모리 디바이스들(221 및/또는 224)로부터 판독되고 및/또는 그에 기록될 명령 지시들 및/또는 데이터)를 버퍼(206)에 저장할 수 있다.
컨트롤러(214)는 버스(219) 및 RCD(217)를 통해 버스(225-1) 상에서 메모리 디바이스들(221-1, ..., 221-8)로 명령들을 전송할 수 있다. 컨트롤러(214)는 버스(219) 및 RCD(217)를 통해 버스(225-2) 상에서 메모리 디바이스들(221-9, ..., 221-16)로 명령들을 전송할 수 있다. 컨트롤러(214)로부터 메모리 디바이스들(221-1, ..., 221-16)로의 명령들은 메모리 디바이스들(221-1, ..., 221-16)로부터 데이터를 판독하며 버스들(215-1, ..., 215-8) 상에서 메모리 디바이스들(224-1, ..., 224-8)로 데이터를 직접(데이터를 컨트롤러로 및 그 후 메모리 디바이스들로 전송하지 않고) 전송하며 및/또는 버스들(212-1, ... 212-8) 상에서 호스트(202)로 직접 데이터를 전송하기 위해 판독 명령들을 포함할 수 있다. 컨트롤러(214)로부터 메모리 디바이스들(221-1, ..., 221-16)로의 명령들은 버스들(215-1, ..., 215-8) 상에서 메모리 디바이스들(224-1, ..., 221-8)로부터 직접 수신되는 데이터를 메모리 디바이스들(221-1, ..., 221-16)에 기록하고 및/또는 버스들(212-1, ..., 212-8) 상에서 호스트(202)로부터 직접 수신되는 데이터를 메모리 디바이스들(221-1, ..., 221-16)에 기록하기 위한 기록 명령들을 포함할 수 있다. 컨트롤러(214)로부터 메모리 디바이스들(221-1, ..., 221-16 및 224-1, ..., 224-8)로 전송된 명령들은 호스트(202)로부터 명령을 수신하는 것에 응답하여 전송될 수 있다.
컨트롤러(214)는 메모리 디바이스들의 쌍(예컨대, 예를 들어 메모리 디바이스(221-1 또는 221-2))의 어떤 메모리 디바이스가 명령을 실행할지를 나타내는 신호를 RCD(217)로 전송할 수 있다. 신호는 RCD(217)로부터 다중화기(226-1, ..., 226-8)로 전송되며 다중화기(226-1, ..., 226-8)가 메모리 디바이스들의 쌍으로부터 메모리 디바이스를 선택하고 선택된 메모리 디바이스를 버스(225-1 및/또는 225-2)를 통해 RCD(217)에 결합하게 할 수 있다. 예를 들어, 명령이 A 사이드 포트를 통해 데이터를 전달하며 A 사이드 포트가 메모리 디바이스(221-1)를 호스트(202)에 결합하는 반면, B 사이드 포트가 메모리 디바이스(221-2)를 컨트롤러(214)에 결합한다면, 신호는 버스(225-1)를 메모리 디바이스(221-1)에 결합하기 위해 다중화기(226-1)로 나타낼 수 있다. 컨트롤러는 그 후 RCD(217)를 통해 버스(225-1) 상에서 메모리 디바이스(221-1)로 명령을 전송할 수 있으며 메모리 디바이스(221-1)는 메모리 디바이스(221-1)와 호스트(202) 사이에서 데이터를 전달함으로써 명령을 실행할 수 있다. 메모리 디바이스들(221-1, ..., 221-16)은 메모리 디바이스들(221-1, ..., 221-16)이 명령들의 실행을 완료하였으며 부가적인 명령들을 위한 준비가 됨을 나타내는 신호들(예컨대, 명령 완료 신호들)을, 버스들(225-1 및 225-2) 상에서 RCD(217) 및 컨트롤러(214)로 전송할 수 있다. 일단 명령이 실행되었다면, 컨트롤러(214)는 실행을 위해 또 다른 명령을 RCD(217)로 및/또는 호스트(202)로부터 수신된 명령이 실행되었음을 나타내는 상태 신호를 호스트(202)로 전송할 수 있다. 컨트롤러(214)는 명령들의 실행 동안 사용된 버퍼(206) 및/또는 레지스터(207)일 수 있는, SRAM 메모리와 같은, 비-휘발성 및/또는 휘발성 메모리를 포함할 수 있다.
컨트롤러(214)는 명령들을 버스(223-1) 상에서 메모리 디바이스들(224-1, ..., 224-4)로 및 명령들을 버스(223-2) 상에서 메모리 디바이스들(224-5, ..., 224-8)로 전송할 수 있다. 컨트롤러(214)로부터 메모리 디바이스들(224-1, ..., 224-8)로의 명령들은 메모리 디바이스들(224-1, ..., 224-8)로부터 데이터를 판독하며 데이터를 버스들(215-1, ..., 215-8) 상에서 메모리 디바이스들(221-1, ..., 221-16)로 직접 전송하기 위해 판독 명령들을 포함할 수 있다. 컨트롤러(214)로부터 메모리 디바이스들(224-1, ..., 224-8)로의 명령들은 버스들(215-1, ..., 215-8) 상에서 직접 메모리 디바이스들(221-1, ..., 221-16)로부터 수신된 데이터를 메모리 디바이스들(224-1, ..., 224-8)에 기록하기 위한 기록 명령들을 포함할 수 있다. 메모리 디바이스들(224-1, ..., 224-8)은 데이터를 메모리 디바이스들(224-1, ..., 224-8)에 기록할 때 메모리 디바이스들(221-1, ..., 221-16)로부터 수신된 데이터를 임시로 저장하기 위한 버퍼들(211)을 포함할 수 있다.
컨트롤러(214)는 메모리 디바이스들이 판독 명령의 완료 후 대기시간 없이 기록 명령을 실행할 수 있도록 타이밍을 갖고 메모리 디바이스들(224-1, ...., 224-8 및 221-1, ..., 221-16)로 판독 및/또는 기록 명령을 전송할 수 있다. 예를 들어, 판독 명령은 메모리 디바이스(224-1)로 전송될 수 있다. 메모리 디바이스(224-1)는 판독 명령을 실행하며 판독 명령과 연관된 데이터를 버스(215-1) 상에서 메모리 디바이스(221-1)로 전송할 수 있다. 컨트롤러(214)는 메모리 디바이스(221-1)가 대기시간 없이 기록 명령을 실행할 수 있도록 및 메모리 디바이스(221-1)가 버스(215-1) 상에서 메모리 디바이스(224-1)로부터 데이터를 수신할 때 한 번에 기록 명령을 메모리 디바이스(221-1)로 전송할 수 있다. 메모리 디바이스(221-1)는 메모리 디바이스(221-1)가 판독 명령의 완료 및 메모리 디바이스(224-1)로부터의 데이터의 수신 직후 발생하는 클록 사이클에서 기록 명령의 실행을 시작할 수 있도록 타이밍을 갖고 컨트롤러(214)로부터 기록 명령을 수신할 수 있다.
DIMM(210)은 제 1 수의 메모리 디바이스들(221-1, ..., 221-16)을 포함할 수 있다. 예를 들어, 메모리 디바이스들(221-1, ..., 221-16)은 다른 유형들의 휘발성 및/또는 비-휘발성 메모리 중에서, FeRAM 메모리 디바이스들일 수 있다. 메모리 디바이스들(221-1, ..., 221-16)은 함께 쌍을 이룰 수 있다. 예를 들어, 메모리 디바이스들(221-1 및 221-2)은 함께 쌍을 이루고, 포트(222-1)(A 사이드 포트) 및 버스들(212-1 및 212-2)을 통해 호스트에 결합되며, 포트(222-2)(B 사이드 포트) 및 버스(215-1)를 통해 메모리 디바이스(224-1)에 결합된다. 메모리 디바이스들(221-3 및 221-4)은 함께 쌍을 이루고, 포트(222-3)(A 사이드 포트) 및 버스(212-2)를 통해 호스트에 결합되며, 포트(222-4)(B 사이드 포트) 및 버스(215-2)를 통해 메모리 디바이스(224-2)에 결합된다. 메모리 디바이스들(221-5 및 221-6)은 함께 쌍을 이루고, 포트(222-5)(A 사이드 포트) 및 버스(212-3)를 통해 호스트에 결합되며, 포트(222-6)(B 사이드 포트) 및 버스(215-3)를 통해 메모리 디바이스(224-3)에 결합된다. 메모리 디바이스(221-7 및 221-8)는 함께 쌍을 이루고, 포트(222-7)(A 사이드 포트) 및 버스(212-4)를 통해 호스트에 결합되며, 포트(222-8)(B 사이드 포트) 및 버스(215-4)를 통해 메모리 디바이스(224-4)에 결합된다. 메모리 디바이스들(221-9 및 221-10)은 함께 쌍을 이루고, 포트(222-9)(A 사이드 포트) 및 버스(212-5)를 통해 호스트에 결합되며, 포트(222-10)(B 사이드 포트) 및 버스(215-5)를 통해 메모리 디바이스(224-5)에 결합된다. 메모리 디바이스들(221-11 및 221-12)은 함께 쌍을 이루고, 포트(222-11)(A 사이드 포트) 및 버스(212-6)를 통해 호스트에 결합되며, 포트(222-12)(B 사이드 포트) 및 버스(215-6)를 통해 컨트롤러(214)에 결합된다. 메모리 디바이스들(221-13 및 221-14)은 함께 쌍을 이루고, 포트(222-13)(A 사이드 포트) 및 버스(212-7)를 통해 호스트에 결합되며, 포트(222-14)(B 사이드 포트) 및 버스(215-7)를 통해 컨트롤러(214)에 결합된다. 메모리 디바이스들(221-15 및 221-16)은 함께 쌍을 이루고, 포트(222-15)(A 사이드 포트) 및 버스(212-8)를 통해 호스트에 결합되며, 포트(222-16)(B 사이드 포트) 및 버스(215-8)를 통해 컨트롤러(214)에 결합된다.
DIMM(210)은 제 2 수의 메모리 디바이스들(224-1, ..., 224-8)을 포함할 수 있다. 예를 들어, 메모리 디바이스들(221-1, ..., 221-8)은 다른 유형들의 휘발성 및/또는 비-휘발성 메모리 중에서, 3D XPoint 메모리 디바이스들일 수 있다.
메모리 시스템들(200)은 명령/어드레스 버스들(218) 상의 호스트 컨트롤러(208)로부터 데이터 버스들(212-1, ..., 212-8) 상의 레지스터 클록 드라이버(RCD)(217) 및 데이터로 명령/어드레스 정보를 전송함으로써 호스트(202)로부터 DIMM(210)으로 전송된 명령들을 실행하도록 구성될 수 있다. 호스트로부터의 명령들은 메모리 디바이스들(221-1, ..., 221-16)에 대한 어드레스 정보를 포함할 수 있으며 여기에서 호스트는 메모리 디바이스들(221-1, ..., 221-16)에서의 특정한 위치에서 데이터에 대한 동작을 요청한다. 호스트로부터의 명령들은 메모리 디바이스들(224-1, ..., 224-8)에 대한 어드레스 정보를 포함할 수 있으며 여기에서 호스트는 메모리 디바이스들(224-1, ..., 224-8)에서의 특정한 위치에서 데이터에 대한 동작을 요청하지만, 메모리 디바이스들(221-1, ..., 221-16)은 명령들의 실행 동안 버퍼로서 동작할 수 있다.
다수의 실시예들에서, 메모리 디바이스들(221-1, ..., 221-16)은 캐시로서 구성될 수 있다. 예를 들어, 메모리 디바이스들은 메모리 디바이스들(224-1, ..., 224-8) 및/또는 컴퓨팅 시스템에 결합된 다른 메모리 디바이스들에 저장된 데이터에 대한 캐시로서 구성될 수 있다. DIMM(210)은 호스트(202)에 의해 어드레싱 가능한 메모리 디바이스들(221-1, ..., 221-16)의 일 부분 및 캐시로서 구성된 메모리 디바이스들(221-1, ..., 221-16)의 일 부분을 갖도록 구성될 수 있다.
DIMM(210)은 함께 쌍을 이루는 메모리 디바이스들을 포함하며 쌍을 이룬 메모리 디바이스들 중 하나는 A 사이드 포트를 통해 호스트(202)로의 결합을 위해 선택될 수 있으며 쌍을 이룬 메모리 디바이스 중 다른 것은 B 사이드 포트를 통해 컨트롤러(214)로의 결합을 위해 선택될 수 있다. 예를 들어, 메모리 디바이스(221-2)와 쌍을 이룬, 메모리 디바이스들(221-1)은 포트(222-1)를 통해 호스트(202)로의 결합을 위해 선택될 수 있지만, 메모리 디바이스(221-2)는 포트(222-2)를 통해 컨트롤러(214)로의 결합을 위해 선택될 수 있다. 포트(222-1)는 호스트(202)로부터 메모리 디바이스(221-2)를 격리하면서 메모리 디바이스(221-1)를 선택하고 이를 호스트(202)에 결합하기 위해 다중화기를 포함할 수 있다. 포트(222-2)는 컨트롤러(214)로부터 메모리 디바이스(221-1)를 격리하면서 메모리 디바이스(221-2)를 선택하고 이를 컨트롤러(214)에 결합하기 위해 다중화기를 포함할 수 있다. 호스트(202)는 선택된 A 사이드 포트 메모리 디바이스(예컨대, 메모리 디바이스(221-1)) 상에서의 실행을 위해 명령을 DIMM(210)으로 전송할 수 있다. 명령들은 버스들(212-1 및/또는 212-2) 상에서 포트(222-1)를 통해 호스트(202)와 메모리 디바이스(221-1) 사이에서 데이터를 전달함으로써 실행될 수 있다. DIMM(210)은 또한 선택된 B 사이드 포트 메모리 디바이스(예컨대, 메모리 디바이스(221-2)) 상에서의 실행을 위해 명령들을 실행할 수 있다. 명령들은 버스들(212-1, 212-2, 223-1, 및/또는 223-2) 상에서 포트(222-1) 및 컨트롤러(214)를 통해 메모리 디바이스(221-2)와 다른 메모리 디바이스들 사이에서 데이터를 전달함으로써 실행될 수 있다. B 사이드 포트를 사용하여 실행된 명령들은 메모리 디바이스들(221-1, ...., 221-16) 사이에서 및/또는 메모리 디바이스들(221-1, ..., 221-16)과 메모리 디바이스들(224-1, ..., 224-8) 사이에서 데이터를 전달할 수 있다. 포트들(222-1, ..., 22-16)은 도 2에 예시된 바와 같이 메모리 디바이스들(221-1, ..., 221-16)의 외부에 있을 수 있으며 및/또는 메모리 디바이스들(221-1, ..., 221-16)의 내부에 있을 수 있다.
다수의 실시예들에서, A 사이드 포트들을 통해 데이터를 전달하는 명령들은 B 사이드 포트들을 통해 데이터를 전달하는 명령들 동안 실행될 수 있다. 쌍을 이룬 메모리 디바이스들에 저장되는 데이터는 컨트롤러에 의해 중재되고 조화될 수 있다. A 사이드 포트 상의 메모리 디바이스들 중 하나로 및/또는 그로부터 및 B 사이드 포트 상의 다른 쌍을 이룬 메모리 디바이스로 및/또는 그로부터 데이터가 전달되는 명령들을 실행한 메모리 디바이스들은 메모리 디바이스들의 쌍 사이에서 및/또는 메모리 디바이스들의 쌍 및 메모리 디바이스들(224-1, ..., 224-8) 사이에서 데이터를 전달함으로써 조화된 메모리 디바이스의 쌍에 대한 데이터를 가질 수 있다. 예를 들어, A 사이드 포트 및 B 사이드 포트 전달들이 메모리 디바이스들의 쌍 상에서 발생하며 DIMM(210)이 유휴 상태인 후, 컨트롤러(214)는 메모리 디바이스들의 쌍 사이에서 및/또는 메모리 디바이스들의 쌍 및 메모리 디바이스들(224-1, ..., 224-8) 사이에서 데이터를 전달함으로써 동일한 데이터가 메모리 디바이스들의 각각 상에 저장되도록 메모리 디바이스들의 쌍 상에 저장된 데이터를 조화시키기 위해 명령들을 전송할 수 있다.
다수의 실시예들에서, 명령들은 호스트(202)로부터 수신되며 및/또는 메모리 디바이스들(224-1, ..., 224-8) 사이에서 데이터를 전달하기 위해 컨트롤러(214)에 의해 생성될 수 있다. 데이터는 버퍼(206) 및/또는 레지스터들(207)을 사용하여 컨트롤러(214)를 통해 메모리 디바이스들(224-1, ..., 224-8) 사이에서 전달될 수 있다.
도 3은 본 개시의 다수의 실시예들에 따른, 호스트(302) 및 준비/비지 버스를 가진 이중 인-라인 메모리 모듈(DIMM)(310)을 포함한 메모리 시스템을 포함한 컴퓨팅 시스템(300)의 블록도이다. 도 3에서, 호스트(302)는 데이터 버스들(312-1, ..., 312-8), 명령/어드레스 버스(318), 및 준비/비지 버스(327)를 통해 DIMM(310)에 결합된다. 호스트(302)는 다수의 채널들(예컨대, 도 1에서의 채널들(103-1, ..., 103-N))을 통해 DIMM(310)에 결합될 수 있다. 예를 들어, 호스트(302)는 데이터 버스들(312-1, ..., 312-4), 명령/어드레스 버스(318), 및 준비/비지 버스(327)를 포함하는 제 1 채널을 통해 DIMM(310)에 결합되며; 호스트(302)는 데이터 버스들(312-5, ..., 312-8), 명령 어드레스/버스(318), 및 준비/비지 버스(327)를 포함하는 제 2 채널을 통해 DIMM(310)에 결합된다.
DIMM(310)은 제 1 수의 메모리 디바이스들(321-1, ..., 321-8)을 포함할 수 있다. 예를 들어, 메모리 디바이스들(321-1, ..., 321-16)은 다른 유형들의 휘발성 및/또는 비-휘발성 메모리 중에서, FeRAM 메모리 디바이스들일 수 있다. DIMM(310)은 제 2 수의 메모리 디바이스들(324-1, ..., 324-8)을 포함할 수 있다. 예를 들어, 메모리 디바이스들(321-1, ..., 321-8)은 다른 유형들의 휘발성 및/또는 비-휘발성 메모리 중에서, 3D XPoint 메모리 디바이스들일 수 있다.
컨트롤러(314)는 준비/비지 버스(327) 상에서 호스트(302)로 준비/비지 신호를 전송할 수 있다. 준비/비지 신호는 컨트롤러가 호스트(302)로부터 명령들을 수신할 준비가 되었는지 여부를 호스트(302)에 나타낼 수 있다. 예를 들어, DIMM(310)이 메모리 디바이스들(321-1, ..., 321-4) 및 메모리 디바이스들(324-1, ..., 324-4), 예를 들어 DIMM 사이에서 데이터를 전달하는 것과 같은, 명령들을 실행하느라 바쁘고 명령들을 수신할 준비가 되지 않았다면, 따라서 DIMM(310)이 명령들을 수신할 준비가 되지 않음을 나타내는 준비/비지 신호는 준비/비지 버스(327) 상에서 호스트(302)로 전송될 수 있다. 일단 DIMM(310)이 더 이상 명령들을 실행하느라 바쁘지 않다면, DIMM(310)은 DIMM(310)이 호스트(302)로부터 명령들을 수신할 준비가 됨을 나타내는 준비/비지 신호를 준비/비지 버스(327) 상에서 호스트(302)로 전송할 수 있다. 호스트(302)는 준비/비지 신호를 수신하는 것에 응답하여 명령들을 DIMM(310)으로 전송할 수 있다.
컨트롤러(314)는 호스트(302)로부터 명령들을 수신할 수 있다. 호스트(302)로부터의 명령들은 데이터를 판독하고 및/또는 이를 DIMM(310)에 기록할 수 있다. 컨트롤러(314)는 DIMM(310) 상에서 데이터를 판독하고, 기록하며, 전달하기 위해 판독 및/또는 기록 명령들을 메모리 디바이스들(321-1, ..., 321-8 및 324-1, ..., 324-8)로 전송함으로써 호스트(302)로부터의 명령을 해석할 수 있다. 호스트(302)로부터의 명령들은 버스(318)를 통해 레지스터 클록 드라이버(RCD)(317)로 전송될 수 있으며 명령들은 버스(319)를 통해 RCD(317)로부터 컨트롤러(314)로 전송될 수 있다. 컨트롤러(314)는 RCD(317)로부터 명령들을 수신하며 명령들과 연관된 데이터(예컨대, 명령들의 실행 동안 메모리 디바이스들(321 및/또는 324)로 판독되고 및/또는 그에 기록될 명령 지시들 및/또는 데이터)를 버퍼(306)에 저장할 수 있다. 컨트롤러는 RCD(317)를 통해 버스(325-1 및/또는 325-2) 상에서 메모리 디바이스들(321-1, ...., 321-8)로 명령들을 전송할 수 있으며 메모리 디바이스들(321-1, ..., 321-8)은 메모리 디바이스들(321-1, ..., 321-8) 및 호스트(320) 및/또는 메모리 디바이스들(321-1, ..., 321-8) 및 메모리 디바이스(324-1, ..., 324-8) 사이에서 데이터를 전달함으로써 명령들을 실행할 수 있다. 메모리 디바이스들(321-1, ..., 321-8)은 버스들(325-1 및 325-2) 상에서 메모리 디바이스들(321-1, ..., 321-8)이 명령들의 실행을 완료하였으며 부가적인 명령들을 위한 준비가 됨을 나타내는 신호들을 RCD(317) 및 컨트롤러(314)로 전송할 수 있다. 일단 명령이 실행되었다면, 컨트롤러(314)는 호스트(302)로부터 수신된 명령이 실행되었음을 나타내는 상태 신호를 호스트(302)로 전송할 수 있다. 컨트롤러(314)는 명령들의 실행 동안 사용된 버퍼(306) 및/또는 레지스터(307)일 수 있는, SRAM 메모리와 같은, 비-휘발성 및/또는 휘발성 메모리를 포함할 수 있다.
컨트롤러(314)는 버스(319) 및 RCD(317)를 통해 버스(325-1) 상에서 메모리 디바이스들(321-1, ..., 321-4)로 명령들을 전송할 수 있다. 컨트롤러(314)는 버스(319) 및 RCD(317)를 통해 버스(325-2) 상에서 메모리 디바이스들(321-5, ...., 321-8)로 명령들을 전송할 수 있다. 컨트롤러(314)로부터 메모리 디바이스들(321-1, ..., 321-8)로의 명령들은 메모리 디바이스들(321-1, ..., 321-8)로부터 데이터를 판독하고 버스들(315-1, ..., 315-8) 상에서 메모리 디바이스들(324-1, ..., 324-8)로 직접 데이터를 전송하며 및/또는 버스들(312-1, ..., 312-8) 상에서 호스트(302)로 직접 데이터를 전송하기 위해 판독 명령들을 포함할 수 있다. 컨트롤러(314)로부터 메모리 디바이스들(321-1, ..., 321-8)로의 명령들은 버스들(315-1, ..., 315-8) 상에서 메모리 디바이스들(324-1, ..., 324-8)로부터 직접 수신되는 데이터를 메모리 디바이스들(321-1, ..., 321-8)에 기록하며 및/또는 버스들(312-1, ..., 312-8) 상에서 호스트(302)로부터 직접 수신되는 데이터를 메모리 디바이스들(321-1, ..., 321-8)에 기록하기 위한 기록 명령들을 포함할 수 있다. 컨트롤러(314)에 의해 메모리 디바이스들(321-1, ..., 321-8 및 324-1, ..., 324-8)로 전송된 명령들은 호스트(302)로부터 명령을 수신하는 것에 응답하여 전송될 수 있다.
컨트롤러(314)는 명령들을 버스(323-1) 상의 메모리 디바이스들(324-1, ..., 324-4)로 및 명령들을 버스(323-2) 상의 메모리 디바이스들(324-5, ..., 324-8)로 전송할 수 있다. 컨트롤러(314)로부터 메모리 디바이스들(324-1, ..., 324-8)로의 명령들은 메모리 디바이스들(324-1, ..., 3-8)로부터 데이터를 판독하고 버스들(315-1, ..., 315-8) 상의 메모리 디바이스들(321-1, ..., 321-8)로 직접 데이터를 전송하기 위해 판독 명령들을 포함할 수 있다. 컨트롤러(314)로부터 메모리 디바이스들(324-1, ..., 324-8)로의 명령들은 버스들(315-1, ..., 315-8) 상에서 직접 메모리 디바이스들(321-1, ..., 321-8)로부터 수신된 데이터를 메모리 디바이스들(324-1, ..., 324-8)에 기록하기 위한 기록 명령들을 포함할 수 있다. 메모리 디바이스들(324-1, ..., 324-8)은 데이터를 메모리 디바이스들(324-1, ..., 324-8)에 기록할 때 메모리 디바이스들(321-1, ..., 321-8)로부터 수신된 데이터를 임시로 저장하기 위한 버퍼들(311)을 포함할 수 있다.
컨트롤러(314)는 판독 명령의 완료 후 메모리 디바이스들이 대기시간 없이 기록 명령을 실행할 수 있도록 타이밍을 갖고 판독 및/또는 기록 명령을 메모리 디바이스들(324-1, ..., 324-8 및 321-1, ..., 321-8)로 전송할 수 있다. 예를 들어, 판독 명령은 메모리 디바이스(324-1)로 전송될 수 있다. 메모리 디바이스(324-1)는 판독 명령을 실행하며 버스(315-1) 상에서 메모리 디바이스(321-1)로 판독 명령과 연관된 데이터를 전송할 수 있다. 컨트롤러(314)는 메모리 디바이스(321-1)가 대기시간 없이 기록 명령을 실행할 수 있도록 및 메모리 디바이스(321-1)가 버스(3-1) 상에서 메모리 디바이스(324-1)로부터 데이터를 수신함에 따라 기록 명령을 한 번에 메모리 디바이스(321-1)로 전송할 수 있다. 메모리 디바이스(321-1)는 판독 명령의 완료 및 메모리 디바이스(324-1)로부터의 데이터의 수신 직후 발생하는 클록 사이클에서 기록 명령의 실행을 시작할 수 있도록 타이밍을 갖고 컨트롤러(314)로부터 기록 명령을 수신할 수 있다.
메모리 시스템(300)은 명령/어드레스 버스(318) 상에서 호스트 컨트롤러(308)로부터 레지스터 클록 드라이버(RCD)(317)로 명령/어드레스 정보를 및 데이터 버스들(312-1, ..., 312-8) 상에서 데이터를 전송함으로써 호스트(302)로부터 DIMM(310)으로 전송된 명령들을 실행하도록 구성될 수 있다. 호스트로부터의 명령들은 메모리 디바이스들(321-1, ..., 321-8)에 대한 어드레스 정보를 포함할 수 있으며 여기에서 호스트는 메모리 디바이스들(321-1, ... 321-16)에서의 특정한 위치에서 데이터에 대한 동작을 요청한다. 호스트로부터의 명령들은 메모리 디바이스들(324-1, ..., 324-4)에 대한 어드레스 정보를 포함할 수 있으며 여기에서 호스트는 메모리 디바이스들(324-1, ..., 324-4)에서의 특정한 위치에서 데이터에 대한 동작을 요청하지만, 메모리 디바이스들(321-5, ..., 321-8)은 명령들의 실행 동안 버퍼로서 동작할 수 있다.
다수의 실시예들에서, 메모리 디바이스들(321-1, ..., 321-8)은 캐시로서 구성될 수 있다. 예를 들어, 메모리 디바이스들은 메모리 디바이스들(324-1, ..., 324-8) 및/또는 컴퓨팅 시스템에 결합된 다른 메모리 디바이스들에 저장된 데이터에 대한 캐시로서 구성될 수 있다. DIMM(310)은 호스트(302)에 의해 어드레싱 가능한 메모리 디바이스들(321-1, ..., 321-8)의 일 부분 및 캐시로서 구성된 메모리 디바이스들(321-1, ..., 321-8)의 일 부분을 갖도록 구성될 수 있다.
다수의 실시예들에서, 명령들은 호스트(302)로부터 수신되며 및/또는 메모리 디바이스들(324-1, ..., 324-8) 사이에서 데이터를 전달하기 위해 컨트롤러(314)에 의해 생성될 수 있다. 데이터는 버퍼(306) 및/또는 레지스터(307)를 사용하여 컨트롤러(314)를 통해 메모리 디바이스들(324-1, ..., 324-8) 사이에서 전달될 수 있다.
도 4는 본 개시의 다수의 실시예들에 따른 메모리에서 직접 데이터 전달을 포함한 예시적인 메모리 프로세스를 예시한 흐름도이다. 도 4에서 설명된 프로세스는 예를 들어, 도 2에 도시된 DIMM(210)과 같은 NVDIMM을 포함한 메모리 시스템에 의해 수행될 수 있다.
블록 450에서, 프로세스는 이중 인-라인 메모리 모듈(DIMM)의 컨트롤러로부터 판독 명령을 수신하는 것; DIMM의 컨트롤러로부터 기록 명령을 수신하는 것; 및 DIMM의 컨트롤러로부터 판독 명령을 수신하는 것에 응답하여 DIMM의 제 1 메모리 디바이스로부터 데이터를 판독하는 것을 포함할 수 있다.
블록 452에서, 프로세스는 컨트롤러로부터 기록 명령을 수신하는 것에 응답하여 및 제 1 메모리 디바이스로부터 데이터를 수신하는 것에 적어도 부분적으로 기초하여 DIMM의 제 2 메모리 디바이스로 데이터를 기록하는 것을 포함할 수 있다.
도 5는 본 개시의 다수의 실시예들에 따른 메모리에서 직접 데이터 전달을 포함한 예시적인 메모리 프로세스를 예시한 흐름도이다. 도 5에 설명된 프로세스는 예를 들어, 도 2에 도시된 DIMM(210)과 같은 NVDIMM을 포함한 메모리 시스템에 의해 수행될 수 있다.
블록 560에서, 프로세스는 컨트롤러로부터 기록 명령을 수신하는 것에 응답하여 제 1 메모리 디바이스로 데이터를 기록하는 것을 포함할 수 있다.
블록 562에서, 프로세스는 컨트롤러로부터 판독 명령을 수신하는 것에 응답하여 제 1 메모리 디바이스로부터 데이터를 판독하고 데이터를 제 2 메모리 디바이스로 전송하는 것을 포함할 수 있으며, 여기에서 제 1 디바이스, 제 2 디바이스, 및 컨트롤러는 이중 인-라인 메모리 모듈(DIMM) 상에 있다.
블록 564에서, 프로세스는 컨트롤러로부터 기록 명령을 수신하고 제 1 메모리 디바이스로부터 데이터를 수신하는 것에 응답하여 제 2 메모리 디바이스로 데이터를 기록하는 것을 포함할 수 있다.
특정 실시예들이 여기에서 예시되고 설명되었지만, 이 기술분야에서의 통상의 기술자들은 동일한 결과들을 달성하기 위해 산출된 배열이 도시된 특정 실시예들을 위해 대체될 수 있다는 것을 이해할 것이다. 본 개시는 본 개시의 다양한 실시예들의 적응화들 또는 변화들을 커버하도록 의도된다. 상기 설명은 제한적인 방식이 아닌, 예시적인 것으로 이루어질 수 있다는 것이 이해될 것이다. 상기 실시예들의 조합, 및 여기에서 구체적으로 설명되지 않은 다른 실시예들이 상기 설명을 검토할 때 이 기술분야의 숙련자들에게 명백할 것이다. 본 개시의 다양한 실시예들의 범위는 상기 구조들 및 방법들이 사용되는 다른 애플리케이션들을 포함한다. 그러므로, 본 개시의 다양한 실시예들의 범위는, 이러한 청구항들이 자격을 부여 받은 등가물들의 전체 범위와 함께, 첨부된 청구항들을 참조하여 결정되어야 한다.
여기에서 설명된 기능들은 하드웨어, 프로세서에 의해 실행된 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 프로세서에 의해 실행된 소프트웨어로 구현된다면, 기능들은 컴퓨터-판독 가능한 매체상에 저장되거나 또는 그 상에서의 하나 이상의 지시들 또는 코드로서 송신될 수 있다. 다른 예들 및 구현들은 본 개시 및 첨부된 청구항들의 범위 내에 있다. 예를 들어, 소프트웨어의 특징으로 인해, 여기에서 설명된 기능들은 프로세서에 의해 실행된 소프트웨어, 하드웨어, 펌웨어, 하드와이어링, 또는 이들 중 임의의 것의 조합들을 사용하여 구현될 수 있다. 기능들을 구현한 피처들은 또한, 기능들의 부분들이 상이한 물리적 위치들에서 구현되도록 분산되는 것을 포함하여, 다양한 위치들에서 물리적으로 위치될 수 있다.
또한, 청구항들에서를 포함하여, 여기에서 사용된 바와 같이, 아이템들의 리스트에서 사용된 바와 같은 "또는"(예를 들어, "~ 중 적어도 하나" 또는 "~ 중 하나 이상"과 같은 구절에 의해 선행된 아이템들의 리스트)은 예를 들어, A, B, 또는 C 중 적어도 하나의 리스트가 A 또는 B 또는 C 또는 AB 또는 AC 또는 BC 또는 ABC(즉, A 및 B 및 C)를 의미하도록 포괄적 리스트를 나타낸다. 의심을 피하기 위해, A, B, 또는 C 중 적어도 하나의 리스트, 또는 이들의 임의의 조합은 마찬가지로 포괄적 리스트이다. 또한, 여기에서 사용된 바와 같이, 구절 "~에 기초한"은 폐쇄형 세트의 조건들에 대한 참조로서 해석되지 않을 것이다. 예를 들어, "조건 A에 기초한"으로 설명되는 대표적인 단계는 본 개시의 범위로부터 벗어나지 않고 조건 A 및 조건 B 양쪽 모두에 기초할 수 있다. 다시 말해서, 여기에서 사용된 바와 같이, 구절 "~에 기초한"은 구절 "~에 적어도 부분적으로 기초한"과 동일한 방식으로 해석될 것이다.
앞서 말한 상세한 설명에서, 다양한 특징들은 본 개시를 간소화할 목적으로 단일 실시예에서 함께 그룹핑된다. 본 개시의 이러한 방법은 본 개시의 개시된 실시예들이 각각의 청구항에서 명확하게 나열되는 더 많은 특징들을 사용해야 한다는 의도를 반영한 것으로 해석되지 않을 것이다. 오히려, 다음의 청구항들이 반영하는 바와 같이, 본 발명의 주제는 단일의 개시된 실시예의 특징들 모두보다 적게 있다. 따라서, 다음의 청구항들은 상세한 설명으로 통합되며, 각각의 청구항은 그 자체로 별개의 실시예로서 성립한다.

Claims (20)

  1. 장치에 있어서,
    각각의 제 1 수의 포트들을 통해 호스트에 결합된 제 1 수의 메모리 디바이스들; 및
    각각의 제 2 수의 포트들을 통해 상기 제 1 수의 메모리 디바이스에 결합된 제 2 수의 메모리 디바이스들을 포함하며,
    제 1 수의 메모리 디바이스들 및 상기 제 2 수의 메모리 디바이스들은 제 1 수의 메모리 디바이스들로부터 데이터를 판독하고 상기 데이터를 상기 제 2 수의 디바이스들로 직접 전송하기 위한 지시들을 포함한 명령의 제 1 부분 및 상기 데이터를 상기 제 2 수의 메모리 디바이스들에 기록하기 위한 지시들을 포함하는 상기 명령의 제 2 부분에 기초하여 상기 데이터를 전달하도록 구성되는, 장치.
  2. 청구항 1에 있어서, 상기 제 1 수의 메모리 디바이스들은 레지스터 클록 드라이버(RCD)를 통해 컨트롤러로부터 상기 명령의 상기 제 1 부분을 수신하도록 구성되는, 장치.
  3. 청구항 1에 있어서, 상기 제 2 수의 디바이스들은 컨트롤러로부터 상기 명령의 상기 제 2 부분을 수신하도록 구성되는, 장치.
  4. 청구항 1 내지 청구항 3 중 어느 한 항에 있어서, 상기 제 2 수의 디바이스들은 상기 제 1 수의 메모리 디바이스들이 상기 명령의 상기 제 1 부분을 실행하는 것에 응답하여 상기 명령의 상기 제 2 부분을 실행하도록 구성되는, 장치.
  5. 청구항 1 내지 청구항 3 중 어느 한 항에 있어서, 상기 제 1 수 및 상기 제 2 수의 메모리 디바이스들은 FeRAM 메모리 디바이스들인, 장치.
  6. 장치에 있어서,
    메모리 모듈로서, 상기 메모리 모듈은 제 2 메모리 디바이스에 결합된 제 1 메모리 디바이스를 포함하고, 상기 제 1 메모리 디바이스는 컨트롤러에 결합되고 상기 제 2 메모리 디바이스는 상기 컨트롤러에 결합되고, 상기 메모리 모듈은 호스트에 결합되며, 상기 메모리 모듈 상의 컨트롤러는,
    상기 제 1 메모리 디바이스로부터 데이터를 전달하기 위한 지시들을 포함한 명령을 상기 호스트로부터 수신하고;
    상기 제 1 메모리 디바이스로부터 상기 제 2 메모리 디바이스로 상기 데이터를 전달하도록 상기 제 1 메모리 디바이스에 지시하는 판독 명령을 상기 제 1 메모리 디바이스로 전송하고;
    상기 제 1 메모리 디바이스로부터 수신된 상기 데이터를 상기 제 2 메모리 디바이스에 기록하도록 상기 제 2 메모리 디바이스에 지시하는 기록 명령을 상기 제 2 메모리 디바이스로 전송하도록 구성되는, 장치.
  7. 청구항 6에 있어서, 상기 메모리 모듈은 상기 명령을 실행하는 동안 상기 제 1 메모리 디바이스와 상기 호스트 사이에서 데이터를 전달하도록 구성되는, 장치.
  8. 청구항 6 내지 청구항 7 중 어느 한 항에 있어서, 상기 기록 명령은 상기 판독 명령의 완료를 즉시 따르는 클록 사이클 동안 실행되는, 장치.
  9. 청구항 6 내지 청구항 7 중 어느 한 항에 있어서, 상기 데이터는 상기 제 1 메모리 디바이스로부터 직접 전달되는 상기 제 2 메모리 디바이스로 버스 상에서 직접 전달되는, 장치.
  10. 청구항 6 내지 청구항 7 중 어느 한 항에 있어서, 상기 메모리 모듈 상의 상기 컨트롤러는 상기 제 2 메모리 디바이스로부터 상기 호스트로 상기 데이터를 전달하도록 상기 제 2 메모리 디바이스에 지시하는 또 다른 판독 명령을 상기 제 2 메모리 디바이스로 전송하도록 구성되는, 장치.
  11. 방법에 있어서,
    이중 인-라인 메모리 모듈(DIMM)의 컨트롤러로부터 판독 명령을 수신하는 단계;
    상기 DIMM의 상기 컨트롤러로부터 기록 명령을 수신하는 단계;
    상기 DIMM의 상기 컨트롤러로부터 상기 판독 명령을 수신하는 것에 응답하여 상기 DIMM의 제 1 메모리 디바이스로부터 데이터를 판독하는 단계; 및
    상기 컨트롤러로부터 상기 기록 명령을 수신하는 것에 응답하여 그리고 상기 제 1 메모리 디바이스로부터 상기 데이터를 수신하는 것에 적어도 부분적으로 기초하여 상기 DIMM의 제 2 메모리 디바이스로 상기 데이터를 기록하는 단계를 포함하는, 방법.
  12. 청구항 11에 있어서, 상기 컨트롤러로부터 또 다른 판독 명령을 수신하는 것에 응답하여 상기 제 2 메모리 디바이스로부터 상기 데이터를 판독하고 상기 데이터를 호스트로 전송하는 단계를 더 포함하는, 방법.
  13. 청구항 11에 있어서, 호스트로부터 판독 요청을 수신하는 것에 응답하여 상기 제 1 메모리 디바이스로부터 상기 데이터를 판독하고 상기 데이터를 상기 제 2 메모리 디바이스에 기록하는 단계를 더 포함하는, 방법.
  14. 청구항 11 내지 청구항 13 중 어느 한 항에 있어서, 상기 데이터를 상기 제 2 메모리 디바이스로 전송하는 단계는 버스 상에서 상기 제 1 메모리 디바이스로부터 상기 제 2 메모리 디바이스로 상기 데이터를 전송하는 단계 및 상기 버스에 결합된 다른 메모리 디바이스들 또는 컨트롤러들을 바이패스하는 단계를 포함하는, 방법.
  15. 청구항 11 내지 청구항 13 중 어느 한 항에 있어서, 상기 데이터를 상기 제 2 메모리 디바이스로 전송하는 단계는 상기 제 2 메모리 디바이스 상의 버퍼에 상기 데이터를 저장하는 단계를 포함하는, 방법.
  16. 청구항 11 내지 청구항 13 중 어느 한 항에 있어서, 상기 제 1 메모리 디바이스로부터 상기 데이터를 판독하는 동안 상기 제 2 메모리 디바이스와 호스트 사이에서 다른 데이터를 전달하는 단계를 더 포함하는, 방법.
  17. 방법에 있어서,
    컨트롤러로부터 기록 명령을 수신하는 단계;
    컨트롤러로부터 상기 기록 명령을 수신하는 것에 응답하여 데이터를 제 1 메모리 디바이스에 기록하는 단계;
    상기 컨트롤러로부터 판독 명령을 수신하는 단계;
    상기 컨트롤러로부터 상기 판독 명령을 수신하는 것에 응답하여 상기 제 1 메모리 디바이스로부터 상기 데이터를 판독하고 상기 데이터를 제 2 메모리 디바이스로 전송하는 단계로서, 상기 제 1 디바이스, 상기 제 2 디바이스 및 상기 컨트롤러는 이중 인-라인 메모리 모듈(DIMM) 상에 있는, 상기 판독 및 전송하는 단계; 및
    상기 컨트롤러로부터 기록 명령을 수신하는 것에 응답하여 그리고 상기 제 1 메모리 디바이스로부터 상기 데이터를 수신하는 것에 적어도 부분적으로 기초하여 상기 데이터를 상기 제 2 메모리 디바이스에 기록하는 단계를 포함하는, 방법.
  18. 청구항 17에 있어서, 호스트로부터 기록 요청을 수신하는 것에 응답하여 데이터를 제 1 메모리 디바이스에 기록하는 단계, 상기 제 1 메모리 디바이스로부터 상기 데이터를 판독하고 상기 데이터를 제 2 메모리 디바이스로 전송하는 단계, 및 상기 데이터를 상기 제 2 메모리 디바이스에 기록하는 단계를 더 포함하는, 방법.
  19. 청구항 17 내지 청구항 18 중 어느 한 항에 있어서, 준비/비지 신호를 상기 컨트롤러로부터 상기 호스트로 전송하는 것에 응답하여 상기 호스트로부터 상기 기록 요청을 수신하는 단계를 더 포함하는, 방법.
  20. 청구항 17 내지 청구항 18 중 어느 한 항에 있어서, 상기 데이터를 버퍼로서 구성된 상기 제 1 메모리 디바이스에 기록하는 단계를 더 포함하는, 방법.
KR1020217012086A 2018-09-24 2019-08-30 메모리에서 및 메모리 모듈의 디바이스들 사이에서의 직접 데이터 전달 KR20210053347A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/139,935 US10949117B2 (en) 2018-09-24 2018-09-24 Direct data transfer in memory and between devices of a memory module
US16/139,935 2018-09-24
PCT/US2019/049006 WO2020068365A1 (en) 2018-09-24 2019-08-30 Direct data transfer in memory and between devices of a memory module

Publications (1)

Publication Number Publication Date
KR20210053347A true KR20210053347A (ko) 2021-05-11

Family

ID=69884929

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217012086A KR20210053347A (ko) 2018-09-24 2019-08-30 메모리에서 및 메모리 모듈의 디바이스들 사이에서의 직접 데이터 전달

Country Status (5)

Country Link
US (2) US10949117B2 (ko)
EP (1) EP3857550A4 (ko)
KR (1) KR20210053347A (ko)
CN (1) CN112714933A (ko)
WO (1) WO2020068365A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10996890B2 (en) 2018-12-19 2021-05-04 Micron Technology, Inc. Memory module interfaces
KR20210039075A (ko) * 2019-10-01 2021-04-09 삼성전자주식회사 비휘발성 메모리 장치의 초기화 제어 방법 및 비휘발성 메모리 장치를 포함하는 메모리 시스템

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4554627A (en) * 1980-04-25 1985-11-19 Data General Corporation Data processing system having a unique micro-sequencing system
JPH0222748A (ja) * 1988-07-11 1990-01-25 Fujitsu Ltd 不揮発生メモリ制御回路
US5377325A (en) * 1992-04-21 1994-12-27 Acer Incorporated Bidirectional wait control between host module and slave module
US6145042A (en) * 1997-12-23 2000-11-07 Emc Corporation Timing protocol for a data storage system
KR101048380B1 (ko) * 2005-05-21 2011-07-12 삼성전자주식회사 메모리 모듈 장치
DE102005048581B4 (de) * 2005-10-06 2022-06-09 Robert Bosch Gmbh Teilnehmerschnittstelle zwischen einem FlexRay-Kommunikationsbaustein und einem FlexRay-Teilnehmer und Verfahren zur Übertragung von Botschaften über eine solche Schnittstelle
KR100745374B1 (ko) * 2006-02-21 2007-08-02 삼성전자주식회사 멀티포트 반도체 메모리 장치 및 그에 따른 신호 입출력방법
US8874831B2 (en) * 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
JP5731730B2 (ja) * 2008-01-11 2015-06-10 ピーエスフォー ルクスコ エスエイアールエルPS4 Luxco S.a.r.l. 半導体記憶装置及びその半導体記憶装置を含むデータ処理システム
US8271515B2 (en) 2008-01-29 2012-09-18 Cadence Design Systems, Inc. System and method for providing copyback data integrity in a non-volatile memory system
TW200935433A (en) 2008-02-15 2009-08-16 Asmedia Technology Inc Method for reducing data error when flash memory storage device using copy back command
KR101626084B1 (ko) * 2009-11-25 2016-06-01 삼성전자주식회사 멀티 칩 메모리 시스템 및 그것의 데이터 전송 방법
US20120110244A1 (en) 2010-11-02 2012-05-03 Micron Technology, Inc. Copyback operations
US8355294B2 (en) * 2011-03-18 2013-01-15 Freescale Semiconductor, Inc Synchronous data processing system for reliable transfer of data irrespective of propagation delays and process, voltage and temperature (PVT) variations
JP5658082B2 (ja) * 2011-05-10 2015-01-21 ルネサスエレクトロニクス株式会社 半導体装置
US10380022B2 (en) * 2011-07-28 2019-08-13 Netlist, Inc. Hybrid memory module and system and method of operating the same
KR20130051564A (ko) * 2011-11-10 2013-05-21 삼성전자주식회사 메모리 모듈, 이를 포함하는 보드 어셈블리, 이를 포함하는 메모리 시스템, 및 상기 메모리 시스템의 동작 방법
WO2014003764A1 (en) * 2012-06-28 2014-01-03 Hewlett-Packard Development Company, L.P. Memory module with a dual-port buffer
WO2014155593A1 (ja) * 2013-03-27 2014-10-02 株式会社日立製作所 Sdramインターフェイスを有するdram、フラッシュメモリ混載メモリモジュール
US9454310B2 (en) 2014-02-14 2016-09-27 Micron Technology, Inc. Command queuing
US10223309B2 (en) * 2014-12-19 2019-03-05 Rambus Inc. Dynamic random access memory (DRAM) component for high-performance, high-capacity registered memory modules
WO2016175856A1 (en) 2015-04-30 2016-11-03 Hewlett Packard Enterprise Development Lp Migrating data using dual-port non-volatile dual in-line memory modules
WO2016175855A1 (en) 2015-04-30 2016-11-03 Hewlett Packard Enterprise Development Lp Replicating data using dual-port non-volatile dual in-line memory modules
US10649680B2 (en) 2015-04-30 2020-05-12 Hewlett Packard Enterprise Development Lp Dual-port non-volatile dual in-line memory modules
KR102430561B1 (ko) 2015-09-11 2022-08-09 삼성전자주식회사 듀얼 포트 디램을 포함하는 메모리 모듈
US10073790B2 (en) 2015-12-03 2018-09-11 Samsung Electronics Co., Ltd. Electronic system with memory management mechanism and method of operation thereof
US10019367B2 (en) * 2015-12-14 2018-07-10 Samsung Electronics Co., Ltd. Memory module, computing system having the same, and method for testing tag error thereof
US10255955B2 (en) * 2016-02-09 2019-04-09 Samsung Electronics Co., Ltd. Multi-port memory device and a method of using the same
KR20180049338A (ko) * 2016-10-31 2018-05-11 삼성전자주식회사 저장 장치 및 그것의 동작 방법
US10628343B2 (en) 2017-02-03 2020-04-21 Futurewei Technologies, Inc. Systems and methods for utilizing DDR4-DRAM chips in hybrid DDR5-DIMMs and for cascading DDR5-DIMMs
US10474384B2 (en) * 2017-02-10 2019-11-12 Dell Products, Lp System and method for providing a back door communication path between channels on dual-channel DIMMs
US10229018B2 (en) 2017-02-27 2019-03-12 Dell Products, Lp System and method for data restore flexibility on dual channel NVDIMMs
US20180246643A1 (en) 2017-02-28 2018-08-30 Dell Products, Lp System and Method to Perform Runtime Saves on Dual Data Rate NVDIMMs

Also Published As

Publication number Publication date
US20210200465A1 (en) 2021-07-01
EP3857550A1 (en) 2021-08-04
CN112714933A (zh) 2021-04-27
US20200097208A1 (en) 2020-03-26
WO2020068365A1 (en) 2020-04-02
US10949117B2 (en) 2021-03-16
EP3857550A4 (en) 2022-06-22

Similar Documents

Publication Publication Date Title
US20210200783A1 (en) Data transfer with a bit vector operation device
US11263123B2 (en) Apparatuses and methods for memory device as a store for program instructions
KR20210059803A (ko) 뱅크 대 뱅크 데이터 전달
KR20200123260A (ko) 캐시 및 다중 독립 어레이를 갖는 메모리용 인터페이스
KR20210053347A (ko) 메모리에서 및 메모리 모듈의 디바이스들 사이에서의 직접 데이터 전달
US20210011664A1 (en) Background operations in memory
US11609867B2 (en) Isolation component
EP3857348A1 (en) Addressing in memory with a read identification (rid) number
CN111639039B (zh) 与双速存储器有关的设备和方法
KR20210123414A (ko) 메모리의 명령 버스
CN113508367B (zh) 存储器、存储器模块和非易失性存储器的存储器映射
US12001713B2 (en) Data transfer in port switch memory
US11698870B2 (en) Memory module data buffer

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right