minyule.log
로그인
minyule.log
로그인
혼공컴운 챕터 8. 입출력장치
김민영
·
2023년 1월 27일
팔로우
0
컴퓨터구조
0
혼공학습단
목록 보기
6/22
8-1 장치 컨트롤러와 장치 드라이버
장치 컨트롤러
종류가 많고, 데이터 전송률이 낮음.
장치 컨트롤러
입출력장치와 컴퓨터를 연결하는 하드웨어
== 입출력 제어기 I/O controller == 입출력 모듈 I/O module
역할
CPU와 입출력장치 간 통신 중개
오류 검출
데이터 버퍼링
데이터 버퍼링
버퍼링
: 전송률이 높은 장치(CPU)와 낮은 장치(입출력장치)의 전송률을 맞추기 위해 버퍼라는 임시 저장 공간에 저장하는 방식.
데이터 레지스터
CPU와 입출력장치 사이에 주고받을 데이터가 담기는 레지스터
상태 레지스터
입출력 장치의 상태 정보가 저장
입출력 작업 준비가 되었는지, 작업 완료 되었는지, 오류 없는지
제어 레지스터
입출력 장치가 수행할 내용에 대한 제어 정보와 명령 저장
장치 드라이버
장치 컨트롤러의 동작 감지, 제어. 장치 컨트롤러와 컴퓨터 내부의 정보 교환하는 프로그램
8-2 다양한 입출력 방법
장치 컨트롤러와 CPU가 정보를 주고받는 방법
프로그램 입출력
프로그램 속 명령어로 입출력 제어
CPU는 제어 레지스터에 명령
장치 컨트롤러의 상태 레지스터에 준비완료 표시
CPU는 상태 레지스터에 준비완료 표시를 보고, 데이터 레지스터에 데이터 보냄.
CPU가 장치 컨트롤러의 레지스터는 아는 방법
메모리 맵 입출력
메모리에 접근하기 위한 주소 공간과
입출력 장치에 접근하기 위한 주소 공간을
하나의 주소 공간으로 간주
메모리 주소 공간 축소
메모리와 입출력장치에 같은 명령어 사용
고립형 입출력
메모리를 위한 주소 공간과
입출력 장치를 위한 주소 공간을
분리
메모리 주소 공간 축소되지 않음
입출력 전용 명령어 사용
인터럽트 기반 입출력
CPU가 장치 컨트롤러에 입출력 명령 보냄
장치 컨트롤러가 입출력 작업을 끝낸 뒤 CPU에 인터럽트 요청을 보냄
CPU는 인터럽트 서비스 루틴 실행
NMI
Non-Maskable Interrupt : 인터럽트 비트를 비활성화해도 무시할 수 없는 인터럽트
CPU는 우성순위가 높은 인터럽트부터 처리
프로그래머블 인터럽트 컨트롤러 PIC
여러 장치 컨트롤러에 연결되어 있음
인터럽트 요청들의 우선순위를 판별하고, CPU에게 순서대로 알림.
CPU는 PIC에 인터럽트 확인 신호 보냄
PIC는 데이터 버스를 통해 CPU에 인터럽트 벡터를 보냄
CPU는 인터럽트 서비스 루틴 실행
DMA 입출력
DMA
: Direct Memory Access
입출력장치와 메모리가 CPU를 거치지 않고 상호작용 하는 방식. (CPU 부담 적음)
메모리에 직접 접근할 수 있는 입출력 기능
DMA 컨트롤러 하드웨어 필요 (시스템 버스에 연결되어있음)
입출력 버스
DMA 컨트롤러와 장치 컨트롤러를 연결
시스템 버스 사용 빈도 줄임. (CPU가 시스템 버스 사용할 수 있도록)
김민영
노션에 1차 정리합니당 - https://cream-efraasia-f3c.notion.site/4fb02c0dc82e48358e67c61b7ce8ab36?v=
팔로우
이전 포스트
혼공컴운 챕터 7. 보조기억장치
다음 포스트
혼공컴운 챕터 9. 운영체제 시작하기
0개의 댓글
댓글 작성