JP2010176505A - インターフェース装置、演算処理装置、インターフェース生成装置、および回路生成装置 - Google Patents
インターフェース装置、演算処理装置、インターフェース生成装置、および回路生成装置Info
- Publication number
- JP2010176505A JP2010176505A JP2009019893A JP2009019893A JP2010176505A JP 2010176505 A JP2010176505 A JP 2010176505A JP 2009019893 A JP2009019893 A JP 2009019893A JP 2009019893 A JP2009019893 A JP 2009019893A JP 2010176505 A JP2010176505 A JP 2010176505A
- Authority
- JP
- Japan
- Prior art keywords
- address
- data
- cache memory
- cache
- stream
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
【課題】演算装置同士を最小の記憶素子数で接続することが可能で、キャッシュメモリに記憶するデータ数を最小にしても確実にアドレス指定によるデータ転送を行えるようにする。
【解決手段】バッファに保存した書込みデータを書込みアドレスの順序に並び替えてストリームデータとして出力するストリーム変換装置130と、キャッシュメモリ140と、読出しに関するアドレス情報で指定されたデータがキャッシュメモリに既にロードされているかを判定し、ロードされていない場合には、ロード信号を出力し、ロードアドレスを出力する制御装置150と、ロードアドレスを用いて、読出しアドレスで指定されたデータがキャッシュメモリのどの記憶素子に保存されているかを求め、求めた値をキャッシュアドレスとしてキャッシュメモリに出力し、キャッシュメモリから入力されたキャッシュデータを読出しデータとして出力するアドレス変換装置160と、を有する。
【選択図】図4
【解決手段】バッファに保存した書込みデータを書込みアドレスの順序に並び替えてストリームデータとして出力するストリーム変換装置130と、キャッシュメモリ140と、読出しに関するアドレス情報で指定されたデータがキャッシュメモリに既にロードされているかを判定し、ロードされていない場合には、ロード信号を出力し、ロードアドレスを出力する制御装置150と、ロードアドレスを用いて、読出しアドレスで指定されたデータがキャッシュメモリのどの記憶素子に保存されているかを求め、求めた値をキャッシュアドレスとしてキャッシュメモリに出力し、キャッシュメモリから入力されたキャッシュデータを読出しデータとして出力するアドレス変換装置160と、を有する。
【選択図】図4
Description
本発明は、アドレス指定によるデータ転送を行う演算装置間のインターフェースとして適用されるインターフェース装置、演算処理装置、インターフェース生成装置、および回路生成装置に関するものである。
一般的に、アドレス指定によるデータ転送を行うためには、演算装置間に大量の記憶素子が配置される(たとえば特許文献1参照)。
図1は、一般的なデータ転送方法を適用した演算処理装置の一例を示すブロック図である。
図1の演算処理装置10は、第1演算装置11、第2演算装置12、主記憶装置13、およびアドレスセレクタ14を有する。
また、図1において、WDTは書込みデータを、WADRは書込みアドレスを、WCTLは書込み制御信号を、RDTは読出しデータを、RADRは読出しアドレスを、ADRは選択されたアドレスをそれぞれ示している。
また、図1において、WDTは書込みデータを、WADRは書込みアドレスを、WCTLは書込み制御信号を、RDTは読出しデータを、RADRは読出しアドレスを、ADRは選択されたアドレスをそれぞれ示している。
図1の演算処理装置10では、第1演算装置11が出力した書込みデータWDTを書込みアドレスWADRで指定した位置の主記憶装置13に保存する。
そして、演算処理装置10では、第2演算装置12が読出しアドレスRADRで指定した位置の記憶素子からデータを読み出すことで第1演算装置11から第2演算装置12へのデータ転送を行っている。
そして、演算処理装置10では、第2演算装置12が読出しアドレスRADRで指定した位置の記憶素子からデータを読み出すことで第1演算装置11から第2演算装置12へのデータ転送を行っている。
また、一般的に、大容量の主記憶装置の速度が遅くデータ転送に時間がかかる場合に、演算装置と主記憶装置の間にキャッシュメモリが配置される(たとえば特許文献2参照)。
図2は、キャッシュメモリを用いた演算処理装置の一例を示すブロック図である。
図2の演算処理装置10Aでは、図1の演算処理装置10の構成に、キャッシュメモリ15が設けられている。
図2の演算処理装置10Aでは、第1演算装置11が出力した書込みデータWDTを一時的に小容量で高速なキャッシュメモリ15に書込む。
そして、第2演算装置12が読出しアドレスRADRで指定したデータをキャッシュメモリ15から読み出すことで第1演算装置11から第2演算装置12へのデータ転送を行っている。
そして、第2演算装置12が読出しアドレスRADRで指定したデータをキャッシュメモリ15から読み出すことで第1演算装置11から第2演算装置12へのデータ転送を行っている。
キャッシュメモリ15は、定期的にキャッシュメモリ15に蓄積された書込みデータWDTを主記憶装置13にまとめて書き込む。
また、キャッシュメモリ15は、読出しアドレスRADRで指定されたデータがキャッシュメモリ15上に存在しない場合には、主記憶装置13の読出しアドレスRADRに対応する記憶素子からデータを読出して、読出しデータRDTとして出力する。
また、キャッシュメモリ15は、読出しアドレスRADRで指定されたデータがキャッシュメモリ15上に存在しない場合には、主記憶装置13の読出しアドレスRADRに対応する記憶素子からデータを読出して、読出しデータRDTとして出力する。
図1のようなデータ転送方法では、主記憶装置は書込みアドレスWADR・読出しアドレスRADRが指し示すアドレスと一意に対応する記憶素子を有する必要があるため、大量の記憶素子が必要になり、回路面積が増大するという不利益がある。
たとえば特許文献1に開示された技術では、特許文献1の図13に示されているように、2つのプロセッサが通信する際に、メモリ制御部に接続されたメインメモリを用いる必要があり、このために、大量の記憶素子が必要になるという不利益がある。
たとえば特許文献1に開示された技術では、特許文献1の図13に示されているように、2つのプロセッサが通信する際に、メモリ制御部に接続されたメインメモリを用いる必要があり、このために、大量の記憶素子が必要になるという不利益がある。
図2のようなデータ転送方法は、低速な主記憶装置13へのアクセス回数を低減して、データ転送速度を高速化するには有効である。
しかし、主記憶装置13に、書込みアドレスWADR・読出しアドレスRADRが指し示すアドレスADRと一意に対応する記憶素子が必要になるという点は変わらないため、大量の記憶素子が必要になって回路面積が増大するという問題の解決にはならない。
たとえば、特許文献2に開示された技術では、特許文献2の図1に示されているように、従来技術では、キャッシュメモリのデータは主メモリから読出したデータの一時記憶、もしくは主メモリへ書き込むデータの一時記憶である。
このため、この技術では、主メモリ無しに、データ転送を行うことはできない構成になっている。主メモリには、アドレスに一意に対応する記憶素子が必要になるため、大量の記憶素子が必要になるという不利益がある。
しかし、主記憶装置13に、書込みアドレスWADR・読出しアドレスRADRが指し示すアドレスADRと一意に対応する記憶素子が必要になるという点は変わらないため、大量の記憶素子が必要になって回路面積が増大するという問題の解決にはならない。
たとえば、特許文献2に開示された技術では、特許文献2の図1に示されているように、従来技術では、キャッシュメモリのデータは主メモリから読出したデータの一時記憶、もしくは主メモリへ書き込むデータの一時記憶である。
このため、この技術では、主メモリ無しに、データ転送を行うことはできない構成になっている。主メモリには、アドレスに一意に対応する記憶素子が必要になるため、大量の記憶素子が必要になるという不利益がある。
上述したように、図1および図2に示すような構成では、演算装置が出力するアドレスと一意に対応する大容量の記憶素子が無ければ、データ転送を実現できないという問題がある。
そこで、図2の構成から主記憶装置を取り除き、図3に示すように、第1演算装置11と第2演算装置12をキャッシュメモリ15だけを使って通信する構成にすることが考えられる。
この構成を採用すると、インターフェース装置が必要とする記憶素子の容量を削減することができる。
ただし、図3の構成では、第2演算装置12がまだ読出していないデータが存在するにもかかわらず、第1演算装置11がキャッシュメモリ15の内容を更新して、第2演算装置12が必要とするデータを上書きしてしまうおそれがある。この場合、データ転送が正しく行われない可能性がある。
また、図3の構成では、データ転送が正しく行われないおそれを低減するために、キャッシュメモリ15に記憶するデータ数を、多くしておく必要があるという問題がある。
この構成を採用すると、インターフェース装置が必要とする記憶素子の容量を削減することができる。
ただし、図3の構成では、第2演算装置12がまだ読出していないデータが存在するにもかかわらず、第1演算装置11がキャッシュメモリ15の内容を更新して、第2演算装置12が必要とするデータを上書きしてしまうおそれがある。この場合、データ転送が正しく行われない可能性がある。
また、図3の構成では、データ転送が正しく行われないおそれを低減するために、キャッシュメモリ15に記憶するデータ数を、多くしておく必要があるという問題がある。
本発明は、演算装置同士を最小の記憶素子数で接続することが可能で、キャッシュメモリに記憶するデータ数を最小にしても確実にアドレス指定によるデータ転送を行うことが可能なインターフェース装置、演算処理装置、インターフェース生成装置、および回路生成装置を提供することにある。
本発明の第1の観点のインターフェース装置は、書込みアドレスと書込みデータを受信し、受信データをバッファに保存し、当該バッファに保存した書込みデータを書込みアドレスの順序に並び替えてストリームデータとして出力するストリーム変換装置と、ロード信号がストリームデータのロードが必要なことを示す状態になると、受信したストリームデータを記憶素子に保存し、キャッシュアドレスが入力されると、当該キャッシュアドレスに対応する記憶素子に保持しているデータをキャッシュデータとして出力するキャッシュメモリと、読出しに関するアドレス情報で指定されたデータが上記キャッシュメモリに既にロードされているかを判定し、当該判定の結果、指定されたデータが上記キャッシュメモリにロードされていない場合には、上記キャッシュメモリにロードを指示する上記ロード信号を出力し、上記キャッシュメモリにロード済みのアドレスを示すロードアドレスを出力する制御装置と、上記キャッシュメモリにロード済みのアドレスを示している上記ロードアドレスを用いて、読出しアドレスで指定されたデータが上記キャッシュメモリのどの記憶素子に保存されているかを求め、求めた値を上記キャッシュアドレスとして上記キャッシュメモリに出力し、上記キャッシュメモリから入力されたキャッシュデータを読出しデータとして出力する少なくとも一つのアドレス変換装置とを有する。
本発明の第2の観点の演算処理装置は、第1演算装置と、第2演算装置と、上記第1演算装置と上記第2演算装置間のアドレス指定によるデータ転送を行うインターフェース装置と、を有し、上記インターフェース装置は、上記第1演算装置による書込みアドレスと書込みデータを受信し、受信データをバッファに保存し、当該バッファに保存した書込みデータを書込みアドレスの順序に並び替えてストリームデータとして出力するストリーム変換装置と、ロード信号がストリームデータのロードが必要なことを示す状態になると、受信したストリームデータを記憶素子に保存し、キャッシュアドレスが入力されると、当該キャッシュアドレスに対応する記憶素子に保持しているデータをキャッシュデータとして出力するキャッシュメモリと、上記第2演算装置により読出しに関するアドレス情報で指定されたデータが上記キャッシュメモリに既にロードされているかを判定し、当該判定の結果、指定されたデータが上記キャッシュメモリにロードされていない場合には、上記キャッシュメモリにロードを指示する上記ロード信号を出力し、上記キャッシュメモリにロード済みのアドレスを示すロードアドレスを出力する制御装置と、上記キャッシュメモリにロード済みのアドレスを示している上記ロードアドレスを用いて、読出しアドレスで指定されたデータが上記キャッシュメモリのどの記憶素子に保存されているかを求め、求めた値を上記キャッシュアドレスとして上記キャッシュメモリに出力し、上記キャッシュメモリから入力されたキャッシュデータを読出しデータとして上記第2演算装置に出力する少なくとも一つのアドレス変換装置と、を含む。
本発明の第3の観点のインターフェース生成装置は、書込みアドレスと書込みデータを受信し、受信データをバッファに保存し、当該バッファに保存した書込みデータを書込みアドレスの順序に並び替えてストリームデータとして出力するストリーム変換装置と、ロード信号がストリームデータのロードが必要なことを示す状態になると、受信したストリームデータを記憶素子に保存し、キャッシュアドレスが入力されると、当該キャッシュアドレスに対応する記憶素子に保持しているデータをキャッシュデータとして出力するキャッシュメモリと、読出しに関するアドレス情報で指定されたデータが上記キャッシュメモリに既にロードされているかを判定し、当該判定の結果、指定されたデータが上記キャッシュメモリにロードされていない場合には、上記キャッシュメモリにロードを指示する上記ロード信号を出力し、上記キャッシュメモリにロード済みのアドレスを示すロードアドレスを出力する制御装置と、上記キャッシュメモリにロード済みのアドレスを示している上記ロードアドレスを用いて、読出しアドレスで指定されたデータが上記キャッシュメモリのどの記憶素子に保存されているかを求め、求めた値を上記キャッシュアドレスとして上記キャッシュメモリに出力し、上記キャッシュメモリから入力されたキャッシュデータを読出しデータとして出力する少なくとも一つのアドレス変換装置と、を有するインターフェース装置を生成するために、生成対象のインターフェースと接続する回路記述の情報を記憶する回路情報記憶装置と、上記回路情報記憶装置から読み出した回路記述情報からインターフェースが満たすべき仕様を解析するインターフェース構成情報出力装置と、を含む。
本発明の第4の観点の回路生成装置は、書込みアドレスと書込みデータを受信し、受信データをバッファに保存し、当該バッファに保存した書込みデータを書込みアドレスの順序に並び替えてストリームデータとして出力するストリーム変換装置と、ロード信号がストリームデータのロードが必要なことを示す状態になると、受信したストリームデータを記憶素子に保存し、キャッシュアドレスが入力されると、当該キャッシュアドレスに対応する記憶素子に保持しているデータをキャッシュデータとして出力するキャッシュメモリと、読出しに関するアドレス情報で指定されたデータが上記キャッシュメモリに既にロードされているかを判定し、当該判定の結果、指定されたデータが上記キャッシュメモリにロードされていない場合には、上記キャッシュメモリにロードを指示する上記ロード信号を出力し、上記キャッシュメモリにロード済みのアドレスを示すロードアドレスを出力する制御装置と、上記キャッシュメモリにロード済みのアドレスを示している上記ロードアドレスを用いて、読出しアドレスで指定されたデータが上記キャッシュメモリのどの記憶素子に保存されているかを求め、求めた値を上記キャッシュアドレスとして上記キャッシュメモリに出力し、上記キャッシュメモリから入力されたキャッシュデータを読出しデータとして出力する少なくとも一つのアドレス変換装置と、を有するインターフェース装置と接続する演算装置を生成するために、上記インターフェース装置と接続する演算装置の機能を表現した記述を記憶する回路記述記憶装置と、上記回路記述記憶装置から読込んだ回路記述からインターフェース装置を生成する対象となっている配列への読み書きを抽出し、インターフェース装置と接続する通信プロトコルを表現した記述との置き換えを行う配列アクセス置き換え装置と、配列アクセスの置き換えを行った記述から詳細な回路記述を生成する詳細回路生成装置と、を含む。
本発明によれば、演算装置同士を最小の記憶素子数で接続することが可能で、キャッシュメモリに記憶するデータ数を最小にしても確実にアドレス指定によるデータ転送を行うことができる。
以下、本発明の実施形態を添付図面に関連付けて説明する。
なお、説明は以下の順序で行う
1.第1の実施形態(インターフェース装置の第1の構成例)
2.第2の実施形態(インターフェース装置の第2の構成例)
3.第3の実施形態(インターフェース装置の第3の構成例)
4.第4の実施形態(インターフェース装置の第4の構成例)
5.第5の実施形態(インターフェース装置の第5の構成例)
6.第6の実施形態(インターフェース装置の第6の構成例)
7.第7の実施形態(インターフェース装置の第7の構成例)
8.第8の実施形態(インターフェース装置の第8の構成例)
9.第9の実施形態(インターフェース装置の第9の構成例)
10.具体的な構成例
なお、説明は以下の順序で行う
1.第1の実施形態(インターフェース装置の第1の構成例)
2.第2の実施形態(インターフェース装置の第2の構成例)
3.第3の実施形態(インターフェース装置の第3の構成例)
4.第4の実施形態(インターフェース装置の第4の構成例)
5.第5の実施形態(インターフェース装置の第5の構成例)
6.第6の実施形態(インターフェース装置の第6の構成例)
7.第7の実施形態(インターフェース装置の第7の構成例)
8.第8の実施形態(インターフェース装置の第8の構成例)
9.第9の実施形態(インターフェース装置の第9の構成例)
10.具体的な構成例
<1.第1の実施形態>
図4は、本発明の第1の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
図4は、本発明の第1の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
第1の実施形態の演算処理装置100は、図4に示すように、第1演算装置110、第2演算装置120、ストリーム変換装置130、キャッシュメモリ140、制御装置150A、およびアドレス変換装置160を有する。
そして、ストリーム変換装置130、キャッシュメモリ140、制御装置150A、およびアドレス変換装置160によりインターフェース装置200が形成される。
ストリーム変換装置130、キャッシュメモリ140、制御装置150A、およびアドレス変換装置160の具体的な構成例については、後で詳述する。
そして、ストリーム変換装置130、キャッシュメモリ140、制御装置150A、およびアドレス変換装置160によりインターフェース装置200が形成される。
ストリーム変換装置130、キャッシュメモリ140、制御装置150A、およびアドレス変換装置160の具体的な構成例については、後で詳述する。
図4において、WADRは書込みアドレスを、WDTは書込みデータを、SWDTRBは書込みデータ受信可能信号を、STMDはストリームデータを、STMRBはストリーム受信可能信号を、それぞれ示している。
さらに、図4において、PLADRは先読みアドレスを、RADRは読出しアドレスを、RDTは読出しデータを、SLDはロード信号を、LADRはロードアドレスを、CADRはキャッシュアドレスを、CDTはキャッシュデータを、それぞれ示している。
そして、読出しに関するアドレス情報には、先読みアドレスPLADR、読出しアドレスRADRが含まれる。
さらに、図4において、PLADRは先読みアドレスを、RADRは読出しアドレスを、RDTは読出しデータを、SLDはロード信号を、LADRはロードアドレスを、CADRはキャッシュアドレスを、CDTはキャッシュデータを、それぞれ示している。
そして、読出しに関するアドレス情報には、先読みアドレスPLADR、読出しアドレスRADRが含まれる。
第1演算装置110は、順序が規則的である書込みアドレスWADR、および書込みデータWDTをストリーム変換装置130に出力する。
第1演算装置110は、たとえばストリーム変換装置130から書込みデータ受信可能信号SWDTRBが受信可能を示す場合に書込みデータWDTをストリーム変換装置130に出力する。
第1演算装置110は、たとえばストリーム変換装置130から書込みデータ受信可能信号SWDTRBが受信不可能を示す場合には、書込みデータWDTのストリーム変換装置130への出力を停止する。
第1演算装置110は、たとえばストリーム変換装置130から書込みデータ受信可能信号SWDTRBが受信可能を示す場合に書込みデータWDTをストリーム変換装置130に出力する。
第1演算装置110は、たとえばストリーム変換装置130から書込みデータ受信可能信号SWDTRBが受信不可能を示す場合には、書込みデータWDTのストリーム変換装置130への出力を停止する。
第2演算装置120は、先読みアドレスPLADRを制御装置150Aに出力する。
第2演算装置120は、読出しアドレスRADRをアドレス変換装置160に出力して、アドレス変換装置160から読出しデータRDTを受信する。
第2演算装置120は、読出しアドレスRADRをアドレス変換装置160に出力して、アドレス変換装置160から読出しデータRDTを受信する。
ストリーム変換装置130は、第1演算装置110から書込みアドレスWADRと書込みデータWDTを受信し、受信データを内部のバッファに保存する。
ストリーム変換装置130は、内部のバッファに保存した書込みデータWDTを書込みアドレスWADRの順序に並び替えてストリームデータSTMDとしてキャッシュメモリ140に出力する。
ストリーム変換装置130は、キャッシュメモリ140によるストリーム受信可能信号STMRBが受信可能を示す状態になっている期間のみストリームデータSTMDを出力する。
ストリーム変換装置130は、内部のバッファがフルでなく、書込みデータを受信できるときは書込みデータ受信可能信号SWDTRBを受信可能の状態として第1演算装置110に出力する。
また、ストリーム変換装置130は、内部のバッファがフルになり、書込みデータを受信できなくなると、書込みデータ受信可能信号SWDTRBを受信不可能の状態に変更する。
ストリーム変換装置130は、内部のバッファに保存した書込みデータWDTを書込みアドレスWADRの順序に並び替えてストリームデータSTMDとしてキャッシュメモリ140に出力する。
ストリーム変換装置130は、キャッシュメモリ140によるストリーム受信可能信号STMRBが受信可能を示す状態になっている期間のみストリームデータSTMDを出力する。
ストリーム変換装置130は、内部のバッファがフルでなく、書込みデータを受信できるときは書込みデータ受信可能信号SWDTRBを受信可能の状態として第1演算装置110に出力する。
また、ストリーム変換装置130は、内部のバッファがフルになり、書込みデータを受信できなくなると、書込みデータ受信可能信号SWDTRBを受信不可能の状態に変更する。
キャッシュメモリ140は、制御装置150Aによるロード信号SLDがストリームデータSTMDのロードが必要なことを示す状態になると、ストリーム受信可能信号STMRBを受信可能を示す状態に変化させる。
キャッシュメモリ140は、ストリーム受信可能信号STMRBを受信可能を示す状態に変化させると、ストリーム変換装置130から受信したストリームデータSTMDを内部の記憶素子に保存する。
キャッシュメモリ140は、内部の記憶素子が全てストリームデータSTMDを保持済みの場合、内部の記憶素子に記憶された最も古いデータから順に削除する。
キャッシュメモリ140は、アドレス変換装置160によるキャッシュアドレスCADRが入力されると、そのキャッシュアドレスCADRに対応する記憶素子に保持しているデータをキャッシュデータCDTとしてアドレス変換装置160に出力する。
キャッシュメモリ140は、ストリーム受信可能信号STMRBを受信可能を示す状態に変化させると、ストリーム変換装置130から受信したストリームデータSTMDを内部の記憶素子に保存する。
キャッシュメモリ140は、内部の記憶素子が全てストリームデータSTMDを保持済みの場合、内部の記憶素子に記憶された最も古いデータから順に削除する。
キャッシュメモリ140は、アドレス変換装置160によるキャッシュアドレスCADRが入力されると、そのキャッシュアドレスCADRに対応する記憶素子に保持しているデータをキャッシュデータCDTとしてアドレス変換装置160に出力する。
制御装置150Aは、第2演算装置120から入力された先読みアドレスPLADRで指定されたデータがキャッシュメモリ140に既にロードされているかを判定する。
制御装置150Aは、判定の結果、指定されたデータがキャッシュメモリ140にロードされていない場合には、キャッシュメモリ140にロードを指示するロード信号SLDを出力する。
また、制御装置150Aは、キャッシュメモリ140にロード済みのアドレスを示すロードアドレス信号LADRをアドレス変換装置160に出力する。
制御装置150Aは、判定の結果、指定されたデータがキャッシュメモリ140にロードされていない場合には、キャッシュメモリ140にロードを指示するロード信号SLDを出力する。
また、制御装置150Aは、キャッシュメモリ140にロード済みのアドレスを示すロードアドレス信号LADRをアドレス変換装置160に出力する。
アドレス変換装置160は、キャッシュメモリ140にロード済みのアドレスを示しているロードアドレスLADRを用いて、読出しアドレスRADRで指定されたデータがキャッシュメモリ140のどの記憶素子に保存されているかを計算する。
アドレス変換装置160は、計算した値をキャッシュアドレスCADRとしてキャッシュメモリ140に出力する。
また、アドレス変換装置160は、入力されたキャッシュデータCDTを読出しデータRDTとして第2演算装置120に出力する。
アドレス変換装置160は、計算した値をキャッシュアドレスCADRとしてキャッシュメモリ140に出力する。
また、アドレス変換装置160は、入力されたキャッシュデータCDTを読出しデータRDTとして第2演算装置120に出力する。
本第1の実施形態のインターフェース装置200においては、画像処理など多くの演算では、書込みアドレスWADRと読出しアドレスRADRの順序が規則的であることに着目している。
インターフェース装置200において、第1演算装置110による書込みデータWDTをストリーム変換装置130で書込みアドレス順に並び変えたストリームデータSTMDに変換する。
インターフェース装置200において、そのストリームデータSTMDをキャッシュメモリ140が受信すべきか否かを制御装置150Aが第2演算装置120による読出しアドレスRADRから判断する。
本第1の実施形態においては、以上の構成を有することにより、キャッシュメモリ140に記憶するデータ数を最小にしても、確実にデータ転送できるインターフェース装置200を実現している。
また、図1および図2で示すような構成では、キャッシュメモリにアドレスとデータの対を記憶する必要がある。
これに対して、本第1の実施形態のインターフェース装置200においては、ストリーム変換装置130によって書込みデータWDTを書込みアドレスWADRの順に並び替えるため、キャッシュメモリ140にアドレスの値を記憶する必要が無くなる。
これにより、本第1の実施形態では、キャッシュメモリ140の記憶素子数を削減およびキャッシュメモリの構成簡略化を実現することができる。
インターフェース装置200において、第1演算装置110による書込みデータWDTをストリーム変換装置130で書込みアドレス順に並び変えたストリームデータSTMDに変換する。
インターフェース装置200において、そのストリームデータSTMDをキャッシュメモリ140が受信すべきか否かを制御装置150Aが第2演算装置120による読出しアドレスRADRから判断する。
本第1の実施形態においては、以上の構成を有することにより、キャッシュメモリ140に記憶するデータ数を最小にしても、確実にデータ転送できるインターフェース装置200を実現している。
また、図1および図2で示すような構成では、キャッシュメモリにアドレスとデータの対を記憶する必要がある。
これに対して、本第1の実施形態のインターフェース装置200においては、ストリーム変換装置130によって書込みデータWDTを書込みアドレスWADRの順に並び替えるため、キャッシュメモリ140にアドレスの値を記憶する必要が無くなる。
これにより、本第1の実施形態では、キャッシュメモリ140の記憶素子数を削減およびキャッシュメモリの構成簡略化を実現することができる。
<2.第2の実施形態>
図5は、本発明の第2の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
図5は、本発明の第2の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
本第2の実施形態に係るインターフェース装置200Aは、第1の実施形態に係るインターフェース装置200と次の点で異なる。
インターフェース装置200Aの制御装置150Aは、第2演算装置120から入力された読出しアドレスRADRで指定されたデータがキャッシュメモリ140に既にロードされているかを判定する。
制御装置150Aは、ロードされていない場合にはキャッシュメモリ140にロードを指示するロード信号SLDを出力する。
また、制御装置150Aは、キャッシュメモリ140にロード済みのアドレスを示すロードアドレス信号LADRをアドレス変換装置160に出力する。
インターフェース装置200Aの制御装置150Aは、第2演算装置120から入力された読出しアドレスRADRで指定されたデータがキャッシュメモリ140に既にロードされているかを判定する。
制御装置150Aは、ロードされていない場合にはキャッシュメモリ140にロードを指示するロード信号SLDを出力する。
また、制御装置150Aは、キャッシュメモリ140にロード済みのアドレスを示すロードアドレス信号LADRをアドレス変換装置160に出力する。
その他の構成は第1の実施形態と同様である。
本第2の実施形態によれば、上述した第1の実施形態の効果と同様の効果を得ることができる。
本第2の実施形態によれば、上述した第1の実施形態の効果と同様の効果を得ることができる。
<3.第3の実施形態>
図6は、本発明の第3の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
図6は、本発明の第3の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
本第3の実施形態に係るインターフェース装置200Bが、第1の実施形態に係るインターフェース装置200と異なる点は、アドレス変換装置が複数系統(本例では2)配置されて、第2演算装置120が複数データを読み出し可能に構成されていることにある。
制御装置150Bは、第2演算装置120から入力された先読みアドレスPLADRで指定されたデータがキャッシュメモリ140に既にロードされているかを判定する。
制御装置150Bは、判定の結果、指定されたデータがキャッシュメモリ140にロードされていない場合には、キャッシュメモリ140にロードを指示するロード信号SLDを出力する。
制御装置150Bは、キャッシュメモリ140にロード済みのアドレスを示すロードアドレス信号LADR1をアドレス変換装置160B−1に出力する。
また、制御装置150Bは、キャッシュメモリ140にロード済みのアドレスを示すロードアドレス信号LADR2をアドレス変換装置160B−2に出力する。
制御装置150Bは、判定の結果、指定されたデータがキャッシュメモリ140にロードされていない場合には、キャッシュメモリ140にロードを指示するロード信号SLDを出力する。
制御装置150Bは、キャッシュメモリ140にロード済みのアドレスを示すロードアドレス信号LADR1をアドレス変換装置160B−1に出力する。
また、制御装置150Bは、キャッシュメモリ140にロード済みのアドレスを示すロードアドレス信号LADR2をアドレス変換装置160B−2に出力する。
アドレス変換装置160B−1は、キャッシュメモリ140にロード済みのアドレスを示しているロードアドレスLADR1を用いて、読出しアドレスRADR1で指定されたデータがキャッシュメモリ140のどの記憶素子に保存されているかを計算する。
アドレス変換装置160B−1は、計算した値をキャッシュアドレスCADR1としてキャッシュメモリ140に出力する。
また、アドレス変換装置160B−1は、入力されたキャッシュデータCDT1を読出しデータRDT1として第2演算装置120に出力する。
アドレス変換装置160B−1は、計算した値をキャッシュアドレスCADR1としてキャッシュメモリ140に出力する。
また、アドレス変換装置160B−1は、入力されたキャッシュデータCDT1を読出しデータRDT1として第2演算装置120に出力する。
アドレス変換装置160B−2は、キャッシュメモリ140にロード済みのアドレスを示しているロードアドレスLADR2を用いて、読出しアドレスRADR2で指定されたデータがキャッシュメモリ140のどの記憶素子に保存されているかを計算する。
アドレス変換装置160B−2は、計算した値をキャッシュアドレスCADR2としてキャッシュメモリ140に出力する。
また、アドレス変換装置160B−2は、入力されたキャッシュデータCDT2を読出しデータRDT2として第2演算装置120に出力する。
アドレス変換装置160B−2は、計算した値をキャッシュアドレスCADR2としてキャッシュメモリ140に出力する。
また、アドレス変換装置160B−2は、入力されたキャッシュデータCDT2を読出しデータRDT2として第2演算装置120に出力する。
その他の構成は第1の実施形態と同様である。
本第3の実施形態によれば、上述した第1の実施形態の効果と同様の効果を得ることができることはもとより、複数のデータを読出すことが可能である。
本第3の実施形態によれば、上述した第1の実施形態の効果と同様の効果を得ることができることはもとより、複数のデータを読出すことが可能である。
なお、アドレス変換装置の数は、図6の例では2つとしているが、この数は2より大きい数であってもよい。
<4.第4の実施形態>
図7は、本発明の第4の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
図7は、本発明の第4の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
本第4の実施形態に係るインターフェース装置200Cは、第3の実施形態に係るインターフェース装置200Bと次の点で異なる。
インターフェース装置200Cの制御装置150Cは、第2演算装置120から入力された読出しアドレスRADR1で指定されたデータがキャッシュメモリ140に既にロードされているかを判定する。
制御装置150Cは、ロードされていない場合にはキャッシュメモリ140にロードを指示するロード信号SLDを出力する。
また、制御装置150Cは、キャッシュメモリ140にロード済みのアドレスを示すロードアドレス信号LADR1をアドレス変換装置160B−1に出力する。
制御装置150Cは、第2演算装置120から入力された読出しアドレスRADR2で指定されたデータがキャッシュメモリ140に既にロードされているかを判定する。
制御装置150Cは、ロードされていない場合にはキャッシュメモリ140にロードを指示するロード信号SLDを出力する。
また、制御装置150Cは、キャッシュメモリ140にロード済みのアドレスを示すロードアドレス信号LADR2をアドレス変換装置160B−2に出力する。
インターフェース装置200Cの制御装置150Cは、第2演算装置120から入力された読出しアドレスRADR1で指定されたデータがキャッシュメモリ140に既にロードされているかを判定する。
制御装置150Cは、ロードされていない場合にはキャッシュメモリ140にロードを指示するロード信号SLDを出力する。
また、制御装置150Cは、キャッシュメモリ140にロード済みのアドレスを示すロードアドレス信号LADR1をアドレス変換装置160B−1に出力する。
制御装置150Cは、第2演算装置120から入力された読出しアドレスRADR2で指定されたデータがキャッシュメモリ140に既にロードされているかを判定する。
制御装置150Cは、ロードされていない場合にはキャッシュメモリ140にロードを指示するロード信号SLDを出力する。
また、制御装置150Cは、キャッシュメモリ140にロード済みのアドレスを示すロードアドレス信号LADR2をアドレス変換装置160B−2に出力する。
その他の構成は第3の実施形態と同様である。
本第4の実施形態によれば、上述した第3の実施形態の効果と同様の効果を得ることができる。
本第4の実施形態によれば、上述した第3の実施形態の効果と同様の効果を得ることができる。
<5.第5の実施形態>
図8は、本発明の第5の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
図8は、本発明の第5の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
本第5の実施形態に係るインターフェース装置200Dは、第1の実施形態に係るインターフェース装置200と次の点で異なる。
インターフェース装置200Dは、セレクタ170を有し、テストモード切替信号TMSWに応じてキャッシュメモリ140に入力するストリームデータSTMDを第1演算装置110からのデータとテスト用データTDTとで切り替えられるように構成されている。
また、インターフェース装置200Dは、キャッシュメモリ140によるストリーム受信可能信号STMRBが、テスト用データ受信可能信号TDTRBとして図示しないテスト系回路に供給する。
インターフェース装置200Dは、セレクタ170を有し、テストモード切替信号TMSWに応じてキャッシュメモリ140に入力するストリームデータSTMDを第1演算装置110からのデータとテスト用データTDTとで切り替えられるように構成されている。
また、インターフェース装置200Dは、キャッシュメモリ140によるストリーム受信可能信号STMRBが、テスト用データ受信可能信号TDTRBとして図示しないテスト系回路に供給する。
その他の構成は第1の実施形態と同様である。
本第5の実施形態によれば、上述した第1の実施形態の効果と同様の効果を得ることができることはもとより、テスト用データを用いたテストを行うことができる。
本第5の実施形態によれば、上述した第1の実施形態の効果と同様の効果を得ることができることはもとより、テスト用データを用いたテストを行うことができる。
<6.第6の実施形態>
図9は、本発明の第6の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
図9は、本発明の第6の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
本第6の実施形態に係るインターフェース装置200Eは、第2の実施形態に係るインターフェース装置200Aと次の点で異なる。
インターフェース装置200Eは、セレクタ170Eを有し、テストモード切替信号TMSWに応じてキャッシュメモリ140に入力するストリームデータSTMDを第1演算装110からのデータとテスト用データTDTとで切り替えられるように構成されている。
また、インターフェース装置200Eは、キャッシュメモリ140によるストリーム受信可能信号STMRBが、テスト用データ受信可能信号TDTRBとして図示しないテスト系回路に供給する。
インターフェース装置200Eは、セレクタ170Eを有し、テストモード切替信号TMSWに応じてキャッシュメモリ140に入力するストリームデータSTMDを第1演算装110からのデータとテスト用データTDTとで切り替えられるように構成されている。
また、インターフェース装置200Eは、キャッシュメモリ140によるストリーム受信可能信号STMRBが、テスト用データ受信可能信号TDTRBとして図示しないテスト系回路に供給する。
その他の構成は第2の実施形態と同様である。
本第6の実施形態によれば、上述した第2の実施形態の効果と同様の効果を得ることができることはもとより、テスト用データを用いたテストを行うことができる。
本第6の実施形態によれば、上述した第2の実施形態の効果と同様の効果を得ることができることはもとより、テスト用データを用いたテストを行うことができる。
[インターフェース生成装置の構成例]
ここで、本実施形態に係るインターフェース装置の生成装置について説明する。
図10は、本発明の第1から第6の実施形態に係るインターフェース生成装置の構成例を示すブロック図である。
ここで、本実施形態に係るインターフェース装置の生成装置について説明する。
図10は、本発明の第1から第6の実施形態に係るインターフェース生成装置の構成例を示すブロック図である。
図10のインターフェース生成装置210は、回路情報記憶装置211、インターフェース構成情報出力装置212、インターフェース構成情報記憶装置213、生成装置214、およびインターフェース記憶装置215を有する。
回路情報記憶装置211は、生成対象のインターフェースと接続する回路の情報を記憶する。
インターフェース構成情報出力装置212は、回路情報から、たとえば図11に示すような、インターフェースが満たすべき仕様を解析し、解析結果をインターフェース構成情報としてインターフェース構成情報記憶装置213に出力する。
図11に示されるインターフェースが満たすべき仕様とは、次のとおりである。
<1>ストリーム変換装置130のバッファの容量、
<2>ストリーム変換装置130のバッファに使用する記憶素子の種類、
<3>キャッシュメモリ140の容量、
<4>キャッシュメモリ140に使用する記憶素子の種類、
<5>読出しアドレスRADRの入力数、
<6>先読みアドレスPLADRの変化パターン、
<7>読出しアドレス間の関係、
である。
<1>ストリーム変換装置130のバッファの容量、
<2>ストリーム変換装置130のバッファに使用する記憶素子の種類、
<3>キャッシュメモリ140の容量、
<4>キャッシュメモリ140に使用する記憶素子の種類、
<5>読出しアドレスRADRの入力数、
<6>先読みアドレスPLADRの変化パターン、
<7>読出しアドレス間の関係、
である。
インターフェース構成情報記憶装置213は、インターフェース構成情報を記憶する。
生成装置214は、インターフェース構成情報記憶装置213に記憶されているインターフェース構成情報を元に、図4、図5、図6、図7、図8、図9で示したようなインターフェース装置を生成する。
インターフェース記憶装置215は、生成装置214で生成されたインターフェースを保存する。
生成装置214は、インターフェース構成情報記憶装置213に記憶されているインターフェース構成情報を元に、図4、図5、図6、図7、図8、図9で示したようなインターフェース装置を生成する。
インターフェース記憶装置215は、生成装置214で生成されたインターフェースを保存する。
なお、図10のインターフェース生成装置210のより具体的な処理については後で説明する。
<7.第7の実施形態>
図12は、本発明の第7の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
図12は、本発明の第7の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
本第7の実施形態に係るインターフェース装置200Fは、第1の実施形態に係るインターフェース装置200と次の点で異なる。
インターフェース装置200Fは、インターフェース装置200の構成に加えて、アドレス整合性検証装置を含んで構成されている。
インターフェース装置200Fは、書込みアドレスWADRの整合性を確認するための書込みアドレス整合性検証装置180、並びに先読みアドレスPLADRおよび読出しアドレスRADRの整合性を確認するための読出しアドレス整合性検証装置190を含む。
インターフェース装置200Fは、インターフェース装置200の構成に加えて、アドレス整合性検証装置を含んで構成されている。
インターフェース装置200Fは、書込みアドレスWADRの整合性を確認するための書込みアドレス整合性検証装置180、並びに先読みアドレスPLADRおよび読出しアドレスRADRの整合性を確認するための読出しアドレス整合性検証装置190を含む。
書込みアドレス整合性検証装置180では、書込みアドレスWADRの出力順序からストリーム変換装置130内部で必要となる記憶素子の容量を計算する。
そして、書込みアドレス整合性検証装置180では、計算して得られた容量値がストリーム変換装置130の実際の記憶素子容量よりも大きいか小さいかをチェックする。
そして、書込みアドレス整合性検証装置180では、計算して得られた容量値がストリーム変換装置130の実際の記憶素子容量よりも大きいか小さいかをチェックする。
読出しアドレス整合性検証装置190では、先読みアドレスPLADRおよび読出しアドレスRADRの出力順序から、キャッシュメモリ140に必要な記憶素子容量を計算する。
そして、読出しアドレス整合性検証装置190では、計算して得られた容量値がキャッシュメモリ140中の実際の記憶素子容量よりも大きいか小さいかをチェックする。
そして、読出しアドレス整合性検証装置190では、計算して得られた容量値がキャッシュメモリ140中の実際の記憶素子容量よりも大きいか小さいかをチェックする。
その他の構成は第1の実施形態と同様である。
本第7の実施形態によれば、上述した第1の実施形態の効果と同様の効果を得ることができることはもとより、書込みアドレスおよび読出しアドレスの整合性を的確に検証することができる。
本第7の実施形態によれば、上述した第1の実施形態の効果と同様の効果を得ることができることはもとより、書込みアドレスおよび読出しアドレスの整合性を的確に検証することができる。
<8.第8の実施形態>
図13は、本発明の第8の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
図13は、本発明の第8の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
本第8の実施形態に係るインターフェース装置200Gは、第2の実施形態に係るインターフェース装置200Aと次の点で異なる。
インターフェース装置200Gは、インターフェース装置200Aの構成に加えて、アドレス整合性検証装置を含んで構成されている。
インターフェース装置200Gは、書込みアドレスWADRの整合性を確認するための書込みアドレス整合性検証装置180G、並びに読出しアドレスRADRの整合性を確認するための読出しアドレス整合性検証装置190Gを含む。
インターフェース装置200Gは、インターフェース装置200Aの構成に加えて、アドレス整合性検証装置を含んで構成されている。
インターフェース装置200Gは、書込みアドレスWADRの整合性を確認するための書込みアドレス整合性検証装置180G、並びに読出しアドレスRADRの整合性を確認するための読出しアドレス整合性検証装置190Gを含む。
書込みアドレス整合性検証装置180Gでは、書込みアドレスWADRの出力順序からストリーム変換装置130内部で必要となる記憶素子の容量を計算する。
そして、書込みアドレス整合性検証装置180Gでは、計算して得られた容量値がストリーム変換装置130の実際の記憶素子容量よりも大きいか小さいかをチェックする。
そして、書込みアドレス整合性検証装置180Gでは、計算して得られた容量値がストリーム変換装置130の実際の記憶素子容量よりも大きいか小さいかをチェックする。
読出しアドレス整合性検証装置190Gでは、読出しアドレスRADRの出力順序から、キャッシュメモリ140に必要な記憶素子容量を計算する。
そして、読出しアドレス整合性検証装置190Gでは、計算して得られた容量値がキャッシュメモリ140中の実際の記憶素子容量よりも大きいか小さいかをチェックする。
そして、読出しアドレス整合性検証装置190Gでは、計算して得られた容量値がキャッシュメモリ140中の実際の記憶素子容量よりも大きいか小さいかをチェックする。
その他の構成は第2の実施形態と同様である。
本第8の実施形態によれば、上述した第2の実施形態の効果と同様の効果を得ることができることはもとより、書込みアドレスおよび読出しアドレスの整合性を的確に検証することができる。
本第8の実施形態によれば、上述した第2の実施形態の効果と同様の効果を得ることができることはもとより、書込みアドレスおよび読出しアドレスの整合性を的確に検証することができる。
図14は、一般的なデータ転送方法を適用した演算処理装置にアドレス整合性検証装置を配置した一例を示すブロック図である。
図14の演算処理装置100Hは、第1演算装置110、第2演算装置120、主記憶装置220、およびアドレスセレクタ230を有する。
演算処理装置100Hは、書込みアドレス整合性検証装置180H、および読出しアドレス整合性検証装置190Hを有する。
そして、主記憶装置220、アドレスセレクタ230、書込みアドレス整合性検証装置180H、および読出しアドレス整合性検証装置190Hによりインターフェース装置200Hが構成される。
また、図14において、WDTは書込みデータを、WADRは書込みアドレスを、WCTLは書込み制御信号を、RDTは読出しデータを、RADRは読出しアドレスを、ADRは選択されたアドレスをそれぞれ示している。
演算処理装置100Hは、書込みアドレス整合性検証装置180H、および読出しアドレス整合性検証装置190Hを有する。
そして、主記憶装置220、アドレスセレクタ230、書込みアドレス整合性検証装置180H、および読出しアドレス整合性検証装置190Hによりインターフェース装置200Hが構成される。
また、図14において、WDTは書込みデータを、WADRは書込みアドレスを、WCTLは書込み制御信号を、RDTは読出しデータを、RADRは読出しアドレスを、ADRは選択されたアドレスをそれぞれ示している。
図14の演算処理装置100Hでは、第1演算装置110が出力した書込みデータWDTを書込みアドレスWADRで指定した位置の主記憶装置220に保存する。
そして、演算処理装置100Hでは、第2演算装置120が読出しアドレスRADRで指定した位置の記憶素子からデータを読み出すことで第1演算装置110から第2演算装置120へのデータ転送を行う。
そして、演算処理装置100Hでは、第2演算装置120が読出しアドレスRADRで指定した位置の記憶素子からデータを読み出すことで第1演算装置110から第2演算装置120へのデータ転送を行う。
書込みアドレス整合性検証装置180Hでは、書込みアドレスWADRの出力順序から主記憶装置220内部で必要となる記憶素子の容量を計算する。
そして、書込みアドレス整合性検証装置180Hでは、計算して得られた容量値が主記憶装置220の実際の記憶素子容量よりも大きいか小さいかをチェックする。
そして、書込みアドレス整合性検証装置180Hでは、計算して得られた容量値が主記憶装置220の実際の記憶素子容量よりも大きいか小さいかをチェックする。
読出しアドレス整合性検証装置190Hでは、読出しアドレスRADRの出力順序から、主記憶装置220に必要な記憶素子容量を計算する。
そして、読出しアドレス整合性検証装置190Hでは、計算して得られた容量値が主記憶装置220中の実際の記憶素子容量よりも大きいか小さいかをチェックする。
そして、読出しアドレス整合性検証装置190Hでは、計算して得られた容量値が主記憶装置220中の実際の記憶素子容量よりも大きいか小さいかをチェックする。
第1演算装置110からの書込みアドレスWADRや第2演算装置120からの読出しアドレスRADRがインターフェース装置と整合の取れるものになっているか否かを確認する場合、重要なのは書込みアドレスと読出しアドレスだけである。
したがって、アドレス整合性検証機能を有するインターフェース装置は、第1から第8の実施形態で示すインターフェース装置と異なる構成のものであっても適用可能である。
したがって、アドレス整合性検証機能を有するインターフェース装置は、第1から第8の実施形態で示すインターフェース装置と異なる構成のものであっても適用可能である。
[インターフェース生成装置と接続する演算回路生成装置の構成例]
ここで、本実施形態に係るインターフェース装置と接続する演算回路の生成装置について説明する。
図15は、本発明の実施形態に係るインターフェース生成装置と接続する演算回路の生成装置の構成例を示すブロック図である。
ここで、本実施形態に係るインターフェース装置と接続する演算回路の生成装置について説明する。
図15は、本発明の実施形態に係るインターフェース生成装置と接続する演算回路の生成装置の構成例を示すブロック図である。
図15の回路生成装置240は、回路記述記憶装置241、配列アクセス置き換え装置242、詳細回路生成装置243、および詳細回路記述記憶装置244を有する。
回路記述記憶装置241は、本発明の実施形態に係るインターフェース装置と接続する演算装置の機能を表現した記述を記憶する。
配列アクセス置き換え装置242では、回路記述記憶装置241から読込んだ回路記述からインターフェース装置を生成する対象となっている配列への読み書きを抽出し、インターフェース装置と接続する通信プロトコルを表現した記述との置き換えを行う。
詳細回路生成装置243では、配列アクセスの置き換えを行った記述から、一般的な高位合成技術や論理合成技術を用いて、たとえばRTLやネットリストのような詳細な回路記述を生成する。
詳細回路記述記憶装置244では、生成された詳細回路記述の記憶を行う。
配列アクセス置き換え装置242では、回路記述記憶装置241から読込んだ回路記述からインターフェース装置を生成する対象となっている配列への読み書きを抽出し、インターフェース装置と接続する通信プロトコルを表現した記述との置き換えを行う。
詳細回路生成装置243では、配列アクセスの置き換えを行った記述から、一般的な高位合成技術や論理合成技術を用いて、たとえばRTLやネットリストのような詳細な回路記述を生成する。
詳細回路記述記憶装置244では、生成された詳細回路記述の記憶を行う。
次に、本実施形態に係るインターフェース装置のより具体的な構成について説明する。
<9.第9の実施形態>
図16は、本発明の第9の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
図16は、本発明の第9の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
本第9の実施形態に係るインターフェース装置200Iは、第3の実施形態に係るインターフェース装置200Bと次の点で異なる。
すなわち、第1演算装置110が、ストリーム変換装置130Iに対して書込み有効信号VWRTを出力する。
第2演算装置120が、制御装置150Iに対して先読みアドレス有効信号VPLADRを出力する。
ストリーム変換装置130Iが、キャッシュメモリ140Iに対してストリーム有効信号VSTMを出力する。
キャッシュメモリ140Iが、制御装置150Iに対してロード数受信可能信号LDNRBを出力し、第2演算装置120に対して先読み完了信号CMPLを出力する。
制御装置150Iが、第2演算装置120に対して先読みアドレス受信可能信号PLADRRBを出力する。
さらに、制御装置150Iが、キャッシュメモリ140Iに対してロード数LDNおよびロード数有効信号VLDNを出力する。
すなわち、第1演算装置110が、ストリーム変換装置130Iに対して書込み有効信号VWRTを出力する。
第2演算装置120が、制御装置150Iに対して先読みアドレス有効信号VPLADRを出力する。
ストリーム変換装置130Iが、キャッシュメモリ140Iに対してストリーム有効信号VSTMを出力する。
キャッシュメモリ140Iが、制御装置150Iに対してロード数受信可能信号LDNRBを出力し、第2演算装置120に対して先読み完了信号CMPLを出力する。
制御装置150Iが、第2演算装置120に対して先読みアドレス受信可能信号PLADRRBを出力する。
さらに、制御装置150Iが、キャッシュメモリ140Iに対してロード数LDNおよびロード数有効信号VLDNを出力する。
インターフェース装置200Iを含む演算処理装置100Iにおいて、図6の演算処理装置100Bと同様、第1演算装置110から出力された書込みデータWDTを第2演算装置120が2つずつ読出す。
第1演算装置110は、ストリーム変換装置130Iが出力する書込みデータ受信可能信号SWDTRBがアクティブの「1(ハイレベル:H)」に設定されている場合、次のような出力を行う。
すなわち、第1演算装置110は、書込みアドレスWADRと書込みデータWDTを出力し、書込み有効信号VWRTをアクティブの「1(H)」にする。
第1演算装置110は、ストリーム変換装置130Iが出力する書込みデータ受信可能信号SWDTRBがアクティブの「1(ハイレベル:H)」に設定されている場合、次のような出力を行う。
すなわち、第1演算装置110は、書込みアドレスWADRと書込みデータWDTを出力し、書込み有効信号VWRTをアクティブの「1(H)」にする。
<10.具体的な構成例>
[ストリーム変換装置の構成例]
図17は、本実施形態に係るストリーム変換装置の構成例を示す図である。
[ストリーム変換装置の構成例]
図17は、本実施形態に係るストリーム変換装置の構成例を示す図である。
図17のストリーム変換装置130Iは、バッファ131、カウンタ132、判定部133、セレクタ134、2入力ANDゲート135〜137、および2入力ORゲート138,139を有する。
ストリーム変換装置130Iは、内部に書込みデータWDTと書込みアドレスWADRの対を記憶するためのバッファ131を有している。
また、ストリーム変換装置130Iは、次にストリームデータとして出力すべき書込みデータのアドレスADRをカウンタ132に保持している。
カウンタ132は、たとえばANDゲート137から出力されるカウントアップ信号CNUPが「1(H)」になったとき1カウントアップする。
ストリーム有効信号VSTMとストリーム受信可能信号STMRBの両方が「1」になると、ストリームデータSTMDの転送が行われる。このストリーム有効信号VSTMとストリーム受信可能信号STMRBがANDゲート137に入力される。したがて、ストリーム有効信号VSTMとストリーム受信可能信号STMRBの両方が「1」になったときにカウンタ132を1カウントアップする。
また、ストリーム変換装置130Iは、次にストリームデータとして出力すべき書込みデータのアドレスADRをカウンタ132に保持している。
カウンタ132は、たとえばANDゲート137から出力されるカウントアップ信号CNUPが「1(H)」になったとき1カウントアップする。
ストリーム有効信号VSTMとストリーム受信可能信号STMRBの両方が「1」になると、ストリームデータSTMDの転送が行われる。このストリーム有効信号VSTMとストリーム受信可能信号STMRBがANDゲート137に入力される。したがて、ストリーム有効信号VSTMとストリーム受信可能信号STMRBの両方が「1」になったときにカウンタ132を1カウントアップする。
判定部133は、カウンタ132の値と書込みアドレスWADRが一致しているか否かの判定を行い、判定結果が信号S133としてANDゲート135の負入力、ANDゲート136の一方の入力、およびセレクタ134の制御端子に出力する。
判定部133は、カウンタ132の値と書込みアドレスWADRが一致している場合、信号S133を「1(H)」に設定し、一致していない場合には信号S133を「0(L)」に設定する。
セレクタ134は、判定信号S133が「1」のとき書込みデータWDTをそのままストリームデータSTMDとして出力する。
セレクタ134は、判定信号S133が「0」のときバッファ131から読出されたバッファ読出しデータBFRDTをストリームデータSTMDとして出力する。
判定部133は、カウンタ132の値と書込みアドレスWADRが一致している場合、信号S133を「1(H)」に設定し、一致していない場合には信号S133を「0(L)」に設定する。
セレクタ134は、判定信号S133が「1」のとき書込みデータWDTをそのままストリームデータSTMDとして出力する。
セレクタ134は、判定信号S133が「0」のときバッファ131から読出されたバッファ読出しデータBFRDTをストリームデータSTMDとして出力する。
カウンタ132の値と書込みアドレスWADRの値が一致して判定信号S133が「1」に設定され、かつ、書込み有効信号VWRTが「1」になっている場合、ANDゲート136の出力信号S136が「1」となる。
これにより、ストリーム変換装置130Iは、ORゲート138を通してストリーム有効信号VSTMを「1」にし、セレクタ134から書込みデータWDTをストリームデータSTMDとして出力する。
これにより、ストリーム変換装置130Iは、ORゲート138を通してストリーム有効信号VSTMを「1」にし、セレクタ134から書込みデータWDTをストリームデータSTMDとして出力する。
カウンタ132の値と書込みアドレスWADRの値が一致せず判定信号S133が「0」で、かつ、書込み有効信号VWRTが「1」になっている場合、バッファ書込み有効信号VBFWRTが「1」となり、書込みデータWDTがバッファ131に保存される。
バッファ131は、バッファ131の記憶可能領域が全て埋まってしまった場合、バッファフル信号BFFLを「1」にする。
また、カウンタ132の値はバッファ131の読出しアドレスBFRADRとしても用いられる。
バッファ131は、バッファ131の記憶可能領域が全て埋まってしまった場合、バッファフル信号BFFLを「1」にする。
また、カウンタ132の値はバッファ131の読出しアドレスBFRADRとしても用いられる。
バッファ131は、記憶しているアドレスADRの一覧とバッファ131の読出しアドレスBFRADRとを比較し、一致するものが見つかった場合には、そのアドレスと対になって記憶されているデータをバッファ読出しデータBFRDTとして出力する。
そして、バッファ131は、バッファ読出しデータ有効信号VBFRDTを「1」にし、出力したデータはバッファ内から削除する。
バッファフル信号BFFLが「1」で、かつストリーム受信可能信号STMRBが「0」の場合、ストリーム変換装置130Iはこれ以上書込みデータを受信できないため、書込みデータ受信可能信号SWDTRBを非アクティブの「0」に設定する。
そして、バッファ131は、バッファ読出しデータ有効信号VBFRDTを「1」にし、出力したデータはバッファ内から削除する。
バッファフル信号BFFLが「1」で、かつストリーム受信可能信号STMRBが「0」の場合、ストリーム変換装置130Iはこれ以上書込みデータを受信できないため、書込みデータ受信可能信号SWDTRBを非アクティブの「0」に設定する。
[キャッシュメモリの構成例]
図18は、本実施形態に係るキャッシュメモリの構成例を示す図である。
図18は、本実施形態に係るキャッシュメモリの構成例を示す図である。
図18のキャッシュメモリ140Iは、ストリーム受信制御装置141、バッファ142、および2入力ANDゲート143を有する。
ストリーム受信制御装置141は、ロード数有効信号VLDNが「1(H)」のときにロード数LDNを受信する。
ANDゲート143は、ストリーム受信可能信号STMRBとストリーム有効信号VSTMの論理積をとり、その結果を有効ストリーム受信信号VSTMRとしてストリーム受信制御装置141に出力する。
有効ストリーム受信信号VSTMRはストリーム受信可能信号STMRBが1で、かつ、ストリーム有効信号VSTMが「1」の場合に「1」になる。
ストリーム受信制御装置141は、有効ストリーム受信信号VSTMRが1回「1」になる毎にロードが1回行われるため、有効ストリーム受信信号VSTMRがロード数LDNと同じ回数「1」になるまでストリーム受信可能信号STMRBを「1」にし続ける。
ストリーム受信制御装置141は、ロード数LDNを受信するとロード数受信可能信号LDNRBと先読み完了信号CMPLを「0」に設定する。
そして、ストリーム受信制御装置141は、有効ストリーム受信信号VSTMRがロード数LDNと同一回数「1」になったらロード数受信可能信号LDNRBおよび先読み完了信号CMPLを「1」にする。
ANDゲート143は、ストリーム受信可能信号STMRBとストリーム有効信号VSTMの論理積をとり、その結果を有効ストリーム受信信号VSTMRとしてストリーム受信制御装置141に出力する。
有効ストリーム受信信号VSTMRはストリーム受信可能信号STMRBが1で、かつ、ストリーム有効信号VSTMが「1」の場合に「1」になる。
ストリーム受信制御装置141は、有効ストリーム受信信号VSTMRが1回「1」になる毎にロードが1回行われるため、有効ストリーム受信信号VSTMRがロード数LDNと同じ回数「1」になるまでストリーム受信可能信号STMRBを「1」にし続ける。
ストリーム受信制御装置141は、ロード数LDNを受信するとロード数受信可能信号LDNRBと先読み完了信号CMPLを「0」に設定する。
そして、ストリーム受信制御装置141は、有効ストリーム受信信号VSTMRがロード数LDNと同一回数「1」になったらロード数受信可能信号LDNRBおよび先読み完了信号CMPLを「1」にする。
バッファ142は、アドレスADR0に最後に入力されたストリームデータSTMD、アドレスADRが1つ大きくなる毎に1つ前に入力されたストリームデータSTMDを保持する。バッファ142へのストリームデータSTMDの書込みはバッファ書込み有効信号VBFWRTCが「1」のときに行う。
たとえば、図18に示すように、アドレスADR0に時刻nに入力されたストリームデータ、アドレスADR1に時刻n-1に入力されたストリームデータが保存されている。さらに、アドレスADR2に時刻n-2に入力されたストリームデータ、アドレスADR3に時刻n-3に入力されたストリームデータが保存されている。
この状態でバッファ書込み有効信号VBFWRTCが「1」になってストリームデータとしてD(n+1)が入力された場合、アドレスADR0にD(n+1), アドレスADR1にD(n), アドレスADR2にD(n-1), アドレスADR3にD(n-2)が保持されるように値を更新する。
また、図18のバッファ142は、キャッシュアドレスCADR1,2を受信し、そのアドレスに対応する記憶素子が保持しているデータをキャッシュデータCDT1,2として出力する。
たとえば、図18に示すように、アドレスADR0に時刻nに入力されたストリームデータ、アドレスADR1に時刻n-1に入力されたストリームデータが保存されている。さらに、アドレスADR2に時刻n-2に入力されたストリームデータ、アドレスADR3に時刻n-3に入力されたストリームデータが保存されている。
この状態でバッファ書込み有効信号VBFWRTCが「1」になってストリームデータとしてD(n+1)が入力された場合、アドレスADR0にD(n+1), アドレスADR1にD(n), アドレスADR2にD(n-1), アドレスADR3にD(n-2)が保持されるように値を更新する。
また、図18のバッファ142は、キャッシュアドレスCADR1,2を受信し、そのアドレスに対応する記憶素子が保持しているデータをキャッシュデータCDT1,2として出力する。
[制御装置の構成例]
図19は、本実施形態に係る制御装置の構成例を示す図である。
図19は、本実施形態に係る制御装置の構成例を示す図である。
図19の制御装置150Iは、セレクタ151、フリップフロップにより形成されるラッチ152、減算器153、および2入力ANDゲート154を有する。
制御装置150Iは、図19に示すように、先読みアドレス有効信号VPLADRはそのままロード数有効信号VLDNとして出力する。
また、制御装置150Iは、ロード数受信可能信号LDNRBはそのまま先読みアドレス受信可能信号PLADRRBとして出力する。
セレクタ151は、ANDゲート154の出力信号S154に応じて新しく入力された先読みアドレスPLADRまたはラッチ152にラッチされている旧先読みアドレスPPLADRのいずれかを選択し、選択したアドレスをラッチ152に出力する。
減算器153は、新しく入力された先読みアドレスPLADRからラッチ152にラッチされている旧先読みアドレスPPLADRを減算する。
このように、入力された先読みアドレスPLADRから旧先読みアドレスPPLADRを引くと、まだキャッシュメモリ140Iにロードしていないデータの数になる。
制御装置150Iは、この値をロード数LDNとしてキャッシュメモリ140Iに出力する。
制御装置150Iは、先読みアドレス有効信号VPLADRと先読みアドレス受信可能信号PLADRRBが両方とも「1」の場合に、新しく入力された先読みアドレスPLADRの値で旧先読みアドレスPPLADRおよびロードアドレスLADRを更新する。
また、制御装置150Iは、ロード数受信可能信号LDNRBはそのまま先読みアドレス受信可能信号PLADRRBとして出力する。
セレクタ151は、ANDゲート154の出力信号S154に応じて新しく入力された先読みアドレスPLADRまたはラッチ152にラッチされている旧先読みアドレスPPLADRのいずれかを選択し、選択したアドレスをラッチ152に出力する。
減算器153は、新しく入力された先読みアドレスPLADRからラッチ152にラッチされている旧先読みアドレスPPLADRを減算する。
このように、入力された先読みアドレスPLADRから旧先読みアドレスPPLADRを引くと、まだキャッシュメモリ140Iにロードしていないデータの数になる。
制御装置150Iは、この値をロード数LDNとしてキャッシュメモリ140Iに出力する。
制御装置150Iは、先読みアドレス有効信号VPLADRと先読みアドレス受信可能信号PLADRRBが両方とも「1」の場合に、新しく入力された先読みアドレスPLADRの値で旧先読みアドレスPPLADRおよびロードアドレスLADRを更新する。
[アドレス変換装置の構成例]
図20は、本実施形態に係るアドレス変換装置の構成例を示す図である。
図20は、本実施形態に係るアドレス変換装置の構成例を示す図である。
図20のアドレス変換装置160Iは、減算器161を有する。
アドレス変換装置160Iは、図20に示すように、キャッシュメモリ140IによるキャッシュデータCDTはそのまま読出しデータRDTとして出力する。
キャッシュメモリ140Iは、ロードアドレスLADRと対応するデータをアドレスADR0、ロードアドレスLADRよりも1つ小さいアドレスのデータをアドレスADR1というように値を保持している。
したがって、減算器161において、ロードアドレスLADRから読出しアドレスRADRを引くとキャッシュメモリ140Iのアドレスになる。
アドレス変換装置160Iは、このように計算してキャッシュアドレスCADRをキャッシュメモリ140Iに出力する。
キャッシュメモリ140Iは、ロードアドレスLADRと対応するデータをアドレスADR0、ロードアドレスLADRよりも1つ小さいアドレスのデータをアドレスADR1というように値を保持している。
したがって、減算器161において、ロードアドレスLADRから読出しアドレスRADRを引くとキャッシュメモリ140Iのアドレスになる。
アドレス変換装置160Iは、このように計算してキャッシュアドレスCADRをキャッシュメモリ140Iに出力する。
図16の演算処理装置100Iにおいて、第2演算装置120は、読出しアドレスRADR1,読出しアドレスRADR2を出力する前に、図21および下記に示す関係が成り立つ先読みアドレスPLADRを出力する。なお、下記において、CMCはキャッシュメモリ140Iの容量を示す。
[数1]
PLADR≧RADR1
PLADR≧RADR2
PLADR−RADR1+1≦CMC
PLADR−RADR2+1≦CMC
PLADR≧RADR1
PLADR≧RADR2
PLADR−RADR1+1≦CMC
PLADR−RADR2+1≦CMC
第2演算装置120は先読み完了信号CMPLが「1(H)」になるまで待ってから読出しアドレスRADR1,読出しアドレスRADR2を出力し、読出しデータRDT1,読出しデータRDT2を受信する。
図17のストリーム変換装置130I、図18のキャッシュメモリ140I、図19の制御装置150I、図20のアドレス変換装置160Iは、第1演算装置110,第2演算装置120の仕様によっては、さらに最適化された構成にすることも可能である。
たとえば、第1演算装置110が図22、第2演算装置120が図23で表現される仕様の場合を考える。
図22に示すように、第1演算装置110が出力する書込みアドレスWADRは0,1,2,3,...,WIDTH-1というように0から1つずつ増加する。
この書込みアドレスWADRの順序は、ストリーム変換装置130Iで並び替えて出力するべきストリームデータの順序と一致している。
したがって、ストリーム変換装置130Iでは書込みデータを並び替える機能が不要になる。
図22で表現されるような第1演算装置110と接続する場合、ストリーム変換装置130Iは、図24で示すように、書込みデータWDTをそのままストリームデータSTMDへ出力するような構成にすることができる。
この書込みアドレスWADRの順序は、ストリーム変換装置130Iで並び替えて出力するべきストリームデータの順序と一致している。
したがって、ストリーム変換装置130Iでは書込みデータを並び替える機能が不要になる。
図22で表現されるような第1演算装置110と接続する場合、ストリーム変換装置130Iは、図24で示すように、書込みデータWDTをそのままストリームデータSTMDへ出力するような構成にすることができる。
図23で示す仕様の第2演算装置120が出力する先読みアドレスPLADR、読出しアドレスRADR1、読出しアドレスRADR2は、図25に示すようになる。
各時刻で先読みしたアドレスとその1つ前のアドレスの2つのデータのみを使用しているため、図23で表現されるような第2演算装置120と接続する場合、キャッシュメモリ140Iの記憶素子は2つ用意すれば良いことになる。
キャッシュメモリ140Iの記憶素子が2つの場合、キャッシュアドレスは1ビットで良いことになる。
図25に示すように、ロード数LDNは常に1、キャッシュアドレスCADR1は常に0のため、ロード数LDNおよびキャッシュアドレスCADR1の計算のための演算装置は不用になる。
図25に示すように、キャッシュアドレスCADR1は0か1のため、キャッシュアドレスCADR2の計算のための演算装置は1ビット幅で良いことになる。
各時刻で先読みしたアドレスとその1つ前のアドレスの2つのデータのみを使用しているため、図23で表現されるような第2演算装置120と接続する場合、キャッシュメモリ140Iの記憶素子は2つ用意すれば良いことになる。
キャッシュメモリ140Iの記憶素子が2つの場合、キャッシュアドレスは1ビットで良いことになる。
図25に示すように、ロード数LDNは常に1、キャッシュアドレスCADR1は常に0のため、ロード数LDNおよびキャッシュアドレスCADR1の計算のための演算装置は不用になる。
図25に示すように、キャッシュアドレスCADR1は0か1のため、キャッシュアドレスCADR2の計算のための演算装置は1ビット幅で良いことになる。
以上をまとめると、図23で示す仕様の第2演算装置120と接続するためのインターフェース装置は、キャッシュメモリ140Jが図26、制御装置150Jとアドレス変換装置160Jが図27で示すような構成にすることができる。
図23に示す第2演算装置120との接続のみに対応するキャッシュメモリ140Jの構成は図26に示すように、内部のバッファ142Jにデータ2つ分の記憶素子1421,1422のみを持つ構成に最適化される。なお、図26のバッファ142Jは、記憶素子1421,1422の他に、セレクタ1423〜1425を有する。記憶素子1421,1422は、たとえばフリップフロップにより形成される。
また、図23に示す第2演算装置120との接続のみに対応する制御装置150Jとアドレス変換装置160Jの構成は、図27に示すようになる。
図27の例では、制御装置150Jは、減算器は持たず、先読みアドレスPLADRの入力段に下位ビット選択部155が配置されている。
同様に、アドレス変換装置160J−2の読出しアドレスRADR2の入力段に下位ビット選択部162が配置されている。
この例では、先読みアドレスPLADRおよび読出しアドレスRADRを用いた演算が1ビット幅に最適化され、ロード数LDNは1で固定、キャッシュアドレスCADR1は0で固定するように最適化される。
このように接続する演算装置の仕様にあわせてインターフェース装置の構成を最適化することで、オーバーヘッドの少ないインターフェース装置を実現することができる。
図27の例では、制御装置150Jは、減算器は持たず、先読みアドレスPLADRの入力段に下位ビット選択部155が配置されている。
同様に、アドレス変換装置160J−2の読出しアドレスRADR2の入力段に下位ビット選択部162が配置されている。
この例では、先読みアドレスPLADRおよび読出しアドレスRADRを用いた演算が1ビット幅に最適化され、ロード数LDNは1で固定、キャッシュアドレスCADR1は0で固定するように最適化される。
このように接続する演算装置の仕様にあわせてインターフェース装置の構成を最適化することで、オーバーヘッドの少ないインターフェース装置を実現することができる。
次に、図10のインターフェース生成装置210のより具体的な処理について説明する。
ここで、図10におけるインターフェース構成情報出力装置212の動作を図28、図29および図30に関連付けて説明する。
図28は、図10のインターフェース生成装置におけるインターフェース構成情報出力装置212の動作のフローチャートを示す図である。
図29は、演算装置の回路記述の一例を示す図である。
図30は、図29の回路記述から抽出したアドレスの計算式の場合の差の例を示す図である。
ここで、図10におけるインターフェース構成情報出力装置212の動作を図28、図29および図30に関連付けて説明する。
図28は、図10のインターフェース生成装置におけるインターフェース構成情報出力装置212の動作のフローチャートを示す図である。
図29は、演算装置の回路記述の一例を示す図である。
図30は、図29の回路記述から抽出したアドレスの計算式の場合の差の例を示す図である。
はじめに、回路情報記憶装置211から演算装置の回路記述を読出し、インターフェース構成情報出力装置212の内部データベースへ変換する(ST1)。
次に、読出しアドレスRADRとして出力されている値や数式を全て抽出する(ST2)。
たとえば、図29で示す演算装置の回路記述を読み込んだ場合、読出しアドレスRADRとして出力されているのは、[pre_load_address]へ出力されているxと[read_address_a]へ出力されているx,[read_address_b]へ出力されているxとx-1の4つであるため、xを3つと、x-1を1つ抽出する。
次に抽出したアドレスの計算式に対して、全ての組み合わせで差を求める(ST3)。
たとえば、図29の回路記述から抽出したアドレスの計算式の場合、図30で示すようにx同士の差は0、x-1とxとの差が1になる。
ここで求めた差の最大値に1を加えた値がキャッシュメモリ140に必要な記憶素子の容量となる。
そこで、最後に、求めた差のうちで最大の値である1に1を加えて2を必要なキャッシュメモリの容量として出力する(ST4)。
次に、読出しアドレスRADRとして出力されている値や数式を全て抽出する(ST2)。
たとえば、図29で示す演算装置の回路記述を読み込んだ場合、読出しアドレスRADRとして出力されているのは、[pre_load_address]へ出力されているxと[read_address_a]へ出力されているx,[read_address_b]へ出力されているxとx-1の4つであるため、xを3つと、x-1を1つ抽出する。
次に抽出したアドレスの計算式に対して、全ての組み合わせで差を求める(ST3)。
たとえば、図29の回路記述から抽出したアドレスの計算式の場合、図30で示すようにx同士の差は0、x-1とxとの差が1になる。
ここで求めた差の最大値に1を加えた値がキャッシュメモリ140に必要な記憶素子の容量となる。
そこで、最後に、求めた差のうちで最大の値である1に1を加えて2を必要なキャッシュメモリの容量として出力する(ST4)。
このように、図10のインターフェース生成装置210はインターフェース構成情報出力装置212が出力したインターフェース構成情報を元にインターフェースを生成する。
図29の例の場合、インターフェース構成情報として、キャッシュメモリ140の容量=2が出力されている。この情報を基に、図26で示すような容量CMC2の記憶素子を持つキャッシュメモリ140を含むインターフェース装置を生成する。
図29の例の場合、インターフェース構成情報として、キャッシュメモリ140の容量=2が出力されている。この情報を基に、図26で示すような容量CMC2の記憶素子を持つキャッシュメモリ140を含むインターフェース装置を生成する。
次に、本発明の実施形態に係る検証用インターフェース装置の実施例について説明する。
図31は、本発明の実施形態に係る検証用インターフェース装置を採用した演算処理装置の構成例を示す図である。
図31は、本発明の実施形態に係る検証用インターフェース装置を採用した演算処理装置の構成例を示す図である。
図31の演算処理装置100Kの検証用インターフェース装置200Kは、図13の演算処理装置100Gのインターフェース装置200Gとほぼ同様の構成を有する。
ただし、インターフェース装置200Kは、書込み有効信号VWRT、ストリーム有効信号VSTM、読出しアドレス有効信号VRADRが用いられる点がインターフェース装置200Gと異なる。
ただし、インターフェース装置200Kは、書込み有効信号VWRT、ストリーム有効信号VSTM、読出しアドレス有効信号VRADRが用いられる点がインターフェース装置200Gと異なる。
ここで、図31に示す検証用インターフェース装置の書込みアドレス整合性検証装置180Kの動作の一例について説明する。
図32は、図31に示す検証用インターフェース装置の書込みアドレス整合性検証装置180Kの動作の一例のフローチャートを示す図である。
図32は、図31に示す検証用インターフェース装置の書込みアドレス整合性検証装置180Kの動作の一例のフローチャートを示す図である。
はじめに書込みアドレスWADRの情報を記憶するlistを空、次にストリームデータSTMDへ出力すべき書込みデータWDTの書込みアドレスWADRを記憶するnextを0に初期化する(ST11)。
次に、書込みアドレスWADRの更新を待ち(ST12)、更新されたときに書込み有効信号VWRTが「1」になっている場合には、listに書込みアドレスの値を追加する(ST13,ST14)。
Listに登録されている書込みアドレスWADRにnextと一致するものがあるかを確認する(ST15)。
ステップST15において、一致したものがある場合にはlistからの一致した書込みアドレスの除去とnext=next+1を行い(ST16)、もう一度、listに登録されている書込みアドレスにnextと一致するものがあるかの確認に戻る。
ステップST15において、一致したものが無い場合には、listに登録されている書込みアドレスの数が、インターフェース装置が持つストリーム変換装置のバッファ容量以内になっているかを確認する(ST17)。
バッファの容量を超えている場合、このインターフェース装置内のストリーム変換装置が対応不可能な書込みアドレスが入力されていることになるため、警告を表示して処理を終了する(ST18)。
バッファの容量を超えていない場合には、シミュレーションが終了したかを確認し(ST19)、終了していれば処理を完了する。終了していなければ、次の書込みアドレスの更新を待つ。
次に、書込みアドレスWADRの更新を待ち(ST12)、更新されたときに書込み有効信号VWRTが「1」になっている場合には、listに書込みアドレスの値を追加する(ST13,ST14)。
Listに登録されている書込みアドレスWADRにnextと一致するものがあるかを確認する(ST15)。
ステップST15において、一致したものがある場合にはlistからの一致した書込みアドレスの除去とnext=next+1を行い(ST16)、もう一度、listに登録されている書込みアドレスにnextと一致するものがあるかの確認に戻る。
ステップST15において、一致したものが無い場合には、listに登録されている書込みアドレスの数が、インターフェース装置が持つストリーム変換装置のバッファ容量以内になっているかを確認する(ST17)。
バッファの容量を超えている場合、このインターフェース装置内のストリーム変換装置が対応不可能な書込みアドレスが入力されていることになるため、警告を表示して処理を終了する(ST18)。
バッファの容量を超えていない場合には、シミュレーションが終了したかを確認し(ST19)、終了していれば処理を完了する。終了していなければ、次の書込みアドレスの更新を待つ。
図33は、図32に示す検証用インターフェース装置内の書込みアドレス整合性検証装置の動作の具体例を表にして示す図である。
図33はストリーム変換装置130のバッファ容量が2のときの、各時刻tに入力される書込みアドレスWADR、書込み有効信号VWRTと、書込みアドレス整合性検証装置180Kの内部状態、警告表示の有無を示している。
時刻t0では書込み有効信号VWRTが「0」のため何も行わない。
時刻t1では書込み有効信号VWRTが「1」のため書込みアドレスWADR0をlistに取り込む。
次に、nextとlistに登録済みのアドレスを比較するとアドレスADR0が一致するため、listからアドレス0を取り除きlistは空に戻る。また、nextに1を加えるため、nextの値は1になる。
時刻t2では書込みアドレスWADR4をlistに追加する。listのアドレスADRとnextが一致しないため、listは{4}になり、nextは1のままになる。
時刻t3では書込みアドレスWADR2をlistに追加する。listのアドレスADRとnextが一致しないため、listは{4,2}になり、nextは1のままになる。
時刻t4では書込みアドレスWADR1をlistに追加する。listのアドレス{4,2,1}とnext=1が一致するため、1を取り除きlistを{4,2}に、nextを2にする。
次にもう一度listのアドレス{4,2}とnext=2を比較して一致していることを確認し、2を取り除いてlistを{4}に、nextを3にする。
時刻t5では書込みアドレスWADR5をlistに追加して、listを{4,5}に、nextを3のままにする。
時刻t6では書込みアドレスWADR6をlistに追加して、listを{4,5,6}に、nextを3のままにする。このとき、listに登録されているアドレス数が3となり、ストリーム変換装置130のバッファ容量2を超えるため、警告を表示して動作を完了する。
時刻t0では書込み有効信号VWRTが「0」のため何も行わない。
時刻t1では書込み有効信号VWRTが「1」のため書込みアドレスWADR0をlistに取り込む。
次に、nextとlistに登録済みのアドレスを比較するとアドレスADR0が一致するため、listからアドレス0を取り除きlistは空に戻る。また、nextに1を加えるため、nextの値は1になる。
時刻t2では書込みアドレスWADR4をlistに追加する。listのアドレスADRとnextが一致しないため、listは{4}になり、nextは1のままになる。
時刻t3では書込みアドレスWADR2をlistに追加する。listのアドレスADRとnextが一致しないため、listは{4,2}になり、nextは1のままになる。
時刻t4では書込みアドレスWADR1をlistに追加する。listのアドレス{4,2,1}とnext=1が一致するため、1を取り除きlistを{4,2}に、nextを2にする。
次にもう一度listのアドレス{4,2}とnext=2を比較して一致していることを確認し、2を取り除いてlistを{4}に、nextを3にする。
時刻t5では書込みアドレスWADR5をlistに追加して、listを{4,5}に、nextを3のままにする。
時刻t6では書込みアドレスWADR6をlistに追加して、listを{4,5,6}に、nextを3のままにする。このとき、listに登録されているアドレス数が3となり、ストリーム変換装置130のバッファ容量2を超えるため、警告を表示して動作を完了する。
次に、図31に示す検証用インターフェース装置の読出しアドレス整合性検証装置190Kの動作の一例について説明する。
図34は、図31に示す検証用インターフェース装置の読出しアドレス整合性検証装置190Kの動作の一例のフローチャートを示す図である。
図34は、図31に示す検証用インターフェース装置の読出しアドレス整合性検証装置190Kの動作の一例のフローチャートを示す図である。
はじめに、これまでに読出したアドレスの最大値を保存するmaxを-1に初期化する(ST21)。
次に、読出しアドレスRADRの更新を待つ(ST22)。
そして、更新されたときに読出しアドレス有効信号VRADRが「1」になっている場合には(ST23)、読出しアドレスがmaxよりも大きくなっているかを確認し(ST24)、大きくなっている場合はmaxの値を読出しアドレスの値で置き換える(ST25)。
maxの更新後、必要なキャッシュメモリ容量をあらわす(max−読出しアドレス+1)が実際のキャッシュメモリの容量よりも大きくなっているかを確認する(ST26)。
ステップST26において、キャッシュメモリの容量よりも大きくなっている場合には、警告を表示し動作を完了する(ST27)。
ステップST26において、キャッシュメモリの容量よりも大きくなっている場合には、最後にシミュレーションが終了しているかを確認し(ST28)、終了している場合は動作を完了する。終了していない場合には次の読出しアドレスの更新を待つ。
次に、読出しアドレスRADRの更新を待つ(ST22)。
そして、更新されたときに読出しアドレス有効信号VRADRが「1」になっている場合には(ST23)、読出しアドレスがmaxよりも大きくなっているかを確認し(ST24)、大きくなっている場合はmaxの値を読出しアドレスの値で置き換える(ST25)。
maxの更新後、必要なキャッシュメモリ容量をあらわす(max−読出しアドレス+1)が実際のキャッシュメモリの容量よりも大きくなっているかを確認する(ST26)。
ステップST26において、キャッシュメモリの容量よりも大きくなっている場合には、警告を表示し動作を完了する(ST27)。
ステップST26において、キャッシュメモリの容量よりも大きくなっている場合には、最後にシミュレーションが終了しているかを確認し(ST28)、終了している場合は動作を完了する。終了していない場合には次の読出しアドレスの更新を待つ。
図35は、図34に示す検証用インターフェース装置内の読出しアドレス整合性検証装置の動作の具体例を表にして示す図である。
図35はキャッシュメモリ140の記憶素子容量が2のときの、各時刻tに入力される読出しアドレスRADR、読出しアドレス有効信号VRADRと、読出しアドレス整合性検証装置190Kの内部状態、警告表示の有無を示している。
時刻t0では読出しアドレス有効信号VRADRが「0」のため何も行わない。
時刻t1では読出しアドレス有効信号VRADRが1のため、max=-1と読出しアドレス1を比較して、読出しアドレスのほうが大きいためmaxに読出しアドレスの1を入れる。
次に、(max−読出しアドレス+1)がキャッシュメモリ140の容量2を超えていないかを確認する。(max−読出しアドレス+1)は1-1+1で1のため超えていない。
このように計算を行っていくと時刻5で(max−読出しアドレス+1)が3となってキャッシュメモリの容量2を超える。そのため、時刻t5に警告を表示し動作を完了する。
時刻t0では読出しアドレス有効信号VRADRが「0」のため何も行わない。
時刻t1では読出しアドレス有効信号VRADRが1のため、max=-1と読出しアドレス1を比較して、読出しアドレスのほうが大きいためmaxに読出しアドレスの1を入れる。
次に、(max−読出しアドレス+1)がキャッシュメモリ140の容量2を超えていないかを確認する。(max−読出しアドレス+1)は1-1+1で1のため超えていない。
このように計算を行っていくと時刻5で(max−読出しアドレス+1)が3となってキャッシュメモリの容量2を超える。そのため、時刻t5に警告を表示し動作を完了する。
次に、図15の回路生成装置240のより具体的な処理について説明する。
ここで、図15における配列アクセス置き換え装置242の動作を図36、図37、および図38に関連付けて説明する。
図36は、図15の回路生成装置における配列アクセス置き換え装置242の動作のフローチャートを示す図である。
図37は、回路記述記憶装置に記憶されている回路記述の一例を示す図である。
図38は、配列アクセスをインターフェース装置との接続を行う記述に置き換えた例を示す図である。
ここで、図15における配列アクセス置き換え装置242の動作を図36、図37、および図38に関連付けて説明する。
図36は、図15の回路生成装置における配列アクセス置き換え装置242の動作のフローチャートを示す図である。
図37は、回路記述記憶装置に記憶されている回路記述の一例を示す図である。
図38は、配列アクセスをインターフェース装置との接続を行う記述に置き換えた例を示す図である。
はじめに、回路記述記憶装置241から演算装置の回路記述を読み込み、配列アクセス置き換え装置242内部のデータベースへ変換する(ST31)。
次に、インターフェースを生成する対象の配列への書込みアクセスを抽出し(ST32)、抽出した配列への書込みアクセスを行っている部分を本実施形態のインターフェース装置と接続するための記述へ置き換える(ST33)。
置き換える際には、はじめに抽出した配列への書込みアクセスを削除し、次に、配列への書込みアクセスを削除した場所に、インターフェース装置への書込みアドレスWADR・書込みデータWDTを出力する記述を追加する。書込みアドレスWADRは配列のインデックスの値、書込みデータWDTは配列へ書き込んでいたデータにする。
次に、インターフェースを生成する対象の配列からの読出しアクセスを抽出し(ST34)、抽出した配列からの読出しアクセスを行っている部分を本実施形態のインターフェースと接続するための記述へ置き換える(ST35)。
置き換える際には、はじめに抽出した配列からの読出しアクセスを削除し、次に、配列からの読出しアクセスを削除した場所に、インターフェース装置への読出しアドレスRADRの出力と読出しデータRDTの入力の記述を追加する。
読出しアドレスは配列のインデックスの値にし、受信した読出しデータの値は配列を読出した値が代入されている変数に代入する。
最後に先読みアドレスを指定している記述を抽出し(ST36)、インターフェース装置と接続する記述へ置き換える(ST37)。
置き換える際には、はじめに先読みアドレスを指定している記述を削除し、次に、先読みアドレスを指定している記述を削除した場所に、インターフェース装置への先読みアドレスPLADRの出力の記述を追加する。先読みアドレスPLADRは先読みアドレスを指定している記述の値にする。
次に、インターフェースを生成する対象の配列への書込みアクセスを抽出し(ST32)、抽出した配列への書込みアクセスを行っている部分を本実施形態のインターフェース装置と接続するための記述へ置き換える(ST33)。
置き換える際には、はじめに抽出した配列への書込みアクセスを削除し、次に、配列への書込みアクセスを削除した場所に、インターフェース装置への書込みアドレスWADR・書込みデータWDTを出力する記述を追加する。書込みアドレスWADRは配列のインデックスの値、書込みデータWDTは配列へ書き込んでいたデータにする。
次に、インターフェースを生成する対象の配列からの読出しアクセスを抽出し(ST34)、抽出した配列からの読出しアクセスを行っている部分を本実施形態のインターフェースと接続するための記述へ置き換える(ST35)。
置き換える際には、はじめに抽出した配列からの読出しアクセスを削除し、次に、配列からの読出しアクセスを削除した場所に、インターフェース装置への読出しアドレスRADRの出力と読出しデータRDTの入力の記述を追加する。
読出しアドレスは配列のインデックスの値にし、受信した読出しデータの値は配列を読出した値が代入されている変数に代入する。
最後に先読みアドレスを指定している記述を抽出し(ST36)、インターフェース装置と接続する記述へ置き換える(ST37)。
置き換える際には、はじめに先読みアドレスを指定している記述を削除し、次に、先読みアドレスを指定している記述を削除した場所に、インターフェース装置への先読みアドレスPLADRの出力の記述を追加する。先読みアドレスPLADRは先読みアドレスを指定している記述の値にする。
図36に示す配列アクセス置き換え装置の動作の具体例を図37および図38に示す。
図37に示す回路記述が回路記述記憶装置241に保存されており、配列arrayがインターフェースを生成する対象の配列、コメント"// pre_load_addres ="で先読みアドレスを指定しているものとする。
この場合、図38に示すように、配列アクセスをインターフェース装置との接続を行う記述へ置き換える。
図37に示す回路記述が回路記述記憶装置241に保存されており、配列arrayがインターフェースを生成する対象の配列、コメント"// pre_load_addres ="で先読みアドレスを指定しているものとする。
この場合、図38に示すように、配列アクセスをインターフェース装置との接続を行う記述へ置き換える。
図36で示す配列アクセス置き換え装置の動作の別の例を図39および図40に示す。
図37および図38の例では、インターフェースを生成する対象の配列arrayが1次元配列だったが、図39および図40の例では、2次元配列になっている点が違いである。もちろん、インターフェースを生成する対象の配列は3次元以上であっても良い。
図37および図38の例では、インターフェースを生成する対象の配列arrayが1次元配列だったが、図39および図40の例では、2次元配列になっている点が違いである。もちろん、インターフェースを生成する対象の配列は3次元以上であっても良い。
図15の回路生成装置240において、配列アクセス置き換え装置242が生成した回路記述を詳細回路生成装置243へ入力し、より詳細な回路記述へ変換する。
詳細回路生成装置243には一般的な動作合成などの手法を用いる。
配列アクセス置き換え装置242から出力した抽象度の高いC言語などで表現された回路記述の、詳細な演算タイミングなどの決定を行い、レジスタートランスファーレベルやネットリストで表現されたより詳細な回路記述を生成する。
詳細回路生成装置243には一般的な動作合成などの手法を用いる。
配列アクセス置き換え装置242から出力した抽象度の高いC言語などで表現された回路記述の、詳細な演算タイミングなどの決定を行い、レジスタートランスファーレベルやネットリストで表現されたより詳細な回路記述を生成する。
以上説明した実施形態によれば、以下の効果を得ることができる。
アドレス指定でデータをアクセスする演算装置同士を接続するインターフェース装置を最小の記憶素子容量で実現することができるようになり、回路面積の削減を行うことができる。
アドレス指定でデータをアクセスする演算装置同士を接続するインターフェース装置を最小の記憶素子容量で実現することができるようになり、回路面積の削減を行うことができる。
アドレス指定でデータアクセスする仕様のほうが設計しやすい演算装置を設計する場合でも、既存技術では、回路面積の増大を避けるために、演算装置の仕様をアドレス指定によるデータアクセスにできなかった。そのため、演算装置の設計が複雑になるという問題があった。
これに対して、本実施形態のインターフェース装置を用いることで、実用的な回路面積でアドレス指定によってデータアクセスする演算装置同士を接続することができるようになるため、演算装置の設計効率の向上にも寄与する。
特に、一般的に、アルゴリズム開発を行う場合には、アドレス指定によるデータアクセスで演算装置を設計することが多い。
本実施形態のインターフェース装置を用いることで、アルゴリズム開発時に作成した記述をそのまま再利用して回路設計をすることができるようになるため、アルゴリズム開発と回路設計での設計工数の重複を防ぎ、設計工数の大幅な削減が可能となる。
これに対して、本実施形態のインターフェース装置を用いることで、実用的な回路面積でアドレス指定によってデータアクセスする演算装置同士を接続することができるようになるため、演算装置の設計効率の向上にも寄与する。
特に、一般的に、アルゴリズム開発を行う場合には、アドレス指定によるデータアクセスで演算装置を設計することが多い。
本実施形態のインターフェース装置を用いることで、アルゴリズム開発時に作成した記述をそのまま再利用して回路設計をすることができるようになるため、アルゴリズム開発と回路設計での設計工数の重複を防ぎ、設計工数の大幅な削減が可能となる。
なお、本発明の実施形態は、上述した実施形態に拘泥せず、当業者であれば、本発明の要旨を変更しない範囲内で様々な改変が可能である。
また、以上詳細に説明した方法は、上記手順に応じたプログラムとして形成し、CPU等のコンピュータで実行するように構成することも可能である。
また、このようなプログラムは、半導体メモリ、磁気ディスク、光ディスク、フロッピー(登録商標)ディスク等の記録媒体、この記録媒体をセットしたコンピュータによりアクセスし上記プログラムを実行するように構成可能である。
また、このようなプログラムは、半導体メモリ、磁気ディスク、光ディスク、フロッピー(登録商標)ディスク等の記録媒体、この記録媒体をセットしたコンピュータによりアクセスし上記プログラムを実行するように構成可能である。
100,100A〜100K・・・演算処理装置、インターフェース装置、110・・・第1演算装置、120・・・第2演算装置、130・・・ストリーム変換装置、140・・・キャッシュメモリ150・・・制御装置、160・・・アドレス変換装置、170・・・セレクタ、180・・・書込みアドレス整合性検証装置、190・・・読出しアドレス整合性検証装置、200,200A〜200K・・・インターフェース装置、210・・・インターフェース生成装置、211・・・回路情報記憶装置、212・・・インターフェース構成情報出力装置、213・・・インターフェース構成情報記憶装置、214・・・生成装置、215・・・インターフェース記憶装置、240・・・回路生成装置、241・・・回路記述記憶装置、242・・・配列アクセス置き換え装置、243・・・詳細回路生成装置、244・・・詳細回路記述記憶装置。
Claims (12)
- 書込みアドレスと書込みデータを受信し、受信データをバッファに保存し、当該バッファに保存した書込みデータを書込みアドレスの順序に並び替えてストリームデータとして出力するストリーム変換装置と、
ロード信号がストリームデータのロードが必要なことを示す状態になると、受信したストリームデータを記憶素子に保存し、キャッシュアドレスが入力されると、当該キャッシュアドレスに対応する記憶素子に保持しているデータをキャッシュデータとして出力するキャッシュメモリと、
読出しに関するアドレス情報で指定されたデータが上記キャッシュメモリに既にロードされているかを判定し、当該判定の結果、指定されたデータが上記キャッシュメモリにロードされていない場合には、上記キャッシュメモリにロードを指示する上記ロード信号を出力し、上記キャッシュメモリにロード済みのアドレスを示すロードアドレスを出力する制御装置と、
上記キャッシュメモリにロード済みのアドレスを示している上記ロードアドレスを用いて、読出しアドレスで指定されたデータが上記キャッシュメモリのどの記憶素子に保存されているかを求め、求めた値を上記キャッシュアドレスとして上記キャッシュメモリに出力し、上記キャッシュメモリから入力されたキャッシュデータを読出しデータとして出力する少なくとも一つのアドレス変換装置と
を有するインターフェース装置。 - 上記ストリーム変換装置は、
上記キャッシュメモリによるストリーム受信可能信号が受信可能を示す状態になっている期間のみストリームデータを出力し、
上記キャッシュメモリは、
上記ストリーム受信可能信号を受信可能を示す状態に変化させると、上記ストリーム変換装置から受信したストリームデータを内部の記憶素子に保存する
請求項1記載のインターフェース装置。 - 上記ストリーム変換装置は、
上記バッファがフルでなく、書込みデータを受信できるときは書込みデータ受信可能信号を受信可能の状態として書込みデータの供給側に出力し、
バッファがフルになり、書込みデータを受信できなくなると、上記書込みデータ受信可能信号を受信不可能の状態に変更する
請求項1または2記載のインターフェース装置。 - 上記ストリームデータとテスト用データとを選択的に上記キャッシュメモリに入力可能なセレクタを有する
請求項1から3のいずれか一に記載のインターフェース装置。 - データアクセスが当該インターフェース装置に適合しているかを検証するための整合性検証装置を含む
請求項1から3のいずれか一に記載のインターフェース装置。 - 上記書込みアドレスの整合性を確認するための書込みアドレス整合性検証装置と、
読出しに関するアドレス情報の整合性を確認するための読出しアドレス整合性検証装置と、を含む
請求項5記載のインターフェース装置。 - 上記書込みアドレス整合性検証装置は、
上記書込みアドレスの出力順序から上記ストリーム変換装置内部で必要となる記憶素子の容量を求め、求めた得られた容量値が上記ストリーム変換装置の実際の記憶素子容量よりも大きいか小さいかをチェックする
請求項6記載のインターフェース装置。 - 上記読出しアドレス整合性検証装置は、
読出しに関するアドレス情報の出力順序から、上記キャッシュメモリに必要な記憶素子容量を求め、求めて得られた容量値が上記キャッシュメモリ中の実際の記憶素子容量よりも大きいか小さいかをチェックする
請求項6または7記載のインターフェース装置。 - 第1演算装置と、
第2演算装置と、
上記第1演算装置と上記第2演算装置間のアドレス指定によるデータ転送を行うインターフェース装置と、を有し、
上記インターフェース装置は、
上記第1演算装置による書込みアドレスと書込みデータを受信し、受信データをバッファに保存し、当該バッファに保存した書込みデータを書込みアドレスの順序に並び替えてストリームデータとして出力するストリーム変換装置と、
ロード信号がストリームデータのロードが必要なことを示す状態になると、受信したストリームデータを記憶素子に保存し、キャッシュアドレスが入力されると、当該キャッシュアドレスに対応する記憶素子に保持しているデータをキャッシュデータとして出力するキャッシュメモリと、
上記第2演算装置により読出しに関するアドレス情報で指定されたデータが上記キャッシュメモリに既にロードされているかを判定し、当該判定の結果、指定されたデータが上記キャッシュメモリにロードされていない場合には、上記キャッシュメモリにロードを指示する上記ロード信号を出力し、上記キャッシュメモリにロード済みのアドレスを示すロードアドレスを出力する制御装置と、
上記キャッシュメモリにロード済みのアドレスを示している上記ロードアドレスを用いて、読出しアドレスで指定されたデータが上記キャッシュメモリのどの記憶素子に保存されているかを求め、求めた値を上記キャッシュアドレスとして上記キャッシュメモリに出力し、上記キャッシュメモリから入力されたキャッシュデータを読出しデータとして上記第2演算装置に出力する少なくとも一つのアドレス変換装置と、を含む
演算処理装置。 - 書込みアドレスと書込みデータを受信し、受信データをバッファに保存し、当該バッファに保存した書込みデータを書込みアドレスの順序に並び替えてストリームデータとして出力するストリーム変換装置と、
ロード信号がストリームデータのロードが必要なことを示す状態になると、受信したストリームデータを記憶素子に保存し、キャッシュアドレスが入力されると、当該キャッシュアドレスに対応する記憶素子に保持しているデータをキャッシュデータとして出力するキャッシュメモリと、
読出しに関するアドレス情報で指定されたデータが上記キャッシュメモリに既にロードされているかを判定し、当該判定の結果、指定されたデータが上記キャッシュメモリにロードされていない場合には、上記キャッシュメモリにロードを指示する上記ロード信号を出力し、上記キャッシュメモリにロード済みのアドレスを示すロードアドレスを出力する制御装置と、
上記キャッシュメモリにロード済みのアドレスを示している上記ロードアドレスを用いて、読出しアドレスで指定されたデータが上記キャッシュメモリのどの記憶素子に保存されているかを求め、求めた値を上記キャッシュアドレスとして上記キャッシュメモリに出力し、上記キャッシュメモリから入力されたキャッシュデータを読出しデータとして出力する少なくとも一つのアドレス変換装置と、
を有するインターフェース装置を生成するために、
生成対象のインターフェースと接続する回路記述の情報を記憶する回路情報記憶装置と、
上記回路情報記憶装置から読み出した回路記述情報からインターフェースが満たすべき仕様を解析するインターフェース構成情報出力装置と、を含む
インターフェース生成装置。 - 上記インターフェース構成情報出力装置は、
上記回路情報記憶装置から回路記述を読出し、内部データベースへ変換して、上記読出しに関するアドレス情報として出力されている値、数式を全て抽出し、
抽出したアドレスの計算式に対して、全ての組み合わせで差を求め、
求めた差のうちで最大の値に所定の値を加えて必要なキャッシュメモリの容量とし、
上記容量の記憶素子を持つキャッシュメモリを含むインターフェース装置を生成する
請求項10記載のインターフェース生成装置。 - 書込みアドレスと書込みデータを受信し、受信データをバッファに保存し、当該バッファに保存した書込みデータを書込みアドレスの順序に並び替えてストリームデータとして出力するストリーム変換装置と、
ロード信号がストリームデータのロードが必要なことを示す状態になると、受信したストリームデータを記憶素子に保存し、キャッシュアドレスが入力されると、当該キャッシュアドレスに対応する記憶素子に保持しているデータをキャッシュデータとして出力するキャッシュメモリと、
読出しに関するアドレス情報で指定されたデータが上記キャッシュメモリに既にロードされているかを判定し、当該判定の結果、指定されたデータが上記キャッシュメモリにロードされていない場合には、上記キャッシュメモリにロードを指示する上記ロード信号を出力し、上記キャッシュメモリにロード済みのアドレスを示すロードアドレスを出力する制御装置と、
上記キャッシュメモリにロード済みのアドレスを示している上記ロードアドレスを用いて、読出しアドレスで指定されたデータが上記キャッシュメモリのどの記憶素子に保存されているかを求め、求めた値を上記キャッシュアドレスとして上記キャッシュメモリに出力し、上記キャッシュメモリから入力されたキャッシュデータを読出しデータとして出力する少なくとも一つのアドレス変換装置と、
を有するインターフェース装置と接続する演算装置を生成するために、
上記インターフェース装置と接続する演算装置の機能を表現した記述を記憶する回路記述記憶装置と、
上記回路記述記憶装置から読込んだ回路記述からインターフェース装置を生成する対象となっている配列への読み書きを抽出し、インターフェース装置と接続する通信プロトコルを表現した記述との置き換えを行う配列アクセス置き換え装置と、
配列アクセスの置き換えを行った記述から詳細な回路記述を生成する詳細回路生成装置と、を含む
回路生成装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009019893A JP5267166B2 (ja) | 2009-01-30 | 2009-01-30 | インターフェース装置、演算処理装置、インターフェース生成装置、および回路生成装置 |
US12/694,556 US8307160B2 (en) | 2009-01-30 | 2010-01-27 | Interface apparatus, calculation processing apparatus, interface generation apparatus, and circuit generation apparatus |
CN 201010108022 CN101794258B (zh) | 2009-01-30 | 2010-02-01 | 接口装置、计算处理装置、接口生成装置以及电路生成装置 |
US13/645,215 US20130031311A1 (en) | 2009-01-30 | 2012-10-04 | Interface apparatus, calculation processing apparatus, interface generation apparatus, and circuit generation apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009019893A JP5267166B2 (ja) | 2009-01-30 | 2009-01-30 | インターフェース装置、演算処理装置、インターフェース生成装置、および回路生成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010176505A true JP2010176505A (ja) | 2010-08-12 |
JP5267166B2 JP5267166B2 (ja) | 2013-08-21 |
Family
ID=42398645
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009019893A Expired - Fee Related JP5267166B2 (ja) | 2009-01-30 | 2009-01-30 | インターフェース装置、演算処理装置、インターフェース生成装置、および回路生成装置 |
Country Status (3)
Country | Link |
---|---|
US (2) | US8307160B2 (ja) |
JP (1) | JP5267166B2 (ja) |
CN (1) | CN101794258B (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012043031A (ja) * | 2010-08-13 | 2012-03-01 | Fujitsu Ltd | 共有キャッシュメモリ装置 |
JP2020115275A (ja) * | 2019-01-17 | 2020-07-30 | 富士通株式会社 | 情報処理装置およびプログラム |
US10838786B2 (en) | 2016-09-05 | 2020-11-17 | Mitsubishi Electric Corporation | Embedded system, embedded system control method and data consistency judgment method |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103197586B (zh) * | 2013-04-11 | 2015-04-15 | 南京盘谷电气科技有限公司 | 一种基于微处理器的配网终端自动识别方法 |
US10293693B2 (en) * | 2015-04-21 | 2019-05-21 | Samsung Electronics Co., Ltd. | Battery control method and apparatus, battery module, and battery pack |
CN114038490B (zh) * | 2021-10-14 | 2023-07-04 | 西安紫光国芯半导体有限公司 | 基于三维异质集成的一致性链路存储芯片 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05128000A (ja) * | 1990-10-12 | 1993-05-25 | Lsi Logic Corp | 内蔵キヤツシユメモリを有するマイクロプロセツサおよびその内蔵キヤツシユメモリのテスト方法 |
JPH06290000A (ja) * | 1993-04-02 | 1994-10-18 | Fuji Electric Co Ltd | ディスクコントローラ |
JPH10307733A (ja) * | 1997-04-30 | 1998-11-17 | Internatl Business Mach Corp <Ibm> | システム間データ・パイピング・システム |
JP2004164641A (ja) * | 2002-11-12 | 2004-06-10 | Hewlett-Packard Development Co Lp | メモリバンクへのアドレスのマッピングをするメモリコントローラ |
JP2005528671A (ja) * | 2001-12-14 | 2005-09-22 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 多重プロセッサデータ処理システムにおけるデータ処理方法及び対応するデータ処理システム |
JP2008242993A (ja) * | 2007-03-28 | 2008-10-09 | Sony Corp | 集積回路生成装置およびその方法、並びにプログラム |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01111245A (ja) | 1987-10-24 | 1989-04-27 | Nec Corp | キャッシュメモリ |
JP2690691B2 (ja) | 1994-06-27 | 1997-12-10 | 新潟日本電気株式会社 | ライトバック・キャッシュ・メモリを有する演算処理装置 |
US6138188A (en) * | 1998-09-28 | 2000-10-24 | Mentor Arc Inc. | Buffer management device and method for improving buffer usage and access performance in data processing system |
JP3644380B2 (ja) | 2000-12-18 | 2005-04-27 | 日本電気株式会社 | プロセッサ制御装置 |
US6725336B2 (en) * | 2001-04-20 | 2004-04-20 | Sun Microsystems, Inc. | Dynamically allocated cache memory for a multi-processor unit |
JP4007483B2 (ja) * | 2001-07-16 | 2007-11-14 | シャープ株式会社 | 高位合成装置および高位合成方法 |
US7606993B2 (en) * | 2003-06-10 | 2009-10-20 | Tdk Corporation | Flash memory controller, memory control circuit, flash memory system, and method for controlling data exchange between host computer and flash memory |
US7210116B2 (en) * | 2003-06-27 | 2007-04-24 | Robert Zeidman | Method and apparatus for synthesizing a hardware system from a software description |
JP4601305B2 (ja) * | 2004-02-27 | 2010-12-22 | 富士通セミコンダクター株式会社 | 半導体装置 |
US20060190678A1 (en) * | 2005-02-22 | 2006-08-24 | Butler Douglas B | Static random access memory (SRAM) compatible, high availability memory array and method employing synchronous dynamic random access memory (DRAM) in conjunction with a single DRAM cache and tag |
JP4918824B2 (ja) * | 2006-08-18 | 2012-04-18 | 富士通株式会社 | メモリコントローラおよびメモリ制御方法 |
JP4362502B2 (ja) * | 2006-09-26 | 2009-11-11 | 株式会社日立製作所 | ディスク制御装置及びデータ転送制御方法 |
US7664905B2 (en) * | 2006-11-03 | 2010-02-16 | Nvidia Corporation | Page stream sorter for poor locality access patterns |
JP5076488B2 (ja) * | 2006-12-22 | 2012-11-21 | 富士通株式会社 | 情報処理装置、履歴管理方法、履歴管理プログラム |
-
2009
- 2009-01-30 JP JP2009019893A patent/JP5267166B2/ja not_active Expired - Fee Related
-
2010
- 2010-01-27 US US12/694,556 patent/US8307160B2/en not_active Expired - Fee Related
- 2010-02-01 CN CN 201010108022 patent/CN101794258B/zh not_active Expired - Fee Related
-
2012
- 2012-10-04 US US13/645,215 patent/US20130031311A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05128000A (ja) * | 1990-10-12 | 1993-05-25 | Lsi Logic Corp | 内蔵キヤツシユメモリを有するマイクロプロセツサおよびその内蔵キヤツシユメモリのテスト方法 |
JPH06290000A (ja) * | 1993-04-02 | 1994-10-18 | Fuji Electric Co Ltd | ディスクコントローラ |
JPH10307733A (ja) * | 1997-04-30 | 1998-11-17 | Internatl Business Mach Corp <Ibm> | システム間データ・パイピング・システム |
JP2005528671A (ja) * | 2001-12-14 | 2005-09-22 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 多重プロセッサデータ処理システムにおけるデータ処理方法及び対応するデータ処理システム |
JP2004164641A (ja) * | 2002-11-12 | 2004-06-10 | Hewlett-Packard Development Co Lp | メモリバンクへのアドレスのマッピングをするメモリコントローラ |
JP2008242993A (ja) * | 2007-03-28 | 2008-10-09 | Sony Corp | 集積回路生成装置およびその方法、並びにプログラム |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012043031A (ja) * | 2010-08-13 | 2012-03-01 | Fujitsu Ltd | 共有キャッシュメモリ装置 |
US10838786B2 (en) | 2016-09-05 | 2020-11-17 | Mitsubishi Electric Corporation | Embedded system, embedded system control method and data consistency judgment method |
JP2020115275A (ja) * | 2019-01-17 | 2020-07-30 | 富士通株式会社 | 情報処理装置およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
CN101794258B (zh) | 2012-08-29 |
US8307160B2 (en) | 2012-11-06 |
JP5267166B2 (ja) | 2013-08-21 |
CN101794258A (zh) | 2010-08-04 |
US20100199044A1 (en) | 2010-08-05 |
US20130031311A1 (en) | 2013-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5267166B2 (ja) | インターフェース装置、演算処理装置、インターフェース生成装置、および回路生成装置 | |
JP4339371B2 (ja) | 情報処理装置および情報処理方法 | |
JP2003216494A (ja) | オンチップキャッシュのデータ圧縮により有効キャッシュサイズを増大させるキャッシュ圧縮エンジンのための装置 | |
CN110362506B (zh) | 高速缓存存储器及其中实现的方法 | |
CN109308192A (zh) | 用于执行存储器压缩的系统和方法 | |
KR100955433B1 (ko) | 파이프라인 구조를 갖는 캐시 메모리 및 이를 제어하는방법 | |
US8621152B1 (en) | Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access | |
JP4218820B2 (ja) | ダイレクトマップドキャッシュとフルアソシアティブバッファとを含んだキャッシュシステム、その制御方法及び記録媒体 | |
JP2004199677A (ja) | キャッシュを動作させるためのシステム及び方法 | |
US20160217079A1 (en) | High-Performance Instruction Cache System and Method | |
US7949833B1 (en) | Transparent level 2 cache controller | |
CN113641598A (zh) | 微处理器、高速缓存存储器系统及其中实现的方法 | |
US10140211B2 (en) | Cache device and method for storing tag data and cache data in cache device | |
KR101234183B1 (ko) | 캐시 시스템 | |
US11314645B1 (en) | Cache stash relay | |
US6374344B1 (en) | Methods and apparatus for processing load instructions in the presence of RAM array and data bus conflicts | |
US12032479B2 (en) | Metadata-caching integrated circuit device | |
US11520704B1 (en) | Writing store data of multiple store operations into a cache line in a single cycle | |
US11847062B2 (en) | Re-fetching data for L3 cache data evictions into a last-level cache | |
US9430397B2 (en) | Processor and control method thereof | |
KR20230075361A (ko) | 메모리 어드레스들과 연관된 데이터를 캐싱하도록 캐시 저장소를 동작시키기 위한 기법 | |
WO2024035555A1 (en) | Metadata-caching integrated circuit device | |
CN117539844A (zh) | 数据库加速系统 | |
JP3507314B2 (ja) | メモリコントローラおよびコンピュータシステム | |
JPH10207773A (ja) | バス接続装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111207 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130315 |
|
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: 20130409 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130422 |
|
LAPS | Cancellation because of no payment of annual fees |