JP3826648B2 - バウンダリ実行制御装置及びバウンダリ制御方法 - Google Patents
バウンダリ実行制御装置及びバウンダリ制御方法 Download PDFInfo
- Publication number
- JP3826648B2 JP3826648B2 JP2000004318A JP2000004318A JP3826648B2 JP 3826648 B2 JP3826648 B2 JP 3826648B2 JP 2000004318 A JP2000004318 A JP 2000004318A JP 2000004318 A JP2000004318 A JP 2000004318A JP 3826648 B2 JP3826648 B2 JP 3826648B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- boundary
- request
- subsequent
- register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明は、ベクトルストア命令とスカラロード命令との双方を扱うキャッシュメモリを備えた情報処理装置における複数のベクトルストア命令に対するバウンダリ制御に適したバウンダリ実行制御装置及びバウンダリ制御方法に関する。
【0002】
【従来の技術】
一般に、命令処理の高速化を目的とした情報処理装置においては、先行するベクトルストア命令の区間に後続のロード系の命令のアクセス区間が重なっていない場合、後続のロード系命令に対し、先にメモリアクセスを実行させるようにしている。これは、メモリアクセスの高速化を図るためのベクトルストア命令追越し制御と呼ばれるものである。
【0003】
この種のベクトルストア命令追越し制御として、たとえば特開平04−182777号公報や特開平04−182778号公報では、命令発行部から命令を受付けると、メモリへのアクセスする区間においてベクトルストア命令とスカラロード命令とを別々に計算し、追越すことができるかどうかの判定を下すようにしている。この場合、追越しの判定の判断となるベクトルストア命令が複数であるとき、その数のアクセス区間に対応させた計算回路による計算が行われる。ただし、追い越しに係る処理としては、ベクトルストア/ロード命令のみ、つまりベクトル要素のみを扱っている。
【0004】
【発明が解決しようとする課題】
ところが、上述した各先行技術では、ベクトルストア命令毎のバウンダリ区間を記憶したり、スカラロード命令のアドレスと比較したりするためのHW(ハードウェア)資源に制限が有る。このため、後続のスカラロード命令が追越し可能とする先行のベクトルストア命令の数に制限が生じてしまう。
【0005】
また、バウンダリを記憶する手段やエントリ毎に後続のスカラロード命令とバウンダリ区間とを比較する手段等が必要となるため、バウンダリ区間を記憶するエントリ数が大きくなればなる程、膨大なHW(ハードウェア)量が必要となるとした不具合も有る。
【0006】
本発明は、このような状況に鑑みてなされたものであり、複数のベクトルストア命令に後続するスカラロード命令の性能を落とすことなく、最小のHW(ハードウェア)量で複数のベクトルストア命令に対するバウンダリ制御を行うことができるバウンダリ実行制御装置及びバウンダリ制御方法を提供することができるようにするものである。
【0007】
【課題を解決するための手段】
請求項1に記載のバウンダリ実行制御装置は、複数のベクトルストアリクエストの各々が有するアドレス範囲により形成される最大幅のアドレス範囲を算出・保持し、後続のスカラロードリクエストのアドレスが前記最大幅のアドレス範囲に含まれていなければ前記スカラロードリクエストをキャッシュメモリ側へ出力し、前記スカラロードリクエストのアドレスが前記最大幅のアドレス範囲に含まれていれば前記スカラロードリクエストを主記憶部側へ出力するリクエスト出力制御手段を備えることを特徴とする。
また、前記リクエスト出力制御手段は、前記ベクトルストアリクエスト又はスカラロードリクエストの何れであるかを判定するとともに、前記ベクトルストアリクエスト又はスカラロードリクエストの何れかを前記キャッシュメモリ側又は主記憶部側へ出力するメモリリクエスト制御部と、前記最大幅のアドレス範囲を算出・保持するとともに、前記スカラロードリクエストのアドレスが前記最大幅のアドレス範囲に含まれているか否かを判定するバウンダリ制御部とを備えるようにすることができる。
また、前記バウンダリ制御部は、前記最大幅のアドレス範囲を保持するバウンダリアドレスレジスタを有しているようにすることができる。
また、前記バウンダリ制御部は、前記バウンダリアドレスレジスタに保持された前記最大幅のアドレス範囲に前記後続のスカラロードリクエストのアドレスが含まれているか否かを判定するアドレス比較回路をさらに有しているようにすることができる。
また、前記バウンダリ制御部は、前記最大幅のアドレス範囲であるバウンダリ区間を示す始点のアドレスが登録されるバウンダリ始点アドレスレジスタと、前記バウンダリ区間を示す終点のアドレスが登録されるバウンダリ終点アドレスレジスタとを備え、後続の前記ベクトルストアリクエストの開始アドレスが終了アドレスより小さいときであり、かつ前記後続のベクトルストアリクエストの開始アドレスが前記バウンダリ始点アドレスレジスタに登録されている始点のアドレスより小さいとき、前記バウンダリ始点アドレスレジスタを前記後続の開始アドレスに変更し、さらに前記後続のベクトルストアリクエストの終了アドレスが前記バウンダリ終点アドレスレジスタに登録されている終点のアドレスより大きいとき、前記バウンダリ終了アドレスレジスタを前記後続の終了アドレスに変更し、前記後続のベクトルストアリクエストの開始アドレスが終了アドレスより大きいときであり、かつ前記後続のベクトルストアリクエストの終了アドレスが前記バウンダリ始点アドレスレジスタに登録されている始点のアドレスより小さいとき、前記バウンダリ始点アドレスレジスタを前記後続の終了アドレスに変更し、さらに前記後続のベクトルストアリクエストの開始アドレスが前記バウンダリ終点アドレスレジスタに登録されている終点のアドレスより大きいとき、前記バウンダリ終了アドレスレジスタを前記後続の開始アドレスに変更するようにすることができる。
また、前記バウンダリ制御部は、前記ベクトルストアリクエストに含まれる開始アドレス及び要素間距離及び要素数から終了アドレスを算出する終了アドレス算出回路と、後続の前記ベクトルストアリクエストの開始アドレス又は終了アドレスと前記バウンダリ始点アドレスレジスタに登録されている前記始点のアドレスとを比較するバウンダリ始点アドレス比較回路と、前記後続の前記ベクトルストアリクエストの終了アドレス又は始点アドレスと前記バウンダリ終点アドレスレジスタに登録されている前記終点のアドレスとを比較するバウンダリ終点アドレス比較回路と、後続の前記スカラロードリクエストのアドレスと前記バウンダリ始点アドレスレジスタ及び前記バウンダリ終点アドレスレジスタに登録されている前記始点及び終点のアドレスとを比較するスカラロードアドレス比較回路とを備え、前記メモリリクエスト制御部は、前記比較の結果に応じて、前記後続の前記スカラロードリクエストの出力先を前記キャッシュメモリ又は前記主記憶部の何れかに制御するようにすることができる。
請求項7に記載のバウンダリ制御方法は、複数のベクトルストアリクエストの各々が有するアドレス範囲により形成される最大幅のアドレス範囲を算出・保持する第1の工程と、後続のスカラロードリクエストのアドレスが前記最大幅のアドレス範囲に含まれていなければ前記スカラロードリクエストをキャッシュメモリ側へ出力する第2の工程と、前記スカラロードリクエストのアドレスが前記最大幅のアドレス範囲に含まれていれば前記スカラロードリクエストを主記憶部側へ出力する第3の工程とを備えることを特徴とする。
また、前記第1〜第3の工程には、メモリリクエスト制御部により、前記ベクトルストアリクエスト又はスカラロードリクエストの何れかを判定したり、前記ベクトルストアリクエスト又はスカラロードリクエストの何れかを前記キャッシュメモリ側又は主記憶部側へ出力したりする第4の工程と、バウンダリ制御部により、前記最大幅のアドレス範囲を算出・保持したり、前記スカラロードリクエストのアドレスが前記最大幅のアドレス範囲に含まれているか否かを判定する第5の工程とが含まれるようにすることができる。
また、前記第5の工程には、前記最大幅のアドレス範囲をバウンダリアドレスレジスタに保持する第6の工程が含まれるようにすることができる。
また、前記第6の工程には、前記バウンダリアドレスレジスタに保持された前記最大幅のアドレス範囲に前記後続のスカラロードリクエストのアドレスが含まれているか否かをアドレス比較回路により判定する第7の工程が含まれるようにすることができる。
また、前記第5〜第7の工程には、前記最大幅のアドレス範囲であるバウンダリ区間を示す始点のアドレスをバウンダリ始点アドレスレジスタに登録する第8の工程と、前記バウンダリ区間を示す終点のアドレスをバウンダリ終点アドレスレジスタに登録する第9の工程と、後続の前記ベクトルストアリクエストの開始アドレスが終了アドレスより小さいときであり、かつ前記後続のベクトルストアリクエストの開始アドレスが前記バウンダリ始点アドレスレジスタに登録されている始点のアドレスより小さいとき、前記バウンダリ始点アドレスレジスタを前記後続の開始アドレスに変更する第10の工程と、後続の前記ベクトルストアリクエストの開始アドレスが終了アドレスより小さいときであり、かつ前記後続のベクトルストアリクエストの終了アドレスが前記バウンダリ終点アドレスレジスタに登録されている終点のアドレスより大きいとき、前記バウンダリ終了アドレスレジスタを前記後続の終了アドレスに変更する第11の工程と、前記後続のベクトルストアリクエストの開始アドレスが終了アドレスより大きいときであり、かつ前記後続のベクトルストアリクエストの終了アドレスが前記バウンダリ始点アドレスレジスタに登録されている始点のアドレスより小さいとき、前記バウンダリ始点アドレスレジスタを前記後続の終了アドレスに変更する第12の工程と、前記後続のベクトルストアリクエストの開始アドレスが終了アドレスより大きいときであり、かつ前記後続のベクトルストアリクエストの開始アドレスが前記バウンダリ終点アドレスレジスタに登録されている終点のアドレスより大きいとき、前記バウンダリ終了アドレスレジスタを前記後続の開始アドレスに変更する第13の工程とが含まれるようにすることができる。
また、前記第5〜第13の工程には、前記ベクトルストアリクエストに含まれる開始アドレス及び要素間距離及び要素数から終了アドレスを終了アドレス算出回路により算出する第14の工程と、後続の前記ベクトルストアリクエストの開始アドレス又は終了アドレスと前記バウンダリ始点アドレスレジスタに登録されている前記始点のアドレスとをバウンダリ始点アドレス比較回路により比較する第15の工程と、前記後続の前記ベクトルストアリクエストの終了アドレス又は開始アドレスと前記バウンダリ終点アドレスレジスタに登録されている前記終点のアドレスとをバウンダリ終点アドレス比較回路により比較する第16の工程と、後続の前記スカラロードリクエストに含まれるアドレスと前記バウンダリ始点アドレスレジスタ及び前記バウンダリ終点アドレスレジスタに登録されている前記始点及び終点のアドレスとをスカラロードアドレス比較回路により比較する第17の工程とが含まれ、前記第2の工程には、前記比較の結果に応じて、前記後続の前記スカラロードリクエストの出力先を前記キャッシュメモリ又は前記主記憶部の何れかに制御する第18の工程が含まれるようにすることができる。
本発明に係るバウンダリ実行制御装置及びバウンダリ制御方法においては、リクエスト出力制御手段により、複数のベクトルストアリクエストの各々が有するアドレス範囲により形成される最大幅のアドレス範囲を算出・保持し、後続のスカラロードリクエストのアドレスが最大幅のアドレス範囲に含まれていなければスカラロードリクエストをキャッシュメモリ側へ出力し、スカラロードリクエストのアドレスが最大幅のアドレス範囲に含まれていればスカラロードリクエストを主記憶部側へ出力することで、複数のベクトルストア命令実行中にスカラロード命令を実行可能とするようにする。
【0008】
【発明の実施の形態】
以下、本発明の実施の形態について説明する。
【0009】
図1は、本発明のバウンダリ実行制御装置の一実施の形態に係る情報処理装置を示すブロック図、図2は、図1のバウンダリ制御部の詳細を示すブロック図、図3及び図4は、図1のバウンダリ制御部の動作を説明するためのフローチャート、図5は、図1のバウンダリ制御部の動作を説明するための図である。
【0010】
図1に示す情報処理装置は、命令発行制御部1、メモリリクエスト制御部2、バウンダリ制御部21、キャッシュメモリ3、主記憶部4及びベクトルプロセッサ5を備えている。ここで、バウンダリ実行制御装置は、リクエスト出力制御手段としてのメモリリクエスト制御部2及びバウンダリ制御部21を備えている。
【0011】
命令発行制御部1は、先行のベクトルストア命令と後続のスカラロード命令との実行制御を行う。この場合、命令発行制御部1は、先行のベクトルストアリクエストと後続のスカラロードリクエストとを発行する。
【0012】
先行のベクトルストアリクエストを発行する場合、そのリクエストのリクエスト構成情報としての開始アドレス及び要素間距離及び要素数がメモリリクエスト制御部2に送られる。また、後続のスカラロードリクエストを発行する場合、そのアドレスを含んだリクエストもメモリリクエスト制御部2に送られる。
【0013】
メモリリクエスト制御部2は、命令発行制御部1が発行するベクトルストアリクエスト又はスカラロードリクエストの何れであるかを判定するとともに、ベクトルストアリクエスト又はスカラロードリクエストの何れかをキャッシュメモリ3側又は主記憶部4側へ出力する。また、メモリリクエスト制御部2は、ベクトルストア命令やスカラロード命令に限らず、スカラストア及びベクトルロード等の命令や、ベクトルギャザー及びベクトルスキャタ等の間接アクセス命令等を受付けてキャッシュメモリ3や主記憶部4に対するアクセス制御を行う。すなわち、たとえばスカラストア命令の場合、バウンダリ領域に関わらず、キャッシュメモリ3へリクエストを送信すると同時に主記憶部4へもリクエストを送信することで、主記憶部4への書込みを制御する。
【0014】
バウンダリ制御部21は、先行のベクトルストアリクエストの開始アドレス及び要素間距離及び要素数を受取ると、ベクトルストアリクエストの終了アドレスを算出し、最大幅のアドレス範囲を示す開始アドレスと終了アドレスとを後述する図2のバウンダリアドレスレジスタ211に登録する。ここで、ベクトルストアリクエストの開始アドレス及び要素間距離及び要素数は、それぞれライン21a,21b,21cを介して与えられる。
【0015】
また、バウンダリ制御部21は、後続のスカラロードリクエストのアドレスを受取ると、そのアドレスがバウンダリアドレスレジスタ211に登録しているバウンダリ区間内に対するリクエストか否かをチェックする。すなわち、バウンダリ制御部21は、スカラロードリクエストのアドレスが最大幅のアドレス範囲に含まれているか否かを判定する。
【0016】
ここで、後続のスカラロードリクエストのアドレスがバウンダリ区間内の場合、バウンダリ制御部21はスカラロードリクエストを主記憶部4へ送信するようライン21eを介してメモリリクエスト制御部2に指示する。また、後続のスカラロードのリクエストアドレスがバウンダリ区間外の場合、バウンダリ制御部21はスカラロードリクエストをライン21dを介してキャッシュメモリ3に送る。
【0017】
さらに、バウンダリ制御部21は、主記憶部4からベクトルストアリクエストの完了通知を受取ると、キャッシュメモリ3に対し、登録されているデータ中のバウンダリ区間に一致するデータの無効化開始を指示する。また、バウンダリ制御部21は、バウンダリアドレスレジスタ211を無効化し、後続のスカラロード命令に対するバウンダリ制御を停止する。
【0018】
ベクトルプロセッサ5は、主記憶部4のデータをロードする。このロードは、メモリリクエスト制御部2が命令発行制御部1からベクトルロードリクエストを受取ったときにメモリリクエスト制御部2から出力されるベクトルロードリクエストに基づいて実行される。
【0019】
バウンダリ制御部21の詳細を、図2に示す。
【0020】
バウンダリ制御部21は、バウンダリアドレスレジスタ211、終了アドレス算出回路212、開始及び終了アドレス比較回路213、バウンダリ始点アドレス比較回路214、バウンダリ終点アドレス比較回路215、スカラロードアドレス比較回路216及びリクエストアドレス制御部217を備えている。
【0021】
バウンダリアドレスレジスタ211は、バウンダリ始点アドレスレジスタ2111とバウンダリ終点アドレスレジスタ2112とを有している。バウンダリ始点アドレスレジスタ2111は、ベクトルストア命令の実行中のバウンダリ区間の始点のアドレスを記憶する。バウンダリ終点アドレスレジスタ2112は、ベクトルストア命令の実行中のバウンダリ区間の終点のアドレスを記憶する。
【0022】
終了アドレス算出回路212は、上述したライン21a,21b,21cを介して得られるベクトルストア命令の開始アドレス及び要素間距離及び要素数から終了アドレスを算出する。ここでの算出方法としては、たとえば開始アドレス+要素間距離×要素数とした式を用いることができる。
【0023】
開始及び終了アドレス比較回路213は、開始アドレスと終了アドレスとを比較する。バウンダリ始点アドレス比較回路214は、後続のベクトルストア命令の開始アドレス又は終了アドレスとバウンダリ始点アドレスレジスタ2111の始点のアドレスとを比較する。また、バウンダリ領域が設定されていない場合の先行のベクトルストア命令においては、開始アドレスと終了アドレスとの大小が比較され、小さい方のアドレスがバウンダリ始点アドレスレジスタ2111へ、大きい方のアドレスがバウンダリ終点アドレスレジスタ2112へそれぞれ格納される。
【0024】
バウンダリ終点アドレス比較回路215は、後続のベクトルストア命令の終了アドレス又は開始アドレスとバウンダリ終点アドレスレジスタ2112の終点のアドレスとを比較する。スカラロードアドレス比較回路216は、後続のスカラロード命令のアドレスとバウンダリ始点アドレスレジスタ2111の始点のアドレス及びバウンダリ終点アドレスレジスタ2112の終点のアドレスとを比較する。
【0025】
リクエストアドレス制御部217は、後続のスカラロード命令の出力先をキャッシュメモリ3又は主記憶部4の何れかに制御する。ここで、出力先をキャッシュメモリ3とするとき、上述したライン21dを介して後続のスカラロード命令が出力され、出力先を主記憶部4とするとき、上述したライン21eを介してメモリリクエスト制御部2に後続のスカラロード命令を主記憶部4へ送信するよう指示する。
【0026】
次に、このような構成のバウンダリ制御機能を備えた情報処理装置について説明する。
【0027】
まず、図3に示すように、先行のベクトルストア命令と後続のスカラロード命令とが実行されるとき、命令発行制御部1により先行のベクトルストアリクエストが発行される。このとき、命令発行制御部1からバウンダリ制御部21に、そのベクトルストアリクエストの開始アドレス及び要素間距離及び要素数が送られる。
【0028】
この場合、先行のベクトルストアリクエストの発行時においては、メモリアクセスリクエスト(ステップ301)かつベクトルストアリクエスト(ステップ302)となり、バウンダリ制御部21がベクトルストアリクエストの終了アドレスを算出し(ステップ303)、開始アドレスと終了アドレスとをバウンダリアドレスレジスタ211に登録する。
【0029】
ステップ301において、メモリアクセスリクエストでない場合は、終了となる。また、ステップ302において、ベクトルストアリクエストでない場合は、スカラロードリクエストの有無が判定される(ステップ304)。
【0030】
後続のスカラロードリクエストの発行時においては、メモリアクセスリクエストでない(ステップ301)かつベクトルストアリクエストでない(ステップ302)となり、メモリリクエスト制御部2がスカラロードリクエストのアドレスをバウンダリ制御部21に送る。バウンダリ制御部21は、スカラロードリクエストのアドレスを受取ると、そのアドレスがバウンダリアドレスレジスタ211に登録したバウンダリ区間内(バウンダリ始点アドレス<スカラロードアドレス<バウンダリ終点アドレス)に対するリクエストか否かをチェックする(ステップ305)。
【0031】
チェック後、後続のスカラロードリクエストのアドレスがバウンダリ区間外である場合、バウンダリ制御部21がキャッシュメモリ3にスカラロードリクエストを送るよう制御する(ステップ307)。また、後続のスカラロードリクエストのアドレスがバウンダリ区間内である場合、バウンダリ制御部21がスカラロードリクエストを主記憶部4へ送るよう制御する(ステップ306)。
【0032】
バウンダリ制御部21は、主記憶部4からベクトルストアリクエストの完了通知を受取ると、キャッシュメモリ3に登録されているデータのうち、バウンダリ区間に一致するデータの有無を判定し(ステップ308)、一致するデータが有れば、キャッシュメモリ3に対し、その一致するデータの無効化の開始を指示する。
【0033】
また、バウンダリ制御部21は、バウンダリアドレスレジスタ211を無効化し、後続のスカラロード命令に対するバウンダリ制御を停止する。
【0034】
次に、ステップ303において、先行のベクトルストアリクエストの終了アドレスが算出された後、後続のベクトルストアリクエストが発行されると、図4のフローチャートに従う。
【0035】
すなわち、まず命令発行制御部1から後続のベクトルストアリクエストが発行されると、図2の終了アドレス算出回路212により、そのベクトルストアリクエストの開始アドレス及び要素間距離及び要素数から終了アドレスが算出される。
【0036】
次いで、開始及び終了アドレス比較回路213により、開始アドレスと終了アドレス算出回路212が算出した終了アドレスとの大小が比較される(ステップ401)。ここで、開始及び終了アドレス比較回路213による比較結果が開始アドレス<終了アドレスとなり、さらにバウンダリ始点アドレス>開始アドレスとなると、開始アドレスがバウンダリ始点アドレスレジスタ2111に登録される(ステップ402,403)。また、バウンダリ終点アドレス<終了アドレスとなると、終了アドレスがバウンダリ終点アドレスレジスタ2112に登録される(ステップ404,405)。
【0037】
さらに、ステップ401において、比較結果が開始アドレス>終了アドレスとなり、さらにバウンダリ始点アドレス>終了アドレスとなると、バウンダリ始点アドレスレジスタ2111に終了アドレスが登録される(ステップ406,407)。また、バウンダリ終点アドレス<開始アドレスとなると、バウンダリ終点アドレスレジスタ2112に開始アドレスが登録される(ステップ408,409)。
【0038】
次に、ステップ401において、ベクトルストアリクエストが開始アドレス<終了アドレスとなった場合の具体例を、図5を用いて説明する。
【0039】
すなわち、バウンダリ制御部21により、先行する第1のベクトルストアリクエストの開始アドレスaがバウンダリ始点アドレスレジスタ2111に登録され、終了アドレスdがバウンダリ終点アドレスレジスタ2112に登録される。
【0040】
次に、命令発行制御部1により、後続する第2のベクトルストアリクエストが発行されると、開始及び終了アドレス比較回路213が第1のベクトルストアリクエストと同様に開始アドレスeと、開始アドレス及び要素間距離及び要素数から算出した終了アドレスfとを比較する。
【0041】
その比較結果がe<fとなると、バウンダリ始点アドレス比較回路214により、開始アドレスeとバウンダリ始点アドレスレジスタ2111に登録されている開始アドレスaとが比較される。また、バウンダリ終点アドレス比較回路215により、終了アドレスfとバウンダリ終点アドレスレジスタ2112に登録されている終了アドレスdとが比較される。
【0042】
そして、バウンダリ始点アドレス比較回路214による比較結果がa<eとなり、バウンダリ終点アドレス比較回路215による比較結果がd>fとなった場合、バウンダリ始点アドレスレジスタ2111及びバウンダリ終点アドレスレジスタ2112のアドレスは開始アドレスa及び終了アドレスdに保持される。
【0043】
バウンダリ始点アドレス比較回路214による比較結果がa>eとなり、バウンダリ終点アドレスレジスタ2112による比較結果がd>fとなった場合、バウンダリ始点アドレスレジスタ2111に開始アドレスeが登録され、バウンダリ終点アドレスレジスタ2112のアドレスは終了アドレスdに保持される。
【0044】
バウンダリ始点アドレス比較回路214による比較結果がa<eとなり、バウンダリ終点アドレスレジスタ2112による比較結果がd<fとなった場合、バウンダリ始点アドレスレジスタ2111のアドレスは開始アドレスaに保持され、バウンダリ終点アドレスレジスタ2112には終了アドレスfが登録される。
【0045】
バウンダリ始点アドレス比較回路214による比較結果がa>eとなり、バウンダリ終点アドレスレジスタ2112による比較結果がd<fとなった場合、バウンダリ始点アドレスレジスタ2111に開始アドレスeが登録され、バウンダリ終点アドレスレジスタ2112に終了アドレスfが登録される。
【0046】
次に、図5のように、第1のベクトルストアリクエスト及び第2のベクトルストアリクエストの開始アドレスa,eと終了アドレスd,fとがa>eかつd>fである場合について説明する。
【0047】
前述の通り、バウンダリ始点アドレスレジスタ2111及びバウンダリ終点アドレスレジスタ2112には、それぞれ開始アドレスe及び終了アドレスdが登録されている。
【0048】
この状態で、バウンダリ制御部21が後続のスカラロードリクエストを受取ると、バウンダリ始点アドレス比較回路214により、そのリクエストのアドレスgとバウンダリ始点アドレスレジスタ2111に格納されている開始アドレスeとが比較される。また、スカラロードアドレス比較回路216により、アドレスgとバウンダリ終点アドレスレジスタ2112に格納されている終了アドレスdとが比較される。
【0049】
比較結果がe<gかつg<dであった場合、リクエストアドレス制御部217により、後続のスカラロードリクエストが主記憶部4へ送られる。比較結果がe<gかつd<g又はe>gかつd>gであった場合、リクエストアドレス制御部217により、後続のスカラロードリクエストがキャッシュメモリ3へ送られる。
【0050】
このとき、バウンダリ制御部21が先行する第1のベクトルストアリクエスト及び第2のベクトルストアリクエストの実行完了通知を主記憶部4から受取ると、キャッシュメモリ3に登録されているデータ中のバウンダリ区間に一致するデータの無効化の開始を、キャッシュメモリ3に指示する。
【0051】
また、バウンダリ制御部21が主記憶部4から完了報告を受取ると、バウンダリ始点アドレスレジスタ2111とバウンダリ終点アドレスレジスタ2112とを無効化し、バウンダリ制御を停止する。
【0052】
このように、本実施の形態では、バウンダリ制御部21により、実行中のベクトルストアリクエストの終了アドレスを算出し、ベクトルストアリクエストのバウンダリ区間の始点及び終点のアドレスを登録するとともに、後続のベクトルストアリクエストの開始アドレスと登録した始点のアドレスとの比較及び終了アドレスと登録した終点のアドレスとの比較を行い、登録したアドレスの変更を行ったり、後続のスカラロードリクエストのアドレスと登録したバウンダリ区間の始点及び終点のアドレスとを比較し、メモリリクエスト制御部2に対し後続のスカラロードリクエストの出力先を指示することで、スカラロードリクエストをキャッシュメモリ3又は主記憶部4の何れかに出力制御し、複数のベクトルストア命令実行中にスカラロード命令を実行可能とするようにしたので、複数のベクトルストア命令に後続するスカラロード命令の性能を落とすことなく、最小のHW(ハードウェア)量で複数のベクトルストア命令に対するバウンダリ制御を行うことができる。
【0053】
【発明の効果】
以上の如く本発明に係るバウンダリ実行制御装置及びバウンダリ制御方法によれば、リクエスト出力制御手段により、複数のベクトルストアリクエストの各々が有するアドレス範囲により形成される最大幅のアドレス範囲を保持し、後続のスカラロードリクエストのアドレスが最大幅のアドレス範囲に含まれていなければスカラロードリクエストをキャッシュメモリ側へ出力し、スカラロードリクエストのアドレスが最大幅のアドレス範囲に含まれていればスカラロードリクエストを主記憶部側へ出力することで、複数のベクトルストア命令実行中にスカラロード命令を実行可能とするようにしたので、複数のベクトルストア命令に後続するスカラロード命令の性能を落とすことなく、最小のHW(ハードウェア)量で複数のベクトルストア命令に対するバウンダリ制御を行うことができる。
【図面の簡単な説明】
【図1】本発明のバウンダリ実行制御装置の一実施の形態に係る情報処理装置を示すブロック図である。
【図2】図1のバウンダリ制御部の詳細を示すブロック図である。
【図3】図1のバウンダリ制御部の動作を説明するためのフローチャートである。
【図4】図1のバウンダリ制御部の動作を説明するためのフローチャートである。
【図5】図1のバウンダリ制御部の動作を説明するための図である。
【符号の説明】
1 命令発行制御部
2 メモリリクエスト制御部
3 キャッシュメモリ
4 主記憶部
5 ベクトルプロセッサ
21 バウンダリ制御部
21a〜21e ライン
211 バウンダリアドレスレジスタ
212 終了アドレス算出回路
213 開始及び終了アドレス比較回路
214 バウンダリ始点アドレス比較回路
215 バウンダリ終点アドレス比較回路
216 スカラロードアドレス比較回路
217 リクエストアドレス制御部
2111 バウンダリ始点アドレスレジスタ
2112 バウンダリ終点アドレスレジスタ
Claims (6)
- 複数のベクトルストアリクエストの各々が有するアドレス範囲により形成される最大幅のアドレス範囲を算出・保持し、後続のスカラロードリクエストのアドレスが前記最大幅のアドレス範囲に含まれていなければ前記スカラロードリクエストをキャッシュメモリ側へ出力し、前記スカラロードリクエストのアドレスが前記最大幅のアドレス範囲に含まれていれば前記スカラロードリクエストを主記憶部側へ出力するリクエスト出力制御手段を備え、
前記リクエスト出力制御手段は、
前記ベクトルストアリクエスト又はスカラロードリクエストの何れであるかを判定するとともに、前記ベクトルストアリクエスト又はスカラロードリクエストの何れかを前記キャッシュメモリ側又は主記憶部側へ出力するメモリリクエスト制御部と、
前記最大幅のアドレス範囲を算出・保持するとともに、前記スカラロードリクエストのアドレスが前記最大幅のアドレス範囲に含まれているか否かを判定するバウンダリ制御部とを備え、
前記バウンダリ制御部は、
前記最大幅のアドレス範囲であるバウンダリ区間を示す始点のアドレスが登録されるバウンダリ始点アドレスレジスタと、
前記バウンダリ区間を示す終点のアドレスが登録されるバウンダリ終点アドレスレジスタとを有するバウンダリアドレスレジスタを備え、
後続の前記ベクトルストアリクエストの開始アドレスが終了アドレスより小さいときであり、かつ前記後続のベクトルストアリクエストの開始アドレスが前記バウンダリ始点アドレスレジスタに登録されている始点のアドレスより小さいとき、前記バウンダリ始点アドレスレジスタを前記後続の開始アドレスに変更し、さらに前記後続のベクトルストアリクエストの終了アドレスが前記バウンダリ終点アドレスレジスタに登録されている終点のアドレスより大きいとき、前記バウンダリ終了アドレスレジスタを前記後続の終了アドレスに変更し、
前記後続のベクトルストアリクエストの開始アドレスが終了アドレスより大きいときであり、かつ前記後続のベクトルストアリクエストの終了アドレスが前記バウンダリ始点アドレスレジスタに登録されている始点のアドレスより小さいとき、前記バウンダリ始点アドレスレジスタを前記後続の終了アドレスに変更し、さらに前記後続のベクトルストアリクエストの開始アドレスが前記バウンダリ終点アドレスレジスタに登録されている終点のアドレスより大きいとき、前記バウンダリ終了アドレスレジスタを前記後続の開始アドレスに変更することを特徴とするバウンダリ実行制御装置。 - 前記バウンダリ制御部は、前記バウンダリアドレスレジスタに保持された前記最大幅のアドレス範囲に前記後続のスカラロードリクエストのアドレスが含まれているか否かを判定するアドレス比較回路をさらに有していることを特徴とする請求項1に記載のバウンダリ実行制御装置。
- 前記バウンダリ制御部は、
前記ベクトルストアリクエストに含まれる開始アドレス及び要素間距離及び要素数から終了アドレスを算出する終了アドレス算出回路と、
後続の前記ベクトルストアリクエストの開始アドレス又は終了アドレスと前記バウンダリ始点アドレスレジスタに登録されている前記始点のアドレスとを比較するバウンダリ始点アドレス比較回路と、
前記後続の前記ベクトルストアリクエストの終了アドレス又は始点アドレスと前記バウンダリ終点アドレスレジスタに登録されている前記終点のアドレスとを比較するバウンダリ終点アドレス比較回路と、
後続の前記スカラロードリクエストのアドレスと前記バウンダリ始点アドレスレジスタ及び前記バウンダリ終点アドレスレジスタに登録されている前記始点及び終点のアドレスとを比較するスカラロードアドレス比較回路とを備え、
前記メモリリクエスト制御部は、前記比較の結果に応じて、前記後続の前記スカラロードリクエストの出力先を前記キャッシュメモリ又は前記主記憶部の何れかに制御することを特徴とする請求項1又は2の何れかに記載のバウンダリ実行制御装置。 - 複数のベクトルストアリクエストの各々が有するアドレス範囲により形成される最大幅のアドレス範囲を算出・保持する第1の工程と、
後続のスカラロードリクエストのアドレスが前記最大幅のアドレス範囲に含まれていなければ前記スカラロードリクエストをキャッシュメモリ側へ出力する第2の工程と、
前記スカラロードリクエストのアドレスが前記最大幅のアドレス範囲に含まれていれば前記スカラロードリクエストを主記憶部側へ出力する第3の工程とを備え、
前記第1〜第3の工程には、
メモリリクエスト制御部により、前記ベクトルストアリクエスト又はスカラロードリクエストの何れかを判定したり、前記ベクトルストアリクエスト又はスカラロードリクエストの何れかを前記キャッシュメモリ側又は主記憶部側へ出力したりする第4の工程と、
バウンダリ制御部により、前記最大幅のアドレス範囲を算出・保持したり、前記スカラロードリクエストのアドレスが前記最大幅のアドレス範囲に含まれているか否かを判定する第5の工程とが含まれ、
前記第5の工程には、前記最大幅のアドレス範囲であるバウンダリ区間の始点アドレスと終点アドレスをバウンダリアドレスレジスタに保持する第6の工程が含まれ、
前記第5〜第6の工程には、
前記最大幅のアドレス範囲であるバウンダリ区間を示す始点のアドレスを前記バウンダリアドレスレジスタが有するバウンダリ始点アドレスレジスタに登録する第8の工程と、
前記バウンダリ区間を示す終点のアドレスを前記バウンダリアドレスレジスタが有するバウンダリ終点アドレスレジスタに登録する第9の工程と、
後続の前記ベクトルストアリクエストの開始アドレスが終了アドレスより小さいときであり、かつ前記後続のベクトルストアリクエストの開始アドレスが前記バウンダリ始点アドレスレジスタに登録されている始点のアドレスより小さいとき、前記バウンダリ始点アドレスレジスタを前記後続の開始アドレスに変更する第10の工程と、
後続の前記ベクトルストアリクエストの開始アドレスが終了アドレスより小さいときであり、かつ前記後続のベクトルストアリクエストの終了アドレスが前記バウンダリ終点アドレスレジスタに登録されている終点のアドレスより大きいとき、前記バウンダリ終了アドレスレジスタを前記後続の終了アドレスに変更する第11の工程と、
前記後続のベクトルストアリクエストの開始アドレスが終了アドレスより大きいときであり、かつ前記後続のベクトルストアリクエストの終了アドレスが前記バウンダリ始点アドレスレジスタに登録されている始点のアドレスより小さいとき、前記バウンダリ始点アドレスレジスタを前記後続の終了アドレスに変更する第12の工程と、
前記後続のベクトルストアリクエストの開始アドレスが終了アドレスより大きいときであり、かつ前記後続のベクトルストアリクエストの開始アドレスが前記バウンダリ終点アドレスレジスタに登録されている終点のアドレスより大きいとき、前記バウンダリ終了アドレスレジスタを前記後続の開始アドレスに変更する第13の工程とが含まれることを特徴とするバウンダリ制御方法。 - 前記第6の工程には、前記バウンダリアドレスレジスタに保持された前記最大幅のアドレス範囲に前記後続のスカラロードリクエストのアドレスが含まれているか否かをアドレス比較回路により判定する第7の工程が含まれることを特徴とする請求項4に記載のバウンダリ制御方法。
- 前記第5〜第13の工程には、
前記ベクトルストアリクエストに含まれる開始アドレス及び要素間距離及び要素数から終了アドレスを終了アドレス算出回路により算出する第14の工程と、 後続の前記ベクトルストアリクエストの開始アドレス又は終了アドレスと前記バウンダリ始点アドレスレジスタに登録されている前記始点のアドレスとをバウンダリ始点アドレス比較回路により比較する第15の工程と、
前記後続の前記ベクトルストアリクエストの終了アドレス又は開始アドレスと前記バウンダリ終点アドレスレジスタに登録されている前記終点のアドレスとをバウンダリ終点アドレス比較回路により比較する第16の工程と、
後続の前記スカラロードリクエストに含まれるアドレスと前記バウンダリ始点アドレスレジスタ及び前記バウンダリ終点アドレスレジスタに登録されている前記始点及び終点のアドレスとをスカラロードアドレス比較回路により比較する第17の工程とが含まれ、
前記第2の工程には、前記比較の結果に応じて、前記後続の前記スカラロードリクエストの出力先を前記キャッシュメモリ又は前記主記憶部の何れかに制御する第18の工程が含まれる
ことを特徴とする請求項4又は5の何れかに記載のバウンダリ制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000004318A JP3826648B2 (ja) | 2000-01-13 | 2000-01-13 | バウンダリ実行制御装置及びバウンダリ制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000004318A JP3826648B2 (ja) | 2000-01-13 | 2000-01-13 | バウンダリ実行制御装置及びバウンダリ制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001195389A JP2001195389A (ja) | 2001-07-19 |
JP3826648B2 true JP3826648B2 (ja) | 2006-09-27 |
Family
ID=18533117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000004318A Expired - Fee Related JP3826648B2 (ja) | 2000-01-13 | 2000-01-13 | バウンダリ実行制御装置及びバウンダリ制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3826648B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3988144B2 (ja) | 2004-02-23 | 2007-10-10 | 日本電気株式会社 | ベクトル処理装置、及び、追い越し制御回路 |
JP5206385B2 (ja) * | 2008-12-12 | 2013-06-12 | 日本電気株式会社 | バウンダリ実行制御システム、バウンダリ実行制御方法、及びバウンダリ実行制御プログラム |
-
2000
- 2000-01-13 JP JP2000004318A patent/JP3826648B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001195389A (ja) | 2001-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7299341B2 (en) | Embedded system with instruction prefetching device, and method for fetching instructions in embedded systems | |
JP2008542880A (ja) | 命令の型に応じて構成可能なキャッシュ・システム | |
US6606688B1 (en) | Cache control method and cache controller | |
JPH0285960A (ja) | 情報処理システム | |
JP2000293436A (ja) | パイプラインメモリシステムにおける複数のターゲットへの複数の未解決要求のサポート | |
EP0600165A1 (en) | Vector processing device | |
US20080256296A1 (en) | Information processing apparatus and method for caching data | |
JP3826648B2 (ja) | バウンダリ実行制御装置及びバウンダリ制御方法 | |
JPH07210460A (ja) | バッファストレイジのムーブイン制御方法 | |
JP2001014212A (ja) | メモリ制御装置及び方法とそれを用いた描画装置及び印刷装置 | |
JP3698027B2 (ja) | ベクトル収集・拡散命令実行順序制御装置 | |
US6397304B1 (en) | Method and apparatus for improving system performance in multiprocessor systems | |
JP6488962B2 (ja) | キャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラム | |
US9201655B2 (en) | Method, computer program product, and hardware product for eliminating or reducing operand line crossing penalty | |
JP2786886B2 (ja) | プリフェッチ制御方法およびプリフェッチ制御装置 | |
JPH08314803A (ja) | ディスクキャッシュ制御装置 | |
JP3039391B2 (ja) | メモリシステム | |
JPH0844659A (ja) | データ転送制御装置 | |
JPH0683621A (ja) | フェッチ方式 | |
JP2003044357A (ja) | キャッシュ先取り方式 | |
JP2005071046A (ja) | キャッシュメモリの使用方法 | |
JPH09231203A (ja) | ベクトルストア追い越し制御回路 | |
JPH11212900A (ja) | システム制御装置 | |
JPH06161891A (ja) | コンピュータシステム及びキャッシュ制御手段におけるキャッシュ制御方法 | |
JP2002182901A (ja) | コプロセッサデータアクセス制御装置、その方法およびその命令フォーマット |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041124 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050119 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050614 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050810 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060214 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060309 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060309 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20060309 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20060418 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060516 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060523 |
|
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: 20060613 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060626 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050119 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100714 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110714 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110714 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120714 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |