FSB란?

컴, 하드웨어, IT : 2007. 6. 27. 02:48
반응형

1. FSB에 대한 잘못된 개념

"제 CPU의 FSB는 800MHz입니다. 제 메모리의 FSB는 400MHz인데 괜찮을까요?"
"제가 듣기로 AGP의 FSB는 66MHz이고 PCI의 FSB는 33MHz라고 하던데요."

최근 여러 하드웨어 관련 질문을 보면 FSB를 위와 같이 "버스대역폭" 정도의 의미로 사용하는 경우가 많은듯 합니다. 이런 잘못된 용어의 사용은 비단 하드웨어 초보자들 뿐만 아니라 각종 하드웨어 잡지나 전문 사이트, 혹은 업체와 같이 전문적인 정보를 다루는 곳에서도 종종 이루어지고 있습니다.

FSB(Front Side Bus)란 용어에서 보듯이 엄연한 특정 버스(Bus)의 명칭입니다.
보다 정확히 설명을 하자면, CPU의 L2캐쉬에서 메인메모리에 이르는 버스를 지칭하는 용어입니다.

FSB는 BSB(Back Side Bus)에 대비되는 개념으로서, 말하자면 CPU가 연산에 필요한 명령어와 데이터를 메인메모리로 부터 가져오는 전체 버스를 CPU를 기준으로 Back-side와 Front-side로 나누어 놓은것으로 이해하면 되겠습니다.

사용자 삽입 이미지

따라서 "제 CPU의 FSB는 800MHz"라는 일반적인 용어사용에서도 문제가 있다고 할 수 있습니다. FSB는 어떤 "동작클럭"을 나타내는 용어가 아니며, 정확한 쓰임으로 사용하려면 "제 컴퓨터의 FSB클럭은 800MHz"정도로 사용하는 것이 옳겠습니다.


2. FSB의 개념의 변화

FSB라는 버스의 개념은 사실 어떤 특정한 기능을 하는 버스나 특정한 역활을 하는 버스라기 보다는 CPU의 코어(Core)와 메모리간의 데이터 이동경로를 CPU를 기준으로 나누어 놓은 위치상의 개념이라 할 수 있습니다. 따라서 우리가 FSB라는 용어를 어떻게 쓰건 "CPU외부에서 메인메모리로 이어지는 버스"라는 개념 자체는 유지되겠습니다만, 메인메모리의 형식이 변화하고 클럭분배방식의 변화에 따라 우리가 편의대로 자주 사용하는 "FSB(혹은 FSB클럭)"라는 용어는 원래의 개념보다 다소 축소된 특정 버스만을 지칭하게 되었습니다.

오늘날 우리가 "FSB"라고 부르는 것은 원래의 개념이야 어떻게 되었건 CPU에서 ASIC(앞의 그림에서 보다시피, 오늘날 메인보드에서 North Bridge, 혹은 (G)MCH라고 부르는)사이의 버스, 즉 CPU의 외부버스에 국한되는 개념이 되었습니다.

FSB를 좀더 세분화해서 본다면, CPU와 ASIC간의 외부버스와 ASIC와 메인메모리간의 메모리 버스로 나누어 볼 수 있습니다.
메모리 버스와 외부버스의 관계가 보다 대등해지고 밀접해지게 된, SDRAM이 메인메모리로 자리잡게 된 이 후의 시스템을 예로 들어 살펴보겠습니다.
최초 등장한 방식은 CPU 외부버스의 동작클럭과 메모리 버스의 동작클럭이 동일한 동기방식 버스구조였습니다.

사용자 삽입 이미지

위그림과 같이, 동기방식의 대표격인 440BX칩셋을 예로 들어보겠습니다.


펜티엄2(데슈츠코어)와 440BX칩셋(82443 노스브리지칩), 그리고 PC-100 sdram을 조합한 시스템의 경우, CPU와 ASIC간의 외부버스의 동작클럭은 클럭제네레이터(Clock Generator : 클럭발생기)의 호스트클럭(Host Clock)으로 100MHz를 공급받게 됩니다. 그리고 메모리 버스의 경우, 호스트클럭의 1/1로 클럭디바이딩(Clock Dividing : 호스트 클럭의 특정 비율로 클럭을 조율)되어 마찬가지로 100MHz를 공급받게 됩니다.
따라서 이 경우, 호스트클럭(즉, 외부버스클럭)과 메모리 버스 클럭은 동일한 100MHz이므로, FSB클럭이라고 지칭하는 경우 외부버스클럭과 메모리버스클럭 모두를 지칭할 수 있었습니다.


동기방식구조 : 호스트클럭 = 외부버스클럭 = 메모리버스클럭 = FSB클럭

하지만 오늘날의 대부분의 메인보드의 경우, 더이상 위와 같은 동기방식구조는 적용하고 있질 않습니다.
즉, 대부분의 경우 CPU의 외부버스클럭과 메모리버스클럭을 반드시 맞추어줄 필요가 없다는 것입니다. 하나의 CPU에 다양한 메모리 조합이 가능하며, 이와 같은 경우 더 이상 "호스트클럭 = 메모리버스클럭" 이라는 등식은 성립하지 않게 되었습니다.


비동기방식구조 : 외부버스클럭 메모리버스클럭

그럼 이 경우, FSB클럭은 어떤 버스에 맞추어야 할까요. 가령 166MHz버스클럭을 사용하는(데이터레이트는 333MHz) AMD의 Barton을 이용하는 사용자가 PC-3200 DDR-sdram(클럭 200MHz, 데이터레이트 400MHz)을 사용한다고 가정해봅시다. 이런 경우 외부버스클럭과 메모리버스클럭은 같지가 않습니다.(166 200)
최근 유저들이 주로 사용하는 "FSB"는 이 경우 CPU의 외부클럭이나 데이터레이트를 지칭하고 있습니다. 즉, "Barton의 FSB(클럭)은 333MHz다"는 식으로 말이죠.

이상과 같은 개념에서 볼때, 맨처음에 언급한 잘못된 용어사용의 예인 "제가 듣기로 AGP의 FSB는 66MHz이고 PCI의 FSB는 33MHz라고 하던데요."와 같은 사용은 전혀 개념에 맞지 않는 말이란 것을 알 수 있을 것입니다. AGP버스의 동작클럭은 AGP(버스)클럭, PCI버스의 동작클럭은 PCI(버스)클럭이라고 부르는 것이 옳겠지요. 아무곳에서나 FSB라는 말을 쓰는것은 맞지 않습니다.

이런 경우 메모리에 대해서도 "PC-3200 DDR메모리의 FSB는 400MHz다"라고 하는것은 옳지 않은 사용법이라고 하겠습니다. FSB는 CPU를 기준으로 한 버스의 구분으로서, ASIC에서 메모리에 이르는 버스의 경우 메모리버스로 한정짓는 것이 옳습니다. 즉, 이러한 경우 "PC-3200 DDR메모리의 클럭은 400MHz다"라고 말하는 것이 맞겠습니다.


<출처 : [하논] 하드웨어 논하기 http://hanonis.com>


반응형
Posted by Real_G