90 년대 인텔 CPU 버그

Oct 12 2020

대학에서 "논리"를 가르치는 선생님은 인텔 프로세서에 대한 이야기를 들려 주셨습니다. 90 년대 인텔은 프로세서에 인코딩 된 sin / cos와 같은 수학 함수를 계산하는 데 버그가있었습니다. 이 버그로 인해 일부 은행 계좌에서 불일치가 발생하여 인텔이 코드의 정확성을 입증하기 위해 논리 전문가를 고용하게되었습니다.

이 이야기를 웹에서 검색하려고했지만 아무것도 찾지 못했습니다. 누구든지 그것에 대해 아는 사람이 있습니까? 아니면 누군가 나에게 소스를 줄 수 있습니까?

답변

74 StephenKitt Oct 12 2020 at 21:35

선생님이 펜티엄 버그 에 대해FDIV 언급 한 것 같습니다. 이 버그 는 당시 언론에서 큰 호소를 불러 일으켰고 인텔이 리콜을 발표했습니다.

이 버그로 인해 일부 경우 부동 소수점 나누기가 잘못된 결과를 반환했습니다. 에만 영향을주지 않았으며 FDIV일부 관련 지침이 영향을 받았습니다. 다른 부서 및 나머지 지침 FPTANFPATAN. 다른 삼각법 지침은 의심으로 취급되었지만 궁극적으로 FSINFCOS.

그러나 이것이 은행에서 문제를 일으킬 것 같지는 않습니다. 금융 애플리케이션은 일반적으로 부동 소수점 표현을 피하므로 부동 소수점 명령어의 오류가 영향을 미치지 않을 것입니다.

이 버그에 대한 Wikipedia 항목을 참조하십시오 . 또 다른 유명한 펜티엄 버그는 계산 오류를 일으키지 않는 F00F 버그입니다 . 작동 중지로 이어질 수 있으며 운영 체제에서 특정 처리를 통해 해결되었습니다.

28 Bagnus Oct 13 2020 at 17:56

Stephen Kitt은 이미 FDIV 버그에 대한 좋은 답변을 제공했습니다. 로직을 사용하는 인텔에 대한 몇 가지 세부 정보를 입력하겠습니다.

이 버그로 인해 인텔은 많은 프로세서를 교체해야했으며 이는 매우 비쌌습니다. 이를 반복하고 싶지 않았기 때문에, 그들은 펜티엄의 후계자에서 구현 될 알고리즘의 정확성을 증명하기 위해 형식 논리에 대한 배경 지식을 가진 많은 컴퓨터 과학자를 고용했습니다. 그들의 연구에 대해 더 알고 싶다면 다음 두 과학자의 간행물을 확인하십시오.https://www.cl.cam.ac.uk/~jrh13/papers/index.html, https://scholar.google.com/citations?user=MACCA0cAAAAJ&hl=en

20 supercat Oct 13 2020 at 23:19

인텔은 반복 당 2 비트를 산출하는 방식으로 부동 소수점 몫을 계산하는 다소 복잡한 하드웨어를 보유하고 있었으며, 몫의 일부가 11이어야하는 비트 패턴의 모든 조합을 나열하는 다소 큰 테이블이 필요했습니다. 모든 패턴을 개별적으로 나열하면 테이블에는 각 비트가 0, 1 또는 X 일 수있는 항목이 있었을 것입니다. 예를 들어 100X01X의 비트 패턴은 1000010, 1000011, 1001010 또는 1001011과 일치하므로 테이블에는 엄청나게 많은 항목]. 불행히도 테이블의 일부는 그것을 생성하는 데 사용 된 도구에서 칩 설계로 전송 될 때 손상되었습니다.

나눗셈에 대한이 접근 방식이 다소 궁금합니다. 제수를 조사하고 제수 (반올림)와 배당 (반올림)을 모두 곱하면 새 제수가 상위 비트는 0.1111 또는 0.11111111과 같으므로 반복 당 4 비트 또는 8 비트를 쉽게 추출 할 수 있습니다. 최종 몫은 올바른 값보다 약간 작을 수 있습니다 [이전 반올림 방향을 고려할 때 절대 더 크지 않음].하지만 마지막에 두세 번의 연속 근사화 단계 만 필요하면 정리할 수있을만큼 충분히 가까울 것입니다. 쪽으로.

어쨌든 Intel FDIV 버그의 궁극적 인 아이러니는 이전에 386/387 시대에 Intel의 칩보다 훨씬 빠르게 단 정밀도 부동 소수점 연산을 수행 할 수있는 Weitek의 경쟁 제품이 있었다는 것입니다. t는 배정 밀도 수학을 전혀하지 않습니다. 일반적으로 배정 밀도 수학을 사용하는 일부 프로그램은 단 정밀도 수학을 사용하여 결과가 덜 정확한 Weitek 용 버전을 제공했습니다. 인텔의 마케팅 팀은 CPU가 있어야하는 곳에 광대 그래픽으로 장식 된 한 푼 상점 계산기가있는 마더 보드를 보여주는 광고를 제작하고 "정품을 요청하십시오"라는 캡션을 제작하여 정밀도 부족을 악용하기로 결정했습니다. 인텔 수학 코 프로세서 또는 어떤 수학을 믿어야하는지 아는 사람 ".

2 another-dave Oct 12 2020 at 21:34

나는 이것이 아마도 Pentium FDIV 버그 (부동 소수점 나누기 버그)를 언급하고 있다고 생각합니다 .

삼각법 명령에 대한 특정 문제는 기억 나지 않습니다.