(57)【要約】【課題】  簡単な構成で、メモリの同一アドレスの同じデータを使用する場合および当該プロセッサによる演算結果をさらに使用する場合の双方において、処理速度を向上させることができるプロセッサを提供する。【解決手段】  演算用データが格納されるデータ・メモリから入力バスに供給される演算用データを受け一時記憶するレジスタと、該レジスタから供給されるデータに対し所定の演算を施す演算ユニットとを備え、該演算ユニットによる演算結果の出力をデータ・メモリに供給し格納させるプロセッサにおいて、所定のタイミング信号により指定された期間の間、レジスタが出力するデータを入力バスに供給する第１の制御手段と、所定のタイミング信号により指定された期間の間、演算ユニットが出力するデータを入力バスに供給する第２の制御手段とを備える。【選択図】        図４
2005157575.tif 000002
【特許請求の範囲】
【請求項１】
演算用データが格納されるデータ・メモリから入力バスに供給される演算用データを受け一時記憶するレジスタと、該レジスタから供給されるデータに対し所定の演算を施す演算ユニットとを備え、該演算ユニットによる演算結果の出力を前記データ・メモリに供給し格納させるプロセッサにおいて、
所定のタイミング信号により指定された期間、前記レジスタが出力するデータを前記入力バスに供給する第１の制御手段と、
所定のタイミング信号により指定された期間、前記演算ユニットが出力するデータを前記入力バスに供給する第２の制御手段と、を備える
ことを特徴とするプロセッサ。
【請求項２】
前記第１の制御手段または前記第２の制御手段は、
前記レジスタまたは前記演算ユニットが出力するデータを、与えられる出力イネーブル信号に応じて前記入力バスに供給するバッファ回路と、
前記所定のタイミング信号をデコードし、前記バッファ回路に前記出力イネーブル信号を供給するデコード回路とからなる
ことを特徴とする請求項１に記載のプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサに関し、特にはＤＳＰ（Ｄｉｇｉｔａｌ Ｓｉｇｎａｌ Ｐｒｏｃｅｓｓｏｒ）に関する。
【背景技術】
【０００２】
従来、一般的なＤＳＰを用いたシステムでは、演算用のデータを格納するレジスタやデータ・メモリの出力のみを、ＤＳＰの入力バスに接続させる構成をとっている。図７に、従来のＤＳＰの概略構成（プログラム・コントロール・ユニット等の一部構成要素を省略）を示している。データ・メモリ２ｂには演算用データおよび演算結果のデータが格納される。このＤＳＰでは、図示しないプログラム・コントロール・ユニットからの制御信号に応じて、データ・メモリ・コントロール・ユニット１ｃが演算対象のデータが格納されたアドレス（あるいは演算結果のデータを格納する格納場所のアドレス）を生成しデータ・メモリ２ｂに供給する。
【０００３】
これに応じてデータ・メモリ２ｂからデータが出力あるいは入力される。データ・メモリ２ｂから出力されるデータは、プログラム・コントロール・ユニットからの制御信号（ＢＳＡ，ＢＳＢ）に従ってデコーダ１ｇ’がバッファ１ｈの出力を制御することで、ＡバスまたはＢバスに供給される。これらのバス（入力バス）に出力されたデータはパイプライン・レジスタ１ｆに一時記憶されるとともに演算ユニット（ＡＬＵ）１ｅに供給され、この演算ユニット１ｅにより命令に応じた演算が施されて、その演算結果はデータ・メモリ２ｂに格納される。
【０００４】
ここで、図８に、データ・メモリ２ｂの同アドレスに格納された演算用データを４サイクル連続で演算に使用する場合のタイミングチャートを示す。
同図では、クロック信号と、データ・メモリ・コントロール・ユニット１ｃから出力されるチップ・セレクト信号（ＣＳＮ：この信号はロー・アクティブ）とデータ・メモリ２ｂの出力（Ｏ出力）と、プログラム・コントロール・ユニットからの制御信号ＢＳＡ／ＢＳＢと、Ａ／Ｂバスの状態を示している。同図に示すように４サイクルの間（４クロックの期間）、チップ・セレクト信号により当該データ・メモリが選択され、同じアドレスから同じデータが読み出される。デコーダ１ｇ’は、制御信号ＢＳＡ／ＢＳＢを受け、その出力（Ｏ出力）によりバッファ１ｈの出力を制御するが、同図のようにデータ・メモリ２ｂからの出力データ（［ＡＤＲ］：アドレス“ＡＤＲ”に格納されたデータを表す）が、このバッファ１ｈを介してＡ／Ｂバスに供給される。
【０００５】
次に、図９に、データ・メモリ２ｂに格納された演算結果（Ｄ０，Ｄ１，Ｄ２，Ｄ３）を順次使用する場合のタイミングチャートを示す。
同図では、クロック信号と、演算ユニット１ｅの出力信号（Ｄ：すなわち、データ・メモリの入力Ｉに入力される信号）と、データ・メモリ２ｂの出力（Ｏ出力）と、プログラム・コントロール・ユニットからの制御信号ＢＳＡ／ＢＳＢと、Ａ／Ｂバスの状態を示している。上記例と同様に４サイクルの期間に渡り、データ・メモリ２ｂからこれに格納された演算結果のデータの読み出しが行われ、結果Ａ／Ｂバスに供給される。
以上のように、従来の構成では、所定の演算用データに演算を施す場合、必ずデータ・メモリ２ｂからそのデータを読み込む必要があり、また演算結果に対しさらに演算を施す場合にも必ずデータ・メモリ２ｂからそのデータを読み込む必要があった。
【０００６】
このような構成に対し処理時間を短縮させる発明がなされている。例えば、特許文献１に記載の技術では、演算器（ＡＬＵ）の出力を出力レジスタを介さず乗算器側の入力に接続するとともに、乗算器の出力を出力レジスタを介さず演算器側の入力に接続する専用バスを設けることにより、マシンサイクルを少なくし処理時間を短縮している。
【０００７】
また、特許文献２に記載の技術は、読み出しサイクルの際読み出しデータが格納される読み出しデータレジスタと、書き込みサイクルの際書き込みデータが格納される書き込みデータレジスタを用いて、メモリの同一アドレスからの読み出しの際には（すなわち、連続して同じメモリ出力値を利用する場合には）、直前のサイクルでデータが格納されたデータレジスタからデータを送出することで、高速度のデータの読み出しを可能としている。
また、特許文献３に記載の技術も、メモリの同一アドレスからの読み出し時には、前回の読み出しデータをラッチするデータラッチの内容を使用することで、メモリ・アクセスの高速化をしている。
【特許文献１】特開平４−２６８６３９号公報
【特許文献２】特公平１−０１５９００号公報
【特許文献３】特開平３−０５５６４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従来の一般的な構成では、連続して同じメモリ出力値を利用する場合、利用回数分のメモリ・アクセスが発生する。また、演算器による演算結果は、そのデータを格納するレジスタやデータ・メモリに格納された後にしか利用できない。
一方、特許文献１の技術では、乗算器による処理結果をさらに演算器で処理したりさらにこの処理結果を乗算器で処理したりする場合には、専用のバスを設けることで処理時間を短縮することができるが、従来の一般的な構成の場合と同様に、連続して同じメモリ出力値を利用する場合には、利用回数分のメモリ・アクセスが発生する。
【０００９】
他方、特許文献２や特許文献３の技術は、データレジスタ（データラッチ）を設け記憶装置として同一アドレスからの読み出しのみを高速にするものであるが、データに対し何らかの演算処理が施され処理結果のデータが、メモリの異なるアドレスに格納される場合には通常のメモリ・アクセスが行われることになり、演算結果をすぐ次の処理に使うときには不向きである。
【００１０】
本発明は、上記の点に鑑みてなされたもので、簡単な構成で、メモリの同一アドレスの同じデータを使用する場合および当該プロセッサによる演算結果をさらに使用する場合の双方において、演算用のデータが格納されるデータ・メモリに対するメモリ・アクセスの回数を低減させ処理速度を向上させることができるプロセッサを提供するものである。
【課題を解決するための手段】
【００１１】
請求項１に記載の発明は、演算用データが格納されるデータ・メモリから入力バスに供給される演算用データを受け一時記憶するレジスタと、該レジスタから供給されるデータに対し所定の演算を施す演算ユニットとを備え、該演算ユニットによる演算結果の出力を前記データ・メモリに供給し格納させるプロセッサにおいて、所定のタイミング信号により指定された期間、前記レジスタが出力するデータを前記入力バスに供給する第１の制御手段と、所定のタイミング信号により指定された期間、前記演算ユニットが出力するデータを前記入力バスに供給する第２の制御手段と、を備えることを特徴としている。
【００１２】
請求項２に記載の発明は、請求項１に記載のプロセッサにおいて、前記第１の制御手段または前記第２の制御手段は、前記レジスタまたは前記演算ユニットが出力するデータを、与えられる出力イネーブル信号に応じて前記入力バスに供給するバッファ回路と、前記所定のタイミング信号をデコードし、前記バッファ回路に前記出力イネーブル信号を供給するデコード回路とからなることを特徴としている。
【００１３】
請求項１に記載の発明では、従来通りの処理を行う場合、演算用データがデータ・メモリから供給され、レジスタがこのデータを一時記憶する。そして演算ユニットがこのデータに対し所定の演算を施し、その演算結果をデータ・メモリの入力に供給し格納させる。このように演算用データ（演算ユニットによる演算結果が演算用データとなる場合もある）の入力は、データ・メモリを介して供給される。
【００１４】
本発明では、データ・メモリの同一アドレスの同じデータを使用する場合、第１の制御手段が、所定のタイミング信号により指定された期間、前記レジスタが出力するデータを前記入力バスに供給することにより、このデータを演算用データとして演算ユニットに供給できるので、メモリにアクセスする必要がなくなり、その分処理を高速化できる。特に、連続して同じアドレスのデータを利用する場合有効である。
【００１５】
他方、演算ユニットによる演算結果に対しさらに演算を施す場合では、第２の制御手段が、所定のタイミング信号により指定された期間、前記演算ユニットが出力するデータを前記入力バスに供給することにより、データ・メモリにアクセスすることなくそのデータを演算用データとして演算ユニットに供給できるので、この場合においても、メモリ・アクセス回数を低減でき処理を高速化できるものとなる。
【発明の効果】
【００１６】
本発明によれば、簡単な構成で、メモリの同一アドレスの同じデータを使用する場合および当該プロセッサによる演算結果をさらに使用する場合の双方において、演算用のデータが格納されるデータ・メモリに対するメモリ・アクセスの回数を低減させ処理速度を向上させることができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態を、図面を参照して説明する。
なお、以下にて参照する図面には、従来例として示した図面と共通する部分に同一の符号を附している。
【００１８】
はじめに、ＤＳＰを利用する一般的なシステム構成を図１に示す。
図１に示す例では、システム全体を制御するホストコンピュータ（Ｈｏｓｔ）３と、このホストコンピュータ３から与えられる命令が格納される命令メモリ（Ｉｎｓｔｒｕｃｔｉｏｎ Ｍｅｍｏｒｙ）２ａと、演算用データが格納されるデータ・メモリ（Ｄａｔａ Ｍｅｍｏｒｙ Ｘ及びＤａｔａ Ｍｅｍｏｒｙ Ｙ）２ｂと、与えられる命令に従い演算用データに対して演算を施すＤＳＰ１とがバスおよび信号線により接続されている。
【００１９】
ＤＳＰ１は、図２に示すように、ホストコンピュータ３との間でデータの入出力をするためのレジスタ（Ｒｅｇｉｓｔｅｒ）１ａと、プログラム・コントロール・ユニット（Ｐｒｏｇｒａｍ Ｃｏｎｔｒｏｌｌ Ｕｎｉｔ）１ｂと、データ・メモリ・コントロール・ユニット（Ｄａｔａ Ｍｅｍｏｒｙ Ｃｏｎｔｒｏｌｌ Ｕｎｉｔ）１ｃと、バス・コントロール・ユニット（Ｂｕｓ Ｃｏｎｔｏｒｏｌｌ Ｕｎｉｔ）１ｄと、演算ユニット（Ａｒｉｔｈｍｅｔｉｃ Ｌｏｇｉｃ Ｕｎｉｔ；ここでは乗算器を含むものとする）１ｅとから構成されている。
【００２０】
プログラム・コントロール・ユニット１ｂは、命令メモリ２ａから命令を読み込み、この命令を解読して、データ・メモリ・コントロール・ユニット１ｃ、バス・コントロール・ユニット１ｄ、演算ユニット１ｅに対し制御コードを送りこれらを制御する。データ・メモリ・コントロール・ユニット１ｃは、プログラム・コントロール・ユニット１ｂからの命令に従いデータ・メモリ２ｂから読み込む演算用データの格納場所（あるいは演算結果を書き込む格納場所）のアドレスを生成する。そして、生成したアドレス及びチップ・セレクト信号、ライト・イネーブル信号等の制御信号をデータ・メモリ２ｂに供給する。これに応じてデータ・メモリ２ｂからデータが出力あるいは入力される。
【００２１】
演算ユニット１ｅは、供給される演算用データに対し、プログラム・コントロール・ユニット１ｂから受ける制御コードに従った演算を施す。
バス・コントロール・ユニット１ｄは、プログラム・コントロール・ユニット１ｂから受ける制御コードに従い、指定されたバスソースを選択してそのバスにデータを載せる。
ここで、図３に、図２にて示しているバス・コントロール・ユニット１ｄ、演算ユニット１ｅ等とこれらを繋ぐバス・ラインをさらに詳しく示す。
【００２２】
演算ユニット１ｅは、乗算器（ＦＭＰＹ）と積和演算器（ＦＡＬＵ）とから構成される。同図に示す例では、第１ステージ（１ｓｔ ｓｔａｇｅ）と第２ステージ（２ｎｄ ｓｔａｇｅ）の２ステージからなるパイプライン処理を行える構成とし、第１ステージの演算結果を一時記憶するパイプライン・レジスタを有している。バス・コントロール・ユニット１ｄは、初段のパイプライン・レジスタ１ｆと、図３にて図示しない下記のデコーダ１ｇとバッファ１ｈを含み、乗算用データが流れるＸ，Ｙバスと、その他の算術演算用データが流れるＡ，Ｂバスと、演算ユニット１ｅの演算結果のデータが流れるＤバスを含んで構成され、データの流れを制御する。なお、同図にて乗算器（ＦＭＰＹ（２ｎｄ ｓｔａｇｅ））の出力がＡバスへ接続されているが、これは一般的な積和演算のためのラインである。
【００２３】
前述のようにデータ・メモリ・コントロール・ユニット１ｃからのアドレス信号及び制御信号に応じてデータ・メモリ２ｂからデータが出力されるが、この出力は図４に示すバッファ１ｈによって制御される。
このバッファ１ｈは、図４に示すデコーダ１ｇから供給される出力イネーブル信号を受け、この信号に応じてその出力が制御される。本実施の形態では、バッファ１ｈは、制御に応じて、データ・メモリ２ｂからの出力を演算ユニット１ｅに供給したり、初段のパイプライン・レジスタ１ｆの出力を演算ユニット１ｅに供給したり、演算ユニット１ｅの出力をこの演算ユニット１ｅの入力に供給する。
【００２４】
一方、デコーダ１ｇは、プログラム・コントロール・ユニット１ｂから供給される制御信号ＢＳＡ，ＢＳＢに応じて、出力可とするいずれかのバッファ１ｈに対する出力イネーブル信号を該当のバッファ１ｈに供給する。
なお、図４においては、Ｘ，Ｙバスは簡単のため省略し、演算ユニット１ｅをＡＬＵとして示している。また、上記ＢＳＡ／ＢＳＢはＡ／Ｂバスソースを指定する信号であり、プログラム・コントロール・ユニット１ｂによる命令コードで指定されるものとする。
【００２５】
このように構成される本実施の形態のＤＳＰ１の、本発明に係る特徴的な動作について、図５、６を参照し説明する。
なお、ＤＳＰ１は、従来と同様の動作（前述）をすることも可能である。
【００２６】
図５は、従来ではデータ・メモリ２ｂに記憶された同じ演算用データを４サイクル分使用するケースに対し、最初の１回だけメモリ・アクセスを行い残りの３サイクルは、初段のパイプライン・レジスタ１ｆに一時記憶された演算用データを使用するようにした場合のタイミング・チャートである。
同図では、クロック信号と、データ・メモリ・コントロール・ユニット１ｃから出力されるチップ・セレクト信号（ＣＳＮ）と、データ・メモリ２ｂの出力（Ｏ出力）と、プログラム・コントロール・ユニット１ｂからの制御信号ＢＳＡ／ＢＳＢと、Ａ／Ｂバスの状態と、パイプライン・レジスタ１ｆの出力（ＡＤ／ＢＤ）を示している。
【００２７】
同図に示すように、チップ・セレクト信号等の制御信号に応じて最初のサイクルでは、データ・メモリ２ｂから演算用データ（同図に示す［ＡＤＲ］）が出力される。このとき制御信号ＢＳＡ／ＢＳＢによりデコーダ１ｇは、データ・メモリ２ｂの出力に繋がるバッファ１ｈに対しその出力端子Ｏから出力イネーブル信号を供給する。これにより、データ・メモリ２ｂの出力は、バッファ１ｈを介してＡバスまたはＢバスに出力され、初段のパイプライン・レジスタ１ｆを介して演算ユニット１ｅに供給される。
【００２８】
残りの３サイクルの間（３クロックの期間）は、同様に制御信号ＢＳＡ／ＢＳＢにより、デコーダ１ｇは、初段のパイプライン・レジスタ１ｆの出力に繋がるバッファ１ｈに対し出力端子ＡまたはＢから出力イネーブル信号を供給する。これにより、初段のパイプライン・レジスタ１ｆの出力（ＡＤ／ＢＤ）は、バッファ１ｈを介してＡバスまたはＢバスに出力され、その出力データ（［ＡＤＲ］）は、初段のパイプライン・レジスタ１ｆを介して演算ユニット１ｅに供給される。
【００２９】
同図に示すように、最初の１回だけデータ・メモリ２ｂへのアクセスを行うだけで、残り３サイクルは初段のパイプライン・レジスタ１ｆに一時記憶された直前のデータを利用するので、３サイクル分のメモリ・アクセスがなくなり、データ・メモリ２ｂの同アドレスに格納された演算用データを４サイクル連続で演算に使用する場合に比べ、高速化できる。
【００３０】
また、従来のように４サイクル連続で同メモリ同アドレスのデータを使用する場合、４回のメモリ・アクセスを行うことから、この間、同メモリ同アドレス（あるいは異なるアドレス）からの読み出し、及び同メモリへの書き込みを別途行うことはできないが、本実施の形態では、初段のパイプライン・レジスタ１ｆが一時記憶しているデータを再使用するので、上記例では、残り３サイクルの間、同メモリ同アドレス（あるいは異なるアドレス）からの読み出し、及び同メモリへの書き込みを別途行うことも可能となる。
【００３１】
図６は、演算ユニット１ｅによる演算結果（Ｄ０，Ｄ１，Ｄ２，Ｄ３）をそのまま順次使用する場合のタイミング・チャートである。
同図では、クロック信号と、演算ユニット１ｅの出力信号（Ｄ：すなわち、データ・メモリ２ｂの入力Ｉに入力される信号）と、プログラム・コントロール・ユニット１ｂからの制御信号ＢＳＡ／ＢＳＢと、Ａ／Ｂバスの状態を示している。この例では、制御信号ＢＳＡ／ＢＳＢにより、デコーダ１ｇは、演算ユニット１ｅの出力に繋がるバッファ１ｈに対し出力端子Ｄから出力イネーブル信号を供給する。これにより、演算ユニット１ｅの出力は、バッファ１ｈを介してＡバスまたはＢバスに出力され、初段のパイプライン・レジスタ１ｆを介して演算ユニット１ｅに供給される。このようにして、４サイクルの期間に渡り、演算ユニット１ｅの出力（Ｄ０，Ｄ１，Ｄ２，Ｄ３）がそのままバッファ１ｈを介してＡ／Ｂバスに出力され演算ユニット１ｅに供給される。
【００３２】
この例では、演算ユニット１ｅによる演算結果をバッファ１ｈを介して直接Ａ／Ｂバスに供給することによって、従来技術より１サイクル早くデータを利用できるようになる。また、データ・メモリ２ｂのリソースを消費せず、かつ処理速度を向上させる（＝命令行数を減らす）ことが可能となる。
以上、この発明の実施形態を、図面を参照して詳述した。もちろん、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の構成等も含まれることは言うまでもない。
【図面の簡単な説明】
【００３３】
【図１】ＤＳＰを利用する一般的なシステム構成を示す図である。
【図２】図１に示すＤＳＰ部分の構成を詳しく示すブロック図である。
【図３】図２に示しているバス・コントロール・ユニット、演算ユニット等とこれらを繋ぐバス・ラインをさらに詳しく示す図である。
【図４】本発明の一実施の形態におけるバス・コントロール・ユニットと、その周辺の回路の詳細を示すである。
【図５】同実施の形態におけるタイミングチャートの一例である。
【図６】同実施の形態におけるタイミングチャートの一例である。
【図７】従来の形態におけるバス・コントロール・ユニットと、その周辺の回路の詳細を示すである。
【図８】従来の形態におけるタイミングチャートの一例である。
【図９】従来の形態におけるタイミングチャートの一例である。
【符号の説明】
【００３４】
１…ＤＳＰ（プロセッサ）、１ａ…レジスタ、１ｂ…プログラム・コントロール・ユニット、１ｃ…データ・メモリ・コントロール・ユニット、１ｄ…バス・コントロール・ユニット、１ｅ…演算ユニット、１ｆ…パイプライン・レジスタ（本発明に係るレジスタ）、１ｇ…デコーダ（デコード回路：第１の制御手段、第２の制御手段）、１ｇ’…デコーダ、１ｈ…バッファ（バッファ回路：第１の制御手段、第２の制御手段）、２ａ…命令メモリ、２ｂ…データ・メモリ（データ・メモリＸ、データ・メモリＹ）、３…ホストコンピュータ
【図１】
2005157575.tif 000003
【図２】
2005157575.tif 000004
【図３】
2005157575.tif 000005
【図４】
2005157575.tif 000006
【図５】
2005157575.tif 000007
【図６】
2005157575.tif 000008
【図７】
2005157575.tif 000009
【図８】
2005157575.tif 000010
【図９】
2005157575.tif 000011