KR20010062173A - 스마트 캐시 - Google Patents

스마트 캐시 Download PDF

Info

Publication number
KR20010062173A
KR20010062173A KR1020000073829A KR20000073829A KR20010062173A KR 20010062173 A KR20010062173 A KR 20010062173A KR 1020000073829 A KR1020000073829 A KR 1020000073829A KR 20000073829 A KR20000073829 A KR 20000073829A KR 20010062173 A KR20010062173 A KR 20010062173A
Authority
KR
South Korea
Prior art keywords
cache
main memory
tag
memory
address
Prior art date
Application number
KR1020000073829A
Other languages
English (en)
Other versions
KR100805974B1 (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 KR20010062173A publication Critical patent/KR20010062173A/ko
Application granted granted Critical
Publication of KR100805974B1 publication Critical patent/KR100805974B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem
    • G06F2212/2515Local memory within processor subsystem being configurable for different purposes, e.g. as cache or non-cache memory

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

프로세싱 디바이스내에 사용하기 위한 캐시 아키텍쳐(16)는 메인 메모리(20)의 인접하는 블럭에 저장하기 위한 램 세트 캐시를 포함한다. 램 세트 캐시는 세트 연상 캐시(set associative cache) 또는 직접 매핑된 캐시(direct mapped cache) 등과 같은 다른 형태의 캐시와 함께 사용될 수 있다. 레지스터(22)는 메인 메모리(20)의 인접하는 블럭에 대한 시작 어드레스를 정의한다. 램 세트와 연관된 데이터 어레이(22)는 시작 어드레스가 레지스터(32)로 로드되기 시작할 경우 데이터 어레이(38)를 채우는 세트-필 베이스(set-fill basis), 또는 라인들이 프로세싱 코어에 의해 요청되는 것과 같이, 라인-대-라인 베이스(line-by-line basis)로 충진될 수 있다. 어드레스가 프로세싱 코어로부터 수신될 경우, 데이터가 램 세트내에 존재하는지 또는 데이터가 메인 메모리(20)로부터 로드되어야 하는지를 결정하기 위해 히트/미스 로직(hit/miss logic)(46), 시작 어드레스 레지스터(32), 광역 유효 비트(34), 라인 유효 비트(37) 및 제어 비트(24, 26)가 사용된다. 또한, 히트/미스 로직(46)은 라인이 램 세트 데이터 어레이(38) 또는 연산 캐시로 로드되어야 하는지를 결정한다.

Description

스마트 캐시{SMART CACHE}
본 발명은 프로세싱 디바이스에 관한 것으로서, 보다 상세하게는 프로세싱 디바이스의 캐시 아키텍쳐에 관한 것이다.
대다수의 프로세싱 디바이스는 캐시 아키텍쳐를 이용함으로써 주 메모리로부터의 정보 검색 속도를 향상시키고 있다. 캐시 메모리는 프로세싱 디바이스의 프로세싱 코어와 주 메모리 사이에 배치된 고속 메모리이다. 주 메모리는 일반적으로 캐시보다 훨씬 크지만 매우 느리다. 프로세싱 코어가 주 메모리로부터 정보를 요구할 때마다 캐시 콘트롤러는 캐시 메모리를 검사하여 지정된 어드레스가 현재 캐시 메모리 내에 있는지를 판정한다. 그러한 경우, 상대적으로 느린 주 메모리 대신 더 빠른 캐시 메모리로부터 정보가 검색된다. 캐시에 정보가 없는 경우에는 주 메모리가 액세스되고, 캐시 메모리에 그 정보가 갱신된다.
프로세싱 코어는 메모리 설계에 비해 속도가 증가하므로 캐시 아키텍쳐의 효율이 더 중요해지고 있다. 효율 향상의 한 방법은 캐시의 크기를 증가시키는 것이다. 캐시 메모리가 더 크면 더 많은 정보를 저장할 수 있기 때문에 캐시 히트의 가능성도 증가한다. 그러나, 대다수의 경우, 캐시 크기를 증가시키면 특정 시점 후의 리턴이 감소된다. 또한, 캐시 크기를 증가시키면 칩의 크기도 증가하게 된다(캐시가 프로세싱 코어에 통합된 경우). 보다 중요한 것은 액세스 시간이 증가하여 캐시의 근본 목적을 이룰 수 없다는 것이다. 따라서, 대부분의 경우 단순한 캐시 크기의 증가는 좋은 결과를 낳을 수 없게 된다.
많은 장치에서 소정의 루틴은 엄격한 시간 제한을 갖거나 예측 가능한 실행시간을 필요로 한다. 이 경우, 캐시 미스에 의한 지연을 감소시키는 것이 중요할 수 있다. 몇몇 캐시 시스템은 캐시에 엔트리를 로킹(locking)하기 위한 메카니즘을 제공함으로써 다른 위치가 액세스될 때 캐시 엔트리가 재기록되지 않게 한다. 이러한 메카니즘은 반복적으로 사용될 엔트리에 유용하나, 캐시 엔트리의 로킹은 캐시의 크기 및 연상성을 감소시킨다. 예컨대, 2-웨이 세트 연상 캐시에서 몇몇 엔트리를 로킹하면 캐시의 일부가 다이렉트 맵으로 동작하여 캐시의 효율을 크게 감소시킨다. 유사한 해결책은 캐시 시스템과 병렬로 동작하는 로컬 메모리를 사용하는 것이다. 이 해결책은 로컬 메모리를 위한 어드레스 디코딩 및 캐시 디스에이블링 메카니즘을 필요로 하여 지연을 발생시킬 수 있다. 또한, 로컬 RAM을 이용한 구현이 로컬 RAM을 사용하기 위하여 특별히 작성된 루틴을 이용함으로써 가능할 수 있지만, 특정 로컬 RAM 구조를 예상하여 작성되지 않은 다른 루틴, 특히 운영 체제(OS) 루틴은 캐시를 제어하는 방식으로 로컬 RAM을 제어할 수 없게 된다.
본 발명의 제1 실시예에서, 프로세싱 소자는 어드레스 생성용 회로가 주 메모리와 n웨이 캐시를 액세스하는 프로세싱 코어를 구비하고 있다. n 웨이 캐시는 각각이 주 메모리로부터의 정보를 저장하기 위한 다수의 엔트리를 갖는 n개의 데이터 메모리와, 대응하는 데이터 메모리내 각각의 엔트리와 연관되는 주 메모리 어드레스를 식별하는 어드레스정보를 저장하기 위한 하나 이상의 태그 메모리와, 주 메모리 어드레스의 연속적인 블록을 정의하는 어드레스 정보를 저장하기 위한 다수의 태그 레지스터 - 각각의 태그 레지스터는 대응하는 데이터 메모리와 연관됨 - 와,태그 메모리 혹은 태그 레지스터중 어느 하나와 각각의 데이터 메모리간의 캐시 연관을 정의하고 이러한 캐시 연관성에 기초하여 프로세싱 코어로부터의 어드레스에 반응하여 각각의 데이터 메모리로부터 선택적으로 액세싱을 하는 제어 회로를 구비하고 있다.
본 발명의 제1 실시예에서, 프로세싱 디바이스는 어드레스 생성용 회로가 주 메모리, 제1 n 웨이 캐시 서브 시스템과, 제2 m 웨이 캐시 서브 시스템을 액세스하도록 하는 프로세싱 코어를 구비하고 있으며, 여기서 n은 0 내지 1 이상이고, m은 2 혹은 1 이다. 제1 캐시 시스템은 각각이 주 메모리로부터의 정보를 저장하기 위한 다수의 엔트리를 갖는 n개의 데이터 메모리와, 이 n개의 데이터 메모리 중 대응하는 하나의 메모리내 각각의 엔트리와 연관되는 주 메모리 어드레스를 식별하는 어드레스 정보를 저장하기 위한 n개의 태그 메모리를 구비하고 있다. 제1 캐시 서브 시스템은 각각이 주 메모리로부터의 정보를 저장하기 위한 다수의 엔트리를 갖는 m개의 데이터 메모리와, 각각이 이 m개의 데이터 메모리 중 대응하는 하나의 메모리에 맵핑된 주 메모리 어드레스의 연속적인 블록을 정의하는 m개의 태그 레지스터를 구비하고 있다. 로직은 제1 및 제2 캐시 서브시스템에 캐시 히트가 있는지를 판정하고, 이 경우 제2 캐시 서브시스템으로부터의 히트는 제1 서브시스템으로부터의 히트에 비해 우선순위를 갖는다.
본 발명은 종래 기술에 비해 현저한 이점을 갖는다. 첫째, RAM 세트 캐시 (주 메모리 어드레스의 연속적 블록으로 맵핑됨)는 고속 검색을 위해 코드의 원하는 블록이 RAM 세트 캐시에 저장될 수 있기 때문에 실시간 동작을 수행하는 프로세싱디바이스의 동작을 현저히 개선시킬 수 있다. 둘째, RAM 세트의 액세스 시간이 표준 캐시의 액세스 시간 보다 크지 않은 한, RAM 세트 캐시에 대해 보다 큰 데이터 메모리를 액세스하는데 어떠한 페널티도 없다. 셋째, 하나 이상의 RAM 세트 캐시를 부가하는 것은 종래의 캐시에 비해 최소한의 회로에 의해 제공될 수 있는 것이다. 넷째, RAM 세트 캐시는 원하는 바에 따라, 세트 연관 혹은 직접 맵 캐시 등의 다른 캐시와 매우 융통성있는 방식으로 구성될 수 있다. 다섯째, 데이터 메모리를 로딩하기 위한 별도의 메카니즘은 RAM 세트 캐시에 필요한 것이 아니며, 메모리 액세스 시간에 따라 직렬로 특정 어드레스를 디코딩할 필요가 전혀 없기 때문에 RAM 세트 캐시는 로컬 RAM에 비해 이점을 제공할 수 있다. 여섯째, 통상적인 캐시 로딩, 플러싱, 라인 실효(line invalidation) 등이 캐시의 특정 아키텍쳐에 대한 지식없이 소프트웨어에 의해 그리고 OS용 드라이버의 약간의 변형으로 실행될 수 있으므로 캐시는 동일한 방식으로 OS 나 다른 소프트웨어에 의해 제어될 수 있다.
도 1은 캐시를 포함한 프로세싱 디바이스의 블럭도.
도 2는 캐시 구조의 바람직한 실시예의 블럭도.
도 3은 RAM 세트 캐시 상으로의 주 메모리부의 맵핑을 도시하는 도면.
도 4는 도 2의 히트/미스(hit/miss) 로직의 동작을 나타내는 순서도.
<도면의 주요 부분에 대한 부호의 설명>
12 : 프로세싱 코어
14 : 데이터 메모리
16 : 명령 캐시 (또는 인스트럭션 캐시)
18 : 시스템 메모리 인터페이스
20 : 메인 메모리
22 : 캐시 콘트롤
36 : 태그 메모리
38 : 데이터 어레이
46 : 히트/미스 로직(hit/miss logic)
본 발명 및 본 발명의 장점에 대한 보다 완전한 이해를 위해, 첨부 도면과 관련하여 다음 설명을 참조한다.
본 발명은 동일 번호가 다양한 도면의 동일 구성 요소로 사용되고 있는 도면의 도 1 내지 4와 관련하여 가장 잘 알 수 있다.
도 1은 프로세싱 디바이스(10)의 블럭도를 도시한다. 프로세싱 디바이스(10)는 프로세싱 코어(12), 데이타 메모리(14), 명령 캐시(16) 및 부시스템 메모리 인터페이스(18)를 포함한다. 통상 외부 메모리인 부시스템 메모리 인터페이스(18)는 주 메모리(20)와 인터페이스한다.
이하 더 상세히 설명되는 바와 같이, 바람직한 실시예에서, 명령 캐시는 3-웨이 캐시인데, 이 중 한 캐시 웨이은 RAM 세트 캐시 메모리이다. RAM 세트 캐시는 선택된 주 메모리 어드레스 위치로부터 시작하는 메모리의 인접 블럭을 캐시하도록 설계된다. 다른 두 캐시 웨이은 RAM 세트 캐시 메모리로서 구성될 수 있거나, 다른 구조를 사용할 수 있다. 예를 들어, 명령 캐시(16)는 하나의 RAM 세트 캐시 및 2-웨이 세트 관련 캐시로서 구성될 수 있다.
동작에서, 프로세싱 코어(12)는 소정의 어드레스 공간 내의 주 메모리(20)를 액세스한다. 만약 주 메모리에서 요청된 어드레스의 정보가 명령 캐시(16)에 또한 기억되면, 데이타는 명령 캐시로부터 추출된다. 만약 요청 어드레스에 대한 정보가 명령 캐시에 기억되지 않으면, 정보는 주 메모리(20)로부터 추출되고 명령 캐시는 추출 정보로 갱신된다.
도 2는 RAM 세트 캐시 및 2-웨이 세트 관련 캐시를 갖는 실시예에서, 명령 캐시(16)의 보다 상세한 블럭도를 도시하고 있다.
캐시 콘트롤러(22)는 명령 캐시(16)의 동작을 제어한다. 캐시 콘트롤러(22)는 4개의 상태 비트: RAM_fill_mode(24), Cache_Enable(26), DM/2SA(28) 및 Full_RAM_base(30)을 포함한다. 캐시 제어기(22)는 Full_Set_Tag 레지스터(32)(레지스터(321내지 323)로 각각 표시됨), Global_Valid 비트(34)(비트(341내지 343)로 각각 표시됨), 태그 메모리(36)(태그 메모리(361내지 363)로 각각 표시됨), 유효엔트리 비트 어레이(37)(비트 어레이(371내지 373)로 각각 표시됨), 및 데이타 어레이(데이타 어레이(381내지 383)로 각각 표시됨)에 결합된다. 비교기(40)(비교기(401내지 403)로 각각 표시됨)는 각각의 Full_Set_Tag 레지스터(32)에 결합된다. 비교기(42)(비교기(421내지 423)로 각각 표시됨)는 각각의 태그 메모리(36)에 결합된다. 출력 버퍼(44)(버퍼(441내지 443)로 각각 표시됨)는 각각의 데이타 어레이(38)에 결합된다. 히트/미스 로직(46)(로직(461내지 463)로 각각 표시됨)은 비교기(40), 글로벌 유효 비트(34), 유효 비트(37), RAM_fill_mode 비트(24) 및 Cache_Enable 비트(26)에 결합된다.
동작에 있어서, 명령 캐시(16)는 제어 비트들(24, 26, 28, 30)을 이용하여 구성된다. Cache_Enable(26)은 명령 캐시가 표준 캐시 아키텍쳐에서처럼 인에이블되게 하거나 또는 디스에이블되게 한다. 만약 명령 캐시(16)가 디스에이블이면 (Cache_Enable=0), 명령 판독 액세스는 메인 메모리(20) 상에서 서브시스템 메모리 인터페이스(18)를 통하여 수행된다. 만약 명령 캐시가 인에이블이면 (Cache_Enable=1), 명령들은 명령 캐시(16)로부터 실행되고, 이 경우 명령들은 명령 캐시(16)에 존재한다. 실수가 발생하면, 라인(예를 들어, 16바이트)은 메인 메모리(20)로부터 패치(fetch)되어 코어(12)에 제공된다. 이것 역시 표준 캐시 동작이다.
데이타 어레이(381)의 크기는 캐시의 다른 방법들에 대해 데이타어레이(382,3)의 크기와 다르다. 도시의 목적을 위하여, 데이타 어레이들(382와 383)은 크기가 각각 8 Kbyte이고, 512 라인으로 구성되었으며, 각 라인은 8개의 2-바이트 명령을 보유한다고 가정할 수 있다. 데이타 어레이(381)는 크기가 16Kbyte이고, 1024 라인으로 구성되었으며, 각 라인은 8개의 2-바이트 명령을 보유한다. ADDR[L]은 데이타 어레이(38)의 하나의 라인과 유효 비트 어레이(37)(및 적용가능하다면 태그 메모리(36))를 어드레스하는데 이용된다. 따라서, 1024-라인 제1 방법에 대해, ADDR[L]은 코어로부터 어드레스의 비트들[13:4]을 포함할 것이다. 512-라인 제2 및 제3 방법에 대해 , ADDR[L]는 코어로부터 어드레스의 비트들[12:4]을 포함할 것이다. ADDR[L]는 어느 셋이 라인에 맵핑될지를 정한다. 그러므로, 4 Gbyte(2 Gword) 어드레스 공간을 가정한다면, ADDR[H]는 제1 방법에 대해 코어로부터 어드레스의 비트[31:14]를 이용하고, 캐시(16)의 제2와 제3 방법의 각각에 대해서 비트들[31:13]을 이용한다.
태그 메모리(36)와 비교기(42)는 2-웨이 셋트 연관 캐시에 이용된다. 코어(12)가 메모리 액세스를 수행할 때, 태그 메모리(36)는 어드레스의 저차(low order) 비트(ADDR[L])에서 액세스된다. 태그 메모리 위치는 데이타 어레이(38)의 대응하는 라인에 저장된 정보의 메인 메모리 어드레스의 고차(high order) 어드레스 비트를 저장한다. 이 고차 어드레스 비트는 코어(12)로부터 어드레스의 고차 어드레스 비트(ADDR[H])와 비교된다. 만약 ADDR[H]가 ADDR[L]에서 태그 메모리의 내용과 부합된다면, 저차 비트(V[ADDR[L]])와 연관된 유효 비트가 캐시 엔트리가유효하다는 것을 나타내는 경우, 히트가 발생한다. 캐시 히트가 있으면, ADDR[L]에서 대응하는 데이타 어레이(38)로부터의 데이타는 적절한 출력 버퍼(44)를 인에이블 시키는 것에 의해 코어(12)에 제공된다. 다음에 설명되는 것처럼, 2-웨이 캐시 로부터의 데이타는 RAM 셋트 캐시에 실수가 있는 경우에만 코어(12)에 나타난다. 단독으로, 2-웨이 셋트 연관 캐시와 직접 맵 캐시의 동작은 전형적이며 RAM 셋트 캐시에 의해 영향 받지 않는다. 다른 캐시 기술 역시 RAM 셋트 캐시와 결합하여 이용될 수도 있다.
RAM 셋트 캐시는 RAM 셋트에 대한 Full_set_tag 레지스터(32)에서 정의된 어드레스에서 개시하는 메인 메모리(20)의 연속적인 블록을 저장한다. 이 정보 블록은 RAM 셋트의 대응하는 데이타 어레이(38)에 맵핑된다. 개시하는 어드레스의 고차 비트 만이 Full_set_tag 레지스터(32)에 저장된다. 도 3은 단일 RAM 셋트에 대한 매핑을 도시한다. 도시된 바와 같이, Full_set_tag 레지스터(321)의 컨텐트는 데이터 어레이(381)내에 캐시된 메모리의 인접 블럭에 대한 시작 어드레스를 정의한다.
RAM 셋트 미스(miss)는 코어(12)로부터의 어드레스의 높은 순서의 비트가 Full_set_tag 레지스터(32)의 컨텐트 또는 0과 같은 글로벌 유효 비트(global valid bit)에 부합하지 않을 때, 발생한다. 어떠한 경우든, RAM 셋트 미스가 발생하면, 명령 캐시(16)는 2-웨이(way) 캐시에 히트(hit)가 존재하는 것과 같이 정규 2-웨이 캐시 로직처럼 동작하고, 그 후 2-웨이 셋트 관련 캐시로부터 코어(12)에명령이 나타난다. 그렇지 않은 경우, 명령은 주 메모리(20)로부터 검색된다.
RAM 셋트 힛트 상황은 코어(12)로부터의 어드레스의 높은 순서의 비트(12)가 Full_set_tag 레지스터(32)의 컨텐트 또는 1과 같은 글로벌 유효 비트(글로벌 유효 비트의 셋팅은 하기에서 보다 자세히 설명됨)와 부합할 때 발생한다. RAM 셋트 비교는 디폴트(default)로 가장 높은 우선순위를 갖는다. 힛트 상황은 요청된 명령이 RAM 셋트에 매핑되었음을 가리킨다. 만일 명령을 포함한 라인에 해당하는 유효 엔트리(entry) 비트(37)가 0이면, 로직은 힛트-미스를 발생시키는 데 그 이유는 어드레스가 RAM 셋트를 힛트하지만 RAM 셋트에는 아직 명령이 나타나지 않았기 때문이다. 이러한 경우, 명령은 주 메모리(20)로부터 페치되어서, RAM 셋트의 데이터 어레이(38)에 로딩된다. RAM 셋트 로직에서의 힛트는 정규 캐시 로직보다 우선한다. 2-웨이 캐시의 표준 로직은 항상, RAM 셋트 로직이 힛트를 발생시킬 때 미스를 생성한다. 정보는 임의의 오동작도 발생시키지 않은 채, RAM 셋트와 2-웨이 캐시 둘 다에 존재할 수 있다. 2-웨이 캐시내의 중복된 캐시 엔트리는 사용되지 않기 때문에, 결국 2-웨이 캐시의 교체 메커니즘에 의해 회복될 것이다.
동작용 RAM 셋트를 설치하기 위해, Full_set_tag 레지스터(32)는 시작 어드레스(set_start_addr)를 갖고 로딩되어야 하며, RAM_fill_mode 비트(24)는 희망된 필 모드(fill mode)로 구성되어야만 한다. 바람직한 실시예에서, 2개의 필 모드들, 라인-대-라인 필 모드 또는 셋트 필 모드가 제공된다.
라인-대-라인 필(RAM_fill_mode=0)에 대하여, Full_set_tag 레지스터(32)가 시작 어드레스에 로딩될 때, 글로벌 유효 비트(34)는 1로 설정되고, 유효 엔트리비트(37)는 0으로 설정된다. 이러한 점에서, 데이터 어레이(38)가 비게 된다(Cache_Enable 비트(26)는 1로 설정되어서 명령 캐시를 동작하게 하도록 가정됨). 코어(12)로부터의 어드레스를 수신할 시, 유효 엔트리 비트(37)는 어드레스의 낮은 순서의 비트에 기초하여 선택된다. 상기에서 주어진 바와 같이, RAM 셋트는 16Kbyte의 크기로, 1K16byte의 어레이로서 조직화되며, 16byte는 연관된 2 웨이 캐시내의 블럭 라인과 같으며, Full_set_TAG 레지스터는 시작 어드레스(set_start_addr)의 18개의 비트들[31:14]을 저장할 것이다. RAM 셋트(ADDR[L])의 각 엔트리를 나타내는 어드레스는 10 비트를 갖고, 라인 내의 한 지시에 액세스하는 데에 이용되는 지시 어드레스는 3 비트[3:1]를 가질 것이다 (지시는 2 바이트 폭인 것으로 가정함). 히트-미스 상황이 발생하는 때마다, 데이터 어레이(38)(ADDR[L]에 있음)의 라인이 메인 메모리(20)로부터 로드된다. 히트-미스 상황이 발생하는 원인은, (1) 비교기(40)가 ADDR[H]와 Set_Start_addr 간에 일치가 발생하는 것으로 결정하거나, (2) 글로벌 유효 비트(34)가 1로 설정되거나, (3) ADDR[L]에 있는 라인과 연관된 유효 비트(37)가 클리어되는 것(V[ADDR[L]]=0)이다. 이 상황은 선택된 라인이 RAM 셋트에 맵핑되지만, RAM 셋트 데이터 어레이(38)에는 아직 로드되지 않았음을 나타낸다. 라인이 메인 메모리(20)로부터 데이터 어레이(38)에 로드되면, 라인에 대응하는 유효 비트(37)는 1로 설정된다. 이러한 로딩 절차는 정상의 캐시 라인 로드와 동일한 타임 패널티를 갖지만, 엔트리는 로킹된 엔트리처럼 RAM 셋트 내에 체류하기 때문에, 후속하는 액세스에서 프로세싱 디바이스에 패널티가 가해지지는 않을 것이다.
한편, 셋트 필 (RAM_fill_mode)가 선택되는 경우, 글로벌 유효 비트(34)는 초기에 0으로 설정되고, Full_set_tag 레지스터가 시작 어드레스로 로드된 후에도 0으로 유지된다. 유효 비트(37)도 0으로 설정된다. 시작 어드레스가 Full_Set_tag 레지스터(32)에 기입되면, 연관 데이터 어레이(38)가 DMA(direct memory access) 프로세스를 통해 채워진다. 각 라인이 메인 메모리(20)로부터 로드되면, 그 라인에 대응하는 유효 엔트리 비트(34)는 1로 설정된다. 데이터 어레이(28)가 메인 메모리(20)로부터 완전히 로드된 후, 글로벌 유효 비트(34)는 1로 설정된다. 이와 같은 데이터 어레이(38)의 초기화는 라인-바이-라인 필 모드(line-by-line fill mode)보다 오래 걸리지만, 초기화 이후 모든 실시간 루틴이 유효해지며, 시스템 레이턴시가 결정될 수 있다. RAM 셋트가 셋트 필 모드로 초기화된 후, RAM 셋트에 맵핑된 코드 상에서는 최초의 액세스에 있어서도 미스가 발생하지 않을 것이다.
셋트 필 또는 라인-바이-라인 필 모드에서, RAM 셋트의 컨텐츠는 새로운 Set_start_addr을 Full_set-tag 레지스터(32)에 기입함으로써 간단하게 변경될 수 있다. 이 레지스터에 대한 기입은 각 셋트의 컨텐츠를 플러싱하고, 필 모드에 따른 로드 프로세스를 시작하게 한다. 제어 회로(22)는 셋트 결합 캐시에서 이용되는 것과 동일한 회로를 이용하여 RAM 셋트 캐시의 라인을 플러싱할 수 있다. RAM 셋트 캐시 전체에 대한 플러싱은 적합한 Full_set_tag 레지스터(32)를 기입함으로서 간단히 달성될 수 있다. 마찬가지로, 제어 회로(22)는 셋트 결합 캐시에 이용되는 것과 동일한 회로를 이용하여 RAM 셋트 캐시의 라인을 채울 수 있다. 단일라인이 아닌 다수의 라인이 메인 메모리(20)로부터 액세스되고 데이터 어레이(38)에 저장되기 때문에, 캐시 전체를 셋트 필 모드로 채우기 위한 동작은 약간 다르다. RAM 셋트 캐시는, 드라이버에 대한 약간의 수정을 통해, RAM 셋트 캐시에서 동작하도록 특별히 고안된 것이 아닌 OS에서도 이용될 수 있다.
이제, 도 4의 플로우차트에 연관하여, 히트/미스 로직의 동작이 설명된다. 단계 50에서, 판독 동작과 연관하여 코어(12)로부터 어드레스가 수신된다. 단계 52에서 명령 캐시가 디스에이블되면, 단계 52에서 메인 메모리(20)로부터 명령이 검색된다. 캐시가 인에이블되면, 코어로부터의 어드레스의 고차 비트(ADDR[H])가 개시 어드레스(Set_start_addr)의 고차 비트와 일치하지 않거나 글로벌 유효 비트(34)가 0으로 설정되는 경우(단계 56), RAM 셋 미스가 존재한다. 이 경우, 2-웨이 셋 연관 캐시에 캐시 히트가 존재하는 경우(단계 58), 2-웨이 셋 연관 캐시로부터 검색된 정보가 코어(12)에 제공된다. 2-웨이 셋 연관 캐시에 미스가 존재하는 경우, 라인은 2-웨이 캐시로 로드된다.
다시 단계 56로 복귀되면, 코어로부터의 어드레스의 고차 비트(ADDR[H])가 개시 어드레스(Set_start_addr)의 고차 비트와 일치하고 글로벌 유효 비트(34)가 1로 설정되는 경우, ADDR[L]에 대응하는 라인에 RAM 셋 미스가 존재하고, 히트-히트 상태(요청된 명령이 RAM 셋에 존재하고 코어(12)에 제공될 수 있는 경우)인지 히트-미스 상태(요청된 명령이 RAM 셋에 맵핑되어 있지만, 명령이 주 메모리(20)로부터 RAM 셋 데이타 어레이(38)로 로드될 필요가 있는 경우)인지 여부를 결정하는 데 유효 엔트리 비트가 사용된다. 단계 64에서, 라인의 유효 엔트리 비트(37)가라인이 유효(V[ADDR[L]]=1)라는 것을 나타내면, 명령이 RAM 셋 내에 존재하고 RAM 셋 출력 버퍼(44)를 통해 코어(12)에 제공된다. 반면에, 라인이 유효하지 않다는 것을(V[ADDR[L]]=0) 나타내는 경우, 라인은 단계 68에서 주 메모리로부터 RAM 셋의 데이타 어레이(38)로 로드된다.
도 4의 플로우차트는 조합 로직을 사용하여 쉽게 구현될 수 있다.
양호한 실시예에서, 프로세싱 디바이스(10)에 대한 여러 어플리케이션이 서로 상이한 실시간 요구를 가지기 때문에, 캐시(16)는 1개, 2개 또는 3개의 RAM 셋 제공시에 가요성을 제공한다. 이러한 실시예에서, 제어 비트 DM/2SA(28) 및 Full_Ram_base(30)는 3-웨이 캐시 구조에서의 RAM 셋의 할당을 정의한다. 표 1은 기술된 실시예의 실현성을 기술한다.
캐시 구성
Full-RAM-base DM/2SA 구성
0 0 하나의 2-웨이 세트 연합 캐시 및 하나의 RAM 세트 캐시
1 0 하나의 다이렉트 맵 캐시 및 2개의 세트 RAM 캐시
1 1 3개의 세트 RAM 캐시
Full-set-tag 레지스터(32)는 관련된 웨이(way)의 캐시에 대해 ADDR[H]의 길이와 같은 다수의 비트를 사용한다. 따라서, 본 명세서에서 규정된 특정 데이터 어레이 및 구성에 대하여, Full-set-tag 레지스터(321)는 비트 [31:14]를 저장하고, Full-set-tag 레지스터(322및 323)는 비트 [31:13]을 저장한다.
2-웨이 세트 연합 캐시에서는, 2개의 태그 메모리(36)가 사용되고; 다이렉트 맵 캐시에서는, 하나의 태그 메모리(36)가 사용된다. 태그 메모리(36)들은 RAM 세트 캐시로서 구성된 캐시에 대해서는 전혀 사용되지 않는다. 그러므로, 하나의 RAM 세트 캐시 및 2-웨이 연합 캐시를 사용한 구성의 경우, RAM 세트 캐시는 Full-set-tag 레지스터(321), 글로벌 유효 비트(341), 유효 엔트리 비트(371), 데이터 어레이(381), 비교기(401), 히트/미스 로직(461), 및 출력 버퍼(441)를 사용한다. 2-웨이 세트 연합 캐시는 태그 메모리(362및 363), 유효 비트(372및 373), 데이터 어레이(382및 383), 히트/미스 로직(462및 463), 및 출력 버퍼(442및 443)를 사용할 수 있다. 2개의 RAM 세트 및 다이렉트 맵핑된 캐시를 사용하는 구성의 경우, RAM 세트는 Full-set-tag 레지스터(321및 322), 글로벌 유효 비트(341및 342), 유효 엔트리 비트(371및 372), 데이터 어레이(381및 382), 비교기(401및 402), 히트/미스 로직(461및 462), 및 출력 버퍼(441및 442)를 사용할 수 있다. 다이렉트 맵핑된 캐시는 태그 메모리(363), 유효 비트(373), 데이터 어레이(383), 히트/미스 로직(463), 및 출력 버퍼(443)를 사용할 수 있다. 3개의 RAM 세트를 사용하는 구성의 경우, RAM 세트는 Full-set-tag 레지스터(321, 322및 323), 글로벌 유효 비트(341, 342및 343), 유효 엔트리 비트(371, 372및 373), 데이터 어레이(381, 382및 383), 비교기(401, 402및 403), 히트/미스 로직(461, 462및 463), 및 출력 버퍼(441, 442및 443)를 사용할 수 있다.
도시된 실시예는 3-웨이 캐시를 제공했지만, 임의의 수의 캐시-웨이가 제공될 수 있다. 예를 들어, 4-웨이 캐시는 RAM 세트와 세트 연합을 사용하고 이것을 조합하여 구성될 수도 있고, 또는 그 밖의 다른 캐시 아키텍처를 사용하여 구성될 수 있다. 추가 RAM 세트에 필요한 유일한 추가 하드웨어는 추가 Full-set-tag 레지스터 및 글로벌 유효 비트로 될 수 있다.
RAM 세트 캐시는 자기-수정(self-modifying) 코드와 호환할 수 있다. 프로세싱 코어(12)가 명령을 다이나믹하게 변화시키면, 수정된 위치를 포함하는 라인은 기록 동작과 병행하여 캐시(즉, 자신의 대응하는 유효 비트(37)가 0으로 설정됨)로부터 메인 메모리로 플러시된다. 명령이 코어(12)에 의해 요청된 다음 번에는, 대응하는 유효 비트가 0으로 설정되어, 히트-미스 상태를 야기할 수 있다. 요청된 명령을 포함하는 라인은 메인 메모리로부터 RAM 세트 캐시 내로 로드될 수 있다. 양호한 실시예에서, 명령은 캐시 내에서 바로 수정되지 않아서, 캐시 내에 라인을 교체할 때 메인 메모리를 갱신할 필요가 없어진다.
본 발명은 명령 캐시와 관련하여 설명하였지만, 이것은 데이터 캐시, 또는 통합된 명령/데이터 캐시로서 사용될 수도 있다.
본 발명은 종래 기술에 비해 상당한 이점을 제공한다. 먼저, RAM 세트 캐시는, 원하는 코드 블록이 신속한 검색을 위해 RAM 세트 내에 저장될 수 있기 때문에, 실시간 동작을 실행하는 프로세싱 장치의 동작을 상당히 향상시킬 수 있다. 둘째, RAM 세트의 억세스 시간이 2-웨이 캐시의 억세스 시간보다 길어지지 않는 한, RAM 세트 캐시의 더욱 큰 데이터 어레이(38)를 억세스하는 데에 별도의 불리한 점이 없다. 셋째, 하나 이상의 RAM 세트 캐시의 추가는 종래의 캐시보다 최소량의 회로로 제공될 수 있다. 요구된 유일한 추가 회로는 하나 이상의 Full-set-tag 레지스터(32) 및 관련된 글로벌 유효 비트(34)이다.(유효 비트(37)는 한 라인씩의 충전 모드가 이용가능하거나, 또는 자기-수정 코드가 허용될 때만 RAM 세트(들)에 필요하고; RAM 세트가 자기-수정 코드없이 단지 세트 충전만을 지원하면, 유효 비트(37)는 불필요하게 된다.) 세트 연합 또는 그밖의 다른 캐시의 유효 비트(37)는, 유효 비트가 태그 메모리 자체에 포함되지 않으면, RAM 세트에서 마찬가지로 잘 사용될 수 있다. 네번째, RAM 세트는 세트 연합 또는 다이렉트 맵 캐시와 같은 다른 캐시와 매우 융통성있는 방식으로 원하는 바대로 구성될 수 있다. 다섯번째, RAM 세트 캐시는, RAM을 로딩하는 별도의 메카니즘이 RAM 세트 캐시에 필요하지 않고, 메모리 억세스 기간과 시리얼로 디코딩하는 특정 어드레스가 전혀 요구되지 않기 때문에, 로컬 RAM을 능가하는 장점을 제공한다. 여섯번째, 캐시는 보통의 캐시 로딩, 플러싱, 라인 무효화 등과 동일한 방식으로 OS 또는 다른 소프트웨어에 의해 제어될 수 있고, 종래의 캐시 관리를 사용하여 아주 조금의 소프트웨어 갱신을 한 소프트웨어에 의해 실행될 수 있다.
본 발명은 본 명세서에 특정 실시예에 대해 나타냈지만, 여러가지로 실현될 수 있다. 첫째, RAM 세트 캐시 아키텍처는 마이크로프로세서, DSPs, 믹싱된 아날로그/디지털 프로세서, 및 코프로세서를 포함하는 임의의 형태의 프로세싱 장치에 사용될 수 있다. 둘째, 데이터 어레이의 사이즈는 약간의 변경이 행해진 소정의 구현물에 필요로 될 때 변화될 수 있다. 예를 들어, 세트 연합 캐시보다 더욱 큰 데이터 어레이를 갖는 RAM 세트를 구비하는 것이 바람직하고, 또는 이와 반대로 어플리케이션의 사이즈가 변함에 따라 실시간 제한을 갖는 RAM 세트를 구비하는 것이 바람직할 것이다. 셋째, 양호한 실시예가 캐시 메모리를 융통성있는 방식으로 믹싱될 수 있게 하였지만, 상황에 따라 하나의 RAM 세트 및 세트 연합 캐시와 같은 세트 캐시 타입을 갖는 것이 바람직할 것이다. 넷째, 비-RAM 세트 캐시(즉, 세트 연합 및 다이렉트 맵핑된 캐시)를 실현하는데 사용된 아키텍처는 여기에 도시된 것과 다른 아키텍처가 사용될 수 있는 데, 예를 들어 CAM(Content Addressable Memory)이 태그 메모리(36)에 사용될 수 있다.
지금까지 본 발명의 예시적인 실시예에 관하여 설명했지만, 이것의 대안적인 실시예뿐만 아니라 이들 실시예의 여러가지 변형이 본 분야에 숙련된 기술자들에 의해 행해질 수 있다. 본 발명은 첨부된 특허 청구의 범위 내에서만 제한된다.

Claims (14)

  1. 프로세싱 디바이스에 있어서,
    메인 메모리를 액세스하기 위해 어드레스를 발생하기 위한 회로를 구비한 프로세싱 코어; 및
    n-웨이 캐시(n-way cache)
    를 포함하고,
    상기 n-웨이 캐시는,
    상기 메인 메모리로부터 정보를 저장하기 위한 복수의 엔트리(entry)를 각각 구비한 n개 데이터 메모리;
    대응하는 데이터 메모리내의 상기 엔트리의 각각에 연관된 메인 메모리 어드레스를 식별하는 어드레스 정보를 저장하기 위한 하나 이상의 태그 메모리(tag memory);
    메인 메모리 어드레스의 인접하는 블럭을 정의하는 어드레스 정보를 저장하기 위한 복수의 태그 레지스터 - 각각의 태그 레지스터는 대응하는 데이터 메모리와 연관됨 - ; 및
    태그 메모리 또는 태그 레지스터중의 하나와 각각의 데이터 메모리사이의 캐시 연상(cache association)을 정의하고, 상기 캐시 연상에 기초한 상기 프로세싱 코어로부터의 어드레스에 응답하여 각각의 데이터 메모리를 선택적으로 액세스하기 위한 제어 회로
    를 포함하는
    것을 특징으로 하는 프로세싱 디바이스.
  2. n-웨이 캐시 시스템에 있어서,
    메인 메모리로부터 정보를 저장하기 위한 복수의 엔트리를 각각 구비한 n개 데이터 메모리;
    대응하는 데이터 메모리내의 상기 엔트리의 각각에 연관된 메인 메모리 어드레스를 식별하는 어드레스 정보를 저장하기 위한 하나 이상의 태그 메모리;
    메인 메모리 어드레스의 인접하는 블럭을 정의하는 어드레스 정보를 저장하기 위한 복수의 태그 레지스터 - 각각의 태그 레지스터는 대응하는 데이터 메모리와 연관됨 - ; 및
    태그 메모리 또는 태그 레지스터중의 하나와 각각의 데이터 메모리사이의 캐시 연상을 정의하고, 상기 캐시 연상에 기초한 상기 프로세싱 코어로부터의 어드레스에 응답하여 각각의 데이터 메모리를 선택적으로 액세스하기 위한 제어 회로
    를 포함하는
    것을 특징으로 하는 n-웨이 캐시 시스템.
  3. 제1항 또는 제2항에 있어서,
    상기 태그 레지스터의 각각에 연관된 글로벌 유효 비트(global valid bit)를 더 포함하는 것을 특징으로 하는 캐시 시스템.
  4. 제3항에 있어서,
    대응하는 데이터 메모리의 각각의 엔트리에 대응하는 유효 엔트리 비트를 포함하는 유효 엔트리 어레이를 더 포함하는 것을 특징으로 하는 캐시 시스템.
  5. 제1항 또는 제2항에 있어서,
    상기 제어 회로는 상기 캐시 연상을 정의하기 위한 구성 비트를 포함하는 것을 특징으로 하는 캐시 시스템.
  6. 제1항 또는 제2항에 있어서,
    상기 제어 회로는 메인 메모리 어드레스의 각각의 블럭으로 매핑된 정보를 저장하기 위한 n-m 캐시와 m-웨이 세트 연상 캐시(m-way set associative cache)를 형성하기 위하여 m개 데이터 메모리와 m개 태그 메모리사이의 연상을 정의할 수 있는 것을 특징으로 하는 캐시 시스템.
  7. 제1항 또는 제2항에 있어서,
    상기 캐시내의 캐시 히트(cache hit)의 발생을 결정하기 위한 로직을 더 포함하는 것을 특징으로 하는 캐시 시스템.
  8. 프로세싱 디바이스에 있어서,
    메인 메모리를 액세스하기 위해 어드레스를 발생하기 위한 회로를 구비하는 프로세싱 코어;
    제1 n-웨이 캐시 서브시스템 - n은 1 이상임 - ;
    제2 m-웨이 캐시 서브시스템 - m은 1 이상임 - ; 및
    상기 제1 및 제2 캐시 서브시스템내의 캐시 히트를 결정하기 위한 로직 - 상기 제2 캐시 서브시스템으로부터의 히트는 상기 제1 서브시스템으로부터의 히트에 대해 우선함 -
    을 포함하고,
    상기 제1 n-웨이 캐시 서브시스템은,
    상기 메인 메모리로부터 정보를 저장하기 위한 복수의 엔트리를 각각 구비한 n개 데이터 메모리; 및
    상기 n개 데이터 메모리중의 대응하는 메모리내에 상기 엔트리의 각각에 연관된 메인 메모리 어드레스를 식별하는 어드레스 정보를 저장하기 위한 n개 태그 메모리
    를 포함하고,
    상기 제2 m-웨이 캐시 서브시스템은,
    상기 메인 메모리로부터 정보를 저장하기 위한 복수의 엔트리를 각각 구비한 m개 데이터 메모리; 및
    상기 m개 데이터 메모리중의 대응하는 메모리로 매핑되는 메인 메모리 어드레스의 인접하는 블럭을 정의하는 어드레스 정보를 각각 저장하기 위한 m개 태그레지스터
    를 포함하는
    것을 특징으로 하는 프로세싱 디바이스.
  9. 케시 시스템에 있어서,
    제1 n-웨이 캐시 서브시스템 - n은 1 이상임 - ;
    제2 m-웨이 캐시 서브시스템 - m은 1 이상임 - ; 및
    상기 제1 및 제2 캐시 서브시스템내의 캐시 히트를 결정하기 위한 로직 - 상기 제2 캐시 서브시스템으로부터의 히트는 상기 제1 서브시스템으로부터의 히트에 대해 우선함 -
    을 포함하고,
    상기 제1 n-웨이 캐시 서브시스템은,
    메인 메모리로부터 정보를 저장하기 위한 복수의 엔트리를 각각 구비한 n개 데이터 메모리; 및
    상기 n개 데이터 메모리중의 대응하는 메모리내에 상기 엔트리의 각각에 연관된 메인 메모리 어드레스를 식별하는 어드레스 정보를 저장하기 위한 n개 태그 메모리
    를 포함하고,
    상기 제2 m-웨이 캐시 서브시스템은,
    상기 메인 메모리로부터 정보를 저장하기 위한 복수의 엔트리를 각각 구비한m개 데이터 메모리; 및
    상기 m개 데이터 메모리중의 대응하는 메모리로 매핑되는 메인 메모리 어드레스의 인접하는 블럭을 정의하는 어드레스 정보를 각각 저장하기 위한 m개 태그 레지스터
    를 포함하는
    것을 특징으로 하는 캐시 시스템.
  10. 제8항 또는 제9항에 있어서,
    상기 제1 및 제2 캐시 서브시스템내의 캐시 미스(cache miss)이후에 상기 캐시 서브시스템중의 하나에서 하나 이상의 라인을 채우기 위한 캐시 제어 회로를 더 포함하는 것을 특징으로 하는 캐시 시스템.
  11. 제8항 또는 제9항에 있어서,
    상기 제1 캐시 서브시스템은 n-웨이 세트 연상 캐시를 포함하는 것을 특징으로 하는 캐시 시스템.
  12. 제11항에 있어서,
    상기 제1 캐시 서브시스템은 직접 매핑된 캐시(direct mapped cache)를 포함하는 것을 특징으로 하는 캐시 시스템.
  13. 제8항 또는 제9항에 있어서,
    각각의 데이터 메모리의 출력으로 연결된 복수의 출력 버퍼를 더 포함하는 것을 특징으로 하는 캐시 시스템.
  14. 제13항에 있어서,
    상기 출력 버퍼는 상기 로직에 의해 제어되는 것을 특징으로 하는 캐시 시스템.
KR1020000073829A 1999-12-06 2000-12-06 스마트 캐시 KR100805974B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP99403042A EP1107123B1 (en) 1999-12-06 1999-12-06 Smart cache
EP99403042.7 1999-12-06

Publications (2)

Publication Number Publication Date
KR20010062173A true KR20010062173A (ko) 2001-07-07
KR100805974B1 KR100805974B1 (ko) 2008-02-25

Family

ID=8242200

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000073829A KR100805974B1 (ko) 1999-12-06 2000-12-06 스마트 캐시

Country Status (5)

Country Link
US (1) US6826652B1 (ko)
EP (1) EP1107123B1 (ko)
JP (1) JP2001297037A (ko)
KR (1) KR100805974B1 (ko)
DE (1) DE69937611T2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR200451794Y1 (ko) * 2010-03-19 2011-01-12 주식회사 케이피 힌지 보강구조가 부착된 선박 가구용 하드코어 보강재

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6584546B2 (en) * 2001-01-16 2003-06-24 Gautam Nag Kavipurapu Highly efficient design of storage array for use in first and second cache spaces and memory subsystems
US7653787B2 (en) * 2001-05-07 2010-01-26 Alcatel-Lucent Usa Inc. System for storing web site names and caching audio resources of the most visited web sites
US6934865B2 (en) * 2002-07-09 2005-08-23 University Of Massachusetts Controlling a processor resource based on a compile-time prediction of number of instructions-per-cycle that will be executed across plural cycles by the processor
US7493607B2 (en) * 2002-07-09 2009-02-17 Bluerisc Inc. Statically speculative compilation and execution
US7278136B2 (en) * 2002-07-09 2007-10-02 University Of Massachusetts Reducing processor energy consumption using compile-time information
EP1387274A3 (en) * 2002-07-31 2004-08-11 Texas Instruments Incorporated Memory management for local variables
JP4713077B2 (ja) * 2003-03-26 2011-06-29 パナソニック株式会社 半導体装置
US7069390B2 (en) * 2003-09-04 2006-06-27 International Business Machines Corporation Implementation of a pseudo-LRU algorithm in a partitioned cache
US7055004B2 (en) * 2003-09-04 2006-05-30 International Business Machines Corporation Pseudo-LRU for a locking cache
US7120748B2 (en) * 2003-09-04 2006-10-10 International Business Machines Corporation Software-controlled cache set management
US7114035B2 (en) * 2003-09-04 2006-09-26 International Business Machines Corporation Software-controlled cache set management with software-generated class identifiers
US20050114850A1 (en) 2003-10-29 2005-05-26 Saurabh Chheda Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control
US7996671B2 (en) 2003-11-17 2011-08-09 Bluerisc Inc. Security of program executables and microprocessors based on compiler-architecture interaction
US8607209B2 (en) 2004-02-04 2013-12-10 Bluerisc Inc. Energy-focused compiler-assisted branch prediction
US7543113B2 (en) * 2004-07-02 2009-06-02 Hewlett-Packard Development Company, L.P. Cache memory system and method capable of adaptively accommodating various memory line sizes
EP1622009A1 (en) * 2004-07-27 2006-02-01 Texas Instruments Incorporated JSM architecture and systems
US8461648B2 (en) 2005-07-27 2013-06-11 Infineon Technologies Austria Ag Semiconductor component with a drift region and a drift control region
US8110868B2 (en) 2005-07-27 2012-02-07 Infineon Technologies Austria Ag Power semiconductor component with a low on-state resistance
US20080126766A1 (en) 2006-11-03 2008-05-29 Saurabh Chheda Securing microprocessors against information leakage and physical tampering
KR100868585B1 (ko) 2007-05-29 2008-11-12 주식회사 아모텍 서지 흡수기 및 그의 제조방법
US8832508B2 (en) * 2010-11-18 2014-09-09 Advanced Micro Devices, Inc. Apparatus and methods for testing writability and readability of memory cell arrays

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5014195A (en) * 1990-05-10 1991-05-07 Digital Equipment Corporation, Inc. Configurable set associative cache with decoded data element enable lines
US5410669A (en) * 1993-04-05 1995-04-25 Motorola, Inc. Data processor having a cache memory capable of being used as a linear ram bank
JPH07271672A (ja) * 1994-03-30 1995-10-20 Toshiba Corp マルチウェイセットアソシアティブキャッシュシステム
JPH0877072A (ja) * 1994-08-31 1996-03-22 Oki Electric Ind Co Ltd キャッシュメモリ装置
US5822755A (en) * 1996-01-25 1998-10-13 International Business Machines Corporation Dual usage memory selectively behaving as a victim cache for L1 cache or as a tag array for L2 cache
US5966737A (en) * 1996-06-26 1999-10-12 Compaq Computer, Corp. Apparatus and method for serialized set prediction
JP3088303B2 (ja) * 1996-09-09 2000-09-18 日本電気アイシーマイコンシステム株式会社 キャッシュ・メモリ・バンク制御装置
US5809528A (en) * 1996-12-24 1998-09-15 International Business Machines Corporation Method and circuit for a least recently used replacement mechanism and invalidated address handling in a fully associative many-way cache memory
US6334173B1 (en) * 1997-11-17 2001-12-25 Hyundai Electronics Industries Co. Ltd. Combined cache with main memory and a control method thereof
US6185657B1 (en) * 1998-04-20 2001-02-06 Motorola Inc. Multi-way cache apparatus and method
US6415353B1 (en) * 1998-10-01 2002-07-02 Monolithic System Technology, Inc. Read/write buffers for complete hiding of the refresh of a semiconductor memory and method of operating same
EP1387274A3 (en) * 2002-07-31 2004-08-11 Texas Instruments Incorporated Memory management for local variables

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR200451794Y1 (ko) * 2010-03-19 2011-01-12 주식회사 케이피 힌지 보강구조가 부착된 선박 가구용 하드코어 보강재

Also Published As

Publication number Publication date
DE69937611T2 (de) 2008-10-23
JP2001297037A (ja) 2001-10-26
DE69937611D1 (de) 2008-01-03
KR100805974B1 (ko) 2008-02-25
EP1107123A1 (en) 2001-06-13
US6826652B1 (en) 2004-11-30
EP1107123B1 (en) 2007-11-21

Similar Documents

Publication Publication Date Title
KR100805974B1 (ko) 스마트 캐시
KR100339904B1 (ko) 캐시 프로세스용 시스템 및 방법
JP4008826B2 (ja) オンチップキャッシュのデータ圧縮により有効キャッシュサイズを増大させるキャッシュ圧縮エンジンのための装置
US5644752A (en) Combined store queue for a master-slave cache system
US5510934A (en) Memory system including local and global caches for storing floating point and integer data
USRE45078E1 (en) Highly efficient design of storage array utilizing multiple pointers to indicate valid and invalid lines for use in first and second cache spaces and memory subsystems
US5694567A (en) Direct-mapped cache with cache locking allowing expanded contiguous memory storage by swapping one or more tag bits with one or more index bits
KR100814982B1 (ko) 다수의 채움 모드를 구비한 캐시
US6874077B2 (en) Parallel distributed function translation lookaside buffer
TWI393050B (zh) 促進多重處理器介面之板內建快取記憶體系統之記憶體裝置及方法及使用其之電腦系統
US5715427A (en) Semi-associative cache with MRU/LRU replacement
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
KR19980079433A (ko) 비포함 캐쉬 메모리 계층 구조에서 사용하기 위한 캐쉬 일관성 메카니즘 구현 방법 및 시스템
JPH06243039A (ja) キャッシュメモリシステムおよびマイクロプロセッサ内の命令を操作するための方法
US6151661A (en) Cache memory storage space management system and method
US6766431B1 (en) Data processing system and method for a sector cache
US7219197B2 (en) Cache memory, processor and cache control method
US5737575A (en) Interleaved key memory with multi-page key cache
US6751700B2 (en) Date processor and storage system including a set associative cache with memory aliasing
US7949833B1 (en) Transparent level 2 cache controller
US6240487B1 (en) Integrated cache buffers
US5926841A (en) Segment descriptor cache for a processor
KR19990077471A (ko) 스누핑포트를사용하는프리페치캐시질의방법및시스템
US6385696B1 (en) Embedded cache with way size bigger than page size
US6976130B2 (en) Cache controller unit architecture and applied method

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
G170 Re-publication after modification of scope of protection [patent]
FPAY Annual fee payment

Payment date: 20130130

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140129

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150129

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20151230

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20161229

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20171228

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20181227

Year of fee payment: 12