KR19990077230A - 이미지-처리 프로세서 - Google Patents

이미지-처리 프로세서 Download PDF

Info

Publication number
KR19990077230A
KR19990077230A KR1019980705372A KR19980705372A KR19990077230A KR 19990077230 A KR19990077230 A KR 19990077230A KR 1019980705372 A KR1019980705372 A KR 1019980705372A KR 19980705372 A KR19980705372 A KR 19980705372A KR 19990077230 A KR19990077230 A KR 19990077230A
Authority
KR
South Korea
Prior art keywords
processor
input
data
alu2
multiplier
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
KR1019980705372A
Other languages
English (en)
Other versions
KR100415417B1 (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 피터 토마스
Publication of KR19990077230A publication Critical patent/KR19990077230A/ko
Application granted granted Critical
Publication of KR100415417B1 publication Critical patent/KR100415417B1/ko
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

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

Abstract

본 발명은 프로세서 유닛의 매트릭스 어레이에 관한 것으로서, 각 프로세서 유닛은 연산장치(ALU2)와 결과 레지스터 뱅크(REGF) 이외에 또 다른 연산장치(ALU1), 곱셈기/가산기 장치(MA), 분산 스크린 섹션 버퍼와 로컬 범용 메모리(GPM)의 저장 장치(ISB)를 갖는다. 프로세서는 좁은 칩면적과 관련한 높은 처리 속도에 의해 특징 지워지며, 심지어 2차원 컨벌류션, 가보(Gabor) 변환, 가우시안 또는 라플라시안 피라미드, 블록 매칭, DCT 또는 MPEG2와 같은 계산-집중의 이미지 처리의 경우에도 실시간 처리를 가능하게 한다.,

Description

이미지-처리 프로세서
이러한 목적을 위해, 1995년 6월 13일자 저널 디자인과 전자 12의 30에서 35페이지는 계산 시간에 관하여 중요한 신호처리 알고리즘이 마춤식으로 프로그램 가능한 특정 프로세서에 의해 처리되는 장치를 예로서 개시하고 있다. 여기서, 레지스터는 칩 상의 메모리를 통해 공급되며, 복잡한 크로스바 스위치는 칩 상의 메모리와 프로세서 사이에 최적의 통신을 보장한다. 여기서의 문제점은, 칩 상의 저장 필요가 비교적 높다는 점과 적은 수의 병렬 연산장치로 인하여 많은 알고리즘에 비해 계산 전력이 너무 낮다는 점이다. 심지어 4개 이상의 병렬 신호 프로세서가 사용될 경우에도, 통신비용 및 칩 면적은 처리과정에서 비례하는 것 이상으로 증가된다.
또한, 1994년 10월 3일자의 간행 마이크로프로세서 리포트 "마이크로프로세서 하드웨어에 대한 회원자 가이드" 8권 13번 5에서 9페이지는 두 개의 정수 및 3개의 부동점 유닛을 갖는 확장 파이프라인 수퍼스칼라 64 비트 RISC 프로세서를 개시하고 있다. 이는 두 개의 그래픽스 유닛, 즉 병렬 정수 계산을 위한 가산/감산 유닛과 곱셈 유닛으로 확장된다. 제한된 레지스터 포트수로 인하여, 단지 두 개의 부동점과 그래픽스 명령만이 동시에 처리될 수 있다. 이는 계산 전력이 다수의 이미지 처리 요구에 부적합함을 의미한다.
게다가, 1994년 12월 6일자의 마이크로프로세서 리포트 12에서 15페이지는 마찬가지로 부분적으로 다른 실행 유닛이 구비된 프로세서를 개시하고 있으며, 여기서 각 명령에 의해 그것들 중 다섯 개까지 동시에 어드레스될 수 있다. 여기서 문제점은, 프로세서의 모든 잠재성을 고려하여 병렬 명령이 하드웨어를 최적으로 그리고 충돌이 없는 방법으로 이용함을 보장하는 비교적 복잡한 컴파일러가 그것이다.
1994년 시카고, 영상 통신 및 이미지 처리(VCIP'94)에 관한 협의의 회보, 1753에서 1765페이지와 1993년 5월 9일부터 12일까지 캘리포니아 샌디에고의 주문자 집적회로 협의회에서의 IEEE 1993 회보 4.6.1에서 4.6.3페이지는 로컬 메모리 및 로컬 메모리와 프로세서 엘리먼트 사이에 고속 데이터 속도를 갖는 확대 병렬 1차원 SIMD 프로세서 어레이를 개시하고 있으며, 여기서 복잡한 동작은 개별 동작으로부터 만들어지고 이러한 합성 동작의 더 오랜 실행시간은 다수의 프로세서 엘리먼트에 의해 보상된다. 첫 번째 경우로서, 2차원 이미지 섹션을 개개의 프로세서 엘리먼트로 분산시키는 글로벌 매트릭스 메모리가 있다. 두 번째 경우로서, 글로벌 통신 성능은 한번 로드된 데이터를 다중 이용가능하게 하며, 프로세서 어레이와 외부 저장장치 사이에 필요한 유선 대역폭을 감소시킨다. 여기서, 문제점은 어려운 프로그래밍, 파이프라인 프로세서 엘리먼트에 대한 복잡한 제어, 비파이프라인 프로세서 엘리먼트의 경우에 있어 낮은 주파수 및 큰 칩 상의 메모리가 그것들이다.
이 타입은 프로세서는 예를 들어, 2차원 컨벌류션, 가보(Gabor) 변환, 가우시안 또는 라플라시안 피라미드, 블록 매칭, DCT, MPEG2 등과 같은 계산-집중 알고리즘의 빠른 처리를 위해 요구된다.
본 발명은 다음의 도면을 참조하여 보다 상세히 설명된다.
도 1은 본 발명에 따른 이미지 처리 프로세서의 프로세서 엘리먼트의 블록도.
도 2a는 도 1에 따른 프로세서 엘리먼트의 상세 회로의 제 1부분도.
도 2b는 도 1에 따른 프로세서 엘리먼트의 상세 회로의 제 2부분도.
도 3은 본 발명에 따른 프로세서의 제 1구성도, 및
도 4는 본 발명에 따른 프로세서의 제 2구성도이다.
따라서, 본 발명은 낮은 칩 면적 요구와 함께, 이미지 처리에 있어 보통 필요한 방법에 대해 가능한 최고의 처리속도를 제공하는 이미지 처리 프로세서를 제공하는 데 그 목적이 있다.
이러한 목적은 청구항 제 1항의 특징에 의하여 달성된다. 본 발명의 상세한 이점은 종속클레임으로부터 알 수 있다.
본 발명의 주 이점은 다른 데이터 포맷에 대해 시스템의 측정과 재구성을 용이하게 하며, 본 발명에 따른 프로세서 외에 반드시 표준 메모리 칩만이 필요한 신경 컴퓨터 또는 이미지 처리 시스템과 같은 저 비용 시스템을 구성하는 데 적절하다는 점이다. 현저한 이점은 전술한 계산-집중의 이미지 처리 알고리즘의 실시간 처리를 가능하게 한다는 점이다.
도 1은 본 발명에 따른 이미지 처리 프로세서의 프로세서 엘리먼트의 블록도이다. 이는 연산장치(ALU2)와 레지스터 뱅크(REGS), 또한 분산 이미지 섹션 버퍼(ISB) 부분, 범용 메모리(GPM), 또 다른 연산장치(ALU1), 및 곱셈기/가산기 유닛(MA)을 가지고 있다. 일반적으로, 연산장치(ALU2)는 가산 섹션(ADD), 값의 범위를 시프트하기 위한 배럴 로테이터(ROT), 비트폭 매칭을 위한 포화장치(SAT), 최상위 비트 및 최하위 비트를 결정하기 위한 검출기(DET), 및 논리유닛(LU)을 갖는다. 곱셈기/가산기 유닛(MA)은 직렬의 개별 곱셈기를 갖는 곱셈기 어레이(MULTA)를 포함하며, 그것의 각 결과는 하향으로 연결된 가산기 트리(ADDT)에 의해 결합되어 전체 결과를 형성한다. 버퍼(ISB)는 예를 들어 2×2 픽셀에 대한 정보를 유지할 수 있는 2차원의 두방향 시프트 레지스터인 것으로 이해될 수 있다. 이미지 데이터는 버퍼(ISB)에 쓰여질 수 있고, 버퍼(ISB)로부터 읽혀질 수 있다. 이는 수직방향으로는 입력/출력 포트(im-down, im-up)를 통해 이루어지며, 수평방향으로는 입력/출력 포트(im-left, im-right)를 통해 이루어진다.
메모리(GPM)는 프로세서 엘리먼트 내에서 제 2 로컬 데이터 소스로서 역할하며 글로벌 버스(g-bus)를 경유하여 공급되는 칩 상에 구비된 표준 메모리이다. 메모리(GPM)는 계수, 회로 코어, 비트 마스크, 신경망 등을 위한 가중 매트릭스를 포함한다. 버퍼(ISB)의 경우 및 메모리(GPM)의 경우에 있어서, 읽기 액세스는 개별 데이터에 대해 발생하는 것이 아니라, 오히려 데이터 포맷에 의존하는 다중 벡터에 대해 발생한다. 모든 프로세서 엘리먼트의 이미지 섹션 버퍼는 그들 전체에 있어서 분산 2차원 이미지 섹션 버퍼를 나타낸다. 이미지 섹션은 프로세서 엘리먼트 사이의 로컬 연결을 경유하여 상향으로/하향으로 또는 좌로/우로 픽셀마다 시프트될 수 있다. 이를 위해, 에지 길이(n)의 이미지 섹션에 대해, n개의 픽셀이 버퍼(ISB) 셀 어레이의 각 에지에 제공되어야 한다. 프로세서 엘리먼트는 그들의 이미지 세그먼트로의 읽기 액세스를 할 수 있을 뿐이다. 액세스는 각 픽셀이 읽혀지게 하는 것이 아니라, 오히려 벡터 또는 픽셀 포맷에 의존하는 즉, 정확성에 의존하는 픽셀의 어레이가 읽혀지게 한다.
로컬 버퍼(ISB)와 메모리(GPM)로부터의 데이터는 출력측에서 곱셈기/가산기 유닛(MA)의 입력으로 연결되는 또다른 연산장치(ALU1)에 공급된다. 곱셈기/가산기 유닛의 출력은 연산장치(ALU2)의 입력측에 연결되고, 연산장치(ALU2)의 출력은 레지스터 뱅크(REGF)에 연결된다. 레지스터 뱅크(REGF)의 출력은 동시에 프로세서 엘리먼트의 출력(alu2-o)이다. 레지스터 뱅크(REGF)의 출력과 프로세서 엘리먼트의 입력(alu2-i)은 연산장치(ALU2)의 입력에 연결된다.
또한, 또다른 구성에서, 레지스터 뱅크(REGF)의 입력(alu2-i) 및/또는 출력은 또다른 연산장치(ALU1)의 입력에 연결될 수 있다.
제 3의 구성에서, 레지스터 뱅크(REGF)의 입력(alu2-i) 및/또는 출력은 곱셈기/가산기 유닛(MA)의 입력에 연결될 수 있다.
제 4의 구성에서, 레지스터 뱅크(REGF)의 입력(alu2-i) 및/또는 출력은 또다른 연산장치(ALU1)의 입력과 곱셈기/가산기 유닛(MA)의 입력 양자 모두에 연결될 수 있다.
본 발명에 따른 이미지 처리 프로세서의 프로세서 엘리먼트에 대한 상세한 예는 도 2a 및 도 2b에 도시되고 있다. 도 2a는 버퍼(ISB)와 메모리(GPM), 또다른 연산장치(ALU1)와 곱셈기/가산기 유닛(MA)을 포함하며, 도 2b는 연산장치(ALU2) 및 레지스터 뱅크(REGF)를 포함한다. 추가적으로, 다수의 레지스터(CREG, MSBREG, 및 STAT), 포맷터(F1 … F4), 확장기(EXP1 … EXP3), 및 멀티플렉서(MUX0 … MUX6)가 존재하며, 이들은 연산장치들(ALU1, ALU2)에 부가되어 데이터 선택 및 워드 길이 매칭을 위한 역할을 한다. 이 경우, 연산장치(ALU1)용 입력 데이터는 두 개의 이미지 섹션 버퍼(ISB1, ISB2) 또는 메모리(GPM)로부터 발생한다. 두 개의 이미지 섹션 버퍼는 특히 예를 들어 입체 이미지를 처리할 때 유익하다. 신호(alu2_loc_out1)를 통해 행해진 연산장치(ALU2)의 결과 레지스터로부터 직접 32×32 비트 곱셈용 멀티플렉서에 공급하는 것이 이 경우에 있어 가능하다. 3개의 입력 벡터(in_a, in_b, 및 in_c) 중 최대값을 처리하는 것이 가능하다. 크로스바 스위치는 이러한 3개의 입력 벡터의 선택에 대한 완전한 유연성을 보장한다. 이미지 섹션 버퍼(ISB1, ISB2)는 단지 그들의 인접한 것에 의해 또는 이미지 캐시로부터 포트(im-up, im-down, im-right, 및 im-left)를 통해 다시 로드될 수 있다. 이미지 섹션은 같은 방법으로 재로딩 및 시프팅에 의해 이미지 섹션 버퍼 내로 먼저 로드된다. 판독입력(reading in)은 신호(in_op)를 통해 제어되고, 이 신호는 다른 시프트 방향과 스텝 사이즈를 지정한다. 메모리(GPM)는 글로벌 버스(g-bus)를 통해 또는 연산장치(ALU2)의 결과 레지스터를 형성하는 레지스터들(Reg0 … Reg15)을 갖는 레지스터 뱅크(REGF)로부터 그것의 데이터를 획득한다. 버퍼(ISB1, ISB2)와 메모리(GPM)의 데이터 포맷은 동일하며, 예를 들어 128비트의 폭을 갖는 각각의 벡터를 형성한다. 이 벡터는 4개의 32비트 데이터 항목, 8개의 16비트 데이터 항목, 또는 16개의 8비트 데이터 항목으로 구성된다.
논리 유닛(LU1a, LU1b)은 신호(alu1a_lop, alu1b_lop)에 의해 제어되며, 크로스바 스위치를 통해 버퍼(ISB1, ISB2) 및 메모리(GPM)로 연결되는 각각의 입력(a, b)의 논리 결합을 수행한다. 입력의 포맷은 신호(alu1_form)를 통해 통신된다. 모든 이진 동작을 위해, 두 입력의 포맷은 동일하여야 한다. 따라서, 각 논리 유닛은 16개 8비트나 8개 16비트, 또는 4개 32비트 데이터 쌍을 병렬로 처리할 수 있다. 논리 유닛(LU1a, LU1b)은 예를 들어 다음의 논리 동작을 지속한다.
a, (바이패스)
NOT a, (NOT)
a AND b,
a NAND b,
a OR b,
a NOR b,
a XOR b,
a XNOR b.
산술 유닛(AU1)은 논리 유닛(LU1a, LU1b)의 출력신호에 대한 산술 결합을 수행한다. 또한, 이 유닛은 보조 입력(c, d)을 가지고 있으며, 보조입력(c)은 상수 레지스터(CREG)에 연결되고, 보조입력(d)은 크로스바 스위치를 통해 버퍼/메모리로 연결된다. 유닛(AU1)에서 수행되는 동작은 신호(alu1_aop)와 입력(alu1_form)의 포맷에 의해 결정된다. 디지트 확장이 가능함으로써, 출력 포맷은 입력포맷에 의존하는 9, 17, 또는 33 비트이며, 출력벡터는 136비트의 비트폭을 갖는다. 동작에 관여된 입력 모두는 동일한 포맷을 가져야 한다. 따라서, 16개 8비트나 8개 16비트, 또는 4개 32비트 데이터 쌍이 병렬로 처리된다. 산술 유닛(AU1)은 다음의 동작을 지속한다.
a, (바이패스)
-a, (2의 보수)
|a|, (절대값 형성)
a + b,
|a + b|,
-a + b,
|-a + b|,
- (a - b),
-a -b,
여러 임계값은 비교함수로서 폭(b)과 a, c, d, 또는 0의 출력을 비교하는 기능을 한다.
멀티플렉서(MUX0)는, 제어신호(alu1_o2_sel)에 의존하여, 유닛(LU1a, 또는LU1b)의 출력신호(log_a, 또는 log_b)중 하나를 선택하거나, 또한 곱셈기 어레이를 위한 크로스바 스위치를 통해 버퍼/메모리 내용을 선택하기 위하여 사용된다. 상수 레지스터(CREG)는 예를 들어 128비트 각각 4개의 벡터를 저장할 수 있다. 산술 유닛(AU1)의 출력 데이터 항목을 먼저 로딩하는 것은 신호(creg_op)의 함수로서 일어난다. 레지스터 내용은 각 클럭 사이클에서 출력된다. 레지스터는 주기적으로 반복하는 상수를 저장하는 역할을 하며, 메모리(GPM)상의 로드를 덜어주는 역할을 한다. 멀티플렉서(MUX1, MUX2)는 신호(mult_i1_sel, mult_i2_sel)의 함수로서 멀티플렉서 입력 데이터를 선택 및 멀티플렉서 입력(i1, I2)을 할당하는 역할을 한다. 멀티플렉서의 출력에 관한 한, 모든 데이터는, 그들이 곱셈기 블록 중 i1을 위하여 또는 i2를 위하여 의도되는 지에 관계없이, 하나의 포맷으로 존재한다. 입력(i1, I2)은 다른 포맷을 가지며, 곱셈기 어레이의 각 곱셈기의 입력으로 직접 인도된다. 멀티플렉서(MUX1, MUX2)는 또한 32×32 비트 곱셈용 레지스터 뱅크(REGF)의 레지스터를 선택하는 데 이용될 수 있다. 곱셈기 어레이의 입력데이터는 선택된 곱셈기 구성의 함수로서 포맷터(F1, F2)에 의해 조건이 설정된다. 여기서 곱셈기 구성은 신호(mult_form)에 의해 결정된다. 데이터 벡터의 성분 모두가 처리되는 것은 아닌 구성에 대해, 136 비트 워드내의 데이터 세그먼트를 선택하는 것이 필요하다. 이는 신호(mult_i1_dat, 또는 mult_i2_dat)에 의해 수행된다. 이러한 제어 정보는 오퍼랜드 어드레스의 부분으로 간주될 수 있다. 예를 들어, 16×32 비트 곱셈이 주어진 경우, 곱셈기의 입력(i1)은 2개 16비트 데이터 항목을 필요로하고, 곱셈기의 입력(i2)은 2개 32비트 데이터 항목을 필요로한다. 이들은 i2에 대해서는 제공된 8개 16비트 데이터 항목으로부터, 그리고 i2에 대해서는 제공된 4개 16비트 데이터 항목으로부터 선택되어져야 한다.
이 경우, 곱셈기 어레이(MULTA)는 각각 16비트의 비트폭을 갖는 8개 곱셈기를 포함한다. 입력 데이터의 포맷에 의존하여, 곱셈기의 (부분적) 결과는 디지트 위치에 대해 정확하게 추가되어 하향으로 연결된 가산기 트리(ADDT)에서 하나의 전체 결과를 형성한다. 그러므로, 이러한 전체 결과는 프로덕트(product)의 합계를 의미하며, 그의 수는 한번 더 데이터 포맷에 의존한다. 곱셈기에 대한 유일한 제어 워드는 데이터 포맷을 결정하기 위한 신호(mult_form)가 그것이다. 따라서, 내부 제어가 존재하며, 그것의 데이터 파편은 부호를 갖지 않거나 2의 보수로 해석된다. 가산기 트리는 덧셈 이전에 개별 프로덕트의 시프팅을 결정하기 위하여 신호(mult_form)를 필요로한다. 데이터 포맷 세트에 의존하여, 곱셈기/가산기 유닛(MA)은 8개 8×8 비트 프로덕트, 8개 8×16 비트 프로덕트, 4개 16×16 비트 프로덕트, 4개 8×32 비트 프로덕트, 2개 16×32 비트 프로덕트, 또는 하나의 32×32 비트 프로덕트로부터 합을 계산한다.
8개 부분 프로덕트의 각각은 신호(add_sel)를 이용하여 선택적으로 지워질 수 있다. 이는 프로덕트의 합 대신에 개별 프로덕트를 명시하기 위하여 필요하다. 결과 레지스터(REGF)에서 메모리(GPM)로의 데이터 전송에서 포맷터(F3)가 포함된다. 포맷에 의존하여, 결과 데이터의 보다 적은 8, 16, 또는 32 비트는 포맷터(F3)에 모아져서 128 비트 워드가 완성되자마자 메모리(GPM)로 전송된다. 메모리(GPM)가 개별 데이터 항목의 쓰기를 허용하기도 하므로, 포맷터(F3)에서의 버퍼 저장 없이도 전송하는 것이 가능하다. 신호(format3)는 연산장치(ALU2)로부터 얼마의 비트, 예를 들어 8, 16, 또는 32비트가 고려되어야 하는지에 대해 통신하는 데 사용된다.
도 2b의 연산장치(ALU2)용 데이터 소스는 가산기 트리(ADDT)의 출력신호(add_tree_out), 결과 레지스터 뱅크의 출력 및 랜덤수 발생기(RNDG)에 의해 형성된다. 결과 레지스터 뱅크의 두 개의 출력은 버스(alu2_bus1, alu2_bus2)를 경유하여 연산장치들(ALU1, ALU2)로 연결되며 또한 곱셈기/가산기 유닛(MA)으로 연결되고, 각각의 프로세서 엘리먼트의 레지스터로부터 또는 입력(alu2_i1, 또는 alu2_i2)을 경유하여 인접 프로세서 엘리먼트의 레지스터로부터 제공된다. 버스(alu2_bus1)는 제어기로부터의 즉시값(immediate values)이 추가적으로 제공될 수 있다. 한 사이클의 4개 결과는 결과 레지스터 뱅크의 4-세그먼트 레지스터에 항상 저장되며, 각 경우의 세그먼트 레지스터는 예를 들어 4×64비트를 갖는다. 레지스터 뱅크(REGF)의 이러한 결과 레지스터는 4개 64 비트 워드를 포함하며, 4개 데이터 항목을 나타낸다. 32×32비트 프로덕트의 누산 중에 일어나는 128 비트 결과를 계산하는 동안, 레지스터(Reg0 … Reg15) 중 하나는 4개 64 상위 비트를 포함하고, 각각의 인접 레지스터는 4개 결과 중 4개 64 하위 비트를 포함한다. 최소/최대용의 인덱스된 데이터는 4개 인덱스 값에 대해 또다른 레지스터를 차지한다. 레지스터 뱅크는 하나의 입력과 3개의 출력포트를 갖는다. 두 개의 버스(alu2_bus1, alu2_bus2)는 제공된 결과 레지스터로부터의 또는 크로스바 스위치를 경유한 두 개의 다른 인접 프로세서 엘리먼트로부터의 데이터가 제공될 수 있다. 인접 프로세서 엘리먼트의 데이터는 포트(alu2_i1, alu2_i2)에서 이용가능하며, 선택은 곱셈기(MUX5)를 통해서 이루어진다. 제 3레지스터 출력은 최근접 프로세서 엘리먼트로 또는 평가유닛으로의 연결을 동시에 의미하는 프로세서 엘리먼트의 출력(alu2-o)으로 인도된다. 결과는 평가유닛으로 통과될 수 있고, 이는 예를 들어 블록 매칭의 경우에 있어서 글로벌 최소/최대 서치를 위해 필요하다. 레지스터 뱅크의 쓰기 입력은 멀티플렉서(MUX4)를 통해 연산장치(ALU2)의 출력으로 연결된다. 레지스터의 4개 세그먼트의 판독-입력 및 판독-출력은 고정된 것이 아니고, 오히려 어드레스에 의해 제어된다. 여기에 서술된 프로세서 엘리먼트의 레지스터 뱅크는 16개 4-세그먼트 레지스터로 구성되어 있으며, 4×4 프로세서 유닛을 갖는 프로세서의 경우에는 8킬로바이트의 레지스터 전체 저장능력을 나타낸다. 칩면적이 허용된다면, 이 수는 0.5 킬로바이트의 하위부분에서, 더군다나 1킬로바이트의 하위부분에서 요구됨에 따라 증가될 수 있다. 각각의 머신 사이클에서, 이용자는 소스 레지스터에서 수신지 레지스터로의 병렬 데이터 경로에 의해 실현되는 5개 기능 그룹 중 하나를 액세스할 수 있다. 이러한 그룹 각각의 대기시간은 정확히 4개 클럭 사이클을 갖는 하나의 머신 사이클이다. 5개의 데이터 경로는 다음과 같다:
1. 누산기-가산기(ACCADD), 최종 가산기(FADD), 멀티플렉서(MUX3), 확장기(EXP1 … EXP3), 및 랜덤수 발생기(RNDG)를 갖는 가산기 루프로서, 이는 누산, 최소/최대 서치, 랜덤수의 합산, 라운딩 및 가산기 트리의 출력데이터를 레지스터 뱅크의 결과 레지스터로 전송하는 기능을 한다.
2. 산술 및 논리 시프팅/로테이팅을 위해 그리고 최소/최대 서치를 지원하기 위한 배럴 로테이터(ROT)를 갖는 시프터/로테이터 루프.
3. 64비트 값을 8, 16 또는 32비트로 포화시키고 최소/최대 서치를 지원하기 위한 포화 루프.
4. 최상위 및 최하위 비트의 위치를 결정하고 시프트 동작이나 포화 동작 중의 오버플로의 확인을 가능하게 하는 검출기 루프.
5. 2개 오퍼랜드의 논리 결합을 가능케 하는 논리 루프.
누산기-가산기(ACCADD)는 입력(i1)에서의 66비트 데이터 항목을 입력(i2)에서의 67비트 데이터 항목에 합하거나, 입력(i1)에서의 데이터 항목에서 입력(i2)에서의 데이터 항목을 감한다. 결과는 64비트 데이터 항목이다. 신호(acc_op)는 가산과 감산 사이에서 결정을 한다. 입력(i1, I2)의 두 데이터 항목은 2의 보수 표현으로 존재한다. 최종 가산기(FADD)는 누산기-가산기(ACCADD)의 출력데이터로부터 비중복 67비트 포맷을 형성하며, 그것의 64 하위 비트는 멀티플렉서(MUX4)로 보내진다. 레지스터(MSBREG)는 각 경우에 있어 한 머신 사이클의 4개 데이터 항목으로부터 최종 가산기의 3개 최상위 비트를 버퍼-저장한다. 두배 범위의 값을 갖는 데이터의 합산 과정에서, 동작을 완료하기 위한 다음의 사이클에서 가산기(ACCADD)로 피드백된다. 확장기(EXP1)는 레지스터(MSBREG)로부터의 3개 비트, 하위 3개 비트를 채우는 레지스터(MSBREG)로부터의 3개 비트, 및 1이나 0으로 채워지는 나머지 63디지트를 부호에 따라 확장함으로써 2의 보수 표현으로 66비트 워드를 생성한다. 확장기(EXP2, EXP3)는 부호 없이 존재하거나 2의 보수 표현으로 존재하는 64비트 워드로부터 66비트 워드를 2의 보수 표현으로 생성한다. 멀티플렉서(MUX3)는 제어신호(acc_il_sel)의 함수로서 누산기-가산기(ACCADD)의 입력(i1)을 위해 입력 데이터 항목을 선택한다. 선택을 위해, 확장기(EXP2)를 통한 버스(alu_bus2), 랜덤수 생성기(RNDG)의 출력(rnd), 가산기 트리의 출력 또는 확장기(EXP1)의 출력, 달리 표현하면 이전 합산으로부터의 올림수(carry)가 이용가능하다. 랜덤수 생성기(RNDG)는 먼저 로드된 시작값으로부터 시작하여 피드백 시프트를 통해 의사-랜덤 수를 생성하고, 의사-랜덤 수는 버스(alu2_bus1)의 데이터에 가산된다. 시작값은 신호(rnd_1d)에 의해 버스(alu2_bus1)로부터 로드된다. 신호(rnd_op)에 의해, 새로운 랜덤 수가 생성되어 출력되거나, 생성기 내용이 반복하여 출력된다. 랜덤수 생성기는 예를 들어 혼합(dithering)과 같은 통계적 라운딩 효과를 생성하기 위하여 필요하다. 상태 레지스터(STAT)는 최종 가산기로부터의 부호, 오버플로 및 제로 결과에 대한 플래그를 포함한다. 상태 비트는 각 결과 이전에 계산되며, 신호(status_op)는 그들이 실제로 상태 레지스터로 수용되는 지의 여부를 결정한다. 제어기는 상태 비트를 읽어서 평가할 수 있다. 그러나, 상태 비트는 제어기를 통한 우회 없이 제어신호로서 직접적으로 멀티플렉서(MUX4)에 이용가능해질 수 있으며, 이는 최소/최대 서치 및 다른 조건부 할당 과정에서 유익하다. 배럴 로테이터(ROT)를 이용하여 0내지 63디지트 차이로 버스(alu2_bus1)의 데이터를 좌우로 산술적으로 및 논리적으로 시프팅하는 것이 가능하며, 이는 신호(shift_op)를 이용하여 제어된다. 시프트 팩터는 신호(shift_op)로부터 바로 나오는 상수이거나, 버스(alu2_bus2)를 경유하여 결과 레지스터로부터 제공되는 변수이다. 상수 시프트 레지스터가 주어진 경우, 버스(alu2_bus2)로부터 계속되는 디지트들을 수용하는 것이 가능하다. 버스(alu2_bus1, alu2_bus2)상에 동일한 데이터가 주어진다면, 순환을 이러한 방법으로 귀착한다. 또한, 시프터/로테이터 루프는 최소/최대 서치나 조건부 할당에 포함된다. 이를 위해, 0의 시프트 팩터를 설정하는 것이 필요하다. 포화(SAT)에 의해 버스(alu2_bus2)의 데이터는, 8, 16 및 32비트의 값의 범위가 지원되는 경우, 신호(sat_op)에 의해 특정되는 값의 범위 내로 맞춰진다. 설정범위를 벗어나는 데이터는 표현될 수 있는 가장 큰 양수 또는 표현될 수 있는 가장 작은 음수, 즉 포화에 의해 대체된다. 검출기(DET)의 신호(det_res)를 이용하여, 제어기는 포화가 이루어지는 지의 여부를 결정하고, 그것을 각 데이터에 대해 신호(sat_op)를 통해 포화 회로(SAT)로 통신한다. 논리유닛(LU)은 버스(alu2_bus1)의 데이터 및 버스(alu2_bus2)의 데이터의 논리 결합을 실행한다. 신호(alu2_op)의 제어 하에, 동작들(AND, NAND, OR, NOR, XOR, XNOR 및 NOT)이 가능하다. 신호(alu2_op)에 따라, 멀티플렉서(MUX4)는 전술한 5개 데이터 경로 중 어느 것이 결과를 레지스터에 쓸 것인지를 결정한다. 제2 제어 입력은 제어 레지스터(STAT)에 의해 제공되며, 조건부 할당 동안 예를 들어 최소/최대 서치 동안 누산기-가산기(ACCADD)가 두 버스(alu2_bus1, alu2_bus2)간의 차이를 형성하는 것을 도와주며, 그리고 차이신호에 따라 버스(alu2_bus1)의 데이터가 배럴 로테이터(ROT)를 통해 레지스터 뱅크에 쓰여질 것인지 아니면 포화가 스위치 오프된 상태에서 버스(alu2_bus2)의 데이터가 포화 블록(SAT)을 통해 레지스터 뱅크에 쓰여질 것인지를 선택한다. 신호(alu2_in_sel)에 따라, 멀티플렉서(MUX5)는 프로세서 엘리먼트의 입력(alu2_i1 또는 alu2_i2)중 하나를 선택하고, 그럼으로써 그의 데이터가 오퍼랜드로 사용되는 인접 프로세서 엘리먼트를 선택한다. 전송 레지스터(TREG)는 64비트 워드를 버퍼-저장할 수 있고, 요구되는 것들을 포맷터(F4)를 통해 프로세서 엘리먼트의 출력(alu2-o)으로 출력한다. 전송 레지스터(TREG)는 또한 결과 데이터를 읽어내어 그것을 프로세서 엘리먼트 열의 오른쪽 인접 프로세서 엘리먼트로 전송하는 동안 버퍼로서 역할한다. 따라서, 결과 레지스터 뱅크에 부담이 주어지지 않으며, 이미 다음 동작에 이용될 수 있다. 포맷터(F4)에서, 레지스터 뱅크의 레지스터 출력(reg_out)중 보다 적은 1, 2, 4 또는 8바이트는, 신호(format4_form)에 따라, 신호(format4_pos)에 의해 결정되는 포맷터 출력의 바이트 위치로 이동된다. 출력에서의 나머지 바이트는 전송 레지스터로부터 1:1로 수용된다. 이러한 포맷터를 이용하여, 프로세서 엘리먼트의 열을 따라 결과 데이터를 전송하는 동안, 1, 2, 또는 4바이트의 다수의 결과를 결합하여 8바이트 워드를 형성하는 것이 가능하고, 결과적으로 프로세서 엘리먼트들 간에 64비트 연결을 이용하는 것이 보다 낫다. 제어신호(alu2_out_sel)의 함수로서, 멀티플렉서(MUX6)는 프로세서 엘리먼트의 출력(alu2-o)을 위해 출력 데이터 항목을 선택한다. 포맷터(F4)의 출력 데이터 또는 프로세서 엘리먼트의 입력 데이터는 선택을 위해 존재한다. 멀티플렉서(MUX6)는 프로세서 엘리먼트의 두 입력 중 하나가 전송 레지스터에서의 버퍼-저장 없이 프로세서 엘리먼트의 출력(alu2-o)에 직접 연결될 수 있도록 할 수 있다.
도 3은 16개의 프로세서 엘리먼트(PE11‥ PE44)를 갖는 본 발명에 따른 프로세서를 도시하고 있으며, 16개 프로세서 엘리먼트는 상호 연결되어 에지 길이가 4인 2차원 어레이를 형성하며, 공통 제어기에 의해 제어된다. 256비트폭을 갖는 픽셀 버스(p-bus)는 어레이 주위에 환상으로 위치되어 각 프로세서 엘리먼트의 버퍼(ISB)에 어레이의 4개 에지에 재로드 픽셀을 제공한다. 어레이는 또한 글로벌 버스(g-bus)를 통해 입력 데이터를 수신하며, 이는 이미지 캐시(CACHE) 또는 입력 버퍼(IBUF) 또는 평가 유닛(DU: Data Unit)으로부터 공급된다. 평가 유닛(DU)은 예를 들어 분할, 어레이-스케일 값 결정을 위한 히스토그램, 또는 값을 테이블을 이용한 평가를 수행하기 위하여 사용된다. 캐시 메모리(CACHE)가 다양한 출력 모드를 가지고 있기는 하지만, 입력 버퍼(IBOF)는 외부 기억장치와 프로세서 엘리먼트의 메모리(GMP) 사이의 FIFO로서만 역할한다.
평가유닛(DU)은 프로세서 엘리먼트의 결과 레지스터로부터 결과 데이터를 수용하는 일을 하며, 가능하게는 사후 처리를 수행하는 일, 출력 버퍼를 통해 외부 기억장치로 데이터를 전송하는 일, 또는 글로벌 버스(g-bus)를 통해 프로세서 어레이에 다시 그것들을 이용하는 일을 한다. 사후 처리는 분할, 히스토그램, 및 테이블 룩업을 포함하며, 프로세서 엘리먼트 내의 그러한 실행은 지나치게 영역집중 또는 메모리 집중이 될 수 있다. 각 프로세서 엘리먼트의 결과 데이터는 프로세서 엘리먼트의 입력(alu2-i)과 출력(alu2-o)을 통해 평가유닛으로 전송된다. 한 열의 4개 프로세서 엘리먼트, 예를 들어 엘리먼트(PE11‥ PE14)는 그들의 입력(alu2-i1)과 출력(alu2-o)을 통해 각각의 체인을 형성한다. 최종 행의 프로세서 엘리먼트(PE14‥ PE44)는 마찬가지로 상호 연결되어 멀티플렉서(MUX5)를 통해 체인을 형성하며, 그 결과 모든 결과 데이터는, 수평 및 수직 이송을 통해, 상부 우측 프로세서 엘리먼트(PE14)로 넘겨지고, 그리고 거기서 평가유닛(DU)으로 넘겨진다. 동일한 연결이 또한 극대값 서치와 같은 글로벌 동작의 경우에 이용되며, 우측 행의 4개 프로세서 엘리먼트 각각은 상부 우측 프로세서 엘리먼트가 글로벌 극대값을 결정하기 전에 그들 열의 극대값을 결정한다.
모든 16개 프로세서 엘리먼트는 서로에 대해 지연 없이 비동기적으로 동작하며, 즉 모든 프로세서 엘리먼트에 대한 동작은 항상 같은 순간에 트리거된다. 입력(alu2-i)과 출력(alu2-o)을 통해 결과 레지스터를 출력하거나 먼저 로딩하기 위해서, 모든 프로세서 엘리먼트는 그들의 레지스터 내용을 출력으로 동시에 전송하며, 이것과 동시에 입력을 통해 그들에 공급되는 데이터를 수용한다. 글로벌 동작의 경우에 있어 그 절차는 유사하며, 체인에서의 최종 프로세서 엘리먼트는 실제적인 동작, 즉 그것의 입력데이터를 국부적으로 저장된 결과와 논리적으로 결합하며, 국부적으로 한번 더 생성된 결과를 저장한다. 나머지 프로세서 엘리먼트는 결과값을 출력하는 동안 그들이 하는 대로 동작한다.
프로세서 입력 데이터는 입력/출력 구동기(IOT)를 통해 입력 버스(I-bus)로 공급되며, 그것은 입력 버퍼(IBUF) 및 캐시 메모리(CACHE)를 제공한다. 글로벌 버스(g-bus)는 멀티플렉서(MUX)를 통해 입력버퍼의 출력으로 또는 캐시 메모리의 출력으로 연결될 수 있다. 평가유닛(DU)의 출력은 출력버퍼(OBUF)를 통해 출력버스(o-bus)로 연결되고, 그것을 차례로 입력/출력 구동기(IOT)를 통해 프로세서 출력으로 연결된다.
도 4는 마찬가지로 16개 프로세서 엘리먼트를 갖는 본 발명에 따른 프로세서를 도시하고 있으며, 그 프로세서는 도 3에 도시된 방법으로 모든 프로세서 엘리먼트가 동일 명령을 수신하는 소위 SIMD 어레이(Single Instruction Multiple Data array)로서 뿐만 아니라, 스위치(S1 … S8)를 이용하여 소위 MIMD 어레이(Multiple Instruction Multiple Data array)로 구성될 수 있다. 도 4는 각각 8개의 프로세서 엘리먼트(PE 및 PE*)를 갖는 두 개의 SIMD 어레이를 포함하는 MIMD 어레이를 도시하고 있다. 이러한 SIMD 어레이의 각각은 전용 제어기, 전용 평가유닛(DU1, DU2), 전용 이미지 캐시(CACHE1, CACHE2), 및 부가 멀티플렉서(MUX' … MUX''')를 필요로한다. 두 SIMD 어레이의 각각은 링 형태로 그것 자신의 픽셀 버스(p-bus 1, p-bus 2)를 가지며, 그것은 독립 캐시(CACHE1, CACHE2)에 의해 제공된다. 캐시는 입력버스(i-bus)를 통해 외부적으로 또는 평가유닛(DU1, DU2)으로부터 그들의 데이터를 수신한다. 평가유닛(DU1)의 결과를 캐시 메모리(CACHE2)로 공급하는 것은 예를 들어 처리 체인의 형성을 가능하게 하며, 프로세서 엘리먼트(PE)를 갖는 SIMD 어레이의 출력 데이터는 프로세서 엘리먼트(PE*)를 갖는 SIMD 어레이에 대한 입력 데이터로서 역할한다. 대역폭에 의해 허용될 경우, 두 SIMD 어레이는 외부의 입력데이터를 가지고 다른 동작을 수행할 수 있고, 다시 그 결과를 외부 기억장치로 출력할 수 있다. 여기에 서술된 MIMD 성능을 갖는 프로세서 어레이는 스위치(S1 … S8)를 통해 재구성될 수 있으며, 한편 8개의 프로세서 엘리먼트를 갖는 두 개의 독립 블록으로 구성될 수 있으며, 그밖에 16개 프로세서 유닛을 갖는 개별 SIMD 어레이로서 구성될 수 있고, 두 개의 픽셀 버스(p-bus1, p-bus2)는 스위치를 통해 재구성되어 하나의 링 버스를 형성한다. 두 개의 캐시(CACHE1, CACHE2)는 마찬가지로 결합되어 하나의 글로벌 캐시를 형성한다. 두 개의 평가유닛은 공통 SIMD 어레이의 경우에 대해 태스크(task)를 공유할 수 있다.

Claims (9)

  1. 매트릭스 방식을 따라 연결된 동일 타입의 다수의 프로세서 엘리먼트(PE11‥PE44)를 포함하는 이미지 처리 프로세서에 있어서, 상기 각 프로세서 엘리먼트는
    레지스터 뱅크(REGF)를 경유하는 피드백을 갖는 연산장치(ALU2);
    분산 이미지 섹션 버퍼의 저장장치(ISB);
    로컬 범용 메모리(GPM);
    또 다른 연산장치(ALU1); 및
    곱셈기/가산기 유닛(MA)을 포함하며, 상기 곱셈기/가산기 유닛의 출력이 상기 연산장치(ALU2)의 입력에 연결되는 것을 특징으로 하는 이미지 처리 프로세서.
  2. 제 1항에 있어서,
    상기 저장장치의, 상기 로컬 범용 메모리의, 상기 또 다른 연산장치의, 및 상기 곱셈기/가산기 유닛의 입력 워드 길이는 탄력적 방법으로 선택될 수 있고;
    상기 선택된 입력 워드 길이에 따라, 입력 데이터의 다중성분 벡터가 상기 또다른 연산장치와 상기 곱셈기/가산기 유닛에서 병렬로 처리될 수 있음을 특징으로 하는 이미지 처리 프로세서.
  3. 제 1항 또는 제 2항에 있어서,
    상기 분산 이미지 섹션 버퍼의 상기 저장장치는 인접 프로세서 엘리먼트의 저장장치에 의해 이미지 데이터(im-dowm, im-left, im-up, im-right)를 공급받고, 대응하는 인접 프로세서 엘리먼트가 없는 경우 픽셀 버스(p-bus)에 의해 이미지 데이터를 공급받으며; 그리고
    상기 로컬 범용 메모리는 글로벌 버스(g-bus)를 통해 연산데이터를 공급받는 것을 특징으로 하는 이미지 처리 프로세서.
  4. 제 1항 내지 제 3항 중 어느 한 항에 있어서, 상기 레지스터 뱅크의 출력은 상기 또다른 연산장치의 입력에 연결되고, 그리고/또는 상기 곱셈기/가산기 유닛의 입력에 연결되는 것을 특징으로 하는 이미지 처리 프로세서.
  5. 제 1항 내지 제 4항 중 어느 한 항에 있어서, 상기 연산장치의 입력데이터(ALU2-i)는 상기 또다른 연산장치 및/또는 상기 곱셈기/가산기 유닛의 입력측에도 공급되는 것을 특징으로 하는 이미지 처리 프로세서.
  6. 제 1항 내지 제 5항 중 어느 한 항에 있어서, 상기 곱셈기/가산기 유닛은 병렬로 동작하며 가산기 트리(ADDT)에 의해 출력측 상에 결합되는 다수의 곱셈기(MULTA)를 포함하는 것을 특징으로 하는 이미지 처리 프로세서.
  7. 제 1항 내지 제 6항에 있어서, 입력데이터 버스(i-bus)는 캐시 메모리(CACHE)를 경유하여 상기 픽셀 버스(p-bus)로 연결되는 것을 특징으로 하는 이미지 처리 프로세서.
  8. 제 1항 내지 제 7항에 있어서,
    멀티플렉서(MUX5)를 이용하여, 매트릭스의 최종 행의 프로세서 엘리먼트(PE14‥PE44) 각각은 동일 행의 인접 프로세서 엘리먼트(PE24)의 동일 열의 인접 프로세서 엘리먼트(예를 들어 PE13)의 출력에 연결되고; 그리고
    데이터 흐름의 수평방향으로도 수직방향으로도 다음의 프로세서 엘리먼트를 가지지 않는 최종 프로세서 엘리먼트(PE14)의 출력은 평가 유닛(DU)에 연결되는 것을 특징으로 하는 이미지 처리 프로세서.
  9. 제 1항 내지 제 8항 중 어느 한 항에 있어서, 전자 스위치(S1 … S8)에 의하고 멀티플렉서(MUX' ‥ MUX''')를 이용하여, 적어도 두 개의 독립 글로벌 버스(g-bus1, g-bus2), 적어도 두 개의 독립 픽셀 버스(p-bus1, p-bus2), 적어도 두 개의 독립 캐시 메모리(CACHE1, CACHE2), 및 적어도 두 개의 독립 평가 유닛(DU1, DU2)을 갖는 적어도 두 개 그룹의 프로세서 엘리먼트(PE, PE*)를 형성 가능한 것을 특징으로 하는 이미지 처리 프로세서.
KR10-1998-0705372A 1996-01-15 1996-12-13 이미지-처리프로세서 Expired - Lifetime KR100415417B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19601201.5 1996-01-15
DE19601201 1996-01-15

Publications (2)

Publication Number Publication Date
KR19990077230A true KR19990077230A (ko) 1999-10-25
KR100415417B1 KR100415417B1 (ko) 2004-04-17

Family

ID=7782779

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1998-0705372A Expired - Lifetime KR100415417B1 (ko) 1996-01-15 1996-12-13 이미지-처리프로세서

Country Status (6)

Country Link
US (1) US6049859A (ko)
EP (1) EP0875031B1 (ko)
JP (1) JP3573755B2 (ko)
KR (1) KR100415417B1 (ko)
DE (1) DE59607143D1 (ko)
WO (1) WO1997026603A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100444990B1 (ko) * 2001-12-29 2004-08-21 삼성전자주식회사 신호 처리 시스템

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6289434B1 (en) * 1997-02-28 2001-09-11 Cognigine Corporation Apparatus and method of implementing systems on silicon using dynamic-adaptive run-time reconfigurable circuits for processing multiple, independent data and control streams of varying rates
JP2003505753A (ja) 1999-06-10 2003-02-12 ペーアーツェーテー インフォルマツィオーンステヒノロギー ゲゼルシャフト ミット ベシュレンクテル ハフツング セル構造におけるシーケンス分割方法
JP3922859B2 (ja) * 1999-12-28 2007-05-30 株式会社リコー 画像処理装置、画像処理方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
US7308559B2 (en) * 2000-02-29 2007-12-11 International Business Machines Corporation Digital signal processor with cascaded SIMD organization
US6754801B1 (en) * 2000-08-22 2004-06-22 Micron Technology, Inc. Method and apparatus for a shift register based interconnection for a massively parallel processor array
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US9552047B2 (en) 2001-03-05 2017-01-24 Pact Xpp Technologies Ag Multiprocessor having runtime adjustable clock and clock dependent power supply
US9250908B2 (en) 2001-03-05 2016-02-02 Pact Xpp Technologies Ag Multi-processor bus and cache interconnection system
US9411532B2 (en) 2001-09-07 2016-08-09 Pact Xpp Technologies Ag Methods and systems for transferring data between a processing device and external devices
US9141390B2 (en) 2001-03-05 2015-09-22 Pact Xpp Technologies Ag Method of processing data with an array of data processors according to application ID
US9436631B2 (en) 2001-03-05 2016-09-06 Pact Xpp Technologies Ag Chip including memory element storing higher level memory data on a page by page basis
US10031733B2 (en) 2001-06-20 2018-07-24 Scientia Sol Mentis Ag Method for processing data
US9170812B2 (en) 2002-03-21 2015-10-27 Pact Xpp Technologies Ag Data processing system having integrated pipelined array data processor
US7394284B2 (en) 2002-09-06 2008-07-01 Pact Xpp Technologies Ag Reconfigurable sequencer structure
US7126991B1 (en) * 2003-02-03 2006-10-24 Tibet MIMAR Method for programmable motion estimation in a SIMD processor
US20040252547A1 (en) * 2003-06-06 2004-12-16 Chengpu Wang Concurrent Processing Memory
JP4700611B2 (ja) * 2003-08-28 2011-06-15 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト データ処理装置およびデータ処理方法
US20060215929A1 (en) * 2005-03-23 2006-09-28 David Fresneau Methods and apparatus for image convolution
US7602395B1 (en) * 2005-04-22 2009-10-13 Nvidia Corporation Programming multiple chips from a command buffer for stereo image generation
US7734114B1 (en) 2005-12-07 2010-06-08 Marvell International Ltd. Intelligent saturation of video data
JP5402938B2 (ja) * 2008-03-03 2014-01-29 日本電気株式会社 パイプラインリングバスに接続された異なる帯域幅のプロセシングユニットを有するプロセッサのアーキテクチャにおけるプロセシングユニット間の高速なデータ交換のための制御装置
RU2376637C1 (ru) * 2008-03-28 2009-12-20 Валерий Александрович Бимаков Устройство обработки двухмерных и трехмерных изображений
US8130229B2 (en) 2009-11-17 2012-03-06 Analog Devices, Inc. Methods and apparatus for image processing at pixel rate
DK177161B1 (en) 2010-12-17 2012-03-12 Concurrent Vision Aps Method and device for finding nearest neighbor
DK177154B1 (da) 2010-12-17 2012-03-05 Concurrent Vision Aps Method and device for parallel processing of images
US9749548B2 (en) 2015-01-22 2017-08-29 Google Inc. Virtual linebuffers for image signal processors
US9769356B2 (en) 2015-04-23 2017-09-19 Google Inc. Two dimensional shift array for image processor
US10291813B2 (en) 2015-04-23 2019-05-14 Google Llc Sheet generator for image processor
US9772852B2 (en) * 2015-04-23 2017-09-26 Google Inc. Energy efficient processor core architecture for image processor
US9785423B2 (en) 2015-04-23 2017-10-10 Google Inc. Compiler for translating between a virtual image processor instruction set architecture (ISA) and target hardware having a two-dimensional shift array structure
US9965824B2 (en) 2015-04-23 2018-05-08 Google Llc Architecture for high performance, power efficient, programmable image processing
US10095479B2 (en) 2015-04-23 2018-10-09 Google Llc Virtual image processor instruction set architecture (ISA) and memory model and exemplary target hardware having a two-dimensional shift array structure
US9756268B2 (en) 2015-04-23 2017-09-05 Google Inc. Line buffer unit for image processor
US10313641B2 (en) 2015-12-04 2019-06-04 Google Llc Shift register with reduced wiring complexity
US9830150B2 (en) 2015-12-04 2017-11-28 Google Llc Multi-functional execution lane for image processor
US10204396B2 (en) 2016-02-26 2019-02-12 Google Llc Compiler managed memory for image processor
US10387988B2 (en) 2016-02-26 2019-08-20 Google Llc Compiler techniques for mapping program code to a high performance, power efficient, programmable image processing hardware platform
US10380969B2 (en) 2016-02-28 2019-08-13 Google Llc Macro I/O unit for image processor
US20180005059A1 (en) 2016-07-01 2018-01-04 Google Inc. Statistics Operations On Two Dimensional Image Processor
US10546211B2 (en) 2016-07-01 2020-01-28 Google Llc Convolutional neural network on programmable two dimensional image processor
US20180005346A1 (en) 2016-07-01 2018-01-04 Google Inc. Core Processes For Block Operations On An Image Processor Having A Two-Dimensional Execution Lane Array and A Two-Dimensional Shift Register
US20180007302A1 (en) 2016-07-01 2018-01-04 Google Inc. Block Operations For An Image Processor Having A Two-Dimensional Execution Lane Array and A Two-Dimensional Shift Register
KR102008287B1 (ko) * 2017-05-23 2019-08-07 고려대학교 산학협력단 양방향 선입 선출 메모리와 이를 이용하는 컨볼루션 연산 처리 장치
CN108550102B (zh) * 2018-04-25 2022-05-17 珠海全志科技股份有限公司 一种硬件加速器

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0727515B2 (ja) * 1987-03-05 1995-03-29 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 2次元メッシュ・アレイの処理要素
US4975843A (en) * 1988-11-25 1990-12-04 Picker International, Inc. Parallel array processor with interconnected functions for image processing
DE4019040A1 (de) * 1990-06-14 1991-12-19 Philips Patentverwaltung Multirechnersystem

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100444990B1 (ko) * 2001-12-29 2004-08-21 삼성전자주식회사 신호 처리 시스템

Also Published As

Publication number Publication date
JP2000503427A (ja) 2000-03-21
DE59607143D1 (de) 2001-07-26
EP0875031A1 (de) 1998-11-04
KR100415417B1 (ko) 2004-04-17
JP3573755B2 (ja) 2004-10-06
WO1997026603A1 (de) 1997-07-24
EP0875031B1 (de) 2001-06-20
US6049859A (en) 2000-04-11

Similar Documents

Publication Publication Date Title
KR100415417B1 (ko) 이미지-처리프로세서
US5287532A (en) Processor elements having multi-byte structure shift register for shifting data either byte wise or bit wise with single-bit output formed at bit positions thereof spaced by one byte
US12327114B2 (en) Processing cores and information transfer circuits arranged in matrix
US11995027B2 (en) Neural processing accelerator
US4748585A (en) Processor utilizing reconfigurable process segments to accomodate data word length
US7818539B2 (en) System and method for performing efficient conditional vector operations for data parallel architectures involving both input and conditional vector values
US5175863A (en) Signal data processing system having independently, simultaneously operable alu and macu
US5421019A (en) Parallel data processor
US5179714A (en) Parallel bit serial data processor
KR100291383B1 (ko) 디지털신호처리를위한명령을지원하는모듈계산장치및방법
EP0085520A2 (en) An array processor architecture utilizing modular elemental processors
EP0237013A2 (en) Adaptive instruction processing by array processor having processor identification and data dependent status registers in each processing element
EP0539595A1 (en) Data processor and data processing method
EP1656622B1 (en) Parallel processing array
US20030140212A1 (en) Single instruction multiple data array cell
JPH0727516B2 (ja) Simdアレイ・プロセツサ
GB2062915A (en) Parallel array processor system
JPH04267466A (ja) 連想並列処理システム
US6269435B1 (en) System and method for implementing conditional vector operations in which an input vector containing multiple operands to be used in conditional operations is divided into two or more output vectors based on a condition vector
US7725520B2 (en) Processor
KR20100092805A (ko) 재구성 가능한 구조의 프로세서
EP0112885A1 (en) CONNECTION LEVEL USED IN A MODULAR DATA FIELD PROCESSOR.
US4524428A (en) Modular input-programmable logic circuits for use in a modular array processor
JP5971635B2 (ja) ベクトルユニット共有の装置および方法
Wilson One dimensional SIMD architectures-the AIS-5000

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 19980714

Patent event code: PA01051R01D

Comment text: International Patent Application

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20010813

Comment text: Request for Examination of Application

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20031022

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20040105

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20040106

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20061228

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20080103

Start annual number: 5

End annual number: 5

PR1001 Payment of annual fee

Payment date: 20090105

Start annual number: 6

End annual number: 6

PR1001 Payment of annual fee

Payment date: 20091230

Start annual number: 7

End annual number: 7

PR1001 Payment of annual fee

Payment date: 20101229

Start annual number: 8

End annual number: 8

PR1001 Payment of annual fee

Payment date: 20111227

Start annual number: 9

End annual number: 9

FPAY Annual fee payment

Payment date: 20121231

Year of fee payment: 10

PR1001 Payment of annual fee

Payment date: 20121231

Start annual number: 10

End annual number: 10

FPAY Annual fee payment

Payment date: 20131230

Year of fee payment: 11

PR1001 Payment of annual fee

Payment date: 20131230

Start annual number: 11

End annual number: 11

FPAY Annual fee payment

Payment date: 20141229

Year of fee payment: 12

PR1001 Payment of annual fee

Payment date: 20141229

Start annual number: 12

End annual number: 12

FPAY Annual fee payment

Payment date: 20151228

Year of fee payment: 13

PR1001 Payment of annual fee

Payment date: 20151228

Start annual number: 13

End annual number: 13

EXPY Expiration of term
PC1801 Expiration of term

Termination date: 20170613

Termination category: Expiration of duration