KR100372293B1 - 가상및물리인덱스캐시에서가상번지용캐시가능속성 - Google Patents

가상및물리인덱스캐시에서가상번지용캐시가능속성 Download PDF

Info

Publication number
KR100372293B1
KR100372293B1 KR1019960004550A KR19960004550A KR100372293B1 KR 100372293 B1 KR100372293 B1 KR 100372293B1 KR 1019960004550 A KR1019960004550 A KR 1019960004550A KR 19960004550 A KR19960004550 A KR 19960004550A KR 100372293 B1 KR100372293 B1 KR 100372293B1
Authority
KR
South Korea
Prior art keywords
virtual address
cache
virtual
level cache
data corresponding
Prior art date
Application number
KR1019960004550A
Other languages
English (en)
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 선 마이크로시스템즈 인코퍼레이티드
Application granted granted Critical
Publication of KR100372293B1 publication Critical patent/KR100372293B1/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/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

Abstract

본 발명은 다중 메모리 시스템을 가지는 처리기, 특히 가상 및 물리 인덱스 캐시를 가지는 메모리 시스템에서의 가상번지용 캐시가능 속성에 관한 것으로서, 가상 캐시의 개별적인 캐시가능 속성은 운영체계에 의해 관리되는 변환 테이블에 있는 메모리의 각 페이지에 대하여 관리되고, CV 비트는 변환 테이블 항이 인용하는 페이지에 대한 메모리 번지가 가상 인덱스 캐시에 캐시가능한지를 나타내고, 제 1 실시예에서, 가상 캐시 크기의 배수에 의해 오프셋되지 않는 두개 이상의 에일리어스가 존재할 때, 모든 에일리어스는 모든 에일리어스에 대한 CV 비트를 비표명하므로써 가상 인덱스 캐시에 캐시할 수 없게 되고, 변환 룩어사이드 버퍼(TLB)의 내용과 관련하여, 에일리어스 사이의 데이터 일관성을 보장하기 위해 어떤 소프트웨어 간섭도 필요치 않기 때문에 모든 에일리어스에 대한 변환이 동시에 TLB에 존재하고, 본 발명의 제 2 및 제 3 실시예에서, 가상 캐시 크기의 배수에 의해 오프셋되지 않는 두개 이상의 에일리어스가 존재할 때, 상기 에일리어스 중에서 하나만이 가상 캐시에 캐시가능하게 존재하고, 다른 에일리어스에 대하여, 이러한 에일리어스를 포함하는 변환 페이지에 대한 CV 비트는 비표명되고, 운영체계가 한 페이지의 CV 속성을 비표명하기 전에 가상 인덱스 내부 캐시로부터의 데이터를 플러시하는 것에 대한 책임을 가지며, 제 2 실시예는 제 1 레벨 캐시에 존재하도록 허용된 물리번지에 대한 보다 새로운 매핑을 허용하고, 반면에 제 3 실시예는 보다 새로운 에일리어스가 매핑될 때 보다 오래된 에일리어스가 제 1 레벨 캐시에 남아 있도록허용하는 것을 특징으로 한다.

Description

