JP3985829B2 - プロセッサ - Google Patents

プロセッサ Download PDF

Info

Publication number
JP3985829B2
JP3985829B2 JP2005277593A JP2005277593A JP3985829B2 JP 3985829 B2 JP3985829 B2 JP 3985829B2 JP 2005277593 A JP2005277593 A JP 2005277593A JP 2005277593 A JP2005277593 A JP 2005277593A JP 3985829 B2 JP3985829 B2 JP 3985829B2
Authority
JP
Japan
Prior art keywords
information
calculation
execution
intermediate data
output
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.)
Active
Application number
JP2005277593A
Other languages
English (en)
Other versions
JP2007087264A (ja
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 ソナック株式会社
Priority to JP2005277593A priority Critical patent/JP3985829B2/ja
Priority to PCT/JP2006/318920 priority patent/WO2007034936A1/ja
Publication of JP2007087264A publication Critical patent/JP2007087264A/ja
Application granted granted Critical
Publication of JP3985829B2 publication Critical patent/JP3985829B2/ja
Active 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
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Description

本発明は、プログラムの実行を行う実行計算部を1つ以上備え、実行計算部の数に係らず同一プログラムを利用することができるプロセッサと、該プロセッサ用の実行可能プログラムを生成するコンパイラ装置に関する。
処理速度の向上を目的とし、プログラムの実行を行う実行計算部を複数備えたプロセッサが各種提案され、実用化されている(例えば、非特許文献1参照。)。非特許文献1によると、オペレーティングシステムが、実行可能プログラムをプロセスや、スレッドに分解して複数ある実行計算部に処理を割り当てることで、1つの実行可能プログラムを複数の実行計算部で並行して処理させることを可能としている。
また、非特許文献2には、マトリックス状に配置された演算器の、各演算器での処理内容及び演算器間の接続をプログラミングにより設定することでデータ処理を実行するプロセッサについて記載がされている。これらプロセッサに対する実行可能プログラムの作成には、実装されている演算器数を考慮する必要がある。即ち、ある数の演算器を実装しているプロセッサをターゲットとして作成された実行可能プログラムと同一の処理を、例えば、ターゲットのプロセッサより演算器数の少ないプロセッサで実行するためには、再度、演算器数を考慮したうえでプログラムの修正を行う必要がある。
中森章、"マイクロプロセッサ・アーキテクチャ入門"、CQ出版社、2004年41日発行、p.231‐p.233 デザインウェーブマガジン、CQ出版社、2004年8月号、p.24‐p.29
従って、本発明は、プログラムの実行を行う実行計算部の搭載数によらず、オペレーティングシステムなしに、同一実行可能プログラムの使用が可能なプロセッサを提供することを目的とする。また、該プロセッサ用のコンパイラ装置及びプログラムを提供することも目的とする。
本発明におけるプロセッサによれば、
入力及び出力のためのポートを1つ以上有する、複数の実行計算手段を備え、それぞれが1つの実行計算手段での処理内容を規定する複数の演算情報と、演算情報間での中間データの入出力関係を規定する接続情報とを含む実行可能プログラムを、1回以上のステージに分割して実行するプロセッサであって、中間データ記憶手段と、各実行計算手段について、各ポートが接続可能な中間データ記憶手段及び/又は他の実行計算手段についての情報である結線情報を保持する制御手段とを有し、各実行計算手段は、少なくとも1つの他の実行計算手段と接続可能であり、制御手段は、各ステージにおいて、実行計算手段の数、結線情報及び接続情報に基づき、該ステージにおいて実行する演算情報を決定し、演算情報を実行する実行計算手段は、実行する演算情報が入出力する中間データのうち、入出力先の演算情報が同一ステージにおいて実行されているものについては、入出力先の演算情報を実行する実行計算手段と直接入出力を行い、同一ステージにおいて実行されないものについては、中間データ記憶手段との間で入出力することを特徴とする。
本発明のプロセッサにおける他の実施形態によれば、
実行計算手段は、各ポートに対応して設けられ、接続している中間データ記憶手段及び/又は他の実行計算手段から、1つの中間データ記憶手段又は他の実行計算手段を選択して対応するポートに接続する選択手段を備え、制御手段は、各ステージにおいて、実行する演算情報及び接続情報に基づき、制御情報を出力し、選択手段は、該制御情報に従い、中間データ記憶手段又は他の実行計算手段を選択することも好ましい。
また、本発明のプロセッサにおける他の実施形態によれば、
実行計算手段は、中間データを入出力させるポートの選択が可能であり、制御手段は、各ステージにおいて、実行する演算情報及び接続情報に基づき、中間データを入出力させるポートの選択を行うことも好ましい。
実行可能プログラムは、それぞれが1つの実行計算部で実行する処理内容を規定する演算情報と、演算情報間での中間データの入出力関係を規定する接続情報を有し、制御手段が、自プロセッサが搭載している実行計算手段の数、実行計算手段間及び実行計算手段と中間データ記憶手段間の結線情報並びに接続情報に基づき、各ステージで実行する演算情報を決定し、各ステージで実行されない演算情報との中間データを中間データ記憶手段に保存及び/又は中間データ記憶手段から取得させることで、搭載している実行計算部手段の数によらず同一の実行可能プログラムを使用することが可能となる。
実行計算手段は、ポートごとに選択手段を有し、接続先となる実行計算手段又は中間データ記憶手段の切替えを行う。また、実行計算手段に、中間データを入出力させる入出力ポートの選択機能を持たせることで、実行する演算情報の選択の制限が緩和される。
本発明を実施するための最良の実施形態について、以下では図面を用いて詳細に説明する。
図1は、本発明によるプロセッサのブロック図である。図1によると、プロセッサは、1つ以上の実行計算部1と、中間データ記憶部2と、制御部3とを備えている。実行計算部1は、他の実行計算部1及び/又は中間データ記憶部2とライン5により接続されている。尚、実行計算部1間の接続は、例示であり図1の構成に限定されるものではない。また、制御部3は、図示しないバスにより実行計算部1及び中間データ記憶部2と接続しており、プロセッサ外部にある図示しない主記憶装置が保存する実行可能プログラムの、実行計算部1へのロードを制御する機能を有する。
図2は、実行計算部1のブロック図である。図2によると、実行計算部1は、演算部100と、1つ以上の入力側マルチプレクサ101と、1つ以上の出力側マルチプレクサ102と、入出力制御部103とを備えている。
演算部100は、例えば、RISC(Reduced Instruction Set Computer)コア、VLIW(Very Long Instruction Word)コア又は所定数のマトリックス状に配列された演算器からなり、1つ以上の入力ポート及び出力ポートを備え、図4に示す実行可能プログラム6の演算情報602がロードされ、演算情報602に従った処理を実行する機能を有する。尚、図1に示すプロセッサ内に設けられる複数の実行計算部1は、総て同一の演算部100を有する。また、演算部100の入力ポート及び出力ポートを、実行計算部1の入力ポート及び出力ポートとも呼ぶ。
入力側マルチプレクサ101は、演算部100の入力ポートごとに設けられ、入出力制御部103からの選択信号104に基づき、他の実行計算部1の出力側マルチプレクサ102及び/又は中間データ記憶部2と接続されている複数のライン5から1つのライン5を選択して演算部100の対応する入力ポートに接続する機能を有する。
出力側マルチプレクサ102は、演算部100の出力ポートごとに設けられ、入出力制御部103からの選択信号104に基づき、他の実行計算部1の入力側マルチプレクサ101及び/又は中間データ記憶部2と接続されている複数のライン5から1つのライン5を選択して演算部100の対応する出力ポートに接続する機能を有する。
入出力制御部103は、制御部3からの制御情報に基づき、各入力側マルチプレクサ101及び出力側マルチプレクサ102に対し、選択するライン5を決定する選択信号104を出力する。
図1に戻り、中間データ記憶部2は、制御部3からの制御情報に基づき、実行計算部1が出力する中間データを一時的に記憶し、また、一時的に記憶した中間データを実行計算部1に出力する機能を有する。
制御部3は、結線情報、即ち、それぞれの実行計算部1について、各入力及び/又は出力ポートが接続可能な中間データ記憶部2及び/又は実行計算部1の情報を有し、図4に示す実行可能プログラム6を、図示しない主記憶装置から読み込み、実行計算部1の数と、結線情報と、実行可能プログラム6の接続情報601に基づき、1回以上のステージに分割して処理するように実行計算部1及び中間データ記憶部2を制御する。制御部3についてのより詳細な説明は後述する。
図3は、本発明によるプロセッサの構成例を示す図であり、簡単のため制御部3は省略している。図3(a)では、4つの実行計算部10〜13が設けられており、実行計算部10〜13は、他の総ての実行計算部及び中間データ記憶部2と双方向で接続している。また、図3(b)では、2つの実行計算部10及び11が設けられており、実行計算部10及び11は、中間データ記憶部2とは双方向に、実行計算部10と11間は、実行計算部10から実行計算部11方向のみで接続している。更に、図3(c)においては、実行計算部10が1つのみ設けられており、中間データ記憶部2と双方向で接続している。尚、実行計算部10〜13及び図1の実行計算部1は、同じものであり、ライン5は1つ以上のラインをまとめて表したものである。
図4は、本発明によるコンパイラ装置が出力する実行可能プログラム6の構造を示す図である。本発明によるコンパイラ装置は、ソースプログラムを解析して実行計算部1の実行可能プログラム6を出力する。このとき、コンパイラ装置は、実際に出力した実行可能プログラム6を実行するプロセッサが搭載している実行計算部1の数に係らず、必要な実行計算部1の数を算出して、前記算出した数に基づき実行可能プログラム6を生成する。
図4(a)によると、本発明によるプロセッサが実行する実行可能プログラム6は、複数の実行計算情報60からなる。各実行計算情報60の演算情報602は、実行計算部1にロードされて実行される命令であり、接続情報601は同一実行計算情報60内にある演算情報602の、他の実行計算部60の演算情報602との中間データの入出力関係を規定する情報である。即ち、演算情報602が実行計算部1にロードされて実行されたときに、その実行計算部1が中間データを入出力するポート番号と、相手側となる実行計算部1で実行されている演算情報と、相手側となる実行計算部1が中間データを入出力するポート番号の情報である。
また、図4(b)は、本発明によるコンパイラ装置が出力する実行可能プログラム6の他の構造を示す図である。図4(a)は、接続情報601が、演算情報602ごとに設けられるのに対し、図4(b)に示す構造では、全体の接続情報601として1つのみ設けられている点で相違する。
図5は、実行可能プログラム6をより具体的に説明する図である。図5(a)は、本発明によるコンパイラ装置が想定した処理形態を示す図であり、四角の枠は、実行計算部1が実行する演算情報を示している。図5(a)によると、コンパイラ装置は、ソースプログラムの解析を行い、2つの実行計算部を用い、一方の実行計算部の出力ポート#1と他方の実行計算部の入力ポート#1を、一方の実行計算部の出力ポート#2と他方の実行計算部の入力ポート#2を接続して中間データの受渡しを行うことで、ソースプログラムに記述された処理を実行するものとしている。
図5(b)は、図5(a)に示すコンパイラ装置が想定した処理形態に対応する実行可能プログラム6である。尚、ここでは実行可能プログラムを、図4(a)の構造で示している。図5(b)に示す様に、実行可能プログラム6は、一方の実行計算部で実行する実行計算情報Aと、他方の実行計算部で実行する実行計算情報Bとから構成されている。それぞれの実行計算情報に含まれる演算情報は実行計算部での処理内容を規定し、実行計算部Aの接続情報は、演算情報Aを実行する実行計算部1の出力ポート#1及び#2を、それぞれ、演算情報Bを実行する実行計算部の入力ポート#1及び#2とライン5により接続して、中間データの受渡しをすることを、即ち、演算情報間での中間データの入出力関係を規定している。
続いて、図5(b)に示す実行可能プログラム6を、図3(b)に示す、実行計算部10及び11を有するプロセッサで実行する場合の動作を説明する。ここで、実行計算部10の入力ポート#1〜4に対応する入力側マルチプレクサ101は、中間データ記憶部2とのみ接続しており、実行計算部10の出力ポート#k(k=1、2、3、4)に対応する出力側マルチプレクサ102は、中間データ記憶部2及び実行計算部11の入力ポート#kに対応する入力側マルチプレクサ101と接続しており、実行計算部11の入力ポート#k(k=1、2、3、4)に対応する入力側マルチプレクサ101は、中間データ記憶部2及び実行計算部10の出力ポート#k(k=1、2、3、4)に対応する出力側マルチプレクサ102と接続しており、実行計算部11の出力ポート#1〜4に対応する出力側マルチプレクサ102は、中間データ記憶部2とのみ接続しているものとする。従って、制御部3が保持している結線情報は、図9に示す通りとなる。また、上記接続は例示であり、各実行計算部の入力側と出力側のポート番号の接続は同一番号のみに限定されるものではない。
制御部3は、図5(b)に示す実行可能プログラム6を図示しない主記憶装置から取得して解析を行い、実行可能プログラム6が、2つの実行計算部を必要としていることと、一方の実行計算部の出力ポート#1と他方の実行計算部の入力ポート#1との接続、及び、一方の実行計算部の出力ポート#2と他方の実行計算部の入力ポート#2との接続を必要としていることを認識する。制御部3は、図9に示す結線情報から、演算情報Aを実行計算部10で実行させ、演算情報Bを実行計算部11で実行させ、実行計算部10の出力ポート#1及び出力ポート#2に対応する出力側マルチプレクサ102に実行計算部11を選択させ、実行計算部11の入力ポート#1及び入力ポート#2に対応する入力側マルチプレクサ101に実行計算部10を選択させることで、コンパイラ装置が想定した構成を実現できることを認識する。よって、制御部3は、演算情報Aの実行計算部10へのロード制御と、演算情報Bの実行計算部11へのロード制御を行う。また、実行計算部10及び実行計算部11の各入出力制御部103が、上述したライン5を選択する選択信号104を出力するための制御情報を出力する。演算情報の実行計算部10及び11へのロード制御は、制御部3が図示しない主記憶装置から取得して実行計算部10及び11にロードする形態であっても、制御部3が実行計算部10及び11に、ロードすべき演算情報が保存されている図示しない主記憶装置のアドレスを通知し、各実行計算部10及び11が、制御部3からの通知に基づき、図示しない主記憶装置から、演算情報を直接取得する構成であってもよい。
これにより、図3(b)に示す実行計算部10及び11を有するプロセッサは、実行可能プログラム6を1回のステージで実行する。
続いて、図5(b)に示す実行可能プログラム6を、図3(c)に示す実行計算部10のみを有するプロセッサで実行する場合の動作について図6を用いて説明する。尚、制御部3が保持している結線情報は、図9の実行計算部10の結線情報において、実行計算部11を除いたものとする。尚、図3(c)に示す様に、実行計算部10が1つのみの場合や、実行計算部が複数あっても実行計算部1間での配線を行わない場合には、入力側マルチプレクサ101及び出力側マルチプレクサ102を省略可能である。
制御部3は、図5(b)に示す実行可能プログラム6を図示しない主記憶装置から取得して解析を行い、実行可能プログラム6が、2つの実行計算部を必要としていることと、一方の実行計算部の出力ポート#1と他方の実行計算部の入力ポート#1との接続、及び、一方の実行計算部の出力ポート#2と他方の実行計算部の入力ポート#2との接続を必要としていることを認識する。制御部3は、プロセッサ上には1つの実行計算部10のみしかないことも認識しているため、接続情報を解析し、他から中間データの入力がない演算情報Aを、第1のステージで実行する演算情報とし、演算情報Aの実行計算部10へのロード制御を行う。また、制御部3は、演算情報Aの中間データの出力先である演算情報Bが同時に実行されないことから、演算情報Bが必要とする中間データを中間データ記憶部2に保存させるための制御情報を、実行計算部10及び中間データ記憶部2に出力する。実行計算部10に対する制御情報は、中間データを出力する実行計算部10の出力ポート#1及び出力ポート#2に対応する出力側マルチプレクサ102に、中間データ記憶部2を選択させるための情報を含んでいる。また、中間データ記憶部2に対する制御情報は、中間データ記憶部2に、実行計算部10の出力ポート#1及び#2から出力される中間データを保存させるための情報が含まれている。
図6(a)は、第1のステージにおける、実行計算部10の接続状態であり、符号90は、実行計算部10で演算情報Aを実行しているときには実在しない、演算情報Bを実行する実行計算部を表している。図6(a)に示す接続状態において、実行計算部10の演算部100は、演算情報Aを実行し、中間データを中間データ記憶部2に出力する。
第1のステージの終了後、制御部3は、残りの演算情報Bを第2のステージで実行する演算情報とし、演算情報Bの実行計算部10へのロード制御を行う。同時に、制御部3は、演算情報Bを実行する実行計算部10への中間データを、第1のステージで保存した中間データ記憶部2から出力させるために、結線情報に従い、実行計算部10の入力ポート#1及び#2に対応する入力側マルチプレクサ101に中間データ記憶部2を選択させ、演算部100が中間データを入力ポート#1及び#2から入力するように、実行計算部10に制御情報を出力する。また、中間データ記憶部2から、第1ステージで保存した中間データをそれぞれ実行計算部10の入力ポート#1及び#2に出力させるための制御情報を、中間データ記憶部2に出力する。
図6(b)は、第2のステージにおける、実行計算部10の接続状態であり、符号90は、実行計算部10で演算情報Bを実行しているときには実在しない、演算情報Aを実行する実行計算部を表している。図6(b)に示す接続状態において、実行計算部10の演算部100は、中間データ記憶部2からの中間データを入力として、演算情報Bを実行する。これにより、図5(a)に示す実行可能プログラム6を、1つの実行計算部10のみで実行する。
図7は、実行可能プログラム6の他の例を説明する図である。図7(a)は、本発明によるコンパイラ装置が想定した処理形態を示す図であり、四角の枠は実行計算部が実行する演算情報を示している。図7(a)によると、コンパイラ装置は、ソースプログラムの解析を行い、5つの実行計算部を用いることにより、ソースプログラムに記述された処理を実現するものとしている。
図7(b)は、図7(a)に示すコンパイラ装置が想定した処理形態に対応する実行可能プログラム6である。尚、ここでは実行可能プログラムを、図4(b)の構造で示している。図7(b)に示す様に、実行可能プログラム6は、それぞれが1つの実行計算部1で実行される演算情報A、B、C、D及びEと、各演算情報間での中間データの入出力関係を示す接続情報とを有している。
続いて、図7(b)に示す実行可能プログラム6を、図3(b)に示す実行計算部10及び11を有するプロセッサで実行する場合の動作について図8を用いて説明する。尚、制御部3が保持している結線情報は、図9に示す通りとする。
制御部3は、図7(b)に示す実行可能プログラム6を図示しない主記憶装置から取得して解析を行い、実行可能プログラム6が、5つの実行計算部を必要としていることを認識する。制御部3は、プロセッサ上には2つの実行計算部10及び11のみしかないことも認識しているため、接続情報を解析し、第1のステージにおいて、他の演算情報からの中間データを必要としない演算情報Aを実行することを決定し、実行先として実行計算部10を割り当てる。続いて、接続情報から、実行することを決定した演算情報Aを除いたときに、他の演算情報からの中間データを必要としない演算情報B及び演算情報Cを第1のステージで実行する演算情報の候補とする。続いて、候補とした演算情報のどちらか一方、ここでは、演算情報Bを実行計算部11で実行するとした場合に、接続情報の、該ステージで実行する演算情報を実行先の実行計算部と置き、該ステージで実行されない演算情報を中間データ記憶部2と置き換えた構成を実現できるか否かを判定する。ここでは、実現可能であるため、演算情報Bを実行計算部11で実行することを決定する。これにより実行する演算情報の数が、搭載している実行計算部の数と等しくなるため、第1のステージでの処理の実行に移る。尚、実現不可能である場合には、他の候補について同様に判定する。
処理の実行のため、制御部3は、演算情報Aの実行計算部10へのロード制御と、演算情報Bの実行計算部11へのロード制御を行う共に、実行計算部10の出力ポート#1及び#2に対応する出力側マルチプレクサ102に、実行計算部11を選択させ、出力ポート#3及び#4に対応する出力側マルチプレクサ102に、中間データ記憶部2を選択させるように、実行計算部10に制御情報を出力し、実行計算部11の入力ポート#1及び#2に対応する入力側マルチプレクサ101に、実行計算部10を選択させ、出力ポート#1に対応する出力側マルチプレクサ102に中間データ記憶部2を選択させるように、実行計算部11に制御情報を出力する。また、中間データ記憶部2に対しても中間データを受信し、保存するように制御情報を出力する。結果、プロセッサは、図8(a)に示す状態となる。
図8(a)に示す接続状態において、実行計算部10の演算部100は、演算情報Aを実行する。実行計算部10から出力される中間データのうち、出力ポート#1及び#2から出力される中間データは、実行計算部11に入力され、出力ポート#3及び#4から出力される中間データは、中間データ記憶部2に保存される。実行計算部11の演算部100は、実行計算部10からの中間データを入力とし、演算情報Bを実行し、実行計算部11から出力される中間データは、中間データ記憶部2に保存される。
続いて、制御部3は、既に実行した演算情報A及びBを除いたときに、他の演算情報からの中間データを必要としない演算情報Cをまず第2のステージで実行する演算情報と決定し、実行先として実行計算部10を割り当てる。続いて、実行することを決定した演算情報C並びに既に実行した演算情報A及びBを除いたときに、他の演算情報からの中間データを必要としない演算情報D及び演算情報Eを第2のステージで実行する演算情報の候補とする。続いて、候補とした演算情報のどちらか一方、ここでは、演算情報Eを実行計算部11で実行するとした場合に、接続情報の、該ステージで実行する演算情報を実行先の実行計算部と置き、該ステージで実行されない演算情報を中間データ記憶部2と置き換えた構成を実現できるか否かを判定する。ここでは、実現可能であるため、演算情報Eを実行計算部11で実行することを決定する。これにより実行する演算情報の数が、搭載している実行計算部の数と等しくなるため、第2のステージでの処理の実行に移る。
尚、制御部3は、一般的には、候補となる演算情報がなくなるまで、又は、実行する演算情報の数が実行計算手段の数と等しくなるまで上記処理を繰り返して各ステージで実行する演算情報を決定する。
処理の実行のため、制御部3は、演算情報Cの実行計算部10へのロード制御と、演算情報Eの実行計算部11へのロード制御を行うと共に、接続情報に基づき、実行計算部10の入力ポート#4に対応する入力側マルチプレクサ101に中間データ記憶部2を選択させ、出力ポート#2に対応する出力側マルチプレクサ102に中間データ記憶部2を選択させ、出力ポート#3及び#4に対応する出力側マルチプレクサ102に実行計算部11を選択させるように実行計算部10に制御情報を出力し、実行計算部11の入力ポート#3及び#4に対応する入力側マルチプレクサ101に実行計算部10を選択させるように、実行計算部11の入出力制御部103に制御情報を出力する。また、中間データ記憶部2に対しても、前のステージで演算情報Aを実行した実行計算部10の出力ポート#4から受信した中間データを、該ステージにおいて演算情報Cを実行している実行計算部10の入力ポート#4に出力し、当該ステージで新たに受信する中間データを保存するように制御情報を出力する。結果、プロセッサは、図8(b)に示す状態となる。
図8(b)に示す接続状態において、実行計算部10の演算部100は、中間データ記憶部2からの中間データを入力として、演算情報Cを実行する。実行計算部10から出力される中間データのうち、出力ポート#2から出力される中間データは、中間データ記憶部2に保存され、出力ポート#3及び#4から出力される中間データは、実行計算部11に入力される。実行計算部11の演算部100は、実行計算部10からの中間データを入力とし、演算情報Eを実行する。
最後に、制御部3は、残りの演算情報Dを第3のステージで実行する演算情報と決定し、実行計算部10へのロード制御を行う。
同時に、制御部3は、既に中間データ記憶部2に保存されている実行計算部10への中間データを、実行計算部10に入力させるために実行計算部10に対して制御情報を出力する。この制御情報に基づき、実行計算部10の入出力制御部103は、入力ポート#1、#2及び#3に対応する入力側マルチプレクサ101に中間データ記憶部2を選択させるための選択信号104を出力する。また、中間データ記憶部2に対しても、第1のステージで演算情報Aを実行した実行計算部10の出力ポート#3から受信した中間データを、実行計算部10の入力ポート#3に出力し、第1のステージで演算情報Bを実行した実行計算部11の出力ポート#1から受信した中間データを、実行計算部10の入力ポート#1に出力し、第2のステージで演算情報C実行した実行計算部10の出力ポート#2から受信した中間データを、実行計算部10の入力ポート#2に出力するように制御情報を出力する。結果、プロセッサは、図8(c)に示す状態となる。
図8(c)に示す接続状態において、実行計算部10の演算部100は、中間データ記憶部2からの中間データを入力として、演算情報Dを実行する。これにより、図7(a)に示す実行可能プログラム6を、2つの実行計算部10及び11で実行する。
以上説明したように、実行可能プログラム6は、それぞれが1つの実行計算部1で実行する処理内容を規定する演算情報602と、演算情報602間での中間データの入出力関係を規定する接続情報601を有し、プロセッサの制御部3が、自プロセッサが搭載している実行計算部1の数、結線情報及び接続情報601に基づき、実行可能プログラム6を複数回のステージに分割して実行することで、搭載している実行計算部1の数によらず同一の実行可能プログラム6を使用することが可能となる。
これにより、対象機器に応じて制限される実装面積やコスト等により搭載する実行計算部1の数が異なるプロセッサ間においても、同一ソウフトウェアの利用が可能となる。
上記説明においては、演算情報602を実行する実行計算部1の、中間データを入出力するポートが固定であるものとしていた。つまり、接続情報で示されるポート番号は、対応する演算情報を実行する実行計算部のポート番号としていた。しかしながら、例えば、演算部100内で、中間データを入力する入力ポート及び出力する出力ポートを選択可能とし、又は、演算情報602内のある領域を書き換えることで、中間データを入出力するポート番号を設定可能とし、制御部3が結線情報に基づき中間データを入出力するポート番号を変更することで、各ステージで実行する演算情報の選択の自由度が増し、実行計算部1間に設定するライン5の数を減らすことができる。この場合、接続情報では、演算情報間の論理的なポート番号での接続関係が定義され、制御部3は、結線情報と、実行する演算情報とに基づき、論理的なポート番号を、実際に中間データを入出力させる実行計算部1のポート番号に対応させて、対応させた入力ポート及び出力ポートから中間データを入出力するように各実行計算部1に対して制御情報を出力する。
また、上記説明においては、他の演算情報602から中間データの入力を必要としない演算情報から実行するものとして説明を行ってきた。しかしながら、処理内容においては、全体的又は部分的にループを必要とする状態も考えられる。ここでループとは、実行計算部1をノードとして、中間データの入出力関係を、中間データを出力する実行計算部1から入力する実行計算部1への矢印で表したときに、ある実行計算部1から矢印の方向に順にたどって、同じ実行計算部1に戻るルートがある状態をいう。
ループがある場合は、実行可能プログラム6に最初に実行する1つ以上の演算情報を指定する情報を含め、制御部3が、その情報に基づき演算情報の実行順序を決定することで対処可能である。最初に実行する演算情報以降は、実行した演算情報の中間データ出力先の演算情報を順に実行していくことになる。
最後に、本発明によるコンパイラ装置について説明する。図10は、本発明によるコンパイラ装置のブロック図である。図10によるとコンパイラ装置は、構文解析部81と、最適化部82と、コード生成部83とを有する。コンパイラ装置は、対象とする実行計算部1の種別、即ち、RISCコア、VLIWコア又は所定数のマトリックス状に配列された演算器といった演算部100を構成するハードウェアの種別についての情報を有し、ソースプログラム7を入力として、対象とする実行計算部1を1つ以上搭載するプロセッサが実行する実行可能プログラム6を出力する。
構文解析部81は、ソースプログラム7の字句解析及び構文解析を行い、最適化部82は、意味解析を行ない、対象とする実行計算部1の種別に基づき最適化を行う。この中で、コンパイラ装置は、必要となる実行計算部1の数と、各実行計算部1で実行させる処理内容と、各実行計算部1間での中間データの入出力のための接続関係を決定する。最後に、コード生成部83は、各実行計算部1で実行する処理内容を演算情報としてコード生成し、実行計算部1間での中間データの入出力のための接続関係を、実行計算部1で実行されている演算情報の接続関係として記述した接続情報を生成し、実行可能プログラム6を出力する。
尚、各実行計算部1間での中間データの入出力のための接続関係が、ループ状態となる場合には、最適化部82は、最初に実行する1つ以上の演算情報を決定し、コード生成部83は、最初に実行する1つ以上の演算情報を特定する情報を含む実行可能プログラムを出力する。
尚、本発明によるコンパイラ装置は、コンピュータに上記機能を実行させるプログラムによっても実現できる。
本発明によるプロセッサのブロック図である。 実行計算部のブロック図である。 本発明によるプロセッサの構成例を示す図である。 本発明によるコンパイラ装置が出力する実行可能プログラムの構造を示す図である。 実行可能プログラムをより具体的に説明する図である。 図5に示す実行可能プログラムの実行方法を説明する図である。 実行可能プログラムの他の例を説明する図である。 図7に示す実行可能プログラムの実行方法を説明する図である。 結線情報を示す図である。 本発明によるコンパイラ装置のブロック図である。
符号の説明
1、10、11,12、13 実行計算部
2 中間データ記憶部
3 制御部
5 ライン
6 実行可能プログラム
7 ソースプログラム
60 実行計算情報
81 構文解析部
82 最適化部
83 コード生成部
90 ダミー実行計算部
100 演算部
101 入力側マルチプレクサ
102 出力側マルチプレクサ
103 入出力制御部
104 選択信号
601 接続情報
602 演算情報

Claims (4)

  1. 入力及び出力のためのポートを1つ以上有する、複数の実行計算手段を備え、
    それぞれが1つの実行計算手段での処理内容を規定する複数の演算情報と、演算情報間での中間データの入出力関係を規定する接続情報とを含む実行可能プログラムを、1回以上のステージに分割して実行するプロセッサであって、
    中間データ記憶手段と、
    各実行計算手段について、各ポートが接続可能な中間データ記憶手段及び/又は他の実行計算手段についての情報である結線情報を保持する制御手段と、
    を有し、
    各実行計算手段は、少なくとも1つの他の実行計算手段と接続可能であり、
    制御手段は、各ステージにおいて、実行計算手段の数、結線情報及び接続情報に基づき、該ステージにおいて実行する演算情報を決定し、
    演算情報を実行する実行計算手段は、実行する演算情報が入出力する中間データのうち、入出力先の演算情報が同一ステージにおいて実行されているものについては、入出力先の演算情報を実行する実行計算手段と直接入出力を行い、同一ステージにおいて実行されないものについては、中間データ記憶手段との間で入出力することを特徴とするプロセッサ。
  2. 入力及び出力のためのポートを1つ以上有する、複数の実行計算手段を備え、
    それぞれが1つの実行計算手段での処理内容を規定する複数の演算情報と、演算情報間での中間データの入出力関係を規定する接続情報とを含む実行可能プログラムを、1回以上のステージに分割して実行するプロセッサであって、
    中間データ記憶手段と、
    各実行計算手段について、各ポートが接続可能な中間データ記憶手段及び/又は他の実行計算手段についての情報である結線情報を保持する制御手段と、
    を有し、
    各実行計算手段は、各ポートに対応して設けられ、接続している中間データ記憶手段及び/又は他の実行計算手段から、1つの中間データ記憶手段又は他の実行計算手段を選択して対応するポートに接続する選択手段を備え、
    制御手段は、各ステージにおいて、実行計算手段の数、結線情報及び接続情報に基づき、該ステージにおいて実行する演算情報を決定し、接続情報と、実行する演算情報とに基づき、制御情報を出力し、
    選択手段は、前記制御情報に従い、中間データ記憶手段又は他の実行計算手段を選択し、
    演算情報を実行する実行計算手段は、実行する演算情報が入出力する中間データのうち、入出力先の演算情報が同一ステージにおいて実行されているものについては、入出力先の演算情報を実行する実行計算手段と直接入出力を行い、同一ステージにおいて実行されないものについては、中間データ記憶手段との間で入出力することを特徴とするプロセッサ。
  3. 実行計算手段は、各ポートに対応して設けられ、接続している中間データ記憶手段及び/又は他の実行計算手段から、1つの中間データ記憶手段又は他の実行計算手段を選択して対応するポートに接続する選択手段を備え、
    制御手段は、各ステージにおいて、接続情報と、実行する演算情報に基づき、制御情報を出力し、
    選択手段は、該制御情報に従い、中間データ記憶手段又は他の実行計算手段を選択すること、
    を特徴とする請求項1に記載のプロセッサ。
  4. 実行計算手段は、中間データを入出力させるポートの選択が可能であり、
    制御手段は、各ステージにおいて、実行する演算情報及び接続情報に基づき、中間データを入出力させるポートの選択を行うこと、
    を特徴とする請求項1から3のいずれか1項に記載のプロセッサ。
JP2005277593A 2005-09-26 2005-09-26 プロセッサ Active JP3985829B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005277593A JP3985829B2 (ja) 2005-09-26 2005-09-26 プロセッサ
PCT/JP2006/318920 WO2007034936A1 (ja) 2005-09-26 2006-09-25 プロセッサ、コンパイラ装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005277593A JP3985829B2 (ja) 2005-09-26 2005-09-26 プロセッサ

Publications (2)

Publication Number Publication Date
JP2007087264A JP2007087264A (ja) 2007-04-05
JP3985829B2 true JP3985829B2 (ja) 2007-10-03

Family

ID=37888978

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005277593A Active JP3985829B2 (ja) 2005-09-26 2005-09-26 プロセッサ

Country Status (2)

Country Link
JP (1) JP3985829B2 (ja)
WO (1) WO2007034936A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6311110B2 (ja) * 2014-01-28 2018-04-18 パナソニックIpマネジメント株式会社 除湿装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3850531B2 (ja) * 1997-10-21 2006-11-29 株式会社東芝 再構成可能な回路の設計装置、及び再構成可能な回路装置
FR2779573B1 (fr) * 1998-06-05 2001-10-26 St Microelectronics Sa Transistor bipolaire vertical comportant une base extrinseque de rugosite reduite, et procede de fabrication

Also Published As

Publication number Publication date
JP2007087264A (ja) 2007-04-05
WO2007034936A1 (ja) 2007-03-29

Similar Documents

Publication Publication Date Title
JP4489102B2 (ja) プロセッサ構造および応用の最適化のためのプロファイラ
US6948158B2 (en) Retargetable compiling system and method
KR100464406B1 (ko) 가변길이 vliw 명령어를 위한 디스패치 장치 및 방법
US7844803B2 (en) Configurable data processing device with bit reordering on inputs and outputs of configurable logic function blocks
JP4911022B2 (ja) カウンタ制御回路、動的再構成回路およびループ処理制御方法
US8458443B2 (en) VLIW processor with execution units executing instructions from instruction queues and accessing data queues to read and write operands
KR101622266B1 (ko) 재구성 가능 프로세서 및 이를 이용한 인터럽트 핸들링 방법
JP2002333978A (ja) Vliw型プロセッサ
US8069333B2 (en) Converting logical to real number to access shared configuration information in event driven state transiting reconfigurable system
US20140317388A1 (en) Apparatus and method for supporting multi-modes of processor
JP2009037302A (ja) 分岐予測装置、ハイブリッド分岐予測装置、プロセッサ、分岐予測方法、及び分岐予測制御プログラム
US20140317626A1 (en) Processor for batch thread processing, batch thread processing method using the same, and code generation apparatus for batch thread processing
KR20110106717A (ko) 재구성 가능 어레이 및 재구성 가능 어레이의 제어 방법
JPH1165844A (ja) パイプラインバイパス機能を有するデータ処理装置
KR101586770B1 (ko) 데이터 처리 장치
KR101016257B1 (ko) 프로세서 및 정보 처리 장치
JP3985829B2 (ja) プロセッサ
KR100722770B1 (ko) 조건실행을 지원하는 재구성 가능한 프로세싱 요소의배열구조
JP2005508554A (ja) データ操作を利用したデータの計算と処理方法、及び、その装置
JP2013161484A (ja) 再構成可能コンピューティング装置、その第1メモリ制御器及び第2メモリ制御器、並びにそのデバッギング用のトレースデータを処理する方法
US7346763B2 (en) Processor instruction with repeated execution code
JP2013246816A (ja) ミニコア基盤の再構成可能プロセッサ及びその再構成可能プロセッサを利用した柔軟な多重データ処理方法
JP3737573B2 (ja) Vliwプロセッサ
JP2007334819A (ja) ベクトルリネーミング方式およびベクトル型計算機
JP6254352B2 (ja) ループのプロローグまたはエピローグの無効演算を処理する装置及び方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070109

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070306

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: 20070619

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070702

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100720

Year of fee payment: 3