KR20030074047A - 멀티 프로세서 시스템 - Google Patents

멀티 프로세서 시스템 Download PDF

Info

Publication number
KR20030074047A
KR20030074047A KR1020020028724A KR20020028724A KR20030074047A KR 20030074047 A KR20030074047 A KR 20030074047A KR 1020020028724 A KR1020020028724 A KR 1020020028724A KR 20020028724 A KR20020028724 A KR 20020028724A KR 20030074047 A KR20030074047 A KR 20030074047A
Authority
KR
South Korea
Prior art keywords
data
processor
memory
arithmetic
task
Prior art date
Application number
KR1020020028724A
Other languages
English (en)
Other versions
KR100538727B1 (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 KR20030074047A publication Critical patent/KR20030074047A/ko
Application granted granted Critical
Publication of KR100538727B1 publication Critical patent/KR100538727B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence

Landscapes

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

Abstract

본 발명은, 블록 단위로 액세스 가능한 메모리와, 메모리에 저장된 블록 데이터를 이용하여, 지정된 태스크를 실행할 수 있는 하나 이상의 연산 프로세서와, 연산 프로세서에서의 태스크의 실행을 제어하는 제어 프로세서를 구비하고, 제어 프로세서는, 지정된 태스크의 실행에 이용되는 블록 데이터끼리의 의존 관계를 체크하는 의존 관계 체크부와, 체크된 의존 관계에 기초하여 메모리에 대한 액세스, 메모리로부터 연산 프로세서로의 데이터 전송, 및 연산 프로세서에서의 데이터 처리의 스케줄링을 행하는 스케줄링부를 포함한다.

Description

멀티 프로세서 시스템{MULTI-PROCESSOR SYSTEM}
본 발명은, 화상 데이터 등의 대용량 데이터를 처리할 수 있는 복수의 프로세서로 이루어지는 멀티 프로세서 시스템에 관한 것이다.
통상의 프로세서는, 비교적 소용량의 데이터를 처리하는 것을 전제로 하고 있기 때문에, 레지스터에는 고가인 소용량의 멀티포트 메모리를 사용하는 것이 일반적이다. 이 때문에, 이들 통상의 프로세서를 복수개 이용하여 멀티 프로세서 시스템을 구축하면, 각 프로세서 사이에서 빈번하게 데이터를 교환해야 하므로, 각 프로세서의 제어가 복잡하게 된다.
기존의 멀티 프로세서 시스템으로서 대표적인 것으로, 공유 메모리형 병렬 프로세서 시스템과 벡터 프로세서 시스템이 있다.
공유 메모리형 병렬 프로세서 시스템은, 연산기용의 프로세서가 자발적으로 데이터를 취득하기 때문에, 프로그램이 각 프로세서의 처리를 최적으로 스케줄링하는 것은 곤란하다. 예를 들면, 그래픽스의 중첩 묘화를 행하는 경우, 작은 처리 단위를 반복하여 결과적으로 대용량의 데이터가 되기 때문에, 이러한 시스템에서는, 각 프로세서가 자발적으로 몇 번이나 데이터를 취득하는 처리를 반복하는 결과로 되어, 각 프로세서의 처리를 최적화하는 것은 사실상 불가능하다.
또한, 벡터 프로세서 시스템에서는, 호스트 컴퓨터가 벡터 프로세서의 처리를 제어한다. 그런데, 종래의 벡터 프로세서 시스템에서는, 호스트 컴퓨터는 벡터 프로세서의 네트워크 액세스나 메모리 액세스의 스케줄링을 행하고 있지 않고, 컴파일러가 스케줄링을 행하고 있었다. 예를 들면, 이러한 시스템에서 그래픽스의 중첩 묘사 처리를 행하는 경우, 데이터의 의존 관계를 전부 컴파일러 상에서 체크하여 스케줄링해야 하므로, 컴파일 처리에 시간이 걸리게 된다.
따라서, 본 발명의 목적은 각 프로세서에서의 태스크 처리를 최적화하는 것이다.
도 1은 본 발명에 따른 멀티 프로세서 시스템의 일 실시예의 개략 구성을 도시한 블록도.
도 2는 본 실시예의 처리 내용을 설명하는 도면.
도 3은 합성(Blend) 명령의 일례를 도시한 도면.
도 4는 도 3에 도시한 합성 명령을 중간 명령으로 변환한 도면.
도 5는 제어 프로세서의 동작을 설명하는 도면.
도 6은 제어 프로세서의 동작을 도시한 흐름도.
도 7은 제어 프로세서(6)가 행하는 스케줄 관리의 일례를 도시한 도면.
도 8은 본 실시예의 스케줄링 방법의 일례를 도시한 흐름도.
도 9는 스케줄 관리부의 내부 구성의 일례를 도시한 블록도.
도 10은 블록 데이터의 유효 이용율과 전송 속도 향상율을 나타낸 그래프.
도 11은 화상 처리 전용의 본 발명에 따른 멀티 프로세서 시스템의 일례를 도시한 블록도.
〈도면의 주요 부분에 대한 부호의 설명〉
1 : 메모리
2 : 연산 프로세서
3 : 연산 처리부
4 : 크로스바부
5 : 크로스바 제어부
6 : 제어 프로세서
7 : 외부 메모리
8 : 외부 인터페이스(I/F)부
9 : SRAM
10 : 버퍼
21 : 의존 관계 체크부
22 : 리소스 체크부
23 : 스케줄링 관리부
24 : DMA 컨트롤러
25 : 명령 저장부
본 발명의 일 실시예에 따른 멀티 프로세서 시스템은, 메모리에 저장된 데이터를 이용하여 태스크를 실행하는 하나 이상의 연산 프로세서와, 상기 연산 프로세서에서의 태스크의 실행을 제어하는 제어 프로세서를 구비하고, 상기 제어 프로세서는, 태스크를 실행할 때 데이터끼리의 의존 관계를 체크하는 의존 관계 체크부와, 상기 체크된 의존 관계에 기초하여 상기 메모리에 대한 액세스, 상기 메모리로부터 상기 연산 프로세서로의 데이터 전송, 및 상기 연산 프로세서에서의 연산 스케줄링을 행하는 스케줄링부를 포함한다.
이하, 본 발명에 따른 멀티 프로세서 시스템의 실시예에 대하여, 도면을 참조하면서 구체적으로 설명한다.
〈제1 실시예〉
도 1은 본 발명에 따른 멀티 프로세서 시스템의 일 실시예의 개략 구성을 도시한 블록도이다. 도 1의 멀티 프로세서 시스템은, 복수의 뱅크로 구성되어 뱅크 단위로 액세스 가능한 메모리(1)와, 뱅크 단위로 판독한 블록 데이터를 이용하여 소정의 연산 처리를 행하는 복수의 연산 프로세서(2)를 갖는 연산 처리부(LDALU)(3)와, 복수의 연산 프로세서(2)와 메모리(1) 사이에서의 데이터 송수신을 제어하는 크로스바부(x-bar)(4)와, 크로스바부(4)를 제어하는 크로스바 제어부(5)와, 연산 처리부(3)를 제어하는 제어 프로세서(LDPCU)(6)와, 외부 메모리(7)와의 데이터의 송수신을 행하는 외부 인터페이스부(8)를 구비하고 있다.
메모리(1)는 예를 들면, 복수의 뱅크로 이루어지는 원 포트 메모리로 구성된다. 연산 처리부(3)는, 뱅크 단위로 판독한 블록 데이터를 이용하여 태스크를 실행하는 복수의 연산 프로세서(2)와, 각 연산 프로세서(2)에 대응하여 설치되는 SRAM(9)을 갖는다.
메모리(1), 연산 처리부(3) 및 외부 인터페이스부(8)는, 버퍼(10)를 통해 크로스바부(4)와 데이터의 송수신을 행한다.
제어 프로세서(6)는, 각 태스크가 이용하는 블록 데이터끼리의 의존 관계를 체크하는 의존 관계 체크부(21)와, 연산 프로세서(2)나 크로스바부(4)의 처리 상황 등을 파악하는 리소스 체크부(22)와, 메모리(1)로부터 연산 프로세서(2)로의 데이터 전송, 메모리(1)에 대한 액세스, 및 연산 프로세서(2)에서의 데이터 처리의 스케줄링을 행하는 스케줄 관리부(23)와, 메모리(1)와 연산 프로세서(2) 사이에서의 DMA 전송을 제어하는 DMA 컨트롤러(24)와, 프로그래머에 의해 제공된 명령 열을 저장하는 명령 저장부(25)를 갖는다.
도 2는 본 실시예의 처리 내용을 설명하는 도면이다. 도시한 바와 같이, 본 실시예에서는, 예를 들면, 2개의 화상을 합성(Blend)하는 태스크를 복수회 반복하는 처리를 하나의 쓰레드(Thread)로 하고, 상호 의존 관계가 없는 복수의 쓰레드를 병행하여 실행하는 것을 상정하고 있다. 여기서는, 동일 또는 다른 합성 화상을 생성할 때 공통적으로 이용되는 태스크끼리를 의존 관계가 있는 것으로 하고, 그 이외의 태스크를 의존 관계가 없는 것으로 한다.
도 2에서, 부호 0∼12를 붙인 각 블록은 화상 데이터를 나타내며, 각 블록의 상측에 기재된 addrXX는, 대응하는 화상 데이터의 저장처 어드레스를 나타낸다.예를 들면, addr0a는 메모리(1)의 어드레스 0a를 나타낸다.
도 2의 쓰레드 0은, 메모리(1)의 어드레스 0a에 저장된 화상 0과 어드레스 1a에 저장된 화상 1을 식별 번호 P0의 연산 프로세서(2)로 합성한 화상 8을 어드레스 0c에 저장함과 함께, 어드레스 2a에 저장된 화상 2와 어드레스 3a에 저장된 화상 3을 식별 번호 P2의 연산 프로세서(2)로 합성한 화상 9를 어드레스 2c에 저장하고, 그 후, 화상 8, 9를 식별 번호 P0의 연산 프로세서(2)로 합성한 화상 12를 어드레스 0d에 저장하는 처리를 행한다.
또한, 도 2의 쓰레드 1은, 메모리(1)의 어드레스 3c에 저장된 화상 4와 어드레스 0b에 저장된 화상 5를 식별 번호 P1의 연산 프로세서(2)로 합성한 화상 10을 어드레스 1b에 저장함과 함께, 어드레스 1d에 저장된 화상 6과 어드레스 2b에 저장된 화상 7을 연산 프로세서 P3으로 합성한 화상 11을 어드레스 3b에 저장하고, 그 후, 화상 10, 11을 식별 번호 P1의 연산 프로세서(2)로 합성한 화상 13을 어드레스 1c에 저장하는 처리를 행한다.
본 실시예에서는, 2개의 화상을 합성하기 위한 전용 명령으로서, 합성 명령을 준비하고 있다. 합성 명령은, Blend(p, x, y, z)와 같이 기술된다. p는 연산 프로세서(2)의 식별 번호, y는 메모리(1)로부터 판독되는 제1 입력 블록 데이터의 어드레스, z는 메모리(1)로부터 판독되는 제2 입력 블록 데이터의 어드레스, x는 메모리(1)에 기입되는 출력 블록 데이터의 어드레스이다. 즉, Blend(p, x, y, z)는, 메모리(1)의 어드레스 y, z의 제1 및 제2 입력 블록 데이터를 식별 번호 p의 연산 프로세서(2)로 합성한 블록 데이터를 어드레스 x에 저장하는 것을 나타낸다.
도 2의 쓰레드 0, 1은, 도 3과 같이 6개의 합성 명령으로 기술된다. 도 3의 쓰레드 0의 Blend(P0, 0c, 0a, 1a)는 도 2의 화상 8을 생성하는 처리에 대응하고, Blend(P2, 2c, 2a, 3a)는 화상 9를 생성하는 처리에 대응하며, Blend(P0, 0d, 0c, 2c)는 화상 12를 생성하는 처리에 대응한다.
또한, 쓰레드 1의 Blend(P1, 1b, 3c, 0b)는 도 2의 화상 10을 생성하는 처리에 대응하고, Blend(P3, 3b, 1d, 2b)는 화상 11을 생성하는 처리에 대응하며, Blend(P1, 1c, 1b, 3b)는 화상 13을 생성하는 처리에 대응한다.
도 3에 도시한 명령 열은, 도 1에 도시한 명령 저장부(25)에 저장된다. 제어 프로세서(6), 혹은 도시를 생략한 컴파일러나 인터프리터는, 도 3에 도시한 명령 열을 도 4에 도시한 바와 같은 중간 명령으로 변환한다. 변환된 중간 명령은, 명령 저장부(25)에 저장하여도 되고, 중간 명령을 저장하기 위한 저장부를 별개로 설치하여도 된다.
도시한 바와 같이, 1개의 합성 명령은 3개의 중간 명령으로 변환되고, 또한 도시를 생략한 어셈블러에 의해 기계어로 변환되어 제어 프로세서(6)에 의해 실행된다.
그 예로서, Blend(P0, 0c, 0a, 1a)를 예로 들면, 우선, 중간 명령 DMA(P0SPM, 0a)에 의해, 메모리(1)의 어드레스 0a의 블록 데이터가, 식별 번호 P0의 연산 프로세서(2)에 대응하는 SRAM(9)으로 DMA 전송된다. 계속해서, 중간 명령 DMA(P0SPM, 1a)에 의해, 메모리(1)의 어드레스 1a의 블록 데이터가, 식별 번호 P0의 연산 프로세서(2)에 대응하는 SRAM(9)으로 DMA 전송된다. 계속해서, 중간 명령kick(P0, 0c, P0SPM, Blend)에 의해, SRAM(9)에 저장된 2개의 블록 데이터끼리가 식별 번호 P0의 연산 프로세서(2)에 의해 합성되고, 합성된 블록 데이터가 메모리(1)의 어드레스 0C에 저장된다. kick 명령의 최후의 인수(引數)인 Blend는, Blend 처리의 명령 열이 있는지를 나타내는 어드레스의 태그이다.
도 4의 중간 명령 열의 우측에 기술된 숫자 0A, 0B 등은 각 중간 명령을 식별하는 번호이다.
도 5는 제어 프로세서(6)의 동작을 설명하는 도면이고, 도 5의 우측 방향은 시간 축을 나타낸다. 도 5는 도 4에 도시한 쓰레드 0, 1을 처리하는 경우의 제어 프로세서(6)의 동작을 설명하고 있다.
우선, 제어 프로세서(6)는 쓰레드 0의 중간 명령 0A, 0B, 0C를 순서대로 처리한다. 이 때, 제어 프로세서(6)는, 스케줄 관리부(23) 내에 형성되는 태스크 큐에 대하여 DMA 전송을 지시하고, 바로 다음의 중간 명령의 처리를 행한다.
이와 같이, 제어 프로세서(6)는, 각 중간 명령마다 DMA 전송을 행하지 않고, DMA 전송의 지시만을 태스크 큐에 저장하는 처리를 행해간다.
쓰레드 0의 중간 명령 0C의 처리가 끝난 단계에서, 예를 들면 도시를 생략한 타이머로부터 쓰레드의 전환 인터럽트 신호가 스케줄 관리부(23)에 입력되면, 제어 프로세서(6)는, 쓰레드 0 대신에 쓰레드 1의 중간 명령 1A, 1B, 1C를 순서대로 처리해 간다. 여기서도, 제어 프로세서(6)는, 스케줄 관리부(23)의 태스크 큐에 대하여 DMA 전송을 지시하고, 바로 다음의 중간 명령의 처리를 행한다.
쓰레드 1의 중간 명령 1C의 처리가 끝난 단계에서, 예를 들면 도시를 생략한타이머로부터 스케줄 인터럽트 신호가 스케줄 관리부(23)에 입력되면, 스케줄 관리부(23)는 태스크 큐에 저장된 중간 명령의 실행 처리에 관한 태스크의 스케줄링을 행하고, 스케줄링한 순서에 따라서, 제어 프로세서(6)는, DMA 컨트롤러(24)나 연산 프로세서(2)를 제어하여 각 태스크를 실행한다.
쓰레드의 전환 인터럽트 신호나 스케줄 인터럽트 신호는, 예를 들면 마이크로 프로세서 시스템 내의 도시를 생략한 타이머나 카운터 등, 시간 계측 기능을 가진 회로로부터 주기적으로 입력된다. 혹은, 마이크로 프로세서 시스템의 외부 회로로부터 이들 인터럽트 신호를 공급하여도 된다.
도 5에서는, 쓰레드 0, 1의 각 중간 명령을 3개씩 실행했을 때 스케줄 인터럽트 신호가 들어가고, 쓰레드 0 또는 1의 중간 명령을 3개씩 실행할 때마다 쓰레드의 전환 인터럽트 신호가 들어가는 예를 나타내고 있지만, 이들 인터럽트 신호가 들어가는 타이밍은 실장 형태에 의해 다양하게 변경 가능하다.
도 5의 동작을 시계열적으로 집약하면 도 6과 같은 흐름도가 된다. 우선, 제어 프로세서(6)는, 쓰레드를 선택하여 각 중간 명령을 순서대로 실행하고(단계 S1), 스케줄 관리부(23)의 태스크 큐에 대하여 DMA 전송을 지시한다(단계 S2).
계속해서, 제어 프로세서(6)는 쓰레드의 전환 인터럽트 신호가 스케줄 관리부(23)에 들어갔는지의 여부를 판정하고(단계 S3), 이 인터럽트 신호가 들어갈 때까지 단계 S1, S2의 처리를 반복한다.
쓰레드의 전환 인터럽트 신호가 들어가면, 제어 프로세서(6)는 실행 가능한 쓰레드끼리 조정을 행하여, 1개의 쓰레드를 선택하여 실행한다(단계 S4). 도 5에서는, 2개의 쓰레드밖에 없기 때문에, 쓰레드 0의 다음으로 쓰레드 1을 실행한다.
그 후, 스케줄 인터럽트 신호가 들어가면(단계 S5), 스케줄 관리부(23)는 스케줄 처리를 행한다. 스케줄 인터럽트가 들어가면, 우선, 스케줄 관리부(23)는, 태스크 큐에 엔트리되어 있는 태스크를 판독한 (단계 S6) 후, 판독된 태스크의 데이터 의존 관계를 어드레스에 의해 체크함과 함께, 리소스 충돌(크로스바부(4)나 메모리(1)의 포트 번호 등)을 체크하여, 가장 효율적이 되도록 태스크를 스케줄링한다(단계 S7). 이 스케줄링은, 제어 프로세서(6)의 소프트웨어로서 실장 가능하기 때문에, 실장 형태에 따라서 다양하게 변경 가능하다.
이어서, 제어 프로세서(6)는 스케줄링된 순서에 따라서, 실행 가능한 태스크를 실제로 실행하도록, DMA 컨트롤러(24)나 연산 프로세서(2)를 제어한다(단계 S8).
도 7은 제어 프로세서(6)가 행하는 스케줄 관리의 일례를 도시하고 있다. 도 7의 (a)에 도시한 바와 같이, 식별 번호 P0의 연산 프로세서(2)에 대한 태스크 E0, E1, E0, E2와 식별 번호 P1의 연산 프로세서(2)에 대한 태스크 E0, E0, E2, E 2가 태스크 큐에 저장되어 있는 것으로 한다. 이들 태스크의 구체적 내용은 특별히 문제삼지 않지만, 이하에서는 상술한 합성 명령을 실행하는 태스크를 예로 들어 설명한다.
어떠한 스케줄 관리도 행하지 않는 경우, 제어 프로세서(6)는 최초로 태스크 큐에 들어 있는 태스크로부터 순서대로 실행하기 때문에, 식별 번호 P0, P1의 연산 프로세서(2)는 어느 것이나, 최초에는 태스크 E0을 실행하려고 한다. 그런데, 태스크 E0은, 동일한 합성 명령을 실행하는 것으로, 그 명령을 실행할 때 메모리(1)에 저장되어 있는 동일 데이터를 이용하기 때문에, 식별 번호 P0, P1의 연산 프로세서(2)에 의해 동시에 처리를 행하는 것은 불가능하다. 이 때문에, 도 7의 (b)에 도시한 바와 같이, 식별 번호 P1의 연산 프로세서(2)는 식별 번호 P0의 연산 프로세서(2)가 태스크 E0의 처리를 끝낼 때까지 대기해야 한다. 따라서, 식별 번호 P1의 연산 프로세서(2)가 모든 처리를 끝낼 때까지 시간이 걸리게 된다.
한편, 본 실시예의 스케줄 관리부(23)는, 식별 번호 P0, P1의 연산 프로세서(2)가 가장 효율적으로 태스크를 실행할 수 있도록, 태스크 큐에 저장된 태스크를 스케줄링한다. 도 7의 (c)는 식별 번호 P1의 연산 프로세서(2)가 태스크 E2를 먼저 실행하도록 스케줄링한 예를 나타내고 있다. 태스크 E0, E2는 각각 별개의 데이터를 이용하여 합성 명령을 실행하기 때문에, 다른 연산 프로세서(2)가 동시에 각 태스크를 실행할 수 있다.
이와 같이, 본 실시예에서는, 복수의 연산 프로세서(2)가 병렬로 태스크를 행할 수 있도록, 각 연산 프로세서(2)에서의 태스크를 제어 프로세서(6)에 의해 스케줄링하기 때문에, 각 연산 프로세서(2)는 효율적으로 태스크의 처리를 행할 수 있다. 즉, 본 실시예에 따르면, 각 연산 프로세서(2)에서의 처리를 효율적으로 스케줄링할 수 있다.
상술한 실시예에서는, 합성 명령을 실행하는 태스크에 대하여 설명하였지만, 실행하는 명령은 반드시 합성 명령에 한정되지 않는다. 태스크를 구성하는 요소로서, 이하의 3 종류를 구비하는 명령이면 바람직하다.
1) 태스크가 필요로 하는 데이터를 나타내는 식별자. 여기서, 식별자란, 메모리(1)의 블록 데이터를 지시하는 것으로, 식별자는 복수개 있어도 된다.
2) 태스크를 실행하는 연산기를 나타내는 식별자
3) 태스크가 실행한 결과인 데이터를 나타내는 식별자
1)∼3)의 식별자는, 반드시 메모리(1)를 액세스하기 위한 어드레스 자체일 필요는 없고, 어드레스에 대응하는 식별자(토큰)이면 된다. 스케줄 관리부(23)는, 태스크의 순서 의존 관계를 식별자끼리의 의존 관계로서 표현하여 태스크의 스케일링을 실현한다.
이하에, 스케줄 관리부(23)의 스케줄링 방법의 일례를 상술한다. 스케줄 관리부(23)의 처리는, 소프트웨어와 하드웨어의 어느 쪽으로도 실현 가능하며, 소프트웨어와 하드웨어가 협조하여 동작하는 것도 가능하다.
도 8은 본 실시예의 스케줄링 방법의 일례를 도시한 흐름도이다. 도 8의 흐름도에서는, 각 연산 프로세서(2)에서의 처리의 개시와 종료를 어드레스에 대응하는 식별자로 관리하는 예를 도시하고 있다.
우선, 제어 프로세서(6)는, 처리를 개시시키고 싶은 연산 프로세서(2)에 어드레스에 대응하는 식별자를 보낸다(단계 S21). 이 식별자를 수취한 연산 프로세서(2)는 지정된 처리를 행하고(단계 S22), 처리가 종료하면, 제어 프로세서(6)에 이 식별자를 반송한다(단계 S23).
제어 프로세서(6)는, 반송된 식별자를 제어 프로세서(6) 내의 스케줄 관리부(23)로 보낸다. 스케줄 관리부(23)는 다음에 식별자를 보내야 할 연산 프로세서(2)를 결정한다(단계 S24). 이와 같이, 블록 데이터의 의존 관계 체크는 전부 스케줄 관리부(23)가 행한다. 스케줄 관리부(23)는, 블록 데이터의 의존 관계 외에, 연산 프로세서(2)나 크로스바부(4)의 처리 상황 등의 리소스 정보도 고려에 넣어, 다음에 식별자를 보내야 할 연산 프로세서(2)를 결정한다.
그리고, 제어 프로세서(6)는 의존 관계 체크에 적합하며, 또한 리소스가 확보된 연산 프로세서(2)에 대하여 어드레스에 대응하는 식별자를 보낸다(단계 S25).
이상의 동작을 실행 태스크 정보부에 등록되어 있는 태스크의 실행이 전부 종료할 때까지 반복한다(단계 S26).
도 9는 스케줄 관리부(23)의 내부 구성의 일례를 도시한 블록도이다. 도시한 바와 같이, 스케줄 관리부(23)는, 실행하여야 할 태스크에 대응하는 식별자의 일람을 기록한 실행 태스크 정보부(31)와, 태스크의 실행 조건을 기록한 실행 조건 정보부(32)와, 태스크의 실행에 이용 가능한 연산 프로세서(2)의 종류와 그 밖의 리소스 정보를 기록한 리소스 관리 테이블(33)과, 식별자와 태스크와의 대응 관계를 나타내는 식별자 테이블(34)을 갖는다.
태스크는 예를 들면 상술한 합성 명령으로, 각 합성 명령마다 식별자가 대응되어 있다. 예를 들면, 도 9의 식별자 테이블(34)은, 식별자 T1이 Blend(P0, 0c, 0a, 1a)에 대응하고, 식별자 T2가 Blend(P2, 2c, 2a, 3a)에 대응하고, 식별자 T3이 Blend(P0, 0c, 0c, 2c)에 대응하며, 식별자 T4가 Blend(P1, 1b, 3c, 0b)에 대응하는 예를 나타내고 있다.
실행 조건 정보부(32)에 기록된 조건과, 실행 태스크 정보부(31)에 기록된식별자는 상호 대응되어 있다. 예를 들면, 도 9에서, 식별자 T2에 대응하는 합성 명령과 식별자 T5에 대응하는 합성 명령이 함께 실행될 때, 실행 태스크 정보부(31)의 식별자 T4에 대응하는 합성 명령이 실행된다. 또한, 식별자 T2에 대응하는 합성 명령이거나, 식별자 T3에 대응하는 합성 명령이 실행될 때, 실행 태스크 정보부(31)의 식별자 T1에 대응하는 합성 명령이 실행된다.
또한, 실행 태스크 정보부(31)가 식별자 T4에 대응하는 합성 명령을 종료하면, 실행 조건 정보부(32)는 기록되어 있는 식별자 T4 전부를 종료한 것으로서 취급한다. 식별자에 많은 비트 필드를 할당할 수 없는 경우, 실행 태스크 정보부에 복수의 T4가 표시되는 경우가 있다. 그와 같은 경우, 종료된 T4는, 실행 태스크 정보부 중의 해당 T4로부터 다음에 표시되는 T4 사이의 슬롯의 태스크로 한다.
실행 태스크 정보부(31)는, 식별자 T4에 대응하는 합성 명령을 실행할 때, 리소스 관리 테이블(33)을 참조하여, 대응하는 합성 명령의 실행을 행하는 연산 프로세서(2)를 결정한다. 스케줄 관리부(23)는 리소스 관리 테이블(33)의 정보를 참조하여, 합성 명령을 실행하는 연산 프로세서(2)의 종류와 합성 명령의 실행 시기를 결정한다.
결정된 연산 프로세서(2)가 처리를 종료하면, 그 연산 프로세서(2)는 리소스를 해방하고, 그 취지가 리소스 관리 테이블(33)에 기록된다. 또한, 복수의 연산 프로세서(2)가 동일한 리소스에 대한 요구를 행한 경우에는, 원칙적으로 먼저 발행된 합성 명령이 우선적으로 처리된다.
본 실시예에서는, 메모리(1)로부터 블록 데이터를 단위로 하여 판독을 행하는데, 데이터의 전송 속도를 높이기 위해서는, 블록 데이터의 데이터 사이즈를 약 1킬로 바이트 이상으로 설정하는 것이 바람직하다. 이것은, 일반적인 프레임 버퍼의 청크 사이즈가 2킬로 바이트인 점에서도 타당하다는 것을 알 수 있다. 단, 실장 형태에 의해 최적의 블록 데이터의 데이터 사이즈는 변화한다.
도 10은, 블록 데이터 중에서 연산 처리에 유효하게 이용되는 데이터의 비율을 나타내는 유효 이용율과, 메모리(1)로부터 연산 프로세서(2)로의 블록 데이터의 전송 속도 향상율을 그래프로 나타낸 것이다. 유효 이용율은 데이터 사이즈가 작을 수록 높게 되며, 전송 속도 향상율은 데이터 사이즈가 클 수록 높아진다.
이와 같이, 블록 데이터는 1킬로 바이트 이상의 데이터 사이즈이며, 블록 데이터의 전송 및 처리에는, 통상의 프로세서의 시스템 클럭의 수 사이클을 요한다. 메모리(1)와 연산 프로세서(2)는, 블록 데이터를 단위로 하여 처리를 행하기 때문에, 블록 데이터의 처리 시간을 단위로 하는 클럭으로 제어 프로세서(6)를 동작시키는 것도 가능하다. 이에 의해, 통상의 프로세서의 시스템 클럭보다도 느린 클럭으로 제어 프로세서(6)를 동작시킬 수 있어, 고가의 고속 부품이나 고속 프로세스를 사용할 필요도 없어지고, 또한 하드웨어의 타이밍 설계도 용이하게 된다.
또한, 연산 프로세서(2)의 수에는 특별히 제한은 없지만, 연산 프로세서(2)의 수가 증가할 수록, 연산 프로세서(2)가 한번에 처리하여야 할 블록 데이터의 데이터 사이즈를 크게 하는 것이 바람직하다. 이에 의해, 하나의 연산 프로세서(2)에서의 처리 시간이 길어져, 그 만큼 제어 프로세서(6)가 연산 프로세서(2)를 빈번하게 전환하지 않아도 되기 때문에, 제어 프로세서(6)의 처리 부담을 경감할 수 있다.
또한, 멀티 프로세서 시스템 전체의 퍼포먼스를 높이기 위해서는, 시스템 전체의 동작 주파수를 높이는 방법과 연산 프로세서(2)의 수를 늘리는 방법이라고 생각되지만, 연산 프로세서(2)의 수를 늘려 각 연산 프로세서가 처리하여야 할 블록 데이터의 사이즈를 크게 하는 것이 바람직하다.
〈제2 실시예〉
제2 실시예는, 본 발명을 화상 처리에 특화시킨 시스템에 적용한 예이다.
도 11은 화상 처리 전용의 본 발명에 따른 멀티 프로세서 시스템의 제2 실시예를 도시한 블록도이다. 도시한 바와 같이, 각각이 별개로 화상 처리를 행하는 복수의 연산 처리부(LDALU)(3)와, 제어 프로세서(LDPCU)(6)와, 메모리(1)가 크로스바부(4)에 접속되어 있다.
연산 처리부(3)의 내부에는, 복수의 픽셀 파이프(31)와, 각 픽셀 파이프(31)에 접속되는 SRAM(SPM)(9)과, 전처리(前處理)를 행하는 셋업/DDA부(32)가 설치되어 있다.
각 연산 처리부(3) 내의 픽셀 파이프(31)는, 도 1의 연산 프로세서(2)에 상당하는 것으로, 폴리곤의 렌더링이나 템플릿·매칭 처리 등의 화상 처리를 행한다.
도 11의 제어 프로세서(6)는, 화상 처리용의 태스크로 이용되는 블록 데이터의 의존 관계를 체크하고, 그 체크 결과에 기초하여 연산 처리부(3) 내의 픽셀 파이프(31)의 동작을 스케줄링한다. 이에 의해, 각 픽셀 파이프(31)를 병렬로 동작시킬 수 있어, 매우 고속으로 각종 화상 처리를 행할 수 있다.
상술한 실시예에서는, 연산 처리부(3) 내에 복수의 연산 프로세서(2)를 설치하는 예를 설명하였지만, 연산 프로세서(2)가 하나만이어도 본 발명은 적용 가능하다.
상술한 실시예에서는, 화상 데이터를 합성하는 처리를 행하는 예를 설명하였지만, 본 발명은 화상 데이터의 합성 처리 이외의 각종의 연산 처리에도 적용 가능하다.
또한, 도 1, 도 5 및 도 9에 도시한 블록도 중 적어도 일부를 하드웨어 대신에 소프트웨어로 실현하여도 된다.
본 발명에 따르면, 복수의 연산 프로세서가 병렬로 태스크를 행할 수 있도록, 각 연산 프로세서에서의 태스크를 제어 프로세서에 의해 스케줄링하기 때문에, 각 연산 프로세서에서의 처리를 효울적으로 스케줄링할 수 있으며, 또한 통상의 프로세서의 시스템 클럭보다고 느린 클럭으로 제어 프로세서를 동작시킬 수 있어, 고가의 고속 부품이나 고속 프로세서를 사용할 필요도 없고, 또한 하드웨어의 타이밍 설계도 용이하게 된다.

Claims (12)

  1. 멀티 프로세서 시스템에 있어서,
    메모리에 저장된 데이터를 이용하여 태스크를 실행하는 하나 이상의 연산 프로세서와,
    상기 연산 프로세서에서의 태스크의 실행을 제어하는 제어 프로세서
    를 구비하고,
    상기 제어 프로세서는,
    태스크를 실행할 때 데이터끼리의 의존 관계를 체크하는 의존 관계 체크부와,
    상기 체크된 의존 관계에 기초하여 상기 메모리에 대한 액세스, 상기 메모리로부터 상기 연산 프로세서로의 데이터 전송, 및 상기 연산 프로세서에서의 연산 스케줄링을 행하는 스케줄링부
    를 포함하는 멀티 프로세서 시스템
  2. 제1항에 있어서,
    상기 연산 프로세서는 데이터의 블록 단위로 상기 메모리에 액세스하는 멀티 프로세서 시스템.
  3. 제1항에 있어서,
    상기 의존 관계 검출부는 동일 또는 다른 태스크를 실행할 때 공통적으로 이용되는 데이터 사이의 의존 관계를 검출하는 멀티 프로세서 시스템.
  4. 제1항에 있어서,
    상기 메모리 및 상기 하나 이상의 연산 프로세서 간에서의 데이터의 교환을 제어하는 데이터 전송 제어부를 구비하고,
    상기 스케줄링부는 상기 데이터 전송 제어부가 출력하는 전송 제어 신호를 고려하여 상기 스케줄링을 행하는 멀티 프로세서 시스템.
  5. 제1항에 있어서,
    상기 연산 프로세서가 행하는 처리 내용을 특정하는 식별자와, 상기 연산 프로세서가 입력 데이터로서 사용하는 데이터의 저장처를 나타내는 상기 메모리 상의 제1 어드레스와, 상기 연산 프로세서에 의한 연산 결과의 저장처를 나타내는 상기 메모리 상의 제2 어드레스를 포함하는 매크로 명령을 저장하는 명령 저장부를 구비하고,
    상기 의존 관계 검출부는 상기 제1 및 제2 어드레스에 기초하여 데이터끼리의 의존 관계를 검출하는 멀티 프로세서 시스템.
  6. 제1항에 있어서,
    실행하여야 할 태스크를 식별하는 식별자에 의해, 태스크끼리의 의존 관계를기록하는 조건 테이블과,
    상기 조건 테이블에 기초하여 상기 실행하여야 할 태스크의 실행 조건 정보와 각 태스크가 실행 시에 사용하는 리소스 정보를 기록하는 리소스 관리 테이블
    을 구비하고,
    상기 의존 관계 검출부는 상기 리소스 관리 테이블에 기록된 정보에 기초하여 상기 실행하여야 할 태스크로 이용하는 데이터의 의존 관계를 검출하는 멀티 프로세서 시스템.
  7. 제1항에 있어서,
    상기 데이터는 화상 데이터이며,
    상기 의존 관계 검출부는 동일 또는 다른 합성 화상을 생성할 때 공통적으로 이용되는 데이터끼리 의존 관계가 있다고 판단하는 멀티 프로세서 시스템.
  8. 제1항에 있어서,
    상기 데이터는 1킬로 바이트 이상의 데이터 사이즈로 설정되는 멀티 프로세서 시스템.
  9. 제8항에 있어서,
    복수의 태스크를 실행하는 상기 연산 프로세서의 수가 증가할 수록, 상기 데이터의 데이터 사이즈를 크게 하는 멀티 프로세서 시스템.
  10. 제1항에 있어서,
    상기 제어 프로세서는 상기 메모리와 상기 연산 프로세서 간에서 상기 데이터를 송수신하는 데 요하는 시간 단위를 기준으로 하는 클럭에 기초하여 처리 동작을 행하는 멀티 프로세서 시스템.
  11. 제1항에 있어서,
    상기 메모리는 복수의 뱅크로 분리된 원 포트 메모리인 멀티 프로세서 시스템.
  12. 제1항에 있어서,
    상기 메모리 및 상기 연산 프로세서 간의 데이터의 전송과 상기 연산 프로세서에서의 데이터 처리를 병렬로 행하기 위해,
    상기 메모리 및 상기 연산 프로세서 간의 데이터 전송용의 버퍼와,
    상기 연산 프로세서에서의 데이터 처리용의 버퍼
    를 구비하는 멀티 프로세서 시스템.
KR20020028724A 2002-03-07 2002-05-23 멀티 프로세서 시스템 KR100538727B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2002-00061576 2002-03-07
JP2002061576A JP2003263331A (ja) 2002-03-07 2002-03-07 マルチプロセッサシステム

Publications (2)

Publication Number Publication Date
KR20030074047A true KR20030074047A (ko) 2003-09-19
KR100538727B1 KR100538727B1 (ko) 2005-12-26

Family

ID=28034834

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20020028724A KR100538727B1 (ko) 2002-03-07 2002-05-23 멀티 프로세서 시스템

Country Status (6)

Country Link
US (1) US20030177288A1 (ko)
EP (1) EP1365321A3 (ko)
JP (1) JP2003263331A (ko)
KR (1) KR100538727B1 (ko)
CN (1) CN1444154A (ko)
TW (1) TWI221250B (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100791296B1 (ko) * 2006-03-03 2008-01-04 삼성전자주식회사 멀티 코어 시스템에서 협력적 스케줄링을 제공하는 장치 및방법
KR100856468B1 (ko) * 2007-01-08 2008-09-04 재단법인서울대학교산학협력재단 임베디드 소프트웨어의 객체지향 태스크 모델을멀티프로세서 시스템 온 칩 하드웨어 아키텍처로 자동할당하기 위한 방법
KR100957060B1 (ko) * 2007-12-12 2010-05-13 엠텍비젼 주식회사 명령어 병렬 스케줄러, 방법 및 그 기록매체
US8806498B2 (en) 2010-08-18 2014-08-12 Samsung Electronics Co., Ltd. Method and system for resolving dependency among the enqueued works and/or finished works and scheduling the dependency-resolved works
WO2016093484A1 (ko) * 2014-12-10 2016-06-16 삼성전자 주식회사 매크로 명령어를 처리하는 방법 및 장치

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3793062B2 (ja) * 2001-09-27 2006-07-05 株式会社東芝 メモリ内蔵データ処理装置
US7467383B2 (en) * 2004-03-08 2008-12-16 Ab Initio Software Llc System for controlling task execution using a graphical representation of task dependency
GB0420442D0 (en) * 2004-09-14 2004-10-20 Ignios Ltd Debug in a multicore architecture
JP4606142B2 (ja) * 2004-12-01 2011-01-05 株式会社ソニー・コンピュータエンタテインメント スケジューリング方法、スケジューリング装置およびマルチプロセッサシステム
US20090158293A1 (en) * 2005-09-05 2009-06-18 Nec Corporation Information processing apparatus
US8345053B2 (en) * 2006-09-21 2013-01-01 Qualcomm Incorporated Graphics processors with parallel scheduling and execution of threads
US7809926B2 (en) * 2006-11-03 2010-10-05 Cornell Research Foundation, Inc. Systems and methods for reconfiguring on-chip multiprocessors
JP5146444B2 (ja) * 2007-03-20 2013-02-20 富士通株式会社 マルチプロセッサシステム及びその制御方法
JP5146449B2 (ja) 2007-04-12 2013-02-20 日本電気株式会社 アレイプロセッサ型データ処理装置
US8561072B2 (en) * 2008-05-16 2013-10-15 Microsoft Corporation Scheduling collections in a scheduler
JP5365201B2 (ja) * 2009-01-07 2013-12-11 日本電気株式会社 プロセス実行制御システム、プロセス実行制御方法、及びプロセス実行制御プログラム
KR101083049B1 (ko) 2010-06-11 2011-11-16 엘아이지넥스원 주식회사 시뮬레이션 시스템 및 시뮬레이션 방법
JP5238876B2 (ja) * 2011-12-27 2013-07-17 株式会社東芝 情報処理装置及び情報処理方法
CN104714838A (zh) * 2013-12-12 2015-06-17 中国移动通信集团四川有限公司 一种任务调度方法及装置
CN108021563B (zh) * 2016-10-31 2021-09-07 华为技术有限公司 一种指令间数据依赖的检测方法和装置
WO2019044340A1 (ja) * 2017-08-30 2019-03-07 富士フイルム株式会社 画像処理装置、画像処理方法、及び画像処理プログラム
CN109522048B (zh) * 2017-09-18 2023-05-23 展讯通信(上海)有限公司 一种同步多线程中断验证方法及系统
CN110059024B (zh) * 2019-04-19 2021-09-21 中国科学院微电子研究所 一种内存空间数据缓存方法及装置

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2064383C3 (de) * 1970-01-12 1981-02-26 Fujitsu Ltd., Kawasaki, Kanagawa (Japan) Datenverarbeitungsanlage mit mehreren zentralen Verarbeitungseinrichtungen
JP2628079B2 (ja) * 1988-11-25 1997-07-09 三菱電機株式会社 マルチプロセサシステムにおけるダイレクト・メモリ・アクセス制御装置
JP2658397B2 (ja) * 1989-06-13 1997-09-30 日本電気株式会社 マルチプロセッサシステム
JPH0640324B2 (ja) * 1989-10-26 1994-05-25 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチプロセッサ・システムおよびそのプロセス同期方法
US5303369A (en) * 1990-08-31 1994-04-12 Texas Instruments Incorporated Scheduling system for multiprocessor operating system
US5276798A (en) * 1990-09-14 1994-01-04 Hughes Aircraft Company Multifunction high performance graphics rendering processor
JPH0695879A (ja) * 1992-05-05 1994-04-08 Internatl Business Mach Corp <Ibm> コンピュータシステム
JP2861647B2 (ja) * 1992-07-08 1999-02-24 松下電器産業株式会社 画像生成装置
US6105053A (en) * 1995-06-23 2000-08-15 Emc Corporation Operating system for a non-uniform memory access multiprocessor system
US5742814A (en) * 1995-11-01 1998-04-21 Imec Vzw Background memory allocation for multi-dimensional signal processing
US5991542A (en) * 1996-09-13 1999-11-23 Apple Computer, Inc. Storage volume handling system which utilizes disk images
US6069705A (en) * 1996-10-07 2000-05-30 Texas Instruments Incorporated Managing interpreter cofunctions on multiprocessor-based printer
KR19980027320A (ko) * 1996-10-15 1998-07-15 김광호 멀티 프로세서 컴퓨터 시스템
US6012142A (en) * 1997-11-14 2000-01-04 Cirrus Logic, Inc. Methods for booting a multiprocessor system
DE69822591T2 (de) * 1997-11-19 2005-03-24 Imec Vzw System und Verfahren zur Kontextumschaltung über vorbestimmte Unterbrechungspunkte
US6230151B1 (en) * 1998-04-16 2001-05-08 International Business Machines Corporation Parallel classification for data mining in a shared-memory multiprocessor system
US6212622B1 (en) * 1998-08-24 2001-04-03 Advanced Micro Devices, Inc. Mechanism for load block on store address generation
SE9803901D0 (sv) * 1998-11-16 1998-11-16 Ericsson Telefon Ab L M a device for a service network
KR100400165B1 (ko) * 1998-11-16 2003-10-01 텔레폰아크티에볼라게트 엘엠 에릭슨 처리 시스템 스케쥴링
SE9902373D0 (sv) * 1998-11-16 1999-06-22 Ericsson Telefon Ab L M A processing system and method
US6272522B1 (en) * 1998-11-17 2001-08-07 Sun Microsystems, Incorporated Computer data packet switching and load balancing system using a general-purpose multiprocessor architecture
US6675380B1 (en) * 1999-11-12 2004-01-06 Intel Corporation Path speculating instruction scheduler
AU2001239559A1 (en) * 2000-03-23 2001-10-03 Sony Computer Entertainment Inc. Image processing apparatus and method
US20030105620A1 (en) * 2001-01-29 2003-06-05 Matt Bowen System, method and article of manufacture for interface constructs in a programming language capable of programming hardware architetures

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100791296B1 (ko) * 2006-03-03 2008-01-04 삼성전자주식회사 멀티 코어 시스템에서 협력적 스케줄링을 제공하는 장치 및방법
KR100856468B1 (ko) * 2007-01-08 2008-09-04 재단법인서울대학교산학협력재단 임베디드 소프트웨어의 객체지향 태스크 모델을멀티프로세서 시스템 온 칩 하드웨어 아키텍처로 자동할당하기 위한 방법
KR100957060B1 (ko) * 2007-12-12 2010-05-13 엠텍비젼 주식회사 명령어 병렬 스케줄러, 방법 및 그 기록매체
US8806498B2 (en) 2010-08-18 2014-08-12 Samsung Electronics Co., Ltd. Method and system for resolving dependency among the enqueued works and/or finished works and scheduling the dependency-resolved works
WO2016093484A1 (ko) * 2014-12-10 2016-06-16 삼성전자 주식회사 매크로 명령어를 처리하는 방법 및 장치
KR20160070630A (ko) * 2014-12-10 2016-06-20 삼성전자주식회사 매크로 명령어를 처리하는 방법 및 장치
US10564971B2 (en) 2014-12-10 2020-02-18 Samsung Electronics Co., Ltd. Method and apparatus for processing macro instruction using one or more shared operators

Also Published As

Publication number Publication date
JP2003263331A (ja) 2003-09-19
EP1365321A3 (en) 2005-11-30
KR100538727B1 (ko) 2005-12-26
US20030177288A1 (en) 2003-09-18
EP1365321A2 (en) 2003-11-26
TWI221250B (en) 2004-09-21
CN1444154A (zh) 2003-09-24

Similar Documents

Publication Publication Date Title
KR100538727B1 (ko) 멀티 프로세서 시스템
US6389446B1 (en) Multi-processor system executing a plurality of threads simultaneously and an execution method therefor
KR100267091B1 (ko) 비대칭싱글-칩이중멀티프로세서의정합및동기화
US20100045682A1 (en) Apparatus and method for communicating between a central processing unit and a graphics processing unit
US5530889A (en) Hierarchical structure processor having at least one sub-sequencer for executing basic instructions of a macro instruction
JPH03233630A (ja) 情報処理装置
WO2004092949A2 (en) Processing system with instruction-and thread-level parallelism
JP2006048661A (ja) プロセッサとコプロセッサとの間でのデータ転送を制御する演算処理装置
JP2005528671A (ja) 多重プロセッサデータ処理システムにおけるデータ処理方法及び対応するデータ処理システム
JP5238876B2 (ja) 情報処理装置及び情報処理方法
JP4631442B2 (ja) プロセッサ
Ostheimer Parallel Functional Computation on STAR: DUST—
RU2042193C1 (ru) Вычислительная система
JP2814683B2 (ja) 命令処理装置
JPS59771A (ja) デ−タ処理装置における演算処理部選択制御方式
JP3457535B2 (ja) プロセッサ間通信装置
JP2001022581A (ja) データ処理装置及びコンピュータ読み取り可能な記憶媒体
Amamiya et al. Multithreaded architecture for multimedia processing
JPH0535507A (ja) 中央処理装置
US9141438B2 (en) Logic for synchronizing multiple tasks
JPH0279122A (ja) 浮動小数点演算機構
JPH11296494A (ja) 複合プロセッサシステム
JPH04195226A (ja) 並列処理マイクロプロセッサ
JP2001067333A (ja) 並列計算機の共有メモリバッファリング装置
JP2004192145A (ja) マルチプロセッサシステム

Legal Events

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

Payment date: 20111118

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee