KR920006276B1 - Shifter for reduced instruction set computer cpu - Google Patents

Shifter for reduced instruction set computer cpu Download PDF

Info

Publication number
KR920006276B1
KR920006276B1 KR1019890019500A KR890019500A KR920006276B1 KR 920006276 B1 KR920006276 B1 KR 920006276B1 KR 1019890019500 A KR1019890019500 A KR 1019890019500A KR 890019500 A KR890019500 A KR 890019500A KR 920006276 B1 KR920006276 B1 KR 920006276B1
Authority
KR
South Korea
Prior art keywords
shifter
shift
multiplexer
cpu
bus
Prior art date
Application number
KR1019890019500A
Other languages
Korean (ko)
Other versions
KR910012912A (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 KR1019890019500A priority Critical patent/KR920006276B1/en
Publication of KR910012912A publication Critical patent/KR910012912A/en
Application granted granted Critical
Publication of KR920006276B1 publication Critical patent/KR920006276B1/en

Links

Images

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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE

Abstract

The shifter of a CPU of a reduced instruction set computer has small layout area but has high speed operating characteristic. The shifter includes an input signal selector (11) for receiving data from bus S or a second immediate latch selectively, a shift/ rotate unit (12) in which shift or rotate operation is executed in five steps, a multiplexer (13) for tranfering output signal of the shift/rotate unit (12) or sine wved signal, a bus driver (14) for amplifying output signal of the multiplexer (13), and a mask generator (15) for controlling the multiplexer (13).

Description

RISC의 CPU용 쉬프터RISC CPU Shifter

제1도는 본 발명의 쉬프터의 주변구성을 나타낸 불럭도.1 is a block diagram showing the peripheral configuration of the shifter of the present invention.

제2도는 본 발명의 쉬프터의 구성도.2 is a block diagram of a shifter of the present invention.

제3도는 본 발명의 쉬프터의 기본 회로도.3 is a basic circuit diagram of a shifter of the present invention.

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

11 : 입력 셀렉터 12 : 쉬프트/로테이트11: input selector 12: shift / rotate

13 : 멀티 플렉서 14 : 버스 드라이버13: Multiplexer 14: Bus Driver

15 : 마스크 제너레이터15: mask generator

본 발명은 RISC(Reduced Instrucion Set Computer)의 CPU용 데이타 패스(path)에 관한 것으로, 특히 작은 레이아웃 면적을 가지며 고속 동작을 행하도록 한 RISC의 CPU용 쉬프터에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a data path for a CPU of a reduced instrument set computer (RISC), and more particularly to a CPU shifter of a RISC that has a small layout area and performs high speed operation.

RISC가 하드 웨어의 단순화를 지향하면서 설계되어, 개발에 소요되는 시간과 비용을 줄이고, CPU내부의 콘트롤 로직을 하드와이어(hardwire)로 하여 모든 명령들을 단일 사이클 내에 실행하도록 한 것임은 잘알려진 사실이다.It is well known that RISC is designed to simplify hardware, reducing development time and cost, and executing all instructions in a single cycle using hardwired control logic inside the CPU. .

그러나 날로 복잡해지는 CISC(Complex Instruction Set Computer) CPU에서는 배선이 증가함에 따라 지연시간도 증가되고, 게이트 수가 증가함에 의하여 구동력이 감소되면서 동작속도가 지연되며, 동작모드가 복잡하게 됨으로 인하여 명령 수행사이클이 연장되는 등의 문제점이 발생되었다.However, in the increasingly complex CISC (Complex Instruction Set Computer) CPU, as the wiring increases, the delay time increases, and as the driving force decreases as the number of gates increases, the operation speed is delayed, and the operation mode becomes complicated. Problems such as extension have occurred.

그리하여 상기의 단점을 해결하기 위하여 RISC 아키텍춰가 대두 되었다.Thus, RISC architecture has emerged to solve the above disadvantages.

즉, 명령어의 세트를 줄이고, 구조를 간소화하여 명령어망 오버 해드를 줄이고, 콘트롤 로직을 간단히하여 파이프 라인등 페러 랠리즘을 최대한 효율적으로 이용 함으로써 성능 향상을 꾀하였던 것이다.In other words, the performance was improved by reducing the set of instructions, simplifying the structure, reducing the overhead of the instruction network, and simplifying the control logic to make the most efficient use of parallelism such as pipelines.

그러나 상기와 같은 종래의 RISC 아키텍춰에 의하여서는 하드웨어를 간소함에 따라 보다 정밀한 컴파일러 기술이 요구되었다.However, in the conventional RISC architecture as described above, a more precise compiler technique is required as the hardware is simplified.

이에 따라 본 발명은 작은 레이아웃 면적을 가지면서 고속동작을 하는 RISC의 CPU용 쉬프터를 제공하는 것을 그 목적으로 한다.Accordingly, an object of the present invention is to provide a shifter for a CPU of RISC which has a small layout area and operates at high speed.

이를 위하여 본 발명은, 배럴 쉬프터를 5단으로 나누어 구성하여 각 단을 직접 쉬프트 양으로 제어할 수있도록 설계함으로써, 쉬프트 양을 디코우더하는 회로가 필요없이 레이아옷 면적을 줄일수 있으며, 32비트의 데이타를 한 방향으로만 한다. 쉬프트 되도록 하여 다른 방향의 쉬프트 동작은 32의 보수 비트만큼 한방향으로 동작하도록 함은 물론, 레이아웃 면적이 작으면서 동작속도가 1.5∼2배 정도 빨라 지도록한 것이다.To this end, the present invention is designed by dividing the barrel shifter into five stages so that each stage can be directly controlled by the shift amount, thereby reducing the area of the laycoat without the need for a circuit for decoding the shift amount. Only one way data. By shifting, the shift operation in the other direction is operated in one direction by 32 complementary bits, and the operating speed is 1.5 to 2 times faster while the layout area is smaller.

본 발명은 첨부 도면에 의거 상세히 기술하여보면 다음과 같다.The present invention will be described in detail with reference to the accompanying drawings.

제1도는 쉬프터의 주변 구성을 나타낸 것으로, 26비트의 레이스터로서 페취(fatch)된 명령어의 하위 16비트(A타잎) 또는 26비트(C타잎)의 이미디잇 콘스탄트(Immediate constant)를 저장하는 제1 이미디잇 래치(1)와, 도면 도시되지 않은 메모리로 부터 들어온 32비트 데이타를 저장하거나 26비트 이미디잇 래치(1)의 이미디잇 콘스탄트를 32비트를 확장시키고, 파이프 라인의 두번째 스테이지 동안 32비트 이미디잇 콘스탄트가 파괴되지 않도록 저장하는 제2 이미디잇 래치(2)와, 제2 이미디잇 래치(2)에 저장된 데이타가 언 사인드(Unsigned)데이타인 경우이거나 C타잎인 경우에 사인 익스텐숀(Sign extension)을 행하는 사인 익스텐더(sign extender) (3)와, 제1 이미디잇 래치(1)의 하위 5비트, 버스B의 하위 5비트를 저장하여 쉬프터의 쉬프트 양을 지정하는 SAR(Shift Amount Resister) (4)와, 도면에 도시되지 않은 ALU(Arithmetic Logic unit : 연산논리장치)가 실효 어드레스(effective address)를 계산할 경우 버스D의 하위 2비트를 저장하여 그 값에 따라 사인 익스텐더(3)와 SAR(4)를 제어하는 BAR(Byte Address Resister) (5)와, 쉬프터의 입력 데이타를 래치하는 SRC(6)와, 쉬프터의 출력 데이타를 래치하는 DST(7)와, ALU의 입력 래치인 BI(8)와, SRC(6)의 데이타를 쉬프터로 보낵나 쉬프터의 출력 데이타를 BI(8)또는 DST(7)로 보내는 버스 S(9) 및 쉬프터(10)들로 구성한 것이다.Figure 1 shows the periphery of the shifter, which stores the lower 16 bits (type A) or 26 bits (type C) of the immediate constant fetched as a 26-bit raster. 1 store the 32-bit data coming from the immediate latch 1 and memory not shown or extend the 32-bit constant constant of the 32-bit immediate latch 1 to 32-bit during the second stage of the pipeline. A second extension latch (2) for storing the constant constant, and the sign extension if the data stored in the second immediate latch (2) is unsigned data or a C type. A shift extender (SAR) that stores a sign extender (3) for performing a sign extension, a lower five bits of the first immediate latch (1), and a lower five bits of the bus B to specify the shift amount of the shifter. Resister) (4), When an ALU (Arithmetic Logic Unit) not shown in the figure calculates an effective address, the lower two bits of the bus D are stored and the sine extender 3 and SAR 4 are controlled according to the value. Byte Address Resister (BAR) (5), SRC (6) for latching shifter input data, DST (7) for latching shifter output data, BI (8), which is an ALU input latch, and SRC The data of (6) is composed of the shifter 10 and the bus S (9) and the shifter 10 which send the output data of the bonan or the shifter to the BI (8) or the DST (7).

제2도는 쉬프터의 구성을 나타낸 것으로, 쉬프터의 입력은 버스S(9)와 제2 이미디잇(2)중 하나가 선택되는 것으로, 신호(S1)가 high이면 제2 이미디잇(2)으로부터, 신호(S2)가 high이면 버스S(9)로부터 쉬프트될 32비트의 데이타가 입력되는 입력 셀렉터(11)와, 각 단계에서 20,21,22,23,24만큼 쉬프트 되고 이는 쉬프트 양을 제어 하는 신호(Right1), (Right2), (Right4), (Right8), (Right16) 에 의해 제어되는 한편, 좌측 방향으로 쉬프트될때 SAR(4)에 저장된 쉬프트 양만큼 인버팅 하면 실제로는 (32-K-1)비트 만큼 쉬프트 되므로 이를(32-K)비트로 보정하기 위해 1비트를 미리 쉬프트 시키기 위한 레프트 제어신호(Left)에 따라 5단계로 나누어 쉬프트 또는 로테이트 동작이 이루어지는 쉬프트/로테이트(12)와, 명령어중 SRA(Shift Right Arithmetic)동작일 경우 32비트 데이타의 최상위 비트(Most Significant Bit)와, 그 값을 유지하여 쉬프트 동작을 해야 하므로 빈 비트의 위치는 최 상위 비트와 같은 값이 저장 되어야 하고, 또 SLL(Shift Left Logical)동작으로 빈 비트의 위치는 0으로 채워져야 하므로 사인(sign)신호가 동작에 따라 0도는 1의 값을 갖도록 하면서 동작의 결과 또는 사인 신호를 출력시키는 멀티 플렉서(13)와, 멀티 플렉서(13)를 통과한 신호를 구동 능력이 큰 3-상태 인버터인 버터(buffer)를 사용하여 큰 부하회로인 버스 S를 구동할 수있도록 출력하는 버스 드라이버(14)와, 사이드(Signed)데이타의 사인 신호를 각 비트의 출력으로 보내는 멀티 플렉서(13)의 동작을 결정하는 마스크 제너레이터(Mask Generator)(15)들로 구성한 것이다.FIG. 2 shows the shifter configuration. The shifter input is one of bus S 9 and second imit 2, and when signal S 1 is high, from second imit 2, When the signal S2 is high, the input selector 11 into which 32 bits of data to be shifted from the bus S 9 is input and is shifted by 2 0 , 2 1 , 2 2 , 2 3 , 2 4 in each step. While controlled by the signals Right1, (Right2), (Right4), (Right8), and (Right16) that control the shift amount, inverting by the shift amount stored in the SAR (4) when shifted to the left is actually The shift / rotate is shifted by (32-K-1) bits so that the shift or rotate operation is divided into five stages according to the left control signal (Left) to pre-shift one bit in order to correct this to (32-K) bits. 12) and the most significant bit (M) of 32-bit data in the case of SRA (Shift Right Arithmetic) operation. Since the ost significant bit and its value must be shifted to maintain the shift bit, the empty bit position should be stored with the same value as the most significant bit, and the SLL (Shift Left Logical) operation should fill the empty bit position with zero. Therefore, the signal having passed through the multiplexer 13 and the multiplexer 13 for outputting the result of the operation or the sign signal while having a sign signal having a value of 0 according to the operation have a large driving ability. A bus driver 14 that outputs bus S, a large load circuit, using a three-state inverter buffer, and a multiplexer that sends a sine signal of side data to the output of each bit. It consists of mask generators 15 that determine the operation of (13).

제3도는 쉬프터의 기본 회로를 나타낸 것으로, 다수의 n채널 트랜지스터(A), (B), (C), (D), (E), (F), (G), (H)와, P채널 트랜지스터(P1), (P2)및 인버터(I)를 도이노(Domino)구조를 갖도록 구성한 것이다.3 shows the basic circuit of the shifter, where a number of n-channel transistors (A), (B), (C), (D), (E), (F), (G), (H), and P The channel transistors P1, P2, and inverter I are configured to have a Domino structure.

그러므로, 좌측 방향으로의 쉬프트인 경우에는 제어신호(Leff)가 high로 되어 트랜지스터(CX)가 턴온되고, 우측 방향으로의 쉬프트인 경우에는 제어신호(Left)가 Low로 되어 트랜지스터(C)가 턴온된다.Therefore, in the case of the shift in the left direction, the control signal Leff becomes high and the transistor CX is turned on. In the case of the shift in the right direction, the control signal Left is low and the transistor C is turned on. do.

또 쉬프트 양을 제어하는 신호(Riggt1)가 high이면 트랜지스터(DX)가 온되어 n-1비트 위치의 기본회로와 연결되며, 신호(Right1)가 Low이면 트랜지스터(D)가 온된다.When the signal Riggt1 for controlling the shift amount is high, the transistor DX is turned on and connected to the basic circuit at an n-1 bit position. When the signal Right1 is Low, the transistor D is turned on.

이와같은 방법으로 쉬프트 양을 제어하는 신호(Right2), (Right4), (Right8), (Right16)에 따라 수평방향의 패스 또는 (n-K)비트 위치의 기본회로와 연결된 패스가 구성되어 단 하나의 도미노-CMOS로직을 구성하는 것이다.In this way, a signal connected to the base circuit at the horizontal path or the (nK) bit position is configured according to the signals (Right2), (Right4), (Right8), and (Right16) to control the amount of shift. To configure the CMOS logic.

P채널 트랜지스터(P1)는 스트로브 신호(STRB1)가 Low일 때 S점을 프리차지(Precharge)시텨 인버터(I)의 출력이 "LOW"가 되도록 한다.The P-channel transistor P1 precharges the S point when the strobe signal STRB1 is low so that the output of the inverter I becomes "LOW".

한편, P채널 트랜지스터(P2)는 스트로브 신호(STRB2)가 Low에서 high로 변화하여 n채널 트랜지스터들이 제어신호에 따라 동작할때 그라운드(ground 또는 Vss)와의 경로가 생성되지 않으면 프리차지된 high의 값을 계속 유지하도록 한다.On the other hand, the P-channel transistor P2 has a precharged high value when the strobe signal STRB2 is changed from low to high so that the n-channel transistor does not generate a path with the ground (ground or Vss) when the n-channel transistors operate according to the control signal. Keep it going.

쉬프트 또는 로테이트 동작의 결과는 버스 출력신호(Buw out)가 high로 될 때 인버터 구동력이 큰 3-상태(tri-state) 인버터로 구성된 버퍼(butter)를 통해 버스 S로 출력된다.The result of the shift or rotate operation is output to the bus S through a buffer consisting of a tri-state inverter having a large inverter driving force when the bus output signal Buw out becomes high.

MGn과 MGm의 제어신호는 마스크 제너레이터(15)의 출력신호로서 명려어어가 SRA, SRAI일 경우에는 사인신호(SIGN)가 Low가 된다.The control signals of MGn and MGm are known as output signals of the mask generator 15, so that when the signals are SRA and SRAI, the sine signal SIGN becomes low.

마스크 제너레이터(15)가 제어신호에 의해 한 비트위치(bit position)가 선택되면 SRA, SRAI명령어인 경우에는 그 비트 위치로부터 31비트 위치까지의 출력신호(MGn)가 high가 되고, SLL, SLLI명령어인 경우에는 I비트 위치로부터 0비트 위치까지의 출력신호(MGn)가 high가 된다.When the bit generator is selected by the control signal by the mask generator 15, in the case of the SRA and SRAI instructions, the output signal MGn from the bit position to the 31-bit position becomes high, and the SLL and SLLI instructions In this case, the output signal MGn from the I bit position to the 0 bit position becomes high.

이상에서 설명한 바와같이 RISC의 CPU에 있어서, 쉬프터의 구성을 입력 셀렉터(11)와 쉬프트/로테이트(12)와, 멀티플렉서(13)와 버스 드라이버(14) 및 마스크 제너레이터(15)들로 구성하고, 도미노-CMOS로직을 이용한 회로 구성을 사용함으로써, 배열 면적을 감소시킬 수 있으며, 트랜지스터의 수와 레이아웃 면적의 감소도 고속 동작이 가능한 것임을 알수 있다.As described above, in the CPU of the RISC, the shifter is composed of the input selector 11, the shift / rotate 12, the multiplexer 13, the bus driver 14, and the mask generator 15. By using a circuit configuration using domino-CMOS logic, the arrangement area can be reduced, and it can be seen that the reduction in the number of transistors and the layout area enables high-speed operation.

Claims (2)

RISC의 CPU의 데이타 패스에 있어서, 버스 S 또는 제2 이미디잇 래치로 부터의 데이타를 선택적으로 입력하는 입력 셀렉터(11)와, 제어신호(Left),(Right 1, 2, 4, 8, 16)에 의해 제어되며 쉬프트 또는 로테이트 동작이 5단계로 나누어 수행되는 쉬프트/로테이트(12)와, 동작의 결과 또는 사인 신호를 출력시키는 멀티 플렉서(13)와, 멀티 플렉서(13)를 통과한 신호의 구동 능력이 커지도록 하는 버스 트라이버(14)와, 멀티플렉서의 동작을 결정하는 마스크 제너레이터(15)들로 구성됨을 특징으로 하는 RISC의 CPU용 쉬프터.In the data path of the CPU of the RISC, an input selector 11 for selectively inputting data from the bus S or the second immediate latch, control signals Left, Right 1, 2, 4, 8, 16 And a shift / rotate 12 which is controlled by a shift and rotate operation in five steps, a multiplexer 13 for outputting a result or a sine signal of the operation, and a multiplexer 13 A shifter for a CPU of a RISC, comprising: a bus triber 14 for increasing signal driving capability; and a mask generator 15 for determining the operation of the multiplexer. 제1항에 있어서, 쉬프터는 n채널 트랜지스터(A)∼(H)와, P채널 트랜지스터(P1), (P2)와, 인버터(I)및 버퍼(buffer)들로 도미노 구조가 되도록 구성한 RISC의 CPU용 쉬프터.The shifter of claim 1, wherein the shifter comprises a n-channel transistor (A) to (H), a P-channel transistor (P1) to (P2), an inverter (I), and a buffer structure. Shifter for CPU.
KR1019890019500A 1989-12-26 1989-12-26 Shifter for reduced instruction set computer cpu KR920006276B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019890019500A KR920006276B1 (en) 1989-12-26 1989-12-26 Shifter for reduced instruction set computer cpu

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019890019500A KR920006276B1 (en) 1989-12-26 1989-12-26 Shifter for reduced instruction set computer cpu

Publications (2)

Publication Number Publication Date
KR910012912A KR910012912A (en) 1991-08-08
KR920006276B1 true KR920006276B1 (en) 1992-08-03

Family

ID=19293635

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019890019500A KR920006276B1 (en) 1989-12-26 1989-12-26 Shifter for reduced instruction set computer cpu

Country Status (1)

Country Link
KR (1) KR920006276B1 (en)

Also Published As

Publication number Publication date
KR910012912A (en) 1991-08-08

Similar Documents

Publication Publication Date Title
EP0657803B1 (en) Three input arithmetic logic unit
EP0656584B1 (en) Conditional memory store from a register pair
US4807172A (en) Variable shift-count bidirectional shift control circuit
KR100348950B1 (en) Data processing device
US5497341A (en) Sign-extension of immediate constants in an ALU using an adder in an integer logic unit
EP0657802B1 (en) Rotation register for orthogonal data transformation
JPH087084A (en) Three-input arithmetic and logic unit for formation of sum of first boolean combination of first, second and third inputs plus second boolean combination of first, second and third inputs
JPH07287567A (en) Arithmetical logical unit with plural independent segments and register that stores result from each fraction
US5896305A (en) Shifter circuit for an arithmetic logic unit in a microprocessor
US5787025A (en) Method and system for performing arithmetic operations with single or double precision
US6006244A (en) Circuit for shifting or rotating operands of multiple size
KR0142334B1 (en) Extended Bit Slice Processor Arithmetic Logic Unit
US5682339A (en) Method for performing rotate through carry using a 32 bit barrel shifter and counter
KR100315408B1 (en) A three-input arithmetic logic unit
KR920006276B1 (en) Shifter for reduced instruction set computer cpu
US5831877A (en) Bit searching through 8, 16, or 32 bit operands using a 32 bit data path
US4789958A (en) Carry-look-ahead adder including bipolar and MOS transistors
US6122651A (en) Method and apparatus for performing overshifted rotate through carry instructions by shifting in opposite directions
US7409415B2 (en) Processor system with efficient shift operations including EXTRACT operation
US5655139A (en) Execution unit architecture to support X86 instruction set and X86 segmented addressing
US5060244A (en) Method and apparatus for indicating when the total in a counter reaches a given number
US6738792B1 (en) Parallel mask generator
US6334136B1 (en) Dynamic 3-level partial result merge adder
US7349934B2 (en) Processor system and method with combined data left and right shift operation
US6035310A (en) Method and circuit for performing a shift arithmetic right operation

Legal Events

Date Code Title Description
A201 Request for examination
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 19950802

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee