(57)【要約】【課題】高い汎用性を有し、高速な演算処理が可能なキュープロセッサ、キュープロセッサによるデータ処理方法、およびキュープロセッサに用いるデータ処理プログラムを提供する。【解決手段】演算処理の中間結果格納用メモリとして用いられる第１演算データ格納用キュー１８の、キューヘッダＱＨの位置から所定ワード離れた位置に格納された第１データと、キューヘッダＱＨの次の位置から所定ワード離れた位置に格納された第２データとを取得し、第１データと第２データとを用いて演算処理を行い、演算結果を第１演算データ格納用キュー１８のキューテールＱＴから所定ワード離れた位置に格納する実行ユニット１７を備えることを特徴とする。【選択図】  図４
2008204262.tif 000002
【特許請求の範囲】
【請求項１】
演算処理の中間結果格納用メモリとしてキューが用いられるキュープロセッサにおいて、
前記キューにおいて前記演算処理開始時のキューヘッダの位置から所定ワード離れた位置に格納された第１データを取得するとともに、前記第１データが取得された後のキューヘッダの位置から所定ワード離れた位置に格納された第２データを取得して前記第１データと前記第２データとを用いて演算し、この演算の演算結果データを前記キューのキューテールの位置に格納する実行ユニット
を備えることを特徴とするキュープロセッサ。
【請求項２】
演算処理の中間結果格納用メモリとしてキューが用いられるキュープロセッサにおいて、
前記キューにおいて前記演算処理開始時のキューヘッダの位置から所定ワード離れた位置に格納された第１データを取得するとともに、前記第１データが取得された後のキューヘッダの位置に格納された第２データを取得して前記第１データと前記第２データとを用いて演算し、この演算の演算結果データを前記キューのキューテールの位置から所定ワード離れた位置に格納する実行ユニット
を備えることを特徴とするキュープロセッサ。
【請求項３】
演算処理の中間結果格納用メモリとしてキューが用いられるキュープロセッサにおいて、
前記キューにおいて前記演算処理開始時のキューヘッダの位置に格納された第１データを取得するとともに、前記第１データが取得された後のキューヘッダの位置から所定ワード離れた位置に格納された第２データを取得して前記第１データと前記第２データとを用いて演算し、この演算の演算結果データを、前記キューのキューテールの位置から所定ワード離れた位置に格納する実行ユニット
を備えることを特徴とするキュープロセッサ。
【請求項４】
演算処理の中間結果格納用メモリとしてキューが用いられるキュープロセッサにおいて、
前記演算処理開始時における前記キューのキューヘッダの位置から所定ワード離れた位置に格納された第１データを取得するとともに、前記第１データが取得された後のキューヘッダの位置から所定ワード離れた位置に格納された第２データを取得して前記第１データと前記第２データとを用いて演算し、この演算の演算結果データを前記キューのキューテールの位置から所定ワード離れた位置に格納する実行ユニット
を備えることを特徴とするキュープロセッサ。
【請求項５】
前記キューにおいて、前記演算処理開始時におけるキューヘッダの位置と、前記第１データが取得された後のキューヘッダの位置と、前記キューテールの位置とを同一ワードに固定する固定手段と、
前記固定手段により、前記キューにおける前記演算処理開始時のキューヘッダの位置と、前記第１データが取得された後のキューヘッダの位置と、前記キューテールの位置とを同一ワードに固定するかまたは、この固定を解除するかを切り替える切替手段と、
をさらに備えることを特徴とする請求項１〜４いずれか１項に記載のキュープロセッサ。
【請求項６】
前記第１データが格納されたキューと、前記第２データが格納されたキューと、前記演算結果データを格納するキューとは、複数個で構成されたキュー群のうちのいずれか１つである
ことを特徴とする請求項１〜４いずれか１項に記載のキュープロセッサ。
【請求項７】
前記第１データが格納されたキューと、前記第２データが格納されたキューと、前記演算結果データを格納するキューとはそれぞれ異なるキューであり、
前記第１データが格納されたキューにおけるキューヘッダの位置と、前記第２データが格納されたキューにおけるキューヘッダの位置と、前記演算結果データを格納するキューにおけるキューテールの位置とを固定する固定手段と、
前記固定手段により、前記第１データが格納されたキューにおけるキューヘッダの位置と、前記第２データが格納されたキューにおけるキューヘッダの位置と、前記演算結果データを格納するキューにおけるキューテールの位置とを固定するかまたは、この固定を解除するかを切り替える切替手段と、
をさらに備えることを特徴とする請求項６に記載のキュープロセッサ。
【請求項８】
キュープロセッサが、
演算処理の中間結果格納用メモリとして用いられるキューの前記演算処理開始時のキューヘッダの位置から所定ワード離れた位置に格納された第１データを取得するとともに、前記第１データが取得された後のキューヘッダの位置から所定ワード離れた位置に格納された第２データを取得し、
前記第１データと前記第２データとを用いて演算処理を行い、
前記演算処理の演算結果データを前記キューのキューテールの位置に格納する
ことを特徴とするキュープロセッサによるデータ処理方法。
【請求項９】
キュープロセッサが、
演算処理の中間結果格納用メモリとして用いられるキューの、キューヘッダの位置から所定ワード離れた位置に格納された第１データを取得するとともに、前記第１データが取得された後のキューヘッダの位置に格納された第２データを取得し、
前記第１データと前記第２データとを用いて演算処理を行い、
前記演算処理の演算結果データを前記キューのキューテールの位置から所定ワード離れた位置に格納する
ことを特徴とするキュープロセッサによるデータ処理方法。
【請求項１０】
キュープロセッサが、
演算処理の中間結果格納用メモリとして用いられるキューの、キューヘッダの位置に格納された第１データを取得するとともに、前記第１データが取得された後のキューヘッダの次の位置から所定ワード離れた位置に格納された第２データを取得し、
前記第１データと前記第２データとを用いて演算処理を行い、
前記演算処理の演算結果データを前記キューのキューテールの位置から所定ワード離れた位置に格納する
ことを特徴とするキュープロセッサによるデータ処理方法。
【請求項１１】
キュープロセッサが、
演算処理の中間結果格納用メモリとして用いられるキューの、キューヘッダから所定ワード離れた位置に格納された第１データを取得するとともに、前記第１データが取得された後のキューヘッダの位置から所定ワード離れた位置に格納された第２データを取得し、
前記第１データと前記第２データとを用いて演算処理を行い、
前記演算処理の演算結果データを前記キューのキューテールの位置から所定ワード離れた位置に格納する
ことを特徴とするキュープロセッサによるデータ処理方法。
【請求項１２】
前記キューにおいて、前記演算処理開始時におけるキューヘッダの位置と、前記第１データが取得された後のキューヘッダの位置と、前記キューテールの位置とを同一ワードに固定するかまたは、この固定を解除するかを切り替えるステップ
をさらに備えることを特徴とする請求項８〜１１いずれか１項に記載のキュープロセッサによるデータ処理方法。
【請求項１３】
前記第１データが格納されたキューと、前記第２データが格納されたキューと、前記演算結果データを格納するキューとは、複数個で構成されたキュー群のうちのいずれか１つである
ことを特徴とする請求項８〜１１いずれか１項に記載のキュープロセッサによるデータ処理方法。
【請求項１４】
前記第１データが格納されたキューと、前記第２データが格納されたキューと、前記演算結果データを格納するキューとはそれぞれ異なるキューであり、
前記第１データが格納されたキューにおけるキューヘッダの位置と、前記第２データが格納されたキューにおけるキューヘッダの位置と、前記演算結果データを格納するキューにおけるキューテールの位置とを固定するかまたは、この固定を解除するかを切り替えるステップ
をさらに備えることを特徴とする請求項１３に記載のキュープロセッサによるデータ処理方法。
【請求項１５】
キュープロセッサに、
演算処理の中間結果格納用メモリとして用いられるキューの、キューヘッダの位置から所定ワード離れた位置に格納された第１データを取得するとともに、前記第１データが取得された後のキューヘッダの位置から所定ワード離れた位置に格納された第２データを取得する機能と、
前記第１データと前記第２データとを用いて演算処理を行う機能と、
前記演算処理の演算結果データを前記キューのキューテールの位置に格納する機能と、
を実行させるためのキュープロセッサに用いるデータ処理プログラム。
【請求項１６】
キュープロセッサに、
演算処理の中間結果格納用メモリとして用いられるキューの、キューヘッダの位置から所定ワード離れた位置に格納された第１データを取得するとともに、前記第１データが取得された後のキューヘッダの位置に格納された第２データを取得する機能と、
前記第１データと前記第２データとを用いて演算処理を行う機能と、
前記演算処理の演算結果データを前記キューのキューテールの位置から所定ワード離れた位置に格納する機能と、
を実行させるためのキュープロセッサに用いるデータ処理プログラム。
【請求項１７】
キュープロセッサに、
演算処理の中間結果格納用メモリとして用いられるキューの、キューヘッダの位置に格納された第１データを取得するとともに、前記第１データが取得された後のキューヘッダの次の位置から所定ワード離れた位置に格納された第２データとを取得する機能と、
前記第１データと前記第２データとを用いて演算処理を行う機能と、
前記演算処理の演算結果データを前記キューのキューテールの位置から所定ワード離れた位置に格納する機能と、
を実行させるためのキュープロセッサに用いるデータ処理プログラム。
【請求項１８】
キュープロセッサに、
演算処理の中間結果格納用メモリとして用いられるキューの、キューヘッダから所定ワード離れた位置に格納された第１データを取得するとともに、前記第１データが取得された後のキューヘッダの位置から所定ワード離れた位置に格納された第２データを取得する機能と、
前記第１データと前記第２データとを用いて演算処理を行う機能と、
前記演算処理の演算結果データを前記キューのキューテールの位置から所定ワード離れた位置に格納する機能と、
を実行させるためのキュープロセッサに用いるデータ処理プログラム。
【請求項１９】
前記キューにおいて、前記演算処理開始時におけるキューヘッダの位置と、前記第１データが取得された後のキューヘッダの位置と、前記キューテールの位置とを同一ワードに固定する固定機能と、
前記固定手段により、前記キューにおける前記演算処理開始時のキューヘッダの位置と、前記第１データが取得された後のキューヘッダの位置と、前記キューテールの位置とを同一ワードに固定するかまたは、この固定を解除するかを切り替える切替機能と、
をさらに備えることを特徴とする請求項１５〜１８いずれか１項に記載のキュープロセッサに用いるデータ処理プログラム。
【請求項２０】
前記第１データが格納されたキューと、前記第２データが格納されたキューと、前記演算結果データを格納するキューとは、複数個で構成されたキュー群のうちのいずれか１つである
ことを特徴とする請求項１５〜１８いずれか１項に記載のキュープロセッサに用いるデータ処理プログラム。
【請求項２１】
前記第１データが格納されたキューと、前記第２データが格納されたキューと、前記演算結果データを格納するキューとはそれぞれ異なるキューであり、
前記第１データが格納されたキューにおけるキューヘッダの位置と、前記第２データが格納されたキューにおけるキューヘッダの位置と、前記演算結果データを格納するキューにおけるキューテールの位置とを固定する固定機能と、
前記固定機能により、前記第１データが格納されたキューにおけるキューヘッダの位置と、前記第２データが格納されたキューにおけるキューヘッダの位置と、前記演算結果データを格納するキューにおけるキューテールの位置とを固定するかまたは、この固定を解除するかを切り替える切替機能と、
をさらに備えることを特徴とする請求項２０に記載のキュープロセッサに用いるデータ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、先入れ先出しのキューを中間結果格納用メモリとして用いるキュープロセッサ、キュープロセッサによるデータ処理方法、およびキュープロセッサに用いるデータ処理プログラムに関する。
【背景技術】
【０００２】
従来、コンピュータに搭載されているプロセッサは、コンピュータ内の主メモリに記憶されたデータを読み込んで演算処理を行っている。
【０００３】
プロセッサは、内部に演算の中間結果データを格納する中間結果格納用メモリと演算ユニットとを備えている。これらを用いて演算処理を行うときには、まず外部の主メモリに記憶されたデータであるメモリ格納データをプロセッサ内の中間結果格納用メモリにコピーし、コピーされたデータを用いて演算ユニットで演算処理をしてその結果を中間結果格納用メモリに返す。この演算処理を何回か繰り返した後に、中間結果格納用メモリで得られた演算結果を外部の主メモリに返す。
【０００４】
この中間結果格納用メモリとして、レジスタと呼ばれる小容量で高速なアクセスが可能なランダムアクセスメモリ（ＲＡＭ）を用いたプロセッサが広く普及している。
【０００５】
しかし、レジスタを中間結果格納用メモリとして用いると、命令語のオペランドで使用レジスタを指定しなければならないので、命令長が長くなる。そのため、プロセスの切り替えが遅くなる、あるいはプログラム長が長くなるなどの問題があった。
【０００６】
特に近年は携帯電話に代表される小型デジタル機器による通信が盛んになってきているため、高速な演算処理が可能で且つ省エネルギー化された小型のプロセッサの開発が要求されていた。
【０００７】
命令長の問題を解決するプロセッサとして、中間結果格納用メモリにスタックを用いるプロセッサがある。中間結果格納用メモリにスタックを用いると命令語においてオペランドを指定する必要がないため、命令長を短くすることができる。しかし、スタックは先入れ後出し（ＦＩＬＯ：First In Last Out）方式であり後から記録したデータから使用されるため、高速に処理を行うための並列処理が困難であるという問題があった。
【０００８】
そこで並列処理を可能にするため、本発明者は中間結果格納用メモリに先入れ先出し（ＦＩＦＯ：First In Fast Out）方式のキューを用いたプロセッサを開発した。
【０００９】
キューを用いたプロセッサは、同時に実行可能な命令が連続して現れるため並列処理が可能であり、高いパフォーマンスが得られる、命令語においてオペランド指定が必要ないため命令長が短い、プログラム量が少ない、ハードウェアが小さく消費電力が少ない、クロック周波数が高い、などの特徴を持っている。
【００１０】
キューを用いたプロセッサに関する技術として、特許文献１および２に記載のものがある。
【００１１】
特許文献１のキュープロセッサは、命令の実行に必要なデータが中間結果格納用メモリとして用いたキューの中にあるか否かをチェックし、キューにある必要なデータはすべて同時に実行ユニットに送ることにより並列処理の実行を可能にするものである。
【００１２】
この技術により、プロセッサを高速化することが可能になる。
【００１３】
また、特許文献２のキュープロセッサは、命令の割り込み処理などでコンテキスト切り替えが起こった場合に、切り替え前のプログラム用データを待避および復帰させることができるとともにキューの構成に自由度を持たせることができ、さらにはキューにデータが満になったときに拡張させることができるものである。これらの技術により、さらに効率良くキュープロセッサを利用することができる。
【００１４】
しかし、キュープロセッサでは格納された順にデータが取り出されるため、命令により生産され格納されるデータの順序（生産順）と格納された中から演算のために取り出すデータの順序（消費順）とが一致していないと正しくプログラムが実行されないという問題点があり、これは上記特許文献１および２の技術では解決することができない。
【００１５】
この問題を解決するため、特許文献３には、データの生産順と消費順が異なるときのキュープロセッサの計算方式について記載されている。
【００１６】
プロセッサにおいて、中間結果格納用メモリからデータを取り出す処理を消費とし、演算結果を中間結果格納用メモリに格納する処理を生産とすると、命令間の関係から、キュープロセッサを用いる計算モデルは次の３つに分けられる。
【００１７】
１）生産消費順序型キュー計算モデル
キューに中間結果データを格納する順序が、生産される順序および消費される順序と一致する方式である。つまり、キュー内のデータの並び順が、データの生産順および消費順と一致する方式である。
【００１８】
２）消費順序型キュー計算モデル
キューに中間結果データを格納するとき、消費される順序に従って格納する方式である。つまり、キュー内のデータの並び順が、データの消費順と一致する方式である。
【００１９】
３）生産順序型キュー計算モデル
キューに中間結果データを格納するとき、生産される順序に従って格納し、消費する際には格納順序にかかわらず消費される順序に従ってデータを取り出す方式である。つまり、キュー内のデータの並び順が、データの生産順と一致する方式である。
【００２０】
特許文献３には、命令にオフセット部を設けることにより、データの生産順と消費順が異なるときの演算処理が、上記２）および３）の計算モデルを用いて実行される場合について記載されている。
【特許文献１】特許第３７０１５８３号公報
【特許文献２】特開２００５−２９３０８３号公報
【特許文献３】特開２００４−２４６４４９号公報
【発明の開示】
【発明が解決しようとする課題】
【００２１】
しかし、この特許文献３の技術は、１命令に設けられるオフセット数は１つであり、演算処理に使用するデータの取得先の指定および演算後のデータを格納する場所の指定は制限される。
【００２２】
そのため、より柔軟に消費するデータの取得先の指定および生産したデータの格納場所の指定ができ、さらに高い汎用性で利用することができるキュープロセッサが望まれていた。
【００２３】
本発明は、上記事情に鑑みてなされたものであり、高い汎用性を有し、高速な演算処理が可能なキュープロセッサ、キュープロセッサによるデータ処理方法、およびキュープロセッサに用いるデータ処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００２４】
上記目的を達成するための本発明の請求項１に記載のキュープロセッサは、演算処理の中間結果格納用メモリとしてキューが用いられるものであり、前記キューにおいて前記演算処理開始時のキューヘッダの位置から所定ワード離れた位置に格納された第１データを取得するとともに、前記第１データが取得された後のキューヘッダの位置から所定ワード離れた位置に格納された第２データを取得して前記第１データと前記第２データとを用いて演算し、この演算の演算結果データを前記キューのキューテールの位置に格納する実行ユニットを備えることを特徴とする。
【００２５】
また、請求項２に記載のキュープロセッサは、演算処理の中間結果格納用メモリとしてキューが用いられるものであり、前記キューにおいて前記演算処理開始時のキューヘッダの位置から所定ワード離れた位置に格納された第１データを取得するとともに、前記第１データが取得された後のキューヘッダの位置に格納された第２データを取得して前記第１データと前記第２データとを用いて演算し、この演算の演算結果データを前記キューのキューテールの位置から所定ワード離れた位置に格納する実行ユニットを備えることを特徴とする。
【００２６】
また、請求項３に記載のキュープロセッサは、演算処理の中間結果格納用メモリとしてキューが用いられるものであり、前記キューにおいて前記演算処理開始時のキューヘッダの位置に格納された第１データを取得するとともに、前記第１データが取得された後のキューヘッダの位置から所定ワード離れた位置に格納された第２データを取得して前記第１データと前記第２データとを用いて演算し、この演算の演算結果データを、前記キューのキューテールの位置から所定ワード離れた位置に格納する実行ユニットを備えることを特徴とする。
【００２７】
また、請求項４に記載のキュープロセッサは、演算処理の中間結果格納用メモリとしてキューが用いられるものであり、前記演算処理開始時における前記キューのキューヘッダの位置から所定ワード離れた位置に格納された第１データを取得するとともに、前記第１データが取得された後のキューヘッダの位置から所定ワード離れた位置に格納された第２データを取得して前記第１データと前記第２データとを用いて演算し、この演算の演算結果データを前記キューのキューテールの位置から所定ワード離れた位置に格納する実行ユニットを備えることを特徴とする。
【００２８】
また、請求項５は請求項１〜４いずれか１項に記載のキュープロセッサであり、前記キューにおいて、前記演算処理開始時におけるキューヘッダの位置と、前記第１データが取得された後のキューヘッダの位置と、前記キューテールの位置とを同一ワードに固定する固定手段と、前記固定手段により、前記キューにおける前記演算処理開始時のキューヘッダの位置と、前記第１データが取得された後のキューヘッダの位置と、前記キューテールの位置とを同一ワードに固定するかまたは、この固定を解除するかを切り替える切替手段とをさらに備えることを特徴とする。
【００２９】
また、請求項６は請求項１〜４いずれか１項に記載のキュープロセッサであり、前記第１データが格納されたキューと、前記第２データが格納されたキューと、前記演算結果データを格納するキューとは、複数個で構成されたキュー群のうちのいずれか１つであることを特徴とする。
【００３０】
また、請求項７は請求項６に記載のキュープロセッサであり、前記第１データが格納されたキューと、前記第２データが格納されたキューと、前記演算結果データを格納するキューとはそれぞれ異なるキューであり、前記第１データが格納されたキューにおけるキューヘッダの位置と、前記第２データが格納されたキューにおけるキューヘッダの位置と、前記演算結果データを格納するキューにおけるキューテールの位置とを固定する固定手段と、前記固定手段により、前記第１データが格納されたキューにおけるキューヘッダの位置と、前記第２データが格納されたキューにおけるキューヘッダの位置と、前記演算結果データを格納するキューにおけるキューテールの位置とを固定するかまたは、この固定を解除するかを切り替える切替手段とをさらに備えることを特徴とする。
【００３１】
また、請求項８に記載のキュープロセッサによるデータ処理方法は、キュープロセッサが、演算処理の中間結果格納用メモリとして用いられるキューの前記演算処理開始時のキューヘッダの位置から所定ワード離れた位置に格納された第１データを取得するとともに、前記第１データが取得された後のキューヘッダの位置から所定ワード離れた位置に格納された第２データを取得し、前記第１データと前記第２データとを用いて演算処理を行い、
前記演算処理の演算結果データを前記キューのキューテールの位置に格納することを特徴とする。
【００３２】
また、請求項９に記載のキュープロセッサによるデータ処理方法は、キュープロセッサが、演算処理の中間結果格納用メモリとして用いられるキューの、キューヘッダの位置から所定ワード離れた位置に格納された第１データを取得するとともに、前記第１データが取得された後のキューヘッダの位置に格納された第２データを取得し、前記第１データと前記第２データとを用いて演算処理を行い、前記演算処理の演算結果データを前記キューのキューテールの位置から所定ワード離れた位置に格納することを特徴とする。
【００３３】
また、請求項１０に記載のキュープロセッサによるデータ処理方法は、キュープロセッサが、演算処理の中間結果格納用メモリとして用いられるキューの、キューヘッダの位置に格納された第１データを取得するとともに、前記第１データが取得された後のキューヘッダの次の位置から所定ワード離れた位置に格納された第２データを取得し、前記第１データと前記第２データとを用いて演算処理を行い、前記演算処理の演算結果データを前記キューのキューテールの位置から所定ワード離れた位置に格納することを特徴とするキュープロセッサによるデータ処理方法。
【００３４】
また、請求項１１に記載のキュープロセッサによるデータ処理方法は、キュープロセッサが、演算処理の中間結果格納用メモリとして用いられるキューの、キューヘッダから所定ワード離れた位置に格納された第１データを取得するとともに、前記第１データが取得された後のキューヘッダの位置から所定ワード離れた位置に格納された第２データを取得し、前記第１データと前記第２データとを用いて演算処理を行い、前記演算処理の演算結果データを前記キューのキューテールの位置から所定ワード離れた位置に格納することを特徴とする。
【００３５】
また、請求項１２は請求項８〜１１いずれか１項に記載のキュープロセッサによるデータ処理方法であり、前記キューにおいて、前記演算処理開始時におけるキューヘッダの位置と、前記第１データが取得された後のキューヘッダの位置と、前記キューテールの位置とを同一ワードに固定するかまたは、この固定を解除するかを切り替えるステップをさらに備えることを特徴とする。
【００３６】
また、請求項１３は請求項８〜１１いずれか１項に記載のキュープロセッサによるデータ処理方法であり、前記第１データが格納されたキューと、前記第２データが格納されたキューと、前記演算結果データを格納するキューとは、複数個で構成されたキュー群のうちのいずれか１つであることを特徴とする。
【００３７】
また、請求項１４は請求項１３に記載のキュープロセッサによるデータ処理方法であり、前記第１データが格納されたキューと、前記第２データが格納されたキューと、前記演算結果データを格納するキューとはそれぞれ異なるキューであり、前記第１データが格納されたキューにおけるキューヘッダの位置と、前記第２データが格納されたキューにおけるキューヘッダの位置と、前記演算結果データを格納するキューにおけるキューテールの位置とを固定するかまたは、この固定を解除するかを切り替えるステップをさらに備えることを特徴とする。
【００３８】
また、請求項１５に記載のキュープロセッサに用いるデータ処理プログラムは、キュープロセッサに、演算処理の中間結果格納用メモリとして用いられるキューの、キューヘッダの位置から所定ワード離れた位置に格納された第１データを取得するとともに、前記第１データが取得された後のキューヘッダの位置から所定ワード離れた位置に格納された第２データを取得する機能と、前記第１データと前記第２データとを用いて演算処理を行う機能と、前記演算処理の演算結果データを前記キューのキューテールの位置に格納する機能とを実行させることを特徴とする。
【００３９】
また、請求項１６に記載のキュープロセッサに用いるデータ処理プログラムは、キュープロセッサに、演算処理の中間結果格納用メモリとして用いられるキューの、キューヘッダの位置から所定ワード離れた位置に格納された第１データを取得するとともに、前記第１データが取得された後のキューヘッダの位置に格納された第２データを取得する機能と、前記第１データと前記第２データとを用いて演算処理を行う機能と、前記演算処理の演算結果データを前記キューのキューテールの位置から所定ワード離れた位置に格納する機能とを実行させることを特徴とする。
【００４０】
また、請求項１７に記載のキュープロセッサに用いるデータ処理プログラムは、キュープロセッサに、演算処理の中間結果格納用メモリとして用いられるキューの、キューヘッダの位置に格納された第１データを取得するとともに、前記第１データが取得された後のキューヘッダの次の位置から所定ワード離れた位置に格納された第２データとを取得する機能と、前記第１データと前記第２データとを用いて演算処理を行う機能と、前記演算処理の演算結果データを前記キューのキューテールの位置から所定ワード離れた位置に格納する機能とを実行させることを特徴とする。
【００４１】
また、請求項１８に記載のキュープロセッサに用いるデータ処理プログラムは、キュープロセッサに、演算処理の中間結果格納用メモリとして用いられるキューの、キューヘッダから所定ワード離れた位置に格納された第１データを取得するとともに、前記第１データが取得された後のキューヘッダの位置から所定ワード離れた位置に格納された第２データを取得する機能と、前記第１データと前記第２データとを用いて演算処理を行う機能と、前記演算処理の演算結果データを前記キューのキューテールの位置から所定ワード離れた位置に格納する機能とを実行させることを特徴とする。
【００４２】
また、請求項１９は請求項１５〜１８いずれか１項に記載のキュープロセッサに用いるデータ処理プログラムであり、前記キューにおいて、前記演算処理開始時におけるキューヘッダの位置と、前記第１データが取得された後のキューヘッダの位置と、前記キューテールの位置とを同一ワードに固定する固定機能と、前記固定手段により、前記キューにおける前記演算処理開始時のキューヘッダの位置と、前記第１データが取得された後のキューヘッダの位置と、前記キューテールの位置とを同一ワードに固定するかまたは、この固定を解除するかを切り替える切替機能とをさらに備えることを特徴とする。
【００４３】
また、請求項２０は請求項１５〜１８いずれか１項に記載のキュープロセッサに用いるデータ処理プログラムであり、前記第１データが格納されたキューと、前記第２データが格納されたキューと、前記演算結果データを格納するキューとは、複数個で構成されたキュー群のうちのいずれか１つであることを特徴とする。
【００４４】
また、請求項２１は請求項２０に記載のキュープロセッサに用いるデータ処理プログラムであり、前記第１データが格納されたキューと、前記第２データが格納されたキューと、前記演算結果データを格納するキューとはそれぞれ異なるキューであり、前記第１データが格納されたキューにおけるキューヘッダの位置と、前記第２データが格納されたキューにおけるキューヘッダの位置と、前記演算結果データを格納するキューにおけるキューテールの位置とを固定する固定機能と、前記固定機能により、前記第１データが格納されたキューにおけるキューヘッダの位置と、前記第２データが格納されたキューにおけるキューヘッダの位置と、前記演算結果データを格納するキューにおけるキューテールの位置とを固定するかまたは、この固定を解除するかを切り替える切替機能とをさらに備えることを特徴とする。
【発明の効果】
【００４５】
本発明のキュープロセッサ、キュープロセッサによるデータ処理方法、およびキュープロセッサに用いるデータ処理プログラムによれば、高い汎用性を有し、高速な演算処理を実行することができる。
【発明を実施するための最良の形態】
【００４６】
《第１実施形態》
本発明の第１実施形態によるキュープロセッサに用いるデータ処理プログラムは、オフセット数が２つの生産順序型キュー計算モデルを用いたものである。
【００４７】
〈第１実施形態によるキュープロセッサの構成〉
本実施形態によるキュープロセッサ１の構成を、図１を用いて説明する。
【００４８】
本実施形態によるキュープロセッサ１は、命令メモリ（ＩＭ）１１と、フェッチユニット（ＦＵ）１２と、命令解釈ユニット（ＤＵ）１３と、キュー計算ユニット（ＱＣＵ）１４と、バリヤ・キュー制御ユニット（ＢＱＵ）１５と、発行ユニット（ＩＵ）１６と、実行ユニット（ＥＵ）１７と、第１演算データ格納用キュー１８と、データメモリ（ＤＭ）２２と、フェッチバッファ（ＦＢ）２３と、デコードバッファ（ＤＢ）２４と、キュー計算バッファ（ＱＢ）２５とを有する。また、命令メモリ（ＩＭ）１１と、データメモリ（ＤＭ）２２とで外部メモリ（主メモリ）を構成する。
【００４９】
命令メモリ１１は、プログラムを実行するための命令を格納する。
【００５０】
フェッチユニット１２は、命令群を命令メモリ１１からフェッチする。
【００５１】
命令解釈ユニット１３は、命令群を個々の命令に分ける。
【００５２】
キュー計算ユニット１４は、命令が実行されたときのキューヘッドQH値およびキューテールQT値を計算する。
【００５３】
バリヤ・キュー制御ユニット１５は、バリヤ系の命令を処理し、循環キューの制御を行う。
【００５４】
発行ユニット１６は、実行可能命令群を見つけて実行ユニット１７に送出する。
【００５５】
実行ユニット１７は、第１実行ユニット１７ａと第２実行ユニット１７ｂと第３実行ユニット１７ｃとを有し、それぞれが第１演算データ格納用キュー１８と第２演算データ格納用キューとの両方にアクセス可能である。これら第１実行ユニット１７ａと第２実行ユニット１７ｂと第３実行ユニット１７ｃとは、同一機能を有する。
【００５６】
第１演算データ格納用キュー１８は、演算に用いるデータおよび演算結果のデータを演算中に格納する中間結果格納用メモリである。
【００５７】
データメモリ２２は、演算に用いるデータを格納する。
【００５８】
フェッチバッファ２３、デコードバッファ２４、キュー計算バッファ２５は、パイプライン処理を行うためのバッファである。
【００５９】
〈第１実施形態によるキュープロセッサの動作〉
本実施形態によるキュープロセッサ１の動作について説明する。
【００６０】
まず、プログラムの実行が開始されると、命令メモリ１１から複数の命令で構成される命令群がフェッチユニット１２によりフェッチされる。
【００６１】
フェッチされた命令群は、命令解釈ユニット１３において個々の命令に分けて解釈され、さらにキュー計算ユニット１４で命令がシリアルに実行されたときのキューヘッドQH値およびキューテールQT値が算出される。
【００６２】
次に、バリヤ・キュー制御ユニット１５においてキューのオーバーフローとバリヤ系の命令の処理とが行われる。
【００６３】
次に、発行ユニット１６において命令群がメモリアクセス命令と演算命令とに分けられ、実行可能な命令群が実行ユニット１７に送出される。
【００６４】
次に、実行ユニット１７の第１実行ユニット１７ａ、第２実行ユニット１７ｂ、または第３実行ユニット１７ｃのいずれかにおいて、取得された命令群のメモリアクセス命令により必要なデータがデータメモリ２２から取得されキューに格納される。
【００６５】
次に、キューに格納されたデータが使用されて、実行ユニット１７の第１実行ユニット１７ａ、第２実行ユニット１７ｂ、または第３実行ユニット１７ｃのいずれかで演算命令が実行される。
【００６６】
実行により得られた中間結果データは、第１実行ユニット１７ａ、第２実行ユニット１７ｂ、または第３実行ユニット１７ｃのいずれかから、第１演算データ格納用キュー１８に格納される。
【００６７】
このようにして第１演算データ格納用キュー１８であるキューRi内に格納されたデータを用いて生産順と消費順とが一致しているデータの加算処理が行われるときには、オフセット部は不要であるため、プログラムでは命令「add Ri」を指定することで下記の処理が行われる。
【００６８】
add Ri = QT ← （QH(1)） + （QH(2)）
ここで、ＱＨ(1)は加算処理に用いる第１データが格納されている位置を示すもので第１データが取り出される前のキューヘッドであり、ＱＨ(2)は加算処理に用いる第２データが格納されている位置を示すもので第１データが取り出され１ワード移動したキューヘッド（ＱＨ(1)＋１）である。
【００６９】
また、ＱＴは加算処理の処理結果を格納する位置を示すキューテールである。
【００７０】
本実施形態においては、第１演算データ格納用キュー１８に生産順に格納されたデータを用いて生産順と異なる消費順で演算処理が行われる場合について説明する。
【００７１】
プログラム内においては第１演算データ格納用キュー１８を「Ri」、キューテールＱＴから所望のデータまでの距離（ワード数）を「offset1」、キューヘッドＱＨ(1)から所望のデータまでの距離（ワード数）を「offset2」、キューヘッドＱＨ(2)から所望のデータまでの距離（ワード数）を「offset3」とする。
【００７２】
図２において、第１演算データ格納用キュー１８内の第１データとしてのデータＡおよび第２データとしてのデータＢの位置をキューヘッドＱＨからのオフセットを利用して特定し、この２つのデータを加算してキューテールＱＴに格納する演算を行う場合のプログラムについて説明する。
【００７３】
図２に示すように、第１演算データ格納用キュー１８内において、データＡはキューヘッドＱＨ(1)から２ワード離れた位置に格納されており、また、データＢはキューヘッドＱＨ(2)から３ワード離れた位置に格納されている。
【００７４】
そのため、データＡとデータＢとを加算してキューテールＱＴに格納する演算を行うときのプログラムは、データＡおよびデータＢの位置が、オフセットが利用されて、命令「add Ri offset2, offset3」のみで表すことができる。
【００７５】
この命令は、下記の処理を意味する。
【００７６】
add Ri offset2, offset3 = QT+0 ← (QH(1) + offset2) + (QH(2)+ offset3)
本実施形態においては、offset2の値は「２」であり、offset3の値は「３」である。
【００７７】
以上の第１実施形態によれば、演算データの中間結果格納用にキューを使用し、演算処理を行うためのプログラムにおいて消費する２個のデータの位置をそれぞれオフセットを利用して示しているため、データの取り出しに柔軟性がでて簡潔なプログラムを書くことができ、高速な演算処理を実行することができる。
【００７８】
《第２実施形態》
本発明の第２実施形態によるキュープロセッサに用いるデータ処理プログラムは、オフセット数が２つの生産順序型と消費順序型の混合キュー計算モデルを用いたものである。
【００７９】
〈第２実施形態によるキュープロセッサの構成〉
本実施形態によるキュープロセッサ１の構成は、第１実施形態と同様であるため詳細な説明は省略する。
【００８０】
〈第２実施形態によるキュープロセッサの動作〉
本実施形態によるキュープロセッサ１の動作について説明する。
【００８１】
プログラムの実行が開始され、命令メモリ１１から命令群がフェッチユニット１２によりフェッチされてから実行ユニット１７において演算命令が実行され得られた中間結果データが第１演算データ格納用キュー１８に格納されるまでの処理は第１実施形態と同様であるため、詳細な説明は省略する。
【００８２】
第１演算データ格納用キュー１８に格納されたデータを用いて、格納された順番と異なる消費順でさらに演算処理が行われ、この演算処理で生産されたデータが生産順と異なる順番で格納される場合について説明する。
【００８３】
図３は第１演算データ格納用キュー１８であり、ＱＨ(1)は第１データが取り出される前のキューヘッドを示し、ＱＨ(2)は第１データが取り出された後のキューヘッドを示し、ＱＴは演算結果格納前のキューテールを示す。
【００８４】
本実施形態においては、図２の第１演算データ格納用キュー１８内のデータＡおよびデータＢのいずれか一方の位置をキューヘッドＱＨからのオフセットを利用して特定し、この２つのデータを加算してキューテールＱＴからのオフセットを利用して特定される位置に格納する演算を行う場合のプログラムについて説明する。
【００８５】
図３に示すように、第１演算データ格納用キュー１８内において、データＡはキューヘッドＱＨ(1)の位置に格納されており、また、データＢはキューヘッドＱＨ(2)から３ワード離れた位置に格納されている。
【００８６】
また、データＡとデータＢとを加算した結果はキューテールＱＴから１ワード離れた位置に格納するため、データＢおよび演算結果の格納位置にオフセットが利用されて、命令「add  Ri offset1, offset3」のみで表すことができる。
【００８７】
この命令は、下記の処理を意味する。
【００８８】
add Ri offset1, offset3 = QT+offset1 ← (QH(1) + 0) + (QH(2) + offset3)
本実施形態においては、offset1の値は「１」であり、offset3の値は「３」である。
【００８９】
以上の第２実施形態によれば、演算データの中間結果格納用にキューを使用し、演算処理を行うためのプログラムにおいて消費する一方のデータの位置および演算結果を格納する位置をそれぞれオフセットを利用して示しているため、消費順と異なる順序でデータを取り出し、また生産順と異なる順序で演算結果を格納できるので柔軟性が増え、簡潔なプログラムを書けると同時に演算命令を短くでき、高速な演算処理を実行することができる。
【００９０】
本実施形態においては、offset1とoffset3とを用いたオフセット数が２つの生産順序型と消費順序型の混合キュー計算モデルについて説明したが、offset1とoffset2とを用いてオフセット数が２つの生産順序型と消費順序型の混合キュー計算モデルを構築してもよい。
【００９１】
《第３実施形態》
本発明の第３実施形態によるキュープロセッサに用いるデータ処理プログラムは、オフセット数が３つの生産順序型と消費順序型の混合キュー計算モデルを用いたものである。
【００９２】
〈第３実施形態によるキュープロセッサの構成〉
本実施形態によるキュープロセッサ１の構成は、第１実施形態と同様であるため詳細な説明は省略する。
【００９３】
〈第３実施形態によるキュープロセッサの動作〉
本実施形態によるキュープロセッサ１の動作について説明する。
【００９４】
プログラムの実行が開始され、命令メモリ１１から命令群がフェッチユニット１２によりフェッチされてから実行ユニット１７において演算命令が実行され得られた中間結果データが第１演算データ格納用キュー１８に格納されるまでの処理は第１実施形態と同様であるため、詳細な説明は省略する。
【００９５】
第１演算データ格納用キュー１８に格納されたデータを用いて、格納された順番と異なる消費順でさらに演算処理が行われ、この演算処理で生産されたデータが生産順と異なる順番で格納される場合について説明する。
【００９６】
図４は第１演算データ格納用キュー１８であり、ＱＨ(1)は第１データが取り出される前のキューヘッドを示し、ＱＨ(2)は第１データが取り出された後のキューヘッドを示し、ＱＴは演算結果格納前のキューテールを示す。
【００９７】
本実施形態においては、図４の第１演算データ格納用キュー１８内のデータＡおよびデータＢの位置をキューヘッドＱＨからのオフセットを利用して特定し、この２つのデータを加算してキューテールＱＴからのオフセットを利用して特定される位置に格納する演算を行う場合のプログラムについて説明する。
【００９８】
図３に示すように、第１演算データ格納用キュー１８内において、データＡはキューヘッドＱＨ(1)から２ワード離れた位置に格納されており、また、データＢはキューヘッドＱＨ(2)から３ワード離れた位置に格納されている。
【００９９】
また、データＡとデータＢとを加算した結果をキューテールＱＴから１ワード離れた位置に格納するため、データＡ、データＢおよび演算結果の格納位置を指定するためにオフセットが利用されて、命令は「add Ri offset1, offset2, offset3」で表すことができる。
【０１００】
この命令は、下記の処理を意味する。
【０１０１】
add Ri offset1, offset2, offset3 = QT+offset1 ← (QH(1) + offset2) + (QH(2) + offset3)
本実施形態においては、offset1の値は「１」であり、offset2の値は「２」であり、offset3の値は「３」である。
【０１０２】
以上の第３実施形態によれば、演算データの中間結果格納用にキューを使用し、演算処理を行うためのプログラムにおいて消費する２つのデータの位置および演算結果を格納する位置をそれぞれオフセットを利用して示しているため、消費順と異なる順序でデータが取り出され生産順と異なる順序で演算結果を格納されるのでより柔軟なプログラミングが可能になる。
【０１０３】
上記の第１実施形態〜第３実施形態のキュー内において、キューヘッドＱＨおよびキューテールＱＴを同一のワード０を指定するように固定すれば、offset1, offset2,およびoffset3はレジスタ名と同じ意味を持ち、一般のレジスタプロセッサと同様の構成に切り替えることができる。
【０１０４】
このとき、コンテキスト切り替え時にキューヘッドＱＨおよびキューテールＱＴを１レジスタ群分動かすのみでレジスタの退避および新たな割り当てができるため、コンテキスト切り替えを高速に行うことが可能である。
【０１０５】
《第４実施形態》
本発明の第４実施形態によるキュープロセッサに用いるデータ処理プログラムは、中間結果格納用として複数のキューを用いたオフセット数が３つの生産順序型と消費順序型の混合キュー計算モデルを用いたものである。
【０１０６】
〈第４実施形態によるキュープロセッサの構成〉
本実施形態によるキュープロセッサ２の構成を、図５を用いて説明する。
【０１０７】
本実施形態によるキュープロセッサ１は、命令メモリ（ＩＭ）１１と、フェッチユニット（ＦＵ）１２と、命令解釈ユニット（ＤＵ）１３と、キュー計算ユニット（ＱＣＵ）１４と、バリヤ・キュー制御ユニット（ＢＱＵ）１５と、発行ユニット（ＩＵ）１６と、実行ユニット（ＥＵ）１７と、第１演算データ格納用キュー１８と、第２演算データ格納用キュー１９と、第３演算データ格納用キュー２０と、第４演算データ格納用キュー２１と、データメモリ（ＤＭ）２２と、フェッチバッファ（ＦＢ）２３と、デコードバッファ（ＤＢ）２４と、キュー計算バッファ（ＱＢ）２５とを有する。また、命令メモリ（ＩＭ）１１と、データメモリ（ＤＭ）２２とで外部メモリ（主メモリ）を構成する。
【０１０８】
命令メモリ（ＩＭ）１１〜第１演算データ格納用キュー１８、およびデータメモリ（ＤＭ）２２〜キュー計算バッファ（ＱＢ）２５の機能は、第１実施形態と同様であるため詳細な説明は省略する。
【０１０９】
また、第２演算データ格納用キュー１９、第３演算データ格納用キュー２０、および第４演算データ格納用キュー２１の機能は、第１演算データ格納用キュー１８と同様であり、演算に用いるデータおよび演算結果を演算中に格納する中間結果格納用メモリである。
【０１１０】
第１演算データ格納用キュー１８〜第４演算データ格納用キュー２１は、各々が実行ユニット（ＥＵ）１７とのアクセスが可能であり、また、第１演算データ格納用キュー１８〜第４演算データ格納用キュー２１間におけるアクセスも可能である。
【０１１１】
〈第４実施形態によるキュープロセッサの動作〉
本実施形態によるキュープロセッサ２の動作について説明する。
【０１１２】
プログラムの実行が開始され、命令メモリ１１から命令群がフェッチユニット１２によりフェッチされてから実行ユニット１７において演算命令が実行されるまでの処理は第１実施形態と同様であるため、詳細な説明は省略する。
【０１１３】
実行ユニット１７において得られた中間結果データは、第１演算データ格納用キュー１８〜第４演算データ格納用キュー２１のいずれかに格納される。
【０１１４】
第１演算データ格納用キュー１８〜第４演算データ格納用キュー２１のいずれかに格納されたデータを用いて、格納された順番と異なる消費順でさらに演算処理が行われ、この演算処理で生産されたデータが生産順と異なる順番で格納される場合について説明する。
【０１１５】
図６は第１演算データ格納用キュー１８〜第４演算データ格納用キュー２１であり、ＱＨ(1)〜ＱＨ(4)はそれぞれ第１演算データ格納用キュー１８〜第４演算データ格納用キュー２１においてデータが取り出される前のキューヘッドを示し、ＱＴ(1)〜ＱＴ(4)はそれぞれ第１演算データ格納用キュー１８〜第４演算データ格納用キュー２１において演算結果格納前のキューテールを示す。
【０１１６】
本実施形態においては、図６の第１演算データ格納用キュー１８内のデータＡおよび第３演算データ格納用キュー２０内のデータＢの位置を各キューのキューヘッドＱＨからのオフセットを利用して特定し、この２つのデータを加算して第４演算データ格納用キュー２１内のキューテールＱＴからのオフセットを利用して特定される位置に格納する演算を行う場合のプログラムについて説明する。
【０１１７】
ここで、プログラム内においては第１演算データ格納用キュー１８を「Ri」、第２演算データ格納用キュー１９を「Rj」、第３演算データ格納用キュー２０を「Rk」、第４演算データ格納用キュー２１を「Rl」とする。
【０１１８】
図６に示すように、第１演算データ格納用キュー１８内において、データＡは第１演算データ格納用キュー１８（Ri）内のキューヘッドＱＨ(1)から２ワード離れた位置に格納されており、また、データＢは第３演算データ格納用キュー２０（Rk）内のキューヘッドＱＨ(3)から３ワード離れた位置に格納されている。
【０１１９】
また、データＡとデータＢとを加算した結果は第４演算データ格納用キュー２１（Rl）内のキューテールＱＴ(4)から１ワード離れた位置に格納するため、データＡ、データＢおよび演算結果の格納位置がオフセットが利用されて、命令「add Rl offset1, Ri offset2, Rk offset3」のみで表すことができる。
【０１２０】
この命令は、下記の処理を意味する。
【０１２１】
add Rl offset1, Ri offset2, Rk offset3 = Rl QT(4)+offset1 ← Ri (QH(1) + offset2) + Rk(QH(3) + offset3)
本実施形態においては、offset1の値は「１」であり、offset2の値は「２」であり、offset3の値は「３」である。
【０１２２】
以上の第４実施形態によれば、演算データの中間結果格納用に複数のキューを使用し、演算処理を行うためのプログラムにおいて消費する２つのデータの位置および格納する位置をそれぞれのキュー内におけるオフセットを利用して示しているため、消費順と異なる順序でデータが取り出され生産順と異なる順序で演算結果を格納する複数のキューにまたがる演算命令を短く簡単なプログラムで記述することができ、高速な演算処理を実行することができる。
【０１２３】
本実施形態においては、消費する２つのデータの位置および格納するデータの位置を３つのオフセットを利用して示したが、第１実施形態または第２実施形態のように２つのオフセットを利用して複数のキューを用いて演算処理を行うようにしてもよい。
【０１２４】
また、オフセットを１つまたは０個設定して複数のキューを用いて演算処理を行うようにしてもよい。
【０１２５】
また、データを任意のキューに格納しても良いし任意のキューから取り出すこともできる。
【０１２６】
本実施形態における複数のキューの各キュー内において、キューヘッドＱＨおよびキューテールＱＴのワードを固定し、offset1, offset2,およびoffset3を一定値とするように切り替えれば、一般のレジスタプロセッサと同様の構成になる。
【０１２７】
このとき、コンテキスト切り替え時にキューヘッドＱＨおよびキューテールＱＴをそれぞれ１ワード分動かすか、それぞれのオフセット値を１増やせばレジスタの退避および新たな割り当てができるため、コンテキスト切り替えを高速に行うことが可能である。
【０１２８】
またこのとき、キューヘッドＱＨおよびキューテールＱＴのワードのみを固定しオフセットの値は固定しないように設定してもよく、オフセットを一定値に固定するか否かの設定はプログラムにより切り替え可能である。
【図面の簡単な説明】
【０１２９】
【図１】本発明の第１実施形態によるキュープロセッサの構成を示すブロック図である。
【図２】本発明の第１実施形態によるキュープロセッサの演算データ格納用キューにおいて、演算処理が行われるときの動作を示す説明図である。
【図３】本発明の第１実施形態によるキュープロセッサの演算データ格納用キューにおいて、演算処理が行われるときの動作を示す説明図である。
【図４】本発明の第１実施形態によるキュープロセッサの演算データ格納用キューにおいて、演算処理が行われるときの動作を示す説明図である。
【図５】本発明の第２実施形態によるキュープロセッサの構成を示すブロック図である。
【図６】本発明の第２実施形態によるキュープロセッサの演算データ格納用キューにおいて、演算処理が行われるときの動作を示す説明図である。
【符号の説明】
【０１３０】
１…キュープロセッサ
２…キュープロセッサ
１１…命令メモリ
１２…フェッチユニット
１３…命令解釈ユニット
１４…キュー計算ユニット
１５…バリヤ・キュー制御ユニット
１６…発行ユニット
１７…実行ユニット
１７ａ…第１実行ユニット
１７ｂ…第２実行ユニット
１７ｃ…第３実行ユニット
１８…第１演算データ格納用キュー
１９…第２演算データ格納用キュー
２０…第３演算データ格納用キュー
２１…第４演算データ格納用キュー
２２…データメモリ
２３…フェッチバッファ
２４…デコードバッファ
２５…キュー計算バッファ
【図１】
2008204262.tif 000003
【図２】
2008204262.tif 000004
【図３】
2008204262.tif 000005
【図４】
2008204262.tif 000006
【図５】
2008204262.tif 000007
【図６】
2008204262.tif 000008