KR100861073B1 - Parallel processing processor architecture adapting adaptive pipeline - Google Patents
Parallel processing processor architecture adapting adaptive pipeline Download PDFInfo
- Publication number
- KR100861073B1 KR100861073B1 KR1020070007118A KR20070007118A KR100861073B1 KR 100861073 B1 KR100861073 B1 KR 100861073B1 KR 1020070007118 A KR1020070007118 A KR 1020070007118A KR 20070007118 A KR20070007118 A KR 20070007118A KR 100861073 B1 KR100861073 B1 KR 100861073B1
- Authority
- KR
- South Korea
- Prior art keywords
- stage
- instruction
- pipeline
- instructions
- processor
- Prior art date
Links
- 230000003044 adaptive effect Effects 0.000 title claims abstract description 17
- 210000003813 thumb Anatomy 0.000 claims description 15
- 238000000034 method Methods 0.000 abstract description 17
- 238000010586 diagram Methods 0.000 description 10
- 230000010354 integration Effects 0.000 description 7
- 238000000926 separation method Methods 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
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
하드웨어로 구현된 프로세서의 여러 파이프라인 단들의 위치를 실행중인 명령어에 따라 적응적으로 변화시킬 수 있는 비동기식 파이프라인 구조와, 하드웨어 증가 없이 여러 종류의 명령어를 병렬로 처리할 수 있도록 명령어 종류에 따라 전체 시스템의 데이터패스를 분할하여 서로 다른 명령어들을 동시에 실행시키는 비동기식 제어 방법, 그리고 제시된 파이프라인 구조와 제어 방법을 프로세서에 적용하여 시스템의 불필요한 동작을 제거하고 병렬처리율을 증가시키는 프로세서 구조가 개시된다. 본 발명은 비동기식 적응형 파이프라인과 병렬 처리 방식을 시스템에 적용하면 시스템의 불필요한 동작을 제거하고, 하드웨어의 증가 없이 여러 종류의 명령어를 병렬로 처리할 수 있다. 이로 인해 기존의 프로세서에 비해 명령어 처리 속도를 증가시킬 수 있고, 하드웨어의 증가가 없으므로 소비 전력을 감소시킬 수 있다.An asynchronous pipeline structure that can adaptively change the location of multiple pipeline stages of a hardware-implemented processor according to the instructions being executed, and the entire type according to the instruction type to process several kinds of instructions in parallel without increasing hardware. An asynchronous control method for dividing a datapath of a system to execute different instructions simultaneously, and a processor structure for applying unnecessary proposed pipeline structures and control methods to a processor to eliminate unnecessary operation of the system and to increase parallelism. According to the present invention, when the asynchronous adaptive pipeline and the parallel processing scheme are applied to a system, unnecessary operations of the system can be eliminated and various kinds of instructions can be processed in parallel without increasing hardware. This can increase instruction processing speed compared to conventional processors, and reduce power consumption since there is no increase in hardware.
Description
도 1은 스테이지 스키핑과 스테이지 통합 방식을 채택한 적응형 파이프라인의 구조도이다.1 is a structural diagram of an adaptive pipeline employing stage skipping and stage integration.
도 2a는 스테이지 스키핑 방식의 실행 예를 보여주기 위한 적응형 파이프라인의 동작 예이다. 2A is an example of operation of an adaptive pipeline to illustrate an example implementation of a stage skipping scheme.
도 2b는 스테이지 통합 방식의 실행 예를 보여주기 위한 적응형 파이프라인의 동작 예이다.2B is an example of operation of an adaptive pipeline to illustrate an example implementation of a stage integration scheme.
도 3a는 일반적인 파이프라인 구조에서 데이터의 처리를 보여주기 위한 블록도이다. 3A is a block diagram illustrating the processing of data in a general pipeline structure.
도 3b는 본 발명에 따른 데이터 패스 분리 기반의 파이프라인 구조를 보여주기 위한 블록도이다. 3B is a block diagram illustrating a pipeline structure based on data path separation according to the present invention.
도 4는 프로세서에 적용된 파이프라인과 병렬 처리 구조도이다. 4 is a diagram of a pipeline and parallel processing architecture applied to a processor.
도 5는 적응형 파이프라인 구조와 데이터 패스 분리가 적용된 프로세서 구조도이다. 5 is a diagram of a processor architecture in which an adaptive pipeline structure and data path separation are applied.
도 6은 본 발명에 따른 ARM 프로세서의 각 명령어별 실행 데이터 패스를 보여주기 위한 표이다.6 is a table illustrating an execution data path for each instruction of an ARM processor according to the present invention.
<도면의 주요 부분에 대한 부호의 설명> <Explanation of symbols for the main parts of the drawings>
110a~110c : 래치 컨트롤러 120a~120b : 파이프라인 스테이지 110a ~ 110c:
121 : IF 스테이지 130 : ID 스테이지 121: IF stage 130: ID stage
140 : EX 스테이지 140: EX stage
본 발명은 적응형 파이프라인을 적용한 병렬 처리 프로세서 구조에 관한 것으로 특히 비동기식 적응형 파이프라인과 병렬 처리 방식을 시스템에 적용하여 시스템의 불필요한 동작을 제거하고, 하드웨어의 증가 없이 여러 종류의 명령어를 병렬로 처리할 수 있도록 하기 위한 적응형 파이프라인을 적용한 병렬 처리 프로세서 구조에 관한 것이다. The present invention relates to a parallel processor architecture using an adaptive pipeline. In particular, the asynchronous adaptive pipeline and the parallel processing scheme are applied to a system to remove unnecessary operations of the system and to execute various types of instructions in parallel without increasing hardware. The present invention relates to an architecture of parallel processing processor employing an adaptive pipeline for processing.
일반적으로, 프로세서를 사용하는 시스템 측면에서 동기식과 비동기식을 비교하면, 동기식 시스템은 시스템 클록에 의해 전체 시스템을 구동시키는 반면에, 비동기 시스템은 데이터 의존형(data-dependent) 제어 방식으로 데이터의 흐름에 따라 선택적으로 동작이 필요한 모듈만을 구동시킨다. In general, comparing synchronous and asynchronous in terms of systems using processors, synchronous systems run the entire system by the system clock, whereas asynchronous systems operate in a data-dependent control fashion. Only drives modules that need to be activated.
비동기 시스템은 동작이 필요 없는 모듈들이 휴지상태에 있을 때 에너지를 소모하지 않는 이점을 가지므로 비동기 시스템의 설계는 적은 전력 소모로 인해 서브 마이크로 시스템 설계 방법 중의 하나로 인식되고 있다. Asynchronous systems have the advantage that they do not consume energy when modules that do not require operation are at rest, so the design of asynchronous systems is recognized as one of the sub-microsystem design methods due to the low power consumption.
또한, 파이프라인이란 프로세서로 입력되는 명령어들의 움직임, 또는 명령 어를 수행하기 위해 프로세서에 의해 취해진 산술적인 연산 단계가 연속적이고, 다소 겹치는 것을 의미한다. 파이프라인이 없다면 컴퓨터의 프로세서는 메모리에서 첫 번째 명령어를 가지고 와서, 첫 번째 명령어가 요구하는 연산의 수행을 완료하고, 다음번 명령어를 메모리로부터 가져와서 그 명령어가 요구하는 연산의 수행을 완료하는 식으로 동작한다. 그러므로 파이프라인이 없다면 명령어를 하나씩 차례대로만 수행을 하고 다음 명령어는 앞에서 수행되고 있는 명령어를 기다리고 있게 되어 캄퓨터 프로세스의 연산 속도는 느려질 수 밖에 없다. In addition, the pipeline means that the movement of instructions to the processor, or the arithmetic operation steps taken by the processor to perform the instructions, is continuous and somewhat overlapping. If there is no pipeline, the computer's processor takes the first instruction from memory, completes the operation required by the first instruction, takes the next instruction from memory, and completes the operation requested by the instruction. It works. Therefore, if there is no pipeline, the instructions are executed only one by one, and the next instruction is waiting for the instruction being executed. Therefore, the operation speed of the computer process is inevitably slowed down.
그러나 파이프라인이 적용된 프로세서는 이전 명령어에 따른 산술연산을 수행하는 동안에 다음번 명령어를 가져올 수 있으며, 그것을 다음 명령어 연산이 수행될 수 있을 때까지 프로세서 근처의 버퍼에 가져다놓는다. 명령어를 가져오는 단계는 끊임없이 계속된다. 그 결과, 주어진 시간동안에 수행될 수 있는 명령어의 수가 증가한다. 즉, 파이프라인은 명령어들에 따른 프로세세의 산술 연산을 전체적으로 동시에 진행될 수 있도록 하는 장점이 있다. However, a pipelined processor can fetch the next instruction while performing an arithmetic operation on a previous instruction and place it in a buffer near the processor until the next instruction operation can be performed. The steps to get the command are constantly on. As a result, the number of instructions that can be executed in a given time increases. In other words, the pipeline has an advantage that the arithmetic operation of the processor according to the instructions can be performed simultaneously.
종래의 파이프라인은 프로세서의 실행 스테이지를 고정적으로 여러 개로 나누었다. 프로세서는 명령어들을 수행하는 데, 각 명령어마다 실행이 불필요한 스테이지가 존재할 수 있고, 이웃한 스테이지를 순차적으로 사용할 수도 있다. 기존의 구조가 프로세서에 적용되어 칩으로 제작되면 파이프라인 동작의 수정이 불가능하다. 또한, 종래의 동기식 파이프라인 시스템은 고정된 파이프라인의 길이와 위치를 갖기 때문에 가변적인 동작에 대한 대응이 어렵다. Conventional pipelines have fixedly divided the execution stages of a processor into several. The processor may execute instructions, and there may be a stage that does not need to be executed for each instruction, and may sequentially use neighboring stages. If the existing structure is applied to the processor and made into a chip, it is impossible to modify the pipeline behavior. In addition, the conventional synchronous pipeline system has a fixed length and position of the pipeline, it is difficult to respond to the variable operation.
또한, 종래의 명령어 병렬 방법이 사용된 프로세서인 VLIW(Very Long Instruction Word)방식 및 슈퍼스칼라(Superscalar)구조는 여러개의 명령어를 동시에 처리하게 되나, 명령어의 병렬 처리를 위해 동시에 실행되는 명령어의 수만큼 실행 유닛의 수를 증가시키게 되어 프로세서의 하드웨어 크기와 전력 소모를 증가시키는 문제점이 있었다.In addition, the VLIW (Very Long Instruction Word) method and the Superscalar structure, which are processors using a conventional instruction parallel method, process several instructions simultaneously, but as many as the number of instructions executed simultaneously for parallel processing of instructions. Increasing the number of execution units has a problem of increasing the hardware size and power consumption of the processor.
본 발명은 상기의 문제점을 해소하기 위하여 발명된 것으로, 하드웨어 IP의 형태로 구현되더라도 파이프라인의 위치를 유연하게 변경시킬 수 있도록 하였다. 이렇게 함으로서 프로세서의 실행중인 명령어의 필요 데이터 패스가 명령어 종류에 따라 각각 다르게 구현되고 모든 명령어들에 최적화되도록 실행 데이터 패스를 정의할 수 있다. 또한 명령어의 종류에 따라 전체 시스템을 여러 개의 데이터 패스로 분리하여 서로 다른 데이터패스를 갖는 명령어들은 동시에 실행시킴으로서 하드웨어의 크기의 증가 없이 명령어 병렬 처리가 가능하도록 하였다. The present invention was invented to solve the above problems, and even if implemented in the form of hardware IP, it is possible to flexibly change the position of the pipeline. In this way, the execution data path can be defined so that the required data path of the processor's running instructions is implemented differently and optimized for all instructions depending on the type of instruction. In addition, by separating the entire system into several data paths according to the types of instructions, instructions with different data paths can be executed simultaneously to enable parallel processing of instructions without increasing hardware size.
본 발명은 파이프라인 구조를 명령어 종류에 맞게 가변적으로 적용 가능한 파이프라인 구조와 데이터 패스의 제어 방법을 제시하고 이를 적용한 병렬 처리 프로세서 구조를 제공하는 데 그 목적이 있다.An object of the present invention is to propose a pipeline structure and a data path control method in which a pipeline structure can be variably applied to an instruction type, and to provide a parallel processor structure.
이와 같은 목적을 달성하기 위한 본 발명은 The present invention for achieving the above object
실행중인 명령어의 요구된 데이터 패스에 따라 입력을 저장하거나 혹은 투명하게 바뀌어 다음 스테이지로 데이터를 전달할 수 있도록 제어신호에 따라 데이터의 저장 여부를 선택 가능한 파이프라인 스테이지 래치 및 컨트롤러(110a, 110b, 110c);Pipeline stage latches and
실행중인 명령어의 요구 데이터 패스에 따라 동작을 수행하거나, 동작 수행없이 바로 다음 단 래치로 데이터를 전송을 선택적으로 수행할 수 있는 파이프라인 스테이지 (120a, 120b);
프리디코딩을 수행하여 입력된 명령어가 ARM명령어인지 thumb 명령어인지 구분하는 IF 스테이지(121);An
IF 스테이지(121)의 출력측에 접속되어 thumb 명령어를 디코딩하기 위한 thumb 디코더(D1)를 포함하는 제 3스테이지(130a), ARM명령어를 디코딩하기 위한 ARM 디코더(D2)를 포함하는 제 4스테이지(130b) 및 디코딩된 thumb 명령어 및 ARM 명령어를 구분하여 출력시키기 위한 디코더(D3)를 포함하는 제 5스테이지(130C)로 구성된 ID 스테이지(130); A
상기 ID 스테이지(130)에서 디코딩된 명령어별로 동시에 전달받아 명령어에 따른 실행 동작이 수행하는 제 7스테이지(140b); 및A
상기 제 7스테이지(140b)에서 조인동작에 의하여 메모리나 레지스터 파일로의 저장을 위한 제 6 스테이지 및 제 8 스테이지(140a, 140c)로 구성된 EX 스테이지(140)를 포함한다. The
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하면 다음과 같다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
첨부된 도 1은 스테이지 스키핑과 스테이지 통합 방식을 채택한 적응형 파이프라인의 구조도이고, 도 2a는 스테이지 스키핑 방식의 실행 예를 보여주기 위한 적응형 파이프라인의 동작 예이며, 도 2b는 스테이지 통합 방식의 실행 예를 보여주기 위한 적응형 파이프라인의 동작 예이다. 또한, 도 3a는 일반적인 파이프라인 구조에서 데이터의 처리를 보여주기 위한 블록도이고, 도 3b는 본 발명에 따른 데이터 패스 분리 기반의 파이프라인 구조를 보여주기 위한 블록도이다.1 is a structural diagram of an adaptive pipeline adopting a stage skipping and stage integration scheme, and FIG. 2A is an example of an operation of an adaptive pipeline to show an example of the implementation of the stage skipping scheme, and FIG. An example of the operation of an adaptive pipeline to show an example of execution. 3A is a block diagram illustrating processing of data in a general pipeline structure, and FIG. 3B is a block diagram illustrating a pipeline structure based on data path separation according to the present invention.
본 발명에 따른 비동기식 적응형 파이프라인에는 스테이지 스키핑(stage skipping)방법과 스테이지 통합(stage combining)방법이 적용된다. 일반적으로, 프로세서는 동작의 규칙성을 유지하기 위해 실행이 불필요한 버블(bubble)스테이지를 포함한다. 각 명령어 실행시 포함된 버블 스테이지 동작을 건너뛰거나, 다음에 실행할 스테이지가 비어있을 때 현재 스테이지 동작 후 데이터를 래치하지 않고 즉시 다음 스테이지로 데이터를 전송하여 두 스테이지를 병합한다면 프로세서 실행 시간을 줄일 수 있다. The stage skipping method and the stage combining method are applied to the asynchronous adaptive pipeline according to the present invention. Generally, a processor includes a bubble stage that does not require execution to maintain regularity of operation. You can reduce processor execution time by skipping the bubble stage operation included in each instruction execution, or by merging two stages by sending data to the next stage immediately without latching the data after the current stage operation when the next stage is empty. have.
스테이지 스키핑과 스테이지 통합 방식을 채택한 파이프라인 구조는 도 1에서 보는 바와 같이, 각각의 파이프라인 래치 컨트롤러(110a~110c)와 파이프라인 스테이지(120a,120b)에 ECN과 ELN과 같은 제어 신호를 포함하고 있다. 스테이지 스키핑 제어 신호인 ECN 신호는 해당하는 스테이지의 동작을 수행할 지 아니면 그대로 통과할 지를 결정한다. ECN 신호가 high인 경우 N번째 스테이지는 동작하지 않고 데이터가 다음 래치로 전달되며, low인 경우 N번째 스테이지는 정상적으로 동작한다. 스테이지 통합의 제어신호인 ELN 신호는 래치를 정상적으로 동작시킬 지 아니면 존재하지 않는 것처럼 동작시킬 지를 결정한다. ELN 신호가 high이면 N번째 래치는 존재하지 않는 것처럼 동작하고, low이면 정상적인 래치 동작을 수행한다.As shown in FIG. 1, the pipeline structure adopting the stage skipping and the stage integration method provides control signals such as EC N and EL N to the
파이프라인에 스테이지 스키핑과 스테이지 통합의 실행 예는 도 2a와 도 2b에서 보는 바와 같이, 프로세서는 명령어를 instruction decode(ID)에서 디코딩한 이후에 명령어 수행에 불필요한 버블 스테이지와 현재 사용 가능한 스테이지를 파악한다. 즉, ID 스테이지는 마이크로 명령어와 ELN, ECN 신호를 다음 스테이지로 전달한다. An example of the implementation of stage skipping and stage integration in a pipeline, as shown in FIGS. 2A and 2B, after the processor decodes an instruction in an instruction decode (ID), identifies the bubble stages and currently available stages that are not necessary for instruction execution. . In other words, the ID stage delivers the microinstruction and EL N , EC N signals to the next stage.
스테이지 스키핑 모드는 도 2a에서 보는 바와 같이, 버블 스테이지 동작을 제거하기 위하여 각 스테이지는 앞부분에 MUX(도시되지 않음)를 포함한다. EC1신호는 MUX로 입력되어 제 1 스테이지(120a)의 동작을 생략할 지 여부를 결정한다.
제 1 스테이지(120a)의 조합회로는 EC1 신호가 low일 때 동작이 수행된다. 반대로 이 신호가 high일 때에는 조합회로는 연산을 수행하지 않고 입력을 바로 다음 단으로 통과시킨다. The stage skipping mode includes MUX (not shown) in front of each stage to eliminate bubble stage motion, as shown in FIG. 2A. The EC1 signal is input to the MUX to determine whether to skip the operation of the
The combination circuit of the
스테이지 통합 모드는 도 2b에서 보는 바와 같이, 두 개 이상의 연속된 파이프라인 스테이지(120a, 120b)가 하나의 스테이지로 결합된다. 제 1 스테이지(120a) 와 제 2 스테이지(120b)사이의 래치 & 콘트롤러(110b)는 EL1신호가 high일 때 열린 상태(transparent)가 된다. 이때 래치 & 콘트롤러(120b)는 데이터 저장을 하지 않는다. 래치 & 콘트롤러(120b)가 열린 상태가 되기 위해서는 제 2 스테이지(120b)의 연산이 모두 끝나있어야 하고, 다음 스테이지를 위해 준비 상태에 있어야 한다. 반대로 EL1 신호가 1일 때에는 래치는 정상적인 동작을 한다. 제 1 및 제 2 스테이지(120b, 120c)의 ELN신호는 ID 스테이지에서 발생되고 다음 목적지 래치에 도달할 때까지 각 스테이지에서 다음 스테이지로 전달된다. In the stage integration mode, as shown in FIG. 2B, two or more
일반적인 파이프라인 구조의 프로세서들은 스테이지마다 한 가지 작업을 하는 파이프라인 구조를 채택한다. 즉, 도 3(a)에서 보는 바와 같이, 각 명령어는 파이프라인 스테이지 수에 따라 같은 양의 작업을 병렬로 수행한다. 또한 몇몇 프로세서들은 슈퍼스칼라나 VLIW 프로세서와 같이 병렬 처리를 위해 기능 블록을 중첩하는 방법을 사용한다. 중첩된 기능 블록들은 데이터 패스의 수만큼 같은 연산을 동시에 실행할 수 있다. 그러나 이러한 프로세서들은 반드시 하드웨어 크기가 증가한다는 단점을 갖는다. 실제로 모든 명령어들이 반드시 같은 데이터 패스로 통과하는 것은 아니다. In general, pipelined processors adopt a pipelined structure that does one task per stage. That is, as shown in Figure 3 (a), each instruction performs the same amount of work in parallel according to the number of pipeline stages. Some processors also use nested function blocks for parallelism, such as superscalar or VLIW processors. Nested functional blocks can execute the same operation at the same time as the number of data paths. However, these processors have the disadvantage that the hardware size necessarily increases. In practice, not all instructions pass through the same data path.
비동기식 프로세서에서는 단순하게 핸드셰이킹 제어로 병렬처리가 가능하다. 만약 모든 명령어를 서로 다른 데이터패스를 갖는 몇 개의 명령어 군으로 묶고, 하나의 스테이지내에 명령어 종류에 따라 서로 다른 데이터패스들로 구성한다면, 서로 다른 종류의 명령어 군들은 동시에 실행될 수 있다. 본 발명에서와 같이 서로 간에 의존성이 없는 명령어를 동시에 실행시켜 도 3(b)에서 보는 바와 같이, 기능 블록들의 중첩이 없이 동작을 시키면 프로세서의 성능은 크게 향상될 것이다. 이와 같은 설계를 위해서는 비동기식 설계 방법이 동기식 설계 방법에 비해 유리하다. 이 방법은 실행되고 있는 명령어들이 각기 다른 데이터패스를 가질 경우 분리된 데 이터패스를 통해 병렬로 처리된다. 이러한 컨트롤 방법은 명령어의 종류에 따라 전체 시스템을 여러 개의 데이터 패스로 나눈다.In an asynchronous processor, parallel processing is possible with simple handshaking control. If all instructions are grouped into several instruction groups with different datapaths and composed of different datapaths according to the instruction type in one stage, different kinds of instruction groups can be executed simultaneously. As shown in FIG. 3 (b) by simultaneously executing instructions having no dependency on each other as in the present invention, if the operation is performed without overlapping functional blocks, the performance of the processor will be greatly improved. For this design, the asynchronous design method is advantageous over the synchronous design method. This method is processed in parallel through separate datapaths if the instructions being executed have different datapaths. This control method divides the entire system into multiple data paths, depending on the type of instruction.
첨부된 도 4는 프로세서에 적용된 파이프라인과 병렬 처리 구조도이고, 도 5는 적응형 파이프라인 구조와 데이터 패스 분리가 적용된 프로세서 구조도이며, 도 6은 본 발명에 따른 ARM 프로세서의 각 명령어별 실행 데이터 패스를 보여주기 위한 표이다.4 is a diagram illustrating a pipeline and parallel processing architecture applied to a processor, FIG. 5 is a diagram illustrating a processor architecture to which an adaptive pipeline structure and data path separation are applied, and FIG. 6 is an execution data path for each instruction of an ARM processor according to the present invention. Table to show
프로세서에 적용된 파이프라인과 병렬 처리 구조는 도 4에서 보는 바와 같이, 데이터패스는 명령어의 종류에 따라 구분되고, 구분된 데이터패스를 갖는 명령어들은 병렬로 실행된다. ID 스테이지(130)에서 디코딩된 명령어는 포크(fork) 동작에 의해서 명령어별로 동시에 해당 EX 스테이지(140)로 전달된다. EX 스테이지(140)의 동작이 완료된 후에는 메모리나 레지스터 파일로의 저장을 위해 조인(join)동작을 수행한다. As shown in FIG. 4, the pipeline and parallel processing structure applied to the processor are classified according to the type of instructions, and the instructions having the divided datapaths are executed in parallel. The instruction decoded in the
본 발명에 따른 적응형 파이프라인 구조와 데이터 패스 분리가 적용된 프로세서 구조는 도 5에서 보는 바와 같이, 프리디코딩을 수행하여 입력된 명령어가 32비트 ARM명령어인지 16비트로 축소된 thumb 명령어인지 구분하는 IF 스테이지(121)를 포함한다. IF 스테이지(121)의 출력측에는 thumb 명령어를 디코딩하기 위한 thumb 디코더(D1)를 포함하는 ID 스테이지(130)인 제 3 스테이지(130a), ARM명령어를 디코딩하기 위한 ARM 디코더(D2)를 포함하는 ID 스테이지(130)인 제 4 스테이지(130b) 및 디코딩된 thumb 명령어 및 ARM 명령어를 구분하여 출력시키기 위한 디코더(D3)를 포함하는 ID 스테이지(130)인 제 5 스테이지(130C)가 접속된다. As shown in FIG. 5, the adaptive pipeline structure according to the present invention and the processor structure to which data path separation is applied, an IF stage for performing predecoding to distinguish whether an input instruction is a 32-bit ARM instruction or a 16-bit reduced thumb instruction. (121). On the output side of the
제 3 ~제 5 스테이지(130a~130c)로 구성된 ID 스테이지(130)에서 디코딩된 명령어는 포크(fork) 동작에 의해서 명령어별로 동시에 해당 EX 스테이지(140)로 전달된다. 만약 IF 스테이지(121)에 입력된 명령어가 thumb 명령어이고 제 4 스테이지(130b)가 작업이 완료되어 비어있는 상태라면 EL 신호는 high가 되고 thumb 디코더(D1)와 제 4 스테이지(130b)는 통합된다. 또한, 명령어가 ARM 명령어라면 EC 신호는 high가 되고 thumb 디코더(D1)의 동작은 생략되어 데이터패스가 짧아진다. Instructions decoded in the
ID 스테이지(130)의 출력측에는 제 6 ~ 제 8 스테이지(140a~140C)로 구성된 EX 스테이지(140)가 접속된다. EX 스테이지(140)은 ID 스테이지(130)에서 디코딩된 명령어를 포크(fork) 동작에 의해서 명령어별로 동시에 제 7스테이지(140b)에 전달된다. 제 7 스테이지(140b)에 전달된 명령어에 따른 실행 동작이 완료된 다음 제 7 스테이지(140b)는 제 6 스테이지 및 제 8 스테이지(140a, 140c)에서의 메모리나 레지스터 파일로의 저장을 위해 조인(join)동작을 수행한다. On the output side of the
본 발명에 따른 프로세서는 배럴 쉬프터(barrel shifter)와 그에 연결되어 있는 ALU의 예와 같이 쉬프터가 사용되고 ALU는 사용되지 않는 명령어가 수행되어야 할 경우, EL신호는 high가 되고 두 스테이지는 통합된다. 쉬프터가 사용되지 않는 경우에는 EC신호는 high가 되고 스테이지 스키핑이 수행된다. EX스테이지는 명령어의 종류에 따라 분리되어 있고, 구분된 데이터패스를 갖는 명령어들은 병렬로 실행된다.In the processor according to the present invention, when a shifter is used and an ALU is not used as in the example of a barrel shifter and an ALU connected thereto, the EL signal becomes high and the two stages are integrated. If no shifter is used, the EC signal goes high and stage skipping is performed. The EX stages are divided according to the types of instructions, and instructions with separate data paths are executed in parallel.
본 발명에 따른 ARM 프로세서의 각 명령어별 실행 데이터 패스는 도 6에서 보는 바와 같이, 서로 다른 데이터 패스를 갖는 명령어들은 명령어 실행시 데이터 및 제어 의존성이 없을 경우 병렬로 실행함으로서 프로세서의 명령어 처리율을 높일 수 있다.As shown in FIG. 6, the instruction data path for each instruction of the ARM processor according to the present invention can increase the instruction throughput of the processor by executing the instructions having different data paths in parallel when there are no data and control dependencies. have.
상술한 바와 같이, 본 발명에 따른 위에서 설명한 바와 같이 비동기식 적응형 파이프라인과 병렬 처리 방식을 시스템에 적용하면 시스템의 불필요한 동작을 제거하고, 하드웨어의 증가 없이 여러 종류의 명령어를 병렬로 처리할 수 있다. 이로 인해 기존의 프로세서에 비해 명령어 처리 속도를 증가시킬 수 있고, 하드웨어의 증가가 없으므로 소비 전력을 감소시킬 수 있다.As described above, applying the asynchronous adaptive pipeline and the parallel processing scheme to the system as described above according to the present invention can eliminate unnecessary operation of the system and process various types of instructions in parallel without increasing hardware. . This can increase instruction processing speed compared to conventional processors, and reduce power consumption since there is no increase in hardware.
이상에서 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하였으나, 본 발명은 이에 한정되는 것이 아니며 본 발명의 기술적 사상의 범위내에서 당업자에 의해 그 개량이나 변형이 가능하다.Although the preferred embodiments of the present invention have been described in detail with reference to the accompanying drawings, the present invention is not limited thereto and may be improved or modified by those skilled in the art within the scope of the technical idea of the present invention.
Claims (1)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070007118A KR100861073B1 (en) | 2007-01-23 | 2007-01-23 | Parallel processing processor architecture adapting adaptive pipeline |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070007118A KR100861073B1 (en) | 2007-01-23 | 2007-01-23 | Parallel processing processor architecture adapting adaptive pipeline |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080069423A KR20080069423A (en) | 2008-07-28 |
KR100861073B1 true KR100861073B1 (en) | 2008-10-01 |
Family
ID=39822662
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070007118A KR100861073B1 (en) | 2007-01-23 | 2007-01-23 | Parallel processing processor architecture adapting adaptive pipeline |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100861073B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101454802B1 (en) * | 2010-10-22 | 2014-11-03 | 한국전자통신연구원 | Asynchronous Pipeline System, Stage and the Data Transfer Mechanism |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130111104A1 (en) * | 2011-10-31 | 2013-05-02 | Moon J. Kim | Asynchronous data shift and backup between asymmetric data sources |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010030587A (en) * | 1997-09-12 | 2001-04-16 | 인피니언 테크놀로지스 노쓰 아메리카 코포레이션 | Data processing device |
KR20020097233A (en) * | 2000-04-25 | 2002-12-31 | 더 트러스티스 오브 컬럼비아 유니버시티 인 더 시티 오브 뉴욕 | Circuits and methods for high-capacity asynchronous pipeline processing |
KR20030057570A (en) * | 2000-12-06 | 2003-07-04 | 인텔 코포레이션 | Processor stalling |
KR20040085058A (en) * | 2003-03-29 | 2004-10-07 | 톰슨 라이센싱 에스.에이. | Method and apparatus for pipeline processing a chain of processing instructions |
-
2007
- 2007-01-23 KR KR1020070007118A patent/KR100861073B1/en not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010030587A (en) * | 1997-09-12 | 2001-04-16 | 인피니언 테크놀로지스 노쓰 아메리카 코포레이션 | Data processing device |
KR20020097233A (en) * | 2000-04-25 | 2002-12-31 | 더 트러스티스 오브 컬럼비아 유니버시티 인 더 시티 오브 뉴욕 | Circuits and methods for high-capacity asynchronous pipeline processing |
KR20030057570A (en) * | 2000-12-06 | 2003-07-04 | 인텔 코포레이션 | Processor stalling |
KR20040085058A (en) * | 2003-03-29 | 2004-10-07 | 톰슨 라이센싱 에스.에이. | Method and apparatus for pipeline processing a chain of processing instructions |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101454802B1 (en) * | 2010-10-22 | 2014-11-03 | 한국전자통신연구원 | Asynchronous Pipeline System, Stage and the Data Transfer Mechanism |
US9317295B2 (en) | 2010-10-22 | 2016-04-19 | Electronics And Telecommunications Research Institute | Asynchronous pipeline system, stage, and data transfer mechanism |
Also Published As
Publication number | Publication date |
---|---|
KR20080069423A (en) | 2008-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101754462B1 (en) | Method and apparatus for implementing a dynamic out-of-order processor pipeline | |
KR100464406B1 (en) | Apparatus and method for dispatching very long instruction word with variable length | |
JP5625903B2 (en) | Arithmetic processing apparatus and arithmetic processing method | |
US6594755B1 (en) | System and method for interleaved execution of multiple independent threads | |
JP3575617B2 (en) | Computer system | |
EP2289003B1 (en) | Method & apparatus for real-time data processing | |
US7793080B2 (en) | Processing pipeline having parallel dispatch and method thereof | |
CN1103960C (en) | Method relating to handling of conditional jumps in multi-stage pipeline arrangement | |
US5604878A (en) | Method and apparatus for avoiding writeback conflicts between execution units sharing a common writeback path | |
KR20100032441A (en) | A method and system for expanding a conditional instruction into a unconditional instruction and a select instruction | |
US9658853B2 (en) | Techniques for increasing instruction issue rate and reducing latency in an out-of order processor | |
US20090172370A1 (en) | Eager execution in a processing pipeline having multiple integer execution units | |
WO2009085086A1 (en) | Processing pipeline having stage-specific thread selection and method thereof | |
WO2006122941A2 (en) | Controlling out of order execution pipelines using skew parameters | |
US20220214884A1 (en) | Issuing instructions based on resource conflict constraints in microprocessor | |
CN1930549A (en) | Electronic circuit | |
KR100861073B1 (en) | Parallel processing processor architecture adapting adaptive pipeline | |
US6286094B1 (en) | Method and system for optimizing the fetching of dispatch groups in a superscalar processor | |
US7437544B2 (en) | Data processing apparatus and method for executing a sequence of instructions including a multiple iteration instruction | |
JP2007537528A (en) | Data processing method, processing device, multiple instruction word set generation method, compiler program | |
US10437596B2 (en) | Processor with a full instruction set decoder and a partial instruction set decoder | |
EP4202664A1 (en) | System, apparatus and method for throttling fusion of micro-operations in a processor | |
WO2005036384A2 (en) | Instruction encoding for vliw processors | |
US20090292908A1 (en) | Method and arrangements for multipath instruction processing | |
JP3795449B2 (en) | Method for realizing processor by separating control flow code and microprocessor using the same |
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: 20120912 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20130912 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20140901 Year of fee payment: 7 |
|
LAPS | Lapse due to unpaid annual fee |