CHAPTER 11 시스템 버스 (SYSTEM BUS)
버스란 ? 2 버스 컴퓨터의 컴포넌트 사이에 정보를 전송하기 위해, 전기적 신호가 지나가는 라인들의 집합 Data bus Address bus Control bus 내부 버스와 외부 버스 ( 책과 위키피디어의 관점 다름 ) 내부 버스 (internal bus) 메모리 버스, 시스템 버스, Front-side bus, 로칼 버스로 불림 컴퓨터의 내부 구성 요소들을 연결하는 버스 CPU, memory, 디스크, 모니터 등 외부 버스 (external bus) 컴퓨터에 외부 장치를 연결하기 위한 버스 확장 버스 (expansion bus), 프린터, 모뎀 등을 연결 병렬 버스와 직렬 버스 병렬 버스 : 여러 라인으로 동시에 여러 비트의 정보 전송 동기를 맞추어 작동하는 회로에서 사용 (synchronous circuits) 데이터 전송 속도가 증가할 수록, 주고 받는 두 요소 간에 클럭이 도달하는 시간이 달라서 생기는 clock skew(timing skew), 전 력 소모량 증가, 신호 간섭, 병렬 라인 사이의 혼선 (cross talk) 으로 고속화 하기 힘듬 직렬 버스 : 한번에 한 비트씩 clock skew, cross talk 가 근본적으로 없기 때문에, 고속 전송에 적합 USB, Serial ATA, FireWire 대부분의 최신 직렬 버스는 daisy chain 방식이나 hub 방식
computer add on cards 를 위한 bus standard 의 진화 3 ISA MCA EISA VESA Local PCIPCI-express 이들은 모두 컴퓨터의 기본 요소, CPU, memory, I/O device 등을 연결하는 시스템 버스이며, 메인보 드에 장착될 카드를 위해 설계됨 , 486PC 1991 IBM XT/AT 8086, ~1996(?) 486PC 1993 Pentium PC 1987~1990 년대 중반 PS/ Pentium PC
ISA(Industry Standard Architecture) 버스 IBM PC/XT/AT 에 사용된 버스 체계 (AT bus 라고도 불림 ) CPU 의 신호 라인들을 직접 주변 장치들과 연결하기 위한 버스 체계 1981 년 개발된 버스 체계 CPU 클럭과 동기화 (4.77, 8 Mhz), 8~16 bit 데이터 전송 표준 확장 슬롯에 플러그인 (plug-in card) 또는 board 삽입 현재의 PC 의 주기판에서도 ISA 버스 슬롯 지원 상업용 / 군용으로 개발된 ISA 카드 지원을 위해 4 CPU (8088, 80286) Memory Interrupt controller DMA controller address(20bit~24bit), data(8~16 비트 ), control lines 확장 슬롯 IBM XT/AT 컴퓨터에 사용된 버스 ISA 버스
EISA (Extended Industry Standard Architecture) 버스 규격 16 비트의 ISA 버스를 32 비트로 확장한 버스 규격 IBM 의 트레이트 마크인 ISA 의 권리를 침해하지 않기 위 해 EISA 로 이름 붙임 32 비트 데이터버스, 32 비트 주소선 8.33Mhz 의 클럭 32 비트 버스 체계이므로 8.33*4 = 약 33MB/sec, 실제 20MB/sec 멀티프로세서 가능, 버스 마스트링 가능, 주로 SCSI 어댑터나 네트워크 어댑터 누가, 언제 1988 년, IBM PC/AT 호환기종을 만드는 gang of nine 으로 불리는 9 개의 회사 컨소시엄에서 개발 AST Research, Compaq computer( 주도 ), Epson, HP, NEC, Olivetti, Tandy, WYSE, Zenith IBM 에서는 ISA 버스를 확장한 MCA(micro channel architecture) 버스를 가진 새로운 PC 인 PS2 개발 왜 ? CPU 에 10, 12, 16MHz 의 고속 클럭에 ISA 버스에 연결된 느린 장치들이 부적합, 불안정 결국 장치를 연결하는 버스의 클럭을 CPU 클럭과 분리 을 장착한 386 PC 와 함께 gang of nine( 컴팩이 주도 ) 이 EISA 버스 체계 개발 을 장착한 PC 에서 처음으로 EISA 버스 선보임 5
VESA (Video Electronics Standards Association) local bus 규격 VLB, VL bus, 112 개의 신호 체계 CPU 의 클럭 주파수 (33MHz) 그대로 활용 32 bit memory-mapped I/O 와 DMA ISA - port-mapped I/O, I/O 포트의 주소로 입출력 장치를 인식하고 통신 언제 1992 년도 왜 1990 년대 초반, ISA 버스의 I/O bandwidth 문제로 PC 의 그래픽의 병목현상 발생 (GUI 발 달 ) 여러 회사들이 자체 로칼 버스를 메인보드에 구현. 그래픽 카드가 직접 메인 메모리 접 근, 추후 VLB 표준으로 발전 VLB 의 목적은 고성능 그래픽을 위한 로칼 버스 하드 디스크 등 mass storage 도 덩달아 급성장 문제 80486CPU 의 메모리 설계에 종속. Pentium CPU 에서는 거의 사용할 수 없게 됨 6
7
PCI(Peripheral Component Interconnect) 버스 8 규격 PCI local bus(local computer bus) 컴퓨터에 하드웨어 장치들을 덧붙이는 버스 특정 CPU 에 종속적이지 않음 장치들은 CPU 버스에 직접 연결된 것처럼 동작 PCI 장치 구성 평면 장치 (planer device) : 메인 보드에 칩으로 장착 확장 카드 형식 : 확장 슬롯에 카드로 장작 주소버스와 데이터 버스는 신호를 공유 시분할 다중화 적은 신호선 32 비트 PCI : 62 개의 신호 체계 64 비트 PCI : 32 bit, 64 bit, 33.33MHz, 32 비트 PCI 경우 최대 133MB/s(33.33x32) CPU bridge PCI bus Bus mastering 지원 : CPU 와 독자적으로 작업 처리 누가, 왜 Intel, 1993 년 CPU 에 종속적이지 않은 버스 구조 필요. 고속 병렬 버스 필요 Bus mastering 지원 : CPU 와 독자적으로 작업 처리
PCI 버스와 PCI Bridge 9
PCI Express (Peripheral Component Interconnect Express) 규격 PCIe 로 표기 고속 직렬 버스 확장 버스 표준 병렬 라인의 timing skew 문제 해결 ( 라인들이 다른 PCB 판에 배치될 때 발생 ) 을 위해, PCI, PCI-X, AGP 버스 표준 대체 PCI : shared parallel bus architecture PCI 호스트와 모든 장치들이 버스 공유 PCIe: point-to-point 연결 (topology) 방식 가장 최신 PCI Express 4.0 16GT/sec(Gigatransfers per second) GT 를 사용하는 이유 : 각 transfer 는 overhead bits 를 포함하기 때문 직렬 통신 시에 8 비트 전송을 위해 실제 10 비트 전송 누가, 왜 2004 년부터, Intel, Dell, HP, IBM VLB 이후 고속 그래픽에 사용된 AGP 버스를 대체함 10
11 PCIe 버스에 노드의 연결. root complex 는 CPU 를 대신해 서 장치에 작업 요청을 내린다. CPUMem 독립된 직렬 (serial) 링크 bridge ( 하나의 PCI 장치 ) PCI bridge 는 연결된 PCI 장치들을 검색하고 PCI-to-PCI 사 이의 장치들을 연결 공유 버스 구조 point-to-point 연결 구조
버스의 폭과 대역폭 대역폭 단위 시간당 전송 가능한 데이터 양 bus clock cycle 에 의해 결정 예 ) 50ns 20 MHz, bus width = 64 bit Bandwidth = 8 byte / (50 × sec) = 160 [Mbytes/sec] 12
시스템 버스란 ? 13 정의 Computer system 의 구성 장치들을 연결하고 교환할 각종 정보들을 전송하는 공유 전송 매체
버스의 유형별 분류 전용 버스 오직 한 목적으로만 사용됨 다중화 버스 하나의 신호 혹은 버스를 여러 목적으로 사용 버스 선의 수를 줄이기 위한 목적 공간과 비용 절약 주로 시분할 다중화 (time multiplexing) 제어 회로 복잡, 성능 저하 가능성 사례 주소와 데이터 신호를 하나의 버스로 다중화 14
시스템 버스의 기능별 분류 15 Data bus Address bus Control bus
제어 버스의 신호 사례 16 Memory read/write I/O read/write Transfer acknowledge Bus request/grant/busy arbitration bus Interrupt request/acknowledge interrupt bus Clock Reset
System Bus (4) 17 기본 동작 Write operation Bus master 사용권 획득 Address bus 를 통해 address 전달 + data bus 에 data 전달 + control bus 에 write signal 전달 Read operation Bus master 사용권 획득 Address bus 를 통해 address 전달 + control bus 에 read signal 전달 Wait data transfer
동기식 버스와 비동기식 버스 버스 타이밍에 의한 구분 두 요소간의 정보 전송을 위해 동기식 버스 (Synchronous bus) 시스템 버스의 공통 버스 클럭 (common bus clock) 사용 시스템 버스에 연결된 모든 하드웨어 요소들에 공통적 사용 장점 회로 구성 단순 일반적으로 고속 전송 가능 단점 가장 느린 연산 혹은 동작을 기준으로 버스 타이밍 설계되므로 어떤 경우에 불필요한 대기 시간 존재 공통 클럭을 발생시키는 소스에서 클럭이 도달하는 장치들의 거리가 다르기 때문에 장치들 사이에 clock skew 발생. -> 클럭을 일정 이상 고속화하지 못함. 사례 : Intel CPU 비동기식 버스 (Asynchronous bus) 공통 클럭 없음, hand shaking 방식 버스에 연결된 장치들의 속도가 모두 다른 경우에 적합 느린 장치 때문에 동기식 버스에서 발생하는 낭비되는 시간은 없음 주로 느린 장치에 이용 장점 공통 클럭이 없으므로 느린 장치에 대한 낭비 시간 없음 단점 회로 구성 복잡 사례 : Motorola MC 동기식 버스는 모든 사람들이 종 소리를 들으면서 작업하는 예. 다음 종이 울리기 전에 작업 완료 필요. 그러나 종이 울리는 간격이 짧아지면, 멀리 있는 사람은 종소리를 늦게 될 가 능성.
Synchronous Bus Timing 19 CPU 와 Memory 사례
Asynchronous Bus Timing 20
다중 버스 계층 구조 21 다중 버스 계층 구조의 목 적 시스템 버스에 연결되는 장 치의 동작 속도가 서로 다 름, 효율적인 연결이 되도 록 버스 구조 설계 단일 버스 하나의 버스를 모두 컴퓨터 구성 요소들 공유 한 번에 하나의 전송 밖에 할 수 없음. 동시에 여러 전 송 불가 버스 병목 발생 가능성 높음 버스의 속도를 증가하기 힘 듬. 느린 장치 때문 구성 비용 저렴
22 2-layer multiple bus
3-layer multiple-bus Hierarchy 23
24
버스 중재 (Bus Arbitration) 25 버스 마스터 (bus master) 버스에 연결되어 버스를 주도적으로 사용할 수 있는 하드웨어 구성 요소 initiate bus transaction 버스 제어, 주소와 제어 정보를 버스에 흘린다. CPU, DMA Controller 버스 슬레이브 (bus slave) 버스 마스터와 데이터를 주고 받는 상대 구성 요소 메모리, 캐시 입출력 장치 버스에서의 데이터 입출력 버스 마스터가 버스에 원하는 신호를 전송하면 버스 슬레이브가 응답하여 데이터 입출 력 진행 Bus contention 버스 중재 (Bus arbitration) 왜 ? 하나의 버스에 버스 마스터가 2 개 이상인 경우, 서로 버스를 사용하려고 하는 경우 중재 필요 하나의 버스를 사용하려는 두 개 이상의 버스 마스터가 있는 경우 중재를 통해 하나의 버스 마스 터에게 버스 사용권 허락
중앙 집중식 버스 중재 26 버스 중재기 (Arbiter) 이용하는 방법 중앙 집중 병렬식, 고정 우선 순위 중재 중앙 집중 직렬 (Daisy chain) 중재
분산식 버스 중재 27 버스 마스터가 버스 중재기를 독립적으로 소유한 형태 버스 마스터의 우선 순위와 연계됨 더 높은 우선 순위의 버스 마스터가 버스를 사용하지 않을 때만 버스 사용 신청 각능 동작 과정 각 버스 마스터는 BREQ 를 발생시킨다. BGNT 가 수신되면 버스 마스터는 BBUSY 신호를 발생시켜 버스 사용 중임을 알린다.
Bus Arbitration (10) 28 Decentralized serial arbitration DBGNT (daisy-chained bus grant signal)
폴링 29 하드웨어 폴링 버스 중재기가 버스 마스터가 검사 (polling) n 개의 폴링선 -> 2 n 개의 코드로 2 n 개의 버스 마스터 지정 가능 방식 버스 마스터가 폴링 선을 이용하여 1 에서 2 n 까지 버스 필요한지 폴링 버스가 필요한 버스 마스터는 BREQ 신호 발생 버스 사용권이 허락되고 BBUSY 활성