DP の読み方: Kunpeng のプロセッサ アーキテクチャとプログラミング (11) Kunpeng の生態学的ソフトウェア アーキテクチャとハードウェア固有のソフトウェア

Kunpeng ソフトウェア構成

Kunpeng プロセッサのソフトウェア エコロジーは、常に発展し続けるソフトウェア エコロジーです。サーバー自体にもさまざまな複雑性があります。長い開発期間を経て、サーバー ハードウェアにはさまざまなオペレーティング システム ソリューションが搭載されています。これらのオペレーティング システムは、多くの場合、ソフトウェアの階層的な組み合わせを実装しています。そのソフトウェア アーキテクチャを簡単に説明するのは困難です

このセクションでは、主にGNU/Linux ソフトウェア エコロジーの観点から、 Kunpeng ソフトウェアの構成を比較的高いレベルで紹介します。

以下は、Kunpeng GNU/Linux のソフトウェア アーキテクチャの概要です。

Kunpeng GNU/Linux のソフトウェア アーキテクチャの概要
上の図では、下が Kunpeng サーバー ハードウェアであり、Kunpeng プロセッサをコアとする汎用サーバー デバイスです。
ARM コアを含むハードウェア システム上で実行されるソフトウェアには、必然的にシステム固有のコードが含まれます。このようなコードは、通常、ファームウェア の形式で他のシステム ソフトウェアから分離されます。このセクションでは、この機能のコード、つまりハードウェア固有のコードについて説明します。ソフトウェア

サーバー分野では、サーバーのハードウェアハ​​ードウェア固有のソフトウェアがすぐに使える」サーバーに最も大きな影響を与えるため、これら 2 つの部分が ARM サーバーに関連するコンプライアンス要件を満たす必要があります ( ARMv8 を参照)。アーキテクチャKunpeng ソフトウェア エコロジー、クラウド サービス)

ハードウェア固有のソフトウェア

ハードウェア固有のソフトウェアとは、ARM サーバー内のシステムに固有のソフトウェアを指し、多くの場合、いわゆるブート ローダーやデバイス固有のファームウェアなど、主にファームウェアの形式で提供されます。

このセクションでは、最初にブート ローダーを紹介し、次にARM サーバーのファームウェア要件仕様SBSA および SBBR、さらにUEFI、ACPI、ATF (ARM Trusted Firmware)などの関連する重要な要素を紹介します。

1. ブートローダー

ブート ローダーはブート ローダーであり、ブートストラップ ローダーという単語の短縮版です。通常、システムの電源がオンまたはリセットされた後の最初のソフトウェアであるため、特定のプロセッサとマザーボードに固有です。

起動プロセスを大まかに見てみると、次の 3 つの主要な段階で構成されます。

  1. システムの電源がオンになり、ハードウェアがブート ローダーをロードします。
  2. ブート ローダーは、Linux カーネルなどのオペレーティング システムをロードします。
  3. オペレーティング システムはアプリケーションとユーザー データをロードし、ブート プロセスを完了します。
系统上电 加载
加载
加载
硬件
BootLoader
操作系统
应用程序和用户数据

その中で、ブート ローダーの主な機能は、ハードウェアとオペレーティング システムの間の仲介者として機能し、オペレーティング システムをロードすることです。この目的を達成するために、ブート ローダーは多くの場合、オペレーティング システムを検索して解放し、オペレーティング システムが実行するための基本環境を確立します (メモリの初期化、ハードウェア デバイス パラメータの検出とそれらのパラメータをオペレーティング システムに返すなど)。一部の複雑なブート ローダーには、マルチステージ ブート、複数のブート方法 (フラッシュ メモリ、ディスク、ネットワーク、U ディスク、CD など) のサポート、複数のオペレーティング システムの起動、ファームウェアの更新、タイム サービスの実行、最下位レベルのデバッグのサポートなど。

サーバー分野では、セキュアブートのサポートも非常に重要な機能です。

2. SBSA と SBBR

オペレーティング システムが異なれば、システム読み込みプロセスの要件も異なります。ARM の伝統的な強みである組み込みデバイスやモバイル端末の分野の Soc 製品はカスタマイズされ、差別化され、価格に敏感なことが多く、ユーザーがハードウェア モジュールのオペレーティング システムを変更することはほとんどありません。このような場合、カスタム ソフトウェアのコストは、ハードウェア機能を削除することで節約されるコストよりもはるかに低くなります。したがって、このような場合、利用プランは「ブートファームウェア + ブートローダー (u-boot、fastboot) + オペレーティング システム (Linux) + アプリケーション ソフトウェア」のように高度にカスタマイズされることがほとんどです。

しかし、サーバーや PC の分野では、ソフトウェアはサードパーティによって開発されることが多く、ユーザーは「すぐに使える」ことと「モジュールを交換できる」ことだけを考慮する必要があります。カスタム ハードウェアのコストはソフトウェアのコストをはるかに上回ります。したがって、使用されるソリューションは通常、標準化されたインターフェイスと互換性があります。

SBSA (Server Base Boot Requirements) および SBBR (Server Base Boot Requirements) は、サーバー アプリケーションの分野におけるサーバーの基本的なブート要件について ARMによって提案された仕様です。

SBBA 仕様は、ARM 64 ビット プロセッサ アーキテクチャのハードウェア アーキテクチャに基づいた仕様であり、オペレーティング システム、ハイパーバイザ (仮想マシン マネージャー)、機能に依存するファームウェアなどのサーバー オペレーティング システム ソフトウェアについて詳細に説明しています。システム アーキテクチャの重要な側面 CPU、PCIe、タイマー、IOMMU、UART (ユニバーサル非同期レシーバー/トランスミッター、ユニバーサル非同期レシーバー トランスミッター)、ウォッチドッグ、割り込みなどを含む、適切なシステム アーキテクチャを実現するのに十分な標準システム アーキテクチャを備えることが目標です。で使用される
システムイメージ。すべての準拠システム ハードウェアで実行されます。

SBSA 標準では、主に次の側面の要件が定義されています。

1.服务器在加电自检(POST)阶段应该检查的基本硬件组件,例如处理器、内存、硬盘驱动器、键盘和鼠标等。
2.服务器引导过程中需要加载的最小软件集合,包括固件(如BIOS或UEFI固件)、引导加载器(如GRUB或UEFI引导加载器)以及内核等。
3.服务器在引导过程中应该遵循的基本时序和顺序。
4.对于采用多引导架构的系统,SBSA还规定了引导过程中如何处理多个操作系统的引导选项。

SBBR 仕様は、システム ブート ファームウェアの仕様であり、すぐに使える機能を実現するために SBSA 標準に準拠する ARM AArch64 アーキテクチャ サーバー上のオペレーティング システムまたはハイパーバイザー (仮想マシン マネージャー)の基本的なファームウェア要件を定義します。、必要なスタートアップ、ランタイム サービス、およびセキュリティ要件を含み、UEFI (Unified Extensible Firmware Interface、Unified Extensible Firmware Interface) および ACPI (Advanced Adaptive Power Management Interface Supplement) に準拠します。

SBSA/SBBR は、ARM サーバーが OS やモニターなどのファームウェアを起動できるための最小要件セットであり同時にUEFIACPI、PSCI、SMBIO などの業界標準に従います。その中でも、SBSAとSBBRは名前は似ていますが、実際には異なる側面に焦点を当てています。SBSA は主に、ブート ローダー、ランタイム サービス、ファームウェアの抽象化など、システムの起動と操作の最小要件に焦点を当てていますが、SBBR は、UEFI の BootServices、RuntimeServices、プロトコル、その他の基本サービスなどのブート プログラムの最小要件に焦点を当てています。プロトコルインターフェイス。

実装レベルでは、SBSA および SBBR 仕様は主に、カスタマイズされた Linux システムである LuvOS を通じて実装されます。LuvOS は Linux カーネルに基づいており、FWTS (ファームウェア テスト スイート) および SBSA-ACS (ARM サーバー ベース アーキテクチャ - 自動車およびサーバー コンソーシアム スターター キット) のツールをLinux 上で標準の Linux カーネルでコンパイルすることによって得られます。

3.UEFI

UEFI は元々 Intel によって導入されたもので、16 ビット x86 の「レガシー」PC BIOS の後継であり、現在UEFI フォーラムによって保守されています。

UEFI (Unified Extensible Firmware Interface) は、コンピュータのファームウェアで使用されるグラフィカル標準インターフェイスであり、従来の BIOS を置き換えるように設計されています。UEFI は拡張可能なファームウェア インターフェイス仕様として定義されており、オペレーティング システムがプリブート環境でファームウェアと対話できるようにするための標準 API のセットを提供します。

UEFI 仕様のオープン ソースのリファレンス実装は edk2 または EDK Ⅱ で、ソース コードはhttps://github.com/tianocore/tianocore.github.io/tree/master/edk2
にあります。上流の開発チームはTianoCoreです。コミュニティ

UEFI はグラフィカル インターフェイスで表示され、従来の BIOS よりも使いやすく、カスタマイズしやすくなっています。さらに、UEFI は、ネットワーク構成、ハードウェア診断、セキュア ブートなどの高度な機能も提供します。

UEFI は、AMD、Intel、Microsoft などの業界をリードする企業によって共同で策定されています。コンピューター ハードウェアの発展に伴い、UEFI も新しいニーズを満たすために進化しています。

UEFI 仕様には、NVRAM (不揮発性ランダム アクセス メモリ、不揮発性ランダム アクセス メモリ)、EFI のパラメータに従って実行可能ファイル (おそらくブート ローダーまたはその他のイメージ ファイル) をロードする方法を決定するブート マネージャー BOOT Manager が含まれています。 (Extensible Firmware Interface) 実行可能ファイル形式は、PE (Protable Executable、Portable Executable) 形式に準拠する必要があります。PE は広く使用されている Windows プラットフォームです

4.ACPI

ACPI (Advanced Configuration and Power Interface) はオープンな電源管理インターフェイス仕様であり、共通の標準化された電源管理方法を提供するように設計されています。ACPI は、オペレーティング システムの制御下で電源管理を完全に制御するためのインターフェイス仕様を定義します。

ACPI には主に次の部分が含まれています。

  1. コンピュータ システムの電源状態とデバイスの状態を説明するために使用される表 (表)。
  2. オペレーティング システムとファームウェア間の通信用インターフェイス。
  3. 電源、熱管理、およびシステム構成を説明するための仕様。
  4. イベント (イベント) は、実行時の電源管理を提供するために使用されます。

ACPI は、豊富な電源管理機能を提供する比較的複雑な仕様です。コンピュータ分野では、ACPI に基づいて多くの新しい電源管理機能が実装されています。
ACPI サブシステムと構造図

おすすめ

転載: blog.csdn.net/m0_74037814/article/details/132544992