KR101200737B1 - 기지의 프로세서 상태에 기초하여 cam 리네이밍 레지스터 파일 내의 비교기를 선택적으로 인에이블링하는 절전 방법 및 장치 - Google Patents

기지의 프로세서 상태에 기초하여 cam 리네이밍 레지스터 파일 내의 비교기를 선택적으로 인에이블링하는 절전 방법 및 장치 Download PDF

Info

Publication number
KR101200737B1
KR101200737B1 KR1020107006898A KR20107006898A KR101200737B1 KR 101200737 B1 KR101200737 B1 KR 101200737B1 KR 1020107006898 A KR1020107006898 A KR 1020107006898A KR 20107006898 A KR20107006898 A KR 20107006898A KR 101200737 B1 KR101200737 B1 KR 101200737B1
Authority
KR
South Korea
Prior art keywords
tag
processor
cam
comparator
register
Prior art date
Application number
KR1020107006898A
Other languages
English (en)
Other versions
KR20100038239A (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 KR20100038239A publication Critical patent/KR20100038239A/ko
Application granted granted Critical
Publication of KR101200737B1 publication Critical patent/KR101200737B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • 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)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Logic Circuits (AREA)
  • Storage Device Security (AREA)

Abstract

절전용 리네이밍 레지스터 파일 복합체가 기술된다. 매핑 유닛은 IRN 을 LRN 으로 변형시킨다. 리네이밍 레지스터 파일은 LRN 을 PRN 에 매핑하고, IRN 의 직접 사용에 의해 어드레스 가능한 것보다 더 많은 수의 물리적 레지스터가 존재한다. 리네이밍 레지스터 파일은 CAM 을 이용하여 매핑 펑션을 제공한다. 리네이밍 레지스터 파일 CAM 은 또한, 현재의 프로세서 상태 정보를 이용하여 태그 비교기를 선택적으로 인에이블링하고, 이로써 레지스터의 액세스 시의 전력을 최소화시킨다. 태그 비교기가 인에이블링되지 않을 때, 그 태그 비교기는 여전히 저전력 상태로 존재한다. 저전력 특성을 가진 리네이밍 레지스터 파일을 이용한 프로세서가 또한 기술된다.

Description

