KR100758185B1 - 데이터 처리 장치 - Google Patents

데이터 처리 장치 Download PDF

Info

Publication number
KR100758185B1
KR100758185B1 KR1020010082560A KR20010082560A KR100758185B1 KR 100758185 B1 KR100758185 B1 KR 100758185B1 KR 1020010082560 A KR1020010082560 A KR 1020010082560A KR 20010082560 A KR20010082560 A KR 20010082560A KR 100758185 B1 KR100758185 B1 KR 100758185B1
Authority
KR
South Korea
Prior art keywords
instruction
cache
cache memory
memory units
ram
Prior art date
Application number
KR1020010082560A
Other languages
English (en)
Other versions
KR20020051874A (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 KR20020051874A publication Critical patent/KR20020051874A/ko
Application granted granted Critical
Publication of KR100758185B1 publication Critical patent/KR100758185B1/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
    • 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/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 불필요한 전력 소비를 피하고, 저전력으로 동작할 수 있는 명령 캐시를 갖는 데이터 처리 장치를 제공하는 것을 목적으로 한다.
복수의 캐시 메모리(17, 18)를 가지며, 요구된 명령을 저장하는 캐시 메모리(17)를 인에이블로 하고, 그 이외의 캐시 메모리(l8)를 디스에이블로 한다.

Description

데이터 처리 장치{DATA PROCESSING DEVICE}
도 1은 종래의 마이크로프로세서의 구성을 나타낸 도면.
도 2는 종래의 마이크로프로세서의 다른 구성을 나타낸 도면.
도 3은 도 2에 도시된 명령 캐시(13)의 구성을 나타낸 블록도.
도 4는 순차적으로 실행되는 명령의 일례를 나타낸 도면.
도 5는 도 3에 도시된 명령 캐시의 동작을 나타낸 도면.
도 6은 도 3에 도시된 명령 캐시의 다른 동작을 나타낸 도면.
도 7은 도 3에 도시된 명령 캐시의 판독 동작을 각 단계마다 분해하여 나타낸 도면.
도 8은 본 발명의 원리를 도 7의 판독 동작에 대비하여 나타낸 도면.
도 9는 본 발명의 일 실시 형태에 따른 명령 캐시의 구성을 나타낸 도면.
도 10은 도 9에 도시된 히트/미스 판정 논리 회로의 일 구성예를 나타낸 회로도.
도 11은 도 8에 도시된 명령 캐시의 동작을 나타낸 도면.
도 12는 도 8에 도시된 명령 캐시의 다른 동작을 나타낸 도면.
〈도면의 주요 부분에 대한 부호의 설명〉
10 : 마이크로프로세서
11 : 실행 유닛
12 : 외부 RAM
13 : 명령 캐시
14 : 명령 어드레스 레지스터
16 : 태그 RAM
18 : 캐시 RAM
20 : 비교기
21A : 히트/미스 판정 논리 회로
본 발명은 데이터 처리 장치에 관한 것으로, 더욱 상세하게는 명령 캐시를 구비하는 마이크로프로세서나 화상 처리 프로세서 등의 데이터 처리 장치에 관한 것이다.
종래, 각종 프로세서는 외부 메모리(RAM)로부터 명령을 수신하여, 실행 유닛에 의해 명령을 실행한다.
도 1은 이러한 종류의 마이크로프로세서를 나타낸 블록도이다. 마이크로프로세서(10)는 실행 유닛(11)을 구비한다. 실행 유닛(11)은 다음 순서로 외부 메모리로서 기능하는 외부 RAM(12)에 저장되어 있는 명령을 실행한다. 우선, 실행 유닛(11)은 명령 어드레스를 외부 RAM(12)에 출력하고(단계 1), 대응하는 명령을 수신한다(단계 2). 그리고, 실행 유닛(11)은 명령을 해석/실행한다(단계 3). 그 때, 실행 유닛(11)은 데이터를 판독하거나 또는 기록하기 위해서 데이터 어드레스를 외부 RAM(12)에 출력하고(단계 4), 데이터를 판독/기록한다(단계 5). 또한, 단계 4 및 단계 5는 명령에 따라서는 불필요한 동작이다.
도 1의 구성에서는 명령을 실행할 때마다 외부 RAM(12)에 액세스해야 하기 때문에 명령의 실행에 시간이 걸린다고 하는 문제점을 갖는다.
이 문제점을 해결하기 위해서, 도 2에 도시된 바와 같이, 마이크로프로세서(10A) 내에 명령 캐시(13)를 설치하는 것이 행해지고 있다. 명령 캐시(13)에 요구하는 명령이 없는 경우에는, 단계 1 및 단계 2의 순서로 명령이 외부 RAM(12)로부터 판독되어 실행 유닛(11)에 공급되는 동시에, 명령 캐시(13)에 저장된다. 실행 유닛(11)이 동일한 명령을 요구했을 경우에는, 명령 어드레스를 수신한 명령 캐시(13)로부터 대응하는 명령이 판독되어 실행 유닛(11)에 공급된다. 일반적으로, 외부 RAM(12)에 액세스하는 시간보다 명령 캐시(13)에 액세스하는 시간 쪽이 짧기 때문에, 명령을 판독하여 실행할 때까지의 시간을 단축할 수 있다.
도 3은 도 2에 도시된 명령 캐시(13)의 구성을 나타낸 블록도이다. 명령 캐시(13)는 명령 어드레스 레지스터(14), 2개의 태그 RAM(15, l6), 2개의 캐시 RAM(17, 18), 2개의 비교기(19, 20), 히트/미스 판정 논리 회로(21) 및 셀렉터(22)를 구비한다. 태그 RAM(15)과 캐시 RAM(17)은 연동(連動)하고(#0계), 태그 RAM(16)과 캐시 RAM(18)은 연동하고 있다(#1계).
명령 캐시(13)는 도 2에 도시된 실행 유닛(11)으로부터의 명령 어드레스를 수신하여 대응하는 명령을 셀렉터(22)로부터 출력한다. 외부 RAM(12)으로는 명령 어드레스를 전송하고, 외부 RAM으로부터 해당하는 블록을 수신한다. 블록이란 연속하는 어드레스로 특정되는 복수 명령의 집합이다.
도 4에는 순차적으로 실행되는 명령을 나타낸다. 도 4에 있어서, 분기 명령(branch) 이외에는 연속하는 명령 어드레스로 특정되는 명령이다. 도 4의 우측의 화살표로 나타낸 순으로 명령이 실행된다. 예를 들면, 연속하는 어드레스로 특정되는 4개의 명령을 1개의 블록으로 한다.
도 3의 명령 어드레스 레지스터(14)는 블록 오프셋, 라인 어드레스 및 태그 어드레스의 영역으로 분할되어 있다. 2개의 캐시 RAM(17, 18)은 라인 어드레스와 블록 어드레스로 액세스되며, 지정된 명령을 출력한다. 라인 어드레스는 외부 RAM(12) 내의 명령을 캐시 RAM(17, 18)에 저장하는 영역을 한정하기 위해서 이용된다. 예를 들면, 외부 RAM(12)의 어드레스 xxxx나 yyyy에 저장되어 있는 명령은 캐시 RAM(17, 18)의 zzz에 저장되도록 한다. 명령이 캐시 RAM(17, 18)의 임의의 기억 영역에 저장될 수 있게 하면, 캐시 RAM(17, 18)을 액세스하는 데 시간이 걸리게 된다.
또, 외부 RAM(12)으로부터 판독한 명령은 2개의 캐시 RAM(17, 18)에 저장할 수 있다. 이 경우, 연상도(degree of association)가 2라고 말한다. 캐시 RAM(17, 18)은 개개의 메모리 칩으로 구성되어 있어도 좋고, 1개의 메모리 칩의 기억 영역을 분할한 것이어도 좋다.
블록 오프셋은 라인 어드레스로부터 1 블록 분의 명령을 특정하는 것이다. 예를 들면, 도 4의 선두에 있는 가산 명령 "add"가 라인 어드레스에 의해 특정되고, 블록 오프셋이 "00"에서 "01", "10" 및 "11"로 변화됨으로써, 명령 "add", "subcc", "or" 및 "set"가 특정된다.
태그 RAM(15, 16)은 라인 어드레스를 수신하여 태그 어드레스를 출력한다. 비교기(19, 20)는 각각 태그 RAM(15, 16)으로부터 판독된 태그 어드레스를 명령 어드레스 레지스터(14)로부터 판독된 태그 어드레스와 비교하여 양자가 일치하는지 여부를 판단한다. 라인 어드레스에 의해 특정되는 명령이 캐시 RAM(17)에 저장되어 있는 경우에는, 비교기(19)의 비교 결과가 일치한다(캐시 히트). 이것에 대하여, 라인 어드레스에 의해 특정되는 명령이 캐시 RAM(18)에 저장되어 있는 경우에는, 비교기(20)의 비교 결과가 일치한다(캐시 히트).
히트/미스 판정 논리 회로(21)는 비교기(19, 20)의 출력 신호에 따라 셀렉터(22)를 제어한다. 비교기(19)가 일치 신호를 출력하면, 셀렉터(22)는 캐시 RAM(17)을 선택하고, 비교기(20)가 일치 신호를 출력하면, 셀렉터(22)는 캐시 RAM(18)을 선택한다. 선택된 명령은 실행 유닛(11)으로 전송된다.
도 5는, 상기한 경우, 즉 태그 RAM(15)으로부터 판독되는 태그 어드레스와 명령 어드레스 레지스터(14)로부터 판독되는 태그 어드레스가 일치한 경우를 나타낸다. 도면 중, 굵은 선은 판독 동작에서 사용하고 있는 어드레스, 명령 및 신호 등의 흐름을 나타낸다.
도 6은, 비교기(19, 20)의 비교 결과가 모두 일치하지 않은 경우(캐시 미스)를 나타낸다. 도면 중, 굵은 선은 기록 동작에서 사용하고 있는 어드레스, 명령 및 신호 등의 흐름을 나타낸다. 이 경우에는, 외부 RAM(12)으로부터 명령을 판독하여 캐시 RAM(17)이나 캐시 RAM(18)에 기록한다. 도 6의 경우에는 캐시 RAM(17)에 판독한 명령을 기록하는 예이다. 또한, 미스한 명령 어드레스의 태그 어드레스를 캐시 RAM(17)에 대응하는 태그 RAM(15)에 기록한다. 그리고, 캐시 RAM(17)으로부터 저장한 명령을 판독하여 셀렉터(22)를 통해 실행 유닛(11)에 공급한다.
그러나, 상기 종래의 명령 캐시에는 다음과 같은 문제점이 있다.
도 7은 도 3에 도시된 구성의 명령 캐시(13)로부터 명령을 판독하는 시퀀스를 나타낸 도면이다. 어드레스 등의 흐름을 명확히 도시하기 위해서, 도 3에 도시된 구성 요소에 붙여 놓은 참조 번호의 일부만 도시하고 있다. 또한, 도 7에서는, 1개의 명령은 4 바이트로 구성되고, 4개의 명령으로 1 블록을 구성한다(즉, 1 블록은 16 바이트). 또한, 라인 수는 128이다. 판독 시퀀스는 단계 (a) 내지 단계 (e)의 순서이다.
실행 유닛(11)으로부터 "0×00000000"의 명령 어드레스가 공급되고, 명령 어드레스 레지스터(14)에 저장되었다고 하자. 이 경우, 라인 어드레스는 "0000000"이고, 블록 오프셋은 "00"이다. 단계 (a)에서는, 명령 어드레스의 태그 어드레스는 태그 RAM(15) 내에서 판독된 태그 어드레스와 일치한다고 가정하는 것으로 한다. 따라서, 히트/미스 판정 논리 회로(21)는 셀렉터(22)를 제어하여 캐시 RAM(17)을 선택한다. 예를 들면, 도 4의 가산 명령 "add"가 캐시 RAM(17)으로부터 판독된다.
다음에, 단계 (b)에서 명령 어드레스 "0×00000004"가 명령 어드레스 레지스 터(14)에 저장된다. 이 경우, 블록 오프셋은 "00"으로부터 1 인크리먼트(increment)하여 "01"이 된다. 라인 어드레스는 변하지 않기 때문에, 계속해서 캐시 RAM(17)이 선택되고, 블록 오프셋 "01"에 대응하는 명령이 선택된다(도 4의 감산 명령 "subcc").
마찬가지로 하여, 명령 어드레스 "0×0000008" 및 "0×0000000c"에 대하여 블록 오프셋이 "10" 및 "11"이 되고, 각각 OR 명령 "or" 및 세트 명령 "set"가 캐시 RAM(17)으로부터 판독된다[단계 (c) 및 단계 (d)]. 이 동안에도 라인 어드레스는 변하지 않는다.
다음에, 단계 (e)에서 명령 어드레스가 "0×00000010"로 변화되면, 라인 어드레스는 1 인크리먼트하여 "0000001"이 된다. 단계 (e)에서는, 명령 어드레스의 태그 어드레스가 태그 RAM(16) 내에서 판독된 태그 어드레스와 일치한다고 가정하는 것으로 한다. 따라서, 히트/미스 판정 논리 회로(21)는 셀렉터(22)를 제어하여 캐시 RAM(18)을 선택한다.
명령이 연속한 어드레스로 특정되는 단계 (a) 내지 단계 (e)에서는 선택되지 않은 캐시 RAM(18)도 판독 동작을 행하고 있다. 또, 도면 중의 굵은 선의 원은 캐시 RAM이 인에이블 상태[액티브(active) 상태나 활성 상태라고도 칭함]에 있는 것을 나타내고 있다. 따라서, 불필요한 전력이 소비되어 버린다고 하는 문제점이 있었다.
따라서, 본 발명은 상기 종래 기술의 문제점을 해결하여 불필요한 전력 소비를 피하고, 저전력으로 동작할 수 있는 명령 캐시를 갖는 데이터 처리 장치를 제공 하는 것을 목적으로 한다.
상기 과제는 명령 캐시를 갖는 데이터 처리 장치에 있어서, 복수의 캐시 메모리를 가지며, 요구된 명령을 저장하는 캐시 메모리를 인에이블로 하고, 그 이외의 캐시 메모리를 디스에이블[인액티브(inactive)나 비활성 상태라고도 칭함]로 하는 데이터 처리 장치로 달성할 수 있다. 요구된 명령을 저장하지 않은 캐시 메모리를 디스에이블로 하기 때문에, 전력을 소비하지 않는다. 즉, 전력을 소비하는 것은 요구된 메모리를 저장하는 캐시 메모리뿐이다. 따라서, 쓸데없는 전력 소비를 피하고, 저전력으로 동작할 수 있는 명령 캐시가 실현된다.
도 8은 본 발명의 원리를 설명하기 위한 도면이다. 상기한 도 7에 도시된 판독 시퀀스와의 차이를 명확히 하기 위해서, 도 8에서는 도 7의 구성에 본 발명을 적용한 경우의 판독 시퀀스를 도시하고 있다. 따라서, 도 8에 도시된 명령 캐시의 구성 그 자체는 편의상 도 3이나 도 7에 도시된 종래의 명령 캐시의 구성으로 하고 있다.
본 발명에 따르면, 단계 (b), 단계 (c) 및 단계 (d)에서 요구된 명령을 저장하지 않은 캐시 RAM(18)을 디스에이블 상태로 하는 것에 있다[디스에이블 상태에 있는 캐시 RAM(18)은 굵은 선의 원으로 둘러싸여 있음]. 바꿔 말하면, 단계 (b), 단계 (c) 및 단계 (d)에서 요구된 명령을 저장하는 캐시 RAM(17)만을 인에이블 상태로 하고 있다[인에이블 상태에 있는 캐시 RAM(17)을 굵은 선의 원으로 둘러싸여 있음]. 이에 따라, 명령 캐시로 소비되는 전력을 줄일 수 있다.
또, 캐시 RAM을 디스에이블 상태로 하기 위해서는 이들에 대한 어드레스 공급을 정지하면 좋다.
이와 같이, 요구된 명령을 저장하지 않은 캐시 RAM을 디스에이블 상태로 할 수 있는 것은, 동일 블록 내의 명령은 라인 어드레스가 같기 때문에, 동일 캐시 RAM 내에 저장되어 있는 것에 착안한 것이다. 단계 (a)는 동일 블록의 최초의 명령을 판독한다. 이 때에는 캐시 RAM(17)이 히트하는 것이지만, 어느 쪽이 히트하는지 여부를 판단하여 미스하는 캐시 RAM(18)을 디스에이블로 하기 위해서는 상당한 시간을 요하게 된다. 따라서, 원리적으로는 캐시 RAM(18)을 디스에이블 상태로 설정할 수 있지만, 액세스 시간을 희생시키기 때문에, 단계 (a)에서는 양방의 캐시 RAM을 인에이블 상태로 설정한다.
단계 (b)에서는, 라인 어드레스에 변화는 없다. 즉, 단계 (b)에서는 반드시 단계 (a)와 동일한 캐시 RAM(17)이 히트한다. 따라서, 단계 (a)에서 캐시 미스한 캐시 RAM(18)을 디스에이블 상태로 한다. 단계 (c)도 라인 어드레스에 변화는 없기 때문에, 캐시 RAM(18)을 디스에이블 상태로 한다.
그리고, 라인 어드레스가 변화되는 단계 (e)에서는 단계 (a)와 마찬가지로 양방의 캐시 RAM(17, 18)을 인에이블 상태로 설정한다.
이와 같이, 동일 블록의 선두에 있는 명령만을 판독할 때에 모든 캐시 RAM을 인에이블 상태로 설정하고, 동일 블록 내의 남은 명령을 판독할 때에는 캐시 미스한 캐시 RAM을 디스에이블 상태로 함으로써, 전력 소비를 삭감할 수 있게 된다.
도 9는 본 발명의 일 실시 형태에 따른 명령 캐시의 구성을 나타낸 블록도이 다. 도면 중, 도 3에 도시된 구성 요소와 동일한 것에는 동일한 참조 번호를 붙이고 있다. 또, 도 9의 구성은 도 2에 도시된 명령 캐시(13)를 구성하고, 이 명령 캐시를 갖는 마이크로프로세서 등의 데이터 처리 장치와 외부 RAM(12)을 포함하여 시스템이 구성된다.
도 9에 도시된 명령 캐시는 도 3에 도시된 히트/미스 판정 논리 회로(21) 대신에 히트/미스 판정 논리 회로(21A)를 이용한다. 히트/미스 판정 논리 회로(21A)는 셀렉터(22)의 제어에 덧붙여, 도 8을 참조하여 설명한 제어, 즉 라인 어드레스에 변화가 있는지 여부를 판정하여, 변화가 없는 경우에는 직전의 단계에서 캐시 미스한 캐시 RAM을 디스에이블 상태로 제어하는 제어를 행하는 것이다. 그리고, 이 제어 결과에 따른 캐시 RAM 판독 유효 신호(23, 24)를 각각 캐시 RAM(17, 18)에 출력하고, 이들을 인에이블 상태나 디스에이블 상태로 설정한다.
캐시 RAM 판독 유효 신호(23, 24)는 논리 게이트(17a, 18a)에 공급되고, 캐시 RAM 판독 유효 신호(23, 24)가 인에이블(ON)일 때, 어드레스가 캐시 RAM(17, 18)에 부여되며, 디스에이블(OFF)일 때, 어드레스는 캐시 RAM(17, 18)에 공급되지 않는다. 또한, 캐시 RAM(17, 18)이 개별 칩으로 구성되어 있는 경우에는, 각 칩의 칩 선택 단자 등에 캐시 RAM 판독 유효 신호(23, 24)를 부여한다.
도 10은 히트/미스 판정 논리 회로(21A)의 일 구성예를 나타낸 회로도이다. 히트/미스 판정 논리 회로(21A)는 AND 게이트(25, 26), 플립 플롭(27), OR 게이트(28, 30, 31) 및 NOR 게이트(29)를 구비한다. 히트/미스 판정 논리 회로(21A)의 입력 신호는 비교기(19, 20)의 비교 결과와, 태그 RAM(15, 16)으로부 터 판독된 어드레스에 유효한 명령이 저장되어 있는지 여부를 나타내는 엔트리 유효 신호(32, 33), 동일 라인 어드레스 내의 블록 중 선두인 것을 나타내는 신호(34) 및 어드레스가 분기 명령에 의해 신규의 것이 되는 것을 나타내는 분기 검출 신호(35)이다. 또한, 히트/미스 판정 논리 회로(21A)의 출력 신호는 캐시 미스 신호(36), 캐시 RAM 판독 유효 신호(23, 24) 및 셀렉터 제어 신호(37)이다.
도 10의 판정 논리를 도 8과 도 9를 참조하면서 설명한다.
우선, 명령 어드레스가 블록의 선두인 경우 또는 분기 명령에 의해 신규 어드레스가 된 경우에는 신호(34) 또는 신호(35)가 ON(하이 레벨)이 되고, OR 게이트(28)를 통해 OR 게이트(30, 31)에 공급된다. 그리고, OR 게이트(30, 31)는 캐시 RAM 판독 유효 신호(23, 24)를 ON(하이 레벨)으로 한다. 이에 따라, 캐시 RAM(17, 18)은 인에이블 상태로 설정된다. 이 때, 엔트리 유효 신호(32, 33)가 오프일 때(로우 레벨일 때), AND 게이트(25, 26)의 출력은 로우 레벨이고, OR 게이트를 통해 로우 레벨의 캐시 미스 신호(36)가 출력된다. 이것이 출력되면, 도 2에 도시된 외부 RAM(12)에 액세스하여 명령의 기록 동작이 행해진다(후술하는 도 12의 동작).
이것에 대하여, 비교기(19 또는 20)의 출력이 태그 어드레스의 일치를 나타내고 있고, 대응하는 엔트리 유효 신호(32 또는 33)가 유효를 나타내는 하이 레벨(ON)일 때, 캐시 미스 신호는 하이 레벨로 캐시 히트를 나타낸다. 예를 들면, 비교기(19)의 출력이 태그 어드레스의 일치를 나타내면, AND 게이트(25)의 출력은 하이 레벨이 되고, 제어 신호(37)로서 셀렉터(22)에 공급되며, 캐시 RAM(17)을 선 택하는 동시에, 플립 플롭(27)을 1로 세트한다. 이에 따라, 캐시 히트한 것은 #0계[캐시 RAM(17)]인 것이 플립 플롭(27)에 기억된다. 한편, 비교기(20)의 출력이 태그 어드레스의 일치를 나타내면, AND 게이트(26)의 출력은 하이 레벨이 된다. 이 때, 제어 신호(37)는 로우 레벨의 상태이고, 셀렉터(22)는 캐시 RAM(18)을 선택한다. 또, 플립 플롭(27)은 0으로 리셋된 상태이다. 즉, 플립 플롭(27)은 어떤 캐시 메모리가 히트했는지를 나타내는 데이터를 기억하는 기억 수단으로서 기능한다. 이상의 동작이 도 8의 단계 (a)에서 행해진다.
다음에, 명령 어드레스가 블록의 선두가 아닌 경우 또는 분기 명령이 없는 경우에는, OR 게이트의 출력은 로우 레벨이 된다. 그리고, 플립 플롭(27)에 저장된 값을 이용하여 어느 한쪽의 캐시 RAM을 유효하게 한다. 플립 플롭(27)에 1이 세트되어 있으면, OR 게이트(30)의 출력은 하이 레벨이 되고, OR 게이트(31)의 출력은 로우 레벨이 되며, 캐시 RAM 판독 유효 신호(23)가 ON이 되고, 캐시 RAM 판독 유효 신호(24)가 OFF가 된다. 한편, 플립 플롭(27)에 0이 세트되어 있으면, OR 게이트(30)의 출력은 로우 레벨이 되고, OR 게이트(31)의 출력은 하이 레벨이 되며, 캐시 RAM 판독 유효 신호(23)가 OFF가 되고, 캐시 RAM 판독 유효 신호(24)가 ON이 된다. 셀렉터(22)는 제어 신호(37)에 따라 어느 한쪽 캐시 RAM을 선택한다. 도 8의 단계 (b) 내지 단계 (d)에서는 동일 라인 어드레스 내의 동작이기 때문에, AND 게이트(25)의 출력, 즉 제어 신호(37)는 하이 레벨이다. 따라서, 셀렉터(22)는 캐시 RAM(17)을 선택한다. 또한, 단계 (b) 내지 단계 (d)에서는 플립 플롭(27)에 1이 세트되기 때문에, 캐시 RAM 판독 유호 신호(23)가 계속해서 ON된다.
이와 같이, 히트/미스 판정 논리 회로(21A)는 복수의 캐시 메모리를 갖는 명령 캐시의 제어 방법으로서, 요구된 명령을 저장하는 캐시 메모리를 인에이블로 하고, 그 이외의 캐시 메모리를 디스에이블로 하는 제어 방법을 실현하는 것이다.
도 11은 상기 판정 논리에 따라 명령 캐시로부터 명령을 판독하는 모습을 나타낸 도면으로, 상기한 도 5에 해당하는 것이다. 또한, 도 12는 상기 판정 논리에 따라 캐시 미스 신호(36)가 ON이 된 경우의 동작을 나타낸 것으로, 상기한 도 6에 해당하는 것이다. 도 2에 도시된 외부 RAM(12)으로부터 명령이 판독되고, 도 6을 참조하여 설명한 동작과 마찬가지로 어느 한쪽의 캐시 RAM[도 12의 예에서는 캐시 RAM(17)]에 기록된다.
이상, 본 발명의 실시 형태를 설명하였다. 본 발명은 상기 실시 형태에 한정되지 않는다. 예를 들면, 캐시 RAM의 수는 3 이상이어도 좋다. 바꿔 말하면, 연상도가 3 이상이어도 좋다.
이상 설명한 바와 같이, 본 발명에 따르면, 프로세서의 실행 유닛으로부터 요구된 명령을 저장하지 않은 캐시 메모리를 디스에이블로 하기 때문에, 불필요한 전력 소비를 피하고, 저전력으로 동작할 수 있는 명령 캐시를 갖는 데이터 처리 장치를 제공할 수 있다.

Claims (8)

  1. 명령 캐시를 갖는 데이터 처리 장치에 있어서,
    복수의 캐시 메모리 유닛과;
    연속하는 명령 블록에서 판독된 선두 명령의 검출에 응답하여 상기 복수의 캐시 메모리 유닛 모두를 인에이블하고, 상기 블록에서 후속 명령들을 판독할 때에는 상기 복수의 캐시 메모리 유닛들 중 단 하나만 인에이블하고 나머지 캐시 메모리 유닛들은 디스에이블하는 판정 논리 회로로서, 상기 선두 명령의 검출은 분기 명령의 검출과 블록-오프셋 비트간의 논리합에 의해 표시되는 것인, 상기 판정 논리 회로
    를 포함하는 데이터 처리 장치.
  2. 제1항에 있어서, 상기 판정 논리 회로는 어떤 캐시 메모리 유닛이 히트했는지를 나타내는 데이터를 기억하도록 구성된 기억 유닛을 포함하며, 상기 기억 유닛의 데이터를 이용하여 상기 복수의 캐시 메모리 유닛의 인에이블 상태 및 디스에이블 상태를 제어하는 것인, 데이터 처리 장치.
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 복수의 캐시 메모리 유닛을 제어하는 방법에 있어서,
    연속하는 명령 블록에서 선두 명령을 판독하는 단계;
    상기 선두 명령이 분기 명령인지의 여부를 검출하여 제1 결과를 생성하는 단계;
    블록-오프셋 비트와 상기 제1 결과의 논리합을 수행하여 제2 결과를 생성하는 단계; 및
    상기 제2 결과에 기초하여 상기 복수의 캐시 메모리 유닛들 중 하나를 인에이블하고 나머지 캐시 메모리 유닛들은 디스에이블하는 단계
    를 포함하는, 복수의 캐시 메모리 유닛 제어 방법.
  8. 데이터 처리 장치에 있어서,
    복수의 캐시 메모리 유닛;
    명령을 판독하는 실행 유닛; 및
    상기 명령이 분기 명령이 아니고 연속하는 명령 블록에서 선두 명령이 아닐 때에는, 상기 복수의 캐시 메모리 유닛들 중 하나만 인에이블하고 나머지 캐시 메모리 유닛들은 디스에이블하는 판정 논리 회로
    를 포함하는 데이터 처리 장치.
KR1020010082560A 2000-12-22 2001-12-21 데이터 처리 장치 KR100758185B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2000391369A JP2002196981A (ja) 2000-12-22 2000-12-22 データ処理装置
JPJP-P-2000-00391369 2000-12-22

Publications (2)

Publication Number Publication Date
KR20020051874A KR20020051874A (ko) 2002-06-29
KR100758185B1 true KR100758185B1 (ko) 2007-09-13

Family

ID=18857521

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010082560A KR100758185B1 (ko) 2000-12-22 2001-12-21 데이터 처리 장치

Country Status (7)

Country Link
US (1) US6760810B2 (ko)
EP (1) EP1217502B1 (ko)
JP (1) JP2002196981A (ko)
KR (1) KR100758185B1 (ko)
CN (1) CN1155893C (ko)
DE (1) DE60127520T2 (ko)
TW (1) TW581966B (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7330954B2 (en) * 2002-04-18 2008-02-12 Intel Corporation Storing information in one of at least two storage devices based on a storage parameter and an attribute of the storage devices
JP2004171177A (ja) * 2002-11-19 2004-06-17 Renesas Technology Corp キャッシュシステムおよびキャッシュメモリ制御装置
US7263621B2 (en) * 2004-11-15 2007-08-28 Via Technologies, Inc. System for reducing power consumption in a microprocessor having multiple instruction decoders that are coupled to selectors receiving their own output as feedback
TW200821831A (en) * 2005-12-21 2008-05-16 Nxp Bv Schedule based cache/memory power minimization technique
JP4980751B2 (ja) 2007-03-02 2012-07-18 富士通セミコンダクター株式会社 データ処理装置、およびメモリのリードアクティブ制御方法。
JP4354001B1 (ja) 2008-07-03 2009-10-28 Necエレクトロニクス株式会社 メモリ制御回路および集積回路
US8200999B2 (en) 2008-08-11 2012-06-12 International Business Machines Corporation Selective power reduction of memory hardware
JP5793061B2 (ja) * 2011-11-02 2015-10-14 ルネサスエレクトロニクス株式会社 キャッシュメモリ装置、キャッシュ制御方法、およびマイクロプロセッサシステム
US8503264B1 (en) 2011-11-18 2013-08-06 Xilinx, Inc. Reducing power consumption in a segmented memory
US9396117B2 (en) * 2012-01-09 2016-07-19 Nvidia Corporation Instruction cache power reduction
US9552032B2 (en) 2012-04-27 2017-01-24 Nvidia Corporation Branch prediction power reduction
US9547358B2 (en) 2012-04-27 2017-01-17 Nvidia Corporation Branch prediction power reduction
US8743653B1 (en) 2012-06-20 2014-06-03 Xilinx, Inc. Reducing dynamic power consumption of a memory circuit
CN104050092B (zh) 2013-03-15 2018-05-01 上海芯豪微电子有限公司 一种数据缓存系统及方法
WO2018100331A1 (en) * 2016-11-29 2018-06-07 Arm Limited Storage circuitry responsive to a tag-matching command
CN113138657A (zh) * 2020-01-17 2021-07-20 炬芯科技股份有限公司 一种降低cache访问功耗的方法和电路

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724611A (en) * 1996-04-25 1998-03-03 Vlsi Technology, Inc. Automatic cache controller system and method therefor
US5974505A (en) * 1997-09-02 1999-10-26 International Business Machines Corporation Method and system for reducing power consumption of a non-blocking cache within a data processing system
US5983310A (en) * 1997-02-13 1999-11-09 Novell, Inc. Pin management of accelerator for interpretive environments

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01154261A (ja) * 1987-12-11 1989-06-16 Toshiba Corp 情報処理装置
JPH0786847B2 (ja) * 1988-08-09 1995-09-20 松下電器産業株式会社 キャッシュメモリ
JPH04328656A (ja) * 1991-04-30 1992-11-17 Toshiba Corp キャッシュメモリ
US5913223A (en) * 1993-01-25 1999-06-15 Sheppard; Douglas Parks Low power set associative cache memory
JP3589485B2 (ja) 1994-06-07 2004-11-17 株式会社ルネサステクノロジ セットアソシアティブ方式のメモリ装置およびプロセッサ
JPH08263370A (ja) * 1995-03-27 1996-10-11 Toshiba Microelectron Corp キャッシュメモリシステム
US5911153A (en) * 1996-10-03 1999-06-08 International Business Machines Corporation Memory design which facilitates incremental fetch and store requests off applied base address requests
JPH11184752A (ja) 1997-12-19 1999-07-09 Hitachi Ltd データ処理装置及びデータ処理システム
US6138208A (en) * 1998-04-13 2000-10-24 International Business Machines Corporation Multiple level cache memory with overlapped L1 and L2 memory access
JP3439350B2 (ja) * 1998-10-02 2003-08-25 Necエレクトロニクス株式会社 キャッシュ・メモリ制御方法及びキャッシュ・メモリ制御装置
US6449694B1 (en) * 1999-07-27 2002-09-10 Intel Corporation Low power cache operation through the use of partial tag comparison
US6356990B1 (en) * 2000-02-02 2002-03-12 International Business Machines Corporation Set-associative cache memory having a built-in set prediction array
US6549986B1 (en) * 2000-06-20 2003-04-15 Conexant Systems, Inc. Low power instruction cache
US6535959B1 (en) * 2000-09-05 2003-03-18 Conexant Systems, Inc. Circuit and method for reducing power consumption in an instruction cache

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724611A (en) * 1996-04-25 1998-03-03 Vlsi Technology, Inc. Automatic cache controller system and method therefor
US5983310A (en) * 1997-02-13 1999-11-09 Novell, Inc. Pin management of accelerator for interpretive environments
US5974505A (en) * 1997-09-02 1999-10-26 International Business Machines Corporation Method and system for reducing power consumption of a non-blocking cache within a data processing system

Also Published As

Publication number Publication date
EP1217502B1 (en) 2007-03-28
CN1367428A (zh) 2002-09-04
JP2002196981A (ja) 2002-07-12
CN1155893C (zh) 2004-06-30
US6760810B2 (en) 2004-07-06
US20020080662A1 (en) 2002-06-27
KR20020051874A (ko) 2002-06-29
DE60127520T2 (de) 2007-09-06
TW581966B (en) 2004-04-01
DE60127520D1 (de) 2007-05-10
EP1217502A1 (en) 2002-06-26

Similar Documents

Publication Publication Date Title
KR100758185B1 (ko) 데이터 처리 장치
US4996641A (en) Diagnostic mode for a cache
KR100327854B1 (ko) 캐시메모리시스템
KR100474622B1 (ko) 마이크로컴퓨터
JPH11175391A (ja) フラッシュメモリにおける書込み/消去機能を拡張するための方法および装置
US6826670B2 (en) Accessing memory units in a data processing apparatus
US6345336B1 (en) Instruction cache memory includes a clock gate circuit for selectively supplying a clock signal to tag RAM to reduce power consumption
US20020161976A1 (en) Data processor
JPH07114500A (ja) 不揮発性メモリ記憶装置
US6049852A (en) Preserving cache consistency in a computer system having a plurality of memories with overlapping address ranges
US4628450A (en) Data processing system having a local memory which does not use a directory device with distributed resident programs and a method therefor
JPH05158795A (ja) キャッシュメモリシステム
JPH0816390A (ja) マイクロプロセッサ
US6836828B2 (en) Instruction cache apparatus and method capable of increasing a instruction hit rate and improving instruction access efficiency
KR100865828B1 (ko) 플래시 메모리의 뱅크 분할 방법 및 플래시 메모리의 뱅크분할 장치
EP0398191A2 (en) Quadruple word, multiplexed, paged mode and cache memory
JP4343244B2 (ja) マイクロコンピュータ
KR200193638Y1 (ko) 교환기에서의 데이터 저장장치
JP2856623B2 (ja) バッファ制御装置
KR940006823B1 (ko) 메모리 라이트 보호회로
CA1299768C (en) Memory access control system
JPH05181746A (ja) データ処理システム及びメモリ制御方式
JPH07129458A (ja) メモリ制御装置
JPH04242453A (ja) 記憶装置の切替制御装置
JPH1055308A (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
LAPS Lapse due to unpaid annual fee