JP2007087244A - コプロセッサ及びコンピュータシステム - Google Patents
コプロセッサ及びコンピュータシステム Download PDFInfo
- Publication number
- JP2007087244A JP2007087244A JP2005277242A JP2005277242A JP2007087244A JP 2007087244 A JP2007087244 A JP 2007087244A JP 2005277242 A JP2005277242 A JP 2005277242A JP 2005277242 A JP2005277242 A JP 2005277242A JP 2007087244 A JP2007087244 A JP 2007087244A
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- task
- coprocessor
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Advance Control (AREA)
Abstract
【課題】占有面積を拡大させることなく、処理速度の向上を実現することができるコンピュータシステムを提供する。
【解決手段】メインCPU2と、コプロセッサ3と、外部メモリ4と、これらを接続するバス5とを備えるコンピュータシステム1において、コプロセッサコアは、命令を書き込む2ページ構成の命令メモリ6と、データを書き込む2ページ構成のデータメモリと、命令を実行するコプロセッサコア8と、これらを接続するバスI/F10とを備え、先発タスクの処理中に、後発タスクを処理するための命令及びデータの書き込みを行なって、先発タスクの終了後に各ページの接続先の切り替えを行なう。
【選択図】図1(a)
【解決手段】メインCPU2と、コプロセッサ3と、外部メモリ4と、これらを接続するバス5とを備えるコンピュータシステム1において、コプロセッサコアは、命令を書き込む2ページ構成の命令メモリ6と、データを書き込む2ページ構成のデータメモリと、命令を実行するコプロセッサコア8と、これらを接続するバスI/F10とを備え、先発タスクの処理中に、後発タスクを処理するための命令及びデータの書き込みを行なって、先発タスクの終了後に各ページの接続先の切り替えを行なう。
【選択図】図1(a)
Description
本発明はコプロセッサ及びコンピュータシステムに関する。詳しくは、マイクロプロセッサの性能を強化するために、特定分野に特化した補助処理を行うプロセッサの一種であるコプロセッサ及びこうしたコプロセッサを備えるコンピュータシステムに係るものである。
近年、デジタル音楽やデジタル画像の普及に伴って、コンピュータシステム内で基本的な演算処理を行い、いわばコンピュータシステムの頭脳ともいえるマイクロプロセッサに対して、より複雑化,多様化した処理が求められている。
こうした状況下において、マイクロプロセッサの他に、マイクロプロセッサの性能を強化し、特定分野に特化した補助処理を行うプロセッサであるコプロセッサを配置する技術が提案されている(例えば、特許文献1参照。)。
こうした状況下において、マイクロプロセッサの他に、マイクロプロセッサの性能を強化し、特定分野に特化した補助処理を行うプロセッサであるコプロセッサを配置する技術が提案されている(例えば、特許文献1参照。)。
図4はメインプロセッサの他にコプロセッサが配置されたコンピュータシステムを説明するための模式図であり、ここで示すコンピュータシステム101では、メインCPU(Central Processing Unit:中央処理装置)102とコプロセッサ103とがバス104で接続されており、コプロセッサはメインCPUの要求に応じて動作する様に構成されている。
また、コプロセッサは、命令が記憶された命令メモリ105と、データが記憶されたデータメモリ106と、命令を実行するコプロセッサコア107とを有し、メインCPUの要求に従ってコプロセッサコアは命令メモリから命令を読み出すと共に、データメモリからデータを読み出してタスク処理を行う。
また、コプロセッサは、命令が記憶された命令メモリ105と、データが記憶されたデータメモリ106と、命令を実行するコプロセッサコア107とを有し、メインCPUの要求に従ってコプロセッサコアは命令メモリから命令を読み出すと共に、データメモリからデータを読み出してタスク処理を行う。
ところで、DSP(Digital Signal Processor)等の様に、音楽や画像などの処理に特化したコプロセッサの場合には、取り扱う命令やデータが大量となり、いかにして大量のデータを取り扱うかということが重要になる。
ここで、大量のデータに対処する方法の一例(大量のデータに対処する従来の方法の一例)として、図5(a)で示す様に、タスク処理を行うのに必要な命令の全てをコプロセッサ内の命令メモリ105に記憶すると共に、タスク処理を行うのに必要なデータの全てをコプロセッサ内のデータメモリ106に記憶する方法がある。かかる方法では、全命令と全データをメモリに格納するために、高速処理が可能となる。
しかし、全命令と全データをメモリ(命令メモリ及びデータメモリ)に格納する方法においては、格納する全命令と全データの容量が大きくなればなるほどメモリが増大することとなり、コプロセッサの占有面積の拡大を招いてしまう。また、メモリ容量の増大はコスト高をも招く結果となる。
そこで、大量のデータに対処する方法の他の一例(大量のデータに対処する従来の方法の他の一例)として、図5(b)で示す様に、外部メモリ108をバス接続し、タスク処理を行うのに必要な全命令及び全データを外部メモリに記憶し、所定のタスク処理を行う場合には、そのタスク処理を行うにあたって必要な命令とデータのみをメインCPUの要求によってコプロセッサコアを介してコプロセッサ内の命令メモリ及びデータメモリに書き込みを行ない、即ち、タスク処理を行う際に、メインCPUの要求によって外部メモリ内の所定の命令及びデータをコプロセッサコアを介してコプロセッサ内の命令メモリ及びデータメモリにタスク単位で転送した後に、命令メモリ及びデータメモリから命令及びデータの読み出しを行なってタスク処理を行う方法がある。かかる方法では、タスク処理を行うのに必要な全命令及び全データを外部メモリに記憶しているために、コプロセッサの占有面積が拡大することがない。また、一般的に外部メモリは命令メモリやデータメモリと比べると安価であるために、コスト低減も実現することとなる。
しかしながら、タスク処理を行うのに必要な全命令及び全データを外部メモリに記憶し、所定のタスク処理を行うにあたって必要な命令とデータ命令のみを命令メモリ及びデータメモリに転送する方法では、外部メモリから命令メモリやデータメモリに命令やデータを転送するための時間が必要となる。そして、一般的に外部メモリの速度はコプロセッサ内の命令メモリやデータメモリに比べると低速であるために、処理速度の低下が問題となってくる。
本発明は以上の点に鑑みて創案されたものであって、占有面積を拡大させることなく、処理速度の向上を実現することができるコプロセッサ及びこうしたコプロセッサを備えるコンピュータシステムを提供することを目的とするものである。
上記の目的を達成するために、本発明に係るコプロセッサでは、第1の伝送路によってマイクロプロセッサ及び外部記憶装置と接続されると共に、前記外部記憶装置に記憶された命令及びデータを読み出すことによりタスク処理を行うコプロセッサにおいて、前記命令及び前記データを書き込むメモリと、該メモリに書き込まれた命令及びデータを読み出し、同命令を実行するコプロセッサコアと、前記第1の伝送路、前記メモリ及び前記コプロセッサコアを接続する第2の伝送路とを備え、前記メモリは、独立して書き込み処理及び読み出し処理が可能である複数のページにより構成されると共に、一のページに書き込まれた命令及びデータをコプロセッサコアが読み出すことによる先発タスクの処理中に、後発タスクを処理するための命令及びデータを他のページに書き込み、先発タスクの終了後に他のページに書き込まれた命令及びデータをコプロセッサコアが読み出すことによって後発タスクの処理を行う様に構成されている。
また、上記の目的を達成するために、本発明に係るコンピュータシステムでは、マイクロプロセッサと、コプロセッサと、該コプロセッサが読み出す命令及びデータが記憶された外部記憶装置と、前記マイクロプロセッサ、前記コプロセッサ及び前記外部記憶装置を接続する第1の伝送路とを備えるコンピュータシステムにおいて、前記コプロセッサは、前記命令及び前記データを書き込むメモリと、該メモリに書き込まれた命令及びデータを読み出し、同命令を実行するコプロセッサコアと、前記第1の伝送路、前記メモリ及び前記コプロセッサコアを接続する第2の伝送路とを備え、前記メモリは、独立して書き込み処理及び読み出し処理が可能である複数のページにより構成されると共に、一のページに書き込まれた命令及びデータをコプロセッサコアが読み出すことによる先発タスクの処理中に、後発タスクを処理するための命令及びデータを他のページに書き込み、先発タスクの終了後に他のページに書き込まれた命令及びデータをコプロセッサコアが読み出すことによって後発タスクの処理を行う様に構成されている。
ここで、メモリが独立して書き込み処理及び読み出し処理が可能である複数のページから構成されることによって、一のページから命令及びデータの読み出し処理を行いつつ、他のページに命令及びデータの書き込み処理を行うことができる。
また、一のページに書き込まれた命令及びデータをコプロセッサコアが読み出すことによる先発タスクの処理中に、後発タスクを処理するための命令及びデータを他のページに書き込み、先発タスクの終了後に他のページに書き込まれた命令及びデータをコプロセッサコアが読み出して後発タスクの処理を行うことによって、先発タスクの処理を終えてから後発タスクの処理を開始するまでの時間の短縮化が実現する。以下、この点について図6を用いて具体的に説明を行う。
[1]メモリが2つのページにより構成される場合(図6(a)参照。)
メモリが2つのページ(第1のページ及び第2のページ)により構成される場合において、時刻t1までにタスクAを処理するための命令及びデータ(タスクAデータ:以下、任意のタスクXを処理するための命令及びデータのことをタスクXデータと称する。)が第1のページに書き込まれている場合を例に挙げて説明を行う。
この場合、時刻t1〜t2において、第1のページに書き込まれたタスクAデータを読み出してタスクAの処理を行いつつ、第2のページにはタスクBデータの書き込みを行なう。そして、時刻t2〜t3において、第2のページに書き込まれたタスクBデータを読み出してタスクBの処理を行いつつ、第1のページにはタスクCデータの書き込みを行なう。以後も同様にしてタスクC,タスクD,タスクE・・・について処理を行う。
この様に、第1のページに書き込まれたタスクMデータを読み出してタスクMの処理を行いつつ、第2のページにタスクNデータ(タスクN:タスクMの次に行なうタスク)の書き込みを行ない、タスクMの処理が終了すると、データの読み出し元を第1のページから第2のページに切り替えて、タスクNデータを読み出してタスクNの処理を行うことで、タスクMの処理が終了した後、タスクNの処理を開始するまでの時間を短縮することができるのである。なお、タスクMの処理が終了するまでにタスクNデータを第2のページに書き込むことができれば、タスクMの処理が終了した直後にタスクNの処理を開始することができる。
メモリが2つのページ(第1のページ及び第2のページ)により構成される場合において、時刻t1までにタスクAを処理するための命令及びデータ(タスクAデータ:以下、任意のタスクXを処理するための命令及びデータのことをタスクXデータと称する。)が第1のページに書き込まれている場合を例に挙げて説明を行う。
この場合、時刻t1〜t2において、第1のページに書き込まれたタスクAデータを読み出してタスクAの処理を行いつつ、第2のページにはタスクBデータの書き込みを行なう。そして、時刻t2〜t3において、第2のページに書き込まれたタスクBデータを読み出してタスクBの処理を行いつつ、第1のページにはタスクCデータの書き込みを行なう。以後も同様にしてタスクC,タスクD,タスクE・・・について処理を行う。
この様に、第1のページに書き込まれたタスクMデータを読み出してタスクMの処理を行いつつ、第2のページにタスクNデータ(タスクN:タスクMの次に行なうタスク)の書き込みを行ない、タスクMの処理が終了すると、データの読み出し元を第1のページから第2のページに切り替えて、タスクNデータを読み出してタスクNの処理を行うことで、タスクMの処理が終了した後、タスクNの処理を開始するまでの時間を短縮することができるのである。なお、タスクMの処理が終了するまでにタスクNデータを第2のページに書き込むことができれば、タスクMの処理が終了した直後にタスクNの処理を開始することができる。
一方、タスクMの処理が終了するまでにタスクNデータを第2のページに書き込むことができていない場合、即ち、タスクMの終了時点で、タスクNデータの書き込み処理が終了していない場合には、タスクNデータの書き込み処理が終了した後にタスクNの処理を開始することとなり、タスクMの処理が終了した後、タスクNの処理を開始するまでに若干の時間を要してしまうこととなる。この様な場合には、メモリを3以上のページ(例えば3つのページ)で構成することにより、更なる処理能力の向上を図ることができる。
[2]メモリが3つのページにより構成される場合(図6(b)参照。)
メモリが3つのページ(第1のページ、第2のページ及び第3のページ)により構成される場合において、時刻t1までにタスクAデータが第1のページに書き込まれ、時刻t2までにタスクBデータが第2のページに書き込まれている場合を例に挙げて説明を行う。
この場合、時刻t1〜t2において、第1のページに書き込まれたタスクAデータを読み出してタスクAの処理を行いつつ、第2のページにはタスクBデータの書き込みを行ない、第3のページにはタスクCデータの書き込みを行なう。そして、時刻t2〜t3において、第2のページに書き込まれたタスクBデータを読み出してタスクBの処理を行いつつ、第1のページにはタスクDデータの書き込みを行ない、第3のページには引き続いてタスクCデータの書き込みを行なう。続いて、時刻t3〜t4において、第3のページに書き込まれたタスクCデータを読み出してタスクCの処理を行いつつ、第1のページには引き続いてタスクDデータの書き込みを行ない、第2のページにはタスクEデータの書き込みを行なう。以後も同様にしてタスクD,タスクE・・・について処理を行う。
この様に、メモリを3つのページで構成することによって、タスクデータの書き込み処理時間を長くとることができるために(具体的には、先発タスクの処理が終了した直後に後発タスクの処理を開始する前提として、メモリが2つのページにより構成される場合には、第1のページに書き込まれたタスクデータを読み出して処理を行う期間中に第2のページにタスクデータを書き込む必要があり、同様に、第2のページに書き込まれたタスクデータを読み出して処理を行う期間中に第1のページにタスクデータを書き込む必要があったのに対して、メモリが3つのページにより構成される場合には、第1のページ及び第2のページに書き込まれたタスクデータを読み出して処理を行う期間中に第3のページにタスクデータを書き込めば充分であり、同様に、第2のページ及び第3のページに書き込まれたタスクデータを読み出して処理を行う期間中に第1のページにタスクデータを書き込めば充分であり、第3のページ及び第1のページに書き込まれたタスクデータを読み出して処理を行う期間中に第2のページにタスクデータを書き込めば充分であるために)、タスクデータの書き込み速度を増加させることなく、先発タスクの処理が終了するまでに後発タスクのデータの書き込みを終了させることが期待できる。
メモリが3つのページ(第1のページ、第2のページ及び第3のページ)により構成される場合において、時刻t1までにタスクAデータが第1のページに書き込まれ、時刻t2までにタスクBデータが第2のページに書き込まれている場合を例に挙げて説明を行う。
この場合、時刻t1〜t2において、第1のページに書き込まれたタスクAデータを読み出してタスクAの処理を行いつつ、第2のページにはタスクBデータの書き込みを行ない、第3のページにはタスクCデータの書き込みを行なう。そして、時刻t2〜t3において、第2のページに書き込まれたタスクBデータを読み出してタスクBの処理を行いつつ、第1のページにはタスクDデータの書き込みを行ない、第3のページには引き続いてタスクCデータの書き込みを行なう。続いて、時刻t3〜t4において、第3のページに書き込まれたタスクCデータを読み出してタスクCの処理を行いつつ、第1のページには引き続いてタスクDデータの書き込みを行ない、第2のページにはタスクEデータの書き込みを行なう。以後も同様にしてタスクD,タスクE・・・について処理を行う。
この様に、メモリを3つのページで構成することによって、タスクデータの書き込み処理時間を長くとることができるために(具体的には、先発タスクの処理が終了した直後に後発タスクの処理を開始する前提として、メモリが2つのページにより構成される場合には、第1のページに書き込まれたタスクデータを読み出して処理を行う期間中に第2のページにタスクデータを書き込む必要があり、同様に、第2のページに書き込まれたタスクデータを読み出して処理を行う期間中に第1のページにタスクデータを書き込む必要があったのに対して、メモリが3つのページにより構成される場合には、第1のページ及び第2のページに書き込まれたタスクデータを読み出して処理を行う期間中に第3のページにタスクデータを書き込めば充分であり、同様に、第2のページ及び第3のページに書き込まれたタスクデータを読み出して処理を行う期間中に第1のページにタスクデータを書き込めば充分であり、第3のページ及び第1のページに書き込まれたタスクデータを読み出して処理を行う期間中に第2のページにタスクデータを書き込めば充分であるために)、タスクデータの書き込み速度を増加させることなく、先発タスクの処理が終了するまでに後発タスクのデータの書き込みを終了させることが期待できる。
なお、メモリを構成するページ数を増大させることなくタスクNデータの書き込み速度を増加させることによって、タスクMの処理の終了時点でタスクNデータの書き込み処理を終了させることも可能であるが、データの書き込み速度を向上させると消費電力の増大を招く結果となる。一方、あまりにページ数を増大させてメモリを構成した場合には、上記した大量のデータに対処する従来の方法の一例の様に、コプロセッサの占有面積の拡大を招く結果となる。従って、消費電力と占有面積との兼ね合いによって、ページ数を決定する必要があるといえる。
上記した本発明のコプロセッサ及びコンピュータシステムでは、コプロセッサの占有面積を拡大させることなく、処理速度の向上を実現することができる。
以下、本発明の実施の形態について図面を参照しながら説明し、本発明の理解に供する。
図1(a)は本発明を適用したコンピュータシステムの一例を説明するための模式図であり、ここで示すコンピュータシステム1では、メインCPU2、コプロセッサ3及び外部メモリ4がバス5で接続されており、コプロセッサはメインCPUの要求に応じて動作する様に構成されている。なお、ここでのメインCPUはマイクロプロセッサの一例であり、外部メモリは外部記憶装置の一例であり、バスは第1の伝送路の一例である。
図1(a)は本発明を適用したコンピュータシステムの一例を説明するための模式図であり、ここで示すコンピュータシステム1では、メインCPU2、コプロセッサ3及び外部メモリ4がバス5で接続されており、コプロセッサはメインCPUの要求に応じて動作する様に構成されている。なお、ここでのメインCPUはマイクロプロセッサの一例であり、外部メモリは外部記憶装置の一例であり、バスは第1の伝送路の一例である。
また、コプロセッサは、命令を書き込む命令メモリ6と、データを書き込むデータメモリ7と、命令メモリに書き込まれた命令及びデータメモリに書き込まれたデータを読み出して命令を実行するコプロセッサコア8と、メインCPUからの要求に従ってコプロセッサコアの制御を行なう制御レジスタ9がバスインターフェイス(バスI/F)10で接続されている。なお、ここでの命令メモリ及びデータメモリはメモリの一例であり、バスインターフェイスは第2の伝送路の一例である。
ここで、命令メモリは互いに独立して命令の書き込み処理及び読み出し処理を行うことができる第1の命令メモリ6a及び第2の命令メモリ6bの2ページ構成とされ、同様にデータメモリについても互いに独立してデータの書き込み処理及び読み出し処理を行うことができる第1のデータメモリ7a及び第2のデータメモリ7bの2ページ構成とされている。
ところで、上記した外部メモリから命令が転送されて命令メモリに書き込みを行い、コプロセッサコアが命令メモリに書き込まれた命令を読み出してタスク処理を行うのであるが、命令が命令メモリ内のどの領域に書き込まれたかという情報は、命令メモリ内の領域毎に順番に付されたアドレスと称される番地によって特定できる様に構成されている。
また、各プログラム(プログラムは複数の命令によって構成されている)の最後には、「END命令」が組み込まれており、この「END命令」を実行することによって、コプロセッサコアの処理が終了したことメインCPUに伝えることができる様に構成されている。
また、各プログラム(プログラムは複数の命令によって構成されている)の最後には、「END命令」が組み込まれており、この「END命令」を実行することによって、コプロセッサコアの処理が終了したことメインCPUに伝えることができる様に構成されている。
また、命令メモリは、命令メモリの一方のページ(例えば、第1の命令メモリ)が外部メモリと接続されている場合には、他方のページ(例えば、第2の命令メモリ)はコプロセッサコアと接続される様に構成されており、命令メモリの一方のページ(例えば、第1の命令メモリ)がコプロセッサコアと接続されている場合には、他方のページ(例えば、第2の命令メモリ)は外部メモリと接続される様に構成されている。
同様に、データメモリは、データメモリの一方のページ(例えば、第1のデータメモリ)が外部メモリと接続されている場合には、他方のページ(例えば、第2のデータメモリ)はコプロセッサコアと接続される様に構成されており、データメモリの一方のページ(例えば、第1のデータメモリ)がコプロセッサコアと接続されている場合には、他方のページ(例えば、第2のデータメモリ)は外部メモリと接続される様に構成されている。
同様に、データメモリは、データメモリの一方のページ(例えば、第1のデータメモリ)が外部メモリと接続されている場合には、他方のページ(例えば、第2のデータメモリ)はコプロセッサコアと接続される様に構成されており、データメモリの一方のページ(例えば、第1のデータメモリ)がコプロセッサコアと接続されている場合には、他方のページ(例えば、第2のデータメモリ)は外部メモリと接続される様に構成されている。
なお、本実施例では、命令を書き込む命令メモリとデータを書き込むデータメモリとをそれぞれ設けて、命令とデータとを別個に書き込んでいるものの、命令及びデータはタスクを処理するにあたってコプロセッサコアがメモリ(命令メモリ及びデータメモリ)から読み出し処理を行えるようにコプロセッサ内のメモリに書き込まれていれば充分であり、必ずしも命令メモリとデータメモリとをそれぞれ設けて、命令とデータとを別個に書き込む必要は無く、図2で示す様に、命令及びデータの双方を書き込むメモリ11を設けて、このメモリに命令及びデータの双方を書き込んでも良い。この場合においても、メモリは単一のページから構成するのではなく、互いに独立して命令及びデータの書き込み処理及び読み出し処理を行うことができる第1のメモリ11a及び第2のメモリ11bの2ページ構成とする必要がある。
また、制御レジスタはメインCPUからの要求に従ってコプロセッサコアを制御するものであり、コプロセッサコアが処理を開始するアドレスを示すSPCレジスタ、コプロセッサコアにSPCレジスタで示されたアドレスから処理を開始させるSTARTレジスタ及び命令メモリ及びデータメモリのページの接続先の切り替えを行なうSWTレジスタから構成される。
SWTレジスタについて、更に具体的には、外部メモリと接続していた一方のページ(例えば、第1の命令メモリ、第1のデータメモリ)をコプロセッサコアへの接続に切り替えると共に、コプロセッサコアと接続していた他方のページ(例えば、第2の命令メモリ、第2のデータメモリ)を外部メモリへの接続に切り替えるといった具合である。
SWTレジスタについて、更に具体的には、外部メモリと接続していた一方のページ(例えば、第1の命令メモリ、第1のデータメモリ)をコプロセッサコアへの接続に切り替えると共に、コプロセッサコアと接続していた他方のページ(例えば、第2の命令メモリ、第2のデータメモリ)を外部メモリへの接続に切り替えるといった具合である。
上記の様に構成されたコンピュータシステムのタスクの処理について、タスクA,タスクB,タスクC・・・を順に処理する場合を例に挙げて説明を行う。以下では、初期状態においては、第1の命令メモリ及び第1のデータメモリが外部メモリと接続され、第2の命令メモリ及び第2のデータメモリがコプロセッサコアと接続されているものとする。また、任意のタスクXを処理するための命令を命令Xと称し、任意のタスクXを処理するためのデータをデータXと称する。
さて、タスク処理を行う場合には、先ず、メインCPUから命令A及びデータAを転送する指示を出し、外部メモリから命令Aを第1の命令メモリに書き込むと共に、データAを第1のデータメモリに書き込む(図3(a)参照。)。なお、上記した様に、第1の命令メモリ内のどの領域に命令Aが書き込まれたかということについては、アドレスによって特定することができる。
次に、メインCPUが指示を出すことによって、コプロセッサコアがタスクAの処理を行うにあたって、処理を開始するアドレスをSPCレジスタに書き込む(図3(b)参照。)。
続いて、メインCPUがSTARTレジスタにコプロセッサの処理開始の要求を行なうと、SWTレジスタが各ページの接続先を切り替え、即ち、第1の命令メモリ及び第1のデータメモリとコプロセッサコアとを接続すると共に、第2の命令メモリと第2のデータメモリを外部メモリと接続する(図3(c)参照。)。
ここで、第1の命令メモリ及び第1のデータメモリとコプロセッサコアとの接続が確保されると、コプロセッサコアはSPCレジスタに書き込まれたアドレスから処理を開始することによってタスクAの処理を開始する(図3(d)参照。)。
また、第2の命令メモリ及び第2のデータメモリと外部メモリとの接続が確保されると、メインCPUから命令B及びデータBを転送する指示を出し、外部メモリから命令Bを第2の命令メモリに書き込むと共に、データBを第2のデータメモリに書き込む(図3(e)参照。)。更に、メインCPUが指示を出すことによって、コプロセッサコアがタスクBを処理するにあたって、処理を開始するアドレスをSPCレジスタに書き込む(図3(f)参照。)。
即ち、メインCPUがSTARTレジスタに指示を出し、SWTレジスタが各ページの接続先を切り替えると、SPCレジスタに書き込まれたアドレスからコプロセッサコアが処理を開始すると同時に、命令Bを第2の命令メモリに書き込むと共に、データBを第2のデータメモリに書き込む。
また、第2の命令メモリ及び第2のデータメモリと外部メモリとの接続が確保されると、メインCPUから命令B及びデータBを転送する指示を出し、外部メモリから命令Bを第2の命令メモリに書き込むと共に、データBを第2のデータメモリに書き込む(図3(e)参照。)。更に、メインCPUが指示を出すことによって、コプロセッサコアがタスクBを処理するにあたって、処理を開始するアドレスをSPCレジスタに書き込む(図3(f)参照。)。
即ち、メインCPUがSTARTレジスタに指示を出し、SWTレジスタが各ページの接続先を切り替えると、SPCレジスタに書き込まれたアドレスからコプロセッサコアが処理を開始すると同時に、命令Bを第2の命令メモリに書き込むと共に、データBを第2のデータメモリに書き込む。
続いて、コプロセッサコアによるタスクAの処理が終了すると、即ち、タスクAのプログラムの最後に組み込まれた「END命令」が実行されると、コプロセッサコアからメインCPUにタスクAの処理が終了したことを伝える割り込み信号が発せられる。
メインCPUに割り込み信号が発せられると、メインCPUはSTARTレジスタにコプロセッサの処理開始の要求を行い、SWTレジスタが各ページの接続先を切り替え、即ち、第1の命令メモリと第1のデータメモリを外部メモリと接続すると共に、第2の命令メモリと第2のデータメモリをコプロセッサコアと接続する(図3(g)参照。)。
ここで、第2の命令メモリ及び第2のデータメモリとコプロセッサコアとの接続が確保されると、コプロセッサコアはSPCレジスタに書き込まれたアドレスから処理を開始することによってタスクBの処理を開始する(図3(h)参照。)。
また、第1の命令メモリ及び第1のデータメモリと外部メモリとの接続が確保されると、メインCPUから命令C及びデータCを転送する指示を出し、外部メモリから命令Cを第1の命令メモリに書き込むと共に、データCを第2のデータメモリに書き込む(図3(i)参照。)。更に、メインCPUが指示を出すことによって、コプロセッサコアがタスクCを処理するにあたって、処理を開始するアドレスをSPCレジスタに書き込む(図3(j)参照。)。
即ち、メインCPUがSTARTレジスタに指示を出し、SWTレジスタが各ページの接続先を切り替えると、SPCレジスタに書き込まれたアドレスからコプロセッサコアが処理を開始すると同時に、命令Cを第1の命令メモリに書き込むと共に、データCを第1のデータメモリに書き込む。
また、第1の命令メモリ及び第1のデータメモリと外部メモリとの接続が確保されると、メインCPUから命令C及びデータCを転送する指示を出し、外部メモリから命令Cを第1の命令メモリに書き込むと共に、データCを第2のデータメモリに書き込む(図3(i)参照。)。更に、メインCPUが指示を出すことによって、コプロセッサコアがタスクCを処理するにあたって、処理を開始するアドレスをSPCレジスタに書き込む(図3(j)参照。)。
即ち、メインCPUがSTARTレジスタに指示を出し、SWTレジスタが各ページの接続先を切り替えると、SPCレジスタに書き込まれたアドレスからコプロセッサコアが処理を開始すると同時に、命令Cを第1の命令メモリに書き込むと共に、データCを第1のデータメモリに書き込む。
続いて、コプロセッサコアによるタスクBの処理が終了すると、即ち、タスクBのプログラムの最後に組み込まれた「END命令」が実行されると、コプロセッサコアからメインCPUにタスクBの処理が終了したことを伝える割り込み信号が発せられる。
以上の処理フローを繰り返し行うことによって、即ち、メインCPUの要求に基づいてタスク毎に各ページの接続先を切り替えることによって順次タスクを処理することができるのである。
ここで、本実施例では、単一のメインCPUを有するコンピュータシステムについて説明を行ったが、メインCPUの並列処理を行うべくコンピュータシステム内に複数のメインCPUを設けても良い。なお、コンピュータシステム内に複数のメインCPUを設けることによって、個々のメインCPUの処理負担の軽減が図れることとなり、低消費電力化が実現すると考えられる。
具体的には、例えば、図1(b)で示す様に、第1のメインCPU21、第2のメインCPU22、コプロセッサ3及び外部メモリ4をバス5で接続し、コプロセッサは第1のメインCPU及び第2のメインCPUの要求に応じて動作する様な構成が考えられる。この場合には、コプロセッサは、命令を書き込む命令メモリ6と、データを書き込むデータメモリ7と、命令メモリに書き込まれた命令及びデータメモリに書き込まれたデータを読み出して命令を実行するコプロセッサコア8と、第1のメインCPU及び第2のメインCPUからの要求に従ってコプロセッサコアの制御を行なう制御レジスタ9がバスI/F10で接続されている。
ところで、第1のメインCPU及び第2のメインCPUを設けて、両者の要求に応じてコプロセッサが動作する様に構成した場合には、一方のメインCPU(例えば、第1のメインCPU)がSTARTレジスタに指示を出し、SWTレジスタが各ページの接続先を切り替えようとした時に、他方のメインCPU(例えば、第2のメインCPU)の要求に応じてコプロセッサが動作していることも考えられる。
従って、コンピュータシステム内に複数のメインCPUを設けた場合には、コプロセッサコアが処理中であるか否かを判断するACTレジスタを制御レジスタ内に設けて、一方のメインCPU(例えば、第1のメインCPU)が指示を出して、所定の処理を開始するアドレスをSPCレジスタに書き込んだ後、ACTレジスタがコプロセッサは処理中ではなく待機状態(具体的には、他方のメインCPU(例えば、第2のメインCPU)からの指示で処理を行っていない状態)を示している場合にのみ、一方のメインCPU(例えば、第1のメインCPU)がSTARTレジスタにコプロセッサの処理開始の要求を行なう様に構成する必要がある。
本発明を適用したコンピュータシステムでは、命令メモリが互いに独立して命令の書き込み処理及び読み出し処理を行うことができる第1の命令メモリ及び第2の命令メモリの2ページ構成とされ、即ち、ページ毎にそれぞれ異なるタスク処理に必要な命令の書き込み(読み出し)が可能な構成とされ、同様に、データメモリについても互いに独立してデータの書き込み処理及び読み出し処理を行うことができる第1のデータメモリ及び第2のデータメモリの2ページ構成とされ、即ち、ページ毎にそれぞれ異なるタスク処理に必要なデータの書き込み(読み出し)が可能な構成とされると共に、コプロセッサコアとバスの両方から命令メモリ及びデータメモリにアクセスすることが可能であるために、一方のページ(例えば、第1の命令メモリ、第1のデータメモリ)に書き込まれた命令及びデータを読み出すことによるコプロセッサコアの先発タスク処理中に、同時に他方のページ(例えば、第2の命令メモリ、第2のデータメモリ)には後発タスク処理のための命令及びデータを外部メモリから転送して書き込むことができ、先発タスクの終了後にメインCPUからの要求によってページを切り替えることでタスク処理の効率化が実現する。
即ち、従来のコンピュータシステムの様に、命令メモリ及びデータメモリがそれぞれ1ページ構成である場合には、命令メモリやデータメモリは、コプロセッサコアと外部メモリのいずれか一方にしかアクセスすることができないために、命令メモリ及びデータメモリに書き込まれた命令及びデータを読み出すことによるコプロセッサコアのタスク処理と、タスク処理のための命令及びデータを外部メモリから転送して書き込むことを同時に行なうことができず、タスク処理のための命令及びデータを外部メモリから命令メモリ及びデータメモリに転送する際にはコプロセッサコアのタスク処理を停止させる必要があるのに対して、本発明を適用したコンピュータシステムでは、タスク処理のための命令及びデータを外部メモリから命令メモリ及びデータメモリの一方のページに転送すると同時にコプロセッサコアのタスク処理を行うことができるので、外部メモリへの接続時間を考慮する必要が無くなり、タスク処理の効率化が実現するのである。
即ち、従来のコンピュータシステムの様に、命令メモリ及びデータメモリがそれぞれ1ページ構成である場合には、命令メモリやデータメモリは、コプロセッサコアと外部メモリのいずれか一方にしかアクセスすることができないために、命令メモリ及びデータメモリに書き込まれた命令及びデータを読み出すことによるコプロセッサコアのタスク処理と、タスク処理のための命令及びデータを外部メモリから転送して書き込むことを同時に行なうことができず、タスク処理のための命令及びデータを外部メモリから命令メモリ及びデータメモリに転送する際にはコプロセッサコアのタスク処理を停止させる必要があるのに対して、本発明を適用したコンピュータシステムでは、タスク処理のための命令及びデータを外部メモリから命令メモリ及びデータメモリの一方のページに転送すると同時にコプロセッサコアのタスク処理を行うことができるので、外部メモリへの接続時間を考慮する必要が無くなり、タスク処理の効率化が実現するのである。
ここで、先発タスクの処理が終了するまでに、後発タスクを処理するために必要な命令及びデータの転送が完了する様に外部メモリから命令メモリ及びデータメモリへの転送を行なう場合には、一方のページと他方のページとの切り替え作業を繰り返すことによって、コプロセッサによるタスク処理を絶え間なく実行することができる。
なお、本発明を適用したコンピュータシステムでは、タスク処理を行うのに必要な全命令及び全データは外部メモリに記憶させておき、必要に応じてコプロセッサ内の命令メモリ及びデータメモリに転送する構成を採っているために、大量のデータに対処する場合であってもコプロセッサの占有面積とコストの拡大を抑制できる。
1 コンピュータシステム
2 メインCPU
3 コプロセッサ
4 外部メモリ
5 バス
6 命令メモリ
7 データメモリ
8 コプロセッサコア
9 制御レジスタ
10 バスインターフェイス
11 メモリ
21 第1のメインCPU
22 第2のメインCPU
2 メインCPU
3 コプロセッサ
4 外部メモリ
5 バス
6 命令メモリ
7 データメモリ
8 コプロセッサコア
9 制御レジスタ
10 バスインターフェイス
11 メモリ
21 第1のメインCPU
22 第2のメインCPU
Claims (2)
- 第1の伝送路によってマイクロプロセッサ及び外部記憶装置と接続されると共に、前記外部記憶装置に記憶された命令及びデータを読み出すことによりタスク処理を行うコプロセッサにおいて、
前記命令及び前記データを書き込むメモリと、
該メモリに書き込まれた命令及びデータを読み出し、同命令を実行するコプロセッサコアと、
前記第1の伝送路、前記メモリ及び前記コプロセッサコアを接続する第2の伝送路とを備え、
前記メモリは、独立して書き込み処理及び読み出し処理が可能である複数のページにより構成されると共に、
一のページに書き込まれた命令及びデータをコプロセッサコアが読み出すことによる先発タスクの処理中に、後発タスクを処理するための命令及びデータを他のページに書き込み、先発タスクの終了後に他のページに書き込まれた命令及びデータをコプロセッサコアが読み出すことによって後発タスクの処理を行う様に構成された
ことを特徴とするコプロセッサ。 - マイクロプロセッサと、
コプロセッサと、
該コプロセッサが読み出す命令及びデータが記憶された外部記憶装置と、
前記マイクロプロセッサ、前記コプロセッサ及び前記外部記憶装置を接続する第1の伝送路とを備えるコンピュータシステムにおいて、
前記コプロセッサは、前記命令及び前記データを書き込むメモリと、
該メモリに書き込まれた命令及びデータを読み出し、同命令を実行するコプロセッサコアと、
前記第1の伝送路、前記メモリ及び前記コプロセッサコアを接続する第2の伝送路とを備え、
前記メモリは、独立して書き込み処理及び読み出し処理が可能である複数のページにより構成されると共に、
一のページに書き込まれた命令及びデータをコプロセッサコアが読み出すことによる先発タスクの処理中に、後発タスクを処理するための命令及びデータを他のページに書き込み、先発タスクの終了後に他のページに書き込まれた命令及びデータをコプロセッサコアが読み出すことによって後発タスクの処理を行う様に構成された
ことを特徴とするコンピュータシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005277242A JP2007087244A (ja) | 2005-09-26 | 2005-09-26 | コプロセッサ及びコンピュータシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005277242A JP2007087244A (ja) | 2005-09-26 | 2005-09-26 | コプロセッサ及びコンピュータシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007087244A true JP2007087244A (ja) | 2007-04-05 |
Family
ID=37974149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005277242A Pending JP2007087244A (ja) | 2005-09-26 | 2005-09-26 | コプロセッサ及びコンピュータシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007087244A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009026135A (ja) * | 2007-07-20 | 2009-02-05 | Nec Electronics Corp | マルチプロセッサ装置 |
JP2009026136A (ja) * | 2007-07-20 | 2009-02-05 | Nec Electronics Corp | マルチプロセッサ装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09138752A (ja) * | 1995-11-14 | 1997-05-27 | Matsushita Electric Ind Co Ltd | 多機能拡張プロセッサ装置 |
JP2005235228A (ja) * | 2004-02-20 | 2005-09-02 | Sony Computer Entertainment Inc | マルチプロセッサシステムにおけるタスク管理方法および装置 |
-
2005
- 2005-09-26 JP JP2005277242A patent/JP2007087244A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09138752A (ja) * | 1995-11-14 | 1997-05-27 | Matsushita Electric Ind Co Ltd | 多機能拡張プロセッサ装置 |
JP2005235228A (ja) * | 2004-02-20 | 2005-09-02 | Sony Computer Entertainment Inc | マルチプロセッサシステムにおけるタスク管理方法および装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009026135A (ja) * | 2007-07-20 | 2009-02-05 | Nec Electronics Corp | マルチプロセッサ装置 |
JP2009026136A (ja) * | 2007-07-20 | 2009-02-05 | Nec Electronics Corp | マルチプロセッサ装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7724984B2 (en) | Image processing apparatus | |
US20130036426A1 (en) | Information processing device and task switching method | |
JPH0619823A (ja) | 情報処理装置 | |
JP2003263331A (ja) | マルチプロセッサシステム | |
WO2009098737A1 (ja) | 外部デバイスアクセス装置、その制御方法及びシステムlsi | |
JP2008090455A (ja) | マルチプロセッサ信号処理装置 | |
JP2007058786A (ja) | ブリッジ及びその制御方法 | |
JP2007087244A (ja) | コプロセッサ及びコンピュータシステム | |
JP2007500394A (ja) | 優先レベル毎に異なるレジスタセットが関連付けられたプログラマブル優先レベルを有する割り込み構造を備えたマイクロコントローラ | |
JP4559958B2 (ja) | マルチコアプロセッサにおけるマルチコア制御方法 | |
CN103246496A (zh) | 非阻塞协处理器接口方法和系统 | |
CN202548823U (zh) | 非阻塞协处理器接口系统 | |
JP2000227895A (ja) | 画像データ転送装置および画像データ転送方法 | |
JP3564327B2 (ja) | 図形処理装置 | |
JP5000858B2 (ja) | データ処理装置 | |
JP6940283B2 (ja) | Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム | |
JP2011118744A (ja) | 情報処理装置 | |
JP2005276104A (ja) | マイクロコンピュータ | |
JP2009258936A (ja) | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム | |
JP2008217659A (ja) | Dma転送起動方法 | |
JP3900660B2 (ja) | シーケンスコントローラ | |
JP2011150636A (ja) | マイクロプロセッサ及びその制御方法 | |
JP2004021713A (ja) | 半導体記憶装置 | |
JP2006285719A (ja) | 情報処理装置および情報処理方法 | |
JPH04307652A (ja) | マルチプロセッサ間通信方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080806 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20091209 |
|
A131 | Notification of reasons for refusal |
Effective date: 20091215 Free format text: JAPANESE INTERMEDIATE CODE: A131 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100407 |