← 모든 글

엔지니어링 철학: 소피 윌슨

ARM 설계자 소피 윌슨

핵심 요약

  • 그는 지구상 거의 모든 휴대폰에 들어 있는 명령어 집합을 설계했습니다. 소피 윌슨은 Acorn Computers에서 1983년 10월부터 최초의 ARM, 곧 Acorn RISC Machine의 명령어 집합을 규정했고, 하드웨어는 Steve Furber가 만들었습니다. 그 작업에서 자라난 아키텍처는 2,300억 개가 넘는 칩에 실려 나갔습니다. 사람 수의 몇 배를 훌쩍 넘는 ARM 코어가 세상에 퍼져, 전 세계 스마트폰의 압도적 다수를 움직이고 있습니다.12
  • 가차 없는 단순함이 저전력을 거의 우연처럼 만들어 냈습니다. 최초의 ARM인 ARM1은 2만 5천 개 미만의 트랜지스터를 사용했습니다. 동시대 칩의 일부에 불과한 수였지만, 자기보다 몇 배나 큰 기계들을 앞질렀습니다. 스위칭하는 트랜지스터가 워낙 적었기에 소비 전력은 약 0.1와트 남짓에 그쳤습니다. Intel 386이 필요로 한 전력의 대략 20분의 1 수준이었습니다. 이 최소한의 설계는 속도를 위해, 그리고 단출한 팀이라는 제약 때문에 선택된 것이었습니다. 훗날 모바일을 정복한 저전력은 거기서 거의 우연처럼 떨어져 나왔습니다.34
  • 거인들을 이긴 두 사람짜리 프로젝트. 윌슨과 Furber는 한 손에 꼽을 만한 인원으로 경쟁력 있는 32비트 프로세서를 설계했습니다. 6502를 만든 회사에서 단 한 명의 엔지니어가 다음 CPU를 작업하는 모습을 보고, CPU를 만드는 데 군대가 필요하지는 않다는 결론을 내린 뒤의 일이었습니다. 윌슨은 실리콘이 존재하기도 전에 명령어 집합 전체를 808줄의 BBC BASIC으로 모델링했습니다.45
  • 그는 영국의 컴퓨팅 소양을 먼저 길러 냈습니다. ARM 이전에 윌슨은 BBC Micro를 공동 설계했고(시제품은 일주일도 안 되어 만들어졌습니다), 영국의 한 세대 학생들에게 프로그래밍을 가르친 언어인 BBC BASIC을 작성했습니다. (초기 Acorn 및 BBC 시절의 작업은 원래 Roger Wilson이라는 이름으로 발표되었으며, 그는 1994년에 성전환을 했습니다.)16

핵심 원칙

“무언가가 불가능하다는 사실을 모른다는 것은 당신의 작업에 흥미로운 영향을 미칩니다.” – 소피 윌슨6

프로세서 설계는 대개 덧셈입니다. 작동하는 기계에서 출발해 거기에 기능을 덧붙입니다. 새 명령어, 새 모드, 새 특수 사례를 말이죠. 하나하나가 어딘가의 어떤 프로그램에는 도움이 되고, 실리콘은 계속 싸지니, 마다할 이유가 없습니다. 그 결과 명령어 집합은 수십 년에 걸쳐 복잡성을 쌓아 가고, 추가될 때마다 디코더는 느려지고 하드웨어는 커지며 다음 추가는 더 어려워집니다. 버클리의 RISC 연구와 가혹한 실무적 한계로 벼려진 윌슨의 본능은 정반대 방향으로 달렸습니다. 기계가 반드시 해야 하는 일에서 출발해, 하중을 떠받치지 않는 것은 전부 덜어 냅니다. 남는 것이 빠를 만큼 작고, 옳을 만큼 단순하며, 단출한 팀이 실제로 만들 수 있을 만큼 저렴해질 때까지 말이죠.4

제약은 이론이 아니었습니다. Acorn은 작은 영국 회사였고, ARM 팀은 사실상 두 사람이었습니다. Intel과 Motorola가 이 문제에 쏟아부은 트랜지스터 예산도, 검증 인력의 군대도 그들에게는 없었습니다. 그러니 단순함은 취향의 선택이 아니었습니다. 칩이 존재할 수 있는 유일한 길이었습니다. 윌슨은 거의 모든 연산이 한 사이클에 끝나고, 디코더는 사소할 만큼 단순한 채로 머무르며, 전체가 비슷한 프로세서가 다섯에서 열 배나 많은 트랜지스터를 쓰던 시절에 2만 5천 개 미만의 트랜지스터 안에 들어맞는 명령어 집합을 설계했습니다.3 결핍이 우아함을 강제한 것입니다.

그리고 그 우아함은 아무도 설계하지 않은 배당금을 안겼습니다. 그렇게 적은 트랜지스터가 스위칭하는 칩은 전류를 거의 끌어 쓰지 않습니다. 최초의 ARM은 같은 시대의 Intel 386이 2와트에 가까운 전력을 필요로 하던 때에 약 0.1와트로 돌아갔습니다.3 당시 데스크톱 보조프로세서에서 저전력은 신기한 구경거리였습니다. 그러나 10년 뒤, 진짜 컴퓨터를 배터리로 돌아가는 휴대폰에 어떻게 넣을 것인가가 문제가 되자, 그 구경거리는 프로세서가 가질 수 있는 가장 값진 단 하나의 속성으로 드러났습니다. 설계를 본질까지 깎아 내면, 거저 얻은 효율이 승부를 가르는 바로 그것이 될 수 있습니다.

배경

소피 윌슨은 1957년 6월 리즈에서 태어나 Harrogate Grammar School을 다녔고, 케임브리지 Selwyn College에 진학해 처음 두 해는 수학을 공부하다 컴퓨터 과학으로 전공을 바꿨습니다.1 대학에 들어가기 전부터 이미 산업용 전자 시스템을 설계했으며, 1977년 여름방학에는 MOS Technology 6502를 중심으로 마이크로프로세서 기반 제어기를 만들었습니다. 하필이면 소 먹이 급여 장치였죠. 그 작업이 그를 케임브리지의 Acorn Computers로, 영국 마이크로컴퓨터 붐의 중심에 선 회사로 이끌었습니다.1

Acorn에서 그는 BBC Micro로 첫 발자취를 남겼습니다. 1981년, 국가적 컴퓨터 소양 프로젝트를 진행하던 BBC는 기계가 필요했습니다. Acorn이 계약을 따냈고, 윌슨은 그 설계에 결정적인 역할을 했습니다. 그의 말에 따르면 시제품은 일주일도 안 되어 만들어졌습니다.16 이어 그는 기계의 ROM에 내장된 인터프리터인 BBC BASIC을, 손으로 작성한 부동소수점 루틴까지 포함해 완성했습니다. BBC Micro는 100만 대 넘게 팔렸고 대부분 영국 학교로 들어갔으며, BBC BASIC은 한 세대의 영국 엔지니어들이 처음으로 접한 프로그래밍 언어가 되었습니다.16 (윌슨의 Acorn 및 BBC 작업은 원래 Roger Wilson이라는 이름으로 발표되었으며, 그는 1994년에 성전환을 했습니다.)1

결정적인 장은 1983년 10월에 시작되었습니다. 윌슨이 Acorn 자체 프로세서, 곧 Acorn RISC Machine, ARM의 명령어 집합을 설계하기 시작한 때입니다. Steve Furber는 하드웨어 아키텍처를, 즉 3단 파이프라인과 배럴 시프터를 이끌었고, 윌슨은 기계가 무엇을 할 수 있는지를 정의하며 명령어 집합 전체를 808줄의 BBC BASIC으로 시뮬레이션해 작동을 입증했습니다.5 최초의 실리콘인 ARM11985년 4월 26일 VLSI Technology로부터 도착해 단번에 작동했습니다. 갓 만든 프로세서로서는 거의 들어 본 적 없는 결과였습니다.13 가장 유명한 일화는 그 직후에 나왔습니다. 칩이 워낙 전력을 적게 끌어 쓴 탓에, 처음 개발 시스템에 꽂혔을 때 자체 전원이 제대로 연결되기도 전에 I/O 라인을 통해 전류를 끌어당겨 살아나 버린 것입니다. 팀은 누설 전류에 가까운 것으로 돌아갈 만큼 검약한 무언가를 만들어 낸 셈이었습니다.5 윌슨은 ARM이 분사된 뒤에도 컨설턴트로 가까이 머물렀고, 2001년부터는 Element 14의 FirePath 프로세서 수석 설계자가 되었습니다. 이 회사는 훗날 Broadcom에 인수되었고, FirePath는 ADSL 광대역 모뎀에 쓰인 신호 처리 코어였습니다.1 그는 2013년 왕립학회 회원(Fellow of the Royal Society)으로 선출되었고, 2019년 CBE 훈장을 받았으며, 2022년에는 David Patterson, John Hennessy, Steve Furber와 함께 Charles Stark Draper Prize를 공동 수상했습니다.1

작업

ARM 명령어 집합: 더 단순하고 작은 하드웨어로 더 많은 일을 해내다

명령어 집합에서 출발합시다. 윌슨의 원칙이 실리콘이 되는 곳이 바로 거기이기 때문입니다. 프로세서의 명령어 집합은 소프트웨어와 맺는 계약입니다. 곧 프로세서가 수행할 줄 아는 연산의 전체 목록이죠. 1980년대 초의 지배적 설계들이 따랐던 유혹은 그 목록을 풍성하게 만드는 것이었습니다. 한 번에 많은 일을 하는 복잡한 명령어, 온갖 상황을 위한 주소 지정 모드, 그 모두를 해석하는 마이크로코드 말이죠. 윌슨이 받아들인 축소 명령어 집합(Reduced Instruction Set) 철학은 정반대에 걸었습니다. 각각 한 클록 사이클에 끝나는, 작고 규칙적인 단순한 명령어들의 집합이 전체적으로 더 빠르게 돌아가고 디코딩에 훨씬 적은 하드웨어를 요구한다는 것이었습니다.4

윌슨은 교과서적인 RISC 합의를 넘어 한 가지 아이디어를 밀어붙였고, 그것이 이 아키텍처에서 가장 영리한 부분입니다. 거의 모든 명령어에 붙는 조건부 실행입니다. 통상적인 프로세서에서 두 동작 사이의 선택은 비교에 이어지는 분기, 곧 코드의 이쪽이나 저쪽으로의 점프를 뜻합니다. 분기는 비쌉니다. 파이프라인 프로세서는 이미 분기 뒤의 명령어들을 가져와 디코딩하기 시작했기 때문입니다. 분기가 일어나면 그 투기적 작업은 버려지고, 파이프라인은 다시 채워지는 동안 멈춰 섭니다. 윌슨의 ARM은 거의 모든 명령어가 자기 자신의 4비트 조건 코드를 지니게 해서, 조건이 거짓이면 명령어가 그저 아무 일도 하지 않게 합니다. 그렇지 않았다면 분기가 필요했을 짧은 조건 논리 구간이 일직선의, 분기 없는 코드가 됩니다. 파이프라인은 결코 멈추지 않고, 이를 떠받치는 하드웨어는 거의 공짜입니다. 명령어당 4비트와 약간의 비교 논리면 됩니다.24

이 하나의 기능 안에 철학 전체가 들어 있습니다. 조건부 실행은 병목인 분기를 제거합니다. 트랜지스터 더미를 거느린 영리한 분기 예측기를 더해서가 아니라, 기존 명령어들을 거의 비용 없이 조금 더 표현력 있게 만들어서 말이죠. 더 단순하고 작은 하드웨어에서 더 큰 능력이 나오는 것입니다. 윌슨은 실리콘에 새기기 전에 이런 방식으로 설계 전체를 검증했습니다. 808줄의 BBC BASIC으로 시뮬레이터를 작성하고, 실제 프로그램이 상상 속 기계에서 컴파일되어 효율적으로 돌아가는지 확인한 것이죠.45 그 절제는 결과에 그대로 드러납니다. 2만 5천 개 미만의 트랜지스터, 그리고 제작소에서 돌아오자마자 단번에 작동한 실리콘 말입니다.3

BBC BASIC과 BBC Micro

ARM 작업이 있기 전에, 윌슨은 영국의 컴퓨팅을 소양 있게 만든 기계와 언어를 지었습니다. BBC가 1980년대 초 컴퓨터 소양 프로젝트(Computer Literacy Project)를 시작했을 때, 기준이 될 마이크로컴퓨터가 필요했습니다. 윌슨이 일주일도 안 되어 함께 짜낸 시제품을 앞세운 Acorn의 입찰이 1981년 출시된 BBC Micro가 되었습니다.16 튼튼하고, 확장 가능하며, 교육에 맞춰진 이 기계는 100만 대 넘게 팔렸고 그 대부분이 영국 학교로 들어갔습니다.6

기계의 영혼은 소프트웨어였고, 그것이 윌슨의 것이었습니다. 그는 기계의 ROM에 새겨진 인터프리터인 BBC BASIC을, 부동소수점 산술 루틴까지 손으로 작성해 만들었습니다. BBC BASIC은 가정용 컴퓨터 언어치고는 유난히 강력했습니다. 구조적이고, 빠르며, 호기심 많은 학생이 BASIC에서 곧장 6502 기계어로 내려갈 수 있게 해 주는 인라인 어셈블러까지 갖췄습니다. 한 세대의 영국 엔지니어들에게 그것은 처음으로 작성해 본 언어였고, 명령어를 타이핑하던 데서 그 아래의 프로세서를 이해하는 데로 건너가는 다리였습니다.16 바로 그 본능, 곧 기계를 소프트웨어로 모델링하고 명령어 단위에서부터 이해한다는 그 본능이야말로 윌슨이 훗날 ARM을 설계할 때 쓴 바로 그것입니다. 그는 직전에 자신이 작성한 언어로 한 프로세서의 명령어 집합을 시제품화했던 것입니다.5

단순함이 빚은 저전력이 어떻게 모바일을 정복했나

여기서 우연이 역사가 됩니다. ARM1은 데스크톱용 빠른 보조프로세서로 구상되었고, 그 적은 트랜지스터 수는 속도와 두 사람짜리 팀의 한계 때문에 선택된 것이었습니다. 저전력은, 곧 같은 시대 Intel 386의 거의 2와트에 맞선 약 0.1와트는, 스위칭할 실리콘이 워낙 적은 데서 온 부수 효과였습니다.3 1985년 콘센트에 꽂힌 데스크톱에서 그 검약함은 각주에 불과했습니다.5

그러다 세상의 모양이 바뀌었습니다. 1990년대에 이르자 흥미로운 질문은 더 이상 “책상 위에서 얼마나 빠른가”가 아니라 “배터리 안에 얼마나 많은 연산을 담을 수 있는가”였습니다. 그리고 그 질문에서 가장 중요한 속성은 와트당 성능이었는데, ARM은 거의 홀로 태어날 때부터 검약했습니다. Acorn은 1990년 이 설계를 별도 회사 ARM Ltd로 분사했고, 칩을 파는 대신 아키텍처를 라이선싱하는 사업 모델 위에 세웠습니다.1 라이선시들은 작고, 차갑고, 효율적인 코어를 휴대폰에, 음악 플레이어에, 라우터에, 배터리 수명이나 발열이 벽이 되는 그 어디에든 떨궈 넣을 수 있었습니다. 윌슨이 2만 5천 개 미만의 트랜지스터로 깎아 낸 그 아키텍처는 모바일 시대의 기본 프로세서가 되었고, 지금까지 2,300억 개가 넘는 ARM 기반 칩이 출하되었습니다.2 승부를 가른 것은 날것의 속도가 아니었습니다. 가차 없는 단순함이 거저 넘겨준 효율, 누구도 그것이 필요해질 줄 알기 10년 전에 건네받은 그 효율이었습니다.

FirePath, Broadcom, 그리고 신호 처리에서의 두 번째 막

윌슨은 ARM에서 멈추지 않았습니다. 아키텍처가 분사되고 그가 컨설턴트로 남은 뒤, 그는 Element 14에서 FirePath의 수석 설계자가 되었습니다. Acorn에서 갈라져 나와 2000년 Broadcom에 인수된 회사였죠. FirePath는 ADSL 광대역을 위한 디지털 신호 처리(DSP) 코어로, 평범한 구리 전화선 위로 고속 인터넷을 밀어 보낸 기술이었습니다.1 DSP 작업은 범용 CPU 설계와는 다른 분야입니다. 작업 부하는 끊임없이 쏟아지는 산술 연산의 흐름이고, 아키텍처는 그 특정 문제에서의 처리량을 중심으로 빚어져야 합니다. 윌슨이 범용 명령어 집합과 특화된 신호 처리기 양쪽에서 의미 있는 작업을 했다는 사실은, 밑바탕의 기량이 어떤 한 가지 묘수가 아니라 작업 부하가 진정으로 무엇을 요구하는지를 묻고 그 이상은 아무것도 짓지 않는 습관임을 말해 줍니다.1

방법

BBC BASIC, ARM 명령어 집합, FirePath를 가로질러 읽어 보면 같은 동작들이 거듭 나타납니다. 윌슨의 방법은 구호라기보다 일련의 변치 않는 다짐에 가깝습니다.

하중을 떠받치는 부분만 남을 때까지 덜어 낸다. 그를 규정하는 습관은 뺄셈입니다. ARM은 부품을, 곧 명령어와 모드와 마이크로코드를 떼어 내며 만들어졌습니다. 남은 것이 빠를 만큼 작고, 단출한 팀이 단번에 옳게 해낼 만큼 단순해질 때까지 말이죠. 그 일반적 교훈은 실리콘을 훌쩍 넘어 전해집니다. 가장 강한 설계는 대개 그 안에 든 것이 가장 적은 설계이며, 그 절제란 하나만 더 덜어 내면 무너질 때까지 계속 깎아 내는 것입니다. 이것은 명령어 집합 차원의 최소한의 가치 있는 제품입니다. 진짜로 제 일을 해내는 가장 작은 것을 내보내는 것이죠.4

결핍을 원망하지 말고 결핍이 우아함을 강제하게 둔다. 윌슨에게는 Intel의 트랜지스터 예산도 검증 군대도 없었지만, 그는 그것을 핸디캡으로 여기는 대신 넉넉한 예산의 팀이라면 십중팔구 짓지 않았을 더 깔끔한 무언가로 아키텍처를 몰아가게 두었습니다. 진지하게 받아들인 제약은 설계의 도구입니다. 정반대의 본능, 곧 Jim Keller의 “트랜지스터는 공짜다”는 실리콘이 풍부한 자원일 때 이깁니다. 윌슨의 본능은 실리콘이 희소할 때 이기며, 자신이 어느 국면에 있는지 아는 것이야말로 진짜 기량입니다.34

실리콘에 새기기 전에 소프트웨어로 입증한다. 윌슨은 트랜지스터 하나를 놓기 전에 ARM 명령어 집합 전체를 808줄의 BBC BASIC으로 모델링하고 실제 프로그램을 시뮬레이션에 돌렸습니다. 비싸고 되돌릴 수 없는 단계는 맨 마지막에, 싸고 빠른 반복은 맨 앞에 왔습니다. 이것은 하드웨어에 적용된 증거의 관문입니다. 설계가 작동한다고 믿는 게 아니라, 실제로 돌려서 지켜보는 것이죠.45

비용을 더하지 않고 능력을 더한다. 조건부 실행이 그 대표적 동작입니다. 거의 추가 하드웨어 없이 분기 병목을 죽이는, 더 표현력 있는 명령어 말이죠. 교훈은 적은 능력을 위해 많은 복잡성을 치르는 변화가 아니라, 적은 복잡성으로 많은 능력을 사 오는 변화를 찾으라는 것입니다. John Carmack이 고정된 하드웨어에서 불가능해 보이는 성능을 짜낼 때 쓴 바로 그 수단의 경제학과 같습니다.24

가르치는 물건을 짓는다. 세상의 휴대폰을 돌리는 프로세서를 짓기 전에, 윌슨은 한 나라의 아이들에게 프로그래밍을 가르친 언어를 지었습니다. BBC BASIC은 의도적으로 다가가기 쉬우면서도 그 아래의 기계에 대해 정직했습니다. BASIC에서 어셈블리로 내려갈 수 있었으니까요. 강력한 물건을 동시에 가르칠 수 있는 물건으로 만드는 것은 드물고 과소평가된 절제이며, 도구가 쓰일 뿐 아니라 배워질 수도 있어야 한다고 여기는 Bjarne Stroustrup 같은 언어 설계자들이 공유하는 것입니다.6

영향의 사슬

그를 빚은 이들

버클리와 스탠퍼드의 RISC 연구. 작고 규칙적인 단일 사이클 명령어 집합이 크고 복잡한 것을 이긴다는 축소 명령어 집합 아이디어는 1980년대 초의 학계 RISC 프로젝트들에서 나왔고, 윌슨과 Furber는 이를 ARM에 의도적으로 받아들였습니다. 그들은 그 원칙을 가져다 조건부 실행을 더하며 교과서 너머로 밀어붙였지만, 단순한 쪽이 더 빠르다는 근본적인 베팅은 연구 공동체의 것이었습니다. (형성적 영향)

MOS Technology 6502와 단 한 명의 엔지니어. 윌슨은 6502로 기량을 닦았습니다. 초기 Acorn 기계와 BBC Micro 안에 든 싸고 단순한 프로세서였죠. Acorn 팀이 그 칩 제조사를 방문해 사실상 한 사람이 다음 버전을 설계하고 있는 모습을 보았을 때, 그 교훈이 박혔습니다. CPU를 만드는 데 군대가 필요하지는 않다는 것 말이죠. 그 관찰이 두 사람짜리 ARM 프로젝트를 생각할 수 있는 일로 만들었습니다. (직접적 영향)

Steve Furber. ARM은 진정한 동반 작업이었습니다. 윌슨이 명령어 집합을, 곧 기계가 무엇을 할 수 있는지를 정의했다면, Furber는 그것을 해내는 하드웨어를, 곧 파이프라인과 배럴 시프터를 설계했습니다. 어느 한쪽 절반만으로는 칩이 아닙니다. 협업이 곧 칩입니다. 그들은 거의 40년 뒤 그 공로로 Draper Prize를 함께 받았습니다. (직접적 영향)

그가 빚은 것들

현대의 모든 스마트폰. 윌슨이 설계하고 40년에 걸쳐 진화한 명령어 집합은, 세계 휴대폰의 압도적 다수와 방대한 범위의 임베디드 기기에 들어 있는 프로세서입니다. 2,300억 개가 넘는 칩이죠. 사람들이 매일 손에 쥐는 것의 이만큼을 빚어낸 엔지니어는 드뭅니다. (분야를 규정한 영향)

Apple Silicon과 와트당 성능의 시대. ARM의 라이선싱 모델과 그 효율은 저전력·고성능 설계의 자연스러운 토대가 되었고, 그 계보는 모든 iPhone의 칩을 거쳐 마침내 Apple Silicon Mac까지 이어집니다. 모바일 컴퓨팅 시대는 이 아키텍처의 검약함 위에 세워졌습니다.

한 세대의 영국 엔지니어들. BBC BASIC과 BBC Micro를 통해 윌슨은 한 나라에 프로그래밍을 가르쳤습니다. 그의 언어를 품은 컴퓨터 소양 프로젝트의 기계는, 영국 소프트웨어·하드웨어 인재의 엄청난 비율에게 진입로가 되었습니다.

관통하는 줄기

윌슨은 이 시리즈의 또 다른 위대한 하드웨어 정신의 거울상입니다. Jim Keller는 실리콘을 자유롭게 써서 자신의 칩을 이기게 만들었습니다. 더 넓은 파이프라인, 더 많은 실행 유닛, 모든 병목을 죽일 더 많은 트랜지스터를 동원한 것이죠. 실리콘이 싸고 풍부한 자원이라는 베팅 위에서요. 윌슨은 거의 아무것도 쓰지 않음으로써 자신의 칩을 이기게 만들었습니다. 2만 5천 개 미만의 트랜지스터로 말이죠. 작은 영국 회사의 두 사람짜리 팀에게는 실리콘과 엔지니어링 노력이 공짜인 자원이 아니라 희소한 자원이었기 때문입니다. 자기 국면 안에서는 둘 다 옳습니다. 그리고 여기에 이 시리즈가 거듭 맴도는 반전이 있습니다. 속도와 결핍 때문에 선택한 윌슨의 검약함이, ARM을 모바일 시대의 프로세서로 만든 저전력을 낳았고, 그것은 날것의 성능이 세운 어떤 제국보다도 큰 제국이라는 것입니다. John Carmack이 주어진 고정 하드웨어를 통달하라 말하고 Bjarne Stroustrup이 쓰지 않는 것에는 비용을 치르지 말라 말하는 곳에서, 윌슨은 이렇게 말합니다. 거의 아무것도 남지 않을 때까지 덜어 내라, 그리하면 거저 얻은 효율이 승부를 가르는 그것이 될지 모른다. Keller는 써서 이겼고, 윌슨은 아껴서 이겼습니다. 그리고 그의 절약은 2,300억 개의 칩에 실려 나갔습니다. (시리즈 가교)

내가 여기서 얻는 것

내가 윌슨에게서 간직하는 교훈은 제약은 설계의 도구이지 변명거리가 아니라는 것입니다. ARM 이야기를 “자원이 전혀 없는데도 보라, 이렇게나 해냈다”로 읽기는 쉽습니다. 하지만 그것은 오독입니다. 그들은 제약에도 불구하고 성공한 게 아닙니다. 제약 때문에 성공한 것입니다. 트랜지스터 예산이 빈약한 두 사람짜리 팀은 바로크식 프로세서를 지을 수 없으니, 단순하고 단일 사이클인 설계로 떠밀렸고, 그것이 넉넉한 예산의 대안들보다 더 빠르고 훨씬 효율적인 것으로 드러난 것입니다. 더 많은 것을, 곧 더 많은 시간, 더 많은 연산, 더 많은 여유를 바라는 나 자신을 발견할 때면, 윌슨의 경력은 그 제약이 나를 더 나은 설계로 밀어붙이고 있을지도 모른다는 사실을, 내가 원망을 멈추고 제약이 그 일을 하도록 둔다면 그렇다는 사실을 상기시켜 줍니다.

두 번째 교훈은 아직 그 가치를 볼 수 없는 효율에 관한 것입니다. ARM의 저전력은 1985년에는 거의 쓸모가 없었습니다. 데스크톱 보조프로세서의 각주였죠. 그것이 10년 뒤, 세상이 주머니 속 컴퓨터를 원하게 되었을 때 컴퓨팅에서 가장 값진 속성이 되었습니다. 윌슨은 스마트폰을 내다보지 않았습니다. 그저 쓸 필요가 없는 것은 쓰기를 거부했을 뿐이고, 그 절제가 쌓여 제국이 되었습니다. 교훈은 “미래를 예측하라”가 아닙니다. 더 겸손하고 더 오래가는 것입니다. 낭비가 무해해 보일 때조차 자원을 낭비하지 말라. 오늘 구경거리처럼 보이는 검약함이 내일 모든 것이 딛고 설 토대가 될 수 있기 때문입니다. 이것은 절제의 렌즈로 읽은 품질이 유일한 변수다입니다. 가장 적은 것으로 해낸 올바른 설계는, 결코 계획할 수 없었을 무언가로 무르익습니다.

자주 묻는 질문

소피 윌슨은 무엇을 설계했나요?

소피 윌슨은 Acorn Computers에서 1983년 10월부터 최초의 ARM 프로세서, 곧 Acorn RISC Machine의 명령어 집합을 설계했으며, 하드웨어는 Steve Furber가 만들었습니다. 그 아키텍처는 이제 2,300억 개가 넘는 칩에 실려 나가며 세계 대부분의 스마트폰을 움직입니다. ARM 이전에 그는 BBC Micro를 공동 설계하고 거기에 내장된 언어인 BBC BASIC을 작성했습니다. 이후에는 Broadcom이 인수한 Element 14에서 FirePath DSP의 수석 설계자를 맡았습니다.125

최초의 ARM 프로세서는 트랜지스터를 몇 개나 사용했나요?

최초의 ARM인 ARM1은 2만 5천 개 미만의 트랜지스터를 사용했습니다. 수십만 개에 달하던 같은 시대의 비슷한 프로세서들에 비하면 작은 일부였죠. 스위칭하는 실리콘이 워낙 적었기에 칩은 약 0.1와트만 끌어 썼는데, Intel 386이 필요로 한 전력의 대략 20분의 1 수준이었습니다. 속도와 단출한 팀의 한계 때문에 선택된 그 최소한의 트랜지스터 수가, 훗날 ARM을 모바일 기기에서 지배적으로 만든 저전력 효율의 뿌리입니다.34

최초의 ARM 칩이 전원도 연결되지 않은 채 돌아갔다는 게 사실인가요?

네, 그리고 잘 기록되어 있습니다. 최초의 ARM1 실리콘이 1985년 4월 26일 VLSI Technology로부터 도착했을 때, 그것은 테스트한 첫 시도에 작동했습니다. 그 자체로 드문 성취였죠. 더욱 놀랍게도, 칩이 워낙 전력을 적게 끌어 쓴 탓에 개발 시스템에 꽂혔을 때 자체 전원이 제대로 연결되기도 전에 I/O 인터페이스를 통해 전류를 끌어당겨 살아나 버렸습니다. 설계가 워낙 검약한 나머지 사실상 누설 전류로 돌아간 셈인데, 이는 훗날 ARM을 규정하게 될 효율의 이르고도 우연한 징표였습니다.35

ARM 명령어 집합에서 조건부 실행이란 무엇인가요?

조건부 실행은 윌슨의 대표적인 설계 선택 중 하나입니다. 거의 모든 ARM 명령어가 4비트 조건 코드를 지녀, 조건이 참일 때만 실행되고 그렇지 않으면 아무 일도 하지 않습니다. 통상적인 프로세서에서 동작 사이의 선택은 분기를 요구하고, 분기가 일어나면 명령어 파이프라인이 비워지며 사이클이 낭비될 수 있습니다. 조건부 실행이 있으면 짧은 조건 논리 구간이 분기 없는 일직선 코드가 됩니다. 거의 추가 하드웨어 없이 더 큰 능력을 얻는 것, 그것이 ARM의 심장에 자리한 가차 없는 효율입니다.24


출처


  1. “Sophie Wilson,” Wikipedia. 1957년 6월 리즈 출생; Harrogate Grammar School; 케임브리지 Selwyn College(수학, 이후 컴퓨터 과학). BBC Micro(1981) 설계에 결정적 역할을 했으며 BBC BASIC 인터프리터를 작성. 1983년 10월 ARM(Acorn RISC Machine) 명령어 집합 설계를 시작; ARM1은 1985년 4월 26일 전달되어 “단번에 작동했다.” 이후 Element 14의 FirePath 프로세서 수석 설계자, 이 회사는 Broadcom에 인수됨. Acorn/BBC 작업은 원래 Roger Wilson이라는 이름으로 발표; 1994년 성전환. 영예로는 왕립공학한림원 회원(Fellow of the Royal Academy of Engineering, 2009), 컴퓨터역사박물관 펠로(2012), 왕립학회 회원(Fellow of the Royal Society, 2013), CBE(2019), Charles Stark Draper Prize(2022, David Patterson, John Hennessy, Steve Furber와 공동 수상) 등이 있다. 

  2. “ARM architecture family,” Wikipedia. “거의 모든 ARM 명령어에는 predication이라 불리는 조건부 실행 기능이 있으며, 이는 4비트 조건 코드 선택자로 구현된다.” Acorn RISC Machine 명령어 집합은 Acorn Computers에서 소피 윌슨이 개발했고 하드웨어는 Steve Furber가 맡았다; 첫 샘플은 1985년 4월 26일 처음 테스트했을 때 제대로 작동했다. “2,300억 개가 넘는 ARM 칩이 생산되어 … ARM은 가장 널리 쓰이는 명령어 집합 아키텍처 계열이다.” ARM2의 트랜지스터 수는 약 3만 개였다. 

  3. “ARM1 – Microarchitectures – Acorn,” WikiChip, 그리고 “DEVELOPMENT OF THE ARM CHIP AT ACORN,” University of Maryland (CMSC 411). 최초의 ARM 프로세서 ARM1은 소피 윌슨과 Steve Furber가 설계했고 VLSI Technology에서 3마이크론 공정으로 제작되어, 1985년 4월 26일 작동하는 실리콘을 내놓았다. 제작된 첫 시도에 작동한 것이다. 2만 5천 개 미만의 트랜지스터를 사용했으며 DEC VAX-11/780의 약 2배에서 4배에 이르는 성능을 달성했다. 트랜지스터 수가 적은 덕분에 전력 소비가 매우 적었다. 약 0.1와트로, Intel 386의 거의 2와트에 견주어진다. 

  4. “Sophie Wilson: ARM And How Making Things Simpler Made Them Faster & More Efficient,” Hackaday (2018년 5월 8일), 윌슨의 강연을 보도. 윌슨과 Furber는 “CPU가 아주 작은 명령어 집합만 실행하도록 만들어지면 더 빠르고 효율적으로 돌아갈 수 있다”는 버클리 RISC 개념에 ARM을 기반했으며, “정반대의 접근을 취해, 필요한 최소한의 뼈대만 남을 때까지 부품을 제거하여 기존 CPU보다 더 단순하고 더 적은 전력을 요구하는 칩을 만들었다.” 팀 규모에 관하여: 6502 제조사를 방문해 “한 사람이 이 CPU의 다음 버전을 작업하고 있음을 깨달았고”, 이는 “CPU를 설계하는 데 거대한 팀이 필요하지 않음”을 보여 주었다. 그들은 “BBC Micro에서 시뮬레이터를 만들어 회사의 다른 이들에게 이 접근이 가치 있음을 설득했다.” ARM의 명령어 조건부 실행에 주목하며, 이는 “모든 짧은 분기를 없앤다”고 적었다. 기사는 또한 테스트 프로세서의 전력 소비를 측정했을 때, CPU가 신호 라인을 통해 전달된 전력으로 돌아가고 있었던 탓에 멀티미터가 전력 흐름을 감지하지 못했다는 일화를 전한다. 

  5. “Happy birthday, ARM1. It is 35 years since Britain’s Acorn RISC Machine chip sipped power for the first time,” The Register (2020년 4월 27일). 최초의 ARM 마이크로프로세서들은 “1985년 4월 26일 오후 1시에” VLSI Technology, Inc.로부터 도착했고, “오후 3시에 화면에 ‘Hello World, I am ARM’이 표시되었다.” 소피 윌슨은 “32비트 마이크로프로세서의 명령어 집합 시뮬레이션을 808줄의 BBC BASIC으로 만들었으며”, Steve Furber는 “3단 파이프라인과 배럴 시프터를 갖춘 하드웨어 아키텍처에 집중했다.” 누설 전류 일화에 관하여: “최초의 ARM1 칩들은 워낙 적은 전력을 필요로 한 탓에, 공장에서 나온 첫 칩을 개발 시스템에 꽂아 테스트했을 때, 마이크로프로세서가 자체 전원이 제대로 연결되기도 전에 IO 인터페이스에서 전류를 끌어당겨 즉시 살아났다.” 초기 칩들은 “Intel의 80286을 능가하면서도 더 적은 전류를 들이켰다.” 

  6. “Sophie Wilson,” Computer History Museum (2012 CHM 펠로 프로필). 윌슨은 Steve Furber와 함께 BBC Microcomputer를 공동 설계했고(시제품은 일주일도 안 되어 완성), BBC Micro의 운영 체제를 설계했으며, BBC BASIC 인터프리터를 작성했다; BBC Micro는 10년 안에 100만 대 넘게 팔려 영국 학교에서 널리 쓰였다. 그는 32비트 ARM RISC 프로세서 아키텍처(1985)를 공동 설계했으며, 이는 이제 수십억 개의 기기에 쓰인다. 프로필은 그의 말을 기록한다. “무언가가 불가능하다는 사실을 모른다는 것은 당신의 작업에 흥미로운 영향을 미칩니다.” 

관련 게시물

엔지니어링 철학: 짐 켈러, 트랜지스터는 공짜다

짐 켈러는 AMD의 부활, 아이폰, 테슬라의 오토파일럿을 비롯한 수많은 제품 뒤의 칩을 설계했습니다 — 병목을 없애기 위해 실리콘을 아낌없이 쏟고 모든 것을 제1원리에서 다시 생각하는 방식으로 말입니다.

13 분 소요

엔지니어링 철학: 얀 르쿤, 세상을 배우다, 공개적으로

얀 르쿤은 합성곱 위에 딥 비전을 세웠고, 이후 진짜 지능은 더 큰 LLM이 아니라 세상을 비지도 방식으로 학습하고 그것을 공개적으로 발표하는 데서 나온다는 데 베팅했습니다.

13 분 소요

The Shader Gallery That Lied: Debugging 216 WebGL Presets

A user said the shader playground looked broken. Pixel-readback testing found 30 dead presets, 11 that never compiled, a…

11 분 소요