Sebuah
unit floating-point (FPU, bahasa sehari-hari mathco) adalah bagian dari
komputer sistem yang dirancang khusus untuk melakukan operasi pada floating
point nomor. Operasi khas Selain itu , pengurangan, perkalian , pembagian ,
akar kuadrat , bitshifting . Beberapa sistem (terutama yang lebih tua, microcode
arsitektur berbasis) juga dapat melakukan berbagai fungsi transendental seperti
eksponensial atau trigonometri perhitungan, meskipun dalam kebanyakan prosesor
modern ini dilakukan dengan rutinitas perpustakaan software.
Dalam
kebanyakan tujuan umum modern arsitektur komputer , satu atau lebih FPUs
terintegrasi dengan CPU , namun banyak prosesor tertanam , terutama desain yang
lebih tua, tidak memiliki dukungan hardware untuk operasi floating-point.
Di
masa lalu, beberapa sistem telah menerapkan floating point melalui coprocessor
bukan sebagai unit yang terintegrasi, dalam mikro era, ini umumnya satu sirkuit
terpadu , sedangkan pada sistem yang lebih tua itu bisa menjadi seluruh papan
sirkuit atau kabinet.
Tidak
semua arsitektur komputer memiliki FPU hardware. Dengan tidak adanya sebuah
FPU, banyak fungsi FPU dapat ditiru, yang menghemat biaya hardware tambahan
dari FPU tetapi secara signifikan lebih lambat. Emulation dapat
diimplementasikan pada salah satu dari beberapa tingkatan: dalam CPU sebagai
microcode, sebagai sistem operasi fungsi, atau di ruang pengguna kode.
Dalam
kebanyakan arsitektur komputer modern, ada beberapa pembagian operasi
floating-point dari bilangan bulat operasi. Divisi ini bervariasi secara
signifikan dengan arsitektur, beberapa, seperti x86 Intel telah mendedikasikan
floating-point register , sementara beberapa menganggapnya sejauh independen
clocking skema.
Operasi
floating-point sering pipelined . Di awal superscalar arsitektur tanpa general
out-of-order eksekusi , operasi floating-point kadang-kadang pipelined secara
terpisah dari operasi bilangan bulat. Sejak awal dan pertengahan 1990-an,
banyak mikroprosesor untuk desktop dan server memiliki lebih dari satu FPU.
Ketika
CPU mengeksekusi program yang membutuhkan operasi floating-point, ada tiga cara
untuk melaksanakannya:
- Sebuah
floating-point Unit emulator (perpustakaan floating-point)
- Add-on
FPU
- Integrated
FPU
Floating-point library
Beberapa
floating-point hardware hanya mendukung operasi sederhana - penambahan,
pengurangan, dan perkalian. Tetapi bahkan yang paling kompleks floating-point
hardware memiliki jumlah terbatas operasi dapat mendukung - misalnya, tidak
satupun dari mereka langsung mendukung sewenang-wenang-presisi aritmatika .
Ketika
CPU mengeksekusi program yang membutuhkan operasi floating-point tidak langsung
didukung oleh perangkat keras, CPU menggunakan serangkaian operasi
floating-point sederhana. Dalam sistem tanpa floating-point hardware, CPU
mengemulasi menggunakan serangkaian sederhana fixed-point aritmatika operasi
yang berjalan pada integer Unit logika aritmatika .
Perangkat
lunak yang berisi daftar seri diperlukan operasi untuk meniru operasi
floating-point sering dikemas dalam floating-point library .
Integrated FPUs
Dalam
beberapa kasus, FPUs dapat khusus, dan dibagi antara sederhana operasi
floating-point (terutama penjumlahan dan perkalian) dan operasi yang lebih
rumit, seperti divisi. Dalam beberapa kasus, hanya operasi sederhana dapat
diimplementasikan dalam perangkat keras dan / atau microcode , sedangkan
operasi yang lebih kompleks diimplementasikan sebagai kode mesin rutinitas
(yaitu ditulis dalam bahasa assembly atau dikompilasi bahasa tingkat tinggi ).
Dalam
beberapa arsitektur saat ini, fungsi FPU dikombinasikan dengan unit untuk
melakukan SIMD perhitungan, sebuah contoh dari hal ini adalah penggantian x87
petunjuk yang ditetapkan dengan SSE set instruksi dalam x86-64 arsitektur yang
digunakan dalam prosesor Intel dan AMD yang lebih baru.
Add-on FPUs
Pada
1980-an, hal itu biasa di IBM PC / kompatibel mikrokomputer untuk FPU menjadi
sepenuhnya terpisah dari CPU , dan biasanya dijual sebagai add-on opsional. Ini
hanya akan dibeli jika diperlukan untuk mempercepat atau mengaktifkan program
matematika intensif.
The
IBM PC, XT , dan sebagian besar kompatibel berbasis pada 8088 atau 8086
memiliki soket untuk opsional 8087 coprocessor. The AT dan 80286 sistem
berbasis umumnya socketed untuk 80.287 , dan 80.386 / 80386SX mesin berbasis
untuk 80.387 dan 80387SX masing-masing, meskipun yang awal yang socketed untuk
80.287, sejak 80387 tidak ada lagi.
Dimulai
dengan i486 (Intel turun 'awalan dari 48 seri menggantikan' i '80 'bukan),
dalam chip x86 unit floating-point yang terintegrasi dengan CPU, sesuatu yang
benar untuk hampir semua prosesor x86-arsitektur nanti. Satu pengecualian
adalah i486SX, itu juga tidak biasa dalam bahwa tidak ada coprocessor
sebenarnya tersedia. Contoh-contoh awal dari i486SX adalah CPU penuh dengan FPU
terintegrasi, Jika selama hardware menguji FPU dari chip i486 gagal sedangkan
sisanya dari perangkat keras CPU melewati FPU akan dinonaktifkan dan chip akan
dikemas sebagai biaya yang lebih rendah i486SX. Jika hasil dari chip i486DX
cukup tinggi, FPU sepenuhnya bekerja akan cacat fisik untuk memenuhi tuntutan
untuk i486SX. Akhirnya chip i486SX secara khusus diproduksi tanpa FPU pada
mati. Kemudian papan di mana chip i486SX yang disolder langsung ke papan, itu
tidak mungkin untuk mengganti seluruh chip dengan chip i486DX berfungsi penuh.
Sebaliknya chip i487SX dipasarkan sebagai coprocessor untuk papan ini yang
memiliki soket coprocessor. Pada kenyataannya chip i487SX adalah sebuah chip
i486 penuh yang benar-benar dinonaktifkan chip i486SX asli dan mengambil alih semua
operasi CPU untuk forum diskusi. The i487SX hampir elektrik identik dengan
i486SX. Satu-satunya perbedaan adalah pin tambahan yang tujuan utamanya adalah
untuk menonaktifkan i486SX ada ketika diinstal. The i487SX dapat digunakan
sebagai pengganti i486DX dengan menjepit pin tambahan.
Selain
seri x87 Intel, beberapa perusahaan lain diproduksi co-prosesor untuk seri x86.
Ini termasuk Cyrix yang dipasarkan seri FasMath sebagai kinerja yang lebih
tinggi tetapi sepenuhnya kompatibel x87, dan Weitek yang menawarkan kinerja
tinggi namun seri tidak sepenuhnya x87 kompatibel coprocessors.
Selain
arsitektur Intel, FPUs sebagai coprocessors yang tersedia untuk Motorola 68000
keluarga line. Ini FPUs, yang 68.881 dan 68.882 , yang umum di Motorola 68020 /
68030 berbasis workstation seperti Sun 3 seri. Mereka juga sering ditambahkan
ke model yang lebih tinggi-end Apple Macintosh dan Commodore Amiga series, tapi
tidak seperti sistem PC yang kompatibel IBM, soket untuk menambahkan
Coprocessor yang tidak umum dalam sistem ujung bawah. Dengan 68040 , Motorola
terintegrasi FPU dan CPU, tetapi biaya yang lebih rendah 68LC040 tanpa FPU
terintegrasi juga tersedia, seperti i486SX.
Ada
juga add-on FPUs unit coprocessor untuk mikrokontroler unit (MCU / μCs) /
single-board computer (SBC), yang berfungsi untuk memberikan floating-point
aritmatika kemampuan dalam sistem yang mungkin tidak memiliki fungsi tersebut.
Perbedaan jenis FPU coprocessors, bila dibandingkan dengan lebih coprocessors
floating-point tradisional seperti seri 80x87, adalah bahwa add-on FPUs adalah
host--prosesor independen, memiliki kebutuhan mereka sendiri pemrograman (
operasi , set instruksi , dll .) dan sering disediakan dengan mereka sendiri
lingkungan terpadu pengembangan (IDE) s.
Tidak ada komentar:
Posting Komentar