KR20010014381A - 메니폴드 어레이 프로세서 - Google Patents

메니폴드 어레이 프로세서 Download PDF

Info

Publication number
KR20010014381A
KR20010014381A KR1019997012547A KR19997012547A KR20010014381A KR 20010014381 A KR20010014381 A KR 20010014381A KR 1019997012547 A KR1019997012547 A KR 1019997012547A KR 19997012547 A KR19997012547 A KR 19997012547A KR 20010014381 A KR20010014381 A KR 20010014381A
Authority
KR
South Korea
Prior art keywords
cluster
array
array processor
clusters
communication
Prior art date
Application number
KR1019997012547A
Other languages
English (en)
Inventor
제랄드 지. 페카넥
찰스 더블유.쥬니어 쿠락
Original Assignee
밥스 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 밥스 인코포레이티드 filed Critical 밥스 인코포레이티드
Publication of KR20010014381A publication Critical patent/KR20010014381A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • 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/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17381Two dimensional, e.g. mesh, torus
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP

Abstract

어레이 프로세서는 직사각형 어레이 내에 반복적으로 조합되는 클러스터 내에 배열된 처리 요소를 포함한다. 각각의 클러스터는 퇴소한 2개의 다른 클러스터의 처리 요소와 양호하게 통신하는 처리 요소로 형성된다. 부수적으로, 각각의 내부 클러스터 통신 경로는 상호 배타적인데, 즉 각각의 경로는 북쪽 및 서쪽, 남쪽 및 동쪽, 북쪽 및 동쪽, 또는 남쪽 및 서쪽 통신을 달성한다. 데이터 경로의 상호 배타성으로 인해, 각 클러스터의 처리 요소들 사이의 통신은 단일 내부 클러스터 경로 내에 조합될 수 있다. 즉, 다른 클러스터를 가지는 북쪽 및 동쪽으로 통신하는 클러스터로부터의 통신은 하나의 경로 내에 조합될 수 있으므로, 경로에 필요한 배선을 절반이나 제거할 수 있다. 부수적으로, 최대 통신 경로의 길이는 종래의 토러스 어레이에서와 같이 어레이의 전체 규모에 의해 직접 결정되지 않는다. 오히러, 최장 통신 경로는 내부 클러스터 공간에 의해서만 제한된다. 한가지 수행에 있어서, N x N 토러스의 전치 요소는 클러스터 내에 조합되고, 내부 클러스터 통신 경로를 통해 서로 통신한다. 슬라이스 전치 요소는 서로가 직접 접속부를 가지고 있고, 전치 연산 레이턴시는 이러한 방식으로 제거된다. 부수적으로, 각각의 PE는 단일 송신 포트 및 단일 수신 포드를 가질 수 있다. 결과적으로, 개별 PE는 어레이의 연구로부터 해제된다.

Description

메니폴드 어레이 프로세서{Manifold array processor}
데이터를 병렬로 연산하는 여러 가지 계산 업무(computing task)가 개발되었다. 병렬 프로세서의 효과는 병렬 프로세서의 구조, 부호화 알고리즘, 및 병렬 요소내의 데이터의 배치에 따라 다르다. 예를 들어, 영상 처리, 패턴 인식, 및 컴퓨터 그래픽은 2차원 또는 3차원 그리드내에 원래 배열되는 데이터를 연산하는 모든 응용 분야이다. 데이터는 예로서 오디오, 비디오, SONAR 또는 RADAR 신호와 같은 광의의 신호로 표현할 수 있다. 이러한 데이터에 대해 공통적으로 수행되는 이산 코사인 변환(DCT), 역 이산 코사인 변환(IDCT), 콘벌루션 등이 상이한 그리드(grid) 세그먼트에서 동시에 수행되기 때문에, 한 개 이상의 프로세서로 임무를 동시에 수행함으로써 이러한 연산을 상당히 가속시킬 수 있는 멀티프로세서 어레이 시스템이 개발되었다. 병렬 처리는 본 발명의 참고 문헌으로 이용된 미합중국 특허 제5,065,339호, 제5,146,543호, 제5,146,420호, 제5,148,515호, 제5,546,336호, 제5,542,026호, 제5,612,908호 및 제5,577,262호 유럽 특허 공개 제0,726,529호 및 제0,726,532호를 포함하는 다수의 특허에 게재되어 있다.
병렬 처리 구조에 대한 한가지 종래의 방법은 R. Cypher 및 J. L. C. Sanz 저, SIMD Architectures and Algorithms for Image Processing and Computer Vision, IEEE Transactions on Acoustics, Speed and Signal Processing, 제17권, 제12호, 2158-2174 페이지(1989. 12); K. E. Batcher, Design of Maesively Parallel Processor, IEEE Transactions on Computers, 제 C-29권, 제 9호, 836-840 페이지(1980. 9); 및 L. Uhr, Multi-Computer Architectures for Artificial Intelligence, 뉴욕주 뉴욕에 소재하는 John Wiley & Sons, 제8장, 97 페이지(1987년)에서 논한 최근접 이웃 메쉬(mesh) 접속 컴퓨터이다.
도 1A의 최근접 이웃 토러스(torus) 접속 컴퓨터에 있어서, 다중 처리 요소(PE)는 이들의 북쪽, 남쪽, 동쪽 및 서쪽 이웃 PE에 토러스 접속 경로(MP)를 통해 접속되고, 모든 PE는 동기 단일 명령어 다중 데이터(SIMD) 형태로 연산된다. 토러스 접속 컴퓨터가 메쉬 접속 컴퓨터에 순환(wraparound) 접속부를 추가함으로써 얻어지기 때문에, 순환 접속부가 없는 것, 즉, 메쉬 접속 컴퓨터는 토러스 접속 컴퓨터의 실체로서 생각할 수 있다. 도 1B에 도시된 바와 같이, 각각의 경로(MP)는 T 송신 배선 및 R 수신 배선을 포함할 수 있거나, 도 1C에 도시된 바와 같이 각각의 경로(MP)는 B 양방향 배선을 포함할 수 있다. 단방향과 양방향 통신이 본 발명에 의해 심사 숙고될지라도, 경로 내의 버스 배선의 총수, 즉, 제어 신호를 제외한 배선의 총수는 이하에서 k 배선이라 일반적으로 칭하며, 여기서, 양방향 버스에서 k=B로 설계하고, 단방향 버스에서 k=T+R로 설계한다. PE는 데이터를 그 이웃 PE들중 소정의 것에 송신하지만, 단 하나만을 적시에 송신할 수도 있다고 가정한다. 예를 들어, 각각의 PE는 데이터를 이것의 동쪽 이웃에 하나의 통신 사이클중에 송신할 수 있다. 또한, 방송 매체는 데이터 및 명령어가 제어기로부터 모든 경로로 하나의 방송 급송 기간중에 동시에 급송될 수 있다.
비트 열(bit-serial) 상호 PE 통신이 배선 복잡도를 최소화하는데 전형적으로 이용될지라도, 토러스 접속 어레이의 배선 복잡도는 그럼에도 불구하고 수행상의 문제점을 제공한다. 도 1A의 종래의 토러스 접속 어레이는 PE의 4 x 4 어레이(10)내에 접속된 16개의 처리 요소를 포함한다. 각각의 처리 요소(PEi,j)는 행 및 열(i 및 j)로 각각 명명된다. 각각의 PE는 포인트-포인트 접속(point to point connection)으로 최근접한 북쪽(N), 남쪽(S), 동쪽(E), 및 서쪽(W) 이웃과 통신한다. 도 1A에 도시된 PE0,0과 PE3,0사이의 순환 접속은 토러스 구조내에 어레이를 형성하는 순환 인터페이스들 중 하나의 인터페이스를 나타내는 PE0,0의 N 인터페이스와 PE3,0의 서쪽 인터페이스 사이의 순환 접속부이다. 이러한 구조에 있어서, 각각의 행은 한 세트의 N개의 상호 접속부를 포함하고, N 행에는 N2개의 수평 접속부가 있다. 이와 유사하게, N개의 수직 상호 접속부를 가지고 있는 N개의 열에는 N2개의 수직 상호 접속부가 있다. 도 1A의 예에 있어서, N=4. 그러므로, 순환 접속부를 포함하는 N x N 토러스 접속 컴퓨터내의 집적 회로 수행시의 금속 라인과 같은 배선의 총수는 k가 각 접속부내의 배선 수인 2KN2이다. 수 k는 비트열 상호 접속부내의 것과 같을 수 있다. 도 1A에 도시된 바와 같이 4 x 4 어레이(10)에서 k=1의 예에서와 같이 2kN2=32.
N이 비교적 작은 다수의 응용에 있어서, 전체 PE 어레이는 단일 집적 회로에 이용되는 것이 바람직하다. 본 발명은 각각의 PE가, 예를 들어 별도의 마이크로프로세서 칩일 수 있는 실시 양태를 제외하지 않았다. 토러스 접속 컴퓨터내의 배선의 총수가 중요하기 때문에, 상호 접속부는 다수의 귀중한 집적 회로 "리얼 이스테이트(real estate)"을 소모할 수 있거나 칩 영역이 용해된다. 부수적으로, PE 상호 접속 경로는 누화(crosstalk)에 의한 통신 회선으로의 IC 배치 처리 및 가능한 유입 잡음으로 악화시키는 서로에 대해 매우 빈번하게 건너간다. 더욱이, 어레이의 북·남 및 동·서 양극단(extreme)에 PE를 접속시키는 순환 링크의 길이는 어레이 크기를 증가시킴에 따라 증가할 수 있다. 이렇게 증가된 길이는 각각의 통신 회선의 용량을 증가시키므로, 회선의 최대 비트 전송 속도를 감소시키고, 회선에 부수적인 잡음을 유입시킬 수 있다.
토러스 어레이에 관한 다른 단점은 전치(transpose) 연산에 관련하여 상승한다. 처리 요소 및 이것의 전치가 통신 경로내의 한 개 이상의 중재 처리 요소에 의해 분리되기 때문에, 대기 시간은 전치를 이용하는 연산에서 소개된다. 예를 들어, PE2,1이 이것의 전치 PE1,2로부터 데이터를 필요로 한다면, 데이터는 중재 PE1,1또는 PE2,2를 통해 전달되어야 한다. 물론, 이것은 PE1,1및 PE2,2가 그렇지 않은 경우 점유되지 않을지라도 연산시 지연시킨다. 그러나, PERK 마이크로프로세서 요소로서 실시되는 일반적인 경우에는, PE1,1및 PE2,2가 그 밖의 다른 연산을 수행할 수 있는 매우 양호한 확률이고, PE1,2에서 PE2,1까지 데이터 및 커맨드를 전송하기 위해, 이들은 이들의 연산을 고려하지 않고 정연한 형태로 세트시킬 수 있다. 그러므로, 이것은 데이터 또는 커맨드를 PE1,2또는 PE1,2로 이송시키기 시작하는 몇가지 연산을 취할 수 있고, 연산 PE1,1은 전치 데이터도 지연될 수 있는 것을 이송시키는 대신에 세트되게 할 수 있다. 이러한 지연은 보간(intervening) PE 마다 가속도를 붙여 커지게 하고, 레이턴시(latency)는 최대 전치 기간 동안 삽입된다. 예를 들어, 도 1A의 PE3,2또는 PE1,3전치 기간은 4가지 통신 단계에 따른 레이턴시를 필요로 하는 3개의 보간 PE의 최소화를 가지고 있고 일반적인 경우에 데이터를 PE3,1또는 PE1,3사이로 이송하기 위해 모든 이러한 PE 대신에 세트되게 하여야 하는 모든 임무에 따른 레이턴시를 부수적으로 초래할 수 있다.
토러스 접속 어레이의 이러한 제한을 인식하면, 어레이에 대한 새로운 방법이 본 발명의 참고 문헌으로 이용된 미합중국 특허 제5,612,908호, A Massively Parallel Diagonal Fold Array Processor, G. G. Pechanek 등저, 1993 International Conference on Application Specific Array Processor, 140-143 페이지(1993. 10. 25-27) 이탈리아 베니시, 및 Multiple Fold Clustered Processor Torus Array, 뉴멕시코 알부쿼퀴에 소재하는 뉴멕시코 대학에서 1993. 11. 4-5에 G. G Pechannek 등이 발표한 Proceedings Fifth NASA Symposium on VLSI Design, B. 4. 1-11 페이지에 기재되어 있다. 토러스 어레이 구조에 따른 동작 기술은 종래의 최근접 이웃 토러스의 진단 PE를 폴드오버(foldover) 에지에서 이용하는 PE 어레이의 폴딩이다. 도 2의 어레이내에 도시된 바와 같이, 이러한 기술은 순환 접속부의 수 및 길이를 감소시키고, 이러한 전치 PE에 근접하게 PE를 배치시키기 위해 상호 PE 배선을 상당히 감소시키는데 이용될 수 있다. 이러한 프로세서 어레이 구조는 본 발명의 발명자와 동일인이고 본 발명의 참고 문헌으로 이용된 미합중국 특허 제5,577,262호, 제5,612,908호 및 유럽 특허 공개 제0,726,532호 및 제0,726,529호에 기재되어 있다. 이러한 어레이는 예를 들어, 단일 폴드 진단 폴드 메쉬,내에 PE 조합에 따른 불규칙성으로 인해 종래의 토러스 구조보다 상당한 이점을 제공하지만, 소정의 PE는 "인 투스(in twos)"로 클러스터되고, 다른 것은 단일이며, 3개의 폴드 진단 폴드 메쉬내에는, 4개의 PE 및 8개의 PE에 관한 클러스터가 있다. 전체가 삼각형 형태의 어레이로 인해, 진단 폴드 형태의 어레이는 효과적이면서 저렴한 집적 회로 구현에 상당한 장애가 된다. 부수적으로, 유럽 특허 공개 제0,726, 532호 및 제0,726,529호 및 그 밖의 다른 종래의 메쉬 구조에서와 같이 진단 폴드 메쉬에 있어서, 상호 접속 연구는 PE 정의의 본질적인 일부분이다. 이것은 이러한 연구에서 PE의 위치를 고정시키므로, PE의 연구를 제한하고, 실시되는 고정 구조로의 이러한 접속성을 제한한다. 그러므로, 프로세서 어레이 구조 및 프로세서 상호 접속부에는 더욱 개선할 필요성이 존재한다.
본 발명은 일반적으로 처리 시스템에 관한 것이며, 특히, 병렬 처리 구조에 관한 것이다.
도 1A는 종래 기술의 4 x 4 최근접 이웃 접속 토러스 처리 요소(PE)를 도시한 블록도.
도 1B는 도 1A의 종래의 토러스 접속 경로가 T 송신 및 R 수신 배선을 어떻게 포함하는 지를 도시한 도면.
도 1C는 도 1A의 종래의 토러스 접속 경로가 B 양방향 배선을 어떻게 포함하는지를 도시한 도면.
도 2는 종래의 진단 폴드형 메쉬의 블록도.
도 3A는 본 발명의 PE 어레이내에 적절히 이용될 수 있는 처리 요소의 블록도.
도 3B는 본 발명의 PE 어레이내에 적절히 이용될 수 있는 선택적인 처리 요소의 블록도.
도 4는 모든 토러스의 PE간 통신 링크를 설명하는 4 x 4 토러스의 타일링을 도시한 도면.
도 5A 내지 도 5G는 본 발명에 따른 클러스터 그룹핑에 대한 PE의 선택을 설명하는 4 x 4 토러스의 타일링을 도시한 도면.
도 6은 클러스터에 대한 PE의 선택적인 그룹핑을 설명하는 4 x 4 토러스의 타일링을 도시한 도면.
도 7은 PE 클러스터에 대한 PE의 선택을 설명하는 3 x 3 토러스의 타일링을 도시한 도면.
도 8은 PE 클러스터에 대한 PE의 선택을 설명하는 3 x 5 토러스의 타일링을 도시한 도면.
도 9는 PE 클러스터에 대한 선택 PE에 따른 선택적인 마름모/원형 방법을 설명하는 블록도.
도 10은 새로운 PE 클러스터의 내부 클러스터 통신 경로를 설명하는 블록도.
도 11A 및 도 11B는 PE 클러스터 선택에 따른 선택적인 마름모/원형 방법을 도시한 도면.
도 12는 5 x 4 PE 어레이에 대한 마름모/원형 PE 선택 처리를 설명하는 블록도.
도 13은 4 x 5 PE 어레이에 대한 마름모/원형 PE 선택 처리를 설명하는 블록도.
도 14는 5 x 5 PE 어레이에 대한 마름모/원형 PE 선택 처리를 설명하는 블록도.
도 15A 내지 도 15D는 3, 4, 5 및 6 클러스터 x 6 PE 어레이에 대한 내부 클러스터 통신 경로를 각각 설명하는 블록도.
도 16은 4개의 4 멤버 클러스터의 어레이내의 동쪽/남쪽 통신 경로를 설명하는 블록도.
도 17은 4개의 4 멤버 클러스터의 어레이 내의 동쪽/남쪽 및 서쪽/북쪽 통신 경로를 설명하는 블록도.
도 18은 예증이 된 클러스터에 따른 클러스터 스위치 및 이것의 인터페이스를 보다 상세하게 설명하는 도 17의 실시예에 관한 클러스터들 중 하나의 클러스터를 설명하는 블록도.
도 19A 및 도 19B는 본 발명의 새로운 어레이 프로세서로 유리하게 달성될 수 있는 예시적인 콘벌루션에 이용된 콘벌루션 윈도우 및 콘벌루션 경로를 각각 도시한 도면.
도 19C 및 도 19D는 4 x 4 블록내의 영상 부분 및 종래의 토러스 위치 내에 배치된 블록을 각각 설명하는 블록도.
도 20A 내지 도 24B는 각각의 콘벌루션 연산 단계의 종료시 본 발명에 따른 메니폴드 어레이의 상태를 설명하는 블록도.
본 발명은 종래의 토러스 처리 요소 어레이의 배선 요구와 비교시 어레이의 상호 접속 배선 요구를 상당히 감소시키는 처리 요소 어레이에 관한 것이다. 양호한 실시예에 있어서, 본 발명에 따른 하나의 어레이는 전치 연산에 따른 레이턴시를 상당히 감소시킬 수 있다. 부수적으로, 본 발명의 어레이는 어레이의 전체 규모로부터 순환 배선 길이를 줄이므로, 최장 상호 접속 배선 길이를 줄인다. 또한, 통신 PE들 중에서 충돌하지 않게 하는 어레이 통신 패턴에 있어서, 단 하나의 송신 포트 및 하나의 수신 포트는 특정한 연구가 이것의 PE 노드에 필요한 이웃 접속부의 수와 무관하게 PE 마다 필요로 한다. 어레이의 양호한 집적 회로 수행은 직사각형 또는 정사각형 윤곽을 제공하도록 조합된 유사한 처리 요소 클러스터의 조합을 포함한다. 처리 요소의 유사성, 처리 요소 클러스터의 유사성, 및 어레이의 전체 윤곽의 정규성은 제조 단가 면에서 효과적인 집적 회로를 제조하는데 특히 적절한 어레이를 제조한다.
본 발명에 따른 어레이를 형성하기 위해, 처리 요소는 단일 명령어 다중 데이터("SIMD") 연산의 통신 요구 조건을 이용하는 클러스터 내에 먼저 조합될 수 있다. 이 때, 처리 요소는 하나의 클러스터에 관한 요소가 클러스터내에서 통신하고 단 2개의 다른 클러스터의 멤버와 통신하도록 통합될 수 있다. 더욱이, 각 클러스터의 구조적 처리 요소는 단지 두 상호 배타적 방향들로 각각의 다른 클러스터의 처리 요소와 통신한다. 정의에 의하면, 단방향 통신 용량을 가지는 SIMD 토러스에 있어서, 북쪽/남쪽 방향은 동쪽/서쪽 방향에서 상호 배타적이다. 처리 요소 클러스터는 네임 임플라이(name imply)로서 물리적으로 서로가 근접하여 양호하게 형성된 프로세서 그룹이다. 집적 회로 수행에 있어서, 예를 들어 클러스터의 처리 요소는 가능한 서로가 근접하여 양호하게 배치되어야 하고, 어레이내의 소정의 그 밖의 다른 처리 요소 보다 서로가 양호하게 근접되어야 한다. 예를 들어, 처리 요소의 종래의 4 x 4 토러스 어레이에 대응하는 어레이는 각각 4개 요소의 4개 클러스터를 포함하는데, 각각의 클러스터는 하나의 다른 클러스터를 가지는 북쪽 및 동쪽으로만 통신하고, 다른 클러스터를 가지는 남쪽 및 서쪽으로만 통신하거나, 하나의 다른 클러스터를 가지는 남쪽 및 동쪽으로만 통신하고, 다른 클러스터를 가지는 북쪽 및 서쪽으로만 통신한다. 이러한 방식으로 PE를 클러스터링함으로써, PE 클러스터들 사이의 통신 경로는 멀티플렉싱을 통해 공유되므로, 어레이에 필요한 상호 접속 배선을 상당히 감소시킬 수 있다.
양호한 실시예에 있어서, 클러스터를 포함하는 PE는 처리 요소 및 이들의 전치가 동일한 클러스터내에 배치되어, 내부 클러스터 통신 경로를 통해 서로 통신하므로, 종래의 토러스 어레이로 달성된 전치 연산에 관련된 레이턴시를 제거하도록 선택된다. 부수적으로, 종래의 순환 경로가 소정의 PE-PE 경로와 동일하게 처리되기 때문에, 최장 통신 경로는 어레이 전체 규모와 무관하게 내부 클러스터 공간 만큼 짧아질 수 있다. 본 발명에 따르면, N x M 토러스는 N개 PE의 M개 클러스터의 어레이, 또는 M개 PE의 N개 클러스터내로 전송될 수 있다.
이하, 첨부 도면을 참조하여 본 발명의 장점, 구성 및 작용을 포함하는 실시예에 대해 상세하게 설명하고자 한다.
한 실시예에 있어서, 본 발명에 따른 새로운 어레이 프로세서는 클러스터, 또는 그룹내에 PE와 조합하므로, 하나의 클러스터의 요소는 단 2개의 다른 클러스터의 멤버와 통신하고 각 클러스터의 구성 처리 요소는 각각의 다른 클러스터의 처리 요소와 단지 두 상호 배타적 방향으로 통신한다. 이러한 방식으로 PE를 클러스터링함으로써, PE 클러스터들 사이의 통신 경로는 공유되므로, 어레이에 필요한 상호 접속 배선을 상당히 감소시킨다. 부수적으로, 각각의 PE는 단일 송신 포트 및 단일 수신 포트를 가질 수 있거나, 양방향 수순 또는 타임 슬라이스형 송/수신 통신 수행의 경우에, 단일 송/수신 포트를 가질 수 있다. 결과적으로, 개별 PE는 어레이 연구로부터 해제된다. 즉, 각각의 PE가 4개의 양방향 통신 포트, 즉 각 방향으로의 통신 포트를 가지고 있는 종래의 토러스 접속 어레이와 달리, 새로운 어레이 구조에 의해 이용된 PE는 하나의 포트만을 가질 필요가 있다. 단일 송신 및 단일 수신 포트를 이용하는 수행에 있어서, 어레이내의 모든 PE는 동시에 송·수신할 수 있다. 종래의 토러스에 있어서, 이것은 PE당 4개의 송신 및 4개의 수신 포트, 즉 총 8개의 포트를 동시에 필요로 할 수 있지만, 본 발명에 있어서, PE당 하나의 송신 포트 및 하나의 수신 포트, 즉 총 2개의 포트가 필요하다.
본 발명의 한가지 양호한 실시예에 있어서, 클러스터를 포함하는 PE는 처리 요소 및 이들의 전치가 동일한 클러스터내에 배치되고, 내부 클러스터 통신 경로를 통해 서로 통신하도록 선택된다. 설명의 편의상 처리 요소는 이들이 종래의 토러스 어레이내에 나타난다고 하고, 예를 들어 처리 요소 PE0,0은 어레이에 종래의 "북서쪽" 코너에 나타나는 처리 요소이다. 따라서, 새로운 클로스터 어레이의 배치는 종래 어레이 프로세서의 것과 상당히 다를지라도, 종래 및 새로운 클러스터 어레이의 대응하는 처리 요소에 동일한 데이터가 공급될 수 있다. 예를 들어, 종래의 토러스 및 새로운 클러스터 어레이는 종래의 토러스 접속 어레이의 PE0,0요소로서 연산하도록 동일한 데이터를 수신할 수 있다. 부수적으로, 이러한 설명에 관한 방향은 토러스 접속 어레이의 방향이라 할 수 있다. 예를 들어, 처리 요소들 사이의 통신이 북쪽에서 남쪽으로 발생된다고 말할 때, 이러한 방향은 종래의 토러스 접속 어레이내의 통신 방향이라 한다.
PE는 특정한 응용용으로 맞추어진 간단한 구조일 수 있는 단일 마이크로프로세서 칩일 수 있다. 다음 설명은 제한하고자 하는 것이 아니라, 기본 PE가 포함된 개념을 논증하도록 기술될 수 있다. 본 발명의 새로운 PE 어레이의 각각의 PE에 이용될 수 있는 한가지 적절한 실시예를 설명하는 PE(30)의 기본 구조가 도 3A에 도시되어 있다. 설명을 간단하게 하기 위해, 인터페이스 논리 및 버퍼는 도시하지 않았다. 방송 명령어 버스(31)는 SIMD 제어기(29)로부터 급송된 명령어를 수신하도록 접속되고, 데이터 버스(32)는 메모리(33)로부터 데이터를 수신하거나 PE(30) 외부의 다른 데이터 소오스를 수신하도록 접속된다. 레지스터 파일 저장 매체(34)는 소오스 오퍼랜드(operand) 데이터를 실행 장치(36)에 제공한다. 명령어 디코더/제어기(38)는 방송 명령어 버스(31)를 통해 명령어를 수신하고, 이들의 내용은 경로(22)를 통해 실행 장치(36)로 오퍼랜드로서 반복적으로 제공하는 레지스터 파일(34)내의 레지스터에 제어 신호(21)를 제공한다. 실행 장치(36)는 제어 제어 신호(23)를 명령어 디코더/제어기(38)로부터 수신하고, 경로(24)를 통해 레지스터 파일(34)로 결과를 제공한다. 또한, 명령어 디코더/제어기(38)는 스위치 인에이블이라고 명명된 라인(39)에 출력 상의 클러스터 스위치 신호를 제공한다. 클러스터 스위치의 기능은 도 18의 설명에 관련하여 상세하게 후술하고자 한다. 데이터 또는 커맨드의 상호 PE 통신은 수신(receive)이라고 명명된 수신 입력(37)에서 수신되고, 전송(send)이라고 명명된 송신 출력(35)으로부터 송신된다.
도 3b는 명령어 디코더/제어기(38)로부터 수신된 제어 신호(25)에 기초하여 데이터 형성 연산을 제공하는 인터페이스 제어 장치(50)를 포함하는 선택적인 PE 표시(30')를 도시한 것이다. 데이터 형성 연산은, 예를 들어 여러 가지 표준안 또는 인터페이스 요구 조건과 부합하도록 병렬-직렬 및 직렬-병렬 변환, 데이터 암호화 데이터 포맷 변환을 포함할 수 있다.
도 3A에 도시된 PE(30)와 동일한 형태의 PE의 종래의 4 x 4 최근접 이웃 토러스는 도 4에서 자신을 타일링함으로써 둘러싸여진 것으로 도시되어 있다. 중앙의 4 x 4 토러스(40)는 토러스의 순환 접속부를 포함하는 링(42)에 의해 봉입된다. 도 4의 타일링은 순환 접속부를 "평탄화"하므로, 본 발명의 한 실시예에 관한 어레이내에 이용된 양호한 클러스터 형성 처리의 설명에 도움을 주는데 이용된다. 예를 들어, PE0,0으로부터 서쪽으로의 순환 접속부는 블록(42)내에 도시된 바와 같이 PE1,3으로부터 동쪽으로는 PE1,0등인 PE0,3이다. 이러한 도면의 이용은 도 5A 내지 5G의 후술한 설명에 관련하여 보다 상세히 나타날 수 있다.
도 5A에 있어서, 기본적인 4 x 4 토러스는 자체를 타일링함으로써 다시 한번 둘러싼다. 본 발명은 PE0,0으로부터 동쪽 및 남쪽으로의 통신이 PE0,1및 PE1,0를 각각 포함한다고 인식한다. 더욱이, PE1,0으로의 동쪽과 통신하는 PE는 PE1,3이고, PE1,2는 PE2,3으로의 남쪽과 통신한다. 그러므로, 4개의 PE들, 즉 PE0,1, PE1,3, PE2,2및 PE2,1과 조합하면 하나의 클러스터내에는 PE들, PE0,2, PE1,0, PE2,3및 PE3,2를 포함하는 다른 클러스터(46)를 가지는 남쪽 및 동쪽으로만 PE가 통신하는 클러스터(44)를 발생시킨다. 이와 유사하게, 클러스터(46)의 PE는 PE들, 즉 PE0,2, PE2,2, PE2,0및 PE3,3을 포함하는 클러스터(48)의 PE를 가지고 있는 남쪽 및 동쪽과 통신한다. 클러스터(50)의 PE들 ,즉 PE0,2, PE1,2, PE2,1및 PE3,3은 클러스터를 가지는 남쪽 및 동쪽과 통신한다. 이러한 조합은 단 2개의 다른 클러스터내의 PE와 통신하고, 이러한 클러스터와 상호 배타적 방향으로 통신하는 PE의 클러스터를 발생시킨다. 이것은, 예를 들어 클러스터(50)의 PE를 가지는 남쪽 및 동쪽으로만 통신하고, 클러스터(46)의 PE를 가지고 있는 북쪽 및 서쪽으로만 통신한다. 이것은 종래의 최근접 이웃 토러스 어레이의 요구 조건에 비해서 상당히 감소될 본 발명에 따른 어레이내의 PE간 접속부와 접속하는 PE의 그룹핑의 예이다.
다수의 다른 조합이 가능하다. 예를 들어, 북쪽 및 동쪽과의 통신에 관련하여 PE0,0과의 다시 개시 및 그룹핑 PE는 도 5B의 클러스터(52, 54, 56 및 58)를 발생시킨다. 이러한 클러스터는 PE 어레이의 상호 접속 요구 조건을 크게 감소시키고 최장 PE간 접속부의 길이를 감소시키는 방식으로 조합될 수 있다. 그러나, 이러한 클러스터는 PE를 조합하지 않고, 도 5A내의 모든 클러스터(44-50)의 이들의 전치가 행해진다. 즉, 전치쌍(PE0,2/PE2,0및 PE1,2/PE2,2)가 클러스터(56)내에 포함될지라도, 전치쌍(PE0,1/PE1,0)은 클러스터(54와 58) 사이에서 분할된다. 본 발명의 양호 실시예에 따른 어레이는 모든 PE를 클러스터내의 이들의 전치와 조합하는 참조번호(44-50)와 같은 클러스터만을 이용한다. 예를 들어, 도 5A에 있어서, PE3,1/PE1,3전치쌍은 클러스터(44)내에 포함되고, PE3,2, PE2,3및 PE1,0/PE0,1, 전치쌍은 클러스터(46)내에 포함되며, PE0,2/PE2,0전치쌍은 클러스터(48)내에 포함되고, PE3,0/PE0,3및 PE2,2/PE1,2전치쌍은 클러스터(50)내에 포함된다. 도 5C의 클러스터(60, 62, 64 및 68)는 북쪽 및 서쪽과 통신하는 PE와 조합함으로써 PE0,0에서 개시하여 형성된다. 클러스터(60)는 클러스터(44)와 등가이고, 클러스터(62)는 클러스터(46)와 등가이며, 클러스터(64)는 클러스터(48)와 등가이고, 클러스터(68)는 클러스터(50)와 등가라는 것을 주지해야 한다. 이와 유사하게, 남쪽 및 서쪽과 통신하는 PE를 조합함으로써 형성된 도 5D의 클러스터(70 내지 76)는 도 6B의 클러스터(52 내지 58)와 각각 등가이다. 도 5B에 도시된 바와 같이, 양호한 클러스터(48, 50, 44 및 46)와 등가인 클러스터(45, 47, 49 및 51)는 남쪽 및 동쪽과 통신하는 PE를 조합함으로써 토러스(40)내의 소정의 "개시점(starting point)"으로부터 얻어질 수 있다.
다른 클러스터링은 클러스터(61, 63, 65 및 67)가 토러스(40)의 타일링내의 열십자 패턴을 형성하는 도 5F에 도시되어 있다. 클러스터링은 2개의 다른 클러스터와 상호 배타적 방향으로 통신하는 클러스터를 발생시키기 위해 PE를 그룹짓는 다수의 방식인 것을 증명한다. 즉, 클러스터(65)의 PE0,0및 PE2,2는 클러스터(61)의 PE0,1및 PE2,3을 가지는 동쪽과 각각 통신한다. 부수적으로, 클러스터(65)의 PE1,1및 PE3,3은 클러스터(61)의 PE1,1및 PE3,2를 가지는 서쪽과 각각 통신한다. 보다 상세하게 후술한 바와 같이, 방금 기술한 동쪽과 통신하는 경로, 즉 PE0,0과 PE0,1사이, 및 PE2,2와 PE3,2사이 및 그 밖의 다른 내부 클러스터 경로의 것들은, 예를 들어 PE간 통신에 필요한 상호접속 배선의 수를 절반이나 감소시키기 위해 멀티플렉싱을 통해 상호 배타적 내부 클러스터 통신 경로와 조합될 수 있다. 또한, 도 5F의 클러스터링은 클러스터내에 전치 요소를 그룹화한다.
새로운 어레이의 비례축소 가능성의 한가지 특징은 4 x 8 토러스 어레이가 2개의 4 x 4 어레이(40A 및 40B)로 도시된 도 5G에 의해 증명된다. 4 x 8 토러스 어레이로부터 8개의 4 PE 클러스터를 발생시키기 위한 이러한 점에 기술된 기술들 중 하나가 이용될 수 있다. 부수적으로, 4 x 8 토러스를 2개의 4 x 4 토러스로 분할하고, 각각의 클러스터를 클러스터 내에 조합함으로써, 이것은 클러스터(44A 및 44B, 46A 및 46B이므로, 예를 들어 8개의 4PE 클러스터 구조내에 포함된 4 x 4 서브클러스터의 모든 접속성 및 전치 관계를 가지는 4개의 8PE 클러스터가 얻어진다. 이러한 클러스터 조합 방법은 일반적이고, 그 밖의 다른 척도가 가능하다.
본 발명의 양호할 뿐 만 아니라, 유일한 클러스터링 처리는 다음과 같이도 기술할 수 있다. I = 0, 1, 2, ... N-1 및 j = 0, 1, 2, ... N-1인 N x N 기본 토러스(PE1,j)를 제공하면, 양호한 남쪽 및 동쪽 통신 클러스터는 PEi,j, PE(i+2)(ModN)/(j+N-1)(ModN), PE(i+2)(ModN)/(j+N-2)(ModN), ...(i+N-1)(ModN),(j+N-(N-1)(ModN)을 그룹화함으로써 형성될 수 있다. 이러한 식은 i 및 j를 선택한 다음, 소정의 i,j 및 모든 a∈(0, 1, ..., N-1)에 대한 식 : PE(i+a)(ModN),(j+N-a)(ModN)을 이용함으로써 클러스터 그룹핑이 형성될 수 있는 N개의 PE의 N개 클러스터를 가지는 N x N 토러스롤 다시쓸 수 있다.
도 6은 남쪽 및 동쪽과 통신하는 PE1,3을 개시하고 PE를 조합하는 클러스터(44 내지 50)의 산출을 도시한 것이다. 실제로, 새로운 어레이의 등가 4 x 4 토러스의 양호한 실시예에 관한 클러스터인 클러스터(44 내지 50)는 기본 N x N 토러스(40)내의 PE가 개시점으로서 무엇을 이용하는지에 무관하게 남쪽 및 동쪽 통신 PE를 조합함으로써 얻어진다. 도 7 및 도 8은 3 x 3 및 3 x 5 토러스를 각각 이용하는 방법에 관한 예시적인 예를 도시한 것이다.
클러스터 빌딩(building) 처리를 보여주는 다른 등가 방식이 도 9에 도시되어 있다. 다음에 기술된 이러한 도면 및 이와 유사한 도면에 있어서, 순환 배선은 명확하게 하기 위해 도면에서 생략되었다. 종래의 4 x 4 토러스는 각 행의 좌측으로 쉬프트하면서 도시된 바와 같이 마름모로 먼저 형성된다. 이러한 쉬프트는 마름모의 "수직 슬라이스"로 전치 PE를 그룹화하도록 작용한다. 같은 크기의 클러스터를 발생시키기 위해, 마름모는 원형 내에 기본적으로 형성된다. 즉, 가장 좌측 및 가장 서쪽의 수직 슬라이스(80)는 가장 동쪽(PE0,3)과 행으로 인접하도록 둘서싼다. 슬라이스(80)의 동쪽으로의 수직 슬라이스(82)는 PE0,0및 PE1,3과 인접하도록 둘서싸고, 다음의 동쪽 수직 슬라이스(84)는 PE0,1, PE2,0및 PE2,3과 인접하도록 둘서싼다. 명확하게 하기 위해 모든 접속부는 도시하지 않았지만, 모든 접속부는 최초 4 x 4 토러스에서와 동일하게 남아 있다. 최종 수직 슬라이스는 도 5A에 도시된 양호한 실시예의 클러스터(44 내지 50)를 발생시키고, 동일한 클러스터는 도 5A 및 도 6에 관련된 설명에서 도시된 방식으로 발생된다. 도 10에 있어서, 도 9의 마름모/원형 처리시에 발생된 클러스터는 내부 클러스터 접속부를 예증적으로 나타내기 위해서 "벗겨진다." 예를 들어, 클러스터(44)에서 클러스터(46)로의 모든 PE간 접속부는 클러스터(46)에서 클러스터(48)까지 및 클러스터(48)에서 클러스터(50)까지 및 클러스터(50)에서 클러스터(44)까지의 것과 같이 남쪽 및 동쪽으로 접속된다. SIMD 처리시 PE간 통신의 특질과 조합시에 내부 클러스터 통신의 이러한 공통성을 PE간 접속부를 상당히 감소시킬 수 있다. 도 16 및 도 17에 관련하여 보다 상세하게 후술한 바와 같이, 상호 배타적 통신, 예를 들어 클러스터(44)에서 클러스터(46)까지의 남쪽 및 서쪽으로의 통신은 클러스터들 사이에서 가동하는 상호 접속 배선의 공통 세트로 멀티플렉싱될 수 있다. 따라서, "메니폴드 어레이"하고 이하에 칭하는 새로운 어레이의 PE간 접속 배선은 종래의 최근접 이웃 토러스 어레이에 관련된 상호 접속 배선의 수를 절반으로 상당히 감소될 수 있다.
메니폴드 어레이를 발생시키는데 이용된 클러스터 형성 처리는 대칭적이고, 수직으로 쉬프트된 토러스의 수평 슬라이스를 취함으로써 형성된 클러스터는 수평으로 쉬프트된 토러스의 수직 슬라이스를 취함으로써 형성된 클러스터와 동일하다. 도 11A 및 도 11B는 마름모/원형 기술이 수직으로 쉬프트된 토러스의 수평 슬라이스로부터 양호한 클러스터를 발생시키는데에도 이용될 수 있다는 사실을 도시한 것이다. 도 11A에 있어서, 종래의 4 x 4 토러스 어레이의 행은 마름모를 발생시키기 위해 수직으로 쉬프트되고, 도 11B에 있어서, 마름모는 원형 내에 감싸진다. 최종 원형의 수평 슬라이스는 양호한 클러스터(44 내지 50)를 제공한다. 이러한 관점에서 도시된 소정의 기술은 PE간 배선 요구 조건을 상당히 감소시키는 종래의 토러스 어레이의 것과 등가인 PE간 접속성을 제공하는 메니폴드 어레이에 대한 클러스터를 발생시키는데 이용될 수 있다.
발명의 상세한 설명 부분을 주지하면, 상기 클러스터링 처리는 일반적이고, N x N 토러스 어레이로부터 각각의 PE를 포함하는 M개의 클러스터의 메니폴드 어레이를 발생시키는데 이용될 수 있다. 예를 들어, 5 x 4 토러스 어레이와 등가인 5개의 PE의 4개의 클러스터를 발생시키는 마름모/원형 방법은 도 12에 도시되어 있다. 새로운 PE 클러스터를 형성하는 수직 슬라이스를 주지하면, 예를 들어 PE4,0, PE3,1, PE2,2, PE1,2, 및 PE0,0은 상술한 4 x 4 어레이의 전치 클러스터링 관계를 유지한다. 이와 유사하게, 도 13의 도면에 도시된 바와 같이, 4 x 5 토러스는 4 x 4 토러스로 얻어진 것으로부터 약간만 변형된 전치 관계를 각각 가지는 4개 PE의 5개 클러스터를 발생시킬 수 있다. 실제로, 전치 PE는 4 x 4 클러스터된 어레이와는 약간 다른 배열로만 함께 계속해서 클러스터된다. 예를 들어, 전치쌍(PE1,0/PE0,1및 PE2,3/PE3,2)은 양호한 4 x 4 메니폴드 어레이내의 동일한 클러스터로 그룹화된다. 그러나, 이들은 계속해서 쌍으로 나타나지만, 도 13의 4 x 5 메니폴드 어레이내의 별도 클러스터로 나타난다. 도 14의 클러스터 선택도에 도시된 바와 같이, 기수 x 기수 어레이내에서 i = j 인 진단 PE들, 즉 PEi,j에는 클러스터당 하나가 분배된다.
도 15A-도15D의 블록도는 새로운 메니폴드 어레이의 내부 클러스터 접속부를 도시한 것이다. 설명을 간단하게 하기 위해, 다음 설명에서 단방향 접속 경로는 다른 방법으로 언급하지 않는한 생략하였다. 명확하게 하기 위해 본 발명은 병렬 상호 접속 경로 또는 버스에 대해 기술하였을지라도 개별 라인에 의해 표시된다. 비트 열 통신, 다시 말하면 단일 라인을 가지는 버스는 본 발명에 의해 관찰되기도 한다. 버스 멀티플렉서 또는 버스 스위치가 이용되는데, 멀티플렉서 및/또는 스위치는 버스내의 라인의 수를 나타낸다. 부수적으로, PE의 적절한 네트워크 접속부 또는 마이크로프로세서 칩 수행에 있어서, 새로운 어레이는 본 발명의 참고 문헌으로 이용된 Dynamic Multi-Mode Parallel Processor Array Architecture란 명칭의 P. M. Kogge의 미합중국 특허 제5,475,856호에 기재된 바와 같은 MIMD, SIMD와 SISD 모드 사이에서 동적으로 스위칭할 수 있는 시스템이 이용될 수 있다.
도 15A에 있어서, 클러스터(80, 82 및 84)는 클러스터 스위치(86) 및 내부 클러스터 링크(88)를 통해 서로 접속된 3개의 PE 클러스터이다. 메니폴드 어레이 PE가 특정한 연구를 창출하기 위해 서로 어떻게 접속되는지를 이해하기 위해, PE로부터의 접속도가 단일 PE의 것에서 PE의 것으로 PE의 다수의 클로스터로서 변경되어야 한다. SIMD 양방향 통신 환경에서 연산하는 메니폴드 어레이에 있어서, 소정의 PE는 PE와 종래의 토러스에서 PE의 소정의 직접 부착된 이웃 사이의 접속부의 수와 무관하게 단 하나의 송신 포트 및 하나의 수신 포트를 필요로 한다. 일반적으로, 통신 PE들 사이에서 충돌하지 않게 하는 어레이 통신 패턴에 있어서, 단 하나의 송신 포트 및 하나의 수신 포트는 특정한 연구가 PE를 필요로 하는 이웃 접속부의 수와 무관하게 PE마다 필요로 한다.
4개 PE의 4개 클러스터(44 내지 50)의 각각은 도 15B의 어레이내에 조합된다. 클러스터 스위치(86) 및 통신 경로(88)는 보다 상세하게 후술한 도 16, 도 17 및 도 18에서 설명한 방식으로 클러스터를 접속시킨다. 이와 유사하게, 5개 PE의 5개 클러스터(90 내지 98)는 도 15C의 어레이내에 각각 조합된다. 특히, 클러스터(90-98)는 집적 회로를 용이하게 배치하고, 최장 내부 클러스터 접속부의 길이를 감소시키기에 적절하게 배치된다. 도 15D는 6개의 PE를 각각 가지고 있는 6개의 클러스터(99, 100, 101, 102, 104 및 106)의 메니폴드 어레이를 도시한 것이다. 새로운 메니폴드 어레이내의 통신 경로(86)가 클러스터들 사이에 있기 때문에, 종래의 토러스 어레이의 순환 접속에 따른 문제점은 제거된다. 즉, 어레이를 얼마나 크게할지에 관한 문제가 없어서, 접속 경로(88)에 의해 설명한 기본 내부 클러스터 공간보다 상호 접속 경로가 클 필요가 없다는 것이다. 이것은 전체 어레이를 걸쳐 놓아야 하는 종래의 토러스 어레이의 순환 접속부와는 대조적이다.
도 16의 블록도는 4개의 클러스터, 16개의 PE 메니폴드 어레이의 양호한 실시예를 보다 상세하게 도시한 것이다. 클러스터(44 내지 50)는 집적 회로내에 직사각형 또는 정사각형으로 배치되어야 하는 것처럼 배열되어야 한다. 접속 경로(88) 및 클러스터 스위치는 도 16에 보다 상세하게 도시되어 있다. 남쪽 및 동쪽으로의 통신은 PE들 사이의 접속 라인의 수를 감소시키기 위해 클러스터 스위치(86)를 통해 멀티플렉싱된다. 예를 들어, PE1,2와 PE2,2사이의 남쪽 접속은 PE2,1에서 PE2,2로의 동쪽 접속부인 것처럼 접속 경로(110)를 거쳐 달성된다. 상술한 바와 같이, 접속 경로(110)와 같은 각각의 접속 경로는 비트 열 경로인 수 있으므로, 단일 금속 라인에 의한 집적 회로 수행에 효과적일 수 있다. 부수적으로, 접속 경로는 각각의 제어 라인이 어써트(assert)될 때에만 인에이블된다. 이러한 제어 라인은 도 3a에 도시된 각각의 PE3,0의 명령어 디코더/제어기(38)에 의해 발생될 수 있다. 선택적으로, 이러한 제어 라인은 각각의 클러스터 스위치내에 포함되는 독립 명령어 디코더/제어기에 의해 발생될 수 있다. 스위치마다 다중 PE가 있기 때문에, 각각의 PE에 의해 발생된 다중 인에이블 신호는 에러가 전혀 발생하지 않고 모든 PE가 동시에 연산하도록 하기 위해 동일한 값을 갖도록 비교된다. 즉, 각각의 주지한 방향 경로, 즉 북쪽에 대해 N, 남쪽에 대해 S, 동쪽에 대해 E, 및 서쪽에 대해 W에 관련된 제어 라인이 있다. 이러한 라인상의 신호는 멀티플렉서를 통해 접속된 PE에 관련된 데이터 경로상의 데이터를 멀티플렉서로 통과시킬 수 있다. 제어 신호가 어써트되지 않을 때, 관련된 데이터 경로는 인에이블되지 않고, 데이터는 멀티플렉서를 통해 이러한 경로를 따라 전송되지 않는다.
도 17의 블록도는 4개 클러스터(55 내지 50)를 연결하는 상호 접속 경로(88) 및 스위치 클러스터(86)를 보다 상세하게 도시한 것이다. 도면에 있어서, 서쪽 및 북쪽 접속부는 도 16에 도시된 동쪽 및 남쪽 접속부에 추가된다. 이러한 관점에서 각각의 처리 요소가 2개의 입력 및 2개의 출력 포트를 갖는 것으로 나타날지라도, 양호한 실시예에서 클러스터 스위치내에서 멀티플렉싱하는 다른층은 각각의 PE에 대한 통신 포트의 수로 입력에 대해 1 및 출력에 대해 1로 떨어지게 한다. PE 마다 4개의 이웃 송신 접속부를 가지고, 단방향 통신, 즉 PE마다 인에이블된 단 하나의 송신 방향을 가지는 표준 토러스에 있어서, 각각의 PE에 필요한 4개의 멀티플렉서 또는 게이트형(gated) 회로 송신 경로가 있다. 게이트형 회로는 제어 신호, 및 그 밖의 다른 이러한 인터페이스 인에이블링/디스에이블링 회로를 인에이블 및 디스에이블 시키는 멀티플렉서, AND 게이트, 삼상태(tristate) 드라이버/수신기를 적절하게 포함할 수 있다. 이것은 PE의 일부분으로서 정해진 상호 접속 연구로 인해서이다. 순수한 결과(net result)는 표준 토러스내에는 4N2멀티플렉싱 경로가 있다는 것이다. 등가 접속성 및 무제한적인 통신이 이루어지는 메니폴드 어레이에 있어서 2N2멀티플렉싱 또는 게이트형 회로 송신 경로가 필요하다. 2N2송신 경로의 이러한 감소는 멀티플렉서 및 2N2송신 경로에 의해 소모된 영역이 4N2송신 경로에 의해 소모된 것보다 상당히 작으므로 집적 회로내의 리얼 이스테이트 영역을 상당히 절약하는 것으로 번역된다.
복잡한 클러스터 스위치(86)가 도 18의 블록도내에 보다 상세하게 도시되어 있다. 북쪽, 남쪽, 동쪽 및 서쪽 출력은 상술한 바와 같다. 멀티플렉싱(22)의 다른 층은 클러스터 스위치(86)에 추가된다. 이러한 멀티플렉싱층은 A로 명명된 동쪽/남쪽 수신부와 B로 명명된 북쪽/서쪽 수신부를 선택하므로, 하나의 수신 포트 및 하나의 전송 포트에 대한 각각의 PE의 통신 포트 요구 조건을 감소시킨다. 부수적으로 전치 PE들, 즉 PE1,3과 PE3,1사이의 멀티플렉싱 접속부는 T로 명명된 내부 클러스터 전치 접속부로 통해 실행된다. 특정한 멀티플렉서에 대한 T 멀티플렉서 인에이블 신호가 어써트될 때, 전치 PE로부터의 통신은 멀티플렉서에 관련된 PE에서 수신된다. 양호한 실시예에 있어서, 모든 클러스터는 PE와 이것의 전치 PE 사이에 있는 것과 같은 전치 경로를 포함한다. 도면들에는 전체 접속 구조를 도시하였지만, 다층 집접 회로 수행이 설계 변경으로 루틴에 관한 문제를 전형적으로 형성할 수 있는 모든 루틴 어레이 상호 접속부를 달성할 수 있다. 소정의 집적 회로 배치에서와 같이, IC 설계자는 본 발명에 따른 어레이의 실제 IC 수행을 배치하는 처리시에 여러 가지 트레이드오프를 분석할 수 있다. 예를 들어, 클러스터 스위치는 다수의 인터페이스의 배선 길이를 감소시키기 위해 PE 클러스터내에 분배될 수 있다.
토러스 어레이의 통신 용량 및 메니폴드 어레이상의 영상 처리 알고리즘을 실행하기 위한 능력에 대한 등가를 증명하기 위해, 도 19A에 3 x 3 윈도우를 이용하여 간단한 3D 콘벌루션이 후술되어 있다. 토러스 기계상의 콘벌루션용 Lee 및 Aggarwal 알고리즘이 이용될 수 있다. S. Y. Lee and J. K. Aggarwal 저, Parallel 2D Convolution on a Mesh Connected Array Processor, IEEE Transactions on Patter Analysis and Machine Intelligence, 제PAMI-9권, 제4호, 590-594 페이지(1987. 7)를 참조하시오. 도 3A의 기본 PE(30)의 내부 구조는 이러한 PE들 중 16개를 가지는 4 x 4 메니폴드 어레이상에서 수행되는 콘벌루션을 증명하는데 이용된다. 이러한 예의 목적으로, 명령어 디코더/제어기는 클러스터 스위치 멀티플렉서 인에이블 신호도 제공한다. 스위치마다 PE가 멀티플렉싱되기 때문에, 다중 인에이블 신호는 에러가 전혀 발생되지 않고 모든 PE가 동시에 연산하도록 동일하게 비교된다.
콘벌루션에 대한 S. Y. Lee 및 J. K. Aggarwal 알고리즘에 기초하여, 메니폴드 어레이는 영상, 예를 들어 N x N 영상에 대해 N x N 어레이의 양호한 크기일 수 있다. 수행의 허여로 인해, 어레이는 큰 N에 대해 N x N보다 작다고 가정하여야 한다. 어레이 크기는 C x C라고 가정하면, 영상 처리는 다중 C x C 블록으로 분할되어 콘벌루션 윈도우 크기에 의해 요구된 영상 블록 중첩(overlap)을 고려해야 한다. 여러 가지 기술이 N x N 영상의 에지 효과를 다루는데 이용될 수 있다. 예를 들어, 픽셀 모사(replication)는 (N+1)*(N+1)어레이를 효과적으로 발생시키는데 이용된다. 요구된 처리 공정의 간단화로 인해, 매우 작은 PE가 응용 분야에서 특정한 수행으로 정해질 수 있다. 따라서, 다수의 PE는 칩상에 메니폴드 어레이 배향으로 배치되므로, 큰 영상 크기에 대한 콘벌루션 계산의 효과를 개선할 수 있다.
종래의 알고리즘은 북쪽/동쪽/남쪽/서쪽의 최근접 이웃 통신 연산용 토러스 어레이에 대한 메니폴드 어레이 배향의 기능적인 등가를 증명하기 위한 간단한 수단을 제공한다. 따라서, 알고리즘의 통신 특징에 따른 예시적인 포커스 및 설명을 간단히 하기 위해, 매우 작은 4 x 4 영상 크기는 4 x 4 메니폴드 어레이에 이용된다. 최대 N x N 영상은 각각의 이전 4 x 4 블록이 종료된 후에 어레이내에 새로운 4 x 4 영상 세그먼트를 적재함으로써 이러한 방식으로 처리될 수 있다. 4 x 4 어레이에 있어서, 순환이 전혀 이용되지 않고, 에지 PE에 있어서, 물리적으로 수행되지 않는 가상 PE로부터 0이 수신된다. 픽셀의 하나의 4 x 4 블록에 대한 처리는 이러한 연산 예에서 망락될 수 있다.
콘벌루션 예를 개시하기 위해, PE는 도 3A의 제어기(29)와 같은 SIMD 제어기에 의해 이미 개시되고, 픽셀의 초기 4 x 4 블록은 각각의 PE 내의 데이터 버스를 통해 레지스터(R1)에 적재되는데, 다시 말하면, PE 당 하나의 픽셀이 적재된다고 가정한다. 도 19C는 어레이 내에 적재될 4 x 4 블록을 가지는 영상 부분을 도시한 것이다. 도 19D는 4 x 4 토러스 논리 위치에 적재된 이러한 블록을 도시한 것이다. 부수적으로, 각 PE내의 누산합 레지스터(R0)는 0에서 개시한다고 가정한다. 이러한 알고리즘의 논리에 맞지 않을지라도, R2는 0에서 개시하는 것으로도 도시되어 있다. 콘벌루션 윈도우 요소는 알고리즘의 각 단계에서 적시에 1을 방송한다. 윈도우 요소는 레지스터(R2)내에서 수신된다. 윈도우 요소를 방송하기 전의 기계의 초기 상태가 도 10A에 도시되어 있다. 모든 PE에 대한 3 x 3 이웃에서의 가중(weighted) 픽셀치의 합을 계산하기 위한 단계는 다음과 같다.
알고리즘은 모든 PE로의 제 1 윈도우 요소(W00)의 송신(방송)을 개시한다. 이것이 각각의 PE에서 수신될 때, PE는 제 1 R0=R0+R2* R1 또는 R0=R0+W*P를 계산한다. 이 때, 계산 결과는 도 19B에서 변경된 콘벌루션 경로에 따라서 최근접 이웃 PE와 통신한다. 설명을 간단하게 하기 위해, 기술된 각각의 연산 단계는 제어기로부터 급송된 명령어에 의해 각각 제어된 3개의 서브 단계; 방송 윈도우 요소 단계, 계산 단계, 및 통신 단계로 분할될 수 있다고 가정한다. 주요한 단계 2를 개시하는 단계, 최종 단계의 통신과 윈도우 요소 방송 단계를 중첩하는 단계와 같은 이렇게 간단화된 방식에 따른 개량 상태가 개발되었다는 것을 주지해야 한다. 이러한 관점은 설명을 간단화하는데 필수적인 것은 아니고, 당해 분야에 숙련된 기술자들이 알고 있다. 수퍼스크립트(superscript)는 합 단계의 값을 연산 절차로서 나타내는데 이용된다. 계산된 값의 통신에 종용하는데 도움을 주므로써, 라벨 상의 수퍼스크립트는 값이 발생되는 소오스 PE를 나타낸다. 픽셀{i, j}에 대한 콘벌루션 경로가 도 19B에 도시되어 있다. 도 20 내지 도 24는 각각의 계산 단계후의 메인폴드 어레이의 상태를 나타낸다.
도 20B에 있어서, W00은 수신된 R01값이 PE의 레지스터(R0)내에 저장되는 PE로 방송되고, 각각 PE는 R01=0+W00*R1로 계산하고, 남쪽 PE로의 R01과 통신한다.
도 21A에서, W10은 수신된 R02값이 PE의 레지스터(R0)내에 저장되는 PE로 방송되고, 각각의 PE가 R02= R02+W10*R1로 계산하고, 남쪽 PE로의 R02와 통신한다.
도 21B에서, W20은 수신된 R03값이 PE의 레지스터(R0)내에 저장되는 PE로 방송되고, 각각의 PE는 R03=R02+W20*R1로 계산하고, 동쪽 PE의 R03과 통신한다.
도 22A에서, W21은 수신된 R04값이 PE의 레지스터(R0)내에 저장되는 PE로 방송되고, 각각의 PE가 R04=R03+W21*R1로 계산하고, 동쪽 PE로의 R04와 통신한다.
도 22B에서, W22는 수신된 R05값이 PE의 레지스터(R0)내에 저장되는 PE로 방송되고, 각각의 PE가 R05=R04+W22*R1로 계산하고, 북쪽 PE로의 R05와 통신한다.
도 23A에서, W12는 수신된 R06값이 PE의 레지스터(R0)내에 저장되는 PE로 방송되고, 각각의 PE가 R06=R05+W12*R1로 계산하고, 북쪽 PE로의 R06과 통신한다.
도 23B에서, W02는 수신된 R07값이 PE의 레지스터(R0)내에 저장되는 PE로 방송되고, 각각의 PE가 R07=R06+W02*R1로 계산하고, 서쪽 PE로의 R07와 통신한다.
도 24A에서, W01은 수신된 R08값이 PE의 레지스터(R0)내에 저장되는 PE로 방송되고, 각각의 PE가 R08=R07+W01*R1로 계산하고, 동쪽 PE로의 R08와 통신한다.
도 24A에서, W11은 수신된 PE로 방송되고, 각각의 PE가 R09=R08+W11*R1로 계산하여 종료된다.
상기 9개 단계의 종료시에 각각의 PEi,j가 포함된다(도 19B 참조).
C1,1= W00Pi-1,j-1+ W10Pi,j-1+ W20Pi-1,j-1+ W21Pi+1,j+ W22Pi+1,j+1+ W12Pi,j+1+ W02Pi+1,j+2+ W01Pi+1,j+ W11Pi,j.
예를 들어, i=5 및 j=6에 대해, C5,5= W00P4,5 + W10P5,5 + W20P6,5 + W21P6,6 + W22P6,7 + W12P5,6 + W02P4,7 + W01P4,6j+ W11P5,6j.
이 예의 완료시, 연산 가정을 제공하면, 4개의 유효 콘벌루션 값이, 즉 PE{(1,1), (1,2), (2,1), (2,2)}내에서 일회 계산되었다. 이것은 상술한 바와 같은 에지 효과로 인해서이다. 이러한 알고리즘에 필요한 PE의 간단한 특성으로 인해, 다수의 PE가 칩 상에 이용될 수 있으므로, 큰 영상 크기에 대한 콘벌루션 계산의 효가를 증가시킬 수 있다.
상술한 예는 메니폴드 어레이가 표준 토러스의 배선 비용의 절반만을 필요로 하면서 표준 토러스의 4개의 북쭉, 동쪽, 남쪽, 및 서쪽 통신 방향으로서의 통신 용량과 등가인 것을 증명한다. 전치 PE들 사이에서 통신하기 위한 메니폴드 어레이의 용량을 제공하면, 정규 접속 패턴, 최소 배선 길이, 및 최소 비용으로 실시되는데, 메니폴드 어레이는 표준 토러스 이상의 부수적인 용량을 제공한다. 메니폴드 어레이 배향이 전치 및 이웃 통신에 따른 통신 용량을 계속해서 제공하면서 PE의 동일한 크기 클러스터로 행해지는 것처럼 보다 정규적이기 때문에 이것은 종래의 표준 및 진단 폴드 토러스보다 우수한 설계를 나타낸다.
본 발명은 양호한 실시예에 관련하여 도시하고 설명하였지만, 당해 분야에 숙련된 기술자들은 본 발명을 여러 가지 양상으로 변경, 생략 및 추가하는 것은 본 발명의 청구 범위 및 의의 내에서 만이 가능하다는 것을 이해하고 있을 것이다.

Claims (43)

  1. 데이터 및 커맨드들을 송신 및 수신하기 위한 통신 포트를 각각 가지고 있는 다수의 처리 요소들(PE)용의 상호 접속 시스템에 있어서,
    PE간(inter-PE) 접속 경로들; 및
    전형적인 토러스-접속된 PE 어레이들의 접속성과 등가의 PE간 접속성을 제공하기 위해 요구된 통신 경로들의 수를 실질적으로 감소시키도록 상호 배타적 PE간 접속 경로들을 조합하기 위한, 상기 PE들에 접속된 클러스터 스위치를 포함하는 상호 접속 시스템.
  2. 제 1 항에 있어서, 상기 클러스터 스위치가 전치 PE들간에 직접 통신을 제공하기 위한 접속부들을 더 포함하는 상호 접속 시스템.
  3. 제 1 항에 있어서, 데이터 및 커맨드들이
    a) 데이터를 통신 포트를 통해 동쪽 PE로 송신하면서 데이터를 서쪽 PE로부터 통신 포트를 통해 수신하기 위한 송신 동쪽/수신 서쪽 모드;
    b) 데이터를 통신 포트를 통해 북쪽 PE로 송신하면서 데이터를 남쪽 PE로부터 통신 포트를 통해 수신하기 위한 송신 북쪽/수신 남쪽 모드;
    c) 데이터를 통신 포트를 통해 남쪽 PE로 송신하면서 데이터를 북쪽 PE로부터 통신 포트를 통해 수신하기 위한 송신 남쪽/수신 북쪽 모드; 및
    d) 데이터를 통신 포트를 통해 서쪽 PE로 송신하면서 데이터를 동쪽 PE로부터 통신 포트를 통해 수신하기 위한 송신 서쪽/수신 동쪽 모드인
    4개의 선택가능 모드들 중 하나의 모드로 상기 통신 포트들에서 송신 및 수신될 수 있는 상호 접속 시스템.
  4. 제 3 항에 있어서, 데이터 및 커맨드들이 전치 PE들간에서 송신 및 수신하기 위한 5번째의 선택가능한, 전치 송신/수신 모드로 송신 및 수신될 수 있는 상호 접속 시스템.
  5. 제 4 항에 있어서, PE들에 접속되어 각각의 PE에서 레지스터들내에 적재하기 위해 데이터를 각각의 PE의 데이터 포트에 전송하고 제어 정보를 각각의 PE의 제어 포트에 동시 전송하는, 제어기 및 메모리 시스템을 더 포함하는 상호 접속 시스템.
  6. 제 5 항에 있어서, 상기 PE간 접속 경로들은 경로 인에블링 신호들에 의해 선택적으로 스위칭되는 상호 접속 시스템.
  7. 제 5 항에 있어서, 상기 경로 인에이블링 신호들은 상기 제어기로부터의 제어 정보에 기초하여 발생되는 상호 접속 시스템.
  8. 제 4 항에 있어서, 각각의 통신 포트는 B-비트 폭 송신 및 수신 경로들을 포함하고, 상기 B가 1보다 크거나 같은 정수인 상호 접속 시스템.
  9. 제 1 항에 있어서, 각각의 PE는 제어 포트를 통해 수신되고 각각의 PE 상에 상주하는 제어 논리로 디코드된 통신 명령어들에 기초하여, 또다른 통신 포트를 통해 데이터 또는 커맨드들을 수신하면서 통신 포트를 통해 커맨드들 또는 데이터를 선택적으로 전송하도록 접속되는 상호 접속 시스템.
  10. 제 9 항에 있어서, 상기 통신 명령어가 상기 제어 포트를 통해 제어기로부터의 제어 논리에 의해 수신되는 상호 접속 시스템.
  11. 제 9 항에 있어서, 상기 클러스터 스위치는 연산을 지원하며, 여기서, PE들은 각각 커맨드들 또는 데이터를 수신하면서 커맨드들 또는 데이터를 동시에 전송하는 상호 접속 시스템.
  12. 제 11 항에 있어서, 상기 동시의 연산은 PE들이 각각 데이터 또는 명령어들을 수신하면서 커맨드들 또는 데이터를 동시에 전송하도록 선택적으로 스위칭되는 상호 접속 시스템.
  13. 어레이 프로세서에 있어서,
    단일의 PE간 통신 포트를 각각 가지고 있는, 다수의 처리 요소들(PE); 및
    전형적인 토러스 접속된 어레이의 접속성과 등가인 PE간 접속성을 제공하도록 접속된 PE간 통신 경로들을 포함하는 어레이 프로세서.
  14. 제 13 항에 있어서, 직접적인 전치 PE 통신을 제공하도록 접속된 PE간 통신 경로들을 더 포함하는 어레이 프로세서.
  15. 어레이 프로세서에 있어서,
    클러스터들내에 배열된 다수의 처리 요소들(PE);
    각 클러스터의 PE들이 최소한 2개의 다른 클러스터들의 각각의 PE들과 상호 배타적 방향들로 통신하도록 접속된 PE간 통신 경로들; 및
    상기 상호 배타적 방향들로 PE간 통신들을 멀티플렉싱하도록 접속된 클러스터 스위치들을 포함하는 어레이 프로세서.
  16. 어레이 프로세서에 있어서,
    각각의 처리 요소가 총 B개의 배선들을 통해 데이터를 송신 및 수신하는 통신 포트를 가지는, M개의 처리 요소들의 N개의 클러스터들;
    상기 클러스터들의 쌍들간에 접속된 (M)(B)-배선 폭보다 작거나 같은 통신 경로들로서, 상기 쌍내의 각각의 클러스터 멤버는 그 쌍의 다른 클러스터내의 처리 요소들에 최근접 토러스 이웃(neighbor)들인 처리 요소들을 포함하고, 각각의 경로는 2개의 상호 배타적 토러스 방향들, 즉, 남쪽 및 동쪽, 또는 남쪽 및 서쪽, 또는 북쪽 및 동쪽, 또는 북쪽 및 서쪽으로, 상기 클러스터 쌍들간의 통신을 허용하는, 상기 통신 경로들; 및
    2(M)(B)-배선 폭 통신을 상기 클러스터 쌍들 사이에서 (M)(B)-배선 폭 경로들보다 작거나 같게 조합하도록 접속된 멀티플렉서들을 포함하는 어레이 프로세서.
  17. 제 16 항에 있어서, 각 클러스터의 처리 요소들이 하나의 클러스터와 북쪽 및 서쪽 토러스 방향들로 통신하고, 또다른 클러스터와 남쪽 및 동쪽 토러스 방향들로 통신하는 어레이 프로세서.
  18. 제 16 항에 있어서, 각 클러스터의 처리 요소들이 하나의 클러스터와 북쪽 및 동쪽 토러스 방향들로 통신하고, 또다른 클러스터와 남쪽 및 서쪽 토러스 방향들로 통신하는 어레이 프로세서.
  19. 제 16 항에 있어서, 최소한 하나의 클러스터가 N x N 토러스 전치쌍을 포함하는 어레이 프로세서.
  20. 제 16 항에 있어서, 클러스터 스위치가 상기 멀티플렉서를 포함하고, 상기 클러스터 스위치가 2개의 상호 배타적 토러스 방향들로부터 클러스터내의 처리 요소들에 수신된 통신들을 멀티플렉싱하도록 접속되는 어레이 프로세서.
  21. 제 20 항에 있어서, 상기 클러스터 스위치는 전송을 위한 클러스터내의 처리 요소들로부터 또다른 클러스터로의 통신들을 멀티플렉싱하도록 접속되는 어레이 프로세서.
  22. 제 21 항에 있어서, 상기 클러스터 스위치는 클러스터내의 전치 처리 요소들간의 통신들을 멀티플렉싱하도록 접속되는 어레이 프로세서.
  23. 제 16 항에 있어서, N이 M보다 크거나 같은 어레이 프로세서.
  24. 제 16 항에 있어서, N이 M보다 작은 어레이 프로세서.
  25. 어레이 프로세서에 있어서,
    M개 처리 요소들의 N개의 클러스터들로서, 각각의 처리 요소는 상기 처리 요소가 총 B개의 배선을 통해 데이터를 송신 및 수신하는 통신 포트를 가지고, 클러스터내의 각각의 처리 요소는 클러스터 외부의 처리 요소들보다는 클러스터 내부의 다른 처리 요소들에 물리적으로 더욱 근접하여 형성되는, M개 처리 요소들의 N개의 클러스터들;
    상기 클러스터들의 쌍들간에 접속된 (M)(B)-배선 폭보다 작거나 같은 통신 경로들로서, 상기 쌍내의 각각의 클러스터 멤버는 그 쌍의 다른 클러스터내의 처리 요소들에 최근접 토러스 이웃들인 처리 요소들을 포함하고, 각각의 경로는 2개의 상호 배타적 토러스 방향들, 즉, 남쪽 및 동쪽, 또는 남쪽 및 서쪽, 또는 북쪽 및 동쪽, 또는 북쪽 및 서쪽으로, 상기 클러스터 쌍들간의 통신을 허용하는, 상기 통신 경로들; 및
    2(M)(B)-배선 폭 통신들을 상기 클러스터 쌍들 사이에서 (M)(B)-배선 폭 경로들보다 작거나 같게 조합하도록 접속된 멀티플렉서들을 포함하는 어레이 프로세서.
  26. 제 25 항에 있어서, 각 클러스터의 처리 요소들이 하나의 클러스터와 북쪽 및 서쪽 토러스 방향들로 통신하고, 또다른 클러스터와 남쪽 및 동쪽 토러스 방향들로 통신하는 어레이 프로세서.
  27. 제 25 항에 있어서, 각 클러스터의 처리 요소들이 하나의 클러스터와 북쪽 및 동쪽 토러스 방향들로 통신하고, 또다른 클러스터와 남쪽 및 서쪽 토러스 방향들로 통신하는 어레이 프로세서.
  28. 제 25 항에 있어서, 최소한 하나의 클러스터가 N x N 토러스 전치쌍을 포함하는 어레이 프로세서.
  29. 제 25 항에 있어서, 클러스터 스위치가 상기 멀티플렉서를 포함하고, 상기 클러스터 스위치가 2개의 상호 배타적 토러스 방향들로부터 클러스터내의 처리 요소들에 수신된 통신들을 멀티플렉싱하도록 접속되는 어레이 프로세서.
  30. 제 29 항에 있어서, 상기 클러스터 스위치는 전송을 위한 클러스터내의 처리 요소들로부터 또다른 클러스터로의 통신들을 멀티플렉싱하도록 접속되는 어레이 프로세서.
  31. 제 30 항에 있어서, 상기 클러스터 스위치는 클러스터내의 전치 처리 요소들간의 통신들을 멀티플렉싱하도록 접속되는 어레이 프로세서.
  32. 제 25 항에 있어서, N이 M보다 작거나 같은 어레이 프로세서.
  33. 제 25 항에 있어서, N이 M보다 큰 어레이 프로세서.
  34. 제 25 항에 있어서, 처리 요소들사이의 통신들은 비트 열이고, 각각의 처리 요소 클러스터는 상기 통신 경로들을 통해 2개의 다른 클러스터들과 통신하는 어레이 프로세서.
  35. 제 25 항에 있어서, 처리 요소들사이의 통신 경로들은 데이터 버스를 포함하는 어레이 프로세서.
  36. 제 25 항에 있어서, 상기 통신 경로들은 양방향 경로인 어레이 프로세서.
  37. 제 25 항에 있어서, 상기 통신 경로들은 단방향 신호 배선을 포함하는 어레이 프로세서.
  38. 제 25 항에 있어서, P 및 Q는 각각, 상기 어레이와 동일한 수의 PE들을 갖는 토러스 접속된 어레이의 행 및 열의 수이고, P 및 Q는 각각 N 및 M과 동일한 어레이 프로세서.
  39. 제 25 항에 있어서, P 및 Q는 각각, 동일한 수의 PE들을 갖는 토러스 접속된 어레이의 행 및 열의 수이고, P 및 Q는 각각 M 및 N과 동일한 어레이 프로세서.
  40. 어레이 프로세서에 있어서,
    처리 요소들(PE) PEi,j로서, i 및 j는 종래의 토러스 접속된 어레이 내의 각각의 행 및 열 PE 위치들을 언급하고, i=0, 1, 2,...N-1 및 j=0, 1, 2,...N-1이며, 상기 PE들은 임의의 i, j 및 모든 a ∈ {0, 1,...,N-1}에 대해, 클러스터들 PE(i+a)(ModN),(j+N-a)(ModN)내에 배열되는, 상기 처리 요소들(PE) PEi,j; 및
    상기 클러스터들 사이의 PE간 통신 경로들을 멀티플렉싱하도록 접속되어, 토러스 접속된 어레이의 접속성과 등가인 PE간 접속성을 제공하는 클러스터 스위치들을 포함하는 어레이 프로세서.
  41. 제 40 항에 있어서, 상기 클러스터 스위치들이 클러스터내의 전치 PE 쌍에서의 PE들간의 직접적인 통신을 제공하도록 또한 접속되는 어레이 프로세서.
  42. 제 40 항에 있어서, 상기 클러스터들은 척도가능한 어레이 프로세서.
  43. 어레이 프로세서를 형성하는 방법에 있어서,
    각각의 클러스터가 최소한 하나의 다른 클러스터의 처리 요소들과 상호 배타적 토러스 방향으로만 통신하는 처리 요소들을 포함하도록, M개의 처리 요소들의 N개의 클러스터내에 처리 요소들을 배열하는 단계; 및
    상기 상호 배타적 토러스 방향 통신들을 멀티플렉싱하는 단계를 포함하는 방법.
KR1019997012547A 1997-06-30 1998-06-24 메니폴드 어레이 프로세서 KR20010014381A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/885,310 US6023753A (en) 1997-06-30 1997-06-30 Manifold array processor
US08/885,310 1997-06-30

Publications (1)

Publication Number Publication Date
KR20010014381A true KR20010014381A (ko) 2001-02-26

Family

ID=25386618

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019997012547A KR20010014381A (ko) 1997-06-30 1998-06-24 메니폴드 어레이 프로세서

Country Status (10)

Country Link
US (7) US6023753A (ko)
EP (2) EP1742154B1 (ko)
JP (1) JP4118963B2 (ko)
KR (1) KR20010014381A (ko)
CN (1) CN1158616C (ko)
AT (2) ATE484028T1 (ko)
CA (1) CA2295109A1 (ko)
DE (2) DE69837335T2 (ko)
IL (1) IL133691A0 (ko)
WO (1) WO1999000743A1 (ko)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6023753A (en) * 1997-06-30 2000-02-08 Billion Of Operations Per Second, Inc. Manifold array processor
US6167502A (en) * 1997-10-10 2000-12-26 Billions Of Operations Per Second, Inc. Method and apparatus for manifold array processing
US6826522B1 (en) * 1999-06-21 2004-11-30 Pts Corporation Methods and apparatus for improved efficiency in pipeline simulation and emulation
DE10001874A1 (de) * 2000-01-18 2001-07-19 Infineon Technologies Ag Multi-Master-Bus-System
US6842811B2 (en) * 2000-02-24 2005-01-11 Pts Corporation Methods and apparatus for scalable array processor interrupt detection and response
US7085285B2 (en) * 2000-03-01 2006-08-01 Realtek Semiconductor Corp. xDSL communications systems using shared/multi-function task blocks
AU2001245520A1 (en) * 2000-03-08 2001-09-17 Sun Microsystems, Inc. Vliw computer processing architecture having a scalable number of register files
RU2158319C1 (ru) * 2000-04-25 2000-10-27 Институт металлургии и материаловедения им. А.А. Байкова РАН Высокопрочная коррозионно- и износостойкая аустенитная сталь
US6826148B1 (en) 2000-07-25 2004-11-30 Sun Microsystems, Inc. System and method for implementing a routing scheme in a computer network using intention packets when fault conditions are detected
US6925056B1 (en) 2000-07-25 2005-08-02 Sun Microsystems, Inc. System and method for implementing a routing scheme using intention packets in a computer network
US6741561B1 (en) 2000-07-25 2004-05-25 Sun Microsystems, Inc. Routing mechanism using intention packets in a hierarchy or networks
SE522520C2 (sv) * 2000-11-02 2004-02-10 Ericsson Telefon Ab L M Signalbearbetningssystem
US6718428B2 (en) 2000-12-18 2004-04-06 Sun Microsystems, Inc. Storage array interconnection fabric using a torus topology
US7401161B2 (en) 2000-12-18 2008-07-15 Sun Microsystems, Inc. High performance storage array interconnection fabric using multiple independent paths
GB2370381B (en) * 2000-12-19 2003-12-24 Picochip Designs Ltd Processor architecture
US7072976B2 (en) * 2001-01-04 2006-07-04 Sun Microsystems, Inc. Scalable routing scheme for a multi-path interconnection fabric
EP1378862B1 (en) 2001-03-13 2010-10-20 Ecchandes Inc. Visual device, interlocking counter, and image sensor
US7007189B2 (en) * 2001-05-07 2006-02-28 Sun Microsystems, Inc. Routing scheme using preferred paths in a multi-path interconnection fabric in a storage network
US6909695B2 (en) * 2001-05-07 2005-06-21 Sun Microsystems, Inc. Fault-tolerant, self-healing routing scheme for a multi-path interconnection fabric in a storage network
US6883108B2 (en) * 2001-05-07 2005-04-19 Sun Microsystems, Inc. Fault-tolerant routing scheme for a multi-path interconnection fabric in a storage network
EP1402731B1 (en) * 2001-05-17 2005-07-27 Optibase Apparatus and method for multiple rich media formats video broadcasting
KR100401946B1 (ko) * 2001-08-10 2003-10-17 박종원 주소계산과 자료이동방법 및 이를 이용한 충돌회피 기억 장치
US7000033B2 (en) * 2001-09-28 2006-02-14 Sun Microsystems, Inc. Mapping of nodes in an interconnection fabric
US7027413B2 (en) * 2001-09-28 2006-04-11 Sun Microsystems, Inc. Discovery of nodes in an interconnection fabric
WO2003038645A2 (en) * 2001-10-31 2003-05-08 University Of Texas A scalable processing architecture
EP1367778A1 (en) * 2002-05-31 2003-12-03 Fujitsu Siemens Computers, LLC Networked computer system and method using dual bi-directional communication rings
JP3987782B2 (ja) * 2002-10-11 2007-10-10 Necエレクトロニクス株式会社 アレイ型プロセッサ
US20060001669A1 (en) * 2002-12-02 2006-01-05 Sehat Sutardja Self-reparable semiconductor and method thereof
US7673118B2 (en) 2003-02-12 2010-03-02 Swarztrauber Paul N System and method for vector-parallel multiprocessor communication
US7324564B2 (en) * 2003-02-20 2008-01-29 Sun Microsystems, Inc. Transmitting odd-sized packets over a double data rate link
US6950905B2 (en) * 2003-02-20 2005-09-27 Sun Microsystems, Inc. Write posting memory interface with block-based read-ahead mechanism
US7873811B1 (en) * 2003-03-10 2011-01-18 The United States Of America As Represented By The United States Department Of Energy Polymorphous computing fabric
US7581080B2 (en) * 2003-04-23 2009-08-25 Micron Technology, Inc. Method for manipulating data in a group of processing elements according to locally maintained counts
US7596678B2 (en) * 2003-04-23 2009-09-29 Micron Technology, Inc. Method of shifting data along diagonals in a group of processing elements to transpose the data
US7676648B2 (en) * 2003-04-23 2010-03-09 Micron Technology, Inc. Method for manipulating data in a group of processing elements to perform a reflection of the data
US7913062B2 (en) 2003-04-23 2011-03-22 Micron Technology, Inc. Method of rotating data in a plurality of processing elements
US7003594B2 (en) * 2003-05-12 2006-02-21 Sun Microsystems, Inc. Streaming protocol for storage devices
US7191311B2 (en) * 2003-12-13 2007-03-13 International Business Machines Corporation Method and system of interconnecting processors of a parallel computer to facilitate torus partitioning
US7937557B2 (en) * 2004-03-16 2011-05-03 Vns Portfolio Llc System and method for intercommunication between computers in an array
US20060242156A1 (en) * 2005-04-20 2006-10-26 Bish Thomas W Communication path management system
US7904695B2 (en) * 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous power saving computer
JP3992110B2 (ja) * 2005-12-06 2007-10-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数の通信ノードの相互通信を制御する通信システム
US7966481B2 (en) 2006-02-16 2011-06-21 Vns Portfolio Llc Computer system and method for executing port communications without interrupting the receiving computer
US7617383B2 (en) * 2006-02-16 2009-11-10 Vns Portfolio Llc Circular register arrays of a computer
US7904615B2 (en) 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous computer communication
DE102006027181B4 (de) * 2006-06-12 2010-10-14 Universität Augsburg Prozessor mit internem Raster von Ausführungseinheiten
US8099583B2 (en) * 2006-08-23 2012-01-17 Axis Semiconductor, Inc. Method of and apparatus and architecture for real time signal processing by switch-controlled programmable processor configuring and flexible pipeline and parallel processing
US7555637B2 (en) * 2007-04-27 2009-06-30 Vns Portfolio Llc Multi-port read/write operations based on register bits set for indicating select ports and transfer directions
US8122228B2 (en) * 2008-03-24 2012-02-21 International Business Machines Corporation Broadcasting collective operation contributions throughout a parallel computer
US8484440B2 (en) 2008-05-21 2013-07-09 International Business Machines Corporation Performing an allreduce operation on a plurality of compute nodes of a parallel computer
US8181003B2 (en) * 2008-05-29 2012-05-15 Axis Semiconductor, Inc. Instruction set design, control and communication in programmable microprocessor cores and the like
US8078833B2 (en) * 2008-05-29 2011-12-13 Axis Semiconductor, Inc. Microprocessor with highly configurable pipeline and executional unit internal hierarchal structures, optimizable for different types of computational functions
US8281053B2 (en) 2008-07-21 2012-10-02 International Business Machines Corporation Performing an all-to-all data exchange on a plurality of data buffers by performing swap operations
US20100023730A1 (en) * 2008-07-24 2010-01-28 Vns Portfolio Llc Circular Register Arrays of a Computer
US8150902B2 (en) 2009-06-19 2012-04-03 Singular Computing Llc Processing with compact arithmetic processing element
US8392661B1 (en) * 2009-09-21 2013-03-05 Tilera Corporation Managing cache coherence
US8255702B1 (en) * 2009-12-03 2012-08-28 Altera Corporation Programmable logic device with improved security
US8910178B2 (en) 2011-08-10 2014-12-09 International Business Machines Corporation Performing a global barrier operation in a parallel computer
US8898432B2 (en) * 2011-10-25 2014-11-25 Geo Semiconductor, Inc. Folded SIMD array organized in groups (PEGs) of respective array segments, control signal distribution logic, and local memory
US9495135B2 (en) 2012-02-09 2016-11-15 International Business Machines Corporation Developing collective operations for a parallel computer
JP6459630B2 (ja) 2015-02-27 2019-01-30 富士通株式会社 データ転送制御装置、データ転送制御プログラム、および並列計算システム
WO2016187232A1 (en) * 2015-05-21 2016-11-24 Goldman, Sachs & Co. General-purpose parallel computing architecture
US11449452B2 (en) 2015-05-21 2022-09-20 Goldman Sachs & Co. LLC General-purpose parallel computing architecture
US11687345B2 (en) 2016-04-28 2023-06-27 Microsoft Technology Licensing, Llc Out-of-order block-based processors and instruction schedulers using ready state data indexed by instruction position identifiers
EP3735638A4 (en) * 2018-01-24 2021-03-17 Alibaba Group Holding Limited DEEP LEARNING ACCELERATOR SYSTEM AND PROCEDURES FOR IT
CN110399976B (zh) * 2018-04-25 2022-04-05 华为技术有限公司 计算装置和计算方法
EP3654247A1 (en) 2018-11-15 2020-05-20 IMEC vzw Convolution engine for neural networks
US10565036B1 (en) 2019-02-14 2020-02-18 Axis Semiconductor, Inc. Method of synchronizing host and coprocessor operations via FIFO communication
US10831691B1 (en) * 2019-05-24 2020-11-10 International Business Machines Corporation Method for implementing processing elements in a chip card
CN113867790A (zh) * 2020-06-30 2021-12-31 上海寒武纪信息科技有限公司 计算装置、集成电路芯片、板卡和计算方法
CN113867792A (zh) * 2020-06-30 2021-12-31 上海寒武纪信息科技有限公司 计算装置、集成电路芯片、板卡、电子设备和计算方法
CN113867789A (zh) * 2020-06-30 2021-12-31 上海寒武纪信息科技有限公司 计算装置、集成电路芯片、板卡、电子设备和计算方法
CN113867791B (zh) * 2020-06-30 2023-09-26 上海寒武纪信息科技有限公司 一种计算装置、芯片、板卡、电子设备和计算方法
US11635967B2 (en) 2020-09-25 2023-04-25 Advanced Micro Devices, Inc. Vertical and horizontal broadcast of shared operands
US11921668B2 (en) * 2020-09-30 2024-03-05 Beijing Tsingmicro Intelligent Technology Co., Ltd. Processor array and multiple-core processor
US20220100699A1 (en) * 2020-09-30 2022-03-31 Beijing Tsingmicro Intelligent Technology Co., Ltd. Computing array and processor having the same
US11516087B2 (en) * 2020-11-30 2022-11-29 Google Llc Connecting processors using twisted torus configurations
US20230066045A1 (en) * 2021-08-30 2023-03-02 Taiwan Semiconductor Manufacturing Co., Ltd. Diagonal torus network

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3308436A (en) * 1963-08-05 1967-03-07 Westinghouse Electric Corp Parallel computer system control
US4270170A (en) * 1978-05-03 1981-05-26 International Computers Limited Array processor
US4509187A (en) * 1982-06-14 1985-04-02 At&T Bell Laboratories Time warp signal recognition processor using recirculating and/or reduced array of processor cells
US4644496A (en) * 1983-01-11 1987-02-17 Iowa State University Research Foundation, Inc. Apparatus, methods, and systems for computer information transfer
US5280474A (en) * 1990-01-05 1994-01-18 Maspar Computer Corporation Scalable processor to processor and processor-to-I/O interconnection network and method for parallel processing arrays
US5577262A (en) * 1990-05-22 1996-11-19 International Business Machines Corporation Parallel array processor interconnections
US5146420A (en) * 1990-05-22 1992-09-08 International Business Machines Corp. Communicating adder tree system for neural array processor
WO1991018351A1 (en) * 1990-05-22 1991-11-28 International Business Machines Corporation Pyramid learning architecture neurocomputer
US5148515A (en) * 1990-05-22 1992-09-15 International Business Machines Corp. Scalable neural array processor and method
US5146543A (en) * 1990-05-22 1992-09-08 International Business Machines Corp. Scalable neural array processor
US5065339A (en) * 1990-05-22 1991-11-12 International Business Machines Corporation Orthogonal row-column neural processor
US5590345A (en) * 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
JP2601591B2 (ja) * 1991-11-26 1997-04-16 富士通株式会社 並列計算機およびその全対全通信方法
CA2073516A1 (en) * 1991-11-27 1993-05-28 Peter Michael Kogge Dynamic multi-mode parallel processor array architecture computer system
JP2647327B2 (ja) * 1992-04-06 1997-08-27 インターナショナル・ビジネス・マシーンズ・コーポレイション 大規模並列コンピューティング・システム装置
DE4214621C1 (ko) 1992-05-02 1993-06-03 Bundesrepublik Deutschland, Vertreten Durch Den Bundesminister Der Verteidigung, Dieser Vertreten Durch Den Praesidenten Des Bundesamtes Fuer Wehrtechnik Und Beschaffung, 5400 Koblenz, De
JP2572522B2 (ja) * 1992-05-12 1997-01-16 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピューティング装置
US5644517A (en) * 1992-10-22 1997-07-01 International Business Machines Corporation Method for performing matrix transposition on a mesh multiprocessor architecture having multiple processor with concurrent execution of the multiple processors
WO1994027216A1 (en) * 1993-05-14 1994-11-24 Massachusetts Institute Of Technology Multiprocessor coupling system with integrated compile and run time scheduling for parallelism
US6173387B1 (en) * 1994-05-11 2001-01-09 Intel Corporation Interleaved exchange in a network mesh
US5566342A (en) * 1994-08-31 1996-10-15 International Business Machines Corporation Scalable switch wiring technique for large arrays of processors
US5682491A (en) * 1994-12-29 1997-10-28 International Business Machines Corporation Selective processing and routing of results among processors controlled by decoding instructions using mask value derived from instruction tag and processor identifier
US5546336A (en) * 1995-01-19 1996-08-13 International Business Machine Corporation Processor using folded array structures for transposition memory and fast cosine transform computation
US5659785A (en) * 1995-02-10 1997-08-19 International Business Machines Corporation Array processor communication architecture with broadcast processor instructions
US6023753A (en) * 1997-06-30 2000-02-08 Billion Of Operations Per Second, Inc. Manifold array processor
US7596678B2 (en) * 2003-04-23 2009-09-29 Micron Technology, Inc. Method of shifting data along diagonals in a group of processing elements to transpose the data

