KR101016713B1 - 데이터 처리 시스템 내의 예측 명령 - Google Patents
데이터 처리 시스템 내의 예측 명령 Download PDFInfo
- Publication number
- KR101016713B1 KR101016713B1 KR1020057023079A KR20057023079A KR101016713B1 KR 101016713 B1 KR101016713 B1 KR 101016713B1 KR 1020057023079 A KR1020057023079 A KR 1020057023079A KR 20057023079 A KR20057023079 A KR 20057023079A KR 101016713 B1 KR101016713 B1 KR 101016713B1
- Authority
- KR
- South Korea
- Prior art keywords
- instruction
- command
- prediction
- program
- condition
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 53
- 238000000034 method Methods 0.000 claims description 31
- 230000000295 complement effect Effects 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 3
- 238000003672 processing method Methods 0.000 claims description 2
- 230000006399 behavior Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 101100494729 Syncephalastrum racemosum SPSR gene Proteins 0.000 description 4
- 210000003813 thumb Anatomy 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000001343 mnemonic effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001629 suppression 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
-
- 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/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- 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/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30058—Conditional branch instructions
-
- 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/30181—Instruction operation extension or modification
-
- 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
-
- 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/323—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
Pnevrnatikatos D N et al: "Guarded Execution and Branch Prediction In Dynamic ILP Processors" Computer Architecture News, Association for Computing Machinery, New York, US, Vol.22, No.2,1 April 1994(1994-04-01), pages 120-129, XP000450344는 이하의 1개 이상의 명령을 예측하는 기능을 하는 가드(Guard) 명령을 제공하는 시스템에 대해서 개시한다.
데이터 처리 연산을 수행하도록 동작가능한 데이터 처리 로직(4,6,8,10)과;
상기 데이터 처리 로직이 상기 데이터 처리 연산을 수행하도록 제어하기 위해, 프로그램 명령의 디코딩을 수행하도록 동작가능한 명령 디코더(12)와;
실행되는 프로그램 명령의 메모리 위치를 나타내는 어드레스를 저장하도록 동작가능한 프로그램 카운터 레지스터(PC)를 포함하고,
상기 명령 디코더는, 예측 명령(IT)에 응답하여, 상기 예측 명령 이외의 하나 이상의 프로그램 명령 실행에 의해 설정된 상기 데이터 처리 장치의 하나 이상의 조건 상태에 따라, 상기 데이터 처리 로직이 하나 이상의 관련 프로그램 명령을 실행 또는 비실행하도록 제어하고,
상기 예측 명령에 따르는 상기 하나 이상의 관련 프로그램 명령 중 몇 개가 실행되는지를 나타내는 카운터 값을 저장하도록 동작가능한 예측 명령 카운터 레지스터(μPC)를 더 포함하고, 상기 프로그램 카운터 레지스터는 상기 예측 명령에 따르는 상기 하나 이상의 관련 프로그램 명령이 실행되고 있을 때 상기 예측 명령에 대응하는 어드레스의 저장을 계속하고;
예외의 발생시 상기 카운터 값을 저장하고, 상기 예외의 완료시 상기 카운터 값에 의해 지목된 프로그램 명령에서 시작하는 실행을 재개하도록 동작가능한 예외처리회로(18)를 더 포함하는 것을 특징으로 한다.
처리 시스템의 제어를 용이하게 하기 위해, 처리 시스템의 제어를 용이하게 하기 위해, 정상 프로그램 카운터 레지스터는 예측 명령의 적용을 받는 하나 이상의 관련 프로그램 명령의 실행 횟수를 나타내는 카운트 값을 저장하도록 동작 가능한 예측 명령 카운터 레지스터에 의해 보완된다. 예측 명령은 그 범위 내에서 인코딩된 도달(reach)을 효과적으로 가지며, 이 도달은 이로부터 실행 진행되고 이 도달이 초과된 트랙을 유지하기 위해 예측 명령이 제어하고 시스템이 필요로 하는 관련 프로그램 명령의 수를 특정한다.
이 예측 명령 카운트 레지스터는 예외 및 예외로부터의 복귀의 취급에 특히 유용하며, 이로부터 예외로부터의 복귀시 예측 명령 카운트 레지스터는 복구될 수 있으며, 프로그램 명령의 복귀 여부를 결정하는데 사용되는 그 값은 선행하는 예측 명령에 의해 그 동작이 영향을 받는 값이다.
데이터 처리 로직으로 데이터 처리 연산을 수행하는 단계와;
상기 데이터 처리 로직이 상기 데이터 처리 연산을 수행하도록 제어하기 위해, 명령 디코더로 프로그램 명령을 디코딩하는 단계와;
프로그램 카운터 레지스터에, 실행되는 프로그램 명령의 메모리 위치를 나타내는 어드레스를 저장하는 단계를 포함하고,
예측 명령에 응답하여, 상기 명령 디코더는, 상기 예측 명령 이외의 하나 이상의 프로그램 명령 실행에 의해 설정된 데이터 처리 장치의 하나 이상의 조건 상태에 따라, 상기 데이터 처리 로직이 하나 이상의 관련 프로그램 명령을 실행 또는 비실행하도록 제어하고,
상기 예측 명령에 따르는 상기 하나 이상의 관련 프로그램 명령 중 몇 개가 실행되는지를 나타내는 카운터 값을 예측 명령 카운터 레지스터에 저장하는 단계와;
상기 하나 이상의 관련 프로그램 명령이 실행되고 있을 때 상기 예측 명령에 대응하는 어드레스를 상기 프로그램 카운터 레지스터에 저장하는 것을 계속하는 단계와;
P 4 |
1 | condbase | P 1 |
P 2 |
P 3 |
다음 4 명령은 (condbase,P1), (condbase,P2), (condbase,P3), (condbase,P4)의 조건으로 조건부로 실행됨 | ||
1 | 0 | condbase | P 1 |
P 2 |
P 3 |
다음 3 명령은 (condbase,P1), (condbase,P2), (condbase,P3)의 조건으로 조건부로 실행됨 | ||
0 | 0 | condbase | P 1 |
P 2 |
1 | 다음 2 명령은 (condbase,P1), (condbase,P2)의 조건으로 조건부로 실행됨 | ||
0 | 0 | condbase | P 1 |
1 | 0 | 다음 명령은 (condbase,P1)의 조건으로 조건부로 실행됨 | ||
0 | 0 | N(비-제로) | 0 | 0 | 비예측 | |||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 정상 실행 |
도 7은 CPU(202), RAM(204), ROM(206), NIC(208), HDD(210), 디스플레이 드라이버(212), 디스플레이(214), 유저 I/O(216), 키보드(218) 및 마우스(220)를 포함하는, 전술한 기법의 실행을 위한 범용 컴퓨터 장치(200)를 나타낸다.
Claims (50)
- 데이터 처리 장치(2)로서:데이터 처리 연산을 수행하도록 동작가능한 데이터 처리 로직(4,6,8,10)과;상기 데이터 처리 로직이 상기 데이터 처리 연산을 수행하도록 제어하기 위해, 프로그램 명령의 디코딩을 수행하도록 동작가능한 명령 디코더(12)와;실행되는 프로그램 명령의 메모리 위치를 나타내는 어드레스를 저장하도록 동작가능한 프로그램 카운터 레지스터(PC)를 포함하고,상기 명령 디코더는, 예측 명령(IT)에 응답하여, 상기 예측 명령 이외의 하나 이상의 프로그램 명령 실행에 의해 설정된 상기 데이터 처리 장치의 하나 이상의 조건 상태에 따라, 상기 데이터 처리 로직이 하나 이상의 관련 프로그램 명령을 실행 또는 비실행하도록 제어하고,상기 예측 명령에 따르는 상기 하나 이상의 관련 프로그램 명령 중 몇 개가 실행되는지를 나타내는 카운터 값을 저장하도록 동작가능한 예측 명령 카운터 레지스터(μPC)를 더 포함하고, 상기 프로그램 카운터 레지스터는 상기 예측 명령에 따르는 상기 하나 이상의 관련 프로그램 명령이 실행되고 있을 때 상기 예측 명령에 대응하는 어드레스의 저장을 계속하고;예외의 발생시 상기 카운터 값을 저장하고, 상기 예외의 완료시 상기 카운터 값에 의해 지목된 프로그램 명령에서 시작하는 실행을 재개하도록 동작가능한 예외처리회로(18)를 더 포함하는 것을 특징으로 하는 데이터 처리 장치.
- 제1항에 있어서,상기 예측 명령은 복수의 관련 프로그램 명령을 제어하는 것을 특징으로 하는 데이터 처리 장치.
- 제1항에 있어서,상기 하나 이상의 관련 프로그램 명령은 비-조건부 프로그램 명령인 것을 특 징으로 하는 데이터 처리 장치.
- 제1항 내지 제3항 중 어느 한 항에 있어서,상기 하나 이상의 조건 상태는 하나 이상의 조건 코드 플래그의 값을 포함하는 것을 특징으로 하는 데이터 처리 장치.
- 제1항 내지 제3항 중 어느 한 항에 있어서,상기 하나 이상의 조건 상태는,(i) 상기 예측 명령의 한번 실행시 및(ii) 각 관련 프로그램 명령의 실행 이전중 한 시점에서 평가되는 것을 특징으로 하는 데이터 처리 장치.
- 제1항 내지 제3항 중 어느 한 항에 있어서,상기 하나 이상의 관련 프로그램 명령은 상기 예측 명령의 직후에 수반되는 것을 특징으로 하는 데이터 처리 장치.
- 제1항 내지 제3항 중 어느 한 항에 있어서,상기 예측 명령은,(i) 상기 하나 이상의 조건 상태가 하나 이상의 소정 조건에 일치하는 경우, 실행되는 하나 이상의 프로그램 명령의 조건 일치 블록에,(ii) 상기 하나 이상의 조건 상태가 상기 하나 이상의 소정 조건에 일치하지 않는 경우, 실행되는 하나 이상의 프로그램 명령의 조건 불일치 블록에 대응되는 것을 특징으로 하는 데이터 처리 장치.
- 제7항에 있어서,상기 예측 명령은,(i) 하나 이상의 프로그램 명령의 상기 조건 일치 블록의 길이와;(ii) 하나 이상의 프로그램 명령의 상기 조건 불일치 블록의 길이 중 하나 이상을 특정하는 것을 특징으로 하는 데이터 처리 장치.
- 제7항에 있어서,상기 예측 명령은 상기 하나 이상의 소정 조건(<cond>)을 특정하는 것을 특징으로 하는 데이터 처리 장치.
- 제1항 내지 제3항 중 어느 한 항에 있어서,상기 예측 명령은 상기 하나 이상의 조건 상태를 하나 이상의 소정 상태와 비교하는 것에 따라 각 관련 프로그램 명령이 실행 또는 비실행되는지를 각각 특정하는 하나 이상의 필드를 포함하는 것을 특징으로 하는 데이터 처리 장치.
- 제10항에 있어서,상기 예측 명령은, 각각의 관련 프로그램 명령의 실행 여부를 결정하기 위해, 상기 하나 이상의 조건 상태 또는 상기 하나 이상의 조건 상태의 보수가 상기 하나 이상의 소정 상태와 비교되는지 여부를 각각의 관련 프로그램 명령에 대해 특정하는 필드를 포함하는 것을 특징으로 하는 데이터 처리 장치.
- 삭제
- 삭제
- 삭제
- 삭제
- 제1항 내지 제3항 중 어느 한 항에 있어서,상기 하나 이상의 관련 프로그램 명령은 상기 예측 명령에 따르는 경우 다른 데이터 처리 동작을 특정하는 것을 특징으로 하는 데이터 처리 장치.
- 제16항에 있어서,상기 예측 명령 내의 프로그램 가능한 필드에 의존하여, 상기 하나 이상의 관련 프로그램 명령이 상기 하나 이상의 조건 상태로 임의 변경되지 않도록 저지하는 것을 특징으로 하는 데이터 처리 장치.
- 데이터 처리 방법으로서:데이터 처리 로직으로 데이터 처리 연산을 수행하는 단계와;상기 데이터 처리 로직이 상기 데이터 처리 연산을 수행하도록 제어하기 위해, 명령 디코더로 프로그램 명령을 디코딩하는 단계와;프로그램 카운터 레지스터에, 실행되는 프로그램 명령의 메모리 위치를 나타내는 어드레스를 저장하는 단계를 포함하고,예측 명령에 응답하여, 상기 명령 디코더는, 상기 예측 명령 이외의 하나 이상의 프로그램 명령 실행에 의해 설정된 데이터 처리 장치의 하나 이상의 조건 상태에 따라, 상기 데이터 처리 로직이 하나 이상의 관련 프로그램 명령을 실행 또는 비실행하도록 제어하고,상기 예측 명령에 따르는 상기 하나 이상의 관련 프로그램 명령 중 몇 개가 실행되는지를 나타내는 카운터 값을 예측 명령 카운터 레지스터에 저장하는 단계와;상기 하나 이상의 관련 프로그램 명령이 실행되고 있을 때 상기 예측 명령에 대응하는 어드레스를 상기 프로그램 카운터 레지스터에 저장하는 것을 계속하는 단계와;예외의 발생시 상기 카운터 값을 저장하고, 상기 예외의 완료시 상기 카운터 값에 의해 지목된 프로그램 명령에서 시작하는 실행을 재개하는 단계를 더 포함하는 것을 특징으로 하는 데이터 처리 방법.
- 제18항에 있어서,상기 예측 명령은 복수의 관련 프로그램 명령을 제어하는 것을 특징으로 하 는 데이터 처리 방법.
- 제18항에 있어서,상기 하나 이상의 관련 프로그램 명령은 비-조건부 프로그램 명령인 것을 특징으로 하는 데이터 처리 방법.
- 제18항 내지 제20항 중 어느 한 항에 있어서,상기 하나 이상의 조건 상태는 하나 이상의 조건 코드 플래그의 값을 포함하는 것을 특징으로 하는 데이터 처리 방법.
- 제18항 내지 제20항 중 어느 한 항에 있어서,상기 하나 이상의 조건 상태는,(i) 상기 예측 명령의 한번 실행시 및(ii) 각 관련 프로그램 명령의 실행 이전중 한 시점에서 평가되는 것을 특징으로 하는 데이터 처리 방법.
- 제18항 내지 제20항 중 어느 한 항에 있어서,상기 하나 이상의 관련 프로그램 명령은 상기 예측 명령의 직후에 수반되는 것을 특징으로 하는 데이터 처리 방법.
- 제18항 내지 제20항 중 어느 한 항에 있어서,상기 예측 명령은,(i) 상기 하나 이상의 조건 상태가 하나 이상의 소정 조건에 일치하는 경우 실행되는 하나 이상의 프로그램 명령의 조건 일치 블록에,(ii) 상기 하나 이상의 조건 상태가 상기 하나 이상의 소정 조건에 일치하지 않는 경우 실행되는 하나 이상의 프로그램 명령의 조건 불일치 블록에 대응되는 것을 특징으로 하는 데이터 처리 방법.
- 제24항에 있어서,상기 예측 명령은,(i) 하나 이상의 프로그램 명령의 상기 조건 일치 블록의 길이와;(ii) 하나 이상의 프로그램 명령의 상기 조건 불일치 블록의 길이중 하나 이상을 특정하는 것을 특징으로 하는 데이터 처리 방법.
- 제24항에 있어서,상기 예측 명령은 상기 하나 이상의 소정 조건을 특정하는 것을 특징으로 하는 데이터 처리 방법.
- 제18항 내지 제20항 중 어느 한 항에 있어서,상기 예측 명령은 상기 하나 이상의 조건 상태를 하나 이상의 소정 상태와 비교하는 것에 따라 각 관련 프로그램 명령이 실행 또는 비실행되는지를 각각 특정하는 하나 이상의 필드를 포함하는 것을 특징으로 하는 데이터 처리 방법.
- 제27항에 있어서,상기 예측 명령은, 각각의 관련 프로그램 명령의 실행 여부를 결정하기 위해, 상기 하나 이상의 조건 상태 또는 상기 하나 이상의 조건 상태의 보수가 상기 하나 이상의 소정 상태와 비교되는지 여부를 각각의 관련 프로그램 명령에 대해 특정하는 필드를 포함하는 것을 특징으로 하는 데이터 처리 방법.
- 삭제
- 삭제
- 삭제
- 삭제
- 제18항 내지 제20항 중 어느 한 항에 있어서,상기 하나 이상의 관련 프로그램 명령은 상기 예측 명령에 따르는 경우 다른 데이터 처리 동작을 특정하는 것을 특징으로 하는 데이터 처리 방법.
- 제33항에 있어서,상기 예측 명령 내의 프로그램 가능한 필드에 의존하여, 상기 하나 이상의 관련 프로그램 명령이 상기 하나 이상의 조건 상태로 임의 변경되지 않도록 저지하는 것을 특징으로 하는 데이터 처리 방법.
- 청구항 18 내지 20 중 어느 한 항에 기재된 방법에 따라 데이터 처리 장치를 제어하도록 동작가능한 컴퓨터 프로그램을 저장한 컴퓨터 판독가능한 저장매체.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0312977.2 | 2003-06-05 | ||
GB0312977A GB2402510A (en) | 2003-06-05 | 2003-06-05 | Predication instruction within a data processing system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060063790A KR20060063790A (ko) | 2006-06-12 |
KR101016713B1 true KR101016713B1 (ko) | 2011-02-25 |
Family
ID=9959411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020057023079A KR101016713B1 (ko) | 2003-06-05 | 2003-12-30 | 데이터 처리 시스템 내의 예측 명령 |
Country Status (12)
Country | Link |
---|---|
US (1) | US7178011B2 (ko) |
EP (1) | EP1629375B1 (ko) |
JP (1) | JP3917635B2 (ko) |
KR (1) | KR101016713B1 (ko) |
CN (1) | CN100483336C (ko) |
AU (1) | AU2003290350A1 (ko) |
DE (1) | DE60323885D1 (ko) |
GB (1) | GB2402510A (ko) |
MY (1) | MY138874A (ko) |
RU (1) | RU2005137695A (ko) |
TW (1) | TWI314701B (ko) |
WO (1) | WO2004109499A2 (ko) |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7210024B2 (en) * | 2005-02-10 | 2007-04-24 | Qualcomm Incorporated | Conditional instruction execution via emissary instruction for condition evaluation |
US7234043B2 (en) * | 2005-03-07 | 2007-06-19 | Arm Limited | Decoding predication instructions within a superscaler data processing system |
DE102005050382B4 (de) * | 2005-10-20 | 2012-08-09 | Infineon Technologies Ag | Prozessor zum Prüfen einer Bedingung für eine bedingte Ausführung eines Programmbefehls |
JP4159586B2 (ja) * | 2006-08-03 | 2008-10-01 | エヌイーシーコンピュータテクノ株式会社 | 情報処理装置および情報処理の高速化方法 |
US7971104B2 (en) * | 2006-10-24 | 2011-06-28 | Shlomi Dolev | Apparatus and methods for stabilization of processors, operating systems and other hardware and/or software configurations |
US9946550B2 (en) * | 2007-09-17 | 2018-04-17 | International Business Machines Corporation | Techniques for predicated execution in an out-of-order processor |
US7818551B2 (en) * | 2007-12-31 | 2010-10-19 | Microsoft Corporation | Feedback mechanism for dynamic predication of indirect jumps |
US8332620B2 (en) * | 2008-07-25 | 2012-12-11 | Freescale Semiconductor, Inc. | System, method and computer program product for executing a high level programming language conditional statement |
CN101324838A (zh) * | 2008-07-31 | 2008-12-17 | 华为技术有限公司 | 一种指令执行方法和装置 |
US8819399B1 (en) * | 2009-07-31 | 2014-08-26 | Google Inc. | Predicated control flow and store instructions for native code module security |
US10175990B2 (en) * | 2009-12-22 | 2019-01-08 | Intel Corporation | Gathering and scattering multiple data elements |
US9378019B2 (en) | 2011-04-07 | 2016-06-28 | Via Technologies, Inc. | Conditional load instructions in an out-of-order execution microprocessor |
US9317288B2 (en) | 2011-04-07 | 2016-04-19 | Via Technologies, Inc. | Multi-core microprocessor that performs x86 ISA and ARM ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline |
US9043580B2 (en) | 2011-04-07 | 2015-05-26 | Via Technologies, Inc. | Accessing model specific registers (MSR) with different sets of distinct microinstructions for instructions of different instruction set architecture (ISA) |
US8880851B2 (en) | 2011-04-07 | 2014-11-04 | Via Technologies, Inc. | Microprocessor that performs X86 ISA and arm ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline |
US9032189B2 (en) | 2011-04-07 | 2015-05-12 | Via Technologies, Inc. | Efficient conditional ALU instruction in read-port limited register file microprocessor |
US8924695B2 (en) | 2011-04-07 | 2014-12-30 | Via Technologies, Inc. | Conditional ALU instruction condition satisfaction propagation between microinstructions in read-port limited register file microprocessor |
US9141389B2 (en) | 2011-04-07 | 2015-09-22 | Via Technologies, Inc. | Heterogeneous ISA microprocessor with shared hardware ISA registers |
US9146742B2 (en) | 2011-04-07 | 2015-09-29 | Via Technologies, Inc. | Heterogeneous ISA microprocessor that preserves non-ISA-specific configuration state when reset to different ISA |
US9292470B2 (en) | 2011-04-07 | 2016-03-22 | Via Technologies, Inc. | Microprocessor that enables ARM ISA program to access 64-bit general purpose registers written by x86 ISA program |
US9274795B2 (en) | 2011-04-07 | 2016-03-01 | Via Technologies, Inc. | Conditional non-branch instruction prediction |
US9645822B2 (en) | 2011-04-07 | 2017-05-09 | Via Technologies, Inc | Conditional store instructions in an out-of-order execution microprocessor |
US9898291B2 (en) | 2011-04-07 | 2018-02-20 | Via Technologies, Inc. | Microprocessor with arm and X86 instruction length decoders |
US9336180B2 (en) | 2011-04-07 | 2016-05-10 | Via Technologies, Inc. | Microprocessor that makes 64-bit general purpose registers available in MSR address space while operating in non-64-bit mode |
US9176733B2 (en) | 2011-04-07 | 2015-11-03 | Via Technologies, Inc. | Load multiple and store multiple instructions in a microprocessor that emulates banked registers |
US9244686B2 (en) | 2011-04-07 | 2016-01-26 | Via Technologies, Inc. | Microprocessor that translates conditional load/store instructions into variable number of microinstructions |
US8880857B2 (en) | 2011-04-07 | 2014-11-04 | Via Technologies, Inc. | Conditional ALU instruction pre-shift-generated carry flag propagation between microinstructions in read-port limited register file microprocessor |
US9128701B2 (en) | 2011-04-07 | 2015-09-08 | Via Technologies, Inc. | Generating constant for microinstructions from modified immediate field during instruction translation |
US10261793B2 (en) | 2011-12-16 | 2019-04-16 | International Business Machines Corporation | Instruction predication using instruction address pattern matching |
US9465613B2 (en) * | 2011-12-19 | 2016-10-11 | International Business Machines Corporation | Instruction predication using unused datapath facilities |
US9632779B2 (en) | 2011-12-19 | 2017-04-25 | International Business Machines Corporation | Instruction predication using instruction filtering |
US9632786B2 (en) * | 2011-12-20 | 2017-04-25 | International Business Machines Corporation | Instruction set architecture with extended register addressing using one or more primary opcode bits |
US9928067B2 (en) | 2012-09-21 | 2018-03-27 | Intel Corporation | Methods and systems for performing a binary translation |
US9389868B2 (en) * | 2012-11-01 | 2016-07-12 | International Business Machines Corporation | Confidence-driven selective predication of processor instructions |
US9304771B2 (en) | 2013-02-13 | 2016-04-05 | International Business Machines Corporation | Indirect instruction predication |
US9626185B2 (en) | 2013-02-22 | 2017-04-18 | Apple Inc. | IT instruction pre-decode |
US9792121B2 (en) * | 2013-05-21 | 2017-10-17 | Via Technologies, Inc. | Microprocessor that fuses if-then instructions |
FR3021432B1 (fr) * | 2014-05-20 | 2017-11-10 | Bull Sas | Processeur a instructions conditionnelles |
US20170212763A1 (en) * | 2014-07-25 | 2017-07-27 | Hewlettt Packard Enterprise Development Lp | Exception handling predicate register |
US10607003B2 (en) * | 2017-06-29 | 2020-03-31 | International Business Machines Corporation | Mitigation of code reuse attacks by restricted indirect branch instruction |
US11275712B2 (en) | 2019-08-20 | 2022-03-15 | Northrop Grumman Systems Corporation | SIMD controller and SIMD predication scheme |
CN113254082B (zh) * | 2021-06-23 | 2021-10-08 | 北京智芯微电子科技有限公司 | 条件分支指令处理方法及系统、cpu、芯片 |
CN113254083B (zh) * | 2021-06-28 | 2021-11-02 | 北京智芯微电子科技有限公司 | 指令处理方法、指令处理系统及处理器、芯片 |
KR102571809B1 (ko) * | 2021-08-03 | 2023-08-25 | 연세대학교 산학협력단 | 전자기 과도 상태 시뮬레이션 방법 및 기록 매체 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6233676B1 (en) * | 1999-03-18 | 2001-05-15 | Ip-First, L.L.C. | Apparatus and method for fast forward branch |
JP2002024008A (ja) | 2000-07-04 | 2002-01-25 | Matsushita Electric Ind Co Ltd | データ処理装置およびプログラム変換装置 |
US6353883B1 (en) * | 1998-08-04 | 2002-03-05 | Intel Corporation | Method and apparatus for performing predicate prediction |
US6910123B1 (en) * | 2000-01-13 | 2005-06-21 | Texas Instruments Incorporated | Processor with conditional instruction execution based upon state of corresponding annul bit of annul code |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62259140A (ja) | 1986-05-06 | 1987-11-11 | Oki Electric Ind Co Ltd | アドレス生成回路 |
DE4430195B4 (de) * | 1993-12-13 | 2004-09-23 | Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto | Verfahren zur Auswertung von Booleschen Ausdrücken |
US5659722A (en) * | 1994-04-28 | 1997-08-19 | International Business Machines Corporation | Multiple condition code branching system in a multi-processor environment |
JP3442225B2 (ja) | 1996-07-11 | 2003-09-02 | 株式会社日立製作所 | 演算処理装置 |
US6009512A (en) * | 1997-10-27 | 1999-12-28 | Advanced Micro Devices, Inc. | Mechanism for forwarding operands based on predicated instructions |
US6157996A (en) * | 1997-11-13 | 2000-12-05 | Advanced Micro Devices, Inc. | Processor programably configurable to execute enhanced variable byte length instructions including predicated execution, three operand addressing, and increased register space |
US6640315B1 (en) * | 1999-06-26 | 2003-10-28 | Board Of Trustees Of The University Of Illinois | Method and apparatus for enhancing instruction level parallelism |
US6886094B1 (en) * | 2000-09-28 | 2005-04-26 | International Business Machines Corporation | Apparatus and method for detecting and handling exceptions |
US6662294B1 (en) * | 2000-09-28 | 2003-12-09 | International Business Machines Corporation | Converting short branches to predicated instructions |
US7017032B2 (en) * | 2001-06-11 | 2006-03-21 | Broadcom Corporation | Setting execution conditions |
-
2003
- 2003-06-05 GB GB0312977A patent/GB2402510A/en not_active Withdrawn
- 2003-12-30 CN CNB2003801103310A patent/CN100483336C/zh not_active Expired - Lifetime
- 2003-12-30 WO PCT/GB2003/005674 patent/WO2004109499A2/en active IP Right Grant
- 2003-12-30 EP EP03782711A patent/EP1629375B1/en not_active Expired - Lifetime
- 2003-12-30 KR KR1020057023079A patent/KR101016713B1/ko active IP Right Grant
- 2003-12-30 AU AU2003290350A patent/AU2003290350A1/en not_active Abandoned
- 2003-12-30 RU RU2005137695/09A patent/RU2005137695A/ru not_active Application Discontinuation
- 2003-12-30 DE DE60323885T patent/DE60323885D1/de not_active Expired - Lifetime
- 2003-12-30 JP JP2005500494A patent/JP3917635B2/ja not_active Expired - Lifetime
-
2004
- 2004-01-29 US US10/765,867 patent/US7178011B2/en active Active
- 2004-02-09 TW TW093102967A patent/TWI314701B/zh not_active IP Right Cessation
- 2004-02-10 MY MYPI20040391A patent/MY138874A/en unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6353883B1 (en) * | 1998-08-04 | 2002-03-05 | Intel Corporation | Method and apparatus for performing predicate prediction |
US6233676B1 (en) * | 1999-03-18 | 2001-05-15 | Ip-First, L.L.C. | Apparatus and method for fast forward branch |
US6910123B1 (en) * | 2000-01-13 | 2005-06-21 | Texas Instruments Incorporated | Processor with conditional instruction execution based upon state of corresponding annul bit of annul code |
JP2002024008A (ja) | 2000-07-04 | 2002-01-25 | Matsushita Electric Ind Co Ltd | データ処理装置およびプログラム変換装置 |
Also Published As
Publication number | Publication date |
---|---|
RU2005137695A (ru) | 2006-06-27 |
TW200428276A (en) | 2004-12-16 |
CN1788253A (zh) | 2006-06-14 |
EP1629375A2 (en) | 2006-03-01 |
DE60323885D1 (de) | 2008-11-13 |
KR20060063790A (ko) | 2006-06-12 |
MY138874A (en) | 2009-08-28 |
WO2004109499A2 (en) | 2004-12-16 |
GB2402510A (en) | 2004-12-08 |
CN100483336C (zh) | 2009-04-29 |
WO2004109499A3 (en) | 2005-10-13 |
AU2003290350A8 (en) | 2005-01-04 |
GB0312977D0 (en) | 2003-07-09 |
JP3917635B2 (ja) | 2007-05-23 |
AU2003290350A1 (en) | 2005-01-04 |
US7178011B2 (en) | 2007-02-13 |
US20040250051A1 (en) | 2004-12-09 |
TWI314701B (en) | 2009-09-11 |
EP1629375B1 (en) | 2008-10-01 |
JP2006526813A (ja) | 2006-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101016713B1 (ko) | 데이터 처리 시스템 내의 예측 명령 | |
US5692169A (en) | Method and system for deferring exceptions generated during speculative execution | |
US5778219A (en) | Method and system for propagating exception status in data registers and for detecting exceptions from speculative operations with non-speculative operations | |
US10747536B2 (en) | Program loop control | |
US5805918A (en) | Dual-instruction-set CPU having shared register for storing data before switching to the alternate instruction set | |
US6076155A (en) | Shared register architecture for a dual-instruction-set CPU to facilitate data exchange between the instruction sets | |
US6301705B1 (en) | System and method for deferring exceptions generated during speculative execution | |
JP7002462B2 (ja) | ベクトル述語命令 | |
CN108780397B (zh) | 程序循环控制 | |
EP3433723B1 (en) | Branch instruction | |
KR20180066146A (ko) | 벡터 데이터 전송 명령어 | |
GB2489914A (en) | Data processor for performing vector operations in response to scalar instructions following a decode modifier instruction | |
KR102307581B1 (ko) | 레지스터 복구 분기 명령 | |
JPH0769795B2 (ja) | コンピュータ | |
CN111771188B (zh) | 数据处理装置及数据处理方法 | |
JP2019510313A (ja) | ベクトル命令の処理 | |
KR20010050812A (ko) | 컴퓨터 시스템 명령들의 소스 연산수들을 선택하고사용하기 위한 방법 및 시스템 | |
JP2021515929A (ja) | データ処理 | |
US20090119492A1 (en) | Data Processing Apparatus and Method for Handling Procedure Call Instructions | |
JP2000347858A (ja) | マイクロプロセッサ | |
JPH01319864A (ja) | ベクトルマスクの制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20140121 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20150119 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20160119 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20170119 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20180118 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20190116 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20200115 Year of fee payment: 10 |