今回は、「メモリのデータ転送速度」を求める計算問題を解いていきます。
問題:平成31年春期 問10
バス幅が16ビット,メモリサイクルタイムが80ナノ秒で連続して動作できるメモリがある。このメモリのデータ転送速度は何Mバイト/秒か。ここで,Mは10の6乗を表す。
ア:12.5
イ:25
ウ:160
エ:200
解説・解法のステップ
データ転送速度(1秒間にどれだけのデータを送れるか)を導き出すために、
要素を一つずつ分解して考えます。
ステップ①:1秒間に何回データ転送できるか?
まず、1秒間に何回アクセスできるかを計算します。
ナノ($n$)は $10^{-9}$(10億分の1)なので、
$1 \text{秒} = 10^{9} \text{ナノ秒}$(10億ナノ秒) となります。
この「1秒」を「1回分の時間(80ns)」で割ることで、1秒間の処理回数が導き出せます。
$1,000,000,000 \div 80 = 12,500,000$(回/秒)
ステップ②:1回の転送で何バイト送れるか?
問題文の「バス幅が16ビット」というのは、1回に送れるデータの量です。
最終的に求めたい単位が「Mバイト」なので、ここでビットをバイトに変換しておきます。
1バイト = 8ビットなので、
16 ビット ÷ 8 = 2 バイト
ステップ③:1秒間の合計転送量を計算する
「1秒間の転送回数」と「1回あたりの転送量」が出揃ったので、掛け合わせます。
12,500,000 回 × 2 バイト = 25,000,000 バイト/秒
ステップ④:単位を「M(メガ)」に直す
問題文の条件に「Mは10の6乗(1,000,000)を表す」とあります。
先ほど計算した値を1,000,000で割って単位を合わせます。
25,000,000 バイト ÷ 1,000,000 = 25 Mバイト/秒
したがって、正解は 「イ:25」 となります。
🍌NanoBanana君による解説漫画