KR0184475B1 - 캐쉬메모리 액세스회로 - Google Patents
캐쉬메모리 액세스회로 Download PDFInfo
- Publication number
- KR0184475B1 KR0184475B1 KR1019950043979A KR19950043979A KR0184475B1 KR 0184475 B1 KR0184475 B1 KR 0184475B1 KR 1019950043979 A KR1019950043979 A KR 1019950043979A KR 19950043979 A KR19950043979 A KR 19950043979A KR 0184475 B1 KR0184475 B1 KR 0184475B1
- Authority
- KR
- South Korea
- Prior art keywords
- tlb
- micro
- address
- page number
- virtual
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address 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)
Abstract
1. 청구범위에 기재된 발명이 속한 기술분야
디지털 컴퓨터의 캐쉬메모리를 액세스하는 회로에 관한 것이다.
2. 발명이 해결하려고 하는 기술적 과제
TLB의 액세스시 힛/미스 판별시간을 최소화하고, 불필요한 명령어-TLB에 의한 전력 낭비를 없애며, 마이크로-TLB에서 페이지 크기에 따라 가변 처리가 가능하게 하는 회로를 제공함에 있다.
3. 발명의 해결방법의 요지
다음 명령어가 동일 페이지에 있을 경우 주 명령어-TLB를 액세스하지 않고 한 엔트리의 마이크로-TLB를 액세스하여 힛/미스를 가림으로써 힛/미스 판별시간을 최소화하고, 불필요한 명령어-TLB에 의한 전력 낭비를 없애며, 마이크로-TLB에서 페이지 크기에 따라 가변처리가 가능하도록 구성함을 특징으로 한다.
4. 발명의 중요한 용도
캐쉬메모리를 액세스하는 데 이용한다.
Description
제1도는 종래의 트랜슬레이션 룩 어헤드 버퍼의 구성도.
제2도는 본 발명의 실시예에 따른 마이크로-트랜슬레이션 룩 어헤드 버퍼를 이용한 캐쉬메모리 액세스회로의 구성도.
제3도는 2웨이 세트 어소시에이티브 명령어-트랜슬레이션 룩 어헤드 버퍼를 가정한 경우 제2도의 선택부 구성을 개략적으로 나타낸 도면.
* 도면의 주요부분에 대한 부호의 설명
11~13 : 레지스터 14~16 : 비교기
17, 18 : 앤드게이트
본 발명은 디지털 컴퓨터에 있어서 캐쉬메모리 액세스회로에 관한 것으로, 특히 다음 명령어가 동일 페이지에 있을 경우 힛/미스(hit/miss) 판별시간을 최소화하고 불필요한 트랜슬레이션 룩 어헤드 버퍼(Translation Look ahead Buffer : 이하 TLB라 함.) 명령어에 의한 전력 낭비를 없앨 수 있는 캐쉬메모리 액세스회로에 관한 것이다.
캐쉬(cache)메모리를 구비한 디지털 컴퓨터에서는 상기 캐쉬메모리(하드디스크의 일정 영역)로부터 데이터를 독출하고자 할 때 TLB로 가상의 어드레스(virtual address)를 보내어 디렉토리의 가상어드레스 리스트와 비교한다. 통상 CPU에는 TLB로직을 포함하고 있다.
제1도는 종래의 TLB의 구성을 나타낸 도면이다. 메모리(메인 메모리의 시스템영역)에 저장된 데이터의 실제(real) 어드레스는 상기 가상의 어드레스에 대응되는 것들로서 이들에 대한 리스트는 TLB에 포함되어 있다. 상기 TLB는 상기 가상 어드레스에 대응하는 실제 어드레스(physical address)를 찾으면 이를 디렉토리와 캐쉬메모리에 보낸다. 이와 같이 가상 어드레스에서 실제 어드레스로의 변환 및 매핑(mapping)은 대개 64~128 엔트리(entry)의 풀리 어소시에이티브(fully associative) TLB를 사용하여 실행된다. 상기 풀리 어소시에이티브 TLB를 이용하는 방법은 메인(main) 메모리의 임의의 라인(line)이 캐쉬메모리의 모든 라인에 매핑될 수 있도록 하는 방법으로, 이를 위해서는 CPU의 어드레스를 캐쉬어드레스로 바꾸어 주기 위하여 콘텐트 어드레스블 메모리(Content Addressable Memory : 이하 CAM이라 함.)를 사용한다.
상기 TLB는 입력되는 16비트 가상 어드레스 VAi와 내부에 기록된 64~128개의 가상 어드레스 VAe를 비교하여 해당되는 라인의 실제 어드레스 택(tag)을 출력하며, 이 택은 캐쉬라인의 택과 비교되어 어드레스 변환이 힛(hit) 혹은 미스(miss)되었는지 여부를 판단해본다. 상기 택 비트는 메인 메모리상의 라인의 위치 정보를 담고 있는 캐쉬시스템의 택 램(RAM)에 존재하는 데이터 비트로서, 캐쉬 어드레스와 셋 비트를 제외한 다른 어드레스들은 택 비트가 될 수 있는 것이다.
그런데 명령어(instruction) 가상 어드레스는 대개 순차적 어드레스이므로 다음 명령어가 통상적으로 동일 페이지 내에 있을 확률이 크다. 하지만 종래에는 매 사이클마다 명령어-TLB(Instruction-TLB : ITLB) 액세스를 수행하였는 바, 다음 명령어가 동일 페이지 내에 있음에도 불구하고 불필요한 비교를 시행하는 문제를 갖고 있어서 개선의 여지가 있었다.
따라서 본 발명의 목적은 다음 명령어가 동일 페이지에 있을 경우 불필요한 명령어-TLB에 의한 전력 낭비를 없애고, 힛/미스 판별시간을 최소화하는 캐쉬메모리 액세스회로를 제공함에 있다.
상기한 목적을 달성하기 위한 본 발명은 다음 명령어가 동일 페이지에 있을 경우 주(main) 명령어-TLB를 액세스하지 않고 한 엔트리의 마이크로-TLB를 액세스하여 힛/미스를 가림으로써 힛/미스 판별시간을 최소화하고, 불필요한 명령어-TLB에 의한 전력 낭비를 없애며, 마이크로-TLB에서 페이지 크기에 따라 가변처리가 가능하도록 구성함을 특징으로 한다.
이하 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
우선 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한 하기 설명에서는 구체적인 회로의 구성 소자등과 같은 많은 특정(特定) 사항들이 나타나고 있는데, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐 이러한 특정 사항들 없이도 본 발명이 실시될 수 있음은 이 기술분야에서 통상의 지식을 가진 자에게는 자명하다할 것이다. 그리고 본 발명을 설명함에 있어, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제2도는 본 발명의 실시예에 따른 마이크로-트랜슬레이션 룩 어헤드 버퍼를 이용한 캐쉬메모리 액세스회로의 구성도이다.
마이크로-TLB는 가상페이지번호 엔트리 100과 실제페이지번호 엔트리 200으로 구성되고, 메인-TLB는 CAM 300과 RAM 400으로 구성된다.
현재 참조부호 G(Granularity hint)가 기록되어 있는 비트는 페이지의 크기가 가변적인 것인지 아니면 고정된 것인지를 나타내는 비트이다. 상기 참조부호 G가 기록되어 있는 경우는 페이지의 크기가 가변적인 경우이며, 그 크기 Size는 예를 들어 8K, 16K, 64K, 512K, 2M 등으로 가변할 수 있다. 또한 참조부호 context가 기록되어 있는 영역은 액세스 특성(access attribute)을 나타낸다. 예를 들면, 읽기 전용(read only)이나 기록 가능(writable)과 같은 특성이 그것이다. 참조부호 P는 특권(Privilese) 수준, E는 실행(Executive) 가능/불가능, W는 해당 페이지의 수정 가능(writable) 여부, CP는 상기 P의 연장(Current Page Privilege), CV는 현재 페이지의 유효(Current Page Valid) 여부를 나타낸다.
임의의 명령이 발생되면, 제어부(예 : 마이크로프로세서, 도시하지 않음.)에서는 상기 명령에 대응되는 가상 어드레스 VAi를 발생한다. 상기 발생된 가상 어드레스 VAi는 마이크로-TLB의 가상페이지번호(Virtual Page Number : VPN) 엔트리 100에 저장된 이전의 가상 어드레스 VAe와 비교되어 힛 여부가 판단된다. 이때 만일 힛이면 대응되는 실제페이지번호(Physical Page Number : PPN) 엔트리 200의 실제 어드레스 PA를 선택부 500에서 출력하여 캐쉬메모리를 액세스한다. 반면에, 미스인 경우에는 공지의 경우와 마찬가지로 CAM 300에 포함된 임의의 엔트리에서 힛인 어드레스를 찾고, RAM 400에서는 그에 대응되는 실제 어드레스 PA를 찾아 상기 선택부 500으로 전달한다. 이에 상기 선택부 500에서는 상기 전달받은 실제 어드레스 PA를 출력하여 캐쉬메모리를 액세스한다.
상기와 같은 상기 선택부 500의 선택적 출력이 가능하도록 하기 위해 선택신호 sel이 0 혹은 1상태[힛/미스 판단 신호]로 공급됨으로써 마이크로-TLB에 의한 혹은 메인-TLB에 의한 가상 어드레스의 실제 어드레스로의 변환이 이루어지게 되는 것이다.
제3도는 2웨이(way) 세트(set) 어소시에이티브 명령어-트랜슬레이션 룩 어헤드 버퍼를 가정한 경우 제2도의 선택부 구성을 개략적으로 나타낸 도면이다.
2웨이 세트 어소시에이티브는 메인 메모리의 하나의 라인이 캐쉬메모리에서 두 개로 매핑될 수 있게 구성한 캐쉬시스템이다.
도시된 바에 따르면, 제1비교기 14는 소정의 명령에 대응되는 가상어드레스 VA가 제어부로부터 전달되면 이를 마이크로-TLB의 마지막 VPN과 비교하여 제1비교신호를 발생한다. 제2비교기 15는 상기 마이크로-TLB의 실제 어드레스와 제1택 비트 tagA를 비교하여 제2비교신호를 발생한다. 제3비교기 16은 상기 마이크로-TLB의 실제 어드레스와 제2택 비트 tagB를 비교하여 제3비교신호를 발생한다. 제1앤드게이트 17은 상기 제1 및 제2비교신호와 유효 비트 V를 논리곱하여 제1웨이 힛 신호 hitA를 발생한다. 제1앤드게이트 18은 상기 제1 및 제3비교신호와 유효 비트 V를 논리곱하여 제2웨이 힛 신호 hitB를 발생한다. 도시하지는 않았으나 캐쉬메모리와의 최종적인 매칭은 상기 제1비교신호와 상기 제1웨이 힛 신호 hitA 혹은 제2웨이 힛 신호 hitB를 논리합한 결과에 따라 이루어진다.
한편, 64비트의 가상 어드레스-VA[63 : 0]-에서 4K, 8K, 512K, 4M 페이지 크기를 지원하는 가변 길이는 다음과 같으며, 비교기와 레지스터의 길이는 이 페이지 크기에 따라 가변적이다.
VA[63 : 12] = VPN @ 4K
VA[63 : 13] = VPN @ 8K
VA[63 : 16] = VPN @ 64K
VA[63 : 19] = VPN @ 512K
VA[63 : 22] = VPN @ 4M
본 실시예에 따르면, 마이크로-TLB에서 가변 페이지 크기는 4K~4M 정도이다.
상술한 바와 같은 본 발명은 다음 명령어가 동일 페이지에 있을 경우 메인-TLB를 액세스하지 않고 마이크로-TLB를 액세스하여 힛/미스를 가림으로써 힛/미스 판별 시간을 최소화하고, 불필요한 명령어-TLB 액세스에 의한 전력 낭비를 없애며, 마이크로-TLB에서는 페이지 크기에 따라 가변 처리가 가능하여 효율적인 장점이 있다.
한편 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
Claims (2)
- 디지털 컴퓨터에서 가상 어드레스를 실제 어드레스로 변환하여 캐쉬메모리를 액세스하는 회로에 있어서, 하나의 가상페이지번호 엔트리, 상기 가상페이지번호 엔트리에 대응되는 하나의 실제페이지번호 엔트리, 임의의 명령에 대응되어 제어부로부터 발생된 가상어드레스와 상기 가상페이지번호 엔트리에 저장된 이전의 가상어드레스를 비교하여 힛 여부를 판단하는 비교기로 이루어진 마이크로-트랜슬레이션 룩 어헤드 버퍼와, 다수의 가상페이지번호 엔트리와 각 엔트리에 대응되는 비교기로 이루어진 콘텐트 어드레스블 메모리와 상기 다수의 가상페이지번호 엔트리에 대응되는 다수의 실제페이지번호 엔트리로 이루어진 램을 가지며, 상기 콘텐트 어드레스블 메모리의 각 비교기는 상기 마이크로-트랜슬레이션 룩 어헤드 버퍼의 비교기에서의 비교결과가 미스일 때, 임의의 명령에 대응되어 제어부로부터 발생된 상기 가상어드레스와 해당 가상페이지번호 엔트리의 가상어드레스를 비교하여 힛 여부를 판단하는 메인 트랜슬레이션 룩 어헤드 버퍼와, 상기 마이크로-트랜슬레이션 룩 어헤드 버퍼의 비교기에서의 비교결과가 힛이면 상기 실제페이지번호 엔트리의 실제 어드레스를 출력하고, 미스이면 상기 콘텐트 어드레스블 메모리의 비교기에서의 비교결과가 힛으로 판명된 가상페이지번호 엔트리의 가상어드레스에 대응되는 램의 실제 어드레스를 찾아 출력하여 캐쉬메모리를 액세스하는 선택부로 구성됨을 특징으로 하는 회로.
- 제1항에 있어서, 상기 마이크로-트랜슬레이션 룩 어헤드 버퍼의 가상페이지번호 엔트리는 페이지의 크기가 가변적인 것인지 아니면 고정된 것인지를 나타내는 정보를 저장하는 영역을 포함함을 특징으로 하는 회로.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019950043979A KR0184475B1 (ko) | 1995-11-27 | 1995-11-27 | 캐쉬메모리 액세스회로 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019950043979A KR0184475B1 (ko) | 1995-11-27 | 1995-11-27 | 캐쉬메모리 액세스회로 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR970029073A KR970029073A (ko) | 1997-06-26 |
KR0184475B1 true KR0184475B1 (ko) | 1999-05-15 |
Family
ID=19435903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019950043979A KR0184475B1 (ko) | 1995-11-27 | 1995-11-27 | 캐쉬메모리 액세스회로 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR0184475B1 (ko) |
-
1995
- 1995-11-27 KR KR1019950043979A patent/KR0184475B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR970029073A (ko) | 1997-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR920005280B1 (ko) | 고속 캐쉬 시스템 | |
KR960001946B1 (ko) | 우선 변환 참조버퍼 | |
US5265227A (en) | Parallel protection checking in an address translation look-aside buffer | |
US6014732A (en) | Cache memory with reduced access time | |
US6625715B1 (en) | System and method for translation buffer accommodating multiple page sizes | |
US5526504A (en) | Variable page size translation lookaside buffer | |
CA2022656C (en) | Translation look-aside buffer for a computer memory system | |
US6425055B1 (en) | Way-predicting cache memory | |
JPH10177520A (ja) | データプロセッサ及びデータ処理システム | |
JP2006172499A (ja) | アドレス変換装置 | |
JPH04352256A (ja) | メモリ空間を節約する方法および装置 | |
JPH08235072A (ja) | セットアソシアティブ方式メモリの動的分画化方法及び装置 | |
JPH06222996A (ja) | 高速仮想−物理アドレス変換及びキャッシュタグ照合方法及びシステム | |
CA1332984C (en) | Dual cache memory | |
KR20090117798A (ko) | 주소 변환 방법 및 장치 | |
JP3449487B2 (ja) | 変換索引緩衝機構 | |
US5530823A (en) | Hit enhancement circuit for page-table-look-aside-buffer | |
US4736287A (en) | Set association memory system | |
CN107533513B (zh) | 突发转换后备缓冲器 | |
KR100321107B1 (ko) | 데이타 프로세싱 시스템 내의 캐쉬 메모리를 억세싱하기 위한 방법 및 시스템 | |
US5386530A (en) | Address translation device capable of obtaining a real address from a virtual address in a shorter time | |
US7181590B2 (en) | Method for page sharing in a processor with multiple threads and pre-validated caches | |
JPH03235144A (ja) | キャッシュメモリ制御装置 | |
KR0184475B1 (ko) | 캐쉬메모리 액세스회로 | |
US6327646B1 (en) | Translation look-aside buffer utilizing high-order bits for fast access |
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: 20061128 Year of fee payment: 9 |
|
LAPS | Lapse due to unpaid annual fee |