[오늘의 배움] 019 컴퓨터구조 I/O와 Bus

이상민·2020년 12월 14일
2

[오늘의 배움]

목록 보기
21/70
post-thumbnail

1. I/O 기기와 연결

I/O 기기는 컴퓨터에게 있어 인간의 오감과 같은 역할을 한다

Input : 마우스, 키보드, 카메라 등
Output : 모니터, 스피커 프린터 등
In/Out : 네트워크, 저장매채 등

  • I/O 기기는 인터페이스를 통해 연결된다
    ex) HDMI, USB, Ethernet

1-1. 요소 간 연결

  • CPU, 메모리, I/O 컨트롤러 등 간 연결이 필요하다

  • Bus는 공유된 통신 채널으로 병목현상의 원인이 될 수 있다

  • Bus의 성능을 저하하는 물리적 요인 : 회선 길이, 연결 노드 수
    -> 최근엔 bus가 아닌 고속 시리얼 통신을 이용함


2. I/O 관리

  • I/O는 OS가 관리
    i. 여러 프로그램이 공유하므로 보호와 스케쥴링 필요
    ii. 비동기 인터럽트를 발생시킴
    iii. I/O 프로그래밍은 복잡하므로 OS가 프로그램에 abstraction(interface) 제공

  • I/O 기기는 I/O 컨트롤러 하드웨어가 관리
    i. 기기로부터 데이터 송수신
    ii. 소프트웨어와 연산 동기화

  • 컨트롤러에 내장된 레지스터
    i. command(control) registers : I/O 기기 작동
    ii. status registers : 기기 상태와 에러 발생 표시
    iii. data registers : 기기로부터 데이터 송수신

2-1. I/O 레지스터 맵핑

  • 메모리 사상 I/O : 레지스터가 메모리와 같은 주소 공간/명령어 사용, 메모리에 접근하듯 접근 가능
    Address decoder로 구분, 커널에 의해서만 접근 가능하도록 주소 변환 체계 사용

  • I/O 사상 I/O : I/O 레지스터 접근을 위한 별도 주소 공간/명령어 사용, 커널모드에서만 사용 가능


3. I/O 방식

  • I/O 기기는 load/store 명령어에 비해 느리기 때문에 통신에 문제가 있을 수 있다.

3-1. Polling

장치가 status reg에 정보 저장하고 cpu가 계속 검사하여 입출력 가능 확인

  • 장점 : 간단하다
  • 단점 : CPU 시간을 낭비한다

3-2. Interrupt

I/O 필요시 인터럽트 제어기를 통해 장치가 CPU에 통보, CPU는 작업을 멈추고 인터럽트 수행

  • 장점 : CPU 시간 낭비가 없다
  • 단점 : 인터럽트 제어기가 필요하다

3-3. DMA (Direct Memory Access)

CPU 입출력 명령 전달 시 DMA 제어기가 버스 마스터로 입출력을 수행한다.

  • 장점 : 인터럽트보다 CPU 시간을 절약한다
  • 단점 : DMA 제어기가 필요하다

4. Bus

시스템 내외부 모듈 사이에 데이터 전송을 위한 통신 링크 규약. 병렬 직렬 연결 모두 가능하고
최근 네트워크 프로토콜과 경계가 흐려지고 있다. ex) 이더넷

  • 장점 : 새로운 노드 추가 용이, 표준 규격의 범용성, 낮은 연결 비용
  • 단점 : 통신 병목 현상 발생 (길이, 연결 노드 수, 다양한 장치 연결에 따른 지연/전송 속도 다양화)

4-1. 버스 사양

i. 선들의 전기적 규격
ii. 물리적 특징 (길이, 저항, 커넥터)
iii. 클럭/신호 타이밍
iv. 트랜잭션 (버스 요청/승인, 명령 전달, 데이터 전송)


5. Bus Arbitration

5-1. 마스터와 슬레이브

  • 버스 트랜젝션 = 요청 + 동작

  • 마스터 : 명령어를 보내 트랜잭션 시작

  • 슬레이브 : 명령에 따라 송수신

  • 간단한 bus 시스템에선 CPU가 유일한 마스터, 모든 트랜잭션에 CPU가 관여하는 단점을 가짐

5-2. 다수 마스터와 버스 중재

  • bus arbitration : 다수 마스터 존재시 버스 사용 조정

  • 버스 중재 동작
    i. 마스터의 요청 후 대기
    ii. bus arbitrator 승인
    iii. 마스터 버스 사용 종료 후 공지

  • 버스 중재의 요소
    i. 버스 우선순위 : 우선순위 높은 장치가 먼저
    ii. 공정성 : 우선순위 낮은 장치도 언젠가는 사용

  • 여러 버스 중재 스킴 존재

5-2-1. Daisy Chain Arbitration

  • 토큰 방식으로 처리
  • 장점 : 연결 구성으로 우선순위 결정, 간단
  • 단점 : 공정성 보장 x

5-2-2. Centralized Parallel Arbitration

  • 특성 :
    i. 중재기는 요청한 마스터와 허용한 마스터 인식
    ii. 다양한 마스터 선정 알고리즘 가능

  • 대부분 CPU-MEM 버스와 고성능 I/O버스에서 사용

5-2-3. Distributed Arbitration with Collision

  • 이더넷의 방식
  • 특징 : 버스 중재기가 없고 마스터의 버스 상태 확인으로 분산적 중재가 일어남
profile
편하게 읽기 좋은 단위의 포스트를 추구하는 개발자입니다

0개의 댓글