이 글은 Crash Course의 Computer Science를 보고 정리한 글입니다.
약 50년 이내에 소프트웨어는 복잡성에 있어서 많은 성장이 있었다. 종이테이프에 펀치 된 기계 코드에서 통합개발환경에서 컴파일된 객체 지향 프로그래밍 언어까지 이르렀다. 그러나 이러한 정교한 발전은 하드웨어의 개선 없이는 불가능했을 것이다.
컴퓨터 하드웨어의 힘과 정교함에서 폭발적인 성장을 인식하기 위해서는 전자 컴퓨팅의 탄생부터 살펴보아야 한다.
대략 1940년대부터 1960년대 중반까지 모든 컴퓨터는 개별 부품으로 제작되었으며 이들은 개별 구성 요소(Discrete Components)로 불렸고, 모두 유선으로 구성되었다. 예를 들면, ENIAC은 17000개 이상의 진공관, 70000개의 레지스터, 10000개의 콘덴서, 7000개의 다이오드로 구성되었고, 모두 5백만 건의 손수 납땜 연결이 필요했다. 더 많은 구성 요소를 추가하여 성능을 향상하는 것은 더 많은 연결, 더 많은 와이어와 더 복잡한 것을 의미하여 숫자의 폭력(Tyranny of Number)이라는 별명이 붙었다.
1950년대 중반에 트랜지스터가 상용화되었고 컴퓨터에 통합되었다. 트랜지스터는 진공관보다 훨씬 작고 빠르며 더 믿을만했지만 각 트랜지스터는 여전히 하나의 개별 부품이었다. 1959년에 IBM은 개별 진공관을 개별 트랜지스터로 대체하여 진공관 기반 "709"컴퓨터를 업그레이드했다. 새로운 기계인 IBM 7090은 6배 더 빠르고 가격은 절반이었다. 이 트랜지스터화 된 컴퓨터(Transistorized Computer)는 전자 컴퓨팅의 2세대로 일컬어진다. 그러나 더 빠르고 더 작으면서도 트랜지스터는 숫자의 폭력을 해결하지는 못했다. 수십만 개의 부품이 있는 컴퓨터를 물리적으로 제조하는 디자인을 다루는 것은 힘들었다. 이는 1960년대에 한계에 다 달았다. 컴퓨터 내부는 종종 거대한 전선의 엉킴들로 가득했다. 해답은 근본적인 복잡성을 꾸려 넣고, 새로운 수준의 추상화를 부추기는 것이었다.
1958년 텍사스 인스트루먼트에서 일하는 Jack Kilby가 돌파구를 뚫었다. 그는 "전자 회로의 모든 구성 요소가 완전히 통합된 전자 부품"을 시연했다. 간단히 말하면, 많은 개별 부품을 선으로 한꺼번에 잇는 대신, 새로운 하나의 부품 안에 많은 부품을 함께 넣는 것이다. 이를 집적 회로(Integrated Circuits; IC)라고 한다. 몇 달 후인 1959년, Fairchild 반도체 회사의 Robert Noyce는 IC를 실용적으로 만들었다. Kilby는 희귀하고 불안정한 재료인 게르마늄으로 IC를 만들었지만, Fairchild는 풍부한 실리콘을 사용했다.(실리콘은 지구 지각의 약 4분의 1을 차지한다.) 실리콘은 또한 더 안정적이며 따라서 더 믿을 만했다. 이러한 이유로, Noyce는 전자 시대를 열며 현대 IC의 아버지로 널리 인식된다. 또한 Fairchild 및 다른 많은 반도체 회사들이 기반을 두고 있는 실리콘 밸리가 등장하게 됐다. 초기에는 IC안에 트랜지스터가 몇 개 있는 단순한 회로가 들어있었다. 초기 웨스팅 하우스는 이전에 배운 논리게이트와 같은 간단한 회로를 하나의 부품으로 패키지화할 수 있었다.
IC는 컴퓨터 공학자들이 가능한 디자인의 무한 배열이 가능한 빌딩 블록을 사용하는 레고와 비슷하다. 그러나 그들은 어떤 시점에서 더 크고 많은 복잡한 회로를 구성하려면 전체 컴퓨터처럼 여전히 함께 배선되어야 했다. 이를 위해 엔지니어에게는 또 다른 혁신이 있었다. 인쇄 회로 기판(Printed Circuit Boards; PCB) 이것은 방대한 수의 선을 납땜하고 번들링 하는 대신, 대량 생산이 가능한 PCB는 부품들을 연결하기 위해 모든 금속 와이어를 에칭 했다. PCB와 IC를 함께 사용하면 정확히 같은 기능 회로를 만들어낼 수 있었다. 개별 부품으로 만든 것과 똑같은 기능을 하는 회로지만, 개별 부품과 꼬인 와이어는 훨씬 줄었다. 또한 더 작고 저렴하며 믿을만하다.
초기의 많은 IC는 1964년의 IBM 사례와 같이 단일 부품을 패키징 된 작은 부품을 사용하여 제조되었다. 그러나 정말 아주 작은 부품을 사용할 때조차 하나의 IC에 5개 이상의 트랜지스터를 사용하기가 어려웠다. 보다 복잡한 디자인을 달성하기 위해 모든 것을 바꾼 근본적으로 다른 제조 공정이 필요했다. 포토 리소그래피, 이것은 복잡한 패턴을 반도체 같은 물질에다 빛을 이용해 이동시키는 방법이다. 몇 가지 기본 작업이 있지만, 이러한 작업은 매우 복잡한 회로를 만드는 데 사용할 수 있다. 간단하면서도 광범위하게 살펴보자.
우선 실리콘 조각으로 시작한다. 왼쪽 그림과 같은 얇은 쿠키처럼 생긴 것을 웨이퍼(Wafer)라고 한다. 실리콘은 반도체이기 때문에 때때로 전기를 전도할 수도 있고 안 할 수도 있는 물질이다. 실리콘으로 만든 트랜지스터로 전기를 제어할 수 있다.
이제 웨이퍼를 복잡한 금속 회로의 밑판으로 놓고 실리콘 위에 보호막 역할을 하는 얇은 산화물 층을 추가한다. 그런 다음 특수 화학 물질인 포토 레지스트를 덮는다. 포토 레지스트는 빛에 노출되면 화학 변화가 일어나 용해성이 생기므로 다른 화학 물질로 씻어 낼 수 있다. 포토 레지스트는 그 자체로는 별로 유용하지 않지만, 포토 마스트와 함께 사용할 때 매우 강력하다.
포토 마스크는 마치 사진과 같이 필름 대신에 웨이퍼에 옮길 패턴이 그려져 있다. 포토 마스크를 웨이퍼 위에 놓고 강력한 조명을 켜서 작업을 수행한다. 마스크가 빛을 차단하는 곳의 포토 레지스트는 변경되지 않는다. 그러나 빛이 포토 레지스트에 닿는 곳은 화학적으로 변화되어 빛에 노출된 포토레지스트만 씻어 내어 선택적으로 산화물 층을 드러낸다.
이제 또 다른 특별한 화학 제품(주로 산)을 사용해서 노출된 산화물을 제거할 수 있으며, 작은 구멍을 전체 실리콘층까지 부식시킬 수 있다.
포토 레지스트 아래의 산화물층이 보호되어 있다는 점에 주목해라. 세정을 위해, 또 다른 특수 화학 물질을 사용해 남아있는 포토 레지스트를 닦아낸다. 이제 실리콘을 다시 볼 수 있고, 더 나은 전기전도를 위해 노출된 영역만 수정하길 원한다. 그러기 위해서 도핑(Doping)이라는 과정을 통해 화학적으로 바꿔야 한다. 대개 이것은 실리콘의 노출된 영역으로 침투하는 인과 같은 고온가스로 수행된다. 이것은 전기적 특성을 변경한다.
그러나 트랜지스터를 만들기 위해 여전히 몇 차례의 포토 리소그래피가 필요하다. 본질적으로 프로세스가 다시 시작된다. 먼저 포토 레지스트로 코팅된 새로운 산화막을 만들고, 도핑된 영역 위에 작은 창문을 낼 수 있는 새롭고 다른 패턴의 포토 마스크를 사용한다.
다시 강력한 조명으로 포토레지스트를 변경하고 산화막을 씻어낸다. 그리고 약을 투하하면서, 또 다른 가스로 실리콘의 일부 형태를 변환시킨다.
도핑 확산 및 부식 같이 같은 것들을 제어하기 위해서, 타이밍은 포토 리소그래피에서 매우 중요하다. 이 경우, 다른 영역 내부에 중첩된 작은 영역에만 약을 투하하기를 원한다. 이제 트랜지스터를 만들 준비가 다 되었다. 마지막 단계는 산화층에 채널을 만들어 작은 금속선을 넣어 트랜지스터의 다른 부분을 연결하는 것이다.
한번 더, 포토 레지스트를 덮고, 작은 채널을 부식시키는 새로운 포토 마스크를 사용한다.
이제 금속화라는 새로운 프로세스를 사용해 알루미늄 또는 구리와 같은 얇은 금속층을 증착할 수 있다.
그러나 매우 특정한 회로 디자인을 위해 부식시키려고 한다. 이전과 매우 유사하게 포토 레지스트를 덮고, 포토 마스크를 사용하고, 노출된 레지스트를 녹이고 노출된 금속을 제거하기 위해 화학 물질을 사용한다.
드디어 트랜지스터가 완성되었다. 실리콘의 세 가지 다른 부분을 연결하는 세 개의 작은 전선이 있다. 이 예시에서는 바이폴라 접합 트랜지스터(Bipolar Junction Transistor)라고 불리는 것을 만드는 특별한 방법으로 도핑되어 만들어졌다.
1962년에 실제로 특허를 냈고, 이 발명은 세상을 영원히 바꿔 놓았다. 유사한 단계를 사용하여 포토 리소그래피는 다른 유용한 전자소자를 만들 수 있다. 회로 연결에 필요한 모든 선을 포함하여 저항 및 콘덴서 모두를 단일 실리콘 조각으로 만든다. 예시에서는 하나의 트랜지스터를 만들었지만 현실에서 포토 마스크는 한꺼번에 수백만 가지의 세부 사항을 저장할 수 있다. 우리가 만들 수 있는 포토 마스크는 전체 웨이퍼를 사용하지만, 우리가 원하는 어떤 크기로든지 빛이 집중되고 투영될 수 있다는 이점을 이용할 수 있다. 마치 빔프로젝트를 이용하여 전체 스크린을 채우도록 비출 수 있는 것과 같은 방식으로 아주 작은 실리콘 패치 위에 포토 마스크를 집중시켜 엄청난 세부 묘사를 만들 수 있다.
한 개의 실리콘 웨이퍼로 보통 수십 개의 IC를 만들 수 있다. 전체 웨이퍼가 가득 차게 되면, 그것들을 잘라내 전자제품에서 늘 볼 수 있는 작은 검은색 직사각형 마이크로칩으로 포장한다.
각각 칩들의 핵심은 이러한 작은 실리콘 조각이다. 포토 리소그래피 기술이 발전함에 따라 트랜지스터의 크기는 작아지고, 밀도는 높아졌다. 1960년대 초반 IC는 5개 이상의 트랜지스터가 거의 포함되지 않았고, 실제로도 적합하지 않았다. 그러나 1960년대 중반에는 시장에서 100개 이상의 트랜지스터가 있는 IC를 보기 시작했다.
1965년 Gordon Moore는 대략 2년마다 재료와 제조의 발전 덕분에 두배의 트랜지스터를 같은 공간에 장착할 수 있는 추세를 볼 수 있었다. 이것을 무어의 법칙이라고 한다. 이것은 절대적인 법칙은 아니다. 그러나 좋은 표본이다.
IC가격도 1962년 평균 50달러에서 1968년 2달러로 급격히 떨어졌다. 오늘날엔 IC를 몇 센트로 살 수 있다. 더 작은 크기와 더 높은 밀도의 트랜지스터에는 다른 이점도 있다. 트랜지스터가 작을수록 이동해야 하는 부담이 적어져 상태 변환이 빨라지고 소비전력을 줄일 수 있다. 또한 소형 회로는 신호 지연이 적어 클럭 스피드도 빨라졌다.
1968년 Robert Noyce와 Gordon Moore가 팀을 이루어 새로운 회사를 설립했다. Integraged(통합)와 Electronics(전기) 단어를 조합하여 Intel(인텔)을 만들었다. 오늘날의 가장 큰 칩 제조업체이다. Intel 4004 CPU는 중요한 이정표였다. 1971년 출시된 IC는 마이크로프로세서(Microprocessor)라고 불리는 최초의 프로세서였다. 이것은 2300개의 트랜지스터를 포함하고 있다. 사람들은 하나의 칩 안에 든 전체 CPU로의 통합 수준에 놀라움을 금치 못했다. 불과 20년 전만 해도 전체 공간을 개별 구성 부품들로 채워야 했었다. 집적 회로의 새대, 특히 마이크로 프로세서는 컴퓨팅의 3세대로 안내했다. 그리고 인텔 4004는 시작에 불과했다. CPU안의 트랜지스터 수가 증폭했다. 1980년까지 CPU에는 3만 개의 트랜지스터가 들어갔다. 1990년까지 CPU에 들어가는 트랜지스터는 백만 개가 넘었다. 2000년까지 3천만 개의 트랜지스터, 2010년까지는 IC하나에 십억 개의 트랜지스터가 들어갔다. 이 밀도를 얻기 위해 포토 리소그래피로 가능한 최고 분해능력이 대략 1만 나노미터에서 오늘날 약 14 나노미터에까지 이르렀다.
물론 이러한 발전은 CPU에만 유용한 것이 아니다. 대부분의 전자 제품이 본질적으로 기하급수적으로 발전했다. 램, 그래픽 카드, 하드 드라이브, 카메라 센서, 그 밖의 모든 것이 말이다. iPhone 7의 A10 CPU와 같은 오늘날의 프로세서는 약 3억 3천만의 트랜지스터가 $1cm^2$크기의 IC에 장착되어 있다. 그리고 현대 기술자들은 트랜지스터를 하나씩 손수 설계하고 배치하지 않는다. 1970년대에 초대형 통합 또는 VLSI 소프트웨어가 대신 자동으로 칩 디자인을 생성하는 데 사용되었다. 논리 합성(Logic Synthesis)과 같은 기술을 사용하여 메모리 캐시와 같은 전체적인 고급 수준의 구성 요소를 놓을 수 있으며, 소프트웨어는 가능한 가장 효율적인 방법으로 회로를 생성한다. 많은 사람들이 이것을 4세대 컴퓨터의 시작이라고 여긴다.
불행히도 전문가들은 수십 년 동안 무어의 법칙의 종말을 예언해 왔고, 우리는 마침내 그것에 가까워지고 있을 수 있다. 추가적인 소형화로부터 방해하는 중요한 이슈가 두 가지 있다. 첫째, 포토 마스크에 특징을 만들 수 있는 정밀도에 대한 한계에 부딪혔다. 포토 리소그래피에 사용된 빛의 파장으로 인해 만들어진 웨이퍼에도 마찬가지이다. 과학자들은 이에 대응하여, 더 작고 작은 파장으로 더 미세한 특징을 투사할 수 있는 광원을 개발해 왔다. 두 번째 문제는 트랜지스터가 정말 매우 작아질 때, 전극이 수십 개의 원자로 분리되어 전자들이 갭을 뛰어넘어 양자 터널링(Quantum Tunneling)이라고 하는 현상이 일어날 수 있다. 트랜지스터가 전류를 누설하여 좋은 스위치를 만들지 못한다.
'컴퓨터공학 > 기초' 카테고리의 다른 글
메모리(Memory) & 저장 장치(Storage) (0) | 2022.08.28 |
---|---|
운영 체제 OS (0) | 2022.08.25 |
소프트웨어 공학 (0) | 2022.08.18 |
앨런 튜링 Alan Mathison Turing (0) | 2022.08.15 |
자료구조 (0) | 2022.08.09 |
댓글