(57)【要約】【課題】主記憶装置が接続される外部バス１系統に接続され、１チップ内に複数のＣＰＵを内蔵し、低速で動作するＣＰＵに主記憶データの緩衝用の２ポートＲＡＭを備えたマルチプロセッサ装置において、低速ＣＰＵによる分岐命令後の無効な命令フェッチを回避する。【解決手段】外部バスと２ポートＲＡＭとの間に接続され、主記憶装置から低速ＣＰＵｂが実行する命令データを先読みして２ポートＲＡＭに転送するＤＭＡＣ３と、ＤＭＡＣから２ポートＲＡＭに転送される命令データが分岐命令であることを判定する分岐命令比較器４とを有し、ＤＭＡＣ３は、分岐命令比較器４による分岐命令判定で命令データの先読み動作を停止し、分岐命令動作の確定後に命令データの先読み動作を再開する。【選択図】  図１
2004213544.tif 000002
【特許請求の範囲】
【請求項１】
主記憶装置が接続される外部バス１系統に接続され、１チップ内に複数のＣＰＵを内蔵し、低速で動作するＣＰＵに主記憶データの緩衝用の２ポートＲＡＭを備えたマルチプロセッサ装置であって、
前記外部バスと前記２ポートＲＡＭとの間に接続され、前記主記憶装置から前記低速で動作するＣＰＵが実行する命令データを先読みして前記２ポートＲＡＭに転送するダイレクトメモリアクセスコントローラ（ＤＭＡＣ）と、
前記ＤＭＡＣから前記２ポートＲＡＭに転送される命令データが分岐命令であることを判定する分岐命令比較手段とを有し、
前記ＤＭＡＣは、前記分岐命令比較手段による分岐命令判定で命令データの先読み動作を停止し、分岐命令動作の確定後に命令データの先読み動作を再開することを特徴とするマルチプロセッサ装置。
【請求項２】
前記ＤＭＡＣ及び高速で動作するＣＰＵのいずれか一方を選択して前記２ポートＲＡＭに接続するセレクタを備えたことを特徴とする請求項１記載のマルチプロセッサ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、１チップ内に複数の中央処理装置（ＣＰＵ）を内蔵する外部バス１系統のマルチプロセッサ装置に関する。
【０００２】
【従来の技術】
主記憶装置を接続する１系統の外部バスと複数のＣＰＵから構成されるシステムにおいて、システムの効率低下を防ぐために、低速で動作するＣＰＵに主記憶データの緩衝用の２ポートＲＡＭを備える技術が採用されている（例えば、特許文献１参照）。
【０００３】
図５は、１系統の外部バスと複数個のＣＰＵから構成され、低速で動作するＣＰＵに２ポートＲＡＭを備える従来のマルチプロセッサシステムの構成例を示すブロック図である。図５において、バス制御装置２０１には主記憶装置２００とＣＰＵａ２０５とＣＰＵｂ２０６が接続され、ＣＰＵｂは２ポートＲＡＭ２０３に接続され、バス制御装置２０１と２ポートＲＡＭ２０３はダイレクトメモリアクセスコントローラ（ＤＭＡＣ）２０２を介して接続されている。
【０００４】
このシステムにおける命令フェッチ動作では、命令データを主記憶装置２００から２ポートＲＡＭ２０３へＤＭＡＣ２０２を用いて高速に先読み（命令のプリフェッチ）をしていた。このとき、命令データに分岐命令が存在すると、先読みされた分岐命令後の命令データは無効になる可能性がある。また、先読みされた分岐命令後のデータが無効な場合、その分だけシステムＬＳＩ全体の無駄な消費電力が増加することになる。
【０００５】
【特許文献１】
特開平８−２２４４３号公報  （図１）
【０００６】
【発明が解決しようとする課題】
上記従来のマルチプロセッサ方式は、主記憶装置からＤＭＡＣを用いて命令データを２ポートＲＡＭへ先読みすることにより、各ＣＰＵのクロックに依存することなく高速に命令フェッチを行うことができる。
【０００７】
しかしながら、先読みした命令データに分岐命令が存在するとその分岐命令後の先読みした命令データは無効になる可能性があり、かつＤＭＡＣが無効な命令データを先読みしている間も共通バスを占有してしまうため、他のＣＰＵによる命令フェッチ速度の低下を招き、また無効なデータを先読みしている間の消費電力増加が問題であった。
【０００８】
本発明は上記事情に鑑みてなされたもので、主記憶装置が接続される外部バス１系統に接続され、１チップ内に複数のＣＰＵを内蔵し、低速で動作するＣＰＵに主記憶データの緩衝用の２ポートＲＡＭを備えたマルチプロセッサ装置において、低速ＣＰＵによる分岐命令後の無効な命令フェッチと無駄な消費電力増加を回避することができるマルチプロセッサ装置を提供することを目的とする。
【０００９】
【課題を解決するための手段】
請求項１のマルチプロセッサ装置は、主記憶装置が接続される外部バス１系統に接続され、１チップ内に複数のＣＰＵを内蔵し、低速で動作するＣＰＵに主記憶データの緩衝用の２ポートＲＡＭを備えたマルチプロセッサ装置であって、前記外部バスと前記２ポートＲＡＭとの間に接続され、前記主記憶装置から前記低速で動作するＣＰＵが実行する命令データを先読みして前記２ポートＲＡＭに転送するダイレクトメモリアクセスコントローラ（ＤＭＡＣ）と、前記ＤＭＡＣから前記２ポートＲＡＭに転送される命令データが分岐命令であることを判定する分岐命令比較手段とを有し、前記ＤＭＡＣは、前記分岐命令比較手段による分岐命令判定で命令データの先読み動作を停止し、分岐命令動作の確定後に命令データの先読み動作を再開する。
【００１０】
上記構成によれば、低速で動作するＣＰＵにおいてもＤＭＡＣにより高速にフェッチ動作を行うことができ、その命令フェッチ時に分岐命令が存在した場合は分岐命令比較手段がこれを検知してＤＭＡＣによる命令データの先読み動作を停止させることができるため、低速で動作するＣＰＵ側の分岐命令後の無効な命令フェッチを回避することができる。また、これにより無駄な消費電力の増加を防ぐことができる。
【００１１】
請求項２のマルチプロセッサ装置は、請求項１記載のマルチプロセッサ装置において、前記ＤＭＡＣ及び高速で動作するＣＰＵのいずれか一方を選択して前記２ポートＲＡＭに接続するセレクタを備える。
【００１２】
上記構成によれば、高速で動作するＣＰＵは２ポートＲＡＭへ先読みした命令データを書き換えることができるため、低速で動作するＣＰＵを直接制御することができ、各種状況においてマルチプロセッサシステムの処理効率を向上させることができる。
【００１３】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照しながら説明する。
図１は本発明の実施の形態１に係るマルチプロセッサ装置の構成を示すブロック図である。図１において、１は命令が格納される主記憶装置、２はバス制御装置、３はダイレクトメモリアクセスコントローラ（ＤＭＡＣ）、４は分岐命令比較器、５は２ポートＲＡＭ、６はＤＭＡＣ停止信号、７はＤＭＡＣ制御信号、８は高速クロックで動作するＣＰＵａ、９は低速クロックで動作するＣＰＵｂである。
【００１４】
バス制御装置２には主記憶装置１、ＤＭＡＣ３、ＣＰＵａ８、ＣＰＵｂ９が接続され、また、ＤＭＡＣ３と２ポートＲＡＭ５、２ポートＲＡＭ５とＣＰＵｂ９がそれぞれ接続され、ＤＭＡＣ３と２ポートＲＡＭ５の間には、その間を流れるデータを分岐命令コードと逐次比較する分岐命令比較器４が接続される。
【００１５】
最初に、マルチプロセッサの動作について図面を用いて説明する。図１において、高速クロックで動作するＣＰＵａ８は外部の主記憶装置１からの高速に命令フェッチを行う。ＤＭＡＣ３は低速クロックで動作するＣＰＵｂ９用の命令データを高速に２ポートＲＡＭ５へ転送する。このとき、命令データは高速に２ポートＲＡＭ５に格納されるため、ＣＰＵａ８はＣＰＵｂ９の命令フェッチを低速クロック分待たずに命令フェッチを行うことができる。
【００１６】
図２は、低速クロックで動作するＣＰＵｂ９のＤＭＡＣ３を用いた命令先読みの効果を説明するタイミング図である。ＣＰＵｂ９の命令フェッチをＤＭＡＣ３を用いて先読みすることにより、ＣＰＵｂ９のみで命令フェッチを行う場合の時間推移２０に比べて、ＤＭＡＣ３を用いた命令フェッチを行う場合の時間推移２１ではシステム全体の命令フェッチ時間を短縮することができる。
【００１７】
命令データを先読みしているため、分岐命令が存在するとそれ以降の先読みした命令データが無効になり、また、先読みしている間にＤＭＡＣ３がバスを占有してしまう。これに対して、本発明ではＤＭＡＣ３と２ポートＲＡＭ５の間のデータ転送時に分岐命令比較器４で分岐命令を判断し、分岐命令が存在するとＤＭＡＣ３の先読み動作を停止させる構成とした。
【００１８】
この構成により、ＤＭＡＣ３の命令データ先読み時に分岐命令が存在すると、ＤＭＡＣ３は分岐命令比較器４により命令フェッチ動作を停止させられるため、分岐命令以降の無効になる命令データを読み込まずに待機することができる。また、ＤＭＡＣ３によるバスの占有率が下がり、ＤＭＡＣ３が高速クロックで動作する時間が減るため、消費電力を低下させることができる。
【００１９】
図３は、本実施の形態に係るマルチプロセッサ装置における低速で動作するＣＰＵ側の命令フェッチ動作を説明するフローチャートである。まず、先読みした命令データに分岐命令がない場合について説明する。ステップ１２１でＤＭＡＣ３が主記憶装置１から命令をフェッチした後、ステップ１２２でＤＭＡＣ３から２ポートＲＡＭ５へ命令データを転送し、この命令データを分岐命令比較器４は分岐命令コードと逐次比較する。
【００２０】
ステップ１２３で比較結果を判定し、分岐命令でない場合はステップ１２１に戻り主記憶からの命令データの先読みを継続する。ＣＰＵｂ９は２ポートＲＡＭ５へ転送された命令データをフェッチすることにより低速クロックで命令を実行する。
【００２１】
次に、先読みした命令データに分岐命令が存在する場合について説明する。ステップ１２３の比較結果判定で分岐命令が存在する場合は、分岐命令比較器４はステップ１２４で停止命令信号６を用いてＤＭＡＣ３の命令フェッチ動作を停止させる。
【００２２】
ＣＰＵｂ９はステップ１２６で２ポートＲＡＭ５からフェッチした分岐命令を実行し、ステップ１２５で命令分岐が確定すると、ステップ１２７でＤＭＡＣ制御信号７を用いてＤＭＡＣ３の命令先読みを再開させる。
【００２３】
以上のように、本実施例のマルチプロセッサ装置は高速にフェッチ動作を行うことができ、低速クロックで動作するＣＰＵ側の命令フェッチ時に分岐命令が存在する場合は、これを分岐命令比較器４が検知してＤＭＡＣによる命令データの先読み動作を停止させることができる。また、これにより無駄な消費電力の増加を防ぐことができる。
【００２４】
次に、本発明の実施の形態２について説明する。図４は、本発明の実施の形態２に係るマルチプロセッサ装置の構成を示すブロック図である。図４において、図１と同じ構成要素については同一符号を付して説明する。
【００２５】
図４においては、実施の形態１に対してＤＭＡＣ３と２ポートＲＡＭ５の間にＣＰＵａ８が制御することができるセレクタ１０が追加された構成になっている。１１はＣＰＵａ８からＤＭＡＣ３へのＤＭＡＣ制御信号、１２はＣＰＵａ８からセレクタ１０へのセレクタ制御信号である。
【００２６】
セレクタ１０はＣＰＵａ８と２ポートＲＡＭ５とＤＭＡＣ３の３者に接続され、ＣＰＵａ８のアドレスバス及びデータバスとＤＭＡＣ３のアドレスバス及びデータバスをセレクタ制御信号１２を用いて切り換えることができる。
【００２７】
このような構成により、ＤＭＡＣ３により２ポートＲＡＭ５へ先読みした命令データをＣＰＵａ８が書き換えることができるため、ＣＰＵａ８はＣＰＵｂ９の動作を直接制御することができ、各種状況においてマルチプロセッサシステムの処理効率を向上させることができる。
【００２８】
【発明の効果】
以上説明したように、本発明によれば、低速で動作するＣＰＵにおいてもＤＭＡＣにより高速にフェッチ動作を行うことができ、その命令フェッチ時に分岐命令が存在する場合は分岐命令比較手段がこれを検知してＤＭＡＣによる命令データの先読み動作を停止させることで、低速で動作するＣＰＵ側の分岐命令後の無効な命令フェッチを回避することができるため、システムＬＳＩ全体の処理性能を向上させる大きな効果をもたらし、また、無効な命令データの先読み停止によりシステムＬＳＩ全体の低消費電力化を実現することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態１に係るマルチプロセッサ装置の構成を示すブロック図。
【図２】低速クロックで動作するＣＰＵのＤＭＡＣを用いた命令先読みの効果を説明するタイミング図。
【図３】本発明の実施の形態１に係るマルチプロセッサ装置における低速で動作するＣＰＵ側の命令フェッチ動作を説明するフローチャート。
【図４】本発明の実施の形態２に係るマルチプロセッサ装置の構成を示すブロック図。
【図５】従来のシステムの構成例を示すブロック図。
【符号の説明】
１  主記憶装置
２  バス制御装置
３  ＤＭＡＣ
４  分岐命令比較器
５  ２ポートＲＡＭ
６  ＤＭＡＣ停止信号
７  ＤＭＡＣ制御信号
８  ＣＰＵａ
９  ＣＰＵｂ
１０  セレクタ
１１  ＣＰＵａ側のＤＭＡＣ制御信号
１２  セレクタ制御信号
２０  ＤＭＡＣを使用しない場合の命令フェッチ時間推移
２１  ＤＭＡＣを使用した場合の命令フェッチ時間推移
２００  主記憶装置
２０１  バス制御装置
２０２  ＤＭＡＣ
２０３  ２ポートＲＡＭ
２０４  ＤＭＡＣ制御信号
２０５  ＣＰＵａ
２０６  ＣＰＵｂ
【図１】
2004213544.tif 000003
【図２】
2004213544.tif 000004
【図３】
2004213544.tif 000005
【図４】
2004213544.tif 000006
【図５】
2004213544.tif 000007