KR19980037090A - Functional flow pipeline structure with foreseeability - Google Patents

Functional flow pipeline structure with foreseeability Download PDF

Info

Publication number
KR19980037090A
KR19980037090A KR1019960055789A KR19960055789A KR19980037090A KR 19980037090 A KR19980037090 A KR 19980037090A KR 1019960055789 A KR1019960055789 A KR 1019960055789A KR 19960055789 A KR19960055789 A KR 19960055789A KR 19980037090 A KR19980037090 A KR 19980037090A
Authority
KR
South Korea
Prior art keywords
stage
data
functional unit
pipeline
functional
Prior art date
Application number
KR1019960055789A
Other languages
Korean (ko)
Inventor
이수정
Original Assignee
배순훈
대우전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 배순훈, 대우전자 주식회사 filed Critical 배순훈
Priority to KR1019960055789A priority Critical patent/KR19980037090A/en
Publication of KR19980037090A publication Critical patent/KR19980037090A/en

Links

Landscapes

  • Advance Control (AREA)
  • Complex Calculations (AREA)

Abstract

본 발명은 예견 기능을 갖는 기능 흐름 파이프라인 구조에 관한 것으로서, 본 발명의 구조는, 입력된 데이터를 독립적인 기능을 수행하는 각 기능 유닛으로 전달하기 위해 제 1 스테이지(300-1), 제 2 스테이지(300-2), 제 3 스테이지(300-3)와 제 4 스테이지(300-4)로 이루어진 기능 흐름 파이프라인(300) 구조에 있어서, 상기 제 1 스테이지(300-1)에서 상기 제 3 스테이지(300-3)로 데이터를 바이패스하기 위한 제 1 바이패스 수단(400); 및 상기 제 1 스테이지(300-1)에서 상기 제 4 스테이지(300-4)로 데이터를 바이패스하기 위한 제 2 바이패스 수단(500)이 더 구비되어 있으며, 상기와 같은 본 발명에 따르면 각각의 기능 유닛에 데이터를 전달함에 있어서, 정식 경로이외에 또 다른 경로를 두고 여러 조건을 검사하여 조건에 만족하는 경로로 데이터를 바이패스시키므로써, 기능 흐름 파이프라인내의 각 스테이지에서 발생하는 버블 현상을 감소시켜 기능 유닛의 이용률을 높이는 결과를 낳아 성능 향상을 기대할 수 있다.The present invention relates to a functional flow pipeline structure having a foresight function, wherein the structure of the present invention includes: a first stage 300-1, a second to transfer input data to each functional unit performing an independent function. In the functional flow pipeline 300 structure consisting of a stage 300-2, a third stage 300-3, and a fourth stage 300-4, the third stage in the first stage 300-1 is provided. First bypass means 400 for bypassing data to stage 300-3; And second bypass means 500 for bypassing data from the first stage 300-1 to the fourth stage 300-4, and according to the present invention as described above, In passing data to the functional unit, by checking other conditions besides the formal path and bypassing the data to a path that satisfies the condition, the bubble phenomenon generated at each stage in the functional flow pipeline is reduced. The result is that the utilization of the functional unit is increased, and the performance can be expected to be improved.

Description

예견 기능을 갖는 기능 흐름 파이프라인 구조(A function flow pipeline structure having lookahead function)A function flow pipeline structure having lookahead function

본 발명은 예견 기능을 갖는 기능 흐름 파이프라인 구조에 관한 것으로서, 특히 복수개의 기능 유닛(Function Unit: FU)에 데이터를 전달함에 있어서, 정식 경로이외에 또 다른 경로를 두고 여러 조건을 검사하여 조건에 만족하는 경로로 데이터를 바이패스(bypass)시키므로써, 전체 하드웨어의 효율성을 향상하도록 되어진 예견 기능을 갖는 기능 흐름 파이프라인 구조에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a functional flow pipeline structure having a predictive function. Particularly, in passing data to a plurality of function units (FUs), the present invention satisfies conditions by inspecting various conditions in addition to formal paths. By virtue of bypassing data in a way to improve the efficiency of the overall hardware, the present invention relates to a functional flow pipeline structure having a predictive function.

일반적으로, 파이프라이닝(pipelining)은 디지탈 컴퓨터에서 시간적인 병렬화(temporal parallelism)를 실현하는 수단을 제공한다. 컴퓨터에서 파이프라인이라는 개념은 생산 공장에서의 생산 라인 개념과 유사하다.In general, pipelining provides a means of realizing temporal parallelism in digital computers. The concept of 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 particular hardware stage operating concurrently with other stages in the pipeline. do. Successive processes form a flow in the pipe and are performed in an overlapped fashion at the subprocess level. This type of pipe method can dramatically increase the throughput of digital computers.

이어서, 파이프라인 프로세서의 분류에 대해서 살펴보면, 다양한 형태의 파이프라인 프로세서들은 프로세싱 레벨 및 파이프라인 구성과 제어 전략에 따라 분류된다.Subsequently, when classifying pipeline processors, various types of pipeline processors are classified according to processing levels and pipeline configurations and control strategies.

우선, Handler 는 프로세싱 레벨에 따라 산술 파이프라이닝(arithmetic pipelining), 인스트럭션 파이프라이닝(instruction), 프로세서 파이프라이닝(processor pipelining)로 분류하였다.First, Handlers are classified into arithmetic pipelining, instruction pipelining, and processor pipelining according to processing levels.

도 1 은 산술 파이프라이닝을 설명하기 위한 도면으로서, 도 1 에 도시된 바와 같이 컴퓨터의 산술 논리유닛들은 다양한 데이터 포맷들내에서 파이프라인 동작을 수행하기 위해 분리되어 있다. 여기서, S 는 스테이지를 나타내고, L 은 래치를 나타낸다. 널리 알려진 산술 파이프라인의 예로는 Star-100 에서 사용되는 4-스테이지 파이프, TI-ASC 에서 사용되는 8-스테이지 파이프, Cray-1 에서 사용되는 14 이상의 파이프라인 스테이지, Cyber-205 에서 파이프당 26 이상의 스테이지 등이 있다.1 is a diagram for explaining arithmetic pipelining, as shown in FIG. 1, arithmetic logic units of a computer are separated to perform pipeline operations in various data formats. Here, S represents a stage and L represents a latch. Examples of well-known arithmetic pipelines include four-stage pipes used in Star-100, eight-stage pipes used in TI-ASC, 14 or more pipeline stages used in Cray-1, and 26 or more per pipe in Cyber-205. Stage and so on.

도 2 는 인스트럭션 파이프라이닝을 설명하기 위한 도면으로서, 인스트럭션 스트림의 수행은 계속해서 일어나는 인스트럭션의 훼치, 디코드 그리고 오퍼랜드 훼치와 함께 현재 인스트럭션의 수행을 중첩시킴으로써 파이프라인화가 이루어진다. 이러한 기술은 또한 인스트럭션 룩어헤드(instruction lookahead)로 알려져 있다. 거의 모든 고성능 컴퓨터들은 인스트럭션 수행 파이프라인이 갖추어져 있다.2 is a diagram for explaining instruction pipelining, where the performance of the instruction stream is pipelined by superimposing the performance of the current instruction with fetch, decode, and operand fetch of instructions that occur continuously. This technique is also known as instruction lookahead. Almost all high-performance computers have an instruction execution pipeline.

도 3 은 프로세서 파이프라이닝을 설명하기 위한 도면으로서, 도 3 에 도시된 바와 같이 프로세서 파이프라이닝은 일련의 프로세서들에 의해 동일 데이터 스트림을 파이프라인 프로세싱하는 것을 말하는데, 상기 프로세서들은 각각의 특정한 태스크들을 처리한다. 데이터 스트림은 메모리 블록내에 저장된 결과와 함께 첫 번째 프로세서를 통과하는데, 이 데이터 스트림은 또한 두 번째 프로세서에 의해 받아들일 수 있다. 그때, 두 번째 프로세서는 세 번째 프로세서로 수행된 결과를 통과시킨다.3 is a diagram for explaining processor pipelining, in which processor pipelining refers to pipeline processing of the same data stream by a series of processors, the processors processing each particular task. do. The data stream passes through the first processor with the result stored in the memory block, which can also be accepted by the second processor. At that time, the second processor passes the result performed by the third processor.

그리고, Ramamoorthy 와 Li 는 파이프라인 구성과 제어 전략에 따라 단일기능(Unifunction)/다기능(Multifunction) 파이프라인, 정적(Static)/동적(Dynamic) 파이프라인, 스칼라(Scalar)/벡터(vector) 파이프라인으로 분류하였다.And Ramamoorthy and Li have a single function / multifunction pipeline, a static / dynamic pipeline, a scalar / vector pipeline, depending on the pipeline configuration and control strategy. Classified as

우선 단일기능/다기능 파이프라인에 대해서 살펴보면, 고정된 전용 기능을 갖는 파이프라인 유닛은 단일 기능적(unifunctional)이라고 부른다. Cray-1 은 다양한 스칼라, 벡터, 고정 소수점 및 부동 소수점 동작을 위해 12 단일 기능 파이프라인 유닛을 갖는다. 그리고, 다기능 파이프는 파이프라인내에 스테이지들의 다른 서브세트(subset)를 상호 연결하므로써 다른 시간에 또는 동시에 다른 기능들을 수행할 수 있다. TI-ASC 는 4 개의 다기능 파이프라인 프로세서들을 갖는데, 그들 각각은 다른 시간에 많은 산술 논리 동작을 재구성할 수 있다.Looking at the monofunctional / multifunctional pipeline first, a pipeline unit with a fixed dedicated function is called a unifunctional. Cray-1 has 12 single function pipeline units for various scalar, vector, fixed point and floating point operations. Multifunctional pipes can then perform different functions at different times or simultaneously by interconnecting different subsets of stages in the pipeline. The TI-ASC has four multifunction pipeline processors, each of which can reconfigure 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 possible in static pipes only if the same type of instruction is executed continuously. Functions performed by static pipelines should not change often. Dynamic pipeline processors, on the other hand, allow for multiple functional configurations to exist simultaneously. In this regard, dynamic pipelines must be multifunctional. Dynamic configuration requires much more sophisticated control and sequencing mechanisms than in static pipelines. Most computers have a single functional or multifunctional static pipe.

또한, 인스트럭션 또는 데이터 형태에 의존하는 파이프라인 프로세서들은 또한 스칼라 파이프라인과 벡터 파이프라인으로 분류된다. 스칼라 파이프라인은 DO 루프의 제어하에 일련의 스칼라 오퍼랜드를 처리한다. 작은 DO 루프내의 인스트럭션은 종종 인스트럭션 버퍼로 미리 훼치(Prefetch)된다. 반복되는 스칼라 인스트럭션을 위해 요구된 스칼라 오퍼랜드는 파이프라인에 오퍼랜드를 계속적으로 공급하기 위해 데이터 캐쉬(data cache)로 옮겨진다. IBM 시스템/360 모델 91 은 스칼라 파이프라인을 갖춘 장치의 전형적인 예이다. 하지만, 모델 91 에는 캐쉬가 존재하지 않는다. 한편, 벡터 파이프라인은 벡터 오퍼랜드에 대한 벡터 인스트럭션을 처리하기 위하여 특별히 설계된다. 벡터 인스트럭션을 갖는 컴퓨터는 벡터 프로세서라고 부르며, 이러한 벡터 프로세서의 설계는 스칼라 파이프라인의 설계로부터 확장된 것이다. 벡터 파이프라인내에 있는 벡터 오퍼랜드의 처리는 스칼라 파이프라인 내에서 처럼 소프트웨어의 제어하에 있다기 보다는 오히려 펌웨어(firmware)와 하드웨어의 제어하에 있다.In addition, pipeline processors that depend on the instruction or data type are also classified into scalar pipelines and vector pipelines. The scalar pipeline processes a series of scalar operands under the control of a DO loop. Instructions in small DO loops are often prefetched into the instruction buffer. The scalar operands required for repeating scalar instructions are moved to a 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, there is no cache in Model 91. On the other hand, the vector pipeline is specially designed to process vector instructions for vector operands. A computer with vector instructions is called a vector processor, and the design of this vector processor extends from the design of a scalar pipeline. The processing of vector operands in the vector pipeline is under the control of firmware and hardware rather than under software control as in the scalar pipeline.

이어서, 선형 파이프라이닝(linear pipelining)에 대해서 살펴보면 다음과 같다.Next, the linear pipelining (linear pipelining) is as follows.

일정한 지연을 가지는 파이프라인에 있어서, 모든 태스크(컴퓨터로 처리되는 일의 최소 단위)들은 모든 스테이션내에서 동일한 처리 시간을 갖는다. 이상적인 생산 라인내의 스테이션들은 충분한 자원 사용과 함께 동시적으로 수행된다. 그러나, 실질적으로 연속적인 스테이션들은 동일한 지연을 갖지 않는다. 생산 라인의 최적의 분배는 많은 요인에 의해 영향을 받는데, 그러한 요인으로는 워킹 유니트의 질(효율성과 수용성), 요구되는 처리 속도와 전체 생산 라인의 비용 등이 있다.In a pipeline with constant delay, all tasks (the smallest unit of work processed by the computer) have the same processing time in all stations. Stations in an ideal production line run concurrently with sufficient resource usage. However, substantially consecutive stations do not have the same delay. The optimal distribution of a production line is influenced by many factors, including the quality of the working unit (efficiency and acceptability), the required processing speed and the cost of the entire production line.

주어진 태스크 T 에 대한 서브 태스크(subtask)들의 집합 {T1,T2,...,Tk} 의 선행 관계를 보면, 선행하는 태스크 Ti(ij)가 끝나기 전까지는 후행하는 태스크 Tj가 시작되지 않음을 나타낸다. 모든 서브 태스크들의 상호 의존도는 선행 그래프(precedence graph)를 형성하며, 선형 파이프라인(Linear pipeline)은 선형 선행 그래프에 따라 일련의 서브 태스크들을 처리할 수 있다.When a given task, the prior relationship of the set {T 1, T 2, ... , T k} of the sub-task (subtask) of the T, the end of the preceding task T i (ij) until the succeeding task T j is It does not start. The interdependencies of all subtasks form a precedence graph, and the linear pipeline can process a series of subtasks according to the linear preceding graph.

도 4 은 선형 파이프라인 프로세서의 기본 구조도로서, L 은 래치, C 는 클럭 그리고 Si는 i 번째 스테이지를 나타낸다.4 is a basic structural diagram of a linear pipeline processor, where L is a latch, C is a clock, and S i is 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 that perform arithmetic or logic operations on the data stream flowing through the pipe. It is a combinational circuit. The stages are also separated by high speed interface latches. These latches are fast registers to maintain immediate results between stages. The flow of information between adjacent stages is controlled by a common clock applied to all latches simultaneously.

이어서, 선형 파이프라인의 클럭 기간(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 . If the time delay of each interface latch is τ 1 , the clock period of the linear pipeline may be expressed as follows.

클럭 기간의 역수는 파이프라인 프로세서의 주파수 f = 1/τ 로 표현된다.The inverse of the clock period is represented by the frequency f = 1 / τ of the pipeline processor.

도 5 는 선형 파이프라인의 중첩 동작을 설명하기 위한 4-스테이지 파이프라인 프로세서의 공간-시간 다이어그램으로서, X 축은 시간을 나타내고, Y 축은 공간을 나타내며,는 i 번째 태스크(task)내에 있는 j 번째 서브태스크(subtask)를 나타낸다.5 is a space-time diagram of a four-stage pipeline processor for explaining the overlapping operation of a linear pipeline, with the X axis representing time, the Y axis representing space, Denotes the j th 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 handle n tasks within a T k = k + (n-1) clock period, where k cycles are used to fill the pipeline or to complete the execution of the first task. N-1 cycles are required to complete the remaining n-1 tasks. Such number of tasks may be performed in a nonpipeline processor having the same function within a T 1 = n * k time delay.

2) 속도 증가(Speedup)2) Speedup

동일한 넌-파이프라인 프로세서에 대한 k-스테이지 선형 파이프라인 프로세서의 속도 증가(Speedup)는 다음 식과 같이 정의할 수 있다.The speedup of a k-stage linear pipeline processor for the same non-pipeline processor may be defined as follows.

선형 파이프라인이 제공할 수 있는 최대 속도 증가는 k 이며, 여기서 k 는 파이프내의 스테이지 수이다. 이러한 최대 속도 증가는 인스트럭션(instructions), 인터럽트(interrupts), 프로그램 브랜치(program branch) 그리고 다른 요인들 간의 데이터 의존도 때문에 완벽하게 성취될 수는 없다. 순서없는 인스트럭션 수행에 의해 발생된 대기상태는 많은 파이프라인 사이클을 소모시킨다.The maximum speed increase a linear pipeline can provide is k, where k is the number of stages in the pipe. This maximum speed increase cannot be achieved completely because of data dependence between instructions, interrupts, program branch and other factors. The wait state caused by unordered instruction execution consumes many pipeline cycles.

상기 수학식 1 에서 클럭 기간을 정의하고, 상기 수학식 2 에서 속도 증가를 정의한 후에, 선형 파이프라인 프로세서의 수행 능력을 측정하기 위한 두 개의 단위를 살펴보면 도 5 에 도시된 공간-시간 다이어그램내의 시간 간격(time interval)과 스테이지 공간(stage space)이 있는데, 이러한 시간 간격과 스테이지 공간의 산물을 시간-공간 스팬(time-space span)이라고 한다. 주어진 시간-공간 스팬은 비지(busy) 상태 또는 아이들(idle) 상태에 존재할 수 있지만, 두 상태 동시에 존재할 수는 없다. 이러한 개념은 파이프라인의 성능을 측정하는데 사용된다.After defining the clock period in Equation 1 and defining the speed increase in Equation 2, two units for measuring the performance of the linear pipeline processor will be described. The time interval in the space-time diagram shown in FIG. There is a time interval and a stage space, and a product of the time interval and the stage space is called a time-space span. A given time-space span can exist in a busy or idle state, but not both states at the same time. This concept is used to measure the performance of pipelines.

3) 효율성(efficiency)3) efficiency

선형 파이프라인의 효율성은 모든 비지(busy) 그리고 아이들(idle) 시간-공간 스팬의 합에 해당하는 전체 시간-공간 스팬에 대한 비지(busy) 시간-공간 스팬의 백분율에 의해 측정된다. 즉, 파이프라인의 효율성은 다음 식과 같이 정의될 수 있다.The efficiency of a linear pipeline is measured by the percentage of busy time-space span over 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 (ie, instructions), k represents the number of pipeline stages, and τ represents the clock period of the linear pipeline. When n → ∞, it becomes η → 1, which means that the larger the number of tasks going through the pipeline, the better the efficiency of the pipeline. From Equation 2 and Equation 3, η = S k / k can be obtained, which provides the efficiency of the linear pipeline from another perspective as the ratio of the actual speed increase to the ideal speed increase k. If n »k at steady state of pipeline, efficiency η should approach 1. However, this ideal case does not hold all the time due to 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 of time, and this ratio reflects the computational power of the pipeline. That is, the throughput is defined as follows.

여기서, n 은 관찰 기간 kτ+(n-1)τ 동안 진행된 태스크의 총 수와 같다. 이상적인 경우, η→1 일 때 ω= 1/τ = f 이고, 이것은 선형 파이프라인의 최대 처리량이 주파수와 동일하다는 것을 의미하며, 그 주파수는 클럭 기간당 하나의 출력 결과와 일치한다.Where n is equal to the total number of tasks performed during the observation period kτ + (n-1) τ. Ideally, when η → 1, then ω = 1 / τ = f, which means that the maximum throughput of the linear pipeline is equal to frequency, which corresponds to one output result per clock period.

도 6 은 종래의 기능 확인 흐름을 갖는 파이프라인의 구조도로서, 종래의 파이프라인 구조는 기능 유닛 판정수단(100); 및 복수개의 기능 유닛(200-1∼200-n)으로 구성된다.Fig. 6 is a structural diagram of a pipeline having a conventional function confirmation flow, the conventional pipeline structure comprising: functional unit determining means 100; And a plurality of functional units 200-1 to 200-n.

여기서, 상기 기능 유닛 판정수단(100)는 다수개의 스테이지가 직렬로 연결되어 있는 파이프라인 구조로서 기능 흐름 파이프라인(Function Flow Pipeline: FFP)이라고 부르며, 각각의 스테이지는 순차적으로 기능 유닛 선택 동작을 수행하는데, 즉 메모리(도시하지 않음)로부터 입력된 데이터 스트림(기능 유닛 식별자, 데이터로 구성)중 기능 유닛 식별자(Function Unit Identifier: FU Id.)를 추출하여 데이터를 어느 기능 유닛으로 전달할 지에 대해 판단한 후, 데이터를 출력한다.Here, the functional unit determination means 100 is a pipeline structure in which a plurality of stages are connected in series and is called a function flow pipeline (FFP), and each stage sequentially performs a functional unit selection operation. That is, after extracting a Function Unit Identifier (FU Id.) From a data stream (consisting of functional unit identifiers and data) input from a memory (not shown), and determining which function unit to transfer data to , Output the data.

그리고, 상기 복수개의 기능 유닛(200-1∼200-n)중 각각의 기능 유닛은 상기 기능 유닛 판정수단(100)으로부터 데이터를 입력받아 독립적인 기능을 수행한다.Each of the functional units among the plurality of functional units 200-1 to 200-n receives data from the functional unit determining means 100 and performs an independent function.

도 6 에 도시된 기능 유닛 판정수단(100)내의 제 1 스테이지(100-1)에는 D1 이라는 데이터, 제 2 스테이지(100-2)에는 D2 라는 데이터, 제 3 스테이지(100-3)에는 D3 라는 데이터 그리고 제 4 스테이지(100-4)에는 D4 라는 데이터가 있다고 가정하자.In the first unit 100-1 in the functional unit determination means 100 shown in FIG. 6, the data is D1, the second stage 100-2 is data D2, and the third stage 100-3 is D3. Assume that there is data called D4 in the data and the fourth stage 100-4.

만약, 제 1 스테이지(100-1)에 있는 D1 이라는 데이터가 제 4 기능 유닛(200-4)에서 사용될 데이터이고, 제 3 스테이지(100-3)에 있는 D3 라는 데이터는 이미 제 1 기능 유닛(200-1)에서 사용된 데이터라면, 현재 제 4 스테이지(100-4)에는 유효하지 않은 데이터가 상주하고 있게 된다. 이러한 현상을 버블(bubble)이라고 한다.If the data D1 in the first stage 100-1 is data to be used in the fourth functional unit 200-4, the data D3 in the third stage 100-3 is already present in the first functional unit ( If the data is used at 200-1), invalid data currently resides in the fourth stage 100-4. This phenomenon is called bubble.

이와 같이 종래의 파이프 라인은 기능 흐름 파이프라인(FFP: Function Flow Pipeline)내의 복수개의 스테이지에서 기능 유닛 선택동작을 순차적으로 수행하므로 상술한 바와 같은 버블 현상이 발생한다는 문제점이 있다.As described above, the conventional pipeline performs a function unit selection operation sequentially in a plurality of stages in a function flow pipeline (FFP), thereby causing a bubble phenomenon as described above.

이에 본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로, 각각의 기능 유닛에 데이터를 전달함에 있어서, 정식 경로이외에 또 다른 경로를 두고 여러 조건을 검사하여 조건에 만족하는 경로로 데이터를 바이패스(bypass)시키므로써, 전체 하드웨어의 효율성을 향상하도록 되어진 예견 기능을 갖는 기능 흐름 파이프라인 구조를 제공하는데 그 목적이 있다.Accordingly, the present invention has been made in order to solve the above problems, in the transfer of data to each functional unit, by bypassing the data in a path satisfying the condition by examining several conditions in addition to the formal path. Bypassing, the goal is to provide a functional flow pipeline structure with predictive functionality designed to improve the efficiency of the overall hardware.

상기와 같은 목적을 달성하기 위한 본 발명에 따른 예견 기능을 갖는 기능 흐름 파이프라인 구조가, 입력된 데이터를 독립적인 기능을 수행하는 각 기능 유닛으로 전달하기 위해 제 1 스테이지, 제 2 스테이지, 제 3 스테이지와 제 4 스테이지로 이루어진 기능 흐름 파이프라인 구조에 있어서, 상기 제 1 스테이지에서 상기 제 3 스테이지로 데이터를 바이패스하기 위한 제 1 바이패스 수단; 및 상기 제 1 스테이지에서 상기 제 4 스테이지로 데이터를 바이패스하기 위한 제 2 바이패스 수단을 더 구비하여 구성된 것을 특징으로 한다.A functional flow pipeline structure having a predictive function according to the present invention for achieving the above object includes a first stage, a second stage, and a third to transfer input data to each functional unit performing an independent function. 11. A functional flow pipeline structure comprising a stage and a fourth stage, comprising: first bypass means for bypassing data from the first stage to the third stage; And second bypass means for bypassing data from the first stage to the fourth stage.

상기와 같은 본 발명에 따르면 각각의 기능 유닛에 데이터를 전달함에 있어서, 정식 경로이외에 또 다른 경로를 두고 여러 조건을 검사하여 조건에 만족하는 경로로 데이터를 바이패스시키므로써, 기능 흐름 파이프라인내의 각 스테이지에서 발생하는 버블 현상을 감소시켜 기능 유닛의 이용률을 높이는 결과를 낳아 성능 향상을 기대할 수 있다.According to the present invention as described above, in passing data to each functional unit, by inspecting a number of conditions in another path in addition to the formal path, by bypassing the data in a path that satisfies the conditions, each in the functional flow pipeline Increasing the utilization of functional units by reducing the bubble phenomenon in the stage can be expected to improve performance.

도 1 은 산술 파이프라이닝을 설명하기 위한 도면,1 is a view for explaining arithmetic pipelining,

도 2 는 인스트럭션 파이프라이닝을 설명하기 위한 도면,2 is a view for explaining instruction pipelining,

도 3 은 프로세서 파이프라이닝을 설명하기 위한 도면,3 is a diagram for explaining processor pipelining;

도 4 은 선형 파이프라인 프로세서의 기본 구조도,4 is a basic structural diagram of a linear pipeline processor;

도 5 는 선형 파이프라인의 중첩 동작을 설명하기 위한 4-스테이지 파이프라인 프로세서의 공간-시간 다이어그램,5 is a space-time diagram of a four-stage pipeline processor for explaining the overlapping operation of the linear pipeline;

도 6 은 종래의 기능 확인 흐름을 갖는 파이프라인의 구조도,6 is a structural diagram of a pipeline having a conventional functional confirmation flow;

도 7 는 본 발명에 따른 예견 기능을 갖는 기능 흐름 파이프라인의 구조도이 다.7 is a structural diagram of a functional flow pipeline having a foresight function according to the present invention.

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

100: 기능 유닛 판정수단 100-1∼100-n: 제 1 스테이지∼제 n 스테이지200-1∼200-n: 복수개의 기능유닛 300: 기능 흐름 파이프라인100: functional unit determining means 100-1 to 100-n: first to nth stages 200-1 to 200-n: plural functional units 300: functional flow pipeline

400: 제 1 바이패스 수단 400A: 제 1 다중화부400: first bypass means 400A: first multiplexer

400B: 제 1 선택신호 발생부 400B-1: 제 1 배타적논리합 게이트400B: first selection signal generator 400B-1: first exclusive logic gate

400B-2: 제 1 인버터 400B-3: 제 1 논리곱 게이트400B-2: First Inverter 400B-3: First Logic Gate

500: 제 2 바이패스 수단 500A: 제 2 다중화부500: second bypass means 500A: second multiplexer

500B: 제 2 선택신호 발생부 500B-1: 제 2 배타적논리합 게이트500B: second selection signal generator 500B-1: second exclusive logic gate

500B-2: 제 2 인버터 500B-3: 제 2 논리곱 게이트500B-2: second inverter 500B-3: second AND gate

600-1∼600-4 : 기능 유닛 Si: i 번째 스테이지600-1 to 600-4: Function unit 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 번째 서브태스크 : j th subtask of the i th task

이하, 첨부된 도면을 참조하여 본 발명에 대해서 설명하면 다음과 같다.Hereinafter, the present invention will be described with reference to the accompanying drawings.

도 7 은 본 발명에 따른 예견 기능을 갖는 기능 흐름 파이프라인의 구조도로서, 도 7 은 기능 흐름 파이프라인(300), 제 1 바이패스 수단(400), 제 2 바이패스 수단(500) 및 복수개의 기능 유닛(600-1∼600-4)으로 구성되어 있다.7 is a structural diagram of a functional flow pipeline having a predictive function according to the present invention, Figure 7 is a functional flow pipeline 300, the first bypass means 400, the second bypass means 500 and a plurality of It consists of functional units 600-1 to 600-4.

이때 기능 흐름 파이프라인(300)으로 입력되는 데이터 스트림의 구조를 살펴보면, 유효 비트(Valid bit)는 1 비트로서 0 인 경우에는 유효하지 않은(invalid) 데이터를 나타내고, 1 인 경우에는 유효한(Valid) 데이터임을 나타낸다. 그리고, 기능 유닛 식별자 비트(Function Unit Identifer bit: FU Id bit)는 2 비트로서, 0 은 데이터가 제 1 기능 유닛(600-1)에서 필요로 하는 데이터임을 의미하고, 1 은 데이터가 제 2 기능 유닛(600-2)에서 필요로 하는 데이터임을 의미하며, 10 은 데이터가 제 3 기능 유닛(600-3)에서 필요로 하는 데이터임을 의미하고, 11 은 데이터가 제 4 기능 유닛(600-4)에서 필요로 하는 데이터임을 의미한다. 한편, 데이터는 16 비트로서, 각 기능 유닛에서 독립적인 기능을 수행하기 위해 필요로하는 데이터이다.At this time, when looking at the structure of the data stream input to the functional flow pipeline 300, the valid bit (Valid bit) is 1 bit represents the invalid data if 0, and if it is 1 (Valid) Indicates data. In addition, the Function Unit Identifer bit (FU Id bit) is 2 bits, 0 means that data is data required by the first functional unit 600-1, and 1 means data is a second function. Means that the data is required by the unit 600-2, 10 means that the data is required by the third functional unit 600-3, and 11 means that the data is the fourth functional unit 600-4. This means that the data is needed by. On the other hand, data is 16 bits, which is data required for performing an independent function in each functional unit.

여기서, 상기 기능 흐름 파이프라인(300)은 제 1 스테이지(300-1), 제 2 스테이지(300-2), 제 3 스테이지(300-3) 및 제 4 스테이지(300-4)로 이루어져 있으며, 각 스테이지는 다음단의 각 기능 유닛(600-1∼600-4)으로 데이터를 전달한다. 이때, 제 1 스테이지(300-1)에 있는 고유의 기능 유닛 식별자는 0 이며, 제 2 스테이지(300-2)에 있는 고유의 기능 유닛 식별자는 1 이고, 제 3 스테이지(300-3)에 있는 고유의 기능 유닛 식별자는 10 이며, 제 4 스테이지(300-4)에 있는 고유의 기능 유닛 식별자는 11 이다. 일반적인 파이프라인은 데이터의 처리를 향상시키기 위해 사용하지만, 여기서의 기능 흐름 파이프 라인(FFP)은 데이터의 전달을 위해서 사용한다.The functional flow pipeline 300 includes a first stage 300-1, a second stage 300-2, a third stage 300-3, and a fourth stage 300-4. Each stage delivers data to each functional unit 600-1 to 600-4 in the next stage. At this time, the unique functional unit identifier in the first stage 300-1 is 0, the unique functional unit identifier in the second stage 300-2 is 1, and the unique functional unit identifier in the third stage 300-3 is The unique functional unit identifier is 10 and the unique functional unit identifier in the fourth stage 300-4 is 11. The general pipeline is used to improve the processing of data, but the functional flow pipeline (FFP) here is used for the transfer of data.

그리고, 상기 제 1 바이패스 수단(400)은 제 1 다중화부(400A)와 제 1 선택신호 발생부(400B)로 구성되어 있으며, 이때 상기 제 1 다중화부(400A)에서는 상기 제 1 스테이지(300-1)로부터의 데이터와 상기 제 2 스테이지(300-2)로부터의 데이터중 하나의 데이터를 선택하고, 상기 제 1 선택신호 발생부(400B)에서는 상기 제 1 스테이지(300-1)로부터의 기능 유닛 식별자와 상기 제 3 스테이지(300-3)로부터의 고유 기능 유닛 식별자를 비교한 후, 상기 제 3 스테이지(300-3)에 있는 유효비트에 따라 제 1 선택신호(st1)를 상기 제 1 다중화부(400A)로 출력한다.The first bypass means 400 includes a first multiplexer 400A and a first selection signal generator 400B. In this case, the first multiplexer 400A includes the first stage 300. Selects one of the data from -1) and the data from the second stage 300-2, and the first selection signal generator 400B functions from the first stage 300-1. After comparing a unit identifier with a unique functional unit identifier from the third stage 300-3, the first multiplexing signal st1 is first multiplexed according to a valid bit present in the third stage 300-3. Output to unit 400A.

상기 제 1 선택신호 발생부(400B)는 제 1 배타적 논리합 게이트(400B-1)와 제 1 인버터(400B-2) 및 제 1 논리곱 게이트(400B-3)로 구성되어 있으며, 여기 제 1 배타적 논리합 게이트(400B-1)에서는 상기 제 1 스테이지(300-1)로부터의 기능 유닛 식별자와 상기 제 3 스테이지(300-3)로부터의 고유 기능 유닛 식별자를 입력받아 배타적논리합을 수행하고, 상기 제 1 인버터(400B-2)에서는 상기 제 3 스테이지(300-3)로부터 유효 비트를 입력받아 반전시키며, 제 1 논리곱 게이트(400B-3)에서는 상기 제 1 배타적 논리합 게이트(400B-1)로부터의 결과와 상기 제 1 인버터(400B-2)로부터의 결과를 입력받아 논리곱을 수행한 후, 제 1 선택신호(st1)를 출력한다.The first selection signal generator 400B includes a first exclusive OR gate 400B-1, a first inverter 400B-2, and a first AND gate 400B-3. The OR gate 400B-1 receives the functional unit identifier from the first stage 300-1 and the unique functional unit identifier from the third stage 300-3, and performs an exclusive logic sum. Inverter 400B-2 receives the valid bit from the third stage 300-3 and inverts the result. From first AND gate 400B-3, the result is obtained from the first exclusive OR gate 400B-1. And a result of performing a logical multiplication upon receiving the result from the first inverter 400B-2, and outputting a first selection signal st1.

한편, 상기 제 2 바이패스 수단(500)은 제 2 다중화부(500A)와 제 2 선택신호 발생부(500B)로 구성되어 있으며, 이때 상기 제 2 다중화부(500A)에서는 상기 제 1 스테이지(300-1)로부터의 데이터와 상기 제 3 스테이지(300-3)로부터의 데이터중 하나의 데이터를 선택하고, 상기 제 2 선택신호 발생부(500B)에서는 상기 제 1 스테이지(300-1)로부터의 기능 유닛 식별자와 상기 제 4 스테이지(300-4)로부터의 고유 기능 유닛 식별자를 비교한 후, 상기 제 4 스테이지(300-4)에 있는 유효비트에 따라 제 2 선택신호(st2)를 상기 제 2 다중화부(500A)로 출력한다.Meanwhile, the second bypass means 500 includes a second multiplexer 500A and a second selection signal generator 500B. In this case, the second multiplexer 500A includes the first stage 300. Selects one of the data from -1) and the data from the third stage 300-3, and the second selection signal generator 500B functions from the first stage 300-1. After comparing the unit identifier and the unique functional unit identifier from the fourth stage 300-4, the second multiplexing signal st2 is second-multiplied according to the valid bits in the fourth stage 300-4. Output to negative portion 500A.

상기 제 2 선택신호 발생부(500B)는 제 2 배타적 논리합 게이트(500B-1)와 제 2 인버터(500B-2) 및 제 2 논리곱 게이트(500B-3)로 구성되어 있으며, 여기 제 2 배타적논리합 게이트(500B-1)에서는 상기 제 1 스테이지(300-1)로부터의 기능 유닛 식별자와 상기 제 4 스테이지(300-4)로부터의 고유 기능 유닛 식별자를 입력받아 배타적논리합을 수행하고, 상기 제 2 인버터(500B-2)에서는 상기 제 4 스테이지(300-4)로부터 유효 비트를 입력받아 반전시키며, 제 2 논리곱 게이트(500B-3)에서는 상기 제 2 배타적 논리합 게이트(500B-1)로부터의 결과와 상기 제 2 인버터(500B-2)로부터의 결과를 입력받아 논리곱을 수행한 후, 제 2 선택신호(st2)를 출력한다.The second selection signal generator 500B includes a second exclusive OR gate 500B-1, a second inverter 500B-2, and a second AND gate 500B-3, and the second exclusive excitation gate 500B-3 is here. The OR gate 500B-1 receives an exclusive logical unit by receiving a functional unit identifier from the first stage 300-1 and a unique functional unit identifier from the fourth stage 300-4, and performs the second logical sum. Inverter 500B-2 receives the valid bit from the fourth stage 300-4 and inverts the result. From the second AND gate 500B-3, the result from the second exclusive AND gate 500B-1 is determined. And a result of performing a logical multiplication upon receiving the result from the second inverter 500B-2, and outputting a second selection signal st2.

그리고, 상기 복수개의 기능 유닛(600-1∼600-4)는 레이턴시(Latency) 크기의 순서에 따라 병렬로 배열되어 있는데, 이때 레이턴시는 클럭의 수로 나타나며 클럭의 수가 많이 필요한 기능 유닛부터 순서대로 상단에 배열한다. 상기 각각의 기능 유닛(600-1∼600-4)은 상기 기능 흐름 파이프라인(300)의 각 스테이지로부터 데이터를 입력받아 독립적인 기능을 수행한다. 상기 복수개의 기능 유닛(600-1∼600-4)의 예로는 덧셈기, 곱셈기, 나눗셈기 등 여러 가지가 사용될 수 있다.The plurality of functional units 600-1 to 600-4 are arranged in parallel according to the order of latency, in which the latency is represented by the number of clocks and the top of the functional units that require a large number of clocks in order. Arrange on. Each of the functional units 600-1 to 600-4 receives data from each stage of the functional flow pipeline 300 to perform independent functions. Examples of the plurality of functional units 600-1 to 600-4 may include various kinds of adders, multipliers, and dividers.

이어서, 상기와 같이 구성되는 본 발명의 실시예에 대한 동작을 도 7 을 참조하여 살펴보기로 한다.Next, an operation of an embodiment of the present invention configured as described above will be described with reference to FIG. 7.

1) 기능 흐름 파이프라인(300)내의 제 1 스테이지(300-1)에 있는 데이터가 제 1 기능 유닛(600-1)에서 필요로 하는 데이터인 경우에는, 제 1 스테이지(300-1)에 있는 데이터를 바로 제 1 기능 유닛(600-1)으로 전달하여 독립적인 기능을 수행한다.1) If the data in the first stage 300-1 in the functional flow pipeline 300 is the data required by the first functional unit 600-1, the data is in the first stage 300-1. The data is transferred directly to the first functional unit 600-1 to perform an independent function.

2) 기능 흐름 파이프라인(300)내의 제 1 스테이지(300-1)에 있는 데이터가 제 2 기능 유닛(600-2)에서 필요로 하는 데이터인 경우에는, 제 1 스테이지(300-1)에 있는 데이터를 다음 제 2 스테이지(300-2)로 전달한 후, 그 데이터를 제 2 스테이지(300-2)에서 제 2 기능 유닛(600-2)으로 전달하여 독립적인 기능을 수행한다.2) If the data in the first stage 300-1 in the functional flow pipeline 300 is the data required by the second functional unit 600-2, the data in the first stage 300-1 is present. After transferring the data to the next second stage 300-2, the data is transferred from the second stage 300-2 to the second functional unit 600-2 to perform an independent function.

3) 기능 흐름 파이프라인(300)내의 제 1 스테이지(300-1)에 있는 데이터가 제 3 기능 유닛(600-3)에서 필요로 하는 데이터인 경우3) The data in the first stage 300-1 in the functional flow pipeline 300 is the data required by the third functional unit 600-3.

제 1 스테이지(300-1)로부터의 기능 유닛 식별자와 제 3 스테이지(300-3)로부터의 고유 기능 유닛 식별자(10)가 제 1 바이패스 수단(400)의 제 1 선택 신호 발생부(400B)로 입력되어 제 1 배타적논리합 게이트(400B-1)에서 같은 지를 비교한다. 제 1 스테이지(300-1)에 있는 데이터가 제 3 기능 유닛(600-3)에서 필요로 하는 데이터인 경우에는 제 1 스테이지(300-1)에 있는 기능 유닛 식별자의 값은 10 이므로 제 3 스테이지(300-3)의 고유 기능 유닛 식별자(10)와 같다. 따라서, 제 1 배타적논리합 게이트(400B-1)의 결과는 1 이다. 그러면, 제 1 스테이지(300-1)에 있는 데이터를 제 3 스테이지(300-3)로 바이패스시키기 위해서는 제 3 스테이지(300-3)에 있는 유효 비트가 0 이어야 한다. 제 3 스테이지(300-3)에 있는 유효 비트 0 을 제 1 인버터(400B-2)에서 입력받아 반전시키면, 상기 제 1 인버터(400B-2)의 결과는 1 이 된다. 상기 제 1 배타적논리합 게이트(400B-1)의 결과 1 과 상기 제 1 인버터(400B-2)의 결과 1 이 제 1 논리곱 게이트(400B-3)로 입력되어 논리곱이 수행되면 제 1 논리곱 게이트(400B-3)의 결과는 1 이 된다. 이때 제 1 논리곱 게이트(400B-3)의 결과 1 은 제 1 선택신호(st1)가 되며, 제 1 선택신호(st1)는 제 1 바이패스 수단(400)의 제 1 다중화부(400A)로 입력된다. 상기 제 1 선택신호(st1)가 1 인 경우에는 제 1 스테이지(300-1)로부터의 데이터와 제 2 스테이지(300-2)로부터의 데이터중 제 1 스테이지(300-1)로부터의 데이터가 상기 제 1 다중화부(400A)에서 선택되어 제 3 스테이지(300-3)로 입력된다.(참고적으로 제 1 선택신호(st1)가 0 인 경우에는 제 1 스테이지(300-1)로부터의 데이터와 제 2 스테이지(300-2)로부터의 데이터중 제 2 스테이지(300-2)로부터의 데이터가 상기 제 1 다중화부(400A)에서 선택되어 제 3 스테이지(300-3)로 입력된다.) 마지막으로 제 3 스테이지(300-3)에서는 제 1 스테이지(300-1)로부터 입력받은 데이터를 제 3 기능 유닛(600-3)으로 전달하여 독립적인 기능을 수행하도록 한다.The functional unit identifier from the first stage 300-1 and the unique functional unit identifier 10 from the third stage 300-3 are selected by the first selection signal generator 400B of the first bypass means 400. It is input to and compares whether it is the same in the first exclusive logic gate 400B-1. If the data in the first stage 300-1 is the data required by the third functional unit 600-3, the value of the functional unit identifier in the first stage 300-1 is 10 and thus the third stage. Same as the unique functional unit identifier 10 of 300-3. Therefore, the result of the first exclusive logic gate 400B-1 is one. Then, in order to bypass the data in the first stage 300-1 to the third stage 300-3, the valid bit in the third stage 300-3 must be zero. When the valid bit 0 in the third stage 300-3 is inputted by the first inverter 400B-2 and inverted, the result of the first inverter 400B-2 is 1. When the result 1 of the first exclusive logic gate 400B-1 and the result 1 of the first inverter 400B-2 are input to the first AND gate 400B-3 and the AND is performed, the first AND gate is performed. The result of (400B-3) is 1. In this case, the result 1 of the first AND gate 400B-3 becomes the first selection signal st1, and the first selection signal st1 is passed to the first multiplexer 400A of the first bypass unit 400. Is entered. When the first selection signal st1 is 1, the data from the first stage 300-1 of the data from the first stage 300-1 and the data from the second stage 300-2 are the same. It is selected by the first multiplexer 400A and input to the third stage 300-3. (In the case where the first selection signal st1 is 0, the data from the first stage 300-1 may not be used. Among the data from the second stage 300-2, the data from the second stage 300-2 is selected by the first multiplexer 400A and input to the third stage 300-3. In the third stage 300-3, data received from the first stage 300-1 is transferred to the third functional unit 600-3 to perform an independent function.

4) 기능 흐름 파이프라인(300)내의 제 1 스테이지(300-1)에 있는 데이터가 제 4 기능 유닛(600-4)에서 필요로 하는 데이터인 경우4) The data in the first stage 300-1 in the functional flow pipeline 300 is the data required by the fourth functional unit 600-4.

제 1 스테이지(300-1)로부터의 기능 유닛 식별자와 제 4 스테이지(300-4)로부터의 고유 기능 유닛 식별자(11)가 제 2 바이패스 수단(500)의 제 2 선택 신호 발생부(500B)로 입력되어 제 2 배타적논리합 게이트(500B-1)에서 같은 지를 비교한다. 제 1 스테이지(300-1)에 있는 데이터가 제 4 기능 유닛(600-4)에서 필요로 하는 데이터인 경우에는 제 1 스테이지(300-1)에 있는 기능 유닛 식별자의 값은 11 이므로 제 4 스테이지(300-4)의 고유 기능 유닛 식별자(11)와 같다. 따라서, 제 2 배타적논리합 게이트(500B-1)의 결과는 1 이다. 그러면, 제 1 스테이지(300-1)에 있는 데이터를 제 4 스테이지(300-4)로 바이패스시키기 위해서는 제 4 스테이지(300-4)에 있는 유효 비트가 0 이어야 한다. 제 4 스테이지(300-4)에 있는 유효 비트 0 을 제 2 인버터(500B-2)에서 입력받아 반전시키면, 상기 제 2 인버터(500B-2)의 결과는 1 이 된다. 상기 제 2 배타적논리합 게이트(500B-1)의 결과 1 과 상기 제 2 인버터(500B-2)의 결과 1 이 제 2 논리곱 게이트(500B-3)로 입력되어 논리곱이 수행되면 제 2 논리곱 게이트(500B-3)의 결과는 1 이 된다. 이때 제 2 논리곱 게이트(500B-3)의 결과 1 은 제 2 선택신호(st2)가 되며, 제 2 선택신호(st2)는 제 2 바이패스 수단(500)의 제 2 다중화부(500A)로 입력된다. 상기 제 2 선택신호(st2)가 1 인 경우에는 제 1 스테이지(300-1)로부터의 데이터와 제 3 스테이지(300-3)로부터의 데이터중 제 1 스테이지(300-1)로부터의 데이터가 상기 제 2 다중화부(500A)에서 선택되어 제 4 스테이지(300-4)로 입력된다.(참고적으로 제 2 선택신호(st2)가 0 인 경우에는 제 1 스테이지(300-1)로부터의 데이터와 제 3 스테이지(300-3)로부터의 데이터중 제 3 스테이지(300-3)로부터의 데이터가 상기 제 2 다중화부(500A)에서 선택되어 제 4 스테이지(300-4)로 입력된다.) 마지막으로 제 4 스테이지(300-4)에서는 제 1 스테이지(300-1)로부터 입력받은 데이터를 제 4 기능 유닛(600-4)으로 전달하여 독립적인 기능을 수행하도록 한다.The functional unit identifier from the first stage 300-1 and the unique functional unit identifier 11 from the fourth stage 300-4 are selected by the second selection signal generator 500B of the second bypass means 500. It is input to and compares whether it is the same in the second exclusive logic gate 500B-1. If the data in the first stage 300-1 is the data required by the fourth functional unit 600-4, the value of the functional unit identifier in the first stage 300-1 is 11 and thus the fourth stage. Same as the unique functional unit identifier 11 of 300-4. Therefore, the result of the second exclusive logic gate 500B-1 is one. Then, in order to bypass the data in the first stage 300-1 to the fourth stage 300-4, the valid bit in the fourth stage 300-4 must be zero. When the valid bit 0 in the fourth stage 300-4 is inputted by the second inverter 500B-2 and inverted, the result of the second inverter 500B-2 is 1. When the result 1 of the second exclusive logic gate 500B-1 and the result 1 of the second inverter 500B-2 are input to the second AND gate 500B-3 and the AND is performed, the second AND gate is performed. The result of (500B-3) is 1. At this time, the result 1 of the second AND gate 500B-3 becomes the second selection signal st2, and the second selection signal st2 is the second multiplexer 500A of the second bypass unit 500. Is entered. When the second selection signal st2 is 1, the data from the first stage 300-1 of the data from the first stage 300-1 and the data from the third stage 300-3 are displayed. It is selected by the second multiplexer 500A and input to the fourth stage 300-4. (For reference, when the second selection signal st2 is 0, data from the first stage 300-1 and Among the data from the third stage 300-3, the data from the third stage 300-3 is selected by the second multiplexer 500A and input to the fourth stage 300-4. In the fourth stage 300-4, the data received from the first stage 300-1 is transferred to the fourth functional unit 600-4 to perform an independent function.

상기에서 서술된 실시예는 모든 점에서 예시에 불과한 것이고, 이를 한정적으로 해석해서는 안되며, 단지 본 발명의 진정한 정신 및 범위내에 존재하는 변형예는 모두 본 발명의 청구 범위에 속하는 것이다.The embodiments described above are merely illustrative in all respects and should not be construed as limiting, and all modifications that fall within the true spirit and scope of the present invention shall fall within the claims of the present invention.

이상에서 살펴본 바와 같이 본 발명에 따르면 각각의 기능 유닛에 데이터를 전달함에 있어서, 정식 경로이외에 또 다른 경로를 두고 여러 조건을 검사하여 조건에 만족하는 경로로 데이터를 바이패스시키므로써, 기능 흐름 파이프라인내의 각 스테이지에서 발생하는 버블 현상을 감소시켜 기능 유닛의 이용률을 높이는 결과를 낳아 성능 향상을 기대할 수 있다는 데 그 효과가 있다.As described above, according to the present invention, in passing data to each functional unit, the functional flow pipeline is provided by bypassing the data to a path satisfying the condition by checking various conditions with another path besides the formal path. The effect is that the performance improvement can be expected by reducing the bubble occurring at each stage in the stage, thereby increasing the utilization of the functional unit.

Claims (5)

입력된 데이터를 독립적인 기능을 수행하는 각 기능 유닛으로 전달하기 위해 제 1 스테이지(300-1), 제 2 스테이지(300-2), 제 3 스테이지(300-3)와 제 4 스테이지(300-4)로 이루어진 기능 흐름 파이프라인(300) 구조에 있어서, 상기 제 1 스테이지(300-1)에서 상기 제 3 스테이지(300-3)로 데이터를 바이패스하기 위한 제 1 바이패스 수단(400); 및 상기 제 1 스테이지(300-1)에서 상기 제 4 스테이지(300-4)로 데이터를 바이패스하기 위한 제 2 바이패스 수단(500)을 더 구비하여 구성된 것을 특징으로 하는 예견 기능을 갖는 기능 흐름 파이프라인 구조.The first stage 300-1, the second stage 300-2, the third stage 300-3 and the fourth stage 300-to transfer the input data to each functional unit performing an independent function. A functional flow pipeline (300) structure comprising: first bypass means (400) for bypassing data from the first stage (300-1) to the third stage (300-3); And a second bypass means 500 for bypassing data from the first stage 300-1 to the fourth stage 300-4. Pipeline structure. 제 1 항에 있어서, 상기 제 1 바이패스 수단(400)이, 상기 제 1 스테이지(300-1)로부터의 데이터와 상기 제 2 스테이지(300-2)로부터의 데이터중 하나의 데이터를 선택하는 제 1 다중화부(400A); 및 상기 제 1 스테이지(300-1)로부터의 기능 유닛 식별자와 상기 제 3 스테이지(300-3)로부터의 고유 기능 유닛 식별자를 비교한 후, 상기 제 3 스테이지(300-3)에 있는 유효비트에 따라 제 1 선택신호를 상기 제 1 다중화부(400A)로 출력하는 제 1 선택신호 발생부(400B)로 구성된 것을 특징으로 하는 예견 기능을 갖는 기능 흐름 파이프라인 구조.The method of claim 1, wherein the first bypass unit 400 selects one of data from the first stage 300-1 and data from the second stage 300-2. 1 multiplexer 400A; And comparing the functional unit identifier from the first stage 300-1 with the unique functional unit identifier from the third stage 300-3 and then applying the valid bit in the third stage 300-3. And a first selection signal generator 400B for outputting a first selection signal to the first multiplexer 400A. 제 2 항에 있어서, 상기 제 1 선택신호 발생부(400B)가, 상기 제 1 스테이지(300-1)로부터의 기능 유닛 식별자와 상기 제 3 스테이지(300-3)로부터의 고유 기능 유닛 식별자를 입력받아 배타적논리합을 수행하는 제 1 배타적 논리합 게이트(400B-1)와; 상기 제 3 스테이지(300-3)로부터 유효 비트를 입력받아 반전시키는 제 1 인버터(400B-2); 및 상기 제 1 배타적 논리합 게이트(400B-1)로부터의 결과와 상기 제 1 인버터(400B-2)로부터의 결과를 입력받아 논리곱을 수행한 후, 제 1 선택신호를 출력하는 제 1 논리곱 게이트(400B-3)로 이루어진 것을 특징으로 하는 예견 기능을 갖는 기능 흐름 파이프라인 구조.3. The first selection signal generator 400B inputs a functional unit identifier from the first stage 300-1 and a unique functional unit identifier from the third stage 300-3. A first exclusive OR gate 400B-1 that receives and performs an exclusive logical sum; A first inverter 400B-2 for receiving a valid bit from the third stage 300-3 and inverting the valid bit; And a first AND gate that receives a result from the first exclusive OR gate 400B-1 and a result from the first inverter 400B-2, performs an AND, and then outputs a first selection signal. Functional flow pipeline structure having a foresight function, characterized in that consisting of 400B-3). 제 1 항에 있어서, 상기 제 2 바이패스 수단(500)이, 상기 제 1 스테이지(300-1)로부터의 데이터와 상기 제 3 스테이지(300-3)로부터의 데이터중 하나의 데이터를 선택하는 제 2 다중화부(500A); 및 상기 제 1 스테이지(300-1)로부터의 기능 유닛 식별자와 상기 제 4 스테이지(300-4)로부터의 고유 기능 유닛 식별자를 비교한 후, 상기 제 4 스테이지(300-4)에 있는 유효비트에 따라 제 2 선택신호를 상기 제 2 다중화부(500A)로 출력하는 제 2 선택신호 발생부(500B)로 구성된 것을 특징으로 하는 예견 기능을 갖는 기능 흐름 파이프라인 구조.The method of claim 1, wherein the second bypass unit 500 selects one of data from the first stage 300-1 and data from the third stage 300-3. Two multiplexing units 500A; And comparing the functional unit identifier from the first stage 300-1 with the unique functional unit identifier from the fourth stage 300-4, and then applying the valid bit in the fourth stage 300-4. And a second selection signal generator 500B for outputting a second selection signal to the second multiplexer 500A. 제 4 항에 있어서, 상기 제 2 선택신호 발생부(500B)가, 상기 제 1 스테이지(300-1)로부터의 기능 유닛 식별자와 상기 제 4 스테이지(300-4)로부터의 고유 기능 유닛 식별자를 입력받아 배타적논리합을 수행하는 제 2 배타적 논리합 게이트(500B-1)와; 상기 제 4 스테이지(300-4)로부터 유효 비트를 입력받아 반전시키는 제 2 인버터(500B-2); 및 상기 제 2 배타적 논리합 게이트(500B-1)로부터의 결과와 상기 제 2 인버터(500B-2)로부터의 결과를 입력받아 논리곱을 수행한 후, 제 2 선택신호를 출력하는 제 2 논리곱 게이트(500B-3)로 이루어진 것을 특징으로 하는 예견 기능을 갖는 기능 흐름 파이프라인 구조.The method of claim 4, wherein the second selection signal generator 500B inputs a functional unit identifier from the first stage 300-1 and a unique functional unit identifier from the fourth stage 300-4. A second exclusive OR gate 500B-1 that receives and performs an exclusive logic sum; A second inverter 500B-2 that receives the valid bit from the fourth stage 300-4 and inverts the valid bit; And a second AND gate that receives a result from the second exclusive OR gate 500B-1 and a result from the second inverter 500B-2, performs an AND, and then outputs a second selection signal. A functional flow pipeline structure having a foresight function, characterized in that consisting of 500B-3).
KR1019960055789A 1996-11-20 1996-11-20 Functional flow pipeline structure with foreseeability KR19980037090A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960055789A KR19980037090A (en) 1996-11-20 1996-11-20 Functional flow pipeline structure with foreseeability

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960055789A KR19980037090A (en) 1996-11-20 1996-11-20 Functional flow pipeline structure with foreseeability

Publications (1)

Publication Number Publication Date
KR19980037090A true KR19980037090A (en) 1998-08-05

Family

ID=66320371

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960055789A KR19980037090A (en) 1996-11-20 1996-11-20 Functional flow pipeline structure with foreseeability

Country Status (1)

Country Link
KR (1) KR19980037090A (en)

Similar Documents

Publication Publication Date Title
KR930004214B1 (en) Data processing system
US4594655A (en) (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions
KR100464406B1 (en) Apparatus and method for dispatching very long instruction word with variable length
US5825677A (en) Numerically intensive computer accelerator
US7831805B2 (en) Coupling a general purpose processor to an application specific instruction set processor
US20200310797A1 (en) Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator
KR100616722B1 (en) Pipe1ined instruction dispatch unit in a supersca1ar processor
US20030120882A1 (en) Apparatus and method for exiting from a software pipeline loop procedure in a digital signal processor
US11481223B2 (en) Reducing operations of sum-of-multiply-accumulate (SOMAC) instructions
US20030120900A1 (en) Apparatus and method for a software pipeline loop procedure in a digital signal processor
CN112074810B (en) Parallel processing apparatus
US20030120905A1 (en) Apparatus and method for executing a nested loop program with a software pipeline loop procedure in a digital signal processor
KR100221326B1 (en) A pipeline system using the hierarchical structure
JP2004503872A (en) Shared use computer system
KR19980037090A (en) Functional flow pipeline structure with foreseeability
US20030120899A1 (en) Apparatus and method for processing an interrupt in a software pipeline loop procedure in a digital signal processor
KR100226694B1 (en) A plural pipeline structure and a plural pipelining method
JP4230461B2 (en) Fully synchronous super pipelined VLIW processor system and method
KR100221325B1 (en) Dual function flow pipeline structure using switches
Ginosar et al. On the potential of asynchronous pipelined processors
KR100230846B1 (en) A dual function flow pipeline structure
KR19980037093A (en) Shuffle pipeline structure
US11416261B2 (en) Group load register of a graph streaming processor
KR19980035724A (en) Pipeline Structure with Functional Verification Flow and Its Pipelining Method
KR100226695B1 (en) A pipeline structure having bidirectional function checking flow

Legal Events

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