KR20040005829A - 레지스터 이동 연산 - Google Patents

레지스터 이동 연산 Download PDF

Info

Publication number
KR20040005829A
KR20040005829A KR10-2003-7004681A KR20037004681A KR20040005829A KR 20040005829 A KR20040005829 A KR 20040005829A KR 20037004681 A KR20037004681 A KR 20037004681A KR 20040005829 A KR20040005829 A KR 20040005829A
Authority
KR
South Korea
Prior art keywords
data
pipeline
register
pointer register
pointer
Prior art date
Application number
KR10-2003-7004681A
Other languages
English (en)
Other versions
KR100512655B1 (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 KR20040005829A publication Critical patent/KR20040005829A/ko
Application granted granted Critical
Publication of KR100512655B1 publication Critical patent/KR100512655B1/ko

Links

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
    • 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
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/3013Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Abstract

본 발명의 실시예에서, 프로그램 가능한 프로세서는 단일 기계 명령어에 응답하여 포인터 레지스터와 데이터 레지스터 사이에서 데이터를 조건적으로 이동시키도록 구성된다. 프로세서는 복수의 단을 구비한다. 기계 명령어에 응답하여, 제어 장치는 레지스터간에 데이터를 이동시키기 위해서 파이프라인에 지시하여 파이프라인을 가로질러 데이터를 전달하게 한다.

Description

레지스터 이동 연산{REGISTER MOVE OPERATIONS}
디지털 신호 프로세서(DSP)와 같은, 대다수의 통상의 프로그램 가능한 프로세서들은 데이터 처리시에 사용하는 각종의 내부 레지스터들을 포함한다. 데이터 레지스터라고 하는 하나의 유형의 레지스터는 현재 연산의 결과를 기억하고 그 결과를 다음 연산에 공급하는데 주로 이용된다. 데이터 레지스터는 종종 레지스터 파일이라고 부르는 레지스터 세트로 분류된다.
두번째 유형의 레지스터는 통상적으로 어드레스 기억용으로 이용되는 포인터 레지스터이다. 데이터 레지스터가 기억하는 데이터가 종종 프로세서내에 있는 실행 장치에 직접 제공되는 것과 달리, 포인터 레지스터가 기억하는 어드레스는 메모리 시스템으로부터 데이터를 검색하는데 주로 사용된다. 포인터 레지스터 그룹에는 종종 스택 포인터, 프레임 포인터 및 다수개의 범용 포인터 레지스터가 포함된다.
본 발명은 컴퓨터의 레지스터 이동 연산에 관한 것이다.
도 1은 본 발명에 따른 파이프라인형의 프로그램 가능한 프로세서의 예를 나타내는 블록도이다.
도 2는 프로그램 가능한 프로세서에 적합한 예시적인 파이프라인을 나타내는블록도이다.
도 3과 도 4는 본 발명에 따른 레지스터 이동 명령어의 예시적인 실행을 나타내는 흐름도이다.
도 1은 하나 이상의 파이프라인(4)과 제어 장치(6)를 구비한 프로그램 가능한 프로세서(2)를 나타내는 블록도이다. 하기에서 상세하게 설명하겠지만, 프로세서(2)는 포인터 레지스터와 데이터 레지스터 사이에서 데이터를 이동시키는 기계 명령어를 지원한다. 특히, 프로세서(2)는 본 명세서에서 CC MOVE 명령어라고 부르는 기계 명령어를 지원하는데, 이 명령어는 포인터 레지스터와 데이터 레지스터 사이에서 데이터를 이동시킨다.
파이프라인(4)은 명령어를 처리하는 다수개의 단(stage)을 구비한 다수개의 하드웨어 파이프라인을 포함한다. 단들은 다른 단들과 동시에 처리할 수 있고 그 결과를 클록 사이클에 따라 다음 단에 전달할 수 있다. 명령어의 결과는 끝단 파이프라인(4)에 고속으로 연속하여 출현한다.
제어 장치(6)는 파이프라인(4)의 여러 단을 통과하는 명령어와 데이터의 흐름을 제어한다. 명령어를 처리하는 중에, 예를 들어, 제어 장치(6)는 파이프라인의 다양한 요소에 명령어 인출 및 명령어 디코딩을 지시하여 대응하는 연산을 수행하게 하고 그 결과를 메모리나 로컬 레지스터에 재기록하게 한다.
도 2는 본 발명의 일실시예에 따라 배치된 데이터 어드레스 발생(DAG) 파이프라인(12), 실행 장치(EU) 파이프라인(14) 및 로드/저장(L/S) 파이프라인(16)을구비한 파이프라인형 프로세서의 예를 도시하고 있다. 각각의 파이프 라인은, 예를 들어 5개의 단, 즉 명령어 인출(IF) 단, 디코드(DEC) 단, 어드레스 계산 및 데이터 인출(AC) 단, 실행(EX) 단, 및 재기록(WB) 단을 갖는다.
DAG 파이프라인(12)내에서, 명령어는 IF 단 중에서 인출 장치(21)에 의해 메모리나 명령어 캐시로부터 인출되고 DEC 단 중에서 디코드된다. 또한, DAG 파이프라인(12)의 DEC 단은 메모리 어드레스를 기억하는 일련의 포인터 레지스터(22)를 포함할 수 있다. 다음 클록 사이클에서, 디코딩된 명령어와 그 명령어가 사용하는 임의의 포인터 어드레스는 DAG 파이프라인(12)의 AC 단에 있는 데이터 어드레스 발생기(DAG)(23)에 전달될 수 있다. DAG(23)는 연산을 수행하는데 필요한 임의의 추가 메모리 어드레스를 계산할 수 있다. 이들 어드레스는 DAG 파이프라인(12)의 하류로 전달되어 포인터 레지스터(22)에 재기록될 수 있다. 이와 다르게, 명령어는 실행 장치(25)에서 사용하도록 경로(15)를 경유해서 EU 파이프라인(14)에 전달하거나, 메모리(18)로부터 데이터를 로딩하기 위해 경로(17)를 경유해서 L/S 파이프라인(16)에 전달할 수 있다. 일실시예에서, DAG(23)는 인덱스, 베이스 및 길이 레지스터와 같은 포인터 레지스터로서 사용되는 원형 버퍼 어드레싱 레지스터를 포함할 수 있다.
EX 단 중에서, 실행 장치(25)는 예컨대 2개의 숫자를 더하거나 곱하는 특정 연산을 수행할 수 있다. 실행 장치(25)는, 예컨대 하나 이상의 산술 논리 연산 장치(ALU), 부동 소수점 연산 장치(FPU) 및 배럴 시프터(barrel shifter)를 비롯해서, 연산을 수행하는 특수 하드웨어를 포함할 수 있다. 데이터 레지스터(24)는 파이프라인(4)의 EX 단내에 배치되어 있으며 국부 기억된 데이터를 실행 장치(25)에 직접 공급한다. 또한, DAG(23)에 의해 발생된 메모리 어드레스에 기초하거나, 포인터 레지스터에 저장된 어드레스에 기초해서, 데이터 메모리(18)로부터 데이터를 검색하여 WB 단에 전달할 수 있다. WB 단 중에서, 연산 결과가 목적지에 기록될 수 있다. WB 단은 결과를 저장하기 위해 2개의 경로를 갖는다. 출력(26)은 결과를 데이터 메모리(18) 또는 데이터 레지스터(24)에 기록할 때 인에이블될 수 있다. 출력(27)은 결과를 포인터 레지스터(22)에 기록할 때 인에이블될 수 있다.
프로세서(2)가 지원하는 CC MOVE 명령어에 의해 소프트웨어 애플리케이션이 데이터를 포인터 레지스터(22)와 데이터 레지스터(24) 사이에서 직접 이동시킬 수 있다. 더욱이, CC MOVE 명령어에 의해 프로세서는 조건 플래그(CC_FLAG)(29)의 상태에 따라 데이터를 이동시킬 수 있으며, 이 조건 플래그는 비교 명령어(CMP)와 같은 이전의 명령어, CC_FLAG(29)를 직접 설정하는 연산이나 기타 논리 연산에 의해 통상적으로 설정된다. CC_FLAG(29)는 상태 레지스터나 플립플롭과 같은 기억 회로내에 단일 비트로서 기억될 수 있고, CMP 명령어가 예컨대 EX 단을 빠져 나갈 때 설정될 수 있다.
도 3은 일실시예에 따라 소스 레지스터가 포인터 레지스터(22)이고 목적지 레지스터가 데이터 레지스터(24)일 경우에 제어 장치(6)가 CC MOVE 기계 명령어를 실행하는 예시적인 처리(30)를 나타내는 흐름도이다. 이 처리(30)는 CC_FLAG(29)가 설정될 때에 결정되는 이동 명령어를 참조하여 설명되지만, 이 이동 명령어는 CC_FLAG(29)가 클리어될 때에 결정될 수도 있으며, 본 발명의 범위가 여기에 한정되지는 않는다.
CC_FLAG(29)는 종종 이전의 명령어가 EX 단을 빠져 나갈 때 설정되기 때문에, 파이프라인(4)은 CC_FLAG를 기록하기 전에 CC MOVE 명령어를 부분적으로 처리할 수 있다. 더욱 자세하게 설명하면, CC MOVE 명령어가 DEC 단에 있을 때, 제어 장치(6)는 이동이 발생할 것이라고 예상하여 포인터 레지스터(22)의 출력을 인에이블하고 기억된 어드레스를 다음 클록 사이클(31)에서 AC 단에 전달한다(31).
AC 단 중에서, 제어 장치(6)는 DAG(23)에 지시하여 어드레스를 변형없이 EX 단에 전달하게 한다(32). 이와 다르게, DAG(23) 안에 있는 포인터 레지스터(도시 생략)에 대하여, 제어 장치(6)는 그 출력들을 AC 단에서 인에이블할 수 있다.
EX 단 중에서, 어드레스는 경로(15)를 경유하여 실행 장치(25)에 전달될 수 있다. 제어 장치(25)는 실행 장치(25)에 지시하여 어드레스를 변형없이 WB 단에 전달게 할 수 있다(33).
WB 단에서, 제어 장치(6)는 실행 장치(25)내에 있는 CC_FLAG(29)의 상태를 판정하여 그 상태에 따라 데이터 레지스터(24)로의 기록을 인에이블할 것인지 디스에이블할 것인지를 결정할 수 있다. CC_FLAG(29)가 설정되어 있다면, 제어 장치(6)는 적합한 데이터 레지스터(24)를 선택하고 출력부(26)를 거쳐 그 어드레스를 기록한다(34). 이러한 방식으로, 어드레스는 CC MOVE 명령어에 응답하여 포인터 레지스터(22)로부터 데이터 레지스터(24)에 카피된다. 특히, 포인터 레지스터(22)로부터 데이터 레지스터(24)로 데이터를 이동시키기 위해서, 어드레스는 파이프라인(4)을 가로질러 전달될 수 있다. 더욱 자세하게 설명하면, 어드레스는 제1 파이프라인인DAG 파이프라인(12)으로부터 제2 파이프라인인 EU 파이프라인(14)으로 전달될 수 있으며, 어드레스는 조건 플래그가 설정되어 있다면 데이터 레지스터(24)에 기록될 수 있다. 프로세서안에서 파이프라인을 물리적으로 분리할 수 있기 때문에, 한 파이프라인에서 다른 파이프라인으로 데이터를 전달할 때 지연이 있을 수 있다. 따라서, 위험을 줄이고 어드레스를 데이터 레지스터(24)에 정확하게 기록하기 위해서 WB 단 이전에 DAG 파이프라인(12)으로부터 EU 파이프라인(14)으로 어드레스를 전달한다.
도 4는 일실시예에 따라 소스 레지스터가 데이터 레지스터(24)이고 목적지 레지스터가 포인터 레지스터(28)인 경우에 제어 장치(6)가 CC MOVE 기계 명령어를 실행할 수 있는 예시적인 처리(40)를 나타내는 흐름도이다.
EX 단 중에서, 제어 장치(6)는 데이터 레지스터(24)의 출력을 인에이블하여, 저장된 데이터를 EU 파이프라인(14)으로부터 경로(19)를 경유해서 DAG 파이프라인(12)에 전달한다(41). WB 단 중에서, 제어 장치(6)는 EU 파이프라인(14)의 실행 장치(25)내에 있는 CC_FLAG(29)의 상태를 판정할 수 있다. CC_FLAG의 상태에 기초해서, 제어 장치(6)는 출력부(27)를 거쳐 데이터를 적합한 포인터 레지스터(22)에 기록할 수 있다. 전술한 바와 같이, 어드레스를 포인터 레지스터(22)에 기록하기 위해서 데이터는 WB 단 이전에 EU 파이프라인(14)으로부터 DAG 파이프라인(12)으로 전달될 수 있다. 일실시예에서, EX 단은 데이터를 WB 단에 제공하기 위하여 3개의 하부단(substage)을 포함할 수 있다.
다음의 예는 CC MOVE 기계 명령어를 실행하기 위한 구문을 나타내는 것이며,본 발명의 범위는 여기에 한정되지 않는다.
통상의 애플리케이션에서, 프로그래머는 전술한 CC 명령어와 같이, 포인터 레지스터와 데이터 레지스터 양쪽을 수반하는 레지스터 이동 연산을 실행할 수 있는 소프트웨어 애플리케이션이나 서브루틴을 개발한다. 프로그래머는 상기 구문예에 나타낸 바와 같은 어셈블리 언어나, 또는 상위 레벨의 소프트웨어 언어를 사용해서 소프트웨어 애플리케이션을 작성할 수 있다. 상위 레벨 소프트웨어 애플리케이션을 처리하고, 포인터 레지스터와 데이터 레지스터 사이에서 데이터를 조건적으로 이동시키는 CC MOVE 기계 명령어를 비롯하여, 프로세서(2)용의 적절한 기계 명령어를 발생시키기 위해서 통상 컴파일러가 사용된다.
이상, 본 발명의 다양한 실시예들을 설명하였다. 예컨대, 포인터 레지스터와 데이터 레지스터 사이에서 데이터를 조건적으로 이동시키는 단일 기계 명령어를 설명하였다. 프로세서는 범용의 계산 시스템, 디지털 처리 시스템, 랩탑 컴퓨터, 개인용 디지털 보조 단말기(PDA) 및 휴대 전화기를 비롯한 각종 시스템에서 구현될 수 있다. 이러한 시스템에 있어서, 프로세서는 운영 체제와 기타 소프트웨어 애플리케이션이 저장되는 플래시 메모리 디바이스나 스태틱 랜덤 액세스 메모리(SRAM)와 같은 메모리 디바이스에 연결될 수 있다. 이상의 실시예와 기타 실시예들은 첨부하는 청구범위내에 포함된다.

Claims (37)

  1. 기계 명령어를 수신하는 단계와,
    상기 기계 명령어에 응답하여, 조건 플래그의 상태에 따라 포인터 레지스터와 데이터 레지스터 사이에서 데이터를 이동시키는 단계를 포함하는 레지스터 이동 방법.
  2. 제1항에 있어서, 상기 데이터 이동 단계는 메모리 어드레스를 상기 포인터 레지스터로부터 상기 데이터 레지스터에 카피하는 단계를 포함하는 것인 레지스터 이동 방법.
  3. 제1항에 있어서, 상기 데이터 이동 단계는 데이터를 상기 데이터 레지스터로부터 상기 포인터 레지스터에 카피하는 단계를 포함하는 것인 레지스터 이동 방법.
  4. 제1항에 있어서, 상기 포인터 레지스터와 상기 데이터 레지스터는 프로세서의 서로 다른 파이프라인형 장치의 서로 다른 단에 배치되는 것인 레지스터 이동 방법.
  5. 제1항에 있어서, 상기 포인터 레지스터가 데이터 소스일 경우 제1 경로를 선택하고, 상기 데이터 레지스터가 데이터 소스일 경우 제2 경로를 선택하는 단계를더 포함하는 레지스터 이동 방법.
  6. 제1항에 있어서, 상기 데이터를 변형없이 실행 장치를 통해서 전달하는 단계를 더 포함하는 레지스터 이동 방법.
  7. 기계 명령어를 수신하는 단계와,
    메모리 어드레스를 기억하도록 구성되며 상기 기계 명령어에 의해 지정된 포인터 레지스터의 출력을 인에이블하는 단계와,
    상기 메모리 어드레스를 변형없이 실행 장치를 통해서 전달하는 단계와,
    조건 플래그의 상태를 판정하는 단계와,
    상기 상태에 기초해서 상기 메모리 어드레스를 데이터 레지스터에 기록하는 단계를 포함하는 레지스터 이동 방법.
  8. 제7항에 있어서, 상기 어드레스를 제1 파이프라인에서 제2 파이프라인으로 전달하는 단계를 더 포함하는 레지스터 이동 방법.
  9. 제7항에 있어서, 이전의 명령어를 실행하는 중에 상기 조건 플래그를 설정하는 단계를 더 포함하는 레지스터 이동 방법.
  10. 복수의 파이프라인을 구비한 프로세서에서 데이터를 이동시키는 방법에 있어서,
    제1 파이프라인에서 데이터 레지스터의 출력을 인에이블하는 단계와,
    상기 제1 파이프라인의 재기록 단 이전에 상기 데이터를 데이터 레지스터로부터 제2 파이프라인으로 전달하는 단계와,
    상기 데이터를 상기 제2 파이프라인내에 배치된 포인터 레지스터에 기록하는 단계를 포함하는 데이터 이동 방법.
  11. 제10항에 있어서,
    조건 플래그의 상태를 판정하는 단계와,
    상기 상태에 기초해서 상기 데이터를 상기 포인터 레지스터에 기록하는 단계를 더 포함하는 데이터 이동 방법.
  12. 제10항에 있어서, 상기 포인터 레지스터와 상기 데이터 레지스터는 상기 제1 및 제2 파이프라인의 서로 다른 단을 차지하는 것인 데이터 이동 방법.
  13. 재기록 단을 각각 갖는 복수의 파이프라인을 구비한 프로세서에서 데이터를 이동시키는 방법에 있어서,
    제1 파이프라인에서 포인터 레지스터의 출력을 인에이블하는 단계와,
    상기 제1 파이프라인의 재기록 단 이전에 어드레스를 상기 제1 파이프라인으로부터 제2 파이프라인으로 전달하는 단계와,
    상기 제2 파이프라인내에 배치된 데이터 레지스터에 상기 어드레스를 기록하는 단계를 포함하는 데이터 이동 방법.
  14. 제13항에 있어서,
    조건 플래그의 상태를 결정하는 단계와,
    상기 상태에 기초해서 상기 포인터 레지스터에 데이터를 기록하는 단계를 더 포함하는 데이터 이동 방법.
  15. 제13항에 있어서, 상기 포인터 레지스터와 상기 데이터 레지스터는 상기 제1 및 제2 파이브라인의 서로 다른 단을 차지하는 것인 데이터 이동 방법.
  16. 제13항에 있어서, 상기 포인터 레지스터는 상기 데이터 레지스터의 이전 단에 배치되는 것인 데이터 이동 방법.
  17. 포인터 레지스터와,
    데이터 레지스터와,
    단일 기계 명령어에 응답하여 상기 데이터 레지스터와 포인터 레지스터 사이에서 데이터를 조건적으로 이동시키도록 구성된 제어 장치를 포함하는 레지스터 이동 연산 장치.
  18. 제17항에 있어서, 상기 포인터 레지스터는 제1 파이프라인에 배치되고 상기 데이터 레지스터는 제2 파이프라인에 배치되는 것인 레지스터 이동 연산 장치.
  19. 제18항에 있어서, 상기 제1 및 제2 파이프라인은 복수의 단을 갖고, 상기 포인터 레지스터와 상기 데이터 레지스터는 각각의 파이프라인의 서로 다른 단에 배치되는 것인 레지스터 이동 연산 장치.
  20. 제18항에 있어서, 상기 제1 및 제2 파이프라인을 연결하여 상기 제1 파이프라인의 포인터 레지스터로부터 상기 제2 파이프라인의 데이터 레지스터로 어드레스를 전달하는 경로를 더 포함하는 레지스터 이동 연산 장치.
  21. 제18항에 있어서, 상기 제1 및 제2 파이프라인을 연결하여 상기 제2 파이프라인의 데이터 레지스터로부터 상기 제1 파이프라인의 어드레스 레지스터로 데이터를 전달하는 경로를 더 포함하는 레지스터 이동 연산 장치.
  22. 제20항에 있어서, 각각의 파이프라인은 재기록 단을 포함하고, 상기 경로는 재기록 단 이전에 제2 파이프라인으로 어드레스를 전달하는 것인 레지스터 이동 연산 장치.
  23. 제21항에 있어서, 각각의 파이프라인은 재기록 단을 포함하고, 상기 경로는재기록 단 이전에 제1 파이프라인으로 데이터를 전달하는 것인 레지스터 이동 연산 장치.
  24. 제17항에 있어서, 상기 포인터 레지스터로부터 데이터를 변형없이 상기 재기록 단에 전달하도록 구성된 실행 장치를 더 포함하는 레지스터 이동 연산 장치.
  25. 컴퓨터 실행 가능한 명령어가 저장된 매체를 포함하고 소프트웨어 프로그램을 컴파일하는 물품으로서, 상기 컴퓨터 실행 가능한 명령어는 단일 기계 명령어를 발생하여 프로그램 가능한 프로세서로 하여금 포인터 레지스터와 데이터 레지스터 사이에서 데이터를 조건적으로 이동하게 하도록 구성되고, 상기 명령어는 상기 프로그램 가능한 프로세서로 하여금 상기 데이터를 제1 파이프라인으로부터 제2 파이프라인으로 전달하게 하는 것인 물품.
  26. 제25항에 있어서, 상기 명령어는 상기 프로그램 가능한 프로세서로 하여금 상기 데이터 레지스터로부터 상기 포인터 레지스터로 데이터를 이동하게 하는 것인 물품.
  27. 제25항에 있어서, 상기 프로세서는 파이프라인을 포함하고, 상기 기계 명령어는 상기 프로세서로 하여금, 상기 포인터 레지스터가 데이터 소스일 경우 상기 파이프라인을 통과하는 제1 경로를 선택하게 하고, 상기 데이터 레지스터가 데이터소스일 경우 상기 파이프라인을 통과하는 제2 경로를 선택하게 하는 것인 물품.
  28. 메모리 디바이스와,
    상기 메모리 디바이스에 연결된 프로세서를 포함하고, 상기 프로세서는 포인터 레지스터, 데이터 레지스터, 및 단일 기계 명령어에 응답하여 상기 데이터 레지스터와 포인터 레지스터 사이에서 데이터를 조건적으로 이동시키도록 구성된 제어 장치를 포함하는 것인 시스템.
  29. 제28항에 있어서, 상기 포인터 레지스터는 제1 파이프라인에 배치되고 상기 데이터 레지스터는 제2 파이프라인에 배치되는 것인 시스템.
  30. 제29항에 있어서, 상기 제1 및 제2 파이프라인은 복수의 단을 구비하고, 상기 포인터 레지스터와 상기 데이터 레지스터는 각각의 파이프라인의 서로 다른 단에 배치되는 것인 시스템.
  31. 제29항에 있어서, 상기 제1 및 제2 파이프라인을 연결하여 상기 제1 파이프라인의 상기 포인터 레지스터로부터 상기 제2 파이프라인의 상기 데이터 레지스터로 어드레스를 전달하는 경로를 더 포함하는 시스템.
  32. 제29항에 있어서, 상기 제1 및 제2 파이프라인을 연결하여 상기 제2 파이프라인의 상기 데이터 레지스터로부터 상기 제1 파이프라인의 상기 어드레스 레지스터로 데이터를 전달하는 경로를 더 포함하는 시스템.
  33. 제31항에 있어서, 각 파이프라인은 재기록 단을 구비하고, 상기 경로는 상기 재기록 단 이전에 상기 제2 파이프라인에 어드레스를 전달하는 것인 시스템.
  34. 제32항에 있어서, 각 파이프라인은 재기록 단을 포함하고, 상기 경로는 상기 재기록 단 이전에 상기 제1 파이프라인에 데이터를 전달하는 것인 시스템.
  35. 제28항에 있어서, 상기 포인터 레지스터로부터 상기 재기록 단에 데이터를 변형없이 전달하도록 구성된 실행 장치를 더 포함하는 시스템.
  36. 제28항에 있어서, 상기 메모리 디바이스는 스태틱 랜덤 액세스 메모리를 포함하는 것인 시스템.
  37. 제28항에 있어서, 상기 메모리 디바이스는 플래시 메모리를 포함하는 것인 시스템.
KR10-2003-7004681A 2000-10-06 2001-10-05 레지스터 이동 연산 KR100512655B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/680,894 US6728870B1 (en) 2000-10-06 2000-10-06 Register move operations
US09/680,894 2000-10-06
PCT/US2001/031408 WO2002029554A2 (en) 2000-10-06 2001-10-05 Register move operations

Publications (2)

Publication Number Publication Date
KR20040005829A true KR20040005829A (ko) 2004-01-16
KR100512655B1 KR100512655B1 (ko) 2005-09-07

Family

ID=24732957

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-7004681A KR100512655B1 (ko) 2000-10-06 2001-10-05 레지스터 이동 연산

Country Status (6)

Country Link
US (1) US6728870B1 (ko)
JP (1) JP3670646B2 (ko)
KR (1) KR100512655B1 (ko)
CN (1) CN1269026C (ko)
TW (1) TWI238352B (ko)
WO (1) WO2002029554A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130137676A (ko) * 2011-04-07 2013-12-17 지티이 코포레이션 레지스터 파일 간 데이터 전송을 구현하는 방법 및 장치
KR101524119B1 (ko) * 2009-06-16 2015-06-02 경희대학교 산학협력단 미디어 데이터 맞춤화

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7594094B2 (en) 2006-05-19 2009-09-22 International Business Machines Corporation Move data facility with optional specifications
CN102780616B (zh) * 2012-07-19 2015-06-17 北京星网锐捷网络技术有限公司 基于多核处理器的报文处理方法、装置和网络设备
US20140281391A1 (en) * 2013-03-14 2014-09-18 Qualcomm Incorporated Method and apparatus for forwarding literal generated data to dependent instructions more efficiently using a constant cache

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04367936A (ja) 1991-06-17 1992-12-21 Mitsubishi Electric Corp スーパースカラープロセッサ
US5509129A (en) 1993-11-30 1996-04-16 Guttag; Karl M. Long instruction word controlling plural independent processor operations
TW470915B (en) * 1996-03-12 2002-01-01 Matsushita Electric Ind Co Ltd Optimization apparatus which removes transfer instructions by a global analysis of equivalence relations
US5889984A (en) 1996-08-19 1999-03-30 Intel Corporation Floating point and integer condition compatibility for conditional branches and conditional moves
US6009512A (en) * 1997-10-27 1999-12-28 Advanced Micro Devices, Inc. Mechanism for forwarding operands based on predicated instructions

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101524119B1 (ko) * 2009-06-16 2015-06-02 경희대학교 산학협력단 미디어 데이터 맞춤화
KR20130137676A (ko) * 2011-04-07 2013-12-17 지티이 코포레이션 레지스터 파일 간 데이터 전송을 구현하는 방법 및 장치
US9501278B2 (en) 2011-04-07 2016-11-22 Zte Corporation Method and device for data transmission between register files

Also Published As

Publication number Publication date
CN1269026C (zh) 2006-08-09
JP2004511040A (ja) 2004-04-08
WO2002029554A2 (en) 2002-04-11
JP3670646B2 (ja) 2005-07-13
TWI238352B (en) 2005-08-21
KR100512655B1 (ko) 2005-09-07
WO2002029554A3 (en) 2002-08-01
CN1468397A (zh) 2004-01-14
US6728870B1 (en) 2004-04-27

Similar Documents

Publication Publication Date Title
US8161266B2 (en) Replicating opcode to other lanes and modifying argument register to others in vector portion for parallel operation
KR100571325B1 (ko) 어레이 처리 동작
JP3120152B2 (ja) コンピューターシステム
KR100571322B1 (ko) 파이프라인식 프로세서에서의 예외 취급 방법, 장치 및시스템
KR20100032441A (ko) 조건부 명령을 비조건부 명령 및 선택 명령으로 확장하기 위한 방법 및 시스템
KR100346515B1 (ko) 수퍼파이프라인된수퍼스칼라프로세서를위한임시파이프라인레지스터파일
JP2006012163A (ja) マルチレベル・レジスタ・ファイルを有するディジタル・データ処理装置
JPS6014336A (ja) 命令処理装置
TWI764966B (zh) 用於控制矢量記憶體存取之資料處理裝置及方法
JP4202244B2 (ja) Vliw型dsp,及びその動作方法
US8671266B2 (en) Staging register file for use with multi-stage execution units
JPH1165844A (ja) パイプラインバイパス機能を有するデータ処理装置
US6292845B1 (en) Processing unit having independent execution units for parallel execution of instructions of different category with instructions having specific bits indicating instruction size and category respectively
JP2009524167A5 (ko)
CN110073332B (zh) 数据处理装置和方法
KR100512655B1 (ko) 레지스터 이동 연산
EP1499956B1 (en) Method and apparatus for swapping the contents of address registers
JP2874351B2 (ja) 並列パイプライン命令処理装置
JPH11242599A (ja) コンピュータプログラム製品
KR19980034436A (ko) 듀얼 파이프라인 프로세서에서 로드 명령의 병렬 수행 장치
JP2004303058A (ja) ベクトルプロセッサおよびそのデータ処理方法

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

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20130801

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150730

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20160727

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20170811

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20180801

Year of fee payment: 14