기본 콘텐츠로 건너뛰기

무어의 법칙은 끝났을까? (7)





 - 빅칩의 문제점


 앞서 설명한 것처럼 트랜지스터 숫자를 두 배로 늘린다고 해서 성능이 두 배가 되지는 않습니다. 하지만 코어를 더 넣는 것처럼 성능 향상을 위한 가장 손쉽고 확실한 방법은 역시 크고 복잡한 칩을 만드는 것입니다. 하지만 동시에 크고 복잡한 프로세서는 더 제조가 힘들다는 단점이 있습니다. 특히 현대적인 프로세서의 경우 복잡도가 매우 올라가면서 한 번에 실수없이 제조하기가 어려워지고 있습니다. 


 이 문제를 설명하기 위해서 타자기에 종이로 글자를 타이핑하는 데 만약 한글자만 틀려도 문서 전체를 버려야 하는 상황을 생각해 보겠습니다. 이 경우 대략 1000글자 가운데 50% 정도 확률로 1개 정도 오타가 난다고 가정하면 가능하면 문서 전체의 글자수를 줄이는 것이 좋을 것입니다. 10분 걸려서 1000자 정도 문서를 만들면 버릴 가능성이 50% 이지만, 10분 걸려서 500자 문서 2장을 작성하면 문서 한 장당 버릴 가능성은 25%로 줄어듭니다.


 프로세서 제작과정에서도 비슷한 일이 일어납니다. 크기가 커질 수록 한 번에 오류 없이 제작할 가능성이 줄어들어 수율이 급격히 줄어듭니다. 칩의 크기가 두 배가 되면 웨이퍼 당 나오는 제품의 수가 절반 보다 더 감소하게 되는 것입니다. 이런 문제를 극복하기 위해 CPU나 GPU 업계는 문제가 되는 부분만 잘라내고 파는 방법을 사용합니다. 


 예를 들어 스카이레이크 SP의 경우 앞서 소개했듯이 12/20/30 코어 다이를 이용해서 ~10코어, ~18코어, ~28코어 제품을 내놓는 것입니다. 어차피 문제가 없는 제품을 만들 가능성이 낮으니까 아예 여분의 코어를 더 만든 후 문제 되는 부분을 레이저로 컷팅한 후 판매하는 것이죠. 그러면 수율을 크게 올려 제품의 판매 단가를 낮출 수 있습니다. 


 물론 종종 전혀 문제가 없는 칩이 나올 수 있는데, 주로 공정이 안정화된 이후 나오게 됩니다. 이 경우에는 완전체를 추가로 판매하면 됩니다. 브로드웰 EP이 경우 22코어로 처음에 등장했다가 나중에 조용히 24코어 제품을 등록한 사례가 있습니다. GPU 역시 동일한 과정을 거칩니다. 


 하지만 이렇게 해서 수율을 올린다해도 기본적으로 칩 면적이 두 배가 되면 생산량이 절반으로 감소하는 것은 피할 수 없는 결과입니다. 이에 대응할 수 있는 두 번째 방법은 아예 웨이퍼 자체의 크기를 늘리는 것입니다. 예를 들어 200mm 지름 웨이퍼보다 300mm 지름 웨이퍼를 사용하면 면적을 2.25배 늘릴 수 있으므로 그만큼 많은 칩을 생산할 수 있습니다. 


 물론 웨이퍼의 지름을 늘리면 그에 따라 생산 설비를 통째로 바꿔야 하기 때문에 비용이 꽤 많이 듭니다. 그래도 얻을 수 있는 제품의 숫자가 늘어나면 상쇄가 가능합니다. 쉽게 말해 생산 설비를 늘려 큰 제품을 많이 만든다고 할 수 있습니다. 현재는 주로 200mm, 300mm 웨이퍼가 많이 사용되지만 반도체 업계는 이보다 더 큰 450mm 웨이퍼를 도입해서 제조 단가를 더 낮추고 빅칩을 쉽게 생산할 수 있도록 제조 공정을 업그레이드 하고 있습니다. 




 그러나 이런 방법을 사용해도 제조할 수 있는 칩의 크기에는 물리적 한계가 분명히 존재합니다. 예를 들어 현재까지는 700-800㎟가 그 한계로 생각되고 있습니다. 세 번째로 생각할 수 있는 방법은 한 번에 큰 칩을 제조할 수 없다면 여러 개로 쪼갠 후 서로 연결시키는 방식입니다. AMD의 에픽이 경우 8코어 라이젠 프로세서 4개를 연결해서 172억개의 트랜지스터를 지닌 거대한 프로세서로 만들었습니다. 


 사실 하나의 CPU내에 여러 개의 다이를 넣어서 하나로 만드는 MCM 방식은 과거부터 널리 사용되어 왔습니다. 하지만 이 방법은 결국 CPU간, CPU와 메모리간에 데이터 전송량이 증가하는 경우 병목현상이 생기는 문제점이 존재합니다. AMD가 사용한 인피니티 패브릭은 이 문제에 대한 해결책이지만, 완전히 성능저하를 막을 순 없습니다. 이에 맞서기 위해 인텔은 Embedded Multi-Die Interconnect Bridge (EMIB)라는 새로운 방식을 공개했습니다. 






 

(출처: 인텔) 


 EMIB는 각 다이 간에 빠른 속도로 데이터를 주고 받을 수 있는 다리를 놓는 것에 비유할 수 있습니다. 이 방법으로 여러 개의 서로 다른 형태의 다이를 연결할 수 있으며 심지어는 서로 다른 제조 공정으로 만든 다이끼리도 연결이 가능하다고 합니다. EMIB는 전통적인 MCM 방식보다 더 진보된 형태의 다이간 연결 방식으로 앞으로 이를 이용해 과거에는 불가능했던 초대형 빅칩 제조가 가능할수도 있습니다. 


 마지막으로 생각할 수 있는 방법은 적층형 메모리에서 볼 수 있듯이 프로세서 역시 적층형으로 생산하는 것입니다. 각 프로세서 층간 연결은 TSV라는 실리콘 간 연결 통로를 따라 이뤄집니다. 이는 기술적으로 충분히 가능하지만, CPU나 GPU 같은 비메모리 분야에서는 잘 활용되지 않고 있습니다. 메모리에 비해 구조가 매우 복잡하고 클럭이 높아서 TSV로 연결하기가 만만치 않은데다 메모리와는 비교할 수 없을 정도로 발열량이 많은 등 여러 가지 문제가 있기 때문입니다. 


 CPU/GPU처럼 발열량이 많은 물건은 사실 표면적을 크게 하는 것이 올바른 접근일 것입니다. 다만 CPU/메모리/스토리지 처럼 이질적인 부분들을 TSV로 연결해서 매우 작은 면적에 하나의 시스템을 통째로 제조하려는 시도는 진행 중입니다. 아마도 IoT나 모바일 기기 등 매우 작은 크기의 장치에서 유용한 방법이 될 것입니다. 



 - 핫 스팟, 다크실리콘 등 기타 문제 


 다른 모든 물질과 마찬가지로 실리콘 역시 열을 받으면 팽창합니다. 그런데 문제는 실리콘 다이 전체가 동일하게 열을 받는 게 아니라 일부에 열이 집중된다는 점입니다. 이 문제는 이전부터 있어왔지만, 더 문제가 되기 시작한 건 프로세서가 멀티코어화 되고 내장 그래픽과 캐쉬처럼 여러 가지 다양한 구조를 지니게 되면서부터 입니다. 


 당연히 어떤 때는 여러 개의 코어 가운데 하나만 열을 많이 받고 어떤 때는 CPU는 여유가 있는데, 같이 있는 내장 그래픽 쪽이 풀로 가동될 수 있습니다. 따라서 요즘 나오는 프로세서는 정교한 온도 센서와 조절 기능을 가지고 있습니다. 참고로 아래 논문에서 초기 듀얼 코어인 애슬론 x2 프로세서의 열 지도를 확인할 수 있습니다. 



 핫 스팟 문제는 프로세서 성능을 떨어뜨리는 것은 물론 심한 경우 영구적인 물리적 손상까지 가할 수 있기 때문에 이를 해결하기 위한 여러 가지 방법이 나와있습니다. 그 가운데 가장 합리적인 해결 방법은 프로세서가 너무 열받지 않게 조절하는 것이죠. 쉽게 말해 발열량을 줄이는 것입니다. 두 번째 방법은 작업량을 가능한 균등하게 분배해 일부분만 과열되지 않고 전체적으로 열이 나게 만드는 것입니다. 




 최근에 나온 멀티 코어 CPU 가운데는 TDP가 큰 것도 있지 않느냐는 반문이 있을 수 있지만, 이 경우에도 싱글 코어 터보 부스트는 제한을 두고 있으며 최대 전력 소모는 모든 코어를 풀로 가동할 때 발생한다고 할 수 있습니다. 물론 쿨링 솔루션을 개선해서 프로세서가 전체적으로 쉽게 열을 식힐 수 있게 하면 이 문제를 더 줄일 수 있을 것입니다. 제조사에서 원가 절감 차원에서 그렇게 하지 않을 수도 있긴 하지만요. 


 핫 스팟만큼 전문적인 문제로 다크 실리콘 (Dark Silicon) 문제가 있습니다. 그런 만큼 사실 이런 댓글이 달린다는 것이 신기한데 연재 포스트의 초반에 다크 실리콘 문제로 더 이상 프로세서 발전은 어렵다는 댓글이 있었습니다. 다크 실리콘은 프로세서의 주어진 TDP에서 정상적인 동작 전압하에서도 전력이 공급되지 않는 부분(amount of circuitry of an integrated circuit that cannot be powered-on at the nominal operating voltage for a given thermal design power (TDP) constraint)을 이야기 합니다. 


 기술적으로 복잡하지만, 간단히 이야기하면 과거에는 트랜지스터가 미세화되면서 전압을 낮출 수 있었는데 최근 미세 공정에서는 이게 안되면서 실리콘에 전기가 통하지 않는 면적이 자꾸 늘어난다는 것입니다. 이는 2011년에 발표된 논문에서 잘 설명되었으며 이 논문은 1000회 이상 인용되었습니다. 이는 다크 실리콘이 프로세서 업계에서 매우 중요한 문제라는 점을 보여주는 사례입니다. 


H. Esmaeilzadeh et al., "Dark silicon and the end of multicore scaling", in 38th International Symposium on Computer Architecture (ISCA), pages 365–376, 2011.:  ftp://ftp.cs.utexas.edu/pub/dburger/papers/ISCA11.pdf


 하지만 이것 때문에 더 이상 프로세서의 성능이 증가하지 못한다는 이야기는 우리의 직관과 어긋납니다. ARM/x86 프로세서는 물론이고 GPU까지 이 논문이 나온 2011년 이후에도 성능이 크게 향상되었기 때문입니다. 물론 제조사들이 다양한 방법으로 다크 실리콘 문제를 극복해왔기 때문입니다. 


 대표적인 방법은 클럭을 낮추는 것입니다. 클럭을 낮춘다는 이야기는 결국 프로세서가 소모하는 전력을 낮춘다는 이야기로 프로세서 전체에 줄 전력이 부족하다면 아예 전체 소비량을 줄여 문제를 해결하는 것으로 이해할 수 있습니다. 다만 모든 프로세서에 클럭을 낮추면 싱글 코어 성능이 너무 떨어지므로 코어 1-2개만 클럭을 높여 성능 저하 문제를 회피하는데 이는 CPU업계에서 흔히 볼 수 있는 접근법입니다. 이 방법은 저전력 CPU를 만들때도 유용하게 사용할 수 있지만 앞서 말한 핫 스팟 문제가 있기 때문에 터보 클럭을 무제한으로 올릴 수는 없습니다. 


 다른 방법은 프로세서 면적을 크게 늘리되 대신 다양한 유닛을 넣는 것입니다. 동시에 여러 가지 용도의 로직을 넣으면 다크 실리콘이 될 부분을 다양한 용도로 활용할 수 있게 됩니다. 어차피 모든 실리콘을 동시에 사용할 수 없다면 다양한 기능을 지닌 유닛을 포함시켜 일부만 활용하는 것도 방법입니다. 이는 최근 강조되는 헤테로지니어스 혹은 이기종 컴퓨팅 방식이기도 합니다. (CPU+GPU나 저전력 + 고성능 CPU 등) 


 물론 핫 스팟이나 다크 실리콘 모두 100% 회피할 수 있는 방법은 없으며 사실 더 많은 트랜지스터를 집적한 프로세서일수록 골치 아픈 문제로 작용하게 된다고 합니다. 하지만 그것 때문에 프로세서 성능 발전이 멈춘건 아니라는 점은 우리가 지금 보고 있는 대로입니다. 다양한 방법으로 이를 회피하거나 최소화하면서 더 많은 트랜지스터를 집적한 칩이 계속해서 등장하고 있습니다. 


 일단 이 이야기는 여기까지 마무리하지만, 사실 우리가 사용하는 모든 고성능 프로세서는 이렇게 다양한 어려움을 극복한 결과물입니다. 그리고 지금도 문제를 극복하기 위한 노력이 이어지고 있어서 당분간은 더 빠른 프로세서가 계속해서 등장할 것으로 생각됩니다. 


 연재 포스트가 제법 길어지면서 이제는 본래 주제와 벗어난 이야기까지 많이 들어간 것 같습니다. 다음에 본론으로 돌아가 마무리를 해보겠습니다. 

댓글

이 블로그의 인기 게시물

통계 공부는 어떻게 하는 것이 좋을까?

 사실 저도 통계 전문가가 아니기 때문에 이런 주제로 글을 쓰기가 다소 애매하지만, 그래도 누군가에게 도움이 될 수 있다고 생각해서 글을 올려봅니다. 통계학, 특히 수학적인 의미에서의 통계학을 공부하게 되는 계기는 사람마다 다르긴 하겠지만, 아마도 비교적 흔하고 난감한 경우는 논문을 써야 하는 경우일 것입니다. 오늘날의 학문적 연구는 집단간 혹은 방법간의 차이가 있다는 것을 객관적으로 보여줘야 하는데, 그려면 불가피하게 통계적인 방법을 쓸 수 밖에 없게 됩니다. 이런 이유로 분야와 주제에 따라서는 아닌 경우도 있겠지만, 상당수 논문에서는 통계학이 들어가게 됩니다.   문제는 데이터를 처리하고 분석하는 방법을 익히는 데도 상당한 시간과 노력이 필요하다는 점입니다. 물론 대부분의 학과에서 통계 수업이 들어가기는 하지만, 그것만으로는 충분하지 않은 경우가 많습니다. 대학 학부 과정에서는 대부분 논문 제출이 필요없거나 필요하다고 해도 그렇게 높은 수준을 요구하지 않지만, 대학원 이상 과정에서는 SCI/SCIE 급 논문이 필요하게 되어 처음 논문을 작성하는 입장에서는 상당히 부담되는 상황에 놓이게 됩니다.  그리고 이후 논문을 계속해서 쓰게 될 경우 통계 문제는 항상 나를 따라다니면서 괴롭히게 될 것입니다.  사정이 이렇다보니 간혹 통계 공부를 어떻게 하는 것이 좋겠냐는 질문이 들어옵니다. 사실 저는 통계 전문가라고 하기에는 실력은 모자라지만, 대신 앞서서 삽질을 한 경험이 있기 때문에 몇 가지 조언을 해줄 수 있을 것 같습니다.  1. 입문자를 위한 책을 추천해달라  사실 예습을 위해서 미리 공부하는 것은 추천하지 않습니다. 기본적인 통계는 학과별로 다르지 않더라도 주로 쓰는 분석방법은 분야별로 상당한 차이가 있을 수 있어 결국은 자신이 주로 하는 부분을 잘 해야 하기 때문입니다. 그러기 위해서는 학과 커리큘럼에 들어있는 통계 수업을 듣는 것이 더 유리합니다. 잘 쓰지도 않을 방법을 열심히 공부하는 것은 아무래도 효율

R 스튜디오 설치 및 업데이트

 R을 설치한 후 기본으로 제공되는 R 콘솔창에서 코드를 입력해 작업을 수행할 수도 있지만, 보통은 그렇게 하기 보다는 가장 널리 사용되는 R 개발환경인 R 스튜디오가 널리 사용됩니다. 오픈 소스 무료 버전의 R 스튜디오는 누구나 설치가 가능하며 편리한 작업 환경을 제공하기 때문에 R을 위한 IDE에서 가장 널리 사용되어 있습니다. 아래 링크에서 다운로드 받습니다.    https://www.rstudio.com/  다운로드 R 이나 혹은 Powerful IDE for R로 들어가 일반 사용자 버전을 받습니다. 오픈 소스 버전과 상업용 버전, 그리고 데스크탑 버전과 서버 버전이 있는데, 일반적으로는 오픈 소스 버전에 데스크탑 버전을 다운로드 받습니다. 상업 버전의 경우 데스크탑 버전의 경우 년간 995달러, 서버 버전은 9995달러를 받고 여러 가지 기술 지원 및 자문을 해주는 기능이 있습니다.   데스크탑 버전을 설치하는 과정은 매우 쉽기 때문에 별도의 설명이 필요하지 않을 것 같습니다. 인스톨은 윈도우, 맥, 리눅스 (우분투/페도라)에 따라 설치 파일이 나뉘지만 설치가 어렵지는 않을 것입니다. 한 가지 주의할 점이라면 R은 사전에 반드시 따로 설치해야 한다는 점입니다. R 스튜디오만 단독 설치하면 아무것도 할 수 없습니다. 뭐 당연한 이야기죠.   설치된 R 스튜디오는 자동으로 업데이틀 체크하지 않습니다. 따라서 업데이트를 위해서는 R 스튜디오에서 Help 로 들어가 업데이트를 확인해야 합니다.     만약 업데이트 할 내용이 없다면 최신 버전이라고 알려줄 것이고 업데이트가 있다면 업데이트를 진행할 수 있도록 도와주게 됩니다. R의 업데이트와 R 스튜디오의 업데이트는 모두 개별적이며 앞서 설명했듯이 R 업데이트는 사실 기존 버전과 병행해서 새로운 버전을 새롭게 설치하는 것입니다. R 스튜디오는 실제로 업데이트가 이뤄지기 때문에 구버전을 지워줄 필요는

150년 만에 다시 울린 희귀 곤충의 울음 소리

  ( The katydid Prophalangopsis obscura has been lost since it was first collected, with new evidence suggesting cold areas of Northern India and Tibet may be the species' habitat. Credit: Charlie Woodrow, licensed under CC BY 4.0 ) ( The Museum's specimen of P. obscura is the only confirmed member of the species in existence. Image . Credit: The Trustees of the Natural History Museum, London )  과학자들이 1869년 처음 보고된 후 지금까지 소식이 끊긴 오래 전 희귀 곤충의 울음 소리를 재현하는데 성공했습니다. 프로팔랑곱시스 옵스큐라 ( Prophalangopsis obscura)는 이상한 이름만큼이나 이상한 곤충으로 매우 희귀한 메뚜기목 곤충입니다. 친척인 여치나 메뚜기와는 오래전 갈라진 독자 그룹으로 매우 큰 날개를 지니고 있으며 인도와 티벳의 고산 지대에 사는 것으로 보입니다.   유일한 표본은 수컷 성체로 2005년에 암컷으로 생각되는 2마리가 추가로 발견되긴 했으나 정확히 같은 종인지는 다소 미지수인 상태입니다. 현재까지 확실한 표본은 수컷 성체 한 마리가 전부인 미스터리 곤충인 셈입니다.   하지만 과학자들은 그 형태를 볼 때 이들 역시 울음 소리를 통해 짝짓기에서 암컷을 유인했을 것으로 보고 있습니다. 그런데 높은 고산 지대에서 먼 거리를 이동하는 곤충이기 때문에 낮은 피치의 울음 소리를 냈을 것으로 보입니다. 문제는 이런 소리는 암컷 만이 아니라 박쥐도 잘 듣는다는 것입니다. 사실 이들은 중생대 쥐라기 부터 존재했던 그룹으로 당시에는 박쥐가 없어 이런 방식이 잘 통했을 것입니다. 하지만 신생대에 박쥐가 등장하면서 플로팔랑곱