KR920006276B1 - Shifter for reduced instruction set computer cpu - Google Patents
Shifter for reduced instruction set computer cpu Download PDFInfo
- 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
Links
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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
Abstract
Description
제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
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
제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
제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
마스크 제너레이터(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
이상에서 설명한 바와같이 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
Claims (2)
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) |
-
1989
- 1989-12-26 KR KR1019890019500A patent/KR920006276B1/en not_active IP Right Cessation
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 |