KR100516214B1 - A digital signal processor for parallel processing of instructions and its process method - Google Patents

A digital signal processor for parallel processing of instructions and its process method Download PDF

Info

Publication number
KR100516214B1
KR100516214B1 KR10-2003-0015336A KR20030015336A KR100516214B1 KR 100516214 B1 KR100516214 B1 KR 100516214B1 KR 20030015336 A KR20030015336 A KR 20030015336A KR 100516214 B1 KR100516214 B1 KR 100516214B1
Authority
KR
South Korea
Prior art keywords
instructions
instruction
digital signal
signal processor
tag
Prior art date
Application number
KR10-2003-0015336A
Other languages
Korean (ko)
Other versions
KR20040080520A (en
Inventor
조경연
이승은
최종찬
백준현
박성훈
이지현
Original Assignee
(주)자람테크놀로지
전자부품연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)자람테크놀로지, 전자부품연구원 filed Critical (주)자람테크놀로지
Priority to KR10-2003-0015336A priority Critical patent/KR100516214B1/en
Publication of KR20040080520A publication Critical patent/KR20040080520A/en
Application granted granted Critical
Publication of KR100516214B1 publication Critical patent/KR100516214B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units

Abstract

본 발명은 명령어 병렬처리를 위한 디지털 신호처리기 및 그 처리방법에 관한 것으로, 특히 슈퍼스칼라(Superscalar) 구조와 VLIW(Very Long Instruction Word) 구조의 장점을 수용한 고성능 신호처리 시스템에 적용 가능한 디지털 신호처리기(Digital Signal Processor, 이하 DSP)에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a digital signal processor for instruction parallel processing and a processing method thereof, and in particular, a digital signal processor applicable to a high performance signal processing system that accommodates the advantages of a superscalar structure and a VLIW (Very Long Instruction Word) structure. (Digital Signal Processor, hereinafter referred to as DSP).

본 발명의 명령어 병렬처리를 위한 디지털 신호처리기 및 그 처리방법은 동시에 수행 가능한 다음 명령어들의 수(M)를 계산하는 제1단계, 제1단계에서 계산한 M중에서 최대값 하나를 선택하는 제2단계, 제2단계에서 선택한 값에 대응하는 명령어들을 그룹으로 만드는 제3단계, 모든 명령어들이 그룹으로 만들어졌다면 제5단계를 수행하고, 그렇지 않으면 제1단계를 수행하는 제4단계, 각각의 그룹에 있는 명령어 들을 해당 명령어를 수행할 연산 블록에 따라 재배치하고, 태그(Tag)값을 할당하는 제5단계로 하는 처리로 알고리즘이 수행됨에 기술적 특징이 있다.The digital signal processor and the processing method thereof for parallel processing of instructions of the present invention include a first step of calculating the number of next instructions M that can be executed simultaneously, and a second step of selecting one maximum value from M calculated in the first step. A third step of grouping the instructions corresponding to the value selected in the second step; a fifth step if all instructions are grouped; otherwise a fourth step of performing the first step; There is a technical feature in that the algorithm is performed by the fifth step of rearranging the instructions according to the operation block to execute the corresponding instruction and assigning a tag value.

따라서, 본 발명의 명령어 병렬처리를 위한 디지털 신호처리기 및 그 처리방법은 슈퍼스칼라 구조와 VLIW 구조의 장점을 수용한 고성능 신호처리 시스템에 적용이 가능한 DSP 구조를 제공하는데, 간단한 플래그(Flag)를 이용하여 무연산(No OPeration) 명령을 DSP가 생성하도록 함으로써 프로그램 사이즈를 줄이고, 병렬로 처리할 수 있는 명령어들을 소프트웨어(컴파일러, 어셈블러)가 구성하도록 함으로써 DSP 구조를 간단하게 할 수 있는 장점이 있다.Accordingly, the digital signal processor and the processing method thereof for parallel processing of instructions of the present invention provide a DSP structure that can be applied to a high-performance signal processing system that adopts the advantages of a superscalar structure and a VLIW structure, using a simple flag. This allows the DSP to generate no operation instructions, reducing the program size, and simplifying the DSP structure by allowing the software (compiler and assembler) to construct instructions that can be processed in parallel.

Description

명령어 병렬처리를 위한 디지털 신호처리기 및 그 처리방법{A digital signal processor for parallel processing of instructions and its process method} Digital signal processor for parallel processing of instructions and its process method

본 발명은 명령어 병렬처리를 위한 디지털 신호처리기 및 그 처리방법에 관한 것으로, 특히 슈퍼스칼라(Superscalar) 구조와 VLIW(Very Long Instruction Word) 구조의 장점을 수용한 고성능 신호처리 시스템에 적용이 가능한 디지털 신호처리기(Digital Signal Processor, 이하 DSP)에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a digital signal processor for parallel processing of instructions and a method of processing the same, and in particular, a digital signal applicable to a high performance signal processing system that accommodates the advantages of a superscalar structure and a VLIW (Very Long Instruction Word) structure. The present invention relates to a digital signal processor (DSP).

SDR(Software Defined Radio) 기술이 대두됨에 따라 통신을 비롯한 이미지, 비디오 등의 신호처리 시스템을 소프트웨어로 처리하기 위한 고성능 DSP가 요구된다. 신호처리용 소프트웨어를 고속으로 처리하기 위하여 현재 일반적으로 사용되는 방식은 ILP(Instruction Level Parallelism)를 사용하는 것이다. 상기 ILP를 구현하기 위하여 상업적으로 제품화되고 있는 기술은 크게 두 가지로 분류할 수 있다.With the rise of SDR (Software Defined Radio) technology, high performance DSPs are required for software to process signal processing systems such as communication, images, and video. In order to process the signal processing software at high speed, the currently used method is to use ILP (Instruction Level Parallelism). Commercially commercialized technologies for implementing the ILP can be classified into two categories.

종래에는 DSP 구조로서 슈퍼스칼라 구조와 VLIW 구조의 두 가지 구조가 있었는데, 대한민국 공개특허공보 제1993-0016896호, 제1999-0062575호, 제1992-0020340호 등에서 자세히 소개하고 있는데, 다음과 같다.Conventionally, there are two structures, a superscalar structure and a VLIW structure, as DSP structures, which are described in detail in Korean Patent Laid-Open Publication Nos. 193-0016896, 1999-0062575, 1992-0020340, and the like.

슈퍼스칼라 구조는 ILP구현을 위하여 DSP에 의존한다. 즉, 명령어가 저장된 메모리로부터 정해진 수의 명령어를 읽어온 후에 DSP가 동시에 처리할 수 있는 명령어들을 판단하여 그 명령어들을 병렬로 처리한다. 만약, 읽어온 명령어 중에서 동시에 처리할 수 없는 명령어의 경우에 다음에 읽어온 명령어들과 함께 병렬처리가 가능한 명령어들을 다시 판단하여 처리하게 된다. 즉, 슈퍼스칼라 구조의 경우에 명령어 병렬 처리를 DSP가 하드웨어적으로 처리하기 때문에 DSP 구조가 복잡하고, 읽어온 명령어 중 병렬로 처리할 수 없는 명령어들을 저장할 명령어 버퍼가 필요하다. Superscalar structure depends on DSP for ILP implementation. That is, after reading a predetermined number of instructions from the memory where the instructions are stored, the DSP determines the instructions that can be processed simultaneously and processes them in parallel. If a command that cannot be processed at the same time among the read commands is determined again, the commands that can be processed in parallel with the next read commands are processed again. That is, in the case of the superscalar structure, since DSP executes the parallelism of instructions in hardware, the DSP structure is complicated, and an instruction buffer is required to store instructions that cannot be processed in parallel among the read instructions.

VLIW 구조는 ILP 구현을 위하여 소프트웨어(컴파일러 또는 어셈블러)에 의존한다. 즉, 명령어 자체에 DSP에 있는 각각의 연산 모듈에서 수행할 명령들을 포함시켜 하나의 긴 명령어를 만든다. 이 때, DSP는 명령어가 저장된 메모리로부터 정해진 수의 명령어를 읽어온 후에 각각의 연산 모듈에서 수행할 연산 모듈을 위한 명령들을 해당하는 연산 모듈로 전달하여 처리하게 된다. 그러므로, 한 번 읽어온 명령어는 바로 처리를 하기 때문에 명령어 버퍼가 필요없고, 명령어 중에서 동시에 처리할 수 있는 명령어를 판단할 필요가 없기 때문에 슈퍼스칼라 구조보다 하드웨어가 간단하다.The VLIW architecture relies on software (compiler or assembler) for implementing ILP. That is, the instruction itself contains instructions to be executed by each operation module in the DSP to make one long instruction. At this time, the DSP reads a predetermined number of instructions from the memory in which the instructions are stored and delivers the instructions for the operation module to be performed in each operation module to the corresponding operation module for processing. Therefore, once read instructions are processed immediately, hardware is simpler than superscalar structure because there is no need for instruction buffer and no need to decide which instructions can be processed simultaneously.

그러나, 상기와 같은 종래기술의 프로세서 구조는 모든 연산 블록이 동시에 수행될 수 없을 경우에 무연산(No OPeration) 명령이 많아지게 된다. 이것은 DSP가 아무 동작도 하지 않는 명령인데, 결과적으로 프로그램 사이즈가 커지게 된다. 특히, 상기 대한민국 공개특허공보 제1993-0016896호에서는 상기 슈퍼스칼라 구조와 VLIW 구조의 방식을 혼재시켜서 두 구조의 장점을 이용한 병렬 연산 기능을 수행할 수 있는 계산기를 소개하고 있는데, 본 발명에서와 같이 그 알고리즘을 제시하지는 못하고 있다.However, such a prior art processor structure has a large number of no operation instructions when all the operation blocks cannot be executed at the same time. This is a command that the DSP does nothing, resulting in a larger program size. In particular, the Republic of Korea Patent Publication No. 199-0016896 introduces a calculator that can perform a parallel operation function using the advantages of the two structures by mixing the superscalar structure and the VLIW structure, as in the present invention, It does not present the algorithm.

따라서, 본 발명은 상기와 같은 종래기술의 문제점을 해결하기 위한 것으로, 상기 슈퍼스칼라 구조와 VLIW 구조는 각각 장단점을 가지고 있기 때문에 현재 상용 제품을 판매하는 기업의 경우에 상기 두 구조의 장점을 이용하여 종래의 제품보다 효율적인 DSP 구조를 제안하고 있다. 본 발명에서는 이러한 신호처리 시스템을 구현할 수 있는 고성능 DSP 구조를 제안하며, 상기의 제안 방식은 슈퍼스칼라 구조와 VLIW 구조의 장점을 수용하여 고성능 신호처리 시스템에 적용 가능한 DSP 구조를 제안함에 본 발명의 목적이 있다.Accordingly, the present invention is to solve the problems of the prior art as described above, because the superscalar structure and VLIW structure has advantages and disadvantages, respectively, in the case of companies currently selling commercial products, It proposes a more efficient DSP structure than conventional products. The present invention proposes a high-performance DSP structure capable of implementing such a signal processing system, and the proposed scheme proposes a DSP structure applicable to a high-performance signal processing system by accommodating the advantages of the superscalar structure and the VLIW structure. There is this.

본 발명의 상기 목적은 슈퍼스칼라 구조와 VLIW 구조의 장점을 수용한 고성능 신호처리 시스템에 적용 가능한 DSP 구조를 제공함에 의해서 달성된다.The above object of the present invention is achieved by providing a DSP structure applicable to a high performance signal processing system that accommodates the advantages of a superscalar structure and a VLIW structure.

본 발명의 상기 목적과 기술적 구성 및 그에 따른 작용 효과에 관한 자세한 사항은 본 발명의 바람직한 실시예를 도시하고 있는 도면을 통하여 상세히 설명하고자 한다.Details of the above object, technical configuration and effects according to the present invention will be described in detail with reference to the drawings showing preferred embodiments of the present invention.

먼저 본 발명의 프로그램 작성 알고리즘을 위한 4가지의 기본적인 사항을 살펴보도록 한다. First, let us look at four basic matters for the programming algorithm of the present invention.

첫째, 명령어 및 태그(이하 Tag)이다. 본 발명에서는 모든 명령어들은 고정된 비트수(예: 32비트)로 정의된다. 즉, RISC(Reduced Instruction Set Computer) 프로세서와 같이 모든 명령어가 같은 비트의 수로 구성되도록 한다. 그리고, DSP에 동시에 처리할 수 있는 연산 블록의 수가 e개이면 각 명령어에 e비트의 Tag를 포함시킨다. 포함되는 e비트의 Tag는 다음에 수행될 명령어 집합에 대한 정보를 가지게 된다. 즉, 도 1과 같이 각 명령어는 실제 명령과 e비트의 Tag로 구성된다. 도 2는 DSP의 간략한 블록도를 나타낸 것으로 명령어를 읽어서 처리하는 디코드(Decode) 블록과 e개의 연산 블록으로 구성된다. 태그는 e비트의 플래그(이하 Flag)들로 구성되는데, 각 Flag는 연산 블록을 지시한다. 도 3은 Tag를 자세히 나타낸 것이다. 각 Flag의 의미는 수학식 1로 정의된다. Flag(i)( i = 1, 2, .... , e-1, e ) = 0 또는 1 First is a command and a tag. In the present invention, all instructions are defined by a fixed number of bits (eg, 32 bits). That is, all instructions are composed of the same number of bits, such as a reduced instruction set computer (RISC) processor. If the number of operation blocks that can be processed simultaneously in the DSP is e, the e-bit tag is included in each instruction. The included e-bit tag has information about the instruction set to be executed next. That is, as shown in FIG. 1, each instruction is composed of an actual instruction and an e-bit tag. FIG. 2 is a simplified block diagram of a DSP and includes a decode block and e operation blocks for reading and processing instructions. The tag consists of e-bit flags (hereinafter referred to as Flags), where each Flag indicates an operation block. 3 shows a tag in detail. The meaning of each flag is defined by Equation 1. Flag (i) (i = 1, 2, ...., e-1, e) = 0 or 1

삭제delete

여기서, Flag(i) = 0 일 때는 연산 블록 i는 다음 연산 수행 시 수행이 가능하지 않으나, Flag(i) = 1 일 때는 연산 블록 i는 다음 연산 수행 시 수행이 가능하다. Here, when Flag (i) = 0, the operation block i may not be performed when performing the next operation. However, when Flag (i) = 1, the operation block i may be performed when the next operation is performed.

그러므로, 다음에 처리할 명령어 수(Num)는 수학식 2로 계산된다. Num = Flag(1) + Flag(2) + .... Flag(e-1) + Flag(e) Therefore, the number of instructions Num to be processed next is calculated by Equation 2. Num = Flag (1) + Flag (2) + .... Flag (e-1) + Flag (e)

삭제delete

예를 들어, 도 4와 같이 명령어와 Tag가 구성되는 경우, 명령 1을 수행한 후 DSP는 다음에 있는 3개의 명령어를 읽어와서 처리한다. 왜냐하면, Flag(2), Flag(3), 그리고, Flag(6)이 1이고 나머지 Flag가 0이기 때문이다. 이 때, Flag(1) 이 0이기 때문에 다음 연산 수행시 연산 블록 1은 아무런 연산도 수행하지 않으며, Flag(2)가 1이기 때문에 명령 2는 연산 블록 2에서 처리하도록 한다. 상기와 같은 방법으로 Flag(3)이 1이기 때문에 명령 3은 연산 블록 3에서 처리하도록 하고, Flag(6)이 1이기 때문에 명령 4는 연산 블록 6에서 처리하도록 하고, 다른 연산 블록들은 아무 연산도 처리하지 않게된다. 즉, 연산 블록 1, 연산 블록 4, 연산 블록 5, 연산 블록 7, 그리고 연산 블록 8에는 무연산 명령을 전달하게 된다. 이는 명령어에는 존재하지 않는 무연산 명령을 DSP가 생성하는 것이다. 즉, 본 발명에서는 간단한 Flag를 이용하여 무연산 명령을 DSP가 생성하도록 함으로써 프로그램 사이즈를 줄이고, 병렬로 처리할 수 있는 명령어들을 소프트웨어(컴파일러, 어셈블러)가 구성하도록 하게함으로써 DSP 구조를 간단하게 할 수 있다.For example, when an instruction and a tag are configured as shown in FIG. 4, after performing instruction 1, the DSP reads and processes the next three instructions. This is because Flag (2), Flag (3), and Flag (6) are 1 and the remaining Flags are 0. In this case, since Flag (1) is 0, the operation block 1 does not perform any operation when performing the next operation, and since the Flag (2) is 1, the instruction 2 is processed in the operation block 2. In the same way as above, Flag (3) is 1, so instruction 3 is processed in operation block 3. Since Flag (6) is 1, instruction 4 is processed in operation block 6. Will not process. That is, arithmetic instructions are transmitted to arithmetic block 1, arithmetic block 4, arithmetic block 5, arithmetic block 7, and arithmetic block 8. This is a DSP-generated instruction that does not exist in the instruction. That is, in the present invention, the DSP structure can be reduced by using a simple flag to reduce the program size and allow the software (compiler and assembler) to configure instructions that can be processed in parallel to simplify the DSP structure. have.

둘째, 프로그램의 첫 번째 명령이다. 프로그램의 첫 번째 명령은 반드시 무연산 명령이고, Tag는 다음에 처리할 명령어에 대한 정보를 포함한다. 그리고, DSP가 리셋된 후에 첫 번째 명령을 수행할 때는 한 개의 명령어만 읽어와서 Tag에 포함되어 있는 플래그들을 분석하여 다음에 수행할 명령어들을 읽어온다. 이것은 DSP가 리셋된 후에 명령을 수행하기 시작할 때 Tag 정보가 없기 때문에 몇 개의 명령어를 읽어와야 할 것인지와 어느 연산 블록에서 처리할 지를 판단할 수 없기 때문이다.Second is the first command of the program. The first instruction in the program is necessarily an instruction, and the tag contains information about the instruction to be processed next. When the first command is executed after the DSP is reset, only one command is read and the flags included in the tag are analyzed to read the next command. This is because there is no tag information when the DSP starts executing instructions after it is reset, and it is impossible to determine how many instructions to read and in which operation block to process them.

셋째, 무조건 분기(Unconditional Branch) 명령이다. 무조건 분기 명령의 경우 목적지 주소가 미리 결정되기 때문에 Tag가 미리 결정될 수 있다. 이 때, Tag는 목적지 명령어 바로 전 명령어의 Tag가 된다. 즉, 도 5의 경우에 무조건 분기 명령의 Tag인 Tag(B)는 수학식 3으로 구해진다. Tag(B) = Tag(N-1) 넷째, 조건 분기(Conditional Branch) 명령이다. 조건 분기 명령의 경우에 목적지 주소가 미리 결정되지 않기 때문에 Tag가 미리 결정될 수 없다. 그리고, 조건분기 명령어 다음에는 무연산(No OPeration) 명령이 삽입된다. 조건 분기 명령어의 Tag는 조건이 만족되었을 때 분기할 주소에 저장되어 있는 하나의 명령을 수행하기 위한 Tag가 된다. 그리고, 조건 분기 명령어 다음에 있는 무연산 명령어의 Tag는 다음에 수행할 명령어들에 대한 Tag가 된다.Third, it is an unconditional branch instruction. In the case of an unconditional branch instruction, the tag may be predetermined because the destination address is predetermined. In this case, the tag becomes the tag of the instruction immediately before the destination instruction. That is, in the case of FIG. 5, Tag (B), which is a tag of an unconditional branch instruction, is obtained by the following equation. Tag (B) = Tag (N-1) Fourth, it is a conditional branch instruction. In the case of a conditional branch instruction, the tag cannot be predetermined because the destination address is not predetermined. After the conditional branch instruction, a no operation instruction is inserted. Tag of conditional branch instruction becomes tag to execute one instruction stored at address to branch when condition is satisfied. And the tag of the non-operational instruction after the conditional branch instruction becomes the tag for the next instruction to be executed.

삭제delete

삭제delete

상기 네 가지의 기본적인 사항으로 본 발명에서 제안하는 DSP 구조를 위한 프로그램 작성(명령어 배치)은 알고리즘 1에 따라 작성된다.With the above four basic matters, the program creation (command placement) for the DSP structure proposed by the present invention is prepared according to Algorithm 1.

[알고리즘 1]Algorithm 1

1단계: 각 명령에 대하여 동시에 수행 가능한 다음 명령어들의 수(M)를 계산한다.Step 1: Calculate the number of next instructions (M) that can be executed simultaneously for each instruction.

2단계: 1단계에서 계산한 M중에서 최대값 하나를 선택한다.Step 2: Choose the maximum value from M calculated in step 1.

3단계: 2단계에서 선택한 값에 대응하는 명령어들을 그룹으로 만든다.Step 3: Group the commands that correspond to the values you selected in Step 2.

4단계: 모든 명령어들이 그룹으로 만들어졌다면 5단계를 수행하고, 그렇지 않으면 1단계를 수행한다.Step 4: If all the commands are grouped, go to step 5; otherwise, go to step 1.

5단계: 각각의 그룹에 있는 명령어들을 해당 명령어를 수행할 연산 블록에 따라 재배치하고, Tag값을 해당하는 명령에 할당한다. Step 5: Relocate the instructions in each group according to the operation block to execute the instruction, and assign the tag value to the instruction.

알고리즘 1에 의하여 명령어를 배치하면 한 그룹 내에서 명령어들은 그 명령어가 수행될 연산 블록의 순서에따라 배치된다. 즉, 를 연산 블록 에서 수행 가능한 명령어라고 하면 하나의 그룹 내에서 수학식 4를 만족한다. 여기서, AddressOf(X)는 X 명령어가 저장되어 있는 메모리의 주소를 나타낸다. ) < AddressOf( ) -> m < nWhen an instruction is placed by Algorithm 1, the instructions are placed in a group in the order of the operation block in which the instruction is to be executed. In other words, Operation block The command that can be executed in satisfies Equation 4 in one group. Here, AddressOf (X) represents the address of the memory where the X command is stored. ) <AddressOf ( )-> m <n

삭제delete

그러면, 프로그램 작성(명령어 배치) 방법을 예를 들어서 설명하기로 한다.Next, a program creation (command placement) method will be described by way of example.

수행할 명령어로 무연산,,,,,,과 같은 명령어가 수행된다고 가정하면 알고리즘 1의 1단계에서 동시에 수행 가능한 다음 명령어들의 수(M)를 계산 하면 표 1과 같다.No operation as the command to perform, , , , , , Assuming that the same instruction is executed, Table 1 shows the number (M) of the next instructions that can be executed simultaneously in the first step of Algorithm 1.

명령어  command 무연산 No operation M     M 4   4 3    3 3    3 3    3 2    2 1    One 0   0

알고리즘 1의 2단계로부터 무연산 다음의 4개의 명령어들을 하나의 그룹으로 형성한다. 그러면, 제일 마지막의 이 하나의 그룹이 된다.From step 2 of Algorithm 1, the following four instructions are formed into one group. Then, the last Wow This is a group.

알고리즘 1의 5단계로부터 각 그룹에 있는 명령어들을 재배치하면 무연산, ,,,,,와 같이 명령어들이 배치되고, 각 명령어에 대한 Tag값을 계산하면, 표 2와 같이 된다.If you rearrange the instructions in each group from step 5 of Algorithm 1, , , , , , Instructions are arranged as shown in Table 2, and the Tag value for each instruction is calculated.

명령어 command TagTag 무연산No operation 11101(Tag 1)11101 (Tag 1) 0110101101 0010100101 0000100001 11000(Tag 5)11000 (Tag 5) 0100001000 0000000000

DSP는 첫 번째 무연산 명령과 Tag 1을 읽어와서 Tag 1을 분석한다. Tag 1을 분석하면 다음에 수행할 명령어가 4개라는 것을 알 수 있기 때문에 DSP는 프로그램 메모리로부터 4개의 명령어를 읽어온다. 그리고, Flag(1)이 1이기 때문에 첫 번째 명령어를 연산 블록 1로 전달한다. 상기와 같은 방법으로 두 번째 명령어를 연산 블록 2로 전달하고, 세 번째 명령어를 연산블록 3으로 전달한다. 그리고, Flag(4)가 0이기 때문에 연산블록 4에 무연산을 전달하고, 네 번째 명령어를 연산블록 5로 전달한다. 그리고, Tag 5를 분석하여 다음에 읽어올 명령어를 결정한다. 다음에 읽어올 명령어의 수는 2개이고, 첫 번째 명령어를 연산 블록 1로 전달하고, 두 번째 명령어를 연산 블록 2로 전달한다. The DSP analyzes Tag 1 by reading the first no-operation instruction and Tag 1. Analyzing Tag 1 reveals that there are four instructions to perform next, so the DSP reads four instructions from the program memory. And since Flag (1) is 1, the first instruction is transferred to operation block 1. In the same manner as above, the second instruction is transferred to the operation block 2, and the third instruction is transferred to the operation block 3. Since Flag (4) is 0, no operation is transmitted to operation block 4, and the fourth instruction is transferred to operation block 5. Then, it analyzes Tag 5 and decides the next command to be read. The next number of instructions to read is two, passing the first instruction to operation block 1, and passing the second instruction to operation block 2.

그룹 내에 마지막 명령어의 Tag값은 다음에 수행할 명령어 그룹에 대한 정보를 가지고 있게 된다. 그리고, 다른 명령어들에 대한 Tag값은 그 그룹에서 그 명령어 다음에 남아 있는 명령어들에 대응하는 Tag값으로 결정된다.The tag value of the last command in the group contains information about the next command group to be executed. The tag value for other instructions is determined as a tag value corresponding to the instructions remaining after the instruction in the group.

따라서, 본 발명의 명령어 병렬처리를 위한 디지털 신호처리기 및 그 처리방법은 슈퍼스칼라 구조와 VLIW 구조의 장점을 수용한 고성능 신호처리 시스템에 적용이 가능한 DSP 구조를 제공하는데, 간단한 Flag를 이용하여 무연산 명령을 DSP가 생성하도록 함으로써 프로그램 사이즈를 줄이고, 병렬로 처리할 수 있는 명령어들을 소프트웨어(컴파일러, 어셈블러)가 구성하도록 함으로써 DSP 구조를 간단하게 할 수 있는 장점이 있다.Accordingly, the digital signal processor and the processing method thereof for parallel processing of instructions of the present invention provide a DSP structure that can be applied to a high performance signal processing system that accommodates the advantages of a superscalar structure and a VLIW structure. The advantage of simplifying the DSP structure is that the DSP generates the instructions, reducing the program size and allowing the software (compiler, assembler) to construct instructions that can be processed in parallel.

도 1은 본 발명의 간략한 명령어 구성도이다.1 is a simplified command diagram of the present invention.

도 2는 본 발명의 디지털 신호처리기의 간략한 블록도이다.2 is a simplified block diagram of a digital signal processor of the present invention.

도 3은 본 발명의 태그의 구성도이다.3 is a block diagram of a tag of the present invention.

도 4는 본 발명의 재배치 전의 명령어 구성도이다.4 is a block diagram of the instruction before relocation of the present invention.

도 5는 본 발명의 무조건 분기 명령의 예이다.5 is an example of an unconditional branch instruction of the present invention.

Claims (13)

디지털 신호처리 방법에 있어서,In the digital signal processing method, 동시에 수행 가능한 다음 명령어들의 수(M)를 계산하는 제1단계;Calculating a number M of next instructions that can be executed simultaneously; 제1단계에서 계산한 M중에서 최대값 하나를 선택하는 제2단계;A second step of selecting one maximum value from M calculated in the first step; 제2단계에서 선택한 값에 대응하는 명령어들을 그룹으로 만드는 제3단계;A third step of grouping instructions corresponding to the value selected in the second step; 모든 명령어들이 그룹으로 만들어졌다면 제5단계를 수행하고, 그렇지 않으면 명령어 그룹으로 만들어지지 않은 나머지 명령어들에 대해 제1단계를 수행하는 제4단계; 및Performing a fifth step if all the instructions are grouped, or performing a first step on the remaining instructions not created in the instruction group; And 각각의 그룹에 있는 명령어들을 해당 명령어를 수행할 연산 블록에 따라 재배치하고, 태그(Tag)값을 할당하는 제5단계The fifth step of rearranging the instructions in each group according to the operation block to execute the instruction, and assigning a tag value 를 포함하는 것을 특징으로 하는 명령어 병렬처리를 위한 디지털 신호처리기의 처리방법Method of processing a digital signal processor for parallel processing instruction comprising a 제 1 항에 있어서,The method of claim 1, 상기 명령어는 고정된 비트수임을 특징으로 하는 명령어 병렬처리를 위한 디지털 신호처리기의 처리방법The method of the digital signal processor for parallel processing of instructions, characterized in that the instruction is a fixed number of bits. 제 1 항에 있어서,The method of claim 1, 디지털 신호처리기에 동시에 처리할 수 있는 상기 연산 블록의 수가 e개이면 상기 각 명령어에 e비트의 태그를 포함시킴을 특징으로 하는 명령어 병렬처리를 위한 디지털 신호처리기의 처리방법If the number of operation blocks that can be processed simultaneously in the digital signal processor e number of instructions, the method of processing a digital signal processor for parallel processing instructions, characterized in that each instruction includes an e-bit tag 제 1 항에 있어서,The method of claim 1, 상기 명령어들의 수(M)는 Num = Flag(1) + Flag(2) + .... Flag(e-1) + Flag(e)(여기서, e는 연산 블록의 수, Flag(e)는 연산블록을 지시하는 지시자)에 의하여 계산됨을 특징으로 하는 명령어 병렬처리를 위한 디지털 신호처리기의 처리방법The number of instructions M is Num = Flag (1) + Flag (2) + .... Flag (e-1) + Flag (e), where e is the number of operation blocks and Flag (e) is Method of processing a digital signal processor for parallel processing of instructions, characterized in that the calculation is performed by an indicator indicating an operation block). 제 4 항에 있어서,The method of claim 4, wherein 상기 Flag(i)( i = 1, 2, .... , e-1, e ) = 1 일 때는 연산 블록 i는 다음 연산 수행 시 수행이 가능함을 특징으로 하는 명령어 병렬처리를 위한 디지털 신호처리기의 처리방법When Flag (i) (i = 1, 2, ...., e-1, e) = 1, the operation block i can be executed when performing the next operation. How to deal with 제 1 항에 있어서,The method of claim 1, 상기 명령어의 첫 번째 명령은 무연산 명령임을 특징으로 하는 명령어 병렬처리를 위한 디지털 신호처리기의 처리방법Method of processing a digital signal processor for parallel processing of instructions characterized in that the first instruction of the instruction is a non-operational instruction 제 6 항에 있어서,The method of claim 6, 디지털 신호처리기가 리셋된 후에 상기 첫 번째 명령을 수행할 때는 한 개의 명령어만 읽어와서 태그에 포함되어 있는 플래그들을 분석하여 다음에 수행할 명령어들을 읽어옴을 특징으로 하는 명령어 병렬처리를 위한 디지털 신호처리기의 처리 방법When the first command is executed after the digital signal processor is reset, only one command is read, the flags included in the tag are analyzed, and the next command is read. The digital signal processor for command parallel processing is as follows. How to deal with 제 1 항에 있어서,The method of claim 1, 상기 태그는 다음에 처리할 명령어에 대한 정보를 포함함을 특징으로 하는 명령어 병렬처리를 위한 디지털 신호처리기의 처리방법The tag includes information about a command to be processed next, the digital signal processor processing method for parallel processing instructions 제 1 항에 있어서,The method of claim 1, 무조건 분기 명령의 상기 태그는 목적지 명령어 바로 전 명령어의 태그가 됨을 특징으로 하는 명령어 병렬처리를 위한 디지털 신호처리기의 처리방법The tag of the unconditional branch instruction becomes the tag of the instruction immediately before the destination instruction. 제 1 항에 있어서,The method of claim 1, 조건 분기의 상기 명령어 다음에는 무연산 명령이 삽입됨을 특징으로 하는 명령어 병렬처리를 위한 디지털 신호처리기의 처리방법A method of processing a digital signal processor for parallel processing of instructions, characterized in that a non-operational instruction is inserted after the instructions of the conditional branch. 제 10 항에 있어서,The method of claim 10, 상기 조건 분기의 명령어의 태그는 조건이 만족되었을 때, 분기할 주소에 저장되어 있는 하나의 명령을 수행하기 위한 태그가 됨을 특징으로 하는 명령어 병렬처리를 위한 디지털 신호처리기의 처리방법The tag of the instruction of the conditional branch is a tag for executing one instruction stored in the address to branch when the condition is satisfied, the method of processing a digital signal processor for parallel processing of instructions 제 11 항에 있어서,The method of claim 11, 조건 분기 명령어의 다음에 있는 무연산 명령어의 상기 태그는 다음에 수행할 명령어들에 대한 태그가 됨을 특징으로 하는 명령어 병렬처리를 위한 디지털 신호처리기의 처리방법The tag of the non-operational instruction next to the conditional branch instruction becomes a tag for the next instruction to be executed. 상기 제 1 항의 방법에 의해 알고리즘이 수행됨을 특징으로 하는 명령어 병렬처리를 위한 디지털 신호처리기Digital signal processor for instruction parallel processing, characterized in that the algorithm is performed by the method of claim 1
KR10-2003-0015336A 2003-03-12 2003-03-12 A digital signal processor for parallel processing of instructions and its process method KR100516214B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2003-0015336A KR100516214B1 (en) 2003-03-12 2003-03-12 A digital signal processor for parallel processing of instructions and its process method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2003-0015336A KR100516214B1 (en) 2003-03-12 2003-03-12 A digital signal processor for parallel processing of instructions and its process method

Publications (2)

Publication Number Publication Date
KR20040080520A KR20040080520A (en) 2004-09-20
KR100516214B1 true KR100516214B1 (en) 2005-09-23

Family

ID=37365156

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-0015336A KR100516214B1 (en) 2003-03-12 2003-03-12 A digital signal processor for parallel processing of instructions and its process method

Country Status (1)

Country Link
KR (1) KR100516214B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100735552B1 (en) 2005-09-23 2007-07-04 삼성전자주식회사 Method for reducing program code size on code memory
KR100829167B1 (en) * 2006-11-10 2008-05-13 재단법인서울대학교산학협력재단 Method of reducing data dependence for software pipelining
KR100940362B1 (en) * 2007-09-28 2010-02-04 고려대학교 산학협력단 Method for mode set optimization in instruction processor using mode sets

Also Published As

Publication number Publication date
KR20040080520A (en) 2004-09-20

Similar Documents

Publication Publication Date Title
US6269439B1 (en) Signal processor having pipeline processing that supresses the deterioration of processing efficiency and method of the same
US20100312988A1 (en) Data processing apparatus and method for handling vector instructions
JP2003510682A5 (en)
US7546442B1 (en) Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions
US7552313B2 (en) VLIW digital signal processor for achieving improved binary translation
JP2009059246A (en) Microprocessor
KR100972160B1 (en) Data access program instruction encoding
US9436466B2 (en) Blank bit and processor instructions employing the blank bit
KR100516214B1 (en) A digital signal processor for parallel processing of instructions and its process method
WO2008043287A1 (en) Configurable single instruction multiple data unit
US20080282071A1 (en) Microprocessor and register saving method
US20070011440A1 (en) Processor and processing method
KR19980024622A (en) Program execution method and device using the method
US6735689B1 (en) Method and system for reducing taken branch penalty
US8392893B2 (en) Emulation method and computer system
US20070283333A1 (en) Medium for recording compiler program, compile method, and information processing apparatus therewith
US20060015704A1 (en) Operation apparatus and instruction code executing method
US6757813B1 (en) Processor
JPH0954694A (en) Pipeline processor and its processing method
JP3705263B2 (en) Sequencer
US20090119492A1 (en) Data Processing Apparatus and Method for Handling Procedure Call Instructions
KR100246327B1 (en) Data access circuit for central processing unit
JP3428253B2 (en) Sequencer
JP2522562B2 (en) Programmable controller
JPS63276126A (en) Instruction decoding circuit

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
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: 20111229

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee