KR100268204B1 - 메모리제어기및데이타처리시스템 - Google Patents

메모리제어기및데이타처리시스템 Download PDF

Info

Publication number
KR100268204B1
KR100268204B1 KR1019970006788A KR19970006788A KR100268204B1 KR 100268204 B1 KR100268204 B1 KR 100268204B1 KR 1019970006788 A KR1019970006788 A KR 1019970006788A KR 19970006788 A KR19970006788 A KR 19970006788A KR 100268204 B1 KR100268204 B1 KR 100268204B1
Authority
KR
South Korea
Prior art keywords
data
level cache
cache
memory
memory controller
Prior art date
Application number
KR1019970006788A
Other languages
English (en)
Other versions
KR970071282A (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 KR970071282A publication Critical patent/KR970071282A/ko
Application granted granted Critical
Publication of KR100268204B1 publication Critical patent/KR100268204B1/ko

Links

Images

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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching

Landscapes

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

Abstract

룩 어사이드 캐쉬 구성(look-aside cache architecture)을 갖는 데이터 처리 시스템내의 개선된 메모리 제어기가 공개된다. 데이터 처리 시스템은 이와 연관된 상위 레벨 캐쉬를 구비한 프로세서와, 연관된 제어기 메모리를 구비한 메모리 제어기와, 프로세서와 메모리 제어기 사이에 결합된 프로세서 버스와, 주 메모리를 포함한다. 데이터 처리 시스템은 프로세서와 메모리 제어기와 병렬로 프로세서에 결합된 하위 레벨 캐쉬를 더 포함한다. 본 발명의 제 1 특징에 따르면, 메모리 제어기는 하위 레벨 캐쉬에 의해 서비스되지 않으며 연관된 데이터가 교체된 수정된 캐쉬 라인이 아닌 기록 요구의 수신에 응답하여, 메모리 제어기와 연관된 제어기 메모리내에 연관된 데이터를 저장함으로써 데이터 처리 시스템내의 데이터 저장을 최적화 하는 로직을 포함한다. 본 발명의 제 2 특징에 따르면, 메모리 제어기는 주 메모리에만 존재하는 정보에 대한 요구의 수신에 응답하여, 주 메모리로부터 요구된 정보를 인출하고 주 메모리에서 상기 요구된 데이터에 인접한 추가의 정보를 사전인출 버퍼내에 저장함으로써 사전인출된 정보에 액세스 하는 시간을 최소화하는 로직(logic)을 포함한다.

Description

메모리 제어기 및 데이터 처리 시스템{MEMORY CONTROLLER WITHIN A DATA PROCESSING SYSTEM FOR CACHING STACK OPERATIONS AND PREFETCHING DATA FROM MEMORY}
본 발명은 일반적으로 데이터 처리 시스템에 관한 것으로서, 보다 구체적으로는 데이터 처리 시스템내의 데이터 저장을 관리하기 위한 장치에 관한 것이다. 특히, 본 발명은 프로세서에 의한 가능한 후속 액세스를 위해 스택 동작(stack operation)을 저장(cache)하고, 선택된 정보를 사전인출(prefetche)하는 룩 어사이드 캐쉬 구성(look-aside cache architecture)을 갖는 데이터 처리 시스템내의 메모리 제어기에 관한 것이다.
지연 시간(latency)을 감소시키기 위하여, 데이터 처리 시스템은 점차 일정한 구조의 캐쉬 메모리를 이용한다. 본 기술 분야의 당업자에게 잘 알려진 바와 같이, 캐쉬는 주 메모리에 존재하는 빈번히 액세스되는 인스트럭션과 데이터의 복사본을 저장하는데 이용되는 소형의 고속, 고가인, 제로 대기 상태(zero wait state)를 갖는 메모리이다. 80486, 인텔 펜티엄 (Intel PentiumTM), 아이 비 엠(IBM) 파워 PCTM또는 유사한 프로세서를 이용하는 가장 최근의 개인용 컴퓨터는 전형적으로 온 칩(on-chip) 레벨 1 (L1)의 프로세서 캐쉬를 포함한다. 또한, 이들 개인용 컴퓨터는 시스템 성능을 더욱 향상시키기 위해 빈번히 레벨 2 (L2) 캐쉬를 포함한다. L1 및 L2 캐쉬를 모두 구비하는 캐쉬 시스템은 전형적으로 두 방식 중 한 방식으로 구성된다. 첫번째 캐쉬 시스템 구조에서, L2 캐쉬는 프로세서와 시스템 또는 메모리 버스 사이에 직렬 형태로 인터페이스된다. 이 구조는 통상 룩 스루(look through) 또는 인 라인(in-line) 구조로 지칭되며, 프로세서는 메모리 또는 시스템 버스와 직접 통신할 수 없으며, L2 캐쉬 제어기에 의해 제공되는 인터페이스를 통하여 통신한다.
인 라인 L2 캐쉬 구조는 일반적으로 최적의 성능을 제공하지만, 많은 개인용 컴퓨터 시스템은 룩 어사이드 구성에 의해 옵션으로서 L2 캐쉬를 지원함으로써, 성능을 향상시킬 수 있도록 L2 캐쉬를 설치할 수 있는 옵션을 제공하면서도 진입 단계의 컴퓨터 시스템의 가격을 낮출 수 있도록 하고 있다. 룩 어사이드 구성에서, L2 캐쉬는 프로세서 및 메모리 제어기와 모두 병렬로 프로세서 버스에 결합되며, 따라서 메모리 제어기는 프로세서 버스와 접속된 플러그형 모듈에 편리하게 설치될 수 있다.
룩 어사이드 L2 캐쉬 구성을 이용하는 컴퓨터 시스템에서, L2 캐쉬와 메모리 제어기는 각각 프로세서가 메모리 판독을 개시하는 것에 응답하여 프로세서 메모리 판독 사이클을 동시에 시작한다. L2 캐쉬 판독 히트(hit)에 응답하여, L2 캐쉬는 지정된 메모리 판독을 중지하도록 메모리 제어기에 신호를 보내고, 요구 데이터를 제로 대기 상태로 프로세서에 복귀시킨다. 그러나, L2 캐쉬 판독 미스(miss)의 경우, 메모리 제어기는 주 메모리로부터 요구 데이터를 인출하고, 마치 L2 캐쉬가 존재하지 않는 것처럼 데이터를 프로세서로 복귀시킨다. L2 캐쉬와 메모리 제어기가 모두 동시에 프로세서 데이터 판독 요구를 동시에 서비스하기 시작하기 때문에, 룩 어사이드 캐쉬 구성을 갖는 컴퓨터 시스템은 데이터 판독 기간 동안 L2 캐쉬 미스에 대해 더 이상의 패널티(panalty)가 발생하지 않는다.
그러나, 룩 어사이드 구조를 이용하여 컴퓨터 시스템내에서 L2 캐쉬를 구현하는 것은 전형적으로 부수적인 성능상의 저해 요인을 갖는다. 예를 들면, 데이터 기록 동안 룩 어사이드 L2 캐쉬에서 캐쉬 미스가 발생될 경우, 프로세서가 메모리 제어기에 데이터를 기록하는 동안 필요한 캐쉬 라인을 인출하기 위해 L2 캐쉬가 프로세서 버스의 제어를 얻을 수 없기 때문에 성능상의 저해 요인이 발생한다. 결국, 룩 어사이드 L2 캐쉬는 전형적으로 기록 미스시에 캐쉬 라인 할당을 구현하지 않는다. 또한, 프로세서 버스에 대한 경쟁은 또한 I/O 동작 동안 프로세서가 L2 캐쉬에 액세스할 수 없기 때문에 I/O 동작 동안 시스템 성능을 저하시킨다. 룩 어사이드 L2 캐쉬 구성의 또다른 한계는 L1 캐쉬 라인 크기보다 큰 캐쉬 라인 크기를 효율적으로 지원하지 않는다는 점이다. 이와 대조적으로, 인 라인 L2 캐쉬 라인은 빈번히 데이터 국부성(data locality)에 관한 통계상의 확률에 근거하여 인스트럭션과 데이터를 사전인출함으로써 캐쉬 미스 비율을 감소할 수 있도록 빈번히 L1 캐쉬 라인의 길이의 2배로 되도록 설계된다.
따라서 명백한 바와 같이, 데이터 처리 시스템내에 선택사양적인 룩 어사이드 L2 캐쉬를 구현하기 위한 개선된 방법 및 시스템을 제공하는 것이 바람직하다. 특히, 데이터 처리 시스템내에서 L2 기록 미스에 관한 할당을 지원하고, 데이터 및 인스트럭션의 사전인출을 가능하게 하는 룩 어사이드 L2 캐쉬 구성을 갖는 개선된 캐쉬 시스템을 제공하는 것이 바람직하다.
본 발명의 목적은 개선된 데이터 처리 시스템을 제공하는 것이다.
본 발명의 또다른 목적은 데이터 처리 시스템내의 데이터 저장을 관리하기 위한 개선된 장치를 제공하는 것이다.
본 발명의 또다른 목적은 데이터 처리 시스템내에서 프로세서에 의한 후속 액세스를 위해 스택 동작을 저장하고, 선택된 정보를 사전인출하는 룩 어사이드 캐쉬 구성을 갖는 개선된 메모리 제어기를 제공하는 것이다.
상기 목적은 이제 설명되는 바와 같이 달성된다. 데이터 처리 시스템내에서 룩 어사이드 캐쉬 구성을 갖는 개선된 메모리 제어기가 기술된다. 데이터 처리 시스템은 연관된 상위 레벨 캐쉬를 구비하는 프로세서, 연관된 제어기 메모리를 갖춘 메모리 제어기, 프로세서와 메모리 제어기 사이에 접속된 프로세서 버스 및 주 메모리를 포함한다. 데이터 처리 시스템은 프로세서 및 메모리 제어기와 병렬로 프로세서 버스에 결합된 하위 레벨 캐쉬를 더 포함한다. 본 발명의 제 1 특징에 따르면, 메모리 제어기는 하위 레벨 캐쉬에 의해 서비스되지 않고 연관 데이터가 교체된 수정 캐쉬 라인이 아닌 기록 요구의 수신에 응답하여, 메모리 제어기와 연관된 제어기 메모리내에 연관 데이터를 저장함으로써, 데이터 처리 시스템내의 데이터 저장을 최적화하는 로직을 포함한다. 본 발명의 제 2 특징에 따르면, 메모리 제어기는 주 메모리에만 존재하는 정보에 대한 요구의 수신에 응답하여, 주 메모리로부터 요구된 정보를 인출하고 사전인출 버퍼내에 주 메모리에서 상기 요구된 데이터와 인접한 추가의 정보를 저장함으로써, 사전인출된 정보에 액세스하는 시간을 최소화하는 로직을 포함한다.
본 발명에 대한 상기 목적 뿐만 아니라 추가의 목적, 특성 및 장점은 다음의 상세한 설명으로부터 명백해질 것이다.
도 1은 본 발명의 방법 및 시스템에 따른 데이터 처리 시스템의 상위 레벨 블럭도,
도 2는 본 발명의 방법 및 시스템에 따른 메모리 제어기의 보다 상세한 블럭 도,
도 3은 본 발명의 방법의 바람직한 실시예에 대한 상위 레벨 로직 흐름도,
도 4는 인스트럭션 인출 요구를 서비스하기 위해 본 발명을 채용하는 메모리 제어기에 의해 이용된 방법의 바람직한 실시예의 상위 레벨 로직 흐름도,
도 5는 데이터 기록 요구를 서비스하기 위해 본 발명을 채용하는 메모리 제어기에 의해 이용된 방법의 바람직한 실시예의 상위 레벨 로직 흐름도,
도 6은 데이터 판독 요구를 서비스하기 위해 본 발명을 채용하는 메모리 제어기에 의해 이용된 방법의 바람직한 실시예의 상위 레벨 로직 흐름도.
도면의 주요 부분에 대한 부호의 설명
10 : 데이터 처리 시스템 12 : 중앙 처리 장치(CPU)
14 : 온 보드 레벨 1(L1) 캐쉬 16 : L2 캐쉬
17 : L2 캐쉬 제어기 18 : 프로세서 버스
20 : 메모리 제어기 22 : 주 메모리
24 : 시스템 버스 26 : 판독 전용 메모리(ROM)
28 : I/O 어댑터 30 : 보조 기억 장치
32 : 디스플레이 어댑터 40 : 판독/기록 버퍼
42 : 기록 버퍼 44 : 인스트럭션 사전인출 버퍼
45 : 무효 비트 46 : 데이터 사전인출 버퍼
47 : 무효 비트
48 : 기록 할당/판독 무효화(WA/RI) 캐쉬
50 : 캐쉬 제어기 및 태그 52 : 제어 회로
본 발명의 신규한 특성으로 믿어지는 특징은 첨부된 청구 범위에 제시된다. 그러나, 본 발명 그 자체 뿐만 아니라, 본 발명의 바람직한 사용 방식, 또다른 목적 및 장점은 첨부된 도면과 함께 이하에 기술된 예시적인 실시예의 상세한 설명을 참조함으로써 가장 잘 이해될 것이다.
도면, 특히 도 1을 참조하여, 본 발명의 방법 및 시스템에 따른 데이터 처리 시스템의 바람직한 실시예에 대한 블럭도가 설명된다. 본 기술 분야의 당업자에게 명백한 바와 같이, 데이터 처리 시스템(10)에서 본 발명과 연관되지 않은 많은 세부 사항은 명료성을 위해 생략되었다. 도시된 바와 같이, 데이터 처리 시스템(10)은 소프트웨어 인스트럭션을 실행하는 중앙 처리 장치(CPU)(12)를 포함한다. 어떤 적절한 마이크로프로세서라도 CPU(12)용으로 이용될 수 있지만, CPU(12)는 아이 비 엠(IBM) 마이크로일렉트로닉스사의 PowerPCTM계열의 마이크로프로세서 중 하나인 것이 바람직하다. 이와 달리, CPU(12)는 인텔 펜티엄(Intel PentiumTM) 또는 80486 마이크로프로세서로서 구현될 수 있다. 데이터 및 인스트럭션 액세스 시간을 개선하기 위하여, CPU(12)는 온보드(on-board) 레벨 1(L1)캐쉬(14)를 구비한다. 이하의 설명에서 L1 캐쉬(14)의 캐쉬 라인 크기는 X 바이트의 길이를 갖는 것으로 기술되지만, 본 발명의 바람직한 실시예예서는 CPU(12)의 워드 길이는 8 바이트이며, L1 캐쉬(14)의 캐쉬 라인 길이는 32 바이트이다. CPU(12)는 프로세서 버스(18)에 결합되며, 프로세서 버스(18)는 CPU(12), L2 캐쉬(16) 및 메모리 제어기(20) 사이에서 데이터 및 인스트럭션의 통신을 용이하게 하기 위하여 대역폭이 8 바이트인 것이 바람직하다.
도시된 바와 같이, L2 캐쉬(16)는 룩 어사이드 캐쉬 구성으로 CPU(12) 및 메모리 제어기(20)와 병렬로 프로세서 버스(18)에 결합된다. 따라서, CPU(12)에 의해 프로세서 버스(18)를 경유하여 전송된 판독 및 기록 요구는 메모리 제어기(20)와 L2 캐쉬(16)에 의해 동시에 수신된다. L2 캐쉬 히트에 응답하여, L2 캐쉬(16)는 메모리 제어기(20)로 하여금 지정된 동작을 중지하고 요구 데이터를 CPU(12)로 제로 대기 상태로 복귀시키도록 신호한다. L2 캐쉬(16)는 공유 버스상에서 여러 가지 캐쉬 라인 크기를 갖는 다중 캐쉬를 지원할 때 발생하는 복잡성을 피하기 위하여 X 바이트의 캐쉬 라인 길이를 갖는 것이 바람직하다. 도시된 바와 같이, L2 캐쉬(16)는 L2 캐쉬(16)의 동작을 제어하는 L2 캐쉬 제어기(17)를 포함한다. 따라서, L2 캐쉬 제어기(17)는 선택된 일관성 프로토콜(coherency protocol)을 관철함으로써 L2 캐쉬의 일관성을 유지하고, 주 메모리(22)내의 메모리 어드레스와 연관된 데이터가 캐쉬 처리 가능한지, 혹은 L2 캐쉬(16)내에 상주할 수 있는가 판단하며, 많은 다른 통상적인 캐쉬 관리 기능을 수행한다.
데이터 처리 시스템(10)은 메모리 제어기(20)를 더 포함한다. 메모리 제어기(20)는 L2 캐쉬(16)에 의해 서비스될 수 없는 CPU(12)로부터의 판독 및 기록 요구에 응답하여 주 메모리(22)로부터 데이터 및 인스트럭션을 인출하는 로직 회로를 포함한다. 따라서, 메모리 제어기(20)는 CPU(12)와 주 메모리(22) 사이에 메모리 인터페이스를 제공한다. 또한, 메모리 제어기(20)는 시스템 버스(24)와 CPU(12)와 주 메모리(22) 사이에 시스템 버스 인터페이스를 제공하는 로직 회로를 포함한다. 본 발명의 바람직한 실시예에서, 메모리 제어기(20)내의 시스템 버스 인터페이스는 특정 어드레스가 I/O 장치에 할당된 어드레스로 매핑(map)될 경우 CPU(12)로부터 수신된 데이터를 시스템 버스(24)로 전송함으로써 메모리 맵 I/O(memory mapped I/O)를 지원한다.
도 1에 더 도시된 바와 같이, 데이터 처리 시스템(10)은 각각 시스템 버스(24)에 접속된 판독 전용 메모리(ROM)(26), I/O 어댑터(28), 보조 기억 장치(30) 및 디스플레이 어댑터(32)를 포함한다. ROM(26) 및 보조 기억 장치(30)는 운영 체제(operating system)와 응용 프로그램과 데이터를 저장한다. I/O 어댑터(28)는 사용자가 데이터 및 인스트럭션을 입력할 수 있도록 하기 위하여 마우스 또는 키보드와 같은 입력 장치를 데이터 처리 시스템(10)에 부착하는 것을 지원한다. 디스플레이 어댑터(32)는 비디오 디스플레이 장치를 부착함으로써, 사용자에게 데이터를 출력할 수 있게 한다.
도 2에는 본 발명의 방법 및 시스템에 따른 메모리 제어기(20)의 로직 구조에 대한 상세한 설명도가 도시된다. 도시된 바와 같이, 메모리 제어기(20)는 통상적인 판독/기록 버퍼(40) 및 기록 버퍼(42)를 포함한다. 판독/기록 버퍼(40)는 CPU(12)로부터 프로세서 버스(18)를 경유하여 송수신된 데이터를 버퍼로서 저장하는데 이용된다. 기록 버퍼(42)는 주 메모리(22)에 기록될 데이터를 버퍼로서 저장하는데 이용된다. 각각의 판독/기록 버퍼(40) 및 기록 버퍼(42)는 예를 들면, 메모리 제어기(20)와 CPU(12) 사이의 버스트 전송(burst transfer)과 같은 효율적인 데이터 전송을 지원하기 위해 L1 캐쉬(14)의 캐쉬 라인과 동일한 길이를 갖는 것이 바람직하다.
본 발명에 따르면, 메모리 제어기(20)는 인스트럭션 사전인출 버퍼(instruction prefetch buffer; IPB)(44)와 데이터 사전인출 버퍼(data prefetch buffer; DPB)(46)를 더 포함한다. IPB(44)와 DPB(46)는 CPU(12)용 데이터와 인스트럭션을 사전인출하기 위해 메모리 제어기(20)에 의해 이용된다. 위에서 설명된 바와 같이, 참조의 국부성(locality of reference) 원리에 근거하여, 메모리로부터 각각의 인출 기간 동안 데이터 및 인스트럭션의 부가적인 L1 캐쉬 라인을 사전인출하기 위해 2:1의 L2 대 L1 캐쉬 라인 크기 비를 구현함으로써 캐쉬 미스 비율이 상당히 감소되는 것으로 나타났다. 룩 어사이드 캐쉬 구성이 이용될 때 다양한 L2 및 L1 캐쉬 라인 크기가 쉽게 지원되지 않기 때문에, 메모리 제어기(20)는 특정한 인출 동작의 기간 동안 주 메모리(22)로부터 데이터 또는 인스트럭션의 두 캐쉬 라인을 인출하고, CPU(12)에 의해 요구된 한참 후 캐쉬 라인에 포함된 데이터와 인스트럭션을 IPB(44)와 DPB(46) 중 적절한 한 곳에 저장한다. 따라서, 이하에 좀더 상세히 설명되는 바와 같이, 메모리 제어기(20)는 L2 캐쉬(16)의 룩 어사이드 구조와 함께 데이터 및 인스트럭션의 사전인출을 지원한다.
본 발명의 또다른 특징에 따르면, 메모리 제어기(20)는 기록 할당/판독 무효화(write allocate/read invalidate; WA/RI) 캐쉬(48)와 그 연관 캐쉬 제어기 및 태그(tag)(50)도 또한 포함한다. 룩 어사이드 L2 캐쉬를 구현하는 종래의 데이터 처리 시스템내에서, 메모리 제어기는 L2 캐쉬 기록 미스에 응답하여 프로세서로부터 수신된 데이터를 주 메모리에 단순히 기록한다. 따라서, 통상적인 룩 어사이드 캐쉬는 전형적으로 기록 미스에 응답하여 캐쉬 라인을 할당하지는 않는다. 이러한 저장 장치 운영 방안은 교체된 캐쉬 라인이 곧 또다시 액세스될 확률이 낮기 때문에 기록될 데이터가 교체된 L1 또는 L2 캐쉬 라인인 경우 유익하다. 그러나, 데이터 기록이 스택 동작일 경우, 기록 미스에 응답하여 캐쉬 라인을 할당하는 것을 실패하면 시스템 성능을 저하시킨다.
본 기술 분야의 당업자에게 잘 알려진 바와 같이, 스택은 변수를 절약하는 프로시쥬어(procedure) 호출 및 다른 소프트웨어 동작 기간 동안 변수를 절약하기 위하여 사용되는 논리적 선입/후출(first-in/last-out; FILO) 큐(queue)이다. 스택 동작은 하나의 데이터 위치에 변수를 먼저 기록하고(푸시(push)), 그 다음 이 데이터 위치를 판독하는(팝(pop)) 경향이 있다. 스택 데이터가 전형적으로 단 한번 판독될 것이기 때문에, 스택 데이터는 팝 이후에는 무효인 것으로 간주된다. 본 발명에 따르면, 푸시 스택 동작을 효율적으로 지원하기 위하여, 메모리 제어기(20)내의 WA/RI 캐쉬(48)는 단일 워드(넌 버스트(non-burst)) 기록인 L2 캐쉬(16)의 기록 미스에 캐쉬 라인을 할당한다. WA/RI 캐쉬(48)는 버스트 기록이 전형적으로 더 이상 저장될 필요가 없는 교체된 캐쉬 라인을 나타내기 때문에 다중 워드 기록(버스트 기록)에 캐쉬 라인을 할당하지 않는다. 또한 WA/RI 캐쉬(48)는 판독 히트(팝) 이후에 데이터를 무효화한다.
마지막으로, 메모리 제어기(20)는 도 3 내지 도 6 내에서 설명된 논리적 처리에 따라 메모리 제어기(20)의 동작을 관리하는 제어 회로(52)를 포함한다. 도 3 내지 도 6을 검토해 보면, 본 기술 분야의 당업자에게는 본 명세서에서 직렬 형태로 설명된 많은 동작이 실제로 병렬로 수행될 수도 있음이 명백할 것이다. 먼저, 도 3을 참조하면, 본 발명의 방법 및 시스템에 따른 메모리 제어기(20)의 동작의 상위 레벨 논리가 설명된다. 설명된 바와 같이, 처리는 블럭(60)에서 시작하고, 그 다음, CPU(12)로부터 프로세서 버스(18)를 경유하여 수신된 동작 요구가 인스트럭션 인출 요구인가 아닌가에 대한 판정을 설명하는 블럭(62)으로 진행한다. 동작 요구가 인스트럭션 인출 요구가 아니라는 판정에 응답하여, 처리는 블럭(64)으로 진행된다. 그러나, 동작 요구가 인스트럭션 인출 요구라는 판정에 응답하여, 처리는 도 3의 페이지 접속부 A를 통하여 도 4의 페이지 접속부 A로 진행한다.
도 4에는 본 발명의 방법 및 시스템에 따라 인스트럭션을 사전인출하기 위하여 메모리 제어기(20)에 의해 이용된 처리의 바람직한 실시예에 대한 상위 레벨 로직 블럭도가 도시된다. 설명된 바와 같이, 처리는 도 4의 페이지 접속부 A로부터, 인스트럭션 인출 요구가 결국 L2 캐쉬 히트를 초래했는가 아닌가에 대한 판정을 기술하는 블럭(70)으로 진행한다. L2 캐쉬(16)가 요구된 인스트럭션을 저장하면, L2 캐쉬(16)는 그 동작을 중지하도록 메모리 제어기(20)에 신호를 보낸다. 따라서, 특정 메모리 어드레스와 연관된 인스트럭션이 L2 캐쉬(16)내에 저장되면, 처리는 블럭(70)에서 블럭(118)으로 진행하여 종료된다. 그러나, 인스트럭션 인출 요구가 L2 캐쉬 미스를 초래했다는 판정이 블럭(70)에서 이루어지면, L2 캐쉬(16)는 인스트럭션 인출 요구를 서비스할 수 없고 처리는 블럭(72)으로 전달된다.
블럭(72)은 인스트럭션 인출 요구에 의해 명기된 인스트럭션이 WA/RI 캐쉬(48)내에 저장되는가 아닌가에 대한 판정을 도시한다. 만약 저장되지 않을 경우, 처리는 블럭(72)으로부터 블럭(80)으로 전달된다. 그러나, WA/RI 캐쉬(48)가 요구된 인스트럭션을 저장한다는 판정이 블럭(72)에서 이루어지면, 처리는 블럭(72)에서부터 블럭(74 내지 78)으로 진행하는데, 상기 블럭(74 내지 78)은 메모리 제어기(20)가 요구된 인스트럭션을 프로세서 버스(18)를 경유하여 CPU(12)로 송신하고, 요구된 인스트럭션을 포함하는 WA/RI 캐쉬 라인을 주 메모리(22)에 다시 기록하며, 요구된 인스트럭션을 포함하는 WA/RI 캐쉬 라인을 무효화함을 설명하고 있다. 그 다음, 처리는 블럭(118)으로 전달되어 종료된다. 블럭(72)으로 되돌아가서, 요구된 인스트럭션이 WA/RI 캐쉬(48)내에 저장되지 않는다는 판정이 이루어지면, 요구된 인스트럭션이 DPB(46)내에 저장되는가 아닌가에 대한 판정을 설명하고 있는 블럭(80)으로 처리가 전달된다. CPU(12)의해 발생된 동작 요구가 인스트럭션 인출 요구라 할 지라도, 컴퓨터 구조가 전형적으로 자체 수정 코드를 지원하기 위하여 정보가 인스트럭션 또는 데이터로서 액세스되도록 허용하기 때문에 메모리 제어기(20)는 DPB(46)가 요구된 인스트럭션을 저장하는가의 여부를 판정한다. 요구된 인스트럭션이 DPB(46) 내에 저장된다는 판정에 응답하여, 처리는 블럭(80)으로부터, 요구된 인스트럭션을 CPU(12)로 송신하는 메모리 제어기(20)에 대해 설명하는 블럭(82)으로 진행된다. 그 다음, 처리는 전체 L1 캐쉬 라인이 CPU(12)로 송신되었을 경우 무효 비트(47)를 세팅함으로써 DPB(46)를 무효화하는 것을 설명하는 블럭(84 내지 86)으로 진행한다.
블럭(80)으로 되돌아가서, 요구된 인스트럭션이 DPB(46)내에 저장되지 않는다는 판정이 이루어지면, 처리는 요구된 인스트럭션이 IPB(44)내에 저장되는가 아닌가의 여부에 대한 판정을 기술하는 블럭(88)으로 진행한다. 요구된 인스트럭션이 IPB(44)내에 저장된다는 판정에 응답하여, 처리는 요구된 인스트럭션을 CPU(12)에 송신하는 메모리 제어기(20)를 설명하는 블럭(90)으로 진행한다. 그 다음, 처리는 인스트럭션의 전체 L1 캐쉬 라인이 CPU(12)로 송신되었는가 아닌가의 여부의 판정을 기술하는 블럭(92)으로 전해진다. 만약 송신되지 않았을 경우, 처리는 단순히 블럭(118)으로 전달되어 종료된다. 그러나, 전체 L1 캐쉬 라인이 송신되었을 경우, 처리는 무효 비트(45)을 세팅함으로써 IPB(44)의 내용을 무효화하는 메모리 제어기(20)를 설명하는 블럭(94)으로 진행한다. 처리는 그 다음, 주 메모리(22)내의 요구된 인스트럭션을 따르는 X 바이트(X는 L1 캐쉬(14)의 캐쉬 라인 길이임)가 저장 가능한가 아닌가의 여부에 대한 판정을 기술하는 블럭(96)으로 진행한다. 만약 저장 가능하지 않을 경우, 처리는 블럭(118)으로 전달되어 종료된다. 그러나, 주 메모리(22)내의 다음 X 바이트가 저장 가능하다는 판정이 이루어지면, 처리는 요구된 인스트럭션을 뒤따르는 X 바이트를 인출하고 그들을 IPB(44)내에 저장하며, 무효 비트(45)를 클리어링 하는 메모리 제어기(20)를 설명하는 단계(98)로 진행한다. 그 다음, 처리는 블럭(118)으로 진행하여 종료된다.
블럭(88)으로 되돌아가서, 요구된 인스트럭션이 IPB(44)에 존재하지 않는 판정이 이루어지면, 처리는 요구된 인스트럭션이 전체 L1 캐쉬 라인을 나타내는가 아닌가에 대한 판정과 요구된 인스트럭션과 뒤따르는 X 바이트의 정보를 포함하는 두 어드레스가 모두 저장 가능한가 아닌가의 여부에 대한 판정을 기술하는 블럭(100)으로 진행한다. 만약 그러하다면, 처리는 주 메모리(22)로부터의 정보의 바이트의 두 L1 캐쉬 라인 길이를 인출함을 기술하는 블럭(102)으로 진행한다. 따라서, 블럭(104)에서 설명된 바와 같이, 메모리 제어기(20)는 제 1 X 바이트의 인스트럭션을 CPU(12)에 전송하고, 제 2 X 바이트를 IPB(44)내에 저장한다. 따라서, 메모리 제어기(20)는 정보의 제 2 X 바이트내의 인스트럭션에 대한 후속 요구의 가능성으로 인해 인스트럭션의 다음 L1 캐쉬 라인을 효율적으로 사전인출한다. 처리는 그런 다음 블럭(118)으로 진행되어 종료된다.
블럭(100)으로 되돌아가, 전체 L1 캐쉬 라인이 CPU(12)에 의해 요구되지 않았거나, 또는 2X 바이트가 저장될 수 없다는 판정이 이루어지면, 처리는 요구된 인스트럭션의 어드레스를 포함하는 주 메모리(22) 내의 X 바이트가 저장할 수 있는가 아닌가의 여부에 대한 판정을 설명하는 블럭(106)으로 전달된다. 만약 저장할 수 없을 경우, 처리는 주 메모리(22)로부터 요구된 인스트럭션을 인출하고 요구된 인스트럭션을 CPU(12)에 전송하는 메모리 제어기(20)를 기술하는 블럭(108)으로 전달된다. 처리는 그런 다음 블럭(118)으로 전달되어 종료된다. 그러나, 요구된 인스트럭션을 포함하는 정보의 X 바이트가 저장 가능하다는 판정이 블럭(106)에서 이루어지면, 처리는 주 메모리(22)로부터 요구된 인스트럭션을 포함하는 X 바이트를 인출하고 요구된 인스트럭션을 CPU(12)에 송신하는 메모리 제어기(20)를 설명하는 블럭(110, 112)로 전달된다. 그 다음, 전체 L1 캐쉬 라인을 포함하는 X 바이트가 CPU(12)에 전송되었는가 아닌가의 여부에 대한 판정이 블럭(114)에서 이루어진다. 전송되었을 경우, 처리는 블럭(118)으로 전달되어 종료된다. 그러나, 인스트럭션의 전체 캐쉬 라인 이하의 캐쉬 라인이 CPU(12)에 전송되었을 경우, 처리는 정보의 X 인출 바이트를 IPB(44) 내에 저장하고 무효 비트(45)를 클리어링함으로써 그들을 유효로 표시함을 기술하는 블럭(116)으로 전달된다. 그 다음, 처리는 블럭(118)으로 전달되어 종료된다.
또다시 도 3을 참조하면, 메모리 제어기(20)에 의해 수신된 CPU 동작 요구가 인스트럭션 인출 요구가 아니라는 판정이 블럭(62)에서 이루어지면, 처리는 CPU 동작 요구가 데이터 기록 요구인가 아닌가에 대한 판정을 기술하는 블럭(64)으로 전달된다. 만약 데이터 기록 요구라면, 처리는 블럭(64)으로부터, 도 3의 접속부 B를 통하여, 데이터 기록 요구를 서비스하기 위해 메모리 제어기(20)에 의해 이용되는 처리의 바람직한 실시예를 설명하는 도 5로 진행한다.
도 5를 참조하면, 데이터 기록 요구를 서비스하기 위해 메모리 제어기(20)에 의해 이용된 처리는 도 5의 접속부 B에서 시작하여, 데이터 기록 요구가 L2 캐쉬(16)에 의해 서비스될 것인가 아닌가의 여부에 대한 판정을 설명하는 블럭(130)으로 진행한다. 인스트럭션 인출 요구를 참조하여 위에서 설명된 바와 같이, L2 캐쉬(16)는 중지 신호를 메모리 제어기(20)에 송신함으로써 특정 어드레스에 저장된 데이터의 복사본이 L2 캐쉬(16) 내에 존재함을 신호로 보낸다. 데이터 기록 요구가 L2 캐쉬 (16)에 의해 서비스될 것임을 나타내는 중지 신호의 수신에 응답하여, 처리는 블럭(130)으로부터, 처리가 종료되는 블럭(172)으로 진행한다. 그러나, 데이터 기록 요구가 L2 캐쉬(16)에 의해 서비스되지 않을 것이라는 판정에 응답하여, 처리는 블럭(130)으로부터, 데이터 기록 요구와 연관된 데이터가 L1 캐쉬(14) 또는 L2 캐쉬(16)로부터 캐스트(cast)된(이들로부터 교체된) 한 캐쉬 라인인가 또는 로크(lock)되는가 또는 저장할 수 없는 것인가에 대한 판정을 설명하는 블럭(132)으로 진행한다. 만약 그렇다면, 처리는 블럭(132)으로부터, 특정 어드레스에 대한 데이터 기록 요구와 연관된 데이터를 주 메모리(22)내에 기록하는 메모리 제어기(20)를 기술하는 블럭(134)으로 진행한다. 그 다음, 블럭(136)에서 기술된 바와 같이, 메모리 제어기(20)는 WA/RI 캐쉬(48), IPB(44) 및 DPB(46)를 스누프(snoop)하고, 특정 어드레스에 대응하는 메모리 제어기(20)내의 어떤 데이터라도 무효화한다. 처리는 그 다음 블럭(172)으로 전달되어 종료된다. 블럭(132)으로 되돌아가, 데이터 기록 요구와 연관된 데이터가 L1 캐쉬(14) 또는 L2 캐쉬(16)로부터 캐스트된 한 캐쉬 라인이 아니거나 로크 되지 않거나 또는 저장할 수 있다는 판정이 이루질 경우, 처리는 DPB(46)가 특정 어드레스에 대응하는 데이터를 저장하는가 또는 그렇지 않는가의 여부에 대한 판정을 기술하는 블럭(138)으로 진행한다. 만약 저장하는 경우, 처리는 블럭(138)으로부터, 데이터 기록 요구와 연관된 데이터를 DPB(46)내에 저장된 데이터와 합병하는 것을 설명하는 블럭(140)으로 진행한다. 그 다음, 블럭(142)에서 설명된 바와 같이, DPB(46)내의 정보는 WA/RI 캐쉬(48)에 기록된다. 그 다음, DPB(46)의 내용은 무효 비트(47)를 세팅함으로써 무효화되고, 처리는 처리가 종료되는 블럭(172)으로 전달된다.
블럭(138)으로 돌아가, DPB(46)가 특정 어드레스와 연관된 데이터를 포함하지 않는다는 판정이 이루어지면, 처리는 블럭(138)으로부터, IPB(44)가 특정 어드레스와 연관된 정보를 저장하는가 아닌가의 여부에 대한 판정을 설명하는 블럭(146)으로 진행한다. 만약 저장할 경우, 처리는 블럭(140 내지 144)처럼 데이터 기록 요구와 연관된 데이터를 IPB(44)의 내용과 합병하고 IPB(44)의 내용을 WA/RI 캐쉬(48) 내에 저장하며 그 다음 무효 비트(45)를 세팅함으로써 IPB(44)를 무효화하는 메모리 제어기(20)를 기술하는 블럭(148 내지 152)으로 진행한다. 처리는 그런 다음 블럭(172)으로 전달되어 종료된다. 블럭(146)으로 되돌아가, IPB(44)가 특정 어드레스와 연관된 정보를 저장하지 않는 판정이 이루어지면, 처리는 블럭(146)으로부터, 특정 어드레스와 연관된 정보가 WA/RI 캐쉬(48)내에 저장되는가 아닌가의 여부에 대한 판정을 설명하는 블럭(154)으로 진행한다. 블럭(154)에서 설명된 판정은 되도록이면 특정 어드레스내의 선택된 비트를 캐쉬 제어기 및 태그(50)내에 저장된 어드레스 태그와 비교함으로써 이루어지는 것이 좋다. 특정 어드레스내의 선택된 비트가 캐쉬 제어기 및 태그(50)내에 저장된 어드레스 태그 중 하나와 조화하여, WA/RI 캐쉬(48)가 특정 어드레스와 연관된 정보를 저장함을 나타낼 경우, 처리는 블럭(154)으로부터, WA/RI 캐쉬 라인을 데이터 기록 요구와 연관된 데이터로 갱신하는 메모리 제어기(20)를 설명하는 블럭(156)으로 전달된다.
블럭(154)으로 되돌아가, 데이터 기록 요구가 WA/RI 캐쉬(48)의 캐쉬 미스를 초래한다는 판정이 이루어질 경우, 처리는 블럭(154)으로부터, 데이터 기록 요구와 연관된 데이터에 대해 캐쉬 라인을 WA/RI 캐쉬(48)내에 할당함을 설명하는 블럭(158)으로 진행한다. 그 다음, 블럭(160)에서 기술된 바와 같이, 메모리 제어기(20)는 주 메모리(22)로부터 특정 어드레스를 포함하는 데이터의 X 바이트를 인출하고 인출된 데이터를 판독/기록 버퍼(40)내에 저장한다. 또한, 메모리 제어기는 데이터 기록 요구와 연관된 데이터를 판독/기록 버퍼(40)의 내용과 합병한다. 처리는 그 다음, 교체된 WA/RI 캐쉬 라인이 수정되었는가 아닌가의 여부에 대한 판정을 설명하는 블럭(162)으로 진행한다. 예를 들면, 블럭(162)에서 기술된 판정은 캐쉬 라인과 연관된 결합 프로토콜 비트를 검사함으로써 이루어질 수도 있다. 캐쉬 라인이 더티(dirty)로 표시되면, 처리는 교체된 WA/RI 캐쉬 라인을 주 메모리(22)에 기록함을 설명하는 블럭(164)으로 진행한다. 그 다음, 처리는 블럭(164) 또는 블럭(162)으로부터 판독/기록 버퍼(40)의 내용을 할당된 WA/RI 캐쉬 라인에 저장함을 기술하는 블럭(168)으로 진행한다. 캐쉬 라인은 블럭(170)에서 설명된 바와 같이 수정된(유효) 상태로 표시된다. 그 다음, 처리는 블럭(172)으로 전달되어 종료된다.
또다시 도 3을 참조하면, 메모리 제어기(20)에서 수신된 CPU 동작 요구가 데이터 기록 요구가 아니라는 판정이 블럭(64)에서 이루어질 경우, 처리는 CPU 동작 요구가 데이터 판독 요구인가 아닌가에 대한 판정을 기술하는 블럭(66)으로 진행한다. 만약 판독 요구가 아닐 경우, 처리는 블럭(68)으로 전달되어 종료된다. 그러나, CPU 동작 요구가 데이터 판독 요구라는 판정이 블럭(66)에서 이루어질 경우, 처리는 도 3의 접속부 C를 통하여 도 6의 접속부 C로 진행한다. 도 6에서는 데이터 판독 요구를 서비스하기 위해 본 발명에 의해 이용되는 방법의 바람직한 실시예에 대한 상위 레벨 흐름도를 설명하고 있다. 설명된 바와 같이, 처리는 도 6의 접속부 C로부터 CPU 동작 요구가 L2 캐쉬(16)에 의해 서비스될 것인가 아닌가의 여부에 대한 판정을 설명하는 블럭(180)으로 전달된다. 만약 서비스될 경우, 처리는 단순히 블럭(232)으로 전달되어 종료된다. 그러나, L2 캐쉬(16)가 CPU 동작 요구를 서비스하지 않을 것이라는 판정 블럭(180)에서 이루어질 경우, 처리는 데이터 판독 요구내의 특정 어드레스와 연관된 데이터가 WA/RI 캐쉬(48)내에 저장되는가 아닌가의 여부에 대한 판정을 설명하는 블럭(182)으로 전달된다. 만약 저장될 경우, 처리는 블럭(182)으로부터, WA/RI 캐쉬(48)의 판독 무효화 동작을 기술하는 블럭(184 내지 190)으로 진행한다. 첫째, 블럭(184)에서 설명된 바와 같이, 데이터 판독 요구내의 특정 어드레스와 연관된 데이터는 프로세서 버스(18)를 통해 CPU(12)로 송신된다. 그 다음, 프로세서는 데이터의 X 바이트 즉, 전체 L1 캐쉬 라인이 CPU(12)에 송신되었는가 아닌가의 여부에 대한 판정을 설명하는 블럭(186)으로 진행한다. 만약 송신되지 않았을 경우, 처리는 블럭(232)으로 전달되어 종료된다. 그러나, 전체 L1 캐쉬 라인이 CPU(12)에 송신되었을 경우, 처리는 요구된 데이터를 포함하는 WA/RI 캐쉬 라인을 다시 주 메모리(22)에 기록하고 캐쉬 라인을 무효로 표시하는 메모리 제어기(20)를 기술하는 블럭(188 내지 190)으로 진행한다. 처리는 블럭(232)으로 전달되어 종료된다.
블럭(182)으로 되돌아가, 요구된 데이터가 WA/RI 캐쉬(48)내에 저장되지 않는다는 판정이 이루어지면, 처리는 요구된 데이터가 IPB(44)내에 저장되는가 또는 되지 않는가에 대한 판정을 기술하는 블럭(192)으로 진행한다. 요구된 정보가 IPB(44)내에 저장된다는 판정에 응답하여, 처리는 요구된 데이터를 CPU(12)에 복귀시키는 것을 설명하는 블럭(194)으로 진행한다. 그런 다음, 블럭(196)에서 기술된 바와 같이, 요구된 데이터가 전체 L1 캐쉬 라인을 포함했는가 아닌가의 여부에 대한 판정이 이루어진다. 만약 포함하지 않았을 경우, 처리는 블럭(232)으로 진행하여 종료된다. 그러나, 요구된 데이터가 전체 L1 캐쉬 라인을 포함했다는 판정이 이루어지면, 처리는 무효 비트(45)를 세팅함으로써 IPB(44)의 내용을 무효화하는 것을 설명하는 블럭(198)으로 진행한다. 처리는 블럭(232)으로 진행하여 종료된다. 블럭(192)으로 되돌아가, IPB(44)가 요구된 데이터를 포함하지 않는다는 판정이 이루어지면, 처리는 요구된 데이터가 DPB(46)내에 존재하는가 아닌가의 여부에 대한 판정을 기술하는 블럭(200)으로 전달된다. 만약 존재할 경우, 처리는 블럭(200)으로부터, 요구된 데이터를 CPU(12)로 복귀시키는 것을 설명하는 블럭(202)으로 진행된다. 그 다음, 블럭(204)에서 기술된 바와 같이, 요구된 데이터가 전체 L1 캐쉬 라인을 포함했는가 아닌가의 여부에 대한 판정이 이루어진다. 만약 포함하지 않았을 경우, 처리는 블럭(232)으로 전달되어 종료된다. 그러나, 요구된 데이터가 전체 L1 캐쉬 라인을 포함했을 경우, 처리는 무효 비트(47)를 세팅함으로써 DPB(46)의 내용을 무효화하는 메모리 제어기(20)를 설명하는 블럭(206)으로 진행한다. 처리는 블럭(206)으로부터, 요구된 데이터의 X 바이트를 따르는 주 메모리(22)내의 X 바이트가 저장 가능한가 아닌가의 여부에 대한 판정을 기술하는 블럭(208)으로 진행한다. 만약 저장 가능하지 않을 경우, 처리는 블럭(232)으로 전달되어 종료된다. 그러나, 주 메모리(22)내의 정보의 다음 X 바이트가 저장 가능하다는 판정에 응답하여, 처리는 블럭(208)으로부터, 주 메모리(22)로부터 정보의 후속 X 바이트를 인출하고 그들을 DPB(46)내에 저장하는 블럭(210)으로 전달한다. 또한, 메모리 제어기(20)는 무효 비트(47)를 클리어링함으로써 DPB를 유효로 표시한다. 블럭(210)은 또다시 L2 캐쉬 미스로 인한 장래 주 메모리 액세스를 잠재적으로 피하기 위하여 참조의 국부성에 대한 원리에 근거하여 데이터를 사전인출하는 메모리 제어기(20)에 대해 또다시 설명한다.
블럭(200)으로 되돌아가, 요구된 데이터가 DPB(46)내에 존재하지 않는다는 판정이 이루어지면, 요구된 데이터는 주 메모리(22)로부터 인출되어야 하고 처리는 블럭(212)으로 전달된다. 블럭(212)은 데이터 판독 요구가 정보의 X 바이트를 요구하는가 아닌가의 여부와 특정 어드레스를 포함하는 주 메모리(22)내의 정보의 2X 바이트가 저장 가능한가 아닌가의 여부에 대한 판정을 기술한다. 만약 그러하다면, 처리는 블럭(212)으로부터, 주 메모리(22)로부터 특정 어드레스를 포함하는 정보의 2X 바이트를 인출함을 설명하는 블럭(214)으로 진행한다. 그 다음, 블럭(216 내지 218)에서 기술된 바와 같이, 메모리 제어기(20)는 정보의 처음 X 바이트를 CPU(12)에 송신하고, 정보의 다음 X 바이트를 DPB(46)내에 저장하며, 무효 비트(47)를 클리어링함으로써 그들을 유효로 표시한다. 그 다음, 처리는 블럭(232)에서 종료한다. 블럭(212)으로 돌아가서, 요구된 데이터가 전체 L1 캐쉬 라인을 포함하거나 또는 데이터의 두 캐쉬 라인이 저장할 수 없는 것으로 판정이 이루어질 경우, 처리는 주 메모리내의 특정 어드레스를 뒤따르는 정보의 X 바이트가 저장 가능한가 아닌가의 여부에 대한 판정을 기술하는 블럭(220)으로 전달된다. 만약 저장 가능할 경우, 처리는 블럭(220)으로부터, 주 메모리(22)로부터 특정 어드레스를 뒤따르는 데이터의 X 바이트를 인출하고 요구된 데이터를 CPU(12)에 전송하는 것을 기술하는 블럭(222)으로 진행한다. 그 다음, 블럭(224)에서 설명된 바와 같이, 요구된 데이터가 전체 L1 캐쉬 라인을 포함하는가 아닌가의 여부에 대한 판정이 이루어진다. 만약 포함할 경우, 처리는 블럭(232)으로 전달되어 종료된다. 그러나, 요구된 데이터가 전체 L1 캐쉬 라인을 포함하지 않을 경우, 처리는 주 메모리(22)로부터 인출된 데이터의 X 바이트를 DPB(46)내에 저장하고 무효 비트(47)를 클리어링하는 메모리 제어기(20)를 설명하는 블럭(226)으로 진행한다. 처리는 그 다음 블럭(232)으로 전달되어 종료된다.
블럭(220)으로 되돌아가, 특정 어드레스를 포함하는 주 메모리(22)내의 데이터의 X 바이트가 저장 가능하지 않다는 판정이 이루어질 경우, 처리는 주 메모리(22)로부터 요구된 데이터만을 인출하고 요구된 데이터를 CPU(12)로 송신하는 메모리 제어기를 기술하는 블럭(228 내지 230)으로 진행한다. 그 다음, 처리는 블럭(232)에서 종료한다.
본 발명에서 명백한 바와 같이, 본 명은 룩 어사이드 캐쉬 구성을 갖는 데이터 처리 시스템내의 데이터를 저장을 관리하기 위한 개선된 방법 및 장치를 제공한다. 특히, 본 발명은 스택 동작을 효율적으로 처리하기 위하여 메모리 제어기내에 기록-할당/판독 무효화(WA/RI) 캐쉬를 제공함으로써 데이터 액세스 시간을 최적화한다. 더 나아가, 본 발명에 따르면, 메모리 제어기는 L2 룩 어사이드 캐쉬 미스에 의해 유발되는 지연 시간을 최소화하기 위하여 사전인출 버퍼링을 포함한다.
본 발명이 바람직한 실시예를 참조하여 특별히 도시되고 설명되었으나, 당업자라면 본 발명의 정신 및 범위를 벗어나지 않고서도 형태와 세부 사항에 있어서 여러 가지 변경이 이루어질 수 있음을 이해할 것이다.
이상의 설명에서 알 수 있는 바와 같이, 본 발명에 따르면, 연관된 상위 레벨 캐쉬를 구비하는 프로세서, 연관 제어기 메모리를 갖춘 메모리 제어기, 프로세서와 메모리 제어기 사이에 결합된 프로세서 버스 및 주 메모리를 포함할 뿐만 아니라, 프로세서 및 메모리 제어기와 병렬로 프로세서 버스에 결합된 하위 레벨 캐쉬를 더 포함함으로써, 하위 레벨 캐쉬에 의해 서비스되지 않고 연관 데이터가 교체된 수정 캐쉬 라인이 아닌 기록 요구의 수신에 응답하여, 메모리 제어기와 연관된 제어기 메모리내에 연관 데이터를 저장하여, 데이터 처리 시스템내의 데이터 저장을 최적화하며, 주 메모리에만 존재하는 정보에 대한 요구의 수신에 응답하여, 주 메모리로부터 요구된 정보를 인출하고 사전인출 버퍼내에 주 메모리에서 상기 요구된 데이터와 인접한 추가의 정보를 저장하여, 사전인출된 정보에 액세스하는 시간을 최소화하는 메모리 제어기를 제공한다.

Claims (19)

  1. 프로세서와 병렬로 프로세서 버스에 접속되는 하위 레벨 캐쉬에 의해 정의되어, 상위 레벨 캐쉬에 의해 서비스되지 않는 모든 기록 요구가 상기 프로세서 버스 상에서 전송되고, 메모리 제어기와 상기 하위 레벨 캐쉬 모두에 의해 동시에 수신되도록 하는 룩 어사이드 캐쉬(look aside cache) 구성을 가지며, 연관된 상위 레벨 캐쉬를 갖는 프로세서와, 상기 메모리 제어기에 접속된 제어기 메모리와, 상기 메모리 제어기에 접속된 주 메모리와, 상기 프로세서와 상기 메모리 제어기 사이에 접속된 프로세서 버스와, 상기 룩 어사이드 구성 내의 상기 하위 레벨 캐쉬를 포함하는 데이터 처리 시스템 내의 데이터의 저장을 관리하기 위한 메모리 제어기에 있어서―상기 상위 레벨 캐쉬 및 상기 하위 레벨 캐시는 각각 하나 이상의 캐시 라인을 포함함―,
    ① 상기 하위 레벨 캐쉬 및 상기 메모리 제어기 모두에서 상기 주 메모리 내의 특정 어드레스에 대한 기록 요구 및 연관 데이터가 동시에 수신된 것에 응답하여, 상기 기록 요구가 상기 하위 레벨 캐쉬에 의해 서비스될 것인지의 여부 및 상기 연관 데이터가 상기 상위 레벨 캐쉬 또는 상기 하위 레벨 캐쉬로부터 교체된 수정 캐쉬 라인(modified cache line)인지의 여부를 판정하는 수단과,
    ② 상기 기록 요구가 상기 하위 레벨 캐쉬에 의해 서비스되지 않을 것이라는 판정 및 상기 연관 데이터가 상기 상위 레벨 캐쉬 또는 상기 하위 레벨 캐쉬로부터 교체된 수정 캐쉬 라인이라는 판정에 응답하여, 상기 주 메모리 내의 상기 특정 어드레스에 상기 연관 데이터를 저장하는 수단과,
    ③ 상기 기록 요구가 상기 하위 레벨 캐쉬에 의해 서비스되지 않을 것이라는 판정 및 상기 연관 데이터가 상기 상위 레벨 캐쉬 또는 상기 하위 레벨 캐쉬로부터 교체된 수정 캐쉬 라인이 아니라는 판정에 응답하여, 상기 메모리 제어기와 연관된 상기 제어기 메모리 내에 상기 연관 데이터를 저장하는 수단
    을 포함하는 메모리 제어기.
  2. 제 1 항에 있어서,
    상기 프로세서에 의한 상기 연관 데이터의 액세스에 응답하여, 상기 제어기 메모리 내의 상기 연관 데이터를 무효화(invalidating)시키는 수단을 더 포함하는 메모리 제어기.
  3. 제 1 항에 있어서,
    상기 제어기 메모리는 상기 메모리 제어기 내에 온보드(on-board) 캐시 메모리를 포함하는 메모리 제어기.
  4. 데이터 처리 시스템에 있어서,
    ① 프로세서와,
    ② 상기 프로세서에 접속된 프로세서 버스와,
    ③ 상기 프로세서와 접속된 상위 레벨 캐쉬와,
    ④ 상기 프로세서와 병렬로 상기 프로세서 버스에 접속되는 하위 레벨 캐쉬에 의해 정의되어, 상기 상위 레벨 캐쉬에 의해 서비스되지 않는 모든 기록 요구가 상기 프로세서 버스 상에서 전송되고, 상기 하위 레벨 캐쉬에 의해 수신되도록 하는 룩 어사이드 구성으로 상기 프로세서에 접속된 하위 레벨 캐쉬와,
    ⑤ 주 메모리와,
    ⑥ 상기 주 메모리 및 상기 프로세서 버스에 접속되어, 상기 프로세서 버스 상에서 전송된 모든 기록 요구가 상기 하위 레벨 캐쉬와 동시에 상기 메모리 제어기에 의해 수신되도록 하며, 제어기 메모리와, 상기 주 메모리에 대한 액세스를 제어하는 제어 로직(control logic)을 갖는 메모리 제어기―여기서, 상기 하위 레벨 캐쉬에 의해 서비스되지 않을 것이며, 상기 연관 데이터가 상기 상위 레벨 캐쉬 또는 상기 하위 레벨 캐쉬로부터 교체된 수정 캐쉬 라인이 아닌 상기 주 메모리 내의 특정 어드레스에 대한 기록 요구 및 연관 데이터의 수신에 응답하여, 상기 제어 로직이 상기 제어기 메모리 내에 상기 연관 데이터를 저장함―와,
    ⑦ 상기 메모리 제어기에 접속된 시스템 버스
    를 포함하는 데이터 처리 시스템.
  5. 제 4 항에 있어서,
    상기 메모리 제어기의 상기 제어 로직은 상기 프로세서에 의한 상기 데이터의 액세스에 응답하여, 상기 제어기 메모리 내에 저장된 데이터를 무효화시키는 수단을 더 포함하는 데이터 처리 시스템.
  6. 제 4 항에 있어서,
    상기 제어기 메모리는 상기 메모리 제어기 내에 온보드 캐쉬 메모리를 포함하는 데이터 처리 시스템.
  7. 제 4 항에 있어서,
    상기 기록 요구가 상기 하위 레벨 캐쉬에 의해 서비스되지 않을 것이라는 판정 및 상기 연관 데이터가 상기 상위 레벨 캐쉬 또는 상기 하위 레벨 캐쉬로부터 교체된 수정 캐쉬 라인이라는 판정에 응답하여, 상기 주 메모리 내의 상기 특정 어드레스에 상기 연관 데이터를 저장하는 수단을 더 포함하는 데이터 처리 시스템.
  8. 제 7 항에 있어서,
    상기 기록 요구가 상기 하위 레벨 캐쉬에 의해 서비스되지 않을 것이라는 판정 및 상기 연관 데이터가 상기 상위 레벨 캐쉬 또는 상기 하위 레벨 캐쉬로부터 교체된 수정 캐쉬 라인이라는 판정에 응답하여, 상기 주 메모리 내의 상기 특정 어드레스에 상기 연관 데이터를 저장하는 수단은,
    상기 기록 요구가 상기 하위 레벨 캐쉬에 의해 서비스되지 않을 것이라는 판정 및 상기 연관 데이터가 상기 상위 레벨 캐쉬 또는 상기 하위 레벨 캐쉬로부터 교체된 수정 캐쉬 라인이라는 판정에 응답하여, 단지 상기 주 메모리 내의 상기 특정 어드레스에만 상기 연관 데이터를 저장하는 수단을 포함하는 데이터 처리 시스템.
  9. 제 4 항에 있어서,
    상기 메모리 제어기는 상기 기록 요구가 상기 하위 레벨 캐쉬에 의해 서비스되지 않을 것이라는 판정 및 상기 연관 데이터가 상기 상위 레벨 캐쉬 또는 상기 하위 레벨 캐쉬로부터 교체된 수정 캐쉬 라인이 아니라는 판정에 응답하여, 상기 연관 데이터를 상기 제어기 메모리에만 저장하는 데이터 처리 시스템.
  10. 제 4 항에 있어서,
    상기 메모리 제어기는,
    ① 상기 프로세서에 의한 데이터 요구가 상기 상위 레벨 캐쉬 또는 상기 하위 레벨 캐쉬에 의해 서비스되지 않을 것이라는 판정에 응답하여, 상기 데이터 요구에 의해 지정된 요구 데이터가 상기 메모리 제어기에 의해 저장되는지의 여부를 판정하는 수단과,
    ② 상기 요구 데이터가 상기 메모리 제어기에 의해 저장된다는 판정에 응답하여, 상기 요구 데이터를 상기 프로세서로 전송하는 수단
    을 더 포함하는 데이터 처리 시스템.
  11. 제 10 항에 있어서,
    상기 요구 데이터는 적어도 하나의 인스트럭션을 포함하는 데이터 처리 시스템.
  12. 제 4 항에 있어서,
    상기 상위 레벨 캐쉬는 상기 프로세서 내에 통합되고, 상기 메모리 제어기에 의해 상기 프로세서 버스 상에서 전송된 모든 데이터는 상기 하위 레벨 캐쉬 및 상기 프로세서에 의해 실질적으로 동시에 수신되는 데이터 처리 시스템.
  13. 제 1 항에 있어서,
    상기 기록 요구가 상기 하위 레벨 캐쉬에 의해 서비스되지 않을 것이라는 판정 및 상기 연관 데이터가 상기 상위 레벨 캐쉬 또는 상기 하위 레벨 캐쉬로부터 교체된 수정 캐쉬 라인이라는 판정에 응답하여, 상기 주 메모리 내의 상기 특정 어드레스에 상기 연관 데이터를 저장하는 수단은,
    상기 기록 요구가 상기 하위 레벨 캐쉬에 의해 서비스되지 않을 것이라는 판정 및 상기 연관 데이터가 상기 상위 레벨 캐쉬 또는 상기 하위 레벨 캐쉬로부터 교체된 수정 캐쉬 라인이라는 판정에 응답하여, 단지 상기 주 메모리 내의 상기 특정 어드레스에만 상기 연관 데이터를 저장하는 수단을 포함하는 메모리 제어기.
  14. 제 1 항에 있어서,
    상기 기록 요구가 상기 하위 레벨 캐쉬에 의해 서비스되지 않을 것이라는 판정 및 상기 연관 데이터가 상기 상위 레벨 캐쉬 또는 상기 하위 레벨 캐쉬로부터 교체된 수정 캐쉬 라인이 아니라는 판정에 응답하여, 상기 메모리 제어기와 연관된 상기 제어기 메모리 내에 상기 연관 데이터를 저장하는 수단은,
    상기 기록 요구가 상기 하위 레벨 캐쉬에 의해 서비스되지 않을 것이라는 판정 및 상기 연관 데이터가 상기 상위 레벨 캐쉬 또는 상기 하위 레벨 캐쉬로부터 교체된 수정 캐쉬 라인이 아니라는 판정에 응답하여, 상기 메모리 제어기와 연관된 상기 제어기 메모리 내에만 상기 연관 데이터를 저장하는 수단을 포함하는 메모리 제어기.
  15. 제 1 항에 있어서,
    ① 상기 프로세서에 의한 데이터 요구가 상기 상위 레벨 캐쉬 또는 상기 하위 레벨 캐쉬에 의해 서비스되지 않을 것이라는 판정에 응답하여, 상기 데이터 요구에 의해 지정된 요구 데이터가 상기 메모리 제어기에 의해 저장되는지의 여부를 판정하는 수단과,
    ② 상기 요구 데이터가 상기 메모리 제어기에 의해 저장된다는 판정에 응답하여, 상기 요구 데이터를 상기 프로세서로 전송하는 수단
    을 더 포함하는 메모리 제어기.
  16. 제 15 항에 있어서,
    상기 요구 데이터는 적어도 하나의 인스트럭션(instruction)을 포함하는 메모리 제어기.
  17. 제 1 항에 있어서,
    상기 상위 레벨 캐쉬는 상기 프로세서 내에 통합되고, 상기 메모리 제어기에 의해 상기 프로세서 버스 상에서 전송된 모든 데이터는 상기 하위 레벨 캐쉬 및 상기 프로세서에 의해 실질적으로 동시에 수신되는 메모리 제어기.
  18. 제 1 항에 있어서,
    상기 연관 데이터는 상기 상위 레벨 캐쉬로부터 교체된 수정 캐쉬 라인인 메모리 제어기.
  19. 제 4 항에 있어서,
    상기 연관 데이터는 상기 상위 레벨 캐쉬로부터 교체된 수정 캐쉬 라인인 데이터 처리 시스템.
KR1019970006788A 1996-04-04 1997-02-28 메모리제어기및데이타처리시스템 KR100268204B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/628,230 1996-04-04
US08/628,230 US5778422A (en) 1996-04-04 1996-04-04 Data processing system memory controller that selectively caches data associated with write requests

Publications (2)

Publication Number Publication Date
KR970071282A KR970071282A (ko) 1997-11-07
KR100268204B1 true KR100268204B1 (ko) 2000-10-16

Family

ID=24518023

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970006788A KR100268204B1 (ko) 1996-04-04 1997-02-28 메모리제어기및데이타처리시스템

Country Status (6)

Country Link
US (1) US5778422A (ko)
EP (1) EP0800137B1 (ko)
JP (1) JPH1055306A (ko)
KR (1) KR100268204B1 (ko)
DE (1) DE69708188T2 (ko)
TW (1) TW408266B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101487588B1 (ko) * 2012-11-02 2015-01-29 타이완 세미콘덕터 매뉴팩쳐링 컴퍼니 리미티드 메모리 회로 및 메모리 회로 동작 방법

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6374330B1 (en) * 1997-04-14 2002-04-16 International Business Machines Corporation Cache-coherency protocol with upstream undefined state
US6094708A (en) * 1997-05-06 2000-07-25 Cisco Technology, Inc. Secondary cache write-through blocking mechanism
US6341335B1 (en) 1997-10-29 2002-01-22 Hitachi, Ltd. Information processing system for read ahead buffer memory equipped with register and memory controller
US6115385A (en) 1998-03-11 2000-09-05 Cisco Technology, Inc. Method and system for subnetting in a switched IP network
US6138208A (en) * 1998-04-13 2000-10-24 International Business Machines Corporation Multiple level cache memory with overlapped L1 and L2 memory access
US6785274B2 (en) 1998-10-07 2004-08-31 Cisco Technology, Inc. Efficient network multicast switching apparatus and methods
US20020056027A1 (en) * 1998-10-29 2002-05-09 Hiroki Kanai Information processing system
US6483736B2 (en) 1998-11-16 2002-11-19 Matrix Semiconductor, Inc. Vertically stacked field programmable nonvolatile memory and method of fabrication
US6460114B1 (en) * 1999-07-29 2002-10-01 Micron Technology, Inc. Storing a flushed cache line in a memory buffer of a controller
JP2001060169A (ja) * 1999-08-24 2001-03-06 Hitachi Ltd キャッシュコントローラ及びコンピュータシステム
US7099998B1 (en) * 2000-03-31 2006-08-29 Intel Corporation Method for reducing an importance level of a cache line
US8575719B2 (en) 2000-04-28 2013-11-05 Sandisk 3D Llc Silicon nitride antifuse for use in diode-antifuse memory arrays
EP1312120A1 (en) 2000-08-14 2003-05-21 Matrix Semiconductor, Inc. Dense arrays and charge storage devices, and methods for making same
KR100364800B1 (ko) * 2000-08-29 2002-12-16 주식회사 하이닉스반도체 반도체 메모리의 데이터 입출력 제어 장치
US6598119B2 (en) * 2001-02-09 2003-07-22 At&T Corp. Database management system with a multiple-level cache arrangement
US7352199B2 (en) 2001-02-20 2008-04-01 Sandisk Corporation Memory card with enhanced testability and methods of making and using the same
US6843421B2 (en) 2001-08-13 2005-01-18 Matrix Semiconductor, Inc. Molded memory module and method of making the module absent a substrate support
US6593624B2 (en) 2001-09-25 2003-07-15 Matrix Semiconductor, Inc. Thin film transistors with vertically offset drain regions
US6525953B1 (en) 2001-08-13 2003-02-25 Matrix Semiconductor, Inc. Vertically-stacked, field-programmable, nonvolatile memory and method of fabrication
US6624485B2 (en) 2001-11-05 2003-09-23 Matrix Semiconductor, Inc. Three-dimensional, mask-programmed read only memory
US6731011B2 (en) 2002-02-19 2004-05-04 Matrix Semiconductor, Inc. Memory module having interconnected and stacked integrated circuits
US6853049B2 (en) 2002-03-13 2005-02-08 Matrix Semiconductor, Inc. Silicide-silicon oxide-semiconductor antifuse device and method of making
TWI282513B (en) * 2002-06-12 2007-06-11 Mediatek Inc A pre-fetch device of instruction for an embedded system
US6737675B2 (en) 2002-06-27 2004-05-18 Matrix Semiconductor, Inc. High density 3D rail stack arrays
EP1387276A3 (en) * 2002-07-31 2004-03-31 Texas Instruments Incorporated Methods and apparatus for managing memory
JP2005115603A (ja) 2003-10-07 2005-04-28 Hitachi Ltd 記憶デバイス制御装置及びその制御方法
DE102004055013A1 (de) * 2004-11-15 2006-05-24 Infineon Technologies Ag Computereinrichtung
US7409502B2 (en) * 2006-05-11 2008-08-05 Freescale Semiconductor, Inc. Selective cache line allocation instruction execution and circuitry
JP4412676B2 (ja) * 2007-05-30 2010-02-10 インターナショナル・ビジネス・マシーンズ・コーポレーション メインメモリに書き込むデータをキャッシュする技術
US20120324195A1 (en) * 2011-06-14 2012-12-20 Alexander Rabinovitch Allocation of preset cache lines
US9384136B2 (en) 2013-04-12 2016-07-05 International Business Machines Corporation Modification of prefetch depth based on high latency event
US9478495B1 (en) 2015-10-26 2016-10-25 Sandisk Technologies Llc Three dimensional memory device containing aluminum source contact via structure and method of making thereof
KR102398201B1 (ko) * 2017-06-30 2022-05-17 삼성전자주식회사 프로세서의 개입 없이 단순 작업을 관리하는 스토리지 장치

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4464712A (en) * 1981-07-06 1984-08-07 International Business Machines Corporation Second level cache replacement method and apparatus
US5155828A (en) * 1989-07-05 1992-10-13 Hewlett-Packard Company Computing system with a cache memory and an additional look-aside cache memory
US5133058A (en) * 1989-09-18 1992-07-21 Sun Microsystems, Inc. Page-tagging translation look-aside buffer for a computer memory system
US5317718A (en) * 1990-03-27 1994-05-31 Digital Equipment Corporation Data processing system and method with prefetch buffers
CA2044487A1 (en) * 1990-06-15 1991-12-16 Michael E. Tullis Lookaside cache
EP0468831B1 (en) * 1990-06-29 1997-10-15 Digital Equipment Corporation Bus protocol for write-back cache processor
EP0470735B1 (en) * 1990-08-06 1999-03-10 NCR International, Inc. Computer memory system
US5249282A (en) * 1990-11-21 1993-09-28 Benchmarq Microelectronics, Inc. Integrated cache memory system with primary and secondary cache memories
US5287467A (en) * 1991-04-18 1994-02-15 International Business Machines Corporation Pipeline for removing and concurrently executing two or more branch instructions in synchronization with other instructions executing in the execution unit
US5386547A (en) * 1992-01-21 1995-01-31 Digital Equipment Corporation System and method for exclusive two-level caching
JPH07506921A (ja) * 1992-03-06 1995-07-27 ランバス・インコーポレーテッド コンピュータ・システムにおける主記憶装置のアクセス時間とキャッシュ・メモリのサイズを最小限にするためのキャッシュへの先取り
US5367657A (en) * 1992-10-01 1994-11-22 Intel Corporation Method and apparatus for efficient read prefetching of instruction code data in computer memory subsystems
US5566324A (en) * 1992-12-24 1996-10-15 Ncr Corporation Computer apparatus including a main memory prefetch cache and method of operation thereof
GB2276964A (en) * 1993-03-31 1994-10-12 Hypertech Pty Ltd Buffering write cycles.
US5623628A (en) * 1994-03-02 1997-04-22 Intel Corporation Computer system and method for maintaining memory consistency in a pipelined, non-blocking caching bus request queue
US5564035A (en) * 1994-03-23 1996-10-08 Intel Corporation Exclusive and/or partially inclusive extension cache system and method to minimize swapping therein
US5561779A (en) * 1994-05-04 1996-10-01 Compaq Computer Corporation Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system
US5737565A (en) * 1995-08-24 1998-04-07 International Business Machines Corporation System and method for diallocating stream from a stream buffer

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101487588B1 (ko) * 2012-11-02 2015-01-29 타이완 세미콘덕터 매뉴팩쳐링 컴퍼니 리미티드 메모리 회로 및 메모리 회로 동작 방법
US9431064B2 (en) 2012-11-02 2016-08-30 Taiwan Semiconductor Manufacturing Company, Ltd. Memory circuit and cache circuit configuration
US10430334B2 (en) 2012-11-02 2019-10-01 Taiwan Semiconductor Manufacturing Company, Ltd. Memory circuit and cache circuit configuration
US11216376B2 (en) 2012-11-02 2022-01-04 Taiwan Semiconductor Manufacturing Company, Ltd. Memory circuit and cache circuit configuration
US11687454B2 (en) 2012-11-02 2023-06-27 Taiwan Semiconductor Manufacturing Company, Ltd. Memory circuit and cache circuit configuration

Also Published As

Publication number Publication date
DE69708188D1 (de) 2001-12-20
EP0800137A1 (en) 1997-10-08
JPH1055306A (ja) 1998-02-24
DE69708188T2 (de) 2002-06-20
KR970071282A (ko) 1997-11-07
TW408266B (en) 2000-10-11
EP0800137B1 (en) 2001-11-14
US5778422A (en) 1998-07-07

Similar Documents

Publication Publication Date Title
KR100268204B1 (ko) 메모리제어기및데이타처리시스템
KR100885277B1 (ko) 캐시에서의 라인들을 추론적으로 무효화하는 방법 및 시스템
US6721848B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
US7237068B2 (en) Computer system employing bundled prefetching and null-data packet transmission
US5996048A (en) Inclusion vector architecture for a level two cache
US5740400A (en) Reducing cache snooping overhead in a multilevel cache system with multiple bus masters and a shared level two cache by using an inclusion field
US6546462B1 (en) CLFLUSH micro-architectural implementation method and system
US6662275B2 (en) Efficient instruction cache coherency maintenance mechanism for scalable multiprocessor computer system with store-through data cache
EP2017738A1 (en) Hierarchical cache tag architecture
US5909697A (en) Reducing cache misses by snarfing writebacks in non-inclusive memory systems
JPH0962573A (ja) データ・キャッシュ・システム及び方法
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
JP2000227878A (ja) 非同期i/oキャッシュメモリ内のデ―タ管理方法
US7165146B2 (en) Multiprocessing computer system employing capacity prefetching
JP3262519B2 (ja) 第2レベルキャッシュの古いラインの除去によるプロセッサのメモリ性能の強化方法及びシステム
US20060179173A1 (en) Method and system for cache utilization by prefetching for multiple DMA reads
US7949833B1 (en) Transparent level 2 cache controller
US7328313B2 (en) Methods to perform cache coherency in multiprocessor system using reserve signals and control bits
JPH1055276A (ja) 多重レベル分岐予測方法および装置
US20030033483A1 (en) Cache architecture to reduce leakage power consumption
JPH10320285A (ja) キャッシュメモリ及び情報処理システム
JP2976867B2 (ja) 入出力バッファ装置及びその管理方法
KR20040047398A (ko) 캐쉬 메모리를 이용한 데이터 억세스 방법
JPH10207773A (ja) バス接続装置
JPH1115777A (ja) バスインタフェースアダプタおよびコンピュータシステ ム

Legal Events

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