2012年8月25日土曜日

rint がない

buildroot で wpa_supplicant をコンパイルしたら、rint という関数がないと言われた。
uclibc の libm に入っているのだが、明示的に指定しないと見えないらしい。
wpa_supplicant の Makefile のライブラリ指定のところに -lm を付けたら通った。

具体的には、output/build/wpa_supplicant-0.7.3/src/drivers/drivers.mak
の、nl80211 の DRV_LIBS に -lm を追加。

2012年8月19日日曜日

TLMu で ARM Linux

■ TLMu で ARM Linux
http://www.hdlab.co.jp/web/a050consulting/b009armcpumodel/ から環境をダウンロードして動かしてみた。

環境は、Ubuntu 12.04
- systemc-2.2.0.tgz
- TLM-2.0.1.tgz
- scml-2.1.1-pv-20111213.tgz
を利用し、tlmu_arm_example/INSTALL に従ってインストールを行う。

ただし、途中 g++ のコンパイルで mutable のエラーに何度かあうので -fpermissive を付けた。

tlmu.20120529/Makefile.target で、--whole-archive オプションがあるとエラーになるので外した。

tlmu_arm_example で、LIBS に pthread を追加。また、ライブラリの順序を変えないとコンパイルが通らなかった。また、hdlab_lib/ip/versatile_vic.c cpp で、uint32_t が未定義だと言われたので、typedef unsigned int uint32_t; を追加。


無事コンパイルが通り、./run.x を実行すると xterm が立ち上がり linux が起動できた。

追記1:buildroot により作成されるルートファイルシステムには、/lib 以下が空になっているので、共有ライブラリを参照しているプログラムは動かない(busybox 以外のプログラムは基本的に動かない)。buildroot/output/toolchain/uClibc-<version>/lib/*.so* を /lib にコピーする必要がある。

追記2:起動した Linux でファイルを作成しても、Linux を起動し直すと作成したファイルは消えてしまっている。シミュレーション開始時に ramdisk.img をメモリ上に読み込んでいるが、シミュレーションした結果をもとの ramdisk.img に書き戻していないためである。

2012年8月16日木曜日

TLMu

QEMU で TLM が使えるという TLMu を Ubuntu 12.04 にインストールした。

http://edgarigl.github.com/tlmu/ 参照。


■systemc-2.3.0 をインストール。
% mkdir objdir
% cd objdir
% ../configure --prefix=<install_dir> (なんか prefix の扱いにバグがあるような気が…)
% make
% make install
% make check
※コンパイル時に -fPIC を付けないと make が通らなかった。



■tlmu 取得
% git clone git://github.com/edgarigl/tlmu.git (tlmu というディレクトリができる)

■tlmu ビルド
% mkdir build-tlmu
% cd build-tlmu
% ../tlmu/configure --extra-cflags=-fPIC
% make && make tlmu
% make install-tlmu DESTDIR=/tmp/my-tlmu/
※zlib1g-dev, libglib2.0-dev をインストールしておく必要があった

■tlmu インストールチェック(c_example)
% cd ../tlmu/tests/tlmu
% ln -sf /tmp/my-tlmu/* ./
% make c_example
% LD_LIBRARY_PATH=./lib ./c_example

■tlmu インストールチェック(sc_example)
% cd sc_example
% emacs Makefile
 (SYSTEMC, TLM2 を systemc-2.3.0 をインストールしたディレクトリに変更)
% make sc_example
% cd ..
% LD_LIBRARY_PATH=./lib:<libsystemc のパス> ./sc_example/sc_example

■arm バイナリのコンパイル
AMR926 なので、-march=armv5te を付けてコンパイルする必要あり。






2012年8月14日火曜日

Adaptive Performance Compensation with In-Situ. Timing Error Prediction for Subthreshold Circuits

・worst case を想定した設計では、消費電力が大きくなりすぎる⇒ばらつき量に応じた制御が必要。
・ばらつきの見積もり方法として、critical path replica, razor, canary FF などがある。critical path replica は、sub threshold 回路では、within die ばらつきが大きすぎて効果的ではない。また、razor はタイミング違反を発見して再実行する思想なので、シンプルなプロセッサは再実行には向かない。なので、canary FF が良い。
・in situ とは、本来の場所にてという意味。

JP 2011-199486

2 つのチャネルでそれぞれ、AP, STA として通信している無線 LAN システムにおいて、バッテリ残量が閾値以下に低下したら、1 つのチャネルで AP, STA として通信させるようにチャネルを移動することで、消費電力を削減する特許。

JP 2005-57633

・送信データレートを決定する際に、相手から受信したフレームのサブキャリア毎の振幅の変動値を見て、レートを決定する特許。
・各サブキャリアについて、I^2+Q^2 を計算し、全サブキャリアの平均と分散を計算。分散が大きければ、フェージングの影響が大きいチャネルと判断し、低レートで送信する。

特開2003-110575

送信キューを複数設け、レートが高いフレームをレートが低いフレームより優先度を上げて送信することで、レートが低い STA 間の通信に引っ張られてスループットが落ちることがないようにする特許。

AN OVERVIEW OF TECHNIQUES FOR REDUCING PEAK. TO AVERAGE POWER RATIO AND ITS SELECTION. CRITERIA FOR ORTHOGONAL FREQUENCY DIVISION. MULTIPLEXING RADIO SYSTEMS

AN OVERVIEW OF TECHNIQUES FOR REDUCING PEAK. TO AVERAGE POWER RATIO AND ITS SELECTION. CRITERIA FOR ORTHOGONAL FREQUENCY DIVISION. MULTIPLEXING RADIO SYSTEMS

PAPR 低減技術の紹介論文です。

■ block coding techniques
符号化の段階で、PAPR が高くなるようなパターンが出ないような符号化を行う。サブキャリア数がいくつになっても、またどんなマッピング方法でも PAPR が下がらないように符号を選ぶので、短い符号以外は現実的ではない。

■ sub block coding techniques
符号化率 3/4 の組織符号で、最後のビットが odd parity check にすると、PAPR が低いという性質がある?
"OFDM peak power reduction by sub-block-coding and its extended versions" 参照。

■ selected mapping
同じ内容をマッピングする方法をいくつか用意しておき、その中で最も PAPR が低いものを選択する。
side information として、どのマッピング方法を選択したかを別途送信する必要がある。
"Reducing the peak-to-average power ratio of multicarrier modulation by selective mapping"

■ Interleaving
複数のインタリーブを実行してみて、一番 PAPR が低いものを選択する。
インタリーブを最後まで実行する前に判断することもできる。

■ PTS (partial transmit sequence)
サブキャリアマッピングの後で、いくつかのサブキャリアを回転させる。
どのくらい回転させたかを受信側が知る必要がある。

■ Hadmard transform
入力列をアダマール変換すると、PAPR が 2dB 低減するらしい。

■ dummy sequence insertion
不明
"Dummy Sequence Insertion (DSI) for PAPR Reduction in the OFDM Communication System"

■ tone reservation
いくつかのサブキャリアを PAPR 低減のために利用する。(データ送受信のために使用しない)

■ active constellation
コンスタレーションの点を外側にずらして、PAPR を下げる。demap 時の境界から離れる方向に constellation を
広げるので、BER はよくなるが、送信電力が増加してしまうので、送信電力一定とすると、BER は劣化する。

■ クリッピング
振幅をクリッピングする。BER は劣化する。


A sub-pW timer using gate leakage for ul- tra low-power sub-Hz monitoring systems.

sub-pW timer using gate leakage for ul- tra low-power sub-Hz monitoring systems.

・ゲートリークを利用したタイマ。
・ゲートリークを電流源として使用し、キャパシタの電荷を徐々に放出していく。電圧が一定以下になることをコンパレータで検出するとタイムアウト。
・ゲートリークは、サブスレッショルドリークに比べて温度依存性が低い。バイオメディカル用途で、数十度の温度変動を仮定すれば十分実用的。Process ばらつきは事前に補正する。

0.5-V Input Digital Low-Dropout Regulator (LDO) with 98.7%. Current Efficiency in 65 nm CMOS

0.5-V Input Digital Low-Dropout Regulator (LDO) with 98.7%. Current Efficiency in 65 nm CMOS

・conventional LDO は、(出力電圧と参照電圧を比較する)オペアンプと(オペアンプの出力に接続され、出力電圧を制御する) 1 つの Power Transistor から成るが、0.5V 電源ではオペアンプは動作しないし、Power Transistor のゲート制御もできない。
⇒0.5V でもデジタル回路を動作させることはできるので、デジタル的に LDO を構成する。
・オペアンプはコンパレータ、Power Transistor は低電圧で動作する Transistor(=switch) array に置き換えて、0.5V 動作。


ビット線充放電電力を 53%削減する動画像処理応用 2-port SRAM

ビット線充放電電力を 53%削減する動画像処理応用 2-port SRAM。藤原 英弘ら。

2-port SRAM はトランジスタの構成により、"0" を読み出すときに電力を消費し、"1" を読み出す時に電力を消費しない。

なので、複数のデータビットを 1 ワードとし、ワード内に"0" が多ければビットを反転し、"1" が多いときはそのまま書き込む。反転したかどうかをもう一ビット使って覚えておくという構成にすることで消費電力を低減できる。

また、動画像応用では、隣接データの同じビット位置のビット(特に上位ビット)は相関が大きいという性質を使い、同じビット位置の隣接データを集めてきて 1 ワードとすることで、ランダムデータより消費電力を削減できる。