KR101596423B1 - 레지스터 파일 간 데이터 전송을 구현하는 방법 및 장치 - Google Patents
레지스터 파일 간 데이터 전송을 구현하는 방법 및 장치 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 230000005540 biological transmission Effects 0.000 title claims description 4
- 238000010586 diagram Methods 0.000 description 2
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30079—Pipeline control instructions, e.g. multicycle NOP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/3013—Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent 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
본 발명은 데이터 전송 기술에 관한 것으로서, 특히 레지스터 파일 간 데이터 전송을 구현하는 방법 및 장치에 관한 것이다.
대다수 프로세서는 파이프라인(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은 본 발명에 따른 레지스터 파일 간 데이터 전송을 구현하는 장치의 구성 예시도이다.
도 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)
- 명령 파이프라인의 제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은 상기 목적 레지스터 파일의 크기와 상기 소스 레지스터 파일의 크기의 비율 값인 것을 특징으로 하는
레지스터 파일 간 데이터 전송을 구현하는 방법. - 청구항 1에 있어서,
상기 소스 레지스터 파일은 32 비트(bit)이고 상기 목적 레지스터 파일은 1024 bit이며 상기 n은 32이고, 상기 유휴 상태의 명령 파이프라인은 64bit의 명령 파이프라인인 것을 특징으로 하는
레지스터 파일 간 데이터 전송을 구현하는 방법. - 명령 파이프라인의 제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은 상기 목적 레지스터 파일의 크기와 상기 소스 레지스터 파일의 크기의 비율 값인 것을 특징으로 하는
레지스터 파일 간 데이터 전송을 구현하는 장치. - 청구항 3에 있어서,
상기 소스 레지스터 파일은 32 비트(bit)이고 상기 목적 레지스터 파일은 1024 bit이며 상기 n은 32이고,
상기 유휴 상태의 명령 파이프라인은 64 bit의 명령 파이프라인인 것을 특징으로 하는
레지스터 파일 간 데이터 전송을 구현하는 장치. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106933652A (zh) * | 2017-03-16 | 2017-07-07 | 浙江大学 | 一种基于延迟槽补偿的dsp流水线模拟方法 |
Family Cites Families (13)
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 | 复旦大学 | 面向通信和多媒体应用的单指令多数据处理器电路结构 |
-
2011
- 2011-04-07 CN CN201110086342.6A patent/CN102736895B/zh not_active Expired - Fee Related
- 2011-08-22 EP EP11863045.8A patent/EP2696280B1/en not_active Not-in-force
- 2011-08-22 JP JP2014502973A patent/JP5710833B2/ja not_active Expired - Fee Related
- 2011-08-22 KR KR1020137026597A patent/KR101596423B1/ko active IP Right Grant
- 2011-08-22 WO PCT/CN2011/078721 patent/WO2012136037A1/zh active Application Filing
- 2011-08-22 US US14/008,159 patent/US9501278B2/en not_active Expired - Fee Related
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 |