JP4424443B2 - 混合モード並列プロセッサシステム、混合モード並列プロセッサ方法、および、混合モード並列プロセッサプログラム - Google Patents

混合モード並列プロセッサシステム、混合モード並列プロセッサ方法、および、混合モード並列プロセッサプログラム Download PDF

Info

Publication number
JP4424443B2
JP4424443B2 JP2008530852A JP2008530852A JP4424443B2 JP 4424443 B2 JP4424443 B2 JP 4424443B2 JP 2008530852 A JP2008530852 A JP 2008530852A JP 2008530852 A JP2008530852 A JP 2008530852A JP 4424443 B2 JP4424443 B2 JP 4424443B2
Authority
JP
Japan
Prior art keywords
instruction
processing
memory
parallel processor
processing elements
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
JP2008530852A
Other languages
English (en)
Other versions
JPWO2008023576A1 (ja
Inventor
昭倫 京
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of JPWO2008023576A1 publication Critical patent/JPWO2008023576A1/ja
Application granted granted Critical
Publication of JP4424443B2 publication Critical patent/JP4424443B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors

Description

[関連出願の記載]
本発明は、日本国特許出願:特願2006−225963号(平成18年8月23日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、プロセシングエレメント、混合モード並列プロセッサシステム、プロセシングエレメント方法、混合モード並列プロセッサ方法、プロセシングエレメントプログラム、および、混合モード並列プロセッサプログラムに関し、特に、効率的なプロセシングエレメント、混合モード並列プロセッサシステム、プロセシングエレメント方法、混合モード並列プロセッサ方法、プロセシングエレメントプログラム、および、混合モード並列プロセッサプログラムに関する。
多数のプロセッサ(PE:プロセシングエレメント)あるいは演算回路を共通の命令流で並列に動作させる、いわゆるSIMD(Single Instruction Multiple Data)方式の並列プロセッサが提案されている。また、複数の命令流でそれぞれに対応した複数のプロセッサ(PU:プロセシングユニット)あるいは演算回路を動作させる、いわゆる、MIMD(Multiple Instruction Multiple Data)方式の並列プロセッサがこれまで提案されている。
SIMD方式の並列プロセッサは、多数のPEに対し同一の単一の命令流だけを生成すればいいことから、命令流の生成に要する命令キャッシュや条件分岐の実現に要するシーケンス制御回路を一つ持てばよい。したがって、SIMD方式の並列プロセッサは、高い性能を実現できる割には、少ない制御回路だけで済み回路規模を小さく抑えることができるという利点、および全PEの間で常に同期が取れているため、演算回路間でデータの交換を非常に効率よく行うことができるという利点を持つ。しかし、SIMD方式の並列プロセッサは、命令流が一つしか存在しないため有効な問題の範囲が限定されるという欠点を持つ。
一方、MIMD方式の並列プロセッサは、多数の命令流を同時に維持できるため有効な問題の範囲が広いという利点を持つ。しかし、MIMD方式の並列プロセッサは、PE数と同数だけの制御回路が必要とし回路規模が大きくなるという欠点を持つ。
そうした中で、SIMD方式とMIMD方式の双方の利点を組み合わせ、同一プロセッサにおいてSIMD方式とMIMD方式の両方を動的に切り替えられる、いわゆる「混合モード」並列プロセッサの構成が提案されている。
たとえば、最初からMIMDモードで動作が可能なように制御回路とPEの対を併せ持つように各処理要素(PE)を構成し、SIMDモードでは全PEが外部命令バスを介して放送されてくる命令流を選択して実行し、MIMDモードでは各PEがローカルの命令流を選択して実行することにより、MIMDモードとSIMDモードを動的に切り替える方式が開示されている(たとえば、「特許文献1」〜「特許文献4」)。
特開昭59−16071号公報 特開平5−20283号公報 特許第2647315号 特許第3199205号
特許文献1〜4の開示事項は、本書に引用をもって繰り込み記載されているものとする。以下の分析は、本発明によって与えられたものである。
上述した従来のMIMD方式をベースとする混合モード並列プロセッサの主な目的は、SIMDモードに切り替えることで、PE間でのデータ交換が非常に効率よく実現できるようになるという利点を得ることである。
しかし、同じPE数を有する従来の混合モード並列プロセッサと単純なSIMD方式のみに基づく並列プロセッサとを比べると、前者は、PE毎への効率的な命令流供給に不可欠な命令キャッシュメモリやその関連制御回路、特に、回路規模の大きい命令キャッシュメモリや命令キャッシュのタグ格納用レジスタ資源がPE個数分だけ必要となる。その結果、多くの場合、回路規模が同じならば、集積可能なPE数は、前者が後者の約半分以下に留まり、すなわち、前者の処理性能が後者の半分以下にまで低下する。
こうしたことから、SIMD処理とMIMD処理とが混在するようなアプリケーションに対し、通常のSIMDプロセッサと比べ従来の混合モード並列プロセッサが、本当に有効かどうかは、SIMD処理とMIMD処理の割合に大きく依存することになり、SIMD処理の割合が高くなればなるほど、混合モード並列プロセッサの有効性が低下するという問題点が存在していた。
本発明の目的は、同一PE数を有する単純なSIMDプロセッサと比べ、回路規模の大幅な増加をせずに、SIMD処理時での性能低下を発生しないプロセシングエレメント、混合モード並列プロセッサシステム、プロセシングエレメント方法、混合モード並列プロセッサ方法、プロセシングエレメントプログラム、および、混合モード並列プロセッサプログラムを提供することである。
本発明のプロセシングエレメントは、SIMD動作時には他のN−1個のプロセシングエレメントと並列動作し、MIMD動作時には他のS(=N÷M)−1個(S、Mは2以上の自然数)のプロセシングエレメントと並列動作する。
本発明の第1の混合モード並列プロセッサシステムは、N個のプロセシングエレメントを備え、SIMD動作時にはN個の前記プロセシングエレメントが並列動作し、MIMD動作時にはそれぞれS個のプロセシングエレメントを含むM(=N÷S)組(S、Mは2以上の自然数)のプロセシングユニットにグループ化し、M組の前記プロセシングユニット同士、および、S個の前記プロセシングエレメント同士がそれぞれ並列動作する。
本発明の第2の混合モード並列プロセッサシステムは、前記第1の混合モード並列プロセッサシステムであって、MIMD動作時には前記プロセシングユニットのメモリ資源の一部が、命令キャッシュメモリとして動作し、汎用レジスタ資源が、命令キャッシュのタグ格納用領域として動作する。
本発明の第3の混合モード並列プロセッサシステムは、前記第2の混合モード並列プロセッサシステムであって、前記プロセシングユニットに、命令キャッシュ制御、命令シーケンス制御を行う1つの制御回路を含む。
本発明の第4の混合モード並列プロセッサシステムは、前記第2、または、第3の混合モード並列プロセッサシステムであって、MIMD動作時には各前記プロセシングユニット内の各前記プロセシングエレメントに属するS個の前記メモリ資源のうちP個(P<S)が命令キャッシュ、残りのS−P個のメモリ資源がデータメモリあるいはデータキャッシュとして動作し、Sセットの前記汎用レジスタ資源のうち、1セットがそのまま前記プロセシングユニットの前記汎用レジスタ資源として動作し、残るS−1セットのうちTセット(T<S−1)、または、一定数だけが命令キャッシュのタグ格納用資源として動作し、残りはデータキャッシュを利用する場合はデータキャッシュのタグ格納用資源として動作する。
本発明の第5の混合モード並列プロセッサシステムは、前記第2、第3、または、第4の混合モード並列プロセッサシステムであって、全体を制御する制御プロセシングエレメントを備え、各前記プロセシングユニット内の前記命令キャッシュメモリを含む1つの前記プロセシングエレメントが、前記制御回路と、前記制御プロセシングエレメントからの命令、前記命令キャッシュメモリからの命令のどちらかを選択する命令流選択セレクタとを含み、MIMD動作時には、前記命令キャッシュメモリを含まない残りの前記プロセシングエレメントは、前記命令流選択セレクタからの命令を入力し実行する。
本発明の第6の混合モード並列プロセッサシステムは、前記第2の混合モード並列プロセッサシステムであって、全体を制御する制御プロセシングエレメントを備え、各前記プロセシングユニット内のすべての前記プロセシングエレメントが、前記制御回路と、命令流選択セレクタとを有し、MIMD動作時には、前記命令キャッシュメモリを含む1つの前記プロセシングエレメントの前記命令流選択セレクタが前記制御プロセシングエレメントからの命令、前記命令キャッシュメモリからの命令のどちらかを選択し、前記命令キャッシュメモリを含まない残りの前記プロセシングエレメントは、前記命令キャッシュメモリを含む1つの前記プロセシングエレメントの前記命令流選択セレクタからの命令を入力し実行する。
本発明のプロセシングエレメント方法は、プロセシングエレメントが、SIMD動作時には他のN−1個のプロセシングエレメントと並列動作する手順と、MIMD動作時には他のS(=N÷M)−1個(S、Mは2以上の自然数)のプロセシングエレメントと並列動作する手順とを含む。
本発明の第1の混合モード並列プロセッサ方法は、N個のプロセシングエレメントを備え、MIMD動作時にはそれぞれS個のプロセシングエレメントを含むM(=N÷S)組(S、Mは2以上の自然数)のプロセシングユニットにグループ化される混合モード並列プロセッサシステムにおける混合モード並列プロセッサ方法であって、SIMD動作時にはN個の前記プロセシングエレメントが並列動作する手順と、MIMD動作時にはM組の前記プロセシングユニット同士、および、S個の前記プロセシングエレメント同士がそれぞれ並列動作する手順とを含む。
本発明の第2の混合モード並列プロセッサ方法は、前記第1の混合モード並列プロセッサ方法であって、MIMD動作時には前記プロセシングユニットのメモリ資源の一部が、命令キャッシュメモリとして動作する手順と、汎用レジスタ資源が、命令キャッシュのタグ格納用領域として動作する手順と含む。
本発明の第3の混合モード並列プロセッサ方法は、前記第2の混合モード並列プロセッサ方法であって、前記プロセシングユニットの1つの制御回路が、命令キャッシュ制御、命令シーケンス制御を行う手順を含む。
本発明の第4の混合モード並列プロセッサ方法は、前記第2、または、第3の混合モード並列プロセッサ方法であって、MIMD動作時には各前記プロセシングユニット内の各前記プロセシングエレメントに属するS個の前記メモリ資源のうちP個(P<S)が命令キャッシュ、残りのS−P個のメモリ資源がデータメモリあるいはデータキャッシュとして動作する手順と、Sセットの前記汎用レジスタ資源のうち、1セットがそのまま前記プロセシングユニットの前記汎用レジスタ資源として動作する手順と、残るS−1セットのうちTセット(T<S−1)、または、一定数だけが命令キャッシュのタグ格納用資源として動作し、残りはデータキャッシュを利用する場合はデータキャッシュのタグ格納用資源として動作する手順とを含む。
本発明の第5の混合モード並列プロセッサ方法は、前記第2、第3、または、第4の混合モード並列プロセッサ方法であって、全体を制御する制御プロセシングエレメントを備える前記混合モード並列プロセッサシステムにおける混合モード並列プロセッサ方法であって、各前記プロセシングユニット内の前記命令キャッシュメモリを含む1つの前記プロセシングエレメントの命令流選択セレクタが、前記制御プロセシングエレメントからの命令、前記命令キャッシュメモリからの命令のどちらかを選択する手順と、MIMD動作時には、前記命令キャッシュメモリを含まない残りの前記プロセシングエレメントは、前記命令流選択セレクタからの命令を入力し実行する手順と、を含む。
本発明の第6の混合モード並列プロセッサ方法は、前記第2の混合モード並列プロセッサ方法であって、全体を制御する制御プロセシングエレメントを備える前記混合モード並列プロセッサシステムにおける混合モード並列プロセッサ方法であって、MIMD動作時には、前記命令キャッシュメモリを含む1つの前記プロセシングエレメントの前記命令流選択セレクタが前記制御プロセシングエレメントからの命令、前記命令キャッシュメモリからの命令のどちらかを選択する手順と、前記命令キャッシュメモリを含まない残りの前記プロセシングエレメントは、前記命令キャッシュメモリを含む1つの前記プロセシングエレメントの前記命令流選択セレクタからの命令を入力し実行する手順と、を含む。
本発明のプロセシングエレメントプログラムは、プロセシングエレメントに、SIMD動作時には他のN−1個のプロセシングエレメントと並列動作する手順と、MIMD動作時には他のS(=N÷M)−1個(S、Mは2以上の自然数)のプロセシングエレメントと並列動作する手順を実行させる。
本発明の第1の混合モード並列プロセッサプログラムは、N個のプロセシングエレメントを備え、MIMD動作時にはそれぞれS個のプロセシングエレメントを含むM(=N÷S)組(S、Mは2以上の自然数)のプロセシングユニットにグループ化される混合モード並列プロセッサシステムにおける混合モード並列プロセッサプログラムであって、前記混合モード並列プロセッサシステムに、SIMD動作時にはN個の前記プロセシングエレメントが並列動作する手順と、MIMD動作時にはM組の前記プロセシングユニット同士、および、S個の前記プロセシングエレメント同士がそれぞれ並列動作する手順と、を実行させる。
本発明の第2の混合モード並列プロセッサプログラムは、前記第1の混合モード並列プロセッサプログラムであって、MIMD動作時には前記プロセシングユニットのメモリ資源の一部に、命令キャッシュメモリとして動作する手順を実行させ、汎用レジスタ資源に、命令キャッシュのタグ格納用領域として動作する手順を実行させる。
本発明の第3の混合モード並列プロセッサプログラムは、前記第2の混合モード並列プロセッサプログラムであって、前記プロセシングユニットの1つの制御回路に、命令キャッシュ制御、命令シーケンス制御を行う手順を実行させる。
本発明の第4の混合モード並列プロセッサプログラムは、前記第2、または、第3の混合モード並列プロセッサプログラムであって、MIMD動作時には各前記プロセシングユニット内の各前記プロセシングエレメントに属するS個の前記メモリ資源のうちP個(P<S)が命令キャッシュ、残りのS−P個のメモリ資源がデータメモリあるいはデータキャッシュとして動作する手順と、Sセットの前記汎用レジスタ資源のうち、1セットがそのまま前記プロセシングユニットの前記汎用レジスタ資源として動作する手順と、残るS−1セットのうちTセット(T<S−1)、または、一定数だけが命令キャッシュのタグ格納用資源として動作し、残りはデータキャッシュを利用する場合はデータキャッシュのタグ格納用資源として動作する手順とを前記混合モード並列プロセッサシステムに実行させる。
本発明は、同一PE数を有する単純なSIMDプロセッサと比べ、回路規模の大幅な増加をせずに、SIMD処理時での性能低下を発生しない混合モード並列プロセッサが実現できるという効果を持つ。
その理由は、プロセシングエレメントが、SIMD動作時は他のN−1個のプロセシングエレメントと並列動作し、MIMD動作時は他の(N÷S)−1個(Sは2以上の自然数)のプロセシングエレメントと並列動作するからである。
本発明の第1の実施の形態の構成を示すブロック図。 本発明の第1の実施の形態のプロセシングユニットの詳細な構成を示すブロック図。 本発明の第1の実施の形態の動作を示すフローチャート。 本発明の第1の実施の形態における命令キャッシュに対するアクセス情報の内容を示す説明図。 本発明の第1の実施の形態の実施例の構成を示すブロック図。 本発明の第2の実施の形態の構成を示すブロック図。
符号の説明
PS 混合モード並列プロセッサシステム
CP 制御プロセシングエレメント
PE1〜PEn プロセシングエレメント
MEM 主記憶装置
BUS 共通バス
PU1 プロセシングユニット
PU1〜PUm プロセシングユニット
RAM1〜RAMn メモリ
GPR1〜GPRn レジスタ資源
ALU1〜ALUn 演算回路
ISEL1〜ISELm 命令流選択セレクタ
PC プログラムカウンター
MODE モード指定レジスタ
CTR1〜CTRm 制御回路
CTR1 制御回路
RAM0 メモリ
GRP0 レジスタ資源
CTR0 制御回路
ALU0 演算回路
ARBT 調停回路
FF1〜FFr 汎用レジスタ
ID1、ID2 命令デコーダ回路
SELG1〜SELGr データセレクタ
RSEL1〜RSEL2 オペランド読み出し用セレクタ
CSEL1 制御セレクタ
SELAD1 アドレスセレクタ
CMP1 比較回路
本発明の混合モード並列プロセッサシステムは、それぞれがメモリ(資源)や演算の途中結果を格納する汎用レジスタ(資源)を備える計N個のSIMD動作可能なプロセシングエレメントPEを含む。さらに、混合モード並列プロセッサシステムは、M個(N÷S=M、M,N,Sは共に自然数)の命令キャッシュタグ格納領域を含まない命令キャッシュ制御回路、および、M個の命令シーケンス制御用回路を含む。
互いに隣接するS個のプロセシングエレメントPE、1個の命令キャッシュ制御回路、および、1個の命令シーケンス制御回路からなるグループが、1つのMIMD動作するプロセシングユニットPUを構成する。命令キャッシュ制御回路、および、命令シーケンス制御回路は、1つのプロセシングエレメントPEに含まれる構成も可能である。
MIMD動作時は、各プロセシングユニットPU内のS個のメモリ(資源)のうちP個(P<S)が、命令キャッシュとして動作し、残りのメモリ(資源)が、データメモリあるいはデータキャッシュとして動作する。また、Sセットの汎用レジスタ(資源)のうち、1セットはそのままPUの汎用レジスタ(資源)として動作する。
残るS−1セットのうちTセット(T<S−1)は、命令キャッシュタグの格納用レジスタ(ディレクトリとしての資源)として動作する。また、残りのS−1−Tセットは、データキャッシュのタグ格納用レジスタ(資源)として動作するデータキャッシュの構成も可能である。
また、混合モード並列プロセッサシステムは、各メモリ(資源)や汎用レジスタ(資源)へのライトデータや各種制御信号を、SIMDモード時とMIMDモード時とで切り替えられるようにするためのセレクタ類を含む。
上記構成をとることにより、混合モード並列プロセッサの実現に要する追加回路は、S個のPEにつき、1個の命令シーケンス制御回路、幾つかのセレクタおよびそれらに対する制御信号生成も合わせて行う(命令キャッシュのタグ格納用領域本体を含まない)1個の命令キャッシュ制御回路のみで済む。
すなわち、MIMD的動作を実現する上でもっとも大きな回路規模の増大をもたらす「命令キャッシュメモリ、および、その命令キャッシュタグの格納用レジスタ(資源)」の新規追加が不要となる。したがって、本発明の混合モード並列プロセッサシステムは、SIMDモード時ではN個のPEによる並列動作、MIMDモード時ではM(=N÷S)個のPUによる並列動作を行うことが可能である。また、本発明の混合モード並列プロセッサシステムPSは、N個のPEで構成される単純なSIMDプロセッサと比べても非常に少ない回路規模の増加のみで構成できる。
次に、本発明の第1の実施の形態について図面を参照して詳細に説明する。図1は、本発明の第1の実施の形態の混合モード並列プロセッサシステムPSの構成を示すブロック図である。図1を参照すると、本発明の第1の実施の形態の混合モード並列プロセッサシステムPSは、全体の制御を行う制御プロセシングエレメントCPと、n個のプロセシングエレメントPE1、PE2、PE3、PE4、…、PEn−1、PEnと、主記憶装置MEMとを含む。また、プロセシングエレメントPE1〜PEnは、共通バスBUSで、制御プロセシングエレメントCPに接続される。
混合モード並列プロセッサシステムPSは、Sが2、したがって、MがN/2、すなわち、2つのSIMD動作するプロセシングエレメントPEiおよびプロセシングエレメントPEi+1で一つのMIMD動作するプロセシングユニットPU1、PU2、…、PUmを構成する場合である。
プロセシングエレメントPE1〜PEnは、それぞれ、メモリRAM1〜RAMn(資源)、レジスタ資源GPR1〜GPRn、および、演算回路ALU1〜ALUnを含む。プロセシングユニットPU1〜PUmは、それぞれ、命令流選択セレクタISEL1〜ISELm、プログラムカウンターPC、および、モード指定レジスタMODEを内蔵した制御回路CTR1〜CTRm(命令シーケンス制御、かつ、命令キャッシュ制御)を含む。命令流選択セレクタISEL1〜ISELm、制御回路CTR1〜CTRmは、奇数番のプロセシングエレメントPE1、PE3、…、PEn−1に含ませることが可能である。
また、SIMDモード時にPEアレイ全体への命令流を供給する制御プロセシングエレメントCPは、データメモリRAM0(資源)、レジスタ資源GRP0、制御回路CTR0、演算回路ALU0、および、調停回路ARBTを含む。
図2は、プロセシングユニットPU1の詳細な構成を示すブロック図である。図2を参照すると、プロセシングユニットPU1は、プロセシングエレメントPE1、PE2を含む。プロセシングエレメントPE1の命令流選択セレクタISEL1は、制御プロセシングエレメントCPからの命令とメモリRAM1からの命令ワードを選択し、プロセシングエレメントPE1内部、および、プロセシングエレメントPE2に出力する。
命令デコーダ回路ID1、ID2は、命令ワードをデコードし、制御信号を生成する。
r個の汎用レジスタFF1〜FFrは、プロセシングエレメントPE1、PE2のレジスタ資源である。
データセレクタSELG1〜SELGrは、プロセシングエレメントPE1の個々の汎用レジスタFF1〜FFrへの入力に、「演算回路ALU1からのライトバックデータ」、「メモリRAM1からのライトバックデータ」、および、「制御回路CTR1が生成するタグ更新データ」のいずれかを選択する。
アドレスセレクタSELAD1は、制御回路CTR1とレジスタ資源GPR1とのいずれからのアドレス値をメモリRAM1のアクセスに使用するのかを選択する。オペランド読み出し用セレクタRSEL1〜RSEL2は、レジスタ資源GPR1(レジスタ資源GPR2)の出力データの中から演算回路ALU1(演算回路ALU2)へ供給するソースオペランドを選択する。
こうした構成のもと、混合モード並列プロセッサは、SIMDモード時ではN並列で、MIMDモードではM(=N/2)並列で、概略、つぎのように動作する。以下、構成要素の名称を省略し、符号のみで説明する。
図1を参照すると、SIMDモード時では、CPから放送される命令の方を選択するように、CTR1〜CTRmが命令流セレクタISEL1〜ISELmを制御する。それにより、PE1〜PEnへは同一の命令が放送され、その結果、N個のPE1〜PEnによるSIMD処理が行われる。
一方、図2を参照すると、MIMDモード時では、PU1内において、CTR1が、CTR1からのライトデータ(命令キャッシュのタグ)をPE1のFF1〜FFrへ供給するようにSELG1〜SELGrを制御する。したがって、PE1のFF1〜FFrは、命令キャッシュのタグの格納に利用可能となる。また、CTR1は、GPR1からではなくCTR1からのアクセスアドレス値(メモリRAM1への)を選択するようにSELAD1を制御する。したがって、RAM1は、命令キャッシュメモリとして利用可能となる。
一方、PE2では、MIMDモード時において、GRP2からALU2まではSIMDモード時と同様に、命令指定による演算処理を行うデータパスとして機能する。しかし、演算動作はRAM1から読み出された命令のID2によるデコード結果で指定される。このように、MIMDモードでは、各PU1〜PUmにおいて、一つのPE1(PE3、PE5、…)内の大半のハードウェア資源が、MIMDモード時の命令発行の動作の実現に必要となるハードウェア要素として利用され、命令の効率的発行が実現される。発行された命令は、もう一つのPE2(PE4、PE6、…)で実行される。
次に、本発明の第1の実施の形態の動作について図面を参照して説明する。図3は、本発明の本発明の第1の実施の形態のPU1の動作を示すフローチャートである。なお、本実施の形態では説明を簡潔にするため、PE1、PE2は、それぞれ1つの演算回路(ALU1、ALU2)を有し、サイクル毎に最大1命令を実行する。個々のPE1、PE2が演算回路を複数有し、サイクル毎に複数命令を同時に実行できるものであってもかまわない。
同様に、説明を簡潔にするため、本実施の形態は、PU1が、2つのSIMD動作するPE1、PE2が一つのMIMD動作する構成である。また、本実施の形態は、PE1、PE2のRAM1、RAM2(メモリ資源)からサイクル毎に読み出せるデータのビット数Dが命令語長Lと一致する構成である。D≧Lであってもよく、その場合は、DのうちのLビットだけを利用すればよい。
あるいは、D<Lであれば、DをD≧LとなるようにPE1、PE2のRAM1、RAM2(メモリ資源)の仕様を修正する構成が可能である。あるいは、一つのPU内のPE数を増やし、たとえば、3〜4台のPEが一つのMIMD動作を行い、その中の2〜3PE分のメモリ資源を合わせて命令キャッシュメモリとして利用する構成も可能である。
図3を参照すると、PU1は以下のように動作することで、もともとSIMD動作を行う2つのPE1、および、PE2のハード資源を利用してMIMD動作を実現する。CTR1内のMODEは、CPによってリード・ライト可能であり、その値によってSIMD動作(MODEの値が“0”の場合)とMIMD動作(MODEの値が“1”の場合)とのいずれであるかを示す。
CPは、PU1のCTR1内のMODEに“0”をライトすることで、PU1の動作をSIMDモードに設定するか、あるいは、MODEに“1”をライトすることで、PU1の動作をMIMDモードに設定する。
以下、図3のフローチャートに沿って、PU1のサイクル毎動作について説明する。まず、ISEL1は、MODE=“0”であれば(図3ステップS1/Yes)、CPから放送される命令を選択し(ステップS2)、MODE=“1”であれば(ステップS1/No)、RAM1から読み出された命令を選択する(ステップS3)。
次に、CRT1は、選択された命令が動作停止を指定する命令(HALT)であるかどうか判定し、HALT命令であると(ステップS4/Yes)、PE1、PE2の動作を停止する(ステップS5)。
次に、ID1、ID2は、選択された命令をISEL1から入力し(ステップS6)、命令をデコードし命令実行のための各種制御信号を生成する(ステップS7)。そして、PE2は、IDで生成された制御信号でGPR2、ALU2、および、RAM2を制御することにより命令を実行する(ステップS8)。
一方、PE1においては、MODE=“0”であれば(ステップS9/Yes)、ID1からの制御信号(CPからの命令に基づく)に従い、GPR1のSELG1〜SELGrは、RAM1からのデータ、または、ALU1からのデータを選択し、それぞれ、FF1〜FFrに出力する(ステップS10)。次に、ID1からの制御信号(CPからの命令に基づく)に従い、RAM1が制御され命令が実行される(ステップS11)。
一方、MODE=1の場合は(ステップS9/No)、以下に示すように、次サイクルに実行される命令ワードの読み出しが行われる。すなわち、CTR1は、PCの値に1を加算した値でPCを更新し、更新されたPCの値を命令キャッシュに対するアクセス情報Aとし、命令キャッシュ(RAM1)をアクセスする(ステップS12)。
ここで、命令キャッシュに対するアクセス情報Aについて説明する。図4は、命令キャッシュに対するアクセス情報Aの内容を示す説明図である。図4を参照すると、アクセス情報Aの上位側ビット列がX、中間のビット列がY、そして、下位側ビット列がZである。
PE1のCTR1は、Yで指定されるFF1〜FFrのうちの一つであるFFyに格納されているキャッシュのタグとXとが一致するかどうかを比較することで、命令キャッシュのヒットミス判定を行う(ステップS13)。FFyの内容とXとが一致すれば、すなわち、命令キャッシュヒットであると(ステップS14/Yes)、CTR1は、YとZとを連結したビット列からなるアドレスでRAM1に対し命令リードのアクセスを行う(ステップS15)。
一方、FFyの内容とXとが一致しなければ、すなわち、命令キャッシュミスであると(ステップS14/No)、CTR1は、XとYとを連結したビット列を上位アドレス、Zのビット数分の下位アドレスがゼロである値をアクセスアドレスとして、CPに命令取り出し要求を出力する(ステップS16)。
次に、CTR1は、MEMからのキャッシュエントリのサイズ分だけの命令ワードをCPのARBT、および、BUSを介してPE1に読み込む制御を行う(ステップS17)。次に、CTR1は、命令キャッシュであるRAM1の対応するエントリにBUSからの命令ワードを書き込む(ステップS18)。さらに、CTR1は、SELGrを介してFFrに値Xを格納する(ステップS19)。
次に、CTR1は、再度、命令キャッシュに対するアクセス情報Aとし、命令キャッシュをアクセスし(ステップS20)、命令キャッシュのヒットミスを判定する(ステップS13)。今度は、FFyに値Xが格納されているので、命令キャッシュヒットとなり(ステップS14/Yes)、CTR1は、YとZとを連結したビット列からなるアドレスでRAM1に対し命令リードのアクセスを行う(ステップS15)。
これらの動作により、次サイクルで利用する命令ワードを命令キャッシュであるRAM1から読み出すことができる。また、MODEの値に応じてPE1とPE2とを同一命令を実行するSIMDモードで動作させたり、あるいは、PE1とPE2で一つのPUを構成してMIMDモードで動作させたりすることが可能となる。その他、本実施の形態をとることで、一部のPEをSIMDモードで動作させながら、同時に一部のPEはPUを形成させMIMDモードで動作させることも可能である。
なお、上記は、1ウェイ構成のキャッシュメモリとしてRAM1を利用した場合の動作例であるが、GPR1内の汎用レジスタ数に余裕があれば、多ウェイ構成のキャッシュメモリとして動作させることも可能である。
次に、本発明の第1の実施の形態のPE1の実施例について図面を参照して説明する。
図5は、本発明の第1の実施の形態のPE1の実施例の構成を示すブロック図である。図5を参照すると、PE1は、図2に示されていない制御セレクタCSEL1(以降、CSEL1と略称する)、および、比較回路CMP1(以降CMP1と略称する)を含む。図2のPE1にCSEL1、CMP1が存在しないというわけではなく、図2のPEの詳細な1例が図5に示すPE1である。
CSEL1は、SIMDモードでは、ID1からの制御信号(選択信号)を選択し、MIMDモードでは、CTR1からの制御信号(Y値に対応する選択信号)を選択する。CSEL1からの選択信号は、RSEL1の選択信号として使用される。
SIMDモードでは、RSEL1の出力は、ALU1、または、RAM1へのデータである。MIMDモードでは、RSEL1の出力は、命令キャッシュのタグであり、CMP1へ出力される。CMP1は、RSEL1からのタグと、CTR1からのX値と比較し、比較結果をCTR1に出力する。一致である比較結果は、命令キャッシュヒットを意味し、不一致である比較結果は、命令キャッシュミスを意味する。
次に、さらに具体的な実施例を用いて、実際の動作およびその効果を説明する。各PE1〜PEnは、16ビットの汎用レジスタFF1〜FF16と、それぞれ、32ビットワードで計4KワードのRAM1〜RAMnを持つSIMD型並列プロセッサである。
PE1は、PE2と比べ、FF1〜FF16に対応するSELG1〜SELG16と、RAM1に対応するSELAD1と、CPからの命令とRAM1からの読み出し命令ワードを選択するISEL1と、PCおよびモードレジスタMODEを含むCTR1と、RSEL1の選択を制御するCSEL1と、命令キャッシュのヒットミスを判定するCMP1が追加されている。
PE1とPE2とを合わせて、一つのMIMD動作可能なPUに動的に切り替えられるようにするための構成例は以下の通りである。
PE1の4KワードのRAM1は、命令キャッシュとして使用される。そして、16個のFF1〜FF16が、そのまま命令キャッシュのタグ格納用レジスタとして使用される。CTR1内のPCを28ビットとした場合に、FF1〜FF16のビット数16に合わせるように、28ビットの命令キャッシュアクセス情報Aの上位16ビット(=X)をキャッシュエントリのタグとし、命令キャッシュを16エントリ、256ワード/エントリ構成とする。そして、残る12(=28−16)ビットのうち上位4ビット(=Y)GSエントリ番号を指定し、下位8ビット(=Z)が、エントリ内ワード位置を指定する(図4参照)。
これにより、同時に16個の汎用レジスタをそれぞれ、命令キャッシュの各エントリに対応するタグの格納レジスタとして利用できる。こうした割り当ての下で、図3のフローチャートでのステップS12〜S20を実施した場合の動作は以下のようになる。
MODEの値が“1”の場合は、ISEL1は、RAM1からの読み出し結果を命令として選択する。命令ワードをサイクル毎に滞りなく、MEM上にあるプログラム領域から効率よく読み出せるようにするためには、命令キャッシュ制御を実現する必要がある。本実施例では、それを既存のPE1のハードウェア資源を流用することにより以下のようにして行う。
まず、Yの4ビット値によって指定される16本の汎用レジスタのうちの1本であるFFyの内容の16ビット値と、Xの16ビット値とを比較することにより、命令キャッシュのヒットミス判定が行われる。ここで、FFyを読み出すためのセレクタは通常、PE1のデータパス上に存在するRSEL1をそのまま利用すればよい。
FFyの内容とXとを比較した結果、一致した場合は、命令キャッシュのヒットを意味するので、YとZとを連結した12ビット列がRAM1へのアクセスアドレスとなる。アクセスアドレスは、SELAD1を介してRAM1へ出力され、命令キャッシュメモリとして機能するRAM1から、次サイクルの命令が読み出される。
一方、比較の結果、不一致となった場合は、Xの16ビットとYの4ビットとを連結した20ビットを上位とし、下位をゼロとする28ビットのアクセスアドレスが用いられる。CP1は、アクセスアドレスをCPに出力する。CPに接続されるMEMから、キャッシュエントリのワード数の256(Zが8ビットである)の命令ワードが、ABRT、BUSを介し、RAM1に出力される。
そして、MEMからの命令ワードは、対応するキャッシュエントリのアドレス位置(12ビットのうち上位4ビットがY、下位8ビット(=Zと同じビット数)がゼロであるアドレス位置を先頭とするRAM1の領域)へ書き込まれる。また、RSELGyを介し、FFyの内容がXの値に変更される。
次に、YとZを連結した12ビットのアクセスアドレスがSELAD1を介してRAM1に出力され、次サイクルの命令が、命令キャッシュメモリとして機能するRAM1から読み出される。
これにより、SIMD型並列プロセッサにおける2つのPE(ここではPE1とPE2)からなる一つのPUが、28ビットのメモリ空間からMIMD動作を実現するのに不可欠な命令をサイクル毎に読み出せるようになる。
また、SIMD動作時では、PE1がデータメモリとして利用していたRAM1、および、汎用レジスタとして利用していたFF1〜FF16が、命令キャッシュおよび命令キャッシュのタグ格納レジスタに流用される。このために追加されたISEL1、CTR1、SELAD1、CSEL1、および、CMP1は、ハードウェア的に少量である。
なお、上記実施例では、汎用レジスタ上で実現している各命令キャッシュのタグに有効ビットを付随させていない。この場合は、タグのゼロ値であれば当該タグが無効であると見なせばよい。この場合、SIMDモードからMIMDモードへ切り替える際に、まず、命令キャッシュエントリのタグ値をゼロクリアし、かつ、PCの値がゼロになるのをソフトウェア的に防ぐ必要がある。
これに対し、別の方法としては、タグ格納レジスタを1ビット拡張し、それを、当該タグが有効であるかどうかを示す情報、すなわち有効ビットとして利用する構成もある。その場合、有効ビットが“1”ならば、当該タグが有効であるとし、SIMDモードからMIMDモードへ切り替える際に、全タグの当該有効ビットを一斉にゼロにリセットすればよい。この場合、PCの値がゼロになるのをソフトウェア的に防ぐ必要はなくなる。
本実施例による作用効果を、従来技術のMIMD動作可能なPEをベースに混合モード並列プロセッサを構成する手法と比較して、以下に説明する。
すなわち、従来技術のまま、本発明の実施例の場合と同様に、28ビットのメモリ空間から命令ワードを読み出せるようにし、かつ4Kワードの命令キャッシュを利用できるようにするためには、最初から各PEに、もともと存在する4Kワードのメモリに加え、もう一つの4Kワードの命令ワード格納用メモリを追加する必要がある。かつ、本発明の実施例の場合と同様に命令キャッシュ制御を行えるようにするために、汎用レジスタセットとは別に、命令キャッシュのタグ格納用のレジスタとして16ビット×16本=256ビットのフリップフロップを追加する必要がある。
一般に、一つのSIMD動作を行うPEの大半の面積を占有しているのが、汎用レジスタ(資源)とメモリ(資源)であることを考慮すると、従来技術に基づく混合モード並列プロセッサの各PEは、本発明と比べPE毎の回路規模が2倍ほどに膨らむ計算となる。
したがって、SIMDモード時のPE数が同一である混合モード並列プロセッサで考えると、従来技術に基づくものは本発明に基づくものと比べると、2倍の回路規模が必要でありながらピーク性能はSIMD動作時では本発明と同等程度である。なお、MIMD動作時では従来技術に基づくものは本発明に基づくものと比べると2倍のピーク性能が得られるが、回路規模が約2倍であることを考えると、コスト性能比の観点では本発明と比べ従来技術の優位性は認められない。
本発明の本実施例の第1の効果は、少ない回路規模の増加のみで、SIMDモードのみをサポートする既存の単純なSIMD型並列プロセッサを、適用可能な問題の範囲がより広い、MIMD型並列プロセッサに動的に再構成できるようになることである。
その理由は、SIMD動作する既存のPE複数個を一つのグループとして、個々のグループ内での既存のメモリ資源やレジスタ資源を命令キャッシュメモリや命令キャッシュエントリ毎タグ格納用スペースとして再利用できるように構成することにより、MIMD動作時に必要となるそれらの回路規模が大きい部品の新規追加が不要となるためである。
本発明の実施例の第2の効果は、SIMD処理タスクとMIMD処理タスクの両方を共に含むアプリケーションを、従来の混合モード並列プロセッサと比べより効果的に処理性能を向上させることができるようになることである。
その理由は、SIMD処理タスクとMIMD処理タスクの両方を共に含むアプリケーションでは通常、後者よりも前者の方が高い並列性を持つが、同程度の回路規模の下では本発明の混合モード並列プロセッサの方が既存のMIMD型並列プロセッサをベースとした混合モード並列プロセッサと比べ、より高いSIMD型並列動作を実現できるためである。
以上により、本発明の実施例の同じ仕様のプロセッサ構成とした場合では、本発明の構成は、従来技術と比べ、MIMD動作時のコスト性能比を維持しつつ、SIMD動作時のコスト性能比を2倍程度高められるという効果が得られる。
また、S個のSIMD動作するPEで一つのMIMD動作するPUを構成する場合、PU内では元々それぞれのPEに属する演算器の一部が、そのまま利用されずに存在する。
それらの演算器を連結させて、たとえば、除算器や超越関数演算器といったより複雑な演算器を構成し、PUから利用できるようにすることで、PUの演算性能を一つのPEのそれよりも、さらに向上させるように工夫することが可能である。
次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。図6は、本発明の第2の実施の形態の混合モード並列プロセッサシステムPSの構成を示すブロック図である。図6を参照すると、本発明の第2の実施の形態の混合モード並列プロセッサシステムPSは、同一ハードウェア構成のPE1とPE2を備える。また、PE1は、本発明の第1の実施の形態のPE1と同様に動作する。PE1のISEL1の出力は、PE2のISEL1の入力となる。PE2のISEL1は、常に、PE1のISEL1からの出力を選択する。
また、PE2では、CTR1が、PE1のISEL1からの出力である命令ワードを使用して動作するように制御を行う。たとえば、PE1、PE2のCTR1にクランプ端子を設け、1クランプである場合には、PE1として動作し、0クランプである場合には、PE2として動作する構成が可能である。
上記構成により、本発明の第2の実施の形態は、同一の構成のPE1、PE2を製作すればよいので、本発明の第2の実施の形態は、原価低減が可能となるという効果を持つ。
また、上記では、本発明の第1の実施の形態、本発明の第2の実施の形態をマイクロプログラムによるファームウェア制御とすることが可能である。
本発明は、SIMD動作とMIMD動作とを動的に切り替え可能な混合モード並列プロセッサを低コストで実現する用途に適用できる。
以上、本発明を上記実施例に即して説明したが、本発明は上記実施例の構成にのみ制限されるものでなく、本発明の範囲内で当業者であればなし得るであろう各種変形、修正を含むことは勿論である。

Claims (15)

  1. N個のプロセシングエレメントを備え、
    SIMD動作時には、N個の前記プロセシングエレメントが並列動作し、
    MIMD動作時には、N個の前記プロセシングエレメントは、それぞれがS個のプロセシングエレメントを含むM(=N÷S)組(S、Mは2以上の自然数)のプロセシングユニットにグループ化され、M組の前記プロセシングユニット同士、および、S個の前記プロセシングエレメント同士がそれぞれ並列動作し、
    MIMD動作時には、前記プロセシングユニットのメモリ資源の一部が、命令キャッシュメモリとして動作し、前記プロセシングユニットの汎用レジスタ資源が、命令キャッシュのタグ格納用領域として動作することを特徴とする混合モード並列プロセッサシステム。
  2. 前記プロセシングユニットが、命令キャッシュ制御、命令シーケンス制御を行う一つの制御回路を含むことを特徴とする請求項記載の混合モード並列プロセッサシステム。
  3. MIMD動作時には、M組の前記プロセシングユニットの各々において、
    S個の前記プロセシングエレメントに属するS個の前記メモリ資源のうちP個(P<S)が命令キャッシュメモリ、残りのS−P個のメモリ資源がデータメモリあるいはデータキャッシュとして動作し、
    S個の前記プロセシングエレメントにそれぞれ属するSセットの前記汎用レジスタ資源のうち、1セットがそのまま対応する1つの前記プロセシングユニットの前記汎用レジスタ資源として動作し、残るS−1セットのうちTセット(T<S−1)、または、予め定められた一定数が、命令キャッシュのタグ格納用資源として動作し、残りはデータキャッシュを利用する場合はデータキャッシュのタグ格納用資源として動作することを特徴とする請求項または記載の混合モード並列プロセッサシステム。
  4. 全体を制御する制御プロセシングエレメントを備え、
    M組の前記プロセシングユニットの各々において、
    S個の前記プロセシングエレメントのうち、MIMD動作時に前記命令キャッシュメモリとして動作するメモリ資源を有する1つの前記プロセシングエレメントに対応させて、
    前記制御回路と、
    前記制御プロセシングエレメントからの命令と、前記命令キャッシュメモリからの命令のどちらかを選択する命令流選択セレクタと、
    を含み、
    MIMD動作時には、S個の前記プロセシングエレメントのうち、前記命令キャッシュメモリを含まない残りの前記プロセシングエレメントは、前記命令流選択セレクタからの命令を入力し実行することを特徴とする請求項または記載の混合モード並列プロセッサシステム。
  5. 全体を制御する制御プロセシングエレメントを備え、
    M組の前記プロセシングユニットの各々において、
    S個の前記プロセシングエレメントの各々が、
    前記制御回路と、
    命令流選択セレクタと、
    を有し、
    MIMD動作時には、S個の前記プロセシングエレメントのうち、前記命令キャッシュメモリを含む1つの前記プロセシングエレメントの前記命令流選択セレクタが、前記制御プロセシングエレメントからの命令と、前記命令キャッシュメモリからの命令のどちらかを選択し、前記命令キャッシュメモリを含まない残りの前記プロセシングエレメントは、前記命令キャッシュメモリを含む1つの前記プロセシングエレメントの前記命令流選択セレクタからの命令を入力し実行することを特徴とする請求項記載の混合モード並列プロセッサシステム。
  6. N個のプロセシングエレメントを備え、MIMD動作時にはそれぞれS個のプロセシングエレメントを含むM(=N÷S)組(S、Mは2以上の自然数)のプロセシングユニットにグループ化される混合モード並列プロセッサシステムにおける混合モード並列プロセッサ方法であって、
    SIMD動作時には、N個のプロセシングエレメントが並列動作する手順と、
    MIMD動作時には、M組の前記プロセシングユニット同士、および、S個の前記プロセシングエレメント同士がそれぞれ並列動作する手順と、
    を含み、
    MIMD動作時には、前記プロセシングユニットのメモリ資源の一部が、命令キャッシュメモリとして動作する手順と、
    前記プロセシングユニットの汎用レジスタ資源が、命令キャッシュのタグ格納用領域として動作する手順と、
    を含むことを特徴とする混合モード並列プロセッサ方法。
  7. 前記プロセシングユニットの1つの制御回路が、命令キャッシュ制御、命令シーケンス制御を行う手順を含むことを特徴とする請求項記載の混合モード並列プロセッサ方法。
  8. MIMD動作時には、M組の前記プロセシングユニットの各々において、
    S個の前記プロセシングエレメントにそれぞれ属するS個の前記メモリ資源のうちP個(P<S)が、命令キャッシュメモリ、残りのS−P個のメモリ資源がデータメモリあるいはデータキャッシュとして動作する手順と、
    S個の前記プロセシングエレメントにそれぞれ属するSセットの前記汎用レジスタ資源のうち、1セットがそのまま前記プロセシングユニットの前記汎用レジスタ資源として動作する手順と、
    残るS−1セットのうちTセット(T<S−1)、または、予め定められた一定数が、命令キャッシュのタグ格納用資源として動作し、残りはデータキャッシュを利用する場合はデータキャッシュのタグ格納用資源として動作する手順と、
    を含むことを特徴とする請求項または記載の混合モード並列プロセッサ方法。
  9. 前記プロセシングユニットにおいて、前記命令キャッシュメモリを含む1つの前記プロセシングエレメントの命令流選択セレクタが、全体を制御する制御プロセシングエレメントからの命令と、前記命令キャッシュメモリからの命令のどちらかを選択する手順と、
    MIMD動作時には、前記命令キャッシュメモリを含まない残りの前記プロセシングエレメントは、前記命令流選択セレクタからの命令を入力し実行する手順と、
    を含むことを特徴とする請求項のいずれか1項に記載の混合モード並列プロセッサ方法。
  10. MIMD動作時には、前記プロセシングユニットにおいて、前記命令キャッシュメモリを含む1つの前記プロセシングエレメントの前記命令流選択セレクタが、全体を制御する制御プロセシングエレメントからの命令と前記命令キャッシュメモリからの命令のどちらかを選択する手順と、
    前記命令キャッシュメモリを含まない残りの前記プロセシングエレメントが、前記命令キャッシュメモリを含む1つの前記プロセシングエレメントの前記命令流選択セレクタからの命令を入力し実行する手順と、
    を含むことを特徴とする請求項記載の混合モード並列プロセッサ方法。
  11. N個のプロセシングエレメントを備え、MIMD動作時にはそれぞれS個のプロセシングエレメントを含むM(=N÷S)組(S、Mは2以上の自然数)のプロセシングユニットにグループ化される混合モード並列プロセッサシステムにおける混合モード並列プロセッサプログラムであって、
    前記混合モード並列プロセッサシステムに、SIMD動作時にはN個の前記プロセシングエレメントが並列動作する手順と、
    MIMD動作時にはM組の前記プロセシングユニット同士、および、S個の前記プロセシングエレメント同士がそれぞれ並列動作する手順と、を実行させ、
    MIMD動作時には、前記プロセシングユニットのメモリ資源の一部に、命令キャッシュメモリとして動作する手順と、
    前記プロセシングユニットの汎用レジスタ資源に、命令キャッシュのタグ格納用領域として動作する手順を実行させることを特徴とする混合モード並列プロセッサプログラム。
  12. 前記プロセシングユニットの1つの制御回路に、命令キャッシュ制御、命令シーケンス制御を行う手順を実行させる、ことを特徴とする請求項11記載の混合モード並列プロセッサプログラム。
  13. MIMD動作時には、M組の前記プロセシングユニットにおいて、S個の前記プロセシングエレメントにそれぞれ属するS個の前記メモリ資源のうちP個(P<S)が命令キャッシュメモリ、残りのS−P個のメモリ資源がデータメモリあるいはデータキャッシュとして動作する手順と、
    S個の前記プロセシングエレメントにそれぞれ属するSセットの前記汎用レジスタ資源のうち、1セットがそのまま前記プロセシングユニットの前記汎用レジスタ資源として動作する手順と、
    残るS−1セットのうちTセット(T<S−1)、または、予め定められた一定数が命令キャッシュのタグ格納用資源として動作し、残りはデータキャッシュを利用する場合はデータキャッシュのタグ格納用資源として動作する手順と、
    を前記混合モード並列プロセッサシステムに実行させることを特徴とする請求項16、または、12記載の混合モード並列プロセッサプログラム。
  14. それぞれが、複数のプロセシングエレメントを含む複数のプロセッシングユニットを有し、
    前記プロセッシングユニットは、前記プロセッシングユニットに属する前記複数のプロセシングエレメントに対応させて少なくとも1つの命令流選択セレクタと、
    命令キャッシュ制御、命令シーケンス制御を行う少なくとも一つの制御回路と、
    を備え、
    MIMDモードでの動作時、
    前記プロセッシングユニットにおいて、
    前記制御回路は、少なくとも1つのプロセッシングエレメントのメモリとレジスタ資源とをそれぞれ前記プロセッシングユニットの命令キャッシュと命令キャッシュのタグ格納用領域として用い、前記1つのプロセッシングエレメントはMIMD命令発行に必要なハードウェア要素として機能し、
    前記命令流選択セレクタは、前記制御回路からの制御に基づき、前記1つのプロセッシングエレメントの前記メモリを命令キャッシュとし、該命令キャッシュから読み出された命令を選択し、
    前記命令流選択セレクタで選択された命令は、前記プロセッシングユニット内の残りのプロセッシングエレメントの少なくとも1つに供給され、前記残りのプロセッシングエレメントの少なくとも1つは命令指定による演算処理を行うデータパスとして機能し、
    SIMDモードでの動作時には、
    前記プロセッシングユニットにおいて、
    前記命令流選択セレクタは、前記制御回路からの制御に基づき、制御プロセッシングエレメントからの命令を選択し、複数のプロセッシングエレメントには、同一の命令が与えられ、並列処理が行われる、ことを特徴とする混合モード並列プロセッサシステム。
  15. 前記プロセッシングユニットが、
    少なくとも第1、第2のプロセッシングエレメントを備え、
    前記第1、第2のプロセッシングエレメントは、
    命令デコーダと、
    演算ユニットと、
    書き込み読み出し可能なメモリと、
    それぞれが前記演算ユニットの出力と前記メモリの出力の一方を選択するセレクタ群と、
    前記セレクタ群の出力を受けるレジスタ群と、
    前記レジスタ群の出力の中から前記演算ユニットへ供給する出力を選択するセレクタと、
    をそれぞれ備え、
    前記第1のプロセッシングエレメントに対応させて、
    前記命令流選択セレクタと、
    前記制御回路と、
    を備え、
    前記制御回路は、前記制御プロセッシングエレメントによって設定され、SIMDとMIMDのいずれのモードで動作するかを決めるモードレジスタと、プログラムカウンタとを含み、
    MIMDモードでの動作時、
    前記第1のプロセッシングエレメントの前記メモリと前記レジスタ群の一部は、命令キャッシュと命令キャッシュのタグ格納領域として機能し、
    前記命令流選択セレクタは、前記制御回路の制御に基づき、前記第1のプロセッシングエレメントの前記メモリから読み出された命令を選択し、
    前記第1、第2のプロセッシングエレメントの前記命令デコーダは、それぞれ、前記命令流選択セレクタで選択された命令を入力して該命令をデコードし、命令実行のための制御信号を生成し、
    前記第2のプロセッシングエレメントは、前記第2のプロセッシングエレメントの前記命令デコーダで生成された制御信号にしたがってレジスタ群、演算ユニット、メモリを制御して命令を実行し、
    前記制御回路は、アドレス情報を生成し、該アドレス情報のタグフィールドと前記第1のプロセッシングエレメントの前記レジスタ群の1部のタグ情報とを比較して命令キャッシュのヒットミス判定を行い、命令キャッシュのヒット時には、前記第1のプロセッシングエレメントの前記メモリから命令の読み出しを行い、命令キャッシュミス時には、前記制御プロセッシングエレメントに要求して得た命令を前記第1のプロセッシングエレメントの前記メモリに書き込み、該メモリから命令の読み出しを行い、
    SIMDモードでの動作時、前記命令流選択セレクタは、前記制御回路の制御に基づき、前記制御プロセッシングエレメントから放送される命令を選択し、
    前記第1、第2のプロセッシングエレメントは、同一の命令をデコードし演算処理を行う、ことを特徴とする請求項14記載の混合モード並列プロセッサシステム。
JP2008530852A 2006-08-23 2007-08-09 混合モード並列プロセッサシステム、混合モード並列プロセッサ方法、および、混合モード並列プロセッサプログラム Expired - Fee Related JP4424443B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2006225963 2006-08-23
JP2006225963 2006-08-23
PCT/JP2007/065620 WO2008023576A1 (fr) 2006-08-23 2007-08-09 Élément de traitement, système de processeur parallèle en mode mixte, procédé pour élément de traitement, procédé pour processeur parallèle en mode mixte, programme pour élément de traitement, et programme pour processeur parallèle en mode mixte

Publications (2)

Publication Number Publication Date
JPWO2008023576A1 JPWO2008023576A1 (ja) 2010-01-07
JP4424443B2 true JP4424443B2 (ja) 2010-03-03

Family

ID=39106662

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008530852A Expired - Fee Related JP4424443B2 (ja) 2006-08-23 2007-08-09 混合モード並列プロセッサシステム、混合モード並列プロセッサ方法、および、混合モード並列プロセッサプログラム

Country Status (6)

Country Link
US (3) US7853775B2 (ja)
EP (1) EP2056212B1 (ja)
JP (1) JP4424443B2 (ja)
KR (1) KR100990526B1 (ja)
CN (1) CN101379481A (ja)
WO (1) WO2008023576A1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7474488B2 (en) * 2005-08-30 2009-01-06 International Business Machines Corporation Magnetic head, tape drive system, and method
US7979674B2 (en) * 2007-05-16 2011-07-12 International Business Machines Corporation Re-executing launcher program upon termination of launched programs in MIMD mode booted SIMD partitions
US7814295B2 (en) * 2007-05-18 2010-10-12 International Business Machines Corporation Moving processing operations from one MIMD booted SIMD partition to another to enlarge a SIMD partition
US7831802B2 (en) * 2007-07-19 2010-11-09 International Business Machines Corporation Executing Multiple Instructions Multiple Data (‘MIMD’) programs on a Single Instruction Multiple Data (‘SIMD’) machine
US7831803B2 (en) * 2007-07-19 2010-11-09 International Business Machines Corporation Executing multiple instructions multiple date (‘MIMD’) programs on a single instruction multiple data (‘SIMD’) machine
KR100960148B1 (ko) * 2008-05-07 2010-05-27 한국전자통신연구원 데이터 프로세싱 회로
US8135941B2 (en) * 2008-09-19 2012-03-13 International Business Machines Corporation Vector morphing mechanism for multiple processor cores
US8719551B2 (en) 2009-04-22 2014-05-06 Panasonic Corporation Processor with arbiter sending simultaneously requested instructions from processing elements in SIMD / MIMD modes
GB0907559D0 (en) * 2009-05-01 2009-06-10 Optos Plc Improvements relating to processing unit instruction sets
US9535876B2 (en) 2009-06-04 2017-01-03 Micron Technology, Inc. Conditional operation in an internal processor of a memory device
JP5495707B2 (ja) * 2009-10-16 2014-05-21 三菱電機株式会社 並列信号処理装置
KR101359717B1 (ko) 2010-11-08 2014-02-07 한국전자통신연구원 에너지 타일 프로세서
CN102200961B (zh) * 2011-05-27 2013-05-22 清华大学 一种动态可重构处理器内子单元的扩展方法
JP2012252374A (ja) * 2011-05-31 2012-12-20 Renesas Electronics Corp 情報処理装置
US9329834B2 (en) 2012-01-10 2016-05-03 Intel Corporation Intelligent parametric scratchap memory architecture
KR101603752B1 (ko) 2013-01-28 2016-03-28 삼성전자주식회사 멀티 모드 지원 프로세서 및 그 프로세서에서 멀티 모드를 지원하는 방법
GB2516995B (en) * 2013-12-18 2015-08-19 Imagination Tech Ltd Task execution in a SIMD processing unit
JP2015176245A (ja) 2014-03-13 2015-10-05 株式会社東芝 情報処理装置及びデータ構造
JP6396715B2 (ja) * 2014-08-07 2018-09-26 ルネサスエレクトロニクス株式会社 データ処理装置
JP2016057763A (ja) 2014-09-08 2016-04-21 株式会社東芝 キャッシュ装置、及びプロセッサ
US9928076B2 (en) * 2014-09-26 2018-03-27 Intel Corporation Method and apparatus for unstructured control flow for SIMD execution engine
RU2571376C1 (ru) * 2014-11-21 2015-12-20 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Способ и устройство для параллельной обработки цифровой информации в вычислительной системе
US9684602B2 (en) 2015-03-11 2017-06-20 Kabushiki Kaisha Toshiba Memory access control device, cache memory and semiconductor device
KR20220139304A (ko) * 2019-12-30 2022-10-14 스타 알리 인터내셔널 리미티드 구성 가능한 병렬 계산을 위한 프로세서

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5916071A (ja) 1982-07-19 1984-01-27 Toshiba Corp 並列処理システム
US4891787A (en) * 1986-12-17 1990-01-02 Massachusetts Institute Of Technology Parallel processing system with processor array having SIMD/MIMD instruction processing
US5197140A (en) * 1989-11-17 1993-03-23 Texas Instruments Incorporated Sliced addressing multi-processor and method of operation
US5239654A (en) * 1989-11-17 1993-08-24 Texas Instruments Incorporated Dual mode SIMD/MIMD processor providing reuse of MIMD instruction memories as data memories when operating in SIMD mode
JP2836875B2 (ja) 1989-12-27 1998-12-14 株式会社クラレ イミド化アクリル樹脂の製造方法
JPH04291659A (ja) * 1991-03-20 1992-10-15 Hitachi Ltd 並列コンピュータシステムおよびその動作方法
US5361367A (en) * 1991-06-10 1994-11-01 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Highly parallel reconfigurable computer architecture for robotic computation having plural processor cells each having right and left ensembles of plural processors
JPH0520283A (ja) 1991-07-11 1993-01-29 Mitsubishi Electric Corp 並列データ処理装置
CA2073516A1 (en) 1991-11-27 1993-05-28 Peter Michael Kogge Dynamic multi-mode parallel processor array architecture computer system
JP2642039B2 (ja) * 1992-05-22 1997-08-20 インターナショナル・ビジネス・マシーンズ・コーポレイション アレイ・プロセッサ
JPH0668053A (ja) 1992-08-20 1994-03-11 Toshiba Corp 並列計算機
US5475850A (en) * 1993-06-21 1995-12-12 Intel Corporation Multistate microprocessor bus arbitration signals
JP3199205B2 (ja) 1993-11-19 2001-08-13 株式会社日立製作所 並列演算装置
US5420809A (en) * 1993-11-30 1995-05-30 Texas Instruments Incorporated Method of operating a data processing apparatus to compute correlation
WO1995028686A1 (en) * 1994-04-15 1995-10-26 David Sarnoff Research Center, Inc. Parallel processing computer containing a multiple instruction stream processing architecture
US5680597A (en) * 1995-01-26 1997-10-21 International Business Machines Corporation System with flexible local control for modifying same instruction partially in different processor of a SIMD computer system to execute dissimilar sequences of instructions
US6766437B1 (en) * 2000-02-28 2004-07-20 International Business Machines Corporation Composite uniprocessor
US7395408B2 (en) 2002-10-16 2008-07-01 Matsushita Electric Industrial Co., Ltd. Parallel execution processor and instruction assigning making use of group number in processing elements
JP4184224B2 (ja) * 2002-10-16 2008-11-19 松下電器産業株式会社 並列実行プロセッサ、命令割当方法
JP4291659B2 (ja) 2003-09-30 2009-07-08 パナソニック株式会社 送信装置及び送信方法
US20070083870A1 (en) * 2005-07-29 2007-04-12 Tomochika Kanakogi Methods and apparatus for task sharing among a plurality of processors
US7730280B2 (en) * 2006-06-15 2010-06-01 Vicore Technologies, Inc. Methods and apparatus for independent processor node operations in a SIMD array processor
JP4232838B2 (ja) * 2007-03-29 2009-03-04 日本電気株式会社 再構成可能なsimd型プロセッサ

Also Published As

Publication number Publication date
KR20080083342A (ko) 2008-09-17
KR100990526B1 (ko) 2010-10-29
US20110138151A1 (en) 2011-06-09
CN101379481A (zh) 2009-03-04
US20110047348A1 (en) 2011-02-24
WO2008023576A1 (fr) 2008-02-28
JPWO2008023576A1 (ja) 2010-01-07
US7853775B2 (en) 2010-12-14
EP2056212B1 (en) 2013-04-10
US8051273B2 (en) 2011-11-01
US8112613B2 (en) 2012-02-07
EP2056212A4 (en) 2011-07-27
EP2056212A1 (en) 2009-05-06
US20090049275A1 (en) 2009-02-19

Similar Documents

Publication Publication Date Title
JP4424443B2 (ja) 混合モード並列プロセッサシステム、混合モード並列プロセッサ方法、および、混合モード並列プロセッサプログラム
US10983800B2 (en) Reconfigurable processor with load-store slices supporting reorder and controlling access to cache slices
US10223125B2 (en) Linkable issue queue parallel execution slice processing method
US5872987A (en) Massively parallel computer including auxiliary vector processor
JP4156794B2 (ja) iVLIWのPE間通信を用いた効率的な同期MIMD動作のための方法および装置
US10678541B2 (en) Processors having fully-connected interconnects shared by vector conflict instructions and permute instructions
KR19980069855A (ko) 넓은 데이터 폭의 프로세서에서 다기능 데이타 정렬기
JPH1165844A (ja) パイプラインバイパス機能を有するデータ処理装置
US20060095746A1 (en) Branch predictor, processor and branch prediction method
US11314516B2 (en) Issuing instructions based on resource conflict constraints in microprocessor
EP1354267A2 (en) A superscalar processor having content addressable memory structures for determining dependencies
US6654870B1 (en) Methods and apparatus for establishing port priority functions in a VLIW processor
US20040015682A1 (en) Application registers
US5812845A (en) Method for generating an object code for a pipeline computer process to reduce swapping instruction set
US8046569B2 (en) Processing element having dual control stores to minimize branch latency
JPH08263289A (ja) 複数命令流パイプライン計算機
US6704855B1 (en) Method and apparatus for reducing encoding needs and ports to shared resources in a processor
JP5708634B2 (ja) Simdプロセッサ
JPH06149563A (ja) データ処理装置
JP2012168888A (ja) プロセッサ
JPH10187444A (ja) データ処理装置及び方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091026

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091117

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091130

R150 Certificate of patent or registration of utility model

Ref document number: 4424443

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121218

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121218

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131218

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees