SIGMA-SE Tech Blog

SIGMA-SE Tech Blog


当サイトは、過去に運営していた別ドメイン(unisia-se.com)から sigma-se.com へ移行した技術ブログです。
旧サイトの記事をもとに、内容の精査・加筆・最新化を行い再構成しています。
正確で実用的な情報提供を目的としています。

応用情報技術 - 基礎:9/21 メモリとバス(キャッシュ・記憶管理・データ転送)

概要

情報技術の基礎として理解しておきたいメモリバスについて、主記憶、キャッシュメモリ、データ格納方式、更新方式、ヒット率、記憶領域管理、バスを整理する。

メモリは、プロセッサが扱うデータや命令を一時的に保持する場所となる。
キャッシュやバスの仕組みを理解すると、コンピュータ全体の性能がどこで決まりやすいかを把握しやすくなる。

この記事で扱うこと

  • 主記憶装置、補助記憶装置、キャッシュメモリの違い。
  • ライトスルー方式とライトバック方式の違い。
  • キャッシュヒット率と実効アクセス時間の考え方。
  • 固定区画方式、可変区画方式、ページング方式の概要。
  • バスの役割と種類。

理解しておきたい要点

分野 整理する内容
メモリ階層 レジスタ、キャッシュ、主記憶、補助記憶の速度と容量。
キャッシュ ヒット率や実効アクセス時間の計算。
更新方式 ライトスルーとライトバックの特徴。
記憶管理 ページング、セグメンテーション、フラグメンテーション。
バス アドレスバス、データバス、制御バスの役割。

メモリ

記憶装置とは、情報を記憶する装置で主記憶装置補助記憶装置に分類され、主記憶装置は、以下RAMROMに分類される。

  • RAM(Random Access Memory)
    一般的にRAMのことをメモリと呼ぶ。

    RAMは、読み書きが自由で電源供給がなくなると書き込まれた情報が消えるため、電源状態に関わらず保存すべき情報は、補助記憶装置に退避させ、必要に応じてRAM(メモリ)へ呼び出す。

    また、RAMには、次の2種類がある。

    • DRAM(Dynamic RAM)
      一定時間でデータが消滅する。
      動的なデータを扱うことが目的でメモリとして用いられる。

      主な特徴として、低速高消費電力安価大容量である。

      また、現在のDRAMのほとんどがシステムのバスと同期して動作するSDRAM(Synchronous DRAM)となり、DDR1DDR4の規格がある。

    • SRAM(Static RAM)
      電源を切るまでデータを保持する。
      静的なデータを扱うことが目的で下記で触れるキャッシュメモリとして用いられる。

      主な特徴として、高速低消費電力高価小容量である。

  • ROM(Read Only Memory)
    ROMは、基本的に読み取り専用だが種類によっては、全消去書き込み追記が可能なものもある。

    また、ROMには、書き換えが不可能マスクROM書き込みが可能PROM(Programmable ROM)があり、PROMは、フラッシュメモリ相変化メモリなど、データを保持する機器として利用されている。

キャッシュメモリ

キャッシュメモリとは、プロセッサとメモリの性能差を埋めるために両者の仲立ちをするメモリを指し、高速である必要があるため、上記SRAM(Static RAM)が用いられる。
※ 一般的なキャッシュメモリのほとんどがCPUのチップ内に内蔵されている。

キャッシュメモリは、アドレス管理を効率化し、より高速化するため、以下データの格納方式(*1)や更新方式(*2)に様々なアーキテクチャを採用している。

また、その効果は、ヒット数(*3)によって変化する。

データの格納方式

キャッシュメモリでデータ管理する際は、ブロックと呼ばれる一定長の単位で管理する。
このとき、メモリのデータがキャッシュメモリのどこにあるか把握する仕組みが必要でこの管理方法には、次の方式がある。

  • ダイレクトマップ方式
    メモリのアドレス単位でキャッシュメモリの格納場所を一意に決める方式。

    そのため、検索時にメモリのアドレスからキャッシュメモリの場所を特定しやすいが、その分データの衝突も起こりやすくなる。

  • フルアソシアティブ方式
    キャッシュメモリの格納場所をキャッシュメモリの空きブロックから順に割り振る方式。

    そのため、検索時に全ブロックを検索しなればならないが、キャッシュメモリの空きを無駄なく使うためデータの衝突は、起こりにくい。

  • セットアソシアティブ方式
    フルアソシアティブ方式で検索毎のブロック検索対象を減らすため、あらかじめキャッシュメモリを複数グループに分け、その中で空きブロックに割り振る方式。

    また、フルアソシアティブ方式セットアソシアティブ方式では、連想メモリ(CAM:Content Addressable Memory)を用いて高速化している。

データの更新方式

プロセッサからキャッシュメモリを更新した後、その内容をメモリへ反映させる更新方式として、次の2種類がある。

  • ライトスルー方式
    プロセッサからキャッシュメモリを更新した後、同時にメモリへ反映する方式。

    常にコヒーレンシ(データの一貫性)が保たれるがメモリにアクセスする回数が増えるため、スループットは悪くなる。

  • ライトバック方式
    プロセッサからキャッシュメモリを更新した後、空き時間を利用してメモリへ反映する方式。

    コヒーレンシが保たれないケースがあるが、メモリにアクセスする回数が減るため、スループットは良くなる。

ヒット率

ヒット率とは、キャッシュメモリを介してCPUからメモリへデータを操作する場合に対象のデータがキャッシュメモリ上にある確率のこと。

  • 実効アクセス時間
    ヒット率を基に平均的なアクセス時間を表したもので、次の演算で実効アクセス時間を算出できる。

    実効アクセス時間 \(=\) キャッシュメモリへのアクセス時間 \(\times\) ヒット率 \(+\) メモリへのアクセス時間 \(\times (1 -\) ヒット率 \()\)

メモリインタリープ

メモリインタリープとは、CPUメモリのデータ転送を高速化する技術で、データを複数のメモリバンクへ順番に分割配置し、データ読み出し時に複数のメモリバンクへ並列的にアクセスすることで効率化する技術のこと。

記憶領域の管理方式

メモリやキャッシュメモリなど記憶領域に割り当てる際の管理アルゴリズムとして次の2種類がある。

  • ファーストフィット方式
    空き領域をアドレス下位から順に検索し、最初に見つかった空き領域を割り当てる方法。最小の領域を割り当てる方法。

  • ベストフィット方式
    空き領域の中から要求された領域の大きさを満たす最小の領域を割り当てる方法。

バス

バスとは、データをやり取りするための伝送路のことで、次の種類がある。

  • シリアルバス
    \(1\) ビットずつ順番にデータを転送する直列の伝送路のこと。

  • パラレルバス
    複数ビットをひとかたまりにして複数本の通信路でデータを転送する並列の伝送路のこと。

    また、パラレルバスは、高速化するほど、信号間のタイミングを取ることが難しくなるため、次で触れるUSBを筆頭にシリアルバスでの高速化が主流となっている。

以下、代表的なバス。

  • USB(Universal Serial Bus)
    周辺機器を接続するためのシリアルバス規格の一つで、マウスやキーボード等、様々な周辺機器が接続できる。

    また、USBケーブルから電力を供給して周辺機器自体を動作させるバスパワーが使用できる。

  • USBの規格
    USBの規格は、末尾に付く数字が大きい程、転送速度が速くなる。

    以下、規格別の最大データ転送速度。

    • USB \(1.1\)
      → 最大12Mbps(フルスピードモード)
    • USB \(2.0\)
      → 最大480Mbps(ハイスピードモード、半二重通信)
    • USB \(3.0\)
      → 最大5Gbps(スーパースピードモード、全二重通信)
    • USB \(3.1\)
      → 最大10Gbps(スーパースピードプラスモード)
  • IEEE 1394 AV機器等を接続するためのシリアルバス規格の一つで、アップルが提唱したFireWireを標準化したもの。

    PCポートからDVDドライブに接続し、DVDドライブポートからハードディスクに接続するといった前の機器次の機器を数珠繋ぎに連結していくデイジーチェーン方式を採用している。

  • ATA(Advanced Technology Attachment) コンピュータとハードディスク間のインターフェース規格パラレルバス規格の一つでパラレルATAとも呼ばれる。

  • シリアルATA パラレルATAをシリアルバスにして高速化したインターフェース規格でハードディスク、SSD、光学ドライブなどの接続規格となっている。

  • Bluetooth ディジタル機器用の近距離無線通信規格の一つで2.4GHz帯を利用し、マウスやキーボードなどの周辺機器を接続できる。

    また、Bluetoothのバージョン 4.0で、BLE(Bluetooth Low Energy)という規格で大幅に省電力化された。

  • ZigBee センサーネットワークで用いられる低電力低速の規格で、ワイヤレスセンサーネットワーク構築に適した無線通信規格。

  • DisplayPort モニターディスプレイなどの出力装置のために設計された比較的新しい映像出力インターフェースの規格。
    ※ 同種の規格として HDMI、DVI、VGA などがある。

違いを整理する

比較する項目 整理するポイント
主記憶と補助記憶 主記憶はCPUが直接扱う作業領域、補助記憶は長期保存用。
ライトスルーとライトバック 更新時に主記憶へすぐ書くか、後でまとめて書くかの違い。
ヒット率とミス率 ヒット率が高いほど平均アクセス時間は短くなる。
ページングとセグメンテーション 固定長ページか、意味単位の可変長領域かで異なる。
内部バスと外部バス CPU内部か装置間接続かで見分ける。

実務とのつながり

  • キャッシュ
    プログラムの性能やCPU待ち時間の理解に役立つ。

  • 記憶管理
    OSのメモリ不足、スワップ、仮想記憶の理解につながる。

  • バス
    ハードウェア構成やI/O性能の見積もりで重要になる。

まとめ

  • メモリは速度と容量の違いから階層構造で整理できる。
  • キャッシュはヒット率が性能に大きく影響する。
  • バスはCPU、メモリ、入出力装置の間でデータをやり取りする通路となる。

参考文献

  • 瀬戸 美月(\(2020\))『徹底攻略 応用情報技術者教科書』株式会社インプレス


Copyright SIGMA-SE All Rights Reserved.
s-hama@sigma-se.jp