KR100200487B1 - A processor with a pipeline architecture - Google Patents

A processor with a pipeline architecture Download PDF

Info

Publication number
KR100200487B1
KR100200487B1 KR1019960031319A KR19960031319A KR100200487B1 KR 100200487 B1 KR100200487 B1 KR 100200487B1 KR 1019960031319 A KR1019960031319 A KR 1019960031319A KR 19960031319 A KR19960031319 A KR 19960031319A KR 100200487 B1 KR100200487 B1 KR 100200487B1
Authority
KR
South Korea
Prior art keywords
jump
address
call
command
instruction
Prior art date
Application number
KR1019960031319A
Other languages
Korean (ko)
Other versions
KR980010759A (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 KR1019960031319A priority Critical patent/KR100200487B1/en
Publication of KR980010759A publication Critical patent/KR980010759A/en
Application granted granted Critical
Publication of KR100200487B1 publication Critical patent/KR100200487B1/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/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
    • 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/30181Instruction operation extension or modification
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming

Landscapes

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

Abstract

본 발명은 중앙 처리 장치에 관한 것으로서, 특히 명령을 입력하여 저장하는 명령저장수단, 점프/호출 명령에 의한 점프/호출 어드레스를 저장하는 어드레스 저장수단, 상기 점프/호출 어드레스를 입력하여 상기 프로그램 메모리의 어드레스신호를 발생하는 어드레스 발생수단, 상기 명령저장수단으로부터 제공되는 명령을 해독하여 해독된 명령이 점프/호출 명령인 경우에는 다음에 페치된 명령의 실행 사이클수를 체크하고 체크된 실행 사이클수 만큼 점프/호출 명령의 실행을 홀딩하는 제 1 내지 제 3 제어신호들을 발생하는 명령해독수단, 상기 명령저장수단과 명령해독수단의 사이에 연결되고, 상기 제 1 제어신호에 응답하여 상기 페치된 명령의 실행동안 오프되는 제 1 스위칭수단, 상기 명령저장수단과 어드레스 저장수단의 사이에 연결되고, 상기 제 2 제어신호에 응답하여 상기 점프/호출 어드레스를 추출하는 제 2 스위칭수단, 및 상기 어드레스 저장수단과 어드레스 발생수단의 사이에 연결되고, 상기 제 3 제어신호에 응답하여 상기 페치된 명령의 실행 완료후에 온되는 제 3 스위칭수단을 구비한다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a central processing unit, and in particular, command storage means for inputting and storing a command, address storage means for storing a jump / call address by a jump / call command, and inputting the jump / call address to the program memory. If the instruction generated by the address generating means for generating the address signal and the instruction decoded by decoding the instruction is a jump / call instruction, the execution cycle number of the next fetched instruction is checked and the checked execution cycle jumps. Instruction decoding means for generating first to third control signals for holding execution of a call instruction, connected between said instruction storage means and instruction decoding means, and executing said fetched command in response to said first control signal; A first switching means, which is connected between said command storing means and said address storing means, Second switching means for extracting the jump / call address in response to a second control signal, and connected between the address storage means and an address generating means, and completion of execution of the fetched command in response to the third control signal And third switching means which are turned on later.

Description

파이프라인 구조를 가진 중앙처리장치 및 점프/호출 실행방법Central processing unit with pipeline structure and jump / call execution method

본 발명은 파이프라인 구조를 가진 중앙처리장치(CPU:central Processing Unit) 및 점프/호출 실행방법에 관한 것으로서, 특히, 점프/호출 명령의 실행시 다음에 페치된 멀티 실행 사이클을 가진 명령의 실행을 수행할 수 있는 파이프라인 구조를 가진 중앙처리장치 및 점프/호출 실행방법에 관한 것이다.The present invention relates to a central processing unit (CPU) having a pipelined structure and a jump / call execution method. In particular, the execution of an instruction having a multi-execution cycle fetched next upon execution of a jump / call instruction is performed. It relates to a central processing unit having a pipeline structure that can be performed and a jump / call execution method.

CPU에서 프로그램을 실행하는데 점프/호출(Jump/Call) 동작은 중요한 역할을 한다.Jump / Call operations play an important role in executing programs on the CPU.

제1a도 ~ 제1f도 들은 3-단계 파이프 라인 구조를 갖는 종래의 CPU에서, 2단어의 점프/호출 명령이 발생하였을 경우, 프로그램이 수행되는 과정을 설명하기 위한 타이밍도들로서, 제1a도는 시스템 클럭, 제1b도는 프로그램 어드레스(addr), 제1c도는 프로그램 추출(fetch), 제1d도는 프로그램 해독(decode), 제1e도는 프로그램 수행(execute) 및 제1f도는 점프/호출 어드레스를 각각 나타내는 타이밍도들이다.1A to 1F are timing diagrams for explaining a process of executing a program when a two-word jump / call instruction is generated in a conventional CPU having a three-stage pipeline structure. Figure 1b is a program address addr, 1c is a program fetch, 1d is a program decode, 1e is a program execution and 1f is a timing diagram representing a jump / call address, respectively. admit.

CPU가 명령을 수행하는 과정은 추출-해독-실행의 3단계 파이프 라인 구조로 이루어진다고 가정한다. 이때, 2단어로 구성된 점프/호출 명령이 발생하였을 때, 종래의 CPU의 동작을 다음과 같이 설명한다.It is assumed that the process of executing instructions by the CPU consists of a three-stage pipeline structure of extract-decrypt-execute. At this time, when a jump / call instruction composed of two words occurs, the operation of the conventional CPU will be described as follows.

제1b도에 도시된 프로그램 어드레스의 n단계에서 제1d도 에 도시된 바와 같이, 점프/호출 명령이 발생하였다. n+1단계에서 제1d도에 도시된 바와 같이, 점프/호출 명령이 수행될 어드레스가 순간적으로 해독기(미도시)에 로딩된다. 그리고, 명령 수행이 n단계인 점프/호출 명령이 수행된 후에 순차적으로 돌아가는 제1b도에 도시된 n+3 단계 대신에 점프/호출에 의해 발생된 제1f도에 도시된 어드레스가 새로운 프로그램 어드레스로서 CPU의 프로그램 어드레스 발생기(미도시)에 로딩된다.In step n of the program address shown in FIG. 1B, as shown in FIG. 1D, a jump / call command has occurred. As shown in FIG. 1d in step n + 1, the address at which the jump / call command is to be performed is momentarily loaded into a decoder (not shown). Then, the address shown in FIG. 1f generated by the jump / call instead of the step n + 3 shown in FIG. 1b that is sequentially returned after the jump / call command in which the instruction is performed is n steps is performed as a new program address. Loaded into the program address generator (not shown) of the CPU.

이때, CPU가 파이프 라인 구조를 갖으므로, 점프/호출 명령에 의한 프로그램이 모두 실행될 때까지 점프/호출이 발생한 시점의 프로그램의 처리 동작은 일어나지 않는다. 또는, 다수개의 사이클이 소요되거나 다수개의 단어로 구성된 명령은 점프/호출 동작 뒤에 수행되지 않는 문제점이 있었다. 즉, n+2 단계에서 다수개의 사이클이 소요되거나 다수개의 단어들로 구성된 단어의 명령을 처리해야 한다면, 다음 사이클에 오는 점프/호출 명령 어드레스에 의해 프로그램 어드레스 n+2 단계에서 아직 처리되지 않은 다수개의 사이클이 소요되거나 다수개의 단어들로 구성된 명령이 계속적으로 수행되지 못하는 문제점이 있다.At this time, since the CPU has a pipelined structure, the processing operation of the program at the time of the jump / call does not occur until all the programs by the jump / call instruction are executed. Alternatively, a command that takes a plurality of cycles or consists of a plurality of words may not be performed after a jump / call operation. That is, if a number of cycles are required in the n + 2 step or a command of a word composed of a plurality of words is to be processed, a number of unprocessed steps in the program address n + 2 step by the jump / call instruction address coming in the next cycle There is a problem in that it takes several cycles or a command composed of a plurality of words is not continuously executed.

제2a도 ~ 제2f도들은 3-단계 파이프 라인 구조를 갖는 종래의 CPU 에서, 1단어의 점프/호출 명령이 발생하였을 경우, 프로그램이 수행되는 과정을 설명하기 위한 타이밍들로서, 제2a도는 시스템 클럭, 제2b도는 프로그램 어드레스(addr), 제2c도는 프로그램 추출(fetch), 제2d도는 프로그램 해독(decode), 제2e도는 프로그램 실행(execute) 및 제2f도는 점프/호출 어드레스를 각각 나타내는 타이밍도들이다.2a to 2f are timing diagrams for explaining a process of executing a program when a single word jump / call instruction is generated in a conventional CPU having a three-stage pipeline structure. FIG. 2a is a system clock. 2b is a program address addr, 2c is a program fetch, 2d is a program decode, 2e is a program execution and 2f is a timing diagram indicating a jump / call address, respectively. .

만일, 1단어의 명령/호출 명령이 발생할 경우에도, 2단어의 명령/호출 명령이 발생할 경우와 마찬가지로 다음과 같은 문제점이 있다.If a one word instruction / call instruction occurs, the following problems are encountered as in the case where a two word instruction / call instruction occurs.

예를 들면, 제2b도에 도시된 프로그램 어드레스 n+1 단계에 2사이클 또는 2단어의 명령이 들어오는 경우를 제외한 모든 다수개의 사이클 또는 다수개의 단어로 구성된 명령이 오는 경우에도 동일한 문제가 발생한다.For example, the same problem occurs when a command composed of all cycles or words is input except for the case where a command of two cycles or two words enters the program address n + 1 shown in FIG. 2B.

본 발명의 목적은 상기와 같은 종래의 문제점을 해결하기 위하여 프로그램을 실행중 점프/호출 동작의 발생시에는 현재 페치된 멀티 실행사이클을 가진 명령을 계속해서 처리할 수 있는 파이프라인 구조를 가진 중앙처리장치 및 점프/호출 실행방법을 제공하는 데 있다.SUMMARY OF THE INVENTION An object of the present invention is to provide a central processing apparatus having a pipeline structure that can continuously process an instruction having a multi-execution cycle currently fetched when a jump / call operation occurs while executing a program in order to solve the conventional problems as described above. And a jump / call execution method.

상기 목적을 달성하기 위해, 본 발명의 장치는 시스템 프로그램을 저장하는 프로그램 메모리로부터 명령을 입력하여 파이프라인 방식으로 실행하는 파이프라인구조를 가진 중앙 처리 장치에 있어서, 상기 프로그램 메모리로부터 명령을 입력하여 저장하는 명령저장수단; 점프/호출 명령에 의한 점프/호출 어드레스를 저장하는 어드레스 저장수단; 상기 점프/호출 어드레스를 입력하여 상기 프로그램 메모리의 어드레스신호를 발생하는 어드레스 발생수단; 상기 명령저장수단으로부터 제공되는 명령을 해독하여 해독된 명령이 점프/호출 명령인 경우에는 다음에 페치된 명령의 실행 사이클수를 체크하고 체크된 실행 사이클수 만큼 점프/호출 명령의 실행을 홀딩하는 제 1 내지 제 3 제어신호들을 발생하는 명령해독수단; 상기 명령저장수단과 명령해독수단의 사이에 연결되고, 상기 제 1 제어신호에 응답하여 상기 페치된 명령의 실행동안 오프되는 제 1 스위칭수단; 상기 명령저장수단과 어드레스 저장수단의 사이에 연결되고, 상기 제 2 제어신호에 응답하여 상기 점프/호출 어드레스를 추출하는 제 2 스위칭수단; 및 상기 어드레스 저장수단과 어드레스 발생수단의 사이에 연결되고, 상기 제 3 제어신호에 응답하여 상기 페치된 명령의 실행 완료후에 온되는 제 1 스위칭수단을 구비하는 것을 특징으로 한다.In order to achieve the above object, the apparatus of the present invention is a central processing unit having a pipelined structure that executes in a pipelined manner by inputting a command from a program memory for storing a system program, the input is stored from the program memory Instruction storage means for performing; Address storage means for storing a jump / call address by a jump / call command; Address generating means for inputting the jump / call address to generate an address signal of the program memory; When the decoded instruction is a jump / call instruction, the instruction provided from the instruction storage means checks the execution cycle number of the next fetched instruction and holds the execution of the jump / call instruction by the checked execution cycle number. Command decoding means for generating first to third control signals; First switching means connected between the command storing means and the command decoding means, the first switching means being turned off during execution of the fetched command in response to the first control signal; Second switching means connected between the command storing means and the address storing means and extracting the jump / call address in response to the second control signal; And first switching means connected between the address storing means and the address generating means and turned on after completion of execution of the fetched command in response to the third control signal.

또한, 본 발명의 방법은 파이프라인 구조를 가진 중앙처리장치의 점프/호출 실행방법에 있어서, 페치된 명령의 해독에 의해 점프/호출 명령인가를 체크하는 단계; 상기 점프/호출 명령인 경우에는 점프/호출 어드레스를 저장하는 단계; 상기 점프/호출 명령의 다음에 페치된 명령을 해독하여 실행 사이클수를 체크하는 단계; 상기 체크된 실행사이클수 만큼 점프/호출명령의 실행을 홀딩시키고 해독된 명령을 실행하는 단계; 상기 명령의 실행이 완료되면 상기 저장된 점프/호출 어드레스를 독출하여 프로그램 메모리의 점프/호출할 어드레스를 지정하기 위한 어드레스신호를 발생하는 단계를 구비하는 것을 특징으로 한다.In addition, the method of the present invention includes a jump / call execution method of a CPU having a pipeline structure, the method comprising: checking whether a jump / call command is obtained by decrypting a fetched command; Storing a jump / call address in the case of the jump / call command; Decrypting the instruction fetched next to the jump / call instruction to check the number of execution cycles; Holding execution of a jump / call instruction by the checked execution cycle number and executing a decrypted instruction; And when the execution of the command is completed, reading the stored jump / call address to generate an address signal for designating an address to jump / call to the program memory.

제1a도 ~ 제1f도 들은 종래의 CPU에서, 2단어의 점프/호출 명령이 발생하였을 경우, 명령이 수행되는 과정을 설명하기 위한 타이밍도들이다.1A to 1F are timing diagrams for explaining a process of executing an instruction when a two word jump / call instruction is generated in a conventional CPU.

제2a도 ~ 제2f도 들은 종래의 CPU 에서, 1단어의 점프/호출 명령이 발생하였을 경우, 명령이 수행되는 과정을 설명하기 위한 타이밍도들이다.2A to 2F are timing diagrams for explaining a process of executing an instruction when a jump / call instruction of one word occurs in a conventional CPU.

제3도는 본 발명에 의한 CPU의 블럭도이다.3 is a block diagram of a CPU according to the present invention.

제4a도 ~ 제4j도 들은 제3도 에 도시된 장치의 각 부 및 스위칭 신호의 타이밍도들이다.4A to 4J are timing diagrams of respective parts and the switching signal of the apparatus shown in FIG.

이하, 본 발명에 의한 CPU의 제어 장치의 구성 및 동작과 그 제어장치에서 수행되는 프로그램 실행 방법을 첨부한 도면을 참조하여 다음과 같이 설명한다.Hereinafter, with reference to the accompanying drawings, the configuration and operation of the control device of the CPU according to the present invention and the program execution method performed in the control device will be described as follows.

제3도는 본 발명에 의한 CPU 제어장치의 개략적인 블럭도로서, 프로그램 메모리(100)로부터 명령을 입력하여 저장하는 명령 저장부(202)와, 점프/호출 어드레스를 저장하는 어드레스 저장부(204)와, 점프/호출 어드레스를 입력하고 어드레스신호를 발생하여 프로그램 메모리(100)로 출력하는 어드레스 발생부(206)와, 제 1 제어신호(S1)에 응답하여 명령 저장부(202)에 저장된 프로그램 데이타를 출력하는 제 1 스위칭부(208)와, 제 2 제어신호(S2)에 응답하여 명령 저장부(202)의 점프/호출 어드레스를 어드레스 저장부(204)로 출력하는 제 2 스위칭부(210)와, 제 3 제어신호(S3)에 응답하여 어드레스 저장부(204)에 저장된 점프/호출 어드레스를 어드레스 발생부(206)로 출력하는 제 3 스위칭부(212) 및 제 1 스위칭부(208)로부터 제공되는 명령을 해독하여, 시스템 제어신호를 출력(OUT)하고, 명령을 처리하는 데 소요되는 사이클수 및 구성 단어수에 응답하여 제 1 내지 제 3 제어신호(S1, S2 및 S3)들을 출력하는 명령 해독부(260)로 구성된다.3 is a schematic block diagram of a CPU control apparatus according to the present invention, which includes a command storage unit 202 for inputting and storing a command from a program memory 100, and an address storage unit 204 for storing a jump / call address. And an address generator 206 for inputting a jump / call address, generating an address signal, and outputting the address signal to the program memory 100, and program data stored in the instruction storage unit 202 in response to the first control signal S1. The first switching unit 208 for outputting the signal and the second switching unit 210 for outputting the jump / call address of the command storage unit 202 to the address storage unit 204 in response to the second control signal (S2). And from the third switching unit 212 and the first switching unit 208 outputting the jump / call address stored in the address storage unit 204 to the address generator 206 in response to the third control signal S3. Decode the command provided to output the system control signal (OUT), and in response to the cycle number and configuration number of words required to process the command consists of the first to third control signals (S1, S2 and S3), the command decoder 260 for outputting.

제3도에 도시된 명령 해독부(260)는 프로그램 데이타를 해독하여 제어 신호를 출력하는 데이타 해독부(214) 및 데이타 해독부(214)의 프로그램 데이타의 처리 소요 사이클 수 및 구성 단어수에 응답하여 제1 내지 제 3 제어신호(S1, S2 및 S3)를 출력하는 점프/호출 홀딩제어부(216)로 구성된다.The command decryption unit 260 shown in FIG. 3 responds to the number of cycles required for processing the program data and the number of constituent words of the data decryption unit 214 and the data decryption unit 214, which decrypts the program data and outputs a control signal. And a jump / call holding control unit 216 for outputting the first to third control signals S1, S2, and S3.

제4a도 ∼ 제4j도들은 도 3 에 도시된 장치의 각 부 및 스위칭 신호의 타이밍도들로서, 제4a도는 시스템 클럭, 제4b도는 어드레스 발생부(206)로부터 출력되는 프로그램 어드레스, 제4c도는 명령 저장부(202)의 프로그램 추출, 제4d도는 데이타 해독부(214)의 프로그램 해독, 제4e도는 프로그램 실행, 제4f도는 제 2 제어신호(S2), 제4g도 는 어드레스 저장부(204)의 명령 저장, 제4h도는 제 3 스위칭 신호(S3), 제4i도는 제 1 제어신호(S1), 제4j도는 점프/호출 홀딩제어부(216)의 카운팅 동작을 각각 설명하기 위한 타이밍도들이다.4A to 4J are timing diagrams of respective parts and switching signals of the apparatus shown in FIG. 3, FIG. 4A is a system clock, FIG. 4B is a program address output from the address generator 206, and FIG. 4C is a command. Program extraction of the storage unit 202, FIG. 4d is the program decryption of the data decryption unit 214, FIG. 4e is the program execution, 4f is the second control signal (S2), 4g is the address storage unit 204 Command storage, FIG. 4h is a third switching signal S3, FIG. 4i is a timing diagram for explaining the counting operation of the jump / call holding controller 216, respectively.

먼저, 제3도는 점프/호출 어드레스가 2단어로 되어 있을 경우, 점프/호출 명령 다음에 M 사이클이 소요되는 명령이 수행된 예를 보여주는 CPU의 제어장치를 나타낸다.First, FIG. 3 shows a control unit of the CPU showing an example in which an instruction requiring M cycles is performed after a jump / call instruction when the jump / call address has two words.

제3도에 도시된 제어 신호 발생부(216)는 N비트의 프로그램 데이타를 입력하여, 몇 사이클이 소요되는 명령인가를 판단하고, 명령이 다수개의 사이클을 요구하는 것인가 혹은 다수개의 단어(word)로 이루어진 것인가를 판단한다. 만일, 명령이 다수개의 사이클을 요구하거나 다수개의 단어들로 이루어져 있으면, 명령의 처리에 소요되는 사이클 수를 셋팅하고, 다수개의 사이클을 요구하는 그 명령을 수행하면서, 카운트 값을 감소시키고, 카운트 값이 '0'이 될 때, 제 3 제어신호를 발생한다. 즉, 프로그램 어드레스 n+1+M 후에 점프/호출 명령이 수행될 어드레스가 어드레스 저장부(204)로부터 어드레스 발생부(206)로 전송되도록 제어 신호 발생부(216)로부터 제 3 제어신호(S3)가 출력된다.The control signal generator 216 shown in FIG. 3 inputs N bits of program data to determine how many cycles an instruction requires, and whether the instruction requires multiple cycles or multiple words. Determine whether it is made of. If an instruction requires multiple cycles or consists of multiple words, set the number of cycles required to process the instruction, reduce the count value, perform the instruction requiring multiple cycles, and count values. When this becomes 0, a third control signal is generated. That is, the third control signal S3 from the control signal generator 216 so that the address to which the jump / call command is to be performed after the program address n + 1 + M is transmitted from the address storage unit 204 to the address generator 206. Is output.

또한, 점프/호출 홀딩제어부(216)는 제 1 제어신호(S1)를 발생하여, 명령 저장부(202)로부터 출력되는 프로그램 데이타가 데이타 해독부(214)로 출력되도록 한다. 이는 예를 들어, 제4b도에 도시된 프로그램 어드레스 n+2에 의해서 추출된 명령이 M 사이클이 소요되는 다수개의 사이클 또는 다수개의 워드로 구성된 명령이라면, 프로그램 어드레스 n+3 부터 프로그램 어드레스 n+1+M 까지의 프로그램 어드레스에 의해서 프로그램 메모리(100)에 내장되어 있는 명령이 추출되어 명령 저장부(202)로는 입력되지만 제 1 제어신호(S1)를 제어하여 프로그램 데이타가 데이타 해독부(214)로 진입하지 못하게 하기 위해서이다. 그러므로, 프로그램 어드레스 n+2 에 의해서 발생된 명령이 명령 저장부(202)에 홀딩된 상태로 있게 된다.In addition, the jump / call holding control unit 216 generates the first control signal S1 so that the program data output from the command storage unit 202 is output to the data decoding unit 214. This means that, for example, if the command extracted by the program address n + 2 shown in FIG. 4B is a command consisting of a plurality of cycles or words taking M cycles, the program address n + 3 to the program address n + 1. The command embedded in the program memory 100 is extracted by the program address up to + M and input to the command storage unit 202, but the program data is controlled by the data decoding unit 214 by controlling the first control signal S1. This is to prevent entry. Therefore, the instruction generated by the program address n + 2 is held in the instruction storage unit 202.

또한, 점프/호출 홀딩제어부(216)는 프로그램 어드레스 n 단계에서 점프/호출 명령을 발생하고, 점프/호출 명령에 의해서 점프할 어드레스값이 제 2 제어신호(S2)에 의해 어드레스 저장부(204)로 로딩된다.In addition, the jump / call holding controller 216 generates a jump / call command in step n of the program address, and the address storage unit 204 causes the address value to jump by the second control signal S2 to be jumped by the jump / call command. Is loaded.

프로그램 어드레스(n+1)에 의해서 페치된 명령이 M사이클이 소요되는 멀티 사이클 또는 멀티 워드라면, 프로그램 어드레스(n+3)으로부터 프로그램 어드레스(n+1+M)까지의 프로그램 어드레스에 의해서 프로그램 메모리에 내장되어 있는 명령이 페치되어 명령어 저장부(220)로부터 출력되지만 제어신호(S1)가 발생하지 않아 명령어 디코더(260)로 입력되지 않는다. 그러므로 프로그램 어드레스(n+2)에 의해서 벌생된 명령어 명령어 디코더(260)에 유지된 상태로 프로그램 어드레스에서(n+1+M)후의 사니클에서, 점프/호출이 수행될 어드레스가 명령어 디코더(260)에서 발생된 제어신호(S3)에 의해서 어드레스 저장부(204)로부터 어드레스 발생부(206)로 출력된다. 그리고, 새로운 프로그램 어드레스에 의해서 계속적으로 정상적인 동작을 수행하게 된다.If the instruction fetched by the program address (n + 1) is a multi-cycle or multi-word that takes M cycles, the program memory is stored by the program address from the program address (n + 3) to the program address (n + 1 + M). The built-in command is fetched and output from the command storage unit 220, but the control signal S1 is not generated and thus is not input to the command decoder 260. Therefore, in the sanicle after (n + 1 + M) at the program address maintained in the instruction instruction decoder 260 generated by the program address (n + 2), the address where the jump / call is to be performed is the instruction decoder 260. Is output from the address storage section 204 to the address generation section 206 by the control signal S3 generated in the " The new program address continuously performs normal operation.

상술한 바와 같이, 본 발명에 의한 CPU의 제어장치 및 그 제어 장치에서 수행되는 프로그램 실행 방법은 프로그램 실행중에 점프/호출 명령이 발생해도, 프로그램 처리동작을 중단하지 않고, 프로그램의 소요 사이클 수 또는 구성 단어수에 관계없이 처리중인 프로그램 명령을 실행해 줌으로서, 중앙 처리 장치가 동작을 멈추지 않도록 하여 그 처리 효율을 높이는 효과가 있다.As described above, the CPU control apparatus and the program execution method executed by the control apparatus according to the present invention do not interrupt the program processing operation even if a jump / call instruction occurs during program execution, and the required cycle number or configuration of the program. By executing the program command being processed irrespective of the number of words, there is an effect of increasing the processing efficiency by preventing the central processing unit from stopping the operation.

Claims (3)

시스템 프로그램을 저장하는 프로그램 메모리로부터 명령을 입력하여 파이프라인 방식으로 실행하는 파이프라인구조를 가진 중앙 처리 장치에 있어서, 상기 프로그램 메모리로부터 명령을 입력하여 저장하는 명령저장수단; 점프/호출 명령에 의한 점프/호출 어드레스를 저장하는 어드레스 저장수단 ; 상기 점프/호출 어드레스를 입력하여 상기 프로그램 메모리의 어드레스신호를 발생하는 어드레스 발생수단 ; 상기 명령저장수단으로부터 제공되는 명령을 해독하여 해독된 명령이 점프/호출 명령인 경우에는 다음에 페치된 명령의 실행 사이클수를 체크하고 체크된 실행 사이클수 만큼 점프/호출 명령의 실행을 홀딩하는 제 1 내지 제 3 제어신호들을 발생하는 명령해독수단 ; 상기 명령저장수단과 명령해독수단의 사이에 연결되고, 상기 제 1 제어신호에 응답하여 상기 페치된 명령의 실행동안 오프되는 제 1 스위칭수단 ; 상기 명령저장수단과 어드레스 저장수단의 사이에 연결되고, 상기 제 2 제어신호에 응답하여 상기 점프/호출 어드레스를 추출하는 제 2 스위칭수단 ; 및 상기 어드레스 저장수단과 어드레스 발생수단의 사이에 연결되고, 상기 제 3 제어신호에 응답하여 상기 페치된 명령의 실행 완료후에 온되는 제 1 스위칭수단을 구비하는 것을 특징으로 하는 파이프라인 구조를 가진 중앙처리장치.11. A central processing unit having a pipelined structure for inputting a command from a program memory for storing a system program to execute in a pipelined manner, comprising: command storage means for inputting and storing a command from the program memory; Address storage means for storing a jump / call address by a jump / call instruction; Address generating means for inputting the jump / call address to generate an address signal of the program memory; When the decoded instruction is a jump / call instruction, the instruction provided from the instruction storage means checks the execution cycle number of the next fetched instruction and holds the execution of the jump / call instruction by the checked execution cycle number. Command decoding means for generating first to third control signals; First switching means connected between the command storing means and the command decoding means, the first switching means being turned off during execution of the fetched command in response to the first control signal; Second switching means connected between the command storing means and the address storing means and extracting the jump / call address in response to the second control signal; And first switching means connected between the address storing means and the address generating means and turned on after completion of execution of the fetched command in response to the third control signal. Processing unit. 제 1 항에 있어서, 상기 명령 해독 수단은 상기 명령을 해독하여 대응하는 시스템 제어신호를 출력하는 데이타 해독 수단; 및 상기 데이타 해독수단의 시스템 제어신호에 응답하여 상기 제 1 내지 제 3 제어신호를 발생하는 점프/호출 홀딩제어수단을 구비하는 것을 특징으로 하는 파이프라인 구조를 가진 중앙처리장치.2. The apparatus of claim 1, wherein the command decrypting means comprises: data decrypting means for decrypting the command and outputting a corresponding system control signal; And jump / call holding control means for generating said first to third control signals in response to a system control signal of said data decryption means. 파이프라인 구조를 가진 중앙처리장치의 점프/호출 실행방법에 있어서, 페치된 명령의 해독에 의해 점프/호출 명령인가를 체크하는 단계; 상기 점프/호출 명령인 경우에는 점프/호출 어드레스를 저장하는 단계; 상기 점프/호출 명령의 다음에 페치된 명령을 해독하여 실행 사이클수를 체크하는 단계; 상기 체크된 실행사이클수 만큼 점프/호출명령의 실행을 홀딩시키고 해독된 명령을 실행하는 단계; 상기 명령의 실행이 완료되면 상기 저장된 점프/호출 어드레스를 독출하여 프로그램 메모리의 점프/호출할 어드레스를 지정하기 위한 어드레스신호를 발생하는 단계를 구비하는 것을 특징으로 하는 점프/호출 실행방법.CLAIMS 1. A jump / call execution method of a central processing unit having a pipeline structure, comprising: checking whether a jump / call command is obtained by decoding a fetched command; Storing a jump / call address in the case of the jump / call command; Decrypting the instruction fetched next to the jump / call instruction to check the number of execution cycles; Holding execution of a jump / call instruction by the checked execution cycle number and executing a decrypted instruction; And when the execution of the command is completed, reading the stored jump / call address and generating an address signal for designating an address to jump / call to a program memory.
KR1019960031319A 1996-07-29 1996-07-29 A processor with a pipeline architecture KR100200487B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960031319A KR100200487B1 (en) 1996-07-29 1996-07-29 A processor with a pipeline architecture

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960031319A KR100200487B1 (en) 1996-07-29 1996-07-29 A processor with a pipeline architecture

Publications (2)

Publication Number Publication Date
KR980010759A KR980010759A (en) 1998-04-30
KR100200487B1 true KR100200487B1 (en) 1999-06-15

Family

ID=19468009

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960031319A KR100200487B1 (en) 1996-07-29 1996-07-29 A processor with a pipeline architecture

Country Status (1)

Country Link
KR (1) KR100200487B1 (en)

Also Published As

Publication number Publication date
KR980010759A (en) 1998-04-30

Similar Documents

Publication Publication Date Title
KR100423910B1 (en) Method and apparatus for executing coprocessor instructions
JPH03204737A (en) Debug circuit of signal processing processor
KR100206887B1 (en) Cpu for debugging program
KR930001055B1 (en) Data processing apparatus for performing parallel decoding and pararrel execution of a variable word length instruction
JP2009526300A (en) Instruction set for microprocessors
KR100200487B1 (en) A processor with a pipeline architecture
KR920009999B1 (en) Information processing apparatus
JPH06295243A (en) Data processor
US6564316B1 (en) Method and apparatus for reducing code size by executing no operation instructions that are not explicitly included in code using programmable delay slots
KR920008142B1 (en) Microprogram processor
JPH08241296A (en) Semiconductor integrated circuit
EP0862112B1 (en) Data processing system having an instruction pipeline
JP2808757B2 (en) Microprocessor for debugging
KR100279511B1 (en) PI instruction high speed processing system
KR920006274B1 (en) Micro processor
JP3414579B2 (en) Programmable controller
JPH05298088A (en) Microcomputer
KR0167307B1 (en) Program branch control circuit
KR100468615B1 (en) Apparatus for protecting internal program
KR100261175B1 (en) Interrupt circuit
JP2007213415A (en) Memory device
JP4564025B2 (en) Interrupt processing method in information processing apparatus
JPH09319592A (en) Microcomputer
JPS6015969B2 (en) Microinstruction address generation method
JPH03164945A (en) Data processor

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

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee