令和元年度春期 応用情報技術者試験 午前 問9

分野:コンピュータ構成要素|実際に出題されたIPA過去問題

同一メモリ上で転送するとき,転送元の開始アドレス,転送先の開始アドレス,方向フラグ及び転送語数をパラメタとして指定することによってブロック転送ができるCPUがある。図のようにアドレス1001から1004の内容をアドレス1003から1006に転送するとき,パラメタとして適切なものはどれか。ここで,転送は開始アドレスから1語ずつ行われ,方向フラグに0を指定するとアドレスの昇順に,1を指定するとアドレスの降順に転送を行うものとする。

問題の図表(IPA公式問題冊子より引用)
図表:IPA公式問題冊子より
  1.  転送元の開始アドレス1001,転送先の開始アドレス1003,方向フラグ0,転送語数4
  2.  転送元の開始アドレス1001,転送先の開始アドレス1003,方向フラグ1,転送語数4
  3.  転送元の開始アドレス1004,転送先の開始アドレス1006,方向フラグ0,転送語数4
  4.  転送元の開始アドレス1004,転送先の開始アドレス1006,方向フラグ1,転送語数4
解答・解説を見る

正解:エ

AI解説

転送元(1001〜1004)と転送先(1003〜1006)の領域が1003〜1004で重なっている。先頭から昇順に転送すると、1001→1003の転送で元データの1003がコピー前に上書きされ壊れてしまう。重なりがある場合は末尾から降順に転送(1004→1006、1003→1005、1002→1004、1001→1003)すれば上書き前に読み出せる。よって開始アドレスを転送元1004・転送先1006とし、方向フラグ1(降順)、転送語数4のエが正しい。 ア: 昇順転送では1001の内容を1003へ書いた時点で未転送の元データ1003が破壊され、1003→1005の転送が誤ったデータになる。 イ: 開始アドレス1001から降順に転送すると1000以下の領域を転送してしまい、対象の1001〜1004を正しく転送できない。 ウ: 開始アドレス1004・1006から昇順に転送すると1004〜1007を転送することになり対象領域が誤りである。 エ: 正しい。末尾(1004→1006)から降順に4語転送すれば、重なり領域を上書きする前に読み出せて正しく転送できる。 💡 領域が重なるブロック転送は「転送先が後方(アドレスが大きい)なら末尾から降順、前方なら先頭から昇順」が原則。実際に1語ずつ書き出してトレースすれば確実に判断できる。

出典:令和元年度 春期 応用情報技術者試験 午前 問9 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。
📱 演習アプリで解く(無料・登録不要・2,640問収録)

「コンピュータ構成要素」分野の攻略ポイント

プロセッサ・メモリ・キャッシュ・入出力・IoTデバイスが対象です。実効アクセス時間やCPI(命令あたりクロック数)の計算は毎年の定番で、公式さえ覚えれば短時間で確実に1問確保できます。

コンピュータ構成要素の攻略ポイントをすべて見る(要点6項目・ひっかけ3項目)→

同じ分野(コンピュータ構成要素)の過去問