핵심 요약
- 1980년 출시된 인텔 8087 보조 프로세서의 뚜껑을 직접 열고 현미경으로 내부 회로와 마이크로코드를 분석한 글입니다.
- 기존 8086 대비 부동소수점 덧셈 속도를 100배가량 향상시켰으며, 시프터와 정수 가산기를 유기적으로 결합한 독특한 회로 구조를 갖추고 있습니다.
- 소수점 자릿수 정렬과 결과 정규화, 음수 및 0 처리 등 복잡한 부동소수점 연산 처리를 80비트 규격으로 구현했습니다.
요약 1980년 인텔이 출시한 8087 칩은 IBM PC 등 초기 컴퓨터 환경에서 부동소수점 연산 속도를 획기적으로 끌어올린 혁신적인 보조 프로세서였습니다. 기존 8086 프로세서 대비 단순 덧셈 연산 속도를 약 100배 빠르게 처리했으며, 복잡한 연산에서는 그 이상의 성능 격차를 보여주었습니다.
작성자는 실제 8087 칩의 뚜껑을 끌로 따낸 뒤 현미경으로 촬영해 내부 회로 구조와 마이크로코드를 직접 분석했습니다. 칩 중심부의 커다란 직사각형 영역에는 칩을 제어하는 1,648개의 마이크로 명령어가 담긴 ROM이 자리 잡고 있으며, 하단 절반은 80비트 값의 부동소수점 계산을 전담하는 데이터패스로 구성되어 있습니다. 데이터패스 중앙의 정수 가산기(Adder)와 임의 비트 수를 고속으로 밀어낼 수 있는 거대한 시프터(Shifter), 지수 변환기 등이 긴밀하게 맞물려 작동합니다.
일반적인 컴퓨터는 정수 기반 연산을 주로 사용하지만, 소수점이 포함된 실수 표현과 넓은 범위를 다루기 위해 부동소수점(부호, 가수, 지수) 방식을 채택합니다. 이때 부동소수점 덧셈과 뺄셈은 정수 연산보다 훨씬 까다롭습니다. 연산을 수행하기 전 지수를 맞추어 소수점 자릿수를 일치시키는 시프트 정렬 과정이 선행되어야 하며, 연산 후에도 최상위 비트가 1이 되도록 결과를 다시 시프트하고 지수를 조정하는 정규화(Normalization) 작업을 거쳐야 합니다. 특히 뺄셈의 경우 결과가 음수가 되거나 0이 되는 등 수많은 예외 처리가 요구됩니다.
인텔 8087은 내부적으로 1비트 부호, 15비트 지수, 64비트 가수로 이루어진 80비트 크기의 '임시 실수(temporary real)' 포맷을 사용하여 이러한 정밀 연산을 고속으로 처리하도록 설계되었습니다.
Sponsored · 광고