【コラム】

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

349 GPUにおける条件分岐の方法

 

349/359

SIMT実行の条件分岐

コンピュータのプログラムで、条件を判定して、その後の処理を変えるという機能を使わずに済むものはほとんど無いといってよい。CPUのマルチスレッド処理のように、実行するスレッドごとにプログラムとPC(プログラムカウンタ)があるプロセサの場合は、if文の条件が成立したスレッドではthen節の命令を実行し、条件が不成立のスレッドではelse節の命令を実行するようにすればよい。

しかし、NVIDIAのGPUの場合は32スレッドがワープという単位でまとめられており、32スレッドが同じ命令列を実行する。このため、1つのワープの中に、条件が成立するスレッドと不成立のスレッドが混在すると困ったことになる。

この問題を解決するため、GPUではスレッドごとに、それぞれの命令にその命令を実行するかしないかを指示するPredicateというビットを指定することができるようになっている。前の図3-32ではPredicateの値が、直接、命令の実行の可否を決めるように書いたが、実は図3-45のように、比較命令setpの結果のTrue/False(真/偽)をPredicateレジスタに格納し、各命令では\@pを先頭に着けることにより、Predicateレジスタを参照して命令実行の可否を決めるという方法が採られている。

なお、setp命令はすべてのスレッドで同じレジスタのペアを比較するが、レジスタの値はスレッドごとに異なっているので、比較結果もスレッドごとに異なる。そして、\@pの付いている命令はPredicateレジスタの値が真の場合は、その命令を実行し、偽の場合は、命令の実行をスキップする。

このため、図3-45のように、if文の条件をsetp命令で判定してPredicateレジスタに格納し、then句のInst1からInst5の命令は\@pを付けておくと、条件判定が真のスレッドではthen句の命令が実行され、偽のスレッドではthen句は実行されず、Inst6の命令が実行されるようになる。

ただし、スキップされた命令も実行された命令と同じ実行時間が掛かるので、スキップした分、実行が速くなるわけではない。この例ではthen句だけであるが、else句がある場合は、@!pを命令に前置すれば良い。「!」を付けるとPredicateレジスタの真偽を反転して実行の可否を決める。論理的には@pを付けたthen句の命令と\@!pを付けたelse句の命令をつなげればif~then~else~の処理ができるが、ifの条件が成立した場合も不成立の場合もthen句とelse句の両方を実行するだけの時間が掛かる。このため、性能の観点からは、then句、else句でスレッドごとに実行する命令が異なる部分はできるだけ短くすることが重要である。

1つのワープの中で条件判定が分かれる場合はPredicateを使わざるを得ないが、Warp全体で同じ方向に分岐する場合は分岐命令を使って、実行しない命令列は飛ばしてしまう方が効率が良い。この情報を伝えるため、PTXでは分岐命令の後に.uniという指定ができるようになっている。この指定を付けるとPTXは全スレッドが同じ方向に分岐するとみなしてマシン命令を生成する。

図3-45 Predicateレジスタを使うif条件分岐の実行

Predicateレジスタは1bitのレジスタである。PTXのドキュメントではPredicateレジスタは仮想レジスタであると書かれており、物理的に何個のPredicateレジスタがあるのかはPTXのドキュメントにもCUDA C Programming Guideにも書かれていない。

Predicateレジスタの内容を、直接読んだり、Predicateレジスタに値を直接書き込む命令は無いのであるが、Predicateの値に応じてレジスタに格納する値を選択するselp命令を使えば、内容を0/1に変換して汎用レジスタに書き込むことができる。また、このように変換すると、複数のPredicate値のAND、OR、XORなどを計算することができる。そして、setp命令で汎用レジスタの値をPredicate値に変換できる。従って、物理的なPredicateレジスタは1個しかなくても、汎用レジスタがあれば仮想的には複数のPredicateレジスタがあるように見せることが可能である。

Predicateレジスタが1個しかないと、分岐による枝分かれの中に、また、別の条件での枝分かれある場合には、Predicateレジスタ内容の入れ替えが必要になり効率が悪いので、何個かの物理Predicateレジスタを備えていると思われるが、その数は一定ではなく、GPUアーキテクチャの世代で変わっているのかも知れない。

余談であるが、32ビットのV7アーキテクチャのARMプロセサもこのようなPredicateを持っているが、新しい64ビットのV8アーキテクチャではPredicateは無くなってしまった。Predicateレジスタの指定に4ビットを必要としており、このため、ARM V7アーキテクチャでは汎用レジスタの指定には4ビットしか割り当てられず、SPARCやMIPS、POWERなどのRISCでは32個ある汎用レジスタが16個に制限されてしまう。レジスタが少ないのであふれたデータをメモリに追い出し、必要になれば再度読み出すという無駄な動作の頻度が高くなり、実行性能が下がってしまうという問題があった。このためV8ではPredicateを止めて32汎用レジスタに変更したと言われている。

なお、ARMやSPARC、POWERなどのRISCプロセサの命令長は32ビットであるが、GPUは大部分が64ビット長の命令を使っており、Predicateに4ビットを使ってもレジスタ指定には十分なビットがあるので、ARMとは事情が異なる。

349/359

インデックス

連載目次
第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回 なぜ、マルチコアで消費電力が減るのか?

もっと見る

関連キーワード


人気記事

一覧

イチオシ記事

新着記事

医師らと共同開発! NY発の機能性バッグを体験できるフェア開催
[10:33 9/30] ヘルスケア
近鉄、スマホなどから会員登録不要で特急券などが購入できる新サービス
[10:30 9/30] 企業IT
フジ社屋や大観覧車・自由の女神も - 臨海副都心全体がピンクにライトアップ
[10:30 9/30] エンタメ
山谷花純、木村拓哉・月9『CHANGE』デビューから9年目での初主演 - 母がくれた"カスミソウの花言葉"を胸に
[10:30 9/30] エンタメ
Google、「Android Wear 2.0」の正式版リリースを来年前半に延期
[10:24 9/30] スマホとデジタル家電