KR100929461B1 - 저전력 마이크로프로세서 캐시 메모리 및 그 동작 방법 - Google Patents

저전력 마이크로프로세서 캐시 메모리 및 그 동작 방법 Download PDF

Info

Publication number
KR100929461B1
KR100929461B1 KR1020077029908A KR20077029908A KR100929461B1 KR 100929461 B1 KR100929461 B1 KR 100929461B1 KR 1020077029908 A KR1020077029908 A KR 1020077029908A KR 20077029908 A KR20077029908 A KR 20077029908A KR 100929461 B1 KR100929461 B1 KR 100929461B1
Authority
KR
South Korea
Prior art keywords
cache memory
match lines
lines
cache
data
Prior art date
Application number
KR1020077029908A
Other languages
English (en)
Other versions
KR20080007681A (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 KR20080007681A publication Critical patent/KR20080007681A/ko
Application granted granted Critical
Publication of KR100929461B1 publication Critical patent/KR100929461B1/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/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • 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
    • 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
    • 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
    • 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)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명은 디지털 신호 처리기의 사용을 포함하는 통신(예를 들어, CDMA) 시스템에서 전송을 프로세싱하는 기술에 관한 것이다. 디지털 신호 처리기는 캐시 메모리 시스템을 포함하며, 복수의 캐시 메모리 매치 라인을 어드레싱 가능한 메모리의 어드레싱 가능한 메모리 라인과 결합시킨다. 캐시 메모리 매치 라인 각각은 대응하는 캐시 메모리 세트 중 하나와 관련된다. 방법 및 시스템은 캐시 메모리 매치 라인 각각을 낮은 전압으로 유지시킨다. 일단 디지털 신호 프로세서가 캐시 메모리의 대응하는 세트들 중 선택된 하나로부터 데이터를 검색하기 위해 캐시 메모리의 탐색을 개시하면, 매치 라인 구동 회로는 캐시 메모리 매치 라인 중 하나를 낮은 전압에서 높은 전압으로 구동시킨다. 캐시 메모리 매치 라인 중 선택된 하나는 캐시 메모리의 대응하는 세트 중 선택된 하나에 대응한다. 디지털 신호 프로세서는 캐시 메모리 매치 라인들 중 선택된 하나를 어드레싱 가능한 메모리 라인 중 관련된 하나와 비교한다. 비교 단계 이후, 프로세스는 캐시 메모리 매치 라인들 중 하나를 저전압으로 복귀시킨다.

Description

저전력 마이크로프로세서 캐시 메모리 및 그 동작 방법{LOW POWER MICROPROCESSOR CACHE MEMORY AND METHOD OF OPERATION}
본 발명은 데이터 통신에 관한 것이다. 특히, 본 발명은 새롭게 개선된 저전력 마이크로프로세서 캐시 메모리 및 디지털 신호 프로세서에서의 동작 방법에 관한 것이다.
현대의 통신 시스템은 다양한 애플리케이션을 지원해야만 한다. 이러한 통신 시스템의 일례는 위성 또는 지상 링크를 통해 사용자들 사이에서 음성 및 데이터 통신을 지원하는 코드 분할 다중 액세스(CDMA) 시스템이다. 다중 액세스 통신 시스템에서 CDMA 기술의 사용은, "SPREAD SPECTRUM MULTIPLE ACCESS COMMUNICATION SYSTEM USING SATELLITE OR TERRESTRIAL REPEATERS"이란 명칭의 미국 특허 번호 4,901,307 및 "SYSTEM AND METHOD FOR GENERATING WAVEFORMS IN A CDMA CELLULAR TELEHANDSET SYSTEM"이란 명칭의 미국 특허 번호 5,103,459에 개시되어 있으며, 이 둘은 본 발명의 양수인에게 양도되었다.
CDMA 시스템은 통상적으로 하나 이상의 표준에 적합하도록 설계된다. 이러한 제 1 세대의 생성 표준은 "듀얼 모드 광대역 확산 스펙트럼 셀룰러 시스템을 위한 TIE/EIA/IS-95"이며, 이하에서 IS-95 표준으로 불린다. IS-95 CDMA 시스템은 음성 데이터 및 패킷 데이터를 전송할 수 있다. 더욱 효율적으로 패킷 데이터를 전송할 수 있는 새로운 세대의 표준은 "3세대 파트너쉽 프로젝트"(3GPP)로 명명된 컨소시엄에 의해 제공되며, 문서번호 3G TS 25.211, 3G TS 25.162, 3G TS 25.213, 및 3G TS 25.114를 포함하는 문서의 세트에서 실행되며, 공중에 이용가능하다. 이하에서 3GPP 표준은 W-CDMA 표준으로 불려진다.
디지털 신호 프로세서(DSP)는 무선 핸드셋 및 전술한 표준에 적합한 다른 전자 장치에서 사용가능할 수도 있다. 특히, 무선 핸드셋 및 이러한 장치는 DSP가 사용자 지향, 과학적인 그리고 멀티미디어 애플리케이션 및 많은 다른 타입의 애플리케이션으로부터 명령을 실행하도록 요구하고 있으며, 더욱 더 요구할 것이다. 프로세서 리소스 요구는, 모두가 동일한 DSP로부터 기원하는, 텔레비젼 방송, 스트리밍 메시지 표시기, 전자 메일(첨부된 문서를 갖는 메시지를 포함)과 같은 상주 애플리케이션, 및 포토그래피 및 PDA 애플리케이션과 같은 상주 애플리케이션에 대해 광역으로 그리고 동적으로 변화할 수도 있다.
무선 핸드셋 및 유사한 통신 장치에서, 배터리 수명을 연장시킬 필요가 있다. 따라서, 에너지 보존은 이러한 장치의 동작 특성에서 중요한 고려사항이다. 이러한 사항을 감안하면, 메모리 및 데이터 캐시 리소스가 무선 핸드셋 전자 로드의 주요 부분을 구성한다는 것을 고려하는 것은 중요하다. 사실, 데이터 및 명령 캐시를 동작시키기 위한 전력이 무선 핸드셋 마이크로프로세서의 전체 전력 소비의 30%를 나타낸다.
캐시 메모리 장치에서, 동적으로 그리고 정적으로 에너지를 보존할 필요가 있다. 즉 모든 DSP 동작 동안, 그리고 심지어 캐리 메모리로의 어떠한 직접 액세스도 발생하지 않는 경우, 즉 정적 동작 동안, 캐시 메모리의 사용에서 에너지를 보존할 필요가 있다. 또한 DSP가 캐시 메모리를 액세스할 때, 즉 동적 동작 동안 에너지를 보존할 필요가 있다. 소정의 저전력 프로세서에 대한 캐시 메모리의 사용에서 에너지를 절약하기 위한 일 방법은 캐시 룩업 또는 탐색 동작을 연속적으로 구현하는 것이다.
연속적인 캐시 룩업에서, 히트 조건은 데이터 액세스 이전에 결정된다. 히트 조건은 콘텐츠 어드레싱가능한 메모리(CAM) 기반 태그를 액세스함으로써 결정될 수도 있다. CAM 기반 태그는 매칭될 캐시 태그 값이 선택된 세트로만 제공되도록 선택가능한 세트로 구성된다. 선택된 캐시 세트는 주메모리의 액세스된 어드레스의 세트 인덱스에 의해 결정된다. 따라서, 만일 히트가 발생하면, CAM 기반 태그는 히트 위치에 대응하는 매칭 라인을 특정 및 활성화한다.
매치 라인을 선택가능하게 식별함으로써, 병렬 어드레싱 가능한 캐시 메모리에 비교하여, 직렬 어드레스 가능한 캐시 메모리에 대해 에너지 소비의 감소가 발생한다. 이는 병렬 어드레스 가능한 캐시 메모리가 동적 동작 동안 동시에 모든 캐시 방향을 활성화시키기 때문이다. 모든 캐시 메모리 세트들이 병렬 어드레스 가능한 캐시 동작 동안 활성화되므로, 매칭되지 않거나 유효한 콘텐츠를 포함하지 않는 세트들도 불필요하게 활성화된다. 결과는 불필요한 에너지 손실이다.
알려진 직렬 및 병렬 어드레싱 가능한 캐시 메모리에서, 매치 라인은 언제나 사전 충전(pre-charge)된다. CAM 기반 캐시 구성은 사전 충전 단계에서 사전 충전된 매치 라인을 포함한다. 매치 라인은 매치 또는 히트에 대한 평가 단계에서 하이로 유지되며, 미스매치 또는 미스에 대해 방전된다. 이러한 회로에서 "풋" 또는 "슬립" 트랜지스터는 정적 및 동적 캐시 메모리 동작 동안 발생하는 감소된 누설 전류에 대해 사용된다. 이러한 방식이 소정의 에너지 누설을 감소시키지만, 모든 매치 라인에 대한 사전 충전의 존재는 여전히 에너지 손실을 초래한다. 더욱이, 상기한 경우가 아니라도, "슬립" 트랜지스터를 사용하는 캐시 메모리의 경우, 바람직하지 않은 임피던스가 캐시 메모리 회로에 존재한다.
따라서, DSP 동작 동안 정적 및 동적 에너지 손실을 방지하며, DSP 또는 유사한 전자 회로에서 동작하는 캐시 메모리 회로에 대한 필요가 존재한다.
캐시 메모리 회로로 상기한 엘리먼트를 캐시 메모리 회로와 관련시킴으로써 발생할 수도 있는 "풋" 또는 "슬립" 트랜지스터의 사용 및 수반하는 비효율성 및 누설을 방지하는 DSP에 대한 추가의 필요가 존재한다.
저전력 마이크로프로세서 캐시 메모리를 제조 및 사용하는 기술 및 그 동작 방법이 개시되며, 상기 기술은 관련된 디지털 신호 프로세서의 동작을 증진시키고, 디지털 신호 프로세서 및 유사한 컴포넌트와 관련된 메모리 회로의 에너지 효율적 사용을 촉진한다. 이러한 기술은 개인용 컴퓨터, PDA, 무선 핸드셋, 및 유사한 전자 장치와 같은 다양한 애플리케이션에서 유리한 결과를 제공한다.
본 발명의 일 특징에 따라, 캐시 메모리를 복수의 캐시 메모리 매치 라인과 결합시키는 디지털 신호 프로세서에 대한 저전력 캐시 메모리 회로를 제공하는 방법 및 시스템이 제공된다. 캐시 메모리 매치 라인은 어드레스 가능한 메모리의 어드레스 가능한 메모리 라인과 협력한다. 캐시 메모리 매치 라인 각각은 캐시 메모리의 대응하는 세트들 중 하나와 협력한다. 방법 및 시스템은 저전압으로 캐시 메모리 매치 라인들 각각을 유지시킨다. 일단 디지털 신호 프로세서가 캐시 메모리의 대응하는 세트의 선택된 하나로부터 데이터를 검색하기 위해 캐시 메모리의 탐색을 시작하면, 매치 라인 드라이브 회로는 저전압으로부터 고전압으로 캐시 메모리 매치 라인들 중 하나를 구동시킨다. 캐시 메모리 매치 라인들 중 선택된 하나는 캐시 메모리의 대응하는 세트 중 선택된 하나에 대응한다. 디지털 신호 프로세서는 캐시 메모리 매치 라인들 중 선택된 하나를 어드레스 가능한 메모리 라인들 중 관련된 하나와 비교한다. 비교 단계 후, 프로세스는 캐시 메모리 매치 라인들 중 하나를 저전압으로 복귀시킨다.
개시된 발명의 다양한 특징 및 또 다른 새로운 특징은 이하의 설명으로부터 명백해 질 것이다. 이러한 발명의 요약의 목적은 청구항에 청구된 대상의 포괄적인 설명이 아니라 청구 대상의 기능의 일부를 간단한 개관을 제공하는 것이다. 다른 시스템들, 방법, 특징 및 장점은 이하의 도면 및 상세한 설명에 대한 이해를 통해 기술 분야의 당업자에게 명백할 것이다. 설명된 모든 방법, 시스템, 특징 및 장점은 본 발명의 청구항의 사상 내에 있다.
본 발명의 특징, 특성 및 장점은 첨부된 도면을 참조하여 이하에서 더욱 상세하게 설명될 것이다.
도1은 본 발명을 구현하는 통신 시스템의 간략화된 블록도이다.
도2는 본 발명의 기술을 설명하기 위한 DSP 구조를 도시한다.
도3은 개시된 실시예에 사용되는 파이프라인에서 제어 유닛, 데이터 유닛, 및 다른 디지털 신호 프로세서 기능 유닛의 상위 레벨을 나타낸 도면이다.
도4는 개시된 발명의 일부를 구성하는 대표적인 데이터 유닛 블록을 나타낸다.
도5는 개시된 발명의 데이터 유닛의 디지털 신호 프로세서 파이프라인 동작을 나타낸다.
도6은 개시된 발명의 데이터 캐시 매치 라인 회로의 개략도를 나타낸다.
도7은 개시된 실시예의 저전력 캐시의 동작에 대응하는 타이밍도이다.
도1은 개시된 실시예를 구현할 수 있는 통신 시스템(10)의 간략화된 블록도이다. 송신기 유닛(12)에서, 데이터가 통상적으로 세트 단위로, 데이터 소스(14)로부터, 하나 이상의 아날로그 신호를 생성하기 위해 데이터를 포맷, 코딩 및 프로세싱하는 송신(TX) 데이터 프로세서(16)로 전송된다. 이어 아날로그 신호는 변조된 신호를 생성하기 위해 기저 대역 신호를 변조, 필터링, 증폭 및 상향 변환시키는 송신기(TMTR)(18)에 제공된다. 이어 변조된 신호는 안테나(20)를 통해 하나 이상의 수신기 유닛으로 송신된다.
수신기 유닛(22)에서, 송신된 신호는 안테나(24)에 의해 수신되며 수신기(RCVR)(26)로 제공된다. 수신기(26) 내에서, 수신된 신호는 동위상 (I) 및 (Q) 샘플을 생성하기 위해, 증폭, 필터링, 하향 변환, 복조 및 디지털화된다. 샘플들은 이어 송신된 데이터를 복원하기 위해 수신(RX) 데이터 프로세서(28)에 의해 디코딩 및 프로세싱된다. 수신기 유닛(22)에서의 디코딩 및 프로세싱은 송신기 유닛(12)에서 실행된 디코딩 및 프로세싱에 대해 상보적인 방식으로 실행된다. 복원된 데이터는 이어 데이터 싱크(30)로 제공된다.
전술한 신호 프로세싱은 음성, 비디오, 패킷 데이터, 메시징, 및 다른 타입의 일방향 통신의 전송을 지원한다. 양방향 통신 시스템은 양방향 데이터 전송을 지원한다. 그러나 다른 방향에 대한 신호 프로세싱은 간략화를 위해 도1에 도시되지 않는다.
통신 시스템(10)은 코드 분할 다중 액세스(CDMA) 시스템, 시분할 다중 액세스(TDMA) 통신 시스템(예를 들어, GSM 시스템), 주파수 분할 다중 액세스(FDMA) 통신 시스템, 또는 지상 링크를 통해 사용자들 사이에서 음성 및 데이터 통신을 지원하는 다른 다중 액세스 통신 시스템일 수 있다. 특정 실시예에서, 통신 시스템(10)은 W-CDMA 표준에 적합한 CDMA 시스템이다.
도2는 도1의 송신 데이터 프로세서(16) 및 수신 데이터 프로세서(28)로서 작용할 수도 있는 DSP 구조를 도시한다. 설명된 기술 및 개념을 효율적으로 사용할 수도 있는 많은 가능한 디지털 신호 프로세서 실시예들 중 단지 하나의 실시예를 나타내는 DSP(40)를 생각하자. 따라서, DSP(40)에서, 스레드(T0 내지 T5)("T0:T5")는 상이한 스레드로부터의 명령의 세트를 포함한다. 명령 유닛(IU)(42)은 스레드(T0:T5)에 대한 명령을 가져온다(fetch). IU(42)는 명령(I0 내지 I3)("I0:I3")을 명령 큐(IQ)(44)로 큐잉한다. IQ(44)는 명령(I0:I3)을 프로세서 파이프 라인(46)으로 발급(issue)한다. 프로세서 파이프라인(46)은 제어 회로 및 데이터 패치를 포함한다. IQ(44)로부터, 단일 스레드, 예를 들어, 스레드(T0)는 디코드 및 발급 회로(48)에 의해 선택될 수도 있다. 파이프라인 논리 제어 회로(PLC)(50)는 논리 제어를 디코드 및 발급 회로(48) 및 IU(42)로 제공한다.
IU(42)의 IQ(44)는 명령 스트림의 슬라이딩 버퍼를 유지한다. DSP(40)가 지원하는 여섯 개의 스레드(T0:T5) 각각은 8개의 개별 엔트리 IQ(44)를 가지며, 각각의 엔트리는 하나의 VLIW 패킷 또는 최대 4개의 개별 명령을 저장할 수도 있다. 디코드 및 발급 회로(48) 논리는 VLIW 패킷 또는 한 번에 두 개까지의 수퍼스칼라 명령을 디코딩 및 발급하고, 각각의 파이프라인(슬롯0:슬롯T3)에 대한 제어 버스들 및 오퍼랜들들을 생성하기 위한 모든 스레드에 의해 공유된다. 게다가, 디코드 및 발급 회로(48)는 예를 들어, 수퍼스칼라 발급 기술을 이용하여 명령 발급을 위한 IQ(44) 엔트리의 두 개의 가장 오래된 유효한 명령들 사이에서 슬롯 정렬 및 의존성 체크를 실행한다. PLC(50) 로직은 예외를 해결하고 스레드 인에이블/디스에이블, 리플레이(replay) 조건, 프로그램 흐름 유지 등과 같은 파이프라인 스톨 조건을 검색하기 위한 모든 스레드에 의해 공유된다.
동작시, 선택된 스레드의 범용 레지스터 파일(GRF)(52) 및 제어 레지스터 파일(CRF)(54)이 판독되며, 판독된 데이터는 슬롯T0:슬롯T3에 대한 실행 데이터 경로로 전송된다. 이러한 예에서, 슬롯T0:슬롯T3는 본 발명에서 사용된 패킷 그룹핑 조합을 제공한다. 슬롯0:슬롯3로부터의 출력은 DSP(40)의 동작으로부터의 결과를 리턴한다.
따라서, 본 발명의 실시예는 6개까지의 스레드(T0:T5)를 갖는 단일 마이크로프로세서를 이용하는 이종 엘리먼트 프로세서(HEP) 시스템의 혼합을 사용할 수도 있다. 프로세서 파이프라인(46)은 IU(42)로부터의 데이터 아이템을 가져오기(fetch)위해 필요한 최소수의 프로세서 주기에 매칭하는 6개의 파이프라인 단계를 갖는다. DSP(40)는 프로세서 파이프라인(46) 내에서 상이한 스레드(T0:T5)의 명령을 동시에 실행시킨다. 즉, DSP(40)는 6개의 독립 프로그램 카운터, 프로세서 파이프라인(46) 내의 스레드(T0:T5)의 명령들을 구분하는 내부 태깅 메카니즘, 및 스레드 스위치를 트리거링하는 메카니즘을 제공한다. 스레드 스위치 오버헤드는 0으로부터 소수의(only a few) 사이클까지 변화한다.
도 3은 개시된 실시예의 표현을 위한 DSP(40) 마이크로 구조의 간략한 개관을 제공한다. DSP(40) 마이크로 구조의 구현은 인터리빙된 멀티스레딩(IMT)을 지원한다. 개시된 실시예는 단일 스레드의 실행 모델을 처리한다. IMT의 소프트웨어 모델은 공유된 메모리 멀티프로세서로서 간주될 수 있다. 단일 스레드는 이용가능한 모든 레지스터들 및 명령들을 갖는 완전한 단일 프로세서 DSP(40)를 보여준다. 코히어런트(coherent) 공유 메모리 설비를 통해, 이러한 스레드는 다른 스레드와 통신하고, 그리고 동기화될 수 있다. 이러한 다른 스레드가 동일한 프로세서 또는 다른 프로세서 상에서 실행하는 지의 여부는 사용자 레벨 소프트웨어에 대해 매우 투명하다.
도3을 참조하면, DSP(40)을 위한 본 발명의 마이크로 구조(60)는 제어 유닛(CU(62))을 포함하는데, 이는 프로세서 파이프라인(46)에 대해 많은 제어 기능을 실행한다. CU(62)는 스레드를 스케쥴링하고 IU(42)로부터 혼합된 16비트 및 32비트를 요청한다. 더욱이, CU(62)는 3개의 실행 유닛, 시프트 타입 유닛(SU)(64), 곱셈 타입 유닛(MU)(66) 및 로드/저장 유닛(DU(68))에 대해 명령을 스케쥴링 및 발급한다. CU(62)는 또한 수퍼스칼라 의존 체크를 실행한다. 버스 인터페이스 유닛(BIU)(70)은 시스템 버스(미도시)로 IU(42) 및 DU(68)를 인터페이스한다.
슬롯0 및 슬롯1 파이프라인은 DU(68)에 있으며, 슬롯T2는 MU(66)에 있으며, 슬롯T3는 SU(64)에 있다. CU(62)는 소스 오퍼랜드(operand) 및 제어 버스를 파이프라인(슬롯T0:슬롯T3)으로 제공하고 GRF(52) 및 GRF(54) 파일 업데이트를 조절한다. GRF(52)는 단일 레지스터들로서 또는 정렬된 64비트 쌍으로서 액세스될 수 있는 32 비트 레지스터를 유지한다. 마이크로 구조(60)는 수퍼스칼라 및 VLIW 실행의 장점을 혼합하는 혼합형 실행 모들을 특징으로 한다. 수퍼스칼라 발급은 독립 명령을 찾기 위해 어떠한 소프트웨어 정보도 필요하지 않다는 장점을 갖는다. 레지스터 파일 파이프라인 단계(RF)는 레지스트리 파일 업데이트를 제공한다. 두 개의 실행 파이프 단계(EX1 및 EX2)는 명령 실행을 지원하는 반면, 제3 실행 파이프라인 단계(EX3)는 명령 실행 및 레지스터 파일 업데이트를 제공한다. 실행(EX1, EX2 및 EX3) 및 라이트백(WB) 파이프라인 단계 동안, IU(42)는 실행될 다음 IQ(44) 엔트리를 구축한다. 끝으로, 라이트백 파이프라인 단계(WB)는 레지스터 업데이트를 실행한다. 레지스터 파일 오퍼랜드에 대한 스태거링된 기록은, IMT 마이크로 구조로 인해 가능하며, 스레드당 기록 포트의 수를 저장한다. 파이프라인이 6개의 단계를 갖기 때문에, CU(52)는 6개의 상이한 스레드까지 발급할 수도 있다.
도4는 개시된 실시예를 적용할 수 있는 일반적인 데이터 유닛(DU(68)) 블록 분할을 도시한다. DU(68)는 AGU(80)을 포함하는데, 이는 CU(62)로부터의 입력을 수신하기 위한 AGU0(81) 및 AGU1(83)을 더 포함한다. 로드/저장 제어 유닛("LCU")(82)은 또한 CU(62)와 통신하며 AGU(80) 및 ALU(84)로 제어 신호를 제공함은 물론, 데이터 캐시 유닛(DCU)(86)과 통신한다. ALU(84)는 또한 AGU(82) 및 CU(62)로부터 입력을 수신한다. AGU(80)로부터의 출력은 DCU(86)로 진행한다. DCU(86)는 메모리 관리 유닛("MMU")(87) 및 CU(62)와 통신한다. DCU(86)는 SRAM 상태 어레이 회로(88), 저장 정렬기 회로(90), CAM 태그 어레이(92), SRAM 데이터 어레이(94), 및 로드 정렬기 회로(96)를 포함한다.
DU(68)은 로드 타입, 저장 타입 및 ALU(84)로부터의 32 비트 명령을 실행시키다. DU(68)의 주요한 특징은 DSP(40) 파이프 라인 단계들(RF), EX1, EX2, EX3 및 슬롯T0 및 슬롯T1의 두 개의 병렬 파이프 라인을 이용하는 WB 파이프라인 단계 모두에서 전체적으로 파이프라이닝된 동작을 포함한다. DU(68)은 VLIW 또는 수퍼스칼라 듀얼 명령 발급을 수용할 수도 있는데, 여기서 바람직하게는 슬롯T0은 캐시불가능하거나 캐시 가능한 로드 또는 저장 명령, 32비트 ALU(84) 명령 및 DCU(86) 명령을 실행시킨다. 슬롯T1은 캐시블가능하거나 캐시 가능한 로드 명령 및 32 비트 ALU(84) 명령을 실행시킨다.
DCU(86)은 물리적으로 태깅된 다중 방식을 제공하고 연속적인 태그 데이터 룩업을 사용한다. DU(68) 동작은 16 방향 세트 관련 구조에서 슬롯T0 및 슬롯T1로부터의 동시 액세스를 지원하는 의사 듀얼 포트를 포함한다. 32KB 용량 및 32비트 라인 크기로 인해, DU(68)는 모든 6개의 스레드(T0:T5) 사이에서 공유될 수도 있다. 더욱이, DU(68)는 스레드간 비블록 동작을 이용하여, "최근 비사용" 대체 정책을 제공한다. 페이지 구성 가능한 라이트 스루 및 라이트백 및 개별 라인에 의한 캐시 록킹으로 인해, DU(68)는 일 실시예에서 8KB 밀결합 메모리(TCM)를 제공한다.
이하의 설명은 DCU(86)의 추가 특징 및 기능을 개시한다. DU(86)는 DCU(86)의 데이터 캐시 기능을 관리하는 캐시 명령을 실행한다. 캐시 명령들은 특정 캐시 라인이 록킹 및 언록킹되고, 무효로되고, GRF(52) 특정 캐시 라인으로 할당되게 한다. 캐시 저장/검색 명령들을 광범위하게 무효화하는 명령이 또한 존재한다. 이러한 명령은 로드 및 저장 명령들에 유사한 파이프라인이다. 데이터 캐시를 미스한 캐시가능한 위치들에 대한 로드 및 저장을 위해, 그리고 캐시불가능한 액세스를 위해, DU(68)는 BIU(70)에 대한 요청을 제공한다. 로드 미스는 라인 필 요청을 제공한다. 캐시불가능한 로드는 판독 요청을 제공한다. 저장소 히트, 미스 및 캐시불가능한 저장소는 기록 요청을 제공한다.
DU(68)는 BIU(70)에 대한 미해결 기록 및 라인 필 요청을 추적한다. BIU(70)는 이러한 요청에 대해 수신된 데이터를 DU(68)로 지향시킨다. DU(68)는 하나 이상의 스레드가 미해결 로드 요청의 완료까지 블록킹되는 동안에, 다른 스레드에 의한 액세스를 가능하게 하는 비블록킹 스레드간 동작을 제공한다. DSP(40)은 IMT 기계이므로, 단일 스레드 파이프라인 기계의 통상적인 로드 사용 파이프라인 거리 임계는 적용되지 않는다. 만일 로드가 GRF(52)를 업데이트하면, 가장 빠른 다음 사용은 가장 짧은 가능한 로드 사용 요구를 충족시키기 위해 6주기 이후일 수도 있다. 따라서, DCU(86)는 데이터 액세스 이후의 연속적 태그 록업을 실행한다. 이는 데이터 어레이에서 히트하는 캐시 라인을 액세스만 함으로써 에너지를 절약한다.
도5는 DSP(40) 파이프라인(100)의 동작 내에서 데이터 유닛(68)의 동작을 묘사한다. RF 파이프라인 단계(102)에서, AGU(80)는 (a)슬롯T0 및 슬롯T1의 GRF(52)로부터의, 그리고 (b)인접(immediate) 오퍼랜드(IMM(0) 및 IMM(1))의 IMM(103)으로부터의 입력을 수신한다. EX1 파이프라인 단계(140) 동안 AGU(80)는 ALU(82) 및 SRAM 상태 어레이(88)로의 AGU0(81) 및 AGU1(83) 출력은 물론, MMU(87) 및 CAM 태그 어레이(92)로의 입력을 제공한다. RF 파이프라인 단계(102) 및 EX1 파이프라인 단계(104)를 중첩함으로써, RF(52)로부터의 출력은 또한 ALU(82)로 진행한다. AGU(80)으로부터의 입력에 응답하여, MMU(87)은 EX2 파이프라인 단계(108) 동안 CAM 태그 어레이(92)로 입력을 제공한다. AGU(80)은 ALU(82)로 AIA(0) 및 AIA(1) 출력 및 IMM(0) 및 IMM(1) 출력을 제공한다. ALU(82)는 EX3 파이프라인 단계(110)의 뒷부분에서 RF(52)로 출력을 생성하기 위해 EX2 파이프라인 단계(108)에서 일반적으로 동작한다. MMU(87)은 EX2 파이프라인 단계(108) 동안 CAM 태그 어레이(88)로 출력을 제공한다. 한편, SRAM 상태 어레이(88)는 SRAM 데이터 어레이(94)로 입력을 제공하기 위해 EX2 파이프라인 단계(108) 동안 저장 정렬기(90)로 출력을 결합시킨다. SRAM 데이터 어레이(94)는 또한 CAM 태그 어레이(92)로부터의 입력을 수신한다. SRAM 데이터 어레이(94)로부터, 로드 정렬기(96)는 입력을 수신하고, 응답으로 WB 파이프라인 단계(112) 동안 RF(52)로 슬롯T0 및 슬롯T1 출력을 생성한다. 또한 WB 파이프라인 단계(88)에서, SRAM 상태 어레이(88)는 NRU/상태/록/업데이트 신호들을 수신할 수도 있다.
다시 말해서, DU(68)는 디코드 및 발급 회로(48)를 통해 CU(62)로부터 인접 오퍼랜드를 포함하여, 주기당 두 개까지의 디코딩된 명령을 수신한다. RF 파이프라인 단계(102)에서, DU(68)는 적절한 스레드 특정 레지스터로부터 GRF(52) 및/또는 CRF(54) 소스 오퍼랜드를 수신한다. GRF 오퍼랜드는 GRF(52)로부터 수신된다. EX1 파이프라인 단계(104)에서, DU(68)는 로드 또는 저장 메모리 명령의 유효 어드레스(EA)를 생성한다. EA 신호는 MMU(87)로 제공되는데 이는 물리적 어드레스 번역 및 페이지 레벨 허가 체킹에 대한 가상을 실행하고 페이지 레벨 속성들을 제공한다. 캐시가능한 위치들로의 액세스를 위해, DU(68)은 물리적 어드레스를 갖는 EX2 파이프라인 단계(108)에서 데이터 캐시 태그를 룩업한다. 만일 액세스가 히트하면, DU(68)는 데이터 어레이 액세스 EX3 파이프라인 단계(110)를 실행한다.
캐시가능한 로드의 경우, DCU(86)로부터의 데이터 판독은 적절한 액세스 크기로 정렬되고, 특정한 대로 제로/부호 확장되고 WB 파이프라인 단계(112)에서 CU(62)로 유도된다. 그 결과, 데이터는 명령 특정 GRF 파일로 기록될 수도 있다. 캐시가능한 저장소의 경우, 저장될 데이터는 EX1 파이프라인 단계(104)의 CU(62)에서 스레드 특정 레지스터로부터 판독되고 EX2 파이프라인 단계(108)에서 히트 상에서 데이터 캐시 어레이로 기록된다. 로드 및 저장의 경우, 자동-증가 어드레스는 EX1 파이프라인 단계(104) 및 EX2 파이프라인 단계(108)에서 생성된다. 이어, 로드 및 저장은 명령 특정 GRF(52) 파일로 추가로 기록되도록 EX3 파이프라인 단계(110)에서 CU(62)로 유도될 수도 있다.
ALU(84) 명령을 실행할 때, DU(68)은 RF 파이프라인 단계(102)에서 GRF 오퍼랜드 및 EX1 파이프라인 단계(104)에서 GRF 오퍼랜드를 수신한다. ALU(84) 산술 및 비교 명령은 EX2 파이프라인 단계(110)에서 동작하며, 결과는 라이트백(writeback)을 위해 EX3 파이프라인 단계에서 CU(62)로 진행한다. ALU(84) 명령은 바이트 시프팅 및 부호/제로 확장을 포함하고 WB 파이프라인 단계(112)에서 로드 정렬기를 사용한다. 이어 ALU(84)는 결과를 CU(62)로 전송한다.
비록 소정의 명령이 두 개의 레지스터 판독(예를 들어, 저장 명령 및 소정의 ALU 명령) 또는 두 개의 레지스터 기록(예를 들어, 자동 증가 로드 명령)을 요구하지만, CU(62)는 스레드당 DU(68)에 대해 단일 레지스터 판독 및 단일 레지스터 기록 포트만을 제공한다. DSP(40)가 IMT 머신을 제공하기 때문에, 단일 판독 포트는 RF 파이프라인 단계(102) 및 EX1 파이프라인 단계(104)에서 판독을 위해 시간 다중화될 수도 있으며, 단일 기록 포트는 EX3 파이프라인 단계(110) 및 WB 파이프라인 단계(112)에 대해 시간 다중화될 수도 있다.
DCU(86)의 직렬 태그/데이터 액세스는, 히트 위치가 이전의 EX2 파이프라인 단계(108)에서 해결된 후 로드로서 저장소가 EX3 파이프라인 단계(112)에서 데이터 어레이를 또한 액세스하게 한다. 따라서, 개별 저장 포트, 저장 버퍼링 또는 로드 포워딩에 대한 저장과 같은 통상의 단일 스레드 저장 파이프라인 솔루션들은 저장소의 스톨 프리 파이프라이닝을 위해 여기서는 요구되지 않는다.
히트 결정에 대한 완화된 시간 제한은 또한 DCU(86)의 SRAM 데이터 어레이(94)가 6방향 IMT 머신에 적합한 상당히 관련되게 설정(예를 들어, 16 방향)되게 한다. 이는 각각의 스레드의 개별 데이터 사이에서 캐시 충돌을 최소화한다. SRAM 데이터 어레이(94)는 공유된 데이터의 성능 효율을 배가하기 위해 모든 스레드들 사이에서 공유된다. 부가적으로, 스레드 SRAM 데이터 어레이(94) 캐시는 또한 다수의 공유된 사본들 사이에서 코히어런스를 유지하기 위해 캐시 코히어런스 메카니즘에 대한 필요를 또한 제거한다.
DCU(86)의 동작 내에서, 개시된 발명은 정적 및 동적 전력 소비를 절약하기 위해 매치 라인을 CAM 태그 어레이(92)의 선택적인 사전 충전을 위해 제공한다. 본 발명의 실시예는 CAM 태그 어레이(92) 내의 관련된 세트가 액세스되지 않는 것이 알려진 경우 매치 라인을 사전 충전하지 않는다. 매치 라인은 또한 SRAM 데이터 어레이(94) 내의 특정 세트가 유효 라인을 포함하지 않는다는 것이 알려진 경우 사전 충전되지 않는다.
따라서, 본 발명의 실시예는 두 팩터에 기초하여 선택적인 사전 충전을 제공한다. 제1 팩터는 세트 설정(set selection)이고, 제2 팩터는 유효 상태(valid state)이다. CAM 태그 어레이(92)에 부가하여, DCU(86)은 개별 SRAM 상태 어레이(88)를 제공하는데, 이는 인덱스 어드레스를 유지한다. 각각의 엔트리는 CAM 태그 어레이(92)의 모든 세트에 대해 유효/무효 플래그를 포함한다. 각각의 매치 라인은 관련된 세트가 선택되고 세트가 유효한 경우에만 사전 충전된다.
CAM 태그 어레이(92)의 매치 라인을 사전 충전하지 않음으로써, 누설은 정적 동작 동안 제거된다. 게다가, 일반적인 콘텐츠 어드레스 가능한 메모리의 경우, 사전 충전이 클록 주기의 동작으로 게이팅되므로, 동적 전력이 또한 절약된다. 개시된 본 발명의 경우, 클록은 사전 충전된 매치 라인으로부터의 로딩만을 보기 위해 게이팅된다. 결론적으로, DSP(40)의 동적 로딩 및 관련된 전력 또는 에너지 소비는 또한 실질적으로 감소된다.
도5를 참조하면, 이하는 CAM 태그 어레이(92) 및 관련된 동작들 동안 DCU(86)의 파이프라인 동작을 설명한다. 직렬 태그/데이터 액세스 동작들은 저장소가, 히트 위치가 EX2 파이프라인 단계(104)에서 해결되기 때문에 로드로서 동일한 EX3 파이프라인 단계(110)에서 SRAM 데이터 어레이(94)를 액세스하게 한다. 따라서, 개별적인 저장 포트, 저장 버퍼링 또는 로드 포워딩에 대한 저장과 같은 통상적인 단일 스레드 저장 파이프라인 솔루션은 저장소들의 스톨 프리 파이프라이닝에 대해 여기서는 요구되지 않는다. 히트 결정에 대한 완화된 시간 제한은 또한 DCU(86)가 예를 들어 16방향과 같이 상당히 관련되게 설정되도록 한다.
도6은 DCU(86)의 CAM 태그 어레이(92)와 관련한 데이터 캐시 매치 라인 회로(120)의 개략도이다. 데이터 캐시 매치 라인 회로(120)는 CAM 방전 회로(122) 및 CAM 조건부 자체 종료 사전 충전 회로(124)를 포함한다. CAM 방전 회로(122)에서, Set_vld 입력은 버퍼(126)로 진행하며, 이는 인버터(128)에 의해 NFET(130)로 입력을 제공한다. Set_vld가 로우이면, 인버터(128)는 NFET(130)로 하이 입력을 제공하여 매치 라인(132)이 로우로 유지되게 한다. CAM 조건부 자체 종료 사전 충전 회로(124)는 NOR 게이트(136)로 반전된 매치 라인(132) 입력을 제공하는 버퍼 회로(134)를 포함한다. NOR 게이트(136) 출력은 PFET(138)로 진행하는데, 이는 매치 라인을 Vdd로 접속하도록 턴온한다. 홀더 회로(140)는 충분한 기간 동안 매치 라인(132)을 Vdd로 유지하여 CAM 태그 어레이(92)의 관련된 세트로부터 데이터를 검색하게 한다.
따라서, 매치 라인(132)은 세트가 액세스에 대해 선택될 때는 제외하고 DSP(40) 동작 동안 로우로 유지된다. 이는 NFET(130)으로의 입력으로서 인버터(128)로부터 Set_vld 신호의 반전을 이용하여 달성되며, 이는 매치라인(132)을 풀다운한다. NFET(130)은 매치 라인(132)을 풀다운 하기 위해 작은 크기일 수도 있다.
본 발명의 실시예는 매치 라인(132)과 동일한 값의 트리거 신호를 생성하는 더미 매치 라인(147)을 제공한다. 홀더 회로(140)는 CAM 태그 어레이(92)의 계산 전에 트리거 신호가 페이딩되는 것을 방지한다. 페이딩은 Set_vld가 로우로부터 하이로 너무 빨리 전이할 때 발생하여 최소 지연을 초래하거나, Set_vld 신호가 하이로부터 로우로 너무 빨리 전이하여 더미 매치 라인(147)이 풀다운되게 할 때 발생할 수도 있다. 다른 한편으로, Set_vld가 상승하자마자 매치 라인의 풀다운을 차단할 필요가 있다. 이는 사전 충전 회로와의 전력 쟁탈을 방지한다. 이처럼, 이는 Set_vld의 상승과 함께 가능하면 신속하게 NFET(130) 풀다운 전압의 턴오프를 필요로 한다. 그러나 NFET(130)를 턴온시 지연이 바람직하다. 따라서, NFET(130) 풀다운으로의 입력은 NOR 게이트(136)의 출력이며, NOR 게이트(136)의 하나의 입력은 지연된다.
CAM 태그 어레이(92)는 16 매치 라인(132)을 포함하며, 각각의 세트에 대해 하나가 Set_vld 회로에 의해 선택가능하다. 본 발명의 경우, 로우로부터 하이 전압으로의 전이는 탐색 라인이 구동되기 직전에 사전 충전 매치 라인(132)이 하이로 되게 한다. 매치 라인(132)으로부터 PFET(138) 사전 충전으로의 지연 경로(134)는 PFET(138)를 턴오프할 것이지만, 더 작은 PFET(140)는 매치 라인(132)을 하이로 유지할 것이다.
이제, 특별한 경우가 Set_vld 신호가 CAM 태그 어레이(92)의 평가를 위해 하이로 유지할 때 발생할 수도 있다. 결론적으로, Set_vld가 두 연속한 주기 동안 하이인 경우에만 사전 충전하는 것이 바람직하다. 다른 한편으로, 사전 충전은 Set_vld가 상승하자마자 시작해야 한다. 사전 충전은 CAM 태그 어레이(92) 풀다운으로 접속을 방지하기 위해 매치 라인(132)이 Vdd가 되자마자 또한 종료해야 한다. 모든 이러한 요구를 충족시키기 위해, 데이터 캐시 매치 라인 회로(120)는 버퍼 회로(126) 및 NOR 게이트(136)를 포함한다. 버퍼 회로(136)의 지연은 사전 충전 시간, 예를 들어~200-300ps와 동일한 반면, 버퍼 회로(134)의 지연은 위상 기간과 밀접할 수도 있다.
매치 라인(132)이 로우로 방전되기 때문에, 어떠한 누설도 40,906(=40×64[어레이 크기]×16[매치 라인]) 통상 누설 경로로부터 발생하지 않는다. 또한, 동적 전력 손실이 감소되는데, 이는 CAM 태그 어레이(92) 내의 세트를 어드레싱하기 위해 어떠한 클록 로드도 존재하지 않기 때문이다. 대신, 클록은 트리거 신호를 게이트하기 위해 더미 행에서만 사용된다. 클록이 워드라인 드라이버상에서 사용되면, 개시된 발명의 일 실시예는 이러한 클록 기능을 제거할 수도 있다.
도7은 회로 응답을 위해 공칭(nominal) 시간을 갖는 개시된 실시예의 동작을 위한 타이밍도(150)를 제공한다. 따라서, 상승 클록(152)을 갖는 EX2 파이프라인 단계(104)에서 시작시, 세트 설정 전압(154)은 하이로 진행하고 550ps 동안 하이로 유지된다. 이어, 세트 설정 전압(154)의 상승에 응답하여, 매치 라인 전압(156)은 하이로 진행하고 하강 클록(158) 이후 50ps까지 하이로 유지된다. 하강 클록(158) 이후, 탐색 라인 전압(160)은 하이로 진행하고 350ps 동안 하이로 유지된다. 응답하여, 매치 라인 전압(156)은 낮은 전압으로 감소된다. 하강 매치 라인 전압(156)에 응답하여, 트리거 전압(162)은 하이로 진행하고 탐색 라인 전압(160)이 하이로 진행한 후 400ps까지 하이로 유지된다.
상승 클록(166)에서, RAM 워드 라인 전압(168) 및 RAM 비트라인 사전 충전 전압(170)은 하이로 진행한다. RAM 워드 라인 전압(168)은 250ps 동안 유지된다. 명목상으로, RAM 워드 라인 전압(168)이 하이로 진행한 후 400ps에, sean 전압(172)은 하이로 진행한다. sean 전압 상승에 응답하여, RAM 워드 라인 전압(168)은 로우로 진행한다. 또한, 하강 클록(174)에서, sean 전압(172) 및 RAM 비트라인 사전 충전 전압(170)은 로우로 복귀한다. 탐색 전압(164)의 제 2 상승은 RAM 워드 라인 전압(168) 및 sean 전압(172)의 하강 동안 발생한다. 따라서, 두 클록 주기 이후, 탐색 라인 전압(164)은 하이로 유지되고 다른 모든 전압은 저 전압으로 복귀한다.
따라서, 개시된 실시예는 낮거나 제로 전압에서 매치 라인(132)을 유지한다. CAM 태그 어레이(92) 캐시 세트가 요구될 때만, 매치 라인(132)은 충전될 것이다. 일단 매치 라인(132)이 충전되면, DCU(86) 및 DSP(40)은 원하는 데이터를 획득한다. 이어 매치 라인(132) 전압은 저전압으로 복귀한다. 결과적으로, 클록 로드를 제로로 감소시킴으로써 동적 전력 손실의 감소 또는 제거를 초래한다. 즉, 클록 신호로부터의 신호 로드를 획득할 필요가 없다. 데이터 또는 명령이 탐색되는 캐시 블록을 결정하는 디코드 로직은 매치 라인(132)에 대해 선택적인 사전 충전을 제공한다. 그 결과로서, 본 발명이 실시예의 선택적인 사전 충전은 특전 캐시 블록을 선택하기 위한 디코딩 신호 및 매치 라인을 충전하기 위한 매치 라인 충전 신호를 제공한다.
설명된 프로세싱 특징 및 기능은 다양한 방식으로 구현될 수 있다. 예를 들어, DSP(40)이 전술한 동작을 실행함은 물론, 본 발명의 실시예는 애플리케이션 특정 집적 회로(ASIC), 마이크로제어기, 마이크로프로세서, 또는 설명된 기능을 수행하도록 구성된 다른 전자 회로에서 구현될 수 있다. 따라서, 본 발명의 실시예의 전술한 설명은 기술 분야의 당업자가 청구된 대상을 실시 및 사용하게 한다. 이러한 실시예에 대한 다양한 변경이 기술 분야의 당업자에게 명백하며, 한정된 일반 원칙은 혁신적인 기능의 사용 없이도 다른 실시예에 적용될 수 있다. 청구된 대상은 실시예에 한정되지 않으며, 개시된 원리 및 새로운 특징과 조화된 넓은 사상에 부합한다.

Claims (22)

  1. 디지털 신호 프로세서의 어드레싱 가능한 메모리와 관련하여 캐시 메모리를 동작시키기 위한 방법으로서,
    복수의 캐시 메모리 매치 라인을 복수의 어드레싱 가능한 메모리 라인과 관련(associate)시키는 단계 - 여기서, 상기 복수의 캐시 메모리 매치 라인 각각은 상기 캐시 메모리의 대응하는 복수의 세트 중 하나와 관련됨 -;
    상기 복수의 캐시 메모리 매치 라인 각각을 저전압으로 유지하는 단계;
    상기 캐시 메모리의 대응하는 세트들 중 선택된 하나로부터 데이터를 검색하기 위해 상기 캐시 메모리의 탐색을 개시하는 단계;
    상기 선택된 캐시 메모리의 세트가 유효(valid) 데이터를 포함하는지 여부를 판단하는 단계;
    상기 탐색 단계 및 상기 판단 단계에 응답하여, 상기 복수의 캐시 메모리 매치 라인 중 하나를 - 여기서, 상기 복수의 캐시 메모리 매치 라인 중 하나는 상기 캐시 메모리의 대응하는 세트들 중 선택된 하나에 대응함 - 상기 세트가 유효 데이터를 포함하는 경우에만 저전압으로부터 고전압으로 구동하고, 상기 세트가 유효 데이터를 포함하지 않는 경우에는 상기 복수의 캐시 메모리 매치 라인 중 하나를 저전압으로 유지하는 단계;
    상기 복수의 캐시 메모리 매치 리인 중 하나를 상기 어드레싱 가능한 메모리 라인들 중 관련된 하나와 비교하는 단계; 및
    상기 비교 단계 후 상기 복수의 캐시 메모리 매치 라인 중 하나를 저전압으로 복귀시키는 단계를 포함하는, 캐시 메모리를 동작시키기 위한 방법.
  2. 제1항에 있어서,
    상기 구동하는 단계 이후에,
    홀더 회로를 이용하여 상기 복수의 캐시 메모리 매치 라인 중 하나를 고전압으로 유지하는 단계를 더 포함하는, 캐시 메모리를 동작시키기 위한 방법.
  3. 제1항에 있어서,
    상기 유지하는 단계 이후에,
    상기 캐시 메모리의 대응하는 세트들 중 선택된 하나의 콘텐츠에 따라 상기 캐시 메모리의 상기 탐색을 개시하는 단계를 더 포함하는, 캐시 메모리를 동작시키기 위한 방법.
  4. 제1항에 있어서,
    상기 캐시 메모리의 동작은 SRAM 데이터 어레이와 관련되는, 캐시 메모리를 동작시키기 위한 방법.
  5. 제1항에 있어서,
    상기 캐시 메모리는 상기 디지털 신호 프로세서의 데이터 유닛 내에서 동작하는, 캐시 메모리를 동작시키기 위한 방법.
  6. 제1항에 있어서,
    상기 캐시 메모리는 인터리빙된 멀티스레드된 프로세싱 모드에서 동작하는, 캐시 메모리를 동작시키기 위한 방법.
  7. 제1항에 있어서,
    상기 탐색 단계 및 상기 복귀 단계는,
    상기 디지털 신호 처리기의 적어도 하나의 실행 파이프라인 단계 동안 실행되는, 캐시 메모리를 동작시키기 위한 방법.
  8. 마이크로프로세서의 어드레싱 가능한 메모리와 관련하여 캐시 메모리를 동작시키기 위한 디지털 신호 처리기의 일부를 형성하는 집적 회로로서,
    복수의 캐시 메모리 매치 라인;
    복수의 캐시 메모리 매치 라인 각각이 상기 캐시 메모리의 대응하는 복수의 세트 중 하나와 관련하도록, 상기 어드레싱 가능한 메모리 및 상기 복수의 캐시 메모리 매치 라인과 관련된 복수의 어드레싱 가능한 메모리 라인;
    상기 복수의 캐시 메모리 매치 라인 각각을 저전압으로 구동하기 위한 매치 라인 구동 회로;
    상기 캐시 메모리의 대응하는 세트들 중 선택된 하나로부터 데이터를 검색하기 위해 상기 캐시 메모리의 탐색을 개시하기 위한 캐시 메모리 탐색 회로; 및
    상기 캐시 메모리의 복수의 대응하는 세트들 각각에 관련되는 유효(valid) 표시자를 저장하도록 동작하는 캐시 메모리 상태 어레이; 및
    상기 복수의 캐시 메모리 매치 라인을 상기 어드레싱 가능한 메모리 라인들 중 관련된 하나와 비교하는 비교회로를 포함하며,
    여기서, 상기 매치라인 구동 회로는 상기 캐시 메모리 탐색 회로 및 상기 캐시 메모리 상태 어레이에 응답하여 상기 복수의 캐시 메모리 매치 라인을 - 여기서, 상기 복수의 캐시 메모리 매치 라인 중 하나는 상기 캐시 메모리의 대응하는 세트들 중 상기 선택된 하나에 대응함 - 저전압에서 고전압으로 구동하고;
    여기서, 상기 매치 라인 구동 회로는 상기 비교 후 상기 복수의 캐시 메모리 매치 라인 중 하나를 상기 저전압으로 복귀시키는, 캐시 메모리를 동작시키기 위한 집적 회로.
  9. 제8항에 있어서,
    홀더 회로를 이용하여 상기 복수의 캐시 메모리 매치 라인 중 하나를 고전압으로 유지하는 고전압 유지 회로를 더 포함하는, 캐시 메모리를 동작시키기 위한 집적 회로.
  10. 제8항에 있어서,
    상기 캐시 메모리 탐색 회로는 상기 캐시 메모리의 대응하는 세트 중 선택된 하나의 콘텐츠에 따라 상기 캐시 메모리의 탐색을 개시하기 위한 회로를 더 포함하는, 캐시 메모리를 동작시키기 위한 집적 회로.
  11. 제8항에 있어서,
    SRAM 데이터 어레이와 관련하여 상기 캐시 메모리를 관련시키는 데이터 캐시 유닛 회로를 더 포함하는, 캐시 메모리를 동작시키기 위한 집적 회로.
  12. 제8항에 있어서,
    상기 어드레스 가능한 메모리 및 상기 캐시 메모리와 관련된 데이터 유닛 회로를 더 포함하고,
    여기서, 상기 데이터 유닛은 상기 디지털 신호 프로세서 내에서 상기 캐시 메모리를 동작시키는, 캐시 메모리를 동작시키기 위한 집적 회로.
  13. 제8항에 있어서,
    상기 캐시 메모리는 인터리빙된 멀티스레딩된 프로세싱 모드에서 동작하는, 캐시 메모리를 동작시키기 위한 집적 회로.
  14. 마이크로프로세서의 어드레싱 가능한 메모리와 관련하여 캐시 메모리를 동작시키는 디지털 신호 프로세서로서,
    복수의 캐시 메모리 매치 라인을 복수의 어드레싱 가능한 메모리 라인과 관련시키기 위한 수단 - 여기서, 상기 복수의 캐시 메모리 매치 라인 각각은 상기 캐시 메모리의 대응하는 세트 중 하나와 관련됨 -;
    상기 복수의 캐시 메모리 매치 라인 각각을 저전압으로 유지하기 위한 수단;
    상기 캐시 메모리의 대응하는 세트들 중 선택된 하나로부터 데이터를 검색하기 위해 상기 캐시 메모리의 탐색을 개시하기 위한 수단;
    상기 캐시 메모리의 대응하는 세트 중 어느 세트가 유효(valid) 데이터를 포함하는지 여부를 추적하기 위한 수단;
    상기 탐색 개시 수단 및 상기 유효 데이터 추적 수단에 응답하여 동작하며, 상기 복수의 캐시 메모리 매치 라인 중 하나를 - 여기서, 상기 복수의 캐시 메모리 매치 라인 중 하나는 상기 캐시 메모리의 대응하는 세트들 중 선택된 하나에 대응함 - 상기 대응하는 세트가 유효 데이터를 포함하는 경우에만 저전압으로부터 고전압으로 구동하기 위한 수단;
    상기 복수의 캐시 메모리 매치 리인 중 하나를 상기 어드레싱 가능한 메모리 라인들 중 관련된 하나와 비교하기 위한 수단; 및
    상기 비교 후 상기 복수의 캐시 메모리 매치 라인 중 하나를 상기 저전압으로 복귀시키기 위한 수단을 포함하는, 디지털 신호 프로세서.
  15. 제14항에 있어서,
    홀더 회로를 이용하여 상기 복수의 캐시 메모리 매치 라인 중 하나를 고전압으로 유지하기 위한 수단을 더 포함하는, 디지털 신호 프로세서.
  16. 제14항에 있어서,
    상기 캐시 메모리의 대응하는 세트들 중 선택된 하나의 콘텐츠에 따라 상기 캐시 메모리의 상기 탐색을 개시하기 위한 수단을 더 포함하는, 디지털 신호 프로세서.
  17. 제14항에 있어서,
    SRAM 데이터 어레이와 관련하여 상기 캐시 메모리를 동작시키기 위한 수단을 더 포함하는, 디지털 신호 프로세서.
  18. 제14항에 있어서,
    상기 디지털 신호 프로세서의 데이터 유닛 내의 상기 캐시 메모리를 동작시키기 위한 수단을 더 포함하는, 디지털 신호 프로세서.
  19. 제14항에 있어서,
    인터리빙된 멀티스레드된 프로세싱 모드에서 상기 캐시 메모리를 동작시키기 위한 수단을 더 포함하는, 디지털 신호 프로세서.
  20. 제14항에 있어서,
    상기 디지털 신호 프로세서의 적어도 하나의 실행 파이프라인 단계 동안 상기 탐색 및 상기 복귀를 실행하기 위한 수단을 더 포함하는, 디지털 신호 프로세서.
  21. 혼합된 길이의 명령들을 인코딩 및 프로세싱하기 위한 디지털 신호 프로세서와 관련하여 동작하기 위해 내장된 컴퓨터 판독 가능 프로그램 코드 수단을 갖는 컴퓨터 판독 가능 매체로서,
    복수의 캐시 메모리 매치 라인을 복수의 어드레싱 가능한 메모리 라인과 관련시키기 위한 컴퓨터 판독 가능 프로그램 코드 수단 - 여기서, 상기 복수의 캐시 메모리 매치 라인 각각은 상기 캐시 메모리의 대응하는 복수의 세트 중 하나와 관련됨 -;
    상기 복수의 캐시 메모리 매치 라인 각각을 저전압으로 유지하기 위한 컴퓨터 판독 가능 프로그램 코드 수단;
    상기 캐시 메모리의 대응하는 세트들 중 선택된 하나로부터 데이터를 검색하기 위해 상기 캐시 메모리의 탐색을 개시하기 위한 컴퓨터 판독 가능 프로그램 코드 수단;
    상기 캐시 메모리의 선택된 세트가 유효 데이터를 포함하는지 여부를 판단하기 위한 컴퓨터 판독 가능 프로그램 코드 수단;
    상기 탐색 및 상기 판단에 응답하여, 상기 복수의 캐시 메모리 매치 라인 중 하나를 - 여기서, 상기 복수의 캐시 메모리 매치 라인 중 하나는 상기 캐시 메모리의 대응하는 세트들 중 선택된 하나에 대응함 - 상기 세트가 유효 데이터를 포함하는 경우에만 저전압으로부터 고전압으로 구동하고, 상기 세트가 유효 데이터를 포함하지 않는 경우에는 상기 복수의 캐시 메모리 매치 라인 중 하나를 저전압으로 유지하기 위한 컴퓨터 판독 가능 프로그램 코드 수단;
    상기 복수의 캐시 메모리 매치 리인 중 하나를 상기 어드레싱 가능한 메모리 라인들 중 관련된 하나와 비교하기 위한 컴퓨터 판독 가능 프로그램 코드 수단; 및
    상기 비교 후 상기 복수의 캐시 메모리 매치 라인들 중 하나를 저전압으로 복귀시키기 위한 컴퓨터 판독 가능 프로그램 코드 수단을 포함하는,
    컴퓨터 판독 가능 매체.
  22. 제21항에 있어서,
    인터리빙된 멀티스레드된 프로세싱 모드에서 상기 캐시 메모리를 동작시키기 위한 컴퓨터 판독 가능 프로그램 코드 수단을 더 포함하는, 컴퓨터 판독 가능 매체.
KR1020077029908A 2005-05-25 2006-05-25 저전력 마이크로프로세서 캐시 메모리 및 그 동작 방법 KR100929461B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/137,183 US7620778B2 (en) 2005-05-25 2005-05-25 Low power microprocessor cache memory and method of operation
US11/137,183 2005-05-25
PCT/US2006/020640 WO2006128079A2 (en) 2005-05-25 2006-05-25 Low power microprocessor cache memory and method of operation

Publications (2)

Publication Number Publication Date
KR20080007681A KR20080007681A (ko) 2008-01-22
KR100929461B1 true KR100929461B1 (ko) 2009-12-02

Family

ID=37027589

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077029908A KR100929461B1 (ko) 2005-05-25 2006-05-25 저전력 마이크로프로세서 캐시 메모리 및 그 동작 방법

Country Status (5)

Country Link
US (1) US7620778B2 (ko)
KR (1) KR100929461B1 (ko)
BR (1) BRPI0611473A2 (ko)
IL (1) IL187493A0 (ko)
WO (1) WO2006128079A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1040608C (zh) * 1992-10-30 1998-11-11 株式会社久保田 水田作业机械的升降控制装置

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7873788B1 (en) 2005-11-15 2011-01-18 Oracle America, Inc. Re-fetching cache memory having coherent re-fetching
US7647452B1 (en) 2005-11-15 2010-01-12 Sun Microsystems, Inc. Re-fetching cache memory enabling low-power modes
US7899990B2 (en) * 2005-11-15 2011-03-01 Oracle America, Inc. Power conservation via DRAM access
US7958312B2 (en) * 2005-11-15 2011-06-07 Oracle America, Inc. Small and power-efficient cache that can provide data for background DMA devices while the processor is in a low-power state
US7516274B2 (en) * 2005-11-15 2009-04-07 Sun Microsystems, Inc. Power conservation via DRAM access reduction
US7934054B1 (en) 2005-11-15 2011-04-26 Oracle America, Inc. Re-fetching cache memory enabling alternative operational modes
US7724559B2 (en) * 2006-07-14 2010-05-25 International Business Machines Corporation Self-referenced match-line sense amplifier for content addressable memories
US8103830B2 (en) * 2008-09-30 2012-01-24 Intel Corporation Disabling cache portions during low voltage operations
US9678878B2 (en) 2008-09-30 2017-06-13 Intel Corporation Disabling cache portions during low voltage operations
US9043554B2 (en) * 2012-12-21 2015-05-26 Apple Inc. Cache policies for uncacheable memory requests
US9165088B2 (en) * 2013-07-08 2015-10-20 Hewlett-Packard Development Company, L.P. Apparatus and method for multi-mode storage
US9274591B2 (en) 2013-07-22 2016-03-01 Globalfoundries Inc. General purpose processing unit with low power digital signal processing (DSP) mode
US9564183B2 (en) * 2014-11-26 2017-02-07 Invecas, Inc. Sense amplifier having a timing circuit for a presearch and a main search
US10599566B2 (en) * 2016-11-29 2020-03-24 Qualcomm Incorporated Multi-mode cache invalidation

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010091109A (ko) * 2000-03-13 2001-10-23 윤종용 어소시어티브 캐시 메모리
US20030093616A1 (en) 2001-11-01 2003-05-15 Slavin Keith R. Low power, hash-content addressable memory architecture
US6804133B1 (en) 2002-08-30 2004-10-12 Netlogic Microsystems, Inc. Selective match line control circuit for content addressable memory array

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4901397A (en) 1989-03-02 1990-02-20 Pursell Mark S Carcass spreader device
US5103459B1 (en) 1990-06-25 1999-07-06 Qualcomm Inc System and method for generating signal waveforms in a cdma cellular telephone system
US5936873A (en) 1997-09-30 1999-08-10 Sun Microsystems, Inc. Single ended match sense amplifier
US6166939A (en) 1999-07-12 2000-12-26 Net Logic Microsystems Method and apparatus for selective match line pre-charging in a content addressable memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010091109A (ko) * 2000-03-13 2001-10-23 윤종용 어소시어티브 캐시 메모리
US20030093616A1 (en) 2001-11-01 2003-05-15 Slavin Keith R. Low power, hash-content addressable memory architecture
US6804133B1 (en) 2002-08-30 2004-10-12 Netlogic Microsystems, Inc. Selective match line control circuit for content addressable memory array

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1040608C (zh) * 1992-10-30 1998-11-11 株式会社久保田 水田作业机械的升降控制装置

Also Published As

Publication number Publication date
KR20080007681A (ko) 2008-01-22
IL187493A0 (en) 2008-02-09
US20060268592A1 (en) 2006-11-30
WO2006128079A3 (en) 2007-02-08
US7620778B2 (en) 2009-11-17
BRPI0611473A2 (pt) 2010-09-14
WO2006128079A2 (en) 2006-11-30

Similar Documents

Publication Publication Date Title
KR100929461B1 (ko) 저전력 마이크로프로세서 캐시 메모리 및 그 동작 방법
US6687789B1 (en) Cache which provides partial tags from non-predicted ways to direct search if way prediction misses
US5740417A (en) Pipelined processor operating in different power mode based on branch prediction state of branch history bit encoded as taken weakly not taken and strongly not taken states
US6745336B1 (en) System and method of operand value based processor optimization by detecting a condition of pre-determined number of bits and selectively disabling pre-determined bit-fields by clock gating
US5860107A (en) Processor and method for store gathering through merged store operations
US7430642B2 (en) System and method for unified cache access using sequential instruction information
US20070094478A1 (en) Pointer computation method and system for a scalable, programmable circular buffer
US10838729B1 (en) System and method for predicting memory dependence when a source register of a push instruction matches the destination register of a pop instruction
US10747539B1 (en) Scan-on-fill next fetch target prediction
US7730290B2 (en) Systems for executing load instructions that achieve sequential load consistency
TW201351145A (zh) 指令快取的減少耗能
US20030149861A1 (en) Stalling instructions in a pipelined microprocessor
US6862670B2 (en) Tagged address stack and microprocessor using same
US6081136A (en) Dynamic NOR gates for NAND decode
KR100977687B1 (ko) 기지의 프로세서 상태에 기초하여 cam 리네이밍레지스터 파일 내의 비교기를 선택적으로 인에이블링하는절전 방법 및 장치
US6823430B2 (en) Directoryless L0 cache for stall reduction
US7346737B2 (en) Cache system having branch target address cache
EP1107110B1 (en) Instruction loop buffer
US6963965B1 (en) Instruction-programmable processor with instruction loop cache
US8171258B2 (en) Address generation unit with pseudo sum to accelerate load/store operations
US20060230257A1 (en) System and method of using a predicate value to access a register file
US20070011432A1 (en) Address generation unit with operand recycling
US20230315467A1 (en) Storing instructions from second storage to first storage while fetch operation is stalled, and reading instructions from first instruction storage upon resuming fetch operation
JP2001202239A (ja) マイクロプロセッサのための低電力インストラクションデコーディング方法
US7827389B2 (en) Enhanced single threaded execution in a simultaneous multithreaded microprocessor

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20131030

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20141030

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150930

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20161028

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170929

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190924

Year of fee payment: 11