장치 컨트롤러
하드웨어나 소프트웨어로 구성된 시스템이나 장치를 제어하는 데 사용되는 제어 장치입니다.
일반적으로, 장치 컨트롤러는 외부 입력 신호를 감지하고 이를 처리하여 명령을 내릴 수 있는 내부 작동 방식을 갖습니다. 리를 통해 장치를 원하는 방향으로 제어하거나 목적에 맞게 동작시킬 수 있습니다. 하드웨어적으로 구현되기도 하지만, 소프트웨어 기반의 장치 컨트롤러도 있습니다. 소프트웨어 컨트롤러는 주로 마이크로프로세서나 마이크로컨트롤러를 사용하여 구현되며, 프로그래밍을 통해 측정 작업을 수행합니다. 이렇게 구현된 장치 컨트롤러는 프로그램의 수정 새로운 기능을 추가하거나 업데이트할 수 있어 유연성이 높습니다.
장치 드라이버
컴퓨터나 기타 디지털 장치에서 하드웨어를 제어하기 위해 사용되는 소프트웨어입니다. 운영 체제와 하드웨어 사이인 인터페이스 역할을 하며, 운영 체제는 이 드라이버를 통해 하드웨어와 효율적으로 통신하여 장치의 동작을 가능하게 합니다.
역할
- 하드웨어 제어 : 장치 드라이버는 컴퓨터의 운영 체제와 하드웨어 사이의 통신을 담당하여 하드웨어를 제어합니다.
- 하드웨어 인식 : 운영 체제가 부팅될 때, 장치 드라이버가 장치의 정보를 읽어와 운영 체제가 해당 장치를 인식할 수 있도록 합니다.
- 하드웨어 설정 : 장치 드라이버는 하드웨어를 초기화하고 설정하여 올바르게 동작하도록 합니다.
- 데이터 전달 : 장치 드라이버는 하드웨어와 소프트웨어 간의 데이터 전달을 관리합니다. 사용자나 응용 프로그램은 장치 드라이버를 통해 하드웨어에 데이터를 보내거나 받을 수 있습니다.
- 에러 처리 : 장치 드라이버는 하드웨어에서 발생하는 에러를 감지하고 처리합니다.
프로그램 입출력
컴퓨터 프로그램이 외부 환경과 상호 작용하는 과정을 말합니다. 프로그램 데이터를 입력받아 처리하고, 결과를 출력하는 등의 입출력 작업을 수행합니다.
메모리 맵 입출력
입출력 장치가 컴퓨터의 주소 공간에 매핑되어 있는 입출력 방식입니다. 입출력 장치를 일반 메모리처럼 취급하여 프로그래머가 일관된 방식으로 입출력을 수행할 수 있도록 합니다.
장점
1. 단순함 : 입출력 장치를 일반 메모리처럼 취급하기 때문에 입출력 작업이 메모리 접근과 같은 방식으로 구현됩니다.
2. 통일성 : 메모리 맵 입출력을 사용하면 입출력 장치와 메모리 간의 주소 할당이 통일되므로 주소 공간에 대한 충돌이나 겹침 문제가 발생하지 않습니다.
3. 속도 : 메모리 맵 입출력은 주소 버스를 통해 입출력 장치에 직접 접근하므로 빠른 입출력이 가능합니다.
4. 이식성 : 입출력 장치의 주소 매핑을 프로그램에서 직접 제어할 수 있으므로, 서로 다른 컴퓨터 아키텍처에서도 비슷한 코드로 입출력 작업을 수행할 수 있습니다.
고립형 입출력
입출력 장치와 주기억장치 사이에서 물리적으로 분리된 방식으로 입출력을 수행하는 방법입니다.
특징
1. 물리적 분리 : 입출력 장치와 주 기억장치가 물리적으로 분리되어 있으므로 입출력 장치는 메모리 주소 영역에 직접 매핑되지 않습니다.
2. 주소 충돌 회피 : 고립형 입출력을 사용하면 입출력 장치와 메모리 간에 주소 충돌 문제가 발생하지 않습니다.
3. 안정성 : 물리적 분리로 인해 입출력 장치와 주기억장치 사이의 데이터 교환에 더 높은 안정성을 제공합니다.
4. 입출력 제어 : 고립형 입출력은 컨트롤 신호를 사용하여 입출력 장치를 제어합니다. 입출력 장치에 연결된 입출력 포트에 출력 신호를 보내어 데이터를 전송하거나 입출력 상태를 확인하는 등의 작업을 수행할 수 있습니다.
메모리와 입출력장치 같은 주소 공간 O | 메모리와 입출력장치 같은 분리된 주소 공간 사용 |
메모리 주소 공간 축소 O | 메모리 주소 공간 축소 x |
메모리, 입출력장치 같은 명령어 사용 O | 입출력 전용 명령어 O |
DMA 입출력
주변 장치가 직접 메인 메모리와 데이터를 주고받는 입출력 방식입니다. 일반적인 CPU를 사용한 입출력 방식과 달리, DMA 컨트롤러를 통해 데이터를 복사하거나 이동하는 과정에서 CPU의 개입이 최소화되므로 데이터 전송 속도가 빨라집니다.
DMA 입출력 과정
- DMA 요청 : 입출력 장치가 데이터를 메모리에 전송하거나 메모리로부터 데이터를 읽어오려고 할 때, DMA 컨트롤러에게 DMA 요청을 보냅니다.
- DMA 채널 선택 : 여러 개의 DMA 채널 중에 사용 가능한 DMA 채널을 선택합니다.
- DMA 요청 인식 : CPU는 DMA 요청을 인식하고 해당 DMA 채널을 사용해야 함을 알게 됩니다.
- 주기억장치 설정 : CPU는 DMA 채널이 접근할 주 기억장치의 기준 주소와 전송할 데이터의 크기를 설정합니다.
- 데이터 전송 : DMA 컨트롤러는 CPU의 개입 없이 주 기억 장치와 입출력 장치 사이에서 데이터를 전송합니다.
- 데이터 전송 완료 인터럽트 : DMA 컨트롤러가 데이터 전송을 완료하면 DMA 채널은 CPU에게 인터럽트를 발생시킵니다. CPU는 이 인터럽트를 처리하여 데이터 전송이 완료되었음을 알게 됩니다.
- 후처리 : 데이터 전송이 완료된 후, CPU는 필요한 후처리 작업을 수행합니다. 이는 데이터의 유효성 검사, 결과 처리, 다음 DMA 요청 처리 등이 포함됩니다.
입출력 버스
컴퓨터 시스템에서 중앙 처리 장치와 주변 장치 사이의 데이터 및 제어 신호를 전달하는 통로입니다.
- 데이터 버스 : CPU와 입출력 장치 간에 데이터를 전송하는 데 사용되는 선들의 집합
- 주소 버스 : CPU가 주변 장치에 접근하기 위해 사용되는 주소 정보를 전달하는 데 사용
- 제어 버스 : CPU가 입출력 장치 간의 제어 신호를 전송하는 데 사용됩니다.
'컴퓨터구조' 카테고리의 다른 글
컴퓨터 구조 1장 (0) | 2023.08.16 |
---|---|
보조기억장치 (0) | 2023.08.16 |
메모리& 캐쉬메모리 (0) | 2023.08.16 |