KR19980029428A - Registers Supporting Bypass Paths in Pipeline Processors - Google Patents

Registers Supporting Bypass Paths in Pipeline Processors Download PDF

Info

Publication number
KR19980029428A
KR19980029428A KR1019960048685A KR19960048685A KR19980029428A KR 19980029428 A KR19980029428 A KR 19980029428A KR 1019960048685 A KR1019960048685 A KR 1019960048685A KR 19960048685 A KR19960048685 A KR 19960048685A KR 19980029428 A KR19980029428 A KR 19980029428A
Authority
KR
South Korea
Prior art keywords
data
register
read
register file
write
Prior art date
Application number
KR1019960048685A
Other languages
Korean (ko)
Other versions
KR100196517B1 (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 KR1019960048685A priority Critical patent/KR100196517B1/en
Publication of KR19980029428A publication Critical patent/KR19980029428A/en
Application granted granted Critical
Publication of KR100196517B1 publication Critical patent/KR100196517B1/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/3824Operand accessing
    • G06F9/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • 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/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

1. 청구범위에 기재된 발명이 속한 기술분야1. TECHNICAL FIELD OF THE INVENTION

파이프라인 프로세서에서 바이패스 경로를 지원하는 레지스터 파일.Register file that supports the bypass path in the pipeline processor.

2. 발명이 해결하려고 하는 기술적 과제2. The technical problem to be solved by the invention

파이프라인 프로세서에서 바이패스 경로를 제공하기 위해 외부에 따로 인덱스 비교기와 MUX 회로를 사용하지 않고, 특별히 고안된 레지스터 셀에서 피드백 경로를 갖게 하여 바로 바이패스 경로를 제공하게 함.Instead of using an external index comparator and MUX circuit to provide a bypass path in the pipeline processor, it has a feedback path in a specially designed register cell to provide a bypass path directly.

3. 발명의 해결방법의 요지3. Summary of Solution to Invention

파이프라인 프로세서의 바이패스 경로를 지원하는 레지스터 파일 구조에 있어서, 바이패스 경로를 제공하는 레지스터 파일의 구조는 쓰기 인덱스와 읽기 인덱스의 디코딩 회로와, 데이터의 비트수에 따라 확장된 레지스터 셀, 읽혀진 데이터를 선택하는 회로를 구비함을 특징으로 하는 레지스터 파일 구조를 제공함.In the register file structure supporting the bypass path of the pipeline processor, the structure of the register file providing the bypass path includes the decoding circuits of the write index and the read index, the register cells extended according to the number of bits of data, and the read data. Providing a register file structure comprising a circuit for selecting.

4. 발명의 중요한 용도4. Important uses of the invention

본 발명은 파이프라인 프로세서의 레지스터 파일 구조에서, 외부에 부가적인 회로 없이 내부에 피드백 경로를 가지고 있어 셀 단위로 바이패스 경로를 지원하는 레지스터 파일 구조를 제공하여, 데이터 디펜던시에 의해 생기는 대기 상태를 줄이기 위한 회로로 사용됨.The present invention provides a register file structure for supporting a bypass path on a cell-by-cell basis in a register file structure of a pipeline processor having an internal feedback path without additional circuitry, thereby creating a standby state caused by data dependency. Used as a circuit to reduce

Description

파이프라인 프로세서에서 바이패스 경로를 지원하는 레지스터 파일Register File Supporting Bypass Paths in Pipeline Processors

본 발명은 파이프라인 프로세서에서 바이패스 경로를 지원하는 레지스터 파일에 관한 것으로, 특히 바이패스 경로를 제공하기 위해 외부에 따로 인덱스 비교기와 먹스 회로를 사용하지 않고, 특별히 고안된 레지스터 셀에서 피드백 경로를 갖게 하여 바로 바이패스 경로를 제공하게 하는 회로에 관한 것이다.The present invention relates to a register file for supporting a bypass path in a pipeline processor. In particular, the present invention provides a feedback path in a specially designed register cell without using an external index comparator and a mux circuit to provide a bypass path. It is directly related to a circuit that provides a bypass path.

일반적으로 파이프라인된 연산 처리기를 갖는 플로팅 포인트 유닛(Floating Point Unit)의 데이터를 저장하는 레지스터 파일 구조에 있어서, 파이프라인된 처리기들은 1이상의 처리 래턴시(latency)를 갖는다. 즉, 실제 연산이 시작된 후 몇 사이클 후에야 그 연산에 대한 결과를 얻을 수 있다. 따라서, 그 연산의 결과를 사용하는 그 다음 연산들은 앞의 연산이 끝난 후에야 시작될 수 있다. 그 때까지 다음 연산은 대기 상태로 기다리게 된다.In general, in a register file structure that stores data of a floating point unit having a pipelined arithmetic processor, the pipelined processors have one or more processing latencies. That is, a few cycles after the actual operation starts, the result of the operation can be obtained. Thus, subsequent operations using the result of that operation can be started only after the previous operation is finished. Until then, the next operation waits in a waiting state.

도 1a 는 종래 기술에 따른 파이프라인 단계의 일 실시예이다. 우선 첫 번째 연산(11)이 스택(stack)의 탑(top)에 해당되는 오퍼랜드(operand)(15)와 그 밑에 있는 오퍼랜드(16)로 덧셈을 하는 경우, 파이프라인 스테이지 단계에서 E 스테이지(21)는 레지스터 파일에서 데이터를 읽는 동작을 하고, 그 다음 x1(22), x2(23) 스테이지에서는 실제 덧셈을 하며, WF 스테이지(24)에서는 그 결과를 레지스터 파일의 스택 탑(15)에 쓰는 것을 나타낸다. 그 다음 연산(12)은 쓰여진 탑의 오퍼랜드(15)와 탑의 두 번째 밑에 있는 오퍼랜드(17)를 곱하여 다시 스택 탑(15)에 쓰는 것을 나타내는데, 덧셈의 결과가 WF 스테이지(24)가 되어야 곱셈을 할 수 있으므로 그때까지 기다려야 한다. 이때 덧셈의 latency는 3이라 한다. 또한, 곱셈의 E 스테이지(26, 27, 28, 29)에서는 레지스터 파일에서 데이터를 읽어야 하는데 실제 덧셈의 WF 스테이지(24)가 지나야만 레지스터 파일에 쓰여진 데이터를 읽을 수 있으므로 3 사이클(26, 27, 28)을 대기 상태에 있은 후에 데이터를 읽고 곱셈을 수행할 수 있다. 이와 같이 레지스터 파일로 스택 구조를 갖게 되면 스택의 탑에 데이터 디펜던시(dependency)가 많이 생기게 되어 전체적인 성능이 떨어지게 된다. 이러한 문제를 해결하기 위한 종래 기술로는 바이패스 경로를 갖는 파이프라인 구조가 있다. 도 1b 는 이러한 바이패스 경로를 갖는 파이프라인 단계의 일 실시예에 관한 것이다.1A is an embodiment of a pipeline stage according to the prior art. First, when the first operation 11 adds to the operand 15 corresponding to the top of the stack and the operand 16 below it, the E stage 21 in the pipeline stage stage. ) Reads data from the register file, then actually adds in the x1 (22) and x2 (23) stages, and writes the result to the stack top 15 of the register file in the WF stage 24. Indicates. The next operation 12 then multiplies the written operand 15 of the top by the operand 17 below the top of the tower and writes it back to the stack top 15, where the result of the addition must be the WF stage 24 for multiplication. You have to wait until then. At this time, latency of addition is called 3. In addition, the E stages 26, 27, 28, and 29 of the multiplication must read data from the register file. However, since the data written to the register file cannot be read until the WF stage 24 of the actual addition passes, three cycles (26, 27, After waiting 28), data can be read and multiplied. In this way, having a stack structure with a register file creates a lot of data dependency on the top of the stack, which degrades overall performance. The prior art for solving this problem is a pipeline structure having a bypass path. 1B relates to one embodiment of a pipeline stage having such a bypass path.

