<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4189009630455039950</id><updated>2012-01-27T17:14:44.483+09:00</updated><category term='文化祭'/><category term='コンパイラ'/><category term='LiLFeS'/><title type='text'>CPU 実験日記</title><subtitle type='html'>&lt;a href="http://www.is.s.u-tokyo.ac.jp/"&gt;東大理情&lt;/a&gt;の名物実験、CPU 実験の日記。チーム C# (とその他の愉快な仲間たち) より愛をこめて。</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Yuto Takei</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-E0fcdUk3Shw/TetNUD5agpI/AAAAAAAAA0Q/5UazaC4oAeQ/s220/254193_1943555760818_1600221779_1962741_2739513_n.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>47</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-4842448127324111598</id><published>2010-06-04T10:59:00.004+09:00</published><updated>2010-06-04T11:17:06.994+09:00</updated><title type='text'>連載企画 CPU 実験教室 実践編 第 4 回 RS232C について</title><content type='html'>&lt;p&gt;今回は &lt;a href="http://ja.wikipedia.org/wiki/RS232C" target="_blank"&gt;RS232C&lt;/a&gt;、つまり&lt;a href="http://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%AA%E3%82%A2%E3%83%AB%E9%80%9A%E4%BF%A1" target="_blank"&gt;シリアル ポート&lt;/a&gt;による通信の解説です。とはいっても、今回解説するのは RS232C の仕様だけで、具体的な通信仕様とモジュールの書き方については次回に回したいと思います。ソフトウェア的なことは cserver を参照してください。&lt;/p&gt;

&lt;table style="margin-bottom: 20px"&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src="091204_is2k9.png" alt="あいずたん" width="100" height="100" /&gt;&lt;/td&gt;
    &lt;td style="font-weight: bold; color: blue"&gt;具体的なモジュールの書き方は次回号を読んでねっ！&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;h2 style="margin-bottom: 0px"&gt;RS232C のピンについて&lt;/h2&gt;
&lt;p style="margin-top: 0px"&gt;RS232C ポートにはピンがいっぱい伸びているけど、通信に使うのはたった 2 本の線、送信線と受信線です。この 2 本は全く無関係に動くので、送受信が同時にできます。他のピンは制御線ですが、仕様が曖昧なところもあり、使用はお勧めできません。むしろたった 2 本の線で通信できるのが RS232C のすごいところなので、これだけで通信しましょう。&lt;/p&gt;

&lt;h2 style="margin-bottom: 0px"&gt;ストレート ケーブルとクロス ケーブル&lt;/h2&gt;
&lt;p style="margin-top: 0px"&gt;もともと RS232C は PC とモデムの間をつなぐのに使われていた物でした。そのときは、普通に PC から送信する線をモデム側が受信して、モデムが、 PC が受信できるように受信線に送信すればよかったわけです (ストレート ケーブル)。 これを、PC 間、あるいは他の機器と接続するとき、そのまま接続すると、受信線と受信線・送信線と送信線がつながってしまうということが発生してしまいます。そこで、受信線と相手の送信線をつなぐようにしたものを、クロス ケーブルというわけです。&lt;/p&gt;
&lt;p&gt;これだけ聞くと当たり前であるように見えるのですが、制御線の定義を各メーカーが解釈したときに、クロス ケーブルの仕様がメーカー間で多少違いが出てきてしまったということがあります。これが制御線を使うのをお勧めできない理由のひとつ。&lt;/p&gt;
&lt;p&gt;ちなみに筆者は ModelSim 上でストレート ケーブルでモジュールをつなげてしまうというミスをして、数時間ぐらいはまっていたことがあるので、皆さんは注意しましょうｗ。&lt;/p&gt;

&lt;table&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src="091204_is2k9.png" alt="あいずたん" width="100" height="100" /&gt;&lt;/td&gt;
    &lt;td style="font-weight: bold; color: blue"&gt;in と in , out と out をつなげても ModelSim は警告してくれないよっ！&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;table style="margin-bottom: 20px"&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src="091204_lilfes.png" alt="りるふぇすたん" width="100" height="100" /&gt;&lt;/td&gt;
    &lt;td style="font-weight: bold; color: deeppink"&gt;そんなミスをするとかヒョットしてあんたバカァ？&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;h2 style="margin-bottom: 0px"&gt;通信速度&lt;/h2&gt;
&lt;p style="margin-top: 0px"&gt;当初の規格では、かなりの低速通信用として開発されたため、baud rate　(多少語弊はありますが、通信速度と思ってくれて構いません)は、110 bps(bit/s) -- 9600 bpsで策定されました。これが、ある程度時間がたつと、遅すぎるということで 14400 bps , 28800 bps が使われるようになり、さらに時間がたって、115200 bps が策定され、最終的に、Windows などで、その倍倍である、230400 bps , 460800 bps , 921600 bps が策定されたようです。&lt;/p&gt;
&lt;p&gt;DELL の学科 PC や筆者の PC の後ろについているシリアル ポートは、多分 115200bps が上限 (デバイス ドライバ見てください)、それ以上の速さでは本来プログラムで開けないはずなんですが、TeraTerm では何をしているのか知らないけど、それ以上の速度で通信できているように見えてしまいます (多分実際にはその速度でやり取りしていないと思うのですが...)。入江先生の貸してくれたシリアル to USB を使うと、送信は 921600bps までいけて、受信は 460800bps までいけるようです。最も性能の高いシリアル to USB を使うと 921600 bps ≒ 1 Mbps まで出せるという噂もあります。こういう風に言っているのは、PC 側のシリアルデバイスに比べて、FPGA 基板の方が圧倒的に性能が高いため、たとえ 921600bps でも余裕で受信できるということ (1 bit に数十 -- 数百クロックかかります)。あと、921600bps で contest.sld を実行しても、IO だけで 0.5s かかります。&lt;/p&gt;

&lt;table style="margin-bottom: 20px"&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src="091204_is2k9.png" alt="あいずたん" width="100" height="100" /&gt;&lt;/td&gt;
    &lt;td style="font-weight: bold; color: blue"&gt;ちなみに、USB 2.0 以降の通信速度は、旧基板のチップでもシリアルの速度が無視できるぐらい速いよっ！ 旧基板でも概算で 50Mbps かなっ！&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;h2 style="margin-bottom: 0px"&gt;信号の電圧について&lt;/h2&gt;
&lt;p style="margin-top: 0px"&gt;RS232C の信号は以下のような感じで定められています。&lt;/p&gt;
&lt;table cellspacing="0" cellpadding="3" style="text-align: center"&gt;
  &lt;tr&gt;
    &lt;td class="t1" width="80"&gt;0&lt;/td&gt;
    &lt;td class="t2" width="100"&gt;+12V&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class="t3"&gt;1&lt;/td&gt;
    &lt;td class="t4"&gt;-12V&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;拡張基板上に RS232C ポートを作成する場合は、自分で電圧変換チップを挟む必要がありますが、新基板上では FPGA のピンをいったん電圧調整の石をはさんでソケットにつながっている形になっているので、何も考えずに送信線と受信線に 0 , 1 を出力すれば OK です。&lt;/p&gt;

&lt;h2 style="margin-bottom: 0px"&gt;参考文献&lt;/h2&gt;
&lt;ul style="margin-top: 0px"&gt;
  &lt;li&gt;『RS232C接続回路』 &lt;a href="http://www.ccad.sist.chukyo-u.ac.jp/~mito/syllabi/kikou/Serial/"&gt;http://www.ccad.sist.chukyo-u.ac.jp/~mito/syllabi/kikou/Serial/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 style="margin-bottom: 0px"&gt;最後に&lt;/h2&gt;
&lt;p style="margin-top: 0px"&gt;もし何か意見・質問ございましたら下のコメント欄にお寄せくださいお寄せくださいお寄せください。&lt;/p&gt;

&lt;table&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src="091204_lilfes.png" alt="りるふぇすたん" width="100" height="100" /&gt;&lt;/td&gt;
    &lt;td style="font-weight: bold; color: deeppink"&gt;さて、次回はいよいよ RS232C の通信方法とモジュールの書き方についての説明ね。あんまり私をがっかりさせないことね&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-4842448127324111598?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/4842448127324111598/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/12/cpu-4-rs232c-1-rs232c.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/4842448127324111598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/4842448127324111598'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/12/cpu-4-rs232c-1-rs232c.html' title='連載企画 CPU 実験教室 実践編 第 4 回 RS232C について'/><author><name>xyx</name><uri>http://www.blogger.com/profile/12664580622877928008</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-5922470342448940570</id><published>2010-06-01T17:51:00.004+09:00</published><updated>2010-06-01T17:59:50.323+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LiLFeS'/><title type='text'>天空への LiLFeS 入門 (QM 法編)</title><content type='html'>&lt;p style="text-indent: 12pt;"&gt;こんにちは。team C# の花元です。今回は学科の後輩向けに&lt;a href="http://www-tsujii.is.s.u-tokyo.ac.jp/lilfes/index-j.html" target="_blank"&gt;LiLFeS&lt;/a&gt; (&lt;a href="http://cpuexp.blogspot.com/2009/10/lilfes.html" target="_blank"&gt;参照1&lt;/a&gt; / &lt;a href="http://cpuexp.blogspot.com/2009/10/lilfes.html" target="_blank"&gt;参照2&lt;/a&gt;) による &lt;a href="http://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AF%E3%82%A4%E3%83%B3%E3%83%BB%E3%83%9E%E3%82%AF%E3%83%A9%E3%82%B9%E3%82%AD%E3%83%BC%E6%B3%95" target="_blank"&gt;QM 法&lt;/a&gt;の実装について書きたいと思います。えっ、なんか大変そうなんだけど大丈夫？との声が聞こえてきそうですが、実は QM 法の実装に LiLFeS はとてもオススメです。以下その理由。&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;論理型言語である&lt;/li&gt;
  &lt;li&gt;lexer / parser がいらない&lt;/li&gt;
&lt;/ol&gt;

&lt;p style="text-indent: 12pt;"&gt;つまるところ QM 法とは論理圧縮ですから、論理型言語であるというのは大きなアドバンテージです。Prolog？ そんな軟弱な言語有り得ません。lexer / parser がいらないというのも良いですね。LiLFeS ならクエリを実行するだけで大丈夫です。ocamllex / ocamlyacc に飽きてしまった人も是非。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-5922470342448940570?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/5922470342448940570/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2010/05/lilfesqm.html#comment-form' title='1 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/5922470342448940570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/5922470342448940570'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2010/05/lilfesqm.html' title='天空への LiLFeS 入門 (QM 法編)'/><author><name>mogella</name><uri>http://www.blogger.com/profile/06339639468496927542</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-8837927379754462981</id><published>2010-05-30T23:29:00.007+09:00</published><updated>2010-06-01T18:01:33.437+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='文化祭'/><title type='text'>五月祭 2 日目</title><content type='html'>&lt;p&gt;こんばんは、竹井です。五月祭も無事におわりまして、地上の喧騒から地下の楽園に帰ってきました。&lt;/p&gt;
&lt;p&gt;と、ここで大ニュースがありまして、実は今日の五月祭 2 日目、なんと何もしないはずだった情報科学科でも出し物をしていた有志がいたのでありました！ その名も「東大地下を這い出たギークたち'08」という、なんともアヤシゲな雰囲気をかもし出すバンド名。実はこれ、地下、つまりわれわれがいる学生控え室というのは、4 年生の秋になると自動的に各研究室に配属されて、地面よりも高いところ (建物の 3F だとか 4F だとか)、つまり天空に位置する研究室の学生部屋へと移っていくわけでして、去年そうやって地下から地上へと旅立ってゆかれた私どもの諸先輩方のバンドだったのです。まぁこんな感じ↓&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://1.bp.blogspot.com/_q0_47cmuCj4/TAKFCyOl3qI/AAAAAAAAACM/T3djaUSJPO0/s1600/IMG_2947a.jpg" target="_blank"&gt;&lt;img src="http://1.bp.blogspot.com/_q0_47cmuCj4/TAKFCyOl3qI/AAAAAAAAACM/T3djaUSJPO0/s320/IMG_2947a.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;バンドの演奏中は、さすがに IS らしく、同じ 2008 の &lt;a href="http://twitter.com/plus7" target="_blank"&gt;plus7&lt;/a&gt; さんという方が Web カメラで中継してて、14 人がブロードキャスト中継を見ていたらしいです。なおこのバンド、3 人しかおらず、よく見るとドラムと思しき人がいない。いや、よく見なくてもドラムがいない。代わりにあるのは、「ドラマー」と手書きの紙が張ってある Mac のラップトップが。&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://3.bp.blogspot.com/_q0_47cmuCj4/TAKFCZLxerI/AAAAAAAAACE/Uz3ZFOE-kDw/s1600/IMG_2944a.jpg" target="_blank"&gt;&lt;img src="http://3.bp.blogspot.com/_q0_47cmuCj4/TAKFCZLxerI/AAAAAAAAACE/Uz3ZFOE-kDw/s320/IMG_2944a.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;実は、このボーカルをやってる &lt;a href="http://twitter.com/Mekajiki" target="_blank"&gt;Mekajiki&lt;/a&gt; さんという方が、無類の Apple 好きらしいのですが、こいつからドラムの音を吐かせていたようです。なので曲の始まるときにこうやってポチッとなをする必要があったみたい(笑)&lt;/p&gt;
&lt;p&gt;というわけで、来年はわれわれ 2009 年代が引き継ぐべく、バンドをやりたいと思っています。考えたらわれわれの代、ギター、キーボード、サックス、チェロ、トランペット、ファゴット、ピアノ、合唱、指揮者とかなんだかいろいろできる人間がいるみたいですよ(笑) とりあえずこれらを全部ごちゃまぜにしてバンドを組んだら面白いことになりそう。だが！ やはりドラムはいなかった・・・。もういっそ僕がドラムを始めてみようかしら・・・。&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;b&gt;おまけ:&lt;/b&gt; 最近、東大でもわりと残念な集団が神出鬼没にいろんなところでお目にかかれるようですが、総合図書館前ではこんな人たちが踊ってました・・・。企画名は「【東大生に】さんすう教室【踊らせてみた】」 ざっと 30 人程度でしょうか。衣装代もバカにならんでしょうな、、、ご苦労様でした。&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://3.bp.blogspot.com/_q0_47cmuCj4/TAKFCby1epI/AAAAAAAAAB8/INVYSVKzglo/s1600/IMG_2924a.jpg" target="_blank"&gt;&lt;img src="http://3.bp.blogspot.com/_q0_47cmuCj4/TAKFCby1epI/AAAAAAAAAB8/INVYSVKzglo/s320/IMG_2924a.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-8837927379754462981?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/8837927379754462981/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2010/05/2.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/8837927379754462981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/8837927379754462981'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2010/05/2.html' title='五月祭 2 日目'/><author><name>Yuto Takei</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-E0fcdUk3Shw/TetNUD5agpI/AAAAAAAAA0Q/5UazaC4oAeQ/s220/254193_1943555760818_1600221779_1962741_2739513_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_q0_47cmuCj4/TAKFCyOl3qI/AAAAAAAAACM/T3djaUSJPO0/s72-c/IMG_2947a.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-1665343109464641982</id><published>2010-05-29T18:18:00.007+09:00</published><updated>2010-06-01T18:01:33.437+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='文化祭'/><title type='text'>五月祭 1 日目</title><content type='html'>&lt;p&gt;こんにちは、竹井 悠人です。五月祭一日目、結局のところ何だかんだ言って色々と楽しんできました。実は僕自身、去年までの 3 年間はずっと所属している音楽部合唱団の屋台に詰めていて、文化祭らしく友達と企画や展示を見て回ったことが一切なかったのです。そして何より、中高は文化祭というものにそもそも参加した記憶が一切ないという・・・、というわけで僕にとっては非常に新鮮な一日でありました。&lt;/p&gt;
&lt;p&gt;えー、というわけで、今日の後半は僕の高校時代の友人と一緒に回りまして、彼の日記のほうがより秀逸にまとまっているので、リンクを張ってしまいます、悪しからず。&lt;br /&gt;
&lt;a href="http://yukikazura.blog40.fc2.com/blog-entry-87.html" target="_blank"&gt;東京大学第83回五月祭 @ 雪明りの光合成。&lt;/a&gt; (写真いっぱい)&lt;/p&gt;
&lt;p&gt;ちなみに、この記事に出てくる折り紙サークル &lt;a href="http://orist.tiyogami.com/" target="_blank"&gt;Orist&lt;/a&gt; は、わが班の金沢君が立ち上げたサークルらしいですよ。FPU の高速化に貢献した数学力もさることながら、彼の手先の器用さも侮れないようです。。。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-1665343109464641982?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/1665343109464641982/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2010/05/1.html#comment-form' title='2 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/1665343109464641982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/1665343109464641982'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2010/05/1.html' title='五月祭 1 日目'/><author><name>Yuto Takei</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-E0fcdUk3Shw/TetNUD5agpI/AAAAAAAAA0Q/5UazaC4oAeQ/s220/254193_1943555760818_1600221779_1962741_2739513_n.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-5761452174101093581</id><published>2010-05-29T07:51:00.003+09:00</published><updated>2010-06-01T18:01:33.438+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='文化祭'/><title type='text'>五月祭</title><content type='html'>&lt;p&gt;おはようございます、班長の竹井です。今日は CPU 実験とはまったく関係ない記事ですが、とりあえず宣伝しておきます。&lt;/p&gt;
&lt;p&gt;今週末、つまり今日と明日は東京大学の本郷キャンパスで、&lt;a href="http://www.a103.net/may/83/visitor/" target="_blank"&gt;五月祭&lt;/a&gt;という文化祭をやっております。毎年、いろんな大学の学生や受験生たちなどが訪れ、&lt;s&gt;一般には「勉強ができる」という誤解で認知されている東大生が、実は如何にアホかという企画&lt;/s&gt; 初夏の青々とした銀杏に囲まれ建物のレンガには生命力豊かな蔦が絡んでいるアカデミックな雰囲気の中で、如何に社会を支える研究をしてきたかを発表する企画の数々を見ることができます。&lt;/p&gt;
&lt;p align="center"&gt;ここまでネタを振っておいて残念なお知らせですが、&lt;br /&gt;
われわれ情報科学科は何もしません。&lt;br /&gt;
&lt;b style="font-size: 14pt; font-weight: 900"&gt;何も！&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;いえ、強いていうなれば、いつもどおり陰湿で澱んだ空気たちこめる地下室で怪しげなプログラムを書いていることでしょう。それを展示すればよい、という考えも無きにしも非ずでしたが、さすがに世間に情報科学の重要性を説くことなく、誤ってプログラマたちの暗い暗い暗黒かつ邪悪なイメージを植えつけることがなきよう自重したのでありました。&lt;/p&gt;
&lt;p&gt;というわけで、五月祭は東京大学の本郷キャンパスで今日明日、みんな来てね！&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-5761452174101093581?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/5761452174101093581/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2010/05/blog-post.html#comment-form' title='2 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/5761452174101093581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/5761452174101093581'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2010/05/blog-post.html' title='五月祭'/><author><name>Yuto Takei</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-E0fcdUk3Shw/TetNUD5agpI/AAAAAAAAA0Q/5UazaC4oAeQ/s220/254193_1943555760818_1600221779_1962741_2739513_n.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-8342896815650375747</id><published>2010-05-25T17:12:00.004+09:00</published><updated>2010-05-26T12:17:50.752+09:00</updated><title type='text'>cpu実験最後の3ヶ月 その3</title><content type='html'>&lt;p style="text-indent: 12pt;"&gt;こんにちは。team C#の花元です。班長の竹井くんと一緒に書いています。&lt;/p&gt;

&lt;p style="text-indent: 12pt;"&gt;時は3月12日、僕は某駅のホームに立っていました。この日から朝のラッシュ時における駅員補助のバイトをすることにしたのです。発表まで時間が少なく、またハードウェア班の4人のうち2人が失踪してしまうという事態に、僕はほぼCPUの完成を諦めていました。しかし、大好きな電車に関われる喜びで、すこしやる気が回復することに。バイトが終わり次第すぐ大学に直行しました。&lt;/p&gt;

&lt;p style="text-indent: 12pt;"&gt;幸いなことに、エミュレータ係の新井くんがハードウェアデバッグのお手伝いをしに大学に来てくれました。彼が持ってきたのは三角関数のテストコード。これが動けば（浮動小数点数の）四則演算が正しく動くことが証明されます。…が（当然のごとく）動きません。検証の結果、そもそも（浮動小数点数の）足し算がうまくいっていないことが判明。単体テストは通っているはずだし制御機構も間違っていないようだし…半日掛けて原因がわかりました。&lt;/p&gt;

&lt;strong&gt;&lt;big&gt;ファイル名が違っていた&lt;/big&gt;&lt;/strong&gt;

&lt;p style="text-indent: 12pt;"&gt;fp_adderをfp_addと書き間違えていました。…あまりのポンコツっぷりに皆脱力してこの日のデバッグは終了しました。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-8342896815650375747?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/8342896815650375747/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2010/05/cpu3-3.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/8342896815650375747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/8342896815650375747'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2010/05/cpu3-3.html' title='cpu実験最後の3ヶ月 その3'/><author><name>mogella</name><uri>http://www.blogger.com/profile/06339639468496927542</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-5689467377475332998</id><published>2010-05-24T14:07:00.002+09:00</published><updated>2010-05-24T15:11:36.408+09:00</updated><title type='text'>cpu実験最後の3ヶ月 その2</title><content type='html'>&lt;p style="text-indent: 12pt;"&gt;こんにちは。team C#の花元です。気ままに書いているので更新は不定期ですが気ままにお読みください。&lt;/p&gt;

&lt;p style="text-indent: 12pt;"&gt;試験後から3月初旬にかけてはずっとコンパイラのデバッグをやっていました。ハードウェア班の僕はCPUでフィボナッチ以上のことがやれるかどうか検証しようとしました。ところが、僕のマシンでアセンブラが正常に動作せず諦めました。今思うとこれは大変な失策でした。後に判明するのですが、この時点で我が班のCPUは整数の足し算と引き算ぐらいしかまともに動かなかったのです。&lt;/p&gt;

&lt;p style="text-indent: 12pt;"&gt;この時期最も頑張っていたのはコンパイラ係の竹井くん…ではなくてエミュレータ係の新井くんでした。新井くんのが必死でデバッグしている横で、僕と竹井くんが麻雀をやっていたなんてこともあった気が。よくそれで班が崩壊しなかったなーと思います。&lt;/p&gt;

&lt;p style="text-indent: 12pt;"&gt;そんな彼らの努力により3月10日にプログラムがエミュレータ上で動作。実験発表は3月16日。コンパイラのデバッグに1ヶ月かかったのに、ハードウェアのデバッグが6日で終わるのか？そんな疑問を抱えながら作業はハードウェアのデバッグに突入することになります。(cpu実験最後の3ヶ月 その3へ続く)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-5689467377475332998?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/5689467377475332998/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2010/05/cpu3-2.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/5689467377475332998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/5689467377475332998'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2010/05/cpu3-2.html' title='cpu実験最後の3ヶ月 その2'/><author><name>mogella</name><uri>http://www.blogger.com/profile/06339639468496927542</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-4330714962665854075</id><published>2010-05-23T16:02:00.005+09:00</published><updated>2010-05-24T00:15:41.011+09:00</updated><title type='text'>4 年生になりました</title><content type='html'>&lt;p&gt;こんにちは、そしてお久しぶりです。無事に理学部 情報科学科で 4 年生になった竹井です。気づけば CPU 実験も終わり、新しい 3 年生たちも加わり、われわれの学生控え室もにぎやかになっていました。&lt;/p&gt;
&lt;p&gt;今年の 3 年生たちは、僕たちの代とは違って非常にマジメなので、もういろいろと CPU 実験のことを打ち合わせしだしているようで、この拙い拙い日記をたどって僕たちの過去の修羅場を見ているみたいなのですが(笑)、記事の更新がストップしてるので、なんだか寂しいと言われてしまいました。そういうわけで、ちょっとずつ、もうすこし役に立つ記事を提供しようということで、折を見てまた更新を再開しようかと思ってます。&lt;/p&gt;
&lt;p&gt;ちなみに近況報告をしますと、4 年になった僕らは、この夏学期、各研究室の巡回 (情報科学演習 3 という科目) がありまして、3 つの研究室をまわって各研究室の中で課題を遂行する、ということをしています。C# 班のメンバも行き先がバラバラなのですが、コンパイラ係と班長を担当していたわたし竹井は最初、&lt;a href="http://arbre.is.s.u-tokyo.ac.jp/" target="_blank"&gt;細谷研究室&lt;/a&gt;というところに行ってきました。脳科学の仕組みを情報科学に落とすようなことをしているところです。ハードウェアを担当していた花元は&lt;a href="http://www-hiraki.is.s.u-tokyo.ac.jp/" target="_blank"&gt;平木研究室&lt;/a&gt;で &lt;a href="http://ja.wikipedia.org/wiki/Graphics_Processing_Unit" target="_blank"&gt;GPU&lt;/a&gt; 向けの &lt;a href="http://www.nvidia.com/object/cuda_home_new.html" target="_blank"&gt;CUDA&lt;/a&gt; を研究していたそうです。他には高機能なシミュレータを作ってくれた新井はソフトウェア全般を扱う&lt;a href="http://web.yl.is.s.u-tokyo.ac.jp/" target="_blank"&gt;米澤研究室&lt;/a&gt;へ、数学を駆使して浮動小数点処理装置を最適化していた金沢は並列数値解析などを扱う&lt;a href="http://olab.is.s.u-tokyo.ac.jp/~reiji/" target="_blank"&gt;須田研究室&lt;/a&gt;へ、グラフィックに強い岡原は CG 全般で日本をリードしてる&lt;a href="http://nis-lab.is.s.u-tokyo.ac.jp/" target="_blank"&gt;西田研究室&lt;/a&gt;へ、Apple を愛して止まない梶原は UI を扱う&lt;a href="http://www-ui.is.s.u-tokyo.ac.jp/" target="_blank"&gt;五十嵐研究室&lt;/a&gt;などなど、見事なまでに全員がバラバラです(笑) まぁでも、結構みんななんだかんだ言って、ちゃんと自分にあったテーマを選んでるんじゃないでしょうか。&lt;/p&gt;
&lt;p&gt;ではでは、ぼちぼちまだ更新を不定期ながらはじめると思うので、どうぞよろしく。竹井 悠人がお送りしましたー。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-4330714962665854075?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/4330714962665854075/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2010/05/4.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/4330714962665854075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/4330714962665854075'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2010/05/4.html' title='4 年生になりました'/><author><name>Yuto Takei</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-E0fcdUk3Shw/TetNUD5agpI/AAAAAAAAA0Q/5UazaC4oAeQ/s220/254193_1943555760818_1600221779_1962741_2739513_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-1412997704948549421</id><published>2010-03-17T12:38:00.006+09:00</published><updated>2010-03-20T19:04:35.198+09:00</updated><title type='text'>cpu実験最後の3ヶ月 その1</title><content type='html'>&lt;p style="text-indent: 12pt;"&gt;こんにちは。team C#の花元です。お久しぶりです。皆様いかがお過ごしでしょうか。&lt;/p&gt;

&lt;p style="text-indent: 12pt;"&gt;とりあえず、更新が滞った1月からの話をすると、新年、team C#はキューバ危機的な何かに陥っていました。これまでの方針では、教科書通りのcpu(1stアーキテクチャ)を完成させた後、班独自のcpu(2ndアーキテクチャ)を作るという計画だったのですが、コンパイラ係兼班長の竹井くんが突然未完成の1stアーキテクチャの破棄及び2ndアーキテクチャによるcpu作成をエミュレータ係とハードウェア係に指示してきたのです。これにエミュレータ係とハードウェア係は猛反発。team C#は新年早々瓦解の危機(?)を迎えることになります。&lt;/p&gt;

&lt;p style="text-indent: 12pt;"&gt;ハードウェア係の僕は結局どうしたかというと、班長の指示に従う事にしました。これで動かなかったら班長を全力で&lt;a href="http://d.hatena.ne.jp/keyword/DIS" target="_blank"&gt;dis&lt;/a&gt;ってやろうと胸に抱きつつ。理由は幾つかあって、1stアーキテクチャはその時1ヶ月程度原因不明のバグ(後に実に下らない原因であることが分かるのですが)に悩まされ続けていて埒があきそうにないこと、ハードウェアのバグ取りにはコンパイラ係によるテストコードの作成が必要不可欠で対立するととても動きそうにないこと、コンパイラ係は1stアーキテクチャでの仕事を完成させていて動かなくても単位は来そうなことが挙げられました。うーん、立場が弱い。&lt;/p&gt;

&lt;p style="text-indent: 12pt;"&gt;エミュレータ係も仕方なく2ndアーキテクチャへの移行に了承します。こうしてteam C#は瓦解の危機から脱することができました。と言っても当然のことながら毎週の進捗報告で指導教官の不安を買うことになり、1週間で簡単なプログラム(フィボナッチ数を求めるプログラム)を動かせなかったらteamに強制介入されることになりました。&lt;/p&gt;

&lt;p style="text-indent: 12pt;"&gt;こうなると班長の意欲は最高潮に達し、徹夜でコードを書いて眠い僕を叩き起してデバッグさせるという素晴らしいプロジェクトマネージメント能力を遺憾なく発揮させつつ、自身も1日中ハードウェアのテストコードを機械語で書き続ける(その時点では&lt;a href="http://ja.wikipedia.org/wiki/%E3%82%A2%E3%82%BB%E3%83%B3%E3%83%96%E3%83%AA%E8%A8%80%E8%AA%9E" target="_blank"&gt;アセンブラ&lt;/a&gt;がなかったので)という偉業(?)を成し遂げました。結果、2日でフィボナッチ数を求めるプログラムがハードウェア上で動くように。2ndアーキテクチャの開発が認められるようになります。&lt;/p&gt;

&lt;p style="text-indent: 12pt;"&gt;ここで試験期間につき一時活動を停止(試験の記事も誰かが書いてくれるかもしれません)。開発は試験後に持ち越され、注目はハードウェアから2ndアーキテクチャ用のコンパイラにしばらく移ることになりました。(cpu実験最後の3ヶ月 その2へ続く)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-1412997704948549421?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/1412997704948549421/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2010/03/cpu3-1.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/1412997704948549421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/1412997704948549421'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2010/03/cpu3-1.html' title='cpu実験最後の3ヶ月 その1'/><author><name>mogella</name><uri>http://www.blogger.com/profile/06339639468496927542</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-1746203471633641758</id><published>2010-03-15T23:53:00.004+09:00</published><updated>2010-03-15T23:57:45.675+09:00</updated><title type='text'>最後の追い込み</title><content type='html'>&lt;p&gt;竹井です。短い記事で失礼。&lt;/p&gt;
&lt;p&gt;えーと明日の実験発表会まであと 13 時間なわけで、地下には夜にもかかわらず 20 人もの人がいるという異常事態です。。。現状で動作している班は、超 ksk 班、喰いタン班、C# 班です。なんか例年の傾向では 3 班動けば豊作だそうで・・・、実際打ちの班の記録も去年の最速班の記録を抜いてますから (・・・むしろ去年の記録がひどかったみたいですが)&lt;/p&gt;
&lt;p&gt;とりあえず、明日のプレゼンテーションに備えて、みんな最終調整をしている中、われわれ C# 班はベスト コンディションでプレゼンに望むという作戦に出るので、全員帰宅です(笑) では僕も帰ります、おやすみなさい&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-1746203471633641758?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/1746203471633641758/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2010/03/blog-post_15.html#comment-form' title='1 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/1746203471633641758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/1746203471633641758'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2010/03/blog-post_15.html' title='最後の追い込み'/><author><name>Yuto Takei</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-E0fcdUk3Shw/TetNUD5agpI/AAAAAAAAA0Q/5UazaC4oAeQ/s220/254193_1943555760818_1600221779_1962741_2739513_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-9066109029530751742</id><published>2010-03-14T23:55:00.001+09:00</published><updated>2010-03-15T16:27:05.684+09:00</updated><title type='text'>うごいたー</title><content type='html'>&lt;p&gt;えーっと生存報告です。あけましておめでとうございます(笑)&lt;/p&gt;
&lt;h1&gt;C# 班、実機で動きました！&lt;br /&gt;
これで単位がくる！&lt;/h1&gt;
&lt;p&gt;失礼しました・・・、また別のポストで報告します。明後日が発表会ですしね。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-9066109029530751742?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/9066109029530751742/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2010/03/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/9066109029530751742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/9066109029530751742'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2010/03/blog-post.html' title='うごいたー'/><author><name>Yuto Takei</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-E0fcdUk3Shw/TetNUD5agpI/AAAAAAAAA0Q/5UazaC4oAeQ/s220/254193_1943555760818_1600221779_1962741_2739513_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-8358711002937701825</id><published>2009-12-13T10:38:00.016+09:00</published><updated>2009-12-14T14:29:08.922+09:00</updated><title type='text'>麻雀大会ダイジェスト</title><content type='html'>&lt;p&gt;こんにちは。はじめまして。Team 喰いタンの小林です。&lt;/p&gt;
&lt;p&gt;&lt;a href="http://ja.wikipedia.org/wiki/%E6%96%AD%E3%83%A4%E3%82%AA%E4%B9%9D#.E3.82.AF.E3.82.A4.E3.82.BF.E3.83.B3.E3.81.AE.E3.81.82.E3.82.8A.E3.81.AA.E3.81.97" target="_blank"&gt;喰いタン&lt;/a&gt;というのは麻雀用語の 1 つなのですが、その名が示すように Team 喰いタンのメンバは皆、麻雀が大好きです。実は、班結成時は、僕だけ麻雀ができなかったのですが、僕もメンバに教えてもらって少し打てるようになりました。僕は Team 喰いタンのコンパイラ担当なのですが、コンパイラ担当の仕事に関しては竹井君がちゃんとした記事を書いてくれていることですし、&lt;a href="http://cpuexp.blogspot.com/2009/12/blog-post.html"&gt;先日行われた麻雀大会&lt;/a&gt;について、大会の得点の推移を表した下のグラフに添ってダイジェストをお送りしたいと思います。&lt;/p&gt;
&lt;p align="center"&gt;&lt;img src="http://www.yutopio.net/img/091213_mahjong.png" width="640" height="480" /&gt;&lt;/p&gt;
&lt;p&gt;参加したのは、Team C#、Team 喰いタン、Team ksk、モン班の 4 班です。Team ksk は以前の記事にある宣言通り、班の存亡を懸けて必死で戦いました。14:30、戦いの火蓋が切って落とされました。昼間から何やっているんでしょうね。&lt;/p&gt;

&lt;p&gt;&lt;div style="font-size: 24pt; font-weight: bold; float: left; margin-right: 10px; margin-bottom: 5px"&gt;1&lt;sup&gt;st&lt;/sup&gt;&lt;/div&gt;
先峰戦です。僕 (小林) や竹井くんが打った&lt;a href="http://ja.wikipedia.org/wiki/%E9%BA%BB%E9%9B%80%E3%81%AE%E3%83%AB%E3%83%BC%E3%83%AB#.E5.8D.8A.E8.8D.98" target="_blank"&gt;半荘&lt;/a&gt;です。この半荘は、麻雀を始めたばかりの 4 人で行われたため、とても長いものとなりました。初っ端の局から、初めて麻雀を打つ Team C# の竹井君が 12000 点を&lt;a href="http://ja.wikipedia.org/wiki/%E5%92%8C%E4%BA%86" target="_blank"&gt;和了&lt;/a&gt;り、場が大きく盛り上がりました。さて、この半荘、僕がバカづきして、 Team 喰いタンの点数が鰻昇りしています。僕は初心者で下手なのですが、親をしている時に 6 &lt;a href="http://ja.wikipedia.org/wiki/%E9%80%A3%E8%8D%98" target="_blank"&gt;連荘&lt;/a&gt;して、その途中で&lt;a href="http://ja.wikipedia.org/wiki/%E7%AB%8B%E7%9B%B4" target="_blank"&gt;リーチ&lt;/a&gt;に&lt;a href="http://ja.wikipedia.org/wiki/%E3%83%89%E3%83%A9_(%E9%BA%BB%E9%9B%80)" target="_blank"&gt;ドラ&lt;/a&gt;が 7 つも乗る (親倍) など高得点を得、東場 2 局だけで 52500 点を稼ぎました！ 更にこの時、竹井君と僕の &lt;a href="http://ja.wikipedia.org/wiki/%E5%92%8C%E4%BA%86#.E4.BA.8C.E5.AE.B6.E5.92.8C" target="_blank"&gt;W ロン&lt;/a&gt;となったため、&lt;a href="http://ja.wikipedia.org/wiki/%E5%92%8C%E4%BA%86#.E6.94.BE.E9.8A.83" target="_blank"&gt;振り込ん&lt;/a&gt;でしまった Team ksk は大打撃を受けてしまいました。この時 Team ksk の代表として打っていた hota さんは、この時のショックから抵抗力を落としてしまい、ついにはインフルエンザにかかってしまいました。ごめんなさい……&lt;/p&gt;
&lt;p&gt;Team ksk、その後がんばったのですが、先峰戦から 35600 点を失い早くも解体の危機です！ Team 喰いタンはその後も振り込むことなく、高得点を維持し続けました。最終的には &lt;nobr&gt;+48600&lt;/nobr&gt; 点でした。いやはや。僕、その前に打った時は&lt;a href="http://ja.wikipedia.org/wiki/%E9%BA%BB%E9%9B%80%E3%81%AE%E7%82%B9#.E7.84.BC.E3.81.8D.E9.B3.A5" target="_blank"&gt;焼き鳥&lt;/a&gt;だったんですけどね。Team C# も、良い調子のまま先峰戦を終えました。 &lt;nobr&gt;+17800&lt;/nobr&gt; 点でした。モン班は、なかなか流れに乗れず、不調でした。残念。 &lt;nobr&gt;-30800&lt;/nobr&gt; 点となってしまいました。&lt;/p&gt;
&lt;p&gt;初戦から大荒れの模様です。&lt;/p&gt;

&lt;p&gt;&lt;div style="font-size: 24pt; font-weight: bold; float: left; margin-right: 10px; margin-bottom: 5px"&gt;2&lt;sup&gt;nd&lt;/sup&gt;&lt;/div&gt;
次峰戦です。&lt;a href="http://cpuexp.blogspot.com/2009/10/blog-post_20.html"&gt;秋葉君&lt;/a&gt;の活躍 (&lt;nobr&gt;+11600&lt;/nobr&gt; 点) で Team ksk は少し持ち直しました。Team C# は少し点を落としたものの、安定しています。 &lt;nobr&gt;-3800&lt;/nobr&gt; 点でした。モン班、 1 度しか振り込んでいないのですが、和了ることができず、 &lt;nobr&gt;-21000&lt;/nobr&gt; 点でした。どうも調子が出ません。Team 喰いタンは、途中まであまり点数が芳しくなかったのですが、南場で大きく稼ぎ、最終的に &lt;nobr&gt;+13200&lt;/nobr&gt; 点と、この半荘で 1 位になりました。最後は&lt;a href="http://ja.wikipedia.org/wiki/%E6%B5%B7%E5%BA%95_(%E9%BA%BB%E9%9B%80)" target="_blank"&gt;海底&lt;/a&gt;で&lt;a href="http://ja.wikipedia.org/wiki/%E6%BA%80%E8%B2%AB#.E7.BF.BB.E6.95.B0.E3.81.AE.E8.A8.88.E7.AE.97" target="_blank"&gt;満貫&lt;/a&gt;を和了ってかっこ良く決めてくれました。

&lt;p&gt;&lt;div style="font-size: 24pt; font-weight: bold; float: left; margin-right: 10px; margin-bottom: 5px"&gt;3&lt;sup&gt;rd&lt;/sup&gt;&lt;/div&gt;
中堅戦その 1 です。Team ksk は、少し上下しつつも &lt;nobr&gt;+2500&lt;/nobr&gt; 点を獲得しました。この半荘では、Team 喰いタンの点数がドラマティックな動きをしています。東場終了時にはなんと &lt;nobr&gt;-28700&lt;/nobr&gt; 点と大きく落ち込んでいるのですが、なんと&lt;a href="http://ja.wikipedia.org/wiki/%E5%9B%9B%E6%9A%97%E5%88%BB" target="_blank"&gt;四暗刻&lt;/a&gt;を&lt;a href="http://ja.wikipedia.org/wiki/%E6%91%B8%E6%89%93#.E8.87.AA.E6.91.B8" target="_blank"&gt;ツモ&lt;/a&gt;！ 32300 点を獲得し、一気に得点がプラスに。その後も 18000 点を和了った直後に 13300 点の直撃を受けるなど、激しい麻雀を見せてくれました。最終的に、 &lt;nobr&gt;+13200&lt;/nobr&gt; 点と、1 位に躍り出ました。&lt;/p&gt;
&lt;p&gt;Team 喰いタンは、点数が落ち込んでいる時は一瞬 Team C# に抜かされてしまっています。Team C# は、親をしている時に&lt;a href="http://ja.wikipedia.org/wiki/%E5%BD%B9%E6%BA%80%E8%B2%AB" target="_blank"&gt;役満&lt;/a&gt;をツモられるなど大きな出費がありながら最終的には &lt;nobr&gt;+4100&lt;/nobr&gt; 点です。四暗刻が出るまでは &lt;nobr&gt;+27500&lt;/nobr&gt; 点と堂々の 1 位だったので悔やまれます。麻雀って先が読めませんね。モン班、やはり 1 度も振り込んでいないのに &lt;nobr&gt;-19800&lt;/nobr&gt; 点です。ツキがなかなか来ません。&lt;/p&gt;

&lt;p&gt;&lt;div style="font-size: 24pt; font-weight: bold; float: left; margin-right: 10px; margin-bottom: 5px"&gt;4&lt;sup&gt;th&lt;/sup&gt;&lt;/div&gt;
中堅戦その 2 です。班の存続を懸けて戦っていた Team ksk がまさかの&lt;a href="http://ja.wikipedia.org/wiki/%E9%BA%BB%E9%9B%80%E3%81%AE%E5%8F%8D%E5%89%87%E8%A1%8C%E7%82%BA#.E7.BD.B0.E7.AC.A6" target="_blank"&gt;チョンボ&lt;/a&gt; (ノーテンリーチ) で、8000 点を失っています。結局、この半荘で &lt;nobr&gt;-14900&lt;/nobr&gt; 点です。他の班は皆プラスでした。調子の悪かったモン班ですが、この半荘は &lt;nobr&gt;+2200&lt;/nobr&gt; 点でした。Team C# は、花元君が最後に 9000 点を和了り、 &lt;nobr&gt;+5300&lt;/nobr&gt; 点。Team 喰いタンは、1 度も振り込まない安定した打ち回しで、 &lt;nobr&gt;+7400&lt;/nobr&gt; 点でした。&lt;/p&gt;
&lt;p&gt;この辺でみんなで食堂に行って休憩です。食べ終わって戻ってきたら 19:30 になっていました。&lt;/p&gt;

&lt;p&gt;&lt;div style="font-size: 24pt; font-weight: bold; float: left; margin-right: 10px; margin-bottom: 5px"&gt;5&lt;sup&gt;th&lt;/sup&gt;&lt;/div&gt;
副将戦です。食堂でゲンを担いでカツ丼を食べていた Team ksk の打ち手が素晴らしい活躍を見せてくれました。失点を抑えつつ高得点の役を和了り、 &lt;nobr&gt;+22500&lt;/nobr&gt; 点を獲得。Team C# は得点が上下しましたが、 &lt;nobr&gt;+3200&lt;/nobr&gt; 点でした。この班は全体的に安定していますね。今まで皆半荘で 1 位となっていた Team 喰いタンは、最初の局で &lt;nobr&gt;+13000&lt;/nobr&gt; 点を和了って良いスタートを切ったと思いきや、失点が重なり、 &lt;nobr&gt;-13400&lt;/nobr&gt; 点と 4 位になってしまいました。モン班、最初の局で 12000 点を失ったのが響き、その後は振り込みませんでしたが &lt;nobr&gt;-12300&lt;/nobr&gt; 点でした。残念。&lt;/p&gt;

&lt;p&gt;&lt;div style="font-size: 24pt; font-weight: bold; float: left; margin-right: 10px; margin-bottom: 5px"&gt;6&lt;sup&gt;th&lt;/sup&gt;&lt;/div&gt;
大将戦です。この半荘が最後となりました。今まで不調だったモン班が本気を出しました！ 振り込むことなく、5000 点以上を和了りまくり、最終局には倍満で 16600 点を獲得です！ 合計で &lt;nobr&gt;+31000&lt;/nobr&gt; 点と、輝いていました。Team ksk は、1 度しか和了れず、 &lt;nobr&gt;-12900&lt;/nobr&gt; 点となってしまいました。チョンボがまだ響いていたのでしょうか。Team C# は、最初の方の落ち込みを南場の頑張りでカバーし、 &lt;nobr&gt;+3200&lt;/nobr&gt; 点でした。Team 喰いタンからは、麻雀好きのこの班の中でも別格の実力を持つ打ち手が打ったのですが、どうも今回はひどくツキが無かったようで、東場で親満を和了るも、 &lt;nobr&gt;-23300&lt;/nobr&gt; 点でした。本当に麻雀は運の要素も大きいゲームですね。もう 1 半荘もしたら、Team 喰いタンは Team C# に追い抜かされていたかも知れませんでした。危ない危ない。&lt;/p&gt;
&lt;p&gt;大将戦が終わったころには、22:30 になっていました。&lt;/p&gt;

&lt;hr align="left" style="width: 100px" /&gt;

&lt;p&gt;実験開始から早くも 2 週間でレイトレを動作させるという快挙を成し遂げた Team ksk は 3 位となり、解体することになりました。Team ksk の解体は Twitter など各地で話題になり、「まさかあの Team ksk が」「Team ksk はとても一翻だった」「そんなことよりもっかい麻雀しようぜ」など、その解体を惜しむ声が上がりました。&lt;/p&gt;
&lt;p&gt;こうして、長い戦いの幕が下りました。&lt;/p&gt;
&lt;p&gt;遊んでばかりいないで、 CPU 実験もしっかり頑張っていきたいと思います。それでは！&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-8358711002937701825?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/8358711002937701825/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/12/blog-post_13.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/8358711002937701825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/8358711002937701825'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/12/blog-post_13.html' title='麻雀大会ダイジェスト'/><author><name>nnnuu</name><uri>http://www.blogger.com/profile/17024684704594426363</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-3312922135461261945</id><published>2009-12-10T23:50:00.000+09:00</published><updated>2010-06-04T11:00:13.663+09:00</updated><title type='text'>連載企画 CPU 実験教室 実践編 第 3 回 クロック モジュールの作り方</title><content type='html'>&lt;p&gt;今回は、クロック モジュールの書き方のお話です。クロック モジュール自体の書き方は旧基板とそんなに変わりませんが、まだ手で回路につないでいる人も多いでしょう。今回はそんな手間を大幅に省いてくれる Core Generator のお話です。&lt;/p&gt;

&lt;table style="margin-bottom: 20px"&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src="http://www.yutopio.net/img/091204_lilfes.png" alt="りるふぇすたん" width="100" height="100" /&gt;&lt;/td&gt;
    &lt;td style="font-weight: bold; color: deeppink"&gt;今回はようやくまともな話が聞けそうね&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;h2 style="margin-bottom: 0px"&gt;クロック周りの UCF&lt;/h2&gt;
&lt;pre style="margin-top: 0px; margin-left: 50px; margin-right: 50px"&gt;&lt;span style="color: Blue"&gt;CONFIG&lt;/span&gt; &lt;span style="color: Blue"&gt;PART&lt;/span&gt;=5VLX50TFF1136-1;

&lt;span style="color: Blue"&gt;NET&lt;/span&gt; CLK_48M  &lt;span style="color: Blue"&gt;LOC&lt;/span&gt;=H17 | &lt;span style="color: Blue"&gt;IOSTANDARD&lt;/span&gt;=&lt;span style="color: Fuchsia"&gt;LVTTL&lt;/span&gt;;  &lt;span style="color:green"&gt;# CLK48M&lt;/span&gt;
&lt;span style="color: Blue"&gt;NET&lt;/span&gt; CLK_66M  &lt;span style="color: Blue"&gt;LOC&lt;/span&gt;=J16 | &lt;span style="color: Blue"&gt;IOSTANDARD&lt;/span&gt;=&lt;span style="color: Fuchsia"&gt;LVTTL&lt;/span&gt;;  &lt;span style="color:green"&gt;# MCLK1&lt;/span&gt;
&lt;span style="color: Blue"&gt;NET&lt;/span&gt; CLK_RST  &lt;span style="color: Blue"&gt;LOC&lt;/span&gt;=H18 | &lt;span style="color: Blue"&gt;IOSTANDARD&lt;/span&gt;=&lt;span style="color: Fuchsia"&gt;LVTTL&lt;/span&gt;;  &lt;span style="color:green"&gt;# XRST&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;クロックは適当に 66MHz と 48MHz の信号を取り出してやれば OK です。リセットボタンは上の CLK_RST と書いてあるやつで、押されていない状態で 1、押されている状態で 0 です (low-active)。&lt;/p&gt;

&lt;h2 style="margin-bottom: 0px"&gt;クロック モジュールの基本&lt;/h2&gt;
&lt;p style="margin-top: 0px"&gt;基本は、上の UCF で外部のチップから IO を通して入れた生のクロック信号を、一度 ibufg を通して、DCM に入れ、適当にループを形成して、必要な信号を bufg を通して、実際のクロックとして使用します。今まではこれを手で書いていたわけですが、Core Generator を使うとこれをまとめて簡単に作ってくれるのです。&lt;/p&gt;

&lt;h2 style="margin-bottom: 0px"&gt;Core Generator の使い方&lt;/h2&gt;
&lt;ol style="margin-top: 0px"&gt;
  &lt;li&gt;プロジェクトに新しいファイルを追加しようとします
    &lt;p align="center"&gt;&lt;img src="http://www.yutopio.net/img/091210_coregen0.png" alt="新規ファイルの追加" /&gt;&lt;/p&gt;&lt;/li&gt;
  &lt;li&gt;IP (CORE Generator &amp;amp; Architecture Wizard) を選択します
    &lt;p align="center"&gt;&lt;img src="http://www.yutopio.net/img/091210_coregen1.png" alt="ソース タイプを選択" /&gt;&lt;/p&gt;&lt;/li&gt;
  &lt;li&gt;必要なモジュールを選びます
    &lt;p align="center"&gt;&lt;img src="http://www.yutopio.net/img/091210_coregen2.png" alt="モジュールを選択" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.yutopio.net/img/091210_coregen3.png" alt="確認画面" /&gt;&lt;/p&gt;&lt;/li&gt;
  &lt;li&gt;追加されたモジュールをダブル クリックして開きます
    &lt;p align="center"&gt;&lt;img src="http://www.yutopio.net/img/091210_coregen4.png" alt="モジュールを開く" /&gt;&lt;/p&gt;&lt;/li&gt;
  &lt;li&gt;編集します
    &lt;p align="center"&gt;&lt;img src="http://www.yutopio.net/img/091210_coregen5.png" alt="編集画面" /&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;クロックの逓倍については、CLKFX 系にチェックを入れないと編集する画面が出ないので注意してください&lt;/p&gt;

&lt;table style="margin-bottom: 20px"&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src="http://www.yutopio.net/img/091204_is2k9.png" alt="あいずたん" width="100" height="100" /&gt;&lt;/td&gt;
    &lt;td style="font-weight: bold; color: blue"&gt;Core Generator で作ったモジュールは、[Processes] ペインにある [View HDL Instantiation Template] でインターフェース、[View HDL Source] でシミュレーション用ソース コードが見れるよっ！&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;h2 style="margin-bottom: 0px"&gt;リセット ボタン・LOCK 信号について&lt;/h2&gt;
&lt;h3 style="margin-bottom: 0px"&gt;LOCK について&lt;/h3&gt;
&lt;p style="margin-top: 0px"&gt;DCM は、クロックを入れ始めた始めのほうはまだ信号が不安定です。クロックの周期が安定しているとは限りません。そこで、LOCK という信号を出して、LOCK=1 になったら使用してよいというような感じで作られています。LOCK をリセット信号にあわせて出力するとよいでしょう。&lt;/p&gt;

&lt;h3 style="margin-bottom: 0px"&gt;リセット信号を混ぜたクロック モジュールの書き方&lt;/h3&gt;
&lt;p style="margin-top: 0px"&gt;リセット信号と LOCK 信号をかませることを想定して、以下のようにさっき生成したモジュールを使用すればいいことが分かります。roc は相変わらず使えます。&lt;/p&gt;

&lt;pre style="margin-left: 50px; margin-right: 50px; overflow: scroll"&gt;&lt;code&gt;&lt;span style="color: Blue"&gt;library&lt;/span&gt; &lt;span style="color: Fuchsia"&gt;ieee&lt;/span&gt;;
&lt;span style="color: Blue"&gt;use&lt;/span&gt; &lt;span style="color: Fuchsia"&gt;ieee&lt;/span&gt;.&lt;span style="color: Fuchsia"&gt;std_logic_1164&lt;/span&gt;.&lt;span style="color: Blue"&gt;all&lt;/span&gt;;
&lt;span style="color: Blue"&gt;library&lt;/span&gt; &lt;span style="color: Fuchsia"&gt;unisim&lt;/span&gt;;
&lt;span style="color: Blue"&gt;use&lt;/span&gt; &lt;span style="color: Fuchsia"&gt;unisim&lt;/span&gt;.&lt;span style="color: Fuchsia"&gt;vcomponents&lt;/span&gt;.&lt;span style="color: Blue"&gt;all&lt;/span&gt;;

&lt;span style="color: Blue"&gt;entity&lt;/span&gt; clockgenerator &lt;span style="color: Blue"&gt;is&lt;/span&gt;
    &lt;span style="color: Blue"&gt;port&lt;/span&gt; (
        globalclk       : &lt;span style="color: Blue"&gt;in&lt;/span&gt;  &lt;span style="color: Fuchsia"&gt;std_logic&lt;/span&gt;;    &lt;span style="color:green"&gt;-- 生の 66MHz グローバル クロックを入れる&lt;/span&gt;
        globalrst       : &lt;span style="color: Blue"&gt;in&lt;/span&gt;  &lt;span style="color: Fuchsia"&gt;std_logic&lt;/span&gt;;    &lt;span style="color:green"&gt;-- リセット ボタンの信号を入れる&lt;/span&gt;
        clock66         : &lt;span style="color: Blue"&gt;out&lt;/span&gt; &lt;span style="color: Fuchsia"&gt;std_logic&lt;/span&gt;;
        clock133        : &lt;span style="color: Blue"&gt;out&lt;/span&gt; &lt;span style="color: Fuchsia"&gt;std_logic&lt;/span&gt;;
        clock133_180    : &lt;span style="color: Blue"&gt;out&lt;/span&gt; &lt;span style="color: Fuchsia"&gt;std_logic&lt;/span&gt;;
        reset           : &lt;span style="color: Blue"&gt;out&lt;/span&gt; &lt;span style="color: Fuchsia"&gt;std_logic&lt;/span&gt;);   &lt;span style="color:green"&gt;-- いろいろまとめてリセット信号として出す。&lt;/span&gt;
&lt;span style="color: Blue"&gt;end&lt;/span&gt; clockgenerator;

&lt;span style="color: Blue"&gt;architecture&lt;/span&gt; behavioral &lt;span style="color: Blue"&gt;of&lt;/span&gt; clockgenerator &lt;span style="color: Blue"&gt;is&lt;/span&gt;
    &lt;span style="color: Blue"&gt;component&lt;/span&gt; clockgen                      &lt;span style="color:green"&gt;-- Core Generatorで生成したもの&lt;/span&gt;
        &lt;span style="color: Blue"&gt;port&lt;/span&gt; (
            clkin_in        : &lt;span style="color: Blue"&gt;in&lt;/span&gt; &lt;span style="color: Fuchsia"&gt;std_logic&lt;/span&gt;;
            rst_in          : &lt;span style="color: Blue"&gt;in&lt;/span&gt; &lt;span style="color: Fuchsia"&gt;std_logic&lt;/span&gt;;
            clkin_ibufg_out : &lt;span style="color: Blue"&gt;out&lt;/span&gt; &lt;span style="color: Fuchsia"&gt;std_logic&lt;/span&gt;;
            clk0_out        : &lt;span style="color: Blue"&gt;out&lt;/span&gt; &lt;span style="color: Fuchsia"&gt;std_logic&lt;/span&gt;;
            clk2x_out       : &lt;span style="color: Blue"&gt;out&lt;/span&gt; &lt;span style="color: Fuchsia"&gt;std_logic&lt;/span&gt;;
            clk2x180_out    : &lt;span style="color: Blue"&gt;out&lt;/span&gt; &lt;span style="color: Fuchsia"&gt;std_logic&lt;/span&gt;;
            locked_out      : &lt;span style="color: Blue"&gt;out&lt;/span&gt; &lt;span style="color: Fuchsia"&gt;std_logic&lt;/span&gt;);
    &lt;span style="color: Blue"&gt;end&lt;/span&gt; &lt;span style="color: Blue"&gt;component&lt;/span&gt;;

    &lt;span style="color: Blue"&gt;signal&lt;/span&gt; rst      : &lt;span style="color: Fuchsia"&gt;std_logic&lt;/span&gt;;
    &lt;span style="color: Blue"&gt;signal&lt;/span&gt; rocrst   : &lt;span style="color: Fuchsia"&gt;std_logic&lt;/span&gt;;
    &lt;span style="color: Blue"&gt;signal&lt;/span&gt; lock     : &lt;span style="color: Fuchsia"&gt;std_logic&lt;/span&gt;;
&lt;span style="color: Blue"&gt;begin&lt;/span&gt;
    roc_inst : roc &lt;span style="color: Blue"&gt;port&lt;/span&gt; &lt;span style="color: Blue"&gt;map&lt;/span&gt; (o =&amp;gt; rocrst);  &lt;span style="color:green"&gt;-- roc は新基板でもそのまま使える。&lt;/span&gt;
    rst &amp;lt;= rocrst &lt;span style="color: Blue"&gt;or&lt;/span&gt; (&lt;span style="color: Blue"&gt;not&lt;/span&gt; globalrst);       &lt;span style="color:green"&gt;-- ここでは、リセット信号で DCM ごと初期化しているが、DCM は初期化しないのも手&lt;/span&gt;
    reset &amp;lt;= rst &lt;span style="color: Blue"&gt;or&lt;/span&gt; (&lt;span style="color: Blue"&gt;not&lt;/span&gt; lock);
    inst_clockgen : clockgen &lt;span style="color: Blue"&gt;port&lt;/span&gt; &lt;span style="color: Blue"&gt;map&lt;/span&gt;(
        clkin_in        =&amp;gt; globalclk,
        rst_in          =&amp;gt; rst,
        clkin_ibufg_out =&amp;gt; &lt;span style="color: Blue"&gt;open&lt;/span&gt;,            &lt;span style="color:green"&gt;-- 明示的に open 使っても無駄に警告されます。ise バカだろ&lt;/span&gt;
        clk0_out        =&amp;gt; clock66,
        clk2x_out       =&amp;gt; clock133,
        clk2x180_out    =&amp;gt; clock133_180,
        locked_out      =&amp;gt; lock);
&lt;span style="color: Blue"&gt;end&lt;/span&gt; behavioral;&lt;/code&gt;&lt;/pre&gt;

&lt;h2 style="margin-bottom: 0px"&gt;最後に&lt;/h2&gt;
&lt;p style="margin-top: 0px"&gt;もし何か意見・質問ございましたら下のコメント欄にお寄せください。もしコメントが寄せられたら今後の励みになるので是非ください。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-3312922135461261945?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/3312922135461261945/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/12/cpu-3_10.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/3312922135461261945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/3312922135461261945'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/12/cpu-3_10.html' title='連載企画 CPU 実験教室 実践編 第 3 回 クロック モジュールの作り方'/><author><name>xyx</name><uri>http://www.blogger.com/profile/12664580622877928008</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-7666599849981132590</id><published>2009-12-09T22:03:00.003+09:00</published><updated>2009-12-14T14:26:59.707+09:00</updated><title type='text'>地下 大掃除</title><content type='html'>&lt;p&gt;誇りだけでなく埃にまみれた竹井です。先日は地下の大大大掃除大会がありました。&lt;/p&gt;
&lt;pre style="background: #eeeeee; padding: 10px; margin-left: 50px; margin-right: 50px"&gt;&lt;span style="font-weight: bold"&gt;Date: Fri, Dec 4, 2009 at 3:27 PM
Subject: 地下の大掃除12/8&lt;/span&gt;

3年生の皆様　ｃｃ：先生方、4年生

