KR960016880B1 - 연관 병렬 처리 시스템 - Google Patents
연관 병렬 처리 시스템 Download PDFInfo
- Publication number
- KR960016880B1 KR960016880B1 KR1019910017964A KR910017964A KR960016880B1 KR 960016880 B1 KR960016880 B1 KR 960016880B1 KR 1019910017964 A KR1019910017964 A KR 1019910017964A KR 910017964 A KR910017964 A KR 910017964A KR 960016880 B1 KR960016880 B1 KR 960016880B1
- Authority
- KR
- South Korea
- Prior art keywords
- picket
- pickets
- array
- data
- associative
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures 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/8015—One dimensional arrays, e.g. rings, linear arrays, buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17337—Direct connection machines, e.g. completely connected computers, point to point communication networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17337—Direct connection machines, e.g. completely connected computers, point to point communication networks
- G06F15/17343—Direct 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17381—Two dimensional, e.g. mesh, torus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures 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/803—Three-dimensional arrays or hypercubes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F02—COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
- F02B—INTERNAL-COMBUSTION PISTON ENGINES; COMBUSTION ENGINES IN GENERAL
- F02B75/00—Other engines
- F02B75/02—Engines characterised by their cycles, e.g. six-stroke
- F02B2075/022—Engines characterised by their cycles, e.g. six-stroke having less than six strokes per cycle
- F02B2075/027—Engines characterised by their cycles, e.g. six-stroke having less than six strokes per cycle four
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Nonlinear Science (AREA)
- Multi Processors (AREA)
- Exchange Systems With Centralized Control (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Image Processing (AREA)
- Hardware Redundancy (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
내용없음
Description
제1도는 대표적인 종래 기술로서 고려될 수도 있는 최신 SIMD 프로세서의 개략도.
제2도는 실리콘 기판상에 프로세서, 메모리, 제어 로직 및, 다른 피킷과 바이트 통신하는 연관 메모리가 어레이로 구성된 한 쌍의 기본적인 피킷 유닛을 예시한 도면.
제3도는 연관 메모리 처리를 예시한 도면.
제4도는 마이크로프로세서 콘트롤러, 기성 루틴용 하드와이어드 순차 콘트롤러 및 피킷 어레이를 채용하며, 또한 단독 유닛일 수도 있는 기본적인 병렬 피킷 프로세서 시스템을 형성하는 SIMD 서브시스템에 대한 기본적인 16(n) 피킷 구성을 예시한 도면.
제5도는 제4도에 도시된 다수의 피킷 프로세서를 구비한 다중피킷 프로세서 시스템을 예시한 도면.
제6도는 서브시스템의 기능적 블럭도.
제7도는 제5도에 도시된 카드를 갖는 서브시스템 콘트롤러의 배열을 예시한 도면.
* 도면의 주요부분에 대한 부호의 설명
510 : 병렬 피킷 프로세서 시스템511 : SEM E 카드
512 : 카드513 : 시스템 칸막이
514 : 웨지로크 슬라이드516 : 삽입/배출 레버
517 : 커버518 : 후방 패널 보드
519 : 전원 공급장치520 : I/O 포트
본 발명은 멀티프로세서 병렬 컴퓨팅 시스템(multiprocessor parallel computing system)에 관한 것으로, 특히, 1바이트 직렬 SIMD 프로세서 병렬 아키텍쳐(a byte serial SIMD processor parallel architecture) 및 공냉식 환경에서 단일 칩 형태(single chip type)로 구현 가능한 간략화된 아키텍처를 갖는 병렬 어레이 처리(parallel array processing) 시스템 및 방법에 관한 것이다.
본 출원과 동일한 양수인에게 양도된 본 출원과 관계되는 출원을 참조하면 다음과 같다.
1988년 9월 27일에 미합중국 특허 출언 제 07/250,595호로 출원되어 1990년 5월 4일자로 제임스 엘. 테일러(James L. Taylor)에 의해 계속출원된, "SIMD 어레이 프로세서(SIMD Array Processor)"라는 명칭의 미합중국 계속출원 제07/519,332호(현재 미국 특허 제4,992,933호 ; 원출원은 1989년 5월 3일 유럽 특허출원 제88307855/88-A로 공개되었음).
1988년 5월 13일자로 출원된 미합중국 특허 출원 07/193,990호(현재 미국 특허 제5,257,395호), 이 출원은 에이치.리(H.Li)에 의해 "폴리모르픽 메쉬상에 임의의 그래프를 구현하기 위한 방법 및 회로(Methods and Circuit for Implementing an Arbitrary Graph on a Polymorphic Mesh"라는 명칭으로 출원됨.
1989년 10월 24일자로 출원된 미합중국 특허 출원 제 07/426,140호(현재 미국 특허 제5,410,727호), 이 출원은 알. 제프(R. Jaffe) 등에 의해 "대규모 병렬 SIMD 컴퓨터를 위한 2차원 입/출력 기법(Tow-Dimensional Input/Output Scheme for Massivey Parallel SIMD Computers)"이라는 명칭으로 출원됨.
1989년 11월 21일자로 출원된 미합중국 특허 출원 제07/439,758호(현재 미국 특허 제5,457,789호), 이 출원은 디트리히 주니어(Dietrich, Jr) 등에 의해 "병렬 프로세서 시스템내의 메모리 보호 동작을 수행하기 위한 방법 및 장치(Method and Apparatus for Performing Memory Protection Operations in a Parrallel Processor System)"라는 명칭으로 출원됨.
1970년 10월 27일자로 특허된 알. 에이. 스톡스(R. A. Stokes)등의 미합중국 특허 출원 제 3,537,074호는, 병렬 프로세서 및 단일의 프로그램 가능한 제어 유닛을 갖는 어레이 컴퓨터, 대응 벡터를 저장하는 다수의 레지스터 및 하나 이상의 제어 유닛 인스트럭션 시퀀스에 응답하여 벡터 레지스터내의 데이터에 대하여 동시동작하는 수단을 개시하며, 1970년대 동안 스톡스에 의해 설명된 병렬 프로세서는 SIMD(Single Instrustion Multiple Data) 머신으로서 알려져 있었다. 이 머신은, n개의 병렬 프로세서 어레이를 구동하는 프로그램 가능한 제어 유닛으로 구성된 것으로서 또한 개시될 수도 있으며, 각 프로세서는 메모리부, 산술 유닛, 프로그램 디코드부 및 입/출력부를 포함한다. 이들 시스템은, 때때로 호스트 메인프레임과 연관된 대형 상자였다. 이러한 SIMD와 보다 일반적인 프로세서간의 중요한 차이는, 이러한 시스템내애서 모든 SIMD 프로세서가 연관된 프로세서내에 서로 다른 데이터 세트를 가질 수 있지만, 모든 프로세서가 공통의 콘트롤러에 의해 통제된다는 것이다. SIMD 컴퓨터는, 각 인스트럭션이 단일의 오퍼랜드가 아닌 데이터 벡터에 대하여 작용한다는 점에서 보다 일반적인 폰 노이만(Von Neumann) 프로세서와 구별된다.
가장 일반적인 형태의 일반 멀티프로세서 시스템은, 각각의 프로세서가 서로 다른 데이터 세트에 작용하는 각각의 프로그램을 실행하는 다중 인스트럭션 다중 데이터(Multiple Instruction Multiple data ; MIMD) 시스템이다. MIMD시스템내의 프로세서들은 서로 별개의 테스트를 수행하거나 또는 공통된 주요 태스크의 서로 다른 서브-태스크를 각각 수행할 수도 있다.
SIMD 병렬 프로세서에 대한 사고나 발전함에 따라, 1984년 3월 6일자로 로리(Lorie)등에게 특허된 "SIMD 벡터 프로세서내의 조건부 분기 실행을 위한 방법(Method for Conditional Branch Execution in SIMD Vector Processors)"이라는 명칭의 미합중국 특허 제4,435,758호에 개시된 바와 같이, 수행될 시스템의 태스크가 극히 독립적이며 상충되지 않는(contention-free) 경우에는 SIMD 병렬 프로세서가 적절할 수도 있으나, 태스크가 자원을 경쟁하고 있는 경우에는 SIMD 모드로 동작하는 동기 프로세서의 네트워크가 지적될 수도 있다고 생각되었다. 실제로, 미합중국 특허 제4,435,758호는 이 문제를 설명하고, 조건부 분기 실행을 제공하기 위하여 1978년 7월 18일자 알. 에이. 스톡스 등의 미합중국 특허 제4,101,960호의 개발시에 행해져야 했던 개선에 관해 설명하였다.
병렬처리에 관한 국제 학술회의 회보 411-414페이지에 에이치. 리와 엠. 마레스카(H. Li and M. Maresca)의 "폴리모르픽-토러스 네트워크(Polymorphic-Torus Network)"라는 제목의 논문에 개시된 예시적인 다중-프로세서 시스템에 의해 예시된 바와 같이, 가장 진보된 SIMD 머신을 N×N 매트릭스로 배열된 동기 비트 직렬 프로세서로서 기술하는 것이 표준이 되었다. 메쉬 토폴로지(mesh topology)에 의해 물리적으로 접속되고 재구성을 목적으로 하는 다른 스위칭 네트워크에 의해 오버레이된 메쉬 네트워크를 갖는, 에이치. 리 등에 의해 개시된 바와 같이, N×N 프로세서로 이루어진 이러한 대규모의 병렬 아키텍쳐에 대한 매트릭스 벡터 곱셈 방법(matrix vector multiplication methods)의 임의 벡터에 대한 최소 매트릭스(sparse matrix)의 곱셈시 실행 속도를 향상시키기 위하여 1989년 8월, IBM 기술 공개 안내 제32권 3A호에 상세히 설명되었다.
1990년 공개는, 이 개념이 또한, 주어진 행내의 모든 프로세서가 정확한 동일한 인스트럭션을 수행하지만 각 행은 상이하게 프로그램되는, 다중 프로세서 행으로 동작하는 SIMD 및 SIMD/MIMD 머신을 제조하는데 적용되었음을 보여준다. 특정의 반복적인 메모리 검사 기능을 처리하기 위하여 병렬 로컬 오퍼레이션 엔진(Parallel Local Operator Engine ; PLOE)으로 불리는 본 구성을 갖는 아키텍쳐가 개시된, 1990년 1월 IBM 기술 공개 안내 제32권 8B호에 에이치. 리(H.Li), 비. 돔(B. Dom) 및 알. 제프(R. Jaffe)의 예를 참조하시오.
본 출원은 폰 노이만(Von Noumann)머신에 할당할 수 있을 것으로 생각되었던 태스크는 물론, SIMD 머신에 할당할 수 있을 것으로 생각되었던 태스크를 새로이 확립된 아키텍처로 단일 칩에서 수행할 수 있는, 현재 기술로 제조될 수 있는 공냉식 시스템의 개선을 목적으로 한다.
배경 기술에 대한 종래 기술의 관찰로부터, 그 밖에 스태틱 인스트럭션 및, 단일의 실리콘 칩상에서 데이터를 저장하고 액세스하기 위한 레지스터를 위해 롬(ROM)을 갖는 프로세서의 사용이 설명되어 있음을 알 수 있으며, 예를 들면, 지. 하이얀트(G. Hyatt)에게 1990년 7월 17일자로 특허된 "단일 칩 집적 회로 컴퓨터 아키텍처(single chip integrated circuit computer architecture)"라는 명칭의 미합중국 특허 제4,942,516호를 참조하고, 이런 종류의 작업은 SIMD형 복합 어플리케이션에 무관하다.
그 밖에 본 발명의 시스템이 또한 지향될 수도 있는, 상이한 태스크를 위한 다양한 수단이 설명되어 왔다.
예를 들면, 매트릭스 곱셈은 병렬처리될 수 있는 것으로 알려져 있다. 본 발명의 시스템이 채용될 수 있는, 인공지능(artificial intelligence ; AI)에 관계하는 응용에 관한 출판물(publications)이 있다. 내용에 의해 어드레스가능한 연관 메모리(content addressable or associative memories)는 다양한 프로세싱 칩과 함께 대학 레벨에서 연구되어 왔다. AI응용에 대하여 특정의 경우에, 행 로직(row logic)을 사용하여 이전의 탐색 동작(search operations)의 결과를 기초로 행을 선택해야 할 가치가 있는 것으로 배워왔다.
이에 관하여는 "VISI for Artificial Intelligence, Jose G. Delgado-Frias and Will R. Moore, editors, Kluwer Academic Publishers, 1989, pp. 95~108, "VLSI and Rule-Based Systems", Peter Koggel, Mark Brule and Charles stormon for a disscusion of applications"를 참조하시오. 그러나, 우리가 따라왔던 것과 상이한 방향에서 다른 연구진들의 훌륭한 제안들이 당 기술분야를 주도하는 것처럼 보인다. 그중 한가지 방식은, 1988년 12월, 수석 편집자(senior editor)인 봅 쿠쉬만(Bob Cushman)에 의한 대규모 병렬성을 갖는 매트릭스 크런칭(Matrix Crunching with Massive Parallelism)이라는 명칭의 논문, 18~28페이지의 VLSI 시스템 설계 부분에 설명되었던 대규모 병렬성을 위한 옥스포드사(Oxford)의 "지능-메모리(intelligent-Memory)"칩이다. 그 밖에도, 재구성가능한 완전 병렬 연관 처리 기법의 구현에 적합한 VLSI 연관 메모리 칩을 기술하기 위한 VLSI 연관 메모리에 대한 병렬 처리가 시도되어 왔다. 이 접근방법은 고전적인 연관 메모리 아키텍처의 사용으로 관련된 데이터 전송을 위해 지나치게 많은 수의 핀아웃(pinouts)을 요구하게 된 것을 고려하였다.
이에 관하여는, NSF 수상 #ECS-h404627에 의해 지원되고, 미합중국, 캘리포니아 93106, 산타 바바라 주재의 캘리포니아 대학의 전기 계산기 공학과에서 본 저자에 의해 보고된 보고서인, 에스, 헨젠 및 아이. 치어슨의 "VLSI 연관 메모리에 대한 병렬 처리"를 참조하시오.
현재 직면한 문제점은 복합 응용을 위한 컴팩트 프로세서(compact processor)의 제조에 대한 요구이며, 이러한 일반적인 문제의 접근과정에서, 처리 요소당 최고 수천 비트의 메모리 및 전자장치 칩당 수개의 처리 요소를 사용하는 비트 직렬 실행(bit serial inplementations)에 제한되어 왔던 과거의 설계가 부적합했음이 발견되었다. 결과적으로, 극적으로 더 높은 밀도로 제조될 수 있으며, 여전히 공냉식 환경에 적합하며, 컴팩트 경량 유닛으로 패키지될 수 있는 아키텍처를 한정해야 할 필요가 발생하였다. 따라서, 제각기 바이트 폭의 메모리 및 제어 로직의 적절한 시그먼트(an adequate segment of byte wide memory and control logic)와 결합된 바이트폭의 처리 유닛의 N차원 어레이(an N dimensional array of byte wide processing units)를 포함하는 해결책을 개발하기에 이르렀다. 몇 개의 완전한 처리 유닛을 포함하는 분할 가능한 어레이 섹션(a partitionable section of the array)이 메모리 칩과 같은 외부 지원 칩없이 다수의 이러한 단일 칩 형태에 의해 구현되는 어레이의 보다 넓은 부분들을 갖는 하나의 실리콘 칩상에 포함된다. 이것이 이하에서 상세히 설명된다. 이 해결책은 시스템 성능을 개선하기 위해 해결되어야 하는 추가의 문제점을 발생시켰으며, 본 발명자는 이미 제안된 아키텍처보다 더욱 향상될 해결책을 발명하였다. 이들 해결책중 몇몇은 처리 요소와 독립적인 수행을 가능하게 하였다. 이와 관련하여 종래 기술의 고찰로부터, 유럽 특허출원 EP-A-208,457에 개시된 종래의 기술이, 어레이내의 각각의 처리 요소가 자신의 입력을 취하는 요소를 선택하도록 인에이블될 수 있는 프로세서 어레이(a processor array)에 대해 개시하고 있음을 알았다.
"SIMD 어레이 프로세서(SIMD Array Processor)"라는 명칭의 1988년 9월 27일 출원된 미합중국 특허 출원 제 07/250,595호의 계속출원인, 1990년 5월 4일 출원된 제임스 엘. 테일러(James, L. Taglor)의 미합중국 동시 계속 특허 출원 제07/519,332호는, MIMD 프로세서의 비용 및 복잡성에 의지하지 않고 병렬 처리에 대한 가능성이 더 잘 이용될 수 있도록 증강된 융통성을 갖는 다중 차원 처리 요소(a multi-dimensional array of processing elements)를 개시하고 있다. 이 출원은 본래 유럽 특허출원 EPO #88/307885/88-A로 1989년 5월 3일 최초로 공개되었다. 거기에 개시된 시스템은 로컬 비트 직렬 실행을 위하여 다양한 병렬 처리 요소내의 버스 접속 제어 로직(a bus connecting control logic)을 따라 글로벌 인스트럭션(a global instruction)을 전송하며, 수정된 비트가 디코드되는 경우, 로컬 비트 라인상에서 사용하기 위한 글로벌 인스트럭션의 선택된 비트를 프로그램에 의해 수정한다.
종래 기술의 관찰로부터, 1989년 5월, IEEE Proceedings 제136권에 공개된 씨. 알. 제스호프(C.R.Jesshope), 알. 오골만(R. OGorman), 등에 의한 "SIMD 마이크로프로세서 어레이의 설계(Disign of SIMD Microprocessor Array)"라는 명칭의 바이트폭 SIMD 프로세서 요소에 관한 단 하나의 논문이 확인되었다. 이 논문은 영국 사우쓰앰프톤 대학의 전자 및 컴퓨터 과학과(the Depatment of Electromics and computer science)에 소속된 저자들에 의한 SIMD 아키텍처에 대한 학술적 연구를 개시한다. 몇 가지 특징은 본 명세서에서 토의하는 것과 유사하며, 이들은 바이트폭의 SIMD 아키텍처를 갖는 프로세서를 기술하고 있다. 이 논문은 몇몇 상당한 정도의 로컬 자치(local autonomy)은 물론, 8비트 처리 누산기 아키텍처 요소, 제한된 내장 RAM(a limited on board RAM)(1K 바이트) 및, 칩당 다중 처리 요소(porcessing element ; PE)를 갖는 처리 요소를 제안한다. 그러나, 이러한 제안된 구조의 사용에도 불구하고, 연관 처리는 제공되지 않는다. 이 제안된 구조는 본 발명의 경우와 같은 바이트 폭의 인접 통신(byte wide neighbor communication)을 제공하지 않으며, 심지어 SIMD 모드에서의 경우에도 각 피킷에 의한 로킬 자치 작용을 위한 메커니즘도 아니다. 본 발명자에 의해 개발된 또 다른 특징도 또한 개시되어 있지 않다. 따라서, 병렬 처리에 대한 기술의 수준을 향상시키기 위하여 집적 회로 칩상에서 실행 가능한 피킷 시스템(picket system)에 대한 필요성이 존재한다. 이에 관하여는 1990년 2월, IEEE Computer에서 발견될 수도 있는 알. 던칸(R. Duncan)의 "병렬 컴퓨터 아키텍쳐의 개요(Summary of Parallel Computer Architectures)"를 참조하시오.
후속하는 설명에 대한 이해를 돕기 위하여 본 기술분야에서 신규 용어에 대한 일반적이며 비제한적인 설명을 아래에 기술한다.
피킷-바람직하게는 한 클럭 사이클안에 비트 병렬 정보 바이크를 처리하기 위하여 충분한 로컬 메모리와 결합된 처리 요소로 구성된 처리 어레이 요소로서, 바람직한 실시예는 바이트 폭의 데이터 흐름 프로세서(a byte wide data flow processor), 32K 바이트 이상의 메모리, 원시 제어기(primitive controls) 및 다른 피킷들과의 통신을 위한 결합(ties)으로 구성된다.
피킷 칩-단일의 실리콘 칩상에 다수의 피킷이 포함되어 있는 것을 말함.
피킷 프로세서 시스템(또는 서브시스템)-피킷 어레이(an array of pickets), 통신 네트워크(a communication network), I/O 시스템 및 SIMD 콘트롤러로 구성된 전체 시스템(total system)으로서, SIMD 콘트롤러는 마이크로프로세서(a microprocessor), 기성 루틴 프로세서(a canned routine processor) 및 어레이를 실행하는 마이크로콘트롤러(microcontroller)로 구성된다.
피킷 아키텍쳐- 몇개의 다양한 문제점들, 즉, 세트 연관 처리, 병렬 수치 중점 처리, 영상 처리에 유사한 물리적 어레이 처리를 수용하는 특징들을 갖는 SIMD 아키텍쳐를 위한 바람직한 실시예.
피킷 어레이-기하학적 순서(geometric order)로 배열된 피킷의 집합(a colletcion of pickets).
"피킷"이라는 용어는 톰 소오여의 모험에 나오는 흰 담장(white fence)으로부터 나온 것이며, 기능상 군대의 전초선 분석(military picket line analogy)과 아주 잘 어울리는 것으로 이해된다.
본 발명에 따른 아키텍처는 "피킷" 아키텍쳐로서 언급될 수도 있다. 이것은, 필요한 때에 피킷 라인처럼 함께 행진해 왔지만 초기의 SIMD 처리 요소(PEs)와 어느 면에서 유사하며, 독립적인 폰 노이만(Von Neumann)동작을 할 수 있는, 특정의 프로세서 요소(PEs)구조를 구비한다. 본 아키텍쳐는, 병렬 처리를 위해 배열되고 피킷으로 불리는 각각의 처리 유닛내에 제어 로직을 갖는 N차원의 처리 유닛 어레이를 채용하도록 개발되어 왔다.
본 바람직한 시스템은 단일 인스트럭션 다중 데이터 스트리밍 머신(Single Instruction Multiple Data(SIMD) streaming machine)처럼 계산가능하지만, 성능은 더욱 많은 병렬 처리 요소 실행에 의해 개선되어 왔다. 데이터 의존성(data dependency)과 직면한 문제는 제거되었다. SIMD 머신 동작시에, 어떠한 프로세서나 기능도 내부에, 어느 한 처리 요소로 하여금 상이한 사이클 수를 요구하게 하는 임의 데이터 의존성을 가질 수 없다.
본 발명에 따른 아키텍처 개발은, 각각의 피킷이 연관 프로세서 의한 구성요소를 수행하기에 적합한 경우에 연관법(an associative way)으로 정보를 병렬 처리하는 처리 요소에 결합된 로컬 메모리와 함게 병렬 처리 요소를 구비하는 다수의 피킷 유닛(a plurality of picket units), 즉, 일반적으로 피킷(pickets)을 갖는 시스템으로 귀결된다. 본 발명은 각 피킷과의 수평 연관(horizontal association)을 위한 방법을 제공한다. 피킷 유닛의 메모리는 어레이 방식으로 배열된다. 이와 같이 배열된 피킷 어레이는 세트 연관 메모리(a set associative memory)를 이룬다.
본 발명에 따른 단일 칩상의 세트 연관 병렬 처리 시스템은, 메모리 상에서 연관 동작(an associative operation)이 수행될 수 있는 경우에 보다 큰 데이터 세트로부터 보다 작은 '데이터'세트가 메모리로부터 생성되는 것을 허용한다. 각각의 피킷 메모리들은 다중 엔트리를 포함하며, 다중 엔트리 각각은 긴 다중 바이트일 수 있다. 외부 제어 유닛에 의하거나 또는 각 개별 유닛에 의해 생성되는 어드레스는 이러한 각 피킷 메모리로부터 병렬로 하나의 데이터 바이트를 선택한다. 다음에 이 데이터는 연관 동작을 수행하기 위해 제어 유닛으로부터 비교정보를 가지고 데이터 흐름에 결합된다. 일반적으로 그럴 필요는 없지만 정확한 비교(an exact compare)인, 제3도에 도시된 MATCH나 또는 WIRTE와 같은 연관 동작은, 피킷의 메모리 및 실행 유닛을 이용하여 전체 데이터 세트상에서 병렬로 수행된다.
이 배열에서, "세트"는 피킷 메모리로부터 동시에 판독된 모든 데이터들로 구성된다. 피킷 어레이내에서, 각 피킷은 보다 큰 세트로부터의 데이터부(a portion of data)를 갖는다. 또한, 각 피킷은 데이터부로부터 한 조각의 데이터(one piece of data)를 선택한다. 따라서, 각 피킷 세트내의 한 조각의 데이터는, 모든 피킷에 의해 병렬로 연관 동작이 수행되는 데이터 세트를 구성한다.
이러한 설계는 오늘달 단일 칩상에서 최고 50K의 데이터흐름 및 제어 로직 게이트(gates of dataflow and control logic)와, 수 메가비트(multi-megabits)의 DRAM 메모리를 갖는 16개의 피킷이 있으며, 시스템은 이러한 64개의 피킷 칩으로 된 어레이, 즉, 1024개의 처리 요소로 된 어레이를 포함한다. 이러한 피킷 아키텍쳐는 4백만 비트의 DRAM이 단일 칩상에 반복적인 패턴으로 저장되도록 하는 CMOS 기술로 제조될 수도 있으며, 칩상에서 이용가능한 나머지 칩표면 영역은, 칩상에 피킷을 형성하기 위하여 데이터 흐름 및 제어 로직을 형성할 수 있고 최고 50K의 로직 요소를 채용하는 로직 표준 셀(logic standard cells)로 채워진다. 본 시스템은 피킷이 로컬 자치성을 갖고 데이터를 처리할 수 있도록 배열되며, 피킷간에는 "슬라이드(a slide)"가 제공된다.
피킷 기술은 확장 가능하며, 각 단일 피킷의 128k 바이트 DRAM(16Mbit DRAM 메모리 칩)의 경우 피킷 아키텍처는, 본 발명의 현재의 바람직한 실시예로 텍스트 및 8비트 컬러 또는 그레이 스케일 그래픽이 처리되는 것과 동일한 방식으로 완전 24비트 컬러 그래픽(full 24 bit color graphics)을 처리하게 된다. 실험적인 제조 기술은 가까운 장래에 공냉식 환경에서 동작 가능한 일관된 제품으로서 이러한 밀도가 예견될 수 있음을 보여준다. 컬러 그래픽의 경우, 본 발명에 따른 바람직한 피킷 아키텍쳐는 칩상의 DRAM의 양을 단위 칩당 16피킷을 유지하면서 단위피킷당 128K 바이트까지 증가시키게 된다. 또는, 96k 바이트 메모리를 갖는 피킷 칩당 24개의 피킷 유닛이 완전 컬러 그래픽 프로세서를 위해 채용될 수 있다.
이하 본 발명을 첨부된 도면과 관련하여 바람직한 실시예로서 상세히 설명한다.
제1도는 전형적인 종래의 SIMD 시스템으로서, 전반적으로 테일러(Taylor)의 IBM사 유럽 특허출원 88307855/88-A 및 영국 특허출원 UK-A1,445,714에 개시된 형태의 SIMD 시스템을 나타낸다. 이러한 종래의 장치에서, SIMD 컴퓨터는, 제각기 다수의 SIMD 메모리 장치(memory devices)중 하나와 연관되는 다수의 병렬 연결된 비트 직렬 프로세서(a plurality of parallel linked bit serial processors)를 포함하는 병렬 어레이 프로세서(a parallel array processor)를 구비한 단일 인스트럭션 다중 데이터 컴퓨터(a single instruction, multiple data computer)이다. 입출력 I/O 시스템은 SIMD 유닛에 대해 스테이징 시스템(staging system)으로서 동작하며, 호스트 컴퓨터(메인프레임 또는 마이크로프로세서일 수도 있음)와 SIMD 컴퓨터간에 양방향 2차원 데이터 전송(bi-directional two-dimensional transfer of data)을 위한 임시 저장장치(a temporary store)를 포함한다. 이 I/O 시스템은 호스트 컴퓨터와 임시 저장 수단간의 데이터 흐름을 제어하고 임시 저장장치와, 일반적으로 보다 더 큰 메모리의 조직된 버퍼 섹션 또는 구획(organized buffer sections or partitions of a lager memory)인 다수의 SIMD 메모리 장치간의 데이터 흐름을 제어하는 입출력 처리 수단(input output processing means)을 포함한다. 따라서, I/O 시스템의 입력 동작은 호스트 컴퓨터 메모리에서 임시 저장장치로 및 임시 저장장치로부터 SIMD 메모리 장치로의 2단계 데이터 전송을 포함하며, 출력에 대하여도 역시 2차원 버스를 통하여 호스트 컴퓨터와 SIMD 컴퓨터간에 데이터를 전송하는 2단계 처리가 존재한다. I/O 전송을 위한 입출력 시스템은 독립된 유닛이거나, 호스트 컴퓨터내의 서브-유닛이거나 또는 종종, SIMD 콘트롤러가 임시 I/O 버퍼 저장용 제어장치(control for the temporary I/O buffer store)로서 동작하는 경우 SIMD 컴퓨터내의 유닛일 수 있다.
SIMD 컴퓨터 자체는 다수의 처리 요소와, 이 개개의 처리 요소와 다수의 통상적으로 분리된 SIMD 메모리 장치를 접속하는 네트워크(a network)를 포함한다. 이 SIMD 컴퓨터는 병렬로 연결되어 동작하는 다수의 개별 처리 요소(a great number of individual processing elements)를 구비하는 병렬 어레이 프로세서(a parallel processor)이다. 이 SIMD 컴퓨터는 처리 요소를 위한 인스트럭션 스트림을 발생하며, 컴퓨터에 필요한 타이밍 신호를 제공하는 제어 유닛(a control unit)을 포함한다. 다양한 처리 요소를 상호접속하는 네트워크는 개별 처리 요소를 위한 몇몇 상호접속 기법 형식을 포함하며, 이 상호접속은 메쉬, 폴리모르픽-토루스 및 하이퍼큐브 같은 다수의 토폴로지를 취할 수 있다. 다수의 메모리 장치를 개별 처리 요소를 위한 비트 데이터의 임시 저장 장치를 위한 것이며, 처리 요소의 수와 앞서 언급한 보다 더 큰 메모리의 버퍼 섹션 또는 구획일 수 있는 메모리 장치의 수 사이에는 일대일 대응된다.
예를 들면, 제1도에 도시된 바와 같이, 호스트 프로세서(28)가 제공된다. 이 프로세서는 마이크로코드 프로그램(microcode programs)을 어레이 콘트롤러(14)(임시 저장 버퍼를 포함함)로 로드하여 임시 저장 버퍼와 데이터를 교환하고 호스트-콘트롤러 데이터 버스(a host-controller data bus)(30) 및 어드레스 및 콘트롤 버스(an address and control bus)(31)를 통해 임시 저장 버퍼의 상태(its status)를 감시하는데 사용된다. 이 종래의 실시예에서 호스트 프로세서는 메인 프레임 또는 퍼스널 컴퓨터와 같은 임의의 적절한 범용 컴퓨터일 수 있다.
이 실시예에서, 프로세서 어레이는 2차원 어레이로서 예시되었으나, 이 어레이는 3차원 또는 4차원 클러스터 배열(cluster arrangement)과 같이 상이하게 구성될 수 있다. SIMD 어레이 프로세서는 처리 요소 P(i, j)로 된 어레이(12)와 이 처리 요소 P(i, j)로 글로벌 인스트럭션 스트림(stream of global instrustions)을 송출하는 어레이 콘트롤러(14)를 포함한다. 제1도에는 도시되지 않았지만, 이 종래의 실시예는 한 번에 단일 비트로 동작하는 처리 요소를 구비하며, 이 처리 요소와 연관된, 메모리내의 구획(a partition)인 연관되는 저장 블럭(associate there a block of storage)을 구비한다. 이 처리 요소는 소위 동서남북(North, East, West, South ; NEWS) 네트워크에 의해 양방향 비트라인으로 각 인접 요소에 접속된다. 따라서, 처리 요소 P(i, j)는 각각 동서남북 방향으로 처리 요소 P(i, j+1), P(i, j-1), P(i+1, j) 및 P(i-1, j)에 접속된다. 이 전형적인 실시예에서, NEWS 네트워크는, 북쪽 및 남쪽 에지가 양방향으로 상호접속되고 서쪽 및 동쪽 에지가 마찬가지로 상호접속되도록 자신의 에지에서 도우넛 모양으로(toroidally) 접속된다. 데이터가 프로세서 어레이로 및 로부터 입출력될 수 있도록 콘트롤러-어레이 데이터 버스(a controller-array data bus)(26)가 NEWS 네트워크에 접속된다.
도시된 바와 같이 이 콘트롤러-어레이 데이터 버스는 어레이의 동서 경계에 접속된다. 도우넛형 동서 NEWS 접속부에 접속되는 양방향 트리스테이트 드라이버(bidirectional tristate drivers)에 의해 남북 경계에도 대신에 또는 추가로 접속될 수 있다. 이후에 설명되는 바람직한 실시예에서와 같이, 만약 이 실시예에서 치리 요소의 수가 예시된 16×16 대신에 32×32이면, 1024개의 처리 요소는 이 종래의 기술로 달성된다. 예시된 도면에서, 단일 라인은 단일 비트 라인을 표시하며, 기능적 요소를 접속하는 이중 라인은 다수의 접속 라인 또는 버스를 나타내는데 사용된다.
이 종래의 실시예로부터에서, 어레이 콘트롤러는 인스트럭션 버스(18)를 통해 처리 요소에 병렬로 인스트럭션을 송출하고, 행 선택 라인(20) 및 열 선택 라인(22)을 통해 행 선택 및 열 선택 신호(row select and column select signals)를 송출한다. 이들 인스트럭션은 처리 요소로 하여금 저장장치로부터 데이터를 로드하여 처리한 후에, 다시 저장장치에 저장하게 한다. 이러한 목적을 위하여, 각 처리 요소는 메인 메모리의 비트 슬라이드(a bit slice)(섹션 혹은 버퍼)를 액세스한다. 따라서 프로세서 어레이의 메인 메모리는 1024개의 처리 요소 어레이에 대해 1024개의 구획 슬라이스(partition slices)는 논리적으로 분리된다. 이것은, 각 처리 요소가 1비트 폭이라면, 최고 32비트 워드에 동등한 정도가 전송 단계에서 한번에 저장장치로 및 로부터 전송될 수 있음을 의미한다. 판독 또는 기입 동작을 수행하기 위하여, 메모리는 어드레스 버스(an address bus)(24)를 의해 어드레스 라인에 공급되는 인덱스 어드레스(an index address)에 의해 어드레스 되며, 판독 또는 기입 인스트럭션은 각 처리 요소에 병렬로 공급된다. 판독 동작 동안, 행 및 열 선택 라인상의 행 및 열 선택 신호는 해당 동작을 수행할 처리 요소가 어느 것인가를 확인한다.
따라서, 설명된 실시예에서, 어레이가 32×32일때 메모리로부터 선택된 행내의 32개의 처리 요소로 단일의 32비트 워드를 판독할 수 있다. 처리 요소는 한 비트 폭인 슬라이스 또는 메모리 블럭(i, j)과 연관된다. 슬라이스 혹은 메모리 블럭은 연관되는 개개의 처리 요소와 일대 일 관계로 논리적으로 연관되며, 다른 칩상에서 물리적으로 분리될 수도 있으며, 통상적으로는 물리적으로 분리된다. 이후에 설명되는 종류의 단일 칩상에 프로세서 어레이 및 적절한 메모리로 본 발명에 따른 피킷이 제조될 수 있으나, 이러한 종래의 아키텍처로 설명된 프로세서 어레이가 어떻게 제조될 수 있는지는 알 수 없다.
종래 실시예의 처리 요소 P(i, j) 자체는 캐리(carry)를 포함하며 제각기 단일 비트의 정보(a single bit of information)를 저장할 수 있는 입력 및 출력 레지스터(input and output registers)를 구비한 산술 및 논리 장치(Arithemetic and logic unit ; ALU)을 포함하는 것으로 이해되어야 한다. ALU의 입력 및 출력에 접속되며, 개개의 처리 요소 P(i, j)와 연관된 메모리 슬라이스(i, j)의 양방향 데이터 포트에 또한 접속되는 멀티플렉서가 존재한다.
또한 개별적인 인스트럭션 및 데이터 버스가 존재하며, 어레이 콘트롤러는 어레이에 의해 수행될 처리를 한정하는 마이크로코드가 데이터 버스(30)와 어드레스 및 제어 버스(31)를 사용하여 호스트(28)에 의해 로드되는 마이크로 코드 저장장치(a microcode store)를 갖는다. 일단 호스트(28)에 의해 어레이 콘트롤러의 동작이 개시되면, 마이크로코드의 순차는 어레이 콘트롤러(14)내의 마이크로코드 저장장치에 접속된 마이크로코드 콘트롤 유닛(microcode control unit)에 의해 제어된다. 어레이 콘트롤러의 ALU 및 레지스터 뱅크(register bank)는, 메모리 어드레스, 루프 계수(loop conuting), 점프 어드레스 계산(jump address calculation) 및, 어레이 콘트롤러의 어드레스 버스상의 출력인 범용 레지스터 동작(general purpose register operation)의 발생시에 사용된다. 어레이 콘트롤러는 행 및 열 마스크 코드(row and column operation codes)를 디코드하는 마스크 레지스터(mask registers)를 또한 구비하며, 특정의 동작 코드(specifie operation codes)가 인스트럭션 버스를 통해 처리 요소로 보내진다. 이 실시예에서, 어레이 콘트롤러는 콘트롤러내이지만 기능적으로는 호스트 콘트롤러 데이터 버스와 콘트롤러 어레이 데이터 버스 사이에 데이터 버퍼(a data buffer)를 가질 수 있다. 이 버퍼로부터 제어 저장장치(control store)내의 마이크로코드의 제어하에 프로세서 어레이로 데이터가 로드되며, 그 역으로 동작한다. 이러한 종래 시스템의 더욱 상세한 설명은, 앞서 언급된 예들, 특히, 테일러의 SIMD 어레이 프로세서, U.S.S.N. 07/19,332를 참조함으로써 발견될 수도 있다.
전술한 종래 예의 고찰은 본 명세서에 설명된 본 발명의 바람직한 실시예에 비교될 수도 있다. 제2도는 기본적인 피킷 유닛(100)을 예시하며, 한 클럭 사이클내에 한 바이트의 정보를 처리하기 위해 처리 요소에 결합된 로컬 메모리(102)를 갖는 결합된 처리 요소(a combind processing element) ALU(101)를 포함한다. 예시된 바와 같이, 피킷 유닛은 실리콘 베이스 칩 또는 피킷 칩(silicon base chip or picket chip)상에 측면(도면중에서 왼쪽과 오른쪽)에 대해 이웃을 갖는 선형의 피킷 어레이(a linear array of pickets)로 형성되어, 실리콘 베이스 칩상에서 다수의 로컬 메모리를 갖는 피킷 처리 어레이가 형성되며, 각각의 바이트 폭 처리 데이터 흐름에 대하여 하나의 피킷 처리 어레이가 논리적 행으로 또는, 오른쪽 및 왼쪽의 양방향으로 데이터를 통과시키는 인접 통신 버스(neighbor communication busses)를 갖는 선형 어레이(a linear arrary)로 배열된다. 피킷 칩내의 피킷의 집합은 기하학적 순서로 배열되며, 바람직하기로는 칩상에 수평으로 배열된다. 제2도는, 각 피킷의 처리 요소와 메모리간의 통신 경로를 포함하여 다중 메모리 및 데이터흐름을 갖는, 피킷 칩상의 피킷 어레이중 두개의 피킷에 대한 전형적인 구현을 나타낸다. 본 바람직한 실시예에서, 어레이의 처리 요소와 일대일 관계를 갖는 메모리간의 데이터 통신 경로는 바이트 폭이며, 더 멀리 떨어져 있는 피킷 프로세서와의 통신을 위해 "슬라이드(slide)"로 왼쪽 또는 오른쪽의 인접위치를 가로지른다.
"슬라이드"는, 송신되는 메시지에 대하여 투명하지 않으면 통상 정보를 수신할 수 있는 피킷 어드레스 위치(a picket address location)를 통해 메시지가 도달하여 그를 수신하는 가장 인접한 액티브 인접위치(nearest active neighbor)에 도달할때까지 비-인접 위치(a non-neighbor position)로 단일의 사이클내에 정보를 송신하는 수단으로서 정의될 수도 있다. 이 "투명성"은 제2도에서 B 레지스터(104)를 적절히 설계함으로써 얻어진다. 이때, 상기 B레지스터는 비투명 모드에서 내부로 들어오는 어떤 데이터도 래치하며, 투명 모드에서 다음 클럭 싸이클까지 입력 데이터를 래치하거나 정지시키지 않고 출력을 통해 단순히 통과시킨다. 따라서, 슬라이드는 "턴 오프된(turned off)" 피킷을 가로질러 비-인접 위치로 정보를 송신함으로써 기능한다. 즉, 피킷 "A"가 멀리 떨어져 있는 피킷 "G"에게로 정보를 전송하기를 원한다고 하자. 이 싸이클에 앞서, 중간에 삽입되어 있는 피킷, 즉, "B"내지 "F" 피킷을 턴 오프하므로써 투명하게 만들어진다. 그리고 나서, 다음의 단일 사이클내에 "A"는 자신의 메시지를 오른쪽으로 송신하며, 턴 오프되어 투명한 "B" 내지 "F" 피킷을 통과하여, 턴 온되어 있는 "G"가 메시지를 수신하게 된다. 일반적인 "슬라이드"의 사용시에 정보는 선형적으로 격자를 가로질러 전송되지만, 슬라이드 접근법은 2차원 메쉬와 함께 또는 다중 차원 어레이로도 또한 동작할 수 있다.
본 발명에 따른 바람직한 실시예에서, 처리 요소의 액세스(access)는 비트 직렬이 아니라 바이트 직렬로 동작한다. 각각의 프로세서는 로컬 메모리 블럭 또는 그의 연관된 구획 또는 페이지(page)를 액세스하지 않고 자신과 결합된 메모리를 액세스한다. 1비트 대신에 1캐릭터 폭 또는 다수 캐릭터 폭의 버스가 제공된다. 하나의 클럭 사이클내에 1비트 대신에 1바이트(또는 미래의 시스템에서는 1캐릭터 바이트, 다수 바이트로 성능을 배가할 것으로 기대됨)의 정보가 처리된다. 따라서, 연관된 메모리의 폭에 정합시키기 위하여 각 피킷 처리 요소와 메모리간에 8, 16 또는 32비트가 흐를 수 있다. 본 발명의 바람직한 실시예에서, 각 피킷 칩은 32K 바이트의 8(패리티를 가지면 9) 비트 폭 메모리를 구비하며 바람직하기로는 선형 어레이의 피킷 노드당 각각 32K 바이트의 저장장치를 갖는 16개의 피킷을 구비한다. 본 발명의 바람직한 실시예에서, 각 연관 메모리는 CMOS로 구현된 DRAM이고, 1캐릭터 바이트는 9비트(셀프 첵킹(self checking)을 실시하는 8비트 캐릭터로서 기능함)이다.
피킷간의, 처리 요소와 그와 연관된 메모리간의 병렬 경로 바이트 폭의 버스 데이터 흐름(parallel path byte wide data flow)은 종래 시스템의 비트 직렬 구조에 비해 실질적으로 개선된 것이지만, 이러한 성취 후 증가된 병렬화가 새로이 성취된 아키텍쳐의 의미를 이해하게 됨에 따라 해결책이 요구되는 몇개의 추가적인 문제점을 초개하였음을 또한 인정하게 된다. 중요한 해결 방안이 본 명세서에서 설명된다.
인정되는 특징은, 앞서 도면을 참조하여 설명되었던 왼쪽 및 오른쪽의 인접위치로의 전송 및 슬라이드 메카니즘에 더불어, 2바이트 폭(double byte wide)의 브로우드캐스트 버스(a broadcast bus)가 또한 제공되어 모든 피킷이 동시에 동일한 데이터를 인식할 수 있다는 것이다. 피킷 제어 및 어드레스전달은 이 브로우드캐스트 버스상으로 또한 전송된다. 세트 연관 동작(setassciation operations) 및 다른 비교 혹은 동기식 산술 동작(other comparison or synchronous math operations)을 수행할 때, 비교 데이터를 공급하는 것도 바로 이 버스이다.
단일의 인스트럭션 스트림의 제어하에 피킷 데이터 처리 요소내의 처리를 제공하는 고도의 병렬 데이터 구조를 갖는 태스크는 인공 지능 패턴 정합, 다중-센서 최적 할당에서의 센서 및 트랙 합병(track fusion), 컨텍스트 검색(context searching) 및 영상 처리(image processing)에서의 응용을 포함한다.
그러나, 현지 가능한 이들 응용중 다수는, 단일의 클럭 시간하에 비트가 직렬로 처리되기 때문에 SIMD 프로세스에서 사용되지 않았다. 예를 들면, SIMD 머신의 전통적인 1비트 폭 직렬 처리 요소는 각 프로세서 사이클 동안에 한 비트의 가산 동작(ADD operation)을 실행하며, 32비트 병렬 머신은 한 사이클내에 32비트를 실행할 수 있다.
처리 요소당 32K 바이트의 구성은 종래의 SIMD 머신이 제공하는 것보다 각 처리 요소에 대하여 논리적으로 이용가능한 훨씬 더 많은 메모리를 이용케 한다.
칩상의 핀 수(pin count)는, 칩의 안팍으로 통싱되는 데이터가 최소로 유지되기 때문에 작은 수로 유지된다. 온-칩 DRAM 메모리는 통상의 메모리인 CMOS 어레이로서, 메모리 어레이에 더하여 열 디멀티플렉싱(column demultiplexing)을 제거하고, 데이터 흐름을 병렬로 하는 메모리 어레이를 판독하는 행 어드레스를 제공하므로써 "행-열(row-column)"액세스를 지원한다.
메모리는, 데이터와 더불어 "트리-비트(tri-bits)" 혹은 "트리트(trit)"를 포함할 수 있어, 통상의 2진수 대신에 논리 1, 논리 0 또는 돈 케어(don't care)로 인식되는 3가지 상태가 존재한다. 정합 필드(a match field)내의 돈 케어는 논리 1 또는 논리 0와 정합한다. 트리트는 저장 어레이내의 연속된 저장 위치에 포함된다. 마스크(masks)는 메모리내에 저장되는 데이터의 또 다른 형식으로서, 피킷 처리 요소의 마스크 레지스터(mask register)로 향한다.
저장 어레이는 커맨드(commands)를 포함할 수 있고, 이것은 한 피킷이 다른 피킷과 상이한 동작을 할 수 있게 한다. 반드시 모든 피킷일 필요는 없으나 대부분의 피킷이 관련되는 동작 동안에 개개의 피킷에 대한 온-칩 제어는, SIMD 동작에 유일한 실행을 가능하게 한다. 제공된 하나의 간단한 제어 기능은, 상태출력(status output)이 특정의 조건에 일치하는 임의 피킷내에서 유보된 동작의 제어이다. 따라서, 영이 아닌 조건(non-zero condition)은 도우즈(doze)를 의미할 수도 있다. 도우즈는 동작을 중지하고 피킷을 인액티브이지만 인식 가능한 상태(inactive but aware status)로 변환하는 조건이다. 제공된 또 다른 커맨드는 피킷내의 조건에 따라 또는 슬라이드 동작에 앞서 버스에 제공되는 커맨드에 따라 메모리에 대한 기입을 금지하거나 인에이블 하는 것이다. 저장 어레이가 명령을 포함하도록 하는 세번째의 새로운 방법은 각 피킷내 명령 디코드 로직에 2경로를 제공하는 것이다. 하나는 브로드캐스트 버스로부터이고 정상적인 SIMD 동작을 위해 사용된다. 반면, 추가 경로는 피킷 자체의 로컬 메모리로부터 로드되는 피킷의 데이터 흐름 레지스터들중의 하나로부터이다. 그래서, SIMD 콘트롤러가 "로컬 동작을 하라(do local operation)"는 명령을 브로드캐스트할 때, 각 피킷에 의해 수행되는 동작은 어느 것이든 로컬 레지스터내에 있는 것이며, 각 피킷마다 근본적으로 서로 다를 수 있다. 각 피킷을 8비트 또는 더 큰폭으로 만드는 것은 단순한 한 싸이클 동작으로 이러한 로컬 명령들은 로드하고 저장하도록 함으로써 이러한 능력을 향상시킨다고 볼 수 있다.
제각기 32K 바이트 메모리를 갖는 16개의 강력한 피킷을 피킷 칩에 적용하므로써, 단지 64개의 칩만으로 1024개의 프로세서와 32768K 바이트의 메모리를 제공한다. 이 피킷 어레이는 세트 연관 메모리를 포함한다. 본 발명은 또한 벡터 처리는 물론 수치 중심의 처리 영상 분석에 유용하다. 이러한 강력한 피킷 처리 어레이는 오늘날 단지 2개의 컴팩트 카드(cards)상에 패키지될 수 있다. 수천개의 피킷은 보다 휴대하기 용이한 저 전력 패키지내에 적절히 패키지될 수 있으며, 영상 처리 응용으로 하여금 최소의 지연으로 또는 비디오 프레임 시간(video frame time)내에, 예를 들면, 상당한 패이로드를 고려하지 않는 항공 비행 동안에 수행될 수 있게 한다.
이러한 피킷의 파워는 인접하게 팩된 대형 연관 메모리 시스템을 사용할 수 있게 하며, 시스템 설계자가 새로운 시스템의 사용에 익숙해진 후 이 처리 파워(processing power)를 다양한 응용분야에서 사용할 수 있게 한다.
제3도는 완전 연관 메모리로 불리워지는 것을 도시하며, 이 완전 연관 메모리는, 연관이 요구되었을때 비교값(a compare value)이 정합 데이터를 갖는 모든 메모리 위치(memory locations)에 제공되고 정합 데이터를 갖는 모든 메모리 위치는 그들의 정합 라인(match lines)(비교의 일치를 표시하는 출력 라인)으로 동시에 응답한다. 연관 메모리 자체는 당 분야에서 공지이다. 메모리와, 검색을 수행하기 위해 바이트 전송(byte transfers)을 가지는 처리요소의 병렬 피킷을 사용하는 본 명세서에 설명된 시스템에는, 메모리내의 N개의 워드중에서 워드 K를 검색하기 위하여 데이터 입력(an input of data) 및 검색용 마스크(a mask for a search)가 존재한다. 모든 정합하는 피킷은 상태 라인(a status line)을 활성화한 후, 그 다음 별개의 동작으로 제1정합 K를 판독 또는 선택한다. 이 동작은 통상 세트 연관으로 불리며, 전 피킷 메모리를 통하여 연속된워드에 대해 반복될 수 있다. 마찬가지로, 기입은 브로우드캐스트 동작에 의해 성취되며, 이 경우에 활성화된 선택 라인은 참여(participation)를 표시하고 브로우드캐스트 데이터는 모든 선택된 피킷에 카피된다.
또 다른 실시예는, 바람직한 실시예는 아니지만, 제3도에 도시된 형태의 완전 연관 메모리 섹션(a section of fully associative memory)의 포함을 허락하도록 각 피킷에 대해 이용가능한 DRAM 메모리의 양을 감소시킨다. 즉, 512바이트의 완전 연관 메모리가 포함된 경우, 그때 모든 피킷은 검색 색인 세트(a set of search indexes)를 포함할 수 있고, 단일의 동작에서 1024개의 피킷에 512배 하여 동작당 512K의 비교 또는 동작당 1㎲로 초당 512기가(Giga)의 비교를 행한다. 앞에서 논의된 로컬 동작의 가능성으로 이러한 연관 형태의 동작이 현 실무를 넘어서 확장될 수 있다. 각 피킷은 피킷내에 자신의 마스크와 비교 오퍼레이터를 가질 수 있으며, 제어 유닛으로부터 "로컬 동작을 하라"는 브로드캐스트가 있자마자, 각 피킷은 다른 피킷들과는 완전히 다른 비교를 할 수 있는데 동시에 비교를 한다. 이에 의해 피킷내 3진 로직을 구현하지 않고 위에서 논의된 "트리트" 동작을 구현할 수 있다. 확장가능성을 고려할 때 이것은 수 테라(Tera)의 비교 범위까지 확장될 수 있다. 이 실시예는 오늘날의 계산 능력을 훨씬 초과하는 능력으로 정보에 대한 집중적인 검색을 포함하는 연관 태스크(associative tasks)를 강화한 것이다.
상이한 알고리즘 또는 동작의 애플리케이션, 인공지능 및, SIMD 환경에서 시도된 병렬 프로그래밍에 덧붙여, 제2도에 도시된 바와 같이, 메모리 및 바이트 폭으로 결합된 처리 요소를 이러한 연관 동작에 사용한 경우, 매트릭스 곱셈을 포함하는 간단히 병렬화가능한 산술 태스크 및 특정된 메모리 머신에서 수행될 수 있는 다른 태스크 ; 영상 정합 및, 폰 노이만 머신(Von Neumann machine)에서 수행될 수 있으나, 3차원 영상의 예시적인 패턴 정합의 경우 극단적인 병렬화에 적응 가능한 애플리케이션으로 속도가 상당히 증가될 수 잇는 영상 처리 태스크 ; 데이터에 기초한 질의 기능(data based guery functions) ; 인공 지능 분야에서의 패턴 정합, 특히 다양한 형태의 규칙 베이스의 처리에서 발견되는 것처럼 모든 패턴에 브로캐스트된 새로운 사실에 대해 비교될, 서로 다른 패턴들의 어레이가 있을때 ; 네트워크 브리지상(a bridge of a network)의 상대측 사용자에게로 가는 메시지를 신속하게 식별하기 위한 브러지내의 네트워크 제어 ; 게이트 레벨 시뮬레이션(gate lovel simulation) ; 및 VLSI 기본 규칙 위반용 체커(checkers for VLSI ground rules violations)를 포함할 수도 있는 SIMD 환경에서 설명한 칩의 구성(configuration of the chip)을 갖는 머신을 위해 현재 이용가능한 많은 추가의 애플리케이션이 있다.
메모리 뱅크 및 연관된 처리 요소를 이용하는 처리 태스크는 애플리케이션 프로그래머가 새로운 시스템 아키텍쳐의 파워를 이용하기 위해 새로운 발명을 하는 때에 발생하게 된다.
디지탈 시스템의 기술(description)을 유지하는 처리는 피킷(100)당 하나의 게이트 또는 논리 요소에 대하여 어레이를 사용하므로써 향상될 수 있다.
이러한 시스템에서 이러한 처리는, 게이트가 입력으로서 받아들이는 신호의 리스트(a list of signal)로서 각 게이트 기술(gate description)을 할당하고 게이트가 발생한 신호를 명명함으로써 개시된다. 신호가 변할 때마다, 신호의 명칭이 버스(103)을 통해 모든 피킷에 전달되어 기대되는 입력 신호의 명칭과 병렬로 비교된다. 만일 정합되면, 그 피킷내에서 데이터흐름 레지스터 비트내에 신호의 새로운 값을 기록한다. 모든 신호 변화가 기록되면, 모든 피킷은 로컬 제어 워드(a local control word)를 병렬로 판독하며, 이 제어 워드는 현재의 입력 세트를 사용하여 출력을 계산하기 위한 방법인 그들의 데이터 흐름을 나타낸다. 아들 계산은 로컬 동작 모드를 사용하여 병렬로 수행되며, 그 결과는 로컬 게이트로부터의 구 값(old value)과 비교된다. 데이터 흐름 상태 비트에 출력이 변화된 피킷의 모든 이들 게이트를 기록한다. 외부 콘트롤러는 모든 피킷을 질의(interrogate)하여 변화된 다음 게이트를 요청한다. 다음으로, 최초에 설명된 바와 같이, 피킷으로부터 다른 모든 피킷으로 적절한 신호 명칭 및 값을 전달하며, 이 사이클은 더 이상의 어떠한 신호 변화도 발생하지 않거나 처리가 정지될때까지 반복된다.
또 다른 처리는 사전 명칭 검색(a dictionary name search)이다. 명칭은 피킷 메모리(102)에 저장되어 모든 명칭의 첫번째 문자가 브로우드캐스트 데이터 어드레스 버스(103)상의 소정의 브로우드캐스트 명칭의 첫문자와 비교될 수 있다. 정합하지 않는 모든 피킷은 제공된 제어 특성(control characteristic)으로 턴 오프된다. 다음으로, 두번째 문자가 비교되며, 이러한 비교 및 턴오프 처리는 어떤 액티브 피킷 유닛도 남아 있지 않거나 워드의 끝(the end of the word)에 도달할때까지 연속된 문자(캐릭터)에 대하여 반복된다. 이 시점에서, 남아 있는 피킷 유닛이 질의되고, 시퀀서(sequencer)에 의해 소정 데이터의 인덱스(index)가 판독된다.
제4도는 이러한 시스템의 제어 구조를 예시하는 SIMD 서브시스템으로서 구성될 수도 있는 병렬 어레이의 일부로서 단일의 실리콘 칩상에 행으로 배열된, 다수의 병렬 프로세서 및 메모리, 즉, 피킷 유닛의 기본적인 피킷 구성을 도시한다. 또한 이 도면에는 제어 프로세서 및 고나리 마이크로프로세서(supervisory microprocessor)가 도시된다. 제4도내에는, 제4도내에 피킷 어레이로 명명된 부분에 도시된, 동일한 칩상의 메모리 및 병렬 처리 요소 로직이 예시되어 있다. 각 메모리는 n비트 폭이며, 바람직하게는 언급된 바와 같이 1캐릭터 폭인 8(9) 비트 폭이지만, 개념적으로는 또한 다수 바이트 폭으로 된 워드 폭 메모리(a word width of multiple bytes wide memory)를 갖는다. 따라서, 병렬 피킷 처리 요소의 메모리 부는 8(9) 비트 폭이 바람직하며, 또 다르게는 16 또는 32비트 폭이 바람직한다. 현재의 CMOS 제조 기술에 있어서는, 각 피킷 처리 요소로 8비트 또는 1캐릭터 폭의 연관 메모리(셀프 첵킹 비트를 포함하는 9비트 폭의 바이트)를 사용하는 것이 바람직하다. 이 메모리는, ALU, 마스크 레지스터(마스킹용 A 및 Q) 및 래치(104)(제4도의 SR)는 물론, 제2도의 피킷 다이어그램에 더욱 상세히 도시되어 있는 상태 레지스터(107) 및 데이터 흐름 레지스터 A(105)(제4도의 DF) 및 Q(106)을 포함하는, 결합된 처리 요소와 일대일로 직접 연관된다. 칩 자체상의 다수 비트 폭 DRAM 메모리와 그의 처리 요소간에 직접적으로 일대일 연관되기 때문에, 각 피킷 프로세서의 DRAM 및 로직은, 상호접속 네트워크를 경쟁해야 하는 어떤 부담도 갖지 않는다.
제4도에서, 슬라이드 B 레지스터 래치(SR)(104)가 메모리와, 처리 요소의 연관된 ALU 로직 사이에 논리적으로 위치되며, 래치는 본질적으로 피킷 어레이를 따라 각 처리 요소에 대한 결합 포트(a coupling port)가 됨이 주목된다. 각 피킷 칩은, 피킷 제어와의 통신을 위해 일렬로 배열된(직선의 버스로 도시됨) 다수의 병렬 피킷 처리 요소를 포함한다. 벡터 어드레스 버스는 메모리에 공통이며, 데이터 벡터 어드레스 레지스터는 어떤 데이터가 각 메모리로 전달되는가를 제어한다.
제4도는, 본 발명의 바람직한 실시예의 경우 IBM사의 PS/2 시스템으로서 구성된 인텔사의 386 마이크로 프로세서인, 서브시스템 콘트롤러를 구비한 메인 또는 마이크로프로세서 카드 MP와, 이 서브시스템 콘트롤러를 통해 글로벌 인스트럭션이 보내지는, 인스트럭션 시퀀서(402) 및 이 인스트럭션 시퀀서에 의해 호출된 특정의 마이크로코드를 실행하는 실행 제어장치(403)에게 인스트럭션을 제공하는 기성 루틴 프로세서(a canned routine processor ; CRP) 사이의 상호접속을 도시한다. 이 인스트럭션 시퀀서는 기능면에서 콘트롤러와 유사할 수 있다. 그러나, 기성 루틴 프로세서(CRP)내에는 또한, (미도시된) 로컬 레지스터 ALU와 함께, 피킷 어레이(406)내의 모든 피킷으로 전달되는 모든 어드레싱을 위한 기초(basis)를 제공하는 로컬 레지스터(405)가 제공된다.
이런 식으로, 어드레스 산출은 피킷 자원(resources)을 사용하지 않고 또는 상상컨대 피킷 실행 사이클을 사용하지 않고 하나의 ALU내의 모든 피킷에 대하여 수행된다. 이러한 주용한 추가기능은, 수행되어야 하는 특정 태스크에 대해 오우즈, 금지 및 다른 제어 기능을 허락하고 임의의 전달된 인스트럭션 또는 데이터 기능으로부터 피킷이 분리될 수 있게 하면서, 피킷 어레이에 제어의 융통성을 더해준다.
인스트럭션 시퀀서(402)는, 피킷 어레이내에 포함된 데이터의 SIMD 처리를 인에이블시키기 위해, 메인 프로그램 마이크로프로세서 MP와, 기성 루틴 프로세서 CRP 실행 시간 라이브러리(408)의 기성 루틴에 의해 결정된 SIMD 인스트럭션 시퀀스하에서 실행하기 위해 피킷 어레이로 로드된 마이크로코드(407)를 전달한다.
서브시스템 인터페이스를 통해 마이크로프로세서 MP에 제공된 인스트럭션은 마이크로프로세서 MP의 서브시스템 콘트롤러에 의해 마이크로프로세서로 보내는 처리 시작(Start Process), 관찰 기입(Write Obser.) 및 결과 판독(Read Result)을 포함할 수 있는 고급 처리 커맨드(high level process commands)일 것이다. 이 마이크로프로세서는 제4, 5, 6 및 도에 도시된 서브시스템 장치에서 메인 시스템 또는 제어 프로세서로 생각될 수 있다. 이 장치는 또한 키보드 및 디스플레이 유닛과 같은 부가의 주변 입력 장치(도시되지 않음)를 갖는 독립된 유닛일 수 있음이 이해된다. 이러한 독립 구성에서, 시스템 MP는, 제7도에 도시된 라인을 따라 삽입된, 시퀀서 카드(기성루틴 프로세서를 구성함) 및 프로세서 어레이 카드를 포함하는 카드를 갖는 상업용 PS/2로 생각될 수 있다. 루틴 라이브러시(411)는, CALL(,) ; Kalman, Convolve, 및 Nav. Update와 같은 전반적인 처리 제어용 루틴 시퀀스를 포함할 수 있다. 이러한 루틴의 선택은 사용자 프로그램을 통해 이루어지며, 따라서 전반적인 처리는 외부 호스트의 제어 또는 MP에 위치된 사용자 프로그램(412)의 제어하에서 이루어질 수 있다. MP 메모리내에는 병렬 피킷 프로세서 시스템으로 및 으로부터의 데이터 전송을 위해 데이터 버퍼(413)가 제공된다. 인스트럭션 시퀀서(402)는 기성 루틴 실행 시간 라이브러리 메모리(408)내에 위치하는 기성 루틴 물론 MP로부터의 제어 스트림(control stream)을 실행하도록 구성된다. 이들 루틴중 몇몇은 기성 루틴 실행 시간 라이브러리(408)에 의해 기성 루틴으로부터 제공된 CALL(,), Load Block, Sin, Cos, Find, Min, Range Comp 및 매트릭스 곱셈(Matrix Multiply)을 포함한다.
CRP 내에는 또한, Load, read, Add, Multiply 및 Match 기능과 같은 저급 기능의 실행 제어용 마이크로코드(407)가 위치된다.
각 처리 유닛에 대하여 외부 FOR/MEXT 제어가 제공되는 것이 바람직하다. 또한 결정론적 부동소수점 바이트 정규화 실행(deterministic floating point byte normalize implomentation)이 제공된다.
본 발명의 실시예에서 제공된 시스템의 매크로 개발(macro development)을 위한 결정론적 접근방법을 사용하므로써 피킷 그룹화 및 그룹 제어(picket grouping and Group wpdj)가 가능해졌다. 로컬 도우즈 기능은 각각의 피킷 처리 변동을 수용하도록 제공된다.
사용자 프로그램이 프로세서 어레이에 의한 실행을 요구하면, 원시 커맨드(primitive commands), 어드레스 및 전달 데이터가 피킷 프로세서 어레이에 제공된다.
시스템의 각 부가 이용하는 특정 기능은 수행되어야 하는 태스크에 의해 결정되며, 사용자 프로그램을 컴파일하는 동안 할당된다.
서브시스템의 융통성은 보다 일반적인 문제로 설명될 수 있다. 예를들면 매트릭스 곱셈…|x|*|y|=|z|을 생각해 보자.
이것은 다음과 같이 설명된다.
이것은 이하에서 통과의 수(the number of passes)를 나타내는 항목에 인접하는 구문(statement)에 의해 풀리며, 통과당 클럭 사이클의 수(the number of clock cycles per pass)가 예로서 나타내어 제공된다.
cycles/
주의 *고정 소수점(4바이트)/부동 소수점(1+4바이트)
이상의 실시예를 관찰하므로써, 구문 08에 의해 식별된 태스크는 약 98%의 싸이클 시간을 요구함을 알 수 있다. 따라서, 이 태스크는 병렬 피킷 프로세서의 SIMD 구조(SIMD organization)에 할당된다. 다른 처리는 단지 2%의 싸이클 시간이 걸리며, 마이크로프로세서내의 아키택쳐내에 유지된다.
따라서, 이러한 매트릭스 곱셈의 실시예의 고찰은 MP(마이크로프로세서), CRP(기성 루틴 프로세서), LR(로컬 프로세서), 또는 피킷 어레이중 어느 것에 실행(각 구문이 컴파일될때 특정 시스템 위치에서 실행됨)이 할당된다.
이상 매트릭스 곱셈의 실시예에서, 구문 01은 메인 프로세서 MP에 할당되며, 구문 02, 05, 10, 11, 13, 14, 15 및 17은 로컬 레지스터 LR에 할당되며, 구문 03, 04, 06, 12, 16, 18 및 19는 기성 루틴 프로세서 CRP내에서의 실행을 위해 할당되며, 그밖에 시간이 소모되는 매트릭스 처리는 구문 08을 피킷 어레이에 할당하므로써 단일 인스트럭션하에서의 실행을 위해 피킷 어레이에 할당된다.
제5도는 다수의 병렬 피킷 프로세서를 구비하는 다수의 병렬 피킷 프로세서 시스템(510)을 도시한다. 다수의 타겟 추적(multiple target tracing), 센서 및 데이터 합병(sersor and data fusion), 신호 처리, 인공 지능, 위성 영상 처리(satellite image processing), 패턴/타겟 인식(pattern/target recognition) 및 리드솔로몬 인코드/디코드 동작(Reed Solomon encode/decode operations) 등과 같은 응용을 위해, 본 발명에 따르면, 1024개의 병렬 프로세서를 갖고 각 1024개의 프로세서에 대하여 2개 내지 4개의 SEM E 카드(511)(본 명세서에서는 시스템당 4개의 카드로서 나타내어짐)를 구비한 SIMD 시스템과 같은 바람직한 실시예로 구성될 수 있는 시스템이 생성된다. 개개의 카드(512)는 웨지로크 슬라이드(wedgelock slide)(514)를 구비하는 선반 장착 시스템 칸막이(rack mount system compartment)(513)에 삽입가능하며, 이 카드에는, 커버(517)가 닫혔을때 이 커버가 초당 약 2빌리온(billion)개의 동작을 수행할 수 있는 성능 및 32 또는 64메가 바이트의 저장장치를 갖는 탑재가능 시스템을 선반내에 효과적으로 수용하도록 하는 삽입/배출 레버(insertion/extraction lever)(516)가 제공된다. 시스템은 컴팩트형으로, 다수의 피킷 어레이가 다수의 카드의 상호접속을 허용하는 로직을 갖는 후방패널 보드(518)에 플러그된다. 32M 바이트 저장장치를 갖는 프로세서는 4개의 SEM E 카드상에 형성되며, 시스템은 단지 30파운드의 무게를 가진다. 전력은, 도시된 바와 같이, 전원 공급 장치(519)에 의해 제공된다. 공기 냉각식 프로세서용 필요 전력(power)은 단지 약 280와트 정도일 것으로 평가된다.
각 SIMD 시스템은 연관된 메인프레임 컴퓨터와의 또는 그렇지 않으면, 외부 회로와의 패널 어댑터 통신용 두개의 I/O포트(520)를 갖는다. 제각기 4개의 로직 페이지(4logic pages)로 구성되며 표준 모듈러 항공 공학용 패키지법(standard modular avionics packaging) 및 외부 메모리에 대한 접속용 버스 구조(예를들면, PI, TM 및 IEEE 488 버스)를 사용하는 예시된 다수의 병렬 피킷 프로세서에 있어서, 이 프로세서는 I/O 포트를 통해 미션 프로세서(a mission processor)의 메모리 버스에 접속될 수도 있으며, 미션 프로세서 메모리 공간의 확장으로서 고찰될 수도 있다.
1024개의 병렬 처리 요소를 구비하는 예시된 다수의 병렬 피킷 프로세서에 있어서, 각각의 프로세서는 32kbyte 로컬 메모리를 가지며, 피킷 병렬 프로세서에 연결된 경로는 8 비트 또는 캐릭터 폭(9비트)의 병렬형이다.
각 피킷내의 프로세서는 다른 이웃하는 프로세서와의 데이터 교환을 행하며, 크로스바(a crossbar)가 바람직하지만 다른 방법으로는 슬라이드 크로스바, 셔플 네트워크(a shuffle network), 베이스 3 N-큐브(Base 3 N-Cube) 또는 베이스 8 N-큐브의 후방패널 상호접속 네트워크를 통해 페이지간의 데이터 교환을 행한다.
시스템의 독립된 피킷 프로세서는 4개의 카드중 2개의 카드 팩(pack)내에 포함되며, PS/2 마이크로프로세서는 하나의 카드상에 포함되며, 기성 루틴 프로세서 시퀀서는 제6도 및 제7도에 개략적으로 도시된 시스템을 포함하는 다른 4개의 카드상에 포함된다. 개개의 피킷(100) 또는 피킷 카드(512)는, 래치 아키텍처(104)와, 시퀀서 카드 CRP(703)의 실행 제어에 결합된 로컬 레지스터(405)에 의해 제어되는 데이터 조건에 기초하여 동작을 시작하거나 또는 동작으로부터 제외될 수 있도록, 기성 루틴 프로세서 CRP로 구성될 수 있다. 따라서, 피킷 프로세서는 부동소수점 연산과 연관되는 정렬 및 정규화 동작(alignment and normalization operations)을 독립적으로 수행할 수 있다.
프로세서는 본원에 기술되는 바와 같은 공통 시퀀서(common sequencer)에 의해 병렬 제어된다. 시퀀서 카드(703)는 피킷 프로세서의 콘트롤러 CRP를 포함하며, 피킷 프로세서로 하여금, 종래의 비트 직렬 처리에 유사한 바이트 순차 형식으로도 SIMD 프로세서 어레이상에서 수행되도록 코드화된 단일의 인스트럭션 쓰레드(a single thread of instructions)을 수행하게 할 수도 있다.
콘트롤러는 세개의 층(three layers)을 가진다. 피킷에 대한 미아크로-제어는 현대의 현대의 프로세서에 유사하게 마이크로코드화되며, 모든 피킷에 병렬로 전달된다. 마이크로-제어 및 피킷은 동일 클럭 시스템 CLK로 동기화되므로 시퀀서에 의해 제어되는 기능이 동일한 클럭 시간내에 수행될 수 있다. 마이크로-제어 시퀀서로의 커맨드 공급(feeding)은 기성 루틴 프로세서의 기능이다.
이 시퀀서 카드(703)는 대부분의 기능동안 루프 제어 커맨드(loop control command)를 실행하는 하드와 이어드 콘트롤러(hardwired controller)이며, 반복적으로 새로운 마이크로-제어 순차를 시작한다. 기성 루틴 라이브러리(408) 및 루핑 기능(looping function)을 갖는 이 콘트롤러는 바람직하게 전송된 피킷을 유지하며 한정된 커맨드(command bound)를 유지하지 않는다. 기성 루틴 프로세서 콘트롤러 CRP는 메인 시스템에 의해 호출되는 대형 매트로 집합(alalge collection of macros)을 포함하며, 이것은 서브시스템에서 일차의 관리용 피킷 콘트롤러로서 작용한다. 이것은 피킷 어레이의 상위 제어 시스템(top control system)이다. 피킷 어레이의 동작을 관리하는 것은 386 마이크로프로세서이다. 주어진 시점에서, 물론 프로세서의 서브세트(subsets)가 제어 흐름에 대해 독립적으로 작용할 수도 있지만, 모든 피킷 어레이는 동일한 인스트럭션을 실행한다.
개개의 반응으로 된 몇몇 변형이 있어서, 프로그래밍이 이용할 수도 있고 프로그램을 컴파일하는 동안 시스템의 제어하에 이루어질 수도 있는, 각 피킷에 대한 바이트 제어 기능(도우즈, 금지 등)에 의한 로컬 자치가 존재한다.
또한, 기술된 바와 같이, 로컬 메모리 어드레싱 자치성(local memory addressing autonomy)이 있다. SIMD 콘트롤러 시퀀서는 사용할 모든 피킷에 대하여 공통된 어드레스를 제공한다. 각 피킷은 데이터 종속 메모리 액세스(data dependent memory accesses) 능력을 향상시키기 위해 이 어드레스를 국부적으로 증가시킬 수 있다.
또한, 피킷은 로컬 조건에 따라 어레이 동작에 참여하거나 또는 참여하지 않을 수 있다.
이러한 특징으로 인해, 하나 이상의 몇개의 그룹에 피킷을 할당하는 수단을 각 피킷에 제공하므로써, SIMD 프로세서에 그룹 개념(concepts of groups)을 도입하는 것이 가능해 졌으며, 구성의 변화가 원형상에 본질적으로 발생할 수 있는 경우 처리는 이들 그룹을 기초하여 진행될 수 있다. 한가지 실시예에서, 어느 한 시점에 단 하나의 그룹 또는 그룹의 조합이 액티브일 수 있으며, 제각기 동일한 SIMD 인스트럭션 스트림을 실행한다. 몇몇 동작은 하나의 피킷 서브세트 또는 그룹과의 동작만을 요구한다. 프로그래밍은 이러한 기능을 이용할 수 있다. 로컬 참여 자치(local participation autonomy)는 이런 방법으로 동작하도록 조절된다. 계산에 참여하는 피킷이 많으면 많을수록 속도가 빨라질 것임이 명백하다.
참여하는 피킷 수를 증가시키는 한가지 방법은 각 피킷으로 하여금 피킷 자신의 인스트럭션 스트림을 수행하게 하는 것이다. 이것은 본질적으로 SIMD내의 MIMD이다. 즉, 동일한 SIMD 머신을 MIMD 시스템으로서 혹은 다른 구성의 머신으로서 구성하는 것이 본질적으로 가능하다. 이것은 피킷을 자신의 인스트럭션 순차에 따라 동작하도록 프로그램하는 것이 가능하기 때문이다.
각 패킷은 자신의 순차를 갖도록 만들어질 수 있으므로, 패킷 레벨에서 매우 간단한 인스트럭션 세트를 디코드하는 것이 가능하며, 이것은 더욱 넓은 로컬 처리를 가능케한다. 이 기능이 최초의 애플리케이션을 발견해낼 가능성이 있는 영역은 복잡한 의사 결졍 분야이며, 간단한 고정소수점 처리는 프로그래머의 또 다른 관심 분야가 될 것이다.
이러한 간단한 프로그램은 피킷 메모리(102)내로 하나의 피킷 프로그램 블럭, 즉, 2K를 초과하지 않는 피킷 프로그램 블럭을 로드하며, 이들은 SIMD 콘트롤러 카드(703)가 특정의 xyz 어드레스에서 시작하는 실행 제어를 통해 로컬 실행을 개시할때 실행될 수 있다. 이것은, 콘트롤러가 다수의 클럭을 카운트하거나 또는 제4도에 도시된 상태 퍼늘(stats funnel ; SF) 레지스터를 모니터하여 태스크 완료 신호(a task complete signal)를 테스트하므로써 계속된다.
상태 퍼늘(제4도의 SF)은 각 피킷에 대해 래치(104)를 이용한다. 각 피킷은 피킷의 상태 조건을 반영하도록 로드될 수 있는 래치(104)를 구비한다. SIMD 콘트롤러는 어레이 상태 라인(an array status line)을 모니터하므로써 이들 래치(피킷당 하나)내의 총 값(collective value)을 테스트할 수 있다.
이 어레이 상태 라인은 각 피킷 상태 래치로부터의 값의 논리 조합(logical combination)이다.
다음의 실시예에서, 500의 범위내에서 250을 초과하는 값, 즉, 수식 250<x⊙≤500을 만족하는 값을 조절하고자 한다고 가정하자. 이때 다음의 루틴은 태스크가 성취되었음을 검출하기 위하여 상태 퍼늘을 이용하게 된다.
If VALUE<500 then TURN YOUR PICKET OFF
STAT<-PICKET OFF CONDITION
IF STAT FUNNEL=OFF then finished…
VALUE<-VALUE-250
Repeat
따라서, 다수의 병렬 피킷 프로세서 구성은 다양한 방법으로 형성될 수 있고 SIMD 프로세서로써 구성될 수 있다. 바람직한 실시예에서 이러한 SIMD 머신은 종래 방법으로 단일의 인스트럭션 쓰레드를 실행하도록 프로그램되며, SIMD 콘트롤러 또는 시퀀서의 일반적인 제어하에서 종래의 프로세서와 유사한 순차적인 형태로 SIMD 프로세서이 어레이상에서 실행하도록 코드화된다. 애플리케이션 레벨에서, 이것은 벡터 및 인스트럭션과 같은 벡터에 의해 달성되며, 벡터는 프로세서내에서 처리될 수도 있고 프로세서를 가로질러 처리될 수 있다. 벡터 인스트럭션은 통상 6 내지 10개의 벡터 인스트럭션을 갖는 매크로인스트럭션(macroinstructions)이 부가될 수 있다.
이러한 바람직한 실시예의 시스템이 제6도에 도시된 병렬 프로세서 서브시스템의 기능적 블럭도에 도시된 바와 같이 개략적으로 나타내어진다.
시스템의 I/O 포트를 통해 호스트 인터페이스 제어(413)에 의해 제어되는 바와 같이, 서브시스템 시퀀서는 처리 요소의 기능을 제어하는 고기능 매트로(high function mactros)를 갖는 SIMD 프로그램과 유사하게 기능한다. 메모리 어드레싱은 8비트, 즉, 바이트 폭의 데이터 흐름을 인에이블하며, 모듈로 8 산술 로직(modulo8 arithmetic logic)이 여러가지 기능(논리적 덧셈, 곱셈 및 나눗셈)에 이용된다. 부동소수점 포맷과, 개별적인 슬립(sleep) 및 도우즈(doze) 모드와 분리된 어드레스를 갖는 자치적 피킷 동작이 제공된다.
서브시스템 콘트롤러의 배열이 제7도에 도시된다. 각각의 프로세서 어레이 카드(512)(본 서브시스템의 도면에는 4개로서 도시되었으나 2SEM E카드를 감소될 수 있음)는 시퀀서 CRP(703)에 결합되며, 이 시퀀서 CRP는 서브시스템 콘트롤러(702)에 결합되며, 이 서브시스템 콘트롤러는 메인 메모리 시스템에 결합되거나, 혹은 본 구성에서 연관된 마이크로채널 버스(706)에 접속되는 칩(705)을 통해 다른 서브시스템에 결합된다. 바람직한 실시예에서, 서브시스템 콘트롤러는 IBM사의 PS/2(IBM사의 등록 상표)를 이용한 범용 마이크로프로세서 유닛이며, 인텔 386 프로세싱 칩 및 4메가바이트 메모리를 채용한다. 퍼스널 컴퓨터 마이크로프로세서 MP(702)는 서브시스템내의 마이크로채널 버스(705, 706)를 통해 시퀀서 카드에 결합된다.
본 발명의 개시된 내용으로부터 다양한 변형 및 변경이 가능할 것이 분명하며, 첨부된 청구범위에 의해 본 발명이 본 명세서에서 특별히 설명된 것 이외의 것으로 실시될 수 있음이 이해된다.
Claims (39)
- 다중 비트 병렬 처리 요소(multi-bit parallen processing element), 로컬 메모리 및 상기 로컬 메모리와 상기 처리 요소를 상호 연결하는 다중 비트 병렬 데이터 경로(multi-bit parallel data path)를 각각 갖는 다수의 피킷들과 ; 상기 다수의 피킷들에 결합되고, 상기 각 피킷에 공통 데이터(common data)와 상기 다중 비트 병렬 처리 요소에 의해 수행되기 위한 연관 동작(associative operation)을 제공하는 상호 연결 경로(interconnection path)를 포함하되, 상기 로컬 메모리는 상기 저장 위치들에 포함된 데이터를 판독하고 기록하기 위해 상기 다중 비트 병렬 처리 요소에 의하여 개별적으로 액세스할 수 있는 시그니피컨트 어드레스가능 저장위치들(significant addressable storage locations)을 가지고, 상기 다수의 피킷들의 상기 로컬 메모리들은 하나 이상의 데이터 세트(data set)를 가지며, 상기 로컬 메모리 각각은 각 데이터 세트의 별개의 부분(distinct portion ofeach data set)을 가지며, 상기 별개의 부분은 상기 어드레스 가능한 저장 위치들에 저장된 데이터를 포함하며, 상기 각 피킷의 다중 비트 병렬 처리 요소는 상기 공통 데이터 및 상기 피킷에 상호 연결된 상기 로컬 메모리 내의 상기 어드레스 가능 저장 위치들 중 하나에 저장된 상기 데이터를 이용하여 상기 연관 동작을 수행하며, 각각의 피킷은 상기 연관 동작의 결과를 제공하는 것을 특징으로 하는 연관 병렬 처리 시스템(associative parallel processing system).
- 제1항에 있어서, 상기 각 다수의 피킷들의 로컬 메모리는 어레이로 배열되고, 각각의 로컬 메모리는 상기 상호 연결 경로에 연결되어 세트 연관 메모리(set associative memory)를 형성하며, 상기 상호 연결 경로는 상기 공통 데이터, 상기 연관 동작, 명령들(instructions), 하나의 피킷 제어 데이터(picket control data) 및 어드레스 전달 전송들(address propagation transfers)을 모든 피킷들에 제공하는 하나 이상의 바이트 폭을 갖는 브로드캐스트 버스(broadcast bus)이고, 상기 처리 요소와 상기 로컬 메모리간의 각각의 피킷 내의 결합(coupling)은 하나 이상의 바이트 폭인 것을 특징으로 하는 연관 병렬 처리 시스템.
- 제2항에 있어서, 상기 다수의 피킷은 실리콘 베이스 칩(silicon base chip)상에 형성되는 것을 특징으로 하는 연관 병렬 처리 시스템.
- 제2항에 있어서, 상기 다수의 피킷들은 어레이로 배열되고, 상기 각 피킷 어레이와 상기 어레이 내의 인접 피킷들(adjacent pickets)간의 데이터 흐름을 위한 경로들(paths)을 가지며, 상기 어레이 내에 인접하지 않는 피킷들(non-adjacent pickets)로 데이터 전송을 하기 위한 슬라이드 수단(slide means)을 갖는 것을 특징으로 하는 연관 병렬 처리 시스템.
- 제4항에 있어서, 상기 슬라이드 수단은 데이터 전송에 대하여 투명(transparent) 한 중간에 삽입되어 있는 피킷들(intervening pickets)을 가로질러 데이터를 전송함으로써 상기 어레이 내에 있는 비인접 피킷으로 단일 클럭 사이클 내에 데이터를 전송하는 것을 특징으로 하는 연관 병렬 처리 시스템.
- 제5항에 있어서, 전송 사이클(transfer cycles)에 앞서서, 제1피킷과 리모트 피킷 중간에 삽입되어 있는 피킷들을 턴오프시킴으로써 상기 중간에 삽입되어 있는 피킷들(intervening pickets)을 투명(transparent)하게 하고, 이어서 상기 전송 사이클에서 상기 슬라이드 수단이 상기 제1피킷으로 하여금 상기 제1피킷 자신의 정보를 상기 리모트 피킷에 있는 상기 제1피킷의 목적지로 전송하게 하는 것을 특징으로 하는 연관 병렬 처리 시스템.
- 제5항에 있어서, 상기 어레이를 선형적으로 가로질러 메시지들을 전송하는 수단이 제공되는 것을 특징으로 하는 연관 병렬 처리 시스템.
- 제1항에 있어서, 상기 각 피킷의 처리 요소는 상기 피킷 자신에 결합된 로컬 메모리를 액세스하고, 문자 폭 또는 문자 다중 폭 데이터 및 명령들이 상기 시스템의 한 클럭 사이클 내에 피킷들 간에 흐르는 것을 특징으로 하는 연관 병렬 시스템.
- 제3항에 있어서, 상기 실리콘 칩은 각각의 로컬 메모리를 위해 적어도 32 킬로바이트의 저장장치를 제공하며, 선형 서브-어레이의 노드(nodes of a linear sub-array)로써 16개의 피킷들이 제공되는 것을 특징으로 하는 연관 병렬 시스템.
- 제3항에 있어서, 상기 각 피킷의 로컬 메모리는 어레이로 구성된 CMOS DRAM이며, 상기 메모리 어레이에 더하여 얼 디멀티플렉싱(column demultiplexing)을 제거하므로써 행-열 액세스(row-column access)를 지원하고, 데이터 흐름이 병렬로 행해지도록 상기 메모리 어레이의 행(row of the memry array)을 판독하는 행어드레스(rowaddress)를 제공하는 것을 특징으로 하는 연관 병렬 시스템.
- 제2항에 있어서, 상기 데이터 요소(data element)에 부가하여, 상기 각 피킷의 로컬 메모리의 어드레스 가능한 저장 위치는 데이터 비트 값(data bit value)을 나타내는 제1비트와, 상기 데이터 비트 값에 대하여 수행된 정합 동작(match operation)이 상기 데이터 비트 값에 관계없는 출력을 제공하는지의 여부를 나타내는 제2비트(asecond bit)를 갖는 트리-비트(tri-bit)르 포함하는 것을 특징으로 하는 연관 병렬 시스템.
- 제1항에 있어서, 피킷에 의한 개별적인 동작에 대한 제어 기능(control function)을 제공하기 위한 피킷 제어 수단이 제공되는 것을 특징으로 하는 연관 병렬 시스템.
- 제1항에 있어서, 상기 로컬 메모리는 다중 비트 이진 연관 저장장치 어드레스(multibit binary reference storage address)를 갖는 것을 특징으로 하는 연관 병렬 시스템.
- 제1항에 있어서, 외부 제어 저장장치(external control store)를 구비한 제어 수단(control means)은 상기 다수의 피켓에 결합되어, 상기 피킷의 상태 출력(status output)이 특정의 조건(specific condition)을 만족시킬때 상기 피킷으로 하여금 인액티브이지만 인식가능한 상태(inactive but aware state)로 들어가게 하는 도우즈 기능(doze function)을 포함하는 다수의 제어동작을 제공하고, 상기 제어동작은 상기 외부 제어 저장장치로부터의 재생후에 상기 피킷에 제공되는 것을 특징으로 하는 연관 병렬 처리 시스템.
- 제1항에 있어서, 각각의 피킷에는 마스크(mask)가 제공되며, 상기 연관 동작은 상기 마스크 및 상기 공통 데이터를 이용하여 상기 로컬 메모리로부터의 상기 데이터 세트의 별개의 부분이 정합하는지를 판정하는 정합 동작(match operation)이며, 상기 정합하는 피킷들은 정합 라인(match line)을 액티브시키는 것을 특징으로 하는 연관 병렬 처리 시스템.
- 제1항에 있어서, 상기 각 처리 요소는 ALU, 마스크 레지스터(mask register), 상기 ALU의 입력에 결합된 래치, 상기 ALU에 결합된 상태 레지스터(status register ; SR) 및 상호-결합되되 적어도 하나는 상기 ALU의 출력에 직접 결합되는 다수의 데이터 흐름 레지스터(data flow register ; DF)를 포함하는 것을 특징으로 하는 연관 병렬 처리 시스템.
- 제1항에 있어서, 상기 로컬 메모리는 다중-비트 폭의 DRAM이며, 상기 각 처리 요소의 로직은 실리콘 베이스 기판(silicon base substrate)상에 형성되며, 상기 로컬 메모리와 그의 처리 요소는 직접 일대일 결합(direct one-on-one coupling)되며, 상기 로컬 메모리는 다중-비트 어드레스(multi-bit address)를 갖는 셀들(cells)을 구비하는 것을 특징으로 하는 연관 병렬 처리 시스템.
- 제1항에 있어서, 상기 각 피킷에는 마스크 레지스터들과 래치가 제공되며, 상기 래치는 상기 상호접속 경로를 따라 상기 각 피킷에 결합 포트(coupling port)를 제공하는 것을 특징으로 하는 연관 병렬 처리 시스템.
- 제1항에 있어서, 상기 다수의 피킷들을 제어하기 위한 외부 제어 시퀀서(external control sequencer) 및 로컬 제어 레지스터 수단(local control register means)을 더 포함하는 것을 특징으로 하는 연관 병렬 처리 시스템.
- 제19항에 있어서, 상기 다수의 피킷은 로컬 자치성(local autonomy)을 갖는 것을 특징으로 하는 연관 병렬 처리 시스템.
- 제20항에 있어서, 상기 시스템은 SIMD 및 MIMD 시스템으로서 구성가능하고, 상기 다수의 피킷들로 이루어진 그룹은 상기 외부 제어 시퀀서에 의해 상기 다수의 피킷들의 로컬 메모리들내로 프로그램된 인스트럭션들에 따라 프로그램가능한 구성(programmable configuration)에 할당되며, 개별 피킷들은 상기 인스트럭션들을 실행하기 위한 로컬 자치성을 갖는 것을 특징으로 하는 연관 병렬 처리 시스템.
- 제19항에 있어서, 버스(bus)를 통해 상기 외부 제어 시퀀서와 통신하며, 상기 다수의 피킷으로 하여금 연관 동작을 수행토록 하는 수단을 구비하는 메인 프로세서 시스템(main processor system)을 더 포함하는 것을 특징으로 하는 연관 병렬 처리 시스템.
- 제19항에 있어서, 상기 외부 제어 시퀀서는 기성 루틴(canned routines)을 포함하는 마이크로코드 메모리(microcode memory)에 결합되는 것을 특징으로 하는 연관 병렬 처리시스템.
- 제22항에 있어서, 상기 외부 제어 시퀀서에는 상기 상호접속 경로에 의해 상기 외부 제어 시퀀서에 결합된 상기 피킷들의 기능을 제어하기 위한 고급 매크로 기능(high level macros)이 제공되고, 상기 각 피킷들에 대한 로컬 메모리의 메모리 어드레싱은 바이트 폭 데이터 흐름(byte wide data flow) 및 모듈로 8산술 로직(modulo 8 arithmetic logic)이 논리적인 덧셈, 곱셈 및 나눗셈 기능을 위해 사용될 수 있게 하며, 상기 피킷들내의 부동소수점 연산과, 개개의 피킷들의 분리 어드레싱을 구비한 개별적인 슬립 및 도우즈 모드(individual sleep and doae mode)가 제공되며, 상기 슬립 및 도우즈 모드는 소정의 동작중에 사전결정된 조건(predetermined condition)에 응답하여 피킷의 동작을 정지시키는 것을 특징으로 하는 연관 병렬 처리 시스템.
- 제22항에 있어서, 상기 메인 프로세서 시스템. 기성 루틴을 갖는 상기 외부 제어 시퀀서, 상기 로컬 레지스터 수단에, 또는 상기 다수의 피킷내에 기능의 동작(operation of functions)이 할당가능하며, 확장된 다수 데이터 처리(extended processing of multiple date)를 요구하는 단일 인스트럭션(single instruction)이 SIMD 처리용으로 구성된 상기 다수의 피킷들에 할당되는 것을 특징으로 하는 연관 병렬 처리 시스템.
- 제20항에 있어서, 상기 다수의 피킷들은 어레이로 배열되며, 피킷은 피킷 자신의 인스트럭션 순차에 따라 선택적으로 동작하고 그리고 데이터 조건에 기초하고 다른 피킷과 연결된 동작을 선택적으로 수행하며, 각각의 피킷들은 상기 부동소수점 연산과 연관되는 정렬 및 정규화 동작(alignment and normalization aperations)을 독립적으로 수행하는 것을 특징으로 하는 연관 병렬 처리 시스템.
- 제19항에 있어서, 상기 외부 제어 시퀀서에는 상기 상호접속 경로에 의해 상기 외부 제어 시퀀서에 결합된 피킷들의 기능을 제어하기 위한 고급 매크로 기능이 제공되며, 상기 고급 매크로 기능은 상기 외부 제어 시퀀서에 결합된 기성 루틴 라이브러리내에 저장되며, 상기 고급 매크로 기능은 다음 기능들, 즉, 로드 블록(load block), 사인(sin), 코사인(cos), 화인드(find), 민(min), 레인지(range), 리드(read), 애드(add), 멀티플 매치(multiple match) 및 매트릭스 멀티플라이(matrix multiply) 중에서 하나 이상의 기능을 제공하는 것을 특징으로 하는 연관 병렬 처리 시스템.
- 제2항에 있어서, 상기 다수의 피킷을 위한 외부 제어 프로세서(external control processor)가 제공되며, 상기 다수의 피킷들로 이루어진 그룹내의 모든 피킷에 병렬로 마이크로제어 코드(microcontrol code)가 전송되며, 상기 외부 제어 프로세서 및 상기 피킷들은 클럭 사이클을 갖는 클럭(clock having clock cycles)에 동기되어 상기 외부 제어 프로세서에 의해 제어되는 기능이 상기 클럭의 하나 이상의 클럭 사이클내에 실행되는 것을 특징으로 하는 연관 병렬 처리 시스템.
- 제28항에 있어서, 마이크로채널 버스(microchannel bus)를 통해 상기 회부 제어 프로세서에 결합되고, 상기 피킷 어레이를 관리하며, 비록 패킷의 서브세트(subsets of pickets)가 동일한 인스트럭션에 대해 독립적으로 동작할 수 있더라도 모든 피킷 어레이는 동일한 인스트럭션을 실행할 수 있도록 결합되는 제어 시스템 마이크로프로세서(control system microprocessor)를 더 포함하는 것을 특징으로 하는 연관 병렬 처리 시스템.
- 제1항에 있어서, 상기 다수의 피킷은 외부 피킷 콘트롤러(external picket controller)와의 통신을 위해 어드레스 버스(address bus)를 따라 배열되며, 상기 각 피킷의 로컬 메모리에 공통인 벡터 어드레스(vector address)가 제공되며, 상기 다수의 피킷의 각 로컬 메모리로 데이터가 보내지는 것을 제어하기 위해 데이터 벡터 어드레스 레지스터 수단(data vector address register means)이 제공되는 것을 특징으로 하는 연관 병렬 처리 시스템.
- 제2항에 있어서, 상기 다수의 피킷은 상기 피킷간의 데이터 흐름을 위한 경로(paths for data flow)를 갖는 어레이로 배열되며, 상기 데이터 흐름 경로(data flow paths)는 상기 어레이내의 모든 피킷과의 비트 병렬 브로드캐스트 통신(bit parallel brodcast communication) 및 피킷간의 데이터 흐름을 제공하는 것을 특징으로 하는 연관 병렬 처리 시스템.
- 제31항에 있어서, 상기 데이터 흐름 경로는 와이어 또는 도트 접속된 피킷(wire-or or Dot connected pickets)을 이용하여 구현되는 것을 특징으로 하는 연관 병렬 처리 시스템.
- 제2항에 있어서, 상기 각 피킷의 상기 로컬 메모리 섹션(section of local momory of each picket)은 상기 섹션내의 연관 메모리 동작을 제공하는 로직을 구비하는 다수의 상기 어드레스 가능한 위치를 포함하여, 상기 연관 동작이 정합 비교 동작(match compare operation)일때 상기 연관 동작에 응답하여 상기 섹션내 모든 위치의 데이터 요소들이 소정의 패턴에 대한 정합 비교 동작을 동시에 수행하게 하는 것을 특징으로 하는 연관 병렬 처리 시스템.
- 제1항에 있어서, 상기 상호접속 경로는 또한 소정의 어드레스를 제공하며, 상기 각 피킷은 상기 어드레스를 이용하여 상기 로컬 메모리로부터의 상기 데이터 세트의 상이한 부분을 획득하는 것을 특징으로 하는 연관 병렬 처리 시스템.
- 제5항에 있어서, 상기 피킷 어레이는 격자(lattice)로서 상호접속되며, 상기 격자를 통해 직선적으로 메시지를 전송하는 수단이 제공되는 것을 특징으로 하는 연관 병렬 처리 시스템.
- 제5항에 있어서, 상기 피킷 어레이는 메쉬(mesh)로서 상호접속되며, 상기 메쉬를 통하여 직선적으로 메시지를 전송하는 수단이 제공되는 것을 특징으로 하는 연관 병렬 처리 시스템.
- 제5항에 있어서, 상기 피킷 어레이는 3차원 어레이(three-dimensional array)로서 상호 접속되며, 상기 3차원 어레이를 가로질러 직선적으로 메시지를 전송하는 수단이 제공되는 것을 특징으로 하는 연관 병렬 처리 시스템.
- 제14항에 있어서, 상기 제어 기능은, 상기 피킷의 상기 피킷내의 조건에 기초하는 상기 로컬 메모리로의 기입을 방지하는 금지 기능(inhibit function)을 더 포함하는 것을 특징으로 하는 연관 병렬 처리 시스템.
- 제38항에 있어서, 상기 제어 기능은, 상기 피킷의 상기 피킷의 피킷내의 조건에 기초하는 상기 로컬 메모리로의 기입을 인에이블시키는 기록 인에이블 기능(enable write functions)을 더 포함하는 것을 특징으로 하는 연관 병렬 처리 시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US61159490A | 1990-11-13 | 1990-11-13 | |
US611,594 | 1990-11-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR920010473A KR920010473A (ko) | 1992-06-26 |
KR960016880B1 true KR960016880B1 (ko) | 1996-12-26 |
Family
ID=24449647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019910017964A KR960016880B1 (ko) | 1990-11-13 | 1991-10-11 | 연관 병렬 처리 시스템 |
Country Status (15)
Country | Link |
---|---|
US (1) | US5822608A (ko) |
EP (1) | EP0485690B1 (ko) |
JP (1) | JPH04267466A (ko) |
KR (1) | KR960016880B1 (ko) |
CN (1) | CN1050919C (ko) |
AT (1) | ATE180586T1 (ko) |
BR (1) | BR9104603A (ko) |
CA (1) | CA2050166A1 (ko) |
CZ (1) | CZ280210B6 (ko) |
DE (1) | DE69131272T2 (ko) |
HU (1) | HU215139B (ko) |
PL (1) | PL167329B1 (ko) |
RU (1) | RU2084953C1 (ko) |
SK (1) | SK344091A3 (ko) |
TW (1) | TW229289B (ko) |
Families Citing this family (117)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5765015A (en) | 1990-11-13 | 1998-06-09 | International Business Machines Corporation | Slide network for an array processor |
US5625836A (en) | 1990-11-13 | 1997-04-29 | International Business Machines Corporation | SIMD/MIMD processing memory element (PME) |
JP2525117B2 (ja) * | 1992-05-22 | 1996-08-14 | インターナショナル・ビジネス・マシーンズ・コーポレイション | アレイ・プロセッサ |
US7266725B2 (en) | 2001-09-03 | 2007-09-04 | Pact Xpp Technologies Ag | Method for debugging reconfigurable architectures |
WO1996035997A1 (fr) * | 1996-05-22 | 1996-11-14 | Yalestown Corporation N.V. | Processeur parallele |
DE19651075A1 (de) * | 1996-12-09 | 1998-06-10 | Pact Inf Tech Gmbh | Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen |
DE19654595A1 (de) | 1996-12-20 | 1998-07-02 | Pact Inf Tech Gmbh | I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen |
EP1329816B1 (de) | 1996-12-27 | 2011-06-22 | Richter, Thomas | Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.) |
DE19704044A1 (de) * | 1997-02-04 | 1998-08-13 | Pact Inf Tech Gmbh | Verfahren zur automatischen Adressgenerierung von Bausteinen innerhalb Clustern aus einer Vielzahl dieser Bausteine |
US6542998B1 (en) | 1997-02-08 | 2003-04-01 | Pact Gmbh | Method of self-synchronization of configurable elements of a programmable module |
US6786420B1 (en) | 1997-07-15 | 2004-09-07 | Silverbrook Research Pty. Ltd. | Data distribution mechanism in the form of ink dots on cards |
US6021453A (en) * | 1997-04-24 | 2000-02-01 | Klingman; Edwin E. | Microprocessor unit for use in an indefinitely extensible chain of processors with self-propagation of code and data from the host end, self-determination of chain length and ID, (and with multiple orthogonal channels and coordination ports) |
US6789212B1 (en) | 1997-04-24 | 2004-09-07 | Edwin E. Klingman | Basic cell for N-dimensional self-healing arrays |
US6618117B2 (en) | 1997-07-12 | 2003-09-09 | Silverbrook Research Pty Ltd | Image sensing apparatus including a microcontroller |
US6803989B2 (en) | 1997-07-15 | 2004-10-12 | Silverbrook Research Pty Ltd | Image printing apparatus including a microcontroller |
US7705891B2 (en) | 1997-07-15 | 2010-04-27 | Silverbrook Research Pty Ltd | Correction of distortions in digital images |
AUPO850597A0 (en) | 1997-08-11 | 1997-09-04 | Silverbrook Research Pty Ltd | Image processing method and apparatus (art01a) |
AUPO802797A0 (en) | 1997-07-15 | 1997-08-07 | Silverbrook Research Pty Ltd | Image processing method and apparatus (ART54) |
US6985207B2 (en) | 1997-07-15 | 2006-01-10 | Silverbrook Research Pty Ltd | Photographic prints having magnetically recordable media |
US7551201B2 (en) | 1997-07-15 | 2009-06-23 | Silverbrook Research Pty Ltd | Image capture and processing device for a print on demand digital camera system |
US6624848B1 (en) | 1997-07-15 | 2003-09-23 | Silverbrook Research Pty Ltd | Cascading image modification using multiple digital cameras incorporating image processing |
US6690419B1 (en) | 1997-07-15 | 2004-02-10 | Silverbrook Research Pty Ltd | Utilising eye detection methods for image processing in a digital image camera |
US7110024B1 (en) | 1997-07-15 | 2006-09-19 | Silverbrook Research Pty Ltd | Digital camera system having motion deblurring means |
US6879341B1 (en) * | 1997-07-15 | 2005-04-12 | Silverbrook Research Pty Ltd | Digital camera system containing a VLIW vector processor |
US8686549B2 (en) | 2001-09-03 | 2014-04-01 | Martin Vorbach | Reconfigurable elements |
DE19861088A1 (de) | 1997-12-22 | 2000-02-10 | Pact Inf Tech Gmbh | Verfahren zur Reparatur von integrierten Schaltkreisen |
US6484065B1 (en) * | 1997-12-29 | 2002-11-19 | Kawasaki Microelectronics, Inc. | DRAM enhanced processor |
JP4158864B2 (ja) | 1998-03-18 | 2008-10-01 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | マトリックスのコサイン変換を計算するためのデータ処理装置およびその方法 |
US6079008A (en) * | 1998-04-03 | 2000-06-20 | Patton Electronics Co. | Multiple thread multiple data predictive coded parallel processing system and method |
US6067609A (en) * | 1998-04-09 | 2000-05-23 | Teranex, Inc. | Pattern generation and shift plane operations for a mesh connected computer |
US6185667B1 (en) * | 1998-04-09 | 2001-02-06 | Teranex, Inc. | Input/output support for processing in a mesh connected computer |
US6836838B1 (en) * | 1998-06-29 | 2004-12-28 | Cisco Technology, Inc. | Architecture for a processor complex of an arrayed pipelined processing engine |
DE19840210A1 (de) * | 1998-09-03 | 2000-03-09 | Fraunhofer Ges Forschung | Verfahren zur Handhabung einer Mehrzahl von Schaltungschips |
AUPP702098A0 (en) | 1998-11-09 | 1998-12-03 | Silverbrook Research Pty Ltd | Image creation method and apparatus (ART73) |
JP3439350B2 (ja) | 1998-10-02 | 2003-08-25 | Necエレクトロニクス株式会社 | キャッシュ・メモリ制御方法及びキャッシュ・メモリ制御装置 |
US6658575B1 (en) * | 1999-03-17 | 2003-12-02 | Olympus Optical Co., Ltd. | Voice recording/reproducing apparatus which enters a standby mode while in a communication mode with an external device |
AUPQ056099A0 (en) | 1999-05-25 | 1999-06-17 | Silverbrook Research Pty Ltd | A method and apparatus (pprint01) |
US8230411B1 (en) | 1999-06-10 | 2012-07-24 | Martin Vorbach | Method for interleaving a program over a plurality of cells |
WO2001031473A1 (en) * | 1999-10-26 | 2001-05-03 | Arthur D. Little, Inc. | Multiplexing n-dimensional mesh connections onto (n + 1) data paths |
US6728863B1 (en) | 1999-10-26 | 2004-04-27 | Assabet Ventures | Wide connections for transferring data between PE's of an N-dimensional mesh-connected SIMD array while transferring operands from memory |
US6425026B1 (en) * | 2000-02-23 | 2002-07-23 | Teranex, Inc. | Distribution, processing, and reconstruction of variable-sized images using multiple processor arrays |
US6317695B1 (en) | 2000-03-30 | 2001-11-13 | Nutec Sciences, Inc. | Seismic data processing method |
US6452789B1 (en) * | 2000-04-29 | 2002-09-17 | Hewlett-Packard Company | Packaging architecture for 32 processor server |
JP2004506261A (ja) | 2000-06-13 | 2004-02-26 | ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト | パイプラインctプロトコルおよびct通信 |
US6745268B1 (en) * | 2000-08-11 | 2004-06-01 | Micron Technology, Lnc. | Capacitive multidrop bus compensation |
AU2001296604A1 (en) * | 2000-10-04 | 2002-04-15 | Pyxsys Corporation | Simd system and method |
US8058899B2 (en) | 2000-10-06 | 2011-11-15 | Martin Vorbach | Logic cell array and bus system |
KR100592752B1 (ko) * | 2001-02-24 | 2006-06-26 | 인터내셔널 비지네스 머신즈 코포레이션 | 토러스 및 트리 네트워크에서의 산술 기능 |
CA2438195C (en) * | 2001-02-24 | 2009-02-03 | International Business Machines Corporation | Optimized scalabale network switch |
US7844796B2 (en) | 2001-03-05 | 2010-11-30 | Martin Vorbach | Data processing device and method |
US7444531B2 (en) | 2001-03-05 | 2008-10-28 | Pact Xpp Technologies Ag | Methods and devices for treating and processing data |
US9037807B2 (en) | 2001-03-05 | 2015-05-19 | Pact Xpp Technologies Ag | Processor arrangement on a chip including data processing, memory, and interface elements |
RU2202123C2 (ru) * | 2001-06-06 | 2003-04-10 | Бачериков Геннадий Иванович | Параллельная вычислительная система с программируемой архитектурой |
US7657877B2 (en) | 2001-06-20 | 2010-02-02 | Pact Xpp Technologies Ag | Method for processing data |
US7383421B2 (en) * | 2002-12-05 | 2008-06-03 | Brightscale, Inc. | Cellular engine for a data processing system |
US7069386B2 (en) * | 2001-08-10 | 2006-06-27 | Connex Technology, Inc. | Associative memory device |
US7996827B2 (en) | 2001-08-16 | 2011-08-09 | Martin Vorbach | Method for the translation of programs for reconfigurable architectures |
US7434191B2 (en) | 2001-09-03 | 2008-10-07 | Pact Xpp Technologies Ag | Router |
US8686475B2 (en) | 2001-09-19 | 2014-04-01 | Pact Xpp Technologies Ag | Reconfigurable elements |
US8281108B2 (en) | 2002-01-19 | 2012-10-02 | Martin Vorbach | Reconfigurable general purpose processor having time restricted configurations |
EP1514193B1 (de) | 2002-02-18 | 2008-07-23 | PACT XPP Technologies AG | Bussysteme und rekonfigurationsverfahren |
US9170812B2 (en) * | 2002-03-21 | 2015-10-27 | Pact Xpp Technologies Ag | Data processing system having integrated pipelined array data processor |
US8914590B2 (en) | 2002-08-07 | 2014-12-16 | Pact Xpp Technologies Ag | Data processing method and device |
US7657861B2 (en) | 2002-08-07 | 2010-02-02 | Pact Xpp Technologies Ag | Method and device for processing data |
AU2003286131A1 (en) | 2002-08-07 | 2004-03-19 | Pact Xpp Technologies Ag | Method and device for processing data |
US7451143B2 (en) * | 2002-08-28 | 2008-11-11 | Cisco Technology, Inc. | Programmable rule processing apparatus for conducting high speed contextual searches and characterizations of patterns in data |
US7394284B2 (en) | 2002-09-06 | 2008-07-01 | Pact Xpp Technologies Ag | Reconfigurable sequencer structure |
BR0315570A (pt) | 2002-10-22 | 2005-08-23 | Jason A Sullivan | Módulo de controle de processamento não-periféricos possuindo propriedades aperfeiçoadas de dissipação de calor |
US7075784B2 (en) | 2002-10-22 | 2006-07-11 | Sullivan Jason A | Systems and methods for providing a dynamically modular processing unit |
WO2004038555A2 (en) | 2002-10-22 | 2004-05-06 | Isys Technologies | Robust customizable computer processing system |
GB0226249D0 (en) * | 2002-11-11 | 2002-12-18 | Clearspeed Technology Ltd | Traffic handling system |
US20040107197A1 (en) * | 2002-11-29 | 2004-06-03 | Shen Yu Yong | System, method and user interface allowing customized portfolio management |
US20040107214A1 (en) * | 2002-11-29 | 2004-06-03 | Hung Lup Cheong Patrick | Customized document portfolio system integrating IP libraries and technology documents |
US7386539B2 (en) * | 2002-11-29 | 2008-06-10 | Taiwan Semiconductor Manufacturing Company, Ltd. | System, method, and user interface providing customized document portfolio management |
US20040117374A1 (en) * | 2002-12-16 | 2004-06-17 | Hung Lup Cheong Patrick | Customized design portfolio integrating IP libraries and technology documents |
US7464254B2 (en) * | 2003-01-09 | 2008-12-09 | Cisco Technology, Inc. | Programmable processor apparatus integrating dedicated search registers and dedicated state machine registers with associated execution hardware to support rapid application of rulesets to data |
JP3987805B2 (ja) * | 2003-01-27 | 2007-10-10 | Necエレクトロニクス株式会社 | アレイ型プロセッサ |
JP4700611B2 (ja) | 2003-08-28 | 2011-06-15 | ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト | データ処理装置およびデータ処理方法 |
WO2005103928A1 (en) * | 2004-04-22 | 2005-11-03 | Waratek Pty Limited | Multiple computer architecture with replicated memory fields |
JP2006243839A (ja) * | 2005-02-28 | 2006-09-14 | Toshiba Corp | 命令生成装置及び命令生成方法 |
WO2007030742A2 (en) * | 2005-09-08 | 2007-03-15 | Matsushita Electric Industrial Co., Ltd. | Parallelizing peer-to-peer overlays using multi-destination routing |
US7451293B2 (en) * | 2005-10-21 | 2008-11-11 | Brightscale Inc. | Array of Boolean logic controlled processing elements with concurrent I/O processing and instruction sequencing |
US20070188505A1 (en) * | 2006-01-10 | 2007-08-16 | Lazar Bivolarski | Method and apparatus for scheduling the processing of multimedia data in parallel processing systems |
EP1974265A1 (de) | 2006-01-18 | 2008-10-01 | PACT XPP Technologies AG | Hardwaredefinitionsverfahren |
US8656143B2 (en) * | 2006-03-13 | 2014-02-18 | Laurence H. Cooke | Variable clocked heterogeneous serial array processor |
US20070226455A1 (en) * | 2006-03-13 | 2007-09-27 | Cooke Laurence H | Variable clocked heterogeneous serial array processor |
US7657496B2 (en) * | 2006-06-26 | 2010-02-02 | Saffron Technology, Inc. | Nonlinear associative memories using linear arrays of associative memory cells, and methods of operating same |
US20080059763A1 (en) * | 2006-09-01 | 2008-03-06 | Lazar Bivolarski | System and method for fine-grain instruction parallelism for increased efficiency of processing compressed multimedia data |
WO2008027567A2 (en) * | 2006-09-01 | 2008-03-06 | Brightscale, Inc. | Integral parallel machine |
US20080244238A1 (en) * | 2006-09-01 | 2008-10-02 | Bogdan Mitu | Stream processing accelerator |
US20080059467A1 (en) * | 2006-09-05 | 2008-03-06 | Lazar Bivolarski | Near full motion search algorithm |
US7990724B2 (en) | 2006-12-19 | 2011-08-02 | Juhasz Paul R | Mobile motherboard |
US8954484B2 (en) | 2009-06-12 | 2015-02-10 | Cray Inc. | Inclusive or bit matrix to compare multiple corresponding subfields |
US9251207B2 (en) | 2007-11-29 | 2016-02-02 | Microsoft Technology Licensing, Llc | Partitioning and repartitioning for data parallel operations |
WO2010035173A1 (en) * | 2008-09-29 | 2010-04-01 | Nxp B.V. | Visual prosthesis implant |
DE102009025572A1 (de) * | 2009-06-19 | 2010-12-23 | Wolfgang Pree Gmbh | Eine Methode zur Entwicklung von garantiert korrekten Echtzeitsystemen |
US8930896B1 (en) * | 2010-07-23 | 2015-01-06 | Amazon Technologies, Inc. | Data anonymity and separation for user computation |
RU2436151C1 (ru) | 2010-11-01 | 2011-12-10 | Федеральное государственное унитарное предприятие "Российский Федеральный ядерный центр - Всероссийский научно-исследовательский институт экспериментальной физики" (ФГУП "РФЯЦ-ВНИИЭФ") | Способ определения структуры гибридной вычислительной системы |
US20140281369A1 (en) * | 2011-12-23 | 2014-09-18 | Ashish Jha | Apparatus and method for sliding window data gather |
RU2513759C1 (ru) * | 2012-11-01 | 2014-04-20 | Федеральное государственное бюджетное учреждение науки Российской академии наук Научно-исследовательский институт системных исследований РАН (НИИСИ РАН) | Гетерогенный процессор |
EP2929434B1 (en) * | 2012-12-06 | 2019-01-16 | Coherent Logix Incorporated | Processing system with synchronization instruction |
CN105046162B (zh) * | 2014-03-12 | 2018-07-27 | 西部数据技术公司 | 在内容可寻址存储系统中维护并使用子对父映射的缓存 |
RU2614926C2 (ru) * | 2015-07-06 | 2017-03-30 | Российская Федерация, от имени которой выступает Государственная корпорация по атомной энергии "Росатом" | Мультипроцессорная система |
US9875045B2 (en) * | 2015-07-27 | 2018-01-23 | International Business Machines Corporation | Regular expression matching with back-references using backtracking |
JP6916292B2 (ja) * | 2017-04-14 | 2021-08-11 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. | 起動信号のための遅延要素 |
KR20200047551A (ko) | 2017-07-30 | 2020-05-07 | 뉴로블레이드, 리미티드. | 메모리 기반 분산 프로세서 아키텍처 |
US11514996B2 (en) | 2017-07-30 | 2022-11-29 | Neuroblade Ltd. | Memory-based processors |
US10402165B2 (en) * | 2017-08-30 | 2019-09-03 | Gsi Technology Inc. | Concurrent multi-bit adder |
US11256503B2 (en) | 2019-03-11 | 2022-02-22 | Untether Ai Corporation | Computational memory |
US11934482B2 (en) | 2019-03-11 | 2024-03-19 | Untether Ai Corporation | Computational memory |
CN111290787B (zh) * | 2019-06-19 | 2022-11-08 | 锐迪科(重庆)微电子科技有限公司 | 运算装置及运算方法 |
WO2021033125A1 (en) * | 2019-08-16 | 2021-02-25 | Untether Ai Corporation | Computational memory with processing element row and bank communications |
US11342944B2 (en) | 2019-09-23 | 2022-05-24 | Untether Ai Corporation | Computational memory with zero disable and error detection |
US11468002B2 (en) | 2020-02-28 | 2022-10-11 | Untether Ai Corporation | Computational memory with cooperation among rows of processing elements and memory thereof |
US11500811B2 (en) * | 2020-06-12 | 2022-11-15 | Alibaba Group Holding Limited | Apparatuses and methods for map reduce |
CN112540793A (zh) * | 2020-12-18 | 2021-03-23 | 清华大学 | 支持多访存模式的可重构处理单元阵列及控制方法、装置 |
CN118432817B (zh) * | 2024-07-02 | 2024-08-30 | 中山大学 | 基于risc-v处理器的量子密钥分发后处理片上系统 |
Family Cites Families (122)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3537074A (en) * | 1967-12-20 | 1970-10-27 | Burroughs Corp | Parallel operating array computer |
US3544973A (en) * | 1968-03-13 | 1970-12-01 | Westinghouse Electric Corp | Variable structure computer |
US4942516A (en) * | 1970-12-28 | 1990-07-17 | Hyatt Gilbert P | Single chip integrated circuit computer architecture |
US3970993A (en) * | 1974-01-02 | 1976-07-20 | Hughes Aircraft Company | Cooperative-word linear array parallel processor |
US4107773A (en) * | 1974-05-13 | 1978-08-15 | Texas Instruments Incorporated | Advanced array transform processor with fixed/floating point formats |
US4101960A (en) * | 1977-03-29 | 1978-07-18 | Burroughs Corporation | Scientific processor |
US4270170A (en) * | 1978-05-03 | 1981-05-26 | International Computers Limited | Array processor |
US4380046A (en) * | 1979-05-21 | 1983-04-12 | Nasa | Massively parallel processor computer |
US4412303A (en) * | 1979-11-26 | 1983-10-25 | Burroughs Corporation | Array processor architecture |
US4314349A (en) * | 1979-12-31 | 1982-02-02 | Goodyear Aerospace Corporation | Processing element for parallel array processors |
US4338675A (en) * | 1980-02-13 | 1982-07-06 | Intel Corporation | Numeric data processor |
US4435758A (en) * | 1980-03-10 | 1984-03-06 | International Business Machines Corporation | Method for conditional branch execution in SIMD vector processors |
ZA811458B (en) * | 1980-03-28 | 1982-03-31 | Int Computers Ltd | Data processing system |
US4814979A (en) * | 1981-04-01 | 1989-03-21 | Teradata Corporation | Network to transmit prioritized subtask pockets to dedicated processors |
US4394726A (en) * | 1981-04-29 | 1983-07-19 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Distributed multiport memory architecture |
US4468727A (en) * | 1981-05-14 | 1984-08-28 | Honeywell Inc. | Integrated cellular array parallel processor |
DE3144015A1 (de) * | 1981-11-05 | 1983-05-26 | Ulrich Prof. Dr. 7500 Karlsruhe Kulisch | "schaltungsanordnung und verfahren zur bildung von skalarprodukten und summen von gleitkommazahlen mit maximaler genauigkeit" |
US4498133A (en) * | 1981-12-10 | 1985-02-05 | Burroughs Corp. | Selector switch for a concurrent network of processors |
BG35575A1 (en) * | 1982-04-26 | 1984-05-15 | Kasabov | Multimicroprocessor system |
US4523273A (en) * | 1982-12-23 | 1985-06-11 | Purdue Research Foundation | Extra stage cube |
JPS59132070A (ja) * | 1983-01-18 | 1984-07-30 | Mitsubishi Electric Corp | アレイ演算用デ−タ処理装置 |
JPS59146345A (ja) * | 1983-02-10 | 1984-08-22 | Masahiro Sowa | コントロ−ルフロ−並列計算機方式 |
US4739474A (en) * | 1983-03-10 | 1988-04-19 | Martin Marietta Corporation | Geometric-arithmetic parallel processor |
US4598400A (en) * | 1983-05-31 | 1986-07-01 | Thinking Machines Corporation | Method and apparatus for routing message packets |
US4814973A (en) | 1983-05-31 | 1989-03-21 | Hillis W Daniel | Parallel processor |
US5212773A (en) | 1983-05-31 | 1993-05-18 | Thinking Machines Corporation | Wormhole communications arrangement for massively parallel processor |
US5008815A (en) * | 1983-05-31 | 1991-04-16 | Thinking Machines Corporation | Parallel processor |
US5146608A (en) * | 1983-05-31 | 1992-09-08 | Hillis W Daniel | Parallel processor array system controlled in response to composition status signal |
US4621339A (en) * | 1983-06-13 | 1986-11-04 | Duke University | SIMD machine using cube connected cycles network architecture for vector processing |
US4604695A (en) * | 1983-09-30 | 1986-08-05 | Honeywell Information Systems Inc. | Nibble and word addressable memory arrangement |
NL192637C (nl) * | 1984-02-27 | 1997-11-04 | Nippon Telegraph & Telephone | Stelselprocessor. |
US4855903A (en) * | 1984-12-20 | 1989-08-08 | State University Of New York | Topologically-distributed-memory multiprocessor computer |
US4901224A (en) * | 1985-02-25 | 1990-02-13 | Ewert Alfred P | Parallel digital processor |
US5113523A (en) * | 1985-05-06 | 1992-05-12 | Ncube Corporation | High performance computer system |
US4805091A (en) * | 1985-06-04 | 1989-02-14 | Thinking Machines Corporation | Method and apparatus for interconnecting processors in a hyper-dimensional array |
US4967340A (en) * | 1985-06-12 | 1990-10-30 | E-Systems, Inc. | Adaptive processing system having an array of individually configurable processing components |
US5045995A (en) * | 1985-06-24 | 1991-09-03 | Vicom Systems, Inc. | Selective operation of processing elements in a single instruction multiple data stream (SIMD) computer system |
HU195972B (en) | 1985-07-01 | 1988-08-29 | Richter Gedeon Vegyeszet | Process for producing new diamino-androstane derivatives and pharmaceutical compositions containing them |
US5047917A (en) * | 1985-07-12 | 1991-09-10 | The California Institute Of Technology | Apparatus for intrasystem communications within a binary n-cube including buffer lock bit |
JPS6219960A (ja) * | 1985-07-17 | 1987-01-28 | Nec Corp | 多段構成プロセツサシステム |
US4706191A (en) * | 1985-07-31 | 1987-11-10 | Sperry Corporation | Local store for scientific vector processor |
US4739476A (en) * | 1985-08-01 | 1988-04-19 | General Electric Company | Local interconnection scheme for parallel processing architectures |
EP0212031B1 (en) * | 1985-08-13 | 1990-11-07 | International Business Machines Corporation | Dynamic bandwidth allocation mechanism between circuit slots and packet bit stream in a communication network |
GB8521672D0 (en) * | 1985-08-30 | 1985-10-02 | Univ Southampton | Data processing device |
US4720780A (en) * | 1985-09-17 | 1988-01-19 | The Johns Hopkins University | Memory-linked wavefront array processor |
US4922408A (en) * | 1985-09-27 | 1990-05-01 | Schlumberger Technology Corporation | Apparatus for multi-processor communications |
US4847755A (en) * | 1985-10-31 | 1989-07-11 | Mcc Development, Ltd. | Parallel processing method and apparatus for increasing processing throughout by parallel processing low level instructions having natural concurrencies |
US5021945A (en) * | 1985-10-31 | 1991-06-04 | Mcc Development, Ltd. | Parallel processor system for processing natural concurrencies and method therefor |
US4907148A (en) * | 1985-11-13 | 1990-03-06 | Alcatel U.S.A. Corp. | Cellular array processor with individual cell-level data-dependent cell control and multiport input memory |
US4736291A (en) * | 1985-11-22 | 1988-04-05 | Texas Instruments Incorporated | General-purpose array processor |
US4852048A (en) * | 1985-12-12 | 1989-07-25 | Itt Corporation | Single instruction multiple data (SIMD) cellular array processing apparatus employing a common bus where a first number of bits manifest a first bus portion and a second number of bits manifest a second bus portion |
US4831519A (en) * | 1985-12-12 | 1989-05-16 | Itt Corporation | Cellular array processor with variable nesting depth vector control by selective enabling of left and right neighboring processor cells |
US4916657A (en) * | 1985-12-12 | 1990-04-10 | Alcatel Usa, Corp. | Single instruction multiple data (SIMD) cellular array processing apparatus employing multiple state logic for coupling to data buses |
US4783782A (en) * | 1985-12-12 | 1988-11-08 | Alcatel U.S.A. Corporation | Manufacturing test data storage apparatus for dynamically reconfigurable cellular array processor chip |
US4835729A (en) * | 1985-12-12 | 1989-05-30 | Alcatel Usa, Corp. | Single instruction multiple data (SIMD) cellular array processing apparatus with on-board RAM and address generator apparatus |
US4748585A (en) * | 1985-12-26 | 1988-05-31 | Chiarulli Donald M | Processor utilizing reconfigurable process segments to accomodate data word length |
US4925311A (en) * | 1986-02-10 | 1990-05-15 | Teradata Corporation | Dynamically partitionable parallel processors |
US5297260A (en) | 1986-03-12 | 1994-03-22 | Hitachi, Ltd. | Processor having a plurality of CPUS with one CPU being normally connected to common bus |
US4783738A (en) * | 1986-03-13 | 1988-11-08 | International Business Machines Corporation | Adaptive instruction processing by array processor having processor identification and data dependent status registers in each processing element |
US4814980A (en) * | 1986-04-01 | 1989-03-21 | California Institute Of Technology | Concurrent hypercube system with improved message passing |
US4809169A (en) * | 1986-04-23 | 1989-02-28 | Advanced Micro Devices, Inc. | Parallel, multiple coprocessor computer architecture having plural execution modes |
US4780873A (en) * | 1986-05-19 | 1988-10-25 | General Electric Company | Circuit switching network with routing nodes |
US4809347A (en) * | 1986-07-18 | 1989-02-28 | Hughes Aircraft Company | Computer vision architecture |
JPS6353678A (ja) * | 1986-08-22 | 1988-03-07 | Hitachi Ltd | ベクトル処理装置 |
US5038386A (en) * | 1986-08-29 | 1991-08-06 | International Business Machines Corporation | Polymorphic mesh network image processing system |
US4910665A (en) * | 1986-09-02 | 1990-03-20 | General Electric Company | Distributed processing system including reconfigurable elements |
US4860201A (en) * | 1986-09-02 | 1989-08-22 | The Trustees Of Columbia University In The City Of New York | Binary tree parallel processor |
US4985832A (en) * | 1986-09-18 | 1991-01-15 | Digital Equipment Corporation | SIMD array processing system with routing networks having plurality of switching stages to transfer messages among processors |
US5230079A (en) | 1986-09-18 | 1993-07-20 | Digital Equipment Corporation | Massively parallel array processing system with processors selectively accessing memory module locations using address in microword or in address register |
US5170484A (en) * | 1986-09-18 | 1992-12-08 | Digital Equipment Corporation | Massively parallel array processing system |
CN1008018B (zh) * | 1986-09-27 | 1990-05-16 | 徐肇昌 | 一种具有合作能力的同构型多计算机系统及其合作方法 |
US4841476A (en) * | 1986-10-06 | 1989-06-20 | International Business Machines Corporation | Extended floating point operations supporting emulation of source instruction execution |
US5010477A (en) * | 1986-10-17 | 1991-04-23 | Hitachi, Ltd. | Method and apparatus for transferring vector data between parallel processing system with registers & logic for inter-processor data communication independents of processing operations |
GB2211638A (en) * | 1987-10-27 | 1989-07-05 | Ibm | Simd array processor |
US5175865A (en) | 1986-10-28 | 1992-12-29 | Thinking Machines Corporation | Partitioning the processors of a massively parallel single array processor into sub-arrays selectively controlled by host computers |
US4873626A (en) * | 1986-12-17 | 1989-10-10 | Massachusetts Institute Of Technology | Parallel processing system with processor array having memory system included in system memory |
US4891787A (en) * | 1986-12-17 | 1990-01-02 | Massachusetts Institute Of Technology | Parallel processing system with processor array having SIMD/MIMD instruction processing |
US5165023A (en) * | 1986-12-17 | 1992-11-17 | Massachusetts Institute Of Technology | Parallel processing system with processor array and network communications system for transmitting messages of variable length |
DE3702614A1 (de) * | 1987-01-29 | 1988-08-11 | Standard Elektrik Lorenz Ag | Digitales koppelnetz fuer leitungs- und paketvermittlung und koppeleinrichtung hierzu |
JPS63192153A (ja) * | 1987-02-05 | 1988-08-09 | Agency Of Ind Science & Technol | 並列デ−タ処理装置 |
US4964032A (en) * | 1987-03-27 | 1990-10-16 | Smith Harry F | Minimal connectivity parallel data processing system |
US4933846A (en) * | 1987-04-24 | 1990-06-12 | Network Systems Corporation | Network communications adapter with dual interleaved memory banks servicing multiple processors |
US4933895A (en) * | 1987-07-10 | 1990-06-12 | Hughes Aircraft Company | Cellular array having data dependent processing capabilities |
US5170482A (en) * | 1987-08-14 | 1992-12-08 | Regents Of The University Of Minnesota | Improved hypercube topology for multiprocessor computer systems |
US5008882A (en) * | 1987-08-17 | 1991-04-16 | California Institute Of Technology | Method and apparatus for eliminating unsuccessful tries in a search tree |
US4958273A (en) * | 1987-08-26 | 1990-09-18 | International Business Machines Corporation | Multiprocessor system architecture with high availability |
US4916652A (en) * | 1987-09-30 | 1990-04-10 | International Business Machines Corporation | Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures |
US4942517A (en) * | 1987-10-08 | 1990-07-17 | Eastman Kodak Company | Enhanced input/output architecture for toroidally-connected distributed-memory parallel computers |
US4943912A (en) * | 1987-10-13 | 1990-07-24 | Hitachi, Ltd. | Parallel processor system having control processor and array control apparatus for selectively activating different processors |
US4872133A (en) * | 1988-02-18 | 1989-10-03 | Motorola, Inc. | Floating-point systolic array including serial processors |
US4896265A (en) * | 1988-03-28 | 1990-01-23 | General Electric Company | Parallel broadcasting method and apparatus |
US4992926A (en) * | 1988-04-11 | 1991-02-12 | Square D Company | Peer-to-peer register exchange controller for industrial programmable controllers |
US5121498A (en) * | 1988-05-11 | 1992-06-09 | Massachusetts Institute Of Technology | Translator for translating source code for selective unrolling of loops in the source code |
US5038282A (en) * | 1988-05-11 | 1991-08-06 | Massachusetts Institute Of Technology | Synchronous processor with simultaneous instruction processing and data transfer |
US5056000A (en) * | 1988-06-21 | 1991-10-08 | International Parallel Machines, Inc. | Synchronized parallel processing with shared memory |
US5005120A (en) * | 1988-07-29 | 1991-04-02 | Lsi Logic Corporation | Compensating time delay in filtering signals of multi-dimensional reconvigurable array processors |
GB2223867A (en) * | 1988-09-09 | 1990-04-18 | Univ City | Multiprocessor data processing system |
US4920484A (en) * | 1988-10-05 | 1990-04-24 | Yale University | Multiprocessor/memory interconnection network wherein messages sent through the network to the same memory are combined |
US5041971A (en) * | 1988-11-30 | 1991-08-20 | Bolt Beranek And Newman Inc. | Memory accessing switch network |
US5189665A (en) | 1989-03-30 | 1993-02-23 | Texas Instruments Incorporated | Programmable configurable digital crossbar switch |
US5020059A (en) * | 1989-03-31 | 1991-05-28 | At&T Bell Laboratories | Reconfigurable signal processor |
US5181017A (en) | 1989-07-27 | 1993-01-19 | Ibm Corporation | Adaptive routing in a parallel computing system |
US5049982A (en) * | 1989-07-28 | 1991-09-17 | At&T Bell Laboratories | Article comprising a stacked array of electronic subassemblies |
US5173947A (en) * | 1989-08-01 | 1992-12-22 | Martin Marietta Corporation | Conformal image processing apparatus and method |
JPH0731780B2 (ja) * | 1989-09-08 | 1995-04-10 | 日本碍子株式会社 | 磁気ヘッド用コアの製造方法 |
US5072217A (en) * | 1989-10-31 | 1991-12-10 | International Business Machines Corporation | One-sided crosspoint switch with distributed control |
US5239654A (en) | 1989-11-17 | 1993-08-24 | Texas Instruments Incorporated | Dual mode SIMD/MIMD processor providing reuse of MIMD instruction memories as data memories when operating in SIMD mode |
US5212777A (en) | 1989-11-17 | 1993-05-18 | Texas Instruments Incorporated | Multi-processor reconfigurable in single instruction multiple data (SIMD) and multiple instruction multiple data (MIMD) modes and method of operation |
US5218709A (en) | 1989-12-28 | 1993-06-08 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Special purpose parallel computer architecture for real-time control and simulation in robotic applications |
US5197130A (en) | 1989-12-29 | 1993-03-23 | Supercomputer Systems Limited Partnership | Cluster architecture for a highly parallel scalar/vector multiprocessor system |
US5175862A (en) * | 1989-12-29 | 1992-12-29 | Supercomputer Systems Limited Partnership | Method and apparatus for a special purpose arithmetic boolean unit |
US5239629A (en) | 1989-12-29 | 1993-08-24 | Supercomputer Systems Limited Partnership | Dedicated centralized signaling mechanism for selectively signaling devices in a multiprocessor system |
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 |
US5218676A (en) | 1990-01-08 | 1993-06-08 | The University Of Rochester | Dynamic routing system for a multinode communications network |
US5265124A (en) | 1990-02-15 | 1993-11-23 | Advanced Micro Devices, Inc. | Integrated multi-port repeater having shared resources |
US5142540A (en) * | 1990-03-13 | 1992-08-25 | Glasser Lance A | Multipart memory apparatus with error detection |
US5187801A (en) | 1990-04-11 | 1993-02-16 | Thinking Machines Corporation | Massively-parallel computer system for generating paths in a binomial lattice |
US5355508A (en) | 1990-05-07 | 1994-10-11 | Mitsubishi Denki Kabushiki Kaisha | Parallel data processing system combining a SIMD unit with a MIMD unit and sharing a common bus, memory, and system controller |
US5136582A (en) * | 1990-05-29 | 1992-08-04 | Advanced Micro Devices, Inc. | Memory management system and method for network controller |
US5253359A (en) | 1990-06-11 | 1993-10-12 | Supercomputer Systems Limited Partnership | Control and maintenance subsystem network for use with a multiprocessor computer system |
US5251097A (en) | 1990-06-11 | 1993-10-05 | Supercomputer Systems Limited Partnership | Packaging architecture for a highly parallel multiprocessor system |
US5367636A (en) | 1990-09-24 | 1994-11-22 | Ncube Corporation | Hypercube processor network in which the processor indentification numbers of two processors connected to each other through port number n, vary only in the nth bit |
-
1991
- 1991-06-15 EP EP91109850A patent/EP0485690B1/en not_active Expired - Lifetime
- 1991-06-15 DE DE69131272T patent/DE69131272T2/de not_active Expired - Fee Related
- 1991-06-15 AT AT91109850T patent/ATE180586T1/de active
- 1991-08-28 CA CA002050166A patent/CA2050166A1/en not_active Abandoned
- 1991-10-01 JP JP3278900A patent/JPH04267466A/ja active Pending
- 1991-10-11 CN CN91109637A patent/CN1050919C/zh not_active Expired - Fee Related
- 1991-10-11 KR KR1019910017964A patent/KR960016880B1/ko not_active IP Right Cessation
- 1991-10-24 BR BR919104603A patent/BR9104603A/pt unknown
- 1991-10-28 TW TW080108435A patent/TW229289B/zh active
- 1991-11-12 HU HU913542A patent/HU215139B/hu not_active IP Right Cessation
- 1991-11-12 RU SU915010148A patent/RU2084953C1/ru active
- 1991-11-13 CZ CS913440A patent/CZ280210B6/cs not_active IP Right Cessation
- 1991-11-13 PL PL91292368A patent/PL167329B1/pl unknown
- 1991-11-13 SK SK3440-91A patent/SK344091A3/sk unknown
-
1994
- 1994-09-06 US US08/301,278 patent/US5822608A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CA2050166A1 (en) | 1992-05-14 |
DE69131272D1 (de) | 1999-07-01 |
SK344091A3 (en) | 1995-01-05 |
CN1050919C (zh) | 2000-03-29 |
CZ344091A3 (en) | 1995-05-17 |
JPH04267466A (ja) | 1992-09-24 |
HU215139B (hu) | 1998-09-28 |
EP0485690B1 (en) | 1999-05-26 |
HU913542D0 (en) | 1992-02-28 |
US5822608A (en) | 1998-10-13 |
EP0485690A2 (en) | 1992-05-20 |
PL167329B1 (pl) | 1995-08-31 |
BR9104603A (pt) | 1992-06-23 |
ATE180586T1 (de) | 1999-06-15 |
PL292368A1 (en) | 1992-09-07 |
DE69131272T2 (de) | 1999-12-09 |
TW229289B (ko) | 1994-09-01 |
EP0485690A3 (en) | 1994-09-21 |
CN1061482A (zh) | 1992-05-27 |
HUT59496A (en) | 1992-05-28 |
KR920010473A (ko) | 1992-06-26 |
RU2084953C1 (ru) | 1997-07-20 |
CZ280210B6 (cs) | 1995-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR960016880B1 (ko) | 연관 병렬 처리 시스템 | |
US5805915A (en) | SIMIMD array processing system | |
US5815723A (en) | Picket autonomy on a SIMD machine | |
US5809292A (en) | Floating point for simid array machine | |
US5754871A (en) | Parallel processing system having asynchronous SIMD processing | |
US5966528A (en) | SIMD/MIMD array processor with vector processing | |
US5708836A (en) | SIMD/MIMD inter-processor communication | |
US5794059A (en) | N-dimensional modified hypercube | |
US5710935A (en) | Advanced parallel array processor (APAP) | |
US5588152A (en) | Advanced parallel processor including advanced support hardware | |
US5963746A (en) | Fully distributed processing memory element | |
US5734921A (en) | Advanced parallel array processor computer package | |
US5963745A (en) | APAP I/O programmable router | |
Duncan | A survey of parallel computer architectures | |
US5828894A (en) | Array processor having grouping of SIMD pickets | |
US5625836A (en) | SIMD/MIMD processing memory element (PME) | |
EP0570729A2 (en) | Apap I/O programmable router | |
US5765015A (en) | Slide network for an array processor | |
EP0570952A2 (en) | Slide network for an array processor | |
EP0570951A2 (en) | Advanced parallel array processor mechanical packaging | |
JP2655243B2 (ja) | 複合化ベクトル並列計算機 | |
JP2625628B2 (ja) | 浮動小数点コンピュータ・システム | |
Alleyne et al. | A bit-parallel, word-parallel, massively parallel associative processor for scientific computing | |
Shaw et al. | Active memory chips: A brief survey and case study | |
Ibbett et al. | Practical Array Architectures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
J2X1 | Appeal (before the patent court) |
Free format text: APPEAL AGAINST DECISION TO DECLINE REFUSAL |
|
G160 | Decision to publish patent application | ||
B701 | Decision to grant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20011010 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |