Juzo

マイコンの機能を簡単に記載します。

Juzo

マイコンの機能を簡単に記載します。

最近の記事

高性能SoCの要素技術

高性能SoC(System on Chip)に係る要素技術の概要を記載します。 FFI(Freedom From Interference)ハードの話。様々な機能安全(ASIL-D、ASIL-B、QMなど)のソフトを1つのSoCに実装する際、ソフト間が干渉しないこと(FFI)の保証が重要。QMソフトからASIL-Dソフトへのアクセス制限(SoCに接続されているDDRメモリをASIL-DソフトやQMソフトで共有する場合、QMソフトからASIL-Dソフトへのアクセスを禁止するな

    • UCIe

      半導体パッケージ内のチップレット間の接続を定義するUCIe(Universal Chiplet Interconnect Express)の概要について記載します。 チップレットは、従来のモノリシックチップ(半導体メーカ1社が1チップ上に集積した大規模チップ)をあえて機能毎に分離した小さなチップを意味します。チップレットはインターポーザ(チップレット接続する基板)上に実装して大規模チップを構成します(IntelのCPUとnVIDIAのGPUが1チップになるイメージ)。このチ

      • SoCのホモ接続とヘテロ接続

        SoC(System On Chip)のマルチコアで採用されるホモ接続とヘテロ接続について記載します。 「ホモ接続」は全て同じコアで構成され、コア間のデータ転送が容易のためソフトの並列度向上に有効。例えば、ArmのCA73だけで構成。 「ヘテロ接合」は異なるコアで構成され、特定のソフトに特化した処理や、電力効率を重視する場合に有効。Armの仕様でbig.LITTLEがあり、例えば、CA73をbig(最大4コア)、CA53をLITTLE(最大4コア)に割り当て、性能が必要な時

        • AMBA 5 CHI

          Armコアを採用してSoC(System on Chip)にする際の内部バスAMBA 5 CHIの概要を、メモリアクセスを中心に記載します。なお、AMBAは「Advanced Microcontroller Bus Architecture」、CHIは「Coherent Hub Interface」の略称になります。 AMBA 5 CHIとは前VerのAMBA 4 AXI(Advanced eXtensible Interface)のインタフェースは、 ・アドレス/データの

        高性能SoCの要素技術

          Linux(Ubuntu)メモ その2

          「Linux(Ubuntu)メモ その1」に引き続き、当方がLinux(Ubuntu)を操作した際の設定や対応などを記載しています。なお、そのときの環境は、Windows10のPCに、VirtualBox7.0(7.0.14 r161095)をインストールし、VirtualBox7.0のVMの1つとしてUbuntu 22.04LTSを実装しました。 Linuxカーネルの追加Ubuntu 22.04のLinuxカーネルは「6.5.0-28」でしたが、以下の方法で別のカーネルを

          Linux(Ubuntu)メモ その2

          Linux(Ubuntu)メモ その1

          Linux(Ubuntu)の構成や、当方がLinux(Ubuntu)を操作した際の設定や対応などを記載しています。なお、そのときの環境は、Windows10のPCに、VirtualBox7.0(7.0.14 r161095)をインストールし、VirtualBox7.0のVMの1つとしてUbuntu 22.04LTSを実装しました。 Linux(Ubuntu)の構成Linuxの構成は下図の通り。アプリ(ユーザからのコマンド)とカーネルとのやり取りを支えるのが、シェル。シェルが

          Linux(Ubuntu)メモ その1

          データキャッシュのスヌーピング

          アウトオブオーダー実行のマイコンは、データキャッシュを内蔵し、更に、マルチコア(MPUを複数持つ)の構成で性能向上に努めている。その際、気になるのが、MPU間のデータキャッシュのデータの受け渡しである。この操作は、ソフトウェアでなく、マイコン内のハードウェアが実行し、スヌーピングと呼ばれている。 例えば、MPU0とMPU1のデータキャッシュが同じアドレスのデータを持ち、MPU0とMPU1のそれぞれで処理をしていた場合、MPU0がデータを書き換えると、その結果をMPU1にちゃ

          データキャッシュのスヌーピング

          アウトオブオーダー実行の性能改善

          ここでは、アウトオブオーダー実行が可能なマイコンの性能改善案(アセンブラ・レベルの話)の一例を記載しますが、本来、マイコンメーカとコンパイラメーカが協議することなので参考にご覧頂きたい。 その1)2waySuperScalar対応コンパイラ vs 2waySuperScalar未対応コンパイラ まず、2waySuperScalarとは2個の命令を同時に実行できるマイコンのことを意味し、アウトオブオーダー実行のマイコンではよく採用されている技術である。 アウトオブオーダー実

          アウトオブオーダー実行の性能改善

          マイコンのアドレス空間

          昔のマイコンのアドレス空間は、OS、アプリ。権限が与えられているのは(権限が強いのは)OS。権限があるOSはアプリを含め全領域に対してアクセス可能。逆に、アプリからはOSが管理する領域にアクセスできない。アプリからOSにアクセスしたい場合は、API(Application Programming Interface)というOSのインタフェースに仕事を依頼する。 今のマイコンのアドレス空間は、セキュア、HyperVisor、OS、アプリに細分化される傾向がある。一番権限がある

          マイコンのアドレス空間

          分岐予測

          分岐命令の動作を踏まえて分岐予測が導入されるまでの背景や、分岐予測の動作を記載する。 分岐予測が導入されるまでの背景 マイコンを動かすソフトウェアの中には、条件(データの値など)によって途中で処理を変える分岐命令があります(分岐命令の一例…データが0なら後続の命令を処理し、データが1なら外部デバイスにデータ転送するプログラムにジャンプする)。  Label0:   …   LD r2, 0x0(r3)   BEQ r2, r4, Label1 //r2とr4(1が入って

          分岐予測

          仮想アドレスと物理アドレス、TLB

          マイコンのアドレス空間、仮想アドレスと物理アドレスの関係、そして、仮想アドレスと物理アドレスの間に入るTLBを記載します。 マイコンのアドレス空間 最近、組み込みシステムでも64bitマイコンが使われるようになってきた。64bitのアドレス空間は、2の64乗から16E(エクサ)バイトになる。これは非常に大きなアドレス空間であり、16Eバイト分のRAMや外部デバイスを実装するとシステムの原価が高騰するし、そこまで広大なプログラムを作成して処理することは無いため、64bitの

          仮想アドレスと物理アドレス、TLB

          マイコンのパフォーマンス評価

          マイコンによっては、マイコン内の実行結果を、マイコン自身のパフォーマンス評価として数値化する機能がある。一般的には、JTAG ICE(JTAGデバッガ)等がサポートしている場合が多い。 ここでいうパフォーマンス評価とは、マイコンがイベント(下記)を定義しており、そのイベントに該当すれば、マイコン自らカウントするというもの。JTAG ICEはそのカウント値を見える化する。 <パフォーマンス評価のイベントの一例> ・マイコンのクロック数 ・命令の実行数 ・ロード/ストア命令の実

          マイコンのパフォーマンス評価

          マイコンの性能アップ用バッファ

          マイコンの性能アップのために内蔵されているバッファと、参考情報として、アウトオブオーダー実行のマイコンのデバッグ時にも使えるバッファを空にする方法を記載します。 マイコンの性能アップのためのバッファ 高性能なマイコンは、マイコン内の処理(加算など)に注力して性能アップさせるため、メモリなどのマイコン外部への書き出し等は、バッファ(下図の赤字)に任せてマイコン内の処理と切り離している。 参考)アウトオブオーダー実行のマイコンのバッファを空にする ここからは、デバッグ時の

          マイコンの性能アップ用バッファ

          JTAG ICE(JTAGデバッガ)

          JTAG ICEの背景やアクセス等を記載します。 JTAG ICEの背景 高性能なマイコンはJTAG I/F(IEEE1149.1)をサポートしています。もともとJTAGはバウンダリ・スキャンといって、マイコンとプリント基板の実装状態(マイコンがプリント基板にちゃんと「はんだ付け」されているか)を確認する機能から始まった。その後、マイコンの高速化が進むにつれ、2000年頃から、JTAGを介したソフトウェアのデバッグ機能が追加。マイコンにJTAG ICEと呼ばれるJTAGデ

          JTAG ICE(JTAGデバッガ)

          アウトオブオーダー実行

          アウトオブオーダー実行の処理フローや、アウトオブオーダ―実行のキーポイントの1つであるレジスタ・リネーミングの動作を記載します。 アウトオブオーダー実行の処理フロー 最近の命令キャッシュやデータキャッシュを内蔵した高性能なマイコンの命令処理は、アウトオブオーダー実行が採用されているものが多い。マイコン内の処理フローのイメージは下図の通りで、左端の「命令フェッチ」に始まり、右端の「メモリFix」で終了する(参考…処理フローが、「命令フェッチ」のようにステージに分かれている構

          アウトオブオーダー実行

          データキャッシュの構造とアクセス

          データキャッシュ(D-cache)の構造とアクセスについて記載します。 なお、命令キャッシュも同じ構造と考えて下さい。データキャッシュはデータのロード(読み出し)やストア(書き込み)がありますが、命令キャッシュは命令を読み出すだけ(データキャッシュでいうデータのロード)になります。 データキャッシュの構造 indexが目印になるラインに分かれており、ライン毎に、アクセスしたいデータかを判定するためのタグ(物理アドレスを使用)と、データからなる。 例えば、データキャッシュ

          データキャッシュの構造とアクセス