ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Computer Bus
    Network & Hacking/Network 2020. 2. 3. 23:59

    CPU나 통신을 공부하다보면 가끔 BUS라는 용어를 마주하게 된다.

    그래서 이번시간에는 BUS에 대해서 포스팅 해보려고 한다.




    초창기 컴퓨터는 단일 구조의 버스였으나 CPU, Memory, 하드디스크 등의

    기기 간의 속도 차이가 점점 커지게 되면서 병목현상이 심해졌고

    이를 해결하기 위해 컴퓨터 버스가 세분화 되었다.

    때문에 현재는 여러 종류이 버스가 존재한다.





    Computer Bus ?

    컴포넌트간에 데이터를 주고 받아 CPU가 처리한 데이터를 모니터에 출력하거나

    메모리에 저장할 수 있도록 해주는 통신 Subsystem을 의미한다.

    한마디로 데이터를 통신할 수 있게 해주는 시스템을 말한다.

    * 컴포넌트 : 독립적(다른 것에 크게 영향받지 않음) 단위의 소프트웨어 모듈을 의미 *



    위에서 말했듯 Bus에는 여러 종류가 존재한다.

    System Bus : CPU와 메모리를 연결하는 Bus

    I/O Bus : 메모리와 다른 입출력 장치와 통신하는 Bus

    등등...





    System Bus의 경우 크게 세 가지로 나눠진다.



    1. 제어 Bus : ( 양방향 )

    공유하는 선들의 집합인 데이터 Bus와 주소 Bus를 제어하며 데이터 흐름을 관리한다.



    2.주소 Bus : ( 단방향 )

    데이터의 근원지나 목적지의 일정한 메모리주소를 전달한다.

    주소 Bus의 폭의 경우 최대 기억장치의 용량을 결정지어주며 32개의 주소 Bus를

    지닌 컴퓨터 시스템은 2^32개의 메모리 위치를 할당할 수 있다. I/O 포트를 지정할 때도 사용된다.



    3. 데이터 Bus : ( 양방향 )

    시스템 모듈들 간의 데이터 이동경로를 제공, 32, 64, 128 혹은 그 이상으로 분리된 선들로 구성되어 있으며

    선의 수는 한 번에 전송할 수 있는 비트수를 의미한다. 이는 CPU가 수용할 수 있는 데이터 크기와 관계가 있다.



    풀어 설명하자면 우리가 사용하고자하는 데이터 이동 경로는 데이터 버스에서 제공하며

    이 데이터들의 주소정보를 제공하는 것이 주소 버스이다. 또한 이러한 데이터와 주소정보들이

    언제 어디로 가야하는지 알려주는 것이 바로 컨트롤 버스이다. 이러한 버스들은

    CPU에 의해서 관리가 되며 실제로 데이터를 전송하는 역할은 시스템 버스이다.






    * 동기식 버스 *

    버스가 가지고 있는 클록를 기준으로 정해진 시간에 데이터를 전송하는 방법으로

    인터페이스 논리 회로가 간단하며  빠르다는 장점이 있다. 

    하지만 버스 클록의 주기가 가장 느린 버스 동작의 소요시간을 기준으로

    동작 시간이 결정되기 때문에 그 주기보다 빨리 끝나고 다음 주기까지 

    대기하는 버스 동작들이 생기므로 시간낭비가 발생할 수 있다.



    * 비동기식 버스 *

    말그대로 서로 데이터를 주고받을 준비가 되었는지 확인하는 HandShaking 프로토콜을 사용하여

    수신준비가 확인되면 바로 데이터를 전송하는 방식이다.  바로바로 연관성 있게 처리하므로

    시간낭비는 적지만 회로구성이 복잡하고 HandShaking을 하기 때문에 동기식에 비해서는 느린편이다.




    참고 : https://richong.tistory.com/92

    https://ssoonidev.tistory.com/14

    https://m.blog.naver.com/PostView.nhn?blogId=caramelstudy&logNo=150153254500&proxyReferer=https%3A%2F%2Fwww.google.com%2F

    댓글 0

Designed by Tistory.