KR20010011683A - Central Processing Unit - Google Patents

Central Processing Unit Download PDF

Info

Publication number
KR20010011683A
KR20010011683A KR1019990031162A KR19990031162A KR20010011683A KR 20010011683 A KR20010011683 A KR 20010011683A KR 1019990031162 A KR1019990031162 A KR 1019990031162A KR 19990031162 A KR19990031162 A KR 19990031162A KR 20010011683 A KR20010011683 A KR 20010011683A
Authority
KR
South Korea
Prior art keywords
data
unit
central processing
latch
controller
Prior art date
Application number
KR1019990031162A
Other languages
Korean (ko)
Inventor
이재수
Original Assignee
김종수
엘지이노텍 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 김종수, 엘지이노텍 주식회사 filed Critical 김종수
Priority to KR1019990031162A priority Critical patent/KR20010011683A/en
Publication of KR20010011683A publication Critical patent/KR20010011683A/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/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions

Abstract

PURPOSE: A central processing unit(CPU) is provided to enable a real time multiple operation process by using a PLD(Programmable Logic Device) design method so that it can enhance a process speed and reduce a manufacturing cost. CONSTITUTION: A central processing unit comprises latches(110,112,114), a TRI buffer(130), operation devices(120,122,124,126), and a controller(140). The latches(110,112,114), temporarily storing input data signals, are parallel connected to the data input lines(L1,L2,L3), and specially the latches(110,112) are connected to input ends of the operation devices(120,122,124,126). The operation devices(120,122,124,126), performing an addition, a subtraction, a multiplication and a division operation, are parallel connected by lines(L7,L8,L9,L10). Output lines(L19,L20,L21,L22) of the operation devices(120,122,124,126) are connected to the TRI buffer(130) for controlling the output signals, and an output line of the TRI buffer(130) is connected to input lines of the latches(110,112,114). The controller(140), connected to the latches, the TRI buffer and the operation devices via lines, controls the overall operation by operation codes read from a ROM.

Description

중앙연산처리장치{Central Processing Unit}Central Processing Unit

본 발명은 컴퓨터의 중앙연산처리장치에 관한 것으로, 더욱 상세하게는 동작속도를 보다 빠르게 처리할 수 있는 중앙연산처리장치에 관한 것이다.The present invention relates to a central processing unit of a computer, and more particularly, to a central processing unit capable of processing a faster operation speed.

현대의 최신산업 중의 하나가 컴퓨터 산업이며, 상기 컴퓨터는 학교, 병원, 회사 등 뿐아니라 일반 가정에서도 사용되고 있을 정도로 많이 이용되고 있다. 이러한 컴퓨터는, 간단한 연산에서부터 다양한 업무처리까지 수행 가능하며, 이러한 동작의 처리는 컴퓨터 기능의 핵심이라고 할 수 있는 중앙연산터리장치의 능력에 기초한다고 할 수 있다.One of the latest modern industries is the computer industry, and the computer is used so much that it is used not only in schools, hospitals, companies, etc. but also in homes. Such a computer can perform a variety of tasks from simple operations, and the processing of these operations can be said to be based on the capability of the central computing device, which is the core of the computer function.

상기 중앙연산처리장치는 입출력 기기를 제어하여 데이터를 입력하고, 상기 입력한 데이터를 연산처리한 후, 연산결과를 출력할 수 있는 장치이다.The central processing unit is a device capable of controlling input and output devices to input data, processing the input data, and then outputting a calculation result.

다음은 첨부한 도면을 참조해서 종래 중앙연산처리장치의 동작에 대해서 살펴본다.Next, with reference to the accompanying drawings looks at the operation of the conventional central processing unit.

도 1은 종래 모토로라사의 중앙연산처리장치 68000이 도시되어 있다.1 illustrates a conventional central processing unit 68000 of Motorola.

중앙연산처리장치 68000은 메모리(도시하지 않음)의 출력버스인 버스(B1)에 의해서 32비트인 데이터 레지스터(10) 8개가 연결되어 있다. 상기 데이터 레지스터(10)는 또한 버스(B2)를 통해서 32비트의 어드레스 레지스터(20) 8개와 연결되어 있다. 그리고 어드레스 레지스터(20)는 버스(B3)에 의해 외부의 메모리인 램(도시하지 않음)과 연결되어 있다.The central processing unit 68000 is connected to eight 32-bit data registers 10 by a bus B1, which is an output bus of a memory (not shown). The data register 10 is also connected to eight 32-bit address registers 20 via bus B2. The address register 20 is connected to a RAM (not shown) which is an external memory by the bus B3.

상기 버스(B2)는 버스(B4)와 연결되어 제어부(50)의 제 1입력단과 연결된다. 그리고, 산술연산이 가능한 산술연산논리부(40)의 제 1 입력단과 제 2 입력단은 버스(B6)와 버스(B7)로 연결된다. 또 상기 산술연산논리부(40)의 출력단은 버스(B8)과 연결된다.The bus B2 is connected to the bus B4 and connected to the first input terminal of the controller 50. The first input terminal and the second input terminal of the arithmetic operation logic unit 40 capable of arithmetic operation are connected by a bus B6 and a bus B7. In addition, the output terminal of the arithmetic operation logic unit 40 is connected to the bus (B8).

그리고, 버스(4)는 버스(B5)에 의해서 상태레지스터(30)와 연결된다. 따라서 제어부(50)는 버스(B2 내지 B8)들에 의해 모든 내부장치와 연결되어 있으며, 상기 모든 내부장치는 제어부(50)의 제어를 받도록 하고 있다.The bus 4 is connected to the state register 30 by the bus B5. Therefore, the controller 50 is connected to all internal devices by the buses B2 to B8, and all of the internal devices are controlled by the controller 50.

상기 구성으로 이루어진 종래의 중앙연산처리 68000의 동작을 상세히 설명한다.The operation of the conventional central operation processing 68000 having the above configuration will be described in detail.

중앙연산처리장치는 크게 하드웨어와 소프트웨어로 나누어진다. 하드웨어는 중앙연산처리장치 그 자체이고, 소프트웨어는 하드웨어를 구동하기 위해서 상기 하드웨어 내에 프로그램 된 것을 말한다. 따라서 하드웨어가 구동되기 위해서, 먼저 소프트웨어로 프로그램된 언어는 코드화된 기계어로 변환되어서 롬에 저장되고, 상기 롬에 저장된 내용에 따라서 하드웨어가 동작된다.The central processing unit is largely divided into hardware and software. The hardware is the central processing unit itself, and the software is what is programmed into the hardware to run the hardware. Therefore, in order for the hardware to be driven, a language programmed with software is first converted into a coded machine language and stored in a ROM, and the hardware is operated according to the contents stored in the ROM.

상기 중앙연산처리장치의 제어부(50)는 모든 동작에 앞서 먼저 리셋신호를 입력받는다. 제어부(50)는 입력된 리셋신호에 의해서 자체 내 구비된 프로그램카운터를 0으로 초기화시킨후, 상기 프로그램카운터의 값을 어드레스 레지스터(20)로 전송한다. 그 후, 프로그램카운터는 하나씩 증가되어 상기 어드레스 레지스터(20)의 다음 주소를 지시하고, 상기 어드레스 레지스터(20)의 지시된 주소에 상기 데이터 레지스터(10)의 데이터 번지가 저장된다.The controller 50 of the central processing unit receives a reset signal prior to all operations. The controller 50 initializes the program counter included in the self to 0 by the input reset signal, and then transmits the value of the program counter to the address register 20. Thereafter, the program counter is incremented by one to indicate the next address of the address register 20, and the data address of the data register 10 is stored at the indicated address of the address register 20.

이후, 제어부(50)는 상기 어드레스 레지스터(20)에서 상기 데이터 레지스터(10)의 주소를 읽어오고, 상기 읽어온 데이터 레지스터(10)의 주소 상에 저장된 데이터를 산술연산논리부(40)로 전송해서 데이터의 연산을 수행하도록 제어한다. 상기 연산된 데이터 값은 어드레스 레지스터(20)에서 지정하는 램의 번지에 저장된다.Thereafter, the controller 50 reads the address of the data register 10 from the address register 20, and transmits data stored on the address of the read data register 10 to the arithmetic operation logic unit 40. Control to perform data operation. The calculated data value is stored in the address of RAM designated by the address register 20.

다음은 A+B의 연산과정을 통해서 중앙연산처리장치의 동작에 대해서 살펴본다.The following describes the operation of the central processing unit through the A + B calculation process.

하드웨어가 구동되기 위해서는 하드웨어의 구동을 위하여 기계어로 코드화된 프로그램이 필요하다. 따라서 중앙연산처리장치에서 A+B의 연산이 수행되기 위해서는, 현재 입력되는 데이터를 어떻게 연산하라는 지시가 필요하다. 종래의 경우는 이러한 명령을 롬에 프로그램하여 저장하고 있다. 따라서 제어부(50)는 A+B의 더하기 연산을 수행하고자 할때, 모든 동작의 실행에 앞서서 상기 롬에 저장된 더하기 연산이라는 약정 코드를 읽은 후, 더하기 연산작업을 수행한다.In order to run the hardware, a program coded in machine language is required to operate the hardware. Therefore, in order for the A + B operation to be performed in the central processing unit, an instruction for how to calculate the data currently input is required. In the conventional case, such a command is stored in a ROM. Therefore, when the controller 50 intends to perform the addition operation of A + B, the controller 50 reads the contract code of the addition operation stored in the ROM before executing all operations, and then performs the addition operation.

이후, 상기 제어부(50)는 프로그램카운터를 0으로 초기화시킨후, 더하기 연산을 수행한다. 상기 프로그램카운터의 초기값은 상기 어드레스 레지스터(20)의 첫번째 번지를 가르킨다.Thereafter, the controller 50 initializes the program counter to 0 and then performs an addition operation. The initial value of the program counter indicates the first address of the address register 20.

이때, 데이터버스(B1)를 통해서 입력되는 데이터(A)는 데이터 레지스터(20)에 저장되고, 상기 데이터(A)가 저장된 데이터 레지스터(20)의 번지는 상기 어드레스 레지스터(20)의 첫번째 번지(A0)에 저장된다.In this case, the data A input through the data bus B1 is stored in the data register 20, and the address of the data register 20 in which the data A is stored is the first address of the address register 20 ( Stored in A0).

다음, 데이터버스(B1)을 통해서 입력되는 데이터(+)는 데이터 레지스터(20)에 저장되고, 상기 데이터(+)가 저장된 데이터 레지스터(20)의 번지는 상기 어드레스 레지스터(20)의 두번째 번지(A1)에 저장된다.Next, data (+) input through the data bus B1 is stored in the data register 20, and the address of the data register 20 in which the data (+) is stored is the second address of the address register 20 ( Stored in A1).

이와 같은 과정으로 모든 데이터는 데이터 레지스터(20)에 저장되고, 상기 데이터의 주소가 어드레스 레지스터(20)에 저장된 후, 제어부(50)는 상기 어드레스 레지스터(20)에서 지정하는 번지에 저장된 데이터를 데이터 레지스터(10)에서 읽어온 후, 연산장치(40)에 전송한다.In this manner, all data is stored in the data register 20, and after the address of the data is stored in the address register 20, the controller 50 stores the data stored at the address designated by the address register 20. After reading from the register 10, it transfers to the arithmetic unit 40.

상기 연산장치(40)는 제어부의 제어하에 필요한 연산을 수행하고, 연산값은 상기 제어부(50)의 제어하에 데이터 레지스터(10)에 저장되고, 상기 데이터 레지스터(10)의 번지는 어드레스 레지스터(20)에 저장된다. 이상의 과정으로 연산된 값은 상기 제어부(50)의 제어하에 램으로 출력되면서 모든 연산동작이 끝난다.The operation device 40 performs the operation required under the control of the control unit, the operation value is stored in the data register 10 under the control of the control unit 50, the address of the data register 10 address address 20 ) The value calculated by the above process is output to the RAM under the control of the controller 50, and all the calculation operations are completed.

즉, 종래의 중앙연산처리장치의 동작은 롬에 저장된 데이터를 읽고, 해석하여, 명령대로 동작하며, 연산된 결과를 램에 저장한다. 그러나 이러한 동작과정은 롬에서 데이터를 읽는데 많은 시간을 필요로하며, 또한 연산하는 과정 상에서 다른 프로그램이나 인터럽트에 의해서 연산처리속도를 느리게 하는 문제점이 발생되었다. 또한, 간단한 동작만을 필요로 하는 장치에 있어서 종래와 같은 중앙연산처리장치는, 너무 비싸다는 문제점이 있었다.That is, the operation of the conventional central processing unit reads and interprets data stored in the ROM, operates as a command, and stores the calculated result in the RAM. However, this operation process requires a lot of time to read data from the ROM, and also causes a problem of slowing down the processing speed by other programs or interrupts during the operation process. In addition, in the apparatus requiring only simple operation, the conventional central processing unit has a problem that it is too expensive.

따라서 본 발명의 목적은 동작속도를 조절하고, PLD(Programmable Logic Device)로 설계하여 경제성을 가지도록 하는 중앙연산처리장치를 제공함에 있다.Accordingly, an object of the present invention is to provide a central processing unit that adjusts the operating speed and has economical efficiency by designing as a PLD (Programmable Logic Device).

도 1은 종래 모토로라사의 중앙 연산 처리 장치 68000의 내부 구조도,1 is an internal structural diagram of a central processing unit 68000 of a conventional Motorola,

도 2는 본 발명에 따른 PLD로 설계된 중앙연산처리장치의 구성도.2 is a block diagram of a central processing unit designed as a PLD according to the present invention.

*도면의 주요부분에 대한 부호의 설명** Description of the symbols for the main parts of the drawings *

10: 데이터 레지스터 20: 어드레스 레지스터10: data register 20: address register

30: 상태 레지스터 40: 산술연산논리부30: status register 40: arithmetic logic unit

50,140: 제어부 110∼114: 래치부50, 140: control unit 110 to 114: latch unit

120∼126: 연산부 130: TRI버퍼부120 to 126: calculation unit 130: TRI buffer unit

L1∼L130: 라인 L31: 인터널버스L1 to L130: Line L31: Internal bus

상기 목적을 달성하기 위한 본 발명에 따른 중앙연산처리장치는, 연산데이터를 실시간적으로 저장하는 다수개의 래치부와; 상기 래치부의 출력을 이용해서 덧셈,뺄셈,곱셈,나눗셈의 연산을 수행하는 다수개의 연산부와; 롬으로부터 읽어온 연산코드에 의해서 상기 각 연산부의 동작을 제어하는 제어부와; 상기 연산부의 출력을 일시 저장하고, 다음 연산을 위해서 상기 래치부로 데이터를 출력하는 버퍼부를 포함하여 구성된다.A central processing unit according to the present invention for achieving the above object comprises a plurality of latch units for storing the operation data in real time; A plurality of arithmetic units that perform addition, subtraction, multiplication, and division operations by using the output of the latch unit; A control unit controlling the operation of each operation unit by an operation code read from a ROM; And a buffer unit for temporarily storing the output of the operation unit and outputting data to the latch unit for the next operation.

이하 첨부한 도면을 참조해서 본 발명에 따른 중앙연산처리장치에 대해서 상세하게 설명한다.Hereinafter, the central processing unit according to the present invention will be described in detail with reference to the accompanying drawings.

도 2는 본 발명에 따른 PLD로 설계된 중앙연산처리장치의 구성도이다.2 is a block diagram of a central processing unit designed as a PLD according to the present invention.

본 발명의 중앙연산처리장치는, 입력데이터신호를 일시 저장용으로 사용하는 래치부(110,112,114)와, 데이터의 출력신호를 제어하는 TRI 버퍼부(130)와, 입력된 데이터의 연산을 수행하는 연산부(120,122,124,126)와, 내부의 모든 디바이스를 제어하고 메모리에 데이터를 쓰고 읽는 제어부(140)를 포함한다.The central processing unit of the present invention includes a latch unit (110, 112, 114) for temporarily storing the input data signal, a TRI buffer unit 130 for controlling the output signal of the data, and a calculation unit for performing the operation of the input data 120, 122, 124, and 126, and a controller 140 that controls all devices therein and writes data to and reads data from the memory.

상기 입력데이터신호를 일시 저장하는 래치부1(110),래치부2(112),래치부3(114)는 데이터 입력라인과 라인(L1,L2,L3)를 통해서 병렬 연결된다. 상기 래치부1(110)와 래치부2(112)는 연산부(120,122,124,126)의 입력부와 연결되고 있다.The latch unit 1 110, the latch unit 2 112, and the latch unit 3 114 which temporarily store the input data signal are connected in parallel through data input lines and lines L1, L2, and L3. The latch unit 1110 and the latch unit 2 112 are connected to the input units of the operation units 120, 122, 124, and 126.

상기 덧셈 연산부(120), 뺄셈연산부(122), 곱셈연산부(124), 나눗셈연산부(126)은 라인(L7,L8,L9,L10)에 의해서 병렬 연결되며, 상기 라인들은 래치부1(110)의 출력라인(L4)과 연결되고 있다. 또한, 상기 모든 연산부(120,122,124,126)은 라인(L11,L12,L13,L14)에 의해서 병렬 연결되며, 상기 라인들은 래치부2(112)의 출력라인(L5)과 연결되고 있다.The addition operator 120, the subtraction operator 122, the multiplication operator 124, and the division operator 126 are connected in parallel by lines L7, L8, L9, and L10, and the lines are latched by the latch unit 1 110. Is connected to the output line L4. In addition, all the calculation units 120, 122, 124, and 126 are connected in parallel by lines L11, L12, L13, and L14, and the lines are connected to the output line L5 of the latch unit 2 112.

상기 각 연산부의 출력라인(L19,L20,L21,L22)은 출력신호 제어용인 TRI 버퍼부(130)에 연결되며, 상기 TRI 버퍼부(130)의 출력라인은 상기 래치부(110,112,114)의 입력라인에 연결되고 있다.Output lines L19, L20, L21, and L22 of the operation units are connected to the TRI buffer unit 130 for output signal control, and the output lines of the TRI buffer unit 130 are input lines of the latch units 110, 112, and 114. Is being connected to.

제어부(140)는 라인(L28,L29,L30)을 통해서 상기 래치부들과 연결되며, 또한, 제어부(140)는 라인(L15,L16,L17,L18)을 통해서 상기 연산부들과 연결되고 있다. 또한, 제어부(140)는 라인(L23)을 통해서 TRI 버퍼부(130)와 연결된다.The controller 140 is connected to the latch units through lines L28, L29, and L30, and the controller 140 is connected to the calculator units through lines L15, L16, L17, and L18. In addition, the controller 140 is connected to the TRI buffer unit 130 through a line L23.

다음은 상기 구성으로 이루어진 본 발명에 따른 중앙처리장치의 동작에 대해서 설명한다.Next, the operation of the CPU according to the present invention having the above configuration will be described.

초기에 리셋신호가 제어부(140)에 입력되면, 제어부를 제외한 모든 디바이스가 초기화된다. 이후, 제어부(140)는 롬(도시하지 않음)에 저장된 데이터를 읽어와서 래치부3(113)에 저장한 후, 명령 코드를 해석하여 그에 따른 동작을 수행한다.When the reset signal is initially input to the controller 140, all devices except the controller are initialized. Thereafter, the controller 140 reads the data stored in the ROM (not shown), stores the data in the latch unit 3113, and interprets the command code to perform the operation accordingly.

일 예로, A+B의 동작을 수행하기 위해서는, 제어부(140)는 상기 래치부3(113)에 저장된 더하기 연산 코드를 읽은 후, 더하기 연산 루틴을 수행한다.For example, to perform the operation of A + B, the controller 140 reads the addition operation code stored in the latch unit 3113 and then performs the addition operation routine.

그리고 제어부(140)는 램(도시하지 않음)으로부터 데이터(A)를 읽어와서, 이 값을 래치부1(110)에 저장하고, 램(도시하지 않음)으로부터 데이터(B)를 읽어와서 이 값을 래치부2(112)에 저장한다.The controller 140 reads the data A from the RAM (not shown), stores the value in the latch unit 1110, and reads the data B from the RAM (not shown). Is stored in the latch portion 2 (112).

이렇게 해서 모든 데이터를 읽어오는 과정이 끝나면, 제어부(140)는 상기 래치부1,2에 저장된 값을 출력하기 위한 제어신호를 출력하고, 이 신호에 의해서 래치부1,2(110,112)에 저장된 데이터는 각 연산자로 출력된다.After the process of reading all the data in this way, the control unit 140 outputs a control signal for outputting the value stored in the latch unit 1, 2, the data stored in the latch unit 1, 2 (110, 112) by this signal Is printed by each operator.

이때, 상기 제어부(140)는 현재 수행되고 있는 연산이 더하기 연산임을 인식하고 있으므로, 덧셈연산부(120)가 동작할 수 있도록 제어신호를 출력한다. 이때의 제어신호에 의해서 덧셈연산부(120)의 더하기 연산이 수행된 후, 라인(L19)를 통해서 TRI 버퍼부(130)에 출력된다. 이후, 상기 제어부(140)의 제어에 의해서 상기 TRI버퍼부(130)에 저장된 연산값이 라인(L27)에 의해서 출력되어져 데이터버스를 통해서 램에 저장된다.In this case, since the controller 140 recognizes that the operation being performed is an addition operation, the control unit 140 outputs a control signal so that the addition operation unit 120 can operate. After the addition operation of the addition operation unit 120 is performed by the control signal at this time, it is output to the TRI buffer unit 130 through the line L19. Thereafter, the operation value stored in the TRI buffer unit 130 is output by the line L27 under the control of the controller 140 and stored in the RAM through the data bus.

즉, 본 발명에 의한 중앙연산처리장치는, 종래와 마찬가지로 메모리(롬, 램)에 저장되어 있는 기설정된 코드에 의해서 데이터를 읽어와서 처리하는 방법을 취하고 있다. 그러나 본 발명에 의한 연산방법은, 래치부에 저장된 데이터를 실시간적으로 변경하면서 다음 데이터와의 연산을 연결해서 수행할 수 있고, 또한 어드레스의 지정에 따른 동작이 불필요하기 때문에 연산속도를 빠르게 할 수 있다.That is, the central processing unit according to the present invention adopts a method of reading and processing data by a predetermined code stored in a memory (ROM, RAM) as in the prior art. However, the calculation method according to the present invention can perform the operation with the next data while changing the data stored in the latch section in real time, and also increase the operation speed because the operation according to the address designation is unnecessary. have.

다음은 [(A+B+C)*D]/E의 연산과정을 살펴보면서 본 발명의 효과를 보다 상세하게 짚어본다.Next, the effect of the present invention will be described in more detail while looking at the calculation process of [(A + B + C) * D] / E.

우선, 상기 연산과정에서 필요한 모든 변수는 램(도시되지 않음)에 모두 저장하고, 상기 제어부(140)는 상기 변수의 메모리 번지를 하드웨어로 구성한 후, 연산순서대로 변수를 읽어온다.First, all necessary variables in the operation process are stored in a RAM (not shown), and the controller 140 configures the memory address of the variable in hardware, and reads the variables in the operation order.

그리고 상기 동작에 앞서 래치부3(114)는 롬에서부터 더하기 연산 코드, 더하기 연산코드, 곱셈연산코드, 나눗셈연산코드를 순차적으로 읽어와서 저장한다.Prior to the operation, the latch unit 3 114 sequentially reads and stores an addition operation code, an addition operation code, a multiplication operation code, and a division operation code from a ROM.

따라서 제어부(140)는 첫번째 연산동작인 더하기 연산을 수행하기 위해서 메모리로부터 데이터(A)를 읽어와서 래치부1(110)에 저장한다. 그리고 데이터(B)를 읽어와서 래치부2(112)에 저장한다. 상기 래치부1,2의 저장과정이 완료되면, 제어부(140)는 래치부1,2의 출력을 제어하면서 동시에 래치부3에 저장된 더하기 연산코드에 따라서 덧셈연산부(120)의 동작이 이루어지도록 제어한다.Therefore, the controller 140 reads the data A from the memory and stores the data A in the latch unit 1110 in order to perform the addition operation, which is the first operation operation. The data B is read out and stored in the latch section 2112. When the storing process of the latch units 1 and 2 is completed, the control unit 140 controls the output of the latch units 1 and 2 and at the same time controls the operation of the addition operation unit 120 according to the addition operation code stored in the latch unit 3. do.

이렇게 해서 상기 덧셈연산부(120)는 A+B의 연산을 수행하고, 그 연산값을 TRI 버퍼부(130)에 출력한다. 상기 TRI 버퍼부(130)는 입력된 데이터를 제어부(140)의 제어하에 출력하고, 이때의 출력데이터는 래치부1(110)에 재저장된다.In this way, the addition operator 120 performs an operation of A + B, and outputs the operation value to the TRI buffer unit 130. The TRI buffer unit 130 outputs the input data under the control of the controller 140, and the output data at this time is re-stored in the latch unit 1110.

그리고 제어부(140)는 램으로부터 데이터(C)를 읽어와서 래치부2(112)에 저장한다. 이후,제어부(140)는 래치부3(114)으로부터 두번째 연산코드인 더하기 연산코드를 읽어와서, 상기 래치부1,2의 출력값이 덧셈연산자(120)에서 더하기 연산이 이루어지도록 제어한다. 상기 덧셈연산자(120)의 출력은 TRI버퍼부(130)를 통해서 다시 래치부1(110)에 저장된다.The control unit 140 reads the data C from the RAM and stores the data C in the latch unit 2 112. Thereafter, the controller 140 reads the addition operation code, which is the second operation code, from the latch unit 3 114, and controls the add operation 120 to perform the addition operation on the output values of the latch units 1 and 2. The output of the addition operator 120 is stored in the latch unit 1110 again through the TRI buffer unit 130.

다음 제어부(140)는 램으로부터 데이터(D)를 읽어오고, 이 데이터를 래치부2에 저장한다. 그리고 제어부(140)는 래치부3(114)으로부터 세번째 연산코드인 곱하기 연산코드를 읽어와서, 상기 래치부1,2의 출력값이 곱셈연산자(124)에서 연산이 이루어지도록 제어한다. 상기 곱셈연산자(124)의 출력은 TRI버퍼부(130)를 통해서 다시 래치부1(110)에 재저장된다.Next, the control unit 140 reads the data D from the RAM and stores the data in the latch unit 2. The controller 140 reads the multiplication operation code, which is the third operation code, from the latch unit 3 114, and controls the output value of the latch units 1 and 2 to be operated by the multiplication operator 124. The output of the multiplication operator 124 is re-stored in the latch unit 1 (110) through the TRI buffer unit 130.

다음 제어부(140)는 램으로부터 데이터(E)를 읽어오고, 이 데이터를 래치부2에 저장한다. 그리고 제어부(140)는 래치부3(114)으로부터 네번째 연산코드인 나눗셈 연산코드를 읽어와서, 상기 래치부1,2의 출력값이 나눗셈연산부(126)에서 연산이 이루어지도록 제어한다. 상기 나눗셈연산부(126)의 출력은 TRI버퍼부(130)에 저장된다.Next, the control unit 140 reads the data E from the RAM and stores the data in the latch unit 2. The controller 140 reads the division operation code, which is the fourth operation code, from the latch unit 3 114, and controls the division operation unit 126 to perform the calculation of the output values of the latch units 1 and 2. The output of the division operator 126 is stored in the TRI buffer unit 130.

이렇게 해서 모든 연산이 수행되면, 제어부(140)는 상기 TRI 버퍼부(130)에 저장된 값을 라인(L27)을 통해서 데이터버스에 출력하고, 이때의 출력 데이터는 램에 저장된다.In this way, when all operations are performed, the controller 140 outputs the value stored in the TRI buffer unit 130 to the data bus through the line L27, and the output data at this time is stored in the RAM.

즉, 본 발명의 중앙연산처리장치의 연산동작은, 실시간적으로 연산을 수행할 수 있을 뿐만 아니라, 다중으로 연산하는 것이 가능하다. 이와 같은 실시간 연산과정을 다음의 예시를 통해서 설명한다.That is, the calculation operation of the central processing unit of the present invention can not only perform calculations in real time, but can also perform multiple operations. This real-time calculation process will be described by the following example.

(A*B)+(C/D)의 연산을 수행하기 위해서, 우선, 제어부(140)는 데이터(A)를 읽어서 래치부1(110)에 저장하고, 데이터(B)를 읽어서 래치부2(112)에 저장한다. 그리고 상기 래치부1,2의 출력값이 곱셈연산부(124)에서 곱셈이 이루어지도록 제어한다.In order to perform the operation of (A * B) + (C / D), first, the control unit 140 reads the data A, stores the data in the latch unit 1110, and reads the data B to latch the unit 2. Save to 112. The multiplication operation 124 controls the output values of the latch units 1 and 2 to be multiplied.

한편, 상기 래치부1,2의 출력과 동시에 다음 데이터인 (C)가 래치부1에 저장되고, 데이터(D)가 래치부2에 저장되도록 제어한 후, 두 래치부의 값을 나눗셈연산부(126)로 출력한다. 따라서 상기 데이터(A,B)의 곱셈 연산이 이루어짐과 거의 동시에 데이터(C,D)의 나눗셈 연산이 이루어진다.Meanwhile, at the same time as the output of the latch units 1 and 2, the next data (C) is stored in the latch unit 1 and the data D is stored in the latch unit 2, and then the division operation unit 126 divides the values of the two latch units. ) Therefore, the multiplication operation of the data A and B is performed and the division operation of the data C and D is performed at substantially the same time.

이렇게 해서 상기 곱셈연산부(124)의 출력데이터는 다시 래치부1에 저장되고, 나눗셈연산부(126)의 출력데이터가 래치부2에 저장되어져서, 덧셈연산자(120)에서 상기 래치부1,2의 값을 더하는 더하기 연산이 수행되어진다.In this way, the output data of the multiplication operation unit 124 is again stored in the latch unit 1, and the output data of the division operation unit 126 is stored in the latch unit 2, so that the addition operator 120 The addition operation is performed to add the values.

즉, 종래의 중앙연산처리장치에 의한 곱셈 연산 수행시 약 500ns가 걸리고, 나눗셈 연산 수행시 500ns가 걸린다면, 총 소요시간은 약 1050ns정도가 필요한데 반해서, 본 발명의 중앙연산처리장치에서는 다중으로 연산이 가능하므로, 먼저 연산을 하는 곱셈 연산의 시간과 변수의 값을 읽는 시간만 소요되므로 총 소요되는 시간은 약 600ns 미만이면 충분하다.That is, if a multiplication operation is performed by a conventional central processing unit, it takes about 500 ns and a division operation takes about 500 ns. The total required time is about 1050 ns. On the other hand, in the central processing unit of the present invention, multiple operations are performed. Since this is possible, only the time of the multiplication operation to be performed first and the time of reading the value of the variable are required, so the total time required is less than about 600 ns.

상기한 바와 같이 이루어진 본 발명의 PLD로 설계된 중앙연산처리장치는 종래 중앙연산처리장치에서 실시하던 불필요한 동작 과정을 제거하여 동작속도가 매우 빨라지도록 발명하였다. 특히, 본 발명은 인터럽트 루틴 처리가 실시간으로 처리될 수 있으며, 복수 연산을 동시에 수행하는 것이 가능함에 따라서 연산처리속도가 빨라지는 효과가 있다. 더불어 본 발명은 PLD 성능을 이용하여 동작속도를 빠르게 하면서, 제조비을 절감할 수 있는 잇점이 있다.The central processing unit designed as the PLD of the present invention made as described above has been invented so that the operation speed is very fast by eliminating unnecessary operation processes performed in the conventional central processing unit. In particular, the present invention has the effect that the interrupt routine processing can be processed in real time, and as it is possible to perform a plurality of operations at the same time, the operation processing speed is increased. In addition, the present invention has the advantage of reducing the manufacturing cost, while increasing the operating speed using the PLD performance.

Claims (1)

연산데이터를 실시간적으로 저장하는 다수개의 래치부와;A plurality of latch units for storing calculation data in real time; 상기 래치부의 출력을 이용해서 덧셈,뺄셈,곱셈,나눗셈의 연산을 수행하는 다수개의 연산부와;A plurality of arithmetic units that perform addition, subtraction, multiplication, and division operations by using the output of the latch unit; 롬으로부터 읽어온 연산코드에 의해서 상기 각 연산부의 동작을 제어하는 제어부와;A control unit controlling the operation of each operation unit by an operation code read from a ROM; 상기 연산부의 출력을 일시 저장하고, 다음 연산을 위해서 상기 래치부로 데이터를 출력하는 버퍼부를 포함하여 구성되는 중앙연산처리장치.And a buffer unit which temporarily stores the output of the operation unit and outputs data to the latch unit for the next operation.
KR1019990031162A 1999-07-29 1999-07-29 Central Processing Unit KR20010011683A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990031162A KR20010011683A (en) 1999-07-29 1999-07-29 Central Processing Unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990031162A KR20010011683A (en) 1999-07-29 1999-07-29 Central Processing Unit

Publications (1)

Publication Number Publication Date
KR20010011683A true KR20010011683A (en) 2001-02-15

Family

ID=19605656

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990031162A KR20010011683A (en) 1999-07-29 1999-07-29 Central Processing Unit

Country Status (1)

Country Link
KR (1) KR20010011683A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180057950A (en) * 2016-11-23 2018-05-31 김태형 Parallel proessing unit and parallel processing appratus
US10884976B2 (en) 2018-05-22 2021-01-05 Morumi Co., Ltd. Parallel processing unit and device for parallel processing

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180057950A (en) * 2016-11-23 2018-05-31 김태형 Parallel proessing unit and parallel processing appratus
US10884976B2 (en) 2018-05-22 2021-01-05 Morumi Co., Ltd. Parallel processing unit and device for parallel processing

Similar Documents

Publication Publication Date Title
US3962682A (en) Split low order internal address bus for microprocessor
US4228498A (en) Multibus processor for increasing execution speed using a pipeline effect
US3593306A (en) Apparatus for reducing memory fetches in program loops
US4833640A (en) Register bank change including register to register transfer in a data processing system
JPH06119013A (en) Programmable controller using ladder-figure macroinstruction
US4037204A (en) Microprocessor interrupt logic
US5165026A (en) Programmable controller in which fetching of operand data and fetching of operand addresses are simultaneously performed
US6327648B1 (en) Multiprocessor system for digital signal processing
US4004281A (en) Microprocessor chip register bus structure
US4030079A (en) Processor including incrementor and program register structure
US4032896A (en) Microprocessor having index register coupled to serial-coupled address bus sections and to data bus
US5390306A (en) Pipeline processing system and microprocessor using the system
US5025390A (en) Robotic workcell control system with a binary accelerator providing enhanced binary calculations
KR20010011683A (en) Central Processing Unit
US5479620A (en) Control unit modifying micro instructions for one cycle execution
CN1153136C (en) Processor and method of executing instructions from several instruction sources
US5893928A (en) Data movement apparatus and method
GB2069733A (en) Conditional instruction execution in a pipelined processor
JP2510691B2 (en) Arithmetic processing method
US5649229A (en) Pipeline data processor with arithmetic/logic unit capable of performing different kinds of calculations in a pipeline stage
JPS63214804A (en) Processor for plc and plc
JP2619425B2 (en) Sequence controller
JPH025104A (en) Arithmetic processing unit
KR100304607B1 (en) System for processing high-speed command for programmable logic controller
JPH023821A (en) High speed arithmetic unit

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application