KR20160078377A - 부동 소수점 레지스터 앨리어싱을 위한 프로세서 및 방법들 - Google Patents
부동 소수점 레지스터 앨리어싱을 위한 프로세서 및 방법들 Download PDFInfo
- Publication number
- KR20160078377A KR20160078377A KR1020167012859A KR20167012859A KR20160078377A KR 20160078377 A KR20160078377 A KR 20160078377A KR 1020167012859 A KR1020167012859 A KR 1020167012859A KR 20167012859 A KR20167012859 A KR 20167012859A KR 20160078377 A KR20160078377 A KR 20160078377A
- Authority
- KR
- South Korea
- Prior art keywords
- register
- registers
- packed
- state
- physical
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000013507 mapping Methods 0.000 claims description 50
- 238000012856 packing Methods 0.000 claims description 26
- 230000015654 memory Effects 0.000 claims description 23
- 238000003860 storage Methods 0.000 abstract description 7
- 101000619552 Homo sapiens Prion-like protein doppel Proteins 0.000 description 30
- 102100022209 Prion-like protein doppel Human genes 0.000 description 30
- 230000008859 change Effects 0.000 description 13
- 230000009471 action Effects 0.000 description 8
- 230000000694 effects Effects 0.000 description 7
- 238000005457 optimization Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 4
- 238000002347 injection Methods 0.000 description 4
- 239000007924 injection Substances 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- ZIEXYIQTFZVRBI-UHFFFAOYSA-N 2-[(4-bromophenyl)methoxy]acetic acid Chemical compound OC(=O)COCC1=CC=C(Br)C=C1 ZIEXYIQTFZVRBI-UHFFFAOYSA-N 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000013078 crystal Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012857 repacking Methods 0.000 description 2
- 238000004513 sizing Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 1
- 102100038238 Aromatic-L-amino-acid decarboxylase Human genes 0.000 description 1
- 101710151768 Aromatic-L-amino-acid decarboxylase Proteins 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
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/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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- 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/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- 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/30105—Register structure
- G06F9/30112—Register structure comprising data of variable length
-
- 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/3017—Runtime instruction translation, e.g. macros
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
Description
도 1a는 예시적인 밀집하여 패킹된 아키텍처 레지스터의 블록도이다.
도 1b는 복수의 밀집하여 패킹된 아키텍처 레지스터들을 표현한 블록도이다.
도 2는 하나 이상의 개시된 실시예들이 구현될 수 있는 예시적인 디바이스의 블록도이다.
도 3은 명령어들을 디코딩하며 앨리어싱 효과들을 핸들링하기 위한 예시적인 회로를 예시한 블록도이다.
도 4는 명령어들을 디코딩하며 앨리어싱 효과들을 핸들링하기 위한 예시적인 방법을 예시한 흐름도이다.
마지막 기록 |
현재 동작 | 이슈? |
쿼드로서 | 쿼드로서 판독 또는 기록 | 이슈 없음. |
하위 더블 판독 | 이슈 없음. D0에 대한 LRN-PRN 매핑은 유효하며 데이터는 정렬된다. | |
상위 더블 판독 | 상위 더블은 이러한 상태로부터 간단히 판독될 수 없다. D1을 위한 LRN-PRN 매핑은 전체 쿼드로의 기록에 의해 유효하지 않게 될 것이며, 전체 쿼드를 위한 PRN에 저장된 데이터는 데이터-경로에 대해 정렬되지 않는다. | |
하위 더블 기록 | 하위 더블을 기록하기 전에, upper double에 대한 데이터가 먼저 새로운 PRN에서 보존되어야 한다. | |
상위 더블 기록 | 상위 더블은 D1에 대한 LRN-PRN 매핑을 유효하게 함으로써 기록될 수 있지만, 전체 쿼드에 대한 매핑은 이제 단지 하위 더블에 대해서만 유효하다는 것이 주의되어야 한다. | |
최하위 싱글 판독 | 이슈 없음. S0에 대한 LRN-PRN 매핑은 유효하며, 데이터가 정렬된다. | |
상위 싱글들 판독 | 유효하지 않음. 이들 레지스터들에 대한 매핑은 쿼드 LRN으로의 기록에 의해 유효하지 않게 될 것이며, 쿼드의 PRN에서의 데이터는 데이터 경로에 정렬되지 않는다. 물리 레지스터들 내에서의 비트들의 조작은 상위 싱글들을 판독하기 위해 요구될 것이다. | |
최하위 싱글들 기록 | 최하위 싱글들을 기록하기 전에, 다른 싱글들에 대한 데이터가 먼저 보존되어야 한다. | |
최상위 싱글 기록 | S3은 S3에 대한 LRN-PRN 매핑을 유효하게 함으로써 기록될 수 있지만, 전체 쿼드에 대한 PRN은 이제 단지 하위 3개의 싱글들에 대한 유효한 데이터만을 포함한다는 것이 주의되어야 한다. | |
더블로서 | 쿼드로서 판독 | 먼저 전체 쿼드에 대한 데이터를 새로운 PRN으로 재패킹하며 쿼드에 대한 매핑을 유효하게 만들어야 한다. |
더블로서 기록 또는 판독 | 이슈 없음. | |
하위 싱글 판독 | 이슈 없음. 하위 싱글에 대한 매핑은 더블과 동일하며, 데이터가 정렬된다. | |
상위 싱글 판독 | 먼저 쿼드로부터 상위 싱글에 대한 데이터를 언패킹하도록 요구하며 그것을 데이터 경로에 정렬시키며, 그 후 상위 싱글에 대한 매핑을 유효한 것으로서 주의한다. | |
쿼드로서 기록 | 모든 이전 기록들에 대한 데이터를 교체할 것이다. 현재 매핑들 모두에 대한 PRN들을 자유 리스트로 리턴시켜야 한다. | |
하위 싱글 기록 | 먼저 상위 싱글에 대한 데이터를 보존해야 하며 레지스터 맵을 통해 그것을 액세스할 수 있음을 보장한다. | |
상위 싱글 기록 | 상위 싱글에 대한 매핑은 새로운 PRN을 갖고 유효하게 될 수 있지만, 더블에 대한 매핑은 이제 단지 전체 더블이 아닌, 하위 싱글에 대해서만 유효하다는 것이 주의되어야 한다. | |
싱글로서 | 쿼드 또는 더블로서 판독 | 쿼드/더블은 먼저 모든 그것의 구성 부분들로부터 재패킹되어야 하며 쿼드/더블의 매핑은 쿼드 또는 더블로서 판독되기 위해 유효하다는 것이 주의되어야 한다. |
싱글로서 판독 또는 기록 | 이슈 없음. | |
쿼드 또는 더블로서 기록 | 아키텍처에 의존하여, 단지 하나의 PRN이 회수된 uop마다 자유 리스트로 리턴될 수 있다. 따라서, 먼저 쿼드 또는 더블의 다른 부분들에 대한 PRN들을 되찾는 것이 필요할 수 있다. |
Q0 | Q1 | Q2 | Q3 | .. |
Q0/D0/S0 S1 D1/S2 S3 |
Q1/D2/S4 S5 D3/S6 S7 |
Q2/D4/S8 S9 D5/S10 S11 |
Q3/D6/S12 S13 D7/S14 S15 |
.. .. .. .. |
Q0 | Q1 | Q2 | Q3 | .. |
Q0/D0/S0:PRNA S1:PRNA D1/S2:PRNA S3:PRNA |
Q1/D2/S4:PRNB S5:PRNB D3/S6:PRNB S7:PRNB |
Q2/D4/S8:PRNC S9:PRNC D5/S10:PRNC S11:PRNC |
Q3/D6/S12:PRND S13:PRND D7/S14:PRND S15:PRND |
.. .. .. .. .. |
상태 이름 | 설명 |
쿼드 | LRN Q00/D00/S00: 쿼드까지 판독들에 대해 유효함 |
LRN S01: 이 상태에서 유효하지 않음 | |
LRN D01/S02: 이 상태에서 유효하지 않음 | |
LRN S03: 이 상태에서 유효하지 않음 | |
D0/D1 | LRN Q00/D00/S00: 더블까지 판독들에 대해 유효함 쿼드로서 유효하지 않음 |
LRN S01: 이 상태에서 유효하지 않음 | |
LRN D01:S02: 더블 또는 싱글로서 판독들에 대해 유효함 | |
LRN S03: 이 상태에서 유효하지 않음 | |
S0/S1/D1 | LRN Q00/D00/S00: 싱글로서 판독들에 대해서만 유효함 |
LRN S01: 유효함 | |
LRN D01/S02: 더블 또는 싱글로서 판독들에 대해 유효함 | |
LRN S03: 이 상태에서 유효하지 않음 | |
D0/S2/S3 | LRN Q00/D00/S00: 더블까지 판독들에 대해 유효함 쿼드로서 유효하지 않음 |
LRN S01: 이 상태에서 유효하지 않음 | |
LRN D01/S02: 단지 싱글로서만 유효함 | |
LRN S03: 유효함 | |
S0/S1/S2/S3 | LRN Q00/D00/S00: 단지 싱글로서만 유효함 |
LRN S01: 유효함 | |
LRN D01/S02: 단지 싱글로서만 유효함 | |
LRN S03: 유효함 | |
Q/D1 | 이 상태는 최적화로서 사용될 수 있다. 상태 쿼드에 있으며 D1을 판독하도록 요구한다면, 쿼드의 상위 64 비트들을 새로운 PRN으로 셔플링하며 D01/S02에 대한 LRN을 싱글 또는 더블로서 판독하기 위해 유효하게 만들지만, 또한 원래 LRN(Q00/D00/S00)을 쿼드로서 판독되도록 여전히 유효하게 할 수 있다. |
D0/D1U | 이 상태는 최적화로서 사용될 수 있다. 상태 쿼드에 있으며 하위 더블을 기록하기를 원한다면, 이 상태는 LRN(Q00/D00/S00) 매핑이 상기 기록으로부터 새로운 PRN을 갖고 더블까지 판독되기 위해 유효한 것으로서 표시되도록 허용할 것이다. D1/S02에 대한 LRN을 전체 쿼드에 대한 원래 PRN으로 향하게 하며, 기록이 회수될 때 상기 PRN을 자유 리스트로 리턴하지 않을 수 있다면, D1에 대한 데이터는 PRN에 있지만, 데이터 경로에 대해 정렬되지 않는다고 알려져 있다. 그것은 D1을 재정렬할 때 임의의 동작이 그것이 판독되도록 요구할 때까지 연기되도록 허용하며, 어떤 부가적인 동작도 D1이 다음에 기록된다면 취해질 필요가 없다. PRN을 복사하기 위한 최고의 방식은 또한 이러한 LRN에 대한 PRN의 쿼드 기록의 원래 기록을 갖는 것이다. |
상태 명칭 | 인코딩 |
쿼드 | 001 |
D0/D1 | 010 |
S0/S1/D1 | 011 |
D0/S2/S3 | 100 |
S0/S1/S2/S3 | 101 |
Q/D1 | 110 |
D0/D1U | 111 |
fkregq2d <소스> <목적지> |
소스 PRN의 상위 비트들(예로서, 127:64)을 취하며 그것들을 목적지 PRN의 하위 비트들(예로서, 63:0)에 위치시키며 목적지 PRN의 상위 레지스터(예로서, 비트들 127:64)를 제로화한다. PRN들을 자유 리스트로 리턴시키지 않는다. |
fkregd2s <소스> <목적지> |
소스 PRN의 비트들(63:32)을 취하며 그것들을 목적지 PRN의 비트들(31:0)에 위치시키고, 목적지 PRN의 상위 레지스터(예로서, 비트들 127:32)를 제로화한다. PRN들을 자유 리스트로 리턴시키지 않는다. |
fkregs2d <소스 1> <소스 2> <목적지> |
소스 1 PRN의 비트들(31:0)을 취하며 그것들을 목적지 PRN의 비트들(31:0)에 위치시키고, 소스 2 PRN의 비트들(31:0)을 취하며 그것들을 목적지 PRN의 비트들(63:0)에 위치시켜서, 목적지 레지스터의 나머지(예로서, 비트들 127:64)를 제로화한다. 소스 1에 대한 PRN을 자유 리스트로 리턴시킨다. |
fkregd2q <소스 1> <소스 2> <목적지> |
소스 1 PRN의 비트들(63:0)을 취하며 그것들을 목적지 PRN의 비트들(63:0)에 위치시키고, 소스 2 PRN의 비트들(63:0)을 취하며 그것들을 목적지 PRN의 비트들(127:64)에 위치시킨다. 소스 1에 대한 PRN을 자유 리스트로 리턴시킨다. |
fkreclaimprn <소스> |
소스에 대한 PRN을 다시 자유 리스트에 두지만, 그것을 레지스터 맵에서 매핑된 채로 둔다. PRN은 이러한 uop가 자유 리스트 상에 두어지는 PRN으로부터 데이터를 복구할 다른 재패킹 op들(fkregs2d 또는 fkregd2q) 중 하나를 사용하여 원자적으로 회수되어야 한다. |
현재 상태 및 PRN들 |
동작 | 다음 상태 및 PRN들 |
패킹/언패킹 op들 |
패킹/언패킹 후 상태 |
쿼드 A-A-A-A |
쿼드/D0/S0 판독 |
|||
D1 판독 | fkregq2d D1, Q0 | Q/D1 | ||
S1 판독 | fkregq2d D1, Q0 fkregd2s S1, D0 |
Q/D1 S0/S1/D1 |
||
S2 판독 | fkregq2d D1, Q0 | Q/D1 | ||
S3 판독 | fkregq2d D1, Q0 fkregd2s S3, D1 |
Q/D1 D0/S2/S3 |
||
D1 기록 | D0/D1 A-A-B-B |
|||
D0 기록 | D0/D1U B-B-A-A |
|||
S0 기록 | fkregq2d D1, Q0 fkregq2s S1, D0 |
Q/D1 S0/S1/D1 |
||
S1 기록 | fkregq2d D1, Q0 | Q/D1 | ||
S2 기록 | fkregq2d D1, Q0 fkregd2s S3, D1 |
Q/D1 D0/S2/S3 |
||
S3 기록 | fkregq2d D1, Q0 | Q/D1 | ||
D1 언패킹 | 쿼드/D1 A-A-B-B |
현재 상태 및 PRN들 |
동작 | 상태 및 PRN들 |
패킹/언패킹 op들 |
패킹/언패킹 후 상태 |
D0/D1 A-A-B-B |
쿼드 판독 | fkreclaimprn D1 fkregd2q Q0, D0, D1 |
(원자 시퀀스) 쿼드 |
|
D0 판독 | ||||
D1 판독 | ||||
S0 판독 | ||||
S2 판독 | ||||
S1 판독 | fkregd2s S1, D0 | S0/S1/D1 | ||
S3 판독 | fkregd2s S3, D1 | D0/S2/S3 | ||
S0 기록 | fkregd2s S1, D0 | S0/S1/D1 | ||
S2 기록 | fkregd2s S3, D1 | D0/S2/S3 | ||
S1 기록 | S0/S1/D1 A-C-B-B |
|||
S3 기록 | D0/S2/S3 A-A-B-C |
|||
D0 기록 | D0/D1 C-C-B-B |
|||
D1 기록 | D0/D1 A-A-C-C |
|||
쿼드 기록 | fkreclaimprn D1 fkregd2q Q0, D0, D1 |
(원자 시퀀스) 쿼드 |
||
S1 언패킹 | S0/S1/D1 A-C-B-B |
|||
S3 언패킹 | D0/S2/S3 A-A-B-C |
|||
쿼드 패킹 | 쿼드/D1 C-C-B-B |
현재 상태 및 PRN들 |
동작 | 다음 상태 및 PRN들 |
패킹/언패킹 op들 |
패킹/언패킹 후 상태 |
D0/D1U B-B-A-A |
쿼드 판독 | fkreclaimprn D1 fkregd2qh Q0, D0, D1 |
(원자 시퀀스) 쿼드 |
|
D0 판독 | ||||
S0 판독 | ||||
D1 판독 | fkregq2d D1, D1 | D0/D1 | ||
S1 판독 | fkregq2d D1, D1 fkregd2s S1, D0 |
D0/D1 S0/S1/D1 |
||
S2 판독 | fkregq2d D1, D1 | D0/D1 | ||
S3 판독 | fkregq2d D1, D1 fkregd2s S3, D1 |
D0/D1 D0/S2/S3 |
||
D0 기록 | D0/D1U C-C-A-A |
|||
D1 기록 | D0/D1 B-B-C-C |
|||
S0 기록 | fkregq2d D1, D1 fkregd2s S1, D0 |
D0/D1 S0/S1/D1 |
||
S1 기록 | fkregq2d D1, D1 | D0/D1 | ||
S2 기록 | fkregq2d D1, D1 fkregd2s S3, D1 |
D0/D1 D0/S2/S3 |
||
S3 기록 | fkregq2d D1, D1 | D0/D1 |
현재 상태 및 PRN들 |
동작 | 다음 상태 및 PRN들 |
패킹/언패킹 op들 |
패킹/언패킹 후 상태 |
S0/S1/D1 C-D-B-B |
쿼드 판독 | fkreclaimprn S1 fkregs2d D0, S0, S1 fkreclaimprn D1 fkregd2q Q, D0, D1 |
(원자 시퀀스) D0/D1 (원자 시퀀스) 쿼드 |
|
S0 판독 | ||||
S1 판독 | ||||
D1 판독 | ||||
S2 판독 | ||||
D0 판독 | fkreclaimprn S1 fkregs2d D0, S0, S1 |
(원자 시퀀스) D0/D1 |
||
S3 판독 | fkregd2s S3, D1 | S0/S1/S2/S3 | ||
S0 기록 | S0/S1/D1 E-D-B-B |
|||
S1 기록 | S0/S1/D1 C-E-B-B |
|||
D1 기록 | S0/S1/D1 C-D-E-E |
|||
쿼드 기록 | fkreclaimprn S1 fkregs2d D0, S0, S1 fkreclaimprn D1 fkregd2q Q, D0, D1 |
(원자 시퀀스) D0/D1 (원자 시퀀스) 쿼드 |
||
D0 기록 | fkreclaimprn S1 fkregs2d D0, S0, S1 |
(원자 시퀀스) D0/D1 |
||
S2 기록 | fkregd2s S3, D1 | S0/S1/S2/S3 | ||
S3 기록 | S0/S1/S2/S3 |
현재 상태 및 PRN들 |
동작 | 다음 상태 및 PRN들 |
패킹/언패킹 op들 |
패킹/언패킹 후 상태 |
D0/S2/S3 A-A-B-C |
쿼드 판독 | fkreclaimprn S3 fkregs2d D1, S2, S3 fkreclaimprn D1 fkregd2q Q, D0, D1 |
(원자 시퀀스) D0/D1 (원자 시퀀스) 쿼드 |
|
D0 판독 | ||||
S0 판독 | ||||
S2 판독 | ||||
S3 판독 | ||||
D1 판독 | fkreclaimprn S3 fkregs2d D1, S2, S3 |
(원자 시퀀스) D0/D1 |
||
S1 판독 | fkregd2s S1, D0 | S0/S1/S2/S3 | ||
쿼드 기록 | fkreclaimprn S3 fkregs2d D1, S2, S3 fkreclaimprn D1 fkregd2q Q0, D0, D1 |
(원자 시퀀스) D0/D1 (원자 시퀀스) 쿼드 |
||
D1 기록 | fkreclaimprn S3 fkregs2d D1, S2, S3 |
(원자 시퀀스) D0/D1 |
||
D0 기록 | D0/S2/S3 D-D-B-C |
|||
S2 기록 | D0/S2/S3 A-A-D-C |
|||
S3 기록 | D0/S2/S3 A-A-B-D |
|||
S1 기록 | S0/S1/S2/S3 A-D-B-C |
현재 상태 및 PRN들 |
동작 | 다음 상태 및 PRN들 |
패킹/언패킹 op들 |
패킹/언패킹 후 상태 |
S0/S1/S2/S3 A-B-C-D |
쿼드/D0/D1 판독 |
fkreclaimprn S3 fkregs2d D1, S2, S3 fkreclaimprn S1 fkregs2d D0, S0, S1 fkreclaimprn D1 fkregd2q Q0, D0, D1 |
(원자 시퀀스) S0/S1/D1 (원자 시퀀스) D0/D1 (원자 시퀀스) 쿼드 |
|
D0 판독 | fkreclaimprn S1 fkregs2d D0, S0, S1 |
(원자 시퀀스) D0/S2/S3 |
||
D1 판독 | fkreclaimprn S1 fkregs2d D0, S0, S1 |
(원자 시퀀스) D0/S2/S3 |
||
S0 판독 | ||||
S1 판독 | ||||
S2 판독 | ||||
S3 판독 | ||||
쿼드 기록 | fkreclaimprn S3 fkregs2d D1, S2, S3 fkreclaimprn S1 fkregs2d D0, S0, S1 fkreclaimprn D1 fkregd2q Q0, D0, D1 |
(원자 시퀀스) S0/S1/D1 (원자 시퀀스) D0/D1 (원자 시퀀스) 쿼드 |
||
D0 기록 | fkreclaimprn S1 fkregs2d D0, S0, S1 |
(원자 시퀀스) D0/S2/S3 |
||
D1 기록 | fkreclaimprn S3 fkregs2d D1, S2, S3 |
(원자 시퀀스) S0/S1/D1 |
||
S0 기록 | S0/S1/S2/D3 E-B-C-D |
|||
S1 기록 | S0/S1/S2/S3 A-E-C-D |
|||
S2 기록 | S0/S1/S2/S3 A-B-E-D |
|||
S3 기록 | S0/S1/S2/S3 A-B-C-E |
현재 상태 및 PRN들 |
동작 | 다음 상태 및 PRN들 |
패킹/언패킹 op들 |
패킹/언패킹 후 상태 |
쿼드/D1 A-A-B-B |
쿼드 판독 |
|||
D0 판독 | ||||
D1 판독 | ||||
S0 판독 | ||||
S1 판독 | fkregd2s S1, D0 | S0/S1/D1 | ||
S2 판독 | ||||
S3 판독 | fkregd2s S3, D1 | D0/S2/S3 | ||
쿼드 기록 | fkreclaimprn D1 fkregd2q Q, D0, D1 |
(원자 시퀀스) 쿼드 |
||
D0 기록 | D0/D1 C-C-B-B |
|||
D1 기록 | D0/D1 A-A-C-C |
|||
S0 기록 | fkregd2s S1, D0 | S0/S1/D1 | ||
S1 기록 | S0/S1/D1 A-C-B-B |
|||
S2 기록 | fkregd2s S3, D1 | D0/S2/S3 | ||
S3 기록 | D0/S2/S3 A-A-B-C |
|||
D1 패킹 | 쿼드 C-C-C-C |
|||
S1 언패킹 | S0/S1/D1 A-C-B-B |
|||
S3 언패킹 | D0/S2/S3 A-A-B-C |
레지스터 상태 |
Q0:Q |
Q1:Q |
Q2:Q |
Q3:Q |
... |
레지스터 상태 |
Q0:Q |
Q1:Q |
Q2:Q |
Q3:Q |
... |
레지스터 맵: | ||||
Q0 | Q1 | Q2 | Q3 | .. |
Q0/D0/S0:PRNA S1:PRNA D1/S2:PRNA S3:PRNA |
Q1/D2/S4:PRNB S5:PRNB D3/S6:PRNB S7:PRNB |
Q2/D4/S8:PRNC S9:PRNC D5/S10:PRNC S11:PRNC |
Q3/D6/S12:PRND S13:PRND D7:S14:PRND S15:PRND |
.. .. .. .. .. |
PRNA: |
S3 | S2 | S1 | S0 |
D1 | D0 | |||
Q0 | ||||
PRNB: |
S7 | S6 | S5 | S4 |
D3 | D2 | |||
Q1 | ||||
PRNC: |
S11 | S10 | S9 | S8 |
D5 | D4 | |||
Q2 | ||||
PRND: |
S15 | S14 | S13 | S13 |
D7 | D6 | |||
Q3 |
레지스터 상태 |
Q0:D0/D1 |
Q1:Q |
Q2:Q |
Q3:Q |
... |
레지스터 상태 |
Q0:Q |
Q1:Q |
Q2:Q |
Q3:Q |
... |
레지스터 맵: | ||||
Q0 | Q1 | Q2 | Q3 | .. |
Q0/D0/S0:PRNE S1:PRNE D1/S2:PRNE S3:PRNE |
Q1/D2/S4:PRNB S5:PRNB D3/S6:PRNB S7:PRNB |
Q2/D4/S8:PRNC S9:PRNC D5/S10:PRNC S11:PRNC |
Q3/D6/S12:PRND S13:PRND D7/S14:PRND S15:PRND |
.. .. .. .. .. |
레지스터 맵: | ||||
Q0 | Q1 | Q2 | Q3 | .. |
Q0/D0/S0:PRNA S1:PRNA D1/S2:PRNF S3:PRNF |
Q1/D2/S4:PRNB S5:PRNB D3/S6:PRNB S7:PRNB |
Q2/D4/S8:PRNC S9:PRNC D5/S10:PRNC S11:PRNC |
Q3/D6/S12:PRND S13:PRND D7/S14:PRND S15:PRND |
.. .. .. .. .. |
레지스터 맵: | ||||
Q0 | Q1 | Q2 | Q3 | .. |
Q0/D0/S0:PRNG S1:PRNG D1/S2:PRNF S3:PRNF |
Q1/D2/S4:PRNB S5:PRNB D3/S6:PRNB S7:PRNB |
Q2/D4/S8:PRNC S9:PRNC D5/S10:PRNC S11:PRNC |
Q3/D6/S12:PRND S13:PRND D7/S14:PRND S15:PRND |
.. .. .. .. .. |
레지스터 맵: | ||||
Q0 | Q1 | Q2 | Q3 | .. |
Q0/D0/S0:PRNH S1:PRNH D1/S2:PRNH S3:PRNH |
Q1/D2/S4:PRNB S5:PRNB D3/S6:PRNB S7:PRNB |
Q2/D4/S8:PRNC S9:PRNC D5/S10:PRNC S11:PRNC |
Q3/D6/S12:PRND S13:PRND D7/S14:PRND S15:PRND |
.. .. .. .. .. |
레지스터 맵: | ||||
Q0 | Q1 | Q2 | Q3 | .. |
Q0/D0/S0:PRNH S1:PRNH D1/S2:PRNH S3:PRNH |
Q1/D2/S4:PRNB S5:PRNB D3/S6:PRNB S7:PRNB |
Q2/D4/S8:PRNC S9:PRNC D5/S10:PRNC S11:PRNC |
Q3/D6/S12:PRNI S13:PRNI D7/S14:PRNI S15:PRNI |
.. .. .. .. .. |
물리 레지스터 파일: | ||||
PRNA: | 매핑되지 않음 - 자유 리스트로 리턴됨 - xx | |||
PRNB: |
S7 | S6 | S5 | S4 |
D3 | D2 | |||
Q1 | ||||
PRNC: |
S11 | S10 | S9 | S8 |
D5 | D4 | |||
Q2 | ||||
PRND: |
S15 | S14 | S13 | S13 |
D7 | D6 | |||
Q3 | ||||
PRNE: |
S3 | S2 | S1 | S0 |
D1 | D0 | |||
Q0 |
물리 레지스터 파일: | ||||
PRNA: | 매핑되지 않음 - xx | |||
PRNB: |
S7 | S6 | S5 | S4 |
D3 | D2 | |||
Q1 | ||||
PRNC: |
S11 | S10 | S9 | S8 |
D5 | D4 | |||
Q2 | ||||
PRND: |
S15 | S14 | S13 | S13 |
D7 | D6 | |||
Q3 | ||||
PRNE: |
S3 | S2 | S1 | S0 |
D1 | D0 | |||
Q0 | ||||
PRNF: |
xx | xx | S3 | S4 |
xx | D1 | |||
xx |
물리 레지스터 파일: | ||||
PRNA: | 매핑되지 않음 - xx | |||
PRNB: |
S7 | S6 | S5 | S4 |
D3 | D2 | |||
Q1 | ||||
PRNC: |
S11 | S10 | S9 | S8 |
D5 | D4 | |||
Q2 | ||||
PRND: |
S15 | S14 | S13 | S13 |
D7 | D6 | |||
Q3 | ||||
PRNE: | 매핑되지 않음 - 자유 리스트로 리턴됨 - xx | |||
PRNF: |
xx | xx | S3 | S4 |
xx | D1 | |||
xx | ||||
PRNG: |
xx | xx | S1 | S0 |
xx | D0 | |||
xx |
물리 레지스터 파일: | ||||
PRNA: | 매핑되지 않음 - xx | |||
PRNB: |
S7 | S6 | S5 | S4 |
D3 | D2 | |||
Q1 | ||||
PRNC: |
S11 | S10 | S9 | S8 |
D5 | D4 | |||
Q2 | ||||
PRND: |
S15 | S14 | S13 | S13 |
D7 | D6 | |||
Q3 | ||||
PRNE: | 매핑되지 않음 - xx | |||
PRNF: | 매핑되지 않음 - 자유 리스트로 리턴됨 - xx | |||
PRNG: | 매핑되지 않음 - 자유 리스트로 리턴됨 - xx | |||
PRNH: |
S3 | S2 | S1 | S0 |
D1 | D0 | |||
Q0 |
물리 레지스터 파일: | ||||
PRNA: | 매핑되지 않음 - xx | |||
PRNB: |
S7 | S6 | S5 | S4 |
D3 | D2 | |||
Q1 | ||||
PRNC: |
S11 | S10 | S9 | S8 |
D5 | D4 | |||
Q2 | ||||
PRND: | 매핑되지 않음 - 자유 리스트로 리턴됨 - xx | |||
PRNE: | 매핑되지 않음 - xx | |||
PRNF: | 매핑되지 않음 - xx | |||
PRNG: | 매핑되지 않음 - xx | |||
PRNH: |
S3 | S2 | S1 | S0 |
D1 | D0 | |||
Q0 | ||||
PRNI: |
S15 | S14 | S13 | S13 |
D7 | D6 | |||
Q3 |
Claims (20)
- 물리 메모리에 저장된 패킹된(packed) 레지스터들을 액세스하기 위한 방법에 있어서,
상기 패킹된 레지스터들의 상태를 저장하는 단계;
명령어가 상기 패킹된 레지스터들의 레지스터의 액세스를 포함한다는 것을 조건으로, 상기 패킹된 레지스터들의 상태에 기초하여 상기 레지스터가 직접 액세스 가능한지를 결정하는 단계; 및
상기 레지스터가 직접 액세스 가능하지 않다는 것을 조건으로, 상기 레지스터가 직접 액세스되도록 허용하는 동작을 수행하는 단계를 포함하는, 패킹된 레지스터들을 액세스하기 위한 방법. - 제1항에 있어서,
상기 동작은 적어도 하나의 uop를 주입하는 것, 상기 상태를 변경하는 것, 또는 상기 레지스터의 최하위 비트(least significant bit; LSB)를 물리 레지스터의 LSB와 정렬시키는 것 중 적어도 하나를 포함하는, 패킹된 레지스터들을 액세스하기 위한 방법. - 제1항에 있어서,
상기 액세스는 판독 동작 또는 기록 동작을 포함하며, 상기 동작은 상기 레지스터가 직접 판독되거나 또는 기록되도록 허용하는, 패킹된 레지스터들을 액세스하기 위한 방법. - 제1항에 있어서,
상기 패킹된 레지스터들의 비트들은 물리 레지스터 파일의 적어도 하나의 물리 레지스터에 저장되는, 패킹된 레지스터들을 액세스하기 위한 방법. - 제1항에 있어서,
이력을 생성하기 위해, 상기 동작 및 적어도 하나의 후속 동작, 상기 레지스터의 패킹 및 상기 레지스터의 적어도 하나의 후속 패킹, 또는 상기 레지스터의 상태 및 적어도 하나의 후속 상태 중 적어도 하나를 추적하는 단계, 및
상기 이력에 기초하여 장래 동작이 요구되는지 또는 어떤 장래 동작이 요구되는지를 결정하는 단계를 더 포함하는, 패킹된 레지스터들을 액세스하기 위한 방법. - 제4항에 있어서,
상기 동작은 상기 액세스 이전에 제 2 물리 레지스터에 상기 패킹된 레지스터들의 비트들의 적어도 일 부분을 저장하는 적어도 하나의 uop를 주입하는 것을 포함하는, 패킹된 레지스터들을 액세스하기 위한 방법. - 제1항에 있어서,
상기 상태는 상기 패킹된 레지스터들이 단일 물리 레지스터 내에 저장되는지, 상기 패킹된 레지스터들이 2 이상의 물리 레지스터 내에 저장되는지, 또는 상기 저장된 패킹된 레지스터들이 적어도 하나의 물리 레지스터 내에 배열되는 순서 중 적어도 하나를 표시하는, 패킹된 레지스터들을 액세스하기 위한 방법. - 제1항에 있어서,
상기 패킹된 레지스터들은 각각 물리 레지스터에 매핑되는, 패킹된 레지스터들을 액세스하기 위한 방법. - 제1항에 있어서,
복수의 논리 레지스터 명칭(logical register name; LRN)들은 각각 상기 패킹된 레지스터들 중 하나 이상과 연관되며, 각각의 LRN은 물리 레지스터와 연관된 물리 레지스터 명칭(physical register name; PRN)에 매핑되는, 패킹된 레지스터들을 액세스하기 위한 방법. - 제9항에 있어서,
상기 상태는 상기 패킹된 레지스터들의 각각의 LRN 대 PRN 매핑의 유효성을 반영하는, 패킹된 레지스터들을 액세스하기 위한 방법. - 제1항에 있어서,
상기 레지스터는 상기 레지스터의 최하위 비트(LSB)가 물리 레지스터의 LSB와 정렬된다면 직접 액세스 가능한, 패킹된 레지스터들을 액세스하기 위한 방법. - 제1항에 있어서,
상기 레지스터는 상기 레지스터가 상기 비트들을 액세스하기 전에 물리 메모리에 저장된 상기 레지스터의 비트들을 이동시키지 않고 상기 명령어에 의해 액세스될 수 있다면 직접 액세스 가능한, 패킹된 레지스터들을 액세스하기 위한 방법. - 제2항에 있어서,
상기 주입된 적어도 하나의 uop는 상기 주입된 적어도 하나의 uop가 디코딩된 적어도 하나의 uop 전에 실행되도록 상기 명령어의 상기 적어도 하나의 디코딩된 uop에 앞서 주입되는, 패킹된 레지스터들을 액세스하기 위한 방법. - 제1항에 있어서,
상기 패킹된 레지스터들은 하나의 쿼드 정도(quad precision) 레지스터, 두 개의 배 정도(double precision) 레지스터들, 및 4개의 단 정도(single precision) 레지스터들을 포함하는, 패킹된 레지스터들을 액세스하기 위한 방법. - 제1항에 있어서,
상기 패킹된 레지스터들 중 하나로의 기록에 이어, 그것이 패킹되는 상기 패킹된 레지스터들 중 보다 큰 것이 판독 가능한, 패킹된 레지스터들을 액세스하기 위한 방법. - 제1항에 있어서,
상기 패킹된 레지스터들은 아키텍처 레지스터들인, 패킹된 레지스터들을 액세스하기 위한 방법. - 물리 메모리에 저장된 패킹된 레지스터들을 액세스하기 위한 디바이스에 있어서,
상기 패킹된 레지스터들의 상태를 저장하는 회로;
명령어가 상기 패킹된 레지스터들의 레지스터를 액세스한다는 것을 조건으로, 상기 상태에 기초하여 상기 레지스터가 직접 액세스 가능한지를 결정하는 회로; 및
상기 레지스터가 직접 액세스 가능하지 않다는 것을 조건으로, 상기 레지스터가 직접 액세스되도록 허용하는 동작을 수행하는 회로를 포함하는, 패킹된 레지스터들을 액세스하기 위한 디바이스. - 제17항에 있어서,
상기 동작은 적어도 하나의 uop를 주입하는 것, 상기 상태를 변경하는 것, 상기 레지스터의 최하위 비트(LSB)를 물리 레지스터의 LSB와 정렬시키는 것 중 적어도 하나를 포함하는, 패킹된 레지스터들을 액세스하기 위한 디바이스. - 제17항에 있어서,
이력을 생성하기 위해, 상기 동작 및 적어도 하나의 후속 동작, 상기 레지스터의 패킹 및 상기 레지스터의 적어도 하나의 후속 패킹, 또는 상기 레지스터의 상태 및 적어도 하나의 후속 상태 중 적어도 하나를 추적하는 회로; 및
상기 이력에 기초하여 장래 동작이 요구되는지 또는 어떤 장래 동작이 요구되는지를 결정하는 회로를 더 포함하는, 패킹된 레지스터들을 액세스하기 위한 디바이스. - 제17항에 있어서,
상기 상태는 상기 패킹된 레지스터들이 단일 물리 레지스터 내에 저장되는지, 상기 패킹된 레지스터들이 2 이상의 물리 레지스터 내에 저장되는지, 또는 상기 저장된 패킹된 레지스터들이 적어도 하나의 물리 레지스터 내에 배열되는 순서 중 적어도 하나를 표시하는, 패킹된 레지스터들을 액세스하기 위한 디바이스.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361896091P | 2013-10-27 | 2013-10-27 | |
US61/896,091 | 2013-10-27 | ||
PCT/US2014/062195 WO2015061697A1 (en) | 2013-10-27 | 2014-10-24 | Processor and methods for floating point register aliasing |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160078377A true KR20160078377A (ko) | 2016-07-04 |
KR102332478B1 KR102332478B1 (ko) | 2021-11-30 |
Family
ID=52993625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020167012859A KR102332478B1 (ko) | 2013-10-27 | 2014-10-24 | 부동 소수점 레지스터 앨리어싱을 위한 프로세서 및 방법들 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20150121040A1 (ko) |
EP (1) | EP3060978B1 (ko) |
JP (1) | JP6511462B2 (ko) |
KR (1) | KR102332478B1 (ko) |
CN (1) | CN105993000B (ko) |
WO (1) | WO2015061697A1 (ko) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11544214B2 (en) * | 2015-02-02 | 2023-01-03 | Optimum Semiconductor Technologies, Inc. | Monolithic vector processor configured to operate on variable length vectors using a vector length register |
US10949202B2 (en) | 2016-04-14 | 2021-03-16 | International Business Machines Corporation | Identifying and tracking frequently accessed registers in a processor |
US10007590B2 (en) | 2016-04-14 | 2018-06-26 | International Business Machines Corporation | Identifying and tracking frequently accessed registers in a processor |
CN107291425B (zh) * | 2017-06-23 | 2020-11-24 | 上海兆芯集成电路有限公司 | 合并解决重命名尺寸问题的部分写入结果的系统和方法 |
JP7176204B2 (ja) * | 2018-03-12 | 2022-11-22 | オムロン株式会社 | 演算ユニット、および制御装置 |
JP7032647B2 (ja) * | 2018-04-17 | 2022-03-09 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US11327757B2 (en) * | 2020-05-04 | 2022-05-10 | International Business Machines Corporation | Processor providing intelligent management of values buffered in overlaid architected and non-architected register files |
US11366774B2 (en) * | 2020-09-24 | 2022-06-21 | Adesto Technologies Corporation | Memory latency reduction in XIP mode |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004145898A (ja) * | 1995-12-19 | 2004-05-20 | Intel Corp | 単一のレジスタ・ファイルを使用して浮動小数点命令およびパック・データ命令を実行する方法および装置 |
US20040268092A1 (en) * | 2003-06-30 | 2004-12-30 | Zeev Sperber | Elimination of potential renaming stalls due to use of partial registers |
US20110208918A1 (en) * | 2009-12-26 | 2011-08-25 | Shlomo Raikin | Move elimination and next page prefetcher |
US20120059998A1 (en) * | 2010-09-03 | 2012-03-08 | Nimrod Alexandron | Bit mask extract and pack for boundary crossing data |
US20120110305A1 (en) * | 2010-11-03 | 2012-05-03 | Wei-Han Lien | Register Renamer that Handles Multiple Register Sizes Aliased to the Same Storage Locations |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6122656A (en) * | 1998-07-31 | 2000-09-19 | Advanced Micro Devices, Inc. | Processor configured to map logical register numbers to physical register numbers using virtual register numbers |
EP1237072B1 (en) * | 1999-09-08 | 2010-11-24 | Hajime Seki | Register renaming system |
US6633970B1 (en) * | 1999-12-28 | 2003-10-14 | Intel Corporation | Processor with registers storing committed/speculative data and a RAT state history recovery mechanism with retire pointer |
EP1217513A3 (en) * | 2000-12-23 | 2003-08-13 | International Business Machines Corporation | Method for handling 32 bit results for an out-of-order processor with a 64 bit architecture |
US7428631B2 (en) * | 2003-07-31 | 2008-09-23 | Intel Corporation | Apparatus and method using different size rename registers for partial-bit and bulk-bit writes |
US20050102494A1 (en) * | 2003-11-12 | 2005-05-12 | Grochowski Edward T. | Method and apparatus for register stack implementation using micro-operations |
TWI273485B (en) * | 2004-02-04 | 2007-02-11 | Via Tech Inc | Pipeline microprocessor, apparatus, and method for generating early status flags |
CN100524208C (zh) * | 2006-10-26 | 2009-08-05 | 中国科学院计算技术研究所 | 对状态寄存器进行重命名的方法和使用该方法的处理器 |
US8694758B2 (en) * | 2007-12-27 | 2014-04-08 | Intel Corporation | Mixing instructions with different register sizes |
US8069339B2 (en) * | 2009-05-20 | 2011-11-29 | Via Technologies, Inc. | Microprocessor with microinstruction-specifiable non-architectural condition code flag register |
US8578136B2 (en) * | 2010-06-15 | 2013-11-05 | Arm Limited | Apparatus and method for mapping architectural registers to physical registers |
US9626190B2 (en) * | 2010-10-07 | 2017-04-18 | Advanced Micro Devices, Inc. | Method and apparatus for floating point register caching |
EP2508979B1 (en) * | 2011-04-07 | 2018-10-10 | VIA Technologies, Inc. | Efficient conditional alu instruction in read-port limited register file microprocessor |
US9063747B2 (en) * | 2011-04-28 | 2015-06-23 | Freescale Semiconductor, Inc. | Microprocessor systems and methods for a combined register file and checkpoint repair register |
CN102184290B (zh) * | 2011-05-06 | 2013-02-06 | 天津大学 | 嵌入式微处理器的周期精确和位精确系统级模型构建方法 |
-
2014
- 2014-10-24 JP JP2016550676A patent/JP6511462B2/ja active Active
- 2014-10-24 EP EP14855236.7A patent/EP3060978B1/en active Active
- 2014-10-24 WO PCT/US2014/062195 patent/WO2015061697A1/en active Application Filing
- 2014-10-24 US US14/523,660 patent/US20150121040A1/en not_active Abandoned
- 2014-10-24 CN CN201480064205.4A patent/CN105993000B/zh active Active
- 2014-10-24 KR KR1020167012859A patent/KR102332478B1/ko active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004145898A (ja) * | 1995-12-19 | 2004-05-20 | Intel Corp | 単一のレジスタ・ファイルを使用して浮動小数点命令およびパック・データ命令を実行する方法および装置 |
US20040268092A1 (en) * | 2003-06-30 | 2004-12-30 | Zeev Sperber | Elimination of potential renaming stalls due to use of partial registers |
US20110208918A1 (en) * | 2009-12-26 | 2011-08-25 | Shlomo Raikin | Move elimination and next page prefetcher |
US20120059998A1 (en) * | 2010-09-03 | 2012-03-08 | Nimrod Alexandron | Bit mask extract and pack for boundary crossing data |
US20120110305A1 (en) * | 2010-11-03 | 2012-05-03 | Wei-Han Lien | Register Renamer that Handles Multiple Register Sizes Aliased to the Same Storage Locations |
Also Published As
Publication number | Publication date |
---|---|
JP6511462B2 (ja) | 2019-05-15 |
WO2015061697A1 (en) | 2015-04-30 |
EP3060978A4 (en) | 2017-06-28 |
CN105993000A (zh) | 2016-10-05 |
EP3060978B1 (en) | 2021-08-11 |
CN105993000B (zh) | 2021-05-07 |
JP2017502434A (ja) | 2017-01-19 |
US20150121040A1 (en) | 2015-04-30 |
KR102332478B1 (ko) | 2021-11-30 |
EP3060978A1 (en) | 2016-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20160078377A (ko) | 부동 소수점 레지스터 앨리어싱을 위한 프로세서 및 방법들 | |
TWI463332B (zh) | 在單一指令多資料之資料處理器中提供擴充尋址模式 | |
KR101502682B1 (ko) | 레지스터 초기화 연산들을 최적화하기 | |
KR102478874B1 (ko) | 비순차적 하드웨어 소프트웨어 공동 설계된 프로세서에서 스택 동기화 명령어를 갖는 술어 값의 스택을 구현하고 유지하기 위한 방법 및 장치 | |
US20180189066A1 (en) | Processor | |
KR20190049743A (ko) | 메모리 위반 예측 | |
TWI835807B (zh) | 用於組合載入或儲存指示的方法、裝置及非暫時性電腦可讀媒體 | |
US9424203B2 (en) | Storing look-up table indexes in a return stack buffer | |
US7721066B2 (en) | Efficient encoding for detecting load dependency on store with misalignment | |
GB2540948A (en) | Apparatus with reduced hardware register set | |
TW200527283A (en) | Renaming for register with multiple bit fields | |
KR20160031503A (ko) | 마이크로프로세서에서의 선택적 리네이밍을 위한 방법 및 장치 | |
CN107735775A (zh) | 用于使用与指针相关联的范围信息来执行指令的装置和方法 | |
JP2023526788A (ja) | マスターシャドウ物理レジスタファイルを利用するための方法及びシステム | |
KR20160075639A (ko) | 이미디에이트 핸들링 및 플래그 핸들링을 위한 프로세서 및 방법 | |
GB2562062A (en) | An apparatus and method for managing capability metadata | |
US20180349058A1 (en) | Buffer-based update of state data | |
KR20210074276A (ko) | 정확한 인터럽트 그리고/또는 덮어 쓰기 기능을 갖는 벡터 명령어 | |
KR20190107691A (ko) | 레지스터 리네이밍, 콜-리턴 예측 및 프리페치의 구현 | |
US20190138308A1 (en) | Unaligned memory accesses | |
US9323532B2 (en) | Predicting register pairs | |
US9389865B1 (en) | Accelerated execution of target of execute instruction | |
US9298459B2 (en) | Managing register pairing | |
US20120143885A1 (en) | Hybrid sources preready determination | |
KR20250027760A (ko) | 리네이밍을 위한 분할 레지스터 목록 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0105 | International application |
Patent event date: 20160516 Patent event code: PA01051R01D Comment text: International Patent Application |
|
PG1501 | Laying open of application | ||
A201 | Request for examination | ||
PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20191022 Comment text: Request for Examination of Application |
|
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20201030 Patent event code: PE09021S01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20210824 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20211124 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20211125 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
PR1001 | Payment of annual fee |
Payment date: 20241119 Start annual number: 4 End annual number: 4 |