メモリ管理ユニット
主な機能としては、仮想アドレスを物理アドレスに変換する機能(すなわち仮想記憶管理)、メモリ保護機能、キャッシュ制御機能、バス調停機能、そして単純な8ビットシステムなどに見られるバンク切り替え機能などがある。なお、メモリ保護機能を持ち、仮想記憶機能を持たない物を特にメモリ保護ユニットと呼ぶことがある。これは、小さく信頼性の要求があり、かつリアルタイム性の要求されるプロセッサに伴って使われることがある。
System/370とその後継のアーキテクチャでは、アクセスビットとダーティビットをページテーブル以外に格納するという珍しい方式になっている。それらのビットは仮想アドレスではなく物理アドレスに対応付けられていて、特殊な命令でアクセスできる。これにより仮想化が容易になっている。また、通常ならOSがページテーブルにあるそれらのビットを物理メモリに対応した別のデータ構造にコピーするなどの処理が必要だが、System/370 の方式ではそれが不要となる。
PowerPCは数種類の互換性の無いMMUの設計をもったアーキテクチャが存在する。
PowerPC G1/G2/G3/G4 は、ページは通常 4 KiB である。TLBミスが起きると、標準の PowerPC MMU は2つの参照を同時に行う。1つは、データとコード毎に4個または8個ある Block Address Translation (BAT) レジスタが指すアドレス範囲かどうかの参照である。BATレジスタは最大 256 MiB の連続なメモリをマップするもので、OS がカーネル自身をマップするのに使われることが多い。BAT参照が成功すると、もう一方の参照は中止され、無視される。
もう1つの参照は、全プロセッサでサポートされているわけではないが、逆引きページテーブルを参照する。まず、仮想アドレスの上位4ビットで 16本あるセグメントレジスタを1つ選択する。セグメントレジスタにある24ビットの値を仮想アドレスの上位4ビットと置換して 52ビットのアドレスを生成する。セグメントレジスタを使うことで複数のプロセスが1つのハッシュテーブルを利用できるようになっている。52ビットのアドレスはハッシュされ、チップ外のテーブルのインデックスとして使用される。ここで、8個のページテーブルエントリが一致するかどうかチェックされる。ハッシュ衝突によって一致が見つからない場合、プロセッサはハッシュ関数を若干変えて再試行する。それでも一致を見つけられない場合、CPUは(MMUを無効化した上で)OSに例外(トラップ)を通知し、処理を依頼する。