컨트롤러의 기본 기능

Feb 06, 2023|

1. 데이터 버퍼링: I/O 장치의 속도는 낮고 CPU와 메모리의 속도는 높기 때문에 컨트롤러에 버퍼를 설정해야 합니다. 출력 시 이 버퍼를 사용하여 호스트에서 전송한 데이터를 고속으로 임시 저장한 다음 버퍼의 데이터를 I/O 장치가 가지고 있는 속도로 I/O 장치로 전송합니다. 입력 시 버퍼는 I/O 장치에서 보낸 데이터를 임시로 저장하고 일괄 데이터를 수신한 후 버퍼에 있는 데이터를 고속으로 호스트로 전송합니다.
2. 오류 제어: 장치 컨트롤러는 I/O 장치가 전송한 데이터의 오류 감지도 담당합니다. 전송 중에 오류가 발생하면 일반적으로 오류 감지 코드가 설정되어 CPU에 보고되므로 CPU는 이번에 전송된 데이터를 무효화하고 새로운 전송을 수행합니다. 이렇게 하면 올바른 데이터 입력이 보장됩니다.
3. 데이터 교환: CPU와 컨트롤러, 컨트롤러와 장치 사이의 데이터 교환 실현을 말합니다. 전자의 경우 CPU는 데이터 버스를 통해 병렬로 컨트롤러에 데이터를 쓰거나 컨트롤러에서 병렬로 데이터를 읽습니다. 후자의 경우 장치가 컨트롤러에 데이터를 입력하거나 컨트롤러에서 장치로 데이터를 전송합니다. 이를 위해 컨트롤러에서 데이터 레지스터를 설정해야 합니다.
4. 상태 설명: 장치의 상태를 식별하고 보고합니다. 컨트롤러는 CPU가 이해할 수 있도록 장치의 상태를 기록해야 합니다. 예를 들어 장치가 보낼 준비가 된 경우에만 CPU는 컨트롤러를 시작하여 장치에서 데이터를 읽을 수 있습니다. 이러한 이유로 컨트롤러에 상태 레지스터를 설정해야 하며 각각은 장치의 특정 상태를 반영하는 데 사용됩니다. CPU가 레지스터의 내용을 읽을 때 장치의 상태를 이해할 수 있습니다.
5. 명령 수신 및 식별: CPU는 컨트롤러에 다양한 명령을 보낼 수 있으며 장치 컨트롤러는 이러한 명령을 수신하고 식별할 수 있어야 합니다. 이러한 이유로 컨트롤러에는 수신된 명령과 매개변수를 저장하고 수신된 명령을 디코딩하는 데 사용되는 해당 제어 레지스터가 있어야 합니다. 예를 들어, 디스크 컨트롤러는 CPU로부터 읽기, 쓰기 및 포맷과 같은 15가지 명령을 수신할 수 있으며 일부 명령에는 매개변수도 있습니다. 이에 따라 디스크 컨트롤러에는 여러 개의 레지스터와 명령 디코더가 있습니다.
6. 주소 인식: 메모리의 모든 장치에 주소가 있는 것처럼 시스템의 모든 장치에도 주소가 있으며 장치 컨트롤러는 제어하는 ​​각 장치의 주소를 인식할 수 있어야 합니다. 또한 CPU가 레지스터에(또는 레지스터에서) 데이터를 쓰거나 읽으려면 이러한 레지스터에 고유한 주소가 있어야 합니다.

 

문의 보내기