KR20180015660A - 가변 길이 명령 처리 모드 - Google Patents

가변 길이 명령 처리 모드 Download PDF

Info

Publication number
KR20180015660A
KR20180015660A KR1020177036366A KR20177036366A KR20180015660A KR 20180015660 A KR20180015660 A KR 20180015660A KR 1020177036366 A KR1020177036366 A KR 1020177036366A KR 20177036366 A KR20177036366 A KR 20177036366A KR 20180015660 A KR20180015660 A KR 20180015660A
Authority
KR
South Korea
Prior art keywords
mode
program instructions
processing
instruction
circuit
Prior art date
Application number
KR1020177036366A
Other languages
English (en)
Other versions
KR102528699B1 (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 KR20180015660A publication Critical patent/KR20180015660A/ko
Application granted granted Critical
Publication of KR102528699B1 publication Critical patent/KR102528699B1/ko

Links

Images

Classifications

    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • 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/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • 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/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30112Register structure comprising data of variable length
    • 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/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • 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/3802Instruction prefetching
    • 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/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • 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/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Power Sources (AREA)

Abstract

데이터 처리장치(2)는 프로세싱 동작을 수행할 준비가 된 제1 세트의 처리회로(8, 12, 18, 20, 22)를 갖는 동작의 제1 모드에서 및 프로세싱 동작을 수행할 준비가 된 제2 세트의 처리회로(8, 12, 14, 18, 20, 22, 24)를 갖는 동작의 제2 모드에서 동작한다. 지원된 명령 세트 내의 프로그램 명령들의 제1의 적절한 서브세트(32)는 제1 모드 및 제2 모드 중 선택 가능한 하나를 이용해서 프로세서에 의해 처리된다. 명령 세트 내의 프로그램 명령들의 제2의 적절한 서브세트(34)는 제2 모드에서 동작하는 프로세서에 의해 처리되도록 요구된다. 동작 모드에서 비활성 상태인 처리회로(14, 24)는 저전력 상태에 놓일 수 있다.

Description

가변 길이 명령 처리 모드
본 개시는 데이터 처리 시스템에 관한 것이다. 특히, 본 개시는 프로그램 명령들의 실행을 지원하기 위한 하드웨어의 모달 제어(modal control)에 관한 것이다.
다수의 명령 세트를 지원하는 데이터 처리 시스템을 제공하는 것이 알려져 있다. 예를 들어, England Cambridge의 ARM Limited에 의해서 설계된 것과 같은 처리 시스템은 ARM 및 Thumb 명령 세트를 모두 지원할 수 있다.
일 국면에서 볼 때, 본 개시는, 데이터를 처리하는 장치를 제공하고, 이 장치는
명령 세트의 프로그램 명령들에 의해 특정된 것과 같이 프로세서의 레지스터 파일 내에 저장된 오퍼랜드들에 대하여 프로세싱 동작들을 수행하는 프로세서를 구비하고, 상기 프로세서는 적어도 프로세싱 동작들을 수행할 준비가 된 제1 세트의 활성 처리회로를 갖는 동작의 제1 모드와 프로세싱 동작들을 수행할 준비가 된 제2 세트의 활성 처리회로를 갖는 동작의 제2 모드에서 동작하고, 상기 제2 세트의 활성 처리회로는 상기 제1 세트의 활성 처리회로와 상이하며,
상기 명령 세트 내의 프로그램 명령들의 제1의 적절한 서브세트는 상기 제1 모드 및 상기 제2 모드 중 선택 가능한 하나에서 동작하는 상기 프로세서에 의해 처리되고,
상기 명령 세트 내의 프로그램 명령들의 제2의 적절한 서브세트는 상기 제2 모드에서 동작하는 상기 프로세서에 의해 처리되도록 요구된다.
또 다른 국면에서 볼 때, 본 개시는 데이터를 처리하는 장치를 제공하고, 상기 장치는,
명령 세트의 프로그램 명령들에 의해 특정된 것과 같이 프로세서 수단의 레지스터 파일 내에 저장된 오퍼랜드들에 대하여 프로세싱 동작들을 수행하는 처리 수단을 구비하고, 상기 처리 수단은 적어도 프로세싱 동작들을 수행하기 위한 제1 세트의 활성 처리수단을 갖는 동작의 제1 모드와 프로세싱 동작들을 수행하기 위한 제2 세트의 활성 처리수단을 갖는 동작의 제2 모드에서 동작하고, 상기 제2 세트의 활성 처리수단은 상기 제1 세트의 활성 처리수단과 상이하며,
상기 명령 세트 내의 프로그램 명령들의 제1의 적절한 서브세트는 상기 제1 모드 및 상기 제2 모드 중 선택 가능한 하나에서 동작하는 상기 처리 수단에 의해 처리되고,
상기 명령 세트 내의 프로그램 명령들의 제2의 적절한 서브세트는 상기 제2 모드에서 동작하는 상기 처리 수단에 의해 처리되도록 요구한다.
추가의 국면에서 볼 때, 본 개시는 데이터를 제어하는 방법을 제공하고, 상기 방법은,
적어도 프로세싱 동작들을 수행하기 위한 제1 세트의 활성 처리회로를 갖는 동작의 제1 모드와 프로세싱 동작들을 수행하기 위한 제2 세트의 활성 처리회로를 갖는 동작의 제2 모드를 사용하여 명령 세트의 프로그램 명령들에 의해 특정된 것과 같이 프로세서의 레지스터 파일 내에 저장된 오퍼랜드들에 대하여 프로세싱 동작들을 수행하는 단계를 포함하고, 상기 제2 세트의 활성 처리회로는 상기 제1 세트의 활성 처리회로와 상이하며,
상기 명령 세트 내의 프로그램 명령들의 제1의 적절한 서브세트는 상기 제1 모드 및 상기 제2 모드 중 선택 가능한 하나를 사용하여 처리되고,
상기 명령 세트 내의 프로그램 명령들의 제2의 적절한 서브세트는 상기 제2 모드를 사용하여 처리되도록 요구한다.
실시 예들은 첨부된 도면을 참조하여 단지 예로서 설명될 수 있다.
도 1은 동작의 제1 모드 및 동작의 제2 모드를 갖는 데이터 처리장치를 개략적으로 도시한 것이다.
도 2는 프로그램 명령들의 제1의 적절한 서브세트 및 프로그램 명령들의 제2의 적절한 서브세트를 포함하는 명령 세트를 개략적으로 도시한 것이다.
도 3은 상이한 형태의 모드 스위칭 명령을 개략적으로 도시한 것이다.
도 4는 인터럽트(interrupt)에 의해 트리거된 모드들 간의 스위칭을 개략적으로 설명한 흐름도이다.
도 5는 스위치 명령에 의해 트리거된 모드들 간의 스위칭을 개략적으로 도시한 흐름도이다.
도 6은 바람직한 메트릭(metric) 값에 의해 트리거된 모드들 간의 스위칭을 개략적으로 도시한 흐름도이다.
도 7은 지원되지 않는 명령에 의해 트리거된 모드들 간의 스위칭을 개략적으로 도시한 흐름도이다.
도 1은 메모리(6)에 결합된 프로세서(4)를 구비하는 데이터 처리장치(2)를 개략적으로 도시한 것이다. 프로세서(4)는 메모리(6)로부터 실행을 위한 프로그램 명령들을 페치(fetch)하기 위한 페치 회로(8)를 포함한다. 페치 회로(8)는 동작의 제1 모드 또는 동작의 제2 모드 중 어느 하나에서 동작하기 위한 모드 신호에 의해 제어된다. 동작의 제1 모드에서는, 페치 회로(8)는 제1 페치 레이트(fetch rate)로 메모리(6)로부터 프로그램 명령들을 페치하기 위한 제1 페치 회로로서 기능한다. 제2 모드에서는, 페치 회로(8)는 제2 페치 레이트로 메모리(6)로부터 프로그램 명령들을 페치하기 위한 제2 페치 회로로서 기능한다. 페치 회로(8)는 페치 회로에 의해 페치된 프로그램 명령들이 저장되는 명령 페치 버퍼(10)를 포함한다. 제1 모드에서는, 명령 페치 버퍼(10)의 일부분만이 사용(클록(clocked) 및/또는 전원 공급)되고, 이것은 제1 명령 페치 버퍼로서 기능한다. 제2 모드에서는, 명령 페치 버퍼(10) 전체가 사용되고, 이것은 제2 명령 페치 버퍼로서 기능한다. 제1 명령 페치 버퍼는 제2 명령 페치 버퍼보다 더 낮은 저장 용량을 갖는다.
메모리(6)로부터 페치된 프로그램 명령들은 16비트 명령 또는 32비트 명령일 수도 있다. 보다 일반적으로는, 명령들은 N비트 명령 또는 M비트 명령일 수 있으며, 여기서 M은 N보다 크다. 이 예시적인 실시예에 있어서, 제1 모드에서는, 페치 비트 폭은 16비트이고 제2 모드에서는, 페치 비트 폭은 32비트이다. 처리 장치(2)가 사이클당 평균 하나의 명령을 소비하고, 제1 모드에서 동작하는 경우, 페치 회로(8)는 사이클마다 하나의 16비트 프로그램 명령 비트를 페치할 수 있으므로, 주로 16비트 프로그램 명령들이 실행 중인 경우에는 프로그램 실행과 보조를 맞춘다. 반대로, 제2 모드에서는, 페치 회로(8)는 사이클마다 하나의 32비트 프로그램 명령을 페치할 수 있으므로, 주로 32비트 프로그램 명령들을 실행하는 경우에는 프로그램 실행과 보조를 맞춘다. 실제로 16비트 및 32비트 프로그램 명령들의 혼합이 실행될 수 있으며, 또한 사이클마다 실행되는 프로그램 명령들의 수는 1이 아닐 수도 있음을 알 것이다. 16비트 페치 비트 폭을 사용하는 경우에, 여전히 32비트 명령들을 페치할 수는 있지만, 이 경우에 각 명령을 페치하기 위해서 두 개의 페치 사이클이 사용될 것이다.
명령 페치 버퍼(10)는 명령 페치 레이트와 명령 소비 레이트 간의 평활화를 제공한다. 명령 페치 레이트 능력이 명령 소비 레이트와 일치하면 에너지 소비를 줄일 수 있다. 도 1의 예에 있어서는, 프로세서(4)가 주로 16비트 명령을 실행하고 있는 경우에는, 그러한 동작 중에(동작의 제1 모드), 페치 회로(8)의 부분들이 파워 다운되거나, 적어도 클럭 게이트되는(clock-gated) 것을 허용하는 사이클당 평균 16비트의 명령을 페치함으로써 에너지를 절약할 수 있다. 반대로, 프로세서(4)가 32비트 프로그램 명령의 지속된 기간의 실행을 수행해야 하는 경우, 사이클당 32비트의 지속된 페치 레이트를 지원하기 위해서 페치 회로(8)의 동작의 제2 모드가 채택될 수 있다. 페치 회로의 명령 페치 레이트 능력이 프로세서(4)의 명령 소비 레이트에 매핑되는 실시 예에서 효율성이 개선될 수 있다. 과도한 명령 페치 레이트 능력을 제공하면, 불필요하게 에너지를 소비할 수 있다.
상기에서, 페치 사이클은 명령 실행 사이클에 대응하는 것으로 가정되었다는 것을 알 것이다. 다른 실시 예에 있어서는, 이것은 반드시 그 경우에 의한 것은 아니다. 그럼에도 불구하고, 이러한 다른 실시 예들에 있어서는, 상이한 페치 레이트 능력을 갖는 복수의 모드에서 페치 회로를 동작시키는 것이 여전히 적절할 수 있다. 혼합된 16비트 및 32비트 명령 세트를 지원하는 시스템에 있어서, 16비트 명령은 명령 세트 내의 프로그램 명령들의 제1의 적절한 서브세트일 수도 있고, 페치 회로(8)의 동작에 관해서는, 프로세서(4)는 16비트 명령 페치 폭 또는 32비트 명령 페치 폭을 지원하는 제1 모드 중 선택 가능한 하나에서 동작할 수도 있다. 페치 회로(8)는 제2 모드에서 동작하고 16비트 프로그램 명령만을 페치할 때 과도한 페치 능력을 가질 것이지만, 그럼에도 불구하고, 정확하게 동작할 수 있다. 그러나, 32비트 프로그램 명령들의 지속된 스트림을 실행할 때, 페치 회로(8)는 (명령 페치 버퍼(10)의 작동에도 불구하고) 제1 모드(16비트 페치 폭)에서 동작하면 명령 소비와 보조를 맞추지 못할 수도 있어, 프로세서(4)는 페치될 프로그램 명령들을 대기하는 것을 멈출 수도 있다. 따라서, 명령 세트의 32비트 프로그램 명령은 (적어도 바람직하지 않은 멈춤이 회피되기를 원하는 경우) 제2 모드에서 프로세서(4)에 의해 처리될 필요가 있는 프로그램 명령들의 제2의 적절한 서브세트라고 간주될 수도 있다.
페치 회로(8)에 의해 페치된 프로그램 명령들은 제1 디코더 회로(12) 및 제2 디코더 회로(14)로 형성된 디코더 회로에 공급된다. 제1 디코더 회로(12)는 제1 모드에서 활성화된다. 제1 디코더 회로(12) 및 제2 디코더 회로(14)는 모두 제2 모드에서 활성화된다. 프로세서(4)가 16비트 프로그램 명령만을 실행 중일 때는, 제1 디코더 회로(12)만이 활성화되는 제1 모드에서 동작할 수 있다. 제1 디코더 회로(12)는 16비트 프로그램 명령들을 디코딩할 수 있지만, 모든 32비트 프로그램 명령들을 디코딩할 수는 없다. 제2 모드에서 동작할 때는, 제1 디코더 회로(12) 및 제2 디코더 회로(14) 모두가 활성화되고, 명령 세트 내의 모든 명령들이 디코딩될 수 있다. 프로그램 명령들(예를 들어, 부동 소수점 프로그램 명령들과 같은 일부 32비트 프로그램 명령)의 제2의 적절한 서브세트는 제1 디코더 회로(12)가 이 프로그램 명령들의 제2 서브세트로부터 프로그램 명령들을 디코딩할 수 없기 때문에 제2 디코더 회로(14)가 활성화되는 것을 요구한다.
도 1에 나타낸 페치 회로(8), 제1 및 제2 디코더 회로(12, 14) 및 프로세서(4)의 다른 요소들에 관하여, 회로의 부분들이 비활성화될 때, 이들은 저전력 상태에 놓일 수 있다. 이러한 저전력 상태는, 클럭 신호 게이팅, 비활성 회로 요소 또는 다른 전력 제어 기술을 포함하는 관련 전력 도메인을 파워 다운하는 등 다양한 형태를 취할 수 있다.
모드 제어 회로(16)는 제1 디코더 (12) 및 제2 디코더(14)에 결합되고, 실행을 위해 디코딩되는 프로그램 명령들을 스누핑(snoop)하는 역할을 한다. 모드 제어 회로(16)는 이 스누핑된 데이터를 사용하여 실행된 프로그램 명령들의 스트림의 검출된 특성에 따라 제1 모드와 제2 모드 간의 스위칭을 휴리스틱하게(heuristically) 제어한다. 프로세서가 제2 모드에서 동작하는 것을 요구하는 프로그램 명령이 디코딩되면, 모드 제어 회로(16)는 동작을 제2 모드로 스위칭한다. 제2 모드에서 우선적으로 실행되지만 본질적으로는 실행되지 않는 프로그램 명령들의 스레숄드 레이트(threshold rate)보다 큰 것이 검출되면, 제2 모드로 스위칭될 수 있다. 유사하게, 제1 모드 내에서 우선적으로 (예를 들어, 적어도 에너지 소비 감소 이유들에 대해) 실행되는 제1의 적절한 서브세트의 프로그램 명령들의 프로그램 명령 실행의 스레숄드 레이트보다 큰 것이 검출되면, 그 제1 모드로의 스위칭이 이루어질 수 있다.
제1 디코더(12) 및 제2 디코더(14)에 의해 생성된 디코딩된 제어 신호들은 발행 회로(18)에 전달되고, 여기서 대응하는 프로세싱 동작들은 정수(integer) 파이프라인(20), 로드(load) 저장 유닛(22) 및 부동 소수점 파이프라인(24)과 같은 다수의 처리 파이프라인 중 적절한 하나에 발행된다. 이 예에 있어서, 부동 소수점 파이프라인(24)은 부동 소수점 프로그램 명령들의 실행을 담당한다. 부동 소수점 프로그램 명령들은 프로그램 명령들의 제2의 적절한 서브세트의 일부인 32비트 프로그램 명령들이고 프로세서(4)가 제2 모드에서 동작하는 것을 요구한다. 따라서, 부동 소수점 파이프라인(24)은 제1 모드에서의 비활성 상태와 제2 모드에서의 활성 상태 사이에서 스위칭된다. 비활성 상태는 저전력 상태이다. 실제로, 부동 소수점 프로그램 명령 실행을 필요로 하지 않는 프로그램 코드의 큰 부분이 실행되므로, 부동 소수점 파이프라인(24)은 이러한 프로그램 실행 기간 동안 동작의 제1 모드에 따라 파워 다운될 수 있다. 부동 소수점 파이프라인(24)이 활성인지 비활성인지 여부에 관계없이 (어떤 부동 소수점 명령도 포함하지 않는) 프로그램 명령들의 제1 서브세트 내의 프로그램 명령들이 실행될 수도 있다. 부동 소수점 파이프라인(24)이 비활성 상태이면 더 낮은 전력 소모가 달성될 것이다.
레지스터 파일(26)은 조작될 오퍼랜드(operand) 값을 저장하기 위해서 프로세서(4) 내에 설치된다. 레지스터 파일(26) 내의 레지스터들은 상위(high order) 레지스터 파일 회로 및 하위(low order) 레지스터 파일 회로를 포함한다. 제2 모드에서 작동할 때는, 상위 레지스터 파일 회로와 하위 레지스터 파일 회로 모두가 활성화되어 사용 가능하다. 제1 모드에서 동작할 때는, 상위 레지스터 파일 회로는 사용 불가능한 저전력 상태에 놓이게 되며, 하위 레지스터 파일 회로는 활성 상태로 되어 사용 가능하게 된다. 프로그램 명령들의 제1의 적절한 서브세트는 하위 레지스터 파일 회로에 액세스해야 하지만, 상위 레지스터 파일 회로에는 액세스할 필요가 없다. 반대로, 프로그램 명령들의 제2의 적절한 서브세트는 상위 레지스터 파일 회로 및 하위 레지스터 파일 회로에 대한 액세스를 필요로 한다.
상술한 바와 같은 모드 제어 회로(16)는 실행된 프로그램 명령들의 스트림의 검출된 특성에 휴리스틱하게 의존하는 동작의 제1 모드와 동작의 제2 모드 사이를 스위칭할 수 있다. 다른 스위치 메커니즘도 가능하다. 예를 들어, 명시적인 모드 스위칭 프로그램 명령들이 명령 세트 내에 제공될 수 있다. 제1 모드에서 제2 모드로 스위칭하기 위한 특정 16비트 프로그램 명령은 프로그램 명령들의 제1의 적절한 서브세트 내에 포함될 수도 있다. 제2 모드에서 제1 모드로 스위칭하기 위한 32비트 모드 스위치 명령은 프로그램 명령들의 제2의 적절한 서브세트 내에 포함될 수 있다. 제1 디코더(12)는 16비트 모드 스위칭 프로그램 명령에 응답하여 모드 제어 회로(16)를 트리거해 제1 모드에서 제2 모드로 동작 모드를 스위칭할 수 있다. 제2 디코더(14)는 32비트 모드 스위칭 명령에 응답하여 모드 제어 회로(16)를 트리거해서 제2 모드에서 제1 모드로 스위칭할 수 있다.
수행될 수 있는 모드 스위칭 제어의 또 다른 형태는 인터럽트 제어기(28)에 의해 수신된 인터럽트 신호와 관련되어 있다. 인터럽트가 수신되면, 이 기술 분야의 당업자에게 친숙한 것처럼, 프로그램 명령 실행 플로우(flow)의 리디렉션(redirection)이 트리거된다. 인터럽트 제어기(28)는 인터럽트가 실행될 때 어느 인터럽트 핸들러 프로그램 루틴(interrupt handler program routine)이 개시되어야 하는지를 나타내는 각 수신된 인터럽트 신호와 관련된 데이터로 구성된다. 이 인터럽트 구성 데이터는 또한 동작의 제1 모드 또는 동작의 제2 모드 중 어느 것이 관련된 인터럽트 핸들러 프로그램의 실행을 위해 채택될 것인지를 나타내는 모드 데이터를 포함할 수 있다. 이와 같이, 인터럽트 신호가 인터럽트 제어기(28)에 의해 수신될 때, 관련된 인터럽트 핸들러 프로그램의 실행이 개시되고, 그 인터럽트 핸들러 프로그램과 관련된 모드 플래그가 프로세서(4)의 프로세싱의 현재 동작 모드와 다른 처리 모드를 나타내는 경우에는, 동작 모드의 스위칭이 이루어진다.
도 2는 16비트 프로그램 명령들과 32비트 프로그램 명령들의 혼합으로 형성된 명령 세트(30)를 개략적으로 도시한 것이다. 프로그램 명령들의 제1의 적절한 서브세트(32)는 동작의 제1 모드 또는 동작의 제2 모드 중 선택 가능한 하나에서 처리될 수 있는 명령들이다. 프로그램 명령들의 제2의 적절한 서브세트(34)는 동작의 제2 모드에서 처리되는 것을 요구하는 부동 소수점 프로그램 명령들과 같은, 프로그램 명령들이다. 제1의 적절한 서브세트 및 제2의 적절한 서브세트의 외부의 프로그램 명령들은 동작의 제1 모드 또는 동작의 제2 모드 중 어느 하나에서 실행될 수 있지만, 동작의 제2 모드에서 실행에 대한 선호도가 있다.
도 3은 명령 세트(30) 내의 명시적인 모드 스위칭 프로그램 명령들의 사용을 개략적으로 도시한 것이다. 상술한 바와 같이, 동작의 제1 모드에서 동작할 때 실행을 위한 16비트 명령이 실행을 동작의 제2 모드로 스위칭하기 위해서 제공될 수 있다. 유사하게, 명시적인 32비트 모드 스위칭 프로그램 명령은 동작의 제2 모드에서 실행하기 위해 제공되어 실행을 동작의 제1 모드로 스위칭할 수 있다.
다른 예시적인 실시예에 있어서는, 16비트 명령 및 32비트 명령 대신에, 시스템은 32비트 명령 및 64비트 명령으로 동작할 수 있다.
도 4는 모드의 인터럽트 트리거된 스위치를 개략적으로 도시한 것이다. 스텝 36에서는, 처리가 인터럽트 제어기(28)에 의해 인터럽트 신호가 수신될 때까지 대기한다. 스텝 38에서는, 인터럽트와 관련된 다른 프로세싱 동작에 더하여, 인터럽트 제어기(38)는 수신된 인터럽트와 관련된 모드 플래그를 판독하는 역할을 한다. 이 모드 플래그는 모드 제어기(16)에 공급된다. 스텝 40에서는, 모드 제어기(16)는 프로세서(4)가 새로 채택된 인터럽트 핸들링 프로그램에 대한 모드 플래그로 나타낸 것과 같이 정확한 모드에서 동작하고 있는지를 수신된 모드 플래그로부터 판정한다. 프로세서(4)가 현재 정확한 모드에서 동작하고 있지 않으면, 스텝 42는 동작 모드를 스위칭하는 기능을 한다.
도 5는 명시적인 스위치 명령 트리거된 모드 스위칭을 개략적으로 도시한 흐름도이다. 모드 스위칭 명령들은 도 3과 관련하여 언급된 16비트 모드 스위칭 명령 또는 32비트 모드 스위칭 명령일 수 있다. 스텝 44에서는, 명령 디코더 회로(12, 14)는 모드 스위칭 명령이 수신될 때까지 대기한다. 모드 스위칭 명령이 수신되면, 모드 스위치가 수행되어야 한다는 것을 나타내기 위한 신호가 모드 제어기(16)에 전해진다. 스텝 46은 실행된 명시적인 모드 스위칭 프로그램 명령으로 나타낸 것과 같이 모드를 스위칭하는 모드 제어기(16)에 대응한다.
도 6은 바람직한 실행 메트릭에 따른 휴리스틱(heuristic) 스위칭을 개략적으로 설명한 흐름도이다. 스텝 48에서는, 처리가 프로세서(4)의 현재의 동작 모드와 다른 모드에서 실행하는데 바람직한 명령으로서 모드 제어기(16)에 의해 검출되는 명령이 디코더 회로(12, 14)에 의해 디코딩될 때까지 대기한다. 상이한 모드에서의 실행에 바람직한 프로그램 명령이 검출되면, 처리는 스텝 50으로 진행하여, 바람직한 메트릭 값에 대한 갱신이 이루어진다. 이 바람직한 메트릭 값은, 예를 들어, 그들의 바람직하지 않은 모드에서 실행 중인 프로그램 명령들의 검출의 평균 레이트를 추적할 수 있다. 메트릭 값의 다른 형태도 가능하다. 스텝 52에서는, 업데이트된 바람직한 메트릭 값이 스위칭 스레숄드(switching threshold) 이상인지 아닌지의 여부에 대한 판정이 이루어진다. 바람직한 메트릭 값이 스위칭 스레숄드 이상이면, 스텝 54는 모드 스위치를 시작한다. 모드 스위치는 프로세서(4)가 현재 제1 모드에서 동작하고 있을 때는 제1 모드에서 제2 모드로 또는 프로세서(4)가 현재 제2 모드에서 동작하고 있을 때는 제2 모드에서 제1 모드로 될 수 있다. 상이한 스위칭 방향들에 대한 스레숄드 값(threshold values)은 상이할 수 있으며, 사실상, 상이한 방향들에서의 스위칭을 휴리스틱하게 제어하는데 사용되는 바람직한 메트릭은 다를 수 있다.
도 7은 지원되지 않는 명령의 검출에 의해 트리거된 모드 스위칭을 개략적으로 도시한 것이다. 스텝 56에서는, 처리가 현재 동작 모드에서 지원되지 않는 명령이 디코더 회로(12, 14)에 의해 검출될 때까지 대기한다. 그러한 지원되지 않는 명령의 예는 프로세서(4)가 동작의 제1 모드에서 동작하고 있을 때 검출된 부동 소수점 프로그램 명령이다. 그러한 지원되지 않는 명령이 검출되면, 스텝 58은 동작 모드를 스위칭하는 기능, 예를 들면, 부동 소수점 파이프 라인(24)이 비활성 상태인 동작의 제1 모드에서 부동 소수점 파이프 라인(24)이 활성 상태인 동작의 제2 모드로 스위칭하는 기능을 한다.
예시적인 실시 예가 첨부된 도면을 참조하여 본 명세서에서 상세하게 설명되었지만, 특허청구범위는 이들 정확한 실시 예에 한정되지 않으며, 다양한 변경, 추가 및 수정이 첨부된 특허청구범위의 사상 및 범주를 벗어나지 않고 본 기술분야의 당업자에 의해 이루어질 수 있다는 것을 이해해야 한다. 예를 들어, 종속 청구항의 특징의 다양한 조합이 독립 청구항의 특징으로 이루어질 수 있다.

Claims (21)

  1. 데이터를 처리하는 장치로서,
    명령 세트의 프로그램 명령들에 의해 특정된 것과 같이 프로세서의 레지스터 파일 내에 저장된 오퍼랜드에 대하여 프로세싱 동작을 수행하고, 적어도 프로세싱 동작을 수행할 준비가 된 제1 세트의 활성 처리회로를 갖는 동작의 제1 모드와 프로세싱 동작을 수행할 준비가 된 제2 세트의 활성 처리회로를 갖는 동작의 제2 모드에서 동작하는 프로세서를 구비하고, 상기 제2 세트의 활성 처리회로는 상기 제1 세트의 활성 처리회로와 상이하며,
    상기 명령 세트 내의 프로그램 명령들의 제1의 적절한 서브세트는 상기 제1 모드 및 상기 제2 모드 중 선택 가능한 하나에서 동작하는 프로세서에 의해 처리되고,
    상기 명령 세트 내의 프로그램 명령들의 제2의 적절한 서브세트는 상기 제2 모드에서 동작하는 프로세서에 의해 처리되도록 요구되는 것을 특징으로 하는, 데이터 처리장치.
  2. 제 1 항에 있어서,
    상기 제1 세트의 활성 처리회로는 상기 제2 세트의 활성 처리회로와 상이한 적어도 한 개의 성능 특성(performance characteristic)을 갖는, 데이터 처리장치.
  3. 제 2 항에 있어서,
    상기 적어도 한 개의 성능 특성은,
    프로그램 명령들을 처리하기 위해 명령당 소비되는 평균 에너지와,
    프로그램 명령들을 처리하기 위해 명령당 걸리는 평균 시간과,
    누설 전력 중 하나 이상을 포함하는 것을 특징으로 하는, 데이터 처리장치.
  4. 제 1 항, 제 2 항 또는 제 3 항 중 어느 한 항에 있어서,
    상기 제1의 적절한 서브세트는 N비트 프로그램 명령들을 포함하고, 상기 제2의 적절한 서브세트는 M비트 프로그램 명령들을 포함하며, M은 N보다 큰 것을 특징으로 하는, 데이터 처리장치.
  5. 제 4 항에 있어서,
    상기 제1 세트의 활성 처리회로는 제1 페치 레이트(fetch rate)를 이용하여 메모리로부터 프로그램 명령들을 페치하는 제1 페치 회로를 구비하고, 상기 제2 세트의 활성 처리회로는 제2 페치 레이트로 메모리로부터 프로그램 명령들을 페치하는 제2 페치 회로를 구비하며, 상기 제2 페치 레이트는 상기 제1 페치 레이트보다 큰 것을 특징으로 하는, 데이터 처리장치.
  6. 제 5 항에 있어서,
    제1 페치 비트 폭은 N비트이고, 제2 페치 비트 폭은 M비트인 것을 특징으로 하는, 데이터 처리장치.
  7. 제 5 항 또는 제 6 항에 있어서,
    상기 제1 페치 회로는 제1 명령 페치 버퍼를 구비하고, 상기 제2 페치 회로는 제2 명령 페치 버퍼를 구비하며, 상기 제1 명령 페치 버퍼는 상기 제2 명령 페치 버퍼보다 더 낮은 명령 저장 용량을 갖는 것을 특징으로 하는, 데이터 처리장치.
  8. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,
    상기 제1의 적절한 서브세트는 부동 소수점 프로그램 명령들을 제외하고, 상기 제2의 적절한 서브세트는 부동 소수점 명령들을 포함하는 것을 특징으로 하는, 데이터 처리장치.
  9. 제 8 항에 있어서,
    상기 제2 세트의 활성 처리회로는 부동 소수점 처리회로를 포함하고, 상기 제1 세트의 활성 처리회로는 상기 부동 소수점 처리회로를 제외하는 것을 특징으로 하는, 데이터 처리장치.
  10. 제 9 항에 있어서,
    상기 부동 소수점 처리회로는 상기 제1 모드에서는 저전력 상태에 있고 상기 제2 모드에서는 고전력 상태에 있는 것을 특징으로 하는, 데이터 처리장치.
  11. 제 1 항 내지 제 10 항 중 어느 한 항에 있어서,
    상기 제2 세트의 활성 처리회로는 상기 제1의 적절한 서브세트의 프로그램 명령들을 디코딩하는 제1 디코더 회로와, 상기 제2의 적절한 서브세트의 프로그램 명령들을 디코딩하는 제2 디코더 회로를 구비하고, 상기 제1 세트의 활성 처리회로 세트는 상기 제1 디코더 회로를 구비하고, 상기 제2 디코더 회로를 제외하는 것을 특징으로 하는, 데이터 처리장치.
  12. 제 11 항에 있어서,
    상기 제2 디코더 회로는 상기 제1 모드에서는 저전력 상태에 있고, 상기 제2 모드에서는 고전력 상태에 있는, 데이터 처리장치.
  13. 제 1 항 내지 제 12 항 중 어느 한 항에 있어서,
    상기 제2 세트의 활성 처리회로는 하위 레지스터 파일 회로 및 상위 레지스터 파일 회로를 구비하고, 상기 제1 세트의 활성 처리회로는 상기 하위 레지스터 파일 회로를 구비하고, 상기 상위 레지스터 파일 회로를 제외하는 것을 특징으로 하는, 데이터 처리장치.
  14. 제 13 항에 있어서,
    상기 상위 레지스터 파일 회로는 상기 제1 모드에서는 비활성 상태로 게이트되고, 상기 제2 모드에서는 활성 상태로 게이트되는 것을 특징으로 하는, 데이터 처리장치.
  15. 제 1 항 내지 제 14 항 중 어느 한 항에 있어서,
    상기 명령 세트는 상기 제1 모드와 상기 제2 모드 사이에서 스위칭하기 위해 하나 이상의 프로그램 명령을 포함하는 것을 특징으로 하는, 데이터 처리장치.
  16. 제 1 항 내지 제 15 항 중 어느 한 항에 있어서,
    하나 이상의 인터럽트 핸들링 프로그램에 의해 인터럽트 처리를 제어하기 위한 인터럽트 제어회로를 구비하고, 각각의 모드 플래그는 인터럽트 핸들링 프로그램이 상기 제1 모드 또는 상기 제2 모드에서 처리되는지 여부를 나타내는 것을 특징으로 하는, 데이터 처리장치.
  17. 제 1 항 내지 제 16 항 중 어느 한 항에 있어서,
    실행된 프로그램 명령들의 스트림의 검출된 특성에 의존하여 상기 제1 모드와 상기 제2 모드 사이에서의 스위칭을 휴리스틱하게(heuristically) 제어하기 위한 모드 제어회로를 구비하는 것을 특징으로 하는, 데이터 처리장치.
  18. 제 1 항 내지 제 17 항 중 어느 한 항에 있어서,
    상기 제1 모드에서 동작하고 상기 제2의 적절한 서브세트 내의 명령이 실행될 프로그램 플로우 내에서 검출될 때, 상기 제2 모드로의 스위칭이 트리거되는 것을 특징으로 하는, 데이터 처리장치.
  19. 제 1 항 내지 제 18 항 중 어느 한 항에 있어서,
    상기 제1 모드에서 동작하고 상기 제2 모드에서의 실행에 바람직한 스레숄드 수보다 많은 명령들(more than a threshold number of instrucions)이 실행될 프로그램 플로우 내에서 검출되는 경우, 상기 제2 모드로의 스위칭이 트리거되는 것을 특징으로 하는, 데이터 처리장치.
  20. 데이터를 처리하는 장치로서,
    명령 세트의 프로그램 명령들에 의해 특정된 것과 같이 프로세서 수단의 레지스터 파일 내에 저장된 오퍼랜드에 대하여 프로세싱 동작을 수행하고, 적어도 프로세싱 동작을 수행하기 위한 제1 세트의 활성 처리수단을 갖는 동작의 제1 모드와 프로세싱 동작을 수행하기 위한 제2 세트의 활성 처리수단을 갖는 동작의 제2 모드에서 동작하는 처리수단을 구비하고, 상기 제2 세트의 활성 처리수단은 상기 제1 세트의 활성 처리수단과 상이하며,
    상기 명령 세트 내의 프로그램 명령들의 제1의 적절한 서브세트는 상기 제1 모드와 상기 제2 모드 중 선택 가능한 하나에서 동작하는 처리수단에 의해 처리되고,
    상기 명령 세트 내의 프로그램 명령들의 제2의 적절한 서브세트는 상기 제2 모드에서 동작하는 처리수단에 의해 처리되도록 요구하는 것을 특징으로 하는, 데이터 처리장치.
  21. 데이터를 처리하는 방법으로서,
    적어도 프로세싱 동작을 수행하기 위한 제1 세트의 활성 처리회로를 갖는 동작의 제1 모드와 프로세싱 동작을 수행하기 위한 제2 세트의 활성 처리회로를 갖는 동작의 제2 모드를 이용하여 명령 세트의 프로그램 명령들에 의해 특정된 것과 같이 프로세서의 레지스터 파일 내에 저장된 오퍼랜드에 대하여 프로세싱 동작을 수행하는 단계를 포함하고, 상기 제2 세트의 활성 처리회로는 상기 제1 세트의 활성 처리회로와 상이하며,
    상기 명령 세트 내의 프로그램 명령들의 제1의 적절한 서브세트는 상기 제1 모드와 상기 제2 모드 중 선택 가능한 하나를 이용하여 처리되고,
    상기 명령 세트 내의 프로그램 명령들의 제2의 적절한 서브세트는 상기 제2 모드를 이용하여 처리되도록 요구하는 것을 특징으로 하는, 데이터 처리방법.
KR1020177036366A 2015-06-05 2016-04-07 가변 길이 명령 처리 모드 KR102528699B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1509746.2 2015-06-05
GB1509746.2A GB2546465B (en) 2015-06-05 2015-06-05 Modal processing of program instructions
PCT/GB2016/050978 WO2016193655A1 (en) 2015-06-05 2016-04-07 Variable-length-instruction processing modes

Publications (2)

Publication Number Publication Date
KR20180015660A true KR20180015660A (ko) 2018-02-13
KR102528699B1 KR102528699B1 (ko) 2023-05-04

Family

ID=53784983

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177036366A KR102528699B1 (ko) 2015-06-05 2016-04-07 가변 길이 명령 처리 모드

Country Status (5)

Country Link
US (1) US11379237B2 (ko)
KR (1) KR102528699B1 (ko)
CN (1) CN107667344B (ko)
GB (1) GB2546465B (ko)
WO (1) WO2016193655A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230185572A1 (en) * 2021-12-13 2023-06-15 Intel Corporation Instruction decode cluster offlining

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000347854A (ja) * 1999-05-03 2000-12-15 Stmicroelectronics Sa 復号装置および復号方法
KR20020091066A (ko) * 2000-01-14 2002-12-05 어드밴스드 마이크로 디바이시즈, 인코포레이티드 프로세서에서 동작 모드의 확립
US20050044434A1 (en) * 2003-08-21 2005-02-24 International Business Machines Corporation Power throttling method and apparatus
US6976182B1 (en) * 2002-02-01 2005-12-13 Advanced Micro Devices, Inc. Apparatus and method for decreasing power consumption in an integrated circuit
KR20080102213A (ko) * 2006-03-21 2008-11-24 프리스케일 세미컨덕터, 인크. 명령 프리페치 버퍼 깊이의 동적 제어를 갖는 데이터 프로세서 및 그 방법

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5638525A (en) * 1995-02-10 1997-06-10 Intel Corporation Processor capable of executing programs that contain RISC and CISC instructions
US5726921A (en) 1995-12-22 1998-03-10 Intel Corporation Floating point power conservation
JP3623840B2 (ja) * 1996-01-31 2005-02-23 株式会社ルネサステクノロジ データ処理装置及びマイクロプロセッサ
US7272703B2 (en) 1997-08-01 2007-09-18 Micron Technology, Inc. Program controlled embedded-DRAM-DSP architecture and methods
US6189090B1 (en) * 1997-09-17 2001-02-13 Sony Corporation Digital signal processor with variable width instructions
US7124286B2 (en) * 2000-01-14 2006-10-17 Advanced Micro Devices, Inc. Establishing an operating mode in a processor
US6948051B2 (en) * 2001-05-15 2005-09-20 International Business Machines Corporation Method and apparatus for reducing logic activity in a microprocessor using reduced bit width slices that are enabled or disabled depending on operation width
CN1430124A (zh) 2001-10-02 2003-07-16 O2米克罗公司 用于计算机装置的低功率数字音频解码/播放系统
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
US7461275B2 (en) * 2005-09-30 2008-12-02 Intel Corporation Dynamic core swapping
US20080010635A1 (en) * 2006-07-07 2008-01-10 O'brien John Kevin Method, Apparatus, and Program Product for Improving Branch Prediction in a Processor Without Hardware Branch Prediction but Supporting Branch Hint Instruction
US8806228B2 (en) * 2006-07-13 2014-08-12 International Business Machines Corporation Systems and methods for asymmetrical performance multi-processors
US20080126743A1 (en) 2006-07-18 2008-05-29 Via Technologies, Inc. Reducing Stalls in a Processor Pipeline
US9069547B2 (en) * 2006-09-22 2015-06-30 Intel Corporation Instruction and logic for processing text strings
EP2157507B1 (en) * 2007-06-12 2013-05-01 Panasonic Corporation Multiprocessor control device, multiprocessor control method, and multiprocessor control circuit
CN100555225C (zh) 2008-03-17 2009-10-28 中国科学院计算技术研究所 一种支持x86虚拟机的risc处理器装置及方法
GB2478726B (en) 2010-03-15 2013-12-25 Advanced Risc Mach Ltd Mapping between registers used by multiple instruction sets
US8751833B2 (en) * 2010-04-30 2014-06-10 Arm Limited Data processing system
CN101876892B (zh) 2010-05-20 2013-07-31 复旦大学 面向通信和多媒体应用的单指令多数据处理器电路结构
US8683243B2 (en) * 2011-03-11 2014-03-25 Intel Corporation Dynamic core selection for heterogeneous multi-core systems
US8880851B2 (en) * 2011-04-07 2014-11-04 Via Technologies, Inc. Microprocessor that performs X86 ISA and arm ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline
US8914615B2 (en) 2011-12-02 2014-12-16 Arm Limited Mapping same logical register specifier for different instruction sets with divergent association to architectural register file using common address format
US20140019723A1 (en) * 2011-12-28 2014-01-16 Koichi Yamada Binary translation in asymmetric multiprocessor system
WO2013101146A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Using reduced instruction set cores
US10423216B2 (en) * 2013-03-26 2019-09-24 Via Technologies, Inc. Asymmetric multi-core processor with native switching mechanism
US9280422B2 (en) * 2013-09-06 2016-03-08 Seagate Technology Llc Dynamic distribution of code words among multiple decoders

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000347854A (ja) * 1999-05-03 2000-12-15 Stmicroelectronics Sa 復号装置および復号方法
KR20020091066A (ko) * 2000-01-14 2002-12-05 어드밴스드 마이크로 디바이시즈, 인코포레이티드 프로세서에서 동작 모드의 확립
US6976182B1 (en) * 2002-02-01 2005-12-13 Advanced Micro Devices, Inc. Apparatus and method for decreasing power consumption in an integrated circuit
US20050044434A1 (en) * 2003-08-21 2005-02-24 International Business Machines Corporation Power throttling method and apparatus
KR20080102213A (ko) * 2006-03-21 2008-11-24 프리스케일 세미컨덕터, 인크. 명령 프리페치 버퍼 깊이의 동적 제어를 갖는 데이터 프로세서 및 그 방법

Also Published As

Publication number Publication date
WO2016193655A1 (en) 2016-12-08
GB2546465A (en) 2017-07-26
KR102528699B1 (ko) 2023-05-04
CN107667344A (zh) 2018-02-06
US20180157490A1 (en) 2018-06-07
CN107667344B (zh) 2022-07-22
GB201509746D0 (en) 2015-07-22
GB2546465B (en) 2018-02-28
US11379237B2 (en) 2022-07-05

Similar Documents

Publication Publication Date Title
JP5172942B2 (ja) プロセッサによる電力消費を低減する方法、プロセッサ、及び、情報処理システム
JP5074389B2 (ja) Simd並列処理の自動選択を備えたマイクロプロセッサ
KR101802140B1 (ko) 제1 및 제2 처리 회로 간 작업 부하를 스위칭하는 데이터 처리 장치 및 방법
EP2905699B1 (en) Processor that performs approximate computing instructions
JP5285408B2 (ja) プロセッサ、プロセッサを動作させる方法、および情報処理システム
US7809933B2 (en) System and method for optimizing branch logic for handling hard to predict indirect branches
US5926646A (en) Context-dependent memory-mapped registers for transparent expansion of a register file
JP5099131B2 (ja) 演算装置
US8261276B2 (en) Power-efficient thread priority enablement
CN105242963B (zh) 执行机构间的切换控制
TWI570548B (zh) 包括執行指令集架構之不同部分之多個相異處理器核心之處理器
KR20180067583A (ko) 이동 프리픽스 명령어
TWI401564B (zh) 預測處理器組件懸置用之方法與處理器
JP2009151778A (ja) ワークロード実行特徴に基づく性能低下のない低パワーのための動的なプロセッサを再構成するための方法、プログラム、およびシステム
US6961847B2 (en) Method and apparatus for controlling execution of speculations in a processor based on monitoring power consumption
KR102279352B1 (ko) 실행 메카니즘간의 전환 제어
US10235232B2 (en) Processor with approximate computing execution unit that includes an approximation control register having an approximation mode flag, an approximation amount, and an error threshold, where the approximation control register is writable by an instruction set instruction
KR102528699B1 (ko) 가변 길이 명령 처리 모드
JP3616556B2 (ja) 拡張命令を処理する並列プロセッサ
JP2009506410A (ja) コンピュータ装置におけるコプロセッサ支援
US7114089B2 (en) System for controlling operation of a processor based on information contained within instruction word
US7263621B2 (en) System for reducing power consumption in a microprocessor having multiple instruction decoders that are coupled to selectors receiving their own output as feedback
US7243217B1 (en) Floating point unit with variable speed execution pipeline and method of operation
GB2506169A (en) Limiting task context restore if a flag indicates task processing is disabled
US7290153B2 (en) System, method, and apparatus for reducing power consumption in a 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