버스 (컴퓨팅)

4개의 PCI 익스프레스 버스 카드 슬롯 (위에서 두 번째부터 아래로: ×4, ×16, ×1 및 ×16), 32비트 [[PCI 버스 카드 슬롯 (맨 아래)과 비교)]] 컴퓨터 구조에서 **버스**(bus, 역사적으로 **데이터 하이웨이**url=https://www.chilton-computing.org.uk/acl/literature/othermanuals/nottingham/p014.htm 또는 **데이터버스**, databus, 모선)는 컴퓨터 내부 구성 요소 간 또는 컴퓨터 간에 데이터를 전송하는 통신 시스템이다.archive-date=January 17, 2018 여기에는 컴퓨터 하드웨어(예: 전선, 광섬유)와 통신 프로토콜을 포함한 소프트웨어가 모두 포함된다.archive-date=2015-02-07 본질적으로 버스는 일반적으로 전선, 회로 기판의 트레이스 또는 버스바로 구성된 공유 물리적 경로로, 여러 장치가 통신할 수 있게 해준다. 충돌을 방지하고 질서 있는 데이터 교환을 보장하기 위해 버스는 통신 프로토콜에 의존하여 특정 시간에 어떤 장치가 데이터를 전송할 수 있는지 관리한다. 버스는 역할에 따라 분류되는데, 예를 들어 CPU와 메모리를 연결하는 시스템 버스(내부 버스, 내부 데이터 버스 또는 메모리 버스라고도 함)가 있다. 확장 버스는 주변기기 버스라고도 불리며, 시스템을 확장하여 주변기기를 포함한 추가 장치를 연결한다. 널리 사용되는 버스의 예로는 고속 내부 연결을 위한 PCI 익스프레스(PCIe)와 외부 장치 연결을 위한 USB가 있다. 현대 버스는 병렬 통신과 직렬 통신을 모두 활용하며, 속도와 효율성을 극대화하기 위해 고급 인코딩 방식을 사용한다. 직접 메모리 접근(DMA)과 같은 기능은 CPU 개입 없이 장치와 메모리 간에 직접 데이터 전송을 허용하여 성능을 더욱 향상시킨다.
# 주소 버스
주소 버스는 물리 주소를 지정하는 데 사용되는 버스이다. 프로세서나 DMA 지원 장치가 메모리 위치에 읽거나 쓰려면 주소 버스에 해당 메모리 위치를 지정한다(읽거나 쓸 값은 데이터 버스로 전송된다). 주소 버스의 폭은 시스템이 주소 지정할 수 있는 메모리 양을 결정한다. 예를 들어, 32비트 주소 버스를 가진 시스템은 232 (4,294,967,296)개의 메모리 위치를 주소 지정할 수 있다. 각 메모리 위치가 1바이트를 저장한다면, 주소 지정 가능한 메모리 공간은 약 ul=GB이다.
## 주소 멀티플렉싱
초기 프로세서는 주소 너비의 각 비트마다 하나의 와이어를 사용했다. 예를 들어, 16비트 주소 버스는 버스를 구성하는 16개의 물리적 와이어를 가졌다. 버스가 넓어지고 길어짐에 따라 이 방식은 칩 핀 수와 보드 트레이스 측면에서 비용이 많이 들게 되었다. Mostek 4096 DRAM부터 멀티플렉서로 구현된 주소 멀티플렉싱이 보편화되었다. 멀티플렉싱된 주소 방식에서는 주소가 교대 버스 사이클에서 두 개의 동일한 부분으로 전송된다. 이렇게 하면 메모리에 연결하는 데 필요한 주소 버스 신호 수가 절반으로 줄어든다. 예를 들어, 32비트 주소 버스는 16개 라인을 사용하여 메모리 주소의 첫 번째 절반을 보낸 다음 즉시 두 번째 절반을 보내는 방식으로 구현할 수 있다. 일반적으로 제어 버스에 있는 두 개의 추가 핀Snd행 주소 스트로브(RAS)와 열 주소 스트로브(CAS)Snd는 DRAM에 주소 버스가 현재 메모리 주소의 첫 번째 절반을 보내는지 또는 두 번째 절반을 보내는지 알려주는 데 사용된다.
## 구현
개별 바이트에 접근하려면 전체 버스 폭(한 워드)을 한 번에 읽거나 쓰는 경우가 많다. 이 경우 주소 버스의 최하위 비트가 구현되지 않을 수도 있다. 대신 제어 장치가 전송된 전체 워드에서 필요한 개별 바이트를 분리하는 역할을 한다. 이는 예를 들어 최하위 비트 두 개가 없어 정렬된 32비트 전송으로 제한되는 VESA 로컬 버스의 경우이다. 역사적으로, 워드만을 주소 지정할 수 있었던 컴퓨터Snd워드 머신도 있었다.
# 메모리 버스
메모리 버스는 컴퓨터 시스템에서 주기억장치를 메모리 컨트롤러에 연결하는 버스이다. 원래는 VME버스 및 S-100 버스와 같은 범용 버스가 사용되었으나, 지연 시간을 줄이기 위해 현대 메모리 버스는 DRAM 칩에 직접 연결되도록 설계되었으며, 따라서 JEDEC와 같은 칩 표준 기관에 의해 정의된다. 예로는 다양한 세대의 SDRAM 및 SLDRAM과 RDRAM과 같은 직렬 지점 간 버스가 있다.
# 구현 세부 정보
버스는 여러 와이어로 데이터 워드를 병렬로 전달하는 병렬 버스이거나, 비트 직렬 형태로 데이터를 전달하는 직렬 버스일 수 있다. 추가 전원 및 제어 연결, 차동 드라이버 및 양방향 데이터 연결이 추가된다는 것은 일반적으로 대부분의 직렬 버스가 1-Wire 및 UNI/O에서 사용되는 최소 한 개의 도체보다 더 많은 도체를 가진다는 것을 의미한다. 데이터 속도가 증가함에 따라 병렬 버스에서 타이밍 스큐, 전력 소비, 전자기 간섭 및 누화 문제는 점점 더 극복하기 어려워진다. 이 문제에 대한 부분적인 해결책 중 하나는 버스를 이중 펌프하는 것이었다. 종종 직렬 버스는 병렬 버스보다 적은 전기적 연결에도 불구하고 더 높은 전체 데이터 속도로 작동할 수 있는데, 이는 직렬 버스에 본질적으로 타이밍 스큐나 누화가 없기 때문이다. USB, 파이어와이어, 그리고 직렬 ATA가 그 예시이다. 멀티드롭 버스 연결은 고속 직렬 버스에 잘 작동하지 않으므로 대부분의 현대 직렬 버스는 데이지 체인 또는 허브 설계를 사용한다. 병렬 버스에서 직렬 버스로의 전환은 컴퓨터에 사용되는 직렬화기/역직렬화기를 집적 회로에 통합할 수 있게 한 무어의 법칙 덕분에 가능해졌다.publisher=Springer 네트워크 연결(예: 이더넷)은 일반적으로 버스로 간주되지 않지만, 그 차이는 실용적이기보다는 개념적이다. 버스를 특징짓는 데 일반적으로 사용되는 속성은 버스가 연결된 하드웨어에 전원을 공급한다는 점이다. 이는 버스 아키텍처가 스위치 또는 분산 전원을 공급하는 버스바의 기원을 강조한다. 이로 인해 RS-232, 센트로닉스 병렬, IEEE 1284 인터페이스 및 이더넷과 같은 방식은 버스로 제외되는데, 이들 장치 또한 별도의 전원 공급 장치가 필요하기 때문이다. USB 장치는 버스에서 공급되는 전원을 사용할 수도 있지만, 종종 별도의 전원을 사용한다. 이러한 구별은 연결된 모뎀이 있는 일반 전화 서비스(Plain old telephone service) 시스템으로 예시된다. 여기서 RJ11 연결 및 관련 변조 신호 방식은 버스로 간주되지 않으며, 이는 이더넷 연결과 유사하다. 전화선 연결 방식은 신호 측면에서 버스로 간주되지 않지만, 중앙국은 전화 간 연결을 위해 크로스바 스위치가 있는 버스를 사용한다. 하지만, 이러한 구분(버스에서 전원이 공급된다는 점)은 많은 항공전자 시스템에서는 해당되지 않는다. ARINC 429, ARINC 629, MIL-STD-1553 (STANAG 3838), EFABus (STANAG 3910)와 같은 데이터 연결은 일반적으로 데이터 버스 또는 때로는 데이터버스라고 불린다. 이러한 항공전자 데이터 버스는 일반적으로 여러 라인 교체 가능 항목/장치(LRI/LRU)가 공통의 공유 매체에 연결되어 있다는 특징이 있다. 이들은 ARINC 429처럼 단방향일 수 있다. 즉, 단일 소스 LRI/LRU를 가질 수 있거나, ARINC 629, MIL-STD-1553B, STANAG 3910처럼 이중이며, 연결된 모든 LRI/LRU가 다른 시간(반이중 통신)에 데이터의 송신기 및 수신기로 작동할 수 있다.Avionic Systems Standardisation Committee, Guide to Digital Interface Standards For Military Avionic Applications, ASSC/110/6/2, Issue 2, September 2003 버스의 주파수 또는 속도는 MHz와 같은 Hz 단위로 측정되며, 초당 클록 사이클 수를 결정한다. 클록 사이클당 하나 이상의 데이터 전송이 있을 수 있다. 클록 사이클당 단일 전송이 있으면 SDR(싱글 데이터 레이트)이라고 하고, 클록 사이클당 두 번의 전송이 있으면 DDR(더블 데이터 레이트)이라고 하지만, SDR 이외의 신호 사용은 RAM 이외에서는 흔하지 않다. 이에 대한 예시가 SDR을 사용하는 PCIe이다.publisher=IBM Redbooks 각 데이터 전송 내에는 여러 비트의 데이터가 있을 수 있다. 이는 버스의 폭으로 설명되며, 버스가 클록 사이클당 전송할 수 있는 비트 수이며, 각 도체가 한 번에 한 비트를 전송하는 경우 버스가 가진 물리적 전기 도체의 수와 동의어일 수 있다.publisher=CRC Presspublisher=Routledgedate=20 July 2005 초당 비트 단위의 데이터 전송률은 클록 사이클당 비트 수에 주파수, 그리고 클록 사이클당 전송 수를 곱하여 얻을 수 있다.publisher=CRC Presspublisher=CRC Press 또는 PCIe와 같은 버스는 PAM4website=www.theregister.comurl-status=date=12 January 2022와 같은 변조 또는 인코딩을 사용하여 2비트를 심볼로 묶어 전송함으로써 버스의 주파수를 늘리지 않고도 데이터 전송 속도를 높일 수 있다. 128/130b(b는 비트) 인코딩과 같이 오류 수정을 허용하는 인코딩의 사용으로 인해 유효 또는 실제 데이터 전송 속도/전송률이 더 낮을 수 있다.date=30 June 2024title=PAM-4 Signalingpublisher=IBM Redbooks 데이터 전송 속도는 대역폭으로도 알려져 있다.publisher=Queurl-status=
## 버스 멀티플렉싱
버스 인코딩#다른 버스 인코딩의 예시 가장 간단한 시스템 버스는 완전히 분리된 입력 데이터 라인, 출력 데이터 라인, 그리고 주소 라인을 가지고 있다. 비용을 줄이기 위해 대부분의 마이크로컴퓨터는 서로 다른 시간에 입력과 출력에 동일한 와이어를 재사용하는 양방향 데이터 버스를 가지고 있다. Don Lancaster. "TV Typewriter Cookbook". (TV Typewriter). Section "Bus Organization". p. 82. 일부 프로세서는 주소 버스, 데이터 버스 및 제어 버스의 각 비트에 전용 와이어를 사용한다. 예를 들어, 64핀 STEbus는 8비트 데이터 버스에 전용된 8개의 물리적 와이어, 20비트 주소 버스에 전용된 20개의 물리적 와이어, 제어 버스에 전용된 21개의 물리적 와이어, 그리고 다양한 전원 버스에 전용된 15개의 물리적 와이어로 구성된다. 버스 멀티플렉싱은 더 적은 수의 와이어를 필요로 하며, 이는 많은 초기 마이크로프로세서 및 DRAM 칩에서 비용을 절감하는 효과가 있었다. 한 가지 일반적인 멀티플렉싱 방식인 주소 멀티플렉싱은 이미 언급되었다. 또 다른 멀티플렉싱 방식은 주소 버스 핀을 데이터 버스 핀으로 재사용하는 것이다. 이는 PCI 버스와 8086에서 사용된 방식이다. 다양한 직렬 버스는 멀티플렉싱의 궁극적인 한계로 볼 수 있는데, 각 주소 비트와 각 데이터 비트를 한 번에 하나씩 단일 핀(또는 단일 차동 쌍)을 통해 전송한다.
# 역사
시간이 지남에 따라 여러 그룹의 사람들이 IEEE 버스 아키텍처 표준 위원회(BASC), IEEE 슈퍼버스 연구 그룹, 오픈 마이크로프로세서 이니셔티브(OMI), 오픈 마이크로시스템즈 이니셔티브(OMI), EISA를 개발한 나인 갱 등 다양한 컴퓨터 버스 표준에 대해 연구했다.
## 1세대
초기 컴퓨터 버스는 주기억장치와 주변 기기를 연결하는 와이어 묶음이었다. 초기 호주 CSIRAC 컴퓨터에서는 농담삼아 디지트 트렁크라고 불렸으며,isbn=0-7340-2024-4 전기 전력 버스, 즉 버스바의 이름을 따서 명명되었다. 거의 항상 메모리용 버스 하나와 주변 기기용 버스 하나 이상이 별도로 존재했다. 이들은 완전히 다른 타이밍과 프로토콜을 가진 별도의 명령어에 의해 접근되었다. 첫 번째 복잡한 문제 중 하나는 인터럽트의 사용이었다. 초기 컴퓨터 프로그램은 주변 장치가 준비될 때까지 루프에서 대기하며 I/O를 수행했다. 이는 다른 작업을 수행해야 하는 프로그램에게 시간 낭비였다. 또한, 프로그램이 다른 작업을 수행하려 하면, 다시 확인하는 데 너무 오래 걸려 데이터 손실이 발생할 수 있었다. 따라서 엔지니어들은 주변 장치가 CPU를 인터럽트하도록 조치했다. 인터럽트는 우선 순위가 지정되어야 했는데, CPU는 한 번에 하나의 주변 장치에 대한 코드만 실행할 수 있으며, 일부 장치는 다른 장치보다 시간적으로 더 중요하기 때문이었다. 고급 시스템은 채널 컨트롤러라는 개념을 도입했는데, 이는 본질적으로 특정 버스의 입출력을 처리하는 데 전념하는 작은 컴퓨터였다. IBM은 1958년 IBM 709에 이를 도입했으며, 이는 해당 플랫폼의 일반적인 특징이 되었다. 컨트롤 데이터 코퍼레이션과 같은 다른 고성능 공급업체들도 유사한 설계를 구현했다. 일반적으로 채널 컨트롤러는 CPU가 다른 곳에서 바쁘다고 알려진 경우 데이터를 이동하는 등 모든 버스 작업을 내부적으로 실행하기 위해 최선을 다했으며, 필요한 경우에만 인터럽트를 사용했다. 이는 CPU 부하를 크게 줄이고 전반적인 시스템 성능을 향상시켰다. 단일 시스템 버스 모듈성을 제공하기 위해 메모리 및 I/O 버스는 통합된 시스템 버스로 결합될 수 있다.archive-date=2018-01-17 이 경우 단일 기계적 및 전기적 시스템을 사용하여 많은 시스템 구성 요소를 연결할 수 있으며, 일부 경우에는 모든 구성 요소를 연결할 수 있다. 이후 컴퓨터 프로그램은 여러 CPU에 공통된 메모리를 공유하기 시작했다. 이 메모리 버스에 대한 접근도 우선순위를 지정해야 했다. 인터럽트나 버스 접근의 우선순위를 지정하는 간단한 방법은 데이지 체인을 이용하는 것이었다. 이 경우 신호는 물리적 또는 논리적 순서로 버스를 통해 자연스럽게 흐르므로 복잡한 스케줄링이 필요 없게 된다.
## 미니 및 마이크로
디지털 이큅먼트 코퍼레이션(DEC)은 대량 생산되는 미니컴퓨터의 비용을 더욱 절감하고, 주변기기를 메모리 버스에 매핑하여 입출력 장치가 메모리 위치처럼 보이도록 했다. 이는 1969년경 PDP-11의 유니버스에서 구현되었다.archive-date= 2011-11-27 초기 마이크로컴퓨터 버스 시스템은 본질적으로 CPU의 핀에 직접 또는 버퍼 증폭기를 통해 연결된 수동 백플레인이었다. 메모리 및 기타 장치는 CPU 자체가 사용하는 것과 동일한 주소 및 데이터 핀을 사용하여 병렬로 연결되어 버스에 추가되었다. 통신은 CPU에 의해 제어되었으며, CPU는 장치를 메모리 블록처럼 읽고 썼으며, 동일한 명령어를 사용했고, 모든 타이밍은 CPU 속도를 제어하는 중앙 클록에 의해 이루어졌다. 그럼에도 불구하고 장치는 별도의 CPU 핀에 신호를 보내 CPU를 인터럽트했다. 예를 들어, 디스크 드라이브 컨트롤러는 새로운 데이터를 읽을 준비가 되었음을 CPU에 알리면, CPU는 디스크 드라이브에 해당하는 메모리 위치를 읽어 데이터를 이동했다. 거의 모든 초기 마이크로컴퓨터는 이러한 방식으로 구축되었으며, 앨테어 8800 컴퓨터 시스템의 S-100 버스로 시작되었다. 일부 경우, 특히 IBM PC에서는 유사한 물리적 아키텍처가 사용될 수 있음에도 불구하고, 주변 기기(`in` 및 `out`)와 메모리(`mov` 등)에 접근하는 명령어가 전혀 통일되지 않았고, 여전히 별도의 CPU 신호를 생성하여 별도의 I/O 버스를 구현하는 데 사용될 수 있었다. 이러한 단순한 버스 시스템은 범용 컴퓨터에 사용될 때 심각한 단점을 가지고 있었다. 버스 상의 모든 장비는 단일 클럭을 공유했기 때문에 동일한 속도로 통신해야 했다. CPU 속도를 높이는 것이 더 어려워졌는데, 모든 장치의 속도도 함께 증가해야 했기 때문이다. 모든 장치가 CPU만큼 빠르지 않거나 경제적이지 않은 경우, CPU는 대기 상태에 들어가거나 일시적으로 더 느린 클록 주파수에서 작동해야 했다.archive-date= 2006-01-14 컴퓨터 내의 다른 장치와 통신하기 위해서였다. 임베디드 시스템에서는 허용될 수 있었지만, 이 문제는 범용, 사용자 확장형 컴퓨터에서는 오래 용인되지 않았다. 이러한 버스 시스템은 상용 기성 장비로 구성할 때 구성하기가 어렵다. 일반적으로 추가된 각 확장 카드는 메모리 주소, I/O 주소, 인터럽트 우선순위 및 인터럽트 번호를 설정하기 위해 많은 점퍼를 필요로 한다.
## 2세대
NuBus와 같은 2세대 버스 시스템은 이러한 문제 중 일부를 해결했다. 이들은 일반적으로 컴퓨터를 두 개의 주소 공간으로 분리하여, 한쪽에는 CPU와 메모리, 다른 한쪽에는 다양한 주변 장치를 두었다. 버스 컨트롤러는 CPU 측에서 주변 장치 측으로 이동할 데이터를 받아들여 통신 프로토콜 부담을 CPU 자체에서 덜어주었다. 이를 통해 CPU와 메모리 측이 주변 장치 버스와 별개로 발전할 수 있었다. 버스상의 장치들은 CPU 개입 없이 서로 통신할 수 있었다. 이로 인해 훨씬 더 나은 성능을 얻었지만 카드도 훨씬 더 복잡해졌다. 이러한 버스들은 또한 데이터 경로 크기를 늘려 속도 문제를 해결하는 경우가 많았는데, 1세대에서 8비트 병렬 버스에서 2세대에서는 16비트 또는 32비트로 이동했으며, 플러그 앤 플레이로 나중에 표준화된 소프트웨어 설정을 추가하여 점퍼를 대체하거나 보완했다. 그러나 이러한 새로운 시스템은 이전 시스템과 한 가지 공통점을 가지고 있었다. 즉, 버스에 있는 모든 장치가 동일한 속도로 통신해야 했다. 이제 CPU는 분리되어 속도를 높일 수 있었지만, CPU와 메모리는 통신하는 버스보다 훨씬 더 빠르게 속도를 증가시켰다. 그 결과 버스 속도는 현대 시스템이 필요로 하는 것보다 훨씬 느려졌고, 기계는 데이터 부족에 시달렸다. 이 문제의 특히 흔한 예는 비디오 카드가 PCI와 같은 최신 버스 시스템조차 빠르게 능가했고, 컴퓨터가 비디오 카드 구동을 위해 AGP를 포함하기 시작했다는 점이다. 2004년에는 AGP마저 고성능 비디오 카드와 다른 주변기기에 의해 다시 능가되었고, 새로운 PCI 익스프레스 버스로 대체되었다. 점점 더 많은 외부 장치들도 자체 버스 시스템을 사용하기 시작했다. 디스크 드라이브가 처음 도입되었을 때, 버스에 연결된 카드를 통해 기기에 추가되었기 때문에 컴퓨터에는 버스에 많은 슬롯이 있다. 그러나 1980년대와 1990년대에는 SCSI 및 IDE와 같은 새로운 시스템이 이러한 요구를 충족하기 위해 도입되어, 현대 시스템의 대부분의 슬롯은 비어 있게 되었다. 오늘날 일반적인 기계에는 다양한 장치를 지원하는 약 5가지 다른 버스가 있을 수 있다.
## 3세대
3세대 버스는 약 2001년부터 시장에 등장했으며, 하이퍼트랜스포트와 인피니밴드를 포함한다. 이들은 또한 물리적 연결 측면에서 매우 유연하여 내부 버스로 사용될 뿐만 아니라 서로 다른 기계를 연결하는 데도 사용될 수 있다. 이는 서로 다른 요청을 처리하려고 할 때 복잡한 문제를 야기할 수 있으므로, 이러한 시스템에 대한 작업의 대부분은 하드웨어 자체보다는 소프트웨어 설계에 관한 것이다. 일반적으로 이러한 3세대 버스는 초기 시스템보다 더 높은 프로토콜 오버헤드가 필요하지만, 여러 장치가 동시에 버스를 사용할 수 있도록 허용하면서도 원래 버스 개념보다 네트워크에 더 가깝게 보인다. 위시본과 같은 버스는 오픈 소스 하드웨어 운동에 의해 컴퓨터 설계에서 법적 및 특허 제약을 더욱 제거하려는 시도로 개발되었다. 컴퓨트 익스프레스 링크(CXL)는 고속 CPU-장치 및 CPU-메모리 연결을 위한 개방형 표준 인터커넥트로, 차세대 데이터 센터 성능을 가속화하도록 설계되었다.access-date=2019-08-09
# 내부 컴퓨터 버스 예시

## 병렬
colwidth=30em * Asus Media Bus 독점, 일부 에이수스 소켓 7 메인보드에 사용됨 * 컴퓨터 자동 측정 및 제어(CAMAC) 계측 시스템용 * 확장 ISA 또는 EISA * 산업 표준 아키텍처 또는 ISA * Low Pin Count 또는 LPC * MBus * MicroChannel 또는 MCA * Multibus 산업용 시스템용 * NuBus 또는 IEEE 1196 * OPTi local bus 초기 Intel 80486 메인보드에 사용됨.access-date=2021-02-19 * Peripheral Component Interconnect 또는 Conventional PCI * Parallel ATA (Advanced Technology Attachment, ATA, PATA, IDE, EIDE, ATAPI 등으로도 알려짐), 하드 디스크 드라이브, 광학 디스크 드라이브, 테이프 드라이브 주변기기 연결 버스 * S-100 버스 또는 IEEE 696, 앨테어 8800 및 유사한 마이크로컴퓨터에 사용됨 * SBus 또는 IEEE 1496 * SS-50 Bus * Runway bus, 휴렛 팩커드가 자사 PA-RISC 마이크로프로세서 제품군에 사용하기 위해 개발한 독점 전면 CPU 버스 * GSC/HSC, 휴렛 팩커드가 자사 PA-RISC 마이크로프로세서 제품군에 사용하기 위해 개발한 독점 주변기기 버스 * Precision Bus, 휴렛 팩커드가 자사 HP3000 컴퓨터 제품군에 사용하기 위해 개발한 독점 버스 * STEbus * STD Bus (STD-80 [8비트] 및 STD32 [16-/32비트]용), FAQ date=2012-02-27 * Unibus, 디지털 이큅먼트 코퍼레이션이 자사 PDP-11 및 초기 VAX 컴퓨터용으로 개발한 독점 버스. * Q-Bus, 디지털 이큅먼트 코퍼레이션이 자사 PDP 및 후기 VAX 컴퓨터용으로 개발한 독점 버스. * VESA Local Bus 또는 VLB 또는 VL-bus * VMEbus, VERSAmodule Eurocard bus * PC/104 * PC/104-Plus * PCI-104 * PCI/104-Express * PCI/104 * Zorro II 및 Zorro III, 아미가 컴퓨터 시스템에 사용됨 Div col end
## 직렬
colwidth=30em * 1-Wire * 하이퍼트랜스포트 * I²C * I3C (버스) * SLIMbus * PCI 익스프레스 또는 PCIe * Serial ATA (SATA), 하드 디스크 드라이브, 솔리드 스테이트 드라이브, 광학 디스크 드라이브, 테이프 드라이브 주변기기 연결 버스 * Serial Peripheral Interface (SPI) 버스 * UNI/O * SMBus * Advanced eXtensible Interface * M-PHY Div col end
# 외부 컴퓨터 버스 예시

## 병렬
colwidth=30em * 고성능 병렬 인터페이스 * IEEE-488 (GPIB, General-Purpose Interface Bus, HPIB, Hewlett-Packard Instrumentation Bus 등으로도 알려짐) * PC 카드, 이전에는 PCMCIA로 알려졌으며 노트북 컴퓨터 및 기타 휴대용 기기에서 많이 사용되었으나, USB 및 내장 네트워크 및 모뎀 연결 도입으로 사라지고 있음 Div col end
## 직렬
많은 필드버스는 직렬 데이터 버스이며(시스템 버스 또는 확장 카드의 병렬 데이터 버스 섹션과 혼동하지 말 것), 이들 중 일부는 EIA-485 전기적 특성을 사용한 다음 자체 프로토콜과 커넥터를 지정한다. * CAN 버스 ("Controller Area Network") * Modbus * ARINC 429 * MIL-STD-1553 * IEEE 1355 다른 직렬 버스: * Camera Link * eSATA * ExpressCard * IEEE 1394 인터페이스 (FireWire) * RS-232 * Thunderbolt * USB
# 내부/외부 컴퓨터 버스 예시
colwidth=30em * Futurebus * 인피니밴드 * PCI Express External Cabling * QuickRing * Scalable Coherent Interface (SCI) * SCSI, 하드 디스크 드라이브 및 테이프 드라이브 주변기기 연결 버스 * Serial Attached SCSI (SAS) 및 기타 직렬 SCSI 버스 * Thunderbolt * Yapbus, 픽사 이미지 컴퓨터를 위해 개발된 독점 버스 Div col end