ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
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と同様にストレージからのページインが可能となり、仮想メモリー空間へのアクセスが可能となる。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます