ご購入はこちら 5000 円 STM32F7 ボードで ARM の最新テクノロジーをかい間見てみる 400MHz 級制御プロセッサ ARM Cortex-M7 初体験 第 4 回 2 大高速化機能「キャッシュ」と「密結合メモリ」の構成 今回は,超高性能 ARM Cortex-M7 搭載 STM32F7 (ST マイクロエレクトロニクス)に内蔵されている キャッシュや密結合メモリなどの高速化機能を紹介し ます. Cortex-M7 の高速化機能 プログラムを高速に実行するための仕組みとして, Cortex-M7 は従来の Cortex-M4 に比べて次の機能が内 蔵されています. (1)キャッシュのサポート (2)密結合メモリ(TCM:Tightly Coupled Memory) のサポート (3)倍精度浮動小数点のサポート(オプション) ただし STM32F7 では, (3)の倍精度浮動小数点はサ ポートしておらず,単精度浮動小数点のサポートのみ です(STM32F7x8/x9 では倍精度をサポートしている ものもある) .これは Cortex-M4 と違いがありません. その 1:キャッシュ ● 構成 Cortex-M7 の性能向上に寄与しているのは,動作周 波数の向上もありますが,キャッシュのサポートによ るところが大きいでしょう.STM32F7 では 4K バイ トの命令キャッシュ(2 ウェイ)と 4K バイトのデータ・ キ ャ ッ シ ュ(4 ウ ェ イ )を サ ポ ー ト し て い ま す (STM32F7x2/x3 ではそれぞれ 8K バイト,STM32F7 x8/x9 ではそれぞれ 16K バイト). キャッシュの ON/OFF にはキャッシュ制御レジス タ CCR(Cache Control Register)を使用します.図 1 ビット 31 に示すように,IC ビットを‘1’に設定することで命令 キャッシュが ON,DC ビットを‘1’に設定することで データ・キャッシュが ON になります. ただし,キャッシュは Cortex-M7 の AXIM インター フェースに接続されています.図 2 に STM32F7 の内 部データ・バスの構造を示します.このように命令パ ス(経路)は,フラッシュ・メモリからフラッシュ・ ア ク セ ラ レ ー タ(ART)を 通 る 経 路 と,AXIM イ ン ターフェースを経由する経路があります.キャッシュ にヒットするのは AXIM からの経路だけです. ● 操作用レジスタ キャッシュ操作関連のレジスタを表 1 に示します. 表 1 で PoU や PoC という単語がありますが,それぞ れ,Point of Unification と Point of Coherency を意味 します.PoU はそのキャッシュのみの操作,PoC はコ ヒーレンシを保証する操作を示します.要するに, PoU は L1 キャッシュから L2 キャッシュ(または外部 メモリ)への操作,PoC は最終レベル(L2 キャッシュ, L3 キャッシュ,あるいは外部メモリの一番外側にあ るメモリ)への操作を示します,L1 キャッシュしか実 装しない STM32F7 では,実質的に PoU しかサポート していません(PoU と PoC の動作に違いがない) . キャッシュ操作レジスタに,セット / ウェイを書き 込む場合は少し面倒です.その構成を図 3 に示します. 要するに,アドレスの下位 11 ビット(命令キャッシュ の場合)または下位 10 ビット(データ・キャッシュの 場合)の上位に,ウェイ番号を付加した値を書き込み ます. ちなみに,STM32FCubeF7 ではキャッシュ操作関 数として表 2 のものが用意されています. 19 18 17 16 15 予 約 BP:分岐予測の制御(ON:1,OFF:0) (Cotex-M7ではこのビットは無意味で, 値によらず分岐予測は常にONのようだ) 中森 章 10 9 予 約 8 7 5 4 3 2 1 0 省 略 DC:データ・キャッシュのON/OFFを制御(ON:1,OFF:0) IC:命令キャッシュのON/OFFを制御(ON:1,OFF:0) 図 1 キャッシュ制御レジスタ CCR のキャッシュ制御ビット 168 第 1 回 最新 ARM Cortex-M7 コア入門(2016 年 11 月号) 第 2 回 高性能リアルタイム向け Cortex-M7 の演算性能(2016 年 12 月号) 第 3 回 ハードもソフトも至れり尽せり…Cortex-M7 内蔵 STM32F7 初体験(2017 年 1 月号) 2017 年 2 月号
© Copyright 2025 ExpyDoc