KR20200123260A - 캐시 및 다중 독립 어레이를 갖는 메모리용 인터페이스 - Google Patents

캐시 및 다중 독립 어레이를 갖는 메모리용 인터페이스 Download PDF

Info

Publication number
KR20200123260A
KR20200123260A KR1020207029632A KR20207029632A KR20200123260A KR 20200123260 A KR20200123260 A KR 20200123260A KR 1020207029632 A KR1020207029632 A KR 1020207029632A KR 20207029632 A KR20207029632 A KR 20207029632A KR 20200123260 A KR20200123260 A KR 20200123260A
Authority
KR
South Korea
Prior art keywords
controller
command
pin
interface
memory
Prior art date
Application number
KR1020207029632A
Other languages
English (en)
Other versions
KR102448999B1 (ko
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 KR20200123260A publication Critical patent/KR20200123260A/ko
Application granted granted Critical
Publication of KR102448999B1 publication Critical patent/KR102448999B1/ko

Links

Images

Classifications

    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • 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
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • G06F13/1689Synchronisation and timing concerns
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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
    • G06F3/0656Data buffering arrangements
    • 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
    • G06F3/0658Controller construction arrangements
    • 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/0683Plurality of storage devices
    • 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/4076Timing circuits
    • 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
    • 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/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1621Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by maintaining request order
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/22Handling requests for interconnection or transfer for access to input/output bus using successive scanning, e.g. polling
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2245Memory devices with an internal cache buffer

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)
  • Databases & Information Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

본 개시는 캐시 및 다중 독립 어레이를 갖는 메모리용 인터페이스를 포함한다. 일 실시예는 캐시 및 복수의 독립 메모리 어레이를 갖는 메모리 디바이스, 제어기, 및 제어기에서 메모리 디바이스로 복수의 명령을 전달하도록 구성된 인터페이스를 포함하며, 상기 인터페이스는 복수의 명령 중 제 1 명령이 메모리 디바이스에 의해 수신됨에 따라 활성화하도록, 그리고 복수의 명령 모두가 메모리 디바이스에 의해 실행되면 비활성화되도록, 구성되는 핀을 포함한다.

Description

캐시 및 다중 독립 어레이를 갖는 메모리용 인터페이스
본 발명은 일반적으로 반도체 메모리 및 방법에 관한 것으로, 특히 캐시 및 다중 독립 어레이를 갖는 메모리용 인터페이스에 관한 것이다.
메모리 디바이스는 일반적으로 컴퓨터 또는 다른 전자 장치에서 내부, 반도체, 집적 회로 및/또는 외장형 제거가능 장치로 제공된다. 휘발성 및 비휘발성 메모리를 포함하여 다양한 유형의 메모리가 있다. 휘발성 메모리는 데이터를 유지하기 위해 전력이 필요할 수 있으며, 특히 RAM(Random-Access Memory), DRAM(Dynamic Random Access Memory), SRAM(Static Random Access Memory), SDRAM(Synchronization Dynamic Random Access Memory) 등을 포함할 수 있다. 비휘발성 메모리는 전력이 공급되지 않을 때 저장된 데이터를 유지할 수 있으며, NAND 플래시 메모리, NOR 플래시 메모리, PCRAM(phase change random access memory), RRAM(resistive random access memory) 및 MRAM(magnetic random access memory) 등을 포함할 수 있다.
메모리 디바이스는 메모리 디바이스의 다른 메모리(주 메모리로 지칭될 수 있음)보다 더 작고 및/또는 더 빠를 수 있는 캐시 메모리를 포함할 수 있다. 예를 들어, 캐시 메모리는 DRAM을 포함할 수 있고, 주 메모리는 DRAM, NAND 또는 NOR 플래시 메모리, 디스크 스토리지 또는 솔리드 스테이트 드라이브(SSD)를 포함할 수 있다. 메모리 디바이스는 데이터를 캐시하기 위해 캐시 메모리를 사용할 수 있으며, 이는 메모리 디바이스의 속도 및/또는 성능을 향상시킬 수 있다.
예를 들어, 다중 어레이(예를 들어, 다중 뱅크) 아키텍처를 갖는 기존 DRAM 장치와 같은 기존 메모리 디바이스용 제어기는 연관된 결정론적(가령, 고정된) 액세스 시간을 가진, 프로그램(예: 기록) 및 감지(예: 판독) 명령과 같은, 명령을 발행할 수 있어서, 제어기가 명령 실행 완료 및 새 명령 발행 시기를 알 수 있게 된다. 그러나 이러한 결정론적 액세스 타이밍 체계는 캐시 메모리를 포함하는 메모리 디바이스와 호환되지 않을 수 있다. 왜냐하면 명령이 캐시에서 또는 주 메모리에서 실행되느냐에 따라 명령(또는 명령 그룹)을 실행하는 데 걸리는 시간이 다를 수 있기 때문이다.
도 1은 본 개시 내용의 실시예에 따른 컴퓨팅 시스템의 블록도를 예시한다.
도 2는 본 개시 내용의 실시예에 따른 메모리 시스템의 블록도를 예시한다.
도 3은 본 개시 내용의 실시예에 따른 도 2의 메모리 시스템의 인터페이스 동작의 개념적 예를 예시하는 타이밍도이다.
도 4는 본 개시의 실시예에 따른 메모리 시스템의 블록도를 예시한다.
도 5는 본 개시의 실시예에 따른 도 4의 메모리 시스템의 인터페이스 동작의 개념적 예를 예시하는 타이밍도이다.
도 6은 본 개시 내용의 실시예에 따른 메모리 시스템의 블록도를 예시한다.
도 7은 본 개시 내용의 실시예에 따른 도 6의 메모리 시스템의 인터페이스 동작의 개념적 예를 예시하는 타이밍도이다.
도 8은 본 개시의 실시예에 따른 도 6의 메모리 시스템의 인터페이스의 동작의 추가적인 개념적 예를 예시하는 타이밍도이다.
도 9는 본 개시의 실시예에 따른 도 6의 메모리 시스템의 인터페이스의 동작의 추가적인 개념적 예를 예시하는 타이밍도이다.
본 개시는 캐시 및 다중 독립 어레이를 갖는 메모리용 인터페이스를 포함한다. 일 실시예는 캐시 및 복수의 독립 메모리 어레이를 갖는 메모리 디바이스, 제어기, 및 제어기로부터 메모리 디바이스로 복수의 명령을 전달하도록 구성된 인터페이스를 포함하며, 인터페이스는 복수의 명령 중 제 1 명령이 메모리 디바이스에 의해 수신될 때 활성화되도록, 그리고 복수의 명령 모두가 메모리 디바이스에 의해 실행되면 비활성화되도록 구성되는 핀을 포함한다.
본 개시 내용의 실시예들은 캐시 및 다중 어레이(예를 들어 다중 뱅크) 아키텍처를 갖는 메모리 디바이스(예를 들어, 인터페이싱할 수 있는 통신 프로토콜)와 메모리 디바이스의 제어기 사이의 인터페이스를 제공할 수 있어서, 관련된 비-결정론적(예를 들어, 고정되지 않은) 액세스 시간을 갖는 명령(예를 들어, 프로그램 및/또는 감지 명령)을 제어기로 하여금 발행할 수 있게 한다. 이와 같이, 본 개시 내용의 실시예는 캐시 및 다중 뱅크 아키텍처를 갖는 메모리 디바이스를 동작시키는 데 비결정론적 액세스 타이밍 방식이 이용되도록 허용할 수 있고, 이에 따라 다중 뱅크 아키텍처를 갖는 메모리 디바이스가 캐시 메모리를 갖는 것과 관련된 속도 및/또는 성능 상의 이점을 또한 실현할 수 있게 한다.
본 명세서에서 사용된 바와 같이, "하나의" 또는 "일"은 하나 이상의 것을 지칭할 수 있고, "복수"는 그러한 것들 중 하나보다 많음을 지칭할 수 있다. 예를 들어, 일 메모리 디바이스는 하나 이상의 메모리 디바이스를 지칭할 수 있고, 복수의 메모리 디바이스는 둘 이상의 메모리 디바이스를 지칭할 수 있다. 추가로, 특히 도면에서 참조 번호와 관련하여 여기에서 사용된 지정자 "X"는 그렇게 지정된 특정 특징 중 하나 이상이 본 개시의 실시예에 포함될 수 있음을 나타낸다.
본 명세서의 도면은 제 1 숫자 또는 숫자가 도면 도면 번호에 대응하고 나머지 숫자가 도면의 요소 또는 구성요소를 식별하는 번호 지정 규칙을 따른다. 서로 다른 도 사이의 유사한 요소 또는 구성요소는 유사한 숫자를 사용하여 식별할 수 있다. 예를 들어, 120은 도 1에서 요소 "20"을 참조할 수 있고, 유사한 요소는 도 2에서 220으로 참조될 수 있다.
도 1은 본 개시 내용의 실시예에 따른 컴퓨팅 시스템(100)의 블록도를 예시한다. 도 1에 도시된 바와 같이, 컴퓨팅 시스템(100)은 호스트(102) 및 메모리 시스템(104) 형태의 장치를 포함할 수 있다. 여기에서 사용된 바와 같이, "장치"는 예를 들어 회로 또는 회로군, 다이 또는 다이들, 모듈 또는 모듈들, 디바이스 또는 디바이스들 또는 시스템 또는 시스템들과 같은 다양한 구조 또는 구조들의 조합을 지칭할 수 있으나 이에 제한되지 않는다. 또한, 메모리 시스템(104)이 도 1에 예시된 예에서 호스트(102)의 외부인 것으로 도시되었지만, 본 개시의 실시예는 그렇게 제한되지 않는다. 예를 들어, 다수의 실시예에서, 메모리 시스템(104)은 호스트(102) 내부에 위치할 수 있다(예를 들어, 내부에 포함될 수 있음).
호스트(102)는 랜덤 액세스 메모리(RAM)와 같은 메모리(본 개시의 실시예를 모호하게하지 않도록 도 1에 도시되지 않음) 및 프로세서 및/또는 제어기와 같은 메모리 액세스 장치를 포함하여, 메모리 시스템(104)과 통신할 수 있다. 당업자는 "프로세서"가 병렬 처리 시스템, 하나 이상의 코 프로세서 등과 같은 하나 이상의 프로세서를 의도할 수 있다는 것을 이해할 것이다. 예시적인 호스트는 랩탑 컴퓨터, 개인용 컴퓨터, 디지털 카메라, 디지털 기록 및 재생 장치, 모바일 장치(예: 스마트 폰, 태블릿 등), PDA, 메모리 카드 판독기, 인터페이스 허브 등을 포함할 수 있다..
호스트(102)는 채널을 통해 메모리 시스템(104)에 명령을 전송할 수 있다. 예를 들어, 호스트(102)는 다른 동작들 중에서 정보(예를 들어, 데이터)를 감지(예를 들어, 판독), 프로그램(예를 들어, 기록) 및 소거하기 위해 메모리 시스템(104)과 통신할 수 있다. 물리적 호스트 인터페이스(도 1에 도시되지 않음)는 물리적 호스트 인터페이스에 대해 호환 가능한 수용체를 갖는 호스트(102)와 메모리 시스템(104) 사이에 제어, 어드레스, 데이터 및 기타 신호를 전달하기 위한 인터페이스를 제공할 수 있다. 신호는 예를 들어 채널(도 1에 도시되지 않음)을 통해 데이터 버스 및/또는 어드레스 버스와 같은 다수의 버스에서 호스트(102)와 메모리 시스템(104) 사이에서 통신될 수 있다.
도 1에 도시된 바와 같이, 메모리 시스템(104)은 메모리 디바이스(106), 제어기(108) 및 인터페이스(120)를 포함할 수 있다. 제어기(108)는 메모리 디바이스(106)와 통신하여 (호스트(102)로부터 명령 수신에 응답하여) 다른 동작들 중에서도, 정보를 감지(예를 들어, 판독), 프로그램(예를 들어, 기록), 및/또는 소거할 수 있다. 제어기(108)는 예를 들어 제어 회로 및/또는 로직(예를 들어, 하드웨어, 펌웨어 및/또는 소프트웨어)을 포함할 수 있다. 제어기(108)는 메모리 디바이스(106)와 동일한 물리적 장치(예를 들어, 동일한 다이)에 포함될 수 있거나, 메모리 디바이스(106)를 포함하는 물리적 장치에 통신적으로 결합되는 별도의 물리적 장치에 포함될 수 있다. 일 실시예에서, 제어기(108)의 구성요소들은 다수의 물리적 장치(예를 들어, 메모리 디바이스(106)와 동일한 다이 상의 일부 구성요소 및 상이한 다이, 모듈 또는 보드 상의 일부 구성요소)에 걸쳐 확산될 수 있다.
도 1에 도시된 바와 같이, 메모리 디바이스(106)는 캐시(110) 및 복수의 독립 메모리 어레이(예를 들어, 뱅크)(111-1, 111-2,..., 111-X)를 다중 어레이(예: 다중 뱅크) 아키텍처로 포함할 수 있다. 캐시(110) 및/또는 어레이(111-1, 111-2,..., 111-X)는 예를 들어 DRAM과 같은 휘발성 메모리를 포함할 수 있다. 그러나, 본 개시의 실시예는 특정 유형의 메모리 또는 메모리 디바이스에 제한되지 않는다. 예를 들어, 캐시(110) 및/또는 어레이(111-1, 111-2,..., 111-X)는 다른 유형의 메모리 중에서 예를 들어 SRAM, 플래시(예를 들어, NAND 플래시) 메모리, RRAM 또는 PCRAM과 같은 다른 유형의 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다.
메모리 어레이(111-1, 111-2,..., 111-X)는 메모리 시스템(104)에 주 메모리를 제공하는 메모리 셀의 어레이를 포함할 수 있거나, 메모리 시스템(104) 전체에 걸쳐 추가 메모리 또는 스토리지로 사용될 수 있다. 캐시(110)는 판독 명령 및/또는 기록 명령의 실행 동안 사용되는 데이터를 캐시하는 데 사용될 수 있다. 예를 들어, 캐시(110)는 캐시로서 사용되는 메모리 셀 어레이(예를 들어, DRAM 셀)를 포함할 수 있고, 메모리 어레이(111-1, 111-2,..., 111-X)에도 저장되는 데이터를 저장하도록 구성될 수 있다. 캐시(110) 및 메모리 어레이(111-1, 111-2,..., 111-X)에 저장되는 데이터는 제어기(108)에 의해 어드레싱될 수 있고, 명령 실행 중 캐시(110) 및/또는 어레이(111-1, 111-2,..., 111-X)에 위치할 수 있다.
인터페이스(120)는 실행을 위해 제어기(108)로부터 메모리 디바이스(106)로 명령(예를 들어, 호스트(102)로부터 제어기(108)에 의해 수신된 명령)을 전달할 수 있다. 예를 들어, 인터페이스(120)는 제어기(108)가 그와 연관된 비결정론적(예를 들어, 고정되지 않은) 액세스 시간을 갖는 명령(예를 들어, 프로그램 및/또는 감지 명령)을 발행하도록 허용할 수 있다. 인터페이스(120)의 예는 여기서 더 설명될 것이다.
도 1에 예시된 실시예는 본 개시 내용의 실시예들을 모호하게하지 않도록 예시되지 않은 추가 회로를 포함할 수 있다. 예를 들어, 메모리 디바이스(106)는 I/O 회로를 통해 I/O 커넥터를 통해 I/O 커넥터를 거쳐 제공된 어드레스 신호를 래치하기 위한 어드레스 회로를 포함할 수 있다. 어드레스 신호는 메모리 어레이(111-1, 111-2,..., 111-X )에 액세스하기 위해 행 디코더 및 열 디코더에 의해 수신 및 디코딩될 수 있다.
도 2는 본 개시 내용의 실시예에 따른 메모리 시스템(204)의 블록도를 예시한다. 메모리 시스템(204)은 도 1과 관련하여 이전에 설명된 메모리 시스템(104)의 예일 수 있다. 예를 들어, 메모리 디바이스(206), 제어기(208), 캐시(210), 메모리 어레이(211, 211-2,..., 211-X) 및 인터페이스(220)는 도 1과 관련하여 각각 이전에 설명된 메모리 디바이스(106), 제어기(108), 캐시(110), 메모리 어레이(111-1, 111-2,..., 111-X) 및 인터페이스(120)의 예일 수 있다.
인터페이스(220)는 실행을 위해 제어기(208)로부터 메모리 디바이스(206)로 복수의 명령을 (예를 들어, 명령 버스(224)를 통해) 통신할 수 있다. 예를 들어, 명령은 제어기(208)에 의해 그룹으로 발행될 수 있으며, 이는 본 명세서에서 묶음(bunches)으로 지칭될 수 있다. 도 2에 설명된 예에서 명령 그룹(예: 묶음)은 프로그램(예: 기록) 명령 및/또는 감지(예: 판독) 명령을 포함할 수 있다. 예를 들어, 명령 그룹은 적어도 하나의 판독 명령과 적어도 하나의 기록 명령을 포함할 수 있다. 그러나, 명령 그룹은 메모리 어레이(211-1, 211-2,..., 211-X) 중 어느 하나와 관련된 단일 명령만 포함할 수 있다(예: 묶음에는 뱅크 당 최대 하나의 판독 명령 또는 기록 명령이 포함될 수 있음).
제어기(208)에 의해 발행된 복수의 명령 각각은 그와 연관된 비결정론적(예를 들어, 고정되지 않은) 액세스 타이밍을 가질 수 있다(예를 들어, 명령을 실행하는 데 필요한 시간의 양은 명령이 캐시(210) 또는 어레이(211-1, 211-2,..., 211-X) 중 하나에서 실행되는지 여부에 따라 좌우될 수 있음). 그룹 내의 명령의 양(예를 들어, 수)은 메모리 디바이스(206)와 관련된 최대 시간 지연에 대응할 수 있다. 최대 시간 지연은 예를 들어, 이 그룹의 제 1 명령으로 시작하여 메모리 디바이스(206)에 의해 필요한 시간의 양일 수 있으며, 메모리 어레이(211, 211-2,..., 211-X)의 기능을 포화시키지 않고(예: 사용 가능한 뱅크 수를 포화시키지 않음) 데이터 버퍼의 입력 및/또는 출력 경로를 활성화시킬 수 있다. 이 시간 슬롯 밖의 추가 명령은 제어기(208)에 대기할 수 있다.
도 2에 예시된 예에서, 인터페이스(220)는 본 명세서에서 대기 핀, 명령 버스(224) 및 데이터 버스(226)로 지칭될 수 있는 핀(222)을 포함한다. 대기 핀(222)은 그룹 내 제 1 명령이 메모리 디바이스(206)에 의해 수신될 때 활성화될 수 있고, 그룹 내 모든 명령이 메모리 디바이스에 의해 실행되면 비활성화될 수 있다. 예를 들어, 대기 핀(222)에 의해 출력된 신호는 메모리 디바이스(206)가 그룹의 제 1 명령을 수신할 때 활성화(예를 들어, 어서트(assert))될 수 있고, 그룹의 모든 명령이 실행되면 비활성화(예를 들어, 디어서트(deassert))될 수 있다.
대기 핀(222)이 비활성화되면(예를 들어, 대기 핀(222)에 의해 출력되는 신호에 따라), 그룹의 판독 명령과 관련된 데이터(예를 들어, 판독 명령을 실행하는 동안 판독된 데이터)는 인터페이스(220)의 데이터 버스(226)에 의해 제어기(208)로 출력될 수 있다. 판독 데이터가 제어기(208)로 출력되는 순서는 그룹의 판독 명령이 제어기(208)로부터 메모리 디바이스(206)로 발행된 순서에 대응할 수 있다(예를 들어, 판독 명령의 실행 동안 판독된 데이터가 판독 명령이 발행된 순서로 출력될 수 있음). 예를 들어, 도 2에 도시된 바와 같이, 메모리 디바이스(206) 및 제어기(208)는 그룹의 명령이 제어기로부터 메모리 디바이스로 발행되는 순서를 저장할 수 있는 레지스터(228 및 230)를 각각 포함할 수 있다. 메모리 디바이스(206)는 레지스터(228)(예를 들어, 레지스터(228)에 저장된 명령 순서)를 사용하여 각각의 판독 명령이 제어기(208)에 의해 발행된 것과 동일한 순서로 판독 데이터를 출력할 수 있고, 제어기(208)는 레지스터(230)(예를 들어, 레지스터(230)에 저장된 명령 순서)를 이용하여 메모리 디바이스로부터 도착하는 판독 데이터의 순서를 알 수 있다.
판독 데이터가 인터페이스(220)의 데이터 버스(226)에 의해 제어기(208)로 출력되는 동안, 제어기(208)에 의해 발행된 추가(예를 들어, 새로운) 명령 그룹은 인터페이스(220)의 명령 버스(224)에 의해 메모리 디바이스(206)에 전달될 수 있다. 명령 중첩은 레지스터(228 및 230)의 콘텐트를 메모리 디바이스(206) 및 제어기(208)에 각각 저장함으로써 달성될 수 있다. 예를 들어, 메모리 디바이스(206)는 대기 핀(222)이 비활성화될 때 레지스터(228)의 콘텐트를 복제할 수 있고, 제어기(208)는 새로운 명령 그룹의 시퀀스를 시작하기 전에 레지스터(230)의 콘텐트를 복제할 수 있다.
도 3은 본 개시의 일 실시예에 따라 도 2와 관련하여 이전에 설명된 인터페이스(220)의 동작의 개념적 예를 예시하는 타이밍도(335)이다. 예를 들어, 도 3에 언급된 대기 핀, 명령 버스 및 데이터 버스는 각각 도 2와 관련하여 이전에 설명된 대기 핀(222), 명령 버스(224) 및 데이터 버스(226)에 대응할 수 있다.
도 3에 예시된 예에서, 인터페이스(220)의 명령 버스는 제어기(208)에서 메모리 디바이스(206)로 제 1 명령 그룹(예를 들어, 명령 A, B, C, D 및 E를 포함) 및 제 2 명령 그룹(예를 들어, 명령 F, G, H, I, J, K, L 및 M을 포함)을 전송하고 있다. 도 3에 도시된 예에서, 명령 A, D, E, F, G, H, I, J , K, L, M은 판독 명령이고 명령 B와 C는 기록 명령 일 수 있다. 또한, 도 3에 도시된 바와 같이, 제 1 그룹의 명령의 수는 메모리 디바이스(206)와 관련된 최대 시간 지연(tMAX)에 대응(예를 들어, 이에 의해 제한됨)하여, 뱅크 능력이 포화되는 반면, 제 2 그룹의 명령의 수는 사용 가능한 뱅크 수를 포화시킨다.
도 3에 도시된 바와 같이, 대기 핀은 제 1 그룹의 제 1 명령(예를 들어, 명령 A)이 메모리 디바이스에 의해 수신될 때 활성화된다. 제 1 그룹의 모든 명령이 실행되면 대기 핀이 비활성화되고, 도 3에 예시된 바와 같이, 판독 명령 A, D, E를 각각 실행하는 동안 읽은 데이터는 실행 순서대로 데이터 버스에 의해 제어기에 출력된다.
도 3에 도시된 바와 같이, 판독 명령 A, D 및 E의 실행 중에 읽힌 데이터가 데이터 버스에 의해 출력되는 동안, 명령 버스는 명령의 제 2 그룹을 메모리 디바이스에 전달하기 시작하고, 대기 핀은 제 2 그룹의 제 1 명령(예: 명령 F)이 메모리 디바이스에 의해 수신되면 다시 한 번 활성화된다. 제 2 그룹의 모든 명령이 실행되면 대기 핀이 비활성화되고 판독 명령 F, G, H, I, J, K, L 및 M을 실행하는 동안 읽은 데이터가 각각 도 3과 같이 실행 순서대로 데이터 버스에 의해 제어기에 출력된다.
도 4는 본 개시 내용의 실시예에 따른 메모리 시스템(404)의 블록도를 예시한다. 메모리 시스템(404)은 도 1과 관련하여 이전에 설명된 메모리 시스템(104)의 예일 수 있다. 예를 들어, 메모리 디바이스(406), 제어기(408), 캐시(410), 메모리 어레이(411-1, 411-2,..., 411-X) 및 인터페이스(420)는 도 1과 연계하여 앞서 각각 설명한 메모리 디바이스(106), 제어기(108), 캐시(110), 메모리 어레이(111-1, 111-2,..., 111-X) 및 인터페이스(120)의 예일 수 있다.
인터페이스(420)는 실행을 위해 제어기(408)로부터 메모리 디바이스(406)로 복수의 명령을(예를 들어, 명령 버스(424)를 통해) 통신할 수 있다. 예를 들어, 명령은 제어기(408)에 의해 그룹(예를 들어, 묶음)으로 발행될 수 있다. 도 4에 설명된 예에서 명령 그룹(예: 묶음)은 감지(예: 판독) 명령만 포함할 수 있다(예: 묶음에는 기록 명령이 포함되지 않을 수 있음). 또한, 제어기(408)에 의해 발행된 복수의 명령 각각은 그와 연관된 비결정론적(예를 들어, 고정되지 않은) 액세스 타이밍을 가질 수 있다(예를 들어, 명령을 실행하는 데 필요한 시간은 그것이 캐시(410)에서 또는 어레이(411-1, 411-2, ..., 411-X) 중 하나에서 실행되는지 여부에 따라 달라질 수 있다.
도 4에 예시된 예에서, 인터페이스(420)는 본 명세서에서 경보 핀으로 지칭될 수 있는 핀(442), 명령 버스(424) 및 데이터 버스(426)를 포함한다. 경보 핀(442)은 그룹 내 판독 명령 중 하나가 어레이(예: 뱅크)(411-1, 411-2,..., 411-X) 중 하나에서 실행되면 활성화될 수 있고, 그룹의 일 판독 명령이 캐시(410) 상에서 실행되면 비활성화될 수 있다. 예를 들어, 경보 핀(442)에 의해 출력되는 신호는 그룹의 판독 명령이 어레이(411-1, 411-2,..., 411-X) 중 하나에서 실행될 때 활성화(가령, 어서트)될 수 있고, 및 그룹 중 일 판독 명령이 캐시(410)에서 실행될 때 비활성화(가령, 디어서트)될 수 있다. 어레이(411-1, 411-2,..., 411-X) 중 하나에서의 명령 실행은 본 명세서에서 "미스"(miss)로 지칭될 수 있고, 캐시(410)에서의 명령의 실행은 본 명세서에서 "히트"(hit)로 지칭될 수 있다. 이와 같이, 경보 핀(442)은 명령의 실행 상태(예를 들어, 그 표시)와 관련된 정보를 제어기(408)에 제공할 수 있다.
그룹의 판독 명령과 관련된 데이터(예를 들어, 판독 명령을 실행하는 동안 판독된 데이터)는 인터페이스(420)의 데이터 버스(426)에 의해 제어기(408)로 출력될 수 있다. 경보 핀(442)에 의해 출력되는 신호는 데이터 버스(426)에 의해 출력되는 신호와 비동기식일 수 있고(가령, 위상차를 가짐), 제어기(408)는 데이터 버스(426)에 의해 출력되는 데이터의 유효성을 결정하기 위해 경보 핀(442)에 의해 출력된 신호를 사용할 수 있다. 예를 들어, 제어기(408)는 경보 핀(442)에 의해 출력된 신호가 활성화 또는 비활성화되었는지에 기초하여 데이터 버스(426)에 의해 출력된 데이터가 유효한지 여부를 결정할 수 있다. 신호가 활성화되면(가령, 미스를 의미) 데이터가 무효이고, 신호가 비활성화된 경우(예: 히트를 의미) 데이터가 유효할 수 있다.
그룹의 판독 명령이 어레이(411-1, 411-2, 411-X) 중 하나에서 실행될 때(예를 들어, 미스의 경우, 데이터 버스(426)는 그렇지 않을 경우 유효하지 않은 무용한 데이터를 제어기(408)에 출력할 것임), 데이터 버스(426)는 판독 명령 실행의 예상 대기시간과 관련된 정보(예를 들어, 힌트)를 제어기(408)에 제공할 수 있다. 명령 실행의 예상 대기시간은 명령이 실행되는데 걸리는 예상 시간, 및/또는 명령이 실행될 때 실행을 위한 새 명령을 위해 어레이가 가용한 시기를 나타낼 수 있다. 명령 실행의 예상 대기시간과 관련된 정보는 예를 들어, 현재 명령의 실행과 동일 위치(가령, 어드레스)의 어레이에서 실행될 새 명령 발행 이전에 제어기(408)가 대기해야할 최소 클럭 사이클을 나타내는 정보를 포함할 수 있다. 이 정보는 명령이 실행되는 동안 메모리 디바이스(406)에 의해 결정(가령, 계산)될 수 있다.
제어기(408)는 명령 실행의 예상 대기시간과 연관된 정보에 기초하여 판독 명령과 연관된(예를 들어, 판독될) 데이터를 얻기 위해 데이터 버스(426)의 점유를 리스케줄링한다. 예를 들어, 제어기는 리스케줄링하도록 판독 명령의 실행의 예상 대기시간과 관련된 정보를 이용하여, 요청한 데이터를 얻기 위해 데이터 버스(426) 상에서의 시간 슬롯을, 메모리 디바이스(406)로부터 제어기(408)로 출력을 위해 데이터가 가용한 시간 슬롯으로, 요청된 데이터를 얻기 위해 데이터 버스(426)상의 시간 슬롯을 리스케줄하기 위해 판독 명령 실행의 예상 대기시간과 관련된 정보를 사용할 수 있다.
도 5는 본 개시의 실시예에 따라 도 4와 관련하여 이전에 설명된 인터페이스(420)의 동작의 개념적 예를 예시하는 타이밍도(545)이다. 예를 들어, 도 5에 언급된 경보 핀, 명령 버스 및 데이터 버스는 각각 도 4와 관련하여 이전에 설명된 경보 핀(442), 명령 버스(424) 및 데이터 버스(426)에 대응할 수 있다.
도 5에 도시된 예에서, 인터페이스(420)의 명령 버스는 제어기(408)로부터 메모리 디바이스(406)로 판독 명령 그룹(예를 들어, 판독 명령 A, B 및 C를 포함 함)을 통신하고 있다. 도 5에서, 명령 A는 캐시(410)에서 실행된다(예를 들어, 명령 A는 히트를 초래한다). 따라서, 경보 핀은 명령 A의 실행시 비활성화(예를 들어, 남아 있음)되고, 명령 A의 실행 중에 판독된 데이터는 도 5에 도시된 바와 같이 데이터 버스에 의해 제어기(408)로 출력된다.
계속해서 예에서, 명령 B는 그 후 어레이(예를 들어 뱅크)(411-1, 411-2,..., 411-X) 중 하나에서 실행된다(예: 명령 B는 미스를 초래함). 따라서, 경보 핀은 명령 B의 실행시 활성화되고, 명령 B 실행의 예상 대기시간과 관련된 정보(예: 힌트)는 제어기를 위해, 도 5에 도시되는 바와 같이, 데이터 버스에 의해 제어기(408)에 출력되어, 명령 B의 실행을 리스케줄링할 수 있게 된다.
계속해서 예에서, 명령 C는 캐시(410)에서 실행된다(예를 들어, 명령 C는 히트를 발생시킨다). 따라서, 경보 핀은 명령 C 실행시 비활성화되고, 명령 C 실행 중에 판독되는 데이터는 도 5에 도시된 바와 같이 데이터 버스에 의해 제어기(408)로 출력된다.
계속해서 예에서, 명령 B가 다시 한번 실행된다(예를 들어, 리스케줄링에 따라); 이것은 이제 캐시(410)에서 실행된다. 따라서, 경보 핀은 명령 B의 재실행시 비활성화(예를 들어, 남아있음)되고, 명령 B의 실행 중에 판독된 데이터는 도 5에서와 같이, 이제 데이터 버스에 의해 제어기(408)로 출력된다.
도 6은 본 개시 내용의 실시예에 따른 메모리 시스템(604)의 블록도를 예시한다. 메모리 시스템(604)은 도 1과 관련하여 이전에 설명된 메모리 시스템(104)의 예일 수 있다. 예를 들어, 메모리 디바이스(606), 제어기(608), 캐시(610), 메모리 어레이(611-1, 611-2,..., 611-X) 및 인터페이스(620)는 도 1과 연계하여 앞서 각각 설명한 메모리 디바이스(106), 제어기(108), 캐시(110), 메모리 어레이(111-1, 111-2,..., 111-X) 및 인터페이스(120)의 예일 수 있다.
인터페이스(620)는 실행을 위해 제어기(608)로부터 메모리 디바이스(606)로 복수의 명령을 (예를 들어, 명령 버스(624)를 통해) 통신할 수 있다. 예를 들어, 명령은 제어기(608)에 의해 그룹(예를 들어, 묶음)으로 발행될 수 있다. 도 6에 표시된 예에서 명령 그룹(예: 묶음)은 감지(예: 판독) 명령 및/또는 프로그램(예: 기록) 명령을 포함할 수 있다. 예를 들어, 명령 그룹은 적어도 하나의 판독 명령과 적어도 하나의 기록 명령을 포함할 수 있다. 또한, 제어기(608)에 의해 발행된 복수의 명령 각각은 그와 연관된 비결정론적(예를 들어, 고정되지 않은) 액세스 타이밍을 가질 수 있다(예를 들어, 명령을 실행하는 데 필요한 시간은 그것이 캐시(610)에서 또는 어레이(611-1, 611-2, ..., 611-X) 중 하나에서 실행되는지 여부에 따라 좌우될 수 있다.
도 6에 예시된 예에서, 인터페이스(620)는 여기서 경보 핀으로 지칭될 수 있는 제 1 핀(652), 여기서 경보_S 핀으로 지칭될 수 있는 제 2 핀(654), 명령 버스(624), 및 데이터 버스(626)를 포함한다. 경보_S 핀이 도 6에서 단일 핀(예를 들어, 654)으로 도시되어 있지만, 일부 실시예에서 경보_S 핀은 2 개의 핀을 포함할 수 있다.
경보 핀(652)은 명령 그룹 중 하나가 어레이(예를 들어 뱅크)(611-1, 611-2,…,..., 611-X) 중 하나에서 실행될 때 활성화될 수 있고(예: 미스시), 명령 그룹 중 하나가 캐시(610)에서 실행될 때 비활성화될 수 있다(예: 히트시). 예를 들어, 경보 핀(652)에 의해 출력된 신호는 명령 그룹 중 하나가 어레이(611-1, 611-2,...., 611-X) 중 하나에서 실행될 때(가령, 미스시) 활성화(예: 어서트)될 수 있고, 명령 그룹 중 하나가 캐시(610)에서 실행될 때(예를 들어, 히트시) 비활성화(예를 들어, 디어서트)될 수 있다.
그룹의 기록 명령과 관련된 데이터(예를 들어, 기록 명령을 실행하는 동안 기록될 데이터)는 인터페이스(620)의 데이터 버스(626)에 의해 메모리 디바이스(606)에 입력될 수 있고, 그룹의 판독 명령(예를 들어, 그룹의 판독 명령 실행 동안 판독되는 데이터)는 데이터 버스(626)에 의해 제어기(608)에 출력될 수 있다. 경보 핀(652)에 의해 출력되는 신호는 데이터 버스(626)에 의해 출력된 신호와 동기성(예를 들어, 위상이 같음)일 수 있다. 제어기(608)는 경보 핀(652)에 의해 출력된 신호를 사용하여, 판독 명령의 경우에 (예를 들어, 도 4와 관련하여 제어기(408)에 대해 이전에 설명된 것과 유사한 방식으로) 데이터 버스(626)에 의해 출력되는 판독 데이터의 유효성을 결정할 수 있고, 기록 명령의 경우 데이터 버스에 의해 입력되는 데이터에 대한 기록 작업 완료를 결정할 수 있다.
그룹의 판독 또는 기록 명령이 어레이(611-1, 611-2, 611-X) 중 하나에서 실행될 때(예: 미스의 경우), 경보 핀(652)(예: 경보 핀(652)에 의해 출력되는 신호)은 명령 실행의 예상 대기시간과 관련된 정보(예를 들어, 힌트)를 제어기(608)에 제공할 수 있다. 명령 실행의 예상 대기시간 및 명령 실행의 예상 대기시간과 관련된 정보는 도 4와 관련하여 앞서 설명한 예상 대기시간 및 이와 관련된 정보와 유사할 수 있다.
제어기(608)는 명령 실행의 예상 대기시간과 관련된 정보에 기초하여 판독 명령에 의해 판독될 데이터를 획득하거나 다음 기입 명령에 의해 기록될 데이터를 기록하기 위해, 데이터 버스(626)의 점유를 리스케줄링한다. 예를 들어, 제어기는 명령 실행의 예상 대기시간과 관련된 정보를 사용하여, 요청된 데이터를 획득 또는 기록하기 위한 데이터 버스(626) 상의 시간 슬롯을, 데이터가 메모리 디바이스(606)로부터 출력되도록 가용할 때 또는 메모리 디바이스(606)에 의해 기록되도록 수용되 때에 해당하는 시간 슬롯으로 리스케줄링할 수 있다.
경보_S 핀(654)은 경보 핀(652)이 활성화되는 동안(예를 들어, 판독 또는 기록 명령에 대한 미스의 결과로) 경보 핀(652)에 의해 출력된 신호와 관련된 정보를 스트로브할 수 있다. 예를 들어, 경보_S 핀(654)은 제어기(608)가 메모리 디바이스(606)로부터 출력된 데이터를 처리할 수 있도록, 각각의 클록 비트에서 경보 핀(652)에 의해 전달된 데이터 값을 동기화 및/또는 정렬할 수 있다.
일부 실시예에서, 메모리 디바이스(606)는 명령 큐(예를 들어, 도 6에 예시된 명령 큐(656))를 포함할 수 있다. 명령 큐(656)는 메모리 디바이스(606)에 의해 수신되었지만 아직 실행되지 않은 그룹의 명령을 실행될 순서대로 저장할 수 있다. 이러한 실시예에서, 경보 핀(652)(예를 들어, 경보 핀(652)에 의해 출력된 신호)은 실행된 명령이 미스 또는 히트를 초래했는지 여부를 나타내는 정보 및 미스를 초래한 명령의 예상 대기시간과 관련된 정보에 추가하여, 명령 큐(656)의 빈(가령, 가용) 엔트리와 관련된(가령, 이를 나타내는) 정보, 및 명령 큐(656)에 추가(가령, 삽입)되었을 때 실행 명령에 할당된 신원(가령, ID)과 관련된(가령, 이를 나타내는) 정보를 제어기(608)에 제공할 수 있다. 이러한 실시예에서, 제어기(608)는 미스를 생성하는 모든 판독 요청이 경보 핀(652)을 통해 메모리 디바이스(606)에 의해 수신되는 관련 신원(가령, ID)(가령, 경보 핀(652)에 의해 출력되는 신호)과 태그될 수 있도록, 대기열의 명령 레지스터(가령, 도 6에 도시된 대기열의 명령 레지스터(666))를 포함할 수 있다.
명령 큐(656) 내의 자유 엔트리의 양 및/또는 명령 큐의 다음 준비 사이클과 관련된 정보는 제어기(608)로부터 수신된 추가 고정 타이밍 명령에 응답하여 경보 핀(652)에 의해 제공될 수 있다. 이 명령은 여기서 "CQ 상태"명령으로 지칭될 수 있다. 일부 실시예에서, 미스를 초래한 명령의 예상 대기시간과 관련된 정보는 CQ 상태 명령에 응답하여 제공될 수도 있다.
명령 큐(656)에 추가될 때 명령에 할당된 신원은 제어기(608)에 의해 사용되어, 데이터 버스(626)에 의해 출력되는 데이터가 유효한지 여부를 결정할 수 있고, 명령이 명령 큐(656)에 추가될 때(606), 예를 들어 메모리 디바이스에 의해 할당된 고유 ID를 포함할 수 있고, 이는 본 명세서에서 "할당된 ID 현재"로 지칭될 수 있다. 실행된 명령의 "할당된 ID 현재" 필드를 모두 0과 비교함으로써, 제어기(608)는 실행된 명령이 미스 또는 히트를 초래했는지 여부를 결정할 수 있고, 그 명령이 미스를 초래한 판독 명령인 경우(예를 들어, "할당된 ID 현재"이 모두 0이 아님), 메모리 디바이스(606)에 의해 나중에 출력될 데이터를 위해 큐잉된 명령 레지스터(666)에서 수신 된 "할당된 ID 현재"에 대응하는 판독 요청을 태그할 수 있다. 또한, 미스를 초래한 판독 명령의 경우, "할당된 ID 이전"이라고 지칭될 수 있는, 명령 큐(656)에 추가될 때 명령에 이전에 할당된 "할당된 ID 현재"를 제어기(608)에 제공할 수도 있다. 이 "할당된 ID 이전" 필드가 제공될 때, 이것은 데이터 버스(625)에 의해 출력되는 데이터가 유효하지만 미스를 초래한 명령과 연관되지 않음을 제어기(608)에 표시할 수 있다. 오히려, 이 데이터는 미스를 초래한, 그리고, 연관된 "할당된 ID 이전" 값을 가진, 실행의 이전 판독 명령과 연관되어 있다. 그러한 경우에, 제어기(608)는 이 필드를 사용하여 큐잉된 명령 레지스터(666)에서이 명령을 찾고, 연관된 데이터가 수신되면 이를 삭제할 수 있다. 예를 들어, "할당된 ID 현재" 및 "할당된 ID 이전"필드는 각각 경보 핀(652)에 의해 출력되는 신호의 6-비트 필드를 포함할 수 있다.
메모리 디바이스(606)는 경보 핀(652)이 활성화될 때(예를 들어, 그룹의 명령 중 하나가 미스를 초래할 때) 명령 큐(656)에 저장된 순서와 상관없이 그룹의 명령을 실행할 수 있다. 예를 들어, 제어기(608)는 경보 핀(652)(예를 들어, 경보 핀(652)에 의해 출력된 신호)이 활성화되면서 미스를 또한 초래한 그룹의 이전에 실행된 판독 명령과 관련된 데이터를 출력하기 위해 메모리 디바이스(606)에 추가 고정 타이밍 명령을 발행할 수 있다. 본 명세서에서 "무 순서 버스트 판독(OoOBR)" 명령으로 지칭될 수 있는 이 명령에 따라, 메모리 디바이스(606)가 명령 큐(656)에 대기중인 이전에 실행된 판독 명령의 "할당된 ID 이전"(경보 핀(652)를 통해) 및 데이터(데이터 버스 626을 통해)를 출력하게할 수 있다.
경보 핀(652)에 의해 제공되는 미스를 초래한 명령의 예상 대기시간과 관련된 정보는 명령의 유형을 나타내는 정보 및 대기중인 명령의 실행이 완료될 때를 나타내는 정보를 포함할 수 있다. 예를 들어, 경보 핀(652)에 의해 출력되는 신호는 명령이 판독 명령인지 기록 명령인지를 나타내는 정보를 포함할 수 있으며, 명령이 판독 명령인 경우 판독 명령의 길이를 나타내는 정보, 판독 명령과 관련된 데이터가 메모리 디바이스(606)로부터 출력되도록 가용한 시기, 및 판독 데이터의 출력이 시작되는 시기를 포함할 수 있다.
예를 들어, 명령의 유형을 나타내는 정보는 명령이 판독 또는 기록 명령인지를 나타내는 1 비트 필드를 포함할 수 있다. 또한, 명령 실행이 완료되는 시기를 나타내는 정보는 명령 실행이 완료되는 시기와, 명령이 판독 명령인 경우 판독 데이터의 출력이 시작될 수 있는 시기를 나타내는 4 비트 필드로 구성될 수 있다. 또한, 판독 명령의 길이를 나타내는 정보가 판독 데이터를 출력하는 데 필요한 OoOBR 명령의 길이를 나타내는 1 비트 필드로 구성될 수 있으며, 판독 데이터가 출력될 수 있는 시기를 나타내는 정보는 판독 데이터를 출력할 수 있는 스케일링된 시간을 얻기 위한 배율로 사용되는 2비트 필드를 포함할 수 있다.
판독 명령의 예시적인 시퀀스(예를 들어, 버스트 판독 명령)에서, 모두 0 인 "할당된 ID 현재" 필드를 갖는 경보 핀(652)에 의해 출력되는 신호는, 히트가 제 1 출력 시간 프레임에서 발생했음을 나타낼 수 있으며, 이에 따라 데이터 버스(626)에 의해 출력된 데이터 값이 유효함을 나타낼 수 있고, 신호의 나머지 비트는 대기중인 명령의 실행이 완료되고 관련 데이터(있는 경우)가 데이터 버스(626)에 의해 메모리 디바이스(606)로부터 출력될 수 있는 시기를 나타내는 대기시간 정보일 수 있다. 대조적으로, 경보 핀(652)에 의해 출력된 신호는 0이 아닌 "할당된 ID 현재"필드를 출력함으로써 미스를 나타낼 수 있으며, 이는 나중에, 연관된 데이터가 제어기(608)에 의해 수신될 때까지 대기 명령 레지스터(666)의 명령을 태그하도록 제어기(608)에 의해 사용될 수 있다.
또한, 출력될 유효한 데이터가 없을 것이기 때문에, 미스로 인해 명령과 관련된 데이터 버스(626)의 출력 시간 프레임이 무용지물이 될 수 있다. 그러한 경우에, 메모리 디바이스(606)가 명령 큐(656)에 이전에 큐잉되었던 다른 판독 명령의 실행을 완료했다면, 이 출력 시간 프레임은 대신에 그 이전 명령과 연관된 데이터를 데이터 버스(626) 상에서 출력하는 데 사용될 수 있으며, 데이터 버스(626)에 의해 출력되는 데이터가 연관된 명령을 제어기(608)에 나타내기 위해 경보 핀(652)에 의해 출력된 "할당된 ID 이전" 필드에서 그 ID를 태그할 수 있다. 메모리 제어기(608)는 이 정보를 사용하여 큐잉된 명령 레지스터(666)로부터 대응하는 명령 엔트리를 조회하고 삭제할 수 있다.
메모리 디바이스(606)가 출력 시간 프레임 동안 데이터 버스(626)에 출력할 데이터가 없는 경우, 경보 핀(652)에 의해 출력되는 신호는 0이 아닌 "할당된 ID 이전" 필드, 및 큐잉된 명령의 실행이 완료될 시기(가령, 시간)를 나타내는 필드를 포함할 수 있다. 제어기(608)는 이 시간을 사용하여 데이터 버스(626)로부터 판독 데이터를 얻기 위해 그리고 경보 핀(652)에 의해 출력된 신호로부터 연관된 "할당된 ID 이전"을 얻기 위해 OoOBR 명령이 발행될 수 있는 시기를 스케줄링할 수 있다. 메모리 제어기(608)는 또한 이 정보를 사용하여 대기중인 명령 레지스터(666)에서 해당 명령 엔트리를 찾아 삭제한다.
판독 또는 기록 명령의 그룹을 발행하기 전에, 제어기(608)는 경보 핀(652)에 의해 출력된 신호를 사용하여 명령 큐(656)에서 자유(예를 들어, 이용 가능한) 엔트리(예를 들어, 위치)의 양을 결정할 수 있다. 제어기(608)는 그후, 자유 엔트리의 양보다 작거나 같은 다수의 명령을 포함하는 명령 그룹을 발행할 수 있다. 그룹의 명령을 실행하는 동안 제어기(608)는 경보 핀(652)에 의해 출력된 정보를 모니터링하여, 명령 큐(656)에 빈 엔트리가 있는지(예를 들어, 명령 큐(656)가 가득 찼는 지 여부), 따라서 추가 명령이 발행될 수 있는지 여부를 결정할 수 있다. 예를 들어, 명령 큐(656)의 자유 엔트리의 양은 미스를 초래하는 명령에 따라 감분(예를 들어, 감소)될 수 있고, 데이터 버스(626)에 의해 출력되는 데이터를 나타내는 정보를 포함하지 않는 경보 핀(652)에 의한 신호 출력은 유효하며, 미스를 유발한 이전 판독 명령과 관련된 데이터가 OoOBR 명령을 사용하여 데이터 버스(626)에 의해 출력될 때 큐의 자유 엔트리의 양은 증분(가령, 증가)될 수 있다. 증가 또는 감소 후에 명령 큐(656)에 빈 엔트리가 있으면 제어기(608)는 추가 명령을 발행할 수 있다.
기록 명령의 그룹에 대해, 각각의 명령의 실행이 완료될 때 제어기(608)에 정보가 반환되지 않을 수 있다. 따라서, 제어기(608)는 명령 큐(656)의 자유 엔트리의 양을 감소시키기 위해서만 명령이 히트 또는 미스를 초래했는지 여부를 나타내는 경보 핀(652)에 의해 출력된 정보를 사용할 수 있다. 명령 큐(656)가 가득 차지 않은 경우, 자유 엔트리의 양을 나타내는 경보 핀(652)에 의해 출력되는 신호에 포함된 정보는 얼마나 많은 추가 기록 명령이 메모리 디바이스(606)에 발행될 수 있는지를 결정하기 위해 제어기(608)에 의해 모니터링될 수 있는데, 왜냐하면, 각각이 미스를 유발할 가능성이 있고, 따라서, 명령 큐(656)에 자유 위치가 필요하기 때문이다.
명령 큐(656)가 가득 차면, 제어기(608)는 큐잉된 명령의 실행이 완료될 때를 나타내는 경보 핀(652)에 의해 출력되는 신호에 포함된 정보(예를 들어, 필드)를 사용하여, 큐의 위치가 가용해지는 시기(예를 들어, 대기열에 있는 명령의 실행 완료시) 또는 가용해졌을 시기(예: 관련 데이터를 복구하기 위한 OoOBR 명령 완료시)를 결정할 수 있고, 따라서, 추가 명령이 발생될 수 있는 시기를 결정할 수 있다. 또한, 제어기(608)는 또한 명령 큐(656)에서 업데이트된 양의 자유 엔트리를 획득하기 위해 CQ 상태 명령을 발행할 수 있고, 이 정보를 사용하여 추가 명령이 발행될 수 있는지 여부 및 발생될 수 있는 추가 명령의 수를 결정할 수 있다.
도 7은 본 개시의 일 실시예에 따라 도 6과 관련하여 이전에 설명된 인터페이스(620)의 동작의 개념적 예를 예시하는 타이밍도(760)이다. 예를 들어, 도 7에서 언급된 경보 핀, 명령 버스 및 데이터 버스는 각각 이전에 도 6과 관련하여 설명된 경보 핀(652), 명령 버스(624) 및 데이터 버스(626)에 대응할 수 있다.
도 7에 도시된 예에서 인터페이스(620)의 명령 버스는 제어기(608)로부터 메모리 디바이스(606)로 판독 명령 그룹(예를 들어, 판독 명령 A, B 및 C를 포함함)을 통신하고 있다. 도 7에 도시되는 예에서, 명령 A는 캐시(610)에서 실행된다(예를 들어, 명령 A는 히트를 발생시킨다). 따라서, 경보 핀은 명령 A의 실행시 비활성화(예를 들어, 남아 있음)되고, 명령 A의 실행 중에 판독된 데이터는 도 7에 도시된 바와 같이 데이터 버스에 의해 제어기(608)로 출력된다.
계속해서 예에서, 명령 B는 어레이(예를 들어 뱅크)(611-1, 611-2,..., 611-X) 중 하나에서 실행된다(예: 명령 B는 실패를 초래 함). 따라서, 경보 핀은 명령 B의 실행시 활성화되고, 명령 B 실행의 예상 대기시간과 관련된 정보(예: 힌트)는 도 7에 도시되는 바와 같이, 경보 핀에 의해(가령, 경보 핀에 의해 출력되는 신호에 의해) 제어기(608)에 제공되어(예를 들어, 경보 핀), 제어기(608)가 명령 B의 실행을 리스케줄링하는데 사용할 수 있다.
계속해서 예에서, 명령 C는 캐시(610)에서 실행된다(예를 들어, 명령 C는 히트를 발생시킨다). 따라서, 경보 핀은 명령 C의 실행시 비활성화되고 명령 C 실행 중에 읽은 데이터는 도 7에 도시된 바와 같이 데이터 버스에 의해 제어기(608)로 출력된다.
계속해서 예에서, 명령 B가 다시 한 번 실행된다(예를 들어, 리스케줄링에 따라); 이것은 이제 캐시(610)에서 실행된다. 따라서, 경보 핀은 명령 B의 재실행시 비활성화(예를 들어, 남아 있음)되고, 명령 B의 실행 동안 판독된 데이터는 도 7에서와 같이, 이제 데이터 버스에 의해 제어기(608)로 출력된다.
도 8은 본 개시의 일 실시예에 따라 도 6과 관련하여 이전에 설명된 인터페이스(620)의 동작의 추가적인 개념적 예를 예시하는 타이밍도(865)이다. 예를 들어, 도 8에 언급된 경보 핀, 명령 버스 및 데이터 버스는 각각 이전에 도 6과 관련하여 설명된 경보 핀(652), 명령 버스(624) 및 데이터 버스(626)에 대응할 수 있다.
도 8에 예시된 예에서, 인터페이스(620)의 명령 버스는 제어기(608)로부터 메모리 디바이스(606)로 기록 명령 그룹(예를 들어, 기록 명령 A, B, C 및 D를 포함 함)을 통신하고 있다. 도 8에 도시된 바와 같이, 명령 A는 캐시(610)에서 실행된다(예를 들어, 명령 A는 히트를 초래한다). 따라서, 경보 핀은 명령 A의 실행시 비활성화(예를 들어, 남아 있음)되고, 명령 A의 실행 중에 기록될 데이터는 도 8에 도시된 바와 같이 데이터 버스에 의해 메모리 디바이스(606)에 입력된다.
계속해서 예에서, 명령 B는 어레이(예를 들어 뱅크)(611-1, 611-2,..., 611-X) 중 하나 상에서 실행된다(예: 명령 B는 미스를 초래 함). 따라서, 경보 핀은 명령 B의 실행시 활성화되고, 명령 B 실행의 예상 대기시간과 관련된 정보(예: 힌트)는 도 8에서와 같이 경보 핀에 의해(가령, 경보 핀에 의해 출력되는 신호에 의해) 제어기(608)에 제공된다. 제어기(608)는 이 정보를 사용하여 명령 B가 실행되고 있는 뱅크에서 실행될 다음 명령(예를 들어, 명령 D)을 스케줄링할 수 있다. 추가적으로, 명령 B의 실행 동안 기록될 데이터는 도 8에 도시된 바와 같이 데이터 버스에 의해 메모리 디바이스(606)에 입력된다.
계속해서 예에서, 명령 C는 캐시(610)에서 실행된다(예를 들어, 명령 C는 히트를 발생시킨다). 따라서, 경보 핀은 명령 C의 실행시 비활성화되고, 명령 C의 실행 중에 기록될 데이터는 도 8에 도시된 바와 같이 데이터 버스에 의해 메모리 디바이스(606)에 입력된다.
계속해서 예에서, 명령 D는 명령 B가실행된 동일 뱅크(611-1, 611-2,..., 611-X)에서 실행된다(예: 명령 D가 미스를 초래). 따라서, 경보 핀은 명령 D의 실행시에 활성화되고, 명령 D의 실행 동안 기록될 데이터는 도 8에 도시된 바와 같이 데이터 버스에 의해 메모리 디바이스(606)에 입력된다.
도 9는 본 개시의 일 실시예에 따라 도 6과 관련하여 이전에 설명된 인터페이스(620)의 동작의 추가적인 개념적 예를 예시하는 타이밍도(970)이다. 예를 들어, 도 9에서 언급된 경보 핀, 명령 버스 및 데이터 버스는 각각 이전에도 6과 관련하여 설명된 경보 핀(652), 명령 버스(624) 및 데이터 버스(626)에 대응할 수 있다. 또한 도 9에 도시된 예는 메모리 디바이스(606)가 명령 큐(예를 들어, 도 6과 관련하여 이전에 설명된 명령 큐(656))를 포함하는 실시예에 적용될 수 있다.
도 9에 도시된 예에서, 인터페이스(620)의 명령 버스는 제어기(608)로부터 메모리 디바이스(606)로 판독 명령 그룹(예를 들어, 판독 명령 A, B 및 C를 포함 함)을 통신하고 있다. 도 9의 예에서, 명령 A는 캐시(610)에서 실행된다(예를 들어, 명령 A는 히트를 초래한다). 따라서, 경보 핀은 명령 A의 실행시 비활성화(예를 들어, 남아 있음)되고, 명령 A의 실행 동안 판독된 데이터는 도 9에 도시된 바와 같이 데이터 버스에 의해 메모리 디바이스(606)로 출력된다.
계속해서 예에서, 명령 B는 어레이(예를 들어 뱅크)(611-1, 611-2,..., 611-X) 중 하나에서 실행된다(예: 명령 B는 미스를 초래함). 따라서, 경보 핀은 명령 B의 실행시 활성화되고, 명령 큐(656)에 추가될 때 명령 B에 할당된 신원(예: 할당된 ID 현재)과 관련된 정보는 도 9에서와 같이 경보 핀에 의해(예: 경보 핀에 의해 출력된 신호에 의해) 제어기(608)에 제공되어, 제어기(608)가 무순서로 명령 B의 실행을 완료할 수 있다. 또한, 미스를 초래한 이전에 발행된 판독 명령(예를 들어, 명령 X)에 이전에 할당된 신원(예를 들어, 할당된 ID 이전)과 관련된 정보도 경보 핀에 의해 제어기(608)에 제공되고, 명령 X의 실행 중 판독된 데이터가 도 9에서와 같이 데이터 버스에 의해 제어기(608)에 출력된다.
계속해서 예에서, 명령 C는 어레이(예를 들어 뱅크)(611-1, 611-2,..., 611-X) 중 하나에서 실행된다(예: 명령 C는 미스를 초래함). 따라서, 경보 핀은 명령 C의 실행시 활성화(예: 남아 있음)되고 명령 큐(656)에 추가되었을 때 명령 C에 할당된 신원(예: ID)와 관련된 정보가 경보 핀에 의해(예를 들어, 경보 핀에 의해 출력된 신호에 의해) 제어기(608)에 제공되어, 제어기(608)가 명령 C의 실행을 무순서로(out of order) 완료하는 데 사용하도록 한다. 또한, 이전 판독 명령 B의 실행의 예상 대기시간과 관련된 정보가 도 9에서와 같이 경보 핀에 의해(예를 들어, 경보 핀에 의해 출력되는 신호에 의해) 제어기(608)에 제공되어, 순서가 잘못된(out of order) 버스트 판독(OoOBR) 명령으로 명령 B의 실행을 리스케줄링하는데 제어기(608)가 사용한다. 한편, 도 9에 도시된 바와 같이 데이터 버스에 의해 제어기(608)에 데이터가 출력되지 않는다.
계속해서 예에서, 명령 B에 대해 OoOBR 명령이 발행되고, 그 결과 캐시 히트가 발생한다(도 9 참조). 따라서 경보 핀이 비활성화되고, 명령 큐(656)에 추가되었을 때 명령 B(예를 들어, 현재 할당된 ID 이전)에 할당된 신원과 관련된 정보가 경보 핀에 의해 출력되며, 명령 B의 실행 중 판독된 데이터는 도 9에서와 같이 데이터 버스에 의해 제어기(608)에 이제 출력된다.
본 명세서에서 특정 실시예가 예시되고 설명되었지만, 당업자는 동일한 결과를 달성하기 위해 계산된 배열이 도시된 특정 실시예를 대체할 수 있다는 것을 이해할 것이다. 본 개시는 본 개시의 실시예들의 적응 또는 변형을 포함하도록 의도된다. 상기 설명은 제한적인 것이 아니라 예시적인 방식으로 이루어진 것으로 이해되어야 한다. 전술한 실시예들과 여기에서 구체적으로 설명되지 않은 다른 실시예들의 조합은 상기 설명을 검토함으로써 당업자에게 명백할 것이다. 본 개시의 실시예의 범위는 상기 구조 및 방법이 사용되는 다른 애플리케이션을 포함한다. 따라서, 본 개시 내용의 실시예의 범위는 첨부된 청구 범위를 참조하여, 그러한 청구 범위가 부여되는 등가물의 전체 범위와 함께 결정되어야 한다.
전술한 상세한 설명에서, 일부 특징은 개시 내용을 간소화하기 위해 단일 실시예에서 함께 그룹화된다. 이 개시 방법은 본 개시의 개시된 실시예가 각 청구항에서 명시 적으로 언급된 것보다 더 많은 특징을 사용해야 한다는 의도를 반영하는 것으로 해석되어서는 안된다. 오히려, 다음의 청구 범위가 반영하는 바와 같이, 발명의 주제는 하나의 개시된 실시예의 모든 특징보다 적다. 따라서, 다음의 청구 범위는 상세한 설명에 통합되며, 각 청구 범위는 별도의 실시예로서 그 자체로 존재한다.

Claims (25)

  1. 메모리 시스템에 있어서,
    캐시 및 복수의 독립 메모리 어레이를 갖는 메모리 디바이스;
    제어기; 및
    제어기로부터 메모리 디바이스로 복수의 명령을 전달하도록 구성된 인터페이스를 포함하며, 상기 인터페이스는 핀을 포함하고, 상기 핀은,
    복수의 명령 중 제 1 명령이 수신될 때 활성화되도록 구성되고; 그리고,
    복수의 명령 모두가 메모리 디바이스에 의해 실행되면 비활성화되도록 구성되는, 메모리 시스템.
  2. 청구항 1에 있어서, 상기 복수의 명령 각각은 연관된 비결정론적 액세스 타이밍을 갖는, 메모리 시스템.
  3. 청구항 1 또는 청구항 2에 있어서, 상기 복수의 명령에서 명령의 양은 상기 메모리 디바이스와 관련된 최대 대기시간에 대응하는, 메모리 시스템.
  4. 청구항 1 또는 청구항 2에 있어서, 상기 메모리 디바이스 및 상기 제어기는 상기 제어기로부터 상기 메모리 디바이스로 상기 복수의 명령을 발행하는 순서를 저장하도록 구성된 레지스터를 각각 포함하는, 메모리 시스템.
  5. 제어기로부터 복수의 명령을 캐시 및 복수의 독립 메모리 어레이를 갖는 메모리 디바이스로 인터페이스에 의해, 전송하는 단계;
    상기 메모리 디바이스가 상기 복수의 명령 중 제 1 명령을 수신하면 상기 인터페이스의 핀에 의해 출력된 신호를 활성화하는 단계; 및
    상기 메모리 디바이스가 복수의 명령 모두를 실행하면 상기 인터페이스의 핀에 의해 출력되는 신호를 비활성화하는 단계.를 포함하는, 메모리 동작 방법.
  6. 청구항 5에 있어서, 상기 방법은 상기 인터페이스의 핀에 의해 출력된 신호를 비활성화할 때 상기 메모리 디바이스로부터 상기 제어기로 상기 복수의 명령과 관련된 데이터를 상기 인터페이스에 의해 출력하는 단계를 포함하는, 메모리 동작 방법.
  7. 청구항 6에 있어서, 상기 데이터가 상기 제어기로 출력되는 순서는 상기 제어기로부터 상기 메모리 디바이스로 상기 복수의 명령이 발행되는 순서에 대응하는, 메모리 동작 방법.
  8. 청구항 6에 있어서, 상기 방법은 상기 복수의 명령과 연관된 데이터를 상기 메모리 디바이스로부터 상기 제어기로 출력하는 동안 상기 제어기로부터 상기 메모리 디바이스로 추가의 복수의 명령을 상기 인터페이스에 의해 전송하는 단계를 포함하는, 메모리 동작 방법.
  9. 메모리 시스템에 있어서,
    캐시 및 복수의 독립 메모리 어레이를 갖는 메모리 디바이스;
    제어기; 및
    제어기로부터 메모리 디바이스로 복수의 명령을 전송하도록 구성된 인터페이스를 포함하고, 상기 인터페이스는 핀을 포함하며, 상기 핀은,
    복수의 명령 중 일 명령이 복수의 독립 메모리 어레이 중 하나에서 실행될 때 활성화되도록 구성되고, 그리고,
    복수의 명령 중 일 명령이 캐시에서 실행될 때 비활성화되도록 구성되는, 메모리 시스템.
  10. 청구항 9에 있어서, 상기 인터페이스는, 복수의 명령 중 일 명령이 상기 복수의 독립 메모리 어레이 중 하나에서 실행될 때, 일 명령의 실행의 예상 대기시간과 관련된 정보를 상기 제어기에 제공하도록 구성되는 버스를 포함하는, 메모리 시스템.
  11. 청구항 10에 있어서, 상기 제어기는 일 명령의 실행의 예상 대기시간과 관련된 정보에 기초하여 일 명령과 관련된 데이터를 획득하기 위해 상기 버스의 점유를 리스케줄링하도록 구성되는, 메모리 시스템.
  12. 청구항 9 또는 청구항 10에 있어서, 상기 핀은 상기 복수의 명령 중 일 명령이 상기 복수의 독립 메모리 어레이 중 하나에서 실행될 때, 일 명령의 실행의 예상 대기시간과 관련된 정보를 상기 제어기에 제공하도록 구성되는, 메모리 시스템.
  13. 청구항 9 또는 청구항 10에 있어서, 상기 핀은 일 명령의 실행 상태와 관련된 정보를 상기 제어기에 제공하도록 구성되는, 메모리 시스템.
  14. 제어기로부터의 복수의 명령을 캐시 및 복수의 독립 메모리 어레이를 갖는 메모리 디바이스로 인터페이스에 의해 전송하는 단계;
    복수의 명령 중 일 명령이 복수의 독립 메모리 어레이 중 하나에서 실행될 때 상기 인터페이스의 핀에 의해 출력되는 신호를 활성화하는 단계; 및
    복수의 명령 중 일 명령이 캐시에서 실행되면 상기 인터페이스의 핀에 의해 출력된 신호를 비활성화하는 단계를 포함하는, 메모리 동작 방법.
  15. 청구항 14에 있어서, 상기 방법은 상기 복수의 명령 중 감지 명령이 상기 복수의 독립 메모리 어레이 중 하나에서 실행될 때 상기 감지 명령의 실행의 예상 대기시간과 관련된 정보를 상기 인터페이스에 의해 상기 제어기에 제공하는 단계를 포함하는, 메모리 동작 방법.
  16. 청구항 15에 있어서, 상기 감지 명령의 실행의 예상 대기시간과 관련된 정보는 상기 감지 명령에 대해 복수의 독립 메모리 어레이 중 하나의 동일한 위치에서 실행될 새 감지 명령을 발행하기 전에 상기 제어기가 대기해야할 최소 클럭 사이클 수를 나타내는 정보를 포함하는, 메모리 동작 방법.
  17. 청구항 14 또는 청구항 15에 있어서, 상기 방법은 상기 인터페이스의 핀에 의해 출력된 신호가 활성화 또는 비활성화되는지에 기초하여 상기 인터페이스의 버스에 의해 출력된 데이터가 유효한지 여부를 상기 제어기에 의해 결정하는 단계를 포함하는, 메모리 동작 방법.
  18. 메모리 시스템으로서,
    캐시 및 복수의 독립 메모리 어레이를 갖는 메모리 디바이스;
    제어기; 및
    제어기로부터 메모리 디바이스로 복수의 명령을 전송하도록 구성된 인터페이스를 포함하되, 상기 인터페이스는 제 1 핀 및 제 2 핀을 포함하고,
    상기 제 1 핀은
    복수의 명령 중 일 명령이 복수의 독립 메모리 어레이 중 하나에서 실행될 때 활성화되도록 구성되고,
    복수의 명령 중 일 명령이 캐시에서 실행될 때 비활성화되도록 구성되며,
    상기 제 2 핀은 제 1 핀이 활성화되는 동안 제 1 핀에 의해 출력되는 신호와 관련된 정보를 스트로빙하도록 구성되는, 메모리 시스템.
  19. 청구항 18에 있어서, 상기 메모리 디바이스는 상기 복수의 명령이 실행될 순서로 저장되도록 구성된 명령 큐를 포함하는, 메모리 시스템.
  20. 청구항 19에 있어서, 상기 제 1 핀은 상기 명령 큐 내의 자유 엔트리의 수량과 관련된 정보를 상기 제어기에 제공하도록 구성되는, 메모리 시스템.
  21. 청구항 19에 있어서, 상기 메모리 디바이스는 상기 제 1 핀이 활성화될 때 상기 큐에 저장된 순서와 다르게 상기 복수의 명령을 실행하도록 구성되는, 메모리 시스템.
  22. 제어기로부터의 복수의 명령을 캐시 및 복수의 독립 메모리 어레이를 갖는 메모리 디바이스로 인터페이스에 의해 전송하는 단계;
    복수의 명령 중 일 명령이 복수의 독립 메모리 어레이 중 하나에서 실행될 때 상기 인터페이스의 제 1 핀에 의해 출력되는 신호를 활성화하는 단계;
    복수의 명령 중 일 명령이 캐시에서 실행될 때 상기 인터페이스의 제 1 핀에 의해 출력된 신호를 비활성화하는 단계; 및
    상기 인터페이스의 제 2 핀을 사용하여, 상기 제 1 핀이 활성화된 동안 인터페이스의 제 1 핀이 출력하는 신호와 관련된 정보를 스트로빙하는 단계를 포함하는, 메모리 동작 방법.
  23. 청구항 22에 있어서, 상기 인터페이스의 제 1 핀에 의해 출력되는 신호는 상기 인터페이스의 버스에 의해 출력되는 신호와 동기성인, 메모리 동작 방법.
  24. 청구항 22 또는 청구항 23에 있어서, 상기 방법은 상기 복수의 명령 중 감지 명령 또는 프로그램 명령이 상기 복수의 독립 메모리 어레이 중 하나에서 실행될 때, 상기 감지 명령 또는 프로그램 명령의 실행의 예상 대기시간과 관련된 정보를, 상기 인터페이스의 제 1 핀에 의해, 상기 제어기에 제공하는 단계를 포함하는, 메모리 동작 방법.
  25. 청구항 22 또는 청구항 23에 있어서, 상기 방법은 상기 인터페이스의 제 1 핀에 의해 출력된 신호가 활성화될 때 에 상기 복수의 명령 중 이전에 실행된 명령과 관련된 데이터를 출력하기 위해 상기 제어기에 의해 상기 메모리 디바이스에 명령을 발행하는 단계를 포함하는, 메모리 동작 방법.
KR1020207029632A 2018-03-19 2019-02-22 캐시 및 다중 독립 어레이를 갖는 메모리용 인터페이스 KR102448999B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/924,917 US10534731B2 (en) 2018-03-19 2018-03-19 Interface for memory having a cache and multiple independent arrays
US15/924,917 2018-03-19
PCT/US2019/019066 WO2019182717A1 (en) 2018-03-19 2019-02-22 Interface for memory having a cache and multiple independent arrays

Publications (2)

Publication Number Publication Date
KR20200123260A true KR20200123260A (ko) 2020-10-28
KR102448999B1 KR102448999B1 (ko) 2022-09-29

Family

ID=67905681

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207029632A KR102448999B1 (ko) 2018-03-19 2019-02-22 캐시 및 다중 독립 어레이를 갖는 메모리용 인터페이스

Country Status (6)

Country Link
US (2) US10534731B2 (ko)
EP (1) EP3769204A4 (ko)
JP (1) JP2021517692A (ko)
KR (1) KR102448999B1 (ko)
TW (1) TWI704568B (ko)
WO (1) WO2019182717A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11442634B2 (en) * 2018-04-12 2022-09-13 Micron Technology, Inc. Replay protected memory block command queue
KR20210081093A (ko) * 2019-12-23 2021-07-01 주식회사 실리콘웍스 메모리 컨트롤러, 및 이의 동작 방법
KR20220110295A (ko) 2019-12-26 2022-08-05 마이크론 테크놀로지, 인크. 적층 메모리 시스템을 위한 진리표 확장
WO2021133687A1 (en) * 2019-12-26 2021-07-01 Micron Technology, Inc. Techniques for non-deterministic operation of a stacked memory system
US11366618B2 (en) * 2020-03-02 2022-06-21 Silicon Motion, Inc. All flash array server and control method thereof
JP2023531484A (ja) * 2020-11-06 2023-07-24 長江存儲科技有限責任公司 擬似非同期マルチプレーン独立読み取り

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070027752A (ko) * 2007-01-29 2007-03-09 노키아 코포레이션 개선된 인터페이스
JP2013200678A (ja) * 2012-03-23 2013-10-03 Toshiba Corp メモリシステムおよびバンクインターリーブ方法
KR20140007333A (ko) * 2010-09-15 2014-01-17 퓨어 스토리지, 아이앤씨. 저장소 환경에서의 재구성 i/o 판독 동작들의 스케줄링
KR20160094764A (ko) * 2015-02-02 2016-08-10 삼성전자주식회사 스토리지 디바이스에서의 입출력 처리 방법 및 이를 적용하는 스토리지 디바이스 및 비휘발성 메모리 디바이스

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4656862B2 (ja) * 2004-05-28 2011-03-23 ルネサスエレクトロニクス株式会社 半導体装置
US7716411B2 (en) 2006-06-07 2010-05-11 Microsoft Corporation Hybrid memory device with single interface
US8051253B2 (en) 2006-09-28 2011-11-01 Virident Systems, Inc. Systems and apparatus with programmable memory control for heterogeneous main memory
JP5245349B2 (ja) * 2007-10-17 2013-07-24 日本電気株式会社 登録先ウェイの固定方法、プロセッサ、及び情報処理装置
US9251874B2 (en) 2010-12-21 2016-02-02 Intel Corporation Memory interface signal reduction
US9053066B2 (en) 2012-03-30 2015-06-09 Sandisk Technologies Inc. NAND flash memory interface
US9129071B2 (en) * 2012-10-24 2015-09-08 Texas Instruments Incorporated Coherence controller slot architecture allowing zero latency write commit
US9740485B2 (en) 2012-10-26 2017-08-22 Micron Technology, Inc. Apparatuses and methods for memory operations having variable latencies
US9754648B2 (en) 2012-10-26 2017-09-05 Micron Technology, Inc. Apparatuses and methods for memory operations having variable latencies
US9734097B2 (en) * 2013-03-15 2017-08-15 Micron Technology, Inc. Apparatuses and methods for variable latency memory operations
US9824004B2 (en) 2013-10-04 2017-11-21 Micron Technology, Inc. Methods and apparatuses for requesting ready status information from a memory
JP2015176309A (ja) * 2014-03-14 2015-10-05 株式会社東芝 半導体記憶装置
JP5732160B2 (ja) * 2014-03-27 2015-06-10 スパンション エルエルシー 不揮発性半導体記憶装置の制御方法
EP2927642A1 (en) 2014-04-02 2015-10-07 Volvo Car Corporation System and method for distribution of 3d sound in a vehicle
JP2015197859A (ja) * 2014-04-02 2015-11-09 株式会社東芝 メモリコントローラ、半導体記憶装置、およびメモリコントローラの制御方法
US10310764B2 (en) * 2014-11-04 2019-06-04 Hitachi, Ltd. Semiconductor memory device and storage apparatus comprising semiconductor memory device
US10592114B2 (en) * 2016-03-03 2020-03-17 Samsung Electronics Co., Ltd. Coordinated in-module RAS features for synchronous DDR compatible memory
US10310975B2 (en) * 2016-05-11 2019-06-04 Seagate Technology Llc Cache offload based on predictive power parameter
US10810144B2 (en) * 2016-06-08 2020-10-20 Samsung Electronics Co., Ltd. System and method for operating a DRR-compatible asynchronous memory module
JP2017224370A (ja) * 2016-06-15 2017-12-21 東芝メモリ株式会社 半導体記憶装置及びメモリシステム
US10684795B2 (en) * 2016-07-25 2020-06-16 Toshiba Memory Corporation Storage device and storage control method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070027752A (ko) * 2007-01-29 2007-03-09 노키아 코포레이션 개선된 인터페이스
KR20140007333A (ko) * 2010-09-15 2014-01-17 퓨어 스토리지, 아이앤씨. 저장소 환경에서의 재구성 i/o 판독 동작들의 스케줄링
JP2013200678A (ja) * 2012-03-23 2013-10-03 Toshiba Corp メモリシステムおよびバンクインターリーブ方法
KR20160094764A (ko) * 2015-02-02 2016-08-10 삼성전자주식회사 스토리지 디바이스에서의 입출력 처리 방법 및 이를 적용하는 스토리지 디바이스 및 비휘발성 메모리 디바이스

Also Published As

Publication number Publication date
EP3769204A1 (en) 2021-01-27
EP3769204A4 (en) 2021-12-29
CN111868677A (zh) 2020-10-30
WO2019182717A1 (en) 2019-09-26
US20200104268A1 (en) 2020-04-02
US20190286586A1 (en) 2019-09-19
KR102448999B1 (ko) 2022-09-29
JP2021517692A (ja) 2021-07-26
TWI704568B (zh) 2020-09-11
US11132311B2 (en) 2021-09-28
TW201939491A (zh) 2019-10-01
US10534731B2 (en) 2020-01-14

Similar Documents

Publication Publication Date Title
US11151027B2 (en) Methods and apparatuses for requesting ready status information from a memory
KR102448999B1 (ko) 캐시 및 다중 독립 어레이를 갖는 메모리용 인터페이스
US11740797B2 (en) Non-deterministic memory protocol
US10108372B2 (en) Methods and apparatuses for executing a plurality of queued tasks in a memory
US9978430B2 (en) Memory devices providing a refresh request and memory controllers responsive to a refresh request
US10534540B2 (en) Memory protocol
CN113196396B (zh) 用于对存储装置中的位进行排序的设备和方法
US20210200465A1 (en) Direct data transfer in memory and between devices of a memory module
US20210382662A1 (en) Addressing in memory with a read identification (rid) number
US11762582B2 (en) Background operations in memory
CN111868677B (zh) 用于具有高速缓冲存储器及多个独立阵列的存储器的接口
US20220214600A1 (en) Command bus in memory
US12001682B2 (en) PIM computing system and memory controller thereof
US11698870B2 (en) Memory module data buffer
US20230418474A1 (en) Pim computing system and memory controller thereof
US20230111224A1 (en) Data transfer in port switch memory

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant