KR100354467B1 - 계층 구조를 갖는 공유 버스형 병렬 계산기 - Google Patents

계층 구조를 갖는 공유 버스형 병렬 계산기 Download PDF

Info

Publication number
KR100354467B1
KR100354467B1 KR1020000061521A KR20000061521A KR100354467B1 KR 100354467 B1 KR100354467 B1 KR 100354467B1 KR 1020000061521 A KR1020000061521 A KR 1020000061521A KR 20000061521 A KR20000061521 A KR 20000061521A KR 100354467 B1 KR100354467 B1 KR 100354467B1
Authority
KR
South Korea
Prior art keywords
processing unit
processor
memory
squad
shared bus
Prior art date
Application number
KR1020000061521A
Other languages
English (en)
Other versions
KR20010051125A (ko
Inventor
구니마쯔아쯔시
와따나베유끼오
야스까와히데끼
Original Assignee
가부시끼가이샤 도시바
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 가부시끼가이샤 도시바 filed Critical 가부시끼가이샤 도시바
Publication of KR20010051125A publication Critical patent/KR20010051125A/ko
Application granted granted Critical
Publication of KR100354467B1 publication Critical patent/KR100354467B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • 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

Landscapes

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

Abstract

최선단의 기술에 의한 고속 프로세서를 원하는 갯수 병렬로 동작시키는 것이 가능한 공유 버스형 병렬 계산기를 제공하기 위한 것이다.
계층형 공유 버스 멀티 프로세서 시스템의 중간 계층의 처리 유닛은 통상의 프로세서와 동등한 프로그래머블 능력을 갖는 프로세서와, 명령 메모리와, 데이터 메모리를 구비하고 있다. 그리하여, 하위 프로세서로부터의 상태(status) 신호를 수신해서, 대용량의 전송 데이터용 메모리를 갖는 DMA 컨트롤러에 의해 전송 데이터의 압축·전개, 프로그래머블한 부하 분산, 하위 프로세서의 가동 상황에 따른 부하 분산이 행해진다.

Description

계층 구조를 갖는 공유 버스형 병렬 계산기{SHARE BUS-TYPE PARALLEL COMPUTER HAVING THE LAYERED STRUCTURE}
본 발명은 계층 구조를 갖는 공유 버스형 병렬 계산기에 관한 것으로, 특히 방대한 계산량이 요구되는 화상 처리나, 컴퓨터·엔터테인먼트나, 과학 기술 계산의 실행에 적합한 공유 버스형 병렬 계산기에 관한 것이다.
종래의 공유 버스형 병렬 계산기는 복수의 반도체를 이용하여, 기판 상의 하나의 버스에 복수의 프로세서를 배치하고 있었다. 그래서, 버스의 트래픽을 경감하기 위해 버스를 계층화한 경우에는 각 계층에 캐쉬 메모리를 놓아 더욱 트래픽을 줄인다고 하는 방법을 이용하고 있다.
일반적으로, 멀티프로세싱·컴퓨터·시스템은 컴퓨팅·태스크를 실행하는 2개 또는 그 이상의 프로세서를 포함하고 있다. 그래서, 특정한 컴퓨팅·태스크가 하나의 프로세서 상에서 실행되고 있는 사이에, 다른 프로세서가 무관한 컴퓨팅·태스크를 실행한다. 또한, 특정한 컴퓨팅·태스크의 복수의 구성 요소를 멀티프로세서에 분배하여 전체적으로 컴퓨팅·태스크의 실행 시간을 단축한다. 일반적으로, 프로세서는 1개 이상의 피연산자(operand)에 관해서 연산하여 결과를 생성하도록 구성된 장치이고, 연산은 프로세서에 의해서 실행되는 명령에 응답하여 행해진다.
시판되는 멀티프로세싱·컴퓨터·시스템에 있어서의 일반적 구조는 대칭형 멀티·프로세서(SMP) 구조이다. 전형적으로는, SMP 컴퓨터·시스템은 캐쉬 계층을통해 공용 버스에 결합된 복수의 프로세서를 갖는다. 또한, 이 버스에는 시스템 내의 프로세서 사이에서 공용되는 메모리가 결합된다. 메모리 내의 특정한 메모리 위치에 대한 액세스는 다른 메모리 위치에 대한 액세스와 마찬가지의 시간에 행해진다. 메모리 내의 각 위치는 균일하게 액세스되기 때문에, 이 구조는 균일 메모리 구조(UMA)라고 불린다.
프로세서는 종종 내부 캐쉬와 함께 구성된다. SMP 컴퓨터·시스템에서는, 일반적으로 1개 이상의 캐쉬가 프로세서와 공용 버스와의 사이에 캐쉬 계층형으로 구성된다. 특정한 메인·메모리·어드레스에 존재하는 데이터의 복수의 복사가 이들 캐쉬에 저장된다. 어떤 시점에서도 특정한 어드레스가 정확하게 1개의 데이터 값을 저장하고 있다고 하는 공용 메모리·모델을 유지하기 위해서, 공용 버스의 컴퓨터·시스템은 캐쉬·코히어런스를 채용하고 있다.
일반적으로, 특정한 메모리·어드레스에 저장되어 있는 데이터에 대한 연산의 효과가 캐쉬 계층 내의 데이터의 각 복사에 반영되어 있으면, 연산은 코히어런트이다. 예를 들면, 특정한 메모리·어드레스에 저장되어 있는 데이터가 갱신되었을 때, 그 갱신은 이전 데이터의 복사를 저장하고 있는 캐쉬에 공급된다. 또는, 이전 데이터의 복사는 캐쉬 내에서 무효화되고, 그 특정한 메모리·어드레스에 대한 다음 액세스에서는 갱신된 복사가 메인·메모리로부터 전송되도록 한다. 공용 버스·시스템에서는 스누프·버스·프로토콜이 일반적으로 이용된다. 공용 버스 상에서 실행되는 각 코히어런트·트랜잭션은 캐쉬 내의 데이터와 대조하여 검사(스누프)된다. 영향을 받은 데이터의 복사가 발견되면, 그 데이터를 저장하고 있는캐쉬·라인의 상태는 그 코히어런트·트랜잭션에 응답하여 갱신된다.
그러나, 공용 버스 구조는 멀티프로세싱·컴퓨터·시스템에 있어서 그 유효성을 제약하는 몇개의 결점을 갖는다. 즉, 버스에는 이용할 수 있는 피크 대역폭(버스 상에서 전송되는 1초 당의 바이트수)이 존재하거나, 버스에 대하여 추가의 프로세서가 접속되면, 그 프로세서에 데이터 및 명령을 공급하는 데 요하는 대역 폭은 이 피크 대역 폭을 넘어버린다. 필요로 되는 프로세서의 대역 폭이 이용 가능한 버스 대역 폭을 넘으면, 몇개의 프로세서는 대역 폭이 이용 가능하게 되는 것을 기다리게 되어, 컴퓨터·시스템의 성능은 저하된다. 일반적으로, 하나의 버스 상에 접속 가능한 프로세서 수는 32개 정도가 한도이다.
또한, 많은 프로세서를 공용 버스에 추가하면, 버스의 용량 부하가 증대하여, 버스의 물리적 길이도 증대한다. 용량 부하가 증대하여, 버스의 길이가 증대하면, 버스 상의 신호 전파 지연이 증대한다. 전파 지연의 증대에 의해서 트랜잭션의 실행 시간은 길어진다. 따라서, 많은 프로세서를 추가하면 버스의 피크 대역 폭은 감소한다.
이것들의 문제는 점점 더 증대하는 동작 주파수 및 프로세서의 성능 향상에 의해 더욱 증대된다. 고주파화 및 보다 진보한 프로세서의 마이크로·아키텍쳐에 의해서, 동일한 프로세서 수에 대해서도, 이전의 프로세서 세대보다도 높은 대역 폭이 요구되는 것으로 된다. 따라서, 멀티프로세싱·컴퓨터·시스템에 대하여 이전의 충분한 대역 폭을 제공하고 있는 버스는 고성능의 프로세서를 이용한 마찬가지의 컴퓨터·시스템에 대해서는 불충분하게 된다.
또한, 공유 버스형 이외의 멀티프로세서 시스템에서는 프로그래밍 모델이나 디버그가 어렵게 된다고 하는 문제점이 있다.
필요한 것은, 마이크로 프로세서 및 주변 회로가 고성능화해도, 또한 접속하는 프로세서의 필요 수가 증가해도, 혼란을 초래하지 않는, 지금까지 없는 새로운 멀티프로세서·시스템의 아키텍쳐이다.
본 발명의 목적은 최선단의 기술에 의한 고속 프로세서를 원하는 갯수 병렬로 동작시키는 것이 가능한 공유 버스형 병렬 계산기를 제공하는 것이다.
즉, 상기 목적을 달성하기 위해서, 본 발명(청구항 1)은 병렬 처리가 가능한 병렬 처리 태스크를 실행하는 상위 처리 유닛과, 제1 공유 버스를 통해 상기 상위 처리 유닛에 접속하는 복수의 중간 처리 유닛과, 상기 복수의 중간 처리 유닛의 각각에 제2 공유 버스를 통해 접속하는 복수의 하위 처리 유닛을 구비하고, 상기 상위 처리 유닛은 상기 태스크를 분할하여 상기 중간 처리 유닛에 할당함과 동시에, 상기 분할 태스크의 실행에 필요한 데이터를 각각 상기 중간 처리 유닛에 전송하고, 상기 중간 처리 유닛은 상기 분할 태스크를 분할하여 상기 하위 처리 유닛에 할당함과 동시에, 상기 분할 태스크의 실행에 필요한 데이터를 각각 상기 하위 처리 유닛에 전송하며, 상기 하위 처리 유닛은 할당된 상기 분할 태스크를 실행하여, 실행이 완료되면 그 실행의 완료를 상기 중간 처리 유닛에 통지하고, 상기 중간 처리 유닛은 할당된 상기 분할 태스크가 전부 완료되면 그 실행의 완료를 상기 상위 처리 유닛에 통지하며, 모든 상기 중간 처리 유닛이 그 할당된 상기 분할 태스크의완료를 상기 상위 처리 유닛에 통지하면, 상기 병렬 처리 태스크의 처리가 완료되는 공유 버스형 병렬 계산기를 제공한다.
본 발명(청구항 2)은 상기 청구항 1에 있어서, 상기 제2 공유 버스에 접속된 유닛군은 상기 제1 공유 패스에 접속된 유닛군보다도 물리적으로 좁은 영역에 국부 존재하고, 각각의 유닛을 접속하는 신호선은 작은 배선 용량을 갖고 있으며, 상기 제1 공유 패스에 접속된 유닛군을 동기시키기 위한 주파수보다도, 상기 제2 공유 버스에 접속된 유닛군을 동기시키기 위한 주파수쪽이 높은 것을 특징으로 하는 계층 구조를 갖는 공유 버스형 병렬 계산기를 제공한다.
본 발명(청구항 3)은 상기 청구항 2에 있어서, 상기 상위 처리 유닛, 상기 중간 처리 유닛 및 상기 하위 처리 유닛은 각각 프로세서 및 상기 프로세서에 접속된 메모리를 구비하는 것을 특징으로 하는 계층 구조를 갖는 공유 버스형 병렬 계산기를 제공한다.
본 발명(청구항 4)은 상기 청구항 2에 있어서, 상기 분할 태스크의 실행 완료는 상기 중간 처리 유닛 또는 상기 상위 처리 유닛에 상태(status) 입력 신호선을 통해 통지되는 것을 특징으로 하는 계층 구조를 갖는 공유 버스형 병렬 계산기를 제공한다.
본 발명(청구항 5)은 상기 청구항 2에 있어서, 상기 중간 처리 유닛은 각각 프로세서 및 상기 프로세서에 접속된 메모리 및 DMA 컨트롤러를 구비하는 것을 특징으로 하는 계층 구조를 갖는 공유 버스형 병렬 계산기를 제공한다.
본 발명(청구항 6)은 상기 청구항 2에 있어서, 상기 프로세서와 상기 DMA 컨트롤러는 코프로세서 접속되어 있는 것을 특징으로 하는 계층 구조를 갖는 공유 버스형 병렬 계산기를 제공한다.
본 발명(청구항 7)은 상기 청구항 2에 있어서, 상기 상위 처리 유닛은 상기 분할 태스크의 실행에 필요한 데이터를 압축하여, 각각 상기 중간 처리 유닛에 전송하는 것을 특징으로 하는 계층 구조를 갖는 공유 버스형 병렬 계산기를 제공한다.
본 발명(청구항 8)은 상기 청구항 2에 있어서, 상기 중간 처리 유닛은 상기 분할 태스크의 실행에 필요한 데이터를 압축하여, 각각 상기 하위 처리 유닛에 전송하는 것을 특징으로 하는 계층 구조를 갖는 공유 버스형 병렬 계산기를 제공한다.
본 발명(청구항 9)은 상기 청구항 2에 있어서, 상기 중간 처리 유닛은 DMA 전송 처리 유닛인 것을 특징으로 하는 계층 구조를 갖는 공유 버스형 병렬 계산기를 제공한다.
본 발명(청구항 10)은 상기 청구항 9에 있어서, 상기 DMA 전송 처리 유닛은 프로그래머블한 것을 특징으로 하는 계층 구조를 갖는 공유 버스형 병렬 계산기를 제공한다.
전형적인 실시예에서는, 계층형 공유 버스 멀티프로세서 시스템의 중간 계층의 처리 유닛은 통상의 프로세서와 동등한 프로그래머블 능력을 갖는 프로세서와, 명령 메모리와, 데이터 메모리를 구비하고 있다. 그래서, 하위 프로세서로부터의 상태 신호를 받아, 대용량의 전송 데이터용 메모리를 갖는 DMA 컨트롤러에 의해서,전송 데이터의 압축·전개, 프로그래머블한 부하 분산, 하위 프로세서의 가동 상황에 따른 부하 분산이 행해진다.
도 1은 본 발명의 제1 실시 형태에 의한 계층 버스형 멀티프로세서 시스템의 전체적인 형상을 도시한 블록도.
도 2는 본 발명의 제1 실시 형태에서 이용되는 멀티칩 모듈(MCM)을 도시한 도면.
도 3은 본 발명의 제2 실시 형태에 의한 계층 버스형 멀티프로세서 시스템의 전체적인 형상을 도시한 블록도.
도 4는 본 발명의 제2 실시 형태에서 이용되는 멀티칩 모듈(MCM)을 도시한 도면.
도 5는 중간 계층 유닛의 1개의 구성을 나타내는 블록도.
도 6은 화상에 표시되어 있는 오브젝트끼리의 충돌 판정을 행하는 경우를 설명하는 도면.
도 7은 화상에 표시되어 있는 오브젝트끼리의 충돌 판정을 행하는 경우를 설명하는 도면.
도 8은 화상에 표시되어 있는 오브젝트끼리의 충돌 판정을 행하는 경우를 설명하는 도면.
도 9는 종래의 계층 버스형 멀티프로세서 시스템과, 본 발명에 의한 계층 버스형 멀티프로세서 시스템과의 비교를 도시한 도면.
<도면의 주요 부분에 대한 부호의 설명>
101a∼101f, 201a∼201f : 집적회로 칩
102A∼102E, 202A∼202E : 배선층
110, 210 : GHQ 처리 유닛
111, 211 : GHQ용 메인 메모리
113, 213 : GHQ 프로세서
120, 220 : SQUAD용 처리 유닛
121, 221 : SQUAD용 DMA 메모리
123, 223 : SQUAD 커맨더 프로세서
125, 225 : SQUAD용 명령 메모리
127, 227 : SQUAD용 데이터 메모리
130, 230 : FLIGHT 처리 유닛
131, 231 : FLIGHT용 DMA 메모리
133, 233 : FLIGHT 커맨더 프로세서
137, 237 : FLIGHT용 데이터 메모리
140, 240 : FIGHTER 처리 유닛
141, 241 : FIGHTER용 메모리
143, 243 : FIGHTER 프로세서
도 1은 본 발명의 제1 실시 형태에 의한 계층 버스형 멀티프로세서 시스템의 전체적인 형상을 도시한 블록도이다. 이 계층 버스형 멀티프로세서 시스템은 1 G 바이트의 GHQ용 메인 메모리(111)와, GHQ 프로세서(113)와, 후술하는 바와 같이 각각 복수의 프로세서를 구비한 4개의 SQUAD 처리 유닛(120)으로 이루어져 있다. 이 SQUAD 처리 유닛(120)은 멀티 칩 모듈에 실장되어 있다. 이들 CHQ 프로세서(113)와 4개의 SQUAD 처리 유닛(120) 및 GHQ용 메인 메모리(111)는 제1 레벨 버스로 접속되어 있다.
이상의 5개의 요소는, 즉 GHQ용 메인 메모리(111)를 형성하는 메모리 모듈과, GHQ 프로세서(113) 및 4개의 멀티칩 모듈은 상기 제1 레벨 버스가 형성되어 있는 프린트 배선판(101) 상에서 서로 접속된다.
한편, 4개의 SQUAD 처리 유닛(120)은 멀티 칩 모듈로서 실장된다. 멀티 칩 모듈(MCM)은 통상의 단일 칩 패키지의 서브 시스템 내에 삽입되는 복수의 패키지되어 있지 않은 집적 회로로 이루어진다. 어떤 형의 멀티칩 모듈은 기판과, 박막 상호 접속 구조체와, 이 박막 상호 접속 구조체 상에 부착되어 에폭시 패시베이션 재료로써 포위된 복수의 집적 회로를 포함하고 있다.
MCM은 사용자에 대하여, 종래의 도금 관통 구멍 및 표면 실장 기법에 의한 프린트 배선판보다도, 보다 높은 주파수 성능을 실현하는, 즉 기판 상에 멀티 칩을밀집시켜 패키징함으로써, 배선 용량과 함께 전파 거리가 감소되고, 이 때문에 일반적으로 성능의 향상이 가능해진다.
도 2에 본 실시예에서 이용되는 멀티 칩 모듈(MCM)을 도시한다. MCM은 다수의 층(102A∼102E)으로 구성되는 공통 기판 상에 부착된 IC 칩(1Ola∼1O1f) 사이에서 신호를 결합하기 위해 높은 와이어 밀도를 필요로 한다. 또, 주어진 설계에 의해 필요로 되는 특정한 제조 기술 및 배선 밀도에 적응시키도록 임의의 수의 층을 이용하는 것이 가능하다.
여기서는, IC 칩(101c) 및 IC 칩(101d)은 1칩의 DMA 메모리 모듈 및 SQUAD 프로세서이고, IC 칩(101a), IC 칩(10lb), IC 칩(101e), IC 칩(101f)는 각각 FLIGHT 처리 유닛(130)의 칩이다. 다수의 층(102A∼102E)에 공유 버스가 형성되어 있다.
도 1에 도시한 실시예에서는 특개평10-56036호에 기재되어 있는 것과 같은 종래의 멀티 레벨 세라믹 기판 기술이 이용되지만, 그것과 동등한 임의의 기술을 이용하는 것도 가능하다. 도 1의 경우, 층(102A∼102E)은 각각 패턴화 금속화층이 형성된 절연 세라믹 재료로 구성된다. 층(102A∼102D)은 각각 일부가 제거되어, 다층 캐비티를 형성하고 있고, 각 층(102B∼102E)에서의 패턴화 금속화층의 일부가 상기 캐비티의 주변에서 노출되어 있다. 층(102E)의 노출 부분은 칩 부착 면을 형성하고 있고, 도전성 에폭시, 땜납, 또는 마찬가지의 칩 부착 기술에 의해서 IC 칩(1O1a∼1O1f)이 부착되는 금속화 접지면에 의해서 거의 피복되어 있다.
층(102B∼102D)이 각각 IC 칩(101a∼101f)으로부터 MCM 입출력(I/0) 핀 또는단자(도시하지 않음)에 디지털 데이터 신호를 전송하는 신호 배선을 갖고 있다. 층(102A)은 아래쪽에 위치하는 층에 대한 화학적, 기계적 및 전기적인 보호를 행함 과 동시에 패키지 캡을 위한 부착면으로서 기능하는 정면(正面)이다. 이용 가능한 MCM 기술을 이용하여, 층(102B∼102D)에 프린트 배선, I/0 핀 및 단자를 형성하고, 이에 따라 MCM(100)을 외부 회로 요소와 결합시키는 것이 가능해진다. 와이어 본드는 각 IC 칩(1O1a∼101f)의 엣지의 하나에 형성된 본드 패드를 층(102B∼102D)의 선택된 도체 또는 본드 패드에 결합시킨다.
이러한 구성을 취함으로써, 제2 레벨 버스의 대역 폭을 상위의 프린트배선판에 비교하여 각별히 넓게 하는 것이 가능해진다. 마찬가지로, FLIGHT 처리 유닛(130) 내부에는 복수의 FIGHTER 처리 유닛(140)이 실장되어 있지만, 그곳에는 MCM 구조보다도 더욱 고속화에 유리한 단일 실리콘 기판 상의 접속으로 되어있기 때문에, 더욱 넓은 대역 폭이 달성된다. 이와 같이, 본 발명에서는 아래의 계층정도, 처리 유닛 실장의 국부화가 진행되어, 동작 주파수가 보다 고주파로 된다고 하는 특징이 있다.
시스템 전체의 통괄을 행하고 있는 것이 최상위의 GHQ 처리 유닛(110)이고, 여기서는 1칩의 GHQ 프로세서(113) 및 GHQ용 메인 메모리(111)를 포함하고 있다. 도 1에서는 계층은 4단, 즉 GHQ 처리 유닛(110), SQUAD 처리 유닛(120), FLIGHT 처리 유닛(130), FIGHTER 처리 유닛(140)으로 되어 있다. 그리고, GHQ 처리 유닛(110)의 바로 아래에는 FLIGHT 처리 유닛(130) 및 FIGHTER 처리 유닛(140)을 실장하는 4개의 SQUAD 처리 유닛(120)이 접속되어 있다. 이 GHQ 처리 유닛(110)과, SQUAD 처리 유닛(120) 및 GHQ용 메인 메모리(111)는 32 비트 폭의 제1 레벨 버스로 접속되어 있고, 전체의 대역 폭은 256 Mbyte/sec(주파수 66 MHz)로 되어 있다.
각 SQUAD 처리 유닛(120)에서, 유닛 내부의 처리 전체의 통괄을 행하고 있는 것이 SQUAD 커맨더 프로세서(123)이고, SQUAD용 명령 메모리(125) 및 SQUAD용 데이터 메모리(127)와 함께, SQUAD용 DMA 메모리(121)가 접속하고 있다. 이 SQUAD 처리 유닛(120)도 1칩에 집적되어 있다. 또한, SQUAD 커맨더 프로세서(123)의 바로 아래에는 16개의 FIGHTER 처리 유닛(140)을 통괄하는 4개의 FLIGHT 처리 유닛(130)이 접속되어 있다. 이 SQUAD 커맨더 프로세서(123)는 FLIGHT 처리 유닛(130)과, 64 비트 폭의 제2 레벨 버스로 접속되어 있고, 전체의 대역 폭은 800 Mbyte/sec(주파수100 MHz)로 되어 있다.
각 FLIGHT 처리 유닛(130)에서, 유닛 내부 처리의 전체 통괄을 행하고 있는 것이 FLIGHT 커맨더 프로세서(133)이고, FLIGHT용 명령 메모리(135) 및 FLIGHT용 데이터 메모리(137)와 함께, FLIGHT용 DMA 메모리(131)가 접속하고 있다. 이 FLIGHT 처리 유닛(130)은 SQUAD 처리 유닛(120)의 칩에 집적되어 있다. 또한, FLIGHT 커맨더 프로세서(133)의 바로 아래에는 각각 64 Kbyte의 FIGHTER용 메모리(141)를 구비한 16개의 FIGHTER 프로세서(143)가 접속되어 있다. 이 FLIGHT 처리 유닛(130)과 FIGHTER 프로세서(143)는 128 비트 폭의 버스로 접속되어 있고, 전체의 대역 폭은 2128 Mbyte/sec(주파수 133 MHz)로 되어 있다. 또한, FIGHTER 프로세서(143)의 동작 주파수는 533 MHz이다.
GHQ 처리 유닛(110)은 처리하는 문제를 각 SQUAD 처리 유닛(120)에 할당하기 위해 태스크로 분할한다. GHQ 처리 유닛(110)은 태스크를 분할하면, 그 내용을 압축하여 SQUAD 처리 유닛(120)에 전송한다. 압축 알고리즘으로서는 런 렌스법이나 하프만 부호법 등, 데이터의 성질에 적합한 것을 이용한다. 압축이 효과적이지 않거나 불필요한 경우에는, 미처리된 태스크 데이터를 전송한다. 본 발명에서는 태스크를 분할하여 하위로 갈 수록 전송하는 태스크 데이터는 감소하기 때문에, 동작 주파수가 높아지더라도, 요구되는 대역 폭의 증가는 억제된다.
SQUAD 처리 유닛(120)은 GHQ 처리 유닛(110)으로부터 태스크(필요에 따라 압축된 태스크 데이터)를 수취하면, 그 SQUAD 처리 유닛(120)의 상태(status)가 비지상태(busy)인 것을 GHQ 처리 유닛(110)에 통지한다. 그 다음에, 압축되어 있는 경우에는 그 데이터를 전개한다.
한편, SQUAD 처리 유닛(120)은 주어진 태스크를 각 FLIGHT 처리 유닛(130)에 할당하기 위해 태스크로 분할한다. SQUAD 처리 유닛(120)은 태스크를 분할하면, 그 내용을 압축하여 FLIGHT 처리 유닛(130)에 전송한다. 압축이 효과적이지 않은 경우나 불필요한 경우에는 미처리된 태스크 데이터를 전송한다. FLIGHT 처리 유닛(130)은 SQUAD 처리 유닛(120)으로부터 태스크(필요에 따라 압축된 태스크 데이터)를 수취하면, 그 FLIGHT 처리 유닛(130)의 상태를 비지상태로 하도록 SQUAD 처리 유닛(120)에 의뢰한다. 그 다음에, 압축되어 있는 경우에는 그 데이터를 전개한다.
FLIGHT 처리 유닛(130)은 그 태스크를 FIGHTER 처리 유닛(140)에 할당하기위해서 더욱 미세하게 분할하여, 각 FIGHTER 처리 유닛(140)에 그 분할 후의 태스크 데이터를 전송한다. 또한, 여기서 태스크 데이터란, 처리 내용과, 그것에 필요한 데이터를 의미한다.
즉, 중간 노드가 되는 SQUAD 처리 유닛(120) 및 FLIGHT 처리 유닛(130)의 주된 역할은 스케쥴링과 데이터 전송이고, 실제로 문제를 해결하는 것은 최하층에 위치하는 FIGHTER 처리 유닛(140)이 된다. FIGHTER 처리 유닛(140)이 태스크를 수취하면, 상위의 FLIGHT 처리 유닛(130)에, 그 FIGHTER 처리 유닛(140)의 상태를 비지상태로 하도록 의뢰하고 나서, 그 태스크를 처리한다. 주어진 태스크의 처리가 종료하면, 결과를 FLIGHT 처리 유닛(130)에 보고하고, 상태가 아이들 상태(idle)로 복귀된다.
아이들 상태로 되돌아간 FIGHTER 처리 유닛(140)을 발견하면, FLIGHT 처리 유닛(130)은 분할되어 아직 미처리된 태스크를 그 FIGHTER 처리 유닛(140)에 할당한다.
1개의 FLIGHT 처리 유닛(130)으로 분할된 모든 태스크가 FIGHTER 처리 유닛(140)에 의해서 처리되면, FLIGHT 처리 유닛(130)은 SQUAD 처리 유닛(120)에 결과를 전송하고, 그 상태가 아이들 상태로 복귀된다. SQUAD 처리 유닛(120)은 FLIGHT 처리 유닛(130)의 처리와 마찬가지로, 아이들 상태의 FLIGHT 처리 유닛(130)을 발견하면 미처리된 태스크를 그 FLIGHT 처리 유닛(130)에 할당한다.
마찬가지로, SQUAD 처리 유닛(120)에서는 그 하위에 속하는 모든 FLIGHT 처리 유닛(130)으로부터 처리 결과가 전송되면, GHQ 처리 유닛(110)에 결과를 전송하고, 그 SQUAD 처리 유닛(120)의 상태가 아이들 상태로 복귀된다.
역시, GHQ 처리 유닛(110)은 FLIGHT 처리 유닛(130)의 처리와 마찬가지로, 아이들 상태의 SQUAD 처리 유닛(120)을 발견하면 미처리 태스크가 있으면, 그 태스크를 SQUAD 처리 유닛(120)에 할당한다.
GHQ 처리 유닛(110)이 가지고 있는 모든 태스크의 처리가 SQUAD 처리 유닛(120)에서 완료되면, 주어진 문제 전체의 처리가 완료된다.
이상과 같이, FIGHTER 처리 유닛(140)과, 그 상위의 FLIGHT 처리 유닛(130), SQUAD 처리 유닛(120) 및 최상위의 GHQ 처리 유닛(110)과는 처리 내용이 다르다. FIGHTER 처리 유닛(140)은 실제의 처리 계산만을 행하기 때문에, 복잡한 판단이나 얽힌 루틴을 실행하는 능력은 필요가 없지만, 계산 능력은 높은 것이 요구된다. 따라서, FIGHTER 프로세서(143)는 정수 유닛과 부동 소수점 유닛을 복수 갖는 것이 바람직하다. 여기서는, 연산 유닛으로서, 정수 유닛 1개와 부동 소수점 유닛을 2개 갖는 것으로 한다. 또한, 고속화를 돕는 목적으로, 해저드 처리나 인터럽트 처리에 요하는 회로를 생략하고 있다. 따라서, 동작 주파수가 533 MHz로 하면, 1.066 GFLOPS의 처리가 가능해진다.
한편, SQUAD 처리 유닛(120)이나 FLIGHT 처리 유닛(130)은 브로커이고, 기본적으로 상위 계층 및 하위 계층과의 데이터의 송수신 제어를 행한다. 따라서, SQUAD 커맨더 프로세서(123)나 FLIGHT 커맨더 프로세서(133)가 실장해야 할 연산 유닛은 가장 소규모의 것으로도 충분하다. 여기서는, 정수 유닛을 1개 갖는 것으로 한다.
또한, GHQ 처리 유닛(101)은 메인의 프로그램을 실행하는 것이고, GHQ 커맨더 프로세서로서는 범용성이 있는 프로세서가 이용된다. 따라서, 일반적인 고성능 마이크로 프로세서를 이용할 수 있다.
따라서, 이상과 같은 구성은 다음과 같은 기술적인 사상이 실장되어 있다. 우선, GHQ용 메인 메모리(111)를 형성하는 메모리 모듈과, GHQ 프로세서(113) 및 4개의 멀티 칩 모듈의 5개의 구성 요소는 66 MHz의 클럭에서 동기가 취해진다. 여기서는, 비교적 넓은 영역에 걸쳐 동기를 취할 필요가 있기 때문에, 동기 클럭은 비교적 낮게 억제되어 있다.
다음에, SQUAD 처리 유닛(120)은 각각 GHQ 처리 유닛(110)으로부터 66 MHz의 동기 클럭을 받아, 이것을 PLL 등으로 1.5배로 하여 100 MHz로 하고, 이것을 유닛 내의 동기 클럭으로 한다. 여기서는, 4개의 FLIGHT 처리 유닛(130), SQUAD 커맨더 프로세서(123), SQUAD용 명령 메모리(125), SQUAD용 데이터 메모리(127) 및 SQUAD용 DMA 메모리(121)가 100 MHz의 동기 클럭에 동기하여 동작한다. SQUAD 처리 유닛(120)의 1개의 영역은 GHQ 처리 유닛 전체 영역의 일부에만 국부 존재화하고 있어, 신호의 전파 거리나 스큐도 그 만큼 작아져서, 고주파수에서의 동작이 가능해지고 있다.
다음에, FLIGHT 처리 유닛(130)은 각각 SQUAD 처리 유닛(120)으로부터 100 MHz의 동기 클럭을 받아, 이것을 PLL 등으로 1. 5배로 하여 133 MHz로 하고, 이것을 유닛 내의 동기 클럭으로 한다. 여기서는, 16개의 FIGHTER 처리 유닛(140), FLIGHT 커맨더 프로세서(133), FLIGHT용 명령 메모리(125) 및 FLIGHT용 데이터 메모리(137) 및 FLIGHT용 DMA 메모리(131)가 133 MHz의 동기 클럭에 동기하여 동작한다. FLIGHT 처리 유닛(130)의 1개의 영역은 SQUAD 처리 유닛(120)의 전체 영역의 일부에만 국부 존재화하고 있어, 더욱 고주파수에서의 동작이 가능해지고 있다.
또한, FIGHTER 처리 유닛(140)은 각각 FLIGHT 처리 유닛(130)으로부터 133 MHz의 동기 클럭을 받아, 이것을 PLL 등으로 2배로 하여 266 MHz로 하고, 이것을 유닛 내의 동기 클럭으로 한다. 이것을 PLL 등으로 2배로 하여 533 MHz로 하고, 이것을 FLIGHT 커맨더 프로세서(133)의 동작 클럭으로 한다. 여기서는, FLIGHT 커맨더 프로세서(133)와 FIGHTER용 메모리(141)가 266 MHz의 동기 클럭에 동기하여 동작한다. FIGHTER 처리 유닛(140)은 매우 작은 영역에 집적되어 있고, 신호의 전파 거리나 스큐도 작아서, 고주파수에서 동작이 가능해지고 있다.
다음에, 본 발명의 특징 부분의 1개인, 중간 계층의 구성, 즉 SQUAD 처리 유닛(120) 및 FLIGHT 처리 유닛(130)의 구성을 설명한다. 도 5는 이 중간 계층의 1개 유닛의 구성을 나타내는 블록도이다. 이 중간 계층 유닛은 커맨더 프로세서로서의 범용 프로세서에 10 ch의 DMA 컨트롤러가 접속되어 있다. 이 DMA 컨트롤러는 범용 프로세서와 코프로세서 접속을 하고 있어, 기존의 DMA 컨트롤러를 이용할 수도 있다.
이 DMA 컨트롤러는 버스에 접속되어 있고, 그 버스에는 DMA 전송용의 대용량 메모리, 상위 계층 버스로의 접속선, 하위 계층 버스로의 접속선이 접속되어 있다. 각각의 접속선과 버스의 사이에는 FIFO가 설치된다. 또한, 프로세서 코어에는 하위 프로세서로부터의 상태 정보를 수집하는 신호선을 갖는다. SQUAD 처리유닛(120)을 예로 하면, 하위의 4개의 FLIGHT 처리 유닛(130)으로부터 4개의 상태 신호선이 오고 있다. 각각의 신호선은 1 bit 이상이고, 대응하는 하위 계층의 프로세서가 비지상태인지 아닌지를 나타내고 있다.
커맨더 프로세서는 데이터 메모리와 명령 메모리가 설치되어 있고, 여기에 이 커맨더 프로세서가 실행해야 할 프로그램과 필요한 데이터가 저장되어 있다. 여기서 실행되는 프로그램은 상위 계층에서의 데이터를 필요에 따라서 전개하여, 커맨드를 해석해서, 필요한 처리를 행한 뒤에, 태스크의 배당 및 스케쥴링을 행하여, 처리 대상 데이터를 하위 계층으로 전송한다. 구체적으로는, 자기쪽의 처리 유닛에 할당된 처리 데이터는 DMA 컨트롤러에 의해서 고속으로 DMA 전송용 메모리에 전송되어, 적절하게 이용가능한 하위 계층의 처리 유닛으로 DMA 전송된다. 이 알고리즘은 데이터 메모리에 저장되는 프로그램으로 실장된다. 바꿔 말하면, 이 중간 계층 유닛은 전체로서 지능 DMA 시스템이라고 해야 되는 것을 구성한다.
또한, 극히 특정한 처리로 특화된 시스템, 예를 들면 범용성을 필요로 하지 않는 것 같은 그래픽 시뮬레이터 등에서는 HQ 커맨더 프로세서 이외의 프로세서는 DMA 컨트롤러를 포함하여, 하드웨어로 실장된 비(非) 노이만형 DMA 프로세서로 하는 것도 가능하다.
다음에, 여기서 이용되는 메모리 구조를 설명한다. 1개의 가장 용이한 실장은 모든 구성 프로세서에 대하여, 로컬 메모리 공간이 수반된다고 하는 것이다. 전부 로컬이므로, 스누프·버스·프로토콜이나 코히어런트·트랜잭션을 특별히 준비할 필요는 없다.
이 경우, GHQ 프로세서(113)의 메모리 공간은 GHQ용 메인 메모리(111)에만 맵핑된다. 또한, SQUAD 커맨더 프로세서(123)의 메모리 공간은 SQUAD용 명령 메모리(125) 및 SQUAD용 데이터 메모리(127)와 함께, SQUAD용 DMA 메모리(121)에 맵핑된다. GHQ 프로세서(113)의 메모리 공간과 SQUAD 커맨더 프로세서(123)의 메모리 공간은 독립적이다. 또한, 다른 SQUAD 커맨더 프로세서(123)의 메모리 공간끼리도 독립적이다.
이와 마찬가지로, FLIGHT 커맨더 프로세서(133)의 메모리 공간은 FLIGHT 용 명령 메모리(135) 및 FLIGHT용 데이터 메모리(137)와 함께, 그 FLIGHT용 DMA 메모리(131)에 맵핑된다. 여기서도, FLIGHT 커맨더 프로세서(133)의 메모리 공간은 GHQ 프로세서(113)의 메모리 공간이나 SQUAD 커맨더 프로세서(123)의 메모리 공간과는 독립적이다. 또한, 다른 FLlGHT 커맨더 프로세서(133)의 메모리 공간끼리도 독립적이다.
이와 마찬가지로, FIGHTER 프로세서(143)의 메모리 공간은 각각 64 Kbyte의 FIGHTER용 메모리(141)에 맵핑된다. 역시, FIGHTER 프로세서(143)의 메모리 공간은 FLIGHT 커맨더 프로세서(133), GHQ 프로세서(113)의 메모리 공간, SQUAD 커맨더 프로세서(123)의 메모리 공간과는 독립적이다. 또한, 다른 FIGHTER 프로세서(143)의 메모리 공간끼리도 독립적이다.
또한, GHQ 프로세서(113)의 메모리 공간을 모든 프로세서의 메모리 공간으로 분할하여 맵핑해도 좋다. 이 경우, 형식 상, 상위 계층과 하위 계층 사이의 데이터의 송수신은 메모리의 이동 명령이라는 것으로 된다. 이 메모리의 이동 명령은상위 계층과 하위 계층 사이의 DMA 커맨드로서 실장된다.
이 경우, GHQ 처리 유닛(110)의 실 메모리와 하위 계층의 실 메모리와의 관계의 설정 방법으로서는, 예를 들면 SQUAD 처리 유닛(120)의 실 메모리가 GHQ 처리 유닛(110)의 실 메모리와 동일 어드레스를 공유하는 방법이 있다. 그러나, GHQ 프로세서(113)가 실행하고 있는 프로그램이 처리 유닛 프로그램의 실행 내용을 완전히 컨트롤하고 있기 때문에, 스누프·버스·프로토콜이나 코히어런트·트랜잭션을 특별히 준비할 필요는 없다. 마찬가지로, FLIGHT 처리 유닛(130)의 실 메모리는 SQUAD 처리 유닛(120)의 실 메모리와 동일 어드레스를 공유하고, FIGHTER 처리 유닛(140)의 실 메모리는 FLIGHT 처리 유닛(130)의 실 메모리와 동일 어드레스를 공유한다.
도 3은 본 발명의 제2 실시 형태에 의한 계층 버스형 멀티프로세서 시스템의 전체적인 형상을 도시한 블록도이다. 이 계층 버스형 멀티프로세서 시스템은 1 G 바이트의 1칩의 GHQ용 메인 메모리(211)와, 1칩의 GHQ 프로세서(213)와, 후술하는 바와 같이 각각 복수의 프로세서를 구비한 4개의 SQUAD 처리 유닛(220)으로 이루어져 있다. 이 SQUAD 처리 유닛(220)도 1칩에 집적되어 있다. 이들 GHQ 프로세서(213)와 4개의 SQUAD 처리 유닛(220) 및 GHQ용 메인 메모리(211)는 제1 레벨 버스로 접속되어 있다.
이상 5개의 집적 회로의 칩은 멀티 칩 모듈로서 실장된다.
멀티 칩 모듈(MCM)은 통상의 단일 칩 패키지의 서브 시스템 내에 삽입되는 복수의 패키지되어 있지 않은 집적 회로로 이루어진다. 어떤 형의 멀티칩 모듈은기판과, 박막 상호 접속 구조체와, 이 박막 상호 접속 구조체 상에 부착되고 또한 에폭시 패시베이션 재료로써 포위된 복수의 집적 회로를 포함하고 있다.
MCM은 사용자에 대하여, 종래의 도금 관통 구멍 및 표면 실장 기법에 의한 프린트 배선판보다도, 보다 높은 주파수 성능을 실현하는, 즉 기판 상에 멀티 칩을 밀집시켜 패키징함으로써, 배선 용량과 함께 전파 거리가 감소되고, 이 때문에 일반적으로 성능이 증대된다.
도 4에 본 실시예에서 이용되는 멀티칩 모듈(MCM)을 도시한다. MCM은 다수의 층(202A∼202E)으로 구성되는 공통 기판 상에 부착된 IC 칩(201a∼201f) 사이에서 신호를 결합하기 위해 높은 와이어 밀도를 필요로 한다. 또, 주어진 설계에 의해 필요로 되는 특정한 제조 기술 및 배선 밀도에 적응시키도록 임의의 수의 층을 이용하는 것이 가능하다.
여기서는, IC 칩(201c) 및 IC 칩(201d)은 GHQ용 메인 메모리(211) 및 GHQ 프로세서(213)이고, IC 칩(20la), IC 칩(201b), IC 칩(20le), IC 칩(201f)는 각각 SQUAD 처리 유닛(220)의 칩이다. 다수의 층(202A∼202E)에 10개의 램 버스를 포함하는 제1 레벨 버스의 배선이 설치되어 있다.
도 3에 도시한 실시예에서는 특개평10-56036호에 기재되어 있는 것 같은 종래의 멀티 레벨 세라믹 기판 기술이 이용되지만, 그것과 동등한 임의의 기술을 이용하는 것도 가능하다. 도 3의 경우, 층(202A∼202E)은 각각 패턴화 금속화층이 형성된 절연 세라믹 재료로 구성된다. 층(202A∼202D)은 각각 일부가 제거되어, 다층 캐비티를 형성하고 있고, 각 층(202B∼202E)에서의 패턴화 금속화층의 일부가상기 캐비티의 주변에서 노출되어 있다. 층(202E)의 노출 부분은 칩 부착 면을 형성하고 있고, 도전성 에폭시, 땜납, 또는 마찬가지의 칩 부착 기술에 의해서 IC 칩(201a∼201f)이 부착되는 금속화 접지면에 의해서 거의 피복되어 있다.
층(202B∼202D)이 각각 lC 칩(201a∼201f)에서 MCM 입출력(I/0) 핀 또는 단자(도시하지 않음)로 디지털 데이터 신호를 전송하는 신호 배선을 갖고 있다. 층(202A)은 아래쪽에 위치하는 층에 대한 화학적, 기계적 및 전기적인 보호를 행함 과 동시에 패키지 캡을 위한 부착면으로서 기능하는 정면이다. 이용 가능한 MCM 기술을 이용하여, 층(202B∼202D)에 프린트 배선, I/0 핀 및 단자를 형성하고, 이에 따라 MCM(100)을 외부 회로 요소와 결합시키는 것이 가능해진다. 와이어 본드는 각 IC 칩(201a∼201f)의 엣지의 하나에 형성된 본드 패드를 층(202B∼202D)의 선택된 도체 또는 본드 패드에 결합시킨다.
이러한 구성을 취함으로써, 제1 레벨 버스의 대역 폭을 통상의 프린트배선판에 비교하여 각별히 넓게 하는 것이 가능해진다. 마찬가지로, SQUAD 처리 유닛(220) 내부에는 복수의 FLIGHT 처리 유닛(230)이 실장되어 있지만, 그곳에는 MCM 구조보다도 더욱 고속화에 유리한 단일 실리콘 기판 상의 접속으로 되어있기 때문에, 더욱 넓은 대역 폭이 달성된다. 이와 같이, 본 발명에서는 아래의 계층 정도, 처리 유닛 실장의 국부화가 진행되어, 동작 주파수가 보다 고주파로 된다고 하는 특징이 있다.
시스템 전체의 통괄을 행하고 있는 것이 최상위의 GHQ 처리 유닛(210)이고, 여기서는 1칩의 GHQ 프로세서(213) 및 GHQ용 메인 메모리(211)를 포함하고 있다.도 3에서는 계층은 4단, 즉 GHQ 처리 유닛(210), SQUAD 처리 유닛(220), FLIGHT 처리 유닛(230), FIGHTER 처리 유닛(240)으로 되어 있다. 그리고, GHQ 처리 유닛(210)의 바로 아래에는 FLIGHT 처리 유닛(230) 및 FIGHTER 처리 유닛(240)을 실장하는 4개의 SQUAD 처리 유닛(220)이 접속되어 있다. 이 GHQ 처리 유닛(210)과, SQUAD 처리 유닛(220) 및 GHQ용 메인 메모리(211)는 10개의 램 버스로 접속되어 있고, 전체의 대역 폭은 16 Gbyte/sec(주파수 400 MHz x 2)로 되어 있다. GHQ용 메인 메모리(211)를 형성하는 메모리 모듈과, GHQ 프로세서(213) 및 4개의 멀티 칩 모듈의 5개의 구성 요소는 187.5 MHz의 클럭에서 동기가 취해지고 있다. 따라서, SQUAD 처리 유닛(220)은 각각 GHQ 처리 유닛(210)으로부터 187.5 MHz의 동기 클럭을 입력하고 있다.
각 SQUAD 처리 유닛(220)에서, 유닛 내부 처리의 전체 통괄을 행하고 있는 것이 SQUAD 커맨더 프로세서(223)이고, SQUAD용 명령 메모리(225) 및 SQUAD용 데이터 메모리(227)와 함께, SQUAD용 DMA 메모리(221)가 접속하고 있다. 이 SQUAD 처리 유닛(220)도 1칩에 집적되어 있다. 또한, SQUAD 커맨더 프로세서(223)의 바로 아래에는 16개의 FIGHTER 처리 유닛(240)을 통괄하는 4개의 FLIGHT 처리 유닛(230)이 접속되어 있다. 이 SQUAD 커맨더 프로세서(223)는 FLIGHT 처리 유닛(230)과, 6144 비트 폭의 버스로 접속되어 있고, 전체의 대역 폭은 388 Gbyte/sec(주파수 375 MHz)로 되어 있다. 4개의 FLIGHT 처리 유닛(230), SQUAD 커맨더 프로세서(223), SQUAD용 명령 메모리(225), SQUAD용 데이터 메모리(227) 및 SQUAD용 DMA 메모리(221)는 375 MHz의 동기가 취해지고 있다. 따라서, FLIGHT 처리 유닛(230)은 각각 SQUAD 처리 유닛(220)으로부터 375 MHz의 동기 클럭을 입력하고 있다.
각 FLIGHT 처리 유닛(230)에서, 유닛 내부 처리의 전체 통괄을 행하고 있는 것이 FLIGHT 커맨더 프로세서(233)이고, FLIGHT용 명령 메모리(225) 및 FLIGHT용 데이터 메모리(237)와 함께, FLIGHT용 DMA 메모리(231)가 접속하고 있다. 이 FLIGHT 처리 유닛(230)은 SQUAD 처리 유닛(220)의 칩에 집적되어 있다. 또한, FLIGHT 커맨더 프로세서(233)의 바로 아래에는 각각 64 Kbyte의 FIGHTER용 메모리(241)와 FIGHTER 프로세서(243)로 이루어지는 16개의 FIGHTER 처리 유닛(240)이 접속되어 있다. 16개의 FIGHTER 프로세서(243), FLIGHT 커맨더 프로세서(233), FLIGHT용 명령 메모리(225) 및 FLIGHT용 데이터 메모리(237), FLIGHT용 DMA 메모리(231)는 750 MHz의 클럭에서 동기가 취해지고 있다. 따라서, FIGHTER 처리 유닛(240)은 각각 FLIGHT 처리 유닛(230)으로부터 750 MHz의 동기 클럭을 입력하고 있다.
이 FLIGHT 처리 유닛(230)과 FIGHTER 프로세서(243)는 1024 비트 폭의 버스로 접속되어 있고, 전체의 대역 폭은 99 Gbyte/sec(주파수 750 MHz)로 되어 있다. 또한, FIGHTER 프로세서(243)의 동작 주파수는 1.5 GHz이다.
GHQ 처리 유닛(210)은 처리하는 문제를 각 SQUAD 처리 유닛(220)에 할당하기 위해서 태스크로 분할한다. GHQ 처리 유닛(210)은 태스크를 분할하면, 그 내용을 압축하여 SQUAD 처리 유닛(220)에 전송한다. 압축 알고리즘으로서는 런 렌스법이나 하프만 부호법 등, 데이터의 성질에 적합한 것을 이용한다. 압축이 효과적이지않거나 불필요한 경우에는 미처리된 태스크 데이터를 전송한다. 본 발명에서는 태스크를 분할하기 때문에, 하위로 갈 수록 전송하는 태스크 데이터는 감소하므로, 동작 주파수가 높게 되더라도, 요구되는 대역 폭의 증가는 억제된다.
SQUAD 처리 유닛(220)은 GHQ 처리 유닛(210)으로부터 태스크(필요에 따라 압축된 태스크 데이터)를 수취하면, 그 SQUAD 처리 유닛(220)의 상태가 비지상태인 것을 GHQ 처리 유닛(210)에 통지한다. 그 다음에, 압축되어 있는 경우에는 그 데이터를 전개한다.
한편, SQUAD 처리 유닛(220)은 주어진 태스크를 각 FLIGHT 처리 유닛(230)에 할당하기 위해서 태스크로 분할한다. SQUAD 처리 유닛(220)은 태스크를 분할하면, 그 내용을 압축하여 FLlGHT 처리 유닛(230)에 전송한다. 압축이 효과적이지 않은 경우나 불필요한 경우에는 미처리된 태스크 데이터를 전송한다. FLIGHT 처리 유닛(230)은 SQUAD 처리 유닛(220)으로부터 태스크(필요에 따라 압축된 태스크 데이터)를 수취하면, 그 FLIGHT 처리 유닛(230)의 상태를 비지상태로 하도록 SQUAD 처리 유닛(220)에 의뢰한다. 그 다음에, 압축되어 있는 경우에는 그 데이터를 전개한다.
FLIGHT 처리 유닛(230)은 그 태스크를 FIGHTER 처리 유닛(240)에 할당하기 위해서 더욱 미세하게 분할하여, 각 FIGHTER 처리 유닛(240)에 그 분할 뒤의 태스크 데이터를 전송한다. 또한, 여기서 태스크 데이터란, 처리 내용과, 그것에 필요한 데이터를 의미한다.
즉, 중간 노드가 되는 SQUAD 처리 유닛(220) 및 FLIGHT 처리 유닛(230)의 주된 역할은 스케쥴링과 데이터 전송이고, 실제로 문제를 해결하는 것은 최하층에 위치하는 FIGHTER 처리 유닛(240)이 된다. FIGHTER 처리 유닛(240)이 태스크를 수취하면, 상위의 FLIGHT 처리 유닛(230)으로, 그 FIGHTER 처리 유닛(240)의 상태를 비지상태로 하도록 의뢰하고 나서, 그 태스크를 처리한다. 주어진 태스크의 처리가 종료하면, 결과를 FLIGHT 처리 유닛(230)에 보고하고, 상태가 아이들 상태로 복귀된다.
아이들 상태로 되돌아간 FIGHTER 처리 유닛(240)을 발견하면, FLIGHT 처리 유닛(230)은 분할되어 아직 미처리된 태스크를 그 FIGHTER 처리 유닛(240)에 할당한다.
1개의 FLIGHT 처리 유닛(230)으로 분할된 모든 태스크가 FIGHTER 처리 유닛(240)에 의해서 처리되면, FLIGHT 처리 유닛(230)은 SQUAD 처리 유닛(220)에 결과를 전송하고, 그 상태가 아이들 상태로 복귀된다. SQUAD 처리 유닛(220)은 FLIGHT 처리 유닛(230)의 처리와 마찬가지로, 아이들 상태의 FLIGHT 처리 유닛(230)을 발견하면 미처리 태스크를 그 FLIGHT 처리 유닛(230)에 할당한다.
마찬가지로, SQUAD 처리 유닛(220)에서는 그 하위에 속하는 모든 FLIGHT 처리 유닛(230)으로부터 처리 결과가 전송되면, GHQ 처리 유닛(210)에 결과를 전송하고, 그 SQUAD 처리 유닛(220)의 상태가 아이들 상태로 복귀된다.
역시, GHQ 처리 유닛(210)은 FLIGHT 처리 유닛(230)의 처리와 마찬가지로, idle의 SQUAD 처리 유닛(220)을 발견하면 미처리 태스크가 있으면, 그 태스크를 SQUAD 처리 유닛(220)에 할당한다.
GHQ 처리 유닛(210)이 갖고 있는 모든 태스크의 처리가 SQUAD 처리 유닛(220)에서 완료되면, 주어진 문제 전체의 처리가 완료된다.
이상과 같이, FlGHTER 처리 유닛(240)과, 그 상위의 FLIGHT 처리 유닛(230), SQUAD 처리 유닛(220) 및 최상위의 GHQ 처리 유닛(210)은 처리 내용이 다르다. FIGHTER 처리 유닛(240)은 실제의 처리 계산만을 행하기 때문에, 복잡한 판단이나 얽힌 루틴을 실행하는 능력은 필요없지만, 계산 능력은 높은 것이 요구된다. 따라서, FIGHTER 프로세서(243)는 정수 유닛과 부동 소수점 유닛을 복수 갖는 것이 바람직하다. 여기서는, 연산 유닛으로서, 정수 유닛 1개와 부동 소수점 유닛을 2개 갖는 것으로 한다. 또한, 고속화를 돕는 목적으로, 해저드 처리나 인터럽트 처리에 요하는 회로를 생략하고 있다. 따라서, 동작 주파수를 1.5 GHz로 하여, 전체적으로 24 GFLOPS의 처리가 가능해진다.
한편, SQUAD 처리 유닛(220)이나 FLIGHT 처리 유닛(230)은 브로커이고, 기본적으로 상위 계층 및 하위 계층과의 데이터 송수신의 제어를 행한다. 따라서, SQUAD 커맨더 프로세서(223)나 FLIGHT 커맨더 프로세서(233)가 실장해야 할 연산 유닛은 가장 소규모의 것이라도 충분하다. 여기서는, 정수 유닛을 1개 갖는 것으로 한다.
또한, GHQ 처리 유닛(210)은 메인의 프로그램을 실행하는 것이고, GHQ 커맨더 프로세서로서는 범용성이 있는 프로세서가 이용된다. 따라서, 일반적인 고성능 마이크로 프로세서를 이용할 수 있다.
따라서, 이상과 같은 구성은 다음과 같은 기술적인 사상이 실장되어 있다.우선, GHQ용 메인 메모리(211)를 형성하는 메모리 모듈과, GHQ 프로세서(213) 및 4개의 멀티 칩 모듈의 5개의 구성 요소는 187.5 MHz의 클럭에 동기가 취해진다. 여기서는, 비교적 넓은 영역에 걸쳐, 동기를 취할 필요가 있기 때문에, 동기 클럭은 비교적 낮게 억제되어 있다. 또한, GHQ용 메인 메모리(211)는 400 MHz의 클럭에서 동작하지만, 이것은 비동기에서 데이터의 전송을 행하는 것으로, 동기를 취하는 클럭이 아니다.
다음에, SQUAD 처리 유닛(220)은 각각 GHQ 처리 유닛(210)으로부터 187.5 MHz의 동기 클럭을 받아, 이것을 2배로 하여 375 MHz로 하고, 이것을 유닛 내의 동기 클럭으로 한다. 여기서는, 4개의 FLIGHT 처리 유닛(230), SQUAD 커맨더 프로세서(223), SQUAD용 명령 메모리(225), SQUAD용 데이터 메모리(227) 및 SQUAD용 DMA 메모리(221)가 375 MHz의 동기 클럭에 동기하여 동작한다. SQUAD 처리 유닛(220)의 1개의 영역은 GHQ 처리 유닛 전체 영역의 일부에만 국부화하고 있어, 신호의 전파 거리나 스큐도 그 만큼 작아져서, 고주파수에서의 동작이 가능해지고 있다.
다음에, FLIGHT 처리 유닛(230)은 각각 SQUAD 처리 유닛(220)으로부터 375 MHz의 동기 클럭을 받아, 이것을 2배로 하여 750 MHz로 하고, 이것을 유닛 내의 동기 클럭으로 한다. 여기서는, 16개의 FIGHTER 처리 유닛(240), FLIGHT 커맨더 프로세서(233), FLIGHT용 명령 메모리(225) 및 FLIGHT용 데이터 메모리(237) 및 FLIGHT용 DMA 메모리(231)가 750 MHz의 동기 클럭에 동기하여 동작한다. FLIGHT 처리 유닛(230)의 1개의 영역은 SQUAD 처리 유닛(220) 전체 영역의 일부에만 국부화하고 있어, 더욱 고주파수에서의 동작이 가능해지고 있다.
또한, FIGHTER 처리 유닛(240)은 각각 FLIGHT 처리 유닛(230)으로부터 750 MHz의 동기 클럭을 받아, 이것을 2배로 하여 1.5 GHz로 하고, 이것을 유닛 내의 동기 클럭으로 한다. 여기서는, FLIGHT 커맨더 프로세서(233)와 FIGHTER용 메모리(241)가 1.5 GHz의 동기 클럭에 동기하여 동작한다. FIGHTER 처리 유닛(240)은 매우 작은 영역에 집적되어 있어, 신호의 전파 거리나 스큐도 작아서, 고주파수에서 동작이 가능해지고 있다.
여기서, 예를 들면 FLIGHT 처리 유닛(230) 내부의 처리는 750 MHz에서 동작하고 있지만, GHQ 처리 유닛(210) 전체로 보면, 750 MHz에서의 동기는 무리하기 때문에, 다른 FLIGHT 처리 유닛의 내부 처리의 사이에서는 동기가 취해져 있지 않다. 그러나, 그 위의 계층, 즉 SQUAD 처리 유닛(220)에서 375 MHz에서의 동기가 취해져 있으면, 문제가 없다.
다음에, 본 발명의 특징 부분의 1개인, 중간 계층의 구성, 즉 SQUAD 처리 유닛(220) 및 FLIGHT 처리 유닛(230)의 구성을 설명한다. 도 5는 이 중간 계층의 1개 유닛의 구성을 나타내는 블록도이다. 이 중간 계층 유닛은 커맨더 프로세서로서의 범용 프로세서에 10 ch의 DMA 컨트롤러가 접속되어 있다. 이 DMA 컨트롤러는 범용 프로세서와 코프로세서 접속을 하고 있어, 기존의 DMA 컨트롤러를 이용할 수도 있다.
이 DMA 컨트롤러는 버스에 접속되어 있고, 그 버스에는 DMA 전송용의 대용량 메모리, 상위 계층 버스로의 접속선, 하위 계층 버스로의 접속선이 접속되어 있다. 각각의 접속선과 버스의 사이에는 FIFO가 설치된다. 또한, 프로세서 코어에는 하위 프로세서로부터의 상태 정보를 수집하는 신호선을 갖는다. SQUAD 처리 유닛(220)을 예로 하면, 하위 4개의 FLIGHT 처리 유닛(230)으로부터 4개의 상태 신호선이 오고 있다. 각각의 신호선은 1 bit 이상이고, 대응하는 하위 계층의 프로세서가 비지상태인지 아닌지를 나타내고 있다.
커맨더 프로세서는 데이터 메모리와 명령 메모리가 설치되어 있고, 여기에 이 커맨더 프로세서가 실행해야 할 프로그램과 필요한 데이터가 저장되어 있다. 여기서 실행되는 프로그램은 상위 계층에서의 데이터를 필요에 따라서 전개하여, 커맨드를 해석해서, 필요한 처리를 행한 뒤에, 태스크의 배당 및 스케쥴링을 행하여, 처리 대상 데이터를 하위 계층으로 전송한다. 구체적으로는, 자기쪽의 처리 유닛에 할당된 처리 데이터는 DMA 컨트롤러에 의해서 고속으로 DMA 전송용 메모리에 전송되고, 적절하게 이용 가능한 하위 계층의 처리 유닛으로 DMA 전송된다. 이 알고리즘은 데이터 메모리에 저장되는 프로그램으로 실장된다. 바꿔 말하면, 이 중간 계층 유닛은 전체로서 지능 DMA 시스템이라고 해야 되는 것을 구성한다.
또한, 극히 특정한 처리로 특화된 시스템, 예를 들면 범용성을 필요로 하지 않는 것 같은 그래픽 시뮬레이터 등에서는 HQ 커맨더 프로세서 이외의 프로세서는 DMA 컨트롤러를 포함하여, 하드웨어로 실장된 비 노이만형 DMA 프로세서로 하는 것도 가능하다.
다음에, 여기서 이용되는 메모리 구조를 설명한다. 한가지 가장 용이한 실장은 모든 구성 프로세서에 대하여, 로컬 메모리 공간이 수반된다고 하는 것이다. 전부 로컬이므로, 스누프·버스·프로토콜이나 코히어런트·트랜잭션을 특별히 준비할 필요는 없다.
이 경우, GHQ 프로세서(213)의 메모리 공간은 GHQ용 메인 메모리(211)에 맵핑된다. 또한, SQUAD 커맨더 프로세서(223)의 메모리 공간은 SQUAD용 명령 메모리(225) 및 SQUAD용 데이터 메모리(227)와 함께, SQUAD용 DMA 메모리(221)에 맵핑된다. GHQ 프로세서(213)의 메모리 공간과 SQUAD 커맨더 프로세서(223)의 메모리 공간은 독립적이다. 또한, 다른 SQUAD 커맨더 프로세서(223)의 메모리 공간끼리도 독립적이다.
마찬가지로, FLIGHT 커맨더 프로세서(233)의 메모리 공간은 FLIGHT용 명령 메모리(225) 및 FLIGHT용 데이터 메모리(237)와 함께, 그 FLIGHT용 DMA 메모리(231)에 맵핑된다. 여기에서도, FLIGHT 커맨더 프로세서(233)의 메모리 공간은 GHQ 프로세서(213)의 메모리 공간이나 SQUAD 커맨더 프로세서(223)의 메모리 공간과는 독립적이다. 또한, 다른 FLIGHT 커맨더 프로세서(233)의 메모리 공간끼리도 독립적이다.
마찬가지로, FIGHTER 프로세서(243)의 메모리 공간은 각각 64 Kbyte의 메모리에 맵핑된다. 역시, FIGHTER 프로세서(243)의 메모리 공간은 FLIGHT 커맨더 프로세서(233), GHQ 프로세서(213)의 메모리 공간, SQUAD 커맨더 프로세서(223)의 메모리 공간과는 독립적이다. 또한, 다른 FIGHTER 프로세서(243)의 메모리 공간끼리도 독립적이다.
또한, GHQ 프로세서(213)의 메모리 공간을 모든 프로세서의 메모리 공간으로 분할하여 맵핑해도 좋다. 이 경우, 형식 상, 상위 계층과 하위 계층 사이의 데이터의 송수신은 메모리의 이동 명령이라는 것으로 된다. 이 메모리의 이동 명령은 상위 계층과 하위 계층 사이의 DMA 커맨드로서 실장된다.
이 경우, GHQ 처리 유닛(210)의 실 메모리와 하위 계층의 실 메모리와의 관계의 설정 방법으로서는, 예를 들면 SQUAD 처리 유닛(220)의 실 메모리가 GHQ 처리 유닛(210)의 실 메모리와 동일 어드레스를 공유하는 방법이 있다. 그러나, GHQ 프로세서(213)가 실행하고 있는 프로그램이 처리 유닛 프로그램의 실행 내용을 완전히 컨트롤하고 있기 때문에, 스누프·버스·프로토콜이나 코히어런트·트랜잭션을 특별히 준비할 필요는 없다. 마찬가지로, FLIGHT 처리 유닛(230)의 실 메모리는 SQUAD 처리 유닛(220)의 실 메모리와 동일 어드레스를 공유하고, FIGHTER 처리 유닛(240)의 실 메모리는 FLIGHT 처리 유닛(230)의 실 메모리와 동일 어드레스를 공유한다.
다음에, 종래의 계층 버스형 멀티프로세서 시스템과 본 발명에 의한 계층 버스형 멀티프로세서 시스템과의 비교를 행한다.
우선, 도 3의 계층 버스형 멀티프로세서 시스템에서, 각 계층에는 캐쉬만이 있다고 하여, 충돌 판정 어플리케이션에 있어서의 데이터 전송량을 어림하면 하기와 같다.
화상에 표시되어 있는 오브젝트끼리의 충돌 판정을 행하는 경우를 생각하자. 각 오브젝트는 바운딩 형상(bounding shape)이라고 불리는 영역으로 분할되고, 개개의 바운딩 형상끼리의 충돌 판정을 모두 조합하여 행한다. 바운딩 형상을 구형이라고 하면, 1개의 바운딩 형상과 다른 t의 바운딩 형상의 충돌 판정은 이하의 계산 식으로 표시된다.
(x1-x2)2+(y1-y2)2+(z1-z2)2く (r1-r2)2
그 계산량은 이하와 같다.
1) 8 요소의 로드: x1, y1, z1, r1, x2, y2, z2, r2x 4 bytes = 32 bytes
2) 6개의 가감산
3) 4개의 승산
4) 1개의 비교
따라서, 전체적으로 8 1oad, 11 FP의 계산량이다.
말단의 FIGHTER의 계산 능력으로 2 Fop x 1.5 GHz = 3 GFLOPS의 시스템에서는 FIGHTER 하나 당,
3 GFLOPS / 11 FP = 275 MHz회/sec
의 충돌 판정 능력이 있고, 그것에는
3 GFLOPS / 11 FP x 32 Byte = 8.75 GByte/sec
의 데이터를 소비한다. 전체 128 프로세서 x 2 Fop x 1.5 GHz = 384 GFLOPS에서 생각하면
384 GFLOPS / 11 FP = 34.9 G회/sec의 충돌 판정 능력이 된다. 1/60초에서는
384 GFLOPS / 11 FP / 60 = 580 M회/frame
의 충돌 판정 능력으로 되고, 이것은
√(2 x 580 M) = 34.134 Mz
1/60 초 사이에 3만개를 넘는 바운딩 형상끼리의 충돌 판정을 할 수 있는 능력을 의미한다.
이것에 필요한 버스 대역폭은
FLIGHT bus : 8.75 GByte/sec x 8 = 70 GByte/sec
SQUAD bus : 70 GByte/sec x 4 = 280 GByte/sec
로 된다.
다음에 중간 노드 프로세서를 사용하여 데이터의 전개와, 각 프로세서로의 균등 부하 분산을 행한 경우의 예를 든다.
도 6과 같이 소스측, 타겟측 양쪽을 서브그룹으로 분할하여, (예를 들면 10 분할), m x m의 단위로 프로세서에 처리시킨다. DMA에서 비어 있는 프로세서에 투입한다.
어떤 프로세서가 비어 있는 지를 체크하여, 부하 분산하면서 집어 넣는다. 그 때문에, 어떤 프로세서가 충돌을 검출하여 처리 시간이 길어져도 전체적으로 부하 분산을 할 수 있다.
예를 들면, 1O만개의 바운딩 형상의 충돌 판정을 행하지 않으면 안된다고 하자. 4개 있는 SQUAD 커맨더에는 각각 전체 충돌 판정의 1/4에 상당하는 만큼의 데이터를 갖게 한다.
하나의 예로서, 도 7에 도시한 바와 같이, SQUAD1은 1∼n/2까지의 바운딩 형상을 갖고, SQUAD2는 1∼n/4과 n/2+1∼n까지, SQUAD3은 n/4+1∼n/2과 n/2+1∼n까지, SQUAD4는 n/2+1∼n까지의 바운딩 형상의 정보를 갖는다. 이 부하 분산과 DMA 전송은 GHQ 프로세서가 담당한다.
물론, 도 8에 도시한 바와 같이, SQUAD1은 1∼n/2까지의 바운딩 형상을 갖고, SQUAD2는 n/2+1∼3n/4과 1∼n/2까지, SQUAD3은 3n/4+1∼n과 1∼n/2까지, SQUAD4는 n/2+1∼n까지의 바운딩 형상의 정보를 갖도록 해도 등가이다.
다음에, 각 SQUAD는 자신의 4개의 FLIGHT에 마찬가지의 전략으로 처리를 분산한다. 이 부하 분산과 DMA 전송은 SQUAD 커맨더가 담당한다. 예를 들면, SQUAD2는, 도면에 도시한 바와 같이, 부하의 FLIGHT1 내지 FLIGHT4에 부하를 분산한다. 이 경우에도, 도면에 도시한 것과 같은 방법이라도, 분산 효율에 차이는 없다.
시스템 전체에서는 16개의 FLIGHT가 있으므로, 등분으로 분할되어 각 FLIGHT에는 전체의 1/16의 충돌 판정 계산이 할당되는 것으로 된다. 또한, 가장 많은 곳에서도 FLIGHT가 보유하지 않으면 안되는 데이터량은 전체의 1/4 + 1/8 = 3/8 정도로 끝난다.
그리고, 각 FLIGHT 커맨더는 상기한 서브그룹 방식에 의해 더욱 작은 영역으로 분할한다. 어느 정도 분할할 필요가 있는 지는 데이터량의 절에서 서술한다. 분할된 충돌 판정의 그룹을 FIGHTER 프로세서에 투입하여, 충돌 판정을 실행시킨다. 각 FIGHTER 중에서는 균일한 충돌 판정을 행한다.
이 데이터 전송을 어느 정도 최적화한 경우부터 어림하면, GHQbus는 4개 SQUAD에 1.6 MByte의 데이터 전체를 나누어, 1/60초로 갱신한다고 하면, 데이터 전송 속도는,
1.6 MByte x 4SQUAD ÷ (1/60초) = 384 MByte/sec
이다. SQUADbus에서는 4개의 FLIGHT에 약 580 KByte(578904 Byte)의 데이터를 나누어 주기 때문에
580 KByte x 4FLIGHT ÷ (1/60초) = 139.2 MByte/sec
의 데이터 버스 대역 폭밖에 요구되지 않는다. 한편, FLIGHTbus의 필요 데이터 버스 대역 폭은
1110개 / (1/60 sec) x 16 KB = 1,065,260 KByte/sec = 약 1 GByte/sec
로 되고, 상기한 140 GByte/sec와 비교하여 1/140로 되어 있다. 이상의 결과를 통합하여, 도 9에 도시한다.
이상, 본 발명을 실시예에 의해 상세히 설명하였지만, 당업자에 있어서는 본 발명이 본원 중에 설명한 실시예에 한정되는 것이 아니다는 것은 분명하다. 본 발명의 장치는 특허 청구 범위의 기재에 의해 정해지는 본 발명의 취지 및 범위를 일탈하지 않고 수정 및 변경 형태로서 실시할 수 있다. 따라서, 본원의 기재는 예시 설명을 목적으로 하는 것이고, 본 발명에 대하여 아무런 제한적인 의미를 갖는 것은 아니다.
따라서, 본 발명에 의한 계층 버스형 멀티프로세서 시스템에서는 계층화에 의해 클럭 스큐를 억제할 수 있어, 최선단의 기술에 의한 고속 프로세서를 원하는 갯수 병렬로 동작시키는 것이 가능해진다.

Claims (10)

  1. 병렬 처리가 가능한 병렬 처리 태스크를 실행하는 상위 처리 유닛과, 제1 공유 버스를 통해 상기 상위 처리 유닛에 접속하는 복수의 중간 처리 유닛과, 상기 복수의 중간 처리 유닛의 각각에 제2 공유 버스를 통해 접속하는 복수의 하위 처리 유닛을 구비하고, 상기 상위 처리 유닛은 상기 태스크를 분할하여 상기 중간 처리 유닛에 할당함과 동시에, 상기 분할 태스크의 실행에 필요한 데이터를 각각 상기 중간 처리 유닛에 전송하고, 상기 중간 처리 유닛은 상기 분할 태스크를 분할하여 상기 하위 처리 유닛에 할당함과 동시에, 상기 분할 태스크의 실행에 필요한 데이터를 각각 상기 하위 처리 유닛에 전송하며, 상기 하위 처리 유닛은 할당된 상기 분할 태스크를 실행하여, 실행이 완료되면 그 실행의 완료를 상기 중간 처리 유닛에 통지하고, 상기 중간 처리 유닛은 할당된 상기 분할 태스크가 전부 완료되면 그 실행의 완료를 상기 상위 처리 유닛에 통지하며, 모든 상기 중간 처리 유닛이 그 할당된 상기 분할 태스크의 완료를 상기 상위 처리 유닛에 통지하면, 상기 병렬 처리 태스크의 처리가 완료되는 것을 특징으로 하는 계층 구조를 갖는 공유 버스형 병렬 계산기.
  2. 제1항에 있어서, 상기 제2 공유 버스에 접속된 유닛군은 상기 제1 공유 버스에 접속된 유닛군보다도 물리적으로 좁은 영역에 국부 존재하고, 각각의 유닛을 접속하는 신호선은 작은 배선 용량을 갖고 있으며, 상기 제1 공유 버스에 접속된 유닛군을 동기시키기 위한 주파수보다도, 상기 제2 공유 버스에 접속된 유닛군을 동기시키기 위한 주파수쪽이 높은 것을 특징으로 하는 계층 구조를 갖는 공유 버스형 병렬 계산기.
  3. 제2항에 있어서, 상기 상위 처리 유닛, 상기 중간 처리 유닛 및 상기 하위 처리 유닛은 각각 프로세서 및 상기 프로세서에 접속된 메모리를 구비하고 있는 것을 특징으로 하는 계층 구조를 갖는 공유 버스형 병렬 계산기.
  4. 제2항에 있어서, 상기 분할 태스크의 실행 완료는 상기 중간 처리 유닛 또는 상기 상위 처리 유닛에 상태(status) 입력 신호선을 통해 통지되는 것을 특징으로 하는 계층 구조를 갖는 공유 버스형 병렬 계산기.
  5. 제2항에 있어서, 상기 중간 처리 유닛은 각각 프로세서 및 상기 프로세서에 접속된 메모리 및 DMA 컨트롤러를 구비하고 있는 것을 특징으로 하는 계층 구조를 갖는 공유 버스형 병렬 계산기.
  6. 제2항에 있어서, 상기 프로세서와 상기 DMA 컨트롤러는 코프로세서 접속되어 있는 것을 특징으로 하는 계층 구조를 갖는 공유 버스형 병렬 계산기.
  7. 제2항에 있어서, 상기 상위 처리 유닛은 상기 분할 태스크의 실행에 필요한데이터를 압축하여, 각각 상기 중간 처리 유닛에 전송하는 것을 특징으로 하는 계층 구조를 갖는 공유 버스형 병렬 계산기.
  8. 제2항에 있어서, 상기 중간 처리 유닛은 상기 분할 태스크의 실행에 필요한 데이터를 압축하여, 각각 상기 하위 처리 유닛에 전송하는 것을 특징으로 하는 계층 구조를 갖는 공유 버스형 병렬 계산기.
  9. 제2항에 있어서, 상기 중간 처리 유닛은 DMA 전송 처리 유닛인 것을 특징으로 하는 계층 구조를 갖는 공유 버스형 병렬 계산기.
  10. 제9항에 있어서, 상기 DMA 전송 처리 유닛은 프로그래머블한 것을 특징으로 하는 계층 구조를 갖는 공유 버스형 병렬 계산기.
KR1020000061521A 1999-10-19 2000-10-19 계층 구조를 갖는 공유 버스형 병렬 계산기 KR100354467B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP29743999A JP3946393B2 (ja) 1999-10-19 1999-10-19 階層構造をもつ並列計算機
JP1999-297439 1999-10-19

Publications (2)

Publication Number Publication Date
KR20010051125A KR20010051125A (ko) 2001-06-25
KR100354467B1 true KR100354467B1 (ko) 2002-09-30

Family

ID=17846546

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000061521A KR100354467B1 (ko) 1999-10-19 2000-10-19 계층 구조를 갖는 공유 버스형 병렬 계산기

Country Status (4)

Country Link
US (1) US20060020771A1 (ko)
EP (1) EP1096378A2 (ko)
JP (1) JP3946393B2 (ko)
KR (1) KR100354467B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101091550B1 (ko) * 2008-08-15 2011-12-13 킹 유안 일렉트로닉스 코포레이션 리미티드 분산형 프로그래밍 시스템

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8325761B2 (en) 2000-06-26 2012-12-04 Massivley Parallel Technologies, Inc. System and method for establishing sufficient virtual channel performance in a parallel computing network
US7418470B2 (en) 2000-06-26 2008-08-26 Massively Parallel Technologies, Inc. Parallel processing systems and method
EP1233346A1 (de) * 2001-02-14 2002-08-21 Micronas GmbH Netzwerk-Co-Prozessor für Kraftfahrzeuge
JP3793062B2 (ja) 2001-09-27 2006-07-05 株式会社東芝 メモリ内蔵データ処理装置
EP1502203A2 (en) * 2002-01-10 2005-02-02 Massively Parallel Technologies, Inc. Parallel processing systems and method
US7162620B2 (en) 2002-03-13 2007-01-09 Sony Computer Entertainment Inc. Methods and apparatus for multi-processing execution of computer instructions
JP4542308B2 (ja) 2002-12-16 2010-09-15 株式会社ソニー・コンピュータエンタテインメント 信号処理用デバイス及び情報処理機器
US7599924B2 (en) * 2004-06-25 2009-10-06 International Business Machines Corporation Relationship management in a data abstraction model
JP5007050B2 (ja) * 2006-02-01 2012-08-22 株式会社野村総合研究所 格子型コンピュータシステム、タスク割り当てプログラム
US8108512B2 (en) 2006-09-01 2012-01-31 Massively Parallel Technologies, Inc. System and method for accessing and using a supercomputer
JP4945410B2 (ja) * 2006-12-06 2012-06-06 株式会社東芝 情報処理装置及び情報処理方法
US7958194B2 (en) 2008-08-25 2011-06-07 Massively Parallel Technologies, Inc. System and method for parallel processing using a Type I Howard Cascade
US10216692B2 (en) 2009-06-17 2019-02-26 Massively Parallel Technologies, Inc. Multi-core parallel processing system
GB2481819B (en) 2010-07-07 2018-03-07 Advanced Risc Mach Ltd Switching between dedicated function hardware and use of a software routine to generate result data
US9251116B2 (en) * 2011-11-30 2016-02-02 International Business Machines Corporation Direct interthread communication dataport pack/unpack and load/save
US9128779B1 (en) * 2014-07-31 2015-09-08 Splunk Inc. Distributed tasks for retrieving supplemental job information
US10866753B2 (en) 2018-04-03 2020-12-15 Xilinx, Inc. Data processing engine arrangement in a device

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0469763A (ja) * 1990-07-10 1992-03-04 Fujitsu Ltd 階層型バス接続の並列計算機
KR970029126A (ko) * 1995-11-18 1997-06-26 양승택 멀티프로세서 시스템
US5897656A (en) * 1996-09-16 1999-04-27 Corollary, Inc. System and method for maintaining memory coherency in a computer system having multiple system buses
KR20000063081A (ko) * 1999-03-31 2000-10-25 포만 제프리 엘 캐시 메모리, 멀티프로세서 시스템, 공유 캐시 메모리의분할 방법 및, 이 분할 방법을 수행하는 프로그램을 담고있는 신호 제공 매체
KR20010083446A (ko) * 2000-02-15 2001-09-01 장성태 다단계 캐시 구조의 공유 메모리 다중 프로세서 장치

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5021991A (en) * 1983-04-18 1991-06-04 Motorola, Inc. Coprocessor instruction format
DE3316492A1 (de) * 1983-05-05 1984-11-08 Siemens AG, 1000 Berlin und 8000 München Schaltungsanordnung fuer den teilnehmeranschluss in einem diensteintegrierenden digitalnetz (isdn)
EP0264122B1 (en) * 1986-10-17 1992-03-18 Hitachi, Ltd. Method of producing a composite structure for a semiconductor device
CA2078315A1 (en) * 1991-09-20 1993-03-21 Christopher L. Reeve Parallel processing apparatus and method for utilizing tiling
US5408605A (en) * 1993-06-04 1995-04-18 Sun Microsystems, Inc. Command preprocessor for a high performance three dimensional graphics accelerator
JPH08171504A (ja) * 1994-12-19 1996-07-02 Mitsubishi Denki Semiconductor Software Kk エミュレ−ション装置
US5619399A (en) * 1995-02-16 1997-04-08 Micromodule Systems, Inc. Multiple chip module mounting assembly and computer using same
US5644756A (en) * 1995-04-07 1997-07-01 Motorola, Inc. Integrated circuit data processor with selectable routing of data accesses
US5815793A (en) * 1995-10-05 1998-09-29 Microsoft Corporation Parallel computer
US5761516A (en) * 1996-05-03 1998-06-02 Lsi Logic Corporation Single chip multiprocessor architecture with internal task switching synchronization bus

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0469763A (ja) * 1990-07-10 1992-03-04 Fujitsu Ltd 階層型バス接続の並列計算機
KR970029126A (ko) * 1995-11-18 1997-06-26 양승택 멀티프로세서 시스템
US5897656A (en) * 1996-09-16 1999-04-27 Corollary, Inc. System and method for maintaining memory coherency in a computer system having multiple system buses
KR20000063081A (ko) * 1999-03-31 2000-10-25 포만 제프리 엘 캐시 메모리, 멀티프로세서 시스템, 공유 캐시 메모리의분할 방법 및, 이 분할 방법을 수행하는 프로그램을 담고있는 신호 제공 매체
KR20010083446A (ko) * 2000-02-15 2001-09-01 장성태 다단계 캐시 구조의 공유 메모리 다중 프로세서 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101091550B1 (ko) * 2008-08-15 2011-12-13 킹 유안 일렉트로닉스 코포레이션 리미티드 분산형 프로그래밍 시스템

Also Published As

Publication number Publication date
JP2001117893A (ja) 2001-04-27
EP1096378A2 (en) 2001-05-02
KR20010051125A (ko) 2001-06-25
JP3946393B2 (ja) 2007-07-18
US20060020771A1 (en) 2006-01-26

Similar Documents

Publication Publication Date Title
KR100354467B1 (ko) 계층 구조를 갖는 공유 버스형 병렬 계산기
US10936536B2 (en) Memory processing core architecture
US10747690B2 (en) Device with data processing engine array
Benini et al. P2012: Building an ecosystem for a scalable, modular and high-efficiency embedded computing accelerator
US20190303033A1 (en) Data processing engine arrangement in a device
US20120079155A1 (en) Interleaved Memory Access from Multiple Requesters
US11507527B2 (en) Active bridge chiplet with integrated cache
US8621127B2 (en) Multi-processor device with groups of processors and respective separate external bus interfaces
US20130132587A1 (en) Computer system and method for sharing computer memory
JP2008159075A (ja) 集積回路及びそれを用いた情報処理装置
US4839820A (en) Monolithic semi-custom LSI
CN113297097A (zh) 一种面向封装级多处理器的混合地址编程方法
CN114746853A (zh) 存储器与分布式计算阵列之间的数据传输
Habata et al. Hardware system of the Earth Simulator
US20030229721A1 (en) Address virtualization of a multi-partitionable machine
CN116266973A (zh) 交错双侧多芯片互连
US11822475B2 (en) Integrated circuit with 3D partitioning
JP3015428B2 (ja) 並列計算機
US6553447B1 (en) Data processing system with fully interconnected system architecture (FISA)
US20230244462A1 (en) Handling Interrupts from a Virtual Function in a System with a Reconfigurable Processor
Toong et al. A general multi-microprocessor interconnection mechanism for non-numeric processing
US11989145B2 (en) Write busy signaling for interface structures
Wang et al. Integration of large-scale FPGA and DRAM in a package using chip-on-chip technology
CN117690893A (zh) 一种芯片和包括该芯片的产品
Imbesi et al. The pave pace integrated core processor

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee