kivantium活動日記

プログラムを使っていろいろやります

2016-12-01から1ヶ月間の記事一覧

2016年に読んだ本

2016年最後の日なので今年読んだ本を振り返ってみたいと思います。 まんがタイムKRコミックス 今年もたくさんのきららコミックスを読みました。 NEW GAME! NEW GAME! (4) (まんがタイムKRコミックス)作者: 得能正太郎出版社/メーカー: 芳文社発売日: 2016/07…

アセンブリ言語 その2

この記事はkivantium Advent Calendarの19日目です。前回は最初のCPUの設計に使う命令セットを紹介しました。 今回はこの命令を使っていろいろなプログラムを書いてみます。 SPIM ここではMIPSのシミュレータとして有名なSPIM (MIPSを逆から読んだ名前) を使…

アセンブリ言語 その1

この記事はkivantium Advent Calendarの18日目です。 CPUを設計する際に重要な要素の一つが命令セットアーキテクチャ (ISA) です。 これから設計する簡単なCPUのISAとして、分かりやすく参考文献も多いMIPSを採用することにしました。 MIPS ISA の詳細は htt…

いろいろなCPU

この記事はkivantium Advent Calendarの17日目の記事です。昨日まででCPUを作る部品の解説は一通り終わったのでついにCPUの作成に入る準備ができました。 実際に作成に入る前に過去の偉人に学ぶべく独断と偏見で選んだ歴史上のCPUたちを一言ずつ紹介していき…

浮動小数点数の除算

この記事はkivantium Advent Calendarの16日目です。昨日は浮動小数点数の加減算を扱いました。 今日は演算器シリーズの最終回として浮動小数点数の除算を取り上げます。 基本原理 浮動小数点数の演算を行うには符号部・指数部・仮数部を決める必要がありま…

浮動小数点数の加減算

この記事はkivantium Advent Calendarの15日目です。このページは移動しました。https://kivantium.net/cpu-faddを見てください。

バレルシフタ

この記事はkivantium Advent Calendarの14日目です。昨日は浮動小数点数の乗算をやりました。 今日は浮動小数点数の加減算をするのに必要な部品であるバレルシフタを紹介します。 シフトの使い道 シフト演算は高速なのでビット演算テクニックとしてよく使わ…

きんモザ・ごちうさ聖地巡礼記

この記事はまんがタイムきらら Advent Calendar 2016、きんいろモザイク Advent Calendar 2016、ごちうさ Advent Calendar 2016の14日目です。(さすがに欲張りすぎた)9月にきんいろモザイクの聖地であるイギリスと、ご注文はうさぎですか?の聖地とされる…

浮動小数点数の乗算

この記事はkivantium Advent Calendarの13日目です。昨日は浮動小数点数のフォーマットについて説明しました。 今日は浮動小数点数の乗算をやります。 仕組み 浮動小数点数は仮数と指数で表されるので 指数の和を取る 仮数の積を取る 仮数を丸めてフォーマッ…

浮動小数点数

この記事はkivantium Advent Calendarの12日目です。昨日までで整数の四則演算のやり方を紹介しました。 今日からは浮動小数点数の使い方を紹介します。 IEEE-754 浮動小数点数の表し方はコンピュータの歴史の中で何種類かありましたが、現在主流となってい…

除算器 その2

この記事はkivantium Advent Calendarの11日目です。昨日は回復法を用いた除算器の設計を説明しました。回復法は符号付き整数を扱えないという欠点がありました。今日はこれを克服する非回復法を説明します。 非回復法(引き放し法) 回復法では引き算の結果…

除算器 その1

この記事はkivantium Advent Calendarの10日目です昨日までで四則演算のうち3つが揃ったので今日からは最難関の割り算をやります 回復法(引き戻し法) 話を簡単にするため、まずは符号なし整数の割り算を考えます。 割り算の場合も基本の考え方は筆算です。…

乗算器 その3

この記事はkivantium Advent Calendarの9日目です。昨日はWallaceツリーを用いた乗算器の構成を紹介しました。 昨日までの方法ではbit数と同じ数の部分積の和を取る必要がありましたが、今日は部分積を減らすことで高速化を目指す方法を紹介します。 Radix-4…

乗算器 その2

この記事はkivantium Advent Calendarの8日目です。昨日は符号なし整数掛け算の実現方法として単純な2つの回路を考えてそれらが実用的でないことを確認し、また、符号付き整数の掛け算を行う方法としてBaugh-Wooleyアルゴリズムを紹介しました。 今日は乗算…

乗算器 その1

この記事はkivantium Advent Calendarの7日目です。昨日は乗算器の準備のために順序回路の構成要素であるラッチとフリップフロップについて簡単に触れ、シフトレジスタを導入しました。今日は掛け算を行う回路を作っていこうと思います。 単純な符号なし乗算…

ラッチとフリップフロップ

この記事はkivantium Advent Calendarの6日目です。昨日までは入力だけで出力が確定する組み合わせ回路を扱っていました。 しかし、掛け算のような複雑な演算を効率的に行うには前の計算結果を保存しておいて、何度か繰り返し計算を行うような処理が必要にな…

減算器

この記事はkivantium Advent Calendarの5日目です。昨日までで足し算ができるようになったので今度は引き算を考えます。 引き算はという関係から負の数の足し算として考えれば加算器をそのまま流用することができそうです。 しかし、2進数での負の数をどう定…

加算器 その2

この記事はkivantium Advent Calendarの4日目です。昨日は半加算器・全加算器・リップルキャリーアダーを紹介しました。 リップルキャリーアダーはゲートがたくさん直列に並んでいるため遅いです。 そこで今回は高速な加算器を実装する話です。 キャリールッ…

加算器 その1

この記事はkivantium Advent Calendarの3日目です。昨日はNANDゲートから任意のゲートを作れることを確認しました。 ここからは何回かに分けて四則演算などの基本的な計算を行う回路の実現方法を書いていきます。四則演算は組み合わせ回路として書けるので、…

NANDがあればなんでもできる その2

この記事はkivantium Advent Calendarの2日目です。昨日はトランジスタを使ってNANDゲートを作る方法を解説しました。 今日はNANDゲートを使っていろんなゲートを作っていきます。 基本的なゲート ゲートにはNANDゲートの他にも何種類もあります。よく使う有…

NANDがあればなんでもできる その1

この記事はkivantium Advent Calendarの1日目です。 このAdvent Calendarについて トランプ大統領の誕生により、核戦争で文明が崩壊するリスクが高まっています(脳内設定)。また、巷では空前の異世界転生ブームが巻き起こっているため、いつ異世界に飛ばさ…

広告コーナー