KR19980042530A - 가상 채널 메모리 시스템 - Google Patents

가상 채널 메모리 시스템 Download PDF

Info

Publication number
KR19980042530A
KR19980042530A KR1019970060775A KR19970060775A KR19980042530A KR 19980042530 A KR19980042530 A KR 19980042530A KR 1019970060775 A KR1019970060775 A KR 1019970060775A KR 19970060775 A KR19970060775 A KR 19970060775A KR 19980042530 A KR19980042530 A KR 19980042530A
Authority
KR
South Korea
Prior art keywords
memory
cache
bus
virtual access
data
Prior art date
Application number
KR1019970060775A
Other languages
English (en)
Other versions
KR100268321B1 (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 KR19980042530A publication Critical patent/KR19980042530A/ko
Application granted granted Critical
Publication of KR100268321B1 publication Critical patent/KR100268321B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • 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

Abstract

평행한 다수의 가상 억세스 채널(virtual access channel)에 연결된 메인 메모리를 갖는 메모리 시스템이 제공된다. 가상 억세스 채널 각각은 메인 메모리를 제어하도록 메모리 억세스 자원의 세트를 제공한다. 이들 메모리 억세스 자원은 캐시 자원(cache resource)(캐시 연쇄 연결(cache chaining)을 포함하는), 버스트(burst) 모드 동작 제어, 및 예비충전 동작 제어를 포함한다. 다수의 가상 억세스 채널은 캐시처리가능한 가상 억세스 채널이고, 각각은 하나 이상의 캐시 입력을 저장하기 위한 채널 로우(row) 캐시 메모리 및 대응하는 캐시 어드레스 입력을 저장하기 위한 채널 로우 어드레스 레지스터를 포함한다. 버스 바이패스(bus bypass) 회로에 의해 하나 이상의 캐시처리불가능한 가상 억세스 채널이 제공된다. 각 가상 억세스 채널은 어드레스지정가능하므로, 특정한 메모리 마스터(memory master)는 특정한 가상 억세스 채널을 억세스되도록 지정될 수 있다.

Description

가상 채널 메모리 시스템
[발명의 분야]
본 발명은 반도체 메모리를 위한 메모리 시스템에 관한 것이다. 특히, 본 발명은 다수의 메모리 마스터(memory master)에 의한 억세스를 용이하에 하도록 다수의 가상 억세스 채널(virtual access channel)을 제공하는 메모리 시스템에 관한 것이다.
[종래 기술의 설명]
종래의 데이터 처리 시스템은 전형적으로 시스템 메모리를 공유하는 다수의 처리기/처리를 포함한다. 다중 처리기/처리(즉, 메모리 마스터)는 병행성 방식으로 시스템 메모리(예를 들면, 일반 시스템 메모리나 그래픽 프레임 버퍼 메모리)와 억세스한다. 메모리 마스터는 중앙 처리 유닛(CPU), 그래픽 처리기, PCI 버스 마스터, 및 EISA/ISA 버스 마스터를 포함할 수 있다. 각 메모리 마스터는 어드레스 소재, 시간 소재, 및/또는 특정 블록 크기를 나타내는 시스템 메모리의 일부와 억세스한다. 그러므로, 다중 메모리 마스터가 효율적인 방식으로 시스템 메모리와 억세스하는 것을 허용하는 메모리 시스템을 갖는 것이 바람직하다. 또한, 이러한 메모리 시스템이 동적으로 수정될 수 있으면 다른 종류의 메모리 마스터를 수용하는 것이 바람직하다.
도 1은 공유된 메모리 설계를 사용하는 다중 처리 시스템(100)의 블록도이다. 시스템(100)은 처리기(101a)-(101c), 전용 캐시 메모리(cache momory)(102a)-(102c), 전용 캐시 제어기(103a)-(103c), 시스템 버스(104), 글로벌 메인 메모리(105), 및 메모리 제어기(106)를 포함한다. 처리기(101a)-(101c)는 공통된 평행 시스템 버스(104)를 통해 메인 메모리(105)를 공유한다. 캐시 메모리(102a)-(102c)는 전형적으로 비교적 고속인 SRAM 어레이(array)를 이용해 구성된다. 메인 메모리(105)는 전형적으로 비교적 저속이고 저가인 DRAM 어레이를 이용해 구성된다. 시스템(100)과 같은 시스템은 다음을 참고로 설명된다: (1) 데이터를 일관되게 유지시키는 프로토콜, 존 겔런트(John Gallant) EDN 1991년 3월 14일, pp41-50 및 (2) 고속 메모리 시스템, 폼(A. V. Pohm)과 에이그래월(O. P. Agrawal), 레스톤(Reston) 출판, 1983년, pp. 79-83.
전용 캐시 메모리(102a)-(102c)는 각 처리기(101a)-(101c)가 메인 메모리(105)와 억세스하는 주파수를 줄인다. 이는 시스템 버스(104)상의 통화량을 줄인다. 그러나, 캐시 메모리(102a)-(102c)는 비교적 값이 비싸다. 시스템(100)에서는 값비싼 캐시 메모리가 부가되는 각 처리기에 대해 부가되어야 한다. 부가하여, 시스템(100)은 캐시 메모리(102a)-(102c)와 메인 메모리(105)에서 데이터의 일관성을 유지하기 위해 제어 논리가 요구된다(즉, 캐리 코히어런스(cache coherence)). 캐시 코히어런스의 문제점은 스케일 조절가능한 공유 메모리 다중 처리기. 두보이스(M. Dubois)와 타카(S. S. Thakkar), 클루월 아카데믹(Kluwer Academic) 출판, 1992년, pp. 153-166에서 보다 상세히 설명된다. 캐시 코히어런스를 제공하는데 요구되는 제어 논리는 비용을 증가시켜 시스템(100)의 실행도를 감소시킨다. 부가하여, 캐시 메모리(102a)-(102c)로 인출된 데이터값이 사용되지 않으면, 메인 메모리(105)와 시스템 버스(104)의 효율성이 손상된다.
도 2는 모듈(206a)-(206c)로 나뉜 글로벌 메인 메모리(204)를 포함하는 또 다른 종래의 다중 처리기 시스템(200)의 블록도이다. 각 메인 메모리 모듈(206a)-(206c)는 각각 대응하는 단일 캐시 메모리 모듈(205a)-(205c)에 부착된다. 각 캐시 메모리 모듈(205a)-(205c)는 메인 메모리 버스(202)에 부착된다. 처리기(201a)-(201c)도 또한 메인 버스(202)에 부착된다. 처리기(201a)-(201c)는 캐시 메모리 모듈(205a)-(205c)과 메인 메모리 모듈(206a)-(206c)을 공유한다. 시스템(200)은 고속 메모리 시스템, 폼(Pohm), pp. 75-79에서 설명된다. 처리기의 수가 적절하게 메모리 모듈(즉, 캐시 메모리 모듈)의 수와 같을 때, 캐시 트래싱(cache thrashing)이 발생될 수 있다. 캐시 트래싱은 캐시선의 일정한 교환을 칭한다. 캐시 트래싱은 시스템 실행도를 상당히 저하시킨다.
SRAM 캐시 메모리의 비용을 최소화하기 위해, 종래 기술의 시스템은 지시 및 데이터를 위한 부가적인 프리페치 버퍼(prefetch buffer)를 사용한다. 이들 프리페치 버퍼는 대형 캐시 메모리를 요구하지 않고 캐시-히트(cache-hit) 비율을 증가시킨다. 이러하나 프리페치 버퍼는 카나마다칼라 크리쉬나모안(Karnamadakala Krishnamohan) 등에 의한 컴퓨터 시스템에서 메인 메모리 억세스 시간과 캐시 크기를 최소화하기 위한 캐시로의 프리페칭 명의 PCT 특허 출원 PCT/US93/01814(WO 93/18459)에서 설명된다. 프리페치 버퍼는 전통적인 분리 캐시 메모리 구성에서 사용되고, 메모리 대역폭은 프리페치 동작과 캐슁 동작 모두에 의해 소모된다. 전통적인 캐시 구조에 걸쳐 실행도를 개선시키기 위해서는 확고한 프리페치 알고리즘(정확한 정보를 프리페치하는 일관되게 높은 가능성을 갖는)과 충분한 캐시 크기 및 조직(높은 캐시 히트 비율을 제공하는)이 요구된다.
다른 종래의 시스템은 캐시 메모리로 DRAM 어레이의 감지 증폭기를 사용한다. (예를 들면, 팜월드(M. Farmwald) 등에 의한 PCT 특허 공표 PCT/US91/02590을 참고한다.) 캐시 메모리로 DRAM 어레이의 감지 증폭기를 사용하는 것은 메인 메모리와 캐시 메모리간의 높은 전송 대역폭 및 저비용을 제공한다. CAS(칼럼(column) 억세스) 동작을 실행하는데 요구되는 시간과 동일한 캐시 히트 억세스 시간은 비교적 짧다. 그러나, 이러한 시스템의 캐시 미스 억세스(cache miss access) 시간은 정상적인 DRAM 어레이의 메모리 억세스 시간(캐시 메모리로 감지 증폭기를 사용하지 않는) 보다 상당히 더 길다. 이는 감지 증폭기가 캐시 메모리로 사용되는 경우에, DRAM 어레이가 억세스되어 있지 않을 때에도 DRAM 어레이는 페이지 모드(page mode)(또는 활성화 모드)로 유지되기 때문이다. 그러므로, 캐시 미스는 DRAM 어레이가 RAS(row access) 및 CAS(colunm access) 동작으로 이어지는 예비충전 동작을 실행할 것을 요구한다. 예비충전 동작을 실행하는데 요구되는 시간(즉, 예비충전 시간)은 RAS 동작을 실행하는데 요구되는 시간의 대략 2배이다. 그러므로, 총 메모리 억세스 시간은 DRAM 어레이의 예비충전 시간, RAS 억세스 시간, 및 CAS 억세스 시간의 합과 같다. 대조적으로, DRAM 어레이의 정상 동작 동안에는 억세스되고 있지 않을 때 DRAM 어레이가 예비충전 모드에 있고, 메모리 억세스 시간은 DRAM 어레이의 RAS 억세스 시간+CAS 억세스 시간과 같다.
또 다른 종래 기술의 캐시 메모리 시스템은 DRAM 어레이에 집적된 SRAM 캐시 메모리를 포함한다. DRAM 어레이는 집합적으로 메인 시스템 메모리로 동작하는 4개의 뱅크(bank)를 포함한다. SRAM 캐시 메모리는 DRAM 어레이의 뱅크 중 하나로 부터 완전한 행의 데이터를 저장하는 용량을 갖는 캐시 로우(row) 레지스터를 포함한다. 최종 로우 판독(LRR) 어드레스 래치(latch)는 DRAM 어레이로부터 판독된 최종 로우 어드레스를 저장한다. 현재 판독된 억스세의 로우 어드레스가 LRR 어드레스 래치에 저장된 로우 어드레스와 동일할 때, 요구되는 데이터값은 DRAM 어레이 보다는 로우 레지스터로부터 판독된다. 그래서, DRAM 어레이에서 4개 뱅크 각각에 의해 공유되는 캐시 로우 레지스터에는 하나의 캐시 입력이 있다. 이러한 종래 기술의 메모리 시스템은 DM 2202 EDRAM 1MB × 4 Enhanced Dynamic RAM, 예비 데이터 쉬트, 램트론 인터내셔널사(Ramtron International Corp. , pp. 1-18에서 보다 상세히 설명된다.
그러므로, 종래 기술의 메모리 시스템에서 상술된 단점을 극복한 메모리 시스템을 갖는 것이 바람직하다.
[요약]
본 발명에 따라, 메모리 시스템은 메인 메모리와, 메인 메모리에 평행하게 연결된 다수의 가장 억세스 채널을 포함한다. 메인 메모리는 전형적으로 다수의 메모리 뱅크를 포함한다. 가상 억세스 채널 각각은 메인 메모리와 억세스하기 위한 메모리 억세스 자원의 세트를 포함한다. 이들 메모리 억세스 자원은 예를 들면, 캐쉬 자원, 버스트(burst) 억세스 제어 자원, 및 메모리 예비충전 자원을 포함할 수 있다. 가장 억세스 채널 각각은 외부 메모리 마스터에 의해 독립적으로 어드레스 지정가능하다.
가장 억세스 채널이 외부 메모리 마스터에 의해 어드레스 지정되는 것을 가능하게 함으로서, 가장 억세스 채널은 메모리 시스템이 연결된 데이터 처리 시스템에 의해 요구되는 바와 다른 메모리 마스터로 동작하도록 탄력적으로 지정될 수 있다. 예를 들면, 한 메모리 마스터가 두 개의 가장 억세스 채널을 억세스하도록 지정될 수 있는 반면, 수개의 다른 메모리 마스터가 단일 가장 억세스 채널의 억세스를 공유하도록 지정될 수 있다. 이러한 지정은 메모리 시스템의 정상적인 동작 동안에 정적이거나, 또는 동적으로 변화될 수 있다. 이러한 지정은 또한 다른 데이터 처리 시스템으로의 연결을 위해 수정될 수 있다.
한 실시예에서, 가장 억세스 채널은 캐싱 동작을 실행하는 캐시처리 가능한 다수의 가상 억세스 채널을 포함한다. 이러한 실시예에서, 캐시처리 가능한 가상 억세스 채널 각각은 하나 이상의 캐시 데이터 입력을 저장하기 위한 캐시 데이터 메모리와, 대응하는 하나 이상의 캐시 어드레스 입력을 저장하기 위한 대응하는 캐시 어드레스 메모리를 포함한다. 캐시처리 가능한 가상 억세스 채널을 메모리 마스터의 각 서비스에 지정함으로서, 각 메모리 마스터에는 유리하게 전용의 캐시 메모리 자원이 제공된다. 가상 억세스 채널은 또한 캐시 미스가 발생될 때 캐시처리 가능한 가장 억세스 채널이 바이패스되는 것을 가능하게 하는 캐시처리 불가능한 가상 억세스 채널을 포함할 수 있다.
본 발명은 또한 다음의 단계를 포함하는 메모리 어레이를 억세스하기 위한 방법을 포함한다: (1) 가상 억세스 시스템을 메모리 어레이에 연결시키는 단계로, 가상 억세스 시스템이 메모리 어레이에 평행하게 연결된 다수의 가상 억세스 채널을 갖고, 각 가상 억세스 채널은 메모리 어레이를 억세스하기 위해 메모리 억세스 자원의 세트를 제공하는 단계, (2) 하나 이상의 가상 억세스 채널을 억세스하도록 각 메모리 마스터를 지정하는 단계, (3) 메모리 마스터로부터의 억세스 어드레스를 가장 억세스 시스템에 제공하는 단계, 및 (4) 억세스 어드레스에 응답해 가상 억세스 채널 중 선택된 하나를 억세스하는 단계.
이 방법은 또한 (5) 캐시 입력과 대응하는 캐시 어드레스 입력을 선택된 가상 억세스 채널에 저장하는 단계, (6) 억세스 어드레스를 캐시 어드레스 입력과 비교하는 단계, 및 (7) 억세스 어드레스가 캐시 어드레스 입력과 정합할 때 캐시 입력을 억세스하는 단계를 포함할 수 있다. 억세스 어드레스가 캐시 어드레스 입력과 정합하지 않으면, 메모리 어레이는 버스 바이패스 회로를 통해 억세스될 수 있다. 이러한 경우에, 선택된 가상 억세스 채널의 캐시 입력은 버스 바이패스 회로를 통해 억세스된 데이터값을 반영하도록 업데이트되고, 캐시 어드레스 입력은 억세스된 어드레스를 반영하도록 업데이트된다.
이 방법의 변형으로, 두 개의 가상 억세스 채널이 동시에 활성화되어, 가상 억세스 채널 중 하나는 가상 억세스 채널과 메모리 마스터 사이의 인터페이스에서 동작을 실행하고, 또 다른 하나의 가상 억세스 채널은 가상 억세스 채널과 메모리 어레이 사이의 인터페이스에서 동작을 실행할 수 있다. 이는 유리하게 메모리 시스템내에서 개선된 동작의 병행성을 제공된다.
이 방법의 또 다른 변형으로, 각 가상 억세스 채널의 동작 모드는 독립적으로 프로그램된다. 예를 들면, 각 가상 억세스 채널을 특정한 캐시 체인 모드(cache chaining mode), 버스트 길이, 및 예비충전 모드를 갖도록 각기 프로그램될 수 있다. 이는 대응하는 메모리 마스터의 동작 필요성을 가장 잘 만족시키도록 가상 억세스 채널이 각기 맞추어질 수 있게 한다.
본 발명은 도면과 함께 취해진 다음의 상세한 설명으로서 보다 전체적으로 이해된다.
도 1은 공유되는 메모리 설계를 사용하는 종래의 다중 처리기 시스템의 블록도.
도 2는 모듈로 나뉜 글로벌 메인 메모리(global main memory)를 포함하는 또 다른 종래의 다중 처리기 시스템의 블록도.
도 3은 본 발명의 한 실시예에 따는 메모리 시스템의 블록도.
도 4는 본 발명의 한 실시예에 따른 채널 로우 캐시 메모리 및 캐시 로우 어드레스 레지스터의 구조도.
도 5는 본 발명의 한 실시예에 다른 도 3의 메모리 실시예를 실행하는 가속화된 그래픽 처리기 시스템의 블록도.
도 6은 본 발명의 또 다른 실시예에 따른 도 3의 메모리 시스템을 실행하는 파이프라인(pipeline)화된 그래픽 시스템의 블록도.
*도면의 주요부분에 대한 부호의 설명*
300:메모리 시스템320:가상 채널 시스템
1000:개인용 컴퓨터1010:그래픽 시스템
1015:논리회로10616:메모리
[상세한 설명]
도 3은 본 발명의 한 실시예에 따른 메모리 시스템(300)의 블록도이다. 메모리 시스템(300)은 메모리 뱅크(301)-(304), 뱅크 로우 인터페이스 회로(401)-(404), 메모리 버스 인터페이스 버스(310), 가상 채널 시스템(320), 메모리 시스템 인터페이스 버스(312), 메모리 시스템 인터페이스(314), 및 시스템 버스(315)를 포함한다. 메모리 시스템 인터페이스(314)는 시스템 버스(315)를 통해 하나 이상의 외부 메모리 마스터(도시되지 않은)에 연결된다.
가상 채널 시스템(320)은 메모리 뱅크 인터페이스 버스(310), 채널 로우 캐시 인터페이스 회로(501)-(507), 채널 로우 캐시 메모리(601)-(607), 캐시 로우 어드레스 레지스터(701)-(707), 채널 로우 캐시 인터페이스 회로(801)-(807), 버스 바이패스 회로(311), 메모리 시스템 인터페이스 버스(312), 및 가상 채널 제어 회로(325)를 포함한다.
일반적으로, 가상 채널 시스템(320)은 독립적인 다수의 메모리 억세스 자원을 제공하고, 이들은 이후 가상 억세스 채널이라 칭하여진다. 각각의 가장 억세스 채널은 메모리 뱅크(301)-(304)와 메모리 시스템 인터페이스(314) 사이에 위치한다. 가상 채널 시스템(320)은 8개의 가장 억세스 채널(1)-(8)을 포함한다. 7개의 캐시처리 가능한 가상 억세스 채널(1)-(7)은 7개의 채널 로우 캐시 회로(601)-(607), 7개의 대응하는 캐시 로우 어드레스 레지스터(701)-(707), 및 대응하는 채널 로우 캐시 인터페이스 회로(501)-(507)과 (801)-(807)에 의해 정의된다. 하나의 캐시처리 불가능한 가상 억세스 채널(8)은 버스 바이패스 회로(311)에 의해 정의된다. 이후 보다 상세히 설명될 바와 같이, 각 캐시처리 가능한 가상 억세스 채널은 독립적인 캐시 메모리로 동작할 수 있다. 캐시처리 불가능한 가상 채널(8)은 메모리 뱅크(301)-(304)의 직접적인 억세스를 제공한다.
각 가상 억세스 채널(1)-(8)은 각각 메모리 시스템(300)이 위치하는 칩의 핀들을 통해 외부적으로 선택가능하다. 가상 억세스 채널(1)-(8)은 가상 채널 제어 회로(325)를 통해 각기 어드레스지정 가능하다. 그래서, 시스템 버스(315)에 연결된 메모리 마스터는 가상 채널 제어 회로(325)에(메모리 시스템 인터페이스(314)를 통해) 3비트의 어드레스 신호를 제공할 수 있다. 이 3비트의 어드레스 신호에 응답해, 가상 채널 제어 회로(325)는 8개의 가상 억세스 채널(1)-(8) 중 하나를 선택하거나 인에이블시킨다. 이러한 방식으로, 다른 메모리 마스터(예를 들면, CPU, 메모리 제어기, 또는 그래픽 제어기)가 각 가상 억세스 채널에 대해 맵(map)화될 수 있다. 이후의 표 1은 본 발명의 한 실시예에 따른 가상 억세스 채널 어드레스 지정 구성을 목록화한다.
가장 억세스 채널은 자체 채널로 메모리 시스템(300)과 억세스하는 각 메모리 마스터에 방해되지 않는 메모리 뱅크(301)-(304)로의 고속 억세스를 제공한다. 그 결과로, 다중 메모리 마스터가 각각 자체 가장 억세스 채널로 동시에 동작될 수 있다. 각 메모리 마스터는 필요로 하는 메모리 뱅크(301)-(304)와 억세스하도록 자체 처리의 필요에 따라 자체 속도로 동작된다. 메모리 뱅크(301)-(304)와 가상 억세스 채널(1)-(8) 사이의 단일 버스(310)는 소정의 시간에 메모리 뱅크(301)-(304)와 가상 억세스 채널(1)-(8) 사이에는 단 하나의 동작(판독/기록)만이 있을 수 있음을 나타낸다. 가상 억세스 채널(1)-(8) 과 메모리 시스템 인터페이스(314) 사이의 분리된 버스(312)는 소정의 시간에 가상 억세스 채널(1)-(8)과 메모리 시스템 인터페이스(314) 사이에는 단 하나의 동작만이 있을 수 있음을 나타낸다. 그러나, 메모리 뱅크(301)-(304)와 가상 억세스 채널(1)-(8) 사이의 동작 및 가상 억세스 채널(1)-(8)과 메모리 인터페이스 시스템(314) 사이의 동작은 동시에 일어날 수 있다.
메모리 시스템(300)은 일단 가상 억세스 채널(1)-(7)이 로드(load)되면 외부 메모리 마스터에 매우 빠른 판독 및 기록 억세스를 제공한다. 가상 억세스 채널은 표준 동기화 DRAM(SDRAM) 동작과 같은 동작 및 타이밍 순차를 이용해 로드된다. 기술된 실시예에서는 명령이 클럭 신호의 제1위상에서 복호화되고 클럭 신호의 제2위상에서 실행되는 2개 위상 명령/데이터 포맷이 실행된다. 모든 캐시처리 가능한 가상 억세스 채널(1)-(7)은 상호 간섭을 방지하도록 다른 채널을 다른 메모리 마스터에 맵화할 수 있는 외부 호스트 메모리 제어기로부터 직접 관리되기 때문에, 캐시처리 가능한 가상 억세스 채널(1)-(7)은 거의 또는 전해 캐시 트래싱이 없이 피크 히트(peak hit) 비율로 동작된다. 호스트 메모리 제어기가 직접 채널을 관리하는 것을 허용함으로서, 캐시처리 가능한 가상 억세스 채널(1)-(7)은 공간 및 시간상의 소재를 동적으로 변화시키는 다양한 자동 트래킹(tracking)에서 효과적이고, 병행성 시스템 환경에서의 모든 처리에 빠른 캐시 억세스를 제공한다.
메모리 시스템(300)은 캐시처리 가능한 가상 억세스 채널(1)-(7)이 캐싱 기능을 실행하지 않을 때 SDRAM의 억세스 속도를 나타내고, 캐시처리 가능한 가상 억세스 채널(1)-(7)이 캐싱 기능을 실행할 때 PC 2차 레벨(LC-2) 캐시 메모리의 억세스 속도를 나타낸다. 그에 의해 메모리 시스템(300)의 속도는 캐시처리 가능한 가상 억세스 채널(1)-(7)의 전 억세스 속도로 개선된다. 이 실행도는 물론, 메모리 시스템 인터페이스(314)와 시스템 버스(315)의 실행 대역폭에 의해 제한된다. 특정 실시예에서, 단일 메모리 마스터는 하나 이상의 가상 억세스 채널과 억세스할 수 있고, 그에 의해 캐시 트래싱의 확률을 최소화한다.
이제는 본 발명이 보다 상세히 설명된다. 기술된 실시예에서, 메모리 뱅크(301)-(304)는 종래의 동적 랜덤 억세스 메모리(DRAM) 어레이이다. DRAM 어레이는 각 메모리 셀(cell)에 요구되는 배열 면적이 비교적 작기 때문에 사용된다. 그러나, 본 발명은 메모리 뱅크(301)-(304)를 실행하는데 사용되는 메모리의 종류에 의해 제한되지 않는다. 다른 실시예에서는 메모리 뱅크(301)-(304)가 정적 램던 억세스 메모리(SRAM) 어레이를 사용해 실행될 수 있다.
기술된 실시예에서, 각 메모리 뱅크(301)-(304)는 512개 행(row)과 8192개 열(column)의 메모리 셀을 포함한다. 8192개의 열은 1024개의 8-비트 바이트를 정의한다. 그래서, 각 메모리 뱅크(301)-(304)의 용량은 512 KBytes이고, 메모리 뱅크(301)-(304)의 총 용량은 2 MBytes이다. 본 발명은 본 실시예에서 설명된 메모리 용량이나 행/열 구성에 제한되지 않는다. 행과 열의 수에 대한 메모리 뱅크의 조직은 다이(die) 크기 효율의 제한과 메모리 뱅크내의 평행성에 대한 바람직함에 의해 결정된다.
더욱이, 도 3에서는 4개의 메모리 뱅크(301)-(304)가 도시되지만, 본 발명의 다른 실시예에서는 임의의 수의 메모리 뱅크가 사용될 수 있다. 예를 들면, 다른 실시예에서는 메모리 뱅크(301)-(304)가 단일 메모리 뱅크, 2개의 메모리 뱅크, 8개의 메모리 뱅크, 또는 16개의 메모리 뱅크로 대치될 수 있다. 메모리 시스템(300)내의 뱅크 수는 동작의 동시성을 제공할 필요에 의해 결정된다. 소정의 총 메모리 용량은 더 큰 수의 메모리 뱅크로 나뉘므로, 메모리 시스템(300)의 입자를 증가시킨다. 부가하여, 더 많은 메모리 뱅크가 사용되면 될수록, 다른 뱅크가 활성화, 예비충전, 판독, 기록, 또는 리프레쉬(reflesh) 동작과 같이 인터럽트 가능하지 않은 동작으로 차지되는 동안에 다양한 동작을 실행하도록 더 많은 수의 메모리 뱅크가 활성화(즉, 판독이나 기록 동작을 실행하기 위한 칼럼 어드레스의 동작을 준비하여 대응하는 감지 증폭기 회로에 연결되는)될 수 있다. 동시에, 소정의 메모리 용량을 제공하는데 사용되는 메모리 뱅크의 수는 다이 크기의 실용성과 메모리 시스템(300)을 포함하는 메모리 칩의 비용에 의해 제한된다.
각 메모리 뱅크(301)-(304)는 감지 증폭기 회로를 포함한다. 각 감지 증폭기 회로는 대응하는 메모리 뱅크내에서 비트(칼럼)선에 연결되므로, 감지 증폭기 회로는 판독 또는 기록 동작 동안에 전에 행의 데이터(1024 바이트)를 저장하게 된다. 이러한 감지 증폭기 회로는 종래 기술에 이미 공지되어 있다. 메모리 뱅크(301)-(304)의 감지 증폭기 회로는 각각 뱅크 로우 인터펭스 회로(401)-(404)에 연결된다. 가상 채널 제어 회로(325)로부터 수신된 어드레스 신호에 의해 제어되는 뱅크 로우 인터페이스 회로(401)-(404)는 메모리 어레이(301)-(304)의 감지 증폭기 회로와 메모리 뱅크 인터페이스 버스(310) 사이에 데이터 경로를 제공한다. 뱅크 로우 인터페이스 회로(401)-(404)는 메모리 뱅크(301)-(304) 중 단 하나만이 소정의 시간에 뱅크 인터페이스 버스(310)를 구동하는 것을 보장하도록 제어된다. 뱅크 로우 인터페이스 회로(401)-(404)는 또한 하나 이상의 메모리 뱅크(301)-(304)가 메모리 뱅크 인터페이스 버스(310)로부터 데이터를 동시에 수신할 수 있도록 제어된다.
다른 실시예에서, 메모리 뱅크 인터페이스 버스(310)는 메모리 뱅크(301)-(304)의 감지 증폭기 회로 보다 더 넓거나 더 좁을 수 있다. 기술된 실시예에서, 각 감지 증폭기 회로의 폭은 메모리 뱅크 인터페이스 버스(310)의 폭의 정수배이다. 특히, 각 감지 증폭기 회로는 1024 바이트의 폭(즉, 메모리 뱅크(301)-(304)의 물리적인 로우 폭)이고, 메모리 뱅크 인터페이스 버스(310)는 단 64바이트(512 비트)의 폭이다. 이러한 경우, 판동 동작 동안에는 선택된 메모리 뱅크가 연관된 감지 증폭기 회로에 1024 바이트인 데이터의 행을 제공한다. 이때, 선택된 메모리 뱅크에 대응하는 뱅크 로우 인터페이스 회로는 1024 바이트 행에 주어진 16개의 64-바이트 단어 중 하나를 메모리 뱅크 인터페이스 버스(310)에 전한다. 이러한 방식으로, 선택된 뱅크 로우 인터페이스 회로는 다중화 기능을 실행한다.
반대로, 기록 동작 동안에는 선택된 메모리 뱅크에 기록될 64-바이트 단어가 메모리 뱅크 인터페이스 버스(310)에 제공된다. 적절한 뱅크 로우 인터페이스 회로는 대응하는 감지 증폭기 회로내에서 16개의 64-바이트 단어 위치 중 선택된 하나에 이 64-바이트 단어를 전하도록 역다중화 기능을 실행한다. 이러한 방식으로, 뱅크 로우 인터페이스 회로(401)-(404)는 양방향성의 다중화/역다중화 기능을 실행한다.
다른 방법으로, 메모리 뱅크 인터페이스 버스(310)는 감지 증폭기 회로의 폭의 정수 배인 폭을 갖을 수 있다. 이러한 경우에, 각 뱅크 로우 인터페이스 회로(401)-(404)는 선택된 메모리 뱅크(즉, 다중 뱅크는 동시에 판독될 수 있다)로부터 판독된 데이터를 메모리 뱅크 인터페이스 버스(310)의 버스선 중 선택된 서브세트에 전하도록 역다중화 기능을 실행한다. 유사하게, 뱅크 로우 인터페이스 회로(401)-(404) 각각은 메모리 뱅크 인터페이스 버스(310)의 버스선 중 한 서브세트로부터 메모리 뱅크(301)-(304)에 기록될 데이터를 선택된 감지 증폭기 회로에 전하도록 다중화 기능을 실행한다.
메모리 뱅크 인터페이스 버스(310)는 뱅크 로우 인터페이스 회로(401)-(404)로부터 채널 로우 캐시 인터페이스 회로(501)-(507)와 버스 바이패스 회로(311)로 평행하게 확장된다. 채널 로우 캐시 인터페이스 회로(501)-(507)는 메모리 뱅크 인터페이스 버스(310)와 대응하는 채널 로우 캐시 회로(601)-(607) 사이의 인터페이스를 제공한다. 채널 로우 캐시 회로(601)-(607)의 폭은 메모리 뱅크 인터페이스 버스(310)의 폭 보다 더 넓거나 좁다. 그와 같이, 채널 로우 캐시 인터페이스 회로(501)-(507)는 필요한 경우 메모리 뱅크 인터페이스 버스(310)와 채널 로우 캐시 회로(601)-(607) 사이에서 다중화 및 역다중화 기능을 실행한다. 기술된 실시예에서는 채널 로우 캐시 회로(601)-(607)와 메모리 뱅크 인터페이스 버스(310)가 각각 64 바이트의 폭을 갖는다. 그래서, 본 실시예에서는 다중화 기능이 필요하지 않다. 이후 보다 상세히 기술될 바와 같이, 채널 로우 캐시 인터페이스 회로(501)-(507)의 동작은 가상 채널 제어 회로(325)에 의해 제어된다.
메모리 뱅크 인터페이스 버스(310)의 설계에 내포된 것은 메모리 뱅크(301)-(304)에 의해 판독 또는 기록 동작이 실행되는가 여부에 의존하여, 메모리 뱅크(301)-(304)나 채널 로우 캐시 회로(601)-(607)로부터 메모리 뱅크 인터페이스 버스(310)로 신호를 게이트(gate) 처리하는 타이밍 제어이다. 특히, 내포된 타이밍 제어는 채널 로우 캐시 인터페이스 회로(501)-(507)가 메모리 뱅크(301)-(304)로의 기록 동작 동안에 메모리 뱅크 인터페이스 버스(310)를 단기 구동시키는 것을 보장한다. 유사하게, 타이밍 제어는 뱅크 로우 인터페이스 회로(401)-(404)가 메모리 뱅크(301)-(304)로부터의 판독 동작 동안에 메모리 뱅크 인터페이스 버스(310)를 단지 구동시키는 것을 보장한다.
앞서 기술된 바와 같이, 각 채널 로우 캐시 인터페이스 회로(501)-(507)는 채널 로우 캐시 메모리(601)-(607) 중 대응하는 것에 연결된다. 채널 로우 캐시 메모리(601)-(607)의 수는 메모리 시스템(300)에서 캐시처리 가능한 가상 억세스 채널의 수를 정의한다. 비록 기술된 실시예에서는 7개의 캐시처리 가능한 가상 억세스 채널(1)-(7)이 주어지지만, 임의의 정수개의 캐시처리 가능한 가상 억세스 채널이 가능하다. 예를 들면, 또 다른 실시예에서는 15개의 캐시처리 가능한 가상 억세스 채널이 사용된다. 캐시처리 가능한 가상 억세스 채널의 수는 메모리 뱅크의 수보다 크거나 같거나, 또는 작을 수 있다. 채널 로우 캐시 메모리(601)-(607) 각각은 정수, N개의 독립적으로 로드가능하고 어드레스 지정가능한 캐시 입력을 갖고, 여기서 N은 1 보다 크거나 같은 정수이다. 즉, 채널 로우 캐시 메모리(601)-(607)는 적어도 하나의 캐시 입력을 갖는다. 각 캐시입력은 메모리 뱅크(301)-(304) 중 하나의 전체 또는 부분적인 행에 대응하는 다수의 데이터 바이트를 저장하는 용량(폭)을 갖는다. 채널 로우 캐시 회로(601)-(607) 각각은 메모리 뱅크(301)-(304) 중 하나로부터 평행하게 로드될 수 있다.
채널 로우 캐시 메모리(601)-(607) 각각은 캐시 로우 어드레스 레지스터(701)-(707) 중 대응하는 하나와 연관된다. 캐시 로우 어드레스 레지스터(701)-(707) 각각은 N개의 캐시 어드레스를 저장한다. 즉, 채널 로우 캐시 메모리(601)-(607)에서의 각 캐시 입력은 캐시 로우 어드레스 레지스터(701)-(707) 중 대응하는 하나에 저장된 대응하는 캐시 어드레스를 겆는다.
도 4는 본 발명의 한 실시에에 따른 채널 로우 캐시 메모리(601)와 캐시 로우 어드레스 레지스터(701)의 구조도이다. 본 실시예에서는 N이 2이므로, 채널 로우 캐시 메모리(601)에는 2개의 캐시 입력(601a), (601b)가 있고 캐시 로우 어드레스 레지스터(701)에는 대응하는 2개의 캐시 어드레스(701a), (701b)가 있다. 채널 로우 캐시 메모리(601)내의 제1캐시 입력(601a)은 64-바이트의 단어(B0)-(B63)이다. 채널 로우 어드레스 레지스터(701)내의 제1캐시 어드레스(701a)는 다음을 식별하는 어드레스를 저장한다: (1) 메모리 뱅크, (2) 로우 어드레스, 및 (3) 64-비트의 단어 (B0)-(B63)에 대응하는 칼럼 어드레스. 예를 들면, 캐시 로우 어드레스 레지스터(701)내의 제1캐시 어드레스(701a)는 채널 로우 캐시 메모리(601)내의 제1캐 입력(601a)이 메모리 뱅크(302), 로우 번호(256), 및 칼럼 위치(64)로부터 수신되었음을 나타낸다. 유사하게, 제2캐시 입력(601b)은 제2캐시 어드레스(701b)에 의해 식별되는 64-바이트 단어 (B'0)-(B'63)이다.
비록 캐시 로우 어드레스 레지스터(701)-(707)가 메모리 시스템(300)의 일부인 것으로 도시되지만, 다른 실시예에서, 이들 캐시 로우 어드레스 레지스터는 메모리 시스템(300)과 억세스하는 메모리 마스터의 제어기에서 실행될 수 있다.
채널 로우 캐시 인터페이스 회로(801)-(807)는 채널 로우 캐시 메모리(601)-(607)과 캐시 로우 어드레스 레지스터(701)-(707)를 메모리 시스템 인터페이스 버스(312)에 연결시킨다. 도 3은 메모리 시스템(300)내에서 어드레스 경로가 아니라 데이터 경로를 명확히 도시함을 주목한다. 채널 로우 캐시 메모리(601)-(607)가 64 바이트의 폭을 갖고, 메모리 시스템 인터페이스 버스(312)가 1 바이트의 폭을 갖기 때문에, 채널 로우 캐시 인터페이스 회로(801)-(807)는 이들 소자간의 데이터 전송을 가능하게 하도록 다중화 및 역다중화 기능을 실행한다. 채널 로우 캐시 인터페이스 회로(801)-(807)는 이후 보다 상세히 기술될 바와 같이 가상 채널 제어 회로(325)에 의해 제어된다.
버스 바이패스 회로(311)는 메모리 뱅크 인터페이스 버스(310)와 메모리 시스템 인터페이스 버스(312) 사이에 캐시처리 불가능한 가상 억세스 채널을 제공한다. 메모리 뱅크 인터페이스 버스(310)가 64 바이트의 폭을 갖고, 메모리 시스템 인터페이스 버스(312)가 1 바이트의 폭을 갖기 때문에, 버스 바이패스 회로(311)는 이들 버스 사이에 데이터 전송을 가능하게 하도록 다중화 및 역다중화 기능을 실행한다. 버스 바이패스 회로(311)는 이후 보다 상세히 기술될 바와 같은 가상 채널 제어 회로(325)에 의해 제어된다.
메모리 시스템 인터페이스 버스(312)는 채널 로우 캐시 인터페이스 회로(801)-(807), 버스 바이패스 회로(311), 및 가상 채널 제어 회로(325)를 메모리 시스템 인터페이스(314)에 연결시키는 평행한 버스이다. 메모리 시스템 인터페이스 버스(312)는 다중화된 어드레스/데이터 버스가 될 수 있다. 다른 방법으로, 전용 데이터 및 어드레스 경로는 메모리 시스템 인터페이스 버스(312)에 의해 제공될 수 있다. 메모리 시스템 인터페이스(314)는 메모리 시스템(300)과 연관된 입력/출력 핀 드라이버를 포함한다. 메모리 시스템 인터페이스(314)가 어드레스/데이터 다중화 버스에 연결되면, 메모리 시스템 인터페이스(314)에는 적절한 디멀티플렉서가 또한 제공된다. 메모리 시스템 인터페이스(314)는 또한 논리 전압 변환을 실행하는데 요구되는 회로를 제공한다.
가상 채널 제어 회로(325)는 뱅크 로우 인터페이스 회로(401)-(404), 채널 로우 캐시 인터페이스 회로(501)-(507), 캐시 로우 어드레스 레지스터(701)-(707), 캐시 로우 캐시 인터페이스 회로(801)-(807), 및 버스 바이패스 회로(311)를 제어하기 위한 제어 논리를 포함한다.
메모리 시스템(300)의 동작은 다음과 같이 진행된다. 먼저, 시스템 버스(315)에 연결된 외부 처리 시스템은 메모리 마스터가 어느 가상 억세스 채널과 억세스하게 되는가를 결정한다. 즉, 외부 처리 시스템은 각 메모리 마스터를 하나 이상의 가상 억세스 채널에 지정한다. 각 가상 억세스 채널은 하나 이상의 외부 메모리 마스터에 의해 억세스된다. 이러한 지정은 메모리 제어기 논리, 시스템 BIOS, 또는 동작 시스템의 메모리 관리 관리자 부분에 의해 결정된다. 지정은 정적(즉, 일단 지정되면 결코 변하지 않는) 또는 동적(즉, 메모리 관리자가 시스템 자원 변화에 따라 가상 채널 지정을 바꾸는)으로 될 수 있다. 가상 채널은 시스템 처리기에 의해 필요로 되는 바에 따라 지정될 수 있다.
메모리 억세스를 초기화하기 위해, 외부 메모리 마스터는 메모리 시스템 인터페이스(314)에 다음의 정보를 제공한다: (1) 현재 억세스의 뱅크, 로우, 및 칼럼 어드레스를 포함하는 현재 억세스 어드레스, (2) 억세스를 판독 또는 기록 동작으로 식별하는 판독/기록 신호, (3) 현재 억세스가 기록 동작인 경우의 기록 데이터 바이트, 및 (4) 메모리 마스터에 의해 억세스되는 가상 억세스 채널을 식별하는 다수의 가장 채널 선택 신호.
메모리 시스템 인터페이스(314)는 가상 채널 선택 신호를 가상 채널 제어 회로(325)에 제공하고, 그에 의해 메모리 마스터에 의해 억세스되는 가상 억세스 채널을 가상 채널 제어 회로(325)에 알린다. 메모리 시스템 인터페이스(314)는 또한 현재 억세스 어드레스를 가장 채널 제어 회로(325)에 제공한다. 응답하여, 가상 채널 제어 회로(325)는 선택된 가상 억세스 채널의 캐시 로우 어드레스 레지스터에 저장된 캐시 어드레스와 현재 억세스 어드레스를 비교한다. 예를 들어, 가상 채널 선택 신호가 채널 캐시 로우 메모리(601)와 캐시 로우 어드레스 레지스터(701)를 포함하는 가상 억세스 채널을 식별하면, 가상 채널 제어 회로(325)는 정합(캐시 히트)이 존재하는가 여부를 결정하도록 캐시 로우 어드레스 레지스터(701)내의 캐시 어드레스(701a), (701b)와 현재 억세스 어드레스를 비교한다.
[판독 동작]
정합이 존재하지 않고(캐시 미스), 판독/기록 신호는 메모리 억세스가 판독 동작임을 나타내면, 가상 채널 제어 회로(325)는 한 행의 1024 데이터 바이트가 메모리 뱅크(301)-(304) 중 하나로부터 판독되도록 한다. 특정한 행과 메모리 뱅크는 현재 억세스 어드레스에 응답해 선택된다. 선택된 메모리 뱅크는 종래의 SDRAM RAS-CAS 명령 순차를 이용해 억세스된다. 억세스된 행의 데이터 바이트는 어드레스 지정된 메모리 뱅크에 대응하는 뱅크 로우 인터페이스 회로에 제공된다. 가상 채널 제어 회로(325)는 또한 대응하는 이 뱅크 로우 인터페이스 회로가 64-바이트의 단어를 1024 데이터 바이트의 행으로부터 메모리 뱅크 인터페이스 버스(310)에 선택적으로 전하게 한다. 이러한 64-바이트 단어는 현재 억세스 어드레스의 칼럼 어드레스에 응답해 선택된다. 64-바이트 단어는 현재 억세스 어드레스에 대응하는 데이터 바이트와 63개의 다른 연속 데이터 바이트를 포함하도록 선택된다. 어드레스 지정된 데이터 바이트는 버스 바이패스 회로(311)를 통해 메모리 시스템 인터페이스(314)에 전해져 메모리 마스터에 제공된다. 버스 바이패스 회로(311)는 단지 수신된 64-바이트 단어 중 하나의 선택된 바이트만을 전달함을 주목한다.
부가하여, 64-바이트 단어는 메모리 뱅트 인터페이스 버스(310)로부터 채널 로우 캐시 인터페이스 회로(501)-(507)로 전해진다. 가상 채널 제어 회로(325)는 선택된 가상 억세스 채널에 대응하는 채널 로우 인터페이스 회로만을 인에이블시키고, 그에 의해 64-바이트 단어가 선택된 가상 억세스 채널의 채널 로우 캐시 메모리에 캐시 입력으로 기록되게 한다. 예를 들면, 가상 채널 제어 회로(325)는 64-바이트 단어가 채널 로우 캐시 메모리(601)의 캐시 입력(601a)에 기록되게 하도록 캐시 로우 인터페이스 회로(501)를 인에이블시킬 수 있다. 가상 채널 제어 회로(325)는 또한 현재 억세스 어드레스의 뱅크 어드레스, 로우 어드레스, 및 칼럼 어드레스 일부(즉, 64-바이트 단어의 칼럼 위치를 정의하는 부분)가 선택된 가상 억세스 채널의 캐시 로우 어드레스 레지스터에 기록되게 한다. 예를 들면, 가상 채널 제어 회로(325)는 현재 억세스 어드레스 중 적절한 부분이 캐시 로우 어드레스 레지스터(701)에서 캐리 어드레스(701a)로 기록되게 할 수 있다.
가상 억세스 채널당 단 하나의 캐시 입력만이 있으면, 캐시 미스는 선택된 가상 억세스 채널에서 이전 캐시 입력 및 대응하는 이전 캐시 어드레스의 오바라이트(overwrite)를 초래한다. 가상 억세스 채널의 깊이가 1 보다 크면, 캐시 미스는 선택된 가상 억세스 채널내에서 캐시 입력 및 대응하는 캐시 어드레스 중 하나의 업데이터를 초래한다. 업데이트되는 캐시 입력을 선택하는데 사용되는 방법은, 제한되지는 않지만, 하나 이상의 다음 방법을 포함할 수 있다: (1) 가장 덜 최근에 사용된 캐시 입력을 오버라이트, (2) 라운드-로빈(round-robin)을 근거로 입력을 오버라이트, (3) 캐시 입력을 무작위로 오버라이트, 및 (4) 새로운 로우 어드레스에 가장 가까운 로우 어드레스로 캐시 입력을 오버라이트.
가상 채널 제어 회로(325)는 현재 억세스 어드레스가 가상 채널 선택 신호(캐시 히트)에 의해 식별되는 가상 억세스 채널의 캐시 로우 어드레스 레지스터에 저장된 캐시 어드레스와 정합하는가를 검출한다. 캐시 히트를 검출하면, 가상 채널 제어 회로(325)는 선택된 가상 억세스 채널의 캐시 로우 인터페이스 회로(801)-(807)가 선택된 가상 억세스 채널의 채널 로우 캐시 메모리로부터 어드레스 지정된 데이터 바이트를 전달하는 것을 가능하게 한다. 예를 들면, 가상 채널 제어 회로(325)는 현재 억세스 어드레스가 캐시 로우 어드레스 레지스터(701)에 저장된 캐시 어드레스(701a)와 정합할 때 캐시 로우 인터페이스 회로(801)가 채널 로우 캐시 메모리(601)의 캐시 입력(601a)으로부터 데이터 바이트 B3를 전달하게 할 수 있다. 캐시 히트가 발생될 때 채널 로우 캐시 메모리(601)-(607)와 억세스하는 것은 더 느린 메모리 뱅크(301)-(304)를 억세스할 필요성을 제거한다.
가상 채널 제어 회로(325)는 또한 버스는 판독 억세스를 용이하게 할 수 있다. 이와 같은 실시예에서, 버스트 판독 억세스를 요구하는 메모리 마스터는 판독 동작이 버스트 판독 억세스임을 가상 채널 제어 회로(325)에 알리도록 버스터 인에이블 제어 신호를 전한다. 본 실시예에서, 가상 채널 제어 회로(325)는 버스터 억세스 제어 레지스터(도시되지 않은)를 포함한다. 버스트 억세스 제어 레지스터는 예를 들면, 8개의 5-비트 입력으로 분할되는 40-비트 레지스터가 될 수 있다. 각각의 5-비트 입력은 8개의 가상 억세스 채널 중 대응하는 하나에 대한 버스트 억세스 길이를 식별한다. 예를 들면, 가상 억세스 채널은 2, 4, 8, 16, 32, 또는 64 바이트의 버스트 억세스 길이를 갖을 수 있다. 다른 가상 억세스 채널은 가상 억세스 채널을 억세스하는 특정한 메모리 마스터의 특징에 의존하여 다른 버스트 억세스 길이를 갖을 수 있다. 버스트 억세스 제어 레지스터는 데이터 처리 시스템의 메모리 마스터 특징에 대해 외부 데이터 처리 시스템에 의해 프로그램된다. 가상 채널 제어 회로(325)는 버스트 억세스 동작을 제어한다.
양호한 실시예에서는 채널 로우 캐시 앨리어싱(aliasing)이 실행된다. 채널 로우 캐시 앨리어싱에서, 가상 채널 제어 회로(325)는 현재 억세스 어드레스가 캐시 로우 어드레스 레지스터(701)-(707) 중 임의의 것에 저장된 캐시 어드레스와 정합하는가 여부를 결정한다. 즉, 현재 억세스 어드레스는 단지 어드레스 지정된 가상 억세스 채널의 캐시 로우 어드레스와 비교되는 대신에, 모든 캐시 로우 어드레스와 비교된다. 이러한 정합이 존재하면, 가상 채널 제어 회로(325)는 이 가상 억세스 채널이 가상 채널 선택 신호에 의해 식별된 가상 억세스 채널이 아닐지라도, 원하는 데이터 바이트를 포함하는 가상 채널로부터 원하는 데이터 바이트가 회복되게 한다.
[기록 동작]
현재 억세스 어드레스가 임의의 가상 억세스 채널의 캐시 어드레스와 정합하지 않고, 판독/기록 신호는 메모리 억세스가 기록 동작임을 나타내면, 가상 채널 제어 회로(325)는 메모리 마스터에 의해 제공되는 기록 데이터 바이트가 가상 채널 선택 신호에 의해 식별된 채널 로우 캐시 메모리(601)-(607)에 기록되게 한다. 가상 채널 제어 회로(325)는 부가적으로 현재 억세스 어드레스를 반영하도록 대응하는 캐시 로우 어드레스 레지스터(701)-(707)를 업데이트한다. 단지 하나의 데이터 바이트만이 채널 로우 캐시 메모리(64 바이트를 저장하는)에 기록되기 때문에, 다른 63 바이트는 적절한 메모리 뱅크로부터의 채널 로우 캐시 메모리로 제공된다.
다음의 예는 캐시 미스에 대한 기록 동작을 명확하게 한다. 먼저, 현재 억세스 어드레스, 가상 채널 선택 신호, 기록 제어 신호, 및 데이터 바이트가 메모리 마스터로부터 가상 채널 제어 회로(325)로 전해진다. 본 예에서는 가상 채널 선택 신호가 캐시처리 가능한 가상 억세스 채널(1)을 식별하고(소자 (501), (601), (701), 및 (801)로 식별되는 바와 같이), 데이터 바이트 B3가 메모리 뱅크(301)-(304) 중 하나내에서 64-바이트 단어의 네 번째 데이터 바이트인 것으로 가정한다.
가상 채널 제어 회로(325)는 현재 억세스 어드레스를 캐시 로우 어드레스 레지스터(701)-(707)의 내용과 비교하고, 정합이 존재하지 않는 것으로 결정한다. 응답하여, 가상 채널 제어 회로(325)는 현재 억세스 레지스터를 캐시 로우 어드레스 레지스터(701)내의 캐시 어드레스(701a)로 기록한다. 가상 채널 제어 회로(325)는 또한 데이터 바이트 B3를 채널 로우 캐시 메모리(601)의 캐시 입력(601a)에서 네 번째 바이트 위치에 기록한다. 이 기록 동작은 캐시 로우 인터페이스 회로(801)를 통해 실행된다. 실질적으로 이 기록 동작과 나란하게, 가상 채널 제어 회로(325)는 메모리 뱅크(301)-(304)내의 현재 억세스 어드레스에서 64-바이트 데이터 단어를 억세스한다. 이 64-바이트 단어는 캐시 로우 인터페이스 회로(501)로 전해진다. 가상 채널 제어 회로(325)는 바이트 기록 마스킹(masking) 기능을 실행하도록 캐시 로우 인터페이스 회로(501)를 제어한다. 즉, 캐시 로우 인터페이스 회로(501)는 단지 64-바이트 단어 중 바이트 0-2 및 4-63을 채널 로우 캐시 메모리(601)의 캐시 입력(601a)에 전달한다. 이러한 방식으로, 전류 64-바이트 캐시 입력이 채널 로우 캐시 메모리(601)로 제공된다.
데이터 바이트 B3는 메모리 뱅크(301)-(304)로 즉시 기록 완료되지 않는다(즉, 기록 완료가 제거되지 않는다). 대신에, 데이터 바이트 B3는 캐시 입력(601a)이 재저장될 때까지 채널 로우 캐시 메모리(601)에 남아있다. 현재 억세스 어드레스에 이어지는 판독 억세스는 데이터 바이트 B3가 채널 로우 캐시 메모리(601)로부터 적절하게 판독되게 함을 주목한다. (캐시 로우 앨리어싱으로 인해). 결과적으로, 채널 로우 앨리어싱은 캐시 스누핑(snooping)에 대한 필요성을 제거한다. 즉, 새로운 기록 동작이 대응하는 캐시 입력을 업데이트하지 않고 메모리 뱅크(301)-(304)를 오버라이트하는가 여부를 결정하기 위해 새로운 기록 어드레스를 연속적으로 주시(스누프)할 필요가 없다.
현재 억세스 어드레스가 임의의 가상 억세스 채널의 캐시 어드레스와 정합하고(캐시 히트), 판독/기록 신호는 메모리 억세스가 기록 동작임을 나타내면, 가상 채널 제어 회로(325)는 메모리 마스터에 의해 제공되는 기록 데이터 바이트가 결과적으로 캐시 히트를 초래하는 캐시 입력으로 기록되게 한다.
예를 들어, 현재 억세스 어드레스가 채널 로우 어드레스 레지스터(701)에 저장된 캐시 어드레스(701a)에 대응하기 때문에 캐시 히트가 존재하면, 가상 채널 제어 회로(325)는 64-바이트 캐시 입력(601a)으로 바이트 중 하나를 오버라이트되도록 새로운 데이터 바이트가 캐시 로우 인터페이스 회로(801)에 전달되게 한다. 오버라이트될 바이트는 현재 억세스 어드레스에 의해 결정된다. 이 새로운 데이터 바이트는 캐시 로우 인터페이스 회로(801)에 의해 64-바이트 캐시 입력(601a)내의 적절한 바이트 위치로 전해진다. 캐시 로우 인터페이스 회로(801)는 가상 채널 제어 회로(325)로부터 수신된 제어 신호에 응답해 이러한 역다중화 기능을 실행한다. 이러한 방식으로, 메모리 시스템(300)내의 데이터 코히어런스(data coherence)가 유지된다.
캐시 입력(601a)은 메모리 뱅크(301)-(304)에 즉시 재저장되지 않는다. 대신에, 재저장 동작은 약간의 나중 시간까지 지연된다. 이는 각 데이터 바이트 이후에 메모리 뱅크(301)-(304)로의 억세스를 요구하지 않고 다수의 연속적인 데이터 바이트가 캐시 입력(601a)에 기록되는 것을 가능하게 한다. 메모리 마스터는 새로운 캐시 입력이 요구되도록 메모리 마스터가 예상할 때마다 캐시 입력의 내용이 적절한 메모리 뱅크의 적절한 행에 기록되도록 하는 재저장 명령을 전달할 수 있다. 재저장 명령은 가상 억세스 채널과 메모리 시스템 인터페이스(314) 사이의 또 다른 동작(판독 또는 기록)과 동시에 실행될 수 있다. 기술된 실시예에서, 다중 재저장 동작은 다중 메모리 뱅크(301)-(304)에서 동시에 실행될 수 있다. 뱅크간의 동시 재저장 동작은 재저장 명령이 메모리 마스터에 의해 다른 시간에 초기화된다는 사실로 인하여 스태거(stagger)된다. 이러한 스태거 현상은 가상 억세스 채널(1)-(8)에서 메모리 뱅크(301)-(304)로의 데이터 전송 동작을 완료하도록 메모리 뱅크 인터페이스 버스(310)가 다른 시간에서 사용되는 것을 보장한다. 호스트 메모리 제어기가 버스(310)의 상태를 용이하게 트래킹 처리하는 것을 가능하게 하기 위해, 재저장 동작은 고정된 수의 클럭 싸이클 기간을 갖도록 정의된다.
본 발명의 또 다른 특성에 따라, 다른 메모리 억세스 기능성은 가상 억세스 채널에 의해 실행될 수 있다. 예를 들면, 가상 억세스 채널은 또한 메모리 시스템(300)내에서 프리페치 동작을 실행할 수 있다. 프리페치는 다른 데이터 바이트가 가상 억세스 채널로부터 판독되고 있는 시간 동안에 메모리 어레이(301)-(304)로 부터 데이터 바이트를 회복하는 것을 칭한다. 호스트 메모리 제어기는 필요한 재저장 동작이 프리페치 동작을 실행하기 앞서 실행되는 것을 보장하도록 제어된다.
프리페치 명령은 메모리 마스터에 의해 전달될 수 있다. 프리페치 명령은 특정한 행이 메모리 뱅크(301)-(304) 중 특정한 하나로부터 판독되고 메모리 뱅크 인터페이스 버스(310)를 통해 가상 억세스 채널(1)-(8) 중 지정된 하나의 특정한 입력으로 로드되는 것을 지정한다. 프리페치 명령은 메모리 시스템 인터페이스 버스(312)상에서 가상 억세스 채널(1)-(8)과 메모리 시스템 인터페이스(314) 사이의 데이터 판독 또는 기록을 포함하는 동작과 동시에 실행될 수 있다. 더욱이, 메모리 뱅크(301)-(304) 각각은 다른 가상 억세스 채널내의 다른 캐시 입력에 대해 분리된 프리페치 동작을 실행할 수 있다. 물론, 메모리 뱅크(301)-(304)간의 이러한 동시 프리페치 동작은 프리페치 명령이 다른 시간에 전달/초기화된다는 사실로 인해 파이프라인(pipeline)처리된다(다른 동작 위상에서 스태그된다). 더욱이, 스태그된 실행 단계는 또한 메모리 뱅크(301)-(304)에서 가상 억세스 채널(1)-(8)로 데이터를 전송할 때 메모리 뱅크 인터페이스 버스(310)의 사용에서 충돌이 없도로 보장한다.
본 발명의 또 다른 특성에 따라, 가상 채널 제어 회로(325)는 8개의 가상 억세스 채널 각각에 대해 1 예비충전 제어 비트를 포함하는 8-비트 예비충전 제어 레지스터를 포함할 수 있다. 예비충전 제어 비트가 제1논리값을 가지면, 대응하는 가상 억세스 채널에서는 자동-예비충전이 실행된다. 자동-예비충전 모드에서는 채널 로우 캐시 메모리에 대한 각 기록 동작 이후에, 대응하는 기록 동작이 메모리 뱅크(301)-(304)로 실행된다. 예비충전 제어 비트가 제2논리값을 가지면, 대응하는 가상 억세스 채널에서는 비자동 예비충전이 실행된다.
앞서 논의된 바와 같이, 메모리 뱅크 인터페이스 버스(310)상에는 소정의 시간에 단 하나의 동작만이 실행될 수 있다. 유사하게, 메모리 시스템 인터페이스 버스(312)상에는 소정의 시간에 단 하나의 동작만이 실행될 수 있다. 그러나, 메모리 뱅크 인터페이스 버스(310) 및 메모리 시스템 인터페이스 버스(312)상에서는 동시 동작이 실행될 수 있다. 예를 들면, 데이터가 채널 로우 캐시 메모리로부터 메모리 시스템 인터페이스(314)로 판독되고 있는 시간과 같은 시간에 데이터가 메모리 뱅크로부터 채널 로우 캐시 메모리로 프리페치될 수 있다. 유사하게, 재저장 동작은 데이터가 채널 로우 캐시 메모리로부터 메모리 시스템 인터페이스(314)로 판독되고 있는 시간과 같은 시간에 채널 로우 캐시 메모리로부터 메모리 뱅크로 실행될 수 있다.
다른 방법의 실시예에서, 다중 메모리 시스템(칩)은 더 큰 채널 로우 캐시 메모리 및 더 넓은 출력 버스를 생성하도록 평행하게 연결될 수 있다. 예를 들어 메모리 시스템(300)과 동일한 8개의 메모리 시스템이 평행하게 연결되면, 그 결과는 64-비트 출력 버스가 된다. 8개의 가상 억세스 채널이 존재하게 되고, 각 가상 억세스 채널은 각 메모리 시스템내에서 한 채널 로우 캐시 메모리로 구성된다. 그래서, 8개의 가상 억세스 채널 각각은 512 바이트(8 × 64 바이트)의 폭을 갖게 된다.
또 다른 실시예에서, 채널 로우 캐시 메모리의 실효 길이는 두 채널 로우 캐시 메모리를 연쇄 연결시킴으로서 증가될 수 있다. 예를 들면, 채널 로우 캐시 메모리(601) 및 (602)가 다음의 같이 연쇄 연결될 수 있다. 먼저, 메모리 뱅크(301)내에서 한 행내의 64-바이트 단어가 채널 로우 캐시 메모리(601)내의 캐시 입력에 기록된다. 이 제1의 64 바이트 단어는 예를 들면, 메모리 뱅크로부터 판독된 데이터의 1024 바이트 행 중 처음 64 바이트가 될 수 있다. 제1의 64 바이트 단어는 한 번에 한 바이트씩 채널 로우 캐시 메모리(601)로부터 판독될 수 있다. 제1의 64 바이트 단어의 각 바이트는 캐시 로우 캐시 메모리(601)에서 순차적으로 판독되므로, 메모리 뱅크(301)로부터 제2의 64 바이트 단어가 판독되어 채널 로우 캐시 메모리(602)에 저장된다. 이 제2의 64 바이트 단어는 예를 들면, 메모리 로우 중 두 번째 64 바이트가 될 수 있다. 제2의 64 바이트 단어는 제1의 64 바이트 단어의 최종 바이트가 채널 로우 캐시 메모리(601)에서 판독되기 전에 채널 로우 캐시 메모리(602)에 저장된다. 그러므로, 제2의 64 바이트 단어는 제1의 64 바이트 단어 이후에 이어지는 방법으로 채널 로우 캐시 메모리(602)로부터 판독될 수 있다.
다른 방법의 실시예에서는 제2의 64 바이트 단어의 바이트가 채널 로우 캐시 메모리(602)에서 판독되는 동안에 제3의 64 바이트 단어가 메모리 뱅크(301)에서 판독되어 채널 로우 캐시 메모리(601)에 저장될 수 있다. 이러한 방법에서는 임의의 수의 64 바이트 단어가 함께 연쇄 연결될 수 있고, 그에 의해 무한한 길이를 갖는 채널 로우 캐시 메모리가 생성된다. 이와 같이 재순환하는 체인 구조는 특히 큰 메모리 블록을 통해 운영되는 경향이 있는 메모리 마스터에 대해 유용하다. 이러한 메모리 마스터는 화면 리프레쉬(refresh) 동작, 3D 그래픽을 위한 역 맵핑 동작에서 텍스쳐 맵(texture map)의 판독, 및 비디오열 처리를 포함한다.
가상 채널 제어 회로(325)는 다양한 가상 억세스 채널내에서 체인 모드를 제어하는 체인(chain) 제어 레지스터를 포함할 수 있다. 한 실시예에서, 체인 제어 레지스터는 16-비트 레지스터이고, 2-비트 입력은 8개의 가상 억세스 채널 각각에 대응한다. 이들 2 비트 입력 각각은 다음의 체인 옵션 중 하나를 식별하게 된다: (1) 체인이 없음, (2) 두 캐시 입력의 체인, 및 (3) 무한한 체인. 체인 제어 레지스터는 메모리 마스터의 동작 특성에 따라 외부 데이터 처리 시스템에 의해 프로그램된다.
상기의 방법으로, 각 가상 억세스 채널에는 자체의 독립적인 동작 특징이 제공될 수 있고, 그에 의해 가상 억세스 채널이 각 메모리 마스터의 동작 특징과 정합하도록 수정되는 것을 가능하게 한다.
상술된 메모리 시스템은 도 5 및 도 6에 도시된 데이터 처리 시스템에서 사용될 수 있다. 도 5는 가속화 그래픽 처리기(AGP)를 갖춘 개인용 컴퓨터(PC)(1000)의 블록도이다. PC(1000)는 상술된 실시예에 따른 병행성 시스템 메모리(1009)를 실행한다. 시스템 메모리(1009)는 다수의 평행하게 연결된 메모리 시스템(300a)-(300n)를 포함하고, 이들 각각은 실질적으로 상술된 메모리 시스템(300)(도 3)과 동일하다. 시스템 메모리(1009)는 처리기(1001), AGP 3-D 그래픽 처리기(1002), 남방 브릿지(south bridge) 회로(1003)(EISA/ISA 버스(1004)에 대한 마스터인), 및 PCI 버스 마스터(1005)(PCI 장치(1006)와 인터페이스되는)에 의해 독립적으로 억세스된다(북방 브릿지(north bridge) 회로(1008)를 통해). AGP 회로(1007)는 AGP 처리기(1002)와 북방 브릿지 회로(1008)를 사이에 인터페이스를 제공한다. 특정한 실시예에서, 이들 버스 마스터 각각(즉, 처리기(1001), AGP 처리기(1002), 남방 브릿지 회로(1003), 및 PCI 버스 마스터(1005))은 시스템 메모리(1009)에 주어진 하나 이상의 가상 채널의 제어를 가정한다. 특정한 가상 채널의 지정은 하드웨어 처리될 수 있고, 동작 시스템 중심 하에서 메모리 관리 코드에 의해 정적(전력이 on 상태인 동안 BIOS에 의해 결정되는 바와 같이) 또는 동적으로 관리될 수 있다. 4개의 캐시처리된 가상 채널은 (1) 처리기(1001) 지시 억세스, (2) 처리기(1001) 데이터 억세스, (3) AGP 처리기(1002) 텍스쳐 맵핑 억세스, 및 (4) PCI 버스 마스터(1005) 억세스로 지정된다. 비캐시처리된 가상 채널은 (1) 메모리 리프레쉬 및 (2) ISA 버스 마스터(1003)로 지정된다.
도 6은 병행성 메모리 시스템(300)을 실행하는 파이프라인 처리된 그래픽 시스템(1010)의 블록도이다. 비트 블리트 인(Bit Blit In) 엔진(1011), 비트 블리트 아웃(Bit Blit Out) 엔진(1012), 화면 리프레쉬 엔진(1013), 및 다각형 제도 엔진(1014)(각각은 종래의 처리 엔진)은 메모리 요구 인터리빙(interleaving) 논리 회로(1015)를 통해 낮은 잠재 시간의 메모리(1016)와 억세스하는 메모리 마스터로 각각 독립적으로 작용할 수 있다. 또 한편, 메모리(1016)는 실질적으로 상술된 메모리 시스템(300)과 동일한 다수의 메모리 시스템(300a)-(300n)을 포함한다. 또 한편, 각 메모리 마스터(1011)-(1014)는 시스템 메모리(1016)내에서 하나 이상의 가상 채널과 억세스하도록 지정된다.
또 다른 예에서, 본 발명의 메모리 시스템 2D/3D 그래픽 프레임 버퍼로 사용된다. 이러한 예에서는 4개의 캐시처리된 가상 채널이 각각 화면 리프레쉬 처리, 3D 표현 처리, 2D 제도 및 다각형 채우기 처리, 및 텍스쳐 맵핑 기록 처리에 맵화된다. 캐시처리된 가상 채널은 메모리 리프레시 처리에 맵화된다.
또 다른 실시예에서, 본 발명은 SDRAM 어레이와 연결되어 실행된다. 이러한 실시예에서는 4개의 캐시처리된 가상 채널 및 캐시처리않은 가상 채널의 선택을 가능하게 하도록 3개의 부가적인 핀이 종래의 SDRAM 메모리 칩에 부가된다. 소형 블록 억세스와 대형 블록 억세스에서 각각 2.0 내지 2.5배의 실행 이득이 실현될 수 있다.
또 다른 실시예에서, 본 발명은 RDRAM(RAMBUS DRAM) 어레이와 연결되어 실행된다. RDRAM은 전형적으로 각각이 캐시를 통한 2 KBytes의 기록을 포함하는 2개의 뱅크를 가진다. 이는 1 KByte 로우 캐시의 4 가상 채널을 포함하도록 수정된다. RDRAM 요구 패킷(packet)내의 비트는 가상 억세스 채널을 선택하는데 사용된다. 다중 메모리 마스터는 단일 파이프라인으로 연결된 병행성 제어기에 위치한다. RDRAM 메모리 칩에서는 80%의 실행 이득이 실현될 수 있다.
일반적으로, 각 시스템 처리기는 다수의 메모리 마스터를 포함하고, 각각은 다수의 종류의 처리 작업을 실행한다. 이러한 메모리 마스터는 실행되는 작업에 의해 결정된 바와 같이, 다른 주파수에서 메모리와 억세스할 수 있다. 각 메모리 마스터는 또한 모든 어드레스 소재지에서 판독/기록된 연속적인 바이트의 수에 대해 다른 작용을 나타내게 된다. 그래서, 메모리 시스템(300)과 억세스하는 물리적인 장치가 단 하나만 있더라도, 메모리 마스터의 다중성은 계속 주어질 수 있다. 대부분의 경우에서, 메모리 시스템(300)에는 다수의 물리적인 장치가 부착되고, 이들 물리적인 장치 각각은 하나 이상의 메모리 마스터를 포함한다.
상기는 본 발명의 원리와 양호한 실시예를 설명하였다. 그러나, 본 발명은 기술된 특정한 실시예에 제한되는 것으로 구성되지 말아야 한다. 상술된 실시예는 제한되는 것이라기 보다는 설명적인 것으로 간주되어야 한다. 다음의 청구항에 의해 정의된 바와 같은 본 발명의 범위에서 벗어나지 않고 종래 기술에 숙련된 자에 의해 변형이 이루어질 수 있다.

Claims (38)

  1. 시스템 버스에 연결되는 메모리 시스템에 있어서,
    메모리 버스,
    메모리 버스에 연결된 하나 이상의 메모리 뱅크(bank), 및
    시스템 버스와 메모리 버스 사이에 평행하게 연결되고, 각각이 하나 이상의 메모리 뱅크와 억세스하도록 메모리 억세스 자원의 세트를 제공하고, 또한 각각이 시스템 버스상에 제공된 신호에 의해 독립적으로 어드레스 지정가능한 다수의 가상 억세스 채널(vitrual access channel)을 구비하는 것을 특징으로 하는 메모리 시스템.
  2. 제1항에 있어서, 가상 억세스 채널이 캐싱(caching) 동작을 실행하는 다수의 캐시처리가능한 가상 억세스 채널을 구비하는 것을 특징으로 하는 메모리 시스템.
  3. 제2항에 있어서, 캐시처리가능한 가상 억세스 채널 각각이 데이터 캐시 메모리(cache memory) 및 대응하는 어드레스 캐시 메모리를 구비하는 것을 특징으로 하는 메모리 시스템.
  4. 제3항에 있어서, 각각의 데이터 캐시 메모리가 다수의 캐시 입력을 구비하고, 각각의 대응하는 어드레스 캐시 메모리가 대응하는 다수의 캐시 어드레스 입력을 구비하는 것을 특징으로 하는 메모리 시스템.
  5. 제2항에 있어서, 가상 억세스 채널이 캐시처리가능한 가상 억세스 채널을 바이패스(bypass)시키는 캐시처리불가능한 가상 억세스 채널을 더 구비하는 것을 특징으로 하는 메모리 시스템.
  6. 제1항에 있어서, 시스템 버스에서 수신된 신호에 응답해 가장 억세스 채널을 인에이블(enable)시키는 가상 채널 제어 회로를 더 구비하는 것을 특징으로 하는 메모리 시스템.
  7. 제2항에 있어서, 각 예비충전 제어 비트가 캐시처리가능한 가상 억세스 채널 중 하나에 대응하는 다수의 예비충전 제어 비트를 포함하는 예비충전 제어 레지스터를 더 구비하고, 각 예비충전 제어 비트가 대응하는 캐시처리가능한 가상 억세스 채널에 의해 실행되는 다수의 예비충전 모드 중 하나를 정의하는 것을 특징으로 하는 메모리 시스템.
  8. 제2항에 있어서, 각 버스트(burst) 길이 제어 바이트가 캐시처리가능한 가상 억세스 채널 중 하나에 대응하는 다수의 버스트 길이 제어 바이트를 저장하는 버스트 길이 제어 레지스터를 더 구비하고, 각 버스트 길이 제어 바이트가 대응하는 캐시처리가능한 가상 억세스 채널에 대한 버스트 억세스 길이를 정의하는 것을 특징으로 하는 메모리 시스템.
  9. 제8항에 있어서, 버스트 길이 제어 바이트가 다른 캐시처리가능한 가상 억세스 채널에 다른 버스트 억세스 길이를 제공하도록 독립적으로 프로그램가능한 것을 특징으로 하는 메모리 시스템.
  10. 제2항에 있어서, 다수의 체인(chain) 제어 바이트를 저장하는 체인 제어 레지스터를 더 구비하고, 각 체인 제어 바이트가 대응하는 캐시처리가능한 가상 억세스 채널내에서 실행되는 다수의 체인 모드 중 하나를 정의하는 것을 특징으로 하는 메모리 시스템.
  11. 제1항에 있어서, 메모리 버스상에서 메모리 뱅크로부터 지정된 가상 억세스 채널로 데이터를 프리페칭(prefetching)하는 수단을 더 구비하는 것을 특징으로 하는 메모리 시스템.
  12. 제11항에 있어서, 데이터를 프리페칭하는 수단이 메모리 뱅크 중 다른 것에서 프리페치 동작을 동시에 실행하는 것을 특징으로 하는 메모리 시스템.
  13. 제11항에 있어서, 데이터를 프리페칭하는 수단이 시스템 버스와 가상 억세스 채널 사이에서 데이터를 전송하는 시간과 같은 시간에 프리페치 동작을 실행하는 것을 특징으로 하는 메모리 시스템.
  14. 제1항에 있어서, 가상 억세스 채널에 저장된 데이터를 메모리 뱅크로 재저장하는 수단을 더 구비하는 것을 특징으로 하는 메모리 시스템.
  15. 제14항에 있어서, 데이터를 재저장하는 수단이 메모리 뱅크 중 다른 것에서 재저장 동작을 동시에 실행하는 것을 특징으로 하는 메모리 시스템.
  16. 제14항에 있어서, 데이터를 재저장하는 수단이 시스템 버스와 가상 억세스 채널 사이에서 데이터를 전송하는 시간과 같은 시간에 재저장 동작을 실행하는 것을 특징으로 하는 메모리 시스템.
  17. 메모리 시스템을 하나 이상의 외부 메모리 마스터(memory master)에 연결시키고, 메모리 마스터로부터 어드레스 및 데이터 정보를 수신하는 제1인터페이스 회로,
    제1인터페이스 회로로부터 어드레스 및 데이터 정보를 수신하도록 인터페이스 회로에 연결된 제1버스,
    메인 메모리 어레이(main memory array),
    메인 메모리 어레이에 연결되고, 메인 메모리 어레이로부터 판독된 데이터값을 수신하는 제2버스,
    제1버스를 제2버스에 연결시키는 버스 바이패스(bus bypass) 회로,
    제1버스와 제2버스 사이에 평행하게 연결되고, 각각이 제1버스와 제2버스로부터 데이터 정보를 수신하는 다수의 캐시 메모리 어레이, 및
    제1버스와 제2버스 사이에 평행하게 연결되고, 각각이 제1버스로부터 어드레스 정보를 수신하고, 각각이 또한 캐시 메모리 어레이 중 대응하는 하나에 연결되고, 또한 대응하는 캐시 메모리 어레이와 함께 각각이 하나 이상의 메모리 마스터에 의해 독립적으로 어드레스지정가능한 가상 캐시 채널을 형성하는 다수의 캐시 어드레스 어레이를 구비하는 것을 특징으로 하는 메모리 시스템.
  18. 제17항에 있어서, 메모리 어레이가 제2메모리 버스에 평행하게 연결된 다수의 메모리 뱅크를 구비하는 것을 특징으로 하는 메모리 시스템.
  19. 제17항에 있어서, 메모리 어레이가 제1데이터 폭을 갖고 제2버스는 제2데이터 폭을 갖고, 메모리 어레이와 제2버스 사이에 전달되는 데이터에 대해 다중화 기능을 실행하는 메모리 인터페이스 회로를 더 구비하는 것을 특징으로 하는 메모리 시스템.
  20. 제19항에 있어서, 제1데이터 폭이 제2데이터 폭 보다 더 큰 것을 특징으로 하는 메모리 시스템.
  21. 제19항에 있어서, 제1데이터 폭이 제2데이터 폭 보다 더 작은 것을 특징으로 하는 메모리 시스템.
  22. 제17항에 있어서, 각각이 제2버스 및 대응하는 캐시 메모리 어레이 사이에 연결되는 다수의 캐시 인터페이스 회로를 더 구비하고, 캐시 인터페이스 회로가 데이터를 선택된 캐시 메모리 어레이에 전하도록 제어되는 것을 특징으로 하는 메모리 시스템.
  23. 제17항에 있어서, 각각이 제1버스 및 대응하는 캐시 메모리 어레이 사이에 연결되는 다수의 캐시 인터페이스 회로를 더 구비하고, 메모리 마스터에 의해 제공된 현재 억세스 어드레스가 캐시 어드레스 어레이에 저장된 어드레스와 정합될 때 캐시 인터페이스 회로가 데이터를 선택된 캐시 메모리 어레이에서 제1버스로 전하도록 제어되는 것을 특징으로 하는 메모리 시스템.
  24. 제17항에 있어서, 각각의 캐시 메모리 어레이가 다수의 캐시 입력을 구비하고, 각각의 캐시 어드레스 어레이가 대응하는 다수의 캐시 어드레스를 구비하는 것을 특징으로 하는 메모리 시스템.
  25. 다수의 메모리 마스터로 메모리 어레이를 억세스하는 방법에 있어서,
    가상 억세스 시스템이 메모리 어레이에 평행하게 연결된 다수의 가상 억세스 채널을 포함하고, 각각의 가상 억세스 채널이 메모리 어레이를 억세스하도록 메모리 억세스 자원의 세트를 제공하는 경우에서, 가상 억세스 시스템을 메모리 어레이에 연결시키는 단계,
    하나 이상의 가상 억세스 채널을 억세스하도록 메모리 마스터 각각을 지정하는 단계,
    메모리 마스터로부터 가상 억세스 시스템으로 어드레스 신호를 제공하는 단계, 및
    어드레스 신호에 응답해 가상 억세스 채널 중 선택된 하나를 억세스하는 단계를 구비하는 것을 특징으로 하는 방법.
  26. 제25항에 있어서,
    가상 억세스 채널 중 선택된 것에 캐시 입력 및 대응하는 캐시 어드레스 입력을 저장하는 단계,
    어드레스 신호를 캐시 어드레스 입력과 비교하는 단계, 및
    현재 억세스 어드레스가 캐시 어드레스 입력과 정합하면 대응하는 캐시 입력을 억세스하는 단계를 더 구비하는 것을 특징으로 하는 방법.
  27. 제26항에 있어서, 버스 바이패스 회로를 통해 메모리 어레이를 억세스하고, 어드레스 신호가 캐시 어드레스 입력과 정합하지 않으면 이 억세스 처리를 반영하도록 가장 억세스 채널 중 선택된 것을 업데이트하는 단계를 더 구비하는 것을 특징으로 하는 방법.
  28. 제25항에 있어서, 가상 억세스 채널 중 두 개를 동시에 활성화시키는 단계를 더 구비하는 것을 특징으로 하는 방법.
  29. 제25항에 있어서, 다수의 가상 억세스 채널을 연쇄 연결시키는 단계를 더 구비하는 것을 특징으로 하는 방법.
  30. 제25항에 있어서, 각각의 가상 억세스 채널에 버스트 길이를 독립적으로 지정하는 단계를 더 구비하는 것을 특징으로 하는 방법.
  31. 제25항에 있어서, 각각의 가상 억세스 채널에 예비충전 모드를 독립적으로 지정하는 단계를 더 구비하는 것을 특징으로 하는 방법.
  32. 제25항에 있어서, 메모리 마스터 중 하나에 의해 전해진 프리페치 명령에 응답해 메모리 어레이로부터 가장 억세스 채널 중 선택된 하나로 데이터를 프리페칭시키는 단계를 더 구비하는 것을 특징으로 하는 방법.
  33. 제32항에 있어서, 데이터를 프리페칭시키는 단계와 동시에 메모리 마스터 중 하나와 가상 억세스 채널 중 하나 사이에 데이터를 전송하는 단계를 더 구비하는 것을 특징으로 하는 방법.
  34. 제25항에 있어서, 메모리 어레이가 다수의 메모리 뱅크를 구비하고, 상기 방법이 메모리 마스터에 의해 전해지는 다수의 프리페치 명령에 응답해 다수의 다중 뱅크로부터 대응하는 다수의 가상 억세스 채널로 데이터를 동시에 프리페칭시키는 단계를 더 구비하는 것을 특징으로 하는 방법.
  35. 제32항에 있어서, 메모리 마스터 중 하나에 의해 전해지는 재저장 명령에 응답해 가상 억세스 채널 중 선택된 하나에서 메모리 어레이로 데이터를 재저장하는 단계를 더 구비하고, 데이터를 재저장하는 단계가 데이터를 프리페칭시키는 단계와 동시에 실행되는 것을 특징으로 하는 방법.
  36. 제25항에 있어서, 메모리 마스터 중 하나에 의해 전해지는 재저장 명령에 응답해 가상 억세스 채널 중 선택된 하나에서 메모리 어레이로 데이터를 재저장하는 단계를 더 구비하는 것을 특징으로 하는 방법.
  37. 제36항에 있어서, 데이터를 재저장하는 단계와 동시에 메모리 마스터 중 하나와 가상 억세스 채널 중 하나 사이에 데이터를 전송하는 단계를 더 구비하는 것을 특징으로 하는 방법.
  38. 제25항에 있어서, 메모리 어레이가 다수의 메모리 뱅크를 구비하고, 상기 방법이 메모리 마스터에 의해 전해지는 다수의 재저장 명령에 응답해 다수의 가상 억세스 채널로부터 대응하는 다수의 메모리 뱅크로 데이터를 동시에 재저장하는 단계를 더 구비하는 것을 특징으로 하는 방법.
KR1019970060775A 1996-11-18 1997-11-18 가상 채널 메모리 시스템 KR100268321B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/746,829 US6167486A (en) 1996-11-18 1996-11-18 Parallel access virtual channel memory system with cacheable channels
US08/746,829 1996-11-18
US8/746,829 1996-11-18

Publications (2)

Publication Number Publication Date
KR19980042530A true KR19980042530A (ko) 1998-08-17
KR100268321B1 KR100268321B1 (ko) 2000-10-16

Family

ID=25002524

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970060775A KR100268321B1 (ko) 1996-11-18 1997-11-18 가상 채널 메모리 시스템

Country Status (7)

Country Link
US (3) US6167486A (ko)
EP (1) EP0843261A3 (ko)
JP (1) JPH10326225A (ko)
KR (1) KR100268321B1 (ko)
CN (1) CN1081360C (ko)
SG (1) SG55416A1 (ko)
TW (1) TW384426B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100594198B1 (ko) * 1999-05-14 2006-07-03 삼성전자주식회사 다중채널 램버스 시스템

Families Citing this family (96)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167486A (en) * 1996-11-18 2000-12-26 Nec Electronics, Inc. Parallel access virtual channel memory system with cacheable channels
JP3133004B2 (ja) * 1996-11-21 2001-02-05 株式会社日立製作所 ディスクアレイ装置およびその制御方法
US6118462A (en) 1997-07-01 2000-09-12 Memtrax Llc Computer system controller having internal memory and external memory control
US6771264B1 (en) 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
US6577317B1 (en) 1998-08-20 2003-06-10 Apple Computer, Inc. Apparatus and method for geometry operations in a 3D-graphics pipeline
AU5686299A (en) * 1998-08-20 2000-03-14 Raycer, Inc. Method and apparatus for generating texture
US6182183B1 (en) * 1998-11-13 2001-01-30 Sonics, Inc. Communications system and method with multilevel connection identification
US6442666B1 (en) * 1999-01-28 2002-08-27 Infineon Technologies Ag Techniques for improving memory access in a virtual memory system
EP1059588A1 (en) * 1999-06-09 2000-12-13 Texas Instruments Incorporated Multi-channel dma with request scheduling
JP2001014840A (ja) 1999-06-24 2001-01-19 Nec Corp 複数ラインバッファ型メモリlsi
DE19951046A1 (de) * 1999-10-22 2001-04-26 Siemens Ag Speicherbaustein für ein Mehrprozessorsystem und Mehrprozessorsystem
US6539487B1 (en) * 1999-11-09 2003-03-25 International Business Machines Corporation System for dynamically selecting maximum number of accessible banks of memory per cycle by monitoring actual power to each of the banks to determine the number of accessible banks
US6708254B2 (en) * 1999-11-10 2004-03-16 Nec Electronics America, Inc. Parallel access virtual channel memory system
DE19956829A1 (de) * 1999-11-25 2001-06-07 Siemens Ag Speichereinrichtung für Prozessorsysteme
US6791555B1 (en) 2000-06-23 2004-09-14 Micron Technology, Inc. Apparatus and method for distributed memory control in a graphics processing system
US6973542B1 (en) * 2000-07-18 2005-12-06 International Business Machines Corporation Detecting when to prefetch inodes and then prefetching inodes in parallel
US6546461B1 (en) * 2000-11-22 2003-04-08 Integrated Device Technology, Inc. Multi-port cache memory devices and FIFO memory devices having multi-port cache memory devices therein
US6892279B2 (en) 2000-11-30 2005-05-10 Mosaid Technologies Incorporated Method and apparatus for accelerating retrieval of data from a memory system with cache by reducing latency
US6587920B2 (en) * 2000-11-30 2003-07-01 Mosaid Technologies Incorporated Method and apparatus for reducing latency in a memory system
US6981073B2 (en) * 2001-07-31 2005-12-27 Wis Technologies, Inc. Multiple channel data bus control for video processing
DE10151733A1 (de) * 2001-10-19 2003-04-30 Infineon Technologies Ag Prozessor-Speicher-System
US6839797B2 (en) 2001-12-21 2005-01-04 Agere Systems, Inc. Multi-bank scheduling to improve performance on tree accesses in a DRAM based random access memory subsystem
US7389387B2 (en) * 2001-12-31 2008-06-17 Intel Corporation Distributed memory module cache writeback
WO2003081454A2 (de) * 2002-03-21 2003-10-02 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
ITRM20020281A1 (it) * 2002-05-20 2003-11-20 Micron Technology Inc Metodo ed apparecchiatura per accesso rapido di memorie.
US7133972B2 (en) 2002-06-07 2006-11-07 Micron Technology, Inc. Memory hub with internal cache and/or memory access prediction
US7200024B2 (en) 2002-08-02 2007-04-03 Micron Technology, Inc. System and method for optically interconnecting memory devices
US7117316B2 (en) 2002-08-05 2006-10-03 Micron Technology, Inc. Memory hub and access method having internal row caching
US7254331B2 (en) 2002-08-09 2007-08-07 Micron Technology, Inc. System and method for multiple bit optical data transmission in memory systems
US7149874B2 (en) 2002-08-16 2006-12-12 Micron Technology, Inc. Memory hub bypass circuit and method
US6754117B2 (en) 2002-08-16 2004-06-22 Micron Technology, Inc. System and method for self-testing and repair of memory modules
US7836252B2 (en) 2002-08-29 2010-11-16 Micron Technology, Inc. System and method for optimizing interconnections of memory devices in a multichip module
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
US7102907B2 (en) 2002-09-09 2006-09-05 Micron Technology, Inc. Wavelength division multiplexed memory module, memory system and method
KR101051506B1 (ko) * 2002-09-30 2011-07-22 텔레폰악티에볼라겟엘엠에릭슨(펍) 스케일러블 멀티채널 메모리 액세스를 위한 방법 및 메모리제어기
US7990390B2 (en) 2002-10-22 2011-08-02 Broadcom Corporation Multi-pass system and method supporting multiple streams of video
US7395538B1 (en) * 2003-03-07 2008-07-01 Juniper Networks, Inc. Scalable packet processing systems and methods
US7360020B2 (en) * 2003-03-31 2008-04-15 Sun Microsystems, Inc. Method for improving cache-miss performance
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
US7428644B2 (en) 2003-06-20 2008-09-23 Micron Technology, Inc. System and method for selective memory module power management
US7260685B2 (en) 2003-06-20 2007-08-21 Micron Technology, Inc. Memory hub and access method having internal prefetch buffers
US7107415B2 (en) 2003-06-20 2006-09-12 Micron Technology, Inc. Posted write buffers and methods of posting write requests in memory modules
US7389364B2 (en) 2003-07-22 2008-06-17 Micron Technology, Inc. Apparatus and method for direct memory access in a hub-based memory system
CN100343827C (zh) * 2003-07-28 2007-10-17 华为技术有限公司 基于二层的虚拟专用网业务介质访问控制地址收敛方法
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
US20050050237A1 (en) * 2003-08-28 2005-03-03 Jeddeloh Joseph M. Memory module and method having on-board data search capabilities and processor-based system using such memory modules
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
US7356648B2 (en) * 2003-10-02 2008-04-08 International Business Machines Corporation Shared buffer having hardware controlled buffer regions
TW200515147A (en) * 2003-10-17 2005-05-01 Matsushita Electric Ind Co Ltd Semiconductor memory device, controller, and read/write control method thereof
US7120743B2 (en) 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
US7216196B2 (en) 2003-12-29 2007-05-08 Micron Technology, Inc. Memory hub and method for memory system performance monitoring
US7330992B2 (en) 2003-12-29 2008-02-12 Micron Technology, Inc. System and method for read synchronization of memory modules
US7042792B2 (en) * 2004-01-14 2006-05-09 Integrated Device Technology, Inc. Multi-port memory cells for use in FIFO applications that support data transfers between cache and supplemental memory arrays
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
US7181584B2 (en) 2004-02-05 2007-02-20 Micron Technology, Inc. Dynamic command and/or address mirroring system and method for memory modules
US7412574B2 (en) * 2004-02-05 2008-08-12 Micron Technology, Inc. System and method for arbitration of memory responses in a hub-based memory system
US7366864B2 (en) 2004-03-08 2008-04-29 Micron Technology, Inc. Memory hub architecture having programmable lane widths
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
US7213082B2 (en) 2004-03-29 2007-05-01 Micron Technology, Inc. Memory hub and method for providing memory sequencing hints
US7447240B2 (en) 2004-03-29 2008-11-04 Micron Technology, Inc. Method and system for synchronizing communications links in a hub-based memory system
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
US7120753B2 (en) * 2004-04-20 2006-10-10 International Business Machines Corporation System and method for dynamically adjusting read ahead values based upon memory usage
US7162567B2 (en) 2004-05-14 2007-01-09 Micron Technology, Inc. Memory hub and method for memory sequencing
US7222213B2 (en) 2004-05-17 2007-05-22 Micron Technology, Inc. System and method for communicating the synchronization status of memory modules during initialization of the memory modules
US7363419B2 (en) 2004-05-28 2008-04-22 Micron Technology, Inc. Method and system for terminating write commands in a hub-based memory system
JP4656862B2 (ja) * 2004-05-28 2011-03-23 ルネサスエレクトロニクス株式会社 半導体装置
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
US7339592B2 (en) * 2004-07-13 2008-03-04 Nvidia Corporation Simulating multiported memories using lower port count memories
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
WO2006051780A1 (ja) * 2004-11-10 2006-05-18 Matsushita Electric Industrial Co., Ltd. 同時アクセスするバンク数が異なるメモリコントローラに対応した不揮発性メモリ装置
US7555682B2 (en) * 2005-05-13 2009-06-30 Texas Instruments Incorporated Distributed width trace receiver
US9298311B2 (en) 2005-06-23 2016-03-29 Apple Inc. Trackpad sensitivity compensation
US8032688B2 (en) * 2005-06-30 2011-10-04 Intel Corporation Micro-tile memory interfaces
WO2007057726A1 (en) * 2005-11-17 2007-05-24 Freescale Semiconductor, Inc. Multi-port high-level cache unit and a method for retrieving information from a multi-port high-level cache unit
JP5157207B2 (ja) 2007-03-16 2013-03-06 富士通セミコンダクター株式会社 半導体メモリ、メモリコントローラ、システムおよび半導体メモリの動作方法
US20100058016A1 (en) * 2008-08-26 2010-03-04 Jari Nikara Method, apparatus and software product for multi-channel memory sandbox
US20120117317A1 (en) 2009-08-20 2012-05-10 Rambus Inc. Atomic memory device
US8375173B2 (en) 2009-10-09 2013-02-12 Qualcomm Incorporated Accessing a multi-channel memory system having non-uniform page sizes
US8631207B2 (en) * 2009-12-26 2014-01-14 Intel Corporation Cache memory power reduction techniques
TWI456579B (zh) * 2010-03-26 2014-10-11 Silicon Motion Inc 提昇錯誤更正能力之方法以及相關之記憶裝置及其控制器
JP5585171B2 (ja) * 2010-03-31 2014-09-10 富士通株式会社 ストレージ制御装置、ストレージシステム及びストレージ制御方法
US10838886B2 (en) 2011-04-19 2020-11-17 Micron Technology, Inc. Channel depth adjustment in memory systems
US20130111149A1 (en) * 2011-10-26 2013-05-02 Arteris SAS Integrated circuits with cache-coherency
US9336129B2 (en) 2013-10-02 2016-05-10 Sandisk Technologies Inc. System and method for bank logical data remapping
EP3268864B1 (en) * 2015-03-11 2021-01-27 Rambus Inc. High performance non-volatile memory module
WO2019189457A1 (ja) * 2018-03-28 2019-10-03 株式会社Cmc医薬 2成分混合型プレフィルドシリンジキット
US10691347B2 (en) * 2018-06-07 2020-06-23 Micron Technology, Inc. Extended line width memory-side cache systems and methods
CN111428973B (zh) * 2020-03-11 2024-04-12 慧镕电子系统工程股份有限公司 一种能有效提高资源利用率的虚拟资源分配方法

Family Cites Families (112)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3740723A (en) * 1970-12-28 1973-06-19 Ibm Integral hierarchical binary storage element
US3898632A (en) * 1974-07-15 1975-08-05 Sperry Rand Corp Semiconductor block-oriented read/write memory
US4298929A (en) * 1979-01-26 1981-11-03 International Business Machines Corporation Integrated multilevel storage hierarchy for a data processing system with improved channel to memory write capability
US4354225A (en) * 1979-10-11 1982-10-12 Nanodata Computer Corporation Intelligent main store for data processing systems
US4330852A (en) * 1979-11-23 1982-05-18 Texas Instruments Incorporated Semiconductor read/write memory array having serial access
JPS5720983A (en) * 1980-07-15 1982-02-03 Hitachi Ltd Memory chip
CA1187198A (en) * 1981-06-15 1985-05-14 Takashi Chiba System for controlling access to channel buffers
US4608668A (en) * 1981-09-03 1986-08-26 Tokyo Shibaura Denki Kabushiki Kaisha Semiconductor device
US4541075A (en) * 1982-06-30 1985-09-10 International Business Machines Corporation Random access memory having a second input/output port
US4491915A (en) * 1982-11-30 1985-01-01 Rca Corporation Multiprocessor-memory data transfer network
JPS59180871A (ja) * 1983-03-31 1984-10-15 Fujitsu Ltd 半導体メモリ装置
JPH069114B2 (ja) * 1983-06-24 1994-02-02 株式会社東芝 半導体メモリ
JPS6050297A (ja) * 1983-08-30 1985-03-19 Matsushita Seiko Co Ltd 扇風機
US4646270A (en) * 1983-09-15 1987-02-24 Motorola, Inc. Video graphic dynamic RAM
US4663735A (en) * 1983-12-30 1987-05-05 Texas Instruments Incorporated Random/serial access mode selection circuit for a video memory system
JPH0760422B2 (ja) * 1983-12-30 1995-06-28 株式会社日立製作所 記憶ロツク方式
US4577293A (en) * 1984-06-01 1986-03-18 International Business Machines Corporation Distributed, on-chip cache
JPS60258792A (ja) * 1984-06-04 1985-12-20 Toshiba Corp ダイナミツクram
US4794559A (en) * 1984-07-05 1988-12-27 American Telephone And Telegraph Company, At&T Bell Laboratories Content addressable semiconductor memory arrays
DE3582376D1 (de) * 1984-08-03 1991-05-08 Toshiba Kawasaki Kk Halbleiterspeicheranordnung.
US4725945A (en) * 1984-09-18 1988-02-16 International Business Machines Corp. Distributed cache in dynamic rams
JPH0793009B2 (ja) * 1984-12-13 1995-10-09 株式会社東芝 半導体記憶装置
DE3543911A1 (de) * 1984-12-14 1986-06-26 Mitsubishi Denki K.K., Tokio/Tokyo Digitale verzoegerungseinheit
JPS61160898A (ja) * 1985-01-05 1986-07-21 Fujitsu Ltd 半導体記憶装置
JPH0652632B2 (ja) * 1985-01-23 1994-07-06 株式会社日立製作所 ダイナミツク型ram
US4731758A (en) * 1985-06-21 1988-03-15 Advanced Micro Devices, Inc. Dual array memory with inter-array bi-directional data transfer
JPS6238590A (ja) * 1985-08-13 1987-02-19 Fujitsu Ltd 半導体記憶装置
US4837746A (en) * 1985-12-04 1989-06-06 Advanced Micro Devices, Inc. Method and apparatus for resetting a video SRAM
JPH07114074B2 (ja) * 1985-12-18 1995-12-06 株式会社日立製作所 半導体記憶装置
JPH0642313B2 (ja) * 1985-12-20 1994-06-01 日本電気株式会社 半導体メモリ
US4829471A (en) * 1986-02-07 1989-05-09 Advanced Micro Devices, Inc. Data load sequencer for multiple data line serializer
JPH07111822B2 (ja) * 1986-03-07 1995-11-29 株式会社日立製作所 半導体記憶装置
US4719601A (en) * 1986-05-02 1988-01-12 International Business Machine Corporation Column redundancy for two port random access memory
JPH0740430B2 (ja) * 1986-07-04 1995-05-01 日本電気株式会社 メモリ装置
JPS6381692A (ja) * 1986-09-26 1988-04-12 Hitachi Ltd 半導体記憶装置
JPS63136391A (ja) * 1986-11-27 1988-06-08 Nec Corp 半導体メモリ装置
US4894770A (en) * 1987-06-01 1990-01-16 Massachusetts Institute Of Technology Set associative memory
CA1302584C (en) * 1987-07-30 1992-06-02 Alliant Computer Systems Corporation Parallel processing computer in which memory access priorities are varied
JP2714944B2 (ja) * 1987-08-05 1998-02-16 三菱電機株式会社 半導体記憶装置
US5179687A (en) * 1987-09-26 1993-01-12 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device containing a cache and an operation method thereof
US5226147A (en) * 1987-11-06 1993-07-06 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device for simple cache system
JPH01159891A (ja) * 1987-12-17 1989-06-22 Mitsubishi Electric Corp 半導体記憶装置
US4943944A (en) * 1987-11-25 1990-07-24 Kabushiki Kaisha Toshiba Semiconductor memory using dynamic ram cells
JPH01146187A (ja) * 1987-12-02 1989-06-08 Mitsubishi Electric Corp キヤッシュメモリ内蔵半導体記憶装置
JPH0748301B2 (ja) * 1987-12-04 1995-05-24 富士通株式会社 半導体記憶装置
US5214769A (en) * 1987-12-24 1993-05-25 Fujitsu Limited Multiprocessor control system
JPH0760595B2 (ja) * 1988-01-12 1995-06-28 日本電気株式会社 半導体メモリ
US5025366A (en) * 1988-01-20 1991-06-18 Advanced Micro Devices, Inc. Organization of an integrated cache unit for flexible usage in cache system design
US5184320A (en) * 1988-02-12 1993-02-02 Texas Instruments Incorporated Cached random access memory device and system
US5202968A (en) * 1988-03-30 1993-04-13 Kabushiki Kaisha Toshiba Expansion system
US5329489A (en) * 1988-03-31 1994-07-12 Texas Instruments Incorporated DRAM having exclusively enabled column buffer blocks
US4870622A (en) * 1988-06-24 1989-09-26 Advanced Micro Devices, Inc. DRAM controller cache
US5481496A (en) * 1988-06-27 1996-01-02 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device and method of data transfer therefor
JPH0713857B2 (ja) * 1988-06-27 1995-02-15 三菱電機株式会社 半導体記憶装置
JP2776841B2 (ja) * 1988-09-28 1998-07-16 株式会社日立製作所 ディスク制御装置におけるディスクアクセス制御方法
US4928246A (en) * 1988-10-21 1990-05-22 Iowa State University Research Foundation, Inc. Multiple channel data acquisition system
US5535359A (en) * 1988-12-02 1996-07-09 Mitsubishi Denki Kabushiki Kaisha Computer system with cache memory having address mask register
CN1016743B (zh) * 1988-12-03 1992-05-20 国际商业机器公司 虚拟存储器管理系统和方法
US4965717A (en) * 1988-12-09 1990-10-23 Tandem Computers Incorporated Multiple processor system having shared memory with private-write capability
US5202972A (en) * 1988-12-29 1993-04-13 International Business Machines Corporation Store buffer apparatus in a multiprocessor system
KR910009555B1 (ko) * 1989-01-09 1991-11-21 조경연 싱글 포트 듀얼 ram(spdram)
FR2642195B1 (fr) * 1989-01-20 1991-04-26 Centre Nat Rech Scient Dispositif et procede d'arbitrage des requetes et de resolution des conflits lies a l'acces aux memoires a bancs independants pour les machines informatiques
DE69020384T2 (de) * 1989-02-27 1996-03-21 Nec Corp Integrierte Halbleiterspeicherschaltung mit Möglichkeit zum Maskieren des Schreibens im Speicher.
US4989180A (en) * 1989-03-10 1991-01-29 Board Of Regents, The University Of Texas System Dynamic memory with logic-in-refresh
US5060144A (en) * 1989-03-16 1991-10-22 Unisys Corporation Locking control with validity status indication for a multi-host processor system that utilizes a record lock processor and a cache memory for each host processor
US5193166A (en) * 1989-04-21 1993-03-09 Bell-Northern Research Ltd. Cache-memory architecture comprising a single address tag for each cache memory
CA2011518C (en) * 1989-04-25 1993-04-20 Ronald N. Fortino Distributed cache dram chip and control method
US5130922A (en) * 1989-05-17 1992-07-14 International Business Machines Corporation Multiprocessor cache memory system using temporary access states and method for operating such a memory
US5287484A (en) * 1989-06-21 1994-02-15 Hitachi, Ltd. Multi-processor system for invalidating hierarchical cache
JPH0350297A (ja) 1989-07-18 1991-03-04 Asahi Glass Co Ltd テトラフルオロエタン系冷凍機用組成物
US5214610A (en) * 1989-09-22 1993-05-25 Texas Instruments Incorporated Memory with selective address transition detection for cache operation
US4984214A (en) * 1989-12-05 1991-01-08 International Business Machines Corporation Multiplexed serial register architecture for VRAM
JP2777247B2 (ja) * 1990-01-16 1998-07-16 三菱電機株式会社 半導体記憶装置およびキャッシュシステム
JP2880547B2 (ja) * 1990-01-19 1999-04-12 三菱電機株式会社 半導体記憶装置
US5134616A (en) * 1990-02-13 1992-07-28 International Business Machines Corporation Dynamic ram with on-chip ecc and optimized bit and word redundancy
US5388243A (en) * 1990-03-09 1995-02-07 Mti Technology Corporation Multi-sort mass storage device announcing its active paths without deactivating its ports in a network architecture
JP2938511B2 (ja) * 1990-03-30 1999-08-23 三菱電機株式会社 半導体記憶装置
JP2862948B2 (ja) * 1990-04-13 1999-03-03 三菱電機株式会社 半導体記憶装置
US5289413A (en) * 1990-06-08 1994-02-22 Kabushiki Kaisha Toshiba Dynamic semiconductor memory device with high-speed serial-accessing column decoder
US5202973A (en) * 1990-06-29 1993-04-13 Digital Equipment Corporation Method of controlling a shared memory bus in a multiprocessor system for preventing bus collisions and for ensuring a full bus
US5359722A (en) * 1990-07-23 1994-10-25 International Business Machines Corporation Method for shortening memory fetch time relative to memory store time and controlling recovery in a DRAM
ATE130447T1 (de) * 1990-09-27 1995-12-15 Siemens Nixdorf Inf Syst Multiprozessorsystem mit gemeinsamem speicher.
US5249282A (en) * 1990-11-21 1993-09-28 Benchmarq Microelectronics, Inc. Integrated cache memory system with primary and secondary cache memories
US5265235A (en) * 1990-11-30 1993-11-23 Xerox Corporation Consistency protocols for shared memory multiprocessors
DE69129401T2 (de) * 1990-12-25 1998-10-29 Mitsubishi Electric Corp Halbleiterspeichervorrichtung mit einem grossen Speicher und einem Hochgeschwindigkeitsspeicher
JP2715004B2 (ja) * 1991-01-07 1998-02-16 三菱電機株式会社 半導体メモリ装置
US5594885A (en) * 1991-03-05 1997-01-14 Zitel Corporation Method for operating a cache memory system using a recycled register for identifying a reuse status of a corresponding cache entry
JPH04307495A (ja) * 1991-04-04 1992-10-29 Mitsubishi Electric Corp 半導体記憶装置
US5652723A (en) * 1991-04-18 1997-07-29 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device
AU2476192A (en) * 1991-08-16 1993-03-16 Multichip Technology High-performance dynamic memory system
US5349583A (en) * 1991-08-16 1994-09-20 International Business Machines Corporation Multi-channel token ring
JPH05210974A (ja) * 1991-10-03 1993-08-20 Smc Standard Microsyst Corp 同一チップ上でのスタティックキャッシュメモリとダイナミックメインメモリとの結合システム
JP3451099B2 (ja) * 1991-12-06 2003-09-29 株式会社日立製作所 外部記憶サブシステム
US5291444A (en) * 1991-12-23 1994-03-01 Texas Instruments Incorporated Combination DRAM and SRAM memory array
US5388237A (en) * 1991-12-30 1995-02-07 Sun Microsystems, Inc. Method of and apparatus for interleaving multiple-channel DMA operations
EP0895162A3 (en) 1992-01-22 1999-11-10 Enhanced Memory Systems, Inc. Enhanced dram with embedded registers
JPH07506921A (ja) 1992-03-06 1995-07-27 ランバス・インコーポレーテッド コンピュータ・システムにおける主記憶装置のアクセス時間とキャッシュ・メモリのサイズを最小限にするためのキャッシュへの先取り
US5390308A (en) * 1992-04-15 1995-02-14 Rambus, Inc. Method and apparatus for address mapping of dynamic random access memory
US5471601A (en) * 1992-06-17 1995-11-28 Intel Corporation Memory device and method for avoiding live lock of a DRAM with cache
JPH06103213A (ja) * 1992-09-18 1994-04-15 Hitachi Ltd 入出力装置
US5502828A (en) * 1992-12-18 1996-03-26 Advanced Micro Devices, Inc. Reducing memory access in a multi-cache multiprocessing environment with each cache mapped into different areas of main memory to avoid contention
US5649162A (en) * 1993-05-24 1997-07-15 Micron Electronics, Inc. Local bus interface
JP2894170B2 (ja) * 1993-08-18 1999-05-24 日本電気株式会社 メモリ装置
US5381370A (en) * 1993-08-24 1995-01-10 Cypress Semiconductor Corporation Memory with minimized redundancy access delay
US5619673A (en) * 1994-06-29 1997-04-08 Intel Corporation Virtual access cache protection bits handling method and apparatus
US5652724A (en) * 1994-12-23 1997-07-29 Micron Technology, Inc. Burst EDO memory device having pipelined output buffer
CN1077700C (zh) * 1995-02-17 2002-01-09 曼特亚克公司 可编程调控交插存取存储器管理系统
US5878240A (en) * 1995-05-11 1999-03-02 Lucent Technologies, Inc. System and method for providing high speed memory access in a multiprocessor, multimemory environment
US5875462A (en) * 1995-12-28 1999-02-23 Unisys Corporation Multi-processor data processing system with multiple second level caches mapable to all of addressable memory
US5895481A (en) * 1996-05-22 1999-04-20 Cypress Semiconductor Corp. Programmable VESA unified memory architecture (VUMA) row address strobe (RAS)
JP3142777B2 (ja) 1996-05-22 2001-03-07 帝人株式会社 芳香族ポリアミド剛毛
US6167486A (en) * 1996-11-18 2000-12-26 Nec Electronics, Inc. Parallel access virtual channel memory system with cacheable channels

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100594198B1 (ko) * 1999-05-14 2006-07-03 삼성전자주식회사 다중채널 램버스 시스템

Also Published As

Publication number Publication date
KR100268321B1 (ko) 2000-10-16
CN1184971A (zh) 1998-06-17
US6327642B1 (en) 2001-12-04
JPH10326225A (ja) 1998-12-08
SG55416A1 (en) 1998-12-21
US6167486A (en) 2000-12-26
US6477621B1 (en) 2002-11-05
EP0843261A2 (en) 1998-05-20
TW384426B (en) 2000-03-11
CN1081360C (zh) 2002-03-20
EP0843261A3 (en) 2000-02-23

Similar Documents

Publication Publication Date Title
KR100268321B1 (ko) 가상 채널 메모리 시스템
US6708254B2 (en) Parallel access virtual channel memory system
US5555528A (en) Dynamic random access memory persistent page implemented as processor register sets
US5390308A (en) Method and apparatus for address mapping of dynamic random access memory
US4803621A (en) Memory access system
US5421000A (en) Memory subsystem having a static row memory and a dynamic RAM
US6836816B2 (en) Flash memory low-latency cache
JP3466047B2 (ja) 複数ポート・インターリーブ・キャッシュ
EP0407119B1 (en) Apparatus and method for reading, writing and refreshing memory with direct virtual or physical access
US5251310A (en) Method and apparatus for exchanging blocks of information between a cache memory and a main memory
EP0473302A2 (en) Memory device with improved means for controlling data transfer
JPH08227380A (ja) データ処理システム
US5761714A (en) Single-cycle multi-accessible interleaved cache
EP0611026A1 (en) Dual-port data cache memory
US5161219A (en) Computer system with input/output cache
US6324632B1 (en) Processing a data stream
JPH11328018A (ja) スヌ―プ・ポ―トを用いるプリフェッチ・キャッシュ問い合わせのための方法及びシステム
US5732405A (en) Method and apparatus for performing a cache operation in a data processing system
EP0535701A1 (en) Architecture and method for combining static cache memory and dynamic main memory on the same chip (CDRAM)
JPH0282330A (ja) ムーブアウト・システム
US4594690A (en) Digital storage apparatus including sections exhibiting different access speeds
US5434990A (en) Method for serially or concurrently addressing n individually addressable memories each having an address latch and data latch
EP0969513A2 (en) Embedded enhanced DRAM with integrated logic circuit, and associated method
US6553463B1 (en) Method and system for high speed access to a banked cache memory
EP0611462B1 (en) Memory unit including a multiple write cache

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120621

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20130621

Year of fee payment: 14

LAPS Lapse due to unpaid annual fee