勉強会の最近のブログ記事

100228_patahene.JPG

今回も引き続きパイプライン。

コード書く時間を確保する為,これからは輪講少なめです。


概要

  • 日時:'10/02/28 17:30~21:00
  • 場所:短歌会館
  • 参加者:3人+長老!
  • 内容:「6.2 データパスのパイプライン化」読み合わせ+MIPSエミュレータの製作


6.2 データパスのパイプライン化

  • 単一クロックサイクルを5分割してパイプラインの説明をしていく話。
  • 同じような図がたくさん出てくるけど,パイプラインの各フェーズを説明しているだけ。
  • 図中の網掛けは,読出しの時が右半分で,書き込みの時が左半分。
  • Intelは俺がやる,MIPSはコンパイラ頑張れ!という感じ?


MIPSエミュレータの製作

  • ファイル処理する所を前回書いたけど,1とか0とかいうASCII文字として読んできちゃうからキモいことになってる件について。
  • ストリームから取るようにしておけばいいんじゃねえの?というアドバイスを貰ったりした。ファイルだろうとバイト配列だろうと関係ない。
  • そもそもJavaがよく分かってない。→CPUエミュレータ製作で学ぶオブジェクト指向とかどうよ?
  • 上巻の頭に載ってる緑色のMIPSリファレンスっぽいシートによると,I形式にもfunctフィールドあるっぽいけど何これ?→MIPSの仕様書落として調べるしかない。

100228_aozora.JPG

どえりゃあが混んでたので,今回は急遽青空教室に。。

日曜の昼間に,栄のど真ん中で物理学の教科書を読んでいる変態集団を見かけたら僕達です。

以下適当にメモなど。


概要

  • 日時:'10/02/28 14:30~17:00
  • 場所:オアシス21
  • 参加者:3人
  • 内容:「第12章 力の性質」の読み合わせ


12-1 力とは何か?

  • 科学哲学という分野があるらしい。
  • ちょwwチカリって何だよwww原著で何て書いてんの?
  • 力の特性で一番大切なのは,それが現実の源を持っているということ。単なる定義ではない。
  • 数学だと,現実に何を問題としているか考える必要はない。物理だといろんな近似を含んでる。たしかに点とか線なんてものは現実には存在しない。


12-2 摩擦

  • そういや,プリンキピアの原著?っぽいやつ,さっき売ってたよ?
  • 飛行機がなぜ飛ぶかはよく分かんないらしいよ?→それは流体力学全般が実験式から成り立ってるからってことじゃね?
  • レイノルズ数と言えばクマバチが飛べない話を思い出した。
  • 渦ってのはいわゆるカルマン渦のこと?
  • 摩擦で損失があるのは,凸部がぶつかって変形し,波と原子運動とを生じ,そして両方の物体に熱を生じるから。
  • 摩擦の公式は実験式だ。


12-3 分子力

  • ここは量子力学勉強しないとよく分からない。
  • 電荷に中心間の距離をかけたものをダイポールモーメント(双極子モーメント)という。
  • ヨハンソン・ブロック:ブロックゲージのこと。密着させることで,それぞれのブロックゲージの寸法が正しく合算される。


12-4 基本的の力,場

  • いちいち合力を算出するのは面倒くさいので,単位電荷当たりの力を算出しておけばよい。→場の考え方は便利。
  • 重ね合わせの原理:別々の力でも,それぞれの場の和を求めるだけでよい。


12-5 見かけの力

  • また太郎と次郎が出てきた!
  • 慣性力:加速してる方向と逆向きに力が働く。
  • 見かけの力は常に質量に比例する。だから重力それ自身も見かけの力である可能性がある??
  • 「我々がみんな2次元の世界に住んでいて・・・」←ちょwww


12-6 核力

  • 核力とは,原子核のなかで働いている力のこと。ここらへんも量子力学を勉強しないとよく分からない。
  • 原子核間の力を計算した人はいまだかつていない。→この本が出た時の話で,今現在としてはどうなんだろう?
コンピュータの構成と設計~ハードウエアとソフトウエアのインタフェース 第3版 (下)
デイビッド・A. パターソン ジョン・L. ヘネシー
日経BP社
売り上げランキング: 19229


今回からみんな大好きパイプライン。

RISCプロセッサだとパイプラインが一番アツい内容らしいので,前々から楽しみでした。

以下適当にメモ。

概要

  • 日時:'10/02/14 17:30~21:00
  • 場所:短歌会館
  • 参加者:3人
  • 内容:前半は「6章 パイプラインを用いた性能向上」の頭の方を読み合わせ。後半はMIPSエミュレータの製作。


6.1 パイプライン処理の概要

  • パイプライン処理とは,複数の命令を少しずつずらして同時並行的に実行する実現方式。
  • 最近のMIPSは17ステージくらいあるらしいよ?→そんなに分けて何やってんの?
  • MIPSを簡易的に5ステージで考えるなら,洗濯物の例も5ステージにすべきだろjk
  • 例題でjumpが含まれていないけど,jumpされるとパイプラインが上手く機能しないからだよね。
  • μOPって外部に公開されてるの?
  • 構造ハザード:一緒に実行される命令の組み合わせにハードウェアが対応出来ない。もうどうしようもない。
  • データハザード:まだ前の処理が終わっていなくて計算に必要なデータが揃わない状態。解決策としてフォワーディングという手法がある。フォワーディングとは,計算結果のデータがレジスタやメモリに保存される前に,内部バッファから引き出して使用すること。例題読めばだいたい分かる。
  • 制御ハザード(分岐ハザード):条件分岐があるせいで,後続する命令が実行すべき命令か否か判断出来ない状況。解決策はストール,分岐予測,遅延分岐の3つがある。
  • ストール:ようはnopして分岐を待つだけ。
  • 分岐予測:分岐結果を予測して先行して処理を進めること。履歴から動的分岐予測をすると的中率は90%程度にもなるしい。
  • 遅延分岐:依存関係があるものを後回しにして,依存関係がない命令を先に実行すること。


MIPSエミュレータの製作

  • MIPSサブセットに絞って,エミュレータを作ろう!
  • 各自好きな言語使っていいので,僕はとりあえずJavaにしたけど,Scalaで書けとか言われてる。あとの二人はRubyとHaskellだそうです。
  • とりあえずテキストファイルから4byteずつ読み出すだけのファイル処理部分を書いたら時間切れになった。
ファインマン物理学 (1)
ファインマン
岩波書店
売り上げランキング: 47108


今回はベクトルについて勉強したんだけど,なぜ今更?という感じの内容でした。

以下適当にメモ。


概要

  • 日時:'10/02/14 14:30~17:00
  • 場所:どえりゃあ
  • 参加者:3人
  • 内容:「第11章 ベクトル」の読み合わせ


11-1 物理学における対称性

  • 対称性のやぶれが問題となっているらしいよ。
  • 対称性ってのは再現性があるとかそんな意味でいいのかな?
  • ぜんぜん関係ないけど,山川書店の歴史の教科書が面白いらしい。


11-2 平行移動

  • 太郎と次郎って原著では何なの?トムとか?
  • xyzの原点どこにとってもよいという話。→平行移動に対して対称ということ。


11-3 回転

  • いつになったらベクトルの話が始まるのさ?
  • xyzの軸はどの向きにとってもよいという話。
  • つまり座標系は平行移動したり回転させたりしても問題ないよってこと。
  • ただ軸の取り方で計算の都合が良くなったり悪くなったりするので気を付けること。


11-4 ベクトル

  • 大きさと方向を持った量がベクトル。
  • 高校までだとアルファベットの上に矢印で,大学の教科書だと太字で書いてる気がする。
  • ってかベクトルの表記って最初に誰が考えたの?


11-5 ベクトル代数

  • 基本的にはスカラーに対する演算と同じように足し算とか引き算とか出来る。
  • 幾何学的には,足し算は矢印をつなぐ感じ。引き算は矢印の向きを逆にしてつなげる感じ。


11-6 ベクトル記号によるニュートンの法則

  • 運動方程式をベクトル使って書き直してるだけ。


11-7 ベクトルのスカラー積

  • ベクトルの掛け算は,スカラー積(内積)とベクトル積(外積)の2種類ある。
  • 内積は各成分ごとの積をとって,それらを全部足す。つまり内積をとると,ベクトル量はスカラー量になっちゃうので,別名スカラー積ということ。
  • KE:Kinetic Energy → 運動エネルギーのこと。
  • 外積は後の章でやるらしいよ。
コンピュータの構成と設計~ハードウエアとソフトウエアのインタフェース 第3版 (下)
デイビッド・A. パターソン ジョン・L. ヘネシー
日経BP社
売り上げランキング: 45976


仕事忙しくてブログにまとめてる時間がなかったけど,ざっくり書いておく。

今回の内容はかなり重かったので,勉強会後に読み直してみたりした。

制御ユニットの設計するところとかは説明が長いだけで,結局最後に「以上を図ほげほげにまとめる。」とか書いてあるので,そこだけ熟読すればなんとかなる・・・はず。

とりあえず以下適当にメモ。


概要

  • 日時:'10/01/24 17:30~21:00
  • 場所:短歌会館
  • 参加者:4人
  • 内容:前半は5章読み合わせの続き,後半はMIPSソフトウェアエミュレータ作成


5.5 マルチサイクルを用いた実現方式

  • 単一クロックサイクルは効率悪いから,マルチサイクルに設計変更しようぜ!という話。
  • マルチサイクルの利点①:各命令でクロックサイクル数がバラバラでもいい。単一クロックサイクルの時みたいに遅い命令に全部合わせる必要がなくなる。
  • マルチサイクルの利点②:1つの命令の実行中に,空いている機能ユニットを共用出来る。例えばデコードしてる時に,次の命令のフェッチをするとか。
  • どうやって実現するかというと,データパスの合間合間にレジスタかませて値を保持するようにするだけ。
  • 詳細は本参照だけど,IR,MDR,A,B,ALUOUTというレジスタが追加される。
  • あと,機能ユニットが異なる目的のために共有されるので,その切替のためにいくつかマルチプレクサも追加されている。→だから制御信号がより複雑になるorz
  • で完成したのが図5.28になる。制御信号のほとんどは単一クロックサイクルの時と同じ。新しい制御信号は,新しく追加されたマルチプレクサへの切替信号がいくつかあるだけ。
  • 命令実行の各ステップ(フェッチ→デコード→・・・などなど)については図5.30にまとまっている。
  • 制御ユニットをどうやって設計するか?→制御仕様をどうやって記述するか?→有限状態機械を使えばいんじゃね?という流れ。
  • 有限状態機械はdominion525さんのスーパーマリオの例えが面白かった。マリオがキノコ,フラワー,1upキノコ,クリボーにぶつかることを想定して有限状態機械を上手く説明してくれた。
  • Moore方式とMealy方式についてはわかるVerilogHDL入門読書会をやった時に出てきたよね?


5.6 例外

  • いままでは例外処理を考慮してなかったので追加しよう!という話。
  • 例外と割込みは同じような意味で使われるけど,主としてエラーによるものを例外と呼んでいる。
  • EPCレジスタ:問題を起こした命令のアドレスを記録しておくためのレジスタ。
  • Causeレジスタ:例外の原因を記録するためのレジスタ。とりあえずここでは未定義命令と算術オーバフローの2つだけを考慮する。
  • 未定義命令は単純にOpフィールドで判断出来る。算術オーバフローは付録BのALU設計を読め!ということらしい。
  • 上記レジスタに書き込みを行うための制御線として,EPCWrite,CauseWriteも新たに追加する。あと例外原因を切り替えるマルチプレクサへの信号としてIntCauseというのも追加する。


5.7 マイクロプログラミング:制御設計の単純化

  • PDFの内容だから省略。CISCの話だから誌面から省略されてるってことか?


5.8 ハードウェア設計言語を使用したディジタル設計の手ほどき

  • PDFの内容だから省略。ちらっと見たらVerilogの話みたいだから,あとでコードリーディングとかしようぜ?


5.9 実例:最近のPentiumの実現方式の構成

  • ハイパーIntelディスタイムだから省略。たぶんパイプラインとか頑張ってる話だよね?


5.10 誤信と落とし穴

  • 複雑な命令をマイクロコードで実現しても,単純な命令の組み合わせよりも遅くなる可能性がある。→RISCプロセッサをCISCプロセッサでエミュレートしているような状態→μOpのこと。→x86ディス?
  • 制御記憶に余裕があれば,新しい命令を追加するコストはかからない。→x86は上位互換しすぎてどうのこうの・・・。


5.11 おわりに

  • 5章はMIPSサブセットに限定して実際にCPUを設計したりした。→MIPSソフトウェアエミュレータを作ろう!
  • 制御部分が一番面倒くさい。→有限状態機械とかで制御仕様をわかりやすく記述することが重要。

プロフィール:ttl

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

最近のコメント

アーカイブ

このアーカイブについて

このページには、過去に書かれたブログ記事のうち勉強会カテゴリに属しているものが含まれています。

前のカテゴリはランニングです。

次のカテゴリは自転車です。

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

Powered by Movable Type 4.27-ja