(57)【要約】【課題】保安コンテンツを処理するシステムオンチップ及びそれを含むモバイル装置を提供する。【解決手段】本発明に係るモバイル装置は、保安領域と非保安領域とに区分されるメモリ領域を持つワーキングメモリと、保安領域に格納されたコンテンツにアクセスして処理するシステムオンチップとを含み、システムオンチップは、保安運営システム又は非保安運営システムによって駆動されるプロセッシングユニットと、プロセッシングユニットの制御によって、コンテンツを読み出して処理し、マスタとスレーブに対して互いに異なる保安属性に設定される少なくとも一つのハードウェアブロックと、ワーキングメモリに対するハードウェアブロックへのアクセスを追加に制限する少なくとも一つのメモリ管理ユニットと、スレーブポートとマスタポートの保安属性、又はワーキングメモリの領域別アクセス権限を設定するアクセス制御ユニットとを含む。【選択図】      図１
2014086092.tif 000002
【特許請求の範囲】
【請求項１】
保安領域と非保安領域とに区分されるメモリ領域を持つワーキングメモリと、
前記保安領域に格納されたコンテンツにアクセスして処理するシステムオンチップと、を含み、前記システムオンチップは、
保安運営システム、及び非保安運営システムによって駆動されるプロセッシングユニットと、
前記プロセッシングユニットの制御によって前記コンテンツにアクセスし、マスタポートとスレーブポートに対して互いに異なる保安属性に設定される少なくとも一つのハードウェアブロックと、
前記ワーキングメモリに対する前記ハードウェアブロックのアクセスを制御する少なくとも一つのメモリ管理ユニットと、
前記スレーブポートと前記マスタポートの保安属性、または前記ワーキングメモリの領域別のアクセス権限を設定するアクセス制御ユニットと、を含むことを特徴とするモバイル装置。
【請求項２】
前記ハードウェアブロックを制御するためのドライバは、前記非保安運営システムで実行されることを特徴とする請求項１に記載のモバイル装置。
【請求項３】
前記ハードウェアブロックのスレーブポートは非保安属性に、マスタポートは保安属性に設定されることを特徴とする請求項１に記載のモバイル装置。
【請求項４】
前記メモリ管理ユニットは、前記ハードウェアブロックの前記保安領域に対するアクセストランザクションのうちの一部だけを許すことを特徴とする請求項１に記載のモバイル装置。
【請求項５】
前記メモリ管理ユニットと、前記アクセス制御ユニットを制御するためのファイアウォールドライバは、前記保安運営システムで実行されることを特徴とする請求項１に記載のモバイル装置。
【請求項６】
前記保安運営システムと前記非保安運営システムは、前記プロセッシングユニットによって互いに異なるタイムスロットで実行されることを特徴とする請求項１に記載のモバイル装置。
【請求項７】
前記プロセッシングユニットは、前記コンテンツの保安属性によって前記アクセス制御ユニットを設定することを特徴とする請求項１に記載のモバイル装置。
【請求項８】
前記アクセス制御ユニットは、
前記ハードウェアブロックの保安属性を定義する第１アクセス制御ユニットと、
前記ワーキングメモリの領域別のアクセス権限を定義する第２アクセス制御ユニットとを含むことを特徴とする請求項１に記載のモバイル装置。
【請求項９】
前記プロセッシングユニットは、トラストゾーン（Ｔｒｕｓｔ  Ｚｏｎｅ）保安方式を支援することを特徴とする請求項８に記載のモバイル装置。
【請求項１０】
前記第１アクセス制御ユニットは、トラストゾーン保護コントローラ（ＴＺＰＣ）に対応し、前記第２アクセス制御ユニットは、トラストゾーンアドレス空間コントローラ（ＴＺＡＳＣ）に対応することを特徴とする請求項９に記載のモバイル装置。
【請求項１１】
コーデック入力バッファ領域、コーデック出力バッファ領域、フレームバッファ領域を含む保安領域と非保安領域の格納領域を含むワーキングメモリと、
前記保安領域または前記非保安領域をトラストゾーン方式に基づいてアクセスするシステムオンチップとを含み、
前記システムオンチップは、
前記トラストゾーン方式のアクセス制御を支援するプロセッシングユニットと、
前記プロセッシングユニットの制御により、前記コーデック入力バッファ領域に格納されたデータを処理して、前記コーデック出力バッファ領域に格納するハードウェアコーデックと、
前記コーデック出力バッファに格納されたデータのイメージフォーマットを変換して前記フレームバッファ領域に格納するイメージコンバータと、
前記フレームバッファ領域に格納されたデータをディスプレイに表示するＬＣＤコントローラと、
前記ハードウェアコーデック、前記イメージコンバータ、前記ＬＣＤコントローラの各々の前記ワーキングメモリへのアクセスを制御する第１乃至第３メモリ管理ユニットとを含み、
前記ハードウェアコーデック、前記イメージコンバータ、前記ＬＣＤコントローラの各々のスレーブポートとマスタポートは、互いに異なる保安属性に設定されることを特徴とするモバイル装置。
【請求項１２】
前記ハードウェアコーデック、前記イメージコンバータ、前記ＬＣＤコントローラの各々のスレーブポートは、非保安属性に、前記マスタポートは、保安属性に設定されることを特徴とする請求項１１に記載のモバイル装置。
【請求項１３】
前記ハードウェアコーデック、前記イメージコンバータ、前記ＬＣＤコントローラの保安属性を設定するための第１アクセス制御ユニットをさらに含むことを特徴とする請求項１１に記載のモバイル装置。
【請求項１４】
前記ワーキングメモリの保安領域と非保安領域とを設定する第２アクセス制御ユニットをさらに含むことを特徴とする請求項１３に記載のモバイル装置。
【請求項１５】
前記保安領域には、前記第１乃至第３メモリ管理ユニットの各々のアクセス可能領域を定義するアドレス変換テーブルが格納されることを特徴とする請求項１１に記載のモバイル装置。
【請求項１６】
ワーキングメモリにアクセスして、保安コンテンツを処理するシステムオンチップにおいて、
前記ワーキングメモリにロードされた保安運営システムと非保安運営システムによって排他的に駆動されるプロセッシングユニットと、
前記プロセッシングユニットの制御により、前記保安コンテンツを再生するための少なくとも一つのハードウェアブロックと、
前記ハードウェアブロックの前記ワーキングメモリへのアクセスを制限するメモリ保護ユニットとを含み、
前記ハードウェアブロックのスレーブポートは、非保安属性に、前記ハードウェアブロックのマスタポートは、保安属性に設定されることを特徴とするシステムオンチップ。
【請求項１７】
前記プロセッシングユニット及び前記ハードウェアブロックの前記ワーキングメモリへのアクセストランザクションを保安属性によって論理的に分離するためのアクセス制御ユニットをさらに含むことを特徴とする請求項１６に記載のシステムオンチップ。
【請求項１８】
前記アクセス制御ユニットは、前記ハードウェアブロックのマスタポートとスレーブポートの保安属性を設定するためのトラストゾーン保護コントローラ（ＴＺＰＣ）を含むことを特徴とする請求項１７に記載のシステムオンチップ。
【請求項１９】
前記アクセス制御ユニットは、前記ワーキングメモリへのアクセストランザクションを保安属性によって制限するトラストゾーンアドレス空間コントローラ（ＴＺＡＳＣ）を含むことを特徴とする請求項１７に記載のシステムオンチップ。
【請求項２０】
前記トラストゾーン制御ユニットを制御するためのドライバソフトウェアは、前記保安運営システムによって実行されることを特徴とする請求項１７に記載のシステムオンチップ。
【請求項２１】
保安領域又は非保安領域をトラストゾーン方式によりアクセスするシステムオンチップにおいて、
前記トラストゾーン方式のアクセス制御を支援するプロセッシングユニットと、
前記プロセッシングユニットの制御に応じてワーキングメモリに格納されたデータを処理して前記ワーキングメモリに格納するハードウェアコーデックと、
前記ワーキングメモリに格納された前記処理されたデータのイメージフォーマットを変換して前記ワーキングメモリに格納するイメージコンバータと、
前記ワーキングメモリに格納された前記変換されたイメージフォーマットをディスプレイに表示するＬＣＤコントローラと、
前記ハードウェアコーデック、前記イメージコンバータ、前記ＬＣＤコントローラの各々の前記ワーキングメモリへのアクセスを制御する第１乃至第３メモリ管理ユニットとを含むことを特徴とするシステムオンチップ。
【請求項２２】
前記ハードウェアコーデック、前記イメージコンバータ、前記ＬＣＤコントローラの各々のスレーブポートとマスタポートとは、互いに異なる保安属性に設定されることを特徴とする請求項２１に記載のシステムオンチップ。
【請求項２３】
前記ワーキングメモリの格納領域は、非保安領域と保安領域とを含み、
前記保安領域は、コーデック入力バッファ領域、コーデック出力バッファ領域、フレームバッファ領域を含むことを特徴とする請求項２１に記載のシステムオンチップ。
【請求項２４】
前記コーデック入力バッファ領域は、前記データを格納し、前記コーデック出力バッファ領域は、前記処理されたデータを格納し、前記フレームバッファ領域は、前記変換されたイメージフォーマットを格納することを特徴とする請求項２３に記載のシステムオンチップ。
【請求項２５】
前記ハードウェアコーデック、前記イメージコンバータ、前記ＬＣＤコントローラの各々のスレーブポートは、非保安属性に、マスタポートは、保安属性に設定されることを特徴とする請求項２２に記載のシステムオンチップ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子装置に係り、より具体的には、保安コンテンツを処理するシステムオンチップ及びそれを含むモバイル装置に関する。
【背景技術】
【０００２】
最近、スマートフォン、タブレットパソコン、デジタルカメラ、ＭＰ３プレーヤ、ＰＤＡなどのようなモバイル装置の利用が爆発的に増加している。モバイル装置には、様々な種類のコンテンツを処理するための応用プログラム（Ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍ）が駆動される。そして様々なコンテンツは、非合法的なユーザのアクセスを遮断するための保安化技術が適用される。これらのコンテンツを保安コンテンツという。保安コンテンツの提供者は、コンテンツが許可されていない不法使用や違法コピーから保護することができ、合法的なユーザだけが再生可能なモバイル装置の支援を要求する。
【０００３】
これらの技術は、モバイル装置のハードウェアだけではなく、ソフトウェアを含むシステムの全体における保護を必要とする。このため、デジタルコンテンツ著作権管理（Ｄｉｇｉｔａｌ  Ｒｉｇｈｔ  Ｍａｎａｇｅｍｅｎｔ：以下、ＤＲＭ）という要求事項が指定された。そして、ＤＲＭは、ほとんどのモバイル装置での実現が義務付けられている。ＤＲＭの重要な要求事項を遵守するためには許可されないアクセスからモバイル装置の特定のソフトウェアやハードウェアを保護しなければならない。これらの機能を支援するコンテンツの保安方式ではトラストゾーン（ＴｒｕｓｔＺｏｎｅ）がある。しかし、運営システム（ＯＳ）の構造とコードが公開されたスマートフォンでは、相対的に保安コンテンツを攻撃し易い面がある。特に、ユーザが任意の応用プログラムをインストールすることができるスマートフォン環境では高品質のコンテンツが保安の脅威から安全に処理されなければならない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許公開第２０１２／０２９５４３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、基本のハードウェアの変更を最小化しつつ、且つ保安コンテンツに対する高い保安性能を提供するためのシステムオンチップを提供することにある。
【課題を解決するための手段】
【０００６】
上述の目的を達成するための本発明に係るモバイル装置は、保安領域と非保安領域とに区分されるメモリ領域を持つワーキングメモリと、前記保安領域に格納されたコンテンツにアクセスして処理するシステムオンチップとを含み、前記システムオンチップは、保安運営システム、非保安運営システムに応じて駆動されるプロセッシングユニットと、前記プロセッシングユニットの制御によって、前記コンテンツを読み出して処理し、マスタとスレーブに対して互いに異なる保安属性に設定される少なくとも一つのハードウェアブロックと、前記ワーキングメモリに対する前記ハードウェアブロックのアクセスを追加に制限する少なくとも一つのメモリ管理ユニットと、前記スレーブポートと前記マスタポートの保安属性、または前記ワーキングメモリの領域別のアクセス権限を設定するアクセス制御ユニットとを含む。
【０００７】
前記目的を達成するための本発明に係るモバイル装置は、コーデック入力バッファ領域、コーデック出力バッファ領域、フレームバッファ領域を含む保安領域と非保安領域の格納領域を含むワーキングメモリと、そして前記保安領域または前記非保安領域をトラストゾーン方式によってアクセスするシステムオンチップとを含み、前記システムオンチップは、前記トラストゾーン方式のアクセス制御を支援するプロセッシングユニットと、前記プロセッシングユニットの制御により、前記コーデック入力バッファ領域に格納されたデータを処理して、前記コーデック出力バッファ領域に格納するハードウェアコーデックと、前記コーデック出力バッファに格納されたデータのイメージフォーマットを変換して前記フレームバッファ領域に格納するイメージコンバータと、前記フレームバッファ領域に格納されたデータをディスプレイに表示するＬＣＤコントローラと、前記ハードウェアコーデック、前記イメージコンバータ、前記ＬＣＤコントローラの各々の前記ワーキングメモリへのアクセスを制限する第１乃至第３メモリ管理ユニットとを含み、前記ハードウェアコーデック、前記イメージコンバータ、前記ＬＣＤコントローラの各々のスレーブポートとマスタポートは、互いに異なる保安属性に設定される。
【０００８】
前記目的を達成するための保安領域又は非保安領域をトラストゾーン方式によってアクセスするシステムオンチップは、前記トラストゾーン方式のアクセス制御を支援するプロセッシングユニットと、前記プロセッシングユニットの制御に応じてワーキングメモリに格納されたデータを処理して前記ワーキングメモリに格納するハードウェアコーデックと、前記ワーキングメモリに格納された前記処理されたデータのイメージフォーマットを変換して前記ワーキングメモリに格納するイメージコンバータと、前記ワーキングメモリに格納された前記変換されたイメージフォーマットをディスプレイに表示するＬＣＤコントローラと、前記ハードウェアコーデック、前記イメージコンバータ、前記ＬＣＤコントローラの各々の前記ワーキングメモリへのアクセスを制御する第１乃至第３メモリ管理ユニットとを含む。
【０００９】
前記目的を達成するための本発明に係るワーキングメモリにアクセスして、保安コンテンツを処理するシステムオンチップ（ＳｏＣ）は、前記ワーキングメモリにロードされた保安運営システムと非保安運営システムによって排他的に駆動されるプロセッシングユニットと、前記プロセッシングユニットの制御により、前記保安コンテンツを再生するための少なくとも一つのハードウェアブロックと、前記ハードウェアブロックの前記ワーキングメモリへのアクセスを制限するメモリ保護ユニットとを含み、前記ハードウェアブロックのスレーブポートは、非保安属性に、前記ハードウェアブロックのマスタポートは、保安属性に設定される。
【発明の効果】
【００１０】
以上のような本発明の実施形態によると、保安コンテンツに対する高いレベルの保安を提供することができる。そして、既存のハードウェアに対する変更を最小化して、開発や検証に必要なコストを最小化することができる。また、保安領域に対する変更を最小化して保安性とシステムの安定性とを同時に向上させることができる。また、本発明の実施形態によると、保安領域と非保安領域間の転換回数を大幅に減らすことができ、性能のオーバーヘッドの発生を減少させることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係るモバイル装置を示すブロック図。
【図２】図１の設定でのソフトウェアの構造を簡略に示すブロック図。
【図３】本発明の第１実施形態に係るシステムオンチップを示すブロック図。
【図４】図３のシステムオンチップのソフトウェア構造を示す図。
【図５】本発明の実施形態に係るメモリマップを示す図。
【図６】ハードウェアコーデックがアクセス可能なメモリマップを示す図。
【図７】イメージコンバータがアクセス可能なメモリマップを示す図。
【図８】ＬＣＤコントローラがアクセス可能なメモリマップを示す図。
【図９】本発明の第２実施形態に係るシステムオンチップを示すブロック図。
【図１０】本発明の第３実施形態に係るシステムオンチップを示すブロック図。
【図１１】本発明の第４実施形態に係るシステムオンチップを示すブロック図。
【図１２】本発明の実施形態に係るシステムオンチップを含むモバイル装置を示すブロック図。
【図１３】本発明の実施形態に係る保安機能を実行するコンピュータシステムを示すブロック図。
【発明を実施するための形態】
【００１２】
前述の説明及び以下の詳細な説明は例示的であり、請求された発明の付加的な説明が提供されるものである。参照符号は、本発明の好ましい実施形態に詳細に表示されており、その例が参照図面に表示されている。図面上で、同一符号は同一要素を示す。
以下では、システムオンチップ（ＳｏＣ）は、本発明の特徴と機能を説明するための単に一例として使用される。しかし、この技術分野に精通した人であれば、ここに記載された内容に基づいて、本発明の他の利点と性能を容易に理解できる。本発明は、他の実施例を通じて実現、又は適用可能である。さらに、詳細な説明は、本発明の範囲、技術的思想及び他の目的から逸脱せず、観点及び応用に応じて変更、又は修正可能である。
【００１３】
図１は、本発明の実施形態に係るモバイル装置を示すブロック図である。図１を参照すると、本発明のモバイル装置１００は、プロセッシングユニット１１０と、コントロールバス１２０と、ハードウェアブロック１３０と、メモリ管理ユニット１４０と、データバス１５０と、アクセス制御ユニット１６０と、ワーキングメモリ１７０とを含む。ここで、ワーキングメモリ１７０を除いた構成は、１つのシステムオンチップ（ＳｏＣ）に含めることができる。
【００１４】
プロセッシングユニット１１０は、アプリケーション又は運営システム（ＯＳ）のようなソフトウェアによって制御される。プロセッシングユニット１１０は、様々なプログラムやハードウェアドライバ（Ｈａｒｄｗａｒｅ  ｄｒｉｖｅｒ）を駆動することになる。特に、プロセッシングユニット１１０の動作モードは、一般モード（Ｎｏｒｍａｌ  Ｍｏｄｅ）と保安モード（Ｓｅｃｕｒｅ  ｍｏｄｅ）とに分けることができる。本発明のプロセッシングユニット１１０上で動作するソフトウェアは、２つの分離されたプロセッサで動作するように見える抽象化技術が適用される。例えば、単一または複数のコアで構成されるプロセッシングユニット１１０上で保安関連のソフトウェアと一般ソフトウェアとを区分して駆動することができる。例えば、プロセッシングユニット１１０は、トラストゾーン（ＴｒｕｓｔＺｏｎｅ）保安構造を支援するエンベデッドプロセッサであり得る。
【００１５】
プロセッシングユニット１１０は、提供されるコンテンツに含まれた保安状態ビット（Ｓｅｃｕｒｅ  ｓｔａｔｅ  ｂｉｔ）を参照して、ハードウェアブロック１３０とメモリ管理ユニット１４０に対する保安モードの設定を行うことができる。プロセッシングユニット１１０の保安モードの設定は、アクセス制御ユニット１６０の設定を通じて達成することができる。
【００１６】
例えば、保安コンテンツを処理（例えば、再生）する場合、プロセッシングユニット１１０は、ハードウェアブロック１３０に対する保安属性を２重に設定することができる。すなわち、プロセッシングユニット１１０は、ハードウェアブロック１３０のスレーブポート１３２を非保安モードＮＳに設定することができる。そして、プロセッシングユニット１１０は、ハードウェアブロック１３０のマスタポート１３４を保安モードＳに設定することができる。これらのプロセッシングユニット１１０の制御動作は、コントロールバス１２０を通じて行われる。
【００１７】
コントロールバス１２０は、プロセッシングユニット１１０のハードウェアブロック１３０を制御するための制御経路を提供する。コントロールバス１２０を通じたプロセッシングユニット１１０のハードウェアユニット１３０のアクセス権限は、アクセス制御ユニット１６０に定義することができる。コントロールバス１２０を通じたプロセッシングユニット１１０のハードウェアブロック１３０へのアクセスは自由に行うことができる。これは、ハードウェアブロック１３０の保安属性が、コントロールバス１２０に対して非保安モード（ＮＳ）に設定されているからである。
【００１８】
ハードウェアブロック１３０は、提供されたコンテンツを実質的に再生するための構成である。例えば、ハードウェアブロック１３０は、圧縮されたコンテンツデータ（Ｃｏｎｔｅｎｔｓ  ｄａｔａ）をデコーディングし、その結果として動画や音源信号に出力するコーデックであり得る。ハードウェアブロック１３０は、イメージのフォーマットやサイズを対応するモバイル装置に適した形態に変換するイメージコンバータになることができる。そして、ハードウェアブロック１３０は、対応するイメージを表示する役割を果たすことができる。しかし、ハードウェアブロック１３０の機能や詳細な構成は、これらに限定されない。コンテンツの再生のためのデータの処理を実行する様々な構成がハードウェアブロック１３０に含まれる。
【００１９】
本発明のハードウェアブロック１３０は、二重の保安属性に設定することができる。すなわち、ハードウェアブロック１３０がコントロールバス１２０に接続されるスレーブポート１３２は、非保安モードＮＳに設定される。そして、データバス１５０に接続されるマスタポート１３４は、保安モードＳに設定される。したがって、ハードウェアブロック１３０は、非保安モードで動作するすべてのマスタＩＰ（Ｉｎｔｅｌｌｅｃｔｕａｌ  Ｐｒｏｐｅｒｔｙ）に対して自由に制御可能である。つまり、ハードウェアブロック１３０は、プロセッシングユニット１１０によって駆動される非保安領域のソフトウェアによって制限なくアクセス可能である。
【００２０】
メモリ管理ユニット１４０は、ハードウェアブロック１３０とデータバス１５０との間でハードウェアブロック１３０がアクセスするメモリ領域を制限する。ハードウェアブロック１３０でスレーブポート１３２を非保安モードＮＳに設定し、マスタポート１３４を保安モードＳに設定した場合には、ソフトウェアの保安領域と非保安領域の分離原則を無力化させる恐れがある。なぜなら、非保安モードで動作する任意のマスタＩＰを通じて保安モードに該当するトランザクションが作られる可能性があるためである。
【００２１】
本発明では、ハードウェアブロック１３０の二重保安属性による脆弱性をメモリ管理ユニット１４０によって解決することができる。メモリ管理ユニット１４０は、保安領域で完全に管理されている。そして、メモリ管理ユニット１４０のメモリ変換テーブル（Ｔｒａｎｓｌａｔｉｏｎ  Ｔａｂｌｅ）には、ハードウェアブロック１３０がアクセスするメモリ領域のみがマッピングされるように設定される。上述のメモリ管理ユニット１４０の設定によって、一般運営システムＯＳが実行中である時に、プロセッシングユニットは、保安メモリ領域に存在するコンテンツに対するアクセスが不可になる。
【００２２】
データバス１５０は、プロセッシングユニット１１０やハードウェアブロック１３０によるメモリアクセス経路を提供する。データバス１５０を通じてプロセッシングユニット１１０とハードウェアブロック１３０は、ワーキングメモリ１７０にアクセスする。保安コンテンツを処理するために、ハードウェアブロック１３０は、単位データを読み出して、処理した後、再びワーキングメモリの指定されたアドレス領域に格納することになる。
【００２３】
アクセス制御ユニット１６０は、プロセッシングユニット１１０の制御によって、ハードウェアブロック１３０の保安属性を設定することができる。アクセス制御ユニット１６０は、プロセッシングユニット１１０の制御によってワーキングメモリ１７０の保安属性を設定することができる。アクセス制御ユニット１６０は、システムオンチップ内部のハードウェアブロックの保安属性を設定するための機能を含む。そして、アクセス制御ユニット１６０は、システムオンチップによってアクセスされるワーキングメモリの保安属性も選択的に制御することができる。例えば、アクセス制御ユニット１６０は、ＡＲＭ社のトラストゾーン（ＴｒｕｓｔＺｏｎｅ）の機能を含むことができる。アクセス制御ユニット１６０は、ハードウェアＩＰに対する保安属性とワーキングメモリ１７０に対する保安属性とを保安モードと非保安モードとに区分して管理するすべてのアクセス制御装置を含むことができる。
【００２４】
ワーキングメモリ１７０には、様々なデータをロードすることができる。例えば、運営システムやハードウェアを駆動するためのドライバをロードすることができる。特に、ワーキングメモリ１７０のメモリ領域は、保安領域と非保安領域に区別される。これらの領域の分離は、アクセス制御ユニット１６０のワーキングメモリ属性を定義する機能を通じて実現することができる。保安コンテンツは、デコーディング過程が行われた後には、ワーキングメモリ１７０の保安メモリ領域にのみ格納される。
上述したモバイル装置１００によると、非保安モードに対応する場合でも、保安コンテンツに対するアクセスを完全に遮断することができる。
【００２５】
図２は、図１の設定でのソフトウェア構造を簡略に示すブロック図である。図２を参照すると、モバイル装置１００で駆動される運営システムＯＳは、一般運営システム２１０と保安運営システム２２０とに分離される。上述の図１で説明した方法でハードウェアブロック１３０の保安設定を二重に管理し、メモリ管理ユニット１４０を通じて追加のアクセス制御を実行する場合に、保安運営システム２２０の負担は減少するようになる。一方、一般運営システム２１０上でハードウェアブロック１３０を制御するためのドライバが駆動される。したがって、保安モードと一般モードとの間のスイッチングの発生を最小化することができる。一般モードは非保安モード（Ｎｏｎ−Ｓｅｃｕｒｅ  ｍｏｄｅ）を意味する。より具体的に説明すると、次の通りである。
【００２６】
モバイル装置１００を駆動するためのソフトウェア構造は大きく保安モード（Ｓｅｃｕｒｅ  ｍｏｄｅ）と一般モード（Ｎｏｒｍａｌ  ｍｏｄｅ）とに区別される。各々のモードは、１つのプロセッシングユニット１１０で駆動されるため、スイッチングによって互いに異なるタイムスロットで実行される。
【００２７】
一般運営システム２１０は、保安の必要のない様々な基本動作を支援する。一般運営システム２１０は、例えば、リナックス（登録商標）系列、ウィンドウズ（登録商標）系列、アンドロイド又はｉＯＳ系列のうちの少なくとも１つの運営システムとすることができる。特に、本発明に係るソフトウェアの構造で、ハードウェアブロックドライバ２１５は一般運営システム２１０領域で駆動される。ハードウェアブロック１３０を駆動するハードウェアブロックドライバ２１５の一般領域での駆動は、予め検証されたソフトウェアの再利用を可能にする。保安領域で動作するハードウェアブロック１３０を駆動するためのドライバソフトウェアを追加すれば、保安運営システム２２０の可用資源の消耗を避けることができない。
【００２８】
保安運営システム２２０は、保安を必要とするデータ処理のために別々に駆動される運営システムである。一般的に、保安コンテンツを処理するためには、保安運営システム２２０上で関連ＩＰのドライバが実行されなければならない。しかし、本発明のハードウェアブロック１３０の二重保安設定とメモリ管理ユニット１４０による追加の設定を通じて保安コンテンツを再生するためのハードウェアブロックドライバ２１５は、保安運営システム２２０上で実行される必要がなくなる。したがって、保安運営システム２２０上にはメモリ管理ユニット１４０やアクセス制御ユニット１６０を制御するためのファイアウォールドライバ２２５が実行される。
【００２９】
一般的に、保安運営システム２２０は、コンテンツの処理のために設計されたものではない。したがって、保安運営システム２２０上でハードウェアブロックドライバ２１５を駆動するのは容易ではなく、必要なハードウェアに対するドライバを支援しない場合も多い。そして、映像処理の時には、毎フレームごとにコンテンツ処理用ＩＰの保安設定を保安モードと一般モードとにスイッチングしなければならない。したがって、保安コンテンツの再生を保安運営システム２２０によって処理することは、あまりにも大きな負担を伴う。
【００３０】
加えて、コンテンツの再生のような複雑な演算を実行するソフトウェアが、保安運営システム２２０で実行される時、安全性の検証を困難にする。なぜなら、保安コンテンツに対する認証手続きにかかる時間が大幅に長くなって、それに伴う様々な付加問題が生じる可能性があるからである。
【００３１】
本発明では、保安運営システム２２０はハードウェアブロック１３０のアクセスを制御するメモリ管理ユニット１４０とアクセス制御ユニット１６０を制御するファイアウォールドライバ２２５が、保安運営システム２２０上で実行される。したがって、コンテンツの再生のために最小限のソフトウェアだけが保安領域で実行される。加えて、コンテンツの再生のためのデータを処理するすべてのハードウェアブロック１３０を保安モードで使用するためには多くの時間の遅延と電力の消費が発生する。一つのフレームを処理するためにも、ハードウェアブロック１３０の実行領域は、保安領域と非保安領域とを何度も移行するからである。
【００３２】
図３は、本発明の第１実施形態に係るモバイル装置を示すブロック図である。図３を参照すると、モバイル装置は、概略的に、システムオンチップ３００とワーキングメモリに提供されるＳＤＲＡＭ３７０と外部不揮発性メモリ３９０とを含むことができる。ここで、システムオンチップ３００は、保安領域と非保安領域とに分けて駆動されるプロセッサとハードウェアＩＰの各々に対する保安設定が可能なトラストゾーン（ＴｒｕｓｔＺｏｎｅ）方式のチップを例に説明する。
【００３３】
ＡＲＭコア３１０は、トラストゾーン（ＴｒｕｓｔＺｏｎｅ）を支援するプロセッシングユニットである。ＡＲＭコア３１０は駆動されるソフトウェアによって保安モードと非保安モードとに分けて動作する。ＡＲＭコア３１０は、保安運営システム（Ｓｅｃｕｒｅ  ＯＳ）と一般運営システム（Ｎｏｒｍａｌ  ＯＳ）について、保安モードと非保安モードのうちのいずれか１つのモードで動作するようになる。ＡＲＭコア３１０は、処理するコンテンツの種類に応じてアクセス制御ユニットＴＺＰＣ、ＴＺＡＳＣを設定する。
【００３４】
コントロールバス３２０は、ＡＲＭコア３１０によるシステムオンチップ３００のすべての構成に対する制御経路を提供する。コントロールバス３２０を介してＡＲＭコア３１０は、保安状態ビット（Ｓ−ｂｉｔ）を様々な機能ブロックに提供することができる。コントロールバス３２０によって提供される保安状態ビットＳ−ｂｉｔを参照して、周辺装置と格納装置のすべてのトランザクションは論理的に分割される。これらのトランザクションの論理的な分割を通じて周辺機器や記憶装置の動作は、保安モードと非保安モードとに厳密に分離することができる。
【００３５】
ハードウェアコーデック３３０ａは、ＳＤＲＡＭ３７０をアクセスして格納されたコンテンツデータを読み出す。ハードウェアコーデック３３０ａは、ＳＤＲＡＭ３７０の保安領域に格納されたコンテンツデータを読み出して、デコーディングして再生するための映像信号に復元する。特に、ハードウェアコーデック３３０ａのマスタポート（Ｍａｓｔｅｒ  ｐｏｒｔ）とスレーブポート（Ｓｌａｖｅ  ｐｏｒｔ）とは、互いに異なる属性の保安モードに設定することができる。すなわち、コントロールバス３２０と接続されるハードウェアコーデック３３０ａのスレーブポートは、非保安モード（Ｎｏｎ−ｓｅｃｕｒｅ）に設定することができる。そして、メモリ管理ユニット３４０ａに接続されるハードウェアコーデック３３０ａのマスタポート（Ｍａｓｔｅｒ  ｐｏｒｔ）は、保安モード（Ｓｅｃｕｒｅ）に設定することができる。
【００３６】
これらのハードウェアコーデック３３０ａの設定によると、ＡＲＭコア３１０で駆動される非保安領域（Ｎｏｎ−ｓｅｃｕｒｅ  ｄｏｍａｉｎ）のソフトウェアは、ハードウェアコーデック３３０ａにより容易にアクセスすることができる。そして、非保安領域（Ｎｏｎ−ｓｅｃｕｒｅ  ｄｏｍａｉｎ）で駆動されるドライバによってハードウェアコーデック３３０ａを容易に制御することができる。
【００３７】
一方、ハードウェアコーデック３３０ａのデータバス３５０、又はメモリ管理ユニット３４０ａとのトランザクションを交換するマスタポートは、保安モード（Ｓｅｃｕｒｅ  ｍｏｄｅ）に設定されている。他方、ハードウェアコーデック３３０ａのスレーブポートは、保安保護モード（Ｎｏｎ−Ｓｅｃｕｒｅｍｏｄｅ）に設定されている。これによって、非保安モードで、ＡＲＭコア３１０で駆動される悪性コード（Ｍａｌｉｃｉｏｕｓ  ｃｏｄｅ）がハードウェアコーデック３３０ａを悪用して、保安メモリ領域にアクセスする恐れがある。このような場合を遮断するため、ハードウェアコーデック３３０ａのマスタポートとデータバス３５０との間にメモリ管理ユニット３４０ａが挿入される。
【００３８】
イメージコンバータ３３０ｂは、ハードウェアコーデック３３０ａによってデコーディングされたイメージのサイズ、色空間（Ｃｏｌｏｒ  ｓｐａｃｅ）などのフォーマットを変換する。ハードウェアコーデック３３０ａによってデコーディングされた元データは、様々なモバイル装置のディスプレイ装置のフォーマットと一致しないことがありうる。このような場合、元データは、ＬＣＤコントローラ３３０ｃによって処理し難い場合がある。イメージコンバータ３３０ｂは、元データをモバイル装置３００に最適化されたフォーマットに変換する。
【００３９】
ここで、イメージコンバータ３３０ｂのマスタポートとスレーブポートとは、互いに異なる保安モードに設定される。つまり、コントロールバス３２０と接続するイメージコンバータ３３０ｂのスレーブポートは、非保安モードに設定される。そして、メモリ管理ユニット３４０ｂに接続するイメージコンバータ３３０ｂのマスタポートは保安モードに設定される。
【００４０】
ＬＣＤコントローラ３３０ｃは、ハードウェアコーデック３３０ａによってデコーディングされた原本イメージデータや、イメージコンバータ３３０ｂによって変換されたイメージデータをディスプレイ（図示せず）に表示する。ＬＣＤコントローラ３３０ｃによってイメージが表示されるために、イメージデータは、ＳＤＲＡＭ３７０のフレームバッファ（ＦＲＡＭｅ  ｂｕｆｆｅｒ）に移さなければならない。これにより、ＬＣＤコントローラ３３０ｃは、フレームバッファのイメージデータを読み出してディスプレイに表示することになる。
【００４１】
ここで、ＬＣＤコントローラ３３０ｃのマスタポートとスレーブポートもハードウェアコーデック３３０ａやイメージコンバータ３３０ｂと同様に、二重保安属性に設定することができる。すなわち、コントロールバス３２０と接続するＬＣＤコントローラ３３０ｃのスレーブポートは、非保安モードに設定される。そして、メモリ管理ユニット３４０ｃに接続するＬＣＤコントローラ３３０ｃのマスタポートは保安モードに設定される。
【００４２】
以上で、ハードウェアコーデック３３０ａ、イメージコンバータ３３０ｂ、及びＬＣＤコントローラ３３０ｃの二重保安属性の設定例を説明した。しかし、このような二重保安設定の対象は、これらの構成に限定されるものではない。すなわち、保安コンテンツを再生するためにＳＤＲＡＭ３７０の保護領域にアクセスする様々なハードウェアＩＰを二重保安属性を持つように設定することができる。
【００４３】
メモリ管理ユニット３４０ａは、ハードウェアコーデック３３０ａのマスタポートとスレーブポートの二重保安属性の設定に伴う潜在的な保安の脆弱性を補完する。メモリ管理ユニット３４０ａは、仮想アドレスを物理アドレスにマップするために様々なシステムで使用される。しかし、本発明のメモリ管理ユニット３４０ａは、ハードウェアコーデック３３０ａから出力される仮想アドレスをＳＤＲＡＭ３７０の物理アドレスにマッピングする。もし、一般運営システムＯＳの実行中にＡＲＭコア３１０がハードウェアコーデック３３０ａに非保安マスタの状態でアクセスしても、ハードウェアコーデック３３０ａの保安トランザクションが実際にアクセスすることができるのは、メモリ管理ユニット３４０ａによってマップされたメモリ領域に限定される。したがって、ハードウェアコーデック３３０ａの二重保安設定による潜在的な保安の脆弱性は、メモリ管理ユニット３４０ａの変換テーブル（Ｔｒａｎｓｌａｔｉｏｎ  Ｔａｂｌｅ）の設定を通じて遮断される。ここで、メモリ管理ユニット３４０ａの変換テーブルは、ＳＤＲＡＭ３７０の保安領域で管理される。
【００４４】
メモリ管理ユニット３４０ｂ、３４０ｃは、各々のイメージコンバータ３３０ｂと、ＬＣＤコントローラ３３０ｃの潜在的な保安の脆弱性を補完する。イメージコンバータ３３０ｂの二重保安設定による潜在的な保安の脆弱性は、メモリ管理ユニット３４０ｂの変換テーブルの設定を通じて遮断することができる。ＬＣＤコントローラ３３０ｃの二重保安設定による潜在的な保安の脆弱性は、メモリ管理ユニット３４０ｃの変換テーブルの設定を通じて遮断することができる。メモリ管理ユニット３４０ｂ、３４０ｃの各々の変換テーブルは、ＳＤＲＡＭ３７０の保安領域で管理される。
【００４５】
データバス３５０は、ＡＲＭコア３１０、ハードウェアコーデック３３０ａ、イメージコンバータ３３０ｂ、ＬＣＤコントローラ３３０ｃなどのメモリアクセス経路を提供する。データバス３５０を通じてシステムオンチップ３００の外部に位置するＳＤＲＡＭ３７０や外部の不揮発性メモリ３９０に対するすべてのハードウェアのアクセスが行われる。もちろん、データバス３５０は、様々なマスタＩＰに対してシステムオンチップ３００の内部に位置する内部ＲＡＭ３８０へのメモリアクセス経路を提供することができる。
【００４６】
ＴＺＰＣ３６０ａは、ハードウェアＩＰの保安属性を設定するための構成である。ＴＺＰＣ３６０ａは、保安ソフトウェアと一般ソフトウェアによる論理的分割を周辺機器（Ｐｅｒｉｐｈｅｒａｌ  ＩＰ）に適用するためのトラストゾーン（ＴｒｕｓｔＺｏｎｅ）方式のシステムオンチップの構成である。ＴＺＰＣ３６０ａは、ハードウェアＩＰのすべての保安属性を設定することができる。ＴＺＰＣ３６０ａのプログラムを通じて、ハードウェアＩＰの保安属性を保安モード、保安保護モードに設定することができる。ＴＺＰＣ３６０ａのプログラムを通じてハードウェアコーデック３３０ａ、イメージコンバータ３３０ｂ、ＬＣＤコントローラ３３０ｃなどのＩＰに対する保安属性を二重に設定することができる。ＴＺＰＣ３６０ａに対するプログラムは、保安領域に含まれるアプリケーションやドライバが実行することができる。
【００４７】
本発明のＴＺＰＣ３６０ａは、ハードウェアコーデック３３０ａ、イメージコンバータ３３０ｂ、ＬＣＤコントローラ３３０ｃの各々のスレーブポートとマスタポートの保安を独立的に設定することができる。もちろん、ハードウェアコーデック３３０ａ、イメージコンバータ３３０ｂ、ＬＣＤコントローラ３３０ｃだけではなく、保安コンテンツを再生する経路に含まれるすべてのハードウェアＩＰについてもＴＺＰＣ３６０ａは、二重保安属性の設定が可能である。ＴＺＰＣ３６０ａは、ハードウェアＩＰのメモリ管理ユニット３４０ａ、３４０ｂ、３４０ｃに接続されるマスタポートは保安モードＳに、コントロールバス３２０に接続されるスレーブポートは、非保安モードＮＳに設定される。
【００４８】
ＴＺＡＳＣ３６０ｂは、ワーキングメモリの保安設定のための制御回路に対応する。具体的にＴＺＡＳＣ３６０ｂは、ＳＤＲＡＭ３７０の領域別属性を保安領域と非保安領域とに分離するための構成である。メモリマップ上での保安領域として管理されなければならないデータと非保安領域として管理されなければならないデータとがある。デコーディングされたすべての保安コンテンツに対応するデータは、ＴＺＡＳＣ３６０ｂによって保安領域で管理される。そして、メモリ管理ユニット３４０ａ、３４０ｂ、３４０ｃのアクセス経路を定義する変換テーブルは、ＳＤＲＡＭ３７０の保安領域に格納される。
【００４９】
加えて、ワーキングメモリに提供されるＳＤＲＡＭ３７０がモバイル装置の一部として提供される。ＳＤＲＡＭ３７０のメモリ領域は、保安領域と非保安領域とに区分して管理することができる。ＳＤＲＡＭ３７０のメモリマップについては後述する図面で詳細に説明する。ＳＤＲＡＭ３７０に対するアクセスを制御するためのＤＲＡＭコントローラ３７５は、システムオンチップの内部に含まれる。ＤＲＡＭコントローラ３７５は、データバス３５０とＴＺＡＳＣ３６０ｂとを経由して提供されるＡＲＭコア３１０やハードウェアＩＰ３３０ａ、３３０ｂ、３３０ｃのアクセス要請に応じてＳＤＲＡＭ３７０を制御する。ここで、ＴＺＡＳＣ３６０ｂとＤＲＡＭコントローラ３７５とは、コントロールバス３２０によって保安モードに設定することができる。
【００５０】
内部ＲＡＭ３８０には、保安運営システムがロードされる。内部ＲＡＭ３８０は、ＴＺＰＣ３６０ａによって保安モードに設定することができる。外部不揮発性メモリ３９０は様々なコンテンツやコードを格納することができる。外部不揮発性メモリ３９０を制御するためのストレージコントローラ３９５がシステムオンチップ３００に含まれる。そして、ストレージコントローラ３９５へのアクセスは、非保安モードＮＳに設定される。
【００５１】
上述した本発明のシステムオンチップ３００によると、コンテンツデータを処理するハードウェアＩＰ３３０ａ〜３３０ｃの保安属性を２重に設定することができる。したがって、これらのハードウェアＩＰ３３０ａ〜３３０ｃを駆動するためのドライバは非保安領域（一般運営システム）で実行することができる。したがって、保安コンテンツの再生に必要なリソースを効率的に使用することができる。これらのハードウェアＩＰ３３０ａ〜３３０ｃの２重保安設定による潜在的な保安の脅威は、保安モードで動作するメモリ管理ユニット３４０ａ、３４０ｂ、３４０ｃを通じて除去することができる。このような構成を通じて本発明の実施形態に係るシステムオンチップ３００は保安コンテンツを処理する際に高い保安性能を提供することができる。また、本発明の実施形態に係るシステムオンチップ３００は、既存のシステムオンチップＳｏＣの構造の変更を最小化しつつ、且つ高い保安性能とコンテンツの再生品質を提供することができる。
【００５２】
図４は、図３のシステムオンチップのソフトウェア構造を示す図である。図４を参照すると、トラストゾーン（ＴｒｕｓｔＺｏｎｅ）を支援するシステムオンチップの運営システムは、一般運営システム４１０と保安運営システム４２０とに二元化される。加えて、保安コンテンツを処理するためのハードウェアＩＰのドライバは、一般運営システム４１０で駆動され、保安運営システム４２０には、ファイアウォールドライバ４２５が駆動される。
【００５３】
一般運営システム４１０は、モバイル装置に最適化された任意の運営システムであり得る。例えば、一般的運営システム４１０は、リナックス、アンドロイド、ｉＯＳ、またはウィンドウズ系列の運営システムとすることができる。しかし、一般運営システム４１０は、トラストゾーンを支援する様々な運営システムを含むことができる。一般運営システム４１０でコーデックドライバ４１１、イメージコンバータドライバ４１２、ＬＣＤコントローラドライバ４１３、及びトラストゾーンアクセスドライバ４１４などが駆動される。
【００５４】
コーデックドライバ４１１を使用して一般運営システム４１０、または一般運営システム４１０上で動作する様々な応用プログラムは、ハードウェアコーデック３３０ａを制御することができる。イメージコンバータドライバ４１２によって一般運営システム４１０、または一般運営システム４１０上で動作する様々な応用プログラムは、イメージコンバータ３３０ｂを制御することができる。ＬＣＤコントローラドライバ４１３を使用して一般運営システム４１０、または一般運営システム４１０上で動作する様々な応用プログラムは、ＬＣＤコントローラ３３０ｃを制御することができる。
【００５５】
加えて、一般運営システム４１０には、トラストゾーンアクセスドライバ４１４が駆動される。トラストゾーンアクセスドライバ４１４によって一般運営システム４１０、又は一般運営システムの領域で駆動される応用プログラムは、保安運営システム４２０と通信することができる。
【００５６】
保安運営システム４２０は、保安機能を統合した保安カーネル（Ｓｅｃｕｒｅ  Ｋｅｒｎａｌ）を含む運営システムである。トラストゾーンを支援するシステムオンチップ３００で、保安運営システム４２０は、一般運営システム４１０と同様に、ＡＲＭコア３１０を通じて駆動される。しかし、保安運営システム４２０は、一般運営システム４１０とは異なるタイムスロットで、システムの制御権限を有する。
【００５７】
万一、本発明のメモリ管理ユニットＭＭＵの選択的なアクセス制御が存在しなければ、保安コンテンツの再生のためのすべてのハードウェアＩＰのドライバは、保安運営システム４２０で駆動されなければならない。これは、ハードウェアＩＰに付与された保安属性が画一的に保安モードに設定されなければならず、このようなハードウェアＩＰを制御するためには、保安運営システム４２０の権限でのみ可能であるからである。
【００５８】
しかし、本発明の特徴によれば、保安運営システム４２０には、ファイアウォールドライバ４２５のみが駆動される。ファイアウォールドライバ４２５は、システムオンチップ３００のＴＺＰＣ３７０ａ、ＴＺＡＳＣ３７０ｂ、メモリ管理ユニット３４０ａ、３４０ｂ、３４０ｃを制御する。ファイアウォールドライバ４２５の制御によって、保安コンテンツを処理するハードウェアＩＰの動作を制御することができる。つまり、ファイアウォールドライバ４２５によって、本発明の保安の動作が制御される。
【００５９】
図５は、本発明の実施形態に係るメモリマップを示す図である。図５を参照すると、ＡＲＭコア３１０によって示されるメモリマップである。メモリマップは、保安領域５１０、５３０、５４０と非保安領域５２０に区分することができる。これらの領域の区分は、上述のＴＺＡＳＣ３６０ｂによって設定することができる。
保安領域５１０、５３０、５４０は、メモリ管理ユニットＭＭＵの変換テーブルと保護されるべきハードウェアコーデックのバッファ、保安運営システム、保安リソースなどが含まれる。
【００６０】
ＳＤＲＡＭ３７０の保安領域５１０には、メモリ管理ユニット３４０ａ、３４０ｂ、３４０ｃの各々の変換テーブル５１１、５１２、５１３が含まれる。変換テーブル５１１は、メモリ管理ユニット３４０ａの論理アドレスと物理アドレスのマッピングテーブルに対応する。変換テーブル５１１によってハードウェアコーデック３３０ａのアクセス可能領域が定義される。ハードウェアコーデック３３０ａのスレーブポートが非保安属性に設定されるので、任意のソフトウェアによってハードウェアコーデック３３０ａに対するアクセスが可能である。したがって、非保安に設定されたハードウェアコーデック３３０ａのマスタＩＰによって保安トランザクションが生成され得る。しかし、ハードウェアコーデック３３０ａにアクセスしたどのようなマスタＩＰもメモリ管理ユニット３４０ａに設定された変換テーブル５１１の範囲を外れるメモリアクセスは許可されない。このような変換テーブル５１１の機能は、イメージコンバータ３３０ｂ、ＬＣＤコントローラ３３０ｃに対応する変換テーブル５１２、５１３にも同様に適用される。
【００６１】
変換テーブル５１１は、ハードウェアコーデック３３０ａのアクセス領域を制限する。すなわち、ハードウェアコーデック３３０ａによってアクセス可能なメモリ領域が、変換テーブル５１１によって設定される。変換テーブル５１１によってハードウェアコーデック３３０ａは、ＳＤＲＡＭ３７０の保安領域の一部にのみアクセスが許可される。例えば、変換テーブル５１１は、ハードウェアコーデック３３０ａのマスタポートの属性が保安モードＳであっても、ＳＤＲＡＭ３７０のすべての保安領域５１０へのアクセスを不可能に設定することができる。
【００６２】
コーデック入力バッファ５１４には、ハードウェアコーデック３３０ａで処理するコンテンツデータが格納される。コーデック入力バッファ５１４に格納されたコンテンツをハードウェアコーデック３３０ａがアクセスして処理することになる。そして、リファレンスフレームバッファ５１５には、動画の動きの補償のために使用されるリファレンスフレーム（Ｒｅｆｅｒｅｎｃｅ  ｆｒａｍｅ）が格納される。一般的には、リファレンスフレームには以前のフレームのデータを格納することができる。コーデックファームウェア５１６は、ハードウェアコーデック３３０ａの機能を支援するコードデータである。そして、コーデック出力バッファ５１７はコーデックで処理されたデータが格納されるメモリ領域である。結局、ハードウェアコーデック３３０ａは、ＳＤＲＡＭ３７０の保安領域に含まれるコーデック入力バッファ５１４、リファレンスフレームバッファ５１５からデータを読み出して処理することになる。そして、ハードウェアコーデック３３０ａによって処理されたデータはコーデック出力バッファ５１７に格納される。
【００６３】
フレームバッファ５１８は、イメージコンバータ３３０ｂによって処理されたイメージデータが格納される。イメージコンバータ３３０ｂは、コーデック出力バッファ５１７に格納されたデータを読み出して、一つの画面に対応する画素データに変換する。そして、モバイル装置に最適化されたフォーマットに変換された画素データは、再びフレームバッファ５１８に格納される。
以上の保安コンテンツを処理するために、映像コンテンツが格納されるハードウェアコーデック３３０ａとイメージコンバータ３３０ｂによってアクセスされるＳＤＲＡＭ３７０の保安メモリ領域５１０を説明した。
【００６４】
非保安メモリ領域５２０には、ＵＩフレームバッファ５２１、暗号化されたコンテンツ５２２、及び非保安運営システム５２３がロードされる。非保安メモリ領域５２０に格納されたデータに対しては、ハードウェアＩＰの保安属性に関係なくアクセスが可能である。内部ＳＲＡＭ５３０には、保安運営システム５３１がロードされる。保安運営システム５３１は、保安を要求する応用プログラムを駆動することができる。装置特定キー５４０も保安属性に設定される。装置特定キー５４０は、図示しないが、保安キーを格納するための別途の記憶装置に具備できる。
【００６５】
以上では、ＡＲＭコア３１０から見たメモリマップを説明した。これらのメモリマップの構成は、前述したＴＺＡＳＣ３６０ｂによって制御することができる。
図６は、ハードウェアコーデックがアクセス可能なメモリマップを示す図である。図６を参照すると、ハードウェアコーデック３３０ａは、メモリ管理ユニット３４０ａによって保安領域の一部地域５１４、５１５、５１６、５１７へのみアクセスが許可される。
【００６６】
保安コンテンツのＤＲＭが解除されると、ＳＤＲＡＭ３７０の保安領域に割り当てられるコーデック入力バッファ５１４に記録される。この時、ハードウェアコーデック３３０ａは、コーデック入力バッファ５１４に格納されたコンテンツを読み出してデコーディングを実行することになる。ハードウェアコーデック３３０ａは、コーデック入力バッファ５１４から読み出されたフレームデータを変換することになる。ハードウェアコーデック３３０ａは、変換が完了したデータをコーデック出力バッファ５１７に書き込む。データの変換に必要なリファレンスフレームはリファレンスフレームバッファ５１５に書き込まれる。動画の場合、リファレンスフレームは以前のフレームで構成することができる。したがって、ハードウェアコーデック３３０ａは、リファレンスフレームバッファ５１５の読み出しと書き込みの両方の権限を持つことになる。そして、ハードウェアコーデック３３０ａは、ファームウェアコード領域５１６に対しては読み出し権限だけを持つ。
【００６７】
ハードウェアコーデック３３０ａは、メモリ管理ユニット３４０ａの設定に応じて、コーデック入力バッファ５１４とコーデックファームウェア領域５１６に対しては読み出し権限だけを持つ。そして、ハードウェアコーデック３３０ａは、メモリ管理ユニット３４０ａの設定に応じて、リファレンスフレームバッファ５１５に対しては、読み出し及び書き込みアクセス権を持つ。そして、ハードウェアコーデック３３０ａは、メモリ管理ユニット３４０ａの設定に応じて、コーデック出力バッファ５１７に対しては書き込み権限だけを持つ。
【００６８】
図７には、イメージコンバータがアクセス可能なメモリマップを示す。図７を参照すると、イメージコンバータ３３０ｂは、メモリ管理ユニット３４０ｂによってＳＤＲＡＭ３７０の保安領域の一部の領域３５５、５１８へのみアクセスが許可される。
イメージコンバータ３３０ｂは、コーデック出力バッファ５１７に対して読み出しアクセス権限を持つ。ハードウェアコーデック３３０ａによって処理されたデータはコーデック出力バッファ５１７に書き込まれる。これにより、イメージコンバータ３３０ｂは、最適のフォーマットに変換するためにコーデック出力バッファ５１７にアクセスしてデータを読み出す。イメージコンバータ３３０ｂによって変換された映像データは、フレームバッファ５１８に書き込まれる。
【００６９】
イメージコンバータ３３０ｂは、メモリ管理ユニット３４０ｂの設定に応じて、コーデック出力バッファ５１７に対しては読み出し権限を、フレームバッファ５１８に対しては書き込み権限だけを持つ。
図８には、ＬＣＤコントローラがアクセス可能なメモリマップを示す。図８を参照すると、ＬＣＤコントローラ３３０ｃは、メモリ管理ユニット３４０ｃによってＳＤＲＡＭ３７０の保安領域の一部５１８と非保安領域の一部５２１とにアクセスすることができる。
ＬＣＤコントローラ３３０ｃは、イメージコンバータ３３０ｂによって変換されたイメージデータをフレームバッファ５１８から読み出す。保安が必要なコンテンツに対応するイメージデータは、保安属性として設定されるフレームバッファ５１８に格納される。
【００７０】
ＬＣＤコントローラ３３０ｃは、ＵＩフレームバッファ５２１に対して読み出し権限を持つ。ＵＩフレームバッファ５２１には、ディスプレイ上に実現されるメニュー項目や、タッチスクリーンの様々な入力要素が含まれる。このように、ＵＩフレームバッファ５２１に格納されるデータは、保安コンテンツとは関連のないデータである。このように、ＵＩフレームバッファ５２１に格納されるデータは、保安属性として管理する必要がない。メモリ管理ユニット３４０ｃによって、ＬＣＤコントローラ３３０ｃは、割り当てられたメモリ領域に対して読み出し権限のみを持つ。
【００７１】
図９は、本発明の第２実施形態に係るシステムオンチップを示すブロック図である。図９を参照すると、システムオンチップ６００は、図３のシステムオンチップ３００に比較してメモリ管理ユニット３４０ａ、３４０ｂ、３４０ｃは、メモリ保護ユニット６４０ａ、６４０ｂ、６４０ｃに置き換え可能であることを示している。
【００７２】
メモリ保護ユニット６４０ａ、６４０ｂ、６４０ｃは、一般的にメモリ管理ユニット３４０ａ、３４０ｂ、３４０ｃのような仮想アドレスマッピング機能は備えていない。したがって、メモリ保護ユニット６４０ａ、６４０ｂ、６４０ｃによるＳＤＲＡＭ６７０のアクセス制御は、常にＳＤＲＡＭ６７０の物理アドレスを使用すべきであることが分かる。また、メモリ保護ユニット６４０ａ、６４０ｂ、６４０ｃの各々に対するアドレスマッピングテーブルは、ＳＤＲＡＭ６７０の保安領域で管理される。また、システムオンチップ６００に対するソフトウェア構造は、実質的に図４と同様である。
【００７３】
図１０は、本発明の第３の実施形態に係るシステムオンチップを示すブロック図である。図１０を参照すると、図１０のシステムオンチップ７００は、図９のシステムオンチップ６００に比較して、メモリ保護ユニット６４０ａ、６４０ｂ、６４０ｃが一つのメモリ保護ユニット７４０で構成されることを示している。
【００７４】
メモリ保護ユニット７４０は、図９のメモリ保護ユニット６４０ａ、６４０ｂ、６４０ｃの各々が実行するアクセス制御を統合して行うことができる。メモリ保護ユニット７４０は、ハードウェアコーデック７３０ａ、イメージコンバータ７３０ｂ、ＬＣＤコントローラ７３０ｃによって発生する保安属性のトランザクションであっても必要なメモリ領域にのみアクセスを許可する。すなわち、メモリ保護ユニット７４０は、ハードウェアコーデック７３０ａに対しては、コーデック入力バッファ５１４、リファレンスフレームバッファ５１５、コーデックファームウェア５１６、及びコーデック出力バッファ５１７へのアクセスのみを許可することになる。コーデック入力バッファ５１４、リファレンスフレームバッファ５１５、コーデックファームウェア５１６、及びコーデック出力バッファ５１７は、ＳＤＲＡＭ７７０の保安領域に割り当てられる。
【００７５】
メモリ保護ユニット７４０は、イメージコンバータ７３０ｂについてＳＤＲＡＭ７７０の保安領域に割り当てられるコーデック出力バッファ５１７とフレームバッファ５１８へのアクセスを許容する。特に、メモリ保護ユニット７４０の変換テーブルによってイメージコンバータ７３０ｂが、コーデック出力バッファ５１７に対しては、読み出し権限だけを、そしてフレームバッファ５１８に対しては書き込み権限だけを持つように設定される。
【００７６】
メモリ保護ユニット７４０は、ＬＣＤコントローラ７３０ｃに対してＳＤＲＡＭ７７０の保安領域に割り当てられるフレームバッファ５１８と非保安領域に割り当てられるＵＩフレームバッファ５２１へのアクセスを許容する。特に、メモリ保護ユニット７４０の変換テーブルによって、ＬＣＤコントローラ７３０ｃは、フレームバッファ５１８とＵＩフレームバッファ５２１に対しては読み出し権限だけを持つように設定される。
ここで、メモリ保護ユニット７４０の変換テーブルは、ＳＤＲＡＭ７７０の保安領域に割り当てられる。また、システムオンチップ７００に対するソフトウェア構造は、実質的に図４と同様である。
【００７７】
図１１は、本発明の第４の実施形態に係るシステムオンチップを示すブロック図である。図１１を参照すると、システムオンチップ８００は、図１０のシステムオンチップ７００に比較してメモリ保護ユニット７４０が一つのメモリ管理ユニット８４０で構成されることを示している。
【００７８】
メモリ管理ユニット８４０は、図１０のメモリ保護ユニット７４０が実行するアクセス制御を行うことができる。メモリ管理ユニット８４０は、ハードウェアコーデック８３０ａ、イメージコンバータ８３０ｂ、ＬＣＤコントローラ８３０ｃによって発生する保安属性のトランザクションであっても必要なメモリ領域にのみアクセスを許可する。すなわち、メモリ管理ユニット８４０は、ハードウェアコーデック８３０ａに対しては、コーデック入力バッファ５１４（図５参照）、リファレンスフレームバッファ５１５（図５参照）、コーデックファームウェア５１６（図５参照）、及びコーデック出力バッファ５１７（図５参照）へのアクセスのみを許可することになる。コーデック入力バッファ５１４、リファレンスフレームバッファ５１５、コーデックファームウェア５１６、及びコーデック出力バッファ５１７は、ＳＤＲＡＭ８７０の保安領域に割り当てられる。
【００７９】
メモリ管理ユニット８４０は、イメージコンバータ８３０ｂについてＳＤＲＡＭ８７０の保安領域に割り当てられるコーデック出力バッファ５１７とフレームバッファ５１８へのアクセスを許容する。特に、メモリ管理ユニット８４０の変換テーブルによってイメージコンバータ８３０ｂは、コーデック出力バッファ５１７に対しては、読み出し権限だけを、そしてフレームバッファ５１８に対しては書き込み権限だけを持つように設定される。
【００８０】
メモリ管理ユニット８４０は、ＬＣＤコントローラ８３０ｃに対してＳＤＲＡＭ８７０の保安領域に割り当てられるフレームバッファ５１８と非保安領域に割り当てられるＵＩフレームバッファ５２１へのアクセスを許容する。特に、メモリ管理ユニット８４０の変換テーブルによって、ＬＣＤコントローラ８３０ｃが、フレームバッファ５１８とＵＩフレームバッファ５２１に対しては、読み出し権限だけを持つように設定される。
ここで、メモリ管理ユニット８４０の変換テーブルは、ＳＤＲＡＭ８７０の保安領域に割り当てられる。また、システムオンチップ８００のソフトウェア構造は、実質的に図４と同様である。
【００８１】
図１２は、本発明の実施形態に係るシステムオンチップを含むモバイル装置を示すブロック図である。図１２を参照すると、本発明の実施形態に係る携帯用端末機１０００は、イメージ処理部１１００と、無線送受信部１２００と、オーディオ処理部１３００と、イメージファイル生成部１４００と、ＳＲＡＭ１５００と、ユーザインタフェース１６００と、コントローラ１７００とを含む。
イメージ処理部１１００は、レンズ１１１０と、イメージセンサ１１２０と、イメージプロセッサ１１３０と、ディスプレイ部１１４０とを含む。無線送受信部１２００は、アンテナ１２１０と、トランシーバ１２２０と、モデム１２３０とを含む。オーディオ処理部１３００は、オーディオプロセッサ１３１０と、マイク１３２０と、スピーカ１３３０とを含む。
【００８２】
携帯用端末機１０００は、様々な種類の半導体装置を含むことができる。特に、コントローラ１７００の機能を実行するシステムオンチップの場合、低消費電力、高性能が要求される。そして保安コンテンツを処理するコントローラ１７００は、本発明の保安ＯＳと一般運営システムＯＳを並列的に駆動することができる。そして、映像コンテンツを処理するハードウェアＩＰの保安属性を二重に設定して、二重に設定されたハードウェアＩＰのアクセスをメモリ管理ユニットやメモリ保護ユニットを使用して制限することができる。このような構造を通じてコンテンツに十分な保安を提供しつつ、且つ高品質のコンテンツを再生することができる。
【００８３】
図１３は、本発明の実施形態に係る保安機能を実行するコンピュータシステム２０００を概略的に示す図である。図１３を参照すると、コンピュータシステム２０００は、システムバス２０６０に電気的に接続される不揮発性メモリ装置２０１０と、中央処理装置２０２０と、ＲＡＭ２０３０とを含むことができる。そして、コンピューティングシステム２０００は、システムバス２０６０に電気的に接続されたユーザインタフェース２０４０と、ベースバンドチップセット（Ｂａｓｅｂａｎｄ  ｃｈｉｐｓｅｔ）のようなモデム２０５０とを含む。
【００８４】
本発明に係るコンピューティングシステム２０００がモバイル装置の場合は、コンピューティングシステム２０００の動作電圧を供給するためのバッテリ（図示せず）をさらに提供する。図示しないが、本発明に係るコンピューティングシステム２０００には、応用チップセット（Ａｐｐｌｉｃａｔｉｏｎ  ｃｈｉｐｓｅｔ）、カメライメージプロセッサ（Ｃａｍｅｒａ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｏｒ：ＣＩＳ）、モバイルＤＲＡＭなどをさらに提供することができることは、この分野の通常の的な知識を習得した者に自明である。
【００８５】
ここで、中央処理装置２０２０は、図３、図９乃至図１１のシステムオンチップ３００、６００、７００、８００のうちの少なくとも一つと同じ構成で提供することができる。すなわち、中央処理装置２０２０は、トラストゾーン方式のアクセス制御を通じて、ハードウェアＩＰのメモリアクセスを制御することができる。また、本発明の実施形態に基づいて、中央処理装置２０２０を構成するハードウェアＩＰの保安属性を二重に設定して、メモリ管理ユニットＭＭＵやメモリ保護ユニットＭＰＵを通じて二重保に安設定されたハードウェアＩＰのＳＤＲＡＭ１５００へのアクセスを制限することができる。したがって、本発明のコンピュータシステム２０００によると、保安コンテンツに対する高い保安性と再生品質を提供することができる。
【００８６】
本発明に係る半導体装置は多様な形態のパッケージを利用して実装することができる。例えば、本発明に係る半導体そして／またはリコントローラは、ＰｏＰ（Ｐａｃｋａｇｅ  ｏｎ  Ｐａｃｋａｇｅ）、Ｂａｌｌ  ｇｒｉｄ  ａｒｒａｙｓ（ＢＧＡｓ）、Ｃｈｉｐ  ｓｃａｌｅ  ｐａｃｋａｇｅｓ（ＣＳＰｓ）、Ｐｌａｓｔｉｃ  Ｌｅａｄｅｄ  Ｃｈｉｐ  Ｃａｒｒｉｅｒ（ＰＬＣＣ）、Ｐｌａｓｔｉｃ  Ｄｕａｌ  Ｉｎ−Ｌｉｎｅ  Ｐａｃｋａｇｅ（ＰＤＩＰ）、Ｄｉｅ  ｉｎ  Ｗａｆｆｌｅ  Ｐａｃｋ、Ｄｉｅ  ｉｎ  Ｗａｆｅｒ  Ｆｏｒｍ、Ｃｈｉｐ  Ｏｎ  Ｂｏａｒｄ（ＣＯＢ）、Ｃｅｒａｍｉｃ  Ｄｕａｌ  Ｉｎ−Ｌｉｎｅ  Ｐａｃｋａｇｅ（ＣＥＲＤＩＰ）、Ｐｌａｓｔｉｃ  Ｍｅｔｒｉｃ  Ｑｕａｄ  Ｆｌａｔ  Ｐａｃｋ（ＭＱＦＰ）、Ｔｈｉｎ  Ｑｕａｄ  Ｆｌａｔｐａｃｋ（ＴＱＦＰ）、Ｓｍａｌｌ  Ｏｕｔｌｉｎｅ（ＳＯＩＣ）、Ｓｈｒｉｎｋ  Ｓｍａｌｌ  Ｏｕｔｌｉｎｅ  Ｐａｃｋａｇｅ（ＳＳＯＰ）、Ｔｈｉｎ  Ｓｍａｌｌ  Ｏｕｔｌｉｎｅ（ＴＳＯＰ）、Ｔｈｉｎ  Ｑｕａｄ  Ｆｌａｔｐａｃｋ（ＴＱＦＰ）、Ｓｙｓｔｅｍ  Ｉｎ  Ｐａｃｋａｇｅ（ＳＩＰ）、Ｍｕｌｔｉ  Ｃｈｉｐ  Ｐａｃｋａｇｅ（ＭＣＰ）、Ｗａｆｅｒ−ｌｅｖｅｌ  Ｆａｂｒｉｃａｔｅｄ  Ｐａｃｋａｇｅ（ＷＦＰ）、Ｗａｆｅｒ−Ｌｅｖｅｌ  Ｐｒｏｃｅｓｓｅｄ  Ｓｔａｃｋ  Ｐａｃｋａｇｅ（ＷＳＰ）などのようなパッケージを利用して実装することができる。
【００８７】
以上、図面と明細書で実施例を開示した。ここで特定用語を使用したが、これは但し本発明を説明するための目的として使用し、意味の限定及び特許請求の範囲に記載した本発明の範囲を制限するために使用したものではない。したがって、本発明の範囲または技術的思想を逸脱せず、本発明の構造を多様に修正または変更することができることはこの分野に熟練された者に自明である。したがって、本発明の範囲は後述の特許請求の範囲及びその均等物まで含み、上述の実施形態に限らない。
【符号の説明】
【００８８】
１１０・・・プロセッシングユニット
１２０・・・コントロールバス
１３０・・・ハードウェアブロック
１３２・・・スレーブポート
１３４・・・マスタポート
１４０、３４０ａ、３４０ｂ、３４０ｃ、８４０・・・メモリ管理ユニット
１５０、３５０、６５０、７５０、８５０・・・データバス
１６０・・・アクセス制御ユニット
１７０・・・ワーキングメモリ
２１０、４１０・・・一般運営システム
２１５・・・ハードウェアブロックドライバ
２２０、４２０、５３１・・・保安運営システム
２２５、４２５・・・ファイアウォールドライバ
３１０、６１０、７１０、８１０・・・ＡＲＭコア
３２０、６２０、７２０、８２０・・・コントロールバス
３３０ａ、６３０ａ、７３０ａ、８３０ａ・・・ハードウェアコーデック
３３０ｂ、６３０ｂ、７３０ｂ、８３０ｂ・・・イメージコンバータ
３３０ｃ、６３０ｃ、７３０ｃ、８３０ｃ・・・ＬＣＤコントローラ
６４０ａ、６４０ｂ、６４０ｃ、７４０・・・メモリ保護ユニット
３６０ａ、６６０ａ、７６０ａ、８６０ａ・・・ＴＺＰＣ
３６０ｂ、６６０ｂ、７６０ｂ、８６０ｂ・・・ＴＺＡＳＣ
３７０、６７０、７７０、８７０・・・ＳＤＲＡＭ
３７５、６７５、７７５、８７５・・・ＤＲＡＭコントローラ
３８０、６８０、７８０、８８０・・・内部ＲＡＭ
３９０、６９０、７９０、８９０・・・外部不揮発性メモリ
３９５、６９５、７９５、８９５    ストレージコントローラ
４１１・・・コーデックドライバ
４１２・・・イメージコンバータドライバ
４１３・・・ＬＣＤコントローラドライバ
４１４・・・トラストゾーンアクセスドライバ
５１１〜５１３・・・メモリ管理ユニット変換テーブル
５１４・・・コーデック入力バッファ
５１５・・・リファレンスフレームバッファ
５１６・・・コーデックファームウェア
５１７・・・コーデック出力バッファ
５１８・・・フレームバッファ
５２１・・・ＵＩフレームバッファ
５２２・・・保安コンテンツ
５２３・・・保安保護ソフトウェア
５４０・・・装置特定キー
１１１０・・・レンズ
１１２０・・・イメージセンサ
１１３０・・・イメージプロセッサ
１１４０・・・ディスプレイユニット
１２１０・・・アンテナ
１２２０・・・トランシーバ
１２３０・・・モデム
１３１０・・・オーディオプロセッサ
１４００・・・イメージファイル生成ユニット
１５００・・・ＳＤＲＡＭ
１６００・・・ユーザインタフェース
１７００・・・コントローラ
２０１０・・・不揮発性メモリ装置
２０２０・・・中央処理装置
２０３０・・・ＲＡＭ
２０４０・・・ユーザインタフェース
２０５０・・・モデム
２０６０・・・システムバス
【図１】
2014086092.tif 000003
【図２】
2014086092.tif 000004
【図３】
2014086092.tif 000005
【図４】
2014086092.tif 000006
【図５】
2014086092.tif 000007
【図６】
2014086092.tif 000008
【図７】
2014086092.tif 000009
【図８】
2014086092.tif 000010
【図９】
2014086092.tif 000011
【図１０】
2014086092.tif 000012
【図１１】
2014086092.tif 000013
【図１２】
2014086092.tif 000014
【図１３】
2014086092.tif 000015