TECH 으로 돌아가기
TECH HACKER NEWS 오늘 6분 읽기 21 READS

NEC V20 마이크로코드를 해독하다: 다이 촬영과 CNN으로 되살린 사이클 정확 에뮬레이션

NEC V20 마이크로코드를 해독하다: 다이 촬영과 CNN으로 되살린 사이클 정확 에뮬레이션
SOURCE IMAGE · HACKER NEWS

오래된 CPU를 소프트웨어로 정확히 재현하는 일은 단순히 명령어가 무엇을 하는지 아는 것만으로는 부족하다. 각 명령이 몇 클럭에 걸쳐 어떤 순서로 내부 동작을 수행하는지, 이른바 '사이클 정확도'까지 맞추려면 칩 내부의 마이크로코드를 들여다봐야 한다. 2020년 reenigne가 인텔 8088의 마이크로코드를 해독한 것이 이 분야의 전환점이었다. 그 작업 덕분에 8088 CPU를 매우 정밀하게 에뮬레이션하는 길이 열렸고, MartyPC 같은 프로젝트도 그 성과 위에서 발전해 왔다.

그러나 NEC V20는 다른 문제였다. MartyPC는 이미 V20를 지원하고 있었지만, 그 코어는 실제 V20의 타이밍을 반영한 사이클 정확 구현이 아니었다. 개발자의 표현을 빌리면 '8088의 옷을 입은 8088'에 가까웠다. 기존 8088 코어를 복사해 V20 전용 명령어만 덧붙인 형태였던 것이다. 이상적이지 않은 상태였지만, 마이크로코드 없이 타이밍을 맞추려면 끝없는 시행착오가 될 것이 뻔했기에 선뜻 손대기 어려운 작업이기도 했다.

5.6기가픽셀 다이 사진에서 시작하다

돌파구는 실물 칩을 촬영하는 데서 나왔다. 개발자는 InfoSecDJ에게 NEC V20 다이의 촬영을 의뢰했다. 정확히는 샤프(Sharp)가 세컨드소스로 생산한 V20였지만, 어쨌든 V20는 V20다. 완성된 포토모자이크는 5.6기가픽셀, 해상도로는 70478×80672에 달했다. JPEG 포맷이 담을 수 있는 한계를 넘어설 만큼 거대한 이미지였다. 이 다이 사진에서 중앙 바로 아래에 자리한 사각형 영역이 바로 핵심인 메인 마이크로코드 ROM이다.

문제는 이 ROM 영역에 빼곡히 박힌 비트들을 어떻게 0과 1로 판독하느냐였다. 여기서 개발자는 합성곱 신경망(CNN)을 동원했다. 각 픽셀 영역이 0 비트를 담고 있는지 1 비트를 담고 있는지 예측하도록 모델을 학습시킨 것이다. CUDA를 지원하는 GPU가 있으면 학습은 몇 분이면 끝날 만큼 가벼웠다. 다만 정확도를 무작정 높이려 학습을 오래 끌면 오히려 과적합으로 결과가 나빠질 수 있어, 개선이 정체되면 학습을 중단하는 방식을 택했다.

AI 논쟁을 비켜 가는 실용적 선택

개발자는 여기서 짚고 넘어갈 점을 분명히 했다. CNN이 넓은 의미의 인공지능에 속하는 것은 맞지만, 요즘 논란이 되는 거대 언어 모델(LLM) 식의 'AI'와는 전혀 다르다는 것이다. 이는 정해진 이미지 패턴을 분류하는, 목적이 뚜렷하고 검증 가능한 도구로서의 활용이었다. 실제로 추론 과정에서 모델은 픽셀마다 신뢰도 점수를 내놓았고, 개발자는 이 점수가 99% 미만인 비트를 '모호한 비트'로 표시해 붉게 칠했다.

작업은 반복적이었다. 처음 추론을 돌린 뒤 붉게 표시된 모호한 비트들을 사람이 직접 올바른 학습 폴더로 재분류하고, 그 데이터로 다시 학습시키는 과정을 되풀이했다. 이렇게 몇 차례 반복하자 모호한 비트가 단 4개까지 줄었고, 이 정도는 모델을 한 번 더 학습시키기보다 사람이 직접 확인하는 편이 빨랐다. 결과적으로 약 2만9천 개의 마이크로코드 비트를 확보했다. 지루한 수작업을 몇 시간 절약한 대가로 파이썬 학습 스크립트를 작성하는 데 몇 시간을 쓴 셈이지만, 그 스크립트는 재사용이 가능하다는 이점이 있다.

비트맵을 마이크로코드로 재구성하는 다음 관문

비트를 다 읽어냈다고 끝이 아니다. 지금 손에 든 것은 258×116 형태의 직사각형 비트맵일 뿐이고, 이것을 실제 의미 단위인 29비트 마이크로코드 워드의 목록, 즉 29×1032 배열로 재배치해야 한다. 물리적으로 배열된 비트가 논리적 워드 순서와 어떻게 대응하는지는 전혀 자명하지 않다. 개발자는 이 재구성 문제를 잠시 미뤄 두기로 했는데, 그 이유는 짝을 이루는 디코더 PLA를 먼저 해독해야 실마리가 잡히기 때문이다. 이 디코드(활성화) PLA는 메인 마이크로코드 ROM 블록 바로 위에, 중간 회로를 사이에 두고 자리하고 있다.

이 작업이 한국의 실무자에게 던지는 함의는 단순한 레트로 취미를 넘어선다. 문서가 남지 않은 하드웨어를 다이 촬영과 머신러닝 기반 판독으로 역설계하는 이 흐름은, 사양서가 사라진 레거시 반도체를 검증하거나 재현해야 하는 상황에서 실제로 쓸 수 있는 방법론이다. 동시에 이 사례는 한계도 분명히 보여준다. 자동화는 비트 판독까지만 도달했고, 모호한 비트의 최종 확인과 물리 배열을 논리 구조로 되돌리는 해석은 여전히 사람의 몫으로 남았다. 도구가 노동을 줄여줄 수는 있어도, 구조에 대한 이해를 대신해 주지는 않는다는 점을 이 프로젝트는 조용히 상기시킨다.

SOURCE · HACKER NEWS
원문 전체 보기 → https://martypc.blogspot.com/2026/09/decoding-nec-v20-microc...
SHARE
NEXT · CHOOSE

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

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

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