KR100321107B1 - 데이타 프로세싱 시스템 내의 캐쉬 메모리를 억세싱하기 위한 방법 및 시스템 - Google Patents

데이타 프로세싱 시스템 내의 캐쉬 메모리를 억세싱하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR100321107B1
KR100321107B1 KR1019990008167A KR19990008167A KR100321107B1 KR 100321107 B1 KR100321107 B1 KR 100321107B1 KR 1019990008167 A KR1019990008167 A KR 1019990008167A KR 19990008167 A KR19990008167 A KR 19990008167A KR 100321107 B1 KR100321107 B1 KR 100321107B1
Authority
KR
South Korea
Prior art keywords
array
cache
translation
memory
address
Prior art date
Application number
KR1019990008167A
Other languages
English (en)
Other versions
KR19990082723A (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 KR19990082723A publication Critical patent/KR19990082723A/ko
Application granted granted Critical
Publication of KR100321107B1 publication Critical patent/KR100321107B1/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
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed

Abstract

프로세싱 시스템 내의 캐쉬 메모리를 억세싱하는 방법이 개시되어 있다. 캐쉬 메모리는 변환 룩어사이드 버퍼와 함께 메모리 어레이와 디렉토리를 포함한다. 캐쉬 메모리는 바이트 필드, 라인 필드, 유효 페이지 번호 필드를 포함하는 유효 어드레스에 의해 억세스될 수 있다. 캐쉬 억세스 프로세스를 활용하기 위하여, 변환 어레이는 변환 룩어사이드 버퍼와 동일한 개수의 로우를 가지도록 제공된다. 변환 어레이의 각 로우는 시스템 메모리의 페이지 당 라인들의 개수와 캐쉬의 세트 연관성의 곱과 동일한 개수의 어레이 엔트리를 가진다. 변환 어레이는 디렉토리 또는 변환 룩어사이드 버퍼의 내용들이 갱신된 후에 갱신된다. 변환 어레이는 유효 어드레스의 라인 필드의 내용을 억세스하여 변환 어드레스와 관련된 데이타를 캐쉬 메모리가 저장하고 있는지의 여부를 판정할 수 있다.

Description

데이타 프로세싱 시스템 내의 캐쉬 메모리를 억세싱하기 위한 방법 및 시스템{METHOD AND SYSTEM FOR ACCESSING A CACHE MEMORY WITHIN A DATA PROCESSING SYSTEM}
본 발명은 일반적으로 데이타 프로세싱을 위한 방법 및 시스템에 관한 것으로, 특히 데이타 프로세싱 시스템 내의 메모리 억세스의 속도를 향상시키기 위한 방법 및 시스템에 관한 것이다. 보다 구체적으로, 본 발명은 데이타 프로세싱 시스템 내의 캐쉬 메모리를 억세싱하기 위한 방법 및 시스템에 관한 것이다.
메모리 억세스용 데이타 프로세싱 시스템 내의 메인 메모리를 구성하는 일반적인 방식은 메인 메모리를 페이지라고 명명되는 연속적인 위치의 블럭들로 분할함으로써 이루어지는데, 각 페이지는 동일한 개수의 라인들을 가지고, 각 라인은 동일한 수의 바이트를 가진다. 따라서, 메인 메모리를 억세스하는데 활용되는 어드레스는 통상적으로 페이지 번호, 라인 번호, 및 바이트 위치를 포함한다. 이러한 어드레스는 일반적으로 실제 어드레스(RA) 또는 물리 어드레스(physical address)로서 언급된다. 그러나, 가상 어드레싱 구조가 이용되는 경우, 억세스 어드레스는 유효 어드레스(effective address; EA) 또는 가상 어드레스로서 언급된다. 이 가상 어드레싱 구조 내에서 명령 또는 데이타가 재배치 가능하다고 가정하면, 유효 어드레스 또는 가상 어드레스는 메인 메모리 내에 실제 위치를 지정하고 있는 대응되는 실제 어드레스 또는 물리 어드레스로 역매핑되어야 한다. 그럼에도 불구하고, 전술된 바와 같이 메인 메모리가 개념적으로는 페이지들로 나뉘어져 있기 때문에, 메인 메모리의 페이지 내의 바이트를 통상적으로 식별하는 유효 어드레스의 하위 비트들은 어떠한 변환도 필요치 않지만, 유효 어드레스의 상위 비트들은 메인 메모리 내의 실제 페이지 위치를 지정하고 있는 대응되는 실제 페이지 어드레스로 변환될 필요가 있다.
메인 메모리 내에 저장된 데이타로의 억세스 속도를 증가시키기 위하여, 현대의 데이타 프로세싱 시스템들은 통상적으로 캐쉬 메모리로서 알려진 고속 메모리에 가장 최근에 사용된 데이타를 보유한다. 이 캐쉬 메모리는 다수의 캐쉬 라인들을 가지며 각각의 캐쉬 라인은 메인 메모리 내의 인접한 어드레스의 정보를 저장하기 위하여 캐쉬 라인 당 수 바이트를 가진다. 또한, 각각의 캐쉬 라인은 메인 메모리의 대응되는 페이지의 일부 어드레스를 통상적으로 식별하는 관련 태그(tag)를 가진다. 각각의 캐쉬 라인 내의 정보가 메인 메모리의 서로 다른 페이지들로부터 발생될 수도 있기 때문에, 태그는 메인 메모리의 어떤 페이지에 캐쉬 라인이 속해 있는지를 식별하는 편리한 방법을 제공한다.
통상적인 캐쉬 메모리의 수행에서, 하나 또는 수개의 메모리 어레이에 정보가 저장된다. 또한, 각 캐쉬 라인에 대응되는 태그들은 디렉토리(directory) 또는 태그 어레이로서 알려진 구조에 저장된다. 또한, 통상적으로, 변환 룩어사이드 버퍼(translation lookaside buffer; TLB)라고 명명되는 추가적인 구조를 활용하여 캐쉬 메모리 억세싱 동안 유효 어드레스의 실제 어드레스로의 변환을 용이하게 한다.
유효 어드레스를 이용하여 캐쉬 메모리의 바이트를 억세싱하기 위하여, 유효 어드레스의 라인 부분(중간 비트)을 활용하여 디렉토리로부터의 대응되는 태그와 함께 메모리 어레이로부터 캐쉬 라인을 선택한다. 다음으로, 유효 어드레스의 바이트 부분(하위 비트)을 활용하여 선택된 캐쉬 라인으로부터 지시된 바이트를 선택한다. 이와 동시에, 유효 어드레스의 페이지 부분(상위 비트)이 변환 룩어사이드 버퍼를 통해 변환되어 실제 페이지 번호가 결정된다. 이러한 변환에 의해 획득된 실제 페이지 번호가 디렉토리 내에 저장된 실제 어드레스 태그와 일치한다면, 선택된 캐쉬 라인으로부터 판독된 데이타는 프로그램에 의해 실제적으로 탐색된 데이타이다. 이러한 것은 요구 데이타가 캐쉬 메모리 내에서 발견되었다는 것을 의미하는 캐쉬 '히트(hit)'라고 흔히 언급된다. 실제 어드레스 태그와 변환된 실제 페이지 번호가 일치하지 않는 경우, 캐쉬 메모리에 요구 데이타가 저장되지 않았다라는 것을 의미하는 캐쉬 '미스(miss)'가 발생한다. 따라서, 요구 데이타는 메인 메모리로부터 또는 그밖의 메모리 체계 내에서 복구되어야 한다.
다이렉트-매핑 캐쉬를 이용함으로써, 한번에 실제 메모리 페이지 내의 모든 페이지로부터 대응되는 라인들의 그룹들 중 하나만이 캐쉬 메모리에 저장될 수 있지만, 보다 향상된 '히트'비를 달성하기 위하여 때때로 세트-연관성 캐쉬가 그 대용으로 활용된다. 예를 들면, N-방식 세트-연관성 캐쉬를 이용하여, N개의 서로 다른 페이지들로부터 대응되는 라인들이 저장될 수도 있다. 전체 엔트리는 대응되는 태그들에 의해 구별될 수 있기 때문에, 라인 번호가 동일한 N개의 라인들 중에서 프로그램이 요구되는 정보를 포함하고 있는 것을 항상 분석해 낼 수 있다. 이러한 분석은 소정 라인 번호가 부여된 N개의 태그들과 변환된 실제 페이지 번호를 비교해야 한다. 각 비교는 N 대 1 멀티플렉서에 입력하여 N개의 가능성 중에서 적절한 캐쉬 라인을 선택하는 것이다.
캐쉬 구조가 활용되는 것과 무관하게, 어드레스 변환을 위한 임계 경로는 변환 룩어사이드 버퍼, 디렉토리 및 한 그룹의 비교 회로들을 여전히 포함하고, 캐쉬 억세싱 동안 캐쉬 메모리 내의 적절한 캐쉬 라인을 선택하는데 활용되어야 한다. 이 임계 경로는 전체 캐쉬 억세스 프로세스에 어떤 불필요한 지연을 초래할 수 있기 때문에, 데이타 프로세싱 시스템 내에서의 캐쉬 억세싱 동안 어드레스 변환을 위한 향상된 방법 및 시스템을 제공하는 것이 바람직하다.
전술된 관점에서, 본 발명의 목적은 데이타 프로세싱을 위한 향상된 방법 및 시스템을 제공하는 것이다.
본 발명의 다른 목적은 데이타 프로세싱 시스템 내의 메모리 억세스의 속도를 향상시키기 위한 향상된 방법 및 시스템을 제공하는 것이다.
본 발명의 또 다른 목적은 데이타 프로세싱 시스템 내의 캐쉬 메모리를 억세싱하기 위한 향상된 방법 및 시스템을 제공하는 것이다.
본 발명의 바람직한 실시예에 따르면, 캐쉬 메모리는 변환 룩어사이드 버퍼와 함께 메모리 어레이 및 디렉토리를 포함한다. 캐쉬 메모리는 바이트 필드, 라인 필드 및 유효 페이지 번호 필드를 포함하는 유효 어드레스에 의해 억세스될 수도 있다. 캐쉬 억세스 프로세스를 활용하기 위하여, 변환 룩어사이드 버퍼와 같은 동일 개수의 로우들을 가지는 변환 어레이가 제공된다. 이 변환 어레이의 각 로우는 메모리의 페이지 당 라인들의 개수와 캐쉬에 관련된 세트의 곱과 동일한 개수의 어레이 엔트리를 가진다. 디렉토리 또는 변환 룩어사이드 버퍼의 내용이 갱신된 후에 변환 어레이가 갱신된다. 캐쉬 메모리가 변환된 어드레스와 관련된 데이타를 저장하고 있는지의 여부를 판정하기 위하여 변환 어레이는 유효 어드레스의 라인 필드의 내용으로 억세스될 수 있다.
본 발명의 모든 목적, 특징 및 이점들은 다음 상세 설명에서 명백하게 될 것이다.
도 1은 본 발명의 바람직한 실시예가 결합될 수 있는 프로세서의 블럭도.
도 2는 종래 기술에 따른 억세스 방법과 함게 세트-연관성 캐쉬 메모리를 나타낸 블럭도.
도 3은 본 발명의 바람직한 실시예에 따른 변환 어레이를 가지는 세트-연관성 캐쉬 메모리의 블럭도.
<도면의 주요 부분에 대한 부호의 설명>
10 : 프로세서
11 : 명령부
12 : 버스 인터페이스부
13 : 데이타 캐쉬
14 : 명령 캐쉬
15 : 정수부
16 : 부하/저장부
17 : 부동 소수점부
18 : 범용 레지스터
19 : 부동 소수점 레지스터
20 : 완료부
본 발명은 캐쉬 메모리를 가지는 다양한 프로세서들에 실행될 수 있다. 이 캐쉬 메모리는 예를 들면 1차 캐쉬, 2차 캐쉬 또는 3차 캐쉬일 수 있다.
지금부터 도면들, 특히 도 1을 참조하면, 본 발명의 바람직한 실시예가 결합될 수 있는 프로세서의 블럭도가 도시되어 있다. 프로세서(10) 내에서, 버스 인터페이스부(12)는 데이타 캐쉬(13)와 명령 캐쉬(14)에 결합된다. 데이타 캐쉬(13)과 명령 캐쉬(14)는 양자 모두 프로세서(10)로 하여금 메인 메모리 (도시되지 않음)로부터 미리 전송된 데이타 또는 명령들의 서브세트에 비교적 빠른 억세스 시간을 달성할 수 있게 하는 고속 세트-연관성 캐쉬들이다. 게다가, 명령 캐쉬(14)는 각 실행 사이클 동안 명령 캐쉬(14)로부터 명령들을 페치하는 명령부(11)에도 결합된다.
또한, 프로세서(10)는 3개의 실행부들, 즉 정수부(15), 부하/저장부(16) 및부동 소수점부(17)를 포함한다. 각 실행부들(15-17)은 하나 이상의 분류된 명령들을 실행할 수 있고, 모든 실행부들(15-17)은 각 프로세서 사이클 동안 동시에 동작할 수 있다. 실행이 종료된 후, 실행부들(15-17)은 명령 타입에 따라 각각의 재명명 버퍼에 데이타 결과를 저장한다. 그리고나서, 실행부들(15-17) 중 어느 하나는 명령부가 종료되었다는 것을 완료부(20)에 신호한다. 최종적으로, 각각의 재명명 버퍼로부터 범용 레지스터(18) 또는 부동 소수점 레지스터(19)에 최종 데이타를 전송함으로써 명령들의 프로그램 순서가 완료된다.
도 2를 참조하면, 종래 기술에 따른 억세스 방법과 함께 세트-연관성 캐쉬 메모리의 블럭도가 도시되어 있다. 세트-연관성 캐쉬 메모리는 데이타 캐쉬 또는 명령 캐쉬일 수 있다. 공지된 바와 같이, 세트-연관성 캐쉬 메모리는 디렉토리(22)와 함께 메모리 어레이(21)를 포함하고, 이들 둘다 2가지 방식, 즉 방식 0 및 방식 1으로 나뉘어져 있다. 메모리 어레이(21)의 각 캐쉬 라인은 디렉토리(22)에 대응되는 로우를 가진다. 캐쉬 라인의 데이타 또는 명령 부분은 메모리 어레이(21)에 보유되지만 동일 캐쉬 라인의 태그 부분은 디렉토리(22)에 보유된다. 또한, 도 2에는 유효 어드레스를 대응되는 실제 어드레스로 변환하는 변환 룩어사이드 버퍼(TLB; 23)가 나타나 있다. 구체적으로, TLB(23)는 단지 유효 어드레스의 페이지 번호 부분 (또는 유효 페이지 번호)을 대응되는 실제 페이지 번호로 변환한다.
메모리 어레이(21)에 저장된 정보는 유효 어드레스(20)에 의해 억세스될 수도 있다. 유효 어드레스(20)는 바이트 필드, 라인 필드, 및 페이지 번호 필드를포함한다. 유효 어드레스(20)의 라인 필드를 활용하여 메모리 어레이(21) 내에 특정 캐쉬 라인을 선택하고, 유효 어드레스(20)의 바이트 필드를 활용하여 선택된 캐쉬 라인 내의 특정 바이트에 색인을 붙인다. 또한, 유효 어드레스(20)의 페이지 번호 필드는 TLB(23)에 송신되어져서 대응되는 실제 페이지 번호로 변환되게 된다. 이 실제 페이지 번호를 활용하여 디렉토리(22)로부터 선택된 캐쉬 라인의 태그와 비교하는데, 이는 캐쉬 '히트' 또는 '미스'인지를 판정하기 위한 것이다. 말하자면, 디렉토리(22)의 2가지 경로 중 한 경로로부터의 태그와 실제 페이지 번호 간의 일치는 캐쉬 '히트'를 의미한다.
도 2에 나타난 바와 같이, 유효 페이지 번호를 실제 페이지 번호로 변환하는 임계 경로는 TLB(23), 디렉토리(22) 및 비교 회로(24)를 포함한다. 대개, 종래 기술의 구성의 장애는 엄밀하게 말해서 페이지 번호 변환 경로에 있다. 이러한 장애는 전체 캐쉬 억세스 프로세스에 하나 또는 2개의 사이클을 추가하게 할 수 있다.
도 3을 참조하면, 본 발명의 바람직한 실시예에 따른 억세스 방법과 함께 세트-연관성 캐쉬 메모리의 블럭도가 도시되어 있다. 도 2의 세트-연관성 캐쉬 메모리와 유사하게, 도 3의 세트-연관성 캐쉬 메모리는 메모리 어레이(31)와 디렉토리(32)를 포함하고, 이들 둘다 2가지 경로, 즉 경로 0과 경로 1으로 분할되어 있고, 다수의 캐쉬 라인들을 가진다. 캐쉬 라인의 데이타 또는 명령 부분은 메모리 어레이(31)에 보유되지만, 동일 캐쉬 라인의 태그 부분은 디렉토리(32)에 보유된다. 세트-연관성 캐쉬 메모리는 데이타 캐쉬, 명령 캐쉬 또는 데이타와 명령 둘다를 저장하는 단일 캐쉬일 수 있다.
메모리 어레이(31)에 저장된 정보는 유효 어드레스(30)에 의해 억세스될 수도 있다. 유효 어드레스(30)는 메인 메모리 내에 가상 페이지를 가리키는 페이지 번호 필드, 가상 페이지 내에 특정 캐쉬 라인을 선택하는 라인 필드, 및 선택된 캐쉬 라인 내의 특정 바이트에 색인을 붙이기 위한 바이트 필드를 포함한다. 예를 들면, 32개의 캐쉬 라인들을 가지는 4K 바이트 페이지에 대해, 바이트 필드는 7비트 와이드일 수 있고 라인 필드는 5 비트 와이드일 수 있다.
본 발명의 바람직한 실시예에 따르면, 변환 어레이(34)를 활용하여 디렉토리(32) 및 TLB(33)로부터 추출된 정보를 저장한다. 변환 어레이(34)는 TLB(33)와 동일한 개수의 로우 엔트리를 가진다. 예를 들면, TLB(33)가 256개의 로우 엔트리를 가지는 경우, 변환 어레이(34)는 256개의 로우 엔트리를 가지게 될 것이다. 또한, 변환 어레이(34)는 디렉토리(32)와 동일한 개수의 경로를 가진다. 알려진 바와 같이, 변환 어레이(34)는 디렉토리(32)와 동일하게 2가지 경로를 가진다. 변환 어레이(34)의 각 경로 내에서, 각 로우는 페이지당 캐쉬 라인들의 개수에 대응되는 다수의 어레이 엔트리(각기 1 비트)를 가진다. 예를 들면, 페이지가 32개의 캐쉬 라인들을 가지는 경우, 변환 어레이(34)는 각 경로의 각 로우에 32개의 어레이 엔트리를 가지게 될 것이다. 변환 어레이(34)는 내용을 어드레스할 수 있는 메모리가 바람직하다.
디렉토리(32) 내의 캐쉬 라인에 대한 각각의 실제 어드레스 태그는 변환 어레이(34) 내의 대응되는 어레이 엔트리에 논리 '1'로 표현되는 것이 바람직하다. 본 발명의 핵심적인 사항은 TLB(33) 내에서 소정 유효 어드레스가 단지 하나의 실제 어드레스로 매핑되는 것에 대한 인식이다. 따라서, 전술된 바와 같이 변환 어레이(34) 내의 어레이 엔트리의 배치를 이용하여, 변환 어레이(34)의 각 어레이 엔트리(1 비트)는 유효 페이지 번호, 라인 번호 및 경로 번호로 유일하게 배치된다. 논리가 '1'인 각각의 어레이 엔트리는 소정 실제 페이지의 대응되는 캐쉬 라인이 디렉토리(32)에 현재 있다라는 것을 가리킨다. 따라서, 캐쉬 억세스는 변환 어레이(34)를 활용하는 반면에 TLB(33)를 바이패스시킴으로써 수행될 수 있다.
변환 어레이(34)는 컬럼 또는 로우 중 어느 하나에 의해 억세스될 수 있다. 변환 어레이(34)의 각 경로는 페이지 상의 캐쉬 라인들의 개수와 동일한 개수의 컬럼들을 가지기 때문에, 유효 어드레스(30)의 라인 번호를 활용하여 컬럼으로 변환 어레이(34)를 억세스한다. 그렇지 않으면, 변환 어레이(34)는 유효 어드레스(30)의 유효 페이지 번호를 활용함으로써 억세싱되어 대응되는 로우 번호에 배치될 수 있다.
변환 어레이(34) 내의 어레이 엔트리는 디렉토리(32) 또는 TLB(33) 중 어느 하나에서 내용 변경이 있는 경우 갱신되어야 한다. TLB(33)의 로우 엔트리가 새로운 유효 엔트리로 교체되는 경우, TLB(33)의 실제 페이지 번호 부분은 디렉토리(32) 내의 모든 실제 어드레스 태그와 비교되어야 한다. TLB(33)의 새로운 실제 페이지 번호와 일치하는 디렉토리(32)의 모든 실제 어드레스 태그들의 위치는 디렉토리(32) 내의 실제 어드레스 태그들의 대응되는 물리 위치에 기초하여 라인 번호들로 분석된다. 일치하는 모든 라인 번호들의 집합은 비트 벡터, 디렉토리(32) 내의 경로(way) 당 하나의 벡터로서 기록된다. 각 경로에 대한 벡터는 새로운 엔트리를 수신하는 TLB(33)의 로우에 대응하는 변환 어레이(34)의 로우에 저장된다. 그러나, TLB(33)의 로우 엔트리가 무효가 되는 경우에는, 변환 어레이(34) 내의 어레이 엔트리에 관련된 어떠한 액션도 필요치 않다. 이것은 유효한 TLZB(33)의 로우 엔트리가 마킹된 엔트리가 TLB(33)의 유효 로우 엔트리를 찾는 것이 연속적인 변환의 선행 조건이 되어야 하는 기본적인 변환 메카니즘에 필요하기 때문이다. 로우 엔트리가 무효가 되는 경우, 변환 폴트(translation fault)가 신호되고, 어떠한 히트 또는 미스도 통상적으로 무시될 것이다.
변환 어레이(34) 내의 각 어레이 엔트리는 디렉토리(32) 내의 실제 어드레스 태그들의 변화가 있을 때 갱신되어야 한다. 예를 들면, 캐쉬 라인이 무효가 되는 경우, 해당 라인의 실제 어드레스 태그는 TLB(33)의 모든 실제 페이지 번호들에 대해 비교되어야 한다. 매칭되는 엔트리의 로우에 그리고 무효가 된 캐쉬 라인의 실제 어드레스 태그의 라인 번호/경로에 대응되는 컬럼에 배치된 변환 어레이(34)의 어레이 엔트리는 논리 '0'으로 설정되어야 한다. 또한, 캐쉬 라인이 다른 캐쉬 라인으로 교체될 때, 유사한 절차가 후속된다. 교체될 캐쉬 라인의 실제 어드레스 태그는 전술된 바와 같이 비교되는데, 이는 변환 어레이(34)의 어레이 엔트리를 논리 '0'으로 설정하기 위한 것이다. 다음으로, 새로운 라인의 실제 어드레스 태그는 TLB(33)의 모든 실제 페이지 번호들과 비교된다. 매칭되는 엔트리의 로우에 그리고 교체된 캐쉬 라인의 실제 어드레스 태그의 캐쉬 라인 번호/경로에 대응되는 컬럼에 배치된 변환 어레이(34)의 어레이 엔트리는 논리 '1'로 설정된다.
본 발명의 결과로서, 유효 어드레스(30)의 유효 페이지 번호를 변환용TLB(33)로 송신하는 대신에, 유효 페이지 번호는 직접 변환 어레이(34)로 송신되고, TLB(33)가 가상 페이지 번호를 실제 페이지의 번호로 변환하는데 여전히 필요하다고 할지라도 TLB(33)는 완벽하게 바이패스될 수 있다. 변환 어레이(34) 내의 어레이 엔트리들 중 하나로부터의 '1'은 캐쉬 '히트'를 의미한다. 또한, 변환 어레이(34)의 '1'의 위치는 멀티플렉서(35)를 통하여 메모리 어레이(31)의 적절한 경로를 선택한다. 이러한 방법은 TLB(33)와 같은 변환 하드웨어를 통한 경로가 전체적인 캐쉬 억세스 지연을 제한할 때 유리하다.
전술된 바와 같이, 본 발명은 데이타 프로세싱 시스템 내의 캐쉬 메모리를 억세스하는 향상된 방법 및 시스템을 제공한다. 본 발명은 유효 페이지 번호를 실제 페이지 번호로 변환하고나서, TLB로부터의 실제 페이지 번호와 디렉토리로부터 판독된 실제 어드레스 태그를 비교하는 단계를 제거하여, 디렉토리 억세스와 임계 경로 어드레스 변환에 대한 태그 변환 둘다를 포함하는 캐쉬 억세스의 속도가 증가될 수 있도록 한다. 본 발명은 비교적 페이지 사이즈(예를 들면, 4K 바이트)가 작은 메인 메모리와 비교적 세트 관련성(예를 들면, 2-4 경로)이 적게 구성된 캐쉬 메모리를 가지는 데이타 프로세싱 시스템에 특히 적용 가능하다. 실제 페이지 번호와 태그 비교를 제거함으로써, 본 발명은 캐쉬 '히트' 또는 '미스' 지시가 프로세서에 더 빠르게 역송신되게 한다.
세트-연관성 캐쉬가 활용되는 본 발명의 바람직한 실시예가 도시되었지만, 본 분야의 숙련된 자라면 개시되어 있는 원리들은 다이렉트-매핑 캐쉬에도 적용가능하다라는 것을 알 수 있다.
본 발명이 특히 바람직한 실시예를 참조하여 도시되고 기술되었지만, 본 분야의 숙련된 자라면 형태 및 세부 사항의 다양한 변화가 본 발명의 기술적 사상 및 범위와 동떨어짐 없이 행해질 수 있다라는 것을 알 수 있을 것이다.

Claims (10)

  1. 유효 어드레스(effective address)를 활용하여 데이타 프로세싱 시스템 내의 캐쉬 메모리를 억세싱하는 방법 -상기 유효 어드레스는 바이트 필드, 라인 필드, 및 유효 페이지 번호 필드를 포함하고, 상기 캐쉬 메모리는 디렉토리(directory)와 변환 룩어사이드 버퍼(translation lookaside buffer)와 함께 메모리 어레이를 포함함- 에 있어서:
    상기 변환 룩어사이드 버퍼에서와 동일한 개수의 로우들과, 각각의 로우 내에 시스템 메모리의 페이지 당 캐쉬 라인들과 상기 캐쉬 메모리의 연관성의 곱과 동일한 개수의 어레이 엔트리를 포함하는 변환 어레이를 제공하는 단계와;
    유효 어드레스에 의한 캐쉬 억세스에 응답하여, 상기 캐쉬 메모리가 상기 변환 어레이를 활용하여 상기 유효 어드레스와 연관된 데이타를 저장하고 있는지의 여부를 판정하는 단계를 포함하는 방법.
  2. 청구항 2(은)는 설정등록료 납부시 포기되었습니다.
    제1항에 있어서, 상기 판정 단계는 상기 유효 어드레스의 라인 필드를 활용하여 상기 변환 어레이를 억세싱하는 단계를 더 포함하는 방법.
  3. 청구항 3(은)는 설정등록료 납부시 포기되었습니다.
    제2항에 있어서, 상기 판정 단계는 상기 어레이 엔트리들 중에서 일치의 지시자(indication of match)를 갖는 어레이 엔트리를 검출하는 단계를 더 포함하는 방법.
  4. 청구항 4(은)는 설정등록료 납부시 포기되었습니다.
    제1항에 있어서, 상기 방법은 상기 디렉토리 또는 상기 변환 룩어사이드 버퍼 내의 내용들이 갱신된 후 상기 변환 어레이를 갱신하는 단계를 더 포함하는 방법.
  5. 청구항 5(은)는 설정등록료 납부시 포기되었습니다.
    제1항에 있어서, 상기 디렉토리는 실제 페이지 번호들을 포함하고 상기 변환 룩어사이드 버퍼는 유효 페이지 번호들을 실제 페이지 번호들로 변환하기 위한 것인 방법.
  6. 유효 어드레스를 활용함으로써 억세싱될 수 있는 캐쉬 메모리를 가지는 프로세서 -상기 유효 어드레스는 바이트 필드, 라인 필드, 및 유효 페이지 번호 필드를 포함하고, 상기 캐쉬 메모리는 디렉토리와 변환 룩어사이드 버퍼와 함께 메모리 어레이를 포함함- 에 있어서:
    상기 변환 룩어사이드 버퍼에서와 동일한 개수의 로우들과, 각각의 로우 내에 시스템 메모리의 페이지 당 캐쉬 라인들과 상기 캐쉬 메모리의 연관성의 곱과 동일한 개수의 어레이 엔트리를 포함하는 변환 어레이와;
    유효 어드레스에 의한 캐쉬 억세스에 응답하여, 상기 캐쉬 메모리가 상기 변환 어레이를 활용하여 상기 유효 어드레스와 연관된 데이타를 저장하고 있는지의 여부를 판정하는 수단을 포함하는 프로세서.
  7. 제6항에 있어서, 상기 판정 수단은 상기 유효 어드레스의 라인 필드를 활용하여 상기 변환 어레이를 억세싱하는 수단을 더 포함하는 프로세서.
  8. 제7항에 있어서, 상기 판정 수단은 상기 어레이 엔트리들 중에서 일치의 지시자를 갖는 어레이 엔트리를 검출하는 수단을 더 포함하는 프로세서.
  9. 제6항에 있어서, 상기 프로세서는 상기 디렉토리 또는 상기 변환 룩어사이드 버퍼 내의 내용들이 갱신된 후 상기 변환 어레이를 갱신하는 수단을 더 포함하는 프로세서.
  10. 제6항에 있어서, 상기 디렉토리는 실제 페이지 번호들을 포함하고 상기 변환 룩어사이드 버퍼는 유효 페이지 번호들을 실제 페이지 번호들로 변환하기 위한 것인 프로세서.
KR1019990008167A 1998-04-17 1999-03-11 데이타 프로세싱 시스템 내의 캐쉬 메모리를 억세싱하기 위한 방법 및 시스템 KR100321107B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/062,002 1998-04-17
US09/062,002 US6574698B1 (en) 1998-04-17 1998-04-17 Method and system for accessing a cache memory within a data processing system
US9/062,002 1998-04-17

Publications (2)

Publication Number Publication Date
KR19990082723A KR19990082723A (ko) 1999-11-25
KR100321107B1 true KR100321107B1 (ko) 2002-03-18

Family

ID=22039583

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990008167A KR100321107B1 (ko) 1998-04-17 1999-03-11 데이타 프로세싱 시스템 내의 캐쉬 메모리를 억세싱하기 위한 방법 및 시스템

Country Status (3)

Country Link
US (1) US6574698B1 (ko)
JP (1) JP3210637B2 (ko)
KR (1) KR100321107B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210133829A (ko) 2020-04-29 2021-11-08 아프로비에이 주식회사 기능성 마스크
KR20210156709A (ko) 2020-06-18 2021-12-27 아프로비에이 주식회사 마스크

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8244979B2 (en) * 2007-07-13 2012-08-14 International Business Machines Corporation System and method for cache-locking mechanism using translation table attributes for replacement class ID determination
US8099579B2 (en) * 2007-07-13 2012-01-17 International Business Machines Corporation System and method for cache-locking mechanism using segment table attributes for replacement class ID determination
JP4821887B2 (ja) * 2009-06-08 2011-11-24 日本電気株式会社 コヒーレンシ制御システム、コヒーレンシ制御装置及びコヒーレンシ制御方法
KR101667772B1 (ko) 2012-08-18 2016-10-19 퀄컴 테크놀로지스, 인크. 프리페칭을 갖는 변환 색인 버퍼
US9164904B2 (en) * 2012-08-28 2015-10-20 Hewlett-Packard Development Company, L.P. Accessing remote memory on a memory blade
US9292453B2 (en) * 2013-02-01 2016-03-22 International Business Machines Corporation Storing a system-absolute address (SAA) in a first level translation look-aside buffer (TLB)
WO2015051506A1 (en) * 2013-10-09 2015-04-16 Advanced Micro Devices, Inc. Enhancing lifetime of non-volatile cache by reducing intra-block write variation

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4797814A (en) * 1986-05-01 1989-01-10 International Business Machines Corporation Variable address mode cache
US5299147A (en) 1993-02-22 1994-03-29 Intergraph Corporation Decoder scheme for fully associative translation-lookaside buffer
US5996062A (en) * 1993-11-24 1999-11-30 Intergraph Corporation Method and apparatus for controlling an instruction pipeline in a data processing system
JP3169155B2 (ja) * 1993-12-22 2001-05-21 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 情報をキャッシュするための回路
US5970512A (en) * 1997-03-27 1999-10-19 International Business Machines Corporation Translation shadow array adder-decoder circuit for selecting consecutive TLB entries

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210133829A (ko) 2020-04-29 2021-11-08 아프로비에이 주식회사 기능성 마스크
KR20210156709A (ko) 2020-06-18 2021-12-27 아프로비에이 주식회사 마스크

Also Published As

Publication number Publication date
US6574698B1 (en) 2003-06-03
JP3210637B2 (ja) 2001-09-17
JPH11345168A (ja) 1999-12-14
KR19990082723A (ko) 1999-11-25

Similar Documents

Publication Publication Date Title
KR960001946B1 (ko) 우선 변환 참조버퍼
KR920005280B1 (ko) 고속 캐쉬 시스템
US5265227A (en) Parallel protection checking in an address translation look-aside buffer
US6014732A (en) Cache memory with reduced access time
JP5373173B2 (ja) アドレス変換方法及び装置
US5475827A (en) Dynamic look-aside table for multiple size pages
US6356990B1 (en) Set-associative cache memory having a built-in set prediction array
EP0036110A2 (en) Cache addressing mechanism
US5893930A (en) Predictive translation of a data address utilizing sets of associative entries stored consecutively in a translation lookaside buffer
JPH0619793A (ja) キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル
JPH0315211B2 (ko)
US6473835B2 (en) Partition of on-chip memory buffer for cache
US10606762B2 (en) Sharing virtual and real translations in a virtual cache
CA1180454A (en) Microinstruction substitution mechanism in a control store
JP2020523678A (ja) 論理ディレクトリを使用したキャッシュ構造
US6044447A (en) Method and apparatus for communicating translation command information in a multithreaded environment
KR100321107B1 (ko) 데이타 프로세싱 시스템 내의 캐쉬 메모리를 억세싱하기 위한 방법 및 시스템
KR920001282B1 (ko) 버퍼메모리 제어장치
US6385696B1 (en) Embedded cache with way size bigger than page size
US5341485A (en) Multiple virtual address translation per computer cycle
US7181590B2 (en) Method for page sharing in a processor with multiple threads and pre-validated caches
EP0486154B1 (en) Method of operating a virtual memory system
US5649155A (en) Cache memory accessed by continuation requests
US6134699A (en) Method and apparatus for detecting virtual address parity error for a translation lookaside buffer
US5510973A (en) Buffer storage control system

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: 20091203

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee