⋯1번째 줄 근처
+추가: ## 개요
+추가: IOMMU(Input–Output Memory Management Unit, 입출력 메모리 관리 장치)는 DMA(Direct Memory Access) 기능을 갖춘 입출력 버스와 주기억장치를 연결하는 메모리 관리 장치(MMU)이다. CPU가 사용하는 MMU가 가상 주소를 물리 주소로 변환하는 것과 유사하게, IOMMU는 주변기기(장치)가 바라보는 가상 주소(장치 주소 또는 입출력 주소)를 물리 주소로 변환한다. 이를 통해 주변기기의 오동작이나 악의적인 동작으로부터 시스템 메모리를 보호하는 메모리 보호 기능도 제공한다.[1][2][3]
+추가: ## 역사
+추가: ### 개발 배경 및 초기 구현
+추가: 시스템에서 주변기기가 CPU 개입 없이 직접 메모리에 접근하는 DMA 기술이 보편화되면서, 장치가 물리 메모리 주소를 직접 사용하는 방식의 한계와 위험성이 대두되었다. 32비트 장치가 4 GiB 이상의 물리 메모리 주소 공간에 접근할 수 없는 문제, 물리적으로 연속된 메모리 버퍼를 확보해야 하는 부담, 장치의 버그나 악성 펌웨어가 임의의 메모리 영역을 훼손할 수 있는 보안 취약점 등이 주요 배경이 되었다. 이를 해결하기 위해 입출력 버스와 메모리 사이에 주소 변환 및 보호 계층을 두는 IOMMU 개념이 도입되었다.[2][3]
+추가:
+추가: ### 주요 벤더별 공개 및 규격
+추가: * **AMD**: 하이퍼트랜스포트(HyperTransport) 아키텍처에서 IOMMU 기술을 **AMD-Vi**라는 명칭으로 공개하였다.[2][3]
+추가: * **인텔**: 가상화 기술의 일환으로 **VT-d(Virtualization Technology for Directed I/O)**라는 명칭의 IOMMU 규격을 공개하였다.[2][3]
+추가: * **썬 마이크로시스템즈(Sun Microsystems)**: 솔라리스(Solaris) 개발자 문서를 통해 **DVMA(Device Virtual Memory Access)**라는 이름으로 자사의 IOMMU 구현을 설명하였다.[2][3]
+추가: * **IBM**: eServer pSeries 690 등의 시스템에서 **TCE(Translation Control Entry)**라는 개념으로 IOMMU 기능을 문서화하였다.[2][3]
+추가: * **PCI-SIG**: 업계 표준 단체로서 I/O 가상화(IOV) 및 **ATS(Address Translation Services)** 규격을 통해 IOMMU 관련 기능을 표준화하였으며, PCI Express 5.0부터는 이를 기본 사양에 통합하였다.[2][3]
+추가: * **ARM**: 자사의 가상화 아키텍처를 보완하는 형태로 **SMMU(System Memory Management Unit)**라는 명칭의 IOMMU 아키텍처를 정의하였다.[3]
+추가:
+추가: ### 아키텍처 변화 (x86 플랫폼)
+추가: 과거 x86 아키텍처에서 노스브리지(Northbridge)와 사우스브리지(Southbridge) 기능이 분리되어 있던 시절에는 I/O 가상화 기능이 CPU가 아닌 칩셋(노스브리지)에서 수행되었다. 이후 CPU에 메모리 컨트롤러와 PCIe 컨트롤러가 통합되고 플랫폼 컨트롤러 허브(PCH) 구조로 변화하면서 IOMMU 기능의 구현 위치와 방식도 함께 진화하였다.[3]
+추가:
+추가: 이 문서는 GGWiki AI가 공개 자료(아래 출처)를 조사해 새로 쓴 초안입니다. 틀린 내용은 편집하거나 이의 제기로 알려 주세요.