平成21年春期 午前問13

キャッシュメモリの話。

セットアソシアティブ方式
主記憶のあるブロックを,キャッシュメモリの複数の特定ブロックを対応付ける方式。

フルアソシアティブ方式
主記憶のブロックがキャッシュメモリ上のどのブロックにも関連つけられる方式。

ダイレクトマッピング方式
主記憶のアドレスからキャッシュメモリのアドレスが一意に定まる方式。

ライトスルー方式
ライトスルー方式は、キャッシュメモリと主記憶の同期をとるための書き込み方式。
キャッシュメモリと同時に主記憶にも書き込む。

ということで、答えは「セットアソシアティブ方式」。

平成21年春期 午前問12

パリティビットって何さ…orz
ということで、wiki確認。
読んでみても概念がイマイチ…要するにビットの話なんだな!くらいしか…。
そもそも、ビットの誤りって何なの。

奇数パリティ
データを構成するビット全体の中でビット「1」の数が奇数になるようにパリティビットを付加する方式。
1ビットの誤りを検出。

水平パリティ
データの水平方向を対象としてパリティビットを付加する方式。
1ビットの誤りを検出。

チェックサム
データの合計値を検査用に付加し、誤りが発生しているかを検査する方式。

ハミング符号
情報ビットに検査ビットを付加することで2ビットの誤りを検出し、1ビットの誤りを訂正できる手法。

4つの単語とハミング符号だけ2ビットの誤りを検出できるってことがポイント?

平成21年春期 午前問11

そもそもメモリインタリープって何さ。
ってことで、とりあえず詳細はwiki

要するに、メモリのデータ転送高速化技術の一つなんですね。
ポイントは「主記憶装置を複数のメモリバンクに分割」して「同時並行アクセスを可能」にし、「CPUの待ち時間を減らす」と言う辺りなのかな。

ということで、該当するのはエ。
他の選択肢の解説は以下。

「CPUと磁気ディスク装置との間に半導体メモリによるデータバッファを設けて,磁気ディスクアクセスの高速化を図る。」
→ディスクキャッシュ

「主記憶のデータの一部をキャッシュメモリにコピーすることによって,CPUと主記憶とのアクセス速度のギャップを埋め,メモリアクセスの高速化を図る。」
→キャッシュメモリ

「主記憶へのアクセスを高速化するため,アクセス要求,データの読み書き及び後処理が終わってから、次のメモリアクセスの処理に移る。」
→メモリの排他制御

平成21年春期 午前問10

内部割込み:
実行中のプログラムが原因で起こる割込み
外部割込み:
内部割込み以外の原因で起こる割込み

仮装記憶管理における存在しないページにアクセスしたときのページフォールト
 →実行中のプログラムがページにアクセスしているので内部割り込み。
システム管理命令を一般ユーザモードで実行したときの特権命令違反
 →システム管理命令を実行しているプログラムによる割り込みなので内部割り込み。
ハードウェア異常などによるマシンチェック
 →実行中のプログラムではない割り込みなので外部割り込み。
浮動小数点演算命令でのオーバフローなどの演算例外
 →演算中のプログラムが出している割り込みなので内部割り込み。

ということで、答えは「ハードウェア異常などによるマシンチェック」となる。

平成21年春期 午前問9

複数のデータに対して1個の命令で同一の操作を同時並列に行う方式とは何か、
ということで、Single Instruction Multiple Data = SIMD が答え。

ちなみに、方式には以下の4種がある。

SISD(Single Instruction Single Data)
単一の命令で単一のデータを処理する方式
SIMD(Single Instruction Multiple Data)
単一の命令で複数のデータを処理する方式。
MISD(Multiple Instruction Single Data)
複数の命令で単一のデータを処理する方式。(※理論上のみで実装例はない。)
MIMD(Multiple Instruction Multiple Data)
複数の命令で複数のデータを処理する方式。

平成21年春期 午前問8

ブロックを探すための平均比較回数と、
ブロック内で目的のデータを探すための平均比較回数の
2つの回数の合計値を取る。

ブロックを探すための平均比較回数は

(n÷m+1)÷2

ただし、mは十分に大きいのでnも十分に大きいものとなり、以下と近似値が成立する。

(n÷m)÷2

すなわちn/m2。
ブロック内で目的のデータを探すための平均比較回数は
mは十分に大きいので

m÷2

と近似値となる。
これらを合算して、「n/m2+m/2」が回答。

平成21年春期 午前問7

指定された値でプログラムをトレースするのみ。
コードを追いかけると、

comp(“11″,”101″)

からスタートして、一旦最後まで行って

comp(“1″,”01″)

となって、途中の

if len(A)≠0 and len(B)=0 then return -1;

で引っかかってreturnされる。
ので回答は-1。

平成21年春期 午前問6

aとbをそれぞれnだ割った際の余りが等しくなる時がぶつかる時なので。

a mod n = b mod n
a mod n – b mod n = 0
(a – b) mod n = 0

よって、(a – b)がnの倍数であればぶつかる。

平成21年春期 午前問5

以下の式を解け、ということになる。

f(n+1)+0.2×f(n)=2×f(n)

で、解いてみると以下。

f(n+1)+0.2×f(n)=2×f(n)
f(n+1)=2×f(n)-0.2×f(n)
f(n+1)=1.8×f(n)

故に1世代後は1.8倍が正解。

平成21年春期 午前問4

初項1、公差1、項数nの等差数列の和を求めよって話になるので

n(n+1)/2

となる。
で、空文字列の場合があるので+1。

等差数列についてはwiki貼っとく。

平成21年春期 午前問3

有限オートマトンってなんぞ、の時点で躓きそうになるけど、
要するに矢印にそって行ったり来たりしてみればOK。
S3に辿り着けるのは1101だけ。

有限オートマトンの解説は、とりあえずwikiで。