hUMA
読み:ヒューマ
外語:hUMA: heterogeneous Uniform Memory Access

 AMD Fusion APUKaveriから採用された、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と同様にストレージからのページインが可能となり、仮想メモリー空間へのアクセスが可能となる。

再検索