KR101005114B1 - 모드 레지스터에서의 버스트 길이 설정 변화 없이 상이한버스트―길이 액세스들을 지원하는 dram - Google Patents

모드 레지스터에서의 버스트 길이 설정 변화 없이 상이한버스트―길이 액세스들을 지원하는 dram Download PDF

Info

Publication number
KR101005114B1
KR101005114B1 KR1020057000475A KR20057000475A KR101005114B1 KR 101005114 B1 KR101005114 B1 KR 101005114B1 KR 1020057000475 A KR1020057000475 A KR 1020057000475A KR 20057000475 A KR20057000475 A KR 20057000475A KR 101005114 B1 KR101005114 B1 KR 101005114B1
Authority
KR
South Korea
Prior art keywords
burst length
burst
command
memory device
memory
Prior art date
Application number
KR1020057000475A
Other languages
English (en)
Other versions
KR20050025960A (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 KR20050025960A publication Critical patent/KR20050025960A/ko
Application granted granted Critical
Publication of KR101005114B1 publication Critical patent/KR101005114B1/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
    • 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
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

메모리 디바이스(150)는 메모리 디바이스에 대한 기존의 버스트 길이 설정에 의하여 표시되는 버스트 길이와 다른 버스트 길이들을 명시하는 하나 이상의 명령 엔코딩들에 응답하도록 구성될 수 있다. 예를 들어, 메모리 디바이스(150)는 메모리 어레이(152) 및 기존의 버스트 길이를 표시하는 값을 저장하도록 구성된 모드 레지스터(154)를 포함할 수 있다. 상기 메모리 어레이(152)는 제 1 명령 엔코딩의 수신에 응답하여 제 1 버스트 길이를 가지는 제 1 버스트 액세스를 수행하고, 제 2 명령 엔코딩의 수신에 응답하여 상기 기존 버스트 길이와 다른 제 2 버스트 길이를 가지는 제 2 버스트 액세스를 수행하도록 구성될 수 있다. 메모리 제어기(100)는 타겟 메모리 디바이스(150)에 대한 기존 버스트 길이 설정에 의하여 표시되는 상기 버스트 길이와 다른 버스트 길이들을 명시하는 하나 이상의 명령 엔코딩들을 발생하도록 구성될 수 있다.

Description

모드 레지스터에서의 버스트 길이 설정 변화 없이 상이한 버스트―길이 액세스들을 지원하는 DRAM{DRAM SUPPORTING DIFFERENT BURST-LENGTH ACCESSES WITHOUT CHANGING THE BURST LENGTH SETTING IN THE MODE REGISTER}
본 발명은 컴퓨터 시스템에 관한 것으로, 보다 구체적으로 DRAM(Dynamic Random Access Memory)에서 사용되는 버스트 모드(burst mode)에 관한 것이다.
DRAM(Dynamic Random Access Memory) 디바이스들은 종종 모드 레지스터를 포함한다. 상기 DRAM 디바이스들의 모드 레지스터에 저장된 값은 상기 DRAM 디바이스의 버스트 길이를 제어한다. 전형적으로, 상기 모드 레지스터 값은 초기화 동안 특정한 버스트 길이를 식별하기 위하여 초기화된다. 메모리 제어기는 상기 버스트 길이 설정을 변경하기 위하여 상기 레지스터에 저장된 값을 갱신할 수 있다. 그러나, 상기 버스트 길이 설정을 변경하는 것은 시간 소모적인 절차이다. 예를 들어, 상기 모드 레지스터를 프로그램하기 위하여, 메모리 제어기는 모든 DRAM 액세스가 완료될 때까지 기다리고, 그 후 적당한 op-코드를 특정한 핀(예를 들어, 어드레스 및 Ba0 핀)에 위치시키는 동안, 특정한 명령 신호들(예를 들어, /CS(Chip Select), /RAS(Row Address Strobe), /CAS(Column Address Strobe), 및 /WE(Write Enable))을 활성화함으로써 적재 모드 레지스터 명령을 발행할 수 있다. 상기 적재 모드 레 지스터 명령을 발행한 후에, 상기 메모리 제어기는 신규 DRAM 액세스들을 초기화하기 전에 특정 수의 사이클을 기다려야만 한다. 따라서, 이러한 방식으로 상기 버스트 길이를 변화시키는 것은 진행중인 액세스에 바람직하지 않은 성능상 불이익을 부과할 수 있다.
메모리 제어기는 상이한 버스트 길이들을 가지는 액세스 요청들을 수신할 수 있다. 예를 들어, AGP(Advanced Graphics Port) 트랜잭션들은 32 바이트 블럭들을 포함할 수 있고, 프로세서 트랜잭션들은 64 바이트 블럭들을 포함할 수 있다. 임의의 DRAM 디바이스에서, 32 바이트 블럭 액세스들이 4 버스트에 만족될 수 있고, 64 바이트 블럭들은 8 버스트들에 만족될 수 있다. 상기 DRAM 버스트 길이가 상기 모드 레지스터에 저장된 값으로 고정되기 때문에, 대역폭이 낭비되거나(버스트 길이가 8로 설정되고 32 바이트 블럭 트랜잭션들이 수행된다면) 또는 상기 메모리 제어기는 특정한 길이를 가지는 트랜잭션들에 대한 명령들을 재발행하여야(버스트 길이가 4로 설정되고 64 바이트 블럭 트랜잭션들이 수행되는 경우) 할 것이다. 그러나, 특정한 버스트 길이의 트랜잭션들을 처리하기 위하여 상기 버스트 모드 레지스터에서 버스트 길이를 변경시키는 것이 더 비효율적일 수 있다. 따라서, 상기 모드 레지스터를 갱신할 필요 없이, 액세스당(per-access) 기반으로 상기 버스트 길이를 동적으로 변화시킬 수 있는 것이 바람직하다.
기존에, 메모리 디바이스가 기입 액세스 동안 특정한 데이터를 마스크하도록 허용하여 상기 버스트 길이 설정보다 적은 버스트 길이 데이터가 실제로 상기 메모리 디바이스에 기입되도록 하는 데이터 마스킹 기술이 존재한다. 그러나, 이러한 데이터 마스킹 기술들은 상이한 버스트 길이들의 판독 액세스들을 지원하지 않을 뿐만 아니라, 상기 모드 레지스터에 명시된 것보다 큰 버스트 길이들을 가지는 액세스들을 지원하지 않는다. 또한, 이러한 데이터 마스킹 기술들은 종종 상기 메모리 디바이스에서 추가적인 핀들을 사용함으로써 어떤 데이터가 마스크되는 지를 종종 명시하고, 이는 임의의 상황에서는 바람직하지 않을 것이다.
메모리 디바이스의 다양한 실시예들이 상기 메모리 디바이스에 대한 기존 버스트 길이 설정에 의하여 표시되는 버스트 길이와 상이한 버스트 길이들을 명시하는 하나 이상의 명령 엔코딩에 응답하여 구현될 수 있다. 일 실시예에서, 메모리 디바이스는 메모리 어레이 및 기존 버스트 길이를 표시하는 값을 저장하도록 구성된 모드 레지스터를 포함할 수 있다. 상기 메모리 어레이는 제 1 명령 엔코딩의 수신에 응답하여 제 1 버스트 길이를 가지는 제 1 버스트 액세스를 수행하고, 제 1 명령 엔코딩의 수신에 응답하여 제 2 버스트 길이를 가지는 제 2 버스트 액세스를 수행하도록 구성될 수 있다. 상기 제 2 버스트 길이는 기존의 버스트 길이와 같지 않다.
메모리 제어기의 다양한 실시예들이 타겟 메모리 디바이스에 대한 기존의 버스트 길이 설정에 의하여 표시된 버스트 길이와 상이한 버스트 길이들을 명시하는 하나 이상의 명령 엔코딩을 발생하도록 구현될 수 있다. 예를 들어, 일 실시예에서, 메모리 제어기는 메모리 액세스 요청 및 명령 엔코더에 응답하여 어드레스 신호들을 발생하도록 구성된 어드레스 신호 발생기를 포함할 수 있다. 메모리 액세스 요청에 응답하여, 상기 명령 액세스 요청은 메모리 액세스 요청에 의하여 요청되는 버스트 액세스가 제 1 버스트 길이를 가지는 경우, 제 1 명령 엔코딩을 발생하도록 구성될 수 있다. 상기 메모리 액세스 요청에 의하여 요청되는 상기 버스트 액세스가 제 2 버스트 길이를 가지는 경우, 상기 명령 엔코더는 제 2 명령 엔코딩을 발생하도록 구성될 수 있다. 상기 명령 엔코더는 상기 메모리 액세스 요청에 의하여 타겟된 메모리 디바이스에 대한 버스트 길이 설정이 제 1 값을 가지는 경우 상기 제 1 명령 엔코딩 및 제 2 명령 엔코딩 모두를 발생하도록 구성될 수 있어서, 상기 명령 엔코딩 중 적어도 하나는 상기 메모리 디바이스의 기존 버스트 길이 설정으로 표시되는 것이 아닌 다른 버스트 길이를 명시한다.
시스템은 메모리 제어기 및 메모리 디바이스를 포함할 수 있다. 상기 메모리 제어기는 제 1 버스트 길이를 가지는 제 1 메모리 액세스 요청의 수신에 응답하여 제 1 명령 엔코딩을 발생하고, 제 2 버스트 길이를 가지는 제 2 메모리 액세스 요청의 수신에 응답하여 제 2 명령 엔코딩을 발생하도록 구성될 수 있다. 상기 메모리 디바이스는 상기 제 1 명령 엔코딩의 수신에 응답하여 상기 제 1 버스트 길이를 가지는 제 1 버스트 액세스를 수행하고, 상기 제 2 명령 엔코딩의 수신에 응답하여 상기 제 2 버스트 길이를 가지는 제 2 버스트 액세스를 수행하도록 구성될 수 있다. 상기 제 2 버스트 길이는 상기 메모리 디바이스에 대한 상기 버스트 길이에 의하여 표시되는 기존 버스트 길이와 상이하다.
방법의 일 실시예는 메모리 디바이스가 버스트 길이를 가지는 버스트 액세스를 수행하도록 하기 위한 요청을 수신하는 단계를 포함할 수 있다. 상기 버스트 길 이가 상기 메모리 디바이스의 기존 버스트 길이 설정에 의하여 표시되는 제 1 버스트 길이인 경우, 제 1 명령 엔코딩이 상기 메모리 디바이스에 제공될 수 있다. 상기 버스트 길이가 상기 버스트 길이 설정에 의하여 표시되는 제 1 버스트 길이와 같지 않은 제 2 버스트 길이인 경우, 제 2 명령 엔코딩이 상기 메모리 디바이스에 제공될 수 있다. 상기 메모리 디바이스는 상기 제 1 명령 엔코딩에 응답하여 상기 제 1 버스트 길이를 가지는 상기 버스트 액세스를 수행하고, 상기 제 2 명령 엔코딩에 응답하여 상기 제 2 버스트 길이를 가지는 상기 버스트 액세스를 수행한다.
임의의 실시예들에서, 메모리 디바이스는 메모리 어레이 및 기존 버스트 길이를 표시하는 값을 저장하도록 구성된 모드 레지스터를 포함할 수 있다. 상기 메모리 어레이는 버스트 길이를 식별하는 엔코드된 명령을 수신하도록 구성될 수 있다. 상기 엔코드된 명령의 수신에 응답하여, 상기 메모리 어레이는 상기 엔코드된 명령에 의하여 식별된 상기 버스트 길이를 가지는 버스트 액세스를 수행하도록 구성된다. 상기 엔코드된 명령에 의하여 식별된 상기 버스트 길이는 기존 버스트 길이와 상이하다.
하기의 상세한 설명이 하기의 도면을 참고로 고려되는 경우, 본 발명이 보다 잘 이해될 수 있다.
도 1은 메모리 시스템의 일 실시예를 예시한다.
도 2A 내지 도 2C는 메모리 시스템의 일 실시예의 동작을 예시하는 타이밍도를 도시한다.
도 3은 메모리 시스템을 동작시키는 방법의 일 실시예의 흐름도이다.
도 4 내지 도 5는 도 1에 도시된 것과 유사한 메모리 시스템의 실시예를 포함하는 컴퓨터 시스템의 실시예들의 블럭도이다.
본 발명은 비록 다양한 수정과 대안적인 형태들이 가능하지만, 본 명세서에서는 발명의 특정한 실시예를 예로써 도면에 도시하였으며, 이에 대해 자세히 설명될 것이다. 그러나 도면 및 이에 대한 상세한 설명은 본 발명을 개시된 특정 예로만 제한하도록 의도된 것은 아니며, 오히려 첨부된 청구항에 의해 정의되는 것처럼 본 발명의 정신 및 범위 내에 드는 모든 변형, 균등물 및 대안들을 포괄하도록 의도된 것이다.
도 1은 메모리 제어기(100) 및 메모리 디바이스(150)를 포함하는 메모리 시스템(50)의 일 실시예를 도시한다. 메모리 제어기(100)는 메모리 디바이스(50)에게 모드 레지스터(154)에 명시된 상기 버스트 길이들과 다른 버스트 길이들을 가지는 액세스들을 수행하도록 명령하는 하나 이상의 상이한 명령 엔코딩들을 발생하도록 구성된다. 메모리 디바이스(150)는 상기 모드 레지스터(154)에 명시된 상기 버스트 길이에 상관없이, 상기 명령 엔코딩들에 명시된 상기 버스트 길이들을 가지는 액세스들을 수행함으로써 상기 상이한 명령 엔코딩들에 응답하도록 구성된다.
메모리 디바이스(150)는 DDR DRAM(Double Data Rate DRAM), SDRAM(Synchronous DRAM), VDRAM(Video DRAM), RDRAM(Rambus DRAM), FCRAM(Fast Cycle RAM)등과 같은 DRAM(Dynamic Random Access Memory)일 수 있다. 메모리 디바 이스(150)는 다중 메모리 모듈들(예를 들어, SIMMs 또는 DIMMs)을 포함할 수 있다. 메모리 디바이스(150)는 데이터 값들을 저장하는 메모리 어레이(152)에 많은 메모리 요소들을 포함할 수 있다. 각 메모리 요소는 데이터의 하나 이상의 비트들을 저장할 수 있다. 판독 및 기입 액세스들이 상기 메모리 어레이(152)에 저장된 데이터 값들 상에서 수행된다.
메모리 제어기(100)가 시스템 버스를 거쳐서 디바이스(예를 들어, CPU 또는 그래픽 제어기)로부터 메모리 액세스 요청을 수신하는 경우, 상기 메모리 제어기는 상기 요청을 디코드하고, 상기 시스템 버스 어드레스를 상기 메모리 디바이스(150)에 대한 적당한 어드레스로 변환할 수 있다. 상기 시스템 버스 어드레스는 어드레스 신호 발생기(101)에 의하여 상기 메모리 디바이스(예를 들어, 뱅크 및/또는 컬럼을 명시하는 어드레스)에 대한 적합한 어드레스로 변환될 수 있고, 수행되는 액세스의 유형을 표시하는 적당한 명령 엔코딩은 명령 엔코더(103)에 의하여 발생될 수 있다. 상기 메모리 제어기(100)는 메모리 어드레스 신호들(182)을 통하여 상기 메모리 디바이스(150)에 적당한 어드레스를 공급한다. 예시적인 실시예에서, 두 개의 세트의 어드레스 신호들이 존재하는 바: BA0-BA1 및 A0-A11이다. 다른 실시예들은 상이한 세트들 및 다른 수의 어드레스 신호들을 사용할 수 있다는 점을 주목하라. 상기 메모리 제어기(100)는 또한 적당한 명령 엔코딩을 상기 메모리 디바이스에 제공하여 어떤 유형의 동작들이 상기 명시된 어드레스에서 수행될 것인지를 표시한다. 다른 명령 엔코딩들이 제어 신호들(180)의 세트의 상이한 값들을 사용하여 명시된다. 예시적인 실시예에서, 상기 메모리 제어기(100)는 적절한 명령 엔코딩들 을 발생하기 위하여 적어도 4개의 액티브-로우 제어 신호들의 값들: /S(chip select), /CAS(column address strobe), /RAS(row address strobe), 및 /WE(write enable)을 제어한다(다른 제어 신호 값들이 또한 제어될 수 있음을 주목하라).
액세스들은 제어 신호들(182)을 거쳐서 상기 메모리 디바이스(150)에 액티브 명령 엔코딩을 제공하는 상기 메모리 제어기(100)에 의하여 초기화될 수 있다. 상기 액티브 명령은 후속적인 액세스에 대한 특정한 뱅크에서 페이지(예를 들어, 열)를 오픈(예를 들어, 활성화)할 수 있다. 상기 메모리 제어기(100)는 어떤 뱅크와 페이지가 활성화될 것인지를 표시하는 어드레스 신호들(182)을 상기 메모리 디바이스(150)에 제공한다. 예를 들어, 상기 BA0 및 BA1 신호들의 값은 상기 뱅크를 선택할 수 있고, 신호들(A0-A11)의 값들은 상기 페이지를 선택할 수 있다. 상기 활성화된 페이지는 프리차지 명령 엔코딩이 상기 뱅크에 발행될 때까지 액세스들에 대하여 활성(또는 오픈)으로 남는다. 프리차지 명령 엔코딩은 또한 같은 뱅크에 상이한 페이지를 오픈하기 전에 발행된다.
페이지가 오픈된 후에, 기입 또는 판독 명령 엔코딩이 상기 메모리 디바이스(150)에 제공될 수 있다. 판독 명령은 활성 페이지에 대한 버스트 판독 액세스를 초기화하는데 사용될 수 있다. 상기 메모리 제어기(100)는 어떤 데이터가 출력되는 지를 식별하기 위하여 상기 판독 명령을 어드레스 신호들(182)의 특정한 값들로 제공할 수 있다. 예를 들어, 상기 BA0 및 BA1 입력들의 값은 액세스할 뱅크를 선택할 수 있고, 입력들(A0-A11)에 제공된 어드레스는 버스트 판독을 위한 페이지(예를 들어, 컬럼) 내에서 시작 위치를 선택할 수 있다. 다른 버스트 길이들의 버스트 판독 들을 요청하는 복수의 상이한 판독 명령 엔코딩이 제공될 수 있다.
상기 메모리 제어기(100)는 활성 페이지로의 기입 액세스를 초기화하기 위하여 기입 명령을 명시하는 명령 신호들(180)의 값들을 발생할 수 있다. 기입될 데이터를 선택하기 위하여 다른 세트의 어드레스 값들이 상기 기입 명령으로 제공될 수 있다. 예를 들어, 상기 BA0 및 BA1 입력들의 값은 액세스할 뱅크를 선택할 수 있고, 입력들(A0-A11)에 제공된 어드레스는 버스트 기입에 대한 시작 컬럼 위치를 선택할 수 있다. 상이한 버스트 길이들을 명시하는 복수의 상이한 입력 명령 엔코딩들이 제공될 수 있다.
버스트 액세스들은 선택된 위치에서 초기화되어 (판독 또는 기입 명령의 특정한 명령 엔코딩에 의하여 표시되는 바와 같이) 프로그램된 또는 요청된 수의 버스트들에 대하여 계속된다. 버스트 시퀀스는 연속-버스트 시퀀스 또는 인터리브-버스트 시퀀스를 따르도록 프로그램될 수 있다. 기존의 DRAM들은 1, 2, 4, 8 또는 그 이상 비트들의 버스트를 기입 또는 판독하도록 프로그램될 수 있다. DRAM들은 또한 전형적으로 파이프라이닝(pipelining)을 지원하고, 이는 종전 메모리 요청을 수행하는 동안 상기 DRAM들로 하여금 메모리 트랜잭션에 대한 어드레스 및 제어 신호들을 수용하도록 허용한다.
메모리 디바이스(150)에 포함된 모드 레지스터(154)는 상기 메모리 디바이스의 특정한 동작 모드를 정의하는데 사용될 수 있다. 전술한 바와 같이, 상기 모드 레지스터(154)는 버스트 길이 설정의 선택을 허용할 수 있다. 또한, 상기 모드 레지스터(154)는 버스트 타입(연속적인지 또는 인터리브식인지), CAS 레턴시 및 동작 모드의 선택을 허용할 수 있다. 따라서, 상기 모드 레지스터(154) 설정들은 메모리 어레이(152)가 액세스들을 수행하는 방법을 제어할 수 있다.
상기 모드 레지스터(154)는 메모리 디바이스(150)에 모드 레지스터 설정 명령을 제공하는 메모리 제어기(100)에 의하여 프로그램될 수 있다. 상기 메모리 디바이스(150)에 상기 모드 레지스터 설정 명령과 함께 제공된 상기 어드레스 신호들(182)의 값들은 상기 모드 레지스터(154)에 저장될 신규 값을 표시할 수 있다. 예를 들어, 어드레스 비트들(A0-A2)은 상기 모드 레지스터(154)를 프로그램할 때 상기 버스트 길이를 명시하는데 사용될 수 있다. 상기 모드 레지스터(154)에 명시된 상기 버스트 길이는 전형적인 판독 또는 기입 명령 동안 액세스가능한 최대 수의 컬럼 위치들을 결정한다. 일 실시예에서, 2, 4, 또는 8 컬럼 위치들의 버스트 길이들은 연속적인 그리고 인터리브 타입 모두에 대하여 명시될 수 있다. 상기 모드 레지스터(154)는 모든 뱅크들이 휴지기이고 어떤 버스트들도 현재 진행중이 아닌 경우 신규 값으로 적재될 수 있다. 상기 모드 레지스터(154)를 프로그램한 후에, 상기 메모리 제어기(100)는 임의의 후속적인 동작들의 초기화 전에 명시된 시간 동안 대기하도록 요구될 수 있다.
상기 모드 레지스터 설정들을 변화시킬 필요 없이, 상이한 버스트 길이들의 액세스들이 수행되도록 허용하기 위하여, 메모리 디바이스(150)는 상이한 명령 엔코딩에 응답하여 상이한 버스트 길이들의 버스트 액세스들을 수행하도록 구성될 수 있다. 각 명령 엔코딩은 특정한 세트의 제어 신호 값들로서 발생되고, 수행될 액세스 타입 및 버스트 길이 모두를 표시한다. 많은 실시예들에서, 상기 명령 엔코딩들은 다른 핀이 메모리 디바이스(150)에 부가될 필요가 없도록, 기존의 제어 신호 값들(예를 들면, S, CAS, RAS 및 WE 값들)의 사용되지 않은 조합들로부터 선택될 수 있다. 메모리 디바이스(150)는 상이한 명령 엔코딩들 사이에 차분되도록, 그리고 상기 명시된 버스트 길이의 액세스를 수행함으로써 각기 상이한 명령 엔코딩들에 응답하도록 구성될 수 있다. 한 명령 엔코딩은 상기 요청된 버스트 길이가 상기 모드 레지스터(154)에서 상기 버스트 길이 설정에 의하여 결정되어야 함을 표시할 수 있다.
표 1은 일 실시예에서 메모리 제어기(100)에 의하여 메모리 디바이스(150)에 제공될 수 있는 임의의 명령 엔코딩들의 리스트를 보인다.
네임(기능) S RAS CAS WE ADDR
액티브
(뱅크를 선택하고 행을 활성화한다)
L L H H 뱅크/
판독(버스트 길이=8)
(뱅크 및 컬럼을 선택하고, 판독 버스트를 시작한다)
L H H L 뱅크/
컬럼
판독(버스트 길이=모드 레지스터 버스트 길이)
(뱅크 및 컬럼을 선택하고, 판독 버스트를 시작한다)
L H L H 뱅크/
컬럼
기입
(뱅크 및 컬럼을 선택하고, 기입 버스트를 시작한다)
L H L L 뱅크/
컬럼
모드 레지스터 설정 L L L L Op코드
표 1에 도시된 바와 같이, 메모리 시스템의 실시예는 두 개의 상이한 판독 명령 엔코딩들을 지원할 수 있다. 한 판독 명령 엔코딩은 특정한 버스트 길이(8)를 명시할 수 있고, 다른 한 엔코딩은 상기 모드 레지스터(154)에서 명시된 버스트 길이가 사용될 수 있음을 표시할 수 있다. 대안적인 실시예에서, 상기 제 2 엔코딩은 특정한 버스트 길이(예를 들어, 4)가 사용될 수 있음을 표시할 수 있다. 이러한 실시예에서, 이러한 명령 엔코딩은 추가적인 제어 신호들 또는 추가적인 어드레스 신호들을 사용하지 않고 명시될 수 있다는 점이 주목된다. 상기 메모리 디바이스 (150)는 데이터 마스킹 없이 각 명령 엔코딩에서 명시된 버스트 길이들을 구비하는 버스트 액세스들을 수행할 수 있다는 점이 또한 주목된다. 이러한 실시예는 DDR Ⅱ DRAM에 대하여 구현될 수 있다. 예를 들어, 8인 버스트 길이를 명시하는 판독 명령 엔코딩은 DDR Ⅰ에서 버스트 종료 명령을 명시하는데 사용되는 명령 엔코딩이 될 수 있다.
메모리 제어기(100)는 상이한 디바이스들로부터 상이한 길이의 버스트 요청들을 수신하도록 구성될 수 있다. 요청의 버스트 길이에 의존하여, 상기 메모리 제어기(100)는 어떤 명령 엔코딩이 상기 메모리 디바이스(150)에 제공되는 지를 선택할 수 있다. 예를 들어, 그래픽 제어기(예를 들어, 도 4의 그래픽 제어기(408))에 의하여 초기화된 AGP(Advanced Graphics Port) 트랜잭션들은 한번에 4 버스트들을 포함할 수 있고, 프로세서 트랜잭션들은 8 버스트들을 포함할 수 있다. 프로세서(예를 들어, 도 4의 CPU(10))가 트랜잭션을 초기화하는 경우, 상기 메모리 제어기(100)는 상기 메모리 디바이스로부터 8 버스트들을 요청하는 명령 엔코딩을 출력할 수 있다. 대신에, 상기 그래픽 제어기가 트랜잭션을 초기화하는 경우, 상기 메모리 제어기(100)는 상기 메모리 디바이스로부터 4 버스트들을 요청하는 상이한 명령 엔코딩을 출력할 수 있다. 상기 메모리 디바이스(150)는 상기 모드 레지스터(154) 내의 기존의 버스트 길이 설정에 관계 없이, 각 명령 엔코딩에서 요청된 버스트들의 수를 출력함으로써 응답한다.
임의의 실시예에서, 상기 모드 레지스터(154)의 버스트 길이 설정은 어떤 상이한 명령 엔코딩들이 상기 메모리 제어기(100)에 의하여 발생될 수 있는지를 결정 할 수 있다. 임의의 명령 엔코딩들은 상기 버스트 길이 설정이 하나의 값을 가지는 경우 사용될 수 있으나, 상기 버스트 길이 설정이 또다른 값을 가지는 경우 사용될 수 없다. 예를 들어, 일 실시예에서, 상이한 명령 엔코딩들이 기존의 버스트 길이 설정 이상의 버스트 길이들을 명시하는데 사용될 수 있다. 따라서, 그러한 실시예에서, 기존의 버스트 길이 설정이 최대 값을 가지는 경우, 단지 하나의 명령 엔코딩-기존의 버스트 길이 설정과 같은 버스트 길이를 표시하거나 또는 기존의 버스트 길이 설정이 사용되어야 함을 표시한다-이 상기 메모리 디바이스에 제공될 수 있다.
대안적인 실시예에서, 상이한 명령 엔코딩들 모두는 상기 모드 레지스터에서의 기존 버스트 길이 설정에 관계 없이, 상기 메모리 디바이스에 제공될 수 있다. 이러한 실시예들 중 일부에서, 각 명령 엔코딩은 특정한 버스트 길이를 (기존의 버스트 길이 설정이 사용되어야함을 표시하는 하나 이상의 명령 엔코딩들에 반대되도록) 표시할 수 있다. 임의의 실시예에서 버스트 액세스를 초기화하는데 사용되는 각 명령 엔코딩은 요청된 액세스의 버스트 길이를 명시할 수 있다는 점이 주목된다. 그러한 실시예에서, 각 명령 엔코딩이 특정한 버스트 길이를 명시하기 때문에 상기 모드 레지스터의 버스트 길이 설정은 무의미한 것일 수 있다. 따라서, 메모리 디바이스의 임의의 실시예들은 상기 모드 레지스터에 버스트 길이 설정을 제공하지 않을 수 있다.
임의의 실시예에서, 상이한 명령 엔코딩들은 판독 및 기입 모두에 대하여 유효할 수 있다. 다른 실시예에서, (기존의 버스트 모드 레지스터 설정이 사용되어야 함을 표시하는)한 명령 엔코딩은 기입을 위하여 제공될 수 있고, (각기 상이한 버스트 길이를 명시하거나 기존의 버스트 모드 레지스터 설정이 사용되어야함을 명시하는) 복수의 명령 엔코딩들은 판독을 위하여 제공될 수 있다(이 역도 가능하다).
일 실시예에서, 추가적인 명령 라인들(예를 들어, S, RAS, CAS 및 WE에 추가하여)이 추가적인 명령 엔코딩(예를 들어, 상이한 타입의 액세스들(예를 들어, 판독 또는 기입)을 명시하거나 추가적인 버스트 길이들을 명시하는)을 정의하는데 사용될 수 있도록 부가적 명령 핀이 상기 메모리 디바이스(150)에 추가된다. 그러한 일 실시예에서, 명령 엔코딩들은 2, 4, 8 및/또는 16의 버스트 길이들을 명시하는데 사용될 수 있다. 상기 추가적인 명령 라인은 어드레스 라인으로서 사용될 수 없다. 임의의 실시예들에서, 하나보다 많은 추가적인 명령 라인이 상이한 버스트 액세스 명령 엔코딩들을 명시하는데 사용될 수 있다.
도 2A 내지 2C는 메모리 시스템의 일 실시예에서 발생될 수 있는 예시적인 타이밍 파형들을 도시한다. 이러한 예에서 CL(CAS Latency)=4, AL(Active Latency)=0, RL(Read Latency)=4 그리고 WL(Write Latency)=3이다. 이러한 예에서, 상기 모드 레지스터에서 버스트 길이 설정은 각 예들을 통하여 4와 같게 설정되는 것으로 가정된다. 예를 들어, 도 2A에서, 상기 모드 레지스터의 버스트 길이 설정은 BL=4 판독 명령 및 BL=8 판독 명령이 수행되는 시간들 사이에서 변경되지 않거나, BL=8 판독 명령 및 BL=4 판독 명령이 수행되는 시간들 사이에서 변경되지 않는다.
도 2A는 BL=8 판독 명령 및 또다른 BL=4 판독 명령이 이어지는 BL(Burst Length)=4 판독 명령의 수행을 예시한다. 이러한 예에서, 상기 BL=4 판독 명령들은 기존의 버스트 길이 설정이 상기 메모리 디바이스에 대해 사용되어야 함을 표시하는 명령 엔코딩을 제공함으로써 초기화될 수 있다. 상기 BL=8 판독 명령은 8인 길이를 가지는 버스트 액세스가 (기존의 버스트 길이 설정에 관계없이) 사용되어야 하는 것을 표시하는 명령 엔코딩을 제공함으로써 초기화될 수 있다. 이러한 예가 도시하는 바와 같이, 상기 메모리 디바이스는 연속하는 데이터 스트림을 출력하고 이전의 액세스가 완료된 후 바로 하나의 액세스를 수행함으로써 상기 명령들에 응답할 수 있다. 각 액세스는 요청된 수의 버스트에 대응하는 많은 사이클에서 수행된다(예를 들어, BL=4 명령의 수행은 2 클록 사이클 보다 많은 사이클을 요구하지 않는다). 도 2B는 BL=8 판독 명령이 이어지는 BL=4 기입 명령의 수행을 도시한다. 도 2C는 BL=4 기입 명령이 이어지는 BL=8 판독 명령의 수행을 예시한다.
도 3은 메모리 시스템을 동작시키는 방법의 일 실시예를 도시한다. 이러한 실시예에서, 특정 버스트 길이를 가지는 버스트 액세스를 수행하기 위하여 메모리 디바이스에 대한 요청이 수신된다(301). 상기 요청된 버스트 길이가 상기 메모리 디바이스의 기존의 버스트 길이 설정과 같다면(예를 들어, 버스트 모드 레지스터에서 명시되는 바와 같이), 제 1 명령 엔코딩이 상기 메모리 디바이스에 제공될 수 있다(303 내지 305). 상기 제 1 명령 엔코딩은 기존 버스트 길이 설정이 사용되어야 함을 표시할 수 있다. 대안적으로, 상기 제 1 명령 엔코딩은 기존의 버스트 길이 설정과 같은 버스트 길이를 명시함으로써 수행될 버스트 액세스의 버스트 길이를 명확하게 표시할 수 있다. 상기 제 1 명령 엔코딩의 수신에 응답하여, 상기 메모리 디바이스는 요청된 버스트 길이를 가지는 버스트 액세스를 수행한다(309).
상기 요청된 버스트 길이가 상기 메모리 디바이스의 기존 버스트 길이 설정과 같지 않은 경우, 제 2 명령 엔코딩이 상기 메모리 디바이스에 제공될 수 있다(303 및 309). 상기 제 2 명령 엔코딩은 적어도 하나의 제어 신호의 값만큼 상기 제 1 명령 엔코딩과 차이가 난다. 상기 제 2 명령 엔코딩은 기존의 버스트 길이 설정에 의하여 표시되는 버스트 길이와 다른 특정한 버스트 길이를 가지는 버스트 액세스가 수행되어야 함을 표시한다. 상기 제 2 명령 엔코딩에 응답하여, 상기 메모리 디바이스는 상기 제 2 명령 엔코딩에 의하여 명시되는 버스트 길이를 가지는 버스트 액세스를 수행한다(311). 상기 제 1 및 제 2 명령 엔코딩은 같은 타입의 액세스(예를 들어, 판독 액세스)를 명시하는데 모두 사용될 수 있다. 추가적인 명령 엔코딩들이 상기 제 1 및 제 2 명령 엔코딩들에서 명시된 것과 다른 버스트 길이들을 구비한 액세스들을 수행하는데 및/또는 상기 제 1 및 제 2 명령 엔코딩들에서 명시된 것과 다른 타입의 액세스들을 수행하는데 사용될 수 있다.
도 4는 버스 브리지(402)를 통하여 다양한 시스템 성분들에 연결된 프로세서(10)를 포함하는 컴퓨터 시스템(400)의 일 실시예의 블럭도를 도시한다. 컴퓨터 시스템(400)은 도 1 및 도 2에 예시된 것과 유사한 메모리 시스템의 실시예를 포함할 수 있다. 도시된 실시예는 단지 예시적인 것이고, 컴퓨터 시스템의 다른 실시예들이 가능하고 고려된다. 도시된 시스템에서, 메인 메모리(404)는 메모리 버스(406)를 통하여 버스 브리지(402)에 연결되고, 그래픽 제어기(408)는 AGP 버스(410)를 통하여 버스 브리지(402)에 연결된다. 복수의 PCI 디바이스들(412A-412B)은 PCI 버 스(414)를 통하여 버스 브리지(402)에 연결된다. 부수적인 버스 브리지(416)가 또한 EISA/ISA 버스(420)를 통하여 하나 이상의 EISA 또는 ISA 디바이스들(418)에 전기적인 인터페이스를 이루기 위하여 제공된다. 이러한 예에서, 프로세서(10)는 CPU 버스(424)를 통하여 버스 브리지(402)에 연결되고, 선택적인 L2 캐시(428)에 연결된다. 임의의 실시예에서, 상기 프로세서(10)는 통합된 L1 캐시(미도시)를 포함할 수 있다. 임의의 실시예에서, 프로세서(10)는 또한 메모리 제어기(100)의 실시예를 포함할 수 있다.
버스 브리지(402)는 프로세서(10), 메인 메모리(404), 그래픽 제어기(408), 및 PCI 버스(414)에 접속부착된 디바이스들 사이의 인터페이스를 제공한다. 버스 브리지(402)에 접속된 디바이스들 중 하나로 부터 동작이 수신되는 경우, 버스 브리지(402)는 그 동작의 타겟을 식별한다(예를 들어, 특정한 디바이스, 또는 PCI 버스(414)의 경우에서 그러한 타겟은 PCI 버스(414) 상에 존재한다). 버스 브리지(402)는 상기 동작을 상기 타겟 디바이스에 라우팅한다. 버스 브리지(402)는 일반적으로 동작을 소스 디바이스 또는 버스에 의하여 사용되는 프로토콜로부터 타겟 디바이스 또는 버스에 의하여 사용되는 프로토콜로 변환한다. 일 실시예에서, 버스 브리지(402)는 상술한 바와 같이 메모리 제어기(100)의 실시예를 포함할 수 있다.
PCI 버스(414)에 대한 ISA/EISA 버스에 인터페이스를 제공하는 것에 더하여, 부수적인 버스 브리지(416)가 추가적인 기능성을 통합한다. 부수적인 버스 브리지(416)의 외장이거나 그에 통합된 입력/출력 제어기(미도시)가 또한 컴퓨터 시스템(400) 내에 포함되어, 키보드 및 마우스(422)에 대한 그리고 다양한 직렬 및 병렬 포트들에 대한 동작 지원을 제공한다. 다른 실시예에서, 외부 캐시 유닛(미도시)가 또한 프로세서(10)와 버스 브리지(402) 사이에서 CPU 버스(424)에 연결될 수 있다. 대안적으로는, 상기 외부 캐시가 버스 브리지(402)에 연결될 수 있고, 상기 외부 캐시에 대한 캐시 제어 로직이 버스 브리지(402)에 통합될 수 있다. L2 캐시(428)는 프로세서(10)로의 후방 구성으로 도시된다. L2 캐시(428)는 프로세서(10)로부터 분리될 수 있고, 프로세서(10)를 구비한 카트리지(예를 들어, 슬롯 1 또는 슬롯 A)안으로 통합되거나, 또는 프로세서(10)를 구비한 반도체 기판 상에 통합될 수도 있다.
메인 메모리(404)는 응용 프로그램들이 저장되고 프로세서(10)가 주요하게 실행되는 메모리이다. 적합한 메인 메모리(404)는 DRAM(Dynamic Random Access Memory)를 포함한다. 예를 들어, SDRAM(Synchronous DRAM) 또는 RDRAM(Rambus DRAM)의 다수의 뱅크들이 적합할 수 있다. 메인 메모리 디바이스(404)는 기존의 버스트 길이 설정에 의하여 표시되는 버스트 길이와는 다른 버스트 길이들을 명시하는 상이한 명령 엔코딩들에 응답하도록 구성될 수 있다.
PCI 디바이스들(412A-412B)은 네트워크 인터페이스 카드, 비디오 가속기, 오디오 카드, 하드 또는 플로피 디스크 드라이브 또는 제어기들, SCSI(Small Computer System Interface) 어뎁터들 및 전화 카드와 같은 다양한 주변 기기들의 실례이다. 유사하게, ISA 디바이스(418)는 모뎀, 사운드 카드, 그리고 GPIB 또는 필드 버스 인터페이스 카드들과 같은 다양한 데이터 획득 카드들과 같은 다양한 타입의 주변 기기들의 실례이다.
그래픽 제어기(408)가 제공되어 디스플레이(426) 상에 텍스트 및 이미지들을 표현하는 것을 제어한다. 그래픽 제어기(408)는 일반적으로 공지된 전형적인 그래픽 가속기를 구현하여 메인 메모리(404)로/로부터 효과적으로 쉬프트될 수 있는 3차원 데이터 구조를 표현할 수 있다. 그러므로 그래픽 제어기(408)는 버스 브리지(402) 이내의 타겟 인터페이스에 대한 액세스를 요청 및 수신하고, 이에 의하여 메인 메모리(404)에 대한 액세스를 획득할 수 있다는 점에서 AGP 버스(410)의 마스터일 수 있다. 전용 그래픽 버스는 메인 메모리(404)로부터 데이터의 빠른 검색을 용이하게 한다. 그러한 실시예에 대하여, 그래픽 제어기(408)는 또한 AGP 버스(410) 상에 PCI 프로토콜 트랜잭션들을 발생하도록 구성될 수 있다. 따라서 버스 브리지(402)의 AGP 인터페이스는 PCI 프로토콜 타겟뿐만 아니라 AGP 프로토콜 트랜잭션들과 초기화 트랜잭션들 모두를 지원하는 기능성을 포함할 수 있다. 디스플레이(426)는 이미지 또는 텍스트가 표시될 수 있는 전자 디스플레이이다. 적당한 디스플레이(426)는 CRT(cathode ray tube), LCD (Liquid Crystal Display) 등을 포함한다.
AGP, PCI 및 ISA 또는 EISA 버스들이 상술한 설명에서 예로서 사용되었지만, 임의의 버스 아키텍쳐들이 원하는대로 대체될 수 있다는 점이 주목된다. 또한 컴퓨터 디바이스(400)는 추가적인 프로세서들(예를 들어, 컴퓨터 시스템(400)의 선택적인 구성성분으로서 도시된 프로세서(10a))을 포함하는 다중처리 컴퓨터 시스템일 수 있다는 점이 또한 주목된다. 프로세서(10a)는 프로세서(10)와 유사할 수 있다. 보다 구체적으로, 프로세서(10a)는 프로세서(10)의 동일한 복사본일 수 있다. 프로세서(10a)는 독립 버스(도 5에 도시된 바와 같은)를 거쳐서 버스 브리지(402)에 접속될 수 있고, 프로세서(10)와 CPU 버스(424)를 공유할 수 있다. 또한, 프로세서(10a)는 L2 캐시(428)에 유사한 선택적인 L2 캐시(428a)에 연결될 수 있다.
도 5에서, 상술한 메모리 시스템을 포함할 수 있는 컴퓨터 시스템(400)의 다른 예가 도시된다. 다른 실시예들이 가능하고 고려된다. 도 5의 실시예에서, 컴퓨터 시스템(400)은 다수의 처리 노드들(612A, 612B, 612C 및 612D)을 포함한다. 각 처리 노드는 각기 개별적인 처리 노드(612A-612D) 내에 포함된 메모리 제어기(616A-616D)를 거쳐서 개별적인 메모리(614A-614D)에 연결된다. 또한, 처리 노드들(612A-612D)은 상기 처리 노드들(612A-612D) 사이에 통신하는데 사용되는 인터페이스 로직을 포함한다. 예를 들어, 처리 노드(612A)는 처리 노드(612B)와 통신하기 위한 인터페이스 로직(618A), 처리 노드(612C)와 통신하기 위한 인터페이스 로직(618B), 추가적인 다른 처리 노드(미도시)와 통신하기 위한 제 3 인터페이스 로직(618C)을 포함한다. 유사하게, 처리 노드(612B)는 인터페이스 로직(618D, 618E 및 618F)을 포함하고, 처리 노드(612C)는 인터페이스 로직(618G, 618H 및 618I)을 포함하고, 그리고 처리 노드(612D)는 인터페이스 로직(618J, 618K 및 618L)을 포함한다. 처리 노드(612D)는 인터페이스 로직(618L)을 거쳐서 다수의 입력/출력 디바이스들(예를 들어, 데이지 체인 구성에서의 디바이스들(620A-629B))과 통신하기 위하여 연결된다. 다른 처리 노드들이 같은 방식으로 다른 I/O 디바이스들과 통신할 수 있다.
처리 노드들(612A-612D)은 내부-처리 노드 통신을 위한 패킷-기반 링크를 구현할 수 있다. 본 실시예에서, 상기 링크는 단일방향성 라인들의 세트들로서 구현된다(예를 들어, 라인들(624A)은 패킷들을 처리 노드(612A)로부터 처리 노드(612B) 에 전송하는데 사용될 수 있고, 라인들(624B)은 패킷들을 처리 노드(612B)로부터 처리 노드(612A)에 전송하는데 사용될 수 있다). 다른 세트의 라인들(624C-624H)이 도 5에 예시된 다른 처리 노드들 사이에 패킷들을 전송하는데 사용된다. 일반적으로, 각 세트의 라인들(624)은 하나 이상의 데이터 라인들, 상기 데이터 라인에 대응하는 하나 이상의 클록 라인들, 그리고 전달되는 패킷의 타입을 표시하는 하나 이상의 제어 라인들을 포함할 수 있다. 상기 링크는 처리 노드들 사이의 통신을 위한 캐시 코히런트 방식으로, 또는 처리 노드와 I/O 디바이스(또는 PCI 버스 또는 ISA 버스와 같은 기존 구성의 I/O 버스에 대한 버스 브리지) 사이의 통신을 위한 비-코히런트 방식으로 동작될 수 있다. 또한, 상기 링크는 도시된 I/O 디바이스들 사이의 데이지-체인 구조를 사용하는 비-코히런트 방식으로 동작될 수 있다. 한 처리 노드로부터 다른 처리 노들로 전송되는 패킷은 하나 이상의 중간 노드들을 통하여 전달될 수 있음이 주목된다. 예를 들어, 처리 노드(612A)로부터 처리 노드(612D)로 전송되는 패킷은 도 5에 도시된 것과 같이 처리 노드(612B) 또는 처리 노드(612C)를 통하여 전달된다. 임의의 적합한 라우팅 알고리즘이 사용될 수 있다. 컴퓨터 시스템(400)의 다른 실시예들은 도 5에서 도시된 실시예보다 많거나 적은 처리 노드들을 포함할 수 있다.
일반적으로, 패킷들은 노드들 사이의 라인들(624) 상에서 하나 이상의 비트 타임들 동안 전송될 수 있다. 한 비트 타임은 대응하는 클록 라인들 상에서 클록 신호의 상승 또는 하강 에지일 수 있다. 상기 패킷들은 트랜잭션들을 초기화하기 위한 명령 패킷들, 캐시 코히런시를 유지하기 위한 프로브 패킷들, 및 프로브 및 명령들에 응답하는 것으로부터의 응답 패킷들을 포함할 수 있다.
메모리 제어기 및 인터페이스 로직에 추가하여 처리 노드들(612A-612D)은 하나 이상의 프로세서들을 포함할 수 있다. 일반적으로 말해서, 처리 노드는 적어도 하나의 프로세서를 포함하고, 메모리 및 원하는 다른 로직과 통신하기 위한 메모리 제어기를 선택적으로 포함할 수 있다. 보다 구체적으로, 각 처리 노드들(612A-612D)은 프로세서(10)의 하나 이상의 복제를 포함할 수 있다. 외부 인터페이스 유닛(18)은 메모리 제어기(616) 뿐만 아니라 상기 노드 내에 인터페이스 로직(618)을 포함할 수 있다. 각 메모리 제어기(616)는 상술한 바와 같이 메모리 제어기(100)의 실시예를 포함할 수 있다.
메모리들(614A-614D)은 임의의 적합한 메모리 디바이스들을 포함할 수 있다. 예를 들어, 메모리들(614A-614D)은 하나 이상의 RDRAM(Rambus DRAM)들, SDRAM(Synchronous DRAM)들, 정적 RAM(static RAM)등을 포함할 수 있다. 컴퓨터 시스템(400)의 어드레스 스페이스는 메모리들(614A-614D) 사이에 분할된다. 각 처리 노드(612A-612D)는 어떤 어드레스들이 어떤 메모리들(614A-614D)에 맵핑될 지를 결정하고, 따라서 특정한 어드레스에 대한 메모리 요청이 어떤 처리 노드(612A-612D)에 라우팅될 지를 결정하는데 사용되는 메모리 맵을 포함할 수 있다. 일 실시예에서, 컴퓨터 시스템(400) 이내의 어드레스에 대한 코히런시 포인트는 상기 어드레스에 대응하는 바이트들을 저장하는 메모리에 연결된 메모리 제어기(616A-616D)이다. 달리 말해서, 상기 메모리 제어기(616A-616D)는 대응하는 메모리(614A-614D)에 대한 각 메모리 액세스가 캐시 코히런트 방식으로 발생하는 것을 확실히할 책임이 있다. 메모리 제어기들(616A-616D)은 메모리들(614A-614D)에 인터페이스하기 위한 제어 회로를 포함할 수 있다. 또한, 메모리 제어기들(616A-616D)은 메모리 요청들을 큐잉하기 위한 요청 큐들을 포함할 수 있다.
인터페이스 로직(618A-618D)은 상기 링크로부터 패킷들을 수신하고 상기 링크 상에 전송되는 패킷들을 버퍼링하는 다양한 버퍼들을 포함할 수 있다. 컴퓨터 시스템(400)은 패킷들을 전송하는 임의의 적합한 흐름 제어 메커니즘을 사용할 수 있다. 예를 들어, 일 실시예에서, 각 인터페이스 로직(618)은 그러한 인터페이스 로직이 접속되는 상기 링크의 한 단부에서 수신기내의 각 타입의 버퍼의 수의 카운트를 저장한다. 상기 인터페이스 로직은 패킷을 저장하기 위한 빈 버퍼를 가지는 인터페이스 로직을 수신하지 않는 경우 상기 패킷을 전송하지 않는다. 패킷을 전방으로 라우팅함으로써 수신 버퍼가 비게 되는 경우, 상기 수신 인터페이스 로직은 상기 버퍼가 비어있다는 메세지를 상기 전달 인터페이스 로직에 전송한다. 그러한 메카니즘은 "쿠폰-기반" 시스템으로 지칭될 수도 있다.
I/O 디바이스들(620A-620B)은 임의의 적합한 I/O 디바이스들일 수 있다. 예를 들어, I/O 디바이스들(620A-620B)은 상기 디바이스들이 연결될 수 있는 다른 컴퓨터 시스템(예를 들어, 네트워크 인터페이스 카드들 또는 모뎀들)과 통신하기 위한 디바이스들을 포함할 수 있다. 또한, I/O 디바이스들(620A-620B)은 비디오 가속기들, 오디오 카드들, 하드 또는 플로피 디스크 드라이브 또는 드라이브 제어기들, SCSI 어뎁터들 및 전화 카드들, 사운드 카드들 및 GPIB와 같은 다양한 데이터 획득 카드들 및 필드 버스 인터페이스 카드들을 포함할 수 있다. 용어 "I/O 디바이스" 및 용어 "주변 장치"는 본 장에서 동의어로 의도된다는 점이 주목된다.
다양한 변화들 및 수정들이 일단 명세서를 충분히 이해한 당업자들에게 명백해질 것이다. 하기의 청구항들은 그러한 모든 변화들 및 수정들을 포함하는 것으로 해석되는 것으로 의도된다.
본 발명은 일반적으로 컴퓨터 시스템에 적용가능할 것이다.

Claims (10)

  1. 메모리 디바이스(150)가 버스트 길이를 구비한 버스트 액세스를 수행하도록 하기 위한 요청을 수신하는 단계와;
    상기 버스트 길이가 상기 메모리 디바이스(150)의 기존 버스트 길이 설정(154)에 의하여 표시되는 제 1 버스트 길이인 경우, 상기 메모리 디바이스에 제 1 명령 엔코딩을 제공하는 단계와; 그리고
    상기 버스트 길이가 상기 버스트 길이 설정(154)에 의하여 표시되는 상기 제 1 버스트 길이와 같지 않는 제 2 버스트 길이인 경우, 상기 메모리 디바이스(154)에 제 2 명령 엔코딩을 제공하는 단계를 포함하고,
    상기 메모리 디바이스(150)는 상기 제 1 명령 엔코딩에 응답하여 상기 제 1 버스트 길이를 구비한 상기 버스트 액세스를 수행하고;
    상기 메모리 디바이스(150)는 상기 제 2 명령 엔코딩에 응답하여 상기 제 2버스트 길이를 구비한 상기 버스트 액세스를 수행하며,
    여기서, 상기 제 1 명령 엔코딩 및 제 2 명령 엔코딩은 각각, 칩 선택 신호, 컬럼 어드레스 스트로브 신호, 로(row) 어드레스 스트로브 신호 및 기입 인에이블 신호의 각각의 값들을 포함하는 것을 특징으로 하는 메모시 시스템을 동작시키는 방법.
  2. 제 1 항에 있어서,
    상기 버스트 액세스는 판독 액세스인 것을 특징으로 하는 메모시 시스템을 동작시키는 방법.
  3. 제 2 항에 있어서,
    상기 메모리 디바이스가 제 3 버스트 길이를 구비한 제 2 버스트 액세스를 수행하도록 하기 위한 요청을 수신하는 단계와; 그리고
    상기 제 3 버스트 길이가 상기 버스트 길이 설정에 의하여 표시되는 상기 제 1 버스트 길이와 같지 않는 경우 상기 메모리 디바이스에 제 3 명령 엔코딩을 제공하는 단계를 더 포함하고,
    상기 메모리 디바이스는 상기 제 3 명령 엔코딩에 응답하여 상기 제 3 버스트 길이를 구비한 상기 제 2 버스트 액세스를 수행하며, 여기서 상기 제 2 버스트 액세스는 기입 버스트 액세스인 것을 특징으로 하는 메모시 시스템을 동작시키는 방법.
  4. 제 1 항에 있어서,
    상기 메모리 디바이스는 DDR Ⅱ DRAM 디바이스인 것을 특징으로 하는 메모시 시스템을 동작시키는 방법.
  5. 제 1 항에 있어서,
    상기 제 1 명령 엔코딩을 제공하는 단계는 상기 칩 선택 신호, 상기 컬럼 어드레스 스트로브 신호, 상기 로 어드레스 스트로브 신호, 및 상기 기입 인에이블 신호의 값들을 제어하는 것을 포함하고,
    상기 제 2 명령 엔코딩을 제공하는 단계는 상기 칩 선택 신호, 상기 컬럼 어드레스 스트로브 신호, 상기 로 어드레스 스트로브 신호, 및 상기 기입 인에이블 신호의 값들을 제어하는 것을 포함하는 것을 특징으로 하는 메모시 시스템을 동작시키는 방법.
  6. 기존의 버스트 길이를 표시하는 값을 저장하도록 구성된 모드 레지스터(154)와; 그리고
    메모리 어레이(152)를 포함하고,
    상기 메모리 어레이(152)는 엔코드된 명령을 수신하도록 구성되고, 여기서 상기 엔코드된 명령은 버스트 길이를 식별하고, 상기 엔코드된 명령은 칩 선택 신호, 컬럼 어드레스 스트로브 신호, 로 어드레스 스트로브 신호, 및 기입 인에이블 신호의 값들을 포함하며;
    상기 엔코드된 명령의 수신에 응답하여, 상기 메모리 어레이(152)는 상기 엔코드된 명령에 의하여 식별된 버스트 길이를 가지는 버스트 액세스들을 수행하도록 구성되고, 상기 버스트 길이는 기존의 버스트 길이와 다른 것을 특징으로 하는 메모리 디바이스.
  7. 제 6 항에 있어서,
    상기 메모리 어레이는 제 2 버스트 길이를 식별하는 제 2 엔코드된 명령을 수신하고, 그리고 그에 응답하여 상기 제 2 버스트 길이를 가지는 제 2 버스트 액세스를 수행하도록 구성되며,
    상기 제 2 버스트 길이는 상기 버스트 길이와 다르며,
    상기 메모리 어레이는 상기 엔코드된 명령 및 상기 제 2 엔코드된 명령에 응답하여 판독 액세스를 수행하도록 구성되는 것을 특징으로 하는 메모리 디바이스.
  8. 제 6 항에 있어서,
    상기 메모리 디바이스는 DDR Ⅱ DRAM 디바이스인 것을 특징으로 하는 메모리 디바이스.
  9. 삭제
  10. 제 1 버스트 길이를 가지는 제 1 메모리 액세스 요청의 수신에 응답하여 제 1 명령 엔코딩을 발생하고, 제 2 버스트 길이를 가지는 제 2 메모리 액세스 요청의 수신에 응답하여 제 2 명령 엔코딩을 발생하도록 구성된 메모리 제어기(100)와, 여기서 상기 제 1 명령 엔코딩은 상기 제 1 버스트 길이를 식별하고, 상기 제 2 명령 엔코딩은 상기 제 2 버스트 길이를 식별하며; 그리고
    상기 메모리 제어기(100)에 연결되며, 상기 제 1 명령 엔코딩의 수신에 응답하여 상기 제 1 버스트 길이를 가지는 제 1 버스트 액세스를 수행하고 그리고 상기 제 2 명령 엔코딩의 수신에 응답하여 상기 제 2 버스트 길이를 가지는 제 2 버스트 액세스를 수행하도록 구성된 메모리 디바이스(150)를 포함하며,
    여기서, 상기 제 1 명령 엔코딩 및 제 2 명령 엔코딩은 각각, 칩 선택 신호, 컬럼 어드레스 스트로브 신호, 로 어드레스 스트로브 신호 및 기입 인에이블 신호의 각각의 값들을 포함하는 것을 특징으로 하는 메모리 시스템.
KR1020057000475A 2002-07-11 2003-07-09 모드 레지스터에서의 버스트 길이 설정 변화 없이 상이한버스트―길이 액세스들을 지원하는 dram KR101005114B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/193,828 US6957308B1 (en) 2002-07-11 2002-07-11 DRAM supporting different burst-length accesses without changing the burst length setting in the mode register
US10/193,828 2002-07-11

Publications (2)

Publication Number Publication Date
KR20050025960A KR20050025960A (ko) 2005-03-14
KR101005114B1 true KR101005114B1 (ko) 2010-12-30

Family

ID=30114615

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057000475A KR101005114B1 (ko) 2002-07-11 2003-07-09 모드 레지스터에서의 버스트 길이 설정 변화 없이 상이한버스트―길이 액세스들을 지원하는 dram

Country Status (9)

Country Link
US (1) US6957308B1 (ko)
EP (1) EP1522021B1 (ko)
JP (1) JP4507186B2 (ko)
KR (1) KR101005114B1 (ko)
CN (1) CN1333353C (ko)
AU (1) AU2003258997A1 (ko)
DE (1) DE60313323T2 (ko)
TW (1) TWI307464B (ko)
WO (1) WO2004008329A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10762935B2 (en) 2018-11-15 2020-09-01 SK Hynix Inc. Semiconductor devices

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7543088B2 (en) 2004-03-11 2009-06-02 Sonics, Inc. Various methods and apparatuses for width and burst conversion
US7475168B2 (en) * 2004-03-11 2009-01-06 Sonics, Inc. Various methods and apparatus for width and burst conversion
US8122187B2 (en) * 2004-07-02 2012-02-21 Qualcomm Incorporated Refreshing dynamic volatile memory
US8032676B2 (en) 2004-11-02 2011-10-04 Sonics, Inc. Methods and apparatuses to manage bandwidth mismatches between a sending device and a receiving device
US7640392B2 (en) * 2005-06-23 2009-12-29 Qualcomm Incorporated Non-DRAM indicator and method of accessing data not stored in DRAM array
US7620783B2 (en) * 2005-02-14 2009-11-17 Qualcomm Incorporated Method and apparatus for obtaining memory status information cross-reference to related applications
US20070206586A1 (en) * 2006-03-02 2007-09-06 Matti Floman Method, mobile device, system and software for flexible burst length control
KR100799132B1 (ko) 2006-06-29 2008-01-29 주식회사 하이닉스반도체 초기값변경이 가능한 모드레지스터셋회로.
US9262326B2 (en) * 2006-08-14 2016-02-16 Qualcomm Incorporated Method and apparatus to enable the cooperative signaling of a shared bus interrupt in a multi-rank memory subsystem
US20080059748A1 (en) * 2006-08-31 2008-03-06 Nokia Corporation Method, mobile device, system and software for a write method with burst stop and data masks
US20080301391A1 (en) * 2007-06-01 2008-12-04 Jong-Hoon Oh Method and apparatus for modifying a burst length for semiconductor memory
KR101260313B1 (ko) * 2007-06-12 2013-05-03 삼성전자주식회사 전자장치 및 그 데이터 송수신방법과, 슬레이브 장치 및복수의 장치 간의 통신방법
US7688628B2 (en) * 2007-06-30 2010-03-30 Intel Corporation Device selection circuit and method
TWI358735B (en) * 2008-01-03 2012-02-21 Nanya Technology Corp Memory access control method
US20100325333A1 (en) * 2008-10-14 2010-12-23 Texas Instruments Incorporated Method Allowing Processor with Fewer Pins to Use SDRAM
US8266471B2 (en) * 2010-02-09 2012-09-11 Mosys, Inc. Memory device including a memory block having a fixed latency data output
US8856579B2 (en) * 2010-03-15 2014-10-07 International Business Machines Corporation Memory interface having extended strobe burst for read timing calibration
US9319880B2 (en) * 2010-09-15 2016-04-19 Intel Corporation Reformatting data to decrease bandwidth between a video encoder and a buffer
KR101873526B1 (ko) * 2011-06-09 2018-07-02 삼성전자주식회사 에러 정정회로를 구비한 온 칩 데이터 스크러빙 장치 및 방법
KR101964261B1 (ko) 2012-05-17 2019-04-01 삼성전자주식회사 자기 메모리 장치
CN105474318A (zh) * 2013-07-26 2016-04-06 慧与发展有限责任合伙企业 响应于第二读取请求的第一数据
US10534540B2 (en) 2016-06-06 2020-01-14 Micron Technology, Inc. Memory protocol
US10198195B1 (en) * 2017-08-04 2019-02-05 Micron Technology, Inc. Wear leveling
US10846253B2 (en) 2017-12-21 2020-11-24 Advanced Micro Devices, Inc. Dynamic page state aware scheduling of read/write burst transactions
US11270416B2 (en) 2019-12-27 2022-03-08 Nxp Usa, Inc. System and method of using optimized descriptor coding for geometric correction to reduce memory transfer bandwidth overhead
US11687281B2 (en) * 2021-03-31 2023-06-27 Advanced Micro Devices, Inc. DRAM command streak efficiency management
US20230289063A1 (en) * 2022-03-14 2023-09-14 Mediatek Inc. Electronic system and method for controlling burst length to access memory device of electronic system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10208468A (ja) * 1997-01-28 1998-08-07 Hitachi Ltd 半導体記憶装置並びに同期型半導体記憶装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754825A (en) 1995-05-19 1998-05-19 Compaq Computer Corporation Lower address line prediction and substitution
US7681005B1 (en) * 1996-01-11 2010-03-16 Micron Technology, Inc. Asynchronously-accessible memory device with mode selection circuitry for burst or pipelined operation
US6226724B1 (en) * 1997-09-03 2001-05-01 Motorola, Inc. Memory controller and method for generating commands to a memory
JPH11134243A (ja) * 1997-10-31 1999-05-21 Brother Ind Ltd 記憶装置の制御装置及びデータ処理システムにおける記憶装置の制御方法
JP3948141B2 (ja) * 1998-09-24 2007-07-25 富士通株式会社 半導体記憶装置及びその制御方法
US6606352B2 (en) 1999-01-15 2003-08-12 Broadcom Corporation Method and apparatus for converting between byte lengths and burdened burst lengths in a high speed modem
US6393500B1 (en) 1999-08-12 2002-05-21 Mips Technologies, Inc. Burst-configurable data bus
KR20020014563A (ko) * 2000-08-18 2002-02-25 윤종용 반도체 메모리 장치
US6549991B1 (en) * 2000-08-31 2003-04-15 Silicon Integrated Systems Corp. Pipelined SDRAM memory controller to optimize bus utilization
JP4025002B2 (ja) 2000-09-12 2007-12-19 株式会社東芝 半導体記憶装置
US6895474B2 (en) * 2002-04-29 2005-05-17 Micron Technology, Inc. Synchronous DRAM with selectable internal prefetch size

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10208468A (ja) * 1997-01-28 1998-08-07 Hitachi Ltd 半導体記憶装置並びに同期型半導体記憶装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10762935B2 (en) 2018-11-15 2020-09-01 SK Hynix Inc. Semiconductor devices

Also Published As

Publication number Publication date
US6957308B1 (en) 2005-10-18
DE60313323D1 (de) 2007-05-31
EP1522021A1 (en) 2005-04-13
KR20050025960A (ko) 2005-03-14
CN1669012A (zh) 2005-09-14
EP1522021B1 (en) 2007-04-18
TW200401191A (en) 2004-01-16
JP4507186B2 (ja) 2010-07-21
TWI307464B (en) 2009-03-11
WO2004008329A1 (en) 2004-01-22
DE60313323T2 (de) 2007-12-27
JP2005532657A (ja) 2005-10-27
CN1333353C (zh) 2007-08-22
AU2003258997A1 (en) 2004-02-02

Similar Documents

Publication Publication Date Title
KR101005114B1 (ko) 모드 레지스터에서의 버스트 길이 설정 변화 없이 상이한버스트―길이 액세스들을 지원하는 dram
KR100494201B1 (ko) 메모리시스템,i/o서브시스템장치,및메모리장치를동작시키는방법
US6622228B2 (en) System and method of processing memory requests in a pipelined memory controller
US6681301B1 (en) System for controlling multiple memory types
US6449703B2 (en) Pipelined memory controller
US5579473A (en) Interface controller for frame buffer random access memory devices
US6721864B2 (en) Programmable memory controller
US6636927B1 (en) Bridge device for transferring data using master-specific prefetch sizes
US5526508A (en) Cache line replacing system for simultaneously storing data into read and write buffers having multiplexer which controls by counter value for bypassing read buffer
US20070055813A1 (en) Accessing external memory from an integrated circuit
KR20190116212A (ko) 판독 데이터 스트로브 신호를 포함하는 감소된 핀 카운트(rpc) 메모리 버스 인터페이스를 위한 장치 및 방법
US5678064A (en) Local bus-ISA bridge for supporting PIO and third party DMA data transfers to IDE drives
JP2004536417A (ja) 読出及び書込動作でバースト順序が異なるアドレッシングを行うメモリデバイス
US6976122B1 (en) Dynamic idle counter threshold value for use in memory paging policy
JPH09213070A (ja) 隠れプリチャージ式疑似キャッシュdram
JP2022509348A (ja) スーパースカラメモリic、並びにスーパースカラメモリicにおいて使用されるバス及びシステム
US6446169B1 (en) SRAM with tag and data arrays for private external microprocessor bus
US5553270A (en) Apparatus for providing improved memory access in page mode access systems with pipelined cache access and main memory address replay
KR100297895B1 (ko) 동기식 dram-타입 메모리와 시스템 버스간의 데이터 전송을 제어하는 방법 및 장치
US5802597A (en) SDRAM memory controller while in burst four mode supporting single data accesses
US7206909B2 (en) Host memory interface for a parallel processor
KR100298955B1 (ko) 데이타처리시스템
JP2009037639A (ja) ストリーミングidメソッドによるdmac発行メカニズム
US6385687B2 (en) Method and apparatus for simultaneously accessing the tag and data arrays of a memory device
KR100690597B1 (ko) 이중모드 직접메모리접근을 지원하는 중앙처리장치를이용한 단일모드 직접메모리접근 구현 방법

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: 20131129

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141201

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151118

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20161123

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20171117

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20181129

Year of fee payment: 9