1980년대 Intel 8087 칩의 마이크로코드 역공학 프로젝트
Key Point
부동소수점 연산의 표준이 된 40년 전 칩의 내부 회로를 물리적으로 역공학하는 과정이 기술사와 아키텍처 이해에 어떻게 기여하는지 보여준다.
핵심 요약
- Intel 8087 부동소수점 코프로세서는 1980년 출시되어 현대 컴퓨터의 부동소수점 표준이 되었으며, IBM PC에 설치되어 연산 속도를 최대 100배 향상시켰다.
- Opcode Collective는 8087의 마이크로코드를 역공학하고 있으며, FSCALE(부동소수점 스케일) 명령어를 분석했다.
- FSCALE은 2의 거듭제곱으로 숫자를 스케일링하는 명령어이며, 곱셈보다 훨씬 빠르게 동작한다.
- FSCALE의 마이크로코드는 140개 이상의 마이크로명령어와 3단계 서브루틴 호출로 구성되어 있으며, 많은 특수 사례를 처리한다.
- 8087의 다이는 마이크로코드 ROM(1648개 마이크로명령어 포함), 마이크로코드 엔진, 16비트 지수부와 64비트 유효숫자부로 구성된 데이터패스를 포함한다.
- 8087은 80비트 부동소수점 숫자를 8개의 스택 레지스터에 저장하며, 각 값에는 유효/특수/영/빈 상태를 나타내는 태그가 붙어있다.