2008년 11월 12일 수요일

CPU와 Memory의 상관관계

CPU 와 메모리간의 성능 차이

1.CPU

CPU의 처리 속도는 클럭으로 평가를 하며 단위는 Hz이다. Hz라는 것은 1초 동안 처리하는 클럭을 말한다

CPU의 속도는 클럭 외에 입출력 속도에 의해 결정된다. 입출력 속도란 CPU가 처리한 데이터를 다른 장치로 전송하는 속도를 말한다. CPU가 아무리 빨라도 다른 장치로 전송하는 속도가 느리다면 시스템 전체적인 성능은 저하될 것이다. 이러한 입출력 통로를 버스라고 하며 버스 속도는 버스 폭과 버스 클럭으로 결정된다. 이러한 입출력 보스 속도는 CPU의 클럭만큼이나 중요합니다. 하지만 대부분 클럭 속도에는 관심이 있지만 입출력 속도에는 관심을 가지지 않는다. 그것은 표면적으로 입출력 속도에 대해 CPU에 표기가 되어 있지 않기 때문이다.
우선 버스 속도는 '버스 클럭 * 버스 폭'으로 계산된다. 그런데 버스 클럭이나 버스 폭은 CPU와 메인보드에 따라 달라진다. 그러므로 버스 클럭이나 버스 폭이 커야만 버스 속도가 빨라진다. 버스 폭은 CPU 종류에 따라 크게 변하지 않고 고정적인 반면 버스 클럭은 같은 CPU라도 클럭에 따라 달라진다. 그러므로 CPU를 선택할 때는 단순히 클럭만으로 비교할 것이 아니라 버스 클럭도 함께 비교를 해야 한다. 즉 펜티엄Ⅲ 550E를 구입하는 것보다는 펜티엄Ⅲ 533B를 선택하는 것이 더 시스템 성능면에 큰 향상을 느낄 수 있이다. 펜티엄Ⅲ 533B가 FSB 133Mhz를 지원하므로 펜티엄Ⅲ 550E보다 시스템 전체적인 성능은 빠르기 때문이다. CPU 모델 뒤에 'B'가 붙는 것이 FSB 133Mhz를 지원한다.

2. FSB는?

FSB는 CPU와 노스브릿지 간의 버스 혹은 그 버스(데이터 이동 통로)의 동작주파수를 말합니다. 노스브릿지는 메인보드에서 CPU,RAM,AGP 등의 장치들을 관리하는 칩입니다.

FSB , 메모리 버스의 초간단 블록다이어그램 일반적인 경우의 구조는 간단하게 아래와 같습니다.

CPU <=> 노스브릿지 <=> 메모리

이 때 앞쪽의 버스(<=>)를 FSB. 뒤쪽의 버스는 메모리 버스(<=>)

3.FSB와 메모리 버스 간의 관계

FSB와 메모리버스 간 관계에서 실제로 중요한 부분은 동작클럭이 아니라 대역폭입니다.

즉 그 버스에서 초당 얼만큼의 데이터를 처리하는가 하는 점입니다.

예컨데 FSB가 400MHz인 경우의 처리 데이터는

400MHz x 64bit = 25600Mbit/sec

고로 초당 25600 메가비트를 처리합니다.

이것을 바이트(byte) 단위로 바꾸면 8bit가 1byte이므로

25600Mbit/sec x 1byte/8bit = 3200Mbyte/sec

고로 초당 3200메가바이트를 처리하죠.

DDR266메 모리의 경우

DDR266 메모리는 동작유효주파수가 266MHz입니다.

(실제 주파수는 133MHz입니다만 DDR 효과에 의해 x 2가 됩니다.)

266MHz x 64bit x 1byte/8bit = 약 2100Mbyte/sec

고로 메모리가 266MHz로 동작 시 메모리 버스는 초당 2100메가바이트를 처리

(PC2100이 이 대역폭을 뜻합니다.)

그러므로 이 경우 FSB와 메모리 버스간의 처리속도가 다르게 되는데(비동기) 그 결과 접점인 노스브릿지에서는 데이터 전송의 병목현상이 생길 수 있고 처리 속도를 모두 3200MB/s로 맞춘 상태(동기화 상태)와 비교하면 성능이 떨어지죠.(메모리 자체의 처리성능도 떨어지지만 그 뿐만 아니라 버스의 전송능력도 떨어지겠죠.)

그럼 대역폭을 맞추기 위해서는 메모리를 DDR 400(PC3200)으로 달면 됩니다.

400MHz x 64bit x 1byte/8bit = 3200Mbyte/sec

