KR100955433B1 - 파이프라인 구조를 갖는 캐시 메모리 및 이를 제어하는방법 - Google Patents

파이프라인 구조를 갖는 캐시 메모리 및 이를 제어하는방법 Download PDF

Info

Publication number
KR100955433B1
KR100955433B1 KR1020070107376A KR20070107376A KR100955433B1 KR 100955433 B1 KR100955433 B1 KR 100955433B1 KR 1020070107376 A KR1020070107376 A KR 1020070107376A KR 20070107376 A KR20070107376 A KR 20070107376A KR 100955433 B1 KR100955433 B1 KR 100955433B1
Authority
KR
South Korea
Prior art keywords
memory
tag
address
data
tag address
Prior art date
Application number
KR1020070107376A
Other languages
English (en)
Other versions
KR20080036940A (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 KR20080036940A publication Critical patent/KR20080036940A/ko
Application granted granted Critical
Publication of KR100955433B1 publication Critical patent/KR100955433B1/ko

Links

Images

Classifications

    • 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
    • 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
    • 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/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/0855Overlapped cache accessing, e.g. pipeline
    • 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/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0859Overlapped cache accessing, e.g. pipeline with reload from main memory
    • 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/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing

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

본 발명의 일 실시형태는 프로세서와 저속 메모리 사이에 배열되고 프로세서에 의해 이루어진 메모리 액세스의 파이프라인 프로세싱을 수행하는 캐시 메모리이다. 제 1 단계에서, 캐시 메모리는 태그 메모리로부터 태그 어드레스를 판독한다. 제 2 단계에서, 캐시 메모리는 히트 결정 유닛에 의해 히트 결정을 수행한다. 상기 히트 결정 결과가 미스 히트인 경우, 제 3 단계에서, 캐시 메모리는 태그 메모리의 업데이트 제어 및 태그 메모리를 바이패스함으로써 히트 결정 유닛에 래치 회로에서 유지된 데이터를 공급하는 바이패스 회로의 작동 제어를 수행한다. 래치 회로는 프로세서로부터 공급된 입력 어드레스에 포함된 태그 어드레스를 유지하도록 구성된다. 히트 결정 결과가 미스 히트인 경우, 캐시 메모리는 제 3 단계 직후의 제 4 단계 또는 나중의 단계에서 저속 메모리로부터 데이터를 판독하고 프로세서로 저속 메모리로부터 판독된 데이터를 출력함으로써 데이터 메모리의 업데이트를 더 수행한다.
Figure R1020070107376
캐시 메모리, 데이터 메모리

Description

파이프라인 구조를 갖는 캐시 메모리 및 이를 제어하는 방법{CACHE MEMORY HAVING PIPELINE STRUCTURE AND METHOD FOR CONTROLLING THE SAME}
본 발명은 프로세서로부터 메로리 액세스의 파이프라인 프로세싱을 수행하도록 구성된 캐시 메모리에 관한 것이다.
클럭 동기 SRAM (동기 SRAM) 을 이용하고 파이프라인 구조를 사용하는 캐시 메모리가 실용화되었다. 파이프라인 구조를 갖는 캐시 메모리는 프로세서와 저속 메모리 사이에 배열되고, 복수의 프로세스 단계로 분할되는 파이프라인에 의해 프로세서로부터 메모리 액세스 요구를 프로세스한다 (예를 들어, 일본 특허 출원 공보 제 10-63575 참조) 파이프라인 구조를 갖는 캐시 메모리로의 메모리 액세스를 수행하는 프로세서는 통상적으로 RISC (Reduced Instruction Set Computer) 타입 마이크로프로세서이다. 프로세서는 CISC (Complex Instruction Set Computer) 타입 중 하나일 수도 있거나 스피치 프로세싱 또는 이미지 프로세싱과 같은 디지털 신호 프로세싱을 수행하는 DSP (Digital Signal Processor) 일 수도 있다. 파이프라인 구조를 갖는 캐시 메모리가 제 2 캐시 또는 더 낮은 순위 (order) 를 갖는 캐시에서 이용되는 경우, 더 높은 순위의 캐시 메모리는 캐시 메 모리로의 메모리 액세스를 수행하는 프로세서에 대응한다.
캐시 메모리의 파이프라인 단계의 수를 증가시킴으로써 출력이 개선됨이 예상될 수 있다. 한편, 프로세서가 캐시 메모리에 액세스 요구를 제공한 이후, 결과를 갖도록 요구된 시간인 캐시 액세스 시간이 증가된다. 캐시 액세스 시간의 증가는 바람직하지 않기 때문에, 캐시 메모리의 파이프라인 단계의 수는 통상적으로 2 이다.
한편, 더 상세하게는 세트 공동 (associative) 타입 캐시 메모리에서, 캐시 메모리의 전력 소모를 감소시킬 목적을 위해, 데이터 메모리의 모든 방향으로부터 데이터를 판독하지 않고, 로딩 요구에 응답하여 히트인 일 방향으로만 액세스함으로써 데이터를 판독하는 또 다른 구성이 또한 공지되었다.
2-단계 파이프라인 구조를 갖는 캐시 메모리의 구조예가 도 5 에 도시된다. 도 5 에 도시된 캐시 메모리 (8) 는 4-방향 세트 공동 타입 캐시 메모리이고 프로세서 (2) 와 저속 메모리인 메인 메모리 (3) 사이에 배열된다. 캐시 메모리 (8) 와 프로세서 (2) 는 버스 (4), 데이터 버스 (5), 및 WAIT 신호 라인 (7) 에 의해 접속된다. 그리고 캐시 메모리 (8) 와 메인 메모리 (3) 는 메모리 버스 (6) 에 의해 접속된다.
캐시 메모리 (8) 에 포함된 데이터 메모리 (10) 는 메인 메모리 (3) 에 저장된 데이터의 서브세트에 대응하는 데이터를 저장하도록 구성된다. 데이터 메모리 (10) 의 저장 영역은 물리적으로 또는 논리적으로 4 개의 방향으로 분할된다. 또한, 각각의 방향은 라인이라 칭하는 다중 워드 유닛인 데이터 저장 유닛에 의 해 관리된다. 데이터가 데이터 메모리 (10) 에 저장된 위치는 어드레스 버스 (4) 로부터 공급된 입력 어드레스의 하부를 디코딩함으로써 지정된다. 더 상세하게는, 라인은 입력 어드레스의 하부의 더 높은 순위부인 인덱스 어드레스에 의해 지정되고, 라인의 워드 위치는 입력 어드레스의 최하위부인 워드 어드레스에 의해 지정된다. 입력 어드레스의 예는 도 7 에 도시된다. 전술한 워드 어드레스, 인덱스 어드레스, 및 워드 어드레스와 인덱스 어드레스의 상부에 배열된 태그 어드레스의 각각의 비트수는, 캐시 메모리 (8) 의 방향의 수, 1 방향에 포함된 라인의 수, 1 라인에 포함된 워드의 수가 어떻게 설계되었는지에 의존하여 결정된다.
태그 메모리 (11) 는 데이터 메모리 (10) 에 저장된 데이터에 대응하는 태그 어드레스를 저장하도록 구성된다. 태그 메모리 (11) 는 입력 어드레스에 포함된 인덱스 어드레스 값을 수신하여, 인덱스 어드레스를 디코딩함으로써 식별된 태그 어드레스를 출력한다. 도 5 에 도시된 캐시 메모리 (8) 는 4-방향 타입 캐시 메모리이고 입력인 1 인덱스 어드레스에 응답하여 4 방향에 대응하는 4 개의 태그 어드레스를 출력한다. 태그 메모리 (11) 는 태그 어드레스에 저장된 유효성을 나타내는 유효 플래그 (미도시) 및 저장 액세스에 의해 업데이트된 데이터 메모리 (10) 로 인해 데이터 메모리 (10) 에 저장된 데이터와 메인 메모리 (3) 에 저장된 데이터가 매칭하지 않음을 나타내는 더티 (dirty) 플래그 (미도시) 를 갖는다.
히트 결정 유닛 (12) 은, 입력 어드레스에 포함된 태그 어드레스를 태그 메모리 (11) 로부터 출력된 4 개의 태그 어드레스와 비교함으로써 캐시 히트 또는 미스 (miss) 히트가 존재하는지 여부를 결정한다. 더 상세하게는, 히트 결정 유 닛 (12) 은, 입력 어드레스에 포함된 태그 어드레스와 태그 메모리 (11) 의 출력이 매칭하는 경우 캐시 히트를 나타내는 신호를 출력한다. 히트 결정 유닛 (12) 은 입력 어드레스에 포함된 태그 어드레스와 태그 메모리 (11) 의 출력이 매칭하지 않는 경우 미스 히트를 나타내는 신호를 출력한다. 히트 결정 유닛 (12) 의 출력 신호는 각각 1-비트 로직값으로 4 개의 방향에 대한 히트 결정 결과를 나타내는 4-비트 신호이다.
제어기 (83) 는, 히트 결정 유닛 (12) 에 의한 히트 결정 결과가 캐시 히트인 경우, 데이터 메모리 (10) 에 칩 선택 신호 (CS 신호) 및 판독 스트로브 신호 (RS 신호) 를 출력함으로써 데이터 메모리 (10) 로부터 데이터의 판독을 제어한다. 한편, 히트 결정 유닛 (12) 에 의한 히트 결정 결과가 미스 히트인 경우, 제어기 (83) 는 입력 어드레스에 포함된 태그 어드레스를 태그 메모리 (11) 에 저장하기 위해 태그 메모리 (11) 의 재기입을 제어하고, 데이터 메모리 (10) 의 데이터 보충을 제어한다. 데이터 보충의 제어는 메인 메모리 (3) 로부터 데이터의 판독 및 메인 메모리 (3) 로부터 판독된 데이터에 의해 데이터 메모리 (10) 의 재기입을 제어함을 의미한다. 제어기 (83) 는 프로세서 (2) 에 미스 히트가 발생했음을 통지하기 위해 WAIT 신호 라인 (7) 을 이용하여 WAIT 신호를 출력한다.
어드레스 래치 (14) 는 1 클럭 사이클 동안 입력 어드레스 중 적어도 태그 어드레스를 유지하는 회로이다. 예를 들어, 어드레스 래치 (14) 는 D 플립-플롭으로 구성될 수 있다. 태그 메모리 (11) 가 재기입되는 경우, 어드레스 래치 (14) 에 저장된 데이터는 태그 메모리 (11) 에 데이터 입력으로서 이용된다.
도 6 을 참조하는 경우, 캐시 메모리 (8) 의 작동이 개시된다. 도 6 은, 프로세서 (2) 에 의해 이루어진 로딩 요구가 프로세싱되는 경우, 캐시 메모리 (8) 의 파이프라인 작동을 도시한다. 도 6 의 (a) 부는 히트 결정 결과가 캐시 히트인 경우 작동을 도시하고, 도 6 의 (b) 부는 히트 결정 결과가 미스 히트인 경우 작동을 나타낸다. 파이프라인의 제 1 단계에서, 태그 메모리 (11) 는 프로세서 (2) 로부터 공급된 입력 어드레스를 수신하여, 입력 어드레스의 인덱스 어드레스에대응하는 4 개의 태그 어드레스를 출력한다. 또한, 동일한 제 1 단계에서, 히트 결정 유닛 (12) 은 히트 결정을 수행한다.
히트 결정 유닛 (12) 에 의해 이루어진 결정 결과가 캐시 히트인 경우, 제 1 단계의 최종부에서 입력 어드레스, CS 신호, 및 RS 신호가 데이터 메모리 (10) 에 입력된다. 도 6 의 (a) 부에 도시된 바와 같이, 제 1 단계 직후의 제 2 단계에서, 데이터는 데이터 메모리 (10) 로부터 판독되어 프로세서 (2) 로 출력된다. 캐시 메모리 (8) 로부터 출력된 데이터는 일반 레지스터와 같은 프로세서 (2) 의 저장 영역에 저장된다.
한편, 히트 결정 유닛 (12) 에 의해 이루어진 결정 결과가 미스 히트인 경우, 제어기는 제 1 단계의 최종부에서 CS 신호 및 RS 신호를 출력하지 않는다. 그 후, 도 6 의 (b) 부에서 도시된 바와 같이, 제 2 단계에서, 제어기 (83) 는 교체 방향을 결정하는 프로세스 및 입력 어드레스에 포함된 새로운 태그 어드레스와 함께 태그 메모리 (11) 에 유지된 교체 방향으로서 결정된 라인에 대응하는 태그의 업데이트 프로세스를 수행한다. 동일한 제 2 단계에서, 제어기 (83) 는 메인 메모리 (3) 로의 판독 액세스를 수행하고, 입력 어드레스에 대응하는 데이터가 메인 메모리 (3) 로부터 판독되어 데이터 메모리 (10) 에 저장된다. 또한, 동일한 제 2 단계에서, 메인 메모리 (10) 로부터 판독된 데이터가 프로세서 (2) 로 출력된다.
전술한 바와 같이, 도 5 에 도시된 캐시 메모리 (8) 는 태그 메모리 (11) 로부터 태그 어드레스를 판독하고 제 1 파이프라인 단계에서 히트 결정 유닛 (12) 에 의한 히트 결정을 수행한다. 히트 결정 결과가 캐시 히트인 경우, 캐시 메모리 (8) 는 데이터 메모리 (10) 의 히트 방향으로부터 데이터를 판독하여 제 2 파이프라인 단계에서 프로세서 (2) 로 판독된 데이터를 전달한다. 한편, 히트 결정 결과가 미스 히트인 경우, 캐시 메모리 (8) 는 교체 방향을 결정하고, 태그 메모리 (11) 를 업데이트하고, 메인 메모리 (3) 로부터 판독된 데이터로 데이터 메모리 (10) 를 업데이트하고, 제 2 파이프라인 단계에서 프로세서 (2) 에 메인 메모리 (3) 로부터 판독된 데이터를 전달한다.
그러나, 전술한 바와 같이 2-단계 파이프라인을 갖는 캐시 메모리에서는, 캐시 메모리는 1 단계에서 많은 양의 동작을 실시하기 때문에 캐시 메모리 (8) 의 동작 주파수를 개선하는 것은 어렵고, 모든 프로세스를 만족할만큼 신속하게 하는 것은 불가능하다 (캐시 메모리 (8) 의 전체를 개선하는 것은 불가능). 따라서, 본 발명은, 3 개 이상의 단계 파이프라인을 갖는 캐시 메모리를 제조하고, 태그 메모리로부터 태그 어드레스를 판독하는 프로세스 및 히트 결정의 프로세스가 상이한 파이프라인 단계에서 수행되는 구성을 구축하기 위해 시도된다. 그러나, 캐시 메모리의 다수의 파이프라인 단계가 증가함에 따라, 본 발명은 후술하는 바와 같이, 캐시 메모리의 효율적인 작동을 방해하는 문제에 직면하게 된다.
본 명세서에서, 미스 히트는 1 개의 메모리 액세스 요구에서 발생하고 태그 메모리는 업데이트되는 것으로 가정한다. 여기서 문제는, 미스 히트의 발생으로 인한 태그 메모리의 이 업데이트 결과는, 미스 히트가 발생한 직후 이루어진 메모리 액세스 요구에 응답하여 이루어진 히트 결정에 반영되지 않는다는 것이다. 이 상황이 그대로 유지되면, 미스 히트가 발생한 직후에 이루어진 메모리 액세스 요구가, 미스 히트가 발생한 메모리 액세스 요구와 동일한 메모리 블록으로의 액세스인 경우, 미스 히트의 검출에 따라 저속 메모리로부터의 데이터 재충전이 이미 수행되었더라도, 결과는 미스 히트이고 원하지 않은 데이터 재충전 프로세스가 수행되도록 다시 결정된다. 마찬가지로, 미스 히트가 발생한 직후 이루어진 메모리 액세스 요구가, 미스 히트가 발생한 메모리 액세스에서 미스 히트의 검출로 인해 데이터 리필 프로세스에 의해 교체될 메모리 블록으로의 액세스인 경우, 결과가 미스 히트로서 결정되어야 함에도 불구하고, 결과는 캐시 히트가 되고 부정확한 데이터가 판독되도록 결정된다.
전술한 바와 같이, 원하지 않는 데이터 리필 액션을 방지하고 캐시 메모리로부터 부정확한 데이터가 판독되는 것을 방지하는 일 해결책으로서, 또한 다른 아키텍처를 채택하여 실시한다. 이 아키텍처에서, 미스 히트가 1 메모리 액세스 요구에서 발생하는 경우, 후속 메모리 액세스 요구의 프로세스는 파이프라인의 시작, 즉, 태그 메모리로의 액세스의 프로세스로부터 다시 수행된다. 이 아키텍처는 예를 들어, RISC 타입 마이크로프로세서에서 채택된 것이다. 그러나, 이 아키텍처는 또한 하드웨어 사이즈가 증가하고 재시도 시퀀스를 제어하는 제어 섹션의 복잡성이 증가하는 또 다른 문제점을 유발한다.
캐시 메모리 파이프라인의 다중-단계가 전개되는 경우에도, 연속적인 메모리 액세스를 효율적으로 프로세스할 수 있는 캐시 메모리를 제공하는 것을 가능하게 하기 위한 것이다.
본 발명의 일 실시형태는 프로세서와 저속 메모리 사이에 배열되고, 프로세서에 의해 이루어진 메모리 액세스의 파이프라인 프로세싱을 수행하는 캐시 메모리이다. 캐시 메모리는 데이터 메모리, 태그 메모리, 히트 결정 유닛, 래치 회로, 바이패스 회로, 및 제어기를 포함한다. 데이터 메모리는 저속의 서브세트에 대응하는 데이터를 저장한다. 태그 메모리는 데이터 메모리에 저장된 데이터에 대응하는 태그 어드레스를 저장한다. 히트 결정 유닛은, 프로세서로부터 공급된 입력 어드레스에 포함된 인덱스 어드레스를 이용하여 태그 메모리를 탐색함으로써 획득된 하나 이상의 태그 어드레스를 입력 어드레스에 포함된 태그 어드레스와 비교함으로써 캐시 히트 또는 미스 히트가 존재하는지 여부를 결정한다. 래치 회로는 입력 어드레스에 포함된 태그 어드레스를 유지한다. 바이패스 회로는 태그 메모리를 바이패스함으로써 히트 결정 유닛에 래치 회로에 의해 유지된 태그 어드레스를 제공한다. 히트 결정 결과가 미스 히트인 경우, 제어기는 입력 어드레스에 포함된 태그 어드레스에 의한 태그 메모리의 업데이트 프로세스를 제어하고, 저속 메모리로부터 데이터를 판독함으로써의 데이터 메모리의 업데이트 프로세스를 제어하며, 바이패스 회로의 작동을 제어한다.
본 발명의 일 실시형태에 따른 캐시 메모리에서는, 미스 히트가 선행 메모리 액세스 요구에서 발생하는 경우에도, 선행 메모리 액세스 요구에서 미스 히트의 발생으로 인한 태그 메모리의 업데이트 결과를 후속 메모리 액세스 요구에서의 히트 결정에 반영하는 것이 가능하다. 따라서, 히트 결정이 후속 메모리 액세스 요구에 응답하여 이루어진 경우, 부정확한 결정을 방지하고, 원하지 않은 데이터 리필 작동을 억제하며, 데이터 메모리로부터 부정확한 데이터를 출력하는 것을 피하는 것이 가능하다.
또한, 일 실시형태에 따른 캐시 메모리에서는, 미스 히트가 선행 메모리 액세스 요구에서 발생하는 경우에도, 태그 메모리로의 액세스의 프로세스로부터 다시 후속 메모리 액세스 요구의 프로세스를 재시도할 필요가 없다. 따라서, 태그 메모리로의 액세스의 프로세스로부터 다시 프로세스를 수행하는데 리던던트 하드웨어가 필요하지 않다.
예를 들어, 본 발명의 일 실시형태에 따른 캐시 메모리는 후술할 동작을 수행할 수도 있다. 캐시 메모리는 제 1 파이프라인 단계에서 인덱스 어드레스를 이용하여 태그 메모리로부터 태그 어드레스를 판독하는 프로세스를 수행한다. 다음으로, 제 1 파이프라인 단계 후의 제 2 파이프라인 단계에서, 캐시 메모리는 히트 결정 유닛에 의해 결정 프로세스를 수행한다. 그 후, 제 2 파이프라인 단계에서 히트 결정 결과가 미스 히트인 경우, 제 3 파이프라인 단계에서 태그 메모리를 바이패스함으로써 히트 결정 유닛에 래치 회로에 의해 유지된 태그 어드레스 를 입력하기 위해, 캐시 메모리는 제어기에 의해 태그 메모리 업데이트의 제어 및 바이패스 회로의 제어를 수행하고, 제 4 또는 그 후의 파이프라인 단계에서 저속 메모리로부터 데이터를 판독함으로써의 데이터 메모리의 업데이트 프로세스 및 프로세서에 저속 메모리로부터 판독된 데이터를 출력하는 프로세스를 수행한다. 제 3 파이프라인 단계는 제 2 파이프라인 단계 직후이다. 제 4 파이프라인 단계는 제 3 파이프라인 단계 직후이다.
본 발명에 따르면, 캐시 메모리 파이프라인의 다중-단계가 전개되는 경우에도, 연속적인 메모리 액세스를 효율적으로 프로세스할 수 있는 캐시 메모리를 제공하는 것이 가능하다.
본 발명의 상기 목적 및 다른 목적, 이점 및 특징은 첨부된 도면과 관련하여 개시된 다음의 특정의 바람직한 실시형태로부터 더욱 명백할 것이다.
본 발명을 예시적인 실시형태를 참조하여 설명한다. 당업자는 본 발명의 기술을 이용하여 달성될 수 있는 다수의 대체적인 실시형태를 인식할 것이고, 본 발명은 설명적인 목적을 위해 개시된 실시형태에 제한되지 않는다.
본 발명을 적용하는 특정 실시형태를 도면을 참조하여 이하 상세히 설명할 것이다. 각각의 도면에서, 동일한 번호는 동일한 콤포넌트에 대해 이용된다. 중복되는 도형은 간략함의 목적의 위해 적절히 생략된다.
본 발명에 따른 캐시 메모리 (1) 의 구조는 도 1 에 도시된다. 캐시 메 모리 (1) 는 4-방향 세트 공동 타입 캐시 메모리이다. 캐시 메모리 (1) 및 도 5 에 도시된 관련 분야의 캐시 메모리 (8) 가 용이하게 비교되도록 본 명세서에서의 캐시 메모리는 4-방향 세트 공동 구조임을 가정한다. 그러나, 이러한 구조는 일 예일 뿐이다. 캐시 메모리 (1) 의 다수의 방향은 4 개가 아닐 수도 있고, 캐시 메모리 (1) 는 직접-맵 타입 캐시 메모리일 수도 있다.
모두 캐시 메모리 (1) 에 포함된, 데이터 메모리 (10) 의 콤포넌트, 태그 메모리 (11), 히트 결정 유닛 (12), 및 어드레스 래치 (14) 는 도 5 에 도시된 콤포넌트와 동일하다. 따라서, 동일한 참조 번호는 대응 콤포넌트에 주어지고, 상세한 설명은 본 명세서에서 생략될 것이다.
히트 결정 결과가 캐시 히트인 경우, 캐시 메모리 (1) 에 포함된 제어기 (13) 의 작동은 관련 분야의 제어기 (83) 의 작동과 동일하다. 더 상세하게는, 히트 결정 유닛 (12) 이 결과가 캐시 히트임을 결정한 경우, 제어기 (13) 는 데이터 메모리 (10) 에 칩 선택 신호 (CS 신호) 및 판독 스트로브 신호 (RS 신호) 를 출력함으로써 데이터 메모리 (10) 로부터 데이터의 판독을 제어한다. 한편, 히트 결정 유닛 (12) 이 결과가 미스 히트임을 결정한 경우, 제어기 (13) 는 입력 어드레스에 포함된 태그 어드레스를 태그 메모리 (11) 에 저장하기 위해 태그 메모리 (11) 의 재기입을 제어하고, 데이터 메모리 (10) 의 데이터 보충을 제어하며, 후술할 선택기 (19) 의 작동을 제어한다.
캐시 메모리 (1) 가 4-방향 파이프라인 구조를 채택했기 때문에, 캐시 메모리 (1) 는 도 5 에 도시된 캐시 메모리 (8) 가 가진 것보다 더 많은, 파이프라인 단계간의 중간 데이터를 유지하는 래치 회로를 갖는다. 어드레스 래치 (15 내지 17, 20) 및 데이터 래치 (21) 는 래치 회로에 대응한다. 어드레스 래치 (15) 는 입력 어드레스 중 적어도 인덱스 어드레스부 및 워드 어드레스부를 유지하는 회로이다. 어드레스 래치 (14) 뿐만 아니라 어드레스 래치 (16 및 17) 는 입력 어드레스 중 적어도 태그 어드레스부를 유지하는 회로이다.
어드레스 래치 (20) 는 선택기 (19) 와 히트 결정 유닛 (12) 사이의 중간 데이터를 유지하는 회로이다. 어드레스 래치 (20) 는 입력 어드레스에 응답하여 태그 메모리 (11) 로부터 출력된 4 개의 태그 어드레스를 유지할 수 있도록 구성된다. 예를 들어, 어드레스 래치 (20) 는 각각 1 개의 태그 어드레스를 유지할 수 있는 4 개의 플립 플롭 회로를 갖을 수도 있다.
데이터 래치 (21) 는 데이터 메모리 (10) 로부터 출력된 데이터를 유지하는 회로이다. 즉, 데이터 래치 (21) 는 데이터 메모리 (10) 를 액세스하는 프로세스 및 개별적인 파이프라인 단계에서 프로세서 (2) 에 데이터를 전달하는 프로세스를 분할하기 위해 배열된다.
바이패스 라인 (18) 은 태그 메모리 (11) 를 바이패스함으로써 히트 결정 유닛 (12) 에 어드레스 래치 (17) 에 유지된 데이터를 입력하는 바이패스 회로를 포함한다. 선택기 (19) 의 동작은 제어기 (13) 로부터 출력된 제어 신호 (SC 신호) 에 의해 제어된다.
도 2 를 참조하며, 캐시 메모리 (1) 의 작동을 설명한다. 도 2 는 프로세서 (2) 에 의해 이루어진 로딩 요구가 프로세스되는 경우, 캐시 메모리 (1) 의 파이프라인 작동을 도시한다. 도 2 의 (a) 부는 히트 결정 결과가 캐시 히트인 경우의 작동을 도시하고, 도 2 의 (b) 부는 히트 결정 결과가 미스 히트인 경우의 작동을 도시한다. 파이프라인의 제 1 단계에서, 태그 메모리 (11) 는 프로세서 (2) 로부터 공급된 입력 어드레스를 수신하여, 입력 어드레스의 인덱스 어드레스에 대응하는 4 개의 태그 어드레스를 출력한다. 태그 메모리 (11) 로부터 출력된 4 개의 태그 어드레스는 선택기 (19) 를 통해 어드레스 래치 (20) 에서 유지된다.
다음으로, 제 1 단계 직후의 제 2 단계에서, 히트 결정이 히트 결정 유닛 (12) 에 의해 이루어진다. 히트 결정 유닛 (12) 은 어드레스 래치 (16) 에 유지된 입력 어드레스에 포함된 태그 어드레스를 어드레스 래치 (20) 에 유지된 태그 어드레스와 비교한다.
히트 결정 유닛 (12) 에 의해 이루어진 결정이 캐시 히트인 경우, CS 신호, 및 RS 신호가 제 2 단계의 최종부에서 데이터 메모리 (10) 로 입력된다. 도 2 의 (a) 부에서 도시된 바와 같이, 제 2 단계 직후의 제 3 단계에서는, 데이터가 데이터 메모리 (10) 로부터 판독되어, 판독된 데이터가 데이터 래치 (21) 에 유지된다. 최종적으로, 제 3 단계 직후의 제 4 단계에서, 데이터 래치 (21) 에 유지된 데이터는 프로세서 (2) 에 전달되어, 일반 레지스터와 같은 프로세서 (2) 의 저장 영역에 저장된다.
한편, 히트 결정 유닛 (12) 에 의해 이루어진 결정이 미스 히트인 경우, 제 2 단계의 최종부에서 CS 신호 및 RS 신호의 출력은 수행되지 않는다. 도 2 의 (b) 부에서 도시된 바와 같이, 제 2 단계 직후의 제 3 단계에서는, 제어기 (13) 는 교체 방향을 결정하는 프로세스 및 입력 어드레스에 포함된 태그 어드레스와 함께 태그 메모리 (11) 에 유지된 교체 방향으로서 결정된 태그 어드레스의 업데이트 프로세스를 수행한다. 교체 방향의 결정은 4 개의 방향으로부터 랜덤하게 방향을 선택하는 랜덤 방법 또는 최장 시간 주기 동안 조회되지 않은 방향을 선택하는 LRU (Least Recently Used) 방법과 같은 결정 방법을 이용하여 수행될 수 있다.
또한, 제어기 (13) 는 제 3 단계에서 선택기 (19) 를 제어하고, 어드레스 래치 (17) 의 저장값과 함께 교체 방향에 대응하는 태그 어드레스, 즉, 입력 어드레스의 태그 어드레스를 유지하는 어드레스 래치 (20) 를 업데이트한다.
제어기 (13) 는 교체 방향을 결정하는 프로세스 및 태그 메모리 (11) 의 업데이트 프로세스를 수행하고, 도 2 의 (b) 부에서 도시된 C3 사이클을 의미하는, 제 3 단계의 제 1 클럭 사이클에서 설명된 바와 같이 선택기 (19) 의 제어를 수행한다. 제어기 (13) 는 또한 WAIT 신호를 출력함으로써 1 클럭 사이클만큼 파이프라인 작동을 스톨한다.
파이프라인 작동이 스톨된 제 3 단계의 제 2 사이클 직후의 제 4 단계에서는, 메모리 버스 (6) 에 접속된 메인 메모리 (3) 에 판독 액세스가 수행된다. 그 후, 입력 어드레스에 대응하는 데이터가 메인 메모리 (3) 로부터 출력되어 데이터 메모리 (10) 에 저장된다. 또한, 동일한 제 4 단계에서는, 메인 메모리 (3) 로부터 판독된 데이터가 프로세서 (2) 로 출력된다.
도 3 및 도 4 를 참조하여, 전술한 바와 같이 동작하는 캐시 메모리 (1) 의 효과를 설명한다. 도 3 은 2 개의 로딩 요구 (로딩 요구 A 및 B) 가 연속으로 수신되는 경우, 캐시 메모리 (1) 의 파이프라인 프로세싱을 도시하는 타이밍도이다. 더 상세하게는, 도 3 은 선행 로딩 요구 A 에서 미스 히트가 발생하는 경우 프로세스를 도시한다.
도 3 에 도시된 바와 같이, 로딩 요구 A 의 제 2 단계 (m+1 단계) 에서 결정 결과가 미스 히트인 경우, 교체 방향이 결정되고 태그 메모리 (11) 가 제 3 단계 (m+2) 의 후속하는 제 1 사이클 (C3 사이클) 에서 재기입된다. 태그 메모리 (11) 에 저장될 태그 어드레스는 바이패스 라인 (18) 및 선택기 (19) 에 의해 태그 메모리를 바이패스함으로써 어드레스 래치 (20) 로 공급된다 그 후, 파이프라인은 1 사이클만큼 스톨된다.
후속하는 로딩 요구 B 에 응답하는 프로세스는 전술한 로딩 요구 A 에 응답하는 프로세스와 병행하여 시작되었다. 더 상세하게는, 로딩 요구 A 의 제 2 단계인 m+1 단계에서, 태그 어드레스는 로딩 요구 B 의 제 1 단계에서 프로세스로서 태그 메모리 (11) 로부터 판독된다. 즉, 로딩 요구 B 에서 태그 어드레스가 판독되는 경우, 선행 로딩 요구 A 의 미스 히트에 응답하는 태그 메모리 (11) 의 업데이트는 완료되지 않았다. 로딩 요구 B 의 제 2 단계 (m+2 단계) 에서, 히트 결정이 로딩 요구 B 에 대해 이루어진다. 그러나, 이 히트 결정은 선행 로딩 요구 A 의 미스 히트에 응답하는 태그 메모리 (11) 의 업데이트 결과를 반영하지 않고 수행된다.
그러나, 파이프라인 작동이 스톨된 m+2 단계의 제 2 사이클 (C4 사이클) 에서 다시 수행된 로딩 요구 B 의 히트 결정은 태그 메모리 (11) 를 바이패스함으로 써 어드레스 래치 (20) 에 주어진 새로운 태그 어드레스를 이용하여 이루어진다.
전술한 바와 같이, 본 발명의 캐시 메모리 (1) 에 따라, 선행 메모리 액세스 요구에서 미스 히트의 발생으로 인한 태그 메모리 (11) 의 업데이터 결과를, 미스 히트가 선행 메모리 액세스 요구에서 발생하는 경우에도, 후속 메모리 액세스 요구에서의 히트 결정에 반영하는 것이 가능하다. 따라서, 히트 결정이 후속 메모리 액세스 요구에 대응하여 이루어진 경우 부정확한 결정을 방지하고, 원하지 않은 데이터 보충 작동을 억제하며, 데이터 메모리 (10) 로부터 부정확한 데이터의 출력을 피하는 것이 가능하다.
또한, 도 3 에 도시된 바와 같이, 미스 히트가 선행 메모리 액세스 요구에서 발생하는 경우에도, 캐시 메모리 (1) 에서는, 태그 메모리 (11) 를 판독하는 프로세스로부터 다시 후속 메모리 액세스 요구의 프로세스를 재시도할 필요가 없다. 따라서, 리던던트 하드웨어는 태그 메모리 (11) 를 판독하는 프로세스로부터 다시 프로세스를 수행하는데 필요하지 않다. 또한, 태그 메모리 (11) 를 판독하는 프로세스를 재시도할 필요가 없기 때문에, 후속 메모리 액세스 요구의 캐시 메모리 액세스 시간이 증가하는 것을 방지하는 것이 가능하다.
또한, 캐시 메모리 (1) 는 이하 설명하는 점에서 효과적인다. 도 4 는 직접 저장 요구 및 로딩 요구가 연속적으로 수행되는 경우를 도시하는 타이밍도이다. 직접 저장 요구에서, 프로세서 (2) 는 캐시 메모리 (1) 와 관계하지 않고 메인 메모리 (3) 에 직접 데이터를 기입한다. 상기 설명으로부터 명백해 질 바와 같이, 로딩 요구가 캐시 메모리 (1) 에 대해 이루어진다. 도 4 의 (b) 부에 도시된 직접 저장 요구의 파이프라인은 프로세서 (2) 의 파이프라인이고, 도 4 의 (c) 부에 도시된 로딩 요구의 파이프라인은 캐시 메모리 (1) 의 파이프라인이다.
도 4 의 (b) 부에 도시된 직접 저장 요구는 프로세서 (2) 에서 IF 단계 (C1 사이클) 로부터 EXE 단계 (C6 사이클) 까지 6-단계 파이프라인에서 수행된다. 더 상세하게는, IF 단계 (C1 사이클) 에서, 명령은 명령 캐시로부터 취해진다. ID 단계 (C2 사이클) 에서, 패치된 명령이 디코딩된다. ID 단계 (C3 사이클) 에서, 효과적인 어드레스의 계산이 수행된다. EXE 단계 (C6 사이클) 에서, 데이터가 메인 메모리 (3) 로 기입된다. 데이터가 메인 메모리 (3) 에 기입되는 경우, 메모리 버스 (6) 의 버스 스피드와 프로세서 (2) 의 프로세싱 스피드간의 스피드 차이로 인해 프로세서 (2) 가 스톨되는 것을 방지할 목적으로, 메인 메모리 (3) 에 데이터를 직접 기입하는 것보다 먼저 저장 버퍼 (미도시) 에 데이터를 기입하는 것이 더욱 일반적이다. 데이터가 먼저 저장 버퍼에 기입되는 경우, 저장 버퍼로의 데이터의 출력만이 EXE 단계 (C6 사이클) 에서 수행된다. 데이터는 C7 사이클 또는 EXE 단계 이후 나중의 사이클에서 메인 메모리 (3) 에 기입된다.
전술한 바와 같이, 메인 메모리로의 실제 액세스가 C7 또는 나중의 사이클에서 직접 저장 요구에 의해 이루어지는 경우, 데이터는 여전히 C6 사이클에서 저장 버퍼에 기입중이고, 저장 버퍼에 의해 이루어진 액세스 요구는 아직 메모리 버스 (6) 으로 출력되지 않는다. 따라서, 미스 히트가 검출된 캐시 메모리 (1) 에 의한 액세스 요구가 도 4 의 C6 사이클에서 먼저 이루어진 경우, 미스 히트로 인해 경합하는 액세스 요구가 없고 이전 저장 명령 (직접 저장 액세스) 에 의한 메모리 버스로의 액세스가 나중에 수행되기 때문에, 먼저 메인 메모리 (3) 로부터 데이터가 판독된다. 직접 저장 요구 및 로딩 요구 모두가 동일한 어드레스에 대해 이루어진 경우, 프로세스 순위가 인터체인지되지 않기 때문에 프로그램은 더이상 정상적으로 수행될 수 없다.
그러나, 본 발명에 따른 캐시 메모리 (1) 에서는, 미스 히트가 발생하는 경우, 데이터는 파이프라인의 최종 단계에서 메인 메모리 (3) 로부터 판독된다. 따라서, 도 4 의 (c) 부에 도시된 타이밍도에서, 캐시 메모리 (1) 는 C8 사이클 이전에 메모리 버스 (6) 에 액세스하지 않고, 이는 저장 버퍼에 의한 메모리 버스 (6) 로의 액세스는, 그 액세스가 캐시 메모리 (1) 에 의해 이루어지기 이전에 시작했다는 것을 의미한다. 도 4 의 (c) 부에서, C5 사이클의 CMP 단계는 히트 결정이 이루어진 파이프라인 단계이다. C6 사이클의 WTG 는 미스 히트로 인해 태그 메모리 (11) 가 업데이트된 파이프라인 단계이다. C8 사이클 또는 나중의 사이클에서 MAC 단계는, 데이터가 메인 메모리 (3) 로부터 판독되고, 판독된 데이터가 프로세서 (2) 로 전달되는 파이프라인이다. 도 4 에 도시된 바와 같이, 저장 버퍼 (미도시) 에 의해 이루어진 메모리 버스 (6) 로의 액세스 요구 및 캐시 메모리 (1) 에 의해 이루어진 메모리 버스 (6) 로의 액세스 요구가 동시에 발생하거나, 캐시 메모리 (1) 에 의해 이루어진 액세스 요구가 저장 버퍼에 의해 이루어진 액세스 요구보다 나중에 발생하는 경우, 메모리 버스 (6) 의 버스 제어기 (미도시) 는 명령을 수행하는 순위에 따라 액세스 요구를 제어할 수 있다. 따라서, 직접 저장 요구 및 로딩 요구 모두가 동일한 어드레스에 대해 이루어진 경우에도, 프로그램은 정상적으로 수행될 수 있다.
캐시 메모리 (1) 의 구성은 일 예일 뿐이고, 다양한 변경이 이루어질 수 있다. 예를 들어, 파이프라인의 수는 4 개로 한정되지 않는다. 또한, 제어기 (13) 의 특정 구성은 복수의 회로 세트일 수도 있다. 예를 들어, 제어기 (13) 는 각각 개별적인 회로를 이용하여 교체 방향을 계산할 수도 있고, 선택기 (19) 를 제어할 수도 있고, 메인 메모리 (3) 로의 액세스를 제어할 수도 있다.
본 발명의 또 다른 실시형태에서, 전술한 캐시 메모리 (1) 에 포함된 구성의 일부를 포함하는 캐시 메모리가 존재한다. 더 상세하게는, 태그 메모리 (11) 를 판독하는 프로세스 및 개별 파이프라인 단계에서 히트 결정의 프로세스를 수행하는 캐시 메모리를 가정한다. 미스 히트가 발생하는 경우, 교체 방향의 결정 및 태그 메모리 (11) 의 재기입은 히트 결정을 수행하는 파이프라인 단계 직후의 파이프라인 단계에서 수행된다. 동시에, 결과가 미스 히트인 액세스 요구에 대응한 태그 어드레스는 태그 메모리 (11) 를 바이패스함으로써 후속 액세스 요구의 히트 결정으로 포워딩된다. 이러한 구성을 가짐으로서, 파이프라인의 시작으로부터 후속 액세스 요구를 재시도하지 않고 히트 결정이 방지될 수 있다.
또한, 미스 히트가 발생하는 경우, 전술한 바와 같은 캐시 메모리 (1) 는 1 사이클만큼 파이프라인을 스톨한다. 이 구성은, 교체될 태그 어드레스의 정보가 후속 메모리 액세스 요구의 히트 결정상에 명백히 반영된다는 점에서 효과적이다. 그러나, 교체될 태그 어드레스의 정보가, 예를 들어 랜덤 방법으로 교체 방향을 결정함으로써 교체 방향의 결정 프로세스를 스피드 업함으로써 파이프라인 을 스톨하지 않고, 후속 메모리 액세스 요구의 히트 결정상에 반영될 수 있다.
또한, 본 발명이 상기 실시형태에 제한되지 않지만, 본 발명의 범위 및 사상으로부터 벗어나지 않고 수정되고 변경될 수도 있음이 명백하다.
도 1 은 본 발명의 일 실시형태에 따른 캐시 메모리의 구성도.
도 2 내지 도 4 는 본 발명의 일 실시형태에 따른 캐시 메모리에 의해 이루어진 파이프라인을 도시하는 도면.
도 5 는 관련 분야의 캐시 메모리의 구성도.
도 6 은 관련 분야의 캐시 메모리 파이프라인 프로세스를 도시하는 도면.
도 7 은 입력 어드레스의 일 예를 도시하는 도면.
※ 도면의 주요 부분에 대한 부호의 설명 ※
1 : 캐시 메모리 2 : 프로세서
3 : 메인 메모리 4 : 버스
5 : 데이터 버스 6 : 메모리 버스
7 : WAIT 신호 라인 8 : 캐시 메모리
10 : 데이터 메모리 11 : 태그 메모리
12 : 히트 결정 유닛 13 : 제어기
15, 16, 17, 18, 19, 20 : 어드레스 래치
21 : 데이터 래치 83 : 제어기

Claims (18)

  1. 제 1 로딩 요구 및 제 2 로딩 요구의 순서로 순차적으로 수신된 상기 제 1 로딩 요구 및 상기 제 2 로딩 요구로서, 상기 제 1 로딩 요구는 제 1 태그 어드레스 및 제 1 인덱스 어드레스를 특정하고, 상기 제 2 로딩 요구는 제 2 태그 어드레스 및 제 2 인덱스 어드레스를 특정하는 상기 제 1 로딩 요구 및 상기 제 2 로딩 요구의 파이프라인 프로세싱을 수행하는 캐시 메모리로서,
    상기 캐시 메모리에 연결된 메인 메모리에 저장된 데이터의 서브세트에 대응하는 데이터를 저장하도록 구성되는 데이터 메모리;
    상기 데이터 메모리에 저장된 데이터에 대응하는 태그 어드레스를 저장하도록 구성되고, 제 1 파이프 라인 단계에서 상기 제 1 인덱스 어드레스에 대응하는 제 1 태그 어드레스 그룹을 출력하기 위해 상기 제 1 인덱스 어드레스를 수신하도록 구성되며, 상기 제 1 파이프 라인 단계의 다음 파이프라인 단계인 제 2 파이프 라인 단계에서 상기 제 2 인덱스 어드레스에 대응하는 제 2 태그 어드레스 그룹을 출력하기 위해 상기 제 2 인덱스 어드레스를 수신하도록 구성되는 태그 메모리로서, 상기 제 1 태그 어드레스 그룹은 상기 제 1 인덱스 어드레스에 대응하는 하나 이상의 태그 어드레스로 구성되며, 상기 제 2 태그 어드레스 그룹은 상기 제 2 인덱스 어드레스에 대응하는 하나 이상의 태그 어드레스로 구성되는 상기 태그 메모리;
    상기 제 1 파이프라인 단계에서 상기 제 1 태그 어드레스 그룹을 저장하고, 상기 제 2 파이프라인 단계에서 상기 제 2 태그 어드레스 그룹을 저장하기 위해 상기 태그 메모리에 연결되는 어드레스 래치;
    상기 제 2 파이프 라인 단계에서 상기 제 1 로딩 요구가 캐시 히트인지 또는 미스 히트인지 여부를 결정하도록 상기 제 1 태그 어드레스를 상기 제 1 태그 어드레스 그룹과 비교하고, 상기 제 2 파이프 라인 단계의 다음 파이프라인 단계인 제 3 파이프라인 단계에서 상기 제 2 로딩 요구가 캐시 히트인지 또는 미스 히트인지 여부를 결정하도록 상기 제 2 태그 어드레스와 상기 제 2 태그 어드레스 그룹을 비교하기 위해 상기 어드레스 래치에 연결되는 히트 결정 유닛; 및
    상기 태그 메모리 및 상기 어드레스 래치의 업데이트 프로세스를 제어하도록 구성되고, 상기 히트 결정 유닛이 상기 제 1 로딩 요구가 미스 히트라고 결정하는 경우 상기 제 3 파이프라인 단계에서 상기 파이프라인 프로세싱을 스톨하도록 구성되는 제어기로서, 상기 업데이트 프로세스에서 상기 태그 메모리에 저장된 상기 제 1 태그 어드레스 그룹의 태그 어드레스 중 하나의 태그 어드레스가 상기 제 1 태그 어드레스로 업데이트되고, 상기 업데이트 프로세스에서 상기 어드레스 래치에 저장된 상기 제 2 태그 어드레스 그룹의 태그 어드레스 중 하나의 태그 어드레스가 상기 제 1 태그 어드레스로 업데이트되며, 상기 어드레스 래치는 상기 업데이트 프로세스에 기초하여 상기 제 1 태그 어드레스를 포함하는 제 3 태그 어드레스 그룹을 저장하는 상기 제어기를 포함하며,
    상기 히트 결정 유닛은 상기 제 2 태그 어드레스를 상기 어드레스 래치에 저장된 상기 제 3 태그 어드레스 그룹과 비교함으로써 상기 파이프라인 프로세싱을 스톨하는 것에 기초하여 상기 제 2 로딩 요구가 캐시 히트인지 또는 미스 히트인지 여부를 다시 결정하는, 캐시 메모리.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 제 1 항에 있어서,
    상기 제어기는, 상기 히트 결정 유닛이 상기 제 1 로딩 요구가 미스 히트라고 결정한 경우, 상기 제 3 파이프라인 단계의 다음 파이프라인 단계인 제 4 파이프라인 단계에서 상기 데이터 메모리의 업데이트 프로세스를 수행하며,
    상기 데이터 메모리의 업데이트 프로세스에서, 상기 데이터 메모리에 저장된 데이터는, 상기 메인 메모리에 저장되고 상기 제 1 태그 어드레스 및 상기 제 1 인덱스 어드레스에 대응하는 데이터로 업데이트되는, 캐시 메모리.
  12. 제 1 항에 있어서,
    상기 제 1 태그 어드레스, 상기 제 1 태그 어드레스 그룹 및 상기 제 2 태그 어드레스 그룹 중 하나를 선택하기 위해 상기 태그 메모리와 상기 어드레스 래치 사이에 연결되는 선택기를 더 포함하는, 캐시 메모리.
  13. 제 12 항에 있어서,
    상기 선택기는 상기 제 1 파이프라인 단계에서 상기 제 1 태그 어드레스 그룹을 선택하고, 상기 제 2 파이프라인 단계에서 상기 제 2 태그 어드레스 그룹을 선택하며, 상기 제 3 파이프라인 단계에서 상기 제 1 태그 어드레스를 선택하는, 캐시 메모리.
  14. 제 1 항에 있어서,
    상기 제 1 태그 어드레스를 저장하도록 구성되는 제 1 래치 회로;
    상기 제 1 래치 회로로부터 상기 제 1 태그 어드레스를 수신하고 상기 수신된 제 1 태그 어드레스를 저장하기 위해 상기 제 1 래치 회로와 상기 태그 메모리 사이에 연결되는 제 2 래치 회로;
    상기 제 1 태그 어드레스를 저장하기 위해 상기 제 1 래치 회로 및 상기 히트 결정 유닛에 연결되는 제 3 래치 회로; 및
    상기 제 1 인덱스 어드레스를 저장하기 위해 상기 데이터 메모리에 연결되는 제 4 래치 회로를 더 포함하는, 캐시 메모리.
  15. 제 1 항에 있어서,
    상기 캐시 메모리는 상기 캐시 메모리에 연결된 프로세서로부터 상기 제 1 로딩 요구 및 상기 제 2 로딩 요구를 수신하는, 캐시 메모리.
  16. 제 1 항에 있어서,
    상기 메인 메모리는 상기 캐시 메모리에 연결되는 저속 메모리인, 캐시 메모리.
  17. 제 1 항에 있어서,
    상기 제어기는 상기 제 3 파이프라인 단계에서 상기 파이프라인 프로세싱을 스톨하기 위해 대기 신호를 출력하는, 캐시 메모리.
  18. 제 14 항에 있어서,
    상기 데이터 메모리로부터 출력된 데이터를 저장하기 위해 상기 데이터 메모리에 연결되는 제 5 래치 회로를 더 포함하는, 캐시 메모리.
KR1020070107376A 2006-10-24 2007-10-24 파이프라인 구조를 갖는 캐시 메모리 및 이를 제어하는방법 KR100955433B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2006-00288862 2006-10-24
JP2006288862A JP2008107983A (ja) 2006-10-24 2006-10-24 キャッシュメモリ

Publications (2)

Publication Number Publication Date
KR20080036940A KR20080036940A (ko) 2008-04-29
KR100955433B1 true KR100955433B1 (ko) 2010-05-04

Family

ID=38788037

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070107376A KR100955433B1 (ko) 2006-10-24 2007-10-24 파이프라인 구조를 갖는 캐시 메모리 및 이를 제어하는방법

Country Status (4)

Country Link
US (1) US7836253B2 (ko)
JP (1) JP2008107983A (ko)
KR (1) KR100955433B1 (ko)
GB (1) GB2443298B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020197725A1 (en) * 2019-03-26 2020-10-01 Intel Corporation System, apparatus and method for adaptive interconnect routing

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009217640A (ja) * 2008-03-11 2009-09-24 Ricoh Co Ltd データ転送制御装置
JP5583893B2 (ja) * 2008-05-28 2014-09-03 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US8332590B1 (en) * 2008-06-25 2012-12-11 Marvell Israel (M.I.S.L.) Ltd. Multi-stage command processing pipeline and method for shared cache access
JP2010102623A (ja) * 2008-10-27 2010-05-06 Nec Electronics Corp キャッシュメモリ及びその制御方法
JP2011028343A (ja) * 2009-07-22 2011-02-10 Fujitsu Ltd 演算処理装置、およびデータ転送方法
JP2011141657A (ja) * 2010-01-06 2011-07-21 Yokogawa Electric Corp データ処理装置
KR101635395B1 (ko) * 2010-03-10 2016-07-01 삼성전자주식회사 멀티포트 데이터 캐시 장치 및 멀티포트 데이터 캐시 장치의 제어 방법
JP5637312B2 (ja) * 2011-06-29 2014-12-10 富士通株式会社 キャッシュ制御装置及びパイプライン制御方法
CN108228646B (zh) * 2016-12-21 2022-02-08 伊姆西Ip控股有限责任公司 用于访问数据的方法和电子设备
JP2018106227A (ja) * 2016-12-22 2018-07-05 ルネサスエレクトロニクス株式会社 キャッシュメモリ装置及び半導体装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02304650A (ja) * 1989-05-19 1990-12-18 Toshiba Corp パイプライン方式のマイクロプロセッサ
JPH0322155A (ja) * 1989-06-20 1991-01-30 Matsushita Electric Ind Co Ltd キャッシュメモリ装置
JPH1063575A (ja) 1996-08-19 1998-03-06 Nec Corp キャッシュメモリ
KR20000052480A (ko) * 1998-12-15 2000-08-25 가네꼬 히사시 캐시 프로세스용 시스템 및 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1361518B1 (en) * 2002-05-10 2013-08-07 Texas Instruments Incorporated Reducing TAG-RAM accesses and accelerating cache operation during cache miss

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02304650A (ja) * 1989-05-19 1990-12-18 Toshiba Corp パイプライン方式のマイクロプロセッサ
JPH0322155A (ja) * 1989-06-20 1991-01-30 Matsushita Electric Ind Co Ltd キャッシュメモリ装置
JPH1063575A (ja) 1996-08-19 1998-03-06 Nec Corp キャッシュメモリ
KR20000052480A (ko) * 1998-12-15 2000-08-25 가네꼬 히사시 캐시 프로세스용 시스템 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020197725A1 (en) * 2019-03-26 2020-10-01 Intel Corporation System, apparatus and method for adaptive interconnect routing
US11256657B2 (en) 2019-03-26 2022-02-22 Intel Corporation System, apparatus and method for adaptive interconnect routing

Also Published As

Publication number Publication date
US7836253B2 (en) 2010-11-16
GB2443298A (en) 2008-04-30
GB0719926D0 (en) 2007-11-21
GB2443298B (en) 2011-06-29
KR20080036940A (ko) 2008-04-29
JP2008107983A (ja) 2008-05-08
US20080098174A1 (en) 2008-04-24

Similar Documents

Publication Publication Date Title
KR100955433B1 (ko) 파이프라인 구조를 갖는 캐시 메모리 및 이를 제어하는방법
KR100278328B1 (ko) 캐시 미스 버퍼
US8627047B2 (en) Store data forwarding with no memory model restrictions
CN101256481B (zh) 数据处理器以及存储器读激活控制方法
KR100617663B1 (ko) 캐시 메모리 내 태그 액세스 및 데이터 액세스의 분리방법 및 장치
JP5482801B2 (ja) 演算処理装置
US8499123B1 (en) Multi-stage pipeline for cache access
US7631149B2 (en) Systems and methods for providing fixed-latency data access in a memory system having multi-level caches
US20040098540A1 (en) Cache system and cache memory control device controlling cache memory having two access modes
JP4370327B2 (ja) バスコントローラ
JPH0668736B2 (ja) 2個のシステムクロックサイクルを利用する書込み動作をもったキャッシュメモリユニットを供与する装置及び方法
US20020161976A1 (en) Data processor
US20100106910A1 (en) Cache memory and method of controlling the same
JP4009306B2 (ja) キャッシュメモリおよびその制御方法
JP2001290702A (ja) 記憶装置
JPH06242951A (ja) キャッシュメモリシステム
JP2002229852A (ja) キャッシュシステムの制御回路
US20100095071A1 (en) Cache control apparatus and cache control method
JP3577049B2 (ja) 分岐予測回路
JPH0756808A (ja) データキャッシュバッファ及び記憶方法
JP2009199384A (ja) データ処理装置
JPH06161900A (ja) キャッシュメモリ装置
JPH07200406A (ja) キャッシュシステム
JPH103389A (ja) 並列計算機
JPH0812601B2 (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
FPAY Annual fee payment

Payment date: 20130404

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140401

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160318

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170322

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190411

Year of fee payment: 10