도면을 참조하면, 상기 도 1a 의 연산과 같은 구조이나, 앞의 덧셈의 결과가 레지스터 파일에 쓰여지는 WF 스테이지(24)가 동시에 다음 명령의 오퍼랜드 리드(read) 스테이지(28)가 되는 바이패스 경로를 갖는 레지스터 구조가 나타나 있다. 이렇게 되면, 대기 상태에 있는 사이클이 2 사이클(26, 27)이 되어 상기 도 1A 의 경우보다 1사이클의 이득을 얻을 수 있다. 전체적으로 이런 경우가 여러 번 발생하면 큰 이득을 얻을 수 있다.Referring to the drawings, a bypass path in which the WF stage 24 in which the result of the previous addition is written in the register file is simultaneously the operand read stage 28 of the next instruction. The register structure is shown. In this case, the cycle in the standby state becomes two cycles 26 and 27, and a gain of one cycle can be obtained than in the case of FIG. 1A. In total, this happens many times and you can benefit greatly.

이러한 바이패스 경로를 제공하기 위한 종래 기술로는, 바이패스 경로를 셀 자체에서 제공하지 않고 외부에 부가적인 회로를 두어 처리하였다. 즉, 레지스터 파일의 셀은 보통 래치 타입의 셀로 사용하고, 외부에 읽혀지는 레지스터의 인덱스와 현재 라이트되는 인덱스를 비교하여 같은 경우에는 라이트되는 데이터를 리드 포트로 보내는 방식을 취했다. 이 경우에는 리드와 라이트의 인덱스를 비교하는 회로와 데이터를 MUX하는 회로가 필요하다. 더구나 읽기와 쓰기 포트가 여러개인 경우에는 그에 해당되는 만큼의 비교기와 데이터 MUX가 필요해진다.In the prior art for providing such a bypass path, the bypass path is not provided by the cell itself, but an additional circuit is disposed outside. That is, a cell of a register file is normally used as a latch type cell, and the index of an externally read register is compared with the currently written index, and in this case, the data to be written is sent to the read port. In this case, a circuit for comparing the indices of reads and writes and a circuit for MUXing data are required. In addition, multiple read and write ports require as many comparators and data muxes as possible.

이와 같이 레지스터 파일의 외부에 부가되는 회로로 바이패스 경로를 제공하는 경우는 칩의 면적이 증가하는 단점이 있다.As such, when the bypass path is provided to a circuit added to the outside of the register file, the area of the chip increases.

본 발명이 이루고자 하는 기술적 과제는, 레지스터 파일에서 바이패스 경로를 제공하기 위해 외부에 따로 인덱스 비교기와 먹스 회로를 사용하지 않고, 피드백 경로를 가지는 레지스터 셀을 제공하여, 현재 가지고 있는 셀의 데이터를 다시 레지스터의 입력단으로 피드백 시켜 새로 들어오는 데이터와의 셀렉션 과정을 거치게 하여 바로 바이패스 경로를 제공하거나, 새로운 데이터가 레지스터에 써지게 하는 레지스터 파일 구조를 제공하는데 있다.An object of the present invention is to provide a register cell having a feedback path without using an index comparator and a mux circuit externally to provide a bypass path in a register file, so that data of a cell that is presently present is regenerated. It is to provide a bypass path by feeding back to the register input stage and selecting new data. Alternatively, the register file structure allows new data to be written to the register.

도 1a 는 종래 기술에 따른 파이프라인 단계의 일 실시예.1A is an embodiment of a pipeline stage according to the prior art.

도 1b 는 바이패스 경로를 갖는 파이프라인 단계의 일 실시예.1B is an embodiment of a pipeline stage with a bypass path.

도 2 는 본 발명에 따른 전체 레지스터 파일 구조도.2 is an overall register file structure diagram in accordance with the present invention;

도 3 은 본 발명에 따른 피드백 경로를 갖는 레지스터 셀의 구조도.3 is a structural diagram of a register cell having a feedback path in accordance with the present invention;

상기 과제를 달성하기 위한 본 발명은, 파이프라인 프로세서에서 바이패스 경로를 지원하는 레지스터 파일에 있어서, 바이패스 경로를 제공하는 레지스터 파일의 구조는 쓰기 인덱스와 읽기 인덱스의 디코딩 회로와, 데이터의 비트수에 따라 확장된 레지스터 셀과, 읽혀진 데이터를 선택하는 회로를 포함하는 것을 특징으로 하는 레지스터 파일을 제공한다.In the present invention for achieving the above object, in the register file supporting the bypass path in the pipeline processor, the structure of the register file providing the bypass path is the decoding circuit of the write index and read index, and the number of bits of data According to the present invention, there is provided a register file comprising an extended register cell and a circuit for selecting read data.

상기 디코딩 회로에 있어서, 쓰기 포트의 디코더는 쓰여질 레지스터의 엔트리의 번호를 가리키는 인덱스와 쓰기 동작이 수행됨을 나타내는 인에이블 신호를 입력으로 받아 해당되는 레지스터 엔트리의 라이트 인에이블 신호를 공급한다.In the decoding circuit, the decoder of the write port receives an index indicating the number of an entry of a register to be written and an enable signal indicating that a write operation is performed, and supplies a write enable signal of a corresponding register entry.

상기 디코딩 회로에 있어서, 읽기 포트의 디코더는 읽혀질 레지스터 엔트리의 번호를 가리키는 인덱스를 입력받아 리드 인에이블 신호를 공급한다.In the decoding circuit, a decoder of a read port receives an index indicating a number of a register entry to be read and supplies a read enable signal.

상기 쓰기 포트와 읽기 포트의 디코더는 쓰기와 읽기 포트의 개수에 해당되는 디코더를 갖는다.The decoder of the write port and the read port has a decoder corresponding to the number of write and read ports.

상기 레지스터 셀은 쓰여질 데이터를 선택하고 패스(pass)시키는 NMOS 트랜지스터들, 라이트 인에이블 신호를 모두 논리합하는 앤드 게이트(AND Gate), 이전 데이터와 새로운 데이터를 선택하는 MUX, 실제 데이터를 저장하고 있는 플립플롭 셀, 읽기 포트로 데이터를 보내는 것을 제어하는 트리-스테이트 버퍼(Tri-state Buffer)로 구성된다.The register cell includes NMOS transistors for selecting and passing data to be written, an AND gate for ORing all write enable signals, a MUX for selecting old and new data, and a flip for storing actual data. It consists of a tri-state buffer that controls the sending of data to the flop cell and read port.

상기 이전 데이터와 새로운 데이터를 선택하는 MUX는 상기 논리합의 출력신호로 두 데이터중 하나를 선택하고, 그 결과를 상기 트리-스테이드 버퍼의 입력으로 사용한다.The MUX selecting the old data and the new data selects one of the two data as the output signal of the logical sum, and uses the result as an input of the tree-stay buffer.

이하, 첨부한 도면을 참조하여 본 발명을 보다 상세히 설명한다.Hereinafter, with reference to the accompanying drawings will be described the present invention in more detail.

도 2는 본 발명에 따른 전체 레지스터 파일의 구조도이다. 본 발명에서 가정하는 레지스터 파일(40)은 2개의 라이트 포트(33, 34)와 2개의 리드 포트(37, 38)를 갖는 레지스터로 각각의 엔트리는 익스텐디드 더블 프리시젼(Extended Double precision)의 플로팅 포인트(Floating Point) 데이터를 저장할 수 있는 80비트로 구성되어 있다. 같은 사이클에 서로 다른 2곳에 동시에 라이트할 수 있고, 같은 엔트리를 2개의 리드 포트에서 동시에 읽을 수도 있다. 단지 같은 것에 서로 다른 라이트 포트에서 데이터를 쓰는 것은 외부의 다른 로직에서 디펜던시를 체크할 수 없도록 하였다.2 is a structural diagram of an entire register file according to the present invention. The register file 40 assumed in the present invention is a register having two write ports 33 and 34 and two read ports 37 and 38, with each entry floating in extended double precision. It consists of 80 bits that can store floating point data. You can write to two different locations at the same time and read the same entry from two read ports simultaneously. Just writing data from different light ports to the same thing prevents the external logic from checking for dependencies.

도면을 참조하면, 2개의 쓰기 포트(33, 34)는 쓰여질 80비트의 데이터인 wr_data1(41), wr_data2(42)와, 각각 3비트를 갖는 쓰여질 곳의 레지스터 엔트리의 인덱스 wr_index1(43), wr_index2(45))와, 2개의 라이트 인에이블 신호인 wr_enable1(44), wr_enable2(46)로 구성되어 있고, 2개의 읽기 포트(37, 38)는 읽을 엔트리의 인덱스인 rd_index1(47), rd_index2(48)와 읽기의 인에이블 신호인 rd_enable1(54), rd_enable2(56)로 구성되어 있다.Referring to the drawings, the two write ports 33 and 34 are wr_data1 (41) and wr_data2 (42), which are 80 bits of data to be written, and the index wr_index1 (43) and wr_index2 of the register entry where the bits are to be written, each having three bits. (45)) and two write enable signals, wr_enable1 (44) and wr_enable2 (46), and the two read ports (37, 38) are rd_index1 (47) and rd_index2 (48), which are indexes of entries to read. ) And rd_enable1 (54) and rd_enable2 (56) which are read enable signals.

쓰기 포트(37, 38)의 2개의 라이트 디코더(61, 62)는 레지스터 엔트리 각각의 라이트 인에이블을 만들기 위해 사용되고, 읽기 포트(37, 38)의 2개의 리드 디코더(63, 64)는 읽기 포트(37, 38)의 데이터를 레지스터 파일(40)로부터 해당 엔트리에 올려놓기 위해 사용된다. 읽기 포트(37, 38)의 마지막 MUX(65, 66)는 실제 읽기 동작이 인에이블되었을 경우에만 리드 포트 래치에 데이터를 쓰기 위한 것이다.Two write decoders 61, 62 of the write ports 37, 38 are used to make write enable of each of the register entries, and two read decoders 63, 64 of the read ports 37, 38 are read ports. It is used to put the data of (37, 38) from the register file 40 into the corresponding entry. The last MUXs 65, 66 of the read ports 37, 38 are for writing data to the read port latch only when the actual read operation is enabled.

레지스터 파일의 각 80비트 엔트리는 2개의 라이트 인에이블 신호 wr_enable1(44), wr_enable2(46)와, 각각의 데이터와, 2개의 리드 인에이블 신호 rd_enable1(54), rd_enable2(56)로 구성되어 진다.Each 80-bit entry of the register file consists of two write enable signals wr_enable1 (44) and wr_enable2 (46), respective data, and two read enable signals (rd_enable1 (54) and rd_enable2 (56)).

도 3은 피드백 경로를 갖는 레지스터 셀의 구조를 나타낸다.3 shows the structure of a register cell with a feedback path.

상기 바이패스 경로를 지원하기 위해서는 현재 쓰여지는 엔트리의 인덱스와 읽혀지는 엔트리의 인덱스를 비교하여 같은 경우에 한하여 현재 쓰여지는 데이터를 외부로 내보내는 회로를 사용한다. 그러나 본 발명은 읽혀지는 인덱스를 비교함 없이 피드백 경로를 추가하여 항상 쓰여지는 데이터가 외부로 나가게 함으로서 자연적으로 바이패스 경로를 지원하게 된다. 즉, 어떤 사이클에 새로운 데이터가 쓰여지는 경우가 아니면, 이전 데이터가 유지되는 경우가 있는데, 본 발명에서는 매 사이클마다 다시 데이터를 업데이트(update)함으로서 현재 쓰여지는 데이터가 바로 읽기 포트로 나갈 수 있도록 하였다.In order to support the bypass path, a circuit for comparing the index of the currently written entry with the index of the read entry is used to export the currently written data to the outside only in the same case. However, the present invention naturally supports the bypass path by adding a feedback path without comparing the indexes to be read so that always written data goes out. That is, unless new data is written in a cycle, old data may be maintained. In the present invention, data is written to the read port immediately by updating the data every cycle. .

도면을 참조하면, 우선 쓰기 포트에 쓰여지는 데이터(41, 42)는 하나의 NMOS 트랜지스터(71, 72)를 통과하는데 이 트랜지스터는 2포트 중에서 한쪽만 열려 데이터를 보낼 수 있고, 하나도 쓰여지지 않는 경우는 1번 노드(91)가 플로팅된다. 그 다음단의 2x1 MUX(77)는 현재 사이클에 데이터가 써지는 경우라면 NMOS 트랜지스터(71, 72)의 출력을 선택하고, 쓰여지지 않는 경우는 현재 D-플립플롭(78)에 저장되어 있는 데이터를 다시 선택한다. 따라서 쓰기가 수행되지 않을 경우에 1번 노드(91)가 플로팅되어도 아무런 문제가 없다. 이렇게 선택된 2번 노드(92)는 항상 매 사이클의 마지막에 다시 D-플립플롭(78)으로 래치되므로 쓰는 동작을 적절히 수행한다. 일반적으로 레지스터의 읽기 포트에서는 3번 노드(93)의 데이터를 가지고 읽기 동작을 수행하게 되어 있으나, 본 발명에서는 현재 쓰여지는 데이터가 바로 바이패스되어야 하기 때문에 2번 노드(92)를 외부로 출력하게 된다. 즉, 쓰기 동작이 없는 경우는 3번 노드(93)가 2x1 MUX(77)를 통해 다시 2번 노드(92)로 전달되고, 현재 쓰기 동작이 이루어지는 경우는 NMOS 트랜지스터(71, 72)를 거쳐 들어오는 쓰기 데이터가 밖으로 나가게 되는 것이다. 이 경우 2개의 라이트 포트중 어느 곳에서 오든지 관계없이 바이패스 할 수 있게 되는 것이다.Referring to the drawings, first, data 41 and 42 written to the write port pass through one NMOS transistor 71 and 72, which can open only one of the two ports to send data, and none of them are written. Node 91 is plotted. The next 2x1 MUX 77 selects the outputs of the NMOS transistors 71 and 72 if data is being written to the current cycle, or data currently stored in the D-flip-flop 78 if not written. Select again. Therefore, there is no problem even if node 1 is floated when writing is not performed. Node 2, thus selected, is always latched back to D-flip-flop 78 at the end of every cycle to properly perform the write operation. In general, the read port of the register performs a read operation with the data of the node 93, but in the present invention, since the currently written data must be bypassed immediately, the node 92 is output to the outside. do. That is, when there is no write operation, node 3 is transferred to node 2 again through 2x1 MUX 77, and when the write operation is performed, the node 93 enters through NMOS transistors 71 and 72. Write data will go out. In this case, you can bypass regardless of which of the two light ports you are coming from.

일반적으로 레지스터 파일에서 데이터를 읽는 경우, 읽혀지는 데이터를 그 사이클에서 바로 사용하는 경우는 이러한 구조를 사용할 수 없다. 왜냐하면 바이패스되는 경우에 valid한 데이터는 그 사이클의 중간 이후에 나오거나, 이와 같이 피드백 경로를 사용하는 구조에서는 리드 액세스 시간이 바로 읽는 경우에 비해 클 수밖에 없기 때문이다. 하지만, 전체적인 파이프라인 설계에서 E 단계(도 1A의 21)를 레지스터 파일에서 데이터를 읽는 단계로 정의하였기 때문에 그 사이클의 마지막까지 액세스 시간이 늘어나는 것에는 아무런 문제가 없다. 즉, 바이패스 경로를 지원하는 파이프라인 구조에서는 이와 같이 E 단계를 정의하는 것이 바람직하다. 본 발명에서 제시한 피드백 경로로 바이패스 경로를 지원하는 셀의 구조는 도 3과 같이 간단하게 설계할 수 있고, 전체적인 면적 면에서도 큰 이득을 볼 수 있다. 또한, 셀 자체의 구조에서 바이패스 경로를 지원함으로서, 외부에 어떠한 부가적인 회로가 추가되지 않아도 되는 잇점이 있다.In general, when reading data from a register file, this structure cannot be used if the data being read is used directly in the cycle. This is because valid data when bypassed comes after the middle of the cycle, or in a structure that uses a feedback path, the read access time is inevitably larger than when read directly. However, in the overall pipeline design, step E (21 in Fig. 1A) is defined as reading data from a register file, so there is no problem in increasing access time until the end of the cycle. In other words, in the pipeline structure supporting the bypass path, it is preferable to define the E level in this way. The structure of the cell supporting the bypass path with the feedback path proposed in the present invention can be simply designed as shown in FIG. 3, and a large gain can be obtained in terms of the overall area. In addition, by supporting the bypass path in the structure of the cell itself, there is an advantage that no additional circuitry needs to be added to the outside.

본 발명이 상기 실시 예에 한정되지 않으며, 많은 변형이 본 발명의 기술적 사상 내에서 당 분야의 통상적 지식을 가진 자에 의하여 가능함은 명백하다.The present invention is not limited to the above embodiments, and it is apparent that many modifications are possible by those skilled in the art within the technical spirit of the present invention.

상술한 바와 같이 본 발명에 따르면, 파이프라인 프로세서의 바이패스 경로를 지원하는 레지스터 셀을 제공함으로서, 기존에 사용하던 외부의 인덱스 비교기가 필요 없게 되고, 종래에 사용하던 외부의 데이터 MUX 회로는 셀 내부로 들어오므로 정형화된 구조로서 전체 면적을 줄일 수 있다. 또한, 읽기와 쓰기에 대한 포트가 여러개인 경우에 종래에는 그에 비례하여 커지던 인덱스와 데이터 MUX 회로가 본 발명에서는 읽기와 쓰기 포트의 수에 관계없이 일정한 회로를 제공할 수 있다.As described above, according to the present invention, by providing a register cell that supports a bypass path of a pipeline processor, an external index comparator used in the past is not required, and an external data MUX circuit used in the past is internal to a cell. Since it is a standardized structure, the total area can be reduced. In addition, in the case where there are several ports for read and write, the index and data MUX circuit, which is increased in proportion to the conventional one, may provide a constant circuit regardless of the number of read and write ports in the present invention.

Claims (6)

파이프라인 프로세서에서 바이패스 경로를 지원하는 레지스터 파일 구조에 있어서, 쓰기 인덱스와 읽기 인덱스의 디코딩 회로와, 데이터의 비트수에 따라 확장된 레지스터 셀과, 읽혀진 데이터를 선택하는 회로를 포함하는 것을 특징으로 하는 레지스터 파일.A register file structure supporting a bypass path in a pipeline processor, the register file structure comprising: a decoding circuit for write and read indices, an extended register cell according to the number of bits of data, and a circuit for selecting read data Register file. 제1항에 있어서, 상기 디코딩 회로의 쓰기 포트의 디코더는 쓰여질 레지스터의 엔트리의 번호를 가리키는 인덱스와 쓰기 동작이 수행됨을 나타내는 인에이블 신호를 입력으로 받아 해당되는 레지스터 엔트리의 라이트 인에이블 신호를 공급하는 것을 특징으로 하는 레지스터 파일.The decoder of claim 1, wherein the decoder of the write port of the decoding circuit receives an index indicating a number of an entry of a register to be written and an enable signal indicating that a write operation is performed, and supplies a write enable signal of a corresponding register entry. Register file, characterized in that. 제1항에 있어서, 상기 디코딩 회로의 읽기 포트의 디코더는 읽혀질 레지스터 엔트리의 번호를 가리키는 인덱스를 입력받아 리드 인에이블 신호를 공급하는 것을 특징으로 하는 레지스터 파일.The register file of claim 1, wherein the decoder of the read port of the decoding circuit receives an index indicating a number of a register entry to be read and supplies a read enable signal. 제1항에 있어서, 상기 디코딩 회로의 쓰기 포트와 읽기 포트의 디코더는 쓰기와 읽기 포트의 개수에 해당되는 디코더를 갖는 것을 특징으로 하는 레지스터 파일.The register file of claim 1, wherein the decoders of the write port and the read port of the decoding circuit have decoders corresponding to the number of write and read ports. 제1항에 있어서, 상기 레지스터 셀은 쓰여질 데이터를 선택하고 패스(pass)시키는 트랜지스터들, 라이트 인에이블 신호를 모두 논리합하는 게이트, 이전 데이터와 새로운 데이터를 선택하는 MUX, 실제 데이터를 저장하고 있는 플립플롭 셀, 읽기 포트로 데이터를 보내는 것을 제어하는 트리-스테이트 버퍼(Tri-state Buffer)를 포함하는 것을 특징으로 하는 레지스터 파일.2. The register cell of claim 1, wherein the register cell includes transistors for selecting and passing data to be written, a gate for ORing all of the write enable signals, a MUX for selecting old data and new data, and a flip for storing actual data. A register file comprising a tri-state buffer that controls sending data to the flop cell, read port. 제5항에 있어서, 상기 이전 데이터와 새로운 데이터를 선택하는 MUX는 상기 논리합의 출력신호로 두 데이터중 하나를 선택하고, 그 결과를 상기 트리-스테이드 버퍼의 입력으로 사용하는 것을 특징으로 하는 레지스터 파일.The register of claim 5, wherein the MUX selecting the old data and the new data selects one of two data as the output signal of the logical sum, and uses the result as an input of the tree-stay buffer. file.
KR1019960048685A 1996-10-25 1996-10-25 Register file of supporting bypass path in pipeline processor KR100196517B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960048685A KR100196517B1 (en) 1996-10-25 1996-10-25 Register file of supporting bypass path in pipeline processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960048685A KR100196517B1 (en) 1996-10-25 1996-10-25 Register file of supporting bypass path in pipeline processor

Publications (2)

Publication Number Publication Date
KR19980029428A true KR19980029428A (en) 1998-07-25
KR100196517B1 KR100196517B1 (en) 1999-06-15

Family

ID=19479075

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960048685A KR100196517B1 (en) 1996-10-25 1996-10-25 Register file of supporting bypass path in pipeline processor

Country Status (1)

Country Link
KR (1) KR100196517B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102252374B1 (en) 2014-09-05 2021-05-14 삼성전자주식회사 Ray-tracing Unit and Method for processing ray data

Also Published As

Publication number Publication date
KR100196517B1 (en) 1999-06-15

Similar Documents

Publication Publication Date Title
US7990780B2 (en) Multiple threshold voltage register file cell
US9250899B2 (en) Method and apparatus for spatial register partitioning with a multi-bit cell register file
US7526612B2 (en) Multiport cache memory which reduces probability of bank contention and access control system thereof
US5355335A (en) Semiconductor memory device having a plurality of writing and reading ports for decreasing hardware amount
US20090141566A1 (en) Structure for implementing memory array device with built in computation capability
US20060168393A1 (en) Apparatus and method for dependency tracking and register file bypass controls using a scannable register file
US20070157007A1 (en) Forward-pass dead instruction identification
US8462533B2 (en) System for retaining state data
KR20080113040A (en) At-speed multi-port memory array test method and apparatus
US8862835B2 (en) Multi-port register file with an input pipelined architecture and asynchronous read data forwarding
US7778105B2 (en) Memory with write port configured for double pump write
US8862836B2 (en) Multi-port register file with an input pipelined architecture with asynchronous reads and localized feedback
US6430083B1 (en) Register file scheme
US6834024B2 (en) Reduced size multi-port register cell
JP5999097B2 (en) Semiconductor integrated circuit and control method thereof
EP1632845B1 (en) Processor with a register file that supports multiple-issue execution
US20120008450A1 (en) Flexible memory architecture for static power reduction and method of implementing the same in an integrated circuit
US6175912B1 (en) Accumulator read port arbitration logic
JPH04228187A (en) Random-access-memory-array
KR19980029428A (en) Registers Supporting Bypass Paths in Pipeline Processors
KR0150351B1 (en) Testable memory array which is immune to multiple wordline assertions during scan testing
KR19990023422A (en) Decode signal comparison circuit
US6144609A (en) Multiport memory cell having a reduced number of write wordlines
US7366032B1 (en) Multi-ported register cell with randomly accessible history
US20050083719A1 (en) Semiconductor memory device used for cache memory

Legal Events

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

Payment date: 20050124

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee