TCP/IPプロトコル・スタックの省メモリ開発事例(前編)  ――ミドルウェアの追加で既存の16ビット・マイコンがネット対応マイコンに変身

浅井 敬,佐藤 剛,坂本直史

tag: 組み込み

技術解説 2004年12月16日

● くふうをこらして小さく実装(ここが腕の見せどころ)

 実装する機能が決まったことにより,いよいよ具体的なプログラム設計に入るわけですが,当然ながら機能を限定するだけでは目標は実現できません.ここでは,いくつかの実装上のくふうについて説明します.

1) データ・コピー低減のためにバッファを共有する

 一般的に,通信プロトコルは複数のプロトコルが層状に重なって全体を構成しています(だからプロトコル・スタックと呼ばれる).多くの場合,各プロトコル層に独立性を持たせるため,それぞれの層がバッファを備え,下の層からパケットを受け取ると自分の層のバッファにコピーして処理を行うようになっています(図10(a)).高性能のCPUを用いる場合にはそれでよいのですが,組み込みマイコンを用いる場合,そのコピーに要する時間が問題となってきます.複数のプロトコルの間でいちいちコピーしていると,最上位のアプリケーション・プログラムにデータが渡るまでに相当な時間を費やすことになります.そこで,IP層とTCP層のバッファを共通にし,プロトコル間ではそのポインタのみをやり取りするようにして,送受信時のメモリ・コピーの回数を減らしました(図10(b)).バッファ用のメモリを削減できたので,結果としてRAM使用量の低減につながりました.

f10_01.gif
図10 プロトコル間のデータ・コピーを減らす
各プロトコル層でバッファを持ち,データをコピーしながら処理すると,多くの時間がかかってしまう.バッファを共通にして,そこを指し示すポインタだけをやりとりすれば,コピーの時間とバッファ用のメモリの両方を削減できる.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! 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日