SIGMA-SE Tech Blog

SIGMA-SE Tech Blog

応用情報技術 - 基礎覚書き:メモリ・バス

目的

この記事は、応用情報技術者試験の出題分野であるメモリバスに関する覚書きを列挙する。

メモリ

記憶装置とは、情報を記憶する装置で主記憶装置補助記憶装置に分類され、主記憶装置は、以下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 などがある。

参考文献

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


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