모토로라 68881

모토로라 68881(MC68881)은 68020이나 68030 프로세서와 함께 사용하던 부동소수점 보조 프로세서이다. 68881을 추가하는 것으로 컴퓨터의 비용이 대폭 증가하지만 부동소수점 계산을 매우 빠르게 실행하였기 때문에 당시 대부분의 과학 및 수학용 소프트웨어에서 효과적이었다.

특징 
68020과 68030은 분리된 68881 칩을 사용하도록 설계되었다. 예약된 "F-line" 명령어인 16진수 “F"로 시작되는 모든 오프코드(opcode)는 인터럽트를 발생시키는 ”트랩“으로 컴퓨터의 OS로 제어권을 넘겨준다. 만약 68881이 시스템에 존재한다면 68881이 그 명령어를 실행하도록 허용할 것이고 존재하지 않는다면 OS는 정수 기반의 FPU 에뮬레이터로 명령어를 실행하거나 프로그램에 에러 코드를 출력하게 된다.

68881에는 80비트 레지스터 8개가 있으며 단일 정밀도(single-precision)와 2배 정밀도(double-precision)를 포함해 IEEE 부동소수점 표준인 IEEE 754에서 정의한 확장 정밀도(extended-precision)같은 7가지 수치 표현 모드를 지원한다. 68881은 부동소수점 연산에 특화해 설계한 것으로 범용 CPU 기능은 없다. 예를 들어 명령어에서 어드레스 계산이 필요할 경우 68881에 제어권을 주기 전에 메인 CPU가 그것을 처리해야 한다.

CPU/FPU 한쌍은 두개가 동시에 동작되도록 설계되었다. CPU가 68881 명령어를 만나면 명령어가 필요로 하는 모든 피연산자(operand)를 FPU로 넘겨주고 FPU가 결과를 출력할 동안 다음 명령어를 실행한다.

모토로라 68882(MC68882)는 68881을 개선한 버전으로 파이프라인을 개선하고 작동 속도를 높였다. 모토로라는 같은 클럭 속도에서 68881 보다 40% 더 빠르다고 주장하였지만 일반적인 성능에는 반영되지 않았다. 68882는 68881과 명령어가 동일하고 핀 호환이 되어 대부분 시스템에서 바로 교환하여 사용할 수 있었다.

68881과 68882 FPU가 내장된 컴퓨터로는 썬 마이크로시스템즈의 Sun 3, 애플 컴퓨터의 매킨토시 II, 아타리의 일부 기종(Mega STE, TT와 Falcon030), 코모도어의 아미가 3000이 있다. 아미가와 아타리 서드 파티는 68000에 memory map 된 주변기기로 68881/2를 사용한 제품도 내놓았다.

모토로라 68040 프로세서는 내부에 FPU를 내장했다. 68881의 명령어 대부분과 수치 표현 모드는 하드웨어로 지원되지만 일부 지원되지 않는 것도 있었는데 이것들은 소프트웨어 패키지를 통해 에뮬레이션으로 지원했다.

제품 성능

68881 
155,000 트랜지스터
 16 MHz 버전 - 160 KFLOPS
 20 MHz 버전 - 192 KFLOPS
 25 MHz 버전 - 240 KFLOPS

68882 
176,000 트랜지스터
 25 MHz 버전 - 264 KFLOPS
 33 MHz 버전 - 352 KFLOPS
 40 MHz 버전 - 422 KFLOPS
 50 MHz 버전 - 528 KFLOPS

68040 
 25 MHz 버전 - 3.500 MFLOPS
 33 MHz 버전 - 4.662 MFLOPS
 40 MHz 버전 - 5.600 MFLOPS

이 표는 comp.sys.m68k FAQ에서 인용한 것이다. 16MHz와 20 MHz 68882는 리스트에는 없지만 생산되었다.

외부 링크 
 Motorola MC68000 Family Programmer's Reference Manual 
 comp.sys.m68k FAQ

68881
집적 회로
부동소수점
코프로세서