(57)【要約】【課題】面積及び消費電力をほとんど増大させることなく、演算アレイの稼働率を向上させるプロセッサ装置を提供する。【解決手段】プロセッサ装置は、命令メモリ１０に格納された命令コードをデコードするシーケンスコントローラ２０と、デコードされた命令コードを実行演算する演算アレイ２１と、非同期ＦＩＦＯ１２とを備える。非同期ＦＩＦＯ１２は、命令コードを少なくとも１つの命令にシーケンスコントローラ２０によりデコードするためのデコードステージと、デコードされた命令を演算アレイ２１により実行するための実行ステージとの間において、デコードされた命令の読み出しタイミングと実行タイミングとが互いに異なりかつデコードされた命令が演算アレイ２１において連続的に実行されるように制御する。【選択図】図１
2009076058.tif 000002
【特許請求の範囲】
【請求項１】
命令メモリに格納された命令コードをデコードするシーケンスコントローラと、上記デコードされた命令コードを実行演算する演算部とを備えたプロセッサ装置において、
上記命令コードを少なくとも１つの命令に上記シーケンスコントローラによりデコードするためのデコードステージと、上記デコードされた命令を上記演算部により実行するための実行ステージとの間において、上記デコードされた命令の読み出しタイミングと実行タイミングとが互いに異なりかつ上記デコードされた命令が上記演算部において連続的に実行されるように制御する演算コントローラを備えたことを特徴とするプロセッサ装置。
【請求項２】
上記演算コントローラは、上記シーケンスコントローラの動作周波数が上記演算部の動作周波数よりも高くなるように設定された非同期ＦＩＦＯを含むことを特徴とする請求項１記載のプロセッサ装置。
【請求項３】
上記演算コントローラは、メモリを含み、
上記シーケンスコントローラは、上記デコードされた命令を上記メモリに一旦格納し、
上記演算部は、上記メモリに格納された命令を連続的に読み出して実行することを特徴とする請求項１記載のプロセッサ装置。
【請求項４】
ダイレクトメモリアクセスにより上記メモリに格納された命令を上記演算部に転送するダイレクトメモリアクセスコントローラをさらに備え、
上記シーケンスコントローラと上記演算部と上記ダイレクトメモリアクセスコントローラと上記メモリとは互いにバスで接続されることを特徴とする請求項３記載のプロセッサ装置。
【請求項５】
上記演算コントローラは、１サイクルで複数の上記デコードされた命令を入力し、上記入力された命令を順次連続的に上記演算部に出力するＦＩＦＯを含むことを特徴とする請求項１記載のプロセッサ装置。
【請求項６】
上記演算コントローラは、上記デコードされた命令に基づいて複数の命令を生成し、上記生成された命令を順次連続的に上記演算部に出力するプログラマブルロジックコントローラを含むことを特徴とする請求項１記載のプロセッサ装置。
【請求項７】
上記プログラマブルロジックコントローラはシーケンサであることを特徴とする請求項６記載のプロセッサ装置。
【請求項８】
上記プロセッサ装置はＳＩＭＤプロセッサ装置であることを特徴とする請求項１乃至７のうちのいずれか１つに記載のプロセッサ装置。
【請求項９】
上記演算部はＣＰＵのデータパス部であることを特徴とする請求項１乃至７のうちのいずれか１つに記載のプロセッサ装置。
【請求項１０】
上記演算部はデジタルシグナルプロセッサ（ＤＳＰ）であることを特徴とする請求項５又は７記載のプロセッサ装置。
【請求項１１】
上記演算部は複数のプロセッシングエレメント（ＰＥ）であることを特徴とする請求項８記載のプロセッサ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサ装置に関し、特に、大容量メモリに対してデータ処理を行う大規模プロセッサ装置に関する。
【背景技術】
【０００２】
近年、携帯端末機器の普及に伴い、大量の音声データ及び画像データを高速に処理するデジタル信号処理の重要性が高まりつつある。一般的にデジタル信号処理には専用の半導体装置としてＤＳＰ（Digital Signal Processor）が用いられるが、処理対象のデータが非常に多い場合、複数の演算器を同時に動作させる並列演算を行うことによって処理時間を短縮することができる。特に、複数のデータに対して同じ演算を行う場合には、ＳＩＭＤ（Single Instruction stream Multiple Data stream：単一命令流複数データ流）方式を用い、複数のデータ処理器に対して、命令を解釈して処理を制御するコントローラを共通にすることで、高い並列性を保ちつつ演算器の面積を削減できる。また、処理データが多く、非常に多くの加算又は乗算動作を行う場合は、加算動作を、ビットシリアル演算（１つのデータを複数部分に分けて、それらに対して順番に演算を行う演算方法。）で行う方が面積当たりの性能が向上する。そのため、１ビット又は２ビットのシリアル演算に基づくＳＩＭＤ方式を用いることが望ましい。このように、データメモリアクセスを伴うデータ処理速度が重要となる、大容量ＳＲＡＭを有する大規模ＳＩＭＤプロセッサでは、１つのコントローラで複数の演算アレイを制御することから、プロセッサ全体の面積に対する演算アレイの面積の割合が大きく、面積当たりのプロセッサの性能又は消費電力当たりの性能を高めることができる。このようなＳＩＭＤ演算器として特許文献１に記載がある。
【０００３】
【特許文献１】特開平６−９６２４０号公報。
【特許文献２】特開平９−２２３７９号公報。
【特許文献３】米国特許第７０６９４２３号の明細書。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
図２３は発明者が検討を行った超並列ＳＩＭＤプロセッサの処理部構成を示すパイプライン図である。図２３において、命令フェッチ（以下、ＩＦという。）ステージにおいて、命令メモリ１０の命令コードをフェッチする。シーケンスコントローラ１００によるデコードステージ及び実行コントロール処理において、フリップフロップ（以下、ＦＦという。）１１を介して命令メモリ１０から読み出された命令コードに対して、所定の処理Ｐ１を行うことによってシーケンスコントローラ１００で処理可能な形式の命令にデコードし、デコードされた命令をレジスタ１３及び演算装置（以下、ＡＬＵという。）１４に出力するとともに、ＦＦ１０２を介してレジスタ１５及びＡＬＵ１６に出力する。レジスタ１３及びＡＬＵ１４は、入力された命令に基づいて演算処理を行う。また複数のプロセッシングエレメント（ＰＥ）により構成される演算アレイ１０１による実行ステージ処理において、レジスタ１５及びＡＬＵ１６は、入力された命令に基づいて演算処理を行う。
【０００５】
ここで、上記シーケンスコントローラ１００に対する命令の具体的内容を以下に示す。
（Ａ）シーケンスコントローラ１００に対して制御を行う命令：
（ａ）ループを含むシーケンス制御；
（ｂ）ＤＭＡ起動を含む割り込み信号の発生；及び
（ｃ）演算アレイ１０１のポインタの生成。
（Ｂ）演算アレイ１０１に対して制御を行う命令：
（ａ）演算アレイ１０１に対する命令、及びポインタの発行。
【０００６】
なお、「シーケンスコントローラ１００に対して制御を行う命令」、「演算アレイ１０１に対して制御を行う命令」はともに、実行するのに複数サイクルを要する命令が存在する。このため、これらの命令は、命令フォーマットでは以下の組合せが許されている。
（ａ）「シーケンスコントローラ１００に対して制御を行う命令」と「演算アレイ１０１に対して制御を行う命令」の並列動作；
（ｂ）「シーケンスコントローラ１００に対して制御を行う命令」の単独動作；及び
（ｃ）「演算アレイ１０１に対して制御を行う命令」の単独動作。
【０００７】
上記ＳＩＭＤプロセッサにおいて、「シーケンスコントローラ１００に対して制御を行う命令」が実行された場合は、演算アレイ１０１は実行されない。この場合、図２４から明らかなように、演算アレイ１０１において命令を実行しない時間期間（空き時間）が出現しており、このため、演算アレイ１０１の稼働率が低くなり、プロセッサチップにおいて単位面積当たりの性能が低くなるという問題点があった。具体的には、株式会社ルネサステクノロジが開発した超並列ＳＩＭＤプロセッサＭＸ−１の場合、ＦＩＲ（Finite Impulse Response:有限インパルス応答）フィルタ及びメディアンフィルタの演算アレイの稼働率はそれぞれ７４％及び５０％であった。
【０００８】
演算アレイ１０１の単位面積当たりの性能を向上させるためには、プロセッサの動作周波数を向上させることが効果的であるが、大規模プロセッサにおける大規模メモリへのアクセスには時間が掛かるため困難である。そこで、大規模であるが低速であるメモリと、小規模であるが高速であるメモリとを組み合せてメモリの階層化を行い（図２５参照。）、プロセッサに近い所には小規模であるが高速であるメモリを用いた上で、プロセッサの動作周波数を向上させる方法が考えられる。しかし、この場合、複数のメモリを必要とし、さらに、演算アレイ１０１も高い動作周波数で動作しなければならないことからパイプラインレジスタの挿入が必要となり、プロセッサ全体の面積及び消費電力が増大する。
【０００９】
また、特許文献２及び３においては、ＣＰＵコアとともにＤＳＰエンジンを１つのＬＳＩに搭載したマイクロコンピュータ（又はマイクロプロセッサ）について開示しているが、上述のＳＩＭＤプロセッサと同様の問題点を有していた。
【００１０】
本発明の目的は、以上の問題点を解決し、面積及び消費電力をほとんど増大させることなく、演算アレイなどの演算部の稼働率を向上させるプロセッサ装置を提供することにある。
【課題を解決するための手段】
【００１１】
本発明に係るプロセッサ装置は、命令メモリに格納された命令コードをデコードするシーケンスコントローラと、上記デコードされた命令コードを実行演算する演算部とを備えたプロセッサ装置において、上記命令コードを少なくとも１つの命令に上記シーケンスコントローラによりデコードするためのデコードステージと、上記デコードされた命令を上記演算部により実行するための実行ステージとの間において、上記デコードされた命令の読み出しタイミングと実行タイミングとが互いに異なりかつ上記デコードされた命令が上記演算部において連続的に実行されるように制御する演算コントローラを備えたことを特徴とする。
【００１２】
上記プロセッサ装置において、上記演算コントローラは、上記シーケンスコントローラの動作周波数が上記演算部の動作周波数よりも高くなるように設定された非同期ＦＩＦＯを含むことを特徴とする。
【００１３】
とって代わって、上記プロセッサ装置において、上記演算コントローラは、メモリを含み、上記シーケンスコントローラは、上記デコードされた命令を上記メモリに一旦格納し、上記演算部は、上記メモリに格納された命令を連続的に読み出して実行することを特徴とする。ここで、ダイレクトメモリアクセスにより上記メモリに格納された命令を上記演算部に転送するダイレクトメモリアクセスシーケンスコントローラをさらに備え、上記シーケンスコントローラと上記演算部と上記ダイレクトメモリアクセスシーケンスコントローラと上記メモリとは互いにバスで接続されることを特徴とする。
【００１４】
とって代わって、上記プロセッサ装置において、上記演算コントローラは、１サイクルで複数の上記デコードされた命令を入力し、上記入力された命令を順次連続的に上記演算部に出力するＦＩＦＯを含むことを特徴とする。
【００１５】
とって代わって、上記プロセッサ装置において、上記演算コントローラは、上記デコードされた命令に基づいて複数の命令を生成し、上記生成された命令を順次連続的に上記演算部に出力するプログラマブルロジックシーケンスコントローラを含むことを特徴とする。ここで、上記プログラマブルロジックコントローラはシーケンサである。
【００１６】
また、上記プロセッサ装置はＳＩＭＤプロセッサ装置であることを特徴とする。とって代わって、上記演算部はＣＰＵのデータパス部であることを特徴とする。もしくは、上記演算部はデジタルシグナルプロセッサ（ＤＳＰ）であることを特徴とする。さらに、上記演算部は複数のプロセッシングエレメント（ＰＥ）であることを特徴とする。
【発明の効果】
【００１７】
本発明に係るプロセッサ装置によれば、命令メモリに格納された命令コードをデコードするシーケンスコントローラと、上記デコードされた命令コードを実行演算する演算部とを備えたプロセッサ装置において、上記命令コードを少なくとも１つの命令に上記シーケンスコントローラによりデコードするためのデコードステージと、上記デコードされた命令を上記演算部により実行するための実行ステージとの間において、上記デコードされた命令の読み出しタイミングと実行タイミングとが互いに異なりかつ上記デコードされた命令が上記演算部において連続的に実行されるように制御する演算コントローラを備えたことを特徴としている。例えば、プロセッサ装置のシーケンスコントローラと演算部との間に非同期ＦＩＦＯを挿入して設け、シーケンスコントローラと演算部とを並列動作させることで、演算部の稼働率を上げ、実行サイクル数の減少させることでプロセッサ装置全体の性能を向上させることができる。特に、大規模ＳＩＭＤプロセッサ装置においては、演算部は大規模な演算アレイとなっており、当該プロセッサ装置内の面積が支配的であり、演算アレイの稼働率向上はきわめて重要な課題である。
【００１８】
ここで、シーケンスコントローラの周波数を演算部に比べ高くした場合には、図４に示すように、シーケンスコントローラの周波数を演算部よりも速くするように設定することで、演算部の稼働率が向上させることが可能となる。この場合、シーケンスコントローラと演算部の間のＦＩＦＯは非同期ＦＩＦＯである。このとき、シーケンスコントローラの面積は、当該プロセッサ装置全体に比較して、割合が小さいことから、周波数向上に伴うシーケンスコントローラの消費電力の向上は、プロセッサの性能向上に比較して、影響は小さい。
【００１９】
また、演算部の命令が処理を実行するのに複数サイクルを要する場合には、例えば、図１９に示すように、シーケンスコントローラと演算部の動作を並列に動作させることが可能となり、シーケンスコントローラが単独で実行されるサイクルが減少し、演算部の稼働率が向上する。その結果、実行サイクル数を減少させ、プロセッサの性能も向上させることができる。具体的には、株式会社ルネサステクノロジが開発した超並列ＳＩＭＤプロセッサＭＸ−１に本発明を適用した場合、ＦＩＲフィルタとメディアンフィルタの性能をそれぞれ１．３５倍、１．５倍に向上させることができた。
【発明を実施するための最良の形態】
【００２０】
以下、本発明に係る実施の形態について図面を参照して説明する。なお、以下の各実施の形態において、同様の構成要素については同一の符号を付している。
【００２１】
実施の形態１．
図１は本発明の実施の形態１に係るＳＩＭＤプロセッサ２００の構成を示すブロック図である。図１のＳＩＭＤプロセッサ２００は、大容量ＳＲＡＭを含む演算アレイ２１を備えた大規模ＳＩＭＤプロセッサであって、所定の演算及び制御などの処理を行うＣＰＵ１と、ＣＰＵ１により実行されるプログラムを格納するプログラムＲＯＭ２と、ＣＰＵ１への割り込みを制御する割り込みコントローラ３と、ＣＰＵ１の時間管理を行うタイマーコントローラ４と、命令メモリ１０を含むシーケンスコントローラ２０と、演算アレイ２１と、ＳＤ（Secure Digital）カードインターフェース６と、ＬＣＤ（Liquid Crystal Display）インターフェース７と、ＳＤＲＡＭ（Synchronous Dynamic RAM）コントローラ８と、ダレクトメモリアクセスコントローラ（以下、ＤＭＡＣ（Direct Memory Access Controller）という。）９とがバス５を介して接続されて構成されている。ここで、図１のＳＩＭＤプロセッサ２００は特に、シーケンスコントローラ２０と演算アレイ２１との間に非同期ＦＩＦＯ（Fist-In First-Out）メモリ（以下、ＦＩＦＯメモリを「ＦＩＦＯ」という。）１２を挿入したことを特徴としている。
【００２２】
なお、ＳＤカードインターフェース６にはＳＤカード６ａが接続され、ＬＣＤインターフェース７にはＬＣＤ７ａが接続され、ＳＤＲＡＭインターフェース８にはＳＤＲＡＭ８ａが接続されている。なお、ＤＭＡＣ９はプロセッサ２００内のデータをＳＤＲＡＭ８ａに転送するためのコントローラである。
【００２３】
図２は図１の超並列ＳＩＭＤプロセッサ２００におけるシーケンスコントローラ２０、非同期ＦＩＦＯ１２及び演算アレイ２１の部分の詳細構成を示すブロック図である。図２において、シーケンスコントローラ２０と演算アレイ２１との間に非同期ＦＩＦＯ１２が挿入されるように設けられ、演算アレイ２１は、データレジスタとして用いられ２個のメモリバンクＭ０，Ｍ１に分割された大容量シングルポートＳＲＡＭと、例えば２０４８個の２ビットプロセッシングエレメント（以下、ＰＥという。）１７からなるＰＥアレイ１７Ａと、メモリバンクＭ０とＰＥアレイ１７Ａとの間に接続される２０４８本の水平チャネルバス１８ｈと、ＰＥ相互間を接続するための４０９６本の垂直チャネルバス１８ｖと、水平チャネルバス１８ｈと垂直チャネルバス１８ｈとの各交差点に設けられたスイッチトランジスタ１９とを備えて構成される。ここで、水平チャネルバス１８ｈは、各ＰＥ１７とデータレジスタ間でデータ転送を行うための接続経路であって、演算の基本経路となる。水平チャネルバス１８ｈでのデータ転送は相互に干渉することなく、１クロックで行われる。また、垂直チャネルバス１８ｖは、ＰＥ１７とＰＥ１７との間でデータ転送するための接続経路であって、一定の距離にあるＰＥ１７とＰＥ１７との間で並列にデータ転送を行うことができ、当該データ転送経路によりデジタル信号処理演算で多用されるバタフライ演算を高い効率で処理することができる。
【００２４】
図３は図１のＳＩＭＤプロセッサ２００の処理部構成を示すパイプライン図である。当該処理部は、命令メモリ１０及びＦＦ１１を含むシーケンスコントローラ２０と、複数のＡＬＵ１４，１６及びレジスタ１３，１５を含む演算アレイ２１と、非同期ＦＩＦＯ１２とを備えて構成される。レジスタ１５はＳＲＡＭに対応し、ＡＬＵ１６はＰＥに対応する。ここで、命令メモリ１０、ＦＦ１１及び非同期ＦＩＦＯ１２は制御処理部を構成し、レジスタ１３，１５及びＡＬＵ１４，１６は演算処理を実行するための実行処理部を構成する。
【００２５】
ＩＦステージにおいて、命令メモリ１０に命令コードをフェッチする。シーケンスコントローラ２０によるデコードステージ及び実行コントロール処理において、ＦＦ１１を介して命令メモリ１０から読み出された命令コードに対して、所定の処理Ｐ１を行うことによってシーケンスコントローラ２０で処理可能な形式の命令にデコードし、当該命令がシーケンスコントローラ２０に対して制御を行う命令であるか、演算アレイ２１に対して制御を行う命令であるかを判断する。命令がシーケンスコントローラ２０で動作すべきものであるとき、レジスタ１３及びＡＬＵ１４に出力され、命令が演算アレイ２１で動作すべきものであるとき、非同期ＦＩＦＯ１２を介してレジスタ１５及びＡＬＵ１６に出力される。レジスタ１３及びＡＬＵ１４は、入力された命令に基づいて加算及び乗算等の演算処理を行う。演算アレイ２１による実行ステージ処理において、レジスタ１５及びＡＬＵ１６は、入力された命令に基づいて加算及び乗算等の演算処理を行う。本実施の形態において、シーケンスコントローラ２０と演算アレイ２１とは、同時に動作することが可能である。
【００２６】
非同期ＦＩＦＯ１２は、シーケンスコントローラ２０と演算アレイ２１との間に設けられ、複数段のフリップフロップで構成される。非同期ＦＩＦＯ１２において、シーケンスコントローラ２０の動作周波数が演算アレイ２１の動作周波数に対して高くなるように設定される。非同期ＦＩＦＯ１２の段数は、適用するアプリケーションによって、演算アレイ２１への命令の供給と演算アレイ２１での命令の消費との関係に応じて、シーケンスコントローラ２０と演算アレイ２１とが最も効率的に動作するように決定されるが、一般的には２段以上が適当であって、より好ましくは４〜８段が適当である。非同期ＦＩＦＯ１２に入力された命令は、非同期ＦＩＦＯ１２を構成するフリップフロップの段数に応じたサイクル分だけ遅延された後、先入れ先出し（ＦＩＦＯ：First-In First-Out）方式でレジスタ１５及びＡＬＵ１６に出力される。
【００２７】
図４は図１のＳＩＭＤプロセッサ２００における命令処理を示すシーケンス図である。ＳＩＭＤプロセッサ２００の動作には、「シーケンスコントローラ２０に対して制御を行う命令（命令Ｃ１，Ｃ２，…）」に係る動作と、「演算アレイ２１に対して制御を行う命令（命令Ａ１，Ａ２，…）」に係る動作の２種類がある。シーケンスコントローラ２０から演算アレイ２１へ命令が供給されるのは、「演算アレイ２１に対して制御を行う命令（命令Ａ１，Ａ２，…）」の場合のみである。従って、シーケンスコントローラ２０から毎サイクル、演算アレイ２１へ命令が供給されるわけではない。ここで、非同期ＦＩＦＯ１２において、シーケンスコントローラ２０の動作周波数が演算アレイ２１の動作周波数より高くなるように設定されているので、サイクル当たりの演算アレイ２１への命令の供給と演算アレイ２１での命令の消費とを同程度にし、命令が演算アレイ２１において連続的に実行されるように制御される。これにより、演算アレイ２１の稼働率を従来技術に比較して高くすることができる。なお、シーケンスコントローラ２０のプロセッサ全体に対する面積の割合は小さく、シーケンスコントローラ２０の消費電力は支配的ではないので、シーケンスコントローラ２０の動作周波数を高く設定することによってプロセッサ全体の消費電力の増加はほとんどない。
【００２８】
具体的には、株式会社ルネサステクノロジが開発した超並列ＳＩＭＤプロセッサＭＸ−１に本実施の形態に係るプロセッサを適用した場合、ＦＩＲフィルタ及びメディアンフィルタの演算アレイの稼働率はそれぞれ１．３５倍及び１．５倍となった。
【００２９】
以上説明したように、本実施の形態に係るプロセッサによれば、シーケンスコントローラ２０と演算アレイ２１との間に非同期ＦＩＦＯ１２を設け、シーケンスコントローラ２０の動作周波数を演算アレイ２１の動作周波数よりも高く設定することにより、シーケンスコントローラ２０の単独動作のサイクル数を減少させることができ、演算アレイ２１の稼働率を従来技術に比較して向上させることができる。演算アレイ２１の稼働率を向上させることにより、従来技術に比較して演算処理を高速化できる。
【００３０】
以上の実施の形態においては、非同期ＦＩＦＯ１２を例えばフリップフロップで構成しているが、本発明はこれに限らず、デュアルポートメモリで構成してもよい。
【００３１】
実施の形態２．
図５は本発明の実施の形態２に係るＳＩＭＤプロセッサ２００Ａの構成を示すブロック図である。図５において、図１に示した実施の形態１に係るプロセッサ２００と比較して、非同期ＦＩＦＯ１２に代えてメモリ１２Ａを備えた点が異なる。それ以外の点については、図１に示した実施の形態１に係るプロセッサ２００と同様であり、同一符号を付した構成要素についての重複する説明は省略する。
【００３２】
図６は図５のＳＩＭＤプロセッサ２００Ａの処理部構成を示すパイプライン図である。図６において、メモリ１２Ａは、例えばシングルポートメモリであり、デコードされた命令をアプリケーション実行前にシーケンスコントローラ２０により一旦格納する。メモリ１２Ａに格納された命令は、アプリケーション実行時に順次演算アレイ２１により読み出されて実行される。これにより、アプリケーション実行時のシーケンスコントローラ２０のデコード処理を簡略化でき、演算アレイ２１はサイクル毎に連続的に命令を実行することができる。なお、本実施の形態においては、実施の形態１とは異なり、シーケンスコントローラ２０と演算アレイ２１とが同時に動作することはできない。
【００３３】
図７は図５のＳＩＭＤプロセッサ２００Ａにおける命令処理を示すシーケンス図である。図７において、アプリケーション実行前に、シーケンスコントローラ２０は、演算アレイ２１に対して制御を行う命令Ａ１，Ａ２，…をメモリ１２Ａに一旦格納する。演算アレイ２１は、アプリケーション実行時、メモリ１２Ａに格納された各命令Ａ１，Ａ２，…を順次連続的に読み出して実行する。
【００３４】
以上説明したように、本実施の形態に係るプロセッサによれば、シーケンスコントローラ２０と演算アレイ２１との間にメモリ１２Ａを設け、アプリケーション実行前にシーケンスコントローラ２０により命令Ａ１，Ａ２，…をメモリ１２Ａに一旦格納して、アプリケーション実行時に、格納された命令Ａ１，Ａ２，…を演算アレイ２１により読み出して実行するので、シーケンスコントローラ２０の単独動作のサイクル数を減少させることができる。これにより、演算アレイ２１は連続的に命令を処理することができ、演算アレイ２１の稼働率を従来技術に比較して向上させることができる。
【００３５】
実施の形態３．
図８は本発明の実施の形態３に係るＳＩＭＤプロセッサ２００Ｂの構成を示すブロック図である。図８において、本実施の形態に係るプロセッサは、図５に示した実施の形態２に係るプロセッサ２００Ａと比較して、メモリ１２Ａに代えてメモリ１２Ｍを設け、ダイレクトメモリアクセスコントローラ（以下、ＤＭＡＣ（Direct Memory Access Controller）という。）２２をさらに備え、シーケンスコントローラ２０と演算アレイ２１とメモリ１２ＭとＤＭＡＣ２２とが、互いにバス５で接続された点が異なる。それ以外の点については、図５に示した実施の形態２に係るプロセッサ２００Ａと同様であり、同一符号を付した構成要素についての重複する説明は省略する。
【００３６】
アプリケーション実行前に、シーケンスコントローラ２０は、演算アレイ２１に対して制御を行う命令Ａ１，Ａ２，…を、バス５を介してメモリ１２Ａに一旦格納する。アプリケーション実行時、ＤＭＡＣ２２は、メモリ１２Ａに格納された命令をダイレクトメモリアクセス（ＤＭＡ：Direct Memory Access）によりバス５を介して演算アレイ２１に転送する。これにより、演算アレイ２１への命令の転送を高速化できる。
【００３７】
以上説明したように、本実施の形態に係るプロセッサによれば、ＤＭＡＣ２２をさらに備え、シーケンスコントローラ２０と演算アレイ２１とメモリ１２ＡとＤＭＡＣ２２とが互いにバス５で接続されるので、実施の形態２に係るプロセッサと比較して演算アレイ２１への命令の転送を高速化できる。また、デコードされたデータをメモリ１２Ｍに保持しておくことで、毎サイクル命令発行することができ、シーケンスコントローラ２０の単独動作のサイクル数が減少し、これにより、演算アレイ２１の稼働率を上げることが可能となる。
【００３８】
実施の形態４．
図９は本発明の実施の形態４に係るＳＩＭＤプロセッサ２００Ｃの構成を示すブロック図である。図９において、図１に示した実施の形態１に係るプロセッサ２００と比較して、シーケンスコントローラ２０に代えてシーケンスコントローラ２０Ａを備えた点、及び、非同期ＦＩＦＯ１２に代えてＦＩＦＯ１２Ｂを備えた点が異なる。それ以外の点については、図１に示した実施の形態１に係るプロセッサ２００と同様であり、同一符号を付した構成要素についての重複する説明は省略する。
【００３９】
図１０は図９のＳＩＭＤプロセッサ２００Ｃの処理部構成を示すパイプライン図である。図１０において、シーケンスコントローラ２０Ａは、実施の形態１のシーケンスコントローラ２０と比較して、デコードした命令を２つずつＦＩＦＯ１２Ｂに出力する点のみが異なる。また、ＦＩＦＯ１２Ｂは、４段のフリップフロップで構成され、１サイクルで２つの命令を入力することができる。ＦＩＦＯ１２Ｂに格納された命令は、ＦＩＦＯ方式により１命令ずつ連続的にレジスタ１５及びＡＬＵ１６に供給される。
【００４０】
図１１は図９のＳＩＭＤプロセッサにおける命令処理を示すシーケンス図である。図１１において、ＦＩＦＯ１２Ｂは、演算アレイ２１で動作すべき２つの命令Ａ１，Ａ２を同時に入力し、入力された命令を１命令ずつ順次連続的に演算アレイ２１に出力する。従って、シーケンスコントローラ２０Ａに対して制御を行う命令Ｃ１，Ｃ２，…がある場合でも、演算アレイ２１への命令が供給と演算アレイ２１での命令の消費とを同程度にすることができる。
【００４１】
以上説明したように、本実施の形態に係るプロセッサによれば、シーケンスコントローラ２０Ａと演算アレイ２１との間に１サイクルで２つの命令を入力できるＦＩＦＯ１２Ｂを設けたので、シーケンスコントローラ２０の単独動作のサイクル数を減少させることができる一方、演算アレイ２１は連続的に命令を処理することができ、演算アレイ２１の稼働率を従来技術に比較して向上させることができる。
【００４２】
なお、本実施の形態において、ＦＩＦＯ１２Ｂは１サイクルで２つの命令を入力したが、本発明はこれに限らず、１サイクルで３つ以上の命令を入力する構成としてもよい。また、ＦＩＦＯ１２Ｂは、４段のフリップフロップにより構成されたが、本発明はこれに限らず、２以上の複数段のフリップフロップにより構成されてもよい。
【００４３】
実施の形態５．
図１２は本発明の実施の形態５に係るＳＩＭＤプロセッサの処理部構成を示すパイプライン図である。図１２において、図３に示した実施の形態１に係るプロセッサ２００と比較して、シーケンスコントローラ２０に代えてシーケンスコントローラ２０Ａを備えた点、及び、非同期ＦＩＦＯ１２に代えてＦＩＦＯ１２Ｃを備えた点が異なる。それ以外の点については、図３に示した実施の形態１に係るプロセッサ２００と同様であり、同一符号を付した構成要素についての重複する説明は省略する。
【００４４】
図１２において、シーケンスコントローラ２０Ａは、実施の形態１のシーケンスコントローラ２０と比較して、デコードした命令を２つずつＦＩＦＯ１２Ｃに出力する点のみが異なる。また、ＦＩＦＯ１２Ｃは、互いに異なるポートを介して入力するメモリ２５，２６とマルチプレクサ２７とを備えて構成される。ＦＩＦＯ１２Ｃは、１サイクルでメモリ２５，２６にそれぞれ１つずつ命令を入力することによって１サイクルで２つの命令を入力でき、マルチプレクサ２７によりメモリ２５，２６のうちいずれか１つのメモリを選択することによって、ＦＩＦＯ方式により１命令ずつ連続的にレジスタ１５及びＡＬＵ１６に出力する。
【００４５】
以上説明したように、本実施の形態に係るプロセッサによれば、シーケンスコントローラ２０Ａと演算アレイ２１との間に１サイクルで２つの命令を入力できるＦＩＦＯ１２Ｃを設けたので、シーケンスコントローラ２０の単独動作のサイクル数を減少させることができる一方、演算アレイ２１は連続的に命令を処理することができ、演算アレイ２１の稼働率を従来技術に比較して向上させることができる。
【００４６】
なお、本実施の形態において、ＦＩＦＯ１２Ｃは互いに異なるポートを介して入力する２つのメモリ２５，２６を備えることにより１サイクルで２つの命令を入力したが、本発明はこれに限らず、互いに異なるポートを介して入力する３つ以上のメモリを備えて１サイクルで３つ以上の命令を入力する構成としてもよい。
【００４７】
実施の形態６．
図１３は本発明の実施の形態６に係るＳＩＭＤプロセッサの処理部構成を示すパイプライン図である。図１３において、図３に示した実施の形態１に係るプロセッサ２００と比較して、シーケンスコントローラ２０に代えてシーケンスコントローラ２０Ｂを備えた点、並びに、非同期ＦＩＦＯ１２に代えてＦＩＦＯ１２Ｄ及びプログラマブルロジックコントローラ（以下、ＰＬＣという。）で構成されたシーケンサ１２Ｅを備えた点が異なる。それ以外の点については、図３に示した実施の形態１に係るプロセッサ２００と同様であり、同一符号を付した構成要素についての重複する説明は省略する。
【００４８】
図１３において、シーケンスコントローラ２０Ｂによるデコードステージ及び実行コントロール処理において、ＦＦ１１を介して命令メモリ１０から読み出された命令コードに対して、所定の処理Ｐ２を行うことによってシーケンスコントローラ２０Ｂで処理可能な形式の命令にデコードし、当該命令がシーケンスコントローラ２０Ｂに対して制御を行う命令であるか、演算アレイ２１に対して制御を行う命令であるかを判断する。命令がシーケンスコントローラ２０Ｂで動作すべきものであるとき、レジスタ１３及びＡＬＵ１４に出力され、命令が演算アレイ２１で動作すべきものであるとき、複数の命令をシーケンサ１２Ｅが処理可能な形式の１つの命令に変換した後、出力される。ここで、ＦＩＦＯ１２Ｄが所定数の命令を保持しているときは、ＦＩＦＯ１２Ｄからシーケンスコントローラ２０Ｂへは「ＦＩＦＯフル」の信号が出力され、当該信号がアサートされている間は、ＦＩＦＯ１２Ｄがメモリフル状態であり、これ以上シーケンスコントローラ２０ＢからＦＩＦＯ１２Ｄへ命令を投入できない。この場合、シーケンスコントローラ２０Ｂは処理Ｐ２の実行を停止し、ＦＩＦＯ１２Ｄへの新たな命令の投入を行わない。
【００４９】
シーケンサ１２Ｅは例えばＰＬＣにより構成され、例えば所定の複数の状態を所定の条件に従って遷移するステートマシンである。ここで、シーケンサ１２Ｅは、ステートを保持するステートＦＦ３０と、ステートマシンに対する制御と演算部への信号の生成を行う処理Ｐ３の実行回路との組合せ回路から構成される。シーケンサ１２Ｅにおいて、ステートＦＦ３０により現在の状態を保持し、所定の処理Ｐ３を実行することによって、シーケンサ１２Ｅの状態の制御とレジスタ１５及びＡＬＵ１６に出力すべき命令の生成とを行う。シーケンサ１２Ｅは、シーケンスコントローラ２０Ｂからの命令に基づいて複数の命令を生成し、生成された命令をレジスタ１５及びＡＬＵ１６に連続的に出力する。すなわち、シーケンスコントローラ２０Ｂから発行された命令は一旦ＦＩＦＯ１２Ｄに投入され、ＦＩＦＯ１２Ｄに投入された命令は、投入された順番にシーケンサ１２Ｅに出力される。シーケンサ１２Ｅは、ＦＩＦＯ１２Ｄから供給された命令に従い、複数サイクルにわたり、シーケンサ１２Ｅは自律的に演算アレイ２１に命令を供給する。例えば、ＡＬＵ１６が２ビット演算器である場合、シーケンサ１２Ｅは、シーケンスコントローラ２０Ｂから８ビットの加算を示す命令Ａ０を入力すると、命令Ａ０に基づいて２ビットずつの４つの加算命令を生成し、４サイクルに渡って、ＡＬＵ１６には加算命令であることを示す「ＡＤＤ」を出力し、レジスタ１５には加算されるべき２つの値が格納されたアドレスを示すポインタをインクリメントしながら出力する。
【００５０】
図１４は図１３のＳＩＭＤプロセッサにおける命令処理を示すシーケンス図である。図１４において、シーケンスコントローラ２０Ｂが命令Ａ０をシーケンサ１２Ｅに出力すると、シーケンサ１２Ｅは命令Ａ０に基づいて４つの命令Ａ１〜Ａ４を生成して、順次連続的に演算アレイ２１に出力する。従って、シーケンスコントローラ２０Ｂからシーケンサ１２Ｅに命令が供給されない間にも、シーケンサ１２Ｅから演算アレイ２１に命令が供給される。
【００５１】
以上説明したように、本実施の形態に係るプロセッサによれば、シーケンスコントローラ２０Ｂと演算アレイ２１との間にシーケンサ１２Ｅを設け、シーケンサ１２Ｅがシーケンスコントローラ２０Ｂから供給される命令に基づく複数の命令を生成して演算アレイ２１に連続的に供給するので、演算アレイ２１は連続的に命令を処理することができ、演算アレイ２１の稼働率を従来技術に比較して向上させることができる。
【００５２】
すなわち、シーケンスコントローラ２０Ｂから命令を供給されなくても、シーケンサ１２Ｅから演算アレイ２１に対して毎サイクル命令を供給することができる。このことにより、「シーケンスコントローラ２０Ｂのみの動作」があっても、サイクルあたりの演算アレイ２１へ命令の供給と、演算アレイ２１での命令の消費を同程度にすることができ、シーケンスコントローラ２０Ｂと演算アレイ２１が並列に動作することが可能になり、演算アレイ２１の稼働率を高くすることができる。なお、シーケンスコントローラ２０Ｂと演算アレイ２１とは同時に動作することが可能である。
【００５３】
本実施の形態では、シーケンサ１２Ｅが自ら演算アレイ２１へ命令を供給し、演算アレイ２１が複数サイクルにわたり自律的に演算処理を行うので、その間に、次の演算アレイ２１の処理の発行、及びシーケンスコントローラ２０Ｂ単独の処理を実行することが可能となる。シーケンスコントローラ２０Ｂと演算アレイ２１が並列に動作することが可能になり、シーケンスコントローラ２０Ｂの単独動作のサイクル数が減少し、これにより、演算アレイ２１の稼働率を上げることが可能となる。
【００５４】
実施の形態７．
図１５は本発明の実施の形態７に係るプロセッサの構成を示すブロック図である。図１５において、プロセッサはマイクロプロセッサであって、図３に示した実施の形態１に係るプロセッサ２００と比較して、演算アレイ２１に代えてＣＰＵ１のデータパス部６０を備えた点が異なる。それ以外の点については、図３に示した実施の形態１に係るプロセッサ２００と同様であり、同一符号を付した構成要素についての重複する説明は省略する。なお、ＣＰＵ１のデータパス部６０のＡＬＵ５１は、例えば演算アクセラレータであって、積和演算器などの暗号演算器、ＦＰＵ（Floating-Point Unit）、乗算器、減算器などである。
【００５５】
図１５において、ＣＰＵ１のデータパス部６０は、バス５０−１，５０−２，５３と、複数のレジスタファイル５２と、ＡＬＵ５１とを備えて構成され、レジスタファイル５２とＡＬＵ５１とは互いにバス５０−１，５０−２，５３を介して接続されている。ＡＬＵ５１は、非同期ＦＩＦＯ１２を介してシーケンスコントローラ２０から入力されるポインタ０及びポインタ１に基づいて、それぞれバス５０−１及び５０−２を介してレジスタファイル５２のデータを読み出し、読み出したデータに対して、非同期ＦＩＦＯ１２を介してシーケンスコントローラ２０から入力される命令に基づく演算処理を行った後、バス５３を介してレジスタファイル５２にデータを書き込む。
【００５６】
図１６は図１５のプロセッサの処理部構成を示すパイプライン図である。図１６において、ＩＦステージにおいて、命令メモリ１０に命令コードをフェッチする。シーケンスコントローラ２０によるデコード（Ｄ）ステージにおいて、ＦＦ１１を介して命令メモリ１０から読み出された命令コードに対して、所定の処理Ｐ１を行うことによって命令コードをシーケンスコントローラ２０で処理可能な形式の命令にデコードし、デコードされた命令をレジスタファイル５２に出力するとともに、非同期ＦＩＦＯ１２を介してＡＬＵ５１に出力する。ＣＰＵ１のデータパス部６０による実行（Ｅ）ステージにおいて、ＦＦ４３，４４を介してレジスタファイル５２から読み出されたデータに対して、ＡＬＵ５１により非同期ＦＩＦＯ１２からの命令に基づいて演算及びアドレス計算を行う。メモリアクセス（ＭＥＭ）ステージにおいて、ＦＦ４６を介して入力されたＡＬＵ５１の演算結果とＦＦ４１を介して入力された命令とに基づいてデータメモリ４７においてオペランドアクセスを行う。書き戻し（ＷＢ）ステージにおいて、ＦＦ４８を介してデータメモリ４７からフェッチされたデータとＦＦ４６からの演算結果とのいずれか１つを、ＦＦ４２を介して入力された命令に基づいてＭＵＸ４９により選択してレジスタファイル５２に書き込む。
【００５７】
以上説明したように、本実施の形態に係るプロセッサによれば、シーケンスコントローラ２０とＣＰＵ１のデータパス部６０との間に非同期ＦＩＦＯ１２を設け、シーケンスコントローラ２０の動作周波数をＣＰＵ１のデータパス部６０の動作周波数よりも高く設定することにより、ＣＰＵ１のデータパス部６０は連続的に命令を処理することができ、ＣＰＵ１のデータパス部６０の稼働率を従来技術に比較して向上させることができる。
【００５８】
実施の形態８．
図１７は本発明の実施の形態８に係るプロセッサの処理部構成を示すパイプライン図である。図１７において、図１６に示した実施の形態７に係るプロセッサと比較して、非同期ＦＩＦＯ１２に代えてメモリ１２Ａを備えた点が異なる。それ以外の点については、図１６に示した実施の形態７に係るプロセッサと同様であり、同一符号を付した構成要素についての重複する説明は省略する。
【００５９】
図１７において、メモリ１２Ａは、図６に示した実施の形態２に係るプロセッサ２００Ａのメモリ１２Ａと同様の構成であり、同様に動作するため説明を省略する。
【００６０】
以上説明したように、本実施の形態に係るプロセッサによれば、シーケンスコントローラ２０とＣＰＵ１のデータパス部６０との間にメモリ１２Ａを設け、アプリケーション実行前にシーケンスコントローラ２０により命令Ａ１，Ａ２，…を予めメモリ１２Ａに一旦格納して、アプリケーション実行時に、格納された命令Ａ１，Ａ２，…をＣＰＵ１のデータパス部６０により読み出して実行するので、ＣＰＵ１のデータパス部６０は連続的に命令を処理することができ、ＣＰＵ１のデータパス部６０の稼働率を従来技術に比較して向上させることができる。
【００６１】
実施の形態９．
図１８は本発明の実施の形態９に係るプロセッサの処理部構成を示すパイプライン図である。図１８において、図１６に示した実施の形態７に係るプロセッサと比較して、シーケンスコントローラ２０に代えてシーケンスコントローラ２０Ａを備えた点、並びに、非同期ＦＩＦＯ１２に代えてＦＩＦＯ１２Ｂを備えた点が異なる。それ以外の点については、図１６に示した実施の形態７に係るプロセッサと同様であり、同一符号を付した構成要素についての重複する説明は省略する。
【００６２】
図１８において、シーケンスコントローラ２０Ａは、実施の形態７のシーケンスコントローラ２０と比較して、デコードした命令を２つずつＦＩＦＯ１２Ｂに出力する点のみが異なる。ＦＩＦＯ１２Ｂは、図１０に示した実施の形態４に係るプロセッサのＦＩＦＯ１２Ｂと同様の構成であり、同様に動作するため説明を省略する。
【００６３】
以上説明したように、本実施の形態に係るプロセッサによれば、シーケンスコントローラ２０ＡとＣＰＵ１のデータパス部６０との間に１サイクルで２つの命令を入力できるＦＩＦＯ１２Ｂを設けたので、ＣＰＵ１のデータパス部６０は連続的に命令を処理することができ、ＣＰＵ１のデータパス部６０の稼働率を従来技術に比較して向上させることができる。
【００６４】
実施の形態１０．
図１９は本発明の実施の形態１０に係るプロセッサの処理部構成を示すパイプライン図である。図１９において、図１６に示した実施の形態７に係るプロセッサと比較して、シーケンスコントローラ２０に代えてシーケンスコントローラ２０Ｂを備えた点、並びに、非同期ＦＩＦＯ１２に代えてＦＩＦＯ１２Ｄ及びシーケンサ１２Ｅを備えた点が異なる。それ以外の点については、図１６に示した実施の形態７に係るプロセッサと同様であり、同一符号を付した構成要素についての重複する説明は省略する。
【００６５】
図１９において、シーケンスコントローラ２０Ｂによるデコード（Ｄ）ステージにおいて、ＦＦ１１を介して命令メモリ１０から読み出された命令コードに対して、所定の処理Ｐ２を行うことによって、命令コードをシーケンスコントローラ２０Ｂで処理可能な形式の命令にデコードし、デコードされた命令をレジスタファイル５２に出力するとともに、複数の命令をシーケンサ１２Ｅが処理可能な形式の１つの命令に変換した後、出力される。なお、シーケンサ１２Ｅは、図１３に示した実施の形態６に係るプロセッサのシーケンサ１２Ｅと同様の構成であり、同様に動作するため説明を省略する。ここで、ＦＩＦＯ１２Ｄが所定数の命令を保持しているときは、実施の形態６と同様に、ＦＩＦＯ１２Ｄからシーケンスコントローラ２０Ｂへは「ＦＩＦＯフル」の信号が出力され、当該信号がアサートされている間は、ＦＩＦＯ１２Ｄがメモリフル状態であり、これ以上シーケンスコントローラ２０ＢからＦＩＦＯ１２Ｄへ命令を投入できない。この場合、シーケンスコントローラ２０Ｂは処理Ｐ２の実行を停止し、ＦＩＦＯ１２Ｄへの新たな命令の投入を行わない。
【００６６】
以上説明したように、本実施の形態に係るプロセッサによれば、シーケンスコントローラ２０ＢとＣＰＵ１のデータパス部６０との間にシーケンサ１２Ｅを設け、シーケンサ１２Ｅがシーケンスコントローラ２０Ｂから供給される命令に基づく複数の命令を生成してＣＰＵ１のデータパス部６０に連続的に供給するので、ＣＰＵ１のデータパス部６０は連続的に命令を処理することができ、ＣＰＵ１のデータパス部６０の稼働率を従来技術に比較して向上させることができる。
【００６７】
実施の形態１１．
図２１は本発明の実施の形態１１に係るプロセッサ３００の構成を示すブロック図である。図２１において、プロセッサ３００は、図９の実施の形態４に係るプロセッサ２００Ｃに比較して、シーケンスコントローラ１０及び演算アレイ２１に代えて、デジタルシグナルプロセッサ（ＤＳＰ）７０、並びに、ＤＳＰ７０の実行プログラムを格納するＤＳＰ用メモリ７０を備えたことを特徴としている。図２１において、ＤＳＰ７０の動作はＣＰＵ１により行い、演算アレイ２１の動作をＤＳＰ７０により行うことを特徴としている。ここで、ＤＳＰ命令はＣＰＵ１からＦＩＦＯ１２Ｂを介してＤＳＰ７０に供給されて実行される一方、演算データについてはＤＳＰ用メモリ７１からバス５を介してＤＳＰ７０との間で転送を行う。
【００６８】
本実施の形態においては、ＣＰＵ１とＤＳＰ７０との間にＦＩＦＯ１２Ｂが設けられているので、ＣＰＵ１の動作周波数をＤＳＰ７０の動作周波数よりも高く設定することにより、ＣＰＵ１の単独動作のサイクル数を減少させることができる一方、ＤＳＰ７０は連続的に命令を処理することができ、ＤＳＰ７０の稼働率を従来技術に比較して向上させることができる。
【００６９】
実施の形態１２．
図２２は本発明の実施の形態１２に係るプロセッサ３００Ａの構成を示すブロック図である。図２２において、プロセッサ３００Ａは、図２１の実施の形態１１に係るプロセッサ３００に比較して、ＦＩＦＯ１２Ｂに代えて、図１３の実施の形態６と同様に、ＦＩＦＯ１２Ｄ及びシーケンサ１２Ｅを備えたことを特徴としている。図２２において、シーケンスコントローラ１０の動作はＣＰＵ１により行い、演算アレイ２１の動作をＤＳＰ７０により行う。ここで、ＤＳＰ命令はＣＰＵ１からＦＩＦＯ１２Ｄ及びシーケンサ１２Ｅを介してＤＳＰ７０に供給されて実行される一方、データについてはＣＰＵ１からバス５を介してＤＳＰ７０との間で転送を行う。
【００７０】
本実施の形態においては、ＣＰＵ１とＤＳＰ７０との間にＦＩＦＯ１２Ｄ及びシーケンサ１２Ｅが設けられているので、シーケンサ１２Ｅが自らＤＳＰ７０へ命令を供給し、ＤＳＰ７０が複数サイクルにわたり自律的に演算処理を行うので、その間に、次のＤＳＰ７０の処理の発行、及びＣＰＵ１単独の処理を実行することが可能となる。ＣＰＵ１とＤＳＰ７０が並列に動作することが可能になり、ＣＰＵ１の単独動作のサイクル数が減少し、これにより、ＤＳＰ７０の稼働率を上げることが可能となる。
【産業上の利用可能性】
【００７１】
以上詳述したように、本発明に係るプロセッサ装置によれば、命令メモリに格納された命令コードをデコードするシーケンスコントローラと、上記デコードされた命令コードを実行演算する演算部とを備えたプロセッサ装置において、上記命令コードを少なくとも１つの命令に上記シーケンスコントローラによりデコードするためのデコードステージと、上記デコードされた命令を上記演算部により実行するための実行ステージとの間において、上記デコードされた命令の読み出しタイミングと実行タイミングとが互いに異なりかつ上記デコードされた命令が上記演算部において連続的に実行されるように制御する演算コントローラを備えたことを特徴としている。例えば、プロセッサ装置のシーケンスコントローラと演算部との間に非同期ＦＩＦＯを挿入して設け、シーケンスコントローラと演算部とを並列動作させることで、演算部の稼働率を上げ、実行サイクル数の減少させることでプロセッサ装置全体の性能を向上させることができる。
【００７２】
本発明は、プロセッサ全般、特に、ビットシリアル演算を行うデジタル信号処理回路を含むプロセッサ及びそのシステムに利用することができる。
【図面の簡単な説明】
【００７３】
【図１】本発明の実施の形態１に係るＳＩＭＤプロセッサ２００の構成を示すブロック図である。
【図２】図１のＳＩＭＤプロセッサ２００におけるシーケンスコントローラ２０、非同期ＦＩＦＯ１２及び演算アレイ２１の部分の詳細構成を示すブロック図である。
【図３】図１のＳＩＭＤプロセッサ２００の処理部構成を示すパイプライン図である。
【図４】図１のＳＩＭＤプロセッサ２００における命令処理を示すシーケンス図である。
【図５】本発明の実施の形態２に係るＳＩＭＤプロセッサ２００Ａの構成を示すブロック図である。
【図６】図５のＳＩＭＤプロセッサ２００Ａの処理部構成を示すパイプライン図である。
【図７】図５のＳＩＭＤプロセッサ２００Ａにおける命令処理を示すシーケンス図である。
【図８】本発明の実施の形態３に係るＳＩＭＤプロセッサ２００Ｂの構成を示すブロック図である。
【図９】本発明の実施の形態４に係るＳＩＭＤプロセッサ２００Ｃの構成を示すブロック図である。
【図１０】図９のＳＩＭＤプロセッサ２００Ｃの処理部構成を示すパイプライン図である。
【図１１】図９のＳＩＭＤプロセッサ２００Ｃにおける命令処理を示すシーケンス図である。
【図１２】本発明の実施の形態５に係るＳＩＭＤプロセッサの処理部構成を示すパイプライン図である。
【図１３】本発明の実施の形態６に係るＳＩＭＤプロセッサの処理部構成を示すパイプライン図である。
【図１４】図１３のＳＩＭＤプロセッサにおける命令処理を示すシーケンス図である。
【図１５】本発明の実施の形態７に係るプロセッサの構成を示すブロック図である。
【図１６】図１５のプロセッサの処理部構成を示すパイプライン図である。
【図１７】本発明の実施の形態８に係るプロセッサの処理部構成を示すパイプライン図である。
【図１８】本発明の実施の形態９に係るプロセッサの処理部構成を示すパイプライン図である。
【図１９】本発明の実施の形態１０に係るプロセッサの処理部構成を示すパイプライン図である。
【図２０】本発明に係るプロセッサ装置における命令処理を示すシーケンス図である。
【図２１】本発明の実施の形態１１に係るプロセッサ３００の構成を示すブロック図である。
【図２２】本発明の実施の形態１２に係るプロセッサ３００Ａの構成を示すブロック図である。
【図２３】従来技術に係る超並列ＳＩＭＤプロセッサの処理部構成を示すパイプライン図である。
【図２４】図２３の超並列ＳＩＭＤプロセッサにおける命令処理を示すシーケンス図である。
【図２５】従来技術に係るメモリの階層を示す、メモリ容量に対するクロック周波数の関係を示す階層図である。
【符号の説明】
【００７４】
１…ＣＰＵ、
２…プログラムＲＯＭ、
３…割り込みコントローラ、
４…タイマーコントローラ、
５…バス、
６…ＳＤカードインターフェース、
６ａ…ＳＤカード、
７…ＬＣＤインターフェース、
７ａ…ＬＣＤ、
８…ＳＤＲＡＭコントローラ、
８ａ…ＳＤＲＡＭ、
９…ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）、
１０…命令メモリ、
１１，４１，４２，４３，４４，４６，４８…フリップフロップ（ＦＦ）、
１２…非同期ＦＩＦＯ、
１２Ａ，１２Ｍ，２５，２６…メモリ、
１２Ｂ，１２Ｃ，１２Ｄ…ＦＩＦＯ、
１２Ｅ…シーケンサ、
１３，１５…レジスタ、
１４，１６，５１…演算装置（ＡＬＵ）、
１７…プロセッシングエレメント（ＰＥ）、
１７Ａ…プロセッシングエレメントアレイ（ＰＥアレイ）、
１８ｈ…水平チャネルバス、
１８ｖ…垂直チャネルバス、
１９…スイッチトランジスタ、
２０，２０Ａ…シーケンスコントローラ、
２１…演算アレイ、
２２…ＤＭＡＣ、
５０−１，５０−２，５３…バス、
２７，４９…マルチプレクサ（ＭＵＸ）、
３０…ステートフリップフロップ（ステートＦＦ）、
４７…データメモリ、
５２…レジスタファイル、
６０…データパス部、
７０…デジタルシグナルプロセッサ（ＤＳＰ）、
７１…ＤＳＰ用メモリ、
２００，２００Ａ，２００Ｂ，２００Ｃ，３００，３００Ａ…プロセッサ、
Ｍ１，Ｍ２…メモリバンク。
【図１】
2009076058.tif 000003
【図２】
2009076058.tif 000004
【図３】
2009076058.tif 000005
【図４】
2009076058.tif 000006
【図５】
2009076058.tif 000007
【図６】
2009076058.tif 000008
【図７】
2009076058.tif 000009
【図８】
2009076058.tif 000010
【図９】
2009076058.tif 000011
【図１０】
2009076058.tif 000012
【図１１】
2009076058.tif 000013
【図１２】
2009076058.tif 000014
【図１３】
2009076058.tif 000015
【図１４】
2009076058.tif 000016
【図１５】
2009076058.tif 000017
【図１６】
2009076058.tif 000018
【図１７】
2009076058.tif 000019
【図１８】
2009076058.tif 000020
【図１９】
2009076058.tif 000021
【図２０】
2009076058.tif 000022
【図２１】
2009076058.tif 000023
【図２２】
2009076058.tif 000024
【図２３】
2009076058.tif 000025
【図２４】
2009076058.tif 000026
【図２５】
2009076058.tif 000027