KR100277902B1 - 마이크로 프로세서 - Google Patents
마이크로 프로세서 Download PDFInfo
- Publication number
- KR100277902B1 KR100277902B1 KR1019980033513A KR19980033513A KR100277902B1 KR 100277902 B1 KR100277902 B1 KR 100277902B1 KR 1019980033513 A KR1019980033513 A KR 1019980033513A KR 19980033513 A KR19980033513 A KR 19980033513A KR 100277902 B1 KR100277902 B1 KR 100277902B1
- Authority
- KR
- South Korea
- Prior art keywords
- tlb
- index
- data
- tag
- ram
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
-
- 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]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1054—Address 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
본 발명은 TLB(Translation Lookaside Buffer)를 5비트인 TLB 인덱스(TLB Index)를 포함하여 구성하고 태그 램(Tag RAM)도 TLB 인덱스와 비교할 5비트의 태그 램 인덱스를 포함하여 구성하기 때문에 4개의 태그 램 조사시 5×4번의 비교만으로도 히트/미스를 판별하므로 소자의 경제적 효율을 향상시키기 위한 마이크로 프로세서(Micro-processor)에 관한 것이다.
본 발명의 마이크로 프로세서는 하위비트는 실번지와 같고 상위비트는 실번지와 다른 가상 번지, 상기 가상 번지를 보존하는 제 1 래치, 상기 상위비트보다 적은 비트의 TLB 인덱스를 포함하여 구성되어 상기 제 1 래치로부터 상기 가상 번지의 상위비트를 입력받아 상기 가상 번지의 히트/미스를 판별하는 TLB, 상기 TLB와 상호 입/출력하여 상기 TLB에 새로운 데이터를 생성 및 저장시키는 TLB 미스 핸들러, 상기 TLB 또는 TLB 미스 핸들러의 출력을 입력받는 먹스, 상기 TLB 인덱스의 비교대상 데이터인 태그 램 인덱스를 포함하여 구성되어 상기 가상 번지의 하위 12비트를 입력받아 그에 해당하는 상기 태그 램 인덱스들을 선택하는 다수개의 태그 램, 상기 선택된 태그 램 인덱스와 상기 TLB 인덱스를 비교하는 제 1 비교기, 상기 먹스와 제 1 비교기의 출력을 입력받아 상기 태그 램에 새로운 데이터를 저장시키는 캐쉬 미스 핸들러, 상기 TLB 인덱스와 동일한 태그 램 인덱스에 해당하는 데이터를 출력시키며 상기 태그 램과 동일한 개수를 갖는 데이터 램와, 상기 데이터 램의 출력을 저장 및 외부에 출력하는 데이터 래치를 포함하여 구성됨을 특징으로 한다.
Description
본 발명은 마이크로 프로세서(Micro-processor)에 관한 것으로, 특히 소자의 경제적 효율을 향상시키는 마이크로 프로세서에 관한 것이다.
일반적인 4KB의 페이지(Page)크기를 가지는 MMU(Memory Management Unit)에서 공통으로 쓰이는 가상 번지(버츄얼 어드레스:Virtual Address) 즉 하위 12비트는 실번지(피지컬 어드레스:Physical Address)와 같고 상위 20비트는 실번지와 다른 32비트의 가상 번지를 마이크로 프로세서에서 입력받아 사이클(Cycle)마다 캐쉬 태그(Cache Tag)를 조사하여 캐쉬의 히트/미스(Hit/Miss)를 판별하므로 마이크로 프로세서는 많은 파워(Power)와 시간을 소모한다.
실지로 에스램(SRAM:Static Random Access Memory)이 전체 파워소모의 약 60%를 차지한다.
종래 기술에 따른 MMU 및 캐쉬는 도 1에서와 같이 구성된다.
먼저, MMU는 하위 12비트는 실번지와 같고 상위 20비트는 실번지와 다른 32비트의 가상 번지, 상기 가상 번지를 보존하는 제 1 래치(Latch)(11), 상기 제 1 래치(11)로 부터 상기 가상 번지의 상위 20비트를 입력받는 변환 색인 버퍼(TLB:Translation Lookaside Buffer)(12), 상기 TLB(12)와 상호 입/출력하는 TLB 미스 핸들러(TLB Miss Handler)(13)와, 상기 TLB(12) 또는 TLB 미스 핸들러(13)의 출력을 입력받는 먹스(Mux:Multiplexer)(14)로 구성된다.
그리고, 캐쉬는 상기 가상 번지의 하위 12비트를 입력받는 4개의 태그 램(Tag RAM)(15), 상기 가상 번지의 하위 12비트에 의해 선택된 태그 램(15)의 20비트와 상기 먹스(14)의 20비트를 비교하는 제 1 비교기(16), 상기 먹스(14)와 제 1 비교기(16)의 출력을 입력받는 캐쉬 미스 핸들러(17), 상기 태그 램(15)의 출력을 입력받는 4개의 데이터 램(Data RAM)(18)과, 상기 먹스(14)의 20비트와 동일한 태그 램(15)의 출력에 해당하는 데이터를 상기 데이터 램(18)으로 부터 입력받아 그 데이터를 저장 및 외부에 출력하는 데이터 래치(19)로 구성된다.
상기 TLB(12)는 도 2에서와 같이, 3비트인 8개의 LRU(Least Recently Used)(20), 상기 LRU(20)와 동일한 개수로 형성되며 20비트인 태그(21), 상기 태그(21)와 동일한 개수로 형성되어 상기 각 태그(21)의 특성 즉 상기 각 태그(21)가 밸리드(Valid)인지 변형된 것인지 그리고 업-그레이드(Up-grade)인지 등의 특성을 나타낸 애트리뷰트(Attribute)(22), 상기 태그(21)와 동일한 개수로 형성되며 20비트인 실페이지부(23), 상기 태그(21)들의 20비트와 상기 가상 번지의 상위 20비트를 비교하는 제 2 비교기(24)와, 애트리뷰트 체크부(25)로 구성된다.
여기서, 상기 LRU(20)는 상기 모든 태그(21)에 가상 번지의 데이터가 입력된 상태에서 새로운 가상 번지의 데이터를 상기 태그(21)에 입력할 때 기존에 주입된 가상 번지의 데이터들 중에 선택 소거하는 기준이 된다.
상기와 같이 구성된 종래 기술에 따른 MMU 및 캐쉬의 동작 설명은 다음과 같다.
먼저, 하위 12비트는 실번지와 같고 상위 20비트는 실번지와 다른 32비트의 가상 번지가 상기 제 1 래치(11)에 입력된다.
그리고, 상기 제 1 래치(11)에 보존된 상기 가상 번지의 하위 12비트는 상기 태그 램(15)에 출력되며, 상기 가상 번지의 상위 20비트는 상기 TLB(12)에 출력된다.
이때, 상기 4개의 태그 램(15)은 저장된 데이터들 중 그 하위 12비트가 입력받은 상기 가상 번지의 하위 12비트와 동일한 4개의 데이터들을 선택한다.
이어, 상기 TLB(12)는 저장된 각 태그(21)의 20비트와 입력받은 상기 가상 번지의 상위 20비트를 비교하여 상기 가상 번지의 상위 20비트와 동일한 태그(21)가 있으면 히트로 판별하고 없으면 미스로 판별한다.
먼저, 상기 TLB(12)에서 히트로 판별될 경우에는 즉 상기 가상 번지의 상위 20비트와 동일한 태그(21)가 있을 경우에는 그 태그(21)에 해당하는 실페이지부(23)의 20비트의 데이터를 상기 먹스(14)에 출력한다.
이때, 상기 먹스(14)는 상기 TLB(12)의 출력인 실페이지부(23)의 20비트의 데이터를 상기 제 1 비교기(16)에 출력하고, 상기 제 1 비교기(16)는 상기 TLB(12)의 출력인 실페이지부(23)의 20비트의 데이터와 상기 4개의 태그 램(15)에서 선택된 각 데이터를 비교한다.
그 비교결과 상기 TLB(12)의 출력인 실페이지부(23)의 데이터와 동일한 데이터가 상기 태그 램(15)에 있는 경우에는 상기 데이터 램(18)은 상기 태그 램(15)의 출력을 입력받아 그에 해당하는 하나의 데이터를 검출한 후, 상기 데이터 래치(19)를 거쳐 외부에 그 데이터를 출력한다.
그 반대로 비교결과가 상기 TLB(12)의 출력인 실페이지부(23)의 데이터와 동일한 데이터가 상기 태그 램(15)에 없는 경우에는 상기 캐쉬 미스 핸들러(17)에 미스의 결과를 출력한다.
상기 캐쉬 미스 핸들러(17)는 상기 태그 램(15)에서 미스된 상기 TLB(12)의 출력인 실페이지부(23)에 해당하는 데이터를 마이크로 프로세서의 메모리부(도시하지않음)로 부터 외부에 출력시키면서 상기 태그 램(15)과 데이터 램(18)에 저장시킨다.
그리고, 상기 TLB(12)에서 미스로 판별될 경우에는 즉 상기 가상 번지의 상위 20비트와 동일한 태그(21)가 없을 경우에는 상기 TLB 미스 핸들러(13)에 미스의 결과를 출력한다.
상기 TLB 미스 핸들러(13)에서 상기 TLB(12)에서 미스된 상기 가상 번지의 상위 20비트에 해당하는 태그(21) 및 실페이지부(23)를 생성하고, 상기 새로운 데이터의 태그(21)에 해당하는 실페이지부(23)의 20비트의 데이터를 상기 먹스(14)에 출력함과 동시에 상기 생성된 태그(21) 및 실페이지부(23)를 상기 TLB(12)에 저장시키고 이 후 동작은 히트가 된 경우와 같은 동작을 한다.
그러므로 상기 TLB(12)의 출력인 실페이지부(23) 데이터의 20비트를 모두 사용하여 상기 제 1 비교기(16)에서 상기 4개의 태그 램(15)을 조사하기 때문에 모두 20비트×4〔4개의 태그 램(15)〕즉 80번을 비교한다.
그러나 종래의 마이크로 프로세서는 TLB의 출력인 실페이지부 데이터의 20비트를 모두 사용하여 4개의 태그 램을 조사하기 때문에 모두 20비트×4번을 비교해야 히트/미스를 판별하므로, 비교 속도가 빠른 회로가 필요하고 파워의 소모가 많다는 것과 같이 경제적 효율이 저하되는 문제점이 있었다.
본 발명은 상기의 문제점을 해결하기 위해 안출한 것으로 TLB를 5비트인 TLB 인덱스를 포함하여 구성하고 태그 램도 TLB 인덱스와 비교할 5비트의 태그 램 인덱스를 포함하여 구성하기 때문에 4개의 태그 램 조사시 5×4번의 비교만으로도 히트/미스를 판별하므로 소자의 경제적 효율을 향상시키는 마이크로 프로세서를 제공하는데 그 목적이 있다.
도 1은 종래 기술에 따른 MMU 및 캐쉬를 나타낸 블록도
도 2는 종래 기술에 따른 TLB를 나타낸 블록도
도 3은 본 발명의 실시예에 따른 MMU 및 캐쉬를 나타낸 블록도
도 4는 본 발명의 실시예에 따른 TLB를 나타낸 블록도
도 5는 본 발명의 실시예에 따른 태그 램을 나타낸 회로도
도 6은 본 발명의 실시예에 따른 데이터의 무효화 처리를 위한 펄스도
도면의 주요부분에 대한 부호의 설명
31: 제 1 래치 32: TLB
33: TLB 미스 핸들러 34: 먹스
35: 태그 램 36: 제 1 비교기
37: 캐쉬 미스 핸들러 38: 데이터 램
39: 데이터 래치 40: LRU
41: 태그 42: 애트리뷰트
43: 실페이지부 44: 제 2 비교기
45: 애트리뷰트 체크부 46: TLB 인덱스
51: SRAM 셀 52: CAM 셀
53: 무효선택부 54: 무효 셀
본 발명의 마이크로 프로세서는 하위비트는 실번지와 같고 상위비트는 실번지와 다른 가상 번지, 상기 가상 번지를 보존하는 제 1 래치, 상기 상위비트보다 적은 비트의 TLB 인덱스를 포함하여 구성되어 상기 제 1 래치로부터 상기 가상 번지의 상위비트를 입력받아 상기 가상 번지의 히트/미스를 판별하는 TLB, 상기 TLB와 상호 입/출력하여 상기 TLB에 새로운 데이터를 생성 및 저장시키는 TLB 미스 핸들러, 상기 TLB 또는 TLB 미스 핸들러의 출력을 입력받는 먹스, 상기 TLB 인덱스의 비교대상 데이터인 태그 램 인덱스를 포함하여 구성되어 상기 가상 번지의 하위 12비트를 입력받아 그에 해당하는 상기 태그 램 인덱스들을 선택하는 다수개의 태그 램, 상기 선택된 태그 램 인덱스와 상기 TLB 인덱스를 비교하는 제 1 비교기, 상기 먹스와 제 1 비교기의 출력을 입력받아 상기 태그 램에 새로운 데이터를 저장시키는 캐쉬 미스 핸들러, 상기 TLB 인덱스와 동일한 태그 램 인덱스에 해당하는 데이터를 출력시키며 상기 태그 램과 동일한 개수를 갖는 데이터 램와, 상기 데이터 램의 출력을 저장 및 외부에 출력하는 데이터 래치를 포함하여 구성됨을 특징으로 한다.
상기와 같은 본 발명에 따른 마이크로 프로세서의 바람직한 실시예를 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다.
본 발명의 실시예에 따른 MMU 및 캐쉬는 도 3에서와 같이 구성된다.
먼저, MMU는 하위 12비트는 실번지와 같고 상위 20비트는 실번지와 다른 32비트의 가상 번지, 상기 가상 번지를 보존하는 제 1 래치(31), 상기 제 1 래치(31)로 부터 상기 가상 번지의 상위 20비트를 입력받으며 TLB 인덱스(TLB Index)(46)를 포함하여 구성된 TLB(32), 상기 TLB(32)와 상호 입/출력하는 TLB 미스 핸들러(33)와, 상기 TLB(32) 또는 TLB 미스 핸들러(33)의 출력을 입력받는 먹스(34)로 구성된다.
그리고, 캐쉬는 상기 가상 번지의 하위 12비트를 입력받으며 CAM(Content Addressable Memory) 셀(52)들을 포함하여 구성된 4개의 태그 램(35), 상기 가상 번지의 하위 12비트에 의해 선택된 태그 램(35)의 CAM 셀(52)들에 저장된 5비트의 태그 램 인덱스와 상기 TLB 인덱스(46)의 5비트를 비교하는 제 1 비교기(36), 상기 먹스(34)와 제 1 비교기(36)의 출력을 입력받는 캐쉬 미스 핸들러(37), 상기 태그 램(35)의 출력을 입력받는 4개의 데이터 램(38)과, 상기 데이터 램(38)의 출력을 저장 및 외부에 출력하는 데이터 래치(39)로 구성된다.
여기서, 상기 TLB(32)는 도 4에서와 같이, 3비트인 8개의 LRU(40), 상기 LRU(20)와 동일한 개수로 형성되며 20비트인 태그(41), 상기 태그(41)와 동일한 개수로 형성되어 상기 각 태그(41)의 특성 즉 상기 각 태그(41)가 밸리드인지 변형된 것인지 그리고 업-그레이드인지 등의 특성을 나타낸 애트리뷰트(42), 상기 태그(41)와 동일한 개수로 형성되며 20비트인 실페이지부(43), 상기 태그(41)들의 20비트와 상기 가상 번지의 상위 20비트를 비교하는 제 2 비교기(44)와, 애트리뷰트 체크부(45) 그리고 상기 각 실페이지부(43) 일측에 5비트로 구성된 TLB 인덱스(46)로 구성된다.
상기 LRU(40)는 상기 모든 태그(41)에 가상 번지의 데이터가 입력된 상태에서 새로운 가상 번지의 데이터를 상기 태그(41)에 입력할 때 기존에 주입된 가상 번지의 데이터들 중에 선택 소거하는 기준이 된다.
이어, 상기 태그 램(35)은 도 5에서와 같이, 워드라인, 비트라인, 센스 앰프(Sense Amp.)(57), BLP(Bit Line Precharge)(58), 상기 하위 12비트의 가상 번지를 입력받는 디코더(47)와 상기 디코더(47)의 출력을 상기 다수개의 워드라인으로 부터 입력받으며 그 출력데이터를 상기 다수개의 비트라인을 통해 상기 센스 앰프(57)에 출력하는 SRAM 셀(Cell)(51)들과 CAM 셀(52)들 그리고 무효선택부(53)와 무효 셀(54)들로 구성된다.
여기서, 상기 TLB 인덱스(46)와 상기 제 1 비교기(36)에서 비교할 상기 5비트의 태그 램 인덱스는 상기 CAM 셀(52)들에 저장된다.
그리고 그 외에, 상기 태그 램(35)은 상기 센스 앰프(57)의 출력데이터 즉 상기 5비트의 태그 램 인덱스와 5비트의 TLB 인덱스(46)를 비교하는 제 1 비교기(36) 그리고 변형 제어기(55), 무효 제어기(56)와, 매치 라인(Match Line)이 있다.
여기서, 상기 각 SRAM 셀(51)은 게이트가 상기 워드라인에 연결되고 하나의 불순물영역은 상기 비트라인에 연결되며 다른 하나의 불순물영역은 서로 다른 방향의 두 개의 제 1 인버터(i1)에 공통으로 연결된 두 개의 제 1, 제 2 NMOS(N1,N2)로 구성된다.
상기 각 CAM 셀(52)은 게이트가 상기 워드라인에 연결되고 제 1 불순물영역은 상기 비트라인에 연결되며 제 2 불순물영역은 서로 다른 방향의 두 개의 제 2 인버터(i2)에 공통으로 연결된 두 개의 제 3, 제 4 NMOS(N3,N4), 상기 제 4 NMOS의 제 2 불순물영역의 출력에 게이트가 연결되고 하나의 불순물영역은 상기 비트라인에 연결된 제 5 NMOS(N5), 상기 제 3 NMOS(N3)의 제 2 불순물영역의 출력에 게이트가 연결되고 하나의 불순물영역은 상기 비트라인에 연결된 제 6 NMOS(N6)와, 상기 제 5, 제 6 NMOS(N5,N6)의 다른 하나의 불순물영역에 공통으로 게이트가 연결되고 VSS에 하나의 불순물 영역이 연결되며 상기 매치 라인에 다른 하나의 불순물 영역이 연결된 제 7 NMOS(N7)로 구성된다.
상기 무효선택부(53)은 플러쉬프리차아지(Flush-precharge)신호, 플러쉬신호, 플러쉬인에이블(Flush-enable)신호, 상기 반전된 플러쉬프리차아지신호에 게이트가 연결되고 하나의 불순물영역은 구동전압(VDD)에 연결되며 다른 하나의 불순물영역은 상기 매치 라인에 연결된 두 개의 제 1 PMOS(P1), 상기 반전된 플러쉬신호에 게이트가 연결되고 하나의 불순물영역은 상기 매치 라인에 연결된 두 개의 제 8 NMOS(N8)와, 상기 반전된 플러쉬인에이블신호에 게이트가 연결되고 하나의 불순물영역은 VSS에 연결되며 다른 하나의 불순물영역은 상기 매치 라인에 연결되지 않은 각 제 8 NMOS(N8)의 불순물영역에 연결된 두 개의 제 9 NMOS(N9)로 구성된다.
상기 각 무효 셀(54)은 상기 워드라인과 상기 제 8, 제 9 NMOS(N8,N9)의 공통 불순물영역의 출력을 입력받아 상기 비트라인에 출력하며 그 사이에 서로 다른 방향의 두 개의 제 3 인버터(i3)에 공통으로 연결된 제 1, 제 2 트랜스퍼게이트(T1,T2)로 구성된다.
상기와 같이 구성된 본 발명의 실시예에 따른 MMU 및 캐쉬의 동작 설명은 다음과 같다.
먼저, 하위 12비트는 실번지와 같고 상위 20비트는 실번지와 다른 32비트의 가상 번지가 상기 제 1 래치(31)에 입력된다.
그리고, 상기 제 1 래치(31)에 보존된 상기 가상 번지의 하위 12비트는 상기 태그 램(35)에 출력되며, 상기 가상 번지의 상위 20비트는 상기 TLB(32)에 출력된다.
이때, 상기 4개의 태그 램(35)은 저장된 데이터들 중 그 하위 12비트가 입력받은 상기 가상 번지의 하위 12비트와 동일한 4개의 데이터들을 선택한다.
이어, 상기 TLB(32)는 저장된 각 태그(41)의 20비트와 입력받은 상기 가상 번지의 상위 20비트를 비교하여 상기 가상 번지의 상위 20비트와 동일한 태그(41)가 있으면 히트로 판별하고 없으면 미스로 판별한다.
상기 TLB(32)에서 히트로 판별될 경우에는 즉 상기 가상 번지의 상위 20비트와 동일한 태그(41)가 있을 경우에는 그 태그(41)에 해당하는 5비트의 TLB 인덱스(46)를 상기 제 1 비교기(36)에 출력하고, 그 태그(41)에 해당하는 실페이지부(43)의 20비트의 데이터를 상기 먹스(34)에 출력한다.
상기 제 1 비교기(36)는 상기 TLB 인덱스(46)의 5비트 데이터와 상기 4개의 태그 램(35)에서 선택된 각 데이터의 태그 램 인덱스를 비교한다.
그 비교결과 상기 TLB(32)의 출력인 TLB 인덱스(46)의 5비트 데이터와 동일한 데이터가 상기 태그 램(35)에 있는 경우 상기 데이터 램(38)은 상기 태그 램(35)의 출력을 입력받아 그에 해당하는 하나의 데이터를 검출한 후, 상기 데이터 래치(39)를 거쳐 외부에 그 데이터를 출력한다.
그 반대로 비교결과가 상기 TLB(32)의 출력인 TLB 인덱스(46)의 5비트 데이터와 동일한 데이터가 상기 태그 램(35)에 없는 경우에는 상기 캐쉬 미스 핸들러(37)에 미스의 결과를 출력한다.
상기 캐쉬 미스 핸들러(37)는 상기 태그 램(35)에서 미스된 상기 TLB(32)의 출력인 TLB 인덱스(46)의 5비트에 해당하는 데이터를 마이크로 프로세서의 메모리부(도시하지않음)로 부터 외부에 출력시키면서 상기 태그 램(35)과 데이터 램(38)에 저장시킨다.
그러므로 상기 TLB(32)의 출력인 TLB 인덱스(46)의 5비트 데이터를 사용하여 상기 제 1 비교기(36)에서 상기 4개의 태그 램(35)을 조사하기 때문에 5비트×4〔4개의 태그 램(35)〕즉 20번만 비교한다.
만약 상기 TLB(32)에서 미스로 판별될 경우에는, 마이크로프로세서에서 실번지 출력을 멈춘 후, 상기 TLB 미스 핸들러(33)에서 상기 미스로 판별된 가상 번지를 계산하고 그 결과를 상기 TLB(32)와 먹스(34)에 출력한다.
이 후 동작은 히트가 된 경우와 같은 동작을 한다.
이어, 상기 TLB(32)에서 상기 미스로 판별된 가상 번지의 내용을 갱신(업데이트:Update)한다.
이때, 상기 TLB 인덱스(46)들중에 갱신 대상인 갱신 이전의 TLB 인덱스(46)를 가지는 캐쉬의 데이터는 실번지와 다르므로 무효화 시켜야 한다.
즉, 만약에 미스가 발생해 “01011”에 해당하는 태그(41)가 갱신되었다면 상기“01011”을 인덱스로 가지는 캐쉬의 태그 램(35)의 데이터를 무효화 처리 되어야 한다.
데이터의 무효화 처리 방법은 도 6에서와 같이, 상기 TLB(32)에서 미스로 판별되지 않을 때는 상기 플러쉬인에이블이 로우이므로 상기 제 1 PMOS(P1)와 제 8 NMOS(N8)가 턴-오프(Turn-off)되고 상기 제 9 NMOS(N9)가 턴-온(Turn-on)된다.
상기 TLB(32)에서의 미스 판별로 상기 플러쉬인에이블이 하이가 되면 상기 제 1 PMOS(P1)가 턴-온되어 상기 무효선택부(53)가 VDD로 프리차아지(Precharge)된다.
이때, 상기 무효화 셀(54)들의 비트라인은 ‘1’로 셋트(Set)된 상태이다.
상기 무효선택부(53)가 VDD로 프리차아지된 상태에서 상기“01011”를 상기 비트라인에 입력시키면 매치되는 상기 SRAM 셀(51)의 태그 매치 라인만 하이로 유지되고 미스 매치되는 매치 라인은 로우가 된다.
이때, 플러쉬가 하이되어 제 8 NMOS(N8)가 턴-온되면 상기 무효화 셀(54)의 제 1, 제 2 트랜스퍼게이트(T1,T2)가 턴-온된다.
본 발명의 마이크로 프로세서는 MMU의 TLB를 5비트인 TLB 인덱스를 포함하여 구성하고 캐쉬의 태그 램도 TLB 인덱스와 비교할 5비트 데이터의 태그 램 인덱스를 포함하여 구성하므로, 5비트인 TLB 인덱스를 사용하여 4개의 태그 램을 조사하기 때문에 5비트×4번만의 비교로 히트/미스를 판별하여 비교 속도가 약75%향상되므로 비교 속도가 빠른 회로가 별도로 필요하지 않고, 파워의 소모가 종래 기술보다 약75%가 감소되는 등의 소자의 경제적 효율을 향상시키며 또한 선택 플러쉬가 가능한 캐쉬 태그 램을 구성하므로, 데이터의 무효화시 TLB를 사용하지 않고 데이터의 무효화를 선택적으로 하는 인텔러젼트(Intelligent) 캐쉬 디자인이 가능하다는 효과가 있다.
Claims (4)
- 하위비트는 실번지와 같고 상위비트는 실번지와 다른 가상 번지를 보존하는 제 1 래치;상기 상위비트보다 적은 비트의 TLB 인덱스를 포함하여 구성되어 상기 제 1 래치로부터 상기 가상 번지의 상위비트를 입력받아 상기 가상 번지의 히트/미스를 판별하는 TLB;상기 TLB와 상호 입/출력하여 상기 TLB에 새로운 데이터를 생성 및 저장시키는 TLB 미스 핸들러;상기 TLB 또는 TLB 미스 핸들러의 출력을 입력받는 먹스;상기 TLB 인덱스의 비교대상인 태그 램 인덱스가 저장된 CAM 셀들을 포함하여 구성되어 상기 가상 번지의 하위 12비트를 입력받아 그에 해당하는 상기 태그 램 인덱스들을 선택하는 다수개의 태그 램;상기 선택된 태그 램 인덱스와 상기 TLB 인덱스를 비교하는 제 1 비교기;상기 먹스와 제 1 비교기의 출력을 입력받아 상기 태그 램에 새로운 데이터를 저장시키는 캐쉬 미스 핸들러;상기 TLB 인덱스와 동일한 태그 램 인덱스에 해당하는 데이터를 출력시키며 상기 태그 램과 동일한 개수를 갖는 데이터 램;상기 데이터 램의 출력을 저장 및 외부에 출력하는 데이터 래치를 포함하여 구성됨을 특징으로 하는 마이크로 프로세서.
- 상기 제 1 항에 있어서,상기 태그 램은 워드라인, 비트라인, 센스 앰프, BLP, 상기 하위 12비트의 가상 번지를 입력받는 디코더와, 상기 디코더의 출력을 다수개의 워드라인으로 부터 입력받으며 그 출력데이터를 다수개의 비트라인을 통해 상기 센스 앰프에 출력하는 SRAM 셀들과 CAM 셀들 그리고 무효선택부, 무효 셀들, 상기 태그 램 인덱스와 상기 5비트의 TLB 인덱스를 비교하는 제 1 비교기, 변형 제어기, 무효 제어기와, 매치 라인으로 구성됨을 특징으로 하는 마이크로 프로세서.
- 상기 제 2 항에 있어서,상기 무효선택부은 플러쉬프리차아지신호, 플러쉬신호, 플러쉬인에이블신호, 상기 반전된 플러쉬프리차아지신호에 게이트가 연결되고 하나의 불순물영역은 구동전압에 연결되며 다른 하나의 불순물영역은 상기 매치 라인에 연결된 두 개의 제 1 PMOS, 상기 반전된 플러쉬신호에 게이트가 연결되고 하나의 불순물영역은 상기 매치 라인에 연결된 두 개의 제 8 NMOS와, 상기 반전된 플러쉬인에이블신호에 게이트가 연결되고 하나의 불순물영역은 VSS에 연결되며 다른 하나의 불순물영역은 상기 매치 라인에 연결되지 않은 각 제 8 NMOS의 불순물영역에 연결된 두 개의 제 9 NMOS로 구성됨을 특징으로 하는 마이크로 프로세서.
- 상기 제 2 항 또는 제 3 항에 있어서,상기 각 무효 셀은 상기 워드라인과 상기 제 8, 제 9 NMOS의 공통 불순물영역의 출력을 입력받아 상기 비트라인에 출력하며 그 사이에 서로 다른 방향의 두 개의 제 3 인버터에 공통으로 연결된 제 1, 제 2 트랜스퍼게이트로 구성됨을 특징으로 하는 마이크로 프로세서.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019980033513A KR100277902B1 (ko) | 1998-08-18 | 1998-08-18 | 마이크로 프로세서 |
US09/280,066 US6286091B1 (en) | 1998-08-18 | 1999-03-29 | Microprocessor using TLB with tag indexes to access tag RAMs |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019980033513A KR100277902B1 (ko) | 1998-08-18 | 1998-08-18 | 마이크로 프로세서 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20000014225A KR20000014225A (ko) | 2000-03-06 |
KR100277902B1 true KR100277902B1 (ko) | 2001-01-15 |
Family
ID=19547574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019980033513A KR100277902B1 (ko) | 1998-08-18 | 1998-08-18 | 마이크로 프로세서 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6286091B1 (ko) |
KR (1) | KR100277902B1 (ko) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2395588B (en) * | 1999-12-17 | 2004-09-22 | Hewlett Packard Co | Apparatus and method for supporting multiple page sizes with address aliasing |
US6970996B1 (en) * | 2000-01-04 | 2005-11-29 | National Semiconductor Corporation | Operand queue for use in a floating point unit to reduce read-after-write latency and method of operation |
US6807611B2 (en) * | 2002-04-05 | 2004-10-19 | International Business Machine Corporation | High speed selective mirroring of cached data |
DE10261919A1 (de) * | 2002-11-26 | 2004-06-17 | Infineon Technologies Ag | CAM (Content Adressable Memory) - Vorrichtung |
US6912644B1 (en) | 2003-03-06 | 2005-06-28 | Intel Corporation | Method and apparatus to steer memory access operations in a virtual memory system |
KR100582357B1 (ko) * | 2003-12-29 | 2006-05-22 | 주식회사 하이닉스반도체 | 로우디코딩을 효율적으로 할 수 있는 태그블럭을 구비하는반도체 메모리 장치 |
CN100414518C (zh) * | 2004-11-24 | 2008-08-27 | 中国科学院计算技术研究所 | 改进的虚拟地址变换方法及其装置 |
CN100414519C (zh) * | 2004-11-24 | 2008-08-27 | 中国科学院计算技术研究所 | 一种从虚拟地址向物理地址变换的方法及其装置 |
US8166239B2 (en) * | 2007-06-21 | 2012-04-24 | International Business Machines Corporation | Translation lookaside buffer and related method and program product utilized for virtual addresses |
US8904083B2 (en) * | 2008-07-30 | 2014-12-02 | Infineon Technologies Ag | Method and apparatus for storing data in solid state memory |
US8099580B2 (en) * | 2009-06-09 | 2012-01-17 | Freescale Semiconductor, Inc | Translation look-aside buffer with a tag memory and method therefor |
US10083135B2 (en) * | 2015-08-28 | 2018-09-25 | Macronix International Co., Ltd. | Cooperative overlay |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5307477A (en) | 1989-12-01 | 1994-04-26 | Mips Computer Systems, Inc. | Two-level cache memory system |
US5412787A (en) | 1990-11-21 | 1995-05-02 | Hewlett-Packard Company | Two-level TLB having the second level TLB implemented in cache tag RAMs |
US5630088A (en) * | 1995-03-09 | 1997-05-13 | Hewlett-Packard Company | Virtual to physical address translation |
US5646878A (en) * | 1995-06-02 | 1997-07-08 | Motorola, Inc. | Content addressable memory system |
US5893146A (en) * | 1995-08-31 | 1999-04-06 | Advanced Micro Design, Inc. | Cache structure having a reduced tag comparison to enable data transfer from said cache |
US6014732A (en) * | 1997-10-22 | 2000-01-11 | Hewlett-Packard Company | Cache memory with reduced access time |
-
1998
- 1998-08-18 KR KR1019980033513A patent/KR100277902B1/ko not_active IP Right Cessation
-
1999
- 1999-03-29 US US09/280,066 patent/US6286091B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US6286091B1 (en) | 2001-09-04 |
KR20000014225A (ko) | 2000-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5696925A (en) | Memory management unit with address translation function | |
US6678815B1 (en) | Apparatus and method for reducing power consumption due to cache and TLB accesses in a processor front-end | |
US5428565A (en) | Single stage sensing apparatus for a content addressable memory | |
US5809528A (en) | Method and circuit for a least recently used replacement mechanism and invalidated address handling in a fully associative many-way cache memory | |
KR0148129B1 (ko) | 논리기능을 가진 감지증폭기 | |
US8607026B2 (en) | Translation lookaside buffer | |
JP3936378B2 (ja) | アドレス変換装置 | |
US5155825A (en) | Page address translation cache replacement algorithm with improved testability | |
KR100277902B1 (ko) | 마이크로 프로세서 | |
US6356990B1 (en) | Set-associative cache memory having a built-in set prediction array | |
US20030070039A1 (en) | Circuit and method for performing variable width searches in a content addressable memory | |
JPH08329687A (ja) | 半導体集積回路 | |
US6697277B2 (en) | Content addressable memory (CAM) having a match line circuit with selectively adjustable pull-up impedances | |
US8154900B2 (en) | Method and apparatus for reducing power consumption in a content addressable memory | |
EP0690386A1 (en) | Address translator and method of operation | |
EP0905709A2 (en) | Single ended match sense amplifier | |
US7242600B2 (en) | Circuit and method for subdividing a CAMRAM bank by controlling a virtual ground | |
JP4445081B2 (ja) | キャッシュ・メモリ | |
US6785152B2 (en) | Content addressable memory with power reduction technique | |
US6058447A (en) | Handshake circuit and operating method for self-resetting circuits | |
US6111794A (en) | Memory interface circuit including bypass data forwarding with essentially no delay | |
US6385696B1 (en) | Embedded cache with way size bigger than page size | |
JP2001265654A (ja) | セルフタイム式tlbのメモリアクセス方法 | |
US5729190A (en) | Dynamic comparator circuit for cache memories | |
JPH06202954A (ja) | タグ比較回路及びこれを用いたトランスレーション・ルック・アサイド・バッファ |
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: 20050923 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |