티스토리 뷰
I/O를 관리하기 위해서 CPU를 통해 관리하는 방법을 사용해 왔다.
하지만 이러한 인터럽트 방식은 CPU 연산에 방해가 된다.
CPU와 독립적으로 작동하기 위해 DMA 방식과 I/O processor 방식을 사용한다.
먼저 CPU를 사용해 관리하는 방법은 프로그램에 의한 I/O와 인터럽트에 의한 I/O 방식이 존재한다.
프로그램에 의한 I/O는 메모리에 있는 명령을 이용해 CPU를 거쳐 I/O를 받는다.
polling 방식을 이용하기 때문에 프로세서의 시간을 낭비하고 효율이 떨어진다.
polling 방식이란 하드웨어 장치의 레지스터를 주기적으로 읽는 방법이다. 주기적으로 실행되기 때문에 효율성이 떨어진다.
인터럽트에 의한 I/O는 CPU에 인터럽트를 걸어 진행중이던 작업을 중단하고 인터럽트를 처리하는 방식이다.
Direct Memory Access
많은 양의 데이터를 이동해야 한다면 CPU에게 많은 인터럽트를 걸게 되므로 오버헤드가 발생한다. 오버헤드를 줄이기 위해 CPU의 개입 없이 I/O와 메모리 사이에 데이터를 이동하도록 것을 DMA라고 한다.
DMA의 종류는
1.Cycle Stealing : DMA와 CPU가 버스(bus)를 공유하는 방식. CPU가 버스를 사용하지 않을 때만 접근한다.
2.Brust Mode : DMA가 버스를 점유. 동작 완료 후 버스 반납.
I/O processor
I/O 채널이라고도 하는 방식으로 CPU나 DMA대신 독립된 입출력 프로세서인 채널에 의해 입출력을 관리한다.
채널의 종류는
1.selector channel : 고속 입출력장치를 한번에 하나씩 데이터를 주기억장치에 보내는 방식.
2.multiplexer channel : 저속 입출력장치를 동시에 많은 데이터를 주기억장치에 보내는 방식.
3.block multiplexer channel : 동시에 여러 I/O 처리.블럭 단위.
4.byte multiplexer channel : 한개의 채널에 여러 개의 입출력 장치를 연결해 시분할 공유하는 방식.
I/O processor 구성요소는
1.프로세서 : I/O명령어들을 실행할 수 있는 프로세서.
2.지역 기억장치 : 대용량 데이터 블록들을 저장할 수 있는 저장소.
3.버스 인터페이스 : 시스템 버스에 대한 인터페이스
4.버스 중재회로 : 버스 마스터 및 버스 중재기
'컴퓨터 공학' 카테고리의 다른 글
메모리 계층 구조 (0) | 2020.10.04 |
---|---|
CPU 스케쥴링 알고리즘 (0) | 2020.10.04 |
프로세스 와 쓰레드 (0) | 2020.10.04 |
인터럽트 & 시스템 콜 (0) | 2020.10.04 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 회귀
- AVB
- 차량용 이더넷
- 로지스틱회귀
- json2html
- 크로스 엔트로피
- 딥러닝
- CAN-FD
- AVTP
- porks
- 논문 잘 쓰는법
- 머신러닝
- many-to-many
- SVM
- Python
- PCA
- 차량 네트워크
- automotive
- HTML
- automotive ethernet
- 케라스
- AE
- problem statement
- 이상탐지
- one-to-many
- cuckoo
- Ethernet
- 단순선형회귀
- SOME/IP
- many-to-one
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함