멀티코어의 클럭은 코어당 클럭?
 Meho 미디어로그가기
 조회 : 6330 , 2010/01/02 10:17
요즘은 쿼드코어는 흔하고 옥타코어까지 나오려는 상황에 아직도 멀티코어에 대해 무지한 학생이 질문을 올려봅니다.

요즘 나오는 CPU들은 거의 대부분 듀얼코어 이상인 멀티코어인데요, 여기에 클럭 주파수가 2.5GHz, 3.0GHz이렇게들 말하곤 합니다. 그런데, 멀티코어에서는 이 주파수가 코어당 동작속도인지 싸그리 몽땅 합쳐서 프로세서의 최대 동작주파수인지 궁금합니다.
이에 대해 인텔이나 AMD 홈페이지에서 기술관련 페이지를 찾아봐도 알 수가 없더군요. 물론 검색까지 해봤지만 제 검색능력으로는 역부족이었습니다.

답변 부탁드려요~~
121.64.210.xxx
불법 광고글 신고하기
 답변 1
 답변 : 멀티코어의 클럭은 코어당 클럭?
허접프로그래머   2010/01/03 11:59 [이의제기/추가질문] [부실답변 신고]
 
멀티 코어 프로세서는 코어끼리 동일한 속도로 동작합니다. 한개 코어가 1.5기가로 동작하고 다른 코어는 3기가로 동각하는 것이 아니라는 거죠.

즉, 4개의 코어를 가진 프로세서가 2.5기가헤르쯔라고 되어 있다면 모든 코어가 다 해당 속도로 동작한다는 겁니다.

CPU는 클럭제네레이터에서 만들어진 클럭에 따라 움직입니다. 각 코어별로 동작속도가 달라진다면, CPU 간의 동기화가 어려워지고 코어별로 별도의 클럭 제네레이터를 구현해야 하며 이로 인해 얻을 수 있는 효과 자체가 극히 미비하기 때문에 별도로 클럭을 인가하지 않습니다.

최대 동작 주파수라고 하는 것은 좀 애매하고... 인증된 동작속도라고 생각하시면 되겠네요. 해당 프로세서를 더 높은 클럭에서 동작시키는 것이 오버클러킹이니까요.

참고가 되셨으면 좋겠네요.
221.138.200.xxx
이글 광고글로 신고하기
I
   이 게시물의 댓글 보기
  Meho ho5945님의 미디어로그 가기  / 10-01-03 13:25/ 이댓글에댓글달기
  그러니까 코어당 해당 클럭으로 동작한다는 말씀이신거죠? 그럼 모든 코어를 100%사용하는 어플리케이션이 있다면 처리량은 굉장하겠네요... 답변 감사합니다.^^
허접프로그래머 valkyrie님의 미디어로그 가기  / 10-01-03 22:36/
이론상으로는 해당 클럭의 프로세서 * 코어 수 만큼의 성능이 나옵니다만, 현실적으로는 불가능합니다.

실제 어플리케이션 하나가 멀티코어를 지원하는 경우, 연산을 나누어 처리하게 되는데, 대부분의 연산은 하나의 연산이 끝나면 그 결과값을 다른 연산의 인수로 사용하는 식으로 구성되게 됩니다.

즉, A 프로세서와 B 프로세서가 각각 a(a'), b(b') 라는 함수를 처리한다고 할때, a(a') 함수의 인수값으로 b(b') 함수의 결과값을 필요로 하는 경우가 생길 수 있지요. 이때 A 프로세서는 B 프로세서가 b(b')의 결과값을 보내줄 때 까지 대기 상태가 됩니다.

또 메모리에서 데이터를 읽고 쓰는데에도 동시에 여러개의 프로세서가 메모리를 사용할 수 없기 때문에 일종의 병목현상이 생길 수 있고요.

이런 이유로, 아무리 잘 만들어진 어플리케이션이라도 실제 멀티코어 프로세서에서는 코어 갯수 * 코어 성능 만큼의 성능은 나오지 않습니다. 보통 코어당 50% 정도의 성능만 향상된다고 해도 상당한 성능향상이지요.
Meho ho5945님의 미디어로그 가기  / 10-01-04 18:33/
확실히 그렇겠네요. 좋은 답변 감사합니다. 이제 확실히 이해가 됐습니다. 하지만 연산 대기상태는 정말 아쉽군요... 더욱 좋은 방식의 프로세서를 내놓을 수 있도록 저도 열심히 공부해야겠습니다!!
로그인 | 이 페이지의 PC버전
Copyright NexGen Research Corp. 2010