시스템 BUS, I/O 장치 제어
시스템 BUS
CPU에 비해 입출력 장치들이 느리고, 직접 컨트롤하기에는 입출력 장치들이 너무나 다양하므로 이것들을 중간에서 제어하는 역할을 하는 시스템 BUS를 고안해 냈다.
많은 레지스터들 사이에서 정보 전송을 위한 경로 역할을 함
한 번에 하나의 전송만이 이루어지도록 제어신호를 이용해 레지스터를 선별하는 공통의 버스를 이용함.
외부 주변 장치(입출력 장치) 및 통신의 주체로서 정보의 입출력을 관장함.
1 : 메모리 버스
데이터, 주소, 읽기/쓰기 정보 전송
2 : I/O 버스
입출력 장치로 정보 주고받음.
3 : 데이터 버스
시스템 모듈 간의 데이터 이동 경로 제공. 주로 32 ,64, 128 또는 그 이상의 분리된 선들로 구성. 선의 수는 한 번에 전송할 수 있는 비트 수를 결정
4 : 주소 버스
데이터의 근원지나 목적지의 일정한 메모리 주소 전달. I/O 포트 지정을 위해 사용.
주소 버스의 폭이 기억 장치의 용량을 결정. 32개의 주소 버스를 지닌 컴퓨터 시스템은 2^32개의 메모리 위치 할당 가능.
5 : 제어 버스
데이터 버스와 주소 버스를 제어
6 : 동기식 버스
정해진 시간에 데이터를 전송하는 법. 버스가 가지고 있는 Clock을 시간의 기준으로 함.
장점 : 빠름. 논리 회로 간단.
단점 : 느린 장비도 Clock에 맞춰야 한다는 점에서 시간 낭비 발생.
7 : 비동기식 버스
시간을 따로 정하지 않음. 데이터 주고받을 준비가 되어있는지 확인하는 핸드쉐이킹 프로토콜을 사용하여 수신 측에서 준비가 되면 바로 전송하는 방식.
장점 : 시간 낭비 적음.
단점 : 회로 구성 복잡. 핸드 쉐이킹 과정 때문에 느림.
시스템 Bus는 공용 선이기 때문에 한쪽이 데이터 선을 점령하면 다른 쪽에서 신호 중첩을 유발하지 않게 하기 위해 사용을 못하게 됨.
-> 이점을 보완하기 위해 등장한
점대점 상호연결방식
QPI(Quick Path Interconnect)
레이어로 구성된 프로토콜 구조. 각 레이어에서 하는 일을 구분.
고속, 고효율 패킷 기반의 전송방식 사용. 인텔의 i7 데스크톱 프로세서 이후로 사용됨.
PCle(Peripheral Component Interconnect Express)
높은 용량으로 기가 인터넷과 같은 빠른 데이터 속도의 I/O 디바이스를 지원.
핀 수가 적고 물리적 면적이 작으며 상세한 오류 검출과 보고 구조등의 장점. I/O 가상화 지원.
CPU의 I/O 장치 제어법
CPU가 직접 접근하기보다 다양한 제어기를 통해 제어한다.
1) 프로그램된 I/O 제어
CPU가 반복적으로 I/O 장치 상태를 검사하여 동작을 처리
폴링 방식
상태 비트를 주기적으로 검사
CPU가 자기에게 하달된 계산들을 확인하는 것. 간단하나 너무 자주 확인하면 효율이 떨어짐.
2) 인터럽트 기반 : 프로그램된 I/O의 문제점 보완
1 : 다중 인터럽트 방식
별도의 선을 이용해 하나의 장치와 CPU를 연결
장점 : 인터럽트 요구하는 장치를 쉽게 찾음.
단점 : 하드웨어 구성 복잡. CPU가 가지고 있는 인터럽트 포트 수만큼 접속 가능한 장치 수가 제한됨.
2 : 데이지 체인 방식
인터럽트 발생하는 모든 장치를 한 개의 회선에 직렬연결.
장점 : 하드웨어 구성 간단
단점 : CPU에 가까이 붙어있는 쪽이 인터럽트가 우선 처리됨.
3 : 소프트웨어 폴링 방식
CPU가 모든 제어기들에 접속된 TEST I/O 선을 이용해 인터럽트 요구한 장치를 검사.
장점 : 하드웨어가 간단
단점 : 상대적으로 시간이 많이 걸림.
DMA를 이용한 I/O
Direct Memory Access
CPU가 DMA에게 명령 내리고 DMA는 해당하는 장비로부터 데이터를 읽어 들여 메모리로 가져다 줌.
일 끝나면 DMA가 CPU에게 일 끝났다고 알려줌(인터럽트 발생)
그럼 CPU는 메모리로부터 바로 데이터 사용 가능.
장점 : 대량의 데이터를 입출력하기에 적절함.
단점 : 시스템 버스를 DMA가 너무 많이 사용하는 문제가 생김
보완법
1 : DMA 제어기 하단에 입출력 제어기 연결
2 : 입출력 버스를 별도로 둠.
DMA가 입출력 버스를 통해 데이터를 받아오고 시스템 버스를 이용해 주기억 장치에 데이터를 저장함.
'CS 공부 > 컴퓨터 구조' 카테고리의 다른 글
컴퓨터 구조 15 : 프로세서와 프로세스, 프로세서간 중재 (0) | 2022.02.28 |
---|---|
컴퓨터 구조 14 : 병렬 처리, 멀티 프로세서 (0) | 2022.02.23 |
컴퓨터 구조 12 : 캐시 메모리, 가상 메모리, 메모리 관리 하드웨어 (0) | 2022.01.29 |
컴퓨터 구조 11 : 메모리 계층 구조 (0) | 2022.01.28 |
컴퓨터 구조 10 : 파이프 라인 (0) | 2022.01.25 |