11/20に実施された産業医の7号館巡視の折、地下の015号室前廊下及びリフレッシュルーム(学生 ロッカーの前）の整理整頓を
厳しく指摘されました。

避難路に当たっていますので、安全のために大掃除を実施いたします。

大型不要物品の回収日程とあわせ、12月8日(火）プロッセサ実験終了後に全員で行ないま すので、ご協力よろしくお願いします。

廊下の本棚やロッカーの上においてある物はすべて破棄しますので、必要な物は前日まで に回収して下さい。

情報科学科事務室&lt;/pre&gt;
&lt;p style="font-size: 8pt"&gt;↑ プロッセサ！？ なんだろうこの誤植・・・(笑)&lt;/p&gt;
&lt;p&gt;ことの発端は先月。われわれ理情を含む工学系では産業医巡視というイベントが年に 1 度あるのですが、先月末にそのお偉い先生いらっしゃいまして、僕たちのトーキョー アンダーグラウンドを視察していきました。その結果、様々な指摘を受けまして・・・&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;ゴミはゴミ箱に捨てましょう。&lt;/li&gt;
  &lt;li&gt;床の上にモノを置くのはやめましょう。&lt;/li&gt;
  &lt;li&gt;非常口付近に燃えやすいものを置かないようにしましょう。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;などなど。まぁ小学生でも守れるような低レベルな注意もされたんですが、一番大きな問題になったのは最後のヤツ。ロッカーがおいてあるリフレッシュ ルームという名の一角が、実はカオスでして・・・&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091209_refreshroom.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091209_refreshroom.jpg" alt="ロッカー スペース" width="225" height="300" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;まあこんな感じで、大量の文化遺産もといマンガたちが非常口横の棚に保管されていました。しかも実は、掃除のお達しがくるまでは私物が床の上に散らかってて、文字通り足の踏み場がない状態だったんですよね。これは怒られますよ。他にもロッカーの上とか廊下とかこんな感じでひどい・・・&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091209_locker.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091209_locker.jpg" alt="ロッカーの上" width="200" height="150" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.yutopio.net/img/091209_hallway.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091209_hallway.jpg" alt="廊下" width="200" height="150" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;極めつけはこれ。なぜ非常口の手前にこんな巨大なオブジェ、じゃなかった &lt;a href="http://jp.sun.com/products/servers/midrange/sunfire4810/" target="_blank"&gt;Sun Fire 4810&lt;/a&gt; が落ちてるんだか。&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091209_sunfire.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091209_sunfire.jpg" alt="Sun Fire 4810" width="225" height="300" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;というわけで、これから何枚かにわたって、地下大掃除の様子をお送りします。&lt;/p&gt;
&lt;table align="center"&gt;
  &lt;tr&gt;
    &lt;td width="200"&gt;&lt;a href="http://www.yutopio.net/img/091209_room.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091209_room.jpg" width="200" height="150" /&gt;&lt;/a&gt;&lt;/td&gt;
    &lt;td width="10" rowspan="6" /&gt;
    &lt;td width="200"&gt;掃除する前の部屋は&lt;br /&gt;こんな感じだった。&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="text-align: right"&gt;こんな大量のマンガが&lt;br /&gt;非常口のすぐ横に・・・&lt;br /&gt;まさに地下ライブラリ&lt;/td&gt;
    &lt;td&gt;&lt;a href="http://www.yutopio.net/img/091209_comic.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091209_comic.jpg" width="200" height="150" /&gt;&lt;/a&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;a href="http://www.yutopio.net/img/091209_nuclear.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091209_nuclear.jpg" width="200" height="150" /&gt;&lt;/a&gt;&lt;/td&gt;
    &lt;td&gt;でも思う。&lt;br /&gt;非常口の外が放射線管理区域で、&lt;br /&gt;そんで化学棟に挟まれてるとか、&lt;br /&gt;助ける気ないよね、たぶん(笑)&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="text-align: right"&gt;やっと出てきた技術文書が&lt;br /&gt;10 年前のドキュメント・・・&lt;br /&gt;役立たないよね、ぜったい。&lt;/td&gt;
    &lt;td&gt;&lt;a href="http://www.yutopio.net/img/091209_vhdl.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091209_vhdl.jpg" width="200" height="150" /&gt;&lt;/a&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;a href="http://www.yutopio.net/img/091209_machines.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091209_machines.jpg" width="200" height="150" /&gt;&lt;/a&gt;&lt;/td&gt;
    &lt;td&gt;もう何年も昔に&lt;br /&gt;使われなくなった何か。&lt;br /&gt;当然ながら廃棄対象&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="text-align: right"&gt;そしてマンガ移動完了&lt;br /&gt;どこぞの通販会社の倉庫的な(笑)&lt;br /&gt;chikazon.com ??&lt;/td&gt;
    &lt;td&gt;&lt;a href="http://www.yutopio.net/img/091209_moved.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091209_moved.jpg" width="200" height="150" /&gt;&lt;/a&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;結局、掃除は実験終了後、事務室の方々や助教の先生、うちらの学年が総出になって行って、午後 2 時から 5 時くらいまでかかったのでした。&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091209_hallwayafter.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091209_hallwayafter.jpg" width="150" height="200" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.yutopio.net/img/091209_refresh.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091209_refresh.jpg" width="150" height="200" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.yutopio.net/img/091209_wiringspace.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091209_wiringspace.jpg" width="150" height="200" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;なんと廊下が健全な状態に！ 棚がなくなった分、本当に広くなって気もちいい。宙返りでも何でも出来そう(笑) あと、足の踏み場がない上に、非常に燃えやすかった非常口も健全化。そして一番右は、配線スペース。実はさっきのディスプレイなどのせいで開かずの間だったところを開けてみたら、こうなってたんですよ。なるほど、地下室のネットワークや電源もここからディストリビューションされてたのか。ちなみに、間違って僕が全スイッチング ハブにつながってる主電源を抜いたのはご愛敬。&lt;/p&gt;
&lt;p&gt;ふぅ、そういうわけで、地下環境も少しはマシになったんでしょうかね。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-7666599849981132590?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/7666599849981132590/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/12/blog-post_10.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/7666599849981132590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/7666599849981132590'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/12/blog-post_10.html' title='地下 大掃除'/><author><name>Yuto Takei</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-E0fcdUk3Shw/TetNUD5agpI/AAAAAAAAA0Q/5UazaC4oAeQ/s220/254193_1943555760818_1600221779_1962741_2739513_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-2783942545440889055</id><published>2009-12-08T11:50:00.006+09:00</published><updated>2009-12-09T01:02:07.130+09:00</updated><title type='text'>【事業仕分け】 team C# の竹井氏、新井氏らの「レジスタ、型付きになる必要があるのか」発言に憤慨</title><content type='html'>&lt;p&gt;team C# の CPU 刷新会議の 7 日の仕分け作業は、コンパイラ係に事実上の「ノー」を突きつけた。議論の方向性を決定づけたのは「（レジスタで）型付きを目指す理由は何か。（コンパイラによる）型検査ではだめなのか」という仕分け人の発言。結局、「&lt;a href="http://ja.wikipedia.org/wiki/CISC" target="_blank"&gt;CISC&lt;/a&gt; 立国日本」を否定しかねない結論が導かれ、team C# 幹部は「日本の型付きハード振興政策は終わった」と吐き捨てた。&lt;/p&gt;
&lt;p&gt;この日、口火を切ったのは新井シミュレータ係。その後も「一時的にハードで実装する意味はどれくらいあるか」（花元氏）「型付きだから良いわけではない」（岡原氏）「ハードで型付きになればコンパイラにも波及というが分野で違う」（金沢氏）などと、同調者が相次いだ。&lt;/p&gt;
&lt;p&gt;竹井氏側は「レジスタに型がないと、浮動小数点数でも整数比較をすることになる」と防戦したが、圧倒的な「型付きレジスタ不要論」を前に敗北。同チームの班長で音楽部合唱団 学生指揮者の竹井悠人（ゆうと）氏は「（型付きレジスタなしで）仮想スタック マシン立国はありえない」と憤慨していた。（花元）&lt;/p&gt;
&lt;p&gt;(出展: &lt;a href="http://sankei.jp.msn.com/politics/situation/091113/stt0911131914010-n1.htm" target="_blank"&gt;http://sankei.jp.msn.com/politics/situation/091113/stt0911131914010-n1.htm&lt;/a&gt;)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-2783942545440889055?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/2783942545440889055/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/12/team-c.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/2783942545440889055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/2783942545440889055'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/12/team-c.html' title='【事業仕分け】 team C# の竹井氏、新井氏らの「レジスタ、型付きになる必要があるのか」発言に憤慨'/><author><name>mogella</name><uri>http://www.blogger.com/profile/06339639468496927542</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-8913821406062548952</id><published>2009-12-07T16:32:00.006+09:00</published><updated>2009-12-07T17:29:14.682+09:00</updated><title type='text'>東大の環境</title><content type='html'>&lt;p&gt;こんにちは、お散歩してて綺麗な風景を見ると写真撮りたくなる竹井です。だんだん冬っぽくなってきましたね！&lt;/p&gt;
&lt;p&gt;今日はちこっとだけ、本郷キャンパスの最近の様子などを紹介します。例年だと 11 月末、つまり駒場祭くらいには銀杏かなり散ってるのですが、今年は梅雨明けが遅くて日照が少なかったのに加えて夏が涼しかったせいか、木々の葉の色づきがかなり遅かったみたいです。先週あたりまで、黄色い葉っぱと緑色の葉っぱがまざってて、まだまだカナ、って感じだったんですが、やっと今週あたりになってほぼ全部黄色くなりました。&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091207_ginkgo1.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091207_ginkgo1.jpg" width="150" height="200" alt="赤門のあたり" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.yutopio.net/img/091207_ginkgo2.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091207_ginkgo2.jpg" width="150" height="200" alt="福武ホールの前" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.yutopio.net/img/091207_ginkgo3.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091207_ginkgo3.jpg" width="150" height="200" alt="総合図書館前から工学部 1 号館の方向" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;紅葉って、葉っぱの付け根が秋になってくびれてきて、光合成によって出来た糖が&lt;a href="http://ja.wikipedia.org/wiki/%E7%B6%AD%E7%AE%A1%E6%9D%9F" target="_blank"&gt;維管束&lt;/a&gt;を通じて木の幹に渡ることがなくなり、結果として糖が葉にたまってくることによっておきるらしいです。だから逆に言うと、日照が短いと葉が黄色くなるのが遅いってことなんですかね、たぶん。&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091207_yasuda.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091207_yasuda.jpg" width="300" height="225" alt="安田講堂" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;これは&lt;a href="http://ja.wikipedia.org/wiki/%E5%AE%89%E7%94%B0%E8%AC%9B%E5%A0%82" target="_blank"&gt;安田講堂&lt;/a&gt;。&lt;a href="http://ja.wikipedia.org/wiki/%E6%9D%B1%E5%A4%A7%E7%B4%9B%E4%BA%89" target="_blank"&gt;東大紛争&lt;/a&gt;のときに、学生が屋上で徹底抗戦し、それが機動隊によって最終的に解放されたというのはすごく有名な話です。今では卒業式などをはじめとして、ちょくちょくイベントで使われていて、この間のホームカミングデーのときにも全体講演がここで開かれました。今日はなにやら&lt;a href="http://web-gakkai.org/" target="_blank"&gt;ウェブ学会シンポジウム&lt;/a&gt;とやらが開催されていたようです。&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091207_envteam.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091207_envteam.jpg" width="300" height="225" alt="環境整備チーム" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;最後に、東大の環境整備をしている方々を紹介しておきます。東大の施設部の下には、環境整備チームというものがあり、ここの方々が毎日、キャンパスの整備をしてくださっています。この間の雨でだいぶ散った銀杏の葉も、上の写真のように環境整備チームのウィンド ブレーカーを来た人たちがかき集めて掃除しています。実はこのスタッフには知的障害者の方々を採用していまして、初めて知ったとき東大としても障害者の雇用機会を積極的に増やしているという印象をもちました。やっぱり大学という施設はアカデミックな場所でありながら、社会として構成員が満足できるシステムの縮図を作ってるんでしょうかね。いつも、キャンパスを綺麗にしてくれて、ありがとうございます！&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-8913821406062548952?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/8913821406062548952/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/12/blog-post_7158.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/8913821406062548952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/8913821406062548952'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/12/blog-post_7158.html' title='東大の環境'/><author><name>Yuto Takei</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-E0fcdUk3Shw/TetNUD5agpI/AAAAAAAAA0Q/5UazaC4oAeQ/s220/254193_1943555760818_1600221779_1962741_2739513_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-2406118169569125846</id><published>2009-12-06T19:22:00.005+09:00</published><updated>2009-12-14T17:21:06.997+09:00</updated><title type='text'>連載企画 CPU 実験教室 実践編 第 2 回 新基板の動かし方</title><content type='html'>&lt;p&gt;ksk 班より xyx です。早速第 2 回目です。今日は新基板の動作のさせ方について説明していこうと思います。&lt;/p&gt;

&lt;table style="margin-bottom: 20px"&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src="http://www.yutopio.net/img/091204_lilfes.png" alt="りるふぇすたん" width="100" height="100" /&gt;&lt;/td&gt;
    &lt;td style="font-weight: bold; color: deeppink"&gt;とは言ってもどうせ今回もたいした内容じゃないんでしょ？&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;h2 style="margin-bottom: 0px"&gt;電源を供給する&lt;/h2&gt;
&lt;p style="margin-top: 0px"&gt;新基板は ATX 電源の 4pin ペリフェラル コネクタを刺すことで動作します。要するに、普通のデスクトップ PC に入っている電源の、4 つのピンが横一列に出ているピンを刺せば動くということですね。刺すとかなり抜けにくくなるという仕様なので、抜くときはがんばってください。&lt;/p&gt;
&lt;p&gt;といっても、そもそも普通の ATX 電源は、マザーボードに刺さっているかどうか検出するピンが 20/24pin の方にあって、刺さっていることが検出できないと電源装置が動作しません。旧基板ではこちらを刺していたので問題なく動いていたわけですが、新基板ではここに単独起動用として信号を送ってやらないといけません。&lt;/p&gt;
&lt;p&gt;ではどうすればいいかというと、やり方は簡単。「&lt;a href="http://www.google.co.jp/search?&amp;q=ATX+%E9%9B%BB%E6%BA%90+%E5%8D%98%E7%8B%AC%E8%B5%B7%E5%8B%95" target="_blank"&gt;ATX 電源 単独起動&lt;/a&gt;」とググってもらえばいいのですが、以下のように、緑のピンと適当な黒のピンを抵抗をつなげてショートさせてあげればいいのです。&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091206_atx20.jpg"&gt;&lt;img src="http://www.yutopio.net/img/091206_atx20.jpg" alt="ATX 電源の単独起動の方法" width="395" height="200"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Web では、抵抗をつながないというのが多いのですが、まあ、どうなんでしょうｗ。&lt;/p&gt;
&lt;p&gt;もし PCI-express を使おうなどというつわものが現れたら、PC から 4pin をつなげるだけで電力供給することができるようになっているんでしょうねｗ (でもどう見ても PC に基板が収まらないだろ JK)&lt;/p&gt;

&lt;h2 style="margin-bottom: 0px"&gt;プロジェクト ファイルを設定する&lt;/h2&gt;
&lt;p style="margin-top: 0px"&gt;前回言ったとおり、プロジェクトを作るとき、又はプロジェクトのプロパティで&lt;/p&gt;

&lt;table cellspacing="0" cellpadding="3" style="text-align: center"&gt;
  &lt;tr&gt;
    &lt;td class="t1" width="80"&gt;family&lt;/td&gt;
    &lt;td class="t2" width="100"&gt;Virtex-5&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class="t3"&gt;device&lt;/td&gt;
    &lt;td class="t4"&gt;XC5VLX50T&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class="t3"&gt;package&lt;/td&gt;
    &lt;td class="t4"&gt;FFG1136&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class="t3"&gt;speed&lt;/td&gt;
    &lt;td class="t4"&gt;-1&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;と指定してあげれば、OK です。&lt;/p&gt;

&lt;table style="margin-bottom: 20px"&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src="http://www.yutopio.net/img/091204_is2k9.png" alt="あいずたん" width="100" height="100" /&gt;&lt;/td&gt;
    &lt;td style="font-weight: bold; color: blue"&gt;ちなみに、FPGA が使える範囲が広がっているから、合成にやたらに時間がかかっちゃうよっ！&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;h2 style="margin-bottom: 0px"&gt;最後に&lt;/h2&gt;
&lt;p style="margin-top: 0px"&gt;もし何か意見・質問ございましたら下のコメント欄にお寄せください。特にあいずたんたちの性格に違和感を感じたら教えてくださいおねがいします＞＜&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-2406118169569125846?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/2406118169569125846/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/12/cpu-2_14.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/2406118169569125846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/2406118169569125846'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/12/cpu-2_14.html' title='連載企画 CPU 実験教室 実践編 第 2 回 新基板の動かし方'/><author><name>xyx</name><uri>http://www.blogger.com/profile/12664580622877928008</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-1039396510222758607</id><published>2009-12-04T19:03:00.003+09:00</published><updated>2009-12-07T16:31:01.787+09:00</updated><title type='text'>サイエンスカフェ @ 駒場</title><content type='html'>&lt;p&gt;&lt;a href="http://www.yutopio.net/img/091204_guidance_poster.pdf" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091204_poster.png" align="left" width="227" height="321" style="margin: 10px" /&gt;&lt;/a&gt;お久しぶりです、今日だけ理学部ジュニア TA の竹井です。実は今、駒場キャンパスの数理科学研究科棟に来ています。「&lt;a href="http://www.s.u-tokyo.ac.jp/event/guidance-cafe/" target="_blank"&gt;私が理学を選んだ理由&lt;/a&gt;」というイベントで、進学振り分け前の 1 年生や理学部に進学した 2 年生向けに、具体的に学科での様子を中の学生や教員が説明したり、理学の魅力を伝えるガイダンスがあったりします。僕自身は&lt;a href="http://olab.is.s.u-tokyo.ac.jp/~reiji/" target="_blank"&gt;須田先生&lt;/a&gt;と修士 1 年の方と一緒に、理学部 情報科学科からのブース説明要員として、訪れた学生にうちの学科のカリキュラムや講義内容、学生生活などを説明するという任務を与えられたのでした。&lt;p&gt;
&lt;p&gt;ちなみに、生協からコーヒーや紅茶をタンクで仕入れたり、ペットボトル入りのジュースや 8 種類ものケーキが用意されたり、かなりのサービスです(笑) まぁでも、それだけするくらいの価値があるイベントだということでしょうか。ちょっと 4 月の新歓時期に部活の説明をしたころを彷彿とさせます。&lt;/p&gt;
&lt;p&gt;イベント自体は、16 時ごろからスタートして、自主ゼミ以外のすべての授業が終わる 18 時から大講義室でメインのガイダンスが始まります。そして 19 時半にガイダンスが終わった後は、各ブースでの説明が 20 時半まであります。まぁとりあえず、午後 4 時ごろの開店前の様子↓&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091204_booth.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091204_booth.jpg" width="200" height="150" alt="情報科学科ブース" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.yutopio.net/img/091204_cake.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091204_cake.jpg" width="200" height="150" alt="ケーキいっぱい" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;そうはいっても、数理科学研究科棟といえば駒場キャンパスの一番はじっこ。1, 2 年生にはまったくもって用のない場所なので、かなり足が遠いのか、18 時前までほぼまったく人は来ませんでした。去年は食堂 2F でやっていたので、だいぶ人がいたみたいなんですが、今年はさすがに去年ほどの足は見込めない模様。でもやっぱり、18 時ごろからちゃんと人が来だして、大講義室はほぼ満杯になりましたよ。&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091204_guidance.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091204_guidance.jpg" width="200" height="150" alt="大講義室でのガイダンス" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;これが終わったら、戦場なんでしょうね・・・いっぱい学生がうちのブースに来るといいな♪&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-1039396510222758607?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/1039396510222758607/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/12/blog-post_07.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/1039396510222758607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/1039396510222758607'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/12/blog-post_07.html' title='サイエンスカフェ @ 駒場'/><author><name>Yuto Takei</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-E0fcdUk3Shw/TetNUD5agpI/AAAAAAAAA0Q/5UazaC4oAeQ/s220/254193_1943555760818_1600221779_1962741_2739513_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-6532284259789040687</id><published>2009-12-04T12:46:00.032+09:00</published><updated>2009-12-07T16:34:56.743+09:00</updated><title type='text'>連載企画 CPU 実験教室 実践編 第 1 回？ 新基板の解説 (概要)</title><content type='html'>&lt;p&gt;こんにちは、チーム ksk より愛をこめて xyx 神がお送りいたします☆ この企画は、理情名物 CPU 実験を、どこよりも分かりやすく &lt;span style="font-weight: bold"&gt;ISer 向け&lt;/span&gt; (要は理情生向け) に解説していこうというものです。まだ連載できるかどうか、能力・体力的に不安なんですが、とりあえずは発表で解説したことから書いていこうかなと思っています。予定では、いったん新基板向けの話をしたら、非 09er 向けな話 (VHDL の基礎) とかもやっていこうかなと考えています。&lt;/p&gt;
&lt;p&gt;ということで～&lt;/p&gt;

&lt;table&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src="http://www.yutopio.net/img/091204_is2k9.png" alt="あいずたん" width="100" height="100" /&gt;&lt;/td&gt;
    &lt;td style="font-weight: bold; color: blue"&gt;みんな～、あいずたんの CPU 実験教室は～じま～るよ～っ！&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;さて、今回は新基板について、どんなものが載っているかから見て行きたいと思います。&lt;/p&gt;

&lt;table&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src="http://www.yutopio.net/img/091204_lilfes.png" alt="りるふぇすたん" width="100" height="100" /&gt;&lt;/td&gt;
    &lt;td style="font-weight: bold; color: deeppink"&gt;って、初回からいきなりつまらなさそうな話ね。&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;まあ、そういわず、大事な話だから...&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091204_fpga.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091204_fpga.jpg" alt="新基板" width="748" height="350"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;新基板は上の写真のような形をしています。一言で申すなら、&lt;/p&gt;
&lt;p style="font-weight: bold; color: red; letter-spacing: 5pt"&gt;旧基板とは段違いに性能がいい！&lt;/p&gt;

&lt;h2 style="margin-bottom: 0px"&gt;FPGA について&lt;/h2&gt;
&lt;p style="margin-top: 0px"&gt;まずは FPGA 本体についてみていきましょう&lt;/p&gt;

&lt;dl&gt;
  &lt;dt style="font-weight: bold"&gt;名称&lt;/dt&gt;
  &lt;dd&gt;XC5VLX50T-1FFG1136&lt;/dd&gt;
  &lt;dt style="font-weight: bold"&gt;設定&lt;/dt&gt;
  &lt;dd&gt;
    &lt;table cellspacing="0" cellpadding="3" style="text-align: center"&gt;
      &lt;tr&gt;
        &lt;td class="t1" width="80"&gt;family&lt;/td&gt;
        &lt;td class="t2" width="100"&gt;&lt;a href="http://japan.xilinx.com/products/virtex5/" target="_blank"&gt;Virtex-5&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="t3"&gt;device&lt;/td&gt;
        &lt;td class="t4"&gt;XC5VLX50T&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="t3"&gt;package&lt;/td&gt;
        &lt;td class="t4"&gt;FFG1136&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="t3"&gt;speed&lt;/td&gt;
        &lt;td class="t4"&gt;-1&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/table&gt;
    &lt;p style="margin-top: 5px; margin-bottom: 0px"&gt;もしかして... 上の名称そのまま？&lt;/p&gt;
  &lt;/dd&gt;
  &lt;dt style="font-weight: bold"&gt;性能&lt;/dt&gt;
  &lt;dd&gt;
    &lt;table cellspacing="0" cellpadding="3"&gt;
      &lt;colgroup&gt;
        &lt;col width="10%" /&gt;
        &lt;col width="10%" /&gt;
        &lt;col width="80%" /&gt;
      &lt;/colgroup&gt;
      &lt;tr&gt;
        &lt;th class="t1" rowspan="4"&gt;CLB&lt;br /&gt;&lt;nobr&gt;(Configurable Logic Block)&lt;/nobr&gt;&lt;/td&gt;
        &lt;td class="t2"&gt;アレイ&lt;/td&gt;
        &lt;td class="t2"&gt;120 x 30&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="t4"&gt;スライス&lt;/td&gt;
        &lt;td class="t4"&gt;7,200&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="t4"&gt;&lt;nobr&gt;各スライスの &lt;a href="http://en.wikipedia.org/wiki/Lookup_table#Hardware_LUTs" target="_blank"&gt;LUT&lt;/a&gt; と &lt;a href="http://ja.wikipedia.org/wiki/%E3%83%95%E3%83%AA%E3%83%83%E3%83%97%E3%83%95%E3%83%AD%E3%83%83%E3%83%97" target="_blank"&gt;Flip-flop&lt;/a&gt;&lt;/nobr&gt;&lt;/td&gt;
        &lt;td class="t4"&gt;4 個 (従来の 2 倍)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="t4"&gt;最大分散 RAM&lt;/td&gt;
        &lt;td class="t4"&gt;480Kb = 60KByte&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;th class="t3"&gt;DSP48E スライス&lt;/td&gt;
        &lt;td class="t4" colspan="2"&gt;48 個 (各スライスに 25x18 乗算器・加算器・アキュミュレータを 1 つ)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;th class="t3" rowspan="2"&gt;ブロック RAM&lt;/td&gt;
        &lt;td class="t4" colspan="2"&gt;36Kb を 60 個 (36Kb のものが 18Kb x 2 としても使える)、合計 2,160Kb = 270KByte&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="t4" colspan="2"&gt;旧基板に比べて、圧倒的に容量が増えていますので、相当キャッシュやバッファに RAM を割くことができます&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/table&gt;
  &lt;/dd&gt;
&lt;/dl&gt;

&lt;p&gt;(出典は &lt;a href="http://japan.xilinx.com/support/documentation/data_sheets/j_ds100.pdf" target="_blank"&gt;http://japan.xilinx.com/support/documentation/data_sheets/j_ds100.pdf&lt;/a&gt;)&lt;/p&gt;

&lt;table&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src="http://www.yutopio.net/img/091204_lilfes.png" alt="りるふぇすたん" width="100" height="100" /&gt;&lt;/td&gt;
    &lt;td style="font-weight: bold; color: deeppink"&gt;で、要するにどういうことなのよ？ こんな表を出されてもちっともうれしくないんだけど&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;まあ、旧基板に比べて、ものすごーく性能が高いってことですね (汗&lt;/p&gt;

&lt;h2 style="margin-bottom: 0px"&gt;クロック周りについて&lt;/h2&gt;
&lt;p style="margin-top: 0px"&gt;クロックは 2 種類出ています。&lt;/p&gt;

&lt;table cellspacing="0" cellpadding="3"&gt;
  &lt;tr&gt;
    &lt;td class="t1"&gt;66.66MHz (15ns)&lt;/td&gt;
    &lt;td class="t2"&gt;メモリなどで使いやすいです&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class="t3"&gt;48MHz&lt;/td&gt;
    &lt;td class="t4"&gt;USB チップに既に入っていますので、これに同期させて USB チップを使います&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;あと USF に XRST っていうのがありますが、これはリセット スイッチです。旧基板では、リセット スイッチを押すと基板に書き込んだ内容が消えていたんですが、新基板では単なるスイッチになっていて、これを押すことで回路を書き込まずに最初からやり直すことができます。&lt;/p&gt;

&lt;h2 style="margin-bottom: 0px"&gt;IO&lt;/h2&gt;
&lt;p style="margin-top: 0px"&gt;見て分かるとおり、LED は基板上にありません。ということで、デバッグ時は拡張基板に自分で LED をつける必要があります。拡張基板は、FPGA につながっているピンこそ違え、基盤から見ると、VCC や GND や並びは同じです。つまり、今までの拡張基板がそのまま使えます。&lt;/p&gt;

&lt;table align="center" cellspacing="0" style="text-align: center"&gt;
  &lt;caption&gt;拡張基板への出力ピンの対応 (p: 信号, Z: 未接続)&lt;/caption&gt;
  &lt;tr&gt;
    &lt;th class="t1" width="35"&gt;1&lt;/th&gt;
    &lt;th class="t2" width="35"&gt;2&lt;/th&gt;
    &lt;th class="t2" width="35"&gt;3&lt;/th&gt;
    &lt;th class="t2" width="35"&gt;4&lt;/th&gt;
    &lt;th class="t2" width="35"&gt;5&lt;/th&gt;
    &lt;th class="t2" width="35"&gt;6&lt;/th&gt;
    &lt;th class="t2" width="35"&gt;7&lt;/th&gt;
    &lt;th class="t2" width="35"&gt;8&lt;/th&gt;
    &lt;th class="t2" width="35"&gt;9&lt;/th&gt;
    &lt;th class="t2" width="35"&gt;10&lt;/th&gt;
    &lt;th class="t2" width="35"&gt;11&lt;/th&gt;
    &lt;th class="t2" width="35"&gt;12&lt;/th&gt;
    &lt;th class="t2" width="35"&gt;13&lt;/th&gt;
    &lt;th class="t2" width="35"&gt;14&lt;/th&gt;
    &lt;th class="t2" width="35"&gt;15&lt;/th&gt;
    &lt;th class="t2" width="35"&gt;16&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class="t3"&gt;GND&lt;/td&gt;
    &lt;td class="t4"&gt;p&lt;/td&gt;
    &lt;td class="t4"&gt;p&lt;/td&gt;
    &lt;td class="t4"&gt;p&lt;/td&gt;
    &lt;td class="t4"&gt;p&lt;/td&gt;
    &lt;td class="t4"&gt;p&lt;/td&gt;
    &lt;td class="t4"&gt;p&lt;/td&gt;
    &lt;td class="t4"&gt;p&lt;/td&gt;
    &lt;td class="t4"&gt;p&lt;/td&gt;
    &lt;td class="t4"&gt;p&lt;/td&gt;
    &lt;td class="t4"&gt;p&lt;/td&gt;
    &lt;td class="t4"&gt;GND&lt;/td&gt;
    &lt;td class="t4"&gt;p&lt;/td&gt;
    &lt;td class="t4"&gt;p&lt;/td&gt;
    &lt;td class="t4"&gt;p&lt;/td&gt;
    &lt;td class="t4"&gt;p&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;&lt;td colspan="16" style="height: 3px"&gt;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;
    &lt;th class="t1"&gt;17&lt;/th&gt;
    &lt;th class="t2"&gt;18&lt;/th&gt;
    &lt;th class="t2"&gt;19&lt;/th&gt;
    &lt;th class="t2"&gt;20&lt;/th&gt;
    &lt;th class="t2"&gt;21&lt;/th&gt;
    &lt;th class="t2"&gt;22&lt;/th&gt;
    &lt;th class="t2"&gt;23&lt;/th&gt;
    &lt;th class="t2"&gt;24&lt;/th&gt;
    &lt;th class="t2"&gt;25&lt;/th&gt;
    &lt;th class="t2"&gt;26&lt;/th&gt;
    &lt;th class="t2"&gt;27&lt;/th&gt;
    &lt;th class="t2"&gt;28&lt;/th&gt;
    &lt;th class="t2"&gt;29&lt;/th&gt;
    &lt;th class="t2"&gt;30&lt;/th&gt;
    &lt;th class="t2"&gt;31&lt;/th&gt;
    &lt;th class="t2"&gt;32&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class="t3"&gt;p&lt;/td&gt;
    &lt;td class="t4"&gt;p&lt;/td&gt;
    &lt;td class="t4"&gt;p&lt;/td&gt;
    &lt;td class="t4"&gt;p&lt;/td&gt;
    &lt;td class="t4"&gt;p&lt;/td&gt;
    &lt;td class="t4"&gt;p&lt;/td&gt;
    &lt;td class="t4"&gt;p&lt;/td&gt;
    &lt;td class="t4"&gt;GND&lt;/td&gt;
    &lt;td class="t4"&gt;GND&lt;/td&gt;
    &lt;td class="t4"&gt;Z&lt;/td&gt;
    &lt;td class="t4"&gt;3.3V&lt;/td&gt;
    &lt;td class="t4"&gt;3.3V&lt;/td&gt;
    &lt;td class="t4"&gt;Z&lt;/td&gt;
    &lt;td class="t4"&gt;5.0V&lt;/td&gt;
    &lt;td class="t4"&gt;Z&lt;/td&gt;
    &lt;td class="t4"&gt;Z&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;大体こんな感じ&lt;/p&gt;

&lt;table&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src="http://www.yutopio.net/img/091204_is2k9.png" alt="あいずたん" width="100" height="100" /&gt;&lt;/td&gt;
    &lt;td style="font-weight: bold; color: blue"&gt;旧基板の LOC を新基板の LOC に書き換えるスクリプトが書けるよっ！&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;RS232C は、間に電圧を調整するだけのチップを挟んで、そのままソケットにつながってます。USB2.0 チップはクロックと同期して使う方式で、基板の方でいろいろとつながっていないピンがあるので、使用できる機能は制限されているようです。上記の 48MHz のクロック (チップの上限の速さ) が既に入っています。あと、DDR2-SDRAM (SO-DIMM, 266MHz) ソケットや PCI-express が付いているようです。DVI ソケットはなくなったようです。まあ、こんなところ触る人はいないでしょうけどw&lt;/p&gt;

&lt;table style="margin-bottom: 20px"&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src="http://www.yutopio.net/img/091204_lilfes.png" alt="りるふぇすたん" width="100" height="100" /&gt;&lt;/td&gt;
    &lt;td style="font-weight: bold; color: deeppink"&gt;まったく、初回からこんなので大丈夫なのかしら。&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;h2 style="margin-bottom: 0px"&gt;最後に&lt;/h2&gt;
&lt;p style="margin-top: 0px"&gt;もし何か意見・質問ございましたら下のコメント欄にお寄せください&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-6532284259789040687?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/6532284259789040687/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/12/cpu-1.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/6532284259789040687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/6532284259789040687'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/12/cpu-1.html' title='連載企画 CPU 実験教室 実践編 第 1 回？ 新基板の解説 (概要)'/><author><name>xyx</name><uri>http://www.blogger.com/profile/12664580622877928008</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-4227271589671887995</id><published>2009-12-01T15:45:00.009+09:00</published><updated>2009-12-01T17:26:51.110+09:00</updated><title type='text'>地下班対抗麻雀</title><content type='html'>&lt;p&gt;こんにちは、麻雀を打てない竹井です。お久しぶりです。前回の記事で、コンパイラの壮大なる仕様ミスに気付いたことは書いたとおりですが、その割にここ最近、新宿いったり、横浜いったり、馬喰町いったり、いろいろ遊びまくってて、全然仕事は進んでません、はいごめんなさい。&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091201_mahjong.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091201_mahjong.jpg" width="200" height="150" alt="地下班対抗麻雀" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;それで、今日はまさに今進行中の地下班対抗麻雀を生中継いたします。実は、この間の TDL 企画を立ち上げたたかつさんが今回、班対抗麻雀をしようと言い出したので、班対抗の麻雀が行われることとなったのでした。いま現在は 2 卓で並列大戦が行われている模様。ちなみに、今日は授業で定例の実験進捗報告もあって、Team ksk は「班の存続をかけて戦う」(by xyx 神) らしいので、負けたら班は解散するらしいです(笑) 僕はなぜか Team C# から代表キャラとして参戦させられたんですが、全くずぶの素人・・・というかやるの初めて。&lt;/p&gt;
&lt;table align="center" style="text-align: center"&gt;
  &lt;tr&gt;&lt;td width="220"&gt;&lt;a href="http://www.yutopio.net/img/091201_playing1.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091201_playing1.jpg" width="200" height="150" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td width="220"&gt;&lt;a href="http://www.yutopio.net/img/091201_playing2.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091201_playing2.jpg" width="200" height="150" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;滑り出し快調！&lt;/td&gt;&lt;td&gt;やったー、あがれたっ！&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;でも、本当にビギナーズ ラックってあるもんですね。サイコロ運もよかったのか、最初に親になったらしくて、そんでもって、1 発目のゲームからリーチして普通に上がれたー！ 僕にはよくわからなかったんですが、ドラとかいうのがついて、結構良かったみたいですよー。&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091201_score.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091201_score.jpg" width="200" height="150" alt="スコア ボード" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ちなみに、僕のテーブルでは僕の Team C#、hota さんの Team ksk、nnnuu さんの「くい☆たん」、そして tasai さんのモン班が一緒にプレーしてまして、僕は最初の 4 回くらいのゲームにいましたよ。なかなか好調で、13,400 点くらい稼いだらしいです。対して、チーム存続がかかってる ksk 班は -37,800 点で最底辺だった模様。大丈夫なんでしょうか・・・。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-4227271589671887995?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/4227271589671887995/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/12/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/4227271589671887995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/4227271589671887995'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/12/blog-post.html' title='地下班対抗麻雀'/><author><name>Yuto Takei</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-E0fcdUk3Shw/TetNUD5agpI/AAAAAAAAA0Q/5UazaC4oAeQ/s220/254193_1943555760818_1600221779_1962741_2739513_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-2963975859976585584</id><published>2009-11-26T12:54:00.015+09:00</published><updated>2009-11-26T14:19:45.813+09:00</updated><title type='text'>コンパイラのお仕事 番外編</title><content type='html'>&lt;p&gt;&lt;b&gt;ぐはーーーーーーー！&lt;/b&gt; 笑うしかない竹井です。「コンパイラのお仕事 その 3」を執筆してるぜー、みたいな話を友達としていて、その途中で壮大な過ちに気付いてしまって、もはや地下にいる人間で大爆笑状態です。&lt;/p&gt;
&lt;p&gt;えっと細かい経緯を話すと、「その 3」では型システムについてのお話を書いてるんですが、うちのコンパイラには今のところ型システムが搭載されてないんですよね。というのも、実験の課題として与えられるレイトレーシングのプログラムは毎年同じように使われているもので、動くのが当たり前、、、つまり型の整合性も取れてて当たり前・・・という感じなんですよね。さらに、与えられているプログラムは (create_array というライブラリ関数以外) 単相型のみであってタイプ ジェネリックはない上に、O'Caml の演算子では整数は &lt;code&gt;+&lt;/code&gt; なのに対して浮動小数点は &lt;code&gt;+.&lt;/code&gt; のように、別の演算子を使うんですよ。だから、まったく型システムの存在を考慮しないで、コンパイラが書けちゃうんですよ・・・&lt;/p&gt;
&lt;p align="center" style="font-size: 14pt; font-weight: bold"&gt;少なくとも・・・ほんの 10 分前までそう思ってました&lt;/p&gt;
&lt;p&gt;それでつい一昨日、うちの班でもシミュレータさんが初画像を出してくれたんですよ。まぁちょっと薄暗いんですが・・・。こんな感じです↓ まぁ新井さんが動くまでの経緯やなんかを記事に書いてくれると信じてますので、乞うご期待。&lt;/p&gt;
&lt;table align="center" style="text-align: center"&gt;
  &lt;tr&gt;&lt;td width="150"&gt;&lt;img src="http://www.yutopio.net/img/091126_wrong.png" width="128" height="128" /&gt;&lt;/td&gt;&lt;td width="150"&gt;&lt;img src="http://www.yutopio.net/img/091126_correct.png" width="128" height="128" /&gt;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;うちの班の出力画像&lt;/td&gt;&lt;td&gt;正解画像&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;で、たまたま今日さっき生協購買部から帰ってくるとき、「最近 CPU 実験日記にマジメな記事が少ないんじゃないー？」みたいなことを言われて、「いや、その 3 を執筆中だけど、うちのコンパイラは型システムがないから、書くのが大変なんだ」的な返答をしたら、「本当に型の考慮しないでも平気なの？」と言われて、上に書いたような返答をしたら・・・&lt;b&gt;「それ、不等号とかの型判定はどうしてんの？」&lt;/b&gt;と・・・。&lt;/p&gt;
&lt;p align="center" style="font-size: 24pt; font-weight: bold; color: red; letter-spacing: 5pt"&gt;ガーーーーン&lt;/p&gt;
&lt;p&gt;えっと、不等号の型を変えるのを忘れていました、完全に。つまり、整数の大小比較も浮動小数点の大小比較も、まったく同じ slt というマシン命令を使ってました。いやー・・・本当に完全に大小比較について整数と浮動小数点を使い分けるのを忘れてましたよ。まさかこんな罠があったとは・・・。&lt;/p&gt;
&lt;p&gt;それでも・・・急いで地下に戻って「いや、そんなことはない・・・」と言い聞かせながら(笑) シミュレータさんが僕に送ってきた命令実行の統計情報を見てみると・・・&lt;/p&gt;
&lt;p align="center"&gt;&lt;img src="http://www.yutopio.net/img/091126_stat.png" width="239" height="670" alt="統計情報" /&gt;&lt;/p&gt;
&lt;p&gt;そーですね・・・たしかに slt という整数の大小比較命令は大量に発行されてるのに、fslt という浮動小数点の大小比較命令はなっしんぐ orz  ナンテコッタ&lt;/p&gt;
&lt;p style="font-weight: bold"&gt;でも、まいっか、画像でたし♪&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-2963975859976585584?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/2963975859976585584/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/11/blog-post_26.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/2963975859976585584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/2963975859976585584'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/11/blog-post_26.html' title='コンパイラのお仕事 番外編'/><author><name>Yuto Takei</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-E0fcdUk3Shw/TetNUD5agpI/AAAAAAAAA0Q/5UazaC4oAeQ/s220/254193_1943555760818_1600221779_1962741_2739513_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-3766896305677248778</id><published>2009-11-24T17:44:00.013+09:00</published><updated>2010-06-01T18:01:33.438+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='文化祭'/><title type='text'>第60回 駒場祭</title><content type='html'>&lt;p&gt;実は音楽部合唱団で指揮者をしている竹井です。事後報告ですが昨日まで 3 連休の間、&lt;a href="http://www.a103.net/komabasai/60/" target="_blank"&gt;駒場祭&lt;/a&gt;でした。東大では年に 2 回文化祭があって、5 月には本郷キャンパスで&lt;a href="http://www.a103.net/may/" target="_blank"&gt;五月祭&lt;/a&gt;が、11 月には駒場キャンパスで&lt;a href="http://www.a103.net/komabasai/" target="_blank"&gt;駒場祭&lt;/a&gt;があります。五月祭は各学部の発表・展示などもあってよりアカデミックな雰囲気ですが、駒場祭は 1,2 年生が通うキャンパスで行われるので、模擬店が多かったり、バンドのライブやダンスのパフォーマンスなど若いイメージの企画が多かったりします。本当は事前に記事を書きたかったんですが、なにせ先週水曜に TDL 行って、木金と授業、さらに金曜午後は前日準備・・・ってな感じでまったく余裕がなかったんです。まぁそういうわけで、残念ですがお許しあれ。&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091124_komaba.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091124_komaba.jpg" width="200" height="150" alt="駒場キャンパスの正門から" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.yutopio.net/img/091124_ginkgo.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091124_ginkgo.jpg" width="200" height="150" alt="銀杏並木。今年は黄色くなるのが遅いかな？" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;まず、僕の所属している音楽部の話から。うちは合唱喫茶という名のカフェをやってまして、前で団員が歌っているのを聴いて楽しんでもらいながら、ケーキやコーヒー紅茶などを楽しんでもらうという企画。僕らは男声合唱団なんですが、この企画自体もう長くやっているんだそうで、僕の知る限りは 1999 年の記録まではさかのぼれました。普通に 30 年とかもっと前からやってたみたいな話も聞いたことありますけど・・・ (ちなみに団自体は来年で 90 周年だそうです)。日曜日には &lt;a href="http://organ.c.u-tokyo.ac.jp/access.html#900" target="_blank"&gt;900 番講堂&lt;/a&gt;というパイプオルガンもある場所で演奏もしましたよ。&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091124_choirfest.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091124_choirfest.jpg" width="200" height="150" alt="900 番で指揮しました" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;というか半ば仕組まれたかのようなポスターを作られてしまいました・・・。前日準備の際、いつもの教室へ向かっている途中、なにやら 1F の階段に大きな絵のキモいビラが数枚。よーくながめてみると自分の顔じゃありませんか！ これはびっくりして、部屋に行ってみると責任者が、「あ、竹井さん！ まことに申し上げにくいんですけど、竹井神の顔、ビラに使わせてもらいましたけど、いいですか？ っていうかもう使っちゃったし、いいですよね、てへ！」とか言い出す始末・・・(笑) ナンテコッタ。まぁ・・・それにしても良くできてる。まったく悲愴感が漂っていない叫びだ。&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091124_ad1.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091124_ad1.jpg" width="200" height="150" alt="何やら変なビラが・・・" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.yutopio.net/img/091124_ad2.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091124_ad2.jpg" width="200" height="150" alt="そしてよく見たら自分だった・・・" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;次に、&lt;a href="http://www.tsg.ne.jp/" target="_blank"&gt;TSG&lt;/a&gt; (理論科学グループ) とか &lt;a href="http://www.utmc.or.jp/" target="_blank"&gt;UTMC&lt;/a&gt; (東大マイコンクラブ) とか行ってきました。まぁ外の人間の僕から見ると、どっちも同じ空気が漂ってるように見えるんですけどねー。Team ksk の xyx さんとか iwi さんとか wata さんは TSG にいて、うちの班にも UTMC に所属してる人がいるんですよね。地下民にはこの 2 つのサークルにいる人間が多い気がします。まぁそんな縁もあって、僕も遊びに行ったんですけど。遊びに行ったら、何やら展示されてる人がいました。&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091124_arai.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091124_arai.jpg" width="200" height="150" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;その名も「プログラマ展示」、なんというか展示品を作るのが間に合わなくて、仕方ないから作ってる現場を展示しちまえ、的な何かという匂いがプンプン(笑) しかも、よーく目をこらして画面を見てみると、開いてるプロジェクトは CPU 実験のシュミレータだったり・・・。ははは、結局そのゲームとやらは完成したんだろうか・・・、彼はコミケも控えてるはずなんだが。&lt;/p&gt;
&lt;p&gt;まぁその他、目撃したものなど↓&lt;/p&gt;
&lt;table align="center" style="text-align: center"&gt;
  &lt;tr&gt;&lt;td width="220"&gt;&lt;a href="http://www.yutopio.net/img/091124_adballon.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091124_adballon.jpg" width="200" height="150" alt="アドバルーン" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td width="220"&gt;&lt;a href="http://www.yutopio.net/img/091124_mosaic.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091124_mosaic.jpg" width="200" height="150" alt="モザイク画" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;駒場祭 開祭中！&lt;/td&gt;&lt;td&gt;60 周年記念 モザイク画&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td colspan="2"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;&lt;a href="http://www.yutopio.net/img/091124_stall.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091124_stall.jpg" width="200" height="150" alt="露店" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.yutopio.net/img/091124_kappa.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091124_kappa.jpg" width="200" height="150" alt="河童踊り" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;模擬店いっぱい&lt;/td&gt;&lt;td&gt;水泳部の河童踊り&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td colspan="2"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;&lt;a href="http://www.yutopio.net/img/091124_tour.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091124_tour.jpg" width="200" height="150" alt="学内ツアー" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.yutopio.net/img/091124_gc.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091124_gc.jpg" width="200" height="150" alt="ガベージ コレクション" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;人気の学内ツアー&lt;/td&gt;&lt;td&gt;環境配慮。ゴミ分別は 9 種&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;いやはやお祭りは賑やかでいいものです。おかげで CPU 実験が進みやしない(笑)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-3766896305677248778?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/3766896305677248778/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/11/60.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/3766896305677248778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/3766896305677248778'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/11/60.html' title='第60回 駒場祭'/><author><name>Yuto Takei</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-E0fcdUk3Shw/TetNUD5agpI/AAAAAAAAA0Q/5UazaC4oAeQ/s220/254193_1943555760818_1600221779_1962741_2739513_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-4794485981405600689</id><published>2009-11-19T11:21:00.002+09:00</published><updated>2009-11-25T17:12:48.219+09:00</updated><title type='text'>TDL 行ってきました</title><content type='html'>&lt;p&gt;こんにちは、いつも陽気な竹井です。課題がそろそろたまってきて、だいぶ忙しくなってきました。そして我々 Team C# も 1st アーキテクチャがそろそろ大詰めを迎えてきました。僕のコンパイラもアセンブリを吐けるようになって、やっとハードウェア係に仕事がまわっていきそうかな、という感じです。だがしかしそんななか、実は月曜日に喰いタン班が実機でレイトレースを完動させてしまって、Team ksk の後を 2 位で追っていたつもりが、いっきに抜かれてしまいました・・・ショボーン。まぁ、そんなの気にしないで、今週末までにはレイトレースさせるぜ、なんていう目標で進めております。&lt;/p&gt;
&lt;p&gt;さてさて、それで本題です。タイトルにあるとおり、昨日 TDL に行ってきました。あの東京ディズニーランド、夢と魔法の王国ですよ！！ もうね、これでもかってくらいに 1 日遊びつくしましたよ。そもそものコトの発端は先週の中ごろ。喰いタン班の人が僕に「いつも社員はしゃぎすぎ、だけど面白いからもっとやれ！ ってか、社員が一番はしゃぎそうな所で、興奮してる社員を見たい」とか言い出したのがきっかけ。ちなみに「社員」っていうのは僕の地下でのニックネームです、よくわかんないけど・・・。でもまぁ助教の先生たちにまでそう呼ばれてるんだから仕方がない(笑) まぁそんなこんなで、いきなりディズニーに行く社員旅行企画が発足したのでした (ちなみに 11/18 はミッキーの誕生日だったんですが、TDL では特に何もやっていなかった模様)。&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091119_disney.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091119_disney.jpg" width="300" height="225" alt="集合写真！" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;行ったメンツは総勢 8 名。喰いタン班から nnnuu さん含め 4 人、Team C# から岡原と僕、Team ksk から ksk さん、あと工学部の方が 1 人。なかなか賑やかなメンバで本当に楽しかったですよ。あぁ社員旅行とはいっても、別に企画したのは僕ではなくて、その言い出しっぺの彼です。ただ、なんでディズニーになったかというと、僕の地元が浦安だから、っていう至って単純な理由。行ってみれば友達をお庭に呼んだ気分ですね。そんなんだから、インパークしてからは色々ガイドっぽいこともやったり・・・。最初に半分に分かれて、4 人はビッグサンダーの FP を取りに行って、僕ら 4 人はレストランのプライオリティ シーティングの予約に行ったり。なかなか計画的にパークを回ると、2 倍も 3 倍も楽しめておいしいですよ、本当に！&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091119_nnnuu.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091119_nnnuu.jpg" width="200" height="150" alt="nnnuu さん" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.yutopio.net/img/091119_okahara.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091119_okahara.jpg" width="200" height="150" alt="党員さん" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;僕個人のお勧めでは、ショーやパレードなどはいいですね。どうしてもアトラクションはいつ行ってもあまり大きく変わらないですけど、ショーとかパレードなんてのは生身の人間が演じてるので、ダンサーの活きいきしたところがとても躍動的で大好きです。あー残念だったのは、ショーベース 2000 でいつもやっているワンマンズ・ドリーム II が事前に抽選する形式に変わってしまったこと。11/10 からだそうで、お昼頃にそれに気づいて急いで席を取りに行ったのに、抽選から外れ。抽選とはいってももちろん、早い時間に行ったほうが当たる確率は高いみたいです。ちょうど先月までディズニーシーのアメリカン ウォーターフロント前特設ステージでやっていたハロウィーンのミステリアス マスカレードと同じシステムです。あーあ、ワンマンズ ドリームはぜひ見たかったのに残念・・・&lt;/p&gt;
&lt;p style="margin-left: 50px; margin-right: 50px; font-size: 8pt;"&gt;ちなみに浦安市民として補足しておくと、浦安市では成人式がディズニーランドで行われるというのはとても有名な話で、僕も今年の 1 月に行ってきました。ちょうどゲスト リレーション横の広場で、市から送られてきた封筒とパーク チケットを交換する形になっていて、ショーベースで特別イベントが行われます。市長の挨拶のほか、ディズニー アンバサダーからも一言あったり。ミッキーたちも出てきてなかなか楽しい雰囲気でした。成人式実行委員会への立候補し忘れたのが悔やまれて仕方ない・・・。イベント後は 1 日パーク内で遊べるので、小学校時代の友達と再会して遊べるということで素敵ですよ。まぁ着物姿でアトラクションに乗ってる人だらけですごく異様な感じですが。ちなみに残念ながら、パークのキャパシティとか市の予算とかの問題で、この成人式も来年くらいで終わりっぽいような話を聞きました・・・残念。&lt;/p&gt;
&lt;p&gt;話を戻して・・・結局この日は、うちの班の党員 (岡原さんのニックネーム) の強い強い要望により、アトラクションを中心に回りました。行ってそうそうビッグサンダーマウンテンとスペースマウンテンに朝から乗ったり、お昼前にはカヌー漕いだりもしました。あー、カヌーはなぜか猛烈に速かったです・・・ふつうの 2 倍近くのスピードでてて、みんな本気で漕ぎまくってたような気がー(笑) 他には、コーヒーカップに乗って、カップを回しまくったりー、、、僕は ksk さんと一緒に乗って、二人でぐるんぐるん回してて、いやー本当に調子乗りすぎた、、、あはは♪ 夕飯は結局、カリブの海賊の横にあるブルーバイユというレストランでゆったりと。夜のエレクトリカル パレードもちゃんと見たし、満足満足。花火を見た後は、閉園前で空いてたホーンテッド マンション。クリスマスの装いかと思いきや、「ナイトメアー・ビフォア・クリスマス」からジャックが来てて、アトラクション内が素敵な飾り付けの&lt;a href="http://www.tokyodisneyresort.co.jp/tdl/japanese/event/nightmare2009/" target="_blank"&gt;スペシャル バージョン&lt;/a&gt;になってました。そして最後の締めに It's a small world. へ。僕はこれ大好きですよー！&lt;/p&gt;
&lt;p&gt;はい、そんなこんなで 1 日 CPU 実験を放り出して遊び倒した日なのでしたー。今度はディズニーシーにでも行きたいな。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-4794485981405600689?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/4794485981405600689/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/11/tdl.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/4794485981405600689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/4794485981405600689'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/11/tdl.html' title='TDL 行ってきました'/><author><name>Yuto Takei</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-E0fcdUk3Shw/TetNUD5agpI/AAAAAAAAA0Q/5UazaC4oAeQ/s220/254193_1943555760818_1600221779_1962741_2739513_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-1745888043338964102</id><published>2009-11-16T23:23:00.006+09:00</published><updated>2009-11-24T17:34:06.276+09:00</updated><title type='text'>素数</title><content type='html'>&lt;p&gt;久しぶりの安息日を楽しむつもりが・・・先週末は猛烈に忙しかった竹井です、こんばんは。昨日の日曜日、家に帰ってテレビつけたら、NHK スペシャルで&lt;a href="http://www.nhk.or.jp/special/onair/091115.html" target="_blank"&gt;リーマン予想についての番組&lt;/a&gt;やってて、ちょっとそれにそそられて記事を書きたくなっちゃいましたもんで、ちょっと。&lt;/p&gt;
&lt;p&gt;実は昔、素数が織り成す理論に心底から陶酔していた時期があって (いまでも素数は大好きですけど)、整数論についての本を色々読んでみたり、素数列挙のアルゴリズムを色々書いてみたり・・・、挙句の果てに &lt;a href="http://ja.wikipedia.org/wiki/RSA%E6%9A%97%E5%8F%B7" target="_blank"&gt;RSA 暗号&lt;/a&gt;のシステムを自分の手で作ったことさえありました。思えば中高生のころ、まだ若かったですね。ちなみに、番組の途中で、マーカス デュ ソートイというオックスフォード大の教授が出てましたが、この方が書かれた本の訳書「素数の音楽」を読んであまりにもそれが面白くて、原著まで買ってしまったほど。&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091116_prime.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091116_prime.jpg" width="200" height="150" alt="素数の音楽 (原著と訳書)" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;最初に僕が RSA 暗号を作りたいと思ったモチベーションは良く覚えてはいませんが、&lt;a href="http://www.faireal.net/" target="_blank"&gt;妖精現実 フェアリアル&lt;/a&gt;という Web サイトにはだいぶお世話になりました。ここでは JavaScript を利用した RSA 暗号の構成方法などが事細かに説明されていて、巨大整数を扱う方法、素数の探し方 (素数判定方法)、実際の暗号化のアルゴリズム、そして高速化など多くのことを学びました。&lt;/p&gt;
&lt;pre style="margin-left: 50px; margin-right: 50px"&gt;&lt;span style='color: green'&gt;// C# によるエラトステネスの篩の実装&lt;/span&gt;
&lt;span style='color: blue'&gt;var&lt;/span&gt; n = 1000;
&lt;span style='color: blue'&gt;var&lt;/span&gt; sieve = &lt;span style='color: blue'&gt;new&lt;/span&gt; &lt;span style='color: blue'&gt;bool&lt;/span&gt;[n + 1];
&lt;span style='color: blue'&gt;var&lt;/span&gt; m = (&lt;span style='color: blue'&gt;int&lt;/span&gt;)&lt;span style='color: #2B91AF'&gt;Math&lt;/span&gt;.Floor(&lt;span style='color: #2B91AF'&gt;Math&lt;/span&gt;.Sqrt(n)) + 1;
&lt;span style='color: blue'&gt;for&lt;/span&gt; (&lt;span style='color: blue'&gt;var&lt;/span&gt; i = 2; i &amp;lt;= n; i++) sieve[i] = &lt;span style='color: blue'&gt;true&lt;/span&gt;;
&lt;span style='color: blue'&gt;for&lt;/span&gt; (&lt;span style='color: blue'&gt;var&lt;/span&gt; i = 2; i &amp;lt; m; i++)
    &lt;span style='color: blue'&gt;if&lt;/span&gt; (sieve[i])
        &lt;span style='color: blue'&gt;for&lt;/span&gt; (&lt;span style='color: blue'&gt;var&lt;/span&gt; j = i * i; j &amp;lt;= n; j += i)
            sieve[j] = &lt;span style='color: blue'&gt;false&lt;/span&gt;;
&lt;span style='color: blue'&gt;for&lt;/span&gt; (&lt;span style='color: blue'&gt;var&lt;/span&gt; i = 2; i &amp;lt;= n; i++)
    &lt;span style='color: blue'&gt;if&lt;/span&gt; (sieve[i])
        &lt;span style='color: #2B91AF'&gt;Console&lt;/span&gt;.WriteLine(i);&lt;/pre&gt;
&lt;p&gt;僕自身は中学 3 年のころ、もうそのときにはすでに C# を使っていて、RSA 暗号の実装をマネするのに UInt4096 という多倍長整数の実装などからガリガリやりました。先ほどの Web サイトの JavaScript 実装では、内部に文字列で長整数を保存するという方法をとっていたみたいでしたが、C# で実装するにあたって高速に演算させることを念頭に置きました。そこで byte 型の 512 要素配列を使って、加減算はポインタを利用して short 型の演算に置き換えたり、乗算についてはなるべくループ回数を減らしつつ楽に演算を行えるようにするなど・・・本当にいろいろ今の自分の原点のようなところがありましたね。今よりも、断然頭が柔らかかったと思います。そしてそれだけあの時に書いたプログラムへの思い入れも大きいです。&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091116_rsa.png" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091116_rsa.png" alt="RSA 暗号 (1024 ビット) の鍵生成のデモ" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;そういえば高校の時、かなり感動した証明がありました。&lt;a href="http://ja.wikipedia.org/wiki/%E3%83%99%E3%83%AB%E3%83%88%E3%83%A9%E3%83%B3%E3%81%AE%E4%BB%AE%E8%AA%AC" target="_blank"&gt;ベルトランの仮説&lt;/a&gt;というものをご存知ですか？ いかなる 2 以上の整数 &lt;i&gt;n&lt;/i&gt; について、必ず &lt;i&gt;n&lt;/i&gt; と 2&lt;i&gt;n&lt;/i&gt; の間に少なくとも 1 つは素数がある、というものですが、これはチェビシェフによって初等的な証明が与えられています。ほとんどが二項係数 (組み合わせの数 &lt;sub&gt;&lt;i&gt;n&lt;/i&gt;&lt;/sub&gt;C&lt;sub&gt;&lt;i&gt;k&lt;/i&gt;&lt;/sub&gt; のこと) をいじくりまわすだけで示すという感じでして、高校生でも十分理解できる内容でした。素数が登場するこんなに素朴で根源的な命題に対して、自分が持ち合わせているツールで証明が与えられるということを知ったのは、本当にうれしかったですね。&lt;/p&gt;
&lt;h2&gt;RSA 暗号の原理&lt;/h2&gt;
&lt;p&gt;というところで、ここで唐突に RSA 暗号の仕組みをちょろっと紹介してみましょうかね。やっぱり、素数が一番活躍している場所って言ったら暗号系だと思います。ただ暗号っていうと、結構複雑なイメージがあるかもしれませんが、原理はすごく単純です。あくまで触りしか書かないので、バックグラウンドの理論が知りたければ適当に調べてください。では、はじまりはじまり。&lt;/p&gt;
&lt;p&gt;まず、最初におっきな素数を 2 つ見つけてきます。こいつらを &lt;i&gt;p&lt;/i&gt;, &lt;i&gt;q&lt;/i&gt; としておきます。そして &lt;nobr&gt;&lt;i&gt;n&lt;/i&gt; = &lt;i&gt;pq&lt;/i&gt;&lt;/nobr&gt;, &lt;nobr&gt;&lt;i&gt;u&lt;/i&gt; = (&lt;i&gt;p&lt;/i&gt; - 1)(&lt;i&gt;q&lt;/i&gt; - 1)&lt;/nobr&gt; という 2 つの値を計算します。ここで、適当に素因数に &lt;i&gt;p&lt;/i&gt;, &lt;i&gt;q&lt;/i&gt; を持たない適当な数 &lt;i&gt;α&lt;/i&gt; を選んできて、うまい具合に &lt;nobr&gt;&lt;i&gt;αβ&lt;/i&gt; ≡ 1 (mod &lt;i&gt;u&lt;/i&gt;)&lt;/nobr&gt; となるような &lt;i&gt;β&lt;/i&gt; を求めます (まぁ実際には&lt;a href="http://ja.wikipedia.org/wiki/%E3%83%A6%E3%83%BC%E3%82%AF%E3%83%AA%E3%83%83%E3%83%89%E3%81%AE%E4%BA%92%E9%99%A4%E6%B3%95#.E6.8B.A1.E5.BC.B5.E3.81.95.E3.82.8C.E3.81.9F.E4.BA.92.E9.99.A4.E6.B3.95" target="_blank"&gt;拡張ユークリッドの互除法&lt;/a&gt;というアルゴリズムを使いますが) これで準備は終了です。公開鍵は &lt;i&gt;α&lt;/i&gt; と &lt;i&gt;n&lt;/i&gt;、秘密鍵は &lt;i&gt;β&lt;/i&gt; と &lt;i&gt;n&lt;/i&gt; になります。&lt;/p&gt;
&lt;p&gt;はい、いよいよデータの暗号化の段階です。あらかじめデータは数値データに変換しておきます。たとえば &lt;i&gt;d&lt;/i&gt; とでもしておきましょう。暗号化は単に &lt;nobr&gt;&lt;i&gt;d&lt;sup&gt;α&lt;/sup&gt;&lt;/i&gt; mod &lt;i&gt;n&lt;/i&gt;&lt;/nobr&gt; という式を計算するだけです。この値が &lt;i&gt;c&lt;/i&gt; という暗号化されたデータになります。復号化するには逆に &lt;nobr&gt;&lt;i&gt;c&lt;sup&gt;β&lt;/sup&gt;&lt;/i&gt; mod &lt;i&gt;n&lt;/i&gt;&lt;/nobr&gt; という式を計算するだけ。本当に単純でしょ？ 実際にやってみましょう。&lt;/p&gt;
&lt;pre style="margin-left: 50px; margin-right: 50px"&gt;素数を 2 つ選んできます: p = 83, q = 79
n = pq = 6557, u = (p-1)(q-1) = 6396

そして鍵のペアを作ります。まず片方の α を決めます: α = 89 (公開鍵)
この α に対し、αβ ≡ 1 (mod u) となる β を計算します: β = 3737 (秘密鍵)

実際に暗号化してみましょう。適当にデータを選びます: d = 231 (平文)
(d^α) mod n = (231^89) mod 6557 = 1912 (暗号文)
そして元に戻してみます。
(d^α) mod n = (1912^3737) mod 6557 = 231 (復号化した後の平文)

というわけでうまく行きました！&lt;/pre&gt;
&lt;p&gt;そんなこんなで、なんか取りとめもない記事になっちゃいましたが、、、やっぱり素数って美しいですよね！ こんなまとめ方でいいのか・・・ははは(笑) ではでは&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-1745888043338964102?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/1745888043338964102/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/11/blog-post_16.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/1745888043338964102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/1745888043338964102'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/11/blog-post_16.html' title='素数'/><author><name>Yuto Takei</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-E0fcdUk3Shw/TetNUD5agpI/AAAAAAAAA0Q/5UazaC4oAeQ/s220/254193_1943555760818_1600221779_1962741_2739513_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-8400519035714844973</id><published>2009-11-14T15:45:00.009+09:00</published><updated>2009-11-17T00:35:57.046+09:00</updated><title type='text'>麻雀で学ぶ計算機アーキテクチャ</title><content type='html'>&lt;p style="text-indent: 12pt;"&gt;こんにちは。team C# の花元です。今日は地下 (学生控室) で大流行している麻雀について語りたいと思います。え、麻雀と計算機アーキテクチャに何の関係があるかって？ 先日麻雀で鳴くとき、その関係性に気付いてしまったのです。&lt;/p&gt;

&lt;p style="text-indent: 12pt;"&gt;実物の牌にあまり触れていない人はこんな打ち方をします。&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;鳴くことを宣言する&lt;/li&gt;
&lt;li&gt;自分の牌をさらす&lt;/li&gt;
&lt;li&gt;相手の捨て牌から牌を持ってくる&lt;/li&gt;
&lt;li&gt;打牌&lt;/li&gt;
&lt;/ol&gt;

&lt;p style="text-indent: 12pt;"&gt;ところが雀荘なんかで打ちなれている人は鳴くときも進行が速いんですね。どういうことかというと、こういう打ち方をします。&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;鳴くことを宣言する&lt;/li&gt;
&lt;li&gt;自分の牌をさらす&lt;/li&gt;
&lt;li&gt;&lt;b&gt;打牌&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;相手の捨て牌から牌を持ってくる&lt;/li&gt;
&lt;/ol&gt;

&lt;p style="text-indent: 12pt;"&gt;打牌の速さに無頓着だった僕はこの打ち方に大変感心しました。どうしてこの打ち方をすると進行が速くなるのかというと、麻雀の進行に重要なのは打牌だからです。打牌が決定されることによってあがることが出来たり、次のツモが出来たりするんですね。一方、相手の捨て牌から牌を持ってくるなんて事は当然のことで進行に影響しない。&lt;/p&gt;

&lt;p style="text-indent: 12pt;"&gt;この考え方を採用したアーキテクチャがあって、これを&lt;a href="http://ja.wikipedia.org/wiki/%E5%88%86%E5%B2%90%E5%91%BD%E4%BB%A4"&gt;遅延分岐&lt;/a&gt;と言います。先の例と対応させてみましょう。まず、打牌に相当するのが分岐命令です。その人が白を切るならば対面が鳴くのでツモを飛ばし、それ以外なら下家のツモに移れといった感じです。遅延分岐が実装されたアーキテクチャでは、このような分岐命令の次に「分岐するしないにかかわらず必ず実行される命令」を持ってきます。つまり例で言えば「相手の捨て牌から牌を持ってくる」です。&lt;/p&gt;

&lt;p style="text-indent: 12pt;"&gt;こうすることによって、分岐命令をじっくり実行しても皆イライラしません。鳴いた人が牌を持ってくる間に「この牌鳴いて喰いタンにしようかなーそれとも鳴かずにメンタンピンを目指そうかなー」とじっくり考えることが出来るのですから。その分、速くなります。高々鳴きの動作と侮るなかれ、実際のプログラムは 20% が分岐命令で出来ていますから、塵も積もれば結構速くなるようです。&lt;/p&gt;

&lt;p style="text-indent: 12pt;"&gt;こう考えると計算機アーキテクチャ高速化のヒントって、意外と身近なところにあるのかもしれませんね。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-8400519035714844973?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/8400519035714844973/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/11/blog-post_14.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/8400519035714844973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/8400519035714844973'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/11/blog-post_14.html' title='麻雀で学ぶ計算機アーキテクチャ'/><author><name>mogella</name><uri>http://www.blogger.com/profile/06339639468496927542</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-3417675197862987018</id><published>2009-11-12T00:53:00.008+09:00</published><updated>2009-11-15T01:21:48.865+09:00</updated><title type='text'>近況報告</title><content type='html'>&lt;p&gt;こんばんは、班長の竹井です。ポケモンを大絶賛する記事を書いてくれた岡原氏、じつは先週の中ごろに嘔吐と発熱という症状がでる風邪のテンプレート的なものを引いてたらしいんですが、そうとは知らない僕が席となりで授業受けてしまったがため、先週末から今週頭にかけて体温が 37°C 付近を単振動したり、空腹なのに&lt;a href="http://ja.wiktionary.org/wiki/stomach" target="_blank"&gt;スタマック&lt;/a&gt; オーバーフローしたりして、いろいろ大変でした。とはいうものの風邪だけに、本人はどこ吹く風、他人に風邪をうつせば治るんだそうで、彼は週末ピンピンしてたみたいです。マッタク。・・・と、しばらく更新をサボった言い訳をしたところで・・・、えと、写真つきで僕個人の出来事ふくめ、最近あったことを紹介していきます。&lt;/p&gt;
&lt;p&gt;&lt;b&gt;11/1 (日)&lt;/b&gt; ... 歌舞伎座に、&lt;a href="http://ja.wikipedia.org/wiki/%E4%BB%AE%E5%90%8D%E6%89%8B%E6%9C%AC%E5%BF%A0%E8%87%A3%E8%94%B5" target="_blank"&gt;仮名手本忠臣蔵&lt;/a&gt;という演目を見に行ってきました。しかもこの日が初日上演だったそうで。結局お仕事は休み。&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091113_kabuki.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091113_kabuki.jpg" width="200" height="150" alt="歌舞伎座" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;11/2 (月)&lt;/b&gt; ... 終日お仕事。コンパイラがりがり。でも横では、ほぼみんなマンガ読んでるとか・・・。本から知識を得ることも重要な研究らしいですよ。&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091113_modelsim.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091113_modelsim.jpg" width="200" height="150" alt="テスト中！" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.yutopio.net/img/091113_comic.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091113_comic.jpg" width="200" height="150" alt="マンガ読書中" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;11/3 (火)&lt;/b&gt; ... バイト先でヒマしてました。レジスタ割り当てとかプログラム書きました。写真ないよ。&lt;/p&gt;
&lt;p&gt;&lt;b&gt;11/4 (水)&lt;/b&gt; ... コマバック。植物科学概論のレポート提出しました。「植物を題材に研究を行うとして、そのテーマを提案し、具体的な研究手法と使用する対象を説明せよ」的な課題に、大真面目に「発電する植物」とかいうレポートを出しました。そしたら、先生の目に止まってしまって、一番前で立たされて発表させられてびっくりしましたよ。「合格！」とか最後に言われたけど、単位的な意味での合格なんだろうか・・・あれは。&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091113_plantscience.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091113_plantscience.jpg" width="200" height="150" alt="レポート書いた" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;11/5 (木)&lt;/b&gt; ... リバーシ大会。実は先学期の実験に、O'Caml を使って「リバーシの強い AI を作れ」なる課題があったんですよ。その AI を戦わせて順位を決める学科内のコンテストが毎年 10 月末にあるんですが、実は決勝戦に残った人間が ICPC という別のコンテストのアジア地区予選に行ってて、決勝戦が延期されてたんですよね。それで結局、この日に決勝が行われました。ちなみに準優勝賞品が完全にネタなる Virtual Boy&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091113_reversi.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091113_reversi.jpg" width="200" height="150" alt="リバーシ大会" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.yutopio.net/img/091113_virtualboy.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091113_virtualboy.jpg" width="200" height="150" alt="準優勝賞品" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;11/6 (金)&lt;/b&gt; ... 岡原さんがくれた風邪で発熱しました。おかげで学校にいる間中、ふらふら。&lt;/p&gt;
&lt;p&gt;&lt;b&gt;11/7 (土)&lt;/b&gt; ... 特に何もなし。バイトとか部活とか。ちょっとプログラム書いたかも。&lt;/p&gt;
&lt;p&gt;&lt;b&gt;11/8 (日)&lt;/b&gt; ... 終日、布団でうなってました。あと、家でふすま張替えした。&lt;/p&gt;
&lt;p&gt;&lt;b&gt;11/9 (月)&lt;/b&gt; ... &lt;a href="http://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%A0%E3%83%80%E8%A8%88%E7%AE%97" target="_blank"&gt;ラムダ計算&lt;/a&gt;ならいました。といっても、うちの学科の場合、すでに 3 分の 2 の人はどこかしらで&lt;a href="http://en.wikipedia.org/wiki/Church_encoding#Church_numerals" target="_blank"&gt;チャーチ数&lt;/a&gt;とか &lt;a href="http://en.wikipedia.org/wiki/Fixed_point_combinator#Y_combinator" target="_blank"&gt;Y コンビネータ&lt;/a&gt;とかそこらへんの概念は、何かしらの授業で聞いたことがあるはず。&lt;/p&gt;
&lt;p&gt;&lt;b&gt;11/10 (火)&lt;/b&gt; ... ひさしぶりの実験報告。各班とも目立った進捗はなし。「チームくいたん」とうちの班は、あともう少しでシミュレータ上で画像が出せるんですけどね・・・。そういえば始めて、うちの班がガント チャートを出しました。夕方、アセンブリ第 1 号エミット。&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091113_gantt.png" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091113_gantt.png" width="200" height="150" alt="ガント チャート" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;11/11 (水)&lt;/b&gt; ... 午前休講。ゆえに地下には行かなかったー。岡原さんが&lt;a href="http://cpuexp.blogspot.com/2009/11/blog-post.html" target="_blank"&gt;ポケモン記事&lt;/a&gt;書きました。でも、ポケモンをやったことがない僕には何のことやらサッパリ。&lt;/p&gt;
&lt;p&gt;はい、というわけでこれから、がんばって綺麗なアセンブリを吐けるように頑張ります。それと、「コンパイラのお仕事 その 3」もそろそろ書きたいです。ではではー。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-3417675197862987018?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/3417675197862987018/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/11/blog-post_12.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/3417675197862987018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/3417675197862987018'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/11/blog-post_12.html' title='近況報告'/><author><name>Yuto Takei</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-E0fcdUk3Shw/TetNUD5agpI/AAAAAAAAA0Q/5UazaC4oAeQ/s220/254193_1943555760818_1600221779_1962741_2739513_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-7648319712744490476</id><published>2009-11-11T20:38:00.005+09:00</published><updated>2009-11-12T00:51:37.507+09:00</updated><title type='text'>ポケットモンスター</title><content type='html'>&lt;p&gt;党員こと岡原です。ご無沙汰しております。&lt;br /&gt;
Team C# で超絶大流行 (現在 2 名) のポケットモンスター (Pokemon) について語ります。&lt;/p&gt;
&lt;p&gt;ポケモンといえば、ポケモンバトルでしょう。&lt;br /&gt;
そのバトルに欠かせないのが、ポケモン育成です。&lt;br /&gt;
今回は、そのポケモン育成について注目します。&lt;/p&gt;
&lt;p style="margin-bottom: 0pt"&gt;育成には、3 段階のステップがあります。&lt;/p&gt;
&lt;ol style="margin-top: 0pt"&gt;&lt;li&gt;計画立て&lt;/li&gt;
&lt;li&gt;収集および選別 (個体値調整)&lt;/li&gt;
&lt;li&gt;努力値調整&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;それでは、それぞれをみていきましょう。&lt;/p&gt;

&lt;h2 style="margin-top: 30pt; margin-bottom: 0pt"&gt;1. 計画立て&lt;/h2&gt;
&lt;p style="margin-top: 5pt"&gt;これが一番要となります。&lt;/p&gt;
&lt;p&gt;この後紹介する個体値、努力値をどんなにがんばったところで、&lt;br /&gt;
パーティー構成を間違えてしまえば、勝てません。&lt;/p&gt;
&lt;p&gt;パーティー構成のやり方は人それぞれこだわりがあるもので、&lt;br /&gt;
人から教えてもらうようなものではありません。&lt;/p&gt;
&lt;p&gt;たとえば岡原は、外見重視でウルトラマンの怪獣みたいなモンスターを集めたりします。&lt;/p&gt;
&lt;p&gt;こだわりを追求する、でもその中で勝てる構成を考えていく。&lt;br /&gt;
この段階が一番重要で、一番楽しいところです。&lt;br /&gt;
このあとに紹介する個体値調整と努力値調整は、正直のところ苦行でしかありません。&lt;br /&gt;
なんなら、やらなくてもいいと思います。&lt;/p&gt;
&lt;p&gt;勝てる構成を練る中で考えるべきは、対戦する形式にあわせてあげることです。&lt;/p&gt;
&lt;p&gt;レベルについて Lv.50、Lv.100 など&lt;br /&gt;
数については 3 on 3、6 on 6 など&lt;/p&gt;
&lt;p&gt;たとえば、 Lv.50 と決めれば、バンギラス、カイリュー (一部除く) などは使えません。&lt;br /&gt;
使えるモンスターの中でも、覚えられない技が生じます (ドサイドンのがんせきほう)。&lt;/p&gt;
&lt;p&gt;6 on 6 では、ステルスロックなどの “場に設置される技” が驚異になります。&lt;br /&gt;
これに対抗し “こうそくスピン”、毒ポケモンをパーティーに入れるなどの対策をしましょう。&lt;br /&gt;
当然、設置に依存するパーティーは “こうそくスピン” 対策にゴーストポケモンを出してくるはずです。&lt;br /&gt;
それに対する対策も考えていく、、、。&lt;br /&gt;
ほかには能力アップのわざに対して “アンコール”、状態異常のわざに対して “みがわり” や “挑発”、&lt;br /&gt;
回復ポケモンに対して “どくどく”、対策は尽きることはありません。エンドレス。&lt;/p&gt;
&lt;p&gt;パーティーの構成とともに考えるのが、ポケモンのわざです。&lt;br /&gt;
ポケモンのわざには、タイプ、威力 (効果)、命中の３つがあります。&lt;br /&gt;
わざのタイプと、わざをつかうポケモンのタイプが一致すると、威力が 1.5 倍になります。&lt;br /&gt;
ポケモンのタイプには、相性があり、これがポケモンの戦略をおもしろくしています。&lt;br /&gt;
必ず勝てる、というポケモンは存在しないのです。&lt;/p&gt;

&lt;h2 style="margin-top: 30pt; margin-bottom: 0pt"&gt;2. 収集および選別 (個体値調整)&lt;/h2&gt;
&lt;p style="margin-top: 5pt"&gt;育てたいポケモンを考えたら、強いポケモンを捕まえましょう。&lt;/p&gt;
&lt;p&gt;同じ種類のポケモンの中でも、強い弱いはあるのです。&lt;br /&gt;
これを決める要素に “とくせい”、“せいかく”、“個体値” があります。&lt;/p&gt;
&lt;p&gt;とくせいは、その名の通りポケモンそのものがもつ特殊な能力です。&lt;br /&gt;
複数あるポケモンはランダムで決まります。このせいでかなり泣きます。&lt;br /&gt;
お目当ての個体値、せいかくになったとしても、とくせいがお目当てでないと、&lt;br /&gt;
泣く泣くそのポケモンは育てやさんに預けるしかありません。&lt;/p&gt;
&lt;p&gt;せいかくは、一つの能力値を 1.1 倍、一つの能力を 0.9 倍します。&lt;br /&gt;
個体値は、能力に多少のブレをつけます。最高で 31、最低で 0 です。&lt;br /&gt;
以上からわかるように、影響力は “せいかく” ＞ “個体値” になります。&lt;br /&gt;
調整しやすいのも"せいかく"です。&lt;br /&gt;
ポケモンをつかまえるときに、お目当てのせいかくと、とくせい"シンクロ"をもつポケモンを先頭にすれば、&lt;br /&gt;
出てくるポケモンはお目当てのせいかくを持つ確率が 50% になります。&lt;/p&gt;
&lt;p&gt;個体値を調整するのは茨の道です。&lt;br /&gt;
まずは、お目当ての個体値が高いモンスターをゲットします。&lt;br /&gt;
お目当ての個体値が一つの場合はこれでおしまいなのですが、ふつうは一つに収まりません。&lt;br /&gt;
二つ三つあるのがふつうです。ですが、2 つにするのが現実的です。&lt;br /&gt;
これに合わせてポケモンを複数つかまえます。♂♀別でなくてはなりません。&lt;br /&gt;
♀をお目当てのせいかくできれば万々歳です。&lt;br /&gt;
先ほどのシンクロポケモンを使って、併せてお目当てのせいかくをねらっていきましょう。&lt;/p&gt;
&lt;p&gt;そして捕まえたポケモンをそだてやさんに預けて、そこで入手できるタマゴを利用します。&lt;br /&gt;
お目当てのせいかくするのも、これを利用します。&lt;/p&gt;
&lt;p&gt;タマゴからうまれてくるポケモンは、両親の個体値を 2 - 3 個受け継ぎます。&lt;br /&gt;
また、♀のポケモンに"かわらずのいし"をもたせることで、♀のせいかくを 50% で受け継ぐことができます。&lt;br /&gt;
さらに、♂のポケモンの覚えているわざを受け継ぐことができます。&lt;br /&gt;
これにより、本来覚えられない技を身につけることができます。&lt;br /&gt;
これと、メタモンはどのポケモンの♂♀ともタマゴを作れることから、&lt;br /&gt;
高い個体値と優れたせいかくをもつメタモンを使うことで、捕まえる作業を代替できます。&lt;/p&gt;
&lt;p style="margin-bottom: 0pt"&gt;以上から必要なポケモンは、&lt;/p&gt;
&lt;ol style="margin-top: 0pt; margin-bottom: 0pt"&gt;&lt;li&gt;お目当てのせいかくと個体値 1 を持つ♀のポケモン&lt;/li&gt;
&lt;li&gt;お目当ての個体値 2 を持つ♂のポケモン&lt;/li&gt;&lt;/ol&gt;
&lt;p style="margin-top: 0pt"&gt;が必要になります。&lt;/p&gt;
&lt;p&gt;まずは 1 と 2 を捕まえる作業にかかる時間ですが、意外とたいしたことありません。&lt;br /&gt;
1 と 2 からお目当てのせいかくと個体値 1、2 をもつポケモンを生ませることの方が時間がかかります。&lt;/p&gt;
&lt;p&gt;しかも、、、これには “せいかく” と “とくせい” の罠があります。&lt;br /&gt;
たとえば、せいかくが♀でないと進化できなかっり、とくせいが違ったり、、とにかく泣きをみますが、&lt;br /&gt;
ポジティブに考えてください。そのポケモンを新たに親にすることで、お目当てのポケモンが出てくる確率が 2 倍になります。&lt;br /&gt;
人生ポジティブにいきましょう！！！！&lt;/p&gt;

&lt;h2 style="margin-top: 30pt; margin-bottom: 0pt"&gt;3. 努力値調整&lt;/h2&gt;
&lt;p style="margin-top: 5pt"&gt;努力値の調整はとても簡単です。&lt;br /&gt;
ですが、知識が必要です。&lt;/p&gt;
&lt;p&gt;努力値とは、各能力を上げることができるものです。&lt;br /&gt;
タウリンなどの薬を使うか、ポケモンを戦わせることか、パワーベルトなどの持たせるアイテムで手に入るポイントです。&lt;br /&gt;
タマゴから生まれたてのポケモン、捕まえたばかりのポケモンは努力値が 0 であり、自由に各能力値に振り分けることができます。&lt;/p&gt;
&lt;p&gt;薬は一つで 10 努力値が手に入りますが、その能力値の努力値が 100 を超えると使うことができなくなります。&lt;br /&gt;
ポケモンを倒すことで手に入ることができる努力値は、ポケモンによって異なります。ぐぐりましょう。&lt;br /&gt;
ですが、ポケモンの長所と対応しているので、だいたいわかります (ワンリキーはこうげき +1 、イシツブテはぼうぎょ +1 etc.)。&lt;br /&gt;
もたせるアイテムは、上の倒したポケモンによる努力値とは別に、+4 上乗せすることができます。&lt;/p&gt;
&lt;p&gt;全部で 510 振り分けることができますが、各能力には 255 までしか振り分けることができません。&lt;/p&gt;
&lt;p&gt;また、ちょうど 4 の倍数になるように調整しましょう。&lt;br /&gt;
4 で割った商が有効になるので、 252 振り分けたものと、 255 振り分けたのは同じことになってしまいます。&lt;/p&gt;
&lt;p&gt;以上です。&lt;/p&gt;
&lt;p style="margin-top: 30pt"&gt;では、おさらいに、ポケモン育成の一例を紹介します。&lt;br /&gt;
金銀で大人気、ハッサムを育てるとします。&lt;/p&gt;
&lt;p&gt;バトンタッチが使えるハッサム (進化前はストライク)&lt;br /&gt;
せいかく　　：ゆうかん (攻撃 UP、素早さ DOWN)&lt;br /&gt;
引き継ぐわざ：バトンタッチ (グライガーから遺伝)&lt;br /&gt;
個体値　　　：攻撃 31、特殊 31&lt;br /&gt;
努力値　　　：攻撃 252、特殊 252、HP 4 (2 あまる)&lt;/p&gt;
&lt;p&gt;まず、とくせいがシンクロ、せいかくがゆうかんなポケモンをつかまえる。&lt;/p&gt;
&lt;p&gt;つぎに、そのポケモンを先頭に、ストライクを捕まえる。&lt;br /&gt;
攻撃の個体値が 31 (あばれるのがすき)&lt;br /&gt;
特殊の個体値が 31 (イタズラがすき)&lt;br /&gt;
をつかまえるまで、ポケトレを使って捕まえまくる。&lt;br /&gt;
どちらも♀でなくてはならない。♂は倒せ！&lt;/p&gt;
&lt;p&gt;これとは別に、特殊か攻撃の個体値が高い♂のグライガーをつかまえる。&lt;/p&gt;
&lt;p&gt;捕まえたら、ストライクの♀とバトンタッチを覚えたグライガーを育て屋に預け、タマゴを生ませる。&lt;br /&gt;
これにより、お目当てのせいかく、お目当ての個体値、引き継いだバトンタッチを持ったストライク♂をてにいれる。&lt;/p&gt;
&lt;p&gt;最後にストライク同士を預け屋にあずけて。お目当てのものがでるまで頑張る！&lt;/p&gt;
&lt;p&gt;お目当てのポケモンが捕まえられたらこっちのもの。&lt;/p&gt;
&lt;p&gt;まずは薬 10 個で努力値を、攻撃 100、特殊 100 まであげる。&lt;br /&gt;
つぎに、特殊をあげる道具を持たせて、ポケトレをつかってワンリキー (攻撃 +1) と戦いまくる (38 回)&lt;br /&gt;
一回の戦闘で攻撃 +1 特殊 +4 されるので、 38 回の戦闘により、攻撃 138、特殊 252 となった。&lt;br /&gt;
次に、攻撃をあげる道具を持たせて、ポケトレをつかってワンリキーと戦いまくる (23 回)&lt;br /&gt;
一回の戦闘で攻撃 +5 されるので、 23 回の戦闘により、攻撃 253 特殊 252 となった。&lt;br /&gt;
最後に、HP をあげる道具を持たせて、ワンリキーと戦う。&lt;br /&gt;
これにより、攻撃 +1 HP +1 されるので、攻撃 254 特殊 252 HP 4 となり、努力値調整終了。&lt;br /&gt;
戦闘回数をかぞえるのにさえ間違えなければ大丈夫です。&lt;br /&gt;
回数分の道具を持って行き、毎回戦闘で必ず使うようにする、などがおすすめです。&lt;/p&gt;
&lt;p&gt;これで、念願のハッサムをゲットです、おめでとうございます！！！&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-7648319712744490476?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/7648319712744490476/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/11/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/7648319712744490476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/7648319712744490476'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/11/blog-post.html' title='ポケットモンスター'/><author><name>党員</name><uri>http://www.blogger.com/profile/12132839749955210691</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-2503636280584751471</id><published>2009-10-31T23:15:00.001+09:00</published><updated>2009-11-01T11:59:32.195+09:00</updated><title type='text'>Happy Halloween!</title><content type='html'>&lt;p&gt;竹井です、こんばんは。今日も特に中身のないエントリを書きます。&lt;/p&gt;
&lt;p&gt;ご存知、今日はハロウィンの日。年に一度、死者の魂が生者の許へと訪れる日です。あぁ、日本でいうおお盆の西洋版ですかね。バイトが終わった後、渋谷へと繰り出したのですが、なかなか面白い(笑) 渋谷って本当に夜も決して眠ることがない町ですけど、今晩の賑やかさは特段すごかったです。もともと外国人もそこそこいる渋谷。ハロウィンとなるともう道行く人が思い思いの格好をしていましたよ。&lt;/p&gt;
&lt;p align="center"&gt;&lt;img src="http://www.yutopio.net/img/091031_trick_or_treat.png" width="283" height="64" alt="trick or treat" /&gt;&lt;/p&gt;
&lt;p&gt;うーん、少なくとも今日僕が目撃したのは・・・&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;妖精の羽を背中につけた人&lt;/li&gt;
&lt;li&gt;骸骨を体にまとう人&lt;/li&gt;
&lt;li&gt;カボチャ頭&lt;/li&gt;
&lt;li&gt;死神&lt;/li&gt;
&lt;li&gt;頭からシーツらしき白い布をかぶって、目と口だけ穴あいてる人&lt;/li&gt;
&lt;li&gt;顔をドーランで白塗りして、口裂け男&lt;/li&gt;
&lt;li&gt;オオカミ、馬、トラ、ほか動物系の被り物&lt;/li&gt;
&lt;li&gt;体の右半分が真っ黒、左半分が真っ白な人&lt;/li&gt;
&lt;li&gt;スキン ヘッドに軍服姿&lt;/li&gt;
&lt;li&gt;メイドと執事&lt;/li&gt;
&lt;li&gt;猫耳、犬耳、兎耳！&lt;/li&gt;
&lt;li&gt;ピカチュウ&lt;/li&gt;
&lt;li&gt;ボーリングのピンの格好になった人&lt;/li&gt;
&lt;li&gt;なぜかメイド連れのバットマン・・・、の後を小走りで追いかけるニンフたち&lt;/li&gt;
&lt;li&gt;サンタクロース！？&lt;/li&gt;
&lt;li&gt;その他、色々&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;さすがに銀座線から白装束が降りりてきたときはドキッとしましたよ。それにしても最近のハロウィンは仮装というよりかはコスプレみたいな人も結構いますねぇ。あぁ、願わくば、渋谷にコスプレした理情生だとか、IS 関係者とかがいないことを願うばかり・・・ははは(←力なき笑い)&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091031_ranking.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091031_ranking.jpg" width="200" height="150" alt="HALLOWEEN" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.yutopio.net/img/091031_hachiko.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091031_hachiko.jpg" width="200" height="150" alt="ハチ公前広場" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;にしてもやっぱり人間、お祭りになると暴走するのでしょうか。それか、月の狂気にやられたか・・・。そういえば明後日 (11/2) は満月、中秋の名月の次の満月だから、後の月。ここんところ、雲の切れ目から控えめにのぞかせる月の面が非常にきれいです。この間の火曜日、あまりにも月がきれいで思わずキャンパス内で写真を撮っていたら、警備員さんに怪しまれたのか、声かけられました・・・。月曜が台風のせいで終日雨、きっとそのおかげで空気が澄んでたんでしょうかね。その日、沈み際の月が赤々と見えました。あ、木星も見えましたね。&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;最後にハロウィーンに話を戻して・・・。えと、ハロウィーン自体は今日だけなんですけど、ディズニーのお祭りは 11/3 (火) の文化の日までやってるみたいです。先月、ディズニーシーに行ってきたんですが、なかなか素敵でした。TDS のほうではハロウィーンをやるのは今年が初めてらしかったのですが、ショーのクオリティは非常に高かったので、僕は気に入りましたよ。特設ステージでやってるミステリアス マスカレード、是が非でもお勧めします(笑) ではでは。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-2503636280584751471?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/2503636280584751471/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/11/happy-halloween.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/2503636280584751471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/2503636280584751471'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/11/happy-halloween.html' title='Happy Halloween!'/><author><name>Yuto Takei</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-E0fcdUk3Shw/TetNUD5agpI/AAAAAAAAA0Q/5UazaC4oAeQ/s220/254193_1943555760818_1600221779_1962741_2739513_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-959399382065717722</id><published>2009-10-29T17:52:00.001+09:00</published><updated>2009-10-30T01:18:50.594+09:00</updated><title type='text'>献血</title><content type='html'>&lt;p&gt;最近、部活とかでプライベートがけっこう忙しく、先週後半からまるまる 1 週間、仕事の進捗状況がまったく芳しくない竹井です。先週水曜日以降、自分のタスクをこなした覚えがない・・・ヤバい。班長失格、即刻クビとかはゴメンです。まぁ冗談置いといて、今日は CPU 実験と&lt;b&gt;まーーーーったく&lt;/b&gt;関係のないことを書きます。献血のことです。&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091029_card.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091029_card.jpg" width="200" height="150" alt="献血カード" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;実は、先週金曜日の午後、本郷から駒場へ移動する途中、銀座に寄って献血してきたんです。僕自身はかなりしょっちゅう、2 週間に 1 度のペースで献血していて、看護師さんの中にはすっかり僕のことを覚えてくださっている方もいらっしゃるみたいで・・・、この間も献血中いろいろ話してきました。それによると、この時期なんかは風邪をひいちゃって咳止めなどを服薬しているという理由とかで、献血の事前検査で断らざるを得ないことが多いんだそうです。たしかに街頭でもマスクをしていたり、咳していたりする人も増えたかもしれないですねー&lt;/p&gt;
&lt;p&gt;それで「はたちの献血」みたいなキャンペーン広告をたまに見ますけど、ここ近年は献血に協力している人が減っているんだそうです。病院で使われる輸血用の血液製剤は需要が尽きることはないのに、ドナーが以前よりも減っているらしくて、大変なんだそうですよ。ちなみに、僕の記憶が正しければ、たしか一番輸血の理由で多いのが交通事故だそうで、たしか需要のうちの 40% くらいだったと思います (違ったかな？)。案外、他人事とは思えないようなところで輸血が必要になるシチュエーションがあるみたいです。&lt;/p&gt;
&lt;p&gt;まぁそうはいっても、なかなか献血なんて足を運びにくいなんて思ってる人もいるかと。「血液が薄いからダメ」とか、「献血って痛い」とか (あ、確かに針は普通の注射針より太いですけど・・・)、まぁそう思ってる人もたくさんいると思います。けど、それでも！ こんなメリットがありますよ:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;ちょっとだけど、あったかい飲み物とおやつにありつける。&lt;/li&gt;
&lt;li&gt;血液検査をしてくれるから、コレステロールとかの値を知らせてくれる。&lt;/li&gt;
&lt;li&gt;ほんのちょっとばかり、誰かの命を陰ながら支えられた気になれる。&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;僕が初めて献血をしたのは大学 1 年ときの冬 1 月、そういえば雨の日だった・・・。キャンパスに来ていた献血カーでやったのを覚えています。あれから実はこの間でやっと 10 回目になったんです。&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091029_letter.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091029_letter.jpg" width="200" height="150" alt="10 回献血記念の感謝状" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;あぁ、これからも誰か困ってる人を助けられれば・・・1 人でも多くの人が笑顔になればいいな。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-959399382065717722?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/959399382065717722/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/10/blog-post_4200.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/959399382065717722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/959399382065717722'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/10/blog-post_4200.html' title='献血'/><author><name>Yuto Takei</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-E0fcdUk3Shw/TetNUD5agpI/AAAAAAAAA0Q/5UazaC4oAeQ/s220/254193_1943555760818_1600221779_1962741_2739513_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-2821245845938015243</id><published>2009-10-29T16:07:00.015+09:00</published><updated>2009-10-29T21:32:15.275+09:00</updated><title type='text'>はんだ</title><content type='html'>&lt;p&gt;こんにちは、&lt;a href="http://ja.wikipedia.org/wiki/%E3%83%AD%E3%83%BC%E3%82%BC%E3%83%B3%E3%83%A1%E3%82%A4%E3%83%87%E3%83%B3%E3%81%AE%E7%99%BB%E5%A0%B4%E4%BA%BA%E7%89%A9%E4%B8%80%E8%A6%A7#.E6.B0.B4.E9.8A.80.E7.87.88" target="_blank"&gt;党員&lt;/a&gt;こと岡原です。&lt;br /&gt;
党員といっても、&lt;a href="http://ja.wikipedia.org/wiki/%E3%83%AD%E3%83%BC%E3%82%BC%E3%83%B3%E3%83%A1%E3%82%A4%E3%83%87%E3%83%B3" target="_blank"&gt;お人形さん&lt;/a&gt;は&lt;a href="http://ja.wikipedia.org/wiki/THE_IDOLM@STER%E3%81%AE%E7%99%BB%E5%A0%B4%E4%BA%BA%E7%89%A9#.E4.B8.89.E6.B5.A6.E3.81.82.E3.81.9A.E3.81.95.EF.BC.88.E3.81.BF.E3.81.86.E3.82.89_.E3.81.82.E3.81.9A.E3.81.95.EF.BC.89" target ="_blank"&gt;お嫁さん&lt;/a&gt;には入りません。&lt;br /&gt;
頭が悪いので、手を動かすことを担当しています。&lt;/p&gt;
&lt;p&gt;今回は&lt;a href="http://ja.wikipedia.org/wiki/%E3%81%AF%E3%82%93%E3%81%A0" target = "_blank"&gt;はんだ&lt;/a&gt;を紹介します。&lt;br /&gt;
作るのはデバッグ回路を作るための作業となります。&lt;br /&gt;
大学の学生端末室、通称「地下」には作業機器はすべて揃っています。&lt;br /&gt;
回路図を考えれば誰にでもできます。&lt;/p&gt;
&lt;p style="margin-top: 30pt"&gt;...以上です、ではつまらないので、「はんだ」のオレ流を紹介しておしまいにしましょう。&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;イメージは「はんだ」を「つける」ではなく、「流し込む」。&lt;/li&gt;
&lt;li&gt;「はんだこて」は必ず毎回きれいな状態で使うこと。&lt;/li&gt;
&lt;li&gt;「はんだ」は少ないぐらいがちょうどいい。&lt;/li&gt;
&lt;li&gt;「はんだ」をつける前に十分に回路を温める。&lt;/li&gt;
&lt;li&gt;「はんだ」をつけても「はんだこて」をすぐに離さない。&lt;/li&gt;&lt;/ul&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091029_okahara.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091029_okahara.jpg" width="300" height="225" alt="あずさんとツーショット" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-2821245845938015243?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/2821245845938015243/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/10/blog-post_29.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/2821245845938015243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/2821245845938015243'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/10/blog-post_29.html' title='はんだ'/><author><name>党員</name><uri>http://www.blogger.com/profile/12132839749955210691</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-2577297109750541470</id><published>2009-10-27T23:21:00.005+09:00</published><updated>2009-10-28T01:08:38.279+09:00</updated><title type='text'>ハードウェアのお仕事 その2</title><content type='html'>&lt;p style="text-indent: 12pt"&gt;こんばんは。team C# の花元です。今日はハードウェア班の仕事の中で最もハードウェアっぽい仕事、拡張基盤の作成についてお話したいと思います。&lt;/p&gt;
&lt;p style="text-indent: 12pt"&gt;CPU 実験で作る CPU ですが、当然のことながら初めから完全に動作することはまずありません。そこでデバッグ（間違い探し）をしたいのですが、ソフトウェアと違って便利なデバッグ ツールが無いので、自分たちで作る必要があります。team C# ではとりあえず CPU 内部の記憶装置の内容を LED で表示させるデバッグ ツールを作ることにしました。&lt;/p&gt;
&lt;p style="text-indent: 12pt"&gt;ところが私たち理学部情報科学科の人間は理学部の名前の通りそのような実際的な知識がほとんどありません。電圧は？ 回路図は？ 抵抗は？ LED は？ 電気電子工学科の友達がうらやましくなる瞬間です。三人寄ればということで「team ksk」「くい☆たん」との 3 班で協力して 3 つ作る作戦に出ました。&lt;/p&gt;
&lt;p style="text-indent: 12pt"&gt;秋葉原といったらもはや “萌え” の街になってしまった感がありますが、電子部品といったらやはり秋葉原です。秋葉原で部品を買って…ここからが問題でした。半田付けです。半田付けなんてほとんどやったことの無い私たちは、本当に苦戦しました。1 人が火傷する始末。仕方が無いのでゆとり世代の電子工作、&lt;a href="http://ja.wikipedia.org/wiki/%E3%83%96%E3%83%AC%E3%83%83%E3%83%89%E3%83%9C%E3%83%BC%E3%83%89" target="_blank"&gt;ブレッドボード&lt;/a&gt;を使おうと思っていたところ、我らが team C# には半田付け一筋 30 年（自称）のテクニシャンがいることが発覚したので彼に頼むことが出来ました。チーム作業の醍醐味ですね。&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091027_solder.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091027_solder.jpg" alt="半田付けのテクニシャン、岡原さん" width="200" height="150" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.yutopio.net/img/091027_debug.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091027_debug.jpg" alt="完成品、整然と並ぶ 7 セグ LED" width="200" height="150" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="text-indent: 12pt"&gt;そして完成。これで動作…しませんでした。一瞬だけ LED が光ってすぐに消えるという現象に悩まされたのです。こういうとき、ソフトウェアならプログラムの間違いしか考えられませんが、ハードウェアだと僕が書いたプログラムが悪いのか、僕が書いた回路図に間違いがあったのか、彼の半田付けがおかしかったのか中々判別が出来ません。ハードウェアの難しいところです。1 時間くらい試行錯誤した結果、悪いのは電源だということが分かりました。これは意外でした。過去には基盤を冷やすとうまく動作した例なんかもあったりして、本当に何が原因か分からないのがハードウェアの難しさだとよく分かりました&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091027_okahara.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091027_okahara.jpg" alt="仕事終わって IDOLM@STER に興じてる岡原さん、発狂中" width="200" height="150" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.yutopio.net/img/091027_kskdebug.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091027_kskdebug.jpg" alt="team ksk の拡張基板。今週中にこれでテトリスさせるらしい" width="200" height="150" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="text-indent: 12pt"&gt;そうそう、電源といえば最近情報科学科ではパソコンが突然動かなくなるという現象が発生して、これも原因は電源でした。問題の AC アダプタを刺すとパソコンが壊れる始末で大騒ぎでしたよ。&lt;/p&gt;
&lt;p style="text-indent: 12pt"&gt;電源は本当に大切です。スペックには現れませんが、パソコンを買うとき電源の質にもちょっと目を向けてみると良いかもしれませんね。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-2577297109750541470?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/2577297109750541470/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/10/2_27.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/2577297109750541470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/2577297109750541470'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/10/2_27.html' title='ハードウェアのお仕事 その2'/><author><name>mogella</name><uri>http://www.blogger.com/profile/06339639468496927542</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-5454844504819133141</id><published>2009-10-21T18:28:00.010+09:00</published><updated>2010-06-01T18:00:41.761+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='コンパイラ'/><title type='text'>コンパイラのお仕事 その2</title><content type='html'>&lt;p&gt;こんにちは、Team C# の竹井です。なんかだんだんこの日記もカオスな感じになってきたのは気のせいだと信じたいですけど・・・。&lt;/p&gt;
&lt;p&gt;はいそれで&lt;a href="http://cpuexp.blogspot.com/2009/10/1.html"&gt;前回&lt;/a&gt;は、コンパイラというのはどんなものなのかについて簡単に説明したんですが、今日は実際にどのような処理を経てコンパイルが行われるかについて、具体的に少し踏み込んで説明します。&lt;a href="http://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%83%91%E3%83%A9%E3%83%80%E3%82%A4%E3%83%A0" target="_blank"&gt;プログラミング言語の種類&lt;/a&gt;やコンパイラの製作者によって少しずつ処理内容や順番がもちろん変わってくるのですが、大まかには次のような流れを経ます。&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://ja.wikipedia.org/wiki/%E5%AD%97%E5%8F%A5%E8%A7%A3%E6%9E%90" target="_blank"&gt;字句解析&lt;/a&gt;&lt;/b&gt; (Lexical analysis)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;a href="http://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AA%E3%83%97%E3%83%AD%E3%82%BB%E3%83%83%E3%82%B5" target="_blank"&gt;解釈前処理&lt;/a&gt;&lt;/b&gt; (Preprocessing)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;a href="http://ja.wikipedia.org/wiki/%E6%A7%8B%E6%96%87%E8%A7%A3%E6%9E%90" target="_blank"&gt;構文解析&lt;/a&gt;&lt;/b&gt; (Syntactic analysis)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;a href="http://ja.wikipedia.org/wiki/%E5%9E%8B%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0#.E5.9E.8B.E6.A4.9C.E6.9F.BB" target="_blank"&gt;型チェック&lt;/a&gt;&lt;/b&gt; (Type checking)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;a href="http://ja.wikipedia.org/wiki/%E4%B8%AD%E9%96%93%E8%A8%80%E8%AA%9E" target="_blank"&gt;中間コード生成&lt;/a&gt;&lt;/b&gt; (Intermediate code generation)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;a href="http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%A9%E6%9C%80%E9%81%A9%E5%8C%96" target="_blank"&gt;最適化&lt;/a&gt;&lt;/b&gt; (Optimization)&lt;br /&gt;
  &lt;ul&gt;&lt;li&gt;&lt;a href="http://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%A0%E3%83%80%E8%A8%88%E7%AE%97#.CE.B1-.E5.A4.89.E6.8F.9B" target="_blank"&gt;α 変換&lt;/a&gt; (α-conversion)&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%83%A9%E3%82%A4%E3%83%B3%E5%B1%95%E9%96%8B" target="_blank"&gt;インライン展開&lt;/a&gt; (Inline expansion) もしくは &lt;a href="http://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%A0%E3%83%80%E8%A8%88%E7%AE%97#.CE.B2-.E7.B0.A1.E7.B4.84" target="_blank"&gt;β 簡約&lt;/a&gt; (β-reduction)&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://ja.wikipedia.org/wiki/%E5%AE%9A%E6%95%B0%E7%95%B3%E3%81%BF%E8%BE%BC%E3%81%BF" target="_blank"&gt;定数伝播&lt;/a&gt; (Constant propagation)&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://ja.wikipedia.org/wiki/%E3%83%87%E3%83%83%E3%83%89%E3%82%B3%E3%83%BC%E3%83%89%E5%89%8A%E9%99%A4" target="_blank"&gt;不要変数削除&lt;/a&gt; (Dead code elimination)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;a href="http://ja.wikipedia.org/wiki/%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%E5%89%B2%E3%82%8A%E4%BB%98%E3%81%91" target="_blank"&gt;レジスタ割り当て&lt;/a&gt;&lt;/b&gt; (Register allocation)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;a href="http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%BC%E3%83%89%E7%94%9F%E6%88%90" target="_blank"&gt;最終コード出力&lt;/a&gt;&lt;/b&gt; (Output)&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;やー、こうみるとコンパイラというのは本当にたくさんの仕事をこなしています、一つ一つが立派な Wikipedia の項目になってしまうほど・・・。大まかに二分して、中間コード生成までをフロントエンド部と呼び、それ以降をバックエンド部と呼ぶこともあります。ちょっとこの blog では詳細を全部書ききれるほど体力があるか自信ないのですが、それでも僕自身がやってる仕事を追いかけながら、少しずつ解説出来ればいいなぁと思っています。ちなみにうちの班 Team C# のコンパイラは、バックエンド部の開発をちょうど今日明日から開始します。&lt;/p&gt;
&lt;p&gt;それで今回のエントリでは、最初の&lt;b&gt;字句解析&lt;/b&gt;と&lt;b&gt;構文解析&lt;/b&gt;について説明しようと思います。この 2 つの処理、あわせて文法解析といいますが、これは基本的に入力されたプログラムの表面上の意味を汲み取るというのが仕事です。たとえば簡単のために、次のようなプログラムを見てください (こーゆー意味のないプログラムを作るのって色々つらいんですけどー・・・)。&lt;/p&gt;
&lt;pre&gt;y = 10 + x;
if y &gt; 3.14 then
  write("hello world");
else
  stop();&lt;/pre&gt;
&lt;p&gt;こういう人間が書いたプログラムを、字句解析のレベルでまずは単語ごとに分解していきます。たとえばこんな感じ:&lt;/p&gt;
&lt;pre&gt;[識別子 (y)] [イコール] [整数値 (10)] [プラス] [識別子 (x)] [セミコロン]
[IF キーワード] [識別子 (y)] [大なり] [浮動小数点値 (3.14)] [THEN キーワード]
  [識別子 (write)] [左括弧] [文字列 (hello world)] [右括弧] [セミコロン]
[ELSE キーワード]
  [識別子 (stop)] [左括弧] [右括弧] [セミコロン]&lt;/pre&gt;
&lt;p&gt;これって、勘がいい人だと気づくかもしれないんですが、高校のころにやった古文の文法解釈に似てるんですよね。名詞、助詞、動詞の連体形があって助動詞がナンタラカンタラ・・・、ひたすら苦労した覚えがありますよ。今になってみれば当然のような分析の手段だと思いますが、この方法はとっても強力です。話を戻すと、このようにして、人さまのコードをコンピュータが読めるデータに直していくんです。ちなみに、プログラム中の&lt;a href="http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88_(%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF)" target="_blank"&gt;コメント&lt;/a&gt;はこの段階でカットされます。&lt;/p&gt;
&lt;p&gt;さて、単語 (&lt;a href="http://ja.wikipedia.org/wiki/%E5%AD%97%E5%8F%A5%E8%A7%A3%E6%9E%90#.E3.83.88.E3.83.BC.E3.82.AF.E3.83.B3" target="_blank"&gt;トークン&lt;/a&gt;と呼びます) ごとに分解されたプログラムは、次の構文解析の段階でより構造的なデータに置き換えられていきます。たとえば、&lt;code&gt;1 + 1&lt;/code&gt; のような並びが出てきたら、これは数式だとみなすことができます。そこで、先ほど字句解析でトークン列の中で &lt;code&gt;[整数] [プラス] [整数]&lt;/code&gt; を &lt;code&gt;[式]&lt;/code&gt; というような一つの別のトークンに置き換えていけばいけばいいはずです。具体的に、先ほど出したプログラムを解釈するためには、たとえば次のようなルールがあれば &lt;code&gt;[プログラム]&lt;/code&gt; というトークンから派生したものだと見なせます。&lt;/p&gt;
&lt;pre&gt;[プログラム] ::= [文]&lt;sup&gt;*&lt;/sup&gt;

[文] ::= [識別子] [イコール] [式] [セミコロン]
         [IF キーワード] [式] [THEN キーワード] [文] [ELSE キーワード] [文]
         [識別子] [左括弧] [パラメータ リスト]&lt;sub&gt;opt&lt;/sub&gt; [右括弧] [セミコロン]

[式] ::= [リテラル]
         [識別子]
         [式] [プラス] [式]
         [式] [大なり] [式]

[パラメータ リスト] ::= [パラメータ リスト] [カンマ] [式]
                        [式]

[リテラル] ::= [整数値]
               [浮動小数点値]
               [文字列]

トークン右上の &lt;sup&gt;*&lt;/sup&gt; は 0 回以上の繰り返しを示し、右下の &lt;sub&gt;opt&lt;/sub&gt; は任意であることを示します。&lt;/pre&gt;
&lt;p&gt;このようにして、字句解析を通ってトークン列になったプログラムは、構文解析を通して一つのトークンに集約されます。ちょっと専門用語を使うと、上のような「あるトークンは別のトークン列の並びである」というルールを&lt;b&gt;&lt;a href="http://ja.wikipedia.org/wiki/%E5%BD%A2%E5%BC%8F%E6%96%87%E6%B3%95#.E7.94.9F.E6.88.90.E6.96.87.E6.B3.95" target="_blank"&gt;生成規則&lt;/a&gt;&lt;/b&gt;、逆にトークン列を見て派生元となるトークンへ戻す作業を&lt;b&gt;還元&lt;/b&gt;、そして派生のおおもとになるトークンを&lt;b&gt;開始記号&lt;/b&gt; (この例では &lt;code&gt;[プログラム]&lt;/code&gt;)、といいます。言語学的にはこのような構造を持つ文法を&lt;a href="http://ja.wikipedia.org/wiki/%E6%96%87%E8%84%88%E8%87%AA%E7%94%B1%E6%96%87%E6%B3%95" target="_blank"&gt;文脈自由文法&lt;/a&gt;といい、僕の知る限りすべてのプログラミング言語の文法はすべて、この文法クラスに入ります。ちなみに、先ほどのようなトークン (言語学的には終端記号、非終端記号という呼び方をします) を開始記号に還元するアルゴリズムとしては、いろんな方法がありますが、&lt;a href="http://ja.wikipedia.org/wiki/LALR%E6%B3%95" target="_blank"&gt;LALR 法&lt;/a&gt;という手法が一番使われてます (詳細は省きます)。ちょっと詳しくなりすぎましたね、構文解析をすると、次のようなツリー構造のプログラムが得られます。&lt;/p&gt;
&lt;pre&gt;(Program
  (Sentence
    (Assignment
      (Identifier y)
      (Add
        (Int 10)
        (Identifier x))))
  (Sentence
    (If
      (Greater
        (Identifier y)
        (Float 3.14))
      (Function
        (Identifier write)
        (Parameters
          (String "hello world")))
      (Function
        (Identifier stop)))))&lt;/pre&gt;
&lt;p&gt;このようなツリー構造のデータにした後、ここからさまざまな分析を行って、プログラムを機械が実行しやすい方法に変換していきます。僕のお仕事紹介、次回はいつになるかわかりませんが、たぶん次は型チェックとかについて説明出来たらと思ってます。&lt;/p&gt;
&lt;p style="font-size: 8pt; margin-left: 50px; margin-right: 50px"&gt;(後世の理情生でこの日記を読むような奇特な人へ) この記事の前半に出てくる文脈自由文法という概念については、4 学期の形式言語理論の授業で習います。最初に&lt;a href="http://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%BC%E3%83%88%E3%83%9E%E3%83%88%E3%83%B3" target="_blank"&gt;オートマトン&lt;/a&gt;について勉強しますが、そのあと&lt;a href="http://ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E6%96%87%E6%B3%95" target="_blank"&gt;正規文法&lt;/a&gt;とよばれる一番簡単な文法クラスについて学び、そののちオートマトンを利用した正規文法の受理方法を学びます。そして、文脈自由文法が導入され、&lt;a href="http://ja.wikipedia.org/wiki/%E3%83%81%E3%83%A7%E3%83%A0%E3%82%B9%E3%82%AD%E3%83%BC%E6%A8%99%E6%BA%96%E5%BD%A2" target="_blank"&gt;チョムスキー標準形&lt;/a&gt;という特殊な形式での表記と正規表現との関係などまでを最終的に学びます (したがって文脈自由文法もオートマトンで受理できます)。正規文法と文脈自由文法は&lt;a href="http://ja.wikipedia.org/wiki/%E3%83%81%E3%83%A7%E3%83%A0%E3%82%B9%E3%82%AD%E3%83%BC%E9%9A%8E%E5%B1%A4" target="_blank"&gt;チョムスキー階層&lt;/a&gt;では下位のレベルに属し、上位には&lt;a href="http://ja.wikipedia.org/wiki/%E6%96%87%E8%84%88%E4%BE%9D%E5%AD%98%E6%96%87%E6%B3%95" target="_blank"&gt;文脈依存文法&lt;/a&gt; (生成規則の左辺が複数の記号からなる) などがあります。また、後半に出てくる文脈自由文法の解析方法については、言語処理系論という 3 年夏の授業で、&lt;a href="http://ja.wikipedia.org/wiki/LL%E6%B3%95" target="_blank"&gt;LL 法&lt;/a&gt;, &lt;a href="http://ja.wikipedia.org/wiki/LR%E6%B3%95" target="_blank"&gt;LR 法&lt;/a&gt;, &lt;a href="http://ja.wikipedia.org/wiki/%E5%8D%98%E7%B4%94LR%E6%B3%95" target="_blank"&gt;SLR 法&lt;/a&gt;を学んでから、最終的に LALR 法を学びます。そのほか同じく 3 年夏の Prolog 演習で、チョムスキー標準形の文脈自由文法についてのみ対応できる &lt;a href="http://ja.wikipedia.org/wiki/CYK%E6%B3%95" target="_blank"&gt;CYK アルゴリズム&lt;/a&gt;の実装を行います。参考まで。&lt;/p&gt;
&lt;p&gt;おまけ、今日の僕、たぶんまじめに仕事してます。そういえば僕が登場したのは初めてかなー・・・、僕がいつもカメラ持ってるから、撮られることがほとんどないんですよね。別にいつもこんなスタイルなわけぢゃないです。&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091021_me.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091021_me.jpg" width="200" height="150" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-5454844504819133141?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/5454844504819133141/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/10/2.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/5454844504819133141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/5454844504819133141'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/10/2.html' title='コンパイラのお仕事 その2'/><author><name>Yuto Takei</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-E0fcdUk3Shw/TetNUD5agpI/AAAAAAAAA0Q/5UazaC4oAeQ/s220/254193_1943555760818_1600221779_1962741_2739513_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-2984836575676624094</id><published>2009-10-21T15:01:00.004+09:00</published><updated>2009-10-21T16:36:25.738+09:00</updated><title type='text'>僕に論理は要らない</title><content type='html'>&lt;p style="text-indent: 12pt"&gt;どうしてこんなことになってしまったのか、僕にも分かりません。どうしてこんなことになってしまったのか…&lt;/p&gt;
&lt;p style="text-indent: 12pt"&gt;僕と&lt;a href="http://www-tsujii.is.s.u-tokyo.ac.jp/lilfes/index-j.html" target="_blank"&gt;彼女&lt;/a&gt;の出会いは大学三年の春で、それはとても衝撃的でした。人間、初対面ならなるべく愛想良く接しようとするはずです。でも彼女は最初から愛想が悪かったですね。何しろ&lt;a href="http://ja.wikipedia.org/wiki/%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA" target="_blank"&gt;身に着けているもの&lt;/a&gt;が彼女の要求と少し違うだけで、彼女は一切口を利いてくれなくなるんですから。仕方ないので、僕は既に持っている&lt;a href="http://en.wikipedia.org/wiki/Flex_lexical_analyser" target="_blank"&gt;新しいもの&lt;/a&gt;を捨てて、わざわざ&lt;a href="http://packages.debian.org/ja/sid/flex-old" target="_blank"&gt;お古&lt;/a&gt;を身に着ける羽目になってしまいました。仕方ないんです。だって初対面なのに気を悪くさせる訳にはいかないでしょう？&lt;/p&gt;
&lt;p style="text-indent: 12pt"&gt;彼女は論理さえ正しければ、とても素直な人でした。でも、僕には彼女の言うところの "論理" が全く分かりませんでした。さらに悪いことに、彼女は論理が正しくないと手がつけられないほど怒るんです。気に食わないことがあるのなら一回だけ言ってくれれば僕は直すよう努力するのに、彼女は&lt;a href="http://ja.wikipedia.org/wiki/%E3%83%90%E3%83%83%E3%82%AF%E3%83%88%E3%83%A9%E3%83%83%E3%82%AD%E3%83%B3%E3%82%B0" target="_blank"&gt;何度も&lt;/a&gt;、ひどい時には何万行にも渡って僕の論理を&lt;a href="http://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%A9%E3%83%BC%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8" target="_blank"&gt;非難&lt;/a&gt;してきました。初めは僕が悪いんだ、僕のやり方が悪いんだと思っていましたが…。&lt;/p&gt;
&lt;p style="text-indent: 12pt"&gt;そのうち彼女に深く不信感を抱くようになったのは、彼女は実際に行動に移すまで何も言ってくれないことに気づいたときでした。僕は事前に「こういうことがしたい」と彼女に伝えているのだから、それが嫌なら「&lt;a href="http://ja.wikipedia.org/wiki/%E5%9E%8B%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0#.E5.9E.8B.E6.A4.9C.E6.9F.BB" target="_blank"&gt;そんなことしないで&lt;/a&gt;」と言ってくれればいいんです。でも彼女はそうはしてくれませんでした。&lt;/p&gt;
&lt;p style="text-indent: 12pt"&gt;僕と彼女の間の溝は深くなる一方でした。確かに、論理さえ正しければ彼女は素直でした。でも、どうしても僕には彼女の言うところの"論理"が分からないのです。第一、&lt;a href="http://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0_%28%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%29" target="_blank"&gt;恋愛&lt;/a&gt;に論理なんて必要ないと思いませんか？&lt;/p&gt;
&lt;p style="text-indent: 12pt"&gt;そして、僕は&lt;a href="http://ja.wikipedia.org/wiki/%E5%AD%A6%E5%B9%B4%E5%88%B6%E3%81%A8%E5%8D%98%E4%BD%8D%E5%88%B6" target="_blank"&gt;目的&lt;/a&gt;を達成した次の瞬間、彼女を…。&lt;/p&gt;
&lt;p style="text-indent: 12pt"&gt;Team C# の花元でした。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-2984836575676624094?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/2984836575676624094/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/10/blog-post_21.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/2984836575676624094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/2984836575676624094'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/10/blog-post_21.html' title='僕に論理は要らない'/><author><name>mogella</name><uri>http://www.blogger.com/profile/06339639468496927542</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-5729562464156959090</id><published>2009-10-21T11:21:00.008+09:00</published><updated>2010-06-01T17:59:50.323+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LiLFeS'/><title type='text'>悟りに近づく LiLFeS 入門 (インストール編)</title><content type='html'>&lt;p&gt;また出てきた Team C# の新井です。今日は度々ネタにされる &lt;a href="http://www-tsujii.is.s.u-tokyo.ac.jp/lilfes/index-j.html" target="_new"&gt;LiLFeS&lt;/a&gt; について書こうと思います。簡単に言うと LiLFeS は「&lt;a href="http://ja.wikipedia.org/wiki/Prolog" target="_blank"&gt;Prolog&lt;/a&gt; みたいなもの」で、&lt;a href="http://ja.wikipedia.org/wiki/%E8%AB%96%E7%90%86%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0" target="_new"&gt;論理型言語&lt;/a&gt;の一種です。東大の研究室で開発されました。&lt;/p&gt;
&lt;p&gt;第一回ということで、まずはインストール編です。学科で貸与されるノートパソコンには最初から &lt;a href="http://ja.wikipedia.org/wiki/Ubuntu" target="_blank"&gt;Ubuntu&lt;/a&gt; が入っているため、Ubuntu（&lt;a href="http://ja.wikipedia.org/wiki/Debian" target="_blank"&gt;Debian&lt;/a&gt; でも殆ど同じですが）へインストールするつもりで書きます。&lt;/p&gt;
&lt;pre&gt;~$ &lt;b&gt;wget http://www-tsujii.is.s.u-tokyo.ac.jp/downloads/files/lilfes/liblilfes-1.3.8.tar.gz&lt;/b&gt;
~$ &lt;b&gt;tar xzvf liblilfes-1.3.8.tar.gz&lt;/b&gt;
~$ &lt;b&gt;cd liblilfes-1.3.8/&lt;/b&gt;
~/liblilfes-1.3.8$ &lt;b&gt;./configure&lt;/b&gt;
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
(略)
checking for sys/ioctl.h... yes
checking util.h usability... no
checking util.h presence... no
checking for util.h... no
checking FlexLexer.h usability... no
checking FlexLexer.h presence... no
checking for FlexLexer.h... no
configure: error: Cannot find FlexLexer.h (distributed with flex 2.5.4a)&lt;/pre&gt;
おっと、&lt;a href="http://en.wikipedia.org/wiki/Flex_lexical_analyser" target="_blank"&gt;flex&lt;/a&gt; が必要だったようです。
&lt;pre&gt;~/liblilfes-1.3.8$ &lt;b&gt;sudo aptitude install flex&lt;/b&gt;
~/liblilfes-1.3.8$ &lt;b&gt;./configure&lt;/b&gt;
~/liblilfes-1.3.8$ &lt;b&gt;make&lt;/b&gt;
(略)
code.cpp:44: warning: deprecated conversion from string constant to 'char*'
code.cpp:45: warning: deprecated conversion from string constant to 'char*'
code.cpp:46: warning: deprecated conversion from string constant to 'char*'
code.cpp:47: warning: deprecated conversion from string constant to 'char*'
code.cpp:48: warning: deprecated conversion from string constant to 'char*'
code.cpp:655: warning: deprecated conversion from string constant to 'char*'
code.cpp:655: warning: deprecated conversion from string constant to 'char*'
code.cpp:655: warning: deprecated conversion from string constant to 'char*'
code.cpp:655: warning: deprecated conversion from string constant to 'char*'
code.cpp:655: warning: deprecated conversion from string constant to 'char*'
code.cpp:655: warning: deprecated conversion from string constant to 'char*'
code.cpp:655: warning: deprecated conversion from string constant to 'char*'
code.cpp:655: warning: deprecated conversion from string constant to 'char*'
code.cpp:655: warning: deprecated conversion from string constant to 'char*'
code.cpp:655: warning: deprecated conversion from string constant to 'char*'
code.cpp:655: warning: deprecated conversion from string constant to 'char*'
code.cpp:655: warning: deprecated conversion from string constant to 'char*'
code.cpp:655: warning: deprecated conversion from string constant to 'char*'
code.cpp:655: warning: deprecated conversion from string constant to 'char*'
code.cpp:655: warning: deprecated conversion from string constant to 'char*'
code.cpp:655: warning: deprecated conversion from string constant to 'char*'
code.cpp:655: warning: deprecated conversion from string constant to 'char*'
code.cpp:655: warning: deprecated conversion from string constant to 'char*'
code.cpp:655: warning: deprecated conversion from string constant to 'char*'
code.cpp:655: warning: deprecated conversion from string constant to 'char*'
code.cpp:655: warning: deprecated conversion from string constant to 'char*'
code.cpp:655: warning: deprecated conversion from string constant to 'char*'
code.cpp:655: warning: deprecated conversion from string constant to 'char*'
code.cpp:655: warning: deprecated conversion from string constant to 'char*'
code.cpp:655: warning: deprecated conversion from string constant to 'char*'
code.cpp:655: warning: deprecated conversion from string constant to 'char*'
code.cpp:655: warning: deprecated conversion from string constant to 'char*'
code.cpp:655: warning: deprecated conversion from string constant to 'char*'
code.cpp:655: warning: deprecated conversion from string constant to 'char*'
code.cpp:655: warning: deprecated conversion from string constant to 'char*'
(以下引き続き warning)&lt;/pre&gt;
大量の warning に負けないでもう少し
&lt;pre&gt;~/liblilfes-1.3.8$ &lt;b&gt;sudo make install&lt;/b&gt;&lt;/pre&gt;
これでインストール完了です。
お決まりの Hello, world! を走らせてみましょう。
&lt;pre&gt;~/liblilfes-1.3.8$ &lt;b&gt;lilfes&lt;/b&gt;
LiLFeS 1.3.8    [PROFILE] [REGEX]
Copyright (c) 1997-2006, Takaki Makino and Tsujii lab., Tokyo Univ.
&gt; &lt;b&gt;?- print("Hello, world!").&lt;/b&gt;
セグメンテーション違反です
~/liblilfes-1.3.8$&lt;/pre&gt;
&lt;p&gt;(ﾟдﾟ　)&lt;br /&gt;
&lt;br /&gt;
( ﾟдﾟ )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;?- halt.&lt;/b&gt;　でLiLFeSインタプリタを終了できます。
&lt;pre&gt;~/liblilfes-1.3.8$ &lt;b&gt;lilfes&lt;/b&gt;
LiLFeS 1.3.8    [PROFILE] [REGEX]
Copyright (c) 1997-2006, Takaki Makino and Tsujii lab., Tokyo Univ.
&gt; &lt;b&gt;?- halt.&lt;/b&gt;
セグメンテーション違反です
~/liblilfes-1.3.8$&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;
&lt;span style="font-weight: bold; color: rgb(204, 0, 0); font-size: 180%" &gt;確かに終了した&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
初回授業のあと地下へ行ってみんなでインストールして爆笑&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;
&lt;br /&gt;
&lt;br /&gt;
とここでネタばらし！&lt;br /&gt;
実は flex パッケージではなく flex-old パッケージが必要だったのです。&lt;br /&gt;
&lt;br /&gt;
地下の人が気づいて既に動かせてはいましたが、TA から連絡が来たのは数日後でしたね！&lt;/p&gt;
&lt;pre&gt;~/liblilfes-1.3.8$ &lt;b&gt;sudo aptitude purge flex&lt;/b&gt;　&lt;span style="color: rgb(153, 153, 153);"&gt;← configure 辺りで指定すれば必要なかったかも&lt;/span&gt;
~/liblilfes-1.3.8$ &lt;b&gt;sudo aptitude install flex-old&lt;/b&gt;
~/liblilfes-1.3.8$ &lt;b&gt;./configure&lt;/b&gt;
~/liblilfes-1.3.8$ &lt;b&gt;make&lt;/b&gt;
~/liblilfes-1.3.8$ &lt;b&gt;sudo make install&lt;/b&gt;&lt;/pre&gt;
&lt;p&gt;続きはきっと班員の誰かが書くので請うご期待&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-5729562464156959090?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/5729562464156959090/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/10/lilfes.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/5729562464156959090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/5729562464156959090'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/10/lilfes.html' title='悟りに近づく LiLFeS 入門 (インストール編)'/><author><name>新井</name><uri>http://www.blogger.com/profile/16003749822605674443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-8529916095786207231</id><published>2009-10-21T00:30:00.002+09:00</published><updated>2009-10-21T02:19:45.521+09:00</updated><title type='text'>RT 動いたらしいー</title><content type='html'>&lt;p&gt;こんばんは、Team C# の竹井です。この blog も書くのに協力してくれる人が増えてくれて、ちょっとずつ盛り上がってきました。ひとつ前ではチーム ksk の iwi さんこと秋葉くんが&lt;a href="http://cpuexp.blogspot.com/2009/10/blog-post_20.html"&gt;おめでたい記事&lt;/a&gt;を書いてくれたので、ちと補足。&lt;/p&gt;
&lt;p&gt;実は、彼らのチームって今年の代のゴールデン メンバが集まったようなチームで、実力レベルは最高水準。僕ら Team C# にとっては、非常にいい目標です。もちろん彼らだって僕らだってトップは目指しているのですが、お互いに秘密主義なわけじゃないので、技術供与みたいなこともありますよ。&lt;/p&gt;
&lt;p&gt;まぁ、それで本題。昨日、彼らが何をやったかをもう一度簡単にさらっておくと、最終的に動作させる実験基板上にチーム内で作った CPU の回路を焼き付けて、それでレイ トレーシングというプログラムをその CPU で実行して画像を得られたというのが、実際の成果です。で、これがどのくらい素晴らしいかというと・・・ふつう、基板で実際に動かす前に回路が正しいかどうかの検証をするために、回路と同じ動きをするシミュレータをソフトウェアで作成します。そこでレイトレーシングが動くのが、たいていの班ではだいたい 10 月末ごろ (?) らしく、それが終わった後にやっと基板で動くのが 11 月とか 12 月です。それを、彼らは実験はじまって 3 週間たたずそこまでやり遂げたので、驚異的な速度です。&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091020_audience.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091020_audience.jpg" alt="動かす直前、すごい人だかり" width="200" height="150" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.yutopio.net/img/091020_console.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091020_console.jpg" alt="終わった！ 339 秒" width="200" height="150" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.yutopio.net/img/091020_first_image.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091020_first_image.jpg" alt="出力画像" width="200" height="150" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;上の写真が、まさに昨日のその瞬間。動かすときには、学科の人間の半分が集まってすごい人だかり。誰にとっても、なかなかない興奮だったんですね。その次の写真が、基板との通信を行うプログラム。終了したあとの画像ですが、339.625 秒という文字が出てます。初回のトライでこの速度っていうのも、歴代の記録を見てもなかなか速いんだそうですよ。それで、実際に基板が生成した画像を開いたのが最後の写真。床の表示が白くなっていますが、正しくはタイルになります。彼らに聞いたら、浮動小数点の切り捨て処理を行う&lt;a href="http://ja.wikipedia.org/wiki/%E5%BA%8A%E9%96%A2%E6%95%B0%E3%81%A8%E5%A4%A9%E4%BA%95%E9%96%A2%E6%95%B0#.E5.BA.8A.E9.96.A2.E6.95.B0" target="_blank"&gt;floor 関数&lt;/a&gt;の動作に不具合があって、そのせいで床のタイルのテクスチャが張れなかったということらしいです。床だけに床関数の問題だそうで。でも、結局そのあとすぐ直ったみたいです。&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091020_contest.png" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091020_contest.png" alt="シミュレータでの描画" width="200" height="150" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ちなみに高解像度だとこんな感じの画像が出てくるんです。うちの班の話に戻ると、先週の土曜にシミュレータで ksk 班が画像を出すのに成功したという話を聞いて「うちの班も負けてられん」ってことで、コンパイラ係の僕が発奮しまして、月曜の午後 3 時半 (だから実は彼らが基板上で動かす直前の話) に画像だけは出るようになったんです。おもに、コンパイル処理の途中で得られる中間言語を、C# 風にフォーマットしなおして、それを実行しただけなんですけどね・・・。結局、今日の第 2 回目の進捗報告会では早々と 2 班が画像を出すという例年にない爆速っぷりだったのでした。&lt;/p&gt;
&lt;p&gt;あぁ、早く僕らも基板上で動く日が来るといいなぁ・・・ (現時点ではひとえに僕の働きにかかってるんですが)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-8529916095786207231?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/8529916095786207231/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/10/rt.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/8529916095786207231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/8529916095786207231'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/10/rt.html' title='RT 動いたらしいー'/><author><name>Yuto Takei</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-E0fcdUk3Shw/TetNUD5agpI/AAAAAAAAA0Q/5UazaC4oAeQ/s220/254193_1943555760818_1600221779_1962741_2739513_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-2358945100848606973</id><published>2009-10-20T21:31:00.011+09:00</published><updated>2009-10-21T01:21:59.876+09:00</updated><title type='text'>レイトレーシング動作</title><content type='html'>&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091020_kskrt.png" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091020_kskrt.png" alt="Ray Trace 実行結果" width="320" height="222" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin-top: 20pt"&gt;こんにちは、はじめまして。チーム ksk の秋葉です。ここはチーム C# の CPU 実験日記ですが、竹井が他の班の人にも記事を書いてほしいと言っていたので、記事を書くことにしました。&lt;/p&gt;
&lt;p style="margin-top: 20pt"&gt;昨日 (10/19) 我々の班はついに、作成した CPU 上で課題であるレイトレーシングのプログラムを正しく実行することができました。&lt;/p&gt;
&lt;p style="margin-top: 20pt"&gt;レイトレーシングが正しく動作した際には非常に感動しました。動作に至るまでに開発しなければならないものは多岐に渡り、その全てが揃うことはもちろん、その全てが正常に動作しなければ正しい画像は出力されません。班員で力を合わせ、分担して開発し、組み合わせ、そして皆でデバッグを行いました。&lt;/p&gt;
&lt;p style="margin-top: 20pt"&gt;我々の目標は、新記録の樹立です。CPU 実験では、最終的なレイトレーシングの実行時間でコンテストが行われ、記録が残ります。正常動作する CPU の完成がその挑戦のスタート位置だと考え、早期の完成を目指しました。&lt;/p&gt;
&lt;p style="margin-top: 20pt"&gt;なお、昨日はじめて動かした際の記録は 338.985 秒でした。その後、班員が色々な最適化を施し、1 日で上の画像の通り 191.055 秒となりました。ちなみに、去年の最高記録は 10 分程度らしく、既に去年の最高記録を破っているそうです。&lt;/p&gt;
&lt;p style="margin-top: 20pt"&gt;しかし、過去の公式最高記録は 18.407 秒、そして非公式記録は 8.983 秒です。なかなか目標は手ごわいです。そして、6 秒を切れば前学期の TA がお寿司を奢ってくれることになっています。&lt;/p&gt;
&lt;p style="margin-top: 20pt"&gt;今日のミーティングで、さっそく次期 CPU の命令セットが大まかに決まりました。これからも気を抜かず頑張っていこうと思うので、よろしくお願いします。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-2358945100848606973?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/2358945100848606973/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/10/blog-post_20.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/2358945100848606973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/2358945100848606973'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/10/blog-post_20.html' title='レイトレーシング動作'/><author><name>iwiwi</name><uri>http://www.blogger.com/profile/00520346090452087631</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-143403652293309268</id><published>2009-10-19T23:53:00.001+09:00</published><updated>2009-10-21T01:13:04.306+09:00</updated><title type='text'>チームの進捗管理</title><content type='html'>&lt;p&gt;こんばんは、竹井です。この間、生協購買部に夕飯を買いに行ったら、おいしそうなエピがあったので買ったんですよ。そしたら、レジで 200 円のパンが値段の打ち間違いで 20,000 円になって、あやうく破産するところでした(笑) いつも支払いは学生証を使ったクレジット決済 (僕らは&lt;a href="http://ja.wikipedia.org/wiki/%E3%83%9D%E3%82%B9%E3%83%88%E3%83%9A%E3%82%A4%E5%9E%8B%E9%9B%BB%E5%AD%90%E3%83%9E%E3%83%8D%E3%83%BC" target="_blank"&gt;ポスペ&lt;/a&gt;とかって呼んでます) で、月々の上限額が 3 万だから先にもしピッとかってやってたら今月の残りは夕食にありつけないとこだった・・・。はい、今日はチームの進捗管理方法について紹介します。&lt;/p&gt;
&lt;p align="center" style="font-size: 8pt"&gt;&lt;a href="http://www.yutopio.net/img/091019_todo.png" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091019_todo.png" alt="おなじみの今日何をする？" width="200" height="150" /&gt;&lt;/a&gt;&lt;br /&gt;
こうみると・・・この日は僕ひとり&lt;/p&gt;
&lt;p&gt;まずはチーム管理の必要性について。この間、ガント チャートのことを書きましたが、実は結構この図は便利で、各作業の優先順位を考えながら、何も割り当てられていないメンバに対してうまい具合に仕事をディスパッチ出来るんです。まぁ詳しい話は省きますけど、うまく活用すると結構便利です。ほかに、タスクの依存関係を&lt;a href="http://ja.wikipedia.org/wiki/%E3%82%B0%E3%83%A9%E3%83%95_(%E3%83%87%E3%83%BC%E3%82%BF%E6%A7%8B%E9%80%A0)" target="_blank"&gt;グラフ&lt;/a&gt; (マイルストーンをノード、タスクをコスト付きエッジにする) に起こして作る &lt;a href="http://ja.wikipedia.org/wiki/Program_Evaluation_and_Review_Technique" target="_blank"&gt;PERT 図&lt;/a&gt;というものを用いた&lt;a href="http://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AA%E3%83%86%E3%82%A3%E3%82%AB%E3%83%AB%E3%83%91%E3%82%B9%E6%B3%95" target="_blank"&gt;クリティカル パス分析&lt;/a&gt;をすることで、タスク グループの最短完遂時間や、作業のボトルネック箇所を特定することができます。が、ここまでやってるチームはなっしんぐ。&lt;/p&gt;
&lt;p&gt;それで、たいていの班では各自でサーバを独自に用意しており、その上に &lt;a href="http://ja.wikipedia.org/wiki/Wiki" target="_blank"&gt;Wiki&lt;/a&gt; を用意して各人の仕事のメモを作ったり、&lt;a href="http://ja.wikipedia.org/wiki/%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E7%AE%A1%E7%90%86%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0" target="_blank"&gt;ソース管理ソフトウェア&lt;/a&gt;を使ったりしているみたいです。うちの班でも、他班と変わらずサーバを地下室に用意し、そこに共用の管理システムを立てることにしました。それが先週の 10/11 (日)、家から 4 台のサーバ、3 台のラップトップ、液晶ディスプレイに Xbox 360 などなどをはるばる担いできたので死ぬほど大変でした・・・ウソです、車で搬入しました。結局、この日は泊まりでサーバのセットアップなどをやって、いろいろ大変でした。&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091019_transport.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091019_transport.jpg" alt="搬入のとき" width="320" height="240" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.yutopio.net/img/091019_servers.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091019_servers.jpg" alt="結局、こうなった" width="180" height="240" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;まぁ残念ながら、まだインストール後、エラー表示しか出ていなくてチーム管理サイトが出来ていないんですが、もうそろそろで立つことでしょう、今度できたらまた紹介するかもです。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-143403652293309268?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/143403652293309268/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/10/blog-post_8955.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/143403652293309268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/143403652293309268'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/10/blog-post_8955.html' title='チームの進捗管理'/><author><name>Yuto Takei</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-E0fcdUk3Shw/TetNUD5agpI/AAAAAAAAA0Q/5UazaC4oAeQ/s220/254193_1943555760818_1600221779_1962741_2739513_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-6199185417445862470</id><published>2009-10-19T23:11:00.011+09:00</published><updated>2009-10-20T22:51:07.507+09:00</updated><title type='text'>ハードウェアのお仕事 その1</title><content type='html'>&lt;p style="text-indent: 12pt"&gt;こんにちは。基盤係の花元です。前回お話したとおり理情では平日でも基本的に 2 限しか講義が無いため、生活リズムが崩壊しがちです。先日午前 3 時ぐらいになんとなーく大学に行きたくなって自転車で大学に向かっていったら職務質問を受けました。&lt;/p&gt;
&lt;p style="margin-left: 12pt; margin-bottom: 0px"&gt;「君、家に帰る途中？」&lt;br /&gt;
「はい…（あ、でも防犯登録している場所と方向が逆だ…）いや、大学に向かう途中です」&lt;br /&gt;
「それは大変ですね（笑）」&lt;/p&gt;
&lt;p style="margin-top: 0px"&gt;と、ちょっとだけ疑いの目を向けられた反応が返ってきてしまいました。&lt;/p&gt;
&lt;p style="text-indent: 12pt"&gt;とまあそんなことはさておき、今回はハードウェアはどんなことをするのか説明したいと思います。ハードウェアは何をするかというと、コンパイラが生成してくれた言語を忠実に実行します。それだけです。ところがただ実行するだけでもさまざまな特徴が出てくるんですね。特に私たち Team C# が今回作る VLIW アーキテクチャは結構特殊なアーキテクチャです。&lt;/p&gt;
&lt;p style="text-indent: 12pt"&gt;&lt;a href="http://ja.wikipedia.org/wiki/VLIW" target="_blank"&gt;VLIW&lt;/a&gt; とは Very Long Instruction Word、現代語訳するとめっちゃ長い命令語です。短い命令語だと「掃除して」「洗濯して」「料理して」と小分けしてハードウェアに伝えないといけない所を VLIW なら「掃除しながら洗濯もしながら料理しといてーな」と一度に命令することが出来ます。&lt;/p&gt;
&lt;p style="text-indent: 12pt"&gt;「えーすごいじゃん。じゃあ何で VLIW は今 popular じゃないの？」と思うかもしれません。実は VLIW にすると命令を出すほうが大変になるんです。例えば「洗濯しながら洗濯物もたたみながら洗濯物をタンスにしまってーな」なんて命令を出しちゃうと、ハードウェア君は何も考えずに洗濯する前の洗濯物をたたみ、洗濯もしていなければたたんですらいない洗濯物をタンスにしまってしまうのです。これでは困りますね。そこで、コンパイラはこのような命令（&lt;a href="http://ja.wikipedia.org/wiki/%E5%91%BD%E4%BB%A4%E3%83%AC%E3%83%99%E3%83%AB%E3%81%AE%E4%B8%A6%E5%88%97%E6%80%A7" target="_blank"&gt;依存関係のある命令&lt;/a&gt;と言います）を出さないようにしつつ、出来るだけ効率よく（この例では）家事をこなせるように命令してあげないといけないのです。&lt;/p&gt;
&lt;p style="text-indent: 12pt; margin-bottom: 0px"&gt;というわけで VLIW アーキテクチャを作る我らが C# 班では&lt;/p&gt;
&lt;ol style="margin-top: 0px; margin-bottom: 0px"&gt;
 &lt;li&gt;コンパイラはとても頭のよい司令官になること大切&lt;/li&gt;
 &lt;li&gt;基盤は上官様の指令を何も考えずにとにかく速く従うことが大切&lt;/li&gt;
&lt;/ol&gt;
&lt;p style="margin-top: 0px"&gt;になります。両方大切ですがコンパイラ係が特に大切ですね。頑張れ竹井君！&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-6199185417445862470?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/6199185417445862470/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/10/1_75.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/6199185417445862470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/6199185417445862470'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/10/1_75.html' title='ハードウェアのお仕事 その1'/><author><name>mogella</name><uri>http://www.blogger.com/profile/06339639468496927542</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-6399024471596413753</id><published>2009-10-19T01:08:00.009+09:00</published><updated>2009-10-19T10:30:50.297+09:00</updated><title type='text'>真・地下カルチャー</title><content type='html'>&lt;p&gt;ここでは初めてお目にかかります。新井です。C# 班ではシミュレータ係をやってます。&lt;/p&gt;
&lt;p&gt;シミュレータというのは CPU 実験で作成するハードウェアのシミュレータのことで、主にコンパイラの動作確認や高速化のための情報収集に使われます。CPU 実験を構成する要素としては真っ先に完成しなければならないソフトウェアです。&lt;/p&gt;
&lt;p&gt;最初はコンパイラ係が楽しそうだなーと思っていたのですが、いろいろあるんですよ。&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;ハードウェア係はやりたくない&lt;/li&gt;
&lt;li&gt;冬コミに申し込んでいる&lt;/li&gt;
&lt;li&gt;シミュレータ係とは最初に働いて後の方は適当に遊撃する係である&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;→シミュレータ係しか選択肢に残らない&lt;br /&gt;
冬コミが重いですね。でも今年の夏は落ちてて、で今年の冬を見送ると来年の夏はまた院試と被るんです。うおおおお…&lt;/p&gt;
&lt;p&gt;さて、そんなことより！&lt;br /&gt;
このブログ見てると理学部情報科学科がよくあるアカデミックな大学ライフーなところに見えると思います &lt;span style="font-size:78%;"&gt;*1&lt;/span&gt; が実態はちょっと違う。秋葉原という土地もそうですがこの相関はなんなんでしょうね。&lt;/p&gt;
&lt;p&gt;（三次元の）女子供は、すっこんでろ。※ただし幼女を除く&lt;/p&gt;
&lt;p&gt;そういうところです。ガチムチな方向ではありません。ちなみに自分は先輩や姉のほうが好きです。&lt;br /&gt;
もちろん全員ではないんですよ。今までここを編集していた竹井君と花元君は猫被ってたわけではなくふつーの人です &lt;span style="font-size:78%;"&gt;*2&lt;/span&gt;。自分の知る限りでは。&lt;br /&gt;
しかし隣の席の人がプロデューサーだったり、彼女持ち（DS の中に）だったり、その人が名前言うだけでとりあえず眼鏡キャラであることが分かったり、いやあ、実に、楽しい。&lt;/p&gt;
&lt;p&gt;そういうわけで自分は地下と CPU 実験の痛いニュース担当として今後も何か書くかもしれません。どうぞよろしくお願いします。&lt;/p&gt;
&lt;p style="font-size: 85%;"&gt;*1　異論は認める。&lt;br /&gt;
*2　異論は認める。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-6399024471596413753?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/6399024471596413753/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/10/blog-post_19.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/6399024471596413753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/6399024471596413753'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/10/blog-post_19.html' title='真・地下カルチャー'/><author><name>新井</name><uri>http://www.blogger.com/profile/16003749822605674443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-1763552463416538024</id><published>2009-10-15T11:40:00.008+09:00</published><updated>2009-10-16T13:32:08.475+09:00</updated><title type='text'>地下カルチャー</title><content type='html'>&lt;p&gt;こんにちは、地下室から愛を送る竹井と花元です。昨日は夜に雹が降り出して、本気でうひょー状態でしたが、まぁ何とか脳みそに穴開かずに生きてます。そういえばコマバックした際、ハードウェア構成法で CPU 実験の宣伝をさりげなく・・・したつもりだったんですが、小林先生がずっと黒板に残してたので、たぶんだいぶ宣伝になってたかと(笑) まぁいいや、今日は地下民 (注: ちかたみ、理情生のこと) が話す言語についてご紹介します。&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091015_hardware.jpg"&gt;&lt;img src="http://www.yutopio.net/img/091015_hardware.jpg" width="300" height="225" alt="ハードウェア構成法の授業" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;とりあえず、まずは &lt;b&gt;Session #1&lt;/b&gt;&lt;/p&gt;
&lt;blockquote&gt;12 時ごろ、8 人くらいでつるんで中央食堂へ。「やべー席が超絶&lt;a href="http://ja.wikipedia.org/wiki/%E3%83%95%E3%83%A9%E3%82%B0%E3%83%A1%E3%83%B3%E3%83%86%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3" target="_blank"&gt;フラグメンテーション&lt;/a&gt;起こしてて、&lt;a href="http://ja.wikipedia.org/wiki/Malloc" target="_blank"&gt;alloc&lt;/a&gt; できないし・・・誰が&lt;a href="http://ja.wikipedia.org/wiki/%E3%83%87%E3%83%95%E3%83%A9%E3%82%B0%E3%83%A1%E3%83%B3%E3%83%86%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3" target="_blank"&gt;デフラグ&lt;/a&gt;しろよ」「俺、&lt;a href="http://ja.wikipedia.org/wiki/CPU%E3%83%A2%E3%83%BC%E3%83%89" target="_blank"&gt;特権モード&lt;/a&gt;発動でちょっと realloc してくるし。さき食券買ってろ」「んにゃ僕は赤門ラーメンにします、辛いの苦手だけど笑」「じゃぁ俺も」etc. というわけで過半数赤門ラーメン。「やっぱ飯の決定は&lt;a href="http://ja.wikipedia.org/wiki/%E5%8F%82%E7%85%A7%E3%81%AE%E5%B1%80%E6%89%80%E6%80%A7" target="_blank"&gt;時間的局所性&lt;/a&gt;があるな」&lt;/blockquote&gt;
&lt;p&gt;日本語訳します。&lt;/p&gt;
&lt;blockquote&gt;「やべー席がかなりバラバラで、まとまって座れる場所ないし・・・誰か詰めてもらいに行けよ」「俺、ちょっと頼んで席空けてもらいにいくわ、さき食券買ってろ」 (中略) 「やっぱみんなで行くと飯が同じもんになるなぁ」&lt;/blockquote&gt;
&lt;p&gt;まぁ結構、日常的にこんな会話が飛び交うあたり、この時点でなかなかカオスなのはお分かりかと。この文章を書いてて、横で友達が爆笑してました、「改めて考えると異常だな」と。続いて &lt;b&gt;Session #2&lt;/b&gt;&lt;/p&gt;
&lt;blockquote&gt;麺類の列はいつもかなり並んでます。「やばいマルチ クロックすぎる。&lt;a href="http://ja.wikipedia.org/wiki/%E3%82%AD%E3%83%A3%E3%83%83%E3%82%B7%E3%83%A5_(%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0)" target="_blank"&gt;キャッシュ&lt;/a&gt;実装すべき」「んー、どう見ても&lt;a href="http://ja.wikipedia.org/wiki/%E5%91%BD%E4%BB%A4%E3%83%91%E3%82%A4%E3%83%97%E3%83%A9%E3%82%A4%E3%83%B3" target="_blank"&gt;パイプライン&lt;/a&gt;がストールしてるよなぁ、、、」ここで後ろに並んでた人のほうが先にできてしまいました、残念。「んが、うちらの時間かかってるなぁ」「&lt;a href="http://ja.wikipedia.org/wiki/%E3%82%A2%E3%82%A6%E3%83%88%E3%83%BB%E3%82%AA%E3%83%96%E3%83%BB%E3%82%AA%E3%83%BC%E3%83%80%E3%83%BC%E5%AE%9F%E8%A1%8C" target="_blank"&gt;アウトオブオーダー実行&lt;/a&gt;とか理不尽すぐる・・・、キャッシュミスのペナルティはでかいなぁ」&lt;/blockquote&gt;
&lt;p&gt;そうなんです、食堂の麺類はなぜかいつも混んでるんです。昼の一番混んでる時間に行こうものなら 10 分は並びますよ。この時期、修学旅行生が多いですし。うちの大学の生協で食べるのは一種の験担ぎなんでしょうかね。まぁ、とりあえず日本語に訳します。&lt;/p&gt;
&lt;blockquote&gt;「やばい麺類は時間がかかりすぎる。ストックを作っとくべき」「んー、どう見ても麺ゆで機が遅くて調理が滞ってるよなぁ、、、」 (中略) 「後の人の注文が先に出てくるとか理不尽すぐる・・・マイナーなもん頼んだ時って本当に遅いなぁ」&lt;/blockquote&gt;
&lt;p&gt;&lt;img src="http://www.yutopio.net/img/091015_xyx.jpg" style="float: right; margin: 20px" alt="xyx さん" width="150" height="200" /&gt;つづいて &lt;b&gt;Session #3&lt;/b&gt; 理情生はよく twitter を使ってるんですけど、けっこうその中からも面白い (?) 発言がぽろぽろ出てきます。こんな感じ:&lt;/p&gt;
&lt;blockquote&gt;&lt;a href="http://twitter.com/xyx_is/status/4803958283" target="_blank"&gt;あだまいだい...&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://twitter.com/xyx_is/status/4803965746" target="_blank"&gt;いたいのいたいのとんでいけー &amp;gt; /dev/nullに&lt;/a&gt;&lt;br /&gt;
by &lt;a href="http://twitter.com/xyx_is" target="_blank"&gt;xyx&lt;/a&gt;&lt;/blockquote&gt;
&lt;p&gt;地下民ならではの言い方ですね。&lt;a href="http://ja.wikipedia.org/wiki//dev/null" target="_blank"&gt;/dev/null&lt;/a&gt; っていうのは特殊なファイルで、書きこまれたデータをすべて捨てるというヤツ。つまり「痛いの痛いの～、どっか消えろー」って感じですよ。さて最後 &lt;b&gt;Session #4&lt;/b&gt;、日本語に見えるのは気のせいです。&lt;/p&gt;
&lt;blockquote&gt;JAL で行って JR で帰ってくる。&lt;/blockquote&gt;
&lt;p&gt;えー日本語、、、に見えますが、日本語になってない気がします。JAL っていうのは Jump And Link という命令、JR っていうのは Jump Register という命令、それぞれ MIPS アーキテクチャの命令です。近頃、CPU 実験の設計のところで、ジャンプ命令を作るだのどーので、結構盛り上がってます。福岡出身の花元さんは今度の帰省、ヒコーキで行って電車で帰ってこよう、とのことです。ただ、沖縄行ったときにはあんまりにも遠くて JR がないので set jump とか別の方法で帰ってこなくちゃいけなさそうです。&lt;/p&gt;
&lt;p&gt;さてまとめ。書きあがってからこのエントリ読んでて、まったくもって普通の人間には理解できない言語でしゃべってるみたいです。僕はまだ日本語に近い言語を使ってますが、すごい人数名の話す言語は翻訳が必要ですからね・・・&lt;/p&gt;
&lt;p&gt;えー、このエントリを書くモチベーションを与えてくれた地下民のみなさん、そして監修してくれたみなさんに感謝します。本当にシュールな環境です、ありがとうございました。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-1763552463416538024?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/1763552463416538024/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/10/blog-post_15.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/1763552463416538024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/1763552463416538024'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/10/blog-post_15.html' title='地下カルチャー'/><author><name>Yuto Takei</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-E0fcdUk3Shw/TetNUD5agpI/AAAAAAAAA0Q/5UazaC4oAeQ/s220/254193_1943555760818_1600221779_1962741_2739513_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-3814447107161652988</id><published>2009-10-13T14:06:00.006+09:00</published><updated>2009-10-15T23:38:40.684+09:00</updated><title type='text'>はじめての発表</title><content type='html'>&lt;p style="margin-bottom: 0pt"&gt;竹井です。三連休、だから何という感じのお休みも、気づけば終わってました。そういえばがんばってコンパイラがりがり書いてたから、日曜の晩は地下に泊まって徹夜したんだった。いやー理情にいると、その授業時間の少なさと課題のキツさのせいで、&lt;/p&gt;
&lt;p style="text-align: center; font-weight: bold; margin-top: 0pt; margin-bottom: 0pt"&gt;平日 = 朝、2 限がある日&lt;br /&gt;休日 = 朝、2 限がない日&lt;/p&gt;
&lt;p style="margin-top: 0pt"&gt;という感じになっちゃうんですよね。いたってシンプル。つまりは、いつも課題をぼちぼちやってるような状態。おかげでたいていの人は曜日感覚が飛びます。そんでさらに拍車をかけるのが、地下にいると外の景色が見える窓がないから、時間感覚までおかしくなってくる。この季節は、だんだん暗くなる時間帯が早くなっていますけど、それに気づかず、17 時半とかに、ふらっと外に買い物に出かけると、「お、もうこんなにまっくらっ！」って驚くこともあるくらいですよ。あぁ、学生控室が建物の屋上にガラス張りになってあれば、お日様も見えてもっと気持ちいいんだろうになぁ。&lt;/p&gt;
&lt;p&gt;さて本題にうつって、今日ははじめての進捗発表の日でした。先週の同じコマ (火 3) で、実験講義で班組みについて TA が OK だして、正式にチーム結成になってから早一週間。どこの班も、まずは作る CPU のコンセプトを決めたり、誰が何の担当をするか割り振ったり、そしてこれからの予定をどうするか考えたり、なかなか忙しい週だったはずです。うちの班についても、だいたいの方向を決めて、さっそく長い冒険へと船出しました。ちなみに、この実験講義で行う発表では、班員から一人、もちまわりで発表者を選んで、その週にあった出来事を説明したり、今後の&lt;a href="http://ja.wikipedia.org/wiki/%E3%82%AC%E3%83%B3%E3%83%88%E3%83%81%E3%83%A3%E3%83%BC%E3%83%88" target="_blank"&gt;ガント チャート&lt;/a&gt;を提示したりします。場合によっては TA から雲行きが怪しげなところを突っ込まれることもあるようです。うちの班では今週、とりあえず花元さんに班長権限で発表者の仕事を投げたのでした。以下、各班の状況。&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Team C#&lt;/b&gt;&lt;br /&gt;
うちの班は、トップ バッターで発表。進捗はそこそこ順調です。ガント チャートを作るという班長の重大責務だけはしそこないましたが、各班員がしてる仕事は把握してます。シミュレータは &lt;a href="http://ja.wikipedia.org/wiki/GUI" target="_blank"&gt;GUI&lt;/a&gt; 付きで超高機能だと、発表でもみんなからおおむね好評だった模様。新井さんがんばってます。ちなみにオンライン ヘルプ付き (Twitter でメッセージ流すだけだけど笑)。コンパイラはフロント エンド部分がほとんど出来上がりました。今週中に &lt;a href="http://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%A0%E3%83%80%E8%A8%88%E7%AE%97#.CE.B1-.E5.A4.89.E6.8F.9B" target="_blank"&gt;α 変換&lt;/a&gt;と K 正規化のコードを書きあげます。ちなみに開発言語が &lt;a href="http://ja.wikipedia.org/wiki/F_Sharp" target="_blank"&gt;F#&lt;/a&gt; と &lt;a href="http://ja.wikipedia.org/wiki/C_Sharp" target="_blank"&gt;C#&lt;/a&gt; で&lt;a href="http://ja.wikipedia.org/wiki/%E5%AE%8C%E5%85%A8%E4%BA%94%E5%BA%A6" target="_blank"&gt;完全五度&lt;/a&gt;でハモります。基板係はがりがり &lt;a href="http://ja.wikipedia.org/wiki/FPU" target="_blank"&gt;FPU&lt;/a&gt; 書いてる人もいれば、&lt;a href="http://ja.wikipedia.org/wiki/%E5%91%BD%E4%BB%A4%E3%82%BB%E3%83%83%E3%83%88" target="_blank"&gt;ISA&lt;/a&gt; を策定している人もいれば、&lt;a href="http://ja.wikipedia.org/wiki/Static_Random_Access_Memory" target="_blank"&gt;SRAM&lt;/a&gt; コントローラと格闘してる人もいます。&lt;/li&gt;
&lt;li&gt;&lt;b&gt;チーム ksk&lt;/b&gt;&lt;br /&gt;
とりあえずこのチームは、進捗がヤバいです。爆速です。チーム名の「ksk」というのは、この班員のうちの一人のハンドル ネームで、みんなで「カソクさん」って呼んでます。彼はハードウェアが得意みたいですが、とりあえずみんなとはけた違いに &lt;a href="http://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%83%96%E3%83%AB%E3%83%AD%E3%82%B8%E3%83%83%E3%82%AF%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9#FPGA" target="_blank"&gt;FPGA&lt;/a&gt; をいじり倒していて、すでに&lt;a href="http://ja.wikipedia.org/wiki/%E3%82%AD%E3%83%A3%E3%83%83%E3%82%B7%E3%83%A5%E3%83%A1%E3%83%A2%E3%83%AA#.E7.9B.AE.E7.9A.84.E5.88.A5.E5.88.86.E9.A1.9E" target="_blank"&gt;命令キャッシュ&lt;/a&gt;を搭載させて実基板上でフィボナッチ数列の計算ができたらしいです。うーんともかく速い。最後に、チームのガント チャートが発表されましたが、ほぼすべてのタスクが「終了」状態で、班長曰く「自分が一番おいてきぼりを食らってる」らしいです(笑) とりあえずこのチームは今年の理情生のゴールデン メンバが揃ってるので、強そうですよ。&lt;/li&gt;
&lt;li&gt;&lt;b&gt;もん班&lt;/b&gt;&lt;br /&gt;
ここはここでなかなかユニークな班です。なにより、結成後に気づいたらしいのですが 3 人がハンターだそうです。今のところの目標は、CPU 実験で完動させることよりも、ゲームでオンライン進出することのほうみたい(笑)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AVR (仮) 班&lt;/b&gt;&lt;br /&gt;
ここの班は、なにやらマイコンとかで使われるようなマイクロ コントローラ チップの &lt;a href="http://ja.wikipedia.org/wiki/Atmel_AVR" target="_blank"&gt;AVR&lt;/a&gt; というのを参考にして開発を進めるらしいです。詳しいことは知らないのですが、このチップは 8 ビットの命令長をもっていて、それで最初にフィボナッチなどの基本的なものを動かせるようにしてから、命令を拡張するという戦略をとるらしいです。ただ僕の個人的な印象だと、実験課題であるプログラムの&lt;a href="http://ja.wikipedia.org/wiki/%E3%83%AC%E3%82%A4%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%B3%E3%82%B0" target="_blank"&gt;レイトレーシング&lt;/a&gt;だと、命令長が 16 ビットでもかなり厳しいのに、8 ビットでどうやって頑張ってしこしこプログラム書いていくのか、ちょっと疑問ですねぇ・・・線表みた限りも、進捗はあまり芳しくなさそうなので、正直言って少し心配かも。&lt;/li&gt;
&lt;li&gt;&lt;b&gt;くいたんっ&lt;/b&gt;&lt;br /&gt;
麻雀野郎どものチームですかね、ここは。「くいたん」ってのはマンガの名前だそうなんですが、ともかくよくわからないこだわりがすごいです。まず最初のアーキテクチャ名が「タンヤオ」だったそうで、いろいろやっていたみたいなのですが、途中であまり美しくないということで「三色」アーキテクチャを作ったらしい。僕はポーカーしかやらないので麻雀の役はわからん、残念。それと、班員の中で「Windows 製品使用禁止令」が出てるらしくて、論理合成などで使う専用ツールも Linux 上に入れて頑張ってるらしいです。まぁいろいろ濃いメンバたちですよ。あ、ちなみに TA がいろいろ麻雀の役のことで突っ込んでました。もはやカオス(笑)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;崖っぷち&lt;/b&gt;&lt;br /&gt;
はっきり言って、一番進捗がマズそうなチームなよう。もともと再履修者が過半数集まってるチームらしくて、単位さえもらえればいいんだそうな・・・。なんか気の毒ですけど。でもさっそく最初の週からメンバが音信不通 (?) になっているらしいです。はたして大丈夫かなぁ・・・。&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;はい、まぁそういうわけで、結構発表は盛り上がりました。やはり学生が教室の前に立って話すというのはすごく新鮮で面白いですね。それにそれぞれ個性があるから、すごくいろんなことが聴けますね。来週からはデジカメで発表の様子もウォッチしようと思います。ではでは。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-3814447107161652988?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/3814447107161652988/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/10/blog-post_13.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/3814447107161652988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/3814447107161652988'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/10/blog-post_13.html' title='はじめての発表'/><author><name>Yuto Takei</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-E0fcdUk3Shw/TetNUD5agpI/AAAAAAAAA0Q/5UazaC4oAeQ/s220/254193_1943555760818_1600221779_1962741_2739513_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-971182788379765746</id><published>2009-10-12T00:46:00.005+09:00</published><updated>2010-06-01T18:00:41.761+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='コンパイラ'/><title type='text'>コンパイラのお仕事 その1</title><content type='html'>&lt;p&gt;こんにちは、班長の竹井です。先週木曜の台風は大変でしたねぇ。僕の住む千葉では JR 京葉線やら地下鉄東西線まで止まったので、もはや陸の孤島、千葉共和国ってな状態でした。いずれにせよ午前中の授業は休講だったので、特に何もなかったですけど。それで、今日は少し、僕の担当しているコンパイラ係について少し紹介します。ちょっとマジメな記事になる予感。&lt;/p&gt;
&lt;p&gt;そもそも&lt;a href="http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%A9" target="_blank"&gt;コンパイラ&lt;/a&gt;とは何かというと、人間が書いたコンピュータ プログラムを機械が理解できるデータに直すソフトのことです。たとえば、簡単な例でいえば、フィボナッチ数列の 10 番目を計算するプログラムを考えましょう。まずは &lt;a href="http://ja.wikipedia.org/wiki/C%E8%A8%80%E8%AA%9E" target="_blank"&gt;C 言語&lt;/a&gt;で書いてみると、&lt;/p&gt;
&lt;pre&gt;x = 0, y = 1;
for (i = 0; i &lt; 10; i++)
    z = x + y, x = y, y = z;&lt;/pre&gt;
&lt;p&gt;とかすれば、最終的にたぶん x に 10 番目 (11 かも？) のフィボナッチ数が入ります。ただし、このコード、コンピュータの頭脳である &lt;a href="http://ja.wikipedia.org/wiki/CPU" target="_blank"&gt;CPU&lt;/a&gt; では直接こんなものを解釈しているわけではないです。人間が書いているプログラムは&lt;a href="http://ja.wikipedia.org/wiki/%E9%AB%98%E7%B4%9A%E8%A8%80%E8%AA%9E" target="_blank"&gt;高級言語&lt;/a&gt;と呼ばれていて、CPU が解釈できるような言語ではないのです。では、CPU が解釈するのはどのような言語かというと、だいたいこんな感じです:&lt;/p&gt;
&lt;pre&gt;    addu   $v0, $zero, $zero           # x = 0
    addiu  $t0, $zero, 1               # y = 1
    addiu  $t2, $zero, 10              # cnt = 10
fib:
    addu   $t1, $v0, $t0               # z = x + y
    addiu  $v0, $zero, $t0             # x = y
    addiu  $t0, $zero, $t1             # y = z
    addiu  $t2, $t2, -1                # cnt = cnt - 1&lt;/pre&gt;
&lt;p&gt;(わかる方のために注釈しておくと、今現在のところ班員の圧力で&lt;a href="http://www.amazon.co.jp/dp/4822282678" target="_blank"&gt;パタヘネ&lt;/a&gt;をかなり参考にしているので、上のアセンブリは &lt;a href="http://ja.wikipedia.org/wiki/MIPS%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3" target="_blank"&gt;MIPS&lt;/a&gt; 準拠です) とりあえず、このような感じで、命令がずらっと並んだのが&lt;a href="http://ja.wikipedia.org/wiki/%E3%82%A2%E3%82%BB%E3%83%B3%E3%83%96%E3%83%AA%E8%A8%80%E8%AA%9E" target="_blank"&gt;アセンブリ&lt;/a&gt;と呼ばれている CPU が解釈できる言語です。このように、よりコンピュータが理解しやすい、裏を返すと人間様が使うような高度な機能がそぎ落とされている言語を&lt;a href="http://ja.wikipedia.org/wiki/%E4%BD%8E%E7%B4%9A%E8%A8%80%E8%AA%9E" target="_blank"&gt;低級言語&lt;/a&gt;と呼んでます。&lt;/p&gt;
&lt;p&gt;それで、要はコンパイラは何をすればよいか大雑把にいうと、高級言語によって書かれたコンピュータ プログラムをもらって、それを CPU が理解できるような低級言語に直す、ただそれだけです。まぁそれだけといっても、だいぶいろんな処理があるんですけど。CPU 実験では、与えられる課題のプログラム コードは事前に配布されているので、そのコードを受け取って、自分たちの班で作る CPU が理解できるような機械語を吐くソフトを作ればいいことになります。&lt;/p&gt;
&lt;p&gt;ちなみに、課題のコードは、&lt;a href="http://ja.wikipedia.org/wiki/Objective_Caml"&gt;O'Caml&lt;/a&gt; という言語で書かれています。だいたいこんな感じの調子です:&lt;/p&gt;
&lt;pre&gt;let rec newton x k =
    if abs_float (x *. x -. k) &lt; 0.0001 then x
    else newton ((k /. x +. x) /. 2.) k
let sqrt x = newton 1.0 x&lt;/pre&gt;
これは、&lt;a href="http://ja.wikipedia.org/wiki/%E3%83%8B%E3%83%A5%E3%83%BC%E3%83%88%E3%83%B3%E6%B3%95"&gt;ニュートン法&lt;/a&gt;という計算方法で、与えられた数の平方根を導出する関数 sqrt を定義しています。まぁ、こんな感じの O'Caml という言語のコンパイラを作る、っていうのがコンパイラ係の仕事ですね、結局のところ。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-971182788379765746?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/971182788379765746/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/10/1.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/971182788379765746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/971182788379765746'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/10/1.html' title='コンパイラのお仕事 その1'/><author><name>Yuto Takei</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-E0fcdUk3Shw/TetNUD5agpI/AAAAAAAAA0Q/5UazaC4oAeQ/s220/254193_1943555760818_1600221779_1962741_2739513_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-1995750511887435730</id><published>2009-10-11T20:52:00.006+09:00</published><updated>2009-10-21T12:01:11.955+09:00</updated><title type='text'>CPU 実験以前</title><content type='html'>&lt;p&gt;こんにちは。team C# の花元が今回担当します。CPU 実験というタイトルではありますが今回は CPU 実験にいたるまでの過程を書きたいと思います。&lt;/p&gt;
&lt;p&gt;東大理情というと geek（凄い人）たちが跋扈しているというイメージがありますが（実際に半分ぐらいは合っています）僕は全くの初心者の状態で理情に入ってきました。専門課程が始まる前に先輩たちによる理情内定者の歓迎会があったのですが、そこで先輩に「好きなシェルは？」と聞かれて答えに窮したのを覚えています。（ちなみに簡単に言うとシェルとはプログラムを動かすためのプログラムのことです。）&lt;/p&gt;
&lt;p&gt;さて、僕のような初心者（大体学科の 1/3 はほぼ初心者で入ってくるようです）が理情に入るとどうなるかというと、1 年で CPU を作れるまでの知識を身につけさせるために出される大量の課題に圧倒されます。さらに問題なのが「情報が少ない」&lt;/p&gt;
&lt;p&gt;例えば、3 年夏学期にやるプログラミング言語に「&lt;a href="http://www-tsujii.is.s.u-tokyo.ac.jp/lilfes/index-j.html" target="_blank"&gt;LiLFeS&lt;/a&gt;」という言語があります。これは東大の研究室で研究用に開発された言語で恐らく理情出身の人しか知らない言語です。運の悪いことにこの言語は非常に癖が強く思ったとおりの挙動をしてくれません。ところが google で検索しても欲しい情報が全く出てこないのです。情報科学科に内定した学生がCPU実験までに学ぶ言語は C,Scheme,LiLFes,VHDL,OCaml ですが十分に情報があるのは C 言語ぐらいなものです。逆に言えば全くの初心者でも大きな disadvantage がある言語も C 言語ぐらいなので、僕は他の言語（主に LiLFeS）を頑張って C 言語は他の人にひたすら教えてもらうという作戦に出ました。先ほどあげた 5 つの言語ですがそれぞれ手続き型言語、関数型言語、論理型言語、ハードウェア記述言語と毛色が大きく違い、人によって得意不得意が出てくるので膨大な課題をこなすためにお互い得意な言語を教えあうという文化が自然と出来上がっていました。大学もそれを期待してこのようなカリキュラムにしているようです。&lt;/p&gt;
&lt;p&gt;とまあ全くの初心者でも CPU 実験までの 1 年間で実験に対応できるだけの知識が（半ば強引に）手に入るようなカリキュラムになっています。そして後輩たちの歓迎会を開き、こう言うのです。「好きなシェルは？」なぜなら彼らもまた特別な存在だからです。&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091010_modelsim.png" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091010_modelsim.png" width="400" height="242" alt="波形シミュレータ"&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-1995750511887435730?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/1995750511887435730/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/10/cpu_7855.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/1995750511887435730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/1995750511887435730'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/10/cpu_7855.html' title='CPU 実験以前'/><author><name>mogella</name><uri>http://www.blogger.com/profile/06339639468496927542</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-5337540260208560670</id><published>2009-10-07T22:02:00.002+09:00</published><updated>2009-10-11T22:12:29.825+09:00</updated><title type='text'>コマバック</title><content type='html'>&lt;p&gt;竹井です。実はですね、東大にはコマバックという世にも不思議な現象があります。闇の強権力によって、本郷生が気づけば駒場キャンパスに返品されるという状況が発生してしまうんですね。僕みたいに 1,2 年生で努力しなかった出来そこないはほぼ確実にコマバックの対象になるわけですが。&lt;/p&gt;
&lt;p&gt;ごめんなさい、まじめに解説します。東大では 2 年生まで原則としてすべての授業が駒場キャンパスで行われますが、3 年生からは大半の人が本郷キャンパスで授業を受けることになります。これは最初の 2 年で全学生が学問的教養を (まるで基礎体力のように) 等しく身につけるため、教養学部 前期課程に配置されるという都合で、2 年の夏に行われる進学振り分けという制度を経て、後期の専門課程にそれぞれの学生が進む進学先が決定されます。そして 2 年生の冬学期については、本郷に進む前にフライングで各学部の専門課程の授業が始まるわけで、例にもれずわれわれ理情生についても、&lt;a href="http://ja.wikipedia.org/wiki/C%E8%A8%80%E8%AA%9E" target="_blank"&gt;C 言語&lt;/a&gt;や関数型言語の &lt;a href="http://ja.wikipedia.org/wiki/Scheme" target="_blank"&gt;Scheme&lt;/a&gt; などの習得のほか、ハードウェアやソフトウェアの幅広い分野での基礎授業が開講されます。&lt;/p&gt;
&lt;p&gt;しかしここで、残念ながら 2 年冬学期の授業単位を取得できずに 3 年生になって本郷に進んでしまうと、3 年冬学期に駒場キャンパスにわざわざ戻ってきて授業を再履修する必要があるんです。それが悪名高きコマバック。僕についても、数学などの選択必修科目が 6 単位分、回収する必要ありな状態なんですよね。必修科目は全部とれたのに、選択必修で得意でもないものを選ぶと、こんな風に成績が炎上するんです。&lt;/p&gt;
&lt;p&gt;それで、昨日のエントリで書いた弥生 Go! についてです。お察しの通り、本郷で授業を受けながらコマバックするというのは果てしなく体力的にも精神的にもきついので (だって最短でもキャンパス間移動に 40 分はかかるからねぇ)、半ば裏技的に農学部に行ってきて選択必修分の単位を置き換えるという手段があります。それが弥生 Go! で、農学部が本郷キャンパス弥生地区というところにあるのが由来です。ちなみに理学部と農学部とでは、言問通り (ドーヴァー海峡とか呼ばれてますけど) にかかる陸橋を渡って、だいたい徒歩 10 分の距離にあります。駒場よりは近いです。この時期、ホントに銀杏くさいですが(笑)&lt;/p&gt;
&lt;p&gt;にしてもコマバックなんて、本当に素敵なネーミングですよね。こんなに卑屈な響きがする名前を付けた人のセンスには敬服するしかない・・・。あぁ鬱。&lt;/p&gt;
&lt;hr /&gt;
&lt;p style="font-weight: bold; margin-bottom: 0"&gt;ぼくのコマバック リスト:&lt;/p&gt;
&lt;table cellspacing="0" style="text-align: center"&gt;
  &lt;tr&gt;
    &lt;td class="t1" style="width: 35px; font-weight: bold"&gt;曜限&lt;/td&gt;
    &lt;td class="t2" style="width: 135px; font-weight: bold"&gt;科目名&lt;/td&gt;
    &lt;td class="t2" style="width: 120px; font-weight: bold"&gt;開講&lt;/td&gt;
    &lt;td class="t2" style="width: 135px; font-weight: bold"&gt;場所&lt;/td&gt;
    &lt;td class="t2" style="width: 100px; font-weight: bold"&gt;時間割コード&lt;/td&gt;
    &lt;td class="t2" style="width: 200px; font-weight: bold"&gt;備考&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class="t3"&gt;月3&lt;/td&gt;
    &lt;td class="t4"&gt;応用動物科学概論&lt;/td&gt;
    &lt;td class="t4"&gt;農学部&lt;/td&gt;
    &lt;td class="t4"&gt;農1号館 8番教室&lt;/td&gt;
    &lt;td class="t4"&gt;060200251&lt;/td&gt;
    &lt;td class="t4"&gt;弥生 Go!&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class="t3"&gt;水3&lt;/td&gt;
    &lt;td class="t4"&gt;ハードウェア構成法&lt;/td&gt;
    &lt;td class="t4"&gt;理情&lt;/td&gt;
    &lt;td class="t4"&gt;駒場1号館 112教室&lt;/td&gt;
    &lt;td class="t4"&gt;単位取得済&lt;/td&gt;
    &lt;td class="t4"&gt;復習のため。2 年生と一緒♪&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class="t3"&gt;水4&lt;/td&gt;
    &lt;td class="t4"&gt;植物科学概論&lt;/td&gt;
    &lt;td class="t4"&gt;理学部 生物学科&lt;/td&gt;
    &lt;td class="t4"&gt;駒場1号館 113教室&lt;/td&gt;
    &lt;td class="t4"&gt;0542003&lt;/td&gt;
    &lt;td class="t4"&gt;出席と試験。けっこー楽しい&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class="t3"&gt;水5&lt;/td&gt;
    &lt;td class="t4"&gt;無脊椎動物学&lt;/td&gt;
    &lt;td class="t4"&gt;理学部 生物学科&lt;/td&gt;
    &lt;td class="t4"&gt;駒場12号館 1222教室&lt;/td&gt;
    &lt;td class="t4"&gt;0541001&lt;/td&gt;
    &lt;td class="t4"&gt;出席と試験 or レポート&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-5337540260208560670?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/5337540260208560670/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/10/blog-post_11.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/5337540260208560670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/5337540260208560670'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/10/blog-post_11.html' title='コマバック'/><author><name>Yuto Takei</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-E0fcdUk3Shw/TetNUD5agpI/AAAAAAAAA0Q/5UazaC4oAeQ/s220/254193_1943555760818_1600221779_1962741_2739513_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-4677169650705753684</id><published>2009-10-06T23:32:00.006+09:00</published><updated>2009-12-02T12:09:45.481+09:00</updated><title type='text'>ぼちぼち授業開始</title><content type='html'>&lt;p&gt;こんにちは、C# チームより竹井です。そろそろ今週から本格的に授業が始まっていますね。今はまだ帰りの電車の中、今日はほとんど何もした覚えがないので(笑)、昨日月曜日の様子をお伝えします。&lt;/p&gt;
&lt;p&gt;1 限にいちおう「情報科学演習II」といおうコマが入っているのですが、初回からいきなりアナウンスなしの休講 (!?) とかでびっくり。いや、上級生からそんなような話はいろいろ聞いていましたが、まさか事務から連絡なく本当に休みになるとは・・・。そういうわけで、マジメな約 10 人前後が朝の 8 時半に本郷集合しました (ちなみに、うちのチームはなんと全員いたんですよ！ 真面目でしょ？)。そのあと 2 限は米澤先生の言語モデル論。言語に関する哲学的な話が半分で、興味ない人は夢の世界へトランスポートしていた様子。ちなみに以前、学生向けコミュニティの活動で先生にはお世話になったことがあります。なかなか温和な感じの人ですが、業績をみると本当にすごい先生です。そのあと、昼休みをはさんで 3 限は「弥生 Go!」・・・うん、一般の人はたぶん知らない内部用語ですが、たぶん次の記事あたりでご紹介します。授業自体は、動物応用科学概論という日本の田園風景などを社会システムおよび食の科学などの視点から分析するものでした。僕ら理情生にとってはなかなか新鮮な分野です。そののち、4 限の連続系アルゴリズムという授業はふたたび休講で、CPU 実験プロジェクト ミーティング。思えばこの日はあまりまだ仕事をしていなかった。&lt;/p&gt;
&lt;p&gt;そういえば、ここには書いてませんでしたが、僕はチームの班長 兼 コンパイラ係という一番大変な責任を担いでいる人間です。そんなわけで、チームのかじ取りをしなくちゃ単位が来ないという一番冒険的なポジションにいたりします。班長の仕事の一つに、ガント チャート (線表) といってプロジェクトの進行状況を管理するダイアグラムを作成するなんてことがあります。先生の説明では「線表とは、企業とかでデスマったときとかに白板とかに張ってある情け容赦ない表」のことだそうですが。&lt;/p&gt;
&lt;p&gt;うちの班の構成は、だいたいこんな感じ:
&lt;ul&gt;&lt;li&gt;&lt;b&gt;コンパイラ係:&lt;/b&gt; 竹井 (兼 班長)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;シミュレータ係:&lt;/b&gt; 新井さん&lt;/li&gt;
&lt;li&gt;&lt;b&gt;基板係:&lt;/b&gt; 花元さん、ほか 3 名&lt;/li&gt;&lt;/ul&gt;
まぁ係なんてあまりアテにならんもんで、ほかにテスタとかドキュメンタとかいろいろ担当は作らなくちゃいけないんですけど。そうはいっても、ぼちぼち作業を始めなければ、何も進まないので、とりあえずホワイトボードを使って、毎日の目標を掲げることにしましたよん！&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091006_lunch.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091006_lunch.jpg" width="200" height="150" alt="昼ごはん"&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.yutopio.net/img/091006_todo.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091006_todo.jpg" width="200" height="150" alt="今日何をする？"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ちなみに今日の昼ごはん、ミートソースバーグとかいうのを買いました。理情生みんなでつるんで生協に行ったら、誰かがこれを選んだとたん、連鎖的にその場の人間がこれを取ったので、僕もこれをチャレンジ・・・、ん、まぁ値段相応な味かな、量を考えれば可も不可もつけられないか。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-4677169650705753684?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/4677169650705753684/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/10/blog-post_06.html#comment-form' title='1 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/4677169650705753684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/4677169650705753684'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/10/blog-post_06.html' title='ぼちぼち授業開始'/><author><name>Yuto Takei</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-E0fcdUk3Shw/TetNUD5agpI/AAAAAAAAA0Q/5UazaC4oAeQ/s220/254193_1943555760818_1600221779_1962741_2739513_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-6189489835516336436</id><published>2009-10-04T22:20:00.007+09:00</published><updated>2009-10-04T23:40:44.565+09:00</updated><title type='text'>チーム結成</title><content type='html'>&lt;p&gt;こんばんは。初日で勢い余って連投です。われわれ、実は冬学期は先日 10/1 (木) から始まっていて、この日が実験講義の初日でした。今学期の時間割はこんな感じ:&lt;/p&gt;
&lt;table cellspacing="0" style="text-align: center"&gt;
  &lt;tr&gt;
    &lt;td class="t1" style="width: 15px; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;
    &lt;td class="t2" style="width: 120px; font-weight: bold"&gt;Mon&lt;/td&gt;
    &lt;td class="t2" style="width: 120px; font-weight: bold"&gt;Tue&lt;/td&gt;
    &lt;td class="t2" style="width: 120px; font-weight: bold"&gt;Wed&lt;/td&gt;
    &lt;td class="t2" style="width: 120px; font-weight: bold"&gt;Thu&lt;/td&gt;
    &lt;td class="t2" style="width: 120px; font-weight: bold"&gt;Fri&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class="t3" style="font-weight: bold"&gt;1&lt;/td&gt;
    &lt;td class="t4"&gt;情報科学演習II&lt;/td&gt;
    &lt;td class="t4"&gt;&amp;nbsp;&lt;/td&gt;
    &lt;td class="t4"&gt;&amp;nbsp;&lt;/td&gt;
    &lt;td class="t4"&gt;&amp;nbsp;&lt;/td&gt;
    &lt;td class="t4"&gt;&amp;nbsp;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class="t3" style="font-weight: bold"&gt;2&lt;/td&gt;
    &lt;td class="t4"&gt;言語モデル論&lt;/td&gt;
    &lt;td class="t4"&gt;計算量理論&lt;/td&gt;
    &lt;td class="t4"&gt;コンピュータネットワーク&lt;/td&gt;
    &lt;td class="t4"&gt;知能システム論&lt;/td&gt;
    &lt;td class="t4"&gt;情報科学演習II&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class="t3" style="font-weight: bold"&gt;3&lt;/td&gt;
    &lt;td class="t4"&gt;&amp;nbsp;&lt;/td&gt;
    &lt;td class="t4" rowspan="3"&gt;情報科学実験II&lt;/td&gt;
    &lt;td class="t4"&gt;&amp;nbsp;&lt;/td&gt;
    &lt;td class="t4" rowspan="2"&gt;情報科学実験II&lt;/td&gt;
    &lt;td class="t4"&gt;&amp;nbsp;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class="t3" style="font-weight: bold"&gt;4&lt;/td&gt;
    &lt;td class="t4"&gt;連続系アルゴリズム&lt;/td&gt;
    &lt;td class="t4"&gt;&amp;nbsp;&lt;/td&gt;
    &lt;td class="t4"&gt;&amp;nbsp;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class="t3" style="font-weight: bold"&gt;5&lt;/td&gt;
    &lt;td class="t4"&gt;情報科学実験II&lt;/td&gt;
    &lt;td class="t4"&gt;&amp;nbsp;&lt;/td&gt;
    &lt;td class="t4"&gt;&amp;nbsp;&lt;/td&gt;
    &lt;td class="t4"&gt;&amp;nbsp;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;「情報科学実験II」というところが、すべて実験のコマです。10/1 (木) の授業は、さすがに冬学期初日だけあって、学科の 30 人ほぼ全員がいました。その日の授業では、おもに CPU 実験の位置づけについての説明 (ひとつ前の投稿で書いたような) があって、そのあとは実際にコンパイラについての授業がありました。&lt;/p&gt;
&lt;p&gt;そして授業が終わった後、チーム決めがありました。CPU 実験では、だいたい 5 人前後のチームに分かれて、各チームでそれぞれの基板を使って CPU を設計します。チーム内では、基本的に次のような係の人がいます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;コンパイラ係&lt;/b&gt;&lt;br /&gt;
実験の課題として教員から与えられる O'Caml で書かれたプログラムを、チーム内で設計したアーキテクチャ上で動く機械語に変換するようなコンパイラを作る人。課題では、レイ トレーシングという 3 次元の光線追跡を行うプログラムが与えられます。毎年変わらないらしい。&lt;/li&gt;
&lt;li&gt;&lt;b&gt;基板係&lt;/b&gt;&lt;br /&gt;
実験では、FPGA という配線情報が書き換えられる特殊なチップが搭載された基板を利用します。この FPGA に書きこむ配線情報を、ハードウェア記述言語 (VHDL) を用いて設計する人間のこと。要は回路屋さんです。回路設計のほかに、コンピュータとシリアル通信を行うために、拡張基板上で実際にコンデンサなどのはんだ付けも行うらしいです。&lt;/li&gt;
&lt;li&gt;&lt;b&gt;シミュレータ係&lt;/b&gt;&lt;br /&gt;
コンパイラ係と基板係の橋渡し役みたいな人間です。コンパイラ係が持ってきた機械語を実際の基板上で動かす前に、論理的な整合性がとれているかどうかをソフトウェア的に検証する人です。基板係が書いた配線をソフトウェアで書きなおして、コンパイルされた課題のプログラムが正しく動作するかどうかを確認します。&lt;/li&gt;
&lt;li&gt;&lt;b&gt;班長&lt;/b&gt;&lt;br /&gt;
あまり特殊な仕事があるわけじゃないですが、チームの進捗を管理する義務があります。最終発表は来年 3 月頭、すなわち 5 か月先までの長期的なスケジュールを考え、開発の日程を管理するプロマネ的存在です。また火曜日の実験のコマで、その週までにできた進捗報告もプレゼンテーションするらしいです。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;そんなわけで、僕らの班はあっさりチームが決定されました。ほとんどが僕の趣味のせいです。もともと、C# を使ったコンパイラで Intel Itanium っぽい VLIW アーキテクチャの CPU を作る、と宣言していたので、方向性が一番固まっていましたから。結局、僕含めて集まったメンバは 6 人。チーム名はもちろん「Team C#」、いたってわかりやすい。&lt;/p&gt;
&lt;p&gt;結局 10/1 この日は、われわれの地下控室から 4 年生を追放する日でもあったので、大掃除もしました。研究室配属になる 4 年生たちは、それぞれの私物を引き払って地下から地上の各フロアにある研究室へ旅立っていきました。そんなわけで、エアコンのフィルタ掃除をし、壁を水ぶきして、デスクを大移動し、床下に敷設された LAN と電源ケーブルの確認を行い・・・ etc. 結局、机の再配置なども含めて全部が終わったのは午後 6 時ごろだった気がします。掃除の翌日の写真:&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091004_cleaning.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091004_cleaning.jpg" width="200" height="150" alt="掃除後の部屋"&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.yutopio.net/img/091004_desk.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091004_desk.jpg" width="200" height="150" alt="自分の机"&gt;&lt;/a&gt;&amp;nbsp;
&lt;a href="http://www.yutopio.net/img/091004_whiteboard.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091004_whiteboard.jpg" width="150" height="200" alt="ホワイトボード"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;なんとありがたいことに、自分の机が 1 枚、確保できました。今までは僕の固定ポジションはなくて (いやあったんですが、一番出入り口に近くて常にみんなの共用スペースでした)、作業するときも肩身が狭かったんですが、今度はゆったりできそうです。それに机の端の黒電話が輝いてます(笑) 構内の内線電話、今度からは事務からの電話は僕が取り次ぐことになるみたいです。ホワイトボードのすぐ横というナイス ポジションで、さっそくチーム メンバとミーティングしました。いやー、それにしても机も広々としてるし、寝袋持ってくれば、一晩越すのも楽になりそうです。&lt;/p&gt;
&lt;p&gt;まぁ、そんなこんなでとりあえずスタート地点には立ちましたよっ！&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-6189489835516336436?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/6189489835516336436/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/10/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/6189489835516336436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/6189489835516336436'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/10/blog-post.html' title='チーム結成'/><author><name>Yuto Takei</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-E0fcdUk3Shw/TetNUD5agpI/AAAAAAAAA0Q/5UazaC4oAeQ/s220/254193_1943555760818_1600221779_1962741_2739513_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4189009630455039950.post-6969749222172921139</id><published>2009-10-04T20:48:00.003+09:00</published><updated>2009-10-04T21:29:55.953+09:00</updated><title type='text'>CPU 実験日記</title><content type='html'>&lt;p&gt;はじめまして、2009 年度の東大理情 3 年の竹井です。この blog ではおもに、うちの学科の名物実験である "CPU 実験" についてレポートしていこうと思っています。おもな目的としては、後から参照して自分のチームの進捗がどうだったか検証するため、また終わった後に「こんな修羅場もあったなぁ」と回顧するため(笑)、そしてのちの世代の理情生がより高度なプロセッサを開発するのにわずかながらでも助けになれば (← 本当か？)、などなど。まぁそんなこんなで、こんな日記をつけることにします。&lt;/p&gt;
&lt;h2&gt;で、結局ナニモノ？&lt;/h2&gt;
&lt;p&gt;一般の方々も見ることを考えて、いちおうもう少し踏み込んだ自己紹介をしておきます。まず、所属から。東大理情とは、&lt;a href="http://www.is.s.u-tokyo.ac.jp/" target="_blank"&gt;東京大学 理学部 情報科学科&lt;/a&gt;というところです。われわれ東大生は、1,2 年生の間は、駒場キャンパスという閑静でイチョウの綺麗な (そして秋のこの時期はとってもクサい) ところで、のんびりすごします。2 年の夏休み中には、成績そのほか運などのさまざまなファクターによる&lt;s&gt;抽選&lt;/s&gt; 進学振り分け制度を経て、3 年生になったときの巣立ち先が決まります。そんななか哀れにも理情を進学先に選んでしまった学生は、この情報科学科に来るわけです。本拠地は、かの赤門で有名な本郷キャンパス、そこの理学部 7 号館という建物です。とくに 3 年生は地下にある学生控室 (地下端末室が正式名称らしい？) が生息場所です。なお僕の知る限り、幸か不幸かここ 3 代は男しかいません。何枚か写真も特別大公開！&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091004_hall.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091004_hall.jpg" width="150" height="200" alt="狂気の巣窟へと続く道"&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.yutopio.net/img/091004_locker.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091004_locker.jpg" width="150" height="200" alt="ロッカー スペース"&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.yutopio.net/img/091004_room.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091004_room.jpg" width="200" height="150" alt="地下室"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;まっ、写真をみてもらえれば、われわれの生活環境が分かってもらえるかと・・・、でも好き好んでこんな環境にしてるわけじゃないですょ。&lt;/p&gt;
&lt;h2&gt;CPU 実験とは&lt;/h2&gt;
&lt;p&gt;3 年生は、夏と冬の両学期に情報科学実験という科目があります。ここで、いろいろなプログラミング言語を習得し、情報科学におけるパラダイムを学び、そして実践するわけです。たとえば、夏学期には OS カーネルの開発や、論理型言語 Prolog および関数型言語 O'Caml の習得、そしてハードウェア記述言語による回路設計などをやります。&lt;/p&gt;
&lt;p&gt;それで本題となる CPU 実験は、冬学期に行われる情報科学実験 II という科目のいわば通称。その名の通り、コンピュータの心臓部である演算装置を設計し、そのうえでプログラムを実働させるというのが課題です。下の写真にある基板がその実験で使うもの。真ん中にある四角いチップが、中の配線を書き換えられる魔法の石になっているそうです。いやはや、どれだけ大変な実験なのか、始まる前から身の毛がよだつ思いですよ。&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.yutopio.net/img/091004_fpga.jpg" target="_blank"&gt;&lt;img src="http://www.yutopio.net/img/091004_fpga.jpg" width="200" height="150" alt="実験基板"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;まぁこれから半学期間、僕がどうもがいていくのか、逐一ここに記録していきますので、どうぞよろしく。&lt;p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4189009630455039950-6969749222172921139?l=cpuexp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cpuexp.blogspot.com/feeds/6969749222172921139/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://cpuexp.blogspot.com/2009/10/cpu.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/6969749222172921139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4189009630455039950/posts/default/6969749222172921139'/><link rel='alternate' type='text/html' href='http://cpuexp.blogspot.com/2009/10/cpu.html' title='CPU 実験日記'/><author><name>Yuto Takei</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-E0fcdUk3Shw/TetNUD5agpI/AAAAAAAAA0Q/5UazaC4oAeQ/s220/254193_1943555760818_1600221779_1962741_2739513_n.jpg'/></author><thr:total>0</thr:total></entry></feed>
