SLnavkのブログ

組み込みソフト開発をしています

メモリアクセス速度

令和6年秋期 問10

問題

WAIT が入らないときには4クロックでメモリアクセスする MPUがある。メモリアクセスが最も速い組合せはどれか。

クロック周波数 WAIT サイクル
8 MHz 0クロック
10 MHz 1クロック
12.5 MHz 2クロック
16 MHz 3クロック

出典: 令和6年秋期 午前Ⅱ 問10

爆速解法

アクセス時間が最小のものを選べば良い。値の大小を比較するだけであれば、各選択肢で固定の部分は無視して変動する部分だけを比較する。
ア. 4/8
イ. 5/10
ウ. 6/12.5
エ. 7/16
アとイは0.5とわかる。ウとエは分母の値が分子の2倍以上であるためアとイより値が小さい。
ウとエで値が小さい方を選ぶ際、逆数を計算し値が大きい方を選ぶと暗算しやすい。

\frac{12.5}{6} \sim 2.0... \lt  \frac{16}{7} \sim 2.2...
こうすることで二桁まで計算で値の比較ができる。答えエ.

じっくり解説

各設問の1クロックあたりの所要時間を計算し、メモリアクセスに必要なクロック数と積を取ることでメモリアクセス時間が求められる。これが最小のものを選ぶ。
1クロックあたりの所要時間は周波数の逆数から求められる。
メモリアクセスに必要なクロック数は4+WAITである。

ア. の場合

1/8 \, \mathrm{MHz} \times (4 + 0) = 1/8 \, \mathrm{μs} \times 4 = 0.5 \, \mathrm{μs}

イ. の場合

1/10 \, \mathrm{MHz} \times (4 + 1) = 1/10 \, \mathrm{μs} \times 5 = 0.5 \, \mathrm{μs}

ウ. の場合

1/12.5 \, \mathrm{MHz} \times (4 + 2) = 1/12.5 \, \mathrm{μs} \times 6 = 0.48 \, \mathrm{μs}

エ. の場合

1/16 \, \mathrm{MHz} \times (4 + 3) = 1/16 \, \mathrm{μs} \times 7 = 0.4375 \, \mathrm{μs}

よって答えエ.

稼働率の関係

令和6年秋期 問5

問題

あるシステムにおいて、MTBFMTTRがともに1.5倍になったとき、アベイラビリティ稼働率)は何倍になるか。

ア. 2/3
イ. 1.5
ウ. 2.25
エ. 変わらない
出典: 令和6年秋期 午前Ⅱ 問5

爆速解法

MTTRMTBFが等倍で増える場合、稼働率は変わらないため、答えはエ.

じっくり解説

稼働率は以下で表される。

\frac{MTBF}{MTTR+MTBF}
各項目が全て1.5倍になるので、分母分子を約分すれば値は変わらない。

Mean Time Between Failure, 平均故障間隔
Mean Time To Repair, 平均修復時間

キャッシュシステムのヒット率

令和6年秋期 問3

問題

L1とL2の2段のキャッシュをもつプロセッサにおいて、あるプログラムを実行したとき、L1 キャッシュのヒット率が0.95,L2キャッシュのヒット率が0.6であった。 このキャッシュシステムのヒット率は幾らか。ここでL1キャッシュにあるデータは全てL2キャッシュにもあるものとする。

ア. 0.57
イ. 0.6
ウ. 0.95
エ. 0.98
出典: 令和6年秋期 午前Ⅱ 問3

爆速解法

システム全体のヒット率はL1のヒット率(0.95)より大きい。これを満たす選択肢はエのみ。

じっくり解説

L1とL2を合わせたキャッシュシステムのヒット率を考える。本問で考えるのは、L1にあるデータは全てL2に存在する、いわゆるライトスルー方式のシステムである。
挙動としてはまずL1でデータを探し、L1にない場合L2を探す。この時のヒット率は
L1のヒット率 + ( 1 - L1のヒット率 ) * L2のヒット率
で表される。これに数値を当てはめて計算すれば

0.95 + 0.05 \times 0.6 = 0.98
よって答えはエ.

稼働率の比較

問題

ノードN_1とノードN_2の間をノードNを介して通信路で結んだデータ伝送網がある。N_1N_2の間の構成についてA~Cの三つの案を考えた。ノードは故障しないものとし,各ノード間の通信路が故障する確率は,全て等しくF(0<F<1)とする。三つの案を,稼働率が高い順に並べたものはどれか。

ア. B案 > A案 > C案
イ. B案 > C案 > A案
ウ. C案 > A案 > B案
エ. C案 > B案 > A案

出典: 平成22年秋期 午前Ⅱ 問23

爆速解法

通信路のうちどこが壊れたら通信できなくなるのかに着目する。
1つの通信路が壊れた時、全ての案で不通にならない。
2つの通信路が壊れた時、A案は必ず不通となる。B案、C案では壊れる通信路の組み合わせによっては不通とならない。よってA案が一番稼働率が低い。この時点でイかエに絞れる。
次にB案とC案のどちらが稼働率が高いか考える。C案はB案のN-N間の通信路が必ず故障しない場合と同等と見做せる。そのため、C案の稼働率が高いと判断できる。よって答えはエ。

じっくり解説

確率を真面目に計算しようとすると時間がかかる。各案の差異に着目し稼働率を比較するのが速いだろう。

並列処理で得られる高速化率

問題

マルチプロセッサによる並列処理で得られる高速化率(単一プロセッサのときと比べた倍率)Eを,次の式によって評価する。r=0.9のアプリケーションの高速化率がr=0.3のものの3倍となるのは,プロセッサが何台のときか。 
E = \frac{1}{1-r+\frac{r}{n}}
ここで,  n:プロセッサの台数(1≦n)  r:対象とする処理のうち,並列化が可能な部分の割合(0≦r≦1) とし,並列化に伴うオーバーヘッドは考慮しないものとする。

ア. 3
イ. 4
ウ. 5
エ. 8

出典: 平成24年秋期 午前Ⅱ 問23

爆速解法

問題文より以下の関係式が成り立つ。 
E(r=0.9) = 3E(r=0.3)
nについて解く。


\begin{aligned}

\frac{1}{0.1 + \frac{0.9}{n}} &= 3 \frac{1}{0.7 + \frac{0.3}{n}} \\
0.7 + \frac{0.3}{n} &= 3  (0.1 + \frac{0.9}{n} ) \\
0.7n + 0.3 &= 0.3n + 2.7 \\
0.4n &= 2.4 \\

\end{aligned}

n=6で答えはエ。

じっくり解説

この問題は方程式を考えて解く方が良いだろう。暗算で効率よく答えを出す解法は思い浮かばない。
本問に出てくるアムダールの法則は度々出題されている。
参照

マルチプロセッサの性能上限 - SLnavkのブログ

アムダールの法則 - SLnavkのブログ

電文の伝送時間

問題

100Mビット/秒のLANを使用し,1件のレコード長が1,000バイトの電文を1,000件連続して伝送するとき,伝送時間は何秒か。ここで,LANの伝送効率は50%とする。

ア. 0.02
イ. 0.08
ウ. 0.16
エ. 1.6

出典: 平成21年秋期 午前Ⅱ 問1

爆速解法


\frac{1 \times 8 \, \rm{Mbit}}{100 \, \rm{Mbps}} \times 2  = 0.16\,\rm{s}
よってウ。

じっくり解説

1000がたくさん出てくるが、Mでまとめることで計算が簡単になる。伝送効率50%の場合、100%に比べて時間は倍かかるから全体に2かければ良い。

ビデオメモリ容量の計算

問題

表示解像度が1000×800ドットで,色数が65,536色(216色)を表示するのに最低限必要なビデオメモリ容量は何Mバイトか。ここで,1Mバイト=1,000kバイト,1kバイト=1,000バイトとする。

ア. 1.6
イ. 3.2
ウ. 6.4
エ. 12.8

出典: 平成22年秋期 午前Ⅱ 問22

爆速解法


\frac{800 \times 16}{8} \, \rm{kByte}
よって、1.6 MByteのアが答え。

じっくり解説

色は各ドットに対して設定するため、ドット数と色を表現するために利用するbit数の積がデータサイズとなる。また単位をバイトにするため、8で割る必要がある。
ドット数の中に1000があるため、計算を楽にするためにkを分離しておく。そうすることで、1600kByte=1.6MByteと簡単に計算できる。