Motorola 68881/68882 – 68020/68030 процессорларымен қолданылатын, есептеу жылдамдығын арттыратын қосымша FPU чиптері. Технология тарихы мен ерекшеліктері.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Компьютерлік жылжымалы нүктелік құрылғы
Computer floating point unit
Motorola 68881 және Motorola 68882 – Motorola компаниясының 32 биттік 68020 немесе 68030 микропроцессорларымен бірге кейбір компьютер жүйелерінде қолданылатын жылжымалы нүктелік құрылғылар (FPU). Бұл копроцессорлар – жылжымалы нүктелік есептеулер процессорларда стандартты болмас бұрын жасалған сыртқы чиптер. Motorola 68881 1984 жылы ұсынылған. 68882 – кейіннен шығарылған, жоғары өнімділікке ие нұсқасы.
The Motorola 68881 and Motorola 68882 are floating point units (FPUs) used in some computer systems in conjunction with Motorola's 32 bit 68020 or 68030 microprocessors. These coprocessors are external chips, designed before floating point math became standard on CPUs. The Motorola 68881 was introduced in 1984. The 68882 is a higher performance version produced later.
Шолу
68020 және 68030 процессорлары жеке 68881 чипімен жұмыс істеу үшін жасалған. Олардың нұсқаулар жиынтығы "F" қатарындағы нұсқауларды резервтеді – яғни, "F" гексадецималды санымен басталатын барлық операциялық кодтар сыртқы копроцессорға жіберіле алады немесе "ұстау" ретінде қолданылып, ерекше жағдай тудырып, басқаруды компьютердің операциялық жүйесіне береді. Егер жүйеде FPU болмаса, операциялық жүйе FPU эмуляторын шақырып, 68020 процессорлық толық сандық бағдарламалық кодты пайдаланып нұсқаудың баламасын орындайды, бағдарламаға қате хабарлама жібереді, бағдарламаны тоқтатады немесе жүйе құлап, қайта жүктеу қажет болады.
The 68020 and 68030 CPUs were designed with the separate 68881 chip in mind. Their instruction sets reserved the "F line" instructions – that is, all opcodes beginning with the hexadecimal digit "F" could either be forwarded to an external coprocessor or be used as "traps" which would throw an exception, handing control to the computer's operating system. If an FPU is not present in the system, the OS would then either call an FPU emulator to execute the instruction's equivalent using 68020 integer based software code, return an error to the program, terminate the program, or crash and require a reboot.
68881 сегіз 80 биттік дерек тіркелгісіне ие (64 биттік мантисса, бір биттік таңба және 15 биттік белгілі экспонент). Ол сандық өрнектеудің жеті әртүрлі режимін ұсынады, соның ішінде бірлік дәлдіктегі жылжымалы нүкте, қос дәлдіктегі жылжымалы нүкте, кеңейтілген дәлдіктегі жылжымалы нүкте, 8, 16 және 32 биттік сандар және жылжымалы нүктелі бинарлық кодталған ондық формат. Бинарлық жылжымалы нүктелік форматтар IEEE 754 жылжымалы нүктелік стандартында анықталған. Ол жылжымалы нүктелі математика үшін арнайы жасалған және жалпы мақсаттағы процессор емес. Мысалы, нұсқаулыққа кез келген мекенжай есептеулері қажет болғанда, 68881 басқаруды қолға алғанға дейін оларды негізгі процессор (CPU) орындайды. CPU/FPU жұбы екеуі де бір уақытта жұмыс істей алатындай етіп жасалған. CPU 68881 нұсқаулығымен кездескенде, ол FPU-ға осы нұсқаулық үшін қажетті барлық операторларды жібереді, содан кейін FPU процессорды (CPU) келесі нұсқаулықты орындау үшін босатады.
The 68881 has eight 80 bit data registers (a 64 bit mantissa plus a sign bit, and a 15 bit signed exponent). It allows seven different modes of numeric representation, including single precision floating point, double precision floating point, extended precision floating point, integers as 8 , 16 and 32 bit quantities and a floating point Binary coded decimal format. The binary floating point formats are as defined by the IEEE 754 floating point standard. It was designed specifically for floating point math and is not a general purpose CPU. For example, when an instruction requires any address calculations, the main CPU handles them before the 68881 takes control. The CPU/FPU pair are designed such that both can run at the same time. When the CPU encounters a 68881 instruction, it hands the FPU all operands needed for that instruction, and then the FPU releases the CPU to go on and execute the next instruction.
68882 - - - - - - - - - -
68882 – 68881-дің жақсартылған нұсқасы, оның құбырлары жақсырақ жасалған, содан кейін жоғары тактоқ жылдамдықтарымен қолжетімді болды. Оның командалар жиынтығы толықтай бірдей. Motorola компаниясы кейбір жарнамалық материалдарында 68882, 68881-ге қарағанда бірдей тактоқ жылдамдығында кейбір командаларды 40%-ға жылдам орындайтынын мәлімдеді, бірақ бұл көрсеткіш нақты өнімділікті көрсетпеді, төмендегі кестеде көрініп тұрғандай, жақсартуы одан әлдеқайда қарапайым болды. 68882, 68881-мен қосқыштар бойынша үйлесімді және көптеген жүйелерде тікелей алмастыру ретінде қолданылуы мүмкін. Бағдарламалық қамтамасымен үйлесімсіздіктің ең маңызды мәселесі – 68882 үлкен FSAVE күйлік блогын пайдаланады, бұл UNIX және басқа да премптивті көп тапсырмалы операциялық жүйелерге әсер етеді, олар үшін оған арналған жад көлемін ұлғайту үшін өзгерістер енгізілуі тиіс болды.
The 68882 is an improved version of the 68881, with better pipelining, and eventually available at higher clock speeds. Its instruction set is exactly the same. Motorola claimed in some marketing literature that it executes some instructions 40% faster than a 68881 at the same clock speed, though this did not reflect typical performance, as seen by its more modest improvement in the table below. The 68882 is pin compatible with the 68881 and can be used as a direct replacement in most systems. The most important software incompatibility is that the 68882 uses a larger FSAVE state frame, which affects UNIX and other preemptive multitasking OSes that had to be modified to allocate more space for it.
Қолданылуы
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 машиналарында қолданылған. Кейбір үшінші тарап Amiga және Atari өнімдері 68881 немесе 68882 процессорларын 68000 процессорларына жадқа бейімделген перифериялық құрылғы ретінде пайдаланған.
The 68881 or 68882 were used in the Sun Microsystems Sun 3 workstations, IBM RT PC workstations, Apple Computer Macintosh II family, NeXT Computer, Sharp X68000, Amiga 3000, Convergent Technologies MightyFrame, Atari Mega STE, TT, and Falcon. Some third party Amiga and Atari products used the 68881 or 68882 as a memory mapped peripheral to the 68000.
Мұра
Motorola 68040 процессорынан бастап, қалқыма нүктелік есептеулерге қолдау процессордың құрамына енгізілді.
Starting with the Motorola 68040, floating point support was included in the CPU itself.