저장 및 I/O 시스템
저장 및 I/O 시스템은 프로세서와 메모리를 외부 세계 및 영구 데이터에 연결하며, 버스 및 인터커넥트, 디스크 및 플래시 저장 장치, 신뢰성을 위한 이중화, 그리고 장치와 메모리 간에 데이터를 효율적으로 이동시키는 메커니즘을 포함합니다.
Definition
저장 및 I/O 시스템은 컴퓨터가 주변 장치와 데이터를 주고받고 영구적으로 저장하는 하드웨어 및 아키텍처 메커니즘으로, 여기에는 관련 인터커넥트, 컨트롤러, 저장 매체, 신뢰성 및 가상화 기술이 포함됩니다.
Scope
이 영역은 컴퓨터가 주변 장치와 통신하고 데이터를 영구적으로 저장하는 방법을 다룹니다: I/O 아키텍처 및 버스, 인터럽트 및 DMA 기반 전송, 보조 저장 장치(자기 디스크 및 솔리드 스테이트 드라이브), RAID와 같은 이중화를 통한 저장 신뢰성, 그리고 I/O 가상화. 이는 입출력 및 영속성의 하드웨어 및 아키텍처 메커니즘을 다룹니다. 파일 시스템 소프트웨어 추상화(운영 체제)와 온칩 캐시 및 주 메모리(메모리 계층 및 캐시)는 제외되지만, 이들과 밀접하게 연관되어 작동합니다.
Sub-topics
Core questions
- 버스 및 인터커넥트를 통해 장치가 프로세서 및 메모리에 어떻게 연결됩니까?
- 바쁜 폴링(busy polling) 대신 인터럽트 및 직접 메모리 접근을 사용하여 데이터가 어떻게 효율적으로 전송됩니까?
- 자기 및 솔리드 스테이트 저장 장치의 성능 및 신뢰성 특성은 무엇입니까?
- RAID와 같은 이중화는 신뢰성 및 성능을 위해 용량을 어떻게 절충합니까?
- 가상 머신 및 프로세스 간에 I/O가 어떻게 가상화되고 안전하게 공유됩니까?
Key concepts
- I/O 버스 및 인터커넥트
- 인터럽트 기반 I/O
- 직접 메모리 접근(DMA)
- 자기 디스크 및 SSD
- 장치 컨트롤러
- RAID 및 이중화
- 저장 신뢰성 및 MTTF
- I/O 가상화
- 처리량 및 지연 시간
- 메모리 맵 I/O
Key theories
- 저가형 디스크의 이중 배열(RAID)
- 많은 상용 디스크를 데이터 스트라이핑 및 패리티 또는 미러링과 결합하면 단일 디스크보다 더 크고 빠르며 신뢰성 있는 저장 장치를 얻을 수 있습니다. RAID 레벨은 용량, 성능 및 내결함성 간의 절충점을 공식화합니다.
- 분리된 I/O 전송
- 직접 메모리 접근 및 인터럽트 기반 I/O는 장치가 프로세서의 지속적인 개입 없이 메모리와 데이터를 주고받을 수 있도록 하여, I/O와 계산을 중첩시키고 전반적인 시스템 처리량을 향상시킵니다.
Mechanisms
주변 장치는 버스 및 컨트롤러를 통해 시스템에 연결되며 인터럽트를 통해 프로세서에 신호를 보냅니다. 대량 데이터는 직접 메모리 접근(DMA)을 통해 이동하며, 이는 장치와 메모리 간에 블록을 전송할 때 프로세서가 단어 단위로 개입하지 않습니다. 보조 저장 장치는 자기 디스크 또는 플래시에 데이터를 영구적으로 저장하며, 장치 배열은 스트라이핑, 미러링 및 패리티(RAID)를 사용하여 성능을 향상시키고 오류를 허용합니다. 가상화 계층은 이러한 장치들을 게스트들 간에 다중화합니다.
Clinical relevance
저장 및 I/O는 종종 종단 간 시스템 성능과 내구성을 결정합니다. 데이터베이스, 파일 서버 및 데이터 집약적 애플리케이션은 계산보다는 저장 처리량 및 지연 시간에 의해 제약을 받는 경우가 많습니다. RAID 및 관련 이중화 방식은 데이터 센터에서 장치 오류로부터 보호하며, 효율적인 I/O 가상화는 많은 테넌트가 물리적 하드웨어를 공유하는 클라우드 컴퓨팅에 필수적입니다.
History
초기 기계는 프로그래밍된 I/O와 전용 채널을 사용했습니다. 인터럽트 기반 I/O와 직접 메모리 접근은 I/O와 계산을 중첩시키기 위해 등장했습니다. 자기 디스크는 수십 년 동안 보조 저장 장치를 지배했으며, 1988년 패터슨, 깁슨, 카츠가 제안한 RAID는 이중화를 표준 신뢰성 기술로 확립했습니다. 이후 플래시 기반 솔리드 스테이트 드라이브는 저장 계층을 재편했으며, 클라우드 컴퓨팅의 부상과 함께 I/O 가상화가 핵심적인 역할을 하게 되었습니다.
Debates
- 분리된 저장 장치 대 로컬 저장 장치
- 저장 장치가 컴퓨팅에 로컬로 연결되어야 하는지 아니면 고속 네트워크를 통해 분리되어야 하는지에 대한 지속적인 논의가 있습니다. 분리된 저장 장치는 데이터 센터에서 활용도와 유연성을 향상시키지만, 지연 시간을 증가시키고 고성능 인터커넥트에 의존합니다.
Key figures
- David A. Patterson
- Garth Gibson
- Randy H. Katz
- John L. Hennessy
Related topics
Seminal works
- hennessy2019
- patterson1988raid
- silberschatz2018
Frequently asked questions
- 직접 메모리 접근(DMA)이란 무엇이며 왜 유용합니까?
- 직접 메모리 접근(DMA)은 장치가 프로세서가 각 단어를 복사하지 않고도 주 메모리와 데이터 블록을 주고받을 수 있도록 합니다. 이는 전송 중에 프로세서가 다른 작업을 수행할 수 있도록 하여 I/O와 계산을 중첩시키고 대량 데이터 이동의 처리량을 크게 향상시킵니다.
- RAID가 내 데이터의 안전을 보장합니까?
- 아니요. RAID는 중복 정보를 저장하여 가용성을 향상시키고 특정 장치 오류를 허용하지만, 백업은 아닙니다. 우발적인 삭제, 손상, 허용 범위를 초과하는 다중 장치 오류 또는 사이트 수준 재해로부터 보호하지 않으므로 별도의 백업이 여전히 필요합니다.