KR19980068685A - Microprocessor design method with multi-stage pipeline structure - Google Patents

Microprocessor design method with multi-stage pipeline structure Download PDF

Info

Publication number
KR19980068685A
KR19980068685A KR1019970005418A KR19970005418A KR19980068685A KR 19980068685 A KR19980068685 A KR 19980068685A KR 1019970005418 A KR1019970005418 A KR 1019970005418A KR 19970005418 A KR19970005418 A KR 19970005418A KR 19980068685 A KR19980068685 A KR 19980068685A
Authority
KR
South Korea
Prior art keywords
stage
instruction
execution
code
pipeline
Prior art date
Application number
KR1019970005418A
Other languages
Korean (ko)
Other versions
KR100244210B1 (en
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 KR1019970005418A priority Critical patent/KR100244210B1/en
Publication of KR19980068685A publication Critical patent/KR19980068685A/en
Application granted granted Critical
Publication of KR100244210B1 publication Critical patent/KR100244210B1/en

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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/268Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs

Landscapes

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

Abstract

멀티-스테이지 파이프라인 구조를 갖는 마이크로 프로세서 디자인방법은 스페셜 명령을 수행하는 파이프라인에 대해서 그 수행이 기본 스테이지만으로 사용하는 명령으로 구성되도록 어셈블러/컴파일러(assembler/compiler)차원에서 여러개의 명령으로 나누어 처리할 수 있도록 하는 것이다. 이와 같은 작업을 수행하기 위해서는 특수명령에 해당하는 명령어를 기본 스테이지 만으로 구성되는 OP-CODE로 나누어 컴파일하는 단계: 현재 수행하고 있는 명령이 수페셜 명령의 일부라는 것을 구별하기 위해 상기 스테이터스 비트를 부여하는 단계; 하드웨어 측면에서는 상기 명령이 수행되는 도중 인터럽트나 익셉션 발생시 상기 스테이터스 비트가 부여된 단계에 대해서는 계속적으로 그 연산을 수행하고 그 연산이 완료되면 인터럽트나 익셉션동작을 행하는 단계로 이루어져 진다. 따라서 기본 스테이지 만을 사용하는 것에 의해 컨트롤 로직이 간단해져 게이트 사이즈를 현저하게 줄일 수 있으며, 크리티컬 패스가 줄어들므로 인한 고 속의 프로세서를 디자인 할 수 있도록 한 것이다.A microprocessor design method having a multi-stage pipeline structure divides a pipeline carrying special instructions into a plurality of instructions in the assembler / compiler dimension so that the execution is composed of instructions used only in the basic stage To be able to do so. In order to perform such an operation, a step of compiling a command corresponding to a special command into an OP-CODE composed of only a basic stage and compiling is performed. The status bit is assigned to discriminate that the command currently being executed is part of a general command step; On the hardware side, when the interrupt or exception is generated during the execution of the instruction, the operation is continuously performed at the stage where the status bit is given, and an interrupt or exception operation is performed when the operation is completed. Therefore, by using only the basic stage, the control logic is simplified, the gate size can be remarkably reduced, and the critical path can be reduced to design a high-speed processor.

Description

멀티-스테이지 파이프라인 구조를 갖는 마이크로 프로세서 디자인방법Microprocessor design method with multi-stage pipeline structure

본 발명은 멀티-스테이지 파이프라인(Multi-Stage Pipeline)구조를 갖는 마이크로 프로세서 디자인(Microprocessor Design)방법에 관한 것으로서, 특히 파이프라인의 기본 진행룰(rule)을 벗어나는 명령(instruction)에 대하여 기본 진행룰 만으로 명령을 수행할 수 있도록 명령을 나누어 처리하는 멀티-스테이지 파이프라인구조를 갖는 마이크로 프로세서 디자인방법에 관한 것이다.The present invention relates to a microprocessor design method having a multi-stage pipeline structure, and more particularly, to a microprocessor design method in which a basic progress rule Stage pipeline structure in which instructions are divided and processed so that instructions can be executed only by the microprocessor.

먼저, 상기 파이프라인에 대하여 살펴보면, 일반적인 PC 등의 마이크로 프로세서에서 한 명령어의 실행이 끝나기 전에 다른 명령어의 동작을 수행하여 마이크로 프로세서의 처리속도를 향상시키도록 한 방법을 의미한다.First, referring to the pipeline, a microprocessor such as a general PC performs a different instruction before the execution of a command is terminated, thereby improving the processing speed of the microprocessor.

즉, 명령의 수행을 여러개의 독립적인 단계를 나누고, 여러개의 명령이 단계별로 동시에 수행된다.That is, the execution of instructions is divided into several independent steps, and several instructions are executed in a step-by-step manner.

예를 들어, 어떤 일 명령을 해독하여 그 명령을 수행하면서 그 다음에 수행될 명령을 미리 가져오는 것도 일종의 파이프라인이라 볼 수 잇다.For example, it is a kind of pipeline that decodes a certain instruction and executes it in advance while fetching the instruction to be executed next.

상기 파이프라인은 그 단계의 수 만큼 속도향상을 기대할 수 있으나, 명령의 수행단계를 세붕화 하는데는 한계가 있기 때문에 많이 늘릴 수는 없는 문제점이 있다.Although the pipeline can expect a speed increase by the number of steps, there is a problem in that it can not be increased because there is a limit in refining the instruction execution step.

또한, 상기 스테이지란 파이프라인에 있어서 명령에 대한 병렬수행이 가능하도록 처리하는 일의 단계를 의미하는 것으로서, 파이프라인의 스테이지는 명령의 종류에 따라서 3-스테이지, 4-스테이지, 5-스테이지로 구분된다.In addition, the stage means a stage of processing pipelines so as to enable parallel execution of instructions. The stage of the pipeline is divided into three stages, four stages, and five stages do.

여기서, 스페셜 명령은 제외된 것이다.Here, the special order is excluded.

상기 3-스테이지는 IF(Instruction Fetch), ID(Instruction Decoder), EX(Instruction Execution)로 구분되고, 4-스테이지는 상기 IF, ID, EX, MA(Memory Access)로 구분된다.The 3-stage is classified into an IF (Instruction Fetch), an ID (Instruction Decoder), and an EX (Instruction Execution), and the 4-stage is divided into the IF, ID, EX and MA (Memory Access).

그리고, 5-스테이지는 상기 IF, ID, EX, MA, WB(Write Back)으로 파이프라인 룰을 분류할 수 있는 것이다.Then, the 5-stage can classify the pipeline rules into IF, ID, EX, MA, and WB (Write Back).

여기서, 상기 IF-스테이지는 컴퓨터의 CPU가 기억장치 즉, 메모리에 저장되어 잇는 기계어 명령(OP-CODE)이나 자료를 수행시키기 위해 CPU내로 자료를 가져오는 스테이지이고, ID-스테이지는 상기 IF스테이지에서 가져온 자료를 정해진 규칙에 따라 디코딩하는 스테이지이다.In this case, the IF-stage is a stage in which a CPU of a computer fetches data into a memory device, that is, an OP-CODE stored in a memory or data into a CPU to execute data, and the ID- And is a stage for decoding the imported data according to a predetermined rule.

그리고, EX-스테이지는 상기 ID-스테이지에서의 디코딩 규칙에 따라 어드레스(Address)를 계산하고 데이터 오포레이션(Data Operation)동작을 수행하는 스테이지이고, 상기 MA-스테이지는 메모리에서 데이터를 억세스하는 것으로서, 메모리 억세스를 포한하는 명령에 의해서 만들어지는 스테이지이며, WB-스테이지는 레지스터에 상기 메모리 억세스 데이터의 결과를 쓰기위한 스테이지이다.The EX-stage is a stage for calculating an address according to a decoding rule in the ID-stage and performing a data operation operation, the MA-stage accessing data in the memory, Stage is a stage created by an instruction including a memory access, and the WB-stage is a stage for writing the result of the memory access data to a register.

이때, 상기 WB-스테이지는 메모리 로드(memory load)를 포함하는 명령에 의해서 만들어지는 스테이지이다.At this time, the WB-stage is a stage created by an instruction including a memory load.

현재, 보통 기계어에서 연산을 가리키는 부분의 코드 즉, OP-CODE(Operation Code)를 구성할 때 기본적인 파이프라인 룰이 깨지는 명령 즉, 스페셜 명령이라도 그대로 마이크로 프로세서의 디코더에 입력하여 주므로서, 파이프라인의 컨트롤로직이 복잡해 지고, 임시의 데이터를 저장하기 위한 레지스터를 추가하게 됨으로서 프로세서 디자인시 케이트 사이즈가 커지게 되는 것이다.At the present time, when a code of a part indicating an operation in an ordinary machine language, that is, an OP-CODE (Operation Code) is constituted, a basic pipeline rule is inputted into a decoder of a microprocessor The complexity of the control logic and the addition of registers to store temporary data results in a larger processor design request size.

그리고, 상기 컨트롤 로직의 복잡화에 따라 크리티컬 패스(Critical path)가 길어져서 고속의 프로세서를 디자인하는데 제약사항의 하나로 작용되어 왔다.In addition, the complexity of the control logic increases the critical path, which has been one of limitations in designing a high-speed processor.

여기서, 하나의 일예를 살펴보면, 히타찌(Hitachi)에서 나온 SH3 마이크로 프로세서는 5-스테이지(IF, ID, EX, MA, WB)를 기본 파이프라인으로 갖는 프로세서로서, 그 기본구조를 도 1에 도시하였다.Here, an example of the SH3 microprocessor from Hitachi is shown in FIG. 1 as a processor having a 5-stage (IF, ID, EX, MA, WB) as a basic pipeline .

도 1은 일반적인 5-스테이지를 갖는 파이프라인의 기본구조를 나타낸 도면이다.1 is a diagram showing the basic structure of a pipeline having a general five-stage.

여기서, 명령(Instruction)은 데이터 트랜스퍼(Data Transfer), 연산(Arothmetic), 로직(Logic), 시프트(Shift), 시스템 컨트롤(System Control)명령으로 구성되어 있다.Here, the instruction consists of data transfer, arothmetic, logic, shift, and system control commands.

대부분의 명령은 기본 파이프라인의 룰을 벗어나지 않도록 설계를 할 수 있으나, AND.B, OR.B..., TRAPA, Multiply Instruction, RTE, INTERRUPT 혹은 익셉션(Exception)시의 명령은 도 1에 도시된 기본 파이브라인 플로우에 위배되는 명령이다.Most commands can be designed so as not to go beyond the rules of the basic pipeline, but instructions at AND.B, OR.B ..., TRAPA, Multiply Instruction, RTE, INTERRUPT or Exception are shown in Figure 1 This is a violation of the basic five-line flow.

그것들에 대한 파이프라인의 진행과정을 도 2를 참조하여 살펴보기로 한다.The progress of the pipeline for them will be described with reference to FIG.

도 2a는 종래 기술에 따른 5-스테이지를 갖는 파이프라인에 있어서, AND.B명령에 대한 파이프라인 수행방법을 나타낸 도면이고, 도 2b는 TRAPA명령, 도 2c는 Multiply명령, 도 2d는 RTE명령에 대한 파이프라인 수행방법을 나타낸 도면이다.2B is a TRAPA command, FIG. 2C is a Multiply command, FIG. 2D is an RTE instruction, and FIG. 2B is a flow diagram illustrating a pipeline execution method for an AND.B instruction in a pipeline having a five- And FIG.

도 2a에 도시된 AND.B명령을 수행하는 방법을 살펴보면, 우선 상기 AND.B명령을 메모리에 저장된 AND.B에 대한 OP-CODE를 프로세서로 IF-스테이지에서 페치한다.The method of executing the AND.B instruction shown in FIG. 2A will be described. First, the AND-B instruction fetches the OP-CODE for AND.B stored in the memory in the IF-stage with the processor.

상기 OP-CODE를 페치한 후, 페치된 OP-CODE를 프로세서내의 디코더로 입력하여 디코딩 규칙에 따라 ID-스테이지에서 디코딩하게 된다.After fetching the OP-CODE, the fetched OP-CODE is input to the decoder in the processor and decoded in the ID-stage according to the decoding rule.

이때, 상기 디코딩되는 동시에 다른 명령을 IF2-스테이지에서 페치하게 되는 것이다.At this time, another instruction is decoded and fetched at the IF2-stage.

상기 디코딩된 AND.B명령을 외부로 나가는 어드레스를 EX1-스테이지에서 계산하고, 외부 메모리에 저장된 데이터를 MA-스테이지에서 리드하며, AND 오퍼레리션을 EX2-스테이지에서 수행한다.The address for going out of the decoded AND.B instruction is calculated in the EX 1 -stage, the data stored in the external memory is read in the MA-stage, and the AND operation is performed in the EX 2 -stage.

그리고, 그 결과를 MA2-스테이지에서 다시 외부 메모리에 저장하게 하는 것이다.Then, the result is stored in the external memory again in the MA 2 - stage.

이때, 상기 EX1-스테이지 수행과 동시에 상기 IF2-스테이지에서 페치해온 다른 명령의 OP-CODE를 디코딩하고, 상기 MA1-스테이지 동작과 EX2-스테이지동작을 하는 동안 즉, 2 스테이지 사이클 동안은 다른 명령에 대한 EX2-스테이지 동작을 스톨(Stall)시키고 상기 MA2-스테이지동작의 수행과 동시에 EX2-스테이지 동작을 수행하는 것이다.In this case, the EX 1 - carried out at the same time the decoding stage of the other OP-CODE instruction that has fetched from the IF2- stage and the MA 1 - stage operation and the second EX - i.e. during the operating stage, two stage cycle for the other EX2- stage operation stall (stall) for the command and the MA 2 - to perform a procedure of simultaneously EX2- stage operation of the stage operation.

그리고. 또다른 명령을 수행하는 방법 역시 상기와 같은 방법으로 반복하게 되는 것이다.And. How to execute another command is also repeated in the same manner as described above.

AND.B명령을 수행하게 되는데는 도 2a에 도시된 바와 같이 3 AND.B 수행사이클이 소요된다. 여기서, 상기 수행사이클이란 AND.B명령의 EX-스테이지와 다음 명령의 EX-스테이지사이의 스테이지 수를 의미한다.The execution of the AND.B instruction takes 3 AND.B execution cycles as shown in FIG. 2A. Here, the execution cycle means the number of stages between the EX-stage of the AND.B instruction and the EX-stage of the next instruction.

이러한 상기한 바와 같은 파이프라인 수행과정을 가지는 명령은 AND.B 뿐 아니라 OR.B, TST.B, XOR.B, TAS.B 등이 있다.Such an instruction having a pipeline execution process includes OR.B, TST.B, XOR.B, and TAS.B as well as AND.B.

이어, 도 2b의 TRAPA명령에 대한 파이프라인 수행방법을 살펴보기로한다.Next, a pipeline execution method for the TRAPA instruction of FIG. 2B will be described.

먼저, 우선 상기 TRAPA명령을 메모리에 저장된 TRAPA명령에 대한 OP-CODE를 IF1-스테이지에서 프로세서로 페치한다.First, the TRAPA instruction fetches the OP-CODE for the TRAPA instruction stored in the memory from the IF1-stage to the processor.

상기 OP-CODE를 페치한 후, 페치된 OP-CODE를 프로세서내의 디코더로 입력하여 디코딩 규칙에 따라 ID1-스테이지에서 디코딩하게 된다.After fetching the OP-CODE, the fetched OP-CODE is input to the decoder in the processor and decoded in the ID1-stage according to the decoding rule.

그리고, 프로세서 내의 프로그램 카운터(Program Counter:PC)의 데이터를 SPC 레지스터에 임시로 저장시키고, 프로세서내의 스테이터스 레지스터(Status Register)에 저장된 데이터를 SSR 레지스터에 임시로 저장시키는 것이다.The data of the program counter (PC) in the processor is temporarily stored in the SPC register, and the data stored in the status register in the processor is temporarily stored in the SSR register.

또한, 프리벌리지 모드(priviledged mode)로 되어 다음의 익셉션 발생을 금지시키는 동시에 상기 프로그램 카운터에 익셉션 서비스 루틴(exception service routine)의 시작어드레스를 저장시켜 익셉션 서비스 루틴을 시작하는 것이다.In addition, in the priviledged mode, the next occurrence of the exception is inhibited, and the start address of the exception service routine is stored in the program counter to start the exception service routine.

여기서, 상기 TRAPA명령을 수행하는데는 6 TRAPA 수행사이클이 소요된다. 여기서, 상기 수행사이클이란 TRAPA명령의 EX-스테이지와 다음 명령의 EX-스테이지사이의 스테이지 수를 의미한다.Here, it takes 6 TRAPA execution cycles to execute the TRAPA command. Here, the execution cycle means the number of stages between the EX-stage of the TRAPA instruction and the EX-stage of the next instruction.

상기한 바와 같은 파이프라인 수행과정을 갖는 명령은 TRAPA뿐만 아니라 INTERRUPT, EXEPTION등이 있다.The instruction having the above-described pipeline execution process includes not only TRAPA but also INTERRUPT, EXEPTION, and the like.

이어, 도 2c의 Multiply명령에 대한 파이프라인 수행방법을 살펴보면, 먼저 우선 상기 Multiply명령을 메모리에 저장된 Multiply명령에 대한 OP-CODE를 IF1-스테이지에서 페치한다.Next, a pipeline execution method for the Multiply instruction of FIG. 2C will be described. First, the Multiply instruction is fetched in the IF1-stage at the OP-CODE for the Multiply instruction stored in the memory.

상기 OP-CODE를 페치한 후, 페치된 OP-CODE를 프로세서내의 디코더로 입력하여 디코딩 규칙에 따라 ID1-스테이지에서 디코딩하게 된다.After fetching the OP-CODE, the fetched OP-CODE is input to the decoder in the processor and decoded in the ID1-stage according to the decoding rule.

이때, 상기 ID1-스테이지에서 디코딩을 수행함과 동시에 다른 명령에 대한 OP-CODE를 페치한다.At this time, decoding is performed in the ID1-stage and an OP-CODE for another command is fetched.

그리고, 수행하고자 하는 데이터를 리드하기 위한 어드레스를 EX1-스테이지에서 계산하고, 상기 계산된 어드레스값에 따라 MA1,MA2-스테이지에서 메모리에저장된 데이터를 리드한 후, 이후 3개의 mm-스테이지(mm1, mm2, mm3)에서 그 리드된 데이터를 멀티플라잉(Multipling)하여 그 결과를 프로세서내의 멀티플라이어의 전용 레지스터에 저장하는 것이다.And, calculating an address to read data from EX1- stage, and wherein according to the calculated address value MA 1, MA 2 to be carried out - 3 mm- stage after leading the data stored in the memory in stages, since the ( mm1, mm2, mm3), and stores the result in a dedicated register of the multiplier in the processor.

한편, 상기 EX1-스테이지에서 어드레스를 계산함과 동시에 상기 IF2-스테이지에서 페치된 다른 명령에 대한 OP-CODE를 디코딩 하는 것이다.On the other hand, an address is calculated in the EX1-stage and an OP-CODE for another instruction fetched in the IF2-stage is decoded.

그리고, 상기 MA1-스테이지 동작을 하는 동안 즉, 1 스테이지 사이클 동안은 다른 명령에 대한 EX2-스테이지 동작을 스톨(Stall)시키고 상기 MA2-스테이지동작의 수행과 동시에 EX2-스테이지 동작을 수행하는 것이다.During the MA 1 -stage operation, that is, during one stage cycle, the EX 2 -stage operation is stalled for another instruction and the EX 2 -stage operation is performed simultaneously with the execution of the MA 2 -stage operation .

이때, 상기 Multiply명령을 수행하게 되는데는 도 2c에 도시된 바와 같이 2 Multiply 수행사이클이 소요된다.At this time, a 2-multiply execution cycle is required to perform the multiply instruction as shown in FIG. 2C.

이러한 상기한 바와 같은 파이프라인 수행과정을 가지는 명령은 TRAPA뿐만 아니라 Interrupt, Exception등이 있다.Such an instruction having a pipeline execution process includes not only TRAPA but also an interrupt and an exception.

그리고, 도 2d에 도시된 RTE명령의 파이프라인 수행방법을 살펴보면, 먼저 우선 상기 RTE명령을 메모리에 저장된 RTE명령에 대한 OP-CODE를 IF1-스테이지에서 페치한다.The pipeline execution method of the RTE instruction shown in FIG. 2D will be described. First, the RTE instruction fetches the OP-CODE for the RTE instruction stored in the memory in the IF1-stage.

상기 OP-CODE를 페치한 후, 페치된 OP-CODE를 프로세서내의 디코더로 입력하여 디코딩 규칙에 따라 ID1-스테이지에서 디코딩하게 된다.After fetching the OP-CODE, the fetched OP-CODE is input to the decoder in the processor and decoded in the ID1-stage according to the decoding rule.

이때, 상기 ID1-스테이지에서 디코딩을 수행함과 동시에 다른 명령에 대한 OP-CODE를 IF2-스테이지에서 페치한다.At this time, decoding is performed in the ID1-stage and OP-CODE for another instruction is fetched in the IF2-stage.

그리고, 레지스터에 저장된 데이터를 스테이터스 레지스터에 저장하고 다른 레지스터에 저장된 데이터값을 프로그램 카운터에 조장한 후 프로그램 카운터에 의한 어드레스로 부터 프로그램을 수행하는 것이다.Then, the data stored in the register is stored in the status register, the data value stored in the other register is promoted to the program counter, and then the program is executed from the address by the program counter.

여기서, 상기 EX2-스테이지 동작을 하는 동안 즉, 2 스테이지 사이클 동안은 다른 명령에 대한 EX2-스테이지 동작을 스톨(Stall)시키는 것이다.Here, during the EX 2 -stage operation, that is, during the two-stage cycle, the EX 2 -stage operation for another instruction is stalled.

이때, 상기 RTE명령을 수행하게 되는데는 도 2c에 도시된 바와 같이 3 RTE 수행사이클이 소요된다. 여기서, 상기 수행사이클이란 RTE명령의 EX1-스테이지와 다음 명령의 EX2-스테이지사이의 스테이지 수를 의미한다.At this time, 3 RTE execution cycles are required to execute the RTE command as shown in FIG. 2C. Here, the execution cycle means the number of stages between the EX 1 -stage of the RTE instruction and the EX 2 -stage of the next instruction.

상술한 방법들을 요약하여 보면, 아래와 같은 룰을 가지게 된다.To summarize the above-mentioned methods, the following rules are given.

AND.B, OR.B, TST.B, XOR.B, TAS.B명령의 경우 수행 스테이지 순서는 IF ID EX1MA1EX2MA2의 순으로 진행되고 TRAPA, INTERRUPT, EXCEPTION명령의 경우 수행 스테이지순서는 IF ID EX1EX2EX3EX4의 순으로 진행된다.In the case of AND.B, OR.B, TST.B, XOR.B, and TAS.B instructions, the execution stage sequence is IF ID EX 1 MA 1 EX 2 MA 2 , and TRAPA, INTERRUPT, EXCEPTION The stage sequence is proceeded in the order of IF ID EX 1 EX 2 EX 3 EX 4 .

또한, MULTIPLY 명령의 경우 수행 스테이지 순서는 IF ID EX MA1MA2mm mm mm의 순으로 진행되고 RTE명령의 경우 수행스테이지 순서는 IF ID EX1EX2의 순으로 진행된다.In the case of the MULTIPLY instruction, the execution stage sequence proceeds in the order of IF ID EX MA 1 MA 2 mm mm mm. In the case of the RTE instruction, the execution stage sequence proceeds in the order of IF ID EX 1 EX 2 .

위의 명령진행을 맞추도록 프로세서를 만들다 보면, AND.B의 경우 기본적인 파이프라인 플로우에 따라 MA까지 진행을 하다가 다시 앞의 스테이지인 EX2로 가야 한다.If you create a processor to match the above command, AND.B will proceed to the MA according to the basic pipeline flow and then back to the previous stage, EX 2 .

따라서, 그 명령을 따르는 다음 명령에 대해서는 도 2a에 도시된 바와 같이 2-스테이지 동안은 스톨시킨 후 진행을 시켜야 하는 것이다.Therefore, for the next command following the command, stalling is required for the 2-stage as shown in FIG. 2A.

또한, TRAPA, INTERRUPT, EXCEPTION 명령의 경우 도 2b에서와 같이 파이프라인이 진행되므로 ID-스테이지에서 디코딩된 정보를 마지막 EX-스테이지가 끝날 때까지 가지고 있어야 하며, 마찬가지로 그것을 따른 다음의 명령을 스톨시켜야 하는 것이다.In the case of the TRAPA, INTERRUPT and EXCEPTION commands, the pipeline proceeds as shown in FIG. 2B. Therefore, it is necessary to hold the decoded information in the ID-stage until the end of the last EX-stage, will be.

그리고, Multiply의 경우에도 MA-스테이지가 2개 있으므로 도 2c와 같이 다음 명령에 대한 EX-스테이지 수행을 1 사이클 스톨시켜야한다.Also, in the case of Multiply, there are two MA-stages, and therefore one cycle of EX-stage execution for the next instruction must be stalled as shown in FIG. 2c.

또한, RTE의 경우도 마찬가지로 도 2d에 도시된 바와 같이 1사이클 스톨을 피할 수 없는 것이다.Also, in the case of the RTE, one cycle stall can not be avoided as shown in FIG. 2D.

여기서, 또 다른 프로세서 즉, ARM 프로세서의 경우를 살펴보면 LOAD, STORE, BRANCH명령의 경우 3-스테이지의 기본 파이프라인을 깨트림으로서, 상기와 같이 다음 명령에 대한 EX-스테이지 수행시 일정 사이클 동안 스톨 시켜야 하는 것이다.In the case of another processor, that is, an ARM processor, in the case of the LOAD, STORE, and BRANCH instructions, the basic pipeline of the 3-stage is broken, and the execution of the EX- .

또한, 멀티-스테이지를 기본 파이프라인으로 갖는 프로세서에서 OP-CODE의 구성이 기본 파이프라인 플로우를 깨트리는 것이 있는한 언제나 발생될 수 있는 것이다.Also, in a processor having a multi-stage as the base pipeline, the configuration of the OP-CODE can occur as long as it breaks the basic pipeline flow.

종래 기술에 따른 프로세서에서의 파이프라인 다자인방법은 상술한 바와 같이 스페셜 명령을 수행할 경우 기본 파이프라인 룰이 깨지는 문제점으로 인해 각 스테이지의 컨트롤이 복잡해지는 문제점이 있다.As described above, the pipeline design method in the processor according to the related art has a problem that the control of each stage becomes complicated due to a problem that the basic pipeline rule is broken when the special instruction is executed.

또한, 상기 컨트롤이 복잡해짐에 따라 프로세서내의 게이트수가 증가되어 칩자체가 커지는 문점이 발생하고, 이에 따른 파우어의 소비가 증가되는 문제점이 있다.In addition, as the control becomes complicated, the number of gates in the processor increases and the chip itself becomes larger, which increases the consumption of the power.

따라서, 본 발명은 상기한 종래 기술에 따른 제반 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은 스페셜 명령을 수행하는 파이프라인에 대해서 그 수행이 기본 스테이지만으로 사용하는 명령으로 구성되도록 어셈블러/컴파일러(assembler/compiler)차원에서 여러개의 명령으로 나누어 처리하도록 한 멀티-스테이지 파이프라인 구조를 갖는 마이크로 프로세서 디자인방법을 제공함에 있다.SUMMARY OF THE INVENTION Accordingly, the present invention has been made keeping in mind the above problems occurring in the prior art, and it is an object of the present invention to provide an assembler / compiler for a pipeline that performs special instructions, stage pipeline structure in which an instruction is divided into a plurality of instructions in the assembler / compiler dimension.

도 1은 일반적인 5-스테이지를 갖는 파이프라인의 구조를 나타낸 도면1 is a diagram showing the structure of a pipeline having a general five-stage structure

도 2a 내지 도 2d는 종래 기술에 따른 각 스페셜 명령시 파이프라인 수행방법을 나타낸 도면FIGS. 2A to 2D are diagrams illustrating a pipeline execution method in each special instruction according to the prior art; FIG.

도 3a 내지 도 3d는 본 발명에 따른 각 스페셜 명령시 파이프라인 수행방법을 나타낸 도면3A through 3D are diagrams illustrating a pipeline execution method in each special instruction according to the present invention.

도 4는 본 발명에 따른 멀티-스테이지 파이프라인 구조를 갖는 마이크로 프로세서 디자인 방법을 나타낸 동작 플로우챠트FIG. 4 is a flow chart showing a microprocessor design method having a multi-stage pipeline structure according to the present invention.

본 발명에 따른 멀티-스테이지 파이프라인 구조를 갖는 마이크로 프로세서 디자인방법의 특징은 마이크로 프로세서 디자인방법에 있어서, 소프트웨어 축면에서는 특수 명령에 해당하는 명령어를 기본 스테이지 만으로 구성되는 op-code로 나누어 컴파일하는 단계; 현재 수행하고 있는 명령이 특수명령의 일부라는 것을 구별하기 위해 상기 일명령에 대해 스테이터스 비트를 부여하는 단계; 하드웨어적인 측면에서는 상기 명령이 수행되는 도중 인터럽트나 익셉션 발생시 상기 스테이터스 비트가 부여된 단계에 대해서는 계속적으로 그 연산을 수행하고 그 연산이 완료되면 인터럽트나 익셉션동작을 행하는 단계로 이루어짐에 있다.A microprocessor design method having a multi-stage pipeline structure according to the present invention is characterized in that a method for designing a microprocessor includes: dividing an instruction corresponding to a special instruction into op-codes constituted only of a basic stage in a software constellation; Assigning a status bit to the one instruction to distinguish that the currently executing instruction is part of a special instruction; In hardware aspect, when the interrupt or exception is generated during the execution of the instruction, the operation is continuously performed at the stage where the status bit is given, and when the operation is completed, an interrupt or an exception operation is performed.

이하, 본 발명에 따른 멀티-스테이지 파이프라인 구조를 갖는 마이크로 프로세서 디자인방법에 대하여 설명하기로 한다.Hereinafter, a microprocessor design method having a multi-stage pipeline structure according to the present invention will be described.

도 3은 각 스페셜 명령시 파이프라인 수행방법을 나타낸 도면으로서, 도 3a는 AND.B명령시, 도 3b는 TRAPA명령시, 도 3c는 Multiply명령시, 도 3d는 RTE명령시 파이프라인 수행과정을 나타낸 도면이다.FIG. 3 shows a pipeline execution method in each special instruction. FIG. 3A shows a pipeline execution process in an AND.B instruction, FIG. 3B shows a TRAPA instruction, FIG. 3C shows a multiply instruction, Fig.

먼저, 도 3a에 도시된 AND.B명령시 파이프라인 수행방법을 살펴보기로 하자.First, let us consider a pipeline execution method in the AND.B command shown in FIG. 3A.

우선, AND.B명령의 수행을 나누어 처리할 수 있도록 단계에 따라 메모리에 각각의 OP-CODE를 컴파일한다.First, each OP-CODE is compiled into memory according to the steps so that the execution of the AND.B instruction can be divided and processed.

여기서, AND.B명령은 두 개의 명령으로 나누어질 수 있다.Here, the AND.B instruction can be divided into two instructions.

상기 AND.B명령을 메모리에 저장된 AND.B에 대한 제 1 OP-CODE를 프로세서로 IF1-스테이지에서 페치한다.The AND.B instruction fetches a first OP-CODE for the AND.B stored in memory in the IF 1 -stage to the processor.

상기 제 1 OP-CODE를 페치한 후, 페치된 제 1 OP-CODE를 프로세서내의 디코더로 입력하여 디코딩 규칙에 따라 ID1-스테이지에서 디코딩하게 된다.After fetching the first OP-CODE, the fetched first OP-CODE is input to the decoder in the processor and decoded in the ID 1 -stage according to the decoding rule.

이때, 상기 디코딩되는 동시에 상기 AND.B명령에 대한 제 2 OP-CODE를 IF2-스테이지에서 페치하게 되는 것이다.At this time, the second OP-CODE for the AND.B instruction is decoded and fetched at the IF 2 -stage.

상기 디코딩된 제 1 OP-CODE를 외부로 출력할도록 즉, 일 메모리에 저장할 수 있도록 메모리의 어드레스를 EX1-스테이지에서 계산하고, 외부의 다른 메모리에 저장된 데이터를 MA1-스테이지에서 리드하는 것이다.The address of the memory is calculated in the EX 1 -stage so that the decoded first OP-CODE can be output to the outside, that is, stored in one memory, and the data stored in the other external memory is read from the MA 1 -stage .

여기서, 상기 EX1-스테이지에서 메모리의 어드레스를 계산함과 동시에 상기 IF2-스테이지에서 폐치된 제 2 OP-CODE를 디코더로 입력하여 ID2-스테이지에서 디코딩하고, EX2-스테이지에서 AND.B명령에 대한 AND계산후 MA2-스테이지에서 상기 계산된 데이터를 메모리에 라이트하는 것이다.Here, the EX 1 - to enter the claim 2 OP-CODE fetch stage in the decoder ID 2 - - and at the same time calculates the address of the memory in the IF stage 2, and decoded at the stage, EX 2 - AND.B in stage After the AND calculation of the instruction, the calculated data is written to the memory in the MA 2 -stage.

이때, 상기 MA1-스테이지동안 ID2-스테이지와 EX2-스테이지사이에는 1사이클 동안 스톨이 발생된다.At this time, a stall occurs for one cycle between the ID 2 -stage and the EX 2 -stage during the MA 1 -stage.

이 스톨은 AND.B 명령의 특성상 메모리에서 읽어온 데이터로 AND연산을 수행에 따른 데이터 해저드(Data Hazard)에 의한 1 사이클 스톨이 발생되는 것이다.In this stall, due to the nature of the AND.B instruction, the data read from the memory causes a 1-stall stall due to a data hazard due to the AND operation.

이 AND.B명령을 수행할시, 상술한 바와 같이 그 수행단계를 두단계로 구분하여 수행하는데 이 두 단계에는 스페셜 명령을 수행하기 위한 스테이터스 비트1이 컴파일러에 의해 부여되어 있다.When performing the AND.B instruction, the execution step is divided into two steps as described above. In these two steps, the status bit 1 for performing the special instruction is given by the compiler.

즉, 상기 두 단계가 수행되는 도중에 인터럽트나 익셉션이 발생시에도 수행동작을 중단하지 않고 상기 스테이터스 비트가 부여된 단계만큼은 그 명령(AND.B) 동작을 수행하도록 하고 그 이후의 동작에서 인터럽트 및 익셉션을 수행할 수 있다.That is, even if an interrupt or exception occurs during the execution of the two steps, the instruction (AND.B) operation is performed for the stage to which the status bit is assigned without interrupting the execution operation, and interrupt and exception Can be performed.

여기서, 도 3a에 도시된 바와 같이 AND.B명령의 수행사이클은 도 2a에 도시된 바와 같이 3 AND.B 사이클이 소요된다.Here, as shown in FIG. 3A, the execution cycle of the AND.B instruction takes three AND.B cycles as shown in FIG. 2A.

그리고, 이 명령을 SH7708의 현존하는 OP-CODE만을 사용하더라도 8개의 명령이 필요하고 8사이클로 나누어서 수행가능하다.Also, even if only the existing OP-CODE of SH7708 is used, this command requires 8 instructions and can be divided into 8 cycles.

예를 들면, 위의 SH7708의 AND.B의 경우 AND.B #imm, @(R0,GBR)이 있다고 하자.For example, assume AND B. #imm, @ (R 0 , GBR) for AND.B of SH7708 above.

이것의 수행과정은 도 2a와 같이 (R0+GBR)번지의 데이터ㅣ를 읽어서 #imm값과 AND연산을 한 후, 그 연산결과를 다시 (R0+GBR)번지로 라이트하는 동작이다.The operation of this operation is to read the data of (R 0 + GBR) and perform an AND operation with the #imm value as shown in FIG. 2A, and write the operation result back to the address (R 0 + GBR).

따라서, 위의명령은 SH3 7708의 OP-CODE만을 사용하여 나누어 준다면 아래의 순서와 같다.Therefore, if the above command is divided by using only OP-CODE of SH3 7708, the procedure is as follows.

1. STC GBR,R31. STC GBR, R3

2. MOV.W @(R0,R3), R22. MOV.W @ (R0, R3), R2

3. MOV R0, R43. MOV R0, R4

4. MOV R2,R04. MOV R2, R0

5. AND #imm,R05. AND # imm, R0

6. MOV R0, R26. MOV R0, R2

7. MOV R0, R27. MOV R0, R2

8. MOV.W R2,@(R0+R3)로 나눌 수 있다.8. MOV.W R2, @ (R0 + R3) can be divided into.

상기의 과정이 아주 복잡하게 보이지만 상기의 것은 SH3 7708의 OP-CODE만을 사용했을 때의 과정이다.Although the above procedure seems to be very complicated, the above is the process when only the OP-CODE of SH3 7708 is used.

그러나, SH7708의 현존하는 OP-CODE만을 사용하게 되면 5수행사이클이 증가하나 기본 파이프라인 구조에 맞는 하드웨어를 구성하여 OP-CODE를 잘 구성하므로서, 실제로는 메모리 리드, AND연산, 메모리 라이트의 기본연산만으로 구성이 가능하다.However, if only the existing OP-CODE of the SH7708 is used, the five execution cycles are increased. However, by configuring the hardware suitable for the basic pipeline structure and structuring the OP-CODE well, the actual operation of the memory read, AND operation, Can be configured.

즉, 도 2a와 같이 되었던 파이프라인 구성을 도 3a와 같이 두 개의 연산으로 나누어 줌으로써 같은 사이클스를 소요하면서 도 1에 도시된 기본 파이프라인 플로우에 위배되지 않는 구조로 바꿀수 있는 것이다.That is, by dividing the pipeline configuration as shown in FIG. 2A into two operations as shown in FIG. 3A, it can be changed to a structure that does not violate the basic pipeline flow shown in FIG. 1 while taking the same cycle.

도 3b는 스페셜 명령 즉, TRAPA 명령에 대한 파이프라인 수행방법을 나타낸 도면이다.FIG. 3B is a diagram illustrating a special instruction, that is, a pipeline execution method for a TRAPA instruction.

우선, TRAPA명령의 수행을 나누어 처리할 수 있도록 단계에 따라 메모리에 각각의 OP-CODE를 나누어 컴파일한다.First, compile each OP-CODE in memory according to the steps so that TRAPA instruction can be divided and processed.

여기서, TRAPA명령은 4개의 명령으로 나누어질 수 있다.Here, the TRAPA instruction can be divided into four instructions.

먼저, 메모리에 저장된 TRAPA명령에 대한 제 1 명령 즉, 제 1 OP-CODE를 프로세서로 IF1-스테이지에서 페치한다.First, the first instruction for the TRAPA instruction stored in the memory, i.e., the first OP-CODE, is fetched by the processor in the IF 1 -stage.

상기 제 1 OP-CODE를 페치한 후, 페치된 제 1 OP-CODE를 프로세서내의 디코더로 입력하여 디코딩 규칙에 따라 ID1-스테이지에서 디코딩하게 된다.After fetching the first OP-CODE, the fetched first OP-CODE is input to the decoder in the processor and decoded in the ID 1 -stage according to the decoding rule.

이때, 상기 디코딩되는 동시에 상기 TRAPA명령에 대한 제 2 OP-CODE를 IF2-스테이지에서 페치하게 되는 것이다.At this time, the second OP-CODE for the TRAPA instruction is decoded and fetched at the IF 2 -stage.

EX1-스테이지에서 프로그램 카운터(PC)의 데이터를 일 레지스터에 일시 저장하고, MA1-스테이지에서 #imm(immediate)를 메모리에 라이트한다.EX 1 - Stores the program counter (PC) data temporarily in one register, and writes #imm (immediate) to memory in MA 1 - stage.

이때, 상기 EX1-스테이지의 동작과 동시에 페치된 제 2 OP-CODE 를 디코더로 입력하여 ID2-스테이지에서 디코딩을 수행한다.At this time, the second OP-CODE fetched at the same time as the operation of the EX 1 -stage is input to the decoder, and decoding is performed in the ID 2 -stage.

디코딩후, EX2-스테이지에서 스테이터스 레지스터에 저장된 데이터를 일 레지스터에 라이트한다.After decoding, the data stored in the status register in the EX 2 - stage is written to the one register.

그리고, 상기 ID2-스테이지에서의 디코딩 동작과 동시에 IF3-스테이지에서는 제 3명령 즉, TRAPA명령수행에 대한 제 3 OP-CODE를 페치하고, 상기 EX2-스테이지 수행과 동시에 상기 페치된 제 3 OP-CODE를 디코딩하는 것이다.The third OP-CODE for the execution of the third instruction, that is, the TRAPA instruction, is fetched in the IF 3 -stage at the same time as the decoding operation in the ID 2 -stage. Simultaneously with the execution of the EX 2 -stage, And decoding the OP-CODE.

디코딩후, EX3-스테이지에서는 상기 스테이터스 레지스터에 특정값을 라이트한다.After decoding, a specific value is written into the status register in the EX 3 -stage.

한편, 상기 ID3-스테이지에서 의 디코딩동작과 동시에 IF4- 스테이지에서는 제 4 명령 즉, TRAPA명령에 대한 제 4 OP-CODE를 페치하고, 상기 EX3-스테이지 수행과 동시에 상기 페치한 제 4 OP-CODE를 ID4-스테이지에서 디코딩하며, 디코딩후 EX4-스테이지에서 VBR+h'100으로 점프(jump)하는 연산을 수행하여 TRAPA명령의 파이프라인의 동작을 완료하는 것이다.On the other hand, simultaneously with the decoding operation in the ID stage IF 3- 4 - in the fourth stage the instruction words, fetching the fourth OP-CODE for TRAPA command and, at the same time, the fetch and performs the EX stage 3- fourth OP -CODE is decoded in the ID 4 -stage, and after the decoding, an operation of jumping from the EX 4 -stage to VBR + h'100 is performed to complete the operation of the pipeline of the TRAPA instruction.

이때, 상기 TRAPA명령이 아닌 다른 명령에 대한 파이프라인의 수행은 상기 TRAPA명령의 파이프라인 수행이 완료된 후 이루어지는 것이다.At this time, the execution of the pipeline for the instruction other than the TRAPA instruction is performed after the pipeline execution of the TRAPA instruction is completed.

여기서, 상기 TRAPA명령에 대한 파이프라인 수행시, 상술한 바와 같이 그 수행단계를 4단계로 나누어 수행하는데 이 4단계 각각에는 스페셜 명령을 수행하기 위한 스테이터스 비트1이 컴파일러에 의해 부여되어 잇다.In the pipeline execution of the TRAPA instruction, the execution step is divided into four stages as described above. In each of the four stages, a status bit 1 for performing a special instruction is assigned by the compiler.

즉, 상기 4단계가 수행되는 도중에 인터럽트나 익셉션이 발생시에도 수행동작을 중단하지 않고 상기 스테이터스 비트가 부여된 단계에서는 명령(TRAPA) 동작을 수행하도록 하고 그 이후의 동작에서 인터럽트 및 익셉션을 수행할 수 있다.That is, even if an interrupt or exception occurs during the execution of the step 4, the execution of the instruction is not interrupted, the instruction (TRAPA) is performed at the stage where the status bit is given, and the interrupt and the exception have.

여기서, 도 3b에 도시된 바와 같이 TRAPA명령의 수행사이클은 도 2b에 도시된 바와 같이 6 TRAPA 수행사이클이 소요된다.Here, as shown in FIG. 3B, the execution cycle of the TRAPA instruction takes 6 TRAPA execution cycles as shown in FIG. 2B.

도 3c는 스페셜 명령 즉, Multiply 명령에 대한 파이프라인 수행방법을 나타낸 도면이다.3C is a diagram illustrating a pipeline execution method for a special instruction, that is, a multiply instruction.

우선, Multiply명령의 수행을 나누어 처리할 수 있도록 단계에 따라 메모리에 각각의 OP-CODE를 나누어 컴파일한다.First, each OP-CODE is divided into memory according to the steps so that the execution of the multiply instruction can be divided and processed.

여기서, Multiply명령은 3개의 명령으로 나누어질 수 있다.Here, the Multiply command can be divided into three commands.

먼저, 메모리에 저장된 Multiply명령에 대한 제 1 명령 즉, 제 1 OP-CODE를 프로세서로 IF1-스테이지에서 페치한다.First, a first instruction for a Multiply instruction stored in a memory, i.e., a first OP-CODE, is fetched from the IF 1 -stage to the processor.

상기 제 1 OP-CODE를 페치한 후, 페치된 제 1 OP-CODE를 프로세서내의 디코더로 입력하여 디코딩 규칙에 따라 ID1-스테이지에서 디코딩하게 된다.After fetching the first OP-CODE, the fetched first OP-CODE is input to the decoder in the processor and decoded in the ID 1 -stage according to the decoding rule.

이때, 상기 디코딩되는 동시에 상기 Multiply명령에 대한 제 2 OP-CODE를 IF2-스테이지에서 페치하게 되는 것이다.At this time, the second OP-CODE for the Multiply instruction is decoded and fetched at the IF 2 -stage.

EX1-스테이지에서 프로세서 외부에 구성된 멀티플라이어(multiplier)에 오퍼랜드(operrand)를 준다.EX 1 - Gives an operand to the multiplier configured on the outside of the processor in the stage.

이때, 상기 EX1-스테이의 동작과 동시에 ID2-스테이지에서는 상기 IF2-스테이지에서 페치해온 제 2 OP-CODE를 디코딩한다.At this time, the second OP-CODE fetched in the IF 2 -stage is decoded in the ID 2 -stage concurrently with the operation of the EX 1 -stage.

상기 EX1-스테이지의 수행후 MA1-스테이지에서는 메모리에 라이트한다.After the execution of the EX 1 -stage, write to the memory in the MA 1 -stage.

이때, 상기 MA1-스테이지 수행과 동시에 EX2-스테이지에서는 멀티플라이어에 다른 오퍼랜드를 주고, MA2-스테이지에서 메모리에 라이팅하는 동작을 수행하는 것이다.At this time, another operation is given to the multiplier in the EX 2 -stage at the same time as the MA 1 -stage is performed, and the operation of writing to the memory in the MA 2 -stage is performed.

한편, 상기 ID2-스테이지 동작수행과 동시에 Multiply명령에 대한 제 3 OP-CODE를 페치하고, EX-2-스테이지 동작과 동시에 상기 IF3-스테이지에서 페치해온 제 3 OP-CODE를 디코딩하는 것이다.Meanwhile, the third OP-CODE for the multiply instruction is fetched at the same time as the ID 2 -stage operation is performed, and the third OP-CODE fetched at the IF 3 -stage simultaneously with the EX- 2 -stage operation is decoded.

이후, 외부의 멀티플라이어에서 멀티플라이 연산을 수행하게 되는 것이다.Then, the multiplier operation is performed in the external multiplier.

이때, 상기 Multiply명령이 아닌 다른 명령에 대한 파이프라인의 수행은 상기 ID3-스테이지에서 디코딩을 수행과 동시에 다른 명령의 OP-CODE를 페치해와서 파이프라인 동작을 수행하는 것이다.At this time, the execution of the pipeline for the instruction other than the Multiply instruction fetches the OP-CODE of another instruction at the same time as performing the decoding in the ID 3 -stage to perform the pipeline operation.

여기서, 상기 Multiply명령에 대한 파이프라인 수행시, 상술한 바와 같이 그 수행단계를 3단계로 나누어 수행하는데 이 3단계 각각에는 스페셜 명령을 수행하기 위한 스테이터스 비트1이 컴파일러에 의해 부여되어 있다.In the pipeline execution of the multiply instruction, the execution step is divided into three stages as described above. In each of the three stages, a status bit 1 for performing a special instruction is given by the compiler.

즉, 상기 4단계가 수행되는 도중에 인터럽트나 익셉션이 발생시에도 수행동작을 중단하지 않고 상기 스테이터스 비트가 부여된 단계에서는 명령(Multiply) 동작을 수행하도록 하고 그 이후의 동작에서 인터럽트 및 익셉션을 수행할 수 있다. 여기서, 도 3c에 도시된 바와 같이 Multiply명령의 수행사이클은 도 2c에 도시된 Multiply명령의 수행사이클보다 1 사이클이 더 소용됐으나 멀티플라이어에 오퍼랜드를 주면서 Multiply연산을 수행하게 하면 같은 사이클이 소용되게 되는 것이다.That is, even if an interrupt or exception occurs during the step 4, the execution operation is not interrupted and a multiply operation is performed in the stage where the status bit is given, and an interrupt and an exception can be performed in a subsequent operation have. As shown in FIG. 3C, the execution cycle of the multiply instruction is one cycle longer than the execution cycle of the multiply instruction shown in FIG. 2C. However, when the multiply operation is performed while giving an operand to the multiplier, the same cycle is useless will be.

그리고, 도 3d는 스페셜 명령 즉, RTE 명령에 대한 파이프라인 수행방법을 나타낸 도면이다.FIG. 3D is a diagram illustrating a pipeline execution method for a special instruction, that is, an RTE instruction.

여기서, 상기 RTE명령은 2개의 명령으로 나누어져 수행되고 그에 따라 스테이터스 비트역시 2개의 명령에만 부여되는 것이다.Here, the RTE instruction is divided into two instructions, and accordingly, the status bits are also given to only two instructions.

또한, 그 수행사이클 역시 도 2d와 같이 3사이클이 소요된다.In addition, the execution cycle also takes three cycles as shown in FIG. 2d.

그리고, 상술한 명령 이외의 경우에도 상술한 방법과 같이 그 연산이 수행되는 것이다.Also, in the case other than the above-described command, the operation is performed as in the above-described method.

본 발명에서 상술한 데이터 해저드나 MA/IF스테이지 충돌에 의한 스톨의 경우에는 어떠한 구조에서도 피할 수 없는 것이므로 본 발명에서도 똑같이 적용되는 것이다.In the case of the stall due to the above-described data hazard or MA / IF stage collision in the present invention, it can not be avoided in any structure, and therefore, the present invention is equally applicable.

그리고, 인터럽트, 익셉션과 같은 상황이 발생했을 때는 현재 수행하던 명령을 끝내고 해야하는 경우와 그렇지 않은 경우가 있으므로 스페셜 명령에서 인터럽트 또는 익셉션이 걸렸을 때를 위하여 현 재 수행하고있는 명령이 스페셜 명령이의 일부분이라는 것을 알려주기 위한 스테이터스 비트가 OP-CODE압에 부여된다.If an interrupt or exception is encountered, the instruction that is currently being executed must be terminated or not. Therefore, if an interrupt or exception is encountered in the special instruction, the instruction currently being executed is part of the special instruction. The OP-CODE pressure is given a status bit to indicate that the OP-

즉, 현존의 프로그램과 동일하게 동작될 수 있도록 스페셜 명령을 위한 스테이터스 비트가 1로 세팅(Setting)되어 있는 명령에서는 그 명령수행중에 인터럽트나 익셉션이 수행되지 못하도록 구성하는 것이다.That is, in the instruction in which the status bit for the special instruction is set to 1 so as to be operated in the same manner as the existing program, an interrupt or exception is not executed during execution of the instruction.

상기의 구조를 사용했을 때는 컴파일/어셈블러(Compiler/Assembler)에 부담이 되며, 프로그램을 기계어로 컴파일했을 때 코드의 길이가 길어진다.When using the above structure, the compiler / assembler is burdened, and when the program is compiled into the machine language, the length of the code becomes longer.

왜냐하면, 기본 명령의 수행 단계별로 그 구조로 나누기 때문이며 또한, 인터럽트나 익셉션이 걸렸을 때 현재 수행하고 있는 명령이 하나의 명령이 나누어진 것인지 아닌지를 판별하기 위한 스테이터스 비트가 op-code상에 들어가게 되기 때문이다.This is because the instruction is divided into its structure according to the execution step of the basic instruction, and the status bit for determining whether or not the instruction currently being executed when the interrupt or exception is executed is divided into an instruction is put on the op-code to be.

상술한 본 발명에 대해 도 4를 참조하여 간단히 요약하면, 먼저 일 명령에 대한 op-code를 수행 단계별로 각각의 명령으로 나누어 컴파일한다(S101).Referring to FIG. 4, the op-code for one instruction is divided into instructions for each execution step (S101).

그리고, 현재 수행하고 있는 명령이 스페셜 명령의일부라는 것을 구별하기 위해 상기 일 명령에 대해 나누어 수행되는 단계별로 스테이터스 비트를 부여하고(S102) 상기 명령이 수행되는 도중 인터럽트나 익셉션 발생시 상기 스테이터스 비트가 부여된 단계에 대해서는 계속적으로 그 연산을 수행하고 그 연산이 완료되면 인터럽트나 익셉션동작을 행하는 것이다(S103).In order to discriminate that the command currently being executed is a part of a special command, a status bit is assigned to each command in a separate step (S102). When an interrupt or exception is generated during the execution of the command, And performs the interruption or exception operation when the operation is completed (S103).

프로세서의 디자인시 스페셜 명령이 들어왔을 경우에 필요한 임시 저장 레지스터를 만들 필요가 없으며, 그에 따른 컨트롤 로직이 필요없게 되는 것이다.In the design of the processor, there is no need to create the necessary temporary storage registers when special instructions are received, and the corresponding control logic is no longer needed.

따라서, 본 발명에 따른 멀티-스테이지 파이프라인 구조를 갖는 마이크로 프로세서 디자인방법은 게이트 사이즈가 현저하게 줄일 수있으며, 컨트롤로직이 간단해 지는 것에 따른 크리티컬 패스가 줄어들므로 인한 고 속의 프로세서를 디자인 할 수 있는 이점이 있다.Therefore, the microprocessor design method having a multi-stage pipeline structure according to the present invention can significantly reduce the gate size, reduce the critical path due to simplification of the control logic, There is an advantage.

Claims (2)

마이크로 프로세서 디자인방법에 있어서,In a microprocessor design method, 상기 각각 나누어 컴파일된 op-code를 상기 일 명령에 대한 각각의 명령별로 상기 일 명령을 나누어 수행하는 단계;Dividing each of the separately compiled op-codes into one instruction for each instruction for the one instruction; 현재 수행하고 있는 명령이 스페셜 명령의일부라는 것을 구별하기 위해 상기 일 명령에 대해 나누어 수행되는 단계별로 스테이터스 비트를 부여하는 단계;Assigning a status bit in a step-by-step manner performed for the one command in order to discriminate that the command currently being executed is part of a special command; 상기 명령이 수행되는 도중 인터럽트나 익셉션 발생시 상기 스테이터스 비트가 부여된 단계에 대해서는 계속적으로 그 연산을 수행하고 그 연산이 완료되면 인터럽트나 익셉션동작을 행하는 단계로 이루어지는 것을 특징으로 하는 멀티-스테이지 파이프라인 구조를 갖는 마이크로 프로세서 디자인방법.Wherein the step of performing the interruption or the exception operation comprises the step of continuously performing the operation at the time of the interruption or the occurrence of the exception when the status bit is given and performing the interruption or exception operation when the operation is completed. Lt; / RTI > 제 1 항에 있어서,The method according to claim 1, 상기 일 명령이 AND.B명령일 경우 두 개의 명령으로 나누어짐을 특징으로 하는 멀티-스테이지 파이프라인 구조를 갖는 마이크로 프로세서 디자인방법.Wherein the instruction is divided into two instructions when the instruction is an AND.B instruction.
KR1019970005418A 1997-02-22 1997-02-22 Method for design of microprocessor with multi-stage pipeline type KR100244210B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970005418A KR100244210B1 (en) 1997-02-22 1997-02-22 Method for design of microprocessor with multi-stage pipeline type

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970005418A KR100244210B1 (en) 1997-02-22 1997-02-22 Method for design of microprocessor with multi-stage pipeline type

Publications (2)

Publication Number Publication Date
KR19980068685A true KR19980068685A (en) 1998-10-26
KR100244210B1 KR100244210B1 (en) 2000-08-01

Family

ID=19497690

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970005418A KR100244210B1 (en) 1997-02-22 1997-02-22 Method for design of microprocessor with multi-stage pipeline type

Country Status (1)

Country Link
KR (1) KR100244210B1 (en)

Also Published As

Publication number Publication date
KR100244210B1 (en) 2000-08-01

Similar Documents

Publication Publication Date Title
US5692169A (en) Method and system for deferring exceptions generated during speculative execution
US7809547B2 (en) Host computer system emulating target system legacy software and providing for incorporating more powerful application program elements into the flow of the legacy software
US5604878A (en) Method and apparatus for avoiding writeback conflicts between execution units sharing a common writeback path
US5455955A (en) Data processing system with device for arranging instructions
JPH0628185A (en) Computer apparatus for parallel execution of two computer instructions
US7613912B2 (en) System and method for simulating hardware interrupts
JP2581236B2 (en) Data processing device
JP2006313422A (en) Calculation processing device and method for executing data transfer processing
JP2620511B2 (en) Data processor
JP4134179B2 (en) Software dynamic prediction method and apparatus
US9817763B2 (en) Method of establishing pre-fetch control information from an executable code and an associated NVM controller, a device, a processor system and computer program products
KR100374401B1 (en) Hardware device for executing programmable instructions based upon micro-instructions
KR102379886B1 (en) Vector instruction processing
KR100244210B1 (en) Method for design of microprocessor with multi-stage pipeline type
US7000135B2 (en) Clock control method and information processing device employing the clock control method
US5212779A (en) System for guarantee reexecution after interruption by conditionally used store buffer if microinstruction being executed is a memory write and last microinstruction
JPH1049373A (en) Method and device for operating multiplex and highly accurate event for pipeline digital processor
KR20160108754A (en) Method for processing unconditional branch instruction in processor with pipeline
JP7506718B2 (en) Processor and program for controlling pipeline processing based on jump instructions
US8275978B1 (en) Execution of conditional branch instruction specifying branch point operand to be stored in jump stack with branch destination for jumping to upon matching program counter value
US20070010987A1 (en) Lookahead instruction fetch processing for improved emulated instruction performance
JP2000029696A (en) Processor, and pipeline process control method
JPH1196001A (en) Device for executing program and method for converting program
US20090119492A1 (en) Data Processing Apparatus and Method for Handling Procedure Call Instructions
US20070168647A1 (en) System and method for acceleration of streams of dependent instructions within a microprocessor

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: 20060911

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee