(57)【要約】【課題】  ＣＰＵとアクセラレータが連携して動作する際に発生するメモリアクセスでのデータ連携によるボトルネックを最小限に抑えて、マルチメディア処理性能を高めることができるマイコンを提供する。【解決手段】  ＣＰＵ１１とアクセラレータ１２を有し、ＣＰＵ１１とアクセラレータ１２が連携してマルチメディア処理を行うマルチメディアマイコン１において、ＣＰＵ１１とアクセラレータ１２間のデータ連携がメモリ２を介して行うために発生するメモリアクセスによるボトルネックを解消するために、メモリ２の手前に、ＣＰＵ１１とアクセラレータ１２が共通にアクセス可能なＩ／Ｏ専用キャッシュ１４を設け、データ連携に必要なデータをＩ／Ｏ専用キャッシュ１４で保持することで、ＣＰＵ１１とアクセラレータ１２間のデータ連携を高速化し、マルチメディア処理の高速化を実現する。【選択図】  図１
2006065850.tif 000002
【特許請求の範囲】
【請求項１】
マスタとして動作するＣＰＵと、
スレーブとして動作するアクセラレータとを有し、
前記ＣＰＵおよび前記アクセラレータからメモリをアクセス可能なマイクロコンピュータであって、
前記ＣＰＵおよび前記アクセラレータが前記メモリに対してアクセスするデータは、前記ＣＰＵおよび前記アクセラレータが互いにやり取りする第１データと、前記第１データを除く第２データとから構成され、
前記第１データと前記第２データとのうち、前記第１データを保持するキャッシュ手段を有することを特徴とするマイクロコンピュータ。
【請求項２】
請求項１記載のマイクロコンピュータにおいて、
前記キャッシュ手段は、前記ＣＰＵおよび前記アクセラレータから前記メモリへのライトアクセス要求の際に、前記ライトアクセス要求のデータを保持するかどうかを判定する機能を有することを特徴とするマイクロコンピュータ。
【請求項３】
請求項２記載のマイクロコンピュータにおいて、
前記アクセラレータは、前記メモリへライトアクセスする際に、前記キャッシュ手段に対して保持要求を出す機能を有することを特徴とするマイクロコンピュータ。
【請求項４】
請求項３記載のマイクロコンピュータにおいて、
前記キャッシュ手段は、前記アクセラレータからの前記メモリへのライトアクセスの際に出力される保持要求により、前記アクセラレータから出力されるデータを保持するかどうかを判定する機能を有することを特徴とするマイクロコンピュータ。
【請求項５】
請求項２記載のマイクロコンピュータにおいて、
前記キャッシュ手段は、前記ＣＰＵおよび前記アクセラレータからの前記メモリへのライトアクセスの際に、前記ＣＰＵおよび前記アクセラレータから出力されるアドレスにより前記データを保持するかどうかを判定する機能を有することを特徴とするマイクロコンピュータ。
【請求項６】
請求項１記載のマイクロコンピュータにおいて、
前記キャッシュ手段は、前記アクセラレータから前記メモリへのリードアクセス要求の際に、前記キャッシュ手段が前記リードアクセス要求のデータを保持している場合には、前記キャッシュ手段が前記データを前記アクセラレータに出力する機能を有することを特徴とするマイクロコンピュータ。
【請求項７】
請求項１記載のマイクロコンピュータにおいて、
前記ＣＰＵおよび前記アクセラレータからの前記メモリへのアクセスを制御するメモリコントローラを有し、
前記ＣＰＵおよび前記アクセラレータからのアクセス要求に対して優先順位を持ち、
前記メモリコントローラは、前記優先順位に従って前記ＣＰＵおよび前記アクセラレータからのアクセス要求を処理する機能を有することを特徴とするマイクロコンピュータ。
【請求項８】
請求項７記載のマイクロコンピュータにおいて、
前記メモリは、ＳＤＲＡＭまたはＤＤＲ−ＳＤＲＡＭであり、
前記メモリコントローラは、前記ＣＰＵおよび前記アクセラレータからのアクセス要求に対して、前記メモリの同一バンクおよび同一ローアドレスに対するアクセスを連続して行う機能を有することを特徴とするマイクロコンピュータ。
【請求項９】
請求項８記載のマイクロコンピュータにおいて、
前記メモリコントローラは、前記ＣＰＵおよび前記アクセラレータからのアクセス要求のうち、同一アドレスへのアクセスに対し、依存関係を管理して前記メモリへのアクセスの一貫性を保つ機能を有することを特徴とするマイクロコンピュータ。
【請求項１０】
請求項１記載のマイクロコンピュータにおいて、
前記メモリは、前記マイクロコンピュータの外部に有することを特徴とするマイクロコンピュータ。
【請求項１１】
請求項１記載のマイクロコンピュータにおいて、
前記メモリは、前記マイクロコンピュータの内部に有することを特徴とするマイクロコンピュータ。
【請求項１２】
請求項１記載のマイクロコンピュータにおいて、
前記ＣＰＵは、内部にキャッシュを有することを特徴とするマイクロコンピュータ。
【請求項１３】
請求項１２記載のマイクロコンピュータにおいて、
前記マイクロコンピュータは、外部のメモリと接続され、
前記外部のメモリには、プログラムまたはワークエリアの領域が形成されることを特徴とするマイクロコンピュータ。
【請求項１４】
請求項１３記載のマイクロコンピュータにおいて、
前記外部のメモリには、前記アクセラレータのデータ領域が形成されることを特徴とするマイクロコンピュータ。
【請求項１５】
請求項１２記載のマイクロコンピュータにおいて、
前記ＣＰＵの内部の前記キャッシュは、スヌープ機能を持つことを特徴とするマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータ（以下、単にマイコンと称する）に関し、特に、ＣＰＵによる処理以外にアクセラレータなどの補助回路を有する通信及びマルチメディア処理を行うマイコンに適用して有効な技術に関する。
【背景技術】
【０００２】
本発明者が検討したところによれば、マルチメディア処理を行うマイコンに関しては、以下のような技術が考えられる。
【０００３】
たとえば、マルチメディア処理を行うマイコンでは、マルチメディア処理の性能を上げるため、ＣＰＵのほかにＣＰＵを補助するアクセラレータを内蔵している。このアクセラレータは、特にＣＰＵが不得意な時間のかかる処理をハードウエアで高速処理すると共に、ＣＰＵとアクセラレータとで共同作業（以下、データ連携と称する）を行うことで、マルチメディア処理を効率よく高速化している。
【０００４】
また、ＣＰＵやアクセラレータには、メモリアクセス待ちによる処理低下、つまりボトルネックを防ぐため、キャッシュを内蔵している。そのため、メモリの内容が他のアクセラレータにより変更された場合、ＣＰＵのキャッシュ内のデータとメモリ内のデータとの不一致を解消するために、キャッシュ内の当該データを破棄し、再びＣＰＵが当該アドレスをアクセスすると、メモリから当該データをキャッシュに読み込まれるようにすることで、キャッシュとメモリ間のデータの一致、つまりキャッシュコヒーレンシを維持している。
【０００５】
したがって、ＣＰＵやアクセラレータにキャッシュが内蔵されていても、ＣＰＵとアクセラレータ間のデータ連携は、キャッシュによる恩恵はなく、メモリを直接アクセスして行われる。
【０００６】
たとえば、ＣＰＵやアクセラレータからメモリにアクセスするための技術として、特許文献１および特許文献２などが挙げられる。特許文献１には、アクセラレータがメモリに速くアクセスすることを可能とした技術が開示されている。また、特許文献２には、ＣＰＵがメモリに対して速くアクセスすることを可能とした技術が開示されている。
【特許文献１】特開平１１−１６１５９８号公報
【特許文献２】特開２００１−２１６１９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、前記のようなマルチメディア処理を行うマイコンに関して、本発明者が検討した結果、以下のようなことが明らかとなった。
【０００８】
たとえば、近年、半導体製造技術の進歩により、マルチメディア処理システムは、システムＬＳＩ化により、１チップ内に複数のアクセラレータが搭載されると共に、アクセラレータ自体もＣＰＵ並みに高速化している。
【０００９】
そのため、メモリへの負荷が高まると共に、アクセス速度の高速化が重要になってきた。ここで重要になるのは、メモリに書き込まれたデータを読み出す速度、つまりレイテンシである。しかし、ＳＤＲＡＭやＤＤＲ−ＳＤＲＡＭでは、メモリアクセスのスループット向上は実現したものの、コマンド投入に伴うオーバーヘッドが大きく、レイテンシは低下している。
【００１０】
したがって、ＣＰＵとアクセラレータ間でデータ連携を行う際には、ＣＰＵはアクセラレータの処理待ちもさりながら、アクセラレータが処理したデータがメモリに書き込まれてから、ＣＰＵが当該データをメモリから読み出されるまでＣＰＵが待機してしまうメモリアクセス待ちになってしまう。つまり、マルチメディア処理がＣＰＵやアクセラレータに比べて遅いメモリに律速される現象が起こってきている。さらに、半導体製造技術の進歩による集積度の向上のため、１チップ内に複数のアクセラレータが内蔵されるようになり、ＣＰＵと複数のアクセラレータ間でデータ連携が起こると、ますますＣＰＵはメモリ待ちによる処理速度低下の影響が大きくなってしまう。
【００１１】
そこで、本発明の目的は、ＣＰＵとアクセラレータが連携して動作する際に発生するメモリアクセスでのデータ連携によるボトルネックを最小限に抑えて、マルチメディア処理性能を高めることができるマイコンを提供することにある。
【００１２】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１３】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１４】
本発明は、マスタとして動作するＣＰＵと、スレーブとして動作するアクセラレータとを有し、ＣＰＵおよびアクセラレータからメモリをアクセス可能なマイコンに適用され、以下のような特徴を有するものである。
【００１５】
すなわち、本発明のマイコンにおいて、ＣＰＵおよびアクセラレータがメモリに対してアクセスするデータは、ＣＰＵおよびアクセラレータが互いにやり取りする連携データと、これを除くデータ本体とから構成され、これらのうち、連携データを保持するＩ／Ｏ専用キャッシュを有するものである。
【００１６】
また、本発明のマイコンにおいて、Ｉ／Ｏ専用キャッシュは、ＣＰＵおよびアクセラレータからメモリへのライトアクセス要求の際に、ライトアクセス要求のデータを保持するかどうかを判定する機能を有する。さらに、アクセラレータは、メモリへライトアクセスする際に、Ｉ／Ｏ専用キャッシュに対して保持要求を出す機能を有する。さらに、Ｉ／Ｏ専用キャッシュは、アクセラレータからのメモリへのライトアクセスの際に出力される保持要求により、アクセラレータから出力されるデータを保持するかどうかを判定する機能を有する。また、Ｉ／Ｏ専用キャッシュは、ＣＰＵおよびアクセラレータからのメモリへのライトアクセスの際に、ＣＰＵおよびアクセラレータから出力されるアドレスによりデータを保持するかどうかを判定する機能を有するものである。
【００１７】
また、本発明のマイコンにおいて、Ｉ／Ｏ専用キャッシュは、アクセラレータからメモリへのリードアクセス要求の際に、Ｉ／Ｏ専用キャッシュがリードアクセス要求のデータを保持している場合には、Ｉ／Ｏ専用キャッシュがデータをアクセラレータに出力する機能を有するものである。
【００１８】
また、本発明のマイコンにおいて、ＣＰＵおよびアクセラレータからのメモリへのアクセスを制御するメモリコントローラを有し、ＣＰＵおよびアクセラレータからのアクセス要求に対して優先順位を持ち、メモリコントローラは、優先順位に従ってＣＰＵおよびアクセラレータからのアクセス要求を処理する機能を有する。さらに、メモリがＳＤＲＡＭまたはＤＤＲ−ＳＤＲＡＭであり、メモリコントローラは、ＣＰＵおよびアクセラレータからのアクセス要求に対して、メモリの同一バンクおよび同一ローアドレスに対するアクセスを連続して行う機能を有する。さらに、メモリコントローラは、ＣＰＵおよびアクセラレータからのアクセス要求のうち、同一アドレスへのアクセスに対し、依存関係を管理してメモリへのアクセスの一貫性を保つ機能を有するものである。
【００１９】
また、本発明のマイコンにおいて、メモリは、マイコンの外部に有するものである。あるいは、メモリは、マイコンの内部に有するものである。
【００２０】
具体的に、本発明のマイコンは、ＣＰＵとアクセラレータを有し、ＣＰＵとアクセラレータが連携してマルチメディア処理を行うマルチメディアマイコンにおいて、ＣＰＵとアクセラレータ間のデータ連携がメモリを介して行うために発生するメモリアクセスによるボトルネックを解消するために、メモリの手前に、ＣＰＵとアクセラレータが共通にアクセス可能なＩ／Ｏ専用キャッシュを設け、データ連携に必要な連携データをＩ／Ｏ専用キャッシュで保持することで、ＣＰＵとアクセラレータ間のデータ連携を高速化し、マルチメディア処理の高速化を実現するものである。
【００２１】
また、本発明のマイコンにおいて、ＣＰＵは、内部にキャッシュを有するものである。
【００２２】
また、本発明のマイコンにおいて、マイコンは外部のメモリと接続され、この外部のメモリには、プログラムまたはワークエリアの領域が形成されるものである。また、外部のメモリには、アクセラレータのデータ領域が形成されるものである。
【００２３】
また、本発明のマイコンにおいて、ＣＰＵの内部のキャッシュは、スヌープ機能を持つものである。
【発明の効果】
【００２４】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００２５】
本発明によれば、ＣＰＵとアクセラレータが連携して動作する際に発生するメモリアクセスでのデータ連携によるボトルネックを最小限に抑えることができるので、マルチメディア処理性能を高めることが可能となる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の機能を有する部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２７】
図１〜図３を用いて、本発明の一実施の形態に係るマルチメディアマイコンの構成及び動作の一例を説明する。図１は、マルチメディアマイコンを示す構成図である。図２は、メモリの構成を示す図である。図３は、別のマルチメディアマイコンを示す構成図である。
【００２８】
図１に示すように、本実施の形態のマルチメディアマイコン１は、マスタとして動作するＣＰＵ１１と、スレーブとして動作する複数のアクセラレータ１２（１２−１〜１２−ｎ）と、本発明の特徴であるＩ／Ｏ専用キャッシュ１４と、これらを接続するバス１３と、メモリコントローラ１５から構成されている。このマルチメディアマイコン１の外部に、メモリ２が接続されている。
【００２９】
アクセラレータ１２は、ＣＰＵ１１を補助する役目を持ち、ＣＰＵ１１が不得意な時間のかかる処理をハードウエアで高速に実行する機能を持つ。また、メモリコントローラ１５は、Ｉ／Ｏ専用キャッシュ１４とメモリ２とに接続され、バス１３及びＩ／Ｏ専用キャッシュ１４を介してから来るメモリアクセス要求に対し、メモリ２に対して、ＳＤＲＡＭまたはＤＤＲ−ＳＤＲＡＭコマンドを出してアクセスを行う機能を持つ。
【００３０】
図２に示すように、メモリ２には、ＣＰＵ１１で実行されるマルチメディア処理に関する一連の手続き処理を記述したプログラム２１と、ワークエリア２２と、さらには、アクセラレータ１２毎に処理するデータを格納するデータ領域２３（２３−１〜２３−ｎ）がある。また、複数のアクセラレータ１２間で共通のデータ領域２３をアクセスすることもある。
【００３１】
図３に示すように、本実施の形態のマルチメディアマイコンにおいては、前記図１のようにメモリ２を外部に接続する構成の他に、メモリ２を内部に設けて、このメモリ２と、ＣＰＵ１１、複数のアクセラレータ１２（１２−１〜１２−ｎ）、Ｉ／Ｏ専用キャッシュ１４、バス１３、及びメモリコントローラ１５が一体型となったマルチメディアマイコン１０とすることも可能である。
【００３２】
続いて、前記図１に示したマルチメディアマイコン１において、Ｉ／Ｏ専用キャッシュ１４がＯＦＦの場合の動作について説明する。なお、図３に示したマルチメディアマイコン１０においても同様である。
【００３３】
ＣＰＵ１１は、バス１３、Ｉ／Ｏ専用キャッシュ１４、メモリコントローラ１５を介し、メモリ２からプログラム２１及びワークエリア２２、データ領域２３内のデータをアクセスして処理を行う。このとき、ＣＰＵ１１はプログラム２１に従い、アクセラレータ１２で処理すべきデータをデータ領域２３へセットし、アクセラレータ１２へ処理要求し、アクセラレータ１２での処理結果をデータ領域２３から読み出しを行うことにより、ＭＰＥＧやＭＰ３をはじめとしたマルチメディア処理が実現される。
【００３４】
このように、マルチメディアマイコン１では、ＣＰＵ１１とアクセラレータ１２間でメモリ２内のデータ領域２３を介したデータ連携を行い、マルチメディア処理が実行される。そのため、ＣＰＵ１１やアクセラレータ１２の処理速度に比べ、アクセス速度の遅いメモリ２がマルチメディア処理におけるボトルネックとなり、マルチメディア処理性能の向上が難しくなってきた。そこで、本実施の形態では、後述するように、ＣＰＵ１１とアクセラレータ１２間のデータのやり取りをスムーズに行うことで、マルチメディア処理の高速化を実現することが可能となる。
【００３５】
すなわち、前記図１に示すように、Ｉ／Ｏ専用キャッシュ１４をメモリコントローラ１５側に置き、ＣＰＵ１１及びアクセラレータ１２の双方からアクセスできるようにし、ＣＰＵ１１とアクセラレータ１２間での連携データを保持する。これにより、ＣＰＵ１１とアクセラレータ１２間のデータ連携を、より高速にアクセス可能なＩ／Ｏ専用キャッシュ１４にて行い、メモリアクセス待ちによるオーバーヘッドを大幅に削減し、スムーズなマルチメディア処理の実行を実現する。
【００３６】
また、ＣＰＵ１１とアクセラレータ１２でのデータ連携に必要なデータは、アクセラレータ１２で処理させるすべてのデータではなく、ヘッダやアクセラレータ１２へのコマンドなどのみの一部であることに注目し、Ｉ／Ｏ専用キャッシュ１４は連携に必要なデータである連携データのみを保持し、ＣＰＵ１１のみ、アクセラレータ１２のみで処理するデータであるデータ本体は、Ｉ／Ｏ専用キャッシュ１４ではなく、メモリ２上に置くことで、Ｉ／Ｏ専用キャッシュ１４に保持するデータ量を抑え、Ｉ／Ｏ専用キャッシュ１４の有効利用及びヒット率の向上を実現する。
【００３７】
ここで注目すべきは、Ｉ／Ｏ専用キャッシュ１４が保持すべき連携データは、必ずＣＰＵ１１かアクセラレータ１２により、メモリ２に書き込まれるデータである。従って、Ｉ／Ｏ専用キャッシュ１４は、メモリ２へのライトアクセスに対してのみキャッシュするか否かの判定を行えば良く、この判定には、当該ライトアクセスのアドレスを用いる方法と、Ｉ／Ｏ専用キャッシュ１４へのキャッシュ要求信号を用いる方法の２通りが存在する。なお、ＣＰＵ１１からのライトアクセスにおけるキャッシュ判定は、アドレスを用いた判定を、また、アクセラレータ１２からのライトアクセスにおけるキャッシュ判定は、アドレスを用いた判定及びキャッシュ要求信号による判定の両方を用いることができる。
【００３８】
一方、メモリ２へのリードに関しては、ヒットすればＩ／Ｏ専用キャッシュ１４から当該データを出力するが、キャッシュミスの場合、Ｉ／Ｏ専用キャッシュ１４はメモリ２へ当該アクセスを通すのみとし、メモリ２からのリードデータをキャッシュすることはしない。これは、ＣＰＵ１１及びアクセラレータ１２が専用のキャッシュまたはバッファをもっており、この専用のキャッシュまたはバッファで、メモリ２からのリードデータが保持されるためである。さらに、バス１３がスプリットバスである場合に対応するため、Ｉ／Ｏ専用キャッシュ１４は、キャッシュミスを起こし、メモリ２にリードアクセス中であっても、次のアクセス要求に対して、キャッシュヒットの場合には、当該ヒットデータをバス１３に出力する機能が必要となる。この点が、Ｉ／Ｏ専用キャッシュ１４が従来のキャッシュ及びバッファと大きく異なる所となる。
【００３９】
また、もうひとつの特徴は、Ｉ／Ｏ専用キャッシュ１４はキャッシュであり、ＣＰＵ１１で実行されるプログラム２１は、このＩ／Ｏ専用キャッシュ１４の存在を意識することなく、メモリ２へのアクセスとして処理できる点である。
【００４０】
さらに、メモリ２へのアクセス効率を向上させるため、Ｉ／Ｏ専用キャッシュ１４では、ＣＰＵ１１やアクセラレータ１２から要求されるアクセスサイズが、メモリ２のアクセスサイズより小さい場合、本Ｉ／Ｏ専用キャッシュ１４を用いてまとめてメモリ２とアクセスすることで、メモリ２へのアクセス回数を削減し、メモリ待ちによるボトルネックを削減することが可能となる。
【００４１】
次に、図４を用いて、マルチメディアマイコンで実行されるマルチメディア処理の流れの一例を説明する。図４は、マルチメディア処理の流れを示す図である。
【００４２】
図４に示すように、マルチメディアマイコン１では、ＣＰＵ１１とアクセラレータ１２とが連携してマルチメディア処理を行い、ＣＰＵ１１にて実行される処理（１０００）と、アクセラレータ１２にて実行される処理（１１００）に区別される。ＣＰＵ１１にて実行されるマルチメディア処理は、前処理（１００１）と後処理（１００９）の２つがあり、それぞれ、アクセラレータ１２による処理（１００５）の前後に行う。
【００４３】
まず、ＣＰＵ１１が前処理（１００１）を行うと、ＣＰＵ１１はアクセラレータ１２に当該データを渡すために、データ領域２３に書き込み（１００２）、アクセラレータ１２に対して、起動要求を出す（１００３）。それを受け、アクセラレータ１２は、データ領域２３からデータを読み出し（１００４）、アクセラレータ１２で処理を行い（１００５）、処理結果をデータ領域２３に書き戻し（１００６）、その後に、ＣＰＵ１１に対して処理終了報告を上げる（１００７）。そして、ＣＰＵ１１は、アクセラレータ１２からの処理終了報告を受けると、アクセラレータ１２による処理結果をデータ領域２３から読み込み（１００８）、後処理を行う（１００９）。また、処理内容によっては、前処理（１００１）がなく、アクセラレータ１２から処理が開始される場合や、後処理（１００９）がなく、アクセラレータ１２による処理で終了するものもある。
【００４４】
このように、ＣＰＵ１１とアクセラレータ１２がデータ領域２３を介してデータ連携を行い、マルチメディア処理を実行している。
【００４５】
次に、図５及び図６を用いて、前記図４を参照しながら、Ｉ／Ｏ専用キャッシュを用いたマルチメディア処理のデータの流れの一例を説明する。図５及び図６は、マルチメディア処理のデータの流れを示す図であり、図５は図４における前処理（１００１）からアクセラレータ処理（１００５）までの処理、図６は図４における処理結果セット（１００６）から後処理（１００９）までの処理をそれぞれ示したものである。
【００４６】
まず、図５に示すように、ＣＰＵ１１は前処理（１００１）を行い、その結果データをアクセラレータ１２で処理させるために、データ領域２３に書き込む（１００２，１０１）。このとき、Ｉ／Ｏ専用キャッシュ１４は、ＣＰＵ１１からのデータ領域２３への当該書き込みデータをキャッシュすると共に、メモリ２内のデータ領域２３に当該書き込みデータを書き込む（１０２）。この際に、Ｉ／Ｏ専用キャッシュ１４は、キャッシュすべきデータであるかは、ＣＰＵ１１から書き込みデータと共に出力される書き込み先のアドレスにより、データ領域２３であるかどうかにより判断する。
【００４７】
その後、ＣＰＵ１１は、アクセラレータ１２に対して起動要求信号を出力する（１００３）。それを受けて、アクセラレータ１２は起動し、データ領域２３から当該データを読み込む（１００４）。このとき、Ｉ／Ｏ専用キャッシュ１４上に当該書き込みデータがキャッシュされている部分の連携データは、Ｉ／Ｏ専用キャッシュ１４から読み出し（１０３）、Ｉ／Ｏ専用キャッシュ１４にキャッシュされていない部分のデータ本体は、メモリ２のデータ領域２３から直接読み出し（１０４）、アクセラレータ１２は読み出された当該データに対して処理（１００５）を行う。
【００４８】
続いて、図６に示すように、アクセラレータ１２による処理（１００５）が終わると、処理結果をデータ領域２３に書き戻す（１００６，１１１）。このとき、Ｉ／Ｏ専用キャッシュ１４は、アクセラレータ１２からデータ領域２３への書き込みデータをキャッシュすると共に、メモリ２内のデータ領域２３に当該処理データを書き込む（１１２）。この際に、Ｉ／Ｏ専用キャッシュ１４は、アクセラレータ１２から当該処理データと共に出力されるキャッシュ要求信号または書き込み先のアドレスにより、キャッシュすべきデータであるかどうかを判定する。
【００４９】
その後、アクセラレータ１２からの処理終了報告（１００７）を受け、ＣＰＵ１１は、当該処理データをデータ領域２３から読み出す（１００８）。このとき、ＣＰＵ１１が処理するデータは、Ｉ／Ｏ専用キャッシュ１４上に当該処理データがキャッシュされている部分の連携データであるため、Ｉ／Ｏ専用キャッシュ１４から読み出す（１１３）だけで、ＣＰＵ１１は後処理（１００９）ができる。この際に、Ｉ／Ｏ専用キャッシュ１４の容量の関係でキャッシュされていない部分が存在した場合のみ、メモリ２のデータ領域２３から読み出す（１１４）。
【００５０】
このように、メモリ２よりもアクセスレイテンシが短い高速なＩ／Ｏ専用キャッシュ１４を介して、ＣＰＵ１１とアクセラレータ１２がデータ連携を行うことで、メモリ２内のデータ領域２３を介したデータ連携に比べて、オーバーヘッドとなるアクセス待ち時間を大幅に削減でき、マルチメディア処理の高速化が実現される。
【００５１】
さらに、ＣＰＵ１１が後処理を行う場合、ＣＰＵ１１がアクセラレータ１２による処理データをすべて読み出すことは少ないことに注目し、当該処理データをメモリ２に書き込む際に、ＣＰＵ１１が読み出すデータである連携データの部分をＩ／Ｏ専用キャッシュ１４にキャッシュし、それ以外のデータ本体は、Ｉ／Ｏ専用キャッシュ１４上にキャッシュせず、メモリ２内のデータ領域２３に直接書き込む。
【００５２】
また、アクセラレータ１２にて処理を行う場合、アクセラレータ１２は、基本的にデータ領域２３へのアクセスは連続したアドレスに対して行われる。そこで、メモリ２は、ＳＤＲＡＭやＤＤＲ−ＳＤＲＡＭなどのスループットが高速であるメモリであることに注目し、データ領域２３の最初のみをＩ／Ｏ専用キャッシュ１４に保持し、あとは、メモリ２の連続アクセス性能に期待する方法を採る。
【００５３】
以上の方法を採ることで、Ｉ／Ｏ専用キャッシュ１４上にキャッシュする連携データの部分を減らして、Ｉ／Ｏ専用キャッシュ１４の有効利用を実現できる。
【００５４】
次に、図７〜図１４を用いて、Ｉ／Ｏ専用キャッシュの構造及び動作を詳細に説明する。図７は、バスの構成を示す図である。図８は、Ｉ／Ｏ専用キャッシュの構成を示す図である。図９は、レジスタの構成を示す図である。図１０（ａ），（ｂ）は、Ｉ／Ｏ専用キャッシュ内のレジスタアクセス経路を示す図である。図１１は、判定回路での処理の流れを示す図である。図１２は、アドレス判定回路の構成を示す図である。図１３は、キャッシュの構成を示す図である。図１４は、キャッシュの動作を示す図である。
【００５５】
図７に示すように、バス１３は、アドレスバス１３１と、データバス１３２から構成されている。アドレスバス１３１は、アクセス先のアドレス１３１１とアクセス信号１３１２、及び、アクセラレータ１２からのキャッシュ要求信号１３１３から構成されている。また、データバス１３２は、リード用データバス１３２１とライト用データバス１３２２から構成されている。
【００５６】
図８に示すように、Ｉ／Ｏ専用キャッシュ１４は、バス１３とメモリコントローラ１５に接続されており、レジスタ１４１、判定回路１４２及びキャッシュ１４３から構成される。また、判定回路１４２からキャッシュ１４３に対して、キャッシュ要求１４４が、レジスタ１４１から判定回路１４２へエリアレジスタデータ信号１４５が出力されている。さらに、Ｉ／Ｏ専用キャッシュ１４において、アドレスバス１３１は、判定回路１４２及びキャッシュ１４３に、データバス１３２はキャッシュ１４３に接続されている。
【００５７】
図９に示すように、レジスタ１４１は、ＣＰＵ１１からアクセス可能であり、Ｉ／Ｏ専用キャッシュ１４の状態及び設定値を保持する複数のレジスタから構成されている。このレジスタ１４１は、Ｉ／Ｏ専用キャッシュ１４の有効・無効をセットさせる動作モードレジスタ１４１１、ライトバックモードやライトスルーモードなどのキャッシュ１４３の動作モードを規定するキャッシュモードレジスタ１４１２、及びＩ／Ｏ専用キャッシュ１４に保持させるデータエリア（アドレス範囲）を指定する連携データエリアレジスタ１４１３から構成されている。
【００５８】
この連携データエリアレジスタ１４１３では、１つの連携データエリアは、連携データエリアアドレスレジスタ１４１４（１４１４−１〜１４１４−ｍ）と、連携データエリアマスクレジスタ１４１５（１４１５−１〜１４１５−ｍ）を用いて表し、この２つのレジスタのセットを複数持つことで、複数の連携データエリアをサポート可能とする。また、連携データエリアマスクレジスタ１４１５は、連携データエリアアドレスレジスタ１４１４とアドレス１３１１とで値の比較を行う際に、比較すべきビットを表している。これにより、２つのレジスタ１４１４と１４１５とで、連携データエリアを表現することが可能となる。他には、連携データエリア開始アドレスレジスタと連携データエリア終了アドレスレジスタのセットによる連携データエリアの表現もある。
【００５９】
この連携データエリアレジスタ１４１３内のこれらのレジスタ値はエリアレジスタデータ信号１４５として、判定回路１４２に出力される。
【００６０】
なお、このレジスタ１４１に対するＣＰＵ１１からのアクセス経路に関しては、図１０に示すように、バス１３に接続された構成（ａ）と、バス１３とは異なるレジスタアクセス用バス経由でバス１３に接続される構成（ｂ）がある。すなわち、図１０（ａ）の構成では、レジスタ１４１がバス１３に接続され、このバス１３を通じてＣＰＵ１１からアクセスされる。一方、図１０（ｂ）の構成では、レジスタ１４１がレジスタアクセス用バスを経由してバス１３に接続され、このレジスタアクセス用バスを経由してＣＰＵ１１からアクセスされる。
【００６１】
判定回路１４２は、ＣＰＵ１１及びアクセラレータ１２からのメモリ２へのライトアクセスに対し、レジスタ１４１からのエリアレジスタデータ信号１４５、アドレスバス１３１及び、アクセラレータ１２からのキャッシュ要求信号１３１３から、そのライトデータをキャッシュ１４３に保持させるかどうかの判定を行い、キャッシュ１４３に対してキャッシュ要求１４４を出力する。この判定方法は、図１１に示すとおりである。
【００６２】
図１１に示すように、まず、判定回路１４２は、バス１３からメモリ２へのアクセス要求に対し、アクセス信号１３１２をチェックし、アクセスの種類を調べ（１４２１）、リードアクセスならば、キャッシュ要求１４４は無効とする（１４２６）。
【００６３】
また、１４２１にて、ライトアクセスの場合、当該ライトアクセスのアドレス１３１１及び、レジスタ１４１からのエリアレジスタデータ信号１４５から、当該アドレスが、連携データエリア内であるかどうかを調べ（１４２２）、連携データエリア内ならば（Ｙｅｓ）、キャッシュ要求１４４は有効となる（１４２５）。
【００６４】
また、１４２２にて、連携データエリア外の場合（Ｎｏ）、当該ライトアクセスのアクセス要求元を調べ（１４２３）、ＣＰＵ１１からのライトアクセスならば、キャッシュ要求１４４は無効となる（１４２６）。
【００６５】
また、１４２３にて、アクセス要求元がアクセラレータ１２ならば、当該アクセラレータ１２からのキャッシュ要求信号１３１３が有効か無効かを調べ（１４２４）、有効ならば、キャッシュ要求１４４は有効となる（１４２５）。
【００６６】
また、１４２４にて、当該アクセラレータ１２からのキャッシュ要求信号１３１３が無効ならば、キャッシュ要求１４４は無効となる（１４２６）。
【００６７】
続いて、前述したライトアクセスのアドレスが連携データエリア内であるかどうかの判定（１４２２）について図１２に示す。
【００６８】
図１２に示すように、判定（１４２２）は、レジスタ１４１からのエリアレジスタデータ信号１４５及びアドレス１３１１を入力とし、連携データエリアアドレスレジスタ１４１４−１〜１４１４−ｍとアドレス１３１１との比較を行う。連携データエリアアドレスレジスタ１４１４−１〜１４１４−ｍと連携データエリアマスクレジスタ１４１５とでビット毎の論理積を計算するゲート１４２５−１〜１４２５−ｍと、アドレス１３１１と連携データエリアマスクレジスタ１４１５とでビット毎の論理積を計算するゲート１４２６−１〜１４２６−ｍにより比較するビットのみを比較器１４２７−１〜１４２７−ｍに入力し、各比較器１４２７−１〜１４２７−ｍの比較結果の総論理和をゲート１４２８で計算し、当該アドレス１３１１が、連携データエリアであるかどうかを判定する。
【００６９】
以上により、判定回路１４２は、メモリ２へのアクセスが連携データエリアへのアクセスかどうかを判定し、キャッシュ１４３にキャッシュ要求１４４を出力する。キャッシュ１４３は、バス１３及びメモリコントローラ１５と接続されており、ライトバックまたはライトスルーキャッシュとして動作し、判定回路１４２からのキャッシュ要求１４４を受け、当該ライトデータをキャッシュする。
【００７０】
このキャッシュ１４３の構成を図１３に示す。図１３ではフルアソシアティブ方式で、Ｎ個のエントリを持ち、各エントリに保持しているアドレス情報、データ、制御情報がある。各エントリが保持するデータのサイズは、３２Ｂや６４Ｂぐらいである。また、制御情報は、エントリの入換えを行う際のＬＲＵ情報やエントリにデータが登録されているかどうかのＶａｌｉｄビット及び、データサイズが更新されているかどうかを示すダーティビット（ライトバック時に使用）などがある。また、キャッシュヒットとは、当該アドレスが、本キャッシュ１４３のエントリに登録されている場合、キャッシュミスは、キャッシュ１４３に登録されていない場合のことを示す。
【００７１】
このキャッシュ１４３の動作は、下記の５種類（ライトアクセスで３種類（ａ）−（１），（２），（３）、リードアクセスで２種類（ｂ），（ｃ））に分類される。
【００７２】
（ａ）−（１）ライトアクセスで、キャッシュ要求１４４が有効及び、キャッシュヒットの場合は、キャッシュ１４３に登録されている当該エントリのデータをデータライトバス１３３のライトデータで上書きを行い、ダーティビットをＯＮにする。
【００７３】
（ａ）−（２）ライトアクセスで、キャッシュ要求１４４が有効及び、キャッシュミスでキャッシュ１４３に空いているエントリがある場合は、キャッシュ１４３の空いているエントリを探し、当該エントリにライトデータを登録する。これは、エントリを有効にし、アドレス情報にアドレス１３１１の値を書き込む。このとき、データライトバス１３２２からのライトデータサイズがエントリのデータサイズより小さい場合には、メモリ２より当該アドレスの内容データを読み出し、当該エントリのデータ情報に登録した後に、当該ライトデータを書き込む。
【００７４】
（ａ）−（３）ライトアクセスで、キャッシュ要求１４４が有効及び、キャッシュミスでキャッシュ１４３に空いているエントリがない場合は、キャッシュ１４３の各エントリの制御情報にあるＬＲＵ情報を調べ、一番古いエントリを破棄し、このエントリに当該ライトデータを登録する。登録手順は、（ａ）−（２）と同じである。
【００７５】
（ｂ）リードアクセスで、キャッシュ１４３にヒットした場合は、キャッシュ１４３に登録されている当該アドレスのエントリのデータ情報をデータリードバス１３２１に出力する。
【００７６】
（ｃ）リードアクセスで、キャッシュ１４３にてミスした場合は、メモリコントローラ１５に、当該アドレスを出力し、メモリ２から当該アドレスに対応するデータを読み出し、データリードバス１３２１に出力する。なお、このとき読み出したデータをキャッシュ１４３には登録しない。
【００７７】
上記処理にて、キャッシュ１４３に登録する際に、全てのエントリが使用中であった場合には、従来のキャッシュと同様にＬＲＵ等のアルゴリズムを用い、キャッシュ１４３から追い出すエントリを探す。このとき、キャッシュ１４３がライトバックモードの場合には、当該エントリのデータをメモリ２へ書き戻しを行う。
【００７８】
以上の手順により、Ｉ／Ｏ専用キャッシュ１４は、ＣＰＵ１１及びアクセラレータ１２からのライトデータをキャッシュ１４３に保持し、ＣＰＵ１１とアクセラレータ１２間のデータ連携をＩ／Ｏ専用キャッシュ１４内で実現することで、データ連携によるボトルネックを解消し、マルチメディア処理の高速化を実現できる。また、本当に連携するデータのみをＩ／Ｏ専用キャッシュ１４に保持させることで、Ｉ／Ｏ専用キャッシュ１４の使用効率を向上し、キャッシュミスによるオーバーヘッドを最小化することが可能となる。
【００７９】
さらに、本Ｉ／Ｏ専用キャッシュ１４の処理を高速化及びスプリットバスに対応するため、処理をパイプライン化し、図１４に示すように３ステージ制を採る。なお、キャッシュミスによりメモリ２へのアクセス中のエントリに対しては、当該エントリへの登録処理が終了するまで、同一エントリへのアクセスは待たせ、メモリ競合においても、正しくメモリアクセスが行われるようにする。
【００８０】
すなわち、図１４に示すように、ステージ１では、判定回路１４２がキャッシュ要求判定を行い、キャッシュ１４３がライトアクセス及びリードアクセスの時にヒット判定を行う。ステージ２では、キャッシュの動作において、ライトアクセスの時はヒットの場合にキャッシュ１４３のデータ更新、ミスの場合にメモリ２へのアクセスを行い、リードアクセスの時はヒットの場合にキャッシュ１４３からデータ出力、ミスの場合にメモリ２へのアクセスを行う。ステージ３では、キャッシュの動作において、ライトアクセスの時はミスの場合にキャッシュ１４３への登録を行い、リードアクセスの時はミスの場合にバス１３へのデータ出力を行う。
【００８１】
これにより、メモリアクセス中においても、判定回路１４２によるキャッシュ要求判定や、キャッシュ１４３によるキャッシュ判定処理が行えるため、Ｉ／Ｏ専用キャッシュ１４によるオーバーヘッドを小さくすることができる。
【００８２】
さらに、Ｉ／Ｏ専用キャッシュ１４とメモリコントローラ１５とを組合せて、さらに効率を向上させる本実施の形態の応用例を、以下において説明する。
【００８３】
次に、図１５〜図１７を用いて、本実施の形態の応用例として、Ｉ／Ｏ専用キャッシュ１４とメモリコントローラ１５とを組合せて効率を向上させる場合を説明する。図１５は、メモリコントローラの構成を示す図である。図１６は、キャッシュの構成を示す図である。図１７は、アクセス要求のデータ構成を示す図である。
【００８４】
まず、メモリコントローラ１５に、以下の機能を持たせる。
【００８５】
（１）メモリ帯域確保のために、メモリアクセスに優先順位を導入する。すなわち、大きな帯域が必要なアクセラレータに対して、優先的にメモリアクセスが行われるようにする。
【００８６】
（２）メモリアクセスのオーバーヘッドを最小限にするＯｕｔ−ｏｆ−ｏｒｄｅｒアクセスを採用する。すなわち、ＳＤＲＡＭ及びＤＤＲ−ＳＤＲＡＭのバンク毎にアクティブ状態を管理し、各バンクに対してＣＡＳアドレス投入のみでアクセス可能な同じＲｏｗアドレスへのアクセスが連続するようにメモリアクセスの順番の入換えを行う。
【００８７】
また、ライトアクセスはＩ／Ｏ専用キャッシュ１４がアクセス要求を受け取れば、ＣＰＵ１１やアクセラレータ１２は次の処理に移ることができるが、リードアクセスが遅れるとＣＰＵ１１やアクセラレータ１２がメモリ待ちとなるため、リードアクセスを優先して行う必要がある。そのため、本メモリコントローラ１５では、メモリアクセスのみを高速化し、帯域確保のための優先順位制御はリードアクセスに対してのみ行う。
【００８８】
さらに、注意すべき点は、帯域確保やＯｕｔ−ｏｆ−ｏｒｄｅｒアクセスを行うことにより、メモリ２へのアクセス順序の入換えが発生する。そのため、アクセス順序どおりにアクセスしたのと同じ結果が得られるようにするメモリコンシステンシを保つことが重要となる。このメモリコンシステンシの維持には、以下の配慮が必要となる。
【００８９】
すなわち、異なるアドレスへの２つのメモリアクセスに関する順序入換えは問題なし。同一アドレスへの２つのメモリアクセスに関して、ライトアクセスを越えた順序の入換えがないようにする。以後、同一アドレスへの２つのメモリアクセス要求のことを、「２つのメモリアクセスには依存関係がある」と呼ぶ。
【００９０】
このメモリコントローラ１５の構成を図１５に示す。図１５に示すように、メモリコントローラ１５は、アクセス制御回路１５１、リフレッシュ制御回路１５２、優先順位付きリードアクセス要求ＦＩＦＯ１５３、ライトアクセス要求ＦＩＦＯ１５４、メモリアクセス制御回路１５５から構成されている。リードアクセス要求ＦＩＦＯ１５３は、優先順位毎にＦＩＦＯ（１５３−１〜１５３−ｎ）が存在する。
【００９１】
また、Ｉ／Ｏ専用キャッシュ１４内にあるキャッシュ１４３の構成を図１６に示す。図１６に示すように、キャッシュ１４３には、前記図１３に示したＮ個の各エントリに保持しているアドレス情報、データ、制御情報に加えて、優先順位を示す優先度が登録されている。
【００９２】
このような構成による本実施の形態の応用例では、Ｉ／Ｏ専用キャッシュ１４からは、ＣＰＵ１１及びアクセラレータ１２に従った優先順位情報付きのアクセス要求が来る。これを受け、アクセス制御回路１５１は、図１７に示すアクセス要求フォーマットに変換する。このフォーマットは、アクセス要求に関するアクセス属性とメモリコンシステンシを維持するための依存関係情報からなっており、アクセス属性は、各アクセスを管理するためのｔａｇＮｏと、リードライト信号、アドレス、データから構成され、また、依存関係情報は、依存関係のあるメモリアクセス要求のｔａｇＮｏ及び、自分に依存するアクセスがあるかどうかの最終ビットから構成されている。
【００９３】
このアクセス制御回路１５１の動作は、Ｉ／Ｏ専用キャッシュ１４から来るアクセス要求は、下記のとおりである。
【００９４】
（１）新たなアクセス要求に対して、新たなタグを発行し、ｔａｇＮｏに登録する。また、最終ビットをセットする。
【００９５】
（２）続いて、リードアクセス要求ＦＩＦＯ１５３及びライトアクセス要求ＦＩＦＯ１５４にキューイングされている先行アクセス要求を調べ、依存関係があるかを確認する。この確認の結果、依存関係がない場合、リードアクセスの場合には、該当するリードアクセス要求ＦＩＦＯ１５３−１〜１５３−ｎの該当ＦＩＦＯに、また、ライトアクセスの場合は、ライトアクセス要求ＦＩＦＯ１５４にキューイングして終了する。
【００９６】
また、依存関係がある場合には、下記の手順に従う。
【００９７】
（ａ）−（１）本アクセス要求がリードアクセス要求である場合、依存関係のある先行する最新アクセス要求（最終ビットがセット）に対し、ライトアクセス要求の場合は、当該先行アクセス要求のライトアクセスデータを返し、本リードアクセス要求はキューイングせずに終了する（ＦＩＦＯヒット）。
【００９８】
（ａ）−（２）本アクセス要求がリードアクセス要求である場合、依存関係のある先行する最新アクセス要求（最終ビットがセット）に対し、リードアクセス要求の場合は、当該先行リードアクセス要求のｔａｇＮｏを、本アクセス要求の依存ｔａｇに登録し、先行リードアクセス要求の最終ビットをクリアする。
【００９９】
（ｂ）キューイングするアクセス要求がライトアクセスである場合、当該先行アクセス要求のｔａｇＮｏを、本アクセス要求の依存ｔａｇに登録し、先行ライトアクセス要求の最終ビットをクリアする。
【０１００】
また、メモリアクセス制御回路１５５の動作は、各リードアクセス要求ＦＩＦＯ１５３とライトアクセス要求ＦＩＦＯ１５４に対して、各ＦＩＦＯの優先順位順に、アクセス要求を取り出す。このとき、ＳＤＲＡＭに対して発行するアクセスに対して、同一バンク、同一Ｒｏｗアドレスに関するアクセスについて、リードアクセスとライトアクセスをそれぞれまとめて、メモリ２にアクセスする。この際に、依存ｔａｇＮｏがセットされているアクセス要求に対しては、除外すると共に、メモリ２にアクセスする各アクセス要求に対して、最終ビットがセットされている場合は、依存関係がないので、そのまま終了する。最終ビットがクリアされている場合は、下記の手順に従い、依存関係リストを更新する。
【０１０１】
（ａ）キューイングされている各アクセス要求に対して、依存ｔａｇが終了した本アクセス要求のタグ番号であるかを調べる。
【０１０２】
（ｂ）該当するキューイング中のアクセス要求に対して、依存ｔａｇをクリアする。
【０１０３】
以上の方式を採ることにより、メモリコンシステンシ（一貫性）を保持しつつ、ＳＤＲＡＭ、ＤＤＲ−ＳＤＲＡＭの各バンクに対して、効率のよい同一Ｒｏｗアドレスへのアクセスをまとめてアクセスすることが可能となり、メモリ２へのアクセス効率を向上させることが可能となる。このアクセス効率とＩ／Ｏ専用キャッシュ１４による効果でマルチメディア処理はメモリ２によるボトルネックを最小限に抑え、スムーズな処理実行を実現できる。
【０１０４】
次に、図１８を用いて、本実施の形態のマルチメディアマイコンを用いたマルチメディア端末の一例を説明する。図１８は、マルチメディアマイコンを用いたマルチメディア端末を示す構成図である。
【０１０５】
マルチメディア端末としては、近年、携帯電話やＰＤＡなどの小型の表示機能を持つ携帯端末においても、音楽演奏機能やカメラ機能を持ち、画面に静止画（写真）や動画（ムービー）を表示したりすることが可能となっている。
【０１０６】
このマルチメディア端末１００は、マルチメディアマイコン１を核として、このマルチメディアマイコン１に、メモリ２、入出力装置である画面３、カメラ４、スピーカ５、及び通信装置６を接続した構成となっている。
【０１０７】
このマルチメディアマイコン１は、画面３、カメラ４、スピーカ５、通信装置６と接続するインタフェースを持つと共に、画面表示制御、画像入力制御、音声出力制御、通信送受信制御を行うアクセラレータを持つ。これにより、カメラ４で撮影された映像を画面３への表示や、通信装置６を介した外部と映像を高速に送受信することが可能となる。
【０１０８】
次に、図１９及び図２０を用いて、本実施の形態において、さらに別のマルチメディアマイコンの構成及び動作の一例を説明する。図１９は、さらに別のマルチメディアマイコンを示す構成図である。図２０は、キャッシュとＩ／Ｏ専用キャッシュとの使い分けを示す図である。
【０１０９】
図１９に示すように、本実施の形態において、さらに別のマルチメディアマイコン１は、マスタとして動作し、内部にキャッシュ１１０を持つＣＰＵ１１と、スレーブとして動作する複数のアクセラレータ１２（１２−１〜１２−ｎ）と、本発明の特徴であるＩ／Ｏ専用キャッシュ１４と、これらを接続するバス１３と、メモリコントローラ１５から構成されている。このマルチメディアマイコン１の外部にはメモリ２が接続されており、メモリ２には、ＣＰＵ１１で実行される一連の手続き処理を記述したプログラム２１と、ワークエリア２２と、さらに、各アクセラレータ１２が処理するデータを格納するデータ領域２３（２３−１〜２３−ｎ）がある。
【０１１０】
キャッシュ１１０及びＩ／Ｏ専用キャッシュ１４はメモリ２の内容を一時的に保持するキャッシュとしての機能を持っており、キャッシュ１１０は、ＣＰＵ１１がメモリ２にアクセスする際のアクセス効率の向上を、また、Ｉ／Ｏ専用キャッシュ１４は、ＣＰＵ１１及びアクセラレータ１２がメモリ２にアクセスする際のアクセス効率の向上を実現させる。
【０１１１】
図２０を用いて、キャッシュ１１０とＩ／Ｏ専用キャッシュ１４との使い分けについて説明する。なお、以下、キャッシュ１１０はコピーバック方式を採るものとし、スヌープ機能を用いて、アクセラレータ１２からのメモリ２へのアクセスを監視し、キャッシュ１１０と、メモリ２及びＩ／Ｏ専用キャッシュ１４との間で、キャッシュコヒーレンシを保つ機能を持つ。また、キャッシュがメモリ２からデータをラインサイズ分読み込むことをフィード、メモリ２に対してラインサイズ分書き込むことをパージと称する。
【０１１２】
ＣＰＵ１１が、プログラム２１及びワークエリア２２をアクセスする際には、キャッシュ１１０のみを動作し、Ｉ／Ｏ専用キャッシュ１４はスルーする（１２１）。従って、キャッシュ１１０でキャッシュミスが発生した際には、ＣＰＵ１１のアクセスがリード及びライト（ライトバック時）の両方において、キャッシュ１１０はメモリ２に対して、データをフィード及びパージを行う。
【０１１３】
一方、ＣＰＵ１１が、アクセラレータ２１のデータ領域２３をアクセスする際には、キャッシュ１１０及びＩ／Ｏ専用キャッシュ１４がともに動作する（１２２〜１２４）。従って、キャッシュ１１０でキャッシュミスが発生した際には、引き続いてＩ／Ｏ専用キャッシュ１４でもキャッシュ判定が行われる。
【０１１４】
Ｉ／Ｏ専用キャッシュ１４でキャッシュヒット時、ＣＰＵ１１はＩ／Ｏ専用キャッシュ１４上のデータをアクセスする（１２２）。また、Ｉ／Ｏ専用キャッシュ１４でキャッシュミス時、キャッシュ１１０からのアクセスにより動作が異なる。
【０１１５】
（１）キャッシュ１１０からのキャッシュフィードアクセス（リード）
Ｉ／Ｏ専用キャッシュ１４は、メモリ２からのリードデータをスルーしてキャッシュ１１０にデータを出力する（１２３）。
【０１１６】
（２）キャッシュ１１０からのキャッシュパージアクセス（ライト）
（２）−（ａ）Ｉ／Ｏ専用キャッシュ１４は、当該パージデータが連携データである場合、Ｉ／Ｏ専用キャッシュ１４に登録する。このとき、キャッシュ１１０のラインサイズが、Ｉ／Ｏ専用キャッシュ１４のラインサイズより小さい場合、メモリ２より、当該パージデータを含むラインをフィード（１２４）した後に、当該パージデータを書き込む。
【０１１７】
（２）−（ｂ）当該パージデータが連携データでない場合には、Ｉ／Ｏ専用キャッシュ１４はスルーしてメモリ２に書き込む（１２３）。
【０１１８】
続いて、図２１〜図２８を用いて、暗号化をＩＰプロトコルレベルで行い、セキュリティ確保を実現するＩＰｓｅｃを用いた通信を高速化するマルチメディアマイコンの具体例について説明する。このＩＰｓｅｃは、ＶＰＮ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）の標準プロトコルとして規定されたものである。
【０１１９】
図２１は、マルチメディアマイコン１の具体的な構成を示す。マルチメディアマイコン１は、ＣＰＵ１１、アクセラレータ１２、Ｉ／Ｏ専用キャッシュ１４と、これらを接続するバス１３及びメモリコントローラ１５から構成されている。また、アクセラレータ１２として、ＴＣＰアクセラレータ１２−１、ＩＰｓｅｃアクセラレータ１２−２、及びＥｔｈｅｒＭＡＣ１２−３を持ち、ＴＣＰアクセラレータ１２−１はチェックサム計算とメモリコピーを、ＩＰｓｅｃアクセラレータ１２−２は復号化及び認証処理を、ＥｔｈｅｒＭＡＣ１２−３はＬＡＮ１３０で接続されて、ＬＡＮからのフレームの送受信機能を持つ。なお、ここではＬＡＮ１３０は、ＬＡＮとして最も多く使用されているイーサネット（登録商標）とする。
【０１２０】
図２２は、ＩＰｓｅｃのトランスポートベースを用いて通信を行う際のフレーム構造を示す。ＬＡＮ及びインターネットでは、標準プロトコルとしてＴＣＰ／ＩＰプロトコルが使用されており、送受信されるデータサイズが１フレームで送信できるサイズより大きい場合、複数のＴＣＰパケットに分割されて送受信される。
【０１２１】
図２２に示すとおり、ＩＰｓｅｃのトランスポートモードでは、ＴＣＰパケットを暗号化したＩＰｓｅｃパケットにＩＰヘッダを付加してＩＰでカプセル化した構成を採っている。マルチメディアマイコン１では、ＬＡＮ向けとしてイーサネット（登録商標）を使用しているため、最後にＭＡＣヘッダを付加した構成となる。ちなみに、図２３には、ＩＰｓｅｃを用いない場合のＴＣＰ／ＩＰのフレーム構成を示している。
【０１２２】
なお、ＩＰｓｅｃパケットは、ＩＰｓｅｃヘッダとＩＰｓｅｃデータから構成されており、ＩＰｓｅｃヘッダには暗号化を行っているためにＥＳＰヘッダを使用する。ＩＰｓｅｃデータは、暗号化に必要なデータを持つＥＳＰトレーラをＴＣＰパケットに付加し、その全体を暗号化した後、改ざんを検出できるようにＥＳＰ認証値が加えられている。
【０１２３】
次に、キャッシュの動作として、Ｉ／Ｏ専用キャッシュを使用しない場合の受信処理（図２４）、Ｉ／Ｏ専用キャッシュを使用した場合の受信処理（図２５）、連携データ部のみをＩ／Ｏ専用キャッシュに保持し、Ｉ／Ｏ専用キャッシュを使用した場合の受信処理（図２６）を順に説明する。
【０１２４】
まず、Ｉ／Ｏ専用キャッシュ１４を使用しない場合、この図２２に示すＩＰｓｅｃのトランスポートモードのイーサフレームを受信する際の処理を、図２４を用いて説明する。
【０１２５】
（１）マルチメディアマイコン１がイーサネット（登録商標）のＬＡＮ１３０から、当該イーサフレームを受信し、メモリ２内のアクセラレータ１２のデータ領域２３に書き込む（１００１，１０１１）。
【０１２６】
（２）ＣＰＵ１１は、当該イーサフレーム１０１１のＭＡＣヘッダ及びＩＰヘッダをアクセラレータ１２のデータ領域２３より読み込み、イーサ受信及びＩＰ受信処理を行う（１００２）。
【０１２７】
（３）ＣＰＵ１１は、当該イーサフレーム１０１１がＩＰｓｅｃパケットを含むため、当該イーサフレーム１０１１内のＩＰｓｅｃヘッダを読み込み、ＩＰｓｅｃ受信処理を行い、ＩＰｓｅｃアクセラレータ１２−２を起動する。
【０１２８】
（４）ＩＰｓｅｃアクセラレータ１２−２は、アクセラレータ１２のデータ領域２３より当該イーサフレーム１０１１内のＩＰｓｅｃデータを読み込み、認証処理及び復号処理を行い、その結果をアクセラレータ１２のデータ領域２３にＴＣＰパケット（ＴＣＰデータ）１０１２として書き戻す（１００３）。
【０１２９】
（５）ＣＰＵ１１は、アクセラレータ１２のデータ領域２３内のＴＣＰパケット１０１２より、ＴＣＰヘッダを読み込み、受信処理を行うとともに、チェックサムを計算するため、ＴＣＰアクセラレータ１２−１を起動する（１００４）。
【０１３０】
（６）ＴＣＰアクセラレータ１２−１は、アクセラレータ１２のデータ領域２３内のＴＣＰパケット１０１２を読み込み、チェックサムを計算するとともに、ＴＣＰデータを受信データ内の適切な位置（図では左から３番目の位置）に書き込む（１００５）。
【０１３１】
このように、Ｉ／Ｏ専用キャッシュ１４を使用しない場合、メモリ２へのアクセスが、１イーサフレーム当たり５回発生することになる。
【０１３２】
一方、Ｉ／Ｏ専用キャッシュ１４を使用した場合の動作を、図２５を用いて説明する。
【０１３３】
（１’）マルチメディアマイコン１がイーサネット（登録商標）のＬＡＮ１３０から、当該イーサフレームを受信し、メモリ２内のアクセラレータ１２のデータ領域２３に書き込む（１０２１，１０１１）。しかし、アクセラレータ１２のデータ領域２３への書き込みであるため、Ｉ／Ｏ専用キャッシュ１４は当該フレームをキャッシュし（１０１１’）、実際にメモリ２へのアクセスは発生しない。
【０１３４】
（２’）ＣＰＵ１１は、アクセラレータ１２のデータ領域２３内の当該イーサフレーム１０１１内にあるＭＡＣヘッダ及びＩＰヘッダを読み込む際、Ｉ／Ｏ専用キャッシュ１４にヒットする。そのため、メモリ２へのアクセスは発生せず、Ｉ／Ｏ専用キャッシュ１４から当該フレーム１０１１’のＭＡＣヘッダ及びＩＰヘッダが読み込まれ、イーサ受信及びＩＰ受信処理を行う（１０２２）。
【０１３５】
（３’）ＣＰＵ１１は、当該イーサフレーム１０１１’がＩＰｓｅｃパケットを含むため、当該イーサフレーム１０１１内のＩＰｓｅｃヘッダを読み込み、ＩＰｓｅｃ受信処理を行い、ＩＰｓｅｃアクセラレータ１２−２を起動する。このメモリ２へのアクセスも、（２）と同様にＩ／Ｏ専用キャッシュ１４にヒットするため、当該イーサフレーム１０１１’のＩＰｓｅｃヘッダが読み込まれ、メモリ２へのアクセスは発生しない（１０２２）。
【０１３６】
（４’）ＩＰｓｅｃアクセラレータ１２−２は、当該イーサフレーム１０１１内のＩＰｓｅｃデータを読み込もうとするが、Ｉ／Ｏ専用キャッシュ１４にヒットし、実際には当該イーサフレーム１０１１’から読み込まれる（１０２３）。その後、ＩＰｓｅｃアクセラレータ１２−２は認証処理及び復号処理を行い、その結果をアクセラレータ１２のデータ領域２３にＴＣＰパケット１０１２として書き戻す。しかし、アクセラレータ１２のデータ領域２３への書き込みであるため、Ｉ／Ｏ専用キャッシュ１４はキャッシュし（１０１２’）、実際にメモリ２へのアクセスは発生しない（１０２３）。
【０１３７】
（５’）ＣＰＵ１１は、アクセラレータ１２のデータ領域２３内のＴＣＰパケット１０１２より、ＴＣＰヘッダの読み込みを行うが、実際にはＩ／Ｏ専用キャッシュ１４でヒットするため、ＴＣＰパケット１０１２’のＴＣＰヘッダが読み込まれる（１０２４）。続いて、ＣＰＵ１１はＴＣＰ受信処理を行うとともに、チェックサムを計算するため、ＴＣＰアクセラレータ１２−１を起動する。
【０１３８】
（６’）ＴＣＰアクセラレータ１２−１は、アクセラレータ１２のデータ領域２３内にあるＴＣＰパケット１０１２の読み込みを行うが、Ｉ／Ｏ専用キャッシュ１４でヒットするため、ＴＣＰパケット１０１２’を読み込む。ＴＣＰアクセラレータ１２−１は、チェックサムを計算するとともに、ＴＣＰデータを受信データ内の適切な位置に書き込む（１０２５）。
【０１３９】
以上により、アクセラレータ１２とＣＰＵ１１がともにアクセスする連携データをＩ／Ｏ専用キャッシュ１４内に留めることで、メモリ２へのアクセスを０回にすることが可能となった。実際には上述のように、画像やダウンロードなどでは、複数のイーサフレームに分割されて送受信されるため、メモリ２へのアクセスのオーバーヘッドが通信性能に大きく影響することになる。
【０１４０】
また、ＣＰＵ１１とアクセラレータ１２がともにアクセスする連携データは、１０３１及び１０３２のヘッダ部分である。この連携データをＩ／Ｏ専用キャッシュ１４がキャッシュすることにより、ＣＰＵ１１は、アクセラレータ１２が書き込んだデータをアクセスが遅いメモリ２からではなく、Ｉ／Ｏ専用キャッシュ１４から読み込むことができるため、オーバーヘッドとなるアクセス待ち時間を大幅に削減でき、ＩＰｓｅｃベースのＴＣＰ／ＩＰ通信を高速に行うことが可能となる。
【０１４１】
また、図２６に、連携データ部１０３１（ＭＡＣヘッダ、ＩＰヘッダ、ＩＰｓｅｃヘッダ），１０３２（ＴＣＰヘッダ）のみをＩ／Ｏ専用キャッシュ１４に保持し、それ以外のデータ（ＩＰｓｅｃデータ、ＴＣＰデータ）をメモリ２内に保持した場合の構成図を示す。この構成は同時に複数のアクセラレータ１２が動作し、Ｉ／Ｏ専用キャッシュ１４に余裕がない場合である。
【０１４２】
一方、Ｉ／Ｏ専用キャッシュ１４に余裕がある場合には、図２５に示すように、連携データ部１０３１，１０３２に加えて、連携データ部以外のデータもキャッシュすることにより、アクセラレータ１２間のデータ転送への利用も可能となる。アクセラレータ１２側では、連続したアドレスに対してアクセスすることが多いことに注目し、アクセラレータ１２間のデータ転送により、連携データ１０３１，１０３２がキャッシュアウトされないことがポイントとなる。そこで、Ｉ／Ｏ専用キャッシュ１４上に連携データが優先的にキャッシュすることを実現する方法として、以下の方法が挙げられる。
【０１４３】
（ａ）連携データのみキャッシュする。
【０１４４】
（ｂ）連携データのキャッシュ滞在時間を他のデータよりも長くする（ＬＲＵのカウンタの進み具合を他のデータに比べて遅くするなど）。
【０１４５】
（ｃ）ラインごとに連携データ用の使用中ビットを設け、ＣＰＵ１１での一連の処理が終了した時点で、当該使用中ビットをクリアする。クリアされたラインは、キャッシュアウトの対象となる。
【０１４６】
ここで、（ａ），（ｂ）の方法は、Ｉ／Ｏ専用キャッシュ１４での処理となるため、アプリケーションの介在が不要であるが、（ｃ）の方法は、使用中ビットをＯＳかドライバ・ミドルウエアレベルの管理処理が必須となる。
【０１４７】
上記の方法により、連携データがＩ／Ｏ専用キャッシュ１４に長く滞在可能となり、特に複数のアクセラレータが同時に動作している際に、連携データがＩ／Ｏ専用キャッシュ１４からキャッシュアウトされることによる性能低下を防ぐ事が可能となる。
【０１４８】
さらに、同様にＩＰｓｅｃを用いて暗号化したデータを送信する処理を図２７に示す。送信処理は、受信処理と逆である。
【０１４９】
ＣＰＵ１１は、メモリ２内のアクセラレータ１２のデータ領域２３内に送信データをセットする。このとき、Ｉ／Ｏ専用キャッシュ１４は、送信データがアクセラレータ１２のデータ領域２３にライトされるのを検出し、キャッシュする。図２７では、この送信データは４フレームに分割され、３番目のデータ１０６１が送信される処理を示している。
【０１５０】
（１）ＣＰＵ１１は３番目のデータ１０６１を送信するため、ＴＣＰアクセラレータ１２−１に起動をかける。
【０１５１】
（２）ＴＣＰアクセラレータ１２−１は、アクセラレータ１２のデータ領域２３内の当該送信データから１フレームで送信可能なサイズ１０６１に切り出し、チェックサムを計算するとともに、送信用のバッファ１０６２内のＴＣＰデータ部にコピーする。このとき、ＴＣＰアクセラレータ１２−１はアクセラレータ１２のデータ領域２３内をアクセスするため、実際にはＩ／Ｏ専用キャッシュ１４内の１０６１’を読み込み、１０６２’のＴＣＰデータ部に書き込む（１０５１）。
【０１５２】
（３）ＣＰＵ１１はＴＣＰヘッダを作成し、アクセラレータ１２のデータ領域２３内のＴＣＰパケット１０６２内のＴＣＰヘッダに書き込む。しかし、実際にはＩ／Ｏ専用キャッシュ１４内のＴＣＰパケット１０６２’内のＴＣＰヘッダ部１０７１に書き込まれる（１０５２）。
【０１５３】
（４）ＴＣＰパケットを暗号化するため、ＣＰＵ１１はＩＰｓｅｃアクセラレータ１２−２を起動する。これを受けて、ＩＰｓｅｃアクセラレータ１２−２は、ＴＣＰパケット１０６２を読み込み、暗号化した結果をイーサフレーム１０６３のＩＰｓｅｃデータ部に書き込む。このとき、実際には、Ｉ／Ｏ専用キャッシュ１４内の１０６２’を読み込み、暗号化したデータを１０６３’のＩＰｓｅｃデータ部に書き込む。
【０１５４】
（５）ＣＰＵ１１はヘッダ部（ＭＡＣヘッダ、ＩＰヘッダ、ＩＰｓｅｃヘッダ）を作成し、アクセラレータ１２のデータ領域２３内のイーサフレーム１０６３のヘッダ部に書き込むが、実際にはＩ／Ｏ専用キャッシュ１４内の１０６３’のヘッダ部１０７２に書き込まれる（１０５３）。
【０１５５】
（６）ＣＰＵ１１は、イーサフレーム１０６３の作成終了を受け、ＥｔｈｅｒＭＡＣ１２−３に送信要求を行う。それを受け、ＥｔｈｅｒＭＡＣ１２−３はアクセラレータ１２のデータ領域２３内のイーサフレーム１０６３（実際にはＩ／Ｏ専用キャッシュ１４内の１０６３’）を読み出し、イーサネット（登録商標）のＬＡＮ１３０に出力する。
【０１５６】
以上のように、送信処理においても、ＣＰＵ１１及びアクセラレータ１２はともに、Ｉ／Ｏ専用キャッシュ１４の有無を気にすることなく実行することが出来る。
【０１５７】
また、上記受信処理及び送信処理が同時に発生しても、Ｉ／Ｏ専用キャッシュ１４はキャッシュであるため、問題なく利用できる。
【０１５８】
次に、図２８を用いて、ＣＰＵ１１内のキャッシュ１１０がスヌープ機能を持つ際の処理を示す。
【０１５９】
上記送信処理の（３）において、ＣＰＵ１１がキャッシュ１１０を有効かつライトバックモードで、ＴＣＰヘッダを作成すると、実際のＴＣＰヘッダはキャッシュ１１０内にのみ存在し、Ｉ／Ｏ専用キャッシュ１４内の１０７１及び、アクセラレータ１２のデータ領域２３内には存在しない。ここで、ＣＰＵ１１の起動を受けたＩＰｓｅｃアクセラレータ１２−２は、ＴＣＰヘッダを読みに行く。キャッシュ１４はこのアクセスを、バス１３を介して検出すると、ＩＰｓｅｃアクセラレータ１２−２にアクセス中断要求を出すとともに、キャッシュ１１０内のＴＣＰヘッダのデータをアクセラレータ１２のデータ領域２３内のＴＣＰパケット１０６２へパージする。しかし、実際にはＩ／Ｏ専用キャッシュ１４内のＴＣＰヘッダ部１０７１に書き込まれる。
【０１６０】
パージ処理が終了すると、キャッシュ１１０はＩＰｓｅｃアクセラレータ１２−２へのアクセス中断要求を解除する。これを受けて、ＩＰｓｅｃアクセラレータ１２−２はＴＣＰヘッダの読み込みを再開する。キャッシュ１１０からのパージ後の正しいＴＣＰヘッダ１０７１のデータを読み込むことが可能となる。
【０１６１】
ここで注目すべきは、アクセス時間の短いＩ／Ｏ専用キャッシュ１４を使用することで、キャッシュ１１０とメモリ２間のキャッシュコヒーレンシは、アクセス待ち時間の大きいメモリ２へのアクセスなしに、Ｉ／Ｏ専用キャッシュ１４を介したアクセスとなり、キャッシュパージによるオーバーヘッドを大幅に削減することが可能となる。
【０１６２】
以上説明したように、本実施の形態によれば、以下のような効果を得ることができる。
【０１６３】
（１）Ｉ／Ｏ専用キャッシュ１４を採用したマルチメディアマイコン１，１０によれば、マルチメディア処理をＣＰＵ１１とアクセラレータ１２が連携して動作する際に発生するメモリアクセスでのデータ連携によるボトルネックを最小限に抑えることができ、マルチメディア処理性能を高めることができる。
【０１６４】
（２）Ｉ／Ｏ専用キャッシュ１４は、ＣＰＵ１１とアクセラレータ１２間のデータ連携に必要なデータのみを保持すると共に、Ｉ／Ｏ専用キャッシュ１４に保持するかどうかの判定は、メモリ２へのライトアクセスのみで良いことに注目することにより、データ連携におけるＩ／Ｏ専用キャッシュ１４でのキャッシュヒット率を向上させることが可能となり、よりコンパクトにＩ／Ｏ専用キャッシュ１４を実現できる。
【０１６５】
（３）複数のマルチメディア向けのアクセラレータ１２を搭載した場合でも、データ連携を効率よく行うことが可能となるため、音声や静止画、動画などの複数のマルチメディア処理を同時かつ高速に処理可能なマルチメディアマイコン１，１０、及びこのマルチメディアマイコンを用いたマルチメディア端末１００を構成できる。
【０１６６】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【０１６７】
例えば、前記実施の形態においては、イーサネット（登録商標）を使用した有線による通信機能を具体例として説明したが、本発明はこれに限定されるものではなく、（１）無線による通信機能、（２）グラフィックス、ＭＰＥＧやＪＰＥＧ（画像圧縮／伸張）などによる画面表示機能、（３）画像回転や画質調整などの画像処理によるカメラ処理機能、（４）音楽、ＭＰ３（音声圧縮／伸張）などによるスピーカ処理機能、などにも同様に適用することができる。
【０１６８】
尚、上述した実施の形態ではＣＰＵを１つ備えた構成例を示したが、複数のＣＰＵを備えた構成においても本発明を有効に適用することが出来る。
【産業上の利用可能性】
【０１６９】
以上に説明した本発明の内容は、マイコンに関し、特に、ＣＰＵによる処理以外にアクセラレータなどの補助回路を有する通信及びマルチメディア処理を行うマイコンに適用することが可能である。
【図面の簡単な説明】
【０１７０】
【図１】本発明の一実施の形態に係るマルチメディアマイコンを示す構成図である。
【図２】本発明の一実施の形態において、メモリの構成を示す図である。
【図３】本発明の一実施の形態において、別のマルチメディアマイコンを示す構成図である。
【図４】本発明の一実施の形態において、マルチメディア処理の流れを示す図である。
【図５】本発明の一実施の形態において、マルチメディア処理のデータの流れ（前処理からアクセラレータ処理まで）を示す図である。
【図６】本発明の一実施の形態において、マルチメディア処理のデータの流れ（処理結果セットから後処理まで）を示す図である。
【図７】本発明の一実施の形態において、バスの構成を示す図である。
【図８】本発明の一実施の形態において、Ｉ／Ｏ専用キャッシュの構成を示す図である。
【図９】本発明の一実施の形態において、レジスタの構成を示す図である。
【図１０】（ａ），（ｂ）は本発明の一実施の形態において、Ｉ／Ｏ専用キャッシュ内のレジスタアクセス経路を示す図である。
【図１１】本発明の一実施の形態において、判定回路での処理の流れを示す図である。
【図１２】本発明の一実施の形態において、アドレス判定回路の構成を示す図である。
【図１３】本発明の一実施の形態において、キャッシュの構成を示す図である。
【図１４】本発明の一実施の形態において、キャッシュの動作を示す図である。
【図１５】本発明の一実施の形態の応用例において、メモリコントローラの構成を示す図である。
【図１６】本発明の一実施の形態の応用例において、キャッシュの構成を示す図である。
【図１７】本発明の一実施の形態の応用例において、アクセス要求のデータ構成を示す図である。
【図１８】本発明の一実施の形態において、マルチメディアマイコンを用いたマルチメディア端末を示す構成図である。
【図１９】本発明の一実施の形態において、さらに別のマルチメディアマイコンを示す構成図である。
【図２０】本発明の一実施の形態において、キャッシュとＩ／Ｏ専用キャッシュとの使い分けを示す図である。
【図２１】本発明の一実施の形態において、マルチメディアマイコンの具体的な構成を示す構成図である。
【図２２】本発明の一実施の形態において、通信を行う際のフレーム構造を示す構成図である。
【図２３】本発明の一実施の形態において、通信を行う際の別のフレーム構造を示す構成図である。
【図２４】本発明の一実施の形態において、キャッシュの動作（Ｉ／Ｏ専用キャッシュを使用しない場合の受信処理）を示す図である。
【図２５】本発明の一実施の形態において、キャッシュの動作（Ｉ／Ｏ専用キャッシュを使用した場合の受信処理）を示す図である。
【図２６】本発明の一実施の形態において、キャッシュの動作（連携データ部のみをＩ／Ｏ専用キャッシュに保持し、Ｉ／Ｏ専用キャッシュを使用した場合の受信処理）を示す図である。
【図２７】本発明の一実施の形態において、暗号化したデータを送信する処理を示す図である。
【図２８】本発明の一実施の形態において、キャッシュの動作（スヌープ機能を持つ場合）を示す図である。
【符号の説明】
【０１７１】
１…マルチメディアマイコン、２…メモリ、３…画面、４…カメラ、５…スピーカ、６…通信装置、１０…マルチメディアマイコン、１１…ＣＰＵ、１２…アクセラレータ、１３…バス、１４…Ｉ／Ｏ専用キャッシュ、１５…メモリコントローラ、２１…プログラム、２２…ワークエリア、２３…データ領域、１００…マルチメディア端末、１１０…キャッシュ、１３０…ＬＡＮ、１４１…レジスタ、１４２…判定回路、１４３…キャッシュ、１５１…アクセス制御回路、１５２…リフレッシュ制御回路、１５３…リードアクセス要求ＦＩＦＯ、１５４…ライトアクセス要求ＦＩＦＯ、１５５…メモリアクセス制御回路。
【図１】
2006065850.tif 000003
【図２】
2006065850.tif 000004
【図３】
2006065850.tif 000005
【図４】
2006065850.tif 000006
【図５】
2006065850.tif 000007
【図６】
2006065850.tif 000008
【図７】
2006065850.tif 000009
【図８】
2006065850.tif 000010
【図９】
2006065850.tif 000011
【図１０】
2006065850.tif 000012
【図１１】
2006065850.tif 000013
【図１２】
2006065850.tif 000014
【図１３】
2006065850.tif 000015
【図１４】
2006065850.tif 000016
【図１５】
2006065850.tif 000017
【図１６】
2006065850.tif 000018
【図１７】
2006065850.tif 000019
【図１８】
2006065850.tif 000020
【図１９】
2006065850.tif 000021
【図２０】
2006065850.tif 000022
【図２１】
2006065850.tif 000023
【図２２】
2006065850.tif 000024
【図２３】
2006065850.tif 000025
【図２４】
2006065850.tif 000026
【図２５】
2006065850.tif 000027
【図２６】
2006065850.tif 000028
【図２７】
2006065850.tif 000029
【図２８】
2006065850.tif 000030