포스트

Bus

Bus

Bus


모든 컴퓨터 요소들을 연결하는 길고 넓은 통로 (바이트 정보를 전달하는) (각각 연결시키면 비용이 크니까)
Like 전선.

CPU(CPU Pin) - Bus(전선, PCB 기판에 붙어있는 얇은 박막) - Memory or 주변 장치

데이터 버스만 가지고 신호를 주고 받을 순 없고, 어드레스 버스도 같이 따라다닌다.

Bus 폭


버스는 여러 개의 선으로 이루어져 있고, 각 선은 1비트 정보를 전달한다.

버스의 라인 수를 버스의 폭이라고 한다.
CPU가 다루는 Word 사이즈에 따라 버스의 폭이 결정된다.

버스의 폭이 넓어질수록
= 한 번에 표현/처리할 수 있는 정보의 양이 많아진다. (Word 만큼)
= 처리 속도가 빨라진다.

라인 수계산계산 값컴퓨터에서
8 비트 버스2^8256256B
16 비트 버스2^1665,53664KB
32 비트 버스2^32약 43억4GB
64 비트 버스2^64약 1844경16EB

_

버스 선이 32개면 32비트 CPU겠군!
그렇다. (일반적으로)

  • N-Bit CPU
    • N-Bit = CPU 내부에서 처리하는 단위
    • = 연산, (제어 = 메모리 접근 = 주소 = 어드레스 버스)

예외는 있다.
인텔 펜티엄의 경우 32비트 CPU지만 외부 데이터 버스는 64비트다. 과거 인텔 8086 CPU또한 16비트 CPU였지만 외부 데이터버스는 8비트짜리였다.

32비트 CPU라면 그 안에 가지고 있는 범용 레지스터는 모두 32비트짜리이다.
각 레지스터들은 한번에 32비트짜리 데이터만을 저장할 수 있다.
물론 메모리 어드레싱을 위한 특수한 레지스터나 SIMD(Single Instrunction Multiple Data)용 레지스터들은 사이즈가 제각각이다.

CPU를 직접 제어하는 어셈블리 프로그래밍의 경우 프로그래머가 여러 개의 레지스터를 사용해서 더 큰 숫자를 사용할 수 있도록 짤 수 있다. 고급 언어의 경우는 컴파일러가 이러한 코드를 생성해준다. 당연히 코드가 느리고 복잡해진다.

System Bus


Address Bus

  • 메모리, I/O 장치에 접근할 때
  • 접근 장소를 식별하기 위한 주소를 전달하는 선
  • 메모리 크기에 따라 8 16 24 32 64 비트(라인) 등의 크기를 가짐

Data Bus (R/W)

  • CPU, 메모리, I/O 장치, … 사이에서
  • 읽기/쓰기 할 때 데이터를 전달
  • 데이터 전송 대역폭에 따라 8 16 32 64 비트(라인)등의 크기를 가짐

Control Bus | 제어 버스 (R/W하는 명령/신호 같은)

  • 메모리, I/O 장치 등에
  • 읽기/쓰기 등의 기능을 제어하기 위한 신호를 전달하는 선
  • 신호의 종류에 1/2/3 비트 (라인) 등의 크기를 가짐

프로세서들 간 버스 연결 방식 (강결합 시스템)


Single Shared Bus | 단일 공유 버스

Like 일차선 도로.

  • 시스템 전체적으로 하나의 버스를 두고 프로세서들이 경쟁하여 사용
  • 배타적으로, 하나가 버스를 쓰고 있다면 (데이터를 주고 받고 있다면), 다른 하나가 버스를 사용할 수 없다 (데이터가 깨지니까)
    • 프로세서를 너무 많이 탑재하면 성능이 오히려 저하
    • CPU를 여러 개 꽂아도, 대기 시간이 존재하기에 성능 향상이 점점 줄어든다
  • 멀티 코어 프로세서는 프로세서들을 하나의 칩으로 통합하여 버스 경쟁, 캐시 정책, 전력 소모 등을 최적화

Multiple Bus | 다중 버스

Like 은행 창구처럼, 톨 게이트.

  • 버스를 여러 개 두고 버스 경쟁률을 완화
  • 메모리를 버스 개수 만큼 나눈다
  • 하나의 버스가 사용중이면 다른 버스로 메모리에 접근

Crossbar Switch Bus

  • 메모리를 여러 개의 모듈 (뱅크)로 분리
  • 모든 프로세서와 메모리 모듈 사이에 독립적인 버스 경로 가능
  • 버스 경쟁으로 인한 성능 저하 최소화
  • 같은 버스 수로 다중 버스의 효과를 내면서
    • 같은 메모리 뱅크를 사용하지 않는 한
    • 대기 시간이 있기는 있음

Hierarchical Bus | 계층적 버스

  • 프로세서별 로컬 접근 메모리, 로컬 디바이스, 로컬 버스를 두고, 대부분 로컬 버스로 처리
  • 시스템 메모리 접근이 필요한 경우에만 브릿지 컴포넌트를 통해 시스템 버스를 사용
  • 글로벌 메모리에 있는 변수 접근 시 대기 시간
  • SW적으로도 (컴파일러) 여러 기능 필요
    • 시스템 메모리로의 주소 바인딩

Multi Port Memory | 다중 포트 메모리

  • 메모리에 접근 포트를 여러 개 두고 각각 독립적으로 경로 가능, 접근 가능
  • 각 프로세서 별로로 독립된 버스를 분리된 메모리 포트에 연결하여 각각의 병렬 접근을 허용
  • 보통 듀얼 포트
  • 비디오 RAM (VRAM)이 대표적 사례
    • CPU 각 픽셀의 색 설정
    • GPU 각 픽셀을 모니터에 출력
    • 메모리 버스를 가지고 경쟁, 하나가 느리면 병목 현상, 끊어보인다던지
    • 그래서 메모리도 크고, 다중 포트

메모


  • 엮다 Omni’bus’

참고

  • 여치
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.