"第1のCPUCentralProcessingUnitが実行中の第1アプリケーションが正常に動作しているか否かを前記第1アプリケーションの共有資源へのアクセスログに基づいて判断し、前記第1アプリケーションが正常動作していないと判断されたときに、前記第1のCPUによって実行される前記第1アプリケーション以外の第2アプリケーションを第2のCPUに実行させることを特徴とするプロセッサ処理方法。前記第1アプリケーションが正常に動作していないと判断されたときに、前記第1アプリケーションの前記共有資源へのアクセスの優先度を下げることを特徴とする請求項1に記載のプロセッサ処理方法。前記第1アプリケーションが正常に動作していないと複数回判断されたときに、前記第2アプリケーションを前記第2のCPUに実行させることを特徴とする請求項1または請求項2に記載のプロセッサ処理方法。前記第1アプリケーションが正常に動作していると判断されたときに、前記第1アプリケーションが正常に動作していないと過去に判断されているときには、前記第1アプリケーションの前記共有資源へのアクセスの優先度を上げることを特徴とする請求項1、請求項2または請求項3に記載のプロセッサ処理方法。前記第1アプリケーションが正常に動作していないと判断されたときに、前記第1のCPUに信号が供給されることを特徴とする請求項1乃至請求項4の何れか一に記載のプロセッサ処理方法。前記第1のCPUが前記信号に対する応答を送信したときには、前記第1のCPUが前記第2アプリケーションを前記第2のCPUに受け渡すことを特徴とする請求項5に記載のプロセッサ処理方法。前記第1のCPUが前記信号に対する応答を送信しないときには、前記第2のCPUが前記第2アプリケーションを前記第2のCPUに退避させることを特徴とする請求項5に記載のプロセッサ処理方法。第1のCPUが実行中の第1アプリケーションが正常に動作しているか否かを前記第1アプリケーションの共有資源へのアクセスログに基づいて判断し、前記第1アプリケーションが正常に動作していないと判断されたときに、前記第1アプリケーションの前記共有資源へのアクセスの優先度を下げることを特徴とするプロセッサ処理方法。複数のCPUと、前記複数のCPUで共有される共有資源へのアクセスを制御する制御装置と、を備え、前記制御装置が、第1のCPUが実行中の第1アプリケーションが正常に動作しているか否かを前記第1アプリケーションの前記共有資源へのアクセスログに基づいて判断し、前記第1アプリケーションが正常動作していないと判断されたときに、前記第1のCPUによって実行される前記第1アプリケーション以外の第2アプリケーションを第2のCPUに実行させることを特徴とするプロセッサシステム。前記第1アプリケーションが正常に動作していないと判定されたときに、前記第1アプリケーションの前記共有資源へアクセスの優先度が下げられることを特徴とする請求項9に記載のプロセッサシステム。前記第1アプリケーションが正常に動作していると判定されたときに、前記第1アプリケーションが正常に動作していないと過去に判定されているときには、前記第1アプリケーションの前記共有資源へのアクセスの優先度が上げられることを特徴とする請求項9または10に記載のプロセッサシステム。しかしながら、従来技術1では、アプリケーションの割当先CPUがエラー状態である影響で、アプリケーションの実行時間が長くなる場合、あらたに割当先CPUに割り当てられるアプリケーションもすべてエラーとなってしまう問題点があった。また、割当先CPUに複数のアプリケーションが割り当てられている場合、それぞれの実行時間は長くなる。また、従来技術2では、バス調停回路によりエラーとなっているCPUを特定することはできるが、CPUに割り当てられているアプリケーションのエラーと共にエラーとなってしまう問題点があった。本発明は、上述した従来技術による問題点を解消するため、アプリケーションまたは該アプリケーションの割当先CPUのエラーの影響が他のアプリケーションに波及するのを防止することができるプロセッサ処理方法、およびプロセッサシステムを提供することを目的とする。また、本発明は、アプリケーションまたは該アプリケーションの割当先CPUのエラーの影響が他のCPUに波及するのを防止することができるプロセッサ処理方法、およびプロセッサシステムを提供することを目的とする。本発明の一の観点によれば、第1のCPUが実行中の第1アプリケーションが正常に動作しているか否かを第1アプリケーションの共有資源へのアクセスログに基づいて判断し、前記第1アプリケーションが正常動作していないと判断されたときに、前記第1のCPUによって実行される前記第1アプリケーション以外の第2アプリケーションを第2のCPUに実行させるプロセッサ処理方法、およびプロセッサシステムを提供する。本発明の他の観点によれば、第1のCPUが実行中の第1アプリケーションが正常に動作しているか否かを第1アプリケーションの共有資源へのアクセスログに基づいて判断し、前記第1アプリケーションが正常に動作していないと判断されたときに、前記第1アプリケーションのメモリアクセスの優先度を下げるプロセッサ処理方法、およびプロセッサシステムを提供する。本プロセッサ処理方法、およびプロセッサシステムによれば、アプリケーションまたは該アプリケーションの割当先CPUのエラーの影響が他のアプリケーションに波及するのを防止することができるという効果を奏する。また、本プロセッサ処理方法、およびプロセッサシステムによれば、アプリケーションまたは該アプリケーションの割当先CPUのエラーの影響が他のCPUに波及するのを防止することができるという効果を奏する。以下に、本発明にかかるプロセッサ処理方法、およびプロセッサシステムの好適な実施の形態を詳細に説明する。ここでは、プロセッサシステムとして、マルチコアプロセッサシステムを例に挙げる。マルチコアプロセッサシステムにおいて、マルチコアプロセッサとはコアが複数搭載されたプロセッサである。コアが複数搭載されていれば、複数のコアが搭載された単一のプロセッサでもよく、シングルコアのプロセッサが並列されているプロセッサ群でもよい。なお、本実施の形態では、説明を単純化するため、シングルコアのプロセッサが並列されているプロセッサ群を例に挙げて説明する。また、本実施の形態では、マルチコアプロセッサの各CPUに共有される共有資源として共有メモリを例に挙げ、メモリコントローラがプロセッサ処理方法の各工程を実行する処理を例に挙げて説明する。CPUが本実施の形態で説明するプロセッサ処理を実行すると、該CPUに障害が発生している場合、該障害を検出することができない。そこで、周辺デバイスであり、マルチコアプロセッサで共有する共有メモリへのアクセスを制御するメモリコントローラが本実施の形態で説明するプロセッサ処理を行う。これにより、マルチコアプロセッサのうちのいずれのCPUに障害が発生しても該障害を検出することができる。また、メモリコントローラの障害については、各CPUが共有メモリへのアクセスリクエストを行うことで、検出することができる。図1は、本発明の一の例を示す説明図である。メモリコントローラが、CPU0で実行中のアプリ0からマルチコアプロセッサの各CPUで共有する共有メモリへのアクセスの傾向情報が許容範囲内であるか否かを判断する。メモリコントローラが、アクセスの傾向情報が許容範囲内でないと判断した場合、CPU0に割当済のアプリ0を除く他のアプリケーションアプリ2を、CPU0からマルチコアプロセッサのうちの他のCPUであるCPU1に移行させる移行処理を制御する。図2は、本発明の他の例を示す説明図である。メモリコントローラが、マルチコアプロセッサのうちのCPU0で実行中のアプリ0からマルチコアプロセッサの各CPUで共有する共有メモリへのアクセスの傾向情報が許容範囲内であるか否かを判断する。メモリコントローラが、アクセスの傾向情報が許容範囲内でないと判断した場合、アプリ0から共有メモリへのアクセスの比率を判断前よりも下げる。図3は、アクセスの傾向の一の例を示す説明図である。図3では、あるアプリケーションの正常動作時に、所定時間以内に何回共有メモリへアクセスするかを示している。たとえば、ブラウザアプリケーションであれば、共有メモリへ1秒間に10万回程度アクセスするなど、1秒間に何回程度共有メモリへアクセスするかはアプリケーションによってそれぞれ異なる。たとえば、あるアプリケーションの正常動作時には、所定時間内に共有メモリへ平均100~300回アクセスするとする。しかしながら、該アプリケーションを実行中の所定時間内に共有メモリへ500回アクセスしていれば図中a、該アプリケーションがエラー状態である可能性がある。さらに、たとえば、該アプリケーションを実行中の所定時間内に共有メモリへアクセスしていなければアクセス回数が0回、図中b、該アプリケーションがハング状態である可能性がある。たとえば、平均値から±10[]までのアクセス回数を許容範囲として、設計時に設計者が定義する。本実施の形態では、所定時間は、たとえば、一のタイマ割り込みから次のタイマ割り込みまでの時間である。図4は、アクセスの傾向の他の例を示す説明図である。図4では、あるアプリケーションの正常動作時に、所定時間以内に各メモリ番地に何回アクセスするかの傾向を示している。ここで、メモリ番地とは、論理アドレスを示している。図4では、あるアプリケーションが正常動作時にアクセスするメモリ番地が0x00000000FFFF~0x000FFFFFFFFFであることを示している。たとえば、該アプリケーションを実行中に、0x00000000FFFF~0x000FFFFFFFFF以外のメモリ番地図中a,bに何度もアクセスしていれば、該アプリケーションがエラーコードを読み出している可能性がある。すなわち、該アプリケーションがエラー状態である可能性がある。メモリ番地に関する許容範囲の定義については、後述する。マルチコアプロセッサシステムのハードウェア図5は、マルチコアプロセッサシステムのハードウェアを示すブロック図である。マルチコアプロセッサシステム500は、CPU0と、CPU1と、CPU2と、1次キャッシュ501と、1次キャッシュ502と、1次キャッシュ503と、スヌープ回路504と、2次キャッシュ505と、を有している。さらに、マルチコアプロセッサシステム500は、ディスプレイ506と、キーボード507と、I/F508InterFaceと、メモリコントローラ509と、共有メモリ510と、PMU511と、タイマ517と、を有している。2次キャッシュ505と、I/F508と、メモリコントローラ509と、PMU511とは、バス518を介して接続されている。キーボード507と、ディスプレイ506と、共有メモリ510とは、メモリコントローラ509を介して各部と接続されている。まず、CPU0とCPU1とCPU2とは、それぞれレジスタとコアとを有している。各レジスタには、PCProgramCounterやリセットレジスタがある。リセットレジスタの値は通常0であり、1にセットされると該リセットレジスタを有するCPUのリセット処理が行われる。CPU0はマスタCPUであり、マルチコアプロセッサシステム500の全体の制御を司り、OSOperatingSystem521を実行する。OS521はマスタOSであり、アプリケーションをマルチコアプロセッサのうちのいずれのCPUに割り当てるかを制御する。さらに、OS521は該CPU0に割り当てられたアプリケーションを実行する。OS521はスケジューラを有し、該スケジューラはCPU0に割り当てられたアプリケーションを切り替えて実行する。CPU1はスレーブCPUであり、OS522を実行する。OS522はスレーブOSであり、CPU1に割り当てられたアプリケーションを実行する。OS522はスケジューラを有し、該スケジューラはCPU1に割り当てられたアプリケーションを切り替えて実行する。CPU2はスレーブCPUであり、OS523を実行する。OS523はスレーブOSであり、CPU2に割り当てられたアプリケーションを実行する。OS523はスケジューラを有し、該スケジューラはCPU2に割り当てられたアプリケーションを切り替えて実行する。OS521とOS522とOS523とは、それぞれレディーキュー531とレディーキュー532とレディーキュー533とを有している。各レディーキューには各CPUに割り当てられたアプリケーションのコンテキスト情報のポインタが積まれる。コンテキスト情報とは、たとえば、ロードされたアプリケーションの実行状態や該アプリケーション内の変数などが含まれる情報である。各OSはレディーキュー内のコンテキスト情報のポインタを取得し、アプリケーションのコンテキスト情報にアクセスすることで、アプリケーションを直ぐに実行することができる。ここでは、CPU0にアプリ2とアプリ0が割り当てられ、アプリ0が実行され、アプリ2のコンテキスト情報のポインタがレディーキュー531に積まれている。CPU1にはアプリ1が割り当てられ、アプリ1が実行されている。CPU2にはアプリ3が割り当てられ、アプリ3が実行されている。CPU0は、1次キャッシュ501とスヌープ回路504と2次キャッシュ505とを介して各部に接続されている。CPU1は、1次キャッシュ502とスヌープ回路504と2次キャッシュ505とを介して各部に接続されている。CPU2は、1次キャッシュ503とスヌープ回路504と2次キャッシュ505とを介して各部に接続されている。1次キャッシュ501と1次キャッシュ502と1次キャッシュ503とは、それぞれキャッシュメモリとキャッシュコントローラとを有している。1次キャッシュ501はOS521が実行するアプリケーションから共有メモリ510への書込処理を一時的に記憶する。1次キャッシュ501は、共有メモリ510から読み出されたデータを一時的に記憶する。また、1次キャッシュ502はOS522が実行するアプリケーションから共有メモリ510への書込処理を一時的に記憶する。1次キャッシュ502は、共有メモリ510から読み出されたデータを一時的に記憶する。また、1次キャッシュ503はOS523が実行するアプリケーションから共有メモリ510への書込処理を一時的に記憶する。1次キャッシュ503は、共有メモリ510から読み出されたデータを一時的に記憶する。スヌープ回路504は、1次キャッシュ501~1次キャッシュ503とで共有するデータがいずれかの1次キャッシュで更新された場合、該更新を検出し、他の1次キャッシュの該データも更新する。2次キャッシュ505は、キャッシュメモリとキャッシュコントローラとを有している。2次キャッシュ505では、1次キャッシュ501や1次キャッシュ502から追い出されたデータを記憶する。2次キャッシュ505では、OS521とOS522とで共有するデータを記憶する。2次キャッシュ505は、1次キャッシュ501や1次キャッシュ502よりも、記憶容量が大きくかつCPUからのアクセス速度が遅い。2次キャッシュ505は共有メモリ510より、記憶容量が小さくかつCPUからのアクセス速度が速い。ディスプレイ506は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。さらに、ディスプレイ506は、タッチパネルであり、数字、各種指示などの入力のためのキーを有し、データの入力を行ってもよい。ディスプレイ506は、たとえば、TFT液晶ディスプレイなどを採用することができる。キーボード507は、数字、各種指示などの入力のためのキーを有し、データの入力を行う。また、キーボード507は、タッチパネル式の入力パッドやテンキーなどであってもよい。I/F508は、通信回線を通じてLANLocalAreaNetwork、WANWideAreaNetwork、インターネットなどのネットワークに接続され、ネットワークを介して他の装置に接続される。そして、I/F508は、ネットワークと内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F508には、たとえばモデムやLANアダプタなどを採用することができる。PMU511は各部に電源電圧を供給する。ここで、たとえば、PMU511は、各CPUやメモリコントローラ509からCPUの識別情報を受信すると、受信したCPUの識別情報に基づいて識別情報で示されるCPUの電源を遮断し、その後、再投入する機能を有する。これにより、該CPUはハードウェアリセットされる。タイマ517は、時刻をカウントし、所定時間ごとにメモリコントローラ509へ割り込みを行うタイマ割り込み。共有メモリ510は、CPU0とCPU1とCPU2とに共有されるメモリであり、具体的には、たとえば、ROMReadOnlyMemory513と、RAMRandomAccessMemory512と、フラッシュROM514と、フラッシュROMコントローラ515と、フラッシュROM516と、などを有している。ROM513は、ブートシーケンスが記述されたブートローダなどのプログラムを記憶している。RAM512は、CPUのワークエリアとして使用される。フラッシュROM514は、OS521やOS522などのシステムソフトウェアやアプリケーションソフトウェアや後述する管理テーブルや負荷情報などを記憶している。たとえば、各OSを更新する場合、マルチコアプロセッサシステム500は、I/F508によって新しいOSを受信し、フラッシュROM514に格納されている古いOSを、受信した新しいOSに更新する。フラッシュROMコントローラ515は、各CPUの制御に従ってフラッシュROM516に対するデータのリード/ライトを制御する。フラッシュROM516は、フラッシュROMコントローラ515の制御で書き込まれたデータを記憶する。データの具体例としては、マルチコアプロセッサシステム500を使用するユーザがI/F508を通して取得した画像データ、映像データなどである。フラッシュROM516は、たとえば、メモリカード、SDカードなどを採用することができる。バス518は図示していないがバス調停回路を有し、バス調停回路は各部からのアクセスを調停する機能を有する。図6は、管理テーブルの一例を示す説明図である。管理テーブル600は、各CPUにいずれのアプリケーションが割り当てられているかを示す説明図である。管理テーブル600は、CPUの識別情報の項目601と、アプリケーションの識別情報の項目602とを有している。CPUの識別情報の項目601には各CPUの識別情報が登録されている。アプリケーションの識別情報の項目602には、CPUの識別情報の項目601に識別情報が登録されているCPUに割り当てられているアプリケーションの識別情報が登録される。管理テーブル600は、マスタCPUがアプリケーションをいずれかのCPUに割り当てる際にマスタCPUにより更新される。管理テーブル600は、各CPUがアプリケーションを他のCPUにマイグレーションする際に該CPUによって更新される。管理テーブル600は、割り当てられたアプリケーションを各CPUが終了する際に該CPUにより更新される。管理テーブル600は、共有メモリ510、各CPUの1次キャッシュ、2次キャッシュ505などの記憶装置に記憶されていることとする。図7は、負荷情報の一例を示す説明図である。負荷情報700は、アプリケーションの識別情報の項目701と、実行時間の項目702とを有している。アプリケーションの識別情報の項目701には、アプリケーションの識別情報が登録される。実行時間の項目702には、アプリケーションの識別情報の項目701に識別情報が登録されているアプリケーションの実行時間が登録される。ここでは、たとえば、メモリコントローラ509が、CPUごとに該CPUに割り当てられているアプリケーションの実行時間の合計値を負荷情報700に基づいて算出し、最も合計値が小さいCPUを最も負荷が小さいCPUとして特定する。負荷情報700は、共有メモリ510、各CPUの1次キャッシュ、2次キャッシュ505などの記憶装置に記憶されていることとする。図5に戻って、メモリコントローラ509は、たとえば、CPU0とCPU1からの共有メモリ510へのアクセスを調停する。図8を用いてメモリコントローラ509の詳細について説明する。メモリコントローラ509のブロック図図8は、メモリコントローラ509のブロック図を示す説明図である。メモリコントローラ509は、リクエスト制御部801と、アクセスログ解析部802と、優先度変更部803と、最小負荷CPU特定部804と、メモリ制御部805と、I/OInput/Output制御部806と、を有している。リクエスト制御部801~I/O制御部806は、具体的には、たとえば、論理回路やFFFlipFlopなどを用いて実現することができる。また、メモリコントローラ509がCPUや記憶装置を有し、リクエスト制御部801~I/O制御部806の処理がコーディングされたプログラムがメモリコントローラ509内の記憶装置に記憶されていることとしてもよい。そして、メモリコントローラ509内のCPUが該プログラムを読み出して、該プログラムにコーディングされている処理を実行することとしてもよい。該プログラムは、フラッシュROM516などのマルチコアプロセッサのいずれかのCPUが読み取り可能な記録媒体に記録され、マルチコアプロセッサのいずれかのCPUによって記録媒体から読み出されることによって実行されてもよい。また、該プログラムは、インターネット等のネットワークを介して配布されてもよい。リクエスト制御部801は、マルチコアプロセッサの各CPUからのメモリアクセスリクエストを受け付ける。さらに、リクエスト制御部801は、共有メモリ510から読み出したデータを各CPUに通知する。アクセスログ解析部802は、第1のCPUが実行中の第1アプリケーションが正常に動作しているか否かを第1アプリケーションのアクセスログに基づいて判断する。最小負荷CPU特定部804は、マルチコアプロセッサの中から、最小負荷のCPUを特定する。優先度変更部803は、対象アプリケーションが正常に動作していないと判断されたときに、対象アプリケーションから共有メモリ510へのアクセスの優先度を判断前よりも下げる。優先度変更部803は、前回のタイマ割り込みで対象アプリケーションが正常に動作していないと判断されたが、今回のタイマ割り込みで対象アプリケーションが正常に動作していると判断された場合、該アクセスの優先度を判断前よりも上げる。メモリ制御部805は、各CPUから受け付けたメモリアクセスリクエストに沿って、共有メモリ510にデータを書き込む。メモリ制御部805は、各CPUから受け付けたメモリアクセスリクエストに沿って、共有メモリ510からデータを読み出す。I/O制御部806は、ディスプレイ506やキーボード507などのI/Oデバイスへの出力や該I/Oデバイスからの入力を制御する。具体的には、たとえば、I/O制御部806は、キーボード507から入力されたデータをいずれのCPUへ通知するかを制御する。メモリコントローラ509による共有メモリ510へのアクセスについては、公知たとえば、特開2005-276237参照。であるため詳細な説明を省略する。つぎに、詳細な処理について、実施例1~4を用いて説明する。実施例1~2では、アクセスの傾向情報が共有メモリ510へのアクセス回数である場合について説明する。実施例3~4では、アクセスの傾向情報が共有メモリ510へのメモリ番地に関する情報である場合について説明する。また、実施例1~4では、タイマ517によるタイマ割り込みを検出する都度、各CPUに割当済のアプリケーションごとにアクセスログを解析することとする。そして、アクセスログに関しては、解析終了後にリセットする。実施例1実施例1では、メモリコントローラ509がマルチコアプロセッサのうちの一のCPUで実行中の対象アプリケーションからマルチコアプロセッサの各CPUで共有する共有メモリ510へのアクセスの傾向情報が許容範囲内であるか否かを判断する。そして、実施例1では、アクセスの傾向情報が許容範囲内でないと判断された場合、一のCPUに割当済の対象アプリケーションを除く他のアプリケーションを、一のCPUからマルチコアプロセッサのうちの他のCPUに移行させる移行処理を制御する。アクセスの傾向情報は、アプリケーションごとにアクセスログとして共有メモリ510、各CPUの1次キャッシュ、2次キャッシュ505などの記憶装置に記憶されることとする。移行処理については、メモリコントローラ509が一のCPUから他のアプリケーションを他のCPUに移行させる移行指示を一のCPUに通知する。そして、一のCPUが他のアプリケーションを一のCPUから他のCPUに移行させる。または、移行処理については、メモリコントローラ509が一のCPUから他のアプリケーションを他のCPUに移行させる移行指示を他のCPUに通知する。そして、他のCPUが他のアプリケーションを一のCPUから他のCPUに移行させる。または、移行処理については、メモリコントローラ509が、一のCPUへ応答確認を通知し、通知後から所定時間以内に一のCPUから応答がない場合、一のCPUから他のアプリケーションを他のCPUに移行させる移行指示を他のCPUに通知する。そして、他のCPUが他のアプリケーションを一のCPUから他のCPUに移行させる。一のCPUから応答がないと、一のCPUがエラー状態で動作していない可能性がある。すなわち、一のCPUが移行処理を実行できない可能性があるため、メモリコントローラ509は他のCPUに移行処理を実行させる。一のCPUから応答がある場合、メモリコントローラ509は一のCPUと他のCPUのいずれか一方に移行処理を実行させればよい。以下の詳細な例では、一のCPUから応答がある場合、メモリコントローラ509は一のCPUに移行処理を実行させる。図9は、アクセス回数に関するアクセスログの一例を示す説明図である。図9では、アプリ0のアクセス回数に関するアクセスログ900の一例を示す。アクセスログ900は、平均アクセス回数の項目901と、許容範囲の項目902と、アクセス回数の項目903と、優先度の項目904と、を有している。平均アクセス回数の項目901には、アプリ0が正常動作した場合に所定時間あたりで共有メモリ510へアクセスする平均の回数が登録されている。ここで、所定時間とは、解析終了後から次のタイマ割り込みの発生までの時間である。平均アクセス回数は、具体的には、たとえば、アプリ0の設計時にESLElectronicSystemLevel検証ツールを用いて検証することで特定することができる。図9では、1000回が登録されている。許容範囲の項目902には、平均アクセス回数の項目901に登録されている平均アクセス回数に基づいて、アプリ0から共有メモリ510へのアクセス回数が正常範囲内であると判断可能な範囲が登録されている。図9では、±10[]が登録されている。すなわち、所定時間あたりの平均合計アクセス回数が1000回であるため、900回から1100回までが許容範囲である。アクセス回数の項目903は、所定時間内の現実行でのアプリ0に関するアクセス回数が登録される。アクセス回数は、アプリ0が割り当てられたCPU0によってカウントされる。優先度の項目904は、アプリ0の共有メモリ510へのアクセスの優先度が登録される。ここでは、優先度の項目904には、DEFAULTまたはLOWのうちのいずれか一方が登録される。LOWはDEFAULT時よりもアクセスの比率が低いことを示している。DEFAULTのアクセス比率とLOWのアクセス比率については、アプリケーションごとに決定されていてもよいし、同一値であってもよい。まず、メモリコントローラ509は、タイマ割り込みを検出すると、各CPUに割当済のアプリケーションの中から、未解析のアプリケーションを1つ選択する。ここでは、CPU0に割り当てられているアプリ0が選択されることとする。図10は、実施例1にかかるアクセスログ900の一例を示す説明図である。メモリコントローラ509が、アクセスログ解析部802により、アプリ0に関するアクセスログ900を参照し、アプリ0のアクセス回数が許容範囲内であるか否かを判断する。アクセスログ900のアクセス回数の項目903に登録されている値が1200回である。許容範囲が900~1100である。よって、アプリ0のアクセス回数は許容範囲内でないと判断される。メモリコントローラ509が、リクエスト制御部801により、アプリ0の割当先CPUを特定し、該割当先CPUに応答信号を送信して、指定時間以内に特定した割当先CPUから応答があるか否か判断する。ここでは、CPU0がアプリ0の割当先CPUであり、メモリコントローラ509がCPU0に応答信号を送信する。応答信号を送信後から所定時間以内にCPU0からメモリコントローラ509へ応答信号がある場合、CPU0は動作可能な状態ではあるが、アプリ0またはOS521がエラー状態である可能性がある。応答信号を送信後から所定時間以内にCPU0からメモリコントローラ509へ応答信号がない場合、CPU0は動作不能なエラー状態である可能性がある。ここでは、CPU0からメモリコントローラ509へ応答信号がある場合とない場合とを分けて説明する。<応答信号あり>まず、メモリコントローラ509が、応答信号を送信後から所定時間以内にCPU0からの応答信号を受け付けた場合、最小負荷CPU特定部804により、マルチコアプロセッサのCPU0を除くCPU1とCPU2とから最小負荷のCPUを特定する。具体的には、たとえば、メモリコントローラ509がCPUごとに該CPUに割り当てられているアプリケーションの実行時間の合計値を算出し、最も合計値が小さいCPUを最小負荷のCPUとする。CPU1に割当済のアプリケーションの実行時間の合計値は200[μs]であり、CPU2に割当済のアプリケーションの実行時間の合計値は1[ms]であるため、CPU1が最小負荷のCPUとして特定される。ここでは、メモリコントローラ509が最小負荷のCPUを特定するが、CPU0に最小負荷のCPUを特定させてもよい。そして、メモリコントローラ509が、リクエスト制御部801により、CPU0へOS521に実行権を渡す割り込み信号を送信する。メモリコントローラ509が、割当済のアプリケーションの中でアプリ0を除くすべてのアプリケーションをCPU0からCPU1にマイグレーションさせる移行指示をCPU0に通知する。ここでは、アプリ2が移行対象となる。図11は、アプリ2が移行される例を示す説明図である。OS521が、移行指示を受け付けると、1次キャッシュ501に記憶されたアプリ2の実行データを1次キャッシュ502にスヌープ回路504を用いて移行させる。そして、OS521が、アプリ2のコンテキスト情報のポインタをCPU1のレディーキュー532に積むことにより、マイグレーションが終了する。OS521が、移行終了をメモリコントローラ509に通知する。メモリコントローラ509が、移行終了を受け付けると、リクエスト制御部801により、CPU0をソフトウェアリセットさせるリセット処理を制御する。そして、メモリコントローラ509が、アプリ0に関するアクセスログ900内のアクセス回数の項目903の値をクリアする。図12は、ソフトウェアリセットの一例を示す説明図である。ここで、ソフトウェアリセットとは、CPU上で動作するOSをリブートさせることを示している。メモリコントローラ509がCPU0をソフトウェアリセットさせるリセット処理を制御するとは、具体的には、たとえば、メモリコントローラ509が、1CPU0にリブートさせるリブート指示をOS521へ通知する。そして、OS521が、リブート指示を受け付けると、ブートシーケンスが記述されたブートローダを共有メモリ510のROM513から読み出して、共有メモリ510のRAM512または1次キャッシュ501へ展開する。つぎに、OS521が、2RAM512または1次キャッシュ501に展開したブートローダの読み出し先アドレスをCPU0のPCに格納する。OS521が、CPU0のリセットレジスタの値をセットする。これにより、OS521がリブートする。<応答信号なし>つぎに、メモリコントローラ509が、応答信号を送信後から一定時間以内にCPU0からの応答信号を受け付けなかった場合、マルチコアプロセッサのCPU0を除くCPU1とCPU2とから最小負荷のCPUを特定する。最小負荷のCPUの特定処理については応答信号ありの場合で示した処理と同一であるため、ここでは、CPU1が最小負荷のCPUであるとして、詳細な説明を省略する。そして、メモリコントローラ509が、CPU1へOS522に実行権を渡す割り込み信号を送信する。メモリコントローラ509が、割当済のアプリケーションの中でアプリ0を除くすべてのアプリケーションをCPU0からCPU1にマイグレーションさせる移行指示をCPU1に通知する。ここでは、アプリ2が移行対象となる。OS522が、移行指示を受け付けると、1次キャッシュ501に記憶されたアプリ2の実行データを1次キャッシュ502にスヌープ回路504を用いて移行させる。そして、OS522が、アプリ2のコンテキスト情報のポインタをCPU1のレディーキュー532に積むことにより、マイグレーションが終了する。OS522が、移行終了をメモリコントローラ509に通知する。メモリコントローラ509が、OS522から移行終了を受け付けると、CPU0をハードウェアリセットする。そして、メモリコントローラ509が、アプリ0に関するアクセスログ900内のアクセス回数の項目903の値をクリアする。図13は、ハードウェアリセットの一例を示す説明図である。ここで、メモリコントローラ509がハードウェアリセットするとは、たとえば、PMU511にCPU0への電源を遮断させ、その後、再度電源電圧を供給させることである。PMU511からCPU0への電源供給配線VDD0の電圧変化を用いて詳細に説明する。具体的には、たとえば、メモリコントローラ509が、1PMU511にCPU0の識別情報を通知する。PMU511が、2該通知を受け付けると、3識別情報が示すCPU0への電源供給を所定時間遮断する。図13での所定時間とは、CPU0の内部状態をリセット可能な定義された時間である。CPU0は、電源供給が所定時間遮断されることにより、41次キャッシュ501やレジスタの設定がリセットされる。その後、PMU511が5再度電源電圧を供給し、6リセット完了をメモリコントローラ509に通知する。CPU0に電源供給が再開されると、CPU0が7OS521をブートする。アクセス回数に関するアクセスログの更新処理図14は、アクセス回数に関するアクセスログの更新処理の更新処理手順例を示すフローチャートである。本更新処理手順は、OSごとに行われる。まず、OSが、共有メモリ510へのアクセスが発生したか否かを判断しステップS1401、共有メモリ510へのアクセスが発生していないと判断した場合ステップS1401:No、ステップS1401へ戻る。OSが、共有メモリ510へのアクセスが発生したと判断した場合ステップS1401:Yes、アクセスを発生したアプリケーションに関するアクセスログ内のアクセス回数をカウントアップしステップS1402、ステップS1401へ戻る。実施例1にかかるメモリコントローラ509による制御処理図15および図16は、実施例1にかかるメモリコントローラ509による制御処理の制御処理手順を示すフローチャートである。まず、メモリコントローラ509が、タイマ割り込みが発生したか否かを判断するステップS1501。メモリコントローラ509が、タイマ割り込みが発生していないと判断した場合ステップS1501:No、ステップS1501へ戻る。メモリコントローラ509が、タイマ割り込みが発生したと判断した場合ステップS1501:Yes、実行中のアプリケーションの中で、未解析のアプリケーションがあるか否かを判断するステップS1502。メモリコントローラ509が、未解析のアプリケーションがあると判断した場合ステップS1502:Yes、未解析のアプリケーションから、任意のアプリケーションを選択する対象アプリケーションステップS1503。つぎに、メモリコントローラ509が、アクセス回数が許容範囲内であるか否かを判断するステップS1504。メモリコントローラ509が、アクセス回数が許容範囲内であると判断した場合ステップS1504:Yes、ステップS1517へ移行する。メモリコントローラ509が、アクセス回数が許容範囲内でないと判断した場合ステップS1504:No、対象アプリケーションの割当先CPU障害CPUに応答信号を送信するステップS1505。メモリコントローラ509が、一定時間以内に障害CPUから応答有りか否かを判断するステップS1506。メモリコントローラ509が、一定時間以内に障害CPUから応答あると判断した場合ステップS1506:Yes、マルチコアプロセッサのうちの障害CPUを除くCPUから、最小負荷のCPUを特定するステップS1507。つぎに、メモリコントローラ509が、障害CPUへOSに実行権を渡す割り込み信号を通知しステップS1508、障害CPUに割当済アプリケーションの中で対象アプリケーションを除くアプリケーションを特定したCPUへ移行させる移行指示を障害CPUへ通知するステップS1509。そして、メモリコントローラ509が、移行終了したか否かを判断しステップS1510、移行終了していないと判断した場合ステップS1510:No、ステップS1510へ戻る。メモリコントローラ509が、移行終了したと判断した場合ステップS1510:Yes、障害CPUをソフトウェアリセットさせステップS1511、ステップS1517へ移行する。ステップS1506において、メモリコントローラ509が、一定時間以内に障害CPUから応答なしと判断した場合ステップS1506:No、マルチコアプロセッサのうちの障害CPUを除くCPUから、最小負荷のCPUを特定するステップS1512。メモリコントローラ509が、特定したCPUへOSに実行権を渡す割り込み信号を通知するステップS1513。つぎに、メモリコントローラ509が、障害CPUに割当済アプリケーションの中で対象アプリケーションを除くアプリケーションを障害CPUから特定したCPUへ移行させる移行指示を特定したCPUへ通知するステップS1514。そして、メモリコントローラ509が、移行が終了したか否かを判断しステップS1515、移行が終了していないと判断した場合ステップS1515:No、ステップS1515へ戻る。一方、メモリコントローラ509が、移行が終了したと判断した場合ステップS1515:Yes、障害CPUをハードウェアリセットしステップS1516、ステップS1517へ移行する。ステップS1504のYesの場合、ステップS1511、またはステップS1516のつぎに、対象アプリケーションに関するアクセスログから、対象アプリケーションのアクセス回数をクリアしステップS1517、ステップS1502へ戻る。実施例2実施例2では、メモリコントローラ509がマルチコアプロセッサのうちの一のCPUで実行中の対象アプリケーションからマルチコアプロセッサの各コアで共有する共有資源へのアクセスの傾向情報が許容範囲内であるか否かを判断する。そして、メモリコントローラ509が、アクセスの傾向情報が許容範囲内でないと判断した場合、対象アプリケーションから共有メモリ510へのアクセスの比率を判断前よりも下げる変更を行う。さらに、メモリコントローラ509が、該判断から所定時間経過後、判断から所定時間以内におけるアクセス回数が許容範囲内であるか否かを判断する。すなわち、アクセス回数が継続して許容範囲内でないかを判断する。メモリコントローラ509が、該判断から所定時間内におけるアクセス回数が許容範囲内でないと判断された場合、一のCPUに割当済の対象アプリケーションを除く他のアプリケーションを、一のCPUから他のCPUに移行させる。つぎに、詳細例を説明する。まず、メモリコントローラ509は、タイマ割り込みを検出すると、各CPUに割当済のアプリケーションの中から、任意の未解析のアプリケーションを選択する。ここでは、CPU0に割り当てられているアプリ0が選択されることとする。メモリコントローラ509が、アプリ0に関するアクセスログ900を参照し、アプリ0のアクセス回数が許容範囲内であるか否かを判断する。図10で示したアクセスログ900内のアクセス回数の項目903の値は1200回であり、許容範囲が900回~1100回であるため、アプリ0から共有メモリ510へのアクセス回数が許容範囲内でないと判断される。メモリコントローラ509は、アプリ0から共有メモリ510へのアクセスの比率を判断前よりも下げる。ここで、アプリ0から共有メモリ510へのアクセスの比率を下げる例について2つ説明する。一の例では、アプリ0からメモリコントローラ509へのアクセスについては変更せずに、メモリコントローラ509がアプリ0から受け付けたアクセスを制御して、共有メモリ510へのアクセスの比率を下げる。また、アクセスの比率を下げる他の例としては、アプリ0からメモリコントローラ509へのアクセスの比率をバス518のバス調停回路が下げることで、アプリ0から共有メモリ510へのアクセスの比率を判断前よりも下げることができる。メモリコントローラ509がバス518のバス調停回路へアプリ0の割当先CPUを通知する。該バス調停回路は、該割当先CPUからバス518へのアクセスをバッファリングするアウトスタンディングバッファからメモリコントローラ509へのアクセスの頻度を下げる。これにより、アプリ0から共有メモリ510へのアクセスの比率を判断前よりも下げることができる。実施例2では、一の例を用いることとし、一の例について図17を用いて詳細に説明する。図17は、メモリコントローラ509がアクセスの比率を下げる例を示す説明図である。メモリコントローラ509は、リクエストキュー1700に登録されているアクセスのリクエスト順に各CPUからのアクセスを制御する。ここでは、たとえば、判断前の各CPUのアクセス比率が、下記であるとする。CPU0の比率:CPU1の比率:CPU2の比率=5:2:1ここでは、各CPUのアクセス比率は、実行中のアプリケーションに基づいて決定されることとする。リクエストキュー1700の中の各ボックスがアクセスリクエストである。メモリコントローラ509は、リクエストキュー1700の右側からアクセスリクエストを受け付け、左側から順にアクセスリクエストを処理することとする。メモリコントローラ509が各CPUに対応するレジスタを有し、該レジスタに各CPUのアクセス比率を登録することとしてもよい。リクエストキュー1700内のボックスのうち、0が付されたボックスがCPU0からのアクセスリクエストであり、1が付されたボックスがCPU1からのアクセスリクエストであり、2が付されたボックスがCPU2からのアクセスリクエストである。判断前のリクエストキュー1700図上内では、0が付されたボックスが5個並び、つぎに、1が付されたボックスが2個並び、2が付されたボックスが1個並び、再度、0が付されたボックスが5個並んでいる。すなわち、メモリコントローラ509は、CPU0のアクセスリクエストを5回行い、つぎに、CPU1のアクセスリクエストを2回行い、そして、CPU2のアクセスリクエストを1回行う。判断後にメモリコントローラ509がアプリ0を実行するCPU0のアクセス比率を判断前よりも下げる。下げる量については限定しない。ここでは、たとえば、下げた後の各比率が、下記であるとする。CPU0の比率:CPU1の比率:CPU2の比率=2:2:1下げた後のリクエストキュー1700図下内では、0が付されたボックスが2個並び、つぎに、1が付されたボックスが2個並び、2が付されたボックスが1個並び、再度、0が付されたボックスが2個並んでいる。すなわち、メモリコントローラ509は、CPU0のアクセスリクエストを2回行い、つぎに、CPU1のアクセスリクエストを2回行い、そして、CPU2のアクセスリクエストを1回行う。本実施の形態では、DEFAULTのアクセス比率と、LOWのアクセス比率とが決定されていることとする。図18は、実施例2でのアクセスログ900を示す説明図その1である。さらに、メモリコントローラ509は、アプリ0のアクセスログ900内の優先度の項目904の値をDEFAULTからLOWに変更する。そして、メモリコントローラ509が、アプリ0に関するアクセスログ900内のアクセス回数の項目903の値をクリアする。そして、割当済のアプリケーションから、アプリ0を除くアプリケーションの中で、未解析のアプリケーションを選択し、解析する。つぎに、メモリコントローラ509は、つぎのタイマ割り込みを検出すると、各CPUに割当済のアプリケーションの中から、任意の未解析のアプリケーションを選択する。ここでは、CPU0に割り当てられているアプリ0が選択されることとする。図19は、実施例2でのアクセスログ900を示す説明図その2である。メモリコントローラ509が、アプリ0に関するアクセスログ900を参照し、アプリ0のアクセス回数が許容範囲内であるか否かを判断する。アクセスログ900のアクセス回数の項目903に登録されている値が2000回であり、許容範囲が900回~1100回であるため、アプリ0のアクセス回数が許容範囲内でないと判断される。つぎに、メモリコントローラ509が、アプリ0のアクセス回数が許容範囲内でないことが継続されているか否かを判断する。具体的には、たとえば、メモリコントローラ509が、アクセスログ900内の優先度の項目904の値がLOWである否かを確認する。LOWであれば、前回のタイマ割り込み時に、アクセス回数が許容範囲内でないと判断されていることを示している。たとえば、前回のタイマ割り込みと今回のタイマ割り込みとで連続して、アクセス回数が許容範囲内でない場合、アプリ0またはアプリ0の割当先CPUであるCPU0がエラーである可能性が高い。たとえば、前回のタイマ割り込みでアクセス回数が許容範囲内でなく、今回のタイマ割り込みでアクセス回数が許容範囲内であれば、前回のタイマ割り込み時には、アプリ0またはCPU0の状態が不安定である。しかしながら、今回のタイマ割り込み時にはアプリ0またはCPU0の状態が正常であることを示している。ここでは、すでにアクセスログ900内の優先度の項目904の値がLOWであるため、アクセス回数が許容範囲内でない状態が継続していることを示している。つぎに、メモリコントローラ509が、アプリ0の割当先CPUを特定し、該割当先CPUに信号を送信して、指定時間以内に特定した割当先CPUから応答があるか否か判断する。ここでは、CPU0がアプリ0の割当先CPUであり、メモリコントローラ509がCPU0に応答信号を送信する。メモリコントローラ509が、応答信号を送信後から一定時間以内にCPU0からの応答信号を受け付けた場合、マルチコアプロセッサのCPU0を除くCPU1とCPU2とから最小負荷のCPUを特定する。具体的には、たとえば、メモリコントローラ509がCPUごとに該CPUに割り当てられているアプリケーションの実行時間の合計値を算出し、最も合計値が小さいCPUを最小負荷のCPUとする。CPU1に割当済のアプリケーションの実行時間の合計値は200[μs]であり、CPU2に割当済のアプリケーションの実行時間の合計値は1[ms]であるため、CPU1が最小負荷のCPUとして特定される。ここでは、メモリコントローラ509が最小負荷のCPUを特定するが、CPU0に最小負荷のCPUを特定させてもよい。そして、メモリコントローラ509が、CPU0へOS521に実行権を渡す割り込み信号を送信し、割当済のアプリの中でアプリ0を除くすべてのアプリをCPU0からCPU1にマイグレーションさせる移行指示をCPU0に通知する。ここでは、アプリ2が移行対象となる。OS521が、移行指示を受け付けると、1次キャッシュ501に記憶されたアプリ2の実行データを1次キャッシュ502にスヌープ回路504を用いて移行させる。そして、OS521が、アプリ2のコンテキスト情報のポインタをCPU1のレディーキュー532に積むことにより、マイグレーションが終了する。OS521が、移行終了をメモリコントローラ509に通知する。メモリコントローラ509が移行終了を受け付けると、CPU0をソフトウェアリセットする。ソフトウェアリセットについては、実施例1で示した例と同一であるため詳細な説明を省略する。そして、メモリコントローラ509が、アプリ0に関するアクセスログ900内のアクセス回数の項目903の値をクリアし、優先度の項目904の値をLOWからDEFAULTに変更する。また、メモリコントローラ509が、応答信号を送信後から一定時間以内にCPU0からの応答信号を受け付けなかった場合応答信号なしについては実施例1で説明した処理と同一であるため、実施例2における応答信号なしの場合の詳細な説明を省略する。実施例2にかかるメモリコントローラ509による制御処理図20および図21は、実施例2にかかるメモリコントローラ509による制御処理の制御処理手順を示すフローチャートである。ステップS2001~ステップS2004はステップS1501~ステップS1504と同一処理であり、ステップS2010~ステップS2021はステップS1505~ステップS1516と同一処理であるため、ここでの詳細な説明は省略する。ステップS2004のNoの場合のつぎに、メモリコントローラ509が、前回のタイマ割り込み時に、対象アプリケーションのアクセス回数が許容範囲内であったか否かを判断するステップS2005。メモリコントローラ509が、前回のタイマ割り込み時に、対象アプリケーションのアクセス回数が許容範囲内であったと判断した場合ステップS2005:Yes、対象アプリケーションのアクセスの優先度をLOWに変更するステップS2006。メモリコントローラ509がステップS2006のつぎにステップS2009へ移行する。メモリコントローラ509が、前回のタイマ割り込み時に、対象アプリケーションのアクセス回数が許容範囲内でなかったと判断した場合ステップS2005:No、ステップS2010へ移行する。ステップS2004のYesの場合のつぎに、メモリコントローラ509が、前回のタイマ割り込み時に、対象アプリケーションのアクセス回数が許容範囲内であったか否かを判断するステップS2007。メモリコントローラ509が、前回のタイマ割り込み時に、対象アプリケーションのアクセス回数が許容範囲内でなかったと判断した場合ステップS2007:No、対象アプリケーションのアクセスの優先度をDEFAULTに変更するステップS2008。そして、メモリコントローラ509が、対象アプリケーションに関するアクセスログ内のアクセス回数をクリアしステップS2009、ステップS2002へ戻る。メモリコントローラ509が、前回のタイマ割り込み時に、対象アプリケーションのアクセス回数が許容範囲内であったと判断した場合ステップS2007:Yes、ステップS2009へ移行する。実施例3実施例3では、実施例1で説明した詳細についてアクセス回数に代わってメモリ番地を用いて説明する。図22は、メモリ番地に関するアクセスログの一例を示す説明図である。アプリ0に関するアクセスログ2200では、スタートアドレスの項目2201と、エンドアドレスの項目2202と、アクセス割合の項目2203と、を有している。さらに、アプリ0に関するアクセスログ2200では、許容範囲の項目2204と、平均アクセス回数の項目2205と、アクセス回数の項目2206と、優先度の項目2207と、を有している。スタートアドレスの項目2201と、エンドアドレスの項目2202とには、メモリ番地が登録されている。許容範囲の項目2204には、許容範囲が登録されている。アクセス割合の項目2203には、スタートアドレスの項目2201に登録されているメモリ番地からエンドアドレスの項目2202に登録されているメモリ番地までの領域に、アプリケーションの通常動作時にアクセスされる割合が登録されている。平均アクセス回数の項目2205には、アプリケーションの通常アクセス動作時に共有メモリ510へアクセスされる平均回数が登録されている。平均アクセス回数は、1000回である。たとえば、図22では、平均アクセス回数のうちの30[]が0x00000000~0x000FFFFFにアクセスされることを示している。すなわち、1000回×30[]で300回は0x00000000~0x000FFFFFにアクセスされることを示している。許容範囲が±10[]であるため、アクセス回数で許容範囲を表すと、270回~330回までであり、アクセス割合で許容範囲を表すと、27[]~33[]までである。アクセス回数の項目2206には、一のタイマ割り込みから次のタイマ割り込みまでの間に、各アドレス範囲にメモリアクセスが何回発生したかが登録される。優先度の項目2207には、アプリ0の共有メモリ510へのアクセスの優先度が登録される。ここでは、優先度の項目2207には、DEFAULTまたはLOWのうちのいずれか一方が登録される。LOWはDEFAULT時よりもアクセスの比率が低いことを示している。まず、メモリコントローラ509は、タイマ割り込みを検出すると、各CPUに割当済のアプリケーションの中から、任意の未解析のアプリケーションを選択する。ここでは、CPU0に割り当てられているアプリ0が選択されることとする。図23は、実施例3でのアクセスログ2200を示す説明図である。アクセスログ2200では、アクセス回数の項目2206が更新されている。0x00000000~0x000FFFFFには、100回アクセスされている。0x00000000~0x000FFFFFへのアクセスの割合は、1000回/100回で、10[]である。0x00100000~0x001FFFFFには、400回アクセスされている。0x00100000~0x001FFFFFへのアクセスの割合は、1000回/400回で、40[]アクセスされている。0xFFF00000~0xFFFFFFFFには、500回アクセスされている。0xFFF00000~0xFFFFFFFFへのアクセスの割合は、50[]である。そして、メモリコントローラ509が、アプリ0に関するアクセスログ2200を参照し、各メモリ番地へのアクセスの割合が許容範囲内であるか否かを判断する。たとえば、0xFFF00000~0xFFFFFFFFへのアクセスの割合は0[]であり、該タイミング割り込みでのアクセスの割合は50[]であるため、メモリコントローラ509が所定範囲内でないと判断する。よって、アプリ0のアクセス回数は許容範囲内でないと判断される。メモリコントローラ509が、アプリ0の割当先CPUを特定し、該割当先CPUに信号を送信して、指定時間以内に特定した割当先CPUから応答があるか否か判断する。ここでは、CPU0がアプリ0の割当先CPUであり、メモリコントローラ509がCPU0に応答信号を送信する。メモリコントローラ509が、応答信号を送信後から一定時間以内にCPU0からの応答信号を受け付けた場合、メモリコントローラ509が、マルチコアプロセッサのCPU0を除くCPU1とCPU2とから最小負荷のCPUを特定する。ここでは、メモリコントローラ509が最小負荷のCPUを特定するが、CPU0に最小負荷のCPUを特定させてもよい。そして、メモリコントローラ509が、CPU0へOS521に実行権を渡す割り込み信号を送信し、割当済のアプリの中でアプリ0を除くすべてのアプリをCPU0からCPU1にマイグレーションさせる移行指示をCPU0に通知する。ここでは、アプリ2が移行対象となる。OS521が、移行指示を受け付けると、1次キャッシュ501に記憶されたアプリ2の実行データを1次キャッシュ502にスヌープ回路504を用いて移行させる。そして、OS521が、アプリ2のコンテキスト情報のポインタをCPU1のレディーキュー532に積むことにより、マイグレーションが終了する。OS521が、移行終了をメモリコントローラ509に通知する。メモリコントローラ509が移行終了を受け付けると、CPU0をソフトウェアリセットする。そして、メモリコントローラ509が、アプリ0に関するアクセスログ2200内のアクセス回数の項目2206の値をクリアする。また、CPU0からメモリコントローラ509へ一定時間以内に応答指示がある場合については実施例1で詳細に説明しているため、省略する。また、実施例3にかかる詳細な制御処理手順は、実施例1にかかる詳細な制御処理手順とアクセスの傾向情報が異なるだけであるため、ここでの説明は省略する。実施例3にかかるメモリ番地に関するアクセスログの更新処理図24は、メモリ番地に関するアクセスログの更新処理の更新処理手順例を示すフローチャートである。本更新処理手順は、OSごとに行われる。まず、OSが、共有メモリ510へのアクセスが発生したか否かを判断しステップS2401、共有メモリ510へのアクセスが発生していないと判断した場合ステップS2401:No、ステップS2401へ戻る。OSが、共有メモリ510へのアクセスが発生したと判断した場合ステップS2401:Yes、アクセスするメモリ番地を特定するステップS2402。書き込み命令読み出し命令には、アクセスするメモリ番地が含まれている。そして、OSが、アクセスを発生したアプリケーションに関するアクセスログ内の対応するメモリ番地のアクセス回数をカウントアップしステップS2403、ステップS2401へ戻る。実施例4実施例4では、実施例2で説明した詳細について、アクセス回数に代わってメモリ番地で説明する。まず、メモリコントローラ509は、タイマ割り込みを検出すると、各CPUに割当済のアプリケーションの中から、任意の未解析のアプリケーションを選択する。ここでは、CPU0に割り当てられているアプリ0が選択されることとする。メモリコントローラ509が、アプリ0に関するアクセスログ2200を参照し、各メモリ番地へのアクセスの割合が許容範囲内であるか否かを判断する。0xFFF00000~0xFFFFFFFFへのアクセスの割合は0[]であり、該タイミング割り込みでのアクセスの割合は150[]であるため、メモリコントローラ509が所定範囲内でないと判断する。メモリコントローラ509は、アプリ0から共有メモリ510へのアクセスの比率を判断前よりも下げる。アクセスの比率の下げ方については、実施例2で説明した例と同一例を用いることとする。図25は、実施例4でのアクセスログを示す説明図その1である。さらに、メモリコントローラ509は、アプリ0のアクセスログ2200内の優先度の項目2207の値をDEFAULTからLOWに変更する。そして、メモリコントローラ509が、アプリ0に関するアクセスログ内のアクセス回数の項目2206の値をクリアする。そして、割当済のアプリケーションから、アプリ0を除くアプリケーションの中で、未解析のアプリケーションを選択し、解析する。つぎに、メモリコントローラ509は、つぎのタイマ割り込みを検出すると、各CPUに割当済のアプリケーションのうちの未解析のアプリケーションから任意のアプリケーションを選択する。ここでは、CPU0に割り当てられているアプリ0が選択されることとする。図26は、実施例4でのアクセスログを示す説明図その2である。メモリコントローラ509が、アプリ0に関するアクセスログ2200を参照し、各アドレスの番地にアクセスされるアクセスの割合が許容範囲内か否かを判断する。0xFFF00000~0xFFFFFFFFへのアクセス回数が2000回であり、アクセスの割合が200[]であるため、アクセスの割合が、許容範囲内でないと判断される。つぎに、メモリコントローラ509が、アプリ0のアクセス回数が許容範囲内でないことが継続されているか否かを判断する。具体的には、たとえば、メモリコントローラ509が、アクセスログ2200内の優先度の項目2207の値がLOWであるか否かを確認する。LOWであれば、前回のタイマ割り込み時に、アクセス回数が許容範囲内でないと判断されていることを示している。たとえば、前回のタイマ割り込みと今回のタイマ割り込みとで連続して、アクセス回数が許容範囲内でない場合、アプリ0またはアプリ0の割当先CPUであるCPU0がエラーである可能性が高い。たとえば、前回のタイマ割り込みでアクセス回数が許容範囲内でなく、今回のタイマ割り込みでアクセス回数が許容範囲内であれば、前回のタイマ割り込み時には、アプリ0またはCPU0の状態が不安定である。しかしながら、今回のタイマ割り込み時にはアプリ0またはCPU0の状態が正常であることを示している。ここでは、すでにアクセスログ2200内の優先度の項目2207の値がLOWであるため、アクセス回数が許容範囲内でない状態が継続していることを示している。つぎに、メモリコントローラ509が、アプリ0の割当先CPUを特定し、該割当先CPUに信号を送信して、指定時間以内に特定した割当先CPUから応答があるか否か判断する。ここでは、CPU0がアプリ0の割当先CPUであり、メモリコントローラ509がCPU0に応答信号を送信する。メモリコントローラ509が、応答信号を送信後から一定時間以内にCPU0からの応答信号を受け付けた場合、メモリコントローラ509が、マルチコアプロセッサのCPU0を除くCPU1とCPU2とから最小負荷のCPUを特定する。具体的には、たとえば、メモリコントローラ509がCPUごとに該CPUに割り当てられているアプリケーションの実行時間の合計値を算出し、最も合計値が小さいCPUを最小負荷のCPUとする。CPU1に割当済のアプリケーションの実行時間の合計値は200[μs]であり、CPU2に割当済のアプリケーションの実行時間の合計値は1[ms]であるため、CPU1が最小負荷のCPUとして特定される。ここでは、メモリコントローラ509が最小負荷のCPUを特定するが、CPU0に最小負荷のCPUを特定させてもよい。そして、メモリコントローラ509が、CPU0へOS521に実行権を渡す割り込み信号を送信し、割当済のアプリの中でアプリ0を除くすべてのアプリをCPU0からCPU1にマイグレーションさせる移行指示をCPU0に通知する。ここでは、アプリ2が移行対象となる。OS521が、移行指示を受け付けると、1次キャッシュ501に記憶されたアプリ2の実行データを1次キャッシュ502にスヌープ回路504を用いて移行させる。そして、OS521が、アプリ2のコンテキスト情報のポインタをCPU1のレディーキュー532に積むことにより、アプリ2のマイグレーションが終了する。OS521が、移行終了をメモリコントローラ509に通知する。メモリコントローラ509が移行終了を受け付けると、CPU0をソフトウェアリセットする。そして、メモリコントローラ509が、アプリ0に関するアクセスログ2200内のアクセス回数の項目2206の値をクリアし、優先度の項目2207の値をLOWからDEFAULTに変更する。また、実施例4にかかる詳細な制御処理手順は、実施例2にかかる詳細な制御処理手順とアクセスの傾向情報が異なるだけであるため、ここでの説明は省略する。以上実施例1,実施例3で説明したように、プロセッサ処理方法、および制御装置によれば、一のCPUで実行中の対象アプリケーションのメモリアクセスの傾向情報が許容範囲内でない場合、一のCPUに割当済の他のアプリケーションを他のCPUに移行させる。すなわち、一のCPUで実行中のアプリのメモリアクセスの傾向が、通常のアプリケーションの実行時と異なる場合、対象アプリケーションまたは一のCPUにエラーの可能性がある。そこで、一のCPUに割当済の他のアプリケーションを他のCPUに避難させることにより、該エラーの影響を他のアプリケーションに波及させることを防止することができる。また、一のCPUに割当済の他のアプリケーションを一のCPUから他のCPUに移行させる移行処理を一のCPUに移行指示を通知することで、一のCPUに移行処理を実行させる。これにより、割当済の他のアプリケーションを他のCPUに避難させることができ、エラーの影響を他のアプリケーションに波及させることを防止することができる。また、一のCPUに割当済の他のアプリケーションを一のCPUから他のCPUに移行させる移行処理を他のCPUに移行指示を通知することで、他のCPUに移行処理を実行させる。これにより、割当済の他のアプリケーションを他のCPUに避難させることができ、エラーの影響を他のアプリケーションに波及させることを防止することができる。また、一のCPUに応答確認を行い、応答がない場合、一のCPUに割当済の他のアプリケーションを一のCPUから他のCPUに移行させる移行処理を他のCPUに移行指示を通知することで、他のCPUに移行処理を実行させる。これにより、一のCPUがエラー状態で他のアプリケーションが実行されていないため、他のアプリケーションを実行させるために他のCPUに移行させることで、他のアプリケーションを通常通り実行させることができる。また、他のアプリケーションを他のCPUに移行後、一のCPUをソフトウェアリセットさせることにより、共有メモリ内の一のCPUが使用する領域がリセットされ、一のCPUをエラー状態から回復させることができる。また、他のアプリケーションを他のCPUに移行後、一のCPUをハードウェアリセットさせることにより、共有メモリ内の一のCPUが使用する領域と一のCPU内のレジスタの値がリセットされ、一のCPUをエラー状態から回復させることができる。以上、実施例2,4で説明したように、一のCPUで実行中の対象アプリケーションのメモリアクセスの傾向情報が許容範囲内であるか否かを判断する。共有メモリへのアクセスの傾向情報が許容範囲内でないとは、実行中の対象アプリのメモリアクセスの傾向が通常時の傾向と異なる場合である。すなわち、対象アプリまたは対象アプリの割当先コアにエラーの疑いがある。そして、対象アプリケーションから共有メモリへのアクセスの優先度を判断前よりも下げることで、他のCPUで実行中のアプリケーションからのメモリアクセスに影響を与えるのを防止することができる。また、判断後から所定時間経過後に、一のCPUで実行中の対象アプリケーションのメモリアクセスの傾向情報が許容範囲内であるか否かを判断する。すなわち、複数回に渡って、一のCPUで実行中の対象アプリケーションのメモリアクセスの傾向情報が許容範囲内であるか否かを判断する。一のCPUで実行中の対象アプリケーションのメモリアクセスの傾向情報が許容範囲内でないことが継続している場合、エラー状態である可能性が高くなるので、一のCPUに割当済の他のアプリケーションを他のCPUに移行させる。これにより、一のアプリケーションに割当済の他のアプリケーションにエラーの影響が波及するのを防止することができる。また、共有メモリへのアクセスの傾向情報が許容範囲内でないと過去に判断され、共有メモリへのアクセスの傾向情報が許容範囲内であると今回判断された場合、該アクセスの優先度を上げる。一のCPUで実行中の対象アプリケーションのメモリアクセスの傾向情報が許容範囲内でないことが継続していない場合、エラー状態ではない可能性がある。これにより、エラー状態であるか否かの判断の精度を向上させることができる。また、他のアプリケーションを他のCPUに移行後、一のCPUをリセットさせることにより、一のCPUをエラー状態から回復させることができる。また、他のアプリケーションを他のCPUに移行後、一のCPUをソフトウェアリセットさせることにより、共有メモリ内の一のCPUが使用する領域がリセットされ、一のCPUをエラー状態から回復させることができる。また、他のアプリケーションを他のCPUに移行後、一のCPUをハードウェアリセットさせることにより、共有メモリ内の一のCPUが使用する領域と一のCPU内のレジスタの値がリセットされ、一のCPUをエラー状態から回復させることができる。また、対象アプリケーションから共有メモリへのアクセスの傾向情報がアクセス回数に関する情報である。たとえば、通常動作時よりもアクセス回数が多ければ、異常状態であるため、他のCPUから共有メモリへのアクセスの妨げになる。また、たとえば、アクセス回数が通常動作時よりも少なければ、すなわち、一定時間共有メモリへアクセスがなければ、対象アプリケーションがハングアップ状態である可能性がある。これにより、他のCPUから共有メモリへのアクセスの妨げとなる状態やハングアップ状態を容易に検出することができる、マルチコアプロセッサシステム全体の演算性能の劣化を防止することができ、信頼性を向上させることができる。また、対象アプリケーションから共有メモリへのアクセスの傾向情報がアクセスするメモリ番地に関する情報である。たとえば、通常動作時のメモリ番地と異なるメモリ番地にアクセスしている場合、対象アプリケーションがエラー命令を実行している可能性がある。これにより、エラー状態を容易に検出することができ、マルチコアプロセッサシステム全体の演算性能の劣化を防止することができ、信頼性を向上させることができる。本プロセッサ処理方法は、リクエスト制御部801~I/O制御部806を有するメモリコントローラ509によって実現することができる。"