기지의 프로세서 상태에 기초하여 CAM 리네이밍 레지스터 파일 내의 비교기를 선택적으로 인에이블링하는 절전 방법 및 장치{POWER SAVING METHODS AND APPARATUS TO SELECTIVELY ENABLE COMPARATORS IN A CAM RENAMING REGISTER FILE BASED ON KNOWN PROCESSOR STATE}
본 발명은 일반적으로 프로세서의 전력을 감소시키는 기술에 관한 것으로, 더 상세하게는, 기지의 프로세서 상태에 기초하여 CAM (Content Addressable Memory) 리네이밍 레지스터 파일 내의 비교기를 선택적으로 인에이블링하는 유리한 기술에 관한 것이다.
고성능 프로그램 실행을 달성하기 위하여, 프로세서 구현은, 높은 클록 레이트로 단기간 파이프 단계들을 동작시키는 파이프라인을 이용할 수도 있다. 이런 유형의 프로세서에 대한 명령어 세트 구조는 또한 데이터의 소스 및 결과에 대한 목적지로서 실행 유닛에 의해 사용될 일 세트의 범용 레지스터를 지정할 수도 있다. 각 명령어는, 명령어 인코딩의 일부로서, 소스 또는 목적지 오퍼랜드로서 사용될 레지스터의 어드레스를 지정하는 비트 필드를 포함한다. 이들 레지스터 지정자는 IRN (Instruction Register Number) 로 지칭된다. 실행 유닛에 의해 이용할 수 있는 일 세트의 범용 레지스터는 프로세서의 동작 상태에 따라 변할 수도 있다. 예를 들어, 개개의 동작 모드에서 실행 중인 프로그램은 총 세트의 범용 레지스터들 중 서브세트만을 액세스할 수 있는 명령어를 이용하는 것으로 제한될 수도 있다. 또한, 프로세서는 파이프라인 실행 동안, 그리고 프로그램 순서의 명령어를 완료하기 전에, 비 순차적으로 명령어의 실행을 지원할 수도 있다. 비순차적 실행에 따라 딥 파이프라인 (deep pipeline) 을 지원하기 위하여, 프로세서는 프로세서의 명령어 세트 구조에 의해 지원될 수 있는 것보다 더 많은 수의 물리적 레지스터를 구현할 수도 있다. 레지스터 파일에 구현된 물리적 레지스터는 보통, PRN (Physical Register Number) 어드레스의 사용에 의해 액세스될 것이다. 하지만, PRN 어드레스를 직접 사용한 명령어와는 차이가 있다. 예를 들어, 16 개의 레지스터의 IRN 어드레스 공간을 가진 명령어 세트 구조를 지원하는 프로세서가 64 개의 물리적 레지스터의 PRN 어드레스 공간으로 구현될 수도 있다. IRN 어드레스 공간과 PRN 어드레스 공간 사이의 이런 차이를 해결하기 위해, 프로세서는 명령어 내에 포함된 IRN 어드레스를 PRN 어드레스에 매핑하는 리네이밍 하드웨어를 이용할 수도 있다. 그러한 매핑은 태그, 태그 비교기, 및 데이터 어레이를 갖는 CAM (Content Addressable Memory) 의 사용에 의해 달성될 수 있다. 리네이밍 하드웨어는 CAM 데이터 어레이에 저장된 물리적 레지스터에 대한 태그로서 IRN 어드레스를 이용할 수도 있다.
그러한 목적으로 CAM 을 이용함에 따른 문제점은, 일반적인 CAM 구현에서의 CAM 태그 비교기가 레지스터 파일 액세스마다 평가된다는 것이다. 고성능 구현을 위해, CAM 비교기는, 동적 설계이고 그들이 프리차치 (precharge)/디스차치 (discharge) 할 때 전력을 소비한다. 또한, 레지스터 파일이 보통 멀티 포트 구조이기 때문에, 각 포트에 대해 다수의 CAM 비교기가 존재하여 전력 소모를 더욱 증가시킨다.
개시물의 몇몇 양태들 중에서, 본 발명은, 저전력의 CAM 제어된 레지스터 파일을 제공하는 기술이 필요하다는 것을 인식한다. 일 양태에서, 제어 기술은 CAM 내에 저장된 태그를 이용하는데, 그 태그는 CAM 의 엘리먼트의 어드레스이고, 또한, 그 태그는 프로세서의 동작 상태를 기술하는 태그 내에 속성 (attribute) 을 갖는다. 태그 비교기가 프로세서에 의해 발생된 어드레스와 태그를 비교한다. 태그 비교기가 인에이블링인지 디스에이블링인지 여부를 판정하기 위하여, 동작 상태 비교기가 프로세서의 현재의 동작 상태와 상기 속성을 비교한다.
또 다른 양태는, CAM 기반 레지스터 파일에서 레지스터 어드레스 비교기를 디스에이블링되도록 선택하는 방법을 처리한다. 이 방법에서는, CAM 기반 레지스터 파일과 관련하여 이용되는 프로세서의 상태에 대한 지식에 기초하여, 소정의 액세스에 대해 도저히 매칭할 수 없는 레지스터 어드레스 비교기가 식별된다. 식별된 레지스터 어드레스 비교기는 그들이 저전력 상태에 들어가도록 제어된다. 본 발명의 다른 양태는 이하 더욱 상세히 설명되는 대로 처리된다.
본 발명의 보다 완전한 이해는 물론, 본 발명의 추가 특징 및 이점은 후속의 상세한 설명 및 첨부된 도면으로부터 명백해질 것이다.
도 1 은 본 발명의 일 실시형태가 유리하게 사용될 수도 있는 예시적인 무선 통신 시스템을 나타낸 도면이다.
도 2 는 본 발명에 따른 프로세서 복합체의 블록도이다.
도 3a 는 본 발명에 따라서, 리네이밍 레지스터 파일, 매핑 유닛, 현재의 프로세서 상태 레지스터 (CPSR), 및 실행 유닛을 갖는 리네이밍 레지스터 파일 복합체에서 IRN 을 PRN 에 매핑하는 예시적인 장치를 나타낸 도면이다.
도 3b 는 본 발명에 따라서, 리네이밍 레지스터 파일, 다수의 매핑 유닛, CPSR, 및 실행 유닛을 갖는 다수의 포트 어드레스의 리네이밍 레지스터 파일 복합체에서 IRN 을 PRN 에 매핑하는 예시적인 장치를 나타낸 그래픽 도면이다.
도 4 는 본 발명에 따라서, 리네이밍 레지스터 파일 내의 CAM 태그 비교기를 선택적으로 인에이블링하는 프로세스를 나타낸 그래픽 도면이다.
도 5 는 본 발명에 따라서, 태그 내에 유효 비트 및 가장 최근에 사용된 비트를 가진 리네이밍 레지스터 파일, 매핑 툴, CPSR, 및 실행 유닛을 갖는 리네이밍 레지스터 파일 복합체에서 IRN 을 PRN 에 매핑하는 또 다른 예시적인 장치를 나타낸 그래픽 도면이다.
이제, 본 발명의 몇몇 실시형태가 도시되어 있는 첨부된 도면을 참조하여 본 발명을 더욱 완전히 설명할 것이다. 본 발명이 다양한 형태로 구체화될 수도 있지만, 본 명세서 내에서 설명되는 실시형태로 제한되는 것처럼 해석되어서는 안된다. 오히려, 이들 실시형태가 제공되어, 본 개시물이 완전하고 완성될 것이며, 당업자에게 본 발명의 범위를 충분히 전달할 것이다.
본 발명의 교시에 따라 동작되거나 그 교시에 따라 수행하는 컴퓨터 프로그램 코드 또는 "프로그램 코드" 는, 처음에 C, C++, JAVA®, Smalltalk, JavaScript®, Visual Basic®, TSQL, 펄 (Perl), 또는 다양한 다른 프로그래밍 언어와 같은 고급 프로그래밍 언어로 기입될 수도 있다. 이들 언어들 중 하나로 기입된 프로그램은 타겟 프로세서 구조로 컴파일된다. 또한, 타겟 프로세서 구조의 프로그램이 원시 어셈블러 언어로 직접 기입될 수도 있다. 원시 어셈블러 프로그램은 기계 수준의 2 진 명령어의 명령어 니모닉 표현을 이용한다. 본 명세서에서 사용된 프로그램 코드 또는 컴퓨터 판독가능 매체는, 포맷이 프로세서에 의해 이해가능한 목적 코드와 같은 기계어를 지칭한다.
도 1 은 본 발명의 일 실시형태가 유리하게 사용될 수도 있는 예시적인 무선 통신 시스템 (100) 을 도시한다. 설명을 목적으로, 도 1 은 3 개의 원격 유닛 (120, 130, 150) 및 2 개의 기지국 (140) 을 도시한다. 통상의 무선 통신 시스템은 다수의 원격 유닛 및 기지국을 가질 수도 있음을 알 것이다. 원격 유닛 (120, 130, 150) 은, 본 발명에 따라 프로그램 코드를 실행시키는 하드웨어 컴포넌트 (125A, 125B, 125C) 를 각각 포함한다. 도 1 은, 기지국 (140) 으로부터 원격 유닛 (120, 130, 150) 으로의 순방향 링크 신호 (180) 및 원격 유닛 (120, 130, 150) 으로부터 기지국 (140) 으로의 역방향 링크 신호 (190) 를 도시한다.
도 1 에서, 원격 유닛 (120) 은 이동 전화기인 것으로 나타나고, 원격 유닛 (130) 은 휴대용 컴퓨터인 것으로 나타나며, 원격 유닛 (150) 은 무선 로컬 루프 시스템 내의 위치 고정된 (fixed location) 원격 유닛으로서 나타난다. 예를 들어, 원격 유닛은 핸드헬드 개인 휴대 통신 (PCS) 유닛, 개인 휴대 정보 단말기와 같은 휴대용 데이터 유닛, 또는 미터 판독 장비 (meter reading equipment) 와 같은 위치 고정된 데이터 유닛일 수도 있다. 비록 도 1 은 본 발명의 교시에 따른 원격 유닛을 나타내고 있지만, 본 발명은 이들 예시적으로 도시된 유닛들로 한정되지 않는다. 본 발명은, 프로세서의 동작 모드에 따라 오퍼랜드 레지스터 어드레스 공간을 제한하는 명령어 세트 구조 및 CAM 기반 리네이밍 레지스터 파일을 갖는 파이프라인 프로세서를 이용하여 임의의 하드웨어 컴포넌트에서 적절히 사용될 수도 있다.
도 2 는 본 발명의 일 실시형태가 사용될 수도 있는 프로세서 복합체 (200) 의 블록도를 도시한다. 프로세서 복합체 (200) 는 프로그램 코드를 실행하기 위해 하드웨어 컴포넌트 (125A 내지 125C) 에서 적절히 사용될 수도 있다. 프로세서 복합체 (200) 는 파이프라인 프로세서 (210), 레벨 1 (L1) 데이터 캐시 (212), L1 명령어 캐시 (I 캐시; 214), 레벨 2 명령어 및 데이터 캐시 (L2 캐시; 216), 및 시스템 메모리 인터페이스 (218) 를 포함한다. 본 발명의 설명을 명료하게 하기 위해, 프로세서 복합체에 접속될 수도 있는 주변 디바이스가 도시되지 않는다. 파이프라인 프로세서 (210) 는, 그 파이프라인 프로세서 (210) 가 계층적 메모리 구조로부터 데이터 및 명령어를 각각 회수하는 L1 데이터 캐시 (212) 및 L1 I 캐시 (214) 에 직접 커플링된다.
프로세서의 명령어 세트 구조는, 각 4 비트 IRN 당 최대 16 개의 레지스터를 식별하는 4 비트 레지스터 오퍼랜드 어드레스 필드 (본 명세서 내에서는, IRN 필드라 지칭) 를 갖는 32 비트 명령어 포맷을 가질 수도 있다. 명령어 세트 구조는, 또한, 명령어의 4 비트 IRN 이 상이한 레지스터를 지칭하는 동작 모드를 규정할 수도 있다. 예를 들어, IRN 8 ~ 14 가 프로세서의 동작 모드에 따라 상이한 레지스터를 지칭할 수도 있다. 명령어 내의 IRN 의 해석 (interpretation) 시의 그러한 변동의 결과로서, 프로세서에는 4 비트 IRN 이 표시하는 것보다 더 많은 수의 레지스터가 요구된다. 예를 들어, 레지스터 파일 내의 32 개의 레지스터는 프로세서의 다양한 동작 모드에서 명령어의 4 비트 IRN 필드에 의해 어드레싱될 수 있는 레지스터들 모두를 지원할 필요가 있을 수도 있다. 동일 프로세서는 또한 예를 들어, 16 비트 명령어 포맷에서 3 비트 IRN 을 사용하는 명령어 포맷을 지원할 수도 있다. 3 비트 및 4 비트 IRN 이 예시적인 프로세서 (210) 에 의해 공급되는 이용가능한 32 개의 레지스터 모두를 지정하기에 불충분하기 때문에, 프로세서의 동작 모드의 인코딩 (220) 이 매핑 펑션 (222) 에서 사용되어 IRN 이 5 비트 LRN 으로 변환된다. 5 비트 LRN 은 레지스터 파일에서 구조의 한정된 세트의 레지스터들을 어드레싱하게 한다. 일반적으로, 매핑 펑션 (222) 은, IRN 공간의 서브세트가 상이한 레지스터에 매핑할 수도 있기 때문에, IRN 과 동작 모드 비트의 단순한 결합 (concatenation) 이 아니다. 예를 들어, 프로세서의 구조는 IRN R14 를 지정하여 동작 모드에 따라 다수의 상이한 레지스터에 매핑할 수도 있다.
전형적인 사용에서, 프로세서 (210) 는 일반적인 사용자 모드에서 사용자의 애플리케이션 코드를 주로 실행시키도록 예상될 수 있다. 가끔, 프로세서 (210) 는, 인터럽트 또는 예외를 처리하기 위해 상이한 동작 모드, 이를 테면 슈퍼바이져 모드 또는 다른 모드에서 코드를 실행시킨다. 빈번히 사용된 사용자 모드에 대해 효율적인 지원을 제공하는 것은 감소된 전력 동작에 유리하다. 효율성의 이유로, 프로세서 (210) 의 사용자 모드는, 레지스터 공간의 제한된 사용을, 0 ~ 15 의 범위에서 LRN 에 매핑한 IRN 을 갖는 레지스터에 지정한다. 다른 동작 모드, 즉, 비 사용자 모드는 0 ~ 31 의 LRN 범위 내의 레지스터를 이용한다. 따라서, 사용자 모드에 있을 때 프로세서 (210) 는 16 ~ 31 의 LRN 범위 내의 레지스터에 액세스하지 않는다. IRN 의 LRN 에의 일반적인 매핑은 프로세서의 동작 모드에 대한 지식을 요구하는데, 이는 CPSR (230; Current Processor Status Register) 의 비트 필드 인코딩 (220) 에 의해 규정될 수도 있다. 예를 들어, 오퍼랜드 어드레스 신호 (224) 에 대해 제공된 4 비트 IRN 는 CPSR (230) 을 사용하여 판독 포트 어드레스 출력 (226) 으로서 5 비트 LRN 으로 적절히 변환된다. 본 발명이 개개의 문맥에서 설명되지만 특별히 설명된 것과 다른 동작 모드 및 상이한 레지스터 할당에 적용가능 할 것임을 알 것이다.
파이프라인 프로세서, 이를 테면 프로세서 (210) 에는, 명령어 세트 구조에 의해 지원되는 것보다 더 많은 수의 물리적 레지스터가 구현된다. 프로세서 (210) 에 많은 수의 물리적 레지스터를 갖는 한가지 중요성은 동일 명령어 지정 레지스터의 다수의 값이 고유한 물리적 레지스터에서 동시에 보유될 수 있다는 것이다. 이런 접근법으로 인해, 명령어들 사이의 다수의 데이터 의존성이 해결되어, 파이프라인의 스톨 없이 순차적인 실행 장벽이 파괴되어 (break up) 성능이 향상될 수 있다.
프로세서 (210) 는 명령어 정렬 유닛 (232), 디코딩 유닛 (234), 리네이밍 레지스터 파일 (238), 현재의 프로세서 상태 레지스터 (CPSR; 230), 및 다수의 실행 유닛 (설명의 명료함을 위해, 다수의 실행 유닛 중 단지 단일의 실행 유닛 (244) 만을 도시) 으로 구성된다. 명령어가 인터페이스를 통한 메모리 계층 (memory hierarchy over interface; 240) 으로부터 명령어 정렬 유닛 (232) 에서 수신된다. 명령어가 적절히 정렬된 이후, 그들은 디코딩 유닛 (234) 에서 디코딩된다. 디코딩 동작은 제어 신호 (242) 를 사용하여 제어 정보를 실행 유닛 (244) 에 제공한다. 오퍼랜드 어드레스 신호 (224) 는 소스 및 타겟 오퍼랜드 IRN 어드레스를 매핑 유닛 (222) 에 제공하기 위해 사용된다. 매핑 유닛 (222) 은 현재의 프로세서 상태에 기초하여, 각 오퍼랜드 IRN 어드레스를 LRN 에 매핑한다. 예를 들어, 32 비트 명령어의 경우, 4 비트 A3-A0 오퍼랜드 소스 IRN 어드레스는 5 비트 A4-A0 LRN 으로 컨버팅된다. 유사하게, 16 비트 명령어의 경우, 3 비트 IRN 은 프로세서의 명령어 세트 구조에 의해 규정된 것처럼, 현재의 프로세서 상태에 의해 결정된 대로 5 비트 LRN 으로 컨버팅된다. 또한, 리네이밍 레지스터 파일 (238) 은 CPSR (230) 의 CPSR 출력 (246) 으로부터 현재의 프로세서 상태 비트 또는 비트들을 수신한다.
리네이밍 레지스터 파일 (238) 은 LRN 을 PRN 에 매핑한다. PRN 은 적절한 레지스터 값을 액세스하기 위해 사용되고 PRN 레지스터에 저장된 값은 판독 출력 포트 (250) 를 통해 출력된다. 또한, 명령어가 발행될 때, 결과의 레지스터가 리네이밍 레지스터 파일 (238) 에서 트리거링된다. 다수의 실행 파이프라인 단계 이후일 수도 있는 명령어의 실행 마지막에, 실행 유닛 (244) 에 의해 발생된 결과가 출력 버스 (258) 를 통해 리네이밍 레지스터 파일 (238) 로 전송되어, 이전에 태그된 결과의 PRN 어드레스에 저장된다.
도 3a 는 리네이밍 레지스터 파일 (238), 매핑 유닛 (301), CPSR (240), 및 실행 유닛 (244) 을 갖는 리네이밍 레지스터 파일 복합체 (350) 에서 IRN 을 PRN 에 매핑하는 예시적인 실시형태를 나타낸 것이다. 리네이밍 레지스터 파일 (238) 은 CAM 물리적 레지스터 파일 (PRF; 302), 및 레지스터 파일의 단일 판독 포트용 CAM 태그 어레이 (304) 를 포함한다. 매핑 유닛 (301) 은 CPSR 상태 (307) 에 기초하여, 포트 A IRN 입력 (305) 을 통해 제공된 IRN 을 LRN 출력 (306) 상의 LRN 에 매핑한다. CAM PRF (302) 는, 프로세서의 구조에 의해 지정된 것보다 더 많은 수의 레지스터, 예를 들어, PRN (308) 에 의해 각각 어드레싱가능한 64 개의 레지스터를 보유한다. CAM 태그 어레이는 64 개의 태그, 이를 테면 태그 (310), 및 각 태그와 관련된 비교 로직 (compare logic), 이를 테면 OR 게이트 (312) 및 비교 로직 (314) 을 보유한다. 태그 및 태그 비교 로직은 함께 태그 펑션 (316) 으로서 참조된다. 각 태그, 이를 테면 태그 (310) 는 CAM 태그 어레이 (304) 에 5 비트 LRN (A4-A0) 을 저장한다. 그 태그는 CAM PRF (302) 내의 레지스터, 이를 테면 레지스터 i (318) 와 관련된다. 전형적인 CAM 에서, 모든 태그에 대한 비교 로직은 태그들 모두와 인커밍 어드레스 (incoming address) 를 비교하여 인커밍 어드레스와 저장된 태그 사이에 매칭이 존재하는지 여부를 판정하도록 동작한다. 본 발명의 유리한 CAM 태그 어레이 (304) 에 있어서, 비교 로직은 프로세서의 동작 상태에 기초하여 비교하기 위해 선택적으로 인에이블링된다. 태그 비교 로직이 인에이블링되지 않는다면, 그것은 저전력 상태로 존재한다.
디코딩 이후, 이를 테면, 도 2 의 디코딩 단계 (234) 에 의해 수행된 이후, 발생된 LRN 출력 (306) 이 CAM 태그 어레이 (304) 에 입력된다. CPSR (240) 은, CAM 태그 어레이 (304) 에도 입력되는 사용자 부정 모드 (
Figure 112010020059089-pat00001
) 신호 (322) 를 출력한다. 사용자 부정 모드 (
Figure 112010020059089-pat00002
) 신호 (322) 및 5 비트 오퍼랜드 LRN 출력 (306) 은 각 태그 펑션, 이를 테면 태그 펑션 (316) 에 입력된다. 각 태그 펑션에서,
Figure 112010020059089-pat00003
신호 (322) 는 태그에 저장된 5 비트 LRN 의 최상위 비트의 인버스와 OR 된다. 예를 들어, 태그 펑션 (316) 에서,
Figure 112010020059089-pat00004
신호 (322) 및 A4 부정 (
Figure 112010020059089-pat00005
; 324) 이 OR 게이트 (312) 에 입력된다. A3-A0 비트는 태그 (310) 의 4 비트 어드레스부 (330) 에 저장된다. OR 게이트, 이를 테면 OR 게이트 (312) 의 용도는 신호를 발생시켜 각 태그 펑션 내의 비교 로직을 인에이블링하는 것이다. 본 예의 프로세서 (210) 의 경우, 각 태그 펑션 내의 비교 로직 모두는 프로세서가 사용자 모드에 있지 않다면 동작한다.
태그 펑션 (316) 에서, 사용자 부정 모드 (
Figure 112010020059089-pat00006
) 신호 (322) 가 1 이고 OR 게이트 (312) 의 출력이 1 이므로, 프로세서가 사용자 모드에 있지 않을 때 비교기 (314) 를 인에이블링한다. 프로세서가 사용자 모드에 있다면,
Figure 112010020059089-pat00007
신호 (322) 는 0 일 것이다. 태그 어드레스 A4 의 최상위 비트가 0 이고, A4 부정 신호 (334) 가 1 이라면, 그 후 OR 게이트 (312) 는 1 인 인에이블 신호 (332) 를 출력하여 0 과 같은 A4 를 갖는 LRN 0 ~ 15 에 대한 비교 로직 (314) 을 인에이블링할 것이다. 대안으로는, 프로세서가 사용자 모드에 있다면,
Figure 112010020059089-pat00008
신호 (322) 는 0 일 것이고 LRN 태그 어드레스 A4 의 최상위 비트가 1 이고, LRN 16 ~ 31 에 대해, A4 부정 신호 (334) 가 0 이라면, OR 게이트 (312) 는 인에이블 신호 (332) 를 0 으로서 출력하여 비교 로직 (314) 을 저전력 상태로 유지할 것이다. 인에이블 신호 (332) 로직 펑션은 다음의 수식, 즉,
Figure 112010020059089-pat00009
= 인에이블 신호 (332) 에 의해 주어지며, 여기서 심볼
Figure 112010020059089-pat00010
은 로직의 OR 연산을 나타낸다.
Figure 112010020059089-pat00011
= 인에이블 신호 (332) 펑션은 수식, 즉
Figure 112010020059089-pat00012
= 인에이블 신호 (332) 를 이용하는 NAND 구현과 등가이며, 여기서 심볼
Figure 112010020059089-pat00013
은 괄호 안의 값을 인버팅하는 로직의 NOT 연산을 나타내고 심볼
Figure 112010020059089-pat00014
은 로직의 AND 연산을 나타낸다.
비교 로직 구현에 따라, 상술된 인에이블 신호 (332) 대신에 디스에이블 신호가 사용될 수도 있다. 디스에이블 신호는, 다음의 수식, 즉,
Figure 112010020059089-pat00015
= 디스에이블 신호로 주어진 것처럼, OR 게이트 (312) 를 AND 게이트로 대체하고, 일 입력으로서 A4 신호를 제공하고, 제 2 입력으로서 사용자 모드 U 신호를 제공함으로써 획득될 수 있다. 이 경우에, 디스에이블 신호는 단지, 프로세서가 사용자 모드에 있고 태그 LRN 이 16 내지 31 사이에 있다면 액티브일 것이다.
태그 비교 로직이 인에이블링되고, 5 비트 오퍼랜드 LRN 어드레스 (306) 와 저장된 LRN 태그 A4 (324) A3-A0 (330) 사이에 매칭이 존재하는 경우에, 히트가 발생하는 것으로 알려져 있다. 히트 신호 (340) 에 의해 로직으로 표시된 히트 상황은, 매칭된 태그와 관련된 PRN 레지스터 (318) 를 CAM PRF (302) 로부터 액세스하게 하여, 입력으로서 판독 포트 (344) 를 통해 실행 유닛 (244) 에 출력하게 한다.
도 3b 는 다수의 포트 어드레스 (305 및 355) 를 이용하여, 리네이밍 레지스터 파일 (358), 다수의 매핑 유닛 (301 및 360), CPSR (240), 및 실행 유닛 (244) 을 갖는 리네이밍 레지스터 파일 복합체 (300) 에서 IRN 을 PRN 에 매핑하는 것을 나타낸 것이다. 비록, 도 3b 에는 단지 리네이밍 레지스터 파일 (358) 로의 2 개의 오퍼랜드 판독 포트만이 도시되어 있지만, 리네이밍 레지스터 파일 복합체 (300) 가 예를 들어 프로세서에, 부가적인 오퍼랜드 판독 포트, 이를 테면 6 개의 동시 판독 포트를 지원하기 위해 연장될 수 있다는 것을 이해한다.
각 판독 포트의 경우, 포트 A IRN (305) 을 출력 (306) 상의 LRN 에 매핑하기 위한 매핑 유닛 (301) 및 포트 B IRN (355) 을 출력 (364) 상의 LRN 에 매핑하기 위한 매핑 유닛 (360) 과 같은 분리된 매핑 유닛이 제공된다. 판독 포트 A (RPA; 368) 및 판독 포트 B (RPB; 370) 는, 판독 포트들이 사용되고 있지 않다면, 각각, 태그 펑션 인에이블 로직 AND 게이트 (372 및 374) 에서 사용된 신호들을 인에이블링하여, 비교기 (314 및 376) 를 디스에이블링한다.
태그 (310) 는 양자의 비교기 (314 및 376) 에 어드레스 비트 A4 (324) 및 A3-A0 (330) 을 공급한다. 판독 포트가 사용될 것임을 표시하는 인에이블 신호 RPA (368), RPB (370) 가 액티브인 경우, 양자의 비교기는, 도 3a 의 레지스터 파일 리네이밍 복합체 (300) 에 대해 사전에 설명된 것처럼, 양자의 비교기에 동일한 절전 특성을 제공하는
Figure 112010020059089-pat00016
= 인에이블 신호 (332) 를 이용하여, 최상위 비트 A4 및 CPSR 동작 모드 U 에 따라 인에이블링된다. 각 태그에 대한 다수의 비교기로 인해, 다수의 히트, 이를 테면, 히트 신호 (340 및 380) 는 다수의 산술 연산에서 발생할 수도 있는데, 이를 테면, R7*R7 을 곱하여 R72 을 획득할 때 발생할 수도 있다. 다수의 히트로 인해, 동일한 레지스터, 이를 테면, 레지스터 i (318) 는 다수의 포트, 이를 테면 판독 포트 A (344) 및 판독 포트 B (384) 에 출력된다.
도 4 는, 본 발명에 따라서, 리네이밍 레지스터 파일 내의 CAM 태그 비교기를 선택적으로 인에이블링하기 위한 프로세서 (400) 를 나타낸 것이다. 제 1 단계 405 는, 명령어가 발생되고 명령어가 리네이밍 레지스터 파일, 이를 테면, 리네이밍 파일 (358) 로부터 판독되도록 소스 오퍼랜드 IRN 을 지정하는 경우에 발생한다. 다음 단계 410 에서, IRN 은, 현재의 프로세서 상태 레지스터 (CPSR), 이를 테면, CPSR (240) 에 의해 제공되는 것처럼, 프로세서의 동작 모드에 따라, 매핑 유닛, 이를 테면, 매핑 유닛 (301) 에서 LRN 에 매핑된다. 단계 415 에서, 적절한 판독 포트 CAM 태그 펑션, 이를 테면, 태그 펑션 (316) 은 CAM 태그 어레이, 이를 테면, CAM 태그 어레이 (304) 에서 판독 포트 인에이블 신호를 이용하여 선택된다. 선택된 판독 포트 태그 펑션들 모두에 걸쳐 병렬로 발생하는 단계 420 에서, CPSR 로부터의 사용자 모드 (U) 및 태그의 최상위 비트 (msb) 는, 모두가 1 인 액티브인지 테스트된다. 태그 msb 및 사용자 모드 모두가 태그 펑션에서 액티브라면, 태그 펑션은 단계 425 에서 CAM 태그 비교기를 디스에이블링한다. 단계 430 에서, 태그 펑션은 각 디스에이블링된 CAM 태그 비교기를 위해 중단되고, 디스에이블링된 비교기는 저전력 상태로 유지된다.
단계 420 에서, 태그 msb 및 사용자 모드 모두가 태그 펑션에서 액티브가 아니라면, 태그 펑션은 단계 435 에서 CAM 태그 비교기를 인에이블링한다. 인에이블링된 CAM 태그 비교기 모두에 걸쳐 병렬로 발생하는 단계 440 에서, LRN 은 비교기, 이를 테면, 비교기 (314) 에 의해 태그, 이를 테면, 태그 (310) 와 비교된다. LRN 이 태그와 매칭하지 않는다면, 태그 펑션은 단계 445 에서 중단된다. LRN 은 태그와 매칭한다면, 히트 신호 (340) 에 의해 표시된 것과 같은 히트가 발생하고, 태그와 관련된 물리적 레지스터는 단계 450 에서 물리적 레지스터 파일 (PRF), 이를 테면, CAM PRF (302) 에서 판독된다. 단계 455 에서, 판독된 레지스터 값은 판독 포트, 이를 테면 판독 포트 (344) 에 의해, 적절한 실행 유닛, 이를 테면, 실행 유닛 (244) 에 공급된다.
도 5 는 태그, 이를 테면, 태그 (510) 내에 유효 비트 (502) 및 가장 최근에 사용된 (MR) 비트 (504) 를 가진 리네이밍 레지스터 파일 (538), 매핑 유닛 (301), CPSR (240), 및 실행 유닛 (244) 을 갖는 리네이밍 레지스터 파일 복합체 (500) 에서 IRN 을 PRN 에 매핑하는 또 다른 양태를 나타낸 것이다. 태그와 태그 비교 로직은 함께 태그 펑션 (516) 으로 지시된다. 유효 비트 (502) 는 유효 비트가 0 일 때 태그와 관련된 PRN 레지스터가 유효가 아님을 표시한다. 유효 비트가 0 일 때, 비교 로직은 인에이블링되지 않고 저전력 상태로 유지된다. MR 비트 (504) 는 태그와 관련된 PRN 레지스터가 가장 최근에 발생된 값을 보유하고 있는지 여부를 표시한다. 명령어가 결과의 LRN 의 특정을 발행할 때, 물리적 레지스터 엔트리가 할당되어 데이터 값이 수신되고 태그는 LRN 으로 기입된다. 그 태그는, 결과의 데이터가 파이프라인에서 몇 사이클 후에 기입될 때 엔트리에 대해 MR 을 설정함으로써 최근의 것으로 마크된다. 또한, 개개의 LRN 어드레스에 대한 최근의 데이터 값을 이전에 포함한 엔트리에 대한 MR 비트 (504) 가 재설정된다. MR 비트 (504) 가 개개의 엔트리에 대해 0 이라면, 상기 엔트리에 대한 비교 로직이 인에이블링되지 않고 저전력 상태로 유지된다.
리네이밍 레지스터 파일 복합체 (500) 는 유효 비트 (502), MR 비트 (504), 및 비교 로직을 인에이블링하기 위한 새로운 로직을 부가한 도 3 의 리네이밍 레지스터 파일 복합체 (300) 와 유사하다. 새로운 로직은 OR 게이트 (312) 와 비교 로직 (314) 사이에 3 개의 입력 AND 게이트 (520) 를 사용한다. AND 게이트 (520) 로의 일 입력은 MR 비트 (504) 이고, 제 2 입력은 유효 비트 (502) 이며, 제 3 비트는 OR 게이트 출력 (332) 이다. AND 게이트 (520) 로의 3 개의 입력 중 하나 이상이 0 일 때마다, 비교 로직은 저전력 상태로 유지된다. 비교 로직을 인에이블링하기 위하여, 데이터 값 (318) 이 유효해야 하고, V =1, 최근의 데이터, MR =1, 및 OR 게이트 (312) 출력이 1 이어야 하며, 이로써, AND 게이트 출력 (524) 을 1 이 되게 하고 비교 로직 (314) 을 인에이블링하게 한다.
평균적으로, 사용자 모드가 동작 시에 가장 높게 사용된 모드이고, 사용자 모드가 레지스터 어드레스 공간을 0 ~ 15 로 제한하기 때문에, 각 판독 포트에 대한 CAM 태그 어레이 (304) 내의 64 개의 비교 로직 펑션들 중 48 개는 보통 인에이블링되지 않고 저전력 상태로 유지된다. 이것은, 모든 64 개의 로직 펑션이 프로세서의 동작 모드에 관계없이 각 액세스에 이용되는 설계와 비교하여 CAM 태그 어레이 전력에 있어서 상당한 절약을 나타낸다.
OR 게이트 (312) 를 이용하는 대안의 접근법은, 각 태그 펑션, 이를 테면, 태그 펑션 (316 및 516) 에서 모드 선택된 (MS) 래치를 구현하는 것이다. MS 래치는 프로세서에 의해 수행되는 각 모드 변경에서 설정 또는 재설정될 수 있는데, 이는, 비교적 드믄 사건이며, 따라서, MS 래치의 상태를 변경하는 것은 일 사이클 또는 2 사이클이 걸릴 수 있고, 이로써 관측될 작은 모드 변경 레이턴시를 요구한다. 새로운 프로세서 모드 내의 엔트리에 따라, 각 태그 엔트리는 새로운 모드를 평가하고 MS 래치를 적절히 설정 또는 재설정할 것이다. 그 후, MS 래치 출력은, 엔트리가 단지 현재의 프로세서 모드와 다른 모드로부터 액세스가능하기 때문에, 그 엔트리가 매칭할 수 없다면, 비교 로직을 저전력 상태로 유지하기 위해 사용될 수 있다.
본 발명은 현재 바람직한 상황에서 개시되고 있지만, 본 교시는 다음에 오는 청구범위 및 이런 개시물과 일치하는 다양한 상황에 적용될 수도 있음을 이해한다.
예를 들어, 레지스터 파일 사용을 동작 모드에 따라 배타적인 세트의 레지스터로 분할하는 대안의 구조에 있어서, 다수의 리네이밍 레지스터 파일이 사용될 수도 있다. 비순차적 실행의 딥 파이프라인 프로세서는 2 개의 별개의 동작 모드에 따라 규정될 수도 있다. 예를 들어, 시스템, 인터럽트, 및 예외를 처리하기 위한 사용자 모드와 슈퍼바이져 모드와 같은 2 개의 동작 모드가 사용될 수도 있다. 프로세서 구현에서, 하나의 리네이밍 레지스터 파일은 사용자 모드용으로 사용될 수도 있고 하나의 리네이밍 레지스터 파일은 슈퍼바이져 모드용으로 사용될 수도 있다. 이런 대안의 구조의 경우, 사용자 모드는 명령어 세트에 의해 지정되는 것처럼 16 개의 레지스터를 지원한다. 사용자 모드 리네이밍 레지스터 파일은 부가적인 레지스터, 예를 들어, 16 개의 부가적인 레지스터를 요구하여 비순차적 실행 및 딥 파이프라인으로 인한 인-플라이트 (in-flight) 명령어를 지원할 것이다. 슈퍼바이져 모드에서, 슈퍼바이져 모드 리네이밍 레지스터 파일은 분리된 세트의 16 개의 구조화된 레지스터를 지원할 것이고 비순차적 실행 및 딥 파이프라인으로 인한 16 개의 인-플라이트 레지스터를 가질 것이다. 총 32 개의 사용자 모드 물리적 레지스터는 사용자 모드 리네이밍 레지스터 파일에서 사용될 것이다. 총 32 개의 슈퍼바이져 모드 물리적 레지스터는 슈퍼바이져 모드 리네이밍 레지스터 파일에서 사용될 것이다. 동작 시에, 단 하나의 리네이밍 레지스터 파일은 동작 모드에 따라 액티브일 것이고 다른 리네이밍 레지스터 파일은 저전력 상태로 존재할 것이다. 특정 설계 애플리케이션에 적합시키기 위한 다른 변형 및 개조가 당업자에게 명백할 것이다.

Claims (13)

  1. CAM (Content Addressable Memory) 의 엘리먼트의 어드레스인, 상기 CAM 내에 저장된 태그로서, 상기 태그 내의 속성이 프로세서의 동작 상태를 기술하는, 상기 태그;
    상기 프로세서에 의해 발생된 어드레스와 상기 태그를 비교하는 태그 비교기; 및
    상기 프로세서의 현재의 동작 상태와 상기 속성을 비교하는 동작 상태 비교기를 포함하며,
    상기 태그 비교기는, 상기 프로세서의 현재의 동작 상태와 상기 속성의 비교 결과에 따라 인에이블링 또는 디스에이블링되는, CAM 제어 장치.
  2. 제 1 항에 있어서,
    상기 태그 비교기는, 상기 속성이 상기 프로세서의 현재의 동작 상태와 매칭한다면 디스에이블링되는, CAM 제어 장치.
  3. 제 1 항에 있어서,
    상기 태그 비교기는, 디스에이블링일 때 저전력 상태로 존재하는, CAM 제어 장치.
  4. 제 1 항에 있어서,
    상기 태그 비교기는, 상기 속성이 상기 프로세서의 현재의 동작 상태와 매칭하지 않는다면 인에이블링되는, CAM 제어 장치.
  5. 제 1 항에 있어서,
    인에이블링일 때의 상기 태그 비교기는, 상기 태그가 상기 프로세서에 의해 발생된 어드레스와 매칭할 때 히트 표시 (hit indication) 를 발생시키는, CAM 제어 장치.
  6. 제 5 항에 있어서,
    상기 히트 표시 시에, 매칭된 태그와 관련된 물리적 레지스터가 선택되도록 동작하는 복수의 물리적 레지스터를 보유하는 CAM 물리적 레지스터 파일을 더 포함하는, CAM 제어 장치.
  7. 제 1 항에 있어서,
    상기 속성은 상기 태그의 최상위 비트인, CAM 제어 장치.
  8. 제 1 항에 있어서,
    상기 프로세서의 현재의 동작 상태는 현재의 프로세서 상태 레지스터에 저장된 비트에 의해 표시되는, CAM 제어 장치.
  9. 제 1 항에 있어서,
    상기 프로세서에 의해 발생된 어드레스는 LRN (Logical Register Number) 인, CAM 제어 장치.
  10. 제 9 항에 있어서,
    상기 LRN 은, 상기 프로세서의 현재의 동작 상태에 따라 IRN (Instruction Register Number) 을 LRN 에 매핑함으로써 획득되는, CAM 제어 장치.
  11. CAM 기반 레지스터 파일에서 디스에이블링될 레지스터 어드레스 비교기를 선택하는 방법으로서,
    상기 CAM 기반 레지스터 파일과 관련하여 사용될 프로세서의 상태에 대한 지식에 기초하여, 어떤 레지스터 어드레스 비교기가 소정의 액세스에 대해 매칭할 수 없는지를 식별하는 단계; 및
    매칭할 수 없는 것으로 식별된 상기 레지스터 어드레스 비교기를, 이들이 저전력 상태로 들어가도록 제어하는 단계를 포함하고,
    상기 매칭할 수 없는 것으로 식별된 상기 레지스터 어드레스 비교기를 제어하는 단계는,
    프로세서의 현재의 동작 상태와 상기 CAM 의 태그의 속성을 비교하는 단계로서, 상기 CAM 의 태그의 속성은 프로세서의 동작 상태를 기술하는, 상기 비교 단계; 및
    상기 프로세서의 현재의 동작 상태와 상기 CAM 의 태그의 속성의 비교에 따라, 레지스터 어드레스 비교기를 디스에이블링되도록 제어하는 단계를 더 포함하는, 레지스터 어드레스 비교기 선택 방법.
  12. 제 11 항에 있어서,
    프로세서의 현재의 동작 상태와 상기 CAM 의 태그의 속성을 비교하는 단계; 및
    태그의 속성이 상기 프로세서의 현재의 동작 상태와 매칭하는 레지스터 어드레스 비교기로서 소정의 액세스에 대해 매칭할 수 없는 레지스터 어드레스 비교기를 식별하는 단계를 더 포함하는, 레지스터 어드레스 비교기 선택 방법.
  13. 제 11 항에 있어서,
    프로세서에서, LRN 을 발생시키는 단계; 및
    상기 CAM 의 태그와 비교되도록 상기 LRN 을 상기 레지스터 어드레스 비교기에 공급하는 단계를 더 포함하는, 레지스터 어드레스 비교기 선택 방법.
KR1020107006898A 2005-03-03 2006-03-03 기지의 프로세서 상태에 기초하여 cam 리네이밍 레지스터 파일 내의 비교기를 선택적으로 인에이블링하는 절전 방법 및 장치 KR101200737B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/072,849 US7263577B2 (en) 2005-03-03 2005-03-03 Power saving methods and apparatus to selectively enable comparators in a CAM renaming register file based on known processor state
US11/072,849 2005-03-03
PCT/US2006/007608 WO2006094197A2 (en) 2005-03-03 2006-03-03 Power saving methods and apparatus to selectively enable comparators in a cam renaming register file based on known processor state

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020077022476A Division KR100977687B1 (ko) 2005-03-03 2006-03-03 기지의 프로세서 상태에 기초하여 cam 리네이밍레지스터 파일 내의 비교기를 선택적으로 인에이블링하는절전 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20100038239A KR20100038239A (ko) 2010-04-13
KR101200737B1 true KR101200737B1 (ko) 2012-11-13

Family

ID=36648662

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020077022476A KR100977687B1 (ko) 2005-03-03 2006-03-03 기지의 프로세서 상태에 기초하여 cam 리네이밍레지스터 파일 내의 비교기를 선택적으로 인에이블링하는절전 방법 및 장치
KR1020107006898A KR101200737B1 (ko) 2005-03-03 2006-03-03 기지의 프로세서 상태에 기초하여 cam 리네이밍 레지스터 파일 내의 비교기를 선택적으로 인에이블링하는 절전 방법 및 장치

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020077022476A KR100977687B1 (ko) 2005-03-03 2006-03-03 기지의 프로세서 상태에 기초하여 cam 리네이밍레지스터 파일 내의 비교기를 선택적으로 인에이블링하는절전 방법 및 장치

Country Status (10)

Country Link
US (1) US7263577B2 (ko)
EP (1) EP1861765B1 (ko)
JP (2) JP2008533569A (ko)
KR (2) KR100977687B1 (ko)
CN (1) CN101164035B (ko)
CA (1) CA2599623C (ko)
IL (1) IL185591A0 (ko)
RU (1) RU2389059C2 (ko)
TW (1) TWI390393B (ko)
WO (1) WO2006094197A2 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110047357A1 (en) * 2009-08-19 2011-02-24 Qualcomm Incorporated Methods and Apparatus to Predict Non-Execution of Conditional Non-branching Instructions
KR101139207B1 (ko) * 2010-09-06 2012-04-26 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작 방법
US9170638B2 (en) * 2010-12-16 2015-10-27 Advanced Micro Devices, Inc. Method and apparatus for providing early bypass detection to reduce power consumption while reading register files of a processor
US8914616B2 (en) * 2011-12-02 2014-12-16 Arm Limited Exchanging physical to logical register mapping for obfuscation purpose when instruction of no operational impact is executed
US9542194B2 (en) 2014-09-10 2017-01-10 Arm Limited Speculative register file read suppression
US10331449B2 (en) * 2016-01-22 2019-06-25 Arm Limited Encoding instructions identifying first and second architectural register numbers

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5493669A (en) * 1993-03-03 1996-02-20 Motorola, Inc. Data processor for simultaneously searching two fields of the rename buffer having first and second most recently allogated bits
US6317819B1 (en) * 1996-01-11 2001-11-13 Steven G. Morton Digital signal processor containing scalar processor and a plurality of vector processors operating from a single instruction
JP3058123B2 (ja) * 1997-06-10 2000-07-04 日本電気株式会社 アドレス比較回路
JPH11134256A (ja) * 1997-10-31 1999-05-21 Nec Corp アドレス変換回路
US6212619B1 (en) * 1998-05-11 2001-04-03 International Business Machines Corporation System and method for high-speed register renaming by counting
JP3798563B2 (ja) * 1999-01-06 2006-07-19 株式会社東芝 命令キャッシュメモリ
JP2000267932A (ja) * 1999-03-17 2000-09-29 Matsushita Electric Ind Co Ltd タグアドレス比較装置
US6571332B1 (en) * 2000-04-11 2003-05-27 Advanced Micro Devices, Inc. Method and apparatus for combined transaction reordering and buffer management
JP2002197873A (ja) * 2000-12-27 2002-07-12 Kawasaki Microelectronics Kk 連想メモリ
US6918071B2 (en) * 2001-04-20 2005-07-12 Sun Microsystems, Inc. Yield improvement through probe-based cache size reduction
US7114026B1 (en) * 2002-06-17 2006-09-26 Sandeep Khanna CAM device having multiple index generators
US6944714B2 (en) * 2002-07-30 2005-09-13 Hewlett-Packard Development Company, L.P. Method and apparatus for saving microprocessor power when sequentially accessing the microprocessor's instruction cache
JP2004164395A (ja) * 2002-11-14 2004-06-10 Renesas Technology Corp アドレス変換装置
US7051221B2 (en) * 2003-04-28 2006-05-23 International Business Machines Corporation Performance throttling for temperature reduction in a microprocessor
EP1684180A4 (en) * 2003-11-12 2008-10-29 Matsushita Electric Ind Co Ltd CACHE MEMORY AND CONTROL PROCEDURE THEREFOR
US7353347B2 (en) * 2004-09-23 2008-04-01 Mathstar, Inc. Reconfigurable state machine

Also Published As

Publication number Publication date
CA2599623C (en) 2011-09-06
KR20070116059A (ko) 2007-12-06
WO2006094197A2 (en) 2006-09-08
JP2008533569A (ja) 2008-08-21
RU2389059C2 (ru) 2010-05-10
TW200707179A (en) 2007-02-16
TWI390393B (zh) 2013-03-21
RU2007136486A (ru) 2009-04-10
CN101164035B (zh) 2014-04-16
CA2599623A1 (en) 2006-09-08
US20060206688A1 (en) 2006-09-14
CN101164035A (zh) 2008-04-16
US7263577B2 (en) 2007-08-28
IL185591A0 (en) 2008-01-06
EP1861765B1 (en) 2019-05-22
JP5680574B2 (ja) 2015-03-04
EP1861765A2 (en) 2007-12-05
WO2006094197A3 (en) 2007-01-04
KR20100038239A (ko) 2010-04-13
KR100977687B1 (ko) 2010-08-24
JP2012119006A (ja) 2012-06-21

Similar Documents

Publication Publication Date Title
US20210141683A1 (en) Hardware apparatuses and methods for memory corruption detection
US6178482B1 (en) Virtual register sets
KR101183651B1 (ko) 실행 유닛 내의 데이터 전달을 위한 시스템 및 방법
US20070118720A1 (en) Technique for setting a vector mask
US8589665B2 (en) Instruction set architecture extensions for performing power versus performance tradeoffs
JP5680574B2 (ja) 周知のプロセッサーステートに基いてcamリネーミングレジスタファイルにおいてコンパレーターを選択的にイネーブルにするための電力節約方法および装置
US5940876A (en) Stride instruction for fetching data separated by a stride amount
US20180365022A1 (en) Dynamic offlining and onlining of processor cores
US5958045A (en) Start of access instruction configured to indicate an access mode for fetching memory operands in a microprocessor
US20170277537A1 (en) Processing mixed-scalar-vector instructions
CN112559389A (zh) 存储控制装置、处理装置、计算机系统和存储控制方法
US11132201B2 (en) System, apparatus and method for dynamic pipeline stage control of data path dominant circuitry of an integrated circuit
US20030182540A1 (en) Method for limiting physical resource usage in a virtual tag allocation environment of a microprocessor
CN111752889A (zh) 用于具有指令再循环的多级保留站的方法和设备
US11269649B2 (en) Resuming beats of processing of a suspended vector instruction based on beat status information indicating completed beats
US6957319B1 (en) Integrated circuit with multiple microcode ROMs
US20080244242A1 (en) Using a Register File as Either a Rename Buffer or an Architected Register File
US11775310B2 (en) Data processing system having distrubuted registers
US11275588B2 (en) Context save with variable save state size
CN111512309A (zh) 用于抵抗交叉特权线性探查的系统、方法和装置

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20110225

Effective date: 20120831

S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150930

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161028

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170929

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190924

Year of fee payment: 8