KR100538727B1 - 멀티 프로세서 시스템 - Google Patents
멀티 프로세서 시스템 Download PDFInfo
- Publication number
- KR100538727B1 KR100538727B1 KR20020028724A KR20020028724A KR100538727B1 KR 100538727 B1 KR100538727 B1 KR 100538727B1 KR 20020028724 A KR20020028724 A KR 20020028724A KR 20020028724 A KR20020028724 A KR 20020028724A KR 100538727 B1 KR100538727 B1 KR 100538727B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- processor
- memory
- arithmetic
- task
- Prior art date
Links
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
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
본 발명은, 화상 데이터 등의 대용량 데이터를 처리할 수 있는 복수의 프로세서로 이루어지는 멀티 프로세서 시스템에 관한 것이다.
통상의 프로세서는, 비교적 소용량의 데이터를 처리하는 것을 전제로 하고 있기 때문에, 레지스터에는 고가인 소용량의 멀티포트 메모리를 사용하는 것이 일반적이다. 이 때문에, 이들 통상의 프로세서를 복수개 이용하여 멀티 프로세서 시스템을 구축하면, 각 프로세서 사이에서 빈번하게 데이터를 교환해야 하므로, 각 프로세서의 제어가 복잡하게 된다.
기존의 멀티 프로세서 시스템으로서 대표적인 것으로, 공유 메모리형 병렬 프로세서 시스템과 벡터 프로세서 시스템이 있다.
공유 메모리형 병렬 프로세서 시스템은, 연산기용의 프로세서가 자발적으로 데이터를 취득하기 때문에, 프로그램이 각 프로세서의 처리를 최적으로 스케줄링하는 것은 곤란하다. 예를 들면, 그래픽스의 중첩 묘화를 행하는 경우, 작은 처리 단위를 반복하여 결과적으로 대용량의 데이터가 되기 때문에, 이러한 시스템에서는, 각 프로세서가 자발적으로 몇 번이나 데이터를 취득하는 처리를 반복하는 결과로 되어, 각 프로세서의 처리를 최적화하는 것은 사실상 불가능하다.
또한, 벡터 프로세서 시스템에서는, 호스트 컴퓨터가 벡터 프로세서의 처리를 제어한다. 그런데, 종래의 벡터 프로세서 시스템에서는, 호스트 컴퓨터는 벡터 프로세서의 네트워크 액세스나 메모리 액세스의 스케줄링을 행하고 있지 않고, 컴파일러가 스케줄링을 행하고 있었다. 예를 들면, 이러한 시스템에서 그래픽스의 중첩 묘사 처리를 행하는 경우, 데이터의 의존 관계를 전부 컴파일러 상에서 체크하여 스케줄링해야 하므로, 컴파일 처리에 시간이 걸리게 된다.
따라서, 본 발명의 목적은 각 프로세서에서의 태스크 처리를 최적화하는 것이다.
본 발명의 일 실시예에 따른 멀티 프로세서 시스템은, 메모리에 저장된 데이터를 이용하여 태스크를 실행하는 하나 이상의 연산 프로세서와, 상기 연산 프로세서에서의 태스크의 실행을 제어하는 제어 프로세서를 구비하고, 상기 제어 프로세서는, 동일 또는 다른 태스크를 실행할 때 공통적으로 이용되는 데이터 사이의 의존 관계를 체크하는 의존 관계 체크부와, 상기 체크된 의존 관계에 기초하여 상기 메모리에 대한 액세스, 상기 메모리로부터 상기 연산 프로세서로의 데이터 전송, 및 상기 연산 프로세서에서의 연산 스케줄링을 행하는 스케줄링부를 포함한다.
이하, 본 발명에 따른 멀티 프로세서 시스템의 실시예에 대하여, 도면을 참조하면서 구체적으로 설명한다.
〈제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)의 내부에는, 복수의 픽셀 파이프(41)와, 각 픽셀 파이프(41)에 접속되는 SRAM(SPM)(9)과, 전처리(前處理)를 행하는 셋업/DDA부(32)가 설치되어 있다.
각 연산 처리부(3) 내의 픽셀 파이프(41)는, 도 1의 연산 프로세서(2)에 상당하는 것으로, 폴리곤의 렌더링이나 템플릿·매칭 처리 등의 화상 처리를 행한다.
도 11의 제어 프로세서(6)는, 화상 처리용의 태스크로 이용되는 블록 데이터의 의존 관계를 체크하고, 그 체크 결과에 기초하여 연산 처리부(3) 내의 픽셀 파이프(31)의 동작을 스케줄링한다. 이에 의해, 각 픽셀 파이프(41)를 병렬로 동작시킬 수 있어, 매우 고속으로 각종 화상 처리를 행할 수 있다.
상술한 실시예에서는, 연산 처리부(3) 내에 복수의 연산 프로세서(2)를 설치하는 예를 설명하였지만, 연산 프로세서(2)가 하나만이어도 본 발명은 적용 가능하다.
상술한 실시예에서는, 화상 데이터를 합성하는 처리를 행하는 예를 설명하였지만, 본 발명은 화상 데이터의 합성 처리 이외의 각종의 연산 처리에도 적용 가능하다.
또한, 도 1, 도 5 및 도 9에 도시한 블록도 중 적어도 일부를 하드웨어 대신에 소프트웨어로 실현하여도 된다.
본 발명에 따르면, 복수의 연산 프로세서가 병렬로 태스크를 행할 수 있도록, 각 연산 프로세서에서의 태스크를 제어 프로세서에 의해 스케줄링하기 때문에, 각 연산 프로세서에서의 처리를 효울적으로 스케줄링할 수 있으며, 또한 통상의 프로세서의 시스템 클럭보다고 느린 클럭으로 제어 프로세서를 동작시킬 수 있어, 고가의 고속 부품이나 고속 프로세서를 사용할 필요도 없고, 또한 하드웨어의 타이밍 설계도 용이하게 된다.
도 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 : 명령 저장부
Claims (12)
- 멀티 프로세서 시스템으로서,메모리에 저장된 데이터를 이용하여 태스크를 실행하는 하나 이상의 연산 프로세서와,상기 연산 프로세서에서의 태스크의 실행을 제어하는 제어 프로세서와,상기 메모리 및 상기 하나 이상의 연산 프로세서 간에서의 데이터의 교환을 제어하는 데이터 전송 제어부를 구비하고,상기 제어 프로세서는,동일 또는 다른 태스크를 실행할 때 공통적으로 이용되는 데이터 사이의 의존 관계를 검출하는 의존 관계 검출부와,상기 검출된 의존 관계에 기초하여 데이터 블록 단위로 상기 메모리에 액세스 하여, 상기 메모리로부터 상기 연산 프로세서로의 데이터 전송, 및 상기 연산 프로세서에서의 연산 스케줄링을 행하는 스케줄링부를 포함하는 멀티 프로세서 시스템.
- 삭제
- 삭제
- 제1항에 있어서,상기 스케줄링부는 상기 데이터 전송 제어부가 출력하는 전송 제어 신호를 고려하여 상기 스케줄링을 행하는 멀티 프로세서 시스템.
- 제1항에 있어서,상기 연산 프로세서가 행하는 처리 내용을 특정하는 식별자와, 상기 연산 프로세서가 입력 데이터로서 사용하는 데이터의 저장처를 나타내는 상기 메모리 상의 제1 어드레스와, 상기 연산 프로세서에 의한 연산 결과의 저장처를 나타내는 상기 메모리 상의 제2 어드레스를 포함하는 매크로 명령을 저장하는 명령 저장부를 구비하고,상기 의존 관계 체크부는 상기 제1 및 제2 어드레스에 기초하여 데이터사이의 의존 관계를 검출하는 멀티 프로세서 시스템.
- 제1항에 있어서,실행하여야 할 태스크를 식별하는 식별자에 의해, 태스크끼리의 의존 관계를 기록하는 조건 테이블과,상기 조건 테이블에 기초하여 상기 실행하여야 할 태스크의 실행 조건 정보와 각 태스크가 실행 시에 사용하는 리소스 정보를 기록하는 리소스 관리 테이블을 구비하고,상기 의존 관계 체크부는 상기 리소스 관리 테이블에 기록된 정보에 기초하여 상기 실행하여야 할 태스크로 이용하는 데이터의 의존 관계를 검출하는 멀티 프로세서 시스템.
- 제1항에 있어서,상기 데이터는 화상 데이터이며,상기 의존 관계 체크부는 동일 또는 다른 합성 화상을 생성할 때 공통적으로 이용되는 데이터끼리 의존 관계가 있다고 판단하는 멀티 프로세서 시스템.
- 제1항에 있어서,상기 데이터는 1킬로 바이트 이상의 데이터 사이즈로 설정되는 멀티 프로세서 시스템.
- 제8항에 있어서,복수의 태스크를 실행하는 상기 연산 프로세서의 수가 증가할 수록, 상기 데이터의 데이터 사이즈를 크게 하는 멀티 프로세서 시스템.
- 제1항에 있어서,상기 제어 프로세서는 상기 메모리와 상기 연산 프로세서 간에서 상기 데이터를 송수신하는 데 요하는 시간 단위를 기준으로 하는 클럭에 기초하여 처리 동작을 행하는 멀티 프로세서 시스템.
- 제1항에 있어서,상기 메모리는 복수의 뱅크로 분리된 원 포트 메모리인 멀티 프로세서 시스템.
- 제1항에 있어서,상기 메모리 및 상기 연산 프로세서 간의 데이터의 전송과 상기 연산 프로세서에서의 데이터 처리를 병렬로 행하기 위해,상기 메모리 및 상기 연산 프로세서 간의 데이터 전송용의 버퍼와,상기 연산 프로세서에서의 데이터 처리용의 버퍼를 구비하는 멀티 프로세서 시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002061576A JP2003263331A (ja) | 2002-03-07 | 2002-03-07 | マルチプロセッサシステム |
JPJP-P-2002-00061576 | 2002-03-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20030074047A KR20030074047A (ko) | 2003-09-19 |
KR100538727B1 true 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 (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009139966A1 (en) * | 2008-05-16 | 2009-11-19 | Microsoft Corporation | Scheduling collections in a scheduler |
KR101083049B1 (ko) | 2010-06-11 | 2011-11-16 | 엘아이지넥스원 주식회사 | 시뮬레이션 시스템 및 시뮬레이션 방법 |
Families Citing this family (21)
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 |
KR100791296B1 (ko) * | 2006-03-03 | 2008-01-04 | 삼성전자주식회사 | 멀티 코어 시스템에서 협력적 스케줄링을 제공하는 장치 및방법 |
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 |
KR100856468B1 (ko) * | 2007-01-08 | 2008-09-04 | 재단법인서울대학교산학협력재단 | 임베디드 소프트웨어의 객체지향 태스크 모델을멀티프로세서 시스템 온 칩 하드웨어 아키텍처로 자동할당하기 위한 방법 |
JP5146444B2 (ja) * | 2007-03-20 | 2013-02-20 | 富士通株式会社 | マルチプロセッサシステム及びその制御方法 |
EP2138937A4 (en) | 2007-04-12 | 2011-01-26 | Nec Corp | DATA PROCESSING DEVICE OF ARRAY PROCESSORYPSY |
KR100957060B1 (ko) * | 2007-12-12 | 2010-05-13 | 엠텍비젼 주식회사 | 명령어 병렬 스케줄러, 방법 및 그 기록매체 |
JP5365201B2 (ja) * | 2009-01-07 | 2013-12-11 | 日本電気株式会社 | プロセス実行制御システム、プロセス実行制御方法、及びプロセス実行制御プログラム |
KR20120017294A (ko) | 2010-08-18 | 2012-02-28 | 삼성전자주식회사 | 어플리케이션을 효율적으로 처리하는 스케쥴링 시스템 및 스케쥴링 방법 |
JP5238876B2 (ja) * | 2011-12-27 | 2013-07-17 | 株式会社東芝 | 情報処理装置及び情報処理方法 |
CN104714838A (zh) * | 2013-12-12 | 2015-06-17 | ***通信集团四川有限公司 | 一种任务调度方法及装置 |
KR102270791B1 (ko) | 2014-12-10 | 2021-06-29 | 삼성전자주식회사 | 매크로 명령어를 처리하는 방법 및 장치 |
CN108021563B (zh) * | 2016-10-31 | 2021-09-07 | 华为技术有限公司 | 一种指令间数据依赖的检测方法和装置 |
CN111052084B (zh) * | 2017-08-30 | 2023-10-17 | 富士胶片株式会社 | 图像处理装置、图像处理方法以及图像处理程序 |
CN109522048B (zh) * | 2017-09-18 | 2023-05-23 | 展讯通信(上海)有限公司 | 一种同步多线程中断验证方法及*** |
CN110059024B (zh) * | 2019-04-19 | 2021-09-21 | 中国科学院微电子研究所 | 一种内存空间数据缓存方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19980027320A (ko) * | 1996-10-15 | 1998-07-15 | 김광호 | 멀티 프로세서 컴퓨터 시스템 |
WO2000029941A1 (en) * | 1998-11-16 | 2000-05-25 | Telefonaktiebolaget Lm Ericsson | Improved result handling in a multiprocessing system |
WO2000029943A1 (en) * | 1998-11-16 | 2000-05-25 | Telefonaktiebolaget Lm Ericsson | Processing system scheduling |
WO2000029939A1 (en) * | 1998-11-16 | 2000-05-25 | Telefonaktiebolaget Lm Ericsson | A job-parallel processor |
US6212622B1 (en) * | 1998-08-24 | 2001-04-03 | Advanced Micro Devices, Inc. | Mechanism for load block on store address generation |
Family Cites Families (19)
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 |
US6012142A (en) * | 1997-11-14 | 2000-01-04 | Cirrus Logic, Inc. | Methods for booting a multiprocessor system |
EP0918280B1 (en) * | 1997-11-19 | 2004-03-24 | IMEC vzw | System and method for context switching on predetermined interruption points |
US6230151B1 (en) * | 1998-04-16 | 2001-05-08 | International Business Machines Corporation | Parallel classification for data mining in a shared-memory multiprocessor system |
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 |
-
2002
- 2002-03-07 JP JP2002061576A patent/JP2003263331A/ja active Pending
- 2002-05-02 TW TW091109116A patent/TWI221250B/zh not_active IP Right Cessation
- 2002-05-10 EP EP02010131A patent/EP1365321A3/en not_active Withdrawn
- 2002-05-10 US US10/141,983 patent/US20030177288A1/en not_active Abandoned
- 2002-05-23 KR KR20020028724A patent/KR100538727B1/ko not_active IP Right Cessation
- 2002-05-31 CN CN02121784A patent/CN1444154A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19980027320A (ko) * | 1996-10-15 | 1998-07-15 | 김광호 | 멀티 프로세서 컴퓨터 시스템 |
US6212622B1 (en) * | 1998-08-24 | 2001-04-03 | Advanced Micro Devices, Inc. | Mechanism for load block on store address generation |
WO2000029941A1 (en) * | 1998-11-16 | 2000-05-25 | Telefonaktiebolaget Lm Ericsson | Improved result handling in a multiprocessing system |
WO2000029943A1 (en) * | 1998-11-16 | 2000-05-25 | Telefonaktiebolaget Lm Ericsson | Processing system scheduling |
WO2000029939A1 (en) * | 1998-11-16 | 2000-05-25 | Telefonaktiebolaget Lm Ericsson | A job-parallel processor |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009139966A1 (en) * | 2008-05-16 | 2009-11-19 | Microsoft Corporation | Scheduling collections in a scheduler |
US8561072B2 (en) | 2008-05-16 | 2013-10-15 | Microsoft Corporation | Scheduling collections in a scheduler |
KR101083049B1 (ko) | 2010-06-11 | 2011-11-16 | 엘아이지넥스원 주식회사 | 시뮬레이션 시스템 및 시뮬레이션 방법 |
Also Published As
Publication number | Publication date |
---|---|
EP1365321A2 (en) | 2003-11-26 |
CN1444154A (zh) | 2003-09-24 |
US20030177288A1 (en) | 2003-09-18 |
TWI221250B (en) | 2004-09-21 |
JP2003263331A (ja) | 2003-09-19 |
EP1365321A3 (en) | 2005-11-30 |
KR20030074047A (ko) | 2003-09-19 |
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) | 비대칭싱글-칩이중멀티프로세서의정합및동기화 | |
JP6047747B2 (ja) | 制御タイプの実行モードとデータフロータイプの実行モードとの組み合わせによりタスクを並列に実行可能な複数の処理ユニットを有するシステム | |
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) | 情報処理装置 | |
JP2006520044A (ja) | データフローアプリケーションを処理するために最適化されるキャッシュを備えるデータ処理システム | |
JP5238876B2 (ja) | 情報処理装置及び情報処理方法 | |
JP2006048661A (ja) | プロセッサとコプロセッサとの間でのデータ転送を制御する演算処理装置 | |
JP2005528671A (ja) | 多重プロセッサデータ処理システムにおけるデータ処理方法及び対応するデータ処理システム | |
JP4631442B2 (ja) | プロセッサ | |
WO2021187027A1 (ja) | 情報処理装置及び情報処理方法 | |
JP2814683B2 (ja) | 命令処理装置 | |
RU2042193C1 (ru) | Вычислительная система | |
Ostheimer | Parallel Functional Computation on STAR: DUST— | |
JPS59771A (ja) | デ−タ処理装置における演算処理部選択制御方式 | |
JP2001022581A (ja) | データ処理装置及びコンピュータ読み取り可能な記憶媒体 | |
JP3457535B2 (ja) | プロセッサ間通信装置 | |
JPH0535507A (ja) | 中央処理装置 | |
JP2002278753A (ja) | データ処理システム | |
JPH11296494A (ja) | 複合プロセッサシステム | |
JP2001067333A (ja) | 並列計算機の共有メモリバッファリング装置 | |
JPH06131173A (ja) | マイクロプログラム制御システム | |
JPH09160777A (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 |