[오피니언] 컴퓨터 시장을 움직이는 힘: 무어의 법칙에서 사용자 경험으로

2016. 6. 1. 03:28    작성자: 닥터몰라


* 인텔 공동 창업자 고든 무어

컴퓨터 시장이 태동한 때부터 근래까지 컴퓨터 시장을 움직여온 가장 큰 힘은 무어의 법칙이었습니다. 

18-24개월마다 칩에 집적되는 트랜지스터의 수가 2배가 된다는 '무어의 법칙(Moore's law)'은 인텔의 창립자 중 한 명인 고든 무어가 1965년에 창안한 법칙입니다. 무어의 법칙은 실제로 컴퓨터 공학의 발전에 크게 이바지했습니다. 인텔 등의 칩 제조사들은 무어의 법칙을 지켜내기 위해 막대한 투자를 통해 꾸준히 집적 소자의 수를 늘려나갔습니다. 

소프트웨어 제작자들과 IT 기업가의 경영자들도 무어의 법칙에 큰 영향을 받았습니다. 컴퓨터가 급속하게 발전하던 시절 소프트웨어 제작자들은 자신의 프로젝트가 끝날 때의 컴퓨터 성능을 무어의 법칙을 통해 예측하고 그에 맞춰 소프트웨어를 제작해 나갔던 것입니다. 기업가들 역시 무어의 법칙을 통해 제품의 가격과 성능 등을 예측해볼 수 있었습니다.

"무어의 법칙이 성능과 가격에 대해 신뢰할만한 예측을 제공한 덕분에 두 세대에 걸쳐 스티브 잡스와 빌 게이츠  등의 젊은 기업가들이 자신들의 진보적인 제품들에 대해 가격을 예측할 수 있었던 것이다."

- 스티브 잡스 전기 중 발췌

한계를 맞은 무어의 법칙

하지만 이런 무어의 법칙도 이제 한계를 향해 다가가고 있습니다. 

먼저, 많은 일반 사용자용 소프트웨어 개발자에겐 더 이상 무어의 법칙이 그렇게 중요하지 않습니다. 본격적으로 멀티코어 시대가 개막하기 전에는 더 많은 트랜지스터는 그 자체로 더 높은 싱글코어 성능을 의미하는 것이었습니다. 투입되는 트랜지스터 개수가 늘어나면 이를 더 넓은 아키텍처 구현에 투입하거나 더 깊은 파이프라인 구현에 투입함으로써 클럭당 처리 명령어의 수를 늘리거나 클럭 속도를 끌어올릴 수 있습니다.

하지만 언제까지나 이런 접근이 가능한 건 아니었습니다. 아키텍처의 넓이가 넓어진다는 것은 단일 코어가 동시에 더 많은 명령어를 처리할 수 있다는 것을 의미합니다. 사실 백엔드의 연산 유닛을 여러 개 투입하는 것은 그리 어려운 일이 아닙니다. 하지만 단일 스레드 내에서 실행되는 명령어들을 디코드하고 백엔드에 적절하게 투입해주는 프론트엔드는 아키텍처의 넓이가 넓어질 수록 기하급수적으로 복잡해집니다.(프론트엔드가 적절하게 보강되지 않는다면 백엔드에 연산 유닛을 추가해 봐야 성능이 많이 증가하지 않습니다.) 

즉, 추가되는 트랜지스터가 적절히 성능의 향상으로 연결되기 어려운 시점에 도달한 것입니다. 이 시점에서 인텔은 추가되는 트랜지스터를 아키텍처의 넓이를 늘리는 데 쓰는 게 아니라 파이프라인을 깊게 파는 데 사용했습니다. 파이프라인 스테이지를 잘게 쪼개면 한 파이프라인 스테이지에서 계산이 완료되는 시간이 짧아지기 때문에 이론적으로 파이프라인 스테이지가 짧아지는 만큼 클럭 속도를 올릴 수 있습니다.

그러나 현실은 인텔의 생각만큼 녹록지 않았습니다. 이렇게 탄생한 아키텍처가 그 악명 높은 '넷버스트' 아키텍처입니다. 현대의 집적회로들이 공통으로 사용하는 트랜지스터는 CMOS 트랜지스터인데 이런 CMOS 기반의 트랜지스터는 스위칭이 일어날 때(1->0 또는 0->1) 대부분의 전력 소모가 발생합니다. 일반적으로 트랜지스터의 스위칭은 클럭에 맞춰서 일어나고, 따라서 높은 클럭 속도는 많은 전력소모를 끌어냅니다. 

CPU 내에는 수많은 도선들이 있는데 이 도선들 역시 저항을 가진 물질이기 때문에 많은 전력소모는 그 자체로 많은 발열을 의미합니다. 이 시점에 도달하면 클럭 속도를 올리는 데 가장 큰 장벽은 더는 회로의 지연시간이 아니라 회로에서 발생하는 열이 되기 때문에 아무리 트랜지스터를 투입해 파이프라인을 깊게 파더라도 어느 수준 이상으로 클럭을 올리는 일은 쉽지 않습니다. 게다가 깊은 파이프라인에 따르는 여러 단점들(파이프라인을 파는 데 들어가는 비용, 높은 분기예측 패널티 등)은 넷버스트 아키텍처를 수렁에 몰아넣기에 충분했습니다.

아키텍처를 넓혀서 성능을 높이는 방법과 파이프라인을 깊게 파서 성능을 올리는 방법이 모두 한계에 이르자 CPU 제조사들은 멀티코어로 눈을 돌렸습니다. 

적당한 넓이의 아키텍처로 이루어진 코어를 여러 개 집적함으로써 기존에는 타임쉐어링 방식으로만 이뤄지던 스레드를 병렬적으로 처리할 수 있도록 하여 성능 향상을 꾀하는 방법입니다. 2000년대 이후로는 이 방법이 같은 양의 트랜지스터를 투입했을 때 가장 손쉽게 성능을 향상시킬 수 있는 방법이 되었습니다. CPU 제작자들은 여전히 무어의 법칙을 지켜내면서 성능을 꾸준히 향상할 수 있게 되었다고 기뻐했습니다. 하지만 세상에는 고민 총량 불변의 법칙이란 게 있다고 하지요. CPU 제작자들이 덜어낸 양만큼의 고민이 소프트웨어 제작자들에게 넘어왔습니다.

* 명령어 레벨의 병렬성을 간단하게 설명한 그림; '프로그래머가 몰랐던 멀티코어 CPU 이야기'에서 발췌

멀티코어화의 진행

본격적인 멀티코어화가 진행되기 전의 방식은 '명령어 레벨의 병렬성'을 달성함으로써 단일코어의 성능을 높이는 방법이었습니다.

'명령어 레벨의 병렬성'은 실제 프로그램이 실행되는 시점에서 CPU의 내부 회로가 명령어들을 가장 효율적인 순서대로 투입해서 백엔드들의 사용율을 최대한 끌어올리는 방법입니다. 이런 '명령어 레벨의 병렬성'을 구현하는 회로 설계가 CPU 설계에서 가장 어려운 부분인 데다 위에서 언급했던 일정 이상 아키텍처의 넓이를 넓히기 어려운 이유이기도 합니다. 다시 말하면 '명령어 레벨의 병렬성'은 순전히 CPU의 일이라는 뜻입니다. 즉, 소프트웨어 개발자들은 별다른 노력 없이도 CPU 성능향상의 과실을 따 먹을 수 있는 위치에 있었습니다.

하지만 멀티코어화의 진행은 더 이상 '명령어 레벨의 병렬성'이 이전만큼 빠르게 증가하지 않는다는 것을 의미합니다. 멀티코어화를 통해 얻을 수 있는 성능향상은 '스레드 레벨의 병렬성'에 기인합니다. 스레드는 하드웨어가 아닌 운영체제가 관리하여 각각의 코어에 할당하게 되며, 프로그램의 적당한 스레드화가 이루어져 있지 않다면 아무리 CPU 코어가 늘어난다 한들 실질적인 성능향상은 없습니다. 즉, 이제 병렬성을 이용해 성능을 높일 책임이 소프트웨어 개발자들에게 넘어온 셈입니다. 

소프트웨어 개발자들은 이런 현실을 보고 ‘공짜 점심은 끝났다.’라는 말을 하지요. 하지만 멀티코어에서 완벽하게 구동될 수 있는 병렬 프로그램을 짜는 것은 매우 어려운 일입니다. 병렬 프로그램을 짜는 데는 더 숙련된 프로그래머가 필요한 데다가 병렬 프로그램은 필연적으로 더 많은 버그와 더 많은 작업시간을 요구합니다.

"병렬 프로그램을 작성하는 일은 순차적인 프로그램 작성에 비해 무척 어렵다. 일례로 데이터 구조의 일종인 데크(double ended queue)를 작성하는 일은 학부생 프로그래밍 숙제 수준에서 해낼 수 있는 일이지만, 규모가변성(scalability)이 보장되면서 쓰레드-세이프(thread-safe)한 데크 작성은 논문으로 낼 수 있는 수준이 된다."

- 서광열의 프로그래밍 언어 이야기, '소프트웨어 트랜잭션 메모리와 하스켈' 포스트에서 발췌

물론 1분 1초를 아끼는 것이 중요한 서버나 HPC, 슈퍼컴퓨터 등에서 구동되는 소프트웨어는 저런 어려움이 있더라도 성능을 증가시키는 것이 훨씬 중요하기 때문에 여전히 꾸준한 성능 향상을 경험하고 있습니다. 하지만 시장은 1초를 아끼는 것이 상대적으로 덜 중요한 일반 사용자용 소프트웨어 시장에서는 완벽한 병렬 프로그램을 구현하는 것이 경제성이 없다는 판단을 내렸습니다. 

그 결과 멀티코어화가 본격화된 지 10년을 넘어가는 현시점에서도 일반 사용자용 소프트웨어는 멀티코어의 능력을 완전히 활용하지 못하고 있는 게 현실입니다. 이런 시장 상황에서 인텔은 데스크탑 CPU의 코어 수를 늘릴 필요를 찾지 못했습니다. 이전의 제온 리뷰에서도 짚어드린 것처럼 무어의 법칙에 맞게 성능을 꾸준히 높이고 있는 서버용 CPU 시장과 그렇지 못한 데스크탑 CPU 시장의 간극은 점점 더 커지고 있습니다.

새로운 동력이 필요한 PC 시장

결국 여러 요소가 복합적으로 작용해 무어의 법칙 자체는 간신히 유지되고 있지만 일반 사용자가 사용하는 CPU, 소프트웨어는 더는 무어의 법칙 수혜를 입지 못하고 있습니다. 게다가 무어의 법칙 역시 그리 오래 유지되지는 못할 것으로 보입니다. ‘네이처’가 지적한 것처럼(링크) 반도체 업계는 무어의 법칙을 더 이상 유지시키기 어려운 지경에 있습니다. 

무어의 법칙을 창안한 고든 무어가 세운 인텔은 이 법칙을 계속해서 지속시키겠노라 호언하고는 있지만 지난 3월 공식적으로 ‘틱-톡’ 개발주기를 포기하고 ‘P-A-O’ 개발주기를 도입한다고 발표함으로써 간접적으로 무어의 법칙을 유지하기가 어렵다는 것을 선언했습니다.(링크)

무어의 법칙이 멋지게 동작할 때의 컴퓨터 시장에서 칩 제조사는 사용자 경험이 아니라 무어의 법칙을 만족하는 칩을 만들어내기만 하면 됩니다. 하드웨어 제조사는 제품을 기획할 때 무어의 법칙이 예측해준 성능과 가격을 바탕으로 제품을 기획하고 생산할 수 있습니다. 어차피 성능 향상이 PC 교체의 가장 큰 유인이기에 더 복잡한 접근은 필요하지 않습니다. 

소프트웨어 개발자 역시 무어의 법칙이 예측해주는 성능 향상치에 맞춰 더 늘어난 컴퓨팅 파워로 구현해낼 수 있는 멋진 소프트웨어를 개발합니다. 마지막으로 소비자는 빨라진 체감 속도와 기존에 경험하지 못했던 소프트웨어를 경험하기 위해 PC를 교체했습니다. 하지만 위에서 언급한 것처럼 일반 소비자 시장에서의 PC는 하드웨어, 소프트웨어 양면에서 성장의 벽을 만났습니다. 이제 무어의 법칙은 소비자 시장에 절대적인 영향을 끼치는 요소가 아닙니다.

하드웨어 제조사들이 지금까지 해 온 것처럼 단순히 성능만을 올린 신제품 PC를 출시하게 된다면 그 판매량은 꾸준히 떨어질 수밖에 없을 것입니다. 그리고 실제로 지금 PC 시장에서 일어나는 일이 바로 이것입니다. 현재 PC 시장의 정체 혹은 역성장을 외부의 요인(아이폰이 촉발한 스마트폰 붐)으로 설명하려는 시도들이 많습니다. 

물론, 현재 PC 시장의 정체에 이런 외부 요인이 영향을 주지 않았다고 볼 수는 없습니다. 하지만 PC 시장의 정체의 좀 더 근본적인 원인은 지금까지 시장을 움직이던 힘이었던 무어의 법칙이 더 이상 동작하지 않기 때문입니다. 하지만 달리 말해 무어의 법칙이 아닌 시장을 움직이는 힘을 찾아낸다면 PC 시장의 정체를 해소할 수 있을 것입니다.


* 출처 : DAZeINFO

무어의 법칙에서 사용자 경험으로

스마트폰 붐 이후 정체된 지난 몇 년간의 PC 시장에서 전체 시장과는 달리 꾸준히 판매량을 늘려온 기업이 있었습니다. 

바로 애플입니다. 애플은 새로운 제품군을 만들어 낼 때 그 제품만의 아이덴티티를 확실히 부여합니다. 그리고 이는 PC 시장에서도 여실히 드러났습니다. 스티브 잡스가 복귀한 후 애플을 회복세에 올려놓았던 형형색색의 아이맥부터, 최초 발매 당시 그 어떤 랩탑 컴퓨터보다 얇고 가벼웠던 맥북에어, 높은 픽셀 밀도와 고해상도 고품질의 디스플레이를 탑재했던 맥북프로 레티나 등의 제품들은 모두 PC에 ‘성능’이 아닌 다른 가치를 부여한 제품들입니다. 

분명 맥 제품군의 성능은 동 시기 PC와 크게 다르지 않습니다. 게다가 가격은 오히려 비슷한 성능의 PC에 비하면 더 비쌉니다. 그럼에도 불구하고 맥 판매량은 전체 PC 시장을 역행하여 꾸준히 성장해왔습니다. 비단 애플뿐만 아니라 현재 인기를 얻고 있는 PC들은 단지 훌륭한 가격대 성능비를 갖춘 제품이 아니라 성능 이외의 가치를 부여해 ‘완제품’으로써의 아이덴티티를 갖춘 제품들입니다. 종이보다 가볍다고 광고하는 LG의 그램 등의 제품 역시 좋은 예시가 될 수 있겠지요.

더 나은 디자인, 얇고 가벼운 랩탑, 훌륭한 품질의 디스플레이 등 성능 외적인 요소, 하지만 현재 PC 시장에서 큰 힘을 발휘하고 있는 이 요소들을 한 단어로 표현하자면 ‘사용자 경험’이 가장 적합한 단어가 될 듯합니다. 이미 이런 변화는 곳곳에서 일어나고 있습니다. 개인용 컴퓨터의 개발 프로세스가 이전과는 달라졌습니다. 

이제는 칩 제조사들이 하드웨어 제조사들과 협력하여 ‘사용자 경험’을 높이기 위해 노력을 기울이고 있습니다. 더 얇고 더 가벼운 PC를 위해 인텔이 코어 M 등의 저전력 CPU 모델을 출시하는 것이 대표적인 예시가 될 수 있을 것입니다. 최근 여러 업체가 VR을 적극적으로 밀고 있는 것 역시 이 연장 선상에서 이해할 수 있습니다. VR은 일반 사용자가 지금까지 경험하지 못했던 새로운 사용자 경험이고 이를 위해 칩 제조사인 엔비디아, AMD, ARM부터 각종 하드웨어 제조사, 소프트웨어 개발자들이 힘을 합치고 있습니다.

오랜 시간 동안 개인용 컴퓨터 시장은 무어의 법칙에 의해 움직여 왔습니다. 물론 사용자는 성능 향상의 과실을 먹을 수는 있었지만 사용자의 요구는 항상 제1순위가 아니라 2순위나 3순위쯤에 자리 잡고 있던 것이 지금까지 컴퓨터 시장의 모습이었습니다. 말할 것도 없이 컴퓨터 업계들이 갑자기 사용자 경험에 관심이 많아진 것이 사용자의 불편함에 공감하기 시작했기 때문은 아닐 것입니다. 

이유야 어쨌건 앞으로의 개인용 컴퓨터 시장은 사용자의 요구가 1순위에 놓이게 될 것입니다. 개인용 컴퓨터 시장은 바야흐로 대변혁을 맞이하고 있습니다. 이를 빠르게 인지하고 잘 대처하는 업체는 앞으로도 PC 시장에서 기회를 찾을 수 있을 것이고 그렇지 못한 업체는 점차 PC 시장에서 도태될 것입니다. 사용자 경험이 주도하는 PC 시장은 오히려 무어의 법칙이 주도하던 지난 수십 년보다 일반 사용자에게 더 큰 만족을 줄 수도 있을 것입니다. 

새로운 힘이 이끌어가는 PC 시장의 미래를 그려보며 이만 글을 맺을까 합니다. 

필자: IYD (Inside Your Device)

여러분 손바닥 위, 책상 아래, 가방 속 전자기기들. 그 안의 모든 것. IYD가 파헤칩니다.



참조
• The chips are down for Moore’s law

출처 표기
• 본 글은 IYD와 Back to the Mac 블로그에 공동으로 게재됩니다. 출처 표기시 양 쪽을 병기해주시기 바랍니다.


    
  1. Blog Icon
    pub

    문외한이어서 기술적인 부분까지 완전히 이해하지는 못하겠지만, '사용자경험'이라는 기치가 기존의 CPU설계 체계의 한계와 이렇게 밀접하게 관련된 현상이라는 걸 지금까지는 모르고 있었어요. 굉장히 흥미로운 글이네요. 잘 읽었습니다 :)

  2. 잘 읽었습니다~

  3. 깊이 있는 좋은 글 잘 읽었습니다.

  4. Blog Icon
    드림

    수준 높은 글 잘읽었습니다~!

  5. Blog Icon
    와우!

    감사합니다. 잘 읽었습니다.

  6. Blog Icon
    Alex

    오, 갑자기 네이쳐를 비롯해서 컴퓨팅 기반 기술에 대해 상당히 깊은 내용이 나와서 놀랐습니다. One 님이 아닌 다른 필진이시네요. 몰랐던 사실을 많이 배우고 갑니다! :)

  7. 이 글을 보고 더 확실 해 진 것이 있네요.
    멀티 스레드를 제대로 활용 하는 프로그램을 만드는 것은 쉬운 일이 아니다.

    즉, 프로그램의 개발에 막대한 투자와 os와의 협업을 같이 하지 않는 기업의 소프트웨어는 기능의 발전은 있겠으나 cpu, gpu 의 풀 파워를 끌어내기는 쉽지 않다.

  8. Blog Icon
    라비

    좋은 글 감사합니다~^^
    지식이 없는 유저들의 입장에서는
    파워 유저들의 프로그램 활용기나 강좌 같은것이
    새로운 사용자 경험을 하게 해주는 것 같아요~@

    맥에 입문해서는 더더욱 그런 것 같구요.
    원님이나 여러 글쓴이 분들의 수고를 받아 풍요롭고 즐거운 맥라이프가 이어져 가네요 감사합니다!

  9. 흩어진 지식을 모아주는 맛 있는 글이었습니다.

  10. Blog Icon
    정현석

    Back to the Mac 필자 분들은 기자들 보다 더 뛰어나신것 같습니다
    이런 수준 높은 칼럼은 요즘 찾아보기가 힘들더군요~

  11. Blog Icon
    jarreplus

    글 잘 읽었습니다. xeon 리뷰도 읽는데 시간이 좀 걸렸네요.

  12. Blog Icon
    dummyfactory

    재밌게 잘 읽었습니다.
    더불어 OS X에서 개발자를 대신해 큐를 관리하고 멀티 스레드상에서의 작업 단위를 할당하여
    실행하는 애플의 오픈소스 API인 Grand Central Dispatch를 같이 다뤄도 재미있었을것 같습니다.

  13. Blog Icon
    강한승

    그런데, 한 가지 궁금한 것이 저같은 소비자는 더 빠르고 더 강력한 컴퓨터환경을 원하지 않나요?
    요즘 나오는 게임들보면 사양이 후덜덜하죠.
    게임뿐만 아니라 다른 소프트웨어들도 쾌적하게 돌리기 위해서는 더 빠른 컴퓨터가 필요합니다.
    그런데 여기서 또 한 가지 궁금한 것이 컴퓨터만 발전하면 무의미하다고 생각해요.
    왜냐하면 인간의 사고하는 속도나 능력은 개선되어지지 않은 상태니까요.
    결국, 저는 미래에는 인간 자체를 튜닝해야할 것 같아요.
    마치, 공각기동대같은 이야기이지만. 결국, 이것이 미래인 것 같아요.

  14. Blog Icon
    나르디

    본문에서 말 하는 것은 cpu 입니다.

    강한승// 님이 말씀 하신 것은 gpu 단에서 거의 해결이 되는 문제거든요.^^

    요즘은 cpu와 gpu가 하는 일을 극명하게 분업 하는 경향이 강합니다.

    물론 애플에서는 cpu에서 하는 일도 gpu로 처리 하는 경향이 강해지고 있지요.^^

  15. Blog Icon
    LDW

    많은 것을 생각해볼 수 있는 좋은 글이었습니다. 감사합니다 :)

  16. 정말로 멀티코어에서도 안전성이 보장되는 코드를 짜기는 쉽지 않을 뿐더러 버그를 잡기도 힘들죠
    디버그 할 때 마다 멀쩡하다가도 실행시켜보면 이상한 값을 뱉어내곤 합니다... 힘내라 암드