Also Published As

Publication number Publication date
JP2002507300A (ja) 2002-03-05
US20020069343A1 (en) 2002-06-06
CN1261966A (zh) 2000-08-02
EP1742154B1 (en) 2010-10-06
DE69841929D1 (de) 2010-11-18
EP1742154A3 (en) 2007-07-11
CN1158616C (zh) 2004-07-21
US6892291B2 (en) 2005-05-10
ATE484028T1 (de) 2010-10-15
WO1999000743A1 (en) 1999-01-07
DE69837335D1 (de) 2007-04-26
DE69837335T2 (de) 2007-12-20
US8341381B2 (en) 2012-12-25
US20080052491A1 (en) 2008-02-28
US20130019082A1 (en) 2013-01-17
US9390057B2 (en) 2016-07-12
CA2295109A1 (en) 1999-01-07
IL133691A0 (en) 2001-04-30
EP1002279B1 (en) 2007-03-14
US6023753A (en) 2000-02-08
US20070150698A1 (en) 2007-06-28
US20040168040A1 (en) 2004-08-26
US6338129B1 (en) 2002-01-08
ATE357021T1 (de) 2007-04-15
EP1002279A1 (en) 2000-05-24
JP4118963B2 (ja) 2008-07-16
EP1742154A2 (en) 2007-01-10
US7197624B2 (en) 2007-03-27
US7631165B2 (en) 2009-12-08
EP1002279A4 (en) 2004-03-31

Similar Documents

Publication Publication Date Title
KR20010014381A (ko) 메니폴드 어레이 프로세서
JP4447770B2 (ja) 相互接続システム及び並列プロセッサとその形成方法
JP2647327B2 (ja) 大規模並列コンピューティング・システム装置
US5682491A (en) Selective processing and routing of results among processors controlled by decoding instructions using mask value derived from instruction tag and processor identifier
US7272691B2 (en) Interconnect switch assembly with input and output ports switch coupling to processor or memory pair and to neighbor ports coupling to adjacent pairs switch assemblies
JPH08171537A (ja) メッシュ・アレイ・プロセッサ
JPH07152722A (ja) Simdマルチプロセッサ用動的再構成可能スイッチ装置
US7185174B2 (en) Switch complex selectively coupling input and output of a node in two-dimensional array to four ports and using four switches coupling among ports
JP2525117B2 (ja) アレイ・プロセッサ
CN112486905A (zh) 可重构异构化pea互连方法
Barry Methods and apparatus for manifold array processing
MXPA99011982A (en) Manifold array processor
JPH0652126A (ja) 相互接続ノード・ネットワークのメッセージ通過装置及びそのコンピュータ・システム

Legal Events

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