はじめに

■注意事項
 ・当ブログの説明は、トップページにて説明しています。
  独自のポリシーにて運営してますので、検索からお越しいただいた方はそちらもご覧いただけると幸いです。

応用情報技術者合格の道:2 〜ハードウェア

応用情報技術者合格の道:2 〜ハードウェア を はてなブックマーク に追加する
やはり基礎は基礎。基本情報技術者ベースで。

■ハードウェア知識(ノイマン型)

アセンブラで勉強したことを理論として理解しているかどうかだね。
ノイマン型コンピュータの五大装置から。

・ALU(Arithmetic and Logic Unit):プロセッサの四則演算や論理演算など算術的な処理を行なう部分。(演算装置
・レジスタ:ビットを記憶する記憶装置(記憶装置
 ・アキュムレータ:演算対象・結果を格納するレジスタ
・命令デコーダ:命令を解読し、実行部へ指示信号を出す回路(制御装置)
・メモリ:プログラム・データを格納する場所(記憶装置)

あとは命令処理の順
これも基本情報技術者時代に出てるか。
F→D→A→R→E。CPUで処理するのでそこでも出てくる。
パイプライン処理と関係があるため。

■プログラム実行方式・割り込み

固定区画/可変区画の方式、仮想記憶。
それと割り込み。

■CPU

□プロセッサの性能評価
ここ、ややこしい……ひねってきてるから覚えるだけではだめで、結構計算して解けるようにしなければ……。

・クロック周波数=1/周期 [Hz]
命令実行時間=CPI/クロック周波数 [s]
MIPS=1/命令実行時間×10-6 [MIPS]
中央処理装置・主記憶装置 - Variously blog - Yahoo!ブログ

命令実行時間は、実行速度とか言われたりもする。1秒間に、何ミリ秒の処理がどれだけできるかみたいな感じ。
命令種別が複数ある場合のMIPSとかも問われるが、結局は確率的に割合をかけて出して、足し合わせるみたいな感じ。
複数ある場合は、確率的なアプローチでおkっぽいなー……。
クロック周波数も、CPUクロック周期だとか、似てるような言葉で出てくる。……用語統一してほしい……。

「1/命令」って公式を覚えればいいのかな……大抵はそこが落としどころのような感じ。

・CPI:1命令を実行するのに必要なクロック数。
(1CPI=1クロック/命令)

・FLOPS:1秒間に実行できる浮動小数点数演算の回数
(1FLOPS=1回/秒)

□処理の高速化
・パイプライン方式
 ・遅延分岐:分岐命令に続く数命令を分岐のいかんにかかわらず必ず実行する方法
 ・分岐予測:過去の分岐パターンや履歴を元にある条件命令が次の実行で分岐するかどうかを予測します。
 ・投機的実行:分岐予測後、分岐命令が実行可能になる前に先取りして命令を実行する方法。

・スーパーパイプライン方式
・スーパースカラ方式

・パイプラインハザード:高速化ができない場合のこと
 ・データハザード:前の命令の演算結果を利用する場合
 ・制御ハザード:分岐命令の真偽によって実行する命令が異なる場合
 ・構造ハザード:実行中の命令が同じハードウェアを利用する場合


・VLIW:関連しない複数の命令をまとめた長い命令のこと。
    この命令を同時に実行する事で高速化する。

・並列化
 ・SISD:1命令で1データを処理
 ・SIMD:1命令で複数データを処理
 ・MISD:複数命令で1データを処理
 ・MIMD:複数命令で複数データを処理

MMXやSSE、3DNow!といったCPUアーキテクチャがSIMDの例。

・マルチプロセッサ
 ・密結合:主記憶・OSを共有する
 ・疎結合:主記憶・OSを個別に持つ

■メモリ

・キャッシュメモリ
 ・ライトスルー方式:キャッシュと主記憶両方にデータを書き込む。
 ・ライトバック方式:キャッシュにデータを書き込み、キャッシュの内容を追い出すとき主記憶に書き込む。

当然、ライトバック方式がよく使われる。単純にキャッシュを経由して主記憶に書くようなイメージでおk。
ライトスルーはCPUからキャッシュ&メモリに両方アプローチするような感じ。

・ヒット率
 ・Hit率+NFP=1
 ・Hit率=(1-NFP)


NFPとは、データがキャッシュメモリに無い確率のこと。

・メモリの割り付け

 ・ダイレクトマッピング
   メインメモリのブロックをキャッシュメモリの決められた場所に割り付ける方法。
   実装は簡単だが、キャッシュミスが多く、ヒット率が低くなる。
 ・フルアソシエイティブ
   メインメモリのブロックをキャッシュメモリのどの部分にでも割り付けるようにする方法
   実現が難しい。
 ・セットアソシエイティブ
   メインメモリのブロックをキャッシュメモリの決められたセット内においてどの部分にでも割り付けるようにする方法

現状よく使われているのは、セットアソシエイティブ方式。


■補助記憶

ほぼ同じ。アクセス時間/記憶容量計算。
HDとテープストリーマに対して。

あと、RAIDかな?
これは運用関係になると思うんだけど、まあいいや。
RAID5が、パリティでHD一台分容量を食うことだけ覚えとこう。

■入出力・周辺機器の接続規格

・DMA:CPUを介さずに周辺装置とメモリが直接データをやり取りする方式
・チャネル:周辺機器とメモリの間にあり、データ転送を専用に行うプロセッサ。チャネル接続を行う。
・I/Oデバイス:入出力制御専用のプロセッサ。

ここちょっとだけ解説を。
CPUはI/Oデバイスを通じて入出力をしている。つまり外部装置からメモリ(主記憶)へのデータ送受をやってんだね。
I/Oデバイスは間にあるゲートみたいなもんだけど、CPUが命令し、制御してる(制御装置)。
だけど、命令の送受信は必要だけど、データの送受はCPUが関わらなくてもいいよね。
特にHDとかのデータ記憶装置からメモリにデータを写すのってデータ量が多いだけに時間がかかるから、しないほうが早くなるならしなくてもいいようにしたい。

そこでDMAが出てくる。これはCPUの機能を代理して、データの送受、つまり転送を専門に請け負う
HDやCD、DVDのデータを、メモリに渡す、もしくはメモリから送るのにDMAが全部やっちゃうと。
これ、本を読んでて納得したポイント。知っておくと覚えやすいかも。

ちなみに同機能のチャネルとの差は、上に書いたとおりで、「メモリ<>周辺装置」なのがDMA、「メモリ<プロセッサ>周辺装置」なのがチャネル。どちらもCPUの代理として転送専門を請け負うのは同じ。
チャネルのほうがやや高機能なのかな。まぁ、そんなところ。区別は感覚的でもいいからつけておくといいかな。
選択肢に出てくるしね。


■ベクトルコンピュータ

ベクトル演算(ベクトルえんざん)とは、同一の演算を繰り返すような操作を逐次的(スカラー演算)ではなく、一度に行うもので、「フリンの分類」では「SIMD」に相当する。
ベクトル演算 - Wikipedia

普段よくやるのは、whileループとかで、インクリメントするような計算。それを結果だけ欲しいから、一回でこなしてしまう。
*を*回計算した結果……みたいな。
当然、計算結果が必要なのは、科学計算、天気予報とか地震予知などの膨大なデータを一気に処理する分野。

省いた箇所は基本情報技術者に既にあるので、そちらを参照の事。

▽参考サイト
2−1 〜コンピュータシステム:ハードウェア
2−2 〜コンピュータシステム:メモリアーキテクチャ
2−3 〜コンピュータシステム:磁気ディスクアーキテクチャ
2−6 〜OS:記憶管理
2−7 〜システム構成技術

中央処理装置・主記憶装置 - Variously blog - Yahoo!ブログ

Blackfin空挺団 | ジャンプ禁止
ユメのチカラ: 山勘で分岐先を実行することを投機的実行と呼ぶ
CPUの高性能化 - Security Akademeia
 ↑パイプライン・スーパーパイプライン・スーパースカラの違い
CPU
 ↑同じく、パイプライン・スーパーパイプライン・スーパースカラの違い。こっちのほうが単純?

特集 : RAIDの基礎知識−RAIDレベルを理解しよう−

ベクトル型スーパーコンピュータとは 【vector type super computer】 - 意味・解説 : IT用語辞典
ベクトル計算機 - Wikipedia
ベクトル演算 - Wikipedia

▽関連過去問・解説
・平成20年・秋期/問20
 (=基本情報技術者:平成17年・春期/問22)
 ↑平均アクセス時間
 ・平成20年 秋期 ソフトウェア開発技術者 午前 問20
  ↑はい、基本情報に引き続き。こういうのは苦手だなぁ……今でも。
・平成19年・春期/問17
 ↑MIPS
 ・平成19年 春期 ソフトウェア開発技術者 午前 問17
  ↑懐かしい……が、やはりうろ覚えだったか……。
・平成19年・秋期/問18
 ↑CPI
 ・平成19年 秋期 ソフトウェア開発技術者 午前 問18
  ↑CPIの絡む問題は合格の為に必須じゃなかろうか? 頻出だし。

・平成20年・秋期/問26
 ↑メモリ割当て
 ・平成20年 秋期 ソフトウェア開発技術者 午前 問26
  ↑ミスりやすい……もうそろそろ理屈覚えてもいいんだけど。
・平成18年・秋期/問26
 ↑ファイル領域割当て
 ・平成18年 秋期 ソフトウェア開発技術者 午前 問26

・平成18年・春期/問16
 ↑(SRAM|DRAM)メモリ
 ・平成18年 春期 ソフトウェア開発技術者 午前 問16
  ↑これは基本情報Lv。覚えなおしかな。

・平成20年・春期/問27
 ↑バッファキャッシュ
 ・平成20年 春期 ソフトウェア開発技術者 午前 問27
  ↑みょんな間違いしてます。バッファって書いてあるのにお前……。
・平成18年・秋期/問19
 ↑キャッシュメモリ
 ・平成18年 秋期 ソフトウェア開発技術者 午前 問19
  ↑これも微妙な選択肢に惑わされます。
・平成18年・春期/問19
(=平成19年・秋期/問19)
 ↑ヒット率
 ・平成18年 春期 ソフトウェア開発技術者 午前 問19
  ↑ヒット率計算式を知ってればおk。計算には不要な容量とかミスリード……。

・平成20年・春期/問15
 ↑DDR-SDRAM
 ・平成20年 春期 ソフトウェア開発技術者 午前 問15
  ↑個別知識問われるとは……。一応念のため。
・平成19年・秋期/問22
 ↑DMA
 ・平成19年 秋期 ソフトウェア開発技術者 午前 問22
  ↑DMA、チャネル、I/Oデバイスの違い……覚えよう。
・平成19年・秋期/問21
 ↑RAID
 ・平成19年 秋期 ソフトウェア開発技術者 午前 問21
  ↑意外な問題。実運用してなければ迷いやすいね。なるほど、誤り訂正符号データ格納用に一つ使うのか……。

・平成19年・秋期/問80
 ↑QRコード
 ・平成19年 秋期 ソフトウェア開発技術者 午前 問80
  ↑画像という事でここに。しかし、項目としては悩ましい問題。関連づけもしづらいが……また出そうだな。

・平成18年・秋期/問17
 ↑パイプライン
 ・平成18年 秋期 ソフトウェア開発技術者 午前 問17
  ↑高速化の方法は二種類。遅延分岐と投機実行。覚えよう。

・平成18年・春期/問21
 ↑ベクトルコンピュータ
 ・平成18年 春期 ソフトウェア開発技術者 午前 問21
  ↑基本情報ではスルー対象なベクトルコンピュータ。FLOPSが使われる(大規模に浮動小数点計算を行う為)。
・平成18年・春期/問32
 ↑ベクトル演算
 ・平成18年 春期 ソフトウェア開発技術者 午前 問32
  ↑こっちは計算が必要。

・平成18年・秋期/問18
 ↑SIMD
 ・平成18年 秋期 ソフトウェア開発技術者 午前 問18
  ↑Iが命令、Dがデータ。複数のデータを一つの命令で〜と問われた時、そのままMISDにするとひっかかる。

トラックバックURL

▼応用情報技術者合格の道:2 〜ハードウェア へのトラックバック

  1. 2.

    応用情報技術者試験合格の道:まとめ

    ひととおり午前解説記事も書き終わったし、そろそろまとめ記事が必要かな〜と思ったんで作成。 基本情報のときとアプローチは一緒。 まぁ、試験日までがんばりましょ。 ▼午前解説 ・1 〜情報理論 ・2 〜ハードウェア ・3 〜ソフトウェア・OS ・4 〜DB ...
    • Pinged by 1R@個人システム.Wiz
    • 2009年02月02日 12:40
  2. 1.

    応用情報技術者合格の道:3 〜ソフトウェア・OS

    ここもあまり変わんないな〜 ■OS 用語やね。 ・シェル:入力をOSに渡す ・カーネル:OSの核 ・デバイスドライバ:OSとハードウェアの橋渡し ・API:アプリからOSの機能を呼び出す為のプログラム  =システムコール=スーパーバイザコール(SVC) ...
    • Pinged by 1R@個人システム.Wiz
    • 2009年02月02日 11:20

▼応用情報技術者合格の道:2 〜ハードウェア へのコメント一覧

まだコメントはありません。最初のコメントを書いてみませんか?

★コメントする(このブログのコメントをRSSフィードで購読することができます)

応用情報技術者合格の道:2 〜ハードウェア にコメントする
絵文字
Twitter プロフィール
単なる一般人として生活する程度の能力/実名ではつぶやけない事を主につぶやきます。/※個人の感想です/中の人への連絡はDMで/マスト丼は「@kotaro_wiz@mastodon.jp」
月別
カテゴリ別
QRコード
QRコード
LINE読者登録QRコード
LINE読者登録QRコード
Amazonライブリンク
  • ライブドアブログ
Googleに追加

トップに戻る