yozm.tech
피드로 돌아가기
news.hada.ioHOTAI 재작성

인텔 8087, 탄젠트 계산의 비밀: CORDIC과 파데 근사의 결합

1980년대 IBM PC의 부동소수점 연산을 가속했던 인텔 8087 코프로세서의 탄젠트(FPTAN) 계산 알고리듬이 역공학을 통해 밝혀졌습니다. CORDIC 알고리듬과 유리 다항식(Padé 근사)을 결합해 정확도와 속도를 동시에 잡았으며, 당시 느린 나눗셈 연산을 피하고 64비트 정수 연산을 활용하는 등 하드웨어 최적화의 정수를 보여줍니다.

5일 전·2026.09.27·읽기 2분·neo https://news.hada.io/user/neo

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마이크로초로 단축되었으며, 이는 당시 기술 수준에서 혁신적인 발전이었습니다.

1인 창업자를 위한 기회 분석
AI 분석 · 참고용이며 검증이 필요합니다
2/10
약한 신호
왜 2점인가

매우 전문적인 역공학 분야로, 일반적인 1인 창업자가 접근하기 어려운 기술적, 자본적 장벽이 높습니다. 시장 규모도 제한적입니다.

문제 / 미충족 수요

오래된 하드웨어의 복잡한 연산 방식을 이해하고 재현하는 것은 여전히 어렵고 시간이 많이 소요되는 작업입니다.

한국 시장
국내 불명한국에서 이 분야의 전문가는 소수이며, 시장 규모도 매우 작을 것으로 예상됩니다.
수익 모델

컨설팅 또는 전문 지식 판매 · 돈 내는 주체: 레거시 시스템을 유지보수하거나 연구하는 기업, 연구기관

1인 실현 가능성
2/5

역공학은 고도의 전문 지식과 장비가 필요하며, 1인 창업자가 진입하기에는 기술적, 자본적 장벽이 높습니다.

진입 지점 (Wedge)

특정 레거시 시스템의 마이크로코드 분석 및 문서화 서비스 제공

이번 주 첫 실험

8087과 같은 특정 레거시 칩의 공개된 마이크로코드 분석 자료를 바탕으로 시뮬레이터 또는 분석 도구의 프로토타입을 만들어본다.

Original source
이 글은 news.hada.io의 기사를 yozm.tech가 한국어로 재작성한 버전입니다.
원문 보기