Intel 8087의 탄젠트 계산, CORDIC과 다항식의 결합
Key Point
정수 시대 최고 성능의 부동소수점 칩이 어떻게 극복할 수 없어 보이던 성능 한계를 넘었는지 하드웨어 레벨에서 역공학한 분석으로, 현대 칩 설계가 해결하는 문제들의 근원을 보여준다.
핵심 요약
- 1980년 Intel 8087 칩의 탄젠트 명령어(FPTAN) 알고리즘을 역공학으로 분석한 글로, 8086 대비 90마이크로초 vs 13,000마이크로초의 극적인 성능 향상을 달성한 메커니즘을 설명한다.
- 8087은 CORDIC(좌표 회전 디지털 컴퓨터) 알고리즘과 Padé 근사 다항식을 결합했으며, 이는 1950년대 B-58 Hustler 폭격기 항법 컴퓨터를 위해 개발된 CORDIC을 16비트 정확도까지만 적용하고 나머지 각도는 다항식으로 처리하는 방식이다.
- CORDIC은 삼각함수를 특수 각도(arctan(2^-n))의 조합으로 분해한 뒤 회전 행렬을 적용하는데, 시프트와 덧셈만으로 계산할 수 있어 하드웨어 친화적이며 각 반복마다 1비트의 정확도를 얻는다.