KR20070116740A - 비대칭 멀티 프로세서 - Google Patents

비대칭 멀티 프로세서 Download PDF

Info

Publication number
KR20070116740A
KR20070116740A KR1020070054981A KR20070054981A KR20070116740A KR 20070116740 A KR20070116740 A KR 20070116740A KR 1020070054981 A KR1020070054981 A KR 1020070054981A KR 20070054981 A KR20070054981 A KR 20070054981A KR 20070116740 A KR20070116740 A KR 20070116740A
Authority
KR
South Korea
Prior art keywords
processor
dsp
core
cpu
signal processing
Prior art date
Application number
KR1020070054981A
Other languages
English (en)
Inventor
마사히로 호샤쿠
Original Assignee
마쓰시타 일렉트릭 인더스트리얼 코우.,엘티디.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마쓰시타 일렉트릭 인더스트리얼 코우.,엘티디. filed Critical 마쓰시타 일렉트릭 인더스트리얼 코우.,엘티디.
Publication of KR20070116740A publication Critical patent/KR20070116740A/ko

Links

Images

Classifications

    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • 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
    • 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/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Microcomputers (AREA)
  • Power Sources (AREA)
  • Advance Control (AREA)

Abstract

분산 처리의 자유도를 높게 하여 각 프로세서(CPU)의 처리 부하를 최소로 할 수 있고, 동작 주파수의 저감이나 전원 전압의 강압(降壓)에 의해 소비 전력의 대폭 삭감을 도모하는 비대칭 멀티 프로세서. 비대칭 멀티 프로세서(100)는 각 CPU 코어(101a, 101b)로부터 임의의 하드웨어 액셀러레이터의 사용 허가를 요구하는 요구 신호의 조정을 행하는 하드웨어 리소스 조정부(110)와, 슬레이브 접속하는 동적 재구성형 신호 처리 프로세서부(107)의 신호 처리 내용을 선택하는 신호 처리 내용 선택부(111)와, 각 그룹간 클럭의 위상 관계를 임의로 어긋나게 하는 제어를 행하는 클럭 스큐(clock skew) 조정부(112), 및 클럭 스큐 선택 이네이블(enable) 신호(114)를 기초로 하여 클럭 신호를 지연시키는 클럭 지연 생성부(113a ~ 113g)를 구비한다.

Description

비대칭 멀티 프로세서{Asymmetric multi processor}
도 1은 종래의 비대칭 멀티 프로세서의 구성을 나타내는 도면이다.
도 2는 본 발명의 실시형태 1에 따른 비대칭 멀티 프로세서의 구성을 나타내는 블록도이다.
도 3은 상기 실시형태에 따른 비대칭 멀티 프로세서의 동적 재구성형 신호 처리 프로세서부의 구성예를 나타내는 도면이다.
도 4는 상기 실시형태에 따른 비대칭 멀티 프로세서의 클럭 스큐(clock skew) 컨트롤 기구를 설명하는 도면이다.
도 5는 본 발명의 실시형태 2에 따른 비대칭 멀티 프로세서의 구성을 나타내는 블록도이다.
도 6은 본 발명의 실시형태 4에 따른 비대칭 멀티 프로세서의 구성을 나타내는 블록도이다.
특허 문헌 1:일본 특허 공개 제2004-252900호
본 발명은, 마이크로 프로세서 및 미디어 프로세서에 있어서, 전용 신호 처리 하드웨어, DSP(Digital Signal Processor), 및 재구성가능한 프로세서를 제어하는 비대칭 멀티 프로세서에 관한 것이다.
최근의 인터넷 접속 기능이 부가된 휴대전화 등에 탑재되는 프로세서는 음성 처리나 베이스밴드 처리에 더해, Java(등록상표) 프로그램 처리나 웹(web) 접속 제어, 오디오 처리나 그래픽 처리, MPEG(Moving Picture Experts Group) 등의 영상 처리, 나아가서는 디지털 TV나 게임 등을 행할 수 있는 고성능 미디어 프로세서 엔진(DSP나 CPU와 하드웨어 액셀러레이터의 조합)으로 구성되어 있다. 이와 같은 멀티미디어 프로세서에 있어서는 소프트웨어 개발 효율을 향상시키거나 LSI(Large Scale Integration)에 실장하는 면적을 작게 하거나 동작 전류를 삭감하는 수단으로서 분산 처리형의 멀티 프로세서가 기대되고 있다.
종래의 비대칭 멀티 프로세서는 복수의 프로세서가 탑재되고, 각각의 프로세서는 성능(동작 주파수 등)이나 명령 세트나 아키텍처(architecture)(비트 폭이나 메모리 사이즈, 캐시 사이즈, 파이프 라인단 수 등) 중 어느 하나, 혹은 전부가 다르다.
또한, 복수의 프로세서, 예를 들어, 복수의 CPU가 탑재된 비대칭 멀티 프로세서 중에는 각각의 CPU의 처리 분담(역할 분담)이 미리 결정되어 있는 경우도 있으며, 이 경우 각각의 CPU는 그 역할 분담에 따라 전용의 신호 처리 하드웨어 회로(하드웨어 액셀러레이터)나 DSP를 슬레이브 접속하는 구성을 가지고 있었다(예를 들어, 특허 문헌 1 참조).
도 1은, 종래의 비대칭 멀티 프로세서의 구성을 나타내는 도면이다.
도 1에 있어서, 비대칭 멀티 프로세서 시스템(10)은, CPU 코어(11a ~ 11c)(CPU #1 ~ #3), 캐시 메모리(이하, 캐시라고 한다)(12a ~ 12c)($1 ~ $3), ROM(13), RAM(14), CPU 코어(11a)(CPU #1)의 슬레이브·하드웨어(이하, 적절히 HW라고 약기한다) 액셀러레이터부(15a ~ 15c)(HW #1a ~ #1c), CPU 코어(11b)(CPU #2)의 슬레이브·하드웨어 액셀러레이터부(16a, 16b)(HW #2a, #2b), CPU 코어(11c)(CPU #3)의 슬레이브·하드웨어 액셀러레이터부(17a, 17b)(HW #3a,#3b) 등으로 구성되어 있고, CPU 코어(11a ~ 11c)(CPU #1 ~ #3)는, 캐시 메모리(12a ~ 12c)($1 ~ $3) 및 공통의 버스(18)를 통하여 ROM(13) 및 RAM(14)에 서로 접속되어 있다. 또한, CPU 코어(11a)(CPU #1)와 슬레이브·하드웨어 액셀러레이터부(15a ~ 15c)(HW #1a ~ #1c)는, 로컬 버스(19)에 의해 접속되고, CPU 코어(11b)(CPU #2)와 슬레이브·하드웨어 액셀러레이터부(16a, 16b)(HW #2a, #2b)는, 로컬 버스(20)에 의해 접속되며, CPU 코어(11c)(CPU #3)와 슬레이브·하드웨어 액셀러레이터부(17a, 17b)(HW #3a, #3b)는, 로컬 버스(21)에 의해 접속된다.
상기 슬레이브·하드웨어 액셀러레이터부(15a ~ 15c, 16a, 16b, 17a, 17b)의 일부는, 예를 들어, DSP 이외에, 비디오 신호 처리 블록, 오디오 신호 처리 블록, 제어 신호 처리 블록 등 각종 기능 블록으로 구성된다.
상기 서로 다른 프로세서 아키텍처 간에서 소프트웨어 프로그램으로 실행되는 처리를 배분하는 기술에 따르면, 1개의 프로세서로 행하는 것보다 하드웨어 리소스를 억제하는 효과나, 처리 분담을 배분한 결과 각 프로세서의 클럭 주파수를 저감함으로써 소비 전력을 억제할 수 있는 효과가 있다.
그러나, 이와 같은 종래의 비대칭 멀티 프로세서에서는 작업량이 예측가능한 복수의 단위 작업을 단위 작업마다 복수의 프로세서에 배분하여 실행시키기 때문에, 예측의 알고리즘이나 예측 시스템에 따라서는 소비 전력 절감 효과가 작은 경우가 많다.
한편, 특허 문헌 1에 기재된 비대칭 멀티 프로세서에서는 멀티 프로세서의 전체 구성(프로세서 아키텍처 설계)을 결정한 시점에서 각 CPU의 처리 내용이 어느 정도 고정되는 경우가 많으며, 이에 따라 도 1의 비대칭 멀티 프로세서와 같이, CPU의 처리를 가속 보조하는 슬레이브·하드웨어 액셀러레이터부(15a ~ 15c, 16a, 16b, 17a, 17b)가 각각의 CPU 코어(11a ~ 11c)에 로컬 버스(19 ~ 21)를 통하여 전용 접속되는 구성으로 되어 있다. 이 때문에, 처리하는 프로그램의 내용이 변경되어 처리량이 증가해도 복수의 CPU 코어(11a ~ 11c) 간에서 처리량의 분담(프로그램의 태스크 분담)이 용이하게 실시되지 못하여 자유도가 낮은 부하 분산이 되어 있다.
전자와 같은 비대칭 멀티 프로세서에서도, 후자의 특허 문헌 1에 기재된 비대칭 프로세서에서도, 나아가서는 양쪽 요소를 모두 겸비한 비대칭 멀티 프로세서라도 복수의 CPU나 하드웨어 액셀러레이터나 DSP 등이 동시에 동작하기 때문에, LSI 내부에서의 소비 전력의 증가가 과제가 된다.
 또한, 분산 처리함으로써 동작 주파수를 가변(또는 저감)하거나 동작 주파수와 전원 전압을 가변(또는 저감)하여 저전력화를 도모하는 방법도 있다. 그러나, 분산 처리를 상정한 클럭 트리의 설계가 복잡해지며, 최대 시동작 주파수에서 동작하는 경우에 있어서의 전원 전압의 IR 드롭(전압 강하 또는 전압 변동)이나, 동적 전원 노이즈가 커져 LSI의 오동작이 문제가 된다.
본 발명의 목적은, 분산 처리의 자유도를 높게 하여 각 프로세서(CPU)의 처리 부하를 최소로 할 수 있고, 동작 주파수의 저감이나 전원 전압의 강압(降壓)에 의해 소비 전력의 대폭 삭감을 도모할 수 있는 비대칭 멀티 프로세서를 제공하는 것이다.
본 발명에 따르면, 복수의 프로세서 코어와 복수의 하드웨어 액셀러레이터가 버스를 통하여 접속된 비대칭 멀티 프로세서로서, 상기 각 프로세서 코어로부터 임의의 하드웨어 액셀러레이터의 사용 허가를 요구하는 요구 신호의 조정을 행하는 하드웨어 리소스 조정부를 구비하고, 상기 하드웨어 리소스 조정부에 의해 요구 신호의 조정을 받은 상기 프로세서 코어가 임의의 하드웨어 액셀러레이터를 사용하는 비대칭 멀티 프로세서를 제공할 수 있다.
이하, 본 발명의 실시형태에 대하여, 도면을 참조하면서 구체적으로 설명한다.
(실시형태 1)
도 2는, 본 발명의 실시형태 1에 따른 비대칭 멀티 프로세서의 구성을 나타내는 블록도이다. 본 실시형태는 2개 이상의 프로세서를 구비하는 멀티 코어 프로 세서로서, 제1의 프로세서 코어(CPU 코어) 또는 제2의 프로세서 코어(CPU 코어)를 구비하는 비대칭 멀티 프로세서에 적용한 예이다.
도 2에 있어서, 비대칭 멀티 프로세서(100)는, 제1의 CPU 코어(101a)(CPU #1), 제2의 CPU 코어(101b)(CPU #2), 제1의 명령 캐시(102a)($1), 제1의 데이터 캐시(103a)($2), 제2의 명령 캐시(102b)($3), 제2의 데이터 캐시(103b)($4), ROM(104), RAM(105), 복수의 하드웨어 액셀러레이터부(106a ~ 106e)(HW #1 ~ #5), 동적 재구성가능한 프로세서인 동적 재구성형 신호 처리 프로세서부(107), 각 CPU 코어(101a, 101b)로부터 임의의 하드웨어 액셀러레이터의 사용 허가를 요구하는 요구 신호의 조정을 행하는 하드웨어 리소스 조정부(110), 슬레이브 접속하는 동적 재구성형 신호 처리 프로세서부(107)의 신호 처리 내용을 선택하는 신호 처리 내용 선택부(111), 각 그룹간 클럭의 위상 관계를 임의로 어긋나게 하는 제어를 행하는 클럭 스큐 조정부(112), 및 클럭 스큐 선택 이네이블(enable) 신호(114)를 기초로 하여 클럭 신호를 지연시키는 클럭 지연 생성부(113a ~ 113g)를 구비하여 구성되고, 동적 재구성형 신호 처리 프로세서부(107)는, 복수의 프로세서·엘리먼트(processor element)(108a ~ 108l)(EL 1 ~ EL 12), 및 구성 정보 디코딩부(109)로 구성된다.
제1의 CPU 코어(101a)(CPU #1)는, 제1의 명령 캐시(102a)($1), 제1의 데이터 캐시(103a)($2), 및 버스(120)를 통하여 ROM(104) 및 RAM(105)에 상호 접속되고, 제2의 CPU 코어(101b)(CPU #2)는, 제2의 명령 캐시(102b)($3), 제2의 데이터 캐시(103b)($4), 및 버스(120)를 통하여 ROM(104) 및 RAM(105)에 상호 접속되어 있다.
또한, 제1의 CPU 코어(101a)(CPU #1)는, 버스(121)를 통하여 하드웨어 액셀러레이터부(106a ~ 106e)(HW #1 ~ #5), 및 동적 재구성형 신호 처리 프로세서부(107)에 접속되고, 제2의 CPU 코어(101b)(CPU #2)는, 버스(122)를 통하여 하드웨어 액셀러레이터부(106a ~ 106e)(HW #1 ~ #5), 및 동적 재구성형 신호 처리 프로세서부(107)에 각각 접속된다.
제1의 CPU 코어(101a)(CPU #1)는, 예를 들어, 통신 제어용 CPU이며, 제2의 CPU 코어(101b)(CPU #2)는, 예를 들어, 미디어 처리 제어용 CPU이다. 제1의 CPU 코어(101a)(CPU #1)와 제2의 CPU 코어(101b)(CPU #2)는, 명령 캐시(102a와 102b)의 용량, 또는 데이터 캐시(103a와 103b)의 용량, 혹은 동작 주파수 등의 프로세서 성능, 나아가 명령 세트, 비트 폭, 메모리 사이즈, 캐시 사이즈 및 파이프 라인단 수를 포함하는 아키텍처 중 어느 하나, 혹은 전부가 서로 다른 복수의 CPU로 이루어지는 비대칭 멀티 프로세서이다. 도 2에서는, 제1의 CPU 코어(101a)(CPU #1)와 제2의 CPU 코어(101b)(CPU #2)의 2개의 프로세서를 구비하는 멀티 코어 프로세서를 나타내었으나, 그 밖의 프로세서 코어를 더 구비하는 멀티 프로세서라도 상관없다.
ROM(104)은 명령 ROM, RAM(105)은 데이터 RAM이다.
하드웨어 액셀러레이터부(106a ~ 106e)(HW #1 ~ #5)는, 예를 들어, 암호 엔진, 등가 처리 엔진, 채널 코딩 엔진, 3차원 그래픽 엔진, MPEG4 인코더 엔진이다. 본 실시형태에서는, 제1의 CPU 코어(101a)(CPU #1) 및 제2의 CPU 코 어(101b)(CPU #2)가 각 하드웨어 액셀러레이터부(106a ~ 106e)(HW #1 ~ #5)를 각각 공유한다. 한편, 도 1에 나타내는 종래예에서는, 본 실시형태와 같이 제1의 CPU 코어(101a)(CPU #1)와 제2의 CPU 코어(101b)(CPU #2)가 각 하드웨어 액셀러레이터부(106a ~ 106e)(HW #1 ~ #5)를 공유하는 구성을 취하지 않고, 예를 들어, 도 1의 하드웨어 액셀러레이터부(15a ~ 15c)(HW #1a ~ #1c)가 로컬 버스(19)를 통하여 CPU #1에 슬레이브 접속되고, 하드웨어 액셀러레이터(HW #16a, 16b)가 로컬 버스(20)를 통하여 CPU #2에 슬레이브 접속되어 있었다.
도 2로 되돌아와, 하드웨어 리소스 조정부(110), 신호 처리 내용 선택부(111), 클럭 스큐 조정부(112) 및 클럭 지연 생성부(113a ~ 113g)는 이하의 관점에서 마련된다.
하드웨어 리소스 조정부(110)는, 각 CPU로부터 임의의 하드웨어 액셀러레이터의 사용 허가를 요구하는 요구 신호의 조정을 행한다. 이 요구 신호의 조정에 의해 임의의 프로세서 코어가 임의의 하드웨어 액셀러레이터를 사용하는 것이 가능해져 프로세서의 부하 분산이 실현될 수 있다.
신호 처리 내용 선택부(111)는, 슬레이브 접속하는 동적 재구성형 신호 처리 프로세서부(107)의 신호 처리 내용을 선택하는 것으로, RAM과 선택 회로(모두 미도시)로 구성된다. 이 RAM에는 미리 프로세서·엘리먼트를 접속하는 순서 등의 정보인 구성 정보가 보존된다. RAM이 보존하는 구성 정보를 갱신함으로써, 필요한 하드웨어 엔진을 추가, 수정하는 것이 가능하다.
클럭 스큐 조정부(112)는, 제1의 CPU 코어(101a)(CPU #1)와 제1의 CPU 코 어(101a)(CPU #1)로부터 신호 처리의 실행을 요구하는 하드웨어 액셀러레이터로 이루어지는 제1의 신호 처리 그룹과, 제2의 CPU 코어(101b)(CPU #2)와 제2의 CPU 코어(101b)(CPU #2)로부터 신호 처리의 실행을 요구하는 하드웨어 액셀러레이터로 구성되는 제2 신호 처리 그룹과, 도시하지 않은 제3 이후의 프로세서 코어와 제3 이후의 프로세서 코어로부터 신호 처리의 실행을 요구한 하드웨어 액셀러레이터로 구성되는 제3 신호 처리 이후의 그룹간에서 각 그룹간 클럭의 위상 관계를 임의로 어긋나게 하는 제어를 행한다.
클럭 지연 생성부(113a ~ 113g)는, 복수의 지연 버퍼와 이 지연 버퍼를 선택하는 셀렉터(모두 미도시)를 구비하고, 상기 각 그룹의 클럭 입력부에 마련되며, 클럭 스큐 조정부(112)로부터의 클럭 스큐 선택 이네이블 신호(114)를 기초로 하여 클럭 신호를 지연시켜 각 그룹간의 클럭 위상을 임의로 어긋나게 한다.
도 3은, 동적 재구성형 신호 처리 프로세서부(107)의 구성예를 나타내는 도면이다.
동적 재구성형 신호 처리 프로세서부(107)는, 동적 재구성가능한 프로세서이며, 도 2에 나타낸 바와 같이, 복수의 프로세서·엘리먼트(108a ~ 108l)(EL 1 ~ EL 12), 및 구성 정보 디코딩부(109)로 구성된다. 동적 재구성형 신호 처리 프로세서부(107)의 구성예는 도 3으로 나타내며, 버스(121)(동적 재구성형 신호 처리 프로세서부(107)로부터 보아 외부 버스)로부터의 입력 데이터를 받는 입력 버퍼(201a), 버스(122)로부터의 입력 데이터를 받는 입력 버퍼(201b), 동적 재구성형 신호 처리 프로세서부(107)로부터의 데이터를 버스(121)에 출력하는 출력 버퍼(202a), 동적 재구성형 신호 처리 프로세서부(107)로부터의 데이터를 버스(122)에 출력하는 출력 버퍼(202b), 매트릭스 형상으로 배치된 내부 버스(203), 매트릭스 형상으로 배치된 내부 버스(203)의 각 노드 및 노드 간에 마련된 버스 셀렉터 스위치(204), 프로세서·엘리먼트(205a ~ 205c)(프로세서·엘리먼트 A), 프로세서·엘리먼트(206a ~ 206c)(프로세서·엘리먼트 B), 프로세서·엘리먼트(207a ~ 207f)(프로세서·엘리먼트 C), 및 구성 정보 디코딩부(109)를 구비하여 구성된다.
프로세서·엘리먼트(205a ~ 205c, 206a ~ 206c, 207a ~ 207f)는 몇 종류의 프로세서·엘리먼트(EL)로 구성된다. 예를 들어, 프로세서·엘리먼트(205a ~ 205c)(프로세서·엘리먼트 A)에는 쉬프트 연산기(211)와 ALU(212)가 준비되고, 프로세서·엘리먼트(206a ~ 206c)(프로세서·엘리먼트 B)에는 승산기(213)가 마련되고, 프로세서·엘리먼트(207a ~ 207f)(프로세서·엘리먼트 C)에는 ALU(214)와 배럴 쉬프터(barrel shifter)(215)가 준비되어 있다.
이하, 상술한 바와 같이 구성된 비대칭 멀티 프로세서(100)의 동작을 설명한다.
[하드웨어 리소스 조정부(110)의 조정 동작]
먼저, 하드웨어 액셀러레이터부(106a ~ 106e)(HW #1 ~ #5)의 선택 동작에 대하여 설명한다. 하드웨어 액셀러레이터부(106a ~ 106e)(HW #1 ~ #5)의 선택 동작은 하드웨어 리소스 조정부(110)가 CPU 코어(101a, 101b)로부터 임의의 하드웨어 액셀러레이터의 사용 허가를 요구하는 요구 신호의 조정을 행함으로써 실현된다.
현재, 제1의 CPU 코어(101a)(이하, CPU #1로 기재한다)가 데이터의 암호화 를 행하기 위하여 하드웨어 액셀러레이터부(106a)(이하, HW #1로 기재한다)의 어드레스 맵을 지정하면, 제2의 CPU 코어(101b)(이하, CPU #2라고 한다)가 HW #1의 요구를 내지 않은 경우에 CPU #1의 슬레이브로서 버스 연결을 허가한다. 또한, CPU #1과 CPU #2에서 요구가 충돌(경합)한 경우이고 동시 요구인 경우에는 이하 (1), (2)의 조정을 행한다.
즉, (1) 우선 순위가 높은 처리에 대하여 하드웨어 액셀러레이터의 접속을 허가하고, 허가되지 않은 CPU 측을 스톨(stall)시킨다. 혹은, (2) 동적 재구성형 신호 처리 프로세서부(107)에서 실현가능한 범위의 하드웨어 액셀러레이터인 경우에는, 재구성가능한 프로세서에서 분담하도록 조정을 행한다.
하드웨어 리소스 조정부(110)는, 요구를 낸 CPU의 처리 속도나, CPU가 분담하는 처리의 실시간성(처리 내용)에 따라 우선 순위를 미리 테이블 모델 등으로 가지고 있다. 단, CPU로부터의 요구 신호에 우선 순위 비트(priority bit)를 가지고 있으며, 이 신호를 CPU로부터 발행함으로써 강제적으로 우선 순위 비트를 발행한 CPU 측에 대하여 우선적으로 하드웨어 액셀러레이터가 접속된다. 우선 순위 비트의 발행 유무는 CPU의 소프트웨어로 제어한다. 또한, 복수의 CPU로부터 동시에 우선 순위 비트가 발행되는 소프트웨어 프로그램은 컴파일러 등으로 에러 처리되고, 소프트웨어 코딩의 재검토를 요구함으로써 피할 수 있다.
이어서, 일방의 CPU가 미리 사용하고 있는 하드웨어 액셀러레이터를 타방의 CPU가 나중에 끼어들어 요구한 경우에도 상기 충돌 시와 마찬가지로 상기 (1), (2)의 조정을 행하거나, 혹은 (3) 선행하여 행해지고 있던 신호 처리를 중지하고 중간 결과를 퇴피(退避)한 다음 나중에 요구된 CPU의 요구를 끼워 넣거나, 또는 (4) 중간 결과를 퇴피하지 않고 나중에 요구된 CPU의 처리를 허가하는 조정을 행함으로써, 비대칭 프로세서(100)에 의한 분산 처리를 행한다.
또한, 하드웨어 리소스 조정부(110)가 동적 재구성가능한 프로세서인 동적 재구성형 신호 처리 프로세서부(107)를 선택하는 경우, 슬레이브 접속하는 동적 재구성형 신호 처리 프로세서부(107)의 신호 처리 내용을 선택하는 신호 처리 내용 선택부(111) 내에 기억되어 있는 테이블 데이터로부터 미리 필요한 하드웨어 엔진이 있는지를 모니터하여, 테이블 데이터에 기억된 하드웨어 엔진과 필요로 하는 하드웨어 엔진이 일치한 경우에는 하드웨어 리소스 조정부(110)가 신호 처리 내용 선택부(111)에 HW 선택 이네이블 신호를 보낸다.
이 HW 선택 이네이블 신호에 의해 신호 처리 내용 선택부(111)에 내장된 RAM에 기억되어 있던 것으로부터 선택된 하드웨어 엔진의 재구성 정보를 동적 재구성가능한 프로세서인 동적 재구성형 신호 처리 프로세서부(107)의 구성 정보 디코딩부(109)에 보내고, 구성 정보 디코딩부(109)는 각 프로세서·엘리먼트(108a ~ 108l)의 접속 관계를 재구성하여 필요로 하는 하드웨어 액셀러레이터를 동적으로 구축한다. 하드웨어 리소스 조정부(110)는 이 재구성가능한 프로세서를 적절히 CPU의 슬레이브에 접속하여 내부의 하드웨어 액셀러레이터에서 회로 리소스가 부족한 경우 등에 대처한다.
여기서, 슬레이브 접속하는 동적 재구성형 신호 처리 프로세서부(107)의 신호 처리 내용을 선택하는 신호 처리 내용 선택부(111)는, RAM과 선택 회로로 구성 되며, 미리 프로세서·엘리먼트를 접속하는 순서 등의 정보를 구성 정보로서 몇 종류 준비하여 RAM에 보존해 두고, 나중에 RAM에 보존하는 구성 정보를 갱신함으로써, 필요한 하드웨어 엔진을 추가, 수정하는 것도 어느 정도 가능하게 되어 있다. 일례를 들면, 신호 처리 내용 선택부(111)에 기억시켜 두는 구성 정보는 ROM(104)에 기억되고, 본 비대칭 멀티 프로세서(100)의 기동 시에 다운로드된다. 또한, 구성하는 회로의 구성을 추가, 수정하고자 하는 경우에는 RAM(105)을 통하여 신호 처리 내용 선택부(111)에 내장되는 RAM의 정보를 갱신함으로써, 신호 처리의 규격 변경이나 성능 향상에 수반되는 하드웨어 액셀러레이터의 추가가 어느 정도 용이하게 실현가능해진다.
이어서, 도 3을 참조하여 동적 재구성가능한 프로세서인 동적 재구성형 신호 처리 프로세서부(107)의 동작을 설명한다.
동적 재구성형 신호 처리 프로세서부(107)는, 몇 종류의 프로세서·엘리먼트, 여기에서는 쉬프트 연산기(211)와 ALU(212)로 이루어지는 프로세서·엘리먼트(205a ~ 205c)(프로세서·엘리먼트 A), 승산기(213)로 이루어지는 프로세서·엘리먼트(206a ~ 206c)(프로세서·엘리먼트 B), ALU(214)와 배럴 쉬프터(215)로 이루어지는 프로세서·엘리먼트(207a ~ 207f)(프로세서·엘리먼트 C)를 구비하고, 재구성 정보 디코딩부인 구성 정보 디코딩부(109)가 외부입력되는 구성 정보를 디코딩한다. 이 디코딩 결과에 의해, 버스 셀렉터 스위치(204)가 절환되고, 버스 셀렉터 스위치(204)에 의해 절환된 내부 버스(203)를 통하여, 프로세서·엘리먼트(205a ~ 205c)(프로세서·엘리먼트 A), 프로세서·엘리먼트(206a ~ 206c)(프로세서·엘리먼 트 B), 프로세서·엘리먼트(207a ~ 207f)(프로세서·엘리먼트 C) 중에서 필요한 프로세서·엘리먼트가 선택되고, 신호 처리의 순서로 재접속되어 데이터 패스가 형성된다.
신호 처리 내용 선택부(111)로부터의 제어 신호에 의해 적절히 필요로 하는 CPU에 대하여 외부 버스(121, 122)를 통하여 동적 재구성형 신호 처리 프로세서부(107)에 대한 입력 데이터나 동적 재구성형 신호 처리 프로세서부(107)로부터의 출력 데이터에 슬레이브 접속시켜 하드웨어 액셀러레이터로서 이용가능하게 한다.
상술한 하드웨어 리소스 조정부(110)의 조정 동작에 의해 이하의 기능이 가능하게 된다. 비대칭 멀티 프로세서(100)는, 오디오 처리나 화상 처리, 베이스밴드 처리 등, 신호 처리의 특징에 맞춘 최적의 프로세서(CPU)를 복수 탑재하는 비동기 프로세서로서, 일방의 CPU, 예를 들어, 제1의 CPU 코어(101a)(CPU #1)에 있어서 CPU 리소스가 아이들링 상태, 혹은 CPU 부하가 낮은 경우에, 타방의 CPU, 예를 들어, 제2의 CPU 코어(101b)(CPU #2)의 처리에 있어서의 일부의 태스크를 배분함으로써, CPU #1, CPU #2 모두 최대 처리 능력에 대하여 동작 주파수를 떨어뜨려 처리할 수 있도록 분산 처리를 행한다. 그리고 이때의 동작 전압을 강압함으로써 동작 전력을 저감할 수 있음에 더하여, 각각의 CPU는 탑재되는 하드웨어 액셀러레이터를 자유롭게 선택가능하게 된다.
이에 의해, 예를 들어, CPU #1에 MPEG 엔진과 오디오 코덱 엔진이 슬레이브 접속되고, CPU #2에 3차원 그래픽 엔진이 슬레이브 접속되는 미디어 프로세서에 있어서, TV 전화의 처리를 행하는 경우, 화상 코덱과 음성 코덱을 동시에 행할 필 요가 있다. 이 경우, 처리량이 적은 시간대를 이용하여 제2의 CPU에 오디오 코덱 엔진을 슬레이브 접속하여, 화상 처리를 CPU #1과 화상 엔진에서, 오디오 처리를 CPU #2와 오디오 엔진에서 분산 처리한다.
한편, 게임을 행하는 경우, 3차원 그래픽 처리는 CPU #2와 그래픽 엔진에서, 효과음 처리를 제1의 CPU와 오디오 엔진에서 행하는 등 처리 부담의 최적화를 도모하는 것이 가능하게 된다.
[클럭 스큐 조정부(112)의 조정 동작]
또한, 예를 들어, CPU #1과 CPU #2의 동작 주파수가 같은 경우에는, 도 2의 하드웨어 액셀러레이터 조정부(110)가 CPU #2의 슬레이브로서 선택한 하드웨어 액셀러레이터의 정보를 클럭 스큐 조정부(112)에 넘긴다. 이에 의해, 클럭 스큐 조정부(112)는, 신호 처리의 실행을 요구한 하드웨어 액셀러레이터로 구성되는 그룹간에서 클럭의 위상 관계를 임의로 어긋나게 하는 제어를 행한다. 클럭 스큐 조정부(112)는, 각 그룹의 클럭 입력부에 마련된 클럭 지연 생성부(113a ~ 113g)에 의해 각 그룹간의 클럭 위상을 임의로 어긋나게 한다.
구체적으로, CPU #2에 공급하는 클럭과 CPU #2에 슬레이브 접속된 하드웨어 액셀러레이터에 공급하는 클럭의 위상을 CPU #1의 클럭에 대하여, 예를 들어, 반 사이클 어긋나게 하여 클럭 공급하도록, 클럭 스큐 선택 이네이블 신호(114)가 CPU #2의 슬레이브 접속된 하드웨어 액셀러레이터의 각 클럭 지연 생성부(113a ~ 113g)에 보내진다. 이에 의해 CPU #1 측의 처리와 CPU #2 측의 처리의 클럭 엣지가 교대로 발생하게 되어 LSI 내부의 IR 드롭이 경감된다. 이에 수반하여 각 신호 나 클럭 신호의 슬루(slew)가 둔화됨으로써 증가하는 DC 전류를 억제하여 소비 전류를 삭감함과 함께, 피크 전류의 억제에 의해 오동작 방지를 도모하는 것이 가능하게 된다. 이 경우, CPU #1과 CPU #2가 서로 다른 동작 주파수라도 마찬가지의 제어에 의해 피크 전류의 삭감을 도모할 수 있다. 즉 CPU #1과 CPU #2는 동기 설계를 기본으로 하지만, 각 프로세서의 동작 주파수에 따라 유용한 스큐 제어를 가능하게 하고 있다. 이는, 어느 부분의 회로에 대하여 클럭 스큐를 의도적으로 어긋나게 하여 동작시킬 수 있다는 것으로 연결된다.
도 4는, 클럭 스큐 컨트롤 기구를 설명하는 도면이다. CPU #1과 그 슬레이브 하드웨어, 및 CPU #2와 그 슬레이브 하드웨어 간에서 임의의 클럭 스큐를 생성하는 경우를 예로 든다.
하드웨어 리소스 조정부(110)에 대하여 CPU #2로부터 요구 신호가 있었던 하드웨어 액셀러레이터와 CPU #2에 대하여, 클럭 스큐 조정부(112)는 임의의 지연 정보를 상기 하드웨어와 CPU #2의 클럭 입력부에 배치한 클럭 지연 생성부(113a, 113b, 113c, 113d, 113e)에 대하여 설정한다. 클럭 지연 생성부(113a, 113b, 113c, 113d, 113e)의 내부에는 복수의 지연 버퍼와 이 지연 버퍼를 선택하는 셀렉터(모두 미도시)를 구비하고, 셀렉터로 지연 버퍼를 셀렉트함으로써 미세조정이 가능하게 되어 있다. 도 4에서는, 최종단의 클럭 지연 생성부(113e)는 인버터로 클럭을 반전시키고, 또한 CPU #2와 CPU #2의 슬레이브 하드웨어는 반전 클럭으로 동작한다.
CPU #2 측에서 처리가 완료되는 등으로 인하여 CPU #1 측과 버스 경유로 통신할 때에는, 도시하지 않은 래치 회로로 반 사이클 어긋남을 래치하여 흡수함으 로써 CPU의 스톨을 최소로 한다.
상술한 클럭 스큐 조정부(112)의 조정 동작으로 CPU #1과 여기에 슬레이브 접속되는 하드웨어 액셀러레이터, DSP, 혹은 동적 재구성가능한 프로세서의 동작 클럭에 대하여, 폭주하는 CPU #2와 여기에 슬레이브 접속되는 하드웨어 액셀러레이터, DSP, 혹은 동적 재구성가능한 프로세서에 대하여 동작 클럭의 위상을 어긋나게 제어한다. 이에 의해, LSI 내부 전원 전압의 IR 드롭을 억제하는 것이 가능해져 내부 신호의 슬루가 커지는 것을 방지하고, DC 관통 전류의 억제에 의해 동작 전력의 삭감을 도모할 수 있다. 또한, 클럭의 중첩을 피함으로써 피크 전류의 삭감이 가능하게 된다. 또한, 피크 전류의 삭감 효과에 의해 외부 부품(전원 IC)에 대한 허용 전류 능력을 과도하게 요구할 필요가 없어져, 전원 IC의 부품 코스트를 억제하는 것도 가능해진다.
상술한 바와 같이, 본 실시형태에 따르면, 비대칭 멀티 프로세서(100)는, 각 CPU 코어(101a, 101b)로부터 임의의 하드웨어 액셀러레이터의 사용 허가를 요구하는 요구 신호의 조정을 행하는 하드웨어 리소스 조정부(110)와, 슬레이브 접속하는 동적 재구성형 신호 처리 프로세서부(107)의 신호 처리 내용을 선택하는 신호 처리 내용 선택부(111)를 구비하여 구성했으므로, 각 CPU가 각각에 슬레이브 접속하는 하드웨어 액셀러레이터나 DSP 등의 프로세서를 공유함과 함께, 임의의 프로세서 코어가 임의의 하드웨어 액셀러레이터를 사용할 수 있다. 즉, 종래의 비대칭 멀티 프로세서에서는 각 CPU에 슬레이브 접속되는 하드웨어 액셀러레이터가 서로의 CPU에서 공유할 수 없는 구성이기 때문에, 각 CPU의 작업량에 따라 소프트웨어 프로그램 의 태스크를 배분하더라도 하드웨어 액셀러레이터의 제약으로 분산 처리에 자유도가 낮아 소비 전력의 저감 효과가 충분히 발휘되지 않는 문제가 있었다. 이에 대하여, 본 실시형태의 비대칭 멀티 프로세서(100)는, 각 CPU가 각각에 슬레이브 접속하는 하드웨어 액셀러레이터나 DSP 등의 프로세서를 공유하고, 분산 처리를 효율적으로 행할 수 있다. 이에 의해 CPU나 하드웨어 액셀러레이터, DSP의 동작 주파수 저감이나 전원 전압 강압을 도모하는 것이 용이해져 소비 전력의 삭감을 효율적으로 행하는 것이 가능하게 된다.
또한, 본 실시형태의 비대칭 멀티 프로세서(100)는, 각 그룹간 클럭의 위상 관계를 임의로 어긋나게 하는 제어를 행하는 클럭 스큐 조정부(112), 및 클럭 스큐 선택 이네이블 신호(114)를 기초로 하여 클럭 신호를 지연시키는 클럭 지연 생성부(113a ~ 113g)를 구비하고 있으므로, 각 CPU의 클럭 위상을 조정하는 구성을 가짐으로써, 피크 전류의 삭감이나 IR 드롭을 최소로 억제할 수 있다. 이에 의해 프로세서의 오동작을 방지하고, 또한 소비 전력의 삭감을 도모할 수 있다. 즉, 종래의 비대칭 멀티 프로세서에서는, 복수 탑재되어 있는 각 프로세서가 동시에 동작함으로써, 클럭 엣지의 중첩에 의한 LSI 내부 전원의 IR 드롭이나 피크 전류의 증가에 의해, 소비 전력의 증가나 오동작의 원인이 되는 문제를 일으키고 있었지만, 본 실시형태에서는, LSI 내부 전원 전압의 IR 드롭을 억제하는 것이 가능해져 내부 신호의 슬루가 커지는 것을 방지하고, DC 관통 전류의 억제에 의해 동작 전력의 삭감을 도모하는 것이 가능하게 된다. 또한, 클럭의 중첩을 피함으로써 피크 전류의 삭감이 가능하게 된다. 이 피크 전류의 삭감 효과에 의해 외부 부품(전원 IC)에 대한 허용 전류 능력을 과도하게 요구할 필요가 없어져, 전원 IC의 부품 코스트를 억제하는 것도 가능하게 된다.
한편, 본 실시형태에서는, 비대칭 멀티 프로세서(100)가, 하드웨어 리소스 조정부(110) 및 신호 처리 내용 선택부(111)와, 클럭 스큐 조정부(112) 및 클럭 지연 생성부(113a ~ 113g)를 구비하는 구성예에 대하여 설명하였으나, 어느 하나를 가지는 구성이어도 된다.
또한, 본 실시형태에서는, 클럭 스큐 조정부(112)가 클럭 지연 생성부(113a ~ 113g)에 클럭 스큐 선택 이네이블 신호(114)를 출력한 클럭 신호를 지연시키고 있지만, 각 그룹간 클럭의 위상 관계를 임의로 어긋나게 하는 제어를 행하는 것이면 어떠한 방법이라도 상관없다.
(실시형태 2)
실시형태 1은, CPU의 처리를 가속할 목적으로 각 CPU가 하드웨어 액셀러레이터를 슬레이브 접속하고 있고, 그 하드웨어 액셀러레이터를 각 CPU가 공유하는 구성이었다. 그리하여 CPU가 요구하는 하드웨어 리소스가 충돌하는 경우에는 어느 한쪽의 CPU 처리를 스톨할 필요가 있으며, 이 경우 처리 성능이 저하된다. 이와 같은 사태를 피하기 위하여, 동적 재구성가능한 프로세서인 동적 재구성형 신호 처리 프로세서부(107)에 대해서도 슬레이브 접속하고, 각 CPU가 공유하는 구성으로 되어 있었다. 실시형태 2에서는, CPU의 슬레이브에 DSP를 접속함으로써 자유도를 더욱 향상시킬 수 있는 아키텍처에 대하여 설명한다.
도 5는, 본 발명의 실시형태 2에 따른 비대칭 멀티 프로세서의 구성을 나타 내는 블록도이다. 본 실시형태의 설명에 있어서, 도 2와 동일한 구성 부분에는 동일한 부호를 부여하여 중복 개소의 설명을 생략한다.
도 5에 있어서, 비대칭 멀티 프로세서(300)는, 제1의 CPU 코어(101a)(CPU #1), 제2의 CPU 코어(101b)(CPU #2), 제1의 DSP 코어(301a)(DSP #1), 제2의 DSP 코어(301b)(DSP #2), 제1의 명령 캐시(102a)($1), 제1의 데이터 캐시(103a)($2), 제2의 명령 캐시(102b)($3), 제2의 데이터 캐시(103b)($4), 제1의 명령 RAM(302a)(RAM #1), 제1의 데이터 RAM(303a)(RAM #2), 제2의 명령 RAM(302b)(RAM #3), 제2의 데이터 RAM(303b)(RAM #4), ROM(104), RAM(105), 복수의 하드웨어 액셀러레이터부(106a ~ 106e)(HW #1 ~ #5), 동적 재구성가능한 프로세서인 동적 재구성형 신호 처리 프로세서부(107), 각 CPU 코어(101a, 101b)로부터 발행되는 임의의 DSP 사용 허가 요구 신호를 조정하는 하드웨어 리소스 조정부(310), 각 프로세서 코어(CPU 코어)로부터 동적 재구성가능한 프로세서의 사용 허가 요구 신호를 조정함과 함께, CPU가 요구한 신호 처리에 대응한 구성 정보를 동적 재구성가능한 프로세서에 발행하는 구성 신호 선택부(311), 1개의 프로세서 코어가 폭주하는 복수의 DSP 코어를 선택할 때의 조정을 행하는 폭주 DSP 코어 조정부(312), 각 그룹간 클럭의 위상 관계를 임의로 어긋나게 하는 제어를 행하는 클럭 스큐 조정부(112), 및 클럭 스큐 선택 이네이블 신호(114)를 기초로 하여 클럭 신호를 지연시키는 클럭 지연 생성부(113a ~ 113i)를 구비하여 구성된다.
하드웨어 리소스 조정부(310)는, 각 CPU로부터 발행되는 임의의 DSP 사용 허가 요구 신호를 조정한다. 이 요구 신호의 조정에 따라, 임의의 프로세서 코어(CPU 코어)가 임의의 DSP에 의한 신호 처리 프로그램을 실행할 수 있다. 또한, 하드웨어 리소스 조정부(310)는, 도 2의 하드웨어 리소스 조정부(110)와 마찬가지로, 각 CPU 코어(101a, 101b)로부터 임의의 하드웨어 액셀러레이터의 사용 허가를 요구하는 요구 신호의 조정을 행한다.
폭주 DSP 코어 조정부(312)는, 일방의 프로세서 코어(CPU 코어)가 폭주하는 복수의 DSP를 선택할 때, 상대적으로 프로그램의 개시 어드레스에 상당하는 신호를 일방의 DSP 코어에 대하여 발행하면, 타방의 DSP 코어도 동시에 병렬 처리를 행할 수 있도록 제어한다.
이하, 상술한 바와 같이 구성된 비대칭 멀티 프로세서(300)의 동작을 설명한다.
하드웨어 리소스 조정부(310) 및 클럭 스큐 조정부(112)의 기본 동작은 실시형태 1의 비대칭 멀티 프로세서(100)와 마찬가지이다. 본 실시형태는, 하드웨어 리소스 조정부(310)가, 또한 구성 신호 선택부(311), 및 폭주 DSP 코어 조정부(312)에 대하여 커맨드를 발행하고, 구성 신호 선택부(311), 및 폭주 DSP 코어 조정부(312)가 이하의 동작을 행하는 것을 특징으로 한다.
CPU로부터, DSP 처리를 요구하는 커맨드가 하드웨어 리소스 조정부(310)에 보내지면, 폭주 DSP 코어 조정부(312)는 어느 일방의 DSP 코어를 버스에 접속하고, DSP 프로그램 처리를 기동시킨다. 예를 들어, 제1의 DSP 코어(301a)(이하, DSP #1로 기재한다)로 인터리빙 처리를 시키고자 하는 경우에는, DSP #1을 기동시키는 커맨드를 제1의 CPU 코어(101a)(이하, CPU #1이라고 한다)가 하드웨어 리소스 조 정부(310)에 발행하고, 하드웨어 리소스 조정부(310)는 하드웨어 액셀러레이터가 아닌 DSP를 선택한 것을 식별하여, 폭주 DSP 코어 조정부(312)에 커맨드를 넘기고, DSP를 기동하여 원하는 신호 처리를 행한다. 이때, 발행되는 커맨드는 DSP #1의 제1의 명령 RAM(302a)(RAM #1) 중에 있는 인터리빙 프로그램 개시 어드레스에 상당하는 정보로 되어 있다. 따라서, DSP에 복수의 프로그램을 다운로드해 두면, 복수의 프로그램으로부터 선택하여 실행하는 것이 가능하다.
또한, DSP #1과 제2의 DSP 코어(301b)(이하, DSP #2로 기재한다)의 제1의 명령 RAM(302a)과 제2의 명령 RAM(302b)은 연속 어드레스 공간으로 되어 있으며, DSP #2의 명령 메모리 공간에 상당하는 정보를 커맨드로서 발행하면, DSP #2에 탑재되는 프로그램을 실행할 수 있다. 이 경우, CPU가 DSP 프로그램을 실행하는 커맨드를 상대 어드레스 정보로 함으로써, CPU와 DSP가 통신하는 신호선을 줄이는 것이 가능하여, 명령 메모리의 비트 폭을 반드시 필요로 하지는 않는다.
하드웨어 리소스 조정부(310)는, 상기 폭주 DSP 코어 조정부(312)에 대한 커맨드 넘김에 더하여 클럭 스큐 조정부(112)에도 어느 DSP를 선택했는지에 대한 정보를 넘긴다. 만약, CPU #1로부터의 요구 신호라면 CPU의 클럭에 대하여 스큐가 0ns가 되도록 제어하고, 만약 CPU #2로부터의 요구로 DSP를 기동하는 경우에는 클럭 스큐 조정부(112)가 CPU #1의 클럭에 대하여 CPU #2의 클럭과 선택된 DSP #1의 클럭이, 예를 들어, 반 사이클 분 스큐를 어긋나게 하는 제어 신호(클럭 스큐 선택 이네이블 신호(114))를 클럭 지연 생성부(113a, 113b)에 통신한다. 이에 의해, CPU #1과 CPU #2 또는 DSP #2는 클럭 엣지가 중첩되지 않기 때문에, 폭주하 고 있어도 LSI 내부의 전원 전압 드롭을 억제할 수 있어, 피크 전류의 삭감 효과가 있다. 또한, 동작 주파수가 높은 고성능 프로세서를 탑재하고 있는 경우, 프로세서의 동작 전력이 크기 때문에, 전원 IC의 전류 공급 능력도 극히 높은 것이 요구된다. 본 실시형태에 따른 피크 전류의 삭감 효과에 의해 외부 부품(전원 IC)에 대한 허용 전류 능력을 과도하게 요구할 필요가 없어져, 전원 IC의 부품 코스트를 억제하는 것도 가능해진다.
또한, CPU #1이 DSP #1 또는, DSP #2 중 어느 일방을 사용함과 동시에, 한편으로 CPU #2가 DSP #2 또는 DSP #1 중 어느 일방(CPU #1이 선택하고 있지 않은 쪽의 DSP)을 선택하여 동시 실행(폭주)시킬 수 있다.
또한, 연산 부하가 높으나 병렬성이 높은 신호 처리에 관해서는, CPU #1, 혹은 CPU #2의 어느 일방이, DSP #1과 DSP #2를 듀얼 DSP 코어로서 슬레이브 접속하고, DSP 프로그램을 분할하여 병렬 처리시켜, 보다 처리 능력(MIPS:Million Instructions Per Second)이 높은 신호 처리를 행하게 하는 것도 가능하다. 이때에 예를 들어, CPU #1은 DSP #1의 명령 메모리(제1의 명령 RAM(302a))에 다운로드되어 있는 프로그램 개시 어드레스에 상당하는 정보와, 듀얼 모드인 것을 나타내는 비트 정보를 커맨드 발행한다. 제1의 명령 RAM(302a)의 프로그램은 DSP #1과 DSP #2의 양쪽 모두에 명령을 발행(페치(fetch))함으로써, DSP #2의 명령 메모리(제2의 명령 RAM(302b))에 당해 프로그램을 중복하여 다운로드할 필요가 없다.
상술한 바와 같이, 본 실시형태의 비대칭 멀티 프로세서(300)는, 각 CPU 코어(101a, 101b)로부터 발행되는 임의의 DSP 사용 허가 요구 신호를 조정하는 하드 웨어 리소스 조정부(310)와, CPU가 요구한 신호 처리에 대응한 구성 정보를 동적 재구성형 신호 처리 프로세서부(107)에 발행하는 구성 신호 선택부(311)와, 상대적으로 프로그램의 개시 어드레스에 상당하는 신호를 일방의 DSP 코어에 대하여 발행하면, 타방의 DSP 코어도 동시에 병렬 처리를 행할 수 있도록 제어를 행하는 폭주 DSP 코어 조정부(312)를 구비하여 구성했기 때문에, 실시형태 1과 마찬가지의 효과를 얻을 수 있음에 더해, 버스(121, 122)에 접속된 복수의 DSP에 대하여, 임의의 프로세서 코어가 임의의 DSP에 의한 신호 처리 프로그램을 실행할 수 있어, 프로세서의 부하 분산 자유도를 향상시킬 수 있다. 또한, 일방의 프로세서 코어가 폭주하는 복수의 DSP를 선택할 때, 타방의 DSP 코어도 동시에 병렬 처리를 행할 수 있도록 제어할 수 있다.
또한, 본 실시형태에서는, 구성 신호 선택부(311)는, 임의의 CPU가 신호 처리를 고효율로 실행하기 위해 준비된 하드웨어 액셀러레이터의 리소스가 복수의 CPU로부터 동시에 요구 신호를 받은 경우, 혹은 1개의 CPU가 사용 중에 나중에 다른 CPU로부터의 요구 신호를 받은 경우, 하드웨어 리소스의 충돌을 피하는 방법으로서 동적 재구성가능한 프로세서인 동적 재구성형 신호 처리 프로세서부(107)를 버스(121, 122)를 통하여 접속가능하게 구성하고, 동적 재구성형 신호 처리 프로세서부(107)를 원하는 신호 처리가 가능한 형태로 재구성하여 사용한다. 이에 의해, 내부의 하드웨어 리소스를 삭감하여 회로 면적을 작게 하는 것이 가능해진다.
한편, 본 실시형태에서는, 비대칭 멀티 프로세서(300)가, 하드웨어 리소스 조정부(310) 및 폭주 DSP 코어 조정부(312)와, 클럭 스큐 조정부(112)와, 구성 신 호 선택부(311)를 구비하는 구성예에 대하여 설명하였지만, 구성 신호 선택부(311), 또는 폭주 DSP 코어 조정부(312) 중 어느 하나를 구비하는 것이어도 된다. 또한, 클럭 스큐 조정부(112)를 구비하지 않는 것이어도 된다.
(실시형태 3)
실시형태 2는, 하드웨어 리소스 조정부(310), 클럭 스큐 조정부(112), 구성 신호 선택부(311), 및 폭주 DSP 코어 조정부(312)를 구비하고, 이들 각 부분에 의해 하드웨어 액셀러레이터나 DSP, 동적 재구성가능한 프로세서를 공유하는 방법에 대하여 상세하게 설명하였다. 상기 각 부분은 단독으로 적용하는 것도 가능하다. 실시형태 3은, 제1의 CPU와 제2의 CPU와 하드웨어 액셀러레이터 이외에 DSP 코어를 1개 혹은 복수 탑재한 경우에 고효율로 신호 처리를 실행할 수 있는 기술 요소를 제공한다. 실시형태 3은, 실시형태 2의 비대칭 멀티 프로세서(300)에 대하여 단독으로, 혹은 조합하여 적용할 수 있다.
실시형태 3에 따른 비대칭 멀티 프로세서의 하드적인 구성은, 도 5와 마찬가지이므로 설명을 생략한다.
실시형태 3은, 각 CPU의 신호 처리 성능 향상을 위한 [신호 처리 기능]과 각 CPU, DSP, 동적 재구성가능한 프로세서 등의 저전력화를 도모하기 위한 [동작 주파수 또는 동작 전원 전압의 가변 제어 기능]으로 나뉜다.
[신호 처리 기능]
(1) 실시형태 3에 따른 비대칭 멀티 프로세서는 복수의 DSP를 탑재하는 경우, 1개의 CPU가 복수의 DSP를 슬레이브 접속하고, CPU로부터의 인터럽트 신호를 트리거로 하여 1개의 태스크를 복수의 DSP를 이용하여 신호 처리를 병렬 처리 실행할 수 있는 멀티 프로세싱 구성을 가진다. 도 5에 나타내는 바와 같이, 본 실시형태에 따른 비대칭 멀티 프로세서는, 제1의 DSP 코어(301a)(DSP #1)와 제2의 DSP 코어(301b)(DSP #2)를 가지고, 제1의 CPU 코어(101a)(CPU #1) 또는 제2의 CPU 코어(101b)(CPU #2)는 버스(121, 122)를 통하여 DSP #1, DSP #2를 슬레이브 접속한다. 하드웨어 리소스 조정부(310)는 1개의 CPU(예를 들어, CPU #1)로부터의 인터럽트 신호를 트리거로 하여 1개의 태스크를 복수의 DSP #1, DSP #2를 이용하여 병렬 신호 처리를 실행시킨다.
(2) 상기 (1)에 있어서, 특히 CPU로부터 DSP에 격납된 프로그램 중에서 각 신호 처리의 선두 어드레스에 상당하는 정보를 하드웨어 리소스 조정부(310)에 입력하면, 하드웨어 리소스 조정부(310)는 해당하는 DSP 프로그램이 기동하도록 제어를 행함과 함께, 멀티 DSP 처리를 행하게 하는 것을 나타내는 제어 신호 또는 제어 비트의 ON을 받아, 제1의 DSP의 명령 메모리로부터 페치한 커맨드를 제1의 DSP 코어나 제2의 DSP 코어 등, 복수의 DSP 코어로 보냄으로써 병렬 신호 처리를 행한다.
(3) 실시형태 3에 따른 비대칭 멀티 프로세서는, 복수의 DSP 코어를 가지고, 각 DSP 코어는 다른 DSP 코어의 명령 메모리로부터도 명령어 페치할 수 있는 기구를 가진다. 하드웨어 리소스 조정부(310)는, 일방의 프로세서 코어(CPU 코어)가 복수의 DSP 코어를 선택하여 병렬 동작시키는 경우에, 해당 CPU가 제1의 DSP에 있어서의 명령 메모리의 개시 어드레스를 지정하면, 그 어드레스의 명령을 복수의 DSP 코어에 동시에 페치시키고, 각 DSP가 멀티 프로세싱 처리를 행하도록 제어한다.
(4) 실시형태 3에 따른 비대칭 멀티 프로세서는, 동일한 명령 RAM으로부터의 페치로 복수의 DSP 코어를 실행하는 기능을 가진다. DSP의 병렬 처리 모드 시에는 제2 이후의 DSP 코어의 어드레싱이 제1의 DSP에 대하여 상대 보정을 행하는 것이 바람직하다.
[동작 주파수 또는 동작 전원 전압의 가변 제어 기능]
(5) 실시형태 3에 따른 비대칭 멀티 프로세서는, 제1의 프로세서 코어(CPU 코어)와, 제2의 프로세서 코어(CPU 코어), 혹은 나아가 제3 이후의 프로세서가 동시에 신호 처리를 행하는 경우, 제1의 프로세서 코어와 여기에 슬레이브 접속되는 하드웨어 액셀러레이터나 DSP나 재구성가능한 프로세서에 공급되는 클럭 신호의 위상에 대하여, 제2의 CPU 코어와 여기에 슬레이브 접속되는 하드웨어 액셀러레이터나 DSP나 재구성가능한 프로세서에 공급되는 클럭 신호의 위상, 혹은 제3 이후의 CPU와 여기에 슬레이브 접속되는 신호 처리 회로 리소스에 공급되는 클럭 신호의 위상에 임의의 위상 차이를 부여한다. 예를 들어, 제1의 CPU 코어(101a)(CPU #1)와 제2의 CPU 코어(101b)(CPU #2)가 동시에 신호 처리를 행하는 경우, CPU #1과 여기에 슬레이브 접속되는 하드웨어 액셀러레이터나 DSP나 동적 재구성형 신호 처리 프로세서부(107)에 공급되는 클럭 신호의 위상과, CPU #2와 여기에 슬레이브 접속되는 하드웨어 액셀러레이터나 DSP나 동적 재구성형 신호 처리 프로세서부(107)에 공급되는 클럭 신호의 위상에 임의의 위상 차이를 부여한다. 이에 의해, CPU #1과 CPU #2가 동시에 신호 처리를 행하는 경우, 각 CPU와 여기에 슬레이브 접속되는 하드웨어 액셀러레이터나 DSP나 동적 재구성형 신호 처리 프로세서 부(107)에 공급되는 클럭 신호의 위상이 상호 어긋남으로써, 피크 전류의 저감을 억제할 수 있다.
(6) 실시형태 3에 따른 비대칭 멀티 프로세서는, 신호 처리량을 분할하여 복수의 CPU나 DSP, 하드웨어 액셀러레이터가 멀티 프로세싱을 행하고, 이때의 전원 전압이나 클럭 주파수, 기판의 바이어스 전압을 단일 프로세서로 신호 처리하는 경우보다, 낮은 전원 전압, 낮은 클럭 주파수, 또는 문턱 값이 의사(擬似)적으로 높아지는 기판 전위로 변경하여 멀티 프로세싱을 행하는 전력 관리 모드를 가지는 것이 바람직하다. 이 전력 관리 모드에 의해 단일 프로세서로 신호 처리하는 경우보다 낮은 전력 소비가 되어 저소비 전력화를 도모할 수 있다.
(7) 실시형태 3에 따른 비대칭 멀티 프로세서는, 신호 처리량에 따라 클럭 주파수나 전원 전압을 변경할 수 있는 기능을 구비하는 것도 가능하다. 이 신호 처리량은, 신호 처리를 행하지 않은 경우의 클럭 주파수나 전원 전압의 변경도 포함한다. 예를 들어, 제1의 CPU 코어와 여기에 슬레이브 접속되는 하드웨어 액셀러레이터나 DSP나 재구성가능한 프로세서로 신호 처리를 행하는 기간에, 제2의 CPU 코어와 여기에 슬레이브 접속되는 하드웨어 액셀러레이터나 DSP나 재구성가능한 프로세서에 의해 신호 처리를 행할 필요가 없는 경우, 신호 처리를 행하지 않은 후자에 대하여 전원 전압을 차단하거나, 혹은 전원 전압을 메모리나 레지스터가 데이터를 기억·보유할 수 있는 최소 전압까지 내리는 기능(리텐션(retention) 기능)을 실행한다.
상술한 바와 같이, 본 실시형태에 따르면, 제1의 CPU와 제2의 CPU와 하드웨 어 액셀러레이터 이외에 DSP 코어를 1개 혹은 복수 탑재한 경우에, CPU는 필요로 하는 신호 처리를 DSP 소프트웨어로 처리함으로써, 고효율로 신호 처리를 실행할 수 있다. CPU는 상기 하드웨어 액셀러레이터를 기동할 때, 선택하는 레지스터 맵과 동일 공간에 DSP의 명령 메모리를 상대적으로 표현한 어드레스를 더하고, CPU가 요구 신호를 냄으로써 해당하는 DSP의 프로그램이 실행가능하게 한다. 이때, 2개 이상의 CPU 중 어느 한 CPU가 2개 이상 탑재된 DSP 중 임의의 DSP를 선택 가능하고, 또한 복수의 DSP를 멀티 코어로서 병렬 처리시키는 기능을 가지며, DSP의 동작 주파수나 DSP의 동작 전압을 가변하는 기능과 병용함으로써 높은 처리 성능을 저전력으로 제공가능하게 하고 있다. 여기서, DSP #1의 명령 메모리와 DSP #2의 명령 메모리는 각각의 프로그램을 격납하고 있는데, 예를 들어, 멀티 코어 프로세싱 DSP로서 동작하는 경우에는, 어느 일방의 명령 메모리에 프로그램을 격납해 두면, 양쪽 모두의 DSP 코어에 대하여 명령을 페치(명령을 발행)하고, 동시에 2개 이상의 DSP를 동작하는 구성을 가지는 점과, 어드레스 계산(어드레싱)에 부정합이 발생하지 않도록 상대적으로 일방의 DSP용 프로그램에서 타방의 DSP 프로그램으로 번역하는 기구를 가진다.
이에 의해, 비대칭인 멀티 CPU 코어 프로세서의 어느 일방의 슬레이브에 1개 또는 복수의 DSP 코어를 접속하여 신호 처리를 행하여 신호 처리 성능 향상을 도모하는 경우에, 임의의 CPU가 임의의 DSP를 기동가능하게 함으로써 최적의 부하 분산을 가능하게 하고, 또한 중복되어 병렬성이 높은 신호 처리의 경우에는 1개의 CPU 코어가 복수의 DSP 코어를 병렬 처리시킬 수 있다. 이 경우, DSP의 동작 주파수나 동작 전압을 가변하는 기능과 병용함으로써 더욱더 저전력화를 도모할 수 있다.
또한, 본 발명의 멀티 DSP 코어 프로세싱을 행할 경우, 명령 메모리는 어느 1개의 DSP용 명령 RAM으로부터 명령이 발행되기 때문에, 명령 RAM 공간을 효율적으로 이용할 수 있는 한편, 명령 메모리의 하드웨어 리소스를 보다 적게 하는 것이 가능하기 때문에 면적 삭감의 효과도 있다.
(실시형태 4)
실시형태 1 내지 3에서는, 하드웨어 액셀러레이터나 DSP, 동적 재구성가능한 프로세서의 공유 방법과, 이에 수반하여 비대칭 멀티 프로세서의 구성 변형마다 각 CPU, DSP, 동적 재구성가능한 프로세서 등의 동작 주파수나 동작 전원 전압을 가변하여 저전력화를 도모하는 방법에 대하여 설명하였다. 또한, 각 변형의 멀티 프로세서간에 있어서의 클럭의 위상 조정 방법과 여기에 따른 피크 전류의 삭감이나 IR 드롭의 저감에 대하여 설명하였다. 실시형태 4는, 상기 실시형태 1 내지 3과 마찬가지의 구성을 가지면서, 2개의 메모리 사용 모드를 더 가지는 적용예이다.
도 6은, 본 발명의 실시형태 4에 따른 비대칭 멀티 프로세서의 구성을 나타내는 블록도이다. 본 실시형태의 설명에 있어서, 도 2와 동일한 구성 부분에는 동일 부호를 부여하여 중복 개소의 설명을 생략한다.
도 6에 있어서, 비대칭 멀티 프로세서(400)는, 제1의 CPU 코어(101a)(CPU #1), 제2의 CPU 코어(101b)(CPU #2), 제1의 명령 캐시(102a)($1), 제1의 데이터 캐시(103a)($2), 제2의 명령 캐시(102b)($3), 제2의 데이터 캐시(103b)($4), 복수의 CPU가 멀티 프로세서로서 동작할 때에, 공통성이 높은 명령이나 데이터를 격 납하는 공유 메모리(Shared Memory)(401)($5), ROM(104), RAM(105), 복수의 하드웨어 액셀러레이터부(106a ~ 106e)(HW #1 ~ #5), 동적 재구성가능한 프로세서인 동적 재구성형 신호 처리 프로세서부(107), 각 CPU 코어(101a, 101b)로부터 임의의 하드웨어 액셀러레이터의 사용 허가를 요구하는 요구 신호의 조정을 행하는 하드웨어 리소스 조정부(110), 슬레이브 접속하는 동적 재구성형 신호 처리 프로세서부(107)의 신호 처리 내용을 선택하는 신호 처리 내용 선택부(111), 각 그룹간의 클럭의 위상 관계를 임의로 어긋나게 하는 제어를 행하는 클럭 스큐 조정부(112), 및 클럭 스큐 선택 이네이블 신호(114)를 기초로 하여 클럭 신호를 지연시키는 클럭 지연 생성부(113a ~ 113g)를 구비하여 구성된다.
공유 메모리(401)는, 복수의 프로세서가 동시에 액세스 가능하고, 복수의 프로세서 간에서 데이터 공유를 행하는 공유 메모리이다.
제1의 CPU 코어(101a)(CPU #1)는, 제1의 명령 캐시(102a)($1), 제1의 데이터 캐시(103a)($2), 및 버스(120)를 통하여 ROM(104) 및 RAM(105)에 상호 접속되고, 제2의 CPU 코어(101b)(CPU #2)는, 제2의 명령 캐시(102b)($3), 제2의 데이터 캐시(103b)($4), 및 버스(120)를 통하여 ROM(104) 및 RAM(105)에 상호 접속되어 있다.
또한, 제1의 CPU 코어(101a)(CPU #1) 및 제2의 CPU 코어(101b)(CPU #2)는 버스(410)를 통하여 공유 메모리(401)($5)에 접속되고, 공유 메모리(401)($5)는 버스(120)를 통하여 ROM(104) 및 RAM(105)에 접속되어 있다.
또한, 제1의 CPU 코어(101a)(CPU #1)는 버스(121)를 통하여 하드웨어 액셀 러레이터부(106a ~ 106e)(HW #1 ~ #5), 및 동적 재구성형 신호 처리 프로세서부(107)에 접속되고, 제2의 CPU 코어(101b)(CPU #2)는 버스(122)를 통하여 하드웨어 액셀러레이터부(106a ~ 106e)(HW #1 ~ #5), 및 동적 재구성형 신호 처리 프로세서부(107)에 각각 접속된다.
이하, 상술한 바와 같이 구성된 비대칭 멀티 프로세서(400)의 동작을 설명한다.
일반적으로, 비대칭 멀티 프로세서에서는 탑재된 복수의 CPU 모두가 동일하게 동작하는 경우도 있지만, 대칭 멀티 프로세서에 비하면 일방의 CPU 처리가 일시적으로 대기 상태이거나 하는 등, 항상 같은 처리 부하로 병렬 동작하고 있는 것은 아니며, 오히려 동작 빈도나 동작 속도도 비대칭인 부분이 많다.
여기서, 비대칭 멀티 프로세서(400)는, 복수의 CPU가 멀티 프로세서로서 동작할 때에, 공통성이 높은 명령이나 데이터를 격납하는 공유 메모리(401)를 가지고, CPU마다 독자성이 높은 명령이나 데이터는 각 CPU의 캐시에 격납하는 구성을 실현한다. 비대칭 멀티 프로세서(400)는, 공유 메모리(401)를 CPU의 캐시 메모리와 교대로 액세스가능하게 하고, 캐시의 미스 히트 시에는 캐시의 리필을 행하는 동안에, CPU는 공유 메모리(401)에 대한 액세스로 절환하여 CPU 코어의 대기 동작이 극력 발생하지 않도록 한다. 또한, 공유 메모리(401)의 액세스에서 미스 히트가 발생한 경우에는, 다시 캐시에 대한 메모리 액세스로 절환하고, 그 뒤에서 공유 메모리(401)에 리필을 행한다. 이와 같이, 교대 액세스를 행함으로써 리필 동작 중의 아이들링 시간을 삭감하는 동작 모드와, 멀티 코어 간에서 공통성이 높은 프로그램 을 공유하는 공유 메모리 모드의 2개를 나누어 사용한다.
공유 메모리(401)는, 다음의 2개의 메모리 사용 모드 [공유 메모리 모드], [교번 메모리 모드]로 사용된다.
제1의 메모리 모드([공유 메모리 모드])는, 제1의 CPU 코어(101a)(이하, CPU #1로 기재한다)와 제2의 CPU 코어(101b)(이하, CPU #2로 기재한다)가 멀티 프로세서로서 동작할 때에, 각 CPU가 통상 명령을 페치하는 명령 캐시(명령 캐시(102a, 102b))나 통상 시에 워크 영역이 되는 데이터 캐시(데이터 캐시(103a, 103b)) 이외에 공유하는 데이터나 명령을 격납하는 공유 메모리(401)를 가지고, 멀티 프로세서 모드이고 또한 [공유 메모리 모드]로 하면, 공통성이 높은 프로그램은 공유 메모리(401)에 격납함으로써 메모리 공간의 효율성을 높여 메모리의 실장 면적 삭감을 도모할 수 있다.
한편, 제2의 메모리 모드([교번 메모리 모드])는, 예를 들어, 복수의 CPU 중 어느 1개의 CPU가 공유 메모리(401)를 이용가능하게 한다. 예를 들어, CPU #1은 명령 메모리로서, 제1의 명령 캐시(102a)와 공유 메모리(401)를 이용가능하게 한다. 이 명령 모드 시에 있어서, CPU #1은 명령 캐시(제1의 명령 캐시(102a))로부터 명령을 페치하지만, 캐시의 미스 히트가 발생하면 명령 캐시(제1의 명령 캐시(102a))는 ROM(104)으로부터 리필을 행한다. 그동안 종래의 멀티 프로세서라면, CPU #1 코어가 대기 상태가 되는 데 대하여, 본 실시형태의 제2의 메모리 모드([교번 메모리 모드])에 있어서는, 미스 히트 발생 시에 명령 메모리(제1의 명령 캐시(102a))의 리필 동작을 행하면서, CPU #1(제1의 명령 캐시(102a))은 공유 메 모리(401)로부터 명령 페치를 행하도록 절환한다. 그 후 만약 공유 메모리(401)로부터의 페치에서 미스 히트가 발생하면, 향후에는 공유 메모리(401)에 대하여 리필 동작을 행하는 한편, CPU #1은 명령 캐시(제1의 명령 캐시(102a))로부터 다시 페치를 행하도록 절환한다.
만약, 명령 캐시(제1의 명령 캐시(102a))에 미스 히트가 발생한 경우, 리필 동작을 행하는 동안에 공유 메모리(401)로 절환하여 페치를 행하지만, 명령 캐시(제1의 명령 캐시(102a))가 리필 도중이고 아직 완료되지 않은 동안에 공유 메모리(401) 측에 미스 히트가 발생한 경우에는, 바로 CPU #1은 대기 상태에 들어간다. 만약 명령 캐시 측의 리필 동작이 미리 결정된 값 이상으로 끝나 있으면, 예를 들어, 50% 이상의 캐시 공간에 대하여 새로운 명령의 교체(리필)가 끝나 있으면, 공유 메모리(401)로부터 명령 캐시(제1의 명령 캐시(102a))로 절환하고, 이어서 CPU #1은 페치 동작으로 들어가며, 공유 메모리(401)의 리필을 뒤에서 행하도록 제어를 한다.
종래의 멀티 프로세서에서는, 캐시 미스 히트 시에는 CPU가 대기하고 있던 것에 대하여, 본 실시형태에서는 공유 메모리(401)를 활용함으로써, 공유 메모리(401)와 명령 캐시로부터 교대로 페치하는 모드를 마련함으로써 CPU의 처리 성능을 향상시킬 수 있다. 한편으로 멀티 코어 프로세서로서 코어 간에 공통성이 높은 프로그램(예를 들어, 기본 소프트웨어 또는 OS의 일부 등)을 이 공유 메모리(401)에 격납함으로써 멀티 프로세서로서 회로 면적 삭감을 도모할 수 있다. 또한, 이 2개의 특성을 나누어 쓸 수 있는 제어 모드를 준비함으로써 회로 면적, CPU 처리 성 능, 소비 전력 삭감을 도모할 수 있다.
이상, 명령 메모리를 예로 들어 설명하였지만, 데이터 메모리 측도 마찬가지이다. 또한, 제2의 메모리 모드([교번 모드])에 있어서, 1개의 CPU만이 공유 메모리를 사용하는 경우에 대해 설명하였지만, 공유 메모리의 메모리 공간을 분할하여 복수의 CPU 코어가 제2의 메모리 모드([교번 모드])를 행하는 구성도 실현가능하다.
상술한 바와 같이, 본 실시형태에 따르면, 비대칭 멀티 프로세서(400)는, 복수의 CPU가 멀티 프로세서로서 동작할 때에, 공통성이 높은 명령이나 데이터를 격납하는 공유 메모리(401)를 구비하고, CPU마다 독자성이 높은 명령이나 데이터는 각 CPU의 캐시(102a($1), 103a($2), 102b($3), 103b($4))에 격납한다. 비대칭 멀티 프로세서(400)는, 탑재된 복수의 CPU 전부가 동일하게 동작하는 경우도 있지만, 대칭 멀티 프로세서에 비하면 일방의 CPU 처리가 일시적으로 대기 상태이거나 하는 등, 항상 같은 처리 부하로 병렬 동작하고 있는 것은 아니며, 오히려 동작 빈도나 동작 속도도 비대칭인 부분이 많다. 여기서 공유 메모리(401)를 CPU의 캐시 메모리와 교대로 액세스하는 구성을 가지고, 캐시의 미스 히트 시에는 캐시의 리필을 행하는 동안에, CPU는 공유 메모리(401)에 대한 액세스로 절환하여 CPU 코어의 대기 동작이 극력 발생하지 않게 한다. 또한, 공유 메모리(401)의 액세스에서 미스 히트가 발생한 경우에는, 다시 캐시에 대한 메모리 액세스로 절환하고, 그 뒤에서 공유 메모리(401)에 리필을 행한다. 이와 같이, 교대 액세스를 행함으로써, 리필 동작 중의 아이들링 시간을 삭감하는 동작 모드와, 멀티 코어 간에서 공통성이 높 은 프로그램을 공유하는 공유 메모리 모드의 2개를 나누어 사용할 수 있는 구성을 가진다. 이에 의해, 멀티 코어 프로세싱에 있어서 공통성이 높은 기본 소프트웨어(OS) 등의 프로그램을 격납하는 공유 메모리 영역을 준비함으로써 면적을 삭감하는 효과가 있다.
또한, 본 실시형태에서는, 공유 메모리 영역을 CPU의 1차 캐시의 일부로서 절환하여 사용하는 모드를 가진다. 이에 의해, CPU의 캐시의 미스 히트 시에 리필 동작이 발생하더라도 CPU의 아이들링 시간이 발생하지 않는다. 따라서, CPU의 처리 성능이 향상되는 효과가 있다.
이상의 설명은 본 발명의 바람직한 실시형태의 예이며, 본 발명의 범위는 이것으로 한정되지 없다.
또한, 본 실시형태에서는 비대칭 멀티 프로세서라는 명칭을 사용했지만, 이는 설명의 편의상이며, 멀티 프로세서 시스템 등이어도 됨은 물론이다.
또한, 상기 비대칭 멀티 프로세서를 구성하는 프로세서 코어, DSP 코어, 하드웨어 액셀러레이터, 동적 재구성가능한 프로세서의 종류, 그 수 및 접속 방법 등, 나아가서는 하드웨어 리소스 조정부, 클럭 스큐 조정부, 각 선택부의 구성예 등은 전술한 실시형태로 한정되지 않는다.
본 명세서는 2006년 6월 6일 출원한 일본 특허 출원 제2005-157826호에 근거한 것이다. 이 내용은 모두 여기에 포함시켜 둔다.
이상과 같이, 본 발명에 따르면, 비대칭 프로세서 각각의 CPU가 자유롭게 적 절한 하드웨어 액셀러레이터를 선택하여 슬레이브 접속하는 것이 가능하게 됨으로써, 분산 처리의 자유도가 높아져 각 프로세서(CPU)의 처리 부하를 최소로 하는 것이 가능해진다. 이에 의해 동작 주파수의 저감이나 전원 전압의 강압을 보다 효과적으로 행할 수 있어, 소비 전력의 보다 큰 삭감을 도모할 수 있다.
또한, 비대칭인 멀티 CPU 코어 프로세서 중 어느 일방의 슬레이브에 1개 또는 복수의 DSP 코어를 접속하여 신호 처리를 행하고, 신호 처리 성능 향상을 도모하는 경우에, 임의의 CPU가 임의의 DSP를 기동가능하게 함으로써 최적의 부하 분산을 가능하게 하고, 또한 중복되어 병렬성이 높은 신호 처리의 경우에는 1개의 CPU 코어가 복수의 DSP 코어를 병렬 처리시킬 수 있고, DSP의 동작 주파수나 동작 전압을 가변하는 기능과 병용함으로써 저전력화를 더욱더 도모할 수 있다.
또한, 본 멀티 DSP 코어 프로세싱을 행할 경우, 명령 메모리는 어느 1개의 DSP용 명령 RAM으로부터 명령이 발행되기 때문에, 명령 RAM 공간을 효율적으로 이용할 수 있는 한편, 명령 메모리의 하드웨어 리소스를 보다 적게 하는 것이 가능하기 때문에 면적 삭감의 효과도 있다.
또한, LSI 내부 전원 전압의 IR 드롭을 억제하는 것이 가능해져 내부 신호의 슬루가 커지는 것을 방지하고, DC 관통 전류의 억제에 의해 동작 전력의 삭감을 도모할 수 있다. 또한, 클럭의 중첩을 피함으로써 피크 전류의 삭감을 가능하게 한다. 이 피크 전류의 삭감 효과에 의해 외부 부품(전원 IC)에 대한 허용 전류 능력을 과도하게 요구할 필요가 없어져, 전원 IC의 부품 코스트를 억제할 수 있다.
또한, 내부의 하드웨어 리소스를 삭감하여 회로 면적을 작게 할 수 있다.
또한, 멀티 코어 프로세싱에 있어서 공통성이 높은 기본 소프트웨어(OS) 등의 프로그램을 격납하는 공유 메모리 영역을 준비함으로써 면적을 삭감하는 효과가 있다. 또한, 공유 메모리 영역을 CPU의 1차 캐시의 일부로서 절환하여 사용함으로써, CPU의 캐시의 미스 히트 시에 리필 동작이 발생하더라도 CPU의 아이들링 시간이 발생하지 않아 CPU의 처리 성능이 향상되는 효과가 있다.
따라서, 본 발명에 따른 비대칭 멀티 프로세서는, 각 CPU 간에서 하드웨어 액셀러레이터를 공유하는 구성과, 각 CPU의 클럭 위상을 조정하는 구성과, 프로세서의 작업량을 태스크별로 분할하여 배분함으로써 분산 처리하는 기구를 가지고, 미디어 프로세서나 베이스밴드 처리 프로세서를 통합한 시스템 LSI의 저전력화나 소면적화에 유용하다. 또한, 본 발명의 비대칭 멀티 프로세서를 이용하여 구성한 시스템 LSI는 특히, “디지털 TV”나 “디지털 라디오”, “오디오 재생”, “인터넷 통신”, “TV 전화”, “무선 LAN”, “고성능 그래픽 처리를 필요로 하는 게임” 등을 1대의 전자기기로 행할 수 있는 휴대 전화기나 휴대형 게임기, 휴대형 전자 수첩, 휴대형 비디오 카메라 등에 응용할 수 있다.

Claims (16)

  1. 복수의 프로세서 코어와 복수의 하드웨어 액셀러레이터가 버스를 통하여 접속된 비대칭 멀티 프로세서로서,
    상기 각 프로세서 코어로부터 임의의 하드웨어 액셀러레이터의 사용 허가를 요구하는 요구 신호의 조정을 행하는 하드웨어 리소스 조정부를 구비하고,
    상기 하드웨어 리소스 조정부에 의해 요구 신호의 조정을 받은 상기 프로세서 코어가 임의의 하드웨어 액셀러레이터를 사용하는 비대칭 멀티 프로세서.
  2. 제1항에 있어서,
    제1의 프로세서 코어와 제1의 프로세서 코어로부터 신호 처리의 실행을 요구하는 하드웨어 액셀러레이터로 이루어지는 제1 신호 처리 그룹과, 제2의 프로세서 코어와 제2의 프로세서 코어로부터 신호 처리의 실행을 요구하는 하드웨어 액셀러레이터로 구성되는 제2 신호 처리 그룹과, 제3 이후의 프로세서 코어와 제3 이후의 프로세서 코어로부터 신호 처리의 실행을 요구하는 하드웨어 액셀러레이터로 구성되는 제3 신호 처리 이후의 그룹 사이에서 클럭의 위상 관계를 임의로 어긋나게 하는 제어를 행하는 클럭 스큐(clock skew) 조정부를 구비하는 비대칭 멀티 프로세서.
  3. 제2항에 있어서,
    상기 각 그룹의 클럭 입력부에 공급되는 클럭 신호를 지연시켜 각 그룹 간의 클럭 위상을 임의로 어긋나게 하는 클럭 지연 생성부를 더 구비하는 비대칭 멀티 프로세서.
  4. 제1항에 있어서,
    상기 복수의 프로세서 코어가 상기 버스를 통하여 복수의 DSP 코어에 접속되어 있고,
    상기 하드웨어 리소스 조정부는 상기 각 프로세서 코어로부터 발행되는 임의의 DSP 사용 허가 요구 신호를 조정하고,
    상기 하드웨어 리소스 조정부에 의해 DSP 사용 허가 요구 신호의 조정을 받은 프로세서 코어가 임의의 DSP 코어에 의한 신호 처리 프로그램을 실행하는 비대칭 멀티 프로세서.
  5. 제1항에 있어서,
    상기 1개의 프로세서 코어가 복수의 DSP 코어를 슬레이브 접속하고 있고, 해당하는 상기 복수의 DSP 코어가 상기 프로세서 코어로부터의 인터럽트 신호를 트리거로 하여 1개의 태스크를 병렬 신호 처리하는 비대칭 멀티 프로세서.
  6. 제1항에 있어서,
    상기 하드웨어 리소스 조정부는 상기 프로세서 코어로부터 DSP 코어에 격납 된 프로그램 중에서 각 신호 처리의 선두 어드레스에 상당하는 정보가 입력되면, 해당하는 DSP 프로그램이 기동하도록 제어를 행하는 비대칭 멀티 프로세서.
  7. 제1항에 있어서,
    복수의 DSP 코어를 가지고,
    상기 하드웨어 리소스 조정부는 멀티 DSP 처리를 행하게 하는 것을 나타내는 제어 신호 또는 제어 비트의 ON을 받아 제1의 DSP 코어의 명령 메모리로부터 페치(fetch)한 커맨드를 제1의 DSP 코어 또는 제2의 DSP 코어를 포함하는 복수의 DSP 코어에 보내고, 상기 커맨드가 보내진 상기 복수의 DSP 코어가 병렬 신호 처리를 실행하는 비대칭 멀티 프로세서.
  8. 제1항에 있어서,
    복수의 DSP 코어를 가지고, 각 DSP 코어는 다른 DSP 코어의 명령 메모리로부터도 명령 페치가 가능하며,
    상기 하드웨어 리소스 조정부는 1개의 프로세서 코어가 복수의 DSP 코어를 선택하여 병렬 동작시키는 경우에, 해당하는 프로세서 코어가 제1의 DSP 코어에 있어서의 명령 메모리의 개시 어드레스를 지정하면, 그 어드레스의 명령을 복수의 DSP 코어에 동시에 페치시키고, 각 DSP 코어가 멀티 프로세싱 처리를 행하도록 제어하는 비대칭 멀티 프로세서.
  9. 제1항에 있어서,
    상기 하드웨어 리소스 조정부는 동일한 명령 RAM으로부터의 페치로 복수의 DSP 코어에 의한 신호 처리를 실행시킬 때, DSP의 병렬 처리 모드 시에는 제2 이후의 DSP 코어의 어드레싱이 제1의 DSP 코어에 대하여 상대 보정을 행하는 비대칭 멀티 프로세서.
  10. 제1항에 있어서,
    1개의 프로세서 코어가 폭주하는 복수의 DSP 코어를 선택할 때, 상대적으로 프로그램의 개시 어드레스에 상당하는 신호를 일방의 DSP 코어에 대하여 발행하면, 타방의 DSP 코어도 동시에 병렬 처리를 행하도록 제어하는 폭주 DSP 코어 조정부를 더 구비하는 비대칭 멀티 프로세서.
  11. 제1항에 있어서,
    제1의 프로세서 코어, 제2의 프로세서 코어, 또는 그 밖의 프로세서 코어가 상기 버스를 통하여 동적 재구성가능한 프로세서에 접속되어 있고,
    상기 각 프로세서 코어로부터 상기 동적 재구성가능한 프로세서의 사용 허가 요구 신호를 조정함과 함께, 해당 프로세서 코어가 요구한 신호 처리에 대응한 구성 정보를 상기 동적 재구성가능한 프로세서로 발행하는 구성 신호 선택부를 더 구비하고,
    상기 구성 신호 선택부에 의해 발행된 구성 정보를 받은 상기 동적 재구성가 능한 프로세서가, 상기 프로세서 코어가 요구한 신호 처리를 실행하는 비대칭 멀티 프로세서.
  12. 제1항에 있어서,
    제1의 프로세서 코어와, 제2의 프로세서 코어, 또는 제3 이후의 프로세서 코어가 동시에 신호 처리를 행하는 경우, 상기 제 1의 프로세서 코어와 여기에 슬레이브 접속되는 하드웨어 액셀러레이터, DSP 코어 또는 재구성가능한 프로세서에 공급되는 클럭 신호의 위상에 대하여 상기 제2의 프로세서 코어와 여기에 슬레이브 접속되는 하드웨어 액셀러레이터, DSP 코어 또는 재구성가능한 프로세서에 공급되는 클럭 신호의 위상, 혹은 제3 이후의 프로세서 코어와 여기에 슬레이브 접속되는 신호 처리 회로 리소스에 공급되는 클럭 신호의 위상에 소정의 위상 차이를 부여하는 비대칭 멀티 프로세서.
  13. 제1항에 있어서,
    신호 처리량을 분할하여 복수의 프로세서 코어, DSP 코어, 또는 하드웨어 액셀러레이터가 멀티 프로세싱을 행하는 경우, 단일 프로세서로 신호 처리하는 경우보다 전원 전압, 클럭 주파수, 또는 기판의 바이어스 전압 중 적어도 어느 하나를 내리는 전력 관리 모드를 설정하는 비대칭 멀티 프로세서.
  14. 제1항에 있어서,
    제1의 프로세서 코어와 여기에 슬레이브 접속되는 하드웨어 액셀러레이터, DSP 코어 또는 재구성가능한 프로세서로 신호 처리를 행하는 기간에, 제2의 프로세서 코어와 여기에 슬레이브 접속되는 하드웨어 액셀러레이터, DSP 코어 또는 재구성가능한 프로세서에 의해 신호 처리를 행할 필요가 없는 경우, 상기 제2의 프로세서 코어와 여기에 슬레이브 접속되는 하드웨어 액셀러레이터, DSP 코어 또는 재구성가능한 프로세서에 대하여 전원 전압을 차단하거나, 혹은 전원 전압을 메모리나 레지스터가 데이터를 기억 보유할 수 있는 최소 전압까지 내리는 리텐션(retention) 기능을 실행하는 비대칭 멀티 프로세서.
  15. 제1항에 있어서,
    복수의 프로세서 코어가 멀티 프로세서로서 동작할 때에, 공통성이 높은 명령이나 데이터를 격납하는 공유 메모리(Shared Memory)를 구비하고, 프로세서 코어마다 독자성이 높은 명령이나 데이터는 각 프로세서 코어의 캐시 메모리에 격납하고,
    상기 복수의 프로세서 코어는 상기 공유 메모리와 상기 캐시 메모리를 교대로 액세스하는 비대칭 멀티 프로세서.
  16. 제1항에 있어서,
    상기 복수의 프로세서 코어는,
    동작 주파수 등의 프로세서 성능과, 명령 세트와, 비트 폭, 메모리 사이즈, 캐시 사이즈 및 파이프 라인단 수를 포함하는 아키텍처(architecture) 중 어느 하나, 혹은 전부가 서로 다른 복수의 CPU인 것을 특징으로 하는 비대칭 멀티 프로세서.
KR1020070054981A 2006-06-06 2007-06-05 비대칭 멀티 프로세서 KR20070116740A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006157826A JP2007328461A (ja) 2006-06-06 2006-06-06 非対称マルチプロセッサ
JPJP-P-2006-00157826 2006-06-06

Publications (1)

Publication Number Publication Date
KR20070116740A true KR20070116740A (ko) 2007-12-11

Family

ID=38472972

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070054981A KR20070116740A (ko) 2006-06-06 2007-06-05 비대칭 멀티 프로세서

Country Status (5)

Country Link
US (1) US7814252B2 (ko)
EP (1) EP1865417A3 (ko)
JP (1) JP2007328461A (ko)
KR (1) KR20070116740A (ko)
CN (1) CN101086722B (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100837278B1 (ko) * 2007-02-27 2008-06-11 삼성전자주식회사 클럭 스큐 컨트롤러 및 그것을 포함하는 집적 회로
KR100888675B1 (ko) * 2007-02-15 2009-03-13 고려대학교 산학협력단 임베디드 코어에서 멀티 쓰레드 실행을 위해 확장된프로세서 및 임베디드 코어에서 멀티 쓰레드 실행 방법
KR101276340B1 (ko) * 2009-09-22 2013-06-18 한국전자통신연구원 병렬 처리 시스템 및 그 방법
KR101365940B1 (ko) * 2009-10-27 2014-02-24 한국전자통신연구원 코어 클러스터, 및 코어 클러스터를 포함하는 에너지 스케일러블 벡터 프로세싱 장치 및 방법
US9864427B2 (en) 2011-09-06 2018-01-09 Intel Corporation Power efficient processor architecture

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7685458B2 (en) * 2006-12-12 2010-03-23 Kabushiki Kaisha Toshiba Assigned task information based variable phase delayed clock signals to processor cores to reduce di/dt
JP2009215944A (ja) * 2008-03-10 2009-09-24 Hitachi Ltd 電子制御装置及びその運転方法
JP2009251802A (ja) * 2008-04-03 2009-10-29 Panasonic Corp マルチプロセッサシステムおよびマルチプロセッサシステムの割込み制御方法
US8948822B2 (en) 2008-04-23 2015-02-03 Qualcomm Incorporated Coordinating power management functions in a multi-media device
US8908763B2 (en) 2008-06-25 2014-12-09 Qualcomm Incorporated Fragmented reference in temporal compression for video coding
US8964828B2 (en) 2008-08-19 2015-02-24 Qualcomm Incorporated Power and computational load management techniques in video processing
US8948270B2 (en) 2008-08-19 2015-02-03 Qualcomm Incorporated Power and computational load management techniques in video processing
WO2010035315A1 (ja) 2008-09-24 2010-04-01 富士通株式会社 マルチコアcpuにおける消費電力制御方法,消費電力制御プログラム及び情報処理システム
JP2012504800A (ja) 2008-10-03 2012-02-23 ザ ユニバーシティ オブ シドニー 異種コンピューティング・システムにおいて実行するためのアプリケーションのスケジューリング
JP5490093B2 (ja) * 2008-10-10 2014-05-14 株式会社日立製作所 ストレージシステムおよびその制御方法
US20100216506A1 (en) * 2009-02-23 2010-08-26 Augusta Technology, Inc. System and Methods for Supporting Multiple Communications Protocols on a Mobile Phone Device
CN101505319B (zh) * 2009-02-26 2011-09-28 浙江大学 基于网络的自适应可重构处理单元阵列系统加速的方法
JP5316128B2 (ja) * 2009-03-17 2013-10-16 トヨタ自動車株式会社 故障診断システム、電子制御ユニット、故障診断方法
JP5578811B2 (ja) * 2009-06-30 2014-08-27 キヤノン株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
TWI397808B (zh) * 2009-07-16 2013-06-01 Via Tech Inc 多處理器系統及其動態省電方法
US8359421B2 (en) * 2009-08-06 2013-01-22 Qualcomm Incorporated Partitioning a crossbar interconnect in a multi-channel memory system
US9098274B2 (en) 2009-12-03 2015-08-04 Intel Corporation Methods and apparatuses to improve turbo performance for events handling
JP5511400B2 (ja) * 2010-01-12 2014-06-04 三菱電機株式会社 並列信号処理プロセッサ
JP5432749B2 (ja) * 2010-02-01 2014-03-05 トヨタ自動車株式会社 マルチコアプロセッサを備える車載電子制御装置
JP5636276B2 (ja) * 2010-12-27 2014-12-03 ルネサスエレクトロニクス株式会社 半導体装置
JP5679047B2 (ja) 2011-04-18 2015-03-04 富士通株式会社 スレッド処理方法、およびスレッド処理システム
KR101861742B1 (ko) * 2011-08-30 2018-05-30 삼성전자주식회사 이종의 가속기들 사이에서 스위칭할 수 있는 데이터 처리 시스템과 그 방법
JP5773065B2 (ja) * 2012-03-19 2015-09-02 富士通株式会社 スケジューリングプログラム、マルチコアプロセッサシステム、およびスケジューリング方法
CN103377086A (zh) * 2012-04-27 2013-10-30 华为技术有限公司 用于异步多核系统操作共享资源的方法、装置及系统
US8868672B2 (en) * 2012-05-14 2014-10-21 Advanced Micro Devices, Inc. Server node interconnect devices and methods
US9137173B2 (en) 2012-06-19 2015-09-15 Advanced Micro Devices, Inc. Devices and methods for interconnecting server nodes
US8930595B2 (en) 2012-06-21 2015-01-06 Advanced Micro Devices, Inc. Memory switch for interconnecting server nodes
US9253287B2 (en) 2012-08-20 2016-02-02 Advanced Micro Devices, Inc. Speculation based approach for reliable message communications
US8875256B2 (en) 2012-11-13 2014-10-28 Advanced Micro Devices, Inc. Data flow processing in a network environment
CN103020002B (zh) * 2012-11-27 2015-11-18 中国人民解放军信息工程大学 可重构多处理器系统
US9465620B2 (en) * 2012-12-20 2016-10-11 Intel Corporation Scalable compute fabric
US9081577B2 (en) * 2012-12-28 2015-07-14 Intel Corporation Independent control of processor core retention states
US9442559B2 (en) 2013-03-14 2016-09-13 Intel Corporation Exploiting process variation in a multicore processor
US10423216B2 (en) * 2013-03-26 2019-09-24 Via Technologies, Inc. Asymmetric multi-core processor with native switching mechanism
JP6089949B2 (ja) * 2013-05-14 2017-03-08 株式会社リコー Simd型プロセッサ
CN104753830B (zh) * 2013-12-25 2017-10-24 展讯通信(上海)有限公司 基带芯片及其数据处理方法
US9619289B2 (en) 2014-09-11 2017-04-11 Dell Products, L.P. Workload optimized server for intelligent algorithm trading platforms
US10928882B2 (en) * 2014-10-16 2021-02-23 Futurewei Technologies, Inc. Low cost, low power high performance SMP/ASMP multiple-processor system
US10248180B2 (en) * 2014-10-16 2019-04-02 Futurewei Technologies, Inc. Fast SMP/ASMP mode-switching hardware apparatus for a low-cost low-power high performance multiple processor system
US9952650B2 (en) 2014-10-16 2018-04-24 Futurewei Technologies, Inc. Hardware apparatus and method for multiple processors dynamic asymmetric and symmetric mode switching
US9563431B2 (en) * 2014-12-26 2017-02-07 Intel Corporation Techniques for cooperative execution between asymmetric processor cores
CN105808498B (zh) * 2014-12-30 2018-06-08 展讯通信(上海)有限公司 非对称多处理器通信方法及装置
US10073718B2 (en) 2016-01-15 2018-09-11 Intel Corporation Systems, methods and devices for determining work placement on processor cores
US10175734B1 (en) * 2016-06-17 2019-01-08 Altera Corporation Techniques for adjusting latency of a clock signal to affect supply voltage
WO2018002991A1 (ja) * 2016-06-27 2018-01-04 日本電気株式会社 制御装置、vnf配置先選択方法及びプログラム
US10783279B2 (en) * 2016-09-01 2020-09-22 Atmel Corporation Low cost cryptographic accelerator
US11182315B2 (en) * 2017-02-10 2021-11-23 Intel Corporation Apparatuses, methods, and systems for hardware control of processor performance levels
US10838902B2 (en) * 2017-06-23 2020-11-17 Facebook, Inc. Apparatus, system, and method for performing hardware acceleration via expansion cards
CN110825530B (zh) * 2018-08-10 2022-12-23 昆仑芯(北京)科技有限公司 用于人工智能芯片的指令执行方法和装置
CN108925310A (zh) * 2018-09-14 2018-12-04 苏州格瑞格登新材料科技有限公司 一种农业用的大棚种植全生命周期管理系统
IT202000009358A1 (it) * 2020-04-29 2021-10-29 St Microelectronics Srl Circuito, dispositivo, sistema e procedimento corrispondenti
CN112834819B (zh) * 2021-01-04 2024-04-02 杭州万高科技股份有限公司 一种用于电能计量芯片的数字信号处理装置及方法
US20220276914A1 (en) * 2021-03-01 2022-09-01 Nvidia Corporation Interface for multiple processors
CN113391821B (zh) * 2021-05-11 2023-03-10 中国电力科学研究院有限公司 一种非对称多处理器嵌入式操作系统
CN113505095B (zh) * 2021-07-30 2023-03-21 上海壁仞智能科技有限公司 多核异相处理的系统级芯片和集成电路

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55162154A (en) * 1979-06-01 1980-12-17 Nec Corp Data processor
JPH01243123A (ja) * 1988-03-24 1989-09-27 Nec Corp 情報処理装置
CA2011807C (en) 1989-03-20 1999-02-23 Katsumi Hayashi Data base processing system using multiprocessor system
JPH03222518A (ja) * 1990-01-29 1991-10-01 Mitsubishi Electric Corp 集積回路装置
US5301324A (en) 1992-11-19 1994-04-05 International Business Machines Corp. Method and apparatus for dynamic work reassignment among asymmetric, coupled processors
JPH1139073A (ja) * 1997-07-16 1999-02-12 Saitama Nippon Denki Kk データバス制御回路
US6058414A (en) * 1998-01-07 2000-05-02 International Business Machines Corporation System and method for dynamic resource access in an asymmetric resource multiple processor computer system
JP2001167058A (ja) * 1999-12-07 2001-06-22 Matsushita Electric Ind Co Ltd 情報処理装置
US6925641B1 (en) * 2000-02-04 2005-08-02 Xronix Communications, Inc. Real time DSP load management system
WO2001095099A1 (fr) * 2000-06-06 2001-12-13 Tadahiro Ohmi Systeme et procede de gestion de circuits de traitement d'informations a fonction variable
US6920572B2 (en) * 2000-11-15 2005-07-19 Texas Instruments Incorporated Unanimous voting for disabling of shared component clocking in a multicore DSP device
US7055060B2 (en) * 2002-12-19 2006-05-30 Intel Corporation On-die mechanism for high-reliability processor
JP4090908B2 (ja) 2003-02-21 2008-05-28 シャープ株式会社 画像処理装置および画像形成装置
TWI222375B (en) * 2003-05-05 2004-10-21 Fu Sheng Ind Co Ltd Golf club head and manufacturing method therefor
GB2409302B (en) * 2003-12-18 2006-11-22 Advanced Risc Mach Ltd Data communication mechanism
EP1555595A3 (en) * 2004-01-13 2011-11-23 LG Electronics, Inc. Apparatus for controlling power of processor having a plurality of cores and control method of the same
US7401241B2 (en) * 2004-06-22 2008-07-15 Intel Corporation Controlling standby power of low power devices

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100888675B1 (ko) * 2007-02-15 2009-03-13 고려대학교 산학협력단 임베디드 코어에서 멀티 쓰레드 실행을 위해 확장된프로세서 및 임베디드 코어에서 멀티 쓰레드 실행 방법
KR100837278B1 (ko) * 2007-02-27 2008-06-11 삼성전자주식회사 클럭 스큐 컨트롤러 및 그것을 포함하는 집적 회로
US7971088B2 (en) 2007-02-27 2011-06-28 Samsung Electronics Co., Ltd. Clock skew controller and integrated circuit including the same
KR101276340B1 (ko) * 2009-09-22 2013-06-18 한국전자통신연구원 병렬 처리 시스템 및 그 방법
KR101365940B1 (ko) * 2009-10-27 2014-02-24 한국전자통신연구원 코어 클러스터, 및 코어 클러스터를 포함하는 에너지 스케일러블 벡터 프로세싱 장치 및 방법
US9864427B2 (en) 2011-09-06 2018-01-09 Intel Corporation Power efficient processor architecture
US9870047B2 (en) 2011-09-06 2018-01-16 Intel Corporation Power efficient processor architecture
US10048743B2 (en) 2011-09-06 2018-08-14 Intel Corporation Power efficient processor architecture
US10664039B2 (en) 2011-09-06 2020-05-26 Intel Corporation Power efficient processor architecture

Also Published As

Publication number Publication date
JP2007328461A (ja) 2007-12-20
EP1865417A2 (en) 2007-12-12
US7814252B2 (en) 2010-10-12
EP1865417A3 (en) 2010-12-22
CN101086722A (zh) 2007-12-12
US20070283128A1 (en) 2007-12-06
CN101086722B (zh) 2010-11-10

Similar Documents

Publication Publication Date Title
KR20070116740A (ko) 비대칭 멀티 프로세서
JP6903187B2 (ja) タイミングを中断させるモードにおけるソフトウェアの後方互換性テスト
US8055872B2 (en) Data processor with hardware accelerator, accelerator interface and shared memory management unit
US8135941B2 (en) Vector morphing mechanism for multiple processor cores
EP2879017B1 (en) Performing an operating frequency change using a dynamic clock control technique
US8200905B2 (en) Effective prefetching with multiple processors and threads
US8793439B2 (en) Accelerating memory operations using virtualization information
US20100146310A1 (en) Multiprocessor system and multigrain parallelizing compiler
US20060179277A1 (en) System and method for instruction line buffer holding a branch target buffer
JP2001236221A (ja) マルチスレッドを利用するパイプライン並列プロセッサ
WO2001037088A2 (en) Programmable multi-tasking memory management system
JP4134182B2 (ja) タスク変更アプリケーションプログラミングインタフェースを提供する方法及び装置
EP1862906A1 (en) Cache memory control method and cache memory control device
Mische et al. How to enhance a superscalar processor to provide hard real-time capable in-order smt
CN112527729A (zh) 一种紧耦合异构多核处理器架构及其处理方法
Kaminsky Special feature: Developing a multiple-instructon-stream single-chip processor
US9377836B2 (en) Restricting clock signal delivery based on activity in a processor
JP2014503898A (ja) 処理装置の同期動作のための方法およびシステム
JP2007510989A (ja) 動的キャッシングエンジン命令
US20080046684A1 (en) Multithreaded multicore uniprocessor and a heterogeneous multiprocessor incorporating the same
JP6396715B2 (ja) データ処理装置
US20090077290A1 (en) Controller for processing apparatus
JP5486368B2 (ja) マイクロコンピュータ及びマイクロコンピュータの制御方法
Molnos et al. Compositional, efficient caches for a chip multi-processor
Yazdani et al. Reconfiguralbe multimedia accelerator for mobile systems

Legal Events

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