KR20010080682A - 큐 기반 메모리 컨트롤러 - Google Patents

큐 기반 메모리 컨트롤러 Download PDF

Info

Publication number
KR20010080682A
KR20010080682A KR1020017006977A KR20017006977A KR20010080682A KR 20010080682 A KR20010080682 A KR 20010080682A KR 1020017006977 A KR1020017006977 A KR 1020017006977A KR 20017006977 A KR20017006977 A KR 20017006977A KR 20010080682 A KR20010080682 A KR 20010080682A
Authority
KR
South Korea
Prior art keywords
memory
queue
request
read
raw
Prior art date
Application number
KR1020017006977A
Other languages
English (en)
Inventor
노박스테팬티.
왈드론스콧
펙존씨.쥬니어
Original Assignee
토토라노 제이. 빈센트
어드밴스드 마이크로 디바이시즈, 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 토토라노 제이. 빈센트, 어드밴스드 마이크로 디바이시즈, 인코포레이티드 filed Critical 토토라노 제이. 빈센트
Publication of KR20010080682A publication Critical patent/KR20010080682A/ko

Links

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/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)

Abstract

본 발명은 메모리 요청들을 해독하여 개별 원시 메모리 오퍼레이션으로 해독하여 개별 오퍼레이션 큐(340, 350, 360)로 넣는 컴퓨터 메모리(70)에 대한 메모리 컨트롤러(230)에 관한 것이다. 상기 오퍼레이션 큐(340, 350, 360)는 상기 메모리 요청을 개시하기 위해 상기 넣어진 원시 메모리 오퍼레이션들을 상기 메모리(70)로 독립적으로 발행한다. 상기 오퍼레이션 큐(340, 350, 360)는 넣어진 상기 원시 메모리 오퍼레이션들과 상기 메모리(70)로 전송된 원시 메모리 오퍼레이션들 간의 타이밍과 순서 종속성을 검사하여 의존한다. 일단 원시 메모리 오퍼레이션이 상기 메모리에 전송되면, 개별 오퍼레이션 큐(340, 350, 360)로부터 빼내어진다. 제어 큐(365)는 상기 메모리(70)로 전송된 원시 메모리 오퍼레이션들의 진행을 감시하고, 상기 개시된 메모리 요청을 완성하여 상기 오퍼레이션 큐(340, 350, 360)에게 타이밍과 순서 종속성 데이터를 제공한다.

Description

큐 기반 메모리 컨트롤러{QUEUE BASED MEMORY CONTROLLER}
컴퓨터 시스템의 전체 처리 속도를 증가시키기 위한 많은 다양한 기술들이 발전되고 있다. 하부-마이크론(sub-micron) 연산 능력과 같은 집적 회로 연산 기술에서의 발전이 집적 회로 자체의 속도를 현저하게 증가시키도록 하는 반면에, 설계에서의 다른 발전과 컴퓨터 시스템의 버스 전송 메커니즘도 성능에서의 발전을 이루고 있다. 발전의 예에 컴퓨터 시스템 내의 코드 프리-패칭(pre-fetching) 메커니즘뿐 만 아니라, 캐시 메모리 서브시스템의 조합이 있다.
종래의 컴퓨터 시스템에서, 메모리 엑세스(판독 또는 기록)는 별개의 오퍼레이션(operation)들로 구성된다. 동적 임의 접근 메모리(dynamic random access memory: DRAM)( 또는 동기 DRAM(synchronous DRAM: SDRAM, 또는 싱크DRAM(synchDRAM))의 예시적인 메모리 엑세스가 하기에서 이루어진다. CPU는 상기 메모리로 어떤 데이터를 기록하거나, 상기 메모리로부터 어떤 데이터를 판독하는 것이 요구되는지를 판단한다. DRAM은 칩 선택(chip select:CS)와, 뱅크 및 열에의해 이루어진다. 상기 CS 신호는 엑세스를 위한 메모리에서 특정 그룹의 메모리 칩들을 활성화시키는 유일한 신호이다. 상기 뱅크와 열은 상기 칩들의 물리적인 설계/구성을 나타낸다. 모든 엑세스는 특정 CS와, 뱅크 및 열을 선택함(이들의 조합은 페이지로 알려진다)으로써 이루어져야 한다. 또한, DRAM형 메모리 칩은 열 버퍼(row buffer)를 제공하여, 현재 엑세스된 데이터를 보유하도록 한다. 상기 예를 계속하면, CPU는 원하는 데이터를 검색하기 위해 상기 메모리 제어 논리로의 주소와 함께 요청을 전송할 것이다. 상기 메모리 제어 논리는 상기 주소를 CS, 뱅크 및 열로 구성된 물리적 메모리 위치로 변환시키고, 하기에 기술되는 것과 같이 상기 메모리 엑세스를 개시한다.
상기 메모리내의 특정 열에 엑세스하기 위해, 만약 상기 열이 아직 활성화되지 않으면(하기에 나타남), 상기 열을 포함하는 뱅크는 기-충전(pre-charged)되어있어야 한다. 효과적으로, 기-충전은 상기 모든 비트 라인(각 뱅크내의 열들을 상기 열 버퍼와 연결하는 와이어)을 논리 1을 나타내는 전압으로 증가시킨다. 상기 페이지가 활성화된 때(또는 상기 비트 라인에 연결된 때), 논리 0을 포함하는 페이지의 모든 비트들은 개별적인 비트 라인을 논리 0으로 드롭시킨다. 그럼으로써 상기 비트 라인을 논리 0으로 개시하는 것에 대한 시간과 상기 페이지의 비트들이 상기 개별 비트 라인들을 충전시키는 논리 1을 나타내는 것을 기다리는 것에 대한 시간을 절약한다. 기-충전 오퍼레이션은 상기 뱅크로의 이전의 엑세스로부터 현재 활성화 열을 상기 열 버퍼로부터 상기 메모리 어레이로 다시 기록되도록 함으로써, 상기 데이터는 소실된다(하기에 기재). CS 또는 뱅크는 여러 방법으로 기-충전될수 있다. 기-충전은 상기 CS에 대한 리프레쉬(refresh)가 있을 때마다 또는, 상기 메모리 제어 논리가 상기 CS 또는 뱅크로 기-충전 오퍼레이션을 전송하는 때마다, 상기 메모리의 개시를 시키게 된다. 만약 상기 뱅크가 현재 기-충전되지 않았으면, 상기 메모리 제어 논리는 소정의 CS로 기-충전 오퍼레이션을 발행하여 상기 CS 상의 소정의 뱅크(또는 가능하면 모든 뱅크들)의 비트 라인들을 기-충전한다.
다음으로, 활성화 오퍼레이션은 상기 열 주소와 함께 소정의 CS 및 뱅크로 전송되어, 상기 비트 라인들 상으로 특정의 페이지를 활성화시키고 데이터의 페이지를 상기 뱅크의 열 버퍼로 전송하도록 한다. DRAM 메모리의 특성에 의해, 활성화 오퍼레이션은 상기 메모리 어레이의 상기 열의 내용을 상기 열 버퍼로 이동시키는 과정으로 상기 상기 열의 내용을 파괴한다. 상기 내용들이 상기 메모리 어레이로 다시 제자리 시키고, 상기 내용들이 손실되지 않음을 확인하기 위해, 기-충전 오퍼레이션(상술됨)은 다른 열을 상기 열 버퍼에 부여하기 전에 필요하다. 일단 상기 페이지가 상기 열 버퍼에 있으면, 적절한 판독 또는 기록 오퍼레이션이 판독될 또는 기록될 비트들을 식별하는 상기 행 주소와 함께 전송될 수 있다. 상기 오퍼레이션들은 상기 메모리 요청을 개시한다. 상기 메모리 요청은 상기 데이터를 상기 메모리로 전송하거나, 상기 메모리로부터 상기 데이터를 전송함으로써 완성된다. 일단 열이 활성화되고 상기 열 버퍼에 있으면, 상기 메모리 제어 논리는 부가적인 기-충전 또는 활성화 오퍼레이션을 수행할 필요없이 상기 열로의 판독 및 기록들을 수행할 수 있다.
상기 예에서 알 수 있듯이, 상기 메모리로의 엑세스의 개시는 기-충전, 활성및 판독/기록의 원시 오퍼레이션들(primitive operations)로 분할될 수 있다. 일단 활성화되면, 상기 데이터 전송은 상기 메모리로 또는 메모리로부터 완성되어야 한다. 판독에 있어서, 상기 데이터는 상기 메모리로부터 취해져서 상기 요청자에게 전달되고, 기록에 있어서, 기록될 데이터는 상기 메모리로 전달되어야 한다.
스테이트 머신 논리(state machine logic)은 효율적으로 엑세스들을 해독하고, 원시 오퍼레이션들을 전송하고 또한 상기 메모리의 최적화를 위해 데이터 전송의 완성을 제어하기 위해 구성될 수 있다. 그러나, 상기 오퍼레이션들을 수행하기 위해, 오퍼레이션들 간의 종속성을 추적하기 위해, 오퍼레이션들을 병렬적으로 전송하고 완성하기 위해 요구되는 상기 스테이트 머신은 종종 복잡하다. 그럼으로써 보다 많은 게이트가 배치되어야 하고, 더 이해하고 확인하기가 어려운 복잡한 설계를 야기한다.
또한, 복잡한 설계는 대개 더 느리게 동작한다. 컴퓨터 논리는 일반적으로 컴퓨터 내에서의 오퍼레이션들이 동기화되도록 하는 클록 신호에 따라 설계된다. 전형적인 설계는 논리 스테이지들을 구비하고, 각 스테이지는 입력 래치들과, 출력 래치들 및 조합 논리를 구비한다. 상기 입력 래치들은 상기 조합 논리의 입력들에 연결된다. 상기 입력 래치들을 래치하고 상기 입력 신호들을 일정하게 유지하고, 반면에, 상기 조합 논리는 상기 입력 신호들에 동작한다. 상기 출력 래치들은 상기 조합 논리의 출력을 래치한다. 상기 입력 래치들과 출력 래치들은 상기 클록 신호에 연결된다. 상기 조합 논리는 논리 기능을 수행하도록 배치되고 연결된 NAND 또는 NOR 게이트들과 같은 논리 게이트들로 구성된다.
상기 클록 신호의 각 펄스에서, 상기 입력 래치들은 상기 입력 신호들을 래치하여 상기 조합 논리에 사용될 수 있도록 하고, 상기 출력 래치들은 상기 조합 논리의 출력을 래치한다. 상기 논리 스테이지는 상기 조합 논리의 게이트를 구성하는 회로들이 상기 입력 신호들이 래치되는 시간과 상기 조합 논리 함수의 결과가 연산되는 시간 사이의 지연을 초래하는 전파 지연을 구비하는 사실을 이용한다. 상기 논리 스테이지는 다음 클록 펄스가 상기 출력 래치에 도착하기 전에 상기 조합 논리가 그 연산을 완료하도록(모든 신호들이 전파되도록) 설계된다. 각 클록 펄스마다, 상기 조합 논리로의 입력들이 변화하고, 상기 출력 래치들은 이전의 입력들의 결과를 래치한다. 상기 출력 래치들이 다음 논리 스테이지에서 입력 래치들을 형성하기 때문에, 그럼으로써 데이터는 논리의 하나의 스테이지에서 다음으로 이동된다.
입력 래치들과 출력 래치들 사이에 논리 스테이지로 입력될 수 있는 게이트들의 개수는 부분적으로 상기 컴퓨터의 클록 주파수의 함수이다. 더 빠른 클록 주파수는 신호들이 상기 게이트를 통하여 전파하는 시간을 더 감소시킨다. 보다 복잡한 설계는 더 느린 클록을 필요로 하는 입력 및 출력 래치들 사이에 더 많은 게이트들을 요구할 것이다. 따라서, 설계자는 고속 클록과 복잡한 논리 설계 간의 트레이드 오프(trade off)를 해야 한다.
따라서, 상기 메모리 제어 논리의 설계를 단순화시키는 반면에 상기 메모리로의 엑세스의 성능을 최적화시키고 향상시킬 필요가 있다. 따라서, 게이트 개수와, 설계 시간/비용 및 설계 오류의 개수의 감소를 야기하는 메모리 제어 논리의논리적 복잡성을 감소시킬 필요가 있다. 그럼으로써 전체적으로 더 고속 동작을 야기하는 논리 스테이지들 간의 게이트 지연의 회수를 감소하도록 한다.
본 발명은 컴퓨터 시스템에 관한 것으로서, 특히 컴퓨터 시스템 내에 채용된 메모리 제어 메커니즘과 기술에 관한 것이다. 또한 본 발명은 컴퓨터 시스템의 메모리 제어 메커니즘의 성능 향상과 최적화에 관한 것이다.
도 1은 바람직한 실시예에 따른 메모리 컨트롤러를 사용하기 위한 컴퓨터 시스템의 일실시예의 블록다이아그램이다.
도 2는 도 1의 메모리 컨트롤러의 MRA 및 SMC유닛의 블록다이아그램이다.
도 3은 도 2에 도시된 MRA 유닛에 의해 수행되는 방법을 나타내는 순서도이다.
상술된 문제들은 본 발명에 따른 메모리 요청들을 컴퓨터 메모리(70)으로 전송하는 장치 및 방법에 의해 해결된다. 본 발명의 특징의 하나는, 메모리 컨트롤러(230)가 제공되고, 상기 메모리 컨트롤러(230)는 메모리 요청을 수신하여 원시 메모리 오퍼레이션들로 해독하는 요청 해독기(310)와, 상기 요청 해독기(310)에 연결되고, 상기 원시 메모리 오퍼레이션들을 저장하도록 된 오퍼레이션 큐들(340, 350, 360)를 구비한다.
상기 메모리 컨트롤러(230)는 추가적으로 상기 큐들(340, 350, 360)과, 상기 컴퓨터 메모리(70)과 연결된 멀티플렉서(370)를 구비하고, 상기 멀티플렉서(370)는 상기 큐들(340, 350, 360)로부터 하나의 원시 메모리 오퍼레이션을 선택하여 상기 컴퓨터 메모리(70)로 전송하여 상기 메모리 요청을 개시한다. 상기 큐들(340, 350, 360)은 일단 상기 멀티플렉서(370)에 의해 전송되면, 상기 선택된 원시 메모리 오퍼레이션을 삭제하도록 된다. 상기 메모리 컨트롤러(230)는 제어 큐(450, 455)를 구비하고, 상기 제어 큐(450, 455)는 상기 오퍼레이션 큐들(340, 350, 360)과 상기 컴퓨터 메모리(70)과 연결되어 일단 개시되면 상기 컴퓨터 메모리(70)내의 메모리 요청들을 완성한다.
본 발명은 또한 메모리 컨트롤러(230)를 사용하여 컴퓨터 메모리(70)에 대한 메모리 요청들을 실행하는 방법에 관한 것으로, 상기 방법은: 메모리 요청생성기(520)로부터 메모리 요청을 수용하는 단계와; 상기 메모리 요청을 하나 이상의 원시 메모리 오퍼레이션들(530)으로 해독하는 단계와, 상기 원시 메모리 오퍼레이션들을 하나 이상의 오퍼레이션 큐(580, 590, 600)로 넣는(queuing) 단계; 상기 메모리(70)로의 전송을 위해 상기 넣어진 원시 메모리 오퍼레이션들 중의 하나를 선택하는 단계와; 상기 메모리 요청을 개시하기 위해 상기 넣어진 원시 메모리 오퍼레이션을 상기 메모리(70)로 전송하는 단계와; 상기 원시 메모리 오퍼레이션이 상기 메모리(70)로 전송된 때 상기 넣어진 원시 메모리 오퍼레이션을 빼내는(dequeuing) 단계와; 제어 데이터를 하나 이상의 제어 큐들(450, 455)에 넣어서, 상기 제어 큐들(450, 455)가 상기 컴퓨터 메모리(70) 내의 상기 메모리 요청을 완성하는 단계 및; 상기 메모리 요청이 완성됨 때 상기 제어 데이터를 빼내는 단계를 포함한다.
본 발명의 결과로서, 메모리 엑세스가 최적화되고, 주 메모리의 성능이 향상된다. 상기 장점들은 상기 메모리 엑세스 제어 논리의 설계를 단순화하고 상기 논리의 복잡성을 감소시킴으로써 성취된다. 그럼으로써 게이트 개수, 설계 시간/비용 및 설계 오류의 개수를 감소시킨다. 또한, 논리 스테이트들 간의 게이트 지연들의 개수의 감소는 전체적으로 더 빠른 동작을 성취한다. 본 발명은 다양한 메모리 형태들에서 사용될 수 있는 적응성이 좋은 구조를 제공한다.
도 1은 일실시예인 컴퓨터 시스템(10)의 선택된 구성요소들을 도시하는 것으로, 상기 컴퓨터 시스템(10)은 마더보드(20)와, 중앙처리장치(central processing unit: CPU)(30)와, 어드밴스드 그래픽 포드(Advanced Graphics Port: AGP)(40)와, 칩 세트(45), 메모리(70)와, CPU 버스(80)와, AGP 버스(90)와, 메모리 버스(100)과 PCI 버스(110)으로 구성된다. CPU(30)와 버스들(90), (100), (110) 및 마더보드(20)은 종래에도 잘 알려진 것이다. 또한, 상기 AGP(40)은 상기 컴퓨터 시스템(10)에 포함된 전형적인 입력/출력(I/O) 디바이스이고, 상기 컴퓨터 시스템(10)은 종래에 잘 알려진 다양한 I/O 디바이스들을 구비한다.
상기 칩 세트(45)는 각각 상술된 상기 컴퓨터 시스템(10)의 모든 구성요소들을 상호연결한다. 바람직한 실시예에서, 상기 칩 세트(45)는 "노스브리지(Northbridge)"(60)과 "사우스브리지(Southbridge)"(50)과 같이 산업에서 알려진 2개의 칩들을 구비한다. 또한, 상기 칩 세트(45)는 다른 칩들을 구비할 수 있고, 상기 노스브리지(60)와 사우스브리지(50)는 하나 이상의 칩을 포함한다. 노스브리지(60)의 예로 캘리포니아 서니베일에 있는 에이엠디(AMD) 주식회사에 의해 제조된 아이런게이트(Irongate) 노스브리지 칩이 있다. 상기 예인 노스브리지(60)는 100MHz의 버스 클록 속도로 마더보드(20)와 동작하게 설계되고,그러나 더 높은 클록 속도에서도 가능하다. 상기 노스브리지(60)는 상기 메모리(70)와 엑세스가 요구되는 상기 컴퓨터 시스템(10)내의 다른 디바이스들과 상기 메모리(70)를 상호연결하도록 설계된다. 전형적으로, 상기 디바이스들은 상기 PCI 버스(110)과 연결된 AGP(40) 또는 I/O 디바이스들과 같은 더 새로운 기술인 I/O 디바이스들과, CPU와, 사우스브리지(50)를 포함한다. 상기 디바이스들은 메모리 요청자들(210)로 알려지고, 상기 노스브리지(50)로의 메모리 요청들을 생성하고, 그리고 상기 노스브리지(60)는 상기 메모리(70)에 대한 요청들을 실행하여 완성한다(하기에서 상술됨). 상기 사우스브리지(50)는 더 오래된 기술인 I/O을 종래의 적합성에 제공하고 상기 디바이스들을 상기 PCI 버스(110)과 접하게 한다. 상기 예인 노스브리지(60)는 상기 CPU 버스(80)를 사용하여 상기 CPU(30)에 연결되고, 전용 AGP 버스(90)를 사용하여 AGP(40)에 연결되고, 전용 메모리 버스(100)를 사용하여 상기 메모리(70)에 연결되고, 상기 PCI 버스(110)를 사용하여 다른 모든 디바이스들에 연결되도록 된다. 상기 노스브리지가 다른 버스 망을 사용하여 상기 마더보드(20)상의 다양한 구성요소들을 상호연결할 수 있다.
상기 노스브리지 칩은 상기 메모리 버스(100)를 통하여 상기 메모리 요청자(210)와 상기 메모리(70) 간의 데이터 흐름을 제어하고 전송하는 메모리 컨트롤러(memory controller: MCT)(200)를 구비한다. 상기 MCT(200)는 메모리 요청 조정자(memory request arbiter: MRA)(220)와 SDRAM 메모리 컨트롤러(SDRAM memory controller: SMC)를 구비한다. 상기 MCT(200)는 상기 메모리(70)를 사용하여 오퍼레이션들의 생성, 우선화 및 운영을 처리한다(하기에 기술됨). 1998년 12월 4일에출원된 출원번호 09/205,456인 "METHOD AND APPARATUS FOR OPTIMIZING MEMORY PERFORMANCE WITH OPPORTUNISTIC PRE-CHARGING"과, 1998년 12월 4일 출원된 출원번호 09/205,978인 "METHOD AND APPARATUS FOR OPTIMIZING MEMORY PERFORMANCE WITH OPPORTUNISTIC REFRESHING"가 메모리 요청들을 완성하는 MCT(200)의 동작을 참고적으로 설명한다.
상기 메모리(70)는 상기 마더보드(20) 상에 설치된 여러개의 소켓(72)을 구비하여 듀얼 인라인 메모리 모듈(Dual Inline Memory Module: DIMM's)(74)를 수신한다. 바람직한 실시예에서, 상기 마더보드(20)는 3개의 소켓들(72)을 구비하고, 각 소켓은 하나의 DIMM(74)를 보유할 수 있다. 또한 단일 인라인 메모리 모듈 또는 다른 형태의 메모리 캐리어가 사용될 수 있다. 상기 소켓들(72)은 상기 DIMM(74)와 메모리 버스(100)간의 연결을 제공한다. 상기 메모리 버스(100)는 상기 메모리(70)과 상기 노스브리지(60)를 상호연결한다. 각 DIMM(74)는 각 면에 납땜된 하나 이상의 메모리 칩들을 구비한 인쇄 배선 기판을 포함한다. 바람직한 실시예에서, 상기 메모리 칩들은 동기 동적 임의 접근 메모리(SDRAM) 칩을 구비하나, 다른 종류의 DRAM 메모리 칩들도 사용될 수 있다. 상기 DIMM(74)의 각 면은 CS(76)으로 지시된다.
SDRAM 칩은 DRAM 형 메모리로부터 유래된 것으로 잘 알려져있다. SDRAM 칩들은 상기 컴퓨터 시스템(10)의 나머지에 관련된 오퍼레이션들을 동기화시킴으로써 종래의 DRAM보다 더 높은 클록 속도에서 작동할 수 있다. 또한, SDRAM 칩들은 상기 메모리(70)으로의 더 빠른 엑세스 시간의 장점이 있는 버스트 엑세스 모드(burstaccess mode)를 제공한다. 버스트 엑세스 모드에서, 상기 노스브리지(60)는 각 엑세스로 상기 메모리(70)로부터의 더 많은 데이터를 검색할 수 있다. 그럼으로써 상기 메모리 버스(100)에서의 대역폭을 절약하는 상기 메모리(70)로 전송될 필요가 있는 요청들의 개수를 감소시킨다. SDRAM 칩들은 소정의 버스트 데이터 크기로 개시될 수 있는 모드 레지스터를 포함한다. 일단 모드 레지스터가 세트되면, 상기 메모리(70)로의 각 엑세스는 상기 SDRAM 칩들로 하여금 상기 세트된 데이터를 덤프하도록 한다. 예를 들면, 바람직한 실시예에서, 상기 메모리 버스(70)는 64비트의 폭이다. 만약 상기 버스트 데이터 크기가 8 쿼드 워드(quad word:QW) 또는 64바이트로 설정되면, 상기 노스브리지(60)는 제 1 QW의 주소를 전송하고, 다음 8 클록 사이클의 기간 동안에, 상기 메모리(70)은 상기 노스브리지(60)로부터의 추가적인 요청들없이 상기 요청을 수행하도록 상기 메모리 버스(100)를 통하여 1QW를 전송할 것이다.
물리적으로, 상기 컴퓨터 시스템의 주 메모리는 각 CS에 의해 분리된다. 각 CS(76)는 상기 노스브리지(60)에 의해 상기 메모리 칩들을 활성화시키는 데 사용되는 상기 메모리 버스(100) 상에서 칩 선택(Chip Select: CS) 신호와 연결된다. 각 CS(76)이 상기 노스브리지(60)이 각 CS(76)을 독립적으로 가리키도록 하는 유일한 CS 신호가 있다. CS(76)가 엑세스된 때, 상기 CS의 부분인 모든 메모리 칩들은 단일 유닛이지만, 동시에 엑세스된다. 그럼으로써 만약 하나의 CS(76)가 요청을 처리하는 중이면, 상기 노스브리지(60)가 상기 제 1 요청이 완성될 때를 기다리지 않고 다른 CS(76)으로 다른 요청을 전송할 수 있을 때 인터리브된 엑세스들을 허용한다.
더 높은 메모리 대역폭을 가능하게 하기 위해, 각 CS(76)는 독립적으로 엑세스될 수 있는 개별 뱅크로 분리된다. 그럼으로써 특정 CS(76)에서 인터리브된 메모리 엑세스를 허용한다. 뱅크의 개수는 상기 DIMM(74)에서 사용되는 상기 메모리 칩들의 제조에 의존한다. 각 메모리 칩의 각 뱅크에서의 메모리 저장 회로들의 물리적인 레이아웃은 격자 배열(열/행)이고, 상기 SDRAM은 상기 격자로 엑세스하기 위해 열 주소와 행 주소를 위해 입력들을 제공한다. 따라서, 상기 메모리(70)내의 어느 로케이션을 엑세스하기 위해, 상기 컴퓨터 시스템(10)은 특정 CS(76)과, 뱅크와, 열 주소 및 행 주소를 선택하여야 한다. 바람직한 실시예에서, 각 DIMM(74)는 4개에 이르는 뱅크들, 8,192(8K)에 이르는 열과 2048(2K)에 이르는 행들을 구비한 각 CS(76)을 구비한 2개의 CS(76)을 구비한다. 특정 CS(76)과, 뱅크와 열을 특징짓는 조합은 페이지(page)로서 지시된다.
또한, SDRAM 메모리 칩들은 SDRAM 열 버퍼(열 버퍼)로 불리는 버퍼 저장소를 제공한다. 뱅크 당 하나의 열 버퍼를 구비한다. 일단 페이지가 선택되면(또한 활성 오퍼레이션으로 알려짐), 상기 SDRAM은 상기 선택된 열을 상기 뱅크의 열 버퍼로 이동시킨다. 상기 열 버퍼로부터, 상기 행 주소는 기록 또는 판독 오퍼레이션을 위해 소정의 데이터를 선택하도록 된다. 열이 상기 열 버퍼로 부여된 때, 상기 메모리 제어 논리는 다른 열을 상기 열 버퍼로 이동시키기 전에, 상기 열 버퍼 내용이 상기 메모리 어레이로 다시 저장되도록 하여야 한다(이하에서 상술됨).
상기 예인 노스브리지(60)에서, 상기 메모리(70)에 대한 메모리 요청들은 3개의 시나리오로 분류될 수 있다. 상기 시나리오는 상기 MCT(200)가 상기 요청을개시하기 위해 상기 메모리(70)로 전송해야 하는 원시 오퍼레이션들(기-충전. 활성 및 판독/기록)을 식별하는데 사용된다. 제 1 시나리오는 페이지 적중(page hit: PH)로 불리고, 상기 모든 요청이 특정 CS(76)와 뱅크의 열 버퍼에서 이미 활성화된 페이지로 전송되는 때이다. 상기 형태의 트랜잭션은 상기 판독/기록 오퍼레이션과 적절한 행 주소만이 상기 메모리 요청을 개시하기 위해 전송될 필요가 있기 때문에, 가장 낮은 대기 시간을 가진다. 발생되는 유일한 지연은 상기 요청을 완성하기 위해 적절한 데이터를 상기 열 버퍼로 다시 전송하거나 상기 데이터를 상기 열 버퍼에 기록하는 상기 메모리(70)의 반환시간(turn around time)이다.
제 2 시나리오는 페이지 충돌(page conflict: PC)로 불린다. 메모리 요청이 CS(76)와, 열 버퍼내의 활성화 페이지를 현재 구비하는 뱅크에 대한 것이나, 상기 요청이 다른 열로 전송된 때, PC가 발생한다. 이 시나리오는 상기 뱅크가 기-충전되어야만하고, 새로운 페이지가 상기 판독/기록 오퍼레이션이 상기 요청을 개시하기 위해 전송되기 전에, 상기 열 버퍼로 부여되어야만 하는 것으로 인하여 가장 긴 대기 시간을 포함한다. 또한, 추가적인 지연은 만약 상기 열 버퍼로 현제 페이지를 입력하는 요청이 아직 완성되지 않는다면, 발생된다. 그때, 상기 새로운 페이지를 위한 요청은 멈춰져야 한다. PC가 발생한 때, 상기 MCT(200)는 기-충전, 활성화 및 판독/기록 오퍼레이션을 상기 SDRAM으로 전송할 필요가 있을 것이다.
제 3 시나리오는 페이지 오류(page miss: PM)로 불린다. 현재 요청이 SDRAM 버퍼내의 현재 활성화 페이지를 구비하고 있지 않은 뱅크에 관한 것인 때, PM이 발생한다. PM은 2종류가 있다. 첫번째는 PMc이고, 현재 요청이 가장 최근에 엑세스된CS(76)와 다른 CS(76)에 대한 것인 때이다. 두번째는 PMb이고, 현재 요청이 가장 최근에 엑세스된 CS(76)에 관한 것이나, 상기 CS(76)에서 이미 활성인 뱅크가 아닌 다른 뱅크에 관한 것인 때이다. PM일 때, 상기 MCT(200)는 상기 요청을 개시하는 판독/기록 오퍼레이션에 후속되는 열 버퍼로 소정의 페이지를 이동시키기 위해, 활성화 오퍼레이션을 전송할 필요가 있다. PMc 동안에, 기-충전 오퍼레이션도 또한 상기 활성화 열을 상기 메모리 어레이로 다시 기록하기 위해 마지막으로 엑세스된 뱅크로 전송된다. 상기 방법으로 기-충전에 의해, PM은 이미 기-충전된 뱅크에 관한 것임이 확인된다. 만약 뱅크가 기-충전되어 있지 않으면, 상기 PC 시나리오를 생성하여, 상기 열 버퍼에는 이미 활성화 열이 있음을 의미한다.
또한, 상기 예인 컴퓨터 시스템(10)에서, 기-충전과, 활성화, 판독/기록 오퍼레이션들은 완성되기 위해 소정의 정도의 시간을 요구한다. 특정 CS(76)에 대한 다른 오퍼레이션은 이전의 오퍼레이션이 완성될 때까지 전송되기를 기다려야 할 것이다. 상기 지연들은 또한 타이밍 종속성(timing dependencies)으로 지적된다. 예를 들면, 마이크론 테크날러지 주식회사(Micron Technology, Inc.)가 제조한 SDRAM, 전형적인 CS(76)으로의 기-충전 오퍼레이션은 30나노 세컨드(또는 100MHz 시스템 버스에서 3사이클)이 소요된다. 상기 지연은 Trp로 표시된다. 상기 지연은 상기 MCT(200)가 후속하는 활성화 오퍼레이션을 상기 CS(76)으로 전송하기 이전에 Trp 동안 기다려야 하는 것을 의미한다. 또한, 일단 상기 활성화 오퍼레이션이 전송되면, 상기 열이 상기 SDRAM 열 버퍼로 이동되는 데 30나노 세컨드(또는 100MHz 시스템 버스에서 3사이클)가 걸린다. 상기 지연은 Trcd로 표시한다. 상기 지연은상기 MCT(200)가 상기 판독 또는 기록 오퍼레이션을 전송하는 Trcd 동안 기다려야 하는 것을 의미한다. 만약 상기 활성화를 후속하는 다음 오퍼레이션이 기-충전이면, 상기 기-충전을 전송하기 이전의 지연은 Tdpl로 표시되고, Trcd와는 다르다. 또한, 하나의 CS(76) 중의 하나의 뱅크만이 주어진 소정의 시간에 상기 메모리 버스(100)를 통하여 데이터를 전송하거나 수신할 수 있다. 일단 뱅크가 상기 MCT(200)으로 데이터를 전송하거나, 상기 MCT(200)으로부터 데이터를 수신하기 시작하면, 어느 CS(76)에 대한 후속하는 판독 및 기록 오퍼레이션들(그러나 다른 뱅크들에 대한 활성화 또는 기-충전은 아님)은 상기 데이터가 전송을 완료하기를 기다려야만 한다. 상기 동작적인(operational)/타이밍 종속성들만이 어느 하나의 CS(76) 및/또는 뱅크에서 발생한다. 하나 이상의 CS(76)에 대한 또는 다른 뱅크에 대한 요청들이 병렬적인 방법으로 또는 인터리브된 방법으로 전송될 수 있다.
도 2는 상기 MRA(220) 및 SMC(230)의 상세도이다. 상기 MRA(220)는 큐 제어 논리(300)와 요청 해독기(310)을 구비한다. 상기 SMC(230)는 활성화 오퍼레이션 큐(activate operation queue:AQ)(34)와, 기-충전 오퍼레이션 큐(pre-charg operation queue: PQ)(350)과, 판독/기록 오퍼레이션 큐(read/write operation queue:RWQ)(360)와, 판독/기록 제어 큐(read/write control queue: RWCQ)(365), SDRAM 우선 멀티플렉서(SDRAM priority multiplexor: SPM)(370) 및 데이터 경로 제어 논리(380)를 구비한다. 상기 SMC(230)는 또한 해독된 원시 메모리 오퍼레이션들을 수신하기 위해 다음 요청 입력(400)을 구비하고, 상기 해독된 원시 메모리 오퍼레이션들은 상기 MRA(220) 내의 상기 요청 해독기(310)로부터의 상기 다음 메모리요청으로 구성된다. 또한, 상기 SMC(230)는 상기 AQ(340), PQ(350), 또는 RWQ(360)이 사용가능한 엔트리(entry)들을 구비하는지를 상기 MRA(220)에 표시하는 큐 상태 출력(420)을 구비한다. 상기 SMC(230)는 상기 메모리 버스(100)과 연결된 SDRAM 명령 버스 출력(430)과, 상기 데이터 경로 제어 논리(380)과 연결된 데이터 버스 제어 출력(435)을 구비한다. 상기 예인 SMC(230)에서, 상기 AQ(340)과 PQ(350)은 각각 하나의 엔트리 큐이고, 상기 RWQ(360)는 3개의 엔트리 큐이다. 상기 PQ(350)는 최후 2개의 발행된 기-충전 오퍼레이션들을 기억하는 2개의 추가적인 큐 엔트리들(475)을 구비한다. 상기 엔트리들은 하기에 상술되는 바와 같이 타이밍 종속성을 해결하는데 사용되고, 도 4 내지 13에 설명된다.
상기 AQ(340)는 특정 뱅크 또는 CS(76)에 대한 최후의 활성화 오퍼레이션으로부터 사이클의 개수를 측정하는데 사용되는 2개의 일련의 계수기(counter)(480), (485)를 구비한다. 제 1 일련의 계수기(480)는 최후 활성화부터 각 뱅크의 현재 활동 CS(76)까지의 사이클들의 개수를 세는 4개의 계수기들을 구비한다. 상기 계수기들은 새로운 CS(76)으로의 엑세스가 있을 때마다 리세트된다. 제 2 일련의 계수기(485)는 최후 활성화로부터 각 CS(76)까지의 사이클들의 개수를 세는 6개의 계수기를 구비한다. 모든 일련의 계수기(480), (485)는 하기에서 상술되는 바와 같이 상기 큐들 간의 타이밍 종속성을 해결하는데 사용되고, 도 4 내지 13에 상술된다.
상기 메모리 요청자들(210)은 상기 메모리(70)으로의 엑세스를 위해 사기 MRA(220)의 입력들에 대한 다양한 요청들을 한다. 상기 MRA(220)는 상기 SMC(230)으로 전송될 하나의 요청을 선택한다. 상기 큐 제어 논리(300)는 상기 SMA(230)으로부터의 상기 큐 상태 출력(420)에 연결되고, 상기 SMC(230)로 전송되는 하나의 요청이 있는지를 판단한다(하기에서 상술됨). 만약 하나의 요청이 상기 SMC(230)로 전송될 수 있으면, 상기 MRA(220)에 의해 선택된 상기 요청은 상기 요청 해독기(310)로 전송된다. 상기 요청 해독기(310)는 상기 요청을 원시 메모리 오퍼레이션들로 해독하고, 상기 원시 메모리 오퍼레이션들을 상기 다음 요청 입력(400)을 통하여 상기 SMC(230)내의 상기 오퍼레이션 큐(340), (350), (360)으로 전송한다. 상기 예인 SMC(230)에서, 상기 요청 해독기(230)는 조합 논리로 구현된다.
도 3은 큐 제어 논리(300)와 요청 해독기(310)에 의해 실행되는 단계의 상세한 순서도를 도시한다. 상기 MRA(220)는 SMC(230)로 전송될 하나의 메모리 요청을 상기 메모리 요청자들(210)로부터 선택한다(단계(500)). 상기 큐 제어 논리는 상기 AQ(34), PQ(350), RWQ(360)이 가득 찼는지를 지속적으로 검사한다(단계(510)). 소정의 메모리 요청에 대하여, 만약 상기 요청을 위해 필요한 원시 메모리 오퍼레이션들을 위한 각 오퍼레이션 큐에서 적어도 하나의 큐 엔트리가 사용가능하다면, 상기 오퍼레이션 큐들은 가득 차지 않았다. 만약 상기 오퍼레이션 큐들이 가득 찼다면, 흐름은 단계(500)으로 간다. 만약 상기 큐들이 가득 차지 않았으면, 상기 요청 해독기(310)는 다음 요청을 수용한다(단계(520)). 상기 요청 해독기(310)가 상기다음 요청을 필요한 원시 오퍼레이션들로 해독하고(단계(530)), 적절한 원시 오퍼레이션들을 상기 AQ(340), PQ(350), RWQ(360)으로 (단계 (540) 내지 (570))상기 다음 요청 입력(400)을 통하여 넣는다. 만약 다음 요청이 PMc이면(단계(540)), 활성화오퍼레이션은 생성되고 상기 AQ(340)으로 저장되고(단계(580)), 기-충전 오퍼레이션은 생성되고 상기 PQ(350)으로 저장되고(단계(590)), 판독/기록 오퍼레이션은 생성되어 상기 RWQ(360)으로 저장된다(단계(600)). 다음 요청이 PMb이면(단계(550)), 활성화 오퍼레이션이 생성되어 AQ(340)에 저장되고(단계(580)), 판독/기록 오퍼레이션이 생성되어 상기 RWQ(360)에 저장된다(단계(600)). 만약 상기 다음 요청이 PH이면(단계(560)), 판독/기록 오퍼레이션이 생성되어 상기 RWQ(360)에 저장된다(단계(600)). 만약 상기 다음 요청이 기-충전(단계(570))이면, 기-충전 오퍼레이션이 생성되어 상기 PQ(350)에 저장된다(단계(590)). 또한, 모조 플레이스홀더 (placeholder) RWQ(360) 엔트리가 상기 RWQ(360)에 저장된다(단계(600))(하기 참조). 모든 적절한 오퍼레이션들이 생성되고 저장된 후, 흐름은 단계(500)으로 간다.
도 2를 다시 보면, 상기 오퍼레이션 큐들의 각각과, AQ(340), PQ(350) 및 RWQ(360)은 상기 SPM(370)에 연결된다. 상기 PQ(350) 및 RWQ(360)은 또한 상기 RWCQ(365)에 연결된다. 각 오퍼레이션 큐(340), (350), (360)은 상기 메모리 요청을 개시하기 위해서 상기 메모리 버스(100) 상에서 넣어진 오퍼레이션들을 시도하고 발행하기 위해 독립적으로 동작한다. 또한, 각 오퍼레이션 큐(340), (350), (360)은 타이밍 및 순서(ordering) 종속성으로의 엄격한 의존을 담당하고, 상기 종속성들이 충족된 때 오퍼레이션을 발행할 수 있다. 상기 SPM(370)은 상기 메모리(70)으로 전송될 오퍼레이션을 선택하고 전송한다. 하나 이상의 큐가 오퍼레이션을 전송하고자 하는 때, 상기 SPM(370)은 하나의 오퍼레이션을 선택하여야 한다. 상기 예인 SMC(230)에서, 상기 SPM(370)은 하이(hi) 우선으로 표시된 PQ(350) 엔트리들은 일반적인 PQ(350) 엔트리들에 우선하는 AQ(340) 엔트리들에 우선하는 RWQ(360)에 우선하는 때 우선 기반 선택(priority based selection)을 구현한다. 상기 오퍼레이션 큐들(340), (350), (360)은 서로서로 또한 상기 RWCQ(365)와 상호연결되고, 이는 서로 타이밍과 순서에 종속하는 오퍼레이션 큐들(340), (350), (360)에서 오퍼레이션들을 추적하고 적절하게 현재적으로 발행하도록 하기 위함이다. 일단 상기 메모리 요청이 개시되면, 상기 RWCQ(365)는 상기 메모리(70)으로 전송되는 미해결된 판독 또는 기록 오퍼레이션의 추적을 담당한다. 상기 RWCQ(365)는 또한 상기 오퍼레이션 큐들(340), (350), (360)과 연결되고, 역사적(historical) 오퍼레이션에대한 필요한 정보를 제공하여, 상기 오퍼레이션 큐들이 타이밍 및 순서 종속성들이 과거의 오퍼레이션들과 관련되어 충족되는 때를 판단할 수 있도록 한다.
상기 RWCQ(364)는 유효 판독 큐(valid read queue: VRd)(450), 유효 기록 큐(valid write queue: VWr)(455) 및 제어 논리(control logic)(460)을 구비한다. 상기 예인 SMC(230)에서, 상기 VRd(450)는 12개의 엔트리 깊이이고, 상기 VWr 큐(455)는 8 엔트리 깊이이다. 상기 큐들은 하부 엔트리를 상기 큐의 밖으로 이동시킴과 함께 각 클록 사이클에서 상기 큐들의 엔트리들을 아래로 이동시킨다. 상기 VRd(450)는 최후 2개의 빼내어진 엔트리들을 기억하기 위해 2개의 추가적인 큐 슬롯(470)을 제공하고, 상기 VWr은 최후에 빼내어진 엔트리를 기억하기 위해 하나의 추가적인 큐 슬롯(465)을 제공한다. 상기 엔트리들은 하기에 상술되고 도 4 내지13에서 개시되는 바와 같이, 특정 종속성 발행(issue)을 해결하는 때, 상기 오퍼레이션 큐들(340), (350), (360)에 의한 사용을 위해 제공된다. 예를 들면, 상기 PQ(350)는 현재 사용중인 상기 CS(76) 이나 뱅크를 기-충전하기 않기 위해, 기-충전 오퍼레이션을 전송하기 전에, 상기 제 2 추가적인 VRd 슬롯(465)와 추가적인 VWr 큐 슬롯(470)을 조사하여야 한다.
판독 오퍼레이션이 상기 SPM(370)에 의해 상기 메모리(70)로 전송된 때, 상기 제어 논리(465)는 상기 데이터가 복귀하기 시작한 때 장래에서의 사용을 위해 제어 신호들을 상기 VRd(450)에 부가한다. 기록 오퍼레이션이 상기 SPM(370)에 의해 상기 메모리(70)으로 전송된 때, 상기 제어 논리(465)는 상기 메모리가 기록될 상기 데이터를 수신할 준비를 한 때, 장래에서의 사용을 위해 제어신호들을 VWr(455)에 부가한다. 각 큐의 하부 엔트리는 현재 사이클에서의 상기 SDRAM 버스(100)의 상태와, 상기 상태를 처리하는 필요한 제어 신호들을 나타낸다. 각 사이클에서, 상기 VRd(450)과 VWr(455)는 아래로 이동함으로, 현재 사이클 동안의 적절한 제어 신호들은 상기 하부 큐 엔트리로 진입하고, 상기 SMC(230)과 데이터 경로 제어 논리(380)에서의 적잘한 동작들을 제어하기 위해 전송된다. 상기 SDRAM CAS 대기 시간이 3 사이클인 경우에 8 쿼드 워드 판독 오퍼레이션이 그 예이다. 상기 판독 오퍼레이션의 상기 SPM(370)에 의한 전송시에, 상기 VRd(450)의 상부 8개의 엔트리들은 상기 판독 데이터가 상기 메모리(70)로부터 들어오기를 시작한 때, 상기 판독 데이터의 각 쿼드 워드를 처리하기 위한 적절한 제어 신호들과 함께 상기 제어 논리(465)에 의해 부여된다. 다음 3개의 엔트리들은 활동없음을 나타내는제어 신호들로 설정된다. 최후 엔트리는 하부 엔트리이고, 어떤 오퍼레이션이 현재 발생하든지 유지한다. 각 사이클에서, 상기 엔트리들은 아래로 이동한다. 3개의 CAS 대기 시간으로, 상기 판독 오퍼레이션의 전송을 따르면서 상기 메모리로부터 들어오기 시작하기 전에 3 사이클이 걸린다. 상기 3 사이클 동안에, 활동없음을 나타내는 상기 제어 신호들은 밖으로 이동된다. 3 사이클 이후, 상기 판독 제어 신호들은 상기 하부 큐로 이동되어지고, 상기 메모리(70)으로부터 도착되는 상기 데이터를 준비할 것이다. 각 사이클에서, 각 쿼드 워드가 들어올 때, 상기 적절한 제어 신호들은 사용가능할 것이다. 상기 방법으로, 상기 RWCQ(365)는 상기 오퍼레이션 큐들(340), (350), (360)에 의해 개시되었던 상기 메모리 요청을 완성한다.
표1은 상기 메모리(70)으로 오퍼레이션들을 전송할 때 각 오퍼레이션 큐들이 의존하는 SDRAM 타이밍 변수 및 종속성들을 나열한다. 상기 표는 타이밍 변수를 나타내고, 오퍼레이션 큐는 상기 타이밍 요구, 예상되는 대기 시간 및 상기 요구의 설명을 충족시키는 것을 담당한다. 상기 예측된 대기 시간 변수들은 2 사이클 및 3 사이클들의 열 주소 스트로브(Column Address Strobe: CAS 또는 Tcl) 타이밍을 위해 도시된다. 상기 타이밍 변수들은 상기 제조업자에 의해 제공되는 바와 같이, 상기 메모리(70)에 설치된 특정 SDRAM 칩의 엑세스 특성을 기반으로 한다. 예를 들면, 상기 AQ(340)는 기-충전을 따르는 활성화를 전송하기 전에, Trp를 기다리는 것을 담당한다. Trp는 뱅크를 기-충전시키는 것과 동일 뱅크를 후속하여 활성화시키는 것의 사이에 상기 SDRAM 칩에 의해 요구되는 지연이다.
표2는 각 오퍼레이션의 하이 레벨 순서 종속성들을 나열하고, 각 큐들이 찾아야 하는 역사적인 오퍼레이션들을 나열한다. 상기 표는 요청 카테고리(또는 시나리오), PH, PMb, PMc, Pre를 도시한다. 각 카테고리에서, 상기 표는 상기 요청이 역사적인 (이전에 전송된) 기-충전, 활성화 또는 판독/기록 오퍼레이션들에 의존하는지를 나타낸다. 상기 표는 어떤 원시 오퍼레이션들이 각 카테고리 동안에 넣어지는지를 나타낸다.
표3은 상기 큐 순서 종속성들을 상세히 나타낸다. 상기 표는 각 오퍼레이션 큐에 대한 종속성들을 나열하고 상기 종속 오퍼레이션을 전송하기 위해 상기 오퍼레이션 큐가 상기 종속성을 해결하는 방법을 나열한다. 예를 들면, 기-충전 오퍼레이션은 완성되는 CS에 대한 판독/기록 오퍼레이션들을 앞서는 것에 의존한다. 상기 PQ(350)는 상기 기-충전이 상기 PQ(350)으로 넣어진 때, 상기 MRA(220) 내의 상기 요청 해독기(310)으로하여금 모조 판독/기록 오퍼레이션을 상기 RWQ(360)으로 부가하도록 함으로써 상기 종속성을 해결한다. 상기 기-충전 오퍼레이션은 상기 모조 판독/기록에 얽매여서 상기 RWQ(360)가 상기 모조 오퍼레이션(어느 동작을 수행함이 없이 단순하게 빼내어지는)을 전송하기까지 발행하기 않을 것이다. 상기 RWQ(360)는 넣어진 판독/기록 오퍼레이션들은 순서에 따라 전송하고, 그럼으로써 일단 상기 RWQ(360)이 상기 모조 판독/기록 오퍼레이션을 삭제하면, 상기 PQ(350)은 모든 선행하는 판독/기록들이 완료되었음에 틀림이 없기 때문에, 상기 기-충전을 마음대로 전송한다.
표 4내지 10은 상기 큐들 각각과, 각 큐를 위한 각 큐 엔트리의 필드들에 의해 생성된 중요한 신호들을 나열한다. 각 필드에서, 도4, 6, 8, 및 10은 상기 필드에 저장된 정보의 설명과 필드명을 나열한다. 각 오퍼레이션 큐에서, 도 5, 7, 및 9는 상기 오퍼레이션에 의해 생성된 신호들과, 상기 신호의 목적 및 상기 신호들이 생성된 방법을 나열한다. 예를 들면, 상기 RWQ(360)는 상기 모조 판독/기록 엔트리가 상기 큐의 하부에 도달한 때, 상기 PQ(350)을 구별하는 RWQ_Pre로 불리는 상기 PQ(350)으로의 신호를 생성한다. 그럼으로써 상기 PQ(350)의 판독/기록 순서 종속성을 해결하여 상기 기-충전 오퍼레이션을 전송할 수 있다. 상기 신호는 하부 RWQ(360) 큐 엔트리의 PRE 및 PMc 필드의 "논리합(or)" 함수에 의해 생성된다. 상기 큐들내의 몇몇 필드들은 소정의 타이밍 종속성들을 해결하는데 사용되는 실제적인 계수기들이다. 예를 들면, 상기 RWQ(360)에서, Trcd_Cnt라는 필드가 있다. 상기 필드는 상기 AQdep 필드에 응답한다. 상기 필드들은 활성화 오퍼레이션을 요구하는 판독/기록 오퍼레이션 동안에 상기 판독/기록이 필요한 활성화 오퍼레이션이 완성되기 전에 상기 메모리로 전송되지 않기를 확인하기 위해 서로 결합한다. Trcd_Cnt는 상기 RWQ(360)이 넣어진때, Trcd의 값으로 부여되는 카운트 다운 계수기로, 상기 계수기의 값이 0이상인 동안에 상기 RWQ(360)의 발행을 방지한다. 상기 AQdep가 삽입되는 동안에, Trcd_Cnt는 계수하지 않을 것이고, AQdep는 상기 SPM(370)이 상기 AQ(340)으로부터 활성화 오퍼레이션을 수용한 때, 삭제된다. 상기 계수기가 0이면, 상기 Trcd 종속성은 상기 활성화로 충족되고, 상기 판독/기록 오퍼레이션은 상기 데이터 전송을 개시하도록 전송될 수 있다.
SDRAM 타이밍 변수들
타이밍 변수 타이밍을 충족시킬 책임이 있는 것 CAS=3인 때의 값(클록 사이클들) CAS=2인 때의 값(클록 사이클들) 설명
Tcl=Taa=CAS RWQ 3 2 CAS 대기시간. 이것은 얼마나 많은 사이클들이 활성화 또는 데이터의 판독에 소요되는지를 통시하는 기본적인 타이밍 개수이다.-이 변수는 어떤 변수들이 남아있을지를 판단한다. 버퍼된 SDRAM을 위해 Tcl=4를 지원할 필요.
Trdc RWQ 3-2 2 RAS에서 CAS 대기시간. 활성화로부터 판독/기록 명열의 지연
Trc AQ 8-7 5-7 뱅크 사이클 시간-활성화로부터 동일 뱅크의 활성로의 최소시간. 또는 활성화로의 자동 리프레쉬(모드 레지스터 세트 명령)
Tras PQ 5 3-5 최소 뱅크 활동 시간-활성화로부터 동일 뱅크의 기-충전으로의 시간
Trp AQ 3 2 기-충전 시간-기-충전 명령으로부터 뱅크가 활성화되거나 (모드 레지스터 세트 또는 리프레쉬) 다시 될 수 있는 때까지의 시간
Trw RWQ 1/3 1/3 자신의 타이밍 변수-얼마나 많은 NOP 사이클이 Rd와 WR사이에 존재하는지와 데이터 버스가 최후의 판독 데이터 이전에 3지역과 연결될 필요가 있는 때에 대한 R->W를 명령한다. 한정될 수 없음.
Tprer=(Tcl-1) PQ 2 1 기-충전이 삽입될 수 있는 최후의 하나로부터 계수하는 데이터. 예를 들면, Tprer=2는 기-충전이 유효 데이터 판독의 두번째와 동시에 삽입될 수 있다는 것을 의미. 한정될 수 없음-판독을 제외하고는 하기의 Tdpl와 유사.
Tdpl=Twr PQ 2 1-2 기-충전으로의 데이터 입력- 최후의 유효 기록 데이터로부터 기-충전의 삽입까지의 시간
Tdimm RWQ 1 1 PM을 위한 DIMM 반환 시간 동안의 1 사이클. 한정될 수 없음
Tdal AQ 5 3 활성/리프레쉬로의 데이터 입력-동일 뱅크의 활성화되는 최후 데이터-Tprer, Tdpl 및 Tpr의 조합- SMC에서 사용되지않음
Trrd AQ 2 2 동일 슬롯 지연 시간에서의 뱅크에서 다른 뱅크-동일 슬롯내의 2 뱅크를 활성화시키는 것으로 인한 지연. 한정될 수 없음
Tccd RWQ 1 1 CAS에서 CAS 지연 시간-1 명령을 삽입함으로부터 다음으로의 시간-항상 1이라 한정할 수 없음
Twl RWQ 0 0 판독 대기 시간-한정할 수 없음-항상 임시라 가정
Tdqw RWQ 0 0 DQM 기록 마스크 대기 시간-한정할 수 없음-항상 임시라 가정
Tdqz RWQ 2 2 DQM 데이터 디스에이블 대기 시간-한정할 수 없음-CAS 대기 시간과 동일한 것으로 가정
하이 레벨 종속성
요청 카테고리 역사적 기-충전에 의존- Tras, Tprer, Twr?/PQ 엔트리? 역사적 활성화에 의존-Trc, Trp, Tdal, Trrd?/AQ 엔트리? 역사적 RW-Tcl, Trcd, Trw, Tdimm, Tccd, Twl, Tdqw, Tdqz?/RWQ 엔트리?
PH 아니오/아니오 아니오/아니오 예/예
PMb 예/아니오 예/예 예/예
PMc 예/예 예/예-PQ 엔트리와는 별개 예/예
Pre 예/예 예/아니오 예/아니오-기-충전되는 것이 필요한 뱅크 또는 최후 데이터 기록이 완성될 때까지 기다려야 함
큐 발행(issue) 종속성
PQ 종속성 PQ 종속성 해결 AQ 종속성 AQ 종속성 해결 RWQ 종속성 RWQ 종속성 해결
앞서는 RWQ 엔트리 RWQ의 하부에 도달한 때 상기 종속성을 해제시키는 RWQ 플레이스홀더를 부가하기 Trc-이전의 활성화 역사적 활성화 계수가 충족되어야 함 Trcd 만약 NxtReq PMc 또는 PMb이면 요청 해독기에 의해 설정된 AQ 종속성-Trcd는 AQ가 발행된 후에 충족되어야 한다
PQ-RWQ는 동시에 발행하기를 원한다. RWQ는 PQ가 더 높은 우선을 구비한 경우에 <8QW PMc의 경우를 제외하고, 항상 더 높은 우선을 구비한다 Trp 역사적 기-충전 계수가 충족되어야 한다 RWCQ-Trw, Tdimm, Tdqw, Tdqz, Tcl RWQ가 RdyToGo인지를 확인하기 위해 RWCQ 내의 적절한 비트들을 검사
Tras 역사적 활성화 계수가 충족되어야 함 Trrd 1개의 활성화 큐 엔트리만으로 인하여 자동적으로 충족됨
RWCQ-Tprer, Twr PQ가 RdyToGo인지를 확인하기 위해RWCQ내의 적절한 비트들을 검사
PMc동안에 CS를 정정 MRA가 Pre CS를 제공
필드 설명
V 유효 RWQ 엔트리. BIU 스눕(snoop)에 의해 삭제가 가능
Trcd_Cnt[2:0] Trcd는 AQ 필트 세트를 가진 엔트리가 가장 오래된 엔트리(RWQ[0])에 진입할 때마다 Config_Trcd로 초기화된다. 상기 필드는 트랜잭션이 대기하여야 하는 사이클들의 개수에 대응하는 1들로 초기화된다. Aqdep가 삭제되는 사이클마다 상기 필드는 우측으로 이동되고 상기 엔트리는 Trcd_Cnt[0]=0일 때까지 상기 SDRAM 버스 상으로 위치될 수 없다. 활성화를 요구하는 판독/기록 오퍼레이션들이 상기 활성화가 완성된 후 발행하는 것을 확인
PQDep 대응 PQ 엔트리가 발행할 때까지 RWQ 엔트리가 발행하는 것을 방지
Aqdep 활성화 RWQ 종속성. 이 필드는 PMc 및 PMb동안의 SMC_AQ 신호와 MRA 요청들에 의해 설정되고, 활성화 트랜잭션이 AQ 허용 신호에 의해 폐기되는 때마다, 즉, 상기 SPM에 의해 허용되는 때마다 제거된다
PMc 이 필드를 가진 엔트리가 상기 RWQ의 하부에 진입한 때, 지금 진행할 수 있는 PQ를 전성하고, 이 필드는 삭제되어야 한다. 이 필드는 PQ와 RWQ를 동기화하는 데 사용된다. 또한 대기시간의 여분 사이클에 1을 부가함으로써 판독/기록이 새로운 CS로 진행하도록 한다
Pre 이 필드를 가진 엔트리가 상기 RWQ의하부에 진입한 때, 지금 진행할 수 있는 PQ를 전송하고 이 엔트리는 상기 RWQ에서 플레이스홀더로서 작용하고 유효 판독 또는 기록을 나타내지 않기 때문에 다음 사이클에서 밖으로 이동된다
BL[2:0] 버스트 길이:000=1QW; 001=2QW; 010=3QW;011=4QW; 100=5QW; 101=6QW; 110=7QW; 111=8QWNxtReq BL[2:0]에 의해 설정
CS[7:0] 트랜잭션이 요구하는 CS를 판단NxtReq CS[7:0]
R 판독/기록:1=판독NxReq R에 의해 설정
ID[7:0] 보다 상세한 설명을 위해 IGID 설명을 참조NxtReq[4:0]에 의해 설정
Col[14:0] 트랜잭션이 요구하는 뱅크와 열을 판단NxtReq Col[14:0]에 의해 설정
ECC ECC=SMC_ECC= NxtReq_PartialWr&Config_ECC.판독 동안에 상기 필드는 SDRAM 데이터를 ECC 병합 버퍼(merge buffer)로 저장하는 MDP를 구별기록 동안에 상기 필드는 입력되는 기록 데이터를 상기 ECC 병합 버퍼와 병합하는 상기 MDP를 구별하고(입력되는 기록 데이터 바이트의 인에이블에 따라) 상기 SDRAM 데이터 버스상에서 상기 병합된 데이터를 사용한다.
RWQ 신호들
신호명 목적 방정식(equation)
RWQ_Pre 대응하는 RWQ 엔트리가 상기 큐의 하부에 도달함을 PQ에게 알림 RWQ0_Pre 논리합(OR) RWQ0_PMc(PMc 필드는 상기 RWQ의 하부에 도달한 후 1 사이클에서 제거되어야 한다
RWQRdyToGo RWQ가 유효 트랜잭션을 상기 SDRAM 명령 버스로 위치시킴을 SPM에게 알림 RWQ0_Valid 논리곱(AND) 부정(not) RWQ0_Pre(모조 플레이스홀더 엔트리가 아님) 논리곱(AND) 설정되지 않은 RWQ0_PMC(RWQ 우선을 폐기하기 위해 PQ 시간을 부여하는 것) 논리곱(AND) RWCQ 데이터 충돌이 없음(판독 또는 기록 트랜잭션이 이미 발행된 트랜잭션들과 데이터 충돌이 없을 것이다)
AQ 필드들
필드 설명
V 유효 AQ 엔트리. 이 필드는 입력되는 NxtReq V 신호에 의해 설정된다
CS[7:0] 트랜잭션이 요구하는 CS를 판단NxtReq CS[7:0]에 의해 설정
Bank[1:0] 트랜잭션이 요구하는 뱅크NxtReq Bank[1:0]에 의해 설정
Row[14:0] 트랜잭션이 요구하는 뱅크와 열을 판단NxtReq Row[14:0]에 의해 설정
AQ 신호들
신호명 목적 방정식
AQRdyToGo AQ가 유효 트랜잭션을 상기 SDRAM 명령 버스 상으로 위치시킴을 SPM에게 알림 AQ가 유효 논리곱(AND) Trc 지연이 충족(LastActToBank>Trc & LastActToCS>Trc) 논리곱(AND) Trp 지연이 충족(LastPreBank>Trp). LastPreBank는 PQ로부터 유래하고 최후 2 사이클에서 발행된 기-충전 동안에 CS 및 Bank와 통신한다.
LastActToBank0-3 소정의 뱅크로의 마지막 활성화로 인하여 사이클의 개수를 추적 리세트 계수기는 SPM마다 상기 특정 뱅크의 다음 AQ 엔트리를 수용한다
LastActToCS0-5 소정의 CS로의 마지막 활성화로 인하여 사이클의 개수를 추적 리세트 계수기가 SPM마다 상기 특정 CS의 다음 AQ 엔트리를 수용한다
PQ 필드들
필드 설명
V 유효 AQ 엔트리. 이 필드는 입력되는 NxtReq V 신호에 의해 설정된다.
CS[7:0] 트랜잭션이 요구하는 CS를 판단NxtReq CS[7:0]에 의해 설정
Bank[1:0] 트랜잭션이 요구하는 뱅크를 판단NxtReq Bank[1:0]에 의해 설정
A10 A10-모든 뱅크들을 기-충전. 이것은 PMc와 PC 동안의 경우이다. 우연한 기-충전은 이 비트를 설정하지 않을 것이다
RWQdep PQ는 상기 RWQ 내의 대응하는 엔트리가 RWQ의 큐의 하부에 도달하기 까지 발행될 수 없다. 그럼으로써 가능한 CS 및 뱅크 충돌의 경우에 상기 전체 RWQ에 대한 검사과정을 제거한다.
HiPrio 이 필드는 선행하는 요청에 대한 버스트 길이가 <8QW인 때, PMc 동안에 설정된다. 이것은 이전 트랜잭션이 정확하게 종료되었음을 확인한다.
PQ 신호들
신호명 목적 방정식
PQRdyToGo PQ가 유효 트랜잭션을 상기 SDRAM 명령 버스로 놓여짐을 SPM에게 알림 PQ가 유효 트랜잭션을 구비함 논리곱(AND) RWQdep가 충족됨 논리곱(AND) RWCQ 데이터 충돌이 없음(기-충전은 현재 미결인 데이터 요청들을 방해하지 않을 것이다) 충족된 Tras 타이밍(LastActToBank> Tras & LastActToCS > Tras)
PQ_A10 CS 또는 선택된 뱅크 내에서의 모든 뱅크를 기-충전하는지를 SPM에게 알림 PQ_A10 필드
PQHiPrio PQ가 이 엔트리에 대한 RWQ 또는 AQ보다 더 높은 우선을 구비함을 SPM에게 알림 PQHiPrio 필드
LastPreBank0_1 최후 2 사이클 동안 기-충전을 기록-Trp 타이밍 종속성을 결정하기 위해 AQ에 의해 사용됨 매 사이클마다 PQ로부터 아래로 이동됨- 만약 SPM이 PQ 엔트리를 수용하면 유효하고, 그렇지 않으면 이동된 엔트리는 무효임.
RWCQ 필드들
필드 설명
VRd 유효 판독-SDRAM 판독 데이터는 이 엔트리가 RWCQ[0]에 도달한 때 유효할 것이다. ACK는 WRd[1]가 삽입될 때마다 삽입된다.-ACK은 Tcl에 예민하다. 이 필드의 큐 깊이는 버스트 길이와 CAS 대기 시간을 기준으로 한다. 8쿼드워드에이르는 버스트 길이와 3사이클에 이르는 CAS 대기시간 동안, 이 큐는 12 엔트리 깊이가 되어야 한다(현재 사이클 엔트리를 포함)
NoAck 이 비트는 만약 킬(kill) 신호가 이 요청을 일찍 종료시키면 설정된다. 이 필드의 큐 깊이는 5이다.
FirstRdQW 요청의 제 1 쿼드워드가 발행되었던 메모리 요청자들로의 제어 신호. 이 필드의 큐 깊이는 5이다
DQM 이 필드는 사용되지 않을 때 상기 데이터 버스를 3등분하기 위해 디폴트로 삽입된다. 판독 및 기록은 상기 DQM 필드가 정확하게 제거되었는가를 확인하여야 한다(판독 이전에 2 클록, 기록 동안에 동일 클록). 이 필드의 큐 깊이는 9이다
VWr 유효 판독. SDRAM 기록 데이터는 이 엔트리가 RWCQ[0]에 도달한 때 유효일 것이다.-REQ는 이 VWr[1]이 삽입될 때마다 삽입되어야 한다-기록 데이터가 SDRAM에 의해 요구되기 전에 1사이클에 삽입되는 REQ 신호를 생성하기 위해. 이 필드의 큐 깊이는 상기 SDRAM 에서 구성된 버스트 길이에 의존한다. 8쿼드워드에 이르는 버스트 길이 동안에, 상기 큐 깊이는 8 엔트리이어야 한다(현재 사이클 엔트리를 포함)
ID[7:0] 트랜잭션을 위한 ID-데이터 이동 동안에 필요한 목적지 또는 출발지를 정의. 각 VRd 엔트리에 대한 1 큐 엔트리가 있을 때 상기 큐내의 상위 8개의 엔트리들이 동일할 것이고, 따라서 이 큐는 단 4개의 엔트리를 구비한다.
CS[7:0] 트랜잭션을 위한 CS-문제가 발생하는 CS를 기록하기 위해 ECC 에러가 검출된 때 필요. 각 VRd 엔트리에대한 1 큐 엔트리가 있을 때, 상기 큐내의 상위 8개의 엔트리는 동일할 것이고, 따라서 이 큐는 단 4개의 엔트리들을 구비한다.
Bank[1:0] 트랜잭션을 위한 뱅크-문제가 발생한 뱅크를 기록하기 위해 ECC 에러가 검출된 때에 필요. 각 VRd 엔트리에 대해 1개의 큐 엔트리가 있을 때, 상기 큐 내의 상위 8개의 엔트리들이 동일할 것이고, 따라서 이 큐는 단 4개의 엔트리들을 구비한다.
ECC 판독 동안, 이 필드는 판독 데이터가 ECC 병합 버퍼로 이동되도록 한다. 기록 동안, 이 필드는 상기 데이터를 입력되는 기록 데이터와 함께 상기 병합 버퍼에 병합시킨다(입력되는 바이트 인에이블에 따라)
상기 오퍼레이션 큐들(340), (350), (360) 각각은 오퍼레이션 요청자들이다. 오퍼레이션 요청자는 타이밍과 순서 종속성들이 충족된 오퍼레이션을 구비한다고 판단하는 때마다, 상기 요청자는 신호를 상기 SPM(370)으로 삽입한다. 상기 신호는 전송 준비가 된 오퍼레이션이 있음을 상기 SPM(370)에게 알린다. 하나 이상의 오퍼레이션 요청자가 오퍼레이션을 전송할 준비가 된 때, 상기 SPM(370)은 가장 높은우선을 가진 하나의 오퍼레이션을 선택한다. 그때 상기 SPM(370)는 상기 오퍼레이션이 수용되었음과, 상기 요청자가 상기 오퍼레이션을 빼낼 수 있음을 나타내기 위해 상기 수용된 요청자에게 신호를 다시 전송한다. 일단 수용되면, 상기 오퍼레이션은 상기 메모리 버스(100)을 통하여 상기 메모리(70)으로 전송된다.
판독 또는 기록 오퍼레이션이 상기 RWQ(360)으로부터 전송된 때, 상기 RWCQ(365)는 미결인 오퍼레이션을 반영하기 위해 적절하게 부여되어, 상기 오퍼레이션이 완전하게 완성될 수 있다. 상술된 바와 같이, 상기 RWCQ(365)는 상기 메모리 버스(1000의 현재 상태 동안 적절한 제어 신호들을 보유하는 하부 엔트리로 자신의 엔트리들을 아래로 이동시키거나 자신의 큐들의 밖으로 이동시킨다.
상기 방법으로, 각 오퍼레이션 큐는 타이밍 및 순서 종속성들을 해결할 수 있고, 메모리 요청들을 개시하기 위해 독립적으로 오퍼레이션들을 발행할 수 있다. 또한, 상기 제어 큐는 장래 활동을 위한 기-설정 제어 정보에 의해, 또한 정확한 신간에 적절한 제어 신호들을 전송하는 단순한 이동 큐 구조를 활용함으로써 상기 메모리 요청을 쉽게 완성할 수 있다. 그럼으로써 상기 메모리 버스의 최적 활용을 통하여 최대 성능이 가능하다. 또한, 상기 단순한 큐 구조는 덜 복잡한 설계를 가능하게 하여 상기 게이트 수, 설게 에러 회수 및 설계 시간/비용의 감소를 가능하게 하며, 논리의 속도를 증가시킨다. 또한, 상기 단순한 큐 구조는 상기 큐 크기 또는 큐 엔트리 필드 내용을 단순하게 변경시킴으로써 다양한 메모리 아키텍쳐를 처리할 수 있는 유동적인 설게를 제공한다.
상술된 상세한 설명은 한정을 위한 것이 아니라 설명을 위한 것이고, 모든균등물을 포함하는 하기의 특허청구범위는 발명의 범위를 한정하도록 의도된다.

Claims (29)

  1. 컴퓨터 메모리(70)로의 메모리 요청들을 실행하는 장치에 있어서, 상기 장치는:
    메모리 요청을 수신하도록 되어 상기 메모리 요청을 적어도 하나의 원시 메모리 오퍼레이션으로 해독하는 요청 해독기(310)와;
    상기 요청 해독기(310)에 연결되어 상기 컴퓨터 메모리(70)으로의 전송을 위해 적어도 하나의 원시 메모리 오퍼레이션을 저장하도록 된 적어도 하나의 오퍼레이션 큐(340, 350, 360)와;
    상기 적어도 하나의 오퍼레이션 큐(340, 350, 360)와 상기 컴퓨터 메모리(70)에 연결되어 상기 적어도 하나의 오퍼레이션 큐(340, 350, 360)로부터 상기 적어도 하나의 원시 메모리 오퍼레이션을 빼내어 상기 메모리 요청을 개시하기 위해 상기 컴퓨터 메모리(70)로 상기 적어도 하나의 원시 메모리 오퍼레이션을 전송하도록 된 멀티플렉서(370) 및;
    상기 적어도 하나의 오퍼레이션 큐(340, 350, 360)와 상기 컴퓨터 메모리(70)에 연결되어 상기 메모리 요청을 완성하도록 된 적어도 하나의 제어 큐(365)를 구비하는 것을 특징으로 하는 컴퓨터 메모리로의 메모리 요청들을 실행하는 장치.
  2. 제 1 항에 있어서, 상기 적어도 하나의 오퍼레이션 큐(340, 350, 360)는 상기 적어도 하나의 오퍼레이션 큐(340, 350, 360)이 상기 적어도 하나의 원시 메모리 오퍼레이션을 상기 컴퓨터 메모리(70)으로 전송할 준비가 되었음을 나타내는 상기 멀티플렉서(370)에 대한 준비 신호를 생성하도록 되고, 또한 상기 멀티플렉서(370)는 상기 준비 신호에 응답하는 것을 특징으로 하는 컴퓨터 메모리로의 메모리 요청들을 실행하는 장치.
  3. 제 2 항에 있어서, 상기 적어도 하나의 원시 메모리 오퍼레이션은 종속적 순서 데이터를 구비하고, 또한 상기 적어도 하나의 오퍼레이션 큐(340, 350, 360)는 상기 종속적 순서 데이터로부터 상기 준비 신호를 생성하는 것을 특징으로 하는 컴퓨터 메모리로의 메모리 요청들을 실행하는 장치.
  4. 제 3 항에 있어서, 상기 적어도 하나의 제어 큐(365)는 상기 적어도 하나의 오퍼레이션 큐(340, 350, 360)에 대한 종속성 신호들을 생성하도록 되고, 또한 상기 적어도 하나의 오퍼레이션 큐(340, 350, 360)는 상기 종속성 신호들로부터 상기 준비 신호를 생성하는 것을 특징으로 하는 컴퓨터 메모리로의 메모리 요청들을 실행하는 장치.
  5. 제 1 항에 있어서, 상기 적어도 하나의 오퍼레이션 큐(340, 350, 360)와, 상기 멀티플렉서(370) 및 상기 적어도 하나의 제어 큐(365)는 오퍼레이션 종속성 데이터를 공유하기 위해 상호연결되고, 또한 상기 적어도 하나의 오퍼레이션 큐(340,350, 360)와 상기 멀티플렉서(370)는 상기 오퍼레이션 종속성 데이터에 응답하는 것을 특징으로 하는 컴퓨터 메모리로의 메모리 요청들을 실행하는 장치.
  6. 제 1 항에 있어서, 상기 멀티플렉서(370)는 우선 선택에 기반을 둔 상기 적어도 하나의 원시 메모리 오퍼레이션을 선택하는 것을 특징으로 하는 컴퓨터 메모리로의 메모리 요청들을 실행하는 장치.
  7. 제 1 항에 있어서, 상기 적어도 하나의 원시 메모리 오퍼레이션은 활성화, 판독/기록 및 기-충전으로 구성되는 것을 특징으로 하는 컴퓨터 메모리로의 메모리 요청들을 실행하는 장치.
  8. 제 7 항에 있어서, 상기 적어도 하나의 오퍼레이션 큐(340, 350, 360)는 활성화 큐(340), 판독/기록 큐(350) 및 기-충전 큐(360)으로 구성되는 것을 특징으로하는 컴퓨터 메모리로의 메모리 요청들을 실행하는 장치.
  9. 제 8 항에 있어서, 상기 적어도 하나의 제어 큐(365)는 판독 제어 큐(450)과 기록 제어 큐(455)로 구성되는 것을 특징으로 하는 컴퓨터 메모리로의 메모리 요청들을 실행하는 장치.
  10. 제 9 항에 있어서, 상기 판독 및 기록 제어 큐(450, 455)는 상기 판독/기록큐(350)에 응답하고, 상기 판독/기록 원시 메모리 오퍼레이션들이 상기 컴퓨터 메모리(70)로 전송된 후, 판독/기록 제어 데이터를 기록하도록 되는 것을 특징으로 하는 컴퓨터 메모리로의 메모리 요청들을 실행하는 장치.
  11. 제 9 항에 있어서, 상기 활성화 큐(340)는 1인 큐 깊이를 구비하고, 상기 판독/기록 큐(350)는 3인 큐 깊이를 구비하고, 상기 기-충전 큐(360)는 1인 큐 깊이를 구비하는 것을 특징으로 하는 컴퓨터 메모리로의 메모리 요청들을 실행하는 장치.
  12. 제 9 항에 있어서, 상기 판독 제어 큐(450)는 12인 큐 깊이를 구비하고, 상기 기록 제어 큐(455)는 8인 큐 깊이를 구비하는 것을 특징으로 하는 컴퓨터 메모리로의 메모리 요청들을 실행하는 장치.
  13. 제 1 항에 있어서, 상기 요청 해독기(310)는 조합 논리로서 구현되는 것을 특징으로 하는 컴퓨터 메모리로의 메모리 요청들을 실행하는 장치.
  14. 제 1 항에 있어서, 상기 요청 해독기(310)는 상기 메모리 요청을 적어도 하나의 원시 메모리 오퍼레이션으로 해독하고, 상기 적어도 하나의 원시 메모리 오퍼레이션을 상기 적어도 하나의 큐(340, 350, 360)로 저장하도록 된 논리에 연결된 적어도 하나의 레지스터를 구비하는 것을 특징으로 하는 컴퓨터 메모리로의 메모리요청들을 실행하는 장치.
  15. 컴퓨터 메모리(70)로의 메모리 요청들을 실행하는 방법에 있어서, 상기 방법은:
    메모리 요청(520)을 수용하는 단계와;
    상기 메모리 요청을 적어도 하나의 원시 메모리 오퍼레이션(530)으로 해독하는 단계와;
    상기 적어도 하나의 원시 메모리 오퍼레이션(580, 590, 600)을 적어도 하나의 오퍼레이션 큐(340, 350, 360)에 넣는 단계와;
    상기 컴퓨터 메모리(70)로의 전송을 위해 상기 적어도 하나의 오퍼레이션 큐(340, 350, 360)로부터 상기 적어도 하나의 원시 메모리 오퍼레이션을 선택하는 단계와;
    상기 적어도 하나의 오퍼레이션 큐(340, 350, 360)으로부터 상기 적어도 하나의 원시 메모리 오퍼레이션을 빼내는 단계와;
    상기 메모리 요청을 개시하기 위해 상기 적어도 하나의 원시 메모리 오퍼레이션을 상기 컴퓨터 메모리(70)로 전송하는 단계와;
    제어 데이터를 적어도 하나의 제어 큐(365)로 넣는 단계와;
    상기 컴퓨터 메모리(365)로의 상기 메모리 요청을 완성하는 단계 및;
    상기 메모리 요청이 완성된 때 상기 제어 데이터를 빼내는 단계를 포함하는 것을 특징으로 하는 컴퓨터 메모리(70)로의 메모리 요청들을 실행하는 방법.
  16. 제 15 항에 있어서, 상기 적어도 하나의 원시 메모리 오퍼레이션과 상기 제어 데이터는 상호-오퍼레이션(inter-operation) 종속성을 구비하고, 상기 선택하는 단계는 모든 상호-오퍼레이션 종속성들이 충족되었는지를 확인하는 단계를 추가적으로 포함하는 것을 특징으로 하는 컴퓨터 메모리(70)로의 메모리 요청들을 실행하는 방법.
  17. 제 15 항에 있어서, 상기 적어도 하나의 원시 메모리 오퍼레이션은 기-충전, 활성화 및 판독/기록을 구비하고, 상기 적어도하나의 오퍼레이션 큐는 기-충전 큐(350)와, 활성화 큐(340) 및 판독/기록 큐(360)을 구비하는 것을 특징으로 하는 컴퓨터 메모리(70)로의 메모리 요청들을 실행하는 방법.
  18. 제 15 항에 있어서, 상기 적어도 하나의 제어 큐(365)는 판독 제어 큐(450)와 기록 제어 큐(455)를 구비하는 것을 특징으로 하는 컴퓨터 메모리(70)로의 메모리 요청들을 실행하는 방법.
  19. 제 17 항에 있어서, 상기 기-충전 큐(350)는 하나의 큐 엔트리로 구성되고, 상기 활성화 큐(340)는 하나의 큐 엔트리로 구성되고, 상기 판독/기록 큐)360)는 3개의 큐 엔트리들로 구성되는 것을 특징으로 하는 컴퓨터 메모리(70)로의 메모리 요청들을 실행하는 방법.
  20. 제 19 항에 있어서, 상기 방법은:
    상기 적어도 하나의 오퍼레이션 큐(340, 350, 360) 중의 적어도 하나의 엔트리가 사용가능함을 검출하는 단계를 추가적으로 포함하고, 상기 적어도 하나의 원시 메모리 오퍼레이션을 넣는 단계는 사용가능한 큐 엔트리를 검색하는 단계를 추가적으로 포함하는 것을 특징으로 하는 컴퓨터 메모리(70)로의 메모리 요청들을 실행하는 방법.
  21. 메모리 요청을 수신하고, 컴퓨터 메모리(70)로의 상기 메모리 요청을 완성하는 큐 기반 메모리 컨트롤러(230)에 있어서, 상기 컨트롤러(230)는:
    적어도 하나의 원시 메모리 오퍼레이션을 보유하기 위한 적어도 하나의 큐 엔트리를 구비하는 적어도 하나의 오퍼레이션 큐(340, 350, 360)과;
    상기 메모리 요청을 수신하여 상기 메모리 요청을 상기 적어도 하나의 원시 메모리 오퍼레이션으로 해독하고, 또한 상기 적어도 하나의 원시 메모리 오퍼레이션을 상기 적어도 하나의 오퍼레이션 큐(340, 350, 360)로 저장하도록 된 요청 해독기(310)와;
    상기 적어도 하나의 오퍼레이션 큐(340, 350, 360)과 상기 컴퓨터 메모리(70)에 연결되고, 상기 메모리 요청을 개시하는 상기 컴퓨터 메모리(70)로의 전송을 위해 상기 적어도 하나의 오퍼레이션 큐(340, 350, 360)로부터 상기 적어도 하나의 원시 메모리 오퍼레이션을 선택하도록 된 멀티플렉서(370) 및;
    상기 적어도 하나의 오퍼레이션 큐(340, 350, 360)와 상기 컴퓨터 메모리(70)와 연결되고, 상기 메모리(70)에서 상기 메모리 요청의 완성을 제어하도록 제어 데이터를 저장하도록 된 적어도 하나의 제어큐(365)를 구비하는 것을 특징으로 하는 큐 기반 메모리 컨트롤러.
  22. 제 21 항에 있어서, 상기 적어도 하나의 오퍼레이션 큐(340, 350, 360)는 상기 적어도 하나의 큐 엔트리를 위한 종속성 데이터를 추가적으로 구비하고, 상기 요청 해독기(310)는 상기 종속성 데이터를 설정하도록 되고, 상기 멀티플렉서(370)는 상기 적어도 하나의 원시 메모리 오퍼레이션을 전송을 위해 선택하는 때, 상기 종속성 데이터에 응답하는 것을 특징으로 하는 큐 기반 메모리 컨트롤러.
  23. 제 22 항에 있어서, 상기 종속성 데이터는 오퍼레이션 타이밍 종속성들과 오퍼레이션 순서 종속성들을 구비하는 것을 특징으로 하는 큐 기반 메모리 컨트롤러.
  24. 제 23 항에 있어서, 상기 적어도 하나의 제어 큐(365)와 적어도 하나의 오퍼레이션 큐(340, 350, 360)는 종속성 데이터 신호들을 생성하도록 되고, 상기 적어도 하나의 오퍼레이션 큐(340, 350, 360)는 상기 종속성 데이터 신호들에 응답하는 것을 특징으로 하는 큐 기반 메모리 컨트롤러.
  25. 제 21 항에 있어서, 상기 적어도 하나의 원시 메모리 오퍼레이션은 기-충전.활성화 및 판독/기록으로 이루어지는 것을 특징으로 하는 큐 기반 메모리 컨트롤러.
  26. 제 25 항에 있어서, 상기 적어도 하나의 큐는 기-충전 큐(350), 활성화 큐(340) 및 판독/기록 큐(360)로 이루어지는 것을 특징으로 하는 큐 기반 메모리 컨트롤러.
  27. 제 26 항에 있어서, 상기 기-충전 큐(350)는 1인 큐 깊이를 구비하고, 상기 활성화 큐(340)는 1인 큐 깊이를 구비하고, 상기 판독/기록 큐(360)는 3인 큐 깊이를 구비하는 것을 특징으로 하는 큐 기반 메모리 컨트롤러.
  28. 제 21 항에 있어서, 상기 요청 해독기(310)는 조합 논리로서 구현되는 것을 특징으로 하는 큐 기반 메모리 컨트롤러.
  29. 제 21 항에 있어서, 상기 요청 해독기(310)는 상기 메모리 요청을 적어도 하나의 원시 메모리 오퍼레이션으로 해독하고 상기 적어도 하나의 원시 메모리 오퍼레이션을 상기 적어도 하나의 큐(340, 350, 360)로 저장하도록 된 논리에 연결된 적어도 하나의 레지스터를 구비하는 것을 특징으로 하는 큐 기반 메모리 컨트롤러.
KR1020017006977A 1998-12-04 1999-10-01 큐 기반 메모리 컨트롤러 KR20010080682A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/205,665 US6295586B1 (en) 1998-12-04 1998-12-04 Queue based memory controller
US09/205,665 1998-12-04
PCT/US1999/022997 WO2000034875A1 (en) 1998-12-04 1999-10-01 Queue based memory controller

Publications (1)

Publication Number Publication Date
KR20010080682A true KR20010080682A (ko) 2001-08-22

Family

ID=22763138

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017006977A KR20010080682A (ko) 1998-12-04 1999-10-01 큐 기반 메모리 컨트롤러

Country Status (6)

Country Link
US (3) US6295586B1 (ko)
EP (1) EP1137995B1 (ko)
JP (1) JP2002532779A (ko)
KR (1) KR20010080682A (ko)
DE (1) DE69904508T2 (ko)
WO (1) WO2000034875A1 (ko)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6295586B1 (en) * 1998-12-04 2001-09-25 Advanced Micro Devices, Inc. Queue based memory controller
US6757679B1 (en) * 1999-06-25 2004-06-29 International Business Machines Corporation System for building electronic queue(s) utilizing self organizing units in parallel to permit concurrent queue add and remove operations
TW515949B (en) * 2000-06-08 2003-01-01 Via Tech Inc Method for scheduling run sequence of read and write requests
US7538772B1 (en) * 2000-08-23 2009-05-26 Nintendo Co., Ltd. Graphics processing system with enhanced memory controller
US6662265B1 (en) * 2000-08-31 2003-12-09 Hewlett-Packard Development Company, L.P. Mechanism to track all open pages in a DRAM memory system
US6591349B1 (en) * 2000-08-31 2003-07-08 Hewlett-Packard Development Company, L.P. Mechanism to reorder memory read and write transactions for reduced latency and increased bandwidth
US6622225B1 (en) * 2000-08-31 2003-09-16 Hewlett-Packard Development Company, L.P. System for minimizing memory bank conflicts in a computer system
US6549991B1 (en) * 2000-08-31 2003-04-15 Silicon Integrated Systems Corp. Pipelined SDRAM memory controller to optimize bus utilization
JP3506175B2 (ja) * 2000-10-05 2004-03-15 日本電気株式会社 メモリ制御回路とメモリ制御方法
US6647456B1 (en) * 2001-02-23 2003-11-11 Nvidia Corporation High bandwidth-low latency memory controller
US6735677B1 (en) * 2001-04-30 2004-05-11 Lsi Logic Corporation Parameterizable queued memory access system
US6694410B1 (en) 2001-04-30 2004-02-17 Lsi Logic Corporation Method and apparatus for loading/storing multiple data sources to common memory unit
US7107386B1 (en) 2001-08-08 2006-09-12 Pasternak Solutions, Llc Memory bus arbitration using memory bank readiness
US7107413B2 (en) * 2001-12-17 2006-09-12 Intel Corporation Write queue descriptor count instruction for high speed queuing
US7269179B2 (en) * 2001-12-18 2007-09-11 Intel Corporation Control mechanisms for enqueue and dequeue operations in a pipelined network processor
US7895239B2 (en) 2002-01-04 2011-02-22 Intel Corporation Queue arrays in network devices
US7181573B2 (en) * 2002-01-07 2007-02-20 Intel Corporation Queue array caching in network devices
US7149226B2 (en) * 2002-02-01 2006-12-12 Intel Corporation Processing data packets
TW561349B (en) * 2002-03-01 2003-11-11 Via Tech Inc Scheduling method and device of read/write request in control chip
US7149857B2 (en) 2002-05-14 2006-12-12 Micron Technology, Inc. Out of order DRAM sequencer
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US7051175B2 (en) * 2003-01-17 2006-05-23 Hewlett-Packard Development Company, L.P. Techniques for improved transaction processing
US7117520B2 (en) * 2003-02-24 2006-10-03 Thomson Licensing System and method for voice/data transmission over cable networks
US6754726B1 (en) * 2003-03-11 2004-06-22 Inventec Corporation Versatile memory chip programming device and method
US6954387B2 (en) * 2003-07-15 2005-10-11 International Business Machines Corporation Dynamic random access memory with smart refresh scheduler
US7127584B1 (en) * 2003-11-14 2006-10-24 Intel Corporation System and method for dynamic rank specific timing adjustments for double data rate (DDR) components
KR101198981B1 (ko) * 2003-12-09 2012-11-07 톰슨 라이센싱 메모리 제어기
KR100546403B1 (ko) * 2004-02-19 2006-01-26 삼성전자주식회사 감소된 메모리 버스 점유 시간을 가지는 시리얼 플레쉬메모리 컨트롤러
US20060136606A1 (en) * 2004-11-19 2006-06-22 Guzy D J Logic device comprising reconfigurable core logic for use in conjunction with microprocessor-based computer systems
US7363406B2 (en) * 2004-12-08 2008-04-22 Motorola, Inc. Dynamic access scheduling memory controller
JP4843216B2 (ja) * 2004-12-10 2011-12-21 株式会社リコー メモリ制御装置
US8082396B2 (en) * 2005-04-28 2011-12-20 International Business Machines Corporation Selecting a command to send to memory
US7721011B1 (en) 2005-05-09 2010-05-18 Oracle America, Inc. Method and apparatus for reordering memory accesses to reduce power consumption in computer systems
US20060265485A1 (en) * 2005-05-17 2006-11-23 Chai Sek M Method and apparatus for controlling data transfer in a processing system
US7603492B2 (en) * 2005-09-20 2009-10-13 Motorola, Inc. Automatic generation of streaming data interface circuit
US7496777B2 (en) * 2005-10-12 2009-02-24 Sun Microsystems, Inc. Power throttling in a memory system
US7533212B1 (en) 2005-10-20 2009-05-12 Sun Microsystems, Inc. System memory board subsystem using DRAM with integrated high speed point to point links
US7523282B1 (en) 2005-10-27 2009-04-21 Sun Microsystems, Inc. Clock enable throttling for power savings in a memory subsystem
US7409491B2 (en) * 2005-12-14 2008-08-05 Sun Microsystems, Inc. System memory board subsystem using DRAM with stacked dedicated high speed point to point links
US7673111B2 (en) * 2005-12-23 2010-03-02 Intel Corporation Memory system with both single and consolidated commands
US20070150671A1 (en) * 2005-12-23 2007-06-28 Boston Circuits, Inc. Supporting macro memory instructions
US20080120497A1 (en) * 2006-11-20 2008-05-22 Motorola, Inc. Automated configuration of a processing system using decoupled memory access and computation
US20080282050A1 (en) * 2007-05-07 2008-11-13 On Demand Microelectronics Methods and arrangements for controlling memory operations
US20110161217A1 (en) * 2008-08-14 2011-06-30 Searete Llc Conditionally obfuscating one or more secret entities with respect to one or more billing statements
US20100325333A1 (en) * 2008-10-14 2010-12-23 Texas Instruments Incorporated Method Allowing Processor with Fewer Pins to Use SDRAM
US9285865B2 (en) 2012-06-29 2016-03-15 Oracle International Corporation Dynamic link scaling based on bandwidth utilization
KR20140028618A (ko) 2012-08-29 2014-03-10 삼성전자주식회사 쓰기 페일을 줄이는 메모리 장치, 이를 포함하는 메모리 시스템 및 그 쓰기 방법
EP2936494B1 (en) * 2012-12-19 2019-07-03 Hewlett-Packard Enterprise Development LP Nvram path selection
KR102098248B1 (ko) 2013-06-03 2020-04-07 삼성전자 주식회사 온도에 따라 완화된 타이밍 요건으로 사용되는 메모리 장치 및 이를 이용하는 메모리 콘트롤러
US9281046B2 (en) 2013-10-08 2016-03-08 Advanced Micro Devices, Inc. Data processor with memory controller for high reliability operation and method
US9576637B1 (en) * 2016-05-25 2017-02-21 Advanced Micro Devices, Inc. Fine granularity refresh
US10402120B2 (en) 2016-07-15 2019-09-03 Advanced Micro Devices, Inc. Memory controller arbiter with streak and read/write transaction management
US10037150B2 (en) 2016-07-15 2018-07-31 Advanced Micro Devices, Inc. Memory controller with virtual controller mode
US10684969B2 (en) 2016-07-15 2020-06-16 Advanced Micro Devices, Inc. Command arbitration for high speed memory interfaces
US10679722B2 (en) 2016-08-26 2020-06-09 Sandisk Technologies Llc Storage system with several integrated components and method for use therewith
TWI701554B (zh) * 2018-12-13 2020-08-11 英屬維京群島商鯨鏈先進股份有限公司 適用於雜湊演算法的電路系統
US11226816B2 (en) * 2020-02-12 2022-01-18 Samsung Electronics Co., Ltd. Systems and methods for data placement for in-memory-compute
US11995008B2 (en) * 2021-06-22 2024-05-28 Advanced Micro Devices, Inc. Memory controller with hybrid DRAM/persistent memory channel arbitration
US11960400B2 (en) 2022-04-26 2024-04-16 Cadence Design Systems, Inc. Managing multiple cache memory circuit operations

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4366538A (en) * 1980-10-31 1982-12-28 Honeywell Information Systems Inc. Memory controller with queue control apparatus
US4451880A (en) 1980-10-31 1984-05-29 Honeywell Information Systems Inc. Memory controller with interleaved queuing apparatus
US5222223A (en) * 1989-02-03 1993-06-22 Digital Equipment Corporation Method and apparatus for ordering and queueing multiple memory requests
US5649157A (en) * 1995-03-30 1997-07-15 Hewlett-Packard Co. Memory controller with priority queues
US5625778A (en) * 1995-05-03 1997-04-29 Apple Computer, Inc. Method and apparatus for presenting an access request from a computer system bus to a system resource with reduced latency
US5842038A (en) * 1996-10-10 1998-11-24 Unisys Corporation Optimized input/output memory access request system and method
US5907857A (en) * 1997-04-07 1999-05-25 Opti, Inc. Refresh-ahead and burst refresh preemption technique for managing DRAM in computer system
US6128746A (en) * 1997-08-26 2000-10-03 International Business Machines Corporation Continuously powered mainstore for large memory subsystems
US5948081A (en) 1997-12-22 1999-09-07 Compaq Computer Corporation System for flushing queued memory write request corresponding to a queued read request and all prior write requests with counter indicating requests to be flushed
US6128749A (en) 1998-11-03 2000-10-03 Intel Corporation Cross-clock domain data transfer method and apparatus
US6295586B1 (en) * 1998-12-04 2001-09-25 Advanced Micro Devices, Inc. Queue based memory controller

Also Published As

Publication number Publication date
EP1137995B1 (en) 2002-12-11
DE69904508D1 (de) 2003-01-23
US6496906B1 (en) 2002-12-17
EP1137995A1 (en) 2001-10-04
US6295586B1 (en) 2001-09-25
WO2000034875A1 (en) 2000-06-15
DE69904508T2 (de) 2003-11-13
JP2002532779A (ja) 2002-10-02
US6393531B1 (en) 2002-05-21

Similar Documents

Publication Publication Date Title
KR20010080682A (ko) 큐 기반 메모리 컨트롤러
US6026464A (en) Memory control system and method utilizing distributed memory controllers for multibank memory
KR100724557B1 (ko) 아웃 오브 오더 dram 시퀀서
US5745913A (en) Multi-processor DRAM controller that prioritizes row-miss requests to stale banks
US6330645B1 (en) Multi-stream coherent memory controller apparatus and method
KR920010950B1 (ko) 컴퓨터 시스템과 정보 판독 및 데이타 전송방법
US6321296B1 (en) SDRAM L3 cache using speculative loads with command aborts to lower latency
JP4782830B2 (ja) 非dramインジケータ及びdramアレイに格納されていないデータにアクセスする方法
US20070055813A1 (en) Accessing external memory from an integrated circuit
US6594748B1 (en) Methods and structure for pipelined read return control in a shared RAM controller
US6615326B1 (en) Methods and structure for sequencing of activation commands in a high-performance DDR SDRAM memory controller
US6219765B1 (en) Memory paging control apparatus
JP2949162B2 (ja) 隠れプリチャージ式疑似キャッシュdram
JP2000506301A (ja) 高速コマンド入力を有する簡単化されたクロックドdram
WO2000075793A1 (en) A programmable sram and dram cache interface
KR20040030049A (ko) 읽기 및 쓰기 동작에 여러 다른 버스트 순서 어드레싱을가진 메모리 소자
US6549991B1 (en) Pipelined SDRAM memory controller to optimize bus utilization
US6564284B2 (en) Apparatus for controlling a multibank memory device
US7512763B2 (en) Transparent SDRAM in an embedded environment
US20040243768A1 (en) Method and apparatus to improve multi-CPU system performance for accesses to memory
US6360305B1 (en) Method and apparatus for optimizing memory performance with opportunistic pre-charging
US6918016B1 (en) Method and apparatus for preventing data corruption during a memory access command postamble
TW491970B (en) Page collector for improving performance of a memory
US11995008B2 (en) Memory controller with hybrid DRAM/persistent memory channel arbitration
US6442645B1 (en) Pre-decode conditional command generation for reduced SDRAM cycle latency

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid