-
컴퓨터일반 - 6. 입출력컴퓨터+a/컴퓨터일반 2017. 4. 30. 13:31
<입출력>
1. 입출력 명령
입출력 명령은 주변장치와 주기억장치 사이의 데이터 전송을 수행, CPU에 접속되어 있는 모든 주변장치를 제어
데이터 전송을 위해 필요한 일련의 입출력 조작을 입출력 절차라고 함
CPU에 의해 실행되는 입출력명령, 채널에 의해 실행되는 입출력 커맨드, controller에 의해 실행되는 입출력 지령 등이 있음
(1) 입출력 조작(I/O operation)
(2) 입출력 명령(I/O instruction)
(3) 채널 커맨드(channel command) 입출력만 담당하는 CPU
(4) 입출력 지령(I/O order)
2. 입출력 방법
(1) 메모리 맵에 의한 입출력(Memory Map I/O)
- 메모리 번지를 interface register로 확장하여 지정하는 것, 메모리와 입출력 번지 사이에 구별이 없음
- 전용공간, 모니터면 모니터만 특정메모리 영역 사용하게 해서 그 메모리에 뭔가 써지면 바로 모니터에 출력되도록(포트 통하지 않고)
모니터 I/O port Memory
1010 B800
0101 1010
0101 //Memory Map 방식
01 ↔ I/O port ↔ 01 //I/O mapping I/O, port 통하는 방식
* Memory Map I/O 실습
① 명령 프롬프트 C>
② C>DEBUG
//DOS 명령어
③ _ //DEBUG 프롬프트
④ 1000번째 위치 선택(한화면 글자수 200자, 이 때 문자 코드와 해당 문자의 속성값 준다. 번지는 2000번지가 됨, 16진수로 800번지), 모니터 화면 중간쯤 나타내기 위해
⑤ E B800:800 41 53 42 89 43 A7 44 19 45 CC 46 7c
//모니터에 출력되고 메모리에 들어가고, E-명령, 41-A, C(글자색)C(배경색)->E명령 B800(모니터)에서 800만큼 떨어진 곳에 이걸 출력(배경색과 글자색 같으면 Password)
(2) I/O mapped I/O(격리형 I/O)
- I/O interface 번지와 메모리의 번지를 구별하여 지정하는 방법
- 공유영역, 필요할 때 메모리에 있는게 I/O port 통해서 모니터로
3. 전송
4가지 형태
(1) 프로그램 제어하의 데이터 전송
CPU에 의해
CPU를 경우하여 메모리에 전송, CPU의 효율이 떨어짐
프린트 ↔ interface ↔
키보드 ↔ interface ↔ I/O bus ↔ CPU ↔ Memory
마우스 ↔ interface ↔
(2) 인터럽트에 의한 데이터 전송
CPU에 의해
프로그램 제어하의 데이터전송의 비효율성을 개선한 방식
(3) DMA(Direct Memory Access)
CPU 눈치보면서(독립이긴 한데), CPU와 보조맞추어 남의 cycle 훔쳐서 처리하는 것처럼 I/O
메모리와 I/O 장치 사이에 CPU를 경유하지 않고 자료를 전송
전송속도가 높다, 대용량 고속 I/O장치에 적합
DMA 제어기 필요
DMA와 interrupt의 차이점 - DMA는 매 사이클의 끝에서 발생, interrupt는 한 명령 사이클의 끝 위치에서 발생
(4) 채널에 의한 데이터 전송
CPU와 완전 독립
CPU를 경유하지 않고, CPU와 동시에 동작이 가능한 방법
가장 효율적
* 셀렉터 채널 : 고속도의 입출력 장치와의 입출력(disk, tape 등)
* 멀티플렉서 채널 : 저속도 입출력 장치와의 입출력(키보드, 카드판독장치 등)
* 블럭 멀티플렉서 채널 : 멀티플렉서 + 셀렉터 채널, 다수개의 고속도 장치에 연결
4. 입출력 장치의 종류
(1) 펀치카드
(2) 키보드 : 7bit ASCII code
(3) 텔레타이프라이터(teletypewriter : TTY) : 키보드를 이용하여 자료를 입력하고 프린터로 정보를 출력할 수 있는 입출력 장치, 비동기 직렬 전송 방식
(4) CRT(Cathod Ray Tube:음극선관) : 표준 출력 장치, 모니터 화면에 비교적 빠른 속도로 정보를 나타낼 수 있음
(5) 자기 테이프(Magnetic Tape) : 녹음 테이프처럼 폴리에스테르 필름에 자화물질을 도포하여 자화형태로 기록할 수 있고(출력), 자화된 내용을 읽을 수 있는(입력) 장치
* 고정길이 레코드
고정길이 Block 구조
IBG 논리레코드1 논리레코드2 논리레코드3 IBG 논리레코드4 논리레코드5 논리레코드6 IBG
물리레코드1 물리레코드2
논리레코드1,2,3 : 3개가 아니라 통채로 하면 안되나? 그러면 버퍼가 너무 커짐(엘레베이터 너무 커도 낭비, 적당한게 good)
물리레코드 : 위에 낭비 때문에 세사람 몫씩 보관하자
IRG:Inter Record Gap-2번 읽기 때문
* 가변길이 레코드
* 무정형길이 레코드
(6) ★ 자기 디스크(Magnetic Disk)
원판형의 표면에 자화물질을 도포하여 회전시키면서 자기 테이프처럼 자화시킬 수 있는 장치
디스크팩 - 여러장의 디스크가 하나의 축 위에 고정
트랙 - 한장일 때 동심원
섹터
실린더 - 여러장일 때 같은 동심원의 집합(같은 위치에 있는 track들의 집합)
디스크가 6장이면 헤드 6개
헤드는 같이 움직이고 하나만 내려앉음
* Seek time : Access arm이 지정한 cylinder까지 찾아가는데 소요되는 시간(동심원 찾는데 걸리는 시간)
* Latency time(search time) : 해당 트랙상에서 원하는 record가 read/writed head(sector)까지 도달하는데 소요되는 시간, 동심원 중에서 스타트라인 찾아가는 시간(회전지연시간)
5. 인터럽트(interrupt)
서브 프로그램 : 식당(머리), 서비스 프로그램 : 병원(0번지, 스택)
서비스 프로그램(인터럽트 발생했을 때 실행되는 서브 프로그램) 실행하는 것, 서비스 받으러 가는 것
시스템에 예기치 못한 일이 발생했을 때 이것에 대한 빠르게 응답하기 위한 기능
5.1 인터럽트의 형태
(1) 외부 인터럽트 : CPU 바깥
(2) 내부 인터럽트 : CPU 안에서
(3) 소프트웨어 인터럽트 : 프로그래머가 인위적으로, 감시관리call명령에 의한 인터럽트
5.2 인터럽트 체제의 기본적인 요소★
① 인터럽트 요청신호 회로(interrupt request circuit)
② 인터럽트 처리 루틴(interrupt processing routine) : 인터럽트 감지, 하드웨어 및 소프트웨어 상태보존, 인터럽트 서비스 루틴으로 분기, 인터럽트 상태 복구 및 처리 재개
③ 인터럽트 취급 루틴(interrupt service routine) : 실질적인 조치, 제어를 인터럽트 처리 루틴으로 반환
* 프로그램에서 인터럽트가 발생하면 PC에 저장된 다음에 처리될 주소는 스택으로, PC에는 서비스루틴 주소가 쓰이게 되고, 서비스 루틴이 실행된다, 그 후에 스택에서 다시 PC로 다음에 실행될 주소를 넘겨줌
6. 우선 순위 체제
(1) 소프트웨어에 의한 우선 순위 : 느림, 의사선생님 지식으로, polling 방식
(2) 하드웨어 방식에 의한 우선순위 : 빠름, 기계이용
① 데이지 체인에 의한 우선순위 : 피검사 -> 소변 -> MRI
이중 직렬로 연결하여 우선순위를 결정하는 것
② 병렬 우선 순위 인터럽트 : 가장 좋음, 다 동시에
[출처] 유레카 컴퓨터일반 - 이재환, 이정식
교재를 개인 공부 목적으로 정리한 것입니다. 틀린부분이 있을 수 있습니다.
문제가 될 시 알려주시면 바로 조치하겠습니다.
무단배포나 복사는 금지합니다.
728x90'컴퓨터+a > 컴퓨터일반' 카테고리의 다른 글
안드로이드 FTP 클라이언트/라이브러리 (1) 2018.02.01 컴퓨터일반 - 7. 데이터 통신 (0) 2017.06.03 컴퓨터일반 - 5. 기억장치 (0) 2017.04.28 컴퓨터일반 - 4. 명령어 (0) 2017.04.13 컴퓨터일반 - 3. 연산 (0) 2017.04.07