Кіріспе

Компьютер жүйесінің бөлігі

Айналма нүктелік құрылғы (FPU, көбінесе математикалық копроцессор деп аталады) – компьютер жүйесінің айналма нүктелік сандармен операцияларды орындау үшін арнайы жасалған бөлігі. Типтік операциялар: қосу, алу, көбейту, бөлу және квадрат түбір табу. Кейбір FPU құрылғылары экспоненциалдық немесе тригонометриялық есептеулер сияқты түрлі трансценденттік функцияларды да орындай алады, бірақ дәлдігі төмен болуы мүмкін, сондықтан кейбір жүйелер осы функцияларды бағдарламалық қамтамасызда есептеуді ұсынады. Жалпы мақсаттағы компьютерлік архитектураларда бір немесе бірнеше FPU орталық процессордың ішінде орындау блогы ретінде интеграциялануы мүмкін; алайда, көптеген кіріктірілген процессорларда айналма нүктелік операцияларға аппараттық қолдау жоқ (олар стандартты түрде қолдауға ие болса да). Егер процессор айналма нүктелік операцияны талап ететін бағдарламаны орындаса, оны орындаудың үш жолы бар:
Айналма нүктелік құрылғының эмуляторы (бағдарламалық жасақтамадағы айналма нүктелік кітапхана)
Қосымша FPU аппараттық құрылғысы
Интеграцияланған FPU (аппараттық құрылымда)

Жылжымалы нүктелер жиыны

Кейбір жылжымалы нүктелі аппараттар тек ең қарапайым операцияларды ғана қолдайды: қосу, алу және көбейту. Бірақ тіпті ең күрделі жылжымалы нүктелі аппараттардың да қолдай алатын операциялар саны шектеулі. Мысалы, ешбір FPU кез келген дәлдіктегі арифметиканы тікелей қолдамайды. Егер CPU бағдарламаны орындағанда аппараттық құрал тікелей қолдамайтын жылжымалы нүктелі операция кездессе, CPU оны бірнеше қарапайым жылжымалы нүктелі операциялар арқылы іске асырады. Жылжымалы нүктелі аппараттары жоқ жүйелерде CPU оны бүтін сандық арифметикалық логикалық құрылымда орындалатын қарапайым қатаң нүктелі арифметикалық операциялар тізбегін пайдаланып эмуляциялайды. Жылжымалы нүктелі операцияларды эмуляциялау үшін қажетті операциялар тізбегін қамтитын бағдарламалық құрал көбінесе жылжымалы нүктелі кітапханада жинақталады.

Интеграцияланған FPU

Кейбір жағдайларда, FPU-лар мамандануы мүмкін және қарапайым қалқыма нүктелік операциялар (көбінесе қосу және көбейту) мен бөлу сияқты күрделі операцияларға бөлінеді. Кейбір жағдайларда, тек қарапайым операциялар ғана аппараттық құралдарда немесе микрокодта іске асырылуы мүмкін, ал күрделі операциялар бағдарламалық қамтамасыздандыру арқылы іске асырылады. Кейбір қазіргі архитектураларда FPU функционалдығы SIMD есептеулерін жүзеге асыру үшін SIMD блоктарымен біріктіріледі; мысалы, жаңа Intel және AMD процессорларында қолданылатын x86 64 архитектурасындағы x87 нұсқаулар жиынтығы SSE нұсқаулар жиынтығымен толықтырылады.

Қосымша FPU

PDP 11-дің PDP 11/45, PDP 11/34a, PDP 11/44 және бірнеше VAX модельдері сияқты бірнеше модельдері қосымша FPU қажеттілігінсіз (MicroPDP 11/23 микрокод опциясын қажет етті) жылжымалы нүктелік нұсқауларды орындай алатын. Motorola 68000 отбасы үшін 68881 және 68882 копроцессорлары қол жетімді болды. Бұл Sun 3 сериясы сияқты Motorola 68020/68030 негізіндегі жұмыс станцияларында кеңінен қолданылды. Олар сондай-ақ Apple Macintosh және Commodore Amiga сериясының жоғары деңгейдегі модельдеріне жиі қосылды, бірақ IBM PC үйлесімді жүйелерінен өзгеше, төмен деңгейдегі жүйелерде копроцессорды қосуға арналған ұялар соншалықты көп емес еді. Микробасқарушы құрылғылар (MCU/μC) / бір тақталы компьютерлер (SBC) үшін де қосымша FPU копроцессорлары бар, олар жылжымалы нүктелік арифметикалық мүмкіндіктерді қамтамасыз етеді. Бұл қосымша FPU-лар хост процессордан тәуелсіз, өздерінің бағдарламалау талаптарына (операциялар, нұсқаулар жиынтығы және т.б.) ие және көбінесе өздерінің интеграцияланған даму орталарымен (IDE) бірге келеді.