KR950003200B1 - 정확한 부동 소숫점 예외를 처리할 수 있는 방법 및 장치 - Google Patents

정확한 부동 소숫점 예외를 처리할 수 있는 방법 및 장치 Download PDF

Info

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
Application number
KR1019890002537A
Other languages
English (en)
Other versions
KR890013553A (ko
Inventor
씨. 한센 크라익
Original Assignee
밉스 컴퓨터 시스템즈, 인코오포레이티드
죠셉 제이. 스위니
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 밉스 컴퓨터 시스템즈, 인코오포레이티드, 죠셉 제이. 스위니 filed Critical 밉스 컴퓨터 시스템즈, 인코오포레이티드
Publication of KR890013553A publication Critical patent/KR890013553A/ko
Application granted granted Critical
Publication of KR950003200B1 publication Critical patent/KR950003200B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3884Pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling
    • G06F7/4991Overflow or underflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance 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. 지수부와 소수부를 각각 갖는 제1및 제2오퍼랜드에 대한 부동 소숫점 계산을 실행하도록 동작하는 제1프로세서 유닛과, 상기 제1프로세서 유닛에 의해 실행된 부동 소숫점 계산과 병렬로 일반 데이타 처리 업무를 실행하도록 동작하는 제2프로세서 유닛을 구비하는 유형의 데이타 처리 시스템에서 상기 부동 솟수점 계산을 실행하는 방법에 있어서, 상기 제1프로세서 유닛에 의해 실행될 서로 다른 유형의 각 부동 소숫점 계산을 위해 부동 소숫점 예외 발생 기준을 저장하는 단계와; 상기 제1및 제2오퍼랜드의 지수부의 조합과 실행될 부동 소숫점 계산용의 상기 부동 소숫점 예외 발생 기준을 비교하는 단계와; 사용된 부동 소숫점 예외 발생 기준에 따라 상기 비교 단계에서 예외가 발생할 가능성이 있음을 나타낼때 부동 소숫점 예외 예측 신호를 발생시키는 단계와; 부동 소숫점 예외 신호의 존재에 응답해서 상기 제2프로세서 유닛의 연산을 일시적으로 중지시키는 단계와; 부동 소숫점 계산을 실행시키는 단계와; 부동 소숫점 계산이 실제 부동 소숫점 예외를 발생시키지 않을때 상기 제2프로세서 유닛의 연산을 재개시 시키는 단계를 포함하는 것을 특징으로 하는 부동 소숫점 계산 실행 방법.
  2. 제1항에 있어서, 상기 계산의 종료시 실제 부동 소숫점 예외를 발생할때 인터럽트 신호를 발생시키는 단계와; 상기 예외를 야기시킨 상기 부동 소숫점 오퍼랜드를 부분적으로 조정하므로써 부동 소숫점 예외를 처리하도록 하기 인터럽트에 응답하여 상기 제2프로세서 유닛의 연산을 재개시 시키는 단계와; 조정된 부동 소숫점 오퍼랜드로 상기 부동 소숫점 계산을 제실행하는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 명령들이 단계적으로 디코드되고 실행되는 파이프라인식 구조를 가지며, 지수부와 소수부를 각각 갖는 최소한 2개의 오퍼랜드를 내제한 부동 소숫점 계산을 실행하도록 부동 소숫점 명령에 응답하여 동작하는 계산 유닛을 포함하는 유형의 데이타 처리 시스템에서 부동 소숫점 명령에 응답하여 동작하는 계산 유닛을 포함하는 유형의 데이타 처리 시스템에서 부동 소숫점 가산, 감산, 승산 및 제산 연산에서 야기된 부동 소숫점 예외를 처리하는 장치에 있어서, 부동 소숫점 예외 발생 가능성을 지시하는 예측 신호를 발생시키기 위해 오퍼랜드상에서 실행될 부동 소숫점 연산에 의해 결정된 기준과 상기 2개의 오퍼랜드의 지수부들을 비교하는 수단과; 상기 예측 신호에 응답하여 부동 소숫점 연산이 완료될때까지 상기 데이타 처리 시스템의 연산을 중지시키는 수단과; 부동 소숫점 예외가 발생했을때 계산의 완료시 인터럽트 신호를 발생시키는 수단과; 상기 부동 소숫점 예외를 처리하고, 부동 소숫점 명령의 재실행을 통해 상기 데이타 처리 시스템의 연산을 재개시키는 수단을 구비하는 것을 특징으로 하는 부동 소숫점 예외 처리 장치.
  4. 지수부와 소수부를 각각 갖는 제1및 제2오퍼랜드에 대해 부동 소숫점 계산을 실행하도록 동작하는 제1프로세서 유닛과 상기 부동 소숫점 계산의 실행과 병렬로 일반 데이타 처리 업무를 실행하도록 동작하는 제2프로세서 유닛으로 이루어진 최소한 한쌍의 프로세서 유닛을 구비한 유형의 데이타 처리 시스템에서 부동 소숫점 연산 예외를 처리하는 장치에 있어서, 제1프로세서 유닛이, 가산, 감산 및 단항 계산을 위해 상기 부동 소숫점 오퍼랜드와 기설정된 제1기준을 비교하고, 이 비교가 부동 소숫점 예외 발생 가능성을 나타낼때 제1신호를 발생시키는 제1회로 수단과; 부동 소숫점 승산과 제산을 위해 제1및 제2오퍼랜드의 지수부의 조합과 기설정된 제2기준을 비교하고, 이 비교가 부동 소숫점 예외 발생 가능성을 나타낼때 제2신호를 발생시키는 제2회로 수단과; 상기 제1신호 및 제2신호가 존재할때 부동 소숫점 예외 예측 신호를 제공하는 발생 수단을 포함하고, 제2프로세서 유닛이 부동 소숫점 예외 예측 신호가 발생한 동안에 이 신호에 응답해서 연산을 중지시키는 수단을 포함하는 것을 특징으로 하는 부동 소숫점 연산 예외 처리 장치.
  5. 제4항에 있어서, 상기 계산이 부동 소숫점 예외를 발생할때 부동 소숫점 계산의 완료시에 인터럽트 신호는 발생시키는 수단과, 이 예외를 처리하는 수단을 포함하는 것을 특징으로 하는 부동 소숫점 연산 예외 처리 장치.
  6. 제5항에 있어서, 상기 예외를 처리하는 수단은 오퍼랜드를 조정하는 수단과, 상기 조정된 오퍼랜드를 사용한 부동 수숫점 계산으로서 상기 제2프로세서 유닛의 동작을 재개시키는 수단을 포함하는 것을 특징으로 하는 부동 소숫점 연산 예외 처리 장치.
KR1019890002537A 1988-02-29 1989-02-28 정확한 부동 소숫점 예외를 처리할 수 있는 방법 및 장치 KR950003200B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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