KR20060060689A - 병렬 처리 어레이 및 데이터 처리 방법 - Google Patents

병렬 처리 어레이 및 데이터 처리 방법 Download PDF

Info

Publication number
KR20060060689A
KR20060060689A KR1020067003066A KR20067003066A KR20060060689A KR 20060060689 A KR20060060689 A KR 20060060689A KR 1020067003066 A KR1020067003066 A KR 1020067003066A KR 20067003066 A KR20067003066 A KR 20067003066A KR 20060060689 A KR20060060689 A KR 20060060689A
Authority
KR
South Korea
Prior art keywords
data
multiplexer
storage element
processing
index
Prior art date
Application number
KR1020067003066A
Other languages
English (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 코닌클리즈케 필립스 일렉트로닉스 엔.브이.
Publication of KR20060060689A publication Critical patent/KR20060060689A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • 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
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/32Merging, i.e. combining data contained in ordered sequence on at least two record carriers to produce a single carrier or set of carriers having all the original data in the ordered sequence merging methods in general
    • 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
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Image Processing (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)
  • Use Of Switch Circuits For Exchanges And Methods Of Control Of Multiplex Exchanges (AREA)

Abstract

단일 명령 다중 데이터(SIMD) 등의 병렬 처리 어레이의 일부를 형성하는 처리 소자(1)는, 논리 연산 유닛(ALU)(3), 멀티플렉서(MUX)(5), 누산기(ACCU)(7) 및 플래그 레지스터(FLAG)(9)를 구비한다. ALU는, 처리 어레이에 있는 모든 처리 소자들에 의해 수신되는 공통 명령에 의해서 동작하도록 구성된다. 처리 소자(1)는, 저장 소자(SE)(11)를 추가로 포함하고, 상기 저장 소자는, 룩업 테이블 동작 및 로컬 계수 데이터 저장 동작 등의, 처리 소자(1)에서의 로컬 커스터마이즈드(customized)(예를 들어, 데이터 의존) 처리의 과정을 지원한다.

Description

병렬 처리 어레이 및 데이터 처리 방법{PARALLEL PROCESSING ARRAY}
본 발명은, 복수의 처리 소자(processing element: PE)를 갖는 병렬처리 어레이, 예를 들어, 단일 명령 다중 데이터(single instruction multiple data: SIMD) 처리 어레이에 관한 것이다. 특히, 본 발명은 데이터 의존 처리 동작을 취급할 때 어레이의 효율을 향상시키기 위해 채택되는 병렬 처리 어레이에 관한 것이다.
SIMD 처리 어레이에서, 어레이 내의 각 처리 소자(PE)는 공통 명령 스트림을 통해서 동일한 명령을 수신하고 그 처리 소자 특유의 로컬 데이터에 의거해서 수신된 명령을 실행한다. 따라서 병렬 처리 어레이는 동일한 동작들을 다중 데이터에 대하여 동시에 실행하는, 매우 반복이 잦은 태스크들을 실행하기에 적절하다. 따라서, SIMD는, 영역 효율이 좋고 확대 축소가 가능한 저소비 구현을 제공한다. SIMD는 데이터 및 데이터 처리에 있어서의 잦은 반복을 포함하는 애플리케이션에 적절하지만, 데이터 의존 처리 조작에는 그다지 적절하지 않다.
예를 들어, 비디오 처리(예를 들어, 인터레이스(interlace) 해제, 잡음 감 소, 수평의 동적 피킹(peaking)) 시, 대부분의 동작들은 어레이의 모든 데이터 소자에 대하여 정확하게 일치하므로 SIMD 어레이를 효율적으로 이용할 수 있다. 하지만, 어레이 내에서의 데이터의 위치에 의거한 다른 계수들을 갖는, 룩업 테이블 동작이나 승산 등의 데이터 의존 처리 동작들은 SIMD 처리 어레이를 효율적으로 이용하지 못한다.
도 1은 지탈(Xetal) SIMD 처리 아키텍처(지탈은 디지털 비디오 카메라용 저전력 병렬 처리기이다) 내에 있는 전형적인 처리 소자(PE)(1)의 개략도를 나타낸다. 처리 소자(1)는 논리 연산 유닛(arithmetic logic unit: ALU)(3), 멀티플렉서(MUX)(5), 누산기(ACCU)(7) 및 플래그 레지스터(FLAG)(9)를 포함한다. 처리 소자(1)는 방송 명령(10)을 수신하는데, 그 방송 명령은 어레이(도시 안 함)에 있는 다른 모든 처리 소자들에 의해서 수신될 것이다. ALU(3)는 로컬 데이터에 의거해서 상기 명령(10)을 처리한다. 누산기(7)는 그 최종 결과를 저장하기 위해서 제공되며, 그 최종 결과는 다음 명령(10)을 위한 피연산자로서 이용될 수 있다. 통상, ALU(3)는 가산기와 승산기를 구비하여, 비교, 가산, 감산, 데이터 가중치 부여 및 승산/누산 동작(multiply- accumulate operation)이 하나의 클록 사이클 내에 실행되게 한다. 통상, 플래그 레지스터(9)는 그 최종 결과에 따라서 설정되는 1 비트 플래그를 포함한다. 이 플래그 상태에 의거해서, 조건부 패스(pass) 명령이 가능하고, 이러한 명령은 알고리즘 내에서 제한된 형태의 데이터 의존성을 허용한다.
멀티플렉서(5)는 방송 명령(10)에 의해서 제어됨을 알려져 있다. 지탈 아키텍처에서, 멀티플렉서(5)는 ALU(3)에 선택적으로 연결되는 다수의 입력 신호를 수 신한다. 예를 들어, 멀티플렉서(5)는 라인 메모리(6)의 일부로부터의 데이터 및 좌우 통신 채널들(8, 12)로부터의 데이터를 수신한다. 멀티플렉서(5)는 계수 데이터(coeff)(16)도 수신한다. 이와 샅이, 누산기(7)로부터의 ACCU 신호(14)는 연산을 위한 하나의 피연산자로서 이용되고, 멀티플렉서(5)는 제2의 피연산자를 선택한다. 따라서, 제2의 피연산자는 좌측 통신 채널(8), 우측 통신 채널(12), 라인 메모리(6), 혹은 계수 입력(16)으로부터의 고정된 수로부터 선택될 수 있다.
이러한 종류의 프로세서에서는, 룩업 테이블에서 값을 검색하거나 동일한 어레이에 있는 상이한 데이터 요소들을 가지고 상이한 동작을 실행하는 등의 데이터 의존 처리를 실행하는 것은 가능하지 않거나 아주 오랜 시간과 복잡한 반복을 필요로 하기 때문에, SIMD 처리 어레이의 효율이 떨어진다.
예를 들어, 10개의 요소의 룩업 테이블로부터 값을 검색한 후에 승산을 하는 것은 도 1에 나타낸 지탈 아키텍처에서 40개의 동작을 필요로 한다. 지탈 명령 설정을 사용하는 구현은 아래에 나와 있는데, 여기서, 룩업을 위해서 상기 값은 하한과 비교되어야 한다.
r0은 원하는 어레이의 데이터 요소들을 갖는 것으로 가정한다.
1. accu=r0;--상기 데이터를 누산기로 이동시킨다.
2. accu=MAX (accu, lower_limit0); --r0의 최대값과 lower_limit0을 찾아서 accu에 저장한다.
3. accu=accu*coeffO;--이것은 그 인터벌에서 연산이다.
4. r1=PASSC (accu, r1);--r0이 그 영역에 있었으면 그 결과를 유지하고, 그렇지 않으면 r1을 다음 인터벌에 복사한다.
상술한 바와 같이, 룩업 테이블(LUT)에 있는 모든 엔트리, 예를 들어, 상기 예에서는 10개의 엔트리에 대하여, 상기 4개의 모든 동작들이 실행된다. 이것은 10개의 요소(LUT)에 대하여 40개의 동작이 필요함을 의미한다.
본 발명의 목적은 데이터 의존 처리를 실행할 때의 상기 단점들을 겪지 않는 병렬 처리 어레이를 제공하는 것이다.
본 발명의 제1 실시예에 따르면, 공통 명령을 수신하는 복수의 처리 소자(PE)들을 포함하는 병렬 처리 어레이로서,
상긴 공통 명령을 수신하는 멀티플렉서와,
상기 수신된 명령을 누산기 및 플래그 레지스터와 관련하여 처리하는, 상기 멀티플렉서와 연결된 논리 연산 유닛을 포함하고,
상기 처리 어레이의 적어도 하나의 처리 소자가 적어도 하나의 저장 위치를 갖는 저장 소자를 추가로 포함하며, 상기 저장 소자는 상기 수신된 명령에 의해서 간접적으로 어드레스 가능하도록 구성되어, 데이터 종속 동작들이 실행될 수 있는 것을 특징으로 하는 병렬 처리 어레이를 제공한다.
상기와 같이 규정된 처리 어레이는, 데이터 의존 처리 동작들을 실행할 때, 종래 처리 어레이보다 효율적이라는 장점을 갖는다.
본 발명의 또 다른 양상에 따르면, 공통 명령을 수신하는, 복수의 처리 소자(PE)를 포함하는 병렬 처리 어레이로서, 상기 공통 명령을 수신하는 멀티플렉서와, 상기 멀티플렉서에 연결되며, 상기 수신된 명령을 누산기 및 플래그 레지스터와 협조하여 처리하는 논리 연산 유닛을 구비하는 병렬 처리 어레이에서의 데이터 처리 방법으로서, 상기 처리 어레이 내의 상기 처리 소자들 중 적어도 하나에, 적어도 하나의 저장 위치를 갖는 저장 소자를 제공하는 스텝과, 상기 수신된 명령에 의해 간접적으로 어드레스 가능하게 상기 저장 소자를 구성하는 스텝과, 상기 저장 소자를 사용하는 데이터 의존 동작을 처리하는 스텝을 포함하는 데이터 처리 방법이 제공된다.
본 발명을 더욱 잘 이해하게 하고, 어떻게 효과를 발휘하는지를 보다 명확하게 나타낼 수 있도록, 첨부 도면을 참조한다.
도 1은 종래 기술에 따른 병렬 처리 어레이의 처리 소자들의 개략도이다.
도 2는 본 발명에 따른 병렬 처리 어레이의 처리 소자의 개략도이다.
도 2는 본 발명에 따른 처리 어레이의 처리 소자(1)를 나타낸다. 도 1에 나타낸 바와 같이, 처리 소자(1)는 논리 연산 유닛(ALU)(3), 멀티플렉서(MUX)(5), 누산기(ACCU)(7) 및 플래그 레지스터(FLAG)(9)를 구비한다. "종래" 처리, 예를 들어, 비 데이터 의존 처리 등의 상기 요소들의 동작은 도 1과 관련해서 위에서 설명한 바와 같다.
본 발명에 따르면, 처리 소자는 저장 소자(SE)(11)를 추가로 포함하고, 상기 저장 소자는 처리 소자(1)에서의 로컬 커스터마이즈드(customized)(예를 들어, 데이터 의존) 처리의 과정을 지원한다.
저장 소자(11)는 SEN에 대한 다수의 저장 위치(SE1)를 포함한다. 다수의 저장 위치는 특정 애플리케이션에 따라서 설계 처리에서 선택되며 소정의 정수일 수 있다. 저장 소자(11)는 멀티플렉서(15)를 통해서 입력 데이터(13)(멀티플렉서에 있는 데이터)를 수신한다. 멀티플렉서(15)는 누산기(7)의 출력으로부터 누산기 데이터(14) 및 처리 소자(1)의 계수 포트로부터의 계수 데이터(16)(coeff)를 수신하도록 연결된다. 멀티플렉서(15)는, 방송 명령(10)의 일부로부터 비롯되거나 그 일부를 형성하는 제어 신호(17)의 제어 하에서, 누산기 데이터(14)나 계수 데이터(16)를 저장 소자(11)에 입력 데이터(13)로서 선택적으로 제공하도록 배치된다.
저장 요소(11)는 멀티플렉서(21)의 출력에 연결된 인덱스 신호(19)도 수신한다. 멀티플렉서(21)는 누산기(7)로부터의 누산기 데이터(14) 및 처리 소자(1)의 계수 포트로부터의 계수 데이터(16)(coeff)에도 연결된다. 멀티플렉서(21)는 제어 신호(17)에 의해서도 제어되는데, 상기 제어 신호는 방송 명령(10)의 일부로부터 유래되거나 그 일부를 형성한다. 저장 소자(11)로부터의(로부터 출력된) 출력 데이터(22)는 처리 소자(1)의 멀티플렉서(5)의 입력에 연결된다. 바람직하게는, 레지스터(23)(curr_se)는 저장 소자(11)의 출력과 멀티플렉서(15) 사이에 제공되며, 저장 소자(11)의 값을 저장을 위해 이용될 수 있으며, 이에 대해서는 애플리케이션에서 보다 자세하게 설명될 것이다.
다음으로, 도 2의 실시예의 동작에 대하여 어레이 내의 데이터마다의 상이한 계수와의 승산(또는 기타 연산)을 제공하는 각 PE에 상이한 계수들을 저장하는 것 및 모든 PE에 대하여 사용되는 명령이 동일하게 유지되더라도 룩업 테이블 동작을 수행하는 것과 관련해서 설명한다.
저장 소자(11)가 상이한 계수들을 저장하기 위해서 사용될 때, 계수 데이터(16)는 저장 소자 테이블을 위한 인덱스로서 사용되고, 누산기(7)나 라인 메모리로부터의 누산기 데이터(14)는 저장 소자(11) 내의 해당 저장 위치(SEY)에 저장된다. 다시 말해서, 멀티플렉서(15)는 입력 데이터(13)로서 누산기 데이터(14)를 저장 소자(11)에 전달하도록 제어되는 한편, 멀티플렉서(21)는 데이터가 저장되는 각 저장 위치(SEY)에 인덱스(19)로서의 계수 데이터(16)를 전달하도록 제어된다. 이것은 올바른 값들이 저장 소자(11) 내의 올바른 위치들(SE1 내지 SEN)에 저장될 수 있게 한다. 혹은, 원할 경우, 계수 데이터를 입력(13)에 적용하고 누산기 데이터를 인덱스(19)로서 사용함으로서 계수들을 저장할 수도 있다.
저장 소자(11)로부터의 값을 로드할 때, 상기와 유사한 방식으로, 계수 데이터(16)를 인덱스(19)로서 사용하여 저장 소자(11)의 각 저장 위치로부터의 값을 출력에 유용하게 만듦으로써, 누산기(7) 내의 데이터와의 승산이 실행될 수 있도록 한다. 다시 말해서, 저장 소자(11)로부터의 데이터를 로드할 때, 멀티플렉서(21) 를 인덱스(19)로서의 계수 데이터(16)를 저장 소자(11)에 대하여 전달하도록 배치함으로써, 저장 소자(11)로부터 각 출력 데이터(22)를 출력한다. 저장 소자(11)로부터의 출력 데이터는, 누산기(7)로부터의 데이터와의 승산을 위해서, 멀티플렉서(5)를 통해서 ALU(3)로 전달된다.
저장 소자를 각 PE내에서 룩업 테이블(LUT)로서 사용할 때, 저장 소자(11)에 올바른 값들(하한, 결과치)을 저장하기 위한 다수의 대안적인 접근법이 있다.
하나의 접근법은 계수 입력의 일부를 인덱스로서 사용하고 계수 입력의 나머지 부분을 저장될 값으로서 이용하는 것이다. 다시 말해서, 계수 데이터(16)의 일부가 저장 소자(11)에 대한 인덱스(19)로서 멀티플렉서(21)에 의해 전달되는 한편, 계수 데이터(16)의 나머지 부분이 저장될 값으로서 멀티플렉서(15)에 의해서 전달된다. 이러한 방법에는, 계수 데이터 신호의 폭을 증가시킨다고 하는 단점이 있긴 하지만, 하나의 사이클 내에 값들을 저장할 수 있다는 장점도 있다.
다른 접근법은, 누산기(7) 및 ALU(3) 중 적어도 하나의 도움을 받아서 어드레스나 인덱스(19)를 생성하여, 상이한 어드레스들의 생성을 가능하게 하고, 저장 명령에 따라 저장 소자(11)에 어드레스를 부여함으로써 PE들의 저장 소자들 내의 상이한 위치들에 동일한 값이 저장될 수 있게 함으로써, 계수 데이터(16)의 값을 저장 소자(11)의 각 저장 위치(SEY)에 저장한다. 이러한 배열에서는, 멀티플렉서(15)가 계수 데이터(16)를 전달하도록 배치되는 한편, 멀티플렉서(21)는 누산기(7) 및 ALU(3) 중 적어도 하나에 의해서 생성된 인덱스(19)를 제공한다. 이 접근법에 는 폭이 좁은 계수 데이터 신호를 필요로 한다는 장점이 있긴 하지만, 하나의 처리 동작을 추가적으로 더 필요로 한다는 단점이 있다.
저장 소자(11)로부터의 값을 로드하기 위해서, 누산기(7)의 값은 인덱스(19)로서 사용되고, 저장 소자(11)로부터의 룩업 값은 추가적인 이용을 위해서 레지스터(23)(curr_se)에 저장된다. 다시 말해서, 누산기(7)로부터의 누산기 데이터(14)는, 저장 소자(11)에 대한 인덱스(19)를 제공하기 위해서, 멀티플렉서(21)에 의해서 전달된다. 각 저장 위치(SEY)로부터의 해당 값은 저장 소자(11)의 출력 데이터(22)를 형성하고, 멀티플렉서(5)로 직접 전달되거나 이 후 사용을 위해서 레지스터(23)에 저장된다. 저주파수로 가동할 때 레지스터(23)(curr_se)는 하나의 사이클 내에서 동작을 실행하도록 회피될 수 있다.
상술한 본 발명은, 처리 소자들이 다음 방식 중 하나에 따라 동작할 수 있도록 하기 때문에, 개선된 프로세서 어레이를 제공한다.
가) 모든 PE는 방송 명령에 의거해서 동일한 동작(즉, "정상"동작)을 실행한다.
나) PE는 처리될 데이터에 의거한 상이한 계수를 사용해서 동일 방송 명령을 실행한다.
다) PE는 모든 PE들이 LUT 동작을 하기 위한 방송 시 룩업 테이블에서 설명한 기능을 실행한다.
비디오 처리 애플리케이션에서는, 예를 들어, 대부분이 기능들이 라인 기반 처리(예를 들어, 인터레이스 해제, 잡음 감소, 수평의 동적 피킹)상에서 실행되거나 라인 기반 처리(예를 들어, 2ㅧ2의 블록 사이즈를 갖는 업컨버터가 2ㅧ2 블록들을 두 개의 라인으로서 누산하고 라인 기반 처리를 실행함으로써 라인 기반으로 처리될 수 있다)에 관해서 표현될 수 있다. 이것은 대부분의 동작들이 어레이 내의 모든 데이터 요소들에 대하여 정확하게 일치하고, 따라서 상기 (가)에 기술된 "정상" PE 동작을 사용해서 실행될 수 있음을 의미한다.
그러나, 어레이 내의 데이터 위치에 의거한 상이한 계수들과의 승산(또는 기타 피연산자들) 등의 태스크를 실행할 대, 본 발명에 따른 처리 소자는 상기 (나)에 기술된 바와 같이 동작하도록 구성된다.
마찬가지로, LUT 동작에 대하여, 처리 소자는 상기 (다)에 기술된 바와 같이 동작하도록 구성된다.
본 발명은, SIMD 처리 특성들을 이용하는데도 불구하고 데이터 의존 처리 동작들이 실행될 때 보다 효과적인 동작을 제공한다고 하는 장점을 갖는다. 예를 들어, 본 발명에 있어서 룩업 값과의 승산 처리는, 40개의 명령을 필요로 하는 상술한 방법의 대략 5%에 해당하는 (LUT 동작용 구현 선택에 의거한) 대략 두 가지 동작을 취할 것이다.
따라서, 본 발명은, 처리 소자마다에, 룩업 테이블 동작 및 모든 PE에 대한 동일한 명령에 의해 이용될 수 있는 상이한 계수들에 액세스하는 동작 등의 데이터 의존 동작에 이용될 수 있는 직접 어드레스 가능한 메모리를 제공한다.
상호 접속 면적이 이러한 칩 상에서 지배적인 요인이기 때문에 저장 소자로 인해 처리 소자를 위해 요구되는 증가된 면적은 해로운 요인이 아님이 알려져 있다. 따라서, 저장 소자들을 논리 산술 유닛(ALU) 근처에 배치함으로써, 통신 네트워크의 오버로딩(즉, 배선 비용)을 더욱 회피할 수 있다.
상기 바람직한 실시예를 비디오 처리와 관련해서 설명하였지만, 당업자라면, 본 발명에 따른 처리 소자는 기타 기능을 위해서도 사용될 수 있음을 알 수 있다.
게다가, 상기 바람직한 실시예를 지탈 아키텍처와 관련해서 설명하였지만, 본 발명은 다른 형태의 병렬 처리 아키텍처에도 마찬가지로 적용가능하다.

Claims (32)

  1. 복수의 처리 소자(PE)를 포함하는 병렬 처리 어레이에 있어서,
    각각의 처리 소자는,
    공통 명령을 수신하고,
    상기 공통 명령을 수신하는 멀티플렉서와,
    상기 멀티플렉서에 연결되며, 상기 수신된 명령을 누산기 및 플래그 레지스터와 협조하여 처리하는 논리 연산 유닛을 구비하며,
    상기 처리 어레이 내의 상기 처리 소자들 중 하나 이상은 적어도 하나의 저장 위치를 갖는 저장 소자 - 상기 저장 소자는 상기 수신된 명령에 의해 간접적으로 어드레스 가능하도록 구성되어, 데이터 의존 동작의 처리가 실행될 수 있게 함 - 를 더 포함하는
    병렬 처리 어레이.
  2. 제 1 항에 있어서,
    상기 저장 소자는,
    저장될 데이터를 수신하기 위한 입력 데이터 포트와,
    상기 저장 소자 내의 저장 위치를 어드레스하기 위한 인덱스 신호와,
    상기 저장 소자로부터의 데이터를 출력하기 위한 출력 포트를 포함하는
    병렬 처리 어레이.
  3. 제 2 항에 있어서,
    상기 저장 소자의 상기 입력 데이터 포트는 입력 멀티플렉서 - 상기 입력 멀티플렉서는 누산기 데이터나 계수 데이터를 전달하도록 구성됨 - 로부터의 데이터를 수신하도록 연결되는
    병렬 처리 어레이.
  4. 제 2 항 또는 제 3 항에 있어서,
    상기 인덱스 신호는 인덱스 멀티플렉서 - 상기 인덱스 멀티플렉서는 누산기 데이터나 계수 데이터, 혹은 수신된 명령의 일부를 선택적으로 전달하도록 구성됨 - 로부터 수신되는
    병렬 처리 어레이.
  5. 제 3 항 또는 제 4 항에 있어서,
    상기 입력 멀티플렉서 및/또는 인덱스 멀티플렉서는 상기 수신된 명령에 의해서 제어되는
    병렬 처리 어레이.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 저장 소자는 처리될 상기 데이터에 의거한 계수를 상기 처리 소자에 제공하도록 구성되는
    병렬 처리 어레이.
  7. 제 6 항에 있어서,
    상기 입력 멀티플렉서는 계수 데이터 - 상기 계수 데이터는 상기 인덱스 신호에 의해서 규정된 저장 위치에 저장됨 - 를 저장할 때 누산기 데이터를 상기 저장 소자로 전달하도록 구성되는
    병렬 처리 어레이.
  8. 제 6 항에 있어서,
    상기 입력 멀티플렉서는 상기 인덱스 신호에 의해서 규정된 저장 위치에 저장될 계수 데이터를 상기 저장 소자로 전달하도록 구성되는
    병렬 처리 어레이.
  9. 제 7 항 또는 제 8 항에 있어서,
    상기 인덱스 신호는 상기 인덱스 멀티플렉서에 의해 수신된 계수 데이터에 의해서 규정되는
    병렬 처리 어레이.
  10. 제 7 항 또는 제 8 항에 있어서,
    상기 인덱스 신호는 상기 인덱스 멀티플렉서에 의해 수신된 누산기 데이터에 의해서 규정되는
    병렬 처리 어레이.
  11. 제 1 항 내지 제 10 항 중 어느 한 항에 있어서,
    상기 저장 소자는 상기 처리 소자에 로컬 룩업 테이블을 제공하도록 구성되는
    병렬 처리 어레이.
  12. 제 11 항에 있어서,
    상기 입력 멀티플렉서는 상기 인덱스 신호에 의해서 규정된 위치에 저장될 계수 데이터를 상기 저장 소자로 전달하도록 구성되는
    병렬 처리 어레이.
  13. 제 12 항에 있어서,
    상기 인덱스 신호는 상기 인덱스 멀티플렉서에 의해 수신된 누산기 데이터에 의해서 규정되는
    병렬 처리 어레이.
  14. 제 11 항에 있어서,
    상기 입력 멀티플렉서는 상기 저장 소자에 저장될 데이터로서 상기 계수 데이터의 제1 부분을 전달하도록 구성되고, 상기 인덱스 멀티플렉서는 상기 저장 어드레스를 규정하는 상기 인덱스 신호로서 상기 계수 데이터의 나머지 부분을 전달하도록 배치된
    병렬 처리 어레이.
  15. 제 1 항 내지 제 14 항 중 어느 한 항에 있어서,
    상기 저장 소자의 출력과 상기 멀티플렉서의 입력 사이에 데이터 저장용 레지스터를 더 포함하는
    병렬 처리 어레이.
  16. 제 1 항 내지 제 15 항 중 어느 한 항에 있어서,
    상기 처리 어레이는 단일 명령 다중 데이터(SIMD) 처리 어레이인
    병렬 처리 어레이.
  17. 복수의 처리 소자(PE)를 포함하는 병렬 처리 어레이에서, 각각의 처리 소자는, 공통 명령을 수신하고, 상기 공통 명령을 수신하는 멀티플렉서와, 상기 멀티플렉서에 연결되며, 상기 수신된 명령을 누산기 및 플래그 레지스터와 협조하여 처리하는 논리 연산 유닛을 구비하되, 상기 처리 어레이 내의 상기 처리 소자들 중 하나 이상은 적어도 하나의 저장 위치를 갖는 저장 소자 - 상기 저장 소자는 상기 수신된 명령에 의해 간접적으로 어드레스 가능하도록 구성되어, 데이터 의존 동작의 처리가 실행될 수 있게 함 - 를 더 포함하는 병렬 처리 어레이에서 데이터를 처리하는 방법에 있어서,
    상기 처리 어레이 내의 상기 처리 소자들 중 하나 이상의 처리 소자에 저장 소자 - 상기 저장 소자는 적어도 하나의 저장 위치를 가짐 -를 제공하는 단계와,
    상기 수신된 명령에 의해 간접적으로 어드레스 가능하도록 상기 저장 소자를 구성하는 단계와,
    상기 저장 소자를 사용하여 데이터 의존 동작을 처리하는 단계를 포함하는
    데이터 처리 방법.
  18. 제 17 항에 있어서,
    저장될 데이터를 수신하기 위해 상기 저장 소자에 입력 데이터 포트를 제공하는 단계와,
    상기 저장 소자 내의 저장 위치를 어드레스하기 위한 인덱스 신호를 제공하는 단계와,
    상기 저장 소자로부터 데이터를 출력하기 위한 출력 포트를 제공하는 단계를 더 포함하는
    데이터 처리 방법.
  19. 제 18 항에 있어서,
    상기 저장 소자의 상기 입력 데이터 포트를 연결하여 입력 멀티플렉서로부터의 데이터를 수신하는 단계와,
    누산기 데이터나 계수 데이터를 전달하도록 상기 입력 멀티플렉서를 구성하 는 단계를 더 포함하는
    데이터 처리 방법.
  20. 제 18 항 또는 제 19 항에 있어서,
    상기 인덱스 신호를 제공하기 위한 인덱스 멀티플렉서를 제공하는 단계와,
    누산기 데이터나 계수 데이터, 혹은 상기 수신된 명령의 일부를 선택적으로 전달하도록 상기 인덱스 멀티플렉서를 구성하는 단계를 더 포함하는
    데이터 처리 방법.
  21. 제 19 항 또는 제 20 항에 있어서,
    상기 입력 멀티플렉서 및/또는 인덱스 멀티플렉서를 상기 수신된 명령으로 제어하는 단계를 더 포함하는
    데이터 처리 방법.
  22. 제 17 항 내지 제 21 항 중 어느 한 항에 있어서,
    처리될 데이터에 의거한 계수를 상기 처리 소자에 제공하도록 상기 저장 소자를 구성하는 단계를 더 포함하는
    데이터 처리 방법.
  23. 제 22 항에 있어서,
    계수 데이터 - 상기 계수 데이터는 상기 인덱스 신호에 의해서 규정된 저장 위치에 저장됨 - 를 저장할 때 누산기 데이터를 상기 저장 소자에 전달하도록 상기 입력 멀티플렉서를 구성하는 스텝을 더 포함하는
    데이터 처리 방법.
  24. 제 22 항에 있어서,
    계수 데이터를 상기 저장 소자에 전달하도록 상기 입력 멀티플렉서를 구성하는 단계와,
    상기 인덱스 신호에 의해서 규정된 저장 위치에 상기 계수 데이터를 저장하는 단계를 더 포함하는
    데이터 처리 방법.
  25. 제 23 항 또는 제 24 항에 있어서,
    상기 인덱스 신호는 상기 인덱스 멀티플렉서에 의해 수신된 계수 데이터에 의해서 규정되는
    데이터 처리 방법.
  26. 제 23 항 또는 제 24 항에 있어서,
    상기 인덱스 신호는 상기 인덱스 멀티플렉서에 의해 수신된 누산기 데이터에 의해서 규정되는
    데이터 처리 방법.
  27. 제 17 항 내지 제 26 항 중 어느 한 항에 있어서,
    상기 처리 소자에 로컬 룩업 테이블을 제공하도록 상기 저장 소자를 구성하는 단계를 더 포함하는
    데이터 처리 방법.
  28. 제 27 항에 있어서,
    상기 입력 멀티플렉서는 상기 인덱스 신호에 의해 규정된 위치에 저장될 계수 데이터를 상기 저장 소자로 전달하도록 구성되는
    데이터 처리 방법.
  29. 제 28 항에 있어서,
    상기 인덱스 신호는 상기 인덱스 멀티플렉서에 의해 수신된 누산기 데이터에 의해서 규정되는
    데이터 처리 방법.
  30. 제 27 항에 있어서,
    상기 저장 소자에 저장될 데이터로서 상기 계수 데이터의 제1 부분을 전달하도록 상기 입력 멀티플렉서를 구성하는 단계와,
    상기 저장 어드레스를 규정하는 상기 인덱스 신호로서 상기 계수 데이터의 나머지 부분을 전달하도록 상기 인덱스 멀티플렉서를 배치하는 단계를 더 포함하는
    데이터 처리 방법.
  31. 제 17 항 내지 제 30 항 중 어느 한 항에 있어서,
    상기 저장 소자의 상기 출력과 상기 멀티플렉서의 상기 입력 사이에 데이터 저장용 레지스터를 제공하는 단계를 더 포함하는
    데이터 처리 방법.
  32. 제 17 항 내지 제 31 항 중 어느 한 항에 있어서,
    상기 처리 어레이는 단일 명령 다중 데이터(SIMD) 처리 어레이인
    데이터 처리 방법.
KR1020067003066A 2003-08-15 2004-08-03 병렬 처리 어레이 및 데이터 처리 방법 KR20060060689A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP03102550 2003-08-15
EP03102550.5 2003-08-15

Publications (1)

Publication Number Publication Date
KR20060060689A true KR20060060689A (ko) 2006-06-05

Family

ID=34178568

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067003066A KR20060060689A (ko) 2003-08-15 2004-08-03 병렬 처리 어레이 및 데이터 처리 방법

Country Status (9)

Country Link
US (1) US7725681B2 (ko)
EP (1) EP1656622B1 (ko)
JP (1) JP2007503039A (ko)
KR (1) KR20060060689A (ko)
CN (1) CN100472505C (ko)
AT (1) ATE362625T1 (ko)
DE (1) DE602004006516T2 (ko)
TW (1) TW200521702A (ko)
WO (1) WO2005017765A2 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7840630B2 (en) 2003-12-29 2010-11-23 Xilinx, Inc. Arithmetic logic unit circuit
US7860915B2 (en) 2003-12-29 2010-12-28 Xilinx, Inc. Digital signal processing circuit having a pattern circuit for determining termination conditions
US7870182B2 (en) 2003-12-29 2011-01-11 Xilinx Inc. Digital signal processing circuit having an adder circuit with carry-outs
US7882165B2 (en) 2003-12-29 2011-02-01 Xilinx, Inc. Digital signal processing element having an arithmetic logic unit
US7853634B2 (en) 2003-12-29 2010-12-14 Xilinx, Inc. Digital signal processing circuit having a SIMD circuit
US7865542B2 (en) 2003-12-29 2011-01-04 Xilinx, Inc. Digital signal processing block having a wide multiplexer
US7853636B2 (en) 2003-12-29 2010-12-14 Xilinx, Inc. Digital signal processing circuit having a pattern detector circuit for convergent rounding
US7853632B2 (en) 2003-12-29 2010-12-14 Xilinx, Inc. Architectural floorplan for a digital signal processing circuit
US7844653B2 (en) 2003-12-29 2010-11-30 Xilinx, Inc. Digital signal processing circuit having a pre-adder circuit
US7840627B2 (en) * 2003-12-29 2010-11-23 Xilinx, Inc. Digital signal processing circuit having input register blocks
US7849119B2 (en) 2003-12-29 2010-12-07 Xilinx, Inc. Digital signal processing circuit having a pattern detector circuit
EP1927056A2 (en) * 2005-09-05 2008-06-04 Koninklijke Philips Electronics N.V. Processor array with separate serial module
US7441099B2 (en) * 2006-10-03 2008-10-21 Hong Kong Applied Science and Technology Research Institute Company Limited Configurable SIMD processor instruction specifying index to LUT storing information for different operation and memory location for each processing unit
US7958179B2 (en) 2006-12-06 2011-06-07 Electronics And Telecommunications Research Institute Arithmetic method and device of reconfigurable processor
CN101035071B (zh) * 2007-04-16 2010-09-29 中国人民解放军国防科学技术大学 并行simd结构中条件数据路由方法
EP3537289B1 (en) * 2008-03-10 2021-04-21 Mobileye Vision Technologies Ltd. Enhanced look-up table signal processing
US8543635B2 (en) 2009-01-27 2013-09-24 Xilinx, Inc. Digital signal processing block with preadder stage
US8479133B2 (en) 2009-01-27 2013-07-02 Xilinx, Inc. Method of and circuit for implementing a filter in an integrated circuit
CN102651797A (zh) * 2011-02-25 2012-08-29 西安邮电学院 一种新型阵列视频信号处理单元结构
CN103235762B (zh) * 2013-04-19 2016-06-22 中国科学院自动化研究所 一种自索引寄存器文件堆装置
US9830150B2 (en) * 2015-12-04 2017-11-28 Google Llc Multi-functional execution lane for image processor
US10565494B2 (en) * 2016-12-31 2020-02-18 Via Alliance Semiconductor Co., Ltd. Neural network unit with segmentable array width rotator
US10586148B2 (en) * 2016-12-31 2020-03-10 Via Alliance Semiconductor Co., Ltd. Neural network unit with re-shapeable memory
US10565492B2 (en) * 2016-12-31 2020-02-18 Via Alliance Semiconductor Co., Ltd. Neural network unit with segmentable array width rotator

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4025771A (en) * 1974-03-25 1977-05-24 Hughes Aircraft Company Pipe line high speed signal processor
JPH0743698B2 (ja) 1985-04-08 1995-05-15 工業技術院長 並列デ−タ処理装置
EP0509055A4 (en) * 1990-01-05 1994-07-27 Maspar Computer Corp Parallel processor memory system
US5717947A (en) * 1993-03-31 1998-02-10 Motorola, Inc. Data processing system and method thereof
US5526501A (en) 1993-08-12 1996-06-11 Hughes Aircraft Company Variable accuracy indirect addressing scheme for SIMD multi-processors and apparatus implementing same
JPH0830577A (ja) 1994-07-15 1996-02-02 Mitsubishi Electric Corp Simdプロセッサ
US5689677A (en) * 1995-06-05 1997-11-18 Macmillan; David C. Circuit for enhancing performance of a computer for personal use
US6272615B1 (en) * 1997-05-02 2001-08-07 Texas Instruments Incorporated Data processing device with an indexed immediate addressing mode
CN100380313C (zh) * 1997-11-07 2008-04-09 博普斯公司 用于带有间接超长指令字处理部件至处理部件通信的有效同步mimd操作的方法和设备
JP2001273267A (ja) * 2000-03-27 2001-10-05 Ricoh Co Ltd Simd型プロセッサー、並列処理装置、画像処理装置、複写機、プリンター、ファクシミリ装置、スキャナー、並列処理方法、画像処理方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
DE10159283A1 (de) 2001-12-04 2003-06-12 Systemonic Ag Verfahren und Anordnung zur Adressgenerierung in einem Prozessor

Also Published As

Publication number Publication date
EP1656622A2 (en) 2006-05-17
EP1656622B1 (en) 2007-05-16
CN1836224A (zh) 2006-09-20
US20060253516A1 (en) 2006-11-09
WO2005017765A3 (en) 2005-04-21
WO2005017765A2 (en) 2005-02-24
DE602004006516T2 (de) 2008-01-17
CN100472505C (zh) 2009-03-25
ATE362625T1 (de) 2007-06-15
JP2007503039A (ja) 2007-02-15
US7725681B2 (en) 2010-05-25
DE602004006516D1 (de) 2007-06-28
TW200521702A (en) 2005-07-01

Similar Documents

Publication Publication Date Title
KR20060060689A (ko) 병렬 처리 어레이 및 데이터 처리 방법
US11456856B2 (en) Method of operation for a configurable number theoretic transform (NTT) butterfly circuit for homomorphic encryption
CN110383237B (zh) 可重新配置的矩阵乘法器系统和方法
US6530010B1 (en) Multiplexer reconfigurable image processing peripheral having for loop control
EP0976059B1 (en) A field programmable processor
US6094726A (en) Digital signal processor using a reconfigurable array of macrocells
US6941446B2 (en) Single instruction multiple data array cell
US9665540B2 (en) Video decoder with a programmable inverse transform unit
US20130212353A1 (en) System for implementing vector look-up table operations in a SIMD processor
JP2006519548A (ja) プログラム可能な論理セルのアレイをもつ電子回路
US5960211A (en) Data formatting method and apparatus for a data processing array
KR19990077230A (ko) 이미지-처리 프로세서
US20060212613A1 (en) Data processor apparatus
JP3975231B2 (ja) 配列されたsimdのための汎用レジスタファイルアーキテクチャ
JP3593439B2 (ja) 画像処理装置
US20080229063A1 (en) Processor Array with Separate Serial Module
JP4553615B2 (ja) 処理装置
US7007059B1 (en) Fast pipelined adder/subtractor using increment/decrement function with reduced register utilization
EP1402394A2 (en) Dsp execution unit for efficient alternate modes of operation
JP3181354B2 (ja) デジタル映像信号処理装置
JP3333227B2 (ja) デジタル映像信号処理装置
JP3181355B2 (ja) デジタル映像信号処理装置
JP3181352B2 (ja) デジタル映像信号処理装置
JP2007272394A (ja) データフローグラフ再構成装置、リコンフィギュラブル回路の設定データ生成装置、処理装置、及びリコンフィギュラブル回路
JP2003330914A (ja) ベクトル演算処理装置、ベクトル演算方法およびベクトル演算プログラム

Legal Events

Date Code Title Description
N231 Notification of change of applicant
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid