マイナビニュース | テクノロジー | スパコン/HPC | ヘッドライン(2006)(1ページ目)

ヘッドライン

2006年12月23日(土)

コンピュータアーキテクチャの話 第60回 4ビットプロセサのアーキテクチャ設計 - Intel 4004の命令アーキテクチャ

Intel 4004は、演算する語長が4ビット、命令語長は8ビット、アドレス空間は12ビットである。当時の半導体技術で1チップに集積するという要件から、4ビットの語長に制限せざるを得なかったことは理解できる。

[23:33 12/23]

2006年12月12日(火)

コンピュータアーキテクチャの話 第59回 4ビットプロセサのアーキテクチャ設計 - DEC PDP-8

Digital Equipment(DEC)は1965年にPDP-8というミニコンを発売した。このコンピュータは爆発的に売れて、DECの基礎を確立した製品である。Intelに就職する前のスタンフォード大学時代にHoff氏がPDP-8を使っていたかどうかは知らないが、超小型のコンピュータである4004を考えるにあたり、当時評判の良かった小型コンピュータであるPDP-8を参考にしたことは確実だと思われる。

[02:11 12/12]

2006年12月06日(水)

コンピュータアーキテクチャの話 第58回 4ビットプロセサのアーキテクチャ設計 - IBM 1130

メインフレームは高価で大会社に一台という時代であったが、エンジニアが設計に使えるもっと安価なコンピュータが欲しいという要望に応える製品が、1130である。

[17:41 12/6]

2006年11月28日(火)

コンピュータアーキテクチャの話 第57回 4004の設計を追体験する - KBP命令のエンコーディングに関する補遺

第49回で4004のKBP命令のエンコーディングについて書いたが、4004のマニュアルをお持ちの読者の方から実物と違っているとご教示を戴いた。

[21:19 11/28]

2006年11月22日(水)

コンピュータアーキテクチャの話 第56回 4ビットプロセサのアーキテクチャ設計 - IBM Syetem/360

IBMのSystem/360は32ビットの本格的コンピュータで、当初のアーキテクチャから機能増強は続けられているものの、40年余りにわたって使い続けられているGene Amdahl博士の設計による傑作コンピュータアーキテクチャである。

[21:04 11/22]

2006年11月14日(火)

コンピュータアーキテクチャの話 第55回 4004の設計を追体験する - まとめ

この追体験設計では4004の主要コンポーネントの設計を行ったが、IO命令をデコードして制御信号を生成する回路と、RAM、ROMの選択信号を生成するCM Logicについては設計を行っていない。

[21:12 11/14]

2006年11月07日(火)

コンピュータアーキテクチャの話 第54回 4004の設計を追体験する - 命令レジスタとデコーダ

命令レジスタと命令デコーダはROMから読み出された命令を受け取り、命令を解釈してプロセサ全体の制御を行う、いわば、プロセサの頭脳部分である。

[19:56 11/7]

2006年11月01日(水)

コンピュータアーキテクチャの話 第53回 4004の設計を追体験する - ALUとCC Genユニット(4)

このALU動作表からAdd/Subや各マルチプレクサを制御する表を作り、それを生成する回路をNANDやNORゲートを用いて設計することは可能であるが、ここでは次に示すようなROM型の制御信号生成回路を使うことにする。

[23:13 11/1]

2006年10月24日(火)

コンピュータアーキテクチャの話 第52回 4004の設計を追体験する - ALUとCC Genユニット(3)

フルアダーで1ビットの加算が出来るようになったので、次は4ビットのアダーである。多ビットの加算を行う高速アダーについてはいずれ稿を改めて説明しようと思うが、4004の設計では高々4ビットの加算であるので、最も単純なリップルキャリー方式のアダーを用いる。

[20:37 10/24]

2006年10月17日(火)

コンピュータアーキテクチャの話 第51回 4004の設計を追体験する - ALUとCC Genユニット(2)

話がちょっと横道にそれるが、ここで論理回路の簡単化に便利なカルノーマップ(Karnaugh Map)について説明しておこう。次の表は6入力、1出力のカルノーマップを示している。

[22:10 10/17]

2006年10月10日(火)

コンピュータアーキテクチャの話 第50回 4004の設計を追体験する - ALUとCC Genユニット(1)

次の図に、ALUのブロックダイヤグラムを示す。ALUはバイナリの加減算を行うだけでなく、10進の加減算のアシスト、シフトやJCN命令の条件の成立、不成立の判定などを行う。

[19:17 10/10]

2006年10月04日(水)

コンピュータアーキテクチャの話 第49回 4004の設計を追体験する - レジスタファイル

次に、インデックスレジスタに使用する16個の4ビットレジスタからなるレジスタファイルを設計してみよう。このレジスタファイルには、それぞれ4個のラッチからなる16個のレジスタと、それらの一つを選択して書き込みを行ったり、読み出しを行ったりする機能が必要である。

[22:06 10/4]

2006年09月26日(火)

コンピュータアーキテクチャの話 第48回 4004の設計を追体験する - スタック

FFを用いて設計したPCとスタックを図に示す。但し、これは4bit分であり、PClow、PCmid、PChighと、この回路を3個使ってPCとスタックを構成する。

[22:11 9/26]

2006年09月19日(火)

コンピュータアーキテクチャの話 第47回 4004の設計を追体験する - PCインクリメンタ

次にPCをインクリメント(+1)する回路を設計して見よう。PCの最下位のビットは元の値に"1"を加えるので、2進数の場合は、単純に値を反転すれば良い。そして、元の値が"1"であった場合は桁上がりを生じる。

[20:24 9/19]

2006年09月12日(火)

コンピュータアーキテクチャの話 第46回 4004の設計を追体験する - 4ビット内部バスと各種レジスタ(2)

タイミング発生回路はこのコラムの40回、41回で設計した回路であり、8相の各サイクルを示す信号を生成する。

[15:17 9/12]

2006年08月30日(水)

コンピュータアーキテクチャの話 第45回 4004の設計を追体験する - 4ビット内部バスと各種レジスタ(1)

ブロックダイヤグラムに示すように、4004は背骨にあたる4ビット内部バスに各機能ユニットが接続された構造になっている。そして、内部バス制御表に示したように各ユニットからバスにデータを送り出し(SRC)たり、バスからデータを受け取ったり(DST)して処理を行っている。まず、この4004の中心となる4ビット内部バスとそれに繋がる各種レジスタを設計してみよう。

[22:14 8/30]

2006年08月22日(火)

コンピュータアーキテクチャの話 第44回 4004の設計を追体験する - 命令ごとの動作の整理(3)

最初の表は、命令の前半のA1~A3サイクルのバス動作、第二の表は命令の後半のA1~A3サイクルのバス動作を示したものである。そして、第三の表は、命令の前半のM1、M2サイクルの動作、第四の表は命令の後半のM1、M2サイクルの動作を示したものである。この部分はFIN命令の後半に処理を除くと、全命令で同じ動作を行えば良い。

[21:20 8/22]

2006年08月08日(火)

コンピュータアーキテクチャの話 第43回 4004の設計を追体験する - 命令ごとの動作の整理(2)

ここでは代表として二つの命令だけを取り上げたが、設計に当たっては、このような各サイクルの動作の規定を全ての命令について行う。これを行ったものを示す。

[20:10 8/8]

2006年08月01日(火)

コンピュータアーキテクチャの話 第42回 4004の設計を追体験する - 命令ごとの動作の整理(1)

4004を再設計するに当たって、命令の動作と基本サイクルの図から、A1~3、M1,2、X1~3の各サイクルに行う動作を明確に規定する必要がある。例えば、インデックスレジスタRRRRの内容をアキュムレータに格納するLD命令の場合は、以下のような動作を行えば良い。

[21:31 8/1]

2006年07月25日(火)

コンピュータアーキテクチャの話 第41回 4004の設計を追体験する - 設計その1:タイミング発生器(2)

多少、話は横道にそれるが、状態割り当てについて述べてみたい。4004のタイミング発生回路のような8状態の順序回路を作るには、2進の記憶回路であるフリップフロップが最低3個は必要である。

[21:06 7/25]

2006年07月18日(火)

