모토로라 68881

Motorola 68881
모토로라 68881 FPU

Motorola 68881 및 Motorola 68882일부 컴퓨터 시스템에서 32비트 68020 또는 68030 마이크로프로세서와 함께 사용되는 부동소수점 유닛(FPU)입니다.이러한 코프로세서는 CPU에서 부동소수점 연산이 표준이 되기 전에 설계된 외부 칩입니다.Motorola 68881은 [1]1984년에 소개되었다.68882는 나중에 생산된 고성능 버전입니다.

개요

Motorola 68882 FPU

68020 및 68030 CPU는 별도의 68881 칩을 염두에 두고 설계되었습니다.명령어 세트는 "F-line" 명령을 예약했습니다. 즉, 16진수 숫자 "F"로 시작하는 모든 opcode를 외부 코프로세서로 전송하거나 "traps"로 사용할 수 있습니다. 이 경우 예외가 발생하여 컴퓨터 운영체제에 제어권이 넘어갑니다.시스템에 FPU가 없는 경우 OS는 FPU 에뮬레이터를 호출하여 68020 정수 기반의 소프트웨어 코드를 사용하여 명령과 동등한 명령을 실행하거나, 프로그램에 오류를 반환하거나, 프로그램을 종료하거나, 크래시하여 재부팅을 요구합니다.

아키텍처

Motorola 68881/68882 시리즈 레지스터
79 ... 63 ... 00 (비트 위치)
부동 소수점 레지스터
± 지수 가수 FP0
± 지수 가수 FP1
± 지수 가수 FP2
± 지수 가수 FP3
± 지수 가수 FP4
± 지수 가수 FP5
± 지수 가수 FP6
± 지수 가수 FP7
31 ... 23 ... 15 ... 07 ... 00 (비트 위치)
제어 레지스터
0 0 예외 활성화 모드 제어 FPCR
상태 레지스터
조건. 예외 상태 미지급 FPSR
지시 주소 레지스터
32비트 주소 FPIAR

68881에는 8개의 80비트 데이터 레지스터[2][3](64비트 가수 + 부호 비트 및 15비트 부호 지수)가 있습니다.IEEE 부동소수점 표준 IEEE 754에서 정의된 대로 단정도, 배정도, 확장정도 등 7가지 다른 수치표현 모드를 사용할 수 있습니다.부동소수점 연산용으로 특별히 설계되었으며 범용 CPU가 아닙니다.예를 들어 명령에 주소 계산이 필요한 경우 68881이 제어되기 전에 메인 CPU가 이를 처리합니다.

CPU/FPU 쌍은 동시에 실행할 수 있도록 설계되었습니다.68881 명령이 발생하면 CPU는 해당 명령에 필요한 모든 피연산자를 FPU에 인계하고 FPU는 CPU를 해방하여 다음 명령을 실행합니다.

68882

Motorola 68882의 다이

68882는 68881의 개량형이며 파이프라인 기능이 향상되어 최종적으로 더 높은 클럭 속도로 사용할 수 있습니다.명령어 세트는 완전히 동일합니다.Motorola는 일부 마케팅 자료에서 동일한 클럭 속도로 68881보다 40% 더 빠르게 명령을 실행한다고 주장했지만, 이는 아래 표에서 볼 수 있듯이 일반적인 성능을 반영하지는 않았습니다.68882는 68881과 핀 호환되며 대부분의 시스템에서 직접 교체할 수 있습니다.가장 중요한 소프트웨어 비호환성은 68882가 더 큰 FSAVE 스테이트 프레임을 사용한다는 것입니다.이는 UNIX 및 기타 프리엠프티브멀티태스킹 OS에 영향을 미쳐 공간을 할당하기 위해 변경해야 합니다.

사용.

68881 또는 68882는 Sun Microsystems Sun-3 워크스테이션, IBM RT PC 워크스테이션, Apple Computer Macintosh II 제품군, NeXT Computer, Sharp X68000, Amiga 3000, Convergent Technologies MightyFrame, Atari Mega STE, TT Falcon에서 사용되었습니다.일부[which?] 서드파티제의 Amiga 및 Atari 제품에서는 688000의 메모리 맵 주변기기로 68881 또는 68882를 사용했습니다.

버전

68881

  • 155,000 트랜지스터 온칩
  • 12 MHz 버전
  • 16MHz 버전은 160kFLOPS로 실행
  • 20MHz 버전은 192kFLOPS로 실행
  • 25MHz 버전은 240kFLOPS로 동작

68882

  • 176,000 트랜지스터 온칩
  • 25MHz 버전은 264kFLOPS로 동작했습니다.
  • 33MHz 버전은 352kFLOPS로 실행
  • 40MHz 버전은 422kFLOPS로 실행
  • 50MHz 버전은 528kFLOPS로 실행

이러한 통계 정보는 comp.sys.m68k FAQ에서 얻을 수 있습니다.16MHz 및 20MHz 68882에 대한 통계는 기재되어 있지 않지만 이들 칩은 실제로 생산되었습니다.

레거시

Motorola 68040부터 CPU 자체에 부동소수점 지원이 포함되었습니다.

레퍼런스

  1. ^ Sterling, Thomas; Anderson, Matthew; Brodowicz, Maciej (2017). High Performance Computing: Modern Systems and Practices. Morgan Kaufmann. p. 459. ISBN 978-0-12-420158-3.
메모들