KR880000817B1 - Data processing apparatus and method - Google Patents
Data processing apparatus and method Download PDFInfo
- Publication number
- KR880000817B1 KR880000817B1 KR1019810004378A KR810004378A KR880000817B1 KR 880000817 B1 KR880000817 B1 KR 880000817B1 KR 1019810004378 A KR1019810004378 A KR 1019810004378A KR 810004378 A KR810004378 A KR 810004378A KR 880000817 B1 KR880000817 B1 KR 880000817B1
- Authority
- KR
- South Korea
- Prior art keywords
- instruction
- command
- selection circuit
- register
- registers
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 42
- 238000000034 method Methods 0.000 title claims description 16
- 230000008569 process Effects 0.000 claims description 7
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 claims 1
- 238000006243 chemical reaction Methods 0.000 abstract description 5
- 238000006073 displacement reaction Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
Description
제1도는 대표적인 명령의 포매트를 나타낸 도면.1 shows a format of a representative command.
제2도는 본원 발명의 일실시예를 나타낸 블록도.2 is a block diagram showing an embodiment of the present invention.
제3도는 제2도의 신구명령전환회로의 상세 블록도.3 is a detailed block diagram of the old and new command switching circuit of FIG.
제4도는 본원 발명의 일실시예에 있어서의 마이크로 명령 플로챠트.4 is a micro-instruction flowchart in one embodiment of the present invention.
제5도는 본원 발명에 있어서의 명령 처리의 일례의 설명도.5 is an explanatory diagram of an example of command processing in the present invention.
본원 발명은 데이터처리장치에 있어서의 명령처리제어에 관한 것이다.The present invention relates to command processing control in a data processing apparatus.
명령처리의 고속화를 위해 실행이 예상되는 명령을 복수개미리기억장치에서 독해하여 명령레지스터에 격납해두는 기술이 사용되고 있다. 한편 명령의 실행은 어떤 명령의 실행의 끝나고나서 다음 명령의 실행을 하는 것이 소형의 계산기에는 일반적이다. 따라서, 명령처리의 속도의 향상은 여기서 끝나고 있었다. 대형의 계산기에서는 파이프라인제어라고 하는 명령의 각 처리스텝마다 다른 명령을 실행할 수 있는 하드웨어를 배설하고, 복수의 명령을 병행해서 실행하는 방식이 있지만, 제어가 복잡해져서 소형의 계산기에는 적당하지 못하다.In order to speed up the instruction processing, a technique of reading an instruction, which is expected to be executed, from a plurality of memory units and storing the instructions in an instruction register is used. On the other hand, it is common for a small calculator to execute a command after the execution of a command. Thus, the improvement of the speed of the instruction processing has ended here. In large calculators, there is a system in which hardware capable of executing different instructions is provided for each processing step of an instruction called pipeline control and a plurality of instructions are executed in parallel. However, the complexity of the control is not suitable for a small calculator.
본원 발명의 목적은 간단한 구성으로 명령의 처리속도를 향상시킨 데이터 처리장치의 제공에 있으며, 나아가서는 복수의 명령처리의 일부를 시간적으로 중첩시키는 것이다.SUMMARY OF THE INVENTION An object of the present invention is to provide a data processing apparatus which improves the processing speed of an instruction with a simple configuration, and furthermore, to overlap a part of a plurality of instruction processings in time.
본원 발명은 명령레지스터에 격납된 복수의 연속되는 명령을 마이크로명령의 지시에 의해서, 명령실행의 도중에 선택적으로 전환하여 사용함으로써, 명령 실행중에 생기는 마이크로프로그램 처리장치의 대기시간을 다른 명령의 실행에 충당시키는 것이다. 이에따라 명령의 처리속도를 향상시킨다.According to the present invention, a plurality of consecutive instructions stored in the instruction register are selectively switched and used during the instruction execution by the instruction of the micro instruction, thereby allocating the waiting time of the microprogram processing apparatus generated during the instruction execution to the execution of other instructions. It is to let. This improves the processing speed of the command.
데이터처리장치에 있어서, 일반적으로 명령을 실행하는 데는 다음과 같은 순서를 거친다. 즉 명령을 프로그램이 기억되어 있는 메모리에서 독해하는 오퍼렌드 어드레스(operand address)계산, 어드레스 변환 및/또는 버퍼스토리지(buffer storage) 색인, 오퍼랜드 독해, 연산, 격납데이터의 기억제어유니트에의 전송, 당해데이터의 메모리에의 기입의 스텝이다. 비교적 소형의 데이터처리기구에서는 명령의 독해에 대해서는 명령을 몇개 격납할 수 있는 인스트럭션버퍼에 다음에 처리되어야 할 명령(B)을 미리 독해하여 둔다고(그 후의 처리와 병행해서 독해함)하는 기술을 이용하고 있지만, 그후의 처리에 대해서는 어떤 명령에 대해서 모든 스텝의 처리가 끝나고 나서 다음 명령의 처리가 시작된다. 이것은 명령의 독해보다 나중의 처리를 행하는 하드웨어가 하나이며, 또한 상기 스텝의 각각에 대해서 독립해서 동작하는 것이 불가능하기 때문이다. 이와같은 하드웨어는 명형의 고속처리는 할 수 없지만, 파이프라인이라고 불리우는 처리를 행하는 하드웨어에 비하면 보다 간단하다고 하는 이점도 지니고 있다. 본원 발명은 이 이점을 상실하지 않음채, 상기의 오퍼렌드 어드레스의 계산을 앞서의 명령의 처리가 종료되기 전에, 그 처리시간에 일부 중첩시켜서 행한다.In the data processing apparatus, generally, the execution of a command is performed in the following order. In other words, the operation address calculation, address translation and / or buffer storage index, operand reading, operation, and transfer of the stored data to the memory control unit for reading the instruction from the memory in which the program is stored, This step is to write data into the memory. Relatively small data processing mechanisms use a technique that reads an instruction (B) to be processed next (in parallel with subsequent processing) in an instruction buffer that can store several instructions. In the subsequent processing, the processing of the next instruction is started after the processing of all the steps is completed for a certain instruction. This is because one piece of hardware performs processing later than reading an instruction, and it is impossible to operate independently of each of the above steps. Such hardware is not capable of high speed processing, but also has the advantage of being simpler than hardware that performs a process called a pipeline. The present invention does not lose this advantage, and the calculation of the above operand address is partially superimposed on the processing time before the processing of the preceding instruction is completed.
제1도는 본원 발명의 일실시예에서 사용하고 있는 명령의 포매트(format)의 일부이다. 여기서는 4바이트 길이의 로드(load)명령을 예로들어 설명한다. OP부는명령코드필드를 나타내며, R1부는 제1오퍼렌드필드가 격납되어 있는 범용(汎用)레지스터의 어드레스를 나타낸다. 본 실시예에서는 범용 레지스터는 16개로 한다. X2부는 지표가 격납되어 있는 범용레지스터의 어드레스, B2부는 기본어드레스가 격납되어 있는 범용레지스터의 어드레스를 각기 나타내며, D2는 변위(變位)라고 불리우는 B2, X2에 의해서 결정되는 기점(基點)으로부터의 어드레스의 거리를 나타낸 것이다.1 is a part of a format of an instruction used in an embodiment of the present invention. Here, a 4-byte load instruction will be described as an example. The OP portion represents the instruction code field, and the R1 portion represents the address of the general register in which the first operand field is stored. In this embodiment, 16 general-purpose registers are used. The X2 part represents the address of the general purpose register in which the indicator is stored, and the B2 part represents the address of the general purpose register in which the basic address is stored, and the D2 is from the base point determined by B2 and X2 called displacements. The distance of the address is shown.
OP부가 로드명령인 경우의 명령동작은 변위와 기본어드레스, 지표를 가산하여 주기억의 어드레스를 생성하고, 이 주기억의 내용을 R1부에서 지정된 범용레지스터로 옮긴다. 다음의 실시예에서는 로드명령을 연속해서 실행하는 경우에 대해 설명한다.When the OP unit is a load instruction, the instruction operation adds the displacement, the basic address, and the index to generate an address of the main memory, and transfers the contents of the main memory to the general register specified in the R1 unit. In the following embodiment, a case where the load instruction is executed continuously will be described.
제2도는 본원 발명의 일실시예인 오퍼랜드 어드레스연산회로의 블록도이다. 명령 레지스터(2)-(7)에는 주기억장치(MM)(1)에서 미리 꺼내서 독해된 명령이 격납되며, 그 출력과, 구명령 포인터(14) 신명령 포인트(15), 마이크로 명령선(19)의 출력이 신구명령 전환 회로(16)에 접속되며, 이 회로에서 범용레지스터 어드레스선(21), 명령코드선(22) 명령길이선(23)에 각기 신호를 작성한다. 마이크로 명령선(19)은 마이크로 명령이 격납되는 마이크로 명령 레지스터의 출력이며, 명령레지스터(2)-(7)에 격납되어 있는 신구명령중 어느쪽의 명령처리를 행하는가를 지정하는 정보와, 그 명령중의 어느 레지스터지정을 선택하는가의 정보를 포함한다. 또한 마이크로명령선(20)은 연산기(13)에 대한 연산정보를 포함한다. 명령코드선(22)은 마이크로명령선(20)과 함께 연산코드변환회로(17)에 입력되어 연산기(13)의 연산코드를 만든다. 포인터갱신회로(18)는 는 구명령포인터(14), 신명령포인터(15), 명령길이선(23)을 입력으로하고, 각 포인터의 갱신치를 작성한다. 제2도 회로의 동작은 마이크로프로그램을 실행함으로써 제어된다. 마이크로명령을 데코드(decode)해서 얻어진 제어신호가 각 마이크로명령선에 주어진다.2 is a block diagram of an operand address operation circuit as an embodiment of the present invention. Instruction registers (2) to (7) contain instructions read in advance from the main memory (MM) 1, the output thereof,
구명령포인터(14)와 신명령포인터(15)는 명령레지스터(2)-(7)에 격납되어 있는 2개의 명령중 어느 한쪽의 선두위치를 나타내는 포인터이다. 구명령포인터(14)는 연속되는 2개의 명령중 먼저 실행되는 명령의 선두를 격납하고 있는 명령레지스터의 번호(0-5)를나타내며, 신명령포인터(15)는 나중에 실행되는명령의 선두를 격납하고 있는 명령레지스터의 번호를 나타내고 있다. 본원 발명에서는 연속되는 2개의 명령을 병행해서 실행하기 위하여, 상기와 같이 2개의 포인터를 설정한다. 1명령의 길이(바이트수)가 일정하지 않기 때문에 이와 같은 제어가 필요해진다.The
포인터갱신회로(18)는 기본적으로는 명령길이(바이트수)에 따라서 그 바이트수를 포인터의 값에 가산하는 것이다. 이 제어는 단순하며, 주지이기 때문에 여기서는 설명을 생략한다. 포인터갱신회로(18)는 새로운 명령의 처리에 들어갈때 신명령포인터(15)의 값을 구명령포인터(14)에 설정하고, 신병령포인터(15)의 값에 새로운 명령의 길이를 나타내는 명령길이선(23)에 의해서 부여되는 바이트수만큼 가산하므로써, 각각의 명령포인터의 값이갱신된다.The pointer update circuit 18 basically adds the number of bytes to the value of the pointer in accordance with the instruction length (number of bytes). This control is simple and well-known, and description is omitted here. The pointer update circuit 18 sets the value of the
명령레지스터(2)-(7)은 각기 2바이트길이의 레지스터이며, 주기억장치(MM)(1)에서 독해된 명령은 명령레지스터(2)로부터 순차적으로 격납되고, 레지스터(7)까지 격납되었을때 다시 명령레지스터(2)에 격납된다. 명령의 길이는 가변길이이며, 2바이트, 4바이트 또는 6바이트이고, 명령레지스터에는 2개의 연속된 명령이 격납된다.The instruction registers (2) to (7) are registers each having a 2-byte length, and instructions read from the main memory (MM) 1 are stored sequentially from the instruction register 2 and stored to the
본원 발명에서는 연속하는 2개의 명령의 처리가 병행해서 행해지므로 포인터는 상술한 바와 같이 두개 설치된다. 포인터(14)는 2개의 명령중 보다 오랜쪽의 명령이 격납되어 있는 레지스터를 가리키며, 포인터(15)는 보다 새로운쪽의 명령이 격납되어 있는 레지스터를 가리킨다.In the present invention, since two consecutive instructions are processed in parallel, two pointers are provided as described above. The
신구명령전환회로(16)는 마이크로명령선(19)를 통해서 부여되는 신구명령의 어느쪽명령의 처리를 행하는가의 지정에 따라서, 신구명령포인터(14)(15)중의 한쪽을 선택하고, 또 선택한 명령포인터의 값에서 명령레지스터(2)-(7)중 실행해야 할 명령어가 격납되어 있는 위치를 얻는다. 선택한 명령어와 레지스터지정의 선택정보에 의해서, 범용레지스터어드레스선(21), 명령코드선(22), 및 명령길이선(23)에 각기 범용레지스터지정, 명령코드 및 신명령의 길이에 대한 신호를 보낸다. 그 후의 처리는 마이크로프로그램제어장치(40)에서 표시되는 범용의 하드웨어를 사용하여 명령의 종류에 따라서 선택되는 마이크로프로그램의 실행에 의해서 수행된다.The new and old command switching circuit 16 selects one of the old and
제3도에 본원 발명에 의한 신구명령전환회로(16)의 상세한 것을 나타낸다. 선택회로(24), (25)는 명령레지스터(2)-(7)로 부터 각기 구명령포인터(14), 신명령포인터(15)의 내용에 따라 지정된 명령을 명령레지스터(2)-(7)에서 선택된다. 예를 들면 4바이트명령의 경우 선택회로(24)는 구명령포인터(14)의 내용이 "0"일때 명령레지스터(2), (3)의 4바이트, 구명령포인터(14)의 내용이 "3"일때 명령레지스터(5), (6)의 4바이트를 선택하여 출력한다. 선택회로(25)도 동일하다. 선택회로(26), (27)은 마이크로명령선(19)의 지정에 의해 선택회로(24), (25)에서 선택한 각각의 명령에 의해서 지정된는 R1부, R2부, X2부의 어느 범용레지스터어드레스를 선택한다. 선택회로(28)은 마이크로명령선(19)의 지정에 의해 선택회로(26), (27)로 선택된 선택 회로(29)는 2개의 명령의 명령코드부가 주어지며, 마이크로 명령선(19)의 지시에 의해 신명령측 또는 구명령측의 명령코드부 또는 변위(D2)를 선택한다.3 shows the details of the new and old command switching circuit 16 according to the present invention. The
명령길이작성회로(32)는 보다 새로운쪽의 명령의 명령길이를 나타낸는 신호를 만든다. 이 회로(32)는 종래부터 존재하는 것이지만 상세히 설명하면, 명령의 길이는 명령의 형식에 의한다. 그리고 통상 명령의 형식은 명령의 명령코드부의 2비트에 의해서 표시된다. 따라서 명령길이작성회로(32)는 상기 2비트를 받아, 데코드하고, 2바이트길이명령이면 1, 4바이트길이명령이면 2라고 하는 수치를 발생한다. 비교기(30)는 각각의 명령의 특정부분을 비교하여 일치했을때 분기조건으로서 사용되는 신호(31)를 발생한다. 이 신호(31)는 마이크로프로그램제어 장치(40)에 보낸다.The instruction
다음에 제3도의, 신규의 명령전환회로(16)를 포함한 처리시스템을 사용하여 오퍼랜드어드레스계산을 하는 것으로서 마이크로프로그램 제어 장치(40)에 격납되어 실행되는 마이크로프로그램의 플로를 제4도에 나타낸다.Next, FIG. 4 shows the flow of the microprogram stored and executed in the
제4도에 의거하여 본 실시예의 동작을 설명한다.The operation of this embodiment will be described based on FIG.
(a) 스텝 1(a)
이 마이크로명령은 명령페치(fetch)를 지시한다. 명령페치는 명령카운터(도시생략)로 지정된 주기억장치(1)의 내용을 4바이트 독해하고, 명령레지스터(2)-(7)에 격납한다. 페널(Panel)조작 등에 의한 명령의 개시시에 명려카운터가 주기억장치(1)의 어드레스의 4바이트경계에 있을 경우는, 독해된 명령을 선두의 명령레지스터(2)에 격납하고 신명령포인터(15)에 "0"를 넣는다. 그리고 주기억장치(1)는 4바이트경계 밖에 읽을 수 없기 때문에, 명령카운터가 4바이트경계의 중간의 2바이트 경계에 있을 경우는 주기억장치를 2회 독해하며, 1회째는 명령레지스터(2)와 (3), 2회째는 명령레지스터(4)와 (5)에 독해된 데이터를 격납하지만, 명령레지스터(2)에는 불필요한 값이 격납되기 때문에 신명령포인터(15)에는 "1"을 넣어 래지스터(3)에서 신명령이 시작되는 것을 나타낸다. 다음의 설명에서는 명령카운터가 4바이트경계에서 시작되는 경우에 대해서 설명한다.This microinstruction dictates an instruction fetch. The instruction fetch reads four bytes of the contents of the
(b) 스텝 2(b) step 2
명령페치의 완료를 기다리기 위한 마이크로명령이며, 아무런 동작도 하지 않는다.Micro instruction to wait for instruction fetch to complete. No action.
(c) 스텝 3(c)
독해된 명령을 해독하는 마이크로명령이며, 신명령포인터(15)에서 나타내고 있는 명령레지스터의 명령코드에 따라서, 마이크로명령이 다중(多重)분기한다. 제4도는 로드명령에 대해서 표시해 놓았다.It is a micro instruction that decodes the read instruction, and the micro instruction diverges according to the instruction code of the instruction register indicated by the
제3도에 있어서 명령포인터(15)에 의해서 선택회로(25)에서 레지스터(2)와 (3)이 선택된다. 그리고 마이크로명령의 지시에 의해 선택회로(29)는 선택회로(25)의 명령코드부를 선택해서 출력한다. 출력된 명령코드(22)는 마이크로프로그램제어장치(40)에 주어진다. 마이크로프로그램제어장치(40)는 명령코드(22)을 데코드하고, 그 명령을 실행하는 마이크로 프로그램루틴(routine)의 선두어드레스를 만들고 거기에 제어가 옮겨진다. 로드명령일 때는 스텝 4이후의 루틴으로 다른 명령, 예를 들면 가산명령이면 다른 루틴으로 제어가 옮겨진다. 마이크로프로그램제어장치(40)의 상기 동작은 가장 기본적인 것으로 잘 알려져 있다.In Fig. 3, the
한편, 같은 명령코드(22)는 연산코드변환회로(17)에 주어진다. 여기서는 명령코드는 데코드하여 그 명령에 따른 동작을 연산기(13)에 지시하는 신호를 만든다.On the other hand, the
(d) 스텝 4(d)
이 스텝은 지표와 변위를 가산하고, 워크레지스터(11)에 격납하는 동시에 다음의 명령페치를 행한다.This step adds the index and the displacement, stores it in the work register 11 and performs the next instruction fetch.
먼저, 신명령포인터(15)의 내용은 스텝 1에 의해 "0"이 격납되어 있으므로, 선택회로(25)는 현재의 명령으로서, 명령레지스터(2)와 (3)을 선택하고 있다. 선택회로(27)는 본 마이크로명령이 X2부를 사용한다고(X2를 오퍼랜드어드레스 계산의 요소로서 가지고 있음)하는 것에서 마이크로명령의 지시에 의해 명령레지스터터(2)의 하위 4비트(제1도 명령포매트 X2)를 선택해 낸다. 선택회로(28)는 본 마이크로명령이 신명령지정이기 때문에선택회로(27)의 출력을 선택한다. 이와 같이 해서 범용 레지스터 어드레스선(21)에는 스텝1에서 독해된 명령의 X2부의 값이 출력된다. 동시에 선택회로(29)는 본 마이크로명령이 현재의 명령의 변위를 사용하기 때문에, 선택횔(25)의 출력을 선택한다. 현명령코드선(22)을 통해서 선택회로(29)에서 출력되는 변위에 해당하는 하위 12비트를 연산기(13)의 입력으로 한다.First, since the contents of the
이와같이 해서 범용레지스터어드레스선(21)에 의해 지정된 번용레지스터(12)의 출력과 변위를 연산기(13)로 가산하고, 결과를 워크레지스터(11)에 격납한다.In this way, the output and displacement of the utility register 12 designated by the general-purpose
이 스텝에서는 동일한 마이크로명령의 제어에 의해서, 현재의 명령에 대해서 X2+D2→워크레지스터(11)의 처리를 행하는 동시에, 다음 명령의 페치를 개시한다.In this step, under the control of the same microinstruction, the processing of the X2 + D2? Work register 11 is performed for the current instruction, and the fetch of the next instruction is started.
(e) 스텝 5(e)
이 스텝은 스텝2에서 페치된 명령의 다음 명령의 명령페치 완료를 기다리기 위한 것으로 아무런 동작도 하지 않는다.This step is to wait for instruction fetch completion of the next instruction of the instruction fetched in step 2, and does nothing.
(f) 스텝 6(f) step 6
이 스텝은 스텝 4에서 설정한 워크레지스터(11)와 기본 어드레스를 가산하고, 어드레스레지스터(10)에 설정하는 동시에 오퍼렌드페치를 행하고, 결과를 리드데이터레지스터(8)에 격납한다. 기본어드레스를 구하는 방법은 스텝 4의 지표를 구하는 방법과 대략같지만, 선택회로(27)가 명령레지스터(3)의 상위 4비트를 선택하고 있는 점만 다르다.This step adds the work register 11 and the basic address set in
(g) 스텝 7(g)
이 스텝에서는 신명령포인터(15)의 값을 구명령포인터(14)에 설정하는 동시에 스텝 5에서 독해된 명령의 선두를 나타내는 값을 신명령포인터에 설정한 다음 스텝 3과 동작을 한다. 신명령포인터에 설정하는 새로 독해된 명령의 선두를 나타내는 값은 다음과 같이 구한다.In this step, the value of the
신명령포인터를 갱신하기 직전의 선택회로(25)의 출력은 스텝 1에서 독해된 명령을 선택하고 있고, 이 명령코드에서 명령길이작성회로(32)에 의해 명령길이를 구하고, 이것에 신명령포인터(15)를 가산함으로써 구해진다. 그리고 명령레지스터는 본 실시예에서는 6개이기 때문에 가산 결과, "6"을 넘었을 경우에는 "6"을 감한다. 스텝 3에서 독해된 명령이 제1도에 나타낸 로드명령의 경우, 신명령포인터(15)는 "2", 구명령포인터(14) "0"으로 된다.The output of the
(h) 스텝 8(h)
이 스텝에서는 스텝 4에서 오퍼랜드어드레스를 계산한 명령의 다음 명령에 대해서 역시 지표와 변위를 가산하고, 다시 다음의 명령페치를 행한다.In this step, the index and the displacement are also added to the next instruction of the instruction whose operand address is calculated in
스텝 4와 다른 것은 현재의 명령의 지표가 직전의 명령의 제1오퍼랜드와 같은 지 여부의 판정을 하고 있는 점이다. 같은 경우에는 직전의 명령의 제1오퍼랜드를 설정한 다음, 현재의 명령의 지표를 구하지 않으면 안된다.The difference from
* 표는 구명령계를 지정하는 의미이다.* Table designates old command system.
구명령포인터(14)에 의해서 구명령이 선택회로(24)에서 선택되어서 선택회로(26)에 주어진다. 이것은 제2오포랜드 계산후의 명령실행을 위해 사용된다.The
이 마이크로명령에서는 선택회로(26)에서 구명령의 R1부, 즉 명령레지스터(2)의 9비트째에서 12비트째까지를 선택하고, 선택회로(27)에서는 현명령의 X2부, 즉 명령레지스터(4)의 하위 4비트를 선택하고, 양자를 비교함으로써 분기조건(31)을 작성한다.In this micro instruction, the
이 스텝에서는 동일한 마이크로명령의 제어에 의해서, 신명령의 X2가 구명령의 R1과 같은지 여부의 판정을 행하는 동시에 신명령에 대하여 X2+D2→워크레지스터(11)의 처리를 행하고, 또한 동시에 다음의 명령의 페치를 개시한다.In this step, under the control of the same microinstruction, it is determined whether X2 of the new instruction is equal to R1 of the old instruction, and at the same time, the process of X2 + D2-> work register 11 is performed for the new instruction. Start fetching instructions.
(i) 스템 9(i) stem 9
이 스텝에서는 구명령의 제1오퍼팬드를 연산하는 것으로, 구명령포인터(14)로 표시되는 범용레지스터(12)중에 있는 제1호퍼랜드와, 스텝 6에서 독해된 메모리리드데이터레지스터(8)를 구명령포인터(14)로 표시되는 명령코드에 따라서 연산한다. 구명령의 R1부는 스텝 8과 마찬가지로 선택회로(26)에서 선택하고, 선택회로(28)는 이 마이크로명령의 구명령지정의 연산을 위해 선택회로(26)의 출력을 선택함으로써 범용레지스터어드레스선(21)에 출력된다. 연산기(13)의 연산지정은 선택회로(29)가 구명령측, 즉 선택회로(24)의 출력을 선택함으로써 명령코드선(22)에는 구명령의 명령코드가 출력되기 때문에, 이 값을 근거로 연산 코드 변환회로(17)로 연산기(13)용의 코드로 변환하고, 연산기(13)를 동작시킨다. 명령이 로드명령의 경우에는 연산기(13)는 데이터레지스터(8)의 소통(素痛)이 된다.In this step, the first operand of the old instruction is calculated, and the first hopper land in the general-purpose register 12 indicated by the
(j) 스텝 10(j)
이 스텝은 신명령에 대하여 스텝과 6과 같은 동작을 행하고, 다시 인터럽트(interrupt)조건을 판정한다. 구명령의 실행은 이미 스텝 9까지에서 종료되고 있으나, 명령포인터는 아직 갱신되어 있지 않다. 스텝 8에서 개시한 신명령의 다음 명령의 페치는 계속되고 있다.This step performs the same operations as the step 6 with respect to the new command, and again determines an interrupt condition. Execution of the old command has already been completed until
(k) 스텝 11, 스텝 12(k) Step 11, Step 12
이들 스텝은 스텝 8의 설명에서 기술한 지표와 직전의 명령의 제1오퍼랜드가 같은 경우의 보정처리이다.These steps are correction processing when the index described in the description of
보정은 제4도스텝 8의 X2로 표시되는 레지스터가 직전의 명령에서 결과격납용으로서 사용되고 있던 경우는, 이 결과가 세트된 후에 다음 명령의 처리를 위해서 사용되지 않으면 안된다는 이유에 의해 행해진다. 제4도의 처리는 통상은 스텝 8에서 사용되는 X2의 값의 설정은 스텝 9에서 설정하고 있지만, X2=R1*(직전의 명령결과를 설정하는 레지스터변호)일때에는 스텝 11에서 연산을 하여 결과를 R1*에 설정하여, 스텝 12에서 스탭 8에 해당하는 처리를 한다. 그후 스텝 10으로 돌아간다. 그리고 명령이 연속할때 스텝 7로 되돌아가서 스텝 10까지의 처리가 반복된다.Correction is performed for the reason that if the register indicated by X2 in the
제5도는 본원 발명에 있어서의 명령의 처리를 나타낸다. 왼쪽란의 번호는 제4의스텝번호이다. 명령이 연속해서 실행되고 있을때의 어떤 연속된세개의 로드명령의 처리를 예로든 도면이다. 스텝 8, 스텝 10이 모두 각기 인스트럭션페치, 오퍼렌드페치라고 하는 주기억장치에 액세스하는 동작을 수반하고, 이들 동작은 마이크로프로그램의 실행속도에 비해 늦으므로, 어떤 하나의 명령의 실행에 대해서는 2스텝 기다리지 않으면 안된다. 이 동안에 마이크로프로그램에서 실행되는 명령을 전환해서 다른 명령을 실행하도록 제어한다. 예를 들명 제5도에서 어떤 명령이 스텝 10에서 오퍼랜드페치를 행하는 동안, 다음 명령의 명령데코드를 스텝 7에서, X2+D2의, 연산을 스텝 8에서 행하고, 다음에 원래의 명령의 처리로 되돌아온다.5 shows processing of an instruction in the present invention. The number in the left column is the fourth step number. The figure shows an example of processing three consecutive load instructions when the instructions are executed continuously. Since
이상과 같이 본원 발명에 의하면 각각의 명령의 빈 시간을 이용하여 다른 명령을 실행하므로, 명령실행을 위한 하드웨어의 다중화, 그리고 파이프라인제어에 있어서와 같이 처리스텝마다 유니트화하는 것을 필요로 하지 않고, 간단한 구성으로 명령의 처리속도를 향상시킬 수 있다.As described above, according to the present invention, since different instructions are executed using the free time of each instruction, it is not necessary to unitize each processing step as in the multiplexing of hardware for instruction execution and pipeline control. Simple configuration can improve the processing speed of instructions.
Claims (5)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP169609 | 1980-12-03 | ||
JP55169609A JPS5794853A (en) | 1980-12-03 | 1980-12-03 | Data processor |
Publications (2)
Publication Number | Publication Date |
---|---|
KR830008243A KR830008243A (en) | 1983-11-16 |
KR880000817B1 true KR880000817B1 (en) | 1988-05-11 |
Family
ID=15889665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019810004378A KR880000817B1 (en) | 1980-12-03 | 1981-11-13 | Data processing apparatus and method |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPS5794853A (en) |
KR (1) | KR880000817B1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4613935A (en) * | 1983-02-02 | 1986-09-23 | Couleur John F | Method and apparatus for pipe line processing with a single arithmetic logic unit |
JPS59160239A (en) * | 1983-03-02 | 1984-09-10 | Hitachi Ltd | Information processing device |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS547541B2 (en) * | 1973-12-29 | 1979-04-07 | ||
JPS5145946A (en) * | 1974-10-17 | 1976-04-19 | Fujitsu Ltd | DEETASHORISHI SUTEMU |
JPS5230351A (en) * | 1975-09-04 | 1977-03-08 | Nippon Telegr & Teleph Corp <Ntt> | Data processing unit |
GB1527289A (en) * | 1976-08-17 | 1978-10-04 | Int Computers Ltd | Data processing systems |
-
1980
- 1980-12-03 JP JP55169609A patent/JPS5794853A/en active Pending
-
1981
- 1981-11-13 KR KR1019810004378A patent/KR880000817B1/en active
Also Published As
Publication number | Publication date |
---|---|
KR830008243A (en) | 1983-11-16 |
JPS5794853A (en) | 1982-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4616313A (en) | High speed address calculation circuit for a pipeline-control-system data-processor | |
US5168571A (en) | System for aligning bytes of variable multi-bytes length operand based on alu byte length and a number of unprocessed byte data | |
US3990054A (en) | Microprogram organization techniques | |
US4954943A (en) | Data processing system | |
US4539635A (en) | Pipelined digital processor arranged for conditional operation | |
JP2002328804A (en) | Data processor, instruction set switching method, data processing architecture and data processor operating method | |
EP0286354A2 (en) | A method and apparatus for modifying micro-instructions using a macro-instruction pipeline | |
JPS6029126B2 (en) | data processing equipment | |
US4054945A (en) | Electronic computer capable of searching a queue in response to a single instruction | |
JPH0812598B2 (en) | Microprogram processor controller | |
JPS5847053B2 (en) | data processing equipment | |
US5390306A (en) | Pipeline processing system and microprocessor using the system | |
US4598358A (en) | Pipelined digital signal processor using a common data and control bus | |
KR920005227B1 (en) | Programmable controller | |
JPH03233630A (en) | Information processor | |
KR880000817B1 (en) | Data processing apparatus and method | |
EP0162928B1 (en) | Microprogram control method | |
JPH0363092B2 (en) | ||
CA1155231A (en) | Pipelined digital processor arranged for conditional operation | |
US5463747A (en) | Microprogram data processor processing operand address calculation and instruction execution with common hardware | |
JP2772100B2 (en) | Parallel instruction fetch mechanism | |
KR950006585B1 (en) | Micro program control apparatus and control method thereof | |
JPS6226485B2 (en) | ||
JP2583614B2 (en) | Vector arithmetic unit | |
JPS6152748A (en) | Trace selection system of microprogram development device |