【手続補正書】
【提出日】平成15年12月25日(2003.12.25)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
互いに並列にデコード動作する第１のデコーダおよび第２のデコーダを有し、第１及び第２の演算コードを含む命令を入力し、前記第１および第２のデコーダがそれぞれ前記第１および第２の演算コードをデコードする命令デコード部、
それぞれはデータを格納し、メモリ部との間でデータの転送を行う複数のレジスタで構成されたレジスタファイル部、
前記命令デコード部の第１のデコーダにより前記第１の演算コードをデコードして出力される制御信号に基づき、算術演算を行う演算部、および、
前記演算部と並列に動作し、前記命令デコード部の第２のデコーダにより前記第２の演算コードをデコードして出力される制御信号に基づき、一つのアドレスを前記メモリ部に供給して前記メモリ部から並列に転送された第１および第２のデータをそれぞれ前記レジスタファイル部の第１および第２のレジスタに格納させるオペランドアクセス部を備え、
前記演算部は、前記レジスタファイル部の第３および第４のレジスタにそれぞれ格納された第３および第４のデータを入力し、この第３および第４のデータの積を演算する第１の演算器と、この第１の演算器の演算結果とアキュムレータ又は前記レジスタファイル部内の第５のレジスタであるデータ保持部に保持されたデータとの和又は差を演算し、その演算結果を前記データ保持部へ転送する第２の演算器とを有することを特徴とするデータ
処理装置。
【請求項２】
互いに並列にデコード動作する第１のデコーダおよび第２のデコーダを有し、第１及び第２の演算コードを含む命令を入力し、前記第１および第２のデコーダがそれぞれ前記第１および第２の演算コードをデコードする命令デコード部、
それぞれはデータを格納し、メモリ部との間でデータの転送を行う複数のレジスタで構成されたレジスタファイル部、
前記命令デコード部の第１のデコーダにより前記第１の演算コードをデコードして出力される制御信号に基づき、前記レジスタファイル部の第１のレジスタに格納された第１のデータを入力し、この第１のデータを用いて算術演算を行う演算部、および、
前記演算部と並列に動作し、前記命令デコード部の第２のデコーダにより前記第２の演算コードをデコードして出力される制御信号に基づき、一つのアドレスを前記メモリ部に供給し、前記レジスタファイル部の第２のレジスタおよび第３のレジスタに格納されたそれぞれ第２のデータおよび第３のデータを並列に転送して前記メモリ部に保持させるオペランドアクセス部を備えたことを特徴とするデータ処理装置。
【請求項３】
演算部は、第１の演算コードに従い第１のデータとレジスタファイル部の第４のレジスタに格納された第４のデータとの積を演算する第１の演算器と、
前記第１の演算コードに従い該第１の演算器の演算結果とアキュムレータ又は前記レジスタファイル部の第５のレジスタであるデータ保持部に格納されたデータとの和又は差を演算し、その演算結果を前記データ保持部に転送するように構成された第２の演算器とを有することを特徴とする請求項２に記載のデータ処理装置。
【請求項４】
メモリ部に接続され、それぞれはデータもしくはオペランドアドレスを格納する複数のレジスタで構成されたレジスタファイル部、
前記レジスタファイル部に格納されたデータを入力して算術演算する演算部、および
前記レジスタファイル部に格納されたオペランドアドレスを前記メモリに入力させるオペランドアクセス部を備えたデータ処理装置によりデータが処理されるデータ処理方法において、
前記メモリ部の第１の領域に記憶された第１のデータおよび第２のデータを並列に転送してそれぞれ前記レジスタファイル部の第１のレジスタおよび第２のレジスタに書き込む第１のステップ、
前記メモリ部の第２の領域に記憶された第３のデータおよび第４のデータを並列に転送してそれぞれ前記レジスタファイル部の第３のレジスタおよび第４のレジスタに書き込む第２のステップ、
前記演算部が前記第１のレジスタに格納された前記第１のデータと前記第３のレジスタに格納された前記第３のデータとを入力し、前記第１および第３のデータの間で算術演算を行う第３のステップ、および
前記演算部が前記第２のレジスタに格納された前記第２のデータと前記第４のレジスタに格納された前記第４のデータとを入力し、前記第２および第４のデータの間で算術演算を行う第４のステップを含んだことを特徴とするデータ処理方法。
【請求項５】
前記メモリ部の第３の領域に記憶された第５のデータおよび第６のデータを並列に転送してそれぞれ前記レジスタファイル部の第５のレジスタおよび第６のレジスタに書き込む第５のステップ、および
前記メモリ部の第４の領域に記憶された第７のデータおよび第８のデータを並列に転送してそれぞれ前記レジスタファイル部の第７のレジスタおよび第８のレジスタに書き込む第６のステップを含み、
第３および第４のステップのいずれか一方のステップが、前記第５および第６のステップの少なくともいずれか一方のステップと並列に実行されるようにしたことを特徴とする請求項４に記載のデータ処理方法。
【請求項６】
第３のステップは、第１のデータと第３のデータとの積を演算する乗算演算ステップ、この乗算演算結果と第９のレジスタ又はアキュムレータであるデータ保持部に格納されたデータとを加算し、その加算結果である第９のデータを当該データ保持部に格納する加算演算ステップを含み、
第４のステップは、第１のデータと第３のデータとの積を演算する乗算演算ステップ、この乗算結果と前記データ保持部に格納された前記第９のデータとを加算してその加算結果を当該データ保持部に格納する加算演算ステップを含んだことを特徴とする請求項４又は請求項５に記載のデータ処理方法。
【請求項７】
少なくとも２つの演算コードを並列に実行するデータ処理装置であって、
複数の演算コードが記述されたプログラムに従って種々の制御信号を出力する制御部、 ロード演算コードを指定する演算コードに従い前記制御部から出力される制御信号に応答して、メモリからロードすべき複数のデータ値をもつオペランドデータを特定する一つのアドレスを出力する第１の演算部、
前記オペランドデータがロードされるとき、前記メモリから並列に転送された前記複数のデータ値を保持するレジスタファイル、及び、
算術演算を指定する算術演算コードに従い前記制御部から出力される制御信号に応答して、前記レジスタファイルから出力される２つのデータ値を受けて算術演算し、この算術演算により前記２つのデータ値の乗算結果を被加算値とする加算の加算結果を得る第２の演算部、
を備えたデータ処理装置。
【請求項８】
前記第１の演算部は、ストア演算コードを指定する演算コードに従い前記制御部から出力される制御信号に応答して、前記レジスタファイルに保持された別の複数のデータ値をストアすべきメモリの格納領域を特定する別の一つのアドレスを前記メモリに向けて出力し、
前記レジスタファイルは前記別の複数のデータ値を前記メモリに向けて並列に出力する、請求項７に記載のデータ処理装置。
【請求項９】
少なくとも２つの演算コードを並列に実行するデータ処理装置であって、
複数の演算コードが記述されたプログラムに従って種々の制御信号を出力する制御部、 ロード演算コードを指定する演算コードに従い前記制御部から出力される制御信号に応答して、メモリからロードすべき第１および第２のデータ値をもつオペランドデータを特定する一つのアドレスを出力する第１の演算部、
前記オペランドデータがロードされるとき、前記メモリから並列に転送された前記第１及び第２のデータ値をそれぞれ保持する第１及び第２のレジスタを含む複数のレジスタ、及び、
算術演算を指定する算術演算コードに従い前記制御部から出力される制御信号に応答して、前記複数のレジスタのうちの異なる２つのレジスタからそれぞれ出力される２つのデータ値を受けて算術演算し、この算術演算により前記２つのデータ値の乗算結果を被加算値とする加算の加算結果を得る第２の演算部、
を備えたデータ処理装置。
【請求項１０】
前記第２の演算部は、前記２つのデータ値の乗算値をアキュムレータ又はレジスタであるデータ保持部に保持されたデータ値に加算した結果を得て、その結果で当該データ保持部を更新する、請求項７又は請求項９に記載のデータ処理装置。
【請求項１１】
データ値であるＡ１ないしＡｍ及びＤ１ないしＤｍをメモリからロードしてＡ１・Ｄ１＋Ａ２・Ｄ２＋・・・＋Ａｍ・Ｄｍの計算をするデータ処理装置であって、
前記一つのアドレスにより前記メモリから並列に転送される複数のデータ値は、前記Ａ１ないし前記Ａｍのうちの複数のデータ値又は前記Ｄ１ないしＤｍのうちの複数のデータ値であり、
前記第２の演算部は、前記２つのデータ知の乗算として、前記Ａ１ないし前記Ａｍのうちの一つのデータ値と前記Ｄ１ないしＤｍのうちの一つのデータ値との乗算を行う、請求項７又は請求項９に記載のデータ処理装置。
【請求項１２】
プログラムに従って制御信号を出力する制御部、
前記制御部の出力する制御信号に応答して、メモリからロードすべき複数のデータをもつオペランドデータを特定する一つのアドレスを出力する演算部、
前記オペランドデータがロードされるとき、前記メモリから並列に転送された前記複数のデータ値を保持するレジスタファイル、
前記制御部の出力する制御信号に応答して、前記レジスタファイルから２つのデータ値を受けて乗算を行う乗算器である第１の演算器、及び、
前記制御部の出力する制御信号に応答して、加算を行うＡＬＵ又は加算器である第２の演算器、を備え、
前記制御部は、前記演算部が前記一つのアドレスを出力することと、前記第１の演算器が乗算による乗算結果を得ることと、第２の演算器がこの乗算結果より前に前記第１の演算器の乗算により得た乗算結果を使った加算による加算結果を得ることとが並列に行われるよう、前記演算部、前記第１及び第２の演算器を制御する、データ処理装置。
【請求項１３】
データ値であるＡ１ないしＡｍ及びＤ１ないしＤｍをメモリからロードしてＡ１・Ｄ１＋Ａ２・Ｄ２＋・・・＋Ａｍ・Ｄｍの計算をするデータ処理装置であって、
前記一つのアドレスにより並列に転送される複数のデータ値は、前記Ａ１ないし前記Ａｍのうちの複数のデータ値又は前記Ｄ１ないしＤｍのうちの複数のデータ値であり、
前記第２の演算器は、前記２つのデータの乗算として、前記Ａ１ないし前記Ａｍのうちの一つのデータ値と前記Ｄ１ないしＤｍのうちの一つのデータ値との乗算を行う、請求項１２に記載のデータ処理装置。
【請求項１４】
プログラムに従いデータをメモリからロードして演算を行うデータ処理装置であって、
データを保持するレジスタファイル、
このレジスタファイルに保持されたデータを入力して算術演算する演算部、
データをロードするためにアドレスをメモリに供給してデータをアクセスするオペランドアクセス部、および、
前記プログラムに従い、
前記メモリから第１のデータおよび第２のデータを並列にロードして前記レジスタファイルに保持する第１のステップと、
前記メモリから第３のデータおよび第４のデータを並列にロードして前記レジスタファイルに保持する第２のステップと、
前記レジスタファイルから前記第１および第３のデータを入力し、前記第１および第３のデータを使って算術演算を行う第３のステップと、
前記レジスタファイルから前記第２および第４のデータを入力し、前記第２および第４のデータを使って算術演算を行う第４のステップとを含んだデータ処理を行わせるように、前記演算部及び前記オペランドアクセス部を制御する制御部
を備えたデータ処理装置。
【請求項１５】
前記制御部は、前記プログラムに従い、
前記第３のステップと並列に実行され、前記メモリから第５のデータおよび第６のデータを並列にロードして前記レジスタファイルに保持する第５のステップと、
前記第４のステップと並列に実行され、前記メモリから第７のデータおよび第８のデータを並列にロードして前記レジスタファイルに保持する第６のステップと、
前記レジスタファイルから前記第５および第７のデータを入力し、前記第５および第７のデータの間で算術演算を行う第７のステップと、
前記レジスタファイルから前記第６および第８のデータを入力し、前記第６および第８のデータの間で算術演算を行わせる第８のステップとを含んだデータ処理をさらに実現する、請求項１４記載のデータ処理装置。
【請求項１６】
前記第３のステップは、第１及び第３のデータについての乗算値とアキュムレータ又はレジスタであるデータ保持部に保持されたデータとの加算結果を得る算術演算を行い、その結果で前記データ保持部を更新する演算ステップを含み、
前記第４のステップは、第２及び第４のデータについての乗算値と前記データ保持部に保持されたデータとの加算結果を得る算術演算を行い、その結果で前記データ保持部を更新する演算ステップを含み、
前記第７のステップは、第５及び第７のデータについての乗算値と前記データ保持部に保持されたデータとの加算結果を得る算術演算を行い、その結果で前記データ保持部を更新する演算ステップを含み、
前記第８のステップは、第６及び第８のデータについての乗算値と前記データ保持部に保持されたデータとの加算結果を得る算術演算を行い、その結果で前記データ保持部を更新する演算ステップを含む、請求項１５に記載のデータ処理装置。
【請求項１７】
前記メモリはアドレスが連続してなる第１のメモリ領域と、アドレスが連続してなる前記第１のメモリ領域とは異なる第２のメモリ領域とを有し、
前記第１、第２、第５および第６のデータは前記メモリの第１のメモリ領域からロードされ、前記第３、第４、第７および第８のデータは前記メモリの第２のメモリ領域からロードされる、請求項１５又は請求項１６に記載のデータ処理装置。
【請求項１８】
前記第３のステップは、第１及び第３のデータについての乗算値とアキュムレータ又はレジスタであるデータ保持部に保持されたデータとの加算結果を得る算術演算を行い、その結果で前記データ保持部を更新する演算ステップを含み、
前記第４のステップは、第２及び第４のデータについての乗算値と前記データ保持部に保持されたデータとの加算結果を得る算術演算を行い、その結果で前記データ保持部を更新する演算ステップを含む、請求項１４に記載のデータ処理装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
特に、互いに並列にデコード動作する第１のデコーダおよび第２のデコーダを有し、第１及び第２の演算コードを含む命令を入力し、第１および第２のデコーダがそれぞれ入力した命令の第１および第２の演算コードをデコードする命令デコード部、それぞれはデータを格納し、メモリ部との間でデータの転送を行う複数のレジスタで構成されたレジスタファイル部、命令デコード部の第１のデコーダにより第１の演算コードをデコードして出力される制御信号に基づき、算術演算を行う演算部、および演算部と並列に動作し、命令デコード部の第２のデコーダにより第２の演算コードをデコードして出力される制御信号に基づき、一つのアドレスをメモリ部に供給してメモリ部から並列に転送された第１および第２のデータをそれぞれレジスタファイル部の第１および第２のレジスタに格納させるオペランドアクセス部を備えたものである。
演算部は、レジスタファイル部の第３および第４のレジスタにそれぞれ格納された第３および第４のデータを入力し、この第３および第４のデータの積を演算する第１の演算器と、この第１の演算器の演算結果とアキュムレータ又はレジスタファイル部内の第５のレジスタであるデータ保持部に保持されたデータとの和又は差を演算し、その演算結果をデータ保持部へ転送する第２の演算器とを有する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
また、互いに並列にデコード動作する第１のデコーダおよび第２のデコーダを有し、第１及び第２の演算コードを含む命令を入力し、第１および第２のデコーダがそれぞれ入力した命令の第１および第２の演算コードをデコードする命令デコード部、それぞれはデータを格納し、メモリ部との間でデータの転送を行う複数のレジスタで構成されたレジスタファイル部、命令デコード部の第１のデコーダにより第１の演算コードをデコードして出力される制御信号に基づき、レジスタファイル部の第１のレジスタに格納された第１のデータを入力し、この第１のデータを用いて算術演算を行う演算部、および、この演算部と並列に動作し、命令デコード部の第２のデコーダにより第２の演算コードをデコードして出力される制御信号に基づき、一つのアドレスをメモリ部に供給しレジスタファイル部の第２のレジスタおよび第３のレジスタに格納されたそれぞれ第２のデータおよび第３のデータを並列に転送してメモリ部に保持させるオペランドアクセス部を備えたものである。


【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
演算部は、第１のデータとレジスタファイル部の第４のレジスタに格納された第４のデータとの積を演算する第１の演算器と、この第１の演算器の演算結果とレジスタファイル部の第５のレジスタもしくはアキュムレータであるデータ保持部に格納されたデータとの和を演算し、その演算結果をデータ保持部に格納させる第２の演算器を有する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】削除
【補正の内容】
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】削除
【補正の内容】
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】削除
【補正の内容】
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】削除
【補正の内容】
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００３２
【補正方法】変更
【補正の内容】
【００３２】
図８に本データ処理装置１００の機能ブロック構成を示す。データ処理装置１００は、ＭＰＵコア部１０１と、ＭＰＵコア部１０１からの要求により命令データのアクセスを行う命令フェッチ部１０２、内蔵命令メモリ１０３、ＭＰＵコア部１０１からの要求によりオペランドデータのアクセスを行うオペランドアクセス部１０４、内蔵データメモリ１０５、命令フェッチ部１０２とオペランドアクセス部１０４からの要求を調停し、データ処理装置１００の外部メモリのアクセス等を行う外部バスインターフェイス部１０６からなる。


【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００３４
【補正方法】変更
【補正の内容】
【００３４】
制御部１１２は、前述の命令キュー１１１の制御、パイプライン制御、命令の実行、命令フェッチ部１０２やオペランドアクセス部１０４とのインターフェイスなど、ＭＰＵコア部１０１のすべての制御を行う。また、制御部１１２には、命令キュー１１１から送られる命令コードをデコードするための命令デコード部１１９があり、２つのデコーダを含む。第１デコーダ１１３は、第１演算部１１６で実行する命令をデコードし、第２デコーダ１１４は、第２演算部１１７で実行する命令をデコードする。３２ビットの命令のデコードの第１サイクルでは、必ず左コンテナ５２の命令コードが第１デコーダ１１３で解析され、右コンテナ５３の命令コードが第２デコーダ１１４で解析される。ただし、ＦＭビット５１及び左コンテナのビット０とビット１のデータは両方のデコーダで解析される。
また、拡張データの切り出しを行うために、右コンテナ５３のデータが第１デコーダ１１３に送られるが、解析は行われない。従って、最初に実行する命令はその命令を実行する演算器に対応した位置に置かれなければならない。２つのショート命令をシーケンシャルに実行する場合、後で実行する側の命令は両方のデコーダに送られ、実行可能な方のデコード結果が有効になる。ただし、両方で実行できるのは第１デコーダでのデコード結果を優先し、第１デコーダでのデコード結果を無効化する。
レジスタファイル１１５は、１〜１７のレジスタからなり、第１演算部１１６、第２演算部１１７、ＰＣ部１１８に複数のバスで結合されている。


【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００３６
【補正方法】変更
【補正の内容】
【００３６】
ＡＡラッチ１５１、ＡＢラッチ１５２は、ＡＬＵ１５３の入力ラッチである。ＡＡラッチ１５１は、Ｓ１バス３０１もしくはＳ３バス３０３を介して読み出されたレジスタ値を取り込む。ゼロクリアする機能も備えている。ＡＢラッチ１５２は、Ｓ３バス３０３を介して読み出されたレジスタ値もしくは第１デコーダ１１３でデコードの結果生成された１６ビットの即値を取り込む。ゼロクリアする機能も備えている。ＡＬＵ１５３では、主として転送、比較、算術論理演算、オペランドアドレスの計算／転送、オペランドアドレスのベースアドレス値のインクリメント／デクリメント、ジャンプ先アドレスの計算／転送等が行われる。演算結果やアドレスモディファイの結果はセレクタ１５５、Ｄ１バス３１１を介して、レジスタファイル１１５中の命令で指定されたレジスタに書き戻される。ＡＯラッチ１５４は、オペランドのアドレスを保持するラッチであり、ＡＬＵ１５３でのアドレス計算結果もしくはＡＡラッチ１５１に保持されたベースアドレスの値を選択的に保持し、ＯＡバス３２１を介してオペランドアクセス部１０４に出力する。また、ジャンプ先のアドレスを計算したり転送したりする場合には、ＡＬＵ１５３の出力が、ＪＡバス３２３を介してＰＣ部１１８に転送される。


【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００３７
【補正方法】変更
【補正の内容】
【００３７】
ＭＯＤ＿Ｓ１５６とＭＯＤ＿Ｅ１５７は、それぞれ図１の２８のＣＲ１０、２９のＣＲ１１に相当する制御レジスタである。比較器１５８は、ＭＯＤ＿Ｓ１５７の値とＳ３バス３０３上のベースアドレスの値とを比較する。モジュロアドレッシングがイネーブル状態で、ポストインクリメント／デクリメント付きのレジスタ間接モードの際には、ラッチ１５９で保持されたＭＯＤ＿Ｓ１５６の値をセレクタ１５５、Ｄ１バス３１１を介して、レジスタファイル１１５中のベースアドレスレジスタに書き戻される。


【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００４０
【補正方法】変更
【補正の内容】
【００４０】
制御部１１２中のＰＳＷ１７１は図１の２１のＣＲ０の値を保持するレジスタであり、ラッチを含むＰＳＷ更新部１７２は演算結果や命令の実行によりＰＳＷ１７１の値を更新する。ＰＳＷ１７１に値を転送する場合、ＡＢラッチ１５２から制御部に転送すべきデータのうち、必要なビットのみ転送される。ＰＳＷ１７１の値を読み出す場合には、ＰＳＷ更新部１７２からＤ１バス３１１に出力され、レジスタファイル１１５に書き込まれる。
ＢＰＳＷ１６７は図１の２２のＣＲ１に相当するレジスタである。例外処理時には、Ｄ１バス３１１に出力されたＰＳＷ１７１の値がＢＰＳＷ１６７に書き込まれる。ＢＰＳＷ１６７の値はＳ３バス３０３に読み出され、ＰＳＷ１７１やレジスタファイルなど必要な場所に転送される。


【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００５７
【補正方法】変更
【補正の内容】
【００５７】
第１デコーダ１１３は、主として第１演算部１１６のすべて、ＰＣ部１１８のＩＦステージ４０１で制御される部分以外、レジスタファイル１１５のＳ１バス３０１、Ｓ２バス３０２、Ｓ３バス３０３への読み出し制御とＤ１バス３１１からの書き込み制御に関するする演算制御信号を生成する。命令に依存するＭステージ４０４やＷステージ４０５での制御信号もここで生成され、パイプライン中を転送される。第２デコーダ１１４は、主として第２演算部１１７での実行制御信号を生成する。


【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００６０
【補正方法】変更
【補正の内容】
【００６０】
Ｅステージ４０３において、第２演算部１１７では、算術論理演算、比較、転送、シフト他積和演算の加算以外のすべての演算実行が行われる。オペランドの値が、レジスタファイル１１５や即値レジスタ２１８、アキュムレータ２０８等から、Ｓ４バス３０４、Ｓ５バス３０５やその他の専用経路を介して各演算器に転送され、指定された演算を行い、アキュムレータ２０８やＤ２バス３１２、Ｄ３バス３１３を介してレジスタファイル１１５に書き戻される。
第２デコーダ１１４で生成された積和／積差演算の加減算実行のための演算制御信号は、Ｅステージ４０３制御のもとに保持される


【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】００６７
【補正方法】変更
【補正の内容】
【００６７】
５０１では、初期設定が、５０２でループ処理が、５０３で後処理が行われる。ループ処理部分では、リピート（ｒｅｐｉ）命令により、オーバーヘッドなしのループ処理が実現される。ｒｅｐｉ命令の次の命令から、ラベルｌｏｏｐｅｎｄで指定される命令までの６命令のブロックを４２回実行する。ｒｅｐｉ命令はロング命令であり、オペレーションコードと、ＰＣ相対でリピートブロックの最終アドレスを指定するための１６ビットの変位と、実行回数を指定するための８ビットの即値からなり、２クロックサイクル掛けて実行される。まず、第１サイクルでｒｅｐｉ命令の次の命令アドレスをラッチ１９２からＤ１バス３１１を介してＲＰＴ＿Ｓ１８４、ラッチ１８５に転送する。また、ｒｅｐｉ命令のアドレスをＥＰＣ１９４からＳ３バス３０３を介してＡＡラッチ１５１に転送し、命令で指定された変位値を第１デコーダ１１３からＡＢラッチ１５２に取り込み、ＡＬＵ１５３で両者の加算を行い、リピートを行うブロックの最終命令アドレスであるこの加算結果を、ＪＡバス３２３を介してＲＰＴ＿ Ｅ１８６に転送する。次に、第２のサイクルで、１６ビットにゼロ拡張した８ビットの即値を第１デコーダ１１３からＡＢラッチ１５２に取り込み、ＡＬＵ１５３、Ｄ１バス３１１を介してＲＰＴ＿Ｃ１８８に転送する。また、ＰＳＷ２１中のＲＰビット４３を１にセットする。このようにして、リピート処理を行うのに必要な初期設定を終了する。Ｒ０〜Ｒ５がデータ用のバッファ、Ｒ６〜Ｒ１１が係数用のバッファ、Ｒ１２がデータポインタ、Ｒ１４が係数用のポインタとして、各々使用されている。


【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】００７０
【補正方法】変更
【補正の内容】
【００７０】
図１９に、ループ内の処理の流れを示す。縦軸が時間を、横軸がパイプラインのステージを表す。命令はすべて内蔵命令メモリ１０３に、オペランドデータはすべて内蔵データメモリ１０５にあり、１クロックサイクルで各命令の１つのステージの処理が終了する。
リピート処理が続く間は、Ｔ６の後にＴ１の状態が繰り返される。
このデータ処理装置では、レジスタの内容をアドレスとし、アドレス更新を伴うメモリオペランドのレジスタファイルへの取り込みを指定する演算コードと、レジスタの値を参照して演算を行うことを指定する演算コードと含む複数の命令を、パイプライン処理の技術を用いて処理することにより、ソフトウェアでオペランドの干渉なしに演算を実行することができ、処理性能を向上させている。
【手続補正１８】
【補正対象書類名】明細書
【補正対象項目名】００７３
【補正方法】変更
【補正の内容】
【００７３】
Ｅステージ４０３では、Ｔ３の期間（５４３）でＩ１（５１１）の実行を行う。第１演算部１１６では、Ｉ１ａ（５１１ａ）のＬＤ２Ｗ命令のオペランドアドレス生成とアドレスポインタの値の更新が行われる。オペランドのアドレスであるレジスタファイル１１５のＲ１２の値がＳ３バス３０３を介して、ＡＡラッチ１５１に転送される。ＡＡラッチ１５１の値は、そのままＡＯラッチ１５４、ＯＡバス３２１を介して、オペランドアクセス部１０４に出力される。また、第１デコーダ１１３が出力した４の即値がＡＢラッチ１５２に転送される。ＡＬＵ１５３で加算を行い、加算結果をセレクタ１５５、Ｄ１バス３１１を介して、レジスタファイル１１５のＲ１２に書き戻す。第２演算部１１７では、Ｉ１ｂ（５１１ｂ）のＭＡＣ命令の乗算を行う。レジスタファイル１１５のＲ０の値がＳ４バス３０４を介してＸレジスタ２１２に、Ｒ６の値がＳ５バス３０５を介してＹレジスタ２１３に、それぞれ取り込まれる。両者の値を符号付きの値として扱い乗算を行い、乗算結果をＰレジスタ２１４に取り込む。


【手続補正１９】
【補正対象書類名】明細書
【補正対象項目名】００８９
【補正方法】変更
【補正の内容】
【００８９】
図３２に、ループ内の処理の流れを示す。例えばＴ６の期間で、積和の加算（７５５）と差分をとるための減算（７５４）を、加算器２３１とＡＬＵ２２１で並列に実行する。


【手続補正２０】
【補正対象書類名】明細書
【補正対象項目名】００９０
【補正方法】変更
【補正の内容】
【００９０】
実施の形態１のデータ処理装置で説明した差分絶対値和を、実施の形態２のデータ処理装置では、より効率よく処理できる。図３３に、ループ部分の内蔵命令メモリの内容を示す。ｒ１２が一方のデータアレイのアドレスを、ｒ０〜ｒ５がＤ１のそのデータを、ｒ１４が他方のデータアレイのアドレスを、ｒ６〜Ｒ１１がそのデータを、それぞれ保持する。ｄａａｄｄ命令は、差分の絶対値和を求める命令であり、アキュムレータに加算結果が保持される。この命令は、積和演算命令同様２段のパイプライン処理が実行される。


【手続補正２１】
【補正対象書類名】明細書
【補正対象項目名】００９２
【補正方法】変更
【補正の内容】
【００９２】
実施の形態３．
図３５に、実施の形態３のデータ処理装置の機能ブロック構成を示す。ＭＰＵコア部８５０は、ＭＰＵコア部である。命令フェッチ部１０２、オペランドアクセス部１０４は、実施の形態１のデータ処理装置とほぼ同じである。ただし、命令データは６４ビット幅で取り込まれる。バスインターフェイス部等、その他のブロックはここでは図示していない。


【手続補正２２】
【補正対象書類名】明細書
【補正対象項目名】０１０９
【補正方法】削除
【補正の内容】