KR100384875B1 - 파이프라인구조를갖는마이크로프로세서에서의언세이프처리마이크로시퀀서 - Google Patents
파이프라인구조를갖는마이크로프로세서에서의언세이프처리마이크로시퀀서 Download PDFInfo
- 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
Links
- 239000000872 buffer Substances 0.000 claims abstract description 16
- 238000000034 method Methods 0.000 abstract description 12
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3869—Implementation 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 명령어 포인터; 및언세이프 결과 처리 후 복귀에 사용하기 위하여, 다음에 순차적으로 수행할 제2명령어의 실행 사이클 중에서 적어도 실제 연산이 수행되는 단계의 사이클 수 만큼 구비된 다수의 제 2 명령어 포인터 버퍼를 포함하는 파이프라인 구조를 갖는 마이크로프로세서에서의 언세이프 처리 마이크로 시퀀서.
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)
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 | 윌리엄 티.엘리스 | 슈퍼스칼라 프로세서 시스템에서 비순차적 명령어의 디스패치 및 실행을 위한 방법 및 시스템 |
-
1995
- 1995-12-16 KR KR1019950050927A patent/KR100384875B1/ko not_active IP Right Cessation
Patent Citations (6)
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 |