KR101596423B1 - 레지스터 파일 간 데이터 전송을 구현하는 방법 및 장치 - Google Patents

레지스터 파일 간 데이터 전송을 구현하는 방법 및 장치 Download PDF

Info

Publication number
KR101596423B1
KR101596423B1 KR1020137026597A KR20137026597A KR101596423B1 KR 101596423 B1 KR101596423 B1 KR 101596423B1 KR 1020137026597 A KR1020137026597 A KR 1020137026597A KR 20137026597 A KR20137026597 A KR 20137026597A KR 101596423 B1 KR101596423 B1 KR 101596423B1
Authority
KR
South Korea
Prior art keywords
data
register file
register
temporary storage
pipeline
Prior art date
Application number
KR1020137026597A
Other languages
English (en)
Other versions
KR20130137676A (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 KR20130137676A publication Critical patent/KR20130137676A/ko
Application granted granted Critical
Publication of KR101596423B1 publication Critical patent/KR101596423B1/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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • 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
    • G06F9/30079Pipeline control instructions, e.g. multicycle 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/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
    • 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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines

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)
  • Information Transfer Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 레지스터 파일 간 데이터 전송을 구현하는 방법 및 장치를 개시하는바, 파이프라인의 제i단계에서 소스 레지스터 파일 내의 데이터를 독출하고, 유휴 상태의 명령 파이프라인을 이용하여 독출된 데이터를 목적 레지스터 파일로 전송하는 것이 포함된다. 본 발명의 방법은 유휴 상태의 명령 파이프라인을 이용하여 데이터와 마스크 코드 정보를 전송하며 데이터와 제어 정보를 임시 저장할 별도의 레지스터를 추가할 필요가 없어 논리적 소모를 줄이는 동시에 기존 기능 유닛의 이용률을 향상시킨다.

Description

레지스터 파일 간 데이터 전송을 구현하는 방법 및 장치{METHOD AND DEVICE FOR DATA TRANSMISSION BETWEEN REGISTER FILES}
본 발명은 데이터 전송 기술에 관한 것으로서, 특히 레지스터 파일 간 데이터 전송을 구현하는 방법 및 장치에 관한 것이다.
대다수 프로세서는 파이프라인(pipeline) 구조를 적용한다. 파이프라인의 각 단계에서는 모두 어떤 고정된 동작을 실행하는바, 예를 들면 어느 레지스터 파일에서 데이터를 독출하여 연산을 실행하고 연산 결과를 다시 레지스터 파일에 기입하는 등 동작을 실행한다. 프로세서에도 복수의 레지스터 파일이 존재할 수 있다.
기존의 집적 회로(IC) 설계에 있어서, 레지스터 파일 간 데이터 전달은 통상적으로 데이터 버스를 통해 구현된다. 소스 레지스터 파일에서 데이터가 독출되어 관련 제어 논리를 거친 후 데이터 버스를 통해 목적 레지스터 파일에 기입된다. 예를 들면, 어느 한 프로세서는 파이프라인의 제i단계에서 레지스터 파일 A로부터 데이터를 독출하고 제j단계의 명령 파이프라인 지연을 거쳐 파이프라인의 제(i+j)단계에서 레지스터 파일 B에 다시 기입해야 한다.
데이터 전송 과정에서, 데이터 버스 방식에 의하면 레지스터 임시 저장 데이터와 제어 신호를 증가해야 하므로 자원 소모가 증가된다.
이를 감안한 본 발명의 주된 목적은 레지스터 파일 간 데이터 전송을 구현하는 방법 및 장치를 제공함으로써 논리적 소모를 줄이고 자원 이용률을 향상시키는데 있다
상기 목적을 달성하기 위한 본 발명의 기술방안은 다음과 같이 구현된다.
레지스터 파일 간 데이터 전송을 구현하는 방법에 있어서, 명령 파이프라인의 제i단계에서 소스 레지스터 파일 내의 데이터를 독출하는 단계; 및 유휴 상태의 명령 파이프라인을 이용하여 독출된 데이터를 목적 레지스터 파일로 전송하는 단계가 포함된다.
상기 파이프라인의 제i단계에서 소스 레지스터 파일 내의 데이터를 독출하는 단계에는, 상기 독출된 데이터를 임시저장 레지스터 x에 기입하고 미리 설정된 마스크 코드를 임시저장 레지스터 y에 기입하는 단계가 포함된다.
상기 유휴 상태의 명령 파이프라인을 이용하여 독출된 데이터를 목적 레지스터 파일로 전송하는 단계에는, 제(i+1)단계에서 상기 임시저장 레지스터 y와 임시저장 레지스터 x 내의 데이터를 {y, x}로 결합하여 유휴 상태의 명령 파이프라인의 제(i+1)단계에 기입하는 단계; 및 유휴 상태의 명령 파이프라인을 따라 데이터를 순차적으로 유동시켜 그 다음 단계에 계속하여 전달하며 j개의 클럭 사이클이 지난 후 제(i+j)단계에서 유휴 상태의 명령 파이프라인으로부터 데이터를 인출하여 목적 레지스터 파일에 기입하는 단계가 포함된다.
상기 제(i+j)단계에서 유휴 상태의 명령 파이프라인으로부터 데이터를 인출하여 목적 레지스터 파일에 기입하는 단계에는, 상기 {y, x}의 x 부분을 데이터유닛으로 간주하여, 길이가 상기 데이터유닛 길이의 n배와 동일하도록 n개의 상기 데이터유닛의 복사본을 확장데이터로 결합하고, 상기 {y, x}의 y 부분을 마스크 코드로 간주하는 단계; 및 상기 확장데이터를 임시저장 레지스터 j내에 기입하며, 임시저장 레지스터 j의 마스크 코드의 유효 비트에 대응되는 섹션 내의 데이터 유닛을 상기 목적 레지스터 파일의 대응되는 섹션에 기입하는 단계가 포함된다.
상기 소스 레지스터 파일은 32 비트(bit)이고 상기 목적 레지스터 파일은 1024bit이며 상기 n은 32이고, 상기 유휴 상태의 명령 파이프라인은 64bit 명령 파이프라인이다.
레지스터 파일 간 데이터 전송을 구현하는 장치에 있어서, 소스 저장 유닛, 목적 저장 유닛이 포함되며, 소스 저장 유닛은 명령 파이프라인의 제i단계에서 그중의 데이터를 독출하고 유휴 상태의 명령 파이프라인을 이용하여 독출된 데이터를 목적 저장 유닛에 전송하도록 구성되고, 목적 저장 유닛은 j개의 클럭 사이클이 지난 후 제(i+j)단계에서 유휴 상태의 명령 파이프라인으로부터 데이터를 독출하도록 구성된다.
상기 소스 저장 유닛은 소스 레지스터 파일이고, 상기 목적 저장 유닛은 목적 레지스터 파일이다.
상기 소스 저장 유닛은 구체적으로, 제(i+1)단계에서 상기 임시저장 레지스터 y와 임시저장 레지스터 x 내의 데이터를 {y, x}로 결합하여 유휴 상태의 명령 파이프라인의 제(i+1)단계에 기입하고, 유휴 상태의 명령 파이프라인을 따라 데이터를 순차적으로 유동시켜 그 다음 단계에 계속하여 전달하며 j개의 클럭 사이클이 지난 후 제(i+j)단계에서 유휴 상태의 명령 파이프라인으로부터 데이터를 인출하여 목적 레지스터 파일에 기입하도록 구성된다.
상기 목적 저장 유닛은 구체적으로, j개의 클럭 사이클이 지난 후 상기 {y, x}의 x 부분을 데이터유닛으로 간주하여, 길이가 상기 데이터유닛 길이의 n배와 동일하도록 n개의 상기 데이터유닛의 복사본을 확장데이터로 결합하여, 상기 확장데이터를 임시저장 레지스터 j내에 기입하고 상기 {y, x}의 y 부분을 마스크 코드로 간주하며, 임시저장 레지스터 j내의 마스크 코드의 유효 비트에 대응되는 섹션 내의 데이터 유닛을 상기 목적 레지스터 파일의 대응되는 섹션에 기입하도록 구성된다.
상기 소스 레지스터 파일은 32 비트(bit)이고 상기 목적 레지스터 파일은 1024bit이며 상기 n은 32이고, 상기 유휴 상태의 명령 파이프라인은 64bit의 명령 파이프라인이다.
상술한 본 발명에 의해 제공되는 기술방안으로부터 볼 수 있다시피 파이프라인의 제i단계에서 소스 레지스터 파일 내의 데이터를 독출하고, 유휴 상태의 명령 파이프라인을 이용하여 독출된 데이터를 목적 레지스터 파일로 전송하는 것이 포함된다. 본 발명의 방안은 유휴 상태의 명령 파이프라인을 이용하여 데이터와 마스크 코드 정보를 전송하며 데이터와 제어 정보를 임시 저장할 별도의 레지스터를 추가할 필요가 없어 논리적 소모를 줄이는 동시에 기존 기능 유닛의 이용률을 향상시킨다.
본 발명의 방안은 프로세서의 디자인에 있어서 프로세서 내에 복수의 명령 파이프라인이 존재하고 명령 파이프라인의 제i단계에서 소스 레지스터 파일로부터 데이터를 독출하여 제j단계의 클럭 지연을 거친 후 마지막에 목적 레지스터 파일에 기입해야 하는 경우에만 응용 가능하다.
도 1은 본 발명에 따른 레지스터 파일 간 데이터 전송을 구현하는 방법의 흐름도이다.
도 2는 본 발명에 따른 레지스터 파일 간 데이터 전송을 구현하는 방법 실시예의 전송 예시도이다.
도 3은 본 발명에 따른 레지스터 파일 간 데이터 전송을 구현하는 장치의 구성 예시도이다.
도 1은 본 발명에 따른 레지스터 파일 간 데이터 전송을 구현하는 방법의 흐름도이며, 도 1에 도시된 바와 같이 다음과 같은 단계를 포함한다.
단계 100: 명령 파이프라인의 제i단계에서 소스 레지스터 파일 내의 데이터를 독출한다.
본 단계에는 구체적으로 독출된 데이터를 임시저장 레지스터 x에 기입하고 미리 설정된 마스크 코드를 임시저장 레지스터 y에 기입하는 단계가 포함된다. 마스크 코드의 사용은 해당 기술 분야의 통상의 지식을 가진 자들의 통상적인 기술 수단에 속한다. 예를 들면, 16비트(bit)의 데이터를 64bit 레지스터에 기입함에 있어서 데이터를 4부로 확장하여 64bit 데이터를 구성한 후 하나의 4bit 마스크 코드를 이용하는바 즉 마스크 코드의 어느 한 bit가 하이(high)이면 그에 해당하는 그 한 단락의 확장된 후의 데이터를 레지스터에 기입하는 것이며 여기서 더 상세히 설명하지 않을 것이다.
단계 101: 유휴 상태의 명령 파이프라인을 이용하여 독출된 데이터를 목적 레지스터 파일로 전송한다.
본 단계에 있어서, 제(i+1)단계에서 임시저장 레지스터 y와 임시저장 레지스터 x 내의 데이터를 {y, x}로 결합하여 유휴 상태의 명령 파이프라인의 제(i+1)단계에 기입한 후 유휴 상태의 명령 파이프라인을 따라 데이터를 순차적으로 유동시켜 그 다음 단계에 전달하는바 본 발명에 따른 방법에서는 유휴 상태의 명령 파이프라인이 데이터 버스의 역할을 하며, j개의 클럭 사이클이 지난 후 제(i+j)단계에서 유휴 상태의 명령 파이프라인으로부터 데이터를 인출하는바, 임시 저장된 x 부분을 데이터유닛으로 간주하여, 길이가 데이터유닛 길이의 n배와 동일하도록 n개의 데이터유닛의 복사본을 확장데이터로 결합하여 확장데이터를 임시저장 레지스터 j내에 기입하고, y부분을 마스크 코드로 간주하며, 임시저장 레지스터 j내의 마스크 코드의 유효 비트(예를 들면 값이 1인 비트)에 대응되는 섹션 내의 데이터 유닛을 목적 레지스터 파일의 대응되는 섹션에 기입하며, 이와 대응되게 목적 레지스터 파일의 마스크 코드의 무효 bit에 대응되는 섹션 내의 데이터는 원상 유지된다.
여기서, n은 목적 레지스터 파일의 크기와 소스 레지스터 파일의 크기의 비율 값, 즉 배수이며, 예를 들면 소스 레지스터 파일은 32bit이고 목적 레지스터 파일은 1024bit이면 n=32이다.
본 발명에 따른 방법은 유휴 상태의 명령 파이프라인을 이용하여 데이터와 마스크 코드 정보를 전송하고 데이터와 제어 정보를 임시 저장할 별도의 레지스터를 추가할 필요가 없으므로 논리적 소모를 줄이는 동시에 기존 기능 유닛의 이용률을 향상시킨다.
실시예를 결부하여 본 발명의 방법에 대해 상세히 설명하면 아래와 같다.
본 실시예에 있어서, 레지스터 파일 A와 레지스터 파일 B 두 개의 레지스터 파일이 존재하고 레지스터 파일 A 내의 레지스터에는 하나의 유닛의 데이터를 저장할 수 있고 레지스터 파일 B 내의 레지스터에는 n개 유닛의 데이터를 저장할 수 있다고 가정하며, 본 실시예에서 레지스터 파일 A가 32bit이고 레지스터 파일 B가 1024bit라고 가정하면 n=32이다. 시스템에는 두 개의 명령 파이프라인이 존재하는바 그 중 하나는 32bit의 명령 파이프라인이고 다른 하나는 64bit의 명령 파이프라인이다.
본 실시예에서는 레지스터 파일 A 내의 데이터를 레지스터 파일 B로 전송할 것을 요구하는바 즉 레지스터 파일 A 내의 데이터를 파이프라인의 제i단계에서 독출한 다음 j 단계의 클럭 지연을 거친 후 제(i+j)단계에서 레지스터 파일 B에 기입한다. 도 2는 본 발명에 따른 레지스터 파일 간 데이터 전송을 실현하는 방법 실시예의 전송 예시도인바, 도 2에 도시된 바와 같이 구체적으로 다음과 같은 단계를 포함한다.
데이터 전송 명령이 유효할 경우, 제i단계에서 레지스터 파일 A로부터 독출된 소스 데이터를 임시저장 레지스터 x내에 기입하고, 독출된 마스크 코드를 임시저장 레지스터 y내에 기입한다. 제i+1단계에서 임시저장 레지스터 x 및 임시저장 레지스터 y 내의 데이터를 {y, x}로 결합한 후 유휴 상태의 64bit의 명령 파이프라인 내에 기입하며 이때 64bit의 명령 파이프라인은 데이터 버스의 역할을 한다. j개의 클럭 사이클이 지난 후 제(i+j)단계에서 64bit의 명령 파이프라인으로부터 데이터 {y, x}를 인출하여 해당 x 필드 부분을 데이터유닛으로 간주하여, 길이가 데이터유닛 길이의 n배와 동일하도록 n개(32배)의 데이터유닛의 복사본을 확장데이터로 결합하여 확장데이터를 임시저장 레지스터 j내에 기입한다. 64bit의 명령 파이프라인으로부터 데이터 {y, x} 내의 y필드 부분을 인출하여 마스크 코드 신호로 간주하며, 본 실시예에서는 임시저장 레지스터 j내에서 마스크 코드의 하이(high) 비트에 대응되는 섹션 내의 데이터유닛이 지정된 레지스터 파일 B의 레지스터 쌍에 대응되는 섹션에 기입된다고 가정한다. 도 2에 도시된 바와 같이 이렇게 데이터 마스크 기입이 구현된다.
도 3은 본 발명에 따른 레지스터 파일 간 데이터 전송을 구현하는 장치의 구성 예시도이며, 도 3에 도시된 바와 같이 소스 저장 유닛, 목적 저장 유닛이 포함된다.
소스 저장 유닛은 명령 파이프라인의 제i단계에서 그중의 데이터를 독출하고 유휴 상태의 명령 파이프라인을 이용하여 독출된 데이터를 목적 저장 유닛에 전송하도록 구성된다. 소스 저장 유닛은 소스 레지스터 파일이다.
목적 저장 유닛은 j개의 클럭 사이클이 지난 후 제(i+j)단계에서 유휴 상태의 명령 파이프라인으로부터 데이터를 독출하도록 구성된다. 목적 저장 유닛은 목적 레지스터 파일이다.
소스 저장 유닛은 구체적으로, 제(i+1)단계에서 상기 임시저장 레지스터 y와 임시저장 레지스터 x내의 데이터를 {y, x}로 결합하여 유휴 상태의 명령 파이프라인의 제(i+1)단계에 기입하고, 유휴 상태의 명령 파이프라인을 따라 데이터를 순차적으로 유동시켜 그 다음 단계에 계속하여 전달하며 j개의 클럭 사이클이 지난 후 제(i+j)단계에서 유휴 상태의 명령 파이프라인으로부터 데이터를 인출하여 목적 레지스터 파일에 기입하도록 구성된다.
목적 저장 유닛은 구체적으로, j개의 클럭 사이클이 지난 후 상기 {y, x}의 x부분을 데이터유닛으로 간주하여, 길이가 상기 데이터유닛 길이의 n배와 동일하도록 n개의 상기 데이터유닛의 복사본을 확장데이터로 결합하여, 상기 확장데이터를 임시저장 레지스터 j내에 기입하고 상기 {y, x}의 y부분을 마스크 코드로 간주하며, 임시저장 레지스터 j내의 마스크 코드의 유효 비트에 대응되는 섹션 내의 데이터 유닛을 상기 목적 레지스터 파일의 대응되는 섹션에 기입하도록 구성된다.
소스 레지스터 파일은 32 비트이고 목적 레지스터 파일은 1024bit일 경우, n이 취하는 값은 32이며, 유휴 상태의 명령 파이프라인은 64비트의 명령 파이프라인이다.
상기에서 언급된 내용은 본 발명의 바람직한 실시예일 뿐이고 본 발명의 보호범위를 제한하기 위한 것이 아니며 본 발명의 사상과 원칙 내에서 진행한 임의의 변경, 동등교체 및 개진 등은 모두 본 발명의 보호범위 내에 포함되어야 한다.

Claims (10)

  1. 명령 파이프라인의 제i단계에서 소스 레지스터 파일 내의 데이터를 독출하는 단계; 및
    유휴 상태의 명령 파이프라인을 이용하여 독출된 데이터를 목적 레지스터 파일로 전송하는 단계가 포함되며,
    상기 파이프라인의 제i단계에서 소스 레지스터 파일 내의 데이터를 독출하는 단계에는,
    상기 독출된 데이터를 임시저장 레지스터 x에 기입하고 미리 설정된 마스크 코드를 임시저장 레지스터 y에 기입하는 단계가 포함되며,
    상기 유휴 상태의 명령 파이프라인을 이용하여 독출된 데이터를 목적 레지스터 파일로 전송하는 단계에는,
    제(i+1)단계에서 상기 임시저장 레지스터 y와 임시저장 레지스터 x내의 데이터를 {y, x}로 결합하여 유휴 상태의 명령 파이프라인의 제(i+1)단계에 기입하는 단계;
    유휴 상태의 명령 파이프라인을 따라 데이터를 순차적으로 유동시켜 그 다음 단계에 계속하여 전달하는 단계; 및
    j개의 클럭 사이클이 지난 후 제(i+j)단계에서 유휴 상태의 명령 파이프라인으로부터 데이터를 인출하여 목적 레지스터 파일에 기입하는 단계가 포함되며,
    상기 제(i+j)단계에서 유휴 상태의 명령 파이프라인으로부터 데이터를 인출하여 목적 레지스터 파일에 기입하는 단계에는,
    상기 {y, x}의 x부분을 데이터유닛으로 간주하여, 길이가 상기 데이터유닛 길이의 n배와 동일하도록 n개의 상기 데이터유닛의 복사본을 확장데이터로 결합하여, 상기 확장데이터를 임시저장 레지스터 j내에 기입하고 상기 {y, x}의 y부분을 마스크 코드로 간주하는 단계; 및
    임시저장 레지스터 j내의 마스크 코드의 유효 비트에 대응되는 섹션 내의 데이터 유닛을 상기 목적 레지스터 파일의 대응되는 섹션에 기입하는 단계가 포함되며,
    n은 상기 목적 레지스터 파일의 크기와 상기 소스 레지스터 파일의 크기의 비율 값인 것을 특징으로 하는
    레지스터 파일 간 데이터 전송을 구현하는 방법.
  2. 청구항 1에 있어서,
    상기 소스 레지스터 파일은 32 비트(bit)이고 상기 목적 레지스터 파일은 1024 bit이며 상기 n은 32이고, 상기 유휴 상태의 명령 파이프라인은 64bit의 명령 파이프라인인 것을 특징으로 하는
    레지스터 파일 간 데이터 전송을 구현하는 방법.
  3. 명령 파이프라인의 제i단계에서 소스 레지스터 파일 내의 데이터를 독출하는 읽기 모듈; 및
    유휴 상태의 명령 파이프라인을 이용하여 독출된 데이터를 목적 레지스터 파일로 전송하는 전송 모듈이 포함되며,
    상기 읽기 모듈은,
    상기 독출된 데이터를 임시저장 레지스터 x에 기입하고 미리 설정된 마스크 코드를 임시저장 레지스터 y에 기입하는 단계가 포함되며,
    상기 전송 모듈은,
    제(i+1)단계에서 상기 임시저장 레지스터 y와 임시저장 레지스터 x내의 데이터를 {y, x}로 결합하여 유휴 상태의 명령 파이프라인의 제(i+1)단계에 기입하고;
    유휴 상태의 명령 파이프라인을 따라 데이터를 순차적으로 유동시켜 그 다음 단계에 계속하여 전달하며;
    j개의 클럭 사이클이 지난 후 제(i+j)단계에서 유휴 상태의 명령 파이프라인으로부터 데이터를 인출하여 목적 레지스터 파일에 기입하기 위한 것이며,
    상기 전송 모듈은,
    상기 {y, x}의 x부분을 데이터유닛으로 간주하여, 길이가 상기 데이터유닛 길이의 n배와 동일하도록 n개의 상기 데이터유닛의 복사본을 확장데이터로 결합하여, 상기 확장데이터를 임시저장 레지스터 j내에 기입하고 상기 {y, x}의 y부분을 마스크 코드로 간주하며;
    임시저장 레지스터 j내의 마스크 코드의 유효 비트에 대응되는 섹션 내의 데이터 유닛을 상기 목적 레지스터 파일의 대응되는 섹션에 기입하기 위한 것이며,
    n은 상기 목적 레지스터 파일의 크기와 상기 소스 레지스터 파일의 크기의 비율 값인 것을 특징으로 하는
    레지스터 파일 간 데이터 전송을 구현하는 장치.
  4. 청구항 3에 있어서,
    상기 소스 레지스터 파일은 32 비트(bit)이고 상기 목적 레지스터 파일은 1024 bit이며 상기 n은 32이고,
    상기 유휴 상태의 명령 파이프라인은 64 bit의 명령 파이프라인인 것을 특징으로 하는
    레지스터 파일 간 데이터 전송을 구현하는 장치.
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
KR1020137026597A 2011-04-07 2011-08-22 레지스터 파일 간 데이터 전송을 구현하는 방법 및 장치 KR101596423B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201110086342.6 2011-04-07
CN201110086342.6A CN102736895B (zh) 2011-04-07 2011-04-07 一种实现寄存器文件间的数据传输方法及装置
PCT/CN2011/078721 WO2012136037A1 (zh) 2011-04-07 2011-08-22 一种实现寄存器文件间的数据传输方法及装置

Publications (2)

Publication Number Publication Date
KR20130137676A KR20130137676A (ko) 2013-12-17
KR101596423B1 true KR101596423B1 (ko) 2016-02-22

Family

ID=46968551

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137026597A KR101596423B1 (ko) 2011-04-07 2011-08-22 레지스터 파일 간 데이터 전송을 구현하는 방법 및 장치

Country Status (6)

Country Link
US (1) US9501278B2 (ko)
EP (1) EP2696280B1 (ko)
JP (1) JP5710833B2 (ko)
KR (1) KR101596423B1 (ko)
CN (1) CN102736895B (ko)
WO (1) WO2012136037A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106933652A (zh) * 2017-03-16 2017-07-07 浙江大学 一种基于延迟槽补偿的dsp流水线模拟方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH036768A (ja) 1989-06-05 1991-01-14 Sharp Corp リング状階層化マルチプロセッサ
US5799163A (en) * 1997-03-04 1998-08-25 Samsung Electronics Co., Ltd. Opportunistic operand forwarding to minimize register file read ports
US6505290B1 (en) 1997-09-05 2003-01-07 Motorola, Inc. Method and apparatus for interfacing a processor to a coprocessor
JP3721129B2 (ja) * 2000-01-18 2005-11-30 ミップス テクノロジーズ インコーポレイテッド コンピュータのロードとストア演算を改善する方法および装置
US6728870B1 (en) 2000-10-06 2004-04-27 Intel Corporation Register move operations
EP1199629A1 (en) * 2000-10-17 2002-04-24 STMicroelectronics S.r.l. Processor architecture with variable-stage pipeline
US20060095723A1 (en) 2001-11-05 2006-05-04 Moyer William C Method and apparatus for interfacing a processor to a coprocessor
GB2390700B (en) * 2002-04-15 2006-03-15 Alphamosaic Ltd Narrow/wide cache
WO2004023291A1 (ja) 2002-08-30 2004-03-18 Renesas Technology Corp. 情報処理装置
JP2005284749A (ja) 2004-03-30 2005-10-13 Kyushu Univ 並列処理コンピュータ
US9557994B2 (en) * 2004-07-13 2017-01-31 Arm Limited Data processing apparatus and method for performing N-way interleaving and de-interleaving operations where N is an odd plural number
US8255884B2 (en) * 2008-06-06 2012-08-28 International Business Machines Corporation Optimized scalar promotion with load and splat SIMD instructions
CN101876892B (zh) * 2010-05-20 2013-07-31 复旦大学 面向通信和多媒体应用的单指令多数据处理器电路结构

Also Published As

Publication number Publication date
JP5710833B2 (ja) 2015-04-30
CN102736895A (zh) 2012-10-17
US20140019730A1 (en) 2014-01-16
EP2696280A4 (en) 2017-01-25
WO2012136037A1 (zh) 2012-10-11
JP2014513343A (ja) 2014-05-29
EP2696280B1 (en) 2018-11-14
EP2696280A1 (en) 2014-02-12
US9501278B2 (en) 2016-11-22
KR20130137676A (ko) 2013-12-17
CN102736895B (zh) 2015-06-10

Similar Documents

Publication Publication Date Title
JP7227680B2 (ja) ノンブロッキング高性能トランザクションクレジットシステムを備えるマルチコアバスアーキテクチャ
US10141033B2 (en) Multiple register memory access instructions, processors, methods, and systems
JP6787554B2 (ja) ベクトルキャッシュラインライトバックのためのプロセッサ、方法、システム、および命令
CN108351830B (zh) 用于存储器损坏检测的硬件装置和方法
CN109791487B (zh) 用于加载多个数据元素的处理器、方法、系统和指令
TWI639952B (zh) 用於建置及維持在亂序硬體軟體協同設計處理器中具有堆疊同步指令的述詞值之堆疊的方法、設備與非暫態機器可讀媒體
WO2009049399A1 (en) Single-strobe operation of memory devices
CN108205447B (zh) 使用早期和后期地址以及循环计数寄存器来跟踪架构状态的流引擎
CN111767081A (zh) 用于加速存储处理的装置、方法和系统
JP2024526012A (ja) 部分幅リンク状態におけるレイテンシ最適化
US10310978B2 (en) Apparatus and method for multi-level cache request tracking
US9418024B2 (en) Apparatus and method for efficient handling of critical chunks
KR101596423B1 (ko) 레지스터 파일 간 데이터 전송을 구현하는 방법 및 장치
US10514925B1 (en) Load speculation recovery
US10853078B2 (en) Method and apparatus for supporting speculative memory optimizations
Srivatsaa Santa Cruz Instruction Processor With Scoreboarding
JP2004171458A (ja) 情報処理装置および方法
JP2009042992A (ja) バス制御装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant