(57)【要約】      （修正有）【課題】プロセッサのデータ帯域幅を確保するプロセッサシステムを提供する。【解決手段】第１の主記憶部６０に対するデータの書き込み／読み出しを制御する第１の主記憶制御部１６と、第２の主記憶部７０に対するデータの書き込み／読み出しを制御する第２の主記憶制御部１７と、バス１４を介して、第１の主記憶部６０に対するデータを第１の主記憶制御部１６に入出力するＣＰＵ１３と、バス１４を介して、第２の主記憶部７０に対する画像処理データを第２の主記憶部７０に入出力する画像処理ＩＰ１１と、第２の主記憶部７０に対応するアドレス範囲をＣＰＵ１３の割り当てから外して、画像処理ＩＰ１１に割り当てる管理部と、を備えたものである。【選択図】図１
2015148921.tif 000002
【特許請求の範囲】
【請求項１】
第１のメモリに対するデータの書き込み／読み出しを制御する第１のメモリコントローラと、
第２のメモリに対するデータの書き込み／読み出しを制御する第２のメモリコントローラと、
バスを介して、前記第１のメモリに対するデータを前記第１のメモリコントローラに入出力する第１のプロセッサと、
前記バスを介して、前記第２のメモリに対する処理データを前記第２のメモリコントローラに入出力する第２のプロセッサと、
前記第２のメモリに対応するアドレス範囲を前記第１のプロセッサの割り当てから外して、前記第２のプロセッサに割り当てる管理部と、を備えたプロセッサシステム。
【請求項２】
汎用ＯＳが前記第１のメモリの少なくとも一部のアドレス範囲を前記第１のプロセッサに割り当て、
前記汎用ＯＳの割り当てとは独立して、前記管理部が前記第２のメモリに対応するアドレス範囲を前記第２のプロセッサに割り当てる請求項１に記載のプロセッサシステム。
【請求項３】
前記管理部が、前記第２のメモリのアドレス範囲を前記第２のプロセッサ専用に割り当てる請求項１に記載のプロセッサシステム。
【請求項４】
前記第２のプロセッサの動作時には、前記管理部が前記第２のメモリのアドレス範囲を前記汎用ＯＳの管理下から外して、前記第２のプロセッサに割り当て、
前記第２のプロセッサの非動作時には、前記第２のメモリのアドレス範囲を前記汎用ＯＳの管理下にする請求項２に記載のプロセッサシステム。
【請求項５】
前記第２のプロセッサが非動作時から動作時に切り替わる時に、前記第１及び第２のメモリの割り当て状況を示す管理情報に基づいて、前記管理部が前記第２のメモリに記憶されたデータを前記第１のメモリにコピーする請求項４に記載のプロセッサシステム。
【請求項６】
前記第１及び第２のメモリの仮想アドレスと物理アドレスとを対応付けるテーブルを参照するメモリ管理ユニットをさらに備え、
前記第１のプロセッサが前記仮想アドレスを指定すると、前記第１及び第２のメモリに対するデータの書き込み／読み出しを行い、
前記第２のプロセッサが非動作時から動作時に切り替わる時に、前記第１のプロセッサが前記テーブルを更新する請求項５に記載のプロセッサシステム。
【請求項７】
前記第２のプロセッサと同時に動作する第３のプロセッサをさらに備え
前記第３のプロセッサが所定のデータ単位を処理するための時間が前記第２のプロセッサよりも長い場合、前記第２のメモリに対応するアドレス範囲を前記第２のプロセッサの割り当てから外して、前記第３のプロセッサに割り当てる請求項２に記載のプロセッサシステム。
【請求項８】
前記第２のメモリに対応するアドレス範囲を前記第２のプロセッサの割り当てから外す時に、前記第１及び第２のメモリの割り当て状況を示す管理情報に基づいて、前記管理部が前記第２のメモリに記憶されたデータを前記第１のメモリにコピーする請求項７に記載のプロセッサシステム。
【請求項９】
前記第１及び第２のメモリの仮想アドレスと物理アドレスとを対応付けるテーブルを参照するメモリ管理ユニットをさらに備え、
前記第１のプロセッサが前記仮想アドレスを指定することで、前記第１及び第２のメモリに対するデータの書き込み／読み出しを行い、
前記第２のメモリに対応するアドレス範囲を第２のプロセッサの割り当てから外す時に、前記第１のプロセッサが前記テーブルを更新する請求項８に記載のプロセッサシステム。
【請求項１０】
前記プロセッサシステムに接続されたハードウェアを制御するハードウェアＩＰをさらに備え、
前記第２のプロセッサ、前記第３のプロセッサ、及び前記ハードウェアＩＰの処理状況に応じて、前記第２のメモリに対応するアドレス範囲をハードウェアＩＰに割り当てる請求項７に記載のプロセッサシステム。
【請求項１１】
請求項１に記載のプロセッサシステムと、
前記第１のメモリコントローラによって、データの書き込み／読み出しが制御される第１のメモリと、
前記第２のメモリコントローラによって、データの書き込み／読み出しが制御される第２のメモリと、を備えた半導体装置。
【請求項１２】
第１のメモリに対するデータの書き込み／読み出しを制御する第１のメモリコントローラと、
第２のメモリに対するデータの書き込み／読み出しを制御する第２のメモリコントローラと、
バスを介して、前記第１のメモリに対するデータを前記第１のメモリコントローラに入出力する第１のプロセッサと、
前記バスを介して、前記第２のメモリに対する処理データを前記第２のメモリコントローラに入出力する第２のプロセッサと、を備えたプロセッサシステムの制御方法であって、
前記第２のメモリに対応するアドレス範囲を前記第１のプロセッサの割り当てから外して、前記第２のプロセッサに割り当てるステップと、を備えたプロセッサシステムの制御方法。
【請求項１３】
汎用ＯＳが前記第１のメモリの少なくとも一部のアドレス範囲を前記第１のプロセッサに割り当て、
前記汎用ＯＳの割り当てとは独立して、前記第２のメモリに対応するアドレス範囲を前記第２のプロセッサに割り当てる請求項１２に記載のプロセッサシステムの制御方法。
【請求項１４】
前記第２のメモリのアドレス範囲を前記第２のプロセッサ専用に割り当てる請求項１２に記載のプロセッサシステムの制御方法。
【請求項１５】
前記第２のプロセッサの動作時には、前記第２のメモリのアドレス範囲を前記汎用ＯＳの管理下から外して、前記第２のプロセッサに割り当て、
前記第２のプロセッサの非動作時には、前記第２のメモリのアドレス範囲を前記汎用ＯＳの管理下にする請求項１３に記載のプロセッサシステムの制御方法。
【請求項１６】
前記第２のプロセッサが非動作時から動作時に切り替わる時に、前記第１及び第２のメモリの割り当て状況を示す管理情報に基づいて、前記第２のメモリに記憶されたデータを前記第１のメモリにコピーする請求項１５に記載のプロセッサシステムの制御方法。
【請求項１７】
前記第１及び第２のメモリの仮想アドレスと物理アドレスとを対応付けるテーブルを参照するメモリ管理ユニットをさらに備え、
前記第１のプロセッサが前記仮想アドレスを指定すると、前記第１及び第２のメモリに対するデータの書き込み／読み出しを行い、
前記第２のプロセッサが非動作時から動作時に切り替わる時に、前記第１のプロセッサが前記テーブルを更新する請求項１６に記載のプロセッサシステムの制御方法。
【請求項１８】
前記プロセッサシステムが前記第２のプロセッサと同時に動作する第３のプロセッサをさらに備え
前記第３のプロセッサが所定のデータ単位を処理するための時間が前記第２のプロセッサよりも長い場合、前記第２のメモリに対応するアドレス範囲を前記第２のプロセッサの割り当てから外して、前記第３のプロセッサに割り当てる請求項１３に記載のプロセッサシステムの制御方法。
【請求項１９】
前記第２のメモリに対応するアドレス範囲を前記第２のプロセッサの割り当てから外す時に、前記第１及び第２のメモリの割り当て状況を示す管理情報に基づいて、前記第２のメモリに記憶されたデータを前記第１のメモリにコピーする請求項１８に記載のプロセッサシステムの制御方法。
【請求項２０】
前記第１及び第２のメモリの仮想アドレスと物理アドレスとを対応付けるテーブルを参照するメモリ管理ユニットをさらに備え、
前記第１のプロセッサが前記仮想アドレスを指定することで、前記第１及び第２のメモリに対するデータの書き込み／読み出しを行い、
前記第２のメモリに対応するアドレス範囲を第２のプロセッサの割り当てから外す時に、前記第１のプロセッサが前記テーブルを更新する請求項１９に記載のプロセッサシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置、プロセッサシステム、及びその制御方法に関する。
【背景技術】
【０００２】
特許文献１には、複数の記憶制御装置を有するマルチプロセッサシステムが開示されている。特許文献１のマルチプロセッサシステムは、命令プロセッサＩＰ０〜ＩＰ４と、記憶制御装置ＳＣ０、ＳＣ１を備えている。命令プロセッサＩＰ０、ＩＰ１は主記憶制御ＳＣ０に接続されている。命令プロセッサＩＰ２、ＩＰ３は、記憶制御装置ＳＣ１に接続されている。
【０００３】
記憶制御装置ＳＣ０、及び記憶制御装置ＳＣ１は、信号線を介して、主記憶装置ＭＳ０、及び主記憶装置ＭＳ１の両方に接続されている。そして、主記憶装置ＭＳ０、ＭＳ１は、全ての命令プロセッサＩＰ０〜ＩＰ４に接続され、どの主記憶装置から読み出されたデータもすべてのプロセッサに送出できるように構成されている。 
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平６−３２４９９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１のマルチプロセッサシステムでは、以下に示す課題がある。２つの命令プロセッサが１つの主記憶制御装置に接続されているため、帯域が偏り、命令プロセッサが十分なデータ帯域幅を確保できないケースがある。特に命令プロセッサが画像処理を行うイメージプロセッサである場合、データ帯域幅を十分に確保することが要求される。イメージプロセッサが十分なデータ帯域幅を確保することができない場合、動画再生時にコマ落ちが生じる恐れがある。また、イメージプロセッサ以外のプロセッサについても、データ帯域幅を十分に確保することが要求されることがある。
【０００６】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
一実施の形態によれば、プロセッサシステムは、バスを介して、第１のメモリに対するデータを第１のメモリコントローラに入出力する第１のプロセッサと、前記バスを介して、第２のメモリに対する処理データを第２のメモリコントローラに入出力する第２のプロセッサと、前記第２のメモリに対応するアドレス範囲を前記第１のプロセッサの割り当てから外して、前記第２のプロセッサに割り当てるメモリ管理ユニットと、を備えたものである。
【０００８】
なお、上記実施の形態のシステムを方法や装置に置き換えて表現したもの、該システムまたは該システムの一部の処理をコンピュータに実行せしめるプログラム、該システムを備えた半導体装置なども、本発明の態様としては有効である。
【発明の効果】
【０００９】
前記一実施の形態によれば、プロセッサのデータ帯域幅を確保することができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態１にかかる半導体装置の構成を示すブロック図である。
【図２】第１及び第２の主記憶制御部に紐付けられたアドレス範囲を示す図である。
【図３】ＣＰＵの管理部と画像処理ドライバによるメモリの割り当て処理を説明するための図である。
【図４】画像処理ドライバによるメモリの割り当て処理を説明するための図である。
【図５】汎用ＯＳによるメモリの割り当てを説明するための図である。
【図６】ＣＰＵと画像処理ＩＰが第２の主記憶制御部を経由する例を説明する図である。
【図７】実施の形態２におけるメモリの割り当て処理を説明するための図である。
【図８】実施の形態３に係るメモリの割り当て処理を説明するための図である。
【図９】メモリを管理する管理情報とページとの対応を説明するための図である。
【図１０】仮想アドレスと物理アドレスとの対応を示すページテーブルを説明するための図である。
【図１１】画像処理ＩＰに対する割り当てを変更する制御を説明する図である。
【図１２】画像処理ＩＰに対する割り当てを変更する制御を説明する図である。
【図１３】２つの画像処理ＩＰを備えたプロセッサシステムを示す図である。
【図１４】実施の形態４に係る半導体装置の構成を示す図である。
【図１５】フレーム間隔と処理時間の関係を示す図である。
【図１６】特定のアドレス範囲を汎用ＯＳの管理下から管理部の管理下に変更する例を示す図である。
【図１７】特定のアドレス範囲を汎用ＯＳの管理下から管理部の管理下に変更する例を示す図である。
【図１８】特定のアドレス範囲を汎用ＯＳの管理下から管理部の管理下に変更する例を示す図である。
【図１９】特定のアドレス範囲を管理部の管理下から汎用ＯＳの管理下に変更する例を示す図である。
【図２０】特定のアドレス範囲を管理部の管理下から汎用ＯＳの管理下に変更する例を示す図である。
【図２１】特定のアドレス範囲を管理部の管理下から汎用ＯＳの管理下に変更する例を示す図である。
【図２２】実施の形態４にかかるプロセッサシステムの制御方法を示すフローチャートである。
【発明を実施するための形態】
【００１１】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、ＣＰＵ、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１２】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００１３】
実施の形態１．
本実施の形態にかかるプロセッサシステム、及び半導体装置について図１を用いて説明する。図１は、半導体装置１００の全体構成を示すブロック図である。半導体装置１００は、プロセッサシステム１０と、第１の主記憶部６０と、第２の主記憶部７０とを備えている。
【００１４】
プロセッサシステム１０は、例えばＳｏＣ（Ｓｙｓｔｅｍ  Ｏｎ  ａ  Ｃｈｉｐ）であり、カーナビゲーション装置や、情報エンタテイメント機器等に用いられる。プロセッサシステム１０は、画像処理ＩＰ１１と、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１３と、バス１４と、第１の主記憶制御部１６と、第２の主記憶制御部１７とを備えている。プロセッサシステム１０は、複数のプロセッサを有するマルチプロセッサシステムである。
【００１５】
画像処理ＩＰ１１は、例えば、イメージプロセッサであり、画像処理を行う。例えば、画像処理ＩＰ１１は、画像データの符号化又は復号化を行うＩＰ（Ｉｎｔｅｌｌｅｃｔｕａｌ  Ｐｒｏｐｅｒｔｙ）コアである。画像処理ＩＰ１１は、画像処理に必要な画像処理データを生成する。画像処理ＩＰ１１は、バス１４を介して第１の主記憶制御部１６、及び第２の主記憶制御部１７と接続されている。
【００１６】
ＣＰＵ１３は、システム全体を制御するプロセッサである。例えば、プロセッサシステム１０がカーナビゲーション装置に用いられる場合、ＣＰＵ１３は、ルート検索や現在地特定などの処理を実行する。すなわち、ＣＰＵ１３は画像処理以外の処理を実行する。これにより、半導体装置１００を所定のアプリケーションに利用することができる。ＣＰＵ１３は、バス１４を介して第１の主記憶制御部１６、及び第２の主記憶制御部１７と接続されている。なお、ＣＰＵ１３を第１のプロセッサとした場合、画像処理ＩＰ１１が第２のプロセッサとなる。
【００１７】
第１の主記憶制御部１６は、第１のメモリコントローラであり、第１の主記憶部６０に対するデータの書き込み／読み出しを制御する。第２の主記憶制御部１７は、第２のメモリコントローラであり、第２の主記憶部７０に対するデータの書き込み／読み出しを制御する。
【００１８】
第１の主記憶部６０、及び第２の主記憶部７０は、例えば、ＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のメインメモリである。第１の主記憶部６０、及び第２の主記憶部７０は、プロセッサシステム１０での処理に用いられるデータを格納する。第１の主記憶部６０、及び第２の主記憶部７０は、ＣＰＵ１３、及び画像処理ＩＰ１１の両方が利用可能な汎用メモリである。
【００１９】
第１の主記憶制御部１６は、第１の主記憶部６０に記憶されているデータを読み出して、ＣＰＵ１３に出力する。また、第１の主記憶制御部１６は、ＣＰＵ１３から出力されたデータを第１の主記憶部６０に書き込む。このように、ＣＰＵ１３は、バス１４を介して、第１の主記憶部６０に対するデータを第１の主記憶制御部１６に入出力する。
【００２０】
第２の主記憶制御部１７は、第２の主記憶部７０に記憶されているデータを読み出して、画像処理ＩＰ１１に出力する。また、第２の主記憶部制御部１７は、ＣＰＵ１３から出力されたデータを第２の主記憶部７０に書き込む。このように、画像処理ＩＰ１１は、バス１４を介して、第２の主記憶部７０に対する画像処理データを第２の主記憶制御部１７に入出力する。
【００２１】
次に、第１の主記憶制御部１６、第２の主記憶制御部１７に紐付けられているアドレス範囲について、図２を用いて説明する。図２は、第１の主記憶制御部１６と第２の主記憶制御部１７に紐付けられているメモリの物理アドレス範囲を示す図である。第１の主記憶制御部１６は、０ｘ１ ００００ ００００〜０ｘ１ ＦＦＦＦ ＦＦＦＦのアドレス範囲３００に対応している。第２の主記憶制御部１７は、０ｘ２ ００００ ００００〜０ｘ２ ＦＦＦＦ ＦＦＦＦのアドレス範囲３０１に対応している。したがって、ソフトウェアが、特定のアドレス範囲を専有できれば、第２の主記憶制御部１７を専有することができる。
【００２２】
図３を用いて、メモリ空間の割り当て処理について説明する。図３は、ＣＰＵ１３によるメモリ空間の割り当て処理を説明するための図である。ＣＰＵ１３は、画像処理ドライバ３１、及び管理部３２を備えている。画像処理ドライバ３１は、画像処理ＩＰ１１を制御する。さらに、画像処理を行う場合、画像処理ドライバ３１は、メモリの割り当てを行う。例えば、画像処理ドライバ３１は、第１の主記憶制御部１６に対応するアドレス範囲３００を割り当てる。管理部３２は、メモリを管理するメモリ管理機能を有するソフトウェアである。管理部３２は、第２の主記憶制御部１７に対応するアドレス範囲３０１を割り合てる。換言すると、画像処理ドライバ３１は、管理部３２を用いて、アドレス範囲３０１の割り当てを行う。
【００２３】
画像処理を行う場合のメモリの割り当てについて説明する。まず、１回目の割り当て処理において、画像処理ドライバ３１が領域３００ａをＣＰＵ１３に割り当てる。２回目の割り当て処理において、管理部３２が領域３０１ａを画像処理ＩＰ１１に割り当てる。３回目の割り当て処理において、画像処理ドライバ３１が領域３００ｂをＣＰＵ１３に割り当てる。４回目の割り当て処理において、管理部３２が領域３０１ｂを画像処理ＩＰ１１に割り当てる。ＣＰＵ１３、及び画像処理ＩＰ１１は、割り当てられた領域に対して、データの書き込み／読み出しを行う。
【００２４】
領域３００ａ、及び領域３００ｂはアドレス範囲３００、すなわち、第１の主記憶制御部１６に対応するアドレス範囲に含まれている。例えば、領域３００ａは、アドレス範囲３００の前半となっており、領域３００ｂは、アドレス範囲３００の後半となっている。領域３０１ａ、及び領域３０１ｂは、アドレス範囲３０１、すなわち、第２の主記憶制御部１７に対応するアドレス範囲に含まれている。例えば、領域３０１ａは、アドレス範囲３０１の前半となっており、領域３０１ｂは、アドレス範囲３０１の後半となっている。もちろん、アドレス範囲３００，３０１をそれぞれ３以上に分割して、割当を順番に行うようにしてもよい。
【００２５】
管理部３２が割り当てた領域３０１ａ、及び領域３０１ｂは、第２の主記憶制御部１７を経由する。一方、画像処理ドライバ３１が割り当てた領域３００ａ、及び領域３００ｂは、第１の主記憶制御部１６を経由する。このため、領域３０１ａ、及び領域３０１ｂを画像処理ＩＰ１１のみで使用することにより、画像処理ＩＰ１１は、第２の主記憶制御部１７を専有することができる。すなわち、管理部３２は、第２の主記憶部７０のアドレス範囲を画像処理ＩＰ１１専用に割り当てている。したがって、画像処理ＩＰ１１は、十分な帯域幅を確保することができる。
【００２６】
図１に示すように、画像処理ＩＰ１１のデータ帯域幅１２１が第２の主記憶制御部１７のデータ帯域幅１２２に収まる。すなわち、ＣＰＵ１３のデータ帯域幅１１１が広くなった場合でも、ＣＰＵ１３の処理データが第２の主記憶制御部１７を経由することはない。画像処理ＩＰ１１とＣＰＵ１３とが同時に動作する場合であっても、画像処理ＩＰ１１が第２の主記憶制御部１７を専有することができる。
【００２７】
以下、比較のため、管理部３２を用いずに、画像処理ドライバ３１のみによって割り当て処理を行う構成を図４に示す。図４では、管理部３２を用いずに、割り当てを行う場合の処理を説明するための図である。
【００２８】
画像処理ドライバ３１は、起動時にメモリ空間の先頭アドレス、及びサイズを設定される。そして、設定されたサイズを、先頭アドレスから順番に割り当ていく。この場合、第１の主記憶制御部１６、及び第２の主記憶制御部１７のどちらのアドレス空間を割り当てるかは、割り当て順に依存する。
【００２９】
例えば、ＣＰＵ１３に２回、画像処理ＩＰ１１に２回メモリ空間を割り当てる場合について説明する。画像処理ドライバ３１は、先頭アドレス０ｘ１ ００００ ００００、サイズ０ｘ２ ００００ ００００のメモリ空間を割り当てる。１回目の割り当て処理で、画像処理ドライバ３１が領域３００ａをＣＰＵ１３に割り当てる。２回目の割り当て処理で、画像処理ドライバ３１が領域３００ｂを画像処理ＩＰ１１に割り当てる。３回目の割り当て処理で、画像処理ドライバ３１が領域３０１ａをＣＰＵ１３に割り当てる。４回目の割り当て処理で、画像処理ドライバ３１が領域３０１ｂを画像処理ＩＰ１１に割り当てる。
【００３０】
ＣＰＵ１３は、アドレス範囲３００の領域３００ａと、アドレス範囲３０１の領域３０１ａを確保し、画像処理ＩＰ１１は、アドレス範囲３００の領域３００ｂと、アドレス範囲３０１の領域３０１ｂを確保する。画像処理ＩＰ１１は、特定の主記憶制御部を専有することはできない。
【００３１】
これに対して、本実施形態では、図３に示したように、ＣＰＵ１３での使用範囲に、第１の主記憶制御部１６のアドレス範囲のみを指定している。さらに、画像処理ドライバ３１が、第２の主記憶制御部１７のアドレス範囲のみを管理する管理部３２を有している。画像処理ドライバ３１は、管理部３２で割り当てたメモリアドレスを、画像処理ＩＰ１１に設定する。換言すると、割り当て範囲が、第２の主記憶部７０のアドレス範囲に含まれる場合、管理部３２が、その割り当て範囲を画像処理ＩＰ１１に割り当ている。管理部３２は、第２の主記憶部７０に対応するアドレス範囲をＣＰＵ１３の割り当てから外して、画像処理ＩＰ１１に割り当てる。これにより、画像処理ＩＰ１１は、常に、第２の主記憶制御部１７を専有することができる。
【００３２】
管理部３２は、第２の主記憶制御部１７にアクセスするアドレス範囲に関わるメモリ割り当てを管理している。管理部３２は、画像処理ドライバ３１と独立して動作する。このため、画像処理ドライバ３１がアドレス範囲と主記憶制御部の紐付けを管理していなくても、画像処理ドライバ３１のメモリ割り当て動作から、管理部３２の管理下の領域３０１ａ、及び領域３０１ｂは干渉されない。よって、第２の主記憶制御部１７を画像処理ＩＰ１１に専有させることができる。
【００３３】
これにより、画像処理ＩＰ１１の処理に十分な帯域幅を確保することができる。よって、画像処理ＩＰ１１がデータのアクセス待ち時間を低減することができる。動画再生のコマ落ちなどを防ぐことができる。
【００３４】
実施の形態２．
本実施の形態では、プロセッサシステム１０が汎用ＯＳを搭載している点で実施の形態１と異なっている。なお、プロセッサシステム１０が汎用ＯＳを搭載している点以外については、実施の形態１と同様であるため、適宜説明を省略する。例えば、半導体装置１００、及びプロセッサシステム１０の構成は、図１で示した構成と同様になっている。
【００３５】
まず、汎用ＯＳを搭載したプロセッサシステムでの生じる課題について説明する。図５は、汎用ＯＳを搭載したプロセッサシステムにおいて、メモリ空間を割り当てる処理を説明する図である。
【００３６】
汎用ＯＳ３３は、例えば、Linux（登録商標）又はWindows（登録商標）などである。汎用ＯＳ３３は、メモリ空間を割り当てる。汎用ＯＳ３３は、例えば、第１の主記憶部６０、第２の主記憶部７０のアドレス空間を汎用ＯＳ３３のアプリケーションなどに割り当てる。汎用ＯＳ３３のアプリケーションとしては、例えば、電卓などがある。画像処理ドライバ３１は、汎用ＯＳ３３の配下で動作する。
【００３７】
メモリの割り当て要求があると、汎用ＯＳ３３は、割り当て時における未割当領域を割り当て順に割り当てる。例えば、図５に示すように、領域３００ａ、領域３０１ａが割り当て済みになっており、領域３００ｂ、及び領域３０１ｂが未割り当てになっているとする。領域３００ａは、汎用ＯＳ３３の他のアプリケーションに割り当てられている。領域３０１ａは、画像処理ＩＰ１１に割り当てられている。
【００３８】
汎用ＯＳ３３は、未割当の領域３００ｂ、及び領域３０１ｂを画像処理ＩＰ１１、ＣＰＵ１３の順番で割り当てる。１回目の割り当て処理において、汎用ＯＳ３３は、空き領域である領域３００ｂを画像処理ＩＰ１１に割り当てる。２回目の割り当て処理において、汎用ＯＳ３３は、空き領域である領域３０１ｂをＣＰＵ１３に割り当てる。
【００３９】
この場合、図６に示すように、画像処理ＩＰ１１とＣＰＵ１３が第２の主記憶制御部１７を共有してしまう。したがって、ＣＰＵ１３のデータ帯域幅４２３と画像処理ＩＰ１１のデータ帯域幅４２１の合計が、第２の主記憶制御部１７のデータ帯域幅４２７を超えてしまうおそれがある。画像処理ＩＰ１１が所望のデータ帯域幅を確保することができなくなる場合がある。この場合、画像処理ＩＰ１１がデータのアクセス待ちする時間が増えて、コマ落ちするおそれがある。
【００４０】
そこで、本実施の形態では、起動時において、第２の主記憶制御部１７に紐付くアドレス範囲３０１を汎用ＯＳ３３の管理下から外している。そして、汎用ＯＳ３３とは別に、アドレス範囲３０１を管理する管理部３２を追加している。本実施の形態にかかる割り当て処理について、図７を用いて説明する。図７は、本実施の形態にかかるプロセッサシステムの制御方法を説明するための図である。
【００４１】
アドレス範囲３００の前半である領域３００ａと、アドレス範囲３０１の前半である領域３０１ａが割り当て済みである。なお、領域３００ａは、電卓などの他のアプリケーションに割り当てられている。領域３０１ａは、画像処理ＩＰ１１に割り当てられている。
【００４２】
割り当て要求があると、汎用ＯＳ３３は未割当領域に対する割り当て処理を行う。汎用ＯＳは、画像処理ドライバ３１を用いて、領域３００ｂをＣＰＵ１３に割り当てる。汎用ＯＳ３３は、画像処理ドライバ３１からのメモリ空間割り当て要求を受理して、管理を行う。汎用ＯＳ３３は、第１の主記憶部６０の少なくとも一部のアドレス範囲をＣＰＵ１３に割り当てる。管理部３２は、汎用ＯＳ３３とは別に、未割当の領域３０１ｂに対する割り当てを行う。管理部３２は、領域３０１ｂを画像処理ＩＰ１１に割り当てる。このように管理部３２はアドレス範囲３０１の割り当てを管理している。すなわち、第２の主記憶制御部１７が使用するメモリ空間を管理部３２が割り当てる。こうすることで、画像処理ＩＰ１１は第２の主記憶制御部１７を専有することができる。
【００４３】
上記のように、管理部３２は、特定の第２の主記憶制御部１７にアクセスするアドレス範囲３０１に関わるメモリ割当を管理する。そして、管理部３２は、汎用ＯＳ３３の割り当て処理とは独立して、割り当て処理を実行する。アドレス範囲と主記憶制御部の紐付けを意識していない汎用ＯＳ３３のメモリ割当動作から、管理部３２の管理下の領域３０１ａ、３０１ｂは、干渉されない。
【００４４】
汎用ＯＳ３３とその配下で動作する画像処理ドライバ３１からの制御で、管理部３２がメモリ空間を割り当てる。このことから、画像処理ドライバ３１は、汎用ＯＳ３３の配下で動作することが可能となる。よって、汎用ＯＳ３３が提供する諸機能の活用と、画像処理ＩＰ１１のデータ帯域幅確保を両立することができる。
【００４５】
図１と同様に、画像処理ＩＰ１１のデータ帯域幅１２１が第２の主記憶制御部１７のデータ帯域幅１２２に収まる。すなわち、ＣＰＵ１３のデータ帯域幅１１１が広くなった場合でも、ＣＰＵ１３の処理データが第２の主記憶制御部１７を経由することはない。画像処理ＩＰ１１とＣＰＵ１３とが同時に動作する場合であっても、画像処理ＩＰ１１が第２の主記憶制御部１７を専有することができる。画像処理ＩＰ１１が所望のデータ帯域幅を確保することができる。画像処理ＩＰ１１がデータのアクセス待ちする時間を減らすことができ、コマ落ちを防ぐことができる。
【００４６】
実施の形態３．
実施の形態２では、プロセッサシステム１０の起動時に第２の主記憶制御部１７に対応するアドレス範囲を汎用ＯＳ３３の管理下から外している。このため、画像処理ＩＰ１１の使用有無に関わらず、画像処理ＩＰ１１が第２の主記憶制御部１７を専有してしまう。つまり、画像処理ＩＰ１１を使用しない場合、第２の主記憶制御部１７のアドレス範囲は未使用となり、メモリを有効に活用できなくなってしまう。
【００４７】
そこで、本実施の形態では、画像処理ＩＰ１１の使用時のみ画像処理ＩＰ１１が第２の主記憶制御部１７を専有するようにしている。すなわち、画像処理ＩＰ１１の未使用時には、第２の主記憶制御部１７のアドレス範囲３０１がＣＰＵ１３に割り当てられる。例えば、画像処理ＩＰ１１が動作中には、第２の主記憶部７０に対応するアドレス範囲３０１（ここでは、０ｘ２ ００００ ００００〜０ｘ２ ＦＦＦＦ ＦＦＦＦの）を汎用ＯＳ３３の管理下から外している。汎用ＯＳ３３とは別に管理部３２を追加して、アドレス範囲３０１を管理部３２で管理している。
【００４８】
画像処理ＩＰ１１の使用後、アドレス範囲３０１を再び、汎用ＯＳ３３の管理下に戻す。すなわち、画像処理ＩＰ１１の処理が完了して、動作が停止したら、汎用ＯＳ３３がアドレス範囲３０１を管理する。これにより、画像処理ＩＰ１１は、動作時のみ第２の主記憶制御部１７を専有することができ、所望の帯域を確保することができる。さらに、画像処理ＩＰ１１の非動作時には、汎用ＯＳ３３がアドレス範囲３００だけでなく、アドレス範囲３０１を利用することができる。これにより、メモリをより効率よく利用することができる。
【００４９】
実施の形態３にかかるプロセッサシステムの制御方法について、図８を用いて説明する。図８は、汎用ＯＳ３３と管理部３２による第２の主記憶制御部１７の割り当て処理を説明するための図である。なお、本実施の形態では、画像処理ＩＰ１１の未使用時に、アドレス範囲３０１がＣＰＵ１３に割り当てられる点以外については、実施の形態１、２と同様であるため、適宜説明を省略する。例えば、本実施の形態に係るプロセッサシステム、及び半導体装置の基本的な構成は施の形態１、２で示したものと同様であるため、適宜説明を省略する。
【００５０】
画像処理ＩＰ１１に非動作時には、汎用ＯＳ３３が、第１の主記憶制御部１６、第２の主記憶制御部１７に紐付くアドレス範囲３００、３０１を管理する（ステップ１１）。すなわち、汎用ＯＳ３３がメモリ空間全体に対する割り当てを行う。
【００５１】
次に、画像処理ＩＰ１１が使用されると、第２の主記憶制御部１７に紐付くアドレス範囲３０１を汎用ＯＳ３３の管理下から外す。そして、管理部３２がアドレス範囲３０１を管理する（ステップ１２）。すなわち、画像処理ＩＰ１１の動作中には、第２の主記憶制御部１７に対応するアドレス範囲３０１が、画像処理ＩＰ１１に割り当てられる。このように、画像処理ＩＰ１１の動作中のみ、汎用ＯＳ３３とは別に管理部３２を追加する。
【００５２】
画像処理ＩＰ１１の使用後に、アドレス範囲３０１の管理下に戻す(ステップ１３)。すなわち、画像処理ＩＰ１１の動作が停止すると、汎用ＯＳ３３は、画像処理ＩＰ１１に割り当てられていたアドレス範囲３０１に対する割り当てを行う。これにより、画像処理IP１１の動作時のみ、画像処理ＩＰ１１が第２の主記憶制御部１７を専有することができ、所望の帯域を確保できる。
【００５３】
また、第２の主記憶制御部１７の割り当てをＣＰＵ１３から画像処理ＩＰ１１に変えるタイミングにおいて、管理部３２が既に第２の主記憶部７０に記憶されているデータを退避している。第２の主記憶部７０に記憶されているデータを退避する方法について、図９、図１０を用いて説明する。図９は、メモリである第１の主記憶部６０、及び第２の主記憶部７０の管理を模式的に示す図である。図１０は、仮想アドレスと物理アドレスとの対応を示すページテーブルを説明するための図である。
【００５４】
図９に示すように汎用ＯＳ３３は、ページ５２０という単位でメモリを管理している。すなわち、第２の主記憶部７０、第１の主記憶部６０はページ単位に分けられて割り当てられる。図９では、各ページ５２０を識別するため、ページ０、ページ１、・・・ページｎと示している。各ページ５２０は同じサイズとなっている。ページ０〜ページ（ｎ−１）が第１の主記憶制御部１６のアドレス範囲３００に対応しており、ページｎ以降が第２の主記憶制御部１７のアドレス範囲３０１に対応している。
【００５５】
さらに、汎用ＯＳ３３は、各ページ５２０を管理するための管理情報５１０を有している。管理情報５１０は、各ページの割り当て状況を示すフラグ５１１を持っている。なお、図９ではページ０、ページ１、ページｎに対応するフラグをフラグ５１１−０、５１１−１、５１１−ｎと示している。フラグ５１１は、ページ５２０に応じて、割当済み、又は未割当となる。したがって、汎用ＯＳ３３は、管理情報５１０を参照することで、割当済みのページ５２０を確認することができる。さらに、汎用ＯＳ３３は、割り当て状況に応じて、管理情報を更新する。
【００５６】
図１０に示すように、汎用ＯＳ３３はハードウェアであるＭＭＵ（Ｍｅｍｏｒｙ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）３５を使用して、物理アドレスＰＡと仮想アドレスＶＡを管理している。物理アドレスＰＡと仮想アドレスＶＡとの対応関係は、ページテーブル５３４で管理されている。例えば、ページテーブル５３４は、ページごとに、物理アドレスＰＡと仮想アドレスＶＡとのペアを格納している。例えば、ページテーブル５３４では、仮想アドレスＶＡ１が物理アドレスＰＡ１に対応している。そして、ＭＭＵ３５は、ページテーブル５３４を参照して、アドレスを変換する。
【００５７】
データの書き込み動作について説明する。ＣＰＵ１３は、仮想アドレスＶＡを指定して、データの書き込みを行う。例えば、ＣＰＵ１３は、仮想アドレスＶＡ１へのデータの書き込みを指定したとする。すると、ＭＭＵ１３は、ページテーブル５３４を参照して、仮想アドレスＶＡ１に対応する物理アドレスＰＡ１を特定する。そして、ＣＰＵ１３は、物理アドレスＰＡ１に対応する第２の主記憶制御部１７にデータを出力する。そして、第２の主記憶制御部１７が、第２の主記憶部７０の物理アドレスＰＡ１にデータを書き込む。
【００５８】
第２の主記憶部７０からのデータの読み出しについても、ＣＰＵ１３は、同様に行う。ＣＰＵ１３はデータを読み出す仮想アドレスＶＡを指定する。そして、ＭＭＵ３５がページテーブル５３４を参照して、仮想アドレスＶＡを物理アドレスＰＡに変換する。第２の主記憶制御部１７が物理アドレスＰＡのデータを読み出して、ＣＰＵ１３に出力する。
【００５９】
第２の主記憶制御部１７に対応するアドレス範囲３０１の割り当てを変更する場合、ＣＰＵ１３がページテーブル５３４を更新する。ＣＰＵ１３は、物理アドレスＰＡと仮想アドレスＶＡの対応を変えている。ＭＭＵ３５は、更新されたページテーブル５３４を用いて、仮想アドレスＶＡを物理アドレスＰＡに変換する。こうすることで、ＣＰＵ１３は仮想アドレスＶＡを指定するのみで、データの書き込み／読み出しを行うことができる。すなわち、ＣＰＵ１３は、物理アドレスを指定することなく、データの書き込み／読み出しを行うことができる。よって、複雑な処理を行うことなく、ＣＰＵ１３が適切にデータを処理することができる。
【００６０】
次に、アドレス範囲３０１の割り当てを変更するための処理について説明する。まず、図１１用いて、汎用ＯＳ３３の管理下から、アドレス範囲３０１を外す場合に方法について説明する。図１１は、アドレス範囲３０１が未割当の場合において、アドレス範囲３０１を画像処理ＩＰ１１に割り当てる処理を示している。
【００６１】
まず、ＣＰＵ１３は、アドレス範囲３０１のページに対応するフラグ５１１を参照して、アドレス範囲３０１が割当済みであるか否かを判定する（ステップ２１）。アドレス範囲３０１に対応するページ(図１１ではページｎ以降)に割り当て済みのフラグが含まれていない場合、ＣＰＵ１３は、アドレス範囲３０１が未割当であると判定する。
【００６２】
そして、管理部３２がアドレス範囲３０１に含まれる領域を汎用ＯＳ３３の管理下から外す（ステップ２２）。汎用ＯＳ３３は、アドレス範囲３０１のページに対応するフラグを割り当て済みとする。さらに、汎用ＯＳ３３は、対象ページの物理アドレスＰＡと仮想アドレスＶＡのペアをページテーブル５３４に追加する。これにより、アドレス範囲３０１が汎用ＯＳ３３の管理下から外れて、管理部３２の管理下となる。
【００６３】
次に、図１２を用いて、アドレス範囲３０１が割当済みの場合における処理を説明する。図１２は、汎用ＯＳ３３がアドレス範囲３０１を使用している場合において、アドレス範囲３０１を汎用ＯＳ３３の管理下から外す処理を示している。
【００６４】
まず、ＣＰＵ１３は、アドレス範囲３０１のページに対応するフラグを参照して、アドレス範囲３０１が割当済みであるか否かを判定する（ステップ３１）。ＣＰＵ１３は、アドレス範囲３０１の中から割当済みのページを抽出する。ここでは、ページｎが割当済みとなっている。そして、管理部３２が、アドレス範囲３００において未割当であったページ０を確保して、ページ０にページｎのデータをコピーする。これにより、アドレス範囲３０１において割当済みのページｎに書き込まれていたデータが、ページ０に書き込まれる（ステップ３２）。また、ＣＰＵ１３が管理情報を更新する。これにより、ページ０のフラグ５１１−０が割当済みとなる。
【００６５】
さらに、ＣＰＵ１３は、ページテーブルにおいて、物理アドレスＰＡｎを物理アドレスＰＡ０に書き換えて、ページテーブルを更新する。すなわち、仮想アドレスＶＡｎのペアをページｎの物理アドレスＰＡｎからページ０の物理アドレスＰＡ０に更新する。
【００６６】
ページテーブルを更新した後、アドレス範囲３０１に含まれるコピー元のページｎのフラグ５１１−ｎを未割当とする（ステップ３３）。このようにすることで、ＣＰＵ１３は、割当変更前にページｎに記憶されていたデータを、割当変更後にも使用することができる。なお、上記の説明ではページｎのデータのみをページ０にコピーしたが、アドレス範囲３０１に割り当て済みのページが複数ある場合は、全てのページのデータをアドレス範囲３００のページに退避する。すなわち、アドレス範囲３０１において割当済みのページのデータは、アドレス範囲３００において未割当のページにコピーされる。
【００６７】
なお、ステップ３３の後、アドレス範囲３０１を汎用ＯＳ３３の管理下に戻す場合は、以下のようになる。画像処理ＩＰ１１の使用後、管理部３２が管理情報のフラグを未割当に変更する。すなわち、管理部３２は、アドレス範囲３０１のページを全て未割当にする。これにより、汎用ＯＳ３３は、以降のメモリ割り当てにおいて、アドレス範囲３００のページを割り当て対象にすることができる。
【００６８】
本実施の形態では、画像処理ＩＰ１１の動作時のみ、管理部３２がアドレス範囲３０１を画像処理ＩＰ１１に割り当てている。すなわち、画像処理ＩＰ１１の非動作時には、汎用ＯＳ３３がアドレス範囲３０１を画像処理ＩＰ１１以外のＣＰＵ１３に割り当てることができる。こうすることで、メモリを効率よく利用することができ、処理時間を短縮することができる。
【００６９】
また、画像処理ＩＰ１１が非動作時から動作時に切り替わる時に、第１の主記憶部６０、及び第２の主記憶部７０の割り当て状況を示す管理情報に基づいて、管理部３２が第２の主記憶部７０に記憶されたデータを第１の主記憶部６０にコピーする。こうすることで、割当変更をした場合でも、ＣＰＵ１３が第２の主記憶部７０に記憶されていたデータを利用することができる。
【００７０】
プロセッサシステム１０が、メモリの仮想アドレスと物理アドレスとを対応付けるテーブルを参照するＭＭＵ３５をさらに備えている。ＣＰＵが仮想アドレスを指定すると、ＭＭＵ３５がテーブルを参照して、第１の主記憶部６０、及び第２の主記憶部７０に対するデータの書き込み／読み出しを行う。画像処理ＩＰ１１が非動作時から動作時に切り替わる時に、ＣＰＵ１３がテーブルを更新している。テーブルにおいて、仮想アドレスと物理アドレスの対応関係を変更するのみでよい。よって、簡便な処理で割当変更することができる。
【００７１】
実施の形態４．
本実施の形態に係るプロセッサシステムは複数の画像処理ＩＰを備えている。複数の画像処理ＩＰが同時に動作する場合、複数の画像処理ＩＰが一つの主記憶制御部を共有してしまうことがある。例えば、図１３に示すように、プロセッサシステム１０が画像処理ＩＰ１１と画像処理ＩＰ１２とを備えている。第２の主記憶制御部１７のアドレス範囲が画像処理ＩＰ１１と画像処理ＩＰ１２に割り当てられている。画像処理ＩＰ１１と画像処理ＩＰ１２が使用するデータが第２の主記憶制御部１７に偏ってしまう。
【００７２】
すると、画像処理ＩＰ１１のデータ帯域幅２２１と、画像処理ＩＰ１２のデータ帯域幅２２２との合計が、第２の主記憶制御部１７のデータ帯域幅２２７を超えてしまう。画像処理ＩＰ１１、又は画像処理ＩＰ１２が所望のデータ帯域幅を確保することができなくなる場合がある。この場合、画像処理ＩＰ１１又は画像処理ＩＰ１２がデータのアクセス待ちする時間が増えて、コマ落ちするおそれがある。
【００７３】
そこで、本実施の形態では、以下のように割り当てを変更している。図１４に本実施の形態にかかるプロセッサシステム１０を用いた半導体装置１００を示す。本実施の形態に係るプロセッサシステム１０は、画像処理ＩＰ１１と、画像処理ＩＰ１２と、ＣＰＵ１３と、ハードウェアＩＰ１５（以下、Ｈ／Ｗ  ＩＰ１５とする）と、第１の主記憶制御部１６と、第２の主記憶制御部１７とを備えている。すなわち、実施の形態１の構成に加えて、画像処理ＩＰ１２とＨ／Ｗ  ＩＰ１５が設けられている。なお、上記の実施の形態と同様の構成については適宜説明を省略する。
【００７４】
Ｈ／Ｗ  ＩＰ１５は、プロセッサシステム１０に接続されたハードウェアを制御するＩＰコアである。Ｈ／Ｗ  ＩＰ１５は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）などのハードウェアを制御する。ＣＰＵ１３を第１のプロセッサとした場合、画像処理ＩＰ１１が第２のプロセッサとなり、画像処理ＩＰ１２が第３のプロセッサとなる。画像処理ＩＰ１１、及び画像処理ＩＰ２は、符号化又は復号化等の画像処理を行う。画像処理ＩＰ１１、及び画像処理ＩＰ２における符号化、又は復号化の方式は同じであっても、異なっていてもよい。
【００７５】
本実施の形態では、画像処理ＩＰ１１と画像処理ＩＰ１２とのうち、必要なデータ帯域幅がより大きい画像処理ＩＰに第２の主記憶制御部１７を専有させている。すなわち、第２の主記憶制御部１７に割り当てる画像処理ＩＰを、動的に変更している。ここで、画像処理ＩＰ１１、及び画像処理ＩＰ１２がフレーム単位で処理を行っている。プロセッサシステム１０は、フレーム単位で、メモリ空間の割り当てを変更している。
【００７６】
図１５に示すように、画像処理ＩＰ１１、又は画像処理ＩＰ１２の処理時間８０１は、フレーム間隔８００未満でなければならない。処理時間８０１がフレーム間隔８００を超えると、コマ落ちが発生してしまう。なお、６０ｆｐｓの場合、フレーム間隔は、１６．６ｍｓｅｃである。画像処理ＩＰ１１、及び画像処理ＩＰ１２はこのフレーム間隔内に処理をしなければならない。（処理時間８０１）／（フレーム間隔８００）が、大きいものほど、処理時間短縮が必要となる。つまり、フレーム間隔８００に占める処理時間８０１の割合が大きいほど、より広いデータ帯域を割り当てることが好ましい。
【００７７】
このため、本実施の形態では、管理部３２が、毎フレーム、画像処理ＩＰの処理時間８０１を測定する。そして、管理部３２が、画像処理ＩＰ毎に、フレーム間隔８００に対する処理時間８０１の比、すなわち（処理時間８０１）／（フレーム間隔８００）を算出している。そして、フレーム間隔８００に対する処理時間８０１の比が最も大きい画像処理ＩＰに第２の主記憶制御部１７に対応するアドレス範囲３０１を割り当てている。フレーム間隔８００に対する処理時間８０１の比に基づいて、管理部３２は、メモリの割り当てを変更している。画像処理ＩＰ１１と画像処理ＩＰ１２の処理状況に応じて、割り当てを変えている。
【００７８】
メモリの割り当てを変更するケースは、汎用ＯＳ３３の管理下から管理部３２の管理下に変更するケースと、管理部３２の管理下から汎用ＯＳの管理下に変更するケースの２つがある。まず、管理部３２の管理下から汎用ＯＳ３３の管理下に変更するケースについて、図１６〜図１８を用いて説明する。図１６〜図１８は、管理部３２下から汎用ＯＳ３３の管理下に変更するケースを説明する図である。
【００７９】
まず初めは、図１６に示すように、画像処理ＩＰ１１が動作しており、画像処理ＩＰ１２が動作していない。この場合、実施の形態１、２と同様に、画像処理ＩＰ１１が第２の主記憶制御部１７を専有している。すなわち、管理部３２が第２の主記憶部７０のアドレス範囲を画像処理ＩＰ１１に割り当てている。一方、汎用ＯＳ３３は、第１の主記憶部６０のアドレス範囲を、ＣＰＵ１３、及びＨ／Ｗ  ＩＰ１５に割り当てている。
【００８０】
図１７に示すように、画像処理ＩＰ１２が動作を開始する。管理部３２が、１フレームにおける画像処理ＩＰ１１，及び画像処理ＩＰ１２の処理時間を測定する。そして、画像処理ＩＰ１１，及び画像処理ＩＰ１２のそれぞれについて、管理部３２は、（処理時間８０１）／（フレーム間隔８００）を算出する。管理部３２は、画像処理ＩＰ１１の（処理時間８０１）／（フレーム間隔８００）と画像処理ＩＰ１２の（処理時間８０１）／（フレーム間隔８００）とを比較する。（処理時間８０１）／（フレーム間隔８００）を用いることで、画像処理ＩＰ１１と画像処理ＩＰ１２とでフレーム間隔８００が異なる場合でも、適切に比較することができる。
【００８１】
ここで、画像処理ＩＰ１２は、画像処理ＩＰ１１よりも時間的制約が厳しい条件で、動作を開始する。したがって、画像処理ＩＰ１２の（処理時間８０１）／（フレーム間隔８００）は、画像処理ＩＰ１１の（処理時間８０１）／（フレーム間隔８００）よりも大きくなる。
【００８２】
管理部３２は、画像処理ＩＰ１２が第２の主記憶制御部１７を専有するように、メモリ割当を変更する。図１８に示すように、管理部３２は、画像処理ＩＰ１１の割当先を、第２の主記憶制御部１７から第１の主記憶制御部１６に変更する。したがって、ＣＰＵ１３、画像処理ＩＰ１１、及びＨ／Ｗ  ＩＰ１５が第１の主記憶制御部１６を共有する。画像処理ＩＰ１２を第２の主記憶制御部１７に割り当てる。このように、画像処理ＩＰ１１の割り当てを、管理部３２の管理下から汎用ＯＳ３３の管理下にする。また、画像処理ＩＰ１１の割り当てを管理部３２の管理下とする。したがって、画像処理ＩＰ１２が、第２の主記憶制御部１７を専有する。
【００８３】
割り当てにおいて、画像処理ＩＰ１１には、Ｈ／Ｗ  ＩＰ１５のＭＭＵ３５に紐付けられたアドレスを設定する。すなわち、画像処理ＩＰ１１には、第１の主記憶制御部１６に対応するアドレス範囲の領域が割り当てられる。管理情報に基づいて、画像処理ＩＰ１１が第２の主記憶部７０に書き込んだデータが第１の主記憶部６０にコピーされる。すなわち、実施の形態３と同様に、第１の主記憶部６０の空きページに、第２の主記憶部７０に記憶されていた画像処理ＩＰ１１の画像処理データを書き込む。これにより、第２の主記憶部７０に記憶されていた画像処理ＩＰ１１の画像処理データを第１の主記憶部６０に退避することができる。
【００８４】
そして、実施の形態３と同様に、管理情報、及びページテーブルを更新する。このようにすることで、仮想アドレスを変更しなくても、割当変更が可能になる。すなわち、ＣＰＵ１３や仮想アドレスを指定するのみで、適切なアドレスにデータを書き込むことができる
【００８５】
次に、汎用ＯＳ３３の管理下から管理部３２の管理下に変更するケースについて、図１９〜図２１を用いて説明する。図１９〜図２１は、汎用ＯＳ３３の管理下から管理部３２の管理下に変更するケースを説明する図である。
【００８６】
まず、画像処理ＩＰ１１と画像処理ＩＰ１２とが同時に動作している場合において、画像処理ＩＰ１２が第２の主記憶制御部１７を専有している。ここで、図１９に示したように、画像処理ＩＰ１２が動作を終了する。
【００８７】
管理部３２は、上記と同様に、それぞれの画像処理ＩＰについて、（処理時間８０１）／（フレーム間隔８００）を算出する。図２０に示すように、画像処理ＩＰ１１の（処理時間８０１）／（フレーム間隔８００）は、画像処理ＩＰ１２の（処理時間８０１）／（フレーム間隔８００）よりも大きくなる。すなわち、画像処理ＩＰ１２の動作が終了しているため、画像処理ＩＰ１１の時間的制約が最も厳しくなる。
【００８８】
管理部３２は、時間的制約が最も厳しい画像処理ＩＰ１１に第２の主記憶制御部１７を専有させる。すなわち、画像処理ＩＰ１１の割当を汎用ＯＳ３３の管理下から、管理部３２の管理下にする。図２１に示すように、管理部３２は、画像処理ＩＰ１１の割当先を、第１の主記憶制御部１６から第２の主記憶制御部１７に変更する。また、画像処理ＩＰ１１が第１の主記憶部６０に書き込んだデータが第２の主記憶部７０にコピーされる。すなわち、実施の形態３と同様に、第２の主記憶部７０の空きページに、第１の主記憶部６０に記憶されていた画像処理ＩＰ１１の画像処理データをコピーする。
【００８９】
そして、実施の形態３と同様に、管理情報、及びページテーブルを更新する。このようにすることで、画像処理ＩＰ１１の仮想アドレスを変更しなくても、割当変更が可能になる。すなわち、ＣＰＵ１３が仮想アドレスを指定するのみで、適切なアドレスにデータを書き込むことができる
【００９０】
このようにすることで、時間的な制約が最も厳しい画像処理ＩＰ１１が第２の主記憶制御部１７を専有する。よって、画像処理ＩＰ１１と画像処理ＩＰ１２の同時動作中において、図１４に示したように、画像処理ＩＰ１１のデータ帯域幅２２２が第２の主記憶制御部１７のデータ帯域幅２２７に収まる。
【００９１】
また、同時動作中において、画像処理ＩＰ１１は、画像処理ＩＰ１２よりは、時間的な制約が厳しくない。したがって、図１４に示すように、画像処理ＩＰ１１のデータ帯域幅２２１は、画像処理ＩＰ１２のデータ帯域幅２２２よりも狭くなる。最も広いデータ帯域幅２２２が必要な画像処理ＩＰ１２のデータが第１の主記憶制御部１６を経由しなくなる。一方、ＣＰＵ１３と画像処理ＩＰ１１のデータは、第１の主記憶制御部１６を経由する。画像処理ＩＰ１１のデータ帯域幅２２１は、狭いため、データ帯域幅２２１とＣＰＵ１３のデータ帯域幅２２３の合計を第１の主記憶制御部１６のデータ帯域幅２２６に収めることが可能になる。よって、複数の画像処理ＩＰが同時に動作した場合でも、必要な帯域幅を確保することができ、コマ落ちを防ぐことができる。なお、図１４では、Ｈ／Ｗ  ＩＰ１５のデータ帯域幅を省略している。
【００９２】
図２２を用いて、メモリの割り当て方法について説明する。図２２は、メモリの割り当て方法を示すフローチャートである。ここでは、画像処理ＩＰ１１の処理について説明するが、画像処理ＩＰ１２についても同様の処理となっている。
【００９３】
フレーム単位の処理を開始すると、まず、画像処理ＩＰ１１へ、確保領域に対する処理要求を開始する（ステップＳ１０１）。すなわち、既に割り当て済みの領域に対して、画像処理ＩＰ１１が処理を開始する。これにより、画像処理ＩＰ１１がメモリに対する画像処理データの書き込み又は読み出しを行う。そして、画像処理ＩＰ１１が処理時間のカウントを開始する（ステップＳ１０２）。すなわち、処理開始要求の時間をカウント開始時間とする。
【００９４】
画像処理ＩＰへ、確保領域に対する処理停止が要求される（ステップＳ１０３）。すなわち、画像処理ＩＰ１１が既に割り当て済みの領域に対する処理を停止する。したがって、画像処理ＩＰ１１がメモリに対するデータの書き込み又は読み出しを停止する。画像処理ＩＰ１１が処理時間のカウントを停止する（ステップＳ１０４）。すなわち、処理停止要求の時間をカウント停止時間とする。画像処理ＩＰ１１が、（処理時間８０１）／（フレーム間隔８００）を算出する（ステップＳ１０５）。
【００９５】
ＣＰＵ１３が画像処理ＩＰ１１の（処理時間８０１）／（フレーム間隔８００）を他の画像処理ＩＰの（処理時間８０１）／（フレーム間隔８００）と比較する（ステップＳ１０６）。画像処理ＩＰ１２についても同様の処理によって、（処理時間８０１）／（フレーム間隔８００）が算出されている。ＣＰＵ１３は、画像処理ＩＰ１１の（処理時間８０１）／（フレーム間隔８００）を画像処理ＩＰ１２の（処理時間８０１）／（フレーム間隔８００）と比較する。
【００９６】
そして、画像処理ＩＰ１１の（処理時間８０１）／（フレーム間隔８００）が最大となっている場合（ステップＳ１０７のＹＥＳ）、ステップＳ１０８に移行する。また、画像処理ＩＰ１１の（処理時間８０１）／（フレーム間隔８００）が最大となっていない場合（ステップＳ１０７のＮＯ）、すなわち、画像処理ＩＰ１２の（処理時間８０１）／（フレーム間隔８００）が最大となる場合、ステップＳ１１２に移行する。
【００９７】
ステップＳ１０７のＹＥＳの場合、画像処理ＩＰ１１が第２の主記憶制御部１７を専有するための処理が行われる。そのため、まず、画像処理ＩＰ１１に割り当てられた物理アドレスが、汎用ＯＳ３３から確保したアドレスであるか否かを判定する（ステップＳ１０８）。すなわち、汎用ＯＳ３３が、画像処理ＩＰ１１にメモリの割り当てを行ったか否かを判定する。
【００９８】
画像処理ＩＰ１１に割り当てられた物理アドレスが汎用ＯＳ３３から確保したアドレスである場合（ステップＳ１０８のＹＥＳ）、管理部３２が汎用ＯＳ３３から確保した物理アドレスを解放する（ステップＳ１０９）。この時、仮想アドレスはそのままとしている。管理部３２から画像処理ＩＰ１１に割り当てる物理アドレスを確保する（ステップＳ１１０）。すなわち、管理部３２が第２の主記憶部７０に対応するアドレスを確保して、画像処理ＩＰ１１に割り当てる。そして、ＣＰＵ１３が仮想アドレスと物理アドレスの紐付けを更新する（ステップＳ１１１）。すなわち、ＣＰＵ１３がページテーブルを更新する。このようにして、フレーム単位の処理を終了する。
【００９９】
また、画像処理ＩＰ１１に割り当てられた物理アドレスが、汎用ＯＳから確保したアドレスでない場合（ステップＳ１０８のＮＯ）、既に、画像処理ＩＰ１１が第２の主記憶制御部１７を専有している。すなわち、以前のフレームで、管理部３２が画像処理ＩＰ１１にアドレスを確保している。したがって、メモリの割り当てを変更せずに、画像処理ＩＰ１１が引き続き、第２の主記憶制御部１７を専有する。そして、フレーム単位の処理を終了する。
【０１００】
ステップＳ１０７のＮＯの場合、画像処理ＩＰ１１に割り当てられた物理アドレスが管理部３２から確保したアドレスであるか否かを判定する（ステップＳ１１２）。すなわち、管理部３２が、画像処理ＩＰ１１にメモリの割り当てを行ったか否かを判定する。
【０１０１】
画像処理ＩＰ１１に割り当てられた物理アドレスが管理部３２から確保したアドレスである場合（ステップＳ１１２のＹＥＳ）、汎用ＯＳ３３が管理部３２から確保した物理アドレスを解放する（ステップＳ１１３）。このとき、仮想アドレスはそのままとしている。そして、汎用ＯＳ３３から画像処理ＩＰ１１に割り当てる物理アドレスを確保する（ステップＳ１１４）。すなわち、汎用ＯＳ３３が第１の主記憶部６０に対応するアドレスを確保して、画像処理ＩＰ１１に割り当てる。そして、ＣＰＵ１３が仮想アドレスと物理アドレスの紐付けを更新する（ステップＳ１１１）。すなわち、ＣＰＵ１３がページテーブルを更新する(ステップＳ１１５)。そして、フレーム単位の処理を終了する。
【０１０２】
また、画像処理ＩＰ１１に割り当てられた物理アドレスが、管理部３２から確保したアドレスでない場合（ステップＳ１１２のＮＯ）、既に、画像処理ＩＰ１１には、第１の主記憶制御部１６に対応するアドレスが割り当てられている。すなわち、以前のフレームで、管理部３２が画像処理ＩＰ１１にアドレスを確保している。したがって、メモリの割り当てを変更せずに、引き続き、第１の主記憶制御部１６に対応するアドレスが画像処理ＩＰ１１に割り当てられる。そして、フレーム単位の処理を終了する。
【０１０３】
このように、（処理時間８０１）／（フレーム間隔８００）の比較結果に基づいて、割当を変更している。このようにすることで、最も広い帯域が必要な画像処理ＩＰが第２の主記憶制御部１７を専有することができる。すなわち、画像処理ＩＰが複数同時に動作する場合、処理時間短縮を最も必要とする画像処理ＩＰに第２の主記憶制御部１７を割り当てることが可能になる。よって、処理を高速に行うことができ、動画再生におけるコマ落ちの発生を防ぐことができる。また、フレーム毎に、図２２のフローを繰り返すことで、メモリの割り当てを画像処理ＩＰの処理状況に応じて動的に変更することができる。よって、効率よくメモリを利用することができる。
【０１０４】
画像処理ＩＰには、仮想アドレスを設定することで、割当変更が可能になる。また、フレーム毎の割り当て変更発生時、ＩＰのＭＭＵの物理アドレスのみを変更するのみでよいため、画像処理ドライバの修正なく対応可能となる。すなわち、画像処理ＩＰに設定するアドレスを変更することなく、割当変更が可能になる。
【０１０５】
上記のように、本実施形態では、１フレームにおける画像処理ＩＰ１２の処理時間が画像処理ＩＰ１１の処理時間よりも長い場合、第２の主記憶部７０に対応するアドレス範囲を画像処理ＩＰ１１の割り当てから外して、画像処理ＩＰ１２に割り当てている。こうすることで、効率的にメモリを利用することができる。
【０１０６】
また、第２の主記憶部７０に対応するアドレス範囲を画像処理ＩＰ１１の割り当てから外す時に、第１の主記憶部６０、及び第２の主記憶部７０の割り当て状況を示す管理情報に基づいて、第２の主記憶部７０に記憶されたデータを第１の主記憶部６０にコピーする。こうすることで、割り当てを変更した場合でも、第２の主記憶部７０に記憶されていた画像処理データを画像処理ＩＰ１１が利用することができる。
【０１０７】
ＭＭＵ３５は、第１の主記憶部６０、及び第２の主記憶部７０の仮想アドレスと物理アドレスとを対応付けるテーブルを参照する。ＣＰＵが前記仮想アドレスを指定すると、ＭＭＵ３５がテーブルを参照して、第１の主記憶部６０、第２の主記憶部７０のメモリに対するデータの書き込み／読み出しを行う。第２の主記憶部７０に対応するアドレス範囲を画像処理ＩＰ１１の割り当てから外す時に、ＣＰＵ１３がテーブルを更新する。テーブルにおいて、仮想アドレスと物理アドレスの対応関係を変更するのみでよい。よって、簡便な処理で割当変更することができる。
【０１０８】
なお、実施の形態４では、２つの画像処理ＩＰ１１、１２を有するプロセッサシステム１０について説明したが、３つ以上の画像処理ＩＰがプロセッサシステム１０に設けられていてもよい。この場合、３つ以上の画像処理ＩＰのそれぞれについて、（処理時間８０１）／（フレーム間隔８００）を算出する。そして、（処理時間８０１）／（フレーム間隔８００）が最大となる画像処理ＩＰに第２の主記憶制御部１７を専有させればよい。もちろん、主記憶部、及び主記憶制御部が３つ以上ある場合、２つ以上の主記憶部、及び主記憶制御部を専有させるようにしてもよい。この場合、管理部３２は、（処理時間８０１）／（フレーム間隔８００）に応じて、主記憶制御部を専有する画像処理ＩＰを２つ以上決定すればよい。
【０１０９】
さらに、画像処理ＩＰよりも必要なデータ帯域幅が大きいＨ／Ｗ  ＩＰ１５が存在する場合、画像処理ＩＰではなく、Ｈ／Ｗ  ＩＰ１５に第２の主記憶制御部１７を専有させることも可能である。すなわち、最も時間的な制約が厳しいＩＰに、第２の主記憶制御部１７を専有させることができる。こうすること、より効率的にメモリを利用することができる。
【０１１０】
例えば、Ｈ／Ｗ  ＩＰ１５がＵＳＢ等を制御するＩＰコアの場合、管理部３２は、Ｈ／Ｗ  ＩＰ１５の最大データ転送レートに対する実際のデータ転送レートの比を求める。なお、最大データ転送レートは、規格値に基づく値とする。そして、（実際のデータ転送レート）／最大データ転送レートを、（処理時間８０１）／（フレーム間隔８００）と比較する。
【０１１１】
管理部３２は、比較結果に基づいて、どのＩＰに第２の主記憶制御部１７を専有させるか決定する。画像処理ＩＰ１１、画像処理ＩＰ１２、及びＨ／Ｗ  ＩＰ１５の処理状況に応じて、第２の主記憶部７０に対応するアドレス範囲をＨ／Ｗ  ＩＰ１５に割り当てる。すなわち、帯域使用状況に応じて、最も時間的な制約が厳しいＩＰを優先して、第２の主記憶部７０のアドレス範囲を割り当てる。こうすることで、より時間的な制約が厳しいＩＰに第２の主記憶制御部１７を専有させることができる。よって、より効率よくメモリを利用することができる。
【０１１２】
上記のように、プロセッサシステム１０は、プロセッサシステム１０に接続されたハードウェアを制御するＨ／Ｗ  ＩＰ１５を備えていてもよい。画像処理ＩＰ１１、画像処理ＩＰ１２Ｈ／Ｗ  ＩＰ１５の処理状況に応じて、第２の主記憶部７０に対応するアドレス範囲をＨ／Ｗ  ＩＰ１５専用に割り当ててもよい。こうすることで、より効率よくメモリを利用することができる。
【０１１３】
なお、本実施の形態に係るプロセッサシステム１０に用いられるプロセッサは、画像処理ＩＰ１１等のイメージプロセッサに限定されるものではない。すなわち、イメージプロセッサ以外のプロセッサを複数有するプロセッサシステムにおいて、上記の方法でプロセッサに対するメモリの割当変更を行ってもよい。また、イメージプロセッサ以外のプロセッサを用いた場合において、実施の形態４に示したように、メモリの割り当てを動的に変更することも可能である。この場合、各プロセッサにおける、所定のデータ単位を処理するための時間を比較すればよい。すなわち、第１〜第３のプロセッサを備えたプロセッサシステムにおいて、第３のプロセッサの所定のデータ単位を処理するための時間が第２のプロセッサよりも長い場合、第２のメモリに対応するアドレス範囲を第２のプロセッサの割り当てから外して、第３のプロセッサに割り当てるようにすればよい。
【０１１４】
また、実施の形態１〜４の２つ以上を適宜組み合わせて用いることも可能である。例えば、実施の形態３と実施の形態４の処理を組み合わせることができる。こうすることで、より効率よくメモリを利用することができる。
【０１１５】
また、プロセッサシステム１０の半導体チップと第１の主記憶部６０の半導体チップと第２の主記憶部７０の半導体チップをパッケージに収めたシステムインパッケージとすることも可能である。
【０１１６】
上記実施の形態の一部または全部は、以下の付記のようにも記載され得るが、以下には限られない。
（付記１）
第１のメモリに対するデータの書き込み／読み出しを制御する第１のメモリコントローラと、第２のメモリに対するデータの書き込み／読み出しを制御する第２のメモリコントローラと、バスを介して、前記第１のメモリに対するデータを前記第１のメモリコントローラに入出力する第１のプロセッサと、前記バスを介して、前記第２のメモリに対する処理データを前記第２のメモリコントローラに入出力する第２のプロセッサと、前記第２のメモリに対応するアドレス範囲を前記第１のプロセッサの割り当てから外して、前記第２のプロセッサに割り当てる管理部と、を備えたプロセッサシステム。
（付記２）
汎用ＯＳが前記第１のメモリの少なくとも一部のアドレス範囲を前記第１のプロセッサに割り当て、前記汎用ＯＳの割り当てとは独立して、前記管理部が前記第２のメモリに対応するアドレス範囲を前記第２のプロセッサに割り当てる付記１に記載のプロセッサシステム。
（付記３）
前記管理部が、前記第２のメモリのアドレス範囲を前記第２のプロセッサ専用に割り当てる付記１に記載のプロセッサシステム。
（付記４）
前記第２のプロセッサの動作時には、前記管理部が前記第２のメモリのアドレス範囲を前記汎用ＯＳの管理下から外して、前記第２のプロセッサに割り当て、前記第２のプロセッサの非動作時には、前記第２のメモリのアドレス範囲を前記汎用ＯＳの管理下にする付記２に記載のプロセッサシステム。
（付記５）
前記第２のプロセッサが非動作時から動作時に切り替わる時に、前記第１及び第２のメモリの割り当て状況を示す管理情報に基づいて、前記管理部が前記第２のメモリに記憶されたデータを前記第１のメモリにコピーする付記４に記載のプロセッサシステム。
（付記６）
前記第１及び第２のメモリの仮想アドレスと物理アドレスとを対応付けるテーブルを参照するメモリ管理ユニットをさらに備え、前記第１のプロセッサが前記仮想アドレスを指定すると、前記第１及び第２のメモリに対するデータの書き込み／読み出しを行い、前記第２のプロセッサが非動作時から動作時に切り替わる時に、前記第１のプロセッサが前記テーブルを更新する付記５に記載のプロセッサシステム。
（付記７）
前記第２のプロセッサと同時に動作する第３のプロセッサをさらに備え、前記第３のプロセッサの所定のデータ単位を処理するための時間が前記第２のプロセッサよりも長い場合、前記第２のメモリに対応するアドレス範囲を前記第２のプロセッサの割り当てから外して、前記第３のプロセッサに割り当てる付記２に記載のプロセッサシステム。
（付記８）
前記第２のメモリに対応するアドレス範囲を前記第２のプロセッサの割り当てから外す時に、前記第１及び第２のメモリの割り当て状況を示す管理情報に基づいて、前記管理部が前記第２のメモリに記憶されたデータを前記第１のメモリにコピーする付記７に記載のプロセッサシステム。
（付記９）
前記第１及び第２のメモリの仮想アドレスと物理アドレスとを対応付けるテーブルを参照するメモリ管理ユニットをさらに備え、前記第１のプロセッサが前記仮想アドレスを指定することで、前記第１及び第２のメモリに対するデータの書き込み／読み出しを行い、前記第２のメモリに対応するアドレス範囲を第２のプロセッサの割り当てから外す時に、前記第１のプロセッサが前記テーブルを更新する付記８に記載のプロセッサシステム。
（付記１０）
前記プロセッサシステムに接続されたハードウェアを制御するハードウェアＩＰをさらに備え、前記第２のプロセッサ、前記第３のプロセッサ、及び前記ハードウェアＩＰの処理状況に応じて、前記第２のメモリに対応するアドレス範囲をハードウェアＩＰに割り当てる付記７に記載のプロセッサシステム。
（付記１１）
付記１に記載のプロセッサシステムと、前記第１のメモリコントローラによって、データの書き込み／読み出しが制御される第１のメモリと、前記第２のメモリコントローラによって、データの書き込み／読み出しが制御される第２のメモリと、を備えた半導体装置。
（付記１２）
第１のメモリに対するデータの書き込み／読み出しを制御する第１のメモリコントローラと、第２のメモリに対するデータの書き込み／読み出しを制御する第２のメモリコントローラと、バスを介して、前記第１のメモリに対するデータを前記第１のメモリコントローラに入出力する第１のプロセッサと、前記バスを介して、前記第２のメモリに対する処理データを前記第２のメモリコントローラに入出力する第２のプロセッサと、を備えたプロセッサシステムの制御方法であって、前記第２のメモリに対応するアドレス範囲を前記第１のプロセッサの割り当てから外して、前記第２のプロセッサに割り当てるステップと、を備えたプロセッサシステムの制御方法。
（付記１３）
汎用ＯＳが前記第１のメモリの少なくとも一部のアドレス範囲を前記第１のプロセッサに割り当て、前記汎用ＯＳの割り当てとは独立して、前記第２のメモリに対応するアドレス範囲を前記第２のプロセッサに割り当てる付記１２に記載のプロセッサシステムの制御方法。
（付記１４）
前記第２のメモリのアドレス範囲を前記第２のプロセッサ専用に割り当てる付記１２に記載のプロセッサシステムの制御方法。
（付記１５）
前記第２のプロセッサの動作時には、前記第２のメモリのアドレス範囲を前記汎用ＯＳの管理下から外して、前記第２のプロセッサに割り当て、
前記第２のプロセッサの非動作時には、前記第２のメモリのアドレス範囲を前記汎用ＯＳの管理下にする付記１３に記載のプロセッサシステムの制御方法。
（付記１６）
前記第２のプロセッサが非動作時から動作時に切り替わる時に、前記第１及び第２のメモリの割り当て状況を示す管理情報に基づいて、前記第２のメモリに記憶されたデータを前記第１のメモリにコピーする付記１５に記載のプロセッサシステムの制御方法。
（付記１７）
前記第１及び第２のメモリの仮想アドレスと物理アドレスとを対応付けるテーブルを参照するメモリ管理ユニットをさらに備え、前記第１のプロセッサが前記仮想アドレスを指定すると、前記第１及び第２のメモリに対するデータの書き込み／読み出しを行い、前記第２のプロセッサが非動作時から動作時に切り替わる時に、前記第１のプロセッサが記テーブルを更新する付記１６に記載のプロセッサシステムの制御方法。
（付記１８）
前記プロセッサシステムが前記第２のプロセッサと同時に動作する第３のプロセッサをさらに備え、前記第３のプロセッサが所定のデータ単位を処理するための時間が前記第２のプロセッサよりも長い場合、前記第２のメモリに対応するアドレス範囲を前記第２のプロセッサの割り当てから外して、前記第３のプロセッサに割り当てる付記１３に記載のプロセッサシステムの制御方法。
（付記１９）
前記第２のメモリに対応するアドレス範囲を前記第２のプロセッサの割り当てから外す時に、前記第１及び第２のメモリの割り当て状況を示す管理情報に基づいて、前記第２のメモリに記憶されたデータを前記第１のメモリにコピーする付記１８に記載のプロセッサシステムの制御方法。
（付記２０）
前記第１及び第２のメモリの仮想アドレスと物理アドレスとを対応付けるテーブルを参照するメモリ管理ユニットをさらに備え、前記第１のプロセッサが前記仮想アドレスを指定することで、前記第１及び第２のメモリに対するデータの書き込み／読み出しを行い、前記第２のメモリに対応するアドレス範囲を第２のプロセッサの割り当てから外す時に、前記第１のプロセッサが前記テーブルを更新する付記１９に記載のプロセッサシステムの制御方法。
（付記２１）
前記プロセッサシステムに接続されたハードウェアを制御するハードウェアＩＰをさらに備え、前記第２のプロセッサ、前記第３のプロセッサ、及び前記ハードウェアＩＰの処理状況に応じて、前記第２のメモリに対応するアドレス範囲をハードウェアＩＰ専用に割り当てる付記１８に記載のプロセッサシステムの制御方法。
【０１１７】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【０１１８】
１０  プロセッサシステム
１１  画像処理ＩＰ
１２  画像処理ＩＰ
１３  ＣＰＵ
１４  バス
１５  Ｈ／Ｗ  ＩＰ
１６  第１の主記憶制御部
１７  第２の主記憶制御部
３１  画像処理ドライバ
３２  管理部
３３  汎用ＯＳ
６０  第１の主記憶部
７０  第２の主記憶部
【図１】
2015148921.tif 000003
【図２】
2015148921.tif 000004
【図３】
2015148921.tif 000005
【図４】
2015148921.tif 000006
【図５】
2015148921.tif 000007
【図６】
2015148921.tif 000008
【図７】
2015148921.tif 000009
【図８】
2015148921.tif 000010
【図９】
2015148921.tif 000011
【図１０】
2015148921.tif 000012
【図１１】
2015148921.tif 000013
【図１２】
2015148921.tif 000014
【図１３】
2015148921.tif 000015
【図１４】
2015148921.tif 000016
【図１５】
2015148921.tif 000017
【図１６】
2015148921.tif 000018
【図１７】
2015148921.tif 000019
【図１８】
2015148921.tif 000020
【図１９】
2015148921.tif 000021
【図２０】
2015148921.tif 000022
【図２１】
2015148921.tif 000023
【図２２】
2015148921.tif 000024