KR100606873B1 - 캐시 메모리용 상태 비트 - Google Patents

캐시 메모리용 상태 비트 Download PDF

Info

Publication number
KR100606873B1
KR100606873B1 KR1020017015648A KR20017015648A KR100606873B1 KR 100606873 B1 KR100606873 B1 KR 100606873B1 KR 1020017015648 A KR1020017015648 A KR 1020017015648A KR 20017015648 A KR20017015648 A KR 20017015648A KR 100606873 B1 KR100606873 B1 KR 100606873B1
Authority
KR
South Korea
Prior art keywords
status
hierarchical relationship
level
bits
memory
Prior art date
Application number
KR1020017015648A
Other languages
English (en)
Other versions
KR20020010922A (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 KR20020010922A publication Critical patent/KR20020010922A/ko
Application granted granted Critical
Publication of KR100606873B1 publication Critical patent/KR100606873B1/ko

Links

Images

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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • 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
    • 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/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • G11C15/04Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements

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 레벨의 복수의 제 1 레벨 상태 비트에 관련한 조합 상태가, 상기 계층적 관계내의 상기 계층적 관계에서 상기 제 1 레벨보다 높은 제 2 레벨의 제 2 레벨 상태 비트로 나타내어지는 상태 비트 저장장치와, 상기 계층적 관계 내의 톱 레벨에서 시작하는 상기 상태 비트 저장장치내의 상태 비트를 검사하고, 상기 계층적 관계에서 하위에 있는 임의의 상태 비트와 독립적인 상기 데이터 워드의 상기 상태를 나타내는 상태 비트가 도달할 때까지, 상기 계층적 관계를 통해 정밀 조사하여 상기 메모리내의 데이터 워드 상태를 결정하도록 동작하는 상태 질의 로직부를 구비한 데이터 처리장치를 제공한다. 이러한 구성에서, 상태 비트로의 전체 또는 대규모 변경은 계층적 관계 내의 비교적 소수의 높은 레벨 상태 비트를 수정하여서 이루어짐으로써, 필요한 특정 목적용 하드웨어의 감소된 레벨로 고속 변경을 이룬다.
캐시 메모리, 상태 비트 저장장치, 상태 질의 로직부, 계층적 관계, 워드

Description

캐시 메모리용 상태 비트{STATUS BITS FOR CACHE MEMORY}
본 발명은 데이터 처리 시스템에 관한 것이다. 특히, 본 발명은 그 캐시 메모리내의 각 데이터 워드와 연관된 적어도 하나의 상태 비트에서 통합하는 캐시 메모리를 사용하는 데이터 처리 시스템에 관한 것이다.
첨부 도면의 도 1에 도시되고, 캐시 RAM 메모리(4)의 데이터 라인에 대한 어드레스 TAG를 포함한 저장장치(2)를 구비한 것과 같은 캐시 메모리를 제공하는 것으로 알려졌다. 캐시 RAM 메모리(4)는, 복수의 캐시 라인(6)으로 구성되고, 각 캐시 라인(6)은 4개의 데이터 워드를 저장하고 있다. 복수의 유효 및 더티(dirty) 비트(8)는 각 캐시 라인(6)과 연관된다. 일반 형태의 상태 비트(8)는 유효 비트(10)와 더티 비트(12)이다. 이때, 유효 비트(10)는, 그 캐시 라인이 유효 데이터, 예를 들면 각 캐시 라인(6)이 무효 데이터를 저장하는 것처럼 마킹되어야 하는 시작에서 유효 데이터를 저장하고 있는지 아닌지를 나타낸다. 더티 비트(12)는, 메인 메모리로부터 판독되므로 그 캐시 라인(6)을 갖는 적어도 하나의 데이터 워드가 변경되어서, 그 캐시 라인(6)이 그 캐시로부터 플러시(flush)되거나 그 캐시 내로 교체될 경우 메인 메모리로 라이트 백(write back)할 필요가 있는 라이트 백 방식 캐시 아키텍처의 문맥(context)에 나타나 있다. 여기서, 알 수 있는 것은, 회로 영역과 미세 제어 정도간의 절충이 상태 비트(8)에 의해 달성될 수 있으므로, 각 캐시 라인(6)은 그 상태 비트와 연관된 하나의 유효 비트(10)를 갖고 그 상태 비트와 연관된 하나의 더티 비트(8)를 갖는다(이는, 대부분의 캐시 구현에 사용된 구성이다)는 것이다. 따라서, 캐시 라인(6)내의 4개의 데이터 워드는 이들 상태 비트(8)를 공유한다.
특정 동작의 경우에 있어서, 캐시 시스템의 모든 캐시 라인(6)의 상태 비트(8)에 대해 전체적으로 변경시키는 것이 바람직하다. 일 예로서, MMU 변경 뒤에 오거나 문맥 전환 뒤에 오는 시스템 시작시에, 각 캐시 라인(6)의 모든 유효 비트(10)를 무효로서 마킹하여 전체 캐시의 내용을 종종 플러시할 필요가 있다. 이렇게 하는 일 방법은, 각 유효 비트(10)를 연속적으로 액세스하여 그것을 무효로 기록하는데 있다. 많은 캐시 라인(6)을 포함하는 캐시 시스템에서, 이 동작은 많은 처리 사이클을 가질 수 있어 시스템 성능에 상당히 영향을 줄 수 있다. 각 상태 비트(8)를 연속적 및 개별적으로 변경하는 다른 대안은, 병렬로 그 상태 비트를 변경할 수 있도록 특정 목적용 하드웨어를 통해 전체적인 변경을 적용하는데 있다. 이것은 급속한 동작을 제공할 수 있지만, 이 특정 목적용 하드웨어를 위한 회로 영역을 낭비하는 단점이 있고, 일반적으로 더욱 총괄적인 시스템 설계의 구현마다 커스텀(custom) 설계되는 것이 요구된다.
US-A-5475849에는, 각각 하나의 메인 메모리를 공유하고 그들 자신의 버퍼 저장장치 또는 캐시를 갖는 복수의 프로세서를 갖는 멀티-프로세싱 시스템용 메모리 제어장치가 개시되어 있다. 이 시스템은, 개개의 버퍼장치와 메인 메모리 사이에서 매칭 제어를 하기 위한 프론트 어드레스 어레이(FAA: front address array)를 사용한다. FAA 탐색을 위한 대기 시간을 지나치게 증가시키는 것 없이 필요로 하는 FAA의 수를 제한하기 위해서, 이 시스템은 메인 메모리의 메모리 위치마다 엔트리를 갖는 블록 유효 메모리(BVM: block valid memory)와 각 버퍼 저장장치와 연관된 메모리 위치 그룹마다 엔트리를 갖는 블록 그룹 유효 테이블(BGVT: block group valid table)을 갖는다. 저장 요구시에, BGVT는 먼저 액세스되고, 그 요구된 위치를 포함하는 일부 또는 모든 블록이 이 BGVT와 연관된 버퍼 저장장치에 존재할 경우 유효 신호가 생성된다. 이에 따라 대응 BVM은 액세스되고, 이것이 유효 신호를 생성할 경우 메모리 위치는 버퍼에 존재하고 FAA가 액세스된다. 양쪽이 무효 신호를 생성할 경우 그 요구는 무시되어 FAA로 보내진다.
US-A-5539894에는, 블록 유효 비트와 서브블록 유효 비트를 갖는 캐시 태그를 갖는 캐시가 개시되어 있다.
본 발명은, 모든 상태비트의 병렬 액세스를 위한 커스텀 하드웨어를 제공해야 하지 않고서 하나의 처리 사이클을 가능한 빠르게 고속에서 상태 비트를 변경하는 장치를 제공하는데 있다.
본 발명의 일 국면에 의하면,
복수의 데이터 워드를 저장 가능하도록 동작하고, 각 데이터 워드가 상기 데이터 워드의 상태에 관한 정보를 주는 적어도 하나의 상태 비트와 연관된 메모리와,
계층적 관계 내의 상기 상태 비트를 저장 가능하도록 동작하여, 상기 계층적 관계 내의 제 1 레벨의 복수의 제 1 레벨 상태 비트에 관련한 조합 상태가, 상기 계층적 관계내의 상기 계층적 관계에서 상기 제 1 레벨보다 높은 제 2 레벨의 제 2 레벨 상태 비트로 나타내어지는 상태 비트 저장장치와,
상기 계층적 관계 내의 톱(top) 레벨에서 시작하는 상기 상태 비트 저장장치내의 상태 비트를 검사하고, 상기 계층적 관계에서 하위에 있는 임의의 상태 비트와 독립적인 상기 데이터 워드의 상기 상태를 나타내는 상태 비트가 도달할 때까지, 상기 계층적 관계를 통해 정밀 조사하여, 상기 메모리내의 데이터 워드 상태를 결정하도록 동작하는 상태 질의 로직(logic)부를 구비한 데이터 처리장치에 있어서,
상기 장치는, 상기 계층적 관계의 최고위 레벨 내의 상태 비트들만을 수정하여 상기 메모리 내에 저장된 모든 데이터 워드의 상태의 전체적인 변경을 나타낼 수 있도록 동작하는 것을 특징으로 한다.
본 발명은, 그 메모리내의 복수의 데이터 워드의 상태로의 전체 또는 대규모 변경은, 상태가 변경하고 있는 각 데이터 워드에 관련된 모든 상태 비트를 개별적으로 변경하지 않고서 계층적 관계의 톱에서 또는 그 계층적 관계의 톱쪽으로 비교적 거의 없는 상태 비트를 변경하여서 이루어지도록 (적어도 2개의 레벨을 갖는) 계층적 관계로 배치된 상태 비트를 제공한다. 이러한 구성에서, 상태 비트에 대해 전체 또는 대규모 변경을 하는데 걸린 시간은, 모든 상태 비트에 대해 병렬로 대규모 변경을 하기 위한 커스텀 하드웨어를 제공할 필요 없이 상당히 단축될 수 있다. 여기서 알 수 있는 것은, 많은 데이터 워드가 상태 비트를 공유하여도 된다는 것이다. 일부 실시예에서, 계층은, TAG 값, 데이터 워드, 더티 비트 및 나머지 상태 비트를 포함하도록 참조하는 유효 비트 및 데이터 워드이어도 된다.
상태 비트는, 이 상태 비트들에 관련된 데이터 워드의 다양한 서로 다른 특성을 나타낸다. 그러나, 본 발명은, 상태 비트가 그 메모리 내에 저장된 데이터 워드의 유효성을 나타낸 유효 비트인 실시예에 특히 적합하다.
유효 비트는, 종종 전체 또는 대규모 변경을 필요로 하여서, 본 발명은 유효 비트들을 더욱 급속하고 감소된 하드웨어 비용으로 변경되게 하는데 특히 유용하다.
여기서 알 수 있는 것은, 계층적 관계내의 최하위 레벨에서 개개의 상태 비트는, 각 데이터 워드를 위해 구성될 수 있다는 것이다. 그래서, 메모리가 캐시 메모리이고 캐시 라인이 4개의 데이터 워드를 저장할 경우, 4개의 별도의 유효 비트를 각 개별 데이터 워드의 유효성을 나타내는 캐시 라인과 연관시키는 것이 가능할 것이다. 그러나, 본 발명의 바람직한 실시예에서, 최하위 레벨 상태 비트는, 복수의 데이터 워드에 관계된다. 이는, 달성할 수 있는 미세한 제어의 입도(granularity)와 그 상태 비트를 제공하는데 필요한 하드웨어 자원 사이의 만족스러운 절충을 제공한다.
특히, 최하위 레벨 상태 비트와 캐시 메모리의 캐시 행(row)내의 모든 데이터 워드를 연관시키는 것이 매우 편리하다. 일부 실시예에서는, 그 연관된 TAG 값과 더티 비트를 포함하도록 캐시 행을 고려하여도 된다.
이 구성으로 알 수 있는 것은, 캐시 행 레벨 이하의 상태 정보가 실제로 대부분의 메모리 액세스와 연관된 시간적 및 공간적 국소성으로 인해 거의 필수적이지 않도록, 메인 메모리로 및 메인 메모리로부터의 캐시 액세스가 전형적으로 캐시 행 단위 기본으로 일어나므로 효율적으로 작용한다는 것이다.
본 발명은, 그 자체를, 상태 비트 저장장치가 복수의 상태 비트로 구성된 상태 비트 워드를 저장하는 RAM 메모리를 구비한 실시예에 적용한다. 이들 상태 비트와 상태 질의 로직부 사이의 계층적 관계는, 크게 성능 충돌 없이 그 계층적 관계내의 하위 레벨쪽으로의 상태 비트를 RAM 메모리 내에 저장할 수 있도록 하여서, 커스텀 래치 또는 레지스터와 비교하여 RAM 메모리의 저장 밀도 이점을 얻을 수 있다.
RAM 메모리 내에 상태 비트들을 저장하므로 그 상태 비트들을 RAM 메모리로부터 액세스된 상태 비트 워드로서 쉽게 조작한다.
상태 비트 워드 조작시에, 일반적인 동작은, 많은 시스템 내에 데이터 처리 구조가 존재하므로써 쉽게 지원되는 판독-수정-기록 동작일 것이다. 또한, 별도의 판독 및 기록 동작이 필요해질 수도 있고, 일부 RAM 메모리에서의 판독 및 기록 동작만이 지원될 것이다.
상태 비트 저장장치 내의 최하위 레벨에 있는 고밀도 RAM 메모리의 사용에 비하여, 바람직한 실시예에서는, 적어도 계층적 관계 내의 최상위 레벨은 그 상태 비트를 저장하는데 레지스터 비트 회로(D형)를 사용한다. 래치 회로는, 시작, MMU변경, 문맥 전환 등과 같은 소정의 입력 또는 상태에 따라 매우 빠르게 액세스되거 나 변경될 수 있으므로, 상대적으로 적거나 커스텀 하드웨어가 없는 급속한 전체 또는 대규모 상태 변경을 제공할 수 있다.
일반적으로, 래치에 저장된 상태 비트는, 워드 단위 기본으로 액세스되어 조작되는 RAM내에 저장된 상태 비트와 비교된 것처럼 개별적으로 액세스되어 조작될 수 있다.
일부 실시예에서, 계층적 관계내의 최고위 레벨은, 단일 상태 비트를 포함하여도 된다. 이러한 경우에, 캐시 메모리의 전체 데이터 워드의 상태는, 최고위 레벨에서 이 하나의 상태 비트의 단일 변경에 의해 변경될 수 있다.
본 발명의 상태 비트 저장장치와 상태 질의 로직부로부터의 실제적인 이점을 얻기 위해서, 전체 메모리에 대한 전체적인 변경은 계층적 관계의 최고위 레벨만을 수정하여서 이루어지고, 그러한 전체적인 변경이 단일 처리 사이클에 영향을 미치도록 충분한 하드웨어 지원이 제공되도록 구성하는 것이 매우 바람직하다. 특히, 이것은, 캐시 메모리의 문맥에서의 장점이다.
여기서 알 수 있는 것은, 상태 비트의 전체적인 변경은 그러한 계층적 관계내에 보다 소수의 비트로의 변경을 사용하여 이루어지지만, 최하위 레벨로부터 시작하는 개별적인 상태 비트의 설정은, 그 변경이 계층적 관계 전체에 걸쳐 상부를 향해 반영될 것처럼 더 길어진다고 생각될지도 모른다는 것이다. 그러나, 본 발명으로 알 수 있는 것은, 일반적으로 캐시 메모리의 문맥에서, 캐시 필(fill) 동작이 비교적 늦어서, 캐시 필과 연관된 많은 상태 비트 변경은, 실제로 전체 동작 속도에 영향을 미치지 않고서 계층적 관계내의 모든 필요한 상태 비트 변경이 허락되도 록 그들에게 이용 가능한 충분한 시간을 갖게 한다는 것이다. 상태 비트는, 효율성을 더욱 증가시키는 병렬로 변경되어도 된다.
또 다른 국면에 의하면, 본 발명은, 메모리 내에 각각이 데이터 워드의 상태에 관한 정보를 주는 적어도 하나의 상태 비트와 연관된 복수의 데이터 워드를 저장하는 단계와,
계층적 관계 내의 제 1 레벨의 복수의 제 1 레벨 상태 비트에 관련한 조합 상태가 상기 계층적 관계에서 상기 제 1 레벨 보다 높은 상기 계층적 관계내의 제 2 레벨의 제 2 레벨 상태 비트로 나타내도록 계층적 관계내의 상기 상태 비트를 저장하는 단계와,
상기 계층적 관계내의 톱 레벨에서 시작하는 상기 상태 비트 저장내의 상태 비트를 검사하고, 상기 계층적 관계에서 하위에 있는 임의의 상태 비트와 독립적인 상기 데이터 워드의 상기 상태를 나타내는 상태 비트가 도달할 때까지, 상기 계층적 관계를 통해 정밀 조사하여 상기 메모리내의 데이터 워드 상태를 결정하는 단계를 포함한 데이터 처리방법에 있어서,
상기 계층적 관계의 최고위 레벨 내의 상태 비트들만을 수정하여 상기 메모리 내에 저장된 모든 데이터 워드의 상태의 전체적인 변경을 나타내는 것을 특징으로 한다.
이하, 본 발명의 실시예들을 아래 첨부도면을 참조하여 실시예에 의해서만 설명하겠다.
도 1은 각 캐시 라인에 대한 개개의 상태 비트를 갖는 종래의 캐시 시스템을 나타내고,
도 2는 캐시 상태 비트 저장장치와 계층적 관계에서 그와 연관된 상태 비트 를 나타내고,
도 3은 캐시 라인 TAG값과 상태 비트를 조정하기 위한 캐시 시스템의 일부를 개략적으로 나타내고,
도 4는 데이터 워드의 어드레스 비트와 상태 비트의 계층적 관계내의 데이터 워드용 상태 비트 사이의 관계를 갖는 캐시 아키텍처의 예를 나타내고,
도 5는 캐시 메모리 시스템의 일부의 또 다른 실시예를 나타낸 것이다.
도 2는 4개의 데이터 워드를 각각 저장하는 복수의 캐시 라인(16)으로 구성된 캐시 데이터 워드 메모리(14)를 나타낸 것이다. 단일 유효 비트(18)는, 각 캐시 라인(16)과 연관되어 있다. 8개의 연속적인 캐시 라인(16)의 유효 비트는, 상태 비트 RAM 메모리 내에 저장된 단일 상태 비트 워드(20)내에 저장된다. 이 상태 비트 워드(20)는, 그 상태 비트를 저장하는 계층적 관계 내에 최하위 레벨을 포함한다.
각 상태 비트 워드(20)는, 계층적 관계내의 상위 레벨에 저장되고 그 상태 워드(20)내의 모든 상태 비트(18)의 조합 상태를 나타낸 상태 비트(22)와 연관된다. 그리고, 8개의 상태 워드(20)의 상태는, 계층적 관계의 다음 최고위 레벨내의 하나의 상태 워드의 8비트(22)로 나타낼 수 있다. 이 다음 최고위 레벨 그 자체는, 상태 비트 RAM 메모리 내에 제공되거나 또는 전용 로직부를 사용하여 비교적 고속으로 변경될 수 있는 래치(레지스터 비트)를 갖는 상태 비트 저장장치를 제공하는데 더욱 효율적으로 시작되는 계층적 관계의 정상(top)을 향한 일부 레벨에서 제공될 수 있을 것이다. 그 이상의 레벨은 도시된 2개의 레벨 보다 위에서 제공되어도 된다.
도 3은 캐시 행 TAG 값과 연관 상태 비트를 저장하는 캐시 메모리 시스템의 일부를 나타낸 것이다. 이 캐시가 256 캐시 행을 가질 경우, 256 행 TAG 저장장치(24)는 각 캐시 행의 연관 TAG 값을 저장하도록 구성된다. 각 캐시 행이 단일 상태 비트(예, 유효 비트)만을 갖는다고 가정할 경우, 이들 256-캐시 행에 대한 상태 비트는 상태 비트 RAM 메모리(26)내에 포함된 8개의 32 비트 워드 내에 저장될 수 있다. 이 32-비트 워드는, 상태 비트를 저장하는 계층적 관계내의 최하위 레벨을 나타낸다. 계층적 관계내의 다음 최고위 레벨(및 이 실시예에서 최고위 레벨)은, 8비트 레지스터(28)에 의해 상태 비트 RAM 메모리(26) 내의 32-비트 상태 비트 중 하나의 조합 상태를 나타낸 레지스터(28)의 각 비트로 구성된다.
캐시 제어기(30)는, TAG 메모리(24), 상태 비트 RAM 메모리(26) 및 상태 비트 레지스터(28)에 연결되어 있다. 이 캐시 제어기(30)는, 캐시 메모리내의 데이터 워드로 액세스를 할 뿐만 아니라 다른 기능을 제공할 경우 상태 질의 로직부로서 동작한다. 데이터 워드로 액세스를 요구할 경우, 캐시 제어기(30)는 상태 비트 레지스터(28)와 상태 비트 RAM 메모리(26) 내에 저장된 상태 비트를 검사한다. 최고위 레벨에서 최하위 레벨에서의 특정 데이터 워드에 대응한 상태 비트 레지스터(28)내의 비트는 그 데이터 워드가 유효인 경우를 나타낼 경우, 캐시 제어기(30)는 상태 비트 RAM 메모리(26)내의 그 데이터 워드(캐시 행)용 개별 비트를 체크하는 것으로 진행한다. 상태 비트 레지스터(28)내의 비트가 무효를 나타낼 경우, 상태 비트 RAM 메모리(26)는, 최고위 레벨로 표시된 무효성이 최저 레벨로 나 타낸 어떠한 것도 무효로 하므로, (그 체크가 실제로 병렬로 수행되어도 되지만) 체크할 필요가 없다.
캐시 제어기(30)는, 이 상태 비트 레지스터(28)내의 모든 비트가, 예를 들면, 급속 캐시 플러시에 요구된 것처럼, 단일 사이클에 무효성을 나타내게 설정될 수 있도록 상태 비트 레지스터(28)내의 상태 비트로 고속 액세스를 할 수 있다. 상태 비트 RAM 메모리(26)내의 상태 비트 워드는, 계층적 관계내의 이 최하위 레벨에서 상태 비트로의 미세한 변경을 하는데 요구된 것처럼 판독-수정-기록 동작에 의해 액세스될 수 있다. 또한, 별도의 판독 및 기록 동작을 수행하여도 된다.
도 4는 라인 당 4개의 데이터 워드를 갖고 직접 맵핑된 128kB 내의 데이터 워드의 어드레스가 상태 비트 및 다른 제어 데이터와 어떻게 관련되는지의 예를 나타낸 것이다.
어드레스의 상부(32)는, 그 특정 데이터가 캐시되는지 아닌지를 결정하는 TAG 메모리(24)내에 저장된 TAG 값과 비교된 TAG 값으로 구성된다. 이 캐시가 직접 맵핑되므로, 어드레스의 중간부(34)는, 그 데이터가 캐시 내에 존재할 경우 TAG 값을 저장할 TAG 메모리 위치를 나타내는 캐시로의 인덱스를 제공한다. 어드레스의 하단에 있는 워드 비트 W 및 바이트 비트 B는, 캐시 행 내의 어느 워드 위치가 어드레싱 되고, 바이트 어드레싱을 할 경우 데이터 워드내의 어느 바이트 위치가 허락되는지를 나타낸다.
이 캐시 메모리용 상태 비트 정보는, 3개의 레벨 계층 내에 저장된다. 상태 비트는 각 캐시 행에 대해 저장되어서 각 인덱스 값과 연관된 상태 비트이다. 이들 인덱스 값 상태 비트는, 컴파일된 RAM 메모리로 구성된 256*16 어레이 내에 저장될 수 있다. 제 3 레벨내의 각 라인은, 16*16 어레이 내에 그 자체를 저장한 계층적 관계의 제 2 레벨 내에 대응 상태 비트를 갖는다. 또한, 이 16*16 어레이는, 컴파일된 RAM 메모리 내에 저장되어도 된다. 계층적 관계 내의 최고위 레벨(제 1 레벨)은, 제 2 레벨의 각 어레이 행에 대응한 하나의 레지스터 비트를 갖는 16 레지스터 비트로 구성된다.
도 5는 실시예에 의한 또 다른 캐시 메모리 구조를 나타낸다. 이 실시예에서, 1024 행 TAG 메모리(36)는, TAG 값을 저장하도록 구성된다. TAG 메모리(36) 내의 각 행은, 캐시 행에 대응하고, 그 메모리와 연관된 상태 비트를 갖는다. 따라서, 1024 캐시 행용 상태 비트는, 상태 비트 저장장치(40)의 일부를 형성하는 32*32비트 워드 RAM(38)내에 저장될 수 있다. 이 상태 비트 RAM 메모리(38)는, 계층적 관계 내의 최하위 레벨이다. 계층적 관계내의 최고위 레벨은, 상태 비트 RAM 메모리(38)내의 각 32 비트 워드에 대응한 하나의 레지스터 비트를 갖는 32비트 레지스터 비트(42)로 구성된다.
또 다른 설명에 의하면, 상태 비트의 계층적 관계를 포함하는 캐시 메모리 시스템 내에 저장된 데이터 워드를 조작하는 다양한 동작에 포함된 단계들은 다음과 같다:
상태 체크 단계:
* 모든 계층 레벨로부터 적합한 비트를 판독하고,
* 매 다음 하위 레벨이 유효인 것을 체크하는 계층을 정밀 검사하고,
* 임의의 레벨이 그 하위 레벨이 무효한 것을 나타낼 경우, 디폴트(리셋)값을 리턴하고,
* 임의의 레벨이 그 하위 레벨이 무효한 것을 나타내지 않을 경우, 최하위 레벨 유효 저장장치로부터 불러온(fetched) 값을 리턴한다.
상태 비트는 2개의 상태를 갖는다. 유효 비트일 경우, 무효인 리셋 상태와 유효 상태가 있다. 무언가를 유효로서 마킹하기 위해서는, 계층의 모든 레벨을 마킹해야 한다. 리셋 상태는 하이 레벨 비트로 나타낼 수 있는 스트롱(strong) 상태로 생각될 수 있고, 나머지 상태는 계층의 모든 비트가 일치되어야 하는 위크(weak) 상태로 생각될 수 있다.
위치마다 다중 상태 비트를 저장하는 시스템에서, 단지 계층의 최고위 레벨만이 그 계층에서 하위 레벨의 유효성을 나타내도록 단일 비트를 포함할 필요가 있다.
상태 기록단계:
* 다음 레벨 다운이 유효한 것을 나타내도록 적합한 비트를 설정하는 계층을 정밀 검사하고,
* 이전에 무효이었던 (계층의 임의의 레벨에 있는) 새로운 라인이 유효로서 마킹될 경우, 완료(complete) 라인은 기록된 값을 제외하고는 리셋 값으로 초기화되어야 하고,
* 라인이 이전에 유효인 경우, 적합한 비트만을 갱신하기 위해 판독-수정-기록 동작이 필요하고,
* 계층의 최하위 레벨에서, 적합한 데이터가 기록되어야 하고, 필요한 경우 나머지 상태 비트는 그들의 리셋 값으로 기록된다.
상태 리셋단계:
* 상태 비트의 최고위 레벨은 전체 계층을 무효로서 마킹하기 위해 리셋되어야 한다.
캐시형 시스템에서, 판독-수정-기록 동작은, 많은 사이클에 걸쳐서 계속할 수도 있다. 이것으로 일어나는 일부 중요한 옵션은 다음과 같다:
* 얼마나 많은 상태 비트가 최하위 레벨(예: 4개의 유효 비트 + 더티 + 나머지 상태 비트)에서 유지하느냐에 상관없이, 유효 비트의 계층을 유지할 필요가 있을 뿐인, 즉 계층내의 서로 다른 레벨은 다른 상태 비트를 저장할 수 있다.
* 이렇게 할 경우, 그 어레이를 판독하는 로직부는 무효 위치가 액세스될 경우 '리셋' 상태로 리턴할 필요가 있다.
* 단지 그 유효 비트 계층을 유지하는 것보다는 오히려 그 유효 비트 계층이 계층을 통해 다른 상태를 추적하는데 이로울지도 모른다. 예를 들면, 유효 및 더티 계층 유지하는데, 이는, 더티 캐시 위치를 더 급속하게 검색하게 할 것이다.

Claims (18)

  1. 복수의 데이터 워드를 저장 가능하도록 동작하고, 각 데이터 워드가 상기 데이터 워드의 상태에 관한 정보를 주는 적어도 하나의 상태 비트(18)와 연관된 메모리(14)와,
    계층적 관계 내의 상기 상태 비트를 저장 가능하도록 동작하여, 상기 계층적 관계 내의 제 1 레벨의 복수의 제 1 레벨 상태 비트에 관련한 조합 상태가, 상기 계층적 관계내의 상기 계층적 관계에서 상기 제 1 레벨보다 높은 제 2 레벨의 제 2 레벨 상태 비트(22)로 나타내어지는 상태 비트 저장장치(26, 28, 40)와,
    상기 계층적 관계 내의 톱 레벨에서 시작하는 상기 상태 비트 저장장치내의 상태 비트를 검사하고, 상기 계층적 관계에서 하위에 있는 임의의 상태 비트와 독립적인 상기 데이터 워드의 상기 상태를 나타내는 상태 비트가 도달할 때까지, 상기 계층적 관계를 통해 정밀 조사하여 상기 메모리내의 데이터 워드 상태를 결정하도록 동작하는 상태 질의 로직부(30)를 구비한 데이터 처리장치에 있어서,
    상기 장치는, 상기 계층적 관계의 최고위 레벨 내의 상태 비트들만을 수정하여 상기 메모리 내에 저장된 모든 데이터 워드의 상태의 전체적인 변경을 나타낼 수 있도록 동작하는 것을 특징으로 하는 데이터 처리장치.
  2. 제 1 항에 있어서,
    상기 상태 비트는, 상기 메모리(14) 내에 저장된 데이터 워드의 유효성을 나타낸 유효 비트인 것을 특징으로 하는 데이터 처리장치.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 계층적 관계내의 최하위 레벨에서 최하위 레벨 상태 비트는, 상기 메모리(14) 내에 저장된 복수의 데이터 워드에 관계된 것을 특징으로 하는 데이터 처리장치.
  4. 제 1 항 또는 제 2 항에 있어서,
    상기 메모리(14)는 캐시 메모리인 것을 특징으로 하는 데이터 처리장치.
  5. 제 4 항에 있어서,
    상기 캐시 메모리(14)는, 복수의 캐시 행을 포함하고, 각 캐시 행은 복수의 데이터 워드를 저장하고, 최하위 레벨 상태 비트는 상기 캐시 메모리의 캐시 행 내에 모든 데이터 워드에 관련된 것을 특징으로 하는 데이터 처리장치.
  6. 제 1 항 또는 제 2 항에 있어서,
    상기 상태 비트 저장장치(26, 28, 40)는, 복수의 상태 비트로 구성된 상태 비트 워드(20)를 저장하는 RAM 메모리(26, 38)를 구비한 것을 특징으로 하는 데이터 처리장치.
  7. 제 6 항에 있어서,
    상기 상태 비트 워드(20)내의 상태 비트(18)는, 상기 상태 비트 워드의 일부로서 액세스되어 조작되는 것을 특징으로 하는 데이터 처리장치.
  8. 제 7 항에 있어서,
    상태 비트(18)는, 상기 RAM 메모리(26, 38)의 상태 워드(20) 판독-수정-기록 동작에 의해 조작되는 것을 특징으로 하는 데이터 처리장치.
  9. 제 1 항 또는 제 2 항에 있어서,
    상기 상태 비트 저장장치는, 상태 비트를 저장 가능하도록 동작하는 적어도 하나의 레지스터 비트 회로(28, 42)를 포함한 상기 계층적 관계내의 적어도 최고위 레벨을 구비한 것을 특징으로 하는 데이터 처리장치.
  10. 제 9 항에 있어서,
    레지스터 비트 내에 저장된 상태 비트는, 개별적으로 액세스되어 조작되는 것을 특징으로 하는 데이터 처리장치.
  11. 제 1 항 또는 제 2 항에 있어서,
    상기 계층적 관계 내의 최고위 레벨은, 단일 상태 비트를 포함한 것을 특징으로 하는 데이터 처리장치.
  12. 삭제
  13. 제 4항에 있어서,
    상기 상태 비트 저장장치는, 상기 캐시 메모리 내의 모든 데이터 워드의 상태의 전체적인 변경이, 단일 처리 사이클에서 상기 계층적 관계내의 최고위 레벨 상태 비트로의 변경에 의해 제공될 수 있도록 동작 가능한 것을 특징으로 하는 데이터 처리장치.
  14. 제 4 항에 있어서,
    상기 캐시 메모리내의 모든 데이터 워드 상태의 전체적인 변경은,
    (i) 캐시 메모리 플러시 동작,
    (ii) 상기 데이터 워드로의 액세스를 제어하는 메모리 관리부 구성의 변경,
    (iii) 상기 장치의 소프트웨어 동작을 제어하는 운영 체제의 문맥 전환 중 하나에 따라서 이루어지는 것을 특징으로 하는 데이터 처리장치.
  15. 제 4 항에 있어서,
    상기 데이터 워드는 복수의 처리 사이클 동안 지속되는 캐시 필 동작을 사용하여 상기 캐시 메모리 내에 저장되고, 상기 상태 비트 저장장치는 상기 복수의 처리 사이클 동안 상기 캐시 메모리 내에 저장되는 상기 데이터 워드에 관련한 상태 비트를 수정 가능하도록 동작하는 것을 특징으로 하는 데이터 처리장치.
  16. 제 1 항 또는 제 2 항에 있어서,
    상기 계층적 관계는, 깊이 3 이상의 레벨인 것을 특징으로 하는 데이터 처리장치.
  17. 제 1 항 또는 제 2 항에 있어서,
    상기 계층적 관계 내의 서로 다른 레벨은 서로 다른 상태 비트를 저장한 것을 특징으로 하는 데이터 처리장치.
  18. 메모리 내에 각각이 데이터 워드의 상태에 관한 정보를 주는 적어도 하나의 상태 비트와 연관된 복수의 데이터 워드를 저장하는 단계와,
    계층적 관계 내의 제 1 레벨의 복수의 제 1 레벨 상태 비트에 관련한 조합 상태가 상기 계층적 관계에서 상기 제 1 레벨 보다 높은 상기 계층적 관계내의 제 2 레벨의 제 2 레벨 상태 비트로 나타내도록 계층적 관계내의 상기 상태 비트를 저장하는 단계와,
    상기 계층적 관계내의 톱 레벨에서 시작하는 상기 상태 비트 저장내의 상태 비트를 검사하고, 상기 계층적 관계에서 하위에 있는 임의의 상태 비트와 독립적인 상기 데이터 워드의 상기 상태를 나타내는 상태 비트가 도달할 때까지, 상기 계층적 관계를 통해 정밀 조사하여 상기 메모리내의 데이터 워드 상태를 결정하는 단계를 포함한 데이터 처리방법에 있어서,
    상기 계층적 관계의 최고위 레벨 내의 상태 비트들만을 수정하여 상기 메모리 내에 저장된 모든 데이터 워드의 상태의 전체적인 변경을 나타내는 것을 특징으로 하는 데이터 처리방법.
KR1020017015648A 1999-06-08 2000-02-04 캐시 메모리용 상태 비트 KR100606873B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9913348.0 1999-06-08
GB9913348A GB2350910A (en) 1999-06-08 1999-06-08 Status bits for cache memory

Publications (2)

Publication Number Publication Date
KR20020010922A KR20020010922A (ko) 2002-02-06
KR100606873B1 true KR100606873B1 (ko) 2006-07-31

Family

ID=10854970

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017015648A KR100606873B1 (ko) 1999-06-08 2000-02-04 캐시 메모리용 상태 비트

Country Status (12)

Country Link
US (1) US6272033B1 (ko)
EP (1) EP1190325B1 (ko)
JP (1) JP2003501744A (ko)
KR (1) KR100606873B1 (ko)
CN (1) CN1145887C (ko)
DE (1) DE60003426T2 (ko)
GB (1) GB2350910A (ko)
IL (2) IL145651A0 (ko)
MY (1) MY120377A (ko)
RU (1) RU2237278C2 (ko)
TW (1) TW507124B (ko)
WO (1) WO2000075785A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2369691B (en) * 2000-11-29 2003-06-04 Sun Microsystems Inc Control logic for memory modification tracking
GB2369694B (en) * 2000-11-29 2002-10-16 Sun Microsystems Inc Efficient memory modification tracking
GB2369690B (en) * 2000-11-29 2002-10-16 Sun Microsystems Inc Enhanced protection for memory modification tracking
US6965970B2 (en) * 2001-09-27 2005-11-15 Intel Corporation List based method and apparatus for selective and rapid cache flushes
JP4434534B2 (ja) * 2001-09-27 2010-03-17 株式会社東芝 プロセッサ・システム
US7412433B2 (en) * 2002-11-19 2008-08-12 International Business Machines Corporation Hierarchical storage management using dynamic tables of contents and sets of tables of contents
US20040199723A1 (en) * 2003-04-03 2004-10-07 Shelor Charles F. Low-power cache and method for operating same
US7674671B2 (en) * 2004-12-13 2010-03-09 Optomec Design Company Aerodynamic jetting of aerosolized fluids for fabrication of passive structures
CN101021858A (zh) * 2007-01-29 2007-08-22 华为技术有限公司 一种数据存储方法及装置及数据查找、添加、删除方法
US7685181B2 (en) * 2007-02-26 2010-03-23 International Business Machines Corporation Method and system for utilizing a hierarchical bitmap structure to provide a fast and reliable mechanism to represent large deleted data sets in relational databases
JP2008234074A (ja) * 2007-03-16 2008-10-02 Fujitsu Ltd キャッシュ装置
US8347029B2 (en) * 2007-12-28 2013-01-01 Intel Corporation Systems and methods for fast state modification of at least a portion of non-volatile memory
US20090300293A1 (en) * 2008-05-30 2009-12-03 Advanced Micro Devices, Inc. Dynamically Partitionable Cache
CN102571569B (zh) * 2011-12-28 2015-04-01 方正国际软件有限公司 一种报文预知方法及系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4426682A (en) * 1981-05-22 1984-01-17 Harris Corporation Fast cache flush mechanism
DE3919802C2 (de) * 1988-06-17 1997-01-30 Hitachi Ltd Speichersteuersystem für ein Multiprozessorsystem
US5539894A (en) * 1993-04-20 1996-07-23 Sun Microsystems, Inc. Method and apparatus for optimizing a sector cache tag, block and sub-block structure base on main memory size
US5568416A (en) * 1994-03-24 1996-10-22 Kawasaki Steel Corporation Associative memory
DE19516949A1 (de) * 1994-05-11 1996-02-15 Gmd Gmbh Speichervorrichtung zum Speichern von Daten
US6046923A (en) * 1999-01-13 2000-04-04 Lucent Technologies Inc. Content-addressable memory architecture with column muxing

Also Published As

Publication number Publication date
MY120377A (en) 2005-10-31
RU2237278C2 (ru) 2004-09-27
TW507124B (en) 2002-10-21
US6272033B1 (en) 2001-08-07
JP2003501744A (ja) 2003-01-14
CN1355901A (zh) 2002-06-26
IL145651A (en) 2006-10-05
WO2000075785A1 (en) 2000-12-14
EP1190325A1 (en) 2002-03-27
DE60003426D1 (de) 2003-07-24
CN1145887C (zh) 2004-04-14
DE60003426T2 (de) 2004-05-19
KR20020010922A (ko) 2002-02-06
IL145651A0 (en) 2002-06-30
EP1190325B1 (en) 2003-06-18
GB9913348D0 (en) 1999-08-11
GB2350910A (en) 2000-12-13

Similar Documents

Publication Publication Date Title
US5689679A (en) Memory system and method for selective multi-level caching using a cache level code
US5410669A (en) Data processor having a cache memory capable of being used as a linear ram bank
US6542965B2 (en) Cache line replacement using cable status to bias way selection
JP3370683B2 (ja) キャッシュシステム
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
US5003459A (en) Cache memory system
KR100606873B1 (ko) 캐시 메모리용 상태 비트
US20100115204A1 (en) Non-uniform cache architecture (nuca)
US4825412A (en) Lockout registers
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
US6546467B2 (en) Cache coherency mechanism using an operation to be executed on the contents of a location in a cache specifying an address in main memory
JPH08227380A (ja) データ処理システム
KR20070104906A (ko) 캐시 메모리를 구비한 시스템 및 엑세스 방법
KR930010733A (ko) 라이트 드루 가상 캐시메모리, 에일리어스 어드레싱 및 캐시플러시
KR100814982B1 (ko) 다수의 채움 모드를 구비한 캐시
KR100326989B1 (ko) 스누핑 포트를 사용하는 프리페치 캐시 질의 방법 및 시스템
US20030159003A1 (en) Associative cache memory with replacement way information integrated into directory
US6324632B1 (en) Processing a data stream
US6240487B1 (en) Integrated cache buffers
KR100379993B1 (ko) 컴퓨터 시스템에서 캐시 라인 교체를 관리하기 위한 방법및 장치
US6686920B1 (en) Optimizing the translation of virtual addresses into physical addresses using a pipeline implementation for least recently used pointer
JP2004151962A (ja) キャッシュメモリ、プロセッサ及びキャッシュ制御方法
JP2846697B2 (ja) キャッシュメモリ制御装置
US7685372B1 (en) Transparent level 2 cache controller
EP0535701A1 (en) Architecture and method for combining static cache memory and dynamic main memory on the same chip (CDRAM)

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: 20130701

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140703

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150619

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160616

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170616

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 13