KR950003200B1 - 정확한 부동 소숫점 예외를 처리할 수 있는 방법 및 장치 - Google Patents
정확한 부동 소숫점 예외를 처리할 수 있는 방법 및 장치 Download PDFInfo
- Publication number
- KR950003200B1 KR950003200B1 KR1019890002537A KR890002537A KR950003200B1 KR 950003200 B1 KR950003200 B1 KR 950003200B1 KR 1019890002537 A KR1019890002537 A KR 1019890002537A KR 890002537 A KR890002537 A KR 890002537A KR 950003200 B1 KR950003200 B1 KR 950003200B1
- Authority
- KR
- South Korea
- Prior art keywords
- floating point
- exception
- calculation
- processor unit
- signal
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 14
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 229920000747 poly(lactic acid) Polymers 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- 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/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- 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, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- 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, look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/386—Special constructional features
- G06F2207/3884—Pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49905—Exception handling
- G06F7/4991—Overflow or underflow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance control
Abstract
내용 없음.
Description
제1도는 본 발명에 따른 방법 및 장치를 수용할 수 있도록 구성된 부동 소숫점 계산이 가능한 데이타 처리 시스템의 개략도.
제2a도 내지 제2d도는 승산, 제산, 가산/감산 및 단항 부동 소숫점 연산에 대한 가능한 예외 발생 상황을 나타내는 도면.
제3도는 예외-예측 회로를 형성하는데 사용된 장치의 개략도.
* 도면의 주요부분에 대한 부호의 설명
10 : 데이타 처리 시스템 12 : 중앙 처리 장치(CPU)
14 : 부동 소숫점 처리 장치(FPU) 18 : 메모리 시스템
20 : 데이타 버스 22 : 어드레스 버스
24 : 프로그램 카운터(PC) 26 : 예외 프로그램 카운터(EPC)
30 : 파라미터 레지스터 파일 34 : 명령 디코드 유닛
36 : 오퍼랜드 레지스터 38 : 예외 예측 유닛
42 : 부동 소숫점 실행 유닛
본 발명은 몇가지 유형의 병렬 또는 파이프 라인식 구조를 가지며 부동 소숫점 계산이 가능한 데이타 처리 장치에 관한 것으로, 특히, 이러한 파이프 라인식 구조에서 정확한 부동 소숫점 예외를 처리할 수 있는 방법 및 장치에 관한 것이다.
최근에 특히 과학 기술 및 엔지니어링 분야에서 사용되는 계산 장치는 "부동 소숫점 (floating point)"수 들의 계산을 빈번하게 실시한다. 부동 소숫점수의 한가지 장점은 예컨대 큰 어려움 없이 고정 소숫점수를 사용하여 처리하는 경우보다 훨씬 큰수의 범위의 계산을 처리할 수 있다는 것이다. 숫자의 부동 소숫점 표기법은 "과학적 표기법"이라고 가끔 불리우는 표기법과 거의 일치하는데, 각 부동 소숫점 표기는 기점(radix point)을 가진 정상수와 이 기수(radix)의 정수 제곱과의 적(product)으로서 표시된다. 예컨대, 부동 소숫점 수는 하기와 같이 표시될 것이다.
6318×102.
여기에서, 6318은 "소수"부이고, 2는 "지수"부이다.
디지탈 표기법에 있어서는 하기와 같다.
ψ0ψ0.11ψψψ1ψ1ψ111ψ
여기서, 최상위 비트는 부호이고, 다음 3비트들은 지수부를 형성하며, 나머지 비트들은 소수부를 형성한다.
부동 소숫점수 및 부동 소숫점 계산은 고정 소숫점수 및 고정 소숫점 계산에 비해 상당한 장점을 제공하는 반면에, 일부 문제점도 갖고 있다. 그러한 문제점중 한가지는 부동 소숫점 계산 결과의 크기가 부동 소숫점수 체제의 능력을 초과할 때, 즉 "오버플로우"될 때 발생할 수 있다. 부동 소숫점 "예외(exception)"로서 언급되는 이러한 문제점은 예외가 검출되면, 특수 처리를 요구한다(예컨대, 프로그래머가 적절한 에러 메세지를 사용하여 계산을 중지시키도록 검사할 수 있는 표식을 세팅하는 처리 등).
또 다른 예외로는 (값의 크기상으로) 너무 작아서 수용될 수 없는 비-제로(non-zero)결과를 생성하려는 시도에 기인한 "언더플로우" 또는 그 결과의 사이즈 때문에 사사오입을 수행하여 비정확도가 야기되는 "비정확"예외를 포함한다.
오늘날에는 부동 소숫점 예외를 처리할 수 있는 여러 방법 및 기술이 알려져 있다. 그러나, 부동 소숫점 계산이 파이프 라인식 구조에서 발견되는 것과 같은 특정 유형의 병렬 처리가 가능한 데이타 처리 시스템에 사용될 때 특수한 문제가 발생한다. 파이프 라인식 구조에서는 통상적으로 다수의 명령들이 여러 실행 단계에서 동시에 존재하는 프로세서를 설계를 포함한다. 부동 소숫점 명령이 부동 소숫점 예외로 완결되었을 때, 필요한 특정 처리는 예외가 다시 발생되는 것을 피하기 위해 오퍼랜드가 조정된 후에만 부동 소숫점 명령이 재실행되도록 하는 것이다. 그러나, 부동 소숫점 명령을 재실행하기 위해, 데이타 처리 장치 "백업"되어야 하는데, 다시 말해서 실행 완료된 또는 부분적으로 실행된 어떤 명령의 결과들은 부동 수숫점 명령이 실행되는 동안은 물론 그 이후까지 세이브되어 있어야 하며, 그렇지 않으면 그 결과는 소실되어 버린다. 그 다음에 데이타 처리 장치의 "상태"는 상기 명령에 의해 본래 실행되던 상태로 복귀되어야 한다.
이 문제는 다른 명령이 다른 실행 시간을 요구할 때, 즉 어떤 명령이, 등의 작은 수의 프로세서 동작 사이클로 실행될 수 있고, 다른 명령, 특히 부동 소수점 명령들이 완료시까지 더 많은 프로세서 동작 사이클을 요구할 때에 심화된다. 이 경우, 예외가 되는 부동 소숫점 계산은 "백 아웃"하기가 훨씬 어렵다. 즉, 부동 소숫점 예외를 피할 수 있도록 데이타 처리 장치의 상태를 명령에 의해 본래 실행되던 상태로 복원시키는 것이 훨씬 어렵다.
이 문제에 대한 해결책은 부동 소숫점 계산이 처음 실행될 때 어떤 후속 명령의 처리를 중지시키고 상기 부동 소숫점 계산만을 진행시키는 것이다. 이어서, 예외의 발생 여부를 판정하기 위해 그 결과를 검사할 수 있다. 예외가 발생하지 않으면, 정사 처리가 다시 진행되고, 만약 예외가 발생했다면 상기 계산은 상기 파이프 라인을 "플러쉬"하는 일 없이(즉, 부동 소숫점 명령에 후속되는 명령이 관련되는 한 파이프 라인의 결과를 버리거나 기억하는 일 없이) 재실행될 수 있다. 그러나, 이것은 데이타 처리 시스템의 성능에 크게 영향을 미칠 수 있다.
이러한 문제를 완화하기 위해, 본 발명은 부동 소숫점 예외 발생 여부를 조기에 예측하는 방법 및 장치를 제공한다. 만약, 이 예측이 예외 발생을 표시하면, 다른 모든 처리는 일시적으로 중지되고 부동 소숫점 계산이 진행된다. 만약 상기 계산이 예외에서 완료되면, 오퍼랜드가 조정되고 상기 계산은 다시 개시된다. 제2계산은 모든 처리가 동시에 가능하도록 예외가 발생하지 않을 것이라는 선견에 따라 실행된다. 한편, 상기 예측이 예외가 발생되지 않았음을 표시하면, 상기 처리는 정상적으로 계속된다.
본 발명의 방법에 따르면, 부동 소숫점 명령이 발생했을 때 계산에 포함될 오퍼랜드의 지수부는 연산을 위해 기설정된 기준과 비교된다. 비교 결과, 부동 소숫점 예외의 발생 여부에 대한 예측이 나올수 있다. 만약 이 예측이 부동 소숫점 예외 발생을 의미하면 다른 모든 처리(부동 소숫점 계산을 제외한 모든 처리)는 중지되고, 부동 소숫점 계산이 그 완료시 까지 진행되게 한다. 예외가 실제로 발생했으면, 명령은 재실행될 수 있는데(프로그램을 만든 사람의 옵션으로서, 그리고 연산의 종류에 따라), 그러나 이 때는 예외 발생을 피하기 위하여 상기 오퍼랜드가 변경될 것이라는 선견을 갖고 실행한다. 따라서, 부동 소숫점 계산은 예외-처리 루틴에 의해 재실행될 수 있으며, 부동 소숫점 계산은 지금 변경된 오퍼랜드를 사용하여 재실행될 수 있다. 이 부동 소숫점 명령에 대한 제2실행은 파이프 라인의 병렬 처리 환경에서 수행되는데, 그 이유는 조정된 오퍼랜드를 사용하여 예외가 발생할 기회가 더이상 존재하지 않기 때문이다.
본 발명의 양호한 일실시예에 있어서, 부동 소숫점 승산(또는 계산)에 사용될 오퍼랜드의 지수부는 서로 가산되고(혹은 감산되고), 그 결과는 연산의 표식(예, 승산 또는 제산)과 함께 프로그램머블 로직 어레이(PLA)에 공급된다. 이 오퍼랜드의 지수부의 결합에 의해 생성된 결과 값이 상기 부동 소숫점 계산이 부동 소숫점 예외라는 것을 표시하면, 상기 프로그램머블 로직 어레이는 부동 소숫점 예외 신호를 생성하도록 프로그램된다. 부동 소숫점 예외 신호는 다른 모든 병렬 처리 기능을 일시에 중지시키며, 완료될 때까지 부동 소숫점 계산을 진행한다. 그러나, 이 예측이 예외가 발생하지 않았음을 의미하면, 병렬 처리 연산은 부동 소숫점 예외 발생과 관계없이 계속될 수 있다. 부동 소숫점 가산 및 감산에 대한 예측은 유사하며, 예외가 발생할 것이라는 관심을 증명하기 위해 하나의 지수부의 값이 다른 지수부의 값보다 훨씬 큰지 여부를 판단할 수 있도록 지수부값을 단지 서로 비교하는 점만이 다르다.
예외에 대한 예측이 이루어졌고, 계산이 결국 예외를 발생하게 되면, 인터럽트 신호가 생성되어 상기 예외 발생에 대한 표식이 시스템을 구동하는 프로그램에 제공된다. 이 예외는 처리되어지고 부동 소숫점 계산이 재실행된다.
이하 첨부 도면을 참조하여 본 발명의 실시예를 설명한다.
본 발명은 예컨대 제1도에 도시된 데이타 처리 시스템 구조(10)에서 실행된다. 이 데이타 처리 시스템은 중앙 처리 장치(CPU)(12) 및 부동 소숫점 처리 장치(FPU)(14)를 구비한다. CPU(12) 및 FPU(14)는 클럭(CLK) 소스(16)로부터 주기적인 클록 신호를 수신하며, 데이타 버스(20)에 의해 메모리 시스템(18)에 접속된다. 그리고 어드레스 버스(22)에 의해서는 CPU(12)만이 메모리 시스템(18)에 접속된다.
CPU(12)는 명령들이 CPU(12)의 프로그램 카운터(PC)(24)에 의해 형성된 어드레스를 통해 메모리 시스템(18)으로부터 순차적으로 액세스되는 시스템 연산을 제어한다. 앞으로 설명하겠지만, 어드레스는 종래 기술에 의해 어드레스 버스(22)로 다중화되는 예외 프로그램 카운터(EPC)(26)에 의해 메모리 시스템(18)에 공급될 수도 있다. 각각의 액세스된 명령은 FPU(14)에 의해 검사되지만, 부동 소숫점 계산 명령은 FPU(14)에 의해 동작되며, 모든 다른 명령들은 CPU(12)에 의해 실행된다. 이러한 특수 구조 디자인에 대한 근거는 이하에서 상세히 기술될 것이다.
제1도에 명확히 도시되지는 않았지만 데이타 처리 시스템(10)의 구조 특히 CPU(12)의 구조는 본 기술분야에서 파이프 라인식 구조로서 일반식으로 알려진 구조이다. 이것은 명령들이 열러 실행 상태에서 동시에 존재할 수 있도록 일련의 명령들이 메모리 시스템(18)에서 액세스되는 것을 가능하게 한다. 각 명령이 실행 상태에 있는 동안, 이 명령에 대한 메모리 어드레스는 CPU(12)의 프로그램 카운터(PC)큐(28)에 일시적으로 저장된다. 실행도중 여러 파라미터가 파라미터 레지스터 파일(30)내에 유지된다.
제1도에 도시된 바와같이 FPU(14)는 데이타 버스(20)에 접속되어, 명령 디코드 유닛(34)과 오퍼랜드 레지스터(36)에서 가각 명령 및 어퍼랜드들을 수신한다. 이 오퍼랜드들의 지수부는 신호 라인(40)에 의해 오퍼랜드 레지스터에서 예외 예측 유닛(38)으로 전달된다. 전체 오퍼랜드(지수부와 소수부)는 부동 소숫점 실행 유닛(42)에 접속된다. 예외 예측 유닛(38)은 그 이름이 의미하듯이 최종 부동 소숫점 계산이 예외가 될 것인지의 여부를 결정하도록 동작한다. 만약, 예외라면, CP Busy 신호가 발생되어 CPU(12)에 송출한다. 부동 소숫점 실행 유닛(42)은 실제 계산을 실시하고, 이 계산이 예외를 발생하면 INTERRUPT 신호를 발생하여 CPU(12)에 공급한다. 실행된 특정 계산의 표시는 연산 코드(OP) 신호의 형태로 예외 예측 유닛(38)과 부동 소숫점 실행 유닛(42)에 전달된다. 전자의 경우에 있어서, OP 신호들은 오퍼랜드 지수부가 예외를 예측하기 위해 검사되어지는 기준을 선택하도록 동작하고, 후자의 경우에 있어서 OP 신호들은 계산을 제어한다.
본 실시예에 따른 데이타 처리 시스템(10)의 파이프 라인은 5개의 명령, 즉 여러 실행 단계에서 동시에 존재할 수 있는 5개의 명령으로 이루어져 있다. 5개의 한정할 수 있는 실행 단계는 다음과 같다.
1. 명령 페치( I ) 단계,이 단계에서는 명령이 디코딩을 위해서 PC(24)에 내장된 어드레스를 이용하여 메모리 시스템(18)으로부터 액세스됨.
2. 디코드 및 레지스터 액세스(R) 단계, 이 단계에서는 상기 명령에 대한 초기 디코딩이 발생하고 이 명령에 의해 지시된 대로 오퍼랜드를 포함한 레지스터가 액세스됨.
3. 산술 실행(A) 단계, 이 단계에서는 어떤 부동 소숫점 계산과 같은 각종의 산술 연산을 개시함.
4. 메모리 연산(M) 단계, 및
5. 기록(W) 단계, 이 단계에서는 연산의 결과가 데이타 처리 시스템(10)(즉, CPU(12) 또는 FPU(14))의 레지스터(도시 생략) 또는 메모리 시스템(18)에 기록됨.
메모리 시스템(18)에서 순차적으로 액세스되는 명령은 연산중의 어느 순간에서 전술한 단계(I,R,A,M 및/또는 W)중 한 단계에 존재할 수 있다.
잘 알려진 바와 같이, 각종 명령들은 그 실행 시간이 다르다. 예컨대, 고정 소숫점 정수 명령은 실행하는데 1 사이클이 걸리고, 적재 및 기억 연산은 2사이클이 걸리며, 부동 소숫점 연산(계산)은 19사이클이나 걸린다.
궁극적으로 예외를 야기시키는 부동 소숫점 계산을 고려하자, 이 명령은 메모리 시스템(18)에서 액세스되고, CPU(12) 및 FPU(14)에 의해 검사된다. 그러나, 이 명령은 FPU(14)에 의해서만 실행되고, 따라서 오퍼랜드가 수집되어 실제 계산이 시작 가능으로 되도록 세트되는 I단계, R단계 및 A단계를 거친다. A단계의 완료는 운전중에 부동 소숫점 실행 유닛(42)을 세트시키고, 그 결과 연산(예컨대, 가산/감산 또는 승산/제산)에 따라 1 내지 19사이클이 준비된다. 따라서 상기 명령에 의해 호출된 특정 계산(예컨대, 가산, 감산, 승산 또는 제산)에 따라, 계산 결과가 유효해지기 전에 일정 시간이 경과하게 된다. 그러나 계산이 발생하는 동안 CPU(12)는 다른 명령을 액세스하고, 이 명령이 "파이프 라인"에 배치되어 부동 소숫점 명령이 M실행 단계에 이르렀을 때 그 다음의 연속 명령들은 적어도 이들의 I,R 및 A실행 단계에서 완료된다. 부동 소숫점 계산이 얼마나 걸리는지에 따라 M단계를 완료할 수도 있다.
부동 소숫점 명령 결과가 예외를 발생한 것이 검출된 경우, 명령은 반드시 조정되고 재실행되어야 한다. 그러나, 상기 부동 소숫점 명령 다음에 오는 명령은 무엇인가? 이 파이프 라인 구조에 있어서 시스템(10)은, 예외가 처리되고(예컨대, 예외를 피하기 위해 오퍼랜드가 조정된다). 부동 소숫점 명령이 변경된 오퍼랜드를 사용하여 재실행되는 동안, 다음 명령의 결과를 일시적으로 기억하거나 또는 전부 버려야만 한다. 물론 문제는 이러한 기술들이 시스템에 적재되는 실질적인 시간을 필요로하거나 또는 이 시스템에 부가될 추가의 복잡한 회로를 필요로한다는 것이다.
본 발명은 예외의 존재 가능성 여부를 미리 에측하는 것이다. 따라서, 계산이 실제 시작되지 전에 산술 실행 상태(A)의 완료시에, 예측은 예외가 실제로 발생할 것인지의 여부를 결정하기 위해 이루어진다.
본 발명에 있어서, 부동 소숫점 연산은 단일 정밀도(단일 정밀도 오퍼랜드를 사용) 또는 이중 정밀도(이중 정밀도 오퍼랜드를 사용)일 수 있다. 단일 정밀도 오퍼랜드는 32비트 길이를 가지며, 최상의 비트(MSB)는 부호를 형성하고, 그 다음 8MSB 들은 지수부를 형성하며, 나머지 23 비트는 오퍼랜드의 소수브를 형성한다. 이중 정밀도 오퍼랜드에서는 MSB는 부호를 형성하고, 그 다음 11MSB 들은 지수부를 형성하며, 나머지 52 비트들은 소수부를 형성하여, 총 비트 길이는 64비트이다.
그러나, 본 발명은 오퍼팬드의 크기에 좌우될 필요가 없다. 따라서 간단히 하기 위해 오퍼팬드는 단지 3비트의 지수부를 가진 것으로 가정한다. 제2a도 내지 제2d도를 참조하면, 서로 관계되는 오퍼랜드의 지수부의 플로트가 승산, 제산, 가산/감산 또는 단항 계산/연산에 대하여 도시되어 있다. (단항 연산이란 예컨대 보수 증분, 절대값 및 이와 유사한 연산과 같이 하나의 오퍼랜드만이 관련된 연산을 말한다.)
제2a도 내지 제2c도는 부동 소숫점 계산의 2개의 오퍼랜드에 대한 지수부의 카티션 자표 플로트이다. 카티션 좌표에서 x는 상기 프로트의 연산(예컨데 제2a도의 승산 연산)에 대해 부동 소숫점 예외를 야기시키거나 야기시킬 가능성이 있는 지수부 값을 나타낸다. 점선(50a-50c)을 따라 놓여진 지수부값들은 도면의 대응 연산중에 예외가 발생할 가능성이 있는 예측을 나타낸다.
제2a도 내지 제2d도는 각 부동 소숫점 연산(예컨데, 승산, 제산, 가산, 감산 또는 단항 연산)의 각각에 대해 실행될 연산에 의해 선택된 기준, 즉 지수부 조합과 비교될 기준을 나타낸다.
제2a도 및 제2b도에 표시된 기준과 비교되기 전에, 부동 소숫점 승산을 위한 오퍼랜드 지수부는 서로 가산되고, 부동 소숫점 제산을 위한 오퍼랜드 지수부는 서로 감산된다. 따라서 예컨대 "100" 및 "110"의 지수부를 가진 오퍼랜드를 사용하는 부동 소숫점 명령이 실행되어야한다면, 실행될 연산(승산 연산)의 표시와 함께 상기 지수부의 합("1010")은 부동 소숫점 예외가 발생할 것이라는 계산이 예측을 하게 된다.
부동 소숫점 가산 또는 감산의 경우에, 오퍼랜드의 지수부들은 제2c도에 도시된 기준으로 나타낸 바와같이 한쪽이 다른쪽 보다 큰지의 여부를 판정하기 위해 서로 비교된다. 단항 연산이 제2d도에 도시된 예외 발생 가능성 기준에 속하는지의 여부를 알아보기 위해서는 단지 오퍼랜드의 지수부를 조사할 필요가 있다.
예외 예측 유닛(38)은 제3도에 상세히 도시되어 있다. 도시한 바와 같이, 오퍼랜드 지수부(E1,E2)는 프로그램머블 로직 어레이(PLA)(51)에 의해 오퍼랜즈 레지스터(36)에 제1도 참조)에서 수신된다. 또한, PLA(51)는 명령 디코드 유닛(34)으로부터 OP 신호를 수신하고, 제2c도에 도시된 기준에 따라 가산 및 감산 연산에 대한 예욀를 예측하도록 동작한다. PLA(51)의 출력단자(O)는 2입력 OR게이트(54)를 통하여 예외 예측 래치 회로(52)에 결합된다. 예외 예측 래치 회로(52)는 CPU(12)에 결합된 CP Busy 신호를 발생시킨다.
승산 및 제산 연산을 위해서는 오퍼랜드 지수부(E1,E2)기 가산 또는 감산 연산에 대해 전술한 것과 다소 다르게 처리된다. 승산 또는 제산 계산에 사용될 오퍼랜드들은 가산기 회로(60)에 결합되고, 이 가산기 회로(60)에서는 OP 신호가 승산 또는 제산 연산을 지시하는 것에 따라 오퍼랜드를 가산하기도 하고 감산하기도 한다. 이 결과는 PLA(62)에 인가되고 PLA(62)는 명령 디코드 유닛(34)(제1도)으로부터 수신된 OP신호에 의해 설정 또는 선택된 기준(제2a도, 제2b도)과 상기 결과를 비교한다. 상기 PLA(62)의 출력(O)은 OR 게이트(54)의 2입력중 나머지 한 입력에 인가되고, 상기 선택된 기준 및 상기 지수부 조합의 결과가 PLA(62)에 의해 결정된 바와 같이 예외를 지시하면 CP Busy 신호는 활성화된다. 이후의 설명으로부터 곧 알게 되겠지만, CP Busy 신호는 부동 소숫점 계산이 완료될때까지 CPU(12)를 임시적으로 대시 상태로 유지시키도록 동작한다.
동작시에, CPU(12)는 PC(24)(제1도)에 의해 제공되는 어드레스를 사용하여 메모리 시스템(18)에 대한 액세스(명령 및 오퍼랜드를 위해 또는 통상의 데이타 처리 동작에서 일반적인 것처럼 데이타를 기억하기 위해)를 실행한다. 각각의 액세스된 명령는 CPU(12)와 FPU(14)에 전달되지만 FPU(14)만이 부동 소숫점 명령을 식별 및 실행하고, 다른 모든 명령들은 CPU(12)에 의해 실행된다. 각 명령은 전술한 5개의 디코딩 단계(I,R,A,M 및 W)를 거친다. 따라서, 어느 순간에는 시스템(10)의 여러 실행 단계에서 5개의 명령이 존재하게 된다.
데이타 처리 시스템(10)의 동작중에, 부동 소숫점 명령은 메모리 시스템(18)으로부터 액세스된다. 이 명령은 처음에 CPU(12)와 FPU(14)에 의해 검사되지만 전술한 바와 같이, FPU(14)만이 이 명령을 처리하게 된다. 부동 소숫점 명령이 I 단계에서부터 R단계까지 완전히 처리되고 A단계에 도달했을때 데이타 처리 시스템(10)은 R실행 단계에 도달하는 하나의 명령(본 실시예의 부동 소숫점 명령에 바로 뒤따르는 명령)을 가지며, I단계를 위해 또하나의 명령을 액세스한다.
부동 소숫점 명령의 A실행 단계중에, 이 명령이 오퍼랜드의 지수부(E1,E2)는 FPU(14)(제1도)의 예외 예측 유닛(38)에 결합된다. 만약 계산이 승산 또는 제산 명령이면, OP신호들은, 1) 가산기(60)의 가산 또는 감산 기능을 선택하고, 2) 가산기(60)에 의해 생성된 결과가 PLA(62)에서 비교될 기준을 선택하고, 3) PLA(62)의 출력(0)을 인에이블 하는 동시에 PLA(51)의 출력(0)을 금지시키도록 동작한다. 반대로 실행될 계산이 가산 또는 감산 연산이면, PLA(62)의 출력은 디스에이블되고, PLA(62)의 출력은 디스에이블되고, PLA(51)의 출력은 인에이블되어, PLA(51)의 결과가 OR 게이트(54)를 통해 예외 예측 래치 회로(52)에 전달된다.
부동 소숫점 명령의 A실행 단계 끝에서, 예외 예측이 가능하다. 만약 예측이 상기 부동 소숫점 계산이 예외를 생성하지 않음을 의미하는 것이며, CP Busy 신호 라인은 비활성 상태로 남아있고, CPU(12)는 그 동작을 계속하며 부동 솟수점 실행 유닛은 그 계산을 완료하게 된다.
관심 대상이 되는 것은 PLA(51,62)들중 어느하나(물론, 연산에 따라 결정됨)가 예외의 발생을 예측할때이다. 이 예측에 의해 CP Busy 신호가 활성화되고, 이 신호는 예외 예측 래치회로(52)(제3도)로부터 CPU(12)로 전송될때 CPU(12)의 연산을 일시적으로 중지시킨다. 그리고 당분간은 메모리시스템(18)에 대한 액세스가 더이상 이루어지지 않고, 부동 소숫점 명령에 따르는 2개의 명령에 대한 실행는 잠시 중지된채로 유지될 것이며, 이들은 각각 I 및 R 실행 단계에 남아있게 된다. 그러나 부동 소숫점 명령은 완료를 위해 진행하는데, 즉, 부동 소숫점 실행 유닛(42)(제1도)은 부동 소숫점 명령에 의해 호출된 계산(예컨대, 가산, 감산, 승산등)을 계속 수행할 것이다.
만약, 계산이 완료되었을때 부동 소숫점 예외가 예상된대로 발생하면, 부동 소숫점 유닛(42)은 INTERRUPT 신호는 활성화시킨다. INTERRUPT 신호는 FPU(14)로부터 CPU(12)로 전송되고 부동 소숫점 예외가 발생하였다는 사실로서 CPU(14)가 그 일시 중지 상태로부터 벗어나게 한다. 예외처리는 지금까지 소프트웨어에 의해 수행되었는데, 더욱 정확히 말하자면 프로그래머에 의해서 예외처리에 필요한 모든 단계들이 실행되어져 왔다.
INTERRUPT 신호가 CPU(12)에 의해 수신되면, 인터럽트를 야기시키는 부동 소숫점 명령의 어드레스는 PC 큐(28)에서 EPC(26)로 이동되고, 부동 소숫점 명령의 대상이 되는 오퍼랜드의 위치(시스템(10)내에서)를 판정하기 위해 메모리 시스템(18)을 액세스하는데 사용된다. INTERRUPT 신호의 발생 결과로서 진입되는 소프트웨어 루틴은 이제 본 발명의 일부가 된 몇몇 공지된 기술들중 하나를 사용해서 어떠한 변경이 오퍼랜드에 필요한지를 작성하게 된다. 소프트웨어의 최종부는 부동 소숫점 명령에 바로 뒤따르는 명령의 어드레스에 PC(24)의 내용을 세트시켜, 시스템의 제어를 정상적인 연산으로 다시 복귀시킨다. 이제 시스템(10)은 이전과 같이 진행하고, 조절된 오퍼랜드로서 부동 소숫점 명령을 실행하며, 후속 명령들을 액세스하여 이들을 실행용 파이프라인에 배치한다.
Claims (6)
- 지수부와 소수부를 각각 갖는 제1및 제2오퍼랜드에 대한 부동 소숫점 계산을 실행하도록 동작하는 제1프로세서 유닛과, 상기 제1프로세서 유닛에 의해 실행된 부동 소숫점 계산과 병렬로 일반 데이타 처리 업무를 실행하도록 동작하는 제2프로세서 유닛을 구비하는 유형의 데이타 처리 시스템에서 상기 부동 솟수점 계산을 실행하는 방법에 있어서, 상기 제1프로세서 유닛에 의해 실행될 서로 다른 유형의 각 부동 소숫점 계산을 위해 부동 소숫점 예외 발생 기준을 저장하는 단계와; 상기 제1및 제2오퍼랜드의 지수부의 조합과 실행될 부동 소숫점 계산용의 상기 부동 소숫점 예외 발생 기준을 비교하는 단계와; 사용된 부동 소숫점 예외 발생 기준에 따라 상기 비교 단계에서 예외가 발생할 가능성이 있음을 나타낼때 부동 소숫점 예외 예측 신호를 발생시키는 단계와; 부동 소숫점 예외 신호의 존재에 응답해서 상기 제2프로세서 유닛의 연산을 일시적으로 중지시키는 단계와; 부동 소숫점 계산을 실행시키는 단계와; 부동 소숫점 계산이 실제 부동 소숫점 예외를 발생시키지 않을때 상기 제2프로세서 유닛의 연산을 재개시 시키는 단계를 포함하는 것을 특징으로 하는 부동 소숫점 계산 실행 방법.
- 제1항에 있어서, 상기 계산의 종료시 실제 부동 소숫점 예외를 발생할때 인터럽트 신호를 발생시키는 단계와; 상기 예외를 야기시킨 상기 부동 소숫점 오퍼랜드를 부분적으로 조정하므로써 부동 소숫점 예외를 처리하도록 하기 인터럽트에 응답하여 상기 제2프로세서 유닛의 연산을 재개시 시키는 단계와; 조정된 부동 소숫점 오퍼랜드로 상기 부동 소숫점 계산을 제실행하는 단계를 포함하는 것을 특징으로 하는 방법.
- 명령들이 단계적으로 디코드되고 실행되는 파이프라인식 구조를 가지며, 지수부와 소수부를 각각 갖는 최소한 2개의 오퍼랜드를 내제한 부동 소숫점 계산을 실행하도록 부동 소숫점 명령에 응답하여 동작하는 계산 유닛을 포함하는 유형의 데이타 처리 시스템에서 부동 소숫점 명령에 응답하여 동작하는 계산 유닛을 포함하는 유형의 데이타 처리 시스템에서 부동 소숫점 가산, 감산, 승산 및 제산 연산에서 야기된 부동 소숫점 예외를 처리하는 장치에 있어서, 부동 소숫점 예외 발생 가능성을 지시하는 예측 신호를 발생시키기 위해 오퍼랜드상에서 실행될 부동 소숫점 연산에 의해 결정된 기준과 상기 2개의 오퍼랜드의 지수부들을 비교하는 수단과; 상기 예측 신호에 응답하여 부동 소숫점 연산이 완료될때까지 상기 데이타 처리 시스템의 연산을 중지시키는 수단과; 부동 소숫점 예외가 발생했을때 계산의 완료시 인터럽트 신호를 발생시키는 수단과; 상기 부동 소숫점 예외를 처리하고, 부동 소숫점 명령의 재실행을 통해 상기 데이타 처리 시스템의 연산을 재개시키는 수단을 구비하는 것을 특징으로 하는 부동 소숫점 예외 처리 장치.
- 지수부와 소수부를 각각 갖는 제1및 제2오퍼랜드에 대해 부동 소숫점 계산을 실행하도록 동작하는 제1프로세서 유닛과 상기 부동 소숫점 계산의 실행과 병렬로 일반 데이타 처리 업무를 실행하도록 동작하는 제2프로세서 유닛으로 이루어진 최소한 한쌍의 프로세서 유닛을 구비한 유형의 데이타 처리 시스템에서 부동 소숫점 연산 예외를 처리하는 장치에 있어서, 제1프로세서 유닛이, 가산, 감산 및 단항 계산을 위해 상기 부동 소숫점 오퍼랜드와 기설정된 제1기준을 비교하고, 이 비교가 부동 소숫점 예외 발생 가능성을 나타낼때 제1신호를 발생시키는 제1회로 수단과; 부동 소숫점 승산과 제산을 위해 제1및 제2오퍼랜드의 지수부의 조합과 기설정된 제2기준을 비교하고, 이 비교가 부동 소숫점 예외 발생 가능성을 나타낼때 제2신호를 발생시키는 제2회로 수단과; 상기 제1신호 및 제2신호가 존재할때 부동 소숫점 예외 예측 신호를 제공하는 발생 수단을 포함하고, 제2프로세서 유닛이 부동 소숫점 예외 예측 신호가 발생한 동안에 이 신호에 응답해서 연산을 중지시키는 수단을 포함하는 것을 특징으로 하는 부동 소숫점 연산 예외 처리 장치.
- 제4항에 있어서, 상기 계산이 부동 소숫점 예외를 발생할때 부동 소숫점 계산의 완료시에 인터럽트 신호는 발생시키는 수단과, 이 예외를 처리하는 수단을 포함하는 것을 특징으로 하는 부동 소숫점 연산 예외 처리 장치.
- 제5항에 있어서, 상기 예외를 처리하는 수단은 오퍼랜드를 조정하는 수단과, 상기 조정된 오퍼랜드를 사용한 부동 수숫점 계산으로서 상기 제2프로세서 유닛의 동작을 재개시키는 수단을 포함하는 것을 특징으로 하는 부동 소숫점 연산 예외 처리 장치.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/161,543 US4879676A (en) | 1988-02-29 | 1988-02-29 | Method and apparatus for precise floating point exceptions |
US161,543 | 1988-02-29 | ||
US161.543 | 1988-02-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR890013553A KR890013553A (ko) | 1989-09-23 |
KR950003200B1 true KR950003200B1 (ko) | 1995-04-04 |
Family
ID=22581611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019890002537A KR950003200B1 (ko) | 1988-02-29 | 1989-02-28 | 정확한 부동 소숫점 예외를 처리할 수 있는 방법 및 장치 |
Country Status (8)
Country | Link |
---|---|
US (1) | US4879676A (ko) |
EP (1) | EP0331372B1 (ko) |
JP (1) | JP3025776B2 (ko) |
KR (1) | KR950003200B1 (ko) |
AU (1) | AU603973B2 (ko) |
CA (1) | CA1295742C (ko) |
DE (1) | DE68926063T2 (ko) |
IL (1) | IL89262A (ko) |
Families Citing this family (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4845659A (en) * | 1986-08-15 | 1989-07-04 | International Business Machines Corporation | Accelerated validity response permitting early issue of instructions dependent upon outcome of floating point operations |
US5341482A (en) * | 1987-03-20 | 1994-08-23 | Digital Equipment Corporation | Method for synchronization of arithmetic exceptions in central processing units having pipelined execution units simultaneously executing instructions |
JPS63259727A (ja) * | 1987-04-17 | 1988-10-26 | Hitachi Ltd | コプロセツサのインタ−フエイス方式 |
US5153848A (en) * | 1988-06-17 | 1992-10-06 | Bipolar Integrated Technology, Inc. | Floating point processor with internal free-running clock |
EP0365322A3 (en) * | 1988-10-19 | 1991-11-27 | Hewlett-Packard Company | Method and apparatus for exception handling in pipeline processors having mismatched instruction pipeline depths |
US4943941A (en) * | 1989-01-13 | 1990-07-24 | Bolt Beranek And Newman Inc. | Floating point processor employing counter controlled shifting |
US5134693A (en) * | 1989-01-18 | 1992-07-28 | Intel Corporation | System for handling occurrence of exceptions during execution of microinstructions while running floating point and non-floating point instructions in parallel |
US5093908A (en) * | 1989-04-17 | 1992-03-03 | International Business Machines Corporation | Method and apparatus for executing instructions in a single sequential instruction stream in a main processor and a coprocessor |
US5218711A (en) * | 1989-05-15 | 1993-06-08 | Mitsubishi Denki Kabushiki Kaisha | Microprocessor having program counter registers for its coprocessors |
US5058048A (en) * | 1990-04-02 | 1991-10-15 | Advanced Micro Devices, Inc. | Normalizing pipelined floating point processing unit |
JP3089427B2 (ja) * | 1990-09-20 | 2000-09-18 | 松下電器産業株式会社 | データ処理装置 |
JP2682232B2 (ja) * | 1990-11-21 | 1997-11-26 | 松下電器産業株式会社 | 浮動小数点演算処理装置 |
JP2925818B2 (ja) * | 1991-04-05 | 1999-07-28 | 株式会社東芝 | 並列処理制御装置 |
EP1071020A2 (en) * | 1991-12-10 | 2001-01-24 | Fujitsu Limited | Information processing system |
US5257216A (en) * | 1992-06-10 | 1993-10-26 | Intel Corporation | Floating point safe instruction recognition apparatus |
US5559977A (en) * | 1992-08-04 | 1996-09-24 | Intel Corporation | Method and apparatus for executing floating point (FP) instruction pairs in a pipelined processor by stalling the following FP instructions in an execution stage |
US5572235A (en) * | 1992-11-02 | 1996-11-05 | The 3Do Company | Method and apparatus for processing image data |
US5596693A (en) * | 1992-11-02 | 1997-01-21 | The 3Do Company | Method for controlling a spryte rendering processor |
US5481275A (en) | 1992-11-02 | 1996-01-02 | The 3Do Company | Resolution enhancement for video display using multi-line interpolation |
US5838389A (en) * | 1992-11-02 | 1998-11-17 | The 3Do Company | Apparatus and method for updating a CLUT during horizontal blanking |
US5752073A (en) * | 1993-01-06 | 1998-05-12 | Cagent Technologies, Inc. | Digital signal processor architecture |
JP2847688B2 (ja) * | 1993-05-27 | 1999-01-20 | 松下電器産業株式会社 | プログラム変換装置およびプロセッサ |
US5752013A (en) * | 1993-06-30 | 1998-05-12 | Intel Corporation | Method and apparatus for providing precise fault tracing in a superscalar microprocessor |
WO1995016955A1 (en) * | 1993-12-15 | 1995-06-22 | Silicon Graphics, Inc. | Load latency of zero for floating point load instructions using a load data queue |
US5537538A (en) * | 1993-12-15 | 1996-07-16 | Silicon Graphics, Inc. | Debug mode for a superscalar RISC processor |
JP2815236B2 (ja) * | 1993-12-15 | 1998-10-27 | シリコン・グラフィックス・インコーポレーテッド | スーパースカーラマイクロプロセッサのための命令ディスパッチ方法及びレジスタ競合についてのチェック方法 |
DE4434895C2 (de) * | 1993-12-23 | 1998-12-24 | Hewlett Packard Co | Verfahren und Vorrichtung zur Behandlung von Ausnahmebedingungen |
TW260765B (ko) * | 1994-03-31 | 1995-10-21 | Ibm | |
US5530663A (en) * | 1994-11-14 | 1996-06-25 | International Business Machines Corporation | Floating point unit for calculating a compound instruction A+B×C in two cycles |
US5548545A (en) * | 1995-01-19 | 1996-08-20 | Exponential Technology, Inc. | Floating point exception prediction for compound operations and variable precision using an intermediate exponent bus |
US5812439A (en) * | 1995-10-10 | 1998-09-22 | Microunity Systems Engineering, Inc. | Technique of incorporating floating point information into processor instructions |
US5864703A (en) * | 1997-10-09 | 1999-01-26 | Mips Technologies, Inc. | Method for providing extended precision in SIMD vector arithmetic operations |
US7197625B1 (en) | 1997-10-09 | 2007-03-27 | Mips Technologies, Inc. | Alignment and ordering of vector elements for single instruction multiple data processing |
US6275838B1 (en) | 1997-12-03 | 2001-08-14 | Intrinsity, Inc. | Method and apparatus for an enhanced floating point unit with graphics and integer capabilities |
US6460134B1 (en) | 1997-12-03 | 2002-10-01 | Intrinsity, Inc. | Method and apparatus for a late pipeline enhanced floating point unit |
US6044454A (en) * | 1998-02-19 | 2000-03-28 | International Business Machines Corporation | IEEE compliant floating point unit |
US6216222B1 (en) * | 1998-05-14 | 2001-04-10 | Arm Limited | Handling exceptions in a pipelined data processing apparatus |
US6732259B1 (en) | 1999-07-30 | 2004-05-04 | Mips Technologies, Inc. | Processor having a conditional branch extension of an instruction set architecture |
US7242414B1 (en) | 1999-07-30 | 2007-07-10 | Mips Technologies, Inc. | Processor having a compare extension of an instruction set architecture |
US6631392B1 (en) | 1999-07-30 | 2003-10-07 | Mips Technologies, Inc. | Method and apparatus for predicting floating-point exceptions |
US6912559B1 (en) | 1999-07-30 | 2005-06-28 | Mips Technologies, Inc. | System and method for improving the accuracy of reciprocal square root operations performed by a floating-point unit |
US7346643B1 (en) | 1999-07-30 | 2008-03-18 | Mips Technologies, Inc. | Processor with improved accuracy for multiply-add operations |
US6714197B1 (en) | 1999-07-30 | 2004-03-30 | Mips Technologies, Inc. | Processor having an arithmetic extension of an instruction set architecture |
US6697832B1 (en) | 1999-07-30 | 2004-02-24 | Mips Technologies, Inc. | Floating-point processor with improved intermediate result handling |
JP2001092662A (ja) | 1999-09-22 | 2001-04-06 | Toshiba Corp | プロセッサコア及びこれを用いたプロセッサ |
US6996596B1 (en) | 2000-05-23 | 2006-02-07 | Mips Technologies, Inc. | Floating-point processor with operating mode having improved accuracy and high performance |
US7599981B2 (en) | 2001-02-21 | 2009-10-06 | Mips Technologies, Inc. | Binary polynomial multiplier |
US7711763B2 (en) | 2001-02-21 | 2010-05-04 | Mips Technologies, Inc. | Microprocessor instructions for performing polynomial arithmetic operations |
US7162621B2 (en) | 2001-02-21 | 2007-01-09 | Mips Technologies, Inc. | Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration |
US7181484B2 (en) * | 2001-02-21 | 2007-02-20 | Mips Technologies, Inc. | Extended-precision accumulation of multiplier output |
US7373489B1 (en) * | 2004-06-30 | 2008-05-13 | Sun Microsystems, Inc. | Apparatus and method for floating-point exception prediction and recovery |
US7437538B1 (en) | 2004-06-30 | 2008-10-14 | Sun Microsystems, Inc. | Apparatus and method for reducing execution latency of floating point operations having special case operands |
US7401206B2 (en) * | 2004-06-30 | 2008-07-15 | Sun Microsystems, Inc. | Apparatus and method for fine-grained multithreading in a multipipelined processor core |
JP4500183B2 (ja) | 2005-02-25 | 2010-07-14 | 東芝機械株式会社 | 転写装置 |
US7451171B1 (en) | 2008-03-31 | 2008-11-11 | International Business Machines Corporation | Systems, methods and computer program products for hardware assists for microcoded floating point divide and square root |
US10684852B2 (en) | 2017-06-23 | 2020-06-16 | International Business Machines Corporation | Employing prefixes to control floating point operations |
US10514913B2 (en) | 2017-06-23 | 2019-12-24 | International Business Machines Corporation | Compiler controls for program regions |
US10379851B2 (en) | 2017-06-23 | 2019-08-13 | International Business Machines Corporation | Fine-grained management of exception enablement of floating point controls |
DE102022104815A1 (de) | 2022-03-01 | 2023-09-07 | Schaeffler Technologies AG & Co. KG | Verfahren zur Steuerung eines Hybridantriebsstrangs |
DE102022111312A1 (de) | 2022-05-06 | 2023-11-09 | Schaeffler Technologies AG & Co. KG | Dedizierter Hybridantriebsstrang und Verfahren zu dessen Steuerung |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS53135531A (en) * | 1977-05-02 | 1978-11-27 | Hitachi Ltd | Data processor |
AU549632B2 (en) * | 1981-04-23 | 1986-02-06 | Data General Corporation | Floating point notation |
JPS5892041A (ja) * | 1981-11-27 | 1983-06-01 | Hitachi Ltd | デ−タ処理装置 |
JPS5943440A (ja) * | 1982-09-03 | 1984-03-10 | Toshiba Corp | 演算制御装置 |
EP0124517A1 (en) * | 1982-10-22 | 1984-11-14 | International Business Machines Corporation | Accelerated instruction mapping external to source and target instruction streams for near realtime injection into the latter |
JPS59139448A (ja) * | 1983-01-28 | 1984-08-10 | Matsushita Electric Ind Co Ltd | 浮動小数点乗算装置 |
US4773035A (en) * | 1984-10-19 | 1988-09-20 | Amdahl Corporation | Pipelined data processing system utilizing ideal floating point execution condition detection |
JPS61288226A (ja) * | 1985-06-17 | 1986-12-18 | Panafacom Ltd | 外部コンデイシヨン制御方式 |
US4791557A (en) * | 1985-07-31 | 1988-12-13 | Wang Laboratories, Inc. | Apparatus and method for monitoring and controlling the prefetching of instructions by an information processing system |
US4845659A (en) * | 1986-08-15 | 1989-07-04 | International Business Machines Corporation | Accelerated validity response permitting early issue of instructions dependent upon outcome of floating point operations |
-
1988
- 1988-02-29 US US07/161,543 patent/US4879676A/en not_active Expired - Lifetime
-
1989
- 1989-02-10 IL IL89262A patent/IL89262A/xx unknown
- 1989-02-24 EP EP89301862A patent/EP0331372B1/en not_active Expired - Lifetime
- 1989-02-24 DE DE68926063T patent/DE68926063T2/de not_active Expired - Lifetime
- 1989-02-27 CA CA000592911A patent/CA1295742C/en not_active Expired - Lifetime
- 1989-02-27 AU AU30765/89A patent/AU603973B2/en not_active Expired
- 1989-02-28 KR KR1019890002537A patent/KR950003200B1/ko not_active IP Right Cessation
- 1989-02-28 JP JP1045523A patent/JP3025776B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0331372A3 (en) | 1990-07-04 |
IL89262A (en) | 1992-08-18 |
DE68926063D1 (de) | 1996-05-02 |
DE68926063T2 (de) | 1996-11-28 |
KR890013553A (ko) | 1989-09-23 |
AU603973B2 (en) | 1990-11-29 |
CA1295742C (en) | 1992-02-11 |
JP3025776B2 (ja) | 2000-03-27 |
EP0331372B1 (en) | 1996-03-27 |
US4879676A (en) | 1989-11-07 |
EP0331372A2 (en) | 1989-09-06 |
IL89262A0 (en) | 1989-09-10 |
JPH0210427A (ja) | 1990-01-16 |
AU3076589A (en) | 1989-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR950003200B1 (ko) | 정확한 부동 소숫점 예외를 처리할 수 있는 방법 및 장치 | |
JP2846406B2 (ja) | 分岐処理方法及び分岐処理装置 | |
US5500943A (en) | Data processor with rename buffer and FIFO buffer for in-order instruction completion | |
JP2846407B2 (ja) | 例外処理方法及び例外処理装置 | |
US5375212A (en) | System for re-execution of instruction after exception handling in first processing path while concurrently executing instructions in second processing path | |
US5699279A (en) | Optimized binary adders and comparators for inputs having different widths | |
EP0399762B1 (en) | Multiple instruction issue computer architecture | |
US6526502B1 (en) | Apparatus and method for speculatively updating global branch history with branch prediction prior to resolution of branch outcome | |
US4578750A (en) | Code determination using half-adder based operand comparator | |
US6247122B1 (en) | Method and apparatus for performing branch prediction combining static and dynamic branch predictors | |
KR100681199B1 (ko) | 코어스 그레인 어레이에서의 인터럽트 처리 방법 및 장치 | |
US6874081B2 (en) | Selection of link and fall-through address using a bit in a branch address for the selection | |
JP2006520964A (ja) | 分岐ターゲットに基づいて分岐予測をするための方法および装置 | |
JP2006520964A5 (ko) | ||
US5590351A (en) | Superscalar execution unit for sequential instruction pointer updates and segment limit checks | |
KR0133237B1 (ko) | 다중 실행장치 처리시스템 상태의 선택적 저장방법 및 시스템 | |
Torng et al. | Interrupt handling for out-of-order execution processors | |
JPH08221272A (ja) | 命令キャッシュに命令をロードする方法 | |
JP3122420B2 (ja) | プロセッサおよび条件コード・ビット計算方法 | |
US5896526A (en) | Programmable instruction trap system and method | |
JP2618187B2 (ja) | マルチスカラ・プロセッサ・システムにおいて高速浮動小数点例外処理をする方法及びシステム | |
US5446909A (en) | Binary multiplication implemented by existing hardware with minor modifications to sequentially designate bits of the operand | |
US6308262B1 (en) | System and method for efficient processing of instructions using control unit to select operations | |
JPH07262006A (ja) | 分岐ターゲットアドレスキャッシュを備えたデータプロセッサ | |
JPH04117520A (ja) | 浮動小数点演算装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
G160 | Decision to publish patent application | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20090402 Year of fee payment: 15 |
|
EXPY | Expiration of term |