KR100500742B1 - 1개이상의처리요소를사용하는신호처리장치 - Google Patents

1개이상의처리요소를사용하는신호처리장치 Download PDF

Info

Publication number
KR100500742B1
KR100500742B1 KR10-1998-0705114A KR19980705114A KR100500742B1 KR 100500742 B1 KR100500742 B1 KR 100500742B1 KR 19980705114 A KR19980705114 A KR 19980705114A KR 100500742 B1 KR100500742 B1 KR 100500742B1
Authority
KR
South Korea
Prior art keywords
data
processing
processing element
communication connection
processes
Prior art date
Application number
KR10-1998-0705114A
Other languages
English (en)
Other versions
KR19990076985A (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 KR19990076985A publication Critical patent/KR19990076985A/ko
Application granted granted Critical
Publication of KR100500742B1 publication Critical patent/KR100500742B1/ko

Links

Classifications

    • 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/82Architectures of general purpose stored program computers data or demand driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven

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)
  • Multi Processors (AREA)

Abstract

분산형 디지탈 신호 처리가 다수의 처리 요소에 의해 실행된다. 신호 처리 프로세스는 데이터 흐름 원리에 따라 개개의 처리 요소에 대해 스케줄링된다. 이 목적을 위해, 신호 샘플의 흐름은 데이터 토큰들로 분할되고, 각각의 토큰들은 여러개의 샘플들을 포함한다. 프로세스는, 이 프로세스를 실행하도록 제공된 데이터 토큰의 검출에 응답하여 처리 요소에서 개시된다. 제어 장치에 의해 검출 처리가 되고, 이에 응답하여 제어 장치는, 관련된 데이터 토큰을 생성하는 제1 처리 요소와 상기 데이터 토큰에 존재하는 데이터 항목들을 처리하는 제2 처리 요소 사이에 통신 접속을 할당한다. 따라서, 통신 접속의 할당에 의해 스케줄링이 이루어진다. 더 나아가, 교착 문제를 피하기 위해, 프로세스의 실행 순서에 관해 제약이 가해진다.

Description

