우리들은 입출력장치를 통해서 컴퓨터를 사용합이다 데이터를 컴퓨터의 외부로부터 읽어 들이는 것이 입력장치, 처리한 결과인 정보를 컴퓨터의 외부로 출력하는 것이 출력장치 입니다. 인간이 컴퓨터에서 처리를 실행하기 위한 중계를 하는 장치,구조,결정,사고를 총칭해서 맨머신인터페이스 라고 합니다. 인간은 컴퓨터시스템의 외부 존재이기 때문에 입출력장치는 맨머신인터페이스의 일부라고 생각됩니다.
입출력장치의 기능
인간은 옛날부터 문자를 사용해서 데이터와 정보를 표현했습니다.
문자(상형 문자) 는 영어와 숫자, 가나문자,한자 등을 말하고 인간이 직접 읽고 쓸 수 있다는 특징을 갖고 있기 때문에 데이터를 표현하기 좋게 하는 방법이라고도 할 수 있습니다.
이 때문에 컴퓨터에 입력하는 데이터와 컴퓨터의 출력 결과는 종래부터 문자로 표현되어 왔습니다.
컴퓨터의 적용분야의 확대에 따라서 문자뿐만 아니라 도형과 음성, 각종 전기신호 등을 데이터로서 입출력할 필요가 있게 되었습니다. 데이터를 간단하게 입력하거나ㅏ 더욱 사용하기 쉬운 형식으로 출력하기 위해서 입니다. 하지만 컴퓨터는 "0"과 "1" 을 조합한 비트 패턴으로 표현된 전기신호로 밖에 처리할 수 없기 때문에 문자와 도형, 음성 등의 데이터는 그대로 처리하는 것은 불가능 합니다.
이때문에 입력장치는 문자와 도형 등의 입력 데이터를 비트 데이터로 변환합니다. 또 출력장치는 비트 데이터를 문자와 도형으로 변환해서 정보로서 인간이 이용할 수 있도록 합니다.
입력장치 : 데이터를 컴퓨터 외부로부터 읽어 들이는 것입니다.
출력장치: 컴퓨터에서 처리한 결과(정보) 를 컴퓨터 외부로 내보내는 것입니다.
맨머신인터페이스: 인간이 컴퓨터에서 처리를 실행하기 위한 중계를 하는 장치,구조 결정,사고 등의 총칭 입니다
주변 장치: 컴퓨터에 의해 직접 제어되는 장치 온라인(on-line)으로 연결되어있다고 하며, 켬퓨터 명령에 따라 메모리 장치로 정보를 직접 전송합니다. 컴퓨터에 부착된 입출력 장치를 주변 장치 라고 합니다
ASCII 코드
입출력 장치와 컴퓨터 간에 교환되는 영숫자 정보는 ASCII(american standard code for information interchange)라는 표준이진 코드로 표현됩니다.
7비트로 구성되어 128개의 문자를 표시하며,프린터 되는 94개의 문자와 프린터 되지 않는 34개의 제어문자로 구성되며, 34개의 재어문자는 세 가지 종류로 나누어 집니다
형식 지시자 : 인쇄물에서의 다양한 배치를 제어
정보 분리자: 데이터를 문단이나 페이지 단위로 분리하는 기능.
통신제어문자: 서로 떨어져 있는 단말기 사이에 텍스트를 전송하는데 사용합니다 STX(start of text),ETX(end of text) 등 있습니다.
입출력 인터페이스
메모리나 CPU 레지스터와 같은 내부의 장치와 외부 입출력장치 간의이진 정보를 전송하기 위한 방법을 제공합니다.
단말장치 : 통신회선을 사이로 원격에 설치한 입출력장치
보조기억장치와 주기억장치 사이의 데이터 교환도 입출력 인터페이스를 통해서 이루어 집니다.
컴퓨터와 외부 선으로 연결된 주변 장치들은 중앙 처리 장치와의 연결을 위한 특수한 통신연결을 필요로 하는데, 이 통신 연결은 중앙 컴퓨터와 각 주변의 장치와의 차이점을 해결하는데 목적을 두고 있습니다.
1.주변 장치는 전기 기계적이거나 전자기적인 장치로 그 동작 방식이 전기적 장치인 CPU나 메모라와 다릅니다. 따라서 신호 값의 변환은 필요 없습니다
2. 주변장치의 데이터 전송속도는 CPU의 전송 속도 보다 느립니다. 따라서 동기화 절차가 필요할 수 있습니다.
3. 주변 장치와 데이터 코드와 형식이 CPU나 메모리의 워드 형식과 다릅니다.
4. 주변 장치들이 동작 방식이 서로 다르기 때문에 가각은 다른 주변 장치의 동작을 방해하지 않도록 제어되어야 합니다.
I/O버스와 인터페이스 모듈
CPU는 입출력 버스의 정보의 흐름을 관리하는 I/O 제어를 갖고 있으며,
컴퓨터 I/O 제어는 프로그램 메모리로부터 명령어를 받아 인터페이스를 통하여 주변 장치와 대화함으로써 이들을 시행합니다
인터페이스 논리는 입출력 버스로부터 받은 명령을 해석하고 주변 장치 제어기에 신호를 보냅니다.
또한 데이터의 흐름을 동기화하고 주변 장치와 컴퓨터 사이의 전달 속도를 관리 합니다.
각 주변 장치는 특정한 전기 기계적 장치를 동작시키고 제어하는 자신의 제어기를 갖고 있습니다.
1.제어기는 개별적으로 설치할 수도 있고 주변 장치 내에 집적될 수도 있습니다.
2.같은 형태의 여러 주변 장치들을 때대로 공통 제어기를 공용으로 사용할 수도 있습니다.
입출력 버스는 모든 주변 장치의 인터페이스에 공통으로 연결된 버스 입니다.
1.어떤 특정한 장치와 통신하기 위해 CPU는 버스에 장치 주소를 지정하고, 이 공통 버스에 연결된 각 인터페이스는 계속해서 주소 라인을 관리하는 주소 디코더를 갖고 있습니다.
2. 인터페이스가 자신의 주소를 검출하면 잉ㅂ출력 버스라인과 주변장치 사이의 통로가 활성화 됩니다.
주소가 주소 라인에 지정됨과 동시에 프로세서는 제어 라인을 위한 기능 코드를 제공하며 이것을 I/O커맨드(command)라고 하는데, 주변장치와 인터페이스에서 실행되는 명령어입니다.
제어 커맨드 : 주변자치를 활성화시키며 무엇을 해야 할지 전달합니다.
테스트 커맨드 :인터페이스 ,제어기 ,주변장치 내에 있는 여러 가지의 상태를 테스트하기 위해 사용됩니다.
데이터 출력 커맨드 : 입출력 버스 내에 있는 데이터 라인으로부터 데이터의 한 항목을 받아들이도록 인터페이스가 작동하게 됩니다.
데이터 입력 커맨드 : 데이터 출력 커맨드와 반대의 역활을 합니다. 이경우에 인터페이스는 주변 장치로부터 데이터를 받아 버퍼 레지스터에 놓습니다.
비동기 데이터 전송
서로 독립적으로 설계된 두 개의 장치가 공통의 클럭을 갖는다면 두 장치 사이의 전솔은 동기적으로 이루어진다고 합니다.
대부분의 경우에 있어 각 장치는 자신의 클럭 펄스를 갖게 되며, 이러한 경우 두 장치는 서로 비동기되어 있다고 합니다.
두 독립적인 장치 사이의 비동기젖ㄱ인 데이터의 전송을 이루기 위해서는 데이터가 전송될 시각을 알리기 위해서 두 장치 사이에 제어 신호가 교환되어야 하며, 스트로브 펄스(Stribe Pulse)에 의한 방식과 헨드셰이킹(Handshaking)에 의한 방식이 있습니다.
스트로브 펄스에 의한 방식
데이터 버스와 한 개의 제어 선을 이용
1.두 개의 독립적인 장치 사이의 비동기적인 데이터 전송을 이루기 위해 전송시간을 알리는 제어신호를 스트로브 신호라 하며, 한 개의 제어 선을 통하여 상호 교환 합니다.
2.메모리와 CPU사이의 정보를 교환할때 사용 합니다.
3.단점은 전송을 송신 장치는 수신 장치가 데이터를 받았는지 알 수 없습니다.
핸드셰이킹에 의한 방식
1.데이터 전송 시 송신측과 수신측에서 입출력의 준비나 완료를 나타내는 신호를 사용하여 서로의 동작을 확인하면서 데이터를 전송합니다.
2.전송을 시작한 장치에 응답하는 제어신호를 전송함으로써 높은 융통성과 신뢰성을 갖습니다.
3. 병렬 입출력 데이터 전송방식의 기본으로 널리 사용 됩니다.
4.2~3개의 제어선을 사용 합니다 .
5. 타임아웃 방식 : 데이터 전송이 일정시간 내에 이루어지지 않으면 경보를 발생하는 방식입니다.
전송모드
외부 장치로부터 받은 이진 정보는 다음 처리를 위하여 보통 메모리에 저장되며 ,CPU에 외부정치로 전송되는 정보도 메모리를 통하여 전송됩니다. 컴퓨터와 입.출력장치 사이의 데이터 전송은 여러가지 모드로 나누어 집니다
1,CPU를 중간경로로 이용하여 데이터를 입.출력하는 것
2.CPU를 거치지 않고 메모리와 직접 입.출력하는 것들로 구분 됩니다.
Programmed I/O
1.I/O 장치가 직접 메모리에 접근하지 못함
2.I/O 장치와 메모리사이에 데이터를 전송하기 위해서는 입력이나 저장명령어를 포함한 다수의 명령어가 실행되어야만 합니다.
3.외부장치에 데이터가 준비되었는지를 확인하거나 전송된 워드 수를 세는 명령어도 필요합니다.
4.원하는 I/O가 완료되었는지의 여부를 검사하기 위해서 CPU가 상태 Flag를 계속 조사하여 I/O가 완료되었으면 MDR(MBR)과 AC 사이의 자료 전송도 CPU가 직접 처리하는 I/O방식입니다
5.입출력에 필요한 대부분의 일이 CPU가 해주므로 Interface는 MDR,Flag,장치번호 디코더로만 구성하면 됩니다.
6. I/O 작업 시 CPU는 계속 I/O 작업에 관여해야하기 때문에 다른 작업을 할 수 없다는 단점 있습니다.
7. I/O 장치는 메모리에 저장할 데이터를 일련의 바이트로 보내고 각 바이트를 전송하는데에 필요한 세 명령어가 필요합니다
1)상태 레지스터를 읽는다
2)플래그 비트가 세트되었으면 3산계로, 세트되지 않았으면 1단계로 이동
3)데이터 레지스터를 읽는다.
Interrupt I/O
1.입출력을 하기 위해 CPUrk rPthr Flag를 검사하지 않고
2.데이터를 전송할 준비가 되면 입.출력 인터페이스가 컴퓨터에게 알려 입출력이 이루어지는방식
1)입.출력 인터페이스는 CPU에게 인터럽트 신호를 보내 입출력이 있음을 알립니다.
2)CPU는 작업을 수행하던 중 입출력 인터럽트가 발생하면 수행중인 츠로그램을 중단하고
3)입출력을 처리한 후 원래의 작업으로 돌아와 작업을 계속 수행
3.CPU가 계속 Flag를 검사하지 않아도 되기 때문에 Programmed I/O보다 효울적
4.대량의 자료 전송 시 CPU의 부담을 증가시킴
분기주소 선택 방법에 따른 분류
1.비벡터 인터럽트 방식
1)분기주소는 메모리의 고정 위치에 저장되어 있음
2.백터 인터럽트 방식
1)인터럽트를 내는 소스가 프로세서에게 분기에 대한 정보를 제공하는것으로
2)이 정보를 인터럽트 벡터라 함
DMA(Durect Memory Access)에 의한 I/OD
DMA는 입출력장치가 직접 주기억장치를 접근(Access)하여 Data Block을 입출력하는 방식으로 입출력 전송이 CPU의 레지스터를 경하지 않고 수행
1.CPU는 I/O에 필요한 정보를 DMA 제어기에 알려서 I/O 동작을 개시시킨 후 I/O 동작에 더이상 간접하지 않고 다른 프로그램을 할당하여 수행
2. DMA 방식은 입.출력 자료를 전송 시 CPU를 거치지 않기 때문에 CPU의 부담이 없어 보다 빠른 데이터의 전송이 가능
3.DMA는 인터럽트 신호를 발생시켜 CPU에게 입출력 종료를 알림
4.DMA는 블록으로 대용량의 데이터를 전송할 수 있음
5. DMA는 Cycle Steal 방식을 이용하여 데이터를 전송
6. CPU와 DMA 제어기는 메모리와 버스를 공유
7. CPU에서 DMA 제어기로 보내는 자료
1) I/O 장치 주소
2)데이터가 있는 주기억장치의 시작 주소
3) DMA를 시작시키는 명령
4) 입 .출력 하고자 하는 자료의 양
5) 입력 또는 출력을 결정하는 명령
8.Cycle Steal
데이터 채널(DMA 제어기)과 CPU가 주기억장치를 동시에 Access할 때 우선순위 를 데이터체널에게 주는 방식입니다.
Channel에 의한 I/O
- Channel은 I/O를 위한 특별한 명령어를 I/O 프로세서에게 수행토록 하여 CPU 관여 없이 주기억장치와 입.출력장치 사이에 입.출력을 제어하는 입.출력 전용 프로세서 (IOP)입니다.
- DMA 제어기의 한계를 극복하기 위하여 고안된 방식입니다.
- 채널은 DAM 방법으로 입.출력을 수행하므로 DMA의 확장된 개념으로 볼 수 있습니다.
버스의 구조
컴퓨터에서 사용되는 레지스터들 사이에는 서로 데이터가 전달될 수 있도록 통로(path)가 만들어져 있으며 또 장치들 간에 필요한 연결을 하는 데는 수많은 연결선이 필요합니다. 이러한 연결선들을 모아 놓은 어떤 공통의 동일한 체제를 버스(bus)라 합니다.
버스 구조의 컴퓨터는 중앙처리장치와 주기억장치 사이에서 메모리 버스를 통한 데이터 교류를 합니다. 입출력 기능은 입출력 버스에 의해서 이루어 집니다. 그러므로 데이터들은 중앙처리 장치를 통하여 주기억장치로 가게 됩니다.
버스는 서로 구별되는 선들의 묶음으로서 구성되어 있습니다. 메모리 버스는
데이터 버스 ,어드레스 버스 를 포함하고 있으며 데이터 버스는 이들을 운바하는데 사용 됩니다.
그러므로 선의 숫자는 워드를 구성하는 비트의 수에 관련되어 있으며 주기억장치에 있는 데이터를 엑세스 하기 위해서는 위치를 표시하는 주소를 반드시 명기해야 합니다.
마이크로프로세서에서 메모리나 입출력장치를 접속하는 형식은 프로세서에서 버스라 불리는 신호의 집단 에 각각의 장치가 인터페이스 회로라는 접속 회로를 통하여 연결되는 것이 보통입니다. 보통 내부버스 ,외부 버스로 구분합니다 .
외부 버스는 입력이 전용과 출력 전용의 단일 방향의 것이 2조인 것과 입출력 겸용의 쌍방향 버스가 1조인 것이 있습니다.
소형인 간단한 시스템에서는 쌍뱡향 버스가 주로 사용됩니다.
프린터
컴퓨터에 처리된 결과를 외부로 출력하는 수단으로 현재 가장 널리 사용되고 있는 것이 바로 프린터입니다. 이러한 프린터는 인쇄되는 속도에 따라 한 문자 씩 인쇄해 나가는 저속 인쇄장치,한 행씩 인쇄하는 고속 인쇄장치, 한 페이지 단위로 인쇄하는 초고속 인쇄장치로 나눌 수 있으며 글자의 인쇄 방법에 따라 물리적 충격을 이용하는 충격식 프린터와 그렇지 않은 비 충격식 프린터 로 나누고 있습니다.
충격식 프린터
미리 완성된 활자로 때려서 출력하는 방식과 헤드를 여러 개의 편으로 점 행렬을 만들어 각 문자를 출력하는 방식이 있습니다.
활자식 방식은 보다 선명한 글자를 만들어 내고 도트 메트릭스 방식은 여러가지 다양한 글자체나 그래픽 영상을 인쇄할 수 있습니다.
비 충격식 프린터
1.레이저 프린터
2.잉크젯 프린터
3.열전사 프린터
4.이온 장착 프린터
5.네트워크 프린터
프린터 들은 그냥 종류만 알아두는것이 좋습니다.
응용 소프트웨어
사용자의 특정 문제를 해결하기 위해 개발된 소프트웨어 입니다.
시스템 소프트웨어
컴퓨터의 효율을 증대하기 위해 개발된 소프트웨어 패키지
1.언어 프로세서: 사용자 언어로 작성된 것을 기계어로 번역
2.내장 프로그램: 응용프로그램을 위한 표준루틴을 제공
3.효용 프로그램:컴퓨터 요소들간의 통신을 지원
4.로오더 프로그램 : 여러가지 프러그램을 메모리로 읽어들이는 프로그램
5.진단 프로그램: 컴퓨터 유지 및 관리를 도와주는 프로그램
6.오퍼레이팅 시스템: 모든 프로그램을 실행 및 관리 제어 하는 프로그램