Juzo

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

Juzo

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

最近の記事

Linux(Ubuntu)メモ

Linux(Ubuntu)の構成や、当方がLinux(Ubuntu)を操作した際の設定や対応などを記載しています。なお、Ubuntu 22.04.4LTSを使用。 Linux(Ubuntu)の構成Linuxの構成は下図の通り。アプリ(ユーザからのコマンド)とカーネルとのやり取りを支えるのが、シェル。シェルがアプリ(ユーザからのコマンド)のやりたいことを解釈して、カーネルに伝えて、カーネルが処理。カーネルの処理結果をシェルを介して、アプリに返信(レスポンス)することもある。有

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

      アウトオブオーダー実行のマイコンは、データキャッシュを内蔵し、更に、マルチコア(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、アプリに細分化される傾向がある。一番権限がある

        Linux(Ubuntu)メモ

          分岐予測

          分岐命令の動作を踏まえて分岐予測が導入されるまでの背景や、分岐予測の動作を記載する。 分岐予測が導入されるまでの背景 マイコンを動かすソフトウェアの中には、条件(データの値など)によって途中で処理を変える分岐命令があります(分岐命令の一例…データが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が目印になるラインに分かれており、ライン毎に、アクセスしたいデータかを判定するためのタグ(物理アドレスを使用)と、データからなる。 例えば、データキャッシュ

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

          データキャッシュ

          データキャッシュ(D-cache)はRAMのデータをマイコン内に取り込み、命令を実行した結果を保存する高速メモリ。 下図のように、RAMの初期値が0のデータを、データキャッシュを持つマイコンで、1を加算して保存する場合、データキャッシュの値が不要(ミスヒット)になるまで、1を加算された値は、RAMには反映されず、データキャッシュ内に留まる。データキャッシュで不要と判断されると、RAMに反映される(ライトバック)。

          データキャッシュ

          DhrystoneMIPS値

          マイコンの性能を表す指標の一つ。マイコン上でDhrystoneプログラム(Dhrystone2.1)を実行し、その結果(MIPS値)が大きいほど性能が良い。 今もマイコンの性能評価で良く使われるが、結果を見るときに意識して欲しい点は以下の通り。 ・Dhrystoneプログラムは整数演算のみで、浮動小数点演算はない。 ・Dhrystoneプログラムは数KBの容量なので、例えば32KBのキャッシュを持つマイコンの場合、外部RAMへのアクセスは無く、キャッシュ上でDhryston

          DhrystoneMIPS値

          マイコンとは

          マイコンはMCU(MicroControllerUnit)のこと。ROMから命令を読んで加算や乗算などを実行し、その結果をRAMやUARTなど外部デバイスに出力する。 なお、命令を実行する部分をMPU(MicroProcessorUnit)と呼び、下図のような構成となる。 マイコンというと、 ・シングルコア(1つのMPU)で16bitや32bitのデータを処理し、ROMやRAMをマイコンに内蔵。また、ADC(Analog-to-Digital Converter:アナログデジ

          マイコンとは

          noteはじめます

          これから下記項目の概要(できるだけイメージ)を書いていきたいと思います。皆様の参考になれば幸いです。 ・マイコンとは ・パイプラインの動作 ・キャッシュの動作 ・性能計測 ・JTAG

          noteはじめます