KR100316505B1 - 프로세서에 데이타를 제공하기 위한 캐시 및 캐시로부터 프로세서에 데이타를 제공하기 위한 방법 - Google Patents
프로세서에 데이타를 제공하기 위한 캐시 및 캐시로부터 프로세서에 데이타를 제공하기 위한 방법 Download PDFInfo
- Publication number
- KR100316505B1 KR100316505B1 KR1019990007612A KR19990007612A KR100316505B1 KR 100316505 B1 KR100316505 B1 KR 100316505B1 KR 1019990007612 A KR1019990007612 A KR 1019990007612A KR 19990007612 A KR19990007612 A KR 19990007612A KR 100316505 B1 KR100316505 B1 KR 100316505B1
- Authority
- KR
- South Korea
- Prior art keywords
- cache
- processor
- level cache
- value
- memory
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 96
- 238000000034 method Methods 0.000 claims abstract description 15
- 238000013519 translation Methods 0.000 claims abstract description 6
- 230000004044 response Effects 0.000 claims 2
- 238000012545 processing Methods 0.000 description 14
- 230000002093 peripheral effect Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- 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/0877—Cache access modes
- G06F12/0884—Parallel mode, e.g. in parallel with main memory or CPU
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
상위 레벨의 캐시 미스(cache miss)에 대해 호출 대기 시간 패널티를 감축시키키 위해 복수의 캐시 레벨에 대해 동시성 또는 중첩된 액세스를 제공하는 방법에 관한 것이다. 값(데이타 또는 명령)에 대한 요구가 프로세서에 의해 발생되고, 상위 레벨의 캐시에서 이 값에 대한 캐시 미스가 발생된지를 판단하기 전에 하위 레벨의 캐시로 전송된다. 하위 레벨이 L2 캐시인 실시예에서, L2 캐시는 이 값을 직접 프로세서에 공급할 수 있다. 어드레스 디코더는 복수의 동시성 메모리 요구를 만족시키기 위해 상위 레벨의 캐시에서 병렬로 동작된다. 어드레스 중 하나(상위 레벨의 캐시로부터의 히트/미스 정보에 따라 우선순위 로직에 의해 선택됨)는 멀티플렉서에 의해 하위 레벨 캐시의 복수의 메모리 어레이 워드선 구동기로 게이트된다. 가상-실제 변환을 필요로 하지 않는 어드레스 중 일부 비트는 직접 디코드될 수 있다.
Description
본 발명은 일반적으로는 컴퓨터 시스템에 관한 것으로, 보다 상세하게는 메모리 액세스 호출 대기 시간(latency)을 감축시키기 위해 다레벨의 아키텍쳐 (multi-level architecture)를 갖는 처리 유닛의 캐시 메모리를 액세스하는 개선된 방법에 관한 것이다.
종래 전형적인 컴퓨터 시스템의 구조는 시스템 메모리 장치(랜덤 액세스 메모리, 즉 RAM) 및 디스플레이 모니터, 키보드, 그래픽 포인터(마우스) 및 영구 기억 장치(하드 디스크) 등의 각 종 주변 또는 입력/출력(I/O) 장치에 접속되어 있는 하나 이상의 처리 유닛을 포함한다. 이 시스템 메모리 장치는 처리 유닛에 의해 프로그램 명령을 실행하는 데 사용되고, 이들 명령 뿐만 아니라 프로그램에 제공되거나 프로그램에 의해 생성되는 데이타 값을 기억한다. 처리 유닛은 범용 인터코넥트 혹은 버스를 포함하는 각종 수단, 또는 직접 메모리 액세스 채널에 의해 주변 장치와 통신한다. 컴퓨터 시스템은 예를 들어 모뎀, 프린터 및 네트워크 어댑터에 접속하기 위해 직렬 및 병렬 포트 등 많은 추가적인 콤포넌트들을 포함할 수 있다. 상술한 바에 관련하여 다른 콤포넌트들을 더 사용할 수 있는데, 예를 들어, 비디오 디스플레이 모니터를 제어하기 위해 디스플레이 어댑터를 사용할 수 있고, 시스템 메모리 등을 액세스하기 위해 메모리 제어기를 사용할 수 있다.
종래의 처리 유닛은 각 종 실행 유닛 및 레지스터를 보유하는 프로세서 코어 뿐만 아니라, 명령을 적절한 실행 유닛으로 전달하는 브랜치 및 디스패치를 포함한다. 일반적으로 명령 및 데이타용으로 프로세서에 의해 반복적으로 액세스될 수 있는 값들을 일시적으로 기억하기 위해 캐시가 제공되어, 시스템 메모리(RAM)로부터 값들을 로딩하는 시간이 걸리는 단계를 제거시킴으로써 처리 속도가 증가된다. 이들 캐시는 이들이 단일 집적 칩 상에 프로세서 코어와 일체로 실장될 경우 '온-보드(on-board)'라 불리운다. 각 캐시는 프로세서 코어와 캐시 메모리 간에서의 값들의 전송을 관리하는 버스 인터페이스 유닛 또는 캐시 제어기에 관련되어 있다.
처리 유닛은 온-보드(레벨 1) 캐시를 지원하는 레벨 2(L2) 캐시 등의 캐시 를 추가로 포함할 수 있다. 환언하자면, L2 캐시 메모리는 시스템 메모리와 온-보드 캐시 간에서 중재자로서 기능하고 온-보드 캐시가 기억할 수 있는 정보(명령 및 데이타 모두 포함)보다 훨씬 더 많은 양의 정보를 기억할 수 있지만, 액세스 시간이 오래 걸린다는 불리한 점이 있다. 다레벨의 상호 연결된 캐시가 존재할 경우 다레벨 캐시 계층이 제공될 수 있다.
도 1은 전형적인 시스템 아키텍쳐를 도시하는 것으로, IBM 사에서 판매하고 있는 PowerPCTM프로세서의 실례이다. 컴퓨터 시스템(10)은 처리 유닛(12a), 각 종 I/O 장치(14), RAM(16), 및 컴퓨터를 우선 턴온시킬 때마다 주변 장치 중 하나로부터 오퍼레이팅 시스템을 찾아 로딩하는 것을 주 목적으로 하는 폼웨어(18)를 포함한다. 처리 유닛(12a)은 시스템 버스(20)(시스템 버스에 관련하여 로컬 주변 버스(예를 들어, PCI를 사용할 수 있음)를 사용하여 주변 장치와 통신을 행한다. 처리 유닛(12a)은 프로세서 코어(22), 및 명령 캐시 메모리(24)와 데이타 캐시 메모리(26)를 포함하며, 이들 캐시 메모리는 고속 메모리 장치를 이용하여 구현되고 단일 집적 칩(28) 상에서 프로세서 코어와 일체로 실장된다. 캐시 메모리(L2)(30)는 프로세서 버스(32)를 통해 캐시 메모리(24 및 26)를 지원한다. 예를 들어, 캐시 메모리(30)는 256 또는 512 킬로바이트의 기억 용량을 갖는 칩일 수 있고, 프로세서는 전체 기억 용량이 64 킬로바이트인 온-보드 캐시를 갖는 IBM PowerPCTM604-계열의 프로세서일 수 있다. 캐시 메모리(30)는 버스(20)에 연결되어 있으며, 메모리(16)로부터 프로세서 코어(22)로의 모든 정보의 로딩은 캐시 메모리(30)를 통해 실현되어야 한다. 처리 유닛(12b)으로 도시된 바와 같이 하나 이상의 프로세서가 제공될 수 있다.
실례의 캐시 라인(블럭)은 어드레스 태그 필드, 상태 비트 필드, 포괄적(inclusivity) 비트 필드, 및 실제 명령 또는 데이타를 기억하는 값(value) 필드를 포함한다. 상태 비트 필드와 포괄적 비트 필드는 멀티-프로세서 컴퓨터 시스템에서 캐시 일관성(coherency)(캐시에 기억된 값의 타당성(validity)을 나타냄)을 유지하는 데 사용된다. 어드레스 태그는 대응하는 메모리 블럭의 풀 어드레스의 서브셋트이다. 입력 어드레스와 어드레스 태그 필드 내의 태그들 중 하나와의 비교 부합(compare match)은 캐시 '히트(hit)'를 나타낸다. 캐시 내의 모든 어드레스 태그의 집합(collection)을 디렉토리(종종 상태 비트 필드와 포괄적 비트 필드를 포함함)라 칭하며, 모든 값 필드의 집합은 캐시 엔트리 어레이이다.
사람들은 컴퓨터 시스템 성능이 여러 콤포넌트를 갖는 것으로 생각할 수 있다. 첫째는 프로세서가 마치 완전한 캐시 메모리를 갖는 것과 같은, 즉 프로세서 코어가 제1 캐시 레벨을 벗어난 메모리 요구를 메모리 액세스 호출 대기 시간없이 항상 만족시킬 수 있는 바와 같은 프로세서의 성능이다. 이러한 동작 모드는 최고의 성능은 제공하지만 현실적이지 않다. 다레벨 캐시 메모리 아키텍쳐에서, 시스템 성능에 다음으로 기여하는 것은 액세스 요구가 제1 레벨의 캐시 메모리에서는 '미스(miss)'되지만, 제2 레벨의 캐시 메모리로부터 요구된 값을 검색하는 동작 모드이다. 이 콤포넌트는 제2 레벨의 캐시 메모리를 액세스하는 데 필요한 추가 사이클수에 따라 결정되며, 제1 레벨의 캐시 미스가 발생하는 빈도수에 반비례한다. 오늘날의 컴퓨터에 있어서는, 제2 레벨의 캐시 메모리에 대한 액세스는 요구가 제1 레벨의 캐시 메모리에서 미스된 것으로 판단된 후에만 개시된다. 그 결과, 제2 레벨의 캐시 메모리의 전체 액세스 시간이 성능 패널티로서 나타난다.
모든 레벨의 메모리 계층에서의 미스에 대한 시스템 성능의 평가를 상세히 하기 위해 시스템 성능의 모델에 제1 레벨의 캐시 메모리에서의 미스로 인해 성능 저하를 나타내는 것과 유사한 사항이 포함될 수 있다. 그러므로, 상위 레벨의 메모리로부터 데이타를 페치하는 데 필요한 추가의 사이클수를 감소시켜 시스템 전체 성능을 개선시키는 것이 매우 바람직할 수 있다. 시스템 성능의 개선이 비교적 작은 하드웨어 비용과 과도한 전력 요건없이 달성되면 더욱 바람직할 것이다.
따라서, 본 발명의 목적은 데이타 처리 시스템에 대해 개선된 캐시 메모리를 제공하는 데 있다.
본 발명의 다른 목적은 적어도 두 레벨의 캐시를 가지며 제2(또는 하위) 레벨에 의해 만족되는 제1 레벨의 캐시 미스에 관련된 메모리 액세스 호출 대기 시간이 감축된 개선된 캐시 메모리를 제공하는 데 있다.
본 발명의 또 다른 목적은 기존의 하드웨어 설계로부터 용이하게 변경가능하여 비용 및 설계 고려 사항을 최소화시키는 아키텍쳐를 갖는 다레벨의 캐시를 제공하는 데 있다.
본 발명의 상기 목적들은 전반적으로 하위 레벨의 캐시(예를 들어, L2)에 값을 로딩하는 단계와, 이 값이 상위 레벨의 캐시(예를 들어, L1)에 의해 공급되도록 하는 요구를 프로세서로부터 발생시키는 단계와, 상위 레벨의 캐시에서 그 값에 대한 캐시 미스가 발생된 것으로 판단하는 단계와, 상기 판단 단계 동안 하위 레벨의 캐시로 이 요구를 전달하는 단계와, 하위 레벨의 캐시부터 이 값을 공급하는 단계를 포함하여 컴퓨터 시스템의 캐시로부터 프로세서로 데이타를 공급하는 방법으로 달성된다. 하위 레벨이 L2 캐시인 실시예에서는, L2 캐시는 이 값을 직접 프로세서에 공급한다. 컴퓨터 시스템의 시스템 메모리 장치 내의 특정 영역에 관련된 어드레스를 디코드하기 위해 여러개의 디코더를 사용할 수 있고, 이들 디코더들은 복수의 동시성 메모리 요구들을 만족시키도록 상위 레벨의 캐시에서 병렬로 동작할 수 있다. 어드레스 중 하나(상위 레벨의 캐시 메모리로부터의 히트/미스 정보에 기초하여 우선순위 로직에 의해 선택됨)는 멀티플렉서에 의해 하위 레벨의 캐시의 복수의 메모리 어레이 워드선 구동기로 게이트된다. 가상-실제 변환을 필요로 하지 않는 어드레스 중 일부 비트들은 직접 디코드될 수 있다. 다른 비트들은 상기 판단 단계의 종료 전에 변환될 수 있다. 이 실시예에서는 하드웨어 비용을 거의 들이지 않고도 호출 대기 시간 패널티를 감소시킨다.
본 발명의 상기 및 다른 목적들, 특징들 및 효과는 다음의 상세한 설명으로부터 명백해 질 것이다.
본 발명의 새로운 특징은 첨부된 청구범위에 기재되어 있다. 그러나, 본 발명 자체 및, 본 발명의 바람직한 실시 모드, 다른 목적 및 효과들은 첨부된 도면에 관련하여 기술한 예시 실시예의 상세한 기술을 참조함으로써 명백하게 이해할 수 있을 것이다.
도 1은 종래 기술의 멀티-프로세서 컴퓨터 시스템의 블럭도.
도 2는 본 발명의 일 실시예에 따른 캐시 메모리를 갖는 데이타 처리 시스템의 블럭도.
도 3은 도 2의 캐시 메모리의 블럭도로서, 상위 레벨의 캐시 메모리(L1)에 대해 병렬 액세스를 제공하기 위해 하위 레벨의 캐시 메모리(L2)에서의 어드레스(또는 부분 어드레스) 디코딩에 대한 보다 상세화된 도면.
지금부터 도면을 참조하기로 하고, 특히 도 2를 참조해 보면, 본 발명의 일 실시예에 따라 캐시 메모리를 내장할 수 있는 데이타 처리 시스템의 블럭도가 도시되어 있다. 도 2에서는, 단지 단일의 프로세서(104)만이 도시되었지만, 본 발명의 특징은 멀티-프로세서 시스템에도 유용하다. 수퍼스칼라 RISC 타입일 수 있는 CPU(106)를 갖는 프로세서(104)는 온-칩 명령 캐시 메모리(107) 및 데이타 캐시 메모리(108)를 구비하는 단일-칩 장치로서 구성된다. 두 캐시 메모리(107 및 108)는 로컬 버스 구조 내의 독립된 경로에 의해 CPU(106)에 접속된다. 명령 캐시 메모리(107)는 캐시 제어기(109a)를 통해 로컬 버스(105)에 연결되고, 데이타 캐시 메모리(108)는 캐시 제어기(109b)를 통해 로컬 버스(105)에 연결된다. 2차 캐시 메모리(110)도 캐시 제어기(111)를 통해 로컬 버스(105)에 연결된다. 2차 캐시 메모리(110)는 명령 캐시 메모리(107) 또는 데이타 캐시 메모리(108)보다 훨씬 대형이며, 2차 캐시 메모리(110)로의 액세스는 명령 캐시 메모리(107) 또는 데이타 캐시 메모리(108)로의 액세스보다 다소 느리다. 또한 CPU(106)는 로컬 버스(105)와 시스템 버스(113) 간에서의 타이밍 및 제어 변환이 발생하는 버스 인터페이스(112)를 통해 시스템 버스(113)에 연결된다. 또한, 시스템 버스(113)에는 메인 메모리(115) 및 디스크 기억 장치(116)가 연결되어 있다. 시스템 버스(113)에는 Peripheral Component Interconnect(PCI) 버스 등의 하나 이상의 중재 버스를 사용하여 다른 주변 장치가 접속될 수 있다.
캐시 메모리(107, 108)로부터 2차 캐시 메모리(110), 메인 메모리(115) 및 디스크 기억 장치(116)로의 진행에서, 최고속에서 최저속으로, 최소에서 최대로, 비트당 최고 비용에서 비트당 최저 비용으로가 메모리의 계층이다. 메인 메모리(115)는 무엇이 디스크 기억 장치(116) 내에 존재하는 가에 대한 서브셋트를 포함하고, 2차 캐시 메모리(110)는 무엇이 메인 메모리(115) 내에 존재하는 가에 대한 서브셋트를 포함하고, 캐시 메모리(107, 108) 각각은 무엇이 2차 캐시 메모리(110) 내에 존재하는 가에 대한 서브셋트를 포함한다. CPU(106)는 프로세서 사이클 내에서 캐시 메모리(107, 108)를 액세스할 수 있는 한편, 2차 캐시 메모리(110)를 액세스하는 데는 수개의 프로세서 사이클을 필요로 할 수 있다. 캐시 메모리(107, 108) 및 2차 캐시 메모리(110)에서 캐시 미스가 발생하면, 메인 메모리(115)를 액세스하여 캐시 라인을 어드레스된 데이타를 포함하는 메인 메모리(115)로부터의 등가 비트부로 대체하는 캐시 라인필 동작(cache linefill operation)을 수행한다. 캐시 미스가 발생되어진 시도된 캐시 액세스를 만족시키기 위해서는 이러한 캐시 라인필 동작을 행할 필요가 있다. 메인 메모리(115)가 캐시 라인필 동작이 시도된 영역을 포함하지 않으면, 디스크 기억 장치(116)로부터 이 데이타를 포함하는 페이지를 얻어 캐시 라인필 동작을 완료시킬 수 있다. 디스크 기억 장치(116)로부터 페이지를 획득하여 이것을 메인 메모리(115)에 기록하는 데 걸리는 시간은 수 천개의 프로세서 사이클을 필요로 할 수 있으며, 이 동안 CPU(106)는 다른 디스크를 처리하기 위해 전환되거나 또는 그 데이타를 대기하여 요구를 만족시키도록 스톨(stall)될 수 있다.
본 발명은 상위 레벨의 캐시에서 미스되어진 요구를 만족시키기 위해 메모리 계층에서 다음 레벨로 진행하는 데 필요한 시간 패널티를 감소킨다. 메모리 액세스 호출 대기 시간의 감축은 메모리 계층에서 제1 레벨에 대한 액세스를 제2 레벨에 대한 액세스와 바람직하게는 가능한 많이 중첩시킴으로써 달성된다. 이들 두 액세스를 중첩시킴으로써, 제1 레벨 캐시 미스에 대한 임의 패널티가 바로 제2 레벨의 액세스가 필요로 하는 제1 레벨의 액세스에 대한 사이클의 차가 된다.
L1 및 L2 캐시 메모리에 대한 두 액세스는 도 3에서 도시된 바와 같이 메모리 내의 특정 영역에 관련된 어드레스를 디코딩함으로써 효율적으로 중첩될 수 있다. 최대수의 잠재적인 동시성 메모리 요구를 만족시키는 데 필요한 상위 레벨의 메모리에서 다수의 디코더를 병렬로 사용할 수 있다. 어드레스는 메모리 어레이를 실제로 액세스하지 않고도 정보를 이용할 수 있을 만큼 완전히 디코드된다. 예를 들어, 가상-실제 변환을 필요로 하지 않는 어드레스의 비트는 바로 디코드될 수 있다. 예를 들어, 변환 룩어사이드 버퍼(TLB)에서의 변환 후 이용가능한 어드레스의 비트는 이들 비트들을 이용하자마자 통상적으로 캐시 히트 또는 미스 신호가 판정되기 전에 디코드될 수 있다. 이상적으로는, 어드레스는 제2 레벨의 캐시 메모리 어레이의 워드선 구동기까지 디코드된다. 이러한 디코딩은 제1 레벨의 캐시 메모리의 액세스와 완전히 병렬로 달성될 수 있다. 제1 레벨의 캐시 미스가 발생된 것으로 판단되면, 적절히 디코드된 어드레스가 멀티플렉서(122)에 의해 워드선 구동기로 게이트되어 제2 레벨의 캐시 내의 요구된 데이타를 액세스한다. 멀티플렉서(122)는 각 어드레스마다 L1 히트/미스 정보를 수신하는 우선순위 로직(124)에 의해 제어된다. 캐시 레벨의 미스 패널티는 이와 같이 제2 레벨의 캐시 메모리 내로의 디코더의 호출 대기 시간에 의해 감소된다.
액세스 중첩을 달성하기 위한 이 실시예는 하드웨어 비용을 거의 들이지 않고도 호출 대기 시간 패널티를 감축시키기 때문에 매우 유리하다. 디코더는 일반적으로 대다수의 신호 중 최종적으로는 단지 하나만을 스위치 온시키기 때문에 전력 소모가 거의 없다. 여러 포텐셜 어드레스 소스를 수용하는 데 필요한 디코더의 중복성(duplication)은 제쳐 두고, 본 발명은 적절한 디코드된 신호를 워드선 구동기로 게이트시키는 데 단지 멀티플렉서만을 필요로 한다.
지금까지는 비록 본 발명을 상기 특정 실시예에 대해서만 기술하였지만, 상기 실시예는 제한적인 목적으로 기술한 것은 아니다. 본 기술 분야의 숙련자라면 본 발명의 상기 실시예에 대한 변형 및 수정 실시예가 가능하다는 것은 주지의 사실이다. 예를 들어, 본 발명을 두 레벨 이상의 메모리까지 확장시킴으로써 제2 레벨의 캐시 미스가 제3 레벨의 캐시 메모리에 의해 만족될 경우 메모리 액세스 호출 대기 시간을 감축시킬 수 있다. 그러므로, 첨부된 청구범위에 한정된 본 발명의 사상 및 범주를 벗어 나지 않는 한 여러 변형 실시예가 가능하다는 것에 주목할 필요가 있다.
Claims (11)
- 컴퓨터 시스템의 캐시(cache)에서 프로세서로 데이타를 제공하기 위한 방법에 있어서,하위 레벨의 상기 캐시에 소정 값(a value)을 로딩하는 단계,상기 값이 상위 레벨의 상기 캐시에 의해 공급되도록 하는 요구를 상기 프로세서로부터 발생시키는 단계,상기 발생 단계에 응답하여, 상기 상위 레벨의 캐시에서 상기 값의 캐시 미스(cache miss)가 발생된 것으로 판단하는 단계,상기 판단 단계 동안, 상기 요구를 상기 하위 레벨의 캐시로 전송하는 단계- 상기 컴퓨터 시스템의 시스템 메모리 장치에서 상기 값의 특정 위치에 관련된 어드레스를 디코딩하는 단계를 포함함 -, 및상기 판단 단계에 응답하여, 상기 값을 상기 하위 레벨의 캐시로부터 공급하는 단계를 포함하는 캐시에서 프로세서로의 데이타 제공 방법.
- 제1항에 있어서, 상기 값은 상기 하위 레벨의 캐시에서 상기 프로세서로 직접 공급되는캐시에서 프로세서로의 데이타 제공 방법.
- 제1항에 있어서, 상기 디코딩 단계는 복수의 동시성 메모리 요구를 만족시키기 위해 상기 상위 레벨의 캐시에서 복수의 디코더를 병렬로 동작시키는 단계를 포함하는 캐시에서 프로세서로의 데이타 제공 방법.
- 제1항에 있어서, 상기 공급 단계는 상기 하위 레벨의 캐시의 복수의 메모리 어레이 워드선 구동기로 상기 어드레스를 게이트시키는 단계를 포함하는 캐시에서 프로세서로의 데이타 제공 방법.
- 제1항에 있어서, 상기 디코딩 단계는 가상-실제(virtual-to-real) 변환을 필요로 하지 않는 상기 어드레스의 복수의 비트를 직접 디코딩하는 단계를 포함하는 캐시에서 프로세서로의 데이타 제공 방법.
- 제6항에 있어서, 상기 디코딩 단계는 상기 판단 단계의 완료 전에 상기 어드레스의 다른 복수의 비트를 변환시키는 단계를 포함하는 캐시에서 프로세서로의 데이타 제공 방법.
- 컴퓨터 시스템의 프로세서에 값(values)을 제공하기 위한 캐시에 있어서,상위 레벨의 캐시,하위 레벨의 캐시, 및상기 상위 레벨의 캐시에서 상기 값의 캐시 미스가 발생하여 상기 값이 상기 하위 레벨의 캐시로부터 공급될 때 메모리 액세스 호출 대기 시간(latency)을 감축시키기 위한 수단을 포함하되,상기 감축 수단은 상기 상위 레벨의 캐시가 캐시 미스가 발생하는지를 판단하는 동안, 상기 프로세서로부터 상기 하위 레벨 캐시로 상기 값에 대한 요구를 전송함으로써, 상기 상위 레벨 캐시의 제1 액세스와 상기 하위 레벨 캐시의 제2 액세스의 중첩을 제공하며,상기 요구는 상기 컴퓨터 시스템의 시스템 메모리 장치 내에 상기 값의 특정 영역에 관련된 어드레스를 디코딩함으로써 전송되는, 컴퓨터 시스템의 프로세서에 값을 제공하는 캐시.
- 제8항에 있어서,상기 상위 레벨의 캐시는 상기 프로세서에 접속된 제1 레벨의 캐시이고,상기 하위 레벨의 캐시는 상기 제1 레벨의 캐시에 접속된 제2 레벨의 캐시인, 컴퓨터 시스템의 프로세서에 값을 제공하는 캐시.
- 제8항에 있어서, 상기 제2 레벨의 캐시는 또한 제3 레벨의 캐시에 접속되는, 컴퓨터 시스템의 프로세서에 값을 제공하는 캐시.
- 제8항에 있어서, 상기 메모리 액세스 호출 대기 시간을 감축시키기 위한 상기 수단은 상기 값을 상기 하위 레벨의 캐시로부터 직접 상기 프로세서에 공급하는, 컴퓨터 시스템의 프로세서에 값을 제공하는 캐시.
- 제9항에 있어서, 상기 메모리 액세스 호출 대기 시간을 감축시키기 위한 상기 수단은 상기 어드레스를 상기 하위 레벨 캐시의 복수의 메모리 어레이 워드선 구동기로 게이트시킴으로써 상기 값을 공급하는, 컴퓨터 시스템의 프로세서에 값을 제공하는 캐시.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/059,000 US6138208A (en) | 1998-04-13 | 1998-04-13 | Multiple level cache memory with overlapped L1 and L2 memory access |
US09/059,000 | 1998-04-13 | ||
US9/059,000 | 1998-04-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990082718A KR19990082718A (ko) | 1999-11-25 |
KR100316505B1 true KR100316505B1 (ko) | 2001-12-12 |
Family
ID=22020194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019990007612A KR100316505B1 (ko) | 1998-04-13 | 1999-03-08 | 프로세서에 데이타를 제공하기 위한 캐시 및 캐시로부터 프로세서에 데이타를 제공하기 위한 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6138208A (ko) |
JP (1) | JP3683739B2 (ko) |
KR (1) | KR100316505B1 (ko) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6434667B1 (en) * | 1999-06-25 | 2002-08-13 | International Business Machines Corporation | Layered local cache with imprecise reload mechanism |
US6405285B1 (en) | 1999-06-25 | 2002-06-11 | International Business Machines Corporation | Layered local cache mechanism with split register load bus and cache load bus |
US6418513B1 (en) * | 1999-06-25 | 2002-07-09 | International Business Machines Corporation | Queue-less and state-less layered local data cache mechanism |
US6446166B1 (en) * | 1999-06-25 | 2002-09-03 | International Business Machines Corporation | Method for upper level cache victim selection management by a lower level cache |
US6463507B1 (en) | 1999-06-25 | 2002-10-08 | International Business Machines Corporation | Layered local cache with lower level cache updating upper and lower level cache directories |
US6397300B1 (en) | 1999-06-25 | 2002-05-28 | International Business Machines Corporation | High performance store instruction management via imprecise local cache update mechanism |
US6385694B1 (en) | 1999-06-25 | 2002-05-07 | International Business Machines Corporation | High performance load instruction management via system bus with explicit register load and/or cache reload protocols |
US6427188B1 (en) * | 2000-02-09 | 2002-07-30 | Hewlett-Packard Company | Method and system for early tag accesses for lower-level caches in parallel with first-level cache |
US6647464B2 (en) * | 2000-02-18 | 2003-11-11 | Hewlett-Packard Development Company, L.P. | System and method utilizing speculative cache access for improved performance |
US6427189B1 (en) | 2000-02-21 | 2002-07-30 | Hewlett-Packard Company | Multiple issue algorithm with over subscription avoidance feature to get high bandwidth through cache pipeline |
JP2002196981A (ja) * | 2000-12-22 | 2002-07-12 | Fujitsu Ltd | データ処理装置 |
US7283628B2 (en) * | 2001-11-30 | 2007-10-16 | Analog Devices, Inc. | Programmable data encryption engine |
US7269615B2 (en) | 2001-12-18 | 2007-09-11 | Analog Devices, Inc. | Reconfigurable input Galois field linear transformer system |
US7895253B2 (en) | 2001-11-30 | 2011-02-22 | Analog Devices, Inc. | Compound Galois field engine and Galois field divider and square root engine and method |
US7082452B2 (en) * | 2001-11-30 | 2006-07-25 | Analog Devices, Inc. | Galois field multiply/multiply-add/multiply accumulate |
US7508937B2 (en) * | 2001-12-18 | 2009-03-24 | Analog Devices, Inc. | Programmable data encryption engine for advanced encryption standard algorithm |
US6829694B2 (en) * | 2002-02-07 | 2004-12-07 | Analog Devices, Inc. | Reconfigurable parallel look up table system |
US20030163643A1 (en) * | 2002-02-22 | 2003-08-28 | Riedlinger Reid James | Bank conflict determination |
US6823430B2 (en) * | 2002-10-10 | 2004-11-23 | International Business Machines Corporation | Directoryless L0 cache for stall reduction |
US7844801B2 (en) * | 2003-07-31 | 2010-11-30 | Intel Corporation | Method and apparatus for affinity-guided speculative helper threads in chip multiprocessors |
US7512647B2 (en) * | 2004-11-22 | 2009-03-31 | Analog Devices, Inc. | Condensed Galois field computing system |
US8024551B2 (en) * | 2005-10-26 | 2011-09-20 | Analog Devices, Inc. | Pipelined digital signal processor |
US7728744B2 (en) * | 2005-10-26 | 2010-06-01 | Analog Devices, Inc. | Variable length decoder system and method |
US8285972B2 (en) * | 2005-10-26 | 2012-10-09 | Analog Devices, Inc. | Lookup table addressing system and method |
US8301990B2 (en) * | 2007-09-27 | 2012-10-30 | Analog Devices, Inc. | Programmable compute unit with internal register and bit FIFO for executing Viterbi code |
US8195881B2 (en) * | 2008-02-26 | 2012-06-05 | International Business Machines Corporation | System, method and processor for accessing data after a translation lookaside buffer miss |
US7813189B2 (en) * | 2008-07-02 | 2010-10-12 | International Business Machines Corporation | Array data input latch and data clocking scheme |
KR100953986B1 (ko) | 2008-08-26 | 2010-04-21 | 재단법인서울대학교산학협력재단 | 우선순위 기반 실행을 이용한 캐시미스 대기시간 활용 방법및 장치 |
US9122617B2 (en) * | 2008-11-21 | 2015-09-01 | International Business Machines Corporation | Pseudo cache memory in a multi-core processor (MCP) |
US9824008B2 (en) | 2008-11-21 | 2017-11-21 | International Business Machines Corporation | Cache memory sharing in a multi-core processor (MCP) |
US9886389B2 (en) | 2008-11-21 | 2018-02-06 | International Business Machines Corporation | Cache memory bypass in a multi-core processor (MCP) |
BRPI0924540A2 (pt) | 2009-06-16 | 2015-06-23 | Intel Corp | Aplicações de câmera em um dispositivo portátil |
JP6249120B1 (ja) | 2017-03-27 | 2017-12-20 | 日本電気株式会社 | プロセッサ |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0612323A (ja) * | 1992-02-27 | 1994-01-21 | Hewlett Packard Co <Hp> | キャッシュメモリシステム |
Family Cites Families (7)
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 |
US5649154A (en) * | 1992-02-27 | 1997-07-15 | Hewlett-Packard Company | Cache memory system having secondary cache integrated with primary cache for use with VLSI circuits |
JPH06187238A (ja) * | 1992-12-15 | 1994-07-08 | Hitachi Ltd | 情報処理装置 |
US5826052A (en) * | 1994-04-29 | 1998-10-20 | Advanced Micro Devices, Inc. | Method and apparatus for concurrent access to multiple physical caches |
US5577227A (en) * | 1994-08-04 | 1996-11-19 | Finnell; James S. | Method for decreasing penalty resulting from a cache miss in multi-level cache system |
US5778422A (en) * | 1996-04-04 | 1998-07-07 | International Business Machines Corporation | Data processing system memory controller that selectively caches data associated with write requests |
-
1998
- 1998-04-13 US US09/059,000 patent/US6138208A/en not_active Expired - Lifetime
-
1999
- 1999-03-08 KR KR1019990007612A patent/KR100316505B1/ko not_active IP Right Cessation
- 1999-04-02 JP JP09622899A patent/JP3683739B2/ja not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0612323A (ja) * | 1992-02-27 | 1994-01-21 | Hewlett Packard Co <Hp> | キャッシュメモリシステム |
Also Published As
Publication number | Publication date |
---|---|
KR19990082718A (ko) | 1999-11-25 |
US6138208A (en) | 2000-10-24 |
JP3683739B2 (ja) | 2005-08-17 |
JP2000003308A (ja) | 2000-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100316505B1 (ko) | 프로세서에 데이타를 제공하기 위한 캐시 및 캐시로부터 프로세서에 데이타를 제공하기 위한 방법 | |
EP0734553B1 (en) | Split level cache | |
US6161166A (en) | Instruction cache for multithreaded processor | |
US5996048A (en) | Inclusion vector architecture for a level two cache | |
US5388247A (en) | History buffer control to reduce unnecessary allocations in a memory stream buffer | |
US5586294A (en) | Method for increased performance from a memory stream buffer by eliminating read-modify-write streams from history buffer | |
US5822755A (en) | Dual usage memory selectively behaving as a victim cache for L1 cache or as a tag array for L2 cache | |
US7032074B2 (en) | Method and mechanism to use a cache to translate from a virtual bus to a physical bus | |
US5561814A (en) | Methods and apparatus for determining memory operating characteristics for given memory locations via assigned address ranges | |
US20020065989A1 (en) | Master/slave processing system with shared translation lookaside buffer | |
JP2006517040A (ja) | キャッシュラインサイズが異なる第一レベルキャッシュと第二レベルキャッシュを備えたマイクロプロセッサ | |
KR19980041729A (ko) | 캐쉬 제어 유닛 | |
KR20030010727A (ko) | 변환 색인 버퍼 플러시 필터 | |
JPH0559455B2 (ko) | ||
JP2005174341A (ja) | 種々のキャッシュ・レベルにおける連想セットの重畳一致グループを有するマルチレベル・キャッシュ | |
US6742103B2 (en) | Processing system with shared translation lookaside buffer | |
US5091845A (en) | System for controlling the storage of information in a cache memory | |
WO1988006762A1 (en) | Central processor unit for digital data processing system including cache management mechanism | |
US5226170A (en) | Interface between processor and special instruction processor in digital data processing system | |
US5954812A (en) | Apparatus for caching system management memory in a computer having a system management mode employing address translation | |
KR100322223B1 (ko) | 대기행렬및스누프테이블을갖는메모리제어기 | |
JP3431878B2 (ja) | マルチスレッド・プロセッサの命令キャッシュ | |
US5926841A (en) | Segment descriptor cache for a processor | |
JP2634147B2 (ja) | コンピュータシステム、キャッシュヒットの判定方法 | |
US6338128B1 (en) | System and method for invalidating an entry in a translation unit |
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: 20101102 Year of fee payment: 10 |
|
LAPS | Lapse due to unpaid annual fee |