(57)【要約】      （修正有）【課題】占有面積を拡大させることなく、処理速度の向上を実現することができるコンピュータシステムを提供する。【解決手段】メインＣＰＵ２と、コプロセッサ３と、外部メモリ４と、これらを接続するバス５とを備えるコンピュータシステム１において、コプロセッサコアは、命令を書き込む２ページ構成の命令メモリ６と、データを書き込む２ページ構成のデータメモリと、命令を実行するコプロセッサコア８と、これらを接続するバスＩ／Ｆ１０とを備え、先発タスクの処理中に、後発タスクを処理するための命令及びデータの書き込みを行なって、先発タスクの終了後に各ページの接続先の切り替えを行なう。【選択図】図１（ａ）
2007087244.tif 000002
【特許請求の範囲】
【請求項１】
第１の伝送路によってマイクロプロセッサ及び外部記憶装置と接続されると共に、前記外部記憶装置に記憶された命令及びデータを読み出すことによりタスク処理を行うコプロセッサにおいて、
前記命令及び前記データを書き込むメモリと、
該メモリに書き込まれた命令及びデータを読み出し、同命令を実行するコプロセッサコアと、
前記第１の伝送路、前記メモリ及び前記コプロセッサコアを接続する第２の伝送路とを備え、
前記メモリは、独立して書き込み処理及び読み出し処理が可能である複数のページにより構成されると共に、
一のページに書き込まれた命令及びデータをコプロセッサコアが読み出すことによる先発タスクの処理中に、後発タスクを処理するための命令及びデータを他のページに書き込み、先発タスクの終了後に他のページに書き込まれた命令及びデータをコプロセッサコアが読み出すことによって後発タスクの処理を行う様に構成された
ことを特徴とするコプロセッサ。
【請求項２】
マイクロプロセッサと、
コプロセッサと、
該コプロセッサが読み出す命令及びデータが記憶された外部記憶装置と、
前記マイクロプロセッサ、前記コプロセッサ及び前記外部記憶装置を接続する第１の伝送路とを備えるコンピュータシステムにおいて、
前記コプロセッサは、前記命令及び前記データを書き込むメモリと、
該メモリに書き込まれた命令及びデータを読み出し、同命令を実行するコプロセッサコアと、
前記第１の伝送路、前記メモリ及び前記コプロセッサコアを接続する第２の伝送路とを備え、
前記メモリは、独立して書き込み処理及び読み出し処理が可能である複数のページにより構成されると共に、
一のページに書き込まれた命令及びデータをコプロセッサコアが読み出すことによる先発タスクの処理中に、後発タスクを処理するための命令及びデータを他のページに書き込み、先発タスクの終了後に他のページに書き込まれた命令及びデータをコプロセッサコアが読み出すことによって後発タスクの処理を行う様に構成された
ことを特徴とするコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコプロセッサ及びコンピュータシステムに関する。詳しくは、マイクロプロセッサの性能を強化するために、特定分野に特化した補助処理を行うプロセッサの一種であるコプロセッサ及びこうしたコプロセッサを備えるコンピュータシステムに係るものである。
【背景技術】
【０００２】
近年、デジタル音楽やデジタル画像の普及に伴って、コンピュータシステム内で基本的な演算処理を行い、いわばコンピュータシステムの頭脳ともいえるマイクロプロセッサに対して、より複雑化，多様化した処理が求められている。
こうした状況下において、マイクロプロセッサの他に、マイクロプロセッサの性能を強化し、特定分野に特化した補助処理を行うプロセッサであるコプロセッサを配置する技術が提案されている（例えば、特許文献１参照。）。
【０００３】
図４はメインプロセッサの他にコプロセッサが配置されたコンピュータシステムを説明するための模式図であり、ここで示すコンピュータシステム１０１では、メインＣＰＵ（Central Processing Unit：中央処理装置）１０２とコプロセッサ１０３とがバス１０４で接続されており、コプロセッサはメインＣＰＵの要求に応じて動作する様に構成されている。
また、コプロセッサは、命令が記憶された命令メモリ１０５と、データが記憶されたデータメモリ１０６と、命令を実行するコプロセッサコア１０７とを有し、メインＣＰＵの要求に従ってコプロセッサコアは命令メモリから命令を読み出すと共に、データメモリからデータを読み出してタスク処理を行う。
【０００４】
ところで、ＤＳＰ（Digital Signal Processor）等の様に、音楽や画像などの処理に特化したコプロセッサの場合には、取り扱う命令やデータが大量となり、いかにして大量のデータを取り扱うかということが重要になる。
【０００５】
ここで、大量のデータに対処する方法の一例（大量のデータに対処する従来の方法の一例）として、図５（ａ）で示す様に、タスク処理を行うのに必要な命令の全てをコプロセッサ内の命令メモリ１０５に記憶すると共に、タスク処理を行うのに必要なデータの全てをコプロセッサ内のデータメモリ１０６に記憶する方法がある。かかる方法では、全命令と全データをメモリに格納するために、高速処理が可能となる。
【０００６】
しかし、全命令と全データをメモリ（命令メモリ及びデータメモリ）に格納する方法においては、格納する全命令と全データの容量が大きくなればなるほどメモリが増大することとなり、コプロセッサの占有面積の拡大を招いてしまう。また、メモリ容量の増大はコスト高をも招く結果となる。
【０００７】
そこで、大量のデータに対処する方法の他の一例（大量のデータに対処する従来の方法の他の一例）として、図５（ｂ）で示す様に、外部メモリ１０８をバス接続し、タスク処理を行うのに必要な全命令及び全データを外部メモリに記憶し、所定のタスク処理を行う場合には、そのタスク処理を行うにあたって必要な命令とデータのみをメインＣＰＵの要求によってコプロセッサコアを介してコプロセッサ内の命令メモリ及びデータメモリに書き込みを行ない、即ち、タスク処理を行う際に、メインＣＰＵの要求によって外部メモリ内の所定の命令及びデータをコプロセッサコアを介してコプロセッサ内の命令メモリ及びデータメモリにタスク単位で転送した後に、命令メモリ及びデータメモリから命令及びデータの読み出しを行なってタスク処理を行う方法がある。かかる方法では、タスク処理を行うのに必要な全命令及び全データを外部メモリに記憶しているために、コプロセッサの占有面積が拡大することがない。また、一般的に外部メモリは命令メモリやデータメモリと比べると安価であるために、コスト低減も実現することとなる。
【０００８】
【特許文献１】特開平１１−７３３１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、タスク処理を行うのに必要な全命令及び全データを外部メモリに記憶し、所定のタスク処理を行うにあたって必要な命令とデータ命令のみを命令メモリ及びデータメモリに転送する方法では、外部メモリから命令メモリやデータメモリに命令やデータを転送するための時間が必要となる。そして、一般的に外部メモリの速度はコプロセッサ内の命令メモリやデータメモリに比べると低速であるために、処理速度の低下が問題となってくる。
【００１０】
本発明は以上の点に鑑みて創案されたものであって、占有面積を拡大させることなく、処理速度の向上を実現することができるコプロセッサ及びこうしたコプロセッサを備えるコンピュータシステムを提供することを目的とするものである。
【課題を解決するための手段】
【００１１】
上記の目的を達成するために、本発明に係るコプロセッサでは、第１の伝送路によってマイクロプロセッサ及び外部記憶装置と接続されると共に、前記外部記憶装置に記憶された命令及びデータを読み出すことによりタスク処理を行うコプロセッサにおいて、前記命令及び前記データを書き込むメモリと、該メモリに書き込まれた命令及びデータを読み出し、同命令を実行するコプロセッサコアと、前記第１の伝送路、前記メモリ及び前記コプロセッサコアを接続する第２の伝送路とを備え、前記メモリは、独立して書き込み処理及び読み出し処理が可能である複数のページにより構成されると共に、一のページに書き込まれた命令及びデータをコプロセッサコアが読み出すことによる先発タスクの処理中に、後発タスクを処理するための命令及びデータを他のページに書き込み、先発タスクの終了後に他のページに書き込まれた命令及びデータをコプロセッサコアが読み出すことによって後発タスクの処理を行う様に構成されている。
【００１２】
また、上記の目的を達成するために、本発明に係るコンピュータシステムでは、マイクロプロセッサと、コプロセッサと、該コプロセッサが読み出す命令及びデータが記憶された外部記憶装置と、前記マイクロプロセッサ、前記コプロセッサ及び前記外部記憶装置を接続する第１の伝送路とを備えるコンピュータシステムにおいて、前記コプロセッサは、前記命令及び前記データを書き込むメモリと、該メモリに書き込まれた命令及びデータを読み出し、同命令を実行するコプロセッサコアと、前記第１の伝送路、前記メモリ及び前記コプロセッサコアを接続する第２の伝送路とを備え、前記メモリは、独立して書き込み処理及び読み出し処理が可能である複数のページにより構成されると共に、一のページに書き込まれた命令及びデータをコプロセッサコアが読み出すことによる先発タスクの処理中に、後発タスクを処理するための命令及びデータを他のページに書き込み、先発タスクの終了後に他のページに書き込まれた命令及びデータをコプロセッサコアが読み出すことによって後発タスクの処理を行う様に構成されている。
【００１３】
ここで、メモリが独立して書き込み処理及び読み出し処理が可能である複数のページから構成されることによって、一のページから命令及びデータの読み出し処理を行いつつ、他のページに命令及びデータの書き込み処理を行うことができる。
【００１４】
また、一のページに書き込まれた命令及びデータをコプロセッサコアが読み出すことによる先発タスクの処理中に、後発タスクを処理するための命令及びデータを他のページに書き込み、先発タスクの終了後に他のページに書き込まれた命令及びデータをコプロセッサコアが読み出して後発タスクの処理を行うことによって、先発タスクの処理を終えてから後発タスクの処理を開始するまでの時間の短縮化が実現する。以下、この点について図６を用いて具体的に説明を行う。
【００１５】
［１］メモリが２つのページにより構成される場合（図６（ａ）参照。）
メモリが２つのページ（第１のページ及び第２のページ）により構成される場合において、時刻ｔ１までにタスクＡを処理するための命令及びデータ（タスクＡデータ：以下、任意のタスクＸを処理するための命令及びデータのことをタスクＸデータと称する。）が第１のページに書き込まれている場合を例に挙げて説明を行う。
この場合、時刻ｔ１〜ｔ２において、第１のページに書き込まれたタスクＡデータを読み出してタスクＡの処理を行いつつ、第２のページにはタスクＢデータの書き込みを行なう。そして、時刻ｔ２〜ｔ３において、第２のページに書き込まれたタスクＢデータを読み出してタスクＢの処理を行いつつ、第１のページにはタスクＣデータの書き込みを行なう。以後も同様にしてタスクＣ，タスクＤ，タスクＥ・・・について処理を行う。
この様に、第１のページに書き込まれたタスクＭデータを読み出してタスクＭの処理を行いつつ、第２のページにタスクＮデータ（タスクＮ：タスクＭの次に行なうタスク）の書き込みを行ない、タスクＭの処理が終了すると、データの読み出し元を第１のページから第２のページに切り替えて、タスクＮデータを読み出してタスクＮの処理を行うことで、タスクＭの処理が終了した後、タスクＮの処理を開始するまでの時間を短縮することができるのである。なお、タスクＭの処理が終了するまでにタスクＮデータを第２のページに書き込むことができれば、タスクＭの処理が終了した直後にタスクＮの処理を開始することができる。
【００１６】
一方、タスクＭの処理が終了するまでにタスクＮデータを第２のページに書き込むことができていない場合、即ち、タスクＭの終了時点で、タスクＮデータの書き込み処理が終了していない場合には、タスクＮデータの書き込み処理が終了した後にタスクＮの処理を開始することとなり、タスクＭの処理が終了した後、タスクＮの処理を開始するまでに若干の時間を要してしまうこととなる。この様な場合には、メモリを３以上のページ（例えば３つのページ）で構成することにより、更なる処理能力の向上を図ることができる。
【００１７】
［２］メモリが３つのページにより構成される場合（図６（ｂ）参照。）
メモリが３つのページ（第１のページ、第２のページ及び第３のページ）により構成される場合において、時刻ｔ１までにタスクＡデータが第１のページに書き込まれ、時刻ｔ２までにタスクＢデータが第２のページに書き込まれている場合を例に挙げて説明を行う。
この場合、時刻ｔ１〜ｔ２において、第１のページに書き込まれたタスクＡデータを読み出してタスクＡの処理を行いつつ、第２のページにはタスクＢデータの書き込みを行ない、第３のページにはタスクＣデータの書き込みを行なう。そして、時刻ｔ２〜ｔ３において、第２のページに書き込まれたタスクＢデータを読み出してタスクＢの処理を行いつつ、第１のページにはタスクＤデータの書き込みを行ない、第３のページには引き続いてタスクＣデータの書き込みを行なう。続いて、時刻ｔ３〜ｔ４において、第３のページに書き込まれたタスクＣデータを読み出してタスクＣの処理を行いつつ、第１のページには引き続いてタスクＤデータの書き込みを行ない、第２のページにはタスクＥデータの書き込みを行なう。以後も同様にしてタスクＤ，タスクＥ・・・について処理を行う。
この様に、メモリを３つのページで構成することによって、タスクデータの書き込み処理時間を長くとることができるために（具体的には、先発タスクの処理が終了した直後に後発タスクの処理を開始する前提として、メモリが２つのページにより構成される場合には、第１のページに書き込まれたタスクデータを読み出して処理を行う期間中に第２のページにタスクデータを書き込む必要があり、同様に、第２のページに書き込まれたタスクデータを読み出して処理を行う期間中に第１のページにタスクデータを書き込む必要があったのに対して、メモリが３つのページにより構成される場合には、第１のページ及び第２のページに書き込まれたタスクデータを読み出して処理を行う期間中に第３のページにタスクデータを書き込めば充分であり、同様に、第２のページ及び第３のページに書き込まれたタスクデータを読み出して処理を行う期間中に第１のページにタスクデータを書き込めば充分であり、第３のページ及び第１のページに書き込まれたタスクデータを読み出して処理を行う期間中に第２のページにタスクデータを書き込めば充分であるために）、タスクデータの書き込み速度を増加させることなく、先発タスクの処理が終了するまでに後発タスクのデータの書き込みを終了させることが期待できる。
【００１８】
なお、メモリを構成するページ数を増大させることなくタスクＮデータの書き込み速度を増加させることによって、タスクＭの処理の終了時点でタスクＮデータの書き込み処理を終了させることも可能であるが、データの書き込み速度を向上させると消費電力の増大を招く結果となる。一方、あまりにページ数を増大させてメモリを構成した場合には、上記した大量のデータに対処する従来の方法の一例の様に、コプロセッサの占有面積の拡大を招く結果となる。従って、消費電力と占有面積との兼ね合いによって、ページ数を決定する必要があるといえる。
【発明の効果】
【００１９】
上記した本発明のコプロセッサ及びコンピュータシステムでは、コプロセッサの占有面積を拡大させることなく、処理速度の向上を実現することができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施の形態について図面を参照しながら説明し、本発明の理解に供する。
図１（ａ）は本発明を適用したコンピュータシステムの一例を説明するための模式図であり、ここで示すコンピュータシステム１では、メインＣＰＵ２、コプロセッサ３及び外部メモリ４がバス５で接続されており、コプロセッサはメインＣＰＵの要求に応じて動作する様に構成されている。なお、ここでのメインＣＰＵはマイクロプロセッサの一例であり、外部メモリは外部記憶装置の一例であり、バスは第１の伝送路の一例である。
【００２１】
また、コプロセッサは、命令を書き込む命令メモリ６と、データを書き込むデータメモリ７と、命令メモリに書き込まれた命令及びデータメモリに書き込まれたデータを読み出して命令を実行するコプロセッサコア８と、メインＣＰＵからの要求に従ってコプロセッサコアの制御を行なう制御レジスタ９がバスインターフェイス（バスＩ／Ｆ）１０で接続されている。なお、ここでの命令メモリ及びデータメモリはメモリの一例であり、バスインターフェイスは第２の伝送路の一例である。
【００２２】
ここで、命令メモリは互いに独立して命令の書き込み処理及び読み出し処理を行うことができる第１の命令メモリ６ａ及び第２の命令メモリ６ｂの２ページ構成とされ、同様にデータメモリについても互いに独立してデータの書き込み処理及び読み出し処理を行うことができる第１のデータメモリ７ａ及び第２のデータメモリ７ｂの２ページ構成とされている。
【００２３】
ところで、上記した外部メモリから命令が転送されて命令メモリに書き込みを行い、コプロセッサコアが命令メモリに書き込まれた命令を読み出してタスク処理を行うのであるが、命令が命令メモリ内のどの領域に書き込まれたかという情報は、命令メモリ内の領域毎に順番に付されたアドレスと称される番地によって特定できる様に構成されている。
また、各プログラム（プログラムは複数の命令によって構成されている）の最後には、「ＥＮＤ命令」が組み込まれており、この「ＥＮＤ命令」を実行することによって、コプロセッサコアの処理が終了したことメインＣＰＵに伝えることができる様に構成されている。
【００２４】
また、命令メモリは、命令メモリの一方のページ（例えば、第１の命令メモリ）が外部メモリと接続されている場合には、他方のページ（例えば、第２の命令メモリ）はコプロセッサコアと接続される様に構成されており、命令メモリの一方のページ（例えば、第１の命令メモリ）がコプロセッサコアと接続されている場合には、他方のページ（例えば、第２の命令メモリ）は外部メモリと接続される様に構成されている。
同様に、データメモリは、データメモリの一方のページ（例えば、第１のデータメモリ）が外部メモリと接続されている場合には、他方のページ（例えば、第２のデータメモリ）はコプロセッサコアと接続される様に構成されており、データメモリの一方のページ（例えば、第１のデータメモリ）がコプロセッサコアと接続されている場合には、他方のページ（例えば、第２のデータメモリ）は外部メモリと接続される様に構成されている。
【００２５】
なお、本実施例では、命令を書き込む命令メモリとデータを書き込むデータメモリとをそれぞれ設けて、命令とデータとを別個に書き込んでいるものの、命令及びデータはタスクを処理するにあたってコプロセッサコアがメモリ（命令メモリ及びデータメモリ）から読み出し処理を行えるようにコプロセッサ内のメモリに書き込まれていれば充分であり、必ずしも命令メモリとデータメモリとをそれぞれ設けて、命令とデータとを別個に書き込む必要は無く、図２で示す様に、命令及びデータの双方を書き込むメモリ１１を設けて、このメモリに命令及びデータの双方を書き込んでも良い。この場合においても、メモリは単一のページから構成するのではなく、互いに独立して命令及びデータの書き込み処理及び読み出し処理を行うことができる第１のメモリ１１ａ及び第２のメモリ１１ｂの２ページ構成とする必要がある。
【００２６】
また、制御レジスタはメインＣＰＵからの要求に従ってコプロセッサコアを制御するものであり、コプロセッサコアが処理を開始するアドレスを示すＳＰＣレジスタ、コプロセッサコアにＳＰＣレジスタで示されたアドレスから処理を開始させるＳＴＡＲＴレジスタ及び命令メモリ及びデータメモリのページの接続先の切り替えを行なうＳＷＴレジスタから構成される。
ＳＷＴレジスタについて、更に具体的には、外部メモリと接続していた一方のページ（例えば、第１の命令メモリ、第１のデータメモリ）をコプロセッサコアへの接続に切り替えると共に、コプロセッサコアと接続していた他方のページ（例えば、第２の命令メモリ、第２のデータメモリ）を外部メモリへの接続に切り替えるといった具合である。
【００２７】
上記の様に構成されたコンピュータシステムのタスクの処理について、タスクＡ，タスクＢ，タスクＣ・・・を順に処理する場合を例に挙げて説明を行う。以下では、初期状態においては、第１の命令メモリ及び第１のデータメモリが外部メモリと接続され、第２の命令メモリ及び第２のデータメモリがコプロセッサコアと接続されているものとする。また、任意のタスクＸを処理するための命令を命令Ｘと称し、任意のタスクＸを処理するためのデータをデータＸと称する。
【００２８】
さて、タスク処理を行う場合には、先ず、メインＣＰＵから命令Ａ及びデータＡを転送する指示を出し、外部メモリから命令Ａを第１の命令メモリに書き込むと共に、データＡを第１のデータメモリに書き込む（図３（ａ）参照。）。なお、上記した様に、第１の命令メモリ内のどの領域に命令Ａが書き込まれたかということについては、アドレスによって特定することができる。
【００２９】
次に、メインＣＰＵが指示を出すことによって、コプロセッサコアがタスクＡの処理を行うにあたって、処理を開始するアドレスをＳＰＣレジスタに書き込む（図３（ｂ）参照。）。
【００３０】
続いて、メインＣＰＵがＳＴＡＲＴレジスタにコプロセッサの処理開始の要求を行なうと、ＳＷＴレジスタが各ページの接続先を切り替え、即ち、第１の命令メモリ及び第１のデータメモリとコプロセッサコアとを接続すると共に、第２の命令メモリと第２のデータメモリを外部メモリと接続する（図３（ｃ）参照。）。
【００３１】
ここで、第１の命令メモリ及び第１のデータメモリとコプロセッサコアとの接続が確保されると、コプロセッサコアはＳＰＣレジスタに書き込まれたアドレスから処理を開始することによってタスクＡの処理を開始する（図３（ｄ）参照。）。
また、第２の命令メモリ及び第２のデータメモリと外部メモリとの接続が確保されると、メインＣＰＵから命令Ｂ及びデータＢを転送する指示を出し、外部メモリから命令Ｂを第２の命令メモリに書き込むと共に、データＢを第２のデータメモリに書き込む（図３（ｅ）参照。）。更に、メインＣＰＵが指示を出すことによって、コプロセッサコアがタスクＢを処理するにあたって、処理を開始するアドレスをＳＰＣレジスタに書き込む（図３（ｆ）参照。）。
即ち、メインＣＰＵがＳＴＡＲＴレジスタに指示を出し、ＳＷＴレジスタが各ページの接続先を切り替えると、ＳＰＣレジスタに書き込まれたアドレスからコプロセッサコアが処理を開始すると同時に、命令Ｂを第２の命令メモリに書き込むと共に、データＢを第２のデータメモリに書き込む。
【００３２】
続いて、コプロセッサコアによるタスクＡの処理が終了すると、即ち、タスクＡのプログラムの最後に組み込まれた「ＥＮＤ命令」が実行されると、コプロセッサコアからメインＣＰＵにタスクＡの処理が終了したことを伝える割り込み信号が発せられる。
【００３３】
メインＣＰＵに割り込み信号が発せられると、メインＣＰＵはＳＴＡＲＴレジスタにコプロセッサの処理開始の要求を行い、ＳＷＴレジスタが各ページの接続先を切り替え、即ち、第１の命令メモリと第１のデータメモリを外部メモリと接続すると共に、第２の命令メモリと第２のデータメモリをコプロセッサコアと接続する（図３（ｇ）参照。）。
【００３４】
ここで、第２の命令メモリ及び第２のデータメモリとコプロセッサコアとの接続が確保されると、コプロセッサコアはＳＰＣレジスタに書き込まれたアドレスから処理を開始することによってタスクＢの処理を開始する（図３（ｈ）参照。）。
また、第１の命令メモリ及び第１のデータメモリと外部メモリとの接続が確保されると、メインＣＰＵから命令Ｃ及びデータＣを転送する指示を出し、外部メモリから命令Ｃを第１の命令メモリに書き込むと共に、データＣを第２のデータメモリに書き込む（図３（ｉ）参照。）。更に、メインＣＰＵが指示を出すことによって、コプロセッサコアがタスクＣを処理するにあたって、処理を開始するアドレスをＳＰＣレジスタに書き込む（図３（ｊ）参照。）。
即ち、メインＣＰＵがＳＴＡＲＴレジスタに指示を出し、ＳＷＴレジスタが各ページの接続先を切り替えると、ＳＰＣレジスタに書き込まれたアドレスからコプロセッサコアが処理を開始すると同時に、命令Ｃを第１の命令メモリに書き込むと共に、データＣを第１のデータメモリに書き込む。
【００３５】
続いて、コプロセッサコアによるタスクＢの処理が終了すると、即ち、タスクＢのプログラムの最後に組み込まれた「ＥＮＤ命令」が実行されると、コプロセッサコアからメインＣＰＵにタスクＢの処理が終了したことを伝える割り込み信号が発せられる。
【００３６】
以上の処理フローを繰り返し行うことによって、即ち、メインＣＰＵの要求に基づいてタスク毎に各ページの接続先を切り替えることによって順次タスクを処理することができるのである。
【００３７】
ここで、本実施例では、単一のメインＣＰＵを有するコンピュータシステムについて説明を行ったが、メインＣＰＵの並列処理を行うべくコンピュータシステム内に複数のメインＣＰＵを設けても良い。なお、コンピュータシステム内に複数のメインＣＰＵを設けることによって、個々のメインＣＰＵの処理負担の軽減が図れることとなり、低消費電力化が実現すると考えられる。
【００３８】
具体的には、例えば、図１（ｂ）で示す様に、第１のメインＣＰＵ２１、第２のメインＣＰＵ２２、コプロセッサ３及び外部メモリ４をバス５で接続し、コプロセッサは第１のメインＣＰＵ及び第２のメインＣＰＵの要求に応じて動作する様な構成が考えられる。この場合には、コプロセッサは、命令を書き込む命令メモリ６と、データを書き込むデータメモリ７と、命令メモリに書き込まれた命令及びデータメモリに書き込まれたデータを読み出して命令を実行するコプロセッサコア８と、第１のメインＣＰＵ及び第２のメインＣＰＵからの要求に従ってコプロセッサコアの制御を行なう制御レジスタ９がバスＩ／Ｆ１０で接続されている。
【００３９】
ところで、第１のメインＣＰＵ及び第２のメインＣＰＵを設けて、両者の要求に応じてコプロセッサが動作する様に構成した場合には、一方のメインＣＰＵ（例えば、第１のメインＣＰＵ）がＳＴＡＲＴレジスタに指示を出し、ＳＷＴレジスタが各ページの接続先を切り替えようとした時に、他方のメインＣＰＵ（例えば、第２のメインＣＰＵ）の要求に応じてコプロセッサが動作していることも考えられる。
【００４０】
従って、コンピュータシステム内に複数のメインＣＰＵを設けた場合には、コプロセッサコアが処理中であるか否かを判断するＡＣＴレジスタを制御レジスタ内に設けて、一方のメインＣＰＵ（例えば、第１のメインＣＰＵ）が指示を出して、所定の処理を開始するアドレスをＳＰＣレジスタに書き込んだ後、ＡＣＴレジスタがコプロセッサは処理中ではなく待機状態（具体的には、他方のメインＣＰＵ（例えば、第２のメインＣＰＵ）からの指示で処理を行っていない状態）を示している場合にのみ、一方のメインＣＰＵ（例えば、第１のメインＣＰＵ）がＳＴＡＲＴレジスタにコプロセッサの処理開始の要求を行なう様に構成する必要がある。
【００４１】
本発明を適用したコンピュータシステムでは、命令メモリが互いに独立して命令の書き込み処理及び読み出し処理を行うことができる第１の命令メモリ及び第２の命令メモリの２ページ構成とされ、即ち、ページ毎にそれぞれ異なるタスク処理に必要な命令の書き込み（読み出し）が可能な構成とされ、同様に、データメモリについても互いに独立してデータの書き込み処理及び読み出し処理を行うことができる第１のデータメモリ及び第２のデータメモリの２ページ構成とされ、即ち、ページ毎にそれぞれ異なるタスク処理に必要なデータの書き込み（読み出し）が可能な構成とされると共に、コプロセッサコアとバスの両方から命令メモリ及びデータメモリにアクセスすることが可能であるために、一方のページ（例えば、第１の命令メモリ、第１のデータメモリ）に書き込まれた命令及びデータを読み出すことによるコプロセッサコアの先発タスク処理中に、同時に他方のページ（例えば、第２の命令メモリ、第２のデータメモリ）には後発タスク処理のための命令及びデータを外部メモリから転送して書き込むことができ、先発タスクの終了後にメインＣＰＵからの要求によってページを切り替えることでタスク処理の効率化が実現する。
即ち、従来のコンピュータシステムの様に、命令メモリ及びデータメモリがそれぞれ１ページ構成である場合には、命令メモリやデータメモリは、コプロセッサコアと外部メモリのいずれか一方にしかアクセスすることができないために、命令メモリ及びデータメモリに書き込まれた命令及びデータを読み出すことによるコプロセッサコアのタスク処理と、タスク処理のための命令及びデータを外部メモリから転送して書き込むことを同時に行なうことができず、タスク処理のための命令及びデータを外部メモリから命令メモリ及びデータメモリに転送する際にはコプロセッサコアのタスク処理を停止させる必要があるのに対して、本発明を適用したコンピュータシステムでは、タスク処理のための命令及びデータを外部メモリから命令メモリ及びデータメモリの一方のページに転送すると同時にコプロセッサコアのタスク処理を行うことができるので、外部メモリへの接続時間を考慮する必要が無くなり、タスク処理の効率化が実現するのである。
【００４２】
ここで、先発タスクの処理が終了するまでに、後発タスクを処理するために必要な命令及びデータの転送が完了する様に外部メモリから命令メモリ及びデータメモリへの転送を行なう場合には、一方のページと他方のページとの切り替え作業を繰り返すことによって、コプロセッサによるタスク処理を絶え間なく実行することができる。
【００４３】
なお、本発明を適用したコンピュータシステムでは、タスク処理を行うのに必要な全命令及び全データは外部メモリに記憶させておき、必要に応じてコプロセッサ内の命令メモリ及びデータメモリに転送する構成を採っているために、大量のデータに対処する場合であってもコプロセッサの占有面積とコストの拡大を抑制できる。
【図面の簡単な説明】
【００４４】
【図１（ａ）】本発明を適用したコンピュータシステムの一例を説明するための模式図である。
【図１（ｂ）】本発明を適用したコンピュータシステムの変形例を説明するための模式図である。
【図２】本発明を適用したコンピュータシステムの変形例を説明するための模式図である。
【図３】本発明を適用したコンピュータシステムにおけるタスク処理を説明するための模式図である。
【図４】メインプロセッサの他にコプロセッサが配置されたコンピュータシステムを説明するための模式図である。
【図５】大量のデータに対処する方法を説明するための模式図である。
【図６】先発タスクの処理を終えてから後発タスクの処理を開始するまでの時間の短縮化を説明するための模式図である。
【符号の説明】
【００４５】
１    コンピュータシステム
２    メインＣＰＵ
３    コプロセッサ
４    外部メモリ
５    バス
６    命令メモリ
７    データメモリ
８    コプロセッサコア
９    制御レジスタ
１０    バスインターフェイス
１１    メモリ
２１    第１のメインＣＰＵ
２２    第２のメインＣＰＵ
【図１（ａ）】
2007087244.tif 000003
【図１（ｂ）】
2007087244.tif 000004
【図２】
2007087244.tif 000005
【図３】
2007087244.tif 000006
【図４】
2007087244.tif 000007
【図５】
2007087244.tif 000008
【図６】
2007087244.tif 000009