DDR 266을 2개 달면 400보다 높은 것은 아니다 2개 달아봐야 동작클럭은 266 그대로입니다. 듀얼채널일 경우 DDR SDRAM으로 공인된 클럭은 DDR400까지입니다.

그런데 FSB 800인 CPU를 출시하다보니 DDR400으로도 대역폭을 일치시킬 수 없습니다.

800MHz x 64bit x 1byte/8bit = 6400MB/s > 400MHz x 64bit x 1byte/8bit = 3200MB/s

그리하여 기존의 64bit로 동작하던 것을 128bit로 동작하게 하여대역폭을 일치시키는 기술이 듀얼채널입니다. 물론 보드에서 듀얼채널을 지원해야 합니다.

이 듀얼채널을 400MHz 2개를 다니 800MHz로 동작하는 것으로 잘못 아시는 분들도 계신데 듀얼채널은 클럭을 높이는것이 아니고 대역폭을 64bit 단위에서 128bit 단위로 높이는 것이죠. 클럭은 400MHz 그대로이다.

FSB 800MHz인 인텔 P4 CPU에서 FSB 800이 하이퍼쓰레딩(HT) 때문이라고 하지만 HT는 논리적으로 CPU가 듀얼처럼 동작하도록 하는 기술이지 FSB와는 전혀 관계없습니다.

FSB 800MHz가 되는 것은 CPU 외부동작주파수가 200MHz고 거기에 QDR(x4)이 되기 때문일 뿐입니다.

4. WINDOWS-XP 메모리

윈도우도 일종의 프로그램인만큼, 이것이 실행되기 위해서는 이 윈도 커널이 자리를 잡고 프로그램을 실행할 수 있는 환경을 만들어줄 공간이 필요한데요.

그래서, 윈도 자체도, 램에 로드되어 윈도가 동작하는 내내 램에 상주해 있게 됩니다.

엄밀하게 말해서, 윈도도 램상주프로그램이다. 그렇게 해서, 램에 로드되는 윈도가 XP의경우 200메가정도됩니다.


프로그램이 동작하는 최소량의 메모리 양과 윈도가 로딩되어야 할 메모리 양의 합이 전체 램의 용량과 같거나, 혹은 작아야 (그러니까 램의 용량이 커야) 윈도나 프로그램이 수월하게 동작합니다.

만약, 그렇지 않고, 이 요구되는 메모리의 합이 실제 컴터의 램 용량보다 크다면, 그러니까 램이 적다면, 컴퓨터는 디스크 캐쉬라는 것을 사용하여 하드디스크 용량의 일부를 사용하여 램처럼 사용합니다. 이것이 가상 메모리이다

이럴 경우, 메모리 문제는 해소가 되지만, 램보다 속도가 상대도 되지 않을 만큼 느린 하드디스크를 램처럼 사용하므로 시스템 속도가 느려지고 (이 때문이지요) 또 하드디스크의 일정 공간을 사용할 수 없어진다는 점이다.

5.메모리

CPU에만 속도차이가 있는 것이 아니라 RAM에도 속도차이가 있다. 클럭별로 4가지가 있다.

* PC2100 = DDR266

PC2700 = DDR333

PC3200 = DDR400

PC3700 = DDR466

좌측의 PC2100,2700,3200,3700은 메모리의 데이타 전송량을 수치로 나타낸것이며 오른쪽의 DDR266,333,400,466은 메모리의 동작속도를 MHZ 단위로 나타낸것이다.

예를들면 PC2700,256MB나 DDR333,256MB는 동일 메모리다.

※ CPU 동작클럭에 따라서 맞는 메모리를 사용해야한다. 아무리 빠른 메모리를 장착하더라도 메인보드의 chipset의 한계 때문에 더 빠르게 동작하지는 않는다.

컴퓨터가 최적의 성능을 발휘하도록 하기 위해서는 CPU, RAM, BOARD CHIPSET등을 고려해서 시스템을 구성해야한다.

결론

컴퓨터의 최적 사향을 구지 구하려고 하면은 컴퓨터 사양에 맞는 운영체제이다.

아무리 CPU가 높다하더라도 메모리의 버스량이 ek라가지 못하면 성능저하가 있을 수밖에 없다 가상메모리를 사용한다고 할지라도 하드와 메모리의 속도 차이는 너무 많이 생기기 때문에 속도 저하가 생길 수밖에 없다 만약 XP가 아닌 WIN98일경우는 위의 벤치마킹은 변할것이다 WIN98의 경우는 상주메모이가 100M안 쪽이므로 성능은 2.8이 더 우세한것이다 여기서 보듯이 우리는 컴퓨터의 맞는 운영체제를 먼저 골라야하며 그것이 안될 경우 운영체제에 맞는 사양으로 맟추어야 할것이다

댓글 없음: