KR0128272B1 - 보조 메모리를 포함하는 정보 처리 시스템 및 그 동작 방법 - Google Patents
보조 메모리를 포함하는 정보 처리 시스템 및 그 동작 방법Info
- Publication number
- KR0128272B1 KR0128272B1 KR1019940024922A KR19940024922A KR0128272B1 KR 0128272 B1 KR0128272 B1 KR 0128272B1 KR 1019940024922 A KR1019940024922 A KR 1019940024922A KR 19940024922 A KR19940024922 A KR 19940024922A KR 0128272 B1 KR0128272 B1 KR 0128272B1
- Authority
- KR
- South Korea
- Prior art keywords
- information
- memory
- processing system
- instruction
- response
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 311
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000010365 information processing Effects 0.000 title claims abstract description 45
- 230000004044 response Effects 0.000 claims abstract description 44
- 230000000903 blocking effect Effects 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6022—Using a prefetch buffer or dedicated prefetch cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6028—Prefetching based on hints or prefetch instructions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Hardware Redundancy (AREA)
- Information Transfer Systems (AREA)
Abstract
본 발명은 보조 메모리를 포함하는 정보 처리 시스템 및 그 동작 방법을 제공한다. 보조 메모리는, 제1 인스트럭션에 응답하여, 시스템 메모리로부터 제1 정보를 저장한다. 캐시 메모리는 제2 인스트럭션에 응답하여, 제1 정보가 제2 정보를 포함하면 보조 메모리로부터 제2 정보를 저장하고, 그렇지 않으면 시스템 메모리로부터 제2 정보를 저장한다.
Description
제1도는 본 발명의 바람직한 실시예에 따른 정보 처리 시스템의 블록도
제2도는 제1도의 프리페치 메모리의 동작 방법을 도시하는 순서도.
제3도는 제1도의 캐시 메모리의 동작 방법을 도시하는 순서도.
제4도는 본 발명의 다른 실시예에 따른 정보 처리 시스템의 블록도.
* 도면의 주요부분에 대한 부호의 설명
12 : 캐시 메모리 16 : 프로세서
18 : 버스 인터페이스 장치 19 : 실행 유닛
20 : 스누프 레지스터 22 : 기록 레지스터
24 : 판독 레지스터 26 : 터치 로드 레지스터
30 : 시스템 메모리
본 발명은 일반적으로 정보처리 시스템에 관한 것으로, 특히, 정보처리시스템(information processing system) 및 그 동작 방법에 관한 것이다.
대부분의 정보 처리 시스템은 시스템 메모리(system memory)와 캐시 메모리(cache memory)를 구비한다.
캐시 메모리는 비교적 용량이 적은 고속 메모리로서, 하나 이상의 시스템 메모리 부분으로부터 정보를 복사(copy)하여 저장한다. 흔히, 캐시 메모리는 시스템 메모리와 물리적으로 분리되어 있다. 이와 같은 캐시 메모리는 시스템의 프로세서 장치(processor devices)와 일체적으로 구성될 수도 있고 일체적으로 구성되지 않을 수도 있다.
정보는 시스템 메모리의 일부로부터 캐시 메모리로 복사될 수 있다. 캐시 메모리의 정보는 변경(modify)될수 있다. 또한, 변경된 정보는 캐시 메모리로부터 시스템 메모리의 일부분으로 다시 복사(copy back)될 수 있다.
프로세서의 실행 유닛(execution units)는 인스트럭션(instructions)에 응답하여 캐시 메모리에 저장된 정보를 처리할 수 있다. 이러한 인스트럭션에는 프로세서의 레지스터와 캐시 모메리 사이에 데이터 정보(data information)를 전송하기 위한 메모리 인스트렉션(memory instructions)도 포함된다. 예컨대 로드/저장(load/store) 인스트럭션이나 판독/기록(read/write)인스트럭션과 같은 메모리 인스트럭션에 관련된 정보가 캐시 메모리내에 저장되어 있지 않은 상황 즉 캐시 미스(cache miss)상황에서는, 상기 데이터 정보는 시스템 메모리로부터 요구된다. 캐시 미스 상황에 응답하여 시스템 메모리로부터 정보를 기다리는 동안에 상당한 지연이 발생할 수 있다.
이와 같은 캐시 미스 상황의 부정적인 영향(즉 지연)을 감소시키기 위해, 프로세서는 예컨대 터치 로드(touch load)인스트럭션과 같은 프리페치(prefetch) 인스트럭션을 지원하여, 데이터 정보가 프로세서의 다른 인스트럭션에 대해 사용되기 휠씬 이전에 이 데이터 정보를 시스템 메모리내의 지정된 어드레스로부터 캐시 메모리에 로딩(loading)할수 있다.
그럼에도 불구하고, 프리페치 인스트럭션 스스로가 캐시 미스 상황을 초래할 경우, 그리고 캐시 메모리가 블로킹(blocking)형 캐시 메모리인 경우, 후속 메모리 인스트럭션들은, 정보가 시스템 메모리로부터 수신될 때까지 캐시 메모리를 사용할 수 없게 된다. 즉, 후속 메모리 인스트럭션들은 이들이 캐시 메모리에 이미 저장되어 있는 정보를 지정(specify)하더라도 캐시 메모리의 사용이 차단된다.
따라서, 종래의 블로킹형 캐시 메모리를 사용할 경우, 이러한 프리페치 인스트럭션은 비효과적이며 심지어 프로세서의 성능을 저하시킬 수 있다. 종래의 기법에 의하면, 프리페치 동작은 캐시 메모리가 비블로킹(nonblocking)형으로 만들어지지 않는 한 매우 비실용적이다. 비블로킹형 캐시 메모리(nonblocking cache memory)의 경우, 후속 메모리 인스트럭션들은 이들이 캐시 메모리에 이미 저장되어 있는 정보를 지정하는 경우에 캐시 메모리의 사용이 차단되지 않는다.
그러나, 비블로킹형 캐시 메모리를 위한 논리(logic)는 블로킹형 캐시 메모리를 위한 논리보다 복잡하다. 더우기, 비블로킹형 캐시 메모리는 올바르게 동작했는지를 검증하는 것이 어려운데, 그 이유는 시스템 메모리로부터 정보를 기다리는 동안에도 후속 메모리 인스트럭션들이 캐시메모리를 사용할 수 있기 때문이다.
따라서, 블로킹형 캐시 메모리를 갖는 시스템에 대해서도 프리페치 인스트럭션이 효과적인 정보 처리 시스템 및 그 동작 방법이 필요하다. 더욱이, 캐시 미스 상황시의 부정적인 영향 즉, 지연이 감소되는 정보 처리 시스템 및 그 동작 방법이 필요하다.
본 발명의 정보 처리 시스템 및 그 동작 방법에 따르면, 보조 메모리(supplemental memory)가 제1 인스트럭션에 응답하여 시스템 메모리로부터 제1 정보를 저장한다. 캐시 메모리는, 제2 인스트럭션에 응답하여, 제1 정보가 제2 정보를 포함할 경우 보조 메모리로부터 제2 정보를 저장하고, 그렇지 않으면 시스템 메모리로부터 제2 정보를 저장한다.
본 발명의 다른 기술적 이점은 캐시 미스 상황에서의 부정적인 영향이 감소된다는 것이다.
본 발명의 예시적인 실시예 및 이점들은 첨부된 제1도 내지 제4도의 도면을 참조함으로써 보다 잘 이해될 수 있으며, 도면에서 동일한 부분이나 대응 부분에는 동일한 참조번호가 사용된다.
제1도는 본 발명의 바람직한 실시예에 따른 정보 처리 시스템(10)의 블록도이다. 시스템(10)에서, 캐시 메모리(12)는 프로세서(16)와 일체적으로 구성되어 있다. 프로세서(16)는 단일 직접 회로 수퍼스칼라 마이크로프로세서(single integrated circuit superscalar microprocessor)일수 있다. 다른 실시예에서는, 캐시 메모리(12)가 프로세서(16)와 일체적으로 구성되지 않을 수도 있다. 또다른 실시예에서, 프로세서(16)는 다중칩(multichip) 마이크로프로세서일 수 있다. 역시 또다른 실시예에서, 프로세서(16)는 비수퍼스칼라 프로세서(nonsuperscalar processor)일 수 있다.
프로세서(16)는 버스 인터페이스 장치(BIU : bus interface unit)(18), 스누프 레지스터(snoop register)(20)와, 기록 레지스터(22) 및 판독 레지스터(24)를 포함한다. 또한 프로세서(16)는 실행 유닛(19)을 포함한다. 본 바람직한 실시예의 중요한 측면으로서, 프로세서(16)는 터치로드 레지스터(TLR : touch load register)로 형성된 프리페치 메모리(26)를 더 포함한다. 시스템(10)은 프로세서(16)외에도 시스템 버스(system bus)(28) 및 이에 접속된 시스템 메모리(30)를 포함한다. 또한, 프로세서(16)의 BIU(18)는 시스템 버스(28)에 접속된다.
프리페치 메모리(26)는 시스템 메모리(30)와 시스템(10) 내부의 캐시 메모리(12)에 추가된 것이라는 점에서 보조 메모리이다. 프로세서(16)는 시스템 메모리(30)내의 소정 어드레스로부터 데이터 정보를 입력한다.
이러한 데이터 정보는 시스템 메모리(30)로부터 시스템 버스(28)를 통해 BIU(18)에 입력되고, BIU(18)로부터 판독 레지스터(24)로 저장된다. 데이터 정보는 적절한 시점에 판독 레지스터(24)로부터 캐시 메모리(12)로 저장된다. 프로세서(16)는 데이터 정보와 함께 어드레스 정보를 저장함으로써 데이터 정보와 이 데이터 정보에 대응하는 어드레스를 상호 연관(associate)시킨다.
마찬가지로, 프로세서는 데이터 정보를 시스템 메모리(30)의 소정 어드레스로 출력한다. 이러한 데이터 정보는 캐시 메모리(12)로부터 기록 레지스터(22)에 저장된다. 적절한 시점에서 이 데이터 정보는 기록 레지스터(22)로부터 BIU(18)로 출력되고, BIU(18)는 시스템 버스(28)를 통해 시스템 메모리(30)로 데이터 정보를 출력한다. 이때 데이터 정보는 시스템 메모리(30)내에서 그 데이터 정보에 대응하는 어드레스에 저장된다.
저장된 데이터의 코히어런시(coherency)를 유지하기 위해, 프로세서(16)는 시스템 버스(28)상의 어드레스 정보(address information)를 스누핑(snooping)한다. 이러한 어드레스 정보는 시스템 버스(28)로부터 BIU(18)에 입력된 후, BIU(18)로부터 스누프 레지스터(20)내로 저장된다. 스누프 레지스터(20)에 저장된 어드레스 정보는 캐시 메모리(12)와, 기록 레지스터(22) 및 판독 레지스터(24)내의 어드레스 정보와 비교된다. 또한, 중요하게도, 스누프 레지스터(20)에 저장된 어드레스 정보는 프리페치 메모리(26)(제1도의 TLR(26))내의 어드레스 정보와 한번 더 비교된다.
스누프 레지스터(20)에 저장된 어드레스 정보가 캐시 메모리(12), 기록 레지스터(22), 판독 레지스터(24) 또는 프리페치 메모리(26)에 저장된 어드레스 정보와 일치한다면, 프로세서(16)는 적절한 코히어런시 동작(coherency action)으로 응답한다.
실행 유닛(19)은 인스트럭션에 응답하여 캐시 메모리(12)에 저장된 정보를 처리한다. 이들 인스트럭션에는 캐시 메모리(12)와 프로세서(16)의 레지스터들 사이에서 데이터 정보를 전송하는 메모리 인스트럭션도 포함된다. 예컨대 로드/저장 인스트럭션 또는 판독/기록인스트럭션과 같은 메모리 인스트럭션에 관련된 정보가 캐시 메모리(12)내에 저장되어 있지 않은 상황, 즉, 케시 미스 상황에서는, 프로세서(16)가 캐시 미스 상황에 응답하여 시스템 메모리(30)로부터 정보를 기다리는 동안에 상당한 지연이 발생할 수 있다.
바람직한 실시예에 있어서, 캐시 메모리(12)는 블로킹형캐시 메모리이다. 유리하게도, 블로킹형 캐시 메모리를 위한 논리는 비블로킹형 캐시 메모리를 위한 논리에 비해 덜 복잡하다. 따라서, 프로세서(16)가 캐시 미스 상황에 응답하여 시스템 메모리(30)로부터의 정보를 기다리는 동안에, 후속 메모리 인스트럭션은 원하는 정보가 시스템 메모리(30)로부터 수신될 때까지 캐시 메모리(12)의 사용으로부터 차단된다. 후속 메모리 인스트럭션들은 이들이 캐시 메모리(12)내에 이미 저장되어 있는 정보를 지정할지라도 차단된다. 이에 비해, 비블로킹형 캐시 메모리에서는, 후속 메모리 인스트럭션들이 캐시 메모리에 이미 저장되어 있는 정보를 지정하는 경우에 이 후속 메모리 인스트럭션들에 의한 캐시 메모리 사용은 차단되지 않는다.
프로세서(16)가 시스템 메모리(30)로부터의 정보를 기다리는 이러한 캐시 미스 상황의 부정적인 영향을 감소시키기 위해, 프로세서(16)는, 예컨대 터치 로드 인스트럭션과 같은 프리페치 인스트럭션을 지원하여, 데이터 정보가 프로세서의 다른 인스트럭션에 대해 사용되기 휠씬 이전에 이 데이터 정보를 시스템 메모리(30)내의 특정 어드레스로부터 캐시 메모리(12)로 로딩하도록 지원할 수 있다. 종래의 블로킹형 캐시 메모리에 있어서 이러한 프리페치 인스트럭션은 상대적으로 비효과적이고 심지어 프로세서(16)의 성능을 저하시킬 수도 있었다. 그 이유는, 프리페치 인스트럭션이 캐시 미스 상황을 초래할 경우 후속 메모리 인스트럭션들은 프로세서(16)가 시스템 메모리(30)로부터 정보를 수신할 때까지 캐시 메모리(12)의 사용이 차단되었기 때문이다.
유리하게도, 바람직한 실시예의 프로세서(16)는 프리페치 메모리(26)를 구비한다. 제2도 및 제3도를 참조하여 이후에 보다 상세히 논의하는 바와 같이, 프리페치 메모리(26)는 블로킹형 캐시 메모리(12)의 논리를 많이 복잡하게 만들지 않으면서 프리페치 동작을 지원한다.
제2도는 프리페치 메모리(26)(제1도의 TLR(26))의 동작 방법을 도시하는 순서도이다. 먼저, 본 방법에 따르면, 프로세서(16)가 예컨대 터치 로드 인스트럭션과 같은 프리페치 인스트럭션이 실행 대기중(pending execution)에 있음을 판정할 때까지, 판정 단계(50)에서 자체순환(selfloop)한다. 다른 실시예에서는 프로세서(16)가 특정 유형의 인스트럭션(instruction having a particular type)이 실행 대기중임을 판정할 때까지 단계(50)에서 자체순환하며, 특히, 이와같은 다른 실시예에 있어서 상기 특정 유형의 인스터럭션은 프리페치 인스트럭션 유형이 아닌 다른 유형의 인스트럭션일 수 있다.
제2도를 계속 참조하면, 실행 대기중인 프리페치 인스트럭션에 응답하여, 본 방법은 판정 단계(51)로 진행하고, 여기에서 프로세서(16)는 목표 데이터 정보가 캐시 메모리(12)내에 이미 저장되어 있는지를 판정한다. 목표 데이터 정보가 이미 캐시 메모리(12)에 저장되어 있다면, 본 방법은 판정 단계(50)로 복귀한다. 목표데이타 정보가 이미 캐시 메모리(12)에 저장되어 있지 않다면(즉, 캐시 미스 상황), 본 방법은 판정 단계(51)로부터 단계(52)로 진행하고 프로세서(16)는 시스템 버스(28)를 통해 시스템 메모리(30)로부터의 목표 데이터 정보를 요구한다.
단계(52)이후에, 본 방법은 요구된 데이터가 시스템 버스(28)를 통해 시스템 메모리(30)로부터 수신될 때까지 판정 단계(50)를 자체순환한다. 제1도의 BIU(18)는 수신된 데이터 정보를 입력한다. 수신중인 데이터 정보에 응답하여 본 방법은 단계(56)로 진행하고 여기에서 정보가 캐시 메모리(12) 대신에 프리패치 메모리(26)에 저장된다. 판정 단계(56)이후, 본 방법은 판정 단계(50)로 복귀한다.
본 바람직한 실시예의 중요한 측면으로서, 프리페치 인스트럭션과 관련하여 요구된 데이터 정보는 캐시 메모리(12)가 아닌 프리페치 메모리(26)에 저장되기 때문에, 프로세서(16)가 시스템 메모리(30)로부터 데이터 정보를 기다리는 동안에도 예컨대 로드/저장 인스트럭션 또는 판독/기록 인스트럭션과 같은 후속 메모리 인스트럭션들은 캐시 메모리(12)를 사용할 수 있게 된다.
제3도는 캐시 메모리(12)의 동작 방법을 도시하는 순서도이다.
먼저, 본 방법은 프로세서(16)가 메모리 인스트럭션이 실행 대기중에 있음을 판정할 때까지 판정 단계(60)에서 자체순환한다. 실행 대기중에 있는 메모리 인스트럭션에 응답하여 본 방법은 판정 단계(62)로 진행하고, 여기에서 프로세서(16)는 목표 데이터 정보가 캐시 메모리(12)에 이미 저장되어 있는지를 판정한다. 만약 목표 데이터 정보가 이미 캐시 메모리(12)에 저장되어 있다면, 본 방법은 단계(64)로 진행하고 프로세서(16)는 이미 캐시 메모리(12)에 저장되어 있는 데이터 정보를 이용하여 메모리 인스트럭션을 실행한다. 단계(64) 이후에, 본 방법은 판정 단계(60)로 복귀한다.
목표 데이터 정보가 이미 캐시 메모리(12)에 저장되어 있지 않다면, 본 방법은 판정 단계(62)로부터 판정단계(66)로 진행하고 프로세서(16)는 목표 데이터 정보가 프레페치 메모리(26)(제1도의 TLR(26))에 저장되어 있는지를 판정한다. 목표 데이터 정보가 프리페치 메모리(26)에 저장되어 있다면, 본 방법은 단계(68)로 진행하고 프로세서(16)는 목표 데이터 정보를 프리페치 메모리(26)로부터 케시 메모리(12)내로 저장한다. 단계(68)이후, 본 방법은 단계(64)로 진행한다.
목표 데이터 정보가 프리페치 메모리(26)에 저장되어 있지 않다면, 본 방법은 판정단계(66)로부터 판정 단계(70)로 진행하고 프로세서(16)는 시스템 버스(28)를 통해 시스템 메모리(30)로부터의 목표 데이터 정보를 요구한다. 단계(70)이후, 본 방법은 요구된 데이터 정보가 시스템 버스(28)를 통해 시스템 메모리(30)로부터 수신될 때까지 판정 단계(72)에서 자체순환한다. BIU(18)는 수신된 데이터 정보를 입력한다. 수신중인 데이터 정보에 응답하여, 본 방법은 단계(74)로 진행하고 정보는 판독 레지스터(24)내에 저장된다. 단계(74)이후, 본 방법은 단계(76)로 진행하여 프로세서(16)가 판독 레지스터(24)로부터 캐시 메모리(12)로 정보를 저장한다. 단계(76)이후, 본 방법은 단계(64)로 진행한다.
따라서, 바람직한 실시예의 중요한 측면으로서, 목표 데이터 정보가 프리페치 메모리(26)내에 저장되어 있지 않다면, 정보는 이 프리페치 메모리(26)에 추가되지 않으면서 시스템 메모리(30)로부터 캐시 메모리(12)내로 저장된다. 또한, 상기 정보가 프리페치 메모리(26)에 추가되는 다른 실시예에 있어서도, 캐시 메모리(12)는 시스템 메모리(30)로부터 정보를 저장할 때 프리페치 메모리(26)를 우회(bypass)하여 정보를 저장한다. 프리페치 메모리(26)를 우회함으로써 캐시 메모리(12)는 프리페치 메모리가 정보를 저장할 때까지 기다리지 않고 신속히 시스템 메모리(30)로부터 정보를 저장한다.
제4도는 본 발명의 다른 실시예에 따른 정보 처리 시스템(90)의 블록도이다. 제4도에서, 프리페치 메모리(26)는 프로세서(16)과 일체적으로 구성되지 않는다. 대신에, 프리페치 메모리(26)는 시스템 버스(28)에 접속된 메모리 어레이(memory array)로 형성된다. 제1도의 시스템(10)과 마찬가지로, 시스템(90)은 제2도 및 제3도의 방법에 따라 동작한다.
따라서, 제2도의 단계 (52)에서, 프리페치 인스트럭션에 응답하여 프로세서(16)는 시스템 버스(28)상에 특별한 통신 신호를 출력함으로써, 시스템 버스(28)상의 동작을 프리페치 동작으로서 지정한다. 시스템 버스(28)는 이러한 특별한 통신 신호를 지원하고, 프리페치 메모리(26)는 이에 응답하는 논리를 포함한다. 시스템 버스(28)상이 특별한 통신 신호에 응답하여 프리페치 메모리(26)는 시스템 버스(28)를 통해 시스템 메모리(30)로부터 정보를 수신한 후, 이 정보를 제2도의 단계(56)에서 저장한다.
프리페치 인스트럭션과 관련하여 요구된 데이터 정보가 캐시 메모리(12)가 아닌 프리페치 메모리(26)에 저장되기 때문에, 예컨대 : 로드/저장인스트럭션 또는 판독/기록 인스트럭션과 같은 후속 메모리 인스트럭션들은, 프리페치 메모리(26)가 시스템 메모리(30)로부터의 데이터 정보를 기다리는 동안에도 캐시 메모리(12)를 사용할 수 있게 된다.
다행히, 프리페치 메모리(26)는 시스템 메모리(30)보다 매우 작다.
따라서, 캐시 메모리(12)는 시스템 메모리(30)로부터 정보를 입력(제2도의 단계(7074))하는 것보다 더 빨리 프리페치 메모리(26)로부터 정보를 입력(제2도의 단계(66 및 68))할 수 있다. 프로세서(16)와 마찬가지로, 제4도의 프리페치 메모리(26)는 데이터 정보와 함께 어드레스 정보를 저장함으로써 데이터 정보를 그의 대응하는 어드레스와 연관시킨다.
제1도 및 제4도에서, 프리패치 메모리(26)는 프리페치 동작에 있어서 독립된 캐시 라인(separate cache line)으로서 동작한다. 메모리 인스트럭션이 캐시 메모리(12)에는 없는 정보를 요구(즉, 캐시 미스 상황)하지만 이 정보가 프리페치 메모리(26)에 저장되어 있다면, 정보는 프리페치 메모리(26)로부터 캐시 메모리(12)로 전송된다. 다행히, 이런 상황에서는 캐시 미스가 발생하여도 프리세서(16)는 시스템 메모리(30)로부터 상기 정보를 요구하지 않는다. 제1도에 도시된 실시예에 있어서, 프리페치 메모리(26)의 정보는 캐시 메모리(12)로 전송되기에 앞서, 후속 프리페치 동작에 관련된 정보에 의해 오버라이트(overwrite)된다. 대조적으로, 제4도에 실시예의 경우, 다중 프리페치 동작과 관련된 정보는 동시에 프리페치 메모리(26)에 저장될 수 있다.
제1도를 참조하면, 스누프 레지스터(20)에 저장된 어드레스 정보가 프리페치 메모리(26)에 저장된 어드레스 정보와 일치할 경우, 프로세서(16)는 프리페치 메모리(26)의 내용을 무효화(invalidate)시킨다. 이러한 상황에 있어서, 프로세서(16)는 프리페치 메모리(26)로부터의 정보를 폐기(cast out)하지 않는데, 그 이유는 프리페치 메모리(26)내에서는 정보가 변경되지 않기 때문이다.
제4도를 참조하면, 프로세서(16)와 마찬가지로, 저장된 데이터 정보의 코히어런시를 유지하기 위해 제4도의 프리페치 메모리(26)는 시스템 버스(26)상의 어드레스 정보를 스누핑하기 위한 논리를 포함한다. 스누핑된 어드레스 정보가 프리페치 메모리(26)에 저장된 어드레스 정보와 일치할 경우, 제4도의 프리페치 메모리(26)는 이 스누핑된 어드레스 정보에 대응하는 데이터 내용을 무효화한다. 제4도를 계속 참조하면, 정보가 프리페치 메모리(26)내에서 변경되지 않기 때문에, 프리페치 메모리(26)는 정보를 폐기시키지 않는다.
특히, 제1도 및 제4도에서, 프리페치 메모리(26)는 캐시 메모리(12)에 대해 레벨2캐시 메모리(level2 cache memory)로서 동작한다.
그러나, 전형적인 종래의 레벨2 캐시 메모리와는 달리, 프리페치 메모리(26)는 대응하는 레벨1 캐시 메모리(level1 cache memory)(12)보다 액세스 시간(access time)이 빠르고, 논리가 덜 복잡하며, 크기도 작다. 프리패치 메모리(26)는 시스템 메모리(30)보다 상당히 빠르며 또한 캐시 메모리(12)보다 상당히 작고 빠르다.
이것은 프리페치 메모리(26)에 저장된 정보가 캐시 메모리(12)에 저장된 모든 정보를 포함할 필요가 없기 때문에 가능하다. 프리페치 메모리(26)는 단지 프리페치 인스트럭션에 대해서만 캐시 메모리(12)에 대해 레벨2 캐시 메모리로서 동작한다. 따라서, 캐시 메모리(12)는 시스템 메모리(30)(제2도의 단계(7074))보다 휠씬 빠르게 프리페치 메모리(26)(제2도의 단계(66 및 68))로부터 정보를 입력할 수 있다.
프리페치 메모리(26)가 없다면, 캐시 메모리(12)가 비블로킹형으로 만들어지지 않는 한, 프리페치 동작은 상당히 비실용적이다. 그러나, 캐시 메모리(12)가 비블로킹형으로 만들어지면, 후속 메모리 인스트럭션들은 프로세서(16)가 시스템 메모리(30)로부터 정보를 기다리는 동안에도 캐시 메모리(12)를 사용할 수 있기 때문에, 비블로킹형 캐시 메모리가 올바르게 동작했는지를 검증하기가 어렵다. 더우기, 비블로킹형 캐시 메모리를 위한 논리는 블로킹형 캐시 메모리를 위한 논리보다 복잡하다. 따라서, 캐시 메모리(12)가 비블로킹형으로 만들어지는 것에 비해, 프리페치 메모리(26)와 블로킹형 캐시 메모리(12)를 조합하는 것이 유리하다. 이렇게 조합된 메모리는 프리페치 인스트럭션에 대해서는 비블로킹형으로 동작하며 다른 메모리 인스트럭션에 대해서는 블로킹형으로 동작한다.
비록 본 발명의 예시적인 실시예 및 이점들이 상세히 전술되었지만, 이들은 실시예로서 기술된 것이지 본 발명을 제한하기 위해 기술된 것은 아니다. 본 발명의 범주 및 사상을 벗어남이 없이 다양한 변화와, 대체 및 변경이 이루어질 수 있다. 본 발명의 범주 및 사상은 예시적인 실시예에 의해 제한되어서는 안되고, 다음의 특허청구범위에 의해서만 정의되어야 한다.
Claims (40)
- 정보 처리 시스템에 있어서, ① 정보(information)를 통신하기 위한 버스와, ② 상기 버스에 접속되어 상기 정보의 적어도 한 부분(subest)을 저장하는 시스템 메모리(a system memory)와, ③ 프리페치 메모리와, ④ 캐시 메모리와, ⑤ 상기 버스와 상기 프리페치 메모리와 상기 캐시 메모리에 접속된 소정 회로를 포함하되, 상기 소정회로는, ㉠ 제1정보를 요구하는 프리페치 인스트럭션에 응답하여, 상기 시스템 메모리로부터 상기 제1정보를 상기 프리페치 메모리에 저장하고, ㉡ 제2정보를 요구하는 메모리 인스트럭션에 응답하여, 상기 제2 정보상기 제1 정보가 이 제2 정보를 포함할 경우에는 제2 정보가 상기 프리페치 메모리로부터 유래되지만, 그렇지 않을 경우에는 상기 프리페치 메모리에 추가됨이 없이 상기 시스템 메모리로부터 유래된다를 상기 캐시 메모리에 저장하고, ㉢ 상기 버스로부터의 어드레스 정보에 응답하여, 상기 프리페치 메모리내의 상기 제1 정보의 코히어런시(coherency)를 유지하는 정보처리시스템.
- 제1항에 있어서, 상기 캐시 메모리는 블로킹형 캐시 메모리(a blocking cache memory)인 정보처리 시스템.
- 제1항에 있어서, 상기 메모리들에 결합되어 상기 인스트럭션들을 처리하는 프로세서를 더 포함하는 정보처리 시스템.
- 제3항에 있어서, 상기 캐시 메모리와 상기 프로세서가 일체적으로 이루어진 정보 처리 시스템.
- 제3항에 있어서, 상기 프리페치 메모리와 상기 소정회로가 상기 프로세서와 일체적으로 이루어진 정보 처리 시스템.
- 제1항에 있어서, 상기 프리페치 메모리가 상기 캐시 메모리보다 작은 (smaller) 정보 처리 시스템.
- 제1항에 있어서, 상기 프로페치 메모리가 상기 시스템 메모리보다 작은 정보처리 시스템.
- 정보 처리 시스템에 있어서, ① 정보를 통신하기 위한 버스와, ② 상기 버스에 접속되어 상기 정보의 적어도 한 부분(subest)을 저장하는 시스템 메모리와, ③ 보조메모리와, ④ 캐시 메모리와, ⑤ 상기 버스와 상기 보조 메모리와 상기 캐시 메모리에 접속된 소정 회로를 포함하되, 상기 소정 회로는, ㉠ 제1 정보를 요구하는 제1 인스트럭션에 응답하여, 상기시스템 메모리로부터 상기 제1 정보를 상기 프리페치 메모리에 저장하고, ㉡ 제2 정보를 요구하는 제2 인스트럭션에 응답하여, 상기 제2 정보상기 제1 정보가 이 제2 정보를 포함할 경우에는 제2 정보가 상기 프리페치 메모리로부터 유래되지만, 그렇지 않을 경우에는 상기 보조 메모리에 추가됨이 없이 상기 시스템 메모리로부터 유래된다-를 상기 캐시 메모리에 저장하고, ㉢ 상기 버스로부터의 어드레스 정보에 응답하여, 상기 보조 메모리내의 상기 제1 정보의 코히어런시(coherency)를 유지하는 정보 처리 시스템.
- 제7항에 있어서, 상기 보조 메모리는 프리페치 메모리인 정보 처리 시스템.
- 제7항에 있어서, 상기 제1 인스트럭션은 프리페치 인스트럭션인 정보 처리 시스템.
- 제7항에 있어서, 상기 캐시 메모리는 블로킹형 캐시 메모리인 정보 처리 시스템.
- 제7항에 있어서, 상기 메모리들에 결합되어 상기 인스트럭션들을 처리하는 프로세서를 더 포함하는 정보 처리 시스템.
- 제12항에 있어서, 상기 캐시 메모리와 상기 프로세서가 일체적으로 이루어진 정보 처리 시스템.
- 제12항에 있어서, 상기 보조 메모리와 상기 소정 회로가 상기 프로세서와 일체적으로 이루어진 정보 처리 시스템.
- 제12항에 있어서, 상기 프로세서는, 상기 제1 인스트럭션에 응답하여, 상기 제1 인스트럭션을 지정하는 소정 신호를 상기 소정 회로에 출력하는 정보 처리 시스템.
- 제15항에 있어서, 상기 소정 회로는, 상기 소정 신호에 응답하여,상기 제1 정보를 상기 보조 메모리에 저장하는 정보 처리 시스템.
- 제7항에 있어서, 상기 메모리는 상기 캐시 메모리보다 작은 정보 처리 시스템.
- 제7항에 있어서, 상기 보조 메모리는 상기 시스템 메모리보다 작은 정보 처리 시스템.
- 제7항에 있어서, 상기 소정 회로는, 제1 인스트럭션 유형(a first instruction type)을 갖는 상기 제1 인스트럭션에 응답하여, 상기 제1 정보를 상기 보조 메모리에 저장하는 정보 처리 시스템.
- 제19 항에 있어서, 상기 소정 회로는, 제2 인스트럭션 유형을 갖는 상기 제2 인스트럭션에 응답하여, 상기 제2 정보를 상기 캐시 메모리에 저장하는 정보 처리 시스템.
- 정보처리 시스템의 동작 방법에 있어서, ① 버스를 통해 정보를 통신하는 단계와, ② 상기 정보의 적어도 한 부분(subset)을 시스템 메모리에 저장하는 단계와, ③제1 정보를 요구하는 제1 인스트럭션에 응답하여, 상기 시스템 메모리로부터 상기 제1 정보를 보조 메모리에 저장하는 단계와, ④ 제2 정보를 요구하는 제2 인스트럭션에 응답하여, 상기 제1 정보가 상기 제2 정보를 포함할 경우에는 상기 제2 정보를 상기 보조 메모리로부터 캐시 메모리로 저장하지만, 그렇지 않을 경우에는 상기 제2 정보를 상기 보조 메모리에 추가하지 않으면서 상기 시스템 메모리부터 추출하는 단계와, ⑤ 상기 버스로부터의 어드레스 정보에 응답하여, 상기 보조 메모리내의 상기 제1 정보의 코히어런시(coherency)를 유지하는 단계를 포함하는 정보 처리 시스템의 동작 방법.
- 제21항에 있어서, 상기 보조 메모리에 상기 제1 정보를 저장하는 상기 단계는, 상기 제1 정보를 프리페치 메로리에 저장하는 단계를 포함하는 정보 처리 시스템의 동작 방법.
- 제21항에 있어서, 상기 제1 인스트럭션에 응답하여 상기 제1 정보를 저장하는 상기 단계는, 프리페치 인스트럭션에 응답하여 상기 제1 정보를 저장하는 단계를 포함하는 정보 처리 시스템의 동작 방법.
- 제21항에 있어서, 상기 캐시 메모리에 상기 제2 정보를 저장하는 상기 단계는, 상기 제2 정보를 블로킹형 캐시 메모리에 저장하는 단계를 포함하는 정보 처리 시스템의 동작 방법.
- 제21항에 있어서, 상기 제1 인스트럭션에 응답하여 소정 신호를 출력하는 단계를 더 포함하는 정보 처리 시스템의 동작 방법.
- 제25항에 있어서, 상기 제1 인스트럭션에 응답하여 상기 제1 정보를 저장하는 상기 단계는, 상기 소정 신호에 응답하여 상기 제1 정보를 저장하는 단계를 포함하는 정보 처리 시스템의 동작 방법.
- 제21항에 있어서, 상기 제1 정보를 저장하는 상기 단계는, 제1 인스트럭션 유형을 갖는 상기 제1 인스트럭션에 응답하여 상기 제1 정보를 저장하는 단계를 포함하는 정보 처리 시스템의 동작 방법.
- 제27항에 있어서, 상기 제2 정보를 저장하는 상기 단계는, 제2 인스트럭션 유형을 갖는 상기 제2 인스트럭션에 응답하여 상기 제2 정보를 저장하는 단계를 포함하는 정보 처리 시스템의 동작 방법.
- 제1항에 있어서, 상기 소정 회로는 상기 버스로부터의 상기 어드레스 정보와 상기 프리페치 메모리내에 저장된 어드레스 정보가 일치하면 상기 프리페치 메모리내의 상기 제1 정보를 무효화시키는 정보 처리 시스템.
- 제7항에 있어서, 상기 소정 회로는 상기 버스로부터의 상기 어드레스 정보와 상기 보조 메모리내에 저장된 어드레스 정보가 일치하면 상기 보조 메모리내의 상기 제1 정보를 무효화시키는 정보 처리 시스템.
- 제21항에 있어서, 상기 보조 메모리내의 상기 제1 정보의 코히어런시를 유지하는 상기 단계는, 상기 버스로부터의 상기 어드레스 정보와 상기 보조 메모리내에 저장된 어드레스 정보가 일치하면 상기 보조 메모리내의 상기 제1 정보를 무효화시키는 단계를 포함하는 정보 처리 시스템의 동작 방법.
- 제1항에 있어서, 상기 프리페치 메모리가 상기 시스템 메모리로부터 상기 제1 정보를 기다리는 것과 무관하게 상기 소정 회로는 상기 메모리 인스트럭션에 응답하여 상기 제2 정보를 상기 캐시 메모리에 저장하는 정보 처리 시스템.
- 제1항에 있어서, 상기 제1 정보가 상기 캐시 메모리내의 존재하지 않을 경우, 상기 소정 회로는 상기 프리페치 인스트럭션에 응답하여 상기 시스템 메모리로부터 상기 제1 정보를 상기 프리페치 메모리에 저장하는 정보 처리 시스템.
- 제33항에 있어서, 상기 제1 정보가 상기 캐시 메모리내에 존재하지 않는 경우에만 상기 소정 회로가 상기 프리페치 인스트럭션에 응답하여 상기 시스템 메모리로부터 상기 제1 정보를 프리페치 메모리에 저장하는 정보 처리 시스템.
- 제7항에 있어서, 상기 보조 메모리가 상기 시스템 메모리로부터 상기 제1 정보를 기다리는 것과 무관하게 상기 소정 회로는 상기 제2 인스트럭션에 응답하여 상기 제2 정보를 상기 캐시 메모리에 저장하는 정보 처리 시스템.
- 제7항에 있어서, 상기 제1 정보가 상기 캐시 메모리내에 존재하지 않을 경우, 소정 회로는 상기 제1 인스트럭션에 응답하여 상기 시스템에 메모리로부터 상기 제1 정보를 상기 보조 메모리에 저장하는 정보 처리 시스템.
- 제36항에 있어서, 상기 제1 정보가 상기 캐시 메모리내에 존재하지 않는 경우에만 상기 소정 회로가 상기 제1 인스트럭션에 응답하여 상기 시스템 메모리로부터 상기 제1 정보를 상기 보조 메모리에 저장하는 정보 처리 시스템.
- 제21항에 있어서, 상기 제2 정보를 저장하는 상기 단계는, 상기 보조 메모리가 상기 시스템 메모리로부터 상기 제1 정보를 기다리는 것과 무관하게 상기 소정 회로가 상기 제2 인스트럭션에 응답하여 상기 제2 정보를 상기 캐시 메모리내에 저장하는 단계를 포함하는 정보 처리 시스템의 동작 방법.
- 제21항에 있어서, 상기 제1 정보를 저장하는 상기 단계는, 상기 제1 정보가 상기 캐시 메모리에 존재하지 않을 경우, 상기 제1 인스트럭션에 응답하여 상기 시스템 메모리로부터 상기 제1 정보를 상기 보조 메모리내에 저장하는 단계를 포함하는 정보 처리 시스템의 동작 방법.
- 제39항에 있어서, 상기 제1 정보를 저장하는 상기 단계는, 상기 제1 정보가 상기 캐시 메모리내에 존재하지 않는 경우에만 상기 제1 인스트럭션에 응답하여 상기 시스템 메모리로부터 상기 제1 정보를 상기 보조 메모리에 저장하는 단계를 포함하는 정보 처리 시스템의 동작 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13060493A | 1993-10-01 | 1993-10-01 | |
US08/130,604 | 1993-10-01 | ||
US08/130.604 | 1993-10-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR950012226A KR950012226A (ko) | 1995-05-16 |
KR0128272B1 true KR0128272B1 (ko) | 1998-04-15 |
Family
ID=22445466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019940024922A KR0128272B1 (ko) | 1993-10-01 | 1994-09-30 | 보조 메모리를 포함하는 정보 처리 시스템 및 그 동작 방법 |
Country Status (11)
Country | Link |
---|---|
US (1) | US5802562A (ko) |
EP (1) | EP0646870B1 (ko) |
JP (1) | JP2702414B2 (ko) |
KR (1) | KR0128272B1 (ko) |
CN (1) | CN1086036C (ko) |
AT (1) | ATE220810T1 (ko) |
BR (1) | BR9403859A (ko) |
CA (1) | CA2126120C (ko) |
DE (1) | DE69430973T2 (ko) |
ES (1) | ES2176225T3 (ko) |
TW (1) | TW228580B (ko) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6138212A (en) * | 1997-06-25 | 2000-10-24 | Sun Microsystems, Inc. | Apparatus and method for generating a stride used to derive a prefetch address |
US6317810B1 (en) * | 1997-06-25 | 2001-11-13 | Sun Microsystems, Inc. | Microprocessor having a prefetch cache |
US6098154A (en) * | 1997-06-25 | 2000-08-01 | Sun Microsystems, Inc. | Apparatus and method for generating a stride used to derive a prefetch address |
US6134633A (en) * | 1997-10-31 | 2000-10-17 | U.S. Philips Corporation | Prefetch management in cache memory |
US6078992A (en) * | 1997-12-05 | 2000-06-20 | Intel Corporation | Dirty line cache |
US6549984B1 (en) * | 1997-12-17 | 2003-04-15 | Intel Corporation | Multi-bus access cache |
US6848028B1 (en) * | 2000-01-05 | 2005-01-25 | Sun Microsystems, Inc. | Microprocessor having a page prefetch cache for database applications |
JP4826973B2 (ja) * | 2009-09-30 | 2011-11-30 | エヌイーシーコンピュータテクノ株式会社 | 情報処理装置及び情報処理装置のデータキャッシング方法並びにマルチプロセッサシステム |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS53134335A (en) * | 1977-04-28 | 1978-11-22 | Fujitsu Ltd | Memory control system |
US4189770A (en) * | 1978-03-16 | 1980-02-19 | International Business Machines Corporation | Cache bypass control for operand fetches |
US4268907A (en) * | 1979-01-22 | 1981-05-19 | Honeywell Information Systems Inc. | Cache unit bypass apparatus |
US4378591A (en) * | 1980-12-31 | 1983-03-29 | Honeywell Information Systems Inc. | Memory management unit for developing multiple physical addresses in parallel for use in a cache memory |
US4363095A (en) * | 1980-12-31 | 1982-12-07 | Honeywell Information Systems Inc. | Hit/miss logic for a cache memory |
US4719568A (en) * | 1982-12-30 | 1988-01-12 | International Business Machines Corporation | Hierarchical memory system including separate cache memories for storing data and instructions |
US4853846A (en) * | 1986-07-29 | 1989-08-01 | Intel Corporation | Bus expander with logic for virtualizing single cache control into dual channels with separate directories and prefetch for different processors |
JPH0291744A (ja) * | 1988-09-29 | 1990-03-30 | Toshiba Corp | キャッシュメモリシステム |
US5201041A (en) * | 1988-12-29 | 1993-04-06 | International Business Machines Corporation | Cache bypass apparatus |
US5123095A (en) * | 1989-01-17 | 1992-06-16 | Ergo Computing, Inc. | Integrated scalar and vector processors with vector addressing by the scalar processor |
EP0378864B1 (en) * | 1989-01-18 | 1993-05-19 | New Holland Belgium N.V. | Filter assembly for use in a hydraulic circuit |
US5119485A (en) * | 1989-05-15 | 1992-06-02 | Motorola, Inc. | Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation |
JPH03100745A (ja) * | 1989-09-13 | 1991-04-25 | Nec Corp | キャッシュ装置 |
EP0449540B1 (en) * | 1990-03-27 | 2000-05-17 | Digital Equipment Corporation | Memory system and method with prefetch buffer |
US5317718A (en) * | 1990-03-27 | 1994-05-31 | Digital Equipment Corporation | Data processing system and method with prefetch buffers |
US5530941A (en) * | 1990-08-06 | 1996-06-25 | Ncr Corporation | System and method for prefetching data from a main computer memory into a cache memory |
US5420994A (en) * | 1990-08-06 | 1995-05-30 | Ncr Corp. | Method for reading a multiple byte data element in a memory system with at least one cache and a main memory |
US5454093A (en) * | 1991-02-25 | 1995-09-26 | International Business Machines Corporation | Buffer bypass for quick data access |
GB2256512B (en) * | 1991-06-04 | 1995-03-15 | Intel Corp | Second level cache controller unit and system |
JPH04369061A (ja) * | 1991-06-17 | 1992-12-21 | Mitsubishi Electric Corp | キャッシュメモリの制御方式 |
JP2881049B2 (ja) * | 1991-07-30 | 1999-04-12 | 株式会社日立製作所 | プリフェッチバッファ |
JPH06103169A (ja) * | 1992-09-18 | 1994-04-15 | Nec Corp | 中央演算処理装置のリードデータプリフェッチ機構 |
JPH06222990A (ja) * | 1992-10-16 | 1994-08-12 | Fujitsu Ltd | データ処理装置 |
US5566324A (en) * | 1992-12-24 | 1996-10-15 | Ncr Corporation | Computer apparatus including a main memory prefetch cache and method of operation thereof |
DE69327981T2 (de) * | 1993-01-21 | 2000-10-05 | Advanced Micro Devices, Inc. | Kombinierte Speicheranordnung mit einem Vorausholungspuffer und einem Cachespeicher und Verfahren zur Befehlenversorgung für eine Prozessoreinheit, das diese Anordnung benutzt. |
-
1994
- 1994-01-15 TW TW083100295A patent/TW228580B/zh active
- 1994-06-17 CA CA002126120A patent/CA2126120C/en not_active Expired - Fee Related
- 1994-08-29 JP JP6203172A patent/JP2702414B2/ja not_active Expired - Lifetime
- 1994-09-08 DE DE69430973T patent/DE69430973T2/de not_active Expired - Fee Related
- 1994-09-08 ES ES94306614T patent/ES2176225T3/es not_active Expired - Lifetime
- 1994-09-08 AT AT94306614T patent/ATE220810T1/de not_active IP Right Cessation
- 1994-09-08 EP EP94306614A patent/EP0646870B1/en not_active Expired - Lifetime
- 1994-09-26 BR BR9403859A patent/BR9403859A/pt not_active Application Discontinuation
- 1994-09-30 KR KR1019940024922A patent/KR0128272B1/ko not_active IP Right Cessation
- 1994-09-30 CN CN94116752A patent/CN1086036C/zh not_active Expired - Fee Related
-
1996
- 1996-03-22 US US08/620,862 patent/US5802562A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
ATE220810T1 (de) | 2002-08-15 |
CA2126120C (en) | 1999-06-22 |
ES2176225T3 (es) | 2002-12-01 |
US5802562A (en) | 1998-09-01 |
CN1086036C (zh) | 2002-06-05 |
EP0646870A1 (en) | 1995-04-05 |
JP2702414B2 (ja) | 1998-01-21 |
JPH07121443A (ja) | 1995-05-12 |
CA2126120A1 (en) | 1995-04-02 |
TW228580B (en) | 1994-08-21 |
CN1122027A (zh) | 1996-05-08 |
DE69430973D1 (de) | 2002-08-22 |
KR950012226A (ko) | 1995-05-16 |
BR9403859A (pt) | 1995-06-20 |
EP0646870B1 (en) | 2002-07-17 |
DE69430973T2 (de) | 2003-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4701844A (en) | Dual cache for independent prefetch and execution units | |
US5706464A (en) | Method and system for achieving atomic memory references in a multilevel cache data processing system | |
US5404484A (en) | Cache system for reducing memory latency times | |
CA1322058C (en) | Multi-processor computer systems having shared memory and private cache memories | |
EP0381470B1 (en) | Processing of memory access exceptions along with prefetched instructions within the instruction pipeline of a virtual memory system-based digital computer | |
US6581151B2 (en) | Apparatus and method for speculatively forwarding storehit data based on physical page index compare | |
KR100204741B1 (ko) | 제1및 제2캐시 메모리 사용방법 | |
US5163142A (en) | Efficient cache write technique through deferred tag modification | |
EP0405882A2 (en) | Move 16 block move and coprocessor interface instruction | |
US6993630B1 (en) | Data pre-fetch system and method for a cache memory | |
US5835946A (en) | High performance implementation of the load reserve instruction in a superscalar microprocessor that supports multi-level cache organizations | |
US5832276A (en) | Resolving processor and system bus address collision in a high-level cache | |
US6378023B1 (en) | Interrupt descriptor cache for a microprocessor | |
US5926830A (en) | Data processing system and method for maintaining coherency between high and low level caches using inclusive states | |
JP3159435B2 (ja) | ロード/ロード検出及びリオーダー方法及び装置 | |
US5269009A (en) | Processor system with improved memory transfer means | |
US5930820A (en) | Data cache and method using a stack memory for storing stack data separate from cache line storage | |
US5530835A (en) | Computer memory data merging technique for computers with write-back caches | |
US5367657A (en) | Method and apparatus for efficient read prefetching of instruction code data in computer memory subsystems | |
KR0128272B1 (ko) | 보조 메모리를 포함하는 정보 처리 시스템 및 그 동작 방법 | |
US5860150A (en) | Instruction pre-fetching of a cache line within a processor | |
US5860100A (en) | Pipelined flushing of a high level cache and invalidation of lower level caches | |
US5619673A (en) | Virtual access cache protection bits handling method and apparatus | |
US6934810B1 (en) | Delayed leaky write system and method for a cache memory | |
EP0442690A2 (en) | Data cache store buffer for high performance computer |
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: 20050915 Year of fee payment: 9 |
|
LAPS | Lapse due to unpaid annual fee |