티스토리 뷰
컴퓨터의 핵심 부품은 많다. CPU, 메인 보드, RAM 등
그렇다면 이러한 핵심 부품들은 어떻게 만드는 것일까?
반도체라는 단어를 들어봤을 것이다.
도체와 부도체의 중간정도의 성질(전류가 흐르기 위해 넘어야 할 에너지 장벽의 높이가 도체보다는 높고, 부도체보다는 낮음)을 띄어 특정 전압을 주면 전류가 흐르는 것이다. 이러한 성질은 스위치에 비유될 수 있는데, 그 역할을 하는 유닛을 트랜지스터라 한다.
현대적 회로는 매우 작은 크기에 많은 회로를 집어넣는 집적회로(IC; Integrated Circuit)를 구현하기 위해 실리콘 슬라이스에 회로 그림을 그려 넣는 방식으로 공정하고 있다.
CPU는 어떻게 만들까?
해당 영상에서는 컴퓨터의 핵심 부품 중 CPU의 공정 과정을 전반적으로 보여준다.
과정
위 영상의 블로그 버전(https://blog.robertelder.org/how-to-make-a-cpu/)의 글을 번역한 단락입니다.
1) 돌을 구하세요.
2) 바위를 부수세요.
3) 이제 98% 농축된 이산화규소가 생성되었습니다. 99.9% 순도의 이산화규소로 정제합니다.
4) 99.9999999% 폴리실리콘 금속으로 더욱 정제합니다.
5) 폴리실리콘 주괴(ingot)를 도가니에 넣는다.
6) 실리콘 주괴(ingot)를 1698°K로 가열합니다.
7) 작은 종자 단결정을 취하여 용융된 실리콘 통에 담근다.
8) 크리스탈이 식으면서 천천히 잡아당깁니다.
9) 이제 순수한 실리콘의 단결정이 생겼습니다. 얇은 조각으로 자르십시오.
10) 이제 갓 잘라낸 깨끗한 실리콘 웨이퍼가 생겼습니다. 선택적으로 붕소, 인 또는 다른 도펀트로 도핑합니다.
11) 웨이퍼 위에 포토레지스트를 바른다.
12) 원하는 회로 패턴이 있는 크롬 에칭 포토리소그래피 석영 마스크를 선택하고 이를 통해 레이저 빔을 비추어 회로 패턴을 웨이퍼에 투영합니다.
13) 포토마스크에 의해 생성된 그림자의 위치는 실리콘 웨이퍼 표면에서 포토레지스트가 화학적으로 변경되는 위치를 제어합니다(포지티브 또는 네거티브 포토레지스트를 사용했는지 여부에 따라 다름).
14) 이제 포토레지스트를 현상해 보세요.
15) 웨이퍼의 노출된 부분을 산-식각 한다.
16) 웨이퍼에 원하는 기능을 구축하기 위해 호모 에피택시, 헤테로 에피택시, 유사 에피택시, 확산 도핑, 구리 인터커넥트 레이어, 화학 기계적 연마, 포토레지스트 도포, 산 에칭 및 포토마스크 노출을 셀 수 없이 반복하고 반복합니다.
17) 이제 완성된 실리콘 웨이퍼가 생겼습니다. 조각으로 자르십시오.
18) 이제 포장되지 않은 실리콘 다이가 생겼습니다. 실리콘 칩에서 패드를 찾고 본드 와이어를 부착하거나 현재 대부분의 최신 프로세서에서 수행되는 플립 칩 방법을 사용합니다.
19) 본드 와이어나 솔더 볼을 사용하여 칩 패키지의 핀과 실리콘 다이의 패드 사이를 전기적으로 연결합니다.
Insight : A Programmer's perspective
전문화
위 영상에서는 트랜지스터로 구성하는 칩이 아닌, 웨이퍼에 빛을 이용하여 반도체 회로를 형성한 공정을 말하고 있다.
하지만, 전문적인 내용은 나오지 않는다.
- "98% 농축된 이산화규소"라 할 때, 이산화규소임은 어떻게 알 수 있으며, 98%는 어떻게 측정하는 것인가?
- 웨이퍼에 붇는 약품들은 어떻게 만드는 것일까?
- 회로는 어떻게 그려야 하는가?
- 등
각 부분을 대학 전공에 매치해 보면 화학공학과, 전자공학과, 컴퓨터 공학과가 떠오른다.
프로그래머 관점
프로그래머 관점에서, 어떤 부분을 알면 좋을까?
모든 부분을 알면 당연히 좋겠으나, 그건 너무 이상적이다.
CPU가 동작되는 방식은 숙지해야 한다고 생각한다.
기계에 가까운 레벨 프로그래밍 환경에서는 너무나 당연하겠으나, 당연하지 않을 프로그래머도 있을 것이다.
SW 개발 중에서도 Application, 또 그중에서도 web 개발만이 주력이라면, 현재까지 이룩한 컴퓨터 공학의 산물인 추상화된 환경에서의 프로그래밍만으로도 큰 불편감이 없을 것이다. 하지만, 그 추상화 한 겹, 또 한 겹을 벗겨야 하는 순간들은 반드시 온다.
그때, 프로그래머 관점에서 들어가는 가장 깊은 부분은 논리회로라고 생각한다.
CPU를 직접 만들어보자!
CPU from scratch - https://jiggyjiggy.tistory.com/69
내가 진행했던 프로젝트를 담은 포스팅이다.
NAND 게이트를 시작으로, 논리회로 수준에서 쌓아 나가고, 8-bit CPU를 만들어 보자.
컴퓨팅 시스템(HW의 연산 과정, 메모리 등)에 대해 clear해 질 것이다.
"컴퓨터를 만든다고?" 걱정이 앞설 수 있다.
하지만, 직접 해보면 어렵지 않다. 매우 추천한다.
Reference
'컴퓨팅 시스템' 카테고리의 다른 글
OS from scratch (0) | 2024.04.30 |
---|---|
CPU from scratch (1) | 2024.04.22 |
- Total
- Today
- Yesterday
- C
- 톰캣11
- 논문추천
- generic swap
- reader-writer lock
- CPU
- sleep lock
- OOP
- 객체 변조 방어
- tree
- 엔티티 설계 주의점
- 백준
- Memory
- servlet
- Dispatcher Servlet
- PS
- 연관관계 편의 메서드
- pocu
- condition variable
- core c++
- thread
- S4
- 이진탐색
- JPA
- generic sort
- S1
- Spring MVC
- Java
- 개발 공부 자료
- tomcat11
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |