goo blog サービス終了のお知らせ 

組み込まれたエンジニア

我輩は石である。名前はまだ無い。

インド タミールナドゥ州の風力発電

2011-04-07 18:20:18 | Weblog
先月のインド出張で走る車の中から、風力発電プラントを見た。

もちろん、ここの設備がうまくいっているのかどうかは分からないし、現に、かなりの風車は動いていなかったように見えた。

こういった施設は広い土地がある場所だからという言い訳はせずに、できることは何でも大規模に実施する気概が、政府として必要なのだろう。

日銀引き受けなどという小さな話をせずに、思い切って、市中で国債を消化させ、数十兆円クラスの復興を未来を見据えてしていくことが必要なのでは?

国がなすべきこと

2011-03-12 19:41:35 | Weblog
国民の生命・財産を守ることが最優先事項だ。

この目線で、しっかりと活動してほしいが、二次災害の恐れがある未曾有の状況に背筋が寒くなる。

知人と連絡が取れないままだけれど、個人に出来ることは祈ることだけ。

被災していなかったとしても、我々は偶然生きているにすぎない。
この世界の、どこで、どれだけの災害や事故・病気が発生するのか、自分では制御できないことには、ひたすら謙虚に、できるだけのことをするのみ。

幸運な人々は、それぞれの日々を精一杯生きていくことこそ、求められるのだろう。

無念にも亡くなられた方々のご冥福をお祈りします。

個人で出来ることということで、Googleがまとめた募金情報から自分がアクセスできるところを通して、義援金を送りました。

SystemCとNSL

2011-03-05 21:05:11 | Weblog
OSCIの標準コンパイラ(というよりクラスライブラリ)が無料で使えるので、ソフトウェアとの連携があるverificationでは、SystemCはよい選択肢の一つです。
ただ、残念な言語仕様のおかげで、これを0から書くのはハードウェア設計者にはとても大変です。
VerificationにおけるSystemCの便利さをハードウェア設計者に「簡単に」提供したいと思って、NSLは、SystemCへの合成をサポートしています。
今日は、しっかりと時間を取って、家に引きこもり、SystemCを意識させないで、SystemCを用いるVerficationのパッケージを作っていました。

このパッケージを含むLiveCygwinはIP ARCHからダウンロードできます。

実は、パッケージ作成しながら、いろいろと合成されるSystemCの記述も調整したので、この方法をサポートするNSL COREは、20110305版以降となります。(上記、LiveCygwinには導入済み)

たとえば、このパッケージの中の一つの例題ですが、下のようなNSLコードを tut2.nslという名前で用意します。

パッケージにはMakefileが入っているので、

make T=tut2 scsim

とすると、NSLをコンパイルし、SystemCに変換したものをコンパイルしてくれます。
これを、
./tut2_sim 10000
として、10μSまでシミュレーションすると、
Hello World: value = 100, count = 100
count = 101
count = 102
bye: count = 103
SystemC: simulation stopped by user.


となります。たったこれだけです。
同じようなことを行う合成可能なハードをSystemCで記述しようとすると、とっても大変で、お勧めしません。もちろん、_display なんてのは合成対象ではありませんが、NSLの記述はハードウェアの裏づけを持ったシーケンス回路を生成しているので、1クロックずつ仕事をするようなハードウェアを書くのは、この例題とほとんど同じ記述で可能です。

魔法はMakefileの中にあるというのもあんまりなんで、少し種明かし。

Makefileでは、nsl2scの呼び出しとg++の呼び出しを行っています。
nsl2scでNSLをSystemCに変換し、それをg++でコンパイルしているというわけです。
OSCIで要求されるsc_mainもnsl2scが自動生成していますので、凝ったことをしたければ、自動生成したSystemCのメインルーチンに手を入れることができます。
ここで示したような、テキストベースのシミュレーションでは、メインルーチンを見る必要もないはずです。

Makefileを使わずに、自助努力をしようとすると、長いおまじないが必要です。
今回は、次のようにコンパイルしています。

nsl2sc tut2.nsl -scsim2 -target tut2 -split
g++ -I/usr/local/systemc-2.2.0/include -L/usr/local/systemc-2.2.0/lib-cygwin tut2_sim.cpp -lsystemc -o tut2_sim.exe


今回の例題NSLは、次のコードです。



declare tut2 simulation { }

module tut2 {
reg count[8] = 0;
wire value[8];
func_self start(value);

count++;
if(count==100) start(count);

func start seq {
_display("Hello World: value = %d, count = %d", value, count);
_display("count = %d", count);
_display("count = %d", count);
_finish("bye: count = %d", count);
}
}

努力の方向性

2011-02-22 07:23:14 | Weblog
手っ取り早く答えだけが欲しいという若者が非常に増えている気がしていて、気になっている。

どんな分野でも、先をイメージして、関連事項を十分調査した上で、上達する方法を主体的に考え、こつこつと地道な努力をしないことには、一流の結果は出せない。魔法のポーションや銀の弾丸は現実社会にはないのだ。

たとえば、努力をまるでせずに、ちょっとネットで調べただけで、イチロー並にプロでヒットを打てるようになるとか、マイルス・デイビス並にトランペットを吹けるようになるとか、ありえないことくらい常識的に分かると思うが、勉強や仕事のことになると、これを夢見る人がいる。

簡単に手に入るものの価値は、限りなく低くなる。


いつの世の中でも真実である。簡単に手に入る事柄自体は、時代とともに変化するので、変化に負けない価値は物ではありえず、価値を手に入れる方法は、人が追いつかないほどの大量の努力しかない。


人材育成に関するこんな記事
を見ると、学生たちが自分は忍耐強くないということを、全く理解していないようだ。

これって、彼らの努力が、社会的な忍耐強いというのと全く違うベクトルを向いているのか?

確かに、努力をしないための努力は、全く惜しまない人も散見される。。

ガリバーとビッグエンディアン

2011-02-16 20:28:52 | Weblog
1726年発行のガリバー旅行記にビッグエンディアンの起源がある。

原典には6箇所ビッグエンディアンの記述が出てるけれど、リトルエンディアンとは言っていない。スウィフトは小さい側を smaller endといっているので、リトルエンディアンは、ここから取ったわけではなさそう。


インドに行くのは・・・

2011-02-15 23:37:51 | Weblog
来月、インドに出張になるが、インドに行くのは思った以上に大変だった。

ビザが必要というのは聞いていたが、先方からのサイン入りの招待状が必要な上に、こちらの組織の推薦状も必要ということだ。
調べると、さらに政府からの許可証が必要なケースもあるらしい。

幸い、コンピュータ関連の学会では許可証は不要とのことだけれど、こんなに訪問だけでも障壁がいっぱいあるって、よほど来て欲しくないのですね~

EDS Fair 2011に出展します。

2011-01-27 02:03:42 | Weblog
清水研究室は、1/27,28のEDS Fair 2011のユニバーシティブースに出展します。
お近くにおいでの方は、お立ち寄りください。

Linuxカーネル演習講座

2011-01-14 10:52:31 | Weblog
4日間の速習コースなので、中心となるポイントだけを抜き出して講座を組み立てています。
今回は、全チームが最後の演習課題をクリアして、気持ちよく3日間の(私の担当部分)を終了しました。

RedHat6.0カーネルについて特に知りたいという受講生がいましたが、全体の講座マテリアルが(というか、主として参考文献が)まだ対応していないので、個別の口頭でのアドバイスになってしまいました。参考文献がないと、現在のレベルの演習を3日間で行うのは難しいので、今後どうするかは要検討とさせていただきます。(対応する市販テキストが出たら、実施可能ということです)

自分の用意したテキストと、市販の本が真逆のことを書いてある部分があって、受講生から「どちらが正しいのでしょう?」と質問され、自分ではわりとそそっかしい性格を自認しているので、調べてテキストを作っているはずなのですが、もしかしたら自分のテキストが間違った?と不安になったら、受講生がカーネルソースを見て、自分のテキストが正しいことを確認してくれました。(安堵)


受講生の皆さん、夜遅くまで、お疲れ様でした。

Transparent Hugepage?

2010-12-14 08:38:43 | Weblog
詳しく追いかける時間はないので、タイトルだけしかみていないが、マイコミジャーナルの記事によると、RedhatがTransparent Hugepageを用意しているそうだ。

このあたりの経緯を少し整理しておこう。


  • 2000年に私がLinux super pageを発表し、2002年LinuxカーネルMLに投稿した。

    このときのカーネルメインテナーのDave Mirrorなどは採用に積極的だったけれど、Linusが却下。
    Redhatからは、Alpha向けにリリースしたいのでボストンのラボで評価中との連絡が入った。

  • その後、まもなく、当時のLinuxカーネルメインテナーの一人、Alan Coxのグループが、なぜかFreeBSD用にSuperPageを発表。

  • TransparentでないTLB管理方法がHugepageとして発表、Linuxに採用された


という流れで、現在にいたるので、10年経ってようやく時代が追いついてきたのだろう。

例によって、オープンソースのコミュニティはオリジナル作成者を尊重しないので、私の名前が出ることはないかもしれないが・・・

私が関与しコードが採用されながらコントリビューション/著作権を無視されたプロジェクトには、

  • Goto GEMM
  • GNU GLIBC(libmの初等関数):これは無視というよりIBMの遅いコードで上書き
  • GCC (PDP11パッチ)

などがあり、もう、さすがにオープンソースへのコントリビューションはやめようと思っているが、自分が使う上で不便な場合にはやむなくソースまで追いかけるのは、これからも変わらないのだろうなぁ・・。

NSLとAllianceVHDLによるチップ製作第2弾

2010-12-04 08:09:45 | Weblog
Rohm 0.18umプロセスで製造。
レイアウトは100%AllianceVHDLで作成。
スタンダードセルはAllianceのSXLIB使用。

VDECのリクエストにより、デザインルールチェックはCallibreで行ってエラーなし。