JP2011197774A - プロセッサシステム - Google Patents

プロセッサシステム Download PDF

Info

Publication number
JP2011197774A
JP2011197774A JP2010061110A JP2010061110A JP2011197774A JP 2011197774 A JP2011197774 A JP 2011197774A JP 2010061110 A JP2010061110 A JP 2010061110A JP 2010061110 A JP2010061110 A JP 2010061110A JP 2011197774 A JP2011197774 A JP 2011197774A
Authority
JP
Japan
Prior art keywords
coprocessor
data
register
memory
control
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.)
Granted
Application number
JP2010061110A
Other languages
English (en)
Other versions
JP5555514B2 (ja
Inventor
Hiroyuki Nakajima
博行 中島
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2010061110A priority Critical patent/JP5555514B2/ja
Publication of JP2011197774A publication Critical patent/JP2011197774A/ja
Application granted granted Critical
Publication of JP5555514B2 publication Critical patent/JP5555514B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Advance Control (AREA)
  • Multi Processors (AREA)

Abstract

【課題】ベースプロセッサが行うレジスタアクセスやメモリアクセスをコプロセッサ側から制御すること。
【解決手段】ベースプロセッサは、レジスタと、データメモリ及びレジスタに対するアクセスを行うベースプロセッサ制御部と、を備える。コプロセッサは、制御インタフェースを介してベースプロセッサ制御部に接続されたコプロセッサ制御部と、データインタフェースを介してデータメモリ及びレジスタに接続されたコプロセッサ処理ユニットと、を備える。コプロセッサ制御部は、制御インタフェースを介して、ベースプロセッサ制御部にデータメモリに対するアクセスを行わせる。また、コプロセッサ制御部は、制御インタフェースを介して、ベースプロセッサ制御部にレジスタに対するアクセスを行わせる。コプロセッサ処理ユニットは、データインタフェースを介して、レジスタやデータメモリに対するデータ読み書きを行う。
【選択図】図1

Description

本発明は、ベースプロセッサ(base processor)とコプロセッサ(coprocessor)を備えるプロセッサシステム及びその制御方法に関する。
ベースプロセッサとコプロセッサを備えるプロセッサシステムが知られている(例えば、特許文献1、特許文献2、特許文献3を参照)。一般的なコプロセッサは、浮動小数点演算などの特定の演算処理をベースプロセッサに代わって実行する。上記特許文献に記載されているように、一般的には、コプロセッサはベースプロセッサによって制御される。コプロセッサは、命令終了やエラー通知などをベースプロセッサに通知するのみである。
特開昭63−247861号公報 特開昭64−076225号公報 特開平01−263760号公報
従来技術では、ベースプロセッサが行うレジスタアクセスやメモリアクセスをコプロセッサ側から制御することができなかった。従って、コプロセッサを用いることによる性能改善は限定的であった。
本発明の1つの観点において、コプロセッサが実行するコプロセッサ命令がベースプロセッサのプログラムに組み込まれたプロセッサシステムが提供される。そのプロセッサシステムは、命令メモリから命令を順次フェッチする命令フェッチ部を有するベースプロセッサと、命令フェッチ部に結合されコプロセッサ命令がフェッチされた場合にコプロセッサ命令のデコード及び実行を行なうコプロセッサと、ベースプロセッサとコプロセッサとで共有するデータインタフェースに結合されたメモリと、ベースプロセッサとコプロセッサとの間を結合しコプロセッサがベースプロセッサに対してデータのアクセスを要求する第1の制御インタフェースと、第1の制御インタフェースとは別に設けられベースプロセッサがメモリのアクセスを制御する第2の制御インタフェースと、を有する。コプロセッサは、第1の制御インタフェースを介してベースプロセッサに対してデータのアクセスを要求することによって、メモリまたはベースプロセッサの内部レジスタに対してデータの読み出しまたは書込みが可能である。
本発明の他の観点において、プロセッサシステムが提供される。そのプロセッサシステムは、ベースプロセッサと、コプロセッサと、データメモリと、制御インタフェースと、データインタフェースと、を備える。ベースプロセッサは、レジスタと、データメモリ及びレジスタに対するアクセスを行うベースプロセッサ制御部と、を備える。コプロセッサは、制御インタフェースを介してベースプロセッサ制御部に接続されたコプロセッサ制御部と、データインタフェースを介してデータメモリ及びレジスタに接続されたコプロセッサ処理ユニットと、を備える。コプロセッサ制御部は、ベースプロセッサ制御部に制御インタフェースを介してメモリアクセス制御信号を送信することによって、ベースプロセッサ制御部にデータメモリに対するアクセスを行わせるメモリアクセス制御を行う。また、コプロセッサ制御部は、ベースプロセッサ制御部に制御インタフェースを介してレジスタアクセス制御信号を送信することによって、ベースプロセッサ制御部にレジスタに対するアクセスを行わせるレジスタアクセス制御を行う。コプロセッサ処理ユニットは、データインタフェースを介してレジスタに対するデータ読み書きを行い、また、データインタフェースを介してデータメモリに対するデータ読み書きを行う。
本発明によれば、ベースプロセッサが行うレジスタアクセスやメモリアクセスをコプロセッサ側から制御することが可能となる。これにより、プロセッサシステムの性能を著しく向上させることが可能となる。
図1は、本発明の実施の形態に係るプロセッサシステムの構成例を示すブロック図である。 図2は、本発明の実施の形態における命令インタフェースの一例を示す概略図である。 図3は、本発明の実施の形態における命令インタフェースの他の例を示す概略図である。 図4は、本発明の実施の形態に係るプロセッサシステムの変形例を示すブロック図である。 図5は、本発明の実施の形態に係るプロセッサシステムによる処理を示すフローチャートである。 図6は、本発明の実施の形態におけるリードアクセス制御処理の一例を示すフローチャートである。 図7は、本発明の実施の形態におけるライトアクセス制御処理の一例を示すフローチャートである。 図8は、本発明の実施の形態におけるベースプロセッサ処理の一例を示すフローチャートである。
添付図面を参照して、本発明の実施の形態を説明する。
1.構成
図1は、本実施の形態に係るプロセッサシステム1の構成例を示すブロック図である。プロセッサシステム1は、命令メモリ10、データメモリ20、ベースプロセッサ100、コプロセッサ200、命令インタフェース310、メモリアクセスインタフェース320、制御インタフェース330、及びデータインタフェース350を備えている。
命令メモリ10及びデータメモリ20は、ベースプロセッサ100外部のメモリである。命令メモリ10には、ベースプロセッサ100及びコプロセッサ200によって実行される各種命令が格納される。データメモリ20には、各種データが格納される。
命令インタフェース310は、ベースプロセッサ100とコプロセッサ200との間をつないでいる。メモリアクセスインタフェース320は、データメモリ20とベースプロセッサ100との間をつないでいる。制御インタフェース330は、ベースプロセッサ100とコプロセッサ200との間をつないでいる。データインタフェース350は、ベースプロセッサ100及びデータメモリ20とコプロセッサ200との間をつないでいる。言い換えれば、データメモリ20に結合されたデータインタフェース350は、ベースプロセッサ100とコプロセッサ200とで共有されている。尚、命令インタフェース310、メモリアクセスインタフェース320、制御インタフェース330、及びデータインタフェース350は、それぞれ別々に設けられている。
ベースプロセッサ100は、命令フェッチ部110、ベース命令デコーダ120、ベースプロセッサ制御部130、ベースプロセッサレジスタ140、及びベース命令処理ユニット150を備えている。
命令フェッチ部110は、命令メモリ10から命令を順次フェッチする。命令フェッチ部110によってフェッチされる命令のセットは、以下「ベース命令セット」と参照される。ベース命令セットは、ベースプロセッサ100が実行するプログラムであるとも言える。本実施の形態によれば、ベース命令セットは、ベースプロセッサ100用のベース命令(ベースプロセッサ命令)だけでなく、コプロセッサ200用のコプロ命令(コプロセッサ命令)をも含む。言い換えれば、ベース命令セットは拡張されており、コプロ命令がそのベース命令セットに組み込まれている。命令フェッチ部110は、フェッチした命令をベース命令デコーダ120に送る。更に、命令フェッチ部110は、デコード前の命令の少なくとも一部を、命令インタフェース310を介して、コプロセッサ200に供給する。詳細は後述される。
ベース命令デコーダ120は、命令フェッチ部110によってフェッチされた命令をデコードする。フェッチされた命令がベース命令であった場合、ベース命令デコーダ120は、デコード結果をベースプロセッサ制御部130に供給する。
ベースプロセッサ制御部130は、ベース命令のデコード結果に応じて、各種制御処理を行う。具体的には、ベースプロセッサ制御部130は、メモリアクセスインタフェース320を介して、外部のデータメモリ20に対するアクセスを行う。また、ベースプロセッサ制御部130は、ベースプロセッサレジスタ140に対するアクセスを行う。更に、ベースプロセッサ制御部130は、ベース命令処理ユニット150に対して処理を指示する。
ベースプロセッサ制御部130は、互いに独立したメモリ制御部131、レジスタ制御部132、及び処理制御部133を備えていてもよい。その場合、メモリ制御部131は、メモリアクセスインタフェース320を介して、外部のデータメモリ20に対するアクセスを行う。レジスタ制御部132は、ベースプロセッサレジスタ140に対するアクセスを行う。処理制御部133は、ベース命令処理ユニット150に対して処理を指示する。
更に、本実施の形態によれば、ベースプロセッサ制御部130は、制御インタフェース330を介してコプロセッサ200に接続されている。後に説明されるように、ベースプロセッサ制御部130は、この制御インタフェース330を介して、コプロセッサ200によって直接制御され得る。
ベースプロセッサレジスタ140は、ベースプロセッサ100内部のレジスタである。例えば、ベースプロセッサレジスタ140は、プログラムシーケンスを制御するためのプログラムレジスタである。そのようなプログラムレジスタとしては、プログラムカウンタ(program counter)やスタックポインタ(stack pointer)が例示される。ベースプロセッサレジスタ140は、データインタフェース350を介して、コプロセッサ200に接続されている。
ベース処理ユニット150は、演算論理装置(ALU:Arithmetic Logic Unit)を含んでおり、各種データ演算処理を行う。
コプロセッサ200は、コプロセッサデコーダ220、コプロセッサ制御部230、コプロセッサレジスタ240、及びコプロセッサ処理ユニット250を備えている。
コプロセッサデコーダ220は、命令インタフェース310を介して、ベースプロセッサ100に接続されている。上述の通り、ベースプロセッサ100の命令フェッチ部110は、デコード前の命令の少なくとも一部を、命令インタフェース310を介して、コプロセッサ200に供給する。コプロセッサ200用のコプロ命令は、ベース命令セットに組み込まれており、ベースプロセッサ100の命令フェッチ部110によって一旦フェッチされた後、命令インタフェース310を介してコプロセッサ200に供給される。コプロセッサデコーダ220は、命令インタフェース310を介して、デコード前の命令の少なくとも一部を受け取り、それをデコードする。受け取った命令がコプロ命令であった場合、コプロセッサデコーダ220は、デコード結果をコプロセッサ制御部230に供給する。
図2は、命令インタフェース310の一例を概略的に示している。図2の例では、デコード前の命令の全体(オペコード及びオペランドの両方)が、命令インタフェース310を介して、コプロセッサデコーダ220に供給される。コプロセッサデコーダ220は、受け取った命令の全体をデコードする。
図3は、命令インタフェース310の他の例を概略的に示している。図3の例では、デコード前の命令のうちオペランドのみが、命令インタフェース310を介して、コプロセッサデコーダ220に供給される。コプロセッサデコーダ220は、受け取ったオペランドをデコードする。一方、オペコードは、ベースプロセッサ100のベース命令デコーダ120によってデコードされる。そして、オペコードのデコード結果が、命令インタフェース310を介して、コプロセッサ200に供給される。
コプロセッサ制御部230は、コプロ命令のデコード結果に応じて、各種制御処理を行う。具体的には、コプロセッサ制御部230は、コプロセッサレジスタ240に対するアクセスを行う。また、コプロセッサ制御部230は、コプロセッサ処理ユニット250に対して処理を指示する。
更に、本実施の形態によれば、コプロセッサ制御部230は、専用の制御インタフェース330を介して、ベースプロセッサ100のベースプロセッサ制御部130に接続されている。そして、コプロセッサ制御部230は、この制御インタフェース330を介して、ベースプロセッサ制御部130を直接制御することができる。具体的には、コプロセッサ制御部230は、制御インタフェース330を介してベースプロセッサ制御部130に制御信号を直接送信し、それにより、コプロセッサ制御部230を制御する。その制御信号には、データメモリ20に対するアクセスを制御(要求)するための「メモリアクセス制御信号」、ベースプロセッサレジスタ140に対するアクセスを制御(要求)するための「レジスタアクセス制御信号」、ベース命令処理ユニット150に対する指示を制御(要求)するための「処理制御信号」、コプロセッサ200の状態をベースプロセッサ制御部130に通知する「ステータス信号」、等が含まれる。
ベースプロセッサ制御部130によるデータメモリ20へのアクセスをコプロセッサ制御部230から直接制御することは、以下「メモリアクセス制御」と参照される。メモリアクセス制御において、コプロセッサ制御部230は、制御インタフェース330を介してベースプロセッサ制御部130にメモリアクセス制御信号を送信し、それにより、ベースプロセッサ制御部130にデータメモリ20に対するアクセスを行わせる。そのメモリアクセス制御信号には、アクセス先のアドレス情報も含まれている。
ベースプロセッサ制御部130によるベースプロセッサレジスタ140へのアクセスをコプロセッサ制御部230から直接制御することは、以下「レジスタアクセス制御」と参照される。レジスタアクセス制御において、コプロセッサ制御部230は、制御インタフェース330を介してベースプロセッサ制御部130にレジスタアクセス制御信号を送信し、それにより、ベースプロセッサ制御部130にベースプロセッサレジスタ140に対するアクセスを行わせる。そのレジスタアクセス制御信号には、アクセス先のアドレス情報も含まれている。
ベースプロセッサ制御部130によるベース命令処理ユニット150への指示をコプロセッサ制御部230から直接制御することは、以下「処理制御」と参照される。処理制御において、コプロセッサ制御部230は、制御インタフェース330を介してベースプロセッサ制御部130に処理制御信号を送信し、それにより、ベースプロセッサ制御部130にベース命令処理ユニット150に対して指示を行わせる。
コプロセッサ制御部230は、互いに独立したメモリ制御部231、レジスタ制御部232、及び処理制御部233を備えていてもよい。その場合、メモリ制御部231は、上述のメモリアクセス制御を行う。レジスタ制御部232は、上述のレジスタアクセス制御を行う。処理制御部233は、上述の処理制御を行う。
好適には、制御インタフェース330は、互いに独立したメモリ制御インタフェース331、レジスタ制御インタフェース332、及び処理制御インタフェース333を備える。メモリ制御インタフェース331は、メモリ制御部131とメモリ制御部231との間を接続しており、メモリ制御部231は、このメモリ制御インタフェース331を介して上述のメモリアクセス制御を行う。レジスタ制御インタフェース332は、レジスタ制御部132とレジスタ制御部232との間を接続しており、レジスタ制御部232は、このレジスタ制御インタフェース332を介して上述のレジスタアクセス制御を行う。処理制御インタフェース333は、処理制御部133と処理制御部233との間を接続しており、処理制御部233は、この処理制御インタフェース333を介して上述の処理制御を行う。このような構成により、メモリアクセス制御、レジスタアクセス制御、処理制御を並列化することができ、好適である。
コプロセッサ処理ユニット250は、演算論理装置(ALU)を含んでおり、コプロセッサ制御部230(処理制御部233)からの指示に従って各種データ演算処理を行う。更に、本実施の形態によれば、コプロセッサ処理ユニット250は、データインタフェース350を介して、ベースプロセッサレジスタ140及びデータメモリ20に接続されている。
コプロセッサ処理ユニット250は、データインタフェース350を介して、ベースプロセッサレジスタ140に対するデータ読み書きを行う。例えば、上記レジスタアクセス制御をトリガとして、ベースプロセッサレジスタ140からデータインタフェース350に読み出しデータが出力される。コプロセッサ処理ユニット250は、データインタフェース350を介してその読み出しデータを受け取り、各種データ演算処理を行う。また例えば、コプロセッサ処理ユニット250は、上記レジスタアクセス制御をトリガとして、書き込みデータをデータインタフェース350に出力し、それにより、書き込みデータをベースプロセッサレジスタ140に書き込むこともできる。
また、コプロセッサ処理ユニット250は、データインタフェース350を介して、データメモリ20に対するデータ読み書きを行う。例えば、上記メモリアクセス制御をトリガとして、データメモリ20からデータインタフェース350に読み出しデータが出力される。コプロセッサ処理ユニット250は、データインタフェース350を介してその読み出しデータを受け取り、各種データ演算処理を行う。また例えば、コプロセッサ処理ユニット250は、上記メモリアクセス制御をトリガとして、書き込みデータをデータインタフェース350に出力し、それにより、書き込みデータをデータメモリ20に書き込むこともできる。
好適には、データインタフェース350は、互いに独立したレジスタデータインタフェース351とメモリデータインタフェース352を備える。レジスタデータインタフェース351は、ベースプロセッサレジスタ140とコプロセッサ処理ユニット250との間を接続しており、コプロセッサ処理ユニット250は、このレジスタデータインタフェース351を介してベースプロセッサレジスタ140に対するデータ読み書きを行う。メモリデータインタフェース352は、データメモリ20とコプロセッサ処理ユニット250との間を接続しており、コプロセッサ処理ユニット250は、このメモリデータインタフェース352を介してデータメモリ20に対するデータ読み書きを行う。このような構成により、ベースプロセッサレジスタ140及びデータメモリ20に対するデータ読み書きを並列化することができ、好適である。
尚、図4は変形例を示している。変形例においては、制御インタフェース330やデータインタフェース350は分割されていない。この場合、上述のメモリアクセス制御、レジスタアクセス制御、及び処理制御は、共通の制御インタフェース330を通して行われる。また、ベースプロセッサレジスタ140及びデータメモリ20に対するデータ読み書きは、共通のデータインタフェース350を通して行われる。変形例では、インタフェース構成が単純化される。
2.処理
2−1.処理フロー
図5は、本実施の形態に係るプロセッサシステム1による処理を示すフローチャートである。
ステップS110:
ベースプロセッサ100の命令フェッチ部110が、命令メモリ10から命令をフェッチする。更に、ベースプロセッサ100は、フェッチした命令を、命令インタフェース310を介してコプロセッサ200に供給する。コプロセッサ200に対する命令の供給方式は、図2で示されたもの及び図3で示されたもののいずれでもよい。
ステップS120:
フェッチした命令がベース命令である場合、ベースプロセッサ100は、ベース命令に応じた処理を行う。
ステップS210:
命令は、ベースプロセッサ100の命令フェッチ部110によって一旦フェッチされた後、命令インタフェース310を介してコプロセッサ200に供給される。特に、コプロセッサデコーダ220は、命令インタフェース310を介して、デコード前の命令の少なくとも一部を受け取る(図2、図3参照)。
ステップS220:
コプロセッサデコーダ220は、受け取った命令の少なくとも一部をデコードする(図2、図3参照)。コプロ命令の場合、処理は、次のステップS230に進む。
ステップS230:
コプロセッサ制御部230は、制御インタフェース330を介して、「リードアクセス制御」を行う。リードアクセス制御は、データメモリ20からデータを読み出すための上記「メモリアクセス制御」、あるいは/及び、ベースプロセッサレジスタ140からデータを読み出すための上記「レジスタアクセス制御」を含む。
ステップS130:
上記ステップS230の「リードアクセス制御」に従って、ベースプロセッサ100のベースプロセッサ制御部130は、データメモリ20あるいは/及びベースプロセッサレジスタ140に対するリードアクセスを行う。
ステップS140:
上記ステップS130のリードアクセスの結果、データメモリ20あるいは/及びベースプロセッサレジスタ140からデータが読み出される。読み出しデータは、データインタフェース350に出力される。
ステップS240:
コプロセッサ処理ユニット250は、データインタフェース350を介して当該読み出しデータを受け取る。
ステップS250:
続いて、コプロセッサ処理ユニット250は、当該読み出しデータを用いて演算処理を行う。そして、コプロセッサ処理ユニット250は、演算処理の結果を示す演算結果データを作成する。
ステップS260:
次に、コプロセッサ制御部230は、制御インタフェース330を介して、「ライトアクセス制御」を行う。ライトアクセス制御は、データメモリ20にデータを書き込むための上記「メモリアクセス制御」、あるいは/及び、ベースプロセッサレジスタ140にデータを書き込むための上記「レジスタアクセス制御」を含む。
ステップS270:
また、コプロセッサ処理ユニット250は、上記ステップS250で得られた演算結果データを、データインタフェース350を介してデータメモリ20あるいは/及びベースプロセッサレジスタ140に出力する。
ステップS150:
上記ステップS260の「ライトアクセス制御」に従って、ベースプロセッサ100のベースプロセッサ制御部130は、データメモリ20あるいは/及びベースプロセッサレジスタ140に対するライトアクセスを行う。
ステップS160:
コプロセッサ処理ユニット250から出力された演算結果データが、データインタフェース350を介して、データメモリ20あるいは/及びベースプロセッサレジスタ140に書き込まれる。尚、データメモリ20とベースプロセッサレジスタ140のそれぞれに書き込まれる演算結果データは、互いに異なっていてもよい。
尚、コプロセッサ制御部230がベースプロセッサ制御部130に対してリードアクセス制御やライトアクセス制御を行う際、ベースプロセッサ制御部130は、ベース命令によるレジスタ/メモリアクセス要求を待たせてもよい。そのような待機処理を実現するための1つの方法として、上述の「ステータス信号」を利用することが考えられる。ステータス信号は、コプロセッサ200の状態をベースプロセッサ制御部130に通知するための信号であり、コプロセッサ制御部230から制御インタフェース330を通してベースプロセッサ制御部130に送られる制御信号の一種である。ベースプロセッサ制御部130は、コプロセッサ制御部230から受け取るステータス信号を参照することによって、ベース命令によるレジスタ/メモリアクセス要求を待たせるか否かを決定することができる。図6〜図8を参照して、ステータス信号を利用した処理の一例を説明する。
図6は、図5で示されたリードアクセス制御に関連する処理(ステップS230、S240、S130、S140)の一例を示すフローチャートである。リードアクセス制御に際して、コプロセッサ制御部230は、制御インタフェース330を介して、“ステータス信号(Wait)”をベースプロセッサ制御部130に送信する(ステップS231)。このステータス信号(Wait)は、ベース命令によるレジスタ/メモリアクセス要求を待たせるための“ウェイト信号”である。ベースプロセッサ制御部130は、このステータス信号(Wait)をコプロセッサ制御部230から受け取ると、それに応答して、ベース命令によるレジスタ/メモリアクセスを禁止する(ステップS131)。
そして、コプロセッサ制御部230は、制御インタフェース330を介して、リードアクセス制御信号をベースプロセッサ制御部130に送信する(ステップS232)。ベースプロセッサ制御部130は、コプロセッサ制御部230から受け取ったリードアクセス制御信号に応答して、データメモリ20あるいは/及びベースプロセッサレジスタ140に対するリードアクセスを行う(ステップS132)。そのリードアクセスの結果、データメモリ20あるいは/及びベースプロセッサレジスタ140からデータが読み出され(ステップS140)、コプロセッサ処理ユニット250は、データインタフェース350を介して当該読み出しデータを受け取る(ステップS240)。
このようにしてリードアクセスが完了すると、コプロセッサ制御部230は、制御インタフェース330を介して、“ステータス信号(Wait解除)”をベースプロセッサ制御部130に送信する(ステップS233)。このステータス信号(Wait解除)は、上述のステップS131で設定されたレジスタ/メモリアクセスの禁止を解除するための“ウェイト解除信号”である。ベースプロセッサ制御部130は、このステータス信号(Wait解除)をコプロセッサ制御部230から受け取ると、それに応答して、レジスタ/メモリアクセスの禁止を解除する(ステップS133)。
図7は、図5で示されたライトアクセス制御に関連する処理(ステップS260、S270、S150、S160)の一例を示すフローチャートである。ライトアクセス制御に際して、コプロセッサ制御部230は、制御インタフェース330を介して、“ステータス信号(Wait)”をベースプロセッサ制御部130に送信する(ステップS261)。このステータス信号(Wait)は、ベース命令によるレジスタ/メモリアクセス要求を待たせるための“ウェイト信号”である。ベースプロセッサ制御部130は、このステータス信号(Wait)をコプロセッサ制御部230から受け取ると、それに応答して、ベース命令によるレジスタ/メモリアクセスを禁止する(ステップS151)。
そして、コプロセッサ制御部230は、制御インタフェース330を介して、ライトアクセス制御信号をベースプロセッサ制御部130に送信する(ステップS262)。また、コプロセッサ処理ユニット250は、上記ステップS250で得られた演算結果データを、データインタフェース350を介してデータメモリ20あるいは/及びベースプロセッサレジスタ140に出力する(ステップS270)。ベースプロセッサ制御部130は、コプロセッサ制御部230から受け取ったライトアクセス制御信号に応答して、データメモリ20あるいは/及びベースプロセッサレジスタ140に対するライトアクセスを行う(ステップS152)。そのライトアクセスの結果、演算結果データが、データインタフェース350を介して、データメモリ20あるいは/及びベースプロセッサレジスタ140に書き込まれる(ステップS160)。
このようにしてライトアクセスが完了すると、コプロセッサ制御部230は、制御インタフェース330を介して、“ステータス信号(Wait解除)”をベースプロセッサ制御部130に送信する(ステップS263)。このステータス信号(Wait解除)は、上述のステップS151で設定されたレジスタ/メモリアクセスの禁止を解除するための“ウェイト解除信号”である。ベースプロセッサ制御部130は、このステータス信号(Wait解除)をコプロセッサ制御部230から受け取ると、それに応答して、レジスタ/メモリアクセスの禁止を解除する(ステップS153)。
図8は、ベースプロセッサ100の処理例を示すフローチャートである。命令フェッチ部110は、命令メモリ10から命令をフェッチする(ステップS110)。フェッチされた命令は、命令インタフェース310を介してコプロセッサ200に供給される(ステップS210)。また、フェッチされた命令は、ベース命令デコーダ120に供給される。
ベース命令デコーダ120は、フェッチされた命令のデコードを行う(ステップS121)。その命令がベース命令である場合(ステップS122;No)、ベース命令デコーダ120は、デコード結果をベースプロセッサ制御部130に供給する。ベースプロセッサ制御部130は、そのデコード結果に応じた処理を実行する(ステップS123)。そして、処理は、ステップS110に戻る。一方、その命令がコプロ命令である場合(ステップS122;Yes)、ベースプロセッサ制御部130は、コプロセッサ200からの上述のステータス信号の入力を待つ(ステップS124)。
上述の待機処理が不要である場合(ステップS125;No)、処理はステップS110に戻る。一方、コプロセッサ200から上述の“ステータス信号(Wait)”を受け取った場合(ステップS125;Yes)、ベースプロセッサ制御部130は、ベース命令によるレジスタ/メモリアクセスを禁止する(ステップS126)。
ベース命令によるレジスタ/メモリアクセスが禁止された場合、ベースプロセッサ制御部130は、更に、コプロセッサ200からの上述の“ステータス信号(Wait解除)”の入力を待つ(ステップS127)。コプロセッサ200から“ステータス信号(Wait解除)”を受け取ると(ステップS127;Yes)、ベースプロセッサ制御部130は、上記ステップS126で設定されたレジスタ/メモリアクセスの禁止を解除する(ステップS128)。
2−2.処理例(1)
次に、本実施の形態による処理の具体例を説明する。一例として、ベースプロセッサ100のプログラムカウンタをコプロセッサ200から制御することを考える。本例では、制御対象のベースプロセッサレジスタ140がプログラムカウンタである。
上記リードアクセス制御(ステップS230)において、コプロセッサ制御部230は、データメモリ20からデータを読み出すためのメモリアクセス制御を行う。これにより、データメモリ20からデータが読みだされ(ステップS130、S140)、コプロセッサ処理ユニット250は、データインタフェース350を介して当該読み出しデータを受け取る(ステップS240)。
続いて、ステップS250において、コプロセッサ処理ユニット250は、当該読み出しデータに基いて、プログラムカウンタ140に格納すべき分岐先アドレスを計算する。
次に、上記ライトアクセス制御(ステップS260)において、コプロセッサ制御部230は、プログラムカウンタ140にデータを書き込むためのレジスタアクセス制御を行う。そして、コプロセッサ処理ユニット250は、計算結果である分岐先アドレスを、データインタフェース350を介してプログラムカウンタ140に書き込む(ステップS270、S150、S160)。
このようにして、ベースプロセッサ100のプログラムカウンタを、コプロセッサ200からの制御によって更新することが可能となる。つまり、ベースプロセッサ100におけるプログラムシーケンスを、コプロセッサ200から制御することが可能となる。
2−3.処理例(2)
他の例として、ベースプロセッサ100のスタックポインタをコプロセッサ200から制御することを考える。本例では、制御対象のベースプロセッサレジスタ140がスタックポインタである。
上記リードアクセス制御(ステップS230)において、コプロセッサ制御部230は、スタックポインタ140からデータを読み出すためのレジスタアクセス制御を行う。これにより、スタックポインタ140からスタックポインタ値が読みだされ(ステップS130、S140)、コプロセッサ処理ユニット250は、データインタフェース350を介して当該スタックポインタ値を受け取る(ステップS240)。
続いて、ステップS250において、コプロセッサ処理ユニット250は、当該スタックポインタ値を所定値減少させ、新たなスタックポインタ値を計算する。
次に、上記ライトアクセス制御(ステップS260)において、コプロセッサ制御部230は、スタックポインタ140にデータを書き込むためのレジスタアクセス制御、及びデータメモリ20上のスタック領域にデータを書き込むためのメモリアクセス制御を行う。そして、コプロセッサ処理ユニット250は、データインタフェース350を介して、新たなスタックポインタ値をスタックポインタ140に書き込み、また、スタック領域に退避データをプッシュする(ステップS270、S150、S160)。尚、図1で示された構成の場合、スタックポインタ140に対する処理とデータメモリ20に対する処理を並列化することが可能であり、好適である。
このようにして、ベースプロセッサ100のスタック操作を、コプロセッサ200からの制御によって制御することが可能となる。つまり、ベースプロセッサ100におけるプログラムシーケンスを、コプロセッサ200から制御することが可能となる。
3.効果
本実施の形態によれば、ベースプロセッサ100が行うレジスタアクセスやメモリアクセスをコプロセッサ200側から制御することが可能となる。例えば、ベースプロセッサ100におけるプログラムシーケンスを、コプロセッサ200から制御することが可能となる。これにより、プロセッサシステムの性能を著しく向上させることが可能となる。尚、図1で示された構成の場合、ベースプロセッサレジスタ140に対する処理とデータメモリ20に対する処理を並列化することが可能であり、好適である。
また、本実施の形態によれば、コプロセッサ200用のコプロ命令は、ベース命令セットに組み込まれており、ベースプロセッサ100によって一旦フェッチされた後、命令インタフェース310を介してコプロセッサ200に供給される。コプロセッサ200専用の命令メモリや命令フェッチ部は不要であり、ベースプロセッサ100が共通の命令メモリ10から命令を順次フェッチするだけでよい。コプロセッサ200からベースプロセッサ100に対する“割り込み処理”は発生せず、そのような割り込み処理に起因するオーバーヘッドも生じない。
また、本実施の形態によれば、プロトコル制御からの処理性能向上やコード効率向上(コードサイズ縮小)といった効果も期待される。
以上、本発明の実施の形態が添付の図面を参照することにより説明された。但し、本発明は、上述の実施の形態に限定されず、要旨を逸脱しない範囲で当業者により適宜変更され得る。
1 プロセッサシステム
10 命令メモリ
20 データメモリ
100 ベースプロセッサ
110 命令フェッチ部
120 ベース命令デコーダ
130 ベースプロセッサ制御部
131 メモリ制御部
132 レジスタ制御部
133 処理制御部
140 ベースプロセッサレジスタ
150 ベース命令処理ユニット
200 コプロセッサ
220 コプロセッサデコーダ
230 コプロセッサ制御部
231 メモリ制御部
232 レジスタ制御部
233 処理制御部
240 コプロセッサレジスタ
250 コプロセッサ処理ユニット
310 命令インタフェース
320 メモリアクセスインタフェース
330 制御インタフェース
331 メモリ制御インタフェース
332 レジスタ制御インタフェース
333 処理制御インタフェース
350 データインタフェース
351 レジスタデータインタフェース
352 メモリデータインタフェース

Claims (10)

  1. コプロセッサが実行するコプロセッサ命令がベースプロセッサのプログラムに組み込まれたプロセッサシステムであって、
    命令メモリから命令を順次フェッチする命令フェッチ部を有する前記ベースプロセッサと、
    前記命令フェッチ部に結合され前記コプロセッサ命令がフェッチされた場合に前記コプロセッサ命令のデコード及び実行を行なう前記コプロセッサと、
    前記ベースプロセッサと前記コプロセッサとで共有するデータインタフェースに結合されたメモリと、
    前記ベースプロセッサと前記コプロセッサとの間を結合し前記コプロセッサが前記ベースプロセッサに対してデータのアクセスを要求する第1の制御インタフェースと、
    前記第1の制御インタフェースとは別に設けられ前記ベースプロセッサが前記メモリのアクセスを制御する第2の制御インタフェースと、
    を有し、
    前記コプロセッサは、前記第1の制御インタフェースを介して前記ベースプロセッサに対して前記データのアクセスを要求することによって、前記メモリまたは前記ベースプロセッサの内部レジスタに対して前記データの読み出しまたは書込みが可能である
    ことを特徴とするプロセッサシステム。
  2. 前記コプロセッサは、前記ベースプロセッサに対して前記データのアクセスを要求する際、前記ベースプロセッサの前記プログラムによる前記データのアクセスを待たせるウェイト信号を前記ベースプロセッサに送信し、
    前記ベースプロセッサは、前記ウェイト信号に応答して、前記プログラムによる前記データのアクセスを禁止し、
    前記コプロセッサは、前記ベースプロセッサに対する前記データのアクセスが完了すると、前記アクセスの禁止を解除するウェイト解除信号を前記ベースプロセッサに送信し、
    前記ベースプロセッサは、前記ウェイト解除信号に応答して、前記アクセスの禁止を解除する
    ことを特徴とする請求項1に記載のプロセッサシステム。
  3. ベースプロセッサと、
    コプロセッサと、
    データメモリと、
    制御インタフェースと、
    データインタフェースと
    を備え、
    前記ベースプロセッサは、
    レジスタと、
    前記データメモリ及び前記レジスタに対するアクセスを行うベースプロセッサ制御部と
    を備え、
    前記コプロセッサは、
    前記制御インタフェースを介して前記ベースプロセッサ制御部に接続されたコプロセッサ制御部と、
    前記データインタフェースを介して前記データメモリ及び前記レジスタに接続されたコプロセッサ処理ユニットと
    を備え、
    前記コプロセッサ制御部は、前記ベースプロセッサ制御部に前記制御インタフェースを介してメモリアクセス制御信号を送信することによって、前記ベースプロセッサ制御部に前記データメモリに対するアクセスを行わせるメモリアクセス制御を行い、
    前記コプロセッサ制御部は、前記ベースプロセッサ制御部に前記制御インタフェースを介してレジスタアクセス制御信号を送信することによって、前記ベースプロセッサ制御部に前記レジスタに対するアクセスを行わせるレジスタアクセス制御を行い、
    前記コプロセッサ処理ユニットは、前記データインタフェースを介して前記レジスタに対するデータ読み書きを行い、また、前記データインタフェースを介して前記データメモリに対するデータ読み書きを行う
    プロセッサシステム。
  4. 請求項3に記載のプロセッサシステムであって、
    前記ベースプロセッサは、更に、命令をフェッチする命令フェッチ部を備え、
    前記命令フェッチ部によってフェッチされる前記命令のセットはベース命令セットであり、
    前記コプロセッサ用のコプロ命令は、前記ベース命令セットに組み込まれており、
    前記ベースプロセッサは、命令インタフェースを介して前記コプロ命令を前記コプロセッサに供給し、
    前記コプロセッサ制御部及び前記コプロセッサ処理ユニットは、前記コプロ命令に基いて動作する
    プロセッサシステム。
  5. 請求項4に記載のプロセッサシステムであって、
    前記命令フェッチ部は、デコード前の前記コプロ命令の少なくとも一部を、前記命令インタフェースを介して前記コプロセッサに供給し、
    前記コプロセッサは、更に、前記命令インタフェースを介して受け取った前記コプロ命令の前記少なくとも一部をデコードするコプロセッサデコーダを備える
    プロセッサシステム。
  6. 請求項3乃至5のいずれか一項に記載のプロセッサシステムであって、
    前記ベースプロセッサ制御部は、
    前記データメモリに対するアクセスを行う第1メモリ制御部と、
    前記レジスタに対するアクセスを行う第1レジスタ制御部と
    を備え、
    前記コプロセッサ制御部は、
    前記メモリアクセス制御を行う第2メモリ制御部と、
    前記レジスタアクセス制御を行う第2レジスタ制御部と
    を備え、
    前記制御インタフェースは、
    前記第1メモリ制御部と前記第2メモリ制御部との間を接続するメモリ制御インタフェースと、
    前記第1レジスタ制御部と前記第2レジスタ制御部との間を接続するレジスタ制御インタフェースと
    を備え、
    前記メモリ制御インタフェースと前記レジスタ制御インタフェースとは互いから独立しており、
    前記第2メモリ制御部は、前記メモリ制御インタフェースを介して前記メモリアクセス制御を行い、
    前記第2レジスタ制御部は、前記レジスタ制御インタフェースを介して前記レジスタアクセス制御を行い、
    前記データインタフェースは、
    前記レジスタと前記コプロセッサ処理ユニットとの間を接続するレジスタデータインタフェースと、
    前記データメモリと前記コプロセッサ処理ユニットとの間を接続するメモリデータインタフェースと
    を備え、
    前記レジスタデータインタフェースと前記メモリデータインタフェースとは互いから独立しており、
    前記コプロセッサ処理ユニットは、前記レジスタデータインタフェースを介して前記レジスタに対するデータ読み書きを行い、また、前記メモリデータインタフェースを介して前記データメモリに対するデータ読み書きを行う
    プロセッサシステム。
  7. 請求項3乃至6のいずれか一項に記載のプロセッサシステムであって、
    前記コプロセッサ制御部は、前記データメモリからデータを読み出す前記メモリアクセス制御、及び、前記レジスタからデータを読み出す前記レジスタアクセス制御のうち少なくとも一方を含むリードアクセス制御を行い、
    前記コプロセッサ処理ユニットは、前記リードアクセス制御に伴って前記データメモリ及び前記レジスタの少なくとも一方から読み出された前記データを、前記データインタフェースを介して受け取り、
    前記コプロセッサ処理ユニットは、前記読み出されたデータを用いて演算処理を行うことにより、演算結果データを作成し、
    前記コプロセッサ制御部は、前記データメモリにデータを書き込む前記メモリアクセス制御、及び、前記レジスタにデータを書き込む前記レジスタアクセス制御のうち少なくとも一方を含むライトアクセス制御を行い、
    前記コプロセッサ処理ユニットは、前記ライトアクセス制御に伴って、前記データインタフェースを介して前記演算結果データを前記データメモリ及び前記レジスタの少なくとも一方に書き込む
    プロセッサシステム。
  8. 請求項7に記載のプロセッサシステムであって、
    前記レジスタは、プログラムシーケンスを制御するためのレジスタである
    プロセッサシステム。
  9. 請求項8に記載のプロセッサシステムであって、
    前記レジスタはプログラムカウンタであり、
    前記リードアクセス制御において、前記コプロセッサ制御部は、前記データメモリからデータを読み出す前記メモリアクセス制御を行い、
    前記コプロセッサ処理ユニットは、前記データメモリから読み出されたデータに基づいて分岐先アドレスを計算し、
    前記ライトアクセス制御において、前記コプロセッサ制御部は、前記プログラムカウンタにデータを書き込む前記レジスタアクセス制御を行い、
    前記コプロセッサ処理ユニットは、前記分岐先アドレスを前記プログラムカウンタに書き込む
    プロセッサシステム。
  10. 請求項8に記載のプロセッサシステムであって、
    前記レジスタはスタックポインタであり、
    前記リードアクセス制御において、前記コプロセッサ制御部は、前記スタックポインタからデータを読み出す前記レジスタアクセス制御を行い、
    前記コプロセッサ処理ユニットは、前記スタックポインタから読み出されたデータに基いて新たなスタックポインタ値を計算し、
    前記ライトアクセス制御において、前記コプロセッサ制御部は、前記スタックポインタにデータを書き込む前記レジスタアクセス制御、及び、前記データメモリ上のスタック領域にデータを書き込む前記メモリアクセス制御を行い、
    前記コプロセッサ処理ユニットは、前記新たなスタックポインタ値を前記スタックポインタに書き込み、また、前記スタック領域に退避データをプッシュする
    プロセッサシステム。
JP2010061110A 2010-03-17 2010-03-17 プロセッサシステム Expired - Fee Related JP5555514B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010061110A JP5555514B2 (ja) 2010-03-17 2010-03-17 プロセッサシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010061110A JP5555514B2 (ja) 2010-03-17 2010-03-17 プロセッサシステム

Publications (2)

Publication Number Publication Date
JP2011197774A true JP2011197774A (ja) 2011-10-06
JP5555514B2 JP5555514B2 (ja) 2014-07-23

Family

ID=44875943

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010061110A Expired - Fee Related JP5555514B2 (ja) 2010-03-17 2010-03-17 プロセッサシステム

Country Status (1)

Country Link
JP (1) JP5555514B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9501282B2 (en) 2013-04-22 2016-11-22 Fujitsu Limited Arithmetic processing device

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01263760A (ja) * 1988-04-15 1989-10-20 Hitachi Ltd コプロセツサのデータ転送制御方法およびその回路
JP2001147810A (ja) * 1999-10-01 2001-05-29 Hitachi Ltd マイクロコンピュータ/浮動小数点プロセッサインタフェースと方法
JP2001147902A (ja) * 1999-11-22 2001-05-29 Nec Corp マイクロプロセッサシステム
JP2002503370A (ja) * 1997-06-10 2002-01-29 エイアールエム リミテッド コプロセッサ・データ・アクセス制御
JP2004046896A (ja) * 2003-09-12 2004-02-12 Matsushita Electric Ind Co Ltd 複合演算処理装置
JP2006127183A (ja) * 2004-10-29 2006-05-18 Renesas Technology Corp 情報処理装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01263760A (ja) * 1988-04-15 1989-10-20 Hitachi Ltd コプロセツサのデータ転送制御方法およびその回路
JP2002503370A (ja) * 1997-06-10 2002-01-29 エイアールエム リミテッド コプロセッサ・データ・アクセス制御
JP2001147810A (ja) * 1999-10-01 2001-05-29 Hitachi Ltd マイクロコンピュータ/浮動小数点プロセッサインタフェースと方法
JP2001147902A (ja) * 1999-11-22 2001-05-29 Nec Corp マイクロプロセッサシステム
JP2004046896A (ja) * 2003-09-12 2004-02-12 Matsushita Electric Ind Co Ltd 複合演算処理装置
JP2006127183A (ja) * 2004-10-29 2006-05-18 Renesas Technology Corp 情報処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9501282B2 (en) 2013-04-22 2016-11-22 Fujitsu Limited Arithmetic processing device

Also Published As

Publication number Publication date
JP5555514B2 (ja) 2014-07-23

Similar Documents

Publication Publication Date Title
JP6708335B2 (ja) ユーザレベルの分岐及び結合を行うプロセッサ、方法、システム、及び命令
JP6143872B2 (ja) 装置、方法、およびシステム
JP2006318051A (ja) マイクロプロセッサ及びマイクロプロセッサの制御方法
US8756405B2 (en) Selective routing of local memory accesses and device thereof
GB2563469A (en) Methods and systems for inter-pipeline data hazard avoidance
JP2021197155A (ja) 優先度スケジューリングを備える実行キューを有する機能ユニットを備えるマイクロプロセッサ
JP5555514B2 (ja) プロセッサシステム
US20180011636A1 (en) Information processing apparatus and method of accessing a memory
JP2016224796A (ja) 演算処理装置および演算処理装置の処理方法
US20140331025A1 (en) Reconfigurable processor and operation method thereof
US7953962B2 (en) Multiprocessor system and control method thereof
JP4471947B2 (ja) データ処理装置及びデータ処理方法
US10296338B2 (en) System, apparatus and method for low overhead control transfer to alternate address space in a processor
JP5922353B2 (ja) プロセッサ
JP2010003151A (ja) データ処理装置
JP2016532233A (ja) アドレスへの書き込みに対する監視命令を実行するスケーラブル機構
JP2009157808A (ja) データ処理装置及びデータ処理装置におけるバスアクセス制御方法
US9710389B2 (en) Method and apparatus for memory aliasing detection in an out-of-order instruction execution platform
JP4889235B2 (ja) プログラム制御プロセッサ
JP2011070290A (ja) データプロセッサ
US20140201505A1 (en) Prediction-based thread selection in a multithreading processor
US20190004855A1 (en) Operation processing device and control method of operation processing device
US10514925B1 (en) Load speculation recovery
US20110131397A1 (en) Multiprocessor system and multiprocessor control method
JP2006195705A (ja) プロセッサ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120725

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130815

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130819

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131017

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140318

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140512

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140602

R150 Certificate of patent or registration of utility model

Ref document number: 5555514

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees