CPU, 코어 쓰레드 에 대하여 쉽게 설명하고 자 노력했습니다.

따라서 세심한 부분에서 상당한 차이를 가지지만...뭐 그냥 컨셉이려니 하고 넘어가주시고 

그냥 아..이런거 하고 살짝 읽어서 상식수준으로 이해하시면 됩니다.



CPU는 기본적으로 사무실이라고 생각하시면 됩니다.

코어는 사무실에서 일하는 직원이고요

쓰레드는 그 직원이 하는 일입니다..상사(사용자)가 던져주죠

여기에 첨언하여 요즘의 코어는 하나 안에 여러가지 유닛으로 나뉩니다.

정수스칼라/부동소수점스칼라/정수벡터/부동소수점벡터....등

다시말해 이 직원은 전화기와 타자기와 계산기를 다 따로따로 가지고 동시에 쓸수 있
다는겁니다.


옛날에는 사무실 하나당 직원이 하나였습니다.(싱글코어)

그러다가 요즘은 하나의 사무실에 여러명의 직원이 일을 하죠(멀티코어)


기본적으로 직원이 많으면 동시에 여러가지 일을 할수 있습니다.

그런데 상사가 보고서를 하나 써오라고 합니다.

그냥 별생각없이 보고서를 쓰라고 시키면 직원 혼자 쓰는게 전부 입니다.

나머지 직원은 할일이 없죠

따라서 능력있는 상사는 직원들에게 보고서 쓰는 부분을 나눕니다.

너는 데이타 수집해, 너는 문서 양식 만들어..

이런식으로요 이렇게 나누어서 시킬때 멀티코어를 지원하는 프로그램 이라고 합니다.


인텔은 여기서 하이퍼 쓰레딩이라는 기술을 만듭니다.

직원 한명이 두가지 일을 동시에 하게 만드는겁니다.

즉 전화받는 일을 하면서  보고서쓰는 일도 하는거죠

단점은 전화기가 하나이므로 동시에 2개의 고객상담은 불가능합니다.

일반적으로 상사가 시키는 일은 전화기,타자기,계산기 등을 다양하게 사용해야 합니다.

그런데 동시에 일을 시키면서 이 일에 사용되는 물건들을 교묘하게 겹치지 않게 

배열하면 매우매우 놀라운 효율을 내게 됩니다...

즉 한직원이 두직원분만큼 일을 할수 있게 되는거죠...

(옛날에도 전화받으면서 보고서쓰는 일은 가능했습니다...

다만 한번에 두가지일을 하질 못하니 이럴 필요가 있던 경우가 안많았던거죠)

문제는 .. 이거 무지하게 어렵습니다... 덕분에 하이퍼 쓰레딩 지원 프로그램의 수는 매우 적습니다.

더구나 의외로 사람은 비슷한 종류의 작업을 많이 시키죠...즉 고객상담이 많이 들어올때는 전화기만 불통나고

수식계산을 많이 해야 할때는 계산기만 붙들고 있게 됩니다...이러면 직원하나는 한번에 딱 한가지의 일밖에 못합니다.

(음..테라가 지원을 안했던 듯한 기억이 있네요...그냥 멀티코어만 지원하고 하이퍼쓰레딩은 지원 안했던듯....)


이리되자 AMD에서 클러스터 멀티쓰레딩이라는걸 들고 나옵니다...이게 바로 화제의 불도저의 컨셉입니다.

사람들이 많이 쓸만한 물건을 하나 더갖다 놓는 겁니다.

즉 직원 책상에 계산기를 한개가 아닌 두개를 놓는겁니다.

그럼 직원은 계산기를 사용해야 할때 동시에 두개의 일을 할수 있게 됩니다.

그럼 이런 질문이 가능합니다...아예 옛날부터 사람들이 많이 쓸만한 물건..

그러니까 계산기를 하나 더 갖다 놓으면 되지 않았냐고...

문제가 옛날엔 한 직원이 한번에 한개의 일밖에 못했거든요...그러니 계산기 두개 있어봐야 별 쓸모가 없었던거죠

(그 한가지 일에서 동시에 여러개의 계산기를 써야 할일이 생길때만 두개의 계산기가 다 돌아가니

완전히 쓸모없지는 않지만...효율이 떨어지는거죠..계산기 사주는데 돈은 더드는데 계산기 여래개 동시에 쓰는일은 적으니)

이제 한직원이 한번에 두개의 일을 할수 있게 되니 계산기가 두개있으면 엄청 효율이 높아지는 겁니다.

이것의 최대 장점은 직원 두명 두고 물건들 다 사줘서 책상 하나 꾸려주는것보다 

직원 하나 놓고 책상에 많이 쓰는 물건 한두개만 늘리는게 훨씬 싸게 들고 전체적인 효율이 높다는 겁니다.

이에 따라 사람들은 엄청나게 불도저를 기대하게 됩니다.


PS> 왜 계산기 하나를 늘리는게 이렇게 중요 할까요?

    고대의 CPU는 정수계산 하나밖에 계산을 못했습니다.

    소수점 계산을 하려면 이걸 정수로 바꿔서 계산해서 다시 소수점으로 바꿔야 했죠

    여기서 소수점만 계산하는 코프로세서 가 나옵니다...다시말해 보조프로세서 죠....비쌉니다...

    그러다 칩만드는 비용이 싸지자 CPU안에 흡수됩니다.

    

    그런데 ... 정수 계산이 많을까요? 소수점 계산이 많을까요?

    옛날부터 기본적으로 정수계산을 기본으로 만든데는 이유가 있습니다.

    소수점 계산은 만들기도 힘들고(돈이 많이 들고)

    결정적으로 생각보다 많이 안쓰입니다.
 
    80386까지 오직 정수계산유닛만이 PC에 존재했던데 근거가 있었던거죠

    (부동소수점 계산 유닛이 포함된 CPU, 80486는 1989년에 와서야 나오기 시작합니다.
  
     수학적인 계산이 필요한 부분에나 쓸모있었으니...

     즉 여러분이 사용하는 단순한 PC사용에 미치는 영향은 그렇게 까지 크지 않은 부분인겁니다.)

     (음..80386DX가 80387코프로세서가 80386SX에 포함된 물건이었던듯도 한데..뭐 세세한건 넘어가죠)