가상 및 물리 인덱스 캐시에서 가상번지용 캐시가능 속성
본 발명은 다중 메모리 시스템을 가지는 처리기, 특히 가상 및 물리 인덱스 캐시를 가지는 메모리 시스템에서의 가상번지용 캐시가능 속성에 관한 것이다.
다중 메모리 시스템을 사용하는 것은 참조의 국부성(locality of reference)을 이용하기 위한 일반적인 기술이다. 기본적인 사상은 적은 용량의 빠른 액세스 메모리와 큰 용량의 보다 느린 액세스 메모리를 구성하여 액세스 대부분이 적은 용량의 빠른 액세스 메모리로 향하도록 하는 것이다. 이러한 메모리체계에서의 평균 액세스 시간은 적은 용량의 메모리보다 약간 큰 정도이고, 실질적인 크기는 큰 용량의 메모리와 동일하다.
다중 메모리 시스템의 일반적인 형태는 캐시 메모리 또는 룩어사이드(lookaside) 버퍼(buffer) 메모리이다. 제 1 도에 도시된 바와 같이, 캐시 메모리 (10)는 처리기(11)와 메인 메모리(12) 사이에 위치한 비교적 적은 용량의 전용 메모리장치이다. 캐시메모리(10)는 처리기가 접속할 수 있는 메인 메모리(12)로부터의 몇개의 단어를 보존하고 있다. 캐시(10)는 메인 메모리(12)보다 빠르다. 따라서, 자주 접속된 기억장소가 캐시(10)에 존재하면, 캐시 적중율은 높아지고, 평균 메모리 액세스 시간은 적어질 것이다. 캐시(10)에 의해 수행되는방법은 처리기에 의해 최근에 사용된 여러 어휘와 유사한 어휘를 보존하는 것이다. 이러한 방법에 의해 이용되는 참조의 국부성은 짧은 시간에 걸쳐 메모리의 작은 영역에서 클러스터(cluster)하기 위한 메모리 액세스의 성질이다.
각각의 기억장소가 보다 느린 메인 메모리(12)에 저장된 보다 접속가능한 정보를 제공하는데 사용된다는 점에서, 캐시 메모리 기억장소는 여유가 있다. 따라서, 프로그래머가 인식할 수 있는 전체 접속가능한 메모리 크기는 캐시(10)로 인해 증가하지는 않는다. 오히려, 캐시(10)는 프로그래머가 인식하지 못하는 사이에 동일한 번지 공간에 있는 기억장소로의 평균 액세스 시간의 개선을 제공한다.
캐시(10)는 메인 메모리(12)보다 훨씬 적기 때문에, 다만 소수의 메인메모리 기억장소가 한번에 캐시될 수 있다. 결론적으로, 일반적인 경우에 캐시(10) 또는 캐시 라인내의 각 기억장소는 개념적으로 두가지 부분, 즉 태그 필드와 내용 필드를 가진다. 판독 또는 기록 동작이 요청될 때, 채택된 번지가 특정 캐시 라인의 태그 필드와 비교된다. 일치하는 것이 존재하면, 일치하는 태그를 포함하는 그 캐시 라인의 내용 필드가 판독되거나 기록된다. 이것을 캐시 적중이 라 하고, 메인 메모리에 액세스할 필요는 없다.
현대의 처리기는 개념적으로 물리번지공간과는 다른 가상번지공간을 지원한다. 가상번지는 처리기가 메모리 기억장소를 표현하기 위해 사용하는 레이블(label)이다. 처리기가 가상번지로 기억장소에 액세스할 수 있는 한, 처리기는 메모리 기억장소가 실제 물리 메모리에 존재하는 위치와 관련되지 않는다. 처리기 구조 지정은 지원되어야 하는 특정 가상번지공간을 정의한다. 컴퓨터 시스템을관리하는 운영체계는 가상번지공간이 물리 메모리에 어떻게 매핑되는지에 대하여 유연성을 가지고 있다. 따라서, 가상번지로부터 물리번지로 발생해야 하는 변환이 존재한다.
제 2 도는 통상의 가상-물리 변환을 나타낸다. 개념적으로 가상 및 물리 메모리는 모두 페이지로 분리된다. 예를 들면, 메모리 기억장소의 가상번지(20)는 가상 페이지 번호(21)와 페이지 오프셋 인덱스로 구성된다. 가상 페이지 번호(21)는 전용 메모리 기억장소가 어떤 메모리 페이지에 존재하는지를 나타낸다. 페이지 오프셋 인덱스(22)는 페이지 경계내에 채택된 메모리 기억장소의 위치를 나타낸다. 따라서, 페이지 오프셋 인덱스(22)는 페이지 시작과 관련한 기억장소를 나타낸다. 또한 물리 번지도 동일한 형식으로 구성된다. 물리 페이지 번호(23)과 페이지 오프셋 인덱스(24)는 물리 메모리 번지(25)를 규정한다. 협약에 의해, 가상번지 공간에 대한 대부분의 구현들은 가상 및 물리번지에 대해 동일한 방식으로 각 페이지내에 인덱스 메모리를 발생한다. 따라서, 페이지 오프셋 인덱스(22, 24)는 메모리 기억장소의 가상번지(20)과 물리번지(25)에 대해 동일하다. 그러므로, 페이지 크기가 2p이면, 메모리 기억장소의 가상번지와 대응하는 물리번지의 하위 비트 P는 동일하며, 페이지 오프셋 인덱스를 나타낸다.
가상번지(20)로부터 물리번지(22)로의 변환과정에서, 가상 페이지 오프셋(22)는 물리 페이지 오프셋(24)과 동일하기 때문에, 가상번지의 페이지 오프셋 부분은 변환할 필요가 없다. 그러나, 물리 페이지 번호(21)는 가상 페이지번호(21)과 동일하지 않으며, 따라서 가상 페이지 번호(21)는 변환되어야 한다. 통상 하드웨어(룩어사이드 버퍼)와 소프트웨어(테이블 작업)의 조합으로 구현되는 메모리 관리유닛(26)은 이러한 가상-물리 페이지 변환을 실행한다.
제 3 도는 비연상 또는 직접 매핑 캐시의 동작을 나타낸다. 직접 매핑 캐시는 적중을 검사할 캐시내의 번지를 나타내기 위해 입력 메모리 번지(31)의 하위 비트(30)를 사용한다. 따라서, 메모리 기억장소 A는 캐시내의 번지가 A 번지의 하위 k 비트(30)에 의해 표현되는 캐시라인에만 존재할 수 있다. 메모리 번지(31)를 캐시내의 하나의 특정 라인에만 캐시되도록 하는 것은 매우 중요하며, 이렇게 하므로써 연상 메모리보다 싸고 밀도가 높은 표준 랜덤 액세스 메모리(RAM)를 사용할 수 있다. 그러나, 이러한 제한은 동일한 k 하위 번지 비트(30)를 공유하는 메모리 기억 장소가 동일한 캐시 라인을 공유하는 것을 의미한다. 각 캐시 라인이 다만 하나의 메모리 기억장소의 내용의 저장을 위해 제공되면, 동일한 캐시 라인을 차지하기 위해 경쟁하기 때문에, 동일한 하위 k 번지 비트(30)를 가진 두개의 메모리 기억장소는 동시에 캐시될 수 없다. 직접 매핑 캐시의 다른 중요한 특징은 회로가 보다 간단하고 복잡하지 않으면 보다 빠르게 동작하는 경향이 있다는 것이다.
대부분의 처리기 구조 지정은 가상번지 사이의 에일리어스(alias)를 지원한다. 동일한 물리번지를 참조하는 두개의 가상번지는 서로 에일리어스이다. 주어진 메모리 기억장소내 가상번지의 하위 p 비트는 가상 페이지의 시작으로부터의 페이지 오프셋을 나타낸다. 주어진 가상번지의 페이지 오프셋 인덱스는 물리번지의 페이지 오프셋 인덱스와 동일하다. 그러므로, 두개의 번지가 서로 에일리어스이면,두개의 번지가 모두 동일한 물리번지를 참조하기 때문에 각각의 하위 p 비트는 동일해야 한다. 그러나, 두개의 에일리어스에 대한 가상 페이지 번호를 나타내는 비트는 서로 다르다.
이러한 논의를 위해, 가능한 캐시 구조는 가상 또는 물리 인덱스, 가상 또는 물리적으로 태그된, 그리고 직접 매핑 또는 세트 연상 구조이다. 가상번지를 지원하는 처리기에서, 이 처리기내의 몇개의 캐시는 가상 인덱스 직접 매핑 캐시일 수 있고, 다른 캐시들은 물리 인덱스 직접 매핑 캐시일 수 있다. 가상 인덱스 직접 매핑 캐시는 캐시 라인 매핑을 위해 가상번지를 사용하고, 물리 인덱스 직접 매핑 캐시는 캐시 라인 매핑을 물리번지를 사용한다. 따라서, 가상 인덱스 캐시에서, 캐시 라인의 수가 2k이면, 가상번지의 하위 k 비트는 그 가상번지에 대한 캐시 라인에 매핑하기 위해 사용된다.
캐시 기억장소의 수가 한 페이지의 기억장소 수와 동일하거나 적으면, 가상번지와 대응하는 물리번지의 하위 p 비트가 동일하기 때문에 가상 인덱스 캐시와 물리 인덱스 캐시 사이에는 구별이 없다. 이 경우, k가 p보다 적거나 동일할 때, 캐시 라인에 매핑하기 위해 사용된 하위 k 비트가 모두 동일하기 때문에 모든 에일리어스는 동일한 캐시 라인에 매핑될 것이다. 그러나, 캐시 크기가 2P보다 크면, 가상 페이지 비트 또는 물리 페이지 비트 중 몇개가 캐시 라인을 구동하기 위해 사용되기 때문에 가상 인덱스 캐시와 물리 인덱스 캐시는 동일한 메모리 기억장소에 대해 서로 다른 캐시 라인 매핑을 발생할 것이다. 게다가, 가상 인덱스 캐시에서,에일리어스는 동일 캐시내의 서로 다른 캐시 라인에 매핑될 것이다. 가상 인덱스 캐시에서, 페이지 크기가 캐시 크기보다 작을 때, 하나 이상의 가상 페이지 비트가 캐시 라인 매핑을 제공하기 위해 사용된다. 에일리어스의 가상 페이지가 서로 다르기 때문에, 가상번지의 가상 페이지 비트는 서로 다르다. 따라서, 캐시 라인으로 매핑하기 위해 하나 이상의 하위 가상 페이지 번호 비트가 사용되어야 하기 때문에 캐시 라인도 서로 다를 수 있다.
예를 들면, 가상 인덱스 캐시는 214라인을 가지고, 물리 페이지 크기는 다만 212이면, 따라서 어떤 주어진 물리 메모리 기억장소는 모두 서로 다른 캐시 라인에 매핑되는 4개의 에일리어스만큼 많은 것을 가진다. 2개의 비트에 표현될 수 있는 4개의 가능값이 존재하기 때문에, 에일리어스는 하위 2개의 가상 페이지 번호 비트에 의존하는 4개의 서로 다른 기억장소에 매핑될 수 있다.
2개 이상의 가상번지가 동일 물리번지에 매핑될 때, 가상번지 중 임의의 하나에 기록된 데이터는 이후 임의의 에일리어스로부터의 판독에 대하여 가시성을 가져야 한다. 모든 에일리어스가 동일 캐시 라인에 매핑되면, 가상 인덱스 캐시는 예측한대로 동작한다. 에일리어스 중 임의의 하나에 기록된 데이터는 동일 캐시 라인에 기록될 것이다. 그러나, 에일리어스가 다른 캐시 라인에 매핑되면, 상당한 데이터 불일치 문제가 발생한다. 2개의 가상 에일리어스가 가상 번지할당 캐시의 다른 캐시 라인에 매핑되면, 각 에일리어스는 독립 변수로서 동작한다. 예를 들면, X, Y가 가상번지 에일리어스이고, X로의 저장이 실행되면, Y가 캐시내에 존재하면 Y에대해 이후 판독하는 동안 그 데이터는 가시성을 가지지 않을 것이다. 게다가, Y의 값은 X로의 기록에 의해 파괴되어야 하지만 변하지 않는다. X, Y가 캐시로부터 제거되면, 이것은 각각 이들 모두가 참조하는 물리 메모리 기억장소에 기록될 것이다. 캐시가 (지속적인 기록 캐시보다는) 재기록 캐시라고 가정하면, X, Y가 모두 캐시로부터 제거된 후, 물리 메인 메모리에 존재하는 값은 어떤 가상번지가 캐시 라스트로부터 제거되는가에 의존한다. 따라서, Y가 캐시 라스트로부터 제거되면, X에 기록된 데이터는 파괴되고, Y의 스테일 데이터는 메인 메모리내 물리 기억장소를 부정확하게 차지한다.
데이터 일치를 유지하기 위해, 하나의 캐시에 하나의 에일리어스를 남겨두고 모든 가상 에일리어스를 캐시할 수 없도록 하는 종래 방식이 요구된다. 어떤 에일리어스의 참조도 제 1 또는 제 2 레벨 캐시로부터 어떤 이점도 유출해 낼 수 없고, 가장 느린 레벨의 메모리 인 메인 메모리에 액세스해야 하기 때문에 이러한 종래 방식으로 인해 심각한 성능 저하를 초래할 수 있다.
제 4 도는 캐시의 구조와 번지 변환 매커니즘을 보여준다. 운용체계는 소프트웨어 변환 테이블(40)이라 불리는 임의 데이터 구조내에 변환 정보를 유지한다. 변환 룩어사이드 버퍼는 빠른 하드웨어 변환을 제공하고, 필수적으로 크고 복잡한 소프트웨어 변환 테이블의 캐시이다. 각 캐시에는 소프트웨어 변환 테이블(40)의 독립 캐시로서 동작하는 변환 록어사이드 버퍼(TLB)(41)가 존재한다. 보다 자주 액세스되는 가상 페이지에 대해서, TLB는 1 사이클 변환을 제공한다. 용어 "TLB 적중"은 채택된 변환이 TLB 상에 나타나는 것을 의미한다. 용어 "TLB 실패"는 채택된변환이 TLB 상에 나타나지 않은 것을 의미한다.
TLB 실패에 대해 메모리 관리 유닛은 즉시 TLB 실패 처리에 대한 소프트웨어를 트랩한다. TLB 실패 조정 소프트웨어 루틴은 이용가능한 수단에 의해 TLB를 채우는 옵션을 가진다. 몇몇 메모리 관리 유닛은 제 4 도에 도시된 변환 저장 버퍼(42)와 같은 즉시 변환장치를 포함한다. 변환 저장 버퍼는 번지 변환의 제 2 레벨 캐시로 동작한다. TLB는 작고 빠르며, 소프트웨어 변환 테이블은 크고 복잡한 것이 될 수 있다. 따라서, TLB 실패 조정 운영체계 소프트웨어 루틴은 TLB 실패 후 동작하고, 가상 -물리 변환이 복원되고 처리가 계속되기 전에 상당한 수의 사이클이 발생할 수 있다.
다른 종래 방식은 하나의 가상 에일리어스가 캐시에 존재하도록 할 수 있지만, 다른 것들은 캐시와 TLB로부터 제외되도록 하는 것이 요구된다. 하나의 에일리어스를 캐시할 수 있는 상태로 유지하는 것은 모든 에일리어스를 캐시할 수 없도록 한 전술한 방식에 비하여 몇가지 이점을 제공한다. 하나의 에일리어스가 캐시할 수 있는 상태를 유지하고 있으면, 그 에일리어스에 대한 반복적인 액세스를 하므로써 그 번지에 대한 캐시와 TLB 항의 신속성으로부터 이점을 얻을 수 있다.
예를 들면, X와 Y가 에일리어스이면, X는 캐시내에 보존하고, 그 변환은 TLB내에 보존할 수 있다. 그러나, Y는 캐시할 수 없도록 해야 한다. X가 Y에 대한 어떤 참조 없이 반복적으로 참조되면, 캐시의 몇가지 이점은 보류된다. 그러나, Y가 참조되면, TLB 실패가 발생할 것이다. 정확한 동작을 보장하기 위해, Y를 캐시에 넣기 전 또는 Y의 변환을 TLB에 포함시키기 전에 운영체계는 캐시로부터 X를 제거해야 하고, TLS로부터 X의 변환을 제거해야 한다. X의 변환이 TLB로부터 제거되지 않으면, X에 대한 참조가 발성되는 다음 번에 어떤 TLB 실패도 발생하지 않을 것이다. 소프트웨어 간섭 없이 X가 다시 참조될 때, 다시 캐시에 기록되고, 인정할 수 없이 Y와 함께 존재하게 될 것이다.
캐시 가능 번지 속성의 개념은 종래 기술로 알려져 있다. 캐시 가능 번지 속성은 메모리의 한 부분으로부터의 데이터가 캐시에 위치할 수 있는지 그렇지 않은지를 나타내는 메모리의 그 부분과 연관된 논리적 행선이다. 캐시 가능 번지 속성은 통상 메모리 매핑 입력 또는 출력 기억장소의 캐시를 허용하지 않기 위해 사용된다. 대부분의 처리기 구조는 물리 번지 공간의 임의의 한 부분에 대해 매핑되는 입력/출력 장치와의 인터페이스를 지원한다. 예를 들면, 컴퓨터 시스템에서 마우스는 특정 메모리 기억장소에 매핑될 수 있다. 마우스로 인해 발생하는 것에 맞추어, 처리기는 마우스가 마치 다른 메모리 기억장소에 존재하는 것처럼 매핑되는 번지로부터 주기적으로 판독한다. 이와 마찬가지로, 처리기가 디스크 드라이브에 데이터를 기록하고자 할 때, 상기 출력장치에 의해 전용되는 특정 메모리 기억장소에 기록한다. 이러한 입력/출력 기억장소를 캐시하는 것은 허용되지 않는다. 출력장치로의 기록은 다만 처리기가 액세스할 수 있는 내부 캐시까지가 아니라 출력단말까지 전송할 목적을 가지고 있다. 이와 마찬가지로, 입력장치로부터의 판독은 입력장치의 단말에 이전에 존재했던 것의 캐시된 버젼이 아니라 입력장치로부터의 판독 그 자체에 목적이 있다.
에일리어스 제한 캐시불가성을 위반하는 에일리어스를 형성하는 방법에서의심각한 문제점은 메인 메모리에 대한 캐시불가성 액세스를 처리해야 하는 가능성에 있다. 이러한 액세스는 "비교 및 스왑"(CAS) 및 "부분저장"(PST)와 같은 많은 전용 명령을 복잡하게 한다. 캐시불가성 메인메모리에 액세스해야 한다면 이러한 명령을 적절히 동작시키는 것은 매우 어렵다. 그러므로, 최소한 물리 인덱스 캐시내에서 메인 메모리가 항상 캐시될 수 있는 방법을 개발하는 것이 매우 효과가 있다. 이러한 방법에 의한 성능은 부가적인 것이다.
캐시가능 번지 속성은 메모리의 특정 페이지로부터의 데이터가 캐시내에 존재하는지 그렇지 않은지를 나타낸다. 가상 인덱스 캐시를 통해 2개의 가상번지 에일리어스가 서로 다른 캐시 라인에 매핑될 수 있다. 결론적으로, 한 에일리어스에 대한 저장은 다른 에일리어스에 대해 캐시된 데이터에 영향을 미치지 않는다. 모든 에일리어스를 가상 인덱스 캐시의 동일한 캐시 라인에 강제로 매핑하기 위해, 운영체계는 가상 캐시 크기의 배수로 가상번지 에일리어스를 오프셋하려고 한다. 전술한 바와 같이 주어지면, 모든 에일리어스는 동일한 캐시 라인에 매핑될 것이다. 그러나, 운영체계가 가상 캐시 크기의 배수로 에일리어스를 오프셋할 수 없는 경우가 있다.
본 발명에서, 개별적인 가상 캐시의 캐시가능 속성 비트(CV)는 운영체계에 의해 유지되는 변환 테이블에 메모리의 각 페이지에 대해 유지된다. CV 비트는 변환 테이블 항이 참조하는 페이지상의 메모리 번지가 가상 인덱스 캐시에서 캐시가능한지 그렇지 않은지를 나타낸다.
본 발명의 제 1 실시예에서, 가상 캐시 크기의 배수로 오프셋되지 않는 2개이상의 에일리어스가 존재할 때, 모든 에일리어스는 모든 에일리어스에 대한 CV 비트를 비표명하므로써 가상 인덱스 캐시에 캐시될 수 없다.
변환 룩어사이드 버퍼(TLB)의 내용과 관련하여, 모든 에일리어스에 대한 변환은 TLB내에 동시에 존재한다. TLB 실패로 인해 소프트웨어에 의한 트랩이 발생한다. 본 발명에 따른 에일리어스 사이의 데이터 일치를 보장하기 위해 요청되는 소프트웨어 간섭이 존재하지 않기 때문에, 동일한 물리 페이지에 대한 몇개의 매핑이 TLB내에 동시에 존재한다.
본 발명의 제 2 실시예 및 제 3 실시예에서, 가상 캐시 크기의 배수로 오프셋되지 않는 2개이상의 에일리어스가 존재할 때, 상기 에일리어스중 다만 하나의 에일리어스가 가상 캐시내에 캐시가능하게 존재한다. 다른 에일리어스에 대해서, 이러한 에일리어스를 포함하는 변환 페이지에 대한 가상 인덱스 캐시의 캐시가능(CV) 비트는 비표명된다. 운영체계는 페이지에 대한 CV 속성을 비표명하기 전에 가상 인덱스 내부 캐시로부터의 데이터를 플러시하는 것에 대한 책임이 있다. 본 발명은 제 2 태양으로 물리번지에 대한 보다 새로운 매핑이 제 1 레벨 캐시에 존재하도록 할 수 있다. 본 발명의 제 3 실시예로 새로운 에일리어스가 매핑될 때보다 오래된 에일리어스를 제 1 레벨 캐시에 존재하도록 할 수 있다.
캐시가능 번지 속성은 메모리의 특정 페이지로부터의 데이터가 캐시에 위치할 수 있는지 그렇지 않은지를 나타낸다. 종래 기술에서, 캐시가능번지 속성은 메모리 매핑 입력/출력 기억장소가 캐시되지 뭇하도록 하는 데 사용되었다. 가상 인덱스 캐시로 2개의 가상번지 에일리어스가 서로 다른 캐시 라인에 매핑되는 것이가능하다. 결론적으로, 하나의 에일리어스의 저장은 다른 에일리어스에 대하여 캐시된 데이터에 영향을 미치지 않는다.
제 3 도는 직접 매핑 캐시의 동작을 보여준다. 특정 메모리 번지에 대하여 캐시를 검색할 때, 하위 번지 비트(30)는 캐시 라인 매핑을 위해 사용된다. 하위 번지 비트(30)에 의해 표시되는 캐시 라인(33)에서 태그(32)는 메모리 번지(31)의 상위 번지 비트(34)와 비교된다. 태그(32)와 상위 비트(34)가 일치하면, 캐시 적중이 발생한다. 가상 인덱스 캐시에서, 가상번지 또는 물리번지는 태그(32)를 제작하기 위해 단축된다. 가상번지가 태그(32)를 발생하면, 캐시는 가상적으로 태그되고, 물리번지가 태그(32)를 결정하면, 캐시는 물리적으로 태그된다.
모든 에일리어스를 강제로 가상 인덱스 캐시의 동일한 캐시 라인에 매핑하기 위하여, 운영체계는 가상번지 에일리어스를 가상 캐시 크기의 배수로 오프셋하려 한다. 전술한 바와 같이 주어지면, 이 때 모든 에일리어스는 동일한 캐시 라인에 매핑될 것이다. 가상 인덱스 및 물리적으로 태그된 캐시에서, 모든 에일리어스가 동일한 캐시 라인에 매핑되면, 이때 모든 에일리어스는 상기 에일리어스 중 하나에 대한 저장이 발생할 때마다 캐시내에서 자동적으로 갱신될 것이다. 모든 에일리어스가 동일한 물리 번지를 가지기 때문에, 모든 에일리어스에 대한 물리적인 태그는 동일하다. 따라서, 에일리어스가 동일한 캐시 라인에 매핑되면, 에일리어스 중 하나가 캐시되는 한 에일리어스 중 하나에 대한 캐시 적중이 발생할 것이다.
이와는 반대로, 가상 인덱스 캐시가 가상적으로 태그되면, 가상 캐시크기의 배수로 가상번지 에일리어스를 오프셋하므로써 데이터 불일치 문제가 방지될 것이다. 모든 에일리어스에 대한 태그가 서로 다르게 될 것이고, 따라서 에일리어스 중 하나가 캐시되면, 다른 에일리어스 중 어느것을 참조해도 캐시는 실패한다. 이전에 캐시된 기억장소는 메모리로 다시 기록될 것이고, 현재의 에일리어스가 캐시 라인에 위치할 것이다. 모든 에일리어스에 대해 다만 하나의 라인이 존재하기 때문에, 하나의 캐시에 2개가 개별적으로 존재할 수 없다. 따라서, 에일리어스 규칙에 따라 동작하던 동일한 캐시 라인에 접촉할지라도, 가상 인덱스 및 가상적으로 태그된 캐시 구조에서, 2개의 에일리어스 X와 Y는 캐시 적중으로서 서로를 참조하지 뭇한다. 다시 말하면, 태그가 가상이기 때문에, X와 Y가 동일하다고 말하기는 어렵다. 이러한 구조를 적절히 조정하는 것은 매우 복잡하고, 종증 물리번지에 기초를 둔 2세트의 캐시 태그를 필요로 한다.
그러나, 운영체계가 가상 캐시 크기의 배수로 오프셋할 수 없는 경우가 존재한다. 종래 기술에 의한 시스템에서 , 2개의 에일리어스가 서로 다른 캐시 라인에 매핑되기 때문에, 이것은 가상 인덱스 캐시내에서 오류를 발생한다. 다른 에일리어스도 또한 캐시되면, 하나의 에일리어스에 대한 저장은 다른 에일리어스에서 갱신되지 않을 것이다.
본 발명에서, 제 5 도에 도시된 각각의 가상 캐시에서 캐시가능 속성비트(CV)(50)는 운영체계에 의해 유지되는 변환 테이블내 메모리의 각 페이지에 대하여 유지된다. 제 5 도는 작은 변환 룩어사이드 버퍼를 나타낸다. CV 비트(50)는 변환 테이블 항이 참조하는 페이지상의 메모리 번지가 가상 인덱스 캐시에 캐시가능한지 그렇지 않는지를 나타낸다. 부가적으로, 종래 기술에 의한 시스템에서, 물리 캐시에서 캐시가능 속성비트(CP)(51)는 캐시가 가상 인덱스 캐시인지 그렇지 않으면 물리 인덱스 캐시인지에 관계없이 상기 페이지로부터의 데이터가 어떤 형태의 캐시에도 캐시가능한지 그렇지 않은지를 나타낸다.
본 발명의 제 1 실시예에서, 가상 캐시 크기의 배수에 의해 오프셋되지 않는 2개 이상의 에일리어스가 존재할 때, 모든 에일리어스는 가상 인덱스 캐시에 캐시할 수 없다. 제 40 도는 통상적인 캐시 구조에 대한 간단한 블럭도를 포함한다. 작은 내부 캐시(43)는 가상 인덱스이다. 보다 큰 외부 캐시(44)는 물리 인덱스이다. 가상 인덱스 내부 캐시(43)에 에일리어스를 캐시하지 못하도록 하므로써, 데이터 불일치 문제가 방지된다. 각 에일리어스는 동일한 물리번지에 매핑된다. 그러므로, 각 에일리어스는 또한 물리 인덱스 외부 캐시(44)의 동일한 캐시 라인에 매핑된다. 외부 캐시(44)가 또한 물리적으로 태그되고, 물리번지가 외부 캐시(44)에 캐시되면, 주어진 물리번지에 대한 다중 에일리어스 중 어느 것을 참조해도 외부 캐시 적중이 발생할 것이다. 외부 캐시(44)가 가상적으로 태그되고, 다중 에일리어스 중 하나가 캐시되면, 각각의 에일리어스에 대한 가상 태그가 반드시 다르게 되기 때문에 다른 에일리어스 중 어느 것을 참조해도 외부 캐시 실패가 발생할 것이다. 어떤 경우에, 2개의 캐시라인이 동일한 물리번지에 매핑되는 데이터를 보존하지 않기 때문에 데이터 불일치 문제는 해결된다.
운영체계 소프트웨어는 소프트웨어 변환 테이블(40)에 변환 정보를 유지한다. 운영체계는 메모리의 각 페이지에 대한 캐시가능 속성을 유지한다. 따라서, 각 페이지는 물리 인덱스 캐시의 캐시가능 속성(CP)과 가상 인덱스 캐시의 캐시가능속성(CV)을 가진다. 모든 페이지는 많은 개개의 메모리 기억장소를 가진다. 만약 p 비트가 한 번지에 페이지 오프셋을 명시하기 위해 요청되면, 이 때 각 페이지는 2p개의 기억장소를 가진다. 두개의 가상 페이지가 동일한 물리 페이지에 매핑되면, 상기 두개의 가상 페이지내의 각 번지는 다른 페이지에 대해 하나의 에일리어스를 가진다. 따라서, 에일리어싱은 페이지 근거에 의해 페이지상에서 실행된다. 두개의 가상 페이지가 에일리어스이면, 전체 페이지의 CV 속성은 비표명된다. 한 페이지로부터의 몇개의 데이터가 오프셋 규칙을 위반하는 운영체계의 매핑에 앞서 가상 캐시에 존재하면, 이 때 가상 캐시에 캐시불가 페이지를 표현하기 전에 가상 캐시로부터의 데이터를 플러시하는 것은 운영체계의 책임이다.
내부 캐시(43)는 최소한 외부 캐시 레벨(44)에 대한 지속적인 기록 캐시이다. 따라서, 내부 캐시(43)로 기록되는 데이터는 또한 외부 캐시(44)로 기록된다. 그러므로, 외부 캐시(44)는 내부 캐시(43)의 모든 것에 대한 갱신판을 포함한다. 한 페이지에 대한 캐시가능 속성이 변경되어 가상 페이지가 더이상 가상 인덱스 캐시에 캐시할 수 없을 때(CV=0), 물리 인덱스 캐시(44)에서 동일한 데이터를 여전히 이용할 수 있기 때문에 가상 인덱스 내부 캐시 (43)으로부터 플러시된 데이터는 데이터 보존에 역효과를 끼치지 않는다.
변환 룩어사이드 버퍼(TLB)(41)의 내용에 관한 본 발명에 따르면, 모든 에일리어스는 TLB(41)에 동시에 존재한다. TLB 실패로 인해 소프트웨어 트랩이 발생한다. 소프트웨어 간섭 없이 하드웨어가 부정확하게 실행할 수 있기 때문에, TLB(41)로부터 항을 제거한 종래의 방법은 소프트웨어 트랩을 유발한다. 본 발명에 실시예에 따른 에일리어스 사이의 데이터 일관성을 보장하기 위한 어떤 소프트웨어 간섭이 요청되지 않기 때문에, 동일한 물리 페이지에 대한 몇개의 매핑이 TLB(41)에 동시에 존재할 수 있다. 이것은 본 발명의 매우 큰 이점을 제공한다. 몇개의 에일리어스 가상-물리번지 변환이 TLB(41)에 동시에 존재할 수 있기 때문에, 에일리어스가 TLB(41)에 존재하면 TLB 실패 조정 소프트웨어는 어떤 에일리어스도 참조하지 않는다. 따라서, 어떤 에일리어스에 대한 메모리 참조의 평균 액세스 시간은 에일리어스가 액세스될 때마다 TLB 실패 조정이 반복적으로 행해지면 요청되는 액세스 시간에 비하여 작게 유지된다. 게다가, 어떤 에일리어스에 대하여 채택된 데이터가 물리 인덱스 제 2 레벨캐시(44)에서 이용하게 되기 때문에, 느린 메인 메모리에 액세스하기 위해 필요한 긴 지연이 발생되지 않는다.
제 6 도는 본 발명의 제 1 실시예에 따른 운영체계 책임을 나타낸다. 새로운 가상-물리번지 에일리어스 매핑 (제 6 도에서 NEWALIAS)이 소프트웨어 변환 테이블에 부가될 때마다, 운영체계 소프트웨어는 스텝(60)에서 시작한다. 검사(61)에서, 운영체계는 에일리어스가 다수의 가상 인덱스 캐시 크기에 의해 오프셋되는 것을 규정하는 에일리어스 제한 지침에 대한 위반 여부를 결정한다. 에일리어스가 적절히 오프셋되면, 스텝(62)에서 운영체계는 TLB와 소프트웨어 변환 테이블의 에일리어스에 대한 CV 비트 및 CP 비트를 표명하고, 운영체계의 작업은 스텝(63)에서 완료된다. 그러나, 에일리어스 제한을 위반하면, 스텝(64)에서 운영체계는 이전에 존재한 에일리어스(제 6도의 OLDALIAS)를 제 4도의 제 1 레벨 가상 인덱스 캐시(43)로부터 플러시하거나 제거한다. 스텝(65)에서 상기 두개의 에일리어스에 대한 CP 속성 비트가 표명된 상태를 유지하는 동안 상기 두개의 에일리어스에 대한 CV 속성 비트는 비표명된다. CP 비트가 표명되기 때문에, 상기 두개의 에일리어스는 제 2 레벨 물리 인덱스 캐시(44)에 (동일 라인으로) 캐시 가능하다. 스텝(65) 후, 상기 에일리어스 중에서 하나가 다시 매핑될 때까지 처리기는 소프트웨어 간섭 없이 동작할 수 있다. 검사(66)에서, 운영체계는 상기 에일리어스 중에서 하나가 다른 가상번지로 다시 매핑되거나 가상번지공간으로부터 제거되는 시기를 계속 추적한다. 상기 매핑 중에서 하나가 변화할 때, 소프트웨어 루틴은 스텝(60)에서 재시작된다.
본 발명의 제 2 실시예에서, 가상 캐시 크기의 배수에 의해 오프셋되지 않는 두개 이상의 에일리어스가 존재할 대, 이러한 에일리어스 중에서 하나만이 가상 캐시에 캐시할 수 있다. 다른 에일리어스에 대하여, 이러한 에일리어스의 변환 페이지에 대한 캐시가능 가상 인덱스 캐시 (CV) 비트는 비표명된다. 운영체계는 한 페이지에 대한 CV 속성을 비표명하기 전에 가상 인덱스 내부 캐시(43)로부터 데이터를 플러시하는 것에 대한 책임을 가진다.
상기 실시예에서, 운영체계는 자신의 정상적인 의무를 넘어서는 하나의 책임을 가진다. X와 Y가 가상번지와 에일리어스이며, 따라서 X와 Y가 동일한 물리번지에 매핑되는 경우를 생각하자. 에일리어스가 가상 인덱스 캐시 크기의 배수에 의해 오프셋되는 운영체계 지침이 몇가지 이유로 수반될 수 없다고 가정하자. X는 가상 인덱스 캐시에 유지된다. Y에 대한 TLB 매핑은 Y의 변환 테이블 항에 대한 CV 비트를 비표명하므로써 변경되며, 따라서 Y는 가상 캐시에 캐시할 수 없다. 따라서, X는 가상 인덱스 캐시(43)에 있고, 반면에 Y는 물리 인덱스 외부 캐시(44)로 이송된다. 이제 Y에 대한 저장이 발생한다. 이 후, X로부터의 로드가 실행된다. X와 Y가 동일한 메모리 변수를 인용하기 때문에, 가상 인덱스 캐시(43)의 X로부터의 로드는 물리 인덱스 제 2 레벨 캐시(44)의 Y에 저장된 데이터를 복귀해야 한다. 그러나, 제 1 레벨 캐시가 제 2 레벨 캐시(44)로부터의 정보로 갱신되도록 하는 하드웨어 매커니즘은 존재하지 않는다. 따라서, 운영체계는 이러한 것이 발생하지 못하도록 할 책임이 있다. 이러한 운영체계 복잡성을 부가시키므로써 얻어지는 이점은 X에 대한 액세스가 고속의 제 1 레벨 캐시 이용가능성의 이점을 가지고 있다는 것이다.
본 발명의 제 2 실시예에서, 물리번지에 대한 가장 최근의 매핑은 제 1 레벨 캐시에 남아있도록 허용된다. 이를 위해서는 제 1 레벨 캐시로부터의 보다 오래된 에일리어스에 대한 플러시가 필요하다. 제 7 도는 본 발명의 제 2 실시예에 따른 운영체계의 책임을 나타낸다. 운영체계가 새로운 에일리어스(제 7 도의 NEWALIAS)를 매핑할 때, 소프트웨어 루틴은 스텝(70)에서 발생된다. 검사(71)는 모든 에일리어스가 가상 인덱스 내부 캐시 크기의 배수에 의해 오프셋되는 지침이 위반되는지를 결정한다. 상기 지침을 위반하지 않으면, OLDALIAS와 NEWALIAS는 가상 인덱스 캐시에 캐시할 수 있다. 따라서, 스텝(72)에서, TLB와 다른 레벨의 다중 레벨 변환 테이블은 갱신되며, 따라서 상기 두개의 에일리어스에 대한 CP와 CV 비트가 표명되고, 운영체계 루틴은 종료(73)되며, 따라서 상기 두개의 에일리어스에 대한 이후의 액세스는 소프트웨어 간섭 없이 실행된다. 운영체계 지침이 위반되면, 스텝(74)에서 운영체계는 제 1 레벨 가상 인덱스 캐시로부터 OLDALIAS를 플러시한다. 이 때스텝(75)는 OLDALIAS에 대한 CV 비트를 비표명하고, 따라서 NEWALIAS는 제 1 레벨 캐시(43)에 존재할 수 있고, 반면에 OLDALIAS는 제 2 레벨 캐시(44)에 대기해야 한다. 검사(76)는 제 2 레벨 캐시 (44)의 OLOALIAS에 대한 저장이 디스패치되는지를 결정한다. 하드웨어 지원 없이 상기 검사(76)를 실행하기는 어렵다. 따라서, 이것을 구현하기 위한 대안적인 방법을 W(기록가능) 비트로 인용되는 공통 TLB 속성을 사용하는 것이다. OLDALIAS에 대한 W 비트를 비표명하므로써, 운영체계는 저장이 OLDALIAS에 발생하는 것을 방지하기 위해 적절한 페이지 매핑으로 상기 비트를 조정할 수 있다. OLDALIAS에 대한 저장이 발생하면, W 비트가 비표명되기 때문에 소프트웨어 트랩이 취해지고, 운영체계는 적절한 플러시와 속성 조정을 실행한다. 저장이 OLDALIAS에 디스패치되면, 제 1 레벨 캐시(43)의 NEWALIAS에 대한 데이터는 오래된 것이고, 따라서 스텝(77)에서 제 1 레벨 캐시 (43)로부터 플러시된다. 스텝(78)에서, NEWALIAS 페이지에 대한 CV 비트가 변환 테이블과 TLB에 비표명되고, OLDALIAS 페이지에 대한 CV 비트가 변환 테이블과 TLB에 표명된다. 이 때문에 NEWALIAS가 제 2 레벨 캐시(44)로 이송되어 있는 동안 OLDALIAS는 제 1 레벨 캐시(43)에 존재하게 된다. 검사(79)가 제 2 레벨 캐시(44)의 NEWALIAS에 대한 저장이 디스패치되면, 흐름은 스텝(74)로 복귀하고, 여기서 OLDALIAS와 NEWALIAS는 제 1 및 제 2 레벨 캐시에서 위치를 교환한다. 검사(79)가 NEWALIAS에 대한 저장을 검출하지 못하고, 검사(80)가 두개의 에일리어스 중에서 어느 하나에 대해 다시 매핑하는 것을 검출하지 못하는 한, 두개의 에일리어스에 대한 변환이 TLB(41)에 존재하기 때문에 두개의 에일리어스 중에서 어느 하나에 대한 액세스는 소프트웨어간섭없이 처리할 수 있다. 검사(80)이 두개의 에일리어스 중에서 어느 하나에 대한 새로운 매핑을 검출하면, 루틴은 스텝(70)에서 재시작된다. 이와 마찬가지로, 검사(81)가 두개의 에일리어스 중에서 어느 하나에 대한 매핑을 검출하면, 루틴은 단계(70)에서 재시작된다.
본 발명의 제 3 실시예는 NEWALIAS가 매핑될 때 OLDALIAS가 제 1 레벨 캐시에 존재하도록 한다. 제 8도는 제 3 실시예에 대한 운영체계 흐름을 보여준다. 상기 제 3 실시예에 따른 운영체계 소프트웨어의 흐름은 제 2 실시예의 흐름과 유사하다. 사실, 제 7 도는 다음과 같은 변화에 의해 제 8 도로 변형된다. 스텝(78)과 스텝(75)의 위치는 상호교환된다. 스텝(77)과 스텝(74)는 상호교환된다. 스텝(77)의 새로운 위치(제 7 도에 도시된 스텝(74)의 위치)는 검사(71)의 예(YES) 분기가 스텝(78)의 새로운 위치(제 7 도에 도시된 스텝(75)의 위치)로 직접 넘어가도록 이동된다. 그리고, 검사(76)와 검사(79)는 상호교환된다. 제 2 실시예에 대한 제 3 실시예의 근본적인 차이점은 보다 새로운 에일리어스에 대한 저장이 실행될 때까지 보다 오래된 에일리어스가 제 1 레벨 캐시(43)에 존재한다는 것이다.
제 2 또는 제 3 실시예 중 어느 하나에서, 제 2 레벨 캐시(44)의 에일리어스에 대한 저장에 직면하여 데이터 일치성을 유지하는 이유 외의 다른 부가적인 이유 때문에, 운영체계는 제 1 레벨 캐시(43)의 보다 오래된 에일리어스와 보다 새로운 에일리어스를 상호교환하기 위해 선택할 수 있다. 정확한 프로그램 실행을 부여하기 위해, 제 2 레벨 캐시(44)의 에일리어스에 대한 저장이 실행될 때마다 에일리어스에 대한 CV 속성의 상호교환이 필요하다. 그러나, 운영체계는 다른 상황에서도역시 CV 속성을 상호교환하므로써 실생속도를 높일 수 있다. 제 7 도의 흐름도를 수반하므로써 정확한 프로그램 실행이 부여될지라도, 운영체계 소프트웨어는 OLDALIAS에 대한 저장이 발생하기 전에 OLDALIAS를 제 1 레벨 캐시로 교환하는 것을 선택할지도 모른다. 예를 들면, 이것은 가까운 미래에 OLDALIAS가 반복적으로 로드되는 것을 운영체계가 예측하는지에 대한 신중한 결정이 될 것이고, 따라서 고속의 제 1 레벨 캐시를 이용하므로써 실제 실행 시간을 줄일 수 있다. 이 경우에 제 7도에 도시된 검사(76)와 검사(79) 및 제 8 도에 도시된 대응하는 검사는 취해야할 분기를 결정하기 전에 (단지 저장이 디스패치되는지 또는 그렇지 않은지에 대한 정보 외의) 부가적인 정보를 고려할 것이다. 첨부된 특허청구범위는 이러한 명백한 변형물을 보호하기 위한 것이다.
본 발명에 따른 방법과 장치가 실시예를 동해 기술되어 있지만, 해당 기술에 숙련된 자는 본 발명을 첨부된 특허청구범위의 취지 및 범위내에서 수정 및 변형할 수 있다는 것을 인식할 것이다. 그러므로, 명세서 및 도면은 제한적인 의미 보다는 예시적 인 의미로 간주되어야 할 것이다.
제 1 도는 처리기, 캐시 및 메인 메모리 사이의 관계를 보여주는 개략적인 블럭도;
제 2 도는 가상번지로부터 대응하는 물리번지로의 변환을 나타내는 도면;
제 3 도는 직접 매핑 캐시의 동작을 나타내는 도면;
제 4 도는 종래 기술과 본 발명에 따른 메모리 구조의 기억장소와 조직 및 번지 변환 테이블 구조를 보여주는 개략적인 블럭도;
제 5 도는 본 발명에 따른 소용량의 변환 룩어사이드 버퍼의 개략도;
제 6 도는 본 발명의 제 1 실시예에 따른 운영체계 소프트웨어 루틴의 동작을 나타내는 흐름도;
제 7 도는 본 발명의 제 2 실시예에 따른 운영체계 소프트웨어 루틴의 동작을 나타내는 흐름도; 및
제 8 도는 본 발명의 제 3 실시예에 따른 운영체계 소프트웨어 루틴의 동작을 나타내는 흐름도이다.
* 도면의 주요 부분에 대한 부호의 설명
40 : 소프트웨어 변환 테이블 41 : 변환 룩어사이드 버퍼
42 : 변환 저장 버퍼 43 : 가상 인덱스 내부 캐시
44 : 물리 인덱스 외부 캐시 50 : 캐시가능 속성 비트(CV)
51 : 캐시가능 속성 비트(CP)

Claims (8)

  1. 제 1 레벨 캐시의 제 1 가상 번지에 대응하는 모든 데이터를 무효화하는 단계,
    상기 제 1 레벨 캐시의 상기 제 1 가상 번지에 대응하는 데이터의 캐싱(caching)을 디세이블(disable)하는 단계,
    제 2 레벨 캐시의 제 1 가상 번지에 대응하는 데이터의 캐싱을 이네이블(enable)하는 단계,
    상기 제 2 레벨 캐시의 제 2 가상 번지에 대응하는 데이터의 캐싱을 이네이블하는 단계,
    상기 제 1 가상 번지에 대한 저장이 발생할 때까지 상기 제 1 레벨 캐시의 제 2 가상 번지에 대응하는 데이터의 캐싱을 이네이블하는 단계,
    상기 제 1 가상 번지에 대한 저장이 발생한 후에 상기 제 1 레벨 캐시의 제 2 가상 번지에 대응하는 모든 데이터를 무효화하는 단계,
    상기 제 1 가상 번지에 대한 저장이 발생한 후에 상기 제 1 레벨 캐시의 상기 제 2 가상 번지에 대응하는 데이터의 캐싱을 디세이블하는 단계, 및
    상기 제 1 가상 번지에 대한 저장이 발생한 후에 상기 제 1 레벨 캐시의 제 1 가상 번지에 대응하는 데이터의 캐싱을 이네이블하는 단계를 포함하고,
    메모리 시스템이 제 1 레벨 가상 인덱스 캐시와 제 2 레벨 물리 인덱스 캐시를 갖는 것을 특징으로 하는 물리 번지로 매핑(mapping)하는 제 1 가상 번지를 가지는 상기 메모리 시스템에 상기 물리 번지로 매핑하는 제 2 가상 번지를 수용하는 방법.
  2. 제 1 레벨 캐시의 게 1기상 번지에 대응하는 모든 데이터를 무효화하는 단계,
    상기 제 1 레벨 캐시의 상기 제 1 가상 번지에 대응하는 데이터의 캐싱을 디세이블하는 단계,
    제 2 레벨 캐시의 제 1 가상 번지에 대응하는 데이터의 캐싱을 이네이블하는 단계, 및
    상기 제 2 레벨 캐시의 제 2 가상 번지에 대응하는 데이터의 캐싱을 이네이블하는 단계를 포함하고,
    상기 제 1 레벨 캐시의 제 1 가상 번지에 대응하는 데이터의 캐싱을 디세이블하는 단계는 상기 제 1 가상 번지의 번역 테이블 엔트리에 대한 가상 인덱스 캐시의 캐시 가능 속성 비트를 비표명함((deasserting)으로써 이루어지고,
    상기 제 2 레벨 캐시의 제 1 가상 번지에 대응하는 데이터의 캐싱을 이네이블하는 단계는 상기 제 1 가상 번지의 번역 테이블 엔트리에 대한 물리 인덱스 캐시의 캐시 가능 속성 비트를 표명함(asserting)으로써 이루어지고,
    상기 제 2 레벨 캐시의 제 2 가상 번지에 대응하는 데이터의 캐싱을 이네이블하는 단계는 상기 제 2 가상 번지의 번역 테이블 엔트리에 대한 물리 인덱스 캐시의 캐시 가능 속성 비트를 표명함으로씨 이루어지며,
    메모리 시스템이 제 1 레벨 가상 인덱스 캐시와 제 2 레벨 물리 인덱스 캐시를 갖는 것을 특징으로 하는 물리 번지로 매핑하는 제 1 가상 번지를 가지는 상기 메모리 시스템에 상기 물리 번지로 매핑하는 제 2 가상 번지를 수용하는 방법.
  3. 제 1 레벨 캐시의 제 1 가상 번지에 대응하는 모든 데이터를 무효화하는 제 1 레벨 캐시 무효화 회로,
    상기 제 1 레벨 캐시의 제 1 가상 번지에 대응하는 데이터의 캐싱을 디세이블하는 제 1 레벨 캐시 디세이블 회로,
    제 2 레벨 캐시의 제 1 가상 번지에 대응하는 데이터의 캐싱을 이네이블하고, 상기 제 2 레벨 캐시의 제 2 가상 번지에 대응하는 데이터의 캐싱을 이네이블하는 제 2 레벨 캐시 이네이블 회로, 및
    상기 제 1 가상 번지에 대한 저장이 발생할 때까지 상기 제 1 레벨 캐시의 제 2 가상 번지에 대응하는 데이터의 캐싱을 이네이블하는 제 1 레벨 캐시 이네이블 회로를 포함하고,
    상기 제 1 레벨 캐시 무효화 회로는 또한 상기 제 1 가상 번지에 대한 저장이 발생한 후에 상기 제 1 레벨 캐시의 제 2 가상 번지에 대응하는 모든 데이터를 무효화하고,
    상기 제 1 레벨 캐시 디세이블 회로는 또한 상기 제 1 가상 번지에 대한 저장이 발생한 후에 상기 제 1 레벨 개시의 제 2 가상 번지에 대응하는 데이터의 캐싱을 디세이블하고,
    상기 제 1 레벨 캐시 이네이블 회로는 또한 상기 제 1 가상 번지에 대한 저장이 발생한 후에 상기 제 1 레벨 캐시의 제 1 가상 번지에 대응하는 데이터의 캐싱을 이네이블하며,
    메모리 시스템이 제 1 레벨 가상 인덱스 캐시와 제 2 레벨 물리 인덱스 캐시를 갖는 것을 특징으로 하는 물리 번지로 매핑하는 제 1 가상 번지를 가지는 상기 메모리 시스템에 상기 물리 번지로 매핑하는 제 2 가상 번지를 수용하는 장치.
  4. 제 1 레벨 캐시의 제 1 가상 번지에 대응하는 모든 데이터를 무효화하는 제 1 레벨 캐시 무효화 회로,
    상기 제 1 레벨 캐시의 상기 제 1 가상 번지에 대응하는 데이터의 캐싱을 디세이블하는 제 1 레벨 캐시 디세이블 회로, 및
    제 2 레벨 캐시의 제 1 가상 번지에 대응하는 데이터의 캐싱을 이네이블하고, 상기 제 2 레벨 캐시의 제 2 가상 번지에 대응하는 데이터의 캐싱을 이네이블하는 제 2 레벨 캐시 이네이블 회로를 포함하고,
    상기 제 1 레벨 캐시 디세이블 회로는 상기 제 1 가상 번지의 번역 테이블 엔트리에 대한 가상 인덱스 캐시의 캐시 가능 속성 비트를 비표명함으로써 상기 제 1 레벨 캐시의 제 1 가상 번지에 대응하는 데이터의 캐싱을 디세이블하고,
    상기 제 2 레벨 캐시 이네이블 회로는 상기 제 1 가상 번지의 번역 테이블 엔트리에 대한 물리 인덱스 캐시의 캐시 가능 속성 비트를 표명함으로써 상기 제 2 레벨 캐시의 제 1 가상 번지에 대응하는 데이터의 캐싱을 이네이블하고,
    상기 제 2 레벨 캐시 이네이블 회로는 상기 제 2 가상 번지의 번역 테이블 엔트리에 대한 물리 인덱스 캐시의 캐시 가능 속성 비트를 표명함으로써 상기 제 2 레벨 캐시의 제 2 가상 번지에 대응하는 데이터의 캐싱을 이네이블하며,
    메모리 시스템이 제 1 레벨 가상 인덱스 캐시와 제 2 레벨 물리 인덱스 캐시를 갖는 것을 특징으로 하는 물리 번지로 매핑하는 제 1 가상 번지를 가지는 상기 메모리 시스템에 상기 물리 번지로 매핑하는 제 2 가상 번지를 수용하는 장치.
  5. 제 1 레벨 캐시의 제 2 가상 번지에 대응하는 데이터의 캐싱을 디세이블하는 단계,
    제 2 레벨 캐시의 제 1 가상 번지에 대응하는 데이터의 캐싱을 이네이블하는 단계,
    상기 제 2 레벨 캐시의 제 2 가상 번지에 대응하는 데이터의 캐싱을 이네이블하는 단계,
    상기 제 2 가상 번지에 대한 저장이 발생할 때까지 상기 제 1 레벨 캐시의 제 1 가상 번지에 대응하는 데이터의 캐싱을 이네이블하는 단계,
    상기 제 2 가상 번지에 대한 저장이 발생한 후에 상기 제 1 레벨 캐시의 제 1 가상 번지에 대응하는 모든 데이터를 무효화하는 단계,
    상기 제 2 가상 번지에 대한 저장이 발생한 후에 상기 제 1 레벨 캐시의 제 1 가상 번지에 대응하는 데이터의 캐싱을 디세이블하는 단계, 및
    상기 제 2 가상 번지에 대한 저장이 발생한 후에 상기 제 1 레벨 캐시의 제2 가상 번지에 대응하는 데이터의 캐싱을 이네이블하는 단계를 포함하고,
    메모리 시스템이 제 1 레벨 가상 인덱스 캐시와 제 2 레벨 물리 인덱스 캐시를 갖는 것을 특징으로 하는 물리 번지로 매핑하는 제 1 가상 번지를 가지는 상기 메모리 시스템에 상기 물리 번지로 매핑하는 제 2 가상 번지를 수용하는 방법.
  6. 제 1 레벨 캐시의 제 2 가상 번지에 대응하는 데이터의 캐싱을 디세이블하는 단계,
    제 2 레벨 캐시의 제 1 가상 번지에 대응하는 데이터의 캐싱을 이네이블하는 단계, 및
    상기 제 2 레벨 캐시의 제 2 가상 번지에 대응하는 데이터의 캐싱을 이네이블하는 단계를 포함하고,
    상기 제 1 레벨 캐시의 제 2 가상 번지에 대응하는 데이터의 캐싱을 디세이블하는 단계는 상기 제 1 가상 번지의 번역 테이블 엔트리에 대한 가상 인덱스 캐시의 캐시 가능 속성 비트를 비표명함으로써 이루어지고,
    상기 제 2 레벨 캐시의 제 1 가상 번지에 대응하는 데이터의 캐싱을 이네이블하는 단계는 상기 제 1 가상 번지의 번역 테이블 엔트리에 대한 물리 인덱스 캐시의 캐시 가능 속성 비트를 표명함으로써 이루어지고,
    상기 제 2 레벨 캐시의 제 2 가상 번지에 대응하는 데이터의 캐싱을 이네이블하는 단계는 상기 제 2 가상 번지의 번역 테이블 엔트리에 대한 물리 인덱스 캐시의 캐시 가능 속성 비트를 표명함으로써 이루어지며,
    메모리 시스템이 제 1 레벨 가상 인덱스 캐시와 제 2 레벨 물리 인덱스 캐시를 갖는 것을 특징으로 하는 물리 번지로 매핑하는 제 1 가상 번지를 가지는 상기 메모리 시스템에 상기 물리 번지로 매핑하는 제 2 가상 번지를 수용하는 방법.
  7. 제 1 레벨 캐시의 제 2 가상 번지에 대응하는 데이터의 캐싱을 디세이블하는 제 1 레벨 캐시 디세이블 회로,
    제 2 레벨 캐시의 제 1 가상 번지에 대응하는 데이터의 캐싱을 이네이블하고,
    제 2 레벨 캐시의 제 2 가상 번지에 대응하는 데이터의 캐싱을 이네이블하는 제 2 레벨 캐시 이네이블 회로, 및
    상기 제 2 가상 번지에 대한 저장이 발생할 때까지 상기 제 1 레벨 캐시의 제 1 가상 번지에 대응하는 데이터의 캐싱을 이네이블하는 제 1 레벨 캐시 이네이블 회로를 포함하고,
    제 1 레벨 캐시 무효화 회로는 또한 상기 제 2 가상 번지에 대한 저장이 발생한 후에 상기 제 1 레벨 캐시의 제 1 가상 번지에 대응하는 모든 데이터를 무효화하고,
    상기 제 1 레벨 캐시 디세이블 회로는 또한 상기 제 2 가상 번지에 대한 저장이 발생한 후에 상기 제 1레벨 캐시의 제 1가상 번지에 대응하는 데이터의 캐싱을 디세이블하고,
    상기 제 1 레벨 캐시 이네이블 회로는 또한 상기 제 2 가상 번지에 대한 저장이 발생한 후에 상기 제 1 레벨 캐시의 제 2 가상 번지에 대응하는 데이터의 캐싱을 이네이블하며,
    메모리 시스템이 제 1 레벨 가상 인덱스 캐시와 제 2 레벨 물리 인덱스 캐시를 갖는 것을 특징으로 하는 물리 번지로 매핑하는 제 1 가상 번지를 가지는 상기 메모리 시스템에 상기 물리 번지로 매핑하는 제 2 가상 번지를 수용하는 장치.
  8. 제 1 레벨 캐시의 제 2 가상 번지에 대응하는 데이터의 캐싱을 디세이블하는 제 1 레벨 캐시 디세이블 회로, 및
    제 2 레벨 캐시의 제 1 가상 번지에 대응하는 데이터의 캐싱을 이네이블하고,
    제 2 레벨 캐시의 제 2 가상 번지에 대응하는 데이터의 캐싱을 이네이블 하는 제 2 레벨 캐시 이네이블 회로를 포함하고,
    상기 제 1 레벨 캐시 디세이블 회로는 상기 제 2 가상 번지의 번역 테이블 엔트리에 대한 가상 인덱스 캐시의 캐시 가능 속성 비트를 비표명함으로써 상기 제 1 레벨 캐시의 제 2 가상 번지에 대응하는 데이터의 캐싱을 디세이블하고,
    상기 제 2 레벨 캐시 이네이블 회로는 상기 제 1 가상 번지의 번역 테이블 엔트리에 대한 물리 인덱스 캐시의 캐시 가능 속성 비트를 표명함으로씨 상기 제 2 레벨 캐시의 제 1 가상 번지에 대응하는 데이터의 캐싱을 이네이블하고,
    상기 제 2 레벨 캐시 이네이블 회로는 상기 제 2 가상 번지의 번역 테이블 엔트리에 대한 물리 인덱스 캐시의 캐시 가능 속성 비트를 표명함으로써 상기 제 2레벨 캐시의 제 2 가상 번지에 대응하는 데이터의 캐싱을 이네이블하며,
    메모리 시스템이 제 1 레벨 가상 인덱스 캐시와 제 2 레벨 물리 인덱스 캐시를 갖는 것을 특징으로 하는 물리 번지로 매핑하는 제 1 가상 번지를 가지는 상기 메모리 시스템에 상기 물리 번지로 매핑하는 제 2 가상 번지를 수용하는 장치.
KR1019960004550A 1995-02-27 1996-02-26 가상및물리인덱스캐시에서가상번지용캐시가능속성 KR100372293B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/391,389 US6006312A (en) 1995-02-27 1995-02-27 Cachability attributes of virtual addresses for optimizing performance of virtually and physically indexed caches in maintaining multiply aliased physical addresses
US08/391,389 1995-02-27

Publications (1)

Publication Number Publication Date
KR100372293B1 true KR100372293B1 (ko) 2003-07-18

Family

ID=23546398

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960004550A KR100372293B1 (ko) 1995-02-27 1996-02-26 가상및물리인덱스캐시에서가상번지용캐시가능속성

Country Status (5)

Country Link
US (1) US6006312A (ko)
EP (1) EP0729102B1 (ko)
JP (1) JP3859757B2 (ko)
KR (1) KR100372293B1 (ko)
DE (1) DE69629140T2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990070788A (ko) * 1998-02-24 1999-09-15 윤종용 가상캐쉬 메모리의 어라이징 방지방법

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6199152B1 (en) * 1996-08-22 2001-03-06 Transmeta Corporation Translated memory protection apparatus for an advanced microprocessor
US6449695B1 (en) * 1999-05-27 2002-09-10 Microsoft Corporation Data cache using plural lists to indicate sequence of data storage
US6438672B1 (en) * 1999-06-03 2002-08-20 Agere Systems Guardian Corp. Memory aliasing method and apparatus
US6553460B1 (en) * 1999-10-01 2003-04-22 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6671792B1 (en) * 2000-04-28 2003-12-30 Hewlett-Packard Development Company, L.P. Share masks and alias for directory coherency
US6751720B2 (en) * 2000-06-10 2004-06-15 Hewlett-Packard Development Company, L.P. Method and system for detecting and resolving virtual address synonyms in a two-level cache hierarchy
US6850929B2 (en) * 2001-03-08 2005-02-01 International Business Machines Corporation System and method for managing file system extended attributes
US6622208B2 (en) * 2001-03-30 2003-09-16 Cirrus Logic, Inc. System and methods using a system-on-a-chip with soft cache
US6732248B2 (en) 2001-06-28 2004-05-04 International Business Machines, Corporation System and method for ghost offset utilization in sequential byte stream semantics
GB2378779B (en) * 2001-08-14 2005-02-02 Advanced Risc Mach Ltd Accessing memory units in a data processing apparatus
US7299318B2 (en) * 2001-12-20 2007-11-20 Sun Microsystems, Inc. Method for reducing cache conflict misses
US20040059887A1 (en) * 2002-09-25 2004-03-25 K. S. Venkatraman Cache memory
US20050188172A1 (en) * 2004-02-20 2005-08-25 Intel Corporation Reduction of address aliasing
US7206916B2 (en) * 2004-03-08 2007-04-17 Sun Microsystems, Inc. Partial address compares stored in translation lookaside buffer
US7451271B2 (en) * 2004-04-05 2008-11-11 Marvell International Ltd. Physically-tagged cache with virtually-tagged fill buffers
US7543132B1 (en) 2004-06-30 2009-06-02 Sun Microsystems, Inc. Optimizing hardware TLB reload performance in a highly-threaded processor with multiple page sizes
US7516298B2 (en) * 2004-11-15 2009-04-07 Platform Solutions Incorporated Sparse table compaction method
US9280473B2 (en) 2004-12-02 2016-03-08 Intel Corporation Method and apparatus for accessing physical memory from a CPU or processing element in a high performance manner
US7814292B2 (en) * 2005-06-14 2010-10-12 Intel Corporation Memory attribute speculation
US8417915B2 (en) * 2005-08-05 2013-04-09 Arm Limited Alias management within a virtually indexed and physically tagged cache memory
US7984241B2 (en) 2005-09-16 2011-07-19 Hewlett-Packard Development Company, L.P. Controlling processor access to cache memory
JP2009069969A (ja) * 2007-09-11 2009-04-02 Canon Inc 情報処理方法および情報処理装置、プログラム
US7941631B2 (en) * 2007-12-28 2011-05-10 Intel Corporation Providing metadata in a translation lookaside buffer (TLB)
KR101594029B1 (ko) 2009-07-06 2016-02-16 삼성전자주식회사 데이터 조작 방법 및 그 방법을 이용하는 시스템 장치
US20130111181A1 (en) * 2011-10-31 2013-05-02 Lsi Corporation Methods and apparatus for increasing device access performance in data processing systems
US9842051B1 (en) * 2015-03-25 2017-12-12 Marvell International Ltd. Managing aliasing in a virtually indexed physically tagged cache
US11860794B2 (en) 2021-05-07 2024-01-02 Ventana Micro Systems Inc. Generational physical address proxies
US11841802B2 (en) 2021-05-07 2023-12-12 Ventana Micro Systems Inc. Microprocessor that prevents same address load-load ordering violations
US11868263B2 (en) * 2021-05-07 2024-01-09 Ventana Micro Systems Inc. Using physical address proxies to handle synonyms when writing store data to a virtually-indexed cache
US11836080B2 (en) 2021-05-07 2023-12-05 Ventana Micro Systems Inc. Physical address proxy (PAP) residency determination for reduction of PAP reuse

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3723976A (en) * 1972-01-20 1973-03-27 Ibm Memory system with logical and real addressing
US4136385A (en) * 1977-03-24 1979-01-23 International Business Machines Corporation Synonym control means for multiple virtual storage systems
US4332010A (en) * 1980-03-17 1982-05-25 International Business Machines Corporation Cache synonym detection and handling mechanism
US4400770A (en) * 1980-11-10 1983-08-23 International Business Machines Corporation Cache synonym detection and handling means
US4488256A (en) * 1981-11-23 1984-12-11 Motorola, Inc. Memory management unit having means for detecting and preventing mapping conflicts
US4727482A (en) * 1983-08-30 1988-02-23 Amdahl Corporation Apparatus for enhancing searches of data tables
US4785398A (en) * 1985-12-19 1988-11-15 Honeywell Bull Inc. Virtual cache system using page level number generating CAM to access other memories for processing requests relating to a page
US4885680A (en) * 1986-07-25 1989-12-05 International Business Machines Corporation Method and apparatus for efficiently handling temporarily cacheable data
KR920001282B1 (ko) * 1987-10-02 1992-02-10 가부시키가이샤 히타치세이사쿠쇼 버퍼메모리 제어장치
US5119290A (en) * 1987-10-02 1992-06-02 Sun Microsystems, Inc. Alias address support
US5003459A (en) * 1988-04-01 1991-03-26 Digital Equipment Corporation Cache memory system
US5113514A (en) * 1989-08-22 1992-05-12 Prime Computer, Inc. System bus for multiprocessor computer system
US5133058A (en) * 1989-09-18 1992-07-21 Sun Microsystems, Inc. Page-tagging translation look-aside buffer for a computer memory system
JP2833062B2 (ja) * 1989-10-30 1998-12-09 株式会社日立製作所 キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置
US5307477A (en) * 1989-12-01 1994-04-26 Mips Computer Systems, Inc. Two-level cache memory system
US5226133A (en) * 1989-12-01 1993-07-06 Silicon Graphics, Inc. Two-level translation look-aside buffer using partial addresses for enhanced speed
GB2239724B (en) * 1990-01-05 1993-11-24 Sun Microsystems Inc Apparatus for maintaining consistency in a multi-processor computer system using virtual caching
DE69130086T2 (de) * 1990-06-15 1999-01-21 Compaq Computer Corp Mehrstufeneinschluss in mehrstufigen Cache-Speicherhierarchien
US5412787A (en) * 1990-11-21 1995-05-02 Hewlett-Packard Company Two-level TLB having the second level TLB implemented in cache tag RAMs
US5479630A (en) * 1991-04-03 1995-12-26 Silicon Graphics Inc. Hybrid cache having physical-cache and virtual-cache characteristics and method for accessing same
US5564052A (en) * 1991-06-27 1996-10-08 Integrated Device Technology, Inc. Logically disconnectable virtual-to-physical address translation unit and method for such disconnection
US5487162A (en) * 1992-02-25 1996-01-23 Matsushita Electric Industrial Co., Ltd. Cache lock information feeding system using an address translator
JP2839060B2 (ja) * 1992-03-02 1998-12-16 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理システムおよびデータ処理方法
US5392410A (en) * 1992-04-30 1995-02-21 International Business Machines Corporation History table for prediction of virtual address translation for cache access
US5675763A (en) * 1992-07-15 1997-10-07 Digital Equipment Corporation Cache memory system and method for selectively removing stale aliased entries
US5606687A (en) * 1993-10-07 1997-02-25 Sun Microsystems, Inc. Method and apparatus for optimizing supervisor mode store operations in a data cache
US5502829A (en) * 1993-11-03 1996-03-26 Intergraph Corporation Apparatus for obtaining data from a translation memory based on carry signal from adder
US5550995A (en) * 1994-01-03 1996-08-27 Motorola, Inc. Memory cache with automatic alliased entry invalidation and method of operation
US5668972A (en) * 1994-10-05 1997-09-16 International Business Machines Corporation Method and system for efficient miss sequence cache line allocation utilizing an allocation control cell state to enable a selected match line

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990070788A (ko) * 1998-02-24 1999-09-15 윤종용 가상캐쉬 메모리의 어라이징 방지방법

Also Published As

Publication number Publication date
US6006312A (en) 1999-12-21
JPH08272693A (ja) 1996-10-18
DE69629140D1 (de) 2003-08-28
EP0729102B1 (en) 2003-07-23
EP0729102A3 (en) 1998-10-07
JP3859757B2 (ja) 2006-12-20
EP0729102A2 (en) 1996-08-28
DE69629140T2 (de) 2004-04-15

Similar Documents

Publication Publication Date Title
KR100372293B1 (ko) 가상및물리인덱스캐시에서가상번지용캐시가능속성
US9064330B2 (en) Shared virtual memory between a host and discrete graphics device in a computing system
US6047357A (en) High speed method for maintaining cache coherency in a multi-level, set associative cache hierarchy
US5586297A (en) Partial cache line write transactions in a computing system with a write back cache
US5689679A (en) Memory system and method for selective multi-level caching using a cache level code
US6542971B1 (en) Memory access system and method employing an auxiliary buffer
US7941631B2 (en) Providing metadata in a translation lookaside buffer (TLB)
JP3795985B2 (ja) コンピュータメモリシステムの競合キャッシュ
US5265227A (en) Parallel protection checking in an address translation look-aside buffer
US5003459A (en) Cache memory system
US7496730B2 (en) System and method for reducing the number of translation buffer invalidates an operating system needs to issue
US5379394A (en) Microprocessor with two groups of internal buses
US10019377B2 (en) Managing cache coherence using information in a page table
US5909696A (en) Method and apparatus for caching system management mode information with other information
US20120017039A1 (en) Caching using virtual memory
KR20080041707A (ko) Tlb 록 표시자
US4825412A (en) Lockout registers
US5956752A (en) Method and apparatus for accessing a cache using index prediction
US6332179B1 (en) Allocation for back-to-back misses in a directory based cache
US5809526A (en) Data processing system and method for selective invalidation of outdated lines in a second level memory in response to a memory request initiated by a store operation
US5293622A (en) Computer system with input/output cache
JPH05216766A (ja) データ・キャッシュとセグメント記述子の間のキャッシュの可干渉性を維持する方法およびコンピュータのメモリ装置
CN111124954B (zh) 一种两级转换旁路缓冲的管理装置及方法
US5619673A (en) Virtual access cache protection bits handling method and apparatus
EP0474356A1 (en) Cache memory and operating method

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120131

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee