hUMA
読み:ヒューマ
外語:hUMA: heterogeneous Uniform Memory Access
AMD Fusion APUのKaveriから採用された、CPUとGPUで同じメモリー空間を共有する技術。
概要
CPUとGPUが、完全に一貫性を維持した状態で、同じメモリーアドレス空間を共存する技術である。
これにより、CPUコアとGPUコアが、互いに同じアドレス空間に自由にアクセスすることができる。
この技術の利点としては、GPUコアから、ページフォールトが扱えるようになり、CPUコアと同様にメモリー空間の全域へのアクセスが可能となることが挙げられる。
特徴
由来
hUMAは、3世代目のAPUであるKaveriの特徴となる技術である。
1世代目のAPUであるLlanoは、CPUコアとGPUコアを同じダイに統合し、同じ物理メモリーアドレス空間を共有できるようにした。但し、物理的なメモリーは単一ながら、CPUコアとGPUコアとで各々分離したメモリー空間を用いており(NUMAという)相互のアクセスが限定されていたため、データを共有する場合はメモリー間でのコピーが必要であった。
2世代目のAPUであるTrinityは、IOMMU v2(I/O Memory Management Unit v2)とし、仮想メモリーを使用した場合のページフォールトをハードウェアでハンドリング可能とした。しかし、メモリーアドレス空間は分断したままである。
3世代目のAPUであるKaveriは、遂に同じメモリーアドレス空間を共有可能とした。
一貫性
hUMAでは、CPUコアとGPUコアとの間での、メモリーの一貫性をハードウェアで取る。
こうすることで、メモリーアクセスについてはCPUコアとGPUコアは同格となり、GPUコアはあたかもCPUコアであるかのようにメモリーにアクセスすることができる。
シームレス化
hUMAでは、CPUとGPUが同じメモリー空間を共有し、それぞれのコアが用いるメモリーは、動的に割り当てられるようになる。
CPUとGPUの各メモリー管理ユニット(MMU)が連携することで、同じメモリー空間にアクセスできるようにアドレス変換を行なうことができる。また、GPUのMMUでもページフォールトに対応できるため、GPUからも仮想メモリー空間全体にアクセスできる。
もしGPUがページフォールトに対応していない場合、GPUが使うメモリーのページはロックされていないとならない。さもないと、物理メモリーにマップされていないページにアクセスしようとした時点でエラーとなってしまう。
hUMAではページフォールトがGPU側MMUでも対応するため、使用するページが物理メモリーに存在しなくても、CPUと同様にストレージからのページインが可能となり、仮想メモリー空間へのアクセスが可能となる。
再検索