의견.png

"버스 (컴퓨터)"의 두 판 사이의 차이

해시넷
이동: 둘러보기, 검색
34번째 줄: 34번째 줄:
 
==동작 타이밍에 따른 분류==
 
==동작 타이밍에 따른 분류==
 
===동기식 버스===
 
===동기식 버스===
동기식 버스는 정해진 시간에 데이터를 전송하는 방법이다. 이때 시간은 버스가 가지고 있는 Clock을 기준으로 하며, 빠르고 인터페이스 논리회로가 간단하다는 장점이 있기만, 느린 장비도 이 Clock에 맞춰야하기 때우멘ㅇ 시간 낭비가 발생할 있다.
+
동기식 버스는 모든 버스 동작들이 같은 시간에 공통적으로 발생하는 것이다. 이때 시간은 버스가 가지고 있는 Clock을 기준으로 하며, 빠르고 인터페이스 논리회로가 간단하다는 장점이 있지만, 버스 Clock의 주기가 가장 오래 걸리는 버스 동작의 소요 시간을 기준으로 결정되기 때문에, Clock 주기보다 더 짧은 시간이 걸리는 버스 동작의 경우에는 동작이 완료된 후에도 다음 주기가 시작될 때까지 대기하여 시간 낭비가 발생할 수도 있다. 소규모 컴퓨터에서 효과적이다.
  
 
===비동기식 버스===
 
===비동기식 버스===
비동기식 버스는 동기식 버스와 달리 시간을 따로 정하지 않는다. 단지 서로 데이터를 주고받을 준비가 되어있는지 확인하는 핸드쉐이킹 프로토콜을 사용하여 수신측에서 준비가 되었으면 바로 전송을 하는 방식이다. 장점은 따로 정해진 시간이 없기 때문에 시간 낭비가 적다는 것이고, 단점은 회로 구성이 복잡하고 핸드쉐이킹하는 과정이 필요해서, 속도가 동기식에 비해 느리다.<ref name=“분류”></ref>
+
비동기식 버스는 동기식 버스와 달리 시간을 따로 정하지 않고, 관련된 다른 버스 동작의 발생 여부에 따라 결정하는 것이다. 서로 데이터를 주고받을 준비가 되어있는지 확인하는 핸드쉐이킹 프로토콜을 사용하여 수신측에서 준비가 되었으면 바로 전송을 하는 방식이다. 장점은 따로 정해진 시간이 없기 때문에 시간 낭비가 적다는 것이고, 단점은 회로 구성이 복잡하고 핸드쉐이킹하는 과정이 필요해서, 속도가 동기식에 비해 느리다.<ref name=“분류”></ref> 일반적인 컴퓨터 시스템에서 사용된다.
  
 
==컴퓨터 구성 요소 간 통신==
 
==컴퓨터 구성 요소 간 통신==
49번째 줄: 49번째 줄:
 
I/O Unit과 메모리의 통신은 중앙 처리 자치를 이용하지 않고, 직접 기억장치 접근 방식으로 통신한다. 직접 기억장치 접근 제어기는 중앙 처리 장치를 대신해 주소 버스와 제어 버스에 신호를 전달하고, 통신을 시작하기 전에 중앙 처리 장치에 버스 사용에 대한 허가를 받아야 한다.<ref name=“테리”></ref>  
 
I/O Unit과 메모리의 통신은 중앙 처리 자치를 이용하지 않고, 직접 기억장치 접근 방식으로 통신한다. 직접 기억장치 접근 제어기는 중앙 처리 장치를 대신해 주소 버스와 제어 버스에 신호를 전달하고, 통신을 시작하기 전에 중앙 처리 장치에 버스 사용에 대한 허가를 받아야 한다.<ref name=“테리”></ref>  
  
==접속 방향==
+
==버스 중재 방식==
===단방향===
+
버스 중재란 버스 경합이 발생하는 경우, 어떤 기준에 따라 버스 마스터들 중 한 개씩만 선택하여 순서대로 버스를 사용할 수 있게 해주는 동작이다. 버스 경합은 한 개의 시스템 버스에 접속된 여러 개의 버스 마스터들이 동시에 버스 사용을 요구하는 현상으로, 버스 중재에 사용하는 하드웨어 모듈을 버스 중재기라고 한다.
  
===양방향===
+
===제어 신호의 연결 구조에 따른 분류===
 +
====병렬 중재 방식====
 +
병렬 중재 방식(Parallel arbitration scheme)은 각 버스 마스터들이 독립적인 버스 요구 신호를 발생하고, 버스 승인 신호를 받는 방식으로, 버스 마스터들의 수와 같은 개수의 버스 요구 선, 승인 신호 선이 필요하다.
 +
 
 +
====직렬 중재 방식====
 +
직렬 중재 방식(Serial arbitration scheme)은 버스 요구와 승인 신호 선이 각각 한 개씩만 존재하며, 각 신호 선을 버스 마스터들 간에 직렬로 접속하는 방식이다.
 +
 
 +
===버스 중재기 위치에 따른 분류===
 +
====중앙집중식 중재 방식====
 +
중앙집중식 중재 방식(Centralized arbitration scheme)은 시스템 내에 버스 중재기가 한 개만 존재하는 방식으로, 버스 마스터들이 발생하는 버스 요구 신호들은 하나의 중재기로 보내지고, 중재기는 정해진 중재 원칙에 따라 선택한 버스마스터에게 승인 신호를 발생한다.
 +
 
 +
====분산식 중재 방식====
 +
분산식 중재 방식(decentralized arbitration scheme)은 일반적으로 각 버스 마스터가 중재기를 한 개씩 가져, 여러 개의 버스 중재기들이 존재하며, 버스 중재 동작이 각 마스터의 중재기에 의하여 이루어진다.
 +
 
 +
===우선 순위 결정 방식에 따른 분류===
 +
각 버스 마스터에 지정된 우선순위가 고정되어 있는 고정-우선순위 방식(fixed-priority scheme)과, 우선 순위를 변경할 수 있는 가변-우선순위 방식(dynamic-priority scheme)이 있다.<ref name=“시스템 버스”></ref>
  
 
==규격==
 
==규격==

2021년 2월 3일 (수) 14:40 판

버스(bus)란 컴퓨터 안의 부품들 간에, 또는 컴퓨터 간에 데이터와 정보를 전송하는 통로(통신 시스템)이다. 이러한 표현에는 관련된 모든 하드웨어 부품들(선, 광 파이버 등) 및 통신 프로토콜을 포함한 소프트웨어를 아우른다. 버스라인(bus line) 또는 컴퓨터 버스라고도 한다.

개요

전형적인 디지털 컴퓨터는 많은 레지스터와 레지스터들 사이의 정보 전송을 위한 경로를 가져야하는데, 시스템은 이를 위해서 각 레지스터 사이를 연결하는 번거로움 대신, 공통의 버스 시스템이라는 효율적인 방법을 사용한다.[1] 컴퓨터 버스는 컴퓨터의 구성요소를 서로 연결하고 데이터 전달을 위한 통로로, 컴퓨터 메인보드 내 프로세서, 메모리, 주변장치들을 서로 연결하여 시스템이 원활하게 돌아갈 수 있도록 데이터 전송 역할을 하는 공통 통로다. 컴퓨터 버스는 크게 내부 버스(internal bus)와 외부 버스(external bus)로 나눌 수 있다. 내부 버스는 주로 컴퓨터 중앙 처리 장치(CPU) 칩 내부의 신호를 연결하는 버스로, 중앙 처리 장치 내의 레지스터 들을 연결시켜 준다. 외부 버스는 구조에 따라 시스템 버스와 I/O 버스로 나눌 수 있고, 신호 기능에 따라 데이터 버스, 주소 버스, 제어 버스 등으로 나눌 수 있다. 컴퓨터 버스가 동작할 때는, 개별 장치에 대한 접속, 접근 방법, 버스 경합 시 중재 방법, 장치의 연결 방법, 시스템 성능 향상을 위한 직접 기억장치 접근 방식(Direct Memory Access, DMA)방법 등을 고려하여야 한다. 또한 버스 중재 방식에는 데이터 전송 통로의 개수를 최소화한 직렬버스(serial bus)와 여러 개의 통로를 만들어 데이터 전송을 동시에 처리하는 병렬버스(parallel bus)가 있다. 버스 방식을 이용하여 여러 시스템 간 데이터 연계를 구현하는 것을 ESB 연계라고 한다.[2] 공유 메모리 멀티 프로세서 시스템에서 프로세서는 시스템 버스를 통하여 공유 자원에 대한 접근을 오구한다. 공유 자원이 사용되고 있지 않을 경우에는 바로 사용을 승인하지만, 공유 자원이 사용되고 있거나 동시에 버스를 요구하는 경우에는 조금 다르다. 공유 자원이 사용되고 있을 경우에는 선점 프로세스의 사용 종료까지 대기 하고, 동시에 버스를 요구하는 경우에는 공유 자원에 대한 충돌을 해결하기 위한 중재 동작을 수행한다.[1]

특징

버스는 구성 요소들 간에 교환할 각종 정보들을 전송하는 선으로 구성되어 있다. 버스 선의 수는 한 번에 전송하는 데이터 비트들의 수, 기억장치 주소 비트들의 수, 제어 신호들의 수에 따라 결정된다. 소형 컴퓨터의 경우 50~100 개의 신호 선들을 사용하고, 중대형 급 시스템의 경우 100개 이상의 신호 선들을 사용한다. 버스의 속도를 나타내는 척도로 버스 대역폭을 사용하는데, 이것은 단위 시간당 전송할 수 있는 데이터양을 나타내며, 버스 클록의 주기에 의해 결정된다. 버스의 기본적인 동작에는 읽기와 쓰기가 있다. 쓰기 동작을 할 때는, 버스 마스터가 버스 사용권을 획득한 뒤, 버스를 통하여 주소와 데이터 및 쓰기 신호를 전송한다. 읽기 동작을 할 때는 버스 마스터가 버스 사용권을 획득한 뒤, 주소와 읽기 신호를 보내고, 데이터가 전송되어 올 때까지 대기한다.[3]

구조에 따른 분류

시스템 버스

중앙 처리 장치와 메모리를 연결하는 것을 시스템 버스라고 한다.

I/O 버스

메모리와 다른 입출력 장치와 통신을 하는 것을 I/O 버스라고 한다.

신호 기능에 따른 분류

주소 버스

주소 버스(Addredd Bus)는 메모리의 주소나 I/O Unit의 포트 번호를 전달하여, 데이터의 근원지나 목적지의 일정한 메모리 주소를 전달하는 버스다. 중앙 처리 장치와 메모리는 단방향으로 데이터 전달이 가능한 버스를 이용함으로써 주소 전달은 중앙 처리 장치에서 메모리로만 가능하고, 중앙 처리 장치와 메모리는 I/O Unit과 양방향으로 데이터 전달이 가능한 버스를 사용한다. 주소 버스의 폭은 최대 기억장치의 용량을 결정짓는데, 32개의 주소 버슬르 지닌 컴퓨터 시스템은 2^32개의 메모리 위치를 할당할 수 있다.[4]

데이터 버스

데이터 버스(Data Bus)는 말 그대로 데이터를 전달하는 버스로, 시스템 모듈들 간의 데이터 이동 경로를 제공한다. 주로 32,64,128 또는 그 이상의 분리된 선들로 구성되어 있으며, 선의 수는 한 번에 전송할 수 있는 비트 수를 결정 지어 주는데 이것은 CPU가 수용할 수 있는 데이터의 크기인 워드(Word)와 관련이 있다. 각 구성 요소(중앙 처리 장치, 메모리, I/O Unit)는 양방향으로 데이터 전달이 가능한 버스를 사용한다.

제어 버스

제어 버스(Control Bus)는 제어신호를 전달하는 역할을 한다. Read와 Write 신호가 전달되는 것으로, 각 구성 요소(중앙 처리 장치, 메모리, I/O Unit)는 양방향으로 데이터 전달이 가능한 버스를 사용한다.[5] 쉽게 설명하자면 데이터 버스와 주소 버스를 제어하는 역할로, 데이터 버스와 주소 버스는 공유하는 선들의 집합이기 때문에 이들을 제어하기 위한 수단이 반드시 필요하다. 다르게 말하면 중앙 처리 장치가 기억장치 혹은 I/O 장치 사이에 데이터를 전송하기 위한 신호 선들의 집합이다. 제어 버스를 통해 전달되는 신호에는 기억장치, I/O 장치와 데이터 교환을 위한 제어 신호, 버스 중재를 위한 신호, 인터럽트 매커니즘을 위한 전달 신호, 버스 클록 신호, 리셋 신호 등이 있다.

기억 장치, I/O 장치와 데이터 교환

제어 버스로 전달되는 제어 신호 중 기억 장치 및 I/O 장치와의 데이터 교환을 위해 전달되는 제어 신호로 기억장치 쓰기 신호, 기억장치 읽기 신호, I/O 쓰기 신호, I/O 읽기 신호가 있다. 기억장치 쓰기 신호는 버스에 실린 데이터를 주소가 지정하는 기억장소에 저장하도록 제어하는 신호다. 기억장치 읽기 신호는 주소가 지정하는 기억장소의 내용을 읽어서 버스에 실리게 하는 제어 신호다. I/O 쓰기 신호는 버스에 실린 데이터를 지정된 I/O 장치로 출력되게 하는 제어 신호고, 이와 반대로 I/O 읽기 신호는 지정된 I/O 장치로부터 데이터를 읽어 데이터 버스에 실리게 하는 제어신호다.

중재 버스

버스 중재를 위한 제어신호들의 집합이다. 버스의 요소들 중, 버스 사용의 주체가 되는 요소들을 버스 마스터(Bus Master)라고 한다. 중앙 처리 장치, 기억장치 모듈, I/O 제어기 등이 될 수 있다. 버스에 접속된 두 개 또는 그 이상의 버스 마스터들이 동시에 버스를 사용하고자 할 때, 순서대로 한 개의 마스터씩 버스를 사용하게 해주는 동작을 버스 중재(Bus Arbitration)이라고 한다. 중재 버스(Arbitration Bus)는 버스 중재를 위한 신호 선들의 집합으로, 버스 요구 신호, 버스 승인 신호, 버스 사용중 신호가 있다. 버스 요구 신호는 버스 마스터가 버스 사용을 요구했음을 알리는 신호이고, 버스 승인 신호는 버스 사용을 요구한 마스터에게 사용을 허가하는 신호, 버스 사용중 신호는 현재 버스가 사용되고 있는 중임을 나타내는 신호다.

인터럽트 버스

인터럽트 버스(Interrupt Bus)는 인터럽트 매커니즘을 위한 제어 신호들의 집합이다. I/O 장치가 인터럽트를 요구했음을 알리는 신호인 인터럽트 요구 신호와, 중앙 처리 장치가 인터럽트 요구를 인식했음을 알리는 신호인 인터럽트 확인 신호가 있다.[3]

동작 타이밍에 따른 분류

동기식 버스

동기식 버스는 모든 버스 동작들이 같은 시간에 공통적으로 발생하는 것이다. 이때 시간은 버스가 가지고 있는 Clock을 기준으로 하며, 빠르고 인터페이스 논리회로가 간단하다는 장점이 있지만, 버스 Clock의 주기가 가장 오래 걸리는 버스 동작의 소요 시간을 기준으로 결정되기 때문에, Clock 주기보다 더 짧은 시간이 걸리는 버스 동작의 경우에는 동작이 완료된 후에도 다음 주기가 시작될 때까지 대기하여 시간 낭비가 발생할 수도 있다. 소규모 컴퓨터에서 효과적이다.

비동기식 버스

비동기식 버스는 동기식 버스와 달리 시간을 따로 정하지 않고, 관련된 다른 버스 동작의 발생 여부에 따라 결정하는 것이다. 서로 데이터를 주고받을 준비가 되어있는지 확인하는 핸드쉐이킹 프로토콜을 사용하여 수신측에서 준비가 되었으면 바로 전송을 하는 방식이다. 장점은 따로 정해진 시간이 없기 때문에 시간 낭비가 적다는 것이고, 단점은 회로 구성이 복잡하고 핸드쉐이킹하는 과정이 필요해서, 속도가 동기식에 비해 느리다.[4] 일반적인 컴퓨터 시스템에서 사용된다.

컴퓨터 구성 요소 간 통신

중앙 처리 장치와 메모리

적재(Load)와 저장(Store) 명령에 의해 수행되는 통신이다. 적재 명령을 하면, 주소 버스는 메모리에서 불러올 데이터가 저장된 주소값을 중앙 처리 장치에서 메모리로 전달한다. 메모리를 읽으면, 신호가 메모리를 읽었다고 중앙 처리장치에서 메모리로 신호를 보낸다. 데이터 버스는 지정한 메모리에 저장된 값을 메모리에서 중앙 처리 장치로 전달한다. 저장 명령을 하면, 주소 버스는 메모리에서 해당 데이터를 저장할 주소 값을 중앙 처리 장치에서 메모리로 전달한다. 신호 버스가 메모리를 읽었다는 신호를 중앙 처리 장치에서 메모리로 보내고, 데이터 버스는 저장할 데이터를 중앙 처리 장치에서 메모리로 전달한다.

중앙 처리 장치와 I/O Unit

입력(Input)과 출력(Output) 명령에 의해 수행된다. 입력 명령이 오면, 주소 버스는 해당 입출력 장치의 포트 번호를 중앙 처리 장치에서 I/O Unit으로 전달한다. 신호 버스는 I/O를 읽었다는 신호를 중앙 처리 장치에서 I/O Unit로 전다하고, 데이터 버스는 해당 입출력 장치가 I/O Unit에서 중앙 처리 장치로 전달한다. 중앙 처리 장치와 I/O unit의 통신에는 인터럽트도 해당한다. 입출력 장치가 제어 신호를 통해 인터럽트 요청을 보내면 중앙 처리 장치에 입출력 작업을 요청할 수 있다. 인터럽트 요청은 입출력 준비를 마친 I/O Unit이 중앙 처리 장치에 입출력 작업의 시작을 요청하는 것이고, 인터럽트 확인은 중앙 처리 장치가 입출력 동작을 수행할 것을 입출력 장치에 통보하는 것이다.

메모리와 I/O Unit

I/O Unit과 메모리의 통신은 중앙 처리 자치를 이용하지 않고, 직접 기억장치 접근 방식으로 통신한다. 직접 기억장치 접근 제어기는 중앙 처리 장치를 대신해 주소 버스와 제어 버스에 신호를 전달하고, 통신을 시작하기 전에 중앙 처리 장치에 버스 사용에 대한 허가를 받아야 한다.[5]

버스 중재 방식

버스 중재란 버스 경합이 발생하는 경우, 어떤 기준에 따라 버스 마스터들 중 한 개씩만 선택하여 순서대로 버스를 사용할 수 있게 해주는 동작이다. 버스 경합은 한 개의 시스템 버스에 접속된 여러 개의 버스 마스터들이 동시에 버스 사용을 요구하는 현상으로, 버스 중재에 사용하는 하드웨어 모듈을 버스 중재기라고 한다.

제어 신호의 연결 구조에 따른 분류

병렬 중재 방식

병렬 중재 방식(Parallel arbitration scheme)은 각 버스 마스터들이 독립적인 버스 요구 신호를 발생하고, 버스 승인 신호를 받는 방식으로, 버스 마스터들의 수와 같은 개수의 버스 요구 선, 승인 신호 선이 필요하다.

직렬 중재 방식

직렬 중재 방식(Serial arbitration scheme)은 버스 요구와 승인 신호 선이 각각 한 개씩만 존재하며, 각 신호 선을 버스 마스터들 간에 직렬로 접속하는 방식이다.

버스 중재기 위치에 따른 분류

중앙집중식 중재 방식

중앙집중식 중재 방식(Centralized arbitration scheme)은 시스템 내에 버스 중재기가 한 개만 존재하는 방식으로, 버스 마스터들이 발생하는 버스 요구 신호들은 하나의 중재기로 보내지고, 중재기는 정해진 중재 원칙에 따라 선택한 버스마스터에게 승인 신호를 발생한다.

분산식 중재 방식

분산식 중재 방식(decentralized arbitration scheme)은 일반적으로 각 버스 마스터가 중재기를 한 개씩 가져, 여러 개의 버스 중재기들이 존재하며, 버스 중재 동작이 각 마스터의 중재기에 의하여 이루어진다.

우선 순위 결정 방식에 따른 분류

각 버스 마스터에 지정된 우선순위가 고정되어 있는 고정-우선순위 방식(fixed-priority scheme)과, 우선 순위를 변경할 수 있는 가변-우선순위 방식(dynamic-priority scheme)이 있다.[3]

규격

각주

  1. 1.0 1.1 underlier12, 〈컴퓨터구조 #23 시스템 버스 구성 및 제어〉, 《벨로그》, 2020-04-30
  2. Computer Bus 컴퓨터 버스〉, 《정보통신기술용어해설》
  3. 3.0 3.1 3.2 시스템 버스 (system bus)〉, 《KOCW》
  4. 4.0 4.1 Chan Ho Son, 〈(컴퓨터 구조) 버스(BUS)〉, 《티스토리》, 2016-10-03
  5. 5.0 5.1 테리는 당근을 좋아해, 〈(컴퓨터구조) 시스템 버스 System bus]〉, 《티스토리》, 2020-07-14

참고자료

같이 보기


  의견.png 이 버스 (컴퓨터) 문서는 컴퓨터에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.