新人技術者のためのロジカル・シンキング入門(9) ―― メモリ転送速度の最適化設計

冴木 元

tag: 組み込み

技術解説 2008年11月 6日

前回に引き続き,組み込みシステム開発における最適化設計について解説する.今回は,メモリのアクセス速度がボトル・ネックとなる場合の最適化について解説する.また,最適化の際に新たなバグを混入させないためのテスト方法について解説する. (編集部)

技術解説・連載「新人技術者のためのロジカル・シンキング入門」 記事一覧
第1回 いかにしてバグの原因を突き止めるか
第2回 プログラミングにおける良いデータ構造
第3回 「必要とされる設計書」の作り方
第4回 直したバグがゾンビのごとく復活する
第5回 ソース・コード規約の作り方
第6回 ハードウェア基礎の基礎
第7回 「ひたすら流すだけのテスト」にさよなら
第8回 CPUの演算量をひたすら削る
第9回 メモリ転送速度の最適化設計
第10回 「工学の知」を実務に生かす


●お知らせ
 本連載記事を元に加筆・再編集した書籍『組み込みエンジニアのためのロジカル・シンキング入門』が好評発売中!

 

 前回,3Dグラフィックス・モジュールの最適化を迫られたFさんでしたが,なんとか処理速度を向上することに成功したようです.とりあえず,修正済みのライブラリ・モジュールをリリースして様子を見てもらうことにしました.

 画面の動きは前より速くなり,これならば一応許容範囲ではないかという評価を受けたFさんたちは,まずまずの結果にほっと胸をなでおろしました.

 しかし,システム・テストが進むにつれ,新たな問題が生じました.あるゲームで不具合が発生したというのです.3面までゲームが進むと新たに登場してくるモンスターがあるのですが,これが時々消えてなくなるというのです.再現してみると,モンスターが壁にぶつかったとたんにみるみる形が崩れていくのが分かりました.そして切り分けの結果,まずいことにFさんたちの3Dグラフィックス・モジュールのバグであることが分かってしまいました.最適化した結果,新たなバグを入れてしまったようなのです.

 問題はこれだけではありませんでした.処理速度は以前よりも向上したように思えたのですが,ある描画パターンになると,以前と同じように描画が滞るのです.これも切り分けの結果,3Dグラフィックス・モジュールが処理速度のボトル・ネックになっていることが分かりました.

 しばらく見なかったはずのトロトロとした描画を見ながら,Fさんたちはため息をもらすのでした.「バグを生んだ上に,まだ最適化する必要があるのか...」

  1. メモリ速度を向上させるには
  2. フロー全体を見渡した最適化が必要
  3. 最適化によるバグに注意
  4. 工程」について,その理論と実際
組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日