전송 제어 방법은 무엇입니까?
CPU와 주변 장치 간의 데이터 전송에는 일반적으로 프로그램 모드, 인터럽트 모드, DMA 모드의 세 가지 제어 방법이 있습니다.
프로그램 모드: 입력/출력 명령의 사용을 나타냅니다. 정보 전송 방식은 소프트웨어 제어 방식으로, 프로그램 제어 방식에 따라 무조건 전송 방식과 조건부 전송 방식으로 나눌 수 있다.
무조건 전송 방식은 인터페이스가 간단하고, 언제든지 읽을 수 있는 사용자에게 적합합니다. 조건부 전송 모드(쿼리 모드)는 간단한 인터페이스 회로, 낮은 CPU 사용률(프로그램 루프 대기)이 특징이며 인터페이스는 CPU에 쿼리 상태를 제공해야 합니다. CPU 사용량이 많지 않고 전송 속도가 필요하지 않은 경우에 적합합니다. 다양한 주변 장치가 동시에 작동할 수 없고 주변 장치가 수동 상태에 있어야 합니다.
인터럽트 모드 : 주변기기가 준비되면 주변기기는 인터페이스 회로를 통해 CPU에 인터럽트 요청 신호를 보내고, CPU는 현재 실행 중인 프로그램의 실행을 일시 중지하고 주변기기 인터럽트에 응답하고 해당 인터럽트로 전환합니다. 서비스 서브루틴을 실행하고 주변 장치와 데이터 전송을 수행합니다. 데이터 전송이 완료된 후 CPU는 원래 중단된 프로그램을 계속 실행하기 위해 돌아갑니다. 이는 CPU 사용률이 높고 주변 장치가 CPU 인터럽트를 적용하는 주도권을 갖고 있다는 특징이 있습니다. CPU와 주변장치는 병렬로 작동하지만, 인터럽트 서비스는 중단점을 보호하고 중단점을 복원(저장 공간을 점유하고 속도를 줄임)해야 하며, CPU는 주변장치와 CPU 사이에 인터럽트 컨트롤러가 필요한 상황에 적합합니다. CPU가 사용 중이고 전송 속도가 필요하지 않습니다. 특히 실시간 제어에서 긴급 이벤트 처리에 적합합니다.
메모리 직접 액세스 방식(DMA): 주변 장치는 전용 인터페이스(DMA 컨트롤러)를 사용합니다. CPU를 통하지 않고 고속 데이터를 메모리에 직접 전송하는 것(CPU는 데이터 전송 작업에 참여하지 않음) 버스 제어는 CPU에 위치하지 않고 DMA 컨트롤러에 의해 제어됩니다. 복잡하고 하드웨어 오버헤드가 크다. 대용량 데이터 배치의 전송 속도가 매우 빠르다. 메모리와 메모리 간, 메모리와 주변 장치 간에 대용량 데이터가 전송되는 상황에 적합하다.