【コラム】

コンピュータアーキテクチャの話

105 10進数の演算ハードウェア

105/366

ExponentとBias

Exponentはdecimal32では6ビット、decimal64では8ビット、decimal128では12ビットのフィールドを持ち、こちらは10進数ではなく、2進数で表現される。ビット数が少ないので、入出力に当たって2進10進変換するオーバヘッドは大きくなく、一方、Exponentが2進数であれば、従来の2進浮動小数点演算器と指数部の処理回路を共通化できるというメリットがあるという理由である。

表現できる最大の数値が、例えば10の99乗であったとすると、最小の数値は10の-99乗というのがバランスが良い。このようにすれば、逆数をとってもオーバーフローやアンダーフローすることが無く、2進の浮動小数点形式はこの要件を満たしている。しかし、10進形式のCoefficientは整数で小数点は右端にあるので、2進形式のようにExponentの正、負の値が絶対値で同じであると、Coefficientの桁数分、最大値の方が大きくなってしまう。このため、BiasはExponentの最大値の半分より少し上側にずれており、decimal32では101、decimal64では398、decimal128では6176と定められている。decimal32のExponentが6ビットなら最大値は63なのに、何故、Biasが101になるのかという疑問を持たれた読者は、まじめに読んでいただいている貴重な読者で、その理由は次項のCombination Fieldの説明を読んで戴きたい。

Combination Field

10ビットの整数倍のCoefficient部と、実用上、適当な長さのExponent部と符号1ビットを取ると、5ビット程度が残る。10ビットには足りないので精度を10進3桁増やすことはできないし、さりとて、Exponent部をやたらに長くしても無駄が多い。ということで、頭をひねってCombination Fieldと呼ぶ5ビットのフィールドを作った。

Combination Fieldは、その名の通り、ExponentとCoefficientの両方のビット数を補うものであり、さらに、無限大やNaNなどを記述する機能を持っている。

Combination Field 5ビット タイプ Exponent MSB 2ビット Coefficient MSD 4ビット
a b c d e 数値 a b 0 c d e
1 1 c d e 数値 c d 1 0 0 e
1 1 1 1 0 - - - - - -
1 1 1 1 1 NaN - - - - - -

この表に見られるように、Combination Fieldは、Exponentの最上位の2ビットとCoefficientの最上位の10進1桁を拡張している。但し、この表の第一行のabや第二行のcdは、"11"以外の値でなければならないので、数値的にはExponentの拡張はフル2ビットの0~3ではなく、0~2にしか拡張できない。そして、10進1桁は9までの数値しかないことを利用して、空き領域に無限大とNaNを定義している。

これらのCombination fieldの値がExponentやCoefficientの最上位になることから、ExponentやCoefficientを表わす本体のフィールドは継続する下位ビットやディジットという位置づけになり、Exponent ContinuationとかCoefficient Continuationという名前になっている。

このような拡張があるので、decimal32のExponentは0~63ではなく0~191となり、Biasを101とすることにより、10の-101乗から+90乗までの指数を表わすことができるようになっている。

10進浮動小数点データの範囲

以上、述べたようなコーディングにより、それぞれのデータ形式で表現できる数値の範囲を以下の表にまとめる。

decimal32 decimal64 decimal128
総ビット長 32 64 128
有効10進桁数 7 16 34
Exponentの最大値 191 767 12287
Exponentのバイアス 101 398 6176
指数の最小値 -101 -398 -6176
指数の最大値 90 369 6111

10進数の演算ハードウェア

4ビットのうちの0~9までの数値を使うBCD形式のデータの足し算は、両者が普通の2進数と思って加算を行い、

  • 各桁の合計が9以下:そのまま
  • 合計が10以上となった桁:更に+6

というステップで行えば良い。例えば、合計が12になった桁に+6すると18となり、2進4ビットのアダーの出力は2となり、更に、上位の桁へのキャリーが生成されるので、正しいBCD形式の結果が得られる。そして、引き算の場合には、各桁の値が負になった場合は、上の桁を-1して、その桁に10を足し込めば良い。

図29にIBMのPOWER6プロセサの10進浮動小数点演算ユニットの構成を示す。ユニットとしては四則演算と各種コンバージョンをサポートしているが、ハードウェアとしては、DPDとBCDの変換回路とBCDの加算器、そして掛け算のための2倍と5倍の値の生成回路と必要なレジスタといった軽い構成で、スライドにも、ハードウェアとしては最小限の実装であると断っている。

図29:POWER6の10進浮動小数点ユニット。(出典:2006年 Fall Processor Forumにおける発表資料)

しかし、このような比較的簡単な実装でも、Javaの10進浮動小数点演算を使う実アプリで7倍以上、C#では4倍の性能が得られたという。

演算器シリーズの終わりにあたって

当コラムの70回から長々と続いてきた演算器シリーズはこれで終わりである。かねてより、演算器についてまとめて書いてみたいと思っていたのであるが、このような機会を与えて戴いたマイコミジャーナル編集部に深く感謝する次第である。また、ヘネパタ本(David A. Patterson & John L. Hennessy著 Computer Architecture: A Quantitative Approach)には演算器についてAppendixに書いてあった(この部分の著者はXeroxのGoldberg氏である)が、3版以降では無くなってしまった。その他のコンピュータの教科書などでも、演算器に関してこれほど網羅的、かつ、詳しく書いたものは筆者の知る範囲では存在せず、読者のお役に立てるのではないかと思う。

105/366

インデックス

連載目次
第366回 GCNのスカラユニットとベクトル演算
第365回 GCNのブロックダイヤグラムを読む
第364回 AMDの新GPUアーキテクチャ「GCN」
第363回 VLIW命令をSIMD実行することで効率を高めたATI
第362回 ATIを買収してGPUを手に入れたAMD
第361回 仮想化で1つのGPUを複数ユーザで活用する
第360回 CPUとGPUで処理を分担する場合のメモリのコピー手法
第359回 GPUプログラミングを難しくするCPUとGPUのメモリの分散
第358回 HPCにおけるCPU-GPU間のデータのやり取り
第357回 CPUとGPUの通信
第356回 積層することで性能向上を図ったHBM
第355回 GPUにおけるECCの考え方
第354回 GPUのデバイスメモリのアドレスの考え方
第353回 GPUにおける1次キャッシュのコヒーレンシ
第352回 GPUで用いられるシェアードメモリの原理
第351回 GPUでスレッドを同期させる手法
第350回 NVIDIAの世代別GPUに見るハードウェアの違い
第349回 GPUにおける条件分岐の方法
第348回 複数のデータの処理を一度に行うGPUのメモリアクセス
第347回 CPUとは異なり、レジスタ対応が固定ではないGPU
第346回 Kepler GPUとMaxwell GPUの演算単位を推測する
第345回 Kepler GPUの構成
第344回 ワープスケジューラの仕組み
第343回 多数のスレッドを実行させるNVIDIAの「ギガスレッドエンジン」
第342回 「nBlocks」と「nThreads」、2つの変数の大きな違い
第341回 GPUの事実上の標準となりつつある実行方式
第340回 NVIDIAのGPUにおける実行方式
第339回 よくわかっていないGPUのハードウェアの造り
第338回 1命令の実行時間は遅いが、複数命令の同時処理で高性能を実現するGPU
第337回 実はそれほど速くはないGPUのメモリアクセス時間
第336回 CPUと異なるGPUにおけるコアと2次キャッシュの関係性
第335回 キャッシュの実装を世代ごとに変化させてきたNVIDIA
第334回 キャッシュのコヒーレンスはどのように保たれているのか
第333回 GPUにおける1スレッドあたりのキャッシュ容量の考え方
第332回 シェアードメモリとキャッシュメモリは何が違うのか
第331回 汎用の科学技術計算におけるGPUのキャッシュの必要性
第330回 レジスタファイルとシェアードメモリ
第329回 GPUは膨大なバンド幅をどうやって実現しているのか?
第328回 「GPU」はスループット重視のプロセサ
第327回 CMOSにおける消費エネルギーと動作速度の関係
第326回 1ビット訂正ハミングコード
第325回 エラーの検出方法
第324回 GPUのエラー発生頻度はどの程度のものであるか?
第323回 GPUで用いられるメモリのエラー検出手法とその訂正手法
第322回 GPUが用いるメモリのアクセス時間の短縮方法
第321回 GDDR5の後継として検討されるHBM
第320回 なぜGPUにはDDR DRAMではなくGDDR DRAMが用いられるのか?
第319回 CPUに比べて圧倒的に多いレジスタ数
第318回 GPUはどうやってマルチスレッド処理を行っているか
第317回 浮動小数点演算器の搭載により科学技術計算分野での活用が進んだGPU
第316回 GPUが高性能な理由
第315回 ばらばらのメモリアクセスパターンを処理する必要があるSIMT方式
第314回 Teslaアーキテクチャが採用した「SIMT方式」
第313回 1つの命令で複数の演算器を動かす「SIMD」
第312回 固定小数点の演算から、浮動小数点の演算へ
第311回 現在のGPUの主流となっている「ユニファイドシェーダ」
第310回 超マルチスレッドプロセサである「GPU」に見るグラフィックス処理
第309回 SPARC Tシリーズに受け継がれるSunのNiagaraプロセサの思想
第308回 Intel CoreやXeonも採用しているSMT方式
第307回 VMTによりハードウェア効率を向上させたIBMのPOWER3
第306回 メインプロセサが多スレッドをサイクルごとに切り替えて実行するHEPスパコン
第305回 複数の命令列を並列実行するマルチスレッドプロセサ
第304回 電力の削減と高性能の両立を狙ったARMのbig.LITTLE
第303回 マルチコア以下の状況にあるメニーコアプロセサの電源制御
第302回 最新CPUで採用 - 同じパッケージに搭載される安定化電源技術
第301回 動的に電圧と周波数の制御を行った初の商用プロセサ - TransmetaのCrusoe
第300回 将来のメニーコアに向けたアーキテクチャとその課題
第299回 MITのマルチプロセサ研究の成果を活用 - Tilera
第298回 Intelのメニーコアチップ - Xeon Phi
第297回 輸出ディレクトリを用いたキャッシュコヒーレンス
第296回 メニーコアにおけるキャッシュコヒーレンス
第295回 メニーコアにおけるバリア同期の課題とその解決手法
第294回 メニーコアの接続に威力を発揮する2次元メッシュネットワーク
第293回 メニーコアにおけるクロスバネットワークとリングネットワークの特徴
第292回 リングの利用効率を向上する複数トークン方式「スロッテッドリング」
第291回 LANに見るEthernetとトークンリング
第290回 クロスバスイッチとリングバス
第289回 マルチプロセサにおけるメモリアクセスの高速化手法
第288回 MESIにForwardingという状態を付け加えたMESIFプロトコル
第287回 MESIプロトコルとMOESIプロトコル
第286回 4つの状態を使用するMOSIプロトコル
第285回 共通メモリ型マルチプロセサで必要なキャッシュコヒーレンシの維持
第284回 バスの使用効率を向上することが可能なスプリットトランザクションバス
第283回 初期のマルチプロセサシステムで採用されたコモンバス方式
第282回 マルチコアプロセサのすべてのコアでメモリを共有する構成 - SMP
第281回 マルチコアはどうやって性能を向上させているのか
第280回 半導体業界がこぞってマルチコアに舵を切った理由
第279回 消費電力低減のための電源電圧の低下が引き起こす漏れ電流の増大
第278回 なぜ、CMOSは低消費電力を実現できるのか?
第277回 マルチコアを実現するために必要なアーキテクチャ
第276回 Googleや「京」に見るエラー訂正技術
第275回 ハードウェアではなくシステム全体で見た場合のエラー検出/訂正技術
第274回 論理回路で用いられるエラー訂正技術
第273回 複数ビットに対応するブロックエラー訂正コード
第272回 2ビットエラーによるシステムダウンを減らすデータポイゾニング
第271回 DRAMの1ビット固定故障への対応手法「エラーロギング」
第270回 メインメモリのエラー訂正手法「Scrubbing」
第269回 IBMの研究員が考案したHsiaoコード
第268回 Single-bit Error Correction Double-bit Error Detection(SECDED)コード
第267回 ハミングコードを用いたエラー訂正
第266回 再送と並び広く用いられているエラー訂正符号
第265回 同じデータを再送することでエラーを訂正
第264回 理論的なエラー検出コード - CRC
第263回 パリティチェックとチェックサム
第262回 ハミング距離
第261回 ウオッチドッグタイマー - プロセサで良く用いられるエラー検出法
第260回 偶数パリティと奇数パリティ
第259回 Algorithmic Checkを用いたエラー検出
第258回 エラーの検出手法
第257回 2つのラッチによる中性子ヒットに対するエラー率低減手法
第256回 エラーによる誤動作を防ぐ方法 - BISERフリップフロップ
第255回 LSIの動作に影響をおよぼすのは1MeV以上のエネルギーを持つ中性子
第254回 間欠故障の最大要因 - 中性子線ソフトエラー
第253回 部品の故障率
第252回 マイクロプロセサのテストと部品の初期故障
第251回 メモリのテスト方式
第250回 故障によって、どのようなことが起こるのか
第249回 プロセサが良品であることをどうやって保証するのか
第248回 プロセサ内部におけるデカップリングキャパシタ
第247回 プロセサチップ内部における電源配線
第246回 パッケージにおける電源インピーダンスの考え方
第245回 プリント基板/ソケットピン/パッケージそれぞれのインダクタンス
第244回 電源電流の変化量
第243回 プロセサの電圧を生み出すDC-DCコンバータ
第242回 プロセサへの電源供給系
第241回 クロックの最終分配とスペクトラム拡散クロック
第240回 クロックグリッドとDLLを用いたクロック分配
第239回 差動信号によるクロック分配とクロック配線のシールド
第238回 Hツリーを用いたクロックの分配手法(2)
第237回 Hツリーを用いたクロックの分配手法(1)
第236回 PLLによるクロックの生成
第235回 製造バラつきを考慮したクロックSkew設計
第234回 クロックサイクルによるパイプライン処理
第233回 プロセサのインフラストラクチャ - LSIの内部配線
第232回 プロセサのインフラを理解する - 電源やクロック系の設計は黒魔術
第231回 High-K/Metal Gateの活用によるリーク電流の低減
第230回 独立した電源系 - ボルテージアイランド/ボルテージドメイン
第229回 パワーゲートで電源をオフにして消費電力を抑制
第228回 トランジスタの使い分けによるリーク電流の削減
第227回 ショートサーキット電流と漏れ電流
第226回 CMOSダイナミック回路(2)
第225回 CMOSダイナミック回路(1)
第224回 トランジスタサイズの最適化(3)
第223回 トランジスタサイズの最適化(2)
第222回 トランジスタサイズの最適化(1)
第221回 ダイナミック電力の低減手法(4)
第220回 ダイナミック電力の低減手法(3)
第219回 ダイナミック電力の低減手法(2)
第218回 ダイナミック電力の低減手法(1)
第217回 CMOSマイクロプロセサにおけるダイナミック電力の考え方
第216回 CMOSスタティック回路(3)
第215回 CMOSスタティック回路(2)
第214回 CMOSスタティック回路(1)
第213回 MOSFETの構造と特性
第212回 CMOSプロセスと消費電力
第211回 仮想化におけるI/Oの制御法
第210回 VMMのオーバヘッドの解決手法
第209回 プロセサ仮想化の基本的な概念
第208回 割り込みと例外
第207回 仮想化とハードウェアアーキテクチャ
第206回 プリフェッチとスカウトスレッド
第205回 VMTとSMT
第204回 古くからあるマルチスレッドの考え方
第203回 動作周波数重視からマルチコアへのシフト
第202回 マルチコア、マルチスレッドプロセサ
第201回 トランザクションメモリ
第200回 Dekker's Algorithmとメモリオーダリング
第199回 マルチプロセサで共用されるデータ構造
第198回 Test and Set命令
第197回 共有メモリと分散メモリ
第196回 ディレクトリベースのコヒーレンス機構(2)
第195回 ディレクトリベースのコヒーレンス機構(1)
第194回 キャッシュラインのフォールスシェアリング
第193回 Includeフィルタの考え方
第192回 スヌープフィルタの考え方
第191回 プロセサ間を接続するバス(2)
第190回 プロセサ間を接続するバス(1)
第189回 キャッシュスヌープとインクルージョン
第188回 キャッシュコヒーレンシ - MOESIプロトコル
第187回 キャッシュコヒーレンシ - MESIプロトコル
第186回 キャッシュコヒーレンシ - MOSIプロトコル
第185回 キャッシュコヒーレンシ - MSIプロトコル
第184回 キャッシュコヒーレンシ
第183回 マルチプロセサのメモリアクセス(2)
第182回 マルチプロセサのメモリアクセス(1)
第181回 プロセサの性能向上のネックの1つ「ロード命令」
第180回 Intelのトレースキャッシュ
第179回 トレースキャッシュ(2)
第178回 トレースキャッシュ(1)
第177回 ビクティムキャッシュとインクルージョンキャッシュ
第176回 ストアコンプレッション/ストアマージ
第175回 キャッシュ再訪
第174回 分岐先アドレスを予測する
第173回 一般的に95~99%正しい予測をする分岐予測機構
第172回 Gshare方式とハイブリッド予測
第171回 グローバル履歴を使う分岐予測
第170回 分岐予測の干渉
第169回 ローカル履歴を用いる予測方法
第168回 ダイナミックに分岐方向を予測する
第167回 条件分岐命令と分岐予測の考え方
第166回 タイムスタンプによる要求のロード、ストア要求の格納(2)
第165回 タイムスタンプによる要求のロード、ストア要求の格納(1)
第164回 メモリディスアンビギュエーション
第163回 リオーダバッファによるリネーム方式
第162回 命令のコミット
第161回 物理レジスタファイルとリネームレジスタの開放
第160回 物理レジスタ番号をタグとして用いる
第159回 リネーミング処理
第158回 レジスタリネーミング(2)
第157回 レジスタリネーミング(1)
第156回 Tomasuloアルゴリズム(2)
第155回 Tomasuloアルゴリズム(1)
第154回 スコアボード方式による管理(2)
第153回 スコアボード方式による管理(1)
第152回 アウトオブオーダ実行とその問題点
第151回 スーパースカラ方式における命令デコードの留意点
第150回 複数命令の並列実行 - スーパースカラ方式による命令実行
第149回 リタグで格納場所を移動
第148回 キャッシュサイズを大きくするためには
第147回 仮想アドレスキャッシュと物理アドレスキャッシュ
第146回 TLBの構造とTLBミスへの対応法
第145回 フラグメンテーションとその解決法
第144回 メモリの管理機構
第143回 多階層のキャッシュ化
第142回 ライトスルーとライトバック
第141回 空きキャッシュラインの確保
第140回 キャッシュの処理フロー
第139回 ダイレクトマップキャッシュとその注意点
第138回 キャッシュアクセスの2つの考え方
第137回 キャッシュの仕組み
第136回 ローカルメモリの2つの方法
第135回 メモリのアクセス時間とローカルメモリ
第134回 2種類の例外処理
第133回 パイプラインの長さに比例するストールサイクル数
第132回 プログラムカウンタ
第131回 パイプラインの制御
第130回 データハザードを減らすバイパス
第129回 実行資源の予約
第128回 パイプラインの制御
第127回 パイプラインの設計 - パイプラインステージの長さ
第126回 マルチポートレジスタ(2)
第125回 マルチポートレジスタ(1)
第124回 パイプライン処理と構造的ハザード
第123回 コンピュータの命令処理
第122回 コンピュータの性能向上(2)
第121回 コンピュータのマイクロアーキテクチャ - コンピュータの性能向上
第120回 CISCアーキテクチャとRISCアーキテクチャ
第119回 命令の長さ
第118回 データタイプとアライメント(2)
第117回 データタイプとアライメント(1)
第116回 オペランドのアドレッシング(2)
第115回 命令の構造 - オペランドのアドレッシング(1)
第114回 汎用レジスタマシン
第113回 アキュムレータマシン(2)
第112回 単純な構造のコンピュータ - アキュムレータマシン
第111回 命令セットアーキテクチャとマイクロアーキテクチャ
第110回 汎用コンピュータと専用コンピュータ
第109回 ノイマン型コンピュータと非ノイマン型コンピュータ
第108回 チューリングマシン
第107回 ディファレンスエンジン
第106回 アーキテクチャって何だ?
第105回 10進数の演算ハードウェア
第104回 10進浮動小数点演算
第103回 Newton-Raphson法とGoldschmidt法(2)
第102回 Newton-Raphson法とGoldschmidt法
第101回 浮動小数点除算器と平方根演算器
第100回 浮動小数点積和演算器
第99回 浮動小数点乗算器
第98回 2パス浮動小数点加算器
第97回 多数ビットの桁落ちが発生する場合のノーマライズ
第96回 浮動小数点加算器 - 桁合わせと加算
第95回 ゼロの表現
第94回 区間演算
第93回 ヒドン(Hidden)ビットで精度を1ビットを稼ぐ
第92回 IEEE 754規格と浮動小数点演算
第91回 シフト回路(シフター)
第90回 Pentiumの割り算器のバグ
第89回 テーブルにどれだけの重なりを作るか?
第88回 1サイクルに複数ビットの商を求める割り算器(2)
第87回 1サイクルに複数ビットの商を求める割り算器
第86回 引き放し法は本当に速いのか?
第85回 引き過ぎを戻す必要があるのか?
第84回 割り算器 - 筆算をハード化した引き戻し法
第83回 4-2コンプレッサー
第82回 負の部分積の処理
第81回 Wallace Tree
第80回 Boothのアルゴリズム
第79回 リニアアレイとパラレルアダー
第78回 乗算器 (Multiplier)
第77回 アダーの実装に関して
第76回 Lingアダー
第75回 パラレルプリフィックスアダー(3)
第74回 パラレルプリフィックスアダー(2)
第73回 パラレルプリフィックスアダー
第72回 演算器の設計 - キャリールックアヘッドアダー(2)
第71回 演算器の設計 - キャリールックアヘッドアダー
第70回 演算器の設計 - 加算器(Adder)
第69回 4ビットプロセサのアーキテクチャ設計 - 性能を上げるには(2)
第68回 4ビットプロセサのアーキテクチャ設計 - 性能を上げるには(1)
第67回 4ビットプロセサのアーキテクチャ設計 - MJアーキテクチャプロセサの性能
第66回 4ビットプロセサのアーキテクチャ設計 - MJアーキのタイミング図とブロックダイヤグラム
第65回 4ビットプロセサのアーキテクチャ設計 - MJアーキテクチャの命令セット(3)
第64回 4ビットプロセサのアーキテクチャ設計 - MJアーキテクチャの命令セット(2)
第63回 4ビットプロセサのアーキテクチャ設計 - MJアーキテクチャの命令セット(1)
第62回 4ビットプロセサのアーキテクチャ設計 - MJアーキテクチャ 4ビットプロセサの設計(2)
第61回 4ビットプロセサのアーキテクチャ設計 - MJアーキテクチャ 4ビットプロセサの設計(1)
第60回 4ビットプロセサのアーキテクチャ設計 - Intel 4004の命令アーキテクチャ
第59回 4ビットプロセサのアーキテクチャ設計 - DEC PDP-8
第58回 4ビットプロセサのアーキテクチャ設計 - IBM 1130
第57回 4004の設計を追体験する - KBP命令のエンコーディングに関する補遺
第56回 4ビットプロセサのアーキテクチャ設計 - IBM Syetem/360
第55回 4004の設計を追体験する - まとめ
第54回 4004の設計を追体験する - 命令レジスタとデコーダ
第53回 4004の設計を追体験する - ALUとCC Genユニット(4)
第52回 4004の設計を追体験する - ALUとCC Genユニット(3)
第51回 4004の設計を追体験する - ALUとCC Genユニット(2)
第50回 4004の設計を追体験する - ALUとCC Genユニット(1)
第49回 4004の設計を追体験する - レジスタファイル
第48回 4004の設計を追体験する - スタック
第47回 4004の設計を追体験する - PCインクリメンタ
第46回 4004の設計を追体験する - 4ビット内部バスと各種レジスタ(2)
第45回 4004の設計を追体験する - 4ビット内部バスと各種レジスタ(1)
第44回 4004の設計を追体験する - 命令ごとの動作の整理(3)
第43回 4004の設計を追体験する - 命令ごとの動作の整理(2)
第42回 4004の設計を追体験する - 命令ごとの動作の整理(1)
第41回 4004の設計を追体験する - 設計その1:タイミング発生器(2)
第40回 4004の設計を追体験する - 設計その1:タイミング発生器(1)
第39回 4004の設計を追体験する - 論理設計に入る前に(3)
第38回 4004の設計を追体験する - 論理設計に入る前に(2)
第37回 4004の設計を追体験する - 論理設計に入る前に(1)
第36回 Intel 4004プロセサのアーキテクチャ - 4004の命令セット(4)
第35回 Intel 4004プロセサのアーキテクチャ - 4004の命令セット(3)
第34回 Intel 4004プロセサのアーキテクチャ - 4004の命令セット(2)
第33回 Intel 4004プロセサのアーキテクチャ - 4004の命令セット
第32回 Intel 4004プロセサのアーキテクチャ - 4004の命令アーキテクチャ
第31回 Intel 4004プロセサのアーキテクチャ - はじめに
第30回 マイクロプロセサの実装コスト - 消費電力(2)
第29回 マイクロプロセサの実装コスト - 消費電力(1)
第28回 マイクロプロセサの実装コスト - 動作速度(3)
第27回 マイクロプロセサの実装コスト - 動作速度(2)
第26回 マイクロプロセサの実装コスト - 動作速度(1)
第25回 マイクロプロセサの実装コスト - チップ面積
第24回 マイクロプロセサの実装コスト - チップの値段はどのようにして決まるのか
第23回 マイクロプロセサの実装コスト - 半導体テクノロジ(2)
第22回 マイクロプロセサの実装コスト - 半導体テクノロジ(1)
第21回 キャッシュの構造や働き(応用編) - IDF Fall 2005に見るIntelの新プロセサのキャッシュ(2)
第20回 キャッシュの構造や働き(応用編) - IDF Fall 2005に見るIntelの新プロセサのキャッシュ
第19回 キャッシュの構造や働き(応用編) - 各キャッシュ階層に何を入れるか?
第18回 キャッシュの構造や働き(応用編) - どのキャッシュに何を書き込むか? 各種のキャッシュ構造
第17回 キャッシュの構造や働き(応用編) - 設計上のトレードオフ
第16回 キャッシュの構造や働き(応用編) - プロセサ性能の見積もり
第15回 キャッシュの構造や働き(上級編) - キャッシュ間の通信(ブロードキャストとスヌーピング)
第14回 キャッシュの構造や働き(上級編) - MOESIプロトコル
第13回 キャッシュの構造や働き(上級編) - キャッシュコヒーレンシ
第12回 キャッシュの構造や働き(上級編) - メモリエーリアス
第11回 キャッシュの構造や働き(上級編) - TLB
第10回 キャッシュの構造や働き(上級編) - メモリはどう管理されるのか
第9回 キャッシュの構造や働き(上級編) - データの局所性とプリフェッチ
第8回 キャッシュの構造(基礎編) - セットアソシアティブキャッシュとLRU
第7回 キャッシュの構造(基礎編) - フルアソシアティブ方式とダイレクトマップ方式
第6回 キャッシュの構造(基礎編) - どういう単位でキャッシュに入れるのか?
第5回 リーク電流の影響
第4回 マルチコアプロセサの消費電力
第3回 αとCLの低減による低電力化
第2回 電源電圧とクロック周波数の関係
第1回 なぜ、マルチコアで消費電力が減るのか?

もっと見る



人気記事

一覧

イチオシ記事

新着記事