Dalam
komputasi , sebuah unit aritmatika dan logika (ALU) adalah rangkaian digital
yang melakukan bilangan bulat aritmatika dan logis operasi. ALU adalah sebuah
blok bangunan fundamental dari central processing unit komputer, dan bahkan
yang paling sederhana mikroprosesor berisi satu untuk tujuan seperti menjaga
timer. Prosesor ditemukan di dalam CPU dan graphics processing unit modern (
GPU ) mengakomodasi sangat kuat dan sangat kompleks ALUS, sebuah komponen
tunggal mungkin berisi sejumlah ALUs.
Matematika
John von Neumann mengusulkan konsep ALU pada tahun 1945, ketika ia menulis
sebuah laporan mengenai fondasi untuk sebuah komputer baru yang disebut EDVAC .
Penelitian ALUS tetap sebagai bagian penting dari ilmu komputer , jatuh di
bawah Aritmatika dan logika struktur dalam Sistem Klasifikasi ACM Computing .
ALUs
dirancang untuk melakukan perhitungan integer. Oleh karena itu, selain menambah
dan mengurangkan angka, ALUs sering menangani perkalian dari dua bilangan
bulat, karena hasilnya juga integer. Namun, ALUs biasanya tidak melakukan
operasi divisi, karena hasilnya mungkin sebagian kecil, atau "floating
point" nomor. Sebaliknya, operasi divisi biasanya ditangani oleh unit
floating-point (FPU), yang juga melakukan perhitungan non-bilangan bulat
lainnya.
Sebagian
besar dari operasi prosesor dilakukan oleh satu atau lebih ALUS. Sebuah ALU
beban data dari register masukan . Kemudian eksternal unit kontrol memberitahu
ALU apa yang melakukan operasi pada data, dan kemudian ALU menyimpan hasilnya
ke sebuah output mendaftar. Unit kontrol bertanggung jawab untuk memindahkan
data diproses antara register, ALU dan memori.
Sistem numerik
Sebuah
ALU harus memproses angka menggunakan format yang sama sebagai bagian dari
rangkaian digital. Format prosesor modern hampir selalu melengkapi dua itu
representasi bilangan biner. Komputer awal yang digunakan berbagai sistem
bilangan, termasuk pelengkap yang ' , melengkapi dua itu , tanda-besarnya
format dan sistem desimal bahkan benar, dengan berbagai representasi
dari angka.
Pelengkap
yang 'dan dua' s sistem nomor pelengkap memungkinkan untuk pengurangan akan
dicapai dengan menambahkan negatif dari angka dalam cara yang sangat sederhana
yang meniadakan kebutuhan untuk sirkuit khusus untuk melakukan pengurangan,
namun, menghitung negatif dalam melengkapi dua itu membutuhkan menambahkan satu
a dengan bit orde rendah dan menyebarkan carry. Cara alternatif untuk melakukan
dua 's melengkapi pengurangan dari A-B adalah untuk menyajikan satu untuk input
carry adder dan menggunakan ¬ B daripada B sebagai input kedua. Aritmatika,
logika dan pergeseran sirkuit diperkenalkan pada bagian sebelumnya dapat
digabungkan menjadi satu ALU dengan pemilihan umum.
Operasi kompleks
Insinyur
dapat merancang sebuah Arithmetic Logic Unit untuk menghitung banyaknya
produksi. Semakin kompleks operasi, semakin mahal ALU adalah, semakin banyak
ruang menggunakan dalam prosesor, dan semakin besar kekuatan itu menghilang.
Oleh karena itu, insinyur kompromi. Mereka membuat ALU cukup kuat untuk membuat
prosesor cepat, namun tidak begitu rumit seperti menjadi mahal. Misalnya,
menghitung akar kuadrat dari angka mungkin menggunakan:
Perhitungan
dalam sebuah jam tunggal Desain sebuah ALU sangat kompleks yang menghitung akar
kuadrat dari setiap nomor dalam satu langkah.
Pipa
Perhitungan Desain ALU sangat kompleks yang menghitung akar kuadrat dari setiap
nomor dalam beberapa langkah. Hasil antara pergi melalui serangkaian sirkuit
diatur seperti sebuah jalur produksi pabrik. ALU dapat menerima nomor baru
untuk menghitung bahkan sebelum setelah selesai yang sebelumnya. The ALU
sekarang dapat menghasilkan angka secepat satu-jam ALU, meskipun hasilnya mulai
mengalir keluar dari ALU hanya setelah penundaan awal.
Perhitungan
berulang Desain ALU kompleks yang menghitung akar kuadrat melalui beberapa
langkah. Hal ini biasanya bergantung pada kontrol dari kompleks unit kontrol
dengan built-in microcode .
Co-prosesor
Desain ALU sederhana di prosesor, dan menjual prosesor khusus dan mahal
terpisah bahwa pelanggan dapat menginstal tepat di samping satu ini, dan
menerapkan salah satu opsi di atas.
Software
perpustakaan Katakan programer bahwa tidak ada co-prosesor dan tidak ada
emulasi , sehingga mereka akan harus menulis algoritma mereka sendiri untuk
menghitung akar kuadrat oleh perangkat lunak.
Software
emulasi Meniru keberadaan co-prosesor , yaitu, setiap kali sebuah program
mencoba untuk melakukan perhitungan akar kuadrat, membuat prosesor memeriksa
jika ada co-prosesor sekarang dan menggunakannya jika ada satu, jika tidak ada
satu , mengganggu pengolahan program dan memohon sistem operasi untuk melakukan
perhitungan akar kuadrat melalui beberapa algoritma perangkat lunak.
Pilihan
di atas pergi dari yang tercepat dan paling mahal dengan yang paling lambat dan
paling mahal. Oleh karena itu, sementara bahkan komputer sederhana dapat
menghitung rumus paling rumit, komputer paling sederhana biasanya akan memakan
waktu lama melakukan hal itu karena beberapa langkah untuk menghitung formula.
Prosesor
yang kuat seperti Intel Core dan AMD64 menerapkan opsi # 1 untuk beberapa
operasi sederhana, # 2 untuk operasi kompleks paling umum dan # 3 untuk operasi
yang sangat kompleks.
Input dan output
Input
ke ALU adalah data yang akan dioperasikan pada (disebut operan ) dan kode dari
unit kontrol yang menunjukkan operasi untuk melakukan. Output-nya adalah hasil
dari perhitungan. Satu hal yang desainer harus diingat adalah apakah ALU akan
beroperasi pada big-endian angka atau little-endian.
Dalam
banyak desain, ALU juga mengambil atau menghasilkan input atau output satu set
kode kondisi dari atau ke status mendaftar . Kode ini digunakan untuk
mengindikasikan kasus seperti membawa -in atau membawa-out, meluap ,
membagi-dengan-nol , dll
Sebuah
unit floating-point juga melakukan operasi aritmatika antara dua nilai, tetapi
mereka melakukannya untuk angka dalam floating-point representasi, yang jauh
lebih rumit daripada melengkapi dua itu representasi yang digunakan dalam ALU
yang khas. Untuk melakukan perhitungan ini, sebuah FPU memiliki beberapa
sirkuit kompleks built-in, termasuk beberapa ALUS internal yang.
Dalam
praktik modern, insinyur biasanya merujuk ke ALU sebagai rangkaian yang
melakukan operasi aritmatika integer (seperti melengkapi dua itu dan BCD ).
Sirkuit yang menghitung format yang lebih kompleks seperti floating point ,
bilangan kompleks , dll biasanya menerima nama yang lebih spesifik seperti FPU.
Tidak ada komentar:
Posting Komentar