KR100316505B1 - 프로세서에 데이타를 제공하기 위한 캐시 및 캐시로부터 프로세서에 데이타를 제공하기 위한 방법 - Google Patents

프로세서에 데이타를 제공하기 위한 캐시 및 캐시로부터 프로세서에 데이타를 제공하기 위한 방법 Download PDF

Info

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
Application number
KR1019990007612A
Other languages
English (en)
Other versions
KR19990082718A (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 KR19990082718A publication Critical patent/KR19990082718A/ko
Application granted granted Critical
Publication of KR100316505B1 publication Critical patent/KR100316505B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0884Parallel 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

프로세서에 데이타를 제공하기 위한 캐시 및 캐시로부터 프로세서에 데이타를 제공하기 위한 방법{OVERLAPPED L1 AND L2 MEMORY ACCESS}
본 발명은 일반적으로는 컴퓨터 시스템에 관한 것으로, 보다 상세하게는 메모리 액세스 호출 대기 시간(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)

  1. 컴퓨터 시스템의 캐시(cache)에서 프로세서로 데이타를 제공하기 위한 방법에 있어서,
    하위 레벨의 상기 캐시에 소정 값(a value)을 로딩하는 단계,
    상기 값이 상위 레벨의 상기 캐시에 의해 공급되도록 하는 요구를 상기 프로세서로부터 발생시키는 단계,
    상기 발생 단계에 응답하여, 상기 상위 레벨의 캐시에서 상기 값의 캐시 미스(cache miss)가 발생된 것으로 판단하는 단계,
    상기 판단 단계 동안, 상기 요구를 상기 하위 레벨의 캐시로 전송하는 단계- 상기 컴퓨터 시스템의 시스템 메모리 장치에서 상기 값의 특정 위치에 관련된 어드레스를 디코딩하는 단계를 포함함 -, 및
    상기 판단 단계에 응답하여, 상기 값을 상기 하위 레벨의 캐시로부터 공급하는 단계
    를 포함하는 캐시에서 프로세서로의 데이타 제공 방법.
  2. 제1항에 있어서, 상기 값은 상기 하위 레벨의 캐시에서 상기 프로세서로 직접 공급되는
    캐시에서 프로세서로의 데이타 제공 방법.
  3. 제1항에 있어서, 상기 디코딩 단계는 복수의 동시성 메모리 요구를 만족시키기 위해 상기 상위 레벨의 캐시에서 복수의 디코더를 병렬로 동작시키는 단계
    를 포함하는 캐시에서 프로세서로의 데이타 제공 방법.
  4. 제1항에 있어서, 상기 공급 단계는 상기 하위 레벨의 캐시의 복수의 메모리 어레이 워드선 구동기로 상기 어드레스를 게이트시키는 단계
    를 포함하는 캐시에서 프로세서로의 데이타 제공 방법.
  5. 제1항에 있어서, 상기 디코딩 단계는 가상-실제(virtual-to-real) 변환을 필요로 하지 않는 상기 어드레스의 복수의 비트를 직접 디코딩하는 단계
    를 포함하는 캐시에서 프로세서로의 데이타 제공 방법.
  6. 제6항에 있어서, 상기 디코딩 단계는 상기 판단 단계의 완료 전에 상기 어드레스의 다른 복수의 비트를 변환시키는 단계
    를 포함하는 캐시에서 프로세서로의 데이타 제공 방법.
  7. 컴퓨터 시스템의 프로세서에 값(values)을 제공하기 위한 캐시에 있어서,
    상위 레벨의 캐시,
    하위 레벨의 캐시, 및
    상기 상위 레벨의 캐시에서 상기 값의 캐시 미스가 발생하여 상기 값이 상기 하위 레벨의 캐시로부터 공급될 때 메모리 액세스 호출 대기 시간(latency)을 감축시키기 위한 수단
    을 포함하되,
    상기 감축 수단은 상기 상위 레벨의 캐시가 캐시 미스가 발생하는지를 판단하는 동안, 상기 프로세서로부터 상기 하위 레벨 캐시로 상기 값에 대한 요구를 전송함으로써, 상기 상위 레벨 캐시의 제1 액세스와 상기 하위 레벨 캐시의 제2 액세스의 중첩을 제공하며,
    상기 요구는 상기 컴퓨터 시스템의 시스템 메모리 장치 내에 상기 값의 특정 영역에 관련된 어드레스를 디코딩함으로써 전송되는, 컴퓨터 시스템의 프로세서에 값을 제공하는 캐시.
  8. 제8항에 있어서,
    상기 상위 레벨의 캐시는 상기 프로세서에 접속된 제1 레벨의 캐시이고,
    상기 하위 레벨의 캐시는 상기 제1 레벨의 캐시에 접속된 제2 레벨의 캐시인, 컴퓨터 시스템의 프로세서에 값을 제공하는 캐시.
  9. 제8항에 있어서, 상기 제2 레벨의 캐시는 또한 제3 레벨의 캐시에 접속되는, 컴퓨터 시스템의 프로세서에 값을 제공하는 캐시.
  10. 제8항에 있어서, 상기 메모리 액세스 호출 대기 시간을 감축시키기 위한 상기 수단은 상기 값을 상기 하위 레벨의 캐시로부터 직접 상기 프로세서에 공급하는, 컴퓨터 시스템의 프로세서에 값을 제공하는 캐시.
  11. 제9항에 있어서, 상기 메모리 액세스 호출 대기 시간을 감축시키기 위한 상기 수단은 상기 어드레스를 상기 하위 레벨 캐시의 복수의 메모리 어레이 워드선 구동기로 게이트시킴으로써 상기 값을 공급하는, 컴퓨터 시스템의 프로세서에 값을 제공하는 캐시.
KR1019990007612A 1998-04-13 1999-03-08 프로세서에 데이타를 제공하기 위한 캐시 및 캐시로부터 프로세서에 데이타를 제공하기 위한 방법 KR100316505B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0612323A (ja) * 1992-02-27 1994-01-21 Hewlett Packard Co <Hp> キャッシュメモリシステム

Family Cites Families (7)

* 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
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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