コンピュータ構成要素

「コンピュータ構成要素」の編集履歴(バックアップ)一覧はこちら

コンピュータ構成要素」(2013/10/01 (火) 14:13:37) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

*【命令処理の効率化】 **★パイプライン CPUの高速化手法の一つ。 1つの命令の各段階(命令の読み込み・解釈・実行・結果)の処理機構を独立して動作させることにより、前の命令のサイクルが終わる前に流れ作業的に次の命令の処理を始める方式。 &bold(){パイプラインの処理時間の求め方} ***( D + I - 1 ) * P D: 命令の深さ(命令の分割数) I: 命令数 P: パイプラインのピッチ(時間) **★スーパーパイプライン パイプラインをさらに細分化することによって高速化を図る方式。 #image(パイプライン.gif) **★パイプラインハザード 命令のパイプライン制御を行っていても、命令の依存関係などの理由で先読み処理がうまく機能せず、命令の並列処理が中断してしまう状態を指す。 &bold(){データハザード}   処理するデータの依存関係が原因で発生するハザード。   後続の命令が直前の実行結果を利用する場合に発生する。 &bold(){構造ハザード}   複数の命令によるハードウェア資源の競合により派生するハザード。   主にメモリアクセスの競合が発生した場合に発生する。 &bold(){制御ハザード(分岐ハザード)}   命令の先読みを行っている処理内にある分岐命令や割り込み処理が原因で発生するハザード。   次に実行すべき命令が判明するまでパイプラインの読み込みを停止したり、先読みした処理が無駄になってしまう。   これにより、処理効率が悪くなってしまう状態。 **◆スーパースカラ CPU内部に複数のパイプラインを用意して、パイプラインの各ステージを並列に実行することで処理高速化を図る方式。 複数の命令を同時に実行するとき、命令を実行する演算機をハードウェアによって動的に割り当てる。 ---- *【プログラムの処理時間の計算方法】 CPUクロック周期 * CPI ※CPI(Clock cycle Per Instruction)・・・CPUが1命令を実行するのにかかる平均クロック数 ---- *【コンピュータの命令実行順序】 1) プログラムカウンタを参照して、次の命令が格納されている位置を知る。 2) 主記憶から命令レジスタに命令を読込む。(命令フェッチ) 3) その次に実行する命令の主記憶上のアドレスをプログラムカウンタに格納する。 4) 命令レジスタの命令を命令デコーダで解読(解釈)する。(命令の解読) 5) 演算で必要となる値(オペランド)を主記憶から汎用レジスタに読込む。(オペランド読出し) 6) 命令を実行する。 7) 実行結果をメモリやレジスタに書込む。 ---- **◆エンディアン データをメモリ上にロードするときの配置の仕方。 &bold(){ビッグエンディアン} データの上位バイトから下位バイトに向かって、メモリの下位アドレスから順に配置していく方式。 「そのまま読める」のが特徴。 &bold(){リトルエンディアン} データの上位バイトから下位バイトに向かって、メモリの上位アドレスから順に配置していく方式。 #image(エンディアン.gif) **◆ノイマン型コンピュータ 主記憶(メモリ)に格納したプログラムの命令を一つずつプロセッサが読み出して実行する方式のコンピュータ。 プロセッサが主記憶から命令を読み出す速度(転送速度)はCPUの処理速度に比べて非常に遅いため、ここが原因でボトルネックが発生する。 この対策として、プロセッサと主記憶の間にキャッシュメモリを置く方法などが挙げられる。 **◆キャッシュメモリ(※)の方式 &bold(){フルアソシアティブ(Fully Associative)方式} associative:連合の、連想の 主記憶のブロックがキャッシュメモリ上のどのブロックにも関連付けられる方式。 ダイレクトマッピングより柔軟な運用が可能になる。 ブロックの関連付けを全て記憶しておく必要があるため、検索にも時間がかかる。 &bold(){ダイレクトマッピング(Direct Mapping)方式} 主記憶のアドレスからキャッシュメモリのアドレスが一意に決まる方式。 主記憶上のブロック番号にハッシュ演算をすることでキャッシュメモリのブロック番号を計算する。 &bold(){セットアソシアティブ(Set Associative)方式} フルアソシアティブとダイレクトマッピングの中間に位置する方式。 キャッシュを連続したブロックごとにまとめ、そのブロック内ならどこでも格納ができる方式。 ※キャッシュメモリ ・・・ CPU内部に設けられた内部的な記憶装置。高速・低容量。 **◆DMA(Direct Mapping Access) 入力装置と主記憶やメモリとの間のデータ転送をCPUを介さずに行う方式。 コンピュータと周辺機器のデータのやり取りは専用の制御回路(伝送路)を使用する。 CPUが入力装置の制御を行わなくて済むため、データ転送中も別の処理を行うことが可能になる。 ---- ---- *メモリ **メモリインタリーブ(Memory Interleaving)とは interleave:~に白紙を綴じ込む、挟む メモリアクセス高速化のための技法の一つ。 物理上一つの主記憶を論理的な領域(バンク)にわけ、これらに対して並列アクセスを行うことで、見かけ上のアクセス時間を短縮することができる。 **プロセッサにデータを読み込むときの流れ 1) 対象データがキャッシュメモリに存在するかを確認する。    ⇒存在する場合:キャッシュメモリのデータを使用する。    ⇒存在しない場合:主記憶にあるデータを使用する。 2) CPUは主記憶からキャッシュメモリにデータを転送し、そのキャッシュメモリのデータを使用する。    ※一度参照されたデータは近い将来に再度参照される可能性が高いため。 **主記憶の平均アクセス時間の求め方 キャッシュメモリのアクセス時間 × ヒット率 + 主記憶のアクセス時間 × (1 - ヒット率) **ECC(Error Check and Correct)メモリとは 記録内容に発生した誤りを検知・訂正できる機能を持つメモリのこと。 誤り訂正符号として&bold(){ハミング符号}や&bold(){垂直水平パリティ}を用いる。 ここでハミング符号は、情報ビットに検査ビットを付加することで2ビットの誤りを検知し、1ビットの誤りを訂正することができる。 ---- *バス ---- *入出力デバイス **USB(Universal Serial Bus)の規格と転送モードについて &bold(){USB1.0}:フルスピードモード(12Mbps) &bold(){USB2.0}:ハイスピードモード(480Mbps) &bold(){USB3.0}:スーパースピードモード(5Gbps)
*【命令処理の効率化】 **★パイプライン CPUの高速化手法の一つ。 1つの命令の各段階(命令の読み込み・解釈・実行・結果)の処理機構を独立して動作させることにより、前の命令のサイクルが終わる前に流れ作業的に次の命令の処理を始める方式。 &bold(){パイプラインの処理時間の求め方} ***( D + I - 1 ) * P D: 命令の深さ(命令の分割数) I: 命令数 P: パイプラインのピッチ(時間) **★スーパーパイプライン パイプラインをさらに細分化することによって高速化を図る方式。 #image(パイプライン.gif) **★パイプラインハザード 命令のパイプライン制御を行っていても、命令の依存関係などの理由で先読み処理がうまく機能せず、命令の並列処理が中断してしまう状態を指す。 &bold(){データハザード}   処理するデータの依存関係が原因で発生するハザード。   後続の命令が直前の実行結果を利用する場合に発生する。 &bold(){構造ハザード}   複数の命令によるハードウェア資源の競合により派生するハザード。   主にメモリアクセスの競合が発生した場合に発生する。 &bold(){制御ハザード(分岐ハザード)}   命令の先読みを行っている処理内にある分岐命令や割り込み処理が原因で発生するハザード。   次に実行すべき命令が判明するまでパイプラインの読み込みを停止したり、先読みした処理が無駄になってしまう。   これにより、処理効率が悪くなってしまう状態。 **◆スーパースカラ CPU内部に複数のパイプラインを用意して、パイプラインの各ステージを並列に実行することで処理高速化を図る方式。 複数の命令を同時に実行するとき、命令を実行する演算機をハードウェアによって動的に割り当てる。 ---- *【プログラムの処理時間の計算方法】 CPUクロック周期 * CPI ※CPI(Clock cycle Per Instruction)・・・CPUが1命令を実行するのにかかる平均クロック数 ---- *【コンピュータの命令実行順序】 1) プログラムカウンタを参照して、次の命令が格納されている位置を知る。 2) 主記憶から命令レジスタに命令を読込む。(命令フェッチ) 3) その次に実行する命令の主記憶上のアドレスをプログラムカウンタに格納する。 4) 命令レジスタの命令を命令デコーダで解読(解釈)する。(命令の解読) 5) 演算で必要となる値(オペランド)を主記憶から汎用レジスタに読込む。(オペランド読出し) 6) 命令を実行する。 7) 実行結果をメモリやレジスタに書込む。 ---- *【ライトスルー方式】 CPUから書き込む命令が出た時にキャッシュメモリと同時に主記憶にも書き込む方式。 データの整合性は得られるが、主記憶への書き込みが頻繁に行われるため処理速度は低下する。 常に主記憶とキャッシュメモリの内容が一致するため、データの一貫性の確保は容易である。 *【ライトバック方式】 CPUから書き込む命令が出た時にキャッシュメモリだけに書き込む方式。 主記憶への着こみはキャッシュメモリからデータが追い出されるときに行われる。 主記憶とキャッシュメモリの内容が一致しないため、データの一貫性を保つための対策(コーヒレンシ)が必要になる。 主記憶への書き込む頻度が少なくなるので、処理速度は向上する。 ---- *【メモリインタリーブ(Memory Interleaving)】 interleave:~に白紙を綴じ込む、挟む メモリアクセス高速化のための技法の一つ。 物理上一つの主記憶を「バンク」と呼ばれる論理的な領域にわけ、これらに対して並列アクセスを行うことで、見かけ上のアクセス時間を短縮することができる。 ---- *【SRAMとDRAMの特徴】 SRAM ・・・ 少量、高速、高価 DRAM ・・・ 高集積化、安価 ---- *【キャッシュメモリ(※)の方式】 ※キャッシュメモリ ・・・ CPU内部に設けられた内部的な記憶装置。高速・低容量。 **★フルアソシアティブ(Fully Associative)方式 associative:連合の、連想の 主記憶のブロックがキャッシュメモリ上のどのブロックにも関連付けられる方式。 ダイレクトマッピングより柔軟な運用が可能になる。 ブロックの関連付けを全て記憶しておく必要があるため、検索にも時間がかかる。 **★ダイレクトマッピング(Direct Mapping)方式 主記憶のアドレスからキャッシュメモリのアドレスが一意に決まる方式。 主記憶上のブロック番号にハッシュ演算をすることでキャッシュメモリのブロック番号を計算する。 **★セットアソシアティブ(Set Associative)方式 フルアソシアティブとダイレクトマッピングの中間に位置する方式。 キャッシュを連続したブロックごとにまとめ、そのブロック内ならどこでも格納ができる方式。 ---- *【入出力デバイス】 **★USB(Universal Serial Bus)の規格と転送モードについて &bold(){USB1.0}:フルスピードモード(12Mbps) &bold(){USB2.0}:ハイスピードモード(480Mbps) &bold(){USB3.0}:スーパースピードモード(5Gbps) ---- **◆エンディアン データをメモリ上にロードするときの配置の仕方。 &bold(){ビッグエンディアン} データの上位バイトから下位バイトに向かって、メモリの下位アドレスから順に配置していく方式。 「そのまま読める」のが特徴。 &bold(){リトルエンディアン} データの上位バイトから下位バイトに向かって、メモリの上位アドレスから順に配置していく方式。 #image(エンディアン.gif) **◆ノイマン型コンピュータ 主記憶(メモリ)に格納したプログラムの命令を一つずつプロセッサが読み出して実行する方式のコンピュータ。 プロセッサが主記憶から命令を読み出す速度(転送速度)はCPUの処理速度に比べて非常に遅いため、ここが原因でボトルネックが発生する。 この対策として、プロセッサと主記憶の間にキャッシュメモリを置く方法などが挙げられる。 **◆DMA(Direct Mapping Access) 入力装置と主記憶やメモリとの間のデータ転送をCPUを介さずに行う方式。 コンピュータと周辺機器のデータのやり取りは専用の制御回路(伝送路)を使用する。 CPUが入力装置の制御を行わなくて済むため、データ転送中も別の処理を行うことが可能になる。 ---- *メモリ **プロセッサにデータを読み込むときの流れ 1) 対象データがキャッシュメモリに存在するかを確認する。    ⇒存在する場合:キャッシュメモリのデータを使用する。    ⇒存在しない場合:主記憶にあるデータを使用する。 2) CPUは主記憶からキャッシュメモリにデータを転送し、そのキャッシュメモリのデータを使用する。    ※一度参照されたデータは近い将来に再度参照される可能性が高いため。 **主記憶の平均アクセス時間の求め方 キャッシュメモリのアクセス時間 × ヒット率 + 主記憶のアクセス時間 × (1 - ヒット率) **ECC(Error Check and Correct)メモリとは 記録内容に発生した誤りを検知・訂正できる機能を持つメモリのこと。 誤り訂正符号として&bold(){ハミング符号}や&bold(){垂直水平パリティ}を用いる。 ここでハミング符号は、情報ビットに検査ビットを付加することで2ビットの誤りを検知し、1ビットの誤りを訂正することができる。

表示オプション

横に並べて表示:
変化行の前後のみ表示:
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。