KR20010080076A - 디지탈 프로세싱 디바이스 - Google Patents

디지탈 프로세싱 디바이스 Download PDF

Info

Publication number
KR20010080076A
KR20010080076A KR1020017004500A KR20017004500A KR20010080076A KR 20010080076 A KR20010080076 A KR 20010080076A KR 1020017004500 A KR1020017004500 A KR 1020017004500A KR 20017004500 A KR20017004500 A KR 20017004500A KR 20010080076 A KR20010080076 A KR 20010080076A
Authority
KR
South Korea
Prior art keywords
circuit
level
tree
processing device
kernel
Prior art date
Application number
KR1020017004500A
Other languages
English (en)
Other versions
KR100373426B1 (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 KR20010080076A publication Critical patent/KR20010080076A/ko
Application granted granted Critical
Publication of KR100373426B1 publication Critical patent/KR100373426B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F15/17343Direct connection machines, e.g. completely connected computers, point to point communication networks wherein the interconnection is dynamically configurable, e.g. having loosely coupled nearest neighbor architecture
    • 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
    • G06F15/8023Two dimensional arrays, e.g. mesh, torus

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Multi Processors (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Debugging And Monitoring (AREA)
  • Logic Circuits (AREA)
  • Complex Calculations (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Bidet-Like Cleaning Device And Other Flush Toilet Accessories (AREA)
  • Bridges Or Land Bridges (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Image Processing (AREA)

Abstract

일반적으로 n+1 레벨(S1,S2,...Sn)과 차수(k)를 갖는 정규 트리로 구현되는 디지탈 프로세싱 디바이스는 레벨(Sn)상 회로(Pn)의 형태로 제공되며 트리의 루트 노드(root node)를 형성하고, 일반적으로 회로(P)의 하위레벨(Sn-q)은 상위레벨(Sn-q+1)의 kq-1개 회로(Pn-q+1)에 중첩되는 kq개의 회로(Pn-q)를 포함하며 상위레벨의 각 회로(Pn-q+1)는 k개의 회로(Pn-q)를 포함한다(여기서, q=1,2,...n-1}). 회로(Pn)에서 q=n인 경우로 정의되는 영차 레벨(Sn-q=S0)은 프로세싱 디바이스(P)에서 커널 프로세서를 구성하며 상기 레벨(S0)에서 트리의 리프 노드(leaf node)를 형성하는 kn-1+1부터 kn까지의 회로(P0)를 포함하며, 커널 프로세서(P0)는 1에서 k까지 레벨(S1)의 각 회로(P1)에 중첩된다. 각 회로(P1,P2,...Pn)는 일반적으로 가장 가까운 하위레벨상 이전 회로에 중첩된 회로(P0,P1,...Pn)와 연결되어 있고 인접 트리의 동일 또는 하위레벨의 잘 연결된 논리 연산 장치(E)를 포함한다. 더 나아가 각 회로(P0,P1,...Pn)는 Ip0=Ip1=...Ipn과 같이 동일한 인터페이스(identical interface; I)를 갖는다.

Description

디지탈 프로세싱 디바이스 {DIGITAL PROCESSING DEVICE}
종래의 마이크로 프로세서를 사용하는 경우, 매우 많은 양의 데이타에 대하여 반복적 또는 순환적 오퍼레이션(operation)의 사용으로 많은 양의 데이타를 처리(processing)하는 것은 심지어 제한된 수(restricted number)에 있어서도 문제가 될 수 있으며, 이는 대량으로 병렬 해(parallel solution)를 가져오는데 여기서 매우 많은 수의 프로세싱 소자는 많은 데이타 스트림(data stream)에 병렬로 서로 다른 오퍼레이션을 동시에 실행하며, 몇몇 데이타 스트림에 대해 병렬 오퍼레이션도 또한 가능하다. 만약 이러한 많은 양의 데이타가 반복적 시이퀀스 및/또는 중첩 패턴을 지닌 데이타 또는 신호 구조의 형태로 나타나면, 동일한 또는 몇몇 서로 다른 레벨로 병렬 구현에 의하여 프로세싱이 보다 효과적으로 이루어질 수 있다.
미국 특허 제 486020(스톨포 등:Stolfo & al.)에 이진 트리(binary tree)로 구성된 병렬 프로세싱 디바이스가 공개되었으며, 여기에 각각 자신의 입출력 장치를 갖는 다수의 프로세서가 있다. 일반적으로 스톨포 등(Stolfo & al.)은 트리(tree)의 루트(root)와 리브(leave)로 구성된 트리 구조로부터 분리된 각각의 프로세서가 하나의 모 프로세서(parent processor)와 두 개의 자 프로세서(child processor)를 가지도록 이진 트리 구조로 연결된 다수의 프로세서를 갖는 컴퓨터를 공개하고 있다. 프로세서는 전형적으로 데이타와 동기로 동작하며, 데이타는 모 프로세서로부터 전송되어 그 결과를 가장 가까이의 다음 프로세서 즉 모 프로세서의 자 프로세서와 통신한다. 동시에 모 프로세서와 자 프로세서는 또한 서로 통신할 수 도 있다. 스톨포 등(Stolfo & al.)에 의하면 각 노드(node)는 적당한 프로세서, 읽기/쓰기 메모리(read/write memory) 또는 랜덤 액세스 메모리(random access memory) 그리고 입출력 장치(I/O device)를 포함하는 프로세싱 소자를 구성한다. 입출력 장치는 이진 트리 구조를 통해서 보내지는 데이타가 속도에 있어서 실질적으로 향상되도록 각 프로세싱 소자와 그것의 모/자 프로세싱 소자 사이에 인터페이스를 제공한다. 이진 트리 구조가 모든 싱글 노드에서 프로세싱 소자를 가지므로 프로세싱 디바이스는 일반적으로 2n-1개의 프로세싱 소자를 포함하게 되며, 만일 이진 트리가 10 레벨로 구현된다면 1023개의 프로세싱 소자를 포함한다. 향상된 실시예에 있어서 알려진 병렬 프로세싱 디바이스는 12 MHz 주파수 클럭을 가지며, 1023개 프로세서를 갖는 트리의 경우 평균 1.8us의 인스트럭션 싸이클 시간(instruction cycle time)을 가지며 1초당 약 5억 7천만 인스트럭션을 수행한다.
이러한 종류의 이진 병렬 프로세서는 가령 많은 양의 정보를 서치(search)하는 것과 같이 분해나 분리 가능한 데이타 프로세싱 프로그램을 취급하는데 적합하다. 분리 가능한 서치 문제(problem)는, 동일성을 갖는 상호적 연합적 이진 오퍼레이터(operator; b)의 반복적 사용에 대응하는 오브젝트 집합(object set)과 오브젝트(x) 사이의 관계에 대한 퀴리(query) 및 새로운 오브젝트(x)와 집합(F)의 각 원소(f) 사이에 적용되는 근원적 퀴리(primitive query)가 있는 문제로 정의될 수 있다. 논리함수 OR이 오브젝트(x)와 집합(F)의 각 원소(f) 사이에 적용되는 근원적 퀴리(query) "is x = f"와 결합될 때 그것은 분리가능한 서치 문제를 가진다. 스톨포 등(Stolfo & al.)에서 언급된 바와 같이, 집합(F)에 관한 퀴리(query)의 대답으로 구성된 문제는 임의의 (F)의 서브집합(subset)에 적용되는 퀴리(query)의 대답을 결합함으로써 해결될 수 있다. 바꾸어 말하면, 문제는 분리 또는 분할 가능하며 병렬 프로세싱에 의하여 빠른 실행에 적합하다. 집합(F)은 이용가능한 프로세서의 수와 동일한 임의의 다수 서브집합으로 분리된다. 근원적 퀴리(query)(q)은 모든 프로세서와 통신하는 미지의 (x)와 집합(F)의 지역적으로 저장된 원소(f) 사이의 각 프로세서에서 병렬로 적용된다. 우선 다수의 계산이 N/2개의 인접 프로세서 쌍(pair)에서 실행되고 처음 계산으로부터의 결과로 N/4개의 프로세서 쌍에서 해당하는 수의 계산이 실행됨에 따라, 결과들은 오퍼레이터(b)의 log2N번 반복에 의해 병렬로 결합된다. 그러므로 이진 트리의 상위레벨(overlying level)로 진행동안, 즉 자 프로세서로부터 모 프로세서로의 반복적 처리동안 오퍼레이션(operation)은 이동하고 각 레벨에서 병렬로 반복된다.
그러나 여기서 데이타 및 신호구조가 반복된 시이퀀스 및/또는 중첩 회로를 포함하는 다수의 데이타 프로세싱 문제가 있으며, 가령 미국 특허 제 4860201에 공개된 종류의 프로세싱 디바이스는 바람직한 가용성(flexibility)을 제공하지 못하거나 그 문제를 해결하는데 전혀 알맞지 않을 수도 있다. 여기에 공개된 바와 같이 이진 트리 구조는 문제를 이분적으로 분리할 수 있으며 동일 레벨에서 오퍼레이션이 병렬로 수행될 수 있다는 원칙을 전제로 한다. 그러나 다른 분해 차수를 요하는 것과 트리 구조의 다른 레벨에서 프로세싱이 병렬로 일어날 수 있어야 하는 문제가 있을 수 있다. 문제가 분리되어, 트리 구조의 일부 서브트리에서 하나의 동일 레벨상에 더 큰 분할 용량을 가지도록 하는 것이 바람직하다. 실제로 이를 위해서는 서브트리의 노드가 문제의 트리의 부 노드(parent node)에 연결될 뿐 아니라 가령 인접 트리의 동일 또는 하위레벨의 노드도 연결될 수도 있는, 임의의 레벨 수와 임의의 차수를 가지는 일반적 트리 구조에 그 출발점(starting point)를 가지는 해답(solution)이 필요하다. 그러므로 바람직한 레벨 수와 임의의 차수를 갖는 트리 구조에서 연결성(connectivity)의 증가된 차수(degree)는 축소된 트리의 형태이든 단순한 또는 복잡한 그래프의 형태이든 본래 트리 구조를 재구성할 수 있게 한다. 동시에 하나 또는 그 이상의 리프 노드는 결합될 수 있고, 질문중의 부노드의 기능을 떠 맡는다.
본 발명은 디지탈 프로세싱 디바이스(P)에 관한 것으로, 상세히는 디지탈 데이타 및 신호 구조(signal structure)의 프로세싱에 관한 것이다. 여기에서 데이타 및 신호 구조는 반복되는 시이퀀스(repeated sequence) 및/또는 중첩 패턴(nested pattern)을 포함하며, 프로세싱 디바이스(P)는 일반적으로 n+1 레벨(level; S0, S1, ...Sn)과 차수 k(degree k)를 지닌 정규 트리(regular tree)로 구성된다.
도 1은 본 발명에 따른 프로세싱 디바이스의 제 1 실시예를 도시한 것이다.
도 2는 도 1의 실시예를 정규 트리 구조(regular tree structure)로 도시한 것이다.
도 3은 본 발명에 따른 프로세싱 디바이스의 제 2 실시예를 트리 구조로 도시한 것이다.
도 4a는 본 발명에 따른 프로세싱 디바이스의 제 3 실시예를 비대칭적 축소 트리(asymmetrically reduced tree)로 도시한 것이다.
도 4b는 본 발명에 따른 프로세싱 디바이스를 표현하는 트리 구조에 있어 리프 노드(leaf node)를 지닌 서브트리의 예를 도시한 것이다.
도 4c는 본 발명에 따른 프로세싱 디바이스를 표현하는 트리 구조에 있어 리프 노드를 지닌 서브트리의 또 다른 예를 도시한 것이다.
도 5는 반복적 맵핑(recursive mapping)에 의한 중첩 회로(nested circuit)로서 본 발명에 따른 프로세싱 디바이스 형성을 위한 윈리를 도시한 것이다.
도 6은 3 레벨(3 level)과 차수 4(degree 4)를 지닌 반복적 회로로서 본 발명에 따른 프로세싱 디바이스의 일 실시예를 도시한 것이다.
도 7은 4 레벨(4 level)과 차수 4(degree 4)를 지닌 반복적 회로로서 본 발명에 따른 프로세싱 디바이스의 또 다른 실시예를 도시한 것이다.
도 8은 도 6의 회로와 대응하는 트리에 있어서 노드 사이의 가능한 연결을 도시한 것이다.
도 9는 도 7의 회로와 대응하는 트리에 있어서 노드 사이의 가능한 연결을 도시한 것이다.
도 10은 도 6 또는 도 8의 회로가 1 차원적 그래프로 연결된 것을 도시한 것이다.
도 11a는 본 발명에 따른 프로세싱 디바이스에 있어서 커널 프로세서(kernel processor)의 일 실시예를 도시한 것이다.
도 11b는 본 발명에 따른 프로세싱 디바이스에 기초한 서치 프로세서 디바이스(search processor device)에 사용하기 위하여 비교 장치(comparator unit)의 형식으로 논리 연산 장치(logic unit)와 커널 프로세서를 지닌 회로의 일 실시예를 도시한 것이다.
도 12a는 도 11b의 비교 장치이다.
도 12b는 3개 캐릭터 경우에 대한 패턴을 비교하기 위한 도 12a와 비슷한 비교기의 연결을 도시한 것이다.
도 12c는 도 11b에 대응하는 회로를 구현하는 균형있는 이진 트리(balanced binary tree)를 도시한 것이다.
본 발명의 목적은 일반적 트리 구조에서 거대한 병렬(massive parallelism) 및 서로 다른 레벨에서 많은 양의 데이타를 처리하는데 특히 알맞은 프로세싱 디바이스를 제공하면서도, 동시에 주어진 레벨에서 선택된 구현체(configuration)가 하위레벨(underlying level)의 구현체에 의해 반복적으로 생성되도록 서로 다른 레벨 및 주어진 조건하에서 중첩 회로로서 마음대로 구성할 수 있는 것이다. 특히 본 발명에 의한 프로세싱 디바이스는 MIMD 프로세싱 디바이스, 즉 다중 오퍼레이션 및 다중 데이타를 처리할 수 있는 프로세싱 디바이스를 실현하는 것을 목적으로 한다.
상기 목적 및 다른 부가적 목적들은 디지탈 프로세싱 디바이스를 지닌 본 발명에 의해 성취될 수 있으며, 이는 프로세싱 디바이스(P)가 레벨(Sn)상에 회로(Pn)의 형태로 제공되며 트리의 루트 노드(root node)를 형성하고, 가장 가까운 레벨(Sn-1)은 루트 노드의 자 노드(child node)를 형성하는 k개의 회로(Pn-1)를 포함하며 회로(Pn)에 중첩되고, 일반적으로 회로(Pn)의 하위레벨(Sn-q)은 상위레벨(Sn-q+1)의 kq-1개 회로(Pn-q+1)에 중첩되는 kq개의 회로(Pn-q)를 포함하며 상위레벨의 각 회로(Pn-q+1)는 k개의 회로(Pn-q)를 포함하며(여기서, q∈{1,2,...,n-1}), 회로(Pn)에서, q=n인 경우로 정의되는 영차 레벨(Sn-q=S0)은 프로세싱 디바이스(P)에서 커널 프로세서를 구성하며 상기 레벨(S0)에서 트리의 리프 노드(leaf node)를 형성하는 kn-1+1부터 kn회로(P0)까지를 포함하며, 커널 프로세서(P0)는 1에서 k까지 레벨(S1)의 kn-1개 각 회로(P1)에 중첩되며, 각 레벨 (S1,S2,...Sn)의 회로(P1,P2,...Pn)는 일반적으로 각 회로(P1,P2,...Pn)에 중첩되는 가장 가까운 하위레벨(S0,S1,...Sn-1)의 회로(P0,P1,...Pn-1)와 연결되어 있는 논리 연산 장치(E)를 포함하며, 구현체 선택에 따라서 각 회로(P1,P2,...Pn)에서 이전 회로(former circuit)의 네트워크를 형성하며, 회로(P0,P1,...Pn) 각각은 동일한 인터페이스(identical interface; I)를 갖는 것을 특징으로 한다.
유익하게도 본 발명에 따른 프로세싱 디바이스의 제 1 실시예는 영차의 레벨(S0)이 kn개의 커널 프로세서(P0)를 포함하고, 트리가 축소되지 않거나 완전한 트리가 되도록 커널 프로세서(P0)는 인자(r=k)를 갖는 상위레벨의 회로(P1)를 반복적으로 맵(map) 하고, 일반적으로는 레벨(Sn-q)의 회로(Pn-q)가 상위레벨(Sn-q+1)의 회로(Pn-q+1)를 인자(r=k)로 반복적으로 맵(map) 하는 것을 특징으로 한다.
더 나아가 본 발명에 따른 프로세싱 디바이스의 제 2 실시예는 영차의 레벨(S0)이 rkn-1(1<r<k)개의 커널 프로세서(P0)를 포함하고, 트리가 대칭적으로 축소된 또는 균형 있는 트리가 되도록 커널 프로세서(P0)는 동일 인자(r)로 상위레벨(S1)의 회로(P1)를 맵 하고, 일반적으로는 레벨(S1)로 부터 모든 레벨의 회로(Pn-q)가 상위레벨(Sn-q+1)의 회로(Pn-q+1)를 인자(r=k)로 반복적으로 맵 하는 것을 특징으로 한다.
마지막으로 본 발명에 따른 프로세싱 디바이스의 제 3 실시예는 1에서 k까지 각 커널 프로세서가 레벨(S1)의 각 회로(P1)에 중첩되고, 레벨(S0)의 커널 프로세서(P0) 총 수가 최소 kn-1+1, 최대 kn-1 개이며 트리가 비대칭적으로 축소된 또는 균형 잃은 트리가 되도록 적어도 하나 이상의 회로(P1)는 최소 2, 최대 k-1개의 커널 프로세서(P0)를 포함하고, 일반적으로는 레벨(Sn-q)의 회로(Pn-q)가 각 회로(Pn-q)에 중첩된 회로(Pn-q-1)에 의해 맵 되는 것을 특징으로 한다.
본 발명에 의하면 커널 프로세서(P0)는 적어도 하나 이상의 결합 장치(combinatorial unit; C), 상기 하나 이상의 결합 장치와 연결된 메모리 장치(memory unit) 그리고 레지스터 장치(register unit; R)로 구현가능한 일부 메모리 장치를 포함한다. 후자의 경우 적어도 하나 이상의 결합 장치(C)와 레지스터 장치(R)는 산술 논리 연산 장치(arithmetic logic unit; ALU)로 구현될 수 있다. 유리하게도 본 발명에 의하면 논리 연산 장치(E)는 적어도 하나 이상의 결합 장치(C) 및 상기 하나 이상의 결합 장치와 연결된 레지스터 장치(R)를 포함하고,적어도 하나 이상의 결합 장치(C)는 멀티플렉서가 될 수 있다. 회로(Pn-q)의 논리 연산 장치(E)는 인접 트리의 동일 레벨(Sn-q)상 해당 회로(Pn-q)의 논리 연산 장치(E)와 연결될 수 있는 것이 장점이다.
또한, 회로(Pn-q)의 논리 연산 장치(E)는 인접 트리의 각 하위레벨(Sn-q-1,Sn-q-2,...S1)상 회로(Pn-q-1,Pn-q-2,...P1)의 논리 연산 장치(E)와 연결될 수 있는 장점이 있다.
마지막으로, 회로(P)의 논리 연산 장치(E)는 커널 프로세서(P0) 또는 커널 프로세서(P0)들이 속해 있는 회로(P1)의 논리 연산 장치를 경유하거나 또는 직접적으로 인접 트리의 하나 또는 그 이상의 커널 프로세서들(P0)과 연결될 수 있는 장점이 있다.
본 발명은 모범적인 실시예 및 아래의 참조도면을 참고하여 더욱 상세히 설명될 것이다.
도 1은 본 발명에 따른 병렬 프로세싱 디바이스의 대칭적 레이아웃(layout)을 도시한 것이다. 도 1의 설계는 다음과 같이 설명될 수 있다. 인터페이스(Ip0)를 갖는 회로(P0) 및 부가 회로(E)가 주어지며, 각각 k개의 회로(P0,P1,...Pn-1) 및 하나의 부가 회로(E)를 포함하며 각자의 인터페이스(Ip1,Ip2,...Ipn)를 갖는 회로(P1,P2,...Pn)의 반복적인 시이퀀스가 만들어 질 수 있다. 인터페이스(I)는 모든 회로(P0,P1,...Pn)에 대하여 동일하며, 다시 말해서 Ip0=Ip1=Ip2...=Ipn이다. 각 경우에 회로(P1)는 n+1개의 레벨(S)과 차수 k(degree k)를 갖는 트리 네트워크로 구현된다. 특히 도 1은 5개의 레벨(S)과 차수 3을 갖는 트리를 형성하는 회로(P4) 형상으로 디지탈 프로세싱 디바이스를 도시한 것이다. 도 1에 도시된 바와 같이, 이는 하위레벨이 3개의 회로(P3)를 포함하는 레벨(S4)상에 위치하는 회로(P4)를 암시한다. 레벨(S3)상의 각 회로(P3)는 레벨(S2)의 회로(P2)로 구성되며, 레벨(S2)의 각 회로(P2)는 3개의 하위레벨(S1) 회로(P1)로 구성된다. 마지막으로 레벨(S1)의 각 회로(P1)는 3개의 레벨(S0)의 회로(P0)로 구성된다. 회로(P0)는 프로세싱 디바이스(P4)에서 적절한 프로세서 장치를 형성하고, (P4)의 커널 프로세서를 구성한다. 도 2에서 도시한 바와 같이 회로(P4)가 3진 트리로 구성되었으므로, 레벨(S0)은 총 34=81개의 커널 프로세서(P0)를 포함하며, 상위레벨(S1)은 27개의 회로(P1)를 그 위의 레벨(S2)은 9개의 회로(P2)를 포함하며, 마지막으로 레벨(S3)은 3개의 회로(P3)를 포함한다. 각 회로(P0,P1,P2,P3)는 도 2의 트리에서 노드를 구성한다. 커널 프로세서(P0)는 트리의 리프 노드(leaf node)를 구성하고, 회로(P4)는 트리의 루트 노드(root node)를 구성한다. 이러한 방식으로 구성된 도 2의 트리는 반복적 3진 트리로 나타나고, 상기 경우 3과 같은 맵핑 인자(mapping factor)로 반복적으로 임의의 레벨(S)상 회로는 가장 가까운 다음 상위레벨에 맵 된다. 모든 회로(P1,P2,P3,P4)에서 논리 연산 장치(E)가 물리적으로 트리의 노드를 구성하도록 각 회로(P1,P2,P3,P4)는 부가적으로 논리 연산 장치(E)를 포함한다. 일반적으로 논리 연산 장치(E)에 의해서 트리의 각 노드는 부 노드(parent node) 또는 그것의 자 노드(child node)에 연결될 수 있다. 또한 논리 연산 장치(E)에 상관 없이 노드의 각 자 노드는 서로 연결될 수 있다. 트리의 리프 노드를 구성하는 각 커널 프로세서는 부 노드로서 각 회로(P1)를 가지며, 이를 경유하여 상호 연결될 수 있다. 이것이 본 발명에 따른 프로세싱 디바이스가 처리할 분리된 문제로서, 커널 프로세서(P0)에 의해 병렬로 레벨(S0)상에서 프로세싱이 실현된다. 커널 프로세서(P0)로 부터의 결과는 각자의 부 노드(P1)에 의해 더 멀리 결합되고 통신된다. 상기 프로세서는 회로(P4)상에 마지막 결과가 나타날 때까지 반복된다.
다음에서는 커널 프로세서(P0) 및 논리 연산 장치(E)에 관해 상세히 설명한다.
그러나 회로(P4)는 완전한 또는 정규의 반복적 트리로 구현될 필요는 없다. 그것은 대칭적 축소 트리로서 생성될 수 있고, 이것은 각 회로(P1)가 2 이상, k이하의 리프 노드 또는 커널 프로세서(P0)를 포함하기 위하여 노드(P1)와 연결된 리프 노드의 수 또는 커널 프로세서(P0)의 수가 감소된다는 것을 의미한다. 도 1의 회로는 k=3이므로, 도 3에 도시된 바와 같은 대칭적 축소 트리는 각 회로(P1)에 대하여 2개의 커널 프로세서를 포함한다. 도 3의 대칭적 축소 트리는 정규적으로 반복되지 않으며, 레벨(S1)로 부터의 반복은 우선 맵핑 인자(mapping factor) 3으로 발생한다. 도 1에 도시된 바와 같이 도 3의 트리의 각 회로(P1)는 단지 2개의 커널 프로세서(P0)를 포함하는 논리 연산 장치(E)가 부가된다. 하위레벨에서 상위레벨로 회로의 반복적 맵핑은 이러한 회로들이 상위레벨의 회로에 속하게 되고 전체회로(P4)는 중첩회로로서 나타난다는 것을 명백히 한다.
만약 회로가 비대칭적 축소 회로 라면 도 4a와 같이 나타날 수 있다. 여기서 노드(P1)의 일부는 정규적으로 3개의 리프 노드(P0)를 가지며, 다른 노드(P1)는 단지 1개 또는 2개의 리프 노드(P0)를 갖는다. 부 노드가 단지 1개의 리프노드를 갖는 경우 부 노드의 맵핑은 동일한 맵핑이 되며 논리 연산 장치는 회로(P1)에서 제거될 수 있다. 만약 모든 회로(P1)가 단지 1개의 커널 프로세서(P0)를 포함한다면, 회로(P4)를 생성하는 트리는 P1=P0로서 완전하게 축소되어 나타나고,회로(P4)는 4개의 레벨과 27개 레벨(S0)의 커널 프로세서(P0)를 갖는 정규 반복적 회로(P3)로 전환된다. 따라서 완전하게 축소된 트리로 나타나지 않기 위해서는 레벨 수 n+1의 회로(Pn)는 레벨(S0)상에 최소 kn-1+1개의 커널 프로세서를 가져야 한다.
최대의 비대칭적 축소 트리의 서브트리가 도 4b에 도시되었고 이 서브트리는 자 노드(P1)를 지닌 노드(P2)를 포함하는데, 단지 1개의 노드(P1)만이 2개의 커널 프로세서 또는 리프 노드(P0)를 가지고, 트리의 나머지 노드(P1)는 단지 1개의 리프노드(P0)를 가지며 이 경우 (P1)은 (P0)로 축소된다. 5개의 레벨을 지닌 또는 도 1의 회로에 대응하는 회로(P4)가, 1개의 회로(P1)는 2개의 리프 노드를 가지고 나머지 각 회로(P1)는 단지 1개의 회로(P0)를 갖는 도 4b와 같은 회로로 구현될 때, 최대로 비 대칭 축소된 트리로 나타나고 레벨(S0)상의 노드의 수는 33+1=28이 된다. 도 4c에는 최소로 축소된 트리에 있어서 노드(P2)의 서브트리가 도시되어 있다. 여기서는 단지 1개의 노드(P1)가 2개의 리프 노드 또는 커널 프로세서(P0)를 포함하고, 반면에 트리의 나머지 모든 노드(P1)는 3개의 리프 노드(P0)를 포함한다. 물론 이 경우에 있어서는 도 1의 회로에 대응하는 최소로 축소된 트리가 총 80개의 커널 프로세서(P0)를 포함할 것이다. 도 4에 도시된 트리로서 생성되는 회로는 모든 하위레벨(S1,S2,S3)에 중첩되어 있지만, 회로(P1,P2,P3,P4)가 각 하위레벨(S0,S1,S2,S3)에 위치한 모든 회로에 의해서 맵핑되기 때문에, 맵핑이 더 이상 반복되지는 않을 것이다. 대칭적 또는 비대칭적 축소 트리로서 회로(P4)를 생성하는 장점은 다음에서 보다 상세히 설명될 것이다.
도 5는 본 발명에 따른 반복적 셀프-맵핑(self-mapping) 프로세싱 디바이스(Pn)가 어떻게 형성되는가를 도시한 것이다. 회로(Pn)는 n+1 레벨과 차수 k로서 구현된다. 각 회로(P0,P1,...Pn-1)는 가장 가까이의 상위레벨(S1,S2,...Sn)상각 회로(P1,P2,...Pn)에 속한다. 물론 중첩된 레벨의 수는 n이고, 커널 프로세서(P0)로 정의되는 영차의 레벨(S0)상에서 회로(Pn)는 이런 종류의 총 kn개의 커널 프로세서를 포함할 것이다. 일반적으로 레벨(Sn-q)상의 회로(Pn-q) 수는 kq와 같게 된다(여기서 q=0,1,2,...n).
도 6은 도 5에서의 윈리에 따른 반복적 트리로 형성된 중첩 회로(P2)를 도시한 것이다. 회로(P2)는 논리 연산 장치(E)와 하위레벨(S1)상 4개의 중첩회로(P1)를 포함하며, 각 회로(P1)는 논리 연산 장치(E)와 하위레벨(S0)상 4개의 회로 혹은 커널 프로세서(P0)를 포함한다. 논리 연산 장치는 3개의 레벨(S0,S1,S2)과 레벨(S0)상 총 16개의 커널 프로세서(P0) 또는 리프 노드를 지닌 4진 트리로서 회로(P2)를 형성한다. 도 7은 5개의 레벨(S)과 k=4로서 순차적으로 형성된 회로를 도시한 것이다. 다시 말하면 도 7의 회로는 레벨(S0)상 총 64개의 커널 프로세서(P0)를 갖는 4진으로 구현된 회로이다. 앞에서와 마차가지로 각 회로(P0,P1,P2,P3,P4)의 인터페이스(I)는 물론 동일하다.
도 8은 도 6의 회로를 4진 트리로서 구현한 것을 도시한 것인데, 더 나아가 레벨(S1)의 노드인 회로(P1)는 레벨(S0)상 인접 트리의 커널 프로세서(P0)와 상호 연결되어 있다. 일반적으로 노드(P1,P2,...Pn)의 논리 연산 장치(E)는 노드가 위치한서브 트리에서 상향 또는 하향으로 연결할 뿐 아니라, 동일 레벨내의 인접 트리의 노드와 연결하거나 인접 트리의 하위레벨상 가장 가까이 있는 노드와 연결할 수 있다. 그러므로 도 6의 회로에 대하여 서브트리의 노드(P1)는 인접 트리의 제 1 리프 노드(P0)와 연결될 수 있다.
도 9는 도 7의 회로의 연결을 도시한 것이데, 이는 4개의 레벨과 총 64개의 커널 프로세서를 지닌 4진 트리를 형성한다. 여기서 다시 주어진 레벨상의 노드는 동일 레벨상의 인접 트리의 노드에 연결되고, 임의의 하위레벨상의 인접 트리에서 가장 가까은 인접 노드에 연결된다.
이는 일반적인 트리 구조는 논리 연산 장치를 통해서 다소 복잡한 그래프로 구현될 수 있다는 것을 의미 한다. 예가 도 10에 도시되었는데, 여기서 도 6 또는 도 8의 회로(P2)가 사실상 16개의 커널 프로세서(P0)가 연속적으로 연결된 1차원적 그래프를 형성하도록 구현된다.
보통 본 발명에 따른 프로세싱 디바이스는 예를 들면 이미지 프로세싱과 같은 주어진 일에 대한 전담 프로세싱 디바이스(dedicated processing device)로서 구현될 수 있다. 이 구조는 일반적 트리 구조에 기초하여 명확하게 효과적으로 또는 물리적으로 일을 처리할 수 있다. 만약 구성이 효과적이라면, 회로는 인터페이스를 통해서 프로세싱에 대하여 적절한 네트워크를 실현하는 구성 파라미터(configuring parameter)로 공급된다. 구성(configuring)은 회로가 실질적으로 회로에 제공된 것보다 적은 수의 커널 프로세서로서 구현될 수 있다는 것을의미한다. 본 발명에 따른 프로세싱 디바이스는 도 3에서와 같은 대칭적 축소 트리로 나타날 수도 있고, 또는 도 4에서와 같은 비대칭적 축소 트리로 나타날 수도 있다. 일부 구체적인 데이타 프로세싱 작업에 대해서는 특정 작업에 대한 프로세싱 디바이스의 용량을 증가시키기 위하여 하나 또는 그 이상의 서브트리에서 보다 큰 수의 커널 프로세스가 요구된다.
상기한 바와 같이 본 발명에 따른 프로세싱 디바이스는 대칭적이건 비대칭적이건 물리적으로 축소된 트리로서 나타날 수 있다. 이는 물리적 회로 해석(solution)이 실질적으로 트리의 레벨(S) 수 및 차수(k)에 의해 주어지는 보다 작은 수의 커널 프로세서로 실현될 수 있다는 것을 의미한다. 이는 칩(chip)상에서 최적으로 실질적 상태(real estate condition)를 활용(exploit)하는 회로의 기술적 해석을 제공하는데 적합할 수도 있다. 만약 본 발명에 따른 전담 프로세싱 디바이스의 커널 프로세서 수가 물리적으로 줄어든다면, 이는 선택된 실제 아키텍쳐 해법(architectural solution)에 따라 칩의 물리적 크기의 감소 또는 칩 면적의 효율적 활용을 가져올 수 있음을 의미하는 것이다. 물론 프로세싱 디바이스에 할당된 작업이 모든 환경(circumstance)하에서 실행된다는 것이 조건이다.
회로(S0)는 프로세싱 디바이스(P)에서 영차의 중첩되지 않은 레벨(unnested level)로 정의되고, 프로세서(P)에서 커널 프로세서를 구성한다.
커널 프로세서(P0)는 도 11a에 도시되어 있고, 메모리 장치(M)와 연결된 결합 장치(C)를 포함한다. 커널 프로세서(P0)의 인터페이스(Ip0)는 물론 나머지회로(P1,P2,...Pn)의 인터페이스(I)와 동일하며, (P0)의 측면에서 각각 입력측(input side)과 출력측(output side)에 대해 "입력(In)" 및 "출력(Out)"을 지시하는 화살표로 도시되어 있다. 결합회로(C)는 처리될 데이타를 포함하는 오퍼레이티브 파라미터(operative parameter)의 형태로 입력측에서 받아들인다. 게다가 또한 입력측은 커널 프로세서(P0)에 대한 파라미터를 구성하는 형태로 데이타를 공급한다. 이러한 파라미터의 구성은 결합 회로(C) 및 메모리 장치(M)의 부 인자(subelement)에 대한 파라미터의 셋팅(setting) 뿐만 아니라 인스트럭션(instruction)으로 구성될 수도 있다. 만일 처리될 데이타가 반복되는 시이퀀스 및/또는 중첩된 회로를 갖는 구조의 형태이고 데이타 프로세싱이 비교적 제한된 인스트럭션 집합을 사용하는 정해진 시이퀀스나 패턴을 향해서 이끌어진다면, 각 레지스터가 프로세싱에서 실행될 오퍼레이션에 따라 각 정해진 길이(length)와 어드레스(address)를 갖는 다수의 레지스터를 포함할 수 있는 것처럼 메모리 장치는 전체적으로 또는 부분적으로 레지스터 장치(R)로서 구성될 수 있는 장점을 가진다. 인터페이스의 출력측은 전체 프로세싱 디바이스(Pn)에 대한 도시되지 않은 외부 입/출력 인터페이스로 프로세싱 결과를 전달하거나, 또는 회로(P1)의 다른 커널 프로세싱 장치(P0)나 상위레벨(S2,S3,...Sn) 회로(P2,P3,...Pn)의 인터페이스 입력으로 결과를 전달한다.
서치 프로세서 디바이스에서 사용하기 위한 회로(P1)의 구체적인 실시예가 도 11b에 모든 메인 컴포먼트(compoment)를 포함하여 다소 개략적으로 도시되어 있다. 인터페이스는 입력 인터페이스(Iin)와 출력 인터페이스(Iout)로서 각각 도시되어 있다. 입력 인터페이스(Iin)는 멀티플렉서(MUX)와 연결되어 있고, 멀티플렉서(MUX)는 각각 출력 인터페이스(Iout), 커널 프로세서와 일치하는 비교 장치(COM), 제 1 D 플립-플롭(D flip-flop) 그리고 시이퀀스 제어 장치(SC)와 연결되어 있다. 비교 장치(COM)는 주어진 패턴을 형성하는 캐릭터 또는 캐릭터 스트링(string of character)을 비교하기 위하여 서치 오퍼레이션(search operation)에서 사용된다. 이러한 방식으로 주어진 패턴이 다른 패턴으로 생성된 집합(set)에서 하나 또는 그 이상의 원소(element)의 형태로 회복될 수 있는지가 결정된다. 비교 장치(COM)는 수신된 데이타를 출력 인터페이스(Iout)로 전달하고, 주어진 싸이클 수에 대한 양의 이진 값으로 사용될 수 있는 레이턴시 장치(latency unit; LAT)로 비교 결과를 전달한다. 그러므로 레이턴시 장치(LAT)는 D 플립-플롭(D1)을 경유하여 멀티플렉서(MUX)의 출력과 연결되어 있고, 직접 비교 결과를 시이퀀스 제어 장치(SC)로 전달한다. 시이퀀스 제어 장치(SC)는 현재의 커널 프로세서가 매치(match)를 보고할 수 있게 되기 전에 현재의 커널 프로세서 전 또는 후에 연결된 커널 프로세서가 매치를 보고할 것을 각각 필요로 하여, 패턴의 일부분이 상실되었을 경우 및 나아가 패턴의 일부분이 반복될 경우에도 패턴의 비교를 할 수 있도록 한다.
시이퀀스 제어 장치(SC)는 D 플립-플롭(D1)의 입력측으로 연결되어 있고, D플립-플롭(D2)의 출력측으로 연결되어 있다. 플립-플롭의 수는 비교 장치(COM)에서 비교되는 캐릭터의 수와 동일하다. 시이퀀스 제어 장치(SC)는 연속된 프로세서 장치에서 비교 오퍼레이션으로 부터의 결과를 수신할 수 있어야 하고, 입력 인터페이스(Iin) 및 멀티플렉서(MUX)와 연결되어야 하며 출력 인터페이스(Iout)를 경유하여 비교 오퍼레이션의 결과를 보고할 수 있어야 한다. 마지막으로 상기 실시예의 회로(P1)는 다른 커널 프로세서 또는 다른 결과 선택기(result selector; RS)로 부터의 두 결과 값을 결합하는 결과 선택기를 포함한다. 결과 선택기(RS)는 각각 입력 인터페이스(Iin) 및 출력 인터페이스(Iout)와 연결되고, 두 결과 값의 불린 오퍼레이션(Boolean operation)을 수행할 수 있고 프로세서 집합(set)에 대한 크거나 작거나 또는 동일한 형태(type)의 오퍼레이션을 비교할 수 있다.
구체적 실시예에서 디지탈 프로세싱 디바이스(P)는 거대한 병렬로서 수 계산의 다른 형태에 적응할 수 있고, 결합 장치(C) 및 레지스터 장치(R)는 연산논리장치(ALU)로서 구현될 수 있다. 게다가 각 커널 프로세서(P0)는 램(RAM)으로 구현된 메모리 장치(M)를 포함할 수 있고, 그러므로 이러한 종류의 데이타 프로세싱에서 레이턴시 문제가 줄거나 제거될 수 있도록 인텔리젼트 램(intelligent RAM; IRAM)을 수행할 수 있다.
게다가 각 중첩 레벨(S1,S2,...Sn)상에 그 자체가 결합 장치(C)와 레지스터 장치(R)로 구성된 프로세서 장치가 될 수 있는 논리 연산 장치(E)의 형태로 부가회로가 공급된다. 논리 연산 장치는 일반적으로 모든 회로(P1,P2,...Pn)에서 동일하다. 예를 들어 회로(P)에서 논리 연산 장치(E)는 인터페이스(I) 및 비교기(커널 프로세서)(COM)를 제외하고는 도 11b의 구성요소와 일치한다. 정규 이진 트리에 있어서 도 11b의 회로(P1)는 2개의 비교기(COM)와 연결된 2개의 커널 프로세서를 갖는다. 각 레벨(S1,S2,...Sn)의 회로(E)는 각 레벨 그리고 가능한한 회로(E)가 네트워크의 각 노드에 위치된 하위레벨에 네트워크를 구성하는 목적을 지닌 프로세싱 장치로서 기능을 한다. 네트워크-구성 파라미터에 알맞은 회로(E)를 제공함으로써, 주어진 레벨상 네트워크는 실행된 프로세싱 작업에 최적으로 구현될 수 있다. 논리 연산 장치(E)는 인접 트리의 동일 또는 하위레벨의 노드에 연결되고, 정규 트리 구조에서 이를 다소 복잡한 그래프 및 네트워크로 변환하여 가령 균형적 분리를 할 수 없는 문제에 있어서 특정 작업 데이타 양 및 데이타 비율을 더 잘 처리하도록 한다.
커널 프로세서(P0)의 결합 장치는 비교 장치(COM)로서 실현되고, 도 12a에 도시된 서치 프로세서 디바이스에서 사용된다. 레지스터(x)는 비교 장치(COM)에 잠시 위치하는 데이타워드(dataword)를 포함하고 레지스터는(x)가 비교될 데이타워드를 포함한다. 도 12a에서 4개의 비교 즉 x = a, x ≥a,x ≠a, x ≤a 이 수행될 수 있다는 것이 도시되었고, 그 결과는 멀티플렉서(MUX)의 출력으로 전송된다. 도 12a에 도시된 바와 같이 비교 장치의 상호접속으로 캐릭터 스트링의 형태로 간단한 패턴들이 비교될 수 있다. 도 12b에 도시된 원리는 상호접속된 장치 스트링 abc,즉 a는 b에 의해 뒤따르고 b는 c에 의해 뒤따르는 것을 비교할 수도 있다.
만약 본 발명에 따른 프로세싱 디바이스가 서치 프로세서 디바이스로 수행될 수 있다면, 축소되지 않고 균형있는 이진 트리가 사용될 수 있다. 트리의 각 내부 노드, 즉 루트 노드 및 리프 노드를 제외한 모든 노드에 대하여, 멀티플렉서는 두 서브트리가 병렬로 동일한 데이타 인자를 수신할 것인지 그리고 연속적으로 데이타를 수신할 것인지 결정하는데 사용된다.
도 12c는 8개의 커널 프로세서를 지닌 이진 트리로서 구현된 서치 프로세서를 도시한 것인데, 여기서 회로(P0,P1,...P7)로 도시되어 있다. 상기 연결에 있어서 결과가 두 회로 또는 두 커널 프로세서로부터 패치(fetch)될 때 논리 오퍼레이션의 사용으로 결합될 수 있다는 것을 주목해야 한다. 이것은 결과 선택기(RS)에서 일어난다. 도 11b에 도시된 바와 같이 각 회로의 논리 연산 장치(E)는 단지 결과중 하나만이 선택되게 하는 결과 선택기(RS)를 포함한다. 이진 트리에서 사용되는 결과 선택기는 프로세서 장치의 그룹으로부터 하나의 결과를 준다. 동시에 이진 트리의 형태로의 서치 프로세싱 디바이스는, 우선 커널 프로세서 또는 비교 장치(COM)에 의해 처리되는 캐릭터 또는 캐릭터 스트링의 비교 전 또는 후에 실행되는 캐릭터 또는 캐릭터 스트링의 비교로부터의 결과를 패치한다. 논리 연산 장치에서 시이퀀스 제어 장치를 사용함에 의해서, 다른 캐릭터 또는 캐릭터 스트링을 비교하는 어떤 인자에 대해 오른쪽으로 또는 왼쪽으로 결과를 선택함에 따라 비교 오퍼레이션이 수행될 수 있도록 트리가 구현될 수 있다. 게다가 복수의 비교 장치가 동일한 캐릭터 또는 캐릭터 스트링을 비교할 때, 그들의 처리된 그리고 연속된 결과는 동일하다. 비교 결과가 동일한 캐릭터 또는 캐릭터 스트링을 비교하는 어떤 인접 인자로 더 멀리 통신될 수 있도록, 이러한 결과는 사용중인 데이타 스트링을 제어하는 동일한 멀티플렉서(MUX)에 의해 발견될 수 있다. 이느 또한 도 12c에 도시된 바와 같이 서치 프로세서 디바이스에서도 구현될 수 있다. 상기 연결에서 현재의 동일 멀티플렉서 집합은 3개의 분리된 목적, 즉 데이타 분배, 다수의 플립-플롭을 통한 메모리 비트의 전달 그리고 진행되는 또는 따르는 캐릭터 또는 캐릭터 스트링에 비교 결과를 제공 또는 공급하는 목적으로 사용된다는 것에 주목해야 한다. 그러나 서로 다른 커널 프로세서로 부터의 결과는 서브트리와 서치 프로세서 디바이스의 출력 사이를 연결할 수 있는 룩-업 테이블 장치(look-up table unit)를 사용하여 결합될 수 있다. 룩-업 테이블 장치는 도 12에 도시된 결과 선택기(RS)를 대신할 수 있다.
본 발명에 따른 중첩된 그리고 가능한한 반복적으로 생성되는 프로세싱 디바이스(P)는 거대한 병렬로서 많은 데이타 양을 처리하는 특정 작업 프로세싱 디바이스를 구현하는데 사용될 수 있다. 이러한 작업의 예는 문서(document) 형식으로 되어 있는 많은 양의 데이타에서 서치하는 것을 들 수 있는데, 여기서 서치는 모든 또는 많은 수의 문서에서 병렬로 동시에 일어나며 패턴의 검색(retrieval), 확인(identification) 그리고 비교(comparision)로 이끌어질 수 있다. 더 나아가 본 발명에 따른 프로세싱 디바이스는 반복적 프로시져(recursive procedure)에 기초한 프로세싱 뿐만 아니라 이를테면 이미지 프로세싱, 암호화(encryption) 및 해독(decryption)도 구현될 수 있다. 순수한 수 프로세서(numerical processor)에 적용될 때, 본 발명에 따른 프로세싱 디바이스는 팩토리세이션(factorisation)에 적용될 수 있다.
언급된 바와 같이 커널 프로세서(P0)는 스탠다드 마이크로일렉트로닉 컴포넌트(standard microelectronic component)에 기초할 수 있고, 이들은 소위 필드 프로그램드 게이트 어레이(field programmed gate array; FPGA) 또는 에이직(application specific integrated circuit; ASIC)으로서 두 경우 다양한 집적 스케일(scale of integration)로 실현될 수 있다. 본 발명에 따른 프로세싱 디바이스는 프로세싱 용량(capacity)이나 접속(connectivity) 등에 관하여 몇몇 차원(dimension)으로 스케일될 수 있으므로, 비록 그 실현은 현재의 기술이나 현재의 기술적 레벨에 제한되지만 프로세싱 디바이스의 실행이 기술 발전과 함께 단계적으로 향상될 수 있으므로 이용가능한 기술적 레벨의 어떤 시기에서는 사실상 실현될 수 있을 것이다.
원칙적으로 본 발명에 따른 프로세싱 디바이스(P)는 임의의 차수(k)와 레벨(S)에서의 임의의 수 n+1로서 구현될 수 있다. 상기 경우에 커널 프로세서의 수는 kn으로 주어질 것이다. 현실적으로 k와 n은 프로세싱 디바이스(P)를 구현할 수 있고 특히 이용가능한 집적 스케일의 마이크로일렉트로닉 기술에 의해 제한될 것이다. 기술 및 프로세싱 디바이스(P)가 실현될 수 있는 특정 프로세싱 작업에 의하여, k와 n에 대한 선택된 값은 가령 병렬의 필요 및 분리의 차수 등에 따라서균형있는 판단의 대상이 된다. 실질적으로 구현된 실행에 있어서 가령 프로세싱 디바이스(Pn)는 k=8, n=3 으로 구현되었고 즉 레벨(S0)상에 512개의 커널 프로세스(P0)를 가진다.
종래의 가령 실리콘 기술과 같은 무기 반도체 기술에 기초한 스탠다드 마이크로일렉트로닉스의 사용에 의하여, 만약 프로세싱 디바이스(P)가 기판상 실체적인 평면 기술(substantial planar technology)에서 집적될 수 있다면 연결성(connectivity) 즉 네트워크내 회로의 상호접속은 복잡성과 긴 신호 패스(signal path)에서 문제를 줄 수 있다. 그러나 원칙적으로 네트워크는 재구성될 수 있다. 즉 예를 들면 논리 연산 장치(E)를 통하여 적절한 구성 파라미터의 사용으로서 한 작업에 대하여 구성된 네트워크는 다른 네트워크로 구성될 수도 있다. 거대한 병렬 프로세싱 내의 어떤 작업에 대해서는 높은 차수의 연결성 그리고 이상적으로는 모든 노드가 상호 연결되어 있는 모든 연결성이 바람직 할 수도 있다. 상기 경우 m2/2로 스케일되는 m개 노드에 대한 연결성(connectivity)의 차수(degree)는 제한된 수(limited number)가 될 수 있는데, 예를들면 512는 종래의 회로 토폴로지(topology)의 사용으로는 실현되기 어렵다. 회로 토폴로지의 실현에 대한 가능성은 3차원적 구조(volumetric configuration)에서 서로의 위에 유기적 박막 필름 기술(organic thin-film technology)에 기초한 스택 회로(stack circuit)이며, 매우 높은 차수의 연결성이 가능한 3차원 네트워크 토폴리지가 이루어 질 수 있도록, 분리된 노드와 회로 사이를 연결하기 위하여 수직적 수평적 전도구조(conducting structure)를 사용하는 것이다.
이러한 기술은 노르웨이 특허 출원 제 19982518(Gudesen, Leistad & Nordal)에 공개되어 있으며, 여기에서 MIMD 아키택쳐를 지닌 집적 스케일가능한 데이타 프로세싱이 나타나 있고, 거대한 병렬 프로세싱에 대하여 최적 네트워크 토폴리지와 높은 차수의 연결성으로 3차원적 구조 장치(volumetrically structured unit)로서 실현할 수 있다.

Claims (12)

  1. 디지탈 데이타 및 신호 구조(signal structure)를 위한 디지탈 프로세싱 디바이스(P)로서, 데이타 및 신호 구조는 반복되는 시이퀀스(repeated sequence) 및/또는 중첩 패턴(nested pattern)을 포함하며, 프로세싱 디바이스(P)는 일반적으로 n+1 레벨(S0, S1, ...Sn)과 차수 k(degree k)를 지닌 정규 트리로 구성되는 디지탈 프로세싱 디바이스(P)에 있어서,
    상기 프로세싱 디바이스(P)는 레벨(Sn)상에 회로(Pn)의 형태로 제공되며 트리의 루트 노드(root node)를 형성하고,
    가장 가까운 레벨(Sn-1)은 루트 노드의 자 노드(child node)를 형성하는 k개의 회로(Pn-1)를 포함하며 회로(Pn)에 중첩되고,
    일반적으로 회로(Pn)의 하위레벨(Sn-q)은 상위레벨(Sn-q+1)상의 kq-1개 회로(Pn-q+1)에 중첩되는 kq개의 회로(Pn-q)를 포함하며, 상기 상위레벨의 각 회로(Pn-q+1)는 k개의 회로(Pn-q)를 포함하고(여기서, q∈{1,2,...,n-1}),
    q=n에 대해 회로(Pn)에서 정의되는 영차 레벨(Sn-q=S0)은 프로세싱 디바이스(P)에서 커널 프로세서를 구성하며 상기 레벨(S0)에서 트리의 리프노드(leaf node)를 형성하는 kn-1+1부터 kn회로(P0) 까지를 포함하며, 커널 프로세서(P0)는 1에서 k까지 레벨(S1)의 kn-1개 각 회로(P1)에 중첩되며,
    각 레벨 (S1,S2,...Sn)의 회로(P1,P2,...Pn)는 일반적으로 각 회로(P1,P2,...Pn)에 중첩되는 가장 가까운 하위레벨(S0,S1,...Sn-1)의 회로(P0,P1,...Pn-1)와 연결되어 있는 논리 연산 장치(E)를 포함하며, 구현체 선택에 따라서 각 회로(P1,P2,...Pn)에서 이전 회로(former circuit)의 네트워크를 형성하며, 회로(P0,P1,...Pn) 각각은 동일한 인터페이스(identical interface; I)를 갖는 것을 특징으로 하는 디지탈 프로세싱 디바이스(P).
  2. 제 1항에 있어서,
    영차 레벨(S0)은 kn개의 커널 프로세서(P0)를 포함하고,
    트리가 축소되지 않거나 완전한 트리가 되도록 커널 프로세서(P0)는 인자(r=k)를 갖는 상위레벨의 회로(P1)를 반복적으로 맵(map) 하고,
    일반적으로는 레벨(Sn-q)의 회로(Pn-q)가 상위레벨(Sn-q+1)의 회로(Pn-q+1)를 인자(r=k)로 반복적으로 맵(map) 하는 것을 특징으로 하는 디지탈 프로세싱 디바이스(P).
  3. 제 1항에 있어서,
    영차의 레벨(S0)이 rkn-1(1<r<k)개의 커널 프로세서(P0)를 포함하고,
    트리가 대칭적으로 축소된 또는 균형 있는 트리가 되도록 커널 프로세서(P0)는 동일 인자(r)로 상위레벨(S1)의 회로(P1)를 맵 하고,
    일반적으로는 레벨(S1)로 부터 모든 레벨의 회로(Pn-q)가 상위레벨(Sn-q+1)의 회로(Pn-q+1)를 인자(r=k)로 반복적으로 맵 하는 것을 특징으로 하는 디지탈 프로세싱 디바이스(P).
  4. 제 1항에 있어서,
    1에서 k까지 각 커널 프로세서가 레벨(S1)의 각 회로(P1)에 중첩되고,
    레벨(S0)의 커널 프로세서(P0) 총 수가 최소 kn-1+1, 최대 kn-1 개이며 트리가 비대칭적으로 축소된 또는 균형 잃은 트리가 되도록 적어도 하나 이상의 회로(P1)는 최소 2, 최대 k-1개의 커널 프로세서(P0)를 포함하고,
    일반적으로는 레벨(Sn-q)의 회로(Pn-q)가 각 회로(Pn-q)에 중첩된 회로(Pn-q-1)에 의해 맵 되는 것을 특징으로 하는 디지탈 프로세싱 디바이스(P).
  5. 제 1항에 있어서,
    커널 프로세서(P0)는 적어도 하나 이상의 결합 장치(C)와 상기 하나 이상의 결합 장치와 연결된 메모리 장치(M)를 포함하는 것을 특징으로 하는 디지탈 프로세싱 디바이스(P).
  6. 제 5항에 있어서,
    적어도 메모리 장치(M) 일부가 레지스터 장치(R)로 구현되는 것을 특징으로 하는 디지탈 프로세싱 디바이스(P).
  7. 제 6항에 있어서,
    적어도 하나 이상의 결합 장치(C)와 레지스터 장치(R)가 산술 논리 연산 장치(ALU)로 구현되는 것을 특징으로 하는 디지탈 프로세싱 디바이스(P).
  8. 제 1항에 있어서,
    논리 연산 장치(E)는 적어도 하나 이상의 결합 장치(C)와 상기 하나 이상의 결합 장치와 연결된 레지스터 장치(R)를 포함하는 것을 특징으로 하는 디지탈 프로세싱 디바이스(P).
  9. 제 8항에 있어서,
    적어도 하나 이상의 결합 장치(C)가 멀티플렉서(MUX)인 것을 특징으로 하는 디지탈 프로세싱 디바이스(P).
  10. 제 9항에 있어서,
    회로(Pn-q)의 논리 연산 장치(E)는 인접 트리의 동일 레벨(Sn-q)상 해당 회로(Pn-q)의 논리 연산 장치(E)와 연결될 수 있는 것을 특징으로 하는 디지탈 프로세싱 디바이스(P).
  11. 제 9항에 있어서,
    회로(Pn-q)의 논리 연산 장치(E)는 인접 트리의 각 하위레벨(Sn-q-1,Sn-q-2,...S1)상 회로(Pn-q-1,Pn-q-2,...P1)의 논리 연산 장치(E)와 연결될 수 있는 것을 특징으로 하는 디지탈 프로세싱 디바이스(P).
  12. 제 11항에 있어서,
    회로(Pn-q)의 논리 연산 장치(E)는 직접적으로 또는 회로(P1)의 논리 연산 장치(E)를 통해서 인접 트리의 하나 또는 그 이상의 커널 프로세서(P0)들과 연결될 수 있으며, 여기서 상기 커널 프로세서(P0) 또는 커널 프로세서들(P0)은 중첩되는 것을특징으로 하는 디지탈 프로세싱 디바이스(P).
KR10-2001-7004500A 1998-10-09 1999-10-08 디지탈 프로세싱 디바이스 KR100373426B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
NO984746A NO984746D0 (no) 1998-10-09 1998-10-09 Digital prosesseringsenhet
NO19984746 1998-10-09

Publications (2)

Publication Number Publication Date
KR20010080076A true KR20010080076A (ko) 2001-08-22
KR100373426B1 KR100373426B1 (ko) 2003-02-25

Family

ID=19902501

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-7004500A KR100373426B1 (ko) 1998-10-09 1999-10-08 디지탈 프로세싱 디바이스

Country Status (17)

Country Link
US (1) US6760744B1 (ko)
EP (1) EP1125216B1 (ko)
JP (1) JP3789302B2 (ko)
KR (1) KR100373426B1 (ko)
CN (1) CN1120434C (ko)
AT (1) ATE211838T1 (ko)
AU (1) AU750622B2 (ko)
BR (1) BR9914318A (ko)
CA (1) CA2344149C (ko)
DE (1) DE69900796T2 (ko)
DK (1) DK1125216T3 (ko)
ES (1) ES2170590T3 (ko)
HK (1) HK1042570B (ko)
IL (1) IL142001A0 (ko)
NO (1) NO984746D0 (ko)
PT (1) PT1125216E (ko)
WO (1) WO2000022545A2 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6940998B2 (en) * 2000-02-04 2005-09-06 Cernium, Inc. System for automated screening of security cameras
US6957318B2 (en) * 2001-08-17 2005-10-18 Sun Microsystems, Inc. Method and apparatus for controlling a massively parallel processing environment
US7664840B2 (en) * 2001-09-13 2010-02-16 Network Foundation Technologies, Llc Systems for distributing data over a computer network and methods for arranging nodes for distribution of data over a computer network
FR2836731B1 (fr) * 2002-03-01 2004-12-03 Abdulai Danso Procede pour la realisation et la mise en oeuvre d'un systeme de communication multifonctionnel et systeme obtenu conformement audit procede
US20030177166A1 (en) * 2002-03-15 2003-09-18 Research Foundation Of The State University Of New York Scalable scheduling in parallel processors
US7822224B2 (en) * 2005-06-22 2010-10-26 Cernium Corporation Terrain map summary elements
EP1808774A1 (en) 2005-12-22 2007-07-18 St Microelectronics S.A. A hierarchical reconfigurable computer architecture
US7801901B2 (en) * 2006-09-15 2010-09-21 Microsoft Corporation Tracking storylines around a query
US8150889B1 (en) * 2008-08-28 2012-04-03 Amazon Technologies, Inc. Parallel processing framework
WO2010124062A1 (en) * 2009-04-22 2010-10-28 Cernium Corporation System and method for motion detection in a surveillance video
GB201904267D0 (en) * 2019-03-27 2019-05-08 Graphcore Ltd A networked computer with multiple embedded rings
US10956357B2 (en) * 2019-04-01 2021-03-23 International Business Machines Corporation Method for flexible, fast all-reduce on arbitrary tree topology
US11605288B2 (en) 2020-11-30 2023-03-14 Whp Workflow Solutions, Inc. Network operating center (NOC) workspace interoperability
US11720414B2 (en) * 2020-11-30 2023-08-08 Whp Workflow Solutions, Inc. Parallel execution controller for partitioned segments of a data model
US11271810B1 (en) 2020-11-30 2022-03-08 Getac Technology Corporation Heterogeneous cross-cloud service interoperability
US11477616B2 (en) 2020-11-30 2022-10-18 Getac Technology Corporation Safety detection controller
US11540027B2 (en) 2020-11-30 2022-12-27 Getac Technology Corporation Performant ad hoc data ingestion
US11604773B2 (en) 2020-11-30 2023-03-14 Whp Workflow Solutions, Inc. Hierarchical data ingestion in a universal schema
US11468671B2 (en) 2020-11-30 2022-10-11 Getac Technology Corporation Sentiment analysis for situational awareness
US11630677B2 (en) 2020-11-30 2023-04-18 Whp Workflow Solutions, Inc. Data aggregation with self-configuring drivers
US11977993B2 (en) 2020-11-30 2024-05-07 Getac Technology Corporation Data source correlation techniques for machine learning and convolutional neural models

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4251861A (en) 1978-10-27 1981-02-17 Mago Gyula A Cellular network of processors
US4860201A (en) * 1986-09-02 1989-08-22 The Trustees Of Columbia University In The City Of New York Binary tree parallel processor
US5561768A (en) 1992-03-17 1996-10-01 Thinking Machines Corporation System and method for partitioning a massively parallel computer system
US6052712A (en) * 1996-04-30 2000-04-18 International Business Machines Corporation System for barrier synchronization wherein members dynamic voting controls the number of synchronization phases of protocols and progression to each subsequent phase
US5884046A (en) * 1996-10-23 1999-03-16 Pluris, Inc. Apparatus and method for sharing data and routing messages between a plurality of workstations in a local area network

Also Published As

Publication number Publication date
HK1042570A1 (en) 2002-08-16
HK1042570B (zh) 2004-05-07
DK1125216T3 (da) 2002-04-29
KR100373426B1 (ko) 2003-02-25
ATE211838T1 (de) 2002-01-15
NO984746D0 (no) 1998-10-09
BR9914318A (pt) 2001-08-07
CN1332874A (zh) 2002-01-23
PT1125216E (pt) 2002-04-29
CA2344149C (en) 2003-08-26
WO2000022545A2 (en) 2000-04-20
CN1120434C (zh) 2003-09-03
WO2000022545A3 (en) 2000-08-03
IL142001A0 (en) 2002-03-10
ES2170590T3 (es) 2002-08-01
EP1125216A2 (en) 2001-08-22
JP3789302B2 (ja) 2006-06-21
CA2344149A1 (en) 2000-04-20
AU750622B2 (en) 2002-07-25
JP2002527827A (ja) 2002-08-27
AU6373999A (en) 2000-05-01
DE69900796T2 (de) 2002-08-22
EP1125216B1 (en) 2002-01-09
US6760744B1 (en) 2004-07-06
DE69900796D1 (de) 2002-02-28

Similar Documents

Publication Publication Date Title
KR100373426B1 (ko) 디지탈 프로세싱 디바이스
Miller et al. Parallel computations on reconfigurable meshes
Jang et al. An optimal sorting algorithm on reconfigurable mesh
Jang et al. A fast algorithm for computing a histogram on reconfigurable mesh
JP2512661B2 (ja) 非バイナリ・ハイパ―キュ―ブ形式のコンピュ―タ・システムおよびネットワ―クにおける複数ノ―ドの接続方法
Bhandarkar et al. The REFINE multiprocessor—theoretical properties and algorithms
JPH04267466A (ja) 連想並列処理システム
Stojmenović Multiplicative circulant networks topological properties and communication algorithms
Olariu et al. Integer problems on reconfigurable meshes, with applications
JP3588049B2 (ja) 処理回路及び検索プロセッサ回路
Tortora et al. Pyramidal algorithms for iconic indexing
Nakano Prefix-sums algorithms on reconfigurable meshes
Alsuwaiyel Parallel Algorithms
Dulac et al. Implementation and evaluation of a parallel architecture using asynchronous communications
Shen Efficient parallel multiselection on hypercubes
Eshaghian-Wilner et al. The systolic reconfigurable mesh
Alnuweiri et al. Processor-time optimal parallel algorithms for digitized images on mesh-connected processor arrays
Haendler et al. Vertical processing in parallel computing systems
Chuang et al. An efficient Hough transform algorithm on SIMD hypercube
NO312983B1 (no) Digital prosesseringsinnretning
Quadri et al. Modeling of topologies of interconnection networks based on multidimensional multiplicity
Zippel Programming the data structure accelerator
Ziavras et al. Viable architectures for high-performance computing
Zippel The data structure accelerator architecture
Dubacq Different kinds of neighborhood-varying cellular automata

Legal Events

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

Payment date: 20110120

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee