핵심 요약
- 한 기술 블로거가 1980년 출시된 인텔의 전설적인 부동소수점 보조 프로세서 8087 칩의 뚜껑을 끌로 직접 따고 현미경으로 내부 회로를 분석했습니다.
- 기존 8086 CPU 단독으로는 13,000마이크로초가 걸리던 탄젠트 연산을 8087은 단 90마이크로초 만에 끝냈는데, 그 핵심에는 CORDIC 알고리즘과 다항식 근사치의 결합이 있었습니다.
- 1950년대 미군 초음속 폭격기 B-58의 디지털 컴퓨터 개발 과정에서 탄생한 CORDIC 기술은 복잡한 곱셈·나눗셈 없이 단순한 비트 시프트와 덧셈만으로 삼각함수를 빠르게 구해내는 혁신적인 방식이었습니다.
요약 1980년 인텔이 출시한 8087은 IBM PC 등에서 부동소수점 연산 속도를 획기적으로 끌어올린 전설적인 보조 프로세서입니다. 당시 8086 마이크로프로세서만으로는 탄젠트(tan) 연산 하나를 계산하는 데 무려 13,000마이크로초가 걸렸지만, 8087 칩을 활용하면 단 90마이크로초 만에 처리할 수 있을 만큼 경이로운 성능 격차를 보여줬습니다.
작성자는 이 칩의 탄젠트 명령어인 FPTAN의 동작 원리를 파헤치기 위해, 끌을 이용해 칩 뚜껑을 직접 뜯어내고 현미경으로 실리콘 다이의 고해상도 사진을 촬영했습니다. 칩 중앙에는 1,648개의 마이크로 명령어가 저장된 대형 마이크로코드 ROM이 자리 잡고 있었으며, 하단부에는 80비트 부동소수점 연산을 처리하는 데이터패스가 배치되어 있었습니다. 이 데이터패스 내부에는 64비트 값을 자유롭게 밀어주는 시프터, 덧셈·뺄셈뿐 아니라 곱셈·나눗셈·제곱근 루프의 핵심인 덧셈기, 그리고 계산에 필요한 상수들이 담긴 ROM 등이 긴밀하게 맞물려 작동하고 있었습니다.
분석 결과 8087은 높은 정밀도와 고성능을 동시에 확보하기 위해 다항식 근사치 기법과 CORDIC 알고리즘을 결합해 사용했습니다. CORDIC 알고리즘은 본래 1956년 마하 2 폭격기인 B-58 허슬러의 아날로그 항법 장치를 디지털 컴퓨터로 교체하려던 엔지니어 잭 볼더(Jack Volder)가 개발한 방식입니다. 당시의 느린 트랜지스터 하드웨어로는 복잡한 삼각함수 계산이 어려웠는데, 각도를 특수한 각도들의 조합으로 쪼개 곱셈이나 나눗셈 없이 오직 비트 시프트와 덧셈, 뺄셈, 테이블 조회만으로 초고속 벡터 회전을 수행하도록 설계했습니다. 1950년대 군용 폭격기 컴퓨터에서 시작된 이 기발한 계산 기법이 1980년대 PC 부동소수점 연산의 심장부에 고스란히 녹아 있었던 셈입니다.
Sponsored · 광고