前回の続き。

今回はVHDLの基本的な文法とか教えてもらった。

よくよく考えたら学生時代にVHDLでコード書いてたので,あぁそう言えばこんなのあったなぁとか,そんな感じだった。

以下適当にメモなど。

  • そもそもハードウェア記述言語が作られたのは,ICを設計しているうちにプロセス微細化がどんどん進んでしまって,いざ製造しようとしたらプロセスルールが古いけど今更こんなの作るの?ってなっちゃうから。(最近はそこまで進歩早くないけど,昔はムーアの法則とかあったじゃん。)
  • SystemCは今後期待らしいよ。
  • レポートファイルちゃんと読めたら,もう少しデバッグとか早くなりそう。
  • RTLレベルは別名ゲートレベルともいう。ゲートレベルって言った方がピンと来る。
  • 最初のうちはRTLで書いて,どういう回路に落ちるかを確認しながら勉強するといいよ。
  • Verilogでは大文字小文字区別するけど,VHDLでは区別しない。
  • ライブラリの宣言はおまじない。entityに回路の入出力ピンを書く。architectureに処理内容を書く。
  • パラで動くっていうのが,ソフト屋さんには分からないらしい。
  • <=は代入の意味だけど,if文の中だと以上という意味になる。キモイ。
  • バスの宣言の仕方で,std_logic_vector(7 downto 4)というふうにも書ける。上半分だよ!っていうのを強調したい時に使ったりするらしいけど,まぁあんまり使う必要は無いかも。
  • シーケンシャルに処理させたい場合は,process文を使う。process文の中ではif文,case文,variable宣言とかが使えて便利。
  • if文はCと同じような感じ。case文も雰囲気で分かる。case文はif文使うよりコンパクトな回路に落ちる場合が多いのでうまく使い分けること。
  • case文の最後はwhen others => null;とも書けるけど,あまり推奨されないらしい。when others => '0'とかはっきり決めた方がいい。
  • 配置配線はXilinxの場合はPlanAhedっていうソフトで行う。これやるとピン配情報とかが記載されたUCFファイルってのが生成される。
  • 同期ってのは笛の音に合わせてバケツリレーする感じ。非同期ってのは次の人が手空いてるならバケツ渡す感じ。非同期の方が一般的には高速になるけど,有効な設計手法が無いんだとか。
  • クロックスキューとは,モジュールごとにクロックが遅延して届く現象。クロックに同期させるつもりが,それぞれバラバラで動いちゃう。
  • VHDLではソース内で立上がりと立下りの両方を使うことは推奨されていない。どっちか決め打ちして使うこと。→クロックのONとOFFの幅が必ずしも一緒じゃないから。
  • 別々のプロセスで出力信号を書き換えるな。正常に動作しないよ!
  • 同じ出力信号に値を2回代入すると,あとのヤツが優先される。→ラダープログラムの二重コイルみたいな感じ。
  • component使えばみんな幸せになれる。
人体 失敗の進化史 (光文社新書)
遠藤 秀紀
光文社
売り上げランキング: 15362


進化って最適化していってるんじゃないの?とか思ってたけど,この本を読んだら必ずしもそうじゃないっぽい。

むしろ失敗とか場当たり的な設計変更が多いことに気付かされた。

あと偶然とか。

骨は栄養素(カルシウムとかね)を体に蓄えてたら,なんか硬くなっちゃった的な感じらしい。

二足歩行も,乾燥で森林が平地になったのをきっかけに,樹上で生活していた猿が大地に降りてきたからなんだとか。

んで,そもそも二足歩行するような設計になってないから,人体には不都合な箇所がいろいろある。

まず,内臓を支えるために骨盤頑張れな状況になってる。

上半身の体重とかほとんど腰が支えてる。

脳にちゃんと血液を送るには血圧高くないと駄目なのに,足とかは重力あるから低くてもおkとか。結局そこら辺のバランス考えたら,脳にはギリギリな感じの血液供給らしい。

姿勢によって血液供給の度合いが変わっちゃうよね?→エコノミー症候群とか。

こういう古典的な生物学って面白いと思うんだけど,昨今は人材も金も集まらないらしく,少し残念な感じがする。(逆にバイオとかが流行ってるの??万能細胞とかよく聞くけど。)

なんというか生物学っていい意味で未成熟だよなぁ,,とか思った。

100605_fpga.JPG


なんかもうツールの使い方とかそんなんだったので,たいした内容じゃなかった。

以下適当にメモなど。

  • XilinxのFPGAはCLB(LUT+FF+セレクタ)で出来てる。
  • CPLDはAND-ORマトリクスが基本要素になってるんだとか。
  • Xilinxの代理店は東京エレクトロンデバイスで,Alteraの代理店がアルティマ。
  • FPGAはASICとCPUの中間とかいう説明があったけど,どう考えてもASIC側だろ。
  • バウンダリスキャンというテスト用規格がある。実際の業務ではこれを使ってデバッグとかするらしい。→BGAとか物理的にプロービング出来ないし,FPGA内部信号とかも見れないので,非接触でのデバッグ技術が必要になってきたとかいう背景があるらしい。
  • 具体的には,はじめからチップ内部にテスト用機能(接続用の配線+記憶用レジスタ?)を持たせておいて,ツールからの操作(プログラム??)で見たい信号を見るとかそんな感じらしい。チップとはJTAG(Joint Test Action Group)という機器を介してつなぐ。JTAGとチップはシリアル通信してるだけ。
  • なんかJTAGってICEみたいなもんと思えばいいの?よくわからん。
  • FPGAはメモリと構造が似ているから,時代とともにチップシュリンクしやすいらしい。
  • 配置配線はコンパイルオプション的な感じで,スピード重視とか面積重視とか出来るみたい。
  • 配置配線する画面では2次元だけど,実際のデバイス内部では3次元なの?(層になってるの?)
  • FPGA→ASICへの置換えでどういうところが問題になるの?
  • シミュレーション画面ではトリガで引っ掛けて動作確認とかする。

100523_buturi.JPG


前回に引き続き相対論のおはなしです。

以下適当にメモなど。


概要

  • 日時:'10/05/23 14:30~17:00
  • 場所:どえりゃあ
  • 参加者:3人
  • 内容:「第16章 相対論的エネルギーと運動量」の読み合わせ


16-1 相対性と哲学者

  • パーティー哲学者ってのはなんちゃってのこと。
  • 群盲象をなでる→皆それぞれ表面的なことを行っている状態。
  • P.225 すまして落付いて→すまして落付いた
  • フーコーの振子っていう小説があるんだとか。
  • 直進運動だと止まっているのか等速度運動しているのかは気付けない。→実は太陽系とかも動いてたりするのかな?
  • 回転運動だと遠心力(見かけ上の加速度的な?)が生じるから,等速回転だとしても回転していることに気付ける。
  • 長い物に巻かれちゃ駄目だ!間違ってることもあるんだ!
  • 好む好まないはあれだけど,美しい美しくないとかはあるよね?
  • 対称性のやぶれですね,わかります。


16-2 ふたごのパラドックス

  • 日本で言うところのうらしま効果,とかそんな話。
  • 海彦,山彦は日本書紀が元ネタらしいよ。


16-3 速度の変換

  • ローレンツ変換を逆に解いても速度にマイナスがつくだけ。→つじつま合うよね,とかそんな話。
  • 相対速度は単純な足し算引き算じゃない。(これはニュートン力学の考え方。速度が十分遅い場合。)


16-4 相対論的質量

  • 同じ物体が同じ速度で近付いて,くっついて静止した場合を考える。これを運動量保存則とセットで考えると面白いことが分かる。→運動量保存則が成り立つためには,衝突後静止しても,出来上がった物体の質量は2つの物体の静止質量の和よりも大きくなる!
  • まぁでも,そもそもくっついて静止するって何さ?
  • めっちゃ速い速度でぶつかって静止したら,それはめっちゃ重くなるってことでおk?


16-5 相対論的エネルギー

  • 結局さっきの例は,運動エネルギーが投入されてるってことらしいよ?→だから質量はエネルギーとかいう考え方が出てくる。
  • エネルギーは慣性を持っている?ナニソレ?
  • 逆に分裂を考えると,
  • という式が出てきて,この分が外に放出される。→原子爆弾だ!
  • ファインマン先生はダチョウ倶楽部的なノリで爆発するところを見ちゃったの?

100509_patahene.JPG


毎度,,ブログにまとめるのが遅くなりました。

今回でやっとパイプラインの章が終わり,パタヘネ本もゴールが見えてきた感じ。

本読み終わったら,次はPDFの内容に進もうという話になっている。

以下適当にメモなど。


概要

  • 日時:'10/05/09 17:30~21:00
  • 場所:短歌会館
  • 参加者:3人
  • 内容:6.6~6.12読み合わせ+MIPSエミュレータの製作


6.6 分岐ハザード

  • 分岐判定を待つので遅れる,とかそんな話。
  • 久し振りで忘れたけど,IMは命令メモリでDMがデータメモリな。
  • 分岐ハザードは制御ハザードともいう。
  • 分岐するかどうかが分かるのは当然ながら分岐命令実行後,これだと遅い。→分岐判定を前倒ししたい!→IDステージに移そう!
  • よく起こるほうを分岐しないほうにしておく。→だから分岐予測で予測するデータが無い場合はデフォで不成立と予測するようになっている。
  • 等しいかどうかのチェック→排他的ORして結果の全ビットをANDする。→なんかすげぇ頭いいな。
  • P.383の真ん中ら辺で誤記発見。MRM/WBじゃなくてMEM/WBだよね?
  • 動的分岐予測の実現形態として,分岐予測バッファ(分岐履歴テーブル)がある。このバッファに分岐が成立したか否かを示すビットを記憶しておく。
  • 図6.39は図が悪すぎるだろ。成立①,②とかにして区別してくれよ。


6.7 ハードウェア記述言語によるパイプラインのモデル化と記述

  • PDFの内容なのでとりあえず省略するけど,MIPSの実装に役立つと思うのであとで読もうぜ。


6.8 例外

  • オーバフローとかそんなやつ。仕組みとしては分岐ハザードの時とほとんど同じ?
  • 80000180て急に出てきたけど何これ?→例外ルーチンのアドレスみたいだけど,これはもう決まってるものなの?MIPSの仕様書調べないとわからん。
  • パイプライン化されたコンピュータにおける例外,の上のところの線が青いんだけど。。
  • MIPSでは,ハードウェアで複数の例外をソートし,先に実行された命令順に割込みをかけるようになっている。
  • この節の自己診断,答えを見たけど全然分からない。


6.9 高度なパイプライン処理:性能のさらなる向上

  • いきなりヘネパタ読めとか書いてあるんだけど?
  • 命令レベルの並列性:パイプラインの段数を増やすこと。(もっと細かく切るということ。)
  • 静的な複数命令発行:コンパイラが頑張る話。VLIWともいうが,IntelはEPICとか呼んでる。
  • 動的な複数命令発行:スーパスカラとかね。
  • 投機実行:見切り発車すること。これをやろうとすると実装が複雑になるらしい。
  • Intelの話は適当に飛ばす。


6.10 実例:Pentium4のパイプライン

  • 暇な時に読めばいんじゃね?


6.11 誤信と落とし穴

  • Pentium4のパイプラインをVerilogで書くと数千行らしい。これは多いの?少なく感じるけど?
  • 命令セットの設計でミスるとパイプライン化はより困難になる。


6.12 おわりに

  • パイプラインはスループットを向上させるが,命令の実行時間つまりレイテンシを短縮するわけではない。
  • Pentium4が素晴らしいだって?


MIPSエミュレータの製作

  • dominion525氏による,MIPSエミュレータ製作で学ぶオブジェクト指向の講義になっていた件。(上の写真。)
  • R形式,I形式,J形式とか全く別々に実装する必要はない。親のクラスとか子供のクラスとかちゃんと考えよう。→継承(extends)をちゃんと使おう。
  • getなんちゃらとかsetなんちゃらとか,各形式で内容は異なるけど必ず実装するようなメソッドは,強制的に実装させた方がよい。→インタフェース(implements)をちゃんと使おう。
<<前の5件 1  2  3  4  5  6  7  8  9  10

アーカイブ

プロフィール:ttl

  • ・勉強と運動が好きです。
  • ・カエルさんも好きです。
  • ・λはもっと好きです。
  • 購読する このブログを購読

最近のつぶやき

最近のコメント

アーカイブ

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.27-ja