TECH 으로 돌아가기
TECH HACKER NEWS 오늘 8분 읽기 24 READS

자석 고리로 만든 16비트 메모리: 컴퓨터가 '기억한다'는 건 물리적으로 어떤 일일까

자석 고리로 만든 16비트 메모리: 컴퓨터가 '기억한다'는 건 물리적으로 어떤 일일까
SOURCE IMAGE · HACKER NEWS
자석 고리로 만든 16비트 메모리: 컴퓨터가 '기억한다'는 건 물리적으로 어떤 일일까

도넛 모양 자석에 데이터를 저장하던 시절

요즘 메모리는 손톱만 한 칩 하나에 셀이 수십억 개씩 들어가죠. 그런데 1950년대부터 1970년대 초까지 컴퓨터의 주기억장치는 생김새부터 완전히 달랐어요. 지름이 몇 밀리미터도 안 되는 도넛 모양 자석(페라이트 코어)을 격자로 늘어놓고, 그 구멍마다 가는 구리선을 하나하나 꿰어서 만들었거든요. 이게 바로 자기 코어 메모리(magnetic core memory)예요.

최근 한 메이커가 이 코어 메모리를 16비트 규모로 직접 만들어서, 실제로 읽고 쓰는 데까지 성공한 과정을 영상으로 공개했어요. 16비트면 실용적인 용량은 당연히 아니에요. 그래도 컴퓨터가 '기억한다'는 게 물리적으로 어떤 일인지 눈으로 볼 수 있잖아요. 메모리를 매일 추상적인 개념으로만 다루는 개발자라면 한 번쯤 곱씹어볼 만한 프로젝트예요.

자석이 0과 1을 기억하는 방법

페라이트 코어는 고리를 따라 시계 방향이나 반시계 방향으로 자화될 수 있어요. 한쪽을 1, 다른 쪽을 0으로 정하면 코어 하나가 1비트가 되는 거죠. 중요한 건 이 상태가 전원을 꺼도 그대로 남는다는 점이에요. 그러니까 코어 메모리는 비휘발성 RAM이었던 셈이에요.

그럼 수많은 코어 중에서 딱 하나만 골라서 바꾸려면 어떻게 할까요? 여기서 쓰는 트릭이 동시 전류 선택(coincident-current) 방식이에요. 코어는 어느 정도 이상 센 전류가 흘러야만 자화 방향이 뒤집혀요. 그래서 가로선(X)과 세로선(Y)에 그 전류의 '절반'씩만 흘려요. 같은 줄에 있는 다른 코어들은 절반밖에 못 받으니까 꿈쩍도 안 해요. 두 선이 만나는 지점의 코어 하나만 '절반+절반'을 받아서 뒤집히죠. 엑셀에서 행 번호와 열 번호로 셀 하나를 고르는 거랑 같은 원리예요.

읽으면 지워지는 메모리

읽는 과정이 특히 재밌어요. 코어의 지금 상태를 직접 들여다볼 방법이 없거든요. 그래서 일단 그 코어에 억지로 0을 써요. 원래 0이었으면 아무 일도 안 일어나요. 원래 1이었으면 자화 방향이 뒤집히면서, 모든 코어를 관통하는 센스선(sense wire)에 작은 전압 펄스가 생겨요. 이 펄스가 생겼는지 아닌지를 보고 원래 값을 알아내는 거죠.

문제는 읽고 나면 값이 0으로 지워져 버린다는 거예요. 이걸 파괴적 읽기(destructive read)라고 불러요. 그래서 코어 메모리는 읽자마자 원래 값을 다시 써넣는 과정을 항상 같이 돌렸어요. 다시 쓸 때 0으로 남아야 하는 코어는 인히비트선(inhibit wire)에 반대 방향 전류를 흘려서 안 뒤집히게 막고요. 그래서 전통적인 설계에서는 코어 하나에 X, Y, 센스, 인히비트까지 선이 네 가닥이나 지나가요.

DIY로 만들 때 제일 어려운 것도 이 부분이에요. 전류가 조금만 세도 엉뚱한 코어가 뒤집히고, 조금만 약해도 아무것도 안 뒤집혀요. 센스선에 잡히는 신호는 아주 약해서 구동 전류가 만드는 잡음에 쉽게 묻혀버리고요. 그래서 센스선을 대각선으로 꿰어서 잡음끼리 상쇄되게 만드는 식으로, 70년 전 엔지니어들이 씨름했던 문제를 똑같이 다시 풀어야 해요.

역사의 흔적, 그리고 DRAM과의 닮은꼴

코어 메모리는 1950년대 초 MIT의 Whirlwind 컴퓨터에서 실용화됐고, 그 뒤 20년 가까이 표준 자리를 지켰어요. 아폴로 우주선의 유도 컴퓨터도 코어 메모리를 썼어요. 그러다 1970년 인텔이 1103 DRAM 칩을 내놓으면서 빠르게 밀려났죠. 그래도 흔적은 남아 있어요. 프로그램이 죽을 때 메모리 내용을 파일로 떨궈주는 코어 덤프(core dump)의 '코어'가 바로 이 코어예요.

흥미로운 건 지금 우리가 쓰는 DRAM도 구조가 꽤 닮았다는 거예요. DRAM은 자석 대신 작은 커패시터에 전하가 있는지 없는지로 비트를 저장해요. 행(워드라인)과 열(비트라인)로 셀을 고르는 격자 구조도 비슷해요. 게다가 읽는 순간 전하가 빠져나가서 값이 깨지기 때문에, 센스 앰프가 읽은 값을 다시 써넣어요. 파괴적 읽기와 재기록이라는 점이 코어 메모리랑 똑같죠. 다른 점이라면 DRAM은 가만히 둬도 전하가 새서 주기적으로 리프레시를 해줘야 하고, 전원을 끄면 데이터가 다 날아간다는 거예요.

'자석의 방향이 곧 비트'라는 아이디어도 사라지지 않았어요. 차세대 비휘발성 메모리인 MRAM(자기저항 메모리)이 자성층의 자화 방향으로 데이터를 저장하거든요. 삼성전자도 2019년부터 파운드리 공정에서 내장형 MRAM(eMRAM)을 양산하고 있어요.

한국 개발자에게 주는 시사점

당장 실무에 쓸 기술은 아니지만 들여다볼 가치는 충분해요. 우리는 new 한 줄이면 메모리를 받아 쓰잖아요. 그 아래에서 비트 하나를 쓰고 읽는 게 얼마나 섬세한 물리 현상인지는 체감할 일이 거의 없어요. 메모리 지연이나 대역폭 같은 성능 얘기가 왜 중요한지 감을 잡는 데, 이렇게 바닥까지 한 번 내려가 보는 경험이 의외로 큰 도움이 돼요.

그리고 한국은 메모리 반도체 강국이라 DRAM, 낸드, 차세대 메모리 쪽 펌웨어나 테스트, 시스템 소프트웨어 일자리가 많아요. 이런 분야에 관심이 있다면 셀 하나가 어떻게 동작하는지 알아두는 게 좋은 기초가 돼요. 아두이노로 하드웨어를 만져보고 싶었던 분이라면 Core64 같은 해외 메이커 프로젝트를 참고해서 작은 코어 메모리를 만들어보는 것도 꽤 멋진 주말 프로젝트예요.

마무리

한 줄 정리: 자석 고리에 전선을 꿰어 비트를 저장하던 코어 메모리는 오늘날 DRAM과 MRAM의 조상이에요. 그리고 '메모리란 무엇인가'를 가장 눈에 잘 보이게 보여주는 교재이기도 해요.

여러분은 추상화 계층 아래, 하드웨어 수준까지 내려가 본 적이 있나요? 이런 옛날 기술을 직접 만들어보는 게 지금 개발 실력에도 도움이 된다고 보시나요, 아니면 순수한 취미라고 보시나요? 의견 궁금해요.


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://www.youtube.com/watch?v=OJ1WYyO2jdY
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기 →
처리 중...