(57)【要約】【課題】プロセッサシステムでの処理時間を大幅に短縮させること。【解決手段】本発明では、プロセッサコア部にローカルデータバスを介して接続されたローカルメモリへのデータ転送を制御するためのローカルメモリ制御部をプロセッサコア部の外部に設けて、ローカルメモリへのデータ転送処理とプロセッサコア部内での処理とを並列して行えるように構成した。【選択図】      図１
2004355049.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサコア部にローカルデータバスを介して接続されたローカルメモリへのデータ転送を制御するためのローカルメモリ制御部をプロセッサコア部の外部に設けて、ローカルメモリへのデータ転送処理とプロセッサコア部内での処理とを並列して行えるように構成したことを特徴とするプロセッサシステム。
【請求項２】
前記ローカルメモリへ転送するデータは、ローカルメモリ、プロセッサコア部にシステムバスを介して接続された外部メモリ又は入出力デバイスから転送されることを特徴とする請求項１に記載のプロセッサシステム。
【請求項３】
前記ローカルメモリ制御部は、ローカルデータバスを介してプロセッサコア部に接続したことを特徴とする請求項１又は請求項２に記載のプロセッサシステム。
【請求項４】
前記ローカルメモリ制御部は、リクエスト信号線を介して入出力デバイスに接続したことを特徴とする請求項１〜請求項３のいずれかに記載のプロセッサシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プロセッサシステムに関するものである。
【０００２】
【従来の技術】
従来より、図６に示すように、プロセッサシステム１０１は、プロセッサ１０２にシステムバス１０３を介して外部メモリ１０４や入出力デバイス１０５を接続しており、プロセッサ１０２の内部では、プロセッサコア部１０６にローカルデータバス１０７を介してローカルメモリ１０８を接続していた。
【０００３】
そして、プロセッサシステム１０１で各種の処理を行う場合、プロセッサ１０２は、次に説明する処理を行っていた。
【０００４】
まず、プロセッサ１０２は、入出力デバイス１０５から必要なデータを外部メモリ１０４にシステムバス１０３を用いて転送する。
【０００５】
次に、外部メモリ１０４からプロセッサコア部１０６（レジスタ）にデータをシステムバス１０３を介して転送する。
【０００６】
次に、プロセッサコア部１０６からローカルメモリ１０８にデータをローカルデータバス１０７を介して転送する。
【０００７】
次に、ローカルメモリ１０８に格納されたデータに基づいて各種の処理を行い、処理結果をローカルメモリ１０８に格納する。
【０００８】
次に、格納したデータをローカルメモリ１０８からプロセッサコア部１０６にローカルデータバス１０７を介して転送する。
【０００９】
次に、プロセッサコア部１０６から外部メモリ１０４にデータをシステムバス１０３を介して転送する。
【００１０】
次に、外部メモリ１０４から入出力デバイス１０５にデータをシステムバス１０３を介して転送する。
【００１１】
このように、従来のプロセッサ１０２では、データをローカルメモリ１０８に転送した後に各種の処理を行っていたため、高速処理を行うことが困難であった。
【００１２】
これは、システムバス１０３を用いたデータ転送に比較的長い時間を要するためであり、しかも、プロセッサ１０２がデータ転送を行っていたために、データ転送処理を行っている間はプロセッサ１０２が他の処理を行うことができないためである。
【００１３】
そのため、外部メモリからローカルメモリにシステムバスを介さずに直接的にデータを転送できるようにしたプロセッサが考案されている（たとえば、特許文献１）。
【００１４】
このプロセッサは、プロセッサコア部の内部にローカルメモリ制御部を形成し、このローカルメモリ制御部がプロセッサコア部からの要求を受けて、プロセッサコア部からレジスタを切り離した後に、外部メモリのデータをローカルメモリに直接転送するように構成している。
【００１５】
【特許文献１】
特開昭５８−２０５２３９号公報
【００１６】
【発明が解決しようとする課題】
ところが、上記特許文献１に記載のプロセッサにあっては、外部メモリからローカルメモリにデータを直接転送するように構成しているために、データ転送に要する時間を短縮することができるものの、プロセッサコア部の内部にローカルメモリ制御部を形成していたため、データ転送処理を行っている間はプロセッサコア部で他の処理を行うことができず、プロセッサでの処理時間を大幅に短縮することはできなかった。
【００１７】
しかも、プロセッサコア部の内部にローカルメモリ制御部を形成していたために、プロセッサコア部の仕様変更に伴ってローカルメモリ制御部も変更しなければならず、プロセッサの開発に長期間を要するおそれがあった。
【００１８】
【課題を解決するための手段】
そこで、請求項１に係る本発明では、プロセッサコア部にローカルデータバスを介して接続されたローカルメモリへのデータ転送を制御するためのローカルメモリ制御部をプロセッサコア部の外部に設けて、ローカルメモリへのデータ転送処理とプロセッサコア部内での処理とを並列して行えるように構成したことを特徴とするプロセッサシステムを提供するものである。
【００１９】
また、請求項２に係る本発明では、前記請求項１に係る本発明において、前記ローカルメモリへ転送するデータは、ローカルメモリ、プロセッサコア部にシステムバスを介して接続された外部メモリ、または入出力デバイスから転送されることにしたものである。
【００２０】
また、請求項３に係る本発明では、前記請求項１又は請求項２に係る本発明において、前記ローカルメモリ制御部は、ローカルデータバスを介してプロセッサコア部に接続することにしたものである。
【００２１】
また、請求項４に係る本発明では、前記請求項１〜請求項３のいずれかに係る本発明において、前記ローカルメモリ制御部は、リクエスト信号線を介して入出力デバイスに接続することにしたものである。
【００２２】
【発明の実施の形態】
本発明に係るプロセッサシステムは、プロセッサコア部に複数のローカルメモリとローカルメモリ制御部とをローカルデータバスを介して接続しており、ローカルメモリは、デュアルポートを有しており、このローカルメモリの一方のポートをプロセッサコア部にローカルデータバスを介して接続するとともに、ローカルメモリの他方のポートにローカルメモリ制御部を接続したものである。
【００２３】
また、プロセッサシステムは、プロセッサコア部に複数の外部メモリをシステムバスを介して接続するとともに、プロセッサコア部に複数の入出力デバイスをリクエスト信号線を介して接続し、さらには、これらの外部メモリや入出力デバイスにローカルメモリ制御部を接続したものである。
【００２４】
そして、本プロセッサシステムでは、プロセッサコア部にローカルデータバスを介して接続されたローカルメモリへのデータ転送を制御するためのローカルメモリ制御部をプロセッサコア部の外部に設けたものである。
【００２５】
そのため、本プロセッサシステムでは、ローカルメモリへのデータ転送処理とプロセッサコア部内での処理とを並列して行えるように構成されており、プロセッサシステムでの処理時間を大幅に短縮させることができるものである。
【００２６】
しかも、ローカルメモリ制御部をプロセッサコア部の外部に形成しているため、プロセッサコア部の仕様変更が生じてもローカルメモリ制御部を変更する必要が無くなり、プロセッサシステムの開発に要する時間を短縮することができるものである。
【００２７】
また、本プロセッサシステムでは、ローカルメモリ制御部にローカルメモリ、外部メモリ、及び入出力デバイスを接続しているため、ローカルメモリ同士間、ローカルメモリと外部メモリとの間、ローカルメモリと入出力デバイスとの間でプロセッサコア部での処理と並列して相互にデータ転送を行うことができる。
【００２８】
しかも、プロセッサコア部とローカルメモリ制御部とをローカルデータバスを介して接続しているため、プロセッサコア部からの制御信号をローカルデータバスを用いて迅速にローカルメモリ制御部に送信することができ、これによっても、プロセッサシステムでの処理時間を短縮することができる。
【００２９】
さらに、ローカルメモリ制御部と入出力デバイスとをリクエスト信号線を介して接続しているため、入出力デバイスからのリクエスト信号によってローカルメモリ制御部でのデータ転送を開始させることができ、また、ローカルメモリ制御部でのデータ転送の終了後に入出力デバイスにリクエスト信号を返送することができるので、プロセッサコア部を介さずにデータ転送処理を迅速に開始・終了することができ、プロセッサコア部の負荷を軽減することができる。
【００３０】
以下に、本発明に係るプロセッサシステムの具体的な実施形態について図面を参照しながら説明する。
【００３１】
本発明に係るプロセッサシステム１は、図１に示すように、プロセッサ２の内部に各種の演算処理を行うためのプロセッサコア部３を設け、同プロセッサコア部３にデュアルポートの２個のローカルメモリ４，５とこのローカルメモリ４，５へのデータ転送を制御するためのローカルメモリ制御部６とをローカルデータバス７を介して接続するとともに、ローカルメモリ４，５とローカルメモリ制御部６とを接続している。ここで、ローカルメモリ４，５は、デュアルポートを有しており、一方の入出力ポート８，９をローカルデータバス７を介してプロセッサコア部３に接続し、他方の入出力ポート１０，１１をローカルメモリ制御部６に接続している。
【００３２】
また、プロセッサシステム１は、プロセッサコア部３に外部メモリ１２，１３や入出力デバイス１４，１５やダイレクトメモリコントローラ１６をシステムバス１７を介して接続している。図中、１８はシステムバス１７の使用要求を調整するためのアービターである。
【００３３】
また、プロセッサシステム１は、プロセッサコア部３とローカルメモリ制御部６とをシステムバス１７を介しても接続しており、このローカルメモリ制御部は、プロセッサコア部３に割り込み信号を割り込み信号線１９を介して送信でき、さらに、入出力デバイス１５にリクエスト信号をリクエスト信号線２０，２１を介して送受信できるようになっている。
【００３４】
そして、このプロセッサシステム１では、プロセッサコア部３の外部に設けたローカルメモリ制御部６によってローカルメモリ４，５同士間やローカルメモリ４，５と外部メモリ１２，１３との間やローカルメモリ４，５と入出力デバイス１４，１５との間でプロセッサコア部３での処理と並列して相互にデータ転送を行うようにしている。
【００３５】
かかるローカルメモリ制御部６の構成について以下に説明する。
【００３６】
ローカルメモリ制御部６は、図２に示すように、アドレスデコーダ部２２とデータパス部２３とアドレス生成部２４とから構成している。
【００３７】
そして、ローカルメモリ制御部６は、プロセッサ２のメモリ空間上にマッピングされている。そのメモリマップを表１に示す。なお、マッピングされた各レジスタはデータパス部２３に設けたレジスタファイル部２５に実装されている。
【００３８】
【表１】
2004355049.tif 000003
アドレスデコーダ部２２では、システムバス１７のアドレスバス（ｂｕｓ＿ａｄｄｒ）で示されたアドレスを表１のメモリマップに従ってデコードする。
【００３９】
ここで、表１に示した各レジスタの機能について説明する。
【００４０】
レジスタＳＡＤＤＲは、データ転送を行う際の転送元のアドレスを示すレジスタであり、転送元のローカルメモリ４，５や外部メモリ１２，１３や入出力デバイス１４，１５のアドレスが格納される。
【００４１】
レジスタＤＡＤＤＲは、データ転送を行う際の転送先のアドレスを示すレジスタであり、転送先のローカルメモリ４，５や外部メモリ１２，１３や入出力デバイス１４，１５のアドレスが格納される。
【００４２】
レジスタＢＳＩＺＥ及びレジスタＢＯＦＦＳＥＴは、不連続なデータ転送を行う際に使用するものであり、図３に示すように、レジスタＢＳＩＺＥで示されるバイト数のサイズのブロックデータをレジスタＢＯＦＦＳＥＴで示されるバイト数の間隔を開けて順に転送するときに使用する。
【００４３】
レジスタＣＮＴＲＬは、データ転送時の制御フラグで構成されたレジスタであり、表２に示すフラグで構成されている。
【００４４】
【表２】
2004355049.tif 000004
レジスタＳＴＡＲＴは、データ転送の開始を示すレジスタであり、このレジスタＳＴＡＲＴに任意のデータを書き込むことによってデータ転送が開始される。
【００４５】
レジスタＩＮＴＲＥＱは、データ転送完了後に割り込み信号によって通知するレジスタであり（表３参照）、通常は、データ転送完了後に「１」にセットされ、割り込みルーチン内で「０」にリセットされる。
【００４６】
【表３】
2004355049.tif 000005
そして、アドレスデコーダ部２２でシステムバス１７のアドレスバス（ｂｕｓ＿ａｄｄｒ）で示されたアドレスを表１のメモリマップに従ってデコードし、データパス部２３で該当するレジスタにシステムバス１７のデータバス（ｂｕｓ＿ｄａｔａ＿ｗ）で示されたデータを格納する。また、アドレスデコーダ部２２でローカルデータバス７のアドレスバス（ＬＤ＿ａｄｄｒ）で示されたアドレスを表１のメモリマップに従ってデコードし、データパス部２３で該当するレジスタをローカルデータバス７のデータバス（ＬＤ＿ｄａｔａ＿ｒ）に読出す。
【００４７】
データパス部２３は、図４のブロック図に示した構成となっており、システムバス１７とローカルメモリ４との間の双方向のパスと、システムバス１７とローカルメモリ５との間の双方向のパスと、ローカルメモリ４からローカルメモリ５への片方向のパスと、システムバス１７とレジスタファイル部２５との間の双方向のパスと、ローカルデータバス７とレジスタファイル部２５との間の双方向のパスの合計９通りのパスが形成されている（表４参照）。
【００４８】
【表４】
2004355049.tif 000006
そして、データパス部２３は、レジスタファイル部２５の各レジスタに従ってバッファ２６〜３２やセレクタ３３，３４を制御することによって、９通りのパスから１通りのパスのみを選択的に形成するようにしている。
【００４９】
すなわち、システムバス１７からローカルメモリ４へのパスを形成する際には、システムバス１７のデータバス（ｂｕｓ＿ｄａｔａ＿ｗ）のデータをバッファ２６とバッファ２７とを介してローカルメモリ４の入力ポート（ｗ＿ｄａｔａ＿ｌｍ＿ａ）に出力する。
【００５０】
システムバス１７からローカルメモリ５へのパスを形成する際には、システムバス１７のデータバス（ｂｕｓ＿ｄａｔａ＿ｗ）のデータをバッファ２６とセレクタ３４とバッファ３１とを介してローカルメモリ５の入力ポート（ｗ＿ｄａｔａ＿ｌｍ＿ｂ）に出力する。
【００５１】
システムバス１７からレジスタファイル部２５へのパスを形成する際には、システムバス１７のデータバス（ｂｕｓ＿ｄａｔａ＿ｗ）のデータをバッファ２６を介してレジスタファイル部２５に入力する。
【００５２】
ローカルメモリ４からシステムバス１７へのパスを形成する際には、ローカルメモリ４の出力ポート（ｒ＿ｄａｔａ＿ｌｍ＿ａ）のデータをバッファ２８とセレクタ３３とバッファ３０を介してシステムバス１７のデータバス（ｂｕｓ＿ｄａｔａ＿ｒ）に出力する。
【００５３】
ローカルメモリ４からローカルメモリ５へのパスを形成する際には、ローカルメモリ４の出力ポート（ｒ＿ｄａｔａ＿ｌｍ＿ａ）のデータをバッファ２８とバッファ３２とシフタ３６とセレクタ３４とバッファ３１を介してローカルメモリ５の入力ポート（ｗ＿ｄａｔａ＿ｌｍ＿ｂ）に出力する。なお、ここでは、バッファ３５やシフタ３６を設けて、ローカルメモリ４，５同士間でのデータ転送時に必要に応じてシフト演算を行えるようにしている。また、シフト演算に限られず、加算や減算が行えるようにしてもよい。このように、パス中に各種の演算処理部を形成することによって、データ転送時に各種の演算処理も同時に行うことができる。
【００５４】
ローカルメモリ５からシステムバス１７へのパスを形成する際には、ローカルメモリ５の出力ポート（ｒ＿ｄａｔａ＿ｌｍ＿ｂ）のデータをバッファ２９とセレクタ３３とバッファ３０を介してシステムバス１７のデータバス（ｂｕｓ＿ｄａｔａ＿ｒ）に出力する。
【００５５】
レジスタファイル部２５からシステムバス１７へのパスを形成する際には、レジスタファイル部２５の出力ポート（ａｈｂ＿ｏ）のデータをセレクタ３３とバッファ３０を介してシステムバス１７のデータバス（ｂｕｓ＿ｄａｔａ＿ｒ）に出力する。
【００５６】
ローカルデータバス７からレジスタファイル部２５へのパスを形成する際には、ローカルデータバス７のデータバス（ＬＤ＿ｄａｔａ＿ｗ）のデータをレジスタファイル部２５に入力する。
【００５７】
レジスタファイル部２５からローカルデータバス７へのパスを形成する際には、レジスタファイル部２５のデータをローカルデータバス７のデータバス（ＬＤ＿ｄａｔａ＿ｒ）に出力する。
【００５８】
アドレス生成部２４は、図５に示したブロック図のように構成しており、レジスタファイル部２５に格納されている転送元アドレスを示すレジスタＳＡＤＤＲや転送先のアドレスを示すレジスタＤＡＤＤＲや制御レジスタＣＮＴＲＬに基づいて加算器３７，３８やセレクタ３９〜４３やバッファ４４〜４６や関数器４７，４８を制御して転送元又は転送先のアドレスを生成するようにしている。
【００５９】
ここで、関数器４７の真理値表を表５に示す。関数器４７は、制御レジスタＣＮＴＲＬのＳＡＤＤＲ＿ＡＤＤフラグが「０」のときは「４」を出力し、これを加算器３７で加算することによって転送元のアドレスを４バイト進め、一方、制御レジスタＣＮＴＲＬのＳＡＤＤＲ＿ＡＤＤフラグが「１」のときは「０」を出力し、転送元のアドレスの更新を行わないようにしている。
【００６０】
【表５】
2004355049.tif 000007
また、関数器４８の真理値表を表６に示す。関数器４８は、制御レジスタＣＮＴＲＬのＤＡＤＤＲ＿ＡＤＤフラグが「０」のときは「４」を出力し、これを加算器３８で加算することによって転送先のアドレスを４バイト進め、一方、制御レジスタＣＮＴＲＬのＤＡＤＤＲ＿ＡＤＤフラグが「１」のときは「０」を出力し、転送先のアドレスの更新を行わないようにしている。
【００６１】
【表６】
2004355049.tif 000008
また、アドレス生成部２４には、データ転送開始時の転送元のアドレスを格納するレジスタ４９とデータ転送開始時の転送先のアドレスを格納するレジスタ５０とを有しており、データ転送終了後にデータ転送開始時のアドレスをレジスタファイル部２５のレジスタＳＡＤＤＲ、レジスタＤＡＤＤＲに戻せるようになっている。
【００６２】
そして、アドレス生成部２４は、システムバス１７にデータ転送する場合には、セレクタ４１とバッファ４４を介してアドレスを出力し、ローカルメモリ４にデータを転送する場合には、セレクタ４２とバッファ４５を介してアドレスを出力し、ローカルメモリ５にデータを転送する場合には、セレクタ４３とバッファ４６を介してアドレスを出力する。
【００６３】
本プロセッサシステム１は、以上に説明したように構成しており、以下に説明するようにしてデータ転送を行う。
【００６４】
まず、システムバス１７からレジスタファイル部２５へのパスを形成しておき、プロセッサコア部３からレジスタファイル部２５の各レジスタに転送元アドレスや転送先アドレスなどをセットする。
【００６５】
次に、プロセッサコア部３からレジスタファイル部２５の転送開始レジスタＳＴＡＲＴに任意のデータを書き込む。
【００６６】
これにより、ローカルメモリ制御部６は、プロセッサコア部３で行われている処理とは無関係に独立して転送元アドレスのデータを転送先アドレスへデータ転送する。その際に、ローカルメモリ制御部６は、アドレス生成部２４で転送元及び転送先のアドレスを生成するとともに、データパス部２３で必要なパスを形成する。
【００６７】
そして、データ転送処理が完了した場合には、割り込み信号線１９を介して割り込み信号をプロセッサコア部３に送る。
【００６８】
プロセッサコア部３からレジスタファイル部２５にデータを送信する場合には、上記説明ではシステムバス１７を用いた場合について説明したが、プロセッサコア部３とローカルメモリ制御部６とをローカルデータバス７を介して接続しておけば、システムバス１７に代えてローカルデータバス７を使用することもできる。
【００６９】
また、データ転送元が入出力デバイス１５の場合には、リクエスト信号線２０を介してレジスタファイル部２５の転送開始レジスタＳＴＡＲＴに直接データを書き込み、これによって、データ転送を開始し、その後、割り込み信号線１９に代えてリクエスト信号線２１にアクノリッジ信号を入出力デバイス１５に送るようにすることもできる。
【００７０】
【発明の効果】
本発明は、以上に説明したような形態で実施され、以下に記載されるような効果を奏する。
【００７１】
すなわち、請求項１に係る本発明では、プロセッサコア部にローカルデータバスを介して接続されたローカルメモリへデータを転送するローカルメモリ制御部をプロセッサコア部の外部に設けているため、ローカルメモリへのデータ転送処理とプロセッサコア部内での処理とを並列して行うことができ、プロセッサシステムでの処理時間を大幅に短縮させることができる。
【００７２】
しかも、ローカルメモリ制御部をプロセッサコア部の外部に形成しているため、プロセッサコア部の仕様変更が生じてもローカルメモリ制御部を変更する必要が無くなり、プロセッサシステムの開発に要する時間を短縮することができる。
【００７３】
また、請求項２に係る本発明では、ローカルメモリ、プロセッサコア部にシステムバスを介して接続された外部メモリ、または入出力デバイスからローカルメモリへデータを転送するようにしているため、ローカルメモリ同士間、ローカルメモリと外部メモリとの間、またはローカルメモリと入出力デバイスとの間でプロセッサコア部での処理と並列して相互にデータ転送を行うことができる。
【００７４】
また、請求項３に係る本発明では、プロセッサコア部とローカルメモリ制御部とをローカルデータバスを介して接続しているため、プロセッサコア部からの制御信号をローカルデータバスを用いて迅速にローカルメモリ制御部に送信することができ、これによって、プロセッサシステムでの処理時間をより一層短縮することができる。
【００７５】
また、請求項４に係る本発明では、ローカルメモリ制御部と入出力デバイスとをリクエスト信号線を介して接続しているため、入出力デバイスからのリクエスト信号によってローカルメモリ制御部でのデータ転送を開始させることができ、また、ローカルメモリ制御部でのデータ転送の終了後に入出力デバイスにリクエスト信号を返送することができるので、プロセッサコア部を介さずにデータ転送処理を迅速に開始・終了することができ、プロセッサコア部の負荷を軽減することができる。
【図面の簡単な説明】
【図１】本発明に係るプロセッサシステムを示す説明図。
【図２】ローカルメモリ制御部を示す説明図。
【図３】転送元メモリ空間を示す説明図。
【図４】データパス部を示す説明図。
【図５】アドレス生成部を示す説明図。
【図６】従来のプロセッサシステムを示す説明図。
【符号の説明】
１  プロセッサシステム
２  プロセッサ
３  プロセッサコア部
４，５  ローカルメモリ
６  ローカルメモリ制御部
７  ローカルデータバス
８，９  入出力ポート
１０，１１  入出力ポート
１２，１３  外部メモリ
１４，１５  入出力デバイス
１６  ダイレクトメモリコントローラ
１７  システムバス
１９  割り込み信号線
２０，２１  リクエスト信号線
２２  アドレスデコーダ部
２３  データパス部
２４  アドレス生成部
２５  レジスタファイル部
【図１】
2004355049.tif 000009
【図２】
2004355049.tif 000010
【図３】
2004355049.tif 000011
【図４】
2004355049.tif 000012
【図５】
2004355049.tif 000013
【図６】
2004355049.tif 000014