メディア
連載
» 2019年08月28日 11時00分 公開

Q&Aで学ぶマイコン講座(48):レジスタとRAMの違い (1/3)

マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。48回目は、初心者の方からよく質問される「レジスタとRAMの違い」についてです。

[STマイクロエレクトロニクス,EDN Japan]

過去の質問一覧はこちら

 素朴な疑問から技術トラブルなどマイコンユーザーのあらゆる悩みに対し、マイコンメーカーのエンジニアが回答していく連載「Q&Aで学ぶマイコン講座」。

 今回は、初心者から多く寄せられる質問です。

 マイコンのレジスタ(Register)もRAMも説明書では「記憶装置」と書かれています。同じ「記憶装置」であるならば、レジスタとRAMは何が違うのでしょうか? 機能的にどう違って、どのような仕組みになっていますか?

 レジスタは、主にマイコンの状態を保存および、確認するための「記憶装置」です。ここで言う「状態」には演算途中のデータも含まれます。RAMはRandom Access Memory(ランダムアクセスメモリ)*1)の略ですので、任意のデータを随時保存できる「記憶装置」です。マイコンの状態に限らず、いろいろなデータを保存することができます。

 レジスタの具体例を図1に示します。これは32ビットマイコン「STM32F4シリーズ」(STマイクロエレクトロニクス製)に搭載されているCPU「Arm Cortex-M4」(以下、Cortex-M4)*2)の汎用レジスタとタイマーの制御レジスタです。汎用レジスタにはCortex-M4の演算途中のデータ保存用のレジスタとCPUの状態を示すスタックポインタ、リンクレジスタ、プログラムカウンター、プログラムステータスレジスタなどがあります。タイマーの制御レジスタは、タイマーの状態を設定および確認するビットで構成されており、タイマーの細かい設定ができるようになっています。また各ビットを読み出すことでタイマーの状態を把握できます。

図1:マイコンのレジスタ例 (STM32F4シリーズの場合) (クリックで拡大)

 図2は、Cortex-M4のメモリマップです。この中でSRAMと記載されている部分がRAMです。扱えるデータに制限はなく、命令を入れても実行できます。

図2:マイコンのRAMの例 (Arm Cortex-M4のメモリマップ) (クリックで拡大)

 通常RAMはRAMセル(Cell)とよばれる論理ゲート構成になっており、大量のデータを扱うのに向いています。レジスタは主にフリップフロップで構成されます。

*1)参考記事:Q&Aで学ぶマイコン講座(37):メモリの種類と特長
*2)参考記事:マイコン入門!! 必携用語集(3):マイコンの中枢「CPU」とは

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSフィード

公式SNS

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.