KR100633828B1 - 프리페치 길이보다 짧은 버스트 길이를 갖는 메모리 시스템 - Google Patents

프리페치 길이보다 짧은 버스트 길이를 갖는 메모리 시스템 Download PDF

Info

Publication number
KR100633828B1
KR100633828B1 KR1020047015053A KR20047015053A KR100633828B1 KR 100633828 B1 KR100633828 B1 KR 100633828B1 KR 1020047015053 A KR1020047015053 A KR 1020047015053A KR 20047015053 A KR20047015053 A KR 20047015053A KR 100633828 B1 KR100633828 B1 KR 100633828B1
Authority
KR
South Korea
Prior art keywords
length
data
memory devices
prefetch
burst length
Prior art date
Application number
KR1020047015053A
Other languages
English (en)
Other versions
KR20040106303A (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 KR20040106303A publication Critical patent/KR20040106303A/ko
Application granted granted Critical
Publication of KR100633828B1 publication Critical patent/KR100633828B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

일부 실시예에 있어서, 본 발명은 메모리 제어기, 버스, 및 제1 및 제2 메모리 장치들을 포함하는 시스템을 포함한다. 메모리 제어기는 판독 및 기입 동작들을 요청하고 버스트 길이에 따라 동작한다. 제1 및 제2 메모리 장치들은 버스를 통해 메모리 제어기에 결합되고, 제1 및 제2 메모리 장치들 각각은 버스트 길이보다 큰 프리페치 길이를 갖지만, 버스트 길이에 따라 요청된 판독 및 기입 동작들을 수행한다. 그 외의 실시예들이 설명되고 청구된다.
메모리 시스템, 버스트 길이, 메모리 장치, 버스, 메모리 제어기

Description

프리페치 길이보다 짧은 버스트 길이를 갖는 메모리 시스템{MEMORY SYSTEM WITH BURST LENGTH SHORTER THAN PREFETCH LENGTH}
본 발명은 컴퓨터 메모리 시스템에 관한 것이며, 보다 구체적으로는 해당 메모리의 프리페치 길이(prefetch length)보다 짧은 버스트 길이(burst length)의 데이터 청크를 판독 또는 기입할 수 있는 메모리 제어기를 갖는 컴퓨터 메모리 시스템에 관한 것이다.
컴퓨터 시스템은 일반적으로 데이터가 기입되거나 판독되는 메모리 장치를 포함한다. 상대적으로 대량의 데이터를 저장하는데 통상적으로 사용되는 메모리 장치는 DRAM(dynamic random access memory)이다. DRAM의 예로는 SDRAM(synchronous DRAM) 및 DDR DRAM(double data rate SDRAM)이 있다. DDR-II DRAM(차세대 DDR DRAM)의 사양이 완성되고 있다. 그 외의 동기식 DRAM(synchronous DRAM)에는 램버스 RDRAM이 포함된다. SRAM(static random access memory)을 포함하는 DRAM 이외의 다양한 형태의 메모리들이 존재한다. 다른 형태의 메모리들도 개발되고 있다.
메모리 제어기는 DRAM에 기입 요청과 판독 요청을 발행한다. 메모리 제어기 및 DRAM은 기입 데이터 또는 판독 데이터를 전송하는 버스를 통해 결합되어 있다. 기입 요청에 응답하여 저장되는 데이터는 프로세서나 또다른 칩으로부터 나온다. 판독 요청에 응답하여 DRAM에 의해 제공되는 데이터는 프로세서나 또다른 칩에 의해 사용될 수 있다. 메모리 제어기는 프로세서와 물리적으로 떨어져 있거나 프로세서와 동일한 칩 상에 있을 수 있다.
버스트 길이란 기입 또는 판독 커맨드 및 대응하는 개시 어드레스에 응답하여 메모리 코어에 저장되거나 메모리 코어로부터 검색되는 데이터 청크(data chunk)의 수이다. 각 청크는 SDRAM의 경우 완전한 한 클럭 사이클, DDR 및 DDRII DRAM과 같은 DDR DRAM의 경우에는 반클럭 사이클(half clock cycle)과 관련되어 있다. 각 청크에는 많은 병렬 비트들이 있다. DRAM은 코어 프리페치 길이를 갖는데, 이는 단일한 기입 또는 판독 동작에 의해 코어로 기입되거나 코어로부터 검색되는 데이터의 클럭 사이클(SDRAM의 경우) 또는 반클럭 사이클(DDR DRAM의 경우)의 수이다. 프리페치(prefetch)라는 용어는 메모리 코어에 기입을 하는 것과 메모리 코어로부터 판독을 하는 것 모두에서 사용된다.
SDRAM과 DDR DRAM은 제어가능한 버스트 길이를 가지며 DDR-II DRAM은 제어가능한 버스트 길이를 가질 것이다. 그러나, 이러한 메모리들은 제어가능한 코어 프리페치 길이를 갖거나 가질 것이라고 기대되지 않는다. SDRAM은 1 클럭 사이클의 프리페치 길이를 갖고 1, 2, 4 클럭 사이클의 버스트 길이를 허용한다. 따라서, 버스트 길이가 1이면, 각 기입 또는 판독 커맨드에 대해 단 하나의 프리페치 동작만이 존재한다. 버스트 길이가 2이면, 각 기입 또는 판독 커맨드에 대해 2개의 프리페치 동작이 존재한다. 버스트 길이가 4이면, 각 기입 또는 판독 커맨드에 대해 4개의 프리페치 동작이 존재한다. DDR DRAM은 2 반클럭 사이클(2 half clock cycles)의 프리페치 길이를 갖고 2, 4, 8 반클럭 사이클의 버스트 길이를 허용한다. 따라서, 버스트 길이가 2이면, 각 기입 또는 판독 커맨드에 대해 단 하나의 프리페치 동작이 존재한다. 버스트 길이가 4이면, 각 기입 또는 판독 커맨드에 대해 2개의 프리페치 동작이 존재한다. 버스트 길이가 8이면, 각 기입 또는 판독 커맨드에 대해 4개의 프리페치 동작이 존재한다. DDR-II DRAM은 4 및 8 반클럭 사이클의 버스트 길이와 4 반클럭 사이클의 프리페치 길이를 갖는다. 따라서, 버스트 길이가 4이면, 각 기입 또는 판독 커맨드에 대해 단 하나의 프리페치 동작이 존재한다. 버스트 길이가 8이면, 각 기입 또는 판독 커맨드에 대해 2개의 프리페치 동작이 존재한다.
언젠가는 프리페치 길이가 8인 DRAM이 나올 것이다(이는 현재는 존재하지 않는, DDR-III DRAM이 될 것이다). 그렇다면 프리페치 길이가 8인 DRAM이 버스트 길이가 4인 메모리 제어기와 함께 사용될 때 문제가 발생할 것이다. 이하의 개시는 이 문제에 대한 해결책을 제시한다.
메모리 장치는 출력 드라이버 인에이블의 동적 제어를 통해 인터리브된 방식으로 사용되어 왔다. 하나의 메모리 대 다른 메모리의 출력 인에이블을 인터리브 방식으로 제어하는데 핀이 사용되고 있다. 메모리 장치는 판독 동작 동안 또는 데이터 마스킹시 3상 드라이버(tri-stated driver)를 갖는다.
본 발명은 이하의 상세한 설명 및 첨부된 본 발명의 실시예들의 도면으로부 터 보다 완벽히 이해될 것이나, 본 발명을 기술된 특정 실시예들로 한정해서는 안되며 이는 설명과 이해를 위한 것일 뿐이다.
도 1은 본 발명의 일부 실시예들에 따른, 프로세서, 메모리 제어기, 및 메모리를 포함하는 컴퓨터 시스템의 블럭도이다.
도 2는 본 발명의 일부 실시예들에 따른, 프로세서, 그 프로세서에 포함된 메모리 제어기, 및 메모리를 포함하는 컴퓨터 시스템의 블럭도이다.
도 3은 본 발명이 사용되지 않을 때의 클럭, 판독 커맨드, 및 DATA 신호를 도시하는 타이밍도이다.
도 4는 판독 동작과 관련된 본 발명의 일부 실시예들의 일부 특징들을 도시하는 타이밍도이다.
도 5는 본 발명의 일부 실시예들에 따른 메모리 제어기와 2개의 메모리 장치를 포함하는 시스템의 블럭도이다.
도 6은 판독 동작과 관련된 본 발명의 일부 실시예들의 일부 특징들을 도시하는 타이밍도이다.
도 7은 본 발명의 일부 실시예들에 따른 메모리 장치의 추가 상세를 도시한 블럭도이다.
도 8은 본 발명의 일부 실시예들에 따른 인터리브된 메모리 동작들 중 그룹으로서 동작될 수 있는 다수의 메모리 장치들의 블럭도이다.
도 9는 판독 동작과 관련된 본 발명의 일부 실시예들의 일부 특징들을 도시하는 타이밍도이다.
도 10은 기입 동작과 관련된 본 발명의 일부 실시예들의 일부 특징들을 도시하는 타이밍도이다.
도 11은 본 발명의 일부 실시예들에 따른, 메모리 제어기, 2개의 메모리 장치, 및 BIOS를 포함하는 시스템의 블럭도이다.
본 발명은 메모리 제어기가 해당 메모리의 프리페치 길이(prefetch length)보다 짧은 버스트 길이(burst length)의 데이터 청크를 판독 또는 기입할 수 있는 컴퓨터 시스템을 포함한다.
도 1은 메모리(14)를 포함하는 컴퓨터 시스템(10)을 도시한다. 메모리(14)는 단일 메모리 장치 또는 하나 이상의 메모리 모듈 상의 다수의 메모리 장치들을 나타낸다. 메모리 장치는 이상 기술한 것들 중 하나와 같은 DRAM 또는 일부 다른 종류의 메모리가 될 수 있다. 메모리 제어기(18)는 버스(16)를 통해 데이터를 메모리(14)에 제공하고 판독 요청에 응답하여 메모리(14)로부터 데이터를 수신한다. 커맨드 및/또는 어드레스가 버스(16) 외의 도체들이나 버스(16)를 통해 메모리(14)에 제공될 수 있다. 제어기(18)는 메모리(14)에 저장될 데이터를 프로세서(24)나 그 외의 칩으로부터 수신할 수 있다. 제어기(18)는 메모리(14)로부터 수신한 데이터를 프로세서(24)나 또다른 칩(들)에 제공할 수 있다. 제어기(18)는 흔히 메모리 제어기 허브 또는 칩세트의 노스 브리지(north bridge)라고 하는 허브(20)내에 있다. 버스(16)는 양방향(bi-directional) 버스 또는 단방향(unidirectional) 버스가 될 수 있다. 버스(16)는 많은 병렬 도체(parallel conductor)를 포함할 수 있 다. 버스(16)는 멀티드롭 버스(multidrop bus)로서, 하나 이상의 지점간 도체(point to point conductor)를 포함하거나, 일부 다른 종류의 버스가 될 수 있다. 신호는 차동 신호 또는 단일 종단(single ended) 신호가 될 수 있다. 하나의 프로세서만이 도시되었지만, 본 발명은 다중 프로세서 시스템에서도 이용될 수 있다.
도 2는 시스템(10)과 유사하나, 제어기(18)가 프로세서(32)에 포함되어 있는 컴퓨터 시스템(30)을 도시한다.
도 3은 메모리 제어기가 버스트 길이 4로 동작하고 메모리가 프리페치 길이 8을 가지는 경우, 본 발명이 없으면 어떤 일이 일어나는지를 도시하는 타이밍도이다. 판독 커맨드 Rd A가 데이터 A를 요청한다. 몇 클럭 사이클 뒤(정확한 수는 중요하지 않음), 8개의 데이터 청크(A0-A7)가 메모리로부터 프리페치된다. 데이터 A의 8개의 청크는 외부 버스로 구동되지만, 처음 4개의 청크(A0-A3)만이 요청 메모리 제어기에 의해 사용된다. 유사하게, 데이터 B의 8개의 청크(B0-B7) 중 처음 4개만이 요청 메모리 제어기에 의해 사용된다. 이는 메모리 제어기가 청크(A4-A7 및 B4-B7)를 무시하거나, 더 심하게는 메모리 제어기가 판독 요청이 이미 완료된 것으로 생각하나, 데이터는 여전히 버스 상에 있기 때문에 버스 상에서 경합(contention)을 유발할 수도 있다. 도 3의 접근법에서는 적어도 절반의 대역폭이 손실된다. 기입 커맨드의 경우, 메모리는 8개의 청크를 기대하지만 4개의 청크만을 수신하여 절반의 메모리가 효과적으로 사용되지 않을 것이고 버스에서 경합이 일어날 수 있다.
본 발명은 메모리 제어기가 메모리의 프리페치 길이보다 짧은 버스트 길이로 동작하도록 하는 기술을 포함한다. 판독 동작에 있어서, 이는 메모리 제어기가 수신하기를 기대하지 않는 프리페치된 청크들에 대해 메모리 장치 출력 드라이버를 디스에이블함으로써 달성될 수 있다. 예를 들어, 도 4의 타이밍도에는 판독 커맨드 Rd A 및 Rd B가 도시되어 있다. Rd A 커맨드 후, 소정 개수의 반클럭 사이클 뒤에, 메모리 장치는 청크(A0-A7)에 대한 데이터를 프리페치한다. 도 4의 "메모리 내부 DATA" 부분은 드라이버로 들어가는 청크를 도시한 것이다. 드라이버는 청크(A0-A3)가 외부 버스로 출력되도록 인에이블되나, 청크(A4-A7)가 출력될 동안은 디스에이블된다. 판독 요청 Rd B에 응답하여 청크(B0-B7)의 경우도 동일하다. 사실상, 판독 요청의 시간과 청크가 프리페치되는 시간 사이에는, 도 3, 4, 6, 9에 도시된 것보다 많은 클럭 사이클이 있을 수 있다는 점에 유의한다. 그러나, 도면 상의 공간적 제약때문에 판독 요청과 드라이버에 제공되는 청크 간의 간격을 더 크게 하지 않을 것이다.
도 4와 유사한 동작을 갖는 메모리 장치 각각의 출력을 인터리빙함으로써, 보다 큰 대역폭을 이용할 수 있다. 도 5는 이를 수행하기 위한 하나의 시스템을 도시하고 있으나, 본 발명은 도 5의 세부 사항들에 한정되지 않는다. 메모리 장치(0) 및 메모리 장치(1)는 메모리 (14)에 포함된다. 메모리 장치(0 및 1)는 다른 랭크로 존재할 수 있지만, 본 발명은 다수의 랭크를 이용하는 것에 한정되지 않는다. 메모리 장치(0 및 1)는 동일하거나 상이한 메모리 모듈 상에 있을 수 있다. 메모리 장치(0 및 1)는 동일한 칩 또는 상이한 칩 내에 존재할 수 있다. 메모리(14)는 장치(0 및 1)만을 포함하거나 추가의 메모리 장치들을 포함할 수 있다.
도 5의 시스템 동작은 도 6, 9, 10의 타이밍도를 참조하여 설명될 수 있다. 도 6에서, CLK는 클럭 신호이고, CMD는 제어기(18)에 의해서 메모리(14)에 제공되는 커맨드를 나타내며; "메모리(0) 내부 DATA"는 출력 드라이버(54)에 제공되는 데이터 청크이고 "메모리(1) 내부 DATA"는 출력 드라이버(56)에 제공되는 데이터 청크이며; "외부 버스(16) 상의 DATA"는 출력 드라이버(54 및 56)로부터의 데이터 출력이다. 도 6에서, 판독 커맨드 Rd A 및 Rd C는 메모리 장치(0)에 제공되고 판독 커맨드 Rd B 및 Rd D는 메모리 장치(1)에 제공된다. 종종 Rd A 커맨드가 수신된 후, 데이터 A가 메모리 장치(1)의 코어(72)에 의해 프리페치 길이 8로 프리페치되고 데이터 청크(A0-A7)로서 드라이버(54)에 제공된다. (언급한 바와 같이, 판독 커맨드와 데이터 청크 간의 CLK의 반 사이클 수는 도 6에 도시된 것보다 클 수 있다).
제어 로직(58)은 드라이버(54)를 인에이블하여 청크(A0-A3)를 출력하지만, A4-A7이 드라이버(54)에 제공되는 시간 동안은 드라이버(54)를 디스에이블한다. 따라서, 단지 청크(A0-A3)만이 버스(16)로 출력된다. 때때로 Rd B 커맨드가 수신된 후에, 데이터 B가 메모리 장치(1)의 코어(78)에 의해 프리페치 길이 8로 프리페치되고 데이터 청크(B0-B7)로서 드라이버(56)에 제공된다. 제어 로직(60)은 드라이버(56)를 인에이블하여 청크(B0-B3)를 출력하지만, B4-B7이 드라이버(56)에 제공되는 시간 동안은 드라이버(56)를 디스에이블한다. 따라서, 청크(B0-B3)만 버스(16)로 출력된다. 마찬가지로, 판독 요청 Rd C에 응답하여, 데이터 C는 코어(72)에 의해 프리페치 길이 8로 프리페치되고 데이터 청크(C0-C7)로서, 청크(C4-C7)가 아니라 청크(C0-C3)를 출력하도록 인에이블되는 드라이버(54)에 제공된다. 판독 요청 Rd D에 응답하여, 데이터 D는 코어(78)에 의해 버스트 길이 8로 프리페치되고 데이터 청크(D0-D7)로서, 청크(D4-D7)가 아니라 청크(D0-D3)를 출력하도록 인에이블되는 드라이버(56)에 제공된다. 도 6으로부터 알 수 있는 바와 같이, 청크(A0-A3, B0-B3, C0-C3, 및 D0-D3)만이 인터리브 방식으로 버스(16) 상에 출력되며, 이는 제어기(18)에 의해 기대되는 것이다.
일부 실시예들에서, 프리페치가 8인 경우에 A2와 같은 어드레스 비트가 사용되어 8개의 청크들 만큼의 데이터를 보유하는 메모리 코어의 상측 또는 하측 부분에 대해 청크들이 판독 또는 기입될지의 여부를 선택할 수 있다. 이러한 방식으로, 버스트 길이가 프리페치 길이보다 작더라도 전체 코어가 이용될 수 있다. 물론, 본 발명은 프리페치 길이 8 또는 버스트 길이 4 중 어느 하나를 사용하는 것에 한정되지 않는다. 또한, 메모리(14)는 프리페치 길이와 버스트 길이가 동일한 제어기와 함께 사용될 수 있다.
도 7은 본 발명의 일부 실시예들에서 사용될 수 있는 추가적인 상세들을 도시하지만, 본 발명은 이러한 상세들에 한정되지 않는다. 전달 회로(106)는 데이터의 적어도 일부를 코어(72)로부터 드라이버(54)로 전달한다. 일부 실시예들에서, 회로(106)는 래치(108) 및 다중화기(Mux; 110)를 포함하지만, 본 발명은 이에 한정되지 않는다. 코어(72)는 청크들에 대한 비트들을 병렬로 프리페치할 수 있다. 단지 예로서, X8 장치에서, 코어(72)는 래치(108)에 의해 수신되고 다중화기(110)에 의해 (8비트 폭이고 하나의 반클럭 사이클 기간인) 8개의 청크들 각각으로 다중 화되는 64개의 비트(에러 정정 코드(ECC)를 포함하여 72비트)를 프리페치할 수 있다. 청크(A0-A7)가 다중화기(110)에 의해 드라이버(54)에 제공되면, 청크(A0-A7)는 코어(72)에 의해 프리페치되었다고 할 수 있다. 도 7의 다른 컴포넌트들은 도 10과 관련하여 설명될 것이다. 물론, 본 발명은 도 7에 도시된 바와 같이 특정 데이터 폭을 프리페치하거나, 래치 또는 다중화하는 X8 장치들로 한정되지 않는다.
언급한 바와 같이, 장치(0 및 1)는 메모리(14) 내의 유일한 장치들이 아니다. 예를 들어, 도 8에 도시된 바와 같이, 랭크 0은 장치(01...0n)를 포함하고, 랭크 1은 장치(11...1n)를 포함한다. 일부 실시예들에서, 랭크 내의 각 장치는 판독 요청에 응답하여 데이터의 일부를 버스(16)로 제공하거나 또는 기입 요청에 응답하여 데이터의 일부를 버스에 저장하지만, 본 발명은 이러한 구성에 한정되지 않는다. 랭크 0는 메모리 모듈(0)에 도시되고 랭크 1은 메모리 모듈(1)에 도시되지만, 이것이 요구되지는 않는다. 랭크(0 및 1)는 동일한 모듈에 있을 수 있다. 추가의 랭크들 및 모듈들, 또는 추가의 모듈이지만 단지 2개의 랭크들, 또는 추가의 랭크들이지만 단지 2개의 모듈들이 존재할 수 있다.
일부 메모리에는, 2개의 메모리 장치들 사이에 턴어라운드(turn-around) 지연이 있다. 턴어라운드 지연은 하나의 메모리 장치가 그 출력 드라이버를 3상으로 하고 또 다른 장치가 그 출력들을 버스 상으로 구동하기 시작한 경우, 그 사이에 필요한 특정 시간량이다. 턴어라운드는 프로토콜 지정일 수 있다. 도 9는 도 6과 매우 유사한 타이밍도이지만, 도 9에서는 턴어라운드 시간이 관련된다. 도 9에는, 드라이버(54)가 청크(A3)의 구동을 중지시키는 시간과 드라이버(56)가 청크(B0)의 구동을 개시시키는 시간 사이에 지연(예를 들어, 2개의 반클럭 사이클들)이 있다. 또한, 드라이버(56)가 청크(B3)의 구동을 중지시키는 시간과 드라이버(54)가 청크(C0)의 구동을 개시시키는 시간 사이, 드라이버(54)가 청크(C3)의 구동을 중지시키는 시간과 드라이버(56)가 청크(D0)의 구동을 개시시키는 시간 사이에 지연이 있다. 이러한 지연들은 타이밍도의 "외부 버스(16) 라인 상의 DATA" 에 반영된다.
도 9에서는, 드라이버(54)에 의해 출력되지 않는 데이터 A 및 데이터 C의 청크들이 각각 A3, A3, A3, 및 A3과, C3, C3, C3, 및 C3으로 도시되어 있다. 마찬가지로, 드라이버(56)에 의해 출력되지 않는 데이터 B 및 데이터 D의 청크들은 각각 B3, B3, B3, 및 B3과, D3, D3, D3, 및 D3으로 도시되어 있다. 이것은 드라이버(56)에 의해 구동되지 않는 청크들이 청크(A4-A7 및 C4-C7)이고 드라이버(56)에 의해 구동되지 않는 청크들이 청크(B4-B7 및 D4-D7)인 도 6과 대조적이다. 반복적으로 동일한 청크를 드라이버(54 및 56)에 제공하는 것의 이점은, 링잉(ringing) 및 전력 소비를 감소시킬 수 있다는 것이다. 그러나, 도 9에서, 드라이버(54 및 56)에 제공된 청크들은 그들이 디스에이블되는 경우에 도 6에서와 동일할 수 있으며, 도 6에서, 드라이버(54 및 56)에 제공된 청크들은 그들이 디스에이블되는 경우에 도 9에서와 동일할 수 있다. 즉, 턴어라운드 시간이 관련되든 안되든, 동일한 청크(예를 들어, A3, A3, A3, A3, A3)가 반복적으로 제공될 수도 있거나 또는 그렇지 않을 수도 있다. 선택적으로, 전력을 더욱 감소시키기 위해, 코어는 출력되지 않은 청크들에 대해 아무것도 제공되지 않을 수 있다. 청크(A0-A3, B0-B3, C0-C3, 및 D0-D3) 사이에서 버스(16) 상에 갭들이 존재하더라도, 상이한 메모리들로부터의 판독 데이터 청크들이 버스(16) 상에서 인터리브된다고 할 수 있다.
도 10은 도 5의 실시예들에 의해 수행되는 기입 커맨드들을 도시한다. 제어기(18)는 기입 커맨드 Wr A 및 Wr C를 메모리 장치(0)에 제공하여 데이터 A 및 데이터 C를 기입(저장)하도록 요청한다. 제어기(18)는 기입 커맨드 Wr B 및 Wr D를 메모리 장치(1)에 제공하여 데이터 B 및 데이터 D를 기입하도록 요청한다. 데이터 A, B, C, D는 각각 하나의 반 사이클 길이의 4개의 청크(A0-A3, B0-B3, C0-C3, D0-D3)를 포함한다. 버스(16) 상의 기입 데이터는 상이한 장치들을 교호하도록 의도된다는 점에서 인터리브된다. 데이터 A 및 C는 버스(16) 상에서 메모리 장치(0)에 제공되고 데이터 B 및 C는 버스(16) 상에서 메모리 장치(1)에 제공된다. 또한 기타 메모리 장치들에 사용되는 이러한 청크들과 병렬로 부가의 비트들이 존재할 수 있다.(예를 들어, 도 8 참조). 때때로 Wr A 커맨드가 발행된 후에, 청크(A0-A3)가 메모리 장치(0)의 수신기(64)에 의해 수신된다. 코어(72)는 8개의 청크들 만큼의 데이터를 코어로 기입(저장) 하려고 한다. 청크(A0-A3)에 대한 데이터는 코어(72) 내에 기입되지만, (버스(16)로부터 수신되지 않는) 마지막 4개의 청크들에 대해 기입될 데이터는 마스킹되기 때문에, 이러한 청크들에는 아무것도 저장되지 않는다. (언급한 바와 같이, 어드레스 비트, 예를 들어, 비트 A2는 8개의 청크들이 프리페치되는 부분의 하측 또는 상측 절반으로 4개의 청크(A0-A3)가 기입되는지를 제어할 수 있다.
때때로 Wr B 커맨드가 발행된 후, 청크(B0-B3)가 메모리 장치(1)의 수신기(66)에 의해 수신된다. 청크(B0-B3)에 대한 데이터는 코어(78) 내에 기입되지만, (버스(16)로부터 수신되지 않는) 마지막 4개의 청크들에 대해 기입될 데이터는 마스킹되기 때문에, 이러한 청크들에 대해서는 아무것도 저장되지 않는다. 마찬가지의 방식으로, 청크(C0-C3 및 D0-D3)는 각각 코어(72 및 78)로 기입된다. 일부 실시예들에서는, 데이터 A 및 데이터 B, 데이터 B 및 데이터 C, 데이터 C 및 데이터 D 사이에서 버스(16) 상의 갭들이 존재할 수 있다.
도 7은 본 발명의 일부 실시예들에서 사용될 수 있는 추가적인 상세들을 도시하지만, 본 발명은 이러한 상세들에 한정되지 않는다. 전달 회로(120)는 데이터의 적어도 일부를 수신기(64)로부터 코어(72)로 전달한다. 일부 실시예들에서는, 회로(120)는, 수신기(64)에 의해 수신된 DATA 신호(예를 들어, A0-A3)를 취하여 그들을 래치(124)에 의해 수신되는 보다 넓은 신호로 변환하는 역다중화기(122)를 포함한다. 래치(124)의 출력은 드라이버(128)에 의해 코어(72) 내의 판독, 기입, 및 마스킹 회로(116)로 구동된다. 드라이버(128)로부터 래치(108)로의 경로는 외부의 판독, 기입, 및 마스킹 회로(116)를 합병할 필요가 없다는 것에 유의한다. 오히려, 이들은 완전히 분리된 경로들일 수 있다. 역다중화기(130)는 데이터 마스킹(DM 또는 DQM) 패드를 통해 수신되는 제어기(18)로부터의 직렬 데이터 마스킹 신호일 수 있거나, 또는 일부 다른 메커니즘을 통해 수신될 수 있는 마스킹 신호를 수신한다. 역다중화기(130)는 이러한 직렬 데이터 마스킹 신호를 논리적 ORing 회로(132)에 제공되는 병렬 데이터 마스킹 신호로 변환할 수 있다. 논리적 ORing 회로(132)는 메모리의 하부 또는 상부가 어드레스 비트(예를 들어, 프리페치가 8인 경우의 A2)의 상태에 따라 마스킹되어야 하는지 여부를 변화시킨다. 데이터 마스킹 은 외부 데이터 마스킹 패드 및 관련 마스킹 신호들을 통해서 보다는, 제어 로직(58)의 제어 하에서 자동적으로 수행될 수 있다. 이러한 실시예들에서는, DM 패드를 통한 데이터 마스크 신호들은 실제로 수신된 청크들의 바이트들중 어떤 것이 마스킹될 필요가 있는지를 나타낼 수 있다.
제어 로직(58)은 하나 이상의 다음과 같은 것: 드라이버(54)가 인에이블되는지 또는 디스에이블되는지의 여부, 래치(108)가 동일한 청크를 반복적으로 제공하는지의 여부(예를 들어, A0-A8 또는 A0, A1, A2, A3, A3, A3, A3, 및 A3), ORing 회로(132)가 마스킹 신호들을 제공하는지의 여부, 코어(72)가 판독 또는 단지 그들의 일부에 응답하여 모든 청크들을 제공하는지의 여부를 제어할 수 있다.
도 11은 본 발명의 일부 실시예들에서 사용될 수 있는 추가의 상세들을 도시하지만, 본 발명은 이러한 상세들이 한정되지 않는다. 일부 실시예들에서, 제어 로직(59)은 레지스터(156)를 포함하고, 제어 로직(60)은 레지스터(158)를 포함한다. 레지스터(156, 158)는, 다른 것들 중에서도, 메모리 장치(0 및 1)가 버스트 길이와 프리페치 길이들이 동일한 모드에 있는지, 또는 그들이 상이한 모드에 있는지를 나타낸다. 레지스터(156 및 158)의 각각에서 단지 하나의 비트가 이러한 목적으로 사용된다면, 그 비트의 한가지 상태는 제어기(18)가 버스트 길이 4를 가진다고 나타낼 수 있고, 다른 상태는 버스트 길이 8, 또는 적용가능하다면 다른 값들을 나타낼 수 있다. 일부 실시예들에서, 제어기(18) 내에는 메모리 장치(0 및 1)의 프리페치 길이를 나타내는 레지스터(146)가 있을 수 있지만, 이것이 필수적이지는 않다. 레지스터(146)는 제어기(18)가 장치(0 및 1) 모두와 사용될 수 있는지를 나타내기 위해 사용될 수 있거나, 또는 레지스터(146)는 제어기(18)의 내부 동작을 변경하여 메모리 장치(0 및 1)와 효과적으로 인터페이스할 수 있도록 사용될 수 있다. 일부 실시예들에서, 제어기(18)는 단지 하나의 메모리 프리페치 길이로만 작동하고, 다른 실시예들에서, 제어기(18)는 상이한 메모리 프리페치 길이들로 작동하도록 구성될 수 있다.
레지스터(146, 156, 158)는 버스트 또는 프리페치 길이와 동일한 수를 가져서는 안된다는 것에 유의한다. 오히려, 레지스터들에서의 값은 프리페치 및 버스트 길이들에 상응하여 제어기(18) 또는 메모리 장치(0, 1)가 작동하도록 함으로써, 버스트 또는 프리페치 길이를 간접적으로 나타낼 수 있다. 레지스터(146, 156, 158)의 설정은 BIOS(140)(기본 입/출력 시스템)와 도체(들)를 통해 실시될 수 있다. 도체(142, 144)는 또한 다른 용도로 사용될 수도 있다. BIOS(140)는 예컨대, 부트 업(boot up)시, 제어기(18)의 버스트 길이 및 메모리 장치(0, 1)의 프리페치 길이를 검출할 수 있다. BIOS(140)는 하드웨어 및 펌웨어 혹은 소프트웨어를 나타낸다. 레지스터(156, 158)는 제어기(18)를 통해 제어될 수 있다. 시스템은 레지스터(156, 158)를 포함하고 레지스터(146)는 포함하지 않거나, 레지스터(146)는 포함하고 레지스터(156, 158)는 포함하지 않거나, 레지스터(146, 156, 158)를 포함할 수 있다. 제어기(18)의 버스트 길이는 레지스터(156, 158) 이외의 소정의 메커니즘을 통해 표시될 수 있다. 버스트 길이가 반드시 가변적이라야 할 필요는 없지만, 가변적이면 시스템은 응용이 보다 자유롭다.
일부 실시예에서, 판독 및 기입은 서로 다른 버스트 길이로 실행될 수 있다. 예를 들어, 프리페치 길이가 8일 때, 기입은 버스트 길이 8로 실행되고, 판독은 버스트 길이 4(또는 그 반대)로 실행될 수 있다. 이러한 경우에, 기입된 데이터의 절반은 자동적으로 마스크되지 않을 것이다. 다른 예로서, 판독은 버스트 길이 4로 실행되고 기입은 버스트 길이 8로 실행되고, 프리페치 길이는 16일 수 있다. 이들은 레지스터(156, 158)에 표시될 수 있다.
제어기(18)의 동작은 메모리 장치(0, 1)의 프리페치 길이 및 버스트 길이에 따라 달라질 수 있다. 도 6, 9, 및 10에 도시된 바와 같이, 버스트 길이가 4이고 프리페치 길이가 8인 경우에, 길이 4와 길이 8의 차이때문에, 동일한 메모리 장치에 대해 데이터 사이에 실질적인 갭이 존재한다. 메모리 장치 동작들을 인터리브하는 것에 의해 버스는 비교적 채워져 있다. 버스트가 4이고 프리페치가 4인 경우에, 제어기(18)는 동일한 메모리 장치에 대해 연속적인(back to back) 커맨드를 만들 수 있다. 그러나, 버스트가 4이고 프리페치가 4인 상황에서 조차 연속적인 커맨드들에 대한 갭들이 존재할 수 있다. 판독 및 기입 커맨드에 관한 디바이스 선택 신호의 상태, 및 판독 및 기입 커맨드의 간격(spacing) 및 순서(order)는 버스트 및 프리페치 길이에 따라 바뀔 수 있다.
어드레스 및/또는 제어 신호들은 버스(16)를 통해 혹은 도체(152)를 통해 제공될 수 있다. 판독, 기입, 및 마스킹 신호들은 제어 신호들의 예이다. 어드레스 및 제어 신호들은 어드레스 및 제어 회로(148)에서 생성되고, 드라이버(150)를 통해 제공될 수 있다. 디바이스 선택 신호들은 제어 신호들로서 간주될 수도 있고, 도체(152)로 운반될 수 있다. 디바이스 선택은 선택적이고, 다른 수단들을 통해 달성될 수 있다. 디바이스의 전체 랭크는 단일 디바이스 선택 신호에 따라 선택될 수 있다. 이러한 방식에서, 제어기(18)는 상술한 디바이스의 인터리빙을 제어할 수 있다. 디바이스의 인터리빙을 제어하는데 다른 방식이 사용될 수도 있다.
도 4, 6, 9, 및 10에서, 메모리 장치 내부의 청크들과 버스(16) 상의 청크들은 서로 정돈되는 것으로 도시된다. 사실상, 그들은 하나의 반클럭 사이클 혹은 그 이상마다 정렬을 벗어날 수 있다.
도면들은 간략하게 표시하기 위한 것이다. 도시된 컴포넌트들, 예컨대, 도시된 도체들 사이에는 추가적인 구조(예컨대, 래치들, 버퍼들, 제어 회로, 및 그 외의 회로)가 존재할 수 있다.
일부 실시예에서, 프로세서, 메모리 제어기, 및 메모리는 서로 스택될 수 있다. 예를 들어, 메모리(14)의 칩(들)은, 프로세서(24) 상에 스택될 수 있는, 제어기(18) 상에 스택될 수 있다. 스택된 시스템의 경우에, 허브(20)는 사용될 수 없다. 또한, 소정의 스택된 실시예에서, 메모리 제어기는 프로세서 내에 존재한다.
실시예는 본 발명의 구현 또는 일례이다. 명세서에 있어서, "실시예", "일 실시예", "일부 실시예", 또는 "그 외의 실시예"라는 용어는 실시예들과 관련하여 설명된 특별한 특성, 구조, 또는 특징이 적어도 일부의 실시예에 포함된다는 것으로, 반드시 본 발명의 모든 실시예에 적용되어야 하는 것은 아니다. 여러 가지로 표현된, "실시예", "일 실시예" 또는 "일부 실시예"가 모두 반드시 동일한 실시예를 가리키는 것은 아니다.
명세서에 있어서, 컴포넌트, 특성, 구조, 또는 특징이 "포함될 수 있다", " 포함되어도 좋다", 혹은 "포함되었을 수 있다"로 진술하였지만, 특정한 컴포넌트, 특성, 구조, 또는 특징이 포함되도록 요구되지는 않는다. 명세서 또는 청구 범위에서 "하나의" 구성 요소를 나타내지만, 단지 하나의 구성 요소가 존재한다는 의미는 아니다. 명세서 또는 청구 범위에서 "추가적인" 구성요소라 칭하지만, 추가적인 구성요소가 하나 이상 존재하는 것을 제외하는 것은 아니다.
본 발명은 여기 리스트된 특정한 상세한 설명에 한정되지 않는다. 실제로, 이러한 개시에 대한 이익을 갖는 당업자라면, 앞선 설명 및 도면으로부터 그 외의 많은 다양한 것들이 본 발명의 범주 내에서 만들어질 수 있다는 것을 이해할 것이다. 따라서, 그에 대한 임의의 보정을 포함하고, 본 발명의 범주를 정의하는 청구 범위가 기술될 것이다.

Claims (44)

  1. 시스템에 있어서,
    판독 및 기입 동작들을 요청하고 버스트 길이(burst length)로 동작하는 메모리 제어기;
    버스; 및
    상기 버스를 통해 상기 메모리 제어기에 결합된 제1 및 제2 메모리 장치들
    을 포함하고,
    상기 제1 및 제2 메모리 장치들 각각은, 상기 버스트 길이보다 큰 프리페치 길이(prefetch length)를 갖지만, 상기 요청된 판독 및 기입 동작들은 상기 버스트 길이에 따라 수행하는 시스템.
  2. 제1항에 있어서,
    상기 제1 및 제2 메모리 장치들 각각은,
    상기 프리페치 길이와 동일한 다수의 청크(chunk)에 대한 상기 판독 동작들을 위한 데이터를 프리페치하는 코어;
    상기 판독 동작들을 위해 상기 프리페치된 데이터의 상기 청크들 중 일부를 출력하기 위해 상기 버스에 결합된 출력 드라이버들;
    상기 코어로부터 상기 출력 드라이버들로 상기 프리페치된 데이터 중 적어도 일부를 제공하는 전달 회로; 및
    상기 버스트 길이와 동일한 상기 프리페치된 데이터의 상기 다수의 청크를 출력하도록 상기 출력 드라이브들을 인에이블하고, 그렇지 않으면 상기 출력 드라이버들을 디스에이블하는 제어 로직 회로를 포함하는 시스템.
  3. 제2항에 있어서,
    상기 전달 회로는 상기 판독 동작들을 위해 상기 코어로부터 프리페치된 모든 데이터를 전달하는 시스템.
  4. 제2항에 있어서,
    상기 전달 회로는 상기 판독 동작들을 위해 상기 코어로부터 프리페치된 상기 데이터 중 일부만을 전달하는 시스템.
  5. 제2항에 있어서,
    상기 제어 로직 회로의 인에이블은 상기 제1 및 제2 메모리 장치들의 모드에 따라 선택적이고, 하나의 모드에서, 상기 제1 및 제2 메모리 장치들은 버스트 길이가 프리페치 길이보다 작은 것처럼 동작하고, 다른 모드에서, 상기 제1 및 제2 메모리 장치들은 상기 버스트 길이가 상기 프리페치 길이와 동일한 것처럼 동작하는 시스템.
  6. 제5항에 있어서,
    BIOS를 더 포함하고, 상기 모드는 상기 제어 로직 회로 내에 포함된 레지스터에 의해 제어되고, 상기 레지스터는 상기 BIOS에 의해 제어되는 시스템.
  7. 제1항에 있어서,
    상기 제1 및 제2 메모리 장치들은 각각,
    상기 기입 동작들을 위한 데이터의 청크들을 수신하기 위해 상기 버스에 결합된 수신기들;
    상기 코어에 기입되어질 상기 수신기들로부터의 상기 수신된 청크들을 제공하기 위한 전달 회로 - 상기 코어는 상기 수신된 청크들에 인접하여 데이터가 기입되는 것을 마스크하는 마스킹 회로를 포함함 -
    를 포함하는 시스템.
  8. 제7항에 있어서,
    상기 데이터의 마스킹은 선택적이며, 상기 제1 및 제2 메모리 장치들은 상기 데이터의 마스킹이 상기 제1 및 제2 메모리 장치들의 모드에 따라 발생하는지의 여부를 제어하는 제어 로직 회로를 포함하며, 한 모드에서는 상기 제1 및 제2 메모리 장치들은 버스트 길이가 프리페치 길이보다 작은 것처럼 동작하고, 다른 모드에서는 상기 제1 및 제2 메모리 장치들은 상기 버스트 길이가 상기 프리페치 길이와 동일한 것처럼 동작하는 시스템.
  9. 제8항에 있어서,
    BIOS를 더 포함하며,
    상기 모드는 상기 제어 로직 회로에 포함된 레지스터에 의해 제어되며, 상기 레지스터는 상기 BIOS에 의해 제어되는 시스템.
  10. 제1항에 있어서,
    상기 버스트 길이는 프리페치 길이의 2분의 1이며, 상기 제1 및 제2 메모리 장치들은 인터리브된 방식으로 판독 데이터를 제공하는 시스템.
  11. 제1항에 있어서,
    상기 제1 및 제2 메모리 장치들은 서로 다른 모드들로 동작할 수 있고, 상기 모드들 중 하나에서, 상기 제1 및 제2 메모리 장치들은 상기 메모리 제어기가 상기 프리페치 길이보다 작은 버스트 길이로 동작하는 것처럼 동작하고, 상기 모드들 중 다른 모드에서는 상기 제1 및 제2 메모리 장치들은 상기 메모리 제어기가 프리페치 길이와 동일한 버스트 길이로 동작하는 것처럼 동작하는 시스템.
  12. 제11항에 있어서,
    상기 제1 및 제2 메모리 장치들이 어느 모드에 있는지를 제어하기 위한 BIOS를 더 포함하는 시스템.
  13. 제1항에 있어서,
    상기 제1 메모리 장치에 의해 출력된 판독 데이터의 최종 청크와 상기 제2 메모리 장치에 의해 출력된 판독 데이터의 제1 청크 사이에는 갭이 있는 시스템.
  14. 제13항에 있어서,
    상기 갭은 턴어라운드 시간(turn-around time) 때문에 사용되는 시스템.
  15. 제1항에 있어서,
    추가의 메모리 장치들을 더 포함하며, 상기 제1 및 제2 메모리 장치들은 상이한 모듈들 내의 상이한 랭크들에 있는 시스템.
  16. 메모리 장치에 있어서,
    프리페치 길이와 동일한 다수의 청크에 대한 판독 동작들을 위해 데이터를 프리페치하는 코어;
    상기 판독 동작들을 위해 상기 프리페치된 데이터의 상기 청크들 중 일부를 출력하는 출력 드라이버들;
    상기 코어로부터 상기 출력 드라이버들로 상기 프리페치된 데이터의 적어도 일부를 제공하는 제1 전달 회로; 및
    버스트 길이와 동일한 상기 프리페치된 데이터의 다수의 청크들을 출력하기 위해 상기 출력 드라이버들을 인에이블하고, 상기 버스트 길이가 상기 프리페치된 길이보다 작을 때 상기 프리페치된 데이터의 부가적인 청크들을 위해 상기 출력 드라이버들을 디스에이블(disable)하는 제어 로직 회로
    를 포함하는 메모리 장치.
  17. 제16항에 있어서,
    상기 전달 회로는 상기 판독 동작들을 위해 상기 코어로부터 프리페치된 모든 데이터를 전달하는 메모리 장치.
  18. 제16항에 있어서,
    상기 전달 회로는 상기 판독 동작들을 위해 상기 코어로부터 프리페치된 상기 데이터의 일부만을 전달하는 메모리 장치.
  19. 제16항에 있어서,
    상기 제어 로직 회로를 인에이블하는 것은 상기 메모리 장치의 상기 모드에 따라 선택적이며, 한 모드에서는 상기 메모리 장치는 버스트 길이가 프리페치 길이보다 작은 것처럼 동작하고, 다른 모드에서는 상기 메모리 장치는 상기 버스트 길이가 상기 프리페치 길이와 동일한 것처럼 동작하는 메모리 장치.
  20. 제19항에 있어서,
    상기 모드는 상기 제어 로직 회로에 포함된 레지스터에 의해 제어되는 메모리 장치.
  21. 제16항에 있어서,
    상기 기입 동작들을 위한 데이터의 청크들을 수신하기 위해 버스에 결합된 수신기들; 및
    상기 코어에 기입될, 상기 수신기들로부터의 상기 수신된 청크들을 제공하는 제2 전달 회로 - 상기 코어는 상기 수신된 청크들에 인접하여 데이터가 기입되는 것을 마스크하는 마스킹 회로를 포함함 -
    를 더 포함하는 메모리 장치.
  22. 제21항에 있어서,
    상기 데이터의 마스킹은 선택적이며, 상기 제1 및 제2 메모리 장치들은, 상기 데이터의 상기 마스킹이 상기 메모리 장치의 모드에 따라 발생하는지 여부를 제어하는 제어 로직 회로를 포함하고, 한 모드에서는 상기 메모리 장치는 버스트 길이가 프리페치 길이보다 작은 것처럼 동작하고, 다른 모드에서는 상기 메모리 장치는 상기 버스트 길이가 상기 프리페치 길이와 동일한 것처럼 동작하는 메모리 장치.
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 판독 및 기입 동작들을 요청하고, 판독 동작들은 제1 버스트 길이로 동작하고 기입 동작들은 제2 버스트 길이로 동작하는 메모리 제어기; 및
    상기 메모리 제어기에 결합된 제1 및 제2 메모리 장치들 - 상기 제1 및 제2 메모리 장치들은 각각 프리페치 길이를 가지며, 상기 요청된 판독 동작들을 상기 제1 버스트 길이로 수행하고 상기 요청된 기입 동작들을 상기 제2 버스트 길이로 수행하며, 상기 제1 또는 제2 버스트 길이들 중 하나는 상기 프리페치 길이보다 작고 상기 제1 또는 제2 버스트 길이들 중 다른 하나는 상기 프리페치 길이와 동일하거나 작고, 상기 제1 및 제2 버스트 길이들은 동일하지 않음 -
    을 포함하는 시스템.
  33. 제32항에 있어서,
    상기 제1 버스트 길이는 4이고, 상기 제2 버스트 길이는 8이고, 상기 프리페치 길이는 8인 시스템.
  34. 제32항에 있어서,
    상기 제1 버스트 길이는 4이고, 상기 제2 버스트 길이는 8이고, 상기 프리페치 길이는 16인 시스템.
  35. 제32항에 있어서,
    상기 메모리 제어기와 상기 제1 및 제2 메모리 장치들을 연결하는 버스;
    상기 제1 및 제2 메모리 장치들은 각각,
    상기 프리페치 길이와 동일한 다수의 청크에 대해 상기 판독 동작들을 위한 데이터를 프리페치하는 코어;
    상기 버스에 결합되어 있으며, 상기 판독 동작들을 위해 상기 프리페치된 데이터의 상기 청크들의 일부를 출력하는 출력 드라이버들;
    상기 코어로부터 상기 출력 드라이버들로 상기 데이터의 적어도 일부를 제공하는 전달 회로; 및
    상기 제1 버스트 길이와 동일한 상기 데이터의 다수의 청크들을 출력하기 위해 상기 출력 드라이버들을 인에이블하고, 그렇지 않으면 상기 출력 드라이버들을 디스에이블하는 제어 로직 회로
    를 포함하는 시스템.
  36. 제35항에 있어서,
    상기 제어 로직 회로를 인에이블하는 것은 상기 제1 및 제2 메모리 장치들의 상기 모드에 따라 선택적이며, 한 모드에서는 상기 제1 및 제2 메모리 장치들은 상기 제1 버스트 길이가 프리페치 길이보다 작은 것처럼 동작하고, 다른 모드에서는 상기 제1 및 제2 메모리 장치들은 상기 제1 버스트 길이가 상기 프리페치 길이와 동일한 것처럼 동작하는 시스템.
  37. 제35항에 있어서,
    BIOS를 더 포함하며,
    상기 모드는 상기 제어 로직 회로에 포함된 레지스터에 의해 제어되며, 상기 레지스터는 상기 BIOS에 의해 제어되는 시스템.
  38. 제32항에 있어서,
    상기 제1 및 제2 메모리 장치들은 각각,
    상기 기입 동작들을 위한 데이터의 청크들을 수신하기 위해 상기 버스에 결합된 수신기들; 및
    상기 코어에 기입되어질 상기 수신기들로부터 상기 수신된 청크들을 제공하기 위한 전달 회로 - 상기 코어는 상기 수신된 청크들에 인접하여 데이터가 기입되는 것을 마스크하는 마스킹 회로를 포함함 -
    시스템.
  39. 제38항에 있어서,
    상기 데이터의 마스킹은 선택적이며, 상기 제1 및 제2 메모리 장치들은 상기 데이터의 마스킹이 상기 제1 및 제2 메모리 장치들의 모드에 따라 발생하는지의 여부를 제어하는 제어 로직 회로를 포함하며, 한 모드에서는 상기 제1 및 제2 메모리 장치들은 제1 버스트 길이가 프리페치 길이보다 작은 것처럼 동작하고, 다른 모드에서는 상기 제1 및 제2 메모리 장치들은 상기 제1 버스트 길이가 상기 프리페치 길이와 동일한 것처럼 동작하는 시스템.
  40. 제32항에 있어서,
    BIOS를 더 포함하며,
    상기 모드는 상기 제어 로직 회로에 포함된 레지스터에 의해 제어되며, 상기 레지스터는 상기 BIOS에 의해 제어되는 시스템.
  41. 제32항에 있어서,
    상기 제1 버스트 길이는 프리페치 길이의 2분의 1이며, 상기 제1 및 제2 메모리 장치들은 인터리브된 방식으로 판독 데이터를 제공하는 시스템.
  42. 제32항에 있어서,
    상기 제1 및 제2 메모리 장치들은 상이한 모드들에 있을 수 있고, 상기 모드들 중 하나에서, 상기 제1 및 제2 메모리 장치들은 상기 메모리 제어기가 상기 프리페치 길이보다 작은 제1 버스트 길이로 동작하는 것처럼 동작하고, 상기 모드들 중 다른 모드에서는 상기 제1 및 제2 메모리 장치들은 상기 메모리 제어기가 프리페치 길이와 동일한 제1 버스트 길이로 동작하는 것처럼 동작하는 시스템.
  43. 제42항에 있어서,
    상기 제1 및 제2 메모리 장치들이 어느 모드에 있는지를 제어하기 위한 BIOS 를 더 포함하는 시스템.
  44. 제32항에 있어서,
    추가의 메모리 장치들을 더 포함하며, 상기 제1 및 제2 메모리 장치들은 상이한 모듈들 내의 상이한 랭크들에 있는 시스템.
KR1020047015053A 2002-03-22 2003-03-11 프리페치 길이보다 짧은 버스트 길이를 갖는 메모리 시스템 KR100633828B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/104,270 2002-03-22
US10/104,270 US6795899B2 (en) 2002-03-22 2002-03-22 Memory system with burst length shorter than prefetch length
PCT/US2003/007513 WO2003083662A2 (en) 2002-03-22 2003-03-11 Memory system with burst length shorter than prefetch length

Publications (2)

Publication Number Publication Date
KR20040106303A KR20040106303A (ko) 2004-12-17
KR100633828B1 true KR100633828B1 (ko) 2006-10-13

Family

ID=28040556

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047015053A KR100633828B1 (ko) 2002-03-22 2003-03-11 프리페치 길이보다 짧은 버스트 길이를 갖는 메모리 시스템

Country Status (10)

Country Link
US (1) US6795899B2 (ko)
EP (1) EP1488323B1 (ko)
KR (1) KR100633828B1 (ko)
CN (1) CN100386753C (ko)
AT (1) ATE500554T1 (ko)
AU (1) AU2003213840A1 (ko)
DE (1) DE60336212D1 (ko)
HK (1) HK1068181A1 (ko)
TW (1) TWI246648B (ko)
WO (1) WO2003083662A2 (ko)

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5796673A (en) 1994-10-06 1998-08-18 Mosaid Technologies Incorporated Delay locked loop implementation in a synchronous dynamic random access memory
JP2001035153A (ja) * 1999-07-23 2001-02-09 Fujitsu Ltd 半導体記憶装置
US6766385B2 (en) * 2002-01-07 2004-07-20 Intel Corporation Device and method for maximizing performance on a memory interface with a variable number of channels
KR100468719B1 (ko) * 2002-01-11 2005-01-29 삼성전자주식회사 N 비트 프리페치 방식과 2n 버스트 길이를 지원할 수있는 반도체 메모리 장치
US7133972B2 (en) 2002-06-07 2006-11-07 Micron Technology, Inc. Memory hub with internal cache and/or memory access prediction
US7117316B2 (en) 2002-08-05 2006-10-03 Micron Technology, Inc. Memory hub and access method having internal row caching
US7159066B2 (en) * 2002-08-27 2007-01-02 Intel Corporation Precharge suggestion
US6888777B2 (en) * 2002-08-27 2005-05-03 Intel Corporation Address decode
US6820181B2 (en) 2002-08-29 2004-11-16 Micron Technology, Inc. Method and system for controlling memory accesses to memory modules having a memory hub architecture
US7836252B2 (en) 2002-08-29 2010-11-16 Micron Technology, Inc. System and method for optimizing interconnections of memory devices in a multichip module
US7120765B2 (en) * 2002-10-30 2006-10-10 Intel Corporation Memory transaction ordering
US7469316B2 (en) * 2003-02-10 2008-12-23 Intel Corporation Buffered writes and memory page control
US7245145B2 (en) 2003-06-11 2007-07-17 Micron Technology, Inc. Memory module and method having improved signal routing topology
US7120727B2 (en) 2003-06-19 2006-10-10 Micron Technology, Inc. Reconfigurable memory module and method
US7260685B2 (en) 2003-06-20 2007-08-21 Micron Technology, Inc. Memory hub and access method having internal prefetch buffers
US7389364B2 (en) 2003-07-22 2008-06-17 Micron Technology, Inc. Apparatus and method for direct memory access in a hub-based memory system
US7210059B2 (en) 2003-08-19 2007-04-24 Micron Technology, Inc. System and method for on-board diagnostics of memory modules
US7133991B2 (en) * 2003-08-20 2006-11-07 Micron Technology, Inc. Method and system for capturing and bypassing memory transactions in a hub-based memory system
US7136958B2 (en) 2003-08-28 2006-11-14 Micron Technology, Inc. Multiple processor system and method including multiple memory hub modules
US7310752B2 (en) 2003-09-12 2007-12-18 Micron Technology, Inc. System and method for on-board timing margin testing of memory modules
US7194593B2 (en) 2003-09-18 2007-03-20 Micron Technology, Inc. Memory hub with integrated non-volatile memory
US7076617B2 (en) * 2003-09-30 2006-07-11 Intel Corporation Adaptive page management
US7120743B2 (en) 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
US7330992B2 (en) 2003-12-29 2008-02-12 Micron Technology, Inc. System and method for read synchronization of memory modules
US20050172091A1 (en) * 2004-01-29 2005-08-04 Rotithor Hemant G. Method and an apparatus for interleaving read data return in a packetized interconnect to memory
US7188219B2 (en) 2004-01-30 2007-03-06 Micron Technology, Inc. Buffer control system and method for a memory system having outstanding read and write request buffers
US7788451B2 (en) 2004-02-05 2010-08-31 Micron Technology, Inc. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US7366864B2 (en) 2004-03-08 2008-04-29 Micron Technology, Inc. Memory hub architecture having programmable lane widths
JP2005258719A (ja) * 2004-03-10 2005-09-22 Matsushita Electric Ind Co Ltd データ処理システム及びスレーブデバイス
US7257683B2 (en) 2004-03-24 2007-08-14 Micron Technology, Inc. Memory arbitration system and method having an arbitration packet protocol
US7120723B2 (en) 2004-03-25 2006-10-10 Micron Technology, Inc. System and method for memory hub-based expansion bus
US6980042B2 (en) 2004-04-05 2005-12-27 Micron Technology, Inc. Delay line synchronizer apparatus and method
US7590797B2 (en) 2004-04-08 2009-09-15 Micron Technology, Inc. System and method for optimizing interconnections of components in a multichip memory module
US7363419B2 (en) 2004-05-28 2008-04-22 Micron Technology, Inc. Method and system for terminating write commands in a hub-based memory system
US7310748B2 (en) 2004-06-04 2007-12-18 Micron Technology, Inc. Memory hub tester interface and method for use thereof
US7519788B2 (en) 2004-06-04 2009-04-14 Micron Technology, Inc. System and method for an asynchronous data buffer having buffer write and read pointers
US7392331B2 (en) 2004-08-31 2008-06-24 Micron Technology, Inc. System and method for transmitting data packets in a computer system having a memory hub architecture
US7272710B2 (en) * 2004-09-30 2007-09-18 Dell Products L.P. Configuration aware pre-fetch switch setting by BIOS based on the number of CPUs and cache size
US8041881B2 (en) 2006-07-31 2011-10-18 Google Inc. Memory device with emulated characteristics
US8397013B1 (en) 2006-10-05 2013-03-12 Google Inc. Hybrid memory module
US8077535B2 (en) 2006-07-31 2011-12-13 Google Inc. Memory refresh apparatus and method
US8130560B1 (en) 2006-11-13 2012-03-06 Google Inc. Multi-rank partial width memory modules
US8335894B1 (en) 2008-07-25 2012-12-18 Google Inc. Configurable memory system with interface circuit
US20080028136A1 (en) 2006-07-31 2008-01-31 Schakel Keith R Method and apparatus for refresh management of memory modules
US8111566B1 (en) 2007-11-16 2012-02-07 Google, Inc. Optimal channel design for memory devices for providing a high-speed memory interface
US7386656B2 (en) 2006-07-31 2008-06-10 Metaram, Inc. Interface circuit system and method for performing power management operations in conjunction with only a portion of a memory circuit
US7392338B2 (en) 2006-07-31 2008-06-24 Metaram, Inc. Interface circuit system and method for autonomously performing power management operations in conjunction with a plurality of memory circuits
US7590796B2 (en) * 2006-07-31 2009-09-15 Metaram, Inc. System and method for power management in memory systems
US8327104B2 (en) 2006-07-31 2012-12-04 Google Inc. Adjusting the timing of signals associated with a memory system
US8796830B1 (en) 2006-09-01 2014-08-05 Google Inc. Stackable low-profile lead frame package
US8060774B2 (en) 2005-06-24 2011-11-15 Google Inc. Memory systems and memory modules
US8081474B1 (en) 2007-12-18 2011-12-20 Google Inc. Embossed heat spreader
US9542352B2 (en) 2006-02-09 2017-01-10 Google Inc. System and method for reducing command scheduling constraints of memory circuits
US9171585B2 (en) 2005-06-24 2015-10-27 Google Inc. Configurable memory circuit system and method
US20080082763A1 (en) 2006-10-02 2008-04-03 Metaram, Inc. Apparatus and method for power management of memory circuits by a system or component thereof
US8089795B2 (en) 2006-02-09 2012-01-03 Google Inc. Memory module with memory stack and interface with enhanced capabilities
US8359187B2 (en) 2005-06-24 2013-01-22 Google Inc. Simulating a different number of memory circuit devices
US8386722B1 (en) 2008-06-23 2013-02-26 Google Inc. Stacked DIMM memory interface
US8438328B2 (en) 2008-02-21 2013-05-07 Google Inc. Emulation of abstracted DIMMs using abstracted DRAMs
US8244971B2 (en) 2006-07-31 2012-08-14 Google Inc. Memory circuit system and method
US8090897B2 (en) 2006-07-31 2012-01-03 Google Inc. System and method for simulating an aspect of a memory circuit
US9507739B2 (en) 2005-06-24 2016-11-29 Google Inc. Configurable memory circuit system and method
US8055833B2 (en) 2006-10-05 2011-11-08 Google Inc. System and method for increasing capacity, performance, and flexibility of flash storage
US10013371B2 (en) 2005-06-24 2018-07-03 Google Llc Configurable memory circuit system and method
DE112006002300B4 (de) 2005-09-02 2013-12-19 Google, Inc. Vorrichtung zum Stapeln von DRAMs
US20070057695A1 (en) * 2005-09-15 2007-03-15 Hermann Ruckerbauer Semiconductor memory chip with re-drive unit for electrical signals
US7573776B2 (en) * 2005-09-29 2009-08-11 Hynix Semiconductor, Inc. Semiconductor memory device having data-compress test mode
US7447848B2 (en) * 2006-01-04 2008-11-04 Barry Wagner Memory device row and/or column access efficiency
US9632929B2 (en) 2006-02-09 2017-04-25 Google Inc. Translating an address associated with a command communicated between a system and memory circuits
US7724589B2 (en) 2006-07-31 2010-05-25 Google Inc. System and method for delaying a signal communicated from a system to at least one of a plurality of memory circuits
US7779174B2 (en) * 2006-11-03 2010-08-17 Samsung Electronics Co., Ltd. Method and apparatus for dynamically changing burst length using direct memory access control
US8032711B2 (en) 2006-12-22 2011-10-04 Intel Corporation Prefetching from dynamic random access memory to a static random access memory
JP2008299476A (ja) 2007-05-30 2008-12-11 Fujitsu Microelectronics Ltd 半導体集積回路
US8209479B2 (en) 2007-07-18 2012-06-26 Google Inc. Memory circuit system and method
US8080874B1 (en) 2007-09-14 2011-12-20 Google Inc. Providing additional space between an integrated circuit and a circuit board for positioning a component therebetween
WO2010144624A1 (en) 2009-06-09 2010-12-16 Google Inc. Programming of dimm termination resistance values
US8085801B2 (en) * 2009-08-08 2011-12-27 Hewlett-Packard Development Company, L.P. Resource arbitration
KR101796116B1 (ko) 2010-10-20 2017-11-10 삼성전자 주식회사 반도체 장치, 이를 포함하는 메모리 모듈, 메모리 시스템 및 그 동작방법
JP5598337B2 (ja) * 2011-01-12 2014-10-01 ソニー株式会社 メモリアクセス制御回路、プリフェッチ回路、メモリ装置および情報処理システム
US10503435B2 (en) 2016-12-01 2019-12-10 Qualcomm Incorporated Providing extended dynamic random access memory (DRAM) burst lengths in processor-based systems
US11050569B2 (en) * 2019-08-14 2021-06-29 Macronix International Co., Ltd. Security memory scheme

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5623608A (en) * 1994-11-14 1997-04-22 International Business Machines Corporation Method and apparatus for adaptive circular predictive buffer management
JP3756231B2 (ja) 1995-12-19 2006-03-15 株式会社ルネサステクノロジ 同期型半導体記憶装置
US6049842A (en) 1997-05-01 2000-04-11 International Business Machines Corporation Efficient data transfer mechanism for input/output devices
US6012106A (en) 1997-11-03 2000-01-04 Digital Equipment Corporation Prefetch management for DMA read transactions depending upon past history of actual transfer lengths
US6233656B1 (en) * 1997-12-22 2001-05-15 Lsi Logic Corporation Bandwidth optimization cache
US6272594B1 (en) 1998-07-31 2001-08-07 Hewlett-Packard Company Method and apparatus for determining interleaving schemes in a computer system that supports multiple interleaving schemes
US6304962B1 (en) 1999-06-02 2001-10-16 International Business Machines Corporation Method and apparatus for prefetching superblocks in a computer processing system
US6542982B2 (en) * 2000-02-24 2003-04-01 Hitachi, Ltd. Data processer and data processing system
US6151236A (en) * 2000-02-29 2000-11-21 Enhanced Memory Systems, Inc. Enhanced bus turnaround integrated circuit dynamic random access memory device

Also Published As

Publication number Publication date
US20030182513A1 (en) 2003-09-25
HK1068181A1 (en) 2005-04-22
EP1488323A2 (en) 2004-12-22
TW200401189A (en) 2004-01-16
DE60336212D1 (de) 2011-04-14
WO2003083662A2 (en) 2003-10-09
AU2003213840A8 (en) 2003-10-13
KR20040106303A (ko) 2004-12-17
US6795899B2 (en) 2004-09-21
WO2003083662A3 (en) 2003-12-18
ATE500554T1 (de) 2011-03-15
EP1488323B1 (en) 2011-03-02
TWI246648B (en) 2006-01-01
AU2003213840A1 (en) 2003-10-13
CN100386753C (zh) 2008-05-07
CN1656463A (zh) 2005-08-17

Similar Documents

Publication Publication Date Title
KR100633828B1 (ko) 프리페치 길이보다 짧은 버스트 길이를 갖는 메모리 시스템
US7907469B2 (en) Multi-port memory device for buffering between hosts and non-volatile memory devices
US9223650B2 (en) Solid state disk controller apparatus
JP4560646B2 (ja) ハブベースのメモリシステムにおけるダイレクトメモリアクセス用の装置および方法
US7779215B2 (en) Method and related apparatus for accessing memory
US5822251A (en) Expandable flash-memory mass-storage using shared buddy lines and intermediate flash-bus between device-specific buffers and flash-intelligent DMA controllers
US6851016B2 (en) System latency levelization for read data
US9977731B2 (en) Bridging device having a configurable virtual page size
US7694099B2 (en) Memory controller having an interface for providing a connection to a plurality of memory devices
KR100295046B1 (ko) 개선된싱크로너스디램과로직이하나의칩에병합된반도체장치
KR100679370B1 (ko) 메모리 소자에서의 워드 순서지정 방법
US20070033336A1 (en) Shared interface semiconductor memories
US20080049541A1 (en) Semiconductor memory device
KR100637947B1 (ko) 데이터의 순차적 니블 버스트 오더링메모리 장치 및 그 방법
CN110633229A (zh) 用于高带宽存储器通道的dimm
US7840744B2 (en) Rank select operation between an XIO interface and a double data rate interface
EP1488322A2 (en) Mapping data masks in hardware by controller programming
CN117099075A (zh) 针对长突发长度的存储器数据传送的双倍取得
JP7199493B2 (ja) 非順次的ページ連続リード
US20220188022A1 (en) Memory system and electronic system including the same

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
FPAY Annual fee payment

Payment date: 20120919

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131001

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140930

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20151001

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160929

Year of fee payment: 11