KR100384875B1 - 파이프라인구조를갖는마이크로프로세서에서의언세이프처리마이크로시퀀서 - Google Patents

파이프라인구조를갖는마이크로프로세서에서의언세이프처리마이크로시퀀서 Download PDF

Info

Publication number
KR100384875B1
KR100384875B1 KR1019950050927A KR19950050927A KR100384875B1 KR 100384875 B1 KR100384875 B1 KR 100384875B1 KR 1019950050927 A KR1019950050927 A KR 1019950050927A KR 19950050927 A KR19950050927 A KR 19950050927A KR 100384875 B1 KR100384875 B1 KR 100384875B1
Authority
KR
South Korea
Prior art keywords
instruction
unsafe
microprocessor
result
processing
Prior art date
Application number
KR1019950050927A
Other languages
English (en)
Other versions
KR970049503A (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 주식회사 하이닉스반도체
Priority to KR1019950050927A priority Critical patent/KR100384875B1/ko
Publication of KR970049503A publication Critical patent/KR970049503A/ko
Application granted granted Critical
Publication of KR100384875B1 publication Critical patent/KR100384875B1/ko

Links

Classifications

    • 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 or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Abstract

본 발명은 마이크로프로그램을 수행하기 위해 기본적으로 순차 실행, 분기 실행, 서브 루틴 실행 등의 기능을 제공하는 제어 하드웨어로서, 파이프라인 구조를 갖는 마이크로프로세서에서의 언세이프 처리 마이크로 시퀀서에 관한 것으로, 현재 수행하고 있는 명령어에 대한 포인터를 저장하는 제 1 명령어 포인터(IP1); 및 언세이프 결과 처리 후 복귀에 사용하기 위하여 다음에 수행할 명령어들의 포인터를 저장하는 다수의 제 2 명령어 포인터 버퍼(IP1 내지 IP3)를 구비하며, 상기 제 2 명령어 포인터 버퍼는 다음에 순차적으로 수행할 명령어 포인터들 중 적어도 연산 단계의 실행 사이클 수만큼 구비되는 것을 특징으로 하며, 파이프 라인 단계 중 연산 단계가 한 사이클 이상 늘어난 경우에도 언세이프 결과를 처리하고 안전하게 복귀할 수 있도록 하는 특유의 효과가 있다.

Description

파이프라인 구조를 갖는 마이크로프로세서에서의 언세이프 처리 마이크로 시퀀서
본 발명은 파이프라인 구조를 갖는 마이크로프로세서에서의 언세이프(unsafe) 처리 마이크로 시퀀서에 관한 것으로, 특히 씨스크(CISC) 형 마이크로프로세서에서의 언세이프 처리 마이크로 시퀀서에 관한 것이다.
일반적으로, CISC 형 마이크로프로세서가 제공하는 명령어 집합(instruction set)은 매우 다양하고 각 명령어의 기능도 상당히 강력하고 복잡하다. 그리고 이러한 명령어들을 모두 하드웨어만으로 구현하기는 거의 불가능하다. 따라서 CISC형 마이크로프로세서는 마이크로프로그램을 마이크로 롬(ROM)에 내장하여 이 마이크로프로그램이 마이크로프로세서 내부 하드웨어를 제어하여 복잡한 명령어를 수행할 수 있도록 하는 방법을 채택하고 있다.
마이크로프로그램의 표준은 존재하지 않으며 각 마이크로프로세서의 하드웨어 특성에 따라 구현하는 사람들이 임의로 그 구조를 정의하여 프로그램하게 된다. 대부분의 경우 마이크로프로그램의 한 라인은 각 하드웨어 제어점에 제어 신호를 발생시키는 역할을 한다. 따라서 하드웨어와 밀접한 관련이 있으며 하드웨어의 일부라고도 볼 수 있다. CISC형 마이크로프로세서는 대체로 프로그램되어진 마이크로프로그램을 매 클럭 사이클마다 한 라인씩 내부 마이크로 롬에서 읽어 내어 각 제어점에 적절한 제어 신호를 발생함으로써 그 기능이 구현되어진다.
마이크로프로그램을 수행하기 위해서는 기본적으로 순차 실행, 분기실행, 서브 루틴 실행 등의 기능을 제공하는 제어 하드웨어가 필요한데 이를 마이크로 시퀀서(micro sequencer)라고 한다.
파이프 라인이란 마이크로프로세서의 명령어 수행의 단계를 여러 단계로 나누어 각 단계에서 할 일이 끝나면 다음 명령어를 처리하는 것을 말한다. 예를 들어 한 명령이 ID, AG, EX, X1, X2, WB의 6 단계로 이루어졌다고 가정하자. 여기서, ID는 명령어를 디코딩하여 어떤 기능을 수행할 것인지를 결정하는 단계이고, AG는 오퍼랜드를 가져오고 결과가 저장되어야 할 곳의 주소를 계산하는 단계이며, EX와 X1, X2는 명령어에 정해진 기능을 실행하는 단계이고, WB는 계산된 결과를 레지스터에 저장하는 단계이다. 따라서, 명령어의 각 단계들을 수행하는데 걸리는 시간은 한 클럭 사이클(clock cycle)이다. 따라서 상기와 같은 구조의 명령어를 수행 완료하는데는 총 6 사이클이 필요하게 된다.
제 1 도는 마이크로프로세서에서의 일반적인 명령어 수행 과정을 설명하기 위한 그래프로서, 도면에 도시된 바와 같이 이러한 명령어를 한 명령어가 끝나고 다음 명령어를 수행하게 되면 6 명령어를 수행하는데 총 36 사이클이 필요하게 된다.
그러나, 파이프라인 구조를 갖는 마이크로프로세서에서의 명령어 수행 과정을 설명하기 위한 그래프인 제 2 도에 도시된 바와 같이 파이프라인시키면 6 사이클 후부터는 매 클럭 사이클마다 한 명령어씩이 수행 완료된다. 이처럼 명령어 단계를 나누어 명령어 자체의 수행 속도는 그대로이지만 전체적이 수행 속도를 월등히 향상시킨 기법을 파이프라인 기법이라 한다.
한편, 언세이프 결과는 정상적인 연산 결과를 사용할 수 없고 연산 결과에 부가적인 처리가 필요한 경우를 말한다. 예를 들면 연산 도중 오버플로우나 언더플로우가 발생하면 연산 장치에서 연산된 결과에 부가적인 처리가 필요하므로 이처럼 오버플로우나 언더플로우가 발생한 결과를 언세이프 결과라 할 수 있다.
언세이프 결과는 연산이 어느 정도 진행된 후에 알 수 있으므로 보통 제 1 도에서 X1의 단계가 되어서야 언세이프 결과의 발생 여부를 알 수 있다. 언세이프결과가 발생하여 마이크로프로그램 중 언세이프 결과 처리 루틴으로 가기 위해서는 이미 파이프라인 되어 수행을 시작한 다른 명령어의 수행을 최소시키고 언세이프 결과의 처리가 끝난 후 다시 취소한 명령어를 시작하여야 한다.
일반적인 파이프라인의 경우 명령어의 실행 단계중 직접 연산을 행하는 단계는 단계(EX) 하나인 것이 보통이다.
그러나 부동 소수점 연산이나 초월 함수 연산과 관련된 명령어와 같이 도저히 한 사이클 내에 계산 결과를 얻을 수 없는 경우에는 연산 단계가 3단계(EX, X1, X2) 혹은 그 이상으로 늘일 수밖에 없다.
종래에는 주로 연산 단계가 한 단계(EX)로만 구성된 명령어를 파이프라인 시키는 것에 관한 것이었다. 따라서 언세이프 결과도 한 단계(EX), 즉 한 사이클 이내에 감지가 가능하고 이를 위하여 파이프라인되어 있는 명령어를 취소하고 언세이프 결과 처리 후 다시 취소된 명령어를 수행하기 위해서 필요한 명령어 포인터 버퍼는 하나면 충분하다. 왜냐하면 한 단계(EX)가 수행될 동안 수행을 시작하여 파이프라인 큐에 명령어는 하나 밖에 없기 때문이다.
그러나, 연산 단계가 3단계(EX, X1, X2)로 이루어져 있고 언세이프 결과의 감지가 단계 (X1)에 일어날 경우 파이프라인 큐에 들어 있는 명령어는 2 개이다. 따라서 종래의 경우처럼 명령어 포인터 버퍼를 하나만 두어서는 언세이프 결과 처리 후 정상적인 프로그램 수행 지점으로 복귀할 수 없게 되는 문제점이 있다.
따라서, 본 발명은 상기 제반 문제점을 해결하기 위하여 안출된 것으로, 명령어 포인터 버퍼를 추가하여 적어도 하나 더 둠으로써, 파이프 라인 단계 중 연산단계가 한 사이클 이상 늘어난 경우에도 언세이프 결과를 처리하고 안전하게 복귀할 수 있도록 한 파이프라인 구조를 갖는 마이크로프로세서에서의 언세이프 처리 마이크로 시퀀서를 제공하는데 그 목적이 있다.
상기 목적을 달성하기 위하여 본 발명은, 마이크로프로그램을 수행하기 위해 순차 실행, 분기 실행, 서브 루틴 실행을 포함하는 기능을 제공하는 마이크로 시퀀서에 있어서, 현재 수행하고 있는 명령어에 대한 포인터를 저장하는 제 1 명령어 포인터; 및 언세이프 결과 처리 후 복귀에 사용하기 위하여 다음에 수행할 명령어들의 포인터를 저장하는 다수의 제 2 명령어 포인터 버퍼를 구비하며, 상기 제 2 명령어 포인터 버퍼는 다음에 순차적으로 수행할 명령어 포인터들 중 적어도 연산 단계의 실행 사이클 수만큼 구비되는 것을 특징으로 한다.
마이크로프로세서는 항상 수행하고 있는 명령어에 대한 명령어 포인터와 다음에 수행할 명령어 포인터 2 개를 가지고 있다. 여기서 언세이프 결과 등의 처리를 위하여 여분의 명령어 포인터를 하나 더 가지고 있던 것이 종래의 기술이다.
본 실시예는 여기에 명령어 포인터를 하나 더 추가하여 파이프라인 명령어의 연산 단계가 한 사이클 이상이 되더라도 언세이프 결과를 처리하고 안전하게 정상적인 프로그램으로 복귀할 수 있도록 한 것이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명하면 다음과 같다.
제 3 도는 본 발명의 일실시예에 따른 파이프라인 구조를 갖는 마이크로프로세서에서의 명령어 수행 과정을 설명하기 위한 그래프이다.
제 3 도에 도시된 바와 같이 명령어 (Inst2) 수행 도중 단계(X1)에서 언세이프 결과를 감지하였을 때는 이미 파이프라인 큐에 명령어(Inst3)와 명령어(Inst4)가 수행을 시작한 후이다. 따라서 언세이프 결과를 처리한 후에는 반드시 명령어(Inst3)로 돌아가야 하는데 이를 위해서 명령어 버퍼를 3개 마련하였다. 명령어 포인터 버퍼(IP)는 현재 수행 중인 명령어의 명령어 포인터를 가리키고 있고 제 1 명령어 포인터 버퍼(IP1), 제 2 명령어 포인터 버퍼(IP2), 제 3 명령어 포인터 버퍼(IP3)는 각각 파이프 라인 큐에 들어온 순서대로 명령어 포인터들을 가리키고 있다. 따라서 언세이프 결과가 감지되면 언세이프 결과 처리 후 무조건 제 1 명령어 포인터 버퍼(IP1)가 가리키고 있는 명령어부터 다시 수행을 시작하면 되므로 안전하게 정상 프로그램으로 돌아올 수 있다.
전술한 바와 같은 방법으로 연산 단계가 3 사이클 이상인 경우에도 그 사이클 수만큼 명령어 포인터 버퍼를 마련함으로써 언세이프 결과를 처리할 수 있다. 예를 들어 연산 단계의 수행에 걸리는 사이클이 5 사이클이라면 명령어 포인터 버퍼를 5 개 마련하여 해결할 수 있다.
즉, 본 실시예는 연산 단계가 한 사이클 이상 걸리는 명령어 수행 도중 언세이프 결과가 발생하였을 때 이를 처리할 수 없었던 종래의 기술을 보완하여 연산 단계가 한 사이클 이상이 되더라고 언세이프 결과를 처리할 수 있도록 하였다.
상기와 같이 이루어지는 본 발명은 파이프 라인 단계 중 연산 단계가 한 사이클 이상 늘어난 경우에도 언세이프 결과를 처리하고 안전하게 복귀할 수 있도록 하는 특유의 효과가 있다.
제 1 도는 마이크로프로세서에서의 일반적인 명령어 수행 과정을 설명하기 위한 그래프,
제 2 도는 파이프라인 구조를 갖는 마이크로프로세서에서의 명령어 수행 과정을 설명하기 위한 그래프,
제 3 도는 본 발명의 일실시예에 따른 파이프라인 구조를 갖는 마이크로프로세서에서의 명령어 수행 과정을 설명하기 위한 그래프.
*도면의 주요부분에 대한 부호의 설명
A : 언세이프 감지
B : 언세이프 처리 구간

Claims (1)

  1. 마이크로프로그램을 수행하기 위해 순차 실행, 분기 실행, 서브 루틴 실행을 포함하는 기능을 제공하는 마이크로 시퀀서에 있어서,
    현재 수행하고 있는 제1명령어에 대한 포인터를 저장하는 제 1 명령어 포인터; 및
    언세이프 결과 처리 후 복귀에 사용하기 위하여, 다음에 순차적으로 수행할 제2명령어의 실행 사이클 중에서 적어도 실제 연산이 수행되는 단계의 사이클 수 만큼 구비된 다수의 제 2 명령어 포인터 버퍼
    를 포함하는 파이프라인 구조를 갖는 마이크로프로세서에서의 언세이프 처리 마이크로 시퀀서.
KR1019950050927A 1995-12-16 1995-12-16 파이프라인구조를갖는마이크로프로세서에서의언세이프처리마이크로시퀀서 KR100384875B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019950050927A KR100384875B1 (ko) 1995-12-16 1995-12-16 파이프라인구조를갖는마이크로프로세서에서의언세이프처리마이크로시퀀서

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019950050927A KR100384875B1 (ko) 1995-12-16 1995-12-16 파이프라인구조를갖는마이크로프로세서에서의언세이프처리마이크로시퀀서

Publications (2)

Publication Number Publication Date
KR970049503A KR970049503A (ko) 1997-07-29
KR100384875B1 true KR100384875B1 (ko) 2003-08-21

Family

ID=37417474

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950050927A KR100384875B1 (ko) 1995-12-16 1995-12-16 파이프라인구조를갖는마이크로프로세서에서의언세이프처리마이크로시퀀서

Country Status (1)

Country Link
KR (1) KR100384875B1 (ko)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04328636A (ja) * 1991-04-30 1992-11-17 Toshiba Corp 並列プロセッサーの命令分配処理装置
KR940000960A (ko) * 1992-06-05 1994-01-10 가나이 쯔또무 마이크로프로세서
JPH0619705A (ja) * 1992-07-03 1994-01-28 Fujitsu Ltd パイプライン制御方式
KR950000088A (ko) * 1993-06-17 1995-01-03 조명언 신발창
JPH07152560A (ja) * 1993-10-18 1995-06-16 Cyrix Corp スーパーパイプライン式スーパースカラーマイクロプロセッサ用のマイクロコントロールユニット
KR0122527B1 (ko) * 1993-01-08 1997-11-20 윌리엄 티.엘리스 슈퍼스칼라 프로세서 시스템에서 비순차적 명령어의 디스패치 및 실행을 위한 방법 및 시스템

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04328636A (ja) * 1991-04-30 1992-11-17 Toshiba Corp 並列プロセッサーの命令分配処理装置
KR940000960A (ko) * 1992-06-05 1994-01-10 가나이 쯔또무 마이크로프로세서
JPH0619705A (ja) * 1992-07-03 1994-01-28 Fujitsu Ltd パイプライン制御方式
KR0122527B1 (ko) * 1993-01-08 1997-11-20 윌리엄 티.엘리스 슈퍼스칼라 프로세서 시스템에서 비순차적 명령어의 디스패치 및 실행을 위한 방법 및 시스템
KR950000088A (ko) * 1993-06-17 1995-01-03 조명언 신발창
JPH07152560A (ja) * 1993-10-18 1995-06-16 Cyrix Corp スーパーパイプライン式スーパースカラーマイクロプロセッサ用のマイクロコントロールユニット

Also Published As

Publication number Publication date
KR970049503A (ko) 1997-07-29

Similar Documents

Publication Publication Date Title
CA1256216A (en) Program switching with vector registers
US4879676A (en) Method and apparatus for precise floating point exceptions
US4498136A (en) Interrupt processor
CA1321655C (en) Tightly coupled multiprocessor instruction synchronization
EP0423906B1 (en) Method of and apparatus for nullifying an instruction
EP0399762B1 (en) Multiple instruction issue computer architecture
US5596733A (en) System for exception recovery using a conditional substitution instruction which inserts a replacement result in the destination of the excepting instruction
US5699279A (en) Optimized binary adders and comparators for inputs having different widths
AU613217B2 (en) Data processing apparatus
EP0459445A2 (en) Method for processing by processor
JPS59173850A (ja) パイプライン式プロセツサ
EP0357188B1 (en) Pipelined processor
US5590351A (en) Superscalar execution unit for sequential instruction pointer updates and segment limit checks
EP0094535B1 (en) Pipe-line data processing system
US5996059A (en) System for monitoring an execution pipeline utilizing an address pipeline in parallel with the execution pipeline
US5978905A (en) Program translating apparatus and a processor which achieve high-speed execution of subroutine branch instructions
US4954947A (en) Instruction processor for processing branch instruction at high speed
JPH0348536B2 (ko)
EP0354585A2 (en) Instruction pipeline microprocessor
JPS62226232A (ja) 分岐先アドレス算出回路
US5390306A (en) Pipeline processing system and microprocessor using the system
US5291615A (en) Instruction pipeline microprocessor
KR100384875B1 (ko) 파이프라인구조를갖는마이크로프로세서에서의언세이프처리마이크로시퀀서
JPH09138748A (ja) 浮動小数点命令の早期完了方法および装置
US4991130A (en) Normalization control system for floating point arithmetic operation

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20070327

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee