KR100382395B1 - 컴퓨터메모리에정보를기억하는방법및장치 - Google Patents

컴퓨터메모리에정보를기억하는방법및장치 Download PDF

Info

Publication number
KR100382395B1
KR100382395B1 KR1019950052446A KR19950052446A KR100382395B1 KR 100382395 B1 KR100382395 B1 KR 100382395B1 KR 1019950052446 A KR1019950052446 A KR 1019950052446A KR 19950052446 A KR19950052446 A KR 19950052446A KR 100382395 B1 KR100382395 B1 KR 100382395B1
Authority
KR
South Korea
Prior art keywords
block
replaceable
blocks
data
memory
Prior art date
Application number
KR1019950052446A
Other languages
English (en)
Other versions
KR960024989A (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 KR960024989A publication Critical patent/KR960024989A/ko
Application granted granted Critical
Publication of KR100382395B1 publication Critical patent/KR100382395B1/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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning

Abstract

세트-결합 메모리 장치를 동적으로 분할하기 위한 장치 및 방법이 기술된다. 이 장치는 캐쉬 메모리 또는 해석 룩어사이드 버퍼내에서 세트-결합데이타 블록의 그룹을 지정하기 위하여 세트 식별장치를 포함한다. 블록 교체로직회로는 새로운 정보를 기억할 수 있는 세트-결합데이타 블록내에서 교체가능한 블록을 식별하는데 이용된다. 또한 블록교체로직회로는 새로운 정보를 기억할 수 없는 세트-결합 데이타 블록내에서 교체불가능한 블록을 식별하는데 이용된다. 블록교체로직회로는 새로운 정보를 세트-결합 데이타 블록의 교체가능한 블록에 기입한다. 블록교체로직회로는 교체가능한 블록과 교체불가능한 블록을 세트-결합 데이타 블록내에서 식별하기 위해 블록교체 마스크를 이용하여 실행될 수 있다.

Description

컴퓨터 메모리에 정보를 기억하는 방법 및 장치
본 발명은 컴퓨터 메모리 내에 정보를 기억하는 것에 관한 것으로, 특히 본 발명은 메모리 장치에서 선택된 데이터가 겹쳐 쓰여지는 것 즉, 선택된 데이터 상에 다른 데이터가 겹쳐 쓰여지는 것을 방지하기 위해 동적으로 분할되는 캐쉬 메모리 또는 변환 색인 버퍼와 같은 세트 결합 메모리 장치를 기술하고 있다.
컴퓨터는 프로그램을 실행함으로써 동작한다. 프로그램은 데이타 세트와 관련하여 실행되는 일련의 논리동작이다. 데이타는 물리적인 어드레스로써 명시된다. 물리적 어드레스는 컴퓨터에 의해 억세스되며, 물리적인 어드레스에 기억된 프로그램의 지정된 논리동작에 따라 처리된다.
다른 기술은 물리적인 어드레스를 처리하는데 이용된다. 세트 결합 메모리 구조는 데이타 블록 세트를 액세스하기 위해 물리적인 어드레스의 일부를 이용한다. 이때 물리적인 어드레스의 다른 세그먼트는 데이타 블록 세트의 각 블록에서 태그 필드와의 비교를 위해 이용된다. 데이타 블록 세트에서 한 블록의 태그필드가 물리적인 어드레스 세그먼트와 매치되면, 그 블록으로부터 데이터가 다음 처리를 위해 이용된다.
세트 결합 메모리 구조는 전체 결합 메모리 구조와 반대로 유지된다. 전체 결합 메모리 구조에서, 메모리 구조는 세트 내의 다수의 블록을 가진 사실상 하나의 세트를 가진다. 데이타는 단일 세트의 어떤 블록에 기입되거나 어떤 블록으로부터 판독될 수 있다. 직접 맵핑된 메모리 구조에서는, 다수의 세트가 정의되며, 각 세트는 하나의 블록을 포함한다. 데이타는 직접 맵핑된 메모리의 어느 세트에도 기입될 수 있고 어느 세트로부터도 판독될 수 있다.
캐쉬 메모리는 자주 억세스되는 데이타를 기억하는데 이용되는 메모리 구조이다. 캐쉬 메모리의 장점은 매우 빠르다는 것이다. 따라서, 자주 억세스되는 데이터는 캐쉬 메모리에 유지하는 것이 매우 바람직하다.
캐쉬 메모리는 전형적으로 세트 결합 메모리 구조, 전체 결합 메모리 구조 또는 직접 맵핑된 메모리 구조를 이용한다. 본 발명은 세트 결합 캐쉬 메모리에 관한 것이다. 본 발명의 기술은 변환 색인 버퍼와 같은 다른 세트 결합 메모리 구조에도 동일하게 적용할 수 있다.
캐쉬 메모리는 하나 이상의 프로그램의 실행과 결합하여 이용된다. 컴퓨터는 흔히 여러 프로그램을 실행한다. 컴퓨터가 여러 프로그램을 실행할 때, 각각의 프로그램은 캐쉬 메모리에 자주 이용되는 데이타를 로드하기 위해 시도한다. 제어(Control)가 제 1 프로그램에서 제 2 프로그램으로 스위치될 때, 제 2 프로그램은 캐쉬 메모리에 자주 이용되는 데이타를 로드하게 되며, 이에 의해 자주 이용되는 제 1 프로그램의 데이터가 겹쳐 쓰여진다. 즉, 제 2 프로그램으로부터의 데이타가 캐쉬에서 요구되기 때문에, 제 1 프로그램으로부터의 정보를 갖는 각각의 블록은 제2 프로그램으로부터의 정보와 겹쳐 쓰여지게 된다. 프로세싱이 제 1 프로그램으로 복귀될 때, 자주 이용되는 제 1 프로그램의 데이타는 캐쉬 메모리에 더 이상 없다. 결과적으로 자주 이용되는 제 1 프로그램의 데이타는 캐쉬 메모리에 다시 로드되어야만 한다. 물론, 이런 동작에 의해 자주 이용되는 제2 프로그램의 데이터가 겹쳐 쓰여지며, 제 2 프로그램이 나중에 호출될 때 이 데이타의 재-로딩을 필요로 하게 된다.
캐쉬 메모리의 교체는 프로세싱 지연을 발생한다. 따라서, 여러 프로그램을 실행하는 컴퓨터의 캐쉬 메모리에 자주 이용되는 데이타가 겹쳐 쓰여지는 것과 관련된 프로세싱 지연을 감소시키기 위한 기술을 제공하는 것이 매우 바람직하다. 또한, 변환 색인 버퍼와 같이 다른 세트 결합 메모리 구조에 상기 기술을 적용하는 것이 바람직하다.
본 발명은 세트 결합 메모리 구조를 동적으로 분할하는 장치이다. 이 장치는 캐쉬 메모리 또는 변환 색인 버퍼에서 세트 결합 데이타 블록의 그룹을 지정하기 위한 세트 식별 장치를 포함한다. 블록 교체 로직 회로는 새로운 정보를 기억할 수 있는 세트 결합 데이타 블록 내의 교체 가능한 블록과 새로운 정보를 기억할 수 없는 세트 결합 데이타 블록 내의 교체 불가능한 블록을 식별하는데 이용된다. 바람직하게는, 세트 결합 데이타 블록내에서 교체 가능한 블록과 교체 불가능한 블록을 식별하기 위해 블록 교체 마스크를 이용하여 블록 교체 로직회로가 구현된다. 블록 교체 로직 회로는 단지 세트 결합 데이타 블록의 교체 가능한 블록에만 새로운 정보를 기록한다.
본 발명의 방법은 캐쉬 메모리 또는 변환 색인 버퍼와 같은 메모리 구조에서 데이타 블록 세트를 인덱스하는 단계를 포함한다. 그러므로, 블록 교체 로직은 새로운 정보를 기억할 수 있는 데이타 블록 세트 내의 교체 가능한 블록과 새로운 정보를 기억할 수 없는 데이타 블록 세트 내의 교체 불가능한 정보를 식별하는데 이용된다. 새로운 정보는 단지 데이타 블록 세트의 교체 가능한 블록에만 기록된다.
메모리 구조에 데이타를 기록하는 능력을 제한함으로써, 컴퓨터에서 실행되는 프로세스 사이에서 스위치하는 동안 자주 이용되는 데이타가 겹쳐 쓰여지는 것을 방지하기 위해 메모리 구조가 동적 형태로서 분할될 수 있다. 따라서, 컴퓨터에서 실행되는 자주 이용되는 지배적인 프로세스의 데이타는 덜 빈번히 이용되는 프로세스가 메모리 구조로 정보를 기록할 때 겹쳐 쓰이지 않게 된다.
본 발명의 특성 및 목적을 더 잘 이해하기 위하여, 첨부된 도면과 관련하여상세하게 설명한다.
본 발명은 세트 결합 메모리 장치를 동적으로 분할하기 위한 방법 및 장치에 관한 것이다. 설명을 위하여, 본 발명은 캐쉬 메모리와 변환 색인 버퍼와 관련하여 기술된다. 처음에 컴퓨터 내의 캐쉬 메모리와 변환 색인 버퍼의 일반적 동작을 설명한다. 이어서, 동적으로 분할된 본 발명의 세트 결합 메모리 장치를 구비한 컴퓨터를 설명한다.
제 1도는 시스템 버스(18)를 통해 1차 메모리(일반적으로 RAM ; 14) 및 2차 메모리(일반적으로 디스크 저장장치 ; 16)와 통신하는 중앙처리장치(12)를 포함하는 범용 컴퓨터(10)를 도시한다. 또한 키보드, 모니터, 프린터 또는 데이타 수집 카드와 같은 입/출력 장치(20)가 시스템 버스(18)에 접속된다. CPU(12)는 후술하는 바와 같이, 1차 메모리(14)에 기억되는 하나 이상의 컴퓨터 프로그램을 실행한다.
컴퓨터 프로그램 내의 대부분의 명령과 데이타는 대응하는 가상 어드레스를 갖는다. 이때 각각의 가상 어드레스는 물리적인 어드레스로 변환된다. 후술되는 바와 같이, 변환 색인 버퍼(22)는 가상 어드레스와 물리적인 어드레스간의 신속한 변환을 위해 이용된다. 이때 물리적인 어드레스는 캐쉬 메모리(24) 내의 물리적인 어드레스와 비교된다. 캐쉬 메모리(24)는 최근에 이용된 또는 빈번히 이용되는 물리적인 어드레스와 이 물리적인 어드레스에 대응하는 데이타를 기억한다. 지정된 물리적인 어드레스가 캐쉬 메모리(24)에 없다면, 1차 메모리(14)에 물리적 어드레스를 위치시키는 어떤 시도가 행해진다. 요구한 정보가 1차 메모리(14)에 없으면, 페이지 결함이 발생하며, CPU(12)는 필요한 정보를 2차 메모리(16)로부터 1차메모리(14)로 로드한다.
컴퓨터에서 가상 어드레스를 이용하는 것은 흔히 "가상 메모리"라고 불리는 기술이다. 실제로 모든 컴퓨터는 가상 메모리에 의존한다. 가상 메모리는 컴퓨터가 컴퓨터의 실제 메모리 저장 용량을 초과할 수 있는 어드레스의 범위를 포함하는 프로그램을 실행하도록 허용한다. 따라서, 프로그래머는 메모리 사이즈에 의해 제한되지 않으며, 프로그램은 서로 다른 메모리 용량을 가진 하드웨어 환경 사이에서 이동할 수 있다.
상술한 바와 같이 가상 어드레스와 물리적인 어드레스간에 변환할 필요가 있다. 가상 어드레스는 프로그램에 의해 국부적으로 이용되는 어드레스이다. 물리적인 어드레스는 1차 메모리(14)에서 정보의 실제 물리적인 위치를 지정한다.
제 2도는 가상 어드레스와 물리적인 어드레스간의 변환동작을 기술한다. 1차 메모리(14)에 기억된 컴퓨터 프로그램(32)은 명령 세트를 포함하며, 그러한 하나의 명령이 제 2도에 요소(34)로 기재되어 있다. 명령(34)은 가상 어드레스 "0004734"에 대응하는 메모리의 내용을 레지스터 "R"로 이동("MOV")시키는 명령이다. 번호는 16개가 기초인 16진수이다. 가상 어드레스(36)는 가상 메모리 페이지 어드레스로 불리는 가상 페이지 번호 "0004"(38)를 포함하며, 이 번호가 페이지 테이블(40)로 맵핑된다. 페이지 테이블(40)은 페이지 테이블 변환 엔트리(42) 세트를 포함한다. 각각의 페이지 테이블 변환 엔트리(42)는 가상 페이지 번호(44), 유효 비트(46), 및 물리적 페이지 번호(48; 물리적인 메모리 페이지 어드레스라 호칭됨)를 포함한다. 유효 비트가 설정되면(디지털 1), 이는 가상 페이지 번호(38)에 대응하는 물리적인 페이지 번호(48)가 1차 메모리(14)에 존재함을 나타낸다. 유효 비트가 설정되지 않으면, 페이지 오류가 발생하고 물리적인 페이지 번호(48)는 CPU(12)에 의해 2차 메모리(16)에서 발견되어야 한다. 물리적인 페이지 번호(48)는 1차 메모리(14)에서 메모리의 페이지를 지정한다. 여기서는 1차 메모리(14)와 물리적인 메모리라는 용어가 함께 사용된다.
제 2도는 가상 페이지 번호를 가상 어드레스로 이용하는 것을 도시한다. 당업자는 가상 페이지 번호가 가상 어드레스의 파생을 허용하는 엔트리로 교체될 수 있음을 이해할 것이다. 가상 페이지 번호 또는 가상 메모리 변환 엔트리에 대한 언급은 어떤 가상 페이지 번호 시스템 또는 가상 어드레스를 파생하는데 이용되는 관련 체제를 기술하려는 것이다.
완전한 물리적 어드레스(50)는 물리적 페이지 번호(48) 및 페이지 오프셋(52)을 포함한다. 페이지 오프셋(52)은 관심의 어드레스가 발견될 수 있도록 메모리의 페이지에서 행을 지정한다. 페이지 오프셋(52)은 가상 어드레스(36)의 가상 오프셋부(54)로부터 (변환 없이) 직접 얻게 된다.
종합해서, 가상 어드레스(36)로부터 물리적 어드레스(50)를 얻기 위하여 가상 어드레스(예로서 "0004")의 가상 페이지 번호(38)는 페이지 테이블(40)에서 발견된 페이지 테이블 변환 엔트리(42)로 맵핑된다. 페이지 테이블 변환 엔트리(42)가 1로 설정된 유효 비트를 가지면, 가상 페이지 번호에 대한 해당 물리적인 페이지 번호가 존재한다. 물리적인 페이지 번호(예로서, "01FD" 16진수)는 물리적인 어드레스(50)의 일부를 형성한다. 물리적인 어드레스(50)의 다른 부분은 가상 어드레스(36)의 가상 오프셋부(54)로부터 얻게 되는 페이지 오프셋 값(52; 예로서 "734")이다.
페이지 테이블(40)의 성능을 개선하기 위하여, 현대 컴퓨터는 최근에 이용되는 변환을 추적하기 위한 특수한 캐쉬를 포함한다. 가상 페이지 번호에 대한 변환이 일단 이용되면, 아마 가까운 미래에 다시 이용될 것이기 때문에, 최근의 변환이 기억되는 것이다. 이 특수한 어드레스 변환 캐쉬는 변환 색인 버퍼(또는 TLB)로 불린다. 제 1도는 일반적인 TLB(22)를 도시한다. 전형적으로 TLB 변환 엔트리는 가상 페이지 번호, 유효 비트 및 물리적 페이지 번호를 포함한다.
컴퓨터 프로그램을 실행하는 CPU(12)는 초기에 컴퓨터 프로그램으로부터 TLB(22) 내의 엔트리로의 각각의 가상 페이지 번호를 비교한다. 매치가 발견되면(히트라 호칭됨), TLB(22)로부터 물리적인 페이지 번호는 전술한 방법으로 물리적인 어드레스(50)를 형성하는데 이용된다.
TLB(22)는 전형적으로 하드웨어로 구현되며, 따라서 페이지 테이블(40)보다 더 적은 엔트리를 갖는다. 더 작은 사이즈의 TLB(22) 때문에, TLB 오류가 자주 발생한다. TLB 오류 후에 페이지 테이블(40)은 물리적인 어드레스를 결정하기 위해 페이지 테이블(40)이 문의된다. 페이지 테이블(40)이 원하는 정보를 가지면, 그 정보는 페이지 테이블(40)로부터 TLB(22)로 로드될 수 있다.
TLB(22) 또는 페이지 테이블(40)로부터 물리적인 어드레스를 얻은 후에, 물리적인 어드레스는 물리적인 어드레스와 결합된 데이타를 억세스하는데 이용된다. 캐쉬(24)는 최근에 또는 빈번히 억세스된 물리적 어드레스 세트를 기억한다. 물리적 어드레스가 캐쉬에서 발견되지 않으면, 1차 메모리(14)가 서치된다. 어드레스가 여전히 발견되지 않으면, 2차 메모리(16)가 서치된다. 캐쉬(24), 1차 메모리(14) 및 2차 메모리(16)는 캐쉬 메모리가 상대적으로 빠르지만 적은 정보 내용을 가지며, 또한, 2차 메모리(16)는 상대적으로 느리지만 많은 정보 내용을 가진다. 따라서, 캐쉬 메모리의 경우에는 그 속도상의 장점을 이용하는 것이 바람직하다. 그러나, 캐쉬 메모리가 적은 정보 내용을 가지기 때문에, 데이타 히트 율을 개선하기 위해 정보 내용이 제어된 방법으로 선택되도록 하는 것이 바람직하다.
제 3도는 세트 결합 캐쉬 메모리(24)에서 물리적인 어드레스(50)의 매치를 기술한다. 세트 결합 캐쉬는 다수의 세트를 구성하며, 이들 각각은 n블록을 구성한다. 제 3도의 예에서, 0과 255 사이의 인덱스 값은 256 세트가 존재함을 나타낸다. 각각의 세트는 4 블록(60A, 60B, 60C 및 60D)을 포함한다. 따라서, 제 3도는 4로(four-way) 세트 결합 캐쉬를 나타낸다.
세트가 식별되면, 세트 내의 모든 블록, 본 예에서 4개 블록이 지정된 물리적인 어드레스(50)와의 매치를 위해 서치된다. 제 3도에 도시한 바와 같이, 물리적인 어드레스(50)의 부분은 블록(60) 세트를 선택하기 위해 인덱스 값으로 이용된다. 물리적인 어드레스(50)의 다른 부분은 인덱스된 세트의 모든 블록(60)의 태그들을 비교하는데 이용된다. 매치가 발견되면, 매치된 태그와 결합된 데이타가 출력으로 이용된다. 제 3도의 4로 세트 결합 캐쉬에서 4 비교기(62A, 62B, 62C 및 62D)는 4 대 1 멀티플렉서(64)와 함께 이용되어 선택된 세트의 4개의 가능한 요소 사이에서의 선택에 이용된다. 논리 AND 게이트(62A, 62B, 62C 및 62D)는 유효 비트가설정되고, 그 태그 데이타가 존재하는지를 확인하는데 이용된다. 비교회로(66A, 66B, 66C 및 66D)는 물리적인 어드레스 세그먼트를 지정된 세트의 다른 태그와 비교하는데 이용된다. 논리 OR 게이트(68)로부터의 하이(high) 신호는 캐쉬 히트가 존재할 때 나타난다.
물리적인 어드레스가 캐쉬 메모리에서 발견되지 않았을 때, "캐쉬 오류"가 발생한다. 캐쉬 오류는 캐쉬에서 현재 필요한 정보를 캐쉬의 어떤 정보와 교체한다. 즉, 선택된 세트 내에서 어떨 블록이 교체된다. 세트 결합 메모리 구조에서 교체할 블록을 선택하는데 이용되는 2개의 주요 방법이 있다. 하나의 방법은 하드웨어의 도움을 받아서 블록을 무작위로 선택하는 것이다. 다른 방법은 최저 사용 빈도법(least recently used approach)이다. 그 명칭이 의미하는 바와 같이, 최저 사용 빈도법은 오랫동안 이용되지 않고 있는 블록을 선택하는 것이다. 무작위 선택은 하드웨어에서 구현하기 쉽기 때문에 이점이 있다. 최저 사용 빈도법은 이용하고 있지 않은 데이타를 소거하는 것이지만 블록을 추적하는데 있어서의 계산상의 부담이 많다.
배경기술 부분에서 설명한 바와 같이, 세트 결합 캐쉬 메모리에서 정보의 블록을 교체하기 위한 종래의 방법에 의하여 정보가 캐쉬 메모리로부터 소거될 수 있으며, 그 정보는 소거되는 즉시 캐쉬 메모리로 재 로드되어야 한다. 본 발명은 이러한 문제를 해결한다.
제 4도는 본 발명의 일 실시예에 따라 동적으로 분할된 세트 결합 캐쉬(24)를 나타낸다. 캐쉬(24)는 CPU(12)와 서로 작용한다. 또한, CPU(12)는 블록교체 로직(70)과 서로 작용한다. 블록 교체 로직(70)은 무작위법, 최저 사용 빈도법, 또는 다른 블록 교체 방법을 포함할 수 있다. 블록 교체 로직(70)은 블록을 교체하기 전에 블록 교체 마스크(BRM; 72)를 이용한다. BRM(72)은 k 비트를 갖는데, 여기서 k는 세트 당 블록의 수이고, 다른 말로는 세트 결합률(set-associativity)이다. 제 3도의 예제를 참조하면 BRM(72)은 4 비트를 갖는다.
따라서, BRM(72)에 설정된 각각의 비트는 캐쉬의 1/k 이 교체되는 것을 방지된다. 동적인 분할은 BRM(72)에 따라 캐쉬를 선택적으로 로킹 및 언로킹(unlocking)하는 블록 교체 로직(70)의 결과이다. 즉, 교체 비트가 설정되어 있지 않으면(디지탈 로우(low)), 블록 엔트리는 종래기술에 따라 처리된다. 즉, 각각의 블록은 변경되지 않은 블록 교체 로직에 따라 교체된다. 한편, 교체 비트가 설정(디지탈 하이)되면, 블록은 교체될 수 없다. 따라서, 자주 불리는 데이타는 캐쉬에 로크될 수 있다. 다시 제 3도의 예제를 참조하면 BRM 비트 패턴 0010은 블록(60A,60B,60D)이 교체 가능하다는 것을 의미하지만, 블록(60C)은 교체할 수 없다. 종래 기술에서, 모든 블록은 교체 가능하며 개별 블록이 겹쳐 쓰여지는 것을 방지하기 위한 실용적인 방법은 없다.
본 발명의 블록 교체법은 여러 프로세스가 실행되고 하나의 프로세스가 CPU 시간을 지배할 때 가장 유익하다. 이런 형태의 지배적 프로세스에서는 선택된 블록을 캐쉬(24)에 로크하는 것이 바람직하다. 결과적으로 지배적 프로세스에 대한 캐쉬 내의 적어도 일부의 데이타는 다른 프로세스가 호출되더라도 캐쉬 내에 남아 있게 된다. 이런 방법으로, 다른 프로세스들과 관련된 동작이 완성되고 제어가 지배적 프로세스로 복귀하면, 지배적 프로세스와 관련된 데이타는 이미 캐쉬(24)에 내재하게 되므로, 따라서 캐쉬에 정보를 로드하는데 필요한 시간이 불필요하게 된다.
블록 교체 마스크(72)를 이용하는 대신에, 각각의 데이타 블록에서 부가적 교체 비트가 이용될 수 있다. 이 구현 예는 제 4도 및 제 3도에 도시하였다. 이들 도면의 캐쉬 메모리(24) 내의 각각의 블록은 데이타의 존재를 나타내는 유효 태그(V)와, 물리적인 어드레스의 세그먼트의 비교를 위한 태그 및 비트가 존재할 때 판독되어질 데이타를 포함한다. 더욱이, 교체 가능한 블록을 식별하는데 이용되는 교체 비트(R)가 존재한다. 이 구현 예는 각각의 데이타 블록이 부가적 비트를 필요로 하므로 비교적 오버헤드가 더 많다. 또한, 이 구현 예는 세트 결합 구조의 모듈화를 촉진할 수 없다.
이용된 구현 예와는 무관하게, 본 발명의 캐쉬(24)는 판독 및 기록 억세스를 위한 비분할 된 캐쉬로서 동작하는 반면에, 캐쉬에서의 오류로 인한 교체를 방지한다. 분할이 주어진 응용에 유익하지 않으면 블록 교체 마스크(72)의 모든 교체 비트를 턴 오프함에 의해 이를 간단히 디스에이블할 수 있다.
제 1도는 1차 메모리(14)에 기억된 운영체제(80)를 나타낸다. 운영체제(80)는 주어진 어드레스에 해당하는 데이타 블록 세트를 식별하도록, 주어진 어드레스를 처리하기 위해 세트 식별장치라 불리는 세트 식별 과정(82)을 실행한다. 캐쉬 메모리의 경우에, 각각의 데이타 블록은 제 3도에 도시한 바와 같이, "V" 유효 비트, "태그" 필드 및 "데이타" 필드를 포함한다. 제 3도의 식별된 세트에는 4 데이터 블록(60A, 60B, 60C, 60D)이 포함된다. TLB의 경우에, 각각의 데이타 블록은 제2도에 도시한 바와 같이 페이지 번호, 유효 비트 및 물리적 페이지 번호를 포함한다. TLB의 식별된 세트는 복수의 테이블 엔트리(42)를 포함한다.
블록 교체 로직(70) 및 블록 교체 마스크(72)는 1차 메모리(14)에 기억된 소프트웨어 명령으로 구현된다. 또한, 블록 교체 로직 회로로도 불리는 블록 교체 로직(70)은 지정된 세트 내에서 교체 가능한 블록 및 교체 불가능한 블록을 식별하기 위해 지정된 세트의 해당블록과 블록 교체 마스크의 각각의 비트를 비교한다. 본 발명이 블록 교체 마스크(72)가 없는 대신, 각각의 데이타 블록에서 교체 비트를 가지고 실행되면, 블록 교체 로직(70)은 간단히 데이타 블록 내에서의 교체 비트의 세팅을 점검하면 된다.
또한, 블록 교체 회로(70)는 한 세트의 비교기에 의거하여 하드웨어로 구현될 수 있다. 블록 교체 마스크(72)는 운영체제(80)에 의해 비트가 세팅되는 물리적인 레지스터로 구현되는 것이 바람직하다.
당업자는 분할된 캐쉬(24)가 분할된 동작 세트 효과, 프리-패칭 및 시스템에서 수행되는 캐쉬의 무효화 또는 갱신의 감소로 인해 병렬 응용 예에서 상당한 성능 이득을 제공할 수 있다는 것을 이해할 것이다.
본 발명은 복수의 처리기에 의해 이용되는 단일 캐쉬를 지원하는데 이용될 수 있다. 제 4도에 도시한 이러한 일 실시예에서, 각각의 처리기(12 내지 12N)는 바람직하게는 교체를 위해 캐쉬(24)에 자체 영역을 갖는다. 이와 달리, 각각의 프로세서(12)는 어느 정도 겹쳐진 개별적인 영역을 갖는다. 이런 방법은 복수의 처리기 시스템에서 분할된 캐쉬와 관련된 캐쉬 오류 율상의 상쇄적인 간섭을 감소시킨다.
복수의 처리기를 지지하기 위하여, 각각의 처리기(12 내지 12N)는 캐쉬 내에 분리 BRM(72 내지 72N)을 갖는다. 특정한 처리기가 캐쉬에 교체를 필요로 할 때, 블록 교체 로직(70)은 어떻게 교체가 이루어지는지를 결정하기 위하여 지정된 처리기의 해당 BRM(72)을 이용한다.
제 4도의 장치를 간단히 변형하면 본 발명의 변환 식별 버퍼 구현 예를 얻을 수 있다. 각 블록의 "R" 교체 비트 및 "V" 유효 비트는 동일하게 남는다. 그러나, "태그" 필드 대신에 페이지 번호 필드가 이용되고, "데이타" 필드 대신에 물리적인 페이지 번호 필드가 이용된다. 이런 형태의 구조는 제 2도에 도시되어 있다. 블록 교체 마스크(72)가 TLB 실시예에 이용되면, "R" 교체 비트는 이용되지 않는다.
본 발명의 특정 실시예에 대한 이상의 설명은 예시 및 설명 목적으로 제시되었다. 본 발명이 개시된 형태 자체에 의해 제한되지 않으며, 이상의 개시 내용에 의해 여러 가지 변형과 변형이 가능하다. 실시예들은 본 발명의 원리를 가장 잘 설명할 수 있도록 선택되고 기술되어 있으며, 이에 의하여 당업자는 본 발명과 여러 실시예를 개개의 이용에 맞추어 최적으로 이용할 수 있을 것이다. 본 발명의 범위는 다음의 청구항 및 그 균등물에 의해 정해진다.
제 1도는 본 발명의 일 실시예에 따라 구성된 범용 컴퓨터 도시도.
제 2도는 가상 어드레스와 물리적 어드레스간의 어드레스 변환 과정 도시도.
제 3도는 본 발명의 일 실시예에 따른 캐쉬메모리 구조 도시도.
제 4도는 본 발명의 일 실시예에 따른 캐쉬 메모리구조와 관련제어 로직 도시도.
*도면의 주요 부분에 대한 부호의 설명 *
12 : CPU 14 : 1차 메모리
20 : I/O 장치 80 : 운영체제

Claims (15)

  1. 데이터 블록 세트를 인덱스하는 단계와,
    새로운 정보를 기억할 수 있는, 상기 데이타 블록 세트 내의 교체 가능한 블록과, 새로운 정보를 기억할 수 없는, 상기 데이타 블록 세트 내의 교체 불가능한 블록을 식별하기 위해 블록 교체 로직을 이용하는 단계, 및
    새로운 정보만을 상기 데이타 블록 세트의 상기 교체 가능한 블록에 기입하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 메모리에 정보를 기억하는 방법.
  2. 제 1항에 있어서,
    상기 이용 단계가 상기 교체 가능한 블록과 상기 교체 불가능한 블록을 식별하기 위해 블록 교체 마스크를 이용하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 메모리에 정보를 기억하는 방법.
  3. 제 1항에 있어서,
    상기 이용 단계가 상기 교체 가능한 블록 및 상기 교체 불가능한 블록을 식별하기 위해 상기 데이타 블록 세트 내의 각 데이타 블록에서 교체 비트를 이용하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 메모리에 정보를 기억하는 방법.
  4. 제 1항에 있어서,
    상기 인덱스 단계가 캐쉬 메모리에서 데이타 블록 세트를 인덱스하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 메모리에 정보를 기억하는 방법.
  5. 제 1항에 있어서,
    상기 인덱스 단계가 변환 색인 버퍼에서 데이타 블록 세트를 인덱스하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 메모리에 정보를 기억하는 방법.
  6. 데이타 블록 세트를 지정하기 위한 세트 식별장치와,
    새로운 정보를 기억할 수 있는, 상기 데이타 블록 세트 내의 교체 가능한 블록과, 새로운 정보를 기억할 수 없는, 상기 데이타 블록 세트 내의 교체 불가능한 블록을 식별하고, 또한 새로운 정보만을 상기 데이타 블록 세트의 상기 교체 가능한 블록에 기입하기 위한 블록 교체 로직 회로를 포함하는 것을 특징으로 하는 컴퓨터 메모리에 정보를 기억하는 장치.
  7. 제 6항에 있어서,
    상기 블록 교체 로직은 상기 교체 가능할 블록과 상기 교체 불가능한 블록을 식별하기 위한 블록 교체 마스크를 포함하는 것을 특징으로 하는 컴퓨터 메모리에 정보를 기억하는 장치.
  8. 제 6항에 있어서,
    상기 블록 교체 로직은 상기 교체 가능한 블록과 상기 교체 불가능한 블록을 식별하기 위하여 상기 데이타 블록 세트 내의 각 데이타 블록에서 교체 비트를 점검하는 것을 특징으로 하는 컴퓨터 메모리에 정보를 기억하는 장치.
  9. 제 6항에 있어서,
    상기 세트 식별 장치는 캐쉬 메모리 내에서 데이타 블록 세트를 지정하는 것을 특징으로 하는 컴퓨터 메모리에 정보를 기억하는 장치.
  10. 제 6항에 있어서,
    상기 세트 식별장치는 변환 색인 버퍼 내에서 데이타 블록 세트를 지정하는 것을 특징으로 하는 컴퓨터 메모리에 정보를 기억하는 장치.
  11. 데이타 블록 세트를 지정하기 위해 세트 식별장치를 제공하는 단계와,
    새로운 정보를 기억할 수 있는, 상기 데이타 블록 세트 내의 교체 가능한 블록과, 새로운 정보를 기억할 수 없는, 상기 데이타 블록 세트 내의 교체 불가능한 블록을 식별하고, 또한 새로운 정보만을 상기 데이타 블록 세트의 상기 교체 가능한 블록에 기입하기 위한 블록 교체 로직 회로를 제공하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 메모리에 정보를 기억하기 위한 장치를 제조하는 방법.
  12. 제 11항에 있어서,
    상기 교체 가능한 블록과 상기 교체 불가능한 블록을 식별하기 위하여 블록 교체 마스크를 제공하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 메모리에 정보를 기억하기 위한 장치를 제조하는 방법.
  13. 제 11항에 있어서,
    상기 교체 가능한 블록과 상기 교체 불가능한 블록을 식별하기 위하여 상기 데이타 블록 세트 내의 각 데이타 블록에 교체 비트를 제공하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 메모리에 정보를 기억하기 위한 장치를 제조하는 방법.
  14. 제 11항에 있어서,
    캐쉬 메모리에서 데이타 블록 세트를 식별하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 메모리에 정보를 기억하기 위한 장치를 제조하는 방법.
  15. 제 11항에 있어서,
    변환 색인 버퍼에서 데이타 블록 세트를 식별하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 메모리에 정보를 기억하기 위한 장치를 제조하는 방법.
KR1019950052446A 1994-12-20 1995-12-20 컴퓨터메모리에정보를기억하는방법및장치 KR100382395B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/359,403 1994-12-20
US08/359,403 US5584014A (en) 1994-12-20 1994-12-20 Apparatus and method to preserve data in a set associative memory device

Publications (2)

Publication Number Publication Date
KR960024989A KR960024989A (ko) 1996-07-20
KR100382395B1 true KR100382395B1 (ko) 2003-07-18

Family

ID=23413659

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950052446A KR100382395B1 (ko) 1994-12-20 1995-12-20 컴퓨터메모리에정보를기억하는방법및장치

Country Status (3)

Country Link
US (1) US5584014A (ko)
JP (1) JPH08235072A (ko)
KR (1) KR100382395B1 (ko)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6070233A (en) * 1996-01-26 2000-05-30 Unisys Corporation Processor bus traffic optimization system for multi-level cache utilizing reflection status bit to indicate data inclusion in higher level cache
US5729712A (en) * 1996-01-26 1998-03-17 Unisys Corporation Smart fill system for multiple cache network
KR0175499B1 (ko) * 1996-09-11 1999-04-01 양승택 다중태그 구조의 계층 상호연결망에서의 브로드캐스트 전송방법
US5897655A (en) * 1996-12-10 1999-04-27 International Business Machines Corporation System and method for cache replacement within a cache set based on valid, modified or least recently used status in order of preference
EP0856797B1 (en) * 1997-01-30 2003-05-21 STMicroelectronics Limited A cache system for concurrent processes
GB9701960D0 (en) 1997-01-30 1997-03-19 Sgs Thomson Microelectronics A cache system
US6069638A (en) * 1997-06-25 2000-05-30 Micron Electronics, Inc. System for accelerated graphics port address remapping interface to main memory
US6282625B1 (en) 1997-06-25 2001-08-28 Micron Electronics, Inc. GART and PTES defined by configuration registers
US6249853B1 (en) 1997-06-25 2001-06-19 Micron Electronics, Inc. GART and PTES defined by configuration registers
US6000015A (en) * 1997-09-16 1999-12-07 Unisys Corporation Processor bus traffic optimization system for multi-level cache utilizing reflection status bit to indicate data inclusion in a higher level cache
US6047358A (en) * 1997-10-31 2000-04-04 Philips Electronics North America Corporation Computer system, cache memory and process for cache entry replacement with selective locking of elements in different ways and groups
US6070229A (en) * 1997-12-02 2000-05-30 Sandcraft, Inc. Cache memory cell with a pre-programmed state
US6252612B1 (en) 1997-12-30 2001-06-26 Micron Electronics, Inc. Accelerated graphics port for multiple memory controller computer system
GB9727485D0 (en) * 1997-12-30 1998-02-25 Sgs Thomson Microelectronics Processing a data stream
US7071946B2 (en) * 1997-12-30 2006-07-04 Micron Technology, Inc. Accelerated graphics port for a multiple memory controller computer system
US6157398A (en) 1997-12-30 2000-12-05 Micron Technology, Inc. Method of implementing an accelerated graphics port for a multiple memory controller computer system
US6202129B1 (en) * 1998-03-31 2001-03-13 Intel Corporation Shared cache structure for temporal and non-temporal information using indicative bits
JP2000200221A (ja) * 1998-10-30 2000-07-18 Nec Corp キャッシュメモリ装置及びその制御方法
US6370622B1 (en) 1998-11-20 2002-04-09 Massachusetts Institute Of Technology Method and apparatus for curious and column caching
US6571323B2 (en) * 1999-03-05 2003-05-27 Via Technologies, Inc. Memory-access management method and system for synchronous dynamic Random-Access memory or the like
US6560677B1 (en) 1999-05-04 2003-05-06 International Business Machines Corporation Methods, cache memories, systems and computer program products for storing transient, normal, and locked entries in an associative cache memory
US6848024B1 (en) * 2000-08-07 2005-01-25 Broadcom Corporation Programmably disabling one or more cache entries
US6748492B1 (en) * 2000-08-07 2004-06-08 Broadcom Corporation Deterministic setting of replacement policy in a cache through way selection
US6732234B1 (en) 2000-08-07 2004-05-04 Broadcom Corporation Direct access mode for a cache
US6748495B2 (en) 2001-05-15 2004-06-08 Broadcom Corporation Random generator
US20030041213A1 (en) * 2001-08-24 2003-02-27 Yakov Tokar Method and apparatus for using a cache memory
US7363474B2 (en) * 2001-12-31 2008-04-22 Intel Corporation Method and apparatus for suspending execution of a thread until a specified memory access occurs
US7266587B2 (en) * 2002-05-15 2007-09-04 Broadcom Corporation System having interfaces, switch, and memory bridge for CC-NUMA operation
US20040199723A1 (en) * 2003-04-03 2004-10-07 Shelor Charles F. Low-power cache and method for operating same
US7558920B2 (en) * 2004-06-30 2009-07-07 Intel Corporation Apparatus and method for partitioning a shared cache of a chip multi-processor
WO2006082554A2 (en) * 2005-02-02 2006-08-10 Koninklijke Philips Electronics N.V. Data processing system comprising a cache unit
KR100654462B1 (ko) * 2005-08-24 2006-12-06 삼성전자주식회사 캐쉬 메모리를 메모리 블록으로 나누어 파일의 데이터를저장하는 캐쉬 방법 및 캐쉬 시스템
JP2007088522A (ja) * 2005-09-16 2007-04-05 Ricoh Co Ltd 画像処理装置
US7996620B2 (en) * 2007-09-05 2011-08-09 International Business Machines Corporation High performance pseudo dynamic 36 bit compare
US7917803B2 (en) * 2008-06-17 2011-03-29 Seagate Technology Llc Data conflict resolution for solid-state memory devices
US8108650B2 (en) * 2009-05-29 2012-01-31 Apple Inc. Translation lookaside buffer (TLB) with reserved areas for specific sources
KR102263326B1 (ko) * 2014-09-18 2021-06-09 삼성전자주식회사 그래픽 프로세싱 유닛 및 이를 이용한 그래픽 데이터 처리 방법
US9910785B2 (en) 2014-12-14 2018-03-06 Via Alliance Semiconductor Co., Ltd Cache memory budgeted by ways based on memory access type
WO2016097813A1 (en) * 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Set associative cache memory with heterogeneous replacement policy
EP3066572B1 (en) 2014-12-14 2020-02-19 VIA Alliance Semiconductor Co., Ltd. Cache memory budgeted by chunks based on memory access type
US9852084B1 (en) 2016-02-05 2017-12-26 Apple Inc. Access permissions modification
EP4133379B1 (en) * 2020-04-08 2023-12-27 nCipher Security Limited A device, a method of performing a file transaction, and a method of performing an access operation

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0799508B2 (ja) * 1990-10-15 1995-10-25 インターナショナル・ビジネス・マシーンズ・コーポレイション キャッシュ記憶機構を動的に区分する方法およびキャッシュ記憶機構システム
US5353425A (en) * 1992-04-29 1994-10-04 Sun Microsystems, Inc. Methods and apparatus for implementing a pseudo-LRU cache memory replacement scheme with a locking feature

Also Published As

Publication number Publication date
US5584014A (en) 1996-12-10
KR960024989A (ko) 1996-07-20
JPH08235072A (ja) 1996-09-13

Similar Documents

Publication Publication Date Title
KR100382395B1 (ko) 컴퓨터메모리에정보를기억하는방법및장치
CA2022656C (en) Translation look-aside buffer for a computer memory system
EP1934753B1 (en) Tlb lock indicator
US6014732A (en) Cache memory with reduced access time
US5689679A (en) Memory system and method for selective multi-level caching using a cache level code
EP0168121B1 (en) Memory access method and apparatus in multiple processor systems
US5265227A (en) Parallel protection checking in an address translation look-aside buffer
US5230045A (en) Multiple address space system including address translator for receiving virtual addresses from bus and providing real addresses on the bus
US4654790A (en) Translation of virtual and real addresses to system addresses
US6877067B2 (en) Shared cache memory replacement control method and apparatus
US6493812B1 (en) Apparatus and method for virtual address aliasing and multiple page size support in a computer system having a prevalidated cache
US5765209A (en) Method and apparatus to eliminate redundant mapping in a TLB utilizing variable sized pages
US5479630A (en) Hybrid cache having physical-cache and virtual-cache characteristics and method for accessing same
WO1997046937A1 (en) Method and apparatus for caching system management mode information with other information
US20080040549A1 (en) Direct Deposit Using Locking Cache
US6571316B1 (en) Cache memory array for multiple address spaces
US5953747A (en) Apparatus and method for serialized set prediction
US7219197B2 (en) Cache memory, processor and cache control method
US5895489A (en) Memory management system including an inclusion bit for maintaining cache coherency
US6574698B1 (en) Method and system for accessing a cache memory within a data processing system
US5966737A (en) Apparatus and method for serialized set prediction
US7865691B2 (en) Virtual address cache and method for sharing data using a unique task identifier
US6807602B1 (en) System and method for mapping bus addresses to memory locations utilizing access keys and checksums
US5737753A (en) Least recently used block replacement for four block cache logic system
US4424564A (en) Data processing system providing dual storage of reference bits

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee