Hi there!

I am a student studying computer science.

컴퓨터 구조

컴퓨터 구조 14장 - Bus

만능성구 2020. 6. 18. 21:06
728x90

버스 시스템 개요

Bus개념의 시작

– system내의 모듈에 공유되는 전기적 신호선

     • 모듈이 연결될 수 있는 여러 연결점을 가짐

     • 같은 특성의 병렬 전기적 와이어로 구성

     • 한 순간에 하나의 병렬 신호만 사용 모두 공유하고 있기 때문에

     • Data Bus, Address Bus, Control Bus

– 모듈 사이의 병렬 데이터 전송을 공유 Bus 규약

     • 공통 특성의 선들로 구성된 Bus들의 집합

     • Bus 사양: 물리적 레이어부터 트랜잭션 프로토콜까지

• 최근의 Bus 정의

system내외부 모듈 사이에 데이터 전송을 위한 공유되는 통신 링크 규약

     • 병렬 또는 직렬 연결(ex USB)

     • 멀티드롭(Multidrop), 데이지 체인, 스위치드 허브 연결

     • 시스템 내부 모듈 연결 또는 외부장치 연결

– 네트워크 프로토콜과 경계가 흐리지고 있음

     • 이더넷(이와 유사하게 특성으로 구성되어 있다)

• 버스 사양

– 선들의 전기적 규격

– 선들의 길이, 저항과 커넥터의 형태와 같은 물리적/기계적 특징

– 클럭과 신호들의 타이밍

– 버스 요청및 승인, 명령의 전달, 데이터의 전송과 같은 트랜잭션

• PC 버스의 예

- 1981년: ISA 버스                            

- 1984년: IBM AT 버스           

- 1988년: EISA 버스                         

- 1992년 VESA 버스                            그래픽 처리하는 모니터의 등장으로 빠르게 데이터를 전송

- 1992년 ~ 2002년: PCI 버스, PCI-X        병렬연결 Bus

- 1997년: AGP                                    많은 Data를 전송하기 위해

- 2003 PCIe 1.0                                   Serial Bus

- 2010 PCIe 3.0

- 2017 PCIe 4.0

• 장점

– 새로운 장치가 쉽게 연결이 된다.

– 표준 버스 규격의 장치는 다양한 시스템에 자유롭게 연결된다.

– 시스템 연결 비용이 적다.

• 단점

공유자원이다.

– 통신 병목 현상을 발생시킨다.

       • 대역폭이 최대 입출력 성능을 제한한다.

• 최대 버스 속도의 제한 요소

– 버스의 길이

– 버스상의 장치의 수

– 지원하는 다양한 장치 형태

• 다양한 지연 시간

다양한 데이터 전송 속도


Bus Signal and Communication Protocols

Control : data 전송방향, data 크기, bus제어 등 해결

Address : CPU, DMAS가 보내는 주소

Data : Data~

 

synchronus

clock에 의해 동기되어서 data전송이 이루어진다.

clock 1이라는 시간에 address가 available하다 그래서 address를 읽으면 data를 읽는다. 5clock에 data읽었네

 

data전송해야 돼~ 1

주소보내 2

 ack 받으면 ㅇ

ack신호 받으면서 왔다리갔다리


마스터 (Master)와 슬레이브(Slave)    // 대표적으로 CPU와 MEMORY

• 버스 트랜잭션(처리? 거래?)은 두 부분으로 구성된다.

– 요청(대표적으로 CPU)  <- 마스터의 명령

– 데이터의 전송 -> 동작

:요청에 의해 수동적으로 Memory가 동작을 한다 전송

 

• 마스터는 버스 트랜잭션을 시작한다.

– 주소와 명령어를 보냄으로써 트랜잭션을 시작

 

• 슬레이브는 명령에 따라 반응한다.

– 마스터가 데이터를 요청하면 데이터를 보낸다.

– 마스터가 데이터를 보내면 데이터를 받는다.

 

• 간단한 시스템

– 프로세서가 버스에서의 유일한 마스터

– 모든 버스 트랙잭션을 프로세서가 관장

– 단점: 프로세서가 모든 트랜잭션에 관여 (입출력 경우 CPU부담, 그래서 DMAC가 마스터가 됨)


다수 마스터와 버스 중재 (Bus Arbitration)

• 버스 중재

– 다수의 마스터가 있을 경우에 공유 자원인 버스의 사용을 조정

 

• 버스 중재 동작

– 버스를 사용하고자 하는 마스터는 버스를 요청 (bus request)

   • 버스 마스터는 요청을 승인받기 전까지 버스를 사용하지 못한다.

– 버스 중재 하드웨어는 버스 사용 마스터를 선정하고 통보 (bus arbitor)

– 버스 마스터는 버스의 사용이 끝났을 경우에 이를 공지

 

• 버스 중재는 다음 두 요소를 조화시켜야 한다.

– 버스 우선순위: 높은 우선 순위의 장치가 먼저 서비스 받는다.

– 공정성: 가장 낮은 우선순위 장치라도 언젠가는 버스를 사용할 수 있어야 한다.

 

• 버스 중재 스킴

– 데이지 체인 중재 (Daisy Chain Arbitration)

– 중앙 병렬 중재 (Centralized Parallel Arbitration)

– 충돌에 기반한 분산 중재 (Distributed Arbitration by Collision)


Daisy Chain Arbitration

여러 마스터를 chain형태로 연결시키는 것

Request, Release :  wired OR

• 동작

– 장치들이 버스 요청을 하면 버스조정자는 Release 선을 통해 버스의 사용여부를 확인하고 아무도 사용하지 않으면 Grant signal를 첫번째 장치에 1을 보낸다.

– 최고순위 장치가 버스를 사용하지 않으면 다음 장치로 Grant를 보낸다.   옆으로 전달

– 버스를 사용할 장치는 Release를 1로하고 버스를 사용한다.

 

• 장점

– 우선순위가 연결 구성에 의해 결정되며 간단하다.

중재기의 가장 가까운 것이 우선 순위가 높다

 

• 단점

– 공정성을 보장하지 않는다.

     • 낮은 우선 순위 장치는 무한적으로 버스를 사용 못할 수 있다.

     • 체인 형태의 그랜트 신호선은 버스의 속도를 늦춘다.

 

버스의 사용할 빈도가 높지 않을 경우에만 쓴다.


Centralized Parallel Arbitration

중앙 병렬 조정방식

 

• 동작

      – 버스를 사용하고자 하는 마스터는 버스 중재기에게 요청한다.

      – 버스 중재기는 마스터 요청들을 기반으로 선정 알고리즘을 수행하여 선정된 장치에게 Grant를 보낸다.

 Grant, Request를 각자 가지고 있어서 누구 쓰고싶은지 알 수 있다.

 

• 특성

      – 버스 중재기는 버스를 요청한 마스터와 허용한 마스터를 알고 있음

      – 버스조정자의 구현에 따라 다양한 선택 알고리즘이 가능

 

• 대부분의 프로세서-메모리 버스와 고성능 입출력 버스에서 사용

가장 많이 씀


Distributed Arbitration with Collision

충돌에 의한 분산 조정 방식

• 동작

     – 버스를 사용할 마스터는 버스를 살펴보고 아무도 사용하지 않으면 목적지 주소를 가지는 데이터를 버스에 보내고 각 슬레이브는 주소를 검사하며 해당 슬레이브는 버스 동작 참여를 통보한다.

     – 만약 두 개의 이상의 마스터가 동시에 데이터를 보내면 이는 버스 상에서 충돌이 되며 전송하는 마스터는 이를 확인하여 전송을 취소한다. (내가 보낸 것이 아닌 것이 흘러다닐 때 동시에 정지, 그리고 아래)

     – 무작위 시간 뒤에 각 마스터는 전송을 다시 시도한다.

 

• 특징

중앙집중식의 버스 중재기가 없이 각 마스터들이 버스의 상태만 확인하여 분산적으로 중재가 일어난다.

 

Ethernet에서 사용하며 맥 시스템에서 비슷한 방식을 사용

CSMA/CD 


AMBA (Advanced Microcontroller Bus Architecture)

• 칩 내의 모듈들은 연결하기 위한 버스 규약 <- ARM

     – 계층적 버스 아키텍처

• AMBA 2.0의 3가지 버스

   – AHB (Advanced High-Performance Bus)

      • 고성능 시스템 백본 버스

         – 파이프라인, 다중 마스터

         – 버스트, 분리 트랜잭션

   – ASB (Advanced System Bus)

      • AHB 부분집합

         – 파이프라인, 다중 마스터

   – APB (Advanced Peripheral Bus)

      • 저전력 주변 장치 버스

      • 간단한 인터페이스

• AMBA 3.0 AXI

   – 단방향 채널

   – 다중 트랜잭션, 순서바뀜 완료

   – 개선된 읽기 쓰기

 

현재 4.0까지 나옴

 

728x90