1980년에 출시되어 IBM PC의 부동소수점 연산을 획기적으로 가속했던 인텔 8087 코프로세서의 탄젠트(FPTAN) 계산 방식이 역공학을 통해 상세히 분석되었습니다. 당시 소프트웨어 방식보다 약 100배 빨랐던 8087의 FPTAN 명령은 CORDIC(COordinate Rotation DIgital Computer) 알고리듬과 유리 다항식(Padé 근사)을 결합하여 높은 정확도와 빠른 속도를 동시에 달성했습니다. 이는 칩의 회로와 마이크로코드 분석을 통해 드러난 하드웨어 최적화의 결과입니다.
8087은 먼저 16단계의 CORDIC 알고리듬을 사용하여 입력 각도를 줄여 약 16비트의 정확도를 확보합니다. CORDIC은 곱셈과 나눗셈 없이 시프트(shift)와 덧셈(addition), 테이블 조회를 통해 삼각함수를 계산하는 효율적인 방식입니다. 이후 남은 작은 잔여 각도(약 2⁻¹⁶ 크기)에 대해서는 Padé 근사식 3x/(3-x²)를 적용하여 64비트 정확도를 충족시켰습니다. 이는 CORDIC만으로 64비트 정확도를 얻기 위해 64단계를 수행하는 데 드는 막대한 계산 비용을 피하기 위한 영리한 설계였습니다. 특히, 탄젠트 값을 직접 반환하는 대신 분자 Y와 분모 X를 별도로 반환하여 당시 느렸던 나눗셈 연산을 생략하고, 후속 계산에서 최적화할 여지를 남겼습니다.
이러한 설계는 당시 하드웨어 제약 속에서 최고의 성능을 이끌어내기 위한 인텔의 깊은 고민을 보여줍니다. 8087은 내부적으로 부동소수점 대신 64비트 정수 연산과 암묵적 지수(implicit exponent)를 활용하여 효율성을 극대화했습니다. 각 단계에서 잔여 각도가 줄어들 때마다 왼쪽으로 시프트하여 유효 정밀도를 유지하고, 작은 회전부터 적용하여 반올림 오차를 줄였습니다. 이러한 복잡한 최적화는 CAD나 스프레드시트와 같은 수치 계산 응용 프로그램의 성능을 비약적으로 향상시켜 개인용 컴퓨터의 활용 범위를 넓히는 데 크게 기여했습니다. 8087의 탄젠트 계산 시간은 8086의 소프트웨어 구현 대비 13,000마이크로초에서 90마이크로초로 단축되었으며, 이는 당시 기술 수준에서 혁신적인 발전이었습니다.