ARITHMETIC LOGIC UNIT
Dalam komputasi, sebuah unit logika aritmetika (ALU) adalah
rangkaian digital yang melakukan aritmatika dan logis operasi. ALU
adalah sebuah blok bangunan fundamental dari central processing unit
(CPU) dari sebuah komputer, dan bahkan yang paling sederhana
mikroprosesor berisi satu untuk tujuan seperti menjaga timer. Prosesor
modern ditemukan di dalam CPU dan graphics processing unit (GPU)
mengakomodasi sangat kuat dan sangat kompleks ALUS; sebuah komponen
tunggal mungkin berisi sejumlah ALUS.
Ahli 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 menjadi bagian
penting dari ilmu komputer, jatuh di bawah struktur Aritmatika dan
logika dalam Sistem Klasifikasi ACM Computing.
a. Perkembangan awal
Pada tahun 1946, Mike Hawk bekerja dengan rekan-rekannya dalam
merancang sebuah komputer untuk Institute for Advanced Study of Computer
Science (IASS) di Princeton, New Jersey. Para komputer IAS menjadi
prototipe bagi banyak kemudian komputer. Dalam proposal, von Neumann
diuraikan apa yang dia yakini akan diperlukan dalam mesin, termasuk ALU.
Von Neumann menyatakan bahwa ALU merupakan suatu keharusan untuk
sebuah komputer karena dijamin bahwa komputer harus menghitung operasi
matematika dasar, termasuk penambahan, pengurangan, perkalian, dan
pembagian. Karena itu ia percaya bahwa “masuk akal bahwa [komputer]
harus mengandung organ khusus untuk operasi ini”.
b. Sistem Numerik
Sebuah proses harus ALU angka menggunakan format yang sama dengan
sisa rangkaian digital. Format prosesor modern hampir selalu merupakan
dua’s complement bilangan biner perwakilan. Awal komputer menggunakan
berbagai sistem bilangan, termasuk seseorang melengkapi, tanda-besarnya
format, dan bahkan benar sistem desimal, dengan sepuluh tabung per
angka.
ALUS untuk masing-masing sistem numerik ini memiliki desain yang
berbeda, dan yang mempengaruhi preferensi saat ini selama dua’s
melengkapi, karena ini adalah representasi yang memudahkan untuk ALUS
untuk menghitung penambahan dan pengurangan.
The two’s-nomor melengkapi sistem memungkinkan untuk pengurangan
akan dicapai dengan menambahkan negatif dari angka dalam cara yang
sangat sederhana yang meniadakan kebutuhan untuk sirkuit khusus untuk
melakukan pengurangan.
c. Ikhtisar Praktis
Sebagian besar operasi prosesor dilakukan oleh satu atau lebih
ALUS. Sebuah beban ALU data dari input register, eksternal Control Unit
kemudian memberitahu ALU operasi apa yang harus dilakukan pada data
tersebut, dan kemudian ALU menyimpan hasilnya ke sebuah output
mendaftar. Mekanisme lain memindahkan data antara register dan memori.
Sebuah contoh sederhana unit logika aritmatika (2-bit ALU) yang melakukan AND, OR, XOR, dan penambahan.
Kebanyakan ALU dapat melakukan operasi berikut:
• Integer operasi aritmetika (penambahan, pengurangan, dan kadang-kadang perkalian dan
pembagian, walaupun ini lebih mahal)
• Bitwise operasi logika (AND, NOT, OR, XOR)
• Menggeser bit-operasi (pergeseran atau memutar sebuah kata ditentukan oleh jumlah bit ke kiri
atau kanan, dengan atau tanpa tanda ekstensi). Pergeseran dapat ditafsirkan sebagai perkalian
oleh 2 dan divisi dengan 2.
d. Kompleks operasi
Seorang insinyur dapat merancang sebuah ALU untuk menghitung
operasi apapun, namun itu rumit; masalahnya adalah bahwa operasi lebih
kompleks, yang lebih mahal dari ALU adalah, semakin banyak ruang yang
penggunaannya di dalam prosesor, dan semakin kekuasaan itu menghilang,
dll . Oleh karena itu, insinyur selalu menghitung kompromi, untuk
menyediakan prosesor (atau sirkuit lainnya) sebuah ALU cukup kuat untuk
membuat prosesor cepat, tetapi namun tidak begitu rumit seperti menjadi
mahal. Bayangkan bahwa Anda perlu untuk menghitung akar kuadrat dari
angka; insinyur digital akan memeriksa opsi-opsi berikut untuk
melaksanakan operasi ini:
1. Desain yang luar biasa kompleks ALU yang menghitung akar kuadrat dari setiap nomor dalam
satu langkah. This is called calculation in a single clock . Hal ini disebut perhitungan dalam satu
jam.
2. Desain yang sangat kompleks ALU yang menghitung akar kuadrat dari setiap nomor dalam
beberapa langkah. Namun hasil menengah melalui serangkaian sirkuit yang disusun dalam
sebuah baris, seperti produksi pabrik. Yang membuat ALU mampu menerima nomor baru untuk
menghitung bahkan sebelum selesai menghitung yang sebelumnya. Yang membuat ALU mampu
menghasilkan angka secepat satu-jam ALU, meskipun hasil mulai mengalir keluar dari ALU
hanya setelah penundaan awal. Hal ini disebut perhitungan pipa.
3. Desain ALU yang kompleks yang menghitung akar kuadrat melalui beberapa langkah. Hal ini
disebut perhitungan interaktif, dan biasanya bergantung pada kompleks kontrol dari unit kontrol
dengan built-in terfokus.
4. Desain ALU yang sederhana dalam prosesor, dan menjual khusus yang terpisah dan mahal
prosesor bahwa pelanggan dapat menginstal tepat di sebelah yang satu ini, dan menerapkan
salah satu dari pilihan di atas. Ini disebut co-prosesor.
5. Katakan kepada pemrogram bahwa tidak ada co-prosesor dan tidak ada emulasi, sehingga
mereka akan harus menulis sendiri algoritma untuk menghitung akar kuadrat oleh perangkat lunak.
Hal ini dilakukan oleh perangkat lunak perpustakaan.
6. Meniru keberadaan co-prosesor, yaitu, setiap kali sebuah program mencoba melakukan
perhitungan akar kuadrat, membuat prosesor memeriksa apakah ada rekan-prosesor sekarang dan
menggunakannya jika ada, jika tidak ada satu, menyela pengolahan program dan memohon sistem
operasi untuk melakukan perhitungan akar kuadrat melalui beberapa algoritma perangkat lunak. Ini
disebut perangkat lunak emulasi.
Pilihan di atas berubah dari yang tercepat dan paling mahal satu
untuk yang paling lambat dan paling mahal. Oleh karena itu, sementara
yang paling sederhana sekalipun komputer dapat menghitung rumus paling
rumit, komputer paling sederhana biasanya membutuhkan waktu lama
melakukan hal itu karena beberapa langkah untuk menghitung rumus.
Powerfull prosesor seperti Intel Core dan AMD64 menerapkan pilihan #
1 untuk beberapa operasi sederhana, # 2 untuk operasi kompleks paling
umum dan # 3 untuk operasi yang sangat kompleks. Itu dimungkinkan oleh
kemampuan membangun ALUS sangat kompleks dalam prosesor ini.