15Mバイトのプログラムを圧縮した状態でフラッシュメモリに格納している。
プログラムの圧縮率が40%,フラッシュメモリから主記憶への転送速度が20Mバイト/秒であり,1Mバイトに圧縮されたデータの展開に主記憶上で0.03秒が掛かるとき,このプログラムが主記憶に展開されるまでの時間は何秒か。
ここで,フラッシュメモリから主記憶への転送と圧縮データの展開は同時には行われないものとする。
正答1
解説
正解は1です。
圧縮後のデータ量を求め、転送時間と展開時間をそれぞれ計算して足し合わせます。
問題文に「転送と展開は同時には行われない」とあるので、2つの時間は単純に合計します。
圧縮率40%は、圧縮後のサイズが元の40%になるという意味です。
【計算】
圧縮後のサイズ=15Mバイト×0.4=6Mバイト
転送時間=6Mバイト÷20Mバイト/秒=0.3秒
展開時間=6Mバイト×0.03秒/Mバイト=0.18秒
合計時間=0.3秒+0.18秒=0.48秒
【選択肢別解説】
1:○ 転送0.3秒と展開0.18秒を合計すると0.48秒になります。
2:× 0.75秒は、圧縮していない15Mバイトを20Mバイト/秒で転送した時間です。
圧縮後の6Mバイトで計算する必要があり、展開時間も含まれていません。
3:× 0.93秒は、圧縮前の15Mバイトを転送した0.75秒に、展開時間0.18秒を足した値です。
フラッシュメモリには圧縮した状態で格納されているので、転送するのは6Mバイトで、転送時間は0.3秒です。
4:× 1.20秒は、15Mバイト転送の0.75秒と15Mバイト分の展開0.45秒を足した値です。
圧縮後のサイズ6Mバイトを基準にしていないので誤りです。
【ポイント】
「1Mバイトに圧縮されたデータ」とあるので、展開時間は圧縮後のサイズを基準に計算します。
転送も展開も、扱うのは圧縮後の6Mバイトである点に注意しましょう。