KR20090055765A - Multiple simd processor for multimedia data processing and operating method using the same - Google Patents

Multiple simd processor for multimedia data processing and operating method using the same Download PDF

Info

Publication number
KR20090055765A
KR20090055765A KR1020070122575A KR20070122575A KR20090055765A KR 20090055765 A KR20090055765 A KR 20090055765A KR 1020070122575 A KR1020070122575 A KR 1020070122575A KR 20070122575 A KR20070122575 A KR 20070122575A KR 20090055765 A KR20090055765 A KR 20090055765A
Authority
KR
South Korea
Prior art keywords
simd
control unit
control
units
unit
Prior art date
Application number
KR1020070122575A
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 KR1020070122575A priority Critical patent/KR20090055765A/en
Priority to US12/174,988 priority patent/US20090144523A1/en
Publication of KR20090055765A publication Critical patent/KR20090055765A/en

Links

Images

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/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Multi Processors (AREA)
  • Advance Control (AREA)
  • Image Processing (AREA)

Abstract

An SIMD processor for processing multimedia data for being operated and an operation method using the same are provided to improve the operation efficiency of the multimedia data by allocating the control right of a control unit according to the kinds of the operation. A multiple SIMD(Single Instruction Multiple Data) processor for multimedia data process includes a HC(Host Controller), a control unit, a program memory, an SIMD operation unit and a data bus. According to the host controller is the kinds of calculation, the control right of each control unit is assigned. According to the allocated control right, a first and N control units through the first delivers an instruction read from the program memory to the corresponding SIMD arithmetic unit.

Description

멀티미디어 데이터 처리를 위한 다중 SIMD 프로세서 및 이를 이용한 연산 방법{MULTIPLE SIMD PROCESSOR FOR MULTIMEDIA DATA PROCESSING AND OPERATING METHOD USING THE SAME}MULTIPLE SIMD PROCESSOR FOR MULTIMEDIA DATA PROCESSING AND OPERATING METHOD USING THE SAME

본 발명은 멀티미디어 데이터 처리를 위한 다중 SIMD 프로세서 및 이를 이용한 연산 방법에 관한 것으로, 더 자세하게는 연산의 종류에 따라 각 제어 유닛의 제어권을 다르게 할당하여 보다 다양한 동작 모드로 동작이 가능한 다중 SIMD 프로세서 및 이를 이용한 연산 방법에 관한 것이다.The present invention relates to a multiple SIMD processor for processing multimedia data and a calculation method using the same, and more particularly, to a multi SIMD processor capable of operating in a different operation mode by allocating different control rights for each control unit according to the type of operation and the same. It relates to a calculation method used.

본 발명은 정보통신부 및 정보통신연구진흥원의 IT원천기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2006-S-006-02, 과제명: 유비쿼터스 단말용 부품 모듈].The present invention is derived from the research conducted as part of the IT source technology development project of the Ministry of Information and Communication and the Ministry of Information and Telecommunications Research and Development.

프로세서는 퍼스널 컴퓨터에 사용되는 CPU와 같은 단일칩 형태의 프로세서와, 각종 제어용 칩이나 스마트 카드용 칩과 같은 SoC(System on Chip) 내에 사용되는 내장형 프로세서로 분류할 수 있다.Processors may be classified into a single chip type processor such as a CPU used in a personal computer and an embedded processor used in a system on chip (SoC) such as various control chips or smart card chips.

내장형 프로세서(MPU/MCU/DSP)는 명령어(instruction)를 패치(Fetch), 디코딩(Decoding), 실행(Execution)하여 신호를 가공 처리한 후 가공된 신호를 읽고, 쓰는 일련의 작업을 처리하는 SoC내 핵심 블록으로, 일반적으로 연산 및 신호 처리에 널리 사용되고 있다.The embedded processor (MPU / MCU / DSP) is a SoC that processes, processes, reads and writes the processed signal after processing the signal by fetching, decoding, and executing instructions. As my core block, it's commonly used for computational and signal processing.

이와 같은 내장형 프로세서에는 성능 향상을 위해 병렬-파이프라인 구조가 많이 사용되고 있으며, 대표적인 병렬-파이프라인 구조로는 SIMD(Single Instruction Multiple Data) 구조와 MIMD(Multiple Instruction Multiple Data) 구조가 있다. SIMD 구조는 한 개의 명령어로 여러 개의 데이터를 가공 및 처리하는 구조이고, MIMD 구조는 여러 개의 명령어로 여러 개의 데이터를 가공 및 처리하는 구조이다. In such an embedded processor, a parallel-pipeline structure is frequently used to improve performance, and typical parallel-pipeline structures include a single instruction multiple data (SIMD) structure and a multiple instruction multiple data (MIMD) structure. The SIMD structure is a structure that processes and processes multiple data with one instruction, and the MIMD structure is a structure that processes and processes multiple data with multiple instructions.

도 1a는 종래의 SIMD 구조의 프로세서를 나타낸 블록도이며, 도 1b는 종래의 MIMD 구조의 프로세서를 나타낸 블록도이다.1A is a block diagram illustrating a processor of a conventional SIMD structure, and FIG. 1B is a block diagram of a processor of a conventional MIMD structure.

도 1a를 참조하면, 종래의 SIMD 구조의 프로세서는, 하나의 제어 유닛(CU1)이 하나의 프로그램 메모리(M1)로부터 하나의 명령을 읽어 N개의 연산 유닛(OU1~OUN)으로 전달하여 모든 연산 유닛이 같은 연산을 수행하도록 한다.Referring to FIG. 1A, in the conventional SIMD processor, one control unit CU 1 reads one instruction from one program memory M 1 and transfers one instruction to N calculation units OU 1 to OU N. So that all computation units perform the same computation.

하지만, 이러한 SIMD 구조는 최소의 프로그램 메모리를 이용한다는 장점이 있지만, 다양한 연산을 동시에 수행할 수 없다는 단점이 있다. However, this SIMD structure has the advantage of using the minimum program memory, but has the disadvantage that it is not possible to perform various operations at the same time.

도 1b를 참조하면, 종래의 MIMD 구조의 프로세서는, 하나의 제어 유닛(CU1)이 동시에 N개의 프로그램 메모리(M1~MN)로부터 각각 하나의 명령을 읽어 N개의 연산 유닛(OU1~OUN)으로 전달하여 N개의 연산 유닛(OU1~OUN)마다 다른 연산을 수행하도 록 한다.Referring to FIG. 1B, in the processor of the conventional MIMD structure, one control unit CU 1 reads one instruction from N program memories M 1 to M N at the same time, and N computation units OU 1 to. OU N ) to perform different operations for each of the N computation units (OU 1 to OU N ).

하지만, 이러한 MIMD 구조는 다양한 연산을 동시에 수행할 수는 있지만, 모든 연산 유닛을 제어하기 위해 많은 프로그램 메모리를 필요로 한다는 단점이 있다. However, such a MIMD structure can perform various operations at the same time, but has a disadvantage in that a large amount of program memory is required to control all the calculation units.

한편, 상기 SIMD 구조와 MIMD 구조의 장점을 동시에 얻기 위한 방법으로, 도 1c에 도시된 바와 같은 다중 SIMD 구조의 프로세서가 개시되어 있다.Meanwhile, as a method of simultaneously obtaining the advantages of the SIMD structure and the MIMD structure, a processor having a multiple SIMD structure as shown in FIG. 1C is disclosed.

도 1c는 종래의 다중 SIMD 구조의 프로세서를 나타낸 블록도로, 다중 SIMD 구조의 프로세서는, 하나의 제어 유닛(CU1)이 동시에 N개의 프로그램 메모리(M1~MN)로부터 각각 하나의 명령을 읽어 N개의 SIMD 연산 유닛(SOU1~SOUN)으로 전달하여 SIMD 연산 유닛(SOU1~SOUN)마다 다른 연산을 수행하도록 한다. FIG. 1C is a block diagram illustrating a processor of a conventional multiple SIMD structure, wherein a processor of a multiple SIMD structure reads one instruction from N program memories M 1 to M N simultaneously by one control unit CU 1 . The N SIMD calculation units SOU 1 to SOU N are transferred to the N SIMD calculation units SOU 1 to SOU N to perform different calculations for each SIMD calculation unit SOU 1 to SOU N.

하지만, 이러한 다중 SIMD 구조의 프로세서는 MIMD 구조 보다는 적은 메모리를 사용하면서 SIMD 구조 보다 다양한 연산을 수행할 수 있다는 장점은 있지만, 각 SIMD 연산 유닛을 동시에 제어하여야 하기 때문에 다양한 연산 수행의 제약이 크다는 한계점이 있다.However, this multi-SIMD processor has the advantage that it can perform a variety of operations than the SIMD structure while using less memory than the MIMD structure, but the limitation that the constraint of performing various operations is large because each SIMD operation unit must be controlled at the same time have.

한편, 상기 SIMD 구조와 MIMD 구조의 장점을 동시에 얻기 위한 다른 방법으로, 도 1d에 도시된 바와 같은 멀티모드 구조의 프로세서가 개시되어 있다.Meanwhile, as another method for simultaneously obtaining the advantages of the SIMD structure and the MIMD structure, a processor having a multimode structure as shown in FIG. 1D is disclosed.

도 1d는 종래의 멀티모드 구조의 프로세서를 나타낸 블록도로, SIMD 모드로 동작하는 경우에는 제1 제어 유닛(CU1)이 제1 프로그램 메모리(M1)에서 하나의 명령 을 읽어 각 연산 유닛(OU1~OUN)으로 전달하여 모든 연산 유닛(OU1~OUN)이 동일한 연산을 수행하도록 하고, MIMD 모드로 동작하는 경우에는 N개의 제어 유닛(CU1~CUN)이 N개의 프로그램 메모리(M1~MN)에서 각각 하나의 명령을 읽어 해당 연산 유닛(OU1~OUN)으로 전달하여 각 연산 유닛(OU1~OUN)마다 다른 연산을 수행하도록 한다. 또한, 대용량의 연산이 필요하지 않을 경우에는 제1 제어 유닛(CU1)이 제1 프로그램 메모리(M1)에서 하나의 명령을 읽어 제1 연산 유닛(OU1)에만 전달하여 하나의 연산만 수행하도록 하는 SISD(Single-Instruction-Single-Data) 제어도 가능하다. FIG. 1D is a block diagram illustrating a processor of a conventional multimode structure, in which the first control unit CU 1 reads one instruction from the first program memory M 1 when operating in the SIMD mode. 1 to OU N ) so that all the calculation units OU 1 to OU N perform the same operation, and when operating in the MIMD mode, the N control units CU 1 to CU N are N program memories ( One instruction is read from M 1 to M N ) and transferred to the corresponding operation units OU 1 to OU N to perform different operations for each operation unit OU 1 to OU N. In addition, when a large amount of computation is not required, the first control unit CU 1 reads one instruction from the first program memory M 1 and transfers it to the first computation unit OU 1 to perform only one computation. Single-Instruction-Single-Data (SISD) control is also possible.

하지만, 이러한 멀티모드 구조의 프로세서는, 수행할 연산의 종류에 따라 다양한 제어 방식을 활용할 수 있다는 장점은 있지만, N개의 연산 유닛을 제어하기 위해 상대적으로 너무 많은 제어 유닛을 사용해야 하며, 이로 인해 하드웨어의 크기가 커지고 소모전력이 증가되는 문제점이 있다. 또한, SIMD 및 SISD 제어 방식으로 활용할 경우에는 하나의 프로그램 메모리 밖에 사용하지 않으므로, 프로그램 메모리가 낭비될 뿐만 아니라, 제어 유닛의 사용이 1개 또는 전체로만 한정되어 있어, 이로 인해 활용성, 효율성 및 유연성이 떨어지는 단점이 있다. However, this multimode processor has the advantage of utilizing various control schemes depending on the type of operation to be performed, but it requires the use of too many control units to control N computation units. There is a problem that the size is increased and the power consumption is increased. In addition, when using the SIMD and SISD control methods, only one program memory is used, which not only wastes the program memory but also uses only one or the whole of the control unit. This has the disadvantage of falling.

따라서, 본 발명은 상기와 같은 문제점을 해결하기 위해 안출한 것으로서, 본 발명의 목적은 다중 SIMD 프로세서에서 연산의 종류에 따라 각 제어 유닛의 제어권을 다르게 할당하여 보다 다양한 동작 모드로 동작이 가능하도록 하는 것이다.Accordingly, the present invention has been made to solve the above problems, an object of the present invention is to assign a control right of each control unit differently according to the type of operation in the multi-SIMD processor to enable operation in more various operation modes will be.