1개 이상의 처리 요소를 사용하는 신호 처리 장치
본 발명은, 프로세스들을 실행하기 위한 신호 처리 장치에 관한 것으로서, 제1 프로세스는 프로세스 식별(process identification)을 갖는 데이터 토큰(data token) 및 복수의 데이터 항목(data item)들을 생성하는 반면, 제2 프로세스는 제1 프로세스의 데이터 항목을 처리하며, 이 신호 처리 장치는;
- 상기 제1 프로세스를 실행하고 상기 데이터 항목들을 연속적으로 생성하는 제1 처리 요소, 및
- 상기 데이터 토큰의 수신에 응답하여 상기 프로세스 식별의 제어하에서 상기 제2 프로세스에 따라 상기 복수의 데이터 항목들을 처리하는 제2 처리 요소를 포함한다.
이러한 종류의 신호 처리 장치는, 1994년 IEEE 회보, Custom Integrated Circuits Conference(CICC; San Diego, 1994년 5월)의 제103-106면에 있는, Bang W. Lee 등에 의한 논문 "Data Flow Processor for Multi-standard Video Codec"에 공지되어 있다.
명백히, 비디오 신호 처리는, 현재의 IC 기술로는 다수의 병렬 처리 요소들로 병렬 처리함으로써만 달성될 수 있는 처리 속도를 요구한다. 병렬 처리 스케줄링은, 데이터 항목들에 대해 수행되는 다양한 병렬 프로세스들의 스케줄링을 정의하는 중앙 조정형으로 프로그램 제어되는 제어 흐름 구조(control flow architecture)를 통상적으로 이용한다.
Bang W. Lee의 상기 문헌에서는 데이터 흐름 원리에 따라 병렬 프로세서들을 스케줄링하는 것을 제안하고 있다. 데이터 흐름 원리에 따르면, 다양한 프로세스들에 따라 처리되는 데이터 토큰이라 불리는 데이터 단위(data unit)가 이용된다. 각각의 데이터 토큰은 통상적인 데이터 항목들뿐만 아니라 프로세스 식별을 포함하고 있어, 이로부터 데이터 항목에 대해 수행될 프로세스가 추론될 수 있다. 처리기는 처리될 데이터 토큰의 이용가능성에 응답하여 프로세스를 개시하는데, 그 프로세스는, 어느 순간에 어떤 프로세스가 개시되어야 하는지를 결정하는 중앙 조정형 프로그램 제어 없이, 프로세스 식별에 기초하여 선택되는 것이다.
도 1은 신호 처리 장치를 나타내는 도면.
도 2는 데이터 흐름 그래프의 일 예를 나타내는 도면.
도 3은 처리 요소를 나타내는 도면.
도 4는 제어기를 위한 표를 나타내는 도면.
도 5는 제어기를 위한 흐름도를 나타내는 도면.
도 6은 데이터 흐름 그래프의 일 예를 나타내는 도면.
도 7은 스케줄링의 일 예를 나타내는 도면.
본 발명의 목적은 특히 처리 효율이 더욱 개선된 종류의 신호 처리 장치를 제공하는 것이다.
이를 달성하기 위해, 본 발명에 따른 신호 처리 장치는, 제2 처리 요소가 데이터 토큰의 수신 개시에 응답하여, 제1 처리 요소가 상기 데이터 토큰의 데이터 항목을 이미 생성하였는지의 여부와는 무관하게, 상기 데이터 항목들의 처리를 시작하도록 되어있는 것을 특징으로 한다. 따라서, 신호 처리 장치는, 데이터 항목들의 흐름 또는 그 세그먼트들에서 연속적인 프로세스들이 병렬로 수행되는 파이프라인(pipeline)으로서 동작한다. 데이터 토큰은, 복수의 데이터 항목들을 포함하는 흐름의 일부로서, 예를 들면, 시간-연속 또는 공간-연속 신호의 샘플들을 나타내며, 상기 데이터 항목들 각각은 한 프로세스 동안 원칙적으로 동일하게 처리된다. 따라서, 한 흐름의 복수의 세그먼트들이 교대로 처리 요소에 도달할 수 있다. 여기서, 각각의 세그먼트는 길이가 제한되어 있고, 흐름 세그먼트 상에서의 한 프로세스의 시작은 전체 흐름 세그먼트에 대한 데이터 흐름 원리에 따라 프로세스 식별을 이용하여 일단 스케줄링한다. 이러한 방식은, 데이터 토큰을 처리하기 위한 프로세스를 분할할 수 없는 것으로서 더 이상 취급하지는 않는다는 점에서 데이터 흐름 원리로부터 벗어난다.
본 발명에 따른 신호 처리 장치의 일 실시예는, 제1 및 제2 처리 요소가 적어도 3개의 처리 요소들로 된 시스템의 일부를 형성하고, 이 시스템의 처리 요소들 사이에서 할당가능한 통신 접속을 포함하며, 이 실시예의 신호 처리 장치는, 상기 처리 요소들로 이루어진 상기 시스템 상에 상기 프로세스들을 맵핑하는 것에 관한 정보를 구비한 할당 제어기를 포함하며, 상기 할당 제어기는 데이터 토큰의 생성 개시에 응답하여 상기 데이터 토큰 내의 상기 프로세스 식별에 관련한 상기 맵핑 정보의 제어하에서, 상기 제1 처리 요소로부터의 상기 데이터 토큰을 상기 제2 처리 요소의 입력으로 전송하기 위한 통신 접속을 할당하되, 상기 통신 접속이 또 다른 데이터 토큰을 상기 제2 처리 요소의 입력으로 전송하기 위해 할당되어 있지 않은 경우에 상기 통신 접속을 할당하는 것을 특징으로 한다. 따라서, 상기 할당 제어기는 이러한 스케줄링을 실제로 제공한다. 만일 할당 제어기가 제2 처리 요소에 대한 프로세스 식별을 갖는 데이터 토큰을 수행할 경우, 제2 처리 요소는 이에 응답하여 제2 프로세스의 실행을 개시할 것이다.
본 발명에 따른 신호 처리 장치의 또 다른 실시예는, 제1 처리 요소가 처리 장치, 및 상기 처리 장치와 통신 접속 사이에 있는 출력 FIFO(선입 선출)를 구비하며, 상기 처리 장치는, 제1 프로세스를 실행하고, 데이터 항목들을 생성하며, 이들 데이타 항목들을 상기 출력 FIFO에 연속적으로 기입하고, 만일 할당 제어기가 데이터 토큰 전송용의 통신 접속을 할당받았을 경우, 상기 데이타 항목들이 상기 통신 접속을 통해 전송되도록 상기 출력 FIFO로부터 상기 데이터 항목들이 연속적으로 판독되는 것을 특징으로 한다. 따라서, 제1 처리 요소는, 예를 들면, 제2 처리 요소가 이전 데이터 토큰의 처리에 여전히 관여하고 있기 때문에 또는 제2 프로세스에서 상기 제2 데이터 토큰과 조합하여 처리될 추가의 데이터 토큰의 생성이 아직 시작되지 않았기 때문에 할당 제어기가 데이터 토큰의 전송을 위한 통신 접속을 아직 할당하지 않았더라도, 데이터 항목의 발생을 계속할 수 있다.
본 발명에 따른 신호 처리 장치의 또 다른 실시예는 제2 처리 요소가 처리 장치 및, 상기 처리 장치와 처리 요소의 입력 사이에 있는 입력 FIFO를 구비하고, 데이터 항목들은 제1 처리 요소로부터 통신 접속을 통해 상기 입력 FIFO로 연속적으로 기입되고, 상기 처리 장치는 제2 프로세스에 따라 처리하기 위해 상기 FIFO로부터 상기 데이터 항목들을 연속적으로 판독하고, 할당 제어기는, 선행 데이터 토큰의 최종 데이터 항목이 상기 입력 FIFO에 기입되었다는 사실의 검출에 응답하여 데이터 토큰의 전송을 위해 상기 제2 처리 요소에 상기 통신 접속을 할당하도록 되어 있는 것을 특징으로 한다. 따라서, 처리 장치는 데이터 토큰들의 도착 순서대로 데이터 토큰들을 처리하므로, 데이터 흐름 처리를 위해 특별히 설계될 필요가 없다. 따라서, 데이터 토큰의 전송은 이전 데이터 토큰이 완전히 처리되기 이전에 미리 시작될 수 있다.
데이터 흐름 원리에 따른 처리는 교착상태(deadlock)의 위험을 포함한다. 교착은, 예를 들어, 데이터 토큰들이 임의의 프로세스에 대한 모든 입력들을 위해 이용할 수 없고, 서로 다른 프로세스들을 위해 생성된 과도한 수의 데이터 토큰들로 인하여 처리가 정지할 때 발생한다. 이는 각각의 경우, 특정 기능(DCT, 필터링 등)을 갖는 프로세스들의 실행을 위해서는 매우 효율적으로 구성되어 있지만 다른 프로세스들들을 실행할 수 없는 특정 기능 처리 요소들을 포함하는 신호 처리 장치에서 주목할만한 문제이다. 결과적으로, 교착상태는 처리 요소들에 대한 프로세스 할당을 변경시키는 것으로 방지될 수 없다.
동일한 처리 요소들에 복수의 프로세스들을 할당하는 것으로 인하여 발생하는 또 다른 문제점은 소위 "결핍(starvation)"이라 한다. 결핍에 의해 악영향을 받는 프로세스는 좀처럼 실행되지 않는데, 이는 처리 요소에 도달하는 다른 프로세스들의 데이터 토큰이 관련 프로세스의 데이타 토큰의 수보다 훨씬 많기 때문이다.
본 발명에 따른 신호 처리 장치의 일 실시예는,
- 프로그램가능하게 선택된 다수의 프로세스들의 처리 시퀀스를 프로그래밍하기 위한 시퀀스 프로그래밍 수단;
- 상기 시퀀스 프로그래밍 수단에서 프로그래밍된 프로세스들의 처리 시퀀스에 따라 프로세스들이 통신 접속을 통해 데이터 토큰들을 전송하는 전송 시퀀스에 관하여 제약을 부여하기 위한 시퀀싱 수단을 포함하는 것을 특징으로 한다. 따라서, 신호 처리 장치의 프로그래밍 동안, 프로그래머 또는 컴파일러는, 교착상태 및 결핍을 방지하기 위한 조치로서, 예를 들면, 하나의 동일한 처리 요소들에 할당된 서로 다른 프로세스들에 대한 입력들을 제공하는 프로세스가 교대로 시작되도록 특정할 수 있다.
본 발명에 따른 신호 처리 장치의 또 다른 실시예는, 제2 프로세스가 처리 시퀀스에 따라 아직 종료하지 않는 한, 데이터 토큰 전송을 위한 접속 할당을 저지하도록 시퀀스 프로그래밍 수단이 할당 제어기에 결합되는 것을 특징으로 한다. 따라서, 어찌되었거나 이미 필요한 것으로 된 통신 중재는, 시퀀스에 대해 제약을 부가하기 위해 이용된다.
본 발명에 따른 신호 처리 장치의 또 다른 실시예에서 제2 처리 요소는, 추가 입력을 가지며, 제2 프로세스는 제3 프로세스와 함께 제2 처리 요소에 맵핑되고, 제2 프로세스는 입력 및 추가 입력을 통해 각각 제1 프로세스 및 제4 프로세스로부터 데이터를 수신하고, 제2 프로세스는 입력 및 추가 입력을 통해 각각 제5 프로세스 및 제6 프로세스로부터 데이터를 수신하고, 시퀀스 프로그래밍 수단은, 제1 프로세스 및 제5 프로세스의 데이터 토큰들이 통신 접속을 통해 각각 제1 프로세스 및 제2 프로세스로 전송되는 시퀀스가, 제4 프로세스 및 제6 프로세스 데이터가 통신 접속을 통해 각각 제1 프로세스 및 제2 프로세스로 전송되는 시퀀스에 대응하도록 프로그래밍되는 것을 특징으로 한다. 따라서, 처리 요소들이 입력들 중의 하나에 대해 서로 다른 데이터 토큰들을 생성함으로써 다른 입력에 대한 임의의 연관된 데이터 토큰의 생성을 개시하지 않는 경우에 발생하는 교착 상황이 방지될 수 있다.
본 발명에 따른 신호 처리 장치의 또 다른 실시예는, 제2 처리 요소가 추가의 데이터 토큰을 수신하기 위해 통신 접속에 접속된 추가 입력을 가지며, 제2 프로세스는 데이터 토큰 및 추가 데이터 토큰으로부터 데이터 항목들을 조합하여 처리하고, 할당 제어기는, 데이터 토큰의 생성 개시 및 추가 데이터 토큰의 생성 개시가 상기 할당 제어기에 의해 검출된 경우에만, 상기 데이터 토큰의 전송을 위한 통신 접속을 할당하는 것을 특징으로 한다. 따라서, 할당 제어기는 소위 데이터 토큰들의 정합을 제공하며, 여기서 정합이라 함은, 쌍을 이루는 방식으로 제2 처리 요소에 도달하는 데이터 토큰들이 동일한 제2 프로세스를 위해 의도된 것임을 의미한다. 따라서, 제2 처리 요소는 추가의 정합 없이 인입되는 데이터 토큰들을 처리할 수 있다.
본 발명에 따른 신호 처리 장치의 이들 장점 및 다른 유리한 특징들을 도면을 참조하여 이하에 보다 상세히 기술한다.
도 1은 신호 처리 장치를 나타낸다. 이 장치는 예를 들면, 5개의 처리 요소(10a-10e), 프로그램가능한 제어 장치(12) 및 크로스바 스위치(14)를 포함한다. 이 처리 요소들(10a-10e)은 크로스바 스위치(14)를 통해 상호 접속될 수 있다. 크로스바 스위치(14)는 제어 장치(12)에 의해 제어된다.
도 2는 데이터 흐름 그래프(20)의 일 예를 나타낸다. 데이터 흐름 그래프(20)는 프로세스들(A, B, C, D, E, P, Q)로 구성된 복합 데이터 처리 프로세스를 나타낸다. 각각의 프로세스(A, B, C, D, E, P, Q)는 주어진 데이터 처리 기능에 대응한다. 프로세스 A의 기능은 예를 들면, 푸리에 변환(Fourier transformation)인 반면, 프로세스(B 및 C)은 푸리에 변환의 실수성분 및 허수성분의 양자화일 수 있고; 또 다른 프로세스는 허프만 디코딩(Huffman decoding) 또는 런길이(run length) 디코딩 동작 등을 실행할 수 있다. 다른 프로세스들은 다른 데이터에 대해 실행되는 동일한 기능을 가질 수 있다.
데이터 흐름 그래프(20)에서 각각의 프로세스는 각각의 노드(A, B, C, D, E, P, Q)로 상징화된다. 데이터 흐름 그래프에서 에지(E0-E9)는 프로세스들(A, B, C, D, E, P, Q) 간의 데이터 교환을 상징한다. 데이터 흐름 그래프(20)에 의하면, 데이터는 에지(E0)를 통해 프로세스(A)로 들어간다. 프로세스(A)는 에지(E1, E2) 각각을 통해 프로세스(B 및 C)에 인가되는 2가지 유형의 출력 데이터를 생성한다. 프로세스(B)는 다시 에지(E3 및 E4) 각각을 통해 프로세스(D 및 P)에 인가되는 2가지 유형의 출력 데이터를 발생한다. 프로세스(C)는 에지(E5)를 통해 프로세스(P)에 인가되는 1가지 유형의 출력 데이터를 생성한다. 프로세스(P)는 2가지 유형의 입력 데이터를 수신하고, 에지(E7)를 통해 프로세스(E)에 인가되는 1가지 유형의 출력 데이터를 발생한다. 프로세스(D)는 에지(E6)를 통해 프로세스(Q)에 인가되는 출력 데이터를 생성하고, 프로세스(E)는 다시 에지(E8)를 통해 프로세스(Q)에 인가되는 출력 데이터를 생성한다. 프로세스(Q)는 에지(E9)를 통해 복합 데이터 처리 동작의 최종 결과를 출력한다.
동작하는 동안에, 도 1의 신호 처리기는 예를 들어, 일련의 화상 신호 각각에 대한 데이터 흐름 그래프(20)를 실행시킨다. 이를 위해, 여러 가지 프로세스들(A, B, C, D, E, P, Q)이 처리 요소(10a-10e)들로 된 시스템 상으로 맵핑된다. 예를 들면, 프로세스(A 및 B)는 처리 요소(10a) 상으로, 프로세스(P 및 Q)는 처리 요소(10b) 상으로, 프로세스(C, D, E)는 처리 요소(10c-10e) 상으로 각각 맵핑된다. 따라서, 수개의 프로세스들이 동일한 처리 요소 상에서 맵핑될 수 있다. 본 실시예가 아닌 다른 실시예에서는, 어떠한 프로세스도 맵핑되지 않는 처리 요소가 존재할 수 있다.
인입되는 화상 신호는 프로세스(A)가 맵핑된 처리 요소(10a)에 인가된다. 처리 요소(10a)는 각각의 화상에 대해 프로세스(A)의 기능을 실행하고, 각각의 화상에 대해 프로세스(A)로부터 후속하는 2가지 유형의 데이터 객체를 발생한다. 이들 2가지 유형의 데이터 객체들은 프로세스(B,C)에 맵핑되고, 데이터 흐름 그래프(20)에 따라 프로세스(A)의 결과를 수신하는 처리 요소(10a, 10c)로 매시간 크로스바 스위치(14)를 통해 전송된다. 데이터 객체는 다시 처리 요소(10a, 10c)에서 처리된다.
도 3은 처리 요소의 일 실시예를 나타낸다. 처리 요소는 각각의 FIFO(52a, 52b)를 통해 처리 요소의 입력들에 접속된 2개의 입력을 갖는 처리 장치(50)를 포함한다. 더욱이, 처리 장치(50)의 출력은 FIFO(54)를 통해 라우터(router)(56)의 입력에 결합된다. 처리 요소는 또한 실행 제어 장치(58)도 포함한다. FIFO(52a, 52b, 54) 각각은 입력-클록 입력, 출력-클록 입력, FIFO 풀/낫-풀 출력(full/not-full output), 및 FIFO 엠프티/낫-엠프티 출력(empty/not-empty output)을 갖는다. 처리 장치(50)의 입력에서 FIFO(52a, 52b)의 출력-클록 입력은 이들 FIFO의 FIFO 엠프티/낫-엠프티 출력과 함께 실행 제어 장치(58)에 결합된다. 처리 장치(50)의 출력에서 FIFO(54)의 입력-클록 입력 및 풀/낫-풀 출력 역시 실행 제어 장치(58)에 결합된다.
입력에서 FIFO(52a, 52b)의 입력-클록 입력 및 FIFO 풀/낫-풀 출력은 제어 장치(12)에 결합된다. FIFO(54)의 출력-클록 입력 및 FIFO 엠프티/낫-엠프티 출력은 라우터(router)(56)에 결합된다. 라우터는 제어 장치(12)(도시되지 않음)에 접속된다.
각각의 데이터 토큰들은 동작하는 동안에 입력 FIFO(52a, 52b)의 입력에 인가된다. 데이터 토큰은 예를 들어, 함께 어울려 화상을 표현하며 연속적으로 입력 FIFO(52a, 52b)에 기입되는 다수의 데이터 항목들을 포함한다. 데이터 토큰은 또한 예를 들어, 이 데이터 토큰 내의 데이터 항목들의 수를 나타내는 길이 코드와, 화상 신호를 처리하는 기능을 나타내는 지시와, 데이터 흐름 그래프에서 이러한 기능의 출력 데이터가 대응하는 에지의 식별을 포함한다.
실행 제어 장치(58)는 예를 들면, FIFO(52a, 52b)가 입력에 낫-엠프티 신호를 인가하고, FIFO(54)가 출력에 낫-풀 신호를 인가할 때 처리 장치(50)의 활성화를 제어한다. 처리 장치(50)가 활성화될 때, 이 장치는 FIFO(52a, 52b)로부터 인입하는 데이터에 대해 수행될 기능의 지시 및 길이 코드를 판독한다. 후속해서, 처리 장치(50)는 입력 FIFO(52a, 52b)로부터 연속적으로 데이터 항목들을 판독한다. 데이터 항목들은, 기능 지시에 따라 예를 들어, 푸리에 변환의 실행에 의해 또는 가변 길이 디코딩의 실행에 의해 처리된다. 기능 지시 및 제1 데이터 항목을 입력 FIFO(52a, 52b)에서 입수하자마자 처리가 개시될 수 있다. 모든 데이터 항목이 입수될 때까지 동작의 개시가 지연될 필요는 없다. 일반적으로 말하자면, 입력 FIFO(52a, 52b)는 너무 짧아서 데이터 토큰 내의 모든 데이터 항목들을 동시에 수용할 수는 없을 것이다.
처리 동작은 일련의 출력 데이터 항목들을 생성한다. 처리 장치(50)는 출력 FIFO(54)에 이들 데이터 항목들을 연속적으로 인가하는데, 이 기능의 출력 데이터가 대응하는 에지의 식별에 의해 선행한다. 기능에 따라, 모든 데이터 항목이 입력에 도달하기 전에, 출력 FIFO(54)로의 데이터 항목들의 공급이 미리 시작될 수 있다.
처리 장치(50)의 출력 상에서 FIFO(54)로부터의 엠프티/낫-엠프티 신호에 기초하여, 라우터(56)는 출력 데이터가 이용가능한지의 여부를 검출한다. 만일 이용가능하지만 그 이용가능성이 제어 장치(12)에 아직 신호되지 않은 경우, 그 이용가능성은 출력 데이터에 대응하는 데이터 흐름 그래프 내의 에지의 식별과 함께 제어 장치(12)로 통보된다. 이에 응답하여 제어 장치는, 출력 데이터 상에서 수행될 동작의 기능 및 그 동작으로부터 초래되는 에지의 식별을 라우터(56)에 표시해준다. 더욱이, 크로스바 스위치(14)를 통해, 제어 장치(12)는 관련 동작을 실행하는 처리 요소로의 접속을 할당한다.
제어 장치(12)는 통신 접속이 이용가능하다는 것을 라우터(56)에게 통보한 후, 라우터(56)는 크로스바 스위치(14)(도시하지 않음)를 통해 기능의 지시 및 에지의 식별을 디스패치한다. 처리 요소에 의해 실행된 프로세스가 1개 이상의 에지에 걸쳐 출력 데이터를 발생할 경우, 이들 에지는 양호하게는 연속적으로 번호가 지정되는 것이 좋다. 그러한 경우에, 제어 장치(12)는 최저수만을 라우터(56) 또는 처리 장치에 적용하면 되고, 그 때, 라우터(56) 또는 처리 장치는 최저수의 연속 출력 에지들을 자체 발생시킬 수 있다.
후속하여, 라우터(56)가 클록 신호를 출력 FIFO(54)의 출력-클록 입력에 순차로 인가함으로써, 데이터 항목들이 크로스바 스위치(14)(도시되지 않음)를 통해 출력 FIFO(52a, 52b)로부터 연속적으로 디스패치될 수 있다. 출력 데이터를 갖는 FIFO(54)가 비거나 출력 데이터가 인가되는 FIFO(52a, 52b)가 가득찬 경우에 디스패치가 중단되는 것이 보장된다. 이는 예를 들면, 제어 장치(12)에 의해서 제어되거나 또는 크로스바 스위치(14)를 통해 관련 처리 요소들(10a-10b) 간의 엠프티/낫-엠프티 및 풀/낫-풀 신호들의 교환에 의해 제어된다.
제어 장치(12)는 데이터 흐름 그래프의 재현을 포함하며 프로그램가능하기 때문에 서로 다른 데이터 흐름 그래프가 그 내부에 재현될 수 있다. 제어 장치(12)는 프로그램된 데이터 흐름 그래프가 실제로 실행되도록 하는 방식으로 처리 요소(10a-10e) 및 크로스바 스위치(14)를 제어한다.
도 4는, 제어 장치(12)에 의해 사용하기 위한 데이터 흐름 그래프를 표 형태로의 재현을 나타낸다. 데이터 흐름 그래프의 각각의 에지에 대하여, 표는 별개의 열을 포함한다. 각각의 열은 예를 들면,
- 관련 에지의 식별,
- 관련 에지를 통해 전송된 데이터에 대해 수행될 동작의 기능의 지시,
- 이러한 기능을 실행하는 처리 요소의 식별 및 필요할 경우, 데이터가 공급될 처리 요소 입력의 식별,
- 관련 에지를 통해 데이터를 이송한 후 데이터 이송이 허용될 수 있는 추가 에지의 식별을 포함한다.
도 5는 어떻게 이러한 표가 제어 장치(12)에 의해 사용되는지에 대한 일 예의 흐름도를 나타낸다. 이 흐름도는, 처리 요소(10a-10e)가 프로세스의 출력 데이터가 이송을 위해 이용가능하다는 것을 제어 장치(12)에 신호하고, 처리 요소(10a-10e)가 이 데이터의 대응하는 데이터 흐름 그래프에서의 에지를 통보한다는 가정에 기초한 것이다.
제어 장치(12)는, 예를 들면, 라운드-로빈(round-robin)에 기초하여, 처리 요소(10a-e) 각각에 대해 상기 흐름도를 반복적으로 실행한다. 흐름도의 제1 단계(40) 동안, 제어 장치(12)는 관련 제1 처리 요소(10a-10e)로부터 신호가 수신되었는지의 여부를 시험한다. 수신되지 않은 경우, 흐름도의 실행이 종료된다. 수신된 경우, 제어기(12)는 제2 단계(42)에서 관련 처리 요소(10a-10e)에 의해 통보된 에지에 대응하는 데이터 이송이 인에이블되었는지의 여부를 시험한다. 이러한 목적 및 이것이 수행되는 방식은 이후에 보다 상세히 기술될 것이고, 흐름도에 관련한 논의를 위해서는, 에지가 인에이블되지 않았을 경우, 제어 장치(12)는 흐름도의 실행을 종료하고, 데이터 이송이 인에이블되었을 경우, 제3 단계(44)를 실행한다는 사실만으로도 족하다. 제3 단계(44) 동안, 제어 장치(12)는, 통보된 에지 및 표에 기초하여, 처리 요소(10a-10e)중 어느 것이 이용가능 데이터를 처리할 것인지 그리고 이(제2) 처리 요소(10a-e)의 입력 중 어느 입력에 이 데이터가 인가되어야 하는지를 결정한다. 후속하는 제4 단계(46) 동안, 제어 장치(12)는, 이러한 입력이 다른 데이터의 공급을 위해 이미 역전되었는지 여부를 시험한다. 그럴 경우, 흐름도의 실행이 종료되고; 그렇지 않을 경우, 제어 장치(12)는 입력을 예약하고, 제5 단계(48)를 실행한다.
제5 단계(48) 동안, 제어 장치(12)는, 출력 데이터가 이용가능하다는 것을 통보한 제1 처리 요소(10a-10e)의 출력과 이 데이터를 처리할 제2 처리 요소(10a-10e)의 입력간에 접속이 이루어지도록 하는 방식으로 크로스바 스위치(14)를 제어한다. 제어 장치(12)는, 예를 들면, 에지의 인에이블/디스에이블 상태를 나타내는 메모리 요소를 적절히 로딩함으로써, 다른 출력에 대해 통보된 에지를 디스에이블시킨다. 후속해서, 제어 장치(12)는 통보된 에지 및 표에 기초하여, 추가의 에지가 인에이블되어야 하는지 여부를 결정한다. 그에 따라, 제어 장치(12)는 예를 들면, 관련 메모리 요소를 로딩함으로써 이러한 에지를 인에이블시킨다. 따라서, 표로부터 명백한 바와 같이, 원래의 통보된 에지는 직접 다시 인에이블될 수 있으므로, 결국 통보된 에지는 실제로 영구적으로 인에이블될 수 있다.
제어 장치(12)는 통보된 에지에 기초하여 표로부터 출력 데이터에 대하여 실행될 기능을 결정하고, 이러한 기능의 지시를 제1 처리 요소(10a-10e)에 인가한다. 더 나아가, 제어 장치는 이러한 기능을 실행하는 가장 낮은 수의 프로세스의 출력 에지의 식별을 결정하고, 이를 제1 처리 요소(10a-10e)에 인가한다. 그러므로, 각각의 에지 열마다, 제어 장치(12)는 양호하게는 이러한 에지가 데이터를 인가하는 프로세스의 기능에 관한 정보 외에 관련 프로세스의 출력 데이터를 전송하는 가장 낮은 수의 에지에 관한 정보(도시하지 않음)를 포함하는 것이 좋다. 그러나, 이러한 정보는, 프로세스 식별 정보와, 프로세스 식별/출력 에지 관계를 포함하는 표를 이용하여 찾을 수 있다.
본 발명에 따른 신호 처리 장치의 동작은 단순화된 데이터 흐름 그래프의 일 예를 기초하여 이하에 보다 상세히 기술될 것이다.
도 6은 데이터 흐름 그래프의 일 예를 나타낸다. 이러한 데이터 흐름 그래프는 5개의 프로세스(R, S, T, U, V)을 포함한다. 제1 프로세스(R)는 제1 프로세스(S) 및 연속된 제2 프로세스(U)로 각각 연장되는 2개의 출발 에지(I,J)들을 갖는다. 연속된 프로세스(S, U) 각각은 각각의 추가 연속 프로세스(T, V)까지 연장되는 1개의 출발 에지를 갖는다.
도 7은 도 6의 데이터 흐름 그래프의 프로세스들을 실행하는 스케줄링을 매우 단순화한 예를 나타낸다. 이 예는 도 6의 프로세스(R, S 및 U) 각각이 각각의 처리 요소에 의해 실행되고, 프로세스(T 및 V)가 동일한 처리 요소에 의해 실행된다는 가정에 기초한 것이다. 도 7은 처리 요소 내에서의 데이터 항목들의 생성을 나타내는 다수의 트레이스(QI, QJ, QS, QU 및 QT/V)를 포함한다. 도 7은 어느 접속이 크로바 스위치를 통해 할당되었는지를 나타내는 트레이스 ALL을 포함한다. 처음 2개의 트레이스(QI, QJ)는 제1 프로세스(R)을 실행하는 처리 요소 내의 데이터 항목들의 생성을 나타낸다. 제3 및 제4 트레이스(QS, QU)는 각각 제1 프로세스 및 연속된 제2 프로세스(S, U)를 실행하는 처리 요소 내에서의 데이터 항목들의 생성을 나타낸다. 제5 트레이스(QT/V)는 추가의 연속 프로세스들(T, V)을 실행하는 처리 요소의 출력 상에서의 데이터 항목들의 생성을 나타낸다.
도 7의 예에서는, 인입 에지(I)를 통해 도달하는 연속된 데이터 항목들에 응답하여, 프로세스(S)가 데이터 항목들의 내용에 의존하여 가변 수의 출력 데이터 항목들, 즉, 본 예에서는 1, 3, 4, 0, 4, 0, 1을 생성하는 것이 도시되어 있다. 이것은 예를 들어, MPEG 디코딩에 이용되는 가변 길이 디코더의 경우에 해당된다. 생성된 데이터 항목들은 데이터 토큰들을 형성하도록 결합된다. 프로세스(S) 그 자체는, 1개의 데이터 토큰을 형성하기 위해 결합되는 데이터 항목들의 수를 결정한다. 프로세스(S)는, 예를 들어, 생성된 데이터 항목들 중 매 4개를 데이터 토큰으로 결합한다. 프로세스(U)도 비슷하게 동작하지만, 본 예에서의 연속된 데이터 항목들에 응답하여, 각각 1, 2, 0, 1, 3, 0 데이터 항목들을 생성한다.
프로세스(S)가 데이터 항목들의 생성을 개시하는 즉시, 제어 장치(12)는 크로스바 스위치(14)를 통해 프로세스(S)를 실행하는 처리 요소로부터 프로세스(T)를 실행하는 처리 요소로의 접속을 할당한다. 수신된 2개의 데이터 항목마다, 프로세스(T)는 1개의 출력 데이터 항목을 생성한다. 프로세스(T)가 실행되고 있는 동안, 프로세스(U)도 데이터 항목들을 생성하기 시작한다. 이것은 제어 장치에 통보되지만, 직접적으로 할당을 유도하지는 않는다. 그 이유는 이들 데이터 항목에 대하여 프로세스(V)를 실행시키기 위한 처리 요소와 이 처리 요소들로의 접속이 여전히 프로세스(T)에 할당되어 있기 때문이다. 접속이 여전히 할당되지 않는 경우, 생성된 데이터 항목들은 프로세스(U)를 실행하는 처리 요소의 출력 FIFO에서 버퍼링된다. 따라서, 원한다면, 이 처리 요소는 생성된 데이터 항목들이 디스패치되기 전에 그 다음 프로세스를 미리 시작할 수 있다.
프로세스(V)를 실행하기로 된 처리 요소로의 접속은, 프로세스(S)의 전체 데이터 토큰(4개의 데이터 항목)이 프로세스(T)를 실행하는 처리 요소에 도달한 후에만 프로세스(V)에 공급하기 위한 프로세스(U)의 출력에 할당된다. 이에 응답하여, 데이터 항목들은 프로세스(U)를 실행하는 처리 요소의 출력 FIFO로부터 판독되고 프로세스(V)를 실행하는 처리 요소에 인가된다. 이에 응답하여 이 처리 요소는 프로세스(V)를 실행하기 시작한다. 그 이후의 트레이스들의 과정 중에, 이 처리 요소는, 데이터 토큰의 시작의 이용가능성에 의존하여, 프로세스(T) 또는 프로세스(V)를 교대로 실행한다. 따라서, 이 처리 요소는, 예를 들어, 프로세스(V)로부터 어떠한 데이터 토큰도 입수할 수 없을 경우, 프로세스(T)를 연속하여 두번 할당한다. 따라서, 주어진 순간에 이러한 처리 요소에 의해 실행되는 프로세스는 미리 결정되어 있지는 않지만, 데이터 항목들의 내용에 의존한다(예를 들면, 가변 길이 디코더에서). 따라서, 처리 요소가 미리 결정된 스케줄의 경우에서보다 더 효율적으로 사용될 수 있다.
본 실시예에서, 프로세스(T 및 V)를 실행하는 처리 요소는 필요한 데이터 항목이 도달하자마자 데이터 항목들을 처리한다. 만일 프로세스(T 및 V)가 또 다른 입력을 갖는다면, 이 처리 요소는 대응하는 데이터 항목들이 다른 입력 상에서 이용가능해질 때까지 데이터 항목들의 실행을 연기할 것이다. 그러나, 관련 데이터 항목들은 입력 FIFO에 저장되기 때문에, 크로스바 스위치(14)를 통한 데이터 항목들의 전송은 대기하는 동안에도 통상 계속될 수 있다. 따라서, 크로스바 스위치는, 다른 데이터 토큰의 전송을 위해 보다 일찍 자유롭게 된다.
원칙적으로, 프로세스 그 자체에서 데이터 토큰을 형성하기 위해 얼마나 많은 데이터 항목들이 결합될지가 결정된다. 이 개수의 선택은 타협의 여지가 있다. 소수의 데이터 항목들만을 포함하는 데이터 토큰들은 스케줄링의 융통성이 보다 크기 때문에 소정의 관점에서 유리하다.(데이터 토큰이 계속되는 경우, 심지어 데이터 토큰 내에서 어떠한 새로운 데이터 항목도 아직 이용가능하지 않더라고 처리 요소로의 접속은 다시 할당될 수 없다). 반면, 다수의 데이터 항목을 포함하는 데이터 토큰들은, 전송 오버헤드가 적고 제어 장치의 부담, 특히 중재의 부담을 덜어 주기 때문에 또 다른 면에서 유리하다. 그에 더하여, 그러한 데이터 항목들이 함께 처리되어야 한다는 사실 때문에, 최소수의 데이터 항목이 데이터 토큰에서 요구될 수도 있다. 데이터 토큰을 형성하도록 결합되는 데이터 항목들의 수의 선택은, 적시 응답(timely response)의 2차 조건과 같은 주어진 2차 조건하에 있을 경우, 비디오 디코딩과 같은 신호 처리 응용에서 조절가능하고 평균적인 효율을 유도한다. 따라서, 데이터 토큰을 형성하도록 결합될 데이터 항목들의 수는, 프로세스들이 함께 실행한다고 가정할 경우, 효율을 극대화시킬 수 있도록 선택되므로 바람직하다.
주어진 태스크 유형과 주어진 환경에서, 특별한 정합 장치가 사용되지 않을 경우, 데이터 흐름 원리에 따라 작동하는 처리 장치는 교착 상태에 빠질 수 있다. 이는 도 2의 데이터 흐름 그래프에 기초하여 도해될 수 있다. 프로세스들(P 및 Q)이 동일한 처리 요소에 의해 실행된다고 가정하자. 2개 프로세스 모두는 2개의 입력을 갖는다. 동일한 프로세스(P 또는 Q)를 위해 의도된 대응하는 데이터 토큰이 이 처리 요소의 입력에 존재하면, 관련된 프로세스의 실행을 유도한다. 그러나, 서로 다른 프로세서들을 위한 데이터 토큰들이 입력 FIFO 내의 다양한 입력 상에서 이용가능하면, 교착이 발생하여 하나의 프로세스도 실행될 수 없다.
이러한 교착 상황을 피하기 위해, 제어 장치(12)는, 선택된 프로세스들이 사전 설정된 시퀀스로만 데이터 토큰 전송을 위한 접속을 할당받도록 보장하는 메카니즘을 포함한다. 이로 인해, 프로그래머는, 예를 들어, 도 2의 데이터 흐름 그래프의 경우에, 프로세스(B, C, E 및 D)가 이러한 시퀀스로 순환적으로 접속을 할당받도록 할 수 있다(다른 처리들은 이들 처리와 독립적으로 접속을 할당받을 수 있다). 따라서, 프로그래머는, 프로세스들(P 및 Q)을 실행하는 처리 요소의 다양한 입력들 상의 데이터 토큰들이 동일한 프로세스(P 또는 Q)를 위해 의도된 시퀀스로 도달하는 것을 보장한다. 먼저, 예를 들면, 프로세스(B 또는 C)에만 접속이 할당될 것이다. 따라서, 앞서 설명된 교착을 발생될 수 없다. 명백히, 이것은, 다른 프로그램들, 예를 들어, C 및 D가 B 및 E와 마찬가지로 접속을 교대로 할당받도록 특정함으로써 달성될 수 있다(C 및 D는 프로세스들(P 및 Q)을 실행하는 처리 요소의 동일한 입력에 데이터 토큰들을 인가한다고 가정한다). 그러면, 처음에, 예를 들어, B 및 C만이 접속을 할당받을 것이다.
선택된 프로세스들이 미리 프로그램된 시퀀스로 접속을 할당받는 것을 보장하는 메카니즘은, 예를 들어, 주어진 에지의 활성화 이후에 데이터 흐름 그래프에서 추가의 에지가 인에이블되어야함을 가리키는 도 4의 표에 의해, 도 1의 장치에서 구현된다. 표에서, 예를 들어, 에지 E4(B의 출력) 이후에 에지 E5(C의 출력)가 추가의 에지로서 인에이블되도록 구현될 수 있다. 에지(E5)의 경우, E8이 추가의 에지로서 인에이블되어야 하는 것으로 프로그램될 수 있고, E8의 경우, E6가 추가의 에지로서 인에이블되어야 하는 것으로 프로그램될 수 있고, E6의 경우, E4가 추가의 에지로서 인에이블되어야 하는 것으로 프로그램될 수 있다. 다른 에지들은 영구적으로 인에이블될 수도 있다. 결국, 인에이블링의 관련된 초기 세팅을 통해, 프로그래머는 교착이 발생될 수 없도록 보장한다.
교착 문제를 피하기 위한 다른 방법은 메모리 기능을 갖는 처리 요소를 이용하는 것이다. 다른 모든 처리 요소와 마찬가지로, 이러한 처리 요소는 관련 접속이 제어 장치(14)에 의해 할당될 때, 크로스바 스위치(12)를 통해 데이터 토큰을 수신하고 디스패치할 수 있다. 메모리 처리 요소는 후속 단계에 전달하기 위해 많은 데이터 항목들을 저장할 수 있는 메모리를 포함한다.
메모리형 처리 요소는 예를 들어, 정합 기능을 수행할 수 있고, 데이터 토큰이 모든 입력에 대해 이용가능할 때까지 하나 이상의 입력을 갖는 주어진 프로세스에 대해 의도된 데이터 토큰들을 저장한다. 이러한 이용가능성에 응답하여, 관련 데이터 토큰들은 관련 프로세스를 실행하도록 의도되는 처리 요소에 인가된다. 더욱이, 메모리형 처리 요소는 수신된 데이터 토큰의 복사본들을 디스패치함으로써 데이터 토큰을 배가시키도록 작용할 수도 있다. 이것은, 예를 들면, 복수의 프로세스들이 동일한 데이터 항목들을 처리하고자 하는 경우에 유용하다.

Claims (9)

  1. 프로세스들의 실행을 위한 신호 처리 장치로서, 프로세스들 중 제1 프로세스는 프로세스 식별(process identification)을 갖는 데이터 토큰(data token) 및 복수의 데이터 항목(date item)들을 생성하는 반면, 제2 프로세스는 상기 제1 프로세스의 상기 데이터 항목들을 처리하고,
    - 상기 제1 프로세스를 실행하고 상기 데이터 항목들을 연속적으로 생성하는 제1 처리 요소, 및
    - 상기 데이터 토큰의 수신에 응답하여, 상기 프로세스 식별의 제어하에서 상기 제2 프로세스에 따라 상기 복수의 데이터 항목들을 처리하는 제2 처리 요소를 포함하는, 상기 신호 처리 장치에 있어서,
    상기 제2 처리 요소는, 상기 제1 처리 요소가 상기 데이터 토큰의 데이터 항목을 이미 생성하였는지의 여부에 관계없이, 상기 데이터 토큰의 수신 개시에 응답하여 데이터 항목들의 처리를 개시하도록 배열되어 있는 것을 특징으로 하는, 신호 처리 장치.
  2. 제1항에 있어서, 상기 제1 및 제2 처리 요소는, 적어도 3개의 처리 요소들로 이루어진 시스템의 일부를 형성하며, 상기 시스템의 처리 요소들 사이에 할당가능한 통신 접속을 포함하며,
    상기 신호 처리 장치는, 상기 처리 요소들로 이루어진 상기 시스템 상의 상기 프로세스들에 관한 맵핑 정보를 구비한 할당 제어기를 포함하며, 상기 할당 제어기는 상기 데이터 토큰의 생성 개시에 응답하고 또한 상기 데이터 토큰 내의 상기 프로세스 식별에 관련한 상기 맵핑 정보의 제어하에서, 상기 통신 접속이 상기 제2 처리 요소의 입력으로 또 다른 데이터 토큰을 전송하기 위해 할당되어 있지 않으면, 상기 데이터 토큰을 상기 제1 처리 요소로부터 상기 제2 처리 요소의 입력으로 전송하기 위한 통신 접속을 할당하는 것을 특징으로 하는, 신호 처리 장치.
  3. 제2항에 있어서, 상기 제1 처리 요소는 처리 장치, 및 상기 처리 장치와 통신 접속 사이에 있는 출력 FIFO(선입 선출)를 구비하며, 상기 처리 장치는 상기 제1 프로세스를 실행하고, 상기 데이터 항목들을 생성하고, 상기 데이터 항목들을 상기 출력 FIFO에 연속적으로 기입하며, 상기 할당 제어기가 상기 데이터 토큰을 전송하기 위한 통신 접속을 할당하였을 경우, 상기 데이터 항목들은 상기 통신 접속을 통해 전송하기 위해 상기 출력 FIFO로부터 연속적으로 판독되는 것을 특징으로 하는, 신호 처리 장치.
  4. 제3항에 있어서, 상기 출력 FIFO는, 상기 출력 FIFO가 가득찬(full) 경우, 상기 제1 프로세스의 실행을 보류하기 위해 상기 처리 장치에 결합된 "FIFO 풀" 출력을 갖는 것을 특징으로 하는, 신호 처리 장치.
  5. 제2항 내지 제4항 중 어느 한 항에 있어서, 상기 제2 처리 요소는 처리 장치, 및 상기 처리 장치와 상기 처리 요소의 입력 사이에 있는 입력 FIFO를 구비하고, 상기 데이터 항목들은 상기 제1 처리 요소로부터 상기 통신 접속을 통해 상기 입력 FIFO로 연속적으로 기입되고, 상기 처리 장치는 상기 제2 프로세스에 따라 처리하기 위해 상기 FIFO로부터 상기 데이터 항목들을 연속적으로 판독하며, 상기 할당 제어기는, 선행 데이터 토큰의 최종 데이터 항목이 입력 FIFO에 기입되었다는 사실의 검출에 응답하여, 상기 데이터 토큰의 전송을 위해 상기 통신 접속을 상기 제2 처리 요소에 할당하도록 되어 있는 것을 특징으로 하는, 신호 처리 장치.
  6. 제2항 내지 제4항 중 어느 한 항에 있어서, 상기 신호 처리 장치는,
    - 다수의 프로그램가능하게 선택된 프로세스들의 처리 시퀀스를 프로그래밍하기 위한 시퀀스 프로그래밍 수단; 및
    - 상기 시퀀스 프로그래밍 수단에서 프로그래밍된 프로세스들의 처리 시퀀스에 따라 프로세스들이 상기 통신 접속을 통해 데이터 토큰들을 전송하는 전송 시퀀스에 관하여 제약을 부여하기 위한 시퀀싱 수단을 포함하는 것을 특징으로 하는, 신호 처리 장치.
  7. 제6항에 있어서, 상기 시퀀스 프로그래밍 수단은, 상기 제2 프로세스가 상기 처리 시퀀스에 따라 아직 종료되지 않은 경우, 상기 데이터 토큰 전송을 위한 접속 할당을 저지하도록 할당 제어기에 결합되는 것을 특징으로 하는, 신호 처리 장치.
  8. 제6항에 있어서, 상기 제2 처리 요소는 추가 입력을 가지며, 상기 제2 프로세스는 상기 제3 프로세스와 함께 제2 처리 요소에 맵핑되고, 상기 제2 프로세스는 상기 입력 및 상기 추가 입력을 통해 각각 제1 프로세스 및 제4 프로세스로부터 데이터를 수신하고, 상기 제2 프로세스는 상기 입력 및 상기 추가 입력을 통해 각각 제5 프로세스 및 제6 프로세스로부터 데이터를 수신하고, 상기 제1 프로세스 및 상기 제5 프로세스의 데이터 토큰들이 상기 통신 접속을 통해 각각 상기 제1 프로세스 및 상기 제2 프로세스로 전송되는 시퀀스가, 상기 제4 프로세스 및 상기 제6 프로세스의 데이터가 상기 통신 접속을 통해 각각 상기 제1 프로시스 및 상기 제2 프로세스로 전송되는 시퀀스에 대응되도록 상기 시퀀스 프로그래밍 수단이 프로그래밍되는 것을 특징으로 하는, 신호 처리 장치.
  9. 제2항 내지 제4항 중 어느 한 항에 있어서, 상기 제2 처리 요소는 추가 데이터 토큰을 수신하기 위해 상기 통신 접속에 접속된 추가 입력을 가지며, 상기 제2 프로세스는 상기 데이터 토큰 및 상기 추가의 데이터 토큰으로부터의 데이터 항목들을 조합하여 처리하며, 상기 할당 제어기는, 상기 데이터 토큰의 생성 개시 및 상기 추가 데이터 토큰의 생성 개시가 상기 할당 제어기에 의해 검출된 경우에만, 상기 데이터 토큰의 전송을 위한 상기 통신 접속을 할당하는 것을 특징으로 하는, 신호 처리 장치.
KR10-1998-0705114A 1996-11-04 1997-09-29 1개이상의처리요소를사용하는신호처리장치 KR100500742B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP96203069 1996-11-04
EP96203069.8 1996-11-04

Publications (2)

Publication Number Publication Date
KR19990076985A KR19990076985A (ko) 1999-10-25
KR100500742B1 true KR100500742B1 (ko) 2005-11-21

Family

ID=8224545

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1998-0705114A KR100500742B1 (ko) 1996-11-04 1997-09-29 1개이상의처리요소를사용하는신호처리장치

Country Status (6)

Country Link
US (1) US6049818A (ko)
EP (1) EP0877985B1 (ko)
JP (1) JP3987581B2 (ko)
KR (1) KR100500742B1 (ko)
DE (1) DE69701351T2 (ko)
WO (1) WO1998020427A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6629167B1 (en) * 2000-02-18 2003-09-30 Hewlett-Packard Development Company, L.P. Pipeline decoupling buffer for handling early data and late data
WO2004088938A1 (ja) * 2003-03-31 2004-10-14 Fujitsu Limited 通信装置及び通信方法
US9330060B1 (en) * 2003-04-15 2016-05-03 Nvidia Corporation Method and device for encoding and decoding video image data
US9501448B2 (en) 2008-05-27 2016-11-22 Stillwater Supercomputing, Inc. Execution engine for executing single assignment programs with affine dependencies
GB2471067B (en) 2009-06-12 2011-11-30 Graeme Roy Smith Shared resource multi-thread array processor
US9405826B1 (en) * 2013-07-15 2016-08-02 Marvell International Ltd. Systems and methods for digital signal processing
JP6721911B2 (ja) * 2014-02-20 2020-07-15 スティルウォーター スーパーコンピューティング,インク. アフィン従属による単一割当プログラムを実行するための実行エンジン

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4149243A (en) * 1977-10-20 1979-04-10 International Business Machines Corporation Distributed control architecture with post and wait logic
US4354225A (en) * 1979-10-11 1982-10-12 Nanodata Computer Corporation Intelligent main store for data processing systems
JPH03500461A (ja) * 1988-07-22 1991-01-31 アメリカ合衆国 データ駆動式計算用のデータ流れ装置
US5784631A (en) * 1992-06-30 1998-07-21 Discovision Associates Huffman decoder
US5606666A (en) * 1994-07-19 1997-02-25 International Business Machines Corporation Method and apparatus for distributing control messages between interconnected processing elements by mapping control messages of a shared memory addressable by the receiving processing element

Also Published As

Publication number Publication date
EP0877985A1 (en) 1998-11-18
WO1998020427A1 (en) 1998-05-14
KR19990076985A (ko) 1999-10-25
DE69701351D1 (de) 2000-04-06
JP2000504451A (ja) 2000-04-11
US6049818A (en) 2000-04-11
DE69701351T2 (de) 2000-08-24
JP3987581B2 (ja) 2007-10-10
EP0877985B1 (en) 2000-03-01

Similar Documents

Publication Publication Date Title
US5699460A (en) Image compression coprocessor with data flow control and multiple processing units
US20080022288A1 (en) Signal Processing Appatatus
EP1706820A2 (en) Resource management in a multi-processor system
EP0025087A2 (en) Pipeline Control apparatus for generating Instructions in a Digital Computer
KR20000062500A (ko) 원격 메소드 요청 시스템에 지원되는 레플리케이션 방법및 시스템
KR100500742B1 (ko) 1개이상의처리요소를사용하는신호처리장치
JP4090883B2 (ja) 異なるリソースアクセス方式を有するシステム統合エージェント
US20060146864A1 (en) Flexible use of compute allocation in a multi-threaded compute engines
US5630077A (en) System and method for coordinating access to a bus
JP2001216279A (ja) リアルタイム・システム用時分割多重メモリーを用いた、複数のプロセッサーのインターフェース及び、同期化及びアービトレーション方法
US5692136A (en) Multi-processor system including priority arbitrator for arbitrating request issued from processors
US5978876A (en) System and method for controlling communications between subsystems
EP0950225A2 (en) Signal processing device and method of planning connections between processors in a signal processing device
FI76462B (fi) Kommunikationsmultiplexer med ett variabelt prioritetsschema.
JPH03127104A (ja) プログラマブルコントローラのデータリンク装置
KR19990011284A (ko) 데이터 처리장치의 인터럽트 처리장치 및 방법
JPH01185734A (ja) バッファメモリ管理方式
JPH05143527A (ja) 優先制御回路
JPH02143321A (ja) ネットワーク環境の出力サーバ
JPH0314155A (ja) ローカルエリアネットワークの命令制御方式
JPH03209530A (ja) 時分割マルチタスク実行装置
JPS62285164A (ja) チヤネル制御装置
JPS62247443A (ja) チヤネル制御方式
JPH06131173A (ja) マイクロプログラム制御システム
JPH04142643A (ja) 入出力制御装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130628

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140627

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160629

Year of fee payment: 12