コンピュータアーキテクチャの話 第40回 4004の設計を追体験する - 設計その1:タイミング発生器(1)

4004プロセサは連載の32回に掲載した基本命令サイクルの図に示すように、A1-3、M1-2、X1-3の合計8サイクルで一つの命令を処理する。論理設計の足慣らしとして、この8サイクルのタイミングを発生する回路を作ってみよう。

[18:17 7/18]

2006年07月11日(火)

コンピュータアーキテクチャの話 第39回 4004の設計を追体験する - 論理設計に入る前に(3)

マスタスレーブ型フリップフロップはラッチを2段 直列に接続し、G入力には互いに逆の信号を入力した形をしている。後段のラッチは前段のQの値を言われたままにコピーするので、前段がマスタ(主人)で後段はスレーブ(奴隷)と名付けられている

[22:21 7/11]

2006年07月04日(火)

コンピュータアーキテクチャの話 第38回 4004の設計を追体験する - 論理設計に入る前に(2)

もう一つ、重宝な回路としてトライステートゲートがある。トライステートインバータの回路図を次に示す。

[17:11 7/4]

2006年06月28日(水)

コンピュータアーキテクチャの話 第37回 4004の設計を追体験する - 論理設計に入る前に(1)

これまでIntel 4004の命令仕様を細かく見てきたので、次に、Faggin氏になった積もりで4004の設計を追体験してみようと思う。但し、当時のPMOS 2相ダイナミック回路は昨今はやらないので、今風のCMOSで、かつ、あまり回路テクニックを使わないごく一般的なゲートやFFを使った分かり易い設計をしてみようと思う。

[21:20 6/28]

2006年06月26日(月)

コンピュータアーキテクチャの話 第36回 Intel 4004プロセサのアーキテクチャ - 4004の命令セット(4)

アキュムレータ命令はアキュムレータを操作して各種の処理を行う命令であり、OPAの値により14種のバリエーションがある。また、OPA=14 、OPA=15に対応する命令はなく、空きとなっている。

[18:26 6/26]

2006年06月14日(水)

コンピュータアーキテクチャの話 第35回 Intel 4004プロセサのアーキテクチャ - 4004の命令セット(3)

RAM/ROMをアクセスして読み書きを行ったり、I/Oポートをアクセスしてデータのやり取りを行ったりするのがI/O命令である。次の表に示すようにI/O命令はOPAで指定される15種のバリエーションがあり、OPAの値により、アクセス対象がRAMであるかROMであるか、あるいはI/Oポートであるかなどが指定される。

[21:51 6/14]

2006年06月06日(火)

コンピュータアーキテクチャの話 第34回 Intel 4004プロセサのアーキテクチャ - 4004の命令セット(2)

FIM命令は、命令の後半の8ビットのデータをレジスタペアに格納する命令である。この8ビットのデータのOPR側、OPA側とレジスタペアの偶数、奇数側の対応はデータシートには明確に書かれておらず不明であるので、ここではOPR側のデータが偶数、OPA側のデータが奇数側に対応すると想定して話を進める。

[21:40 6/6]

2006年06月02日(金)

コンピュータアーキテクチャの話 第33回 Intel 4004プロセサのアーキテクチャ - 4004の命令セット

表に、4004の命令セットを示す。命令は基本的に8ビット長であり、命令の種別を示すOPRとオペランドを指定するOPAからなっている。命令語長が8ビットで1アドレス命令であるので一つのオペランドしか指定できず、演算命令などでは他方のオペランドは常にアキュムレータ(ACC)であり、演算結果もアキュムレータに書き込むという動作を行う。

[12:12 6/2]

2006年05月24日(水)

コンピュータアーキテクチャの話 第32回 Intel 4004プロセサのアーキテクチャ - 4004の命令アーキテクチャ

4004のブロックダイヤを次の図に示す。この図はIntelのデータシートやWebで集めた資料などに掲載された図を元に筆者の理解を加えて作成したものである。実は、この図は、4004の設計を追いかけていく過程で何度も修正を繰り返し、この形に落ち着いたものである。

[19:38 5/24]

2006年05月17日(水)

コンピュータアーキテクチャの話 第31回 Intel 4004プロセサのアーキテクチャ - はじめに

Intel 4004は、1971年11月に発売された世界初のワンチップマイクロプロセサである。日本のBUSICOMという会社の電卓用のLSIの開発依頼に対して、Intel社のTed Hoff氏は電卓専用のカスタムLSIを作るのではなく、より汎用のマイクロプロセサの開発を提案した。実際のチップの開発はFederico Faggin氏(後にZilog社を起こし、Z80を開発)が中心となり、BUSICOM社から派遣された嶋正利氏らと協力して作り上げられたのがこの4004である。

[19:32 5/17]

2006年05月10日(水)

コンピュータアーキテクチャの話 第30回 マイクロプロセサの実装コスト - 消費電力(2)

更に精度の高い消費電力見積もりを行うには、これらの数値を実際の設計に近づける必要がある。以前の設計をあまり大きく変更しない設計の場合は、前世代のチップ設計のデータから改良設計する場合のデータを比較的高い精度で推定することが可能であるが、完全に新規設計の場合は、論理シミュレータを使って動作率を求めたり、ある程度のレイアウトを行って配線容量を求めたりすることが必要となる。

[20:28 5/10]

2006年04月25日(火)

コンピュータアーキテクチャの話 第29回 マイクロプロセサの実装コスト - 消費電力(1)

前回述べたように、トランジスタのゲート容量は微細化にはあまり影響されずチャネル幅1μmあたり1fF程度である。また、配線は1mmあたり100fF程度であると考える。これらの値は、当たらずとも遠からずの値であるが、当然、使用する半導体プロセスにより異なるので、実際にはそれに合わせて見積もりを行う必要がある。

[20:57 4/25]

2006年04月20日(木)

コンピュータアーキテクチャの話 第28回 マイクロプロセサの実装コスト - 動作速度(3)

入力容量10fFのインバータで長さ1mmの配線を通して信号を伝送すると、負荷容量は配線が100fF、次段のインバータの入力容量が10fFであり、Total Effortは11となる。

[20:51 4/20]

2006年04月11日(火)

コンピュータアーキテクチャの話 第27回 マイクロプロセサの実装コスト - 動作速度(2)

各論理回路の入力容量が一定となるようにゲートを設計すると、ゲートの遅延時間は負荷となるゲートの個数(あるいは大きさ)が何個であるかという電気的な増幅率(Electrical Effort)とLogical Effortの積(Total Effort)で決まるというのがLogical Effortの理論である。

[18:48 4/11]

2006年04月04日(火)

コンピュータアーキテクチャの話 第26回 マイクロプロセサの実装コスト - 動作速度(1)

CMOS回路がスイッチする遅延時間は、ゲートを構成するトランジスタを通して流れる電流で負荷となる容量を電源電圧Vddの1/2の電圧まで充放電する時間で決まる。充電する負荷容量は、次段のゲートの入力容量と配線の寄生容量が主な要素である。

[17:53 4/4]

2006年03月28日(火)

コンピュータアーキテクチャの話 第25回 マイクロプロセサの実装コスト - チップ面積

チップ面積は何で決まるかというと、当然、どのような回路がどれだけ載っているかに依存する。次の図は、前回掲載した2個のインバータのレイアウト図であるが、レイアウトルールを考えると、高さは14ピッチ程度、幅は5~6ピッチ程度となる。これは65nm半導体プロセスの場合、高さが2μm程度、幅が0.8μm程度であり、面積として1.6平方μmとなる。

[20:27 3/28]

2006年03月14日(火)

コンピュータアーキテクチャの話 第24回 マイクロプロセサの実装コスト - チップの値段はどのようにして決まるのか

マイクロプロセサはウエファというシリコンの薄い円盤の上に作られる。大きな円盤で一度に多数のチップを作る方が単価を下げられるので、このウエファの寸法は時代とともに大きくなっており、最先端の半導体工場では直径300mmのものが用いられる。

[20:07 3/14]

2006年03月07日(火)

コンピュータアーキテクチャの話 第23回 マイクロプロセサの実装コスト - 半導体テクノロジ(2)

SRAMセルは面積を小さくすることが重要であり、少しでも寸法を小さくするため、以前は色々なレイアウトが工夫されたが、露光やプロセスのマージンの点から、最近では各社ともこの配置を用いているようである。

[19:15 3/7]

2006年03月01日(水)

コンピュータアーキテクチャの話 第22回 マイクロプロセサの実装コスト - 半導体テクノロジ(1)

半導体テクノロジと微細化に伴うマイクロプロセサの実現コストがどのようになるか、その見積もり方法について説明しようと思う。

[14:53 3/1]

2006年02月21日(火)

コンピュータアーキテクチャの話 第21回 キャッシュの構造や働き(応用編) - IDF Fall 2005に見るIntelの新プロセサのキャッシュ(2)

何れにしてもキャッシュはCPUチップの半分程度の面積を占めるようになってきており、その意味ではプロセサコアと同等かそれ以上の重要性を持つメカニズムであるが、IDFの報道などを見ても、その構造や動きはあまり理解されていないのではないかと思いこの連載を書いた。

[19:03 2/21]

2006年02月14日(火)

コンピュータアーキテクチャの話 第20回 キャッシュの構造や働き(応用編) - IDF Fall 2005に見るIntelの新プロセサのキャッシュ

電力のためにwayを減らすという方法を製品に採用するのはYonahが初めてではないかと思うが、故障したビットが発見された場合に、そのwayを停止させて、性能は多少下がるが、動作を続行するというやり方はサーバ用のハイエンドプロセサでは以前から存在し、それと同じ方法でwayを空けて電源をオフにすると思われる。

[18:24 2/14]

2006年02月07日(火)

コンピュータアーキテクチャの話 第19回 キャッシュの構造や働き(応用編) - 各キャッシュ階層に何を入れるか?

多階層のキャッシュの場合、一番大きな3次キャッシュに入っているデータの集合が一番大きく、2次キャッシュはこの集合の一部、1次キャッシュは2次キャッシュに入っているものの一部というように、上位のキャッシュの内容は下位のキャッシュの内容のサブセットというやり方が一般的である。

[18:10 2/7]

2006年01月31日(火)

コンピュータアーキテクチャの話 第18回 キャッシュの構造や働き(応用編) - どのキャッシュに何を書き込むか? 各種のキャッシュ構造

ここまでの議論は、如何にデータをできるだけ速く取り出し性能を上げるかという観点から色々なキャッシュの構造を見てきたが、それらのキャッシュにどのような種類のデータを書き込むかという点には触れず、単純にメモリに入っている情報は何でも一まとめに区別をして来なかった。しかし、今度はキャッシュにどのような種類の情報を書き込むかという観点から、キャッシュの構造を見てみよう。

[21:43 1/31]

2006年01月24日(火)

コンピュータアーキテクチャの話 第17回 キャッシュの構造や働き(応用編) - 設計上のトレードオフ

全体のCPIを小さくするためには、キャッシュミス率を低減することと、待ち時間のTm*を減らすことが重要である。一般的にキャッシュの容量を大きくすればミス率は減少するが、大きなキャッシュはチップ面積を喰うし、アクセス速度も遅くなる。

[20:59 1/24]

2006年01月18日(水)

コンピュータアーキテクチャの話 第16回 キャッシュの構造や働き(応用編) - プロセサ性能の見積もり

キャッシュに頻繁に使うデータを溜め、遅いメモリまでアクセスに行かないで済むようになれば性能が上がるのは当然であるが、それではどのくらい性能が上がるのであろうか?

[19:32 1/18]

2006年01月10日(火)

コンピュータアーキテクチャの話 第15回 キャッシュの構造や働き(上級編) - キャッシュ間の通信(ブロードキャストとスヌーピング)

MOESIプロトコルの説明で、書き込みにあたっては、他のプロセサの当該データを持つキャッシュラインをInvalid化したり、あるいは、Modifiedのキャッシュラインの物理アドレスへの読出し要求を送るとそのキャッシュラインを保持するプロセサが応答しデータを供給したりすると書いたが、このような動作を実現するためには、プロセサのキャッシュ間で緊密な通信が必要となる。

[20:45 1/10]

バックナンバー

人気記事

一覧

イチオシ記事

新着記事