KR20090009959A - 마이크로프로세서 내에서 다수의 레지스터 유니트들로부터의 대응하는 하프워드 유니트들을 결합하기 위한 방법 및 시스템 - Google Patents

마이크로프로세서 내에서 다수의 레지스터 유니트들로부터의 대응하는 하프워드 유니트들을 결합하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20090009959A
KR20090009959A KR1020087029921A KR20087029921A KR20090009959A KR 20090009959 A KR20090009959 A KR 20090009959A KR 1020087029921 A KR1020087029921 A KR 1020087029921A KR 20087029921 A KR20087029921 A KR 20087029921A KR 20090009959 A KR20090009959 A KR 20090009959A
Authority
KR
South Korea
Prior art keywords
units
unit
register
halfword
source register
Prior art date
Application number
KR1020087029921A
Other languages
English (en)
Other versions
KR100988964B1 (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 KR20090009959A publication Critical patent/KR20090009959A/ko
Application granted granted Critical
Publication of KR100988964B1 publication Critical patent/KR100988964B1/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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • 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
    • 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/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
    • 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/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter

Abstract

단일 명령의 실행 동안, 예를 들어, 디지털 신호 프로세서와 같은 마이크로프로세서 내에 있는 다수의 레지스터 유니트들로부터의 대응하는 하프워드 유니트들을 결합하기 위한 방법 및 시스템이 설명된다. 레지스터 화일 구조로부터 미리 결정된 다른 소스 레지스터 유니트들을 결합하기 위한 명령이 프로세싱 유니트 내에 수신된다. 그 후에 상기 명령은 소스 레지스터 유니트들로부터 대응하는 하프워드 유니트들을 결합하고 상기 하프워드 유니트들을 결과적인 목적지 레지스터 유니트의 각각의 부분들로 입력하기 위해 실행된다. 상기 명령의 실행 동안, 미리 결정된 소스 레지스터 유니트들이 식별되고 식별된 레지스터 유니트들로부터 대응하는 최상위 하프워드 유니트들 및 관련된 데이터가 검색된다. 검색된 하프워드 유니트들은 추가적으로 결합되어 결과적인 목적지 레지스터 유니트의 각각의 최상위 부분으로 입력된다. 유사하게, 식별된 레지스터 유니트들로부터 대응하는 최하위 하프워드 유니트들 및 관련된 데이터가 검색된다. 검색된 하프워드 유니트들은 추가적으로 결합되어 결과적인 목적지 레지스터 유니트의 각각의 최하위 부분으로 입력된다. 최종적으로, 결과적인 목적지 레지스터 유니트는 추가적인 프로세싱을 위해 레지스터 화일 구조에 저장된다.

Description

마이크로프로세서 내에서 다수의 레지스터 유니트들로부터의 대응하는 하프워드 유니트들을 결합하기 위한 방법 및 시스템{METHOD AND SYSTEM TO COMBINE CORRESPONDING HALF WORD UNITS FROM MULTIPLE REGISTER UNITS WITHIN A MICROPROCESSOR}
본 발명은 일반적으로 마이크로프로세서들에 관한 것이며, 더욱 상세하게는 단일 명령의 실행 동안, 예를 들어, 디지털 신호 프로세서와 같은 마이크로프로세서 내에서 다수의 레지스터 유니트들로부터의 대응하는 하프워드(half word) 유니트들을 결합하기 위한 방법 및 시스템에 관한 것이다.
전형적으로, 컴퓨터 시스템들은 하나 이상의 마이크로프로세서 디바이스들을 포함하며, 각각의 마이크로프로세서 디바이스는 컴퓨터 시스템의 메모리 내에 저장된 값들에 대한 연산들을 수행하고 컴퓨터 시스템의 전체 동작을 관리하도록 구성된다. 이러한 컴퓨터 시스템들은 또한 예컨대 사운드 카드들 및/또는 비디오 카드들과 같은 다양한 멀티미디어 디바이스들을 포함하며, 각각의 멀티미디어 디바이스는 자신 내에서 복잡한 수학적 계산들을 수행하는, 예를 들어, 디지털 신호 프로세서들(DSPs)과 같은 하나 이상의 프로세서들을 포함한다.
디지털 신호 프로세서(DSP)는 전형적으로 예컨대 하나 이상의 산술 로직 유 니트들(ALU), 하나 이상의 곱셈-및-누산 유니트들(MAC) 및 DSP 내에서 명령들의 세트에 의해 특정되는 연산들을 수행하도록 구성되는 다른 기능 유니트들과 같은 수학적 계산들을 수행하도록 구체적으로 구성된 하드웨어 실행 유니트들을 포함한다. 이러한 연산은 예컨대 산술 연산들, 논리 연산들, 다른 데이터 프로세싱 연산들을 포함할 수 있으며, 각각의 연산은 관련된 명령들의 세트에 의해 정의된다.
일반적으로, DSP 내에 있는 실행 유니트들은 메모리 및 실행 유니트들과 연결된 레지스터 화일로부터 데이터 및 피연산자들을 판독하고, 명령 연산들을 수행하고, 결과들을 레지스터 화일에 저장한다. 레지스터 화일은 다수의 레지스터 유니트들을 포함하며, 각각의 레지스터 유니트는 단일 레지스터로서 또는 두 개의 인접한 레지스터 유니트들의 지정된 쌍들로서 액세스 가능하다. 그러나, 예를 들어, 데이터를 더하거나 또는 빼기 위한 연산들과 같은 특정한 연산들은 명령들의 실행을 위해 적절하게 할당되기 위해 레지스터 화일 내에 있는 다른 레지스터 유니트들로부터의 데이터를 요구한다. 그리하여, 레지스터 유니트들 내에 저장된 데이터의 적절한 할당을 가능하게 하기 위해 단일 명령의 실행 동안 DSP 내에 있는 다수의 비-인접(non-adjacent) 또는 다른 레지스터 유니트들로부터의 대응하는 하프워드 유니트들을 결합하기 위한 방법 및 시스템이 요구된다.
단일 명령의 실행 동안, 예를 들어, 디지털 신호 프로세서와 같은 마이크로프로세서 내에 있는 다수의 레지스터 유니트들로부터의 대응하는 하프워드 유니트들을 결합하기 위한 방법 및 시스템이 설명된다. 일 실시예에서, 레지스터 화일 구조로부터의 미리 결정된 다른 소스 레지스터 유니트들을 결합하기 위한 명령이 프로세싱 유니트 내에 수신된다. 그 다음에 상기 명령은 소스 레지스터 유니트들로부터의 대응하는 하프워드 유니트들을 결합하고 상기 하프워드 유니트들을 결과적인 목적지 레지스터 유니트의 개별적인 부분들로 입력하도록 실행된다.
일 실시예에서, 미리 결정된 소스 레지스터 유니트들이 식별되고 대응하는 최상위(most significant) 하프워드 유니트들 및 관련된 데이터가 식별된 레지스터 유니트들로부터 검색된다. 검색된 하프워드 유니트들은 추가적으로 결합되어 결과적인 목적지 레지스터 유니트의 개별적인 최상위 부분에 입력된다. 유사하게, 대응하는 최하위(least significant) 하프워드 유니트들 및 관련된 데이터가 식별된 레지스터 유니트들로부터 검색된다. 검색된 하프워드 유니트들은 추가적으로 결합되어 결과적인 목적지 레지스터 유니트의 개별적인 최하위 부분에 입력된다. 최종적으로, 결과적인 목적지 레지스터 유니트는 추가적인 프로세싱을 위해 레지스터 화일 구조에 저장된다.
도 1은 명령들의 세트가 실행될 수 있는 디지털 신호 프로세싱 시스템의 블록 다이어그램이다.
도 2는 디지털 신호 프로세싱 시스템 내에 있는 범용 레지스터 구조의 일 실시예를 나타내는 블록 다이어그램이다.
도 3은 매우 긴 명령 워드(VLIW: Very Long Instruction Word) 디지털 신호 프로세싱 시스템 아키텍처의 일 실시예를 나타내는 블록 다이어그램이다.
도 4는 디지털 신호 프로세싱 시스템 내에 있는 다수의 레지스터 유니트들로부터의 대응하는 하프워드 유니트들을 결합하기 위한 방법의 일 실시예를 나타내는 플로우 다이어그램이다.
도 5는 도 4와 관련하여 설명되는 다수의 레지스터 유니트들로부터의 대응하는 하프워드 유니트들을 결합하기 위한 방법을 나타내는 블록 다이어그램이다.
도 6은 디지털 신호 프로세싱 시스템 내에 있는 다수의 레지스터 유니트들로부터의 대응하는 하프워드 유니트들을 결합하기 위한 명령의 일 실시예에 대한 블록 다이어그램이다.
단일 명령의 실행 동안, 예를 들어, 디지털 신호 프로세서와 같은 마이크로프로세서 내에 있는 다수의 레지스터 유니트들로부터의 대응하는 하프워드 유니트들을 결합하기 위한 방법 및 시스템이 설명된다. 아래에서 설명되는 시스템이 디지털 신호 프로세서로 하여금 레지스터 유니트들로부터의 대응하는 하프워드 유니트들을 결합할 수 있도록 하더라도, 상기 시스템은 단일 명령의 실행 동안 다수의 레지스터 유니트들로부터의 대응하는 하프워드 유니트들을 결과적인 레지스터 유니트로 결합할 수 있는 마이크로프로세서 디바이스 또는 임의의 다른 프로세싱 유니트를 사용하여 구현될 수 있다는 것을 이해하도록 한다.
일 실시예에서, 레지스터 화일 구조로부터의 미리 결정된 다른 소스 레지스터 유니트들을 결합하기 위한 명령이 프로세싱 유니트 내에 수신된다. 그 다음에 상기 명령은 소스 레지스터 유니트들로부터의 대응하는 하프워드 유니트들을 결합 하고 상기 하프워드 유니트들을 결과적인 목적지 레지스터 유니트의 개별적인 부분들로 입력하도록 실행된다.
상기 명령의 실행 동안, 미리 결정된 소스 레지스터 유니트들이 식별되고 대응하는 최상위 하프워드 유니트들 및 관련된 데이터가 식별된 레지스터 유니트들로부터 검색된다. 검색된 하프워드 유니트들은 추가적으로 결합되어 결과적인 목적지 레지스터 유니트의 개별적인 최상위 부분에 입력된다. 유사하게, 대응하는 최하위 하프워드 유니트들 및 관련된 데이터가 식별된 레지스터 유니트들로부터 검색된다. 검색된 하프워드 유니트들은 추가적으로 결합되어 결과적인 목적지 레지스터 유니트의 개별적인 최하위 부분에 입력된다. 최종적으로, 결과적인 목적지 레지스터 유니트는 추가적인 프로세싱을 위해 레지스터 화일 구조에 저장된다.
도 1은 명령들의 세트가 실행될 수 있는 디지털 신호 프로세싱 시스템의 블록 다이어그램이다. 도 1에 도시된 바와 같이, 디지털 신호 프로세싱 시스템(100)은 프로세싱 유니트(110), 메모리(150) 및 상기 프로세싱 유니트(110)와 상기 메모리(150)를 연결시키는 하나 이상의 버스들(160)을 포함한다.
메모리(150)는 예컨대 VLIW 컴파일러에 의해 생성되는 VLIW 패킷들의 형태로 데이터 및 명령들을 저장하며, 각각의 VLIW 패킷은 하나 이상의 명령들을 포함한다. 패킷의 각각의 명령은 전형적으로 미리 결정된 폭(width)을 가지며, 패킷에 있는 제 1 명령이 전형적으로 패킷의 마지막 명령보다 더 낮은 메모리 주소를 가지도록 메모리(150) 내의 특정한 어드레스를 가진다. 메모리에 대한 어드레싱 방식들은 기술적으로 잘 알려져 있으므로 여기에서 상세하게 논의되지 않는다. 메모 리(150)에 있는 명령들은 버스들(160)을 통해 프로세싱 유니트(110)로 로딩된다.
프로세싱 유니트(110)는 하나 이상의 파이프라인들(140)을 통해 하나 이상의 레지스터 화일 구조들(120)과 연결된 중앙 프로세싱 유니트 코어(130)를 더 포함한다. 프로세싱 유니트(110)는 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들 등을 더 포함할 수 있다.
레지스터 화일(120)은 범용 레지스터 유니트들의 세트 및 제어 레지스터 유니트들의 세트를 를 더 포함하며, 범용 레지스터 유니트들의 세트는 범용 계산들을 지원하고 도 2와 관련하여 아래에서 보다 상세하게 설명되며, 제어 레지스터 유니트들의 세트는 예컨대 하드웨어 루프들, 술어(predicate) 및 다른 특별한 피연산자(operand)들과 같은 특별-목적의 기능을 지원한다.
도 2는 디지털 신호 프로세싱 시스템 내에 있는 범용 레지스터 구조의 일 실시예를 나타내는 블록 다이어그램이다. 도 2에 도시된 바와 같이, 일 실시예에서, 레지스터 화일(120) 내에 있는 범용 레지스터 화일 구조(200)는 예컨대 32개의 32-비트 폭을 가지는 레지스터 유니트들(210)과 같은 다수의 레지스터 유니트들을 포함하며, 각각의 레지스터 유니트는 단일 레지스터로서 또는 두 개의 인접한 레지스터 유니트들(210)의 지정된 쌍들(220)로서 액세스 가능하다.
범용 레지스터 유니트들(210)은 적절한 명령에 기반하여 다수의 명칭들로 지칭될 수 있다. 예를 들어, 레지스터 유니트들(210)은 개별적으로 R0, R1,..., R30 및 R31로서 지칭될 수 있다. 또한, 레지스터 유니트들 R0 및 R1은 R1 :0으로 지칭되는 64-비트 레지스터 쌍(220)을 형성할 수 있다. 유사하게, 레지스터 유니트들 R2 및 R3은 R3:2로 지칭되는 64-비트 레지스터 쌍(220)을 형성할 수 있고, 레지스터 유니트들 R28 및 R29은 R29 :28로 지칭되는 64-비트 레지스터 쌍(220)을 형성할 수 있고, 레지스터 유니트들 R30 및 R31은 R31 :30로 지칭되는 64-비트 레지스터 쌍(220)을 형성할 수 있다.
일 실시예에서, 범용 레지스터 유니트들(210)은 예컨대 어드레스 생성, 스칼라 계산 및 벡터 계산과 같은 일반적인 계산 목적들을 위해 사용되며, 로딩/저장 명령들을 위한 어드레스들, 수치 명령들을 위한 데이터 피연산자들 및 벡터 명령들을 위한 벡터 피연산자들을 포함하는 명령들을 위한 모든 피연산자들을 제공한다. 각각의 레지스터 유니트(210)는 추가적으로 레지스터 유니트(210)의 상위 부분에 위치하는 데이터를 포함하는 최상위 하프워드 유니트 및 레지스터 유니트(210)의 하위 부분에 위치하는 데이터를 포함하는 최하위 하프워드 유니트를 포함한다. 예를 들어, 32-비트 폭의 레지스터 유니트(210)를 고려하면, 레지스터 유니트(210)의 최상위 하프워드 유니트와 최하위 하프워드 유니트는 모두 16-비트 폭의 유니트들이다.
도 3은 매우 긴 명령 워드(VLIW: Very Long Instruction Word) 디지털 신호 프로세싱 시스템 아키텍처의 일 실시예를 나타내는 블록 다이어그램이다. VLIW 시스템 아키텍처(300)는 명령 로드 버스(320), 데이터 로드 버스(322) 및 데이터 로드/저장 버스(324)를 통해 디지털 신호 프로세서(DSP)(330)로 연결되는 메모 리(310)를 포함한다.
일 실시예에서, 메모리(310)는 예컨대 1 내지 4개의 명령들을 가지는 VLIW 패킷들의 형태로 데이터 및 명령들을 저장한다. 메모리(310) 내에 저장된 명령들은 명령 로드 버스(320)를 통해 DSP(330)로 로딩된다. 일 실시예에서, 각각의 명령은 4개의 워드 폭을 가지는 128-비트 명령 로드 버스(320)를 통해 DSP(330)로 로딩되는 32-비트 워드 폭을 가진다. 일 실시예에서, 메모리(310)는 통합된 바이트-어드레싱 가능한 메모리이고, 명령들 및 데이터 모두를 저장하는 32-비트 어드레스 공간을 가지며, 리틀-엔디안(little-endian) 모드에서 동작한다.
일 실시예에서, DSP(330)는 시퀀서(335), 4개의 프로세싱 또는 실행 유니트들(345)을 위한 4개의 파이프라인들(340), 예컨대 도 2과 관련하여 상세하게 설명되는 범용 레지스터 화일 구조(200)와 같은 (다수의 범용 레지스터 유니트들을 포함하는) 범용 레지스터 화일 구조(350) 및 제어 레지스터 화일 구조(360)를 포함한다. 시퀀서(335)는 메모리(310)로부터 명령들의 패킷들을 수신하고, 명령 내에 포함된 정보를 사용하여 각각의 수신된 패킷의 각각의 명령에 대한 적절한 파이프라인(340) 및 개별적인 실행 유니트(345)를 결정한다. 패킷의 각각의 명령에 대한 이러한 결정을 한 후에, 시퀀서(335)는 적절한 실행 유니트(345)에 의한 프로세싱을 위해 명령들을 적절한 파이프라인(340)으로 입력한다.
일 실시예에서, 실행 유니트들(345)은 추가적으로 벡터 시프트 유니트, 벡터 MAC 유니트, 로드 유니트 및 로드/저장 유니트를 포함한다. 벡터 시프트 유니트(345)는, 예를 들어, S-타입, A64-타입, A32-타입, J-타입 및 CR-타입 명령들을 실행한다. 벡터 MAC 유니트(345)는, 예를 들어, M-타입, A64-타입, A32-타입, J-타입 및 JP-타입 명령들을 실행한다. 로드 유니트(345)는 메모리(310)로부터 범용 레지스터 화일 구조(350)로 데이터를 로딩하고, 예를 들어, 로드-타입 및 A32-타입 명령들을 실행한다. 로드/저장 유니트(345)는 범용 레지스터 화일 구조(350)로부터 메모리(310)로 데이터를 로딩 및 저장하고, 예를 들어, 로드-타입, 저장-타입 및 A32-타입 명령들을 실행한다.
명령을 수신하는 각각의 실행 유니트(345)는 4개의 실행 유니트들(345)에 의해 공유되는 범용 레지스터 화일 구조(350)를 사용하여 상기 명령을 수행한다. 명령에 의해 요구되는 데이터는 64-비트 데이터 로드 버스(322)를 통해 범용 레지스터 화일 구조(350)로 로딩된다. 패킷의 명령들이 실행 유니트들(345)에 의해 수행된 후에, 결과적인 데이터는 범용 레지스터 화일 구조(350)로 저장되고 그 다음에 64-비트 데이터 로드/저장 버스(324)를 통해 메모리(310)로 로딩되어 저장된다. 일 실시예에서, 예를 들어, RISC-타입 머신들에 대하여, 하나의 명령이 메모리로부터 데이터를 로딩하고, 연산을 수행하고, 그 다음에 결과들을 메모리에 저장할 수 있다. 대안적으로, DSP 유니트들에 대하여, 위의 연산들은 일반적으로 분리된다. 전형적으로, 패킷의 1 내지 4개의 명령들은 하나의 클록 사이클에서 4개의 실행 유니트들(345)에 의해 병렬적으로 수행되며, 각각의 클록 사이클 동안 최대 하나의 명령이 수신되어 파이프라인(340)에 의해 처리된다.
일 실시예에서, 실행 유니트(345)는 또한 대응하는 명령을 실행하기 위해 제어 레지스터 화일 구조(360)를 사용할 수 있다. 제어 레지스터 화일 구조(360)는, 예를 들어, 변경자(modifier), 상태 및 술어 레지스터 유니트들과 같은 특별한 레지스터 유니트들이 세트를 포함한다.
도 4는 디지털 신호 프로세싱 시스템(100) 내에 있는 다수의 레지스터 유니트들로부터의 대응하는 하프워드 유니트들을 결합하기 위한 방법의 일 실시예를 나타내는 플로우 다이어그램이다. 도 4의 실시예에서 도시된 바와 같이, 프로세싱 블록(410)에서, 디지털 신호 프로세싱 시스템(300) 내에 있는 레지스터 유니트들을 결합하기 위한 명령이 수신된다. 일 실시예에서, 예컨대 DSP(330) 내에 있는 실행 유니트(345)와 같은 프로세싱 유니트는 명령을 수신하고, 아래에서 설명되는 바와 같이, 범용 레지스터 화일 구조(350) 내에 저장된 미리 결정된 소스 레지스터 유니트들로부터의 대응하는 하프워드 유니트들을 결합하기 위해 상기 명령을 실행한다. 일 실시예에서, 미리 결정된 소스 레지스터 유니트들은 서로 다르며, 범용 레지스터 화일 구조(350) 내에서 인접하지 않게 위치하며, 그리하여 레지스터 유니트들의 지정된 쌍(200)으로서 액세스 가능하지 않다.
프로세싱 블록(420)에서, 예컨대 제 1 32-비트 폭 소스 레지스터 유니트 및 제 2 32-비트 폭 소스 레지스터 유니트와 같은 미리 결정된 소스 레지스터 유니트들이 식별된다. 일 실시예에서, 실행 유니트(345)는 범용 레지스터 화일 구조(350)와 통신하고 결합되도록 요청되는 소스 레지스터 유니트들을 식별한다. 일 실시예에서, 그 다음에 메모리(310)는 64-비트 데이터 로드 버스(322) 및/또는 64-비트 데이터 로드/저장 버스(324)를 통해 범용 레지스터 화일 구조(350)로 명령에 의해 요구되는 데이터를 로딩한다. 대안적으로, 데이터는 이미 식별된 제 1 및 제 2 소스 레지스터 유니트들 내에 저장될 수 있다.
프로세싱 블록(430)에서, 식별된 소스 레지스터 유니트들과 관련된 데이터가 검색된다. 일 실시예에서, 실행 유니트(345)는 범용 레지스터 화일 구조(350)로부터 식별된 소스 레지스터 유니트들 및 관련된 데이터를 검색한다.
프로세싱 블록(440)에서, 식별된 소스 레지스터 유니트들로부터 대응하는 최상위 하프워드 유니트들이 검색된다. 일 실시예에서, 실행 유니트(345)는 추가적으로 일 실시예에서 제 1 소스 레지스터 유니트의 최상위 또는 상위 하프워드 유니트일 수 있는 예컨대 제 1 소스 레지스터 유니트로부터의 16-비트 폭 유니트와 같은 하프워드 유니트 및 일 실시예에서 제 2 소스 레지스터 유니트의 최상위 또는 상위 하프워드 유니트일 수 있는 예컨대 제 2 소스 레지스터 유니트로부터의 16-비트 폭 유니트와 같은 하프워드 유니트를 검색한다.
프로세싱 블록(450)에서, 최상위 하프워드 유니트들은 결합되고 추가적으로 결과적인 목적지 레지스터 유니트의 최상위 또는 상위 부분으로 입력된다. 일 실시예에서, 실행 유니트(345)는 검색된 최상위 하프워드 유니트들을 결합하고 결합된 하프워드 유니트들을 결과적인 목적지 레지스터 유니트의 최상위 또는 상위 부분으로 입력한다.
프로세싱 블록(460)에서, 식별된 소스 레지스터 유니트들로부터 대응하는 최하위 하프워드 유니트들이 검색된다. 일 실시예에서, 실행 유니트(345)는 추가적으로 일 실시예에서 제 1 소스 레지스터 유니트의 최하위 또는 하위 하프워드 유니트일 수 있는 예컨대 제 1 소스 레지스터 유니트로부터의 16-비트 폭 유니트와 같 은 하프워드 유니트 및 일 실시예에서 제 2 소스 레지스터 유니트의 최하위 또는 하위 하프워드 유니트일 수 있는 예컨대 제 2 소스 레지스터 유니트로부터의 16-비트 폭 유니트와 같은 하프워드 유니트를 검색한다.
프로세싱 블록(470)에서, 최하위 하프워드 유니트들은 결합되고 추가적으로 결과적인 목적지 레지스터 유니트의 최하위 또는 하위 부분으로 입력된다. 일 실시예에서, 실행 유니트(345)는 검색된 최하위 하프워드 유니트들을 결합하고 결합된 하프워드 유니트들을 결과적인 목적지 레지스터 유니트의 최하위 또는 하위 부분으로 입력한다.
최종적으로, 프로세싱 블록(480)에서, 결과적인 목적지 레지스터 유니트는 추가적인 프로세싱을 위해 저장된다. 일 실시예에서, 실행 유니트(345)는 결과적인 목적지 레지스터 유니트를 범용 레지스터 화일 구조(350)로 출력하고 추가적인 명령들의 추가적인 프로세싱을 위해 결과적인 목적지 레지스터 유니트를 저장한다.
도 5는 도 4와 관련하여 설명되는 레지스터 유니트들을 결합하기 위한 방법을 나타내는 블록 다이어그램이다. 도 5에 도시된 바와 같이, 소스 레지스터 유니트들 RS 및 RT(510 및 520)가 식별되고 범용 레지스터 화일 구조(200)로부터 검색된다.
일 실시예에서, 소스 레지스터 유니트들 RS 및 RT(510 및 520)를 결과적인 목적지 레지스터 유니트 RD(530)로 결합하기 위한 명령은 다음과 같다:
RD = packHL (RS, RT)
여기서, RS와 RT는 개별적인 최상위 또는 상위 하프워드 유니트들 H와 최하위 또는 하위 하프워드 유니트들 L을 가지는 소스 레지스터 유니트들이다.
도 5에 도시된 바와 같이, 명령이 실행되면, 소스 레지스터 유니트 RS(510)의 최상위 또는 상위 하프워드 유니트 RS1 및 소스 레지스터 유니트 RT(520)의 최상위 또는 상위 하프워드 유니트 RT1은 결합되고 추가적으로 목적지 레지스터 유니트 RD(530)의 상위 부분으로 입력된다. 소스 레지스터 유니트 RS(510)의 최하위 또는 하위 하프워드 유니트 RS2 및 소스 레지스터 유니트 RT(520)의 최하위 또는 하위 하프워드 유니트 RT2는 결합되고 추가적으로 목적지 레지스터 유니트 RD(530)의 하위 부분으로 입력된다. 예를 들어, RS 및 RT(510 및 520)가 모두 32-비트 폭 레지스터 유니트들이라면, 일 실시예에서, 목적지 레지스터 유니트 RD(530)는 64-비트 폭 레지스터이다.
도 6은 디지털 신호 프로세싱 시스템 내에 있는 다수의 레지스터 유니트들로부터의 대응하는 하프워드 유니트들을 결합하기 위한 명령의 일 실시예에 대한 블록 다이어그램이다. 도 6에 도시된 바와 같이, 도 5와 관련하여 설명된 명령은 예컨대 목적지 레지스터 유니트 RD를 인코딩하기 위해 필요한 정보를 포함하는 필드(610), 나중의 인코딩을 위해 예비된 빈(empty) 필드(620), 소스 레지스터 유니트 RT를 인코딩하기 위해 필요한 정보를 포함하는 필드(630), 나중의 인코딩을 위해 예비된 다른 빈(empty) 필드(640), 패킷/루프 분석(parse) 비트 정보를 포함하는 필드(650), 소스 레지스터 유니트 RS를 인코딩하기 위해 필요한 정보를 포함하는 필드(660), 동작 코드 정보를 포함하는 필드(670), 소스 및 목적지 레지스터 유니트들의 레지스터 타입과 관련된 정보를 포함하는 필드(680) 및 명령 클래스 정보를 포함하는 필드(690)와 같은 다수의 필드들을 포함한다. 그러나, 대안적으로, 본 발명의 범위를 벗어남이 없이, 다른 추가적인 필드들이 또한 위의 명령들의 인코딩 내에 포함될 수 있다.
본 발명의 기술 분야에서 통상의 지식을 가진 자는 정보 및 신호들이 임의의 다양한 상이한 기술들 및 기법들을 이용하여 표현될 수 있다는 것을 이해할 것이다. 예를 들어, 위의 설명에서 참조될 수 있는 데이터, 지시들, 명령들, 정보, 신호들, 비트들, 심볼들 및 칩들은 전압들, 전류들, 전자기파들, 자기장들 또는 입자들, 광학장들 또는 입자들, 또는 이들의 임의의 결합에 의해 표현될 수 있다.
본 발명의 기술 분야에서 통상의 지식을 가진 자는 여기에 개시된 실시예들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 회로들 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어 또는 이들 모두의 결합에 의해 구현될 수 있다는 것을 이해할 것이다. 하드웨어 및 소프트웨어의 이러한 상호 호환성을 명확하게 설명하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들이 이들의 기능과 관련하여 위에서 일반적으로 설명되었다. 이러한 기능이 하드웨어 또는 소프트웨어로서 구현되는지 여부는 특정한 애플리케이션 및 전체 시 스템에 대하여 부과되는 설계 제약들에 따라 좌우된다. 본 발명의 기술 분야에서 통상의 지식을 가진 자는 각각의 특정한 애플리케이션에 대하여 다양한 방식들로 설명된 기능을 구현할 수 있으나, 이러한 구현 결정들은 본 발명의 범위를 벗어나는 것으로 해석되어서는 안 될 것이다.
여기에 개시된 실시예들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들 및 회로들은 여기에서 설명되는 기능들을 수행하도록 설계된 범용 프로세서, 디지털 신호 프로세서(DSP), 애플리케이션 특정 집적 회로(ASIC), 필드 프로그래밍가능한 게이트 어레이(FPGA) 또는 다른 프로그래밍가능한 로직 장치, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들 또는 이들의 임의의 조합을 통해 구현되거나 또는 수행될 수 있다. 범용 프로세서는 마이크로프로세서일 수 있으며, 대안적으로 범용 프로세서는 임의의 기존의 프로세서, 제어기, 마이크로콘트롤러 또는 상태 머신일 수 있다. 프로세서는 또한 컴퓨팅 장치들의 조합, 예를 들어, DSP 및 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 연결된 하나 이상의 마이크로프로세서들 또는 임의의 다른 이러한 구성으로서 구현될 수 있다.
여기에서 제시되는 실시예들과 관련하여 설명되는 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 프로세서에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 이러한 실시예들은 (컴퓨터의 CPU와 같은) 프로세서 또는 프로세싱 코어의 소정의 형태를 통해 실행되거나 또는 기계 또는 컴퓨터 판독가능 매체 내에서 구현되거나 또는 실현되는 소프트웨 어 프로그램들로서 또는 이러한 소프트웨어 프로그램들을 지원하기 위해 사용될 수 있다는 것을 이해하도록 한다. 기계 판독가능 매체는 기계(예를 들어, 컴퓨터)에 의해 판독가능한 형태로 정보를 저장하거나 또는 전송하기 위한 임의의 메커니즘을 포함한다. 예를 들어, 기계 판독가능 매체는 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드 디스크, 이동식 디스크, CD-ROM, 또는 기술적으로 공지된 임의의 다른 형태의 저장 매체를 포함할 수 있다. 예시적인 저장 매체는 프로세서와 연결되며, 그 결과 프로세서는 저장 매체로부터 정보를 판독하고 저장 매체로 정보를 기록할 수 있다. 대안적으로, 저장 매체는 프로세서로 통합될 수 있다. 프로세서 및 저장 매체는 ASIC 내에 포함될 수 있다. ASIC은 사용자 터미널 내에 포함될 수 있다. 대안적으로, 프로세서 및 저장 매체는 사용자 터미널 내에 개별적인 컴포넌트들로서 포함될 수 있다.
제시된 실시예들에 대한 설명은 임의의 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 이용하거나 또는 실시할 수 있도록 제공된다. 이러한 실시예들에 대한 다양한 변형들은 본 발명의 기술 분야에서 통상의 지식을 가진 자에게 명백할 것이며, 여기에 정의된 일반적인 원리들은 본 발명의 범위를 벗어남이 없이 다른 실시예들에 적용될 수 있다. 그리하여, 본 발명은 여기에 제시된 실시예들로 한정되는 것이 아니라, 여기에 제시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위에서 해석되어야 할 것이다.

Claims (35)

  1. 컴퓨터 판독가능 매체로서,
    상기 매체 내에 포함되며, 프로세싱 시스템에서 실행될 때, 상기 프로세싱 시스템이 레지스터 화일 구조 내에 있는 적어도 두 개의 소스 레지스터 유니트들로부터의 대응하는 하프워드(half word) 유니트들을 결합하고 상기 대응하는 하프워드 유니트들을 결과적인 목적지 레지스터 유니트의 개별적인 부분들로 입력하도록 하는 다수의 실행가능한 명령들의 명령을 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  2. 제 1 항에 있어서,
    각각의 소스 레지스터 유니트는 32-비트 폭(width) 레지스터 유니트이고 상기 결과적인 목적지 레지스터 유니트는 64-비트 폭 레지스터 유니트인 것을 특징으로 하는 컴퓨터 판독가능 매체.
  3. 제 2 항에 있어서,
    각각의 하프워드 유니트는 16-비트 폭 유니트인 것을 특징으로 하는 컴퓨터 판독가능 매체.
  4. 제 1 항에 있어서,
    상기 명령의 실행은 추가적으로 상기 프로세싱 시스템이 상기 적어도 두 개의 다른 소스 레지스터 유니트들로부터의 상기 대응하는 하프워드 유니트들과 관련된 데이터를 상기 결과적인 목적지 레지스터 유니트의 상기 개별적인 부분들로 결합하도록 하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  5. 제 1 항에 있어서,
    상기 명령의 실행은 추가적으로 상기 프로세싱 시스템이 메모리로부터 상기 적어도 두 개의 소스 레지스터 유니트들과 관련된 데이터를 검색하고, 상기 개별적인 소스 레지스터 유니트들 내에 상기 데이터를 저장하고, 상기 개별적인 소스 레지스터 유니트들로부터 상기 대응하는 하프워드 유니트들과 관련된 데이터를 검색하고, 상기 대응하는 하프워드 유니트들과 관련된 상기 데이터를 상기 결과적인 목적지 레지스터 유니트의 상기 개별적인 부분들로 결합하도록 하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  6. 제 1 항에 있어서,
    상기 프로세싱 시스템은 디지털 신호 프로세서인 것을 특징으로 하는 컴퓨터 판독가능 매체.
  7. 제 1 항에 있어서,
    상기 적어도 두 개의 소스 레지스터 유니트들은 서로 다른 레지스터 유니트 들인 것을 특징으로 하는 컴퓨터 판독가능 매체.
  8. 제 1 항에 있어서,
    상기 명령의 실행은 추가적으로 상기 프로세싱 시스템이 상기 적어도 두 개의 소스 레지스터 유니트들 각각으로부터 최상위(most significant) 하프워드 유니트들을 검색하고 상기 최상위 하프워드 유니트들을 상기 목적지 레지스터 유니트의 최상위 부분으로 입력하도록 하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  9. 제 8 항에 있어서,
    상기 명령의 실행은 추가적으로 상기 프로세싱 시스템이 상기 적어도 두 개의 소스 레지스터 유니트들 각각으로부터 최하위(least significant) 하프워드 유니트들을 검색하고 상기 최하위 하프워드 유니트들을 상기 목적지 레지스터 유니트의 최하위 부분으로 입력하도록 하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  10. 실행가능한 명령을 수신하는 단계; 및
    레지스터 화일 구조 내에 있는 적어도 두 개의 다른 소스 레지스터 유니트들로부터의 대응하는 하프워드 유니트들을 결합하고 상기 대응하는 하프워드 유니트들을 결과적인 목적지 레지스터 유니트의 개별적인 부분들로 입력하기 위해 상기 명령을 실행하는 단계를 포함하는 방법.
  11. 제 10 항에 있어서,
    각각의 소스 레지스터 유니트는 32-비트 폭 레지스터 유니트이고 상기 결과적인 목적지 레지스터 유니트는 64-비트 폭 레지스터 유니트인 것을 특징으로 하는 방법.
  12. 제 11 항에 있어서,
    각각의 하프워드 유니트는 16-비트 폭 유니트인 것을 특징으로 하는 방법.
  13. 제 10 항에 있어서,
    상기 실행하는 단계는 상기 적어도 두 개의 다른 소스 레지스터 유니트들로부터의 상기 대응하는 하프워드 유니트들과 관련된 데이터를 상기 결과적인 목적지 레지스터 유니트의 상기 개별적인 부분들로 결합하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  14. 제 10 항에 있어서,
    상기 실행하는 단계는,
    메모리로부터 상기 적어도 두 개의 소스 레지스터 유니트들과 관련된 데이터를 검색하는 단계;
    상기 개별적인 소스 레지스터 유니트들 내에 상기 데이터를 저장하는 단계;
    상기 개별적인 소스 레지스터 유니트들로부터 상기 대응하는 하프워드 유니 트들과 관련된 데이터를 검색하는 단계; 및
    상기 대응하는 하프워드 유니트들과 관련된 데이터를 상기 결과적인 목적지 레지스터 유니트의 상기 개별적인 부분들로 결합하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  15. 제 10 항에 있어서,
    상기 프로세싱 시스템은 디지털 신호 프로세서인 것을 특징으로 하는 방법.
  16. 제 10 항에 있어서,
    상기 적어도 두 개의 소스 레지스터 유니트들은 서로 다른 레지스터 유니트들인 것을 특징으로 하는 방법.
  17. 제 10 항에 있어서,
    상기 실행하는 단계는,
    상기 적어도 두 개의 소스 레지스터 유니트들 각각으로부터 최상위 하프워드 유니트들을 검색하는 단계; 및
    상기 최상위 하프워드 유니트들을 상기 목적지 레지스터 유니트의 최상위 부분으로 입력하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  18. 제 17 항에 있어서,
    상기 실행하는 단계는,
    상기 적어도 두 개의 소스 레지스터 유니트들 각각으로부터 최하위 하프워드 유니트들을 검색하는 단계; 및
    상기 최하위 하프워드 유니트들을 상기 목적지 레지스터 유니트의 최하위 부분으로 입력하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  19. 적어도 하나의 명령을 포함하는 패킷들을 저장하기 위한 메모리; 및
    상기 메모리에 연결되며, 프로세싱 유니트 및 상기 프로세싱 유니트에 연결된 레지스터 화일 구조를 포함하는 프로세서를 포함하는 장치로서,
    상기 프로세싱 유니트는 상기 레지스터 화일 구조 내에 있는 적어도 두 개의 소스 레지스터 유니트들로부터의 대응하는 하프워드 유니트들을 결합하고 상기 대응하는 하프워드 유니트들을 결과적인 목적지 레지스터 유니트의 개별적인 부분들로 입력하도록 하는, 상기 패킷들 내에 있는 명령을 실행하는 것을 특징으로 하는 장치.
  20. 제 19 항에 있어서,
    각각의 소스 레지스터 유니트는 32-비트 폭 레지스터 유니트이고 상기 결과적인 목적지 레지스터 유니트는 64-비트 폭 레지스터 유니트인 것을 특징으로 하는 장치.
  21. 제 20 항에 있어서,
    각각의 하프워드 유니트는 16-비트 폭 유니트인 것을 특징으로 하는 장치.
  22. 제 19 항에 있어서,
    상기 프로세싱 유니트는 추가적으로 상기 적어도 두 개의 다른 소스 레지스터 유니트들로부터의 상기 대응하는 하프워드 유니트들과 관련된 데이터를 상기 결과적인 목적지 레지스터 유니트의 상기 개별적인 부분들로 결합하는 것을 특징으로 하는 장치.
  23. 제 19 항에 있어서,
    상기 프로세싱 유니트는 추가적으로 상기 메모리로부터 상기 적어도 두 개의 소스 레지스터 유니트들과 관련된 데이터를 검색하고, 상기 개별적인 소스 레지스터 유니트들 내에 상기 데이터를 저장하고, 상기 개별적인 소스 레지스터 유니트들로부터 상기 대응하는 하프워드 유니트들과 관련된 데이터를 검색하고, 상기 대응하는 하프워드 유니트들과 관련된 상기 데이터를 상기 결과적인 목적지 레지스터 유니트의 상기 개별적인 부분들로 결합하는 것을 특징으로 하는 장치.
  24. 제 19 항에 있어서,
    상기 프로세서는 디지털 신호 프로세서인 것을 특징으로 하는 장치.
  25. 제 19 항에 있어서,
    상기 적어도 두 개의 소스 레지스터 유니트들은 서로 다른 레지스터 유니트들인 것을 특징으로 하는 장치.
  26. 제 19 항에 있어서,
    상기 프로세싱 유니트는 추가적으로 상기 적어도 두 개의 소스 레지스터 유니트들 각각으로부터 최상위 하프워드 유니트들을 검색하고 상기 최상위 하프워드 유니트들을 상기 목적지 레지스터 유니트의 최상위 부분으로 입력하는 것을 특징으로 하는 장치.
  27. 제 26 항에 있어서,
    상기 프로세싱 유니트는 추가적으로 상기 적어도 두 개의 소스 레지스터 유니트들 각각으로부터 최하위 하프워드 유니트들을 검색하고 상기 최하위 하프워드 유니트들을 상기 목적지 레지스터 유니트의 최하위 부분으로 입력하는 것을 특징으로 하는 장치.
  28. 실행가능한 명령을 수신하기 위한 수단; 및
    레지스터 화일 구조 내에 있는 적어도 두 개의 다른 소스 레지스터 유니트들로부터의 대응하는 하프워드 유니트들을 결합하고 상기 대응하는 하프워드 유니트들을 결과적인 목적지 레지스터 유니트의 개별적인 부분들로 입력하기 위해 상기 명령을 실행하기 위한 수단을 포함하는 장치.
  29. 제 28 항에 있어서,
    각각의 소스 레지스터 유니트는 32-비트 폭 레지스터 유니트이고 상기 결과적인 목적지 레지스터 유니트는 64-비트 폭 레지스터 유니트인 것을 특징으로 하는 장치.
  30. 제 29 항에 있어서,
    각각의 하프워드 유니트는 16-비트 폭 유니트인 것을 특징으로 하는 장치.
  31. 제 28 항에 있어서,
    상기 적어도 두 개의 다른 소스 레지스터 유니트들로부터의 상기 대응하는 하프워드 유니트들과 관련된 데이터를 상기 결과적인 목적지 레지스터 유니트의 상기 개별적인 부분들로 결합하기 위한 수단을 더 포함하는 것을 특징으로 하는 장치.
  32. 제 28 항에 있어서,
    메모리로부터 상기 적어도 두 개의 소스 레지스터 유니트들과 관련된 데이터를 검색하기 위한 수단;
    상기 개별적인 소스 레지스터 유니트들 내에 상기 데이터를 저장하기 위한 수단;
    상기 개별적인 소스 레지스터 유니트들로부터 상기 대응하는 하프워드 유니트들과 관련된 데이터를 검색하기 위한 수단; 및
    상기 대응하는 하프워드 유니트들과 관련된 데이터를 상기 결과적인 목적지 레지스터 유니트의 상기 개별적인 부분들로 결합하기 위한 수단을 더 포함하는 것을 특징으로 하는 장치.
  33. 제 28 항에 있어서,
    상기 적어도 두 개의 소스 레지스터 유니트들은 서로 다른 레지스터 유니트들인 것을 특징으로 하는 장치.
  34. 제 28 항에 있어서,
    상기 적어도 두 개의 소스 레지스터 유니트들 각각으로부터 최상위 하프워드 유니트들을 검색하기 위한 수단; 및
    상기 최상위 하프워드 유니트들을 상기 목적지 레지스터 유니트의 최상위 부분으로 입력하기 위한 수단을 더 포함하는 것을 특징으로 하는 장치.
  35. 제 34 항에 있어서,
    상기 적어도 두 개의 소스 레지스터 유니트들 각각으로부터 최하위 하프워드 유니트들을 검색하기 위한 수단; 및
    상기 최하위 하프워드 유니트들을 상기 목적지 레지스터 유니트의 최하위 부분으로 입력하기 위한 수단을 더 포함하는 것을 특징으로 하는 장치.
KR1020087029921A 2006-05-10 2007-05-07 마이크로프로세서 내에서 다수의 레지스터 유닛들로부터의 대응하는 하프워드 유닛들을 결합하기 위한 방법 및 시스템 KR100988964B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/431,300 US8127117B2 (en) 2006-05-10 2006-05-10 Method and system to combine corresponding half word units from multiple register units within a microprocessor
US11/431,300 2006-05-10

Publications (2)

Publication Number Publication Date
KR20090009959A true KR20090009959A (ko) 2009-01-23
KR100988964B1 KR100988964B1 (ko) 2010-10-20

Family

ID=38561190

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087029921A KR100988964B1 (ko) 2006-05-10 2007-05-07 마이크로프로세서 내에서 다수의 레지스터 유닛들로부터의 대응하는 하프워드 유닛들을 결합하기 위한 방법 및 시스템

Country Status (6)

Country Link
US (1) US8127117B2 (ko)
EP (1) EP2027533A2 (ko)
JP (4) JP2009536774A (ko)
KR (1) KR100988964B1 (ko)
CN (2) CN104133748B (ko)
WO (1) WO2007134013A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9122474B2 (en) 2011-11-15 2015-09-01 Samsung Electronics Co., Ltd. Apparatus and method for reducing overhead caused by communication between clusters
KR20200069544A (ko) 2018-12-07 2020-06-17 대우조선해양 주식회사 파이프 시편 절단용 지그기구

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8127117B2 (en) * 2006-05-10 2012-02-28 Qualcomm Incorporated Method and system to combine corresponding half word units from multiple register units within a microprocessor
US8417922B2 (en) * 2006-08-02 2013-04-09 Qualcomm Incorporated Method and system to combine multiple register units within a microprocessor
JP2011242995A (ja) * 2010-05-18 2011-12-01 Toshiba Corp 半導体装置
US20120254589A1 (en) * 2011-04-01 2012-10-04 Jesus Corbal San Adrian System, apparatus, and method for aligning registers
JP5701930B2 (ja) * 2013-04-22 2015-04-15 株式会社東芝 半導体装置
US11593117B2 (en) 2018-06-29 2023-02-28 Qualcomm Incorporated Combining load or store instructions

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL7317545A (nl) * 1973-12-21 1975-06-24 Philips Nv Geheugensysteem met hoofd- en buffergeheugen.
JPH0415832A (ja) * 1990-05-09 1992-01-21 Nec Corp 障害処理方式
US5564056A (en) * 1994-03-01 1996-10-08 Intel Corporation Method and apparatus for zero extension and bit shifting to preserve register parameters in a microprocessor utilizing register renaming
EP0743591B1 (en) 1995-05-16 2002-01-02 Océ-Technologies B.V. Printing system comprising a communication control apparatus
GB9509987D0 (en) 1995-05-17 1995-07-12 Sgs Thomson Microelectronics Manipulation of data
GB9509988D0 (en) * 1995-05-17 1995-07-12 Sgs Thomson Microelectronics Matrix transposition
EP0847551B1 (en) * 1995-08-31 2012-12-05 Intel Corporation A set of instructions for operating on packed data
DE69625790T2 (de) * 1995-09-01 2003-11-20 Philips Electronics Na Verfahren und vorrichtung für anpassbare operationen durch einen prozessor
US5933650A (en) * 1997-10-09 1999-08-03 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US6052522A (en) 1997-10-30 2000-04-18 Infineon Technologies North America Corporation Method and apparatus for extracting data stored in concatenated registers
CN100351782C (zh) * 1999-05-13 2007-11-28 Arc国际美国控股公司 用于设计数字处理器的方法以及装置
US6463525B1 (en) * 1999-08-16 2002-10-08 Sun Microsystems, Inc. Merging single precision floating point operands
US6631460B1 (en) * 2000-04-27 2003-10-07 Institute For The Development Of Emerging Architectures, L.L.C. Advanced load address table entry invalidation based on register address wraparound
AU2001259555A1 (en) * 2000-05-05 2001-11-20 Ruby B. Lee A method and system for performing subword permutation instructions for use in two-dimensional multimedia processing
US7228403B2 (en) 2000-12-23 2007-06-05 International Business Machines Corporation Method for handling 32 bit results for an out-of-order processor with a 64 bit architecture
JP3776732B2 (ja) 2001-02-02 2006-05-17 株式会社東芝 プロセッサ装置
US7103756B2 (en) * 2002-09-30 2006-09-05 Hewlett-Packard Development Company, L.P. Data processor with individually writable register subword locations
US7689641B2 (en) * 2003-06-30 2010-03-30 Intel Corporation SIMD integer multiply high with round and shift
GB2409064B (en) 2003-12-09 2006-09-13 Advanced Risc Mach Ltd A data processing apparatus and method for performing in parallel a data processing operation on data elements
GB2409066B (en) * 2003-12-09 2006-09-27 Advanced Risc Mach Ltd A data processing apparatus and method for moving data between registers and memory
US7376813B2 (en) * 2004-03-04 2008-05-20 Texas Instruments Incorporated Register move instruction for section select of source operand
US7237096B1 (en) * 2004-04-05 2007-06-26 Sun Microsystems, Inc. Storing results of producer instructions to facilitate consumer instruction dependency tracking
US8621444B2 (en) * 2004-06-01 2013-12-31 The Regents Of The University Of California Retargetable instruction set simulators
US8127117B2 (en) * 2006-05-10 2012-02-28 Qualcomm Incorporated Method and system to combine corresponding half word units from multiple register units within a microprocessor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9122474B2 (en) 2011-11-15 2015-09-01 Samsung Electronics Co., Ltd. Apparatus and method for reducing overhead caused by communication between clusters
KR20200069544A (ko) 2018-12-07 2020-06-17 대우조선해양 주식회사 파이프 시편 절단용 지그기구

Also Published As

Publication number Publication date
JP6242615B2 (ja) 2017-12-06
JP2018156672A (ja) 2018-10-04
US20070266226A1 (en) 2007-11-15
JP2009536774A (ja) 2009-10-15
WO2007134013A3 (en) 2008-01-10
WO2007134013B1 (en) 2008-02-14
US8127117B2 (en) 2012-02-28
CN104133748A (zh) 2014-11-05
CN104133748B (zh) 2018-10-19
KR100988964B1 (ko) 2010-10-20
CN101438236A (zh) 2009-05-20
JP2016194929A (ja) 2016-11-17
EP2027533A2 (en) 2009-02-25
WO2007134013A2 (en) 2007-11-22
JP2013242892A (ja) 2013-12-05

Similar Documents

Publication Publication Date Title
KR101048234B1 (ko) 마이크로프로세서 내부의 다수의 레지스터 유닛들을 결합하기 위한 방법 및 시스템
US8412917B2 (en) Data exchange and communication between execution units in a parallel processor
US8892849B2 (en) Multithreaded processor with multiple concurrent pipelines per thread
CN101965554B (zh) 选择性地提交已执行指令的结果的系统和方法
US7730285B1 (en) Data processing system with partial bypass reorder buffer and combined load/store arithmetic logic unit and processing method thereof
KR100988964B1 (ko) 마이크로프로세서 내에서 다수의 레지스터 유닛들로부터의 대응하는 하프워드 유닛들을 결합하기 위한 방법 및 시스템
JP2007533006A (ja) 複合命令形式および複合オペレーション形式を有するプロセッサ
JP5326314B2 (ja) プロセサおよび情報処理装置
US6915411B2 (en) SIMD processor with concurrent operation of vector pointer datapath and vector computation datapath
EP1188112A2 (en) Digital signal processor computation core
US7107302B1 (en) Finite impulse response filter algorithm for implementation on digital signal processor having dual execution units
US7346763B2 (en) Processor instruction with repeated execution code
US20050102487A1 (en) Vector processor with data swap and replication
KR101056553B1 (ko) 마이크로프로세서 내에서 시프팅 및 라운딩 연산들을 수행하기 위한 방법 및 시스템
US11775310B2 (en) Data processing system having distrubuted registers

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140929

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150930

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160929

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190924

Year of fee payment: 10