(57)【要約】【課題】本来ソフトウェアで行われてきたループ処理に関わるアドレス計算や判断処理をソフトウェアで行うことなく、かつ自動的に継ぎ目の無いデータとしてキャッシュにプリフェッチする。【解決手段】プロセッサー１と、内部に配置されたキャッシュメモリー１１と、プロセッサー１に内蔵され、命令解読部／発行部５、レジスターファイル６、プリフェッチ実行制御部７、外部メモリー制御部８、キャッシュメモリー制御部９及びデータ処理部１２からなる処理実行部２と、及びプロセッサー１の外部に配置された外部メモリー１０とで構成する。外部メモリー１０からキャッシュメモリー１１にループ型データを読み出す際に、終端において自動的に始点に戻り、連続してループ型データを読み出す。【選択図】      図１
2004272851.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュメモリーと該キャッシュメモリーに一時格納された情報を用いて処理する処理実行部とを有するプロセッサーと、
前記プロセッサーの外部に配置された外部メモリー
とを備え、前記処理実行部はループ型データの終端において自動的に前記ループ型データの始点に戻り、連続して前記ループ型データを前記外部メモリーから前記キャッシュメモリーに読み出すことを特徴とする信号処理装置。
【請求項２】
前記処理実行部は、
プロセッサーからの実行命令を受信する命令解読部／発行部と、
前記命令解読部／発行部からのレジスター番号指定信号を受信するレジスターファイルと、
前記命令解読部／発行部からのプリフェッチ命令実行信号と前記レジスターファイルからのレジスター内容出力データとを受信するプリフェッチ実行制御部と、
前記プリフェッチ実行制御部からの外部メモリー制御指示信号を受信する外部メモリー制御部と、
前記プリフェッチ実行制御部からのキャッシュメモリー制御指示信号を受信するキャッシュメモリー制御部と、
前記外部メモリー制御部と前記キャッシュメモリー制御部に接続されるデータ処理部
とを備えることを特徴とする請求項１記載の信号処理装置。
【請求項３】
前記プリフェッチ実行制御部は、
前記レジスターファイルからのレジスター内容出力データを受信する一時記憶装置と、
前記一時記憶装置からのデータを受信するプリフェッチアドレス演算生成比較部と、
前記一時記憶装置から、前記データとは別のプリフェッチブロック数データを受信し、前記プリフェッチアドレス演算生成比較部との間で第１の制御信号を送受信するプリフェッチブロック数演算部と、
前記プリフェッチアドレス演算生成比較部から送出される外部メモリーアクセスアドレス情報を受信する外部メモリー制御部から外部メモリー制御指示応答信号を受信して、第２の制御信号を前記プリフェッチアドレス演算生成比較部に送出する外部メモリーアクセス数状況判定部
とを備えることを特徴とする請求項２に記載の信号処理装置。
【請求項４】
前記一時記憶装置は、
ループスタートアドレスデータを格納するループスタートアドレスデータ領域と、
ループエンドオフセットデータを格納するループエンドオフセットデータ領域と、
プリフェッチスタートアドレスデータを格納するプリフェッチスタートアドレスデータ領域と、
ストライドアドレスデータを格納するストライドアドレスデータ領域と、
ブロックサイズデータを格納するブロックサイズデータ領域と、
プリフェッチブロック数データを格納するプリフェッチブロック数データ領域
とを備えることを特徴とする請求項３記載の信号処理装置。
【請求項５】
外部メモリー上のアドレスデータに開始アドレスを設定する手順と、
前記開始アドレスから所定のデータサイズを有するループデータを定義する手順と、
プリフェッチ領域内のデータサイズの内、前記ループデータの終端部において、ループエンドプリフェッチデータを読み出す手順と、
自動的に前記ループデータの始点に戻り、ループスタートプリフェッチデータを読み出す手順と、
前記外部メモリー上の前記ループ型データをキャッシュメモリー上のアドレスデータへ連続して転送する手順
とを備えることを特徴とするプリフェッチ命令方法。
【請求項６】
外部メモリー上のアドレスデータにおいて、ループスタートアドレス及びループエンドオフセットを決定して、ループプリフェッチ適用領域とループプリフェッチ適用外領域及び対象外データを決定する手順と、
前記ループプリフェッチ適用外領域において、プリフェッチスタートアドレスを指定する手順と、
前記プリフェッチスタートアドレスから所定のストライドアドレスを指定して、飛び飛びのブロックデータをブロックサイズ単位に読み出す手順と、
前記ループプリフェッチ適用領域の終端に到達したとき、自動的に前記ループスタートアドレスに戻る手順と、
前記終端において、ループエンドプリフェッチデータとループスタートプリフェッチデータを連続的に結合する手順
とを備えることを特徴とするプリフェッチ命令方法。
【請求項７】
前記プリフェッチスタートアドレスから所定のストライドアドレスを指定して、飛び飛びのブロックデータをブロックサイズ単位に読み出す手順は、前記ループプリフェッチ適用領域に入っても継続することを特徴とする請求項６記載のプリフェッチ命令方法。
【請求項８】
転送データ数とデータ転送分の和を新たな転送データ数として設定する手順と、
転送アドレスと前記データ転送分のアドレスとの和を新たな転送アドレスとして設定する手順と、
前記新たな転送アドレスの値がループスタートアドレスとループエンドオフセットの和よりも大であるかどうかを判断する手順と、
前記和よりも小であるならば、ブロックサイズが前記新たな転送データ数に等しいかどうかを判断する手順と、
前記和よりも大であるならば、ループ終端をはみ出した後ろの部分のデータは捨て、残った前の部分のデータをバッファに格納する手順と、
前記データ転送分から前記残ったデータ転送分を引いた値で表されるデータをループスタートアドレスの位置から確保し、バッファの空いた部分に前記データを書き込む手順と、
前記データ転送分から前記残ったデータ転送分を引いたアドレスと前記新たな転送アドレスとの和が更に新たな転送アドレスとなるように設定する手順
とを備えることを特徴とするプリフェッチ命令方法。
【請求項９】
前記ブロックサイズが前記新たな転送データ数に等しくないならば、読み出したデータをバッファからキャッシュに格納する手順と、
前記ブロックサイズが前記新たな転送データ数に等しいならば、転送ブロック数に１を加えた値を新たな転送ブロック数となるように設定する手順と、
プリフェッチブロック数が前記新たな転送ブロック数に等しいかどうかを判断する手順と、
前記プリフェッチブロック数が前記新たな転送ブロック数に等しいならば、プリフェッチ転送終了とする手順と、
前記プリフェッチブロック数が前記新たな転送ブロック数に等しくないならば、ストライドアドレスからブロックサイズの値を引いた値と前記新たな転送アドレスとの和がブロック先頭アドレスとなるように設定する手順と、
とを備えることを特徴とする請求項５記載のプリフェッチ命令方法。
【請求項１０】
転送データ数とデータ転送分の和を新たな転送データ数として設定する手順と、
転送アドレスと前記データ転送分のアドレスとの和を新たな転送アドレスとして設定する命令と、
前記新たな転送アドレスの値がループスタートアドレスとループエンドオフセットの和よりも大であるかどうかを判断する命令と、
前記和よりも小であるならば、ブロックサイズが前記新たな転送データ数に等しいかどうかを判断する命令と、
前記和よりも大であるならば、ループ終端をはみ出した後ろの部分のデータは捨て、残った前の部分のデータをバッファに格納する命令と、
前記データ転送分から前記残ったデータ転送分を引いた値で表されるデータをループスタートアドレスの位置から確保し、バッファの空いた部分に前記データを書き込む命令と、
前記データ転送分から前記残ったデータ転送分を引いたアドレスと前記新たな転送アドレスの和が更に新たな転送アドレスとなるように設定する命令
とを信号処理装置に実行させることを特徴とするプリフェッチ命令プログラム。
【請求項１１】
前記ブロックサイズが前記新たな転送データ数に等しくないならば、読み出したデータをバッファからキャッシュに格納する命令と、
前記ブロックサイズが前記新たな転送データ数に等しいならば、転送ブロック数に１を加えた値を新たにな転送ブロック数となるように設定する命令と、
プリフェッチブロック数が前記新たな転送ブロック数に等しいかどうかを判断する命令と、
前記プリフェッチブロック数が前記新たな転送ブロック数に等しいならば、プリフェッチ転送終了とする命令と、
前記プリフェッチブロック数が前記新たな転送ブロック数に等しくないならば、ストライドアドレスからブロックサイズの値を引いた値と前記新たな転送アドレスとの和がブロック先頭アドレスとなるように設定する命令と、
とを信号処理装置に実行させることを特徴とする請求項１０記載のプリフェッチ命令プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、信号処理装置に関し、更に、プリフェッチ命令方法及びプリフェッチ命令プログラムに関する。
【０００２】
【従来の技術】
現在、マイクロプロセッサー等においては、映像・音声といったマルチメディアデータ処理を効率的にかつ高速に実行するために、大容量のキャッシュメモリーを搭載している。キャッシュメモリーはマルチメディアデータを高速処理する上で一番重要な技術である。なぜならば、キャッシュメモリーはプロセッサー内に配置されていて、プロセッサーと同じスピードで動作するからである。一方、キャッシュメモリーは容量が小さいことから、大容量のデータを記憶することはできない。したがって、外部メモリーから取り込むデータの内、ある一部をもってきて活用することになる。キャッシュメモリーには必要なデータを取り込んでおくと効率がよい。
【０００３】
まず、一番簡単な構成を用いて説明すると、プロセッサーに対して外部メモリーが接続され、この外部メモリーから必要なときに必要なデータを読み出して、プロセッサーを実行する場合がある。プロセッサー内の実行処理部に対して外部メモリーからデータが供給されるため、このように外部メモリーから読み出す場合、アクセス開始時からデータ実行処理到着まで、時間が長くかかるという欠点がある。
【０００４】
一方、プロセッサー内にキャッシュメモリーが存在する構成においては、外部メモリーからデータがキャッシュメモリーに供給されるため、キャッシュメモリーから読み出す場合、アクセス開始時からデータ処理実行部到着まで、時間が短くてすむ。
【０００５】
しかるに、キャッシュメモリーの容量が小さいために、キャッシュメモリーに所望のデータが無く、外部メモリーから必要なデータを読み出す場合には、外部メモリーからプロセッサー内の処理実行部までデータの転送に時間を要するため、アクセス開始からデータ処理実行部到着まで、時間が長くかかるという欠点が存在する。即ち、データ処理に必要なデータが現実に必要になってから、その必要なデータが格納されている外部メモリーにアクセスして読み出そうとすると、そのデータが外部メモリーから読み出されてくるまでにかなりの時間がかかる。その分処理が停滞することが十分にありうる。
【０００６】
そこで、あらかじめキャッシュメモリー内に使用頻度の高いデータを登録し、この登録済みのデータに対してアクセスするというプリフェッチ命令機能を搭載したプロセッサーにおいては、アクセス開始からデータ処理実行部到着まで時間は短くてすむという利点が存在する。
【０００７】
即ち、プロセッサーの命令にプリフェッチ命令というものを組み込んで、ソフトウェアが処理に必要と思われるデータを予め、プロセッサーに搭載されているキャッシュメモリーに読み込んでおくことができるようにする。特に、映像・音声といったマルチメディアデータを処理する上では、必要なデータを、予め取り込んでおくと効率がよい。即ち、プリフェッチ命令によって、ほしい時期にプリフェッチデータを発行すると好都合である。
【０００８】
現在のマイクロプロセッサー等では、以上の２つの機能、即ち、高速キャッシュメモリー機能とプロセッサーからのプリフェッチ命令によるプリフェッチデータの読み出し機能の実現により、映像そして音声といったマルチメディアデータ処理を行っている。
【０００９】
ところが、現在のところ、プリフェッチ命令によってデータを読み出す形式においては、読み出す開始点から読み終わる終点まで、アドレスが大きくなる方向のみのデータ列しか読み出すことはできない。
【００１０】
ここで、一般的なプリフェッチ命令の機能を説明する。外部メモリー上のアドレスデータＥＡＤにおいて、プリフェッチデータＰＤ  を選択してキャッシュメモリーへ転送する場合には、図１１に示すように、開始アドレスＳＡとデータサイズＤＳを指定してプリフェッチデータＰＤを選択する。この選択されたプリフェッチデータＰＤをキャッシュメモリーへ転送し、キャッシュメモリー上のアドレスデータＣＡＤにおいて、所望のキャッシュデータＣＤを得ることができる。ここで、外部メモリー上のアドレスデータＥＡＤおいて、開始アドレスＳＡからデータサイズＤＳを指定することから、プリフェッチ命令によってデータを読み出す場合、図１１において右方向へアドレスが大きくなる方向にあることから、アドレスが大きくなる方向のみのデータ列しか読み出すことはできない。
【００１１】
外部メモリー上において、インターバルをおいて飛び飛びに存在するデータをまとめてキャッシュメモリーに転送する場合もある。例えば、映像データにおいては、Ｒ  （赤），Ｇ（緑），Ｂ（青）の色分離データをそれぞれまとめて、Ｒだけのデータ、Ｇだけのデータ、Ｂだけのデータとしてキャッシュメモリーに転送することがある。このように飛び飛びのデータを扱う場合、例えば図１２に示すように、外部メモリー上のアドレスデータＥＡＤ内のブロックデータＢＤ１，ＢＤ２，ＢＤ３，ＢＤ４は飛び飛びの位置に置かれている。このような外部メモリー上のアドレスデータＥＡＤをキャッシュメモリー上のアドレスデータＣＡＤに転送してキャッシュデータＣＤを得る場合、これらのデータをまとめてキャッシュメモリー上において圧縮された形に転送している。ブロックデータＢＤ１は、開始アドレスＳＡから所定のブロックサイズＢＳによって規定され、他のブロックデータＢＤ２，ＢＤ３，ＢＤ４も同様に規定される。何ブロックアクセスするかはブロック数ＢＮによってあらかじめ決めておく。各ブロックデータの開始アドレスＳＡ間をストライドＳＴによって規定している。図１２の例においても、プリフェッチ命令によってデータを読み出す場合、外部メモリー上のアドレスデータＥＡＤにおいて、読み出す開始点から読み終わる終点まで、飛び飛びのデータを読み出すとしても、アドレスが大きくなる方向のみのデータ列しか読み出すことはできない。
【００１２】
いわゆるインターネット上からの動画配信等において利用されているストリーミング技術においては、音声及び映像データの場合のデータ処理は、上記に示すようなプリフェッチ命令で十分である。しかしながら、データを何回もループして読み出すような音声合成処理を行うような場合には、ソフトウェア側で常に読み出すアドレスがループの終点に達したのかどうかという判断処理をしなければならない。即ち、図１３に示すように、外部メモリー上のアドレスデータＥＡＤにおいて、開始アドレスＳＡからデータサイズＤＳの範囲内にあるループデータＬＤを繰り返し読み出す場合には、データサイズＤＳの範囲をＳＷ１０，ＳＷ１１，ＳＷ１２・・・と繰り返し何回もスキャンすることによって、所望のループデータＬＤＤを滑らかに連続した形で読み出すことができる。しかるに、データを何回もループして読み出すような音声合成処理を行うような場合には、読み出すアドレスがループの終点に達したのかどうかという判断処理を、常にソフトウェア側で実行する必要があり、ソフトウェアとして大変な困難性を伴う。
【００１３】
そしてループの終点に達したと判断した場合には、あらためてループの始点から所望のデータ量をプリフェッチするように命令の再発行をしなければならない。図１３の例では、音声データとして「ポー」という音を何回も繰り返して再生する場合の例に対応している。開始アドレスＳＡからデータサイズＤＳの範囲内にあるループデータＬＤを、繰り返し読み出しサイズＳＷ１０，ＳＷ１１，ＳＷ１２にわたって３回繰り返して読み出す例が示されている。この場合にも、対象外データＥＸＤを読み出してしまう可能性もある。「ポー」という音声を３回繰り返し再生した場合において、所望のループデータＬＤＤの連続波形（横軸：時間）の様子も示されている。前述の通り、データを何回もループして読み出すような音声合成処理を行うような場合には、読み出すアドレスがループの終点に達したのかどうかという判断処理を、常にソフトウェア側で実行する必要があり、ソフトウェアとして大変な困難性を伴う。
【００１４】
この場合でもデータのサイズが大きく、なかなかループの終点に達しないようなデータを処理する場合には、その判断処理及び対応処理は、あまり大きなソフトウェア上の負荷にはならない。しかしながら、電子楽器のようにループ処理を行うデータのサイズが音素と呼ばれる短周期波形からストリーミングのような長時間の音をサンプリングしたような音を複数（数十や数百）扱うような場合には、上記のような判断処理や対応処理の総計処理数は膨大な量になる。
【００１５】
【発明が解決しようとする課題】
本発明の目的は、あらかじめデータが格納されているメモリー上のデータの始点と終点を割り出すことができるパラメーターを有するプリフェッチ命令を利用して、データを「連続したデータ列」として、キャッシュメモリーにあらかじめ読み出して格納することができる信号処理装置を提供することにある。
【００１６】
更に、本発明の目的は、ループ型データ構造に対するプリフェッチ命令機能を有する信号処理装置において使用するプリフェッチ命令方法及びプリフェッチ命令プログラムを提供することにある。
【００１７】
【課題を解決するための手段】
上記目的を達成するために、本発明の第１の特徴は、（イ）キャッシュメモリーとキャッシュメモリーに一時格納された情報を用いて処理する処理実行部とを有するプロセッサーと、（ロ）プロセッサーの外部に配置された外部メモリーとを備え、（ハ）処理実行部はループ型データの終端において自動的にループ型データの始点に戻り、連続してループ型データを外部メモリーからキャッシュメモリーに読み出すことを特徴とする信号処理装置であることを要旨とする。
【００１８】
本発明の第２の特徴は、（イ）外部メモリー上のアドレスデータに開始アドレスを設定する手順と、（ロ）開始アドレスから所定のデータサイズを有するループデータを定義する手順と、（ハ）プリフェッチ領域内のデータサイズの内、ループデータの終端部において、ループエンドプリフェッチデータを読み出す手順と、（ニ）自動的に前記ループデータの始点に戻り、ループスタートプリフェッチデータを読み出す手順と、（ホ）外部メモリー上のループ型データをキャッシュメモリー上のアドレスデータへ連続して転送する手順とを備えることを特徴とするプリフェッチ命令方法であることを要旨とする。
【００１９】
本発明の第３の特徴は、（イ）外部メモリー上のアドレスデータにおいて、ループスタートアドレス及びループエンドオフセットを決定して、ループプリフェッチ適用領域とループプリフェッチ適用外領域及び対象外データを決定する手順と、（ロ）ループプリフェッチ適用外領域において、プリフェッチスタートアドレスを指定する手順と、（ハ）プリフェッチスタートアドレスから所定のストライドアドレスを指定して、飛び飛びのブロックデータをブロックサイズ単位に読み出す手順と、（ニ）ループプリフェッチ適用領域の終端に到達したとき、自動的にループスタートアドレスに戻る手順と、（ホ）終端において、ループエンドプリフェッチデータとループスタートプリフェッチデータを連続的に結合する手順とを備えることを特徴とするプリフェッチ命令方法であることを要旨とする。
【００２０】
本発明の第４の特徴は、（イ）転送データ数とデータ転送分の和を新たな転送データ数として設定する手順と、（ロ）転送アドレスとデータ転送分のアドレスとの和を新たな転送アドレスとして設定する手順と、（ハ）新たな転送アドレスの値がループスタートアドレスとループエンドオフセットの和よりも大であるかどうかを判断する手順と、（ニ）和よりも小であるならば、ブロックサイズが新たな転送データ数に等しいかどうかを判断する手順と、（ホ）和よりも大であるならば、ループ終端をはみ出した後ろの部分のデータは捨て、残った前の部分のデータをバッファに格納する手順と、（へ）データ転送分から残ったデータ転送分を引いた値で表されるデータをループスタートアドレスの位置から確保し、バッファの空いた部分にデータを書き込む手順と、（ト）データ転送分から残ったデータ転送分を引いたアドレスと新たな転送アドレスとの和が更に新たな転送アドレスとなるように設定する手順とを備えることを特徴とするプリフェッチ命令方法であることを要旨とする。
【００２１】
本発明の第５の特徴は、（イ）データ数とデータ転送分の和を新たな転送データ数として設定する手順と、（ロ）転送アドレスとデータ転送分のアドレスとの和を新たな転送アドレスとして設定する命令と、（ハ）新たな転送アドレスの値がループスタートアドレスとループエンドオフセットの和よりも大であるかどうかを判断する命令と、（ニ）和よりも小であるならば、ブロックサイズが新たな転送データ数に等しいかどうかを判断する命令と、（ホ）和よりも大であるならば、ループ終端をはみ出した後ろの部分のデータは捨て、残った前の部分のデータをバッファに格納する命令と、（へ）データ転送分から残ったデータ転送分を引いた値で表されるデータをループスタートアドレスの位置から確保し、バッファの空いた部分にデータを書き込む命令と、（ト）データ転送分から残ったデータ転送分を引いたアドレスと新たな転送アドレスの和が更に新たな転送アドレスとなるように設定する命令とを信号処理装置に実行させることを特徴とするプリフェッチ命令プログラムであることを要旨とする。
【００２２】
【発明の実施の形態】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面において、同一又は類似の部分には同一又は類似の符号を付している。又、以下に示す実施の形態は、この発明の技術思想を具体化するための装置や方法を例示するものであって、この発明の技術思想を下記のものに特定するものではない。この発明の技術思想は、特許請求の範囲において、種々の変更を加えることができる。
【００２３】
本発明の実施形態に係る信号処理装置３は、図１に示すように、外部メモリー１０と、キャッシュメモリー１１と、プロセッサー１からの実行命令ＣＯＭを受信する命令解読部／発行部５と、命令解読部／発行部５からのレジスター番号指定信号ＲＮＡをそれぞれのレジスター“Ａ”、“Ｂ”、“Ｃ”において受信する汎用レジスター（専用レジスターでも可）ファイル６と、汎用レジスターファイル６からのレジスター内容出力データＲＥと命令解読部／発行部５からのプリフェッチ命令実行信号ＰＣＥとをともに受信するプリフェッチ実行制御部７と、プリフェッチ実行制御部７からのキャッシュメモリー制御指示信号ＣＭＣを受信しキャッシュメモリー１１との間でデータバス１３Ｂを介してデータを送受信するキャッシュメモリー制御部９と、プリフェッチ実行制御部７からの外部メモリー制御指示信号ＥＭＣを受信し、外部メモリー１０との間でデータバス１３Ｂを介してデータを送受信する外部メモリー制御部８と、外部メモリー制御部８及びキャッシュメモリー制御部９との間でデータバス１３Ａを介してデータを送受信するデータ処理部１２とからなる。ここで、外部メモリー制御指示信号ＥＭＣは、後述する図７に示す外部メモリーアクセスアドレス情報とほぼ同様の情報を含むものと考えてよい。但し、図１に示すように、プリフェッチ実行制御部７と外部メモリー制御部８との間の信号であることから、外部メモリー制御指示信号ＥＭＣにはアドレス情報以外の情報も含まれる。
【００２４】
本発明の実施形態に係る信号処理装置３は、模式的には図２に示すように、処理実行部２とキャッシュメモリー１１から構成されており、ループ型データ構造に対するプリフェッチ命令機能を有する。図１との関係においては、図１の外部メモリー１０及びキャッシュメモリー１１が図２の外部メモリー１０及びキャッシュメモリー１１に対応している。実行処理部２は図１において、外部メモリー１０とキャッシュメモリー１１以外の構成要素がすべて含まれる。即ち、実行処理部２は、図１における命令解読部／発行部５と、汎用レジスター６と、プリフェッチ実行制御部７と、外部メモリー制御部８と、キャッシュメモリー制御部９と、データ処理部１２とを含む。プロセッサー１には処理実行部２とキャッシュメモリー１１が含まれる。
【００２５】
プロセッサー１の内部において命令を実行する場合に、まずその実行されるプロセッサー１からの実行命令ＣＯＭは、命令解読部／発行部５においてその命令の種類が判断される。その結果、命令解読部／発行部５からはプリフェッチ命令実行信号ＰＣＥがプリフェッチ実行制御部７に対して発行され、レジスター番号指定信号ＲＮＡが汎用レジスターファイル６に対して発行される。図１の命令解読部／発行部５では、解読部と発行部を一つのブロックとして表現しているが別々のブロックで表現してもよい。仮に命令が「プリフェッチ命令」の場合には、命令発行の段階で、そのプリフェッチ命令に含まれるレジスター番号指定信号ＲＮＡからなるレジスター指定情報が、汎用レジスター（専用レジスター）ファイル６に送られて、そのレジスター番号指定信号ＲＮＡのレジスター指定情報通りにレジスターが選択され、レジスターに格納されている情報が、レジスター内容出力データＲＥとして、プリフェッチ実行制御部７に送られる。ここでレジスター番号指定信号ＲＮＡからなるレジスター指定情報とは、プロセッサーに搭載されている複数の汎用レジスターファイル６の中から、その命令で使用するレジスターを指定する情報である。或いは又、元々プロセッサーに本発明を実現するために専用に設けられた専用レジスターを指定する情報である。或いは又、前述の２種類のレジスターを組み合わせたレジスターの中から使用するレジスターを指定する情報であってもよい。
【００２６】
図１では、汎用レジスターファイル６からレジスター“Ａ”とレジスター“Ｂ”そしてレジスター“Ｃ”の３つが選ばれて出力されているが、特に３つに限定するわけではなく、本発明を実施するのに必要な情報が確保できれば、レジスターの本数は更に多く選ばれてもよい。基本的に、必要なレジスターの本数は、そのプロセッサーのアーキテクチャー（基本構成）によって決定されるため、アーキテクチャーに依存して選ばれることになる。
【００２７】
また命令解読部／発行部５から「プリフェッチ命令」であることが判明して、「プリフェッチ命令」を実行するように、プリフェッチ命令実行信号ＰＣＥが発行されプリフェッチ実行制御部７に転送されると、上記レジスターの内容を元にプリフェッチ実行制御部７が、レジスター内容出力データＲＥに従ってプリフェッチの動作を開始する。
【００２８】
プリフェッチ実行制御部７は、レジスター内容出力データＲＥの値にしたがって、プリフェッチするデータがループの終端アドレスに到達しているかどうかを判断しながら、データを外部メモリー１０から読み出すアドレスを計算し、生成して、外部メモリー制御指示信号ＥＭＣとして外部メモリー制御部８に伝達する。
【００２９】
上記動作と同時に、キャッシュメモリー制御指示信号ＣＭＣをキャッシュメモリー制御部９に伝達し、プリフェッチに伴う外部メモリー制御とキャッシュメモリー制御を実行する。
【００３０】
図１に示すように、データ処理部１２と外部メモリー制御部８及びキャッシュメモリー制御部９の間にはデータバス１３Ａが接続されている。また、外部メモリー１０と外部メモリー制御部８との間、及びキャッシュメモリー１１とキャッシュメモリー制御部９との間にもデータバス１３Ｂが接続されている。キャッシュメモリー１１に格納されたデータは、その後、データ処理部１２で使用される。したがって、プリフェッチによって読み出されたデータは、データバス１３Ｂ及び１３Ａを通じて、外部メモリー１０からキャッシュメモリー１１に格納される。
【００３１】
キャッシュメモリー１１はループ型データ構造に対するプリフェッチ命令に対して対処可能である。循環アドレスによるアクセスを備えたプリフェッチ命令機能プログラムによって、ループ型データの実行処理が可能である。キャッシュメモリー１１は、高速動作が可能であるが、メモリー容量は小さい。したがって、メモリー内容を更新する必要がある。そのために、大容量の外部メモリー１０が必須である。キャッシュメモリー１１から処理実行部２までのデータＤＤの流れＤＦを図２中において模式的に描いている。本発明は、予めデータが格納されているキャッシュメモリー１１上のデータの始点と終点を割り出すことができるパラメーターを伴って、ループの終点でのソフトウェアによる判断処理及び対応処理をすることなく、データを「連続したデータ列」として、キャッシュメモリー１１に予め読み出して格納することができる。即ち、プリフェッチ命令で動作可能である。
【００３２】
本発明の信号処理装置３を構成するプロセッサー１によれば、ループ型データ構造に対するプリフェッチ命令機能を備えることにより、電子楽器のようにループ処理を行うデータのサイズが音素と呼ばれる短周期波形からストリーミングのような長時間の音をサンプリングしたような音を、数十や数百扱うような場合に、判断処理や対応処理の総計処理数は膨大な量になる問題に対しても十分に対処することができる。この場合でもデータのサイズが大きく、なかなかループの終点に達しないようなデータを処理する場合には、その判断処理そして対応処理があまり大きなソフトウェア上の負荷にはならない。
【００３３】
一般的なプリフェッチを用いた場合において、ル―プデータＬＤの終端をまたぐ際には、図３の比較例に示すように、第１段階（Ｆ）として、終端まで行ったらプリフェッチを意図的に止め、終端からのプリフェッチを発行する。即ち、外部メモリー上のアドレスデータＥＡＤにおいて、開始アドレスＳＡからデータサイズＤＳのループデータＬＤの終端部において、プリフェッチ領域ＰＡ、及びプリフェッチ領域ＰＡのデータサイズＤＳＰを定義する。データサイズＤＳにわたってループデータＬＤを読み出すとき、終端まで行ったらプリフェッチを意図的に止め、終端からのプリフェッチを発行して、キャッシュメモリー上のアドレスデータＣＡＤを作成する。プリフェッチ領域ＰＡ近傍においては、終端まで行ったらプリフェッチを意図的に止めるため、プリフェッチ領域ＰＡのデータサイズＤＳＰの内、終端までのデータが読み出される。このとき転送されるデータはプリフェッチデータＰＤの内、ループエンドプリフェッチデータＰＬＥである。
【００３４】
次に、第２段階（Ｓ）として、プリフェッチデータＰＤの内、ループスタートプリフェッチデータＰＬＳの転送を実行する。第１段階（Ｆ）の後に、始点からのプリフェッチを発行することで得られたデータを連続させる。即ち、ループ終端でプリフェッチを意図的に止め、あたかも連続したデータとしている。図３において、ＰＬＥはループエンドプリフェッチデータ意味し、ＰＬＳはループスタートプリフェッチデータを意味する。ループエンドプリフェッチデータＰＬＥとループスタートプリフェッチデータＰＬＳの組み合わせによってキャッシュメモリー上のアドレスデータＣＡＤが得られる。しかし、時として、外部メモリー上のアドレスデータＥＡＤにおいて、対象外データＥＸＤを読み込んでしまうことがある。また、例えば、データの読み出しを行なっている途中でループの終端に達した場合には、ループの終端に達したということをソフトウェアが認識し、再び折り返した部分のデータの読み出しを実行しなければならないという、作業上の複雑さが存在している。
【００３５】
以上において、第１段階（Ｆ）では、終端までのデータとしてのループエンドプリフェッチデータＰＬＥを転送する状況を示し、第２段階（Ｓ）では、始点に戻って、再び残りの部分のデータとしてのループスタートプリフェッチデータＰＬＳの転送を実行しなければならない。
【００３６】
このような一般的なループデータの取り扱いに対して、本発明の実施形態に係る信号処理装置３においては、図４に示すように、プリフェッチを用いた場合、ループの終端をまたぐ際に終端まで行ったら、始点に自動的に戻ってプリフェッチを実行する点に特徴がある。外部メモリー上のアドレスデータＥＡＤにおいて、開始アドレスＳＡから所定のデータサイズＤＳのループデータＬＤ読み出す場合には、プリフェッチ領域ＰＡにおいて終端まで行ったら、自動的に始点に戻ってプリフェッチを実行するため、対象外データＥＸＤを読み出すことはなく、極めてシームレスにデータを連続して読み出すことができる。即ち、ソフトウェアがループの終端に達したということを気にすることなく、連続したデータとして受信することができる。
【００３７】
次に図１に示したプロセッサー１からの実行命令ＣＯＭの命令フォーマットの例を説明する。
【００３８】
本発明を実行するために、プロセッサー１からの実行命令にレジスターの番号を指定する領域等が必要となる。本命令を実現するための、命令フォーマットＩの一例は、図５に示すように、アドレス上、命令識別子ＩＩＤ，レジスター番号識別子Ａ  ＲＮＤＡ，レジスター番号識別子Ｂ  ＲＮＤＢ，及びレジスター番号識別子Ｃ  ＲＮＤＣの結合からなる。プロセッサーにおいて、一般に命令フォーマットはすべて同じビット長をとり、その中に命令の内容を示す「命令識別子」が存在する。本発明の実施形態にかかるにプロセッサーにおいて、命令識別子ＩＩＤは、ループ型データ構造を有するデータの“プリフェッチ命令”に固有の値が割り当てられる。命令識別子ＩＩＤに続く情報が、以下の３つのレジスター番号識別子Ａ  ＲＮＤＡ，レジスター番号識別子Ｂ  ＲＮＤＢ及びレジスター番号識別子Ｃ  ＲＮＤＣである。これら識別子によって指定される汎用レジスター（もしくは専用レジスター）ファイル６に、本プリフェッチ命令を実行するのに必要な情報が格納されている。
【００３９】
本発明の実施形態に係る信号処理装置３において、プリフェッチ命令を実行するのに必要な構成例として、図１に示すように、３つのレジスターを指定しているが、必要な情報が得られるのであれば識別子が１つだけであってもよい。
【００４０】
次に、プリフェッチ命令の実行において必要な汎用レジスター（専用レジスター）ファイル６のデータの内容について説明する。
【００４１】
汎用レジスター（専用レジスター）ファイル６に格納される情報例は、図６に示すように、情報の種類は６種類あり、それぞれループスタートアドレスＬＳＡ、ループエンドオフセットＬＥＦ、プリフェッチスタートアドレスＰＳＡ、ストライドアドレスＳＴＡ、ブロックサイズＢＳ、プリフェッチブロック数ＰＢＮである。
【００４２】
以下にそれぞれについて説明する。
【００４３】
「ループスタートアドレスＬＳＡ」とは、ループプリフェッチを行うループ部分の先頭のアドレスを指定するパラメーターである。ループスタートアドレスＬＳＡは絶対アドレスで指定する。
【００４４】
「ループエンドオフセットＬＥＦ」とは、ループプリフェッチを行うループ部分の終端のアドレスを指定するためのパラメーターである。この「ループエンドオフセットＬＥＦ」は、データ量を節約するためにループスタートアドレスＬＳＡからの差分で表現する。ループエンドオフセットＬＥＦは相対アドレスで指定する。尚、ループエンドオフセットＬＥＦを決める仕組みは以下の通りである。即ち、ユーザーが予め定義をしておく。したがって、はじめから決まった値をとる。
【００４５】
「プリフェッチスタートアドレスＰＳＡ」とは、プリフェッチを開始するアドレスを指定するためのパラメーターである。プリフェッチスタートアドレスＰＳＡは絶対アドレスで指定する。
【００４６】
「ストライドアドレスＳＴＡ」は、既存の技術で使用されているものであるが、飛び飛びに存在するデータをプリフェッチするために使われるパラメーターである。連続したデータの塊（ブロックと呼ぶ。）のブロック間の先頭アドレス同士の差を表す。ストライドアドレスＳＴＡはプログラムによって決まる。
【００４７】
「ブロックサイズＢＳ」は、ストライドアドレスＳＴＡにおいて説明した通り、連続したデータの塊（ブロック）のデータ量を指定するためのパラメーターである。
【００４８】
「プリフェッチブロック数ＰＢＮ」は、プリフェッチ命令によって、何個のブロックをプリフェッチするかというブロック数を指定するためのパラメーターである。
【００４９】
各情報がどのように使われるのかを図６を用いて説明する。図６では、プリフェッチの開始アドレスが、ループスタートアドレスＬＳＡとループエンドオフセットＬＥＦで定義されたループプリフェッチ適用外領域ＬＰＥに、プリフェッチスタートアドレスＰＳＡを指定してプリフェッチを開始している。即ち、図６に示すように、外部メモリー上のアドレスデータＥＡＤにおいて、ループスタートアドレスＬＳＡとループエンドオフセットＬＥＦによって、ループプリフェッチ適用領域ＬＰＡを決定する。それ以外の領域は対象外データＥＸＤである。ループスタートアドレスＬＳＡ以前の領域は、図６に示すように、ループプリフェッチ適用外領域ＬＰＥである。この場合には、通常のプリフェッチ同様にブロックサイズＢＳ、ストライドアドレスＳＴＡ、プリフェッチブロック数ＰＢＮにしたがって、ブロックサイズＢＳ単位に、飛び飛びにデータを外部メモリー１０から読み込んでいく。
【００５０】
図６に示すように、ループプリフェッチ適用領域ＬＰＡに入っても、同様の読み出しを行う。ただし、ループ終端（図６ではループプリフェッチ適用領域ＬＰＡにおいて、ループエンドオフセットＬＥＦによって定義される右端）に達すると、読み出しアドレスをループスタートアドレスＬＳＡで指定されたアドレスに戻して、ブロックサイズＢＳの残りの分を読み出す。キャッシュメモリー１１上のアドレスデータＣＡＤ、即ち、キャッシュエントリーは、図６に示すように、飛び飛びに読み出したデータを圧縮してまとめた形式となり、これによって、キャッシュメモリー１１への格納状況を模式的に理解することができる。更に、詳細に説明すると、図６において、ＰＬＥはループエンドプリフェッチに関係するプリフェッチデータであり、ＰＬＳはループスタートプリフェッチに関係するプリフェッチデータである。最下段に示すブロック８についての詳細な拡大図をみると、ループエンドプリフェッチデータＰＬＥの間のデータは、ループエンドまでのデータをプリフェッチしたデータであり、ループスタートプリフェッチデータＰＬＳの間のデータはループスタートに戻ってから、残りのブロックサイズ分をプリフェッチしたデータである。
【００５１】
そして、プリフェッチブロック数ＰＢＮの分量分を読み出し終わると、読み出したデータをすべてキャッシュメモリー１１に格納して、実行したプリフェッチ命令を終了する。ここで、外部メモリー１０から読み出した場合には、その度にキャッシュメモリー１１に格納しても構わない。
【００５２】
次に、本プリフェッチ命令を実行する上で重要なプリフェッチ実行制御部（ハードウェア）７について説明する。
【００５３】
プリフェッチ実行制御部７は、前項目で挙げた情報、即ち、図７に示した通り、ループスタートアドレスＬＳＡＤ、ループエンドオフセットＬＥＦＤ、プリフェッチスタートアドレスＰＳＡＤ、ストライドアドレスＳＴＡＤ、ブロックサイズＢＳＤ、プリフェッチブロック数ＰＢＮＤを受信し、かつ本プリフェッチ命令を実行した時に動作をする。即ち、プリフェッチ命令実行信号ＰＣＥを図１に示す命令解読部／発行部５より受信し、プロセッサー１からの実行命令ＣＯＭがプリフェッチ命令であることを確認してから動作を開始する。
【００５４】
プリフェッチ実行制御部７には、図７に示すように、汎用レジスターファイル６から提供されるレジスター内容出力データＲＥが本プリフェッチ命令に必要な各種情報として送られてくる。この情報はプリフェッチ実行制御部７内の一時記憶装置（メモリーレジスター）１８に格納され、本プリフェッチ命令が終了するまで保持され続ける。プリフェッチ実行制御部７においては、図７に示すように、これら６つのデータは、一時記憶装置１８内において、ループスタートアドレスデータＬＳＡＤ、ループエンドオフセットデータＬＥＦＤ、プリフェッチスタートアドレスデータＰＳＡＤ、ストライドアドレスデータＳＴＡＤ、ブロックサイズデータＢＳＤ、及びプリフェッチブロック数データＰＢＮＤとして蓄積される。これらの情報の中で、ループスタートアドレスデータＬＳＡＤからブロックサイズデータＢＳＤまでの情報は、具体的に外部メモリー１０にアクセスする際のアドレスの情報を生成するために、プリフェッチアドレス演算生成／比較部１５に送られる。
【００５５】
プリフェッチアドレス演算生成／比較部１５では、入力される情報を元にして、外部メモリーアクセスアドレス情報ＥＭＡが生成される。同時に、生成された外部メモリーアクセスアドレス情報ＥＭＡが、ループスタートアドレスデータＬＳＡＤとループエンドオフセットデータＬＥＦＤを加算したいわゆるループ部の終端を越えていないかどうかの比較も行われる。またプリフェッチブロック数データＰＢＮＤの情報は、プリフェッチブロック数演算部１６に送られる。プリフェッチブロック数演算部１６においては、外部メモリー１０にアクセスする際に数えなければならないプリフェッチブロック数データＰＢＮＤの進行度を管理する。正しくアドレスを生成するために、プリフェッチアドレス演算生成／比較部１５とプリフェッチブロック数演算部１６間には制御信号ＣＳＡがあり、お互いの状況を管理している。上記のプリフェッチアドレス演算生成／比較部１５のブロックの演算によって生成された外部メモリーアクセスアドレス情報ＥＭＡに関係するアドレスは、外部メモリー制御部８に送られる。
【００５６】
この外部メモリーアクセスアドレス情報ＥＭＡに関係するアドレスを元に、外部メモリー制御部８は、図１に示すように、外部メモリー１０にアクセスする。外部メモリー１０へのアクセスの状況を反映するために、外部メモリー制御部８からアクセスの状況が外部メモリーアクセス数状況判定部１７に送られる。アクセスの状況とは、与えられたアドレスに対して、所望の数のアドレス分アクセスが終了したかどうかを判定する情報のことであり、外部メモリー制御指示応答信号ＥＭＲと呼ばれる。逐次状況を反映する必要があるのは、本発明によるプリフェッチ命令によって、外部メモリー１０にアクセスが開始してから終了するまで、ずっと本プリフェッチ命令によるメモリーアクセスによって外部メモリー制御部８を占有し続けられるわけではないからである。
【００５７】
その理由として第１に、外部メモリー制御部８は他に同時期に発生したアクセスとの優先度を考慮して、優先度の高いアクセスから順番にアクセスが実行される。プリフェッチによるメモリーアクセスは比較的低い優先度に置かれるため、結果的に他のアクセスが無い期間を見つけてアクセスが行われる。そのためメモリーアクセスは細切れに分割されて実行されるので、外部メモリー制御部８の状況を見ながら、プリフェッチによるメモリーアクセスを実行していくことになるからである。第２の理由として、外部メモリー１０に対する一回のアクセスで、アクセス可能なデータ量が決まっているということが挙げられる。通常外部メモリー１０に対するアクセスは、ある定義されたデータ量単位で行われる。その定義されたデータ量とは、外部メモリー１０のコピー先もしくはコピー元になるキャッシュメモリー１１のキャッシュラインサイズで決まる。仮にキャッシュメモリー１１のキャッシュラインサイズが３２バイトであるすると、１回の外部メモリー１０のアクセスによって転送されるデータ量は３２バイトになる。
【００５８】
外部メモリーアクセス数状況判定部１７では、以上の理由によって徐々に行われていく（プリフェッチに関する）外部メモリー制御部８の状況を監視し、それによって得られる「外部メモリー制御部８が利用可能」といった情報や「どこまでのデータをアクセスしたか」といった進行状況を、制御信号ＣＳＢを介してプリフェッチアドレス演算生成／比較部１５に伝え、プリフェッチアドレス演算生成／比較部１５を制御する。更に制御信号ＣＳＡを介して、プリフェッチブロック数演算部１６を制御することになる。
【００５９】
ループ型データ構造に対するプリフェッチ命令機能を有するプロセッサーのプリフェッチ命令方法の動作フローチャートは、図８に示すようにステップＳ１からＳ１０と、図９に示すようにステップＳ１２からＳ１６と、図１０に示すようにステップＳ１７からＳ２０との組み合わせからなる。
【００６０】
（ａ）  ステップＳ１において、転送ブロック数を０に設定し、次にステップＳ２において、転送データ数を０に設定する。更にステップＳ３において、ブロック先頭アドレスがプリフェッチスタートアドレスＰＳＡに等しくなるように設定し、ステップＳ４において、転送アドレスがプリフェッチスタートアドレスＰＳＡに等しくなるように設定する。この状態から、ステップＳ５において、転送を実行する。即ち、外部メモリー１０から読み出す。次にステップＳ６において、読み出したデータを一時的にバッファに格納する。次にステップＳ７において、転送データ数とデータ転送分の和を新たな転送データ数として設定する。更に、ステップＳ８において、転送アドレスとデータ転送分のアドレスとの和を新たな転送アドレスとして設定する。
【００６１】
（ｂ）  次のステップＳ９において、転送アドレスがループスタートアドレスＬＳＡとループエンドオフセットＬＥＦの和よりも大であるかどうかを判断する。
【００６２】
（ｃ）  ＹＥＳであるならば、ステップＳ１２へ進む（図９）。ＮＯであるならば、次のステップＳ１０に進み、ブロックサイズＢＳが転送データ数に等しいかどうかを判断する。
【００６３】
（ｄ）  ステップＳ１０において、ＹＥＳであるならば、ステップＳ１７へ進む（図１０）。ＮＯであるならば、次のステップＳ１１へ進む。ステップＳ１１において、読み出したデータをバッファからキャッシュに格納する。次に、ステップＳ５に戻る。
【００６４】
（ｅ）  ステップＳ１２においては、ループ終端をはみ出した後ろの部分のデータは捨て、残った前の部分のデータをバッファに格納する。このとき、「新たな転送データ数」をＡ，「転送データ数」をＢ，「残ったデータ転送分」をΔＲＤとすると、
Ａ＝Ｂ＋ΔＲＤ                                ・・・（１）
となる。
【００６５】
（ｆ）  次に、ステップＳ１３において、転送アドレスがループスタートアドレスＬＳＡに等しくなるように設定する。この状態から、ステップＳ１４において、転送を実行する。即ち、外部メモリー１０から読み出す。
【００６６】
（ｇ）  次にステップＳ１５において、「データ転送分」をΔＤとすると、
（ΔＤ−ΔＲＤ）で表される分のデータをループスタートアドレスＬＳＡの位置から確保し、バッファの空いた部分にこのデータを書き込む。このとき、
Ａ＝Ｂ＋ΔＲＤ＋（ΔＤ―ΔＲＤ）＝Ｂ＋ΔＤ        ・・・（２）
となる。
【００６７】
（ｈ）  したがって、ステップＳ１２からステップＳ１５の間において、データ転送数の調節が行われている。
【００６８】
（ｉ）  次に、ステップＳ１６において、転送アドレスと（ΔＤ―ΔＲＤ）のアドレスとの和が新たな転送アドレスとなるように設定する。次に、ステップＳ１０に進む（図８）。ステップＳ１０において、ブロックサイズＢＳが転送データ数に等しいかどうかを判断し、ＹＥＳであれば、ステップＳ１７へ進む（図１０）。ＮＯであれば、ステップＳ１１へ進む。
【００６９】
（ｊ）  ステップＳ１７においては、転送ブロック数に１を加えた数を新たな転送ブロック数となるように設定する。次に、ステップＳ１８において、プリフェッチブロック数ＰＢＮが転送ブロック数ＢＮに等しいかどうかを判断する。ＹＥＳであるならば、ステップＳ１９に進み、プリフェッチ転送終了とする。ＮＯであるならば、ステップＳ２０において、転送アドレスと（ストライドアドレスＳＴＡ―ブロックサイズＢＳ）との和がブロック先頭アドレスとなるように設定する。次に、ステップＳ１１へ進む（図８）。ステップＳ１１から先はステップＳ５へ戻り、最終的にステップＳ９においてＮＯと判断され、ステップＳ１０においてＹＥＳと判断され、更にステップＳ１８において、ＹＥＳと判断されてプリフェッチ転送終了となるまで、フローチャートは進行を続けることになる。
【００７０】
本発明の実施の形態において説明したフローチャートはプログラムの実行においてもそのまま適用できることはもちろんである。更にまた、このようなプログラムを記録した媒体を提供できることも明らかである。
【００７１】
（その他の実施の形態）
上記のように、本発明は実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。したがって、本発明の技術範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【００７２】
【発明の効果】
本発明の信号処理装置によれば、メモリー上に置かれているデータにおいて、ループ状に使用されるデータを自動的に継ぎ目の無いデータとしてキャッシュにプリフェッチできるのでデータ処理を行う上で非常に簡単になり、ソフトウェアのパフォーマンスの向上を図ることができる。
【００７３】
更に、本発明のプリフェッチ命令方法及びプリフェッチ命令プログラムによれば、判断処理や対応処理の総計処理数が膨大な量になる問題に対しても対処することができ、信号処理装置の性能向上を図ることができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係る信号処理装置の詳細なブロック構成図。
【図２】本発明の第１の実施形態に係る信号処理装置の模式的ブロック構成図。
【図３】本発明の比較例として、一般的なプリフェッチを用いた場合で、ループの終端まで行ったら、プリフェッチを意図的に止め、始点からプリフェッチを発行し、キャッシュメモリーへデータ転送をする方法を説明する構成図。
【図４】本発明の第１の実施形態に係る信号処理装置において、ループの終端まで行ったら、始点に自動的に戻ってプリフェッチを行い、キャッシュメモリーへデータ転送をする方法を説明する構成図。
【図５】本発明の第１の実施形態に係る信号処理装置において使用する命令フォーマットの構成例。
【図６】本発明の第１の実施形態に係る信号処理装置において、飛び飛びに存在する外部メモリー内のデータをキャッシュメモリーへ格納する方法の動作説明図。
【図７】本発明の第１の実施形態に係る信号処理装置において、プリフェッチ実行制御部のブロック説明図。
【図８】本発明の第１の実施形態に係る信号処理装置において、ループ型データ構造に対するプリフェッチ命令方法のフローチャート説明図（ステップＳ１からＳ１１まで）。
【図９】本発明の第１の実施形態に係る信号処理装置において、ループ型データ構造に対するプリフェッチ命令方法のフローチャート説明図（ステップＳ９からＳ１６まで）。
【図１０】本発明の第１の実施形態に係る信号処理装置において、ループ型データ構造に対するプリフェッチ命令方法のフローチャート説明図（ステップＳ１０からＳ２０まで）。
【図１１】外部メモリー上のアドレスデータにおいて、プリフェッチデータを選択してキャッシュメモリーへ転送する、一般的なプリフェッチ命令の機能を説明する図。
【図１２】外部メモリー上のアドレスデータにおいて、飛び飛びの位置にあるプリフェッチデータを選択してキャッシュメモリーへ転送する、一般的なプリフェッチ命令の機能を説明する図。
【図１３】外部メモリー上のアドレスデータにおいて、ループデータを繰り返し選択してキャッシュメモリーへ転送する、一般的なプリフェッチ命令の機能を説明する図。
【符号の説明】
１…プロセッサー
２…処理実行部
３…信号処理装置
５…命令解読部／発行部
６…汎用レジスターファイル
７…プリフェッチ実行制御部
８…外部メモリー制御部
９…キャッシュメモリー制御部
１０…外部メモリー
１１…キャッシュメモリー
１２…データ処理部
１３Ａ，１３Ｂ…データバス
１５…プリフェッチアドレス演算生成／比較部
１６…プリフェッチブロック数演算部
１７…外部メモリーアクセス数状況判定部
１８…一時記憶装置
ＤＤ…データ
ＥＡＤ…外部メモリー上のアドレスデータ
ＥＸＤ…外部メモリー上の対象外データ
ＣＡＤ…キャッシュメモリー上のアドレスデータ
ＳＡ…開始アドレス
ＬＤ…ループデータ
ＬＤＤ…所望のループデータ
ＤＳ…データサイズ
ＤＳＰ…プリフェッチ領域のデータサイズ
ＣＯＭ…プロセッサーからの実行命令
ＰＣＥ…プリフェッチ命令実行信号
ＲＮＡ…レジスター番号指定信号
ＲＥ…レジスター内容出力データ
ＥＭＣ…外部メモリー制御指示信号
ＣＭＣ…キャッシュメモリー制御指示信号
ＢＳ…ブロックサイズ
ＢＮ…ブロック数（番号）
ＣＤ…キャッシュデータ
ＳＴ…ストライド
ＰＤ…プリフェッチデータ
ＰＡ…プリフェッチ領域
ＬＳＡ…ループスタートアドレス
ＬＥＦ…ループエンドオフセット
ＰＳＡ…プリフェッチスタートアドレス
ＳＴＡ…ストライドアドレス
ＰＢＮ…プリフェッチブロック数
ＬＰＡ…ループプリフェッチ適用領域
ＬＰＥ…ループプリフェッチ適用外領域
ＥＸＤ…対象外データ
ＣＳＡ，ＣＳＢ…制御信号
ＥＭＡ…外部メモリーアクセスアドレス情報
ＥＭＲ…外部メモリー制御指示応答信号
ＬＳＡＤ…ループスタートアドレスデータ
ＬＥＦＤ…ループエンドオフセットデータ
ＰＳＡＤ…プリフェッチスタートアドレスデータ
ＢＳＤ…ブロックサイズデータ
ＳＴＡＤ…ストライドアドレスデータ
ＰＢＮＤ…プリフェッチブロック数データ
ＤＦ…データの流れ
ＰＬＥ…ループエンドプリフェッチデータ
ＰＬＳ…ループスタートプリフェッチデータ
ＳＷ１０，ＳＷ１１，ＳＷ１２…繰り返し読み出しサイズ
Ｓ１，Ｓ２，Ｓ３，・・・，Ｓ２０…ステップ
ＢＤ１，ＢＤ２，ＢＤ３，ＢＤ４…ブロックデータ
ＣＯＭ…命令フォーマット
ＩＩＤ…命令識別子
ＲＮＤＡ…レジスター番号識別子Ａ
ＲＮＤＢ…レジスター番号識別子Ｂ
ＲＮＤＣ…レジスター番号識別子Ｃ
【図１】
2004272851.tif 000003
【図２】
2004272851.tif 000004
【図３】
2004272851.tif 000005
【図４】
2004272851.tif 000006
【図５】
2004272851.tif 000007
【図６】
2004272851.tif 000008
【図７】
2004272851.tif 000009
【図８】
2004272851.tif 000010
【図９】
2004272851.tif 000011
【図１０】
2004272851.tif 000012
【図１１】
2004272851.tif 000013
【図１２】
2004272851.tif 000014
【図１３】
2004272851.tif 000015