マルチプロセッサシステムを構成する複数のプロセッサのうちの1個のプロセッサであって、CPUと、前記CPUが実行する命令および他のプロセッサが備えるCPUが実行する命令を格納しているローカル命令メモリと、前記ローカル命令メモリおよび前記他のプロセッサが備えるローカル命令メモリのいずれかを選択し、選択したローカル命令メモリを、前記CPUの命令メモリとして、前記CPUに接続するセレクタと、前記セレクタの状態を制御するための情報を格納するメモリ共有モード設定レジスタと、前記CPUが実行する命令が格納されている前記ローカル命令メモリの記憶領域の先頭アドレスを格納するローカル命令メモリ先頭アドレスレジスタと、前記CPUが実行する命令が格納されている前記ローカル命令メモリの記憶領域の終了アドレスを格納するローカル命令メモリ終了アドレスレジスタと、前記他のプロセッサが備えるローカル命令メモリの記憶領域であって前記CPUが実行する命令が格納されている記憶領域の先頭アドレスを格納する共有命令メモリ先頭アドレスレジスタと、前記他のプロセッサが備えるローカル命令メモリの記憶領域であって前記CPUが実行する命令が格納されている記憶領域の終了アドレスを格納する共有命令メモリ終了アドレスレジスタとを備え、前記CPUは、命令を実行することにより、1前記メモリ共有モード設定レジスタに情報を格納すること、2前記メモリ共有モード設定レジスタに格納された情報を参照することで、前記CPUが命令フェッチを行うアドレスが、前記ローカル命令メモリ先頭アドレスレジスタと前記ローカル命令メモリ終了アドレスレジスタとで定義される領域内であるか、または、前記共有命令メモリ先頭アドレスレジスタと前記共有命令メモリ終了アドレスレジスタとで定義される領域内であるかを判定すること、および、3前記判定の結果に基づいて前記セレクタを制御することで、前記ローカル命令メモリと前記他のプロセッサが備えるローカル命令メモリとを切り替え、切り替え後のローカル命令メモリから命令をフェッチして実行するプロセッサ。前記CPUは、前記CPUが命令フェッチを行うアドレスが、前記ローカル命令メモリ先頭アドレスレジスタと前記ローカル命令メモリ終了アドレスレジスタとで定義される領域内である場合には、前記ローカル命令メモリと前記CPUとを接続するように前記セレクタを制御し、前記CPUが命令フェッチを行うアドレスが、前記共有命令メモリ先頭アドレスレジスタと前記共有命令メモリ終了アドレスレジスタとで定義される領域内である場合には、前記他のプロセッサが備えるローカル命令メモリと前記CPUとを接続するように前記セレクタを制御する請求項1記載のプロセッサ。前記CPUは、前記セレクタの状態を示す第1CPU命令メモリセレクト信号を前記他のプロセッサが備えるCPUへ出力するための第1出力ポートと、前記他のプロセッサが備えるセレクタの状態を示す第2CPU命令メモリセレクト信号を入力するための第1入力ポートと、前記ローカル命令メモリまたは前記他のプロセッサが備えるローカル命令メモリへの前記CPUのアクセス状態を示す第1CPU命令メモリビジー信号を出力するための第2出力ポートと、前記ローカル命令メモリまたは前記他のプロセッサが備えるローカル命令メモリへの、前記他のプロセッサが備えるCPUのアクセス状態を示す第2CPU命令メモリビジー信号を入力するための第2入力ポートとを備え、前記判定の結果に加えて、前記第2CPU命令メモリセレクト信号と前記第2CPU命令メモリビジー信号とに基づいて、前記セレクタの制御を行う請求項1または2記載のプロセッサ。前記CPUは、前記CPUが命令フェッチを行うアドレスが、前記ローカル命令メモリ先頭アドレスレジスタと前記ローカル命令メモリ終了アドレスレジスタとで定義される領域内である場合に、前記第2CPU命令メモリセレクト信号と前記第2CPU命令メモリビジー信号とに基づいて前記他のプロセッサが備えるCPUが前記ローカル命令メモリにアクセスしていないと判定したときに、前記ローカル命令メモリと前記CPUとを接続するように前記セレクタを制御し、前記CPUが命令フェッチを行うアドレスが、前記共有命令メモリ先頭アドレスレジスタと前記共有命令メモリ終了アドレスレジスタとで定義される領域内である場合に、前記第2CPU命令メモリセレクト信号と前記第2CPU命令メモリビジー信号とに基づいて前記他のプロセッサが備えるCPUが前記他のプロセッサが備えるローカル命令メモリにアクセスしていないと判定したときに、前記他のプロセッサが備えるローカル命令メモリと前記CPUとを接続するように前記セレクタを制御する請求項3記載のプロセッサ。前記CPUは、前記他のプロセッサが備えるCPUが備える命令セットと同じ命令セットを備える請求項1~4のいずれか1項に記載のプロセッサ。複数のプロセッサから構成されるマルチプロセッサシステムであって、前記複数のプロセッサのそれぞれは、請求項1~5のいずれか1項に記載のプロセッサであるマルチプロセッサシステム。複数のプロセッサから構成されるマルチプロセッサシステムにおけるメモリ制御方法であって、前記複数のプロセッサのそれぞれは、CPUと、前記CPUが実行する命令および他のプロセッサが備えるCPUが実行する命令を格納しているローカル命令メモリと、前記ローカル命令メモリおよび前記他のプロセッサが備えるローカル命令メモリのいずれかを選択し、選択したローカル命令メモリを、前記CPUの命令メモリとして、前記CPUに接続するセレクタと、前記セレクタの状態を制御するための情報を格納するメモリ共有モード設定レジスタと、前記CPUが実行する命令が格納されている前記ローカル命令メモリの記憶領域の先頭アドレスを格納するローカル命令メモリ先頭アドレスレジスタと、前記CPUが実行する命令が格納されている前記ローカル命令メモリの記憶領域の終了アドレスを格納するローカル命令メモリ終了アドレスレジスタと、前記他のプロセッサが備えるローカル命令メモリの記憶領域であって前記CPUが実行する命令が格納されている記憶領域の先頭アドレスを格納する共有命令メモリ先頭アドレスレジスタと、前記他のプロセッサが備えるローカル命令メモリの記憶領域であって前記CPUが実行する命令が格納されている記憶領域の終了アドレスを格納する共有命令メモリ終了アドレスレジスタとを備え、前記メモリ制御方法は、前記メモリ共有モード設定レジスタに情報を格納するステップと、前記メモリ共有モード設定レジスタに格納された情報を参照することで、前記CPUが命令フェッチを行うアドレスが、前記ローカル命令メモリ先頭アドレスレジスタと前記ローカル命令メモリ終了アドレスレジスタとで定義される領域内であるか、または、前記共有命令メモリ先頭アドレスレジスタと前記共有命令メモリ終了アドレスレジスタとで定義される領域内であるかを判定するステップと、前記判定の結果に基づいて前記セレクタを制御することで、前記ローカル命令メモリと前記他のプロセッサが備えるローカル命令メモリとを切り替え、切り替え後のローカル命令メモリから命令をフェッチするステップとを含むメモリ制御方法。さらに、他のプロセッサが備えるCPUの前記ローカル命令メモリまたは前記他のプロセッサが備えるローカル命令メモリへのアクセス状態を参照し、前記CPUが命令フェッチを行うローカル命令メモリの切替制御を行うことで、前記CPUと前記他のプロセッサが備えるCPUによる前記ローカル命令メモリまたは前記他のプロセッサが備えるローカル命令メモリへのアクセスを調停するステップを含む請求項7記載のメモリ制御方法。前記複数のプロセッサが備えるCPUは、同一の命令セットを備える請求項7または8記載のメモリ制御方法。しかしながら、特許文献1に記載された発明では各プロセッサのローカルメモリのアドレス空間は各々同じであり、各プロセッサがアクセスできるアドレス空間はローカルメモリのサイズのままである。そのために、特許文献1の技術では、メモリを切り替えるつまり、アクセスの対象となるメモリを切り替えるだけであり、ローカルメモリのサイズを拡大することは出来ないという問題点がある。そこで、本発明は、上記の課題を解決するために、ローカル命令メモリを備える複数のプロセッサから構成されるマルチプロセッサシステムにおいて、ローカル命令メモリのサイズを実質的に拡大する形態でローカル命令メモリを各プロセッサ間で共有できるマルチプロセッサシステム、それを構成するプロセッサおよびそのメモリ制御方法を提供することを目的とする。上記の課題を解決するために、本発明に係るプロセッサの一形態は、マルチプロセッサシステムを構成する複数のプロセッサのうちの1個のプロセッサであって、CPUと、前記CPUが実行する命令および他のプロセッサが備えるCPUが実行する命令を格納しているローカル命令メモリと、前記ローカル命令メモリおよび前記他のプロセッサが備えるローカル命令メモリのいずれかを選択し、選択したローカル命令メモリを、前記CPUの命令メモリとして、前記CPUに接続するセレクタと、前記セレクタの状態を制御するための情報を格納するメモリ共有モード設定レジスタと、前記CPUが実行する命令が格納されている前記ローカル命令メモリの記憶領域の先頭アドレスを格納するローカル命令メモリ先頭アドレスレジスタと、前記CPUが実行する命令が格納されている前記ローカル命令メモリの記憶領域の終了アドレスを格納するローカル命令メモリ終了アドレスレジスタと、前記他のプロセッサが備えるローカル命令メモリの記憶領域であって前記CPUが実行する命令が格納されている記憶領域の先頭アドレスを格納する共有命令メモリ先頭アドレスレジスタと、前記他のプロセッサが備えるローカル命令メモリの記憶領域であって前記CPUが実行する命令が格納されている記憶領域の終了アドレスを格納する共有命令メモリ終了アドレスレジスタとを備え、前記CPUは、命令を実行することにより、1前記メモリ共有モード設定レジスタに情報を格納すること、2前記メモリ共有モード設定レジスタに格納された情報を参照することで、前記CPUが命令フェッチを行うアドレスが、前記ローカル命令メモリ先頭アドレスレジスタと前記ローカル命令メモリ終了アドレスレジスタとで定義される領域内であるか、または、前記共有命令メモリ先頭アドレスレジスタと前記共有命令メモリ終了アドレスレジスタとで定義される領域内であるかを判定すること、および、3前記判定の結果に基づいて前記セレクタを制御することで、前記ローカル命令メモリと前記他のプロセッサが備えるローカル命令メモリとを切り替え、切り替え後のローカル命令メモリから命令をフェッチして実行する。これにより、各プロセッサには、当該プロセッサが備えるローカル命令メモリのアドレス空間を特定するためのレジスタローカル命令メモリ先頭アドレスレジスタ、ローカル命令メモリ終了アドレスレジスタと、他のプロセッサが備えるローカル命令メモリのアドレス空間を特定するためのレジスタ共有命令メモリ先頭アドレスレジスタ、共有ローカル命令メモリ終了アドレスレジスタとが設けられ、当該プロセッサが備えるCPUがアクセスするアドレスに応じて、アクセス先として、当該プロセッサが備えるローカル命令メモリと他のプロセッサが備えるローカル命令メモリとが切り替えられる。つまり、メモリ共有モードを設定することにより、当該プロセッサが備えるローカル命令メモリに加えて、他のプロセッサが備えるローカル命令メモリを、当該プロセッサが備えるCPUの命令メモリ領域として参照することが可能となり、CPUがアクセスできる命令メモリ空間を拡張できる。よって、CPUのローカル命令メモリの記憶容量以上のサイズのプログラムを命令メモリから読み出して実行することが出来る。なお、セレクタの具体的な制御としては、前記CPUは、前記CPUが命令フェッチを行うアドレスが、前記ローカル命令メモリ先頭アドレスレジスタと前記ローカル命令メモリ終了アドレスレジスタとで定義される領域内である場合には、前記ローカル命令メモリと前記CPUとを接続するように前記セレクタを制御し、前記CPUが命令フェッチを行うアドレスが、前記共有命令メモリ先頭アドレスレジスタと前記共有命令メモリ終了アドレスレジスタとで定義される領域内である場合には、前記他のプロセッサが備えるローカル命令メモリと前記CPUとを接続するように前記セレクタを制御するのが好ましい。これにより、命令をフェッチするアドレスに連動して、当該プロセッサが備えるローカル命令メモリと他のプロセッサが備えるローカル命令メモリとが切り替えられる。ここで、前記CPUは、前記セレクタの状態を示す第1CPU命令メモリセレクト信号を前記他のプロセッサが備えるCPUへ出力するための第1出力ポートと、前記他のプロセッサが備えるセレクタの状態を示す第2CPU命令メモリセレクト信号を入力するための第1入力ポートと、前記ローカル命令メモリまたは前記他のプロセッサが備えるローカル命令メモリへの前記CPUのアクセス状態を示す第1CPU命令メモリビジー信号を出力するための第2出力ポートと、前記ローカル命令メモリまたは前記他のプロセッサが備えるローカル命令メモリへの、前記他のプロセッサが備えるCPUのアクセス状態を示す第2CPU命令メモリビジー信号を入力するための第2入力ポートとを備え、前記判定の結果に加えて、前記第2CPU命令メモリセレクト信号と前記第2CPU命令メモリビジー信号とに基づいて、前記セレクタの制御を行ってもよい。具体的には、前記CPUは、前記CPUが命令フェッチを行うアドレスが、前記ローカル命令メモリ先頭アドレスレジスタと前記ローカル命令メモリ終了アドレスレジスタとで定義される領域内である場合に、前記第2CPU命令メモリセレクト信号と前記第2CPU命令メモリビジー信号とに基づいて前記他のプロセッサが備えるCPUが前記ローカル命令メモリにアクセスしていないと判定したときに、前記ローカル命令メモリと前記CPUとを接続するように前記セレクタを制御し、前記CPUが命令フェッチを行うアドレスが、前記共有命令メモリ先頭アドレスレジスタと前記共有命令メモリ終了アドレスレジスタとで定義される領域内である場合に、前記第2CPU命令メモリセレクト信号と前記第2CPU命令メモリビジー信号とに基づいて前記他のプロセッサが備えるCPUが前記他のプロセッサが備えるローカル命令メモリにアクセスしていないと判定したときに、前記他のプロセッサが備えるローカル命令メモリと前記CPUとを接続するように前記セレクタを制御するのが好ましい。これにより、一つのローカル命令メモリに対する複数のCPUからのアクセスの競合が適切に調停される。また、前記CPUは、前記他のプロセッサが備えるCPUが備える命令セットと同じ命令セットを備えてもよい。これにより、ローカル命令メモリは、複数のプロセッサ間において、プログラムの格納場所として共有されるだけでなく、複数のCPUによって実行される共通プログラムの格納場所としても共有され得る。なお、本発明は、プロセッサとして実現できるだけでなく、複数のプロセッサから構成されるマルチプロセッサシステムとして実現したり、複数のプロセッサから構成されるマルチプロセッサシステムにおけるメモリ制御方法として実現したりすることもできる。本発明によれば、マルチプロセッサシステムを構成する各プロセッサにメモリ共有モードを設定することにより、1つのプロセッサが備えるCPUから、当該プロセッサが備えるローカル命令メモリと他のプロセッサが備えるローカル命令メモリとを異なるアドレス空間のローカル命令メモリとして参照することが可能となり、CPUがアクセスできる命令メモリの空間を拡張できる。その結果、各プロセッサが備えるCPUは、各プロセッサに備えられたローカル命令メモリの記憶容量以上のサイズのプログラムを命令メモリから読み出して実行することが出来る。よって、ローカル命令メモリを備える複数のプロセッサから構成されるマルチプロセッサシステムにおいて、ローカル命令メモリのサイズを実質的に拡大する形態でローカル命令メモリが各プロセッサ間で共有され、これにより、ローカル命令メモリのチップ面積への影響が抑制され、マルチプロセッサシステムのシステムLSI化が促進される。以下、本発明にかかわるメモリ制御方法の実施の形態を図面に基づいて詳細に説明する。図1は本発明の実施の形態におけるメモリ制御方法を実施するマルチプロセッサシステム1の構成を示すブロック図、図2は本発明の実施の形態におけるメモリ制御で使用するレジスタの構成を示すブロック図、図3は本発明の実施の形態における第1CPU100のメモリ制御の動作メモリ制御方法を示すフローチャート、図4は本発明の実施の形態における第2CPU200のメモリ制御の動作メモリ制御方法を示すフローチャート、図5は本発明の実施の形態におけるメモリ制御の動作を示すタイミングチャートである。本実施の形態のマルチプロセッサシステム1は、マルチプロセッサシステム1を構成する複数のプロセッサのそれぞれが備えるローカル命令メモリをプロセッサ間で共有することができる1チップのシステムLSIであり、第1プロセッサ10、第2プロセッサ20、外部メモリ302、DRAMDynamicRamdomAccessMemoryコントローラ300およびDRAM301を備える。第1プロセッサ10は、第1CPU100と、命令メモリ101と、セレクタ102と、ローカル命令メモリ先頭アドレスレジスタ103と、ローカル命令メモリ終了アドレスレジスタ104と、共有命令メモリ先頭アドレスレジスタ105と、共有命令メモリ終了アドレスレジスタ106と、メモリ共有モード設定レジスタ107と、第1CPU命令メモリバス110とを備える。なお、第1CPU100と、5つのレジスタローカル命令メモリ先頭アドレスレジスタ103、ローカル命令メモリ終了アドレスレジスタ104、共有命令メモリ先頭アドレスレジスタ105、共有命令メモリ終了アドレスレジスタ106、メモリ共有モード設定レジスタ107とで、第1プロセッサ10における処理とメモリ制御を行う第1処理部120が構成されている。ここで、第1CPU100は、第2CPU200に第1CPU命令メモリBusyビジー信号108を出力するための第1出力ポートと、第2CPU200から送られてくる第2CPU命令メモリBusyビジー信号208を入力するための第1入力ポートと、第2CPU200に第1CPU命令メモリセレクト信号109を出力するための第2出力ポートと、第2CPU200から送られてくる第2CPU命令メモリセレクト信号209を入力するための第2入力ポートとを有する。なお、第1CPU命令メモリBusy信号108は、第1CPU100が命令メモリ命令メモリ101または命令メモリ201へのアクセス中1Busyであるか否かを示す信号である。また、第2CPU命令メモリBusy信号208は、第2CPU200が命令メモリ命令メモリ101または命令メモリ201へのアクセス中1Busyであるか否かを示す信号である。また、第1CPU命令メモリセレクト信号109は、メモリ共有モード設定レジスタ107の値、言い換えると、セレクタ102の選択状態を示す信号である。また、第2CPU命令メモリセレクト信号209は、メモリ共有モード設定レジスタ207の値、言い換えると、セレクタ202の選択状態を示す信号である。なお、これら4つの入出力ポートの全て、あるいは、その一部は、第1処理部120に設けられ、第1CPU100と接続されるように構成されていてもよい。第2プロセッサ20は、第2CPU200と、命令メモリ201とセレクタ202と、ローカル命令メモリ先頭アドレスレジスタ203と、ローカル命令メモリ終了アドレスレジスタ204と、共有命令メモリ先頭アドレスレジスタ205と、共有命令メモリ終了アドレスレジスタ206と、メモリ共有モード設定レジスタ207と、第2CPU命令メモリバス210とを備える。なお、第2CPU200と、5つのレジスタローカル命令メモリ先頭アドレスレジスタ203、ローカル命令メモリ終了アドレスレジスタ204、共有命令メモリ先頭アドレスレジスタ205、共有命令メモリ終了アドレスレジスタ206、メモリ共有モード設定レジスタ207とで、第2プロセッサ20における処理とメモリ制御を行う第2処理部220が構成されている。ここで、第2CPU200は、第1CPU100に第2CPU命令メモリBusy信号208を出力するための第1出力ポートと、第1CPU100から送られてくる第1CPU命令メモリBusy信号108を入力するための第1入力ポートと、第1CPU100に第2CPU命令メモリセレクト信号209を出力するための第2出力ポートと、第1CPU100から送られてくる第1CPU命令メモリセレクト信号109を入力するための第2入力ポートとを有する。なお、これら4つの入出力ポートの全て、あるいは、その一部は、第2処理部220に設けられ、第2CPU200と接続されるように構成されていてもよい。第1CPU100と第2CPU200は、同一の命令セットを備え、各々命令を実行し、命令に応じた動作をおこなうCPUであり、命令デコーダ、ALUArithmeticLogicUnit、レジスタ、入出力ポート等を有する。なお、第1CPU100と第2CPU200とは、必ずしも完全に同一の命令セットを備える必要はなく、それぞれが全体と部分の関係を有する命令セットを備え一方が他方のサブセット命令を備えてもよいし、全く異なる命令セットを備えてもよい。いずれの形態にするかは、マルチプロセッサシステム1の応用に依存して適宜決定すればよい。命令メモリ101は、第1CPU100にとってのローカル命令メモリであり、本実施の形態では、例えば、64k番地分の記憶容量を有し、第1CPU100にとって0x50000000~0x50000FFF番地のローカル命令メモリとして機能するとともに、第2CPU200にとって0x50000000~0x50000FFF番地の外部命令メモリとして機能する。つまり、この命令メモリ101は、第1プロセッサ10内に置かれているが、第1CPU100および第2CPU200によって共有される命令メモリの一つである。なお、本実施の形態では、命令メモリ101がもつ全記憶領域が第1CPU100および第2CPU200によって共有されているが、命令メモリ101の一部の記憶領域だけが共有されていてもよい。セレクタ102は、命令メモリ101からの命令と第2CPU命令メモリバス210からの命令とを入力とし、第1CPU命令メモリセレクト信号109の値により、どちらかを選択して出力する。具体的には、セレクタ102は、第1CPU命令メモリセレクト信号109が0つまり、メモリ共有モードが無効である場合、命令メモリ101からの命令を選択して出力し、一方、第1CPU命令メモリセレクト信号109が1つまり、メモリ共有モードが有効である場合、第2CPU命令メモリバス210からの命令を選択して出力する。ローカル命令メモリ先頭アドレスレジスタ103は第1CPU100の命令メモリ空間の先頭アドレス、つまり、第1プロセッサ10が備える命令メモリ101が有する記憶領域のうち第1CPU100が実行する命令が格納されている記憶領域の先頭アドレスローカル命令メモリ先頭アドレスを保持するレジスタである。ローカル命令メモリ終了アドレスレジスタ104は第1CPU100の命令メモリ空間の終了アドレス、つまり、第1プロセッサ10が備える命令メモリ101が有する記憶領域のうち第1CPU100が実行する命令が格納されている記憶領域の終了アドレスローカル命令メモリ終了アドレスを保持するレジスタである。共有命令メモリ先頭アドレスレジスタ105は第1CPU100の共有命令メモリ空間の先頭アドレス、つまり、第2プロセッサ20が備える命令メモリ201が有する記憶領域のうち第1CPU100が実行する命令が格納されている記憶領域の先頭アドレス共有命令メモリ先頭アドレスを保持するレジスタである。共有命令メモリ終了アドレスレジスタ106は第1CPU100の共有命令メモリ空間の終了アドレス、つまり、第2プロセッサ20が備える命令メモリ201が有する記憶領域のうち第1CPU100が実行する命令が格納されている記憶領域の終了アドレス共有命令メモリ終了アドレスを保持するレジスタである。メモリ共有モード設定レジスタ107は第1CPU100のメモリ共有モードの有効/無効を保持するレジスタでる。ここに格納された値が0である場合はメモリ共有モードが無効であることを示し、1である場合はメモリ共有モードが有効であることを示す。なお、メモリ共有モードが無効であるとは、命令メモリ101が第1CPU100によって使用されることを意味し、メモリ共有モードが有効であるとは、命令メモリ101が第2CPU200によって使用されることを意味する。第1CPU100は、第1CPU命令メモリBusy信号108として、第1CPU100が命令メモリ命令メモリ101または命令メモリ201へのアクセス中には1Busyを出力し、アクセスを行っていない場合には0非Busyを出力する。第1CPU100は、第1CPU命令メモリセレクト信号109として、メモリ共有モード設定レジスタ107に格納された値をセレクタ102へ出力する。第1CPU命令メモリバス110は命令メモリ101をセレクタ102とセレクタ202とに接続するバスである。命令メモリ201は、第2CPU200にとってのローカル命令メモリであり、本実施の形態では、例えば、64k番地分の記憶容量を有し、第2CPU200にとって0x50001000~0x50001FFF番地のローカル命令メモリとして機能するとともに、第1CPU100にとって0x50001000~0x50001FFF番地の外部命令メモリとして機能する。つまり、この命令メモリ201は、第2プロセッサ20内に置かれているが、第1CPU100および第2CPU200によって共有される命令メモリの一つである。なお、本実施の形態では、命令メモリ201がもつ全記憶領域が第1CPU100および第2CPU200によって共有されているが、命令メモリ201の一部の記憶領域だけが共有されていてもよい。セレクタ202は、命令メモリ201からの命令と第1CPU命令メモリバス110からの命令とを入力とし、第2CPU命令メモリセレクト信号209の値により、どちらかを選択して出力する。具体的には、セレクタ202は、第2CPU命令メモリセレクト信号209が0つまり、メモリ共有モードが無効である場合、命令メモリ201からの命令を選択して出力し、一方、第2CPU命令メモリセレクト信号209が1つまり、メモリ共有モードが有効である場合、第2CPU命令メモリバス210からの命令を選択して出力する。ローカル命令メモリ先頭アドレスレジスタ203は第2CPU200の命令メモリ空間の先頭アドレス、つまり、第2プロセッサ20が備える命令メモリ201が有する記憶領域のうち第2CPU200が実行する命令が格納されている記憶領域の先頭アドレスローカル命令メモリ先頭アドレスを保持するレジスタである。ローカル命令メモリ終了アドレスレジスタ204は第2CPU200の命令メモリ空間の終了アドレス、つまり、第2プロセッサ20が備える命令メモリ201が有する記憶領域のうち第2CPU200が実行する命令が格納されている記憶領域の終了アドレスローカル命令メモリ終了アドレスを保持するレジスタである。共有命令メモリ先頭アドレスレジスタ205は第2CPU200の共有命令メモリ空間の先頭アドレス、つまり、第1プロセッサ10が備える命令メモリ101が有する記憶領域のうち第2CPU200が実行する命令が格納されている記憶領域の先頭アドレス共有命令メモリ先頭アドレスを保持するレジスタである。共有命令メモリ終了アドレスレジスタ206は第2CPU200の共有命令メモリ空間の終了アドレス、つまり、第1プロセッサ10が備える命令メモリ101が有する記憶領域のうち第2CPU200が実行する命令が格納されている記憶領域の終了アドレス共有命令メモリ終了アドレスを保持するレジスタである。メモリ共有モード設定レジスタ207は第2CPU200のメモリ共有モードの有効/無効を保持するレジスタでる。ここに格納された値が0である場合はメモリ共有モードが無効であることを示し、1である場合はメモリ共有モードが有効であることを示す。なお、メモリ共有モードが無効であるとは、命令メモリ201が第2CPU200によって使用されることを意味し、メモリ共有モードが有効であるとは、命令メモリ201が第1CPU100によって使用されることを意味する。第2CPU200は、第2CPU命令メモリBusy信号208として、第2CPU200が命令メモリ命令メモリ201または命令メモリ101へのアクセス中には1Busyを出力し、アクセスを行っていない場合には0非Busyを出力する。第2CPU200は、第2CPU命令メモリセレクト信号209として、メモリ共有モード設定レジスタ207に格納された値をセレクタ202へ出力する。第2CPU命令メモリバス210は命令メモリ201をセレクタ202とセレクタ102とに接続するバスである。DRAMコントローラ300は第1CPU100および第2CPU200とメモリバスを介して接続され、第1CPU100と第2CPU200からのDRAM301へのアクセスを制御する。DRAM301は、第1プロセッサ10および第2プロセッサ20の外部に設けられた外部メモリの一例としてのDRAMであり、DRAMコントローラ300に制御される。外部メモリ302は、DRAMコントローラ300を介さずに、第1プロセッサ10および第2プロセッサ20によってアクセスされる。なお、メモリ制御のための初期設定として、第1CPU100は、命令メモリ領域を設定するためにローカル命令メモリ先頭アドレスレジスタ103とローカル命令メモリ終了アドレスレジスタ104とを初期設定し、共有命令メモリ領域を設定するために共有命令メモリ先頭アドレスレジスタ105と共有命令メモリ終了アドレスレジスタ106とを初期設定し、メモリ共有モードを設定するためにメモリ共有モード設定レジスタ107を初期設定する。同様に、第2CPU200は、命令メモリ領域を設定するためにローカル命令メモリ先頭アドレスレジスタ203とローカル命令メモリ終了アドレスレジスタ204とを初期設定し、共有命令メモリ領域を設定するために共有命令メモリ先頭アドレスレジスタ205と共有命令メモリ終了アドレスレジスタ206とを初期設定し、メモリ共有モードを設定するためにメモリ共有モード設定レジスタ207を初期設定する。本実施の形態では、命令メモリ領域および共有命令メモリ領域の初期設定の一例として、図2のレジスタ構成にあるとおりに各レジスタの値が設定される。つまり、第1プロセッサ10において、ローカル命令メモリ先頭アドレスレジスタ103にはローカル命令メモリ先頭アドレスとして0x50000000が設定され図2a、ローカル命令メモリ終了アドレスレジスタ104にはローカル命令メモリ終了アドレスとして0x50000FFFが設定され図2b、共有命令メモリ先頭アドレスレジスタ105には共有命令メモリ先頭アドレスとして0x50001000が設定され図2c、共有命令メモリ終了アドレスレジスタ106には共有命令メモリ終了アドレスとして0x50001FFFが設定され図2d、メモリ共有モード設定レジスタ107にはメモリ共有モードとして1が設定される図2e。これは、第1CPU100が、命令メモリ101を0x50000000~0x50000FFF番地のローカル命令メモリとしてアクセスし、命令メモリ201を0x50001000~0x50001FFF番地の共有命令メモリとしてアクセスするためである。また、第2プロセッサ20において、ローカル命令メモリ先頭アドレスレジスタ203にはローカル命令メモリ先頭アドレスとして0x50001000が設定され図2f、ローカル命令メモリ終了アドレスレジスタ204にはローカル命令メモリ終了アドレスとして0x50001FFFが設定され図2g、共有命令メモリ先頭アドレスレジスタ205には共有命令メモリ先頭アドレスとして0x50000000が設定され図2h、共有命令メモリ終了アドレスレジスタ206には共有命令メモリ終了アドレスとして0x50000FFFが設定され図2i、メモリ共有モード設定レジスタ207にはメモリ共有モードとして1が設定される図2j。これは、第2CPU200が、命令メモリ201を0x50001000~0x50001FFF番地のローカル命令メモリとしてアクセスし、命令メモリ101を0x50000000~0x50000FFF番地の共有命令メモリとしてアクセスするためである。なお、図2に示された初期設定に従って命令メモリ101および命令メモリ201の共有化を実現するために、その初期設定に対応したアドレスデコーダ等のアドレス回路が、第1プロセッサ10および第2プロセッサ20内に設けられている。ただし、図1では、アドレス回路の図示が省略されている。次に、以上のように構成された本実施の形態におけるマルチプロセッサシステム1における第1CPU100でのメモリ制御の基本動作を、図3の第1CPU100によるメモリ制御を示すフローチャートに基づいて説明する。ステップS101において、第1CPU100は、命令フェッチを行うアドレスがローカル命令メモリ先頭アドレスレジスタ103とローカル命令メモリ終了アドレスレジスタ104とによって決定される記憶領域ローカル命令メモリ先頭アドレス~ローカル命令メモリ終了アドレスの範囲内かの判定を行い、範囲内である場合にはステップS102へ分岐し、範囲外である場合にはステップS106へ分岐する。ステップS102においては、第1CPU100は、第2CPU200が命令メモリ101へのアクセス中ではないことを確認するために第2CPU命令メモリBusy信号208の状態と第2CPU命令メモリセレクト信号209の状態とを確認し、第2CPU命令メモリBusy信号208が1Busyかつ第2CPU命令メモリセレクト信号209が第1CPU100を選択した状態である場合にはステップS104へ分岐し、そうではない場合にはステップS103へ分岐する。ステップS103においては、第1CPU100は、命令メモリ101へのアクセスの準備として第1CPU命令メモリセレクト信号109の状態を確認し、第1CPU命令メモリセレクト信号109が第1CPU100を選択し命令メモリ101が選択されている場合には命令メモリ101にアクセスするためにステップS111へ分岐し、第2CPU命令メモリバス210を選択している場合には、ステップS105へ分岐する。ステップS104においては、第1CPU100は、一定期間のウェイトサイクルを経てステップS102へ遷移する。ステップS105においては、第1CPU100は、命令メモリ101にアクセスするために、第1CPU命令メモリセレクト信号109を命令メモリ101を選択するように切り替え、命令メモリ101にアクセスするためにステップS111へ遷移する。ステップS106においては、第1CPU100は、命令フェッチを行うアドレスが共有命令メモリ先頭アドレスレジスタ105と共有命令メモリ終了アドレスレジスタ106とによって決定される記憶領域共有命令メモリ先頭アドレス~共有命令メモリ終了アドレスの範囲内かの判定を行い、範囲内である場合にはステップS107へ分岐し、範囲外である場合には命令メモリおよび共有命令メモリ領域でのアクセスではないとして外部メモリ302等にアクセスするためにステップS111へ分岐する。ステップS107においては、第1CPU100は、第2CPU200が命令メモリ201へのアクセス中ではないことを確認するために第2CPU命令メモリBusy信号208の状態と第2CPU命令メモリセレクト信号209の状態とを確認し、第2CPU命令メモリBusy信号208が1Busyかつ第2CPU命令メモリセレクト信号209が第2CPU200を選択した状態である場合にはステップS109へ分岐し、そうではない場合にはステップS108へ分岐する。ステップS108においては、第1CPU100は、第1CPU命令メモリセレクト信号109が第2CPU命令メモリバス210を選択している場合には命令メモリ201にアクセスするためにステップS111へ分岐し、命令メモリ101を選択している場合には、ステップS110へ分岐する。ステップS109においては、第1CPU100は、一定期間のウェイトサイクルを経てステップS108へ遷移する。ステップS110においては、第1CPU100は、第1CPU命令メモリセレクト信号109を第2CPU命令メモリバス210を選択するように切り替え、命令メモリ201にアクセスするためにステップS111へ遷移する。ステップS111では、第1CPU100は、命令フェッチアクセスを実行する。このように、図3のフローチャートから分かるように、第1CPU100は、命令フェッチを行うアドレスが、ローカル命令メモリ先頭アドレスレジスタ103とローカル命令メモリ終了アドレスレジスタ104とで定義される領域内である場合にS101、第2CPU命令メモリセレクト信号209と第2CPU命令メモリBusy信号208とに基づいて第2CPU200が命令メモリ101にアクセスしていないと判定したときにS102、命令メモリ101と第1CPU100とを接続するようにセレクタ102を制御しS105、一方、命令フェッチを行うアドレスが、共有命令メモリ先頭アドレスレジスタ105と共有命令メモリ終了アドレスレジスタ106とで定義される領域内である場合にS106、第2CPU命令メモリセレクト信号209と第2CPU命令メモリBusy信号208とに基づいて第2CPU200が命令メモリ201にアクセスしていないと判定したときにS107、命令メモリ201と第1CPU100とを接続するようにセレクタ102を制御するS110。これにより、命令をフェッチするアドレスに連動して、命令メモリ101と命令メモリ201とが切り替えられる。そして、第1CPU100は、第2CPU200の命令メモリ101または命令メモリ201へのアクセス状態を参照し、命令フェッチを行う命令メモリの切替制御を行うことで、第1CPU100と第2CPU200による命令メモリ101または命令メモリ201へのアクセスが調停される。次に、本実施の形態におけるマルチプロセッサシステム1における第2CPU200でのメモリ制御の基本動作を、図4の第2CPU200によるメモリ制御を示すフローチャートに基づいて説明する。ステップS201において、第2CPU200は、命令フェッチを行うアドレスがローカル命令メモリ先頭アドレスレジスタ203とローカル命令メモリ終了アドレスレジスタ204とによって決定される記憶領域ローカル命令メモリ先頭アドレス~ローカル命令メモリ終了アドレスの範囲内かの判定を行い、範囲内である場合にはステップS202へ分岐し、範囲外である場合にはステップS206へ分岐する。ステップS202においては、第2CPU200は、第1CPU100が命令メモリ201へのアクセス中ではないことを確認するために第1CPU命令メモリBusy信号108の状態と第1CPU命令メモリセレクト信号109の状態とを確認し、第1CPU命令メモリBusy信号108が1Busyかつ第1CPU命令メモリセレクト信号109が第2CPU200を選択した状態である場合にはステップS204へ分岐し、そうではない場合にはステップS203へ分岐する。ステップS203においては、第2CPU200は、命令メモリ201へのアクセスの準備として第2CPU命令メモリセレクト信号209の状態を確認し、第2CPU命令メモリセレクト信号209が命令メモリ201を選択している場合には命令メモリ201にアクセスするためにステップS211へ分岐し、第1CPU命令メモリバス110を選択している場合には、ステップS204へ分岐する。ステップS204においては、第2CPU200は、一定期間のウェイトサイクルを経てステップS202へ遷移する。ステップS205においては、第2CPU200は、命令メモリ201にアクセスするために、第2CPU命令メモリセレクト信号209を命令メモリ201を選択するように切り替え、命令メモリ201にアクセスするためにステップS211へ遷移する。ステップS206においては、第2CPU200は、命令フェッチを行うアドレスが共有命令メモリ先頭アドレスレジスタ205と共有命令メモリ終了アドレスレジスタ206とによって決定される記憶領域共有命令メモリ先頭アドレス~共有命令メモリ終了アドレスの範囲内かの判定を行い、範囲内である場合にはステップS207へ分岐し、範囲外である場合には命令メモリおよび共有命令メモリ領域でのアクセスではないとして外部メモリ302等にアクセスするためにステップS211へ分岐する。ステップS207においては、第2CPU200は、第1CPU100が命令メモリ101へのアクセス中ではないことを確認するために第1CPU命令メモリBusy信号108の状態と第1CPU命令メモリセレクト信号109の状態とを確認し、第1CPU命令メモリBusy信号108が1Busyかつ第1CPU命令メモリセレクト信号109が第1CPU100を選択した状態である場合にはステップS209へ分岐し、そうではない場合にはステップS208へ分岐する。ステップS208においては、第2CPU200は、第2CPU命令メモリセレクト信号209が第1CPU命令メモリバス110を選択している場合には命令メモリ101にアクセスするためにステップS211へ分岐し、命令メモリ201を選択している場合には、ステップS210へ分岐する。ステップS209においては、第2CPU200は、一定期間のウェイトサイクルを経てステップS208へ遷移する。ステップS210においては、第2CPU200は、第2CPU命令メモリセレクト信号209を第1CPU命令メモリバス110を選択するように切り替え、命令メモリ101にアクセスするためにステップS211へ遷移する。ステップS211では、第2CPU200は、命令フェッチアクセスを実行する。このように、図4のフローチャートから分かるように、第2CPU200は、命令フェッチを行うアドレスが、ローカル命令メモリ先頭アドレスレジスタ203とローカル命令メモリ終了アドレスレジスタ204とで定義される領域内である場合にS201、第1CPU命令メモリセレクト信号109と第1CPU命令メモリBusy信号108とに基づいて第1CPU100が命令メモリ201にアクセスしていないと判定したときにS202、命令メモリ201と第2CPU200とを接続するようにセレクタ202を制御しS205、一方、命令フェッチを行うアドレスが、共有命令メモリ先頭アドレスレジスタ205と共有命令メモリ終了アドレスレジスタ206とで定義される領域内である場合にS206、第1CPU命令メモリセレクト信号109と第1CPU命令メモリBusy信号108とに基づいて第1CPU100が命令メモリ101にアクセスしていないと判定したときにS207、命令メモリ101と第2CPU200とを接続するようにセレクタ202を制御するS210。これにより、命令をフェッチするアドレスに連動して、命令メモリ101と命令メモリ201とが切り替えられる。そして、第2CPU200は、第1CPU100の命令メモリ101または命令メモリ201へのアクセス状態を参照し、命令フェッチを行う命令メモリの切替制御を行うことで、第1CPU100と第2CPU200による命令メモリ101または命令メモリ201へのアクセスが調停される。次に、図3の第1CPU100によるメモリ制御を示すフローチャートと図4の第2CPU200によるメモリ制御を示すフローチャート基づくメモリ制御動作を図5のタイミングチャートで説明する。時刻1では、以下のことが行われる。第1CPU100は実行した命令により0x50000010番地から命令フェッチを開始する。ステップS101では、第1CPU100は、命令フェッチアドレスがローカル命令メモリ先頭アドレスレジスタ103とローカル命令メモリ終了アドレスレジスタ104とによって決定される記憶領域ローカル命令メモリ先頭アドレス~ローカル命令メモリ終了アドレスの範囲内であると判定しステップS102へ遷移する。ステップS102では、第1CPU100は、第2CPU命令メモリBusy信号208が1Busy、かつ第2CPU命令メモリセレクト信号209が第1CPUではないことつまり、第2CPU200が命令メモリ101にアクセス中ではないことを判定しステップS103へ遷移すると同時に第1CPU命令メモリBusy信号108を1Busyにして第2CPU200へ出力する。ステップS103では、第1CPU100は、第1CPU命令メモリセレクト信号109が第1CPUであることを判定し命令メモリ101にアクセスするためにステップS111へ遷移する。第2CPU200は実行した命令により0x50001020番地から命令フェッチを開始する。ステップS201では、第2CPU200は、命令フェッチアドレスがローカル命令メモリ先頭アドレスレジスタ203とローカル命令メモリ終了アドレスレジスタ204とによって決定される記憶領域ローカル命令メモリ先頭アドレス~ローカル命令メモリ終了アドレスの範囲内であると判定しステップS202へ遷移する。ステップS202では、第2CPU200は、第1CPU命令メモリBusy信号108が1Busy、かつ第1CPU命令メモリセレクト信号109が第2CPUではないことつまり、第1CPU100が命令メモリ201にアクセス中ではないことを判定しステップS203へ遷移すると同時に第2CPU命令メモリBusy信号208を1Busyにして第1CPU100へ出力する。ステップS203では、第2CPU200は、第2CPU命令メモリセレクト信号209が第2CPUであることを判定し命令メモリ201にアクセスするためにステップS211へ遷移する。時刻2では、以下のことが行われる。ステップS111で、第1CPU100による命令メモリアクセスによって、命令メモリ101からセレクタ102を経て第1CPU命令メモリデータが第1CPU100へ出力され、ステップS211で、第2CPU200による命令メモリアクセスによって、命令メモリ201からセレクタ202を経て第2CPU命令メモリデータが第2CPU200へ出力される。時刻3では、以下のことが行われる。第1CPU100は、時刻2で第1CPU100へ出力された第1CPU命令メモリデータを第1CPUへ入力された命令としてフェッチし、第1CPU命令メモリBusy信号108を非Busyへ遷移させて第2CPU200へ出力する。同時に第2CPU200は、第2CPU200へ出力された第2CPU命令メモリデータを第2CPU200へ入力された命令としてフェッチし、第2CPU命令メモリBusy信号208を非Busyへ遷移させて第1CPU100へ出力する。時刻4では、以下のことが行われる。第1CPU100は実行した命令により0x50001100番地から命令フェッチを開始する。ステップS101では、第1CPU100は、命令フェッチアドレスが、ローカル命令メモリ先頭アドレスレジスタ103とローカル命令メモリ終了アドレスレジスタ104の範囲外であると判定し、ステップS106へ遷移し、ステップS106では命令フェッチアドレスが、共有命令メモリ先頭アドレスレジスタ105と共有命令メモリ終了アドレスレジスタ106とによって決定される記憶領域共有命令メモリ先頭アドレス~共有命令メモリ終了アドレスの範囲内であると判定しステップS107へ遷移する。ステップS107では、第1CPU100は、第2CPU命令メモリBusy信号208が1Busyかつ第2CPU命令メモリセレクト信号209が第2CPUではないことつまり、第2CPU200が命令メモリ201にアクセス中ではないことを判定しステップS108へ遷移すると同時に第1CPU命令メモリBusy信号108を1Busyにして第2CPU200へ出力する。ステップS108では、第1CPU100は、第1CPU命令メモリセレクト信号109が第2CPUではないことを判定しステップS110へ遷移する。ステップS110では、第1CPU100は、第1CPU命令メモリセレクト信号109を第2CPUに変更し、命令メモリ201にアクセスするためにステップS111へ遷移する。第2CPU200は実行した命令による次の命令フェッチが発生していないため、命令メモリへのアクセスは発生しない。時刻5では、以下のことが行われる。ステップS111で、第1CPU100による命令メモリアクセスによって、命令メモリ201からセレクタ102を経て第2CPU命令メモリデータが第1CPU100へ出力される。第2CPU200は実行した命令による次の命令フェッチが発生していないため、命令メモリへのアクセスは発生しない。時刻6では、以下のことが行われる。第1CPU100は、時刻5で第1CPU100へ出力された第2CPU命令メモリデータを命令としてフェッチし、第1CPU命令メモリBusy信号108を非Busyへ遷移させて第2CPU200へ出力する。第2CPU200は実行した命令により0x50001024番地から命令フェッチを開始する。ステップS201では、第2CPU200は、命令フェッチアドレスがローカル命令メモリ先頭アドレスレジスタ203とローカル命令メモリ終了アドレスレジスタ204とによって決定される記憶領域ローカル命令メモリ先頭アドレス~ローカル命令メモリ終了アドレスの範囲内であると判定しステップS202へ遷移し、ステップS202では第1CPU命令メモリBusy信号108が1Busyかつ第1CPU命令メモリセレクト信号109が第2CPUではないことつまり、第1CPU100が命令メモリ201にアクセス中ではないことを判定し、ステップS203では第2CPU命令メモリセレクト信号209が第2CPUであることを判定し命令メモリ201にアクセスするためにステップS211へ遷移する。時刻7では、以下のことが行われる。第1CPU100は実行した命令により0x50001104番地から命令フェッチを開始する。ステップS101では、第1CPU100は、命令フェッチアドレスが、ローカル命令メモリ先頭アドレスレジスタ103とローカル命令メモリ終了アドレスレジスタ104の範囲外であると判定し、ステップS106へ遷移し、ステップS106では命令フェッチアドレスが、共有命令メモリ先頭アドレスレジスタ105と共有命令メモリ終了アドレスレジスタ106とによって決定される記憶領域共有命令メモリ先頭アドレス~共有命令メモリ終了アドレスの範囲内であると判定しステップS107へ遷移する。ステップS107では、第1CPU100は、第2CPU命令メモリBusy信号208が1Busyかつ第2CPU命令メモリセレクト信号209が第2CPUであるつまり、第2CPU200が命令メモリ201にアクセス中であると判定し、ステップS109へ遷移する。また、ステップS211で、第2CPU200による命令メモリアクセスによって、命令メモリ201からセレクタ202を経て第2CPU命令メモリデータが第2CPU200へ出力される。時刻8では、以下のことが行われる。第1CPU100はステップS109からステップS107する。ステップS107では、第1CPUは、第1CPU命令メモリBusy信号108が1Busyかつ第2CPU命令メモリセレクト信号209が第2CPUではないつまり、第2CPU200が命令メモリ201にアクセス中ではないため、ステップS108へ遷移すると同時に第1CPU命令メモリBusy信号108を1Busyにして第2CPU200へ出力する。ステップS108では、第1CPU100は、第1CPU命令メモリセレクト信号109の値が0であることを判定し、命令メモリ201にアクセスするためにステップS111へ遷移する。同時に第2CPU200は、第2CPU200へ出力された第2CPU命令メモリデータを第2CPU200へ入力された命令としてフェッチし、第2CPU命令メモリBusy信号208を非Busyへ遷移させて第1CPU100へ出力する。時刻9では、以下のことが行われる。ステップS111で、第1CPU100による命令メモリアクセスによって、命令メモリ201からセレクタ102を経て第2CPU命令メモリデータが第1CPU100へ出力される。時刻10では、以下のことが行われる。第1CPU100は、時刻9で第1CPU100へ出力された第2CPU命令メモリデータを第1CPU100へ入力された命令としてフェッチし、第1CPU命令メモリBusy信号108を非Busyへ遷移させて第2CPU200へ出力する。時刻11では、以下のことが行われる。第1CPU100は実行した命令により0x50001108番地から命令フェッチを開始する。ステップS101では、第1CPU100は、命令フェッチアドレスが、ローカル命令メモリ先頭アドレスレジスタ103とローカル命令メモリ終了アドレスレジスタ104の範囲外であると判定し、ステップS106へ遷移し、ステップS106では命令フェッチアドレスが、共有命令メモリ先頭アドレスレジスタ105と共有命令メモリ終了アドレスレジスタ106とによって決定される記憶領域共有命令メモリ先頭アドレス~共有命令メモリ終了アドレスの範囲内であると判定しステップS107へ遷移する。ステップS107では、第1CPU100は、第2CPU命令メモリBusy信号208が1Busyかつ第2CPU命令メモリセレクト信号209が第2CPUではないことつまり、第2CPU200が命令メモリ201にアクセス中ではないことを判定しステップS108へ遷移すると同時に第1CPU命令メモリBusy信号108を1Busyにして第2CPU200へ出力する。同時に第2CPU200は実行した命令により0x50000100番地から命令フェッチを開始する。ステップS201では、第2CPU200は、命令フェッチアドレスが、ローカル命令メモリ先頭アドレスレジスタ203とローカル命令メモリ終了アドレスレジスタ204の範囲外であると判定し、ステップS206へ遷移し、ステップS206では命令フェッチアドレスが、共有命令メモリ先頭アドレスレジスタ205と共有命令メモリ終了アドレスレジスタ206とによって決定される記憶領域共有命令メモリ先頭アドレス~共有命令メモリ終了アドレスの範囲内であると判定しステップS207へ遷移する。ステップS207では、第1CPU命令メモリBusy信号108が1Busyかつ第1CPU命令メモリセレクト信号109が第1CPUではないことつまり、第1CPU100が命令メモリ101にアクセス中ではないことを判定しステップS208へ遷移すると同時に第2CPU命令メモリBusy信号208を1Busyにして第1CPU100へ出力する。ステップS208では、第2CPU200は、第2CPU命令メモリセレクト信号209が第1CPUではないことを判定しステップS210へ遷移する。ステップS210では、第2CPU200は、第2CPU命令メモリセレクト信号209を第1CPUに変更し、命令メモリ101にアクセスするためにステップS211へ遷移する。時刻12では、以下のことが行われる。ステップS111で、第1CPU100による命令メモリアクセスによって、命令メモリ201からセレクタ102を経て第2CPU命令メモリデータが第1CPU100へ出力され、ステップS211で、第2CPU200による命令メモリアクセスによって、命令メモリ101からセレクタ202を経て第1CPU命令メモリデータが第2CPU200へ出力される。時刻13では、以下のことが行われる。第1CPU100は、時刻12で第1CPU100へ出力された第1CPU命令メモリデータを第1CPU100へ入力された命令としてフェッチし、第1CPU命令メモリBusy信号108を非Busyへ遷移させて第2CPU200へ出力する。同時に第2CPU200は、第2CPU200へ出力された第2CPU命令メモリデータを第2CPU200へ入力された命令としてフェッチし、第2CPU命令メモリBusy信号208を非Busyへ遷移させて第1CPU100へ出力する。時刻14では、以下のことが行われる。第1CPU100は実行した命令により0x50000014番地から命令フェッチを開始する。ステップS101では、第1CPU100は、命令フェッチアドレスがローカル命令メモリ先頭アドレスレジスタ103とローカル命令メモリ終了アドレスレジスタ104とによって決定される記憶領域ローカル命令メモリ先頭アドレス~ローカル命令メモリ終了アドレスの範囲内であると判定しステップS102へ遷移する。ステップS102では、第1CPU100は、第2CPU命令メモリBusy信号208が1Busy、かつ第2CPU命令メモリセレクト信号209が第1CPUではないことつまり、第2CPU200が命令メモリ101にアクセス中ではないことを判定しステップS103へ遷移すると同時に第1CPU命令メモリBusy信号108を1Busyにして第2CPU200へ出力する。ステップS103では、第1CPU100は、第1CPU命令メモリセレクト信号109が第2CPUであることを判定しステップS105へ遷移する。ステップS105では、第1CPU100は、命令メモリ101にアクセスするために、第1CPU命令メモリセレクト信号109を第1CPUに変更し、命令メモリ101にアクセスするためにステップS111へ遷移する。時刻15では、以下のことが行われる。ステップS111で、第1CPU100による命令メモリアクセスによって、命令メモリ101からセレクタ102を経て第1CPU命令メモリデータが第1CPU100へ出力さる。同時に第2CPU200は実行した命令により0x50000108番地から命令フェッチを開始する。ステップS201では、第2CPU200は、命令フェッチアドレスが、ローカル命令メモリ先頭アドレスレジスタ203とローカル命令メモリ終了アドレスレジスタ204の範囲外であると判定し、ステップS206へ遷移し、ステップS206では命令フェッチアドレスが、共有命令メモリ先頭アドレスレジスタ205と共有命令メモリ終了アドレスレジスタ206とによって決定される記憶領域共有命令メモリ先頭アドレス~共有命令メモリ終了アドレスの範囲内であると判定しステップS207へ遷移する。ステップS207では、第2CPU200は、第1CPU命令メモリBusy信号108が1Busyかつ第1CPU命令メモリセレクト信号109が第1CPUであるつまり、第1CPU100が命令メモリ101にアクセス中であると判定し、ステップS209へ遷移する。時刻16では、以下のことが行われる。第1CPU100は、時刻15で第1CPU100へ出力された第1CPU命令メモリデータを第1CPU100へ入力された命令としてフェッチし、第1CPU命令メモリBusy信号108を非Busyへ遷移させて第2CPU200へ出力する。同時に第2CPU200はステップS209からステップS207する。ステップS207では、第2CPU200は、第1CPU命令メモリBusy信号108が1Busyかつ第1CPU命令メモリセレクト信号109が第2CPUではないつまり、第1CPU100が命令メモリ101にアクセス中ではないため、ステップS208へ遷移すると同時に第2CPU命令メモリBusy信号208を1Busyにして第1CPU100へ出力する。ステップS208では、第2CPU200は、第2CPU命令メモリセレクト信号209の値が第1CPUであることを判定し、命令メモリ101にアクセスするためにステップS211へ遷移する時刻17では、以下のことが行われる。第1CPU100は実行した命令により0x50000018番地から命令フェッチを開始する。ステップS101では、第1CPU100は、命令フェッチアドレスがローカル命令メモリ先頭アドレスレジスタ103とローカル命令メモリ終了アドレスレジスタ104とによって決定される記憶領域ローカル命令メモリ先頭アドレス~ローカル命令メモリ終了アドレスの範囲内であると判定しステップS102へ遷移する。ステップS102では、第1CPU100は、第2CPU命令メモリBusy信号208が1Busy、かつ第2CPU命令メモリセレクト信号209が第1CPUであることつまり、第2CPU200が命令メモリ101にアクセス中であることを判定しステップS104へ遷移する。同時に、ステップS211で、第2CPU200による命令メモリアクセスによって、命令メモリ101からセレクタ202を経て第1CPU命令メモリデータが第2CPU200へ出力される。時刻18では、以下のことが行われる。第1CPU100はステップS104からステップS102する。ステップS102では、第1CPU100は、第2CPU命令メモリBusy信号208が1Busyかつ第2CPU命令メモリセレクト信号209が第1CPUではないつまり、第2CPU200が命令メモリ101にアクセス中ではないため、ステップS103へ遷移すると同時に第1CPU命令メモリBusy信号108を1Busyにして第2CPU200へ出力する。ステップS103では、第1CPU100は、第1CPU命令メモリセレクト信号109の値が第1CPUであることを判定し、命令メモリ101にアクセスするためにステップS111へ遷移する。同時に第2CPU200は、第2CPU200へ出力された第1CPU命令メモリデータを命令としてフェッチし、第2CPU命令メモリBusy信号208を非Busyへ遷移させて第1CPU100へ出力する。時刻19では、以下のことが行われる。ステップS111で、第1CPU100による命令メモリアクセスによって、命令メモリ101からセレクタ102を経て第1CPU命令メモリデータが第1CPU100へ出力される。時刻20では、以下のことが行われる。第1CPU100は、時刻19で第1CPU100へ出力された第1CPU命令メモリデータを第1CPU100へ入力された命令としてフェッチし、第1CPU命令メモリBusy信号108を非Busyへ遷移させて第2CPU200へ出力する。時刻21では、以下のことが行われる。第1CPU100は実行した命令により0x50001200番地から命令フェッチを開始する。ステップS101では、第1CPU100は、命令フェッチアドレスが、ローカル命令メモリ先頭アドレスレジスタ103とローカル命令メモリ終了アドレスレジスタ104の範囲外であると判定し、ステップS106へ遷移し、ステップS106では命令フェッチアドレスが、共有命令メモリ先頭アドレスレジスタ105と共有命令メモリ終了アドレスレジスタ106とによって決定される記憶領域共有命令メモリ先頭アドレス~共有命令メモリ終了アドレスの範囲内であると判定しステップS107へ遷移する。ステップS107では、第1CPU100は、第2CPU命令メモリBusy信号208が1Busyかつ第2CPU命令メモリセレクト信号209が第2CPUではないことつまり、第2CPU200が命令メモリ201にアクセス中ではないことを判定しステップS108へ遷移すると同時に第1CPU命令メモリBusy信号108を1Busyにして第2CPU200へ出力する。ステップS108では、第1CPU100は、第1CPU命令メモリセレクト信号109が第2CPUではないことを判定しステップS110へ遷移する。ステップS110では、第1CPU100は、第1CPU命令メモリセレクト信号109を第2CPUに変更し、命令メモリ201にアクセスするためにステップS111へ遷移する。時刻22では、以下のことが行われる。ステップS111で、第1CPU100による命令メモリアクセスによって、命令メモリ201からセレクタ102を経て第2CPU命令メモリデータが第1CPU100へ出力される。同時に第2CPU200は実行した命令により0x50001028番地から命令フェッチを開始する。ステップS201では、第2CPU200は、命令フェッチアドレスが、ローカル命令メモリ先頭アドレスレジスタ203とローカル命令メモリ終了アドレスレジスタ204とによって決定される記憶領域ローカル命令メモリ先頭アドレス~ローカル命令メモリ終了アドレスの範囲内であると判定し、ステップS202へ遷移し、ステップS202では第1CPU命令メモリBusy信号108が1Busyかつ第1CPU命令メモリセレクト信号109が第2CPUであるつまり、第1CPU100が命令メモリ201にアクセス中であると判定し、ステップS204へ遷移する。時刻23では、以下のことが行われる。第1CPU100は、時刻22で第1CPU100へ出力された第1CPU命令メモリデータを命令としてフェッチし、第1CPU命令メモリBusy信号108を非Busyへ遷移させて第2CPU200へ出力する。第2CPU200はステップS204からステップS202へ遷移する。ステップS202では、第2CPU200は、第1CPU命令メモリBusy信号108が1Busyかつ第1CPU命令メモリセレクト信号109が第2CPUではないつまり、第1CPU100が命令メモリ201にアクセス中ではないことため、ステップS203へ遷移すると同時に第2CPU命令メモリBusy信号208を1Busyにして第1CPU100へ出力する。ステップS203では、第2CPU200は、第2CPU命令メモリセレクト信号209の値が第2CPUであることを判定し、ステップS205へ遷移する。ステップS205では、第2CPU200は、命令メモリ201にアクセスするために、第2CPU命令メモリセレクト信号209を第2CPUに変更し、命令メモリ201にアクセスするためにステップS211へ遷移する。時刻24では、以下のことが行われる。ステップS211で、第2CPU200による命令メモリアクセスによって、命令メモリ201からセレクタ202を経て第2CPU命令メモリデータが第2CPU200へ出力される。時刻25では、以下のことが行われる。第2CPU200は、第2CPU200へ出力された第2CPU命令メモリデータを命令としてフェッチし、第2CPU命令メモリBusy信号208を非Busyへ遷移させて第1CPU100へ出力する。以上のように、本実施の形態によれば、第1CPUのローカル命令メモリ先頭アドレスレジスタ103とローカル命令メモリ終了アドレスレジスタ104、共有命令メモリ先頭アドレスレジスタ105と共有命令メモリ終了アドレスレジスタ106、および、第2CPU200のローカル命令メモリ先頭アドレスレジスタ203とローカル命令メモリ終了アドレスレジスタ204、共有命令メモリ先頭アドレスレジスタ205と共有命令メモリ終了アドレスレジスタ206で、各々のCPUのローカル命令メモリの領域を定義している。そして、その定義をもとに命令フェッチアドレスの範囲を判定し、その判定結果に基づいて第1CPU命令メモリセレクト信号109と第2CPU命令メモリセレクト信号209とを制御している。よって、各々のローカル命令メモリを共有することが可能となり、ローカル命令メモリとして使用可能な領域を倍増することが出来る。つまり、各CPUは、当該CPUが命令フェッチを行うアドレスが、ローカル命令メモリ先頭アドレスレジスタとローカル命令メモリ終了アドレスレジスタとで定義される領域内である場合には、ローカル命令メモリと当該CPUとを接続するようにセレクタを制御し、一方、CPUが命令フェッチを行うアドレスが、共有命令メモリ先頭アドレスレジスタと共有命令メモリ終了アドレスレジスタとで定義される領域内である場合には、他のプロセッサが備えるローカル命令メモリと当該CPUとを接続するようにセレクタを制御する。これにより、CPUがアクセスするアドレスに応じて、アクセス先として、当該CPUのローカル命令メモリと他のCPUのローカル命令メモリとが切り替えられ、CPUは、ローカル命令メモリの記憶容量以上のサイズのプログラムを命令メモリから読み出して実行することが出来る。また、CPUは、命令フェッチを行うアドレスが、ローカル命令メモリ先頭アドレスレジスタとローカル命令メモリ終了アドレスレジスタとで定義される領域内である場合に、第2CPU命令メモリセレクト信号と第2CPU命令メモリビジー信号とに基づいて他のプロセッサが備えるCPUがローカル命令メモリにアクセスしていないと判定したときに、ローカル命令メモリと当該CPUとを接続するようにセレクタを制御し、一方、命令フェッチを行うアドレスが、共有命令メモリ先頭アドレスレジスタと共有命令メモリ終了アドレスレジスタとで定義される領域内である場合に、第2CPU命令メモリセレクト信号と第2CPU命令メモリビジー信号とに基づいて他のプロセッサが備えるCPUが他のプロセッサが備えるローカル命令メモリにアクセスしていないと判定したときに、他のプロセッサが備えるローカル命令メモリと当該CPUとを接続するようにセレクタを制御する。これにより、一つのローカル命令メモリに対する複数のCPUからのアクセスの競合が適切に調整される。以上、本発明に係るプロセッサ、マルチプロセッサシステムおよびメモリ制御方法について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の主旨を逸脱しない範囲で当業者が思いつく各種変形を実施の形態に施して得られる形態も本発明に含まれる。また、上記実施の形態では、マルチプロセッサシステム1は2つのプロセッサ第1プロセッサ10、第2プロセッサ20によって構成されたが、3つ以上のプロセッサによって構成されてもよい。そのときに、複数のプロセッサのそれぞれに備えられた命令メモリのうち、全ての命令メモリが他のプロセッサと共有されてもよいし、一部の命令メモリだけが他のプロセッサと共有されてもよい。さらに、一つの命令メモリを共有する複数のプロセッサは、マルチプロセッサシステムを構成する全てのプロセッサであってもよいし、マルチプロセッサシステムを構成する複数のプロセッサの中から選択された特定のプロセッサであってもよい。また、上記実施の形態では、マルチプロセッサシステム1は1チップのLSIであったが、本発明はこのようなチップ構成に限定されず、第1プロセッサ10および第2プロセッサ20が別のチップで実現されていてもよいし、命令メモリ101、第1処理部120、命令メモリ201および第2処理部220が別のチップで実現されていてもよい。いずれのチップ構成であっても、ローカル命令メモリの記憶領域が拡大され得る。また、上記実施の形態では、命令メモリ101および命令メモリ201には、第1CPU100および第2CPU200によって実行される命令が格納されたが、第1CPU100および第2CPU200によって処理されるデータが格納されてもよい。つまり、上記実施の形態において、命令に代えて、データの共有化が行われてもよい。また、命令メモリ101および命令メモリ201は、それぞれ、第1CPU100および第2CPU200のキャッシュメモリであってもよい。