KR100230846B1 - A dual function flow pipeline structure - Google Patents
A dual function flow pipeline structure Download PDFInfo
- Publication number
- KR100230846B1 KR100230846B1 KR1019960055795A KR19960055795A KR100230846B1 KR 100230846 B1 KR100230846 B1 KR 100230846B1 KR 1019960055795 A KR1019960055795 A KR 1019960055795A KR 19960055795 A KR19960055795 A KR 19960055795A KR 100230846 B1 KR100230846 B1 KR 100230846B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- stages
- stage
- selection signal
- functional unit
- Prior art date
Links
- 230000009977 dual effect Effects 0.000 title claims abstract description 12
- 230000006870 function Effects 0.000 claims abstract description 43
- 230000003139 buffering effect Effects 0.000 claims abstract description 3
- 238000012545 processing Methods 0.000 abstract description 12
- 238000010586 diagram Methods 0.000 description 12
- 238000000034 method Methods 0.000 description 9
- 230000003068 static effect Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000010924 continuous production Methods 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
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 스테이지(100), 복수개의 제 2 스테이지(200)와, 선택된 데이터를 입력받아 버퍼링을 수행하는 인터페이스 수단(400) 및 상기 인터페이스 수단(400)으로부터 입력된 데이터를 독립적 기능을 수행하는 복수개의 기능 유닛(500)을 구비한 이중 기능 흐름 파이프라인 구조에 있어서, 상기 복수개의 제 1 스테이지(100)와 상기 복수개의 제 2 스테이지(200)로부터 기능 유닛 식별자과 각 스테이지의 고유 기능 유닛 식별자를 입력받아 비교한 후, 그 비교 결과에 의한 데이터 선택신호에 따라 데이터를 선택하여, 그 선택된 데이터를 상기 인터페이스 수단(400)으로 출력하는 데이터 선택 수단(300)을 포함하여 구성되어 있으며, 상기 본 발명에 따르면 입력된 데이터 스트림의 기능 유닛 식별자를 가지고 각 스테이지의 고유 기능 유닛 식별자와 비교하여 복수개의 두 스테이지중 한 스테이지로부터의 데이터를 선택하여 인터페이스를 통해 각 기능 유닛으로 데이터를 전달하므로써 파이프라인의 데이터 처리가 원할하게 이루어지게 된다.The present invention relates to a dual function flow pipeline structure, and a structure of the present invention includes a plurality of first stages (100), a plurality of second stages (200) receiving a data stream composed of a functional unit identifier and data, An interface unit 400 for receiving and buffering selected data and a plurality of functional units 500 for performing independent functions of data input from the interface unit 400. In the dual function flow pipeline structure, A function unit identifier and a unique function unit identifier of each stage are input from the plurality of first stages 100 and the plurality of second stages 200 and are compared with each other to select data according to a data selection signal based on the comparison result And data selection means (300) for outputting the selected data to the interface means (400) According to the present invention, the functional unit identifier of the input data stream is compared with the unique functional unit identifier of each stage to select data from one of a plurality of stages, The data processing of the pipeline can be performed smoothly.
Description
본 발명은 파이프라인 구조에 관한 것으로서, 특히 입력된 데이터 스트림의 기능 유닛 식별자(FU Id. : Function Unit Identifier)를 가지고 각 스테이지(stage)의 고유 기능 유닛 식별자와 비교하여 복수개의 두 스테이지중 한 스테이지로부터의 데이터를 선택하여 인터페이스를 통해 각 기능 유닛으로 데이터를 전달하므로써 파이프라인(pipeline)의 데이터 처리가 원할하게 이루어지도록 되어진 이중 기능 흐름 파이프라인 구조에 관한 것이다.The present invention relates to a pipeline structure, and more particularly to a pipeline structure in which a functional unit identifier (FU Id.) Of an input data stream is compared with a unique functional unit identifier of each stage, To a dual function flow pipeline structure in which data processing of a pipeline is performed smoothly by selecting data from a plurality of function units and transferring data to each functional unit through an interface.
일반적으로, 파이프라이닝(pipelining)은 디지탈 컴퓨터에서 시간적인 병렬화(temporal parallelism)를 실현하는 수단을 제공한다. 컴퓨터에서 파이프라인이라는 개념은 생산 공장에서의 생산 라인 개념과 유사하다.In general, pipelining provides a means for realizing temporal parallelism in a digital computer. The concept of a pipeline in a computer is similar to the concept of a production line in a production plant.
파이프라이닝을 수행하기 위해서는, 입력 프로세스를 일련의 서브 프로세스들(a sequence of subprocess)로 세분해야 하는데, 상기 일련의 서브 프로세스들 각각은 파이프라인에서 다른 스테이지들과 동시에 동작하는 특정 하드웨어 스테이지에 의해 수행된다. 연속적인 프로세스들은 파이프내에서 흐름이 형성되고, 서브 프로세스 레벨에서 중첩 방식(overlapped fashion)으로 수행된다. 이와 같은 파이프 라 방식은 디지탈 컴퓨터의 처리량을 놀라울 정도로 향상시키게 된다.In order to perform pipelining, the input process must be subdivided into a sequence of subprocesses, each of which is performed by a specific hardware stage operating concurrently with other stages in the pipeline do. Continuous processes are formed in the pipe and are performed in an overlapped fashion at the sub-process level. This pipelined approach dramatically improves the throughput of digital computers.
이어서, 파이프라인 프로세서의 분류에 대해서 살펴보면, 다양한 형태의 파이프라인 프로세서들은 프로세싱 레벨 및 파이프라인 구성과 제어 전략에 따라 분류된다.Next, as to the classification of the pipeline processor, various types of pipeline processors are classified according to the processing level and pipeline configuration and control strategy.
우선, Handler 는 프로세싱 레벨에 따라 산술 파이프라이닝(arithmetic pipelining), 인스트럭션 파이프라이닝(instruction), 프로세서 파이프라이닝(processor pipelining)로 분류하였다.First, Handler classifies it as arithmetic pipelining, instruction pipelining, and processor pipelining according to the processing level.
도 1 은 산술 파이프라이닝을 설명하기 위한 도면으로서, 도 1 에 도시된 바와 같이 컴퓨터의 산술 논리유닛들은 다양한 데이터 포맷들내에서 파이프라인 동작을 수행하기 위해 분리되어 있다. 여기서, S 는 스테이지를 나타내고, L 은 래치를 나타낸다. 널리 알려진 산술 파이프라인의 예로는 Star-100 에서 사용되는 4-스테이지 파이프, TI-ASC 에서 사용되는 8-스테이지 파이프, Cray-1 에서 사용되는 14 이상의 파이프라인 스테이지, Cyber-205 에서 파이프당 26 이상의 스테이지 등이 있다.1 is a diagram for explaining arithmetic pipelining in which the arithmetic logic units of a computer are separated to perform pipeline operations in various data formats, as shown in Fig. Here, S denotes a stage, and L denotes a latch. Examples of popular arithmetic pipelines include 4-stage pipes used in Star-100, 8-stage pipes used in TI-ASC, 14 or more pipeline stages used in Cray-1, 26 or more per pipe in Cyber-205 Stage and so on.
도 2 는 인스트럭션 파이프라이닝을 설명하기 위한 도면으로서, 인스트럭션 스트림의 수행은 계속해서 일어나는 인스트럭션의 훼치, 디코드 그리고 오퍼랜드 훼치와 함께 현재 인스트럭션의 수행을 중첩시킴으로써 파이프라인화가 이루어진다. 이러한 기술은 또한 "인스트럭션 룩어헤드(instruction lookahead)"로 알려져 있다. 거의 모든 고성능 컴퓨터들은 인스트럭션 수행 파이프라인이 갖추어져 있다.FIG. 2 is a diagram for explaining instruction pipelining in which the execution of an instruction stream is pipelined by overlapping the execution of the current instruction with fetching, decode, and operand fetching of the instruction that continues. This technique is also known as an " instruction lookahead ". Almost all high-performance computers have an instruction execution pipeline.
도 3 은 프로세서 파이프라이닝을 설명하기 위한 도면으로서, 도 3 에 도시된 바와 같이 프로세서 파이프라이닝은 일련의 프로세서들에 의해 동일 데이터 스트림을 파이프라인 프로세싱하는 것을 말하는데, 상기 프로세서들은 각각의 특정한 태스크들을 처리한다. 데이터 스트림은 메모리 블록내에 저장된 결과와 함께 첫 번째 프로세서를 통과하는데, 이 데이터 스트림은 또한 두 번째 프로세서에 의해 받아들일 수 있다. 그때, 두 번째 프로세서는 세 번째 프로세서로 수행된 결과를 통과시킨다.3 is a diagram for explaining a processor pipelining. As shown in FIG. 3, a processor pipelining refers to pipelining the same data stream by a series of processors, which processes each specific task do. The data stream passes through the first processor with the results stored in the memory block, which can also be accepted by the second processor. Then, the second processor passes the result of the third processor.
그리고, Ramamoorthy 와 Li 는 파이프라인 구성과 제어 전략에 따라 단일기능(Unifunction)/다기능(Multifunction) 파이프라인, 정적(Static)/동적(Dynamic) 파이프라인, 스칼라(Scalar)/벡터(vector) 파이프라인으로 분류하였다.In addition, Ramamoorthy and Li can be divided into a Unifunction / Multifunction pipeline, a Static / Dynamic pipeline, a Scalar / vector pipeline, Respectively.
우선 단일기능/다기능 파이프라인에 대해서 살펴보면, 고정된 전용 기능을 갖는 파이프라인 유닛은 "단일 기능적(unifunctional)"이라고 부른다. Cray-1 은 다양한 스칼라, 벡터, 고정 소수점 및 부동 소수점 동작을 위해 12 단일 기능 파이프라인 유닛을 갖는다. 그리고, 다기능 파이프는 파이프라인내에 스테이지들의 다른 서브세트(subset)를 상호 연결하므로써 다른 시간에 또는 동시에 다른 기능들을 수행할 수 있다. TI-ASC 는 4 개의 다기능 파이프라인 프로세서들을 갖는데, 그들 각각은 다른 시간에 많은 산술 논리 동작을 재구성할 수 있다.First of all, for a single function / multifunction pipeline, pipeline units with fixed dedicated functions are called "unifunctional". Cray-1 has 12 single-function pipeline units for various scalar, vector, fixed-point, and floating-point operations. The multifunctional pipe can then perform other functions at different times or at the same time by interconnecting other subsets of stages within the pipeline. TI-ASC has four multifunction pipeline processors, each of which can reconstruct many arithmetic logic operations at different times.
그리고, 정적/동적 파이프라인을 살펴보면, 정적 파이프라인은 한 번에 단지 하나의 기능적 구성을 추정할 수 있다. 정적 파이프라인은 단일 기능적이거나 다기능적이다. 단지 같은 형태의 인스트럭션이 계속적으로 수행된다면 정적인 파이프내에서 파이프라이닝은 가능해진다. 정적인 파이프라인에 의해 수행된 기능은 자주 변해서는 안된다. 한편, 동적 파이프라인 프로세서는 동시에 존재하는 여러개의 기능적 구성이 허용된다. 이러한 관점에서 동적 파이프라인은 다기능적이어야 한다. 동적인 구성은 정적인 파이프라인에서 보다 훨씬 더 정교한 제어와 시퀀싱 메카니즘이 요구된다. 대부분의 컴퓨터는 단일 기능적이거나 다기능적인 정적인 파이프들을 갖추고 있다.And looking at the static / dynamic pipeline, the static pipeline can only estimate one functional configuration at a time. Static pipelines are single functional or multifunctional. Pipelining is only possible within a static pipe if the same type of instruction is executed continuously. Functions performed by static pipelines should not change often. On the other hand, the dynamic pipeline processor allows multiple functional configurations that exist simultaneously. In this regard, the dynamic pipeline should be multifunctional. Dynamic configuration requires much more sophisticated control and sequencing mechanisms than in a static pipeline. Most computers have single functional or multifunctional static pipes.
또한, 인스트럭션 또는 데이터 형태에 의존하는 파이프라인 프로세서들은 또한 스칼라 파이프라인과 벡터 파이프라인으로 분류된다. 스칼라 파이프라인은 "DO" 루프의 제어하에 일련의 스칼라 오퍼랜드를 처리한다. 작은 "DO" 루프내의 인스트럭션은 종종 인스트럭션 버퍼로 미리 훼치(Prefetch)된다. 반복되는 스칼라 인스트럭션을 위해 요구된 스칼라 오퍼랜드는 파이프라인에 오퍼랜드를 계속적으로 공급하기 위해 데이터 캐쉬(data cache)로 옮겨진다. IBM 시스템/360 모델 91 은 스칼라 파이프라인을 갖춘 장치의 전형적인 예이다. 하지만, 모델 91 에는 캐쉬가 존재하지 않는다. 한편, 벡터 파이프라인은 벡터 오퍼랜드에 대한 벡터 인스트럭션을 처리하기 위하여 특별히 설계된다. 벡터 인스트럭션을 갖는 컴퓨터는 벡터 프로세서라고 부르며, 이러한 벡터 프로세서의 설계는 스칼라 파이프라인의 설계로부터 확장된 것이다. 벡터 파이프라인내에 있는 벡터 오퍼랜드의 처리는 스칼라 파이프라인 내에서 처럼 소프트웨어의 제어하에 있다기 보다는 오히려 펌웨어(firmware)와 하드웨어의 제어하에 있다.In addition, pipeline processors that rely on instructions or data types are also classified as scalar pipelines and vector pipelines. The scalar pipeline processes a series of scalar operands under the control of a "DO" loop. Instructions in a small "DO" loop are often pre-fetched into the instruction buffer. The scalar operands required for repeated scalar instructions are moved to the data cache to continuously supply the operands to the pipeline. The IBM System / 360 Model 91 is a typical example of a device with a scalar pipeline. However, Model 91 does not have a cache. On the other hand, the vector pipeline is specially designed for processing vector instructions for vector operands. Computers with vector instructions are called vector processors, and the design of such vector processors is an extension of the scalar pipeline design. The processing of vector operands in a vector pipeline is under the control of firmware and hardware rather than under software control as in a scalar pipeline.
이어서, 선형 파이프라이닝(linear pipelining)에 대해서 살펴보면 다음과 같다.Next, the linear pipelining will be described as follows.
일정한 지연을 가지는 파이프라인에 있어서, 모든 태스크(컴퓨터로 처리되는 일의 최소 단위)들은 모든 스테이션내에서 동일한 처리 시간을 갖는다. 이상적인 생산 라인내의 스테이션들은 충분한 자원 사용과 함께 동시적으로 수행된다. 그러나, 실질적으로 연속적인 스테이션들은 동일한 지연을 갖지 않는다. 생산 라인의 최적의 분배는 많은 요인에 의해 영향을 받는데, 그러한 요인으로는 워킹 유니트의 질(효율성과 수용성), 요구되는 처리 속도와 전체 생산 라인의 비용 등이 있다.For a pipeline with a constant delay, all tasks (the smallest units of work done by the computer) have the same processing time in all stations. Stations in the ideal production line are performed concurrently with sufficient resource use. However, substantially continuous stations do not have the same delay. The optimal distribution of the production line is affected by many factors, including the quality of the working unit (efficiency and acceptability), the processing speed required and the cost of the entire production line.
주어진 태스크 T 에 대한 서브 태스크(subtask)들의 집합 {T1,T2,...,Tk} 의 선행 관계를 보면, 선행하는 태스크 Ti(i〈j)가 끝나기 전까지는 후행하는 태스크 Tj가 시작되지 않음을 나타낸다. 모든 서브 태스크들의 상호 의존도는 선행 그래프(precedence graph)를 형성하며, 선형 파이프라인(Linear pipeline)은 선형 선행 그래프에 따라 일련의 서브 태스크들을 처리할 수 있다.In the precedence relation of a set of subtasks {T 1 , T 2 , ..., T k } for a given task T, it is assumed that a preceding task T i (i <j) j is not started. The interdependence of all subtasks forms a precedence graph, and a linear pipeline can process a series of subtasks according to a linear precedence graph.
도 4 은 선형 파이프라인 프로세서의 기본 구조도로서, L 은 래치, C 는 클럭 그리고 Si는 i 번째 스테이지를 나타낸다.4 shows a basic structure of a linear pipeline processor in which L denotes a latch, C denotes a clock and S i denotes an i-th stage.
도 4 에 도시된 파이프라인은 일련의 처리 스테이지들(a cascade of processing stages)로 구성되고, 상기 스테이지들은 파이프를 통해 흐르는 데이터 스트림에 대한 연산(arithmetic) 또는 논리(logic) 동작을 수행하는 순수한 조합 회로(combinational circuit)이다. 또한, 상기 스테이지들은 고속 인터페이스 래치들에 의해 분리된다. 이러한 래치들은 스테이지들간의 즉각적인 결과를 유지하고 있기 위한 빠른 레지스터들이다. 인접 스테이지들간의 정보 흐름은 동시적으로 모든 래치에 인가되는 공통 클럭에 의해 제어된다.The pipeline shown in Fig. 4 consists of a cascade of processing stages, which are pure combinations of performing arithmetic or logic operations on the data stream flowing through the pipe A combinational circuit. In addition, the stages are separated by high-speed interface latches. These latches are fast registers to maintain immediate results between stages. The information flow between adjacent stages is controlled simultaneously by a common clock applied to all the latches.
이어서, 선형 파이프라인의 클럭 기간(Clock period), 속도 증가(Speedup), 효율성(Efficiency), 처리량(Throughput) 등에 대해서 살펴보기로 한다.Next, the clock period, speedup, efficiency and throughput of the linear pipeline will be described.
1)클럭 기간(Clock period)1) Clock period
각 스테이지 Si내에 있는 논리 회로는 τi라고 표시되는 시간 지연을 갖는다. 그리고, 각 인터페이스 래치의 시간 지연을 τl라고 하면, 선형 파이프라인의 클럭 기간은 다음 식과 같이 나타낼 수 있다.The logic circuit in each stage S i has a time delay denoted τ i . Then, letting the time delay of each interface latch be τ l , the clock period of the linear pipeline can be expressed by the following equation.
클럭 기간의 역수는 파이프라인 프로세서의 주파수 f = 1/τ 로 표현된다.The inverse of the clock period is expressed as the frequency f = 1 / tau of the pipeline processor.
도 5 는 선형 파이프라인의 중첩 동작을 설명하기 위한 4-스테이지 파이프라인 프로세서의 공간-시간 다이어그램으로서, X 축은 시간을 나타내고, Y 축은 공간을 나타내며,는 i 번째 태스크(task)내에 있는 j 번째 서브태스크(subtask)를 나타낸다.5 is a space-time diagram of a four-stage pipeline processor to illustrate the superposition operation of a linear pipeline, where the X axis represents time, the Y axis represents space, Represents the jth subtask in the i-th task.
일단, 파이프가 채워지면 스테이지 수에 독립하는 클럭 기간당 하나의 결과를 출력하게 된다. 이상적으로 k 스테이지를 갖는 선형 파이프라인은 Tk= k +(n-1) 클럭 기간내에 n 태스크를 처리할 수 있는데, 여기서 k 사이클은 파이프라인을 채우거나 첫 번째 태스크의 수행을 완료하기 위해 사용되며, n-1 사이클은 나머지 n-1 태스크들을 완료하기 위해 요구된다. 상기와 같은 수의 태스크들은 T1= n*k 시간 지연내에서 동일 기능을 갖는 넌-파이프라인(nonpipeline) 프로세서에서 수행될 수 있다.Once the pipe is filled, it will output one result per clock period independent of the number of stages. Ideally, a linear pipeline with k stages can process n tasks within the T k = k + (n-1) clock period, where k cycles are used to fill the pipeline or complete the execution of the first task And an n-1 cycle is required to complete the remaining n-1 tasks. Such a number of tasks may be performed in a non-pipeline processor having the same function within a time delay T 1 = n * k.
2) 속도 증가(Speedup)2) Speedup (Speedup)
동일한 넌-파이프라인 프로세서에 대한 k-스테이지 선형 파이프라인 프로세서의 속도 증가(Speedup)는 다음 식과 같이 정의할 수 있다.The speedup of the k -stage linear pipeline processor for the same non-pipelined processor can be defined as:
선형 파이프라인이 제공할 수 있는 최대 속도 증가는 k 이며, 여기서 k 는 파이프내의 스테이지 수이다. 이러한 최대 속도 증가는 인스트럭션(instructions), 인터럽트(interrupts), 프로그램 브랜치(program branch) 그리고 다른 요인들 간의 데이터 의존도 때문에 완벽하게 성취될 수는 없다. 순서없는 인스트럭션 수행에 의해 발생된 대기상태는 많은 파이프라인 사이클을 소모시킨다.The maximum velocity increase that the linear pipeline can provide is k, where k is the number of stages in the pipe. This maximum rate increase can not be fully achieved due to data dependencies between instructions, interrupts, program branches, and other factors. The wait state caused by the execution of unordered instructions consumes many pipeline cycles.
상기 수학식 1 에서 클럭 기간을 정의하고, 상기 수학식 2 에서 속도 증가를 정의한 후에, 선형 파이프라인 프로세서의 수행 능력을 측정하기 위한 두 개의 단위를 살펴보면 도 5 에 도시된 공간-시간 다이어그램내의 시간 간격(time interval)과 스테이지 공간(stage space)이 있는데, 이러한 시간 간격과 스테이지 공간의 산물을 시간-공간 스팬(time-space span)이라고 한다. 주어진 시간-공간 스팬은 비지(busy) 상태 또는 아이들(idle) 상태에 존재할 수 있지만, 두 상태 동시에 존재할 수는 없다. 이러한 개념은 파이프라인의 성능을 측정하는데 사용된다.The two units for measuring the performance of the linear pipeline processor after defining the clock period in Equation (1) and defining the rate increase in Equation (2) are as follows. The time intervals in the space- (time interval) and stage space (stage space). This time interval and the product of the stage space are called time-space spans. A given time-space span can be in a busy or idle state, but not both states at the same time. This concept is used to measure the performance of the pipeline.
3) 효율성(efficiency)3) Efficiency
선형 파이프라인의 효율성은 모든 비지(busy) 그리고 아이들(idle) 시간-공간 스팬의 합에 해당하는 전체 시간-공간 스팬에 대한 비지(busy) 시간-공간 스팬의 백분율에 의해 측정된다. 즉, 파이프라인의 효율성은 다음 식과 같이 정의될 수 있다.The efficiency of the linear pipeline is measured by the percentage of busy time-space span for the total time-space span corresponding to the sum of all busy and idle time-space spans. That is, the efficiency of the pipeline can be defined as follows.
여기서, n 은 태스크(즉, 인스트럭션)의 수를 나타내며, k 는 파이프라인 스테이지의 수를 나타내고, τ 는 선형 파이프라인의 클럭 기간을 나타낸다. n→∞ 일 때 η→1 이 되는데, 이것은 파이프라인을 통해 진행되는 태스크의 수가 커지면 커질수록 파이프라인의 효율성이 좋아진다는 것을 의미한다. 그리고, 수학식 2 와 수학식 3 으로부터 η=Sk/k 을 얻어낼 수 있으며, 이러한 것은 이상적인 속도 증가 k 에 대한 실제적인 속도 증가의 비율로서 선형 파이프라인의 효율성을 다른 관점에서 제공한다. 파이프라인의 안정 상태에서 n ≫ k 이면, 효율성 η 가 1 로 접근해야 한다. 그러나, 이러한 이상적인 경우는 프로그램 브랜치, 인터럽트, 데이터 의존도와 다른 요인등 때문에 모든 시간이 유지되지 않는다.Where n represents the number of tasks (i.e., instructions), k represents the number of pipeline stages, and t represents the clock period of the linear pipeline. If n → ∞, then η → 1, which means that the larger the number of tasks going through the pipeline, the better the efficiency of the pipeline. From Equations (2) and (3), 侶 = S k / k can be obtained, which provides a different view of the efficiency of the linear pipeline as a ratio of the actual rate increase to the ideal rate increase k. If n »k in the steady state of the pipeline, the efficiency η should approach 1. However, this ideal case is not maintained all the time because of program branches, interrupts, data dependencies and other factors.
4) 처리량(Throughput)4) Throughput
처리량은 단위 시간당 파이프라인에 의해 완료될 수 있는 결과(태스크)의 수로 정의되는데, 이러한 비율은 파이프라인의 계산 능력을 반영한다. 즉, 처리량은 다음식과 같이 정의된다.Throughput is defined as the number of results (tasks) that can be completed by the pipeline per unit time, which reflects the computational power of the pipeline. That is, the throughput is defined by the following equation.
여기서, n 은 관찰 기간 kτ+(n-1)τ 동안 진행된 태스크의 총 수와 같다. 이상적인 경우, η→1 일 때 ω= 1/τ = f 이고, 이것은 선형 파이프라인의 최대 처리량이 주파수와 동일하다는 것을 의미하며, 그 주파수는 클럭 기간당 하나의 출력 결과와 일치한다.Where n is equal to the total number of tasks progressed during the observation period kτ + (n-1) τ. Ideally, η → 1 means ω = 1 / τ = f, which means that the maximum throughput of the linear pipeline is equal to the frequency, which corresponds to one output per clock period.
도 6 은 종래의 이중 기능 확인 흐름을 갖는 파이프라인의 구조도로서, 종래의 파이프라인 구조는 복수개의 제 1 스테이지(100)과; 복수개의 제 2 스테이지(200); 인터페이스 수단(400); 및 복수개의 기능 유닛(500-1∼500-n)으로 구성되어 있다.FIG. 6 is a structural view of a pipeline having a conventional dual function verification flow, in which a conventional pipeline structure comprises a plurality of first stages 100; A plurality of second stages (200); Interface means (400); And a plurality of function units 500-1 to 500-n.
여기서, 상기 복수개의 제 1 스테이지(100)는 제 1-1 스테이지(100-1), 제 1-2 스테이지(100-2), 제 1-3 스테이지(100-3), 제 1-4 스테이지(100-4)등이 직렬로 연결되어 있고, 상기 복수개의 제 2 스테이지(200)도 제 2-1 스테이지(200-1), 제 2-2 스테이지(200-2), 제 2-3 스테이지(200-3), 제 2-4 스테이지(200-4)등이 직렬로 연결되어 있다.Here, the plurality of first stages 100 includes a first-stage 100-1, a first-second stage 100-2, a first-first stage 100-3, a first- The second stage 200-1 and the second stage 200-2 are connected in series, and the plurality of second stages 200 are also connected to the second-1 stage 200-1, the second-2 stage 200-2, Stage 200-3, stage 2-4 stage 200-4, and the like are connected in series.
그리고, 상기 인터페이스 수단(400)은 제 1 버퍼(400-1), 제 2 버퍼(400-2), 제 3 버퍼(400-3), 제 4 버퍼(400-4)등이 병렬로 배열되어 있다.The interface means 400 includes a first buffer 400-1, a second buffer 400-2, a third buffer 400-3 and a fourth buffer 400-4 arranged in parallel have.
또한, 상기 복수개의 기능 유닛(500-1∼500-n)은 독립적인 기능을 수행하기 위;해 제 1 기능 유닛(500-1), 제 2 기능 유닛(500-2), 제 3 기능 유닛(500-3), 제 4 기능 유닛(500-4)등이 병렬로 배열되어 있다.The plurality of functional units 500-1 to 500-n may include a first functional unit 500-1, a second functional unit 500-2, a third functional unit 500-1, A second functional unit 500-3, a fourth functional unit 500-4, and the like are arranged in parallel.
상술한 바와 같이 구성된 종래의 이중 기능 확인 흐름을 갖는 파이프라인 구조에서는 복수개의 제 1 스테이지(100)중 한 스테이지에 있는 데이터와 복수개의 제 2 스테이지(200)중 한 스테이지에 있는 데이터를 인터페이스 수단(400)으로 전달할 때, 데이터를 적절히 선택하여 각 기능 유닛으로 전달할 블록이 요구된다.In the pipeline structure having the conventional dual function confirmation flow configured as described above, data in one stage of the plurality of first stages 100 and data in one stage of the plurality of second stages 200 are transmitted to the interface means 400, a block is required to transfer data to each functional unit by appropriately selecting the data.
이에 본 발명은 상기와 같은 요구를 충족시키기 위하여 안출된 것으로, 입력된 데이터 스트림의 기능 유닛 식별자를 가지고 각 스테이지의 고유 기능 유닛 식별자와 비교하여 복수개의 두 스테이지중 한 스테이지로부터의 데이터를 선택하여 인터페이스를 통해 각 기능 유닛으로 데이터를 전달하므로써 파이프라인의 데이터 처리가 원할하게 이루어지도록 되어진 이중 기능 흐름 파이프라인 구조를 제공하는데 그 목적이 있다.In order to satisfy the above-described needs, the present invention provides a method and apparatus for selecting data from one of a plurality of stages by comparing a functional unit identifier of an input data stream with a unique functional unit identifier of each stage, The present invention provides a dual function flow pipeline structure in which data is transferred to each functional unit through a pipeline to process data of the pipeline smoothly.
상기와 같은 목적을 달성하기 위한 본 발명의 이중 기능 흐름 파이프라인 구조는, 기능 유닛 식별자와 데이터로 이루어진 데이터 스트림을 입력받는 복수개의 제 1 스테이지, 복수개의 제 2 스테이지와, 선택된 데이터를 입력받아 버퍼링하는 인터페이스 수단 및 상기 인터페이스 수단으로부터 입력된 데이터를 독립적 기능을 수행하는 복수개의 기능 유닛을 구비한 이중 기능 흐름 파이프라인 구조에 있어서, 상기 복수개의 제 1 스테이지와 상기 복수개의 제 2 스테이지로부터 기능 유닛 식별자과 각 스테이지의 고유 기능 유닛 식별자를 입력받아 비교한 후, 그 비교 결과에 의한 데이터 선택신호에 따라 데이터를 선택하여 그 선택된 데이터를 상기 인터페이스 수단으로 출력하는 데이터 선택 수단을 포함하여 구성된 것을 특징으로 한다.According to an aspect of the present invention, there is provided a dual function flow pipeline structure including a plurality of first stages and a plurality of second stages, each of which receives a data stream including a functional unit identifier and data, And a plurality of function units for performing independent functions of data input from the interface means, wherein the functional unit identifier and the functional unit identifier are transmitted from the plurality of first stages and the plurality of second stages, And a data selecting means for receiving and comparing the unique functional unit identifier of each stage, selecting data according to the data selection signal based on the comparison result, and outputting the selected data to the interface means.
상기와 같은 본 발명에 따르면 입력된 데이터 스트림의 기능 유닛 식별자를 가지고 각 스테이지의 고유 기능 유닛 식별자와 비교하여 복수개의 두 스테이지중 한 스테이지로부터의 데이터를 선택하여 인터페이스를 통해 각 기능 유닛으로 데이터를 전달하므로써 파이프라인의 데이터 처리가 원할하게 이루어진다.According to the present invention, the functional unit identifier of the input data stream is compared with the unique functional unit identifier of each stage to select data from one of the two stages, and data is transmitted to each functional unit through the interface The data processing of the pipeline is performed smoothly.
도 1 은 산술 파이프라이닝을 설명하기 위한 도면,1 is a view for explaining arithmetic pipelining,
도 2 는 인스트럭션 파이프라이닝을 설명하기 위한 도면,Figure 2 is a diagram for describing instruction pipelining;
도 3 은 프로세서 파이프라이닝을 설명하기 위한 도면,3 is a diagram for describing a processor pipelining,
도 4 은 선형 파이프라인 프로세서의 기본 구조도,Figure 4 is a basic schematic diagram of a linear pipeline processor,
도 5 는 선형 파이프라인의 중첩 동작을 설명하기 위한 4-스테이지 파이프라인 프 로세서의 공간-시간 다이어그램,5 is a space-time diagram of a four-stage pipeline processor to illustrate the superposition operation of a linear pipeline,
도 6 은 종래의 이중 기능 확인 흐름을 갖는 파이프라인의 구조도,Figure 6 is a schematic diagram of a pipeline with a conventional dual function verification flow;
도 7 은 본 발명에 따른 이중 기능 흐름 파이프라인의 구조도,Figure 7 is a schematic diagram of a dual function flow pipeline according to the present invention;
도 8 은 도 7 에 도시된 각 선택 신호 발생부의 세부 구성도이다.8 is a detailed configuration diagram of each selection signal generating unit shown in FIG.
* 도면의 주요부분에 대한 부호의 설명DESCRIPTION OF THE REFERENCE NUMERALS
100 : 복수개의 제 1 스테이지 200 : 복수개의 제 2 스테이지100: a plurality of first stages 200: a plurality of second stages
300 : 데이터 선택수단 300A : 복수개의 선택신호 발생부300: Data selection means 300A: A plurality of selection signal generation units
300B : 복수개의 다중화부 G1, G2: 제 1, 제 2 배타적논리합 게이트300B: a plurality of multiplexing units G1 and G2: first and second exclusive OR gates
400 : 인터페이스 수단 400-1∼400-n : 복수개의 버퍼400: Interface means 400-1 to 400-n:
500-1∼500-n : 복수개의 기능 유닛 Si: i 번째 스테이지500-1 to 500-n: plurality of functional units S i : i-th stage
L : 래치 C : 클럭L: latch C: clock
Mi: i 번째 메모리 블록 Proc. n : n 번째 프로세서M i : i-th memory block Proc. n: nth processor
: i 번째 태스크중 j 번째 서브태스크 : The jth subtask of the i-th task
이하, 첨부된 도면을 참조하여 본 발명에 대해서 설명하면 다음과 같다.Hereinafter, the present invention will be described with reference to the accompanying drawings.
도 7 은 본 발명에 따른 이중 기능 흐름 파이프라인의 구조도로서, 본 발명의 파이프라인 구조는 제 1 스테이지(100)와, 제 2 스테이지(200), 데이터 선택수단(300), 인터페이스 수단(400), 및 기능 유닛(500)으로 구성되어 있다.The pipeline structure of the present invention includes a first stage 100, a second stage 200, a data selection means 300, an interface means 400, And a functional unit 500, as shown in Fig.
여기서, 상기 제 1 스테이지(100)은 제 1-1 스테이지(100-1), 제 1-2 스테이지(100-2), 제 1-3 스테이지(100-3), 제 1-4 스테이지(100-4) … 제 1-n 스테이지(100-n: 도시하지 않음)등이 직렬로 연결되어 있고, 상기 제 2 스테이지(200)도 제 2-1 스테이지(200-1), 제 2-2 스테이지(200-2), 제 2-3 스테이지(200-3), 제 2-4 스테이지(200-4) … 제 2-n 스테이지(200-n: 도시하지 않음)등이 직렬로 연결되어 있는 파이프라인 구조들로서 기능 흐름 파이프라인(Function Flow Pipeline: FFP)이라고 부른다. 메모리(도시하지 않음)로부터 제 1 스테이지(100) 또는 제 2 스테이지(200)로 입력되는 데이터 스트림은 기능 유닛 식별자와 데이터로 구성되어 있다. 일반적인 파이프라인은 데이터의 처리를 향상시키기 위해 사용하지만, 여기서의 기능 흐름 파이프 라인(FFP)은 데이터의 전달을 위해서 사용한다.Here, the first stage 100 includes a first-stage 100-1, a first-second stage 100-2, a first-first stage 100-3, a first-stage 100 -4) … Stage 200-1, a second-stage 200-2 (not shown) and the like are connected in series, and the second stage 200 is also connected to the second-stage 200-1, ), The second to third stages 200-3, the second to fourth stages 200-4, ... And a second-n stage 200-n (not shown), which are connected in series, are called a Function Flow Pipeline (FFP). A data stream input from a memory (not shown) to the first stage 100 or the second stage 200 is composed of a functional unit identifier and data. The general pipeline is used to improve the processing of data, but the Functional Flow Pipeline (FFP) here is used for data transfer.
그리고, 상기 데이터 선택 수단(300)은 선택 신호 발생부(300A)와 다중화부(300B)로 구성되어 있는데, 상기 복수개의 제 1 스테이지(100)와 상기 복수개의 제 2 스테이지(200)로부터 기능 유닛 식별자과 각 스테이지의 고유 기능 유닛 식별자를 입력받아 비교한 후, 그 비교 결과에 의한 데이터 선택신호에 따라 데이터를 선택하여, 그 선택된 데이터를 후단의 인터페이스 수단(400)으로 출력한다. 이때 상기 선택 신호 발생부(300A)는 제 1 선택 신호 발생부(300A-1), 제 2 선택 신호 발생부(300A-2), 제 3 선택 신호 발생부(300A-3), 제 4 선택 신호 발생부(300A-4) … 제 n 선택 신호 발생부(300A-n: 도시하지 않음) 등이 병렬로 배열되어 있고, 상기 다중화부(300B)는 제 1 다중화부(300B-1), 제 2 다중화부(300B-2), 제 3 다중화부(300B-3), 제 4 다중화부(300B-4) … 제 n 다중화부(300B-n: 도시하지 않음) 등이 병렬로 배열되어 있다.The data selection unit 300 includes a selection signal generation unit 300A and a multiplexing unit 300B. The data selection unit 300 selects the plurality of first stages 100 and the plurality of second stages 200, And outputs the selected data to the interface means 400 at the subsequent stage. The interface unit 400 receives the data from the interface unit 400, At this time, the selection signal generator 300A includes a first selection signal generator 300A-1, a second selection signal generator 300A-2, a third selection signal generator 300A-3, Generation unit 300A-4 ... And a nth selection signal generator 300A-n (not shown) are arranged in parallel. The multiplexer 300B includes a first multiplexer 300B-1, a second multiplexer 300B-2, The third multiplexing unit 300B-3, the fourth multiplexing unit 300B-4, ... And an n-th multiplexer 300B-n (not shown) are arranged in parallel.
상기 인터페이스 수단(400)은 제 1 버퍼(400-1), 제 2 버퍼(400-2), 제 3 버퍼(400-3), 제 4 버퍼(400-4) … 제 n 버퍼(400-n: 도시하지 않음) 등이 병렬로 배열되어 있으며, 상기 데이터 선택 수단(300)으로부터 선택된 데이터를 입력받아 버퍼링을 수행한다.The interface means 400 includes a first buffer 400-1, a second buffer 400-2, a third buffer 400-3, a fourth buffer 400-4, And an nth buffer 400-n (not shown) are arranged in parallel, and buffering is performed by receiving data selected from the data selecting means 300. [
상기 기능 유닛(500)은 제 1 기능 유닛(500-1), 제 2 기능 유닛(500-2), 제 3 기능 유닛(500-3), 제 4 기능 유닛(500-4) … 제 n 기능 유닛(500-n: 도시하지 않음) 등이 병렬로 배열되어 있다. 즉, 상기 복수개의 기능 유닛(500-1∼500-n)은 레이턴시(Latency) 크기의 순서에 따라 병렬로 배열되어 있는데, 이때 레이턴시는 클럭의 수로 나타나며 클럭의 수가 많이 필요한 기능 유닛부터 순서대로 상단에 배열된다. 상기 복수개의 기능 유닛(500-1∼500-n)중 각각의 기능 유닛은 상기 인터페이스 수단(400)으로부터 데이터를 입력받아 독립적인 기능을 수행한다. 상기 복수개의 기능 유닛(500-1∼500-n)의 예로는 덧셈기, 곱셈기, 나눗셈기 등 여러 가지가 사용될 수 있다.The functional unit 500 includes a first functional unit 500-1, a second functional unit 500-2, a third functional unit 500-3, a fourth functional unit 500-4 ... And an n-th functional unit 500-n (not shown) are arranged in parallel. That is, the plurality of functional units 500-1 to 500-n are arranged in parallel in the order of latency. In this case, the latency is expressed by the number of clocks, . Each of the plurality of function units 500-1 to 500-n receives data from the interface unit 400 and performs an independent function. Examples of the plurality of functional units 500-1 to 500-n may include an adder, a multiplier, and a divider.
한편, 도 8 은 도 7 에 도시된 각각의 선택 신호 발생부의 세부 구성도로서, 각각의 선택 신호 발생부(300A-1∼300A-n)는 두 개의 배타적 논리합 게이트 즉, 제 1 배타적 논리합 게이트(G1)와 제 2 배타적 논리합 게이트(G2)로 구성되어 있다. 도 8 에 표시된 sfu-1 는 제 1 스테이지(100)의 고유 기능 유닛 식별자를 나타내고, sfu-2 는 제 2 스테이지(200)의 고유 기능 유닛 식별자를 나타낸다.FIG. 8 is a detailed configuration diagram of each selection signal generator shown in FIG. 7. Each of the selection signal generators 300A-1 to 300A-n includes two exclusive OR gates, that is, a first exclusive OR gate G1 and a second exclusive OR gate G2. The sfu-1 shown in Fig. 8 represents the unique functional unit identifier of the first stage 100, and sfu-2 represents the unique functional unit identifier of the second stage 200. [
상기 제 1 배타적 논리합 게이트(G1)는 상기 복수개의 제 1 스테이지(100)로 입력된 데이터 스트림의 기능 유닛 식별자와 상기 복수개의 제 1 스테이지(100)의 고유 기능 유닛 식별자를 입력받아 배타적 논리합을 수행하고, 상기 제 1 배타적 논리합 게이트(G1) 상기 복수개의 제 2 스테이지(200)로 입력된 데이터 스트림의 기능 유닛 식별자와 상기 복수개의 제 2 스테이지(200)의 고유 기능 유닛 식별자를 입력받아 배타적 논리합을 수행한다. 여기서, 상기 제 1 배타적 논리합 게이트(G1)와 상기 제 1 배타적 논리합 게이트(G1)는 도 7 에 도시된 제 1 선택 신호 발생부(300A-1), 제 2 선택 신호 발생부(300A-2), 제 3 선택 신호 발생부(300A-3), 제 4 선택 신호 발생부(300A-4), …, 제 n 선택 신호 발생부(300A-n) 등 각각의 선택 신호 발생부(300A-1∼300A-n)에 모두 존재한다.The first exclusive OR gate G1 receives the functional unit identifier of the data stream input to the plurality of first stages 100 and the unique functional unit identifier of the plurality of first stages 100 and performs exclusive logical OR The first exclusive OR gates G1 receive the functional unit identifiers of the data streams input to the plurality of second stages 200 and the unique functional unit identifiers of the plurality of second stages 200, . The first exclusive OR gates G1 and the first exclusive OR gates G1 are connected to the first select signal generator 300A-1, the second select signal generator 300A-2, A third selection signal generator 300A-3, a fourth selection signal generator 300A-4, N-th selection signal generating sections 300A-n, and the like.
이어서, 상기와 같이 구성되는 본 발명의 실시예에 대한 동작을 도 7 과 도 8 을 참조하여 살펴보기로 한다.Next, operation of the embodiment of the present invention will be described with reference to FIGS. 7 and 8. FIG.
도 7 에 도시된 제 1 스테이지(100)가 4 개의 스테이지 즉, 제 1-1 스테이지(100-1), 제 1-2 스테이지(100-2), 제 1-3 스테이지(100-3), 제 1-4 스테이지(100-4)로 이루어져 있다고 가정하고, 제 2 스테이지(200)도 4 개의 스테이지 즉, 제 2-1 스테이지(200-1), 제 2-2 스테이지(200-2), 제 2-3 스테이지(200-3), 제 2-4 스테이지(200-4)로 이루어져 있다고 가정하자. 여기서, 상기 제 1-1 스테이지(100-1)와 상기 제 2-1 스테이지(200-1)의 고유 기능 유닛 식별자는 "0" 이고, 상기 제 1-2 스테이지(100-2)와 상기 제 2-2 스테이지(200-2)의 고유 기능 유닛 식별자는 "1" 이며, 상기 제 1-3 스테이지(100-3)와 상기 제 2-3 스테이지(200-3)의 고유 기능 유닛 식별자는 "10" 이고, 상기 제 1-4 스테이지(100-4)와 상기 제 2-1 스테이지(200-4)의 고유 기능 유닛 식별자는 "11" 이다. 그리고, 데이터 선택 수단(300)의 선택신호 발생부(300A)가 제 1 선택신호 발생부(300A-1), 제 2 선택신호 발생부(300A-2), 제 3 선택신호 발생부(300A-3), 제 4 선택신호 발생부(300A-4)로 이루어져 있다고 가정하고, 데이터 선택 수단(300)의 다중화부(300B)가 제 1 다중화부(300B-1), 제 2 다중화부(300B-2), 제 3 다중화부(300B-3), 제 4 다중화부(300B-4)로 이루어져 있다고 가정하자. 한편, 인터페이스 수단(400)이 제 1 버퍼(400-1), 제 2 버퍼(400-2), 제 3 버퍼(400-3), 제 4 버퍼(400-4)로 이루어져 있다고 가정하고, 기능 유닛(500)이 제 1 기능 유닛(500-1), 제 2 기능 유닛(500-2), 제 3 기능 유닛(500-3), 제 4 기능 유닛(500-4)으로 이루어져 있다고 가정하자.The first stage 100 shown in Fig. 7 includes four stages: a first-stage 100-1, a first-second stage 100-2, a first-third stage 100-3, It is assumed that the second stage 200 is composed of the first to fourth stages 100-1 to 100-4 and the second stage 200 has four stages, that is, the second-first stage 200-1, the second- The second to third stage 200-3, and the second to fourth stage 200-4. Here, the unique functional unit identifiers of the first-first stage 100-1 and the second-1 stage 200-1 are "0 ", and the first- The unique functional unit identifier of the 2-2 stage 200-2 is "1 ", and the unique functional unit identifier of the first-third stage 100-3 and the second- 10 ", and the unique functional unit identifier of the first-first stage 100-4 and the second-first stage 200-4 is" 11 ". The selection signal generator 300A of the data selector 300 selects the first selection signal generator 300A-1, the second selection signal generator 300A-2, the third selection signal generator 300A- 3 and the fourth selection signal generating unit 300A-4 and that the multiplexing unit 300B of the data selecting means 300 includes the first multiplexing unit 300B-1 and the second multiplexing unit 300B- 2, a third multiplexing unit 300B-3, and a fourth multiplexing unit 300B-4. It is assumed that the interface means 400 comprises a first buffer 400-1, a second buffer 400-2, a third buffer 400-3 and a fourth buffer 400-4, Suppose that the unit 500 comprises a first functional unit 500-1, a second functional unit 500-2, a third functional unit 500-3, and a fourth functional unit 500-4.
우선, 메모리(도시하지 않음)로부터 기능 유닛 식별자(FU Id.)와 필요한 데이터로 구성된 일련의 데이터 스트림이 제 1-1 스테이지(100-1)와 제 2-1 스테이지(200-1)로 입력되면, 데이터 선택 수단(300)의 제 1 선택 신호 발생부(300A-1)에서는 상기 제 1-1 스테이지(100-1)에 있는 기능 유닛 식별자와 상기 제 1-1 스테이지(100-1)의 고유 기능 유닛 식별자("0")를 입력받아 도 8 에 도시된 제 1 배타적 논리합 게이트(G1)에서 배타적 논리합이 수행되고, 또한 데이터 선택 수단(300)의 제 1 선택 신호 발생부(300A-1)에서는 상기 제 2-1 스테이지(200-1)에 있는 기능 유닛 식별자와 상기 제 2-1 스테이지(200-1)의 고유 기능 유닛 식별자("0")를 입력받아 도 8 에 도시된 제 2 배타적 논리합 게이트(G2)에서 배타적 논리합을 수행한다.First, a series of data streams composed of a functional unit identifier (FU Id.) And necessary data is input from the memory (not shown) to the 1-1 stage 100-1 and the 2-1 stage 200-1 The first selection signal generator 300A-1 of the data selecting means 300 selects the functional unit identifier of the first-stage 100-1 and the functional unit identifier of the first- The exclusive OR operation is performed in the first exclusive OR gate G1 shown in FIG. 8 and the exclusive OR operation is performed in the first selection signal generator 300A-1 Stage 200-1 and the unique function unit identifier ("0") of the second-stage 200-1 are input to the second- And performs an exclusive-OR operation on the exclusive-OR gate G2.
상기 배타적 논리합이 수행된 결과 즉, 제 1 선택 신호(1st1)와 제 2 선택 신호(1st2)에 따라 데이터 선택 수단(300)의 다중화부(300B)중 제 1 다중화부(300B-1)에서는 상기 제 1-1 스테이지(100-1)로부터의 데이터 또는 상기 제 2-1 스테이지(200-1)로부터의 데이터를 선택한다.The first multiplexing unit 300B-1 of the multiplexing unit 300B of the data selecting unit 300 selects the first multiplexing unit 300B-1 according to the result of the exclusive OR operation, that is, according to the first select signal 1st1 and the second select signal 1st2 And selects data from the 1-1 stage 100-1 or data from the 2-1 stage 200-1.
만약, 제 1 선택 신호(1st1)가 "1" 이고, 제 2 선택 신호(1st2)가 "0" 이면, 제 1-1 스테이지(100-1)로부터의 데이터가 제 1 다중화부(300B-1)에서 선택되며, 제 1 선택 신호(1st1)가 "0" 이고, 제 2 선택 신호(1st2)가 "1" 이면, 제 2-1 스테이지(200-1)로부터의 데이터가 제 1 다중화부(300B-1)에서 선택된다. 그리고, 제 1 선택 신호(1st1)가 "1" 이고, 제 2 선택 신호(1st2)가 "1" 이면, 순서에 따라 제 1-1 스테이지(100-1)로부터의 데이터와 제 2-1 스테이지(200-1)로부터의 데이터가 제 1 다중화부(300B-1)에서 선택된다. 그러나, 제 1 선택 신호(1st1)가 "0" 이고, 제 2 선택 신호(1st2)가 "0" 이면, 제 1-1 스테이지(100-1)로부터의 데이터와 제 2-1 스테이지(200-1)로부터의 데이터가 제 1 기능 유닛(500-1)에서 사용될 데이터에 해당하지 않으므로 제 1 다중화부(300B-1)에서 선택되지 않는다.If the first selection signal 1st1 is "1" and the second selection signal 1st2 is "0", the data from the first-stage 100-1 is output to the first multiplexer 300B-1 , And if the first selection signal 1st1 is "0" and the second selection signal 1st2 is "1", the data from the second-1 stage 200-1 is selected from the first multiplexer 300B-1. If the first selection signal 1st1 is "1" and the second selection signal 1st2 is "1", data from the first-first stage 100-1 and data from the second- Data from the first multiplexer 300-1 is selected in the first multiplexer 300B-1. However, when the first selection signal 1st1 is "0" and the second selection signal 1st2 is "0", the data from the first-stage 100-1 and the data from the second- 1 is not selected in the first multiplexer 300B-1 because it does not correspond to the data to be used in the first functional unit 500-1.
상기 제 1 다중화부(300B-1)에서 선택된 데이터는 인터페이스 수단(400)의 제 1 버퍼(400-1)를 통해 제 1 기능 유닛(500-1)으로 전달되어, 독립적인 기능을 수행한다.The data selected by the first multiplexer 300B-1 is transmitted to the first functional unit 500-1 through the first buffer 400-1 of the interface unit 400 and performs an independent function.
이어서, 상기 제 1 다중화부(300B-1)에서 선택되지 않은 데이터는 다음 스테이지인 제 1-2 스테이지(100-2)와 제 2-2 스테이지(200-2)로 넘어간다.Then, data not selected by the first multiplexer 300B-1 is passed to the first stage 1-2-2 and the second stage -2, which are the next stages.
데이터 선택 수단(300)의 제 2 선택 신호 발생부(300A-2)에서는 상기 제 1-2 스테이지(100-2)에 있는 기능 유닛 식별자와 상기 제 1-2 스테이지(100-2)의 고유 기능 유닛 식별자("1")를 입력받아 도 8 에 도시된 제 1 배타적 논리합 게이트(G1)에서 배타적 논리합이 수행되고, 또한 데이터 선택 수단(300)의 제 2 선택 신호 발생부(300A-2)에서는 상기 제 2-2 스테이지(200-2)에 있는 기능 유닛 식별자와 상기 제 2-2 스테이지(200-2)의 고유 기능 유닛 식별자("1")를 입력받아 도 8 에 도시된 제 2 배타적 논리합 게이트(G2)에서 배타적 논리합을 수행한다.The second selection signal generator 300A-2 of the data selecting means 300 receives the function unit identifier in the first-second stage 100-2 and the unique function of the first-second stage 100-2 The exclusive OR operation is performed in the first exclusive OR gates G1 shown in Fig. 8 and the second select signal generator 300A-2 of the data selector 300 receives the unit identifier "1 " Stage 2-2 and a unique function unit identifier ("1") of the second-stage 200-2 are input to the second- And performs exclusive-OR at the gate G2.
상기 배타적 논리합이 수행된 결과 즉, 제 1 선택 신호(2st1)와 제 2 선택 신호(2st2)에 따라 데이터 선택 수단(300)의 다중화부(300B)중 제 2 다중화부(300B-2)에서는 상기 제 1-2 스테이지(100-2)로부터의 데이터 또는 상기 제 2-2 스테이지(200-2)로부터의 데이터를 선택한다.In the second multiplexing unit 300B-2 of the multiplexing unit 300B of the data selecting means 300, according to the result of performing the exclusive-OR, i.e., the first selection signal 2st1 and the second selection signal 2st2, And selects data from the first-second stage 100-2 or data from the second-stage 200-2.
만약, 제 1 선택 신호(2st1)가 "1" 이고, 제 2 선택 신호(2st2)가 "0" 이면, 제 1-2 스테이지(100-2)로부터의 데이터가 제 2 다중화부(300B-2)에서 선택되며, 제 1 선택 신호(2st1)가 "0" 이고, 제 2 선택 신호(2st2)가 "1" 이면, 제 2-2 스테이지(200-2)로부터의 데이터가 제 2 다중화부(300B-2)에서 선택된다. 그리고, 제 1 선택 신호(2st1)가 "1" 이고, 제 2 선택 신호(2st2)가 "1" 이면, 순서에 따라 제 1-2 스테이지(100-2)로부터의 데이터와 제 2-2 스테이지(200-2)로부터의 데이터가 제 2 다중화부(300B-2)에서 선택된다. 그러나, 제 1 선택 신호(2st1)가 "0" 이고, 제 2 선택 신호(2st2)가 "0" 이면, 제 1-2 스테이지(100-2)로부터의 데이터와 제 2-2 스테이지(200-2)로부터의 데이터가 제 2 기능 유닛(500-2)에서 사용될 데이터에 해당하지 않으므로 제 2 다중화부(300B-2)에서 선택되지 않는다.If the first selection signal 2st1 is "1" and the second selection signal 2st2 is "0", the data from the first-second stage 100-2 is output to the second multiplexer 300B-2 ), And when the first selection signal 2st1 is "0" and the second selection signal 2st2 is "1", the data from the 2-2 stage 200-2 is selected by the second multiplexer 300B-2. If the first selection signal 2st1 is "1" and the second selection signal 2st2 is "1", the data from the first-second stage 100-2 and the data from the second- The data from the first multiplexer 200-2 is selected in the second multiplexer 300B-2. However, when the first selection signal 2st1 is "0" and the second selection signal 2st2 is "0", the data from the first-second stage 100-2 and the data from the second- 2 does not correspond to the data to be used in the second functional unit 500-2 and therefore is not selected in the second multiplexer 300B-2.
상기 제 2 다중화부(300B-2)에서 선택된 데이터는 인터페이스 수단(400)의 제 2 버퍼(400-2)를 통해 제 2 기능 유닛(500-2)으로 전달되어, 독립적인 기능을 수행한다.The data selected by the second multiplexer 300B-2 is transmitted to the second functional unit 500-2 through the second buffer 400-2 of the interface unit 400 and performs an independent function.
이어서, 상기 제 2 다중화부(300B-2)에서 선택되지 않은 데이터는 다음 스테이지인 제 1-3 스테이지(100-3)와 제 2-3 스테이지(200-3)로 넘어간다.Subsequently, data not selected in the second multiplexing unit 300B-2 is passed to the first stage 1-3-3 and the second-stage 200-3, which are the next stages.
데이터 선택 수단(300)의 제 3 선택 신호 발생부(300A-3)에서는 상기 제 1-3 스테이지(100-3)에 있는 기능 유닛 식별자와 상기 제 1-3 스테이지(100-3)의 고유 기능 유닛 식별자("10")를 입력받아 도 8 에 도시된 제 1 배타적 논리합 게이트(G1)에서 배타적 논리합이 수행되고, 또한 데이터 선택 수단(300)의 제 3 선택 신호 발생부(300A-3)에서는 상기 제 2-3 스테이지(200-3)에 있는 기능 유닛 식별자와 상기 제 2-3 스테이지(200-3)의 고유 기능 유닛 식별자("10")를 입력받아 도 8 에 도시된 제 2 배타적 논리합 게이트(G2)에서 배타적 논리합을 수행한다.The third selection signal generator 300A-3 of the data selecting means 300 selects the function unit identifier in the first-third stage 100-3 and the unique function of the first- The exclusive OR operation is performed on the first exclusive OR gates G1 shown in Fig. 8 and the third select signal generator 300A-3 of the data selecting means 300 receives the unit identifier "10" (10) " of the second to third stage 200-3 and receives the functional unit identifier in the second to third stage 200-3 and the unique functional unit identifier And performs exclusive-OR at the gate G2.
상기 배타적 논리합이 수행된 결과 즉, 제 1 선택 신호(3st1)와 제 2 선택 신호(3st2)에 따라 데이터 선택 수단(300)의 다중화부(300B)중 제 3 다중화부(300B-3)에서는 상기 제 1-3 스테이지(100-3)로부터의 데이터 또는 상기 제 2-3 스테이지(200-3)로부터의 데이터를 선택한다.In the third multiplexing unit 300B-3 of the multiplexing unit 300B of the data selecting means 300, according to the result of the exclusive OR operation, that is, according to the first select signal 3st1 and the second select signal 3st2, Data from the first-third stage 100-3 or data from the second-stage 200-3 is selected.
만약, 제 1 선택 신호(3st1)가 "1" 이고, 제 2 선택 신호(3st2)가 "0" 이면, 제 1-3 스테이지(100-3)로부터의 데이터가 제 3 다중화부(300B-3)에서 선택되며, 제 1 선택 신호(3st1)가 "0" 이고, 제 2 선택 신호(3st2)가 "1" 이면, 제 2-3 스테이지(200-3)로부터의 데이터가 제 3 다중화부(300B-3)에서 선택된다. 그리고, 제 1 선택 신호(3st1)가 "1" 이고, 제 2 선택 신호(3st2)가 "1" 이면, 순서에 따라 제 1-3 스테이지(100-3)로부터의 데이터와 제 2-3 스테이지(200-3)로부터의 데이터가 제 3 다중화부(300B-3)에서 선택된다. 그러나, 제 1 선택 신호(3st1)가 "0" 이고, 제 2 선택 신호(3st2)가 "0" 이면, 제 1-3 스테이지(100-3)로부터의 데이터와 제 2-3 스테이지(200-3)로부터의 데이터가 제 3 기능 유닛(500-3)에서 사용될 데이터에 해당하지 않으므로 제 3 다중화부(300B-3)에서 선택되지 않는다.If the first selection signal 3st1 is "1" and the second selection signal 3st2 is "0", the data from the first-third stage 100-3 is output to the third multiplexer 300B-3 , And data from the second to third stages 200-3 is selected by the third multiplexer 200-3 if the first selection signal 3st1 is "0" and the second selection signal 3st2 is "1" 300B-3. If the first selection signal 3st1 is "1" and the second selection signal 3st2 is "1", the data from the first-third stage 100-3 and the data from the second- And data from the third multiplexer 300-3 is selected by the third multiplexer 300B-3. However, when the first selection signal 3st1 is "0" and the second selection signal 3st2 is "0", the data from the first-third stage 100-3 and the data from the second- 3 does not correspond to the data to be used in the third functional unit 500-3 and thus is not selected in the third multiplexer 300B-3.
상기 제 3 다중화부(300B-3)에서 선택된 데이터는 인터페이스 수단(400)의 제 3 버퍼(400-3)를 통해 제 3 기능 유닛(500-3)으로 전달되어, 독립적인 기능을 수행한다.The data selected by the third multiplexer 300B-3 is transferred to the third functional unit 500-3 through the third buffer 400-3 of the interface means 400 and performs an independent function.
마지막으로, 상기 제 3 다중화부(300B-3)에서 선택되지 않은 데이터는 다음 스테이지인 제 1-4 스테이지(100-4)와 제 2-4 스테이지(200-4)로 넘어간다.Finally, data not selected in the third multiplexer 300B-3 is passed to the next stage, i.e., the first to fourth stages 100-4 and 200-4.
데이터 선택 수단(300)의 제 4 선택 신호 발생부(300A-4)에서는 상기 제 1-4 스테이지(100-4)에 있는 기능 유닛 식별자와 상기 제 1-4 스테이지(100-4)의 고유 기능 유닛 식별자("11")를 입력받아 도 8 에 도시된 제 1 배타적 논리합 게이트(G1)에서 배타적 논리합이 수행되고, 또한 데이터 선택 수단(300)의 제 4 선택 신호 발생부(300A-4)에서는 상기 제 2-4 스테이지(200-4)에 있는 기능 유닛 식별자와 상기 제 2-4 스테이지(200-4)의 고유 기능 유닛 식별자("11")를 입력받아 도 8 에 도시된 제 2 배타적 논리합 게이트(G2)에서 배타적 논리합을 수행한다.The fourth selection signal generator 300A-4 of the data selecting means 300 receives the function unit identifier in the first-fourth stage 100-4 and the unique function of the first-fourth stage 100-4 The exclusive OR operation is performed on the first exclusive OR gates G1 shown in Fig. 8 and the fourth select signal generator 300A-4 of the data selecting means 300 receives the unit identifier "11" The second functional unit identifier ("11") of the second-4 < th > stage 200-4 is input to the second- And performs exclusive-OR at the gate G2.
상기 배타적 논리합이 수행된 결과 즉, 제 1 선택 신호(4st1)와 제 2 선택 신호(4st2)에 따라 데이터 선택 수단(300)의 다중화부(300B)중 제 4 다중화부(300B-4)에서는 상기 제 1-4 스테이지(100-4)로부터의 데이터 또는 상기 제 2-4 스테이지(200-4)로부터의 데이터를 선택한다.In the fourth multiplexing unit 300B-4 of the multiplexing unit 300B of the data selecting means 300, according to the result of performing the exclusive logical OR, that is, according to the first select signal 4st1 and the second select signal 4st2, And selects data from the first-fourth stage 100-4 or data from the second-fourth stage 200-4.
만약, 제 1 선택 신호(4st1)가 "1" 이고, 제 2 선택 신호(4st2)가 "0" 이면, 제 1-4 스테이지(100-4)로부터의 데이터가 제 4 다중화부(300B-4)에서 선택되며, 제 1 선택 신호(4st1)가 "0" 이고, 제 2 선택 신호(4st2)가 "1" 이면, 제 2-4 스테이지(200-4)로부터의 데이터가 제 4 다중화부(300B-4)에서 선택된다. 그리고, 제 1 선택 신호(4st1)가 "1" 이고, 제 2 선택 신호(4st2)가 "1" 이면, 순서에 따라 제 1-4 스테이지(100-4)로부터의 데이터와 제 2-4 스테이지(200-4)로부터의 데이터가 제 4 다중화부(300B-4)에서 선택된다. 제 1 스테이지와 제 2 스테이지가 4 개의 스테이지를 갖고 있는 경우를 실시예로 들었기 때문에 제 1 선택 신호(4st1)가 "0" 이고, 제 2 선택 신호(4st2)가 "0" 인 경우는 없다고 볼 수 있다.If the first selection signal 4st1 is "1" and the second selection signal 4st2 is "0", the data from the 1-4th stage 100-4 is output to the fourth multiplexer 300B-4 , And the data from the second-4 < th > stage 200-4 is output to the fourth multiplexer (4-1) when the first selection signal 4st1 is "0 & 300B-4). If the first selection signal 4st1 is "1" and the second selection signal 4st2 is "1", the data from the first-fourth stage 100-4 and the data from the second- The data from the third multiplexer 300-4 is selected in the fourth multiplexer 300B-4. Since the first stage and the second stage have four stages, the first selection signal 4st1 is "0" and the second selection signal 4st2 is "0" can see.
상기 제 4 다중화부(300B-4)에서 선택된 데이터는 인터페이스 수단(400)의 제 4 버퍼(400-4)를 통해 제 4 기능 유닛(500-4)으로 전달되어, 독립적인 기능을 수행한다.The data selected by the fourth multiplexer 300B-4 is transferred to the fourth functional unit 500-4 through the fourth buffer 400-4 of the interface unit 400 and performs an independent function.
상기에서 서술된 실시예는 모든 점에서 예시에 불과한 것이고, 이를 한정적으로 해석해서는 안되며, 단지 본 발명의 진정한 정신 및 범위내에 존재하는 변형예는 모두 본 발명의 청구 범위에 속하는 것이다.The embodiments described above are merely illustrative in all respects and should not be construed as limiting, but all modifications that fall within the true spirit and scope of the present invention belong to the scope of the present invention.
이상에서 살펴본 바와 같이 본 발명에 따르면 입력된 데이터 스트림의 기능 유닛 식별자를 가지고 각 스테이지의 고유 기능 유닛 식별자와 비교하여 복수개의 두 스테이지중 한 스테이지로부터의 데이터를 선택하여 인터페이스를 통해 각 기능 유닛으로 데이터를 전달하므로써 파이프라인의 데이터 처리가 원할하게 이루어진다는 데 그 효과가 있다.As described above, according to the present invention, a function unit identifier of an input data stream is compared with a unique function unit identifier of each stage to select data from one of a plurality of stages, The data processing of the pipeline is smoothly performed.
Claims (5)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019960055795A KR100230846B1 (en) | 1996-11-20 | 1996-11-20 | A dual function flow pipeline structure |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019960055795A KR100230846B1 (en) | 1996-11-20 | 1996-11-20 | A dual function flow pipeline structure |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19980037096A KR19980037096A (en) | 1998-08-05 |
KR100230846B1 true KR100230846B1 (en) | 1999-11-15 |
Family
ID=19482719
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019960055795A KR100230846B1 (en) | 1996-11-20 | 1996-11-20 | A dual function flow pipeline structure |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100230846B1 (en) |
-
1996
- 1996-11-20 KR KR1019960055795A patent/KR100230846B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR19980037096A (en) | 1998-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11307873B2 (en) | Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging | |
US11200186B2 (en) | Apparatuses, methods, and systems for operations in a configurable spatial accelerator | |
US10817291B2 (en) | Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator | |
US10469397B2 (en) | Processors and methods with configurable network-based dataflow operator circuits | |
JP3575617B2 (en) | Computer system | |
Su et al. | Saving power in the control path of embedded processors | |
US6671796B1 (en) | Converting an arbitrary fixed point value to a floating point value | |
US5825677A (en) | Numerically intensive computer accelerator | |
US20030061473A1 (en) | Methods and apparatus to dynamically reconfigure the instruction pipeline of an indirect very long instruction word scalable processor | |
US10678724B1 (en) | Apparatuses, methods, and systems for in-network storage in a configurable spatial accelerator | |
JP2006012182A (en) | Data processing system and method thereof | |
KR102295677B1 (en) | Parallel processing apparatus capable of consecutive parallelism | |
KR100230846B1 (en) | A dual function flow pipeline structure | |
JP2004503872A (en) | Shared use computer system | |
KR100221326B1 (en) | A pipeline system using the hierarchical structure | |
KR100226694B1 (en) | A plural pipeline structure and a plural pipelining method | |
KR100226695B1 (en) | A pipeline structure having bidirectional function checking flow | |
KR100221325B1 (en) | Dual function flow pipeline structure using switches | |
JP4230461B2 (en) | Fully synchronous super pipelined VLIW processor system and method | |
JP2004515856A (en) | Digital signal processor | |
Fellman | Design issues and an architecture for the monolithic implementation of a parallel digital signal processor | |
US11416261B2 (en) | Group load register of a graph streaming processor | |
KR19980037093A (en) | Shuffle pipeline structure | |
KR19980037090A (en) | Functional flow pipeline structure with foreseeability | |
CN112579168B (en) | Instruction execution unit, processor and signal processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20120801 Year of fee payment: 14 |
|
LAPS | Lapse due to unpaid annual fee |