2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Arm® Cortex® -M搭載 ルネサスRAファミリを使ったマイコン入門(CPU)

Last updated at Posted at 2025-11-25

image.png

みなさんこんにちは。インスケイプの菅井です。

APSハンズオン・ワークショップをご愛顧いただき誠にありがとうございます。

これから、「Arm® Cortex® -M搭載 ルネサスRAファミリを使ったマイコン入門」を始めます。
本ワークショップで、題材にするのはルネサスエレクトロニクス社のRAマイコンです。

今回は、CPU編です.

image.png

本ワークショップは次のシリーズ構成になっています。まずは、次の5つの項目を順次公開していきたいと思います。
「開発ツール」
「CPU(Cortex-M)」
「汎用I/O」
「割り込み」
「汎用タイマ」です。

今回は。「CPU(Cortex-M)」です。CPUとは何か?構成と仕組みを解説します

image.png
本ハンズオンワークショップを実機にて体験いただくためには次の機材が必要となります。
ルネサスエレクトロニクス社製 EK-RA6M5 評価キットとPCです。
お手元にご準備ください。

image.png
本ハンズオンワークショップのゴールを説明いたします。
最初に、最も基本的な疑問の「そもそもCPUとは何か?」を理解していただきます。
そして、座学と実習を通して、CPUの演算の流れを理解していただきます。
さらに、演算以外のCPUの仕事の内容を理解していただきます。

image.png
本ワークショップは「座学」と「実習」で構成されます。
座学では、CPUの基礎知識を解説し、実習では実際にCPUで演算してみます。

image.png
 CPUはCentral Processing Unitの略で、日本語で言うと中央処理装置です。
入出力機器(周辺機能)を制御してデータを受け取り、演算処理して結果を出力します。

image.png
CPUのブロック図の例を示します。
CPUの内部構成は。各マイコンメーカの企業秘密なので、公開されることはありませんが、
ここでは、筆者が過去に設計したCPUの構成を、わかりやすいように簡素化して示しました。さらに、イメージをつかみやすいように、大まかな要素だけ書き出しています。

汎用レジスタ方式とアキュムレータ方式では演算装置(Execution Unit)の内部構成が異なるだけで、その他の構成要素は同じです違いが分かりやすいように左右に並べてみました。

メモリ(フラッシュ・メモリなど)から読み出された命令コードは一度「FIFO」(プリフェッチバッファ)に格納されます。FIFOとは、First In First Outの頭文字です。読み方は人によって異なり、ファイフォー、フィーフォーなどと読まれることが多いようです。日本語にすると「先入れ先出し」ですが、あまり日本語で使われることはありません。最初に入ってきたものを順番に処理する方式のバッファメモリ、すなわち一時的にデータを保管するメモリです。

プリフェッチバッファのプリフェッチ(pre-fetch)とは、日本語で「事前読み込み/読み出し」です。データを前もって読み出しておき、保管しておくバッファメモリです。高速なメモリを使用して、演算性能の向上を目的としています。

デコーダとは、命令を解読する機能です。FIFOから命令を順番に読み出して、何の命令か判別します。そして、その命令の機能に従って、演算装置に命令信号を出します。

演算装置(Execution Unit)はその名の通り、演算を行う装置です。この装置には汎用レジスタまたはアキュムレータとALUやシフタなどの演算機能が入っています。なお、ALUは算術演算、論理演算を受け持ち、シフタはデータをシフトする(ずらす)操作やローテート(循環)します。

image.png

image.png
これは、RA6M5 グループユーザーズマニュアル ハードウェア編から抜粋したCortex-M33のブロック図と、概要説明です。Cortex-M33は、機能的な階層に分かれていて、コアの部分が「Cortex-M33コア」、コアに付帯する機能で「Cortex-M33プロセッサ」、さらに、外部とのインタフェース機能でCortex-M33を構成しています。

image.png
演算以外のCPUの仕事は、機能ごとに区切ると、このようになります。

・開発ツールとのインタフェース
・高機能な演算(浮動小数点など)
・セキュリティ管理
・割り込み処理
・メモリ管理
・バスインタフェース

image.png
image.png
実習の内容はここに書かれたようになります。
ルネサスエレクトロニクスRA6M5シリーズを使って、実際に演算をしてみます

開発ツールは、ルネサスエレクトロニクスのe2studioを使います。
最初に、3つの変数を定義して、各変数がCPUの汎用レジスタに割り当てられていることを確認します。
3つの変数を使って演算して、演算結果が汎用レジスタに反映されていることを確認します。

ここからは、細かい作業に入ります。具体的手順はAPS academy「 CPU(Cortex-M)|第2回|マイコン入門(RA編)( https://www.aps-web.jp/academy/mcu-ra/108909/ )」を見てください。細かい手順で詳細に説明しています。
具体的内容については、何枚かのスライドを掲載しておきますので、参考にしてください。

image.png

image.png

image.png

image.png

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?