ぱたへね

はてなダイアリーはrustの色分けができないのでこっちに来た

2008-01-01から1年間の記事一覧

Digital Design and Computer Architecture

パタヘネに関係する本の紹介です。 http://www.elsevier.com/wps/find/bookdescription.cws_home/710749/description#description http://www.amazon.com/Digital-Design-Computer-Architecture-Harris/dp/0123704979 Amazon.comではベタほめですが、私の評…

Exercise 2.13 control flow graph

このプログラムのcontrol flow graphを書きなさい。 for(i=0;i

jump table

jump tableとは何か jump tableとは、アセンブラやCにおいて制御の飛び先(jump先)を配列にして並べた物です。jump tableのイメージ図はこのようになります。Cのswtich文のように、同じような条件で複数の飛び先がある場合を考えます。 int foo(int k){ int f…

Exercise 2.10 C言語のswitch文

Cのswtich文がどのようにアセンブラになるかの話。 これが教科書に載っているCのソースです。 switch (k) { case 0:f = i + j; break; /* k = 0 */ case 1:f = g + h; break; /* k = 1 */ case 2:f = g - h; break; /* k = 2 */ case 3:f = i - j; break; /*…

Exercise 2.8

このCソースがどのようなアセンブラになるかという問題 data = receiver.receivedByte; receiver.ready = 0; receiver.enable = 1;gccの出力から該当箇所を抜き出しました。 data = receiver.receivedByte; receiverの値をメモリからレジスタへ転送、右シフ…

bit field

C のbit fieldの話です。実際にどのようなコードになるかはコンパイラ依存になりますが、Cではビットフィールドが定義できます。教科書の例で行くと、 struct { unsigned int ready: 1; unsigned int enable: 1; unsigned int receivedByte: 8; }receiver;こ…

FPGAで忘れてはいけない、たった一つのオプション

FPGAの回路を実機で動かすときに、一つだけ忘れてはいけないオプションがあります。それは「未使用ピンを入力/Hi-Zに設定する」です。数あるオプションの中で最も重要であるにも関わらず、ISEやクオータスのバージョンによってデフォルト値がまちまちになっ…

FPGAボードを買うときに気をつけること 2008年版

いろんな人にFPGAで遊んで欲しいのですが、初心者にはFPGAボードを買うところに大きな障壁があります。 私なりに初心者が忘れがちなところをまとめてみました。FPGA業界は、Altera社とXilinx社が大きなシェアを持っており、最初の一歩はこの2社から選ぶこと…

Exercise 2.7

[10] The following MIPS instruction sequence could be used to implement a new instruction that has two register operands. Give the instruction a name and describe what it does. Note that register $t0 is being used as a temporary. srl $s1, …

Exercise 2.6

Some computers have explict instructions to extract an arbitrary field from a 32-bit register and to place it in the least significant bit of a register. The figure below shows the desired operatin[Figure]Find the shortest sequence of MIPS…

自己書き換えコード

せっかく問題のNoteに、自己書き換えコードについて書いてあるのでもう少し追ってみましょう。shinhさんのところで紹介されているmain=195;が、自己書き換えコードの一例です。 MIPSでの自己書き換えコード Exercise 2.5で使われているプログラムは、最後のs…

Exercise 2.5

CD-ROMから Consider the following code used to implement the instruction sllv $s0, $s1, $s2 # which uses the least significant 5 bits of the value in register $s2 to specify the amount register $s1 should be shifted left:Add comments to th…

全部入りのbinutilsを作る。

バイナリアンへの道は遠いで悩んでいたら、shinhさんに良い方法を教わりました。http://shinh.skr.jp/m/?date=20080428#p07ありがとうございます。 ./configure --enable-targets=all --program-prefix=all- で作ると、確かに全部入りができるのですが、アー…

2章 Ex2.4 即値の減算の比較

Exercise 2.4の発展で、他のCPUも調べてみました。とは言っても各CPUのデータシートを追っていくのは大変ので、Cソースをコンパイルして必要なところを抜き出しています。やっていることは、a = b + 10, a = b - 50; で、10の加算と50の減算です。フラグ関係…

Exercise 2.2-2.4

Exercise 2.2 What binary number does this hexadecimal number represent:0x7FFF_FFFA? What decimal number does it represent? 0x7FFF_FFFAは2進で表すと、0111_1111 1111_1111 1111_1111 1111_1100。十進で表すと、2147483642。 Exercise 2.3 What hexa…

Exercise 2.1

Exercise 2.1 Using the MIPS program in Exercise 2.34 (with bugs intact), determine the instruction format for each instruction and the decimal values of each instruction field. Exercise 2.34のコードをPCspimで読み込んで、コードをダンプしま…

2章 2.9 32bit即値のロード

教科書のSection 2.9に出てくる32bit即値の話。RISCプロセッサというのは、命令長が固定な為、命令長が32bitであれば、32bitの即値をそのまま入れることはできません。クロスアセンブラの環境ができたので、早速各CPUの比較をしてみましょう。各コマンドは本…

sparcのクロスコンパイル環境を用意する。

勉強用にcygwinで動くsparc向けのクロスコンパイル環境を作りました。 インストールは途中でエラー終了してしまいましたが、勉強には十分なので整理してみました。実際の開発に耐えられる物ではないので、注意してください。 gmp-4.1のインストール GCCの4.3…

クロス環境の構築

適当に各プロセッサのCコンパイラを揃えてみました。勉強に使う分には十分だと思います。Cygwinがインストールしてあることが前提です。CQ出版のCDにも体験版などが入っているのですが、気軽にダウンロードできること、Optionが統一されているの理由でgcc系…

2章 mips シミュレータの準備

Exercise 2.1 をする前準備 exercise 2.34のバグ付きプログラムを使って、各命令についてフォーマットと、10進の値を確認しなさい。まじめにやろうとするとアセンブラが必要なんですが、mipsシミュレータでさくっと確認しましょう。 手順を簡単にまとめまし…

パタヘネを勉強するための自分用ルール

臨機応変に 自分用ルール 主に章末の練習問題と、CDROMを中心に勉強する。練習問題は基本的には解いていきたいけど、初版のやつは「CPUをHDLで書け」とか無茶な練習問題もあったので、ボリューム次第。 プロセッサ周辺は、たとえ少しでもVerilogとかSystemC…

パタヘネを一緒に勉強する人募集中、めざせバイナリアン!

練習問題を中心にパタヘネを勉強していくブログです。 パタヘネとは Computer Organization and Design: The Hardware/Software Interface Patterson先生とHennessy先生が書いた、ソフトとハードのインターフェイスを書いた本。初版に比べるとソフトウェアに…

上とは違うの?

りすと りすと りすと

ここに見出し書くの?

リスト リスト リスト

アセンブラを張ってみる

main: addi $v0, $zero, 0 # initialize count loop: lw $v1, 0($a0) # Read next word from source sw $v1, 0($a1) # Write to destinetion addi $a0, $a0, 4 # Advance pointer to next source addi $a1, $a1, 4 # Advance pointer to next distination be…

初めてのはてなダイアリ

砂場書いてみるよ。