입출력 서브 시스템(I/O Subsystem)

Slides:



Advertisements
Similar presentations
Embedded System 2009 년 11 월 16 일 Embedded Computer1 ● Hardware 와 Software 가 조합되어 특정한 복적을 수행하는 시스템 ● 특정한 기능을 수행하도록 Micro Processor 와 I/O Device 를 내장하며,
Advertisements

컴퓨터시스템구조론 제 7 장 입력 / 출력 (Input/Output : I/O). 7.1 외부 장치들 (External Devices)  I/O 모듈에 접속  종류 인간이 읽을 수 있는 장치 : 비디오 단말기, 프린터, 등 기계가 읽을 수 있는 장치 : 자기 디스크,
Embedded System Hardware와 software가 조합되어 특정한 목적을 수행하는 시스템
컴퓨터와 인터넷.
Ch 2. 하드웨어 환경.
16장 X.25 패킷 교환망 16.1 X.25 계층 구조 16.2 패킷 계층 프로토콜 16.3 요약.
패러럴 포트를 이용한 Text LCD 제어 6월 17일 허정수 나선웅.
인터럽트 종류 인터럽트 요구시 I/O장치 인식 방법
제 2장 컴퓨터 구조.
4장 마이크로프로세서 외부 신호 Slide 1 (of 22).
4. 컴퓨터 조직 순천향대학교 정보기술공학부 이상정.
6장 마이크로프로세서 메모리 및 입출력장치 인터페이스.
13장. 시스템 버스 다루는 내용 시스템 버스의 개념 다중버스 계층 구조 버스 중재.
제7장 버스와 입출력.
10장. 인터럽트 Lecture #10.
24 장 TCP/IP 24.1 개요 24.2 네트워크층 24.3 주소 지정 24.4 서브넷팅틍
08. 디바이스 드라이버의 읽기와 쓰기 김진홍
12장. 제어 장치 다루는 내용 CPU속의 제어장치 마이크로 연산 제어장치의 동작.
제 3장 컴퓨터 시스템의 구조.
컴퓨터 구조.
4장. 컴퓨터 시스템의 구성과 기능 다루는 내용 컴퓨터 분해를 통한 본체 살펴보기 컴퓨터 구성요소 컴퓨터의 기능
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
Lecture #9 제7장 시스템 버스, I/O 및 인터럽트.
9장. 제어장치 Lecture #9.
Chapter 02 시스템 구조(System Structure)
DK-128 ADC 실습 아이티즌 기술연구소
부트로더와 Self Programming
10 장 데이터 링크 제어(Data Link Control)
DK-128 실습 EEPROM 제어 아이티즌 기술연구소
타이머카운터 사용법 휴먼네트웍스 기술연구소
4. LAN의 배선체계 (3장. LAN: Local Area Network)
PSW : PROGRAM STATUS WORD
ATmega128 FND 실습 휴먼네트웍스 기술연구소
DK-128 FND 실습 아이티즌 기술연구소 김태성 연구원
TCP/IP Socket Programming…
Microprocessor I/O Port & CLCD Noh Jin-Seok.
17장 X.25 패킷 교환망 17.1 X.25 계층 17.2 X.25와 관련된 기타 프로토콜 17.3 요약.
2주차 운영체제-프로세스 2-B 장정훈.
디지털회로설계 (15주차) 17. 시프트 레지스터와 카운터 18. 멀티바이브레이터 * RAM & ROM.
디 지 털 공 학 한국폴리텍V대학.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
컴퓨터시스템 구조 Computer System Architecture.
DK-128 FND 실습 아이티즌 기술연구소
논리회로 설계 및 실험 5주차.
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
DK-128 실습 타이머카운터 사용법 아이티즌 기술연구소
2. 컴퓨터 시스템의 동작 명령어 구성 연산 종류와 기능에 따라 오퍼랜드 부분을 다양하게 활용 가능.
패러럴 포트를 이용한 Text LCD 제어 6월 17일 허정수 나선웅.
13장 CTC and DMA Slide 1 (of 10).
9 입출력 시스템과 디스크 관리.
ARM Development Suite v1.2
10 장 데이터 링크 제어(Data Link Control)
UNIT 25 SPI 로봇 SW 교육원 조용수.
10 장 데이터 링크 제어(Data Link Control)
ATmega128의 특징 아이티즌 기술연구소
DK-128 직렬통신 실습 아이티즌 기술연구소
AT MEGA 128 기초와 응용 I 기본적인 구조.
UNIT 25 SPI 로봇 SW 교육원 조용수.
4대자원관리(입출력장치) 박정환.
컴퓨터구조 연습문제 발표 Chapter 3 - 컴퓨터의 기능 및 상호연결의 최상위 관점
논리회로 설계 및 실험 4주차.
시리얼 UART 정리 정보통신•컴퓨터 공학부 송명규
System Security Operating System.
AdcRead API 함수 분석 마이크로프로세서.
13장. 시스템 버스 다루는 내용 시스템 버스의 개념 다중버스 계층 구조 버스 중재.
제 4 장 Record.
06. 디바이스의 등록과 해제 김진홍
Completion Port기반의 채팅프로그램
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
2. 프로세스 B 안우진 - 운영체제 -.
Presentation transcript:

입출력 서브 시스템(I/O Subsystem) 개요(Overview) 컴퓨터의 2 가지 주요 기능 ① I/O ② 처리(processing) 커널의 I/O Subsystem: I/O 장치 및 그 제어 기법의 다양성 해결 device drivers로 캡슐화(encapsulation)하여 일관된 I/O 서브 시스템 제공 I/O 하드웨어(I/O Hardware) ~ Bus : 와이어 들의 모임: p.403(F12.1) dasy chain: A는 B로, B는 C로 연결 PCI(Peripheral Component Interconnect) bus Expansion bus: 느린 장치들 연결 SCSI(Small Computer Systems Interface) bus: 작은 컴퓨터(a host adaptor) 제어기(controller) port, bus, device들을 동작시키는 전자회로들의 모임 데이터와 제어 신호를 위한 레지스터들로 구성됨 2000 운영체제

I/O 하드웨어(I/O Hardware) ~ 자체 지원 제어기(built-in controller) disk drive에 붙어 있는 circuit board이 자체 지원 disk controller임 SCSI, IDE(Integrated Device Electronics)등의 bus에 연결되기 위한 디스크 쪽의 프로토콜을 구현 microcode와 processor 가짐:bad-sector mapping, prefetching, buffering, caching 위해 프로세서와 제어기 사이의 처리: p403(F12.1) 프로세서는 제어기의 레지스터에 비트 패턴(bit pattern)을 read/write하여 제어기와 통신 ① I/O 명령으로 ② memory-mapped I/O로 PC 호환기종들은 ①, ② 모두 지원 (예) graphics controller: I/O port(3D0-3DF) + memory-mapped region for screen I/O port 레지스터들 status: 호스트가 read, 명령 수행 완료, 바이트 데이터 준비됨, 장치 오류 등 control: 호스트가 write, 명령 수행 시작, 모드 변경 (full/half duplex, parity checking, 7 또는 8 bits wordlength, speed 등) data-in: host가 read, input data-out: host가 write, output 2000 운영체제

I/O 하드웨어(I/O Hardware) ~ 폴링(Polling) handshaking: 호스트와 제어기 사이의 간단한 상호작용 프로토콜 생산자-소비자 관계조정 위해 busy bit과 ready bit 이용 handshaking 절차: 각 바이트마다 다음 반복 ① 호스트는 busy bit가 clear될 때까지 busy bit 계속 조사 = 폴링 또는 바쁜 대기(busy waiting) ② 호스트는command register에 write bit를 설정하고 data-out register에 한 바이트를 write ③ 호스트는 command-ready bit를 설정 ④ 제어기는 command-ready bit가 설정되었음을 아는 즉시 busy bit를 설정 ⑤ 제어기는 command register를 읽어 장치에 출력 ⑥ 제어기는 command-ready bit, status register의 error bit, busy bit를 모두 clear 폴링의 구현: 3 CPU-명령 사이클로 충분하므로 간단하고 효율적 ① 장치 제어기의 status register 읽기 ② status bit 추출위해 Logical-AND(AND masking) ③ 추출한 status bit가 zero가 아니면 branch 그러나 계속 폴링을 해 보아도 장치가 사용가능하지 않은 경우 CPU를 낭비하게 되어 비효율적이므로 대신 interrupt라는 h/w 기법을 이용하여 제어기가 CPU에 I/O 완료를 알리도록 하는 것이 더 효율적임 2000 운영체제

I/O 하드웨어(I/O Hardware) ~ 인터럽트(Interrupts) 인터럽트 절차: p407(F12.3) ① CPU는 매 명령 수행 후 "interrupt request line"을 조사 ② 만일 제어기로부터의 signal이 탐지되면 현 상태를 저장 ③ 메모리의 고정 위치에 있는 interrupt handler의 위치로 jump ④ 인터럽트 원인 파악 ⑤ 인터럽트 처리 ⑥ 인터럽트로부터 복귀 과거의 interrupt 기법은 I/O 완료와 같은 비동기적(asynchronous) 사건(event)을 처리하기만 하면 되었으나 현대의 interrupt 기법은 아래와 같은 세련된 기능들을 요구함 ① 임계구역(critical section) 처리 동안 interrupt 처리를 지연시킴 ② 장치를 일일이 폴링하지 않고도 해당 interrupt handler를 효율적으로 찾아감 ③ 다중레벨 인터럽트(multilevel intterupts) ①의 해법: 두 개의 인터럽트 요구 라인(interrupt request lines) nonmaskable interrupt: error 상황의 인터럽트 maskable interrupt: 장치 제어기가 이용하는 인터럽트들 임계구역 실행 전에 turn off 될 수 있음 p408(F12.4) 0-32: nonmaskable 32-255: maskable 2000 운영체제

I/O 하드웨어(I/O Hardware) ~ ②의 해법: 벡터 인터럽트(vectored interrupt) 특정 interrupt가 보낸 주소값은 각 interrupt-handling 루틴의 기억장소 내의 주소를 담고 있는 interrupt vector table의 offset으로 이용되므로 폴링 필요 없음 ③의 해법: 인터럽트 우선순위 레벨(interrupt priority level) 우선순위 레벨에 따라 우선 순위가 낮은 인터럽트를 선점함으로써 CPU로 하여금 모든 인터럽트를 masking 하지 않고서도 우선순위가 낮은 인터럽트를 지연시킴 인터럽트로 처리하는 경우들 입출력 인터럽트(I/O interrupts) 예외(exceptions): error 상황 가상기억장치 페이징(virtual memory paging):page fault exception 시스템 호출(system calls): trap(software interrupt)이며 낮은 우선순위 가짐 커널안의 흐름제어: 높은 우선순위 스레드와 낮은 우선순위의 스레드 사이의 제어 현대의 OS는 다음을 이용 interrupts: 비동기적 사건을 처리하며 supervisor-mode로의 trap하기 위해 interrupt priorities: 중요한 작업이 우선적으로 수행되게 하려고 2000 운영체제

Interrupt-drive I/O Cycle 2000 운영체제

I/O 하드웨어(I/O Hardware) ~ DMA(Direct Memory Access) PIO(Programmed I/O) 는 제어기의 레지스터에 한순간에 한 바이트씩 전송 DMA 전송: DMA 제어기(DMA controller) 이용 (예) PC의 bus-mastering I/O boards 호스트는 DMA command block의 주소를 DMA 제어기에 기록 DMA command block에는 근원지 주소(source pointer) 목적지 주소(destination pointer) 전송할 바이트 수 DMA는 메모리 버스에 주소를 설정하고 CPU의 참견없이 전송을 시작 DMA 제어기와 장치 제어기 사이의 handshaking DMA-request와 DMA-acknowledgement의 두 H/W wires 이용, p407(F12.5) ① 장치 제어기는 전송할 데이터가 준비되면 DMA-request wire에 signal 보냄 ② DMA 제어기는 메모리 버스를 확보한 후 memory address wires에 주소를 설정한 다음DMA-acknowledge wire에 signal 보냄 ③ 장치 제어가는 DMA-Acknowledge signal을 받은 후 데이터를 메모리로 전송하고 나서 DMA-request signal을 제거함 ④ 전체 전송이 끝나면 DMA 제어기는 CPU에 I/O 완료 interrupt를 보냄 2000 운영체제

I/O 하드웨어(I/O Hardware) ~ Cycle stealing(DMA가 메모리 버스를 장악한 동안 CPU는 메모리 접근할 수 없고 단지 cache만 접근 가능)으로 CPU의 계산이 다소 느려지나 데이터 전송의 부담을 없애(offloading) 전체 시스템 성능은 향상됨 DMA: 물리주소 이용한 DMA DVMA(Direct Virtual Memory Access): 가상 주소 이용한 DMA (가상주소는 물리주소로 변환됨) Protected mode kernels: 직접 장치 제어기에 명령할 수 없음(일반적인 추세) 접근 위반으로부터 데이터 보호, crash 방지하나 OS은 H/W를 다룰 수 있는 하위 레벨 함수를 이용할 수 있게 하는 함수를 지원해야 함 Unprotected kernels: 직접 장치 제어기에 접근할 수 있음 커널과의 통신, 문맥교환, 커널 계층을 피할 수 있어서 좋은 성능을 얻을 수 있으나 보안과 안정성이 떨어짐) 2000 운영체제

I/O 하드웨어(I/O Hardware) OS의 I/O 관련된 주요 개념 버스 제어기 입출력 포트와 그 레지스터들 호스트와 제어기 사이의 handshaking 폴링 또는 인터럽트에 의한 handshaking 대량전송에서 DMA 제어기에게 I/O 부담을 떠넘김 OS는 응용 프로그램에게 편리하고 일관성 있는 I/O interface 제공해야 함 각 장치의 능력, 제어 비트, 호스트와의 상호작용 프로토콜이 매우 다양하므로 새 장치 추가되어도 OS 고치지 않을 수 있도록 해야 함 2000 운영체제

Six step process to perform DMA transfer 2000 운영체제