US 7,543,131 B2
Controlling an I/O MMU
Mark D. Hummel, Franklin, Mass. (US); Andrew W. Lueck, Austin, Tex. (US); Geoffrey S. Strongin, Austin, Tex. (US); Mitchell Alsup, Austin, Tex. (US); and Michael J. Haertel, Sunnyvale, Calif. (US)
Assigned to Advanced Micro Devices, Inc., Sunnyvale, Calif. (US)
Filed on Aug. 11, 2006, as Appl. No. 11/503,390.
Claims priority of provisional application 60/759826, filed on Jan. 17, 2006.
Claims priority of provisional application 60/707629, filed on Aug. 12, 2005.
Prior Publication US 2007/0038839 A1, Feb. 15, 2007
Int. Cl. G06F 12/08 (2006.01)
U.S. Cl. 711—202  [711/154; 711/203; 711/205; 711/206; 711/207; 710/5; 710/36; 710/39] 32 Claims
OG exemplary drawing
 
17. A computer system comprising:
a processor;
a memory management module comprising a plurality of instructions executable on the processor;
an input/output memory management unit (IOMMU) configured to implement address translation and memory protection for memory operations sourced by one or more input/output (I/O) devices; and
a memory subsystem comprising a memory controller and a memory coupled to the memory controller;
wherein the memory stores a command queue during use, and wherein the memory management module is configured to write one or more control commands to the command queue, and wherein the IOMMU is configured to read the control commands from the command queue and execute the control commands, and wherein the control commands comprise invalidate commands defined to invalidate cached translation data in the IOMMU, wherein the cached translation data is used by the IOMMU to perform the address translation and memory protection for memory requests sourced by the I/O devices.