KR940005781B1 - 메모리 매너지먼트 유니트(mmu) - Google Patents

메모리 매너지먼트 유니트(mmu) Download PDF

Info

Publication number
KR940005781B1
KR940005781B1 KR1019920002912A KR920002912A KR940005781B1 KR 940005781 B1 KR940005781 B1 KR 940005781B1 KR 1019920002912 A KR1019920002912 A KR 1019920002912A KR 920002912 A KR920002912 A KR 920002912A KR 940005781 B1 KR940005781 B1 KR 940005781B1
Authority
KR
South Korea
Prior art keywords
cam
ram
memory
page table
management unit
Prior art date
Application number
KR1019920002912A
Other languages
English (en)
Other versions
KR930018376A (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 현대전자산업 주식회사
Priority to KR1019920002912A priority Critical patent/KR940005781B1/ko
Priority to DE4305860A priority patent/DE4305860A1/de
Publication of KR930018376A publication Critical patent/KR930018376A/ko
Application granted granted Critical
Publication of KR940005781B1 publication Critical patent/KR940005781B1/ko
Priority to US08/525,881 priority patent/US5696925A/en

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

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)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

내용 없음.

Description

메모리 매너지먼트 유니트(MMU)
제1도는 종래의 페이지 테이블 포인터 캐쉬 PTPC(Page Table Pointer Cache)에서의 테이블 억세스 메카니즘 도해도.
제2도는 일반적인 4단계의 테이블 억세스 메카니즘 블럭 다이어그램.
제3도는 본 발명에 따른 외부 RP레지스터를 가진 확장된 보조캐쉬의 블럭 다어어그램.
제4도는 제 3 도의 CAM부분의 상세 도해도.
제5도는 제 3 도의 RAM부분의 상세 도해도.
제6도는 제 3 도의 CAM 입력 레지스터 및 RAM 입력 레지스터의 상세도해도.
* 도면의 주요부분에 대한 부호의 설명
M1 내지 M10 : MOS트랜지스터 M11 내지 M16 : MOS트랜지스터
M31 및 M32 : MOS트랜지스터 M33 및 M34 : CMOS 패스 트랜지스터
INV1, INV2, INV11, INV12, INV13, INV32 : 인버터
1 : 디코더
2 : CAM(Content Addressable Memory)
3 : RAM(Random Access Memory) 4 : CAM입력 레지스터
5 : RAM입력 레지스터
본 발명은 프로세서에서 발생되는 가상 어드레스를, 주 메모리를 억세스 하기 위해 필요한 물리적 어드레스로 변환시키는 MMU(Memory Management Unit, 메모리 매너지먼트 유니트)에 관한 것이며, 특히, 변환우선참조버퍼, TLB(Translation Lookaside Buffer)미스시 PTPC(Page Table Pointer Cache)에 있어서, 문맥번호(Context Number ; CXN)를 가상 어드레스의 일부를 포함하고 있는 TAG 부분과 함께 비교대상에 포함시킴으로써, 종래의 문맥 스위칭시마다 모든 엔트리를 무효시켜야 하는 필요성을 제거한 MMU(Memory Management Unit)에 관한 것이다.
일반적으로, 어드레스를 변환시키기 위해, 가상기억시스템에서 어떤 페이지가 실기억 영역에 있는지의 여부 및 가상주소와 실기억주소와의 관계를 나타내는 페이지 테이블을 주(main)메모리에 저장시켜 놓고 있는데, 상기 페이지 테이블을 억세스하기 위한 오버헤드를 줄이기 위해서는 통상, 변환우선참조버퍼, TLB(Translation Lookaside Buffer)를 MMU(Memory Management Unit)에 포함시켜왔다.
또한, 주 메모리 상에 페이지 테이블이 차지하는 영역을 줄이기 위해 페이지 테이블을 여러단계로 분할시켜 변환우선참조버퍼(TLB)미스시 여러번의 주메모리의 테이블 억세스를 수행하게 하였다. 여기서, 변환우선참조버퍼(TLB)는 주어진 세그먼트와 페이지가 주기억장치에 있는가를 판별하는데 사용되는 특수한 연산기억장치이다.
종래의 변환우선참조버퍼(TLB)미스시 오버헤드를 줄이기 위한 방법에서는, 몇개의 레지스터를 어드레스 변환에 관련된 정보를 저장하는데 할당하여 사용하여 왔다.
그러나, 상술한 종래의 방법에 의하면, 문맥을 스위칭 할때, 모든 엔트리를 무효로 시켜야 하므로, 리얼-타임 시스템이나, 내장 콘트롤러 시스템에 있어서는, 빈번한 문맥 스위칭이 발생되므로, 빈번하게 모든 엔트리를 무효로 시켜야 하는 단점이 있었다.
따라서, 본 발명은 상술한 종래의 변환우선참조버퍼(TLB)미스시 오버헤드를 줄이기 위해, 문맥 스위칭시 모든 엔트리를 무효화 시켜야 하는 단점을 제거하기 위해, 문맥번호(CXN)를 가상 어드레스의 일부를 포함하는 TAG부분과함께 비교대상에 포함시키고, TAG와 문맥번호(CXN)의 비교부분을 CAM(Content Addressable Memory)으로 구성하고 PTP(Page Table Pointer)부분을 RAM(Random Access memory)으로 구성하여 엔트리의 갯수를 쉽게 확장 가능하게 하여, 다수의 엔트리가 동시에 존재할 수 있게 하며, 매 새로운 4단계 테이블 억세스에서 얻어진 PTP(Page Table Pointer)값이 앞의 4단계 테이블 억세스에서 얻어진 최종단의 PTP(Page Table Pointer)값을 오버라이트(over write)하지 않아, 선행 단계의 데이타를 보존할 수 있으며, 같은 문맥내에서도 전 테이블 억세스에 의한 PTP(Page Table Pointer) 값이 필요한 경우 바로 그 PTP(Page Table Pointer)를 사용할 수 있으므로 성능을 향상시킬 수 있는 MMU(Memory Management Unit)를 제공하는 것을 그 목적으로 한다.
상기 목적을 달성하기 위해, 본 발명은, 문백번호(CXN)를 가상어드레스의 일부를 포함하는 TAG부분과 함께 비교대상에 포함시키고, TAG와 문맥번호(CXN)의 비교부분을 CAM(Content Addressble Memory)으로 구성하고 PTP(Page Table Pointer)부분을 RAM(Random Access Memory)으로 구성하여 엔트리의 갯수를 쉽게 확장 가능하게 하며, 매 문맥 스위칭시 마다 엔트리를 무효화 시키는 필요성을 제거한 것을 특징으로 한다.
이하, 첨부된 도면으로 본 발명을 더욱 상세하게 설명하기로 한다.
제 1 도는 종래의 페이지 테이블 포인터 캐쉬 PTP(Page Table Pointer Cache)에서의 테이블 억세스 메카니즘의 도해도이다.
여기서, 예로서, SPARC 아키택쳐, CYPRESS SEMICONDUTOR, ROSS TECHNOLOGY SUBSIDIARY, SPARC RISE USER'S GUIDE, SECOND EDITION, -1990년 2월, PP4-8 및 4-11에서 채택하고 있는 4단계의 테이블 억세스 메카니즘을 살펴보면, 제 1 도에 도시된 바와 같이, IPTP(Instruction PTP Register)와 DPTP(Data PTP Register)의 값을 사용하기 위해 가상어드레스와 비교할 값을 가지고 있는 ITAG(Index Tag Register)와, 결과에 따라 사용되어 질 수 있는 최종단의 페이지 테이블 포인터를 가지고 있는 IPTP(Instruction PTP Register)와 DPTP(Data PTP Register)를 사용하여 변환우선참조버퍼(TLB)미스시 발생되는 테이블 억세스의 오버헤드를 단축하고 있다. 여기서, TAG는 IPTP와 DPTP에 저장된 값이 현동작 억세스시 사용되어질 수 있는 가를 판단하기 위한 것으로 IPTP와 DPTP가 저장될 당시의 가상어드레스의 일부분을 저장하고 있다. 또한, 여기서 유의해야 할 점은 상기 방법이 반드시 4단계의 테이블 억세스 메카니즘 뿐 아니라, 여러단계의 테이블 억세스 메카니즘을 채택하여도 적용할 수 있다는 점이다.
이경우, 문맥이 바뀌어지면, 전체 PTPC(Page Table Pointer Cache, 총 3개의 엔트리 ; IPTP, DPTP, RP)를 무효화 시켜야 한다. 여기서 RP는 루트 포인터(Root Pointer)를 나타낸다. 따라서, 문맥의 스위칭이 빈번하게 발생되는 경우는 비효율적이 된다.
또, 각 엔드리가 1개씩만 존재하므로, 새로운 4단계의 테이블을 억세스 할때에는 IPTP와 DPTP는 새로운 값으로 대체되어야 한다.
따라서, 대체되기 전의 값을 다시 사용하게 될 경우에는 다시 주 메모리의 테이블 억세스를 수행하여야 하는 단점이 있다.
즉, 문맥을 스위칭 할때 모든 엔트리를 무효화 시켜야 하는 단점을 가지고 있으므로, 리얼-타임(Real-time)시스템 또는 내장 콘트롤러 시스템과 같은 경우, 빈번하게 문맥이 스위칭 되므로, 빈번하게 모든 엔트리를 무효화 시켜야 하는 단점이 있다.
제 2 도는 일반적인 4단계의 테이블 억세스 메카니즘 블럭 다이어그램을 도시하고 있다.
제 2 도에 도시된 바와 같이, 어드레스 변환시 사용되는 레이지 테이블의 크기를 줄이기 위해 페이지 테이블을 여러 단계의 테이블로 나누어, 여러번 테이블 억세스를 수행하게 된다. 여기서, 테이블 억세스는 몇 단계의 과정을 거쳐도 상관 없지만, 4단계의 테이블 억세스를 예를들어 설명하기로 한다. 도시된 바와 같이, 테이블 억세스가 4단계로 진행되므로, 가상어드레스는 4부분으로 나누어진다. 또한 PPN(Physical Page Number)을 가지고 있는 PTE(Page Table Entry)를 가져오기 위한 4단계의 테이블 억세스 메카니즘도 함께 도시되어 있다. 여기서, 제 1 번째에 억세스 하게 되는 테이블을 문맥 테이블이라 하고, 상기 문맥 테이블에 저장된 포인터 어드레스의 값을 루트 포인터(Root Pointer)라 하며, 상기 루프 포인터는 다음 단계의 페이지 테이블을 억세스하는 어드레스로 사용되어진다. 따라서, 상기와 같은 방법으로 PPN을 가지고 있는 PTE를 가져오기 위해서는 4번의 메모리 억세스가 필요하게 된다.
한편, 변환우선참조버퍼(TLB)미스에 의한 테이블 억세스시, 메모리 억세스에 의한 오버헤드를 줄이기 위해서는, 제 2 레벨의 PTPC(Page Table Pointer Cache)를 외부의 레지스터에 저장하여 놓고 다음의 변환우선참조버퍼(TLB)미스시 상기 값을 사용할 수 있다면, 단 1번만의 메모리 억세스가 필요하므로 매우 효율적이다.
이때, 다음 억세스시 제 2 레벨의 PTP의 값을 사용할 수 있는가의 여부를 판단하기 위해서 가상어드레스의 제 1 인텍스 부분과 제 2 인테스 부분을 TAG필드로 저장한다. 따라서, 변환우선참조버퍼(TLB)미스시 제 2 레벨의 PTP를 사용하기 위해서는 같은 문맥내에서 가상어드레스의 제 1 인텍스 부분과 제 2 인텍스 부분을 TAG필드와 비교한다.
이 경우, TAG필드와 비교하여 그 결과가 히트(hit)이면, 상기 억세스는 반드시 4단계의 테이블 억세스를 나타낸다.
왜냐하면, PTP 유효하다는 것은 동일 문맥내에서 4단계의 테이블 억세스를 거친 경우가 존재한다는 의미이기 때문이다.
제 3 도는 본 발명에 따라 외부 RP 레지스터를 가진 확장된 보조캐쉬의 블럭다이어그램을 나타내는데, 리얼-타임 시스템이나 내장형 콘트롤러 시스템에서 문맥의 스위칭이 빈번한 경우, 지정된 PTP를 무효로 시켜야 하는 단점을 제거하기 위해, 비교대상에 TAG필드와 함께 문맥번호(CXN)부분을 첨가시켰다.
즉, TAG와 문맥번호(CXN)부분을 CAM(2, Content Addressable Memory)으로 구성하고, 제 2 레벨의 PTP의 RAM(3, Random Access Memory)으로 구성하여, CAM(2)부분의 매칭에 의해 RAM(3)부분을 판독하는 구조로 하였다. 상기 구조에서는, RP(Root Pointer)를 RAM(3)부분에 내장시킬 수 없고, 비록 RP를 내장시킬 수 있다하여도, 주변회로의 제어가 너무 복잡하므로 생략된다.
여기서, CAM(2, Content Addressable Memory)은, 기억된 여러개의 자료중에서, 주어진 특성을 가진 자료를 신속히 찾을 수 있는 기억장치로서, 기억장치에 기억된 정보에 접근하기 위하여 주소를 사용하는 것이 아니고, 기억된 정보의 일부분을 이용하여, 원하는 정보가 기억된 위치를 알아낸 후, 그 위치에서 나머지 정보에 접근할 수 있는 기억장치를 나타낸다.
또한, RP는 문맥이 변하지 않으면, 항상 유효한 상태에서 성능향상에 도움을 줄 수 있으므로, 외부에 별도의 RPR(Root Pointer Register)를 설치하는 것이 효율적이다. 따라서, 상술한 구조를 선택함으로서, PTP 엔트리의 갯수도 확장이 용이하며, 1개의 엔트리만을 사용할 경우에 발생될 수 있는 손실도 방지할 수 있다. 왜냐하면, 여기서, 1개의 엔트리만을 사용하는 경우는 새로운 4단계의 테이블 억세스에 의해 PTP가 대체된 후에, 현 동작에서 대체되기 전의 PTP를 사용하게 될 경우가 발생하면, 다시 4단계의 테이블 억세스를 수행해야 하기 때문이다.
여기서, CTPR(Content Table Pointer Register)의 값이 변경되는 경우는 RPR(Root Pointer Register)를 포함하여 모든 엔트리가 무효로 되어야 한다. 그러나, 상기 CTPR(Content Table Pointer Register)의 값은 자주 변경되지 않으므로, 비교부분에 포함시키지 않아도 무난하다. 또한, 변환우선참조버퍼(TLB) 플래쉬 동작이 지원되는 경우에는 RPR은 무효화 시킬 필요가 없고 해당 문맥내의 PTP를 뮤효화 시킨다. 이 경우 약간의 주변회로를 필요로 한다.
여기서, 디코더(1)는 새로은 엔트리를 저장할 경우, 엔트리 교환을 실현하기 위해 존재하며, RPvalid 신호와 PTPvalid 신호는 제어부로 가는 제어신호이면, 변환우선참조버퍼(TLB)미스시 PTPvalid 신호가 어서트 된 경우는 RAM 입력 레지스터(5)에 있는 레벨 2의 PTP를 사용하여 페이지 테이블을 억세스하며, PTPvalid 신호가 어서트 되지 않은 경우는 RP의 Valid값을 조사하여 RP를 사용하여 억세스 된다.
제 4 도는 제 3 도에 도시된 CAM(2)부분을 구성하는 1cell에 대해 더욱 상세하게 도시한 것이며, 제 5 도는 제 3 도에 도시된 RAM(3)부분을 구성하는 1cell에 대해 더욱 상세하게 도시한 것이며, 제 6 도는 CAM입력 레지스터(4) 및 RAM 입력 레지스터(5)의 1비트 셀을 각각 나타내고 있다.
여기서, 제 4 도에 도시된 WTAG신호는 CAM 입력 레지스터(4)의 값을 CAM(2)부분에 수록할때 제어부에서 발생되는 제어신호이며, 제 5 도에 도시된 WPTP2신호는 RAM입력 레지스터(5)에서 제 3 도의 PTP2부분을 RAM(3)부분에 수록할때 제어부에서 발생되는 제어신호이며, WV신호는 RAM입력 레지스터(5)에서 V(Valid)비트를 RAM(3)부분에 수록할때 발생되는 제어신호이다.
제 5 도의 점선부는 V(Valid) 비트에만 사용되는 부분으로 전체 엔트리를 동시에 무효화 시키기 위해 부가된 부분이다.
제 6 도는 CAM(RAM) 입력 레지스터의 1bit를 도시한 것으로, CAM(RAM)으로부터 읽고 쓰는 기능을 지원해 주고 있다. 상기 기능을 수행하도록 2개의 CMOS 패스 트랜지스터(M33, M34)와 인버터(INV31, INV32)로 구성되고 피드백 통로를 가지고 있다.
다음에, CAM(RAM) 입력 레지스터로부터 CAM(RAM)에 정보를 수록 및 판독되는 과정을 상세히 설명하기로 한다.
CAM 입력 레지스터(4)로부터의 정보를 CAM(2)부분에 수록하는 과정을 살펴보면, 주어진 세그먼트와 페이지가 주기억장치에 있는가를 판별하는데 사용되는 특수한 연산기억장치인 변환우선참조버퍼(TLB)미스시, 보조확장캐쉬도 미스가 나고, PTE(Page Table Entry)를 가져오기 위해, 전과정 어드레스 변환(마지막 단계지 테이블을 억세스하는 경우)을 수행할때, 다음에 다시 사용하기 위해 상기 정보를 보조확장캐쉬에 저장시켜야 한다.
이때, CAM 입력 레지스터(4)에 데이타를 래치한 다음, CAM(2)부분에 수록하게 된다. 동시에 RAM 입력레지스터(5)에도 데이타를 래치한다음 RAM(3)부분에 수록된다.
이때, 제 6 도에 도시된 각부의 동작을 살펴보면, 외부로부터의 정보가 입력 레지스터에 래치될때, CMOS패스 트랜지스터 M33의 Cload는 언어서트(unassert)되며, CMOS 패스 트랜지스터 M33의 Cnoload도 언어서트 되며, 제 4 도에 도시된 WTAG신호도 인에이블 되지 않는다.
다음에, RAM 입력 레지스터(5)에 정보를 래치할때에는, 제 6 도의 CMOS 패스 트랜지스터 M33의 rload는 언어서트 되고, CMOS 패스 트랜지스터 M34의 rnoload도 언어서트 되며, 제 5 도에 도시된 WPTP2 및 WV 신호도 인에이블 되지 않는다.
다음에 CAM 입력 레지스터(4)로부터의 정보가 CAM(2)부분에 수록될때의 상태를 살펴보면 제 6 도에 도시된 CMOS 패스 트랜지스터 M33의 Cload는 언어서트되고, CMOS 패스 트랜지스터 M34의 Cnoload도 언어서트 되며, 제 4 도에 도시된 WTAG신호는 어서트 되며, 이때 워드라인이 인에이블 되면, 데이타 값이 셀 내에 수록된다.
동일하게, RMA입력 레지스터(5)로부터의 정보가 RAM(3)부분에 수록될때는, CMOS 패스 트랜지스터 M33의 rload는 언어서트 되며, CMOS 패스 트랜지스터 M34의 rnoload도 언어서트 되므로 제 5 도에 도시된 WPTP2 신호 및 WV 신호는 어스트 되고, 워드라인이 인에이블 되어 데이타 값이 셀내로 수록하게 된다. CAM(2) 부분은 또한 어드레스 변환을 수행할때마다 해당정보를 가지고 있는가를 알아보기 위해, 모든 엔트리(CAM 부분)를 비교하여야 하는데, 이때의 메카니즘을 살펴보면, CMA입력 레지스터(4)만 외부로부터 비교할 데이타를 래치한 다음 워드라인은 디스에이블 된 상태에서 제 4 도의 WTAG신호만 인에이블 되게한다. 이때의 결과가 매치라인상에 나타나 매치가 일어나면 메치라인이 인에이블 되어 RAM(3)부분을 판독한다.
이때 CAM(2)부분의 데이타 비교시의 제어신호 발생 과정을 살펴보면, 외부로부터 CAM 입력 레지스터(4)로 래치될때, 제 6 도의 CMOS 패스 트랜지스터 M33이 Cload는 언어서트 되며, CMOS 패스 트랜지스터 M34의 Cnoload도 언어서트되며, 제 4 도의 WTAG신호도 언어서트 된다. 이때, 입력 레지스터에서 CAM(2)부분으로, 비교를 위해 비트라인으로 데이타를 보낼때, WTAG신호만 어서트 되고 워드라인신호는 디스에이블 된다.
다음에, CAM(2)부분의 데이타 비교시, 매치라인에 의한 RAM(3)부분으로부터 RAM 입력 레지스터(5)로의 래치시 제어신호 발생과정을 살펴보면, 제 6 도의 CMOS패스 트랜지스터 M33의 rload는 어서트 되고, M34의 rnoload는 언어서트되며, 제 5 도의 WPTP2 또는 WV 신호는 언어서트 된다.
다음에, RAM 입력 레지스터(5)로부터 정보가 외부로 판독되는 순간에는, CMOS 패스 트랜지스터 M34의 rnoload는 어서트 되며, (폐쇄된 피트백 루프), CMOS 패스 트랜지스터 M33의 rload는 언어서트 되며, 제 5 도의 WPTP2 또는 WV신호는 언어서트 된다.
여기서, CAM(2) 부분의 내용을 CAM 입력레지스터(4)로 판독하는 동작은 정상적인 동작중에는 불필요하다. 따라서, 상기 동작은, 진단용으로 지원되는 것으로 선택적이다. 또한, 제 5 도의 WPTP2 신호와 WV 제어신호도 정상적인 동작중에는 별개로 RAM(3)부분에 사용되는 경우는 없으므로, 진단 목적으로 지원되며, 한개의 제어신호로 대체될 수 있다.
여기서, RAM(3)부분을 진단목적으로 판독하는 경우는 별도의 하드웨어 없이 CAM(2)부분 데이타 비교시, 매치라인에 의해 RAM 입력레지스터(5)로 판독되는 것과 같이 상술한 방법에 의해 지원될 수 있다.
또한 RMA(3)부분의 워드라인으로 들어가는 입력은 매치가 일어났을 경우도 매치라인에 의해 인에이블 되어야 하고 RAM(3)부분을 수록 또는 판독할 경우도 디코더(1)로부터의 출력에 의해 인에이블되어야 한다.
이상에서 살펴본 바와 같이, 문맥을 스위칭할때 RPR(Root Pointer Register)를 포함하여 모든 PTP(Page Table Pointer) 엔트리를 무효시켜야 하며, 특히, 문맥 스위칭이 빈번하게 발생되는 리얼-타임 시스템이나 내장 콘트롤러 시스템의 경우에는 더욱 비효율적인 종래의 방법에 비해, 본 발명의 방법에 따르면, IPTP와 DPTP에 저장된 값이 현동작 억세스시 사용되어질 수 있는가를 판단하기 위한 TAG를 비교할 때, 문맥번호(CXN)도 함께 비교할 수 있도록 문맥번호(CXN)부분도 비교부분에 포함시킴으로 모든 엔트리를 무효화 시키는 필요성을 제거하여 제품의 성능향상을 가하도록 하였으며, 보조확장캐쉬는 CAM과 RAM으로 구성하여 확장도 용이하게 하였다.
여기서, 어드레스 변환시 적절한 용량의 변환우선참조버퍼(TLB)와 CAM과 RAM으로 구성된 보조확장캐쉬를 적절히 사용하여, 어드레스 변환시 발생되는 오버헤드를 단축시킬 수 있는 효과를 가진다.
또한, 본 발명은 가상캐쉬 뿐 아니라, 물리적 캐쉬의 경우에도 적용이 가능하며, 테이블 억세스의 단계의 숫자에 한정되지 않는점에 유의해야 한다.

Claims (4)

  1. 가상어드레스를, 주메모리를 억세스하기 위한 물리적 어드레스로 변환시키는 메모리 매너지먼트 유니트(MMU)에 있어서, 현재 수행중인 문맥과 비교를 하는 문맥번호(Context Number : CXN)부분과, 가상 어드레스의 일부를 비교하는 TAG부분과, PTE((Page Table Entry)를 가지고 있는 테이블인 페이지 테이블 포인터 PTP(Page Table Pointer)부분을 포함하는 것을 특징으로 하는 메모리 매너지먼트 유니트.
  2. 제 1 항에 있어서, 문맥번호(Context Number ; CXN)부분과 가상어드레스의 일부를 비교하는 TAG부분이 CAM(Content Addressable Memory)부분으로 구성되어 있는 것을 특징으로 하는 메모리 매너지먼트 유니트.
  3. 제 1 항에 있어서, 페이지 테이블 포인터(Page Table Pointer)는 RAM(Random Access Memory)부분으로 구성되어 있는 것을 특징으로 하는 메모리 매너지먼트 유니트.
  4. 제 2 항 또는 3항에 있어서, TAG부분을 비교할때, 문맥번호(Context Number ; CXN)부분도 포함시켜 CAM(Content Addressable Memory)부분의 매치에 의해 RAM(Random Access Memory) 부분을 판독하는 구조로 형성되어 있는 것을 특징으로 하는 메모리 매너지먼트 유니트.
KR1019920002912A 1992-02-25 1992-02-25 메모리 매너지먼트 유니트(mmu) KR940005781B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1019920002912A KR940005781B1 (ko) 1992-02-25 1992-02-25 메모리 매너지먼트 유니트(mmu)
DE4305860A DE4305860A1 (en) 1992-02-25 1993-02-25 Memory management unit for computer system - has virtual addresses converted into physical addresses using comparison process and content addressable memory
US08/525,881 US5696925A (en) 1992-02-25 1995-09-08 Memory management unit with address translation function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019920002912A KR940005781B1 (ko) 1992-02-25 1992-02-25 메모리 매너지먼트 유니트(mmu)

Publications (2)

Publication Number Publication Date
KR930018376A KR930018376A (ko) 1993-09-21
KR940005781B1 true KR940005781B1 (ko) 1994-06-23

Family

ID=19329479

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019920002912A KR940005781B1 (ko) 1992-02-25 1992-02-25 메모리 매너지먼트 유니트(mmu)

Country Status (2)

Country Link
KR (1) KR940005781B1 (ko)
DE (1) DE4305860A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010026758A1 (de) 2010-07-09 2012-01-12 Getit Online Internet Service Agentur ( Isa ) Gmbh Content-Management-System

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5222222A (en) * 1990-12-18 1993-06-22 Sun Microsystems, Inc. Apparatus and method for a space saving translation lookaside buffer for content addressable memory

Also Published As

Publication number Publication date
DE4305860A1 (en) 1993-09-02
KR930018376A (ko) 1993-09-21

Similar Documents

Publication Publication Date Title
US5696925A (en) Memory management unit with address translation function
US5586283A (en) Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer
US5604879A (en) Single array address translator with segment and page invalidate ability and method of operation
US5717885A (en) TLB organization with variable page size mapping and victim-caching
US4136385A (en) Synonym control means for multiple virtual storage systems
US6356990B1 (en) Set-associative cache memory having a built-in set prediction array
US5327372A (en) Semiconductor memory device
US6138225A (en) Address translation system having first and second translation look aside buffers
US6874077B2 (en) Parallel distributed function translation lookaside buffer
US5956752A (en) Method and apparatus for accessing a cache using index prediction
US6493812B1 (en) Apparatus and method for virtual address aliasing and multiple page size support in a computer system having a prevalidated cache
US5630088A (en) Virtual to physical address translation
JPH03142644A (ja) キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置
JPH04352256A (ja) メモリ空間を節約する方法および装置
KR960011712A (ko) 데이타처리장치
US20070094476A1 (en) Updating multiple levels of translation lookaside buffers (TLBs) field
JPH04320553A (ja) アドレス変換機構
US5530824A (en) Address translation circuit
CN101213526A (zh) 阻止针对存储器中同一页的多次转译后备缓冲器存取
US5535351A (en) Address translator with by-pass circuit and method of operation
JPH0529945B2 (ko)
US5737575A (en) Interleaved key memory with multi-page key cache
US5550995A (en) Memory cache with automatic alliased entry invalidation and method of operation
US6385696B1 (en) Embedded cache with way size bigger than page size
US5530822A (en) Address translator and method of operation

Legal Events

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

Payment date: 20050524

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee