IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ テレチップス・インコーポレイテッドの特許一覧

特表2023-510131異種のマルチCPUを運用するシステムオンチップおよびその動作方法
<>
  • 特表-異種のマルチCPUを運用するシステムオンチップおよびその動作方法 図1
  • 特表-異種のマルチCPUを運用するシステムオンチップおよびその動作方法 図2
  • 特表-異種のマルチCPUを運用するシステムオンチップおよびその動作方法 図3
  • 特表-異種のマルチCPUを運用するシステムオンチップおよびその動作方法 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-03-13
(54)【発明の名称】異種のマルチCPUを運用するシステムオンチップおよびその動作方法
(51)【国際特許分類】
   G06F 15/17 20060101AFI20230306BHJP
   G06F 15/177 20060101ALI20230306BHJP
   G06F 15/78 20060101ALI20230306BHJP
   G06F 13/36 20060101ALI20230306BHJP
   G06F 9/4401 20180101ALI20230306BHJP
   G06F 9/52 20060101ALI20230306BHJP
【FI】
G06F15/17 620E
G06F15/177 B
G06F15/78 530
G06F15/78 550
G06F13/36 310E
G06F9/4401
G06F9/52 120Z
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022537811
(86)(22)【出願日】2020-11-25
(85)【翻訳文提出日】2022-06-17
(86)【国際出願番号】 KR2020016787
(87)【国際公開番号】W WO2021132904
(87)【国際公開日】2021-07-01
(31)【優先権主張番号】10-2019-0174323
(32)【優先日】2019-12-24
(33)【優先権主張国・地域又は機関】KR
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.リナックス
2.アンドロイド
3.ANDROID
(71)【出願人】
【識別番号】518313928
【氏名又は名称】テレチップス・インコーポレイテッド
【氏名又は名称原語表記】TELECHIPS INC.
【住所又は居所原語表記】42, OLYMPIC‐RO 35DA‐GIL, SONGPA‐GU, SEOUL 05510, REPUBLIC OF KOREA
(74)【代理人】
【識別番号】110001818
【氏名又は名称】弁理士法人R&C
(72)【発明者】
【氏名】キム,ムン‐ソ
(72)【発明者】
【氏名】オ,ヨンソク
(72)【発明者】
【氏名】キム,ホヨンジギ
(72)【発明者】
【氏名】チョン,テフン
【テーマコード(参考)】
5B045
5B062
5B376
【Fターム(参考)】
5B045BB12
5B045BB18
5B045DD03
5B045EE03
5B045HH03
5B062CC04
5B062DD10
5B376EA02
5B376EA13
(57)【要約】
互いに異なる複数の中央処理装置を運用するシステムオンチップ(System-On-Chip、SoC)およびその動作方法が提供される。システムオンチップ(SoC)は、それぞれのソフトウェアプログラムを互いに独立的に実行する複数の中央処理装置(Central Processing Unit、CPU)、前記複数の中央処理装置を連結するバスインターコネクタ、そして前記バスインターコネクタに連結され、前記複数の中央処理装置が前記バスインターコネクタを通じて共有する物理的資源に対して中央処理装置別にそれぞれのアクセスを制御する少なくとも一つのアクセス制御装置を含む。
【特許請求の範囲】
【請求項1】
システムオンチップ(System-On-Chip、SoC)であって、
それぞれのソフトウェアプログラムを互いに独立的に実行する複数の中央処理装置(Central Processing Unit、CPU)、
前記複数の中央処理装置を連結するバスインターコネクタ、そして
前記バスインターコネクタに連結され、前記複数の中央処理装置が前記バスインターコネクタを通じて共有する物理的資源に対して中央処理装置別にそれぞれのアクセスを制御する少なくとも一つのアクセス制御装置、を含む、システムオンチップ(SoC)。
【請求項2】
前記少なくとも一つのアクセス制御装置は、物理的資源に対する共有要請、物理的資源に対する接近要請、中央処理装置の状態情報伝達を含む中央処理装置間の通信のうちの少なくとも一つを含むアクセス制御を遂行する、請求項1に記載のシステムオンチップ(SoC)。
【請求項3】
前記複数の中央処理装置は、第1バスインターフェースを通じてメモリを含む物理的資源を共有する少なくとも二つの中央処理装置を含み、
前記共有する物理的資源のうちで前記少なくとも二つの中央処理装置間に排他的に使用する物理的資源に対するアクセスを制御するリソース共有制御装置をさらに含む、請求項1に記載のシステムオンチップ(SoC)。
【請求項4】
前記少なくとも二つの中央処理装置は、第1ソフトウェアプログラムを実行する第1中央処理装置、そして
前記第1ソフトウェアプログラムと異なる第2ソフトウェアプログラムを実行する第2中央処理装置を含み、
前記リソース共有制御装置は、前記少なくとも二つの中央処理装置間に排他的に使用する物理的資源のうちで前記第1ソフトウェアプログラムがローディングされるメモリ領域を物理的に分離し、分離されたメモリ領域に対して前記第2中央処理装置の接近を遮断する、請求項3に記載のシステムオンチップ(SoC)。
【請求項5】
前記リソース共有制御装置は、前記第1ソフトウェアプログラムおよび前記第2ソフトウェアプログラムよりも権限レベルが高いファームウェアを運用し、前記ファームウェアを通じて前記排他的に使用する物理的資源に対する接近を制御する、請求項4に記載のシステムオンチップ(SoC)。
【請求項6】
前記複数の中央処理装置は、第2バスインターフェースを通じてスタティックラム(RAM、Random Access Memory)および複数のデバイスと連結され、第3ソフトウェアプログラムを実行する第3中央処理装置を含み、
前記少なくとも一つのアクセス制御装置は、前記第2バスインターフェースと前記バスインターコネクタとの間に位置して、前記スタティックラムおよび前記複数のデバイスに対する他の中央処理装置のアクセスを制御する第1アクセス制御装置を含む、請求項4に記載のシステムオンチップ(SoC)。
【請求項7】
前記複数の中央処理装置は、ブートコードを含むプログラムコードがローディングされるコードラムおよびユーザーデータがローディングされるデータラムと第3バスインターフェースを通じて連結され、第4ソフトウェアプログラムを実行する第4中央処理装置を含み、
前記少なくとも一つのアクセス制御装置は、前記第3バスインターフェースと前記バスインターコネクタとの間に位置して、前記コードラムおよび前記データラムに対する他の中央処理装置のアクセスを制御する第2アクセス制御装置をさらに含む、請求項6に記載のシステムオンチップ(SoC)。
【請求項8】
前記第1中央処理装置は、クアッドコアを含み、
前記第2中央処理装置、前記第3中央処理装置および前記第4中央処理装置は、シングルコアを含む、請求項7に記載のシステムオンチップ(SoC)。
【請求項9】
前記複数の中央処理装置は、前記第3中央処理装置、前記第1中央処理装置、前記第4中央処理装置および前記第2中央処理装置の順序に段階的にブーティングされた後、それぞれのソフトウェアプログラムを独立的に実行する、請求項7に記載のシステムオンチップ(SoC)。
【請求項10】
単一のシステムオンチップ(System-On-Chip、SoC)に搭載された複数の中央処理装置(Central Processing Unit、CPU)の動作方法であって、
第1中央処理装置(Central Processing Unit、CPU)で前記システムオンチップ(SoC)のブートコードを実行する段階、そして
前記第1中央処理装置で前記ブートコードにより呼出される1次ブートローダーを実行する段階を含み、
前記1次ブートローダーは、前記第1中央処理装置の第1ソフトウェアプログラムを実行し、第2中央処理装置で実行する2次ブートローダーを呼出し、
前記2次ブートローダーは、前記第2中央処理装置の第2ソフトウェアプログラムを実行する3次ブートローダーを呼出し、第3中央処理装置の第3ソフトウェアプログラムを実行し、
前記3次ブートローダーは、第4中央処理装置の第4ソフトウェアプログラムを実行する、動作方法。
【請求項11】
前記第1ソフトウェアプログラムは、オペレーティングシステム(Operating System、OS)を含み、
前記第2ソフトウェアプログラムは、リナックスカーネルを含み、
前記第3ソフトウェアプログラムは、リアルタイムオペレーティングシステム(RTOS、real-time Operating System)を含み、
前記第4ソフトウェアプログラムは、ファームウェアを含む、請求項10に記載の動作方法。
【請求項12】
前記2次ブートローダーの第3ソフトウェアプログラムの実行は、前記第2中央処理装置と前記第3中央処理装置を連結するバスインターコネクタに連結された第1アクセス制御装置が前記第2中央処理装置の前記第3中央処理装置に対する接近を許容した場合に遂行される、請求項10に記載の動作方法。
【請求項13】
前記3次ブートローダーの第4ソフトウェアプログラムの実行は、前記第2中央処理装置と前記第4中央処理装置を連結するバスインターコネクタに連結された第2アクセス制御装置が前記第2中央処理装置の前記第4中央処理装置に対する接近を許容した場合に遂行される、請求項10に記載の動作方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、異種のマルチCPUを運用するシステムオンチップおよびその動作方法に関する。
【背景技術】
【0002】
単一のシステムオンチップ(System-on-Chip、SoC)上に多数の中央処理装置(Central Processing Unit、以下、「CPU」と通称する)を支援する場合が増加している。このようなシステムは、同一のCPUが多数個存在する対称型多重処理(Symmetric Multi-Processing、SMP)と多数の異機種(Heterogeneous)CPUから構成された非対称型多重処理(Asymmetric Multi-Processing、AMP)に区分される。
【0003】
対称型多重処理(SMP)の場合、主に一つのオペレーティングシステム(Operating System、OS)がシステムオンチップ(SoC)上の全てのCPUを占有して各CPUに作業を分散させて処理するため、一般的な作業に対して全般的な処理性能を向上させることができる。
【0004】
反面、非対称型多重処理(AMP)の場合、それぞれのCPUが互いに異なる特定作業を専担して処理する。例えば、特定CPUにグラフィック処理(graphic processing)やデジタル信号処理(digital signal processing)のような作業を専担させて汎用作業に使用されるCPUの負荷を減らすことができる。
【0005】
一つのシステムオンチップ(SoC)上の多数の異種CPUが互いに異なる特定作業を専担するためには、それぞれのCPUが独立的にオペレーティングシステムを運用可能でなければならない。このように、一つのシステムオンチップ(SoC)上の多数の異種CPUがそれぞれ独立的にオペレーティングシステム(OS)を運用する場合、それぞれのオペレーティングシステムは互いに異なる目的のために独立的に動作する。したがって、共有物理的資源接近に対する競争状態(race condition)が発生することがある。
【0006】
物理的資源を共有する多重オペレーティングシステムを運用する状況で従来は仮想化技術を利用している。
【0007】
仮想化技術は、一つの物理的資源を多数の仮想の論理的資源に抽象化する技術であって、このような仮想化を遂行するソフトウェアをハイパーバイザー(Hypervisor)という。ハイパーバイザーは、オペレーティングシステムよりも高い物理的資源接近権限を基盤として、オペレーティングシステムの物理的資源接近を統制し、物理的資源を抽象化して管理する。これによって多数のオペレーティングシステムは一つの物理的資源を競争状態なしに接近して利用することができる。
【0008】
しかし、オペレーティングシステムの物理的資源接近を統制し、仮想の論理的資源を管理するためにハイパーバイザーが消耗する時間が発生し、ハイパーバイザーが動作するためのメモリ領域も追加で割当が必要になることがある。
【0009】
このような追加的な時間消耗は、システムオンチップ(SoC)上に動作する多数のオペレーティングシステムが処理する作業に遅延時間として作用することがある。特に、リアルタイム性を要求する作業の場合、このような遅延時間は大きい制約事項として作用することがある。
【発明の概要】
【発明が解決しようとする課題】
【0010】
本発明が解決しようとする課題は、互いに独立的なソフトウェアプログラムを実行する異種のマルチCPUが競争状態なしに物理的資源を共有し、保護が必要な物理的資源に対しては他のCPUの接近を遮断する異種のマルチCPUを運用するシステムオンチップ(SoC)およびその動作方法を提供することにある。
【課題を解決するための手段】
【0011】
本発明の一実施例によれば、システムオンチップ(System-On-Chip、SoC)であって、それぞれのソフトウェアプログラムを互いに独立的に実行する複数の中央処理装置(Central Processing Unit、CPU)、前記複数の中央処理装置を連結するバスインターコネクタ、そして前記バスインターコネクタに連結され、前記複数の中央処理装置が前記バスインターコネクタを通じて共有する物理的資源に対して中央処理装置別にそれぞれのアクセスを制御する少なくとも一つのアクセス制御装置を含む。
【0012】
前記少なくとも一つのアクセス制御装置は、物理的資源に対する共有要請、物理的資源に対する接近要請、中央処理装置の状態情報伝達を含む中央処理装置間の通信のうちの少なくとも一つのためのアクセスを制御することができる。
【0013】
前記複数の中央処理装置は、第1バスインターフェースを通じてメモリを含む物理的資源を共有する少なくとも二つの中央処理装置を含み、前記共有する物理的資源のうちで前記少なくとも二つの中央処理装置間に排他的に使用する物理的資源に対するアクセスを制御するリソース共有制御装置をさらに含むことができる。
【0014】
前記少なくとも二つの中央処理装置は、第1ソフトウェアプログラムを実行する第1中央処理装置、そして前記第1ソフトウェアプログラムと異なる第2ソフトウェアプログラムを実行する第2中央処理装置を含み、前記リソース共有制御装置は、前記少なくとも二つの中央処理装置間に排他的に使用する物理的資源のうちで前記第1ソフトウェアプログラムがローディングされるメモリ領域を物理的に分離し、分離されたメモリ領域に対して前記第2中央処理装置の接近を遮断することができる。
【0015】
前記リソース共有制御装置は、前記第1ソフトウェアプログラムおよび前記第2ソフトウェアプログラムよりも権限レベルが高いファームウェアを運用し、前記ファームウェアを通じて前記排他的に使用する物理的資源に対する接近を制御することができる。
【0016】
前記複数の中央処理装置は、第2バスインターフェースを通じてスタティックラム(RAM、Random Access Memory)および複数のデバイスと連結され、第3ソフトウェアプログラムを実行する第3中央処理装置を含み、前記少なくとも一つのアクセス制御装置は、前記第2バスインターフェースと前記バスインターコネクタとの間に位置して、前記スタティックラムおよび前記複数のデバイスに対する他の中央処理装置のアクセスを制御する第1アクセス制御装置を含むことができる。
【0017】
前記複数の中央処理装置は、ブートコードを含むプログラムコードがローディングされるコードラムおよびユーザーデータがローディングされるデータラムと第3バスインターフェースを通じて連結され、第4ソフトウェアプログラムを実行する第4中央処理装置を含み、前記少なくとも一つのアクセス制御装置は、前記第3バスインターフェースと前記バスインターコネクタとの間に位置して、前記コードラムおよび前記データラムに対する他の中央処理装置のアクセスを制御する第2アクセス制御装置をさらに含むことができる。
【0018】
前記第1中央処理装置は、クアッドコアを含み、前記第2中央処理装置、前記第3中央処理装置および前記第4中央処理装置は、シングルコアを含むことができる。
【0019】
前記複数の中央処理装置は、前記第3中央処理装置、前記第1中央処理装置、前記第4中央処理装置および前記第2中央処理装置の順序に段階的にブーティングされた後、それぞれのソフトウェアプログラムを独立的に実行することができる。
【0020】
本発明の他の実施例によれば、単一のシステムオンチップ(System-On-Chip、SoC)に搭載された複数の中央処理装置(Central Processing Unit、CPU)の動作方法であって、第1中央処理装置(Central Processing Unit、CPU)で前記システムオンチップ(SoC)のブートコードを実行する段階、そして前記第1中央処理装置で前記ブートコードにより呼出される1次ブートローダーを実行する段階を含み、前記1次ブートローダーは、前記第1中央処理装置の第1ソフトウェアプログラムを実行し、第2中央処理装置で実行する2次ブートローダーを呼出し、前記2次ブートローダーは、前記第2中央処理装置の第2ソフトウェアプログラムを実行する3次ブートローダーを呼出し、第3中央処理装置の第3ソフトウェアプログラムを実行し、前記3次ブートローダーは、第4中央処理装置の第4ソフトウェアプログラムを実行することができる。
【0021】
前記第1ソフトウェアプログラムは、オペレーティングシステム(Operating System、OS)を含み、前記第2ソフトウェアプログラムは、リナックスカーネルを含み、前記第3ソフトウェアプログラムは、リアルタイムオペレーティングシステム(RTOS、real-time Operating System)を含み、前記第4ソフトウェアプログラムは、ファームウェアを含むことができる。
【0022】
前記2次ブートローダーの第3ソフトウェアプログラムの実行は、前記第2中央処理装置と前記第3中央処理装置を連結するバスインターコネクタに連結された第1アクセス制御装置が前記第2中央処理装置の前記第3中央処理装置に対する接近を許容した場合に遂行され得る。
【0023】
前記3次ブートローダーの第4ソフトウェアプログラムの実行は、前記第2中央処理装置と前記第4中央処理装置を連結するバスインターコネクタに連結された第2アクセス制御装置が前記第2中央処理装置の前記第4中央処理装置に対する接近を許容した場合に遂行され得る。
【発明の効果】
【0024】
本発明の実施例によれば、異種のマルチCPUを運用するシステムオンチップ(SoC)で、従来のような仮想化技術を使用せずに、各CPU間に競争状態なしに物理的資源を共有することができ、一部の共有資源に対するCPU接近を統制することができる。したがって、仮想化技術の使用による追加遅延時間の発生がないだけでなく、オーバーヘッドによる性能低下の問題を解決することができる。
【0025】
また、リアルタイム作業処理を要求する応用においてリアルタイム性を満たすことができる環境を提供することができる。
【図面の簡単な説明】
【0026】
図1】本発明の実施例によるシステムオンチップ(SoC)の構成図である。
図2図1のシステムオンチップ(SoC)上に2種類のコントロールドメインを説明する図面である。
図3】本発明の実施例によるブーティング順序をメモリ観点で示した図面である。
図4】本発明の実施例によるシステムオンチップ(SoC)のブーティング動作を説明する図面である。
【発明を実施するための形態】
【0027】
以下、添付した図面を参照して本発明の実施例について本発明が属する技術分野における通常の知識を有する者が容易に実施することができるように詳しく説明する。しかし、本発明は、多様な異なる形態に実現することができ、ここで説明する実施例に限定されない。そして、図面において、本発明を明確に説明するために説明上不要な部分は省略し、明細書全体にわたって類似の部分については類似の図面符号を付した。
【0028】
明細書全体において、ある部分がある構成要素を「含む」という時、これは特に反対になる記載がない限り、他の構成要素を除外せず、他の構成要素をさらに含むことができることを意味する。
【0029】
また、明細書に記載された「・・・部」、「・・・器」、「・・・モジュール」などの用語は、少なくとも一つの機能がや動作を処理する単位を意味し、これはハードウェアやソフトウェアまたはハードウェアおよびソフトウェアの結合で実現され得る。
【0030】
本明細書で「伝送または提供」は、直接的な伝送または提供することだけでなく、他の装置を通じてまたは迂回経路を利用して間接的に伝送または提供することも含むことができる。
【0031】
本明細書で、単数で記載された表現は「一つ」または「単一」などの明示的な表現を使用しない以上、単数または複数に解釈され得る。
【0032】
本明細書で、図面に関係なしに同一の図面番号は同一の構成要素を指し、「および/または」は、言及された構成要素のそれぞれおよび一つ以上の全ての組み合わせを含む。
【0033】
本明細書で、第1、第2などのように序数を含む用語は、多様な構成要素を説明することに使用され得るが、前記構成要素は前記用語により限定されない。前記用語は一つの構成要素を他の構成要素から区別する目的のみで使用される。例えば、本開示の権利範囲を逸脱せずに第1構成要素は第2構成要素と命名されることができ、類似して第2構成要素も第1構成要素と命名され得る。
【0034】
本明細書で、「ブートローダー(Bootloader)」は、電子装置をブーティングしたり始動させる時、使用者が電子装置を使用できるようにソフトウェアプログラムを特定の保存媒体(例えば、外部記憶装置)から読み取って主記憶装置(例えば、RAM)に設置するプログラムをいう。
【0035】
図1は本発明の実施例によるシステムオンチップ(System-On-Chip、SoC)の構成図であり、図2図1のシステムオンチップ(SoC)上に2種類のコントロールドメインを説明する図面である。
【0036】
図1を参照すれば、単一のシステムオンチップ(SoC)100は、4個の中央処理装置(Central Processing Unit、以下、「CPU」と通称する)101,103,105,107を含む。
【0037】
システムオンチップ(SoC)100は、CPU_1 101、CPU_2 103、CPU_3 105およびCPU_4 107を含む。この時、CPU_1 101、CPU_2 103、CPU_3 105およびCPU_4 107は、異種のCPUであって、独立した作業を遂行するそれぞれのソフトウェアプログラムを実行する。
【0038】
この時、CPU_1 101は、システムオペレーティングシステム(Operating System、OS)を実行することができる。システムオペレーティングシステムは、使用者との相互作用を含む汎用作業を実行し、例えば、アンドロイド(Android)オペレーティングシステムであり得る。
【0039】
CPU_2 103は、使用者との相互作用なしに速い処理が必要な特殊作業を処理するソフトウェアプログラムを実行することができる。例えば、CPU_2 103は、リナックスカーネルを実行することができる。
【0040】
CPU_3 105は、リアルタイム処理が必要な作業を処理するソフトウェアプログラムを実行することができる。例えば、CPU_3 105は、リアルタイムオペレーティングシステム(Real Time Operating System、RTOS)を実行することができる。
【0041】
CPU_4 107は、他のCPU101,103,105に比べて低仕様プロセッサーを含むことができる。CPU_4 107は、無欠性検査などのような暗/復号化作業を処理するセキュリティファームウェア(Security Firmware)を実行することができる。
【0042】
CPU_1 101は、クアッド(Quard)コアプロセッサーを含むことができる。CPU_2 103、CPU_3 105およびCPU_4 107は、シングル(Single)コアプロセッサーを含むことができる。
【0043】
このように、CPU_1 101、CPU_2 103、CPU_3 105およびCPU_4 107が互いに独立したソフトウェアプログラムを実行することによって、例えばCPU_1 101のソフトウェアプログラムは4個のコアプロセッサーを全て使用できるようになる。特に、CPU_1 101のソフトウェアプログラムがシステムオペレーティングシステムである場合、4個のコアプロセッサーを全て占有できるようになるため、システムオンチップ(SoC)100全体の性能が向上することができる。
【0044】
CPU_1 101およびCPU_2 103は、バス109を通じてSDRAM(Synchronous Dynamic Random Access Memory)111、専用デバイス113および複数の共有デバイス115に連結される。ここで、専用デバイス113および複数の共有デバイス115は、UART(Universal asynchronous receiver/transmitter)、I2C(Inter-Integrated Circuit)、GPSB、eMMC(embedded Multi-Media Card)などを含むことができる。
【0045】
この時、CPU_1 101およびCPU_2 103とバス109との間にはリソース共有制御装置117が位置する。
【0046】
リソース共有制御装置117は、CPU_1 101およびCPU_2 103が共有する物理的資源のうちで排他的に使用する物理的資源に対するアクセスを制御する。
【0047】
CPU_3 105は、バス119を通じてSRAM(Static Random-Access Memory)121、専用デバイス123および複数の共有デバイス125に連結される。ここで、専用デバイス123および複数の共有デバイス125は、UART、ICTC(Input Capture Timer Counter)、直列フラッシュメモリ(Serial Flash Memory)、GPSBなどを含むことができる。
【0048】
この時、UART、GPSBなどは共有されないCPU専用資源であり得る。
【0049】
CPU_4 107は バス127を通じてコードラム(CODE RAM)129およびデータラム(DATA RAM)131に連結される。コードラム129およびデータラム131は、CPU_4 107のソフトウェアプログラム(ex.セキュリティファームウェア)をローディングする。この時、データラム131は共有されず、CPU_4 107のみにより占有される専用物理的資源であり得る。したがって、データラム131への接近はアクセス制御装置_2 137により遮断され得る。
【0050】
バス109,119,127は、バス-インターコネクタ133を通じて連結されて各バス109,119,127に連結された物理的資源111,115,121,125,129,131に連結される。したがって、CPU_1 101,CPU_2 103,CPU_3 105およびCPU_4 107は、物理的資源111,115,121,125,129,131を共有することができる。例えば、CPU_1 101は、CPU_3 105のバス119に連結された物理的資源121,125に接近することができる。ここで、データラム131は、アクセス制御装置_2 137により選択的に共有され得る。
【0051】
この時、CPU_1 101およびCPU_2 103は、プロセッサーを除いた全ての物理的資源111,113,115を共有する。
【0052】
しかし、このように全ての物理的資源111,115,121,125,129,131が全てのCPU101,103,105,107により共有される場合、物理的資源111,115,121,125,129,131に対する接近において競争状態が発生することがある。このような競争状態なしにそれぞれの全てのCPU101,103,105,107が物理的資源111,115,121,125,129,131を共有するために本発明の実施例は2種類のコントロールドメインP1,P3を定義する。
【0053】
図2を参照すれば、トラストゾーンコントロールドメイン(Trustzone Contro Domain)P1は、リソース共有制御装置117により制御される。
【0054】
CPU_1 101およびCPU_2 103は、バス-インターコネクタ133を通せずに、メモリを含む全ての物理的資源111,113,115を共有する。この時、リソース共有制御装置117は、共有される物理的資源のうちで排他的に使用しなければならない物理的資源に対しては物理的に区分して接近を遮断する。
【0055】
リソース共有制御装置117は、ARM Trustzone Technologyを利用して物理的資源の使用を分離する。具体的にリソース共有制御装置117は、ARM Trustzone Techonolgyを利用してオペレーティングシステムよりも高い権限を有するファームウェア(firmware)をリソース共有制御装置117を通じて運用することができる。
【0056】
リソース共有制御装置117は、CPU_1 101およびCPU_2 103が互いに共有する物理的資源のうちで一部の物理的資源をCPU_1 101にのみ排他的な接近権限を設定することができる。CPU_2 103は、CPU_1 101にのみ排他的な接近権限が設定された物理的資源に対してはリソース共有制御装置117により接近が遮断される。
【0057】
アクセスコントロールドメインP3は、バス-インターコネクタ133に連結されたアクセス制御装置_1 135およびアクセス制御装置_2 137により制御される。
【0058】
アクセス制御装置_1 135は、バス119とバス-インターコネクタ133との間に連結される。
【0059】
アクセス制御装置_1 135は、バス119を通じて連結された物理的資源121、123、125に対する別途の接近権限を設定する。この接近権限はCPU_3 105または物理的資源121、123、125に対する他のCPU101,103,107の接近遮断設定を含むことができる。アクセス制御装置_1 135は、バス-インターコネクタ133を通じてバス119に向かうトラフィックを遮断することができる。
【0060】
アクセス制御装置_2 137は、バス127とバス-インターコネクタ133との間に連結される。
【0061】
アクセス制御装置_2 137は、バス127を通じて連結された物理的資源129,131に対する別途の接近権限を設定する。この接近権限はCPU_4 107または物理的資源129,131に対する他のCPU101,103,105の接近遮断設定を含むことができる。
【0062】
アクセス制御装置_2 137は、バス-インターコネクタ133を通じてバス127に向かうトラフィックを遮断することができる。
【0063】
ここで、アクセス制御装置_1 135、アクセス制御装置_2 137により遮断されるトラフィックは、物理的資源の共有要請、物理的資源に対する接近要請、CPU間の通信要請などを含むことができる。
【0064】
CPU間の通信要請には、各CPU101,103,105,107の正常でない状態情報の伝達要請が含まれ得る。ここで、正常でない状態情報は、リセット(reset)、再スタート(restart)、再ブーティング(reboot)、クラッシュ(crash)のうちの少なくとも一つを含むことができる。
【0065】
このように、アクセス制御装置135,137を利用してCPU_3 105またはCPU_4 107に連結された物理的資源を共有したり保護することができる。
【0066】
図1および図2で説明したように、本発明の実施例によれば、それぞれのCPU101,103,105,107が独立的にソフトウェアプログラムを実行し、競争状態なしに物理的資源を共有することができる。
【0067】
この時、各CPU101,103,105,107を動作可能な状態に転換するためのブーティング方法について説明する。ブーティング順序は各CPU101,103,105,107間の動作環境とソフトウェアプログラムを運用する過程を含む。
【0068】
単一のシステムオンチップ(SoC)100上の4個の異種CPU101,103,105,107は、独立的なソフトウェアプログラムを運用し、それぞれ異なる目的の作業を遂行する。各CPU101,103,105,107は、先に説明したように、自体的な物理的資源を所有すると同時に、これらを他のCPU101,103,105,107と共有して使用する。したがって、物理的資源の初期化がなされるブーティング段階を単一化して競争状態の発生なしに資源を初期化する。
【0069】
図3は本発明の実施例によるブーティング順序をメモリの観点で示した図面である。
【0070】
図3を参照すれば、競争状態の発生がない資源初期化をするブーティング順序をメモリ使用の観点で示した。
【0071】
システムオンチップ(SoC)100上の電源が印加されると、CPU_3(図1の105)は、ROMに保存されているチップブートコード(Chipboot ROM Code)をSRAM(図1,2の121)にローディングして実行する。チップブートコードは1次ブートローダーを呼出し、CPU_3 105は呼出された1次ブートローダーをSRAM(図1,2の121)にローディングして実行する。
【0072】
1次ブートローダーは、CPU_1(図1,2の101)の2次ブートローダーを呼出す。CPU_1 101は、呼出された2次ブートローダーをSRAM121にローディングして実行する。2次ブートローダーは3次ブートローダーを呼出す。
【0073】
CPU_1 101は、呼出された3次ブートローダーをSDRAM(図1,2の111)にローディングして実行する。
【0074】
1次ブートローダーは、CPU_3 105のリアルタイムオペレーティングシステム(RTOS)を呼出し、呼出されたリアルタイムオペレーティングシステム(RTOS)は、CPU_3 105のSNOR(Serial NOR Flash Memory)にXIP(eXecution In Place)を利用して実行され得る。ここで、SNORは、非揮発性メモリであって、物理的特性によりSRAM121、SDRAM111とは異なり非揮発性メモリである。SNORは、他の揮発性メモリとは異なり、Byte Accessが可能であるため、リアルタイムオペレーティングシステム(RTOS)をSDRAM111のようなメモリにローディングせず、直接SNOR上で実行することができる。
【0075】
2次ブートローダーはCPU_4(図1,2の107)のファームウェアを呼出し、呼出されたファームウェアはCPU_4 107のコードラム(図1,2の129)にローディングされる。
【0076】
3次ブートローダーは、CPU_1 101のアンドロイドOSとCPU_2(図1,2の103)のリナックスカーネルを呼出し、呼出されたアンドロイドOSとリナックスカーネルはSDRAM111にローディングされる。
【0077】
このように、4個の異種CPU101,103,105,107は、電源が印加された時点に並列的に動作する。異種CPU101,103,105,107は、CPU_3 105→CPU_1 101→CPU_2 103→CPU_4 107の順序に段階的に駆動された後、それぞれのソフトウェアプログラムを独立的に実行する。
【0078】
図4は本発明の実施例によるシステムオンチップ(SoC)のブーティング動作を説明する図面である。
【0079】
図4を参照すれば、システムオンチップ(SoC)100上の異種CPU101,103,105,107に電源がオン(S101)されると、最初に動作するCPUはCPU_3(図1,2の105)である。
【0080】
CPU_3 105は、初期化(またはリセット)(S103)後、ロム(ROM)に予め搭載されたチップブートコード(Chipboot ROM Code)を実行してブーティングのための基本作業を遂行する(S105)。
【0081】
CPU_3 105は、チップブートコードによりストレージデバイス(115または123または125)から呼出された1次ブートローダーを実行(S107)する。CPU_3 105は、1次ブートローダーの実行でCPU_3 105のソフトウェアプログラムを動作させるための基本作業を遂行し、CPU_1(図1,2の101)を動作させるための準備を進行する。このような準備は2次ブートローダーの呼出およびCPU_1 101を駆動させる作業を含む。
【0082】
CPU_3 105は、CPU_1 101に2次ブートローダーの呼出を伝達する(S109)。
【0083】
CPU_3 105は、独立的なオペレーティングシステムであるRTOSを実行する(S111)。
【0084】
CPU_1 101は、CPU_3 105により呼出された2次ブートローダーを実行する(S113)。ここで、2次ブートローダーは、ARM Trusted Firmwareであり得る。
【0085】
2次ブートローダーは、CPU_4(図1,2の107)を動作させるための準備をし、3次ブートローダーを呼出す。つまり、CPU_1 101は、2次ブートローダーを実行してCPU_4 107のファームウェア実行を要請する(S115)。
【0086】
CPU_1 101は、2次ブートローダーにより呼出された3次ブートローダーを実行(S117)する。
【0087】
このように、2次ブートローダーは、ブートローダーとしての役割だけでなく、物理的資源を多くの独立的なソフトウェアプログラムが安全に共有することができるようにセキュリティファームウェア(secure firmware)としての役割も共に遂行する。このために2次ブートローダーはブーティング段階以降にもセキュリティファームウェアとして遂行される一部のコードをSDRAM(図1,2の111)に維持する。
【0088】
セキュリティファームウェアとしての2次ブートローダーは、CPU_1 101およびCPU_2(図1,2の103)が共有する物理的資源を相互排他的に使用できるようにする。具体的に、2次ブートローダーは、CPU_1 101で最も高い権限の実行モードで作動される。2次ブートローダーは、CPU_1 101およびCPU_2 103のそれぞれで実行されるソフトウェアプログラムの物理的資源接近を制限してCPU_1 101およびCPU_2 103間に発生し得る競争状態を除去する。
【0089】
2次ブートローダーの実行によりCPU_1 101はCPU_3 105との従属関係から独立する。これによって、CPU_3 105は、自己を除いた残りのCPU101,103,107に対する始動と終了に対する権限を失う。
【0090】
CPU_1 101の3次ブートローダーは、CPU_2(図1,2の103)のリナックスカーネルを呼出してCPU_2 103を駆動する(S119)。次に、CPU_1 101の3次ブートローダーはアンドロイドOSを実行する(S121)。
【0091】
全てのブーティング手続を完了すると、最終的に4個の異種CPU101,103,105,107は、それぞれ異なる目的の作業を遂行する独立したソフトウェアプログラムを運用するようになる。したがって、仮想化技術を使用する従来の技術とは異なり、いずれか一つのソフトウェアプログラムが全体CPUを占有しない。したがって、ソフトウェアプログラムまたはCPU上の正常でないことが発生しても、仮想化技術を使用する場合とは異なり、全体システム100の駆動なしに一部の問題になるソフトウェアプログラムまたはCPUのみを再駆動するように設計することができる。
【0092】
また、デバイス共有の観点で、仮想化技術を使用する場合、中央の制御プログラムがデバイス接近を制御するため、全てのCPUがこの制御プログラムを経なければならないことによるオーバーヘッドが発生する。したがって、リアルタイム作業(Time critical)の場合、仮想化技術を使用することができない。しかし、本発明の実施例によれば、RTOSのようなリアルタイム作業を遂行するCPU_3 105が専用デバイス123を独占して使用するため、別途のオーバーヘッドの問題がない。
【0093】
以上で説明した本発明の実施例は、装置および方法のみを通じて実現されるのではなく、本発明の実施例の構成に対応する機能を実現するプログラムまたはそのプログラムが記録された記録媒体を通じて具現されることもできる。
【0094】
以上で本発明の実施例について詳細に説明したが、本発明の権利範囲はこれに限定されず、特許請求の範囲で定義している本発明の基本概念を利用した当業者の多様な変形および改良形態も本発明の権利範囲に属する。
図1
図2
図3
図4
【国際調査報告】