JP2007183705A - マルチプロセッサシステム - Google Patents
マルチプロセッサシステム Download PDFInfo
- Publication number
- JP2007183705A JP2007183705A JP2006000067A JP2006000067A JP2007183705A JP 2007183705 A JP2007183705 A JP 2007183705A JP 2006000067 A JP2006000067 A JP 2006000067A JP 2006000067 A JP2006000067 A JP 2006000067A JP 2007183705 A JP2007183705 A JP 2007183705A
- Authority
- JP
- Japan
- Prior art keywords
- program
- processor
- register
- sub
- local memory
- 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.)
- Withdrawn
Links
Images
Landscapes
- Stored Programmes (AREA)
- Multi Processors (AREA)
Abstract
【課題】プログラムコードのサイズに関わらず、ローカルメモリのサイズを削減することができるマルチプロセッサシステムを提供する。
【解決手段】プログラム格納手段3には、所定の処理単位毎に識別情報を有する複数の処理単位からなり、サブプロセッサ2によって実行されるプログラムが格納される。ホストプロセッサ1は、レジスタ6の領域60aに割込みフラグが立っているときには、レジスタ6の領域60aに格納されている識別情報に対応した所定の処理単位分のプログラムをプログラム格納手段3から読み出してローカルメモリ4に格納し、レジスタ6の領域60bに割込みフラグを立てる。サブプロセッサ2は、レジスタ6の領域60bに割込みフラグが立っているときには、ローカルメモリ4に格納されたプログラムを読み出して処理を実行した後、引き続いて実行する処理単位の識別情報と割込みフラグをレジスタ6の領域60aに格納する。
【選択図】図1
【解決手段】プログラム格納手段3には、所定の処理単位毎に識別情報を有する複数の処理単位からなり、サブプロセッサ2によって実行されるプログラムが格納される。ホストプロセッサ1は、レジスタ6の領域60aに割込みフラグが立っているときには、レジスタ6の領域60aに格納されている識別情報に対応した所定の処理単位分のプログラムをプログラム格納手段3から読み出してローカルメモリ4に格納し、レジスタ6の領域60bに割込みフラグを立てる。サブプロセッサ2は、レジスタ6の領域60bに割込みフラグが立っているときには、ローカルメモリ4に格納されたプログラムを読み出して処理を実行した後、引き続いて実行する処理単位の識別情報と割込みフラグをレジスタ6の領域60aに格納する。
【選択図】図1
Description
本発明は、複数のプロセッサを有するマルチプロセッサシステムに関する。
従来、複数のプロセッサが並列に動作するマルチプロセッサシステムはマスタプロセッサと少なくとも1つのスレーブプロセッサを有しており、マスタプロセッサとスレーブプロセッサは、両者の間でデータを受け渡す際に用いる共有メモリを介して接続されている。特許文献1に記載された複数プロセッサシステムは、マスタプロセッサの制御に応じてスレーブプロセッサをリセット状態にさせるリセット手段と、スレーブプロセッサのブートコード格納アドレスを含むアドレス領域に共有メモリを割り当てるアドレスデコーダと、スレーブプロセッサによる書き込み及び読み出しが可能な第1のメモリと、スレーブプロセッサのブートコードが格納され、マスタプロセッサによる読み出しが可能な第2のメモリとを備えている。
特許文献1に記載された複数プロセッサシステムでは、マスタプロセッサ及びスレーブプロセッサは以下のように動作する。マスタプロセッサは、リセット手段によってスレーブプロセッサをリセット状態にし、第2のメモリからスレーブプロセッサのブートコード(スレーブプロセッサがリセット後に立ち上がるために必要なプログラムコード)を読み出し、共有メモリの、ブートコード格納アドレスに対応する領域に書き込む。続いて、マスタプロセッサは、スレーブプロセッサのリセット状態を解除し、スレーブプロセッサに共有メモリ上のブートコードを読み出させてスレーブプロセッサを立ち上げる。
スレーブプロセッサは、ブートコードの命令内容を実行することによって、マスタプロセッサが第2のメモリから読み出して共有メモリ上に書き込んだプログラムコードを共有メモリから読み出して第1のメモリに格納し、第1のメモリからプログラムコードを読み出す。これによって、スレーブプロセッサのブートコードを格納しておくためにスレーブ側に必要だった読み出し専用メモリの削減が可能となっている。
特開平8−161283号公報
スレーブ側の第1のメモリ(ローカルメモリ)のように、システムに内蔵されるメモリは一般に高価であるため、そのサイズをできるだけ小規模にすることが望ましい。特に、複数個のスレーブプロセッサがシステムに存在する場合には、各々のスレーブプロセッサに対応したプログラムコードを逐次、夫々の第1のメモリに書き込んでいかねばならないため、第1のメモリのサイズをより削減することが望ましい。しかし、第1のメモリのサイズが、第1のメモリにロードされるプログラムコードサイズより大きい必要があるため、第1のメモリのサイズの削減が困難であった。
また、マスタプロセッサは、スレーブプロセッサが実行するプログラムコードをメモリに書き終えるまで他の処理を実行することができないため、処理効率を向上させる上で障害となっていた。
本発明は、上述した問題点に鑑みてなされたものであって、プログラムコードのサイズに関わらず、ローカルメモリのサイズを削減することができるマルチプロセッサシステムを提供することを第1の目的とする。また、本発明は、第1の目的を達成すると共に、プロセッサの処理効率を向上することができるマルチプロセッサシステムを提供することを第2の目的とする。
本発明は、上記の課題を解決するためになされたもので、ホストプロセッサと、サブプロセッサと、所定の処理単位毎に識別情報を有する複数の処理単位からなり、前記サブプロセッサによって実行されるプログラムが格納されたプログラム格納手段と、前記ホストプロセッサが参照する第1の割込みフラグ及び前記識別情報が格納される第1のレジスタ領域を有すると共に、前記サブプロセッサが参照する第2の割込みフラグが格納される第2のレジスタ領域を有するレジスタと、前記処理単位に対応する容量を有し、前記プログラムが一時的に格納されるローカルメモリとを有し、前記ホストプロセッサは、前記第1のレジスタ領域に前記第1の割込みフラグが立っているときには、前記第1のレジスタ領域に格納されている前記識別情報に対応した前記所定の処理単位分の前記プログラムを前記プログラム格納手段から読み出して前記ローカルメモリに格納した後に、前記第2のレジスタ領域に前記第2の割込みフラグを立て、前記サブプロセッサは、前記第2のレジスタ領域に前記第2の割込みフラグが立っているときには、前記ローカルメモリに格納された前記プログラムを読み出して処理を実行した後、引き続いて実行する前記処理単位の前記識別情報と前記第1の割込みフラグを前記第1のレジスタ領域に格納することを特徴とするマルチプロセッサシステムである。
また、本発明は、ホストプロセッサと、サブプロセッサと、所定の処理単位毎に識別情報を有する複数の処理単位からなり、前記サブプロセッサによって実行されるプログラムが格納されたプログラム格納手段と、前記ホストプロセッサが参照する割込みフラグ及び前記識別情報が格納されるレジスタと、前記処理単位に対応する容量を有し、前記プログラムが一時的に格納されるローカルメモリと、前記ホストプロセッサからの転送命令に基づいて、前記プログラム格納手段から前記所定の処理単位分の前記プログラムを読み出して前記ローカルメモリに転送した後、転送完了信号を生成するプログラム転送手段とを有し、前記ホストプロセッサは、前記レジスタに前記割込みフラグが立っているときには、前記レジスタに格納されている前記識別情報に対応した前記所定の処理単位分の前記プログラムの転送命令を前記プログラム転送手段へ出力し、前記サブプロセッサは、前記プログラム転送手段から前記転送完了信号が出力されたときには、前記ローカルメモリに格納された前記プログラムを読み出して処理を実行した後、引き続いて実行する前記処理単位の前記識別情報と前記割込みフラグを前記レジスタに格納することを特徴とするマルチプロセッサシステムである。
また、本発明のマルチプロセッサシステムにおいて、前記サブプロセッサ及び前記ローカルメモリからなる組を少なくとも2組有し、前記プログラム転送手段は、各組の前記ローカルメモリに対して同時に同一の前記処理単位分の前記プログラムを転送することを特徴とする。
本発明によれば、複数のプログラムコードからなるプログラム全体のサイズがローカルメモリのサイズよりも大きいプログラムコードをサブプロセッサが実行する場合でも、プログラムコードの受け渡しが所定の処理単位毎に行われるので、プログラムコードのサイズに関わらず、ローカルメモリのサイズを削減することができるという効果が得られる。また、本発明によれば、プログラム転送手段によるプログラムコードの転送中、ホストプロセッサは他のタスクを実行することが可能となるので、ホストプロセッサの処理効率を向上することができるという効果が得られる。
以下、図面を参照し、本発明の実施形態を説明する。図1は、本発明の第1の実施形態によるマルチプロセッサシステムの構成を示している。このマルチプロセッサシステムは、ホストプロセッサ1、サブプロセッサ2、プログラム格納手段3、ローカルメモリ4、アクセス選択手段5、及びレジスタ6を備えている。
ROM(Read Only Memory)等で構成されるプログラム格納手段3には、ホストプロセッサ1によって実行されるプログラムコードと、サブプロセッサ2によって実行されるプログラムコードが格納される。RAM(Random Access Memory)等で構成されるローカルメモリ4には、ホストプロセッサ1とサブプロセッサ2の間で受け渡されるデータが一時的に格納される。ホストプロセッサ1及びサブプロセッサ2からのローカルメモリ4へのアクセスは、アクセス選択手段5によって制御される。
図2はレジスタ6の構成を示している。レジスタ6は、4つのレジスタ61〜64と、各レジスタへのデータの書き込み及び読み出し時にアドレスを指定するアドレスデコーダ65と、インバータ66とを備えている。レジスタ61,62は、ホストプロセッサ1によって参照される領域60aに配置されており、レジスタ63,64及びインバータ66は、サブプロセッサ2によって参照される領域60bに配置されている。レジスタ61には、ホストプロセッサ1へ出力される割込み信号を制御するためのフラグ(第1の割込みフラグ)となる値が格納される。
レジスタ62には、サブプロセッサ2が実行するプログラムコードに付加されたプログラムIDの値が格納される。プログラムIDは、各プログラムコードを識別する情報である。レジスタ63には、サブプロセッサ2をリセット状態とするリセット信号を制御するためのフラグ(リセットフラグ)となる値が格納される。本実施形態では、サブプロセッサ2のリセットが負論理であるため、レジスタ64の出力にインバータ66が接続され、インバータ66からリセット信号が出力される。サブプロセッサ2のリセットが正論理の場合には、インバータ66は必要ない。レジスタ64には、サブプロセッサ2へ出力される割込み信号を制御するためのフラグ(第2の割込みフラグ)となる値が格納される。
次に、本実施形態によるマルチプロセッサシステムの動作を説明する。図3はマルチプロセッサシステムの動作の手順を示している。マルチプロセッサシステムが起動されると、まずホストプロセッサ1はレジスタ6のリセットフラグを立て、サブプロセッサ2に対してリセット信号を出力することにより、サブプロセッサ2をリセット状態にする(ステップS301)。ステップS301における動作を詳細に説明すると、ホストプロセッサ1は、バスを経由してレジスタ6内のレジスタ63に0を書き込む。レジスタ63の出力は、インバータ66を介してサブプロセッサ2のリセット端子に接続されているため、サブプロセッサ2はリセット状態になる。
続いて、ホストプロセッサ1は、サブプロセッサ2によって実行されるプログラムをプログラム格納手段3から読み出し、ローカルメモリ4に書き込む(ステップS302)。図4はローカルメモリ4のメモリマップを示している。マルチプロセッサシステムの起動後、最初にローカルメモリ4に書き込まれるプログラムには、サブプロセッサ2が行う処理が記述されたプログラムコードの他に、ブートコードとハンドラ(割込みハンドラ)が含まれる。
ブートコードは、サブプロセッサ2が起動するために必要なプログラムコードであり、ハンドラは、サブプロセッサ2がスリープ状態から復帰する際に実行されるプログラムコードである。ローカルメモリ4のアドレスA番地から始まる「プログラムコード」の領域に書き込まれるプログラムコードは、所定の処理単位毎に区切られたプログラム全体の一部(ブロック)であり、サブプロセッサ2をスリープ状態にする命令で終了するように記述されている(図5)。サブプロセッサ2をスリープ状態にする命令で区切られた所定の処理単位のプログラムコード毎にプログラムIDが付与されている。
ローカルメモリ4へのプログラムコードの書き込みが終了すると、ホストプロセッサ1はレジスタ6内のレジスタ63に1を書き込んでリセットフラグを解除することによって、サブプロセッサ2のリセットを解除する(ステップS303)。サブプロセッサ2のリセット解除後、ホストプロセッサ1は必要に応じて任意の処理を実行する(ステップS304)。
一方、ホストプロセッサ1がサブプロセッサ2のリセットを解除すると、サブプロセッサ2は、ローカルメモリ4からブートコードを読み出して実行することによって、プログラムの実行を開始する。サブプロセッサ2は、ブートコードの実行に引き続いて、ローカルメモリ4からプログラムコードを読み出して実行する(ステップS305)。このプログラムコードに記述された所定の処理の実行が終了するまで(ステップS306でNOの場合)、サブプロセッサ2はプログラムコードを実行する(ステップS307)。ローカルメモリ4に格納されていないプログラムコードを実行する必要が生じた場合(ステップS306でYESの場合)、次のステップに遷移する。
この場合、サブプロセッサ2は、引き続き実行するプログラムコードに付与されたプログラムIDをレジスタ6内のレジスタ62に書き込み、さらにレジスタ61に1を書き込んで割込みフラグを立てる(ステップS308)。サブプロセッサ2が実行中のプログラムコードには、上記のプログラムIDをレジスタ62に書き込む命令が記述されており、サブプロセッサ2はその命令に従って上記のように動作する。レジスタ61の出力はホストプロセッサ1の割込みポートに接続されているため、ホストプロセッサ1に対する割込みが発生する。続いて、サブプロセッサ2はスリープモードに遷移する(ステップS309)。これによって、次のプログラムコードを実行するまでのサブプロセッサ2の消費電力が抑えられる。
ホストプロセッサ1は、サブプロセッサ2からのプログラム転送要求があるまでは、ステップS304において任意の処理を実行している。サブプロセッサ2からのプログラム転送要求は、上記のように割込みによってホストプロセッサ1に伝えられる。この割込みを受けるとホストプロセッサ1は、レジスタ6内のレジスタ62からプログラムIDを読み出し、このプログラムIDに対応するプログラムコードをプログラム格納手段3から読み出して、ローカルメモリ4のアドレスA番地に書き込む(ステップS310)。
プログラムコードの書き込みが終了すると、ホストプロセッサ1はレジスタ6内のレジスタ64に1を書き込んで割込みフラグを立てる(ステップS311)。レジスタ64の出力はサブプロセッサ2の割込みポートに接続されているため、これによってサブプロセッサ2に対する割込みが発生する。続いて、ホストプロセッサ1はステップS304に復帰する。
サブプロセッサ2は、ホストプロセッサ1からの割込み信号を受け取ると、スリープモードから通常動作モードになる(ステップS312)。続いて、サブプロセッサ2はステップS305に復帰し、ローカルメモリ4のアドレスA番地から、新たに書き込まれたプログラムコードを読み出して実行する。以降、サブプロセッサ2は、ステップS306〜S309,S312を繰り返すことでプログラムを実行する。
次に、サブプロセッサ2を用いて画像処理を行う場合を例として、プログラムコードとプログラムIDの関係を説明する。図10に画像処理プログラムのフローチャートを示す。図10の画像処理においては、画像データにフィルタ処理を行い(ステップS1001)、縮小モードであれば(ステップS1002においてYES)、フィルタ処理後のデータに縮小処理を行い(ステップS1003)、続いてエンコード処理を行う(ステップS1004)。また、縮小モードでなければ(ステップS1002においてNO)、フィルタ処理後のデータにエンコード処理(ステップS1004)を行う。
このような場合、ステップS1001およびS1002の処理が記述されたプログラムコードをIDが1のプログラムコードとし、ステップS1003の処理が記述されたプログラムコードをIDが2のプログラムコードとし、ステップS1004の処理が記述されたプログラムコードをIDが3のプログラムコードとする。すなわち、機能毎に適切に分割されたプログラムコードに対してプログラムIDが付与される。以上は、後述する第2の実施形態でも同様である。
上述したように、本実施形態によるマルチプロセッサシステムでは、サブプロセッサ2が実行するプログラムコードが所定の処理単位毎にローカルメモリ4に格納され、サブプロセッサ2によって読み出されて実行される。複数のプログラムコードからなるプログラム全体のサイズがローカルメモリ4のサイズよりも大きいプログラムコードをサブプロセッサ2が実行する場合でも、プログラムコードの受け渡しが所定の処理単位毎に行われるので、プログラムコードのサイズに関わらず、ローカルメモリ4のサイズを削減することができる。したがって、ローカルメモリ4のサイズは、各処理単位のプログラムコードのサイズに対応していれば十分であり、マルチプロセッサシステムをより安価に構成することができる。
次に、本発明の第2の実施形態を説明する。図6は、本実施形態によるマルチプロセッサシステムの構成を示している。第1の実施形態と比較して、本実施形態ではプログラム転送手段7が追加されている。プログラム転送手段7は、DMA(Direct Memory Access)等で構成され、プログラム格納手段3に格納されたプログラムコードをローカルメモリ4に転送する機能を有している。プログラム転送手段7がプログラムコードの転送を行っている間、ホストプロセッサ1は他のタスクを実行することが可能である。また、本実施形態におけるレジスタ6の構成は第1の実施形態とほぼ同様であるが、サブプロセッサ2に対する割込みに係るレジスタ64は設けられていなくてもよい。
以下、本実施形態によるマルチプロセッサシステムの動作を説明する。図7はマルチプロセッサシステムの動作の手順を示している。マルチプロセッサシステムが起動されると、まずホストプロセッサ1はレジスタ6内のレジスタ63のリセットフラグを立て、サブプロセッサ2に対してリセット信号を出力することにより、サブプロセッサ2をリセット状態にする(ステップS701)。
続いて、ホストプロセッサ1は、プログラム転送手段7の動作を規定する動作パラメータとして、転送するプログラムコードのプログラム格納手段3内の先頭アドレスと、転送するプログラムコードのサイズとを、プログラム転送手段7に内蔵されたレジスタに書き込んだ後、プログラム転送手段7に転送開始指示を与える(ステップS702)。プログラム転送手段7に転送開始指示を与えた後、ホストプロセッサ1は必要に応じて任意の処理を実行する(ステップS703)。
ホストプロセッサ1から転送開始指示を受け取ると、プログラム転送手段7は、内蔵されたレジスタに書き込まれたプログラム格納手段3の先頭アドレスから、同じく内蔵されたレジスタに書き込まれたプログラムコードサイズ分のプログラムコードを読み出し、ローカルメモリ4へ転送する。ローカルメモリ4のメモリマップは第1の実施形態と同様である。ローカルメモリ4へのプログラムコードの書き込みが終了すると、プログラム転送手段7は、ホストプロセッサ1に対して割込みを発生する。
割込みを受けると、ホストプロセッサ1はレジスタ6内のレジスタ63に1を書き込んでリセットフラグを解除することによって、サブプロセッサ2のリセットを解除する(ステップS704)。サブプロセッサ2のリセット解除後、ホストプロセッサ1はステップS703に復帰し、必要に応じて任意の処理を実行する。
一方、ホストプロセッサ1がサブプロセッサ2のリセットを解除すると、サブプロセッサ2は、ローカルメモリ4からブートコードを読み出して実行することによって、プログラムの実行を開始する。サブプロセッサ2は、ブートコードの実行に引き続いて、ローカルメモリ4からプログラムコードを読み出して実行する(ステップS705)。このプログラムコードに記述された所定の処理の実行が終了するまで(ステップS706でNOの場合)、サブプロセッサ2はプログラムコードを実行する(ステップS707)。ローカルメモリ4に格納されていないプログラムコードを実行する必要が生じた場合(ステップS706でYESの場合)、次のステップに遷移する。
この場合、サブプロセッサ2は、引き続き実行するプログラムコードに付与されたプログラムIDをレジスタ6内のレジスタ62に書き込み、さらにレジスタ61に1を書き込んで割込みフラグを立てる(ステップS708)。レジスタ61の出力はホストプロセッサ1の割込みポートに接続されているため、ホストプロセッサ1に対する割込みが発生する。続いて、サブプロセッサ2はスリープモードに遷移する(ステップS709)。
ホストプロセッサ1は、サブプロセッサ2からのプログラム転送要求があるまでは、ステップS703において任意の処理を実行している。サブプロセッサ2からのプログラム転送要求は、上記のように割込みによってホストプロセッサ1に伝えられる。この割込みを受けるとホストプロセッサ1は、レジスタ6内のレジスタ62からプログラムIDを読み出し、このプログラムIDに対応するプログラムコードの先頭アドレスとコードサイズを、プログラム転送手段7に内蔵されたレジスタに書き込んだ後、プログラム転送手段7に転送開始指示を与える(ステップS710)。この後、ホストプロセッサ1はステップS703に復帰し、必要に応じて任意の処理を実行する。
ホストプロセッサ1から転送開始指示を受け取ると、プログラム転送手段7は、内蔵されたレジスタに書き込まれたプログラム格納手段3の先頭アドレスから、同じく内蔵されたレジスタに書き込まれたプログラムコードサイズ分のプログラムコードを読み出し、ローカルメモリ4のアドレスA番地へ転送する。ローカルメモリ4へのプログラムコードの書き込みが終了すると、プログラム転送手段7は、サブプロセッサ2に対して割込みを発生する。
サブプロセッサ2は、プログラム転送手段7からの割込み信号を受け取ると、スリープモードから通常動作モードになる(ステップS711)。続いて、サブプロセッサ2はステップS705に復帰し、ローカルメモリ4のアドレスA番地から、新たに書き込まれたプログラムコードを読み出して実行する。以降、サブプロセッサ2は、ステップS706〜S709,S711を繰り返すことでプログラムを実行する。
上述した本実施形態によれば、第1の実施形態と同様に、プログラムコードのサイズに関わらず、ローカルメモリ4のサイズを削減することができる。また、プログラム転送手段7によるプログラムコードの転送中、ホストプロセッサ1は他のタスクを実行することが可能となるので、処理効率を向上することができる。
次に、本実施形態の変形例を説明する。図8は第1の変形例の構成を示している。本変形例では、図6に示したマルチプロセッサシステムの構成のうち、ホストプロセッサ1及びプログラム格納手段3以外の構成からなる組が2組設けられている。図8では、この組が2組であるが、3組以上であってもよい。図8のようにマルチプロセッサシステムを構成することによって、プログラム転送手段7a,7bが、プログラムコードを転送する命令をホストプロセッサ1から受けて、サブプロセッサ2a,2bの夫々によって実行されるプログラムコードを、アクセス選択手段5a,5bを介してローカルメモリ4a,4bの夫々に同時に転送することができる。
図9は第2の変形例の構成を示している。本変形例では、図6に示したマルチプロセッサシステムの構成のうち、サブプロセッサ、ローカルメモリ、及びレジスタからなる組が2組設けられている。図9では、この組が2組であるが、3組以上であってもよい。図9のようにマルチプロセッサシステムを構成することによって、プログラム転送手段7が、プログラムコードを転送する命令をホストプロセッサ1から受けて、サブプロセッサ2a,2bの夫々によって実行される同一のプログラムコードを、アクセス選択手段5を介してローカルメモリ4a,4bの夫々に同時に転送することができる。
第1の変形例では、サブプロセッサ2a,2bの夫々によって実行されるプログラムコードをローカルメモリ4a,4bの夫々に転送するためには、プログラム転送手段7a,7bの夫々が1つずつ(同一でもよい)プログラムコードをプログラム格納手段3から読み出す必要がある。これに対して、第2の変形例では、サブプロセッサ2a,2bによって同一のプログラムコードが実行される場合には、プログラム転送手段7が1つのプログラムコードをプログラム格納手段3から読み出して同時に2つのローカルメモリへ転送すればよい。これによって、プログラム転送手段7がプログラム格納手段3からプログラムコードを読み出す回数を減らすことができ、プログラム格納手段3が接続されるバスのデータ流量を削減することが可能となり、その結果、マルチプロセッサシステムを高速に起動することができる。
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成はこれらの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。例えば、各実施形態において、バスに共有メモリを追加し、サブプロセッサ2はローカルメモリ4の代わりにバス上の共有メモリをヒープ領域及びスタック領域として利用してもよい。
また、第1の実施形態において、以下のようにしてもよい。ホストプロセッサ1は、図3のステップS304の処理を実行している際に、ステップS307の処理を実行しているサブプロセッサ2に対して、アボート要求を出力し、サブプロセッサ2はアボート要求を受け取ると、実行中のプログラムのアボート処理を行ってから、レジスタ6に対するプログラムIDの書き込みを行うことなく、ホストプロセッサ1に対する割込みを発生する。ホストプロセッサ1は割込みを受け取ると、任意のプログラムをプログラム格納手段3から読み出してローカルメモリ4に書き込み、サブプロセッサ2に対する割込みを発生する。これによって、サブプロセッサ2に実行中のプログラムの実行を終了させ、他の任意のプログラムを実行させることができる。
同様に第2の実施形態において、以下のようにしてもよい。ホストプロセッサ1は、図7のステップS703の処理を実行している際に、ステップS707の処理を実行しているサブプロセッサ2に対して、アボート要求を出力し、サブプロセッサ2はアボート要求を受け取ると、実行中のプログラムのアボート処理を行ってから、レジスタ6に対するプログラムIDの書き込みを行うことなく、ホストプロセッサ1に対する割込みを発生する。ホストプロセッサ1は割込みを受け取ると、任意のプログラムをプログラム格納手段3から読み出してローカルメモリ4に書き込むようにプログラム転送手段7を制御し、転送終了後にプログラム転送手段7はサブプロセッサ2に対する割込みを発生する。これによって、サブプロセッサ2に実行中のプログラムの実行を終了させ、他の任意のプログラムを実行させることができる。
1・・・ホストプロセッサ、2,2a,2b・・・サブプロセッサ、3・・・プログラム格納手段、4,4a,4b・・・ローカルメモリ、5,5a,5b・・・アクセス選択手段、6,6a,6b,61,62,63,64・・・レジスタ、7,7a,7b・・・プログラム転送手段、65・・・アドレスデコーダ、66・・・インバータ
Claims (3)
- ホストプロセッサと、
サブプロセッサと、
所定の処理単位毎に識別情報を有する複数の処理単位からなり、前記サブプロセッサによって実行されるプログラムが格納されたプログラム格納手段と、
前記ホストプロセッサが参照する第1の割込みフラグ及び前記識別情報が格納される第1のレジスタ領域を有すると共に、前記サブプロセッサが参照する第2の割込みフラグが格納される第2のレジスタ領域を有するレジスタと、
前記処理単位に対応する容量を有し、前記プログラムが一時的に格納されるローカルメモリと、
を有し、
前記ホストプロセッサは、前記第1のレジスタ領域に前記第1の割込みフラグが立っているときには、前記第1のレジスタ領域に格納されている前記識別情報に対応した前記所定の処理単位分の前記プログラムを前記プログラム格納手段から読み出して前記ローカルメモリに格納した後に、前記第2のレジスタ領域に前記第2の割込みフラグを立て、
前記サブプロセッサは、前記第2のレジスタ領域に前記第2の割込みフラグが立っているときには、前記ローカルメモリに格納された前記プログラムを読み出して処理を実行した後、引き続いて実行する前記処理単位の前記識別情報と前記第1の割込みフラグを前記第1のレジスタ領域に格納する
ことを特徴とするマルチプロセッサシステム。 - ホストプロセッサと、
サブプロセッサと、
所定の処理単位毎に識別情報を有する複数の処理単位からなり、前記サブプロセッサによって実行されるプログラムが格納されたプログラム格納手段と、
前記ホストプロセッサが参照する割込みフラグ及び前記識別情報が格納されるレジスタと、
前記処理単位に対応する容量を有し、前記プログラムが一時的に格納されるローカルメモリと、
前記ホストプロセッサからの転送命令に基づいて、前記プログラム格納手段から前記所定の処理単位分の前記プログラムを読み出して前記ローカルメモリに転送した後、転送完了信号を生成するプログラム転送手段と、
を有し、
前記ホストプロセッサは、前記レジスタに前記割込みフラグが立っているときには、前記レジスタに格納されている前記識別情報に対応した前記所定の処理単位分の前記プログラムの転送命令を前記プログラム転送手段へ出力し、
前記サブプロセッサは、前記プログラム転送手段から前記転送完了信号が出力されたときには、前記ローカルメモリに格納された前記プログラムを読み出して処理を実行した後、引き続いて実行する前記処理単位の前記識別情報と前記割込みフラグを前記レジスタに格納する
ことを特徴とするマルチプロセッサシステム。 - 前記サブプロセッサ及び前記ローカルメモリからなる組を少なくとも2組有し、前記プログラム転送手段は、各組の前記ローカルメモリに対して同時に同一の前記処理単位分の前記プログラムを転送することを特徴とする請求項2に記載のマルチプロセッサシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006000067A JP2007183705A (ja) | 2006-01-04 | 2006-01-04 | マルチプロセッサシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006000067A JP2007183705A (ja) | 2006-01-04 | 2006-01-04 | マルチプロセッサシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007183705A true JP2007183705A (ja) | 2007-07-19 |
Family
ID=38339754
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006000067A Withdrawn JP2007183705A (ja) | 2006-01-04 | 2006-01-04 | マルチプロセッサシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007183705A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8171233B2 (en) | 2008-03-07 | 2012-05-01 | Samsung Electronics Co., Ltd. | Multi port semiconductor memory device with direct access function in shared structure of nonvolatile memory and multi processor system thereof |
JP2014063510A (ja) * | 2013-11-19 | 2014-04-10 | Renesas Electronics Corp | データ処理装置 |
JP2015508520A (ja) * | 2011-12-05 | 2015-03-19 | クアルコム,インコーポレイテッド | マルチプロセッサシステムにおけるプロセッサ間プロトコル |
-
2006
- 2006-01-04 JP JP2006000067A patent/JP2007183705A/ja not_active Withdrawn
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8171233B2 (en) | 2008-03-07 | 2012-05-01 | Samsung Electronics Co., Ltd. | Multi port semiconductor memory device with direct access function in shared structure of nonvolatile memory and multi processor system thereof |
JP2015508520A (ja) * | 2011-12-05 | 2015-03-19 | クアルコム,インコーポレイテッド | マルチプロセッサシステムにおけるプロセッサ間プロトコル |
JP2016115371A (ja) * | 2011-12-05 | 2016-06-23 | クアルコム,インコーポレイテッド | マルチプロセッサシステムにおけるプロセッサ間プロトコル |
JP2018045718A (ja) * | 2011-12-05 | 2018-03-22 | クアルコム,インコーポレイテッド | マルチプロセッサシステムにおけるプロセッサ間プロトコル |
JP2014063510A (ja) * | 2013-11-19 | 2014-04-10 | Renesas Electronics Corp | データ処理装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4672742B2 (ja) | メモリコントローラおよびメモリシステム | |
JP5043302B2 (ja) | 不揮発性メモリを制御するためのコントローラ | |
CN104850435B (zh) | 电源管理控制器与方法 | |
JP2011095916A (ja) | 電子機器 | |
JP4895262B2 (ja) | 情報処理装置、コントローラおよびファイル読み出し方法 | |
JP2010500682A (ja) | フラッシュメモリアクセス回路 | |
JP2010015665A (ja) | Nandフラッシュメモリのリフレッシュ方法及びnand型フラッシュメモリデバイス | |
JP2005071303A (ja) | プログラム起動装置 | |
JP2005157528A (ja) | メモリ装置 | |
JP5864529B2 (ja) | 仮想計算機システム、仮想計算機システム制御方法、及び仮想計算機システム制御プログラム | |
JP2007183705A (ja) | マルチプロセッサシステム | |
JP2009175904A (ja) | マルチプロセッサ処理システム | |
JP2006020058A (ja) | 画像形成装置 | |
JP2013200692A (ja) | メモリシステム | |
JP2007299249A (ja) | Nand型フラッシュメモリデバイス及びこれを利用したコンピューティングシステムの起動方法 | |
JP2006127245A (ja) | 電子機器システム | |
JP2008065725A (ja) | Nand型フラッシュメモリデバイス及びこれを利用したコンピューティングシステムの起動方法 | |
JP2008009702A (ja) | 演算処理システム | |
JP2010198127A (ja) | 半導体記憶デバイス及びその制御方法 | |
JP2007087244A (ja) | コプロセッサ及びコンピュータシステム | |
CN102270176A (zh) | 数据存取方法及其相关的控制系统 | |
JP2009093270A (ja) | コンピュータシステム及びその起動方法 | |
JPS62179045A (ja) | 制御装置 | |
JP2006178735A (ja) | 冗長化システム | |
JP2006023808A (ja) | データ転送装置及びデータ転送方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20090407 |