상기 목적을 달성하기 위하여 본 발명에 따른 멀티미디어 데이터 처리를 위한 다중 SIMD 프로세서는, 연산 종류에 따라 각 제어 유닛의 제어권을 할당하는 호스트 제어부; 적어도 하나의 명령이 각각 저장되어 있는 제1 내지 제N 프로그램 메모리; 상기 호스트 제어부를 통해 할당된 제어권에 따라 상기 프로그램 메모리로부터 명령을 읽어 해당 SIMD 연산 유닛으로 전달하는 제1 내지 제N 제어 유닛; 상기 제어 유닛으로부터 전달받은 명령에 따른 연산을 수행하는 제1 내지 제N SIMD 연산 유닛; 및 상기 각 SIMD 연산 유닛간의 데이터 교환을 위한 데이터 버스를 포함하는 것을 특징으로 한다.In order to achieve the above object, a multiple SIMD processor for processing multimedia data according to the present invention comprises: a host controller for allocating a control right of each control unit according to a calculation type; First to N-th program memories, each of which stores at least one instruction; First to N-th control units that read a command from the program memory and transfer the command to the SIMD operation unit according to a control right assigned through the host controller; First to N-th SIMD calculation units that perform calculations according to instructions received from the control unit; And a data bus for exchanging data between the SIMD computation units.

한편, 상기 목적을 달성하기 위하여 본 발명에 따른 다중 SIMD 프로세서를 이용한 연산 방법은, (a) 호스트 제어부에서 연산의 종류에 따라 제어권 할당이 필요한지를 확인하여 제어권 할당이 필요한 경우 각 제어 유닛에게 제어권을 할당하는 단계; (b) 상기 각 제어 유닛에서 상기 할당된 제어권에 따라 제1 내지 제N 프로그램 메모리로부터 적어도 하나의 명령을 읽어 제1 내지 제N SIMD 연산 유닛 중 해당 SIMD 연산 유닛으로 전달하는 단계; 및 (c) 상기 각 SIMD 연산 유닛에서 상기 각 제어 유닛으로부터 전달받은 명령에 따른 연산을 수행하는 단계를 포함하는 것을 특징으로 한다.On the other hand, in order to achieve the above object, the operation method using the multiple SIMD processor according to the present invention, (a) the host control unit checks whether the control right assignment is required according to the type of operation, if the control right assignment is required to control each control unit Assigning; (b) reading at least one command from the first to N-th program memories according to the assigned control right in each control unit and transferring the at least one command to a corresponding SIMD calculation unit among the first to N-th SIMD calculation units; And (c) performing an operation according to a command received from each control unit in each SIMD operation unit.

여기에서, 상기 각 제어 유닛에서 연산의 종류에 따라 상기 제1 내지 제N 프로그램 메모리 및 상기 제1 내지 제N SIMD 연산 유닛의 전체 또는 일부를 사용하여 연산이 수행되도록 하는 것이 바람직하다.Here, it is preferable that the calculation is performed using all or a part of the first to Nth program memory and the first to Nth SIMD calculation units according to the type of calculation in each of the control units.

본 발명에 따르면, 연산의 종류에 따라 하나의 제어 유닛에 의해 전체 SIMD 연산 유닛을 하나의 명령으로 제어하거나, 또는 각 제어 유닛에 의해 SIMD 연산 유닛별로 각각 다른 명령으로 제어할 수 있으므로, 보다 다양한 동작 모드로 동작이 가능하여 멀티미디어 데이터의 연산 효율을 높일 수 있는 효과가 있다.According to the present invention, since all the SIMD calculation units can be controlled by one command by one control unit or by different commands by SIMD calculation units by each control unit, according to the type of operation, more various operations are possible. The mode can be operated to increase the computational efficiency of multimedia data.

또한, 연산의 종류에 따라 프로그램 메모리와 SIMD 연산 유닛의 일부만을 사용하도록 제어할 수 있으므로, 연산을 위한 메모리와 전력 소모를 줄일 수 있는 효과가 있다.In addition, since only part of the program memory and the SIMD operation unit can be controlled according to the type of operation, the memory and power consumption for the operation can be reduced.

이하, 본 발명에 따른 멀티미디어 데이터 처리를 위한 다중 SIMD 프로세서 및 이를 이용한 연산 방법에 대하여 첨부된 도면을 참조하여 상세히 설명하기로 한다. Hereinafter, a multi SIMD processor for processing multimedia data and a calculation method using the same according to the present invention will be described in detail with reference to the accompanying drawings.

도 2는 본 발명의 일 실시예에 따른 다중 SIMD 프로세서를 나타낸 블록도이다.2 is a block diagram illustrating a multiple SIMD processor according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 일 실시예에 따른 다중 SIMD 프로세서는, 연산 의 종류에 따라 각 제어 유닛(CU1~CU4)의 제어권을 할당하고 회수하기 위한 호스트 제어부(HC)와, 적어도 하나의 명령이 각각 저장되어 있는 제1 내지 제4 프로그램 메모리(M1~M4)와, 상기 호스트 제어부(HC)를 통해 할당된 제어권에 따라 상기 프로그램 메모리(M1~M4)로부터 명령을 읽어 해당 SIMD 연산 유닛(SOU1~SOUN)으로 전달하는 제1 내지 제4 제어 유닛(CU1~CU4)과, 상기 제어 유닛(CU1~CU4)으로부터 전달받은 명령에 따른 연산을 수행하는 제1 내지 제4 SIMD 연산 유닛(SOU1~SOU4)과, 상기 각 SIMD 연산 유닛(SOU1~SOU4)간의 데이터 교환을 위한 데이터 버스를 포함하여 이루어져 있다.Referring to FIG. 2, a multi-SIMD processor according to an embodiment of the present invention may include a host controller HC for allocating and retrieving a control right of each control unit CU 1 to CU 4 according to a type of operation, and at least an instruction from one of the first to which the command is stored, respectively a fourth program memory (M 1 ~ M 4) and said program memory (M 1 ~ M 4) based on the control assignment from the host controller (HC) The first to fourth control units CU 1 to CU 4 to read and transfer the corresponding SIMD calculation units SOU 1 to SOU N , and perform the operation according to the command received from the control units CU 1 to CU 4 . The first to fourth SIMD calculation units SOU 1 to SOU 4 and a data bus for exchanging data between the SIMD calculation units SOU 1 to SOU 4 are included.

본 실시예에서는 설명의 편의를 위해 다중 SIMD 프로세서가 4개의 제어 유닛과, 4개의 프로그램 메모리 및 4개의 SIMD 연산 유닛을 포함하는 것으로 설명하였지만, 이들의 갯수는 변경 가능함은 물론이다. In the present embodiment, for convenience of description, the multiple SIMD processor has been described as including four control units, four program memories, and four SIMD calculation units, but the number of them can be changed.

우선, 제1 제어 유닛(CU1)은 제1 내지 제4 프로그램 메모리(M1~M4)와 제1 내지 제4 SIMD 연산 유닛(SOU1~SOU4)에 대한 제어권을 갖고 있다. 따라서, SIMD 방식의 제어를 위해서 4개의 프로그램 메모리(M1~M4) 중 하나를 선택하여 하나의 명령을 읽어 4개의 SIMD 연산 유닛(SOU1~SOU4)에 전달하여 모든 SIMD 연산 유닛들(SOU1~SOU4)이 동시에 같은 연산을 수행하도록 할 수 있다. 또한, 제1 제어 유 닛(CU1)은 다중 SIMD 방식의 제어를 위해서 4개의 프로그램 메모리(M1~M4)에서 각각 하나의 명령을 읽어 해당 SIMD 연산 유닛(SOU1~SOU4)에 각각 전달하여 SIMD 연산 유닛별로 각각 다른 연산을 수행하도록 할 수 있다. First, the first control unit CU 1 has control rights to the first to fourth program memories M 1 to M 4 and the first to fourth SIMD calculation units SOU 1 to SOU 4 . Therefore, in order to control the SIMD method, one of the four program memories M 1 to M 4 is selected and one command is read and transmitted to the four SIMD calculation units SOU 1 to SOU 4 to all SIMD calculation units ( SOU 1 ~ SOU 4 ) can perform the same operation at the same time. In addition, the first control unit CU 1 reads one instruction from each of the four program memories M 1 to M 4 for the control of the multiple SIMD method, respectively, to the corresponding SIMD calculation units SOU 1 to SOU 4 . The transfer may be performed to perform different operations for each SIMD calculation unit.

즉, 제1 제어 유닛(CU1)은 연산의 종류에 따라 하나의 SIMD 연산 유닛만을 사용하거나, 아니면 4개의 SIMD 연산 유닛 중 둘 이상의 SIMD 연산 유닛을 선택하여 사용한다.That is, the first control unit CU 1 uses only one SIMD calculation unit or selects two or more SIMD calculation units from four SIMD calculation units according to the type of calculation.

한편, 제2 제어 유닛(CU2)은 제2 프로그램 메모리(M2)와 제2 SIMD 연산 유닛(SOU2)에 대한 제어권만 갖고 있으며, 이에 따라 제2 프로그램 메모리(M2)에서 하나의 명령을 읽어 제2 SIMD 연산 유닛(SOU2)에 전달하여, 제2 SIMD 연산 유닛(SOU2)에 속한 연산 유닛들만 동일한 연산을 수행하도록 할 수 있다.On the other hand, the second control unit CU 2 has only the control right for the second program memory M 2 and the second SIMD calculation unit SOU 2 , and accordingly one command in the second program memory M 2 . only the operating unit belonging to read the SIMD computation unit 2 by passing the (SOU 2), claim 2 SIMD operation unit (SOU 2) may be to perform the same operation.

제3 제어 유닛(CU3)은 제3, 4 프로그램 메모리(M3, M4)와 제3, 4 SIMD 연산 유닛(SOU3, SOU4)에 대한 제어권을 갖고 있다. 따라서, SIMD 방식의 제어를 위해서 제3, 4 프로그램 메모리(M3, M4) 중 하나를 선택하여 하나의 명령을 읽어 제3, 4 SIMD 연산 유닛(SOU3, SOU4)에 전달하여 제3, 4 SIMD 연산 유닛(SOU3, SOU4)이 동시에 같은 연산을 수행하도록 할 수 있다. 또한, 제3 제어 유닛(CU3)은 다중 SIMD 방식의 제어를 위해서 제3, 4 프로그램 메모리(M3, M4)에서 각각 하나의 명령을 읽어 제3, 4 SIMD 연산 유닛(SOU3, SOU4)에 각각 전달하여 SIMD 연산 유닛별로 각각 다른 연산을 수행하도록 할 수 있다. The third control unit CU 3 has control over the third and fourth program memories M 3 and M 4 and the third and fourth SIMD calculation units SOU 3 and SOU 4 . Therefore, in order to control the SIMD method, one of the third and fourth program memories M 3 and M 4 is selected and one command is read and transmitted to the third and fourth SIMD calculation units SOU 3 and SOU 4 to be transferred to the third. , 4 SIMD operation units (SOU 3 , SOU 4 ) can be performed at the same time. In addition, the third control unit CU 3 reads one instruction from each of the third and fourth program memories M 3 and M 4 to control the multiple SIMD method, and the third and fourth SIMD calculation units SOU 3 and SOU. 4 ) to each of the SIMD calculation units to perform different operations.

제4 제어 유닛(CU4)은 제4 프로그램 메모리(M4)와 제4 SIMD 연산 유닛(SOU4)에 대한 제어권만 갖고 있으며, 이에 따라 제4 프로그램 메모리(M4)에서 하나의 명령을 읽어 제4 SIMD 연산 유닛(SOU4)에 전달하여, 제4 SIMD 연산 유닛(SOU4)에 속한 연산 유닛들만 동일한 연산을 수행하도록 할 수 있다.The fourth control unit CU 4 has only the control right for the fourth program memory M 4 and the fourth SIMD calculation unit SOU 4 , so that one command is read from the fourth program memory M 4 . the only operating unit belonging to the SIMD computation unit 4 by passing the (SOU 4), the 4 SIMD operation unit (SOU 4) may be to perform the same operation.

이와 같이, 본 발명의 다중 SIMD 프로세서는, 연산의 종류에 따라 호스트 제어부(HC)를 통해 각 제어 유닛(CU1~CU4)의 제어권을 다르게 할당함으로써, 보다 다양한 동작 모드로 동작이 가능하여 멀티미디어 데이터를 효율적으로 처리할 수 있는 장점이 있다. 그리고, 본 발명의 다중 SIMD 프로세서는, 연산 종류에 따라 프로그램 메모리(M1~M4)와 SIMD 연산 유닛(SOU1~SOU4)의 일부만을 사용하도록 제어할 수 있으므로, 연산을 위한 메모리와 전력 소모를 줄일 수 있는 장점이 있다.As described above, the multi-SIMD processor of the present invention can be operated in various operation modes by assigning different control rights of the control units CU 1 to CU 4 through the host control unit HC according to the type of operation. There is an advantage that the data can be processed efficiently. In addition, the multi-SIMD processor of the present invention can control to use only a part of the program memories M 1 to M 4 and the SIMD arithmetic units SOU 1 to SOU 4 according to the type of operation. There is an advantage to reduce the consumption.

도 3은 본 발명에 따른 다중 SIMD 프로세서를 이용한 연산 방법을 나타낸 흐름도로, 설명의 편의를 위해 제1 제어 유닛(CU1)이 4개의 프로그램 메모리(M1~M4) 및 4개의 SIMD 연산 유닛(SOU1~SOU4)에 대한 제어권을 가지며, 제1 제어 유닛(CU1)이 자신의 제어권을 다시 자체적으로 할당/회수하여 연산을 수행하는 것을 나타낸 것이다.3 is a flowchart illustrating a calculation method using a multiple SIMD processor according to the present invention. For convenience of description, the first control unit CU 1 includes four program memories M 1 to M 4 and four SIMD calculation units. It has control over (SOU 1 ~ SOU 4 ), and shows that the first control unit (CU 1 ) performs the operation by allocating / recovering its own control right again.

우선, 다중 SIMD 프로세서가 구동되면, 호스트 제어부(HC)에서는 연산의 종 류에 따라 제어권 할당이 필요한지를 확인하여(S301), 제어권 할당이 필요한 경우, 제1 제어 유닛(CU1)에게 제1 내지 제4 프로그램 메모리(M1~M4)와 제1 내지 제4 SIMD 연산 유닛(SOU1~SOU4)에 대한 제어권을 할당하여 전달한다(S302). 만약 제어권 할당이 불필요한 경우에는 자체 연산을 통해 처리한다(S303).First, multiple SIMD When the processor is running, the host controller (HC) in the check for the control of allocation is required depending on the type of operation (S301), if necessary the control assignment, a first to a control unit (CU 1) The control rights for the fourth program memories M 1 to M 4 and the first to fourth SIMD calculation units SOU 1 to SOU 4 are allocated and transferred (S302). If the control right assignment is unnecessary, it is processed through its own operation (S303).

그 다음, 제1 제어 유닛(CU1)은 할당된 제어권에 따라 4개의 프로그램 메모리(M1~M4)와 4개의 SIMD 연산 유닛(SOU1~SOU4)을 이용하여 연산을 수행한다(S311~S312). 이 때, 제2, 3, 4 제어 유닛(CU2, CU3, CU4)은 아무런 연산도 수행하지 않는다.Next, the first control unit CU 1 performs calculation using four program memories M 1 to M 4 and four SIMD arithmetic units SOU 1 to SOU 4 according to the assigned control right (S311). ~ S312). At this time, the second, third and fourth control units CU 2 , CU 3 and CU 4 perform no operation.

다음으로, 제1 제어 유닛(CU1)은 연산 도중에 분할 연산이 필요한지를 확인하여(S313), 분할 연산이 필요한 경우 제3 제어 유닛(CU3)에게 제3, 4 프로그램 메모리(M3, M4)와 제3, 4 SIMD 연산 유닛(SOU3, SOU4)에 대한 제어권을 할당하여 전달한 후(S314), 자신은 제1, 2 프로그램 메모리(M1, M2)와 제1, 2 SIMD 연산 유닛(SOU1, SOU2)을 이용하여 연산을 수행한다(S315). Next, the first control unit CU 1 checks whether a division operation is required during the calculation (S313), and when the division operation is necessary, the first control unit CU 1 transmits the third and fourth program memories M 3 and M to the third control unit CU 3 . 4 ) and control and transfer control rights to the third and fourth SIMD calculation units SOU 3 and SOU 4 (S314), the first and second program memories M 1 and M 2 and the first and second SIMDs. An operation is performed using the calculation units SOU 1 and SOU 2 (S315).

이 때, 제3 제어 유닛(CU3)은 제1 제어 유닛(CU1)으로부터 할당된 제어권에 따라 제3, 4 프로그램 메모리(M3, M4)와 제3, 4 SIMD 연산 유닛(SOU3, SOU4)을 이용하여 연산을 수행한다(S341~S342)At this time, the third control unit CU 3 according to the control right allocated from the first control unit CU 1 , the third and fourth program memories M 3 and M 4 and the third and fourth SIMD calculation units SOU 3. , SOU 4 ) to perform the operation (S341 ~ S342).

다음으로, 제1 제어 유닛(CU1)은 연산 도중에 분할 연산이 더 필요한지를 확인하여(S316), 분할 연산이 필요한 경우 제2 제어 유닛(CU2)에게 제2 프로그램 메모리(M2)와 제2 SIMD 연산 유닛(SOU2)에 대한 제어권을 할당하여 전달한 후(S317), 자신은 제1 프로그램 메모리(M1)와 제1 SIMD 연산 유닛(SOU1)을 이용하여 연산을 수행한다(S318). Next, the first control unit CU 1 checks whether further divisional operation is required during the operation (S316), and when the divisional operation is necessary, the first control unit CU 1 transmits the second program memory M 2 to the second control unit CU 2 . 2 After allocating and transmitting control rights for the SIMD calculation unit SOU 2 (S317), the self performs calculation using the first program memory M 1 and the first SIMD calculation unit SOU 1 (S318). .

이 때, 제2 제어 유닛(CU2)은 제1 제어 유닛(CU1)으로부터 할당된 제어권에 따라 제2 프로그램 메모리(M2)와 제2 SIMD 연산 유닛(SOU2)을 이용하여 연산을 수행한다(S331~S332).At this time, the second control unit CU 2 performs the calculation using the second program memory M 2 and the second SIMD calculation unit SOU 2 according to the control right allocated from the first control unit CU 1 . (S331 to S332).

한편, 제3 제어 유닛(CU3) 역시 연산 도중에 분할 연산이 필요한지를 확인하여(S343), 분할 연산이 필요한 경우 제4 제어 유닛(CU4)에 제 4 프로그램 메모리(M4)와 제4 SIMD 연산 유닛(SOU4)에 대한 제어권을 할당하여 전달한 후(S344), 자신은 제3 프로그램 메모리(M3)와 제3 SIMD 연산 유닛(SOU3)을 이용하여 연산을 수행한다(S345). 이 때, 제4 제어 유닛(CU4)은 제3 제어 유닛(CU3)으로부터 할당된 제어권에 따라 제4 프로그램 메모리(M4)와 제4 SIMD 연산 유닛(SOU4)을 이용하여 연산을 수행한다(S351~S352).On the other hand, the third control unit CU 3 also checks whether a division operation is necessary during the operation (S343), and when the division operation is necessary, the fourth program memory M 4 and the fourth SIMD in the fourth control unit CU 4 . After allocating and transferring the control right for the calculation unit SOU 4 (S344), the self performs calculation using the third program memory M 3 and the third SIMD calculation unit SOU 3 (S345). At this time, the fourth control unit CU 4 performs the calculation using the fourth program memory M 4 and the fourth SIMD calculation unit SOU 4 according to the control right allocated from the third control unit CU 3 . (S351 to S352).

즉, 이와 같은 제어권 할당에 따라 본 발명의 다중 SIMD 프로세서는 연산의 종류에 따라 다음과 같은 5가지의 동작 모드를 전환하면서 연산을 수행할 수 있다.That is, according to the control right assignment, the multi-SIMD processor of the present invention can perform the operation by switching the following five operation modes according to the type of operation.

(1) 제1 동작 모드(Mode1) : 제1 제어 유닛(CU1)이 모든 프로그램 메모리(M1~M4)와 SIMD 연산 유닛(SOU1~SOU4)을 이용하여 연산을 수행하는 동작 모드이다.(1) First operation mode Mode1: An operation mode in which the first control unit CU 1 performs calculations using all the program memories M 1 to M 4 and the SIMD calculation units SOU 1 to SOU 4 . to be.

(2) 제2 동작 모드(Mode2) : 제1 제어 유닛(CU1)이 제1, 2 프로그램 메모리(M1, M2)와 제1, 2 SIMD 연산 유닛(SOU1, SOU2)을 이용하여 연산을 수행하는 한편, 제3 제어 유닛(CU3)이 제3, 4 프로그램 메모리(M3, M4)와 제3, 4 SIMD 연산 유닛(SOU3, SOU4)을 이용하여 연산을 수행하는 동작 모드이다.(2) Second operation mode Mode2: The first control unit CU 1 uses the first and second program memories M 1 and M 2 and the first and second SIMD calculation units SOU 1 and SOU 2 . The third control unit CU 3 performs the operation using the third and fourth program memories M 3 and M 4 and the third and fourth SIMD calculation units SOU 3 and SOU 4 . Operation mode.

(3) 제3 동작 모드(Mode3) : 제1 제어 유닛(CU1)이 제1, 2 프로그램 메모리(M1, M2)와 제1, 2 SIMD 연산 유닛(SOU1, SOU2)을 이용하여 연산을 수행하는 한편, 제3 제어 유닛(CU3)이 제3 프로그램 메모리(M3)와 제3 SIMD 연산 유닛(SOU3)을 이용하여 연산을 수행하고, 제4 제어 유닛(CU4)이 제4 프로그램 메모리(M4)와 제4 SIMD 연산 유닛(SOU4)을 이용하여 연산을 수행하는 동작 모드이다.(3) Third operation mode Mode3: The first control unit CU 1 uses the first and second program memories M 1 and M 2 and the first and second SIMD calculation units SOU 1 and SOU 2 . The third control unit CU 3 performs the calculation using the third program memory M 3 and the third SIMD calculation unit SOU 3 , and performs the fourth control unit CU 4 . The operation mode is performed by using the fourth program memory M 4 and the fourth SIMD calculation unit SOU 4 .

(4) 제4 동작 모드(Mode4) : 제1 제어 유닛(CU1)이 제1 프로그램 메모리(M1)와 제1 SIMD 연산 유닛(SOU1)을 이용하여 연산을 수행하고, 제2 제어 유닛(CU2)이 제2 프로그램 메모리(M2)와 제2 SIMD 연산 유닛(SOU2)을 이용하여 연산을 수행하는 한편, 제3 제어 유닛(CU3)이 제3, 4 프로그램 메모리(M3, M4)와 제3, 4 SIMD 연산 유닛(SOU3, SOU4)을 이용하여 연산을 수행하는 동작 모드이다. (4) Fourth operation mode Mode4: The first control unit CU 1 performs a calculation using the first program memory M 1 and the first SIMD calculation unit SOU 1 , and the second control unit The CU 2 performs an operation using the second program memory M 2 and the second SIMD calculation unit SOU 2 , while the third control unit CU 3 performs the third and fourth program memories M 3. , M 4 ) and the third and fourth SIMD calculation units SOU 3 and SOU 4 .

(5) 제5 동작 모드(Mode5) : 제1 내지 제4 제어 유닛(CU4)이 제1 내지 제4 프로그램 메모리(M1~M4)와 제1 내지 제4 SIMD 연산 유닛(SOU1~SOU4) 각각을 이용하여 연산을 수행하는 동작 모드이다.(5) Fifth operation mode (Mode5): The first to fourth control units CU 4 include the first to fourth program memories M 1 to M 4 and the first to fourth SIMD calculation units SOU 1 to. SOU 4 ) An operation mode in which operations are performed using each.

한편, 제1 내지 제4 제어 유닛(CU4)에서 해당 연산 수행이 완료되면(S323, S333, S348, S353), 제어권은 다시 제어권을 할당한 대상으로 회수된다(S304, S319, S321, S346). 이 때, 각 제어 유닛의 제어권의 범위를 변경하는 것도 가능하다. 예를 들어, 제1 제어 유닛(CU1)이 제2 제어 유닛(CU2)의 제어권을 회수한 후 제3 제어 유닛(CU3)에게 제2 프로그램 메모리(M2)와 제2 SIMD 연산 유닛(SOU2)에 대한 제어권을 더 할당하는 것도 가능하다. On the other hand, when the operation is completed in the first to fourth control units (CU 4 ) (S323, S333, S348, S353), the control right is recovered to the target to which the control right is allocated again (S304, S319, S321, S346). . At this time, it is also possible to change the range of the control right of each control unit. For example, after the first control unit CU 1 recovers the control right of the second control unit CU 2 , the second control unit CU 3 receives the second program memory M 2 and the second SIMD calculation unit. It is also possible to assign more control over (SOU 2 ).

이와 같이, 본 발명에서는 병렬로 구성된 SIMD 연산 유닛을 그룹화하여, 필요에 따라 하나의 제어 유닛에 의해 전체 SIMD 연산 유닛을 하나의 명령으로 제어하거나, 또는 각 제어 유닛에 의해 SIMD 연산 유닛별로 다른 명령으로 제어한다. As described above, in the present invention, a group of SIMD computation units configured in parallel are grouped to control the entire SIMD computation unit with one command by one control unit, or different instructions for each SIMD computation unit by each control unit, as necessary. To control.

즉, 본 발명에서는 다양한 연산을 SIMD 연산 유닛별로 수행해야 할 경우에는 제어권을 세분화하여 연산을 수행하도록 함으로써, 연산 시간을 단축하여 연산 효율을 높일 수 있다. 또한, 세분화된 제어가 필요 없는 경우에는 제어권을 회수하여 가능한 적은 프로그램 메모리와 SIMD 연산 유닛을 이용하여 연산을 수행하도록 함으로써, 연산을 위한 메모리와 전력 소모를 줄일 수 있다. 따라서, 본 발명의 다중 SIMD 프로세서를 이용한 연산 방법에 의하면, 멀티미디어 데이터 처리에 필요한 다양한 구조의 연산에 대한 효율을 높일 수 있는 장점이 있다.That is, in the present invention, when it is necessary to perform various operations for each SIMD calculation unit, the control right is subdivided to perform the calculation, thereby reducing the computation time and increasing the computational efficiency. In addition, when the granular control is not necessary, the control right is recovered to perform the operation using as few program memories and SIMD calculation units as possible, thereby reducing memory and power consumption for the calculation. Therefore, according to the calculation method using the multiple SIMD processor of the present invention, there is an advantage to increase the efficiency for the calculation of the various structures required for multimedia data processing.

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았으며, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far, the present invention has been described with reference to the preferred embodiments, and those skilled in the art to which the present invention belongs may be embodied in a modified form without departing from the essential characteristics of the present invention. You will understand. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.

도 1a는 종래의 SIMD 구조의 프로세서를 나타낸 블록도이다.1A is a block diagram illustrating a processor of a conventional SIMD structure.

도 1b는 종래의 MIMD 구조의 프로세서를 나타낸 블록도이다.1B is a block diagram illustrating a processor of a conventional MIMD structure.

도 1c는 종래의 다중 SIMD 구조의 프로세서를 나타낸 블록도이다.1C is a block diagram illustrating a processor of a conventional multiple SIMD structure.

도 1d는 종래의 멀티모드 구조의 프로세서를 나타낸 블록도이다.1D is a block diagram illustrating a processor of a conventional multimode architecture.

도 2는 본 발명의 일 실시예에 따른 다중 SIMD 프로세서를 나타낸 블록도이다.2 is a block diagram illustrating a multiple SIMD processor according to an embodiment of the present invention.

도 3은 본 발명에 따른 다중 SIMD 프로세서를 이용한 연산 방법을 나타낸 흐름도이다.3 is a flowchart illustrating a calculation method using multiple SIMD processors according to the present invention.

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

HC : 호스트 제어부HC: host control unit

CU1 ~ CU4 : 제1 내지 제4 제어 유닛CU 1 to CU 4 : first to fourth control units

M1 ~ M4 : 제1 내지 제4 프로그램 메모리M 1 ~ M 4 First to fourth program memories

SOU1 ~ SOU4 : 제1 내지 제4 SIMD 연산 유닛SOU 1 SOU 4 : First to fourth SIMD calculation units

Claims (10)

연산의 종류에 따라 각 제어 유닛의 제어권을 할당하는 호스트 제어부;A host controller for allocating a control right for each control unit according to the type of operation; 적어도 하나의 명령이 각각 저장되어 있는 제1 내지 제N 프로그램 메모리;First to N-th program memories, each of which stores at least one instruction; 상기 호스트 제어부를 통해 할당된 제어권에 따라 상기 프로그램 메모리로부터 명령을 읽어 해당 SIMD 연산 유닛으로 전달하는 제1 내지 제N 제어 유닛;First to N-th control units that read a command from the program memory and transfer the command to the SIMD operation unit according to a control right assigned through the host controller; 상기 제어 유닛으로부터 전달받은 명령에 따른 연산을 수행하는 제1 내지 제N SIMD 연산 유닛; 및First to N-th SIMD calculation units that perform calculations according to instructions received from the control unit; And 상기 각 SIMD 연산 유닛간의 데이터 교환을 위한 데이터 버스를 포함하는 것을 특징으로 하는 멀티미디어 데이터 처리를 위한 다중 SIMD 프로세서.And a data bus for exchanging data between the SIMD computing units. 제 1항에 있어서, The method of claim 1, 상기 각 제어 유닛은 연산의 종류에 따라 상기 할당된 제어권을 분할하여 다른 제어 유닛에 다시 할당하는 것을 특징으로 하는 멀티미디어 데이터 처리를 위한 다중 SIMD 프로세서.Wherein each control unit divides the assigned control right according to the type of operation and reassigns it to another control unit. 제 1항에 있어서, The method of claim 1, 상기 각 제어 유닛은 연산의 종류에 따라 상기 제1 내지 제N 프로그램 메모리 및 상기 제1 내지 제N SIMD 연산 유닛의 전체 또는 일부를 사용하여 연산이 수행되도록 하는 것을 특징으로 하는 멀티미디어 데이터 처리를 위한 다중 SIMD 프로 세서.Each control unit is configured to perform the calculation using all or a part of the first to N-th program memory and the first to N-th SIMD calculation unit according to the type of operation. SIMD processor. 제 3항에 있어서,The method of claim 3, wherein 상기 각 제어 유닛은 연산의 종류에 따라 상기 제1 내지 제N 프로그램 메모리 중 어느 하나의 프로그램 메모리로부터 하나의 명령을 읽어 해당 SIMD 연산 유닛에 전달하여 상기 해당 SIMD 연산 유닛에 속한 연산 유닛들만 동일한 연산을 수행하도록 하는 것을 특징으로 하는 멀티미디어 데이터 처리를 위한 다중 SIMD 프로세서.Each control unit reads one instruction from one of the first to N-th program memories and transfers the instruction to the corresponding SIMD operation unit so that only the operation units belonging to the corresponding SIMD operation unit perform the same operation. And multiple SIMD processors for multimedia data processing. 제 3항에 있어서,The method of claim 3, wherein 상기 각 제어 유닛은 연산의 종류에 따라 상기 제1 내지 제N 프로그램 메모리로부터 N개의 명령을 각각 읽어 상기 제1 내지 제N SIMD 연산 유닛에 각각 전달하여 상기 각 SIMD 연산 유닛별로 동시에 각각 다른 연산을 수행하도록 하는 것을 특징으로 하는 멀티미디어 데이터 처리를 위한 다중 SIMD 프로세서.Each control unit reads N instructions from the first to N-th program memories and transfers them to the first to N-th SIMD computation units, respectively, according to the type of computation, to perform different operations simultaneously for each of the SIMD computation units. Multiple SIMD processor for processing multimedia data, characterized in that. (a) 호스트 제어부에서 연산의 종류에 따라 제어권 할당이 필요한지를 확인하여 제어권 할당이 필요한 경우 각 제어 유닛에게 제어권을 할당하는 단계;(a) checking, by the host controller, whether control right assignment is necessary according to the type of operation and allocating control right to each control unit when control right assignment is required; (b) 상기 각 제어 유닛에서 상기 할당된 제어권에 따라 제1 내지 제N 프로그램 메모리로부터 적어도 하나의 명령을 읽어 제1 내지 제N SIMD 연산 유닛 중 해당 SIMD 연산 유닛으로 전달하는 단계; 및(b) reading at least one command from the first to N-th program memories according to the assigned control right in each control unit and transferring the at least one command to a corresponding SIMD calculation unit among the first to N-th SIMD calculation units; And (c) 상기 각 SIMD 연산 유닛에서 상기 각 제어 유닛으로부터 전달받은 명령에 따른 연산을 수행하는 단계를 포함하는 것을 특징으로 하는 다중 SIMD 프로세서를 이용한 연산 방법.and (c) performing the operation according to the command received from each control unit in each SIMD operation unit. 제 6항에 있어서, 상기 (b) 단계에서,The method of claim 6, wherein in step (b), 상기 각 제어 유닛에서 연산 도중에 분할 연산이 필요한지를 확인하여 분할 연산이 필요한 경우 다른 제어 유닛에게 자신의 제어권을 분할하여 할당하는 단계를 더 포함하는 것을 특징으로 하는 다중 SIMD 프로세서를 이용한 연산 방법.And checking whether the division operation is necessary during the operation in each of the control units, and dividing and assigning the control right to the other control unit when the division operation is required. 제 6항에 있어서, 상기 (b) 단계에서,The method of claim 6, wherein in step (b), 상기 각 제어 유닛에서 연산의 종류에 따라 상기 제1 내지 제N 프로그램 메모리 및 상기 제1 내지 제N SIMD 연산 유닛의 전체 또는 일부를 사용하여 연산이 수행되도록 하는 단계를 더 포함하는 것을 특징으로 하는 다중 SIMD 프로세서를 이용한 연산 방법.And causing the operation to be performed using all or part of the first to N-th program memory and the first to N-th SIMD calculation units according to the type of operation in each control unit. Operation method using SIMD processor. 제 8항에 있어서, 상기 (b) 단계에서,The method of claim 8, wherein in step (b), 상기 각 제어 유닛에서 연산의 종류에 따라 상기 제1 내지 제N 프로그램 메모리 중 어느 하나의 프로그램 메모리로부터 하나의 명령을 읽어 해당 SIMD 연산 유닛에 전달하여 상기 해당 SIMD 연산 유닛에 속한 연산 유닛들만 동일한 연산을 수행하도록 하는 단계를 더 포함하는 것을 특징으로 하는 다중 SIMD 프로세서를 이 용한 연산 방법.According to the type of operation in each control unit, one instruction is read from one of the first to N-th program memories and transferred to the corresponding SIMD operation unit, so that only operation units belonging to the corresponding SIMD operation unit perform the same operation. Comprising the step of performing further comprising using a multiple SIMD processor. 제 8항에 있어서, 상기 (b) 단계에서,The method of claim 8, wherein in step (b), 상기 각 제어 유닛에서 연산의 종류에 따라 상기 제1 내지 제N 프로그램 메모리로부터 N개의 명령을 각각 읽어 상기 제1 내지 제N SIMD 연산 유닛에 각각 전달하여 상기 각 SIMD 연산 유닛별로 동시에 각각 다른 연산을 수행하도록 하는 단계를 더 포함하는 것을 특징으로 하는 다중 SIMD 프로세서를 이용한 연산 방법.Each control unit reads N instructions from the first through N-th program memories, respectively, and transfers the respective instructions to the first through N-th SIMD computation units, respectively, to perform different operations for each SIMD computation unit at the same time. Comprising the step of further comprising the operation method using a multiple SIMD processor.
KR1020070122575A 2007-11-29 2007-11-29 Multiple simd processor for multimedia data processing and operating method using the same KR20090055765A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070122575A KR20090055765A (en) 2007-11-29 2007-11-29 Multiple simd processor for multimedia data processing and operating method using the same
US12/174,988 US20090144523A1 (en) 2007-11-29 2008-07-17 Multiple-simd processor for processing multimedia data and arithmetic method using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070122575A KR20090055765A (en) 2007-11-29 2007-11-29 Multiple simd processor for multimedia data processing and operating method using the same

Publications (1)

Publication Number Publication Date
KR20090055765A true KR20090055765A (en) 2009-06-03

Family

ID=40676970

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070122575A KR20090055765A (en) 2007-11-29 2007-11-29 Multiple simd processor for multimedia data processing and operating method using the same

Country Status (2)

Country Link
US (1) US20090144523A1 (en)
KR (1) KR20090055765A (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100960148B1 (en) * 2008-05-07 2010-05-27 한국전자통신연구원 Data processing circuit
GB0809189D0 (en) 2008-05-20 2008-06-25 Aspex Semiconductor Ltd Improvements relating to single instruction multiple data (SIMD) architectures
GB0907559D0 (en) * 2009-05-01 2009-06-10 Optos Plc Improvements relating to processing unit instruction sets
CN103544114B (en) * 2013-10-12 2016-01-13 上海柯斯软件股份有限公司 Based on many M1 card control system and the control method thereof of single CPU card

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002196924A (en) * 2000-12-27 2002-07-12 Fujitsu Ltd Device and method for controlling processor
US6895497B2 (en) * 2002-03-06 2005-05-17 Hewlett-Packard Development Company, L.P. Multidispatch CPU integrated circuit having virtualized and modular resources and adjustable dispatch priority
US20070083735A1 (en) * 2005-08-29 2007-04-12 Glew Andrew F Hierarchical processor

Also Published As

Publication number Publication date
US20090144523A1 (en) 2009-06-04

Similar Documents

Publication Publication Date Title
CN109213723B (en) Processor, method, apparatus, and non-transitory machine-readable medium for dataflow graph processing
US10445234B2 (en) Processors, methods, and systems for a configurable spatial accelerator with transactional and replay features
JP3101560B2 (en) Processor
US9606797B2 (en) Compressing execution cycles for divergent execution in a single instruction multiple data (SIMD) processor
US5664214A (en) Parallel processing computer containing a multiple instruction stream processing architecture
US9830156B2 (en) Temporal SIMT execution optimization through elimination of redundant operations
EP0450658B1 (en) Parallel pipelined instruction processing system for very long instruction word
CN1991768B (en) Instruction set architecture-based inter-sequencer communicating with a heterogeneous resource
EP0901659B1 (en) Parallel processor with redundancy of processor pairs and method
US8392669B1 (en) Systems and methods for coalescing memory accesses of parallel threads
WO1994003860A1 (en) Massively parallel computer including auxiliary vector processor
JPH0916471A (en) Processor
KR20110050514A (en) Dynamic utilization of power-down modes in multi-core memory modules
Khairy et al. A survey of architectural approaches for improving GPGPU performance, programmability and heterogeneity
CN102279818A (en) Vector data access and storage control method supporting limited sharing and vector memory
US10152328B2 (en) Systems and methods for voting among parallel threads
KR20090055765A (en) Multiple simd processor for multimedia data processing and operating method using the same
EP1623318B1 (en) Processing system with instruction- and thread-level parallelism
US8413151B1 (en) Selective thread spawning within a multi-threaded processing system
KR100463642B1 (en) Apparatus for accelerating multimedia processing by using the coprocessor
KR20080083417A (en) Configuration cache capable low power consumption and reconfigurable processing system including the configuration cache therein
US6119220A (en) Method of and apparatus for supplying multiple instruction strings whose addresses are discontinued by branch instructions
CN116635841A (en) Near memory determination of registers
JP4060960B2 (en) Cache storage
CN110716750A (en) Method and system for partial wavefront combining

Legal Events

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