共有グラフィックスメモリとは、グラフィックスチップに専用メモリがなく、代わりにCPUや他のコンポーネントとメインシステムRAMを共有するシステム設計のことである。[ 1 ]
この設計は、ボード上に追加のメモリチップが不要なため、コストと複雑さを軽減するために多くのグラフィック カードで使用されています。BIOSまたはジャンパー設定を介して、グラフィックスに使用するシステム メモリの量を選択するメカニズムがあります。グラフィックス システムは、必要なだけの RAM だけを使用するように調整でき、残りは自由に使用できます。この副作用として、一部の RAM がグラフィックスに割り当てられると、他の用途には使用できなくなります。たとえば、512 MiB のRAM を搭載したコンピュータに 64 MiB のグラフィックス RAMが設定されている場合、オペレーティングシステムとユーザーには、インストールされている RAM が 448 MiB しかないように見えます。
この設計の欠点は、システムRAMが専用グラフィックRAMよりも動作速度が遅いため、パフォーマンスが低下することです。メモリバスを共有すると競合が増加します。また、残りのRAM容量で動作するように設計されていない場合、システムの他の部分でパフォーマンスの問題が発生する可能性もあります。
同様のアプローチで同様の結果が得られたのが、一部のSGiコンピュータ、特にO2/O2+で使用されている。これらのマシンのメモリは、 システムとグラフィックスで共有される高速な1つのプール(1996年当時で毎秒2.1GB)である。メモリは、メインシステムとグラフィックスサブシステム間のポインタリダイレクト通信を含め、オンデマンドで割り当てられる。これは統合メモリアーキテクチャ(UMA)と呼ばれている。
初期のパーソナルコンピュータのほとんどは、共有メモリ設計を採用していました。このような設計では、単一のDRAMバンクをディスプレイとプログラムの両方に使用できるため、コストを削減できました。その例としては、 Apple II、Commodore 64、Radio Shack Color Computer、Atari ST、Apple Macintoshなどが挙げられます。
注目すべき例外はIBM PCだった。グラフィック表示は、ISAスロットを占有する独自のメモリを搭載した拡張カードを使用することで実現された。
SMAを採用した最初のIBM PCはIBM PCjrでした。ビデオメモリは最初の128KiB のRAMと共有されていました。ビデオメモリはソフトウェアによって再構成可能でした。
初期のハイブリッド型システムとしては、共有メモリシステムとして動作するコモドール・アミーガが挙げられる。これは、利用可能な場合は共有されていない「高速RAM」に実行コードを優先的にロードする仕組みだった。
その後、DirectX 6.1では共有グラフィックスメモリのソフトウェアサポートが導入されました。共有グラフィックスメモリをさらにサポートするハードウェアとしては、Intel DVMTやNVIDIA TurboCacheなどがありました。