티스토리 뷰


편견이 깨지는 어셈블리 프로그래밍 : 최적화 강좌 2 - 1  
 
 
멀티미디어는 나날이 고급화되는 사용자의 요구에 맞춰 고품질화되고 있다. 고급화된 멀티미디어 데이터로 인해 컴퓨터는 더욱 많은 데이터 처리량을 요구받게 되었고, 이로 인해 CPU와 버스는 많은 성능 향상이 이뤄졌다. 지난 호에서는 CPU에 대해 알아보았다. 이번 호에서는 데이터 흐름을 주관하는 버스의 운용을 이해하고 이를 이용한 최적화의 가능성을 엿보도록 하자.  
 





버 스(bus)는 우리가 일반적으로 생각해 볼 때 무언가를 이동한다는 의미를 가지고 있음을 미리 짐작할 수 있다. 그럼 무엇을 이동하는 것인가. 키보드로 글을 입력하거나 마우스로 컴퓨터에 어떠한 명령을 내린다. 또한 CD-ROM에 미디어를 넣어 데이터를 검색하기도 하고 음악을 듣기도 한다. 이런 사용자의 요구사항이 CPU로 전달되고 CPU에서 처리된 사항이 다시 유저에게 돌아오기 위해 주변기기와 CPU간에 데이터를 전달해 줄 장치(규격/프로토콜)가 필요하다. 이것이 바로 버스이다. 즉, 버스는 PC에서 사용되는 각종 하드웨어(장치) - CPU, 메모리, 그래픽카드, 하드디스크, CD-ROM - 수많은 기기간의 데이터 전송을 담당한다.

이종의 기기가 서로 통신을 하기 위해서는 기기간의 인터페이스가 물리적, 논리적, 전기적으로 호환돼야 하고 신호를 주고받는 타이밍이 잘 맞아야 한다. 핀의 개수 및 논리적 위치, 데이터의 구분을 위한 알맞은 전압과 전류, 정해진 클럭 등 데이터 통신을 위한 규칙(프로토콜)이나 약속이 필요하다. 이렇듯 버스는 PC의 여러 부분들 간 통신하는 방법을 정의한다. 다시 말해 버스는 PC의 기능적인 요소들 간에 신호가 흘러 다니는 통로이다. CPU가 컴퓨터의 머리라고 한다면 버스는 이 머리를 받쳐주는 역할을 하는 것이다.

사운드카드를 예로 들어보자. 우리가 음악이나 음성을 듣기 위해 사용하는 장치가 사운드카드이다. 음악을 듣고자 한다면 우리는 음악을 재생하는 프로그램을 실행하게 될 것이다. 이 데이터가 사운드카드에 전달되어 귀로 들을 수 있는 소리로 변환되는 것이다. 그렇다면 사운드카드는 이 데이터를 무엇을 통해 받을 수 있는 것일까? 컴퓨터를 한 번 열어보자. 사운드카드가 하얀 슬롯 위에 꽂혀 있는 것을 볼 수 있을 것이다. 바로 이 슬롯이 컴퓨터 내에 데이터를 전달해 주는 장치중 하나인 PCI 버스이다. 이처럼 컴퓨터 내 거의 모든 장치들은 데이터를 주고받기 위하여 버스가 필요하다.

PC 내에서 데이터 흐름
모든 주변기기의 데이터들이 메인보드를 거쳐 이동하고 메인보드는 버스들로 이뤄진 집합체이다. 이와 같은 메인보드를 살펴보면 다음과 같이 구성돼 있다.

◆ 노스 브릿지(north bridge) : 메인보드에서 CPU와 메모리에 가까이 있는 커다란 칩이 노스 브릿지이다. 이 칩은 연결된 장치들 간에 데이터를 연결해 주는 다리 역할을 한다.

◆ 사우스 브릿지(suth bidge) : 사우스 브릿지는 노스 브릿지와 연결되어 PCI 슬롯, USB, FDD 등 기타 저속 주변기기 제어와 노스 브릿지에 데이터를 전달한다.

이 브릿지들의 역할은 여러 개의 주변기기 간에 오고가는 데이터의 흐름이 원활히 할 수 있도록 교통정리를 하는 것이다. 컴퓨터의 성능이 CPU나 메모리, 그래픽카드에 많은 영향을 받듯이 이들의 데이터 흐름을 관리하는 노스브릿지 역시 컴퓨터 성능에 중요한 역할을 한다. <그림 1>에서 노스 브릿지의 위쪽에 위치한 CPU의 속도를 보면 2GHz대를 넘어서 이제 3GHz대를 바라본다. 오른쪽의 메모리는 100MHz였던 초기 버전이 이젠 133, 266을 넘어 333MHz를 바라본다. 이게 전부인가? 아니다. 왼쪽의 AGP를 보자. 32비트 버스인 AGP 1X는 66MHz의 클럭 속도를 가진다. 기술의 발전으로 2X, 4X, 8X까지 지원한다. 이론상 66MHz × 4(32비트)바이트 × 8(배속) = 2112MB라는 엄청난 수치가 나온다.



<그림 1> 메인보드 내 데이터의 흐름


이 렇게 많은 데이터들의 흐름들 중간에 위치한 장치인 노스 브릿지의 중요성은 아무리 강조해도 지나치지 않는다. 물론 노스 브릿지의 하위에서 좀더 느린 장치들의 데이터 흐름을 관리하는 사우스 브릿지도 중요하다. 어쨌든 컴퓨터 기술이 발전되고 노스 브릿지가 처리해야 될 데이터의 양은 계속 늘어가는 추세이다. 처리량이 늘어난다는 것은 속도가 빨라진다는 것이고 이것은 발열량과 연관이 있다. 그래서 근래 시중에 나오는 메인보드를 보면 노스 브릿지에 방열판이나 쿨러가 달려 나오는 메인보드들도 심심치 않게 볼 수 있다. 절대 멋있으라고 달아 놓은 것이 아니다


출처: http://www.imaso.co.kr/?doc=bbs/gnuboard.php&bo_table=article&wr_id=248