Sabtu, 08 Desember 2018

Central Logic Unit & Set Register

Aritmatika Central Logic Unit

Judul Alternatif: ALU










Unit logika aritmatika ( ALU ) adalah rangkaian elektronik digital kombinasional yang melakukan operasi aritmatika dan bitwise padabilangan biner bilangan bulat . Ini berbeda dengan floating-point unit (FPU), yang beroperasi pada angka floating point . ALU adalah blok bangunan fundamental dari banyak jenis sirkuit komputasi, termasuk unit pemrosesan pusat (CPU) komputer, FPU, dan unit pemrosesan grafis (GPU). Satu CPU, FPU, atau GPU dapat berisi beberapa ALU.
Masukan ke ALU adalah data yang akan dioperasikan, disebut operand , dan kode yang menunjukkan operasi yang akan dilakukan; output ALU adalah hasil dari operasi yang dilakukan. Dalam banyak desain, ALU juga memiliki status input atau output, atau keduanya, yang menyampaikan informasi tentang operasi sebelumnya atau operasi saat ini, masing-masing, antara ALU dan register status eksternal.
Sinyal : ALU memiliki berbagai input dan output jaring , yang merupakan konduktor listrik yang digunakan untuk menyampaikan sinyal digital antara ALU dan sirkuit eksternal. Ketika ALU beroperasi, sirkuit eksternal menerapkan sinyal ke input ALU dan, sebagai tanggapan, ALU menghasilkan dan menyampaikan sinyal ke sirkuit eksternal melalui outputnya.
Data : ALU dasar memiliki tiga bus data paralel yang terdiri dari dua input operand ( A dan B ) dan output hasil ( Y ). Setiap bus data adalah sekelompok sinyal yang menyampaikan satu bilangan bulat biner. Biasanya, lebar bus A, B, dan Y (jumlah sinyal yang terdiri dari setiap bus) adalah identik dan sesuai dengan ukuran kata asli dari sirkuit eksternal (misalnya, enkapsulasi CPU atau prosesor lainnya).
Opcode : Input opcode adalah bus paralel yang menyampaikan ke ALU kode pemilihan operasi, yang merupakan nilai yang disebutkan yang menentukan operasi aritmatika atau logika yang diinginkan untuk dilakukan oleh ALU. Ukuran opcode (lebar busnya) menentukan jumlah maksimum operasi yang berbeda yang dapat dilakukan ALU; misalnya, opcode empat-bit dapat menentukan hingga enam belas operasi ALU yang berbeda. Secara umum, opcode ALU tidak sama dengan opcode bahasa mesin , meskipun dalam beberapa kasus mungkin langsung dikodekan sebagai bidang bit dalam opcode bahasa mesin.
Operasi Sirkuit :
ALU adalah rangkaian logika kombinasional , yang berarti bahwa outputnya akan berubah secara asynchronous sebagai respons terhadap perubahan input. Dalam operasi normal, sinyal stabil diterapkan untuk semua input ALU dan, ketika waktu yang cukup (dikenal sebagai " delay propagasi ") telah berlalu untuk sinyal untuk merambat melalui sirkuit ALU, hasil dari operasi ALU muncul di ALU. keluaran. Sirkuit eksternal yang terhubung ke ALU bertanggung jawab untuk memastikan stabilitas sinyal input ALU di seluruh operasi, dan untuk memungkinkan waktu yang cukup bagi sinyal untuk merambat melalui ALU sebelum sampling hasil ALU.
Secara umum, sirkuit eksternal mengontrol ALU dengan menerapkan sinyal ke inputnya. Biasanya, sirkuit eksternal menggunakan logika sekuensial untuk mengontrol operasi ALU, yang digerakkan oleh sinyal clockdengan frekuensi yang cukup rendah untuk memastikan cukup waktu bagi output ALU untuk menetap dalam kondisi terburuk.
Sebagai contoh, CPU memulai operasi tambahan ALU dengan routing operand dari sumber mereka (yang biasanya register) ke input operan ALU, sementara unit kontrol secara bersamaan menerapkan nilai ke input opcode ALU, mengkonfigurasi untuk melakukan penambahan. Pada saat yang sama, CPU juga mengarahkan output hasil ALU ke register tujuan yang akan menerima penjumlahan. Sinyal input ALU, yang dipertahankan stabil sampai jam berikutnya, diizinkan untuk menyebar melalui ALU dan ke register tujuan ketika CPU menunggu jam berikutnya. Ketika jam berikutnya tiba, register tujuan menyimpan hasil ALU dan, sejak operasi ALU selesai, input ALU dapat diatur untuk operasi ALU berikutnya.

Fungsi : 
Sejumlah fungsi aritmatika dan logika bitwise dasar umumnya didukung oleh ALU. ALU dasar dan tujuan umum biasanya memasukkan operasi ini dalam repertoar mereka:
Operasi Aritmatika :

  • Tambahkan : A dan B dijumlahkan dan jumlahnya muncul di Y dan dibawa keluar.
  • Tambahkan dengan membawa : A, B dan bawa-di dijumlahkan dan jumlahnya muncul di Y dan dibawa keluar.
  • Kurangi : B dikurangi dari A (atau sebaliknya) dan perbedaan muncul di Y dan carry-out. Untuk fungsi ini, melaksanakan secara efektif adalah indikator "meminjam". Operasi ini juga dapat digunakan untuk membandingkan besaran A dan B; dalam kasus seperti itu, output Y dapat diabaikan oleh prosesor, yang hanya tertarik pada bit status (terutama nol dan negatif) yang dihasilkan dari operasi.
  • Kurangi dengan meminjam : B dikurangi dari A (atau sebaliknya) dengan meminjam (carry-in) dan perbedaan muncul di Y dan melaksanakan (meminjam keluar).
  • Dua komplemen (meniadakan) : A (atau B) dikurangi dari nol dan perbedaan muncul di Y.
  • Kenaikan : A (atau B) dinaikkan sebesar satu dan nilai yang dihasilkan muncul di Y.
  • Decrement : A (atau B) dikurangi satu dan nilai yang dihasilkan muncul di Y.
  • Melalui : semua bit A (atau B) muncul tidak dimodifikasi di Y. Operasi ini biasanya digunakan untuk menentukan paritas operan atau apakah nol atau negatif, atau memuat operand ke dalam register prosesor.



Operasi Logis Bitwise :





  • DAN : bitwise DAN dari A dan B muncul di Y.
  • ATAU : ATAU bitwise A dan B muncul di Y.
  • Exclusive-OR : bitwise XOR dari A dan B muncul di Y.
  • Pelengkap yang dimiliki: semua bit A (atau B) dibalik dan muncul di Y.

  • Operasi Pengalihan Bit :
    Operasi pemindahan ALU menyebabkan operan A (atau B) bergeser ke kiri atau ke kanan (tergantung pada opcode) dan operan bergeser muncul di Y. ALU sederhana biasanya dapat menggeser operan hanya dengan satu posisi bit, sedangkan ALU yang lebih kompleks menggunakan shifter barel yang memungkinkan mereka untuk menggeser operan dengan jumlah bit yang sewenang-wenang dalam satu operasi. Dalam semua operasi penggeseran bit-tunggal, bit bergeser keluar dari operan muncul pada carry-out; nilai bit bergeser ke operan tergantung pada jenis shift.
    • Pergeseran aritmatik : operan diperlakukan sebagai bilangan bulat komplementer dua , yang berarti bahwa bit paling signifikan adalah "tanda" sedikit dan dipertahankan.
    • Pergeseran logis : logika nol digeser ke operan. Ini digunakan untuk menggeser bilangan bulat tak bertanda.
    • Rotasikan : operand diperlakukan sebagai buffer lingkaran bit sehingga bit terkecil dan paling signifikan berdekatan secara efektif.
    • Putar melalui carry : carry bit dan operand secara kolektif diperlakukan sebagai buffer lingkaran bit.

    Contoh bit shift untuk ALU delapan-bit
    MengetikKiriKanan
    Pergeseran aritmatikaPutar ke kiri secara logis.svgPutar ke kanan secara aritmetis.svg
    Pergeseran logisPutar ke kiri secara logis.svgPutar ke kanan secara logis.svg
    MemutarPutar ke kiri.svgPutar ke kanan.svg
    Putar melalui carryPutar ke kiri melalui carry.svgPutar ke kanan melalui carry.svg

    Aplikasi :
    Aritmatika Multi-presisi : Dalam perhitungan aritmatika bilangan bulat, aritmatika multi-presisi adalah algoritma yang beroperasi pada bilangan bulat yang lebih besar dari ukuran kata ALU. Untuk melakukan hal ini, algoritma memperlakukan setiap operand sebagai kumpulan fragmen berukuran-ALU yang terurut, disusun dari yang paling-signifikan (MS) hingga yang paling tidak signifikan (LS) atau sebaliknya. Misalnya, dalam kasus ALU 8-bit, integer 24-bit 0x123456 akan diperlakukan sebagai kumpulan tiga fragmen 8-bit: 0x12 (MS), 0x34 , dan 0x56 (LS). Karena ukuran fragmen sama persis dengan ukuran kata ALU, ALU dapat langsung beroperasi pada "operan" ini.
    Algoritma menggunakan ALU untuk beroperasi secara langsung pada fragmen operan tertentu dan dengan demikian menghasilkan fragmen yang sesuai ("parsial") dari hasil multi-presisi. Setiap parsial, ketika dihasilkan, ditulis ke daerah penyimpanan terkait yang telah ditetapkan untuk hasil presisi ganda. Proses ini diulang untuk semua fragmen operand sehingga menghasilkan kumpulan parsial lengkap, yang merupakan hasil dari operasi multi-presisi.
    Dalam operasi aritmatik (misalnya, penjumlahan, pengurangan), algoritme dimulai dengan menjalankan operasi ALU pada fragmen LS operand, sehingga menghasilkan baik sebagian LS dan bit yang melaksanakan. Algoritme menulis penyimpanan parsial ke yang ditunjuk, sedangkan mesin negara prosesor biasanya menyimpan bit yang dibawa ke register status ALU. Algoritma kemudian maju ke fragmen berikutnya dari masing-masing kumpulan operand dan memanggil operasi ALU pada fragmen ini bersama dengan bit carry yang disimpan dari operasi ALU sebelumnya, sehingga menghasilkan yang lain (lebih signifikan) parsial dan sedikit melaksanakan. Seperti sebelumnya, bit carry disimpan ke register status dan sebagian ditulis ke penyimpanan yang ditentukan. Proses ini berulang sampai semua fragmen operand telah diproses, menghasilkan kumpulan parsial lengkap dalam penyimpanan, yang terdiri dari hasil aritmatika multi-presisi.
    Dalam operasi pergeseran multi-presisi, urutan pemrosesan fragmen operan tergantung pada arah pergeseran. Dalam operasi penggeseran-kiri, fragmen diproses LS terlebih dahulu karena bit LS dari setiap parsial — yang disampaikan melalui bit carry yang disimpan — harus diperoleh dari bit MS operan sebelumnya yang kurang bergeser kiri dan kurang signifikan. Sebaliknya, operand diproses MS pertama dalam operasi pengalihan-kanan karena bit MS masing-masing parsial harus diperoleh dari bit LS operan sebelumnya yang lebih kanan, operan yang lebih signifikan.
    Dalam operasi logis bitwise (misalnya, logis AND, OR logis), fragmen operand dapat diproses dalam urutan arbitrer karena masing-masing parsial hanya bergantung pada fragmen operan yang sesuai (bit carry yang disimpan dari operasi ALU sebelumnya diabaikan).
    Operasi Rumit :
    Meskipun ALU dapat dirancang untuk melakukan fungsi yang kompleks, kompleksitas sirkuit, biaya, konsumsi daya yang lebih tinggi dan ukuran yang lebih besar membuat hal ini tidak praktis dalam banyak kasus. Akibatnya, ALU sering terbatas pada fungsi-fungsi sederhana yang dapat dijalankan pada kecepatan yang sangat tinggi (mis., Penundaan propagasi yang sangat singkat), dan sirkuit prosesor eksternal bertanggung jawab untuk melakukan fungsi kompleks dengan mengatur urutan operasi ALU yang lebih sederhana.
    Sebagai contoh, menghitung akar kuadrat dari suatu nomor dapat diimplementasikan dengan berbagai cara, tergantung pada kompleksitas ALU:
    • Perhitungan dalam satu jam : ALU yang sangat kompleks yang menghitung akar kuadrat dalam satu operasi.
    • Perhitungan pipeline : sekelompok ALU sederhana yang menghitung akar kuadrat secara bertahap, dengan hasil antara melewati ALU yang diatur seperti jalur produksi pabrik.Sirkuit ini dapat menerima operan baru sebelum menyelesaikan yang sebelumnya dan menghasilkan hasil secepat ALU yang sangat kompleks, meskipun hasilnya tertunda oleh jumlah penundaan propagasi dari tahap ALU. Untuk informasi lebih lanjut, lihat artikel tentang pipelining instruksi .
    • Perhitungan berulang : ALU sederhana yang menghitung akar kuadrat melalui beberapa langkah di bawah arahan unit kontrol .
    Implementasi di atas transisi dari yang tercepat dan termahal ke yang paling lambat dan paling tidak mahal. Akar kuadrat dihitung dalam semua kasus, tetapi prosesor dengan ALU sederhana akan membutuhkan waktu lebih lama untuk melakukan perhitungan karena beberapa operasi ALU harus dilakukan.
    Implementasi :
    ALU biasanya diimplementasikan baik sebagai sirkuit terpadu yang berdiri sendiri (IC), seperti 74181 , atau sebagai bagian dari IC yang lebih kompleks. Dalam kasus terakhir, ALU biasanya dipakai dengan mensintesisnya dari deskripsi yang ditulis dalam VHDL , Verilog atau beberapa bahasa deskripsi perangkat keras lainnya. Sebagai contoh, kode VHDL berikut menjelaskan ALU 8-bit yang sangat sederhana:
    entitas alu
    port ( - koneksi alu ke sirkuit eksternal:
    A : dalam tanda tangan ( 7 downto 0 ); - operan A
    B : dalam tanda tangan ( 7 downto 0 ); - operan B
    OP : di unsigned ( 2 downto 0 ); - opcode
    Y : out signed ( 7 downto 0 )); - hasil operasi
    akhir alu ;
    perilaku arsitektur dari alu
    mulai
    kasus OP - decode opcode dan melakukan operasi:
    ketika "000" => Y <= A + B ; - tambahkan
    ketika "001" => Y <= A - B ; - kurangi
    ketika "010" => Y <= A - 1 ; - penurunan
    ketika "011" => Y <= A + 1 ; - pertambahan
    ketika "100" => Y <= bukan A ; - 1 komplemen
    ketika "101" => Y <= A dan B ; - bitwise AND
    ketika "110" => Y <= A atau B ; - bitwise OR
    ketika "111" => Y <= A xor B ; - bitwise XOR
    ketika orang lain => Y <= ( orang lain => 'X' );
    kasus akhir ;
    mengakhiri perilaku ;

    Sejarah :

    Matematikawan John von Neumann mengusulkan konsep ALU pada tahun 1945 dalam sebuah laporan tentang fondasi untuk komputer baru yang disebut EDVAC .

    Biaya, ukuran, dan konsumsi daya sirkuit elektronik relatif tinggi sepanjang masa informasi . Akibatnya, semua komputer seri dan banyak komputer awal, seperti PDP-8 , memiliki ALU sederhana yang beroperasi pada satu bit data pada suatu waktu, meskipun mereka sering menyajikan ukuran kata yang lebih luas untuk pemrogram. Salah satu komputer paling awal yang memiliki beberapa rangkaian ALU tunggal diskrit adalah 1948 Whirlwind I , yang menggunakan enam belas "unit matematika" semacam itu untuk memungkinkannya beroperasi pada kata-kata 16-bit.

    Pada tahun 1967, Fairchild memperkenalkan ALU pertama yang diimplementasikan sebagai sirkuit terintegrasi, Fairchild 3800, yang terdiri dari ALU delapan-bit dengan akumulator. ALU sirkuit terpadu lainnya segera muncul, termasuk ALU empat bit seperti Am2901 dan 74181 . Perangkat ini biasanya " bit slice " mampu, yang berarti mereka memiliki "membawa melihat ke depan" sinyal yang memfasilitasi penggunaan beberapa chip ALU yang saling berhubungan untuk membuat ALU dengan ukuran kata yang lebih luas.Perangkat ini dengan cepat menjadi populer dan banyak digunakan dalam minicomputer bit-slice.

    Mikroprosesor mulai muncul pada awal 1970-an. Meskipun transistor telah menjadi lebih kecil, sering ada ruang mati yang tidak cukup untuk ALU kata penuh dan, sebagai hasilnya, beberapa mikroprosesor awal menggunakan ALU sempit yang membutuhkan beberapa siklus per instruksi bahasa mesin. Contoh ini termasuk Zilog Z80 yang populer, yang melakukan penambahan delapan bit dengan ALU empat-bit. Seiring waktu, geometri transistor semakin menyusut, mengikuti hukum Moore , dan menjadi layak untuk membangun ALU yang lebih luas pada mikroprosesor.
    Transistor sirkuit terpadu modern (IC) adalah orde yang besarnya lebih kecil daripada mikroprosesor awal, sehingga memungkinkan untuk menyesuaikan ALU yang sangat kompleks pada IC. Saat ini, banyak ALU modern memiliki lebar kata lebar, dan peningkatan arsitektur seperti shifter barel dan pengganda biner yang memungkinkan mereka untuk melakukan, dalam siklus clock tunggal, operasi yang akan membutuhkan beberapa operasi pada ALU sebelumnya.

    Register Prosesor
    Register prosesor, dalam arsitektur komputer, adalah sejumlah kecil memori komputer yang bekerja dengan kecepatan sangat tinggi yang digunakan untuk melakukan eksekusi terhadap program-program komputer dengan menyediakan akses yang cepat terhadap nilai-nilai yang umum digunakan. Umumnya nilai-nilai yang umum digunakan adalah nilai yang sedang dieksekusi dalam waktu tertentu.
    Register prosesor berdiri pada tingkat tertinggi dalam hierarki memori: ini berarti bahwa kecepatannya adalah yang paling cepat; kapasitasnya adalah paling kecil; dan harga tiap bitnya adalah paling tinggi. Register juga digunakan sebagai cara yang paling cepat dalam sistem komputer untuk melakukan manipulasi data. Register umumnya diukur dengan satuan bit yang dapat ditampung olehnya, seperti "register 8-bit", "register 16-bit", "register 32-bit", atau "register 64-bit" dan lain-lain.
    Istilah register saat ini dapat merujuk kepada kumpulan register yang dapat diindeks secara langsung untuk melakukan input/output terhadap sebuah instruksi yang didefinisikan oleh set instruksi. untuk istilah ini, digunakanlah kata "Register Arsitektur". Sebagai contoh set instruksi Intel x86 mendefinisikan sekumpulan delapan buah register dengan ukuran 32-bit, tetapi CPU yang mengimplementasikan set instruksi x86 dapat mengandung lebih dari delapan register 32-bit.

    Jenis Register :
    Register terbagi menjadi beberapa kelas:
    • Register data, yang digunakan untuk menyimpan angka-angka dalam bilangan bulat (integer).
    • Register alamat, yang digunakan untuk menyimpan alamat-alamat memori dan juga untuk mengakses memori.
    • Register general purpose, yang dapat digunakan untuk menyimpan angka dan alamat secara sekaligus.
    • Register floating-point, yang digunakan untuk menyimpan angka-angka bilangan titik mengambang (floating-point).
    • Register konstanta (constant regispter), yang digunakan untuk menyimpan angka-angka tetap yang hanya dapat dibaca (bersifat read-only), semacam phinulltruefalse dan lainnya.
    • Register vektor, yang digunakan untuk menyimpan hasil pemrosesan vektor yang dilakukan oleh prosesor SIMD.
    • Register special purpose yang dapat digunakan untuk menyimpan data internal prosesor, seperti halnya instruction pointer, stack pointer, dan status register.
    • Register yang spesifik terhadap model mesin (machine-specific register), dalam beberapa arsitektur tertentu, digunakan untuk menyimpan data atau pengaturan yang berkaitan dengan prosesor itu sendiri. Karena arti dari setiap register langsung dimasukkan ke dalam desain prosesor tertentu saja, mungkin register jenis ini tidak menjadi standar antara generasi prosesor.

    Ukuran Register :

    Tabel berikut berisi ukuran register dan padanan prosesornya :


    Sumber :

    http://translate.google.co.id/translate?hl=id&langpair=en|id&u=http://www.britannica.com/EBchecked/topic/34754/arithmetic-logic-unit



    http://translate.google.co.id/translate?hl=id&langpair=en|id&u=http://en.wikipedia.org/wiki/Arithmetic_logic_unit

    Tidak ada komentar:

    Posting Komentar

    Arsitektur Family ibm PC dan Turunannya

    IBM PC IBM PC  adalah sebutan untuk keluarga  komputer pribadi  buatan  IBM . IBM PC diperkenalkan pada 12 Agustus 1981, dan "dipens...