JP2023510131A - 異種のマルチcpuを運用するシステムオンチップおよびその動作方法 - Google Patents

異種のマルチcpuを運用するシステムオンチップおよびその動作方法 Download PDF

Info

Publication number
JP2023510131A
JP2023510131A JP2022537811A JP2022537811A JP2023510131A JP 2023510131 A JP2023510131 A JP 2023510131A JP 2022537811 A JP2022537811 A JP 2022537811A JP 2022537811 A JP2022537811 A JP 2022537811A JP 2023510131 A JP2023510131 A JP 2023510131A
Authority
JP
Japan
Prior art keywords
central processing
processing unit
software program
access
chip
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2022537811A
Other languages
English (en)
Other versions
JP7444994B2 (ja
Inventor
キム,ムン‐ソ
オ,ヨンソク
キム,ホヨンジギ
チョン,テフン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telechips Inc
Original Assignee
Telechips Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telechips Inc filed Critical Telechips Inc
Publication of JP2023510131A publication Critical patent/JP2023510131A/ja
Application granted granted Critical
Publication of JP7444994B2 publication Critical patent/JP7444994B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7864Architectures of general purpose stored program computers comprising a single central processing unit with memory on more than one IC chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • Multi Processors (AREA)
  • Microcomputers (AREA)

Abstract

Figure 2023510131000001
互いに異なる複数の中央処理装置を運用するシステムオンチップ(System-On-Chip、SoC)およびその動作方法が提供される。システムオンチップ(SoC)は、それぞれのソフトウェアプログラムを互いに独立的に実行する複数の中央処理装置(Central Processing Unit、CPU)、前記複数の中央処理装置を連結するバスインターコネクタ、そして前記バスインターコネクタに連結され、前記複数の中央処理装置が前記バスインターコネクタを通じて共有する物理的資源に対して中央処理装置別にそれぞれのアクセスを制御する少なくとも一つのアクセス制御装置を含む。

Description

本発明は、異種のマルチCPUを運用するシステムオンチップおよびその動作方法に関する。
単一のシステムオンチップ(System-on-Chip、SoC)上に多数の中央処理装置(Central Processing Unit、以下、「CPU」と通称する)を支援する場合が増加している。このようなシステムは、同一のCPUが多数個存在する対称型多重処理(Symmetric Multi-Processing、SMP)と多数の異機種(Heterogeneous)CPUから構成された非対称型多重処理(Asymmetric Multi-Processing、AMP)に区分される。
対称型多重処理(SMP)の場合、主に一つのオペレーティングシステム(Operating System、OS)がシステムオンチップ(SoC)上の全てのCPUを占有して各CPUに作業を分散させて処理するため、一般的な作業に対して全般的な処理性能を向上させることができる。
反面、非対称型多重処理(AMP)の場合、それぞれのCPUが互いに異なる特定作業を専担して処理する。例えば、特定CPUにグラフィック処理(graphic processing)やデジタル信号処理(digital signal processing)のような作業を専担させて汎用作業に使用されるCPUの負荷を減らすことができる。
一つのシステムオンチップ(SoC)上の多数の異種CPUが互いに異なる特定作業を専担するためには、それぞれのCPUが独立的にオペレーティングシステムを運用可能でなければならない。このように、一つのシステムオンチップ(SoC)上の多数の異種CPUがそれぞれ独立的にオペレーティングシステム(OS)を運用する場合、それぞれのオペレーティングシステムは互いに異なる目的のために独立的に動作する。したがって、共有物理的資源接近に対する競争状態(race condition)が発生することがある。
物理的資源を共有する多重オペレーティングシステムを運用する状況で従来は仮想化技術を利用している。
仮想化技術は、一つの物理的資源を多数の仮想の論理的資源に抽象化する技術であって、このような仮想化を遂行するソフトウェアをハイパーバイザー(Hypervisor)という。ハイパーバイザーは、オペレーティングシステムよりも高い物理的資源接近権限を基盤として、オペレーティングシステムの物理的資源接近を統制し、物理的資源を抽象化して管理する。これによって多数のオペレーティングシステムは一つの物理的資源を競争状態なしに接近して利用することができる。
しかし、オペレーティングシステムの物理的資源接近を統制し、仮想の論理的資源を管理するためにハイパーバイザーが消耗する時間が発生し、ハイパーバイザーが動作するためのメモリ領域も追加で割当が必要になることがある。
このような追加的な時間消耗は、システムオンチップ(SoC)上に動作する多数のオペレーティングシステムが処理する作業に遅延時間として作用することがある。特に、リアルタイム性を要求する作業の場合、このような遅延時間は大きい制約事項として作用することがある。
本発明が解決しようとする課題は、互いに独立的なソフトウェアプログラムを実行する異種のマルチCPUが競争状態なしに物理的資源を共有し、保護が必要な物理的資源に対しては他のCPUの接近を遮断する異種のマルチCPUを運用するシステムオンチップ(SoC)およびその動作方法を提供することにある。
本発明の一実施例によれば、システムオンチップ(System-On-Chip、SoC)であって、それぞれのソフトウェアプログラムを互いに独立的に実行する複数の中央処理装置(Central Processing Unit、CPU)、前記複数の中央処理装置を連結するバスインターコネクタ、そして前記バスインターコネクタに連結され、前記複数の中央処理装置が前記バスインターコネクタを通じて共有する物理的資源に対して中央処理装置別にそれぞれのアクセスを制御する少なくとも一つのアクセス制御装置を含む。
前記少なくとも一つのアクセス制御装置は、物理的資源に対する共有要請、物理的資源に対する接近要請、中央処理装置の状態情報伝達を含む中央処理装置間の通信のうちの少なくとも一つのためのアクセスを制御することができる。
前記複数の中央処理装置は、第1バスインターフェースを通じてメモリを含む物理的資源を共有する少なくとも二つの中央処理装置を含み、前記共有する物理的資源のうちで前記少なくとも二つの中央処理装置間に排他的に使用する物理的資源に対するアクセスを制御するリソース共有制御装置をさらに含むことができる。
前記少なくとも二つの中央処理装置は、第1ソフトウェアプログラムを実行する第1中央処理装置、そして前記第1ソフトウェアプログラムと異なる第2ソフトウェアプログラムを実行する第2中央処理装置を含み、前記リソース共有制御装置は、前記少なくとも二つの中央処理装置間に排他的に使用する物理的資源のうちで前記第1ソフトウェアプログラムがローディングされるメモリ領域を物理的に分離し、分離されたメモリ領域に対して前記第2中央処理装置の接近を遮断することができる。
前記リソース共有制御装置は、前記第1ソフトウェアプログラムおよび前記第2ソフトウェアプログラムよりも権限レベルが高いファームウェアを運用し、前記ファームウェアを通じて前記排他的に使用する物理的資源に対する接近を制御することができる。
前記複数の中央処理装置は、第2バスインターフェースを通じてスタティックラム(RAM、Random Access Memory)および複数のデバイスと連結され、第3ソフトウェアプログラムを実行する第3中央処理装置を含み、前記少なくとも一つのアクセス制御装置は、前記第2バスインターフェースと前記バスインターコネクタとの間に位置して、前記スタティックラムおよび前記複数のデバイスに対する他の中央処理装置のアクセスを制御する第1アクセス制御装置を含むことができる。
前記複数の中央処理装置は、ブートコードを含むプログラムコードがローディングされるコードラムおよびユーザーデータがローディングされるデータラムと第3バスインターフェースを通じて連結され、第4ソフトウェアプログラムを実行する第4中央処理装置を含み、前記少なくとも一つのアクセス制御装置は、前記第3バスインターフェースと前記バスインターコネクタとの間に位置して、前記コードラムおよび前記データラムに対する他の中央処理装置のアクセスを制御する第2アクセス制御装置をさらに含むことができる。
前記第1中央処理装置は、クアッドコアを含み、前記第2中央処理装置、前記第3中央処理装置および前記第4中央処理装置は、シングルコアを含むことができる。
前記複数の中央処理装置は、前記第3中央処理装置、前記第1中央処理装置、前記第4中央処理装置および前記第2中央処理装置の順序に段階的にブーティングされた後、それぞれのソフトウェアプログラムを独立的に実行することができる。
本発明の他の実施例によれば、単一のシステムオンチップ(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ソフトウェアプログラムを実行することができる。
前記第1ソフトウェアプログラムは、オペレーティングシステム(Operating System、OS)を含み、前記第2ソフトウェアプログラムは、リナックスカーネルを含み、前記第3ソフトウェアプログラムは、リアルタイムオペレーティングシステム(RTOS、real-time Operating System)を含み、前記第4ソフトウェアプログラムは、ファームウェアを含むことができる。
前記2次ブートローダーの第3ソフトウェアプログラムの実行は、前記第2中央処理装置と前記第3中央処理装置を連結するバスインターコネクタに連結された第1アクセス制御装置が前記第2中央処理装置の前記第3中央処理装置に対する接近を許容した場合に遂行され得る。
前記3次ブートローダーの第4ソフトウェアプログラムの実行は、前記第2中央処理装置と前記第4中央処理装置を連結するバスインターコネクタに連結された第2アクセス制御装置が前記第2中央処理装置の前記第4中央処理装置に対する接近を許容した場合に遂行され得る。
本発明の実施例によれば、異種のマルチCPUを運用するシステムオンチップ(SoC)で、従来のような仮想化技術を使用せずに、各CPU間に競争状態なしに物理的資源を共有することができ、一部の共有資源に対するCPU接近を統制することができる。したがって、仮想化技術の使用による追加遅延時間の発生がないだけでなく、オーバーヘッドによる性能低下の問題を解決することができる。
また、リアルタイム作業処理を要求する応用においてリアルタイム性を満たすことができる環境を提供することができる。
本発明の実施例によるシステムオンチップ(SoC)の構成図である。 図1のシステムオンチップ(SoC)上に2種類のコントロールドメインを説明する図面である。 本発明の実施例によるブーティング順序をメモリ観点で示した図面である。 本発明の実施例によるシステムオンチップ(SoC)のブーティング動作を説明する図面である。
以下、添付した図面を参照して本発明の実施例について本発明が属する技術分野における通常の知識を有する者が容易に実施することができるように詳しく説明する。しかし、本発明は、多様な異なる形態に実現することができ、ここで説明する実施例に限定されない。そして、図面において、本発明を明確に説明するために説明上不要な部分は省略し、明細書全体にわたって類似の部分については類似の図面符号を付した。
明細書全体において、ある部分がある構成要素を「含む」という時、これは特に反対になる記載がない限り、他の構成要素を除外せず、他の構成要素をさらに含むことができることを意味する。
また、明細書に記載された「・・・部」、「・・・器」、「・・・モジュール」などの用語は、少なくとも一つの機能がや動作を処理する単位を意味し、これはハードウェアやソフトウェアまたはハードウェアおよびソフトウェアの結合で実現され得る。
本明細書で「伝送または提供」は、直接的な伝送または提供することだけでなく、他の装置を通じてまたは迂回経路を利用して間接的に伝送または提供することも含むことができる。
本明細書で、単数で記載された表現は「一つ」または「単一」などの明示的な表現を使用しない以上、単数または複数に解釈され得る。
本明細書で、図面に関係なしに同一の図面番号は同一の構成要素を指し、「および/または」は、言及された構成要素のそれぞれおよび一つ以上の全ての組み合わせを含む。
本明細書で、第1、第2などのように序数を含む用語は、多様な構成要素を説明することに使用され得るが、前記構成要素は前記用語により限定されない。前記用語は一つの構成要素を他の構成要素から区別する目的のみで使用される。例えば、本開示の権利範囲を逸脱せずに第1構成要素は第2構成要素と命名されることができ、類似して第2構成要素も第1構成要素と命名され得る。
本明細書で、「ブートローダー(Bootloader)」は、電子装置をブーティングしたり始動させる時、使用者が電子装置を使用できるようにソフトウェアプログラムを特定の保存媒体(例えば、外部記憶装置)から読み取って主記憶装置(例えば、RAM)に設置するプログラムをいう。
図1は本発明の実施例によるシステムオンチップ(System-On-Chip、SoC)の構成図であり、図2は図1のシステムオンチップ(SoC)上に2種類のコントロールドメインを説明する図面である。
図1を参照すれば、単一のシステムオンチップ(SoC)100は、4個の中央処理装置(Central Processing Unit、以下、「CPU」と通称する)101,103,105,107を含む。
システムオンチップ(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であって、独立した作業を遂行するそれぞれのソフトウェアプログラムを実行する。
この時、CPU_1 101は、システムオペレーティングシステム(Operating System、OS)を実行することができる。システムオペレーティングシステムは、使用者との相互作用を含む汎用作業を実行し、例えば、アンドロイド(Android)オペレーティングシステムであり得る。
CPU_2 103は、使用者との相互作用なしに速い処理が必要な特殊作業を処理するソフトウェアプログラムを実行することができる。例えば、CPU_2 103は、リナックスカーネルを実行することができる。
CPU_3 105は、リアルタイム処理が必要な作業を処理するソフトウェアプログラムを実行することができる。例えば、CPU_3 105は、リアルタイムオペレーティングシステム(Real Time Operating System、RTOS)を実行することができる。
CPU_4 107は、他のCPU101,103,105に比べて低仕様プロセッサーを含むことができる。CPU_4 107は、無欠性検査などのような暗/復号化作業を処理するセキュリティファームウェア(Security Firmware)を実行することができる。
CPU_1 101は、クアッド(Quard)コアプロセッサーを含むことができる。CPU_2 103、CPU_3 105およびCPU_4 107は、シングル(Single)コアプロセッサーを含むことができる。
このように、CPU_1 101、CPU_2 103、CPU_3 105およびCPU_4 107が互いに独立したソフトウェアプログラムを実行することによって、例えばCPU_1 101のソフトウェアプログラムは4個のコアプロセッサーを全て使用できるようになる。特に、CPU_1 101のソフトウェアプログラムがシステムオペレーティングシステムである場合、4個のコアプロセッサーを全て占有できるようになるため、システムオンチップ(SoC)100全体の性能が向上することができる。
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)などを含むことができる。
この時、CPU_1 101およびCPU_2 103とバス109との間にはリソース共有制御装置117が位置する。
リソース共有制御装置117は、CPU_1 101およびCPU_2 103が共有する物理的資源のうちで排他的に使用する物理的資源に対するアクセスを制御する。
CPU_3 105は、バス119を通じてSRAM(Static Random-Access Memory)121、専用デバイス123および複数の共有デバイス125に連結される。ここで、専用デバイス123および複数の共有デバイス125は、UART、ICTC(Input Capture Timer Counter)、直列フラッシュメモリ(Serial Flash Memory)、GPSBなどを含むことができる。
この時、UART、GPSBなどは共有されないCPU専用資源であり得る。
CPU_4 107は バス127を通じてコードラム(CODE RAM)129およびデータラム(DATA RAM)131に連結される。コードラム129およびデータラム131は、CPU_4 107のソフトウェアプログラム(ex.セキュリティファームウェア)をローディングする。この時、データラム131は共有されず、CPU_4 107のみにより占有される専用物理的資源であり得る。したがって、データラム131への接近はアクセス制御装置_2 137により遮断され得る。
バス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により選択的に共有され得る。
この時、CPU_1 101およびCPU_2 103は、プロセッサーを除いた全ての物理的資源111,113,115を共有する。
しかし、このように全ての物理的資源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を定義する。
図2を参照すれば、トラストゾーンコントロールドメイン(Trustzone Contro Domain)P1は、リソース共有制御装置117により制御される。
CPU_1 101およびCPU_2 103は、バス-インターコネクタ133を通せずに、メモリを含む全ての物理的資源111,113,115を共有する。この時、リソース共有制御装置117は、共有される物理的資源のうちで排他的に使用しなければならない物理的資源に対しては物理的に区分して接近を遮断する。
リソース共有制御装置117は、ARM Trustzone Technologyを利用して物理的資源の使用を分離する。具体的にリソース共有制御装置117は、ARM Trustzone Techonolgyを利用してオペレーティングシステムよりも高い権限を有するファームウェア(firmware)をリソース共有制御装置117を通じて運用することができる。
リソース共有制御装置117は、CPU_1 101およびCPU_2 103が互いに共有する物理的資源のうちで一部の物理的資源をCPU_1 101にのみ排他的な接近権限を設定することができる。CPU_2 103は、CPU_1 101にのみ排他的な接近権限が設定された物理的資源に対してはリソース共有制御装置117により接近が遮断される。
アクセスコントロールドメインP3は、バス-インターコネクタ133に連結されたアクセス制御装置_1 135およびアクセス制御装置_2 137により制御される。
アクセス制御装置_1 135は、バス119とバス-インターコネクタ133との間に連結される。
アクセス制御装置_1 135は、バス119を通じて連結された物理的資源121、123、125に対する別途の接近権限を設定する。この接近権限はCPU_3 105または物理的資源121、123、125に対する他のCPU101,103,107の接近遮断設定を含むことができる。アクセス制御装置_1 135は、バス-インターコネクタ133を通じてバス119に向かうトラフィックを遮断することができる。
アクセス制御装置_2 137は、バス127とバス-インターコネクタ133との間に連結される。
アクセス制御装置_2 137は、バス127を通じて連結された物理的資源129,131に対する別途の接近権限を設定する。この接近権限はCPU_4 107または物理的資源129,131に対する他のCPU101,103,105の接近遮断設定を含むことができる。
アクセス制御装置_2 137は、バス-インターコネクタ133を通じてバス127に向かうトラフィックを遮断することができる。
ここで、アクセス制御装置_1 135、アクセス制御装置_2 137により遮断されるトラフィックは、物理的資源の共有要請、物理的資源に対する接近要請、CPU間の通信要請などを含むことができる。
CPU間の通信要請には、各CPU101,103,105,107の正常でない状態情報の伝達要請が含まれ得る。ここで、正常でない状態情報は、リセット(reset)、再スタート(restart)、再ブーティング(reboot)、クラッシュ(crash)のうちの少なくとも一つを含むことができる。
このように、アクセス制御装置135,137を利用してCPU_3 105またはCPU_4 107に連結された物理的資源を共有したり保護することができる。
図1および図2で説明したように、本発明の実施例によれば、それぞれのCPU101,103,105,107が独立的にソフトウェアプログラムを実行し、競争状態なしに物理的資源を共有することができる。
この時、各CPU101,103,105,107を動作可能な状態に転換するためのブーティング方法について説明する。ブーティング順序は各CPU101,103,105,107間の動作環境とソフトウェアプログラムを運用する過程を含む。
単一のシステムオンチップ(SoC)100上の4個の異種CPU101,103,105,107は、独立的なソフトウェアプログラムを運用し、それぞれ異なる目的の作業を遂行する。各CPU101,103,105,107は、先に説明したように、自体的な物理的資源を所有すると同時に、これらを他のCPU101,103,105,107と共有して使用する。したがって、物理的資源の初期化がなされるブーティング段階を単一化して競争状態の発生なしに資源を初期化する。
図3は本発明の実施例によるブーティング順序をメモリの観点で示した図面である。
図3を参照すれば、競争状態の発生がない資源初期化をするブーティング順序をメモリ使用の観点で示した。
システムオンチップ(SoC)100上の電源が印加されると、CPU_3(図1の105)は、ROMに保存されているチップブートコード(Chipboot ROM Code)をSRAM(図1,2の121)にローディングして実行する。チップブートコードは1次ブートローダーを呼出し、CPU_3 105は呼出された1次ブートローダーをSRAM(図1,2の121)にローディングして実行する。
1次ブートローダーは、CPU_1(図1,2の101)の2次ブートローダーを呼出す。CPU_1 101は、呼出された2次ブートローダーをSRAM121にローディングして実行する。2次ブートローダーは3次ブートローダーを呼出す。
CPU_1 101は、呼出された3次ブートローダーをSDRAM(図1,2の111)にローディングして実行する。
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上で実行することができる。
2次ブートローダーはCPU_4(図1,2の107)のファームウェアを呼出し、呼出されたファームウェアはCPU_4 107のコードラム(図1,2の129)にローディングされる。
3次ブートローダーは、CPU_1 101のアンドロイドOSとCPU_2(図1,2の103)のリナックスカーネルを呼出し、呼出されたアンドロイドOSとリナックスカーネルはSDRAM111にローディングされる。
このように、4個の異種CPU101,103,105,107は、電源が印加された時点に並列的に動作する。異種CPU101,103,105,107は、CPU_3 105→CPU_1 101→CPU_2 103→CPU_4 107の順序に段階的に駆動された後、それぞれのソフトウェアプログラムを独立的に実行する。
図4は本発明の実施例によるシステムオンチップ(SoC)のブーティング動作を説明する図面である。
図4を参照すれば、システムオンチップ(SoC)100上の異種CPU101,103,105,107に電源がオン(S101)されると、最初に動作するCPUはCPU_3(図1,2の105)である。
CPU_3 105は、初期化(またはリセット)(S103)後、ロム(ROM)に予め搭載されたチップブートコード(Chipboot ROM Code)を実行してブーティングのための基本作業を遂行する(S105)。
CPU_3 105は、チップブートコードによりストレージデバイス(115または123または125)から呼出された1次ブートローダーを実行(S107)する。CPU_3 105は、1次ブートローダーの実行でCPU_3 105のソフトウェアプログラムを動作させるための基本作業を遂行し、CPU_1(図1,2の101)を動作させるための準備を進行する。このような準備は2次ブートローダーの呼出およびCPU_1 101を駆動させる作業を含む。
CPU_3 105は、CPU_1 101に2次ブートローダーの呼出を伝達する(S109)。
CPU_3 105は、独立的なオペレーティングシステムであるRTOSを実行する(S111)。
CPU_1 101は、CPU_3 105により呼出された2次ブートローダーを実行する(S113)。ここで、2次ブートローダーは、ARM Trusted Firmwareであり得る。
2次ブートローダーは、CPU_4(図1,2の107)を動作させるための準備をし、3次ブートローダーを呼出す。つまり、CPU_1 101は、2次ブートローダーを実行してCPU_4 107のファームウェア実行を要請する(S115)。
CPU_1 101は、2次ブートローダーにより呼出された3次ブートローダーを実行(S117)する。
このように、2次ブートローダーは、ブートローダーとしての役割だけでなく、物理的資源を多くの独立的なソフトウェアプログラムが安全に共有することができるようにセキュリティファームウェア(secure firmware)としての役割も共に遂行する。このために2次ブートローダーはブーティング段階以降にもセキュリティファームウェアとして遂行される一部のコードをSDRAM(図1,2の111)に維持する。
セキュリティファームウェアとしての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間に発生し得る競争状態を除去する。
2次ブートローダーの実行によりCPU_1 101はCPU_3 105との従属関係から独立する。これによって、CPU_3 105は、自己を除いた残りのCPU101,103,107に対する始動と終了に対する権限を失う。
CPU_1 101の3次ブートローダーは、CPU_2(図1,2の103)のリナックスカーネルを呼出してCPU_2 103を駆動する(S119)。次に、CPU_1 101の3次ブートローダーはアンドロイドOSを実行する(S121)。
全てのブーティング手続を完了すると、最終的に4個の異種CPU101,103,105,107は、それぞれ異なる目的の作業を遂行する独立したソフトウェアプログラムを運用するようになる。したがって、仮想化技術を使用する従来の技術とは異なり、いずれか一つのソフトウェアプログラムが全体CPUを占有しない。したがって、ソフトウェアプログラムまたはCPU上の正常でないことが発生しても、仮想化技術を使用する場合とは異なり、全体システム100の駆動なしに一部の問題になるソフトウェアプログラムまたはCPUのみを再駆動するように設計することができる。
また、デバイス共有の観点で、仮想化技術を使用する場合、中央の制御プログラムがデバイス接近を制御するため、全てのCPUがこの制御プログラムを経なければならないことによるオーバーヘッドが発生する。したがって、リアルタイム作業(Time critical)の場合、仮想化技術を使用することができない。しかし、本発明の実施例によれば、RTOSのようなリアルタイム作業を遂行するCPU_3 105が専用デバイス123を独占して使用するため、別途のオーバーヘッドの問題がない。
以上で説明した本発明の実施例は、装置および方法のみを通じて実現されるのではなく、本発明の実施例の構成に対応する機能を実現するプログラムまたはそのプログラムが記録された記録媒体を通じて具現されることもできる。
以上で本発明の実施例について詳細に説明したが、本発明の権利範囲はこれに限定されず、特許請求の範囲で定義している本発明の基本概念を利用した当業者の多様な変形および改良形態も本発明の権利範囲に属する。

Claims (13)

  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に記載の動作方法。
JP2022537811A 2019-12-24 2020-11-25 異種のマルチcpuを運用するシステムオンチップおよびその動作方法 Active JP7444994B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR10-2019-0174323 2019-12-24
KR1020190174323A KR102285084B1 (ko) 2019-12-24 2019-12-24 이종의 멀티 cpu를 운용하는 시스템-온-칩 및 그 동작 방법
PCT/KR2020/016787 WO2021132904A1 (ko) 2019-12-24 2020-11-25 이종의 멀티 cpu를 운용하는 시스템-온-칩 및 그 동작 방법

Publications (2)

Publication Number Publication Date
JP2023510131A true JP2023510131A (ja) 2023-03-13
JP7444994B2 JP7444994B2 (ja) 2024-03-06

Family

ID=76575273

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022537811A Active JP7444994B2 (ja) 2019-12-24 2020-11-25 異種のマルチcpuを運用するシステムオンチップおよびその動作方法

Country Status (5)

Country Link
US (1) US20230020191A1 (ja)
JP (1) JP7444994B2 (ja)
KR (1) KR102285084B1 (ja)
DE (1) DE112020006305T5 (ja)
WO (1) WO2021132904A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090150598A1 (en) * 2007-12-10 2009-06-11 Electronics And Telecommunications Research Institute Apparatus and method of mirroring firmware and data of embedded system
KR20090098798A (ko) * 2006-10-24 2009-09-17 장-마크 로빈 비디오 이미지들의 시퀀스의 가상 시뮬레이션을 위한 방법 및 디바이스
KR20130128208A (ko) * 2012-05-16 2013-11-26 삼성전자주식회사 칩-투-칩 링크를 통해 공유 메모리로의 억세스를 지원하는 시스템 온칩, 상기 시스템온칩의 동작 방법, 및 상기 시스템온칩을 포함하는 전자 시스템
US20160322097A1 (en) * 2015-04-29 2016-11-03 In-sub Shin System-on-chip and electronic device having the same
US20170199835A1 (en) * 2016-01-13 2017-07-13 Samsung Electronics Co., Ltd. System-on-chip, mobile terminal, and method for operating the system-on-chip

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010122677A1 (en) * 2009-04-23 2010-10-28 Hitachi,Ltd. Storage apparatus and its program processing method and storage controller
US10877695B2 (en) * 2009-10-30 2020-12-29 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
WO2012101759A1 (ja) * 2011-01-25 2012-08-02 富士通株式会社 プロセッサ処理方法、およびプロセッサシステム
US8954721B2 (en) * 2011-12-08 2015-02-10 International Business Machines Corporation Multi-chip initialization using a parallel firmware boot process
US9471793B2 (en) * 2013-01-07 2016-10-18 Infineon Technologies Ag System on chip with embedded security module
JP6039522B2 (ja) * 2013-09-06 2016-12-07 株式会社東芝 外部入出力装置および調停設定結果格納方法
US10394724B2 (en) * 2016-08-22 2019-08-27 Qualcomm Incorporated Low power data transfer for memory subsystem using data pattern checker to determine when to suppress transfers based on specific patterns

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090098798A (ko) * 2006-10-24 2009-09-17 장-마크 로빈 비디오 이미지들의 시퀀스의 가상 시뮬레이션을 위한 방법 및 디바이스
JP2010507854A (ja) * 2006-10-24 2010-03-11 ロビン・ジャン−マルク ビデオイメージシーケンスを仮想シミュレーションする方法及び装置
US20090150598A1 (en) * 2007-12-10 2009-06-11 Electronics And Telecommunications Research Institute Apparatus and method of mirroring firmware and data of embedded system
KR20090060774A (ko) * 2007-12-10 2009-06-15 한국전자통신연구원 임베디드 시스템의 펌웨어 및 데이터 미러링 장치 및 방법
KR20130128208A (ko) * 2012-05-16 2013-11-26 삼성전자주식회사 칩-투-칩 링크를 통해 공유 메모리로의 억세스를 지원하는 시스템 온칩, 상기 시스템온칩의 동작 방법, 및 상기 시스템온칩을 포함하는 전자 시스템
JP2013239179A (ja) * 2012-05-16 2013-11-28 Samsung Electronics Co Ltd チップ・ツー・チップリンクを通じて共有メモリへのアクセスを支援するシステムオンチップ、その動作方法、及び該システムオンチップを含む電子システム
US20160322097A1 (en) * 2015-04-29 2016-11-03 In-sub Shin System-on-chip and electronic device having the same
KR20160128678A (ko) * 2015-04-29 2016-11-08 삼성전자주식회사 시스템-온-칩 및 이를 포함하는 전자 장치
US20170199835A1 (en) * 2016-01-13 2017-07-13 Samsung Electronics Co., Ltd. System-on-chip, mobile terminal, and method for operating the system-on-chip
KR20170084969A (ko) * 2016-01-13 2017-07-21 삼성전자주식회사 시스템 온 칩, 모바일 기기 및 시스템 온 칩의 동작 방법

Also Published As

Publication number Publication date
US20230020191A1 (en) 2023-01-19
DE112020006305T5 (de) 2022-12-01
KR102285084B1 (ko) 2021-08-03
WO2021132904A1 (ko) 2021-07-01
KR102285084B9 (ko) 2021-10-27
KR20210081909A (ko) 2021-07-02
JP7444994B2 (ja) 2024-03-06

Similar Documents

Publication Publication Date Title
US8914618B2 (en) Instruction set architecture-based inter-sequencer communications with a heterogeneous resource
US9483639B2 (en) Service partition virtualization system and method having a secure application
US7743389B2 (en) Selecting between pass-through and emulation in a virtual machine environment
US9672058B2 (en) Reduced service partition virtualization system and method
JP5308522B2 (ja) ハイパーバイザ・ローディングのためのメモリ管理
US20110161644A1 (en) Information processor
EP3889771A1 (en) Hypervisor removal
JP5328410B2 (ja) 被起動オペレーティングシステム(os)動作計算機、計算機のos起動方法およびos起動プログラム
JP2009296195A (ja) 複数のcpuコアを備えたfpgaを用いた暗号装置
JP5819350B2 (ja) 計算機システム及び起動方法
US9477509B2 (en) Protection against interrupts in virtual machine functions
JP7444994B2 (ja) 異種のマルチcpuを運用するシステムオンチップおよびその動作方法
US10810032B2 (en) System and method for dynamic guest-controlled halt polling using a CPU governor
CN115220864A (zh) 虚拟模式执行管理器
US11669620B2 (en) System platform initializer for mixed-critical systems
Im et al. On-demand virtualization for live migration in bare metal cloud
WO2013189180A1 (zh) 虚拟化系统中关闭中断的方法和装置
US20120284711A1 (en) Method and Arrangement for Configuring a Resource for a Virtual Runtime Environment
US20230024607A1 (en) System-on-chip for sharing graphics processing unit that supports multimaster, and method for operating graphics processing unit
US10922149B2 (en) System comprising a plurality of virtualization systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220617

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230808

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231107

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240222

R150 Certificate of patent or registration of utility model

Ref document number: 7444994

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150