Anda di halaman 1dari 208

Machine Translated by Google

ORGANISASI KOMPUTER &


BAHASA CAMPURAN

www.eiiluniversity.ac.in
Machine Translated by Google

Perihal: ORGANISASI KOMPUTER & BAHASA PERAKITAN Kredit: 4

SILABUS

Komputer dan Komponennya


Sejarah Komputasi, Representasi Data, Sistem Angka, Representasi Angka Titik Tetap, Mengambang
Representasi Angka Titik, Representasi BCD, Kode Deteksi Kesalahan, Eksekusi Tetap dan Instruksi,
Interupsi, Bus, Aljabar Boolean, Sirkuit Logika, Gerbang Logika, Sirkuit kombinasional, Sirkuit Sekuensial,
Adder, Decoder, Multiplexer, Encoder, Jenis Flip Flop, Edge Triggered, Master-Slave, Asynchronous
(Serial Atau Riak) Penghitung, Shift Register

Sistem Memori
Hirarki Memori, RAM, DRAM, SRAM, ROM, Memori Flash, Memori sekunder, Memori Optik, Hard disk drive,
Mekanisme Kepala, CCD, Memori gelembung, RAID, Organisasi Cache, Sistem Memori Komputer Mikro, Sistem
Input/Output, DMA , Prosesor input output, Antarmuka Komunikasi Eksternal, Pemrosesan Interupsi, arbitrase BUS,
Floppy Drive, CD-ROM, DVD-ROM, Drive Kartrid, CD yang Dapat Direkam, CD-RW, Teknologi Input/Output,
Karakteristik, Kartu Video, Monitor, Port USB , Liquid Crystal Display (LCD), Kartu Suara, Modem, Printer, Pemindai,
Kamera Digital, Keyboard, Mouse, Catu daya.

Unit pemrosesan utama


Set Instruksi dan Instruksi, Mode pengalamatan dan kepentingannya, Register, Operasi mikro,
Deskripsi Berbagai Jenis Register dengan bantuan Mikroprosesor contohnya ALU, Control Unit,
Kontrol Terprogram, Kontrol Wilkes, Kontrol yang diprogram mikro, Instruksi mikro,

Pemrograman Bahasa Majelis


Mikroprosesor, Format instruksi misalnya Mikroprosesor, Kebutuhan dan penggunaan bahasa rakitan,
Input output dalam Program Bahasa rakitan, alat Pemrograman Rakitan, Antarmuka rakitan dengan HLL,
Perangkat Deriver bahasa assembly, Interupsi dalam pemrograman bahasa assembly,

Bacaan yang Disarankan:


Verma, G.; Mielke, N. Performa yang andal dari memori flash berbasis ETOX. IEEE Internasional
Simposium Fisika Keandalan.

Doron D.Swade. Menebus Komputer Mekanik Charles Babbage. Amerika ilmiah

Meuer, Hans; Strohmaier, Erich; Simon, Horst; Dongara, Jack . "Arsitektur Berbagi Seiring Waktu". TOP500.

Lavington, Simon. Sejarah Komputer Manchester (2 ed.). Swindon: Masyarakat Komputer Inggris

Stoke, Jon. Inside the Machine: Sebuah Pengantar Ilustrasi untuk Mikroprosesor dan Arsitektur Komputer.
San Francisco: Tanpa Pers Pati.
Zuse, Konrad. Komputer - Hidupku. Berlin: Pringler-Verlag.
Machine Translated by Google

Organisasi Komputer & Bahasa Perakitan

1.1 Komputer dan komponennya

Komputer adalah perangkat tujuan umum yang dapat diprogram untuk melakukan serangkaian operasi
aritmatika atau logika. Karena urutan operasi dapat dengan mudah diubah, komputer dapat memecahkan
lebih dari satu jenis masalah.

Secara konvensional, komputer terdiri dari setidaknya satu elemen pemrosesan, biasanya unit
pemrosesan pusat (CPU) dan beberapa bentuk memori. Elemen pemrosesan melakukan operasi
aritmatika dan logika, dan unit pengurutan dan kontrol yang dapat mengubah urutan operasi berdasarkan
informasi yang disimpan. Perangkat periferal memungkinkan informasi diambil dari sumber eksternal, dan
hasil operasi disimpan dan diambil.

Komputer digital elektronik pertama dikembangkan antara tahun 1940 dan 1945. Awalnya mereka
berukuran sebuah ruangan besar, mengkonsumsi daya sebanyak beberapa ratus komputer pribadi
modern (PC). Di era ini komputer analog mekanik digunakan untuk aplikasi militer.

Komputer modern berdasarkan sirkuit terintegrasi jutaan hingga miliaran kali lebih mampu daripada mesin
awal, dan menempati sebagian kecil dari ruang. Komputer sederhana cukup kecil untuk masuk ke
perangkat seluler, dan komputer seluler dapat ditenagai oleh baterai kecil. Komputer pribadi dalam
berbagai bentuknya adalah ikon Era Informasi dan merupakan apa yang kebanyakan orang anggap
sebagai "komputer". Namun, komputer tertanam yang ditemukan di banyak perangkat mulai dari pemutar
MP3 hingga pesawat tempur dan dari mainan hingga robot industri adalah yang paling banyak jumlahnya.

1.1.1 Komponen

Komputer tujuan umum memiliki empat komponen utama: unit logika aritmatika (ALU), unit
kontrol, memori, dan perangkat input dan output (secara kolektif disebut I/O). Bagian-bagian ini
saling berhubungan oleh bus, sering dibuat dari kelompok kabel.
Di dalam masing-masing bagian ini terdapat ribuan hingga triliunan sirkuit listrik kecil yang dapat dimatikan
atau dihidupkan melalui sakelar elektronik. Setiap sirkuit mewakili sedikit (digit biner) informasi sehingga
ketika sirkuit menyala mewakili 1ÿ, dan saat tidak aktif mewakili 0ÿ (dalam representasi logika positif).
Sirkuit diatur dalam gerbang logika sehingga satu atau lebih sirkuit dapat mengontrol keadaan satu atau
lebih sirkuit lainnya.

Unit kontrol, ALU, register, dan I/O dasar (dan seringkali perangkat keras lain yang terkait erat
dengan ini) secara kolektif dikenal sebagai unit pemrosesan pusat (CPU). CPU awal terdiri dari
banyak komponen terpisah tetapi sejak pertengahan 1970-an CPU biasanya dibangun pada
satu sirkuit terintegrasi yang disebut mikroprosesor.
Machine Translated by Google

Unit kontrol

Diagram yang menunjukkan bagaimana instruksi arsitektur MIPS tertentu akan diterjemahkan oleh sistem kontrol.

Unit kontrol (sering disebut sistem kontrol atau pengontrol pusat) mengelola berbagai komponen komputer; itu membaca
dan menafsirkan (mendekode) instruksi program, mengubahnya menjadi serangkaian sinyal kontrol yang mengaktifkan
bagian lain dari komputer Sistem kontrol di komputer tingkat lanjut dapat mengubah urutan beberapa instruksi untuk
meningkatkan kinerja.

Komponen kunci yang umum untuk semua CPU adalah penghitung program, sel memori khusus ( register) yang melacak
lokasi mana dalam memori dari instruksi berikutnya yang akan dibaca.

Fungsi sistem kontrol adalah sebagai berikut—perhatikan bahwa ini adalah deskripsi yang disederhanakan, dan beberapa
langkah ini dapat dilakukan secara bersamaan atau dalam urutan yang berbeda tergantung pada jenisnya.
CPU:

1. Baca kode untuk instruksi berikutnya dari sel yang ditunjukkan oleh penghitung program.
2. Decode kode numerik untuk instruksi menjadi satu set perintah atau sinyal untuk masing-masing sistem lainnya.

3. Tingkatkan penghitung program sehingga menunjuk ke instruksi berikutnya.


4. Baca data apa pun yang dibutuhkan instruksi dari sel dalam memori (atau mungkin dari perangkat input). Lokasi
data yang diperlukan ini biasanya disimpan dalam kode instruksi.

5. Berikan data yang diperlukan ke ALU atau register.


6. Jika instruksi memerlukan ALU atau perangkat keras khusus untuk diselesaikan, instruksikan:
perangkat keras untuk melakukan operasi yang diminta.
7. Tulis hasil dari ALU kembali ke lokasi memori atau ke register atau mungkin an
perangkat keluaran.

8. Lompat kembali ke langkah (1).

Karena penghitung program (secara konseptual) hanyalah sekumpulan sel memori, penghitung program
dapat diubah dengan perhitungan yang dilakukan di ALU. Menambahkan 100 ke penghitung program
akan menyebabkan instruksi berikutnya dibaca dari tempat 100 lokasi lebih jauh ke bawah program.
Instruksi yang memodifikasi penghitung program sering dikenal sebagai 'lompatan' dan memungkinkan
untuk loop (instruksi yang diulang oleh komputer) dan sering kali eksekusi instruksi bersyarat (keduanya
contoh aliran kontrol).
Machine Translated by Google

Urutan operasi yang dilalui unit kontrol untuk memproses instruksi itu sendiri seperti program komputer pendek,
dan memang, dalam beberapa desain CPU yang lebih kompleks, ada komputer lain yang lebih kecil yang
disebut microsequencer, yang menjalankan program mikrokode yang menyebabkan semua peristiwa ini terjadi.

1.1.1.1 Unit logika aritmatika (ALU)

ALU mampu melakukan dua kelas operasi: aritmatika dan logika.

Himpunan operasi aritmatika yang didukung ALU tertentu mungkin terbatas pada penambahan dan pengurangan,
atau mungkin termasuk perkalian, pembagian , fungsi trigonometri seperti sinus, kosinus, dll., dan akar kuadrat.
Beberapa hanya dapat beroperasi pada bilangan bulat (bilangan bulat) sementara yang lain menggunakan
floating point untuk mewakili bilangan real, meskipun dengan presisi terbatas. Namun, setiap komputer yang
hanya mampu melakukan operasi paling sederhana dapat diprogram untuk memecah operasi yang lebih
kompleks menjadi langkah-langkah sederhana yang dapat dilakukan. Oleh karena itu, setiap komputer dapat
diprogram untuk melakukan operasi aritmatika apa pun—walaupun akan membutuhkan lebih banyak waktu
untuk melakukannya jika ALU-nya tidak secara langsung mendukung operasi tersebut. ALU juga dapat
membandingkan angka dan nilai kebenaran returnboolean (benar atau salah) tergantung pada apakah yang
satu sama dengan, lebih besar atau lebih kecil dari yang lain (ÿ adalah 64 lebih besar dari 65?ÿ).

Operasi logika melibatkan logika Boolean: AND, OR, XOR dan NOT. Ini dapat berguna untuk
membuat pernyataan kondisional yang rumit dan memproses logika boolean.
Komputer superscalar mungkin berisi beberapa ALU, memungkinkan mereka untuk memproses
beberapa instruksi secara bersamaan. Prosesor grafis dan komputer dengan fitur SIMD dan MIMD
sering kali berisi ALU yang dapat melakukan aritmatika pada vektor dan matriks.

1.1.1.2 Memori
Memori komputer dapat dilihat sebagai daftar sel di mana angka dapat ditempatkan atau dibaca.
Setiap sel memiliki alamat bernomor dan dapat menyimpan satu nomor. Komputer dapat diinstruksikan untuk
memasukkan angka 123 ke dalam sel bernomor 1357ÿ atau menambahkan angka yang ada di sel 1357 ke
nomor yang ada di sel 2468 dan memasukkan jawabannya ke dalam sel 1595.ÿ Informasi yang tersimpan
dalam memori dapat mewakili hampir apa saja. Huruf, angka, bahkan instruksi komputer dapat ditempatkan ke
dalam memori dengan sama mudahnya. Karena CPU tidak membedakan antara berbagai jenis informasi, itu
adalah tanggung jawab perangkat lunak untuk memberi arti penting pada apa yang dilihat memori sebagai
serangkaian angka.

Di hampir semua komputer modern, setiap sel memori diatur untuk menyimpan bilangan biner dalam kelompok
delapan bit (disebut byte). Setiap byte mampu mewakili 256 angka yang berbeda (2^8 = 256); baik dari 0 hingga
255 atau 128 hingga +127. Untuk menyimpan angka yang lebih besar, beberapa byte berurutan dapat digunakan
(biasanya, dua, empat atau delapan). Bila bilangan negatif diperlukan, mereka biasanya disimpan dalam notasi
komplemen dua. Pengaturan lain dimungkinkan, tetapi biasanya tidak terlihat di luar aplikasi khusus atau konteks
historis. Komputer dapat menyimpan segala jenis informasi dalam memori jika dapat direpresentasikan secara
numerik. Komputer modern memiliki miliaran atau bahkan triliunan byte memori.
Machine Translated by Google

CPU berisi satu set sel memori khusus yang disebut register yang dapat dibaca dan ditulis jauh lebih cepat daripada
area memori utama. Biasanya ada antara dua dan seratus register tergantung pada jenis CPU. Register digunakan
untuk item data yang paling sering dibutuhkan untuk menghindari keharusan mengakses memori utama setiap kali data
dibutuhkan. Karena data terus dikerjakan, mengurangi kebutuhan untuk mengakses memori utama (yang seringkali
lambat dibandingkan dengan ALU dan unit kontrol) sangat meningkatkan kecepatan komputer.

Memori utama komputer hadir dalam dua jenis utama: memori akses acak atau RAM dan memori atau ROM hanya-
baca . RAM dapat dibaca dan ditulis kapan saja CPU memerintahkannya, tetapi ROM dimuat dengan data dan
perangkat lunak yang tidak pernah berubah, oleh karena itu CPU hanya dapat membaca darinya. ROM biasanya
digunakan untuk menyimpan instruksi start-up awal komputer. Secara umum, isi RAM akan terhapus ketika daya ke
komputer dimatikan, tetapi ROM menyimpan datanya tanpa batas waktu. Di PC, ROM berisi program khusus yang
disebut BIOS yang mengatur pemuatan sistem operasi komputer dari hard disk drive ke RAM setiap kali komputer
dihidupkan atau diatur ulang. Di komputer tertanam, yang sering tidak memiliki drive disk, semua perangkat lunak yang
diperlukan dapat disimpan dalam ROM. Software yang disimpan dalam ROM sering disebut firmware, karena secara
pengertian lebih mirip hardware daripada software. Memori flash mengaburkan perbedaan antara ROM dan RAM,
karena menyimpan datanya saat dimatikan tetapi juga dapat ditulis ulang. Ini biasanya jauh lebih lambat daripada ROM
dan RAM konvensional, jadi penggunaannya dibatasi untuk aplikasi di mana kecepatan tinggi tidak diperlukan.

Di komputer yang lebih canggih mungkin ada satu atau lebih memori cache RAM, yang lebih lambat dari register tetapi
lebih cepat dari memori utama. Umumnya komputer dengan cache semacam ini dirancang untuk memindahkan data
yang sering dibutuhkan ke dalam cache secara otomatis, seringkali tanpa memerlukan intervensi apa pun dari pihak
programmer.

1.1.1.3 Masukan/keluaran (I/O)


I/O adalah sarana dimana komputer bertukar informasi dengan dunia luar. Perangkat yang memberikan input atau
output ke komputer disebut periferal. Pada komputer pribadi biasa, periferal mencakup perangkat input seperti keyboard
dan mouse, dan perangkat output seperti layar dan printer. Hard disk drive, floppy disk drive dan optical disc drive
berfungsi sebagai perangkat input dan output. Jaringan komputer adalah bentuk lain dari I/O.

Perangkat I/O seringkali merupakan komputer yang kompleks dengan sendirinya, dengan CPU dan memorinya sendiri.
Unit pemrosesan grafis mungkin berisi lima puluh atau lebih komputer kecil yang melakukan
perhitungan yang diperlukan untuk menampilkan [rujukan?]
grafik 3D. Komputer desktop modern berisi
banyak komputer kecil yang membantu CPU utama dalam melakukan I/O.

1.1.1.4 Multitasking
Sementara komputer dapat dilihat sebagai menjalankan satu program raksasa yang disimpan dalam memori utamanya,
dalam beberapa sistem perlu untuk memberikan tampilan menjalankan beberapa program secara bersamaan.
Hal ini dicapai dengan multitasking yaitu memiliki komputer beralih cepat antara menjalankan setiap program secara
bergantian. Salah satu cara yang dilakukan adalah dengan sinyal khusus yang disebut interupsi, yang secara berkala
dapat menyebabkan komputer berhenti mengeksekusi instruksi di tempat itu dan melakukan sesuatu yang lain sebagai
gantinya. Dengan mengingat di mana ia dieksekusi sebelum interupsi,
Machine Translated by Google

komputer dapat kembali ke tugas itu nanti. Jika beberapa program berjalan "pada waktu yang sama", maka
generator interupsi mungkin menyebabkan beberapa ratus interupsi per detik, menyebabkan program beralih
setiap kali. Karena komputer modern biasanya mengeksekusi instruksi beberapa kali lipat lebih cepat daripada
persepsi manusia, mungkin tampak bahwa banyak program berjalan pada saat yang sama meskipun hanya
satu yang pernah dieksekusi dalam waktu tertentu. Metode multitasking ini kadang-kadang disebut time-sharingÿ
karena setiap program dialokasikan sliceÿ waktu secara bergiliran.

Sebelum era komputer murah, penggunaan utama multitasking adalah untuk memungkinkan banyak orang
berbagi komputer yang sama.

Tampaknya, multitasking akan menyebabkan komputer yang beralih di antara beberapa program berjalan lebih
lambat, berbanding lurus dengan jumlah program yang dijalankan, tetapi sebagian besar program menghabiskan
banyak waktu menunggu perangkat input/output yang lambat menyelesaikan tugasnya. Jika sebuah program
menunggu pengguna untuk mengklik mouse atau menekan tombol pada keyboard, maka itu tidak akan
mengambil 'bagian waktu' sampai acara yang ditunggu telah terjadi. Ini membebaskan waktu untuk menjalankan
program lain sehingga banyak program dapat dijalankan secara bersamaan tanpa kehilangan kecepatan yang
tidak dapat diterima.

1.1.1.5 Multiprosesor
Beberapa komputer dirancang untuk mendistribusikan pekerjaan mereka di beberapa CPU dalam konfigurasi
multiprosesor, teknik yang pernah digunakan hanya di mesin besar dan kuat seperti superkomputer, komputer
mainframe , dan server. Komputer pribadi dan laptop multiprosesor dan multi-inti (beberapa CPU pada satu
sirkuit terintegrasi) sekarang tersedia secara luas, dan sebagai hasilnya semakin banyak digunakan di pasar
kelas bawah.

Superkomputer khususnya sering memiliki arsitektur yang sangat unik yang berbeda secara signifikan dari
arsitektur program tersimpan dasar dan dari komputer tujuan umum.[53] Mereka sering menampilkan ribuan
CPU, interkoneksi berkecepatan tinggi yang disesuaikan, dan perangkat keras komputasi khusus.
Desain tersebut cenderung berguna hanya untuk tugas-tugas khusus karena skala besar organisasi program
yang diperlukan untuk berhasil memanfaatkan sebagian besar sumber daya yang tersedia sekaligus.
Superkomputer biasanya melihat penggunaan dalam simulasi skala besar, rendering grafik, dan aplikasi
kriptografi , serta dengan apa yang disebut tugas paralel yang memalukan.

1.1.1.6 Jaringan dan Internet


Komputer telah digunakan untuk mengoordinasikan informasi antara beberapa lokasi sejak tahun 1950-an.
Sistem SAGE militer AS adalah contoh skala besar pertama dari sistem semacam itu, yang
menghasilkan sejumlah sistem komersial tujuan khusus seperti Sabre.
Pada 1970-an, insinyur komputer di lembaga penelitian di seluruh Amerika Serikat mulai menghubungkan
komputer mereka bersama-sama menggunakan teknologi telekomunikasi. Usaha tersebut dibiayai oleh ARPA
(sekarang DARPA), dan jaringan komputer yang dihasilkan disebut ARPANET. Teknologi yang memungkinkan
Arpanet menyebar dan berkembang.

Dalam waktu, jaringan menyebar di luar lembaga akademis dan militer dan dikenal sebagai Internet. Munculnya
jaringan melibatkan redefinisi sifat dan batas-batas dari
Machine Translated by Google

komputer. Sistem operasi komputer dan aplikasi dimodifikasi untuk memasukkan kemampuan untuk
mendefinisikan dan mengakses sumber daya komputer lain di jaringan, seperti perangkat periferal,
informasi yang disimpan, dan sejenisnya, sebagai perluasan sumber daya dari setiap komputer.
Awalnya fasilitas ini tersedia terutama untuk orang-orang yang bekerja di lingkungan berteknologi
tinggi, tetapi pada 1990-an penyebaran aplikasi seperti e-mail dan World Wide Web, dikombinasikan
dengan pengembangan teknologi jaringan yang murah dan cepat seperti Ethernet dan ADSL membuat
jaringan komputer menjadi hampir di mana-mana. Bahkan, jumlah komputer yang terhubung ke
jaringan tumbuh secara fenomenal. Sebagian besar komputer pribadi secara teratur terhubung ke
Internet untuk berkomunikasi dan menerima informasi. Jaringan 'nirkabel', sering kali menggunakan
jaringan telepon seluler, berarti jaringan menjadi semakin umum bahkan di lingkungan komputasi
bergerak.

1.2 Sejarah Komputasi


Penggunaan pertama kata komputerÿ tercatat pada tahun 1613 dalam sebuah buku berjudul The
yong mans gleaningsÿ oleh penulis Inggris Richard Braithwait Saya telah membaca komputer Times
yang paling benar, dan ahli Aritmatika terbaik yang pernah bernafas, dan dia mengurangi hari-hari
Anda. menjadi bilangan pendek. Ini merujuk pada seseorang yang melakukan perhitungan, atau
perhitungan, dan kata itu berlanjut dengan arti yang sama hingga pertengahan abad ke-20. Sejak
akhir abad ke-19 kata tersebut mulai memiliki arti yang lebih familiar, sebuah mesin yang melakukan perhitungan.

1.2.1 Komputer awal dengan fungsi terbatas


Sejarah komputer modern dimulai dengan dua teknologi terpisah, perhitungan otomatis dan
kemampuan program. Namun tidak ada perangkat tunggal yang dapat diidentifikasi sebagai komputer
paling awal, sebagian karena penerapan istilah tersebut yang tidak konsisten. Beberapa perangkat
yang layak disebut, seperti beberapa alat bantu mekanis untuk komputasi, yang sangat sukses dan
bertahan selama berabad-abad sampai munculnya kalkulator elektronik, seperti sempoa Sumeria,
dirancang sekitar 2500 SM yang keturunannya memenangkan kompetisi kecepatan melawan
kontemporer. mesin penghitung meja di Jepang pada tahun 1946 aturan slide, ditemukan pada tahun
1620-an, yang dilakukan pada lima misi luar angkasa Apollo, termasuk ke bulan dan bisa dibilang
astrolabe dan mekanisme Antikythera, komputer analog astronomi kuno yang dibangun oleh orang
Yunani sekitar tahun 80 SM Orang Yunani ahli matematika Hero of Alexandria (c. 10–70 M)
membangun teater mekanik yang menampilkan drama yang berlangsung 10 menit dan dioperasikan
oleh sistem tali dan drum yang kompleks yang mungkin dianggap sebagai sarana untuk memutuskan
bagian mana dari mekanisme yang dilakukan tindakan apa dan kapan. Ini adalah inti dari programabilitas.
Blaise Pascal menemukan kalkulator mekanik pada tahun 1642, yang dikenal sebagai kalkulator
Pascal, itu adalah mesin pertama untuk kinerja manusia yang lebih baik dari perhitungan aritmatika
dan akan berubah menjadi satu-satunya kalkulator mekanik fungsional di abad ke-17. Dua ratus
tahun kemudian, pada tahun 1851, Thomas de Colmar merilis, setelah tiga puluh tahun
pengembangan, aritmometernya yang disederhanakan; menjadi mesin pertama yang dikomersialkan
karena cukup kuat dan cukup andal untuk digunakan sehari-hari di lingkungan kantor. Kalkulator
mekanik merupakan akar dari perkembangan komputer dalam dua cara yang berbeda. Awalnya,
dalam upaya mengembangkan kalkulator yang lebih kuat dan lebih fleksibel[12] komputer pertama
kali diteorikan oleh Charles Babbage dan kemudian dikembangkan. Kedua, pengembangan kalkulator elektronik mu
Machine Translated by Google

penerus kalkulator mekanik, menghasilkan pengembangan oleh Intel dari sirkuit terintegrasi mikroprosesor
pertama yang tersedia secara komersial .

1.2.2 Komputer serba guna pertama


Pada tahun 1801, Joseph Marie Jacquard melakukan perbaikan pada alat tenun tekstil dengan memperkenalkan
serangkaian kartu kertas berlubang sebagai templat yang memungkinkan alat tenunnya menenun pola rumit
secara otomatis. Alat tenun Jacquard yang dihasilkan merupakan langkah penting dalam pengembangan
komputer karena penggunaan kartu berlubang untuk menentukan pola anyaman dapat dilihat sebagai bentuk
awal, meskipun terbatas, dari programabilitas.

Itu adalah perpaduan antara perhitungan otomatis dengan kemampuan program yang menghasilkan komputer
pertama yang dapat dikenali. Pada tahun 1837, Charles Babbage adalah orang pertama yang membuat konsep
dan merancang komputer mekanis yang sepenuhnya dapat diprogram , mesin analitiknya. Keterbatasan
keuangan dan ketidakmampuan Babbage untuk menolak mengutak-atik desain berarti perangkat itu tidak pernah selesai—
namun putranya, Henry Babbage, menyelesaikan versi sederhana dari unit komputasi mesin analitik (pabrik)
pada tahun 1888. Dia berhasil mendemonstrasikan penggunaannya dalam tabel komputasi pada tahun 1906.
Mesin ini diberikan ke museum Sains di South Kensington pada tahun 1910.

Antara tahun 1842 dan 1843, Ada Lovelace, seorang analis mesin analitik Charles Babbage , menerjemahkan
sebuah artikel oleh insinyur militer Italia Luigi Menabrea tentang mesin tersebut, yang ia tambahkan dengan
serangkaian catatan rumitnya sendiri, yang disebut Catatan. Catatan ini berisi apa yang dianggap sebagai
program komputer pertama – yaitu, algoritma yang dikodekan untuk diproses oleh mesin. Catatan Lovelace
penting dalam sejarah awal komputer. Dia juga mengembangkan visi tentang kemampuan komputer untuk
melampaui sekadar menghitung atau menghitung angka sementara yang lain, termasuk Babbage sendiri, hanya
berfokus pada kemampuan itu.

Pada akhir tahun 1880-an, Herman Hollerith menemukan perekaman data pada media yang
dapat dibaca mesin. Penggunaan media yang dapat dibaca mesin sebelumnya adalah untuk
kontrol, bukan data. Setelah beberapa percobaan awal dengan pita kertas, dia memilih kartu
berlubang... Untuk memproses kartu berlubang ini, dia menemukan tabulator, dan mesin
pelubang kunci. Ketiga penemuan ini adalah dasar dari industri pemrosesan informasi modern.
Pemrosesan data otomatis skala besar dari kartu berlubang dilakukan untuk Sensus Amerika
Serikat tahun 1890 oleh perusahaan Hollerith, yang kemudian menjadi inti dari IBM. Pada akhir
abad ke-19 sejumlah ide dan teknologi, yang kemudian terbukti berguna dalam realisasi
komputer praktis, mulai muncul: aljabar Boolean, tabung vakum (katup termionik), kartu
berlubang dan pita, dan teleprinter . .
Selama paruh pertama abad ke-20, banyak kebutuhan komputasi ilmiah dipenuhi oleh komputer analog yang
semakin canggih, yang menggunakan model masalah mekanis atau elektrik langsung sebagai dasar komputasi.
Namun, ini tidak dapat diprogram dan umumnya tidak memiliki fleksibilitas dan akurasi komputer digital modern.

Alan Turing secara luas dianggap sebagai bapak ilmu komputer modern. Pada tahun 1936, Turing memberikan
formalisasi yang berpengaruh dari konsep algoritma dan komputasi dengan mesin Turing, menyediakan cetak
biru untuk komputer digital elektronik. Tentang perannya dalam penciptaan komputer modern, majalah Time
yang menyebut Turing sebagai salah satu dari 100 orang paling berpengaruh di abad ke-20, menyatakan:
Faktanya tetap bahwa setiap orang yang mengetuk
Machine Translated by Google

keyboard, membuka spreadsheet atau program pengolah kata, sedang mengerjakan inkarnasi mesin Turing.

Komputer pertama yang benar-benar berfungsi adalah Z1, awalnya dibuat oleh Konrad Zuse Jerman di ruang
tamu orang tuanya pada tahun 1936 hingga 1938, dan dianggap sebagai komputer biner elektro-mekanis yang
dapat diprogram (modern) pertama.

George Stibitz secara internasional diakui sebagai bapak komputer digital modern. Saat bekerja di Bell Labs
pada November 1937, Stibitz menemukan dan membangun kalkulator berbasis relai yang ia juluki Model Kÿ
(untuk meja dapur,ÿ tempat ia merakitnya), yang merupakan yang pertama menggunakan sirkuit biner untuk
melakukan operasi aritmatika. Model selanjutnya menambahkan kecanggihan yang lebih besar termasuk
aritmatika kompleks dan kemampuan program.

Atanasoff–Berry Computer (ABC) adalah komputer digital elektronik pertama di dunia, meskipun tidak dapat
diprogram. Atanasoff dianggap sebagai salah satu bapak komputer. Diciptakan pada tahun 1937 oleh profesor
fisika Iowa State College John Atanasoff, dan dibangun dengan bantuan [28] mesin itu tidak dapat diprogram,
dirancang hanya untuk mahasiswa pascasarjana Clifford Berry,
menyelesaikan sistem persamaan linear. Komputer memang menggunakan komputasi paralel. Sebuah putusan
pengadilan tahun 1973 dalam sengketa paten menemukan bahwa paten untuk komputer ENIAC 1946 berasal
dari Komputer Atanasoff–Berry.

Komputer pertama yang dikendalikan program ditemukan oleh Konrad Zuse, yang membangun Z3, sebuah mesin
komputasi elektromekanis, pada tahun 1941. Komputer elektronik pertama yang dapat diprogram adalah
Colossus, yang dibuat pada tahun 1943 oleh Tommy Flowers.

1.2.3 Langkah-langkah kunci menuju komputer modern


Serangkaian perangkat komputasi yang terus lebih kuat dan fleksibel dibangun pada 1930-an dan 1940-an,
secara bertahap menambahkan fitur-fitur utama yang terlihat di komputer modern. Penggunaan elektronik
digital (sebagian besar ditemukan oleh Claude Shannon pada tahun 1937) dan kemampuan program yang
lebih fleksibel adalah langkah yang sangat penting, tetapi mendefinisikan satu titik di sepanjang jalan ini sebagai
'komputer elektronik digital pertama' adalah sulit.
Prestasi penting termasuk:

Mesin Z elektromekanis Konrad Zuse.ÿ Z3 (1941) adalah mesin kerja pertama yang menampilkan
aritmatika biner, termasuk aritmatika floating point dan ukuran programabilitas. Pada tahun 1998 Z3 terbukti
sebagai Turing lengkap, oleh karena itu menjadi komputer operasional pertama di dunia. Dengan demikian,
Zuse sering dianggap sebagai penemu komputer.

Komputer Atanasoff–Berry yang tidak dapat diprogram (dimulai pada tahun 1937, selesai pada tahun
1941) yang menggunakan komputasi berbasis tabung vakum, bilangan biner, dan memori kapasitor
regeneratif. Penggunaan memori regeneratif memungkinkannya menjadi jauh lebih kompak daripada rekan-
rekannya (menjadi kira-kira seukuran meja besar atau meja kerja), karena hasil antara dapat disimpan dan
kemudian dimasukkan kembali ke dalam set elemen komputasi yang sama.
Machine Translated by Google

Komputer rahasia British Colossus (1943), yang memiliki kemampuan program terbatas tetapi
menunjukkan bahwa perangkat yang menggunakan ribuan tabung dapat cukup andal dan dapat
diprogram ulang secara elektronik. Itu digunakan untuk memecahkan kode perang Jerman.
Harvard Mark I (1944), komputer elektromekanis skala besar dengan kemampuan program terbatas.

Penelitian Balistik Angkatan Darat AS Laboratorium ENIAC (1946), yang


menggunakan aritmatika desimal dan kadang-kadang disebut komputer elektronik tujuan umum pertama
(sejak Z3 Konrad Zuse tahun 1941 menggunakan elektromagnet sebagai pengganti elektronik). Namun,
pada awalnya, ENIAC memiliki arsitektur yang memerlukan pemasangan ulang plugboard untuk
mengubah pemrogramannya.

1.2.4 Arsitektur program tersimpan


Beberapa pengembang ENIAC, menyadari kekurangannya, datang dengan desain yang jauh lebih fleksibel
dan elegan, yang kemudian dikenal sebagai "arsitektur program tersimpan" atau arsitektur von Neumann .
Desain ini pertama kali dijelaskan secara formal oleh John von Neumann dalam makalah First Draft of a
Report on the EDVAC, didistribusikan pada tahun 1945. Sejumlah proyek untuk mengembangkan komputer
berdasarkan arsitektur program tersimpan dimulai sekitar waktu ini, yang pertama adalah diselesaikan pada
tahun 1948 di University of Manchester di Inggris, Manchester Small-Scale Experimental Machine (SSEM
atau Babyÿ). Electronic Delay Storage Automatic Calculator (EDSAC), yang diselesaikan setahun setelah
SSEM di Universitas Cambridge, adalah implementasi non-eksperimental praktis pertama dari desain
program tersimpan dan langsung digunakan untuk pekerjaan penelitian di universitas. Tak lama kemudian,
mesin yang awalnya dijelaskan oleh makalah von Neumann—EDVAC— selesai tetapi tidak digunakan secara
penuh selama dua tahun tambahan.

Hampir semua komputer modern menerapkan beberapa bentuk arsitektur program tersimpan, menjadikannya
ciri tunggal yang digunakan untuk mendefinisikan kata 'komputer'. Sementara teknologi yang digunakan
dalam komputer telah berubah secara dramatis sejak komputer elektronik pertama pada tahun 1940-an,
sebagian besar masih menggunakan arsitektur von Neumann.

Dimulai pada 1950-an, ilmuwan Soviet Sergei Sobolev dan Nikolay Brusentsov melakukan penelitian pada
komputer terner, perangkat yang beroperasi pada sistem penomoran tiga dasar -1, 0, dan 1 daripada sistem
penomoran biner konvensional yang menjadi dasar sebagian besar komputer. Mereka merancang Setun,
komputer ternary fungsional, di Universitas Negeri Moskow. Perangkat itu dimasukkan ke dalam produksi
terbatas di Uni Soviet, tetapi digantikan oleh arsitektur biner yang lebih umum.

1.2.5 Semikonduktor dan mikroprosesor


Komputer yang menggunakan tabung vakum sebagai elemen elektroniknya digunakan sepanjang tahun
1950-an, tetapi pada tahun 1960-an sebagian besar telah digantikan oleh mesin berbasis transistor, yang
lebih kecil, lebih cepat, lebih murah untuk diproduksi, membutuhkan lebih sedikit daya, dan lebih andal.
Komputer transistor pertama didemonstrasikan di Universitas Manchester pada tahun 1953. Pada tahun
1970-an, teknologi sirkuit terpadu dan penciptaan mikroprosesor berikutnya, seperti Intel 4004, semakin
mengurangi ukuran dan biaya dan semakin meningkatkan kecepatan dan keandalan komputer. Pada akhir
1970-an, banyak produk seperti perekam video berisi
Machine Translated by Google

komputer yang disebut mikrokontroler, dan mereka mulai muncul sebagai pengganti kontrol mekanis pada
peralatan rumah tangga seperti mesin cuci. Tahun 1980-an menyaksikan komputer rumah dan komputer pribadi
sekarang ada di mana-mana. Dengan evolusi Internet, komputer pribadi menjadi biasa seperti televisi dan
telepon di rumah tangga Smartphone modern adalah komputer yang sepenuhnya dapat diprogram dengan hak
mereka sendiri, dan pada tahun 2009 mungkin merupakan bentuk paling umum dari komputer semacam itu
yang ada. ]

Program

Ciri khas komputer modern yang membedakannya dari semua mesin lainnya adalah bahwa mereka dapat
diprogram. Artinya, beberapa jenis instruksi ( program) dapat diberikan ke komputer, dan komputer akan
memprosesnya. Komputer modern berdasarkan arsitektur von Neumann sering memiliki kode mesin dalam
bentuk bahasa pemrograman imperatif. Dalam istilah praktis, program komputer mungkin hanya beberapa
instruksi atau meluas ke jutaan instruksi, seperti halnya program untuk pengolah kata dan web browser misalnya.
Sebuah komputer modern yang khas dapat mengeksekusi miliaran instruksi per detik (gigaflops) dan jarang
membuat kesalahan selama bertahun-tahun operasi. Program komputer besar yang terdiri dari beberapa juta
instruksi mungkin membutuhkan waktu bertahun-tahun untuk ditulis oleh tim pemrogram , dan karena kerumitan
tugas hampir pasti mengandung kesalahan.

Arsitektur program tersimpan


Bagian ini berlaku untuk komputer berbasis mesin RAM yang paling umum .

Dalam kebanyakan kasus, instruksi komputer sederhana: menambahkan satu nomor ke nomor lain,
memindahkan beberapa data dari satu lokasi ke lokasi lain, mengirim pesan ke beberapa perangkat eksternal,
dll. Instruksi ini dibaca dari memori komputer dan umumnya dilakukan (dieksekusi) dalam urutan yang diberikan.
Namun, biasanya ada instruksi khusus untuk memberi tahu komputer agar melompat maju atau mundur ke
tempat lain dalam program dan melanjutkan eksekusi dari sana. Ini disebut instruksi 'lompat' (atau cabang).
Selanjutnya, instruksi lompat dapat dibuat terjadi secara kondisional sehingga urutan instruksi yang berbeda
dapat digunakan tergantung pada hasil beberapa perhitungan sebelumnya atau beberapa peristiwa eksternal.
Banyak komputer secara langsung mendukung subrutin dengan menyediakan jenis lompatan yang 'mengingat'
lokasi tempat ia melompat dan instruksi lain untuk kembali ke instruksi setelah instruksi lompatan itu.

Eksekusi program bisa diibaratkan seperti membaca buku. Sementara seseorang biasanya akan membaca
setiap kata dan baris secara berurutan, mereka kadang-kadang melompat kembali ke tempat sebelumnya dalam
teks atau melewatkan bagian yang tidak menarik. Demikian pula, komputer kadang-kadang dapat kembali dan
mengulangi instruksi di beberapa bagian program berulang-ulang sampai beberapa kondisi internal terpenuhi.
Ini disebut aliran kontrol dalam program dan inilah yang memungkinkan komputer melakukan tugas berulang
kali tanpa campur tangan manusia.

Sebagai perbandingan, seseorang yang menggunakan kalkulator saku dapat melakukan operasi aritmatika
dasar seperti menambahkan dua angka hanya dengan menekan beberapa tombol. Tetapi untuk menjumlahkan
semua angka dari 1 hingga 1.000 akan membutuhkan ribuan penekanan tombol dan banyak waktu, dengan
hampir pasti membuat kesalahan. Di sisi lain, komputer dapat diprogram untuk melakukan ini hanya dengan
beberapa contoh sederhana: instruksi. Untuk
Machine Translated by Google

mov No 0, jumlah ; atur jumlah ke 0


mov No. 1, nomor ; atur angka ke 1
loop: tambahkan angka, jumlah; tambahkan angka ke jumlah

tambahkan No. 1, angka ; tambahkan 1 ke angka

cmp nomor, #1000 ; bandingkan angka dengan 1000


lingkaran kecil; jika num <= 1000, kembali ke 'loop'
berhenti ; akhir program. berhenti berlari

Setelah diperintahkan untuk menjalankan program ini, komputer akan melakukan tugas penambahan berulang tanpa campur
tangan manusia lebih lanjut. Itu hampir tidak akan pernah membuat kesalahan dan PC modern dapat menyelesaikan tugas
dalam waktu sekitar sepersejuta detik

Bug

Kesalahan dalam program komputer disebut 'bug'. Kesalahan tersebut mungkin tidak berbahaya dan tidak mempengaruhi
kegunaan program, atau hanya memiliki efek yang tidak kentara. Tetapi dalam beberapa kasus, mereka dapat menyebabkan
program atau seluruh sistem 'hang', menjadi tidak responsif terhadap input seperti klik mouse atau penekanan tombol, gagal
total, atau crash. Jika tidak, bug jinak terkadang dapat dimanfaatkan untuk maksud jahat oleh pengguna yang tidak bermoral
yang menulis eksploit, kode yang dirancang untuk memanfaatkan bug dan mengganggu eksekusi komputer yang benar. Bug
biasanya bukan kesalahan komputer. Karena komputer hanya menjalankan instruksi yang diberikan, bug hampir

selalu hasil dari kesalahan programmer atau kesalahan yang dibuat dalam desain program.

Laksamana Grace Hopper, seorang ilmuwan komputer Amerika dan pengembang kompiler pertama, dikreditkan karena
pertama kali menggunakan istilah 'bug' dalam komputasi setelah ngengat mati ditemukan menyingkat relai di komputer
Harvard Mark II pada September 1947.

Kode mesin

Di sebagian besar komputer, instruksi individu disimpan sebagai kode mesin dengan setiap instruksi
diberi nomor unik (kode operasinya atau singkatnya opcode). Perintah untuk menjumlahkan dua
angka akan memiliki satu opcode, perintah untuk mengalikannya akan memiliki opcode yang
berbeda dan seterusnya. Komputer paling sederhana mampu melakukan beberapa instruksi yang
berbeda; komputer yang lebih kompleks memiliki beberapa ratus untuk dipilih, masing-masing
dengan kode numerik yang unik. Karena memori komputer dapat menyimpan angka, ia juga dapat
menyimpan kode instruksi. Ini mengarah pada fakta penting bahwa seluruh program (yang hanya
merupakan daftar instruksi ini) dapat direpresentasikan sebagai daftar angka dan dapat dengan
sendirinya dimanipulasi di dalam komputer dengan cara yang sama seperti data numerik. Konsep
dasar menyimpan program dalam memori komputer bersama dengan data yang mereka operasikan
adalah inti dari arsitektur von Neumann, atau program tersimpan. Dalam beberapa kasus, komputer
mungkin menyimpan beberapa atau semua programnya dalam memori yang disimpan terpisah dari
data yang dioperasikannya. Ini disebut arsitektur Harvard setelah komputer Harvard Mark I. Komputer
von Neumann modern menampilkan beberapa ciri arsitektur Harvard dalam desainnya, seperti dalam cache CPU.
Machine Translated by Google

Meskipun dimungkinkan untuk menulis program komputer sebagai daftar panjang angka (bahasa mesin) dan
sementara teknik ini digunakan dengan banyak komputer awal, sangat membosankan dan berpotensi rawan
kesalahan untuk melakukannya dalam praktik, terutama untuk program yang rumit. Sebaliknya, setiap instruksi
dasar dapat diberi nama pendek yang menunjukkan fungsinya dan mudah diingat –
mnemonik seperti ADD, SUB, MULT atau JUMP. Mnemonik ini secara kolektif dikenal sebagai bahasa rakitan
komputer. Mengubah program yang ditulis dalam bahasa rakitan menjadi sesuatu yang benar-benar dapat
dipahami komputer (bahasa mesin) biasanya dilakukan oleh program komputer yang disebut assembler.

Bahasa pemrograman

Bahasa pemrograman menyediakan berbagai cara untuk menentukan program agar komputer dapat dijalankan.
Tidak seperti bahasa alami, bahasa pemrograman dirancang untuk tidak menimbulkan ambiguitas dan ringkas.
Mereka murni bahasa tertulis dan seringkali sulit dibaca dengan keras. Mereka umumnya diterjemahkan ke
dalam kode mesin oleh kompiler atau assembler sebelum dijalankan, atau diterjemahkan langsung pada saat
dijalankan oleh seorang juru bahasa. Kadang-kadang program dijalankan dengan metode hibrida dari dua teknik.

Bahasa tingkat rendah

Bahasa mesin dan bahasa rakitan yang mewakilinya (secara kolektif disebut bahasa pemrograman
tingkat rendah) cenderung unik untuk jenis komputer tertentu. Misalnya , komputer arsitektur ARM
(seperti yang dapat ditemukan di PDA atau videogame genggam) tidak dapat memahami bahasa
mesin komputer Intel Pentium atau AMD Athlon 64 yang mungkin ada di PC.

Bahasa tingkat tinggi

Meskipun jauh lebih mudah daripada dalam bahasa mesin, menulis program yang panjang dalam bahasa
rakitan seringkali sulit dan juga rawan kesalahan. Oleh karena itu, sebagian besar program praktis ditulis dalam
bahasa pemrograman tingkat tinggi yang lebih abstrak yang mampu mengekspresikan kebutuhan pemrogram
dengan lebih mudah (dan dengan demikian membantu mengurangi kesalahan pemrogram). Bahasa tingkat
tinggi biasanya 'dikompilasi' ke dalam bahasa mesin (atau kadang-kadang ke dalam bahasa rakitan)
dan kemudian ke dalam bahasa mesin) menggunakan program komputer lain yang disebut compiler.
Bahasa tingkat tinggi kurang terkait dengan cara kerja komputer target daripada bahasa rakitan, dan
lebih terkait dengan bahasa dan struktur masalah yang harus diselesaikan oleh program akhir. Oleh
karena itu seringkali mungkin untuk menggunakan kompiler yang berbeda untuk menerjemahkan
program bahasa tingkat tinggi yang sama ke dalam bahasa mesin dari berbagai jenis komputer. Ini
adalah bagian dari sarana yang perangkat lunak seperti video game dapat dibuat tersedia untuk
arsitektur komputer yang berbeda seperti komputer pribadi dan berbagai konsol video game.
Machine Translated by Google

Desain program
Desain program dari program kecil relatif sederhana dan melibatkan analisis masalah, pengumpulan input,
menggunakan konstruksi pemrograman dalam bahasa, merancang atau menggunakan prosedur dan algoritma
yang ditetapkan, menyediakan data untuk perangkat output dan solusi untuk masalah yang berlaku. Sebagai
masalah menjadi lebih besar dan lebih kompleks, fitur seperti subprogram, modul, dokumentasi formal, dan
paradigma baru seperti pemrograman berorientasi objek ditemui. Program besar yang melibatkan ribuan baris
kode dan lebih membutuhkan metodologi perangkat lunak formal. Tugas mengembangkan sistem perangkat
lunak besar menghadirkan tantangan intelektual yang signifikan. Memproduksi perangkat lunak dengan keandalan
tinggi yang dapat diterima dalam jadwal dan anggaran yang dapat diprediksi secara historis sulit; disiplin akademik
dan profesional rekayasa perangkat lunak berkonsentrasi secara khusus pada tantangan ini.

1.3 Representasi data


Komputer dapat merasakan ketika sinyal listrik yang dikirim menyala atau mati. Ini diwakili oleh '1' (aktif) atau
'0' (mati). Setiap individu 1 atau 0 disebut digit biner atau bit dan itu adalah bagian terkecil dari data yang sistem
komputer dapat bekerja dengannya.

Delapan bit dikelompokkan bersama untuk membuat satu byte.

Satu byte menyediakan kode yang cukup (256) untuk mewakili semua karakter yang muncul pada keyboard
standar. Byte adalah unit dasar yang digunakan untuk mengukur ukuran memori komputer.

Tabel yang menampilkan nilai memori komputer

Sedikit 1 atau 0

Byte 8 bit

Kilobyte (Kb) 1024 byte

Megabyte (Mb) 1024 kilobyte

Gigabyte (Gb) 1024 megabyte

Terabyte (Tb) 1024 gigabyte

Representasi bilangan bulat positif


Machine Translated by Google

Kami dapat mewakili angka berapa pun, betapapun besarnya, dalam biner. Ingat kita hanya dapat menyimpan
angka antara 0 dan 255 dalam satu byte. Ini jelas agak membatasi karena tidak berurusan dengan bilangan bulat
besar, bilangan negatif atau bilangan desimal.

Representasi angka dalam biner

7 6 5 4 3 2 1 0
2 2 2 2 2 2 2 2 delapan kekuatan biner pertama

128 64 32 16 8 4 2 1

0 100001 1 = 67

1 111111 1 =255: angka terbesar yang diwakili hanya dalam satu byte

0 0 0 0 1 1 0 0 =12

Keuntungan menggunakan bilangan biner

Mereka hanya memiliki dua status 1 atau 0 (hidup atau mati)


Aritmatika Sederhana hanya memiliki dua keadaan, yaitu 0+0, 0+1, 1+0, 1+1
Penurunan tegangan (degradasi) tidak akan mempengaruhi data

Representasi Titik Mengambang


Representasi Floating Point digunakan untuk memperkirakan angka yang sangat besar atau sangat akurat.

Dalam desimal

76 = .76 x 100 = .76 x 102

.76 mantissa
10 dasar
2 eksponen
Dalam Biner

1001100 = .1001100 x 27 = .1001100 x 2111

.1001100 mantissa
2 dasar

111 eksponen
Ingat Biner adalah basis 2 karena hanya ada dua angka 1 dan 0.

Menyimpan teks (ASCII)

Setiap karakter pada keyboard memiliki kode unik satu byte (8-bit) untuk mewakilinya. Sebuah standar untuk
mewakili karakter ini adalah set ASCII . ASCII adalah singkatan dari American Standard Code for Information
Interchange. Karakter seperti huruf a sampai z dan A sampai Z, angka 0 sampai 9 dan simbol $, £, ?, @, dll, masing-
masing diberi kode standar yang sama pada semua sistem komputer.
Machine Translated by Google

Tabel yang menunjukkan representasi berbeda dari daftar karakter dalam biner, dan desimal

Karakter Biner Desimal Karakter Biner Desimal

Ruang angkasa
0010 0000 32 SEBUAH 0100 0001 65

! 0010 0001 33 B 0100 0010 66

'
0010 0010 34 C 0100 0011 67

1 0011 0001 49 kamu 0101 1001 89

2 0011 0010 50 Z 0101 1010 90

3 0011 0011 51 SEBUAH 0110 0001 97

? 0011 1111 63 B 0110 0010 98

@ 0100 0000 64 C 0110 0011 99

Seluruh rangkaian karakter yang dikenali oleh sistem komputer dikenal sebagai kumpulan karakter komputer itu.
Semua tombol pada keyboard, yaitu huruf kapital (AZ), huruf kecil (az), angka (0-9).

Representasi grafis peta bit

Grafik pada layar terdiri dari titik-titik kecil yang disebut piksel. Semakin banyak piksel pada layar, semakin baik (jelas)
gambar atau resolusinya. Keadaan setiap piksel disimpan dalam memori. Warna setiap titik bisa hitam (1) atau putih
(0). Semakin tinggi resolusi gambar, semakin banyak memori yang dibutuhkan untuk menyimpan grafik.

Persyaratan penyimpanan
Anda mungkin perlu menghitung penyimpanan yang diperlukan untuk grafik hitam putih dalam ujian. Untuk melakukan
ini, Anda:

kalikan piksel dengan piksel ke bawah untuk mendapatkan jumlah total piksel (titik), ini sama dengan jumlah
bit
bagi dengan 8 untuk mendapatkan jumlah byte
bagi dengan 1024 untuk mendapatkan jumlah kilobyte
bagi dengan 1024 untuk mendapatkan jumlah megabyte
Machine Translated by Google

Menggunakan contoh di atas kita akan menghitung kebutuhan penyimpanan untuk gambar.

10 piksel x 11 piksel = 110 piksel (= 110 bit)

110 8 = 13,75 byte

Menggunakan contoh di atas kita akan menghitung kebutuhan penyimpanan untuk gambar.

500 piksel x 700 piksel = 350000 piksel (= 350000 bit)

350000 8 = 43750 byte

43750 1024 = 42,72 kilobyte

Contoh

Grafis 7 inci x 5 inci dengan 600dpi. Hitung jumlah memori yang diperlukan untuk menyimpan grafik.

(7 x 600) x (5 x 600) = 4200 x 3000 piksel


= 1260000 piksel (÷ 8)
= 1575.000 byte (÷ 1024)
= 1538,08 Kb (÷ 1024)
= 1,5 Mb

1.4 Sistem Angka

Ada beberapa sistem bilangan yang biasa kita gunakan, seperti desimal, biner, oktal,
heksadesimal, dll. Di antara mereka kita paling akrab dengan sistem bilangan desimal. Ini
sistem diklasifikasikan menurut nilai-nilai dasar sistem bilangan. Nomor
sistem yang memiliki nilai basis 10 disebut sistem bilangan desimal, sedangkan sistem dengan basis 2 disebut
sistem bilangan biner. Demikian juga, sistem bilangan yang memiliki basis 8 dan 16 masing-masing disebut
sistem bilangan oktal dan heksadesimal.
Dengan sistem desimal kita memiliki 10 digit yang berbeda, yaitu 0, 1, 2, 3, 4, 5, 6, 7, 8, dan 9. Tetapi
sistem biner hanya memiliki 2 digit yang berbeda—0 dan 1. Oleh karena itu, a bilangan biner tidak boleh memiliki
Machine Translated by Google

digit apa pun selain 0 atau 1. Jadi untuk menangani sistem bilangan biner lebih mudah daripada sistem
desimal. Sekarang, di dunia digital, kita bisa berpikir dalam sifat biner, misalnya, lampu bisa mati atau menyala.
Tidak ada status di antara keduanya. Jadi kita umumnya menggunakan sistem biner ketika kita berurusan
dengan dunia digital. Di sinilah utilitas dari sistem biner. Kita dapat menyatakan segala sesuatu di dunia hanya
dengan bantuan dua digit yaitu 0 dan 1. Misalnya, jika kita ingin menyatakan 2510 dalam biner, kita dapat
menulis 110012. Digit paling kanan dalam sistem bilangan disebut Terkecil Signifikan Bit' (LSB) atau 'Digit
Penting Terkecil' (LSD). Dan digit paling kiri dalam sistem bilangan disebut 'Most Significant Bit' (MSB) atau
'Most Significant Digit' (MSD). Sekarang biasanya ketika kita berurusan dengan sistem bilangan yang berbeda,
kita menentukan basis sebagai subskrip untuk memperjelas sistem bilangan mana yang digunakan.

Dalam sistem bilangan oktal ada 8 digit—0, 1, 2, 3, 4, 5, 6, dan 7. Oleh karena itu, bilangan oktal tidak
boleh memiliki digit yang lebih besar dari 7. Demikian pula, sistem bilangan heksadesimal memiliki 16 digit— 0
hingga 9— dan sisa enam digit ditentukan oleh simbol huruf sebagai A, B, C, D, E, dan F. Di sini A, B, C, D, E,
dan F mewakili desimal 10, 11, 12 , 13, 14, dan 15 berturut-turut. Kode oktal dan heksadesimal berguna untuk
menulis bahasa tingkat rakitan.
Secara umum, kita dapat menyatakan bilangan apa pun dalam basis atau radix apa pun X.ÿ Bilangan apa pun dengan basis

X, memiliki n digit di sebelah kiri dan m digit di sebelah kanan titik desimal dapat dinyatakan sebagai:

n-1 n-2 n-3 1 0 -1 -2 -m


anX + an-1X + an-2X + …. + a2X + a1X + b1X + b2X + …. + bmX

di mana an adalah digit di posisi ke-n. Koefisien an disebut sebagai MSD atau Most
Significant Digit dan bm disebut sebagai LSD atau Least Significant Digit.

1.4.1 Konversi antara Sistem Angka

Seringkali diperlukan untuk mengubah angka dalam sistem angka tertentu ke sistem angka lain, misalnya,
mungkin diperlukan untuk mengubah angka desimal ke biner atau oktal atau heksadesimal.
Kebalikannya juga benar, yaitu bilangan biner dapat diubah menjadi desimal dan seterusnya. Metode
interkonversi sekarang dibahas.

1.4.1.1 Konversi Desimal ke Biner

Sekarang untuk mengubah angka dalam desimal menjadi angka dalam biner kita harus membagi desimal
angka dengan 2 berulang kali, sampai hasil bagi nol diperoleh. Metode pembagian berulang ini
dengan 2 disebut metode 'coba-coba ganda'. Sisanya dicatat untuk masing-masing

dari langkah-langkah pembagian. Kemudian kolom sisanya dibaca dalam urutan terbalik yaitu dari bawah ke
atas. Kami mencoba menunjukkan metode dengan contoh yang ditunjukkan pada Contoh 1.1.
Machine Translated by Google

Contoh 1.1. Ubah 2610 menjadi bilangan biner.

Larutan. Divisi Hasil bagi Sisa yang dihasilkan


26/2 13 0
13/2 6 1
6/2 3 0
3/2 1
1/2 10 1

Oleh karena itu bilangan biner yang dikonversi adalah 110102.

1.4.1.2 Konversi Desimal ke Oktal

Demikian pula, untuk mengubah angka dalam desimal menjadi angka dalam oktal, kita harus membagi angka
desimal dengan 8 berulang kali, sampai hasil bagi nol diperoleh. Metode pembagian berulang dengan 8 ini disebut
'octal-dabble'. Sisanya dicatat untuk setiap langkah pembagian. Kemudian kolom sisanya dibaca dari urutan bawah
ke atas, seperti dalam kasus metode double dabble. Kami mencoba mengilustrasikan metode dengan contoh yang
ditunjukkan pada Contoh 1.2.

Contoh 1.2. Ubah 42610 menjadi bilangan oktal.

Larutan. Divisi Hasil bagi Sisa yang dihasilkan


426/8 53 6 0 2
53/8 6/8 5
6
Jadi bilangan oktal yang dikonversi adalah 6528.

1.4.1.3 Konversi Desimal-ke-Heksadesimal

Langkah yang sama diulangi untuk mengubah angka dalam desimal menjadi angka dalam heksadesimal. Hanya di
sini kita harus membagi angka desimal dengan 16 berulang kali, sampai diperoleh hasil bagi nol. Metode pembagian
berulang dengan 16 ini disebut 'hex-dabble.' Sisanya dicatat untuk setiap langkah pembagian. Kemudian kolom
sisanya dibaca dari urutan bawah ke atas seperti pada dua kasus sebelumnya. Kami mencoba untuk membahas
metode dengan contoh yang ditunjukkan pada Contoh 1.3.
Machine Translated by Google

Contoh 1.3. Ubah 34810 menjadi bilangan heksadesimal.

Larutan. Divisi Hasil bagi Sisa yang dihasilkan


348/16 21 12
21/16 1 5
1/16 0 1
Oleh karena itu bilangan heksadesimal yang dikonversi adalah 15C16.

1.2.1.4 Konversi Biner ke Desimal

Sekarang kita bahas metode kebalikannya, yaitu metode konversi biner, oktal, atau
bilangan heksadesimal ke bilangan desimal. Sekarang kita harus ingat bahwa setiap sistem bilangan biner,
oktal, atau heksadesimal adalah sistem bilangan posisional, yaitu, setiap digit dalam sistem bilangan yang
dibahas di atas memiliki bobot posisi seperti dalam kasus sistem desimal.
Kami mengilustrasikan proses dengan bantuan contoh.

Contoh 1.4. Ubah 101102 menjadi bilangan desimal.

Larutan. Bilangan biner yang diberikan 10110


adalah Bobot posisi 43210
Bobot posisi untuk setiap digit ditulis dengan huruf miring di bawah setiap digit. Karenanya
bilangan ekuivalen desimal diberikan sebagai:
1*24 + 0*23 + 1*22 + 1*21 + 0*20
= 16 + 0 + 4 + 2 + 0
= 2210
Oleh karena itu kami menemukan bahwa di sini, demi konversi, kami harus mengalikan setiap bit dengan bobot
posisinya tergantung pada basis sistem bilangan.

1.4.1.5 Konversi Oktal-ke-Desimal

Contoh 1.5. Ubah 34628 menjadi bilangan desimal.

Larutan. Bilangan oktal yang diberikan 3462


adalah Bobot posisi Bobot 3210
posisional untuk setiap digit ditulis dengan huruf miring di bawah setiap digit. Oleh karena itu, bilangan ekuivalen
desimal diberikan sebagai:
= 3*83 + 4*82 + 6*81 + 2*80
Machine Translated by Google

= 1536 + 256 + 48 + 2
= 184210

1.4.1.6 Konversi Heksadesimal ke Desimal

Contoh 1.6. Ubah 42AD16 menjadi angka desimal.

Larutan. Bilangan heksadesimal yang diberikan 42M


adalah Bobot posisi Bobot posisi 3210
untuk setiap digit ditulis dengan huruf miring di bawah setiap digit. Oleh karena itu angka ekuivalen
desimal diberikan sebagai: = 4*163 + 2*162 + 10*161 + 13*160

= 16384 + 512 + 160 + 13


= 1706910

1.4.1.7 Konversi Pecahan

Sejauh ini kita hanya berurusan dengan konversi bilangan bulat. Sekarang jika nomor berisi bagian
pecahan kita harus berurusan dengan cara yang berbeda ketika mengkonversi nomor dari sistem
bilangan yang berbeda (yaitu, biner, oktal, atau heksadesimal) ke sistem bilangan desimal atau
sebaliknya. Kami mengilustrasikan ini dengan contoh.

Contoh 1.7. Ubah 1010.0112 menjadi bilangan desimal.


Larutan. Bilangan biner yang diberikan adalah 1 0 1 0. 0 1
3 2 1 digit
1 Bobot posisi Bobot posisi untuk setiap 0 -1-2-3
ditulis dengan huruf miring di bawah setiap digit. Oleh karena itu angka ekuivalen desimal diberikan
sebagai: = 1*23 + 0*22 + 1*21 + 0*20 + 0*2-1 + 1*2-2 + 1*2-3 = 8 + 0 + 2 + 0 + 0 + .25 + .125 = 10.37510

Contoh 1.8. Ubah 362,358 menjadi bilangan desimal.

Larutan. Bilangan oktal yang diberikan 3 6 2. 3 5


adalah Bobot posisi Bobot 2 1 0 -1-2
posisional untuk setiap digit ditulis dengan huruf miring di bawah setiap digit. Oleh karena itu angka
ekuivalen desimal diberikan sebagai: = 3*82 + 6*81 + 2*80 + 3*8-1 + 5*8-2

= 192 + 48 + 2 + .37 + .078125


Machine Translated by Google

= 242.45212510

Contoh 1.9. Ubah 42A.1216 menjadi bilangan desimal.


Larutan. Bilangan heksadesimal yang diberikan adalah 4 2 A. 1 2
Bobot posisi Bobot 2 1 0 -1-2

posisi untuk setiap digit ditulis dengan huruf miring di bawah setiap digit. Oleh karena itu, bilangan ekuivalen desimal
diberikan sebagai:
= 4*162 + 2*161 + 10*160 + 1*16-1 + 2*16-2
= 1024 + 32 + 10 + .0625 + .00393625
= 1066.06640621510

Contoh 1.10. Ubah 25.62510 menjadi bilangan biner.

Larutan. Divisi 25/2 Hasil bagi Sisa yang dihasilkan


12/2 6/2 12 6 3 1
0
0
3/2 1 1
1/2 0 1

Karena itu, (25)10 = (11001)2

Bagian pecahan
.625 * 2 = 1.250 1
.250 * 2 = .500 0
.500 * 2 = 1.000 1

yaitu, (0.625)10 = (0.101)2

Oleh karena itu, (25.625)10 = (11001.101)2

Contoh 1.11. Ubah 34.52510 menjadi bilangan oktal.

Larutan. Divisi 34/8 Hasil bagi Sisa yang dihasilkan


4 2
4/8 0 4

Oleh karena itu, (34)10 = (42)8

Bagian pecahan
.525 * 8 = 4.200 4
.200 * 8 = 1.600 1
Machine Translated by Google

.600 * 8 = 4.800 4

yaitu, (0,525)10 = (0,414)8

Oleh karena itu, (34.525)10 = (42.411)8

Contoh 1.12. Ubah 92.8510 menjadi bilangan heksadesimal.

Larutan. Divisi Hasil bagi Sisa yang dihasilkan


92/16 5 12
16/5 0 5

Oleh karena itu, (92)10 = (5C)16

Bagian pecahan
.85 * 16 = 13.60 13
.60 * 16 = 9.60 9

yaitu, (0.85)10 = (0.D9)16


Oleh karena itu, (92.85)10 = (5C.D9)16

1.4.1.8 Konversi dari Bilangan Biner ke Oktal dan Sebaliknya

Kita tahu bahwa digit maksimum dalam sistem bilangan oktal adalah 7, yang dapat direpresentasikan sebagai 1112
dalam sistem biner. Oleh karena itu, mulai dari LSB, kami mengelompokkan tiga digit sekaligus dan menggantinya
dengan ekuivalen desimal dari grup tersebut dan kami mendapatkan angka oktal terakhir.

Contoh 1.13. Ubah 1011010102 menjadi bilangan oktal yang setara.

Larutan. Bilangan biner yang diberikan 101101010


adalah Dimulai dengan LSB dan 101 101 010
mengelompokkan 3 bit Setara oktal 552

Jadi bilangan ekuivalen oktalnya adalah (552)8.

Contoh 1.14. Ubah 10111102 menjadi bilangan oktal yang setara.

Larutan. Bilangan biner yang diberikan 1011110


adalah Dimulai dengan LSB dan 001 011 110
mengelompokkan 3 bit Setara oktal 136

Jadi bilangan ekuivalen oktalnya adalah (176)8.

Karena pada saat mengelompokkan tiga digit pada Contoh 1.14 mulai dari LSB, kita menemukan bahwa kelompok
ketiga tidak dapat diselesaikan, karena hanya satu 1 yang tertinggal di kelompok ketiga, jadi kita
Machine Translated by Google

lengkapi grup dengan menambahkan dua 0 di sisi MSB. Ini disebut padding kiri dari angka dengan 0. Sekarang
jika angka tersebut memiliki bagian pecahan maka akan ada dua kelas grup yang berbeda — satu untuk bagian
bilangan bulat mulai dari kiri titik desimal dan berlanjut ke kiri dan yang kedua satu mulai dari kanan titik desimal
dan terus ke kanan. Jika, untuk kelas kedua, ada 1 yang tertinggal, kami melengkapi grup dengan menambahkan
dua 0 di sisi kanan. Ini disebut bantalan kanan.

Contoh 1.15. Ubah 1101.01112 menjadi bilangan oktal yang setara.

Larutan. Bilangan biner yang diberikan 1101.0111


adalah Pengelompokan 3 bit 001 101, 011 100
Setara Oktal: 1534

Jadi bilangan oktalnya adalah (15.34)8.

Sekarang jika bilangan oktal diberikan dan Anda diminta untuk mengubahnya menjadi ekuivalen binernya,
kemudian setiap digit oktal diubah menjadi bilangan biner ekuivalen 3-bit dan—menggabungkan semua
digit-digit itu kita mendapatkan ekuivalen biner akhir.

Contoh 1.16. Ubah 2358 menjadi bilangan biner yang setara.

Larutan. Bilangan oktal yang diberikan 235


adalah ekuivalen biner 3-bit 010 011 101

Jadi bilangan binernya adalah (010011101)2.

Contoh 1.17. Ubah 47,3218 menjadi bilangan biner yang setara.


Larutan. Bilangan oktal yang diberikan 47321
adalah ekuivalen biner 3-bit 100 111 011 010 001

Oleh karena itu bilangan binernya adalah (100111.011010001)2.

1.4.1.9 Konversi dari Bilangan Biner ke Heksadesimal dan Sebaliknya

Kita tahu bahwa digit maksimum dalam sistem heksadesimal adalah 15, yang dapat diwakili oleh 11112 dalam
sistem biner. Oleh karena itu, mulai dari LSB, kami mengelompokkan empat digit sekaligus dan menggantinya
dengan ekuivalen heksadesimal dari grup tersebut dan kami mendapatkan angka heksadesimal akhir.
Machine Translated by Google

Contoh 1.18. Ubah 110101102 menjadi bilangan heksadesimal yang setara.

Larutan. Bilangan biner yang diberikan 11010110


adalah Dimulai dengan LSB dan 1101 0110
mengelompokkan 4 bit setara Heksadesimal H6
Oleh karena itu, bilangan ekivalen heksadesimal adalah (D6)16.

Contoh 1.19. Ubah 1100111102 menjadi bilangan heksadesimal yang setara.

Larutan. Bilangan biner yang diberikan 110011110


adalah Dimulai dengan LSB dan mengelompokkan 4 bit 0001 1001 1110
Setara heksadesimal 1 9E
Oleh karena itu bilangan ekivalen heksadesimal adalah (19E)16.

Karena pada saat pengelompokan empat digit dimulai dari LSB, pada Contoh 1.19 kita
temukan bahwa grup ketiga tidak dapat diselesaikan, karena hanya satu 1 yang tersisa, jadi kami
menyelesaikan grup dengan menambahkan tiga 0 ke sisi MSB. Sekarang jika bilangan tersebut memiliki
bagian pecahan, seperti dalam kasus bilangan oktal, maka akan ada dua kelas kelompok yang berbeda —
satu untuk bagian bilangan bulat mulai dari kiri titik desimal dan berlanjut ke kiri dan yang kedua mulai dari
kanan titik desimal dan terus ke kanan. Jika, untuk kelas kedua, ada grup yang belum selesai yang
ditinggalkan, kami melengkapi grup dengan menambahkan 0 di sisi kanan.

Contoh 1.20. Ubah 111011.0112 menjadi bilangan heksadesimal yang setara.

Larutan. Bilangan biner yang diberikan 111011.011


adalah Pengelompokan 4 bit 0011 1011. 0110
Setara heksadesimal Jadi 3B6
bilangan ekivalen heksadesimal adalah (3B.6)16.

Sekarang jika angka heksadesimal diberikan dan Anda diminta untuk mengubahnya menjadi binernya
ekuivalen, maka setiap digit heksadesimal diubah menjadi bilangan biner ekuivalen 4-bit dan dengan
menggabungkan semua digit tersebut kita mendapatkan ekuivalen biner akhir.

Contoh 1.21. Ubah 29C16 menjadi bilangan biner yang setara.

Larutan. Angka heksadesimal yang diberikan 29C


adalah setara biner 4-bit 0010 1001 1100
Oleh karena itu bilangan biner yang setara adalah (001010011100)2.
Machine Translated by Google

Contoh 1.22. Ubah 9E.AF216 menjadi bilangan biner yang setara.

Larutan. Bilangan heksadesimal yang diberikan 9 EA F 2

adalah ekuivalen biner 4-bit Oleh karena 1001 1110 1010 1111 0010

itu, bilangan biner ekuivalennya adalah (10011110.101011110010)2.

1.4.1.10 Konversi dari Bilangan Oktal ke Heksadesimal dan Sebaliknya

Konversi dari oktal ke heksadesimal dan sebaliknya terkadang diperlukan. Untuk mengubah bilangan oktal menjadi
bilangan heksadesimal, ikuti langkah-langkah berikut:
saya.
Pertama-tama konversikan bilangan oktal ke ekuivalen binernya (seperti yang sudah dibahas di atas).
ii. Kemudian bentuk kelompok 4 bit, dimulai dari LSB.
aku aku aku. Kemudian tuliskan bilangan heksadesimal ekuivalen untuk setiap kelompok 4 bit.

Demikian pula, untuk mengubah bilangan heksadesimal menjadi bilangan oktal, langkah-langkah berikut harus diikuti:

saya.
Pertama-tama konversikan bilangan heksadesimal ke ekuivalen binernya.
ii. Kemudian bentuk kelompok 3 bit, dimulai dari LSB.
aku aku aku. Kemudian tuliskan bilangan oktal ekuivalen untuk setiap kelompok 3 bit.

Contoh 1.23. Ubahlah bilangan heksadesimal berikut menjadi bilangan oktal ekuivalen.
(a) A72E (b) 4.BF85

Larutan.

(a) Bilangan heksadesimal yang diberikan adalah A 7 2 E


Setara biner adalah 1010 0111 0010 1110
= 1010011100101110

Membentuk kelompok 3 bit dari LSB 001 010 011 100 101 110
Setara oktal 1 2 3 4 5 6
Oleh karena itu ekuivalen oktal dari (A72E)16 adalah (123456)8.

(b) Bilangan heksadesimal yang diberikan adalah 4 BF 8 5

Setara biner adalah 0100 1011 1111 1000 0101


= 0100.1011111110000101

Membentuk kelompok 3 bit 100. 101 111 111 000 010 100
Setara oktal 4 5 7 7 0 2 4
Oleh karena itu ekuivalen oktal dari (4.BF85)16 adalah (4.5770244)8.
Machine Translated by Google

Contoh 1.24. Ubah (247)8 menjadi bilangan heksadesimal yang setara.

Larutan. Diketahui bilangan oktal adalah 247

Setara biner adalah 010 100 111


= 010100111

Membentuk kelompok 4 bit dari LSB 1010 0111


Setara heksadesimal A 7
Oleh karena itu ekuivalen heksadesimal dari (247)8 adalah (A7)16.

Contoh 1.25. Ubah (36,532)8 menjadi bilangan heksadesimal yang setara.

Larutan. Diketahui bilangan oktal adalah 36532

Setara biner adalah 011 110 101 011 010


= 011110.101011010

Membentuk kelompok 4 bit 0001 1110. 1010 1101


Setara heksadesimal 1 E. AD
Oleh karena itu ekuivalen heksadesimal dari (36.532)8 adalah (1E.AD)16.

1.5 Representasi Nomor Titik Tetap

Angka titik tetap adalah cara sederhana dan mudah untuk mengekspresikan angka pecahan, menggunakan jumlah bit
yang tetap. Sistem tanpa dukungan perangkat keras floating-point sering menggunakan nomor fixed-point untuk
mewakili bilangan pecahan.

Titik Biner

Istilah "Titik Tetap" mengacu pada posisi titik biner. Titik biner analog dengan titik desimal dari bilangan basis sepuluh,
tetapi karena ini adalah biner daripada desimal, istilah yang berbeda digunakan. Dalam biner, bit dapat berupa 0 atau
1 dan tidak ada simbol terpisah untuk menunjukkan di mana letak titik biner. Namun, kami membayangkan, atau
berasumsi, bahwa titik biner berada di lokasi tetap antara bit yang ditunjuk dalam nomor tersebut. Misalnya, dalam
bilangan 32-bit, kita dapat mengasumsikan bahwa titik biner ada langsung di antara bit 15 (15 karena bit pertama
diberi nomor 0, bukan 1) dan 16, memberikan 16 bit untuk bagian bilangan bulat dan 16 bit untuk bagian pecahan.
Perhatikan bahwa bit paling signifikan dalam bidang bilangan bulat umumnya ditetapkan sebagai bit tanda yang
menyisakan 15 bit untuk besaran bilangan bulat.

Lebar dan Presisi

Lebar nomor titik tetap adalah jumlah total bit yang ditetapkan untuk penyimpanan untuk nomor titik tetap. Jika kita
menyimpan seluruh bagian dan bagian pecahan di lokasi penyimpanan yang berbeda, lebarnya akan menjadi jumlah
total penyimpanan untuk nomor tersebut. Kisaran angka titik tetap adalah perbedaan antara jumlah minimum yang
mungkin, dan jumlah maksimum yang mungkin . Ketepatan angka titik tetap adalah jumlah total bit untuk bagian
pecahan dari angka tersebut. Karena kita dapat menentukan di mana kita menginginkan titik biner tetap
Machine Translated by Google

terletak, presisi dapat berupa angka apa pun hingga dan termasuk lebar angka tersebut. Namun perhatikan, bahwa
semakin presisi yang kita miliki, semakin sedikit rentang total yang kita miliki.

Ada sejumlah standar, tetapi dalam buku ini kita akan menggunakan n untuk lebar bilangan titik tetap, p untuk presisi,
dan R untuk rentang total.

Contoh

Tidak semua bilangan dapat direpresentasikan secara tepat oleh bilangan titik tetap, sehingga digunakan pendekatan
terdekat.

Rumus untuk menghitung representasi bilangan bulat (X) dalam format Qm.n dari bilangan float (x) adalah:

X = bulat( x*2n )

Untuk mengubahnya kembali, rumus berikut digunakan:


x = X * 2-n

Beberapa contoh dalam format Q3.4:

Setelah konversi: Setelah mengonversinya kembali:


010.0110 = 4 + 3/8 4 + 3/8
0001.0000 = 1 1
0000.1000 = 1/2 1/2
0000.0101 = 5/16 0,3125
0000.0100 = 1/4 1/4
0000.0010 = 1/8 1/8
0000.0001 = 1/16 1/16
0000.0000 = 0 0
1111.1111 = -1/16 -1/16
1111.0000 = -1 -1

1100.0110 = -4 + 3/8 = -( 3 + 5/8 ) -4 + 3/8

Pelampung yang dipilih secara acak:

0000.1011 = 0,673 0,6875


0110.0100 = 6.234 6.25

Beberapa contoh dalam format Q7.8 (sangat umum):

0000_0001.0000_0000 = +1
1000_0001.0000_0000 = -127
Machine Translated by Google

0000_0000.0100_0000 = 1/4

Hitung

Karena posisi titik biner sepenuhnya konseptual, logika penambahan dan pengurangan bilangan titik tetap identik
dengan logika yang diperlukan untuk penjumlahan dan pengurangan bilangan bulat. Jadi, saat menambahkan satu
setengah ditambah satu setengah dalam format Q3.4, kita akan melihat:

0000.1000
+0000.1000
__________
=00010000

Yang sama dengan satu seperti yang kita harapkan. Ini berlaku sama untuk pengurangan. Dengan kata lain,
ketika kita menambah atau mengurangi angka titik tetap, titik biner dalam jumlah (atau perbedaan) akan ditempatkan
di tempat yang sama persis seperti di dua angka yang kita operasikan.

Saat mengalikan dua angka titik tetap 8-bit, kita akan membutuhkan 16 bit untuk menampung produk.
Jelas, karena ada jumlah bit yang berbeda dalam hasil dibandingkan dengan input, titik biner harus diharapkan untuk
bergerak. Namun, ia bekerja dengan cara yang persis sama dalam biner seperti halnya dalam desimal.

Ketika kita mengalikan dua angka dalam desimal, lokasi titik desimal adalah N digit di sebelah kiri digit paling kanan
produk, di mana N adalah jumlah dari jumlah digit yang terletak di sisi kanan titik desimal dalam pengali dan
perkalian . Jadi, dalam desimal ketika kita mengalikan 0,2 kali 0,02, kita mendapatkan:

0.2
x0.02
_____
0,004

Pengganda memiliki satu digit di sebelah kanan titik desimal, dan perkalian memiliki dua digit di sebelah kanan titik
desimal. Jadi, hasil kali memiliki tiga digit di sebelah kanan titik desimal (artinya, titik desimal terletak tiga digit di
sebelah kiri).

Ia bekerja sama dalam biner.

Dari contoh penjumlahan di atas, kita tahu bahwa angka satu setengah dalam format Q3.4 sama dengan 0x8 dalam
heksadesimal. Karena 0x8 kali 0x8 dalam hex adalah 0x0040 (juga dalam hex), hasil titik tetap juga dapat diharapkan
menjadi 0x0040 - selama kita tahu di mana titik biner berada. Mari kita tulis produk dalam biner:
Machine Translated by Google

0000000001000000

Karena pengali dan pengali memiliki empat bit di sebelah kanan titik biner, lokasi titik biner dalam hasil kali adalah delapan bit di
sebelah kiri. Jadi, jawaban kita adalah 00000000.01000000, yang seperti yang kita harapkan, sama dengan seperempat.

Jika kita ingin format output sama dengan format input, kita harus membatasi rentang input untuk mencegah overflow. Untuk
mengonversi dari Q7.8 kembali ke Q3.4 adalah masalah sederhana dengan menggeser produk ke kanan sebanyak 4 bit.

tabel sinus

Banyak sistem tertanam yang menghasilkan gelombang sinus, seperti generator DTMF, menyimpan "tabel sinus" dalam memori
program. (Ini digunakan untuk mendekati fungsi matematika sinus() dan kosinus()).
Karena sistem seperti itu sering kali memiliki jumlah memori program yang sangat terbatas, seringkali nomor titik tetap digunakan
dengan dua cara berbeda ketika tabel tersebut digunakan: nilai yang disimpan dalam tabel, dan "brads" yang digunakan untuk
mengindeks ke dalam tabel ini.

nilai yang disimpan dalam tabel sinus

Biasanya satu kuadran fungsi sinus dan kosinus disimpan dalam tabel itu. Biasanya itu adalah kuadran di mana fungsi-fungsi tersebut
menghasilkan nilai output dalam kisaran 0 hingga +1. Nilai dalam tabel tersebut biasanya disimpan sebagai angka titik tetap --
seringkali angka 16-bit dalam format Q0.16 yang tidak ditandatangani atau angka 8-bit dalam nilai Q0.8 yang tidak ditandatangani.
Tampaknya ada dua cara populer untuk menangani fakta bahwa Q0.16 tidak dapat menangani 1.0 dengan tepat, ia hanya menangani
angka dari 0 hingga (1.0-2^-16): (a)
Skala dengan tepat pangkat dua (dalam hal ini 2^16), seperti kebanyakan sistem titik tetap lainnya, dan ganti (klip) nilai yang terlalu
besar untuk disimpan sebagai nilai terbesar yang dapat disimpan: jadi 0 direpresentasikan sebagai 0, 0,5 direpresentasikan sebagai
0x8000, (1,0-2^-16) direpresentasikan sebagai 0xFFFF, dan 1,0 terpotong dan juga direpresentasikan sebagai 0xFFFF. (b) Skala
dengan nilai terbesar yang mungkin (dalam hal ini 0xFFFF), sehingga nilai maksimum dan minimum dapat direpresentasikan dengan
tepat: jadi 0 direpresentasikan sebagai 0, (1,0-2^-16) direpresentasikan sebagai 0xFFFE, dan 1,0 adalah direpresentasikan sebagai
persis 0xFFFF

Beberapa orang menggambar lingkaran yang cukup akurat dan menghitung sinus dan kosinus yang cukup akurat dengan spline
Bezier. "Tabel" menjadi 8 nilai yang mewakili satu kurva Bezier yang mendekati 1/8 lingkaran hingga akurasi sekitar 4 bagian per
juta, atau 1/4 lingkaran hingga akurasi sekitar 1 bagian dalam seribu.

ternyata

Banyak orang lebih suka merepresentasikan rotasi (seperti sudut) dalam istilah "belokan". Bagian bilangan bulat dari "belokan"
menunjukkan berapa banyak putaran yang telah terjadi. Bagian pecahan dari "belokan", ketika dikalikan dengan 360 (atau 1ÿ = 2ÿ)
menggunakan aritmatika titik tetap bertanda standar, memberikan sudut yang valid dalam kisaran -180 derajat (-ÿ radian) hingga
+180 derajat (+ÿ radian). Dalam beberapa kasus, akan lebih mudah untuk menggunakan perkalian tidak bertanda (daripada perkalian
bertanda) pada sudut biner, yang memberikan sudut yang benar dalam kisaran 0 hingga +360 derajat (+2ÿ radian).
Machine Translated by Google

Keuntungan utama untuk menyimpan sudut sebagai fraksi titik tetap dari belokan adalah kecepatan. Menggabungkan beberapa sudut
"posisi saat ini" dengan beberapa "sudut tambahan" positif atau negatif untuk mendapatkan "posisi baru" sangat cepat, bahkan pada
mikrokontroler 8-bit yang lambat: dibutuhkan satu "penambahan bilangan bulat", mengabaikan overflow. Format lain untuk menyimpan
sudut memerlukan penambahan yang sama, ditambah kasing khusus untuk menangani kasing tepi yang meluap 360 derajat atau
kurang mengalir 0 derajat.

Dibandingkan dengan menyimpan sudut dalam format sudut biner, menyimpan sudut dalam format lain -- seperti 360 derajat untuk
menghasilkan satu putaran penuh, atau 2ÿ radian untuk menghasilkan satu putaran penuh --
pasti menghasilkan beberapa pola bit yang memberikan "sudut" di luar rentang itu, memerlukan langkah ekstra untuk rentang-
mengurangi nilai ke rentang yang diinginkan, atau menghasilkan beberapa pola bit yang bukan sudut valid sama sekali (NaN), atau
keduanya.

Menggunakan format sudut biner dalam satuan "belokan" memungkinkan kita dengan cepat (menggunakan shift-and-mask,
menghindari perkalian) memisahkan bit menjadi:

bit yang mewakili putaran bilangan bulat (diabaikan saat mencari sinus sudut; beberapa
sistem tidak pernah repot-repot menyimpan bit ini di tempat pertama)
2 bit yang mewakili kuadran
bit yang langsung digunakan untuk mengindeks ke dalam tabel pencarian
bit orde rendah kurang dari satu "langkah" ke dalam tabel indeks (bit akumulator fase, diabaikan
ketika mencari sinus sudut tanpa interpolasi)

Bit fase orde rendah memberikan resolusi frekuensi yang ditingkatkan, bahkan tanpa interpolasi.

Beberapa sistem menggunakan bit orde rendah untuk menginterpolasi secara linier antara nilai-nilai dalam tabel. Ini memungkinkan
Anda untuk mendapatkan lebih banyak akurasi menggunakan tabel yang lebih kecil (menghemat ruang program), dengan
mengorbankan beberapa siklus pada perhitungan interpolasi "ekstra" ini. Beberapa sistem mendapatkan akurasi yang lebih tinggi lagi
dengan menggunakan tabel yang lebih kecil dengan mengorbankan beberapa siklus lagi untuk menggunakan bit orde rendah tersebut
untuk menghitung interpolasi kubik.

Mungkin format sudut biner yang paling umum adalah "brads".

brads

Banyak sistem tertanam menyimpan sudut, bagian pecahan dari "belokan", dalam format sudut biner byte tunggal. Ada beberapa
cara untuk menafsirkan nilai dalam byte itu, yang semuanya berarti (kurang lebih) sudut yang sama:

sudut dalam satuan brads (radian biner) yang disimpan sebagai bilangan bulat tidak bertanda 8 bit, dari 0 hingga
255 brad

sudut dalam satuan brad yang disimpan sebagai bilangan bulat bertanda 8 bit, dari -128 hingga +127 brad
sudut dalam satuan "belokan", disimpan sebagai belokan fraksional dalam format Q0.8 tanpa tanda, dari 0 hingga tepat di
bawah 1 putaran penuh
sudut dalam satuan "belokan", disimpan sebagai belokan pecahan dalam format Q0.7 (?) bertanda, dari -
1/2 hingga di bawah +1/2 putaran penuh

Satu putaran penuh adalah 256 bradsis 360 derajat.


Machine Translated by Google

1.6 Representasi Angka Floating Point


Bilangan floating-point (atau bilangan real) dapat mewakili nilai yang sangat besar (1,23×10^88) atau sangat kecil
(1,23×10^-88). Itu juga bisa mewakili angka negatif yang sangat besar (-1.23×10^88) dan angka negatif yang sangat
kecil (-1.23×10^88), serta nol, seperti yang diilustrasikan:

Sebuah bilangan floating-point biasanya dinyatakan dalam notasi ilmiah, dengan pecahan (F), dan eksponen (E) dari
radix tertentu (r), dalam bentuk F×r^E. Bilangan desimal menggunakan radix 10 (F×10^E); sedangkan bilangan biner
menggunakan radix 2 (F×2^E).
Representasi angka floating point tidak unik. Misalnya, angka 55,66 dapat direpresentasikan sebagai 5,566×10^1,
0,5566×10^2, 0,05566×10^3, dan seterusnya. Bagian pecahan dapat dinormalisasi. Dalam bentuk normal, hanya
ada satu digit bukan nol sebelum titik radix. Misalnya, bilangan desimal 123,4567 dapat dinormalisasi menjadi
1,234567×10^2; bilangan biner 1010.1011B dapat dinormalisasi menjadi 1.011011B×2^3.

Penting untuk dicatat bahwa bilangan floating-point mengalami kehilangan presisi ketika direpresentasikan dengan
jumlah bit yang tetap (misalnya, 32-bit atau 64-bit). Ini karena ada bilangan real yang tak terbatas (bahkan dalam
kisaran kecil katakanlah 0,0 hingga 0,1). Di sisi lain, pola biner n-bit dapat mewakili bilangan berhingga 2^n yang
berbeda. Oleh karena itu, tidak semua bilangan real dapat direpresentasikan. Pendekatan terdekat akan digunakan
sebagai gantinya, mengakibatkan hilangnya akurasi.
Penting juga untuk dicatat bahwa aritmatika bilangan mengambang sangat kurang efisien daripada aritmatika
bilangan bulat. Ini bisa dipercepat dengan apa yang disebut co-prosesor floating-point khusus. Oleh karena itu,
gunakan bilangan bulat jika aplikasi Anda tidak memerlukan angka titik-mengambang.
Di komputer, bilangan titik-mengambang direpresentasikan dalam notasi ilmiah pecahan (F) dan eksponen (E)
dengan radix 2, dalam bentuk F×2^E. Baik E dan F bisa positif dan juga negatif. Komputer modern mengadopsi
standar IEEE 754 untuk mewakili angka floating-point.
Ada dua skema representasi: presisi tunggal 32-bit dan presisi ganda 64-bit.
4.1 IEEE-754 32-bit Single-Precision Floating-Point Numbers

Dalam representasi floating-point presisi tunggal 32-bit:

Bit yang paling signifikan adalah bit tanda (S), dengan 0 untuk bilangan negatif dan 1 untuk bilangan positif
angka.

8 bit berikut mewakili eksponen (E).


Sisanya 23 bit mewakili fraksi (F).
Machine Translated by Google

Bentuk Normalisasi

Mari kita ilustrasikan dengan sebuah contoh, misalkan pola 32-bit adalah 1 1000 0001 011 0000 0000 0000 0000
0000, dengan:
S=1
E = 100000001
F = 011 0000 0000 0000 0000 0000

Dalam bentuk ternormalisasi, pecahan sebenarnya dinormalisasi dengan 1 awalan implisit dalam bentuk 1.F. Dalam
contoh ini, pecahan sebenarnya adalah 1,011 0000 0000 0000 0000 0000 = 1 + 1×2^-2 + 1×2^-3 = 1,375D.

Bit tanda mewakili tanda bilangan, dengan S=0 untuk bilangan positif dan S=1 untuk bilangan negatif. Dalam contoh
ini dengan S=1, ini adalah bilangan negatif, yaitu -1.375D.
Dalam bentuk normal, eksponen sebenarnya adalah E-127 (disebut excess-127 atau bias-127). Ini karena kita perlu
merepresentasikan eksponen positif dan negatif. Dengan E 8-bit, mulai dari 0 hingga 255, skema excess-127 dapat
memberikan eksponen aktual dari -127 hingga 128. Dalam contoh ini, E-127=129-127=2D.

Jadi, bilangan yang direpresentasikan adalah -1.375×2^2=-5.5D.


Formulir De-Normalisasi

Bentuk yang dinormalisasi memiliki masalah serius, dengan implisit memimpin 1 untuk pecahan, tidak dapat mewakili
angka nol! Yakinkan diri Anda tentang ini!

Bentuk de-normalisasi dirancang untuk mewakili angka nol dan lainnya.

Untuk E=0, bilangan-bilangan tersebut dalam bentuk denormalisasi. Awalan implisit 0 (bukan 1) digunakan untuk
pecahan; dan eksponen sebenarnya selalu -126. Oleh karena itu, angka nol dapat direpresentasikan dengan E=0dan
F=0 (karena 0,0×2^-126=0).
Kita juga dapat merepresentasikan bilangan positif dan negatif yang sangat kecil dalam bentuk denormalisasi dengan
E=0. Misalnya, jika S=1, E=0, dan F=011 0000 0000 0000 0000 0000. Pecahan sebenarnya adalah
0,011=1×2^-2+1×2^-3=0,375D. Karena S = 1, itu adalah bilangan negatif. Dengan E=0, eksponen sebenarnya adalah
-126. Oleh karena itu jumlahnya adalah -0,375×2^-126 = -4.4×10^-39, yang merupakan bilangan negatif yang sangat
kecil (mendekati nol).
Ringkasan
Secara ringkas, nilai (N) dihitung sebagai berikut:
Untuk 1 E 254, N = (-1)^S × 1.F × 2^(E-127). Angka-angka ini disebut dalam bentuk yang dinormalisasi.
Tanda-bit mewakili tanda nomor. Bagian pecahan (1.F)
Machine Translated by Google

dinormalisasi dengan implisit terkemuka 1. Eksponen adalah bias (atau lebih) dari 127, sehingga mewakili
eksponen positif dan negatif. Rentang eksponen adalah -126 hingga +127.
Untuk E = 0, N = (-1)^S × 0.F × 2^(-126). Angka-angka ini disebut dalam bentuk denormalisasi. Eksponen
2^-126 bernilai sangat kecil.
Bentuk denormalisasi diperlukan untuk mewakili nol (dengan F=0 dan E=0). Itu juga dapat mewakili angka
positif dan negatif yang sangat kecil mendekati nol.
Untuk E = 255, itu mewakili nilai khusus, seperti ±INF (positif dan negatif tak terhingga) dan NaN (bukan
angka). Ini di luar cakupan artikel ini.
Contoh 1: Misalkan pola representasi floating-point IEEE-754 32-bit adalah 0 10000000 110 0000 0000 0000 0000
0000.

Tanda bit S = 0 bilangan positif

E = 1000 0000B = 128D (dalam bentuk normal)

Pecahan adalah 1,11B (dengan awalan implisit 1) = 1 + 1×2^-1 + 1×2^-2 = 1,75D

Bilangannya adalah +1,75 × 2^(128-127) = +3,5D

Contoh 2: Misalkan pola representasi floating-point IEEE-754 32-bit adalah 1 01111110 100 0000 0000 0000 0000
0000.

Tanda bit S = 1 bilangan negatif

E = 0111 1110B = 126D (dalam bentuk normal)

Pecahan adalah 1,1B (dengan awalan implisit 1) = 1 + 2^-1 = 1,5D

Bilangannya adalah -1,5 × 2^(126-127) = -0,75D

Contoh 3: Misalkan pola representasi floating-point IEEE-754 32-bit adalah 1 01111110 000 0000 0000 0000 0000
0001.

Tanda bit S = 1 bilangan negatif

E = 0111 1110B = 126D (dalam bentuk normal)

Pecahan adalah 1.000 0000 0000 0000 0000 0001B (dengan awalan implisit 1) = 1 + 2^-23

Angkanya adalah -(1 + 2^-23) × 2^(126-127) = -0,500000059604644775390625 (mungkin tidak tepat dalam desimal!)

Contoh 4 (De-Normalized Form): Misalkan pola representasi floating-point IEEE-754 32-bit adalah 1 00000000 000
0000 0000 0000 0000 0001.

Tanda bit S = 1 bilangan negatif

E = 0 (dalam bentuk de-normalisasi)

Pecahan adalah 0,000 0000 0000 0000 0000 0001B (dengan awalan implisit 0) = 1×2^-23

Bilangannya adalah -2^-23 × 2^(-126) = -2×(-149) -1,4×10^-45


Machine Translated by Google

4.2 Latihan (Angka Titik Mengambang)

1. Hitung bilangan positif terbesar dan terkecil yang dapat direpresentasikan dalam 32-bit
bentuk yang dinormalisasi.

2. Hitung bilangan negatif terbesar dan terkecil yang dapat direpresentasikan dalam 32-bit
bentuk yang dinormalisasi.

3. Ulangi (1) untuk bentuk de-normalisasi 32-bit.

4. Ulangi (2) untuk bentuk de-normalisasi 32-bit.


Petunjuk:

1. Bilangan positif terbesar: S=0, E=1111 1110 (254), F=111 1111 1111 1111 1111 1111.
Bilangan positif terkecil: S=0, E=0000 00001 (1), F=000 0000 0000 0000 0000 0000.
2. Sama seperti di atas, tapi S=1.
3. Bilangan positif terbesar: S=0, E=0, F=111 1111 1111 1111 1111 1111.
Bilangan positif terkecil: S=0, E=0, F=000 0000 0000 0000 0000 0001.
4. Sama seperti di atas, tapi S=1.
Catatan Untuk Pengguna Java

Anda dapat menggunakan metode JDK Float.intBitsToFloat(int bits) atau Double.longBitsToDouble(long bits) untuk
membuat float 32-bit presisi tunggal atau double-precision 64-bit double dengan pola bit tertentu, dan mencetak
nilainya. Sebagai contoh,

System.out.println(Float.intBitsToFloat(0x7fffff));

System.out.println(Double.longBitsToDouble(0x1fffffffffffffL));

4.3 IEEE-754 64-bit Double-Precision Floating-Point Numbers

Skema representasi untuk presisi ganda 64-bit mirip dengan presisi tunggal 32-bit:

Bit yang paling signifikan adalah bit tanda (S), dengan 0 untuk bilangan negatif dan 1 untuk bilangan positif
angka.

11 bit berikut mewakili eksponen (E).


Sisanya 52 bit mewakili fraksi (F).

Nilai (N) dihitung sebagai berikut:


Bentuk normalisasi: Untuk 1 E 2046, N = (-1)^S × 1.F × 2^(E-1023).
Bentuk denormalisasi: Untuk E = 0, N = (-1)^S × 0.F × 2^(-1022). Ini ada di
bentuk denormalisasi.

Untuk E = 2047, N mewakili nilai khusus, seperti ±INF (tak terhingga), NaN (bukan angka).
Machine Translated by Google

4.4 Lebih Lanjut tentang Representasi Floating-Point

Ada tiga bagian dalam representasi floating-point:

Bit tanda (S) cukup jelas (0 untuk bilangan positif dan 1 untuk bilangan negatif).
Untuk eksponen (E), yang disebut bias (atau kelebihan) diterapkan untuk mewakili eksponen positif dan
negatif. Bias diatur pada setengah rentang. Untuk presisi tunggal dengan eksponen 8-bit, biasnya adalah 127
(atau kelebihan-127). Untuk presisi ganda dengan eksponen 11-bit, biasnya adalah 1023 (atau kelebihan-1023).

Pecahan (F) (juga disebut mantissa atau significand) terdiri dari bit utama implisit (sebelum titik radix) dan bit
fraksional (setelah titik radix). Bit terdepan untuk angka yang dinormalisasi adalah 1; sedangkan bit terdepan
untuk angka yang didenormalisasi adalah 0.
Angka Titik Mengambang yang Dinormalisasi
Dalam bentuk normal, titik radix ditempatkan setelah digit bukan nol pertama, mis., 9.8765D×10^-
23D, 1.001011B×2^11B. Untuk bilangan biner, bit terdepan selalu 1, dan tidak perlu direpresentasikan secara eksplisit
- ini menghemat 1 bit penyimpanan.

Dalam bentuk normalisasi IEEE 754:

Untuk presisi tunggal, 1 E 254 dengan kelebihan 127. Oleh karena itu, eksponen sebenarnya dari -
126 hingga +127. Eksponen negatif digunakan untuk mewakili angka kecil (<1.0); sedangkan positif digunakan
N = (-1)^S1.0).
eksponen mewakiliadalah ke
× 1.F × 2^(E-127) besar angka (>

Untuk presisi ganda, 1 E 2046 dengan kelebihan 1023. Eksponen sebenarnya dari -
1022 hingga +1023, dan
N = (-1)^S × 1.F × 2^(E-1023)
Perhatikan bahwa pola n-bit memiliki jumlah kombinasi yang terbatas (=2^n), yang dapat mewakili bilangan berbeda
yang terbatas. Tidak mungkin merepresentasikan bilangan tak hingga pada sumbu nyata (bahkan rentang kecil
mengatakan 0,0 hingga 1,0 memiliki bilangan tak terhingga). Artinya, tidak semua bilangan floating-point dapat
direpresentasikan secara akurat. Sebaliknya, pendekatan terdekat digunakan, yang menyebabkan hilangnya akurasi.

Angka floating-point minimum dan maksimum yang dinormalisasi adalah:

presisi
Dinormalisasi N (mnt) Dinormalisasi N (maks)
n

Lajang 0080 0000H 7F7F


0 0000001 000000000000000000000000B 0 11111110
E = F = 0 E =
1, 254,
= 1.0B × 2^-126 = 1....1B × 2^127
N(mnt) N(maks)
(ÿ1.17549435 × 10^-38) (ÿ3.4028235 × 10^38)
Dobel 0010 0000 0000 0000H 7FEF FFFF
= 1.0B × 2^-1022 1....1B × 2^1023
N(mnt) N(maks) =
(ÿ2.2250738585072014 × 10^-308) (ÿ1.7976931348623157 × 10^308)
Machine Translated by Google

Angka Floating-Point yang Didenormalisasi


Jika E = 0, tetapi pecahan bukan nol, maka nilainya dalam bentuk denormalisasi, dan bit awal 0 diasumsikan,
sebagai berikut:
=
Untuk presisi tunggal, E 0,
N = (-1)^S × 0.F × 2^(-126)
=
Untuk presisi ganda, E 0,
N = (-1)^S × 0.F × 2^(-1022)

Bentuk denormalisasi dapat mewakili angka yang sangat kecil mendekati nol, dan nol, yang tidak dapat
direpresentasikan dalam bentuk normal, seperti yang ditunjukkan pada gambar di atas.

Minimum dan maksimum bilangan floating-point yang didenormalisasi adalah:

Denormalisasi Presisi D (min) Denormalisasi D (maks)

Lajang 0000 0001H 007F


0 00000000 00000000000000000000001B 0 00000000
E =
E = 0, F = 00000000000000000000001B
= 0, 0,1...1
D(mnt) = 0,0...1 × 2^-126 = 1 × 2^-23 × 2^-126 2^-149 D(maks)
=
(ÿ1.1754942 × 10^-38)
(ÿ1,4 × 10^-45)
Dobel 0000 0000 0000 0001H 001F FFFF
= 0.1...1
D(mnt) = 0,0...1 × 2^-1022 = 1 × 2^-52 × 2^- D(maks)
1022 2^-1074 =
(ÿ4.4501477170144023 × 10^-308)
(ÿ4.9 × 10^-324)
Nilai Khusus
Nol: Nol tidak dapat direpresentasikan dalam bentuk normal, dan harus direpresentasikan dalam bentuk
denormalisasi dengan E=0 dan F=0. Ada dua representasi untuk nol: +0 dengan S=0 dan -
0 dengan S=1.
Machine Translated by Google

Tak terhingga: Nilai +tak terhingga (mis., 1/0) dan -tak terhingga (mis., -1/0) direpresentasikan dengan
eksponen semua 1 (E = 255 untuk presisi tunggal dan E = 2047 untuk presisi ganda) , F=0, dan S=0 (untuk
+INF) danS=1 (untuk -INF).
Bukan Angka (NaN): NaN menunjukkan nilai yang tidak dapat direpresentasikan sebagai bilangan real
(misalnya 0/0). NaN diwakili dengan Eksponen dari semua 1 (E = 255 untuk presisi tunggal dan E = 2047
untuk presisi ganda) dan pecahan bukan nol.

1.7 Aritmatika Biner


Kami sangat akrab dengan operasi aritmatika yang berbeda, yaitu. penambahan, pengurangan,
perkalian, dan pembagian dalam sistem desimal. Sekarang kami ingin mencari tahu bagaimana itu sama
operasi dapat dilakukan dalam sistem biner, di mana hanya dua digit, yaitu. 0 dan 1 ada.

1.7.1 Penambahan Biner

Aturan penjumlahan biner diberikan pada Tabel 1.1.

Tabel 1.1
Agustus Tambahkan Jumlah Bawa Hasil
0 0 0 0 0
0 1 1 0 1
1 0 1 0 1
1 1 0 1 10

Prosedur penjumlahan dua bilangan biner sama dengan dua bilangan desimal. Penambahan dilakukan dari
LSB dan berlanjut ke bit signifikan yang lebih tinggi, menambahkan carry yang dihasilkan dari penambahan
dua bit sebelumnya setiap kali.

1.7.2 Pengurangan Biner

Aturan pengurangan biner diberikan pada Tabel 1.2.

Tabel 1.2
akhir 0 Kurangi 0 Perbedaan Meminjam
0 0
0 1 1 1
1 0 1 0
1 1 0 0

Pengurangan biner juga dilakukan dengan metode yang mirip dengan pengurangan desimal. Pengurangan
dilakukan dari LSB dan berlanjut ke bit signifikan yang lebih tinggi. Ketika meminjam adalah 1, seperti pada
Machine Translated by Google

baris kedua, ini akan dikurangkan dari bit biner berikutnya yang lebih tinggi seperti yang dilakukan dalam
pengurangan desimal.
Sebenarnya, pengurangan antara dua angka dapat dilakukan dengan tiga cara, yaitu.
sebuah. metode langsung,
b. metode komplemen r, dan
c. metode komplemen (r – 1).

Pengurangan Menggunakan Metode Langsung


Metode pengurangan langsung menggunakan konsep pinjam. Dalam metode ini, kami meminjam 1 dari posisi
signifikan yang lebih tinggi ketika digit minuend lebih kecil dari digit subtrahend yang sesuai.

1.7.3 Perkalian Biner

Perkalian biner mirip dengan perkalian desimal tetapi jauh lebih sederhana dari itu. Dalam sistem biner, setiap
produk parsial adalah nol (perkalian dengan 0) atau sama persis dengan perkalian (perkalian dengan 1). Aturan
perkalian biner diberikan pada Tabel 1.3.

Tabel 1.3

Perkalian 0 Pengganda Hasil


0 0
0 1 0
1 0 0
1 1 1

Sebenarnya, dalam rangkaian digital, operasi perkalian dilakukan dengan penambahan berulang dari semua
produk parsial untuk mendapatkan produk lengkap.

1.7.4 Divisi Biner


Pembagian biner mengikuti prosedur yang sama seperti pembagian desimal. Aturan tentang pembagian biner
tercantum pada Tabel 1.4.

Tabel 1.4
Dividen Pembagi Hasil
0 0 Tidak Diizinkan
0 1 0
1 0 Tidak Diizinkan
1 1 1
Machine Translated by Google

Pada level terendahnya, komputer tidak dapat mengurangi, mengalikan, atau membagi. Kalkulator juga tidak bisa.
Superkomputer terbesar dan tercepat di dunia hanya dapat menambahkan—hanya itu. Ia melakukan penambahan
pada tingkat bit. Aritmatika biner adalah satu-satunya cara di mana setiap mesin komputasi digital elektronik dapat
melakukan aritmatika.

Misalkan Anda ingin komputer menambahkan tujuh 6s bersama-sama. Jika Anda meminta komputer (melalui
pemrograman) untuk melakukan perhitungan

6+6+6+6+6+6+6

komputer akan memberikan jawabannya, 42, kembali kepada Anda sebelum Anda bisa mengatakan sedikit ember.
Komputer tidak memiliki masalah dalam melakukan penambahan. Masalah muncul saat Anda meminta komputer
melakukan jenis perhitungan lain, seperti ini:

42 – 6 – 6 – 6 – 6 – 6 – 6 – 6

Karena komputer hanya bisa menambah, tidak bisa melakukan pengurangan. Namun, komputer dapat meniadakan
angka. Artinya, komputer dapat mengambil negatif dari suatu angka. Oleh karena itu, ia dapat mengambil negatif
dari 6 dan mewakili (pada tingkat bit) negatif 6. Setelah melakukan itu, ia dapat menambahkan -6 hingga 42 tujuh
kali. Akibatnya, perhitungan internal menjadi ini:

42 + (–6) + (–6) + (–6) + (–6) + (–6) + (–6) + (–6)

Menambahkan tujuh -6s menghasilkan hasil yang benar dari 0. Ini mungkin tampak seperti cop-out bagi Anda.
Lagi pula, komputer benar-benar mengurangi, bukan? Pada kenyataannya, komputer tidak mengurangi. Pada
tingkat bitnya, komputer dapat mengubah angka menjadi negatif melalui proses yang dikenal sebagai komplemen
2. Komplemen 2 angka adalah negatif dari nilai aslinya pada tingkat bit. Komputer dalam sirkuit logika internalnya
memiliki kemampuan untuk mengubah angka menjadi komplemen 2 dan kemudian melakukan penambahan
negatif, sehingga tampaknya melakukan pengurangan.

Setelah komputer dapat menambah dan mensimulasikan pengurangan, komputer dapat mensimulasikan perkalian dan pembagian.

Untuk mengalikan 6 kali 7, komputer sebenarnya menambahkan 6 bersama-sama tujuh kali dan menghasilkan 42.
Karena itu

6x7
Machine Translated by Google

menjadi ini:

6+6+6+6+6+6+6

Untuk membagi 42 dengan 7, komputer mengurangkan 7 dari 42 (yah, menambahkan negatif dari 7 menjadi 42)

hingga mencapai nol dan menghitung berapa kali (6) yang diperlukan untuk mencapai nol, seperti ini:

42 + (–7) + (–7) + (–7) + (–7) + (–7) + (–7)

Komputer mewakili angka dengan cara yang mirip dengan karakter. Seperti yang ditunjukkan Tabel 3.2, angka mudah

direpresentasikan pada tingkat biner. Setelah angka mencapai batas tertentu (tepatnya 256), komputer akan

menggunakan lebih dari satu byte untuk mewakili angka tersebut, mengambil sebanyak mungkin lokasi memori yang

diperlukan untuk mewakili angka tersebut. Setelah diajarkan untuk menambah, mengurangi, mengalikan, dan

membagi, komputer kemudian dapat melakukan matematika apapun yang diperlukan selama sebuah program
disediakan untuk mengarahkannya.

Tabel 3.2 Semua Bilangan Dapat Direpresentasikan sebagai Bilangan Biner

Bilangan Biner
Setara

0 00000000

1 0000001

2 00000010

3 00000011

4 00000100

5 00000101
Machine Translated by Google

6 00000110

7 00000111

8 00001000

9 00001001

10 00001010

11 00001011

12 00001100

13 00001101

14 00001110

15 00001111

16 00000000

17 00010001

18 00010010

19 00010011
Machine Translated by Google

20 00010100

Untuk melihat contoh apa yang terjadi pada tingkat bit, ikuti contoh ini untuk melihat apa yang terjadi
ketika Anda meminta komputer untuk mengurangi 65 dari 65. Hasilnya harus nol dan, seperti yang
Anda lihat dari langkah-langkah berikut, itu persis apa hasilnya di tingkat biner.

1.7.5. TIP

255 angka biner pertama tumpang tindih dengan nilai tabel ASCII. Artinya, representasi biner untuk
huruf A adalah 01000001, dan angka biner untuk 65 juga 01000001.
komputer mengetahui konteks bagaimana program Anda menggunakan lokasi memori apakah nilainya
huruf A atau angka 65.

1. Misalkan Anda ingin komputer menghitung berikut ini:

65 – 65

2. Representasi biner untuk 65 adalah 01000001, dan komplemen 2 untuk 65 adalah 10111111 (yaitu
–65 dalam bahasa komputer). Oleh karena itu, Anda meminta komputer melakukan perhitungan
ini:

01000001 + 10111111

3. Karena bilangan biner tidak dapat memiliki angka 2 (hanya ada 0 dan 1 dalam biner), komputer
membawa 1 setiap kali perhitungan menghasilkan nilai 2; 1 + 1 sama dengan 10 dalam biner.
Meskipun ini dapat membingungkan, Anda dapat membuat analogi dengan aritmatika desimal. Orang-orang bekerja

dalam sistem penomoran basis 10. (Binary dikenal sebagai basis 2.) Tidak ada satu digit untuk mewakili sepuluh;

kita harus menggunakan kembali dua digit yang sudah digunakan untuk membentuk sepuluh: 1 dan 0. Dalam basis

10, 9 + 1 adalah 10. Oleh karena itu, hasil 1 + 1 dalam biner adalah 10 atau "0 dan membawa 1 ke kolom berikutnya."

01000001

+10111111

100000000

4. Karena jawabannya harus sesuai dengan jumlah bit yang sama dengan dua angka asli (setidaknya
untuk contoh ini—komputer Anda mungkin menggunakan lebih banyak bit untuk mewakili angka),
Machine Translated by Google

bit kesembilan dibuang, meninggalkan hasil nol. Contoh ini menunjukkan bahwa biner 65 ditambah biner negatif

65 sama dengan nol sebagaimana mestinya.

TIP

Hal yang baik tentang semua aritmatika biner ini adalah bahwa Anda tidak perlu memahami sedikit pun (pun intended)

untuk menjadi programmer ahli. Namun demikian, semakin Anda tahu tentang apa yang terjadi di bawah tenda,

semakin baik Anda akan memahami cara kerja bahasa pemrograman dan semakin cepat Anda akan menguasai yang

baru dengan melihat kesamaan di antara mereka.

1.8.Representasi BCD
Dalam komputasi dan sistem elektronik , kelas kode biner desimal (BCD) dari pengkodean biner angka desimal di
adalah sebuah

mana setiap digit desimal diwakili oleh jumlah bit yang tetap, biasanya empat atau delapan, meskipun ukuran lain
(seperti enam bit) telah digunakan secara historis. . Pola bit khusus kadang-kadang digunakan untuk tanda atau indikasi
lain (misalnya, kesalahan atau luapan).

Dalam sistem berorientasi byte (yaitu kebanyakan komputer modern), istilah BCD tidak terkompresi biasanya
menyiratkan satu byte penuh untuk setiap digit (seringkali termasuk tanda), sedangkan BCD yang dikemas biasanya
mengkodekan dua digit desimal dalam satu byte dengan mengambil keuntungan dari fakta bahwa empat bit cukup
untuk mewakili rentang 0 hingga 9. Pengkodean 4-bit yang tepat dapat bervariasi namun, untuk alasan teknis, lihat
Kelebihan-3 misalnya.

Keutamaan utama BCD adalah representasi yang lebih akurat dan pembulatan jumlah desimal serta kemudahan
konversi menjadi representasi yang dapat dibaca manusia. Dibandingkan dengan sistem posisi biner , kelemahan
utama BCD adalah peningkatan kecil dalam kompleksitas sirkuit yang diperlukan untuk menerapkan aritmatika dasar
dan penyimpanan yang sedikit kurang padat.

BCD digunakan di banyak komputer desimal awal. Meskipun BCD tidak banyak digunakan seperti di masa lalu , format
titik tetap dan titik-mengambang desimal masih penting dan terus digunakan dalam komputasi keuangan, komersial,
dan industri, di mana konversi halus dan kesalahan pembulatan yang melekat pada titik mengambang representasi
biner tidak dapat ditoleransi.

Seperti dijelaskan dalam pendahuluan, BCD mengambil keuntungan dari fakta bahwa setiap satu angka desimal dapat
diwakili oleh pola empat bit:

Desimal BCD
Angka 8421

0 0000

1 0001

2 0010

3 0011

4 0100
Machine Translated by Google

5 0101

6 0110

7 0111

8 1000

9 1001

Karena kebanyakan komputer menyimpan data dalam byte 8-bit, dimungkinkan untuk menggunakan salah satu metode berikut
untuk menyandikan nomor BCD:

Tidak terkompresi: setiap angka dikodekan menjadi satu byte, dengan empat bit mewakili angka dan
bit yang tersisa tidak memiliki signifikansi.
Dikemas: dua angka dikodekan menjadi satu byte, dengan satu angka di nibble paling tidak signifikan
(bit 0 hingga 3) dan angka lainnya di nibble paling signifikan (bit 4 hingga 7).

Sebagai contoh, pengkodean angka desimal 91 menggunakan BCD tidak terkompresi menghasilkan pola biner
dua byte berikut:

Desimal: 9 1
Biner: 0000 1001 0000 0001

Dalam BCD yang dikemas, nomor yang sama akan masuk ke dalam satu byte:

Desimal: 9 1
Biner : 1001 0001

Oleh karena itu rentang numerik untuk satu byte BCD yang tidak terkompresi adalah nol hingga sembilan inklusif,
sedangkan rentang untuk satu BCD yang dikemas adalah nol hingga sembilan puluh sembilan inklusif.

Untuk mewakili angka yang lebih besar dari rentang satu byte, sejumlah byte yang berdekatan dapat digunakan.
Misalnya, untuk merepresentasikan bilangan desimal 12345 dalam paket BCD, menggunakan format big
endian, sebuah program akan mengkodekan sebagai berikut:

Desimal: 12345
Biner : 0000 0001 0010 0011 0100 0101

Perhatikan bahwa nibble paling signifikan dari byte paling signifikan adalah nol, menyiratkan bahwa angka tersebut
sebenarnya 012345. Perhatikan juga bagaimana BCD yang dikemas lebih efisien dalam penggunaan penyimpanan
dibandingkan dengan BCD yang tidak dikompresi; pengkodean nomor yang sama dalam format terkompresi akan
mengkonsumsi 100 persen lebih banyak penyimpanan.

Operasi shifting dan masking digunakan untuk mengemas atau membongkar digit BCD yang dikemas. Operasi
logis lainnya digunakan untuk mengubah angka menjadi pola bit yang setara atau membalikkan proses.
Machine Translated by Google

1.8.1. Penambahan dengan BCD

Penjumlahan dalam BCD dapat dilakukan dengan menambahkan biner terlebih dahulu, kemudian mengubahnya
menjadi BCD setelahnya. Konversi penjumlahan sederhana dua angka dapat dilakukan dengan menjumlahkan 6
(yaitu 16 – 10) bila hasil penjumlahan lima bit dari sepasang angka tersebut bernilai lebih dari 9. Contoh:

1001 + 1000 = 10001


9 + 8 = 17

Perhatikan bahwa 10001 adalah representasi biner, bukan desimal, dari hasil yang diinginkan. Dalam BCD seperti
dalam desimal, tidak ada nilai yang lebih besar dari 9 (1001) per digit. Untuk memperbaiki ini, 6 (0110) ditambahkan
ke jumlah itu dan kemudian hasilnya diperlakukan sebagai dua camilan:

10001 + 0110 = 00010111 => 0001 0111


17 + 6 = 23 17

Dua gigitan hasil, 0001 dan 0111, sesuai dengan angka "1" dan "7". Ini menghasilkan "17" dalam BCD, yang
merupakan hasil yang benar.

Teknik ini dapat diperluas untuk menambahkan beberapa digit dengan menambahkan grup dari kanan ke kiri,
menyebarkan digit kedua sebagai carry, selalu membandingkan hasil 5-bit dari setiap jumlah pasangan digit
menjadi 9. Beberapa CPU menyediakan flag half-carry untuk memfasilitasi penyesuaian aritmatika BCD setelah
operasi penjumlahan dan pengurangan biner.

1.8.2.Pengurangan dengan BCD

Pengurangan dilakukan dengan menjumlahkan komplemen sepuluh dari pengurangan tersebut. Untuk menyatakan
tanda suatu bilangan dalam BCD, bilangan 0000 digunakan untuk menyatakan bilangan positif, dan 1001
digunakan untuk menyatakan bilangan negatif. 14 kombinasi yang tersisa adalah tanda yang tidak valid. Untuk
mengilustrasikan pengurangan BCD bertanda, pertimbangkan masalah berikut: 357 432.

Dalam BCD bertanda, 357 adalah 0000 0011 0101 0111. Komplemen sepuluh dari 432 dapat diperoleh dengan
mengambil komplemen sembilan dari 432, lalu menambahkan satu. Jadi, 999 432 = 567, dan 567 + 1 = 568.
Dengan mendahului 568 dalam BCD dengan kode tanda negatif, angka 432 dapat diwakili.
Jadi, 432 dalam BCD bertanda adalah 1001 0101 0110 1000.

Sekarang kedua angka direpresentasikan dalam BCD bertanda, mereka dapat ditambahkan bersama-sama:

0000 0011 0101 0111 + 1001 0101 0110 1000 = 1001 1000 1011 1111
0 3 5 7 + 9 5 6 8 = 9 8 11 15

Karena BCD adalah bentuk representasi desimal, beberapa jumlah digit di atas tidak valid. Jika ada entri yang
tidak valid (digit BCD apa pun yang lebih besar dari 1001), 6 ditambahkan untuk menghasilkan bit carry dan
menyebabkan jumlahnya menjadi entri yang valid. Alasan untuk menambahkan 6 adalah karena ada 16
Machine Translated by Google

kemungkinan nilai BCD 4-bit (sejak 24 = 16), tetapi hanya 10 nilai yang valid (0000 hingga 1001). Jadi menambahkan
6 ke entri yang tidak valid menghasilkan yang berikut:

1001 1000 1011 1111 + 0000 0000 0110 0110 = 1001 1001 0010 0101
9 8 11 15 + 0 0 6 6 = 9 9 2 5

Jadi hasil pengurangannya adalah 1001 1001 0010 0101 (-925). Untuk memeriksa jawabannya, perhatikan bahwa
bit pertama adalah bit tanda, yang negatif. Ini tampaknya benar, karena 357 432 seharusnya menghasilkan angka
negatif. Untuk memeriksa sisa digit, nyatakan dalam desimal. 1001 0010 0101 adalah 925. Komplemen kesepuluh
dari 925 adalah 1000 925 = 999 925 + 1 = 074 + 1 = 75, jadi jawaban yang dihitung adalah 75. Untuk memeriksa,
lakukan pengurangan standar untuk memverifikasi bahwa 357 432 adalah 75.

Perhatikan bahwa jika ada jumlah camilan yang berbeda dijumlahkan (seperti 1053 122), angka dengan jumlah digit
paling sedikit harus diisi terlebih dahulu dengan nol sebelum mengambil komplemen atau pengurangan sepuluh.
Jadi, dengan 1053 122, 122 harus terlebih dahulu direpresentasikan sebagai 0122, dan komplemen sepuluh dari
0122 harus dihitung.

Keuntungan
Banyak nilai non-integral, seperti desimal 0,2, memiliki representasi nilai tempat tak terhingga dalam biner
(.001100110011...) tetapi memiliki nilai tempat berhingga dalam desimal berkode biner (0,0010).
Akibatnya sistem yang didasarkan pada representasi desimal berkode biner dari pecahan desimal menghindari
kesalahan yang mewakili dan menghitung nilai-nilai tersebut.

Penskalaan dengan faktor 10 (atau pangkat 10) sederhana; ini berguna ketika desimal
faktor skala diperlukan untuk mewakili kuantitas non-integer (misalnya, dalam perhitungan keuangan)
Pembulatan pada batas angka desimal lebih sederhana. Penjumlahan dan pengurangan dalam desimal
tidak memerlukan pembulatan.
Penjajaran dua angka desimal (misalnya 1,3 + 27,08) adalah pergeseran yang sederhana dan tepat.
Konversi ke bentuk karakter atau untuk tampilan (misalnya, ke format berbasis teks seperti XML, atau untuk
menggerakkan sinyal untuk tampilan tujuh segmen) adalah pemetaan per digit sederhana, dan dapat dilakukan
secara linier (O(n )) waktu. Konversi dari biner murni melibatkan logika yang relatif kompleks yang mencakup
angka, dan untuk bilangan besar tidak ada algoritma konversi waktu-linear yang diketahui (lihat Sistem bilangan
biner).

Kekurangan

Beberapa operasi lebih kompleks untuk diterapkan. Adder memerlukan logika ekstra untuk membuatnya
membungkus dan menghasilkan carry lebih awal. 15–20 persen lebih banyak sirkuit diperlukan untuk
penambahan BCD dibandingkan dengan biner murni.
Perkalian
[rujukan?]
membutuhkan penggunaan algoritme yang agak
lebih kompleks daripada shift-mask-add ( perkalian biner, membutuhkan pergeseran dan penjumlahan biner
atau yang setara, per-digit atau kelompok digit diperlukan)
BCD standar membutuhkan empat bit per digit, kira-kira 20 persen lebih banyak ruang daripada pengkodean
biner (rasio 4 bit ke log210 bit adalah 1,204). Ketika dikemas sehingga tiga digit adalah
Machine Translated by Google

dikodekan dalam sepuluh bit, overhead penyimpanan sangat berkurang, dengan mengorbankan pengkodean yang tidak selaras
dengan batas byte 8-bit yang umum pada perangkat keras yang ada, menghasilkan implementasi yang lebih lambat pada sistem
ini.

Implementasi praktis BCD yang ada biasanya lebih lambat daripada operasi pada representasi biner, terutama pada sistem
tertanam, [rujukan?] karena dukungan prosesor yang terbatas untuk operasi BCD asli.

1.8.3. Aplikasi
BIOS di banyak komputer pribadi menyimpan tanggal dan waktu dalam BCD karena chip jam real-time MC6818 yang digunakan pada
motherboard IBM PC AT asli menyediakan waktu yang dikodekan dalam BCD. Formulir ini dengan mudah diubah menjadi ASCII untuk
ditampilkan.[8]

Keluarga komputer Atari 8-bit menggunakan BCD untuk mengimplementasikan algoritma floating-point.
Prosesor MOS 6502 yang digunakan memiliki mode BCD yang mempengaruhi instruksi penambahan dan pengurangan.

Model awal PlayStation 3 menyimpan tanggal dan waktu di BCD. Hal ini menyebabkan padamnya konsol di seluruh dunia pada 1 Maret
2010. Dua digit terakhir tahun yang disimpan sebagai BCD disalahartikan sebagai 16 yang menyebabkan kesalahan pada tanggal unit,
membuat sebagian besar fungsi tidak dapat dioperasikan. Ini telah disebut sebagai Masalah Tahun 2010

1.9.Kode Deteksi Kesalahan


Dalam teori informasi dengan aplikasi
teori dandalam
pengkodean
ilmu komputer dan telekomunikasi, deteksi kesalahan dan koreksi atau kontrol kesalahan

adalah teknik yang memungkinkan pengiriman data digital yang andal melalui saluran komunikasi yang tidak dapat diandalkan. Banyak

saluran komunikasi tunduk pada gangguan saluran, dan dengan demikian kesalahan dapat terjadi selama transmisi dari sumber ke

penerima. Teknik deteksi kesalahan memungkinkan mendeteksi kesalahan tersebut, sedangkan koreksi kesalahan memungkinkan

rekonstruksi data asli.

1.9.1.Skema deteksi kesalahan


deteksi
checksum ). Fungsi adalah
hash paling
menambahkan tag dengan biasanya
panjang tetap
menggunakan diwujudkan
ke pesan, fungsi
yang memungkinkan
Kesalahan hashpenerima
yang sesuai
memverifikasi
(atau algoritma
sebuah
pesan yang
dikirim dengan menghitung ulang tag dan membandingkannya dengan yang disediakan.

Ada berbagai macam desain fungsi hash yang berbeda. Namun, beberapa digunakan secara
luas karena kesederhanaannya atau kesesuaiannya untuk mendeteksi jenis kesalahan tertentu
(misalnya , kinerja pemeriksaan redundansi siklik dalam mendeteksi kesalahan burst).
Kode koreksi kesalahan acak berdasarkan pengkodean jarak minimum dapat memberikan alternatif yang cocok untuk fungsi hash ketika
jaminan ketat pada jumlah minimum kesalahan yang akan dideteksi diinginkan. Kode pengulangan, yang dijelaskan di bawah, adalah
kasus khusus dari koreksi kesalahan
Machine Translated by Google

kode: meskipun agak tidak efisien, mereka menemukan aplikasi untuk koreksi dan deteksi kesalahan karena
kesederhanaannya.

1.9.2.Kode pengulangan
Kode pengulangan adalah skema pengkodean yang mengulangi bit melintasi saluran untuk mencapai komunikasi
bebas kesalahan. Mengingat aliran data yang akan ditransmisikan, data dibagi menjadi blok bit.
Setiap blok ditransmisikan beberapa kali yang telah ditentukan sebelumnya. Misalnya, untuk mengirim pola bit "1011",
blok empat bit dapat diulang tiga kali, sehingga menghasilkan "1011 1011 1011".
Namun, jika pola dua belas bit ini diterima sebagai "1010 1011 1011" – di mana blok pertama tidak seperti dua lainnya
– dapat ditentukan bahwa telah terjadi kesalahan.

Kode pengulangan sangat tidak efisien, dan dapat rentan terhadap masalah jika kesalahan terjadi di tempat yang
sama persis untuk setiap grup (misalnya, "1010 1010 1010" pada contoh sebelumnya akan dideteksi sebagai benar).
Keuntungan dari kode pengulangan adalah sangat sederhana, dan sebenarnya digunakan di beberapa transmisi
stasiun angka.

1.9.3.Bit paritas
Bit paritas adalah bit yang ditambahkan ke sekelompok bit sumber untuk memastikan bahwa jumlah bit yang
ditetapkan (yaitu, bit dengan nilai 1) dalam hasilnya genap atau ganjil. Ini adalah skema yang sangat sederhana yang
dapat digunakan untuk mendeteksi satu atau nomor ganjil lainnya (yaitu, tiga, lima, dll.) dari kesalahan dalam output.
Jumlah bit yang dibalik akan membuat bit paritas tampak benar meskipun datanya salah.

Ekstensi dan variasi pada mekanisme bit paritas adalah pemeriksaan redundansi horizontal, pemeriksaan redundansi
vertikal , dan paritas "ganda", "ganda", atau "diagonal" (digunakan dalam RAID-DP).

1.9.4.Checksum
Sebuah checksum dari sebuah pesan adalah jumlah aritmatika modular dari kata-kata kode pesan dari panjang kata
yang tetap (misalnya, nilai byte). Jumlah tersebut dapat dinegasikan melalui operasi one-complement sebelum
transmisi untuk mendeteksi kesalahan yang menghasilkan pesan nol-nol.

Skema checksum termasuk bit paritas, digit cek, dan cek redundansi longitudinal. Beberapa skema checksum, seperti
algoritma Damm, algoritma Luhn, dan algoritma Verhoeff , secara khusus dirancang untuk mendeteksi kesalahan yang
biasa diperkenalkan oleh manusia dalam menuliskan atau mengingat nomor identifikasi.

1.9.5.Cyclic redundancy check (CRC)


Pemeriksaan redundansi siklik (CRC) adalah kode siklik pendeteksi kesalahan ledakan tunggal dan fungsi hash yang
tidak aman yang dirancang untuk mendeteksi perubahan yang tidak disengaja pada data digital di jaringan komputer.
Ini tidak cocok untuk mendeteksi kesalahan yang diperkenalkan secara berbahaya. Hal ini ditandai dengan spesifikasi
dari apa yang disebut polinomial generator, yang digunakan sebagai pembagi dalam pembagian panjang polinomial
di atas bidang yang terbatas, mengambil data input sebagai dividen, dan di mana sisanya menjadi hasilnya.
Machine Translated by Google

Kode siklik memiliki sifat yang menguntungkan karena sangat cocok untuk mendeteksi kesalahan burst.
CRC sangat mudah diimplementasikan dalam perangkat keras, dan oleh karena itu umumnya digunakan dalam
jaringan digital dan perangkat penyimpanan seperti hard disk drive.

Bahkan paritas adalah kasus khusus dari pemeriksaan redundansi siklik, di mana CRC bit tunggal dihasilkan
oleh pembagi x + 1.

1.9.7.Fungsi hash kriptografis


Keluaran dari fungsi hash kriptografi, juga dikenal sebagai intisari pesan, dapat memberikan jaminan yang kuat
tentang integritas data, apakah perubahan data tidak disengaja (misalnya, karena kesalahan transmisi) atau
diperkenalkan secara jahat. Setiap modifikasi pada data kemungkinan akan dideteksi melalui nilai hash yang
tidak cocok. Selain itu, mengingat beberapa nilai hash, tidak mungkin untuk menemukan beberapa data input
(selain yang diberikan) yang akan menghasilkan nilai hash yang sama. Jika penyerang dapat mengubah tidak
hanya pesan tetapi juga nilai hash, maka hash yang dikunci atau kode otentikasi pesan (MAC) dapat digunakan
untuk keamanan tambahan. Tanpa mengetahui kuncinya, penyerang tidak mungkin menghitung nilai hash
dengan kunci yang benar untuk pesan yang dimodifikasi.

1.10. Eksekusi tetap dan Instruksi

1. Register khusus berisi alamat instruksi

2. CPU "mengambil" instruksi dari memori di alamat itu

3. CPU "mendekode" instruksi untuk mencari tahu apa yang harus dilakukan

4.¨CPU "mengambil" semua data (operan) yang dibutuhkan oleh instruksi, dari memori atau register

5.CPU "mengeksekusi" operasi yang ditentukan oleh instruksi pada data ini

6.ªCPU "menyimpan" hasil apa pun ke dalam register atau memori

Siklus Instruksi
Machine Translated by Google

Bagaimana Program Lengkap Dieksekusi?

The "register khusus" diinisialisasi untuk menunjuk ke instruksi pertama dari program

• Sebagai bagian dari siklus pengambilan instruksi, "register khusus" diperbarui untuk menunjuk ke instruksi
berikutnya

• Ketika satu instruksi selesai, siklus dimulai lagi

– CPU tidak pernah berhenti; itu selalu mengeksekusi sesuatu

1.11.Interupsi
Interupsi adalah sinyal dari perangkat yang terpasang pada komputer atau dari program di dalam komputer yang
menyebabkan program utama yang mengoperasikan komputer ( sistem operasi ) untuk berhenti dan mencari
tahu apa yang harus dilakukan selanjutnya. Hampir semua komputer pribadi (atau lebih besar) saat ini digerakkan
oleh interupsi - yaitu, mereka memulai daftar instruksi komputer s dalam satu program (mungkin aplikasi seperti
pengolah kata) dan terus jalankan instruksi sampai (A) mereka tidak dapat melangkah lebih jauh atau (B) sinyal
interupsi terdeteksi. Setelah sinyal interupsi terdeteksi, komputer akan melanjutkan menjalankan program yang
sedang berjalan atau mulai menjalankan program lain.

Pada dasarnya, satu komputer hanya dapat melakukan satu instruksi komputer pada satu waktu. Tetapi, karena
dapat diinterupsi, ia dapat bergiliran program atau rangkaian instruksi mana yang dijalankannya.
Ini dikenal sebagai multitasking . Hal ini memungkinkan pengguna untuk melakukan beberapa hal yang
berbeda pada waktu yang sama. Komputer hanya bergiliran mengelola program yang dimulai pengguna secara
efektif. Tentu saja, komputer beroperasi pada kecepatan yang membuatnya seolah-olah semua tugas pengguna
dilakukan pada waktu yang sama. (Sistem operasi komputer pandai menggunakan sedikit jeda dalam operasi
dan waktu berpikir pengguna untuk bekerja pada program lain.)

Sebuah sistem operasi biasanya memiliki beberapa kode yang disebut sebagai pengendali interupsi. Penangan
interupsi memprioritaskan interupsi dan menyimpannya dalam antrian jika lebih dari satu sedang menunggu
,
untuk ditangani. Sistem operasi memiliki program kecil lain, kadang-kadang disebut penjadwal yang mengetahui
program mana yang akan memberikan kontrol ke berikutnya.

Secara umum, ada interupsi perangkat keras dan interupsi perangkat lunak. Interupsi perangkat keras terjadi,
misalnya, ketika operasi I/O selesai seperti membaca beberapa data ke dalam komputer dari tape drive. Interupsi
perangkat lunak terjadi ketika program aplikasi menghentikan atau meminta layanan tertentu dari sistem operasi.
Di komputer pribadi, permintaan interupsi perangkat keras ( IRQ ) memiliki nilai yang terkait dengannya yang
mengaitkannya dengan perangkat tertentu.
Machine Translated by Google

Jenis-jenis interupsi

Interupsi perangkat lunak

Gangguan perangkat keras

Pengecualian

1. Interupsi perangkat lunak

Layanan papan ketik

» layanan DOS 21H int

» layanan BIOS int 16H

2. Pengecualian

Contoh satu langkah

3. Interupsi perangkat keras

Mengakses I/O

Chip dukungan periferal

1.12.Bus
CPU komputer pribadi harus mengirim dan menerima berbagai jenis informasi dan data ke dan dari semua perangkat dan
komponen lain di dalam komputer dan ke perangkat yang terhubung ke kata luar komputer.

Jika kita melepas casing CPU maka kita akan melihat bahwa ada jaring kabel atau jalur elektronik yang terhubung antara
motherboard dan komponen lainnya. Ini adalah jalur kabel atau elektronik yang menghubungkan berbagai komponen
bersama untuk berkomunikasi satu sama lain.
Jaringan kabel atau jalur elektronik ini dikenal sebagai 'BUS'. Jadi BUS hanyalah seperangkat kabel garis yang
menghubungkan berbagai komponen di dalam komputer.

Jenis Bus:

Terutama, BUS komputer bisa menjadi terbagi ke dalam dua jenis :

Bus dalam
Bus Eksternal
Machine Translated by Google

Bus Internal: BUS atau sekumpulan kabel yang menghubungkan berbagai komponen di dalam komputer, dikenal
sebagai Bus Internal. Karena digunakan untuk tujuan komunikasi internal. Ini menghubungkan berbagai komponen
di dalam cabnet, seperti CPU, Memori dan Motherboard. Hal ini juga dikenal sebagai Sistem Bus.

Bus Eksternal: Bus atau kumpulan kabel yang digunakan untuk menghubungkan periferal atau komponen luar dikenal
sebagai Bus
ke komputer, komputer. Eksternal.
Ini lebih lambatBus
dariiniInternal
memungkinkan perangkat
atau System eksternal
Bus. Hal ini jugayang berbeda
dikenal untuk
sebagai Busdihubungkan
Ekspansi.

1.12.1.Bus Sistem
Bus sistem adalah bus komputer tunggal yang menghubungkan komponen utama dari sistem komputer. Teknik ini
dikembangkan untuk mengurangi biaya dan meningkatkan modularitas. Ini menggabungkan fungsi bus data untuk
membawa informasi, bus alamat untuk menentukan ke mana harus dikirim, dan bus kontrol untuk menentukan
operasinya. Meskipun populer pada 1970-an dan 1980-an, komputer modern menggunakan berbagai bus terpisah
yang disesuaikan dengan kebutuhan yang lebih spesifik.

Latar belakang

Banyak komputer elektronik awal didasarkan pada Draft Pertama Laporan pada laporan EDVAC yang diterbitkan
pada tahun 1945. Dalam apa yang kemudian dikenal sebagai arsitektur Von Neumann, unit kontrol pusat dan unit
logika aritmatika (ALU, yang disebutnya bagian aritmatika pusat) digabungkan dengan memori komputer dan fungsi
input dan output untuk membentuk komputer program yang tersimpan.
Laporan tersebut menyajikan organisasi umum dan model teoretis komputer, namun bukan implementasi model
tersebut. Segera desain mengintegrasikan unit kontrol dan ALU ke dalam apa yang kemudian dikenal sebagai unit
pemrosesan pusat (CPU).

Komputer pada 1950-an dan 1960-an umumnya dibangun secara ad-hoc. Misalnya, CPU, memori, dan unit input/
output masing-masing satu atau lebih kabinet dihubungkan oleh
Machine Translated by Google

kabel. Insinyur menggunakan teknik umum dari bundel kabel standar dan memperluas konsep sebagai backplanes
digunakan untuk menahan papan sirkuit tercetak di mesin awal ini. Nama "bus" sudah digunakan untuk "bar bus"
yang membawa tenaga listrik ke berbagai bagian mesin listrik, termasuk kalkulator mekanik awal. Munculnya sirkuit
terpadu sangat mengurangi ukuran setiap unit komputer, dan bus menjadi lebih standar.[4] Modul standar dapat
saling berhubungan dengan cara yang lebih seragam dan lebih mudah untuk dikembangkan dan dipelihara.

Keterangan

Untuk menyediakan lebih banyak lagi modularitas dengan pengurangan biaya, bus memori dan I/O (dan bus kontrol
dan daya yang diperlukan) terkadang digabungkan menjadi satu bus sistem terpadu. Modularitas dan biaya menjadi
penting karena komputer menjadi cukup kecil untuk muat dalam satu kabinet (dan pelanggan mengharapkan
pengurangan harga yang sama). Digital Equipment Corporation (DEC) lebih lanjut mengurangi biaya untuk
minikomputer yang diproduksi secara massal, dan I/O yang dipetakan memori ke dalam bus memori, sehingga
perangkat tersebut tampak seperti lokasi memori. Ini diimplementasikan di Unibus PDP-11 sekitar tahun 1969,
menghilangkan kebutuhan akan bus I/O yang terpisah. Bahkan komputer seperti PDP-8 tanpa I/O yang dipetakan
memori segera diimplementasikan dengan bus sistem, yang memungkinkan modul dicolokkan ke slot mana pun.
Beberapa penulis menyebut ini sebagai "model" arsitektur komputer baru yang disederhanakan.

Banyak mikrokomputer awal (dengan CPU umumnya pada sirkuit terpadu tunggal) dibangun
dengan bus sistem tunggal, dimulai dengan bus S-100 di sistem komputer Altair 8800 pada
sekitar tahun 1975.[9] PC IBM menggunakan bus Arsitektur Standar Industri (ISA) sebagai bus
sistemnya pada tahun 1981. Pesawat belakang pasif model awal diganti dengan standar
penempatan CPU pada motherboard, dengan hanya papan anak opsional atau kartu ekspansi
di slot bus sistem.

Multibus menjadi standar Institute of Electrical and Electronics Engineers sebagai standar IEEE 796 pada tahun
1983. Sun Microsystems mengembangkan SBus pada tahun 1989 untuk mendukung kartu ekspansi yang lebih
kecil. Cara termudah untuk mengimplementasikan multiprocessing simetris adalah dengan menghubungkan lebih
dari satu CPU ke dalam bus sistem bersama, yang digunakan sampai tahun 1980-an. Namun, bus bersama dengan
cepat menjadi hambatan dan teknik koneksi yang lebih canggih dieksplorasi

Bus mandiri ganda

Ketika desain CPU berkembang menjadi menggunakan bus lokal yang lebih cepat dan bus periferal yang lebih
lambat, Intel mengadopsi terminologi bus independen ganda (DIB), menggunakan bus sisi depan eksternal ke bus utama.
Machine Translated by Google

memori sistem, dan bus sisi belakang internal antara satu atau lebih CPU dan cache CPU.
Ini diperkenalkan pada produk Pentium Pro dan Pentium II pada pertengahan hingga akhir 1990-an.

Bus utama untuk mengkomunikasikan data antara CPU dan memori utama dan perangkat input dan output disebut
bus sisi depan, dan bus sisi belakang mengakses cache level 2.
Komputer pribadi dan server modern menggunakan teknologi interkoneksi berkinerja tinggi seperti HyperTransport
dan Intel QuickPath Interconnect, sementara arsitektur bus sistem terus digunakan pada mikroprosesor tertanam
yang lebih sederhana. Bus sistem bahkan dapat menjadi internal ke sirkuit terpadu tunggal, menghasilkan sistem-
on-a-chip. Contohnya termasuk AMBA, CoreConnect, dan Wishbone.

1.13.Aljabar Boolean
Pada tahun 1854 George Boole memperkenalkan pendekatan logika yang sistematis dan mengembangkan aljabar
sistem untuk memperlakukan fungsi logika, yang sekarang disebut aljabar Boolean. Pada tahun 1938 M Shannon
mengembangkan aljabar Boolean dua nilai yang disebut aljabar Switching, dan menunjukkan bahwa
sifat dari sirkuit switching listrik dua nilai atau bistabil dapat diwakili oleh ini:
aljabar. Postulat yang dirumuskan oleh EV Huntington pada tahun 1904 digunakan untuk formal
definisi aljabar Boolean. Namun, postulat Huntington tidak unik untuk mendefinisikan
Aljabar Boolean dan postulat lain juga digunakan. Postulat Huntington berikut dipenuhi untuk definisi aljabar
Boolean pada himpunan elemen S bersama-sama dengan dua operator biner (+) dan (.).

1. (a) Lebih dekat dengan operator (+).


(b) Lebih dekat dengan operator (.).
2. (a) Sebuah elemen identitas terhadap + dilambangkan dengan 0 yaitu, A + 0 = 0 + A = A.

(b) Sebuah elemen identitas sehubungan dengan . ditunjuk oleh 1 yaitu, A.1 = 1. A = A.
3. (a) Komutatif terhadap (+), yaitu, A + B = B + A.
(b) Komutatif terhadap (.), yaitu, AB = BA
4. (a) (.) adalah distributif atas (+), yaitu, A . (B+C) = (A.B) + (A.C).
(b) (+) adalah distributif atas (.), yaitu, A + (B .C) = (A + B) . (A+C).
5. Untuk setiap elemen A S, terdapat sebuah elemen A' S (disebut komplemen dari A) sehingga A + Aÿ =
1 dan A 6. Terdapat setidaknya dua
. Aÿelemen
= 0. A,B S, sehingga A tidak sama dengan B.

Membandingkan aljabar Boolean dengan aritmatika dan aljabar biasa (bidang bilangan real), perbedaan berikut
diamati:
1. Postulat Huntington tidak termasuk hukum asosiasi. Namun, aljabar Boolean mengikuti hukum dan
dapat diturunkan dari postulat lain untuk kedua operasi tersebut.
Machine Translated by Google

2. Hukum distributif (+) atas ( . ) yaitu, A+ (BC) = (A+B) . (A+C) berlaku untuk aljabar Boolean, tetapi
tidak untuk aljabar biasa.
3. Aljabar Boolean tidak memiliki invers penjumlahan atau perkalian, jadi tidak ada
operasi pengurangan atau pembagian.
4. Postulat 5 mendefinisikan operator yang disebut Komplemen, yang tidak tersedia di biasa
aljabar.
5. Aljabar biasa berurusan dengan bilangan real, yang terdiri dari himpunan elemen tak terhingga.
Aljabar Boolean berkaitan dengan himpunan elemen S yang belum terdefinisi, tetapi dalam dua nilai
Aljabar Boolean, himpunan S hanya terdiri dari dua elemen—0 dan 1.

Aljabar Boolean sangat mirip dengan aljabar biasa dalam beberapa hal. Simbol (+) dan (.) dipilih dengan
sengaja untuk memfasilitasi manipulasi aljabar Boolean oleh orang yang sudah terbiasa dengan aljabar biasa.
Meskipun seseorang dapat menggunakan beberapa pengetahuan dari aljabar biasa untuk menangani aljabar
Boolean, pemula harus berhati-hati untuk tidak mengganti aturan aljabar biasa yang tidak dapat diterapkan.

Penting untuk membedakan antara elemen himpunan struktur aljabar dan variabel sistem aljabar.
Misalnya, unsur-unsur bidang bilangan real adalah bilangan, variabel seperti X, Y, Z, dll., adalah simbol yang
mewakili bilangan real, yang digunakan dalam aljabar biasa. Di sisi lain, dalam kasus aljabar Boolean, elemen
dari himpunan S didefinisikan, dan variabel A, B, C, dll., hanyalah simbol yang mewakili elemen.

Pada titik ini, penting untuk disadari bahwa untuk mendapatkan aljabar Boolean, hal-hal berikut harus
ditunjukkan.
1. Unsur-unsur himpunan S.

2. Aturan operasi untuk dua operator biner.


3. Himpunan elemen S, bersama dengan dua operator memenuhi enam postulat Huntington.

Seseorang dapat merumuskan banyak aljabar Boolean, tergantung pada pilihan elemen himpunan S
dan aturan operasinya. Dalam bab-bab berikutnya, kita hanya akan membahas aljabar Boolean dua nilai , yaitu
aljabar dengan dua elemen. Aljabar Boolean dua nilai memiliki aplikasi dalam teori himpunan dan logika
proposisional. Tapi di sini, minat kami adalah dengan penerapan aljabar Boolean ke rangkaian logika tipe
gerbang.

1.13.1 Sifat Dasar Dan Teorema Aljabar Boolean

1.13.1.1 Prinsip Dualitas

Dari postulat Huntington, terbukti bahwa mereka dikelompokkan berpasangan sebagai (a) dan (b) dan setiap
ekspresi aljabar yang dapat dikurangkan dari postulat aljabar Boolean tetap valid jika operator dan elemen
identitasnya dipertukarkan. Ini berarti satu ekspresi dapat diperoleh dari yang lain di setiap pasangan dengan
menukar setiap elemen yaitu, setiap 0 dengan 1, setiap 1 dengan 0, sebagai
Machine Translated by Google

serta mengganti operator yaitu setiap (+) dengan (.) dan setiap (.) dengan (+). Sifat penting dari aljabar Boolean ini
disebut prinsip dualitas.

1.13.1.2 Teorema DeMorgan

Dua teorema yang diajukan oleh DeMorgan memainkan peran penting dalam aljabar Boolean.

Teorema pertama menyatakan bahwa komplemen suatu produk sama dengan jumlah
melengkapi. Artinya, jika variabelnya adalah A dan B, maka
(AB)ÿ = Aÿ + Bÿ

Teorema kedua menyatakan bahwa komplemen dari suatu jumlah sama dengan produk dari komplemen. Dalam
bentuk persamaan, ini dapat dinyatakan sebagai
(A + B)ÿ = Aÿ . B'

Komplemen fungsi logika Boolean atau ekspresi logika dapat disederhanakan atau diperluas dengan langkah-langkah
berikut dari teorema DeMorgan.
(a) Ganti operator (+) dengan (.) dan (.) dengan (+) yang diberikan dalam ekspresi.
(b) Lengkapi setiap suku atau variabel dalam ekspresi.

Teorema DeMorgan berlaku untuk sejumlah variabel. Untuk tiga variabel A, B, dan C, persamaannya adalah

(ABC)ÿ = Aÿ + Bÿ + Cÿ (A + dan

B + C)ÿ = Aÿ.Bÿ.Cÿ

1.13.1.3 Teorema Penting Lainnya

Teorema 1(a): A + A = A
A + A = (A + A).1 = (A dengan postulat 2(b)
+ A) . (A + Aÿ) dengan postulat 5
= A + AAÿ
=A+0 dengan postulat 4
=A dengan postulat 2(a)

Teorema 1(b): A .A=A


SEBUAH . A = (A.A) + 0 = dengan postulat 2(a)
(A.A) + (A.Aÿ) dengan postulat 5
= A (A + Aÿ)
= A 1. dengan postulat 4
Machine Translated by Google

=A dengan postulat 2(b)

Teorema 2(a): A + 1 = 1

Teorema 2(b): A .0=0

Teorema 3(a): A + AB = A
A + AB = A = . 1 + AB dengan postulat 2(b)
A ( 1 + B) dengan postulat 4(a)
= A 1. dengan postulat 2(a)
=A dengan postulat 2(b)

Teorema 3(b): A ( A + B ) = A oleh dualitas

Berikut ini adalah daftar lengkap postulat dan teorema yang berguna untuk aljabar Boolean dua nilai.

Postulat 2 (a) A + 0 = A (b) A.1 = A


Postulat 5 (a) A + Aÿ = 1 (b) AAÿ = 0
Teorema 1 (a) A + A = A (b) AA = A
Teorema 2 (a) A + 1 = 1 (b) A.0 = 0
Teorema 3, Involusi (Aÿ)ÿ = A
Teorema 3, Involusi (a) A + B = B + A (b) AB = BA
Teorema 4, Asosiatif (a) A + (B + C) = (A + B) + C (b) A.(BC) = (AB).C
Teorema 4, Distributif (a) A(B + C) = AB + AC (b) A + BC = (A + B).(A + C)
Teorema 5, DeMorgan (a) (A + B)ÿ = Aÿ.Bÿ (b) (AB)ÿ = Aÿ + Bÿ
Teorema 6, Penyerapan (a) A + AB = A (b) A.(A + B) = A

1.13.1.4 Fungsi Boolean

Variabel biner memiliki dua nilai, baik 0 atau 1. Fungsi Boolean adalah ekspresi yang dibentuk dengan
variabel biner, dua operator biner AND dan OR, satu operator unary NOT, tanda kurung dan tanda sama
dengan. Nilai suatu fungsi mungkin 0 atau 1, tergantung pada nilai variabel yang ada dalam fungsi atau
ekspresi Boolean. Misalnya, jika fungsi Boolean dinyatakan secara aljabar sebagai

F = ABÿC
Machine Translated by Google

maka nilai F akan menjadi 1, ketika A = 1, B = 0, dan C = 1. Untuk nilai A, B, C yang lain nilai F adalah 0.

Fungsi Boolean juga dapat direpresentasikan dengan tabel kebenaran. Tabel kebenaran adalah tabelnya
bentuk nilai-nilai fungsi Boolean menurut semua nilai yang mungkin dari variabel-variabelnya. Untuk
sejumlah n variabel, 2n kombinasi 1s dan 0s terdaftar dan satu kolom mewakili
nilai fungsi sesuai dengan kombinasi yang berbeda. Misalnya, untuk tiga variabel
Fungsi boolean F = AB + C tabel kebenaran dapat dituliskan seperti pada gambar dibawah ini.

SEBUAH B C F
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1

Fungsi Boolean dari ekspresi aljabar dapat direalisasikan ke diagram logika yang terdiri dari gerbang logika.
Gambar 3.11 adalah contoh diagram logika yang direalisasikan oleh gerbang dasar seperti gerbang AND, OR,
dan NOT. Dalam bab-bab selanjutnya, lebih banyak diagram logika dengan berbagai gerbang akan ditampilkan.

1.13.1.5 Penyederhanaan Ekspresi Boolean

Ketika ekspresi Boolean diimplementasikan dengan gerbang logika, setiap literal dalam fungsi ditetapkan sebagai
input ke gerbang. Literal dapat berupa variabel prima atau tidak prima. Meminimalkan jumlah literal dan jumlah
istilah mengarah ke sirkuit yang kurang kompleks serta jumlah gerbang yang lebih sedikit, yang seharusnya
menjadi tujuan perancang. Ada beberapa metode untuk meminimalkan fungsi Boolean. Dalam bab ini,
penyederhanaan atau minimalisasi ekspresi aljabar kompleks akan ditampilkan dengan bantuan postulat dan
teorema aljabar Boolean.

Contoh 1. Sederhanakan fungsi Boolean F=AB+ BC + BÿC.


Larutan. F = AB + BC + BÿC

= AB + C(B + Bÿ)
= AB + C
Machine Translated by Google

Contoh 2. Sederhanakan fungsi Boolean F= A + AÿB.


Larutan. F = A+ AÿB

= (A + Aÿ) (A + B)
=A+B

Contoh 3. Sederhanakan fungsi Boolean F= AÿBÿC + AÿBC + ABÿ.


Larutan. F = AÿBÿC + AÿBC + ABÿ

= AÿC (Bÿ+B) + ABÿ


= AÿC + ABÿ

1.14.Sirkuit Logika

Logika biner berkaitan dengan variabel yang memiliki dua nilai diskrit—1 untuk TRUE dan 0 untuk FALSE.
Rangkaian switching sederhana yang mengandung elemen aktif seperti dioda dan transistor dapat mendemonstrasikan
logika biner, yang dapat berupa ON (saklar tertutup) atau OFF (saklar terbuka).
Sinyal listrik seperti tegangan dan arus ada dalam sistem digital dalam salah satu dari dua nilai yang dikenali, kecuali
selama transisi.
Fungsi switching dapat dinyatakan dengan persamaan Boolean. Boolean Kompleks
persamaan dapat disederhanakan dengan aljabar jenis baru, yang populer disebut Switching
Aljabar atau Aljabar Boolean, ditemukan oleh matematikawan George Boole pada tahun 1854. Boolean
Aljabar berkaitan dengan aturan-aturan yang dengannya operasi logis dilakukan.

1.15.Gerbang Logika

Karena fungsi Boolean dinyatakan dalam operasi AND, OR, dan NOT, lebih mudah untuk
mengimplementasikan fungsi Boolean dengan tipe dasar gerbang ini. Namun, untuk semua praktis
tujuan, adalah mungkin untuk membangun jenis lain dari gerbang logika. Faktor-faktor berikut harus dipertimbangkan
untuk konstruksi jenis gerbang lainnya.

Nama Simbol Grafis Fungsi Aljabar Meja kebenaran


SEBUAH B F
F = AB 0 0 0
DAN 0 1 0
1 0 0
1 1 1
SEBUAH B F
F=A+B 0 0 0
Machine Translated by Google

ATAU 0 1 1
1 0 1
1 1 1
SEBUAH F
Inverter atau F = Aÿ 0 1
BUKAN 1 0
SEBUAH F
Penyangga F=A 0 0
1 1
SEBUAH B F
F = (AB)ÿ 0 0 1
NAND 0 1 1
0 1
11 1 0
SEBUAH B F
F = (A + B)ÿ 0 0 1
JUGA BUKAN 0 1 0
1 0 0
1 1 0
SEBUAH B F
Eksklusif-ATAU F = ABÿ + AÿB 0 0 0
(XOR) = AB 0 1 1
1 0 1
1 1 0
SEBUAH B F
Eksklusif F = AB + AÿBÿ 0 0 1
NOR (XNOR) = AB 0 1 0
1 0 0
1 1 1

1. Kelayakan dan keekonomisan pembuatan pintu gerbang dengan parameter fisik.


2. Kemungkinan memperluas ke lebih dari dua input.
3. Sifat dasar dari operator biner seperti commutability dan associability.
4. Kemampuan gerbang untuk mengimplementasikan fungsi Boolean sendiri atau bersama dengan gerbang
lainnya.
Dari 16 fungsi yang dijelaskan dalam tabel pada Gambar 3.15, kita telah melihat bahwa dua adalah sama
dengan konstan, dan empat lainnya diulang dua kali. Dua fungsi—hambatan dan implikasi, tidak praktis digunakan
sebagai gerbang standar karena kurangnya sifat komutatif atau asosiatif. Jadi, ada delapan fungsi—Transfer (atau
buffer), Complement, AND, OR, NAND, NOR,
Machine Translated by Google

Exclusive-OR (XOR), dan Equivalence (XNOR) yang dapat dianggap sebagai gerbang standar dalam desain
digital.
Simbol grafis dan tabel kebenaran dari delapan gerbang logika ditunjukkan pada Gambar di atas. Gerbang
transfer atau buffer dan komplemen atau inverter atau NOT adalah gerbang unary, yaitu, mereka memiliki input
tunggal, sedangkan gerbang logika lainnya memiliki dua atau lebih input.

1.16.Sirkuit kombinasional
Rangkaian kombinasional adalah rangkaian di mana kita menggabungkan gerbang yang berbeda dalam
rangkaian misalnya encoder, decoder, multiplexer dan demultiplexer. Beberapa karakteristik rangkaian
kombinasional adalah sebagai berikut.

Output dari rangkaian kombinasional setiap saat, hanya bergantung pada level yang ada pada
terminal input.

Rangkaian kombinasional tidak menggunakan memori apapun. Status input sebelumnya tidak
memiliki efek pada keadaan sirkuit saat ini.

Rangkaian kombinasional dapat memiliki sejumlah input dan m jumlah output.

DIAGRAM BLOK

1.17.Sirkuit Sekuensial
Sirkuit kombinasional tidak menggunakan memori apa pun. Oleh karena itu, keadaan input sebelumnya
tidak berpengaruh pada keadaan sirkuit saat ini. Tetapi rangkaian sekuensial memiliki memori sehingga
output dapat bervariasi berdasarkan input. Jenis sirkuit ini menggunakan input, output, jam, dan elemen
memori sebelumnya.

DIAGRAM BLOK
Machine Translated by Google

1.18.Penambah

Berbagai pekerjaan pemrosesan informasi dilakukan oleh komputer digital. Operasi aritmatika
adalah salah satu fungsi dasar komputer digital. Penjumlahan dua digit biner adalah yang terbanyak
operasi aritmatika dasar. Penjumlahan sederhana terdiri dari empat kemungkinan operasi dasar, yaitu 0+0 = 0,
0+1 = 1, 1+0 = 1, dan 1+1 = 10. Tiga operasi pertama menghasilkan jumlah satu digit, tetapi operasi keempat
menghasilkan jumlah yang terdiri dari dua digit. Bit signifikan yang lebih tinggi dari hasil ini disebut carry. Rangkaian
kombinasional yang melakukan penambahan dua bit seperti dijelaskan di atas disebut setengah penambah. Bila
bilangan augend dan addend mengandung digit yang lebih signifikan, carry yang diperoleh dari penambahan dua
bit ditambahkan ke pasangan bit signifikan berikutnya yang lebih tinggi. Di sini operasi penambahan melibatkan
tiga bit — bit augend, bit tambahan, dan bit carry dan menghasilkan hasil penjumlahan serta carry. Rangkaian
kombinasional yang melakukan jenis operasi penambahan ini disebut penambah penuh. Dalam pengembangan
sirkuit, dua half-adder dapat digunakan untuk membentuk full-adder.

1.18.1 Desain Half-adders


Seperti dijelaskan di atas, setengah penambah memiliki dua input dan dua output. Biarkan variabel input augend
dan addend ditunjuk sebagai A dan B, dan fungsi output ditunjuk sebagai S untuk jumlah dan C untuk carry. Tabel
kebenaran untuk fungsi di bawah ini.

Variabel Masukan Variabel Keluaran


SEBUAH B S C
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
Machine Translated by Google

Dari tabel kebenaran pada Gambar 5.2, dapat dilihat bahwa output fungsi S dan C masing-masing mirip dengan fungsi
Exclusive-OR dan AND, seperti yang ditunjukkan pada Gambar di bawah. Ekspresi Boolean adalah

S = AÿB+ABÿ dan
C = AB.

Gambar di bawah menunjukkan diagram logika untuk mengimplementasikan rangkaian half-adder.

1.18.2 Desain Penambah Penuh Sirkuit


kombinasi penambah penuh melakukan operasi penambahan tiga bit — augend, addend, dan carry sebelumnya, dan
menghasilkan output jumlah dan carry. Mari kita tentukan variabel input augend sebagai A, addend sebagai B, dan
carry sebelumnya sebagai X, dan output dijumlahkan sebagai S dan carry sebagai C. Karena ada tiga variabel input,
delapan kombinasi input yang berbeda dimungkinkan. Tabel kebenaran ditunjukkan di bawah ini sesuai dengan
fungsinya.

Variabel Masukan Variabel Keluaran


X SEBUAH B S C
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

Untuk menurunkan ekspresi Boolean yang disederhanakan dari tabel kebenaran, metode peta Karnaugh diadopsi
seperti yang ditunjukkan di bawah ini.

Aÿ Bÿ AÿB AB ABÿ
Machine Translated by Google

X' 1 1
X 1 1

Peta untuk fungsi S

Aÿ Bÿ AÿB AB ABÿ
X' 1
X 1 1 1

Peta untuk fungsi C

Ekspresi Boolean yang disederhanakan dari output adalah


S = XÿAÿB + XÿABÿ + XAÿBÿ + XAB dan
C = AB + BX + AX.
Diagram logika untuk fungsi di atas ditunjukkan di bawah ini. Diasumsikan komplemen dari
X, A, dan B tersedia di sumber input.

Perhatikan bahwa satu jenis konfigurasi diagram rangkaian kombinasional untuk penambah penuh
diwujudkan di bawah ini, dengan gerbang AND dua masukan dan tiga masukan, dan tiga gerbang OR
masukan dan empat masukan. Konfigurasi lain juga dapat dikembangkan di mana jumlah dan jenis gerbang dikurangi.
Untuk ini, ekspresi Boolean dari S dan C dimodifikasi sebagai berikut.
S = XÿAÿB + XÿABÿ + XAÿBÿ + XAB

= Xÿ (AÿB + ABÿ) + X (AÿBÿ + AB)


= Xÿ (AB) + X (AB)ÿ
= XAB
C = AB + BX + AX = AB + X (A + B)
= AB + X (AB + ABÿ + AB + AÿB)
= AB + X (AB + ABÿ + A'B)
= AB + XAB + X (ABÿ + A'B)
= AB + X (AB)
Machine Translated by Google

Diagram logika menurut ekspresi yang dimodifikasi adalah

Anda mungkin memperhatikan bahwa penambah penuh yang dikembangkan pada Gambar di atas terdiri dari dua gerbang
AND 2-masukan, dua gerbang XOR (Eksklusif-OR) 2-masukan dan satu gerbang OR 2-masukan. Ini mengandung pengurangan
jumlah gerbang serta jenis gerbang dibandingkan dengan Gambar sebenarnya. Juga, jika dibandingkan dengan rangkaian
setengah penambah, rangkaian penambah penuh dapat dibentuk dengan dua penambah setengah dan satu gerbang OR.

1.19.Decoder

Decoder adalah kebalikan dari "Encoder" yang kita lihat di tutorial terakhir. Pada dasarnya, rangkaian logika tipe kombinasional
yang mengubah data kode biner pada inputnya menjadi salah satu dari sejumlah jalur output yang berbeda, satu per satu
menghasilkan kode desimal yang setara pada outputnya. Decoder Biner memiliki input kode 2-bit, 3-bit atau 4-bit tergantung
pada jumlah jalur input data, dan n-bitdecoder memiliki 2
n
jalur keluaran.

Oleh karena itu, jika dekoder biner menerima n masukan (biasanya dikelompokkan sebagai bilangan biner atau Boolean), ia
n
mengaktifkan satu dan hanya satu dari 2 output berdasarkan input tersebut dengan semua output lainnya
dinonaktifkan. Kode keluaran dekoder biasanya memiliki lebih banyak bit daripada kode masukannya dan rangkaian "dekoder
biner" praktis meliputi, konfigurasi jalur 2-ke-4, 3-ke-8 dan 4-ke-16.

Decoder Biner mengubah input berkode menjadi output berkode, di mana kode input dan output berbeda dan dekoder tersedia
untuk "mendekode" pola input Biner atau BCD (kode 8421) menjadi kode output Desimal. Dekoder BCD-ke-Desimal yang
tersedia secara umum termasuk TTL 7442 atau CMOS 4028. Contoh dekoder baris 2-ke-4 beserta tabel kebenarannya
diberikan di bawah ini. Ini terdiri dari array empat gerbang NAND, salah satunya dipilih untuk setiap kombinasi sinyal input A
dan B.

1.19.1.Decoder Biner 2-ke-4.


Machine Translated by Google

Dalam contoh sederhana dari dekoder biner 2-ke-4 baris ini, input biner A dan B menentukan jalur output mana
dari D0 ke D3 yang "TINGGI" pada level logika "1" sedangkan output yang tersisa ditahan "RENDAH" pada
logika "0" jadi hanya satu output yang bisa aktif (TINGGI) pada satu waktu. Oleh karena itu, jalur output mana
pun yang "TINGGI" mengidentifikasi kode biner yang ada pada input, dengan kata lain "mengurai kode" input
biner dan jenis dekoder biner ini biasanya digunakan sebagai Dekoder Alamat dalam aplikasi memori
mikroprosesor.

74LS138 Dekoder Biner

Beberapa decoder biner memiliki input tambahan berlabel "Enable" yang mengontrol output dari perangkat. Hal
ini memungkinkan keluaran decoder untuk "ON" atau "OFF" dan kita dapat melihat bahwa diagram logika dari
decoder dasar identik dengan demultiplexer dasar.

Kemudian, kita dapat mengatakan bahwa dekoder biner adalah demultiplexer dengan jalur data tambahan yang
digunakan untuk mengaktifkan dekoder. Cara alternatif untuk melihat rangkaian decoder adalah dengan
menganggap input A, B dan C sebagai sinyal alamat. Setiap kombinasi A, B atau C mendefinisikan alamat unik
yang dapat mengakses lokasi yang memiliki alamat tersebut.

Terkadang diperlukan Decoder Biner dengan jumlah output lebih besar dari yang tersedia, atau jika kita hanya
memiliki perangkat kecil yang tersedia, kita dapat menggabungkan beberapa dekoder bersama-sama
Machine Translated by Google

untuk membentuk jaringan decoder yang lebih besar seperti yang ditunjukkan. Di sini dekoder biner 4-ke-16 baris yang jauh lebih besar
telah diimplementasikan menggunakan dua dekoder 3-ke-8 yang lebih kecil.

1.20.Multiplexer
Pemilih data, lebih sering disebut Multiplexer, disingkat menjadi "Mux" atau "MPX", adalah perangkat switching
logika kombinasional yang beroperasi seperti sakelar putar beberapa posisi yang bekerja sangat cepat. Mereka
menghubungkan atau mengontrol, beberapa jalur input yang disebut "saluran" yang terdiri dari 2, 4, 8 atau 16 input
individu, satu per satu ke output.

Kemudian tugas "multiplexer" adalah mengizinkan banyak sinyal untuk berbagi satu keluaran umum. Misalnya,
multiplexer 8 saluran tunggal akan menghubungkan salah satu dari delapan inputnya ke output data tunggal.
Multiplexer digunakan sebagai salah satu metode untuk mengurangi jumlah gerbang logika yang diperlukan dalam
suatu rangkaian atau ketika satu jalur data diperlukan untuk membawa dua atau lebih sinyal digital yang berbeda.

Multiplexer Digital dibangun dari sakelar analog individual terbungkus dalam paket IC tunggal yang bertentangan
dengan pemilih tipe "mekanis" seperti sakelar dan relai konvensional normal. Umumnya, multiplexer memiliki
jumlah input data yang genap, biasanya daya genap 2
, sejumlah input "kontrol" yang sesuai dengan jumlah input data dan dua, n
sesuai dengan kondisi biner dari input kontrol ini, input data yang sesuai terhubung langsung ke output. Contoh
konfigurasi Multiplexer ditunjukkan di bawah ini.

Multiplexer Saluran 4-ke-1

Mengatasi Memasukkan

B sebuah Terpilih
0 0 SEBUAH

0 1 B
1 0 C
1 1 D
Machine Translated by Google

Ekspresi Boolean untuk Multiplexer 4-ke-1 di atas dengan input A ke D dan jalur pilih data a, b diberikan
sebagai:

Q = abA + abB + abC + abD

Dalam contoh ini setiap saat hanya SATU dari empat sakelar analog yang ditutup, menghubungkan hanya
satu dari jalur input A ke D ke output tunggal di Q. Sakelar mana yang ditutup tergantung pada kode input
pengalamatan pada jalur "a" dan "b", jadi untuk contoh ini untuk memilih input B ke output di Q, alamat input
biner harus "a" = logika "1" dan "b" = logika "0".

1.21.Encoder

Enkoder Digital

Tidak seperti multiplexer yang memilih satu jalur input data individual dan kemudian mengirimkan data itu ke
jalur atau sakelar output tunggal, Digital Encoder yang lebih umum disebut Binary Encoder mengambil
SEMUA input datanya satu per satu dan kemudian mengubahnya menjadi satu output yang dikodekan. . Jadi
kita dapat mengatakan bahwa encoder biner, adalah rangkaian logika kombinasional multi-input yang
mengubah data level logika "1" pada inputnya menjadi kode biner yang setara pada outputnya.

Umumnya, encoder digital menghasilkan output kode 2-bit, 3-bit atau 4-bit tergantung pada jumlah jalur input
n
data. Encoder biner "n-bit" memiliki 2 jalur input dan jalur output n-bit
dengan tipe umum yang mencakup konfigurasi jalur 4-ke-2, 8-ke-3 dan 16-ke-4. Jalur keluaran dari encoder
digital menghasilkan ekuivalen biner dari jalur masukan yang nilainya sama dengan "1" dan tersedia untuk
mengkodekan pola masukan desimal atau heksadesimal ke kode keluaran biner atau BCD.

Encoder Biner 4-ke-2 Bit

Salah satu kelemahan utama encoder digital standar adalah mereka dapat menghasilkan kode output yang
salah ketika ada lebih dari satu input yang ada pada level logika "1". Sebagai contoh, jika kita membuat input
D1 dan D2 HIGH pada logika "1" keduanya secara bersamaan, output yang dihasilkan bukan pada "01" atau
pada "10" tetapi akan berada pada "11" yang merupakan keluaran bilangan biner yaitu berbeda dengan aslinya
Machine Translated by Google

masukan hadir. Juga, kode output dari semua logika "0" dapat dihasilkan ketika semua inputnya berada di
"0" ATAU ketika input D0 sama dengan satu.

Salah satu cara sederhana untuk mengatasi masalah ini adalah dengan "Memprioritaskan" level setiap
pin input dan jika ada lebih dari satu input pada level logika "1" kode output aktual hanya akan sesuai
dengan input dengan prioritas tertinggi yang ditentukan. Kemudian encoder digital jenis ini dikenal
secara umum sebagai Encoder Prioritas atau disingkat P-encoder .

Pengkode Prioritas

Encoder Prioritas memecahkan masalah yang disebutkan di atas dengan mengalokasikan tingkat
prioritas untuk setiap input. Output encoder prioritas sesuai dengan input aktif saat ini yang memiliki
prioritas tertinggi. Jadi ketika ada input dengan prioritas lebih tinggi, semua input lain dengan prioritas
lebih rendah akan diabaikan. Encoder prioritas hadir dalam berbagai bentuk dengan contoh encoder
prioritas 8-input bersama dengan tabel kebenarannya yang ditunjukkan di bawah ini.

Encoder Prioritas 8-ke-3 Bit

Encoder prioritas tersedia dalam bentuk IC standar dan TTL 74LS148 adalah encoder prioritas 8-ke-3
bit yang memiliki delapan input LOW (logika "0") aktif dan menyediakan kode 3-bit dari input peringkat
tertinggi pada outputnya. Encoder prioritas mengeluarkan input urutan tertinggi terlebih dahulu misalnya,
jika baris input "D2", "D3" dan "D5" diterapkan secara bersamaan, kode output akan menjadi input
"D5" ("101") karena ini memiliki urutan keluar tertinggi dari 3 masukan. Setelah input "D5" telah dihapus,
kode output tertinggi berikutnya adalah untuk input "D3" ("011"), dan seterusnya.

Tabel kebenaran untuk encoder prioritas 8-ke-3 bit diberikan sebagai:

Masukan Digital Keluaran Biner


D7 D6 D5 D4 D3 D2 D1 D0 Q2 Q1 Q0
00 0 0 0 0 0 1 000
0 0 0 0 0 0 1X00 1
0 0 0 0 0 1 XX 0 1 0
0 0 0 0 1 XXX 0 1 1
Machine Translated by Google

0 0 01 XXXX 1 00
0 0 1 XXXX 1 0 1
0 1 XXXXXX 1 1 0
1 XXXXXXX 1 1 1

Dari tabel kebenaran ini, ekspresi Boolean untuk encoder di atas dengan input D0 hingga D7 dan
outputQ0, Q1, Q2 diberikan sebagai:

Keluaran Q0

Keluaran Q1

Keluaran Q2

Kemudian ekspresi Boolean terakhir untuk encoder prioritas termasuk input nol didefinisikan sebagai:
Machine Translated by Google

Dalam praktiknya, input nol ini akan diabaikan sehingga memungkinkan implementasi ekspresi Boolean akhir untuk output
dari encoder prioritas 8-ke-3 di atas untuk dibangun menggunakan gerbang OR individu sebagai berikut.

Encoder Digital menggunakan Gerbang Logika

Sirkuit memori digital 1-bit dasar dikenal sebagai flip-flop. Itu hanya dapat memiliki dua status, baik status 1 atau status 0. Flip-
flop juga dikenal sebagai multivibrator bistabil. Flip-flop dapat diperoleh dengan menggunakan gerbang NAND atau NOR.
Representasi diagram blok umum dari flip-flop ditunjukkan pada Gambar 7.3. Ini memiliki satu atau lebih input dan dua output.
Kedua output tersebut saling melengkapi. Jika Q adalah 1 yaitu, Set, maka Q' adalah 0; jika Q adalah 0 yaitu, Reset, maka
Q' adalah 1.
Itu berarti Q dan Q' tidak bisa berada pada keadaan yang sama secara bersamaan. Jika itu terjadi secara kebetulan, itu
melanggar definisi flip-flop dan karenanya disebut kondisi tidak terdefinisi . Biasanya, keadaan Q disebut keadaan fl ip-fl op,
sedangkan keadaan Q' disebut keadaan komplementer dari flip-flop. Ketika output Q adalah 1 atau 0, itu tetap dalam keadaan
itu kecuali satu atau lebih input bersemangat untuk mempengaruhi perubahan pada output. Karena keluaran flip-flop tetap
dalam keadaan yang sama sampai pulsa pemicu diterapkan untuk mengubah keadaan, itu dapat dianggap sebagai perangkat
memori untuk menyimpan satu bit biner.
Machine Translated by Google

1.22 Jenis Flip Flop


Ada berbagai jenis operasi fl ip-fl tergantung pada bagaimana input dan pulsa clock mereka menyebabkan
transisi antara dua negara. Kita akan membahas empat jenis flip-flop yang berbeda dalam bab ini, yaitu SR, D, JK, dan
T. Pada dasarnya D, JK, dan T adalah tiga modifikasi berbeda dari SR flip-flop.

1.22.1 SR (Set-Reset) Flip-flop


Flip-flop SR memiliki dua input bernama Set (S) dan Reset (R), dan dua output Q dan Q'. Outputnya saling melengkapi,
yaitu jika salah satu output adalah 0 maka yang lain harus 1.
Ini dapat diimplementasikan menggunakan gerbang NAND atau NOR. Diagram blok dari SR flip-flop ditunjukkan pada
Gambar.

SR Flip-flop Berdasarkan Gerbang NOR


Flip-flop SR dapat dibangun dengan gerbang NOR dengan mudah dengan menghubungkan gerbang NOR kembali ke
belakang seperti yang ditunjukkan pada Gambar. Koneksi cross-coupled dari output gerbang 1 ke input gerbang 2
merupakan jalur umpan balik. Rangkaian ini tidak memiliki clock dan diklasifikasikan sebagai rangkaian sekuensial
asinkron. Tabel kebenaran untuk SR flip-flop berdasarkan gerbang NOR ditunjukkan pada tabel.

Untuk menganalisis rangkaian yang ditunjukkan pada Gambar di atas, kita harus mempertimbangkan fakta bahwa output
dari gerbang NOR adalah 0 jika salah satu inputnya adalah 1, terlepas dari input lainnya. Outputnya adalah 1 hanya jika
semua inputnya adalah 0. Output untuk semua kemungkinan kondisi seperti yang ditunjukkan pada tabel pada Gambar
7.8 dijelaskan sebagai berikut.
Machine Translated by Google

Masukan Keluaran Tindakan


S R Qn+1 Q'n+1

0 0 Qn Q'n Tidak ada perubahan

0 1 0 1 Mengatur ulang

1 0 1 0 Mengatur

1 1 0 0 Terlarang (Tidak ditentukan)


0 0 - - tak tentu

Kasus 1. Untuk S = 0 dan R = 0, fl ip-fl op tetap dalam keadaan sekarang (Qn). Artinya keadaan fl ip-fl op selanjutnya tidak
berubah, yaitu Qn+1 = 0 jika Qn = 0 dan sebaliknya. Pertama mari kita asumsikan bahwa Qn = 1 dan Q'n = 0. Jadi input
gerbang NOR 2 adalah 1 dan 0, dan oleh karena itu outputnya Q'n+1= 0. Output ini Q'n+1 = 0 diumpankan kembali sebagai
input gerbang NOR 1, sehingga menghasilkan 1 pada output, karena kedua input gerbang NOR 1 adalah 0 dan 0; jadi Qn+1
= 1 seperti yang diasumsikan semula.
Sekarang mari kita asumsikan kasus sebaliknya, yaitu, Qn = 0 dan Q'n = 1. Jadi input dari NOR
gerbang 1 adalah 1 dan 0, dan oleh karena itu outputnya Qn+1 = 0. Output Qn+1 =0 ini diumpankan kembali sebagai input
gerbang NOR 2, sehingga menghasilkan 1 pada output, sebagai kedua input NOR gerbang 2 adalah 0 dan 0; jadi Q'n+1 = 1
seperti yang diasumsikan semula. Jadi kami menemukan bahwa kondisi S = 0 dan R = 0 tidak mempengaruhi keluaran flip-
flop, yang berarti ini adalah kondisi memori dari SR fl ip-fl
op.

Kasus 2. Kondisi input kedua adalah S = 0 dan R = 1. Input 1 pada R memaksa output gerbang NOR 1 menjadi 0 (yaitu, Qn+1
= 0). Oleh karena itu kedua input gerbang NOR 2 adalah 0 dan 0 dan outputnya Q'n+1 = 1. Dengan demikian kondisi S = 0
dan R = 1 akan selalu mereset flip-flop ke 0. Sekarang jika R kembali ke 0 dengan S = 0, flip-flop akan tetap dalam keadaan
yang sama.

Kasus 3. Kondisi input ketiga adalah S = 1 dan R = 0. Input 1 pada S memaksa output gerbang NOR 2 menjadi 0 (yaitu, Q'n+1
= 0). Oleh karena itu kedua input gerbang NOR 1 adalah 0 dan 0 dan outputnya Qn+1 = 1. Dengan demikian kondisi S = 1
dan R = 0 akan selalu mengatur flip-flop menjadi 1. Sekarang jika S kembali ke 0 dengan R = 0, flip-flop akan tetap dalam
keadaan yang sama.

Kasus 4. Kondisi input keempat adalah S = 1 dan R = 1. 1 pada input R dan 1 pada input S memaksa output dari gerbang
NOR 1 dan gerbang NOR 2 menjadi 0. Oleh karena itu, kedua output dari gerbang NOR 1 dan gerbang NOR 2 adalah 0 dan
0; yaitu, Qn+1 = 0 dan Q'n+1 = 0. Oleh karena itu, kondisi S = 1 dan R = 1 melanggar fakta bahwa keluaran flip-flop akan
selalu saling melengkapi. Karena kondisi melanggar definisi dasar flip-flop, maka disebut kondisi tidak terdefinisi .

Umumnya kondisi ini harus dihindari dengan memastikan bahwa 1 tidak diterapkan secara bersamaan pada kedua input.
Machine Translated by Google

Kasus 5. Jika kasus 4 muncul sama sekali, maka S dan R keduanya kembali ke 0 dan 0 secara bersamaan, dan kemudian
salah satu gerbang NOR bertindak lebih cepat dari yang lain dan mengasumsikan keadaan. Misalnya, jika gerbang NOR 1
lebih cepat dari gerbang NOR 2, maka Qn+1 akan menjadi 1 dan ini akan membuat Q'n+1 = 0. Demikian pula, jika gerbang
NOR 2 lebih cepat dari gerbang NOR 1, maka Q'n +1 akan menjadi 1 dan ini akan membuat Qn+1 = 0.
Oleh karena itu, kondisi ini ditentukan oleh flip-flop itu sendiri. Karena kondisi ini tidak dapat dikontrol dan diprediksi maka
disebut kondisi tak tentu .

S'-R' Flip-fl op Berdasarkan Gerbang NAND


Flip-flop S'-R' dapat dibangun dengan gerbang NAND dengan menghubungkan gerbang NAND secara berurutan seperti
yang ditunjukkan pada Gambar 7.9. Pengoperasian flip-flop S'-R' dapat dianalisis dengan cara yang sama seperti yang
digunakan untuk flip-flop SR berbasis NOR. Sirkuit ini juga tidak memiliki clock dan diklasifikasikan sebagai sirkuit sekuensial
asinkron. Tabel kebenaran flip-flop S'-R' berdasarkan gerbang NAND ditunjukkan pada tabel pada Gambar di bawah.

Untuk menganalisis rangkaian yang ditunjukkan pada Gambar di atas, kita harus ingat bahwa LOW pada setiap input
gerbang NAND memaksa output menjadi TINGGI, terlepas dari input lainnya. Output dari gerbang NAND adalah 0 hanya
jika semua input dari gerbang NAND adalah 1. Keluaran untuk semua kondisi yang mungkin seperti yang ditunjukkan pada
tabel dijelaskan di bawah ini.

Masukan Keluaran Tindakan


S' R' Qn+1 Q'n+1
1 1 Qn Qn Tidak ada perubahan

1 0 0 1 Mengatur ulang

0 1 1 0 Mengatur

0 0 1 1 Terlarang (Tidak ditentukan)


1 1 - - tak tentu

Kasus 1. Untuk S' = 1 dan R' = 1, fl ip-fl op tetap dalam keadaan sekarang (Qn). Artinya keadaan flip-flop selanjutnya tidak
berubah, yaitu Qn+1 = 0 jika Qn = 0 dan sebaliknya. Pertama mari kita
Machine Translated by Google

asumsikan bahwa Qn =1 dan Q'n = 0. Jadi input gerbang NAND 1 adalah 1 dan 0, dan oleh karena itu outputnya
Qn+1 = 1. Output Qn+1 = 1 ini diumpankan kembali sebagai input gerbang NAND 2, sehingga menghasilkan 0
pada output, karena kedua input gerbang NAND 2 adalah 1 dan 1; jadi Q'n+1 = 0 seperti yang diasumsikan semula.
Sekarang mari kita asumsikan kasus yang berlawanan, yaitu, Qn = 0 dan Q'n = 1. Jadi input dari
Gerbang NAND 2 adalah 1 dan 0, dan oleh karena itu keluarannya Q'n+1 = 1. Keluaran ini Q'n+1 = 1 diumpankan
kembali sebagai masukan gerbang NAND 1, sehingga menghasilkan 0 pada keluaran, karena keduanya input
gerbang NAND 1 adalah 1 dan 1; jadi Qn+1 = 0 seperti yang diasumsikan semula. Dengan demikian kita
menemukan bahwa kondisi S' = 1 dan R' = 1 tidak mempengaruhi keluaran dari flip-flop, yang berarti ini adalah
kondisi memori dari flip-flop S'-R'.

Kasus 2. Kondisi input kedua adalah S' = 1 dan R' = 0. 0 pada input R' memaksa output gerbang NAND 2 menjadi
1 (yaitu, Q'n+1 = 1). Oleh karena itu kedua input gerbang NAND 1 adalah 1 dan 1 dan jadi
output nya Qn+1 = 0. Dengan demikian kondisi S' = 1 dan R' = 0 akan selalu mereset flip-flop ke 0. Sekarang jika
R' kembali ke 1 dengan S' = 1, flip-flop akan tetap dalam keadaan yang sama.

Kasus 3. Kondisi input ketiga adalah S' = 0 dan R' = 1. 0 pada input S' memaksa output gerbang NAND 1 menjadi
1 (yaitu, Qn+1 = 1). Oleh karena itu kedua input gerbang NAND 2 adalah 1 dan 1 dan outputnya Q'n+1 = 0. Dengan
demikian kondisi S' = 0 dan R' = 1 akan selalu mengatur flip-flop menjadi 1. Sekarang jika S ' kembali ke 1 dengan
R' = 1, flip-flop akan tetap dalam keadaan yang sama.

Kasus 4. Kondisi input keempat adalah S' = 0 dan R' = 0. 0 pada input R' dan 0 pada input S' memaksa output dari
gerbang NAND 1 dan gerbang NAND 2 menjadi 1. Oleh karena itu kedua output dari gerbang NAND 1 dan gerbang
NAND 2 adalah 1 dan 1; yaitu, Qn+1 = 1 dan Q'n+1 = 1. Oleh karena itu, kondisi S' = 0 dan R' = 0 melanggar fakta
bahwa keluaran flip-flop akan selalu saling melengkapi. Karena kondisi tersebut melanggar definisi dasar dari flip-
flop, maka disebut kondisi tidak terdefinisi
kondisi. Umumnya, kondisi ini harus dihindari dengan memastikan bahwa 0 tidak diterapkan secara bersamaan
pada kedua input.

Kasus 5. Jika kasus 4 muncul sama sekali, maka S' dan R' keduanya kembali ke 1 dan 1 secara bersamaan, dan
kemudian salah satu gerbang NAND bertindak lebih cepat dari yang lain dan mengasumsikan keadaan. Misalnya,
jika gerbang NAND 1 lebih cepat dari gerbang NAND 2, maka Qn+1 akan menjadi 1 dan ini akan membuat Q'n+1 = 0.
Demikian pula, jika gerbang NAND 2 lebih cepat dari gerbang NAND 1, maka Q'n+1 akan menjadi 1 dan ini akan
membuat Qn+1 = 0. Oleh karena itu, kondisi ini ditentukan oleh flip-flop itu sendiri. Karena kondisi ini tidak dapat
dikontrol dan diprediksi maka disebut kondisi tak tentu .
Machine Translated by Google

Jadi, membandingkan flip-flop NOR dan flip-flop NAND, kami menemukan bahwa mereka pada dasarnya
beroperasi hanya dalam mode pelengkap satu sama lain. Oleh karena itu, untuk mengonversi S'-R' berbasis NAND
flip-flop menjadi flip-flop SR berbasis NOR, kita harus menempatkan inverter pada setiap input flip-flop. Rangkaian
yang dihasilkan ditunjukkan pada Gambar di atas, yang berperilaku dengan cara yang sama seperti SR flip-flop.

1.22.2 Jam SR Flip-Flop


Umumnya, sirkuit sinkron mengubah statusnya hanya jika ada pulsa clock. Itu
pengoperasian flip-flop dasar dapat dimodifikasi dengan memasukkan input tambahan untuk mengontrol perilaku
rangkaian. Sirkuit seperti itu ditunjukkan pada Gambar di bawah ini.

Diagram blok dari flip-flop SR yang di-clock.

Rangkaian yang ditunjukkan pada Gambar di atas terdiri dari dua gerbang AND. Input clock terhubung ke
kedua gerbang AND, menghasilkan output LOW ketika input clock LOW. Dalam situasi ini, perubahan input S dan
R tidak akan mempengaruhi keadaan (Q) flip-flop. pada
sisi lain, jika input clock HIGH, perubahan S dan R akan dilewatkan oleh gerbang AND dan akan menyebabkan
perubahan output (Q) dari flip-flop. Dengan cara ini, informasi apapun, baik 1 atau 0, dapat disimpan dalam flip-flop
dengan menerapkan input clock TINGGI dan disimpan untuk periode waktu yang diinginkan dengan menerapkan
LOW pada input clock. Jenis flip-flop ini disebut flip-flop SR clock. Flip-flop SR clock seperti itu terdiri dari dua
gerbang AND dan dua gerbang NOR ditunjukkan pada Gambar di bawah.
Machine Translated by Google

Flip-flop SR berbasis NOR yang di-clock

Sekarang flip-flop SR yang sama dapat dibangun menggunakan gerendel NAND dasar dan dua gerbang NAND
lainnya. Input S dan R mengontrol status flip-flop dengan cara yang sama seperti yang dijelaskan sebelumnya
untuk flip-flop SR yang tidak di-clock. Namun, flip-flop hanya merespons ketika jam
sinyal terjadi. Input pulsa clock bertindak sebagai sinyal aktif untuk dua input lainnya. Selama input clock tetap 0
output dari gerbang NAND 1 dan 2 tetap pada logika 1. Level 1 ini pada input dari flip flop SR berbasis NAND
dasar mempertahankan keadaan saat ini.

Simbol logika dari SR flip-flop ditunjukkan pada Gambar di bawah. Ini memiliki tiga input: S, R,
dan CLK. Input CLK ditandai dengan segitiga kecil. Segitiga adalah simbol yang menunjukkan fakta bahwa
rangkaian merespons tepi atau transisi pada input CLK.

Dengan asumsi bahwa input tidak berubah selama adanya pulsa clock, kita dapat menyatakan kerja flip-flop SR dalam
bentuk tabel kebenaran pada Gambar 7.16. Di sini, Sn dan Rn
menyatakan input dan Qn output selama waktu bit n . Qn+1 menunjukkan output setelah pulsa lewat, yaitu, dalam
waktu bit n + 1.

Masukan Keluaran
S R Qn+1
0 0 Qn
0 1 0
1 0 1
1 1 -

Kasus 1. Jika Sn = Rn = 0, dan pulsa clock tidak diterapkan, keluaran flip-flop tetap dalam keadaan sekarang.
Bahkan jika Sn = Rn = 0, dan pulsa clock diterapkan, output pada akhir pulsa clock sama dengan output sebelum
pulsa clock, yaitu Qn+1 = Qn. Baris pertama tabel menunjukkan situasi itu.
Machine Translated by Google

Kasus 2. Untuk Sn = 0 dan Rn = 1, jika pulsa clock diterapkan (yaitu, CLK = 1), output gerbang NAND 1
menjadi 1; sedangkan output gerbang NAND 2 akan menjadi 0. Sekarang 0 pada input gerbang NAND 4
memaksa output menjadi 1, yaitu, Q' = 1. Ini masuk ke input gerbang NAND 3 untuk membuat kedua input
gerbang NAND 3 sebagai 1, yang memaksa output gerbang NAND 3 menjadi 0, yaitu, Q = 0.

Kasus 3. Untuk Sn = 1 dan Rn = 0, jika pulsa clock diterapkan (yaitu, CLK = 1), output gerbang NAND 2
menjadi 1; sedangkan output gerbang NAND 1 akan menjadi 0. Sekarang 0 pada input gerbang NAND 3
memaksa output menjadi 1, yaitu, Q = 1. Ini menuju ke input gerbang NAND 4 untuk membuat kedua input
Gerbang NAND 4 sebagai 1, yang memaksa keluaran gerbang NAND 4 menjadi 0, yaitu, Q' = 0.

Kasus 4. Untuk Sn = 1 dan Rn = 1, jika pulsa clock diterapkan (yaitu, CLK = 1), output dari gerbang NAND 2
dan gerbang NAND 1 menjadi 0. Sekarang 0 pada input kedua gerbang NAND 3 dan gerbang NAND 4
memaksa output dari kedua gerbang menjadi 1, yaitu, Q = 1 dan Q' = 1. Ketika input CLK kembali ke 0
(sementara S dan R tetap pada 1), tidak mungkin untuk tentukan keadaan selanjutnya, karena tergantung
pada apakah keluaran gerbang 1 atau gerbang 2 menjadi 1 terlebih dahulu.

1.22.3 Jam D Flip-Flop


Flip-flop D hanya memiliki satu masukan yang disebut sebagai masukan D, atau masukan data, dan dua
keluaran seperti biasa Q dan Q'. Ini mentransfer data pada input setelah penundaan satu pulsa clock pada output Q.
Jadi dalam beberapa kasus input disebut sebagai input delay dan flip-flop mendapat nama delay (D) flip-flop.
Ini dapat dengan mudah dibangun dari SR flip-flop hanya dengan memasukkan inverter antara S dan R
sedemikian rupa sehingga input inverter berada di ujung S dan output inverter berada di ujung R. Kita dapat
menghilangkan kondisi tidak terdefinisi, yaitu , kondisi S = R = 1, dari SR flip-flop di D flip-flop. Flip-flop D
digunakan sebagai perangkat penundaan atau sebagai kait untuk menyimpan satu bit informasi biner. Tabel
kebenaran D flip flop diberikan dalam tabel pada Gambar 7.23. Struktur flip-flop D ditunjukkan pada Gambar
7.22, yang sedang dibangun menggunakan gerbang NAND. Struktur yang sama dapat dibangun hanya dengan
menggunakan gerbang NOR.
Machine Translated by Google

Memasukkan Keluaran
Dn Qn+1
0 0
1 1

Kasus 1. Jika input CLK rendah, nilai input D tidak berpengaruh, karena input S dan R dari flip-flop NAND dasar disimpan
sebagai 1.

Kasus 2. Jika CLK = 1, dan D = 1, gerbang NAND 1 menghasilkan 0, yang memaksa output gerbang NAND 3 sebagai 1. Di
sisi lain, kedua input gerbang NAND 2 adalah 1, yang memberikan output gerbang 2 sebagai 0. Oleh karena itu, output
gerbang NAND 4 dipaksa menjadi 1, yaitu Q = 1, sedangkan kedua input gerbang 5 adalah 1 dan outputnya adalah 0, yaitu,
Q' = 0. Oleh karena itu , kami menemukan bahwa ketika D = 1, setelah satu pulsa clock melewati Q = 1, yang berarti output
mengikuti D.

Kasus 3. Jika CLK = 1, dan D = 0, gerbang NAND 1 menghasilkan 1. Oleh karena itu kedua input gerbang NAND 3 adalah
1, yang memberikan output gerbang 3 sebagai 0. Di sisi lain, D = 0 memaksa output gerbang NAND 2 menjadi 1. Oleh
karena itu output gerbang NAND 5 dipaksa menjadi 1, yaitu, Q' = 1, sedangkan kedua input gerbang 4 adalah 1 dan
outputnya adalah 0, yaitu, Q = 0. Oleh karena itu, kami menemukan bahwa ketika D = 0, setelah satu pulsa clock melewati
Q = 0, yang berarti output kembali mengikuti D.

1.22.4 JK flip-flop
Flip-flop JK memiliki karakteristik yang sangat mirip dengan flip-flop SR. Satu-satunya perbedaan adalah bahwa kondisi
tidak terdefinisi untuk SR flip-flop, yaitu, kondisi Sn = Rn = 1, juga termasuk dalam kasus ini.
Input J dan K berperilaku seperti input S dan R untuk mengatur dan mereset flip-flop masing-masing. Ketika J = K = 1, flip-
flop dikatakan dalam keadaan toggle, yang berarti output beralih ke keadaan komplementernya setiap kali sebuah jam lewat.

Input datanya adalah J dan K, yang masing-masing di AND dengan Q' dan Q untuk mendapatkan input untuk S
dan R. Flip-flop JK yang diperoleh ditunjukkan pada Gambar di bawah. Tabel kebenaran dari flip-flop seperti itu.
Machine Translated by Google

Masukan Keluaran
Jn Kn Qn+1
0 0 Qn
0 1 0
1 0 1
1 1 Q'n

Kasus 1. Ketika jam diterapkan dan J = 0, berapa pun nilai Q'n (0 atau 1), output gerbang NAND 1 adalah 1.
Demikian pula, ketika K = 0, berapa pun nilai Qn (0 atau 1), output gerbang 2 juga 1. Oleh karena itu, ketika J
= 0 dan K = 0, input ke flip-flop dasar adalah S = 1 dan R = 1.
Kondisi ini memaksa flip-flop untuk tetap dalam keadaan yang sama.

Kasus 2. Ketika jam diterapkan dan J = 0 dan K = 1 dan keadaan flip-flop sebelumnya direset (yaitu, Qn = 0
dan Q'n = 1), maka S = 1 dan R = 1. Karena S = 1 dan R = 1, flip-flop dasar tidak mengubah keadaan dan
tetap dalam keadaan reset. Tetapi jika flip-flop dalam kondisi set (yaitu, Qn = 1 dan Q'n = 0), maka S = 1 dan
R = 0. Karena S = 1 dan R = 0, flip-flop dasar berubah keadaannya dan reset.

Kasus 3. Ketika jam diterapkan dan J = 1 dan K = 0 dan keadaan flip-flop sebelumnya direset (yaitu, Qn = 0
dan Q'n = 1), maka S = 0 dan R = 1. Karena S = 0 dan R = 1, op fl ip-fl dasar mengubah statusnya dan menuju
ke status yang ditetapkan. Tetapi jika flip-flop sudah dalam kondisi set (yaitu, Qn = 1 dan Q'n = 0), maka S = 1
dan R = 1. Karena S = 1 dan R = 1, flip-flop dasar tidak mengubah keadaannya dan tetap dalam keadaan
yang ditetapkan.

Kasus 4. Ketika jam diterapkan dan J = 1 dan K = 1 dan keadaan flip-flop sebelumnya direset (yaitu, Qn = 0
dan Q'n = 1), maka S = 0 dan R = 1. Karena S = 0 dan R = 1, flip-flop dasar mengubah keadaannya dan
menuju ke keadaan yang ditetapkan. Tetapi jika flip-flop sudah dalam kondisi set (yaitu, Qn =
Machine Translated by Google

1 dan Q'n = 0), maka S = 1 dan R = 0. Karena S = 1 dan R = 0, flip-flop dasar mengubah statusnya dan
beralih ke status reset. Jadi kami menemukan bahwa untuk J = 1 dan K = 1, flip-flop mengubah statusnya
dari set ke reset dan sebaliknya. Toggle berarti beralih ke keadaan sebaliknya.

1.22.5 T Flip Flop


Dengan sedikit modifikasi flip-flop JK, kita dapat membuat flip-flop baru yang disebut flip-flop T.
Jika dua input J dan K dari flip-flop JK diikat bersama, ini disebut sebagai flip-flop T.
Oleh karena itu, flip-flop T hanya memiliki satu input T dan dua output Q dan Q'. Nama flip-flop T sebenarnya
menunjukkan fakta bahwa flip-flop memiliki kemampuan untuk beralih. Ini sebenarnya hanya memiliki dua
status — status sakelar dan status memori . Karena hanya ada dua keadaan, flip flop T adalah pilihan yang
sangat baik untuk digunakan dalam desain penghitung dan dalam desain rangkaian sekuensial di mana
switching operasi diperlukan. Tabel kebenaran dari flip-flop T diberikan di bawah ini.

T Qn Qn+1
0 0 0
0 1 1
1 0 1
1 1 0

Jika input T dalam keadaan 0 (yaitu, J = K = 0) sebelum pulsa clock, output Q tidak akan berubah dengan
pulsa clock. Di sisi lain, jika input T dalam keadaan 1 (yaitu, J = K = 1) sebelum pulsa clock, output Q akan
berubah menjadi Q' dengan pulsa clock. Dengan kata lain, kita dapat mengatakan bahwa, jika T = 1 dan
perangkat di-clock, maka output mengubah statusnya.
Tabel kebenaran menunjukkan bahwa ketika T = 0, maka Qn+1 = Qn, yaitu keadaan selanjutnya
sama dengan keadaan sekarang dan tidak terjadi perubahan. Ketika T = 1, maka Qn+1 = Q'n, yaitu, keadaan
flip-flop terkomplemen. Diagram rangkaian flip-flop T ditunjukkan pada Gambar di bawah.

1.23.Edge dipicu
Sebuah pulsa clock pergi dari 0 ke 1 dan kemudian kembali dari 1 ke 0. Gambar 7.46 menunjukkan dua
transisi dan mereka didefinisikan sebagai tepi positif (transisi 0 ke 1) dan tepi negatif (transisi 1 ke 0). Istilah
edge-triggered berarti bahwa flip-flop mengubah statusnya hanya pada sisi positif atau negatif dari pulsa
clock.
Machine Translated by Google

Salah satu cara untuk membuat flip-flop hanya menanggapi tepi pulsa clock adalah dengan
menggunakan kopling kapasitif. Sirkuit RC ditunjukkan pada Gambar 7.47, yang dimasukkan ke dalam
input clock dari flip flop. Dengan desain yang disengaja, konstanta waktu RC dibuat jauh lebih kecil dari
lebar pulsa clock. Kapasitor dapat mengisi penuh ketika jam menjadi TINGGI. Pengisian eksponensial
ini menghasilkan lonjakan positif yang sempit melintasi resistor. Kemudian, trailing edge dari pulsa
menghasilkan lonjakan negatif yang sempit. Sirkuit dirancang sedemikian rupa sehingga salah satu
paku (baik positif atau negatif) diabaikan dan pemicu tepi terjadi karena lonjakan lainnya.

1.24.Tuan-Budak
D-latch yang di-clock memecahkan beberapa masalah penyimpanan output dari rangkaian kombinasional,
tetapi tidak semuanya. Khususnya, jika D berubah sementara C benar, nilai baru D akan muncul pada
output. Umumnya bukan ini yang diinginkan. Jika nilai yang disimpan dapat berubah status lebih dari
sekali selama satu pulsa clock, hasilnya adalah bahaya yang mungkin menimbulkan kesalahan di
kemudian hari di sirkuit. Kita harus merancang sirkuit sehingga keadaan hanya dapat berubah sekali
per siklus clock. Ini dapat dicapai dengan menghubungkan dua kait bersama-sama seperti yang
ditunjukkan pada Gambar 6. Setengah kiri dari rangkaian adalah kait-D yang di-clock dari bagian
sebelumnya. Bagian kanan sirkuit adalah kait SR clock; namun, sinyal clock untuk bagian output adalah
sinyal clock input yang dibalik. Output dari perangkat ini hanya dapat berubah sekali per siklus clock.
Perubahan terjadi segera setelah tepi jatuh dari siklus jam.

Inilah alasannya: Dimulai dengan jam rendah, bagian kiri rangkaian tidak dapat mengubah status karena
input dihambat oleh jam rendah. Gerbang AND mencegah input mencapai gerendel. Bagian kanan
sirkuit dapat berubah karena "melihat" jam yang tinggi, tetapi inputnya berasal dari kait di sebelah kiri,
dan mereka tidak dapat berubah.

Ketika sinyal clock menjadi tinggi, input D dapat mengubah status kait kiri. Penundaan satu gerbang
kemudian, input jam dari kait kanan menjadi rendah. Karena setidaknya ada dua penundaan gerbang
melalui kait D yang merupakan bagian kiri dari rangkaian, kait kanan tidak dapat mengubah status
sebelum sinyal clocknya menjadi rendah. Dengan sinyal clock tinggi, D dapat berubah, dan kait kiri
akan berubah juga. Namun, outputnya tidak akan berubah.
Machine Translated by Google

Ketika jam kembali rendah, input R dan S dari kait keluaran akan digerakkan oleh nilai apa pun yang disimpan
oleh kait pertama pada saat itu. Output dari rangkaian akan berubah untuk mencerminkan
nilai D pada saat jam membuat transisi tinggi ke rendah. Bereksperimenlah dengan rangkaian dan amati
bahwa output berubah paling banyak sekali per siklus clock.

Output dari flip-flop master-slave dapat berubah hanya pada tepi jatuh (atau naik, jika dirancang seperti itu)
dari pulsa clock. Itu sebabnya kami menyebutnya flip-flop, bukan gerendel.

Gambar 6-B.Simbol untuk flip-flop D.

Tanenbaum [TANE99] berhati-hati untuk memanggil perangkat yang dipicu level dan flip-flop perangkat yang
dipicu oleh tepi. Tidak semua penulis sama persis dalam perbedaan ini.

Simbol untuk D flop-flop ditunjukkan pada Gambar 6-B. Segitiga pada input jam menunjukkan bahwa perangkat
ini mengubah status hanya pada transisi jam. Gelembung negasi menunjukkan bahwa perubahan berada di
"negatif" atau jatuh tepi jam. Flip-flop master-slave adalah desain yang memadai untuk flip-flop D. Ada jenis
sandal jepit lain, yang tidak dipelajari di sini, yang tidak berfungsi. Flop-flop JK, misalnya, menunjukkan
fenomena yang dikenal sebagai one-catching dalam konfigurasi master-slave. Yang palsu pada input akan
dikunci dan disebarkan ke output bahkan jika input kembali ke nol sebelum akhir periode clock.

Penghitung adalah salah satu jenis jaringan sekuensial yang paling sederhana. Sebuah pencacah biasanya
dibangun dari satu atau lebih flip-flop yang mengubah keadaan dalam urutan yang ditentukan ketika pulsa input:
Machine Translated by Google

diterima. Penghitung yang digerakkan oleh jam dapat digunakan untuk menghitung jumlah siklus jam.
Karena pulsa clock terjadi pada interval yang diketahui, pencacah dapat digunakan sebagai instrumen
untuk mengukur waktu dan periode frekuensi. Counter dapat secara luas diklasifikasikan menjadi tiga kategori:
(i) Penghitung asinkron dan sinkron.
(ii) Penghitung tunggal dan multimode.
(iii) Penghitung modulus.
Penghitung asinkron sederhana dan mudah dalam operasi dan konstruksi dan biasanya membutuhkan
perangkat keras dalam jumlah minimum. Dalam pencacah asinkron, setiap flip flop dipicu oleh flip-flop
sebelumnya, dan karenanya kecepatan operasi terbatas. Sebenarnya, waktu penyelesaian penghitung
adalah jumlah kumulatif dari waktu penyelesaian individu dari sandal jepit. Jenis pencacah ini juga disebut
pencacah riak atau serial .
Batasan kecepatan penghitung asinkron dapat diatasi dengan menerapkan pulsa jam
secara bersamaan ke semua flip-flop. Hal ini menyebabkan settling time dari flip-flop sama dengan delay
propagasi dari satu flip-flop. Peningkatan kecepatan biasanya dicapai dengan harga perangkat keras yang
meningkat. Jenis pencacah ini juga dikenal sebagai pencacah paralel .
Penghitung dapat dirancang sedemikian rupa sehingga isi penghitung maju satu dengan setiap
pulsa clock; dan dikatakan beroperasi dalam mode hitung . Hal sebaliknya juga dimungkinkan, ketika
penghitung dikatakan beroperasi dalam mode hitung mundur . Dalam kedua kasus, penghitung dikatakan
sebagai penghitung mode tunggal. Jika rangkaian pencacah yang sama dapat dioperasikan baik dalam
mode UP dan DOWN, hal itu disebut pencacah multimode.
Penghitung modulus ditentukan berdasarkan jumlah status yang dapat mereka hitung.
Jenis pencacah ini lagi dapat diklasifikasikan menjadi dua jenis: Mod N dan MOD < N. Misalnya, jika ada n
bit maka jumlah maksimum yang dihitung dapat 2n atau N. Jika pencacah dirancang sedemikian rupa
sehingga dapat menghitung hingga 2n atau N menyatakan, ini disebut penghitung MOD N atau MOD 2n .
Di sisi lain, jika pencacah dirancang untuk menghitung urutan kurang dari nilai maksimum yang dapat
dicapai, itu disebut pencacah MOD <N atau MOD <2n .

1.25 COUNTER ASYNCHRONOUS (SERIAL ATAU RIPPLE)


Rangkaian pencacah paling sederhana dapat dibangun menggunakan T flip-flop karena fitur sakelar secara
alami cocok untuk implementasi operasi pencacahan. JK flip-fl ps juga dapat digunakan dengan properti
toggle di tangan. Flip-flop lain seperti D atau SR juga dapat digunakan, tetapi dapat menyebabkan desain
yang lebih kompleks.
Pada pencacah ini semua flip-flop tidak digerakkan oleh pulsa clock yang sama. Di sini, jam
pulsa diterapkan ke flip-flop pertama; yaitu, status bit paling tidak signifikan dari penghitung, dan
flip-flop yang berurutan dipicu oleh output dari flip-flop sebelumnya. Oleh karena itu penghitung memiliki
waktu penyelesaian kumulatif, yang membatasi kecepatan operasinya. Tahap pertama penghitung
mengubah keadaannya terlebih dahulu dengan penerapan pulsa clock ke flip-flop dan berturut-turut
flip-flop mengubah keadaan mereka pada gilirannya menyebabkan efek riak dari jam plus. sebagai
sinyal merambat melalui counter dalam mode riak , itu disebut counter riak.
Machine Translated by Google

1.25.1 Penghitung Asinkron (atau Riak)


Gambar di bawah menunjukkan pencacah 3-bit yang mampu menghitung dari 0 hingga 7. Input clock dari tiga flip-flop
dihubungkan secara kaskade. Input T dari setiap flip-flop terhubung ke konstanta 1, yang berarti bahwa keadaan flip-
flop akan beralih (mundur) pada setiap sisi negatif dari clock-nya.
Kami berasumsi bahwa tujuan dari rangkaian ini adalah untuk menghitung jumlah pulsa yang terjadi pada input utama
yang disebut CLK (Jam). Dengan demikian input clock dari flip-flop pertama terhubung ke garis Clock . Dua flip-flop
lainnya memiliki input clock yang digerakkan oleh output Q dari flip-flop sebelumnya. Oleh karena itu, mereka mengubah
statusnya setiap kali flip-flop sebelumnya mengubah statusnya dari Q = 1 menjadi Q = 0, yang menghasilkan tepi negatif
dari sinyal Q.
Gambar (b) menunjukkan diagram waktu untuk pencacah. Nilai Q0 matikan sekali setiap siklus clock.
Perubahan terjadi segera setelah tepi negatif sinyal Jam . Penundaan ini disebabkan oleh penundaan propagasi melalui
flip-flop. Karena flip-flop kedua di-clock oleh Q0, nilai Q1 berubah segera setelah tepi negatif dari sinyal Q0 . Demikian
pula, nilai Q2 berubah segera setelah tepi negatif dari sinyal Q1 . Jika kita melihat nilai Q2 Q1 Q0

sebagai hitungan, maka diagram waktu menunjukkan bahwa urutan pencacahan adalah 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2,
dan seterusnya. Rangkaian ini merupakan pencacah modulo-8. Karena menghitung dalam arah ke atas, kami menyebut
rangkaian ini sebagai penghitung atas.

Penghitung pada Gambar di atas memiliki tiga tahap, masing-masing terdiri dari satu flip-flop. Hanya tahap pertama
yang merespons langsung ke sinyal Jam. Oleh karena itu kita dapat mengatakan bahwa tahap ini disinkronkan dengan
jam. Dua tahap lainnya merespons setelah penundaan tambahan. Misalnya, saat count = 3, pulsa clock berikutnya akan
mengubah hitungan menjadi 4. Sekarang perubahan ini membutuhkan ketiga flip-flop untuk
Machine Translated by Google

beralih negara mereka. Perubahan Q0 diamati hanya setelah penundaan propagasi dari tepi negatif pulsa clock.
Flip -flop Q1 dan Q2 belum mengubah statusnya. Oleh karena itu, untuk periode yang singkat, hitungannya adalah
Q2Q1Q0 = 010.
Perubahan Q1 muncul setelah penundaan propagasi kedua, dan pada saat itu hitungannya adalah
Q2Q1Q0 = 000. Akhirnya, perubahan Q2 terjadi setelah penundaan ketiga, dan karenanya keadaan stabil
rangkaian tercapai dan hitungannya adalah Q2Q1Q0 = 100.
Tabel di bawah ini menunjukkan urutan keadaan biner yang akan diikuti oleh flip-flop sebagai jam
pulsa diterapkan terus menerus. Sebuah pencacah biner n-bit mengulangi urutan pencacahan untuk setiap pulsa
clock 2n (n = jumlah flip-flop) dan memiliki status diskrit dari 0 hingga 2n-1.

Negara Kontra Q2 Q1 Q0
0 0 0 0
1 0 0 1
2 0 1 0
3 0 1 1
4 1 0 0
5 1 0 1
6 1 1 0
7 1 1 1
Hitung urutan penghitung riak biner 3-bit

1.25.2 Penghitung Asinkron (atau Riak) Dengan Modulus < 2n


Pencacah riak yang ditunjukkan pada Gambar 9.1 adalah pencacah MOD N atau MOD 2n , di mana n adalah
jumlah flip-flop dan N adalah jumlah urutan pencacah. Ini adalah jumlah MOD maksimum yang dapat dicapai
dengan menggunakan n flip-flop. Namun dalam prakteknya seringkali dibutuhkan pencacah yang memiliki MOD-
number kurang dari 2n. Dalam kasus seperti itu, penghitung akan melewati keadaan yang biasanya merupakan
bagian dari urutan penghitungan. Penghitung riak MOD-6 ditunjukkan pada Gambar 9.4.
Dalam rangkaian yang ditunjukkan pada Gambar 9.4(a), tanpa gerbang NAND, pencacah berfungsi
sebagai pencacah riak biner MOD-8, yang dapat menghitung dari 000 hingga 111. Namun, ketika gerbang NAND
digabungkan dalam rangkaian seperti yang ditunjukkan pada Gambar 9.4(a) urutannya diubah sebagai berikut :
cara:
Machine Translated by Google

1. Output gerbang NAND terhubung ke input clear dari setiap flip-flop. Selama
gerbang NAND menghasilkan output yang tinggi , itu tidak akan berpengaruh pada penghitung. Tetapi ketika
output gerbang NAND menjadi rendah, itu akan menghapus semua flip-flop, dan penghitung akan
segera pergi ke negara 000.
2. Keluaran Q2, Q1, dan Qÿ0 diberikan sebagai masukan ke gerbang NAND. NAND
output terjadi rendah setiap kali Q2Q1Q0 = 110. Kondisi ini akan terjadi pada jam keenam
detak. Rendah pada output gerbang NAND akan menghapus penghitung ke keadaan 000 . Setelah flip-flop
dibersihkan, output gerbang NAND kembali ke 1.
3. Oleh karena itu, sekali lagi, siklus dari urutan penghitungan yang diperlukan berulang.
Meskipun penghitung beralih ke status 110, penghitung tetap di sana hanya selama beberapa nanodetik sebelum didaur
ulang ke status 000. Oleh karena itu kita dapat mengatakan bahwa penghitung menghitung dari 000 hingga 101, ia
melewati status 110 dan 111; sehingga berfungsi sebagai penghitung MOD-6.
Dari bentuk gelombang yang ditunjukkan di atas, dapat dicatat bahwa output Q1 berisi lonjakan atau kesalahan
yang disebabkan oleh kemunculan sesaat dari keadaan 110 sebelum operasi pembersihan berlangsung. Kesalahan ini
pada dasarnya sangat sempit (karena penundaan propagasi gerbang NAND).
Dapat dicatat bahwa output Q2 memiliki frekuensi sama dengan 1/6 dari frekuensi input. Jadi kita dapat mengatakan bahwa
pencacah MOD-6 telah membagi frekuensi input dengan 6.
Untuk membuat pencacah MOD-N, langkah-langkah umum berikut harus diikuti.
1. Temukan jumlah sandal jepit (n) yang diperlukan untuk nomor MOD yang diinginkan menggunakan persamaan
2n-1 < N < 2n.

2. Kemudian hubungkan semua n flip-flop sebagai pencacah riak.


3. Temukan bilangan biner untuk N.
Machine Translated by Google

4. Hubungkan semua keluaran flip-flop, dimana Q = 1, serta Qÿ = 1, ketika hitungannya adalah N, sebagai
masukan ke gerbang NAND.
5. Hubungkan output gerbang NAND ke input clear dari setiap flip-flop.
Ketika penghitung mencapai status ke-N, output gerbang NAND menjadi rendah, mengatur ulang
semua flip-flop ke 0. Jadi penghitung menghitung dari 0 hingga N – 1, memiliki N status.

1.25.3 Penghitung Turun Asinkron (atau Riak)


Penghitung turun menggunakan n flip-flop menghitung ke bawah mulai dari hitungan maksimum (2n – 1) hingga
nol. Urutan hitungan dari penghitung turun 3-bit seperti itu diberikan pada Tabel di bawah ini.

Negara Kontra Q2 Q1 Q0
0 0 0 0
1 0 0 1
2 0 1 0
3 0 1 1
4 1 0 0
5 1 0 1
6 1 1 0
7 1 1 1
Hitung urutan penghitung riak biner 3-bit

1.25.4 Penghitung Naik-turun Asinkron (atau Riak)


Kami telah mempertimbangkan up-counter dan down-counter secara terpisah. Tetapi kedua unit dapat digabungkan
dalam satu penghitung naik-turun. Unit gabungan penghitung naik-turun seperti itu dapat menghitung baik ke atas
maupun ke bawah. Pencacah seperti ini disebut juga pencacah multimode. Di pencacah atas setiap flip-flop dipicu
oleh output normal dari flip-flop sebelumnya; sedangkan pada pencacah bawah, setiap flip-flop dipicu oleh keluaran
komplemen dari flip-flop sebelumnya.
Namun, di kedua penghitung, flip-flop pertama dipicu oleh pulsa input.
Penghitung naik-turun 3-bit ditunjukkan di bawah ini. Pengoperasian penghitung semacam itu dikendalikan
oleh input kontrol naik-turun. Urutan pencacahan pencacah atas-bawah dalam dua mode pencacahan diberikan
pada Tabel 9.3. Dari diagram rangkaian kami menemukan bahwa tiga gerbang logika diperlukan per tahap untuk
mengalihkan masing-masing tahap dari mode hitung naik ke mode hitung mundur. Gerbang logika digunakan
untuk mengizinkan keluaran tidak terbalik atau keluaran terbalik dari satu flip-flop ke masukan jam dari flip-flop
berikut, tergantung pada status masukan kontrol. Inverter telah dimasukkan di antara garis kontrol hitung-naik dan
garis kontrol hitung-mundur untuk memastikan bahwa hitung-naik dan hitung-mundur tidak dapat secara bersamaan
dalam keadaan TINGGI.
Machine Translated by Google

Modus COUNT-UP Modus COUNT-BAWAH


Status QC 0 QB QA Negara QC QB QA
0 0 0 711 1
1 0 0 1 6 1 1 0
2 0 1 0 5 1 0 1
3 0 1 1 4 1 0 0
4 1 0 0 3 0 1 1
5 1 0 1 2 0 1 0
6 1 1 0 1 0 0 1
7 1 1 1 0 0 0 0

Ketika garis count-up/down ditahan TINGGI, gerbang AND yang lebih rendah akan dinonaktifkan dan outputnya
akan menjadi nol. Jadi mereka tidak akan mempengaruhi output dari gerbang OR. Pada saat yang sama gerbang
AND atas akan diaktifkan. Oleh karena itu, QA akan melewati gerbang OR dan masuk ke input clock dari flip-flop
B. Demikian pula, QB akan di-gated ke input clock dari flip-flop C. Jadi, saat pulsa input diterapkan, pencacah akan
menghitung dan mengikuti urutan pencacahan biner alami dari 000 hingga 111.

Demikian pula, dengan garis count-up/down menjadi logika 0, gerbang AND atas akan menjadi
dinonaktifkan dan gerbang AND yang lebih rendah diaktifkan, memungkinkan QÿA dan QÿB melewati input clock
dari flip-flop berikut. Oleh karena itu, dalam kondisi ini penghitung akan menghitung dalam mode turun, karena
pulsa input diterapkan.

1.25.2 Penghitung Sinkron (Paralel)


Pencacah riak atau asinkron adalah yang paling sederhana untuk dibuat, tetapi frekuensi operasi tertingginya
terbatas karena aksi riak. Setiap flip-flop memiliki waktu tunda. Dalam pencacah riak, waktu tunda ini adalah
tambahan dan total waktu 'pengendapan' untuk pencacah kira-kira adalah produk dari
Machine Translated by Google

waktu tunda satu flip-flop dan jumlah total flip-fl ops. Sekali lagi, ada kemungkinan gangguan terjadi pada
output gerbang decoding yang digunakan dengan penghitung riak.
Kedua masalah ini dapat diatasi, jika semua flip-flop di-clock secara sinkron.
Rangkaian yang dihasilkan dikenal sebagai pencacah sinkron. Penghitung sinkron dapat dirancang
untuk setiap urutan hitungan (tidak perlu biner lurus). Ini dapat dirancang sebagai berikut:
pendekatan sistematis. Sebelum kita membahas metode formal desain untuk counter tersebut, kita akan
mempertimbangkan metode intuitif.

Sebuah counter sinkron 4-bit dengan carry paralel ditunjukkan di atas. Dalam rangkaian ini, input clock dari
semua flip-flop diikat bersama sehingga sinyal clock input dapat diterapkan secara bersamaan ke setiap flip-
flop. Hanya flip-flop LSB 0 yang input J-nya terhubung secara permanen ke logika 1 (yaitu, VCC), sedangkan
input J dari flip-flop lain digerakkan oleh beberapa kombinasi output flip-flop. Input J dari flip-flop 1
dihubungkan ke output Q0 dari flip-flop 0; input J dari flip flop 2 terhubung dengan output yang dioperasikan
AND dari Q0 dan Q1. Demikian pula, input J dari 3 flip flop dihubungkan dengan output yang dioperasikan
AND dari Q0, Q1, dan Q2.
Dari rangkaian, kita dapat melihat bahwa flip-flop 0 berubah statusnya dengan transisi negatif
dari setiap pulsa clock. Flip-flop 1 mengubah statusnya hanya ketika nilai Q0 adalah 1 dan negatif
transisi pulsa clock terjadi. Demikian pula, flip-flop 2 mengubah statusnya hanya ketika Q0 dan Q1 adalah 1
dan transisi tepi negatif dari pulsa clock terjadi. Dengan cara yang sama, flip-flop 3 mengubah statusnya
ketika Q0 = Q1 = Q2 = 1 dan ketika ada transisi negatif pada input clock. Urutan hitungan penghitung
diberikan di bawah ini

Negara Q3 Q2 Q1 Q0
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
Machine Translated by Google

3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1
10 1 0 1 0
11 1 0 1 1
12 1 1 0 0
13 1 1 0 1
14 1 1 1 0
15 1 1 1 1
0 0 0 0 0

Hitung urutan pencacah sinkron biner 4-bit

1.25.2.1 Penghitung Turun Sinkron Sebuah


pencacah turun paralel dapat dibuat untuk menghitung mundur dengan menggunakan keluaran terbalik dari flip-
flop untuk memasukkan berbagai gerbang logika. Bahkan sirkuit yang sama dapat dipertahankan dan output dapat
diambil dari output komplemen dari setiap flip-flop. Pencacah paralel yang ditunjukkan pada Gambar 9.17 dapat
diubah menjadi pencacah turun dengan menghubungkan output QÿA, QÿB, dan QÿC ke gerbang AND
menggantikan QA, QB, dan QC masing-masing seperti yang ditunjukkan pada Gambar di bawah. . Dalam hal ini
urutan hitungan melalui mana counter hasil akan seperti yang ditunjukkan pada Tabel di bawah ini.

Negara Q3 Q2 Q1 Q0
15 1 1 1 1

14 1 1 1 0
Machine Translated by Google

13 1 1 0 1
12 1 1 0 0
11 1 0 1 1
10 1 0 0
9 1 0 10 1
8 1 0 0 0
7 0 1 1 1
6 0 1 1 0
5 0 1 0 1
4 0 1 0 0
3 0 0 1 1
2 0 0 0
1 0 0 10 1
0 0 0 0 0
15 1 1 1 1

1.25.2.2 Synchronous Up-Down Counter


Menggabungkan kedua fungsi up-counting dan down-counting dalam satu counter, kita dapat membuat counter
up-down synchronous seperti yang ditunjukkan pada Gambar 9.18. Di sini input kontrol (hitung naik/turun)
digunakan untuk memungkinkan output normal atau output terbalik dari satu flip-flop ke input T dari flip-flop berikut.
Dua jalur kontrol terpisah (hitungan naik dan hitung mundur) dapat digunakan tetapi dalam kasus seperti itu kita
harus berhati-hati bahwa kedua jalur tidak dapat secara bersamaan dalam keadaan tinggi. Ketika garis count-up/
down tinggi, maka gerbang AND atas akan aktif dan gerbang AND bawah akan tetap tidak aktif dan karenanya
output normal dari setiap flip-flop dibawa maju ke flip-flop berikutnya. Dalam kasus seperti itu, penghitung akan
menghitung dari 000 hingga 111. Di sisi lain, jika garis kontrol rendah, maka gerbang AND atas tetap tidak aktif,
sedangkan gerbang AND bawah akan menjadi aktif. Jadi output terbalik mulai beroperasi dan penghitung
menghitung dari 111 hingga 000.
Machine Translated by Google

Register adalah sekelompok sel penyimpanan biner yang mampu menyimpan informasi biner. Sekelompok flip-flop
merupakan register, karena setiap flip-flop dapat bekerja sebagai sel biner. Register n-bit, memiliki n flip-flop dan
mampu menampung n-bit informasi. Selain flip-flop, register dapat memiliki bagian kombinasional yang melakukan
tugas pemrosesan data.
Berbagai jenis register tersedia di sirkuit MSI. Register yang paling sederhana adalah register yang tidak
mengandung gerbang eksternal, dan hanya dibuat dari flip-flop. Gambar 8.1 menunjukkan jenis register yang
dibangun dari empat SR flip-flop, dengan input pulsa clock yang sama. Pulsa clock memungkinkan semua flip-flop
pada saat yang sama sehingga informasi yang tersedia pada empat input dapat ditransfer ke register 4-bit. Semua
flip-flop dalam register harus merespons transisi pulsa clock. Oleh karena itu mereka harus menjadi salah satu dari
tipe yang dipicu oleh tepi atau tipe master slave. Sekelompok flip-flop yang sensitif terhadap durasi pulsa biasanya
disebut gated latch.
Latch cocok untuk menyimpan sementara informasi biner yang akan ditransfer ke tujuan eksternal. Mereka tidak
boleh digunakan dalam desain rangkaian sekuensial yang memiliki koneksi umpan balik.

1.26 Daftar Shift


Sebuah register yang mampu menggeser isi binernya baik ke kiri atau ke kanan disebut register geser. Register
geser memungkinkan data yang disimpan untuk berpindah dari lokasi tertentu ke lokasi lain dalam register. Register
dapat dirancang menggunakan flip-flop diskrit (SR, JK, dan D-type).

Data dalam register geser dapat digeser dengan dua cara yang mungkin:
(a) perpindahan seri dan
(b) perpindahan paralel.
Metode pemindahan serial menggeser satu bit pada satu waktu untuk setiap pulsa clock secara serial, dimulai
dengan LSB atau MSB. Di sisi lain, dalam operasi pemindahan paralel, semua data (input atau output) digeser
secara bersamaan selama satu pulsa clock. Oleh karena itu, kita dapat mengatakan bahwa operasi pemindahan
paralel jauh lebih cepat daripada operasi pemindahan serial.
Ada dua cara untuk memindahkan data ke dalam register (serial atau paralel) dan juga dua cara untuk
memindahkan data keluar dari register. Ini mengarah pada konstruksi empat tipe dasar register:
Machine Translated by Google

seperti yang ditunjukkan pada Gambar di bawah ini. Keempat konfigurasi tersedia secara komersial sebagai TTL
sirkuit MSI/LSI. Mereka:
1. Serial in/Serial out (SISO) – 54/74L91, 8 bit
2. Serial in/Parallel out (SIPO) – 54/74164, 8 bit
3. Paralel in/Serial out (PISO) – 54/74265, 8 bit
4. Parallel in/Parallel out (PIPO) – 54/74198, 8 bit

1.26.1 Register Geser Serial-In–-Serial-Out


Dari namanya sendiri jelas bahwa register jenis ini menerima data secara serial, yaitu, satu bit pada satu waktu
pada jalur input tunggal. Output juga diperoleh pada jalur output tunggal secara serial.
Data dalam register dapat digeser dari kiri ke kanan menggunakan register geser kiri , atau dapat digeser dari
kanan ke kiri menggunakan register geser kanan .

1.26.1.1 Daftar Shift-kanan


Register geser kanan dapat dibuat dengan flip-flop JK atau D seperti yang ditunjukkan pada Gambar 8.3. Register
geser berbasis flip-flop JK membutuhkan koneksi input J dan K. Data input dihubungkan ke input J dan K dari flip-
flop paling kiri (urutan terendah). Untuk memasukkan a 0, seseorang harus menerapkan 0 pada input J, yaitu, J
= 0 dan K = 1 dan sebaliknya. Dengan penerapan pulsa clock data akan digeser satu bit ke kanan. Pada register
geser menggunakan D fl ip-fl op, input D dari flip-flop paling kiri digunakan sebagai jalur input serial. Untuk
memasukkan 0, seseorang harus menerapkan 0 pada input D dan sebaliknya.

Pulsa clock diterapkan ke semua flip-flop secara bersamaan. Ketika pulsa clock diterapkan, setiap flip-flop diatur
atau diatur ulang sesuai dengan data yang tersedia pada saat itu pada input masing-masing dari masing-masing
flip-flop. Oleh karena itu bit data input pada jalur input serial dimasukkan ke dalam flip-flop A oleh pulsa clock
pertama. Pada saat yang sama, data tahap A digeser
Machine Translated by Google

ke tahap B dan seterusnya ke tahap berikutnya. Untuk setiap pulsa clock, data yang disimpan dalam
register digeser ke kanan sebanyak satu tahap. Data baru dimasukkan ke tahap A, sedangkan data yang
ada di tahap D digeser keluar (ke kanan).

1.26.1.2 Shift-kiri Register


Register geser kiri juga dapat dibangun dengan flip-flop JK atau D seperti yang ditunjukkan pada Gambar
di bawah. Mari kita ilustrasikan masuknya angka 4-bit 1110 ke dalam register, dimulai dengan bit paling
kanan. A 0 diterapkan pada jalur input serial, membuat D = 0. Saat pulsa clock pertama diterapkan, flip-
flop A adalah RESET, sehingga menyimpan 0. Selanjutnya a 1 diterapkan ke input serial, membuat D = 1
untuk flip-flop A dan D = 0 untuk flip-flop B, karena input dari flip-flop B terhubung dengan output QA.

Ketika pulsa clock kedua terjadi, 1 pada input data digeserÿ ke flip-flop
A dan 0 pada flip-flop A “digeser” ke flip-flop B. Angka 1 pada bilangan biner sekarang
diterapkan pada jalur input serial, dan pulsa clock ketiga sekarang diterapkan. Angka 1 ini dimasukkan ke
dalam flip-flop A dan angka 1 yang disimpan di flip-flop A sekarang "digeser" ke flip-flop B dan 0 yang
disimpan di flip-flop B sekarang "digeser" ke flip-flop C. Bit terakhir dalam bilangan biner yaitu 1 sekarang
diterapkan pada jalur input serial dan pulsa clock keempat sekarang diterapkan. 1 ini sekarang memasuki
flip-flop A dan 1 yang disimpan di flip-flop A sekarang "digeser" ke flip-flop B dan 1 yang disimpan di flip-
flop B sekarang "digeser" ke flip-flop C dan 0 disimpan dalam flip-flop C sekarang "digeser" ke flip-flop D.
Dengan demikian, entri bilangan biner 4-bit dalam register geser-kanan sekarang telah selesai.

1.26.1.3 Register Geser Serial-in–Serial-out 8-bit


Diagram pinout dan logika IC 74L91 ditunjukkan pada Gambar 8.6. IC 74L91 sebenarnya adalah contoh
dari register geser 8-bit serial-in-serial-out. Ini adalah chip TTL MSI 8-bit. Ada
Machine Translated by Google

delapan SR flip-flop terhubung untuk memberikan input serial serta output serial. Input clock pada setiap
flip-flop dipicu oleh tepi negatif. Namun, sinyal clock yang diterapkan dilewatkan melalui inverter. Oleh
karena itu data akan digeser pada tepi positif dari pulsa clock input.
Sebuah inverter terhubung di antara R dan S pada flip-flop pertama. Ini berarti bahwa
rangkaian berfungsi sebagai flip-flop tipe-D. Jadi input ke register adalah single liner di mana data dapat
digeser ke register muncul secara serial. Input data diterapkan di A (pin 12) atau B (pin 11). Level data
di A (atau B) dilengkapi dengan gerbang NAND dan kemudian diterapkan ke input R dari flip-flop
pertama. Level data yang sama dilengkapi oleh gerbang NAND dan kemudian dilengkapi lagi oleh
inverter sebelum muncul di input S. Jadi, 0 pada input A akan mereset flip-flop pertama (dengan kata
lain 0 ini digeser ke flip-flop pertama) pada jam positif
transisi.
Gerbang NAND dengan input A dan B menyediakan fungsi gerbang untuk aliran data input jika
diperlukan, jika gerbang tidak diperlukan, cukup sambungkan pin 11 dan 12 bersama-sama dan terapkan
aliran data input ke koneksi ini.

1.26.2 Register Serial-In–Parallel-Out


Pada register jenis ini, data digeser secara serial, tetapi digeser keluar secara paralel. Untuk
mendapatkan data keluaran secara paralel, diperlukan semua bit keluaran yang tersedia pada waktu
yang sama. Ini dapat dicapai dengan menghubungkan output dari setiap flip-flop ke pin output. Setelah
data disimpan dalam flip-flop bit tersedia secara bersamaan.

1.26.2.1 Register Geser 8-bit Serial-in–Parallel-out


Diagram pinout dan logika IC 74164 ditunjukkan pada Gambar 8.7. IC 74164 adalah contoh register
geser serial-in-parallel-out 8-bit. Ada delapan flip-flop SR, yang semuanya sensitif terhadap transisi clock
negatif. Diagram logika ini sama dengan yang sebelumnya dengan hanya dua pengecualian: (1) setiap
flip-flop memiliki input CLEAR asinkron; dan (2) sisi sebenarnya dari setiap flip-flop tersedia sebagai
keluaran—sehingga semua 8 bit dari bilangan apa pun yang disimpan dalam register tersedia secara
bersamaan sebagai keluaran (ini adalah keluaran data paralel).
Machine Translated by Google

Oleh karena itu, level rendah pada input CLR ke chip (pin 9) diterapkan melalui amplifier
dan akan me-reset setiap flip-flop. Selama input CLR ke chip LOW, semua output flip-flop akan tetap rendah. Ini berarti
bahwa, pada dasarnya, register akan berisi semua nol. Pergeseran data ke register secara serial persis sama dengan IC
74L91. Data pada input serial dapat diubah saat jam rendah atau tinggi, tetapi waktu penahanan dan pengaturan yang biasa
harus diperhatikan. Lembar data untuk perangkat ini memberikan waktu penahanan 0,0 ns dan waktu penyiapan 30 ns.
Sekarang kita mencoba menganalisis input serial gated A dan B. Misalkan data serial terhubung ke B; maka A dapat
digunakan sebagai garis kendali. Berikut cara kerjanya:

A dipegang tinggi: Gerbang NAND diaktifkan dan data input serial melewati gerbang NAND terbalik. Data masukan digeser
secara serial ke dalam register.
A ditahan rendah: Output gerbang NAND dipaksa tinggi, uap data input terhambat, dan pulsa clock berikutnya akan
menggeser 0 ke flip-flop pertama. Setiap pulsa clock positif yang berhasil akan menggeser 0 lainnya ke dalam register.
Setelah delapan pulsa clock, register akan penuh dengan nol.

Contoh 8.1. Berapa lama waktu yang dibutuhkan untuk menggeser nomor 8-bit ke register geser 74164 jika jam diatur pada
1 MHz?

Larutan. Minimal delapan jam Pulsa akan diperlukan karena data dimasukkan secara serial.
Satu periode pulsa clock adalah 1000 ns, sehingga akan membutuhkan minimum 8000 ns.

1.26.3 Register Paralel-In–Serial-Out


Dalam dua kasus sebelumnya, data dipindahkan ke register secara serial. Kita sekarang dapat mengembangkan ide untuk
memasukkan data secara paralel ke dalam register. Di sini bit data dimasukkan ke dalam flip-flop secara bersamaan, bukan
basis bit-by-bit. Sebuah register paralel-in-serial-out 4-bit diilustrasikan pada Gambar di bawah. A, B, C, dan D adalah empat
jalur input data paralel dan SHIFT / LOAD (SH / LD) adalah input kontrol yang memungkinkan empat bit data pada input A,
B, C, dan D masuk ke register secara paralel atau menggeser data secara serial. Ketika SHIFT / LOAD HIGH, AND gerbang
G1, G3, dan G5 diaktifkan, memungkinkan bit data bergeser ke kanan dari satu tahap ke tahap berikutnya.

Ketika SHIFT / LOAD LOW, gerbang AND G2, G4, dan G6 diaktifkan, memungkinkan bit data pada input paralel. Ketika
pulsa clock diterapkan, flip-flop dengan D = 1 akan diatur dan
Machine Translated by Google

flip-flop dengan D = 0 akan direset, sehingga menyimpan keempat bit secara bersamaan.
Gerbang OR memungkinkan operasi pemindahan normal atau operasi entri data paralel,
tergantung pada gerbang AND mana yang diaktifkan oleh level pada input SHIFT / LOAD .

1.26.4 Register Paralel-In–Parallel-Out


Ada jenis register keempat sebelumnya, yang dirancang sedemikian rupa sehingga data dapat
digeser masuk atau keluar dari register secara paralel. Input data paralel telah dibahas pada
bagian sebelumnya dari register geser paralel-masuk-serial-keluar. Juga, dalam jenis register ini
tidak ada interkoneksi antara flip-flop karena tidak diperlukan pemindahan serial. Oleh karena
itu, saat entri paralel data selesai, data akan tersedia pada output paralel register. Sebuah
register geser paralel-in-paralel keluar sederhana ditunjukkan di bawah ini.

Di sini input paralel yang akan diterapkan pada input PA, PB, PC, dan PD terhubung langsung
ke input D dari masing-masing flip-flop. Saat menerapkan transisi jam, input ini dimasukkan ke
dalam register dan segera tersedia di output QA, QB, QC, dan QD.
Machine Translated by Google

Tinjau Pertanyaan
[1] Apa itu Komputer dan komponennya?
[2] Jelaskan sejarah komputasi?
[3] Jelaskan representasi data beserta contohnya?
[4] Jelaskan secara rinci sistem bilangan?
[5] Diskusikan bilangan Fixed dan Floating point?
[6] Apa itu Aritmatika Biner, jelaskan penjumlahan dan pengurangan biner dengan
contoh?
[7] Jelaskan representasi BCD juga jelaskan konversinya?
[8] Jelaskan kode deteksi kesalahan?
[9] Diskusikan interupsi dengan interupsi perangkat keras dan perangkat lunak?
[10] Jelaskan aljabar Boolean?
[11] Jelaskan Bus?
[12] Jelaskan flip flop dan semua jenis flip flop?
[13] Apa perbedaan antara rangkaian kombinasional dan sekuensial?
Machine Translated by Google

2.1.Sistem Memori
Memori adalah bagian penting dari komputer mana pun. Ini digunakan secara luas untuk menyimpan berbagai
jenis segmen program, data dan informasi lainnya. Pada dasarnya, mereka diharapkan menjadi jenis memori
baca tulis. Meskipun, seperti yang dijelaskan sebelumnya, bahwa sejumlah kecil memori hanya-baca (ROM)
sangat penting untuk setiap sistem komputer (ROM tali boot) pada saat penyalaan, kami tidak mempertimbangkan
aspek itu dalam diskusi kami saat ini.

Teknologi Memori

° Akses Acak:

• Acakÿ bagus: waktu akses sama untuk semua lokasi

• DRAM: Memori Akses Acak Dinamis

- Kepadatan tinggi, daya rendah, murah, lambat

- Dinamis: konten harus disegarkanÿ secara teratur

• SRAM: Memori Akses Acak Statis

- Kepadatan rendah, daya tinggi, mahal, cepat

- Statis: konten akan bertahan selamanya (sampai kehilangan daya)

° Tidak terlalu acakÿ Teknologi Akses:

• Waktu akses bervariasi dari satu lokasi ke lokasi lain dan dari waktu ke waktu

• Contoh: Disk, CDROM

° Teknologi Akses Berurutan: waktu akses linier di lokasi

(misalnya, Pita)

2.2.Hirarki Memori
Istilah hirarki memori digunakan dalam arsitektur komputer ketika membahas masalah kinerja dalam desain
arsitektur komputer, prediksi algoritma, dan konstruksi pemrograman tingkat yang lebih rendah seperti melibatkan
lokalitas referensi. Sebuah "hierarki memori" dalam penyimpanan komputer membedakan setiap tingkat dalam
"hierarki" dengan waktu respon. Karena waktu respons, kompleksitas, dan kapasitas saling terkait, levelnya juga
dapat dibedakan berdasarkan teknologi pengontrolannya.
Machine Translated by Google

Banyak trade-off dalam mendesain untuk kinerja tinggi akan mencakup struktur hierarki memori, yaitu ukuran dan teknologi
setiap komponen. Jadi berbagai komponen dapat dilihat sebagai pembentuk hierarki ingatan (m1,m2,...,mn) di mana setiap
anggota mi dalam artian berada di bawah anggota tertinggi berikutnya mi-1 dalam hierarki. Untuk membatasi menunggu di
level yang lebih tinggi, level yang lebih rendah akan merespons dengan mengisi buffer dan kemudian memberi sinyal untuk
mengaktifkan transfer.

Ada empat tingkat penyimpanan utama.

Internal – Register prosesor dan cache.

1. Utama – RAM sistem dan kartu pengontrol.


2. Penyimpanan massal online – Penyimpanan sekunder .
3. Penyimpanan massal offline – Penyimpanan tersier dan offline .

Ini adalah struktur hierarki memori umum. Banyak struktur lain yang berguna. Misalnya, algoritma paging dapat dianggap
sebagai level untuk memori virtual saat merancang arsitektur komputer .

Parameter Hirarki Memori-


Machine Translated by Google

Hirarki memori dapat dicirikan oleh sejumlah:

parameter.

– Diantara parameter tersebut adalah:

• jenis akses,

• kapasitas,

• waktu siklus,

• latensi,

• bandwidth, dan

• biaya.

Contoh penggunaan istilah

Berikut adalah beberapa kutipan.

Menambahkan kompleksitas memperlambat hierarki memori.


Teknologi memori CMOx memperluas ruang Flash dalam hierarki memori
Salah satu cara utama untuk meningkatkan kinerja sistem adalah meminimalkan seberapa jauh hierarki
memori yang harus digunakan untuk memanipulasi data.
Latensi dan bandwidth adalah dua metrik yang terkait dengan cache dan memori. Tak satu pun dari
mereka seragam, tetapi khusus untuk komponen tertentu dari hierarki memori.
Memprediksi di mana dalam hierarki memori data berada itu sulit.
...lokasi dalam hierarki memori menentukan waktu yang diperlukan untuk prefetch terjadi

Penerapan konsep
Machine Translated by Google

Hirarki memori server AMD Bulldozer.

Hirarki memori di sebagian besar komputer adalah:

Register prosesor – akses tercepat (biasanya 1 siklus CPU), hanya berukuran ratusan byte

Cache Level 1 (L1) – sering diakses hanya dalam beberapa siklus, biasanya puluhan kilobyte
Cache Level 2 (L2) – latensi lebih tinggi dari L1 sebesar 2× hingga 10×, biasanya memiliki 512 KiB atau lebih
Cache Level 3 (L3) – latensi lebih tinggi dari L2, biasanya memiliki 2048 KiB atau lebih
Memori utama – mungkin memerlukan ratusan siklus, tetapi bisa beberapa gigabyte. Mengakses
waktu mungkin tidak seragam, dalam kasus mesin aNUMA.
Penyimpanan disk – jutaan siklus latensi jika tidak di-cache, tetapi bisa beberapa terabyte
Penyimpanan tersier – latensi beberapa detik, bisa sangat besar

Perhatikan bahwa penghobi yang membaca "L1 cache" di lembar spesifikasi komputer sedang membaca tentang hierarki
memori 'internal' .

Sebagian besar CPU modern sangat cepat sehingga untuk sebagian besar beban kerja program, hambatannya adalah
lokalitas referensi akses memori dan efisiensi caching dan transfer memori antara tingkat hierarki yang berbeda.
[ Akibatnya, CPU menghabiskan sebagian besar waktunya. idling, menunggu I/O memori selesai. Ini kadang-kadang
disebut biaya ruang, karena objek memori yang lebih besar lebih cenderung meluap tingkat kecil/cepat dan memerlukan
penggunaan tingkat yang lebih besar/lebih lambat.

Bahasa pemrograman modern terutama mengasumsikan dua tingkat memori, memori utama dan penyimpanan disk,
meskipun dalam bahasa assembly dan assembler inline dalam bahasa seperti C, register dapat langsung diakses.
Mengambil keuntungan optimal dari hierarki memori memerlukan kerja sama programmer, perangkat keras, dan kompiler
(serta dukungan mendasar dari sistem operasi):

Programmer bertanggung jawab untuk memindahkan data antara disk dan memori melalui file I/O.

Perangkat keras bertanggung jawab untuk memindahkan data antara memori dan cache.
Mengoptimalkan kompiler bertanggung jawab untuk menghasilkan kode yang, ketika dijalankan, akan
menyebabkan perangkat keras menggunakan cache dan register secara efisien.

Banyak programmer mengasumsikan satu tingkat memori. Ini berfungsi dengan baik sampai aplikasi
menyentuh dinding kinerja. Kemudian hierarki memori akan dinilai selama refactoring kode.
Machine Translated by Google

2.3.RAM
Memori akses acak (RAM /ræm/) adalah bentuk penyimpanan data komputer. Perangkat akses acak
memungkinkan data yang disimpan untuk diakses secara langsung dalam urutan acak apa pun. Sebaliknya,
media penyimpanan data lain seperti hard disk, CD, DVD , dan pita magnetik, serta jenis memori primer
awal seperti memori drum, hanya membaca dan menulis data dalam urutan yang telah ditentukan
sebelumnya, secara berurutan, karena keterbatasan desain mekanis. Oleh karena itu waktu untuk mengakses
lokasi data yang diberikan sangat bervariasi tergantung pada lokasi fisiknya.

Saat ini, memori akses acak berbentuk sirkuit terpadu. Sebenarnya, jenis DRAM modern bukanlah akses
acak, karena data dibaca secara berurutan, meskipun nama DRAM / RAM telah macet. Namun, banyak
jenis SRAM, ROM, OTP, dan NOR flash masih akses acak bahkan dalam arti yang ketat. RAM biasanya
dikaitkan dengan jenis memori yang mudah menguap ( seperti modul memori DRAM), di mana informasi
yang tersimpan akan hilang jika daya dilepas. Banyak jenis memori non-volatile lainnya adalah RAM,
termasuk sebagian besar jenis ROM dan jenis memori flash yang disebut NOR-Flash. Modul RAM pertama
yang masuk ke pasar dibuat pada tahun 1951 dan dijual hingga akhir 1960-an dan awal 1970-an.

Jenis-jenis RAM

Ada dua jenis RAM yang berbeda:


ÿ
DRAM (Memori Akses Acak Dinamis)
ÿ
SRAM (Memori Akses Acak Statis).

2.4.DRAM
DRAM menyimpan sedikit data menggunakan pasangan transistor dan kapasitor, yang bersama-sama
membentuk sel memori. Kapasitor memegang muatan tinggi atau rendah (1 atau 0, masing-masing), dan
transistor bertindak sebagai sakelar yang memungkinkan sirkuit kontrol pada chip membaca status muatan
kapasitor atau mengubahnya. Karena bentuk memori ini lebih murah untuk diproduksi daripada RAM statis,
ini adalah bentuk utama dari memori komputer yang digunakan di komputer modern.

2.5.SRAM
Dalam SRAM, sedikit data disimpan menggunakan keadaan flip-flop. Bentuk RAM ini lebih mahal untuk
diproduksi, tetapi umumnya lebih cepat dan membutuhkan lebih sedikit daya daripada DRAM dan, di
komputer modern, sering digunakan sebagai memori cache untuk CPU .

Baik RAM statis dan dinamis dianggap tidak stabil, karena statusnya hilang atau disetel ulang saat daya
dimatikan dari sistem. Sebaliknya, memori hanya-baca (ROM) menyimpan data dengan mengaktifkan atau
menonaktifkan transistor yang dipilih secara permanen, sehingga memori tidak dapat diubah. Varian ROM
yang dapat ditulis (seperti EEPROM dan memori flash) berbagi properti dari ROM dan
Machine Translated by Google

RAM, memungkinkan data bertahan tanpa daya dan diperbarui tanpa memerlukan peralatan khusus. Bentuk ROM semikonduktor
yang persisten ini termasuk USB flash drive, kartu memori untuk kamera dan perangkat portabel, dll. Memori ECC (yang dapat
berupa SRAM atau DRAM) mencakup sirkuit khusus untuk mendeteksi dan/atau memperbaiki kesalahan acak (kesalahan
memori) dalam penyimpanan. data, menggunakan parity bitsor kode koreksi kesalahan.

Secara umum, istilah RAM hanya mengacu pada perangkat memori solid-state (baik DRAM atau SRAM), dan lebih khusus lagi
memori utama di sebagian besar komputer. Dalam penyimpanan optik, istilah DVD RAM agak keliru karena, tidak seperti CD-
RW atau DVD-RW , istilah ini tidak perlu dihapus sebelum digunakan kembali. Namun demikian DVD-RAM berperilaku seperti
hard disk drive jika agak lambat.

2.6.ROM
Read-only memory (ROM) adalah kelas media penyimpanan yang digunakan di komputer dan perangkat elektronik lainnya.
Data yang disimpan dalam ROM tidak dapat dimodifikasi, atau hanya dapat dimodifikasi secara perlahan atau dengan susah
payah, sehingga terutama digunakan untuk mendistribusikan firmware (perangkat lunak yang sangat erat kaitannya dengan
perangkat keras tertentu, dan tidak mungkin perlu sering diperbarui).

Dalam pengertian yang paling ketat, ROM hanya mengacu pada ROM topeng ( jenis ROM solid state tertua), yang dibuat dengan
data yang diinginkan yang disimpan secara permanen di dalamnya, dan dengan demikian tidak akan pernah dapat dimodifikasi.
Terlepas dari kesederhanaan, kecepatan, dan skala ekonomi mask ROM, kemampuan program lapangan sering membuat
memori yang dapat diprogram ulang lebih fleksibel dan murah. Pada tahun 2007, sirkuit ROM sebenarnya terutama digunakan
untuk aplikasi seperti mikrokode, dan struktur serupa, pada berbagai jenis prosesor.

Jenis memori non-volatil lainnya seperti memori hanya baca yang dapat diprogram yang dapat dihapus (EPROM) dan memori
hanya baca yang dapat diprogram yang dapat dihapus secara elektrik (EEPROM atau Flash ROM) kadang-kadang disebut,
dengan cara yang disingkat, sebagai "memori hanya-baca" (ROM ); meskipun jenis memori ini dapat dihapus dan diprogram
ulang beberapa kali, menulis ke memori ini membutuhkan waktu lebih lama dan mungkin memerlukan prosedur yang berbeda
dari membaca memori.[1]Bila digunakan dengan cara yang kurang tepat ini, "ROM" menunjukkan memori non-volatil yang
melayani fungsi-fungsi yang biasanya disediakan oleh ROM topeng, seperti penyimpanan kode program dan data non-volatil.

Jenis
Chip ROM terprogram topeng klasik adalah sirkuit terintegrasi yang secara fisik mengkodekan data yang akan disimpan, dan
dengan demikian tidak mungkin untuk mengubah isinya setelah fabrikasi. Jenis lain dari memori solid-state non- volatil
memungkinkan beberapa tingkat modifikasi:

Memori hanya-baca yang dapat diprogram (PROM), atau ROM yang dapat diprogram satu kali (OTP), dapat
ditulis atau diprogram melalui perangkat khusus yang disebut pemrogram PROM. Biasanya, perangkat ini menggunakan
tegangan tinggi untuk secara permanen menghancurkan atau membuat tautan internal (sekering atau antifuse) di dalam
chip. Akibatnya, PROM hanya dapat diprogram satu kali.
Machine Translated by Google

Memori hanya-baca yang dapat diprogram dan dapat dihapus (EPROM) dapat dihapus dengan
paparan sinar ultraviolet yang kuat (biasanya selama 10 menit atau lebih), kemudian ditulis ulang dengan
proses yang membutuhkan tegangan lebih tinggi dari biasanya. Paparan berulang terhadap sinar UV pada
akhirnya akan membuat EPROM aus, tetapi daya tahannya dari sebagian besar chip EPROM melebihi 1000
siklus penghapusan dan pemrograman ulang. Paket chip EPROM sering dapat diidentifikasi dengan "jendela"
kuarsa yang menonjol yang memungkinkan sinar UV masuk. Setelah pemrograman, jendela biasanya ditutup
dengan label untuk mencegah penghapusan yang tidak disengaja. Beberapa chip EPROM dihapus dari pabrik
sebelum dikemas, dan tidak menyertakan jendela; ini secara efektif PROM.

Memori hanya-baca yang dapat diprogram dan dapat dihapus secara elektrik (EEPROM) didasarkan
pada struktur semikonduktor yang mirip dengan EPROM, tetapi memungkinkan seluruh isinya (atau bank
tertentu) dihapus secara elektrik, kemudian ditulis ulang secara elektrik, sehingga tidak perlu dikeluarkan dari
komputer (atau kamera, pemutar MP3, dll. .). Menulis atau mem- flash EEPROM jauh lebih lambat (milidetik
per bit) daripada membaca dari ROM atau menulis ke RAM (nanodetik dalam kedua kasus).

Memori hanya-baca yang dapat diubah secara elektrik (EAROM) adalah jenis EEPROM yang
dapat dimodifikasi sedikit demi sedikit . Menulis adalah proses yang sangat lambat dan sekali lagi
membutuhkan tegangan yang lebih tinggi (biasanya sekitar 12 V) daripada yang digunakan untuk akses
baca. EAROM ditujukan untuk aplikasi yang memerlukan penulisan ulang yang jarang dan hanya
sebagian. EAROM dapat digunakan sebagai penyimpanan non-volatil untuk informasi pengaturan sistem
yang penting; dalam banyak aplikasi, EAROM telah digantikan oleh RAM CMOS yang dipasok oleh daya
listrik dan dicadangkan dengan baterai lithium.

2.7.Memori flash
Memori flash (atau hanya flash) adalah jenis EEPROM modern yang ditemukan pada tahun 1984. Memori flash
dapat dihapus dan ditulis ulang lebih cepat daripada EEPROM biasa, dan desain yang lebih baru memiliki daya
tahan yang sangat tinggi (melebihi 1.000.000 siklus). Flash NAND modern membuat penggunaan area chip silikon
secara efisien, menghasilkan IC individual dengan kapasitas hingga 32 GB pada tahun 2007; fitur ini, bersama
dengan daya tahan dan ketahanan fisiknya, memungkinkan flash NAND menggantikan magnet di beberapa aplikasi
(seperti USB flash drive). Memori flash kadang-kadang disebut flash ROM atau flash EEPROM bila digunakan
sebagai pengganti jenis ROM lama, tetapi tidak dalam aplikasi yang memanfaatkan kemampuannya untuk
dimodifikasi dengan cepat dan sering.

2.8.Kebutuhan teknologi penyimpanan sekunder


Pada 2011, teknologi penyimpanan data yang paling umum digunakan adalah semikonduktor, magnetik, dan optik,
sementara kertas masih melihat beberapa penggunaan yang terbatas. Media adalah nama umum untuk apa yang
sebenarnya menyimpan data di perangkat penyimpanan. Beberapa teknologi penyimpanan mendasar lainnya juga
telah digunakan di masa lalu atau diusulkan untuk dikembangkan.
Machine Translated by Google

Semikonduktor

Memori semikonduktor menggunakan sirkuit terintegrasi berbasis semikonduktor untuk menyimpan informasi. Sebuah chip
memori semikonduktor mungkin berisi jutaan transistor atau kapasitor kecil.
Baik bentuk memori semikonduktor volatil maupun non-volatil ada. Di komputer modern, penyimpanan utama hampir secara
eksklusif terdiri dari memori semikonduktor volatil dinamis atau memori akses acak dinamis. Sejak pergantian abad, jenis
memori semikonduktor non-volatil yang dikenal sebagai memori flash terus mendapatkan pangsa sebagai penyimpanan off-line
untuk komputer rumah. Memori semikonduktor non-volatil juga digunakan untuk penyimpanan sekunder di berbagai perangkat
elektronik canggih dan komputer khusus. Pada awal tahun 2006, produsen notebook dan komputer desktop mulai menggunakan
solid-state drive (SSD) berbasis flash sebagai opsi konfigurasi default untuk penyimpanan sekunder baik sebagai tambahan
atau sebagai pengganti HDD yang lebih tradisional.

Magnetik

Penyimpanan magnetik menggunakan pola magnetisasi yang berbeda pada permukaan yang dilapisi secara magnetis untuk
menyimpan informasi. Penyimpanan magnetik tidak mudah menguap. Informasi diakses menggunakan satu atau lebih kepala
baca/tulis yang mungkin berisi satu atau lebih transduser perekaman. Head baca/tulis hanya menutupi sebagian permukaan
sehingga head atau medium atau keduanya harus dipindahkan relatif terhadap yang lain untuk mengakses data. Di komputer
modern, penyimpanan magnetik akan mengambil bentuk berikut:

Disk magnetik

Floppy disk, digunakan untuk penyimpanan offline

Hard disk drive, digunakan untuk penyimpanan sekunder


Pita magnetik, digunakan untuk penyimpanan tersier dan off-line

Pada komputer awal, penyimpanan magnetik juga digunakan sebagai:

Penyimpanan primer berupa memori magnetik, atau memori inti, memori tali inti, tipis
memori film dan/atau memori twistor.
Penyimpanan tersier (misalnya NCR CRAM) atau offline dalam bentuk kartu magnetik.
Pita magnetik kemudian sering digunakan untuk penyimpanan sekunder.
Optik

Penyimpanan optik, cakram optik biasa, menyimpan informasi dalam bentuk cacat pada permukaan cakram bundar dan
membaca informasi ini dengan menyinari permukaan dengan dioda laser dan mengamati pantulannya. Penyimpanan disk optik
tidak mudah menguap. Deformitas dapat bersifat permanen (media hanya baca ), terbentuk sekali (media tulis sekali) atau
reversibel (media rekam atau baca/tulis). Bentuk-bentuk berikut saat ini umum digunakan:

CD, CD-ROM, DVD, BD-ROM: Penyimpanan hanya baca, digunakan untuk distribusi massal informasi digital (musik, video,
program komputer)

CD-R, DVD-R, DVD+R, BD-R: Tulis sekali penyimpanan, digunakan untuk penyimpanan tersier dan offline
CD-RW, DVD-RW, DVD+RW, DVD-RAM, BD-RE: Penulisan lambat, penyimpanan baca cepat, bekas
untuk penyimpanan tersier dan offline
Machine Translated by Google

Ultra Density Optical atau UDO memiliki kapasitas yang serupa dengan BD-R atau BD-RE dan merupakan penyimpanan
lambat tulis, baca cepat yang digunakan untuk penyimpanan tersier dan off-line.

Penyimpanan cakram magneto-optik adalah penyimpanan cakram optik di mana keadaan magnetik pada
permukaan feromagnetik menyimpan informasi. Informasi dibaca secara optik dan ditulis dengan
menggabungkan metode magnetik dan optik. Penyimpanan disk magneto-optik tidak mudah menguap,
akses berurutan, penulisan lambat, penyimpanan baca cepat yang digunakan untuk penyimpanan tersier dan offline.

Penyimpanan data optik 3D juga telah diusulkan.

Kertas
Penyimpanan data kertas, biasanya dalam bentuk pita kertas atau kartu berlubang, telah lama digunakan
untuk menyimpan informasi untuk pemrosesan otomatis, terutama sebelum komputer serba guna ada.
Informasi direkam dengan melubangi media kertas atau karton dan dibaca secara mekanis (atau lebih baru
secara optik) untuk menentukan apakah lokasi tertentu pada media padat atau berisi lubang. Beberapa
teknologi memungkinkan orang membuat tanda di atas kertas yang mudah dibaca oleh mesin—ini banyak
digunakan untuk mentabulasi suara dan menilai tes standar . Barcode memungkinkan benda apa pun yang
akan dijual atau diangkut memiliki informasi yang dapat dibaca komputer dengan aman melekat padanya.

Luar biasa

Memori tabung vakum

Tabung Williams menggunakan tabung sinar katoda, dan tabung Selectron menggunakan tabung
vakum besar untuk menyimpan informasi. Perangkat penyimpanan utama ini berumur pendek di
pasar, karena tabung Williams tidak dapat diandalkan dan tabung Selectron mahal.
Memori elektro-akustik
Delay line memory menggunakan gelombang suara dalam zat seperti merkuri untuk menyimpan
informasi. Delay line memory bersifat dinamis volatil, siklus penyimpanan baca/tulis berurutan, dan
digunakan untuk penyimpanan utama.
Pita optik
adalah media untuk penyimpanan optik yang umumnya terdiri dari strip plastik yang panjang dan
sempit di mana pola dapat ditulis dan dari mana pola dapat dibaca kembali. Ini berbagi beberapa
teknologi dengan stok film bioskop dan cakram optik, tetapi tidak kompatibel dengan keduanya.
Motivasi di balik pengembangan teknologi ini adalah kemungkinan kapasitas penyimpanan yang
jauh lebih besar daripada pita magnetik atau cakram optik.
Memori perubahan fase
menggunakan fase mekanis yang berbeda dari Material Perubahan Fase untuk menyimpan
informasi dalam matriks beralamat XY, dan membaca informasi dengan mengamati berbagai
hambatan listrik material. Memori perubahan fase akan menjadi penyimpanan baca/tulis akses
acak yang tidak mudah menguap, dan dapat digunakan untuk penyimpanan primer, sekunder, dan offline. Paling
Machine Translated by Google

dapat ditulis ulang dan banyak yang menulis sekali disk optik sudah menggunakan bahan perubahan fase untuk
menyimpan informasi.

Penyimpanan data holografik

menyimpan informasi secara optik di dalam kristal atau fotopolimer. Penyimpanan holografik dapat
memanfaatkan seluruh volume media penyimpanan, tidak seperti penyimpanan cakram optik yang
terbatas pada sejumlah kecil lapisan permukaan. Penyimpanan holografik akan menjadi non-volatile,
akses berurutan, dan penyimpanan tulis sekali atau baca/tulis. Ini mungkin digunakan untuk penyimpanan
sekunder dan off-line. Lihat Disk Serbaguna Holografik (HVD).

Memori molekul

menyimpan informasi dalam polimer yang dapat menyimpan muatan listrik. Memori molekuler mungkin
sangat cocok untuk penyimpanan primer. Kapasitas penyimpanan teoritis memori molekuler adalah 10 terabit per
inci persegi.

Teknologi terkait

Replikasi penyimpanan disk

Sementara sekelompok kerusakan bit dapat diselesaikan dengan deteksi kesalahan dan mekanisme koreksi (lihat
di atas), kerusakan perangkat penyimpanan memerlukan solusi yang berbeda. Solusi berikut biasanya digunakan
dan valid untuk sebagian besar perangkat penyimpanan:

1.Pencerminan perangkat (replikasi) - Solusi umum untuk masalah ini adalah terus-menerus mempertahankan
salinan identik konten perangkat di perangkat lain (biasanya dari jenis yang sama). Kelemahannya adalah ini
menggandakan penyimpanan, dan kedua perangkat (salinan) perlu diperbarui secara bersamaan dengan
beberapa overhead dan mungkin beberapa penundaan. Keuntungannya adalah mungkin pembacaan bersamaan
dari grup data yang sama oleh dua proses independen, yang meningkatkan kinerja. Ketika salah satu perangkat
yang direplikasi terdeteksi rusak, salinan lainnya masih beroperasi, dan sedang digunakan untuk menghasilkan
salinan baru di perangkat lain (biasanya tersedia operasional di kumpulan perangkat siaga untuk tujuan ini).

2.Redundant array of independent disks (RAID) - Metode ini menggeneralisasi pencerminan perangkat di atas
dengan mengizinkan satu perangkat dalam grup perangkat N gagal dan diganti dengan konten yang dipulihkan
(Pencerminan perangkat adalah RAID dengan N=2). Kelompok RAID N=5 atau N=6 adalah umum. N>2
menghemat penyimpanan, jika dibandingkan dengan N=2, dengan biaya pemrosesan yang lebih banyak selama
operasi reguler (dengan kinerja yang sering berkurang) dan penggantian perangkat yang rusak.

Pencerminan perangkat dan RAID tipikal dirancang untuk menangani kegagalan perangkat tunggal dalam
kelompok perangkat RAID. Namun, jika kegagalan kedua terjadi sebelum grup RAID benar-benar diperbaiki dari
kegagalan pertama, maka data dapat hilang. Probabilitas kegagalan tunggal biasanya kecil. Dengan demikian,
kemungkinan dua kegagalan dalam grup RAID yang sama dalam kedekatan waktu jauh
Machine Translated by Google

lebih kecil (kira-kira probabilitas kuadrat, yaitu, dikalikan dengan dirinya sendiri). Jika database tidak dapat mentolerir
bahkan kemungkinan kehilangan data yang lebih kecil, maka grup RAID itu sendiri direplikasi (dicerminkan). Dalam
banyak kasus, pencerminan semacam itu dilakukan secara geografis dari jarak jauh, dalam susunan penyimpanan
yang berbeda, untuk menangani juga pemulihan dari bencana (lihat pemulihan bencana di atas).

Konektifitas jaringan

Penyimpanan sekunder atau tersier dapat terhubung ke komputer menggunakan jaringan komputer. Konsep ini tidak
berkaitan dengan penyimpanan utama, yang dibagi antara beberapa prosesor pada tingkat yang lebih rendah.

1.Direct-attached storage (DAS) adalah penyimpanan massal tradisional, yang tidak menggunakan jaringan apa pun.
Ini masih merupakan pendekatan yang paling populer. Retronim ini diciptakan baru-baru ini, bersama dengan NAS
dan SAN.

2.Network-attached storage (NAS) adalah penyimpanan massal yang terpasang pada komputer yang dapat diakses
oleh komputer lain pada tingkat file melalui jaringan area lokal, jaringan area luas pribadi, atau dalam kasus
penyimpanan file online, melalui Internet. NAS umumnya dikaitkan dengan protokol NFS dan CIFS/SMB .

3.Storage area network (SAN) adalah jaringan khusus, yang menyediakan komputer lain dengan kapasitas
penyimpanan. Perbedaan penting antara NAS dan SAN adalah yang pertama menyajikan dan mengelola sistem file
ke komputer klien, sementara yang terakhir menyediakan akses di tingkat pengalamatan blok (mentah),
menyerahkannya ke sistem lampiran untuk mengelola data atau sistem file dalam kapasitas yang disediakan. SAN
umumnya dikaitkan dengan jaringan Fibre Channel.

Penyimpanan robot
Sejumlah besar pita magnetik individu, dan cakram optik atau magneto-optik dapat disimpan dalam perangkat
penyimpanan tersier robot. Di bidang penyimpanan pita mereka dikenal sebagai pustaka pita, dan di bidang
penyimpanan optik jukebox optik, atau pustaka disk optik per analogi. Bentuk terkecil dari kedua teknologi yang hanya
berisi satu perangkat penggerak disebut sebagai pemuat otomatis atau pengubah otomatis.

Perangkat penyimpanan akses robotik mungkin memiliki sejumlah slot, masing-masing menampung media individual,
dan biasanya satu atau lebih robot pemetik yang melintasi slot dan memuat media ke drive internal. Susunan slot dan
perangkat pengambilan mempengaruhi kinerja. Karakteristik penting dari penyimpanan tersebut adalah kemungkinan
opsi ekspansi: menambahkan slot, modul, drive, robot. Pustaka pita mungkin memiliki 10 hingga lebih dari 100.000
slot, dan menyediakan terabyte atau petabyte informasi near-line. Jukebox optik adalah solusi yang agak lebih kecil,
hingga 1.000 slot.

Penyimpanan robot digunakan untuk pencadangan, dan untuk arsip berkapasitas tinggi dalam industri pencitraan,
medis, dan video. Manajemen penyimpanan hierarkis adalah strategi pengarsipan paling terkenal yang secara otomatis
memigrasikan file lama yang tidak digunakan dari penyimpanan hard disk cepat ke perpustakaan atau jukebox. Jika
file diperlukan, mereka akan diambil kembali ke disk.

2.9.Memori sekunder
Machine Translated by Google

Penyimpanan sekunder (juga dikenal sebagai memori eksternal atau penyimpanan tambahan), berbeda dari
penyimpanan utama karena tidak dapat diakses secara langsung oleh CPU. Komputer biasanya menggunakan
saluran input/outputnya untuk mengakses penyimpanan sekunder dan mentransfer data yang diinginkan
menggunakan area perantara di penyimpanan primer. Penyimpanan sekunder tidak kehilangan data saat perangkat
dimatikan—ini tidak mudah menguap. Per unit, biasanya juga dua kali lipat lebih murah daripada penyimpanan
utama. Sistem komputer modern biasanya memiliki dua kali lipat lebih banyak penyimpanan sekunder daripada
penyimpanan primer dan data disimpan untuk waktu yang lebih lama di sana.

Di komputer modern, hard disk drive biasanya digunakan sebagai penyimpanan sekunder. Waktu yang dibutuhkan
untuk mengakses byte tertentu dari informasi yang disimpan pada hard disk biasanya beberapa ribu detik, atau
milidetik. Sebaliknya, waktu yang dibutuhkan untuk mengakses byte tertentu dari informasi yang disimpan dalam
memori akses acak diukur dalam sepersejuta detik, atau nanodetik. Ini menggambarkan perbedaan waktu akses
yang signifikan yang membedakan memori solid-state dari perangkat penyimpanan magnetik yang berputar: hard
disk biasanya sekitar satu juta kali lebih lambat daripada memori.
Perangkat penyimpanan optik yang berputar , seperti drive CD dan DVD , memiliki waktu akses yang lebih lama.
Dengan drive disk, setelah kepala baca/tulis disk mencapai penempatan yang tepat dan data yang diinginkan
berputar di bawahnya, data berikutnya di trek sangat cepat untuk diakses. Untuk mengurangi waktu pencarian dan
latensi rotasi, data ditransfer ke dan dari disk dalam blok besar yang berdekatan.

Ketika data berada di disk, memblokir akses untuk menyembunyikan latensi menawarkan secercah harapan dalam
merancang algoritme memori eksternal yang efisien. Akses berurutan atau blok pada disk adalah urutan besarnya
lebih cepat daripada akses acak, dan banyak paradigma canggih telah dikembangkan untuk merancang algoritma
yang efisien berdasarkan akses sekuensial dan blok. Cara lain untuk mengurangi kemacetan I/O adalah dengan
menggunakan beberapa disk secara paralel untuk meningkatkan bandwidth antara memori primer dan sekunder.[3]

Beberapa contoh lain dari teknologi penyimpanan sekunder adalah: memori flash (misalnya
USB flash drive atau kunci), disket, pita magnetik, pita kertas, kartu berlubang, disk RAM
mandiri, dan drive Iomega Zip.
Penyimpanan sekunder sering diformat menurut format sistem file, yang menyediakan abstraksi yang diperlukan
untuk mengatur data ke dalam file dan direktori, juga menyediakan informasi tambahan (disebut metadata) yang
menjelaskan pemilik file tertentu, waktu akses, izin akses, dan informasi lainnya.

Sebagian besar sistem operasi komputer menggunakan konsep memori virtual, yang memungkinkan pemanfaatan
lebih banyak kapasitas penyimpanan utama daripada yang tersedia secara fisik dalam sistem. Saat memori utama
terisi, sistem memindahkan potongan (halaman) yang paling jarang digunakan ke perangkat penyimpanan sekunder
(ke file swap atau file halaman), mengambilnya nanti saat dibutuhkan. Karena lebih banyak pengambilan ini dari
penyimpanan sekunder yang lebih lambat diperlukan, semakin banyak kinerja sistem secara keseluruhan terdegradasi.

2.9.1.Karakteristik
Teknologi penyimpanan di semua tingkat hierarki penyimpanan dapat dibedakan dengan mengevaluasi karakteristik
inti tertentu serta mengukur karakteristik khusus untuk implementasi tertentu. Karakteristik inti ini adalah volatilitas,
mutabilitas, aksesibilitas, dan addressibility. Untuk implementasi tertentu dari teknologi penyimpanan apa pun,
karakteristik yang layak diukur adalah kapasitas dan kinerja.
Machine Translated by Google

Keriangan

Memori non-volatil

Akan menyimpan informasi yang disimpan meskipun tidak terus-menerus disuplai dengan daya listrik. Sangat cocok untuk

penyimpanan informasi jangka panjang.

Memori yang mudah menguap

Membutuhkan daya yang konstan untuk memelihara informasi yang disimpan. Teknologi memori tercepat saat ini adalah teknologi

yang mudah berubah (bukan aturan universal). Karena penyimpanan utama diperlukan untuk menjadi sangat cepat, sebagian

besar menggunakan memori yang mudah menguap.

Memori akses acak dinamis

Suatu bentuk memori volatil yang juga membutuhkan informasi yang disimpan untuk dibaca ulang dan ditulis ulang secara berkala,

atau disegarkan, jika tidak maka akan hilang.

Memori akses acak statis

Suatu bentuk memori volatil yang mirip dengan DRAM dengan pengecualian yang tidak perlu disegarkan selama daya diterapkan.

(Ini kehilangan kontennya jika daya dicabut).

Catu daya yang tidak pernah terputus dapat digunakan untuk memberi komputer waktu singkat untuk memindahkan informasi
dari penyimpanan volatil primer ke penyimpanan non-volatil sebelum baterai habis. Beberapa sistem (misalnya, lihat EMC
Symmetrix) memiliki baterai terintegrasi yang mempertahankan penyimpanan volatil selama beberapa jam.

Mutabilitas

Penyimpanan baca/tulis atau penyimpanan yang dapat diubah

Memungkinkan informasi ditimpa setiap saat. Komputer tanpa sejumlah penyimpanan baca/tulis untuk tujuan penyimpanan utama

tidak akan berguna untuk banyak tugas. Komputer modern biasanya menggunakan penyimpanan baca/tulis juga untuk

penyimpanan sekunder.
Penyimpanan hanya baca

Mempertahankan informasi yang disimpan pada saat pembuatan, dan menulis sekali penyimpanan (Write Once Read Many)

memungkinkan informasi untuk ditulis hanya sekali di beberapa titik setelah pembuatan.

Ini disebut penyimpanan yang tidak dapat diubah. Penyimpanan yang tidak dapat diubah digunakan untuk penyimpanan tersier dan off-line.

Contohnya termasuk CD-ROM dan CD-R.


Tulis lambat, penyimpanan baca cepat
Machine Translated by Google

Penyimpanan baca/tulis yang memungkinkan informasi ditimpa beberapa kali, tetapi dengan operasi tulis jauh lebih

lambat daripada operasi baca. Contohnya termasuk CD-RW dan flash

Penyimpanan.

Aksesibilitas
Akses acak

Setiap lokasi dalam penyimpanan dapat diakses kapan saja dalam waktu yang kira-kira sama. Karakteristik tersebut

sangat cocok untuk penyimpanan primer dan sekunder. Kebanyakan memori semikonduktor dan disk drive menyediakan

akses acak.

Akses berurutan

Pengaksesan potongan-potongan informasi akan dilakukan secara berurutan, satu demi satu; oleh karena itu waktu untuk

mengakses bagian informasi tertentu bergantung pada bagian informasi mana yang terakhir diakses. Karakteristik seperti

itu adalah tipikal penyimpanan off-line.

Kemampuan beralamat

Lokasi-beralamat

Setiap unit informasi yang dapat diakses secara individual dalam penyimpanan dipilih dengan alamat memori numeriknya .

Di komputer modern, penyimpanan dengan alamat lokasi biasanya terbatas pada penyimpanan utama, yang diakses

secara internal oleh program komputer, karena kemampuan alamat lokasi sangat efisien, tetapi membebani manusia.

Berkas yang dapat dialamatkan

Informasi dibagi menjadi file dengan panjang variabel, dan file tertentu dipilih dengan direktori dan nama file yang dapat

dibaca manusia. Perangkat yang mendasarinya masih dapat dialamatkan ke lokasi, tetapi sistem operasi komputer

menyediakan abstraksi sistem file untuk membuat operasi lebih mudah dipahami. Di komputer modern, penyimpanan

sekunder, tersier, dan offline menggunakan sistem file.

Dapat dialamatkan konten

Setiap unit informasi yang dapat diakses secara individual dipilih berdasarkan (bagian dari) konten yang disimpan di sana.

Penyimpanan yang dapat dialamatkan konten dapat diimplementasikan menggunakan perangkat lunak (program

komputer) atau perangkat keras (perangkat komputer), dengan perangkat keras menjadi opsi yang lebih cepat tetapi lebih mahal.

Memori yang dapat dialamatkan konten perangkat keras sering digunakan dalam cache CPU komputer.
Machine Translated by Google

Kapasitas

Kapasitas mentah

Jumlah total informasi tersimpan yang dapat disimpan oleh perangkat atau media penyimpanan. Hal ini dinyatakan sebagai

jumlah bit atau byte (misalnya 10,4 megabyte).

Kepadatan penyimpanan memori

Kekompakan informasi yang disimpan. Ini adalah kapasitas penyimpanan media dibagi dengan satuan panjang, luas atau

volume (misalnya 1,2 megabyte per inci persegi).

Pertunjukan

Latensi

Waktu yang diperlukan untuk mengakses lokasi tertentu dalam penyimpanan. Unit pengukuran yang relevan biasanya

nanodetik untuk penyimpanan primer, milidetik untuk penyimpanan sekunder, dan detik untuk penyimpanan tersier. Mungkin

masuk akal untuk memisahkan latensi baca dan latensi tulis, dan dalam hal penyimpanan akses berurutan, latensi minimum,

maksimum, dan rata-rata.

throughput

Tingkat di mana informasi dapat dibaca dari atau ditulis ke penyimpanan. Dalam penyimpanan data komputer, throughput

biasanya dinyatakan dalam megabyte per detik atau MB/s, meskipun bit rate juga dapat digunakan. Seperti halnya latensi,

kecepatan baca dan kecepatan tulis mungkin perlu dibedakan.

Juga mengakses media secara berurutan, bukan secara acak, biasanya menghasilkan throughput maksimum.

Granularitas

Ukuran "potongan" data terbesar yang dapat diakses secara efisien sebagai satu unit, misalnya tanpa menambah latensi.

Keandalan

Probabilitas perubahan nilai bit spontan dalam berbagai kondisi, atau tingkat kegagalan keseluruhan

Penggunaan energi

Perangkat penyimpanan yang mengurangi penggunaan kipas, mati secara otomatis saat tidak ada aktivitas, dan hard drive
berdaya rendah dapat mengurangi konsumsi energi hingga 90 persen.

Hard disk drive 2,5 inci sering mengonsumsi lebih sedikit daya daripada yang lebih besar. Solid-state berkapasitas rendah
drive tidak memiliki bagian yang bergerak dan mengkonsumsi lebih sedikit daya daripada hard disk. Selain itu, memori mungkin menggunakan
lebih banyak daya daripada hard disk.
Machine Translated by Google

2.10.Kenangan Optik

Perangkat penyimpanan optik menggunakan cahaya untuk menyimpan dan mengambil data

• Perangkat yang menggunakan teknologi ini termasuk CD-ROM, CD-R, CD-RW dan DVD

• CD-ROM dibaca menggunakan sinar laser berdaya rendah yang berasal dari drive komputer

• Sinar laser berdaya rendah melintas di depan lubang dan lahan simulasi.

• Untuk sebuah daratan, sinar mencapai lapisan reflektif dan dipantulkan.

• Untuk lubang yang disimulasikan, titiknya buram dan tidak terpantul.

Compact Disk• Pertama kali dibuat pada tahun 1983.• Jenis Compact Disk• CR-Read only• CD-Recordable• CD R/
W• Data dikodekan dan dibaca secara optik dengan laser• Dapat menyimpan sekitar 600MB hingga 700MB data

Representasi data dalam CD-ROM• Data digital direpresentasikan sebagai rangkaian Pits and Lands:– Pit = sedikit
depresi, membentuk level yang lebih rendah di track– Land = bagian datar di antara pit, atau level atas di track

Organisasi data• Membaca CD dilakukan dengan menyinari laser pada disk dan mendeteksi perubahan pola
pantulan.– 1 = perubahan ketinggian (darat ke pit atau pit ke darat)– 0 = jumlah waktu tetapÿ antara 1 LAND TANAH
PIT PIT TANAH...------+ +-------------+ +---...|_____| |_______|..0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 ..• Catatan : kita
tidak dapat memiliki dua angka 1 berturut-turut!

CD-ROM• Karena warisan dari CD audio, data disimpan sebagai track spiral tunggal pada CD-ROM, bertentangan
dengan konsep track diskrit hard disk magnetik.• Dengan demikian, kecepatan rotasi dikendalikan oleh kecepatan
CLV-ConstantLinear. Kecepatan rotasi di bagian tengah adalah yang tertinggi, melambat menuju tepi luar. Karena,
kerapatan perekaman adalah sama di mana-mana.• Perhatikan bahwa dengan CLV, kecepatan linier dari spiral yang
lewat di bawah kepala R/W tetap konstan.• CLV adalah hasil untuk waktu pencarian yang buruk dalam CD-ROM•
Keuntungan dari CLV adalah bahwa disk digunakan pada kapasitas terbaiknya, karena kerapatan perekaman sama
di mana-mana.

CD-ROM• Perhatikan bahwa: Karena 0s diwakili oleh lamanya waktu antara transisi, kita harus bergerak dengan
kecepatan linier konstan (CLV) pada lintasan.• Sektor diatur sepanjang spiral• Sektor memiliki panjang linier yang
sama• Keuntungan: mengambil keuntungan dari semua ruang penyimpanan tersedia.• Kekurangan: harus mengubah
kecepatan rotasi saat mencari (lebih lambat ke arah luar)

Digital Versatile Disc• Teknologi DVD (Digital Video Disc atau Digital Versatile Disc) didasarkan pada teknologi CD
dengan kepadatan penyimpanan yang lebih tinggi.• DVD dilengkapi dengan penyimpanan
Machine Translated by Google

kapasitas hingga 17GB• Multi-layer• Kapasitas sangat tinggi (4,7GB hingga 17GB)• Memiliki tiga jenis yang sama
dengan CD

2.11.Hard disk drive

drive (HDD)
menggunakan piringan (piringan) adalah cepata yang
yang berputar penyimpanan
dilapisipenyimpanan
dengan
data Hardbahan
disk
magnetik.
dan pengambilan untuk
HDD menyimpan
perangkat yang digunakan
informasidatanya
digital
bahkan saat dimatikan. Data dibaca dengan cara akses acak , artinya blok data individual dapat disimpan atau diambil
dalam urutan apa pun, bukan secara berurutan. HDD terdiri dari satu atau lebih cakram keras ("keras") yang berputar
cepat (platter) dengan kepala magnetik yang diatur pada lengan aktuator yang bergerak untuk membaca dan menulis
data ke permukaan.

Diperkenalkan oleh IBM pada tahun 1956 HDD menjadi perangkat penyimpanan sekunder yang dominan untuk komputer
tujuan umum pada awal 1960-an. Terus ditingkatkan, HDD telah mempertahankan posisi ini ke era modern server dan
komputer pribadi. Lebih dari 200 perusahaan telah memproduksi unit HDD, meskipun sebagian besar saat ini diproduksi
oleh Seagate, Toshiba , dan Western Digital.
$33Pendapatan di seluruh
miliar pada tahun dunia
2013, turununtuk unit
pengiriman
sekitar 12% dari HDD
$37,8diperkirakan
2012. mencapai
miliar pada tahun

Karakteristik utama HDD adalah kapasitas dan kinerjanya. Kapasitas ditentukan dalam awalan unit yang sesuai dengan
kekuatan 1000 : drive 1-terabyte (TB) memiliki kapasitas 1.000 gigabyte (GB; di mana 1 gigabyte = 1 miliar byte). Biasanya,
beberapa kapasitas HDD tidak tersedia bagi pengguna karena digunakan oleh sistem file dan sistem operasi komputer, dan
mungkin redundansi bawaan untuk koreksi kesalahan dan pemulihan. Performa ditentukan oleh waktu untuk memindahkan
kepala ke file (Waktu Akses Rata-rata) ditambah waktu yang dibutuhkan file untuk bergerak di bawah kepalanya ( latensi rata-
rata, fungsi kecepatan rotasi fisik dalam putaran per menit) dan kecepatan di mana file ditransmisikan (kecepatan data).

Dua faktor bentuk paling umum untuk HDD modern adalah 3,5 inci di komputer desktop dan 2,5 inci di laptop. HDD
terhubung ke sistem melalui kabel antarmuka standar seperti kabel SATA (Serial ATA), USB atau SAS (Serial terpasang
SCSI) .

Pada 2012, teknologi pesaing utama untuk penyimpanan sekunder adalah memori flash dalam bentuk solid-state drive
(SSD). HDD diharapkan tetap menjadi media dominan untuk penyimpanan sekunder karena prediksi keunggulan
berkelanjutan dalam kapasitas perekaman dan harga per unit penyimpanan, tetapi SSD menggantikan HDD di mana
kecepatan, konsumsi daya , dan daya tahan menjadi pertimbangan yang lebih penting daripada harga dan kapasitas.

2.12.Mekanisme Kepala

Penyimpanan disk adalah kategori umum mekanisme penyimpanan di mana data direkam oleh berbagai perubahan
elektronik, magnetik, optik, atau mekanis ke lapisan permukaan satu atau lebih disk yang berputar. Disk drive adalah
perangkat yang menerapkan mekanisme penyimpanan seperti itu dan biasanya dibedakan dari media disk. Jenis penting
adalah hard disk drive (HDD) yang berisi disk yang tidak dapat dilepas, drive floppy disk (FDD) dan floppy disk yang
dapat dilepas, dan berbagai drive disk optik dan media disk optik terkait .
Machine Translated by Google

Disk dan disk digunakan secara bergantian kecuali jika merek dagang melarang satu penggunaan, misalnya logo
Compact Disc. Pilihan bentuk tertentu seringkali bersifat historis, seperti dalam penggunaan bentuk disk oleh IBM
yang dimulai pada tahun 1956 dengan "unit penyimpanan disk IBM 350".
Metode akses

Disk drive digital adalah perangkat penyimpanan blok. Setiap disk dibagi menjadi blok logis (kumpulan sektor).
Blok dialamatkan menggunakan alamat blok logis (LBA). Membaca dari atau menulis ke disk terjadi pada
granularitas blok.

Awalnya kapasitas disk cukup rendah dan telah ditingkatkan dengan salah satu dari beberapa cara.
Perbaikan dalam desain dan pembuatan mekanis memungkinkan head yang lebih kecil dan lebih presisi, yang
berarti bahwa lebih banyak track dapat disimpan di setiap disk. Kemajuan dalam metode kompresi data
memungkinkan lebih banyak informasi untuk disimpan di masing-masing sektor individu.

Drive menyimpan data ke silinder, kepala, dan sektor. Unit sektor adalah ukuran data terkecil yang akan disimpan
dalam hard disk drive dan setiap file akan memiliki banyak unit sektor yang ditetapkan untuk itu.
Entitas terkecil dalam CD disebut bingkai, yang terdiri dari 33 byte dan berisi enam sampel stereo 16-bit lengkap
(dua byte × dua saluran × enam sampel = 24 byte). Sembilan byte lainnya terdiri dari delapan byte koreksi
kesalahan CIRC dan satu byte subkode yang digunakan untuk kontrol dan tampilan.

Informasi dikirim dari prosesor komputer ke BIOS ke dalam chip yang mengontrol transfer data. Ini kemudian
dikirim ke hard drive melalui konektor multi-kawat. Setelah data diterima ke papan sirkuit drive, data tersebut
diterjemahkan dan dikompresi ke dalam format yang dapat digunakan oleh masing-masing drive untuk disimpan
ke dalam disk itu sendiri. Data tersebut kemudian diteruskan ke sebuah chip di papan sirkuit yang mengontrol
akses ke drive. Drive dibagi menjadi beberapa sektor data yang disimpan ke salah satu sisi salah satu disk internal.
HDD dengan dua disk internal biasanya akan menyimpan data di keempat permukaan.

Perangkat keras pada drive memberi tahu lengan aktuator ke mana ia harus pergi untuk trek yang relevan dan
informasi terkompresi kemudian dikirim ke kepala yang mengubah sifat fisik, secara optik atau magnetis misalnya,
dari setiap byte pada drive, sehingga menyimpan informasi. File tidak disimpan secara linier, melainkan disimpan
dengan cara terbaik untuk pengambilan tercepat.

Kecepatan rotasi dan tata letak trek

Secara mekanis ada dua gerakan berbeda yang terjadi di dalam drive. Salah satunya adalah rotasi disk di dalam
perangkat. Yang lainnya adalah gerakan kepala dari sisi ke sisi melintasi piringan seperti itu
bergerak di antara trek.

Ada dua jenis metode rotasi disk:

kecepatan linier konstan (terutama digunakan dalam penyimpanan optik) memvariasikan kecepatan rotasi
cakram optik tergantung pada posisi kepala, dan
kecepatan sudut konstan (digunakan dalam HDD, FDD standar, beberapa sistem cakram optik, dan
rekaman audio vinil) memutar media pada satu kecepatan konstan di mana pun kepala diposisikan.
Machine Translated by Google

Pemosisian trek juga mengikuti dua metode berbeda di seluruh perangkat penyimpanan disk. Perangkat
penyimpanan yang berfokus pada penyimpanan data komputer, misalnya HDD, FDD, drive zip Iomega,
menggunakan trek konsentris untuk menyimpan data. Selama operasi baca atau tulis berurutan, setelah
drive mengakses semua sektor di trek, drive akan memposisikan ulang kepala ke trek berikutnya. Ini akan
menyebabkan penundaan sesaat dalam aliran data antara perangkat dan komputer. Sebaliknya, cakram
audio dan video optik menggunakan trek spiral tunggal yang dimulai dari titik paling dalam pada cakram
dan mengalir terus menerus ke tepi luar. Saat membaca atau menulis data, tidak perlu menghentikan aliran
data untuk berpindah trek. Ini mirip dengan piringan hitam kecuali piringan hitam dimulai dari tepi luar dan
berputar ke tengah.
Antarmuka

Antarmuka disk drive adalah mekanisme/protokol komunikasi antara seluruh sistem dan disk drive itu
sendiri. Perangkat penyimpanan yang ditujukan untuk komputer desktop dan seluler biasanya menggunakan
antarmuka ATA (PATA) dan SATA . Sistem perusahaan dan perangkat penyimpanan kelas atas biasanya
akan menggunakan antarmuka SCSI, SAS, dan FC selain beberapa penggunaan SATA.

Terminologi dasar

Platter – Sebuah disk rekaman individu. Dalam hard disk drive kita cenderung menemukan satu set piringan
dan perkembangan teknologi optik telah menyebabkan beberapa lapisan perekaman pada satu DVD.

Spindle – poros pemintal tempat platter dipasang.


Rotasi – Piring berputar; dua teknik yang umum:
Kecepatan sudut konstan (CAV) membuat disk berputar pada kecepatan tetap, diukur
dalam putaran per menit (RPM). Ini berarti kepala menempuh lebih banyak jarak per unit waktu di
trek luar daripada di trek dalam. Metode ini khas dengan komputer
hard drive.

Kecepatan linier konstan (CLV) menjaga jarak yang ditempuh oleh kepala per unit
waktu tetap. Jadi disk harus melambat saat lengan bergerak ke trek luar. Ini

metode ini khas untuk drive CD.


Track – Lingkaran data yang direkam pada satu permukaan rekaman piring.
Sektor – Segmen trek
Pemformatan tingkat rendah – Menetapkan trek dan sektor.
Head – Perangkat yang membaca dan menulis informasi—magnetik atau optik—pada permukaan
disk.
Lengan – Rakitan mekanis yang menopang kepala saat bergerak masuk dan keluar.
Seek time – Waktu yang dibutuhkan untuk memindahkan kepala ke posisi baru (track tertentu).
Latensi rotasi – Waktu rata-rata, setelah lengan berada di jalur yang benar, sebelum kepala berada
atas sektor yang diinginkan.

Kecepatan transfer data - Tingkat di mana bit data pengguna ditransfer dari atau ke media,
secara teknis ini akan lebih tepat disebut kecepatan transfer data "kotor".
Machine Translated by Google

2.13.CCD
Pemindai modern biasanya menggunakan perangkat charge-coupled device (CCD) atau Contact Image Sensor (CIS)
sebagai sensor gambar, sedangkan pemindai drum yang lebih tua menggunakan tabung photomultiplier sebagai sensor gambar.
Pemindai putar, yang digunakan untuk pemindaian dokumen berkecepatan tinggi, adalah jenis lain dari pemindai drum,
menggunakan larik CCD alih-alih pengganda foto. Jenis pemindai lainnya adalah pemindai planet, yang mengambil foto
buku dan dokumen, dan pemindai 3D, untuk menghasilkan model objek tiga dimensi.

Kategori pemindai lainnya adalah pemindai kamera digital , yang didasarkan pada konsep kamera reprografik. Karena
peningkatan resolusi dan fitur baru seperti anti-goyang, kamera digital telah menjadi alternatif yang menarik untuk pemindai
biasa. Meskipun masih memiliki kekurangan dibandingkan pemindai tradisional (seperti distorsi, pantulan, bayangan,
kontras rendah), kamera digital menawarkan keunggulan seperti kecepatan, portabilitas, dan pendigitalan dokumen tebal
yang lembut tanpa merusak punggung buku. Teknologi pemindaian baru menggabungkan pemindai 3D dengan kamera
digital untuk membuat model objek 3D foto-realistis penuh warna.[rujukan?]

diperlukan]

Di bidang penelitian biomedis, perangkat pendeteksi untuk microarray DNA juga disebut pemindai. Pemindai ini adalah
sistem resolusi tinggi (hingga 1 m/piksel), mirip dengan mikroskop. Deteksi dilakukan melalui CCD atau tabung
photomultiplier (PMT)

Jenis
Drum

Pemindai drum menangkap informasi gambar dengan tabung photomultiplier (PMT), daripada susunan perangkat yang
dipasangkan muatan (CCD) yang ditemukan di pemindai flatbed dan pemindai film murah . Dokumen asli reflektif dan
transmisif dipasang pada silinder akrilik, drum pemindai, yang berputar dengan kecepatan tinggi saat melewati objek yang
dipindai di depan optik presisi yang mengirimkan informasi gambar ke PMT. Kebanyakan pemindai drum warna modern
menggunakan tiga PMT yang cocok, yang masing-masing membaca lampu merah, biru, dan hijau. Cahaya dari karya seni
asli dibagi menjadi sinar merah, biru, dan hijau yang terpisah di bangku optik pemindai.

Pemindai drum mendapatkan namanya dari silinder akrilik bening, drum, tempat karya seni asli dipasang untuk pemindaian.
Tergantung pada ukurannya, dimungkinkan untuk memasang dokumen asli hingga 20"x28", tetapi ukuran maksimum
bervariasi menurut pabrikan. Salah satu fitur unik pemindai drum adalah kemampuannya untuk mengontrol area sampel
dan ukuran bukaan secara mandiri. Ukuran sampel adalah area yang dibaca oleh encoder pemindai untuk membuat piksel
individual. Aperture adalah bukaan sebenarnya yang memungkinkan cahaya masuk ke bangku optik pemindai. Kemampuan
untuk mengontrol bukaan dan ukuran sampel secara terpisah sangat berguna untuk menghaluskan butiran film saat
memindai dokumen asli hitam-putih dan negatif berwarna.

Sementara pemindai drum mampu memindai karya seni reflektif dan transmisif, pemindai flatbed berkualitas baik dapat
menghasilkan pemindaian yang baik dari karya seni reflektif. Akibatnya, pemindai drum jarang digunakan untuk memindai
cetakan sekarang karena pemindai flatbed berkualitas tinggi dan murah sudah tersedia. Film, bagaimanapun, adalah
tempat pemindai drum terus menjadi alat pilihan untuk aplikasi kelas atas. Karena film dapat dipasang basah ke drum
pemindai dan karena:
Machine Translated by Google

sensitivitas PMT yang luar biasa, pemindai drum mampu menangkap detail yang sangat halus dalam film asli.

2.13.1.Pemindai CCD
Pemindai flatbed biasanya terdiri dari panel kaca (atau pelat), di bawahnya ada cahaya terang (seringkali xenon
atau katoda fluoresen dingin) yang menerangi panel, dan optik bergerak.
array dalam pemindaian CCD. Pemindai tipe CCD biasanya berisi tiga baris (array) sensor dengan filter merah,
hijau, dan biru.

Pemindai CIS

Pemindaian CIS terdiri dari serangkaian LED merah, hijau dan biru yang bergerak untuk penerangan dan susunan
fotodioda monokromatik yang terhubung di bawah susunan lensa batang untuk pengumpulan cahaya. Gambar
yang akan dipindai ditempatkan menghadap ke bawah pada kaca, penutup buram diturunkan di atasnya untuk
mengecualikan cahaya sekitar, dan susunan sensor dan sumber cahaya bergerak melintasi panel, membaca seluruh area.
Oleh karena itu, gambar terlihat oleh detektor hanya karena cahaya yang dipantulkannya. Gambar transparan tidak
berfungsi dengan cara ini, dan memerlukan aksesori khusus yang meneranginya dari sisi atas. Banyak pemindai
menawarkan ini sebagai opsi.
Film

Film "Slide" (positif) atau negatif dapat dipindai dalam peralatan yang dibuat khusus untuk tujuan ini. Biasanya,
strip film yang belum dipotong hingga enam bingkai, atau empat slide terpasang, dimasukkan ke dalam wadah,
yang digerakkan oleh motor stepper melintasi lensa dan sensor CCD di dalam pemindai.
Beberapa model terutama digunakan untuk pemindaian dengan ukuran yang sama. Pemindai film sangat bervariasi
dalam harga dan kualitas. Pemindai konsumen relatif murah sedangkan sistem pemindaian film berbasis CCD
profesional yang paling mahal adalah sekitar 120.000 USD. Solusi yang lebih mahal dikatakan menghasilkan hasil
yang lebih baik.

2.14. Kenangan gelembung

Memori gelembung adalah jenis memori komputer non-volatil yang menggunakan film tipis dari bahan magnetik
untuk menampung area magnet kecil, yang dikenal sebagai gelembung atau domain, masing-masing menyimpan
satu bit data. Materi diatur untuk membentuk serangkaian trek paralel yang gelembung dapat bergerak di bawah
aksi medan magnet eksternal. Gelembung dibaca dengan memindahkannya ke tepi materi di mana mereka dapat
dibaca oleh pickup magnetik konvensional, dan kemudian ditulis ulang di tepi jauh untuk menjaga siklus memori
melalui materi. Dalam pengoperasiannya, memori gelembung mirip dengan sistem memori saluran tunda.
Machine Translated by Google

Memori gelembung dimulai sebagai teknologi yang menjanjikan pada 1980-an, menawarkan kepadatan memori
dengan urutan yang sama seperti hard drive tetapi kinerjanya lebih sebanding dengan memori inti. Hal ini
menyebabkan banyak orang menganggapnya sebagai pesaing untuk "memori universal" yang dapat digunakan
untuk semua kebutuhan penyimpanan. Namun, pengenalan chip memori semikonduktor yang secara dramatis
lebih cepat mendorong gelembung ke ujung skala yang lambat, dan peningkatan yang sama dramatisnya dalam
kapasitas hard drive membuatnya tidak kompetitif dalam hal harga.[1] Memori gelembung digunakan untuk
beberapa waktu di tahun 1970-an dan 80-an di mana sifatnya yang tidak bergerak diinginkan untuk alasan
pemeliharaan atau anti guncangan. Pengenalan Flash RAM dan teknologi serupa membuat ceruk ini tidak
kompetitif, dan gelembung menghilang sepenuhnya pada akhir 1980-an.

Prasejarah: memori twistor

Memori gelembung sebagian besar merupakan gagasan dari satu orang, Andrew Bobek. Bobek telah
mengerjakan banyak jenis proyek yang berhubungan dengan magnet selama tahun 1960-an, dan dua
proyeknya menempatkannya pada posisi yang sangat baik untuk pengembangan memori gelembung. Yang
pertama adalah pengembangan sistem memori inti magnetik pertama yang digerakkan oleh pengontrol
berbasis transistor , dan yang kedua adalah pengembangan memori twistor.

Twistor pada dasarnya adalah versi memori inti yang menggantikan "inti" dengan sepotong pita magnetik.
Keuntungan utama dari twistor adalah kemampuannya untuk dirakit oleh mesin otomatis, berbeda dengan inti,
yang hampir seluruhnya manual. AT&T memiliki harapan besar untuk twistor, percaya itu akan sangat
mengurangi biaya memori komputer dan menempatkan mereka di posisi terdepan di industri. Sebaliknya ,
memori DRAM datang ke pasar pada awal 1970-an yang dengan cepat menggantikan semua sistem memori
akses acak sebelumnya. Twistor akhirnya hanya digunakan di beberapa aplikasi, banyak di antaranya di
komputer AT&T sendiri.

Salah satu efek samping yang menarik dari konsep twistor diperhatikan dalam produksi; dalam kondisi tertentu,
melewatkan arus melalui salah satu kabel listrik yang mengalir di dalam pita akan menyebabkan medan magnet
pada pita bergerak ke arah arus. Jika digunakan dengan benar, itu memungkinkan bit yang disimpan untuk
didorong ke bawah pita dan keluar dari ujungnya, membentuk jenis memori garis tunda, tetapi satu di mana
propagasi bidang berada di bawah kendali komputer, yang bertentangan dengan maju secara otomatis pada
satu set. tingkat ditentukan oleh bahan yang digunakan. Namun, sistem seperti itu memiliki sedikit keunggulan
dibandingkan twistor, terutama karena tidak memungkinkan akses acak.

Gelembung magnetik

Pada tahun 1967, Bobek bergabung dengan tim di Bell Labs dan mulai bekerja untuk meningkatkan twistor. Dia
berpikir bahwa, jika dia dapat menemukan bahan yang memungkinkan pergerakan bidang dengan mudah hanya
dalam satu arah, potongan bahan tersebut dapat memiliki sejumlah kepala baca/tulis yang diposisikan di
sepanjang tepinya, bukan hanya satu. Pola akan diperkenalkan di salah satu tepi material dan didorong seperti
di twistor, tapi karena mereka bisa dipindahkan dalam satu arah saja, mereka secara alami akan membentuk
"trek" di permukaan, meningkatkan kerapatan areal. Ini akan menghasilkan semacam
dari "putaran 2D".

Paul Charles Michaelis bekerja dengan film tipis magnetik permalloy menemukan bahwa adalah mungkin untuk
menyebarkan domain magnetik dalam arah ortogonal dalam film. Pekerjaan mani ini menyebabkan aplikasi
paten.[2] Perangkat memori dan metode propagasi dijelaskan dalam makalah yang dipresentasikan pada
Konferensi Tahunan ke-13 tentang Magnetisme dan Magnetik
Machine Translated by Google

Materials, Boston, Massachusetts, 15 September 1967. Perangkat ini menggunakan film magnetik tipis
anisotropik yang membutuhkan kombinasi pulsa magnetik yang berbeda untuk arah propagasi ortogonal.
Kecepatan propagasi juga tergantung pada sumbu magnet keras dan mudah.
Perbedaan ini menunjukkan bahwa media magnetik isotropik akan diinginkan.

Memulai pekerjaan memperluas konsep ini dengan menggunakan orthoferrite, Bobek melihat efek tambahan
yang menarik. Dengan bahan pita magnetik yang digunakan dalam twistor, data harus disimpan pada
tambalan yang relatif besar yang dikenal sebagai "domain". Upaya untuk menarik area yang lebih kecil akan
gagal. Dengan ortoferit, jika tambalan itu ditulis dan kemudian medan magnet diterapkan ke seluruh bahan,
tambalan itu akan menyusut menjadi lingkaran kecil, yang disebutnya gelembung. Gelembung ini jauh lebih
kecil daripada "domain" media normal seperti pita, yang menunjukkan bahwa kepadatan area yang sangat
tinggi mungkin terjadi.

Lima penemuan penting terjadi di Bell Labs:

1. Gerakan dua dimensi terkontrol dari domain dinding tunggal dalam film permalloy
2. Aplikasi orthoferrites
3. Penemuan domain silinder yang stabil
4. Penemuan mode operasi akses lapangan
5. Penemuan anisotropi uniaksial yang diinduksi pertumbuhan dalam sistem garnet dan
kesadaran bahwa garnet akan menjadi bahan praktis

Sistem gelembung tidak dapat dijelaskan dengan penemuan tunggal, tetapi dalam hal penemuan-penemuan
di atas. Andy Bobek adalah satu-satunya penemu (4) dan (5) dan co-penemu (2) dan (3); (1) dilakukan
dalam kelompok P. Bonyhard. Pada satu titik, lebih dari 60 ilmuwan sedang mengerjakan proyek di Bell
Labs, banyak di antaranya telah mendapatkan pengakuan di bidang ini. Misalnya, pada bulan September
1974, HED Scovil, PC Michaelis dan Bobek dianugerahi IEEE Morris N.
Liebmann Memorial Award oleh IEEE dengan kutipan berikut: Untuk konsep dan pengembangan domain
magnetik berdinding tunggal (gelembung magnetik), dan untuk pengakuan pentingnya mereka untuk
teknologi memori.
Butuh beberapa waktu untuk menemukan bahan yang sempurna, tetapi mereka menemukan bahwa garnet
ternyata memiliki sifat yang tepat. Gelembung akan mudah terbentuk dalam bahan dan dapat didorong
dengan cukup mudah. Masalah berikutnya adalah membuat mereka pindah ke lokasi yang tepat di mana
mereka dapat dibaca kembali - twistor adalah kawat dan hanya ada satu tempat untuk pergi, tetapi dalam
lembaran 2D hal-hal tidak akan begitu mudah. Berbeda dengan eksperimen aslinya, garnet tidak membatasi
gelembung untuk bergerak hanya dalam satu arah, tetapi sifat gelembungnya terlalu menguntungkan untuk diabaikan.

Solusinya adalah dengan menanamkan pola batang magnet kecil ke permukaan garnet. Ketika medan
magnet kecil diterapkan, mereka akan menjadi magnet, dan gelembung akan "menempel" ke salah satu
ujungnya. Saat membalikkan medan, mereka akan tertarik ke ujung yang jauh, bergerak menuruni
permukaan. Pembalikan lain akan membuat mereka keluar dari ujung bar ke bar berikutnya di baris.

Perangkat memori dibentuk dengan memasang elektromagnet kecil di satu ujung dengan detektor di ujung
lainnya. Gelembung yang tertulis akan perlahan didorong ke yang lain, membentuk lembaran twistor
Machine Translated by Google

berbaris di samping satu sama lain. Melampirkan output dari detektor kembali ke elektromagnet mengubah
lembaran menjadi serangkaian loop, yang dapat menyimpan informasi selama diperlukan.

Memori gelembung adalah memori yang tidak mudah menguap. Bahkan ketika daya dimatikan, gelembung tetap
ada, seperti pola yang terjadi pada permukaan disk drive. Lebih baik lagi, perangkat memori gelembung tidak
memerlukan bagian yang bergerak: medan yang mendorong gelembung di sepanjang permukaan dihasilkan secara
elektrik, sedangkan media seperti tape dan disk drive membutuhkan gerakan mekanis.
Akhirnya, karena ukuran gelembung yang kecil, densitasnya secara teori jauh lebih tinggi daripada perangkat
penyimpanan magnetik yang ada. Satu-satunya downside adalah kinerja; gelembung-gelembung itu harus berputar
ke ujung lembaran sebelum bisa dibaca.

Komersialisasi

Tim Bobeck segera memiliki memori persegi 1 cm yang menyimpan 4.096 bit, sama dengan bidang standar
memori inti. Hal ini memicu minat yang cukup besar dalam industri. Memori gelembung tidak hanya dapat
menggantikan inti tetapi tampaknya juga dapat menggantikan kaset dan disk. Bahkan, tampaknya memori
gelembung akan segera menjadi satu-satunya bentuk memori yang digunakan di sebagian besar aplikasi, dengan
pasar kinerja tinggi menjadi satu-satunya yang tidak dapat mereka layani.

Pada pertengahan 1970-an, hampir setiap perusahaan elektronik besar memiliki tim yang mengerjakan memori
gelembung. Pada akhir 1970-an beberapa produk ada di pasaran, dan Intel merilis 1-
versi megabit, 7110. Namun, pada awal 1980-an, memori gelembung menjadi jalan buntu dengan diperkenalkannya
sistem hard disk dengan kepadatan lebih tinggi, lebih cepat, dan lebih murah. Hampir semua pekerjaan di atasnya
berhenti.

Memori gelembung ditemukan digunakan di pasar khusus melalui tahun 1980-an dalam sistem yang perlu
menghindari tingkat kegagalan mekanis disk drive yang lebih tinggi, dan dalam sistem yang beroperasi dalam
getaran tinggi atau lingkungan yang keras. Aplikasi ini menjadi usang juga dengan perkembangan memori flash,
yang juga membawa manfaat kinerja, kepadatan, dan biaya.

Salah satu aplikasinya adalah sistem video game arcade Sistem Gelembung Konami , yang diperkenalkan pada
tahun 1984. Ini menampilkan kartrid memori gelembung yang dapat dipertukarkan pada papan berbasis 68000.
Sistem Gelembung memerlukan waktu "pemanasan" sekitar 85 detik (diminta oleh pengatur waktu di layar saat
diaktifkan) sebelum permainan dimuat, karena memori gelembung perlu dipanaskan hingga sekitar 30 hingga 40
°C untuk beroperasi dengan benar. Sharp menggunakan memori gelembung di seri PC 5000 mereka, komputer
portabel seperti laptop dari tahun 1983. Nicolet menggunakan modul memori gelembung untuk menyimpan bentuk
gelombang di osiloskop Model 3091 mereka, seperti yang dilakukan HP dalam penganalisis spektrum Model 3561
mereka. GRiD Systems Corporation menggunakannya di laptop awal mereka. Komunikasi TIE menggunakannya
dalam pengembangan awal sistem telepon digital untuk menurunkan tingkat MTBF mereka dan menghasilkan
prosesor pusat sistem telepon non-volatil.

2.15.RAID
RAID (redundant array of independent disks, awalnya redundant array of cheap disks) adalah teknologi
penyimpanan yang menggabungkan beberapa komponen drive disk ke dalam unit logis.
Machine Translated by Google

Data didistribusikan di seluruh drive dalam salah satu dari beberapa cara yang disebut "tingkat RAID", tergantung pada tingkat
redundansi dan kinerja yang diperlukan.

Istilah "RAID" pertama kali didefinisikan oleh David Patterson, Garth A. Gibson, dan Randy Katz di University of California, Berkeley
pada tahun 1987.[3] Pemasar yang mewakili produsen industri RAID kemudian mencoba menemukan kembali istilah tersebut untuk
menggambarkan susunan disk independen yang berlebihan sebagai sarana untuk melepaskan harapan berbiaya rendah dari teknologi
RAID.

RAID sekarang digunakan sebagai istilah umum untuk skema penyimpanan data komputer yang dapat membagi dan mereplikasi data
di antara beberapa drive fisik: RAID adalah contoh virtualisasi penyimpanan dan lariknya dapat diakses oleh sistem operasi sebagai
satu drive tunggal. Skema atau arsitektur yang berbeda diberi nama dengan kata RAID diikuti dengan angka (misalnya RAID 0, RAID
1). Setiap skema menyediakan antara tujuan utama: keandalan dan ketersediaan, kinerja dan kapasitas. Tingkat RAID yang lebih
besar dari RAID 0 memberikan
seluruh disk.perlindungan terhadap
sebuah berbeda
kesalahan pembacaan (sektor) yang tidak dapat dipulihkan, serta
keseimbangan itu kegagalan

2.15.1.RAID Level
Sejumlah skema standar telah berkembang. Ini disebut level. Awalnya, ada lima level RAID, tetapi banyak variasi telah berkembang—
terutama beberapa level bersarang dan banyak level non- standar (kebanyakan berpemilik). Level RAID dan format data terkaitnya
distandarisasi oleh Storage Networking Industry Association (SNIA) dalam standar Common RAID Disk Drive Format (DDF):

serangan 0

RAID 0 ( pengupasan level blok tanpa paritas atau pencerminan) tidak memiliki (atau nol) redundansi. Ini memberikan peningkatan
kinerja dan penyimpanan tambahan tetapi tidak ada toleransi kesalahan. Setiap kegagalan drive menghancurkan array, dan
kemungkinan kegagalan meningkat dengan lebih banyak drive dalam array.

serangan 1

Dalam RAID 1 (mirroring tanpa paritas atau striping), data ditulis secara identik ke dua drive, sehingga menghasilkan "set yang
dicerminkan"; permintaan baca dilayani oleh salah satu dari dua drive yang berisi data yang diminta, mana saja yang melibatkan waktu
pencarian paling sedikit ditambah latensi rotasi.
Sebaliknya, permintaan tulis memperbarui garis-garis dari kedua drive. Performa penulisan tergantung pada
yang lebih lambat dari dua penulisan (yaitu yang melibatkan waktu pencarian dan latensi rotasi yang lebih besar). Pada
setidaknya dua drive diperlukan untuk membentuk array seperti itu. Sementara lebih banyak drive konstituen dapat digunakan, banyak
implementasi hanya menangani maksimal dua. Array terus beroperasi selama setidaknya satu drive berfungsi.

serangan 2

Dalam RAID 2 (pengupasan tingkat bit dengan paritas kode Hamming khusus), semua rotasi spindel disk disinkronkan, dan data
dipisah sedemikian rupa sehingga setiap bit berurutan berada pada drive yang berbeda. Codeparity Hamming dihitung di seluruh bit
yang sesuai dan disimpan pada setidaknya satu drive paritas.[5] Level RAID teoretis ini tidak digunakan dalam praktik.

serangan 3
Machine Translated by Google

Dalam RAID 3 (penghapusan tingkat byte dengan paritas khusus), semua rotasi spindel disk disinkronkan, dan data dipisah
sehingga setiap byte berurutan berada pada drive yang berbeda. Paritas dihitung di seluruh byte yang sesuai dan disimpan
pada drive paritas khusus. Meskipun implementasi ada,
RAID 3 tidak umum digunakan dalam praktik.

serangan 4

RAID 4 (pengupasan level blok dengan paritas khusus) setara dengan RAID 5 kecuali bahwa semua data paritas disimpan
pada satu drive. Dalam pengaturan ini, file dapat didistribusikan di antara beberapa drive. Setiap drive beroperasi secara
independen, memungkinkan permintaan I/O dilakukan secara paralel.[rujukan?]

RAID 4 sebelumnya digunakan terutama oleh NetApp, tetapi sekarang sebagian besar telah digantikan oleh implementasi
RAID 6 (RAID-DP).

RAID 5

RAID 5 (pengupasan level blok dengan paritas terdistribusi) mendistribusikan paritas bersama dengan data dan mengharuskan
semua drive kecuali satu untuk beroperasi. Array tidak dihancurkan oleh kegagalan drive tunggal. Pada kegagalan drive,
setiap pembacaan berikutnya dapat dihitung dari paritas terdistribusi sedemikian rupa sehingga kegagalan drive
disembunyikan dari pengguna akhir. RAID 5 membutuhkan setidaknya tiga disk.

Favorit RAID 6 Net 120

RAID 6 (pengupasan level blok dengan paritas terdistribusi ganda) memberikan toleransi kesalahan hingga dua drive yang
gagal. Ini membuat grup RAID yang lebih besar menjadi lebih praktis, terutama untuk sistem dengan ketersediaan tinggi. Ini
menjadi semakin penting karena hard disk berkapasitas besar memperpanjang waktu yang diperlukan untuk memulihkan
dari kegagalan satu hard disk. Seperti RAID 5, kegagalan drive tunggal menghasilkan penurunan kinerja seluruh larik hingga
drive yang gagal diganti dan data terkait dibangun kembali

serangan 10

Dalam RAID 10, sering disebut sebagai RAID 1+0 (mirroring dan striping), data ditulis dalam garis-garis di seluruh disk
primer yang telah dicerminkan ke disk sekunder.

2.16.Organisasi Cache
Prinsip

o Dimaksudkan untuk memberikan kecepatan memori mendekati memori tercepat yang tersedia tetapi dengan ukuran besar,
mendekati harga memori yang lebih lambat

o Cache diperiksa terlebih dahulu untuk semua referensi memori.


Machine Translated by Google

o Jika tidak ditemukan, seluruh blok di mana referensi itu berada di memori utama disimpan dalam slot cache,
yang disebut baris

o Setiap baris menyertakan tag (biasanya sebagian dari alamat memori utama) yang mengidentifikasi blok
tertentu yang sedang disimpan

o Lokalitas referensi menyiratkan bahwa referensi di masa mendatang kemungkinan akan berasal dari blok
memori ini, sehingga jalur cache mungkin akan digunakan berulang kali

Proporsi referensi memori, yang ditemukan sudah disimpan dalam cache, adalah

disebut rasio pukulan.

Elemen Desain

Ada sejumlah besar implementasi cache, tetapi elemen desain dasar ini berfungsi untuk mengklasifikasikan
arsitektur cache: cache ukuran; fungsi pemetaan; algoritma penggantian; menulis kebijakan; garis ukuran;
jumlah cache

Ukuran Tembolok:

Ada beberapa motivasi untuk meminimalkan ukuran cache. Semakin besar cache, semakin besar
jumlah gerbang yang terlibat dalam menangani cache diperlukan. Hasilnya adalah cache yang lebih besar
akhirnya menjadi sedikit lebih lambat daripada yang kecil. Area chip dan board yang tersedia juga membatasi
ukuran cache.

Karena kinerja cache sangat sensitif terhadap sifat beban kerja, tidak mungkin untuk mencapai ukuran cache
tunggal yang optimal.

Fungsi Pemetaan

Fungsi pemetaan digunakan sebagai cara untuk memutuskan blok memori utama mana yang menempati baris
cache mana. Karena jumlah baris cache lebih sedikit daripada blok memori utama, algoritma diperlukan untuk
memutuskan hal ini. Tiga teknik digunakan, yaitu langsung, asosiatif dan set asosiatif, yang menentukan
organisasi cache.
Langsung Ini adalah bentuk pemetaan yang paling sederhana. Satu blok dari memori utama dipetakan menjadi
hanya satu baris memori cache yang mungkin. Karena ada lebih banyak blok memori utama daripada baris cache, banyak
Machine Translated by Google

blok di memori utama dapat dipetakan ke baris yang sama dalam memori cache.

Ke melaksanakan ini fungsi, menggunakan itu mengikuti rumus:

= %

di mana adalah nomor baris cache, adalah nomor blok di memori utama, adalah jumlah total baris di operator.
cache Penyimpanan dan % makhluk itu modulus

Kerugian utama menggunakan jenis pemetaan ini adalah bahwa ada lokasi cache yang tetap untuk setiap blok tertentu
di memori utama. Jika dua blok memori yang berbagi jalur cache yang sama terus direferensikan, cache miss akan
terjadi dan kedua blok ini akan terus ditukar, menghasilkan akses memori yang lebih lambat karena waktu yang
dibutuhkan untuk mengakses memori utama (atau level memori berikutnya) .
Asosiatif Jenis pemetaan ini mengatasi kelemahan pemetaan langsung dengan mengizinkan setiap blok memori utama
dimuat ke dalam baris cache mana pun. Untuk melakukannya, logika kontrol cache menafsirkan alamat memori sebagai
tag dan bidang kata. Tag secara unik mengidentifikasi blok di memori utama. Kerugian utama dari metode ini adalah
untuk mengetahui apakah blok tertentu ada dalam cache, semua baris cache harus diperiksa. Dengan menggunakan
metode ini, algoritma penggantian diperlukan untuk memaksimalkan potensinya.

Set Asosiatif Jenis pemetaan ini dirancang untuk memanfaatkan kekuatan dari dua pemetaan sebelumnya, sambil
meminimalkan kekurangannya. Cache dibagi menjadi beberapa set yang berisi jumlah baris yang sama. Setiap blok di
memori utama dipetakan menjadi satu set di memori cache yang serupa dengan pemetaan langsung. Di dalam set,
cache bertindak sebagai pemetaan asosiatif di mana sebuah blok dapat menempati baris apa pun di dalam set itu.
Algoritma pengganti dapat digunakan dalam set.

Algoritma Pengganti

Untuk pemetaan langsung di mana hanya ada satu baris yang mungkin untuk satu blok memori, tidak
diperlukan algoritma pengganti. Namun, untuk pemetaan asosiatif dan himpunan asosiatif, diperlukan suatu
algoritma. Untuk kecepatan maksimum, algoritma ini diimplementasikan di perangkat keras. Empat dari
algoritma yang paling umum adalah:
paling baru-baru ini digunakan Ini menggantikan baris kandidat dalam memori cache yang telah ada paling lama tanpa
referensi ke sana. first in first out Ini menggantikan baris kandidat dalam cache yang telah ada paling lama. paling jarang
digunakan Ini menggantikan baris kandidat dalam cache yang memiliki referensi paling sedikit. penggantian acak
Algoritma ini secara acak memilih garis yang akan diganti dari antara calon baris. Penelitian telah menunjukkan bahwa
ini hanya menghasilkan kinerja yang sedikit lebih rendah daripada algoritma lainnya.

Tulis Kebijakan

Ini penting karena jika perubahan dibuat pada baris dalam memori cache, perubahan yang sesuai harus
dilakukan pada blok di memori utama sebelum menghapus baris dari cache.
Masalah yang harus dihadapi adalah lebih dari satu perangkat mungkin memiliki akses ke memori utama
(modul I/O). Jika lebih dari satu prosesor pada bus yang sama dengan cache-nya sendiri yang terlibat,
masalahnya menjadi lebih kompleks. Setiap perubahan dalam cache atau memori utama dapat membatalkan
yang lain.
Machine Translated by Google

Teknik paling sederhana disebut write throughÿ. Dalam menggunakan teknik ini, baik memori utama
dan cache ditulis ketika operasi tulis dilakukan, memastikan bahwa memori utama selalu valid. Kerugian
utama dari teknik ini adalah bahwa hal itu dapat menghasilkan lalu lintas memori utama yang
substansial, menyebabkan leher dan botol
penurunan kinerja.

Teknik alternatif, yang dikenal sebagai write backÿ meminimalkan penulisan memori utama. Pembaruan
hanya dilakukan di cache. Bit pembaruan yang terkait dengan saluran telah diatur. Memori utama
diperbarui ketika baris dalam cache diganti hanya jika bit pembaruan telah disetel. Masalah dengan
teknik ini adalah bahwa semua perubahan pada memori utama harus dilakukan melalui cache agar
tidak membatalkan bagian dari memori utama, yang berpotensi menyebabkan bottle neck.

Ukuran Garis

Ketika sebuah blok data diambil dari memori utama dan dimasukkan ke dalam cache, kata yang
diinginkan dan sejumlah kata yang berdekatan diambil. Ketika ukuran blok meningkat dari ukuran yang
sangat kecil, rasio hit pada awalnya akan meningkat karena prinsip lokalitas referensi, yang mengatakan
bahwa kata-kata di sekitar kata yang direferensikan lebih mungkin untuk direferensikan dalam waktu
dekat. Namun, ketika ukuran blok meningkat, rasio hit akan berkurang karena kemungkinan penggunaan
kembali informasi baru menjadi lebih kecil daripada penggunaan informasi yang telah diganti.

2.17.Sistem Memori Komputer Mikro


Komputer mikro adalah komputer kecil yang relatif murah dengan mikroprosesor sebagai unit
pemrosesan pusat (CPU). Ini termasuk mikroprosesor, memori, dan fasilitas input/output (I/O).
Mikrokomputer menjadi populer pada 1970-an dan 80-an dengan munculnya mikroprosesor yang
semakin kuat. Pendahulu komputer ini, mainframe dan minicomputer, secara komparatif jauh lebih
besar dan lebih mahal (meskipun memang mainframe masa kini seperti mesin IBM System z
menggunakan satu atau lebih mikroprosesor khusus sebagai CPU mereka).
Banyak mikrokomputer (bila dilengkapi dengan keyboard dan layar untuk input dan output) juga
merupakan komputer pribadi (dalam pengertian umum).

Istilah komputer mikro mulai populer digunakan setelah pengenalan komputer mini, meskipun Isaac
Asimov menggunakan istilah komputer mikro dalam cerita pendeknya "The Dying Night" pada awal
tahun 1956 (diterbitkan dalam The Magazine of Fantasy and Science Fiction pada bulan Juli tahun itu).
Terutama, mikrokomputer menggantikan banyak komponen terpisah yang membentuk CPU komputer
mini dengan satu chip mikroprosesor terintegrasi. Para pengembang Perancis dari Micral N (1973)
mengajukan paten mereka dengan istilah "Micro-ordinateur", secara harfiah setara dengan
"Microcomputer", untuk menunjuk mesin solid state pertama yang dirancang dengan mikroprosesor. Di
AS, model paling awal seperti Altair 8800 sering dijual sebagai kit untuk dirakit oleh pengguna, dan
datang dengan RAM 256 byte, dan tidak ada perangkat input/output selain lampu indikator dan sakelar,
yang berguna sebagai bukti konsep untuk mendemonstrasikan apa yang dapat dilakukan oleh perangkat
sederhana seperti itu. Namun, karena mikroprosesor dan memori semikonduktor menjadi lebih murah,
mikrokomputer pada gilirannya menjadi lebih murah dan lebih mudah digunakan:
Machine Translated by Google

Chip logika yang semakin murah seperti seri 7400 memungkinkan sirkuit khusus yang murah untuk
antarmuka pengguna yang ditingkatkan seperti input keyboard, alih-alih hanya deretan sakelar untuk
beralih bit satu per satu.
Penggunaan kaset audio untuk penyimpanan data yang murah menggantikan entri ulang program
secara manual setiap kali perangkat dihidupkan.
Array logika silikon murah yang besar gerbang dalam bentuk memori hanya- baca
dan EPROM memungkinkan program utilitas dan kernel yang dapat di -boot sendiri untuk disimpan
dalam mikrokomputer. Program tersimpan ini dapat secara otomatis memuat perangkat lunak yang
lebih kompleks dari perangkat penyimpanan eksternal tanpa campur tangan pengguna, untuk
membentuk sistem turnkey murah yang tidak memerlukan pakar komputer untuk memahami atau
menggunakan perangkat tersebut.
Memori akses acak menjadi cukup murah untuk mendedikasikan sekitar 1-2 kilobyte memori ke
buffer bingkai pengontrol tampilan video , untuk tampilan teks 40x25 atau 80x25 atau grafik warna kotak-
kotak di televisi rumah tangga biasa. Ini menggantikan teletypewriter yang lambat, kompleks, dan mahal
yang sebelumnya umum digunakan sebagai antarmuka untuk minicomputer dan mainframe.

Semua peningkatan biaya dan kegunaan ini menghasilkan ledakan popularitas mereka selama akhir 1970-
an dan awal 1980-an. Sejumlah besar pembuat komputer mengemas mikrokomputer untuk digunakan
dalam aplikasi bisnis kecil. Pada tahun 1979, banyak perusahaan seperti Cromemco, Processor Technology,
IMSAI, North Star Computers, Southwest Technical Products Corporation, Ohio Scientific, Altos, Morrow
Designs dan lainnya memproduksi sistem yang dirancang baik untuk pengguna akhir yang banyak akal atau
perusahaan konsultan untuk memberikan sistem bisnis seperti akuntansi, manajemen database, dan
pengolah kata untuk usaha kecil. Ini memungkinkan bisnis yang tidak mampu membayar sewa komputer
mini atau layanan time-sharing kesempatan untuk mengotomatisasi fungsi bisnis, tanpa (biasanya)
mempekerjakan staf penuh waktu untuk mengoperasikan komputer. Sistem perwakilan era ini akan
menggunakan bus S100, prosesor 8-bit seperti Intel 8080 atau Zilog Z80, dan sistem operasi CP/M atau MP/
M . Meningkatnya ketersediaan dan kekuatan komputer desktop untuk penggunaan pribadi menarik
perhatian lebih banyak pengembang perangkat lunak. Dalam waktu, dan sebagai industri matang, pasar
untuk komputer pribadi standar di sekitar IBM PC kompatibel menjalankan DOS, dan kemudian Windows.
Komputer desktop modern , konsol video game, laptop, PC tablet, dan berbagai jenis perangkat genggam,
termasuk ponsel, kalkulator saku, dan sistem tertanam industri, semuanya dapat dianggap sebagai contoh
komputer mikro menurut definisi yang diberikan di atas.

2.18.Sistem Masukan/Keluaran
Komputer tujuan umum harus memiliki kemampuan untuk bertukar informasi dengan berbagai perangkat di
berbagai lingkungan. Komputer dapat berkomunikasi dengan komputer lain melalui Internet dan mengakses
informasi di seluruh dunia. Mereka adalah bagian integral dari peralatan rumah tangga, peralatan manufaktur,
sistem transportasi, perbankan dan terminal point-of-sale. Dalam bab ini, kita mempelajari berbagai cara di
mana operasi I/O dilakukan.
Machine Translated by Google

Pengaturan sederhana untuk menghubungkan perangkat I/O ke komputer adalah dengan menggunakan
pengaturan bus tunggal, seperti yang ditunjukkan pada gambar di atas. Setiap perangkat I/O diberikan satu set
alamat yang unik. Ketika prosesor menempatkan alamat tertentu pada baris alamat, perangkat yang mengenali
alamat ini merespons perintah yang dikeluarkan pada jalur kontrol. Prosesor meminta operasi baca atau tulis
yang ditransfer melalui jalur data. Ketika perangkat I/O dan memori berbagi ruang alamat yang sama,
pengaturannya disebut I/O yang dipetakan memori.

Antarmuka keluaran masukan

Pertimbangkan, misalnya, dengan I/O yang dipetakan memori, jika DATAIN adalah alamat buffer input keyboard
Pindahkan DATAIN, R0 Dan DATAOUT adalah alamat buffer output layar/printer Move R0, DATAOUT

Ini mengirimkan isi register R0 ke lokasi DATAOUT, yang mungkin merupakan buffer data keluaran dari unit
tampilan atau printer. Sebagian besar sistem komputer menggunakan I/O yang dipetakan memori. Beberapa
prosesor memiliki instruksi I/O khusus untuk melakukan transfer I/O. Perangkat keras yang diperlukan untuk
menghubungkan perangkat I/O ke bus ditunjukkan di bawah ini:
Machine Translated by Google

Dekoder alamat memungkinkan perangkat mengenali alamatnya ketika alamat ini muncul di baris alamat. Register data
menyimpan data. Daftar status berisi informasi. Dekoder alamat, register data dan status serta kontrol yang diperlukan untuk
mengoordinasikan transfer I/O merupakan rangkaian antarmuka Misalnya: Keyboard, instruksi yang membaca karakter dari
keyboard harus dijalankan hanya jika karakter tersedia di buffer input keyboard antarmuka. Prosesor berulang kali memeriksa
tanda status untuk mencapai sinkronisasi antara prosesor dan perangkat I/O, yang disebut sebagai I/O yang dikendalikan
program.

Dua mekanisme yang umum digunakan untuk mengimplementasikan operasi I/O adalah:

• Menginterupsi dan

• Akses memori langsung

Interupsi: sinkronisasi dicapai dengan meminta perangkat I/O mengirim sinyal khusus melalui bus setiap kali siap untuk
operasi transfer data.

Akses memori langsung: Untuk perangkat I/O berkecepatan tinggi. Antarmuka perangkat mentransfer data langsung ke atau
dari memori tanpa memberi tahu prosesor.

2.19.DMA
Pada dasarnya untuk perangkat I/O berkecepatan tinggi, antarmuka perangkat mentransfer data langsung ke atau dari memori
tanpa memberi tahu prosesor. Ketika interupsi digunakan, overhead tambahan terlibat dengan menyimpan dan memulihkan
penghitung program dan informasi status lainnya. Untuk mengirim
Machine Translated by Google

blok besar data dengan kecepatan tinggi, pendekatan alternatif digunakan. Unit kontrol khusus akan memungkinkan
transfer blok data secara langsung antara perangkat eksternal dan memori utama, tanpa intervensi terus-menerus
oleh prosesor.

Kontroler DMA adalah sirkuit kontrol yang melakukan transfer DMA, merupakan bagian dari antarmuka perangkat I/
O. Ini melakukan fungsi yang biasanya dilakukan oleh prosesor. Pengontrol DMA harus menambah alamat memori
dan melacak jumlah transfer. Operasi pengontrol DMA harus berada di bawah kendali program yang dijalankan oleh
prosesor. Untuk memulai transfer blok kata, prosesor mengirimkan alamat awal, jumlah kata dalam blok dan arah
transfer. Saat menerima informasi ini, pengontrol DMA mentransfer seluruh blok dan menginformasikan prosesor
dengan menaikkan sinyal interupsi. Saat transfer DMA sedang berlangsung, prosesor dapat digunakan untuk
menjalankan program lain. Setelah transfer DMA selesai, prosesor dapat kembali ke program yang meminta transfer
tersebut.

• Tiga register dalam antarmuka DMA adalah:

• Alamat awal

• Jumlah kata

• Status dan bendera kontrol

Konflik dapat muncul jika prosesor dan pengontrol DMA atau dua pengontrol DMA mencoba menggunakan bus
pada saat yang sama untuk mengakses memori utama. Untuk mengatasi ini, prosedur arbitrase diimplementasikan
pada bus untuk mengoordinasikan aktivitas semua perangkat yang meminta transfer memori.
Machine Translated by Google

2.20.Prosesor keluaran masukan


Kontroler I/O telah meningkat menyebabkan yang berperilaku seperti prosesor.

CPU menyebabkan pengontrol I/O mengeksekusi program I/O di memori.

CPU menyebabkan pengontrol I/O mengeksekusi memori program I/O. Pengontrol I/O mengambil dan
menjalankan instruksinyaTema 5. Unidad de E/S 53Pengontrol I/O mengambil dan mengeksekusi instruksinya
instruksi tanpa intervensi CPU. Untuk jenis pengontrol I/O ini disebut saluran I/O.

Perbaikan saluran I/O selanjutnya adalah dengan memasukkan memori lokal ke dalamnya yang sekarang
dapat dilihat seperti komputer. Dengan arsitektur ini, seperangkat perangkat I/O yang hebat dengan
intervensi minimum CPU dapat dikendalikan. Untuk jenis pengontrol I/O ini disebut prosesor I/O.

Jenis prosesor I/O:

Saluran pemilih. Saluran pemilih mengontrol beberapa perangkat berkecepatan tinggi. Setiap saat ini
didedikasikan untuk transfer data hanya dengan satu perangkat ini

Multipleksor saluran. Multiplexor saluran dapat mengontrol operasi bentuk simultan dari ES dengan
beberapa perangkat. Untuk periferal kecepatan rendah, multipleksor byte. Untuk perangkat berkecepatan
tinggi, multipleksor blok
Machine Translated by Google

2.21.Antarmuka Komunikasi Eksternal


nput Output Interface berhubungan dengan komunikasi unit penyimpanan internal dan eksternal. Input dapat didefinisikan
sebagai data yang dimasukkan ke dalam sistem dan output didefinisikan sebagai informasi yang diwakili oleh sistem.
Antarmuka secara umum dapat dipahami sebagai semacam barikade yang memungkinkan komunikasi unit internal dan
eksternal hanya dengan mengikuti protokol yang ditentukan. Kami membutuhkan tautan komunikasi khusus untuk
menghubungkan perangkat periferal dan unit pemrosesan pusat. Motif antarmuka ini adalah untuk menyelesaikan perbedaan
antara unit pemrosesan
pusat dan setiap periferal.

Beberapa perbedaan utama adalah:

1. Perangkat periferal bersifat elektromagnetik dan elektromekanis dan oleh karena itu mode operasinya sepenuhnya
berbeda dari CPU yang merupakan perangkat elektronik, juga memori bekerja dengan cara yang berbeda. Itu sebabnya kita
membutuhkan konversi nilai sinyal.

2. Kecepatan CPU komputer dan periferal komputer berbeda. CPU secara umum memiliki kapasitas untuk melakukan
sejumlah besar instruksi per detik sementara periferal pada umumnya memiliki kecepatan yang sangat rendah. Kecepatan
transfer data periferal ini biasanya lebih lambat daripada kecepatan transfer CPU; juga sinkronisasi perlu dipertahankan
untuk kelancaran transfer.
Oleh karena itu kita membutuhkan sebuah antarmuka.
Machine Translated by Google

3. Kode data dan format periferal berbeda dengan format kata di CPU dan memori.

4. Kecepatan dan mode operasi periferal yang berbeda juga berbeda, sehingga untuk menyinkronkan periferal
yang berbeda di antara mereka dan juga dengan antarmuka CPU dirancang.

Untuk bantuan pekerjaan rumah dan bantuan tugas , hubungi pakar kami di Transtutors.com. Kami memiliki
tim khusus untuk menyelesaikan semua keraguan Anda dan juga akan mencoba menjelaskannya dari awal. Kami
mencakup mata pelajaran dari sekolah, sarjana dan tingkat pascasarjana di hampir semua disiplin ilmu.

Untuk mengatasi perbedaan ini, sistem komputer perlu menyertakan komponen perangkat keras khusus antara
CPU dan periferal untuk menyinkronkan, mengawasi, dan memandu input –
transfer output antara periferal dan memori. Komponen-komponen ini disebut sebagai antarmuka karena
mereka menghubungkan antara periferal dan bus prosesor. Selain itu, setiap periferal dapat memiliki antarmuka
sendiri yang terpisah untuk menyinkronkan dan mengawasi pengontrolnya sendiri.

Bus input-output dari prosesor terpasang ke semua antarmuka periferal untuk berkomunikasi. Untuk
berkomunikasi dengan setiap perangkat periferal secara terpisah, prosesor menempatkan alamat perangkat
pada baris alamat. Setiap antarmuka yang terpasang pada bus input-output berisi dekoder yang menerjemahkan
alamat dari baris alamat dan menempatkannya dengan benar. Ketika dekoder merasakan bahwa alamat tersebut
milik perangkat periferalnya , maka hubungan antara jalur bus dan perangkat yang dikontrolnya diaktifkan.
Istirahat semua yang cocok tidak ditemukan tetap dinonaktifkan.

Prosesor menyediakan kode fungsi di jalur kontrol ini. Antarmuka yang dipilih merespons kode fungsi dan
mengeksekusinya dan kemudian bergerak maju ke yang berikutnya.

Untuk bantuan lebih lanjut, masuk ke Transtutors.com. Pakar kami juga memberikan bantuan pekerjaan rumah
dan bantuan tugas. Kami sangat tepat waktu untuk pengaturan waktu dan spesifikasi yang Anda berikan.
Kami mencakup berbagai topik dari sekolah hingga tingkat pascasarjana. Tim kami yang tulus dan berdedikasi
akan menantikan setiap keraguan Anda bahkan setelah menyelesaikan tugas Anda jika Anda menemukannya.

2.22.Pemrosesan Interupsi
Ada banyak situasi di mana tugas-tugas lain dapat dilakukan sambil menunggu perangkat I/O menjadi siap. Sinyal
perangkat keras yang disebut Interrupt akan memperingatkan prosesor ketika perangkat I/O telah siap. Jalur
interupsi-permintaan biasanya didedikasikan untuk tujuan ini. Misalnya, pertimbangkan rutinitas COMPUTE dan
PRINT. Rutin yang dieksekusi sebagai tanggapan atas permintaan interupsi disebut rutin layanan interupsi.
Transfer kontrol melalui penggunaan interupsi terjadi. Prosesor harus menginformasikan perangkat bahwa
permintaannya telah dikenali dengan mengirimkan sinyal interupsi-pengakuan. Oleh karena itu kita harus
mengetahui perbedaan antara Interrupt Vs Subroutine. Latensi interupsi berkaitan dengan menyimpan informasi
dalam register akan meningkatkan
Machine Translated by Google

penundaan antara waktu permintaan interupsi diterima dan dimulainya eksekusi rutin layanan interupsi.

Perangkat keras interupsi Sebagian besar komputer memiliki beberapa perangkat I/O yang dapat meminta interupsi.
Jalur permintaan interupsi tunggal dapat digunakan untuk melayani n perangkat. Mengaktifkan dan Menonaktifkan
Interupsi Semua komputer pada dasarnya harus dapat mengaktifkan dan menonaktifkan interupsi sesuai keinginan.
Sekali lagi pertimbangkan kembali contoh COMPUTE dan PRINT. Ketika sebuah perangkat mengaktifkan sinyal
permintaan interupsi, itu membuat sinyal ini tetap aktif sampai ia mengetahui bahwa prosesor telah menerima permintaannya.
Saat interupsi diaktifkan, berikut ini adalah skenario tipikal:

• Perangkat memunculkan permintaan interupsi.

• Prosesor menginterupsi program yang sedang dijalankan.

• Interupsi dinonaktifkan dengan mengubah bit kontrol dalam register status prosesor (PS).

• Perangkat diinformasikan bahwa permintaannya telah dikenali dan menonaktifkan sinyal permintaan interupsi.

• Tindakan yang diminta oleh interupsi dilakukan oleh rutin layanan interupsi.

• Interupsi diaktifkan dan eksekusi program yang terputus dilanjutkan. Menangani beberapa perangkat Saat menangani
beberapa perangkat, masalah yang terkait adalah:

• Bagaimana prosesor mengenali perangkat yang meminta interupsi?

• Bagaimana prosesor dapat memperoleh alamat awal dari rutin yang sesuai?

• Haruskah perangkat diizinkan untuk menginterupsi prosesor saat interupsi lain sedang dilayani?

• Bagaimana dua atau lebih permintaan interupsi simultan ditangani?

Interupsi bervektor -Sebuah perangkat yang meminta interupsi dapat mengidentifikasi dirinya sendiri (dengan
mengirimkan kode khusus) langsung ke prosesor, sehingga prosesor segera mempertimbangkannya.

Interrupt nesting Prosesor harus terus menjalankan rutin layanan interupsi sampai selesai, sebelum menerima
permintaan interupsi dari perangkat kedua. Pengecualian hak istimewa berarti mereka menjalankan instruksi istimewa.
Jalur permintaan interupsi dan pengakuan individu juga dapat diimplementasikan. Implementasi prioritas interupsi
menggunakan permintaan interupsi individu dan jalur pengakuan telah ditunjukkan pada gambar

Permintaan simultan Prosesor harus memiliki beberapa mekanisme untuk memutuskan permintaan mana yang akan
dilayani ketika permintaan simultan tiba. Di sini, daisy chain dan pengaturan grup prioritas sebagai skema prioritas
interupsi dibahas. Permintaan simultan berdasarkan prioritas dipertimbangkan di banyak organisasi.
Machine Translated by Google

Mengontrol permintaan perangkat Pada akhir perangkat, bit pengaktif interupsi menentukan apakah diizinkan untuk
menghasilkan permintaan interupsi. Di ujung prosesor, ini menentukan apakah permintaan interupsi yang diberikan akan
diterima.

Pengecualian Istilah pengecualian digunakan untuk merujuk pada setiap peristiwa yang menyebabkan gangguan. Oleh
karena itu, interupsi I/O adalah salah satu contoh pengecualian.

• Pemulihan dari kesalahan – Ini adalah teknik untuk memastikan bahwa semua komponen perangkat keras beroperasi
dengan benar.

• Debugging – menemukan kesalahan dalam program, trace dan breakpoint (hanya pada titik tertentu yang dipilih oleh
pengguna).

• Pengecualian hak istimewa – menjalankan instruksi hak istimewa untuk melindungi OS komputer.

Penggunaan interupsi dalam Sistem Operasi Sistem operasi adalah perangkat lunak sistem yang juga disebut sebagai
manajer sumber daya, karena mengelola semua jenis perangkat periferal komputer secara efisien.
Masalah berbeda yang ditangani oleh sistem operasi adalah: Menetapkan prioritas di antara pekerjaan, Fitur keamanan dan
perlindungan, menggabungkan rutinitas layanan interupsi untuk semua perangkat dan Multitasking, irisan waktu, proses,
status program, sakelar konteks, dan lainnya.

2.23.BUS arbitrase
Perangkat yang diizinkan untuk memulai transfer data di bus pada waktu tertentu disebut master bus. Arbitrase adalah
proses dimana perangkat berikutnya untuk menjadi master bus dipilih dan master bus ditransfer ke sana. Kedua pendekatan
tersebut adalah arbitrase terpusat dan terdistribusi. Dalam terpusat, arbiter bus tunggal melakukan arbitrase yang diperlukan
sedangkan di terdistribusi, semua perangkat berpartisipasi dalam pemilihan master bus berikutnya. Arbiter bus dapat berupa
prosesor atau unit terpisah yang terhubung ke bus. Prosesor biasanya adalah master bus kecuali jika ia memberikan
mastership bus ke salah satu pengontrol DMA. Pengaturan sederhana untuk arbitrase bus menggunakan daisy chain dan
skema arbitrase terdistribusi

Dalam arbitrase terpusat, Pengaturan sederhana untuk arbitrase bus menggunakan rantai daisy menunjukkan solusi
arbitrase. Skema prioritas berputar dapat digunakan untuk memberikan semua perangkat kesempatan yang sama untuk
diservis (BR1 hingga BR4). Dalam Arbitrase Terdistribusi, semua perangkat yang menunggu untuk menggunakan bus
memiliki tanggung jawab yang sama dalam menjalankan proses arbitrase, tanpa menggunakan arbiter pusat. Driver adalah
tipe kolektor terbuka. Oleh karena itu, jika input ke satu driver sama dengan 1 dan input ke driver lain yang terhubung ke
jalur bus yang sama sama dengan 0 bus akan berada dalam kondisi tegangan rendah. Ini menggunakan ARB0 ke ARB3.
Machine Translated by Google

2.24.Floppy Drive
Floppy disk, atau disket, adalah media penyimpanan disk yang terdiri dari disk media penyimpanan magnetik
yang tipis dan fleksibel, disegel dalam wadah plastik persegi panjang yang dilapisi dengan kain yang menghilangkan
partikel debu. Mereka dibaca dan ditulis oleh floppy disk drive (FDD).

Disket, awalnya sebagai media 8 inci (200 mm) dan kemudian dalam ukuran 5,25 inci (133 mm) dan 3,5 inci (90
mm), adalah bentuk penyimpanan dan pertukaran data di mana-mana dari pertengahan 1970-an hingga yang
pertama. dekade abad ke-21.[1]
1
Pada 2010, motherboard komputer jarang diproduksi dengan dukungan floppy drive; 3 2-
1
disket inci dapat digunakan sebagai drive USB eksternal, tetapi drive 5 4 inci, 8 inci, dan non-standar
hanya dapat ditangani oleh peralatan lama.

Sementara floppy disk drive masih memiliki beberapa kegunaan yang terbatas, terutama dengan peralatan
komputer industri warisan, mereka telah digantikan oleh metode penyimpanan data dengan kapasitas yang jauh
lebih besar, seperti USB flash drive, drive hard disk eksternal portabel, cakram optik, kartu memori, dan komputer .
jaringan.

Floppy disk paling awal, dikembangkan pada akhir 1960-an, berdiameter 8 inci (200 mm);[1] mereka tersedia
secara komersial pada tahun 1971.[2] Disk dan drive terkait ini diproduksi dan diperbaiki oleh IBM dan perusahaan
lain seperti Memorex, Shugart Associates, dan Burroughs Corporation. Ungkapan "floppy disk" muncul di media
cetak pada awal tahun 1970, dan meskipun pada tahun 1973 IBM mengumumkan media pertamanya sebagai
"Diskette Tipe 1" industri terus menggunakan istilah "floppy disk" atau "floppy".

1
Pada tahun 1976, Shugart Associates memperkenalkan 5 . pertama FDD 4 inci. Pada tahun 1978 ada lebih dari 10
produsen yang memproduksi FDD semacam itu. Ada format floppy disk yang bersaing, dengan versi sektor keras
dan lunak dan skema pengkodean seperti FM, MFM dan GCR. Format 5¼ inci menggantikan format 8-inci untuk
sebagian besar aplikasi, dan format hard disk sektor menghilang. Pada tahun 1984, IBM memperkenalkan floppy
disk dua sisi 1,2 MB bersama dengan model AT-nya. IBM mulai menggunakan disk mikrofloppy 3,5 inci dengan
kepadatan ganda 720 KB pada komputer laptop Convertible pada tahun 1986 dan versi kepadatan tinggi 1,44 MB
dengan garis PS/2 pada tahun 1987. Drive disk ini dapat ditambahkan ke model PC yang lebih lama. Pada tahun
1988 IBM memperkenalkan drive untuk disket "DSED" 2,88 MB dalam model PS/2 top-of-the-line tetapi ini adalah
kegagalan komersial.
1
Sepanjang awal 1980-an, keterbatasan 5 Format 4 inci menjadi jelas. Awalnya dirancang
agar lebih praktis daripada format 8 inci, format itu sendiri terlalu besar; seiring dengan meningkatnya kualitas
media perekaman, data dapat disimpan di area yang lebih kecil.[5] Sejumlah solusi dikembangkan, dengan drive
1
pada 2, 2 2, 3 dan 3 12 inci (dan disk Sony 90,0 mm × 94,0 mm) ditawarkan oleh
berbagai perusahaan. Semuanya memiliki sejumlah keunggulan dibandingkan format lama, termasuk casing kaku
dengan tab perlindungan tulis geser, melindunginya dari kerusakan; pangsa pasar yang besar dari format 5 4 inci
1 baru ini untuk mendapatkan pangsa pasar yang signifikan.[5] Sebuah varian pada desain
mempersulit format
Sony, yang diperkenalkan pada tahun 1982 oleh sejumlah besar produsen, kemudian dengan
cepat diadopsi; pada tahun 1988 3
1 1
2-inci mengalahkan penjualan 5 4 inci.
1 1
Pada akhir 1980-an, 5 Disk 4 inci telah digantikan oleh 3 Disk 2 inci. Dengan disk
1 1
pertengahan 1990-an, 5 Drive 4 inci hampir menghilang sebagai 3 2 inci menjadi
Machine Translated by Google

1
floppy disk yang dominan. Keuntungan dari 3 Disk 2 inci berukuran lebih kecil dan
kasing plastik yang memberikan perlindungan lebih baik dari kotoran dan risiko lingkungan lainnya sementara
5 1
Disk 4 inci tersedia lebih murah per potong sepanjang sejarahnya, biasanya dengan harga disk 2 inci
1
kisaran sepertiga hingga dua pertiga dari 3

2.25.CD-ROM
CD -ROM /ÿsiÿÿdiÿÿrÿm/ adalah compact disc pra-tekan yang berisi data. Nama tersebut merupakan akronim
yang merupakan singkatan dari "Compact Disc Read-Only Memory". Komputer dapat membaca CD ROM,
tetapi tidak dapat menulis di dalamnya.

CD-ROM populer digunakan untuk mendistribusikan perangkat lunak komputer, termasuk permainan video
dan aplikasi multimedia, meskipun data apa pun dapat disimpan (hingga batas kapasitas disk). Beberapa CD,
yang disebut CD yang disempurnakan, menyimpan data dan audio komputer dengan yang terakhir dapat
diputar di pemutar CD, sementara data (seperti perangkat lunak atau video digital) hanya dapat digunakan di
komputer ( seperti CD- CD PC format ISO 9660). ROM).
Buku Kuning adalah standar teknis yang mendefinisikan format CD-ROM. Salah satu set buku bersampul
warna yang berisi spesifikasi teknis untuk semua format CD, Buku Kuning, yang dibuat oleh Sony dan Philips
pada tahun 1988, adalah perpanjangan pertama dari Compact Disc Digital Audio. Itu mengadaptasi format
untuk menampung segala bentuk data.
Drive CD-ROM

Disk CD-ROM dibaca menggunakan drive CD-ROM. Drive CD-ROM dapat dihubungkan ke komputer melalui
antarmuka IDE (ATA), SCSI, SATA, FireWire, atau USB atau antarmuka eksklusif, seperti antarmuka CD
Panasonic. Hampir semua drive CD-ROM modern juga dapat memutar CD audio (serta Video CD dan standar
data lainnya) bila digunakan bersama dengan perangkat lunak yang tepat.

Laser dan optik


Drive CD-ROM menggunakan dioda laser 780 nm inframerah-dekat . Sinar laser diarahkan ke disk melalui
modul pelacakan opto-elektronik, yang kemudian mendeteksi apakah sinar telah dipantulkan atau dihamburkan.

Tarif transfer

Drive CD-ROM dinilai dengan faktor kecepatan relatif terhadap CD musik. Jika CD-ROM dibaca pada
kecepatan rotasi yang sama dengan CD audio, kecepatan transfer data adalah 150 KiB/s, yang biasa disebut
sebagai "1×". Pada kecepatan data ini, lintasan bergerak di bawah titik laser dengan kecepatan sekitar 1,2 m/
s. Untuk mempertahankan kecepatan linier ini saat kepala optik bergerak ke posisi yang berbeda, kecepatan
sudut divariasikan dari 500 rpm di tepi bagian dalam hingga 200 rpm di tepi luar. Peringkat kecepatan 1×
untuk CD-ROM (150 KiB/dtk) berbeda dengan peringkat kecepatan 1× untuk DVD (1,32 MiB/dtk).
Machine Translated by Google

Isu hak cipta

Distributor perangkat lunak, dan khususnya distributor permainan komputer, sering menggunakan berbagai skema
perlindungan salinan untuk mencegah perangkat lunak berjalan dari media apa pun selain CD-ROM asli. Ini agak
berbeda dari perlindungan CD audio karena biasanya diimplementasikan di media dan perangkat lunak itu sendiri. CD-
ROM itu sendiri mungkin berisi sektor "lemah" untuk membuat penyalinan disk menjadi lebih sulit, dan data tambahan
yang mungkin sulit atau tidak mungkin untuk disalin ke CD-R atau image disk, tetapi perangkat lunak akan memeriksa
setiap kali dijalankan untuk memastikan disk asli dan bukan salinan yang tidak sah ada di drive CD-ROM komputer.
Produsen penulis CD (CD-R atau CD-RW) didorong oleh industri musik untuk memastikan bahwa setiap drive yang
mereka hasilkan memiliki pengenal unik , yang akan dikodekan oleh drive pada setiap disk yang direkamnya: RID atau
Kode Identifikasi Perekam.[11] Ini adalah padanan dari Source Identification Code (SID), kode delapan karakter yang
dimulai dengan "IFPI" yang biasanya dicap pada disk yang diproduksi oleh pabrik perekam CD.

2.26.DVD-ROM
DVD adalah format penyimpanan cakram optik digital , ditemukan dan dikembangkan oleh Philips, Sony, Toshiba, dan
Panasonic pada tahun 1995. DVD menawarkan kapasitas penyimpanan yang lebih tinggi daripada cakram padat
dengan dimensi yang sama.

DVD pra-rekaman diproduksi secara massal menggunakan mesin cetak yang secara fisik mencap data ke DVD. Disk
semacam itu dikenal sebagai DVD-ROM, karena data hanya dapat dibaca dan tidak ditulis atau dihapus. Disk DVD
kosong yang dapat direkam (DVD-R dan DVD+R) dapat direkam sekali menggunakan perekam DVD dan kemudian
berfungsi sebagai DVD-ROM. DVD yang dapat ditulis ulang (DVD-RW, DVD+RW, dan DVD-RAM) dapat direkam dan
dihapus beberapa kali.

DVD digunakan dalam format video digital konsumen DVD-Video dan dalam format audio digital konsumen DVD-Audio ,
serta untuk pembuatan cakram AVCHD. DVD yang berisi jenis informasi lain dapat disebut sebagai disk data DVD.

Drive dan pemutar DVD

Drive DVD adalah perangkat yang dapat membaca disk DVD di komputer. Pemutar DVD adalah jenis perangkat tertentu
yang tidak memerlukan komputer untuk bekerja, dan dapat membaca DVD-Video dan DVD Audiodiscs

Laser dan optik

DVD menggunakan cahaya dioda laser dengan panjang gelombang 650 nm , berbeda dengan 780 nm untuk CD. Panjang
gelombang yang lebih pendek ini membuat lubang yang lebih kecil pada permukaan media dibandingkan dengan CD (0,74 m untuk
DVD versus 1,6 m untuk CD), memungkinkan sebagian untuk peningkatan kapasitas penyimpanan DVD.

Sebagai perbandingan, Blu-ray Disc, penerus format DVD, menggunakan panjang gelombang 405 nm, dan satu disk
dual-layer memiliki kapasitas penyimpanan 50 GB.

Tarif transfer
Machine Translated by Google

Kecepatan baca dan tulis untuk drive dan pemutar DVD pertama adalah 1.385 kB/s (1.353 KiB/s); kecepatan ini biasanya
disebut "1×". Model yang lebih baru, pada 18× atau 20×, memiliki kecepatan 18 atau 20 kali lipat. Perhatikan bahwa untuk
drive CD, 1× berarti 153,6 kB/dtk (150 KiB/dtk), sekitar sepersembilan kecepatan

Zip
Zip drive adalah sistem penyimpanan removable disk berkapasitas sedang yang diperkenalkan oleh Iomega pada akhir tahun
1994. Awalnya, Zip disk diluncurkan dengan kapasitas 100 MB, tetapi versi yang lebih baru meningkatkannya menjadi 250 MB
pertama dan kemudian 750 MB.

Format ini menjadi yang paling populer dari produk tipe super-floppy yang mengisi ceruk pasar penyimpanan portabel akhir
1990-an. Namun itu tidak pernah cukup populer untuk menggantikan 3.5-
floppy disk inci juga tidak akan pernah bisa menandingi ukuran penyimpanan yang tersedia pada CD yang dapat ditulis ulang
dan kemudian DVD yang dapat ditulis ulang. USB flash drive akhirnya terbukti menjadi media penyimpanan yang dapat ditulis
ulang yang lebih baik di antara masyarakat umum karena port USB yang ada di mana-mana pada komputer pribadi dan segera
setelahnya karena ukuran penyimpanan yang ditawarkan jauh lebih besar. Zip drive tidak disukai untuk penyimpanan portabel
massal selama awal 2000-an. Merek Zip kemudian mencakup penulis CD internal dan eksternal yang dikenal sebagai Zip-650
atau Zip-CD, yang tidak ada hubungannya dengan drive Zip.

Jazo

Drive Jaz adalah sistem penyimpanan disk yang dapat dilepas yang diperkenalkan oleh perusahaan Iomega pada tahun 1995.
Sistem telah dihentikan sejak saat itu. Disk Jaz awalnya dirilis dengan kapasitas 1 GB (ada juga 540 MB, tetapi belum dirilis)
dalam faktor bentuk 3½ inci; kapasitasnya merupakan peningkatan yang signifikan dibandingkan produk Iomega yang paling
populer saat itu, drive Zip, dengan kapasitas 100 MB. Drive Jaz hanya menggunakan antarmuka SCSI ( versi internal IDE
jarang), tetapi adaptor yang dikenal sebagai Jaz Traveler tersedia untuk menghubungkannya ke port paralel standar.

Kapasitasnya kemudian ditingkatkan menjadi 2 GB, melalui revisi drive dan disk pada tahun 1998, sebelum lini Jaz akhirnya
dihentikan pada tahun 2002.

Masalah

Drive Jaz kurang rentan terhadap kegagalan daripada drive Zip. Meski begitu, drive Jaz sebelumnya
bisa menjadi terlalu panas, dan kemacetan mekanisme pemuatan dapat membuat kartrid macet di
drive. Mengeluarkan kartrid yang macet secara paksa dapat merusak drive dan kartrid. Drive Jaz
didasarkan pada teknologi hard disk, membuatnya rentan terhadap kontaminan dalam drive; debu
dan pasir dapat masuk melalui lubang di kartrid tempat motor menggerakkan piringan, dan debu
apa pun yang menumpuk di casing eksternal dapat masuk ke drive dengan penyisipan berikutnya.
Selain itu, pintu geser logam mampu memakai plastik, mengakibatkan puing-puing dan kepala terbentur.
Selain itu, mekanisme yang digunakan untuk menempelkan platter ke motor spindel cukup rumit dan cenderung bergetar.
Iomega menerapkan perangkat anti-gyro (seperti drive CD/DVD optik) di dalam kartrid untuk mencegah getaran saat berputar,
tetapi perangkat ini kehilangan efektivitasnya seiring bertambahnya usia. Akibatnya, kedua piringan bisa kehilangan
keselarasan, membuat kartrid tidak dapat digunakan. Roda gigi plastik yang terpasang di bagian bawah kartrid Jaz sering
terlepas dan pecah, membuat disk yang dimasukkan secara fisik tidak mampu berputar hingga kecepatan operasi.
Machine Translated by Google

2.27.Drive Kartrid
Kartrid Disk
Kartrid disk atau Kartrid disk optik dapat merujuk ke:

Paket disk komputer tahun 1960-an yang memiliki piringan hard disk tunggal yang terbungkus dalam cangkang plastik
pelindung
Media penyimpanan disk yang dapat dilepas

Disket zip
Floppy disk berukuran 31 2 inci
Disk optik atau disk magneto-optik tertutup dalam selubung plastik pelindung yang disebut Caddy (perangkat keras)

Optik Kepadatan Ultra


Disk Media Universal
Kandang disk

Kartrid ROM

Penggerak Pita
Tape drive adalah perangkat penyimpanan data yang membaca dan menulis data pada pita magnetik. Penyimpanan data pita
magnetik biasanya digunakan untuk penyimpanan data arsip offline. Media pita umumnya memiliki biaya satuan yang
menguntungkan dan stabilitas arsip yang lama.

Tape drive menyediakan penyimpanan akses sekuensial , tidak seperti disk drive, yang menyediakan penyimpanan akses acak .
Disk drive dapat berpindah ke posisi apa pun pada disk dalam beberapa milidetik, tetapi tape drive harus secara fisik memutar
pita di antara gulungan untuk membaca satu bagian data tertentu. Akibatnya, tape drive memiliki waktu pencarian rata-rata yang
sangat lambat. Untuk akses berurutan setelah kaset diposisikan, bagaimanapun, tape drive dapat mengalirkan data dengan
sangat cepat. Misalnya, pada 2010 Linear Tape Open (LTO) mendukung kecepatan transfer data berkelanjutan hingga 140 MB/
s, sebanding dengan hard disk drive.

Kartrid ROM
Kartrid ROM, kadang-kadang disebut hanya sebagai kartrid atau troli, adalah wadah yang dapat dilepas yang berisi perangkat
memori hanya-baca yang dirancang untuk dihubungkan ke perangkat elektronik konsumen seperti komputer rumah atau konsol
game. Kartrid ROM dapat digunakan untuk memuat perangkat lunak seperti video game, atau program aplikasi lainnya.

Slot kartrid dapat digunakan untuk penambahan perangkat keras, misalnya sintesis ucapan. Beberapa kartrid memiliki memori
akses acak statis yang didukung baterai, memungkinkan pengguna untuk menyimpan data seperti skor permainan di antara
penggunaan.

Kartrid ROM memungkinkan pengguna untuk memuat dan mengakses program dan data dengan cepat tanpa mengorbankan
drive floppy disk, yang merupakan perangkat mahal selama era komputer rumahan, dan tanpa menggunakan kaset Compact
Cassette yang lambat, berurutan, dan seringkali tidak dapat diandalkan. Sebuah
Machine Translated by Google

keuntungan bagi pabrikan adalah keamanan relatif dari distribusi perangkat lunak dalam bentuk kartrid, yang sulit
ditiru oleh pengguna akhir. Namun, pembuatan cartridge lebih mahal dibandingkan dengan pembuatan floppy disk
atau CD-ROM. Ketika disk drive menjadi lebih umum dan perangkat lunak berkembang melampaui batas praktis
ukuran ROM, slot kartrid menghilang dari konsol dan komputer yang lebih baru. Kartrid masih digunakan sampai
sekarang dengan konsol game genggam seperti Nintendo 3DS dan PlayStation Vita.

2.28.CD yang dapat direkam

CD -R (Compact Disc-Recordable) adalah variasi dari compact disc yang ditemukan oleh Philips dan Sony. CD-R
adalah media optik Write Once Read Many (WORM), meskipun seluruh disk tidak harus seluruhnya ditulis dalam
sesi yang sama.

CD-R mempertahankan tingkat kompatibilitas yang tinggi dengan pembaca CD standar, tidak seperti CD-RW yang
dapat ditulis ulang, tetapi tidak dapat diputar pada banyak pembaca.

Metode Penulisan

Disk kosong memiliki trek pra-alur tempat data ditulis. Trek pra-alur, yang juga berisi informasi waktu, memastikan
bahwa perekam mengikuti jalur spiral yang sama seperti CD konvensional. Perekam CD menulis data ke disk CD-R
dengan menggerakkan lasernya untuk memanaskan area lapisan pewarna organik. Proses penulisan tidak
menghasilkan lekukan (pits); sebaliknya, panas secara permanen mengubah sifat optik pewarna, mengubah
reflektifitas area tersebut.
Menggunakan daya laser rendah, agar tidak mengubah pewarna lebih lanjut, disk dibaca kembali dengan cara yang
sama seperti CD-ROM. Namun, cahaya yang dipantulkan dimodulasi bukan oleh lubang, tetapi oleh daerah bolak-
balik dari pewarna yang dipanaskan dan tidak berubah. Perubahan intensitas radiasi laser yang dipantulkan diubah
menjadi sinyal listrik, dari mana informasi digital dipulihkan ("didekode"). Setelah bagian dari CD-R ditulis, itu tidak
dapat dihapus atau ditulis ulang, tidak seperti CD RW. CD-R dapat direkam dalam beberapa sesi. Perekam CD
dapat menulis ke CD-R menggunakan beberapa metode termasuk:

1. Disk Sekaligus – seluruh CD-R ditulis dalam satu sesi tanpa celah dan disk "tertutup" artinya tidak ada lagi
data yang dapat ditambahkan dan CD-R secara efektif menjadi CD read-only standar. Tanpa celah di
antara trek, format Disc At Once berguna untuk rekaman audio "langsung".

2. Track At Once – data ditulis ke CD-R satu track pada satu waktu tetapi CD dibiarkan "terbuka" untuk
perekaman lebih lanjut pada tahap selanjutnya. Hal ini juga memungkinkan data dan audio untuk berada
pada CD-R yang sama.
3. Penulisan Paket – digunakan untuk merekam data ke CD-R dalam "paket", memungkinkan informasi
tambahan untuk ditambahkan ke disk di lain waktu, atau agar informasi pada disk dibuat "tidak terlihat".
Dengan cara ini, CD-R dapat meniru CD-RW; namun, setiap kali informasi pada disk diubah, lebih banyak
data harus ditulis ke disk. Mungkin ada masalah kompatibilitas dengan format ini dan beberapa drive CD.
Machine Translated by Google

Dengan pemeriksaan yang cermat, daerah tertulis dan tidak tertulis dapat dibedakan dengan mata telanjang.
CD-R ditulis dari tengah ke luar, sehingga area tulisan muncul sebagai pita bagian dalam dengan bayangan yang
sedikit berbeda.

2.29.CD-RW
CD -RW (Compact Disc-ReWritable) adalah disk optik yang dapat ditulis ulang. Itu diperkenalkan pada tahun
1997, dan dikenal sebagai "CD-Writable" selama pengembangan. Itu didahului oleh CD-MO, yang tidak pernah
dirilis secara komersial.

Disk CD-RW membutuhkan optik laser yang lebih sensitif. Juga, CD-RW tidak dapat dibaca di beberapa drive
CD ROM yang dibuat sebelum tahun 1997. Drive CD-ROM akan memiliki sertifikasi "MultiRead" untuk
menunjukkan kompatibilitas. Disk CD-RW harus dikosongkan sebelum digunakan kembali. Metode blanking yang
berbeda dapat digunakan, termasuk blanking "penuh" di mana seluruh permukaan disk dibersihkan, dan blanking
"cepat" di mana hanya area meta-data yang dibersihkan: PMA, TOC dan pregap, terdiri dari beberapa persen
dari cakram. Pengosongan cepat jauh lebih cepat, dan biasanya cukup untuk memungkinkan penulisan ulang
disk. Pengosongan penuh menghilangkan jejak data sebelumnya, seringkali untuk kerahasiaan. Dimungkinkan
untuk memulihkan data dari CD-RW kosong dengan peralatan pemulihan data khusus [rujukan?] ;
namun, ini umumnya tidak digunakan kecuali oleh instansi pemerintah karena biaya.

CD-RW juga memiliki masa pakai siklus penulisan ulang yang lebih pendek (sekitar 1.000) dibandingkan dengan
hampir semua jenis media penyimpanan yang terpapar sebelumnya (biasanya jauh di atas 10.000 atau bahkan
100.000), sesuatu yang tidak terlalu merugikan mengingat CD-RW biasanya ditulis dan dihapus secara
keseluruhan, dan tidak dengan perubahan skala kecil yang berulang, jadi level keausan biasanya tidak menjadi
masalah.

Bidang penggunaan ideal mereka adalah dalam pembuatan disk uji, pencadangan jangka pendek atau menengah
sementara, dan secara umum, di mana solusi perantara antara skema penyimpanan online dan offline diperlukan.

2.30.Teknologi Masukan/Keluaran
perangkat input/output, juga dikenal sebagai periferal komputer, salah satu dari berbagai perangkat (termasuk
sensor) yang digunakan untuk memasukkan informasi dan instruksi ke dalam komputer untuk penyimpanan atau
pemrosesan dan untuk mengirimkan data yang diproses ke operator manusia atau, dalam beberapa kasus,
mesin dikendalikan oleh komputer. Perangkat tersebut membentuk peralatan periferal sistem komputer digital modern.

Perangkat input mengubah data dan instruksi yang masuk menjadi pola sinyal listrik dalam kode biner yang dapat
dipahami oleh komputer digital. Perangkat keluaran membalikkan proses, menerjemahkan sinyal digital ke dalam
bentuk yang dapat dimengerti oleh pengguna. Pada suatu waktu pembaca kartu berlubang dan pita kertas
banyak digunakan untuk memasukkan, tetapi ini sekarang telah digantikan oleh perangkat yang lebih efisien.

Perangkat input termasuk keyboard seperti mesin tik; perangkat genggam seperti mouse, trackball, joystick, dan
pena khusus dengan bantalan peka tekanan; dan mikrofon. Mereka juga termasuk
Machine Translated by Google

sensor yang memberikan informasi tentang lingkungannya—suhu, tekanan, dan sebagainya—


ke komputer. Mekanisme entri langsung lainnya adalah pemindai laser optik (misalnya, pemindai yang
digunakan dengan terminal titik penjualan di toko ritel) yang dapat membaca data berkode batang atau font
karakter optik. Peralatan keluaran meliputi terminal tampilan video (baik tabung sinar katoda atau layar kristal
cair), printer ink-jet dan laser, pengeras suara, dan perangkat seperti katup aliran yang mengontrol mesin,
sering kali sebagai respons terhadap pemrosesan komputer dari data input sensor. Beberapa perangkat,
seperti terminal tampilan video, dapat menyediakan input dan output. Contoh lain adalah perangkat yang
memungkinkan transmisi dan penerimaan data antara komputer-misalnya, modem dan antarmuka jaringan.
Sebagian besar perangkat penyimpanan tambahan—seperti, misalnya, pita magnetik, drive disk magnetik,
dan beberapa jenis cakram padat optik—juga berfungsi ganda sebagai perangkat input/output (lihat memori
komputer).

Berbagai standar untuk menghubungkan periferal ke komputer ada. Misalnya, elektronik drive terintegrasi
(IDE) dan elektronik drive terintegrasi yang disempurnakan (EIDE) adalah antarmuka umum, atau bus, untuk
drive disk magnetik. Sebuah bus (juga dikenal sebagai port) dapat berupa serial atau paralel, tergantung
pada apakah jalur data membawa satu bit pada satu waktu (serial) atau banyak sekaligus (paralel).
Koneksi serial, yang menggunakan kabel yang relatif sedikit, umumnya lebih sederhana dan lebih lambat
daripada koneksi paralel. Universal serial bus (USB) adalah bus serial umum. Contoh umum dari bus paralel
adalah antarmuka sistem komputer kecil, atau bus SCSI.

2.31.Karakteristik
ÿ
KECEPATAN : Secara umum, tidak ada manusia yang dapat bersaing untuk menyelesaikan komputasi yang kompleks,
lebih cepat dari komputer.

ÿ
KEAKURATAN : Karena Komputer diprogram, maka apapun input yang kita berikan memberikan
hasil dengan akurat.

ÿ PENYIMPANAN : Komputer dapat menyimpan data secara massal dengan format yang sesuai.

ÿ
DILIGENCE : Komputer dapat bekerja berjam-jam tanpa jeda dan membuat error.

ÿ
VERSATILITAS : Kita dapat menggunakan komputer untuk melakukan jenis pekerjaan yang sama sekali berbeda pada
saat yang bersamaan.

ÿ KEKUATAN MENGINGAT : Dapat mengingat data untuk kita.

ÿ NO IQ : Komputer tidak bekerja tanpa instruksi.

ÿ NO FEELING : Komputer tidak memiliki emosi, pengetahuan, pengalaman, perasaan.


Machine Translated by Google

2.32.Kartu Video
Kartu video (juga disebut adaptor video, kartu tampilan, kartu grafis, papan grafis, adaptor layar
atau adaptor grafis) adalah kartu ekspansi yang menghasilkan umpan gambar keluaran ke layar.
Kebanyakan kartu video menawarkan berbagai fungsi seperti rendering adegan 3D dan grafik 2D yang
dipercepat , decoding MPEG-2/MPEG-4, output TV, atau kemampuan untuk menghubungkan beberapa
monitor (multi-monitor).

Perangkat keras video dapat diintegrasikan ke dalam motherboard atau (seperti dengan desain yang
lebih baru) CPU, tetapi semua motherboard modern (dan beberapa dari tahun 1980-an) menyediakan
port ekspansi yang dapat dihubungkan dengan kartu video. Dalam konfigurasi ini kadang-kadang disebut
sebagai pengontrol video atau pengontrol grafis. Motherboard low-end hingga mid-range modern sering
kali menyertakan chipset grafis yang diproduksi oleh pengembang thenorthbridge ( misalnya chipset AMD
dengan grafis Radeon atau chipset Intel dengan grafis Intel) pada motherboard. Chip grafis ini biasanya
memiliki sejumlah kecil memori tertanam dan mengambil sebagian dari RAM utama sistem, sehingga
mengurangi total RAM yang tersedia. Ini biasanya disebut grafis terintegrasi atau grafis on-board, dan
biasanya kinerjanya rendah dan tidak diinginkan bagi mereka yang ingin menjalankan aplikasi 3D. Kartu
grafis khusus di sisi lain memiliki Memori Akses Acak atau RAM dan Prosesornya sendiri khusus untuk
memproses gambar video, dan dengan demikian melepaskan pekerjaan ini dari CPU dan RAM sistem.
Hampir semua motherboard ini memungkinkan (PCI-E) penonaktifan chip grafis terintegrasi di BIOS, dan
memiliki slot AGP, PCI, atau PCI Express (PCI E) untuk menambahkan kartu grafis berkinerja lebih tinggi
sebagai pengganti grafis terintegrasi.

Jika CPU adalah otak komputer, kartu video adalah imajinasinya. Sungguh, apa pun yang dapat dipikirkan
CPU, kartu video dapat dibuat ulang dengan indah dalam citra 3D. Fungsi kartu video adalah mengambil
informasi dari CPU dan mengubahnya menjadi gambar, lalu mengirimkan gambar itu ke monitor Anda.
Tanpa kartu video, game modern tidak akan mungkin. Sementara CPU dapat membuat gambar 3D
sederhana, kartu video unggul dalam menggambar adegan kompleks dengan sangat cepat. Kartu video
modern dapat membuat adegan 1080p pada 60 frame per detik. Itu berarti ia menghitung dan menggambar
lebih dari 2 juta piksel individu 60 kali setiap detik!

Kartu video berkomunikasi dengan komputer Anda melalui beberapa kemungkinan antarmuka. Kartu
video lama menggunakan bus PCI, atau bus AGP (Accelerated Graphics Port), tetapi kartu modern
hampir secara eksklusif menggunakan antarmuka PCI-express. PCI-express menawarkan bandwidth
yang lebih besar dibandingkan antarmuka lama, yang berarti bahwa kartu video dapat berkomunikasi
dengan CPU lebih cepat. Ada dua versi antarmuka PCI-express: versi 1.1 dan versi 2.0. Kartu yang lebih
baru dimaksudkan untuk berjalan di slot PCI-express 2.0, tetapi antarmuka kompatibel ke belakang, yang
memungkinkan kartu PCI-express 2.0 untuk berjalan di slot versi 1.1 dan sebaliknya.

2.33.Monitor
Monitor atau tampilan adalah tampilan visual elektronik untuk komputer. Monitor terdiri dari perangkat
tampilan, sirkuit , dan penutup. Perangkat tampilan pada monitor modern biasanya berupa panel tipis
layar kristal cair transistor film tipis (TFT-LCD), sedangkan monitor lama menggunakan tabung sinar
katoda (CRT) sedalam ukuran layar.
Machine Translated by Google

Awalnya, monitor komputer digunakan untuk pemrosesan data sementara penerima televisi digunakan untuk
hiburan. Sejak 1980-an dan seterusnya, komputer (dan monitornya) telah digunakan untuk pemrosesan data
dan hiburan, sementara televisi telah menerapkan beberapa fungsi komputer. Rasio aspek umum televisi, dan
kemudian monitor komputer, juga telah berubah dari 4:3 menjadi 16:9 (dan 16:10).

Teknologi
Beberapa teknologi telah digunakan untuk monitor komputer. Sampai abad ke-21 tabung sinar katoda paling
banyak digunakan tetapi sebagian besar telah digantikan oleh monitor LCD.

Tabung sinar katoda


Monitor komputer pertama menggunakan tabung sinar katoda (CRT). Sampai awal 1980-an, mereka dikenal
sebagai terminal tampilan video dan secara fisik terpasang ke komputer dan keyboard.
Monitornya monokrom, berkedip-kedip dan kualitas gambarnya buruk. Pada tahun 1981, IBM memperkenalkan
Color Graphics Adapter, yang dapat menampilkan empat warna dengan resolusi 320 x 200 piksel, atau dapat
menghasilkan 640 x 200 piksel dengan dua warna. Pada tahun 1984 IBM memperkenalkan Enhanced
Graphics Adapter yang mampu menghasilkan 16 warna dan memiliki resolusi 640 x 350.

Teknologi CRT tetap dominan di pasar monitor PC hingga milenium baru sebagian karena lebih murah untuk
diproduksi dan menawarkan sudut pandang mendekati 180 derajat.[2]

Kristal cair
Ada beberapa teknologi yang telah digunakan untuk mengimplementasikan liquid crystal display (LCD).
Sepanjang tahun 1990-an, penggunaan utama teknologi LCD sebagai monitor komputer adalah di laptop di
mana konsumsi daya yang lebih rendah, bobot yang lebih ringan, dan ukuran fisik LCD yang lebih kecil
membenarkan harga yang lebih tinggi dibandingkan CRT. Umumnya, laptop yang sama akan ditawarkan
dengan berbagai pilihan tampilan pada titik harga yang meningkat: monokrom (aktif atau pasif), warna pasif,
atau warna matriks aktif (TFT). Karena volume dan kemampuan manufaktur telah meningkat, teknologi warna
monokrom dan pasif dihilangkan dari sebagian besar lini produk.

TFT-LCD merupakan varian dari LCD yang kini menjadi teknologi dominan yang digunakan untuk monitor
komputer.

Layar LCD mandiri pertama muncul pada pertengahan 1990-an yang dijual dengan harga tinggi. Ketika harga
menurun selama beberapa tahun, mereka menjadi lebih populer, dan pada tahun 1997 bersaing dengan
monitor CRT. Di antara monitor komputer LCD desktop pertama adalah Eizo L66 pada pertengahan 1990-an,
Apple Studio Display pada tahun 1998, dan Apple Cinema Display pada tahun 1999. Pada tahun 2003, LCD
TFT terjual habis untuk CRT untuk pertama kalinya, menjadi teknologi utama yang digunakan untuk monitor
komputer. . Keuntungan utama LCD dibandingkan tampilan CRT adalah bahwa LCD mengkonsumsi lebih
sedikit daya, memakan lebih sedikit ruang, dan jauh lebih ringan. Teknologi TFT-LCD matriks aktif yang
sekarang umum juga memiliki lebih sedikit kedipan daripada CRT, yang mengurangi ketegangan mata. Di sisi
lain, monitor CRT memiliki kontras yang unggul, memiliki waktu respons yang unggul, mampu menggunakan
beberapa resolusi layar secara asli, dan tidak ada kedipan yang terlihat jika kecepatan refresh diatur ke nilai
yang cukup tinggi. Monitor LCD sekarang memiliki akurasi temporal yang sangat tinggi dan dapat digunakan
untuk penelitian penglihatan.[5]
Machine Translated by Google

Dioda pemancar cahaya organik

Monitor organic light-emitting diode (OLED) memberikan kontras yang lebih tinggi dan sudut pandang yang lebih baik
daripada LCD, dan diperkirakan akan menggantikannya. Pada tahun 2011, monitor OLED 25 inci berharga $ 7500, tetapi
harganya diperkirakan akan turun.

2.34.Port USB
Port USB adalah antarmuka koneksi kabel standar pada komputer pribadi dan konsumen
elektronik. Port USB memungkinkan perangkat elektronik yang berdiri sendiri untuk dihubungkan melalui kabel ke komputer
(atau satu sama lain).

USB adalah singkatan dari Universal Serial Bus, sebuah standar industri untuk komunikasi data digital jarak pendek. USB
memungkinkan data untuk ditransfer antar perangkat. Port USB juga dapat memasok daya listrik melalui kabel ke
perangkat tanpa sumber daya sendiri.

Baik versi kabel dan nirkabel dari standar USB ada, meskipun hanya versi kabel yang melibatkan port dan kabel USB.

Apa yang Dapat Anda Tancapkan Ke Port USB?:

Banyak jenis elektronik konsumen mendukung antarmuka USB. Jenis peralatan ini paling umum digunakan untuk jaringan
komputer:
Adaptor jaringan USB
Broadband USB dan modem seluler untuk akses Internet
Printer USB untuk dibagikan di jaringan rumah
Untuk transfer file komputer ke komputer tanpa jaringan, kunci USB terkadang juga digunakan untuk menyalin file antar
perangkat.
Beberapa perangkat USB juga dapat dihubungkan satu sama lain menggunakan hub USB. Hub USB dicolokkan ke satu
port USB dan berisi port tambahan agar perangkat lain dapat terhubung selanjutnya.

Model penggunaan:

Hubungkan dua perangkat secara langsung dengan satu kabel USB dengan menghubungkan setiap ujungnya ke port
USB. Jika menggunakan hub USB, colokkan kabel terpisah ke setiap perangkat dan sambungkan ke hub satu per satu.
Anda dapat mencolokkan kabel ke port USB kapan saja terlepas dari apakah perangkat yang terlibat dihidupkan atau
dimatikan. Namun, jangan mencabut kabel dari port USB secara sembarangan, karena hal ini dapat kehilangan atau
merusak data. Ikuti petunjuk yang diberikan bersama peralatan Anda sebelum mencabut kabel USB.

Banyak PC memiliki lebih dari satu port USB, tetapi jangan mencolokkan kedua ujung kabel ke perangkat yang sama,
karena dapat menyebabkan kerusakan listrik.

USB-B dan Jenis Port Lainnya:


Machine Translated by Google

Beberapa jenis tata letak fisik yang berbeda ada untuk port USB. Tata letak standar untuk komputer, yang disebut USB-
B, adalah titik koneksi persegi panjang dengan panjang kira-kira 1,4 cm (9/16 inci) kali tinggi 0,65 cm (1/4 inci).

Printer dan beberapa perangkat lain mungkin menggunakan jenis port USB yang lebih kecil termasuk standar yang
disebut USB-A. Untuk menghubungkan perangkat yang memiliki port USB-B ke perangkat dengan jenis lain, cukup
gunakan jenis kabel yang benar dengan antarmuka yang sesuai di setiap ujungnya.

Versi USB:

Standar industri USB ada dalam beberapa versi termasuk 1.1, 2.0 dan 3.0. Namun, port USB menampilkan tata letak
fisik yang identik, apa pun versi USB yang didukung.

2.35.Liquid Crystal Display (LCD)

Layar kristal cair (LCD) adalah layar panel datar, tampilan visual elektronik, atau tampilan video yang menggunakan
sifat modulasi cahaya kristal cair. Kristal cair tidak memancarkan cahaya secara langsung.

LCD tersedia untuk menampilkan gambar arbitrer (seperti pada tampilan komputer untuk keperluan umum) atau gambar
tetap yang dapat ditampilkan atau disembunyikan, seperti kata, angka, dan 7-
segmen ditampilkan seperti pada jam digital. Mereka menggunakan teknologi dasar yang sama, kecuali bahwa gambar
arbitrer terdiri dari sejumlah besar piksel kecil, sementara tampilan lain memiliki elemen yang lebih besar.

LCD digunakan dalam berbagai aplikasi termasuk monitor komputer, televisi, panel instrumen, tampilan kokpit pesawat,
dan papan nama. Mereka umum di perangkat game seperti itu, jam, jam tangan, kalkulator, dan telepon, dan telah
menggantikan tampilan tabung sinar katoda perangkat
konsumen (CRT) di sebagian
layar
besar
yangaplikasi.
lebih luas
Mereka
video
daripada
sebagai tersedia
tampilan
dalam
CRT
pemain,berbagai
dan plasma,
ukuran
dan
karena mereka tidak menggunakan fosfor, mereka tidak mengalami image burn-in.

LCD, bagaimanapun, rentan terhadap persistensi gambar.

Layar LCD lebih hemat energi dan dapat dibuang lebih aman daripada CRT. Konsumsi daya listriknya yang rendah
memungkinkannya untuk digunakan pada peralatan elektronik bertenaga baterai . Ini adalah perangkat optik yang
dimodulasi secara elektronik yang terdiri dari sejumlah segmen yang diisi dengan kristal cair dan disusun di depan
sumber cahaya (lampu latar) atau reflektor untuk menghasilkan gambar berwarna atau monokrom. Kristal cair pertama
kali ditemukan pada tahun 1888. Pada tahun 2008, penjualan tahunan televisi dengan layar LCD melebihi penjualan unit
CRT di seluruh dunia; CRT menjadi usang untuk sebagian besar tujuan.

2.36.Kartu Suara
Kartu suara (juga dikenal sebagai kartu audio) adalah kartu ekspansi komputer internal yang memfasilitasi input dan
output sinyal audio ke dan dari komputer di bawah kendali
Machine Translated by Google

program komputer. Istilah kartu suara juga diterapkan pada antarmuka audio eksternal yang menggunakan
perangkat lunak untuk menghasilkan suara, berbeda dengan penggunaan perangkat keras di dalam PC.
Penggunaan umum kartu suara termasuk menyediakan komponen audio untuk aplikasi multimedia seperti
komposisi musik, mengedit video atau audio, presentasi, pendidikan dan hiburan (permainan) dan proyeksi video.

Fungsionalitas suara juga dapat diintegrasikan ke motherboard, menggunakan komponen yang pada dasarnya
sama dengan kartu plug-in. Kartu plug-in terbaik, yang menggunakan komponen yang lebih baik dan lebih mahal,
dapat mencapai kualitas yang lebih tinggi daripada suara terintegrasi. Sistem suara terintegrasi sering masih
disebut sebagai "kartu suara".

2.37.Modem
Modem ( modulator -demodulator) adalah perangkat yang memodulasi sinyal pembawa analog untuk
mengkodekan informasi digital, dan juga mendemodulasi sinyal pembawa tersebut untuk memecahkan kode
informasi yang dikirimkan. Tujuannya adalah untuk menghasilkan sinyal yang dapat ditransmisikan dengan
mudah dan diterjemahkan untuk mereproduksi data digital asli. Modem dapat digunakan dengan segala cara
untuk mentransmisikan sinyal analog, dari dioda pemancar cahaya hingga radio. Contoh yang paling dikenal
adalah modem pita suara yang mengubah data digital komputer pribadi menjadi sinyal listrik termodulasi dalam
rentang frekuensi suara saluran telepon. Sinyal-sinyal ini dapat ditransmisikan melalui saluran telepon dan
didemodulasi oleh modem lain di sisi penerima untuk memulihkan data digital.

Modem umumnya diklasifikasikan berdasarkan jumlah data yang dapat mereka kirim dalam satuan waktu
tertentu, biasanya dinyatakan dalam bit per detik (bit/s, atau bps), orbyte per detik (B/s). Modem dapat
diklasifikasikan sebagai alternatif berdasarkan kecepatan simbolnya, diukur dalam baud. Unit baud menunjukkan
simbol per detik, atau berapa kali per detik modem mengirimkan sinyal baru. Misalnya, standar ITU V.21
menggunakan penguncian pergeseran frekuensi audio dengan dua kemungkinan frekuensi yang sesuai dengan
dua simbol yang berbeda (atau satu bit per simbol), untuk membawa 300 bit per detik menggunakan 300 baud.
Sebaliknya, standar ITU V.22 asli, yang dapat mengirim dan menerima empat simbol berbeda (dua bit per
simbol), menangani 1.200 bit/s dengan mengirimkan 600 simbol per detik (600 baud) menggunakan penguncian
fase pergeseran.

2.38.Printer
Dalam komputasi, printer adalah perangkat yang menghasilkan representasi dokumen elektronik pada media
fisik seperti kertas atau film transparansi. Banyak printer adalah periferal lokal yang terhubung langsung ke
komputer pribadi terdekat. Masing-masing printer sering kali dirancang untuk mendukung pengguna yang
terhubung ke jaringan dan lokal secara bersamaan. Beberapa printer dapat mencetak dokumen yang disimpan
pada kartu memori atau dari kamera digital dan pemindai . Printer multifungsi (MFP) mencakup pemindai dan
dapat menyalin dokumen kertas atau mengirim faks; ini juga disebut printer multi-fungsi (MFD), atau printer all-in-
one (AIO). Sebagian besar MFP menyertakan pencetakan, pemindaian, dan penyalinan di antara banyak fiturnya.

Printer konsumen dan beberapa printer komersial dirancang untuk pekerjaan cetak bervolume rendah dan
singkat ; membutuhkan hampir tidak ada waktu setup untuk mencapai hard copy dari dokumen yang diberikan. Namun,
Machine Translated by Google

printer umumnya perangkat lambat (30 halaman per menit dianggap cepat, dan banyak printer konsumen
murah jauh lebih lambat dari itu), dan biaya per halaman sebenarnya relatif tinggi. Namun, ini diimbangi oleh
kenyamanan sesuai permintaan dan biaya manajemen proyek yang lebih terkendali dibandingkan dengan
solusi yang bersumber dari luar. Mesin cetak tetap menjadi mesin pilihan untuk penerbitan profesional
bervolume tinggi. Namun, seiring dengan peningkatan kualitas dan kinerja printer, banyak pekerjaan yang
dulunya dilakukan oleh toko cetak profesional kini dilakukan oleh pengguna di printer lokal; lihat penerbitan
desktop. Printer lokal juga semakin mengambil alih proses photofinishing karena printer foto digital menjadi hal
yang lumrah.

Printer komputer pertama di dunia adalah alat yang digerakkan secara mekanis abad ke-19 yang ditemukan
oleh Charles Babbage untuk mesin pembedanya.

Printer virtual adalah bagian dari perangkat lunak komputer yang antarmuka pengguna dan API -nya mirip
dengan driver printer, tetapi tidak terhubung dengan printer komputer fisik.

2.39.Pemindai
Pemindai adalah perangkat yang menangkap gambar dari cetakan fotografi, poster, halaman majalah, dan
sumber serupa untuk pengeditan dan tampilan komputer. Pemindai tersedia dalam tipe genggam, feed-in, dan
flatbed dan hanya untuk memindai hitam-putih, atau berwarna. Pemindai resolusi sangat tinggi digunakan untuk
memindai pencetakan resolusi tinggi, tetapi pemindai dengan resolusi lebih rendah cukup untuk menangkap
gambar untuk tampilan komputer. Pemindai biasanya datang dengan perangkat lunak, seperti produk Adobe
Photoshop, yang memungkinkan Anda mengubah ukuran dan memodifikasi gambar yang diambil.

Pemindai biasanya terpasang ke komputer pribadi Anda dengan Antarmuka Sistem Komputer Kecil (SCSI ).
Aplikasi seperti PhotoShop menggunakan program TWAIN untuk membaca gambar.

Beberapa produsen utama pemindai meliputi: Epson, Hewlett-Packard, Microtek, dan Relisys

2.40.Kamera Digital
Kamera digital (atau digicam) adalah kamera yang mengambil video atau foto dengan
merekam gambar pada sensor gambar elektronik . Sebagian besar kamera yang dijual saat ini adalah digital,
dan kamera digital digabungkan ke dalam banyak perangkat mulai dari PDA dan ponsel (disebut ponsel
kamera) hingga kendaraan.

Kamera digital dan kamera film berbagi sistem optik, biasanya menggunakan lensa
dengan diafragma variabel untuk memfokuskan cahaya ke perangkat pengambilan gambar. Diafragma
dan rana menerima jumlah cahaya yang tepat untuk pencitra, seperti halnya film, tetapi perangkat
pengambilan gambar bersifat elektronik, bukan kimia. Namun, tidak seperti kamera film, kamera digital dapat
menampilkan gambar di layar segera setelah direkam, dan menyimpan serta menghapus gambar dari memori.
Banyak kamera digital juga dapat merekam video bergerak dengan suara. Beberapa kamera digital
dapat memotong dan menjahit gambar dan melakukan pengeditan gambar dasar lainnya.
Machine Translated by Google

2.41.Keyboard
Dalam komputasi, keyboard adalah perangkat bergaya mesin tik, yang menggunakan susunan tombol atau tombol,
untuk bertindak sebagai tuas mekanis atau sakelar elektronik. Menyusul penurunan kartu punch dan pita kertas,
interaksi melalui keyboard gaya teleprinter menjadi perangkat input utama untuk komputer.

Keyboard biasanya memiliki karakter yang diukir atau dicetak pada tombol dan setiap penekanan tombol biasanya
sesuai dengan satu simbol tertulis. Namun, untuk menghasilkan beberapa simbol memerlukan menekan dan menahan
beberapa tombol secara bersamaan atau berurutan. Sementara sebagian besar tombol keyboard menghasilkan
huruf, angka atau tanda (karakter), tombol lain atau penekanan tombol secara bersamaan dapat menghasilkan
tindakan atau menjalankan perintah komputer.

Meskipun pengembangan perangkat input alternatif, seperti mouse, layar sentuh, perangkat pena , pengenalan
karakter dan pengenalan suara, keyboard tetap menjadi perangkat yang paling umum digunakan dan paling
serbaguna yang digunakan untuk input langsung (manusia) ke komputer. [rujukan ?]

Dalam penggunaan normal, keyboard digunakan untuk mengetik teks dan angka ke dalam pengolah kata, editor
teks , atau program lainnya. Di komputer modern, interpretasi penekanan tombol umumnya diserahkan kepada
perangkat lunak. Papan ketik komputer membedakan setiap tombol fisik satu sama lain dan melaporkan semua
penekanan tombol ke perangkat lunak pengontrol. Keyboard juga digunakan untuk permainan komputer, baik dengan
keyboard biasa atau dengan menggunakan keyboard dengan fitur permainan khusus, yang dapat mempercepat
kombinasi penekanan tombol yang sering digunakan. Keyboard juga digunakan untuk memberikan perintah ke sistem
operasi komputer, seperti kombinasi Control-Alt Delete Windows , yang menampilkan jendela tugas atau mematikan
mesin. Antarmuka baris perintah adalah jenis antarmuka pengguna yang dioperasikan sepenuhnya melalui keyboard,
atau perangkat lain yang menjalankan fungsinya.

2.42.Mouse
Dalam komputasi, mouse adalah perangkat penunjuk yang berfungsi dengan mendeteksi gerakan dua dimensi
relatif terhadap permukaan pendukungnya. Secara fisik, mouse terdiri dari objek yang dipegang di bawah salah
satu tangan pengguna, dengan satu atau lebih tombol.

Mouse terkadang menampilkan elemen lain, seperti "roda", yang memungkinkan pengguna untuk
melakukan berbagai operasi yang bergantung pada sistem, atau tombol atau fitur tambahan yang dapat
menambahkan lebih banyak kontrol atau input dimensi. Gerakan mouse biasanya diterjemahkan ke dalam
gerakan pointer pada layar, yang memungkinkan kontrol yang baik dari antarmuka pengguna grafis.

2.43.Supply daya
Catu daya adalah perangkat yang memasok daya listrik ke beban listrik. Istilah ini paling sering diterapkan pada
konverter daya listrik yang mengubah satu bentuk energi listrik ke energi listrik lainnya, meskipun juga dapat merujuk
pada perangkat yang mengubah bentuk energi lain (mekanik, kimia, matahari) menjadi energi listrik. Catu daya yang
diatur adalah catu daya yang mengontrol output
Machine Translated by Google

tegangan atau arus ke nilai tertentu; nilai terkontrol dipertahankan hampir konstan meskipun ada variasi baik arus beban atau
tegangan yang dipasok oleh sumber energi catu daya.

Setiap catu daya harus memperoleh energi yang disuplai ke bebannya, serta energi apa pun yang dikonsumsinya saat
melakukan tugas itu, dari sumber energi. Tergantung pada desainnya, catu daya dapat memperoleh energi dari:

Sistem transmisi energi listrik. Contoh umum dari ini termasuk catu daya yang mengubah tegangan saluran AC
menjadi tegangan DC .
Perangkat penyimpanan energi seperti baterai dan sel bahan bakar.
Sistem elektromekanis seperti generator dan alternator.
Tenaga surya.

Catu daya dapat diimplementasikan sebagai perangkat terpisah yang berdiri sendiri atau sebagai perangkat integral yang
dipasang pada bebannya. Contoh kasus terakhir termasuk catu daya DC tegangan rendah yang merupakan bagian dari
komputer desktop dan perangkat elektronik konsumen .

Atribut catu daya yang ditentukan secara umum meliputi:

Jumlah tegangan dan arus yang dapat disuplai ke bebannya.


Seberapa stabil tegangan atau arus keluarannya di bawah berbagai kondisi saluran dan beban.
Berapa lama dapat memasok energi tanpa pengisian bahan bakar atau pengisian ulang (berlaku untuk pasokan listrik
yang menggunakan sumber energi portabel).
Machine Translated by Google

Tinjau Pertanyaan

[1] Jelaskan hierarki Memori dengan diagram?


[2] Apa saja jenis Memori yang dijelaskan secara singkat?
[3] Jelaskan penyimpanan sekunder dan jelaskan juga kebutuhannya?
[4] Apa saja ciri-ciri penyimpanan sekunder serta jelaskan jenis-jenisnya?
[5] Apa itu RAID dan juga jelaskan semua tingkatannya?
[6] Apa itu organisasi cache dengan diagram?
[7] Jelaskan mikrokomputer secara rinci?
[8] Jelaskan DMA dengan diagram?
[9] Jelaskan apa yang dimaksud dengan pemrosesan interupsi?
[10] Apa itu arbitrase BUS?
[11] Jelaskan secara singkat Hard Drives, Floppy Drives, CD-ROM dan DVD-ROM, Zip, Jaz, dan Cartridge
Drives, Recordable CDs, CD-RW?
[12] Jelaskan secara singkat Video Card, Monitor, USB Port, Liquid Crystal Display (LCD), Sound Card,
Modem, Printer, Scanner, Kamera Digital, Keyboard, Mouse, Power supply?
Machine Translated by Google

3.1.Unit Pemrosesan Pusat


Unit pemrosesan pusat (CPU), juga disebut sebagai unit prosesor pusat, adalah perangkat keras di dalam
komputer yang menjalankan instruksi program komputer dengan melakukan operasi aritmatika, logika, dan
input/output dasar dari sistem. Istilah ini telah digunakan dalam industri komputer setidaknya sejak awal 1960-
an. Bentuk, desain, dan implementasi CPU telah berubah sepanjang sejarahnya, tetapi operasi dasarnya tetap
sama.

Sebuah komputer dapat memiliki lebih dari satu CPU; ini disebut multiprosesor. Beberapa sirkuit terpadu (IC)
dapat berisi beberapa CPU pada satu chip; IC tersebut disebut prosesor multi-core .

Dua komponen khas CPU adalah unit logika aritmatika (ALU), yang melakukan operasi aritmatika dan logika,
dan unit kontrol (CU), yang mengekstrak instruksi dari memori dan mendekode dan mengeksekusinya,
memanggil ALU bila diperlukan.

Tidak semua sistem komputasi bergantung pada unit pemrosesan pusat. Sebuah prosesor array atau prosesor
vektor memiliki beberapa elemen komputasi paralel, tanpa satu unit dianggap sebagai "pusat". Dalam model
komputasi terdistribusi , masalah diselesaikan oleh satu set prosesor yang saling terhubung secara terdistribusi.

Singkatan CPU kadang-kadang digunakan secara tidak benar oleh orang-orang yang bukan ahli komputer
untuk merujuk ke bagian utama casing komputer desktop yang berisi motherboard, prosesor, disk drive, dll.,
yaitu, bukan layar monitor atau keyboard.

3.2.Set Instruksi dan instruksi


Sebuah set instruksi, atau arsitektur set instruksi (ISA), adalah bagian dari arsitektur komputer yang terkait
dengan pemrograman, termasuk jenis,dan
interupsi instruksi, register,
pengecualian, mode
opcode
dan I/Opengalamatan,
(bahasa itu ISA arsitektur
eksternal.
mesin), dandata
mencakup memori,
asli
perintah penanganan
spesifikasi
asli yang set
diimplementasikan oleh prosesor tertentu

Contoh set instruksi

ADD - Tambahkan dua angka bersama-sama.


BANDINGKAN - Bandingkan angka.
IN - Informasi input dari perangkat, misalnya keyboard.
JUMP - Lompat ke alamat RAM yang ditentukan.
JUMP IF - Pernyataan bersyarat yang melompat ke alamat RAM yang ditunjuk.
LOAD - Memuat informasi dari RAM ke CPU.
OUT - Output informasi ke perangkat, misalnya monitor.
Machine Translated by Google

STORE - Menyimpan informasi ke RAM.

Klasifikasi set instruksi

Komputer set instruksi kompleks (CISC) memiliki banyak instruksi khusus, yang mungkin jarang digunakan
dalam program praktis. Komputer set instruksi yang dikurangi (RISC) menyederhanakan prosesor dengan
hanya mengimplementasikan instruksi yang sering digunakan dalam program; operasi yang tidak biasa
diimplementasikan sebagai subrutin, di mana waktu eksekusi prosesor ekstra diimbangi oleh penggunaannya
yang jarang. Secara teoritis, jenis yang penting adalah komputer set instruksi minimal dan komputer set instruksi
satu, tetapi ini tidak diimplementasikan dalam prosesor komersial.
Variasi lain adalah kata instruksi yang sangat panjang (VLIW) di mana prosesor menerima banyak instruksi
yang dikodekan dan diambil dalam satu kata instruksi.

Bahasa mesin

Bahasa mesin dibangun dari pernyataan atau instruksi diskrit. Pada arsitektur pemrosesan, instruksi yang
diberikan dapat menentukan:

Register khusus untuk fungsi aritmatika, pengalamatan, atau kontrol


Lokasi atau offset memori tertentu
Mode pengalamatan khusus yang digunakan untuk menginterpretasikan operand

Operasi yang lebih kompleks dibangun dengan menggabungkan instruksi sederhana ini, yang ( dalam arsitektur
von Neumann) dieksekusi secara berurutan, atau seperti yang diarahkan oleh instruksi aliran kontrol .

Jenis instruksi

Contoh operasi umum untuk banyak set instruksi meliputi:


Penanganan data dan operasi Memori

atur register ke nilai konstan tetap


memindahkan data dari lokasi memori ke register, atau sebaliknya. Digunakan untuk menyimpan isi
register, hasil komputasi, atau untuk mengambil data yang disimpan untuk melakukan komputasi di
kemudian hari.
membaca dan menulis data dari perangkat keras

Operasi Aritmatika dan Logika


menambah, mengurangi, mengalikan, atau membagi nilai dari dua register, menempatkan hasilnya dalam
register, mungkin mengatur satu atau lebih kode kondisi dalam register status

melakukan bitwise misalnya,


operasi,
mengambil konjungsi dan disjungsi bit yang sesuai dalam sepasang
register, mengambil negasi dari setiap bit dalam register
membandingkan dua nilai dalam register (misalnya, untuk melihat apakah ada yang lebih kecil, atau sama)
Kontrol aliran operasi
Machine Translated by Google

bercabang ke lokasi lain dalam program dan menjalankan instruksi di sana


cabang bersyarat ke lokasi lain jika kondisi tertentu berlaku
cabang secara tidak langsung ke lokasi lain, sambil menyimpan lokasi instruksi berikutnya sebagai titik
untuk kembali ( panggilan)

Instruksi kompleks
Prosesor CISC menyertakan instruksi "kompleks" dalam set instruksi mereka. Sebuah instruksi "kompleks" tunggal
melakukan sesuatu yang mungkin memerlukan banyak instruksi pada komputer lain. Instruksi tersebut ditandai
dengan instruksi yang mengambil beberapa langkah, mengontrol beberapa unit fungsional, atau muncul pada skala
yang lebih besar daripada sebagian besar instruksi sederhana yang dilaksanakan oleh yang diberikan prosesor.
Beberapa contoh instruksi "kompleks" meliputi:

menyimpan banyak register di stack sekaligus


memindahkan blok memori yang besar
aritmatika kompleks dan/atau floating-point (sinus, kosinus, akar kuadrat, dll.)
melakukan instruksi tes-dan-set atom
instruksi yang menggabungkan ALU dengan operand dari memori daripada register

Jenis instruksi kompleks yang telah menjadi sangat populer baru-baru ini [rujukan?] adalah operasi SIMD atau Single-
Instruction Stream Multiple-Data Stream atau instruksi vektor, yaitu operasi yang melakukan operasi aritmatika yang
sama pada beberapa bagian data pada saat yang bersamaan. SIMD memiliki kemampuan memanipulasi vektor dan
matriks yang besar dalam waktu yang minimal. Instruksi SIMD memungkinkan paralelisasi algoritma yang umumnya
terlibat dalam pemrosesan suara, gambar, dan video. Berbagai implementasi SIMD telah dibawa ke pasar dengan
nama dagang seperti MMX, 3DNow! dan AltiVec.

Jenis prosesor khusus seperti GPU misalnya juga menyediakan set instruksi yang kompleks.
Meskipun demikian banyak dari set instruksi kompleks prosesor khusus ini tidak memiliki set instruksi asli yang
tersedia untuk umum dan bahasa rakitan asli untuk alasan terkait perangkat keras berpemilik dan biasanya hanya
dapat diakses oleh pengembang perangkat lunak melalui bahasa dan API tingkat tinggi standar. Set instruksi virtual
OpenGL dan bahasa rakitan virtual bahasa rakitan ARB dan CUDA adalah contoh dari lapisan abstraksi perangkat
keras di atas set instruksi asli prosesor khusus.

Bagian dari instruksi

Pada arsitektur tradisional, sebuah instruksi mencakup opcode yang menentukan operasi yang akan dilakukan,
seperti "tambahkan isi memori ke register", dan nol atau lebih penentu operan , yang dapat menentukan register,
lokasi memori, atau data literal. Penentu operan mungkin memiliki mode pengalamatan yang menentukan artinya atau
mungkin dalam bidang tetap. Dalam arsitektur kata instruksi yang sangat panjang (VLIW), yang mencakup banyak
arsitektur mikrokode, beberapa opcode dan operan simultan ditentukan dalam satu instruksi.

Beberapa set instruksi eksotis tidak memiliki bidang opcode (seperti Transport Triggered Architectures (TTA) atau
mesin virtual Forth), hanya operan. Set instruksi "0-operan" yang tidak biasa lainnya tidak memiliki bidang penentu
operan, seperti beberapa mesin tumpukan termasuk NOSC .
Machine Translated by Google

Panjang instruksi
Ukuran atau panjang instruksi sangat bervariasi, mulai dari empat bit di beberapa mikrokontroler hingga
ratusan bit di beberapa sistem VLIW. Prosesor yang digunakan di komputer pribadi, mainframe, dan
superkomputer memiliki ukuran instruksi antara 8 dan 64 bit. Kemungkinan instruksi terpanjang pada x86
adalah 15 byte (120 bit). Dalam satu set instruksi, instruksi yang berbeda mungkin memiliki panjang yang
berbeda. Dalam beberapa arsitektur, terutama komputer set instruksi yang paling dikurangi (RISC), instruksi
adalah panjang tetap, biasanya sesuai dengan ukuran kata arsitektur itu. Dalam arsitektur lain, instruksi
memiliki panjang variabel, biasanya kelipatan integral dari satu byte atau setengah kata.

Perwakilan
Instruksi yang merupakan program jarang ditentukan menggunakan internal, bentuk numerik (kode mesin);
mereka dapat ditentukan oleh pemrogram menggunakan bahasa rakitan atau, lebih umum, dapat dihasilkan
dari bahasa pemrograman oleh kompiler.
Rancangan

Desain set instruksi adalah masalah yang kompleks. Ada dua tahap dalam sejarah mikroprosesor. Yang
pertama adalah CISC (Complex Instruction Set Computer) yang memiliki banyak instruksi berbeda. Namun,
pada tahun 1970-an, tempat-tempat seperti IBM melakukan penelitian dan menemukan bahwa banyak
instruksi dalam set dapat dihilangkan. Hasilnya adalah RISC (Reduced Instruction Set Computer), sebuah
arsitektur yang menggunakan set instruksi yang lebih kecil. Kumpulan instruksi yang lebih sederhana mungkin
menawarkan potensi kecepatan yang lebih tinggi, ukuran prosesor yang lebih kecil, dan konsumsi daya yang lebih rendah.
Namun, set yang lebih kompleks dapat mengoptimalkan operasi umum, meningkatkan efisiensi memori/
cache, atau menyederhanakan pemrograman.
Beberapa perancang set instruksi mencadangkan satu atau lebih opcode untuk beberapa jenis panggilan
sistem atau interupsi perangkat lunak. Misalnya, Teknologi MOS 6502 menggunakan 00H, Zilog Z80
menggunakan delapan kode C7,CF,D7,DF,E7,EF,F7,FFH sedangkan Motorola 68000 menggunakan kode
dalam rentang A000..AFFFH.

Mesin virtual cepat jauh lebih mudah diimplementasikan jika set instruksi memenuhi persyaratan
virtualisasi Popek dan Goldberg.
Slide NOP yang digunakan dalam Pemrograman Sadar Kekebalan jauh lebih mudah diterapkan
jika status memori "tidak terprogram" ditafsirkan sebagai NOP.
Pada sistem dengan banyak prosesor, algoritme sinkronisasi non-blocking jauh lebih mudah
diterapkan jika set instruksi menyertakan dukungan untuk sesuatu seperti "fetch-and-add", "load-
link/store-conditional" (LL/SC), atau " perbandingan dan pertukaran atom".
Implementasi set instruksi

Setiap set instruksi yang diberikan dapat diimplementasikan dalam berbagai cara. Semua cara
mengimplementasikan set instruksi memberikan model pemrograman yang sama, dan semuanya dapat
menjalankan executable biner yang sama Berbagai cara mengimplementasikan set instruksi memberikan
tradeoff yang berbeda antara biaya, kinerja, konsumsi daya, ukuran, dll.
Machine Translated by Google

Ketika merancang mikroarsitektur prosesor, para insinyur menggunakan blok sirkuit elektronik "terprogram" (sering
kali dirancang secara terpisah) seperti penambah, multiplekser, penghitung, register, ALU, dll. Beberapa jenis
bahasa transfer register kemudian sering digunakan untuk menggambarkan decoding dan pengurutan setiap
instruksi ISA menggunakan mikroarsitektur fisik ini. Ada dua cara dasar untuk membangun unit kontrol untuk
mengimplementasikan deskripsi ini (walaupun banyak desain menggunakan cara tengah atau kompromi):

1. Desain komputer awal dan beberapa komputer RISC yang lebih sederhana "terprogram" decoding dan
pengurutan set instruksi lengkap (seperti arsitektur mikro lainnya).

2. Desain lain menggunakan rutinitas mikrokode dan/atau tabel untuk melakukan ini—biasanya seperti pada
chip ROM dan/atau PLA (walaupun RAM terpisah telah digunakan secara historis).

Ada juga beberapa desain CPU baru yang mengkompilasi set instruksi ke RAM yang dapat ditulis atau flash di
dalam CPU ( seperti prosesor Rekursiv dan Imsys Cjip), atau FPGA (komputasi yang dapat dikonfigurasi ulang).
Western Digital MCP-1600 adalah contoh lama, menggunakan ROM khusus dan terpisah untuk mikrokode.

ISA juga dapat ditiru dalam perangkat lunak oleh seorang juru bahasa. Secara alami, karena overhead interpretasi,
ini lebih lambat daripada menjalankan program secara langsung pada perangkat keras yang diemulasi, kecuali
perangkat keras yang menjalankan emulator adalah urutan besarnya lebih cepat. Saat ini, sudah menjadi praktik
umum bagi vendor ISA atau mikroarsitektur baru untuk membuat emulator perangkat lunak tersedia bagi
pengembang perangkat lunak sebelum implementasi perangkat keras siap.

Seringkali detail implementasi memiliki pengaruh yang kuat pada instruksi tertentu yang dipilih
untuk set instruksi. Misalnya, banyak implementasi dari pipeline instruksi hanya mengizinkan satu
beban memori atau penyimpanan memori per instruksi, yang mengarah ke arsitektur penyimpanan
beban (RISC). Sebagai contoh lain, beberapa cara awal mengimplementasikan pipeline instruksi
menyebabkan slot penundaan.
Tuntutan pemrosesan sinyal digital berkecepatan tinggi telah mendorong ke arah yang berlawanan—
memaksa instruksi untuk diimplementasikan dengan cara tertentu. Misalnya, untuk melakukan filter
digital dengan cukup cepat, instruksi MAC dalam prosesor sinyal digital tipikal (DSP) harus
diimplementasikan menggunakan semacam arsitektur Harvard yang dapat mengambil instruksi dan
dua kata data secara bersamaan, dan memerlukan satu- siklus multiplier-akumulasi multiplier.
Kepadatan kode
Pada komputer awal, memori itu mahal, jadi meminimalkan ukuran program untuk memastikannya muat di memori
yang terbatas seringkali menjadi hal yang utama. Jadi ukuran gabungan dari semua instruksi yang diperlukan untuk
melakukan tugas tertentu, kepadatan kode, merupakan karakteristik penting dari setiap set instruksi. Komputer
dengan densitas kode tinggi sering kali memiliki instruksi kompleks untuk entri prosedur, pengembalian parameter,
loop, dll . Namun, instruksi "CISC" yang lebih umum, atau sering, hanya menggabungkan operasi ALU dasar,
seperti "tambah", dengan akses satu atau lebih operan dalam memori (menggunakan mode pengalamatan seperti
langsung, tidak langsung, diindeks, dll.). Arsitektur tertentu memungkinkan dua atau tiga operan (termasuk hasilnya)
langsung di memori atau mungkin dapat melakukan fungsi
Machine Translated by Google

seperti kenaikan penunjuk otomatis, dll. Perangkat instruksi yang diimplementasikan perangkat lunak mungkin
memiliki instruksi yang lebih kompleks dan kuat.

Komputer set instruksi yang dikurangi, RISC, pertama kali diimplementasikan secara luas selama periode
subsistem memori yang berkembang pesat dan mengorbankan kepadatan kode untuk menyederhanakan sirkuit
implementasi dan dengan demikian mencoba meningkatkan kinerja melalui frekuensi clock yang lebih tinggi dan
lebih banyak register. Instruksi RISC biasanya hanya melakukan satu operasi, seperti "menambah" register atau
"memuat" dari lokasi memori ke dalam register; mereka juga biasanya menggunakan lebar instruksi tetap,
sedangkan set instruksi CISC tipikal memiliki banyak instruksi yang lebih pendek dari panjang tetap ini. Instruksi
dengan lebar tetap tidak terlalu rumit untuk ditangani daripada instruksi dengan lebar variabel karena beberapa
alasan (misalnya, tidak harus memeriksa apakah sebuah instruksi mengangkangi garis cache atau batas
halaman memori virtual), dan oleh karena itu agak lebih mudah untuk dioptimalkan untuk kecepatan. Namun,
karena komputer RISC biasanya memerlukan instruksi yang lebih banyak dan seringkali lebih lama untuk
mengimplementasikan tugas yang diberikan, mereka secara inheren membuat penggunaan bandwidth bus dan
memori cache menjadi kurang optimal.

Komputer set instruksi minimal (MISC) adalah bentuk mesin tumpukan, di mana ada beberapa instruksi terpisah
(16-64), sehingga beberapa instruksi dapat dimasukkan ke dalam satu kata mesin.
Jenis inti ini sering membutuhkan sedikit silikon untuk diterapkan, sehingga dapat dengan mudah diwujudkan
dalam FPGA atau dalam bentuk multi-inti . Kepadatan kode mirip dengan RISC; peningkatan kepadatan instruksi
diimbangi dengan membutuhkan lebih banyak instruksi primitif untuk melakukan tugas.

Ada penelitian tentang kompresi yang dapat dieksekusi sebagai mekanisme untuk meningkatkan kepadatan
kode. Matematika kompleksitas Kolmogorov menggambarkan tantangan dan batasan ini.

Jumlah operan

Set instruksi dapat dikategorikan dengan jumlah maksimum operan yang ditentukan secara eksplisit dalam
instruksi.

(Dalam contoh berikut, a, b, dan c adalah alamat (langsung atau terhitung) yang merujuk ke sel memori,
sedangkan reg1 dan seterusnya merujuk ke register mesin.)

0-operan (mesin alamat-nol), yang disebut mesin tumpukan: Semua operasi aritmatika dilakukan
menggunakan satu atau dua posisi teratas pada tumpukan: push a, push b, add, pop c. Untuk mesin
tumpukan, istilah "0-operan" dan "alamat nol" berlaku untuk instruksi aritmatika, tetapi tidak untuk semua
instruksi, karena instruksi push dan pop 1-operan digunakan untuk mengakses memori.
1-operan (mesin satu alamat), yang disebut mesin akumulator, termasuk komputer awal dan banyak
mikrokontroler kecil: sebagian besar instruksi menentukan operan kanan tunggal (yaitu, konstan, register,
atau lokasi memori), dengan akumulator implisit sebagai operan kiri (dan tujuan jika ada): muat a,
tambahkan b, simpan c. Kelas terkait adalah mesin tumpukan praktis yang sering mengizinkan operan
eksplisit tunggal dalam instruksi aritmatika: push a, add b, pop c.

2-operan — banyak mesin CISC dan RISC termasuk dalam kategori ini:

CISC — sering memuat a,reg1; tambahkan reg1,b; simpan reg1,c di mesin yang terbatas
ke satu operan memori per instruksi; ini mungkin memuat dan menyimpan di lokasi yang sama
CISC — pindahkan a->c; tambahkan c+=b.
Machine Translated by Google

RISC — Memerlukan beban memori eksplisit, instruksinya adalah: memuat a,reg1; beban b,reg2; tambahkan

reg1, reg2; toko reg2,c


3-operan, memungkinkan penggunaan kembali data yang lebih baik:[4]

CISC — Ini menjadi salah satu instruksi tunggal: tambahkan a,b,c, atau lebih biasanya: pindahkan a,reg1;

tambahkan reg1,b,c karena kebanyakan mesin terbatas pada dua operan memori.

RISC — instruksi aritmatika hanya menggunakan register, jadi diperlukan 2 operan untuk memuat/menyimpan:
memuat a,reg1; beban
instruksi
b,reg2; tambahkan reg1+reg2-
adalah

>reg3; menyimpan reg3,c; tidak seperti 2-operan atau 1-operan, ini meninggalkan ketiga nilai a, b, dan c dalam register

yang tersedia untuk digunakan kembali lebih lanjut


lebih banyak operan—beberapa mesin CISC mengizinkan berbagai mode pengalamatan yang memungkinkan lebih dari
3 operan (register atau akses memori), seperti instruksi evaluasi polinomial "POLY" VAX.

Karena banyaknya bit yang diperlukan untuk mengkodekan tiga register dari instruksi 3-operan, prosesor RISC yang menggunakan
instruksi 16-bit selalu merupakan mesin 2-operan, seperti Atmel AVR, TI MSP430, dan beberapa versi ARM Ibu jari. Prosesor RISC
yang menggunakan instruksi 32-bit biasanya merupakan mesin 3-operan, seperti prosesor yang mengimplementasikan Arsitektur
Daya, arsitektur SPARC , arsitektur MIPS, arsitektur ARM, dan arsitektur AVR32 .

Setiap instruksi menentukan sejumlah operan (register, lokasi memori, atau nilai langsung) secara eksplisit. Beberapa instruksi
memberikan satu atau kedua operan secara implisit, seperti dengan disimpan di atas tumpukan atau dalam register implisit. Jika
beberapa operan diberikan secara implisit, lebih sedikit operan yang perlu ditentukan dalam instruksi. Ketika "operan tujuan" secara
eksplisit menentukan tujuan, operan tambahan harus diberikan. Akibatnya, jumlah operan yang dikodekan dalam instruksi mungkin
berbeda dari jumlah argumen yang diperlukan secara matematis untuk operasi logis atau aritmatika ( arity). Operand dikodekan
dalam representasi "opcode" dari instruksi, atau diberikan sebagai nilai atau alamat yang mengikuti instruksi.

3.2.Mode pengalamatan dan kepentingannya


Mode pengalamatan adalah aspek arsitektur set instruksi di sebagian besar desain unit pemrosesan pusat (CPU). Berbagai mode
pengalamatan yang didefinisikan dalam arsitektur set instruksi yang diberikan menentukan bagaimana instruksi bahasa mesin
dalam arsitektur itu mengidentifikasi operan (atau operan) dari setiap instruksi. Mode pengalamatan menentukan bagaimana
menghitung alamat memori efektif dari sebuah operan dengan menggunakan informasi yang disimpan dalam register dan/atau
konstanta yang terkandung dalam instruksi mesin atau di tempat lain.

Dalam pemrograman komputer, mode pengalamatan terutama menarik bagi penulis kompiler dan mereka yang menulis kode
secara langsung dalam bahasa assembly.

Jenis Mode Pengalamatan


Machine Translated by Google

Setiap instruksi komputer menentukan operasi pada data tertentu. Ada berbagai cara untuk menentukan alamat data yang akan
dioperasikan. Cara yang berbeda untuk menentukan data ini disebut mode pengalamatan. Mode pengalamatan yang paling umum
adalah:

Mode pengalamatan langsung


Mode pengalamatan langsung
Mode pengalamatan tidak langsung
Daftarkan mode pengalamatan
Daftarkan mode pengalamatan tidak langsung
Mode pengalamatan perpindahan
Mode pengalamatan tumpukan

Untuk menentukan mode pengalamatan dari suatu instruksi, beberapa metode digunakan. Paling sering digunakan adalah:

Berbedamode pengalamatan.
a) mengoperasikan akan menggunakan berbeda

b) Satu atau lebih bit dalam format instruksi dapat digunakan sebagai bidang mode. Nilai dari field mode menentukan mode
pengalamatan yang akan digunakan.

Alamat efektif akan menjadi alamat memori utama register.

Alamat Segera:

Ini adalah bentuk pengalamatan yang paling sederhana. Di sini, operan diberikan dalam instruksi itu sendiri. Modus ini digunakan
untuk mendefinisikan suatu konstanta atau menetapkan nilai awal variabel. Keuntungan dari mode ini adalah tidak ada referensi
memori selain pengambilan instruksi yang diperlukan untuk mendapatkan operan. Kerugiannya adalah ukuran nomor terbatas pada
ukuran bidang alamat, yang sebagian besar set instruksi kecil dibandingkan dengan panjang kata.

PETUNJUK

OPERAN

Pengalamatan Langsung:

Dalam mode pengalamatan langsung, alamat efektif operan diberikan di bidang alamat instruksi. Ini membutuhkan satu referensi
memori untuk membaca operan dari lokasi yang diberikan dan hanya menyediakan ruang alamat yang terbatas. Panjang bidang
alamat biasanya kurang dari panjang kata.

Contoh : Pindahkan P, Ro, Tambah Q, Ro P dan Q adalah alamat operand.

Pengalamatan Tidak Langsung:


Machine Translated by Google

Mode pengalamatan tidak langsung, bidang alamat instruksi mengacu pada alamat sebuah kata dalam memori, yang
pada gilirannya berisi alamat operan yang panjang penuh. Keuntungan dari mode ini adalah bahwa untuk panjang kata
N, ruang alamat 2N dapat dialamatkan. Kerugiannya adalah bahwa eksekusi instruksi memerlukan dua referensi
memori untuk mengambil operan. Pengalamatan tidak langsung bertingkat atau bertingkat juga dapat digunakan.

Alamat Pendaftaran:

Mode pengalamatan register mirip dengan pengalamatan langsung. Satu-satunya perbedaan adalah bahwa bidang
alamat instruksi mengacu pada register daripada lokasi memori 3 atau 4 bit digunakan sebagai bidang alamat untuk
referensi 8 sampai 16 menghasilkan register tujuan. Keuntungan dari pengalamatan register adalah bidang alamat
yang kecil diperlukan dalam instruksi.

Daftar Pengalamatan Tidak Langsung:

Mode ini mirip dengan pengalamatan tidak langsung. Bidang alamat instruksi mengacu pada register. Register berisi
alamat efektif operand. Mode ini menggunakan satu referensi memori untuk mendapatkan operan. Ruang alamat
terbatas pada lebar register yang tersedia untuk menyimpan alamat efektif.

Alamat Perpindahan:

Dalam mode pengalamatan perpindahan ada 3 jenis mode pengalamatan. Mereka :

1) Pengalamatan relatif

2) Pengalamatan register dasar

3) Pengindeksan pengalamatan.

Ini adalah kombinasi dari pengalamatan langsung dan register pengalamatan tidak langsung. Nilai yang terkandung
dalam satu bidang alamat. A digunakan secara langsung dan alamat lainnya mengacu pada register yang isinya
ditambahkan ke A untuk menghasilkan alamat efektif.

Pengalamatan Tumpukan:

Stack adalah array linier dari lokasi yang disebut sebagai antrian masuk terakhir keluar pertama. Tumpukan adalah
blok lokasi yang dicadangkan, ditambahkan atau dihapus hanya di bagian atas tumpukan. Stack pointer adalah register
yang menyimpan alamat lokasi teratas stack. Mode pengalamatan ini juga dikenal sebagai pengalamatan implisit.

Pentingnya
Spesifik dari setiap jenis penting bagi pemrogram komputer yang menggunakan bahasa rakitan.
Bahasa komputer ini adalah representasi langsung dari instruksi mesin yang dikirim ke CPU
Machine Translated by Google

dan inilah yang membuatnya mampu menghasilkan program yang dapat berjalan beberapa kali lebih cepat dari
bahasa pemrograman lainnya. Bahasa assembly digunakan dalam pengembangan sistem operasi. Seorang
programmer komputer harus mengetahui jenis mode pengalamatan yang digunakan pada arsitektur komputer
tertentu sebelum ia dapat menulis sistem operasi atau aplikasi yang berfungsi dalam perakitan.

Beberapa prosesor, seperti Intel x86 dan IBM/390, memiliki instruksi alamat Load efektif . Ini melakukan
perhitungan alamat operan yang efektif, tetapi alih-alih bertindak pada lokasi memori itu, ia memuat alamat yang
akan diakses ke dalam register. Ini bisa berguna saat meneruskan alamat elemen array ke subrutin. Ini mungkin
juga merupakan cara yang sedikit licik untuk melakukan lebih banyak perhitungan daripada biasanya dalam satu
instruksi; misalnya, menggunakan instruksi seperti itu dengan mode pengalamatan "base+index+offset" (diperinci
di bawah) memungkinkan seseorang untuk menambahkan dua register dan sebuah konstanta bersama-sama dalam
satu instruksi.

3.4.Daftar
Register adalah unit memori sementara yang menyimpan kata-kata. Register terletak di prosesor, bukan di RAM,
sehingga data dapat diakses dan disimpan lebih cepat. Ada delapan register PC, AC, IR, TIR, +1, AMASK, MAR,
dan MBR, dan digunakan sebagai berikut:

* PC: Penghitung Program. Menyimpan alamat instruksi makro yang sedang dieksekusi.
* Akumulator AC. Menyimpan nilai yang dihitung sebelumnya atau nilai yang dimuat dari main
Penyimpanan.

* Daftar Instruksi IR. Menyimpan salinan instruksi yang dimuat dari memori utama.
* Daftar Instruksi Sementara TIR. Saat CPU mengevaluasi dengan tepat apa yang seharusnya dilakukan oleh
sebuah instruksi,keTIR. dia toko itu diedit petunjuk di itu

* 1 Sebuah konstanta yang mewakili nomor satu. CPU tidak dapat mengakses nomor kecuali dalam register atau
dimuat dari memori utama, atau entah bagaimana dihitung. Oleh karena itu register ini menyisihkan nomor bekas,
untuk mewakili * AMASK ini sering

Address Mask. Ketika CPU perlu mengetahui alamat kata target yang digunakan instruksi, AMASK di-AND dengan
instruksi untuk menghilangkan opcode, hanya menyisakan alamat yang diinginkan. Jika itu tidak masuk akal,
serahkan pada diskusi tentang instruksi makro
nanti pada.

* Daftar Alamat Memori MAR. Register ini berisi alamat tempat CPU ingin bekerja di memori utama. Ini terhubung
langsung ke chip RAM pada motherboard.
* Daftar Buffer Memori MBR. Register ini berisi kata yang dimuat dari memori utama atau yang akan disimpan di
memori utama. Itu juga terhubung langsung ke chip RAM pada motherboard.
Machine Translated by Google

3.5.Mikro-operasi
Dalam unit pemrosesan pusat komputer, mikro-operasi (juga dikenal sebagai mikro-ops atau ops ) adalah
instruksi tingkat rendah terperinci yang digunakan dalam beberapa desain untuk mengimplementasikan instruksi
mesin yang kompleks (kadang-kadang disebut instruksi makro dalam konteks ini).

Berbagai bentuk ops telah lama menjadi dasar untuk rutinitas mikrokode tradisional yang digunakan untuk
menyederhanakan implementasi desain CPU tertentu atau mungkin hanya pengurutan operasi multi-langkah
tertentu atau mode pengalamatan. Baru-baru ini, ops juga telah digunakan dengan cara yang berbeda agar
prosesor "CISC" modern lebih mudah menangani eksekusi paralel dan spekulatif asinkron: Seperti halnya
mikrokode tradisional, satu atau lebih pencarian tabel (atau yang setara) dilakukan untuk menemukan lokasi
yang sesuai. op-sequence berdasarkan encoding dan semantik dari instruksi mesin (langkah decoding atau
translasi), namun, alih-alih memiliki op-sequence yang kaku yang mengendalikan CPU langsung dari microcode-
ROM, ops di sini dikeluarkan secara dinamis, yaitu buffered dalam urutan yang agak panjang sebelum dieksekusi.

Penyangga ini berarti bahwa tahap pengambilan dan dekode dapat lebih terlepas dari unit eksekusi daripada
yang layak dalam desain mikrokode (atau "terkabel") yang lebih tradisional. Karena ini memungkinkan tingkat
kebebasan mengenai urutan eksekusi, itu membuat beberapa ekstraksi paralelisme tingkat instruksi dari program
utas tunggal normal menjadi mungkin (asalkan dependensi diperiksa, dll.). Ini membuka untuk analisis lebih
lanjut dan karena itu juga untuk menyusun ulang urutan kode untuk mengoptimalkan pemetaan dan penjadwalan
operasi secara dinamis ke sumber daya mesin (seperti ALU, unit muat/simpan, dll.). Karena ini terjadi pada op-
level, sub-operasi dari instruksi mesin (makro) yang berbeda mungkin sering bercampur dalam urutan op tertentu
(membentuk instruksi mesin yang dipesan ulang sebagian).

Hari ini, pengoptimalan telah melangkah lebih jauh; prosesor tidak hanya menerjemahkan banyak instruksi
mesin ke dalam serangkaian ops, tetapi juga melakukan yang sebaliknya bila perlu; mereka menggabungkan
urutan instruksi mesin tertentu (seperti perbandingan diikuti oleh lompatan bersyarat) menjadi op yang lebih
kompleks yang lebih cocok dengan model eksekusi dan dengan demikian dapat dieksekusi lebih cepat atau
dengan lebih sedikit sumber daya mesin yang terlibat.

Cara lain untuk mencoba meningkatkan kinerja adalah dengan men-cache operasi mikro yang didekodekan,
sehingga jika instruksi makro yang sama dijalankan lagi, prosesor dapat langsung mengakses operasi mikro
yang didekodekan dari cache khusus, alih-alih mendekodekannya lagi. Execution Trace Cache yang ditemukan
di mikroarsitektur Intel NetBurst (Pentium 4) sejauh ini merupakan satu-satunya contoh yang tersebar luas dari
teknik ini. Ukuran cache ini dapat dinyatakan dalam jumlah ribuan operasi mikro yang dapat disimpannya: kÿops.

Ada banyak variasi dan optimasi eksekusi instruksi yang dipercepat seperti yang dijelaskan di atas,
yang sangat sulit untuk dijelaskan secara rinci tanpa kehilangan gambaran dasar. Oleh karena itu,
untuk penjelasan didaktik diperlukan penyederhanaan konsep-konsep komputasi umum untuk
meminimalkan kompleksitas yang diperlukan. Oleh karena itu, beberapa Alat eLearning yang berharga
telah dikembangkan selama bertahun-tahun di bidang akademik untuk memvisualisasikan,
mensimulasikan dan meniru aspek Arsitektur Komputer, Set Instruksi dan arsitekturnya.
Machine Translated by Google

3.6.Deskripsi Berbagai jenis Register dengan bantuan contoh


Mikroprosesor
Dalam arsitektur komputer, register prosesor adalah sejumlah kecil penyimpanan yang tersedia sebagai bagian dari
CPU atau prosesor digital lainnya. Register tersebut (biasanya) ditangani oleh mekanisme selain memori utama dan
dapat diakses lebih cepat. Hampir semua komputer , arsitektur load-store atau tidak, memuat data dari memori yang
lebih besar ke dalam register yang digunakan untuk aritmatika, dimanipulasi, atau diuji, oleh beberapa instruksi mesin.
Data yang dimanipulasi kemudian sering disimpan kembali di memori utama, baik dengan instruksi yang sama atau
instruksi berikutnya. Prosesor modern menggunakan RAM statis atau dinamis sebagai memori utama, yang terakhir
sering diakses secara implisit melalui satu atau lebih level cache. Properti umum dari program komputer adalah lokalitas
referensi: nilai yang sama sering diakses berulang kali dan nilai yang sering digunakan disimpan dalam register
meningkatkan kinerja. Inilah yang membuat register cepat (dan cache) bermakna.

Register prosesor biasanya berada di bagian atas hierarki memori, dan menyediakan cara tercepat untuk mengakses
data. Istilah ini biasanya mengacu hanya pada kelompok register yang secara langsung dikodekan sebagai bagian dari
instruksi, seperti yang didefinisikan oleh set instruksi. Namun, CPU modern berkinerja tinggi sering memiliki duplikat
"register arsitektur" ini untuk meningkatkan kinerja
viaregister penggantian nama, memungkinkan eksekusi paralel dan spekulatif. Modern x86 mungkin adalah contoh
paling terkenal dari teknik ini.

Mengalokasikan variabel yang sering digunakan ke register dapat menjadi penting untuk kinerja program.
Alokasi register ini dilakukan oleh kompiler, dalam fase pembuatan kode , atau secara manual, oleh programmer bahasa
assembly .

Kategori register

Register biasanya diukur dengan jumlah bit yang dapat disimpan, misalnya, "8-
bit register" atau "32-bit register". Sebuah prosesor sering berisi beberapa jenis register, yang dapat diklasifikasikan
sesuai dengan konten atau instruksi yang beroperasi pada mereka:

Register yang dapat diakses pengguna – Divisi paling umum dari register yang dapat diakses pengguna adalah
menjadi register data dan register alamat.
Register data dapat menyimpan nilai numerik seperti nilai integer dan floating-point, serta karakter, array bit
kecil , dan data lainnya. Dalam beberapa CPU yang lebih tua dan low end, register data khusus, yang dikenal
sebagai akumulator, digunakan secara implisit untuk banyak operasi.
Register alamat menyimpan alamat dan digunakan oleh instruksi yang secara tidak langsung
mengakses memori utama.
Beberapa prosesor berisi register yang hanya dapat digunakan untuk menyimpan alamat atau hanya

untuk menyimpan nilai numerik (dalam beberapa kasus digunakan sebagai register indeks yang nilainya

ditambahkan sebagai offset dari beberapa alamat); yang lain mengizinkan register untuk menampung salah

satu jenis kuantitas. Berbagai macam mode pengalamatan yang mungkin, digunakan untuk menentukan

alamat efektif operan, ada.

Penunjuk tumpukan digunakan untuk mengelola tumpukan run-time. Jarang, data lain
tumpukan ditangani oleh register alamat khusus, lihat mesin tumpukan.
Machine Translated by Google

Register bersyarat menyimpan nilai kebenaran yang sering digunakan untuk menentukan apakah beberapa
instruksi harus atau tidak harus dieksekusi.

Register tujuan umum (GPR) dapat menyimpan data dan alamat, yaitu, register Data/Alamat gabungan dan
jarang file register disatukan untuk menyertakan floating point juga.

Floating point registers (FPRs) menyimpan nomor floating point di banyak arsitektur.
Register konstan menyimpan nilai read-only seperti nol, satu, atau pi.
Register vektor menyimpan data untuk pemrosesan vektor yang dilakukan oleh instruksi SIMD (Single
Instruksi, Banyak Data).
Register tujuan khusus (SPR) memegang status program; mereka biasanya menyertakan penghitung
program (alias penunjuk instruksi) dan register status (alias kata status prosesor). Penunjuk tumpukan yang
disebutkan di atas terkadang juga termasuk dalam grup ini. Mikroprosesor tertanam juga dapat memiliki register
yang sesuai dengan elemen perangkat keras khusus.

register instruksi menyimpan instruksi yang sedang dieksekusi.


Dalam beberapa arsitektur, register khusus model (juga disebut register khusus mesin) menyimpan data
dan pengaturan yang terkait dengan prosesor itu sendiri. Karena artinya melekat pada desain prosesor tertentu,
mereka tidak dapat diharapkan untuk tetap standar di antara generasi prosesor.

Kontrol dan register status – Ada tiga jenis: penghitung program, instruksi
register dan program status word (PSW).
Register yang terkait dengan pengambilan informasi dari RAM, kumpulan register penyimpanan yang terletak
pada chip terpisah dari CPU (tidak seperti kebanyakan di atas, ini umumnya bukan register arsitektur):

Register penyangga memori (MBR)

Register data memori (MDR)

Register alamat memori (MAR)

Register Rentang Jenis Memori (MTRR)

Register perangkat keras serupa, tetapi terjadi di luar CPU.

Beberapa contoh

Tabel menunjukkan jumlah register dari beberapa arsitektur mainstream. Perhatikan bahwa di x86-
prosesor yang kompatibel, penunjuk tumpukan (ESP) dihitung sebagai register bilangan bulat, meskipun ada sejumlah
instruksi terbatas yang dapat digunakan untuk mengoperasikan isinya. Peringatan serupa berlaku untuk sebagian besar
arsitektur.

x86 FPU memiliki 8 tingkat tumpukan 80-bit dalam mode lama, dan setidaknya 8 register XMM 128-bit dalam mode
SSE.

Meskipun semua arsitektur yang tercantum di atas berbeda, hampir semuanya merupakan susunan dasar yang dikenal
sebagai arsitektur Von Neumann, pertama kali diusulkan oleh ahli matematika John von Neumann.

Bilangan bulat FP
Arsitektur Catatan
mendaftar mendaftar
Machine Translated by Google

8086/8088, 80186/80188, 80286,


x86-16 8 8
dengan 8087, 80187 atau 80287 untuk floating-point
x86-32 8 8 80386 diperlukan 80387 untuk floating-point
x86-64 16 16

IBM/360 16 4

z/Arsitektur 16 16

Dan 64 register predikat 1-bit dan 8 register cabang. Register FP


Itanium 128 128
adalah 82 bit.

SPARC 31 32 Register global 0 dipasangkan ke 0. Menggunakan


jendela register.

IBM Sel 4~16 1~4 Setiap SPE berisi file register terpadu 128-bit, 128-entry .

IBM POWER 32 32 Dan 1 link dan 1 count register.


Kekuasaan Dan 32 register vektor 128-bit, 1 tautan dan 1 register hitungan.
32 32
Arsitektur

Alfa 32 32

6502 3 0

W65C816S 5 0

1 0
mikrokontroler PIC

32 0
mikrokontroler AVR

Di antaranya, register r15 adalah penghitung program dan r8-r14


bervariasi (dapat dialihkan untuk yang lain (membelok) pada prosesor ke 32)
ARM 32-bit[2] 16
saklar mode.

Selain itu, register r31 adalah penunjuk tumpukan atau diprogram


ARM 64-bit[3] 31 32
ke 0.

MIPS 31 32 Register 0 diprogram menjadi 0.

Setiap instruksi mengontrol apakah register diinterpretasikan


pencerahan 64 (per inti) sebagai integer atau floating point presisi tunggal. 16 atau 64 core.

3.7.ALU
Singkatan dari Arithmetic Logic Unit, ALU adalah salah satu dari banyak komponen dalam prosesor komputer.
ALU melakukan operasi matematis, logis, dan keputusan dalam
Machine Translated by Google

komputer dan merupakan pemrosesan akhir yang dilakukan oleh prosesor. Setelah informasi diproses oleh
ALU, informasi tersebut dikirim ke memori komputer. Pada beberapa prosesor komputer, ALU dibagi
menjadi dua bagian yang berbeda, AU dan LU. AU melakukan operasi aritmatika dan LU melakukan operasi
logika.

Dalam komputasi, unit aritmatika dan logika (ALU) adalah sirkuit digital yang melakukan operasi aritmatika
dan logika bilangan bulat. ALU adalah blok bangunan mendasar dari unit pemrosesan pusat komputer, dan
bahkan mikroprosesor paling sederhana pun memilikinya untuk tujuan seperti memelihara pengatur waktu.
Prosesor yang ditemukan di dalam CPU modern dan unit pemrosesan grafis (GPU) mengakomodasi ALU
yang sangat kuat dan sangat kompleks; komponen tunggal dapat berisi sejumlah ALU.

Matematikawan John von Neumann mengusulkan konsep ALU pada tahun 1945, ketika ia menulis laporan
tentang fondasi untuk komputer baru yang disebut EDVAC. Penelitian ALU tetap sebagai bagian penting
dari ilmu komputer, berada di bawah struktur Aritmatika dan logika dalam Sistem Klasifikasi Komputasi
ACM .

ALU dirancang untuk melakukan perhitungan bilangan bulat. Oleh karena itu, selain penjumlahan dan
pengurangan bilangan, ALU sering menangani perkalian dua bilangan bulat, karena hasilnya juga bilangan bulat.
Namun, ALU biasanya tidak melakukan operasi pembagian, karena hasilnya mungkin berupa pecahan,
atau angka "titik mengambang". Sebaliknya, operasi pembagian biasanya ditangani oleh floating point unit
(FPU), yang juga melakukan perhitungan non-bilangan bulat lainnya.

Sistem numerik

ALU harus memproses angka menggunakan format yang sama dengan sirkuit digital lainnya. Format
prosesor modern hampir selalu merupakan representasi bilangan biner pelengkap keduanya. Komputer
awal menggunakan berbagai macam sistem bilangan, termasuk komplemen satu, komplemen dua, format
tanda- besar , dan bahkan sistem desimal sejati, dengan berbagai representasi digit.

Sistem bilangan komplemen satu dan komplemen dua memungkinkan pengurangan dilakukan dengan
menjumlahkan bilangan negatif dengan cara yang sangat sederhana yang meniadakan kebutuhan akan
rangkaian khusus untuk melakukan pengurangan; namun, menghitung negatif dalam komplemen dua
memerlukan penambahan satu ke bit orde rendah dan menyebarkan carry. Cara alternatif untuk melakukan
pengurangan komplemen dua dari AÿB adalah dengan menyajikan satu ke input carry dari penambah dan
menggunakan B daripada B sebagai input kedua. Rangkaian aritmatika, logika, dan shift yang diperkenalkan
pada bagian sebelumnya dapat digabungkan menjadi satu ALU dengan pemilihan umum.
Machine Translated by Google

Ikhtisar praktis

Sebagian besar operasi prosesor dilakukan oleh satu atau lebih ALU. Sebuah ALU memuat data dari register
input. Kemudian unit kontrol eksternal memberi tahu ALU operasi apa yang harus dilakukan pada data
tersebut, dan kemudian ALU menyimpan hasilnya ke dalam register keluaran. Unit kontrol bertanggung jawab
untuk memindahkan data yang diproses antara register, ALU, dan memori ini.

Operasi kompleks
Insinyur dapat merancang Unit Logika Aritmatika untuk menghitung sebagian besar operasi. Semakin kompleks
operasinya, semakin mahal ALU, semakin banyak ruang yang digunakan dalam prosesor, dan semakin banyak
daya yang terbuang. Oleh karena itu, para insinyur berkompromi. Mereka membuat ALU cukup kuat untuk
membuat prosesor cepat, namun tidak terlalu rumit untuk menjadi penghalang. Misalnya, menghitung akar
kuadrat dari suatu bilangan mungkin menggunakan:

1. Perhitungan dalam satu jam Rancang ALU yang luar biasa kompleks yang menghitung akar kuadrat
dari bilangan apa pun dalam satu langkah.
2. Perhitungan pipa Merancang ALU yang sangat kompleks yang menghitung akar kuadrat dari nomor
apapun dalam beberapa langkah. Hasil antara melewati serangkaian sirkuit yang diatur seperti jalur
produksi pabrik. ALU dapat menerima nomor baru untuk dihitung bahkan sebelum menyelesaikan
yang sebelumnya. ALU sekarang dapat menghasilkan angka secepat ALU satu jam, meskipun
hasilnya mulai mengalir keluar dari ALU hanya setelah penundaan awal.

3. Perhitungan Iteratif Rancang ALU kompleks yang menghitung akar kuadrat melalui beberapa langkah.
Ini biasanya bergantung pada kontrol dari unit kontrol kompleks dengan mikrokode bawaan.

4. Co-processor Rancang ALU sederhana dalam prosesor, dan jual prosesor khusus dan mahal terpisah
yang dapat dipasang oleh pelanggan tepat di samping prosesor ini, dan implementasikan salah satu
opsi di atas.
5. Pustaka perangkat lunak Beri tahu pemrogram bahwa tidak ada co-prosesor dan tidak ada emulasi,
jadi mereka harus menulis algoritme sendiri untuk menghitung akar kuadrat oleh perangkat lunak.

6. Emulasi perangkat lunak Meniru keberadaan co-prosesor, yaitu, setiap kali sebuah program mencoba
melakukan perhitungan akar kuadrat, buat prosesor memeriksa apakah ada co-prosesor dan
menggunakannya jika ada; jika tidak ada, hentikan pemrosesan program dan panggil sistem operasi
untuk melakukan perhitungan akar kuadrat melalui beberapa algoritma perangkat lunak.

Opsi di atas mulai dari yang tercepat dan termahal hingga yang paling lambat dan paling murah. Oleh karena
itu, walaupun komputer yang paling sederhana pun dapat menghitung rumus yang paling rumit, komputer
yang paling sederhana biasanya membutuhkan waktu lama untuk melakukannya karena beberapa langkah
untuk menghitung rumus tersebut.

Prosesor yang kuat seperti Intel Core dan AMD64 mengimplementasikan opsi #1 untuk beberapa operasi
sederhana, #2 untuk operasi kompleks yang paling umum dan #3 untuk operasi yang sangat kompleks.

Masukan dan keluaran


Machine Translated by Google

Input ke ALU adalah data yang akan dioperasikan (disebut operand) dan kode dari unit kontrol yang
menunjukkan operasi mana yang harus dilakukan. Outputnya adalah hasil perhitungan.
Satu hal yang harus diingat desainer adalah apakah ALU akan beroperasi pada nomor big-endian atau
little endian.

Dalam banyak desain, ALU juga mengambil atau menghasilkan input atau output satu set kode kondisi
dari atau ke register status. Kode-kode ini digunakan untuk menunjukkan kasus-kasus seperti carry-in atau
carry out, overflow, divide-by-zero, dll.

Unit floating-point juga melakukan operasi aritmatika antara dua nilai, tetapi mereka melakukannya untuk
angka dalam representasi floating-point, yang jauh lebih rumit daripada representasi komplemen dua yang
digunakan dalam ALU biasa. Untuk melakukan perhitungan ini, FPU memiliki beberapa sirkuit kompleks
bawaan, termasuk beberapa ALU internal.

Dalam praktik modern, para insinyur biasanya menyebut ALU sebagai sirkuit yang melakukan operasi
aritmatika bilangan bulat (seperti komplemen dua dan BCD). Sirkuit yang menghitung format yang lebih
kompleks seperti floating point, bilangan kompleks, dll. Biasanya menerima nama yang lebih spesifik
seperti FPU.

Organisasi Unit Logika Aritmatika


Machine Translated by Google

3.7.1.Karakteristik ALU

ALU bertanggung jawab untuk melakukan semua operasi logis dan aritmatika.

- Beberapa operasi aritmatika adalah sebagai berikut: penjumlahan, pengurangan, perkalian dan
pembagian.

- Beberapa operasi logika adalah sebagai berikut: perbandingan antara angka, huruf dan atau
karakter khusus.

- ALU juga bertanggung jawab atas kondisi berikut: Kondisi sama dengan, Kurang dari kondisi dan
lebih besar dari kondisi.

3.7.2.Desain unit sederhana ALU


Dalam ECL, TTL dan CMOS, tersedia paket-paket terintegrasi yang disebut sebagai unit logika aritmatika
(ALU). Sirkuit logika dalam unit ini sepenuhnya kombinasional (yaitu terdiri dari gerbang tanpa umpan
balik dan tanpa flip-flop). ALU adalah perangkat yang sangat serbaguna dan berguna karena, dalam satu
paket, tersedia fasilitas untuk melakukan berbagai logika dan operasi aritmatika.

Unit Logika Aritmatika (ALU) adalah komponen penting dari mikroprosesor dan merupakan inti
komponen unit pemrosesan pusat.

Gbr.1 Unit Pemrosesan Pusat (CPU)


Machine Translated by Google

ALU terdiri dari logika kombinasional yang mengimplementasikan operasi logika seperti AND, OR dan operasi aritmatika,
seperti ADD, SUBTRACT.
Secara fungsional, operasi ALU tipikal direpresentasikan seperti yang ditunjukkan pada diagram di bawah ini,

Gbr.2 Representasi Fungsional Unit Logika Aritmatika

3.8.Unit Kontrol
Unit kontrol memelihara ketertiban dalam sistem komputer dan mengarahkan arus lalu lintas (operasi) dan data. Aliran
kontrol ditunjukkan oleh panah putus-putus pada gambar 1-1. Unit kontrol memilih satu pernyataan program pada satu
waktu dari area penyimpanan program, menafsirkan pernyataan, dan mengirimkan impuls elektronik yang sesuai ke unit
logika aritmatika dan bagian penyimpanan untuk menyebabkan mereka melaksanakan instruksi. Unit kontrol tidak
melakukan operasi pemrosesan aktual pada data.

Secara khusus, unit kontrol mengelola operasi CPU, baik itu mikroprosesor chip tunggal atau mainframe ukuran penuh.
Seperti pengatur lalu lintas, unit ini memutuskan kapan harus memulai dan
Machine Translated by Google

berhenti (kontrol dan waktu), apa yang harus dilakukan (instruksi program), di mana menyimpan informasi (memori), dan
dengan perangkat apa untuk berkomunikasi (I/O). Ini mengontrol aliran semua data yang masuk dan keluar dari
komputer. Ini menyelesaikan ini dengan berkomunikasi atau berinteraksi dengan unit logika-tearitmatika, memori, dan
area I/O. Ini memberi komputer kemampuan untuk berfungsi di bawah kontrol program. Tergantung pada desain
komputer, CPU juga dapat berfungsi melalui antarmuka manusia/mesin. Unit kontrol terdiri dari beberapa area dasar
yang ditentukan
memilikisecara
itulogis. Area yang ditentukan
kemampuan komputer
secara logis
mengatur
ini bekerja
dialiran
bawaherat
sinyal
kendali
satu
yang
sama
manual
mengontrol
lain. Pengaturan
pengoperasian
waktu di
komputer.
Bagian instruksi dan kontrol membuat pengambilan keputusan dan fungsi tipe memori. Pengalamatan adalah proses
menemukan operan (informasi spesifik) untuk operasi yang diberikan. Interupsi adalah pemutusan aliran normal operasi
komputer (misalnya, CTRL + ALT + DEL).

Memori kontrol adalah memori akses acak (RAM) yang terdiri dari register penyimpanan yang dapat dialamatkan.
Memori cache adalah buffer RAM kecil berkecepatan tinggi yang terletak di antara CPU dan memori utama; itu dapat
meningkatkan kecepatan PC. Read-only memory (ROM) adalah chip dengan seperangkat instruksi perangkat lunak
yang disediakan oleh pabrikan yang terpasang di dalamnya yang memungkinkan komputer melakukan operasi I/O-nya.

Unit kontrol juga mampu mematikan komputer ketika catu daya mendeteksi kondisi tidak normal

3.9.Kontrol Terprogram
Unit kontrol bawaan diimplementasikan melalui penggunaan logika sekuensial unit, menampilkan sejumlah gerbang yang
dapat menghasilkan hasil tertentu berdasarkan instruksi yang digunakan untuk meminta tanggapan tersebut. Unit kontrol
bawaan umumnya lebih cepat daripada desain yang diprogram mikro.

Desain mereka menggunakan arsitektur tetap — memerlukan perubahan dalam pengkabelan jika set instruksi dimodifikasi
atau diubah. Arsitektur ini lebih disukai di komputer set instruksi yang dikurangi (RISC) karena mereka menggunakan set
instruksi yang lebih sederhana.

Kontroler yang menggunakan pendekatan ini dapat beroperasi pada kecepatan tinggi. Namun, ia memiliki sedikit
fleksibilitas, dan kompleksitas set instruksi yang dapat diimplementasikannya terbatas.

Pendekatan bawaan menjadi kurang populer karena komputer telah berevolusi karena pada suatu waktu, unit kontrol
untuk CPU adalah logika ad-hoc, dan sulit untuk dirancang.

3.10.Kontrol Wilkes
Pada dasarnya fungsinya adalah untuk menginisiasi urutan operasi mikro yang akan dilakukan pada data yang disimpan
dalam register di komputer.

Maurice Wilkes menemukan "program mikro" pada tahun 1953. Dia mewujudkan ide yang membuat unit kontrol lebih
mudah dirancang dan lebih fleksibel. Idenya adalah bahwa unit kontrol dapat diimplementasikan sebagai memori yang
berisi pola bit kontrol dan bagian dari kontrol aliran untuk pengurutan.
Machine Translated by Google

pola-pola itu. Unit kontrol mikroprogram sebenarnya seperti komputer mini yang dapat "diprogram"
untuk mengurutkan pola bit kontrol. "Program"-nya disebut "program mikro" untuk membedakannya
dari program komputer biasa. Menggunakan program mikro, unit kontrol dapat diimplementasikan
untuk set instruksi kompleks yang tidak mungkin dilakukan dengan kabel. Wilkes menceritakan
realisasinya dengan kata-katanya sendiri:

Maurice Wilkes 1953, dia memikirkan kontrol terpusat menggunakan matriks dioda dan, setelah
mengunjungi komputer Whirlwind di AS, menulis:

Saya menemukan bahwa itu memang memiliki kontrol terpusat berdasarkan penggunaan matriks
dioda. Itu, bagaimanapun, hanya mampu menghasilkan urutan tetap dari 8 pulsa - urutan yang
berbeda untuk setiap instruksi, tetapi tetap tetap sejauh instruksi tertentu yang bersangkutan. Saya
pikir, sampai saya kembali ke Cambridge, saya menyadari bahwa solusinya adalah mengubah unit
kontrol menjadi komputer dalam bentuk mini dengan menambahkan matriks kedua untuk menentukan
aliran kontrol di tingkat mikro dan dengan menyediakan mikro bersyarat. -instruksi. [Wilkes 1985]
Idenya terlalu jauh dari masanya karena membutuhkan memori berkecepatan tinggi yang tidak
mungkin pada waktu itu. Pendekatan program mikro untuk unit kontrol memiliki beberapa keunggulan :
1. Satu model komputer dapat diprogram mikro untuk "meniru" model lain.
2. Satu set instruksi dapat digunakan di seluruh model perangkat keras yang berbeda.
3. Satu perangkat keras dapat mewujudkan banyak set instruksi. Oleh karena itu dimungkinkan untuk memilih
set yang paling cocok untuk suatu aplikasi.

3.11.Kontrol yang diprogram mikro


Ide pemrograman mikro diperkenalkan oleh Maurice Wilkes pada tahun 1951 sebagai tingkat
menengah untuk mengeksekusi instruksi program komputer. Program mikro diatur sebagai urutan
instruksi mikro dan disimpan dalam memori kontrol khusus. Algoritme untuk unit kontrol program
mikro biasanya ditentukan oleh diagram alur deskripsi.[1] Keuntungan utama dari unit kontrol program
mikro adalah kesederhanaan strukturnya. Keluaran pengontrol diatur dalam instruksi mikro dan dapat
dengan mudah diganti.
Dalam kontrol bawaan , kami melihat bagaimana semua sinyal kontrol yang diperlukan di dalam CPU dapat dihasilkan
menggunakan pencacah keadaan dan rangkaian PLA.

Ada pendekatan alternatif dimana sinyal kontrol yang diperlukan di dalam CPU dapat dihasilkan
Pendekatan alternatif ini dikenal sebagai unit kontrol mikroprogram.

, kontrol ditentukan oleh program mikro. Program mikro


Dalam unit kontrol mikroprogram logika unit
terdiri dari urutan instruksi dalam bahasa pemrograman mikro. Ini adalah instruksi yang sangat
menentukan operasi mikro.

Unit kontrol yang diprogram mikro adalah rangkaian logika yang relatif sederhana yang mampu (1)
mengurutkan melalui instruksi mikro dan (2) menghasilkan sinyal kontrol untuk mengeksekusi setiap
instruksi mikro.
Machine Translated by Google

Konsep program mikro mirip dengan program komputer. Dalam program komputer, instruksi lengkap dari program
disimpan di memori utama dan selama eksekusi mengambil instruksi dari memori utama satu demi satu. Urutan
pengambilan instruksi dikendalikan oleh program counter (PC).

Mikroprogram disimpan dalam memori mikroprogram dan eksekusinya dikendalikan oleh penghitung program mikro
(PC). Mikroprogram terdiri dari instruksi mikro yang tidak lain adalah string 0 dan 1 .
Dalam contoh tertentu, kita membaca isi dari satu lokasi memori mikroprogram,
yang tidak lain adalah instruksidengan
mikro. Setiap
satu sinyal
jalur keluaran
kontrol. Jika
( jalur
isi sel
datamemori
) dari memori
adalah program
) , ini menunjukkan
mikro berhubungan
bahwa sinyal
akan dibangkitkan dan jika isi sel memori adalah 1 ini menunjukkan bahwa menghasilkan sinyal kontrol pada saat itu
juga. ,

3.12.Mikroinstruksi
Satu instruksi dalam mikrokode. Ini adalah instruksi paling dasar di komputer, seperti memindahkan isi register ke
unit logika aritmatika (ALU). Dibutuhkan beberapa instruksi mikro untuk melaksanakan satu instruksi mesin kompleks
(CISC). Juga disebut "op mikro" atau "µop", instruksi mikro berbeda dalam keluarga komputer yang sama dan
bahkan vendor yang sama. Misalnya, meskipun semuanya adalah chip x86, mikrokode untuk Intel Pentium 4,
Pentium M, dan Athlon AMD tidak sama. Pemrogram perangkat lunak tidak pernah melihat instruksi mikro, dan tidak
didokumentasikan untuk umum

microinstruction: Sebuah instruksi yang mengontrol aliran data dan urutan instruksi-eksekusi dalam prosesor pada
tingkat yang lebih mendasar daripada instruksi mesin. Catatan: Serangkaian instruksi mikro diperlukan untuk
melakukan instruksi mesin individual.
instruksi mikro menentukan satu atau lebih operasi mikro untuk sistem.

Eksekusi Program Mikro

Tingkat abstraksi program mikro dapat bervariasi sesuai dengan jumlah pengkodean sinyal kontrol dan jumlah
paralelisme eksplisit yang ditemukan dalam format instruksi mikro. Pada salah satu ujung spektrum, instruksi mikro
vertikal sangat dikodekan dan mungkin terlihat seperti instruksi makro sederhana yang berisi bidang opcode tunggal
dan satu atau dua penentu operan. Misalnya, lihat Gambar 10, yang menunjukkan contoh mikrokode vertikal untuk
mesin Microdata [Microdata].

; kalikan dua bilangan

LF 5,X'08' ; setel penghitung putaran ke 8


MT2 ; pindahkan X ke T
LF 4,X'00' ; jelas ZU
TAMBAHKAN: TZ 3,X'01' ; jika Y bit 0 set ke 1
A 4,T ; tambahkan X ke Z
H4,R ; geser Z ke atas
Machine Translated by Google

H3,L,R ; geser Z lebih rendah


D5,C; pengurangan loop counter
TN 0,X'04' ; jika penghitung loop sama dengan 0
TAMBAH JP ; lompat ke atas lingkaran

Setiap instruksi mikro vertikal menentukan operasi jalur data tunggal dan, ketika
diterjemahkan, mengaktifkan beberapa sinyal kontrol. Cabang dalam program mikro
vertikal biasanya ditangani sebagai instruksi mikro terpisah menggunakan opcode "cabang"
atau "lompat". Gaya pemrograman mikro ini adalah yang paling alami bagi seseorang
yang berpengalaman dalam pemrograman bahasa rakitan biasa, dan mirip dengan
pemrograman dalam set instruksi RISC.

Oleh karena itu, pemograman mikro horizontal kurang familiar bagi pemrogram tradisional dan dapat lebih
rawan kesalahan. Namun, pemrograman mikro horizontal biasanya memberikan kinerja yang lebih baik karena
peluang untuk mengeksploitasi paralelisme dalam jalur data dan untuk melipat keputusan percabangan program
mikro ke dalam siklus jam yang sama di mana tindakan jalur data sedang dilakukan. Pemrograman untuk mesin
mikrokode horizontal telah dibandingkan dengan pemrograman yang diperlukan untuk prosesor VLIW.

Kombinasi instruksi mikro vertikal dan horizontal dalam skema dua tingkat disebut nanoprogramming dan
digunakan dalam Nanodata QM-1 dan Motorola 68000. QM-1 menggunakan penyimpanan kontrol instruksi
mikro 16K kata dengan 18 bit per kata dan 1K kata penyimpanan kontrol nanoinstruction dari 360 bit per kata
[Nanodata]. Instruksi mikro pada dasarnya membentuk panggilan ke rutinitas di tingkat instruksi nano. Instruksi
nano gaya horizontal dibagi menjadi lima bidang 72-bit (lihat Gambar 11).

SRDAI: "GERAKAN ARITHMETIKA GANDA KANAN SEGERA"

.... FETCH, KSHC=KANAN+GANDA+ARITHMETIC+KANAN CTL, STATUS SH AKTIF

KALC=PASS KIRI, S... ALU STATUS AKTIFKAN


A->GAGAL, A->FSID, B->KSHR, CLEAR CIN
.S.. A->FAOD, INCF->FSID, A->FSOD
..S. INCF->FSOD
...X GATE ALU, GATE SH, ALU TO COM
Machine Translated by Google

Tinjau Pertanyaan
1. Jelaskan unit pemrosesan pusat ?
2. Apa itu set instruksi dan instruksi?
3. Apa itu arsitektur set instruksi?
4. Apa yang dimaksud dengan mode pengalamatan dan jelaskan juga jenis-jenisnya?
5. Apa itu register?
6. Apa saja jenis register?
7. Jelaskan konsep operasi mikro?
8. Jelaskan unit logika aritmatika dengan diagram?
9. Apa karakteristik dari ALU?
10. Apa yang dimaksud dengan unit kontrol program mikro?
11. Jelaskan unit kontrol jelaskan?
Machine Translated by Google

4.1.Pemrograman Bahasa Perakitan


Bahasa assembly adalah bahasa pemrograman tingkat rendah untuk komputer, atau perangkat lain yang dapat diprogram,
di mana ada korespondensi yang sangat kuat (umumnya satu-ke-satu) antara bahasa dan instruksi kode mesin arsitektur.
Setiap bahasa rakitan khusus untuk arsitektur komputer tertentu, berbeda dengan kebanyakan bahasa pemrograman tingkat
tinggi , yang umumnya portabel di beberapa tetapi memerlukan juru bahasa atau kompilasi.
ilmu bangunan,

Bahasa rakitan diubah menjadi kode mesin yang dapat dieksekusi oleh program utilitas yang disebut sebagai assembler;
proses konversi disebut sebagai perakitan, atau perakitan kode.

Bahasa assembly menggunakan mnemonic untuk mewakili setiap operasi mesin tingkat rendah atau opcode.
Beberapa opcode memerlukan satu atau lebih operan sebagai bagian dari instruksi, dan sebagian besar assembler dapat
mengambil label dan simbol sebagai operan untuk mewakili alamat dan konstanta, alih- alih mengkodekannya ke dalam
program. Perakit makro menyertakan fasilitas instruksi makro sehingga teks bahasa rakitan dapat ditetapkan sebelumnya
ke sebuah nama, dan nama itu dapat digunakan untuk menyisipkan teks ke dalam kode lain. Banyak assembler menawarkan
mekanisme tambahan untuk memfasilitasi pengembangan program, untuk mengontrol proses perakitan, dan untuk membantu
debugging.

Sebuah program yang ditulis dalam bahasa assembly terdiri dari serangkaian instruksi prosesor (mnemonic) dan pernyataan-
meta (dikenal sebagai arahan, instruksi semu dan operasi semu), komentar dan data. Instruksi bahasa assembly biasanya
terdiri dari mnemonic opcode diikuti dengan daftar data, argumen atau parameter.[4] Ini diterjemahkan oleh assembler ke
dalam instruksi bahasa mesin yang dapat dimuat ke dalam memori dan dieksekusi.

Misalnya, instruksi di bawah ini memberi tahu prosesor x86/IA-32 untuk memindahkan nilai 8-bit langsung ke dalam register.
Kode biner untuk instruksi ini adalah 10110 diikuti oleh pengenal 3-bit yang akan digunakan register. Pengidentifikasi untuk
register AL adalah 000, jadi kode mesin berikut memuat register AL dengan data 01100001.

10110000 01100001

Kode komputer biner ini dapat dibuat lebih mudah dibaca manusia dengan mengekspresikannya dalam heksadesimal
sebagai berikut:

B0 61

Di sini, B0 berarti 'Pindahkan salinan nilai berikut ke dalam AL', dan 61 adalah representasi heksadesimal dari nilai 01100001,
yaitu 97 dalam desimal. Bahasa rakitan Intel menyediakan MOV themnemonic (singkatan dari move) untuk instruksi seperti
ini, jadi kode mesin
Machine Translated by Google

di atas dapat ditulis sebagai berikut dalam bahasa rakitan, lengkap dengan komentar penjelasan jika
diperlukan, setelah titik koma. Ini jauh lebih mudah dibaca dan diingat.

MOV AL, 61 jam ; Muat AL dengan 97 desimal (61 hex)


Dalam beberapa bahasa rakitan, mnemonik yang sama seperti MOV dapat digunakan untuk keluarga
instruksi terkait untuk memuat, menyalin, dan memindahkan data, apakah ini nilai langsung, nilai dalam
register, atau lokasi memori yang ditunjukkan oleh nilai dalam register. Assembler lain dapat menggunakan
opcode terpisah seperti L untuk "memindahkan memori ke register", ST untuk "memindahkan register ke
memori", LR untuk "memindahkan register ke register", MVI untuk "memindahkan operan langsung ke memori",
dll.

Intel opcode 10110000 (B0) menyalin nilai 8-bit ke register AL, sementara 10110001 (B1) memindahkannya
ke CL dan 10110010 (B2) melakukannya ke DL. Contoh bahasa rakitan untuk berikut ini.[5]

MOV AL, 1h ; Muat AL dengan nilai langsung 1


MOV CL, 2h ; Muat CL dengan nilai langsung 2
MOV DL, 3h ; Muat DL dengan nilai langsung 3
Sintaks MOV juga bisa lebih kompleks seperti yang ditunjukkan oleh contoh berikut.[6]

MOV EAX, [EBX] ; Pindahkan 4 byte dalam memori di alamat yang terdapat dalam EBX ke EAX
MOV [ESI+EAX], CL ; Pindahkan isi CL ke dalam byte di alamat ESI+EAX
Dalam setiap kasus, mnemonic MOV diterjemahkan langsung ke dalam opcode dalam rentang 88-8E, A0-
A3, B0-B8, C6 atau C7 oleh assembler, dan programmer tidak harus mengetahui atau mengingat yang
mana.

Mengubah bahasa assembly menjadi kode mesin adalah tugas assembler, dan kebalikannya setidaknya
sebagian dapat dicapai oleh disassembler. Tidak seperti bahasa tingkat tinggi, biasanya ada korespondensi
satu-ke-satu antara pernyataan perakitan sederhana dan instruksi bahasa mesin. Namun, dalam beberapa
kasus, assembler dapat menyediakan instruksi semu (pada dasarnya makro) yang diperluas menjadi
beberapa instruksi bahasa mesin untuk menyediakan fungsionalitas yang umumnya dibutuhkan. Misalnya,
untuk mesin yang tidak memiliki instruksi "branch jika lebih besar atau sama", assembler dapat memberikan
instruksi semu yang diperluas ke "set jika kurang dari" dan "branch jika nol (pada hasil instruksi set)" .
Kebanyakan assembler berfitur lengkap juga menyediakan bahasa makro yang kaya (dibahas di bawah)
yang digunakan oleh vendor dan programmer untuk menghasilkan kode dan urutan data yang lebih
kompleks.

Setiap arsitektur komputer memiliki bahasa mesinnya sendiri. Komputer berbeda dalam jumlah dan jenis
operasi yang didukungnya, dalam ukuran dan jumlah register yang berbeda, dan dalam representasi data
dalam penyimpanan. Sementara sebagian besar komputer tujuan umum pada dasarnya dapat menjalankan
fungsi yang sama, cara mereka melakukannya berbeda; bahasa rakitan yang sesuai mencerminkan
perbedaan ini.

Beberapa set mnemonik atau sintaks bahasa assembly mungkin ada untuk satu set instruksi, biasanya
dipakai dalam program assembler yang berbeda. Dalam kasus ini, yang paling populer biasanya yang
dipasok oleh pabrikan dan digunakan dalam dokumentasinya.
Machine Translated by Google

Desain bahasa
Elemen dasar

Ada tingkat keragaman yang besar dalam cara penulis assembler mengkategorikan pernyataan dan dalam
nomenklatur yang mereka gunakan. Secara khusus, beberapa menggambarkan apa pun selain mnemonic mesin
atau mnemonic diperpanjang sebagai pseudo-operasi (pseudo-op). Bahasa assembly yang khas terdiri dari 3 jenis
pernyataan instruksi yang digunakan untuk mendefinisikan operasi program:

Opcode mnemonik
Bagian data
Arahan perakitan

Mnemonik Opcode dan mnemonik yang diperluas


Instruksi (pernyataan) dalam bahasa assembly umumnya sangat sederhana, tidak seperti bahasa tingkat tinggi.
Umumnya, mnemonic adalah nama simbolis untuk satu instruksi bahasa mesin yang dapat dieksekusi ( opcode),
dan setidaknya ada satu mnemonic opcode yang didefinisikan untuk setiap instruksi bahasa mesin. Setiap instruksi
biasanya terdiri dari operasi atau opcode ditambah nol atau lebih operan. Kebanyakan instruksi mengacu pada satu
nilai, atau sepasang nilai. Operan dapat langsung (nilai dikodekan dalam instruksi itu sendiri), register yang ditentukan
dalam instruksi atau tersirat, atau alamat data yang terletak di tempat lain dalam penyimpanan. Ini ditentukan oleh
arsitektur prosesor yang mendasarinya: assembler hanya mencerminkan cara kerja arsitektur ini. Mnemonik yang
diperluas sering digunakan untuk menentukan kombinasi opcode dengan operan tertentu, misalnya, assembler
System/360 menggunakan B sebagai mnemonik yang diperluas untuk BC dengan topeng 15 dan NOP("NO
OPeration" - tidak melakukan apa pun untuk satu langkah ) untuk BC dengan topeng 0.

Mnemonik yang diperluas sering digunakan untuk mendukung penggunaan instruksi khusus, seringkali untuk tujuan
yang tidak jelas dari nama instruksi. Misalnya, banyak CPU tidak memiliki instruksi NOP eksplisit, tetapi memiliki
instruksi yang dapat digunakan untuk tujuan tersebut. Dalam 8086 CPU instruksi xchg ax,ax digunakan untuk nop,
dengan nop menjadi pseudo-opcode untuk mengkodekan instruksi xchg ax,ax. Beberapa disassembler mengenali ini
dan akan mendekode instruksi xchg ax,ax sebagai nop. Demikian pula, perakit IBM untuk System/360 dan System/
370 menggunakan NOP dan NOPR mnemonik yang diperluas untuk BC dan BCR dengan zero mask. Untuk
arsitektur SPARC, ini dikenal sebagai instruksi sintetis

Beberapa assembler juga mendukung instruksi makro built-in sederhana yang menghasilkan dua atau lebih instruksi
mesin. Misalnya, dengan beberapa assembler Z80, instruksi ld hl,bc dikenali untuk menghasilkan ld l,c diikuti oleh ld
h,b. Ini kadang-kadang dikenal sebagai pseudo-opcode.

Mnemonik adalah simbol arbitrer; pada tahun 1985 IEEE menerbitkan Standar 694 untuk seperangkat mnemonik
yang seragam untuk digunakan oleh semua assembler. Standar sejak itu telah ditarik.

Arahan data

Ada instruksi yang digunakan untuk mendefinisikan elemen data untuk menyimpan data dan variabel. Mereka
menentukan jenis data, panjang dan keselarasan data. Instruksi ini juga dapat menentukan apakah
Machine Translated by Google

data tersedia untuk program luar (program dirakit secara terpisah) atau hanya untuk program di mana bagian
data didefinisikan. Beberapa assembler mengklasifikasikan ini sebagai pseudo-ops.
Arahan perakitan
Direktif perakitan, juga disebut opcode semu, operasi semu atau operasi semu, adalah instruksi yang
dieksekusi oleh assembler pada waktu perakitan, bukan oleh CPU pada waktu berjalan. Mereka dapat
membuat perakitan program tergantung pada input parameter oleh seorang programmer, sehingga satu
program dapat dirakit dengan cara yang berbeda, mungkin untuk aplikasi yang berbeda. Mereka juga dapat
digunakan untuk memanipulasi presentasi program agar lebih mudah dibaca dan dipelihara.
(Misalnya, arahan akan digunakan untuk memesan area penyimpanan dan secara opsional konten awalnya.)
Nama arahan sering dimulai dengan titik untuk membedakannya dari instruksi mesin.

Assembler simbolik membiarkan programmer mengasosiasikan nama arbitrer (label atau simbol) dengan
lokasi memori. Biasanya, setiap konstanta dan variabel diberi nama sehingga instruksi dapat merujuk lokasi
tersebut dengan nama, sehingga mempromosikan kode yang mendokumentasikan diri sendiri. Dalam kode
yang dapat dieksekusi, nama setiap subrutin dikaitkan dengan titik masuknya, sehingga setiap panggilan ke
subrutin dapat menggunakan namanya. Di dalam subrutin , tujuan GOTO diberi label. Beberapa assembler
mendukung simbol lokal yang secara leksikal berbeda dari simbol normal (misalnya, penggunaan "10$"
sebagai tujuan GOTO).

Beberapa assembler, seperti NASM menyediakan manajemen simbol yang fleksibel, memungkinkan
pemrogram mengelola ruang nama yang berbeda, secara otomatis menghitung offset dalam struktur data,
dan menetapkan label yang mengacu pada nilai literal atau hasil perhitungan sederhana yang dilakukan oleh assembler.
Label juga dapat digunakan untuk menginisialisasi konstanta dan variabel dengan alamat yang dapat dipindahkan.

Bahasa rakitan, seperti kebanyakan bahasa komputer lainnya, memungkinkan komentar ditambahkan ke
kode sumber rakitan yang diabaikan oleh assembler. Penggunaan komentar yang baik bahkan lebih penting
dengan kode rakitan daripada dengan bahasa tingkat tinggi, karena arti dan tujuan dari urutan instruksi lebih
sulit untuk diuraikan dari kode itu sendiri.

Penggunaan fasilitas ini secara bijaksana dapat sangat menyederhanakan masalah pengkodean dan
pemeliharaan kode tingkat rendah. Kode sumber rakitan mentah yang dihasilkan oleh kompiler atau
disassembler—kode tanpa komentar, simbol yang berarti, atau definisi data—cukup sulit dibaca ketika
perubahan harus dilakukan.
makro

Banyak assembler mendukung makro yang telah ditentukan sebelumnya, dan yang lain mendukung makro
yang ditentukan pemrogram (dan berulang kali didefinisikan ulang) yang melibatkan urutan baris teks di mana
variabel dan konstanta disematkan. Urutan baris teks ini mungkin termasuk opcode atau arahan. Setelah
makro didefinisikan, namanya dapat digunakan sebagai pengganti mnemonik. Ketika assembler memproses
pernyataan seperti itu, ia mengganti pernyataan dengan baris teks yang terkait dengan makro itu, kemudian
memprosesnya seolah-olah ada di file kode sumber (termasuk, di beberapa assembler, perluasan makro
yang ada di teks pengganti) .

Perhatikan bahwa definisi "makro" ini sedikit berbeda dari penggunaan istilah dalam konteks lain, seperti
bahasa pemrograman C. Makro C dibuat melalui arahan #define
Machine Translated by Google

biasanya hanya satu baris, atau paling banyak beberapa baris. Instruksi makro assembler dapat berupa "program"
panjang sendiri, dieksekusi dengan interpretasi oleh assembler selama perakitan.

Karena makro dapat memiliki nama 'pendek' tetapi diperluas ke beberapa atau bahkan banyak baris kode, mereka
dapat digunakan untuk membuat program bahasa rakitan tampak jauh lebih pendek, membutuhkan lebih sedikit baris
kode sumber, seperti halnya bahasa tingkat yang lebih tinggi. Mereka juga dapat digunakan untuk menambahkan
tingkat struktur yang lebih tinggi ke program perakitan, secara opsional memperkenalkan kode debug tertanam melalui
parameter dan fitur serupa lainnya.

Perakit makro sering mengizinkan makro untuk mengambil parameter. Beberapa assembler menyertakan bahasa
makro yang cukup canggih, menggabungkan elemen bahasa tingkat tinggi seperti parameter opsional, variabel
simbolis, kondisional, manipulasi string, dan operasi aritmatika, semuanya dapat digunakan selama eksekusi makro
yang diberikan, dan memungkinkan makro untuk menyimpan konteks atau bertukar informasi . Jadi makro mungkin
menghasilkan sejumlah besar instruksi bahasa rakitan atau definisi data, berdasarkan argumen makro. Ini dapat
digunakan untuk menghasilkan struktur data gaya rekaman atau loop "tidak digulung", misalnya, atau dapat
menghasilkan seluruh algoritme berdasarkan parameter kompleks. Sebuah organisasi yang menggunakan bahasa
rakitan yang telah sangat diperluas menggunakan rangkaian makro semacam itu dapat dianggap bekerja dalam
bahasa tingkat yang lebih tinggi, karena pemrogram tersebut tidak bekerja dengan elemen konseptual tingkat terendah
komputer.

Macro digunakan untuk menyesuaikan sistem perangkat lunak skala besar untuk pelanggan tertentu di era mainframe
dan juga digunakan oleh personel pelanggan untuk memenuhi kebutuhan majikan mereka dengan membuat versi
tertentu dari sistem operasi pabrikan. Ini dilakukan, misalnya, oleh pemrogram sistem yang bekerja dengan Sistem
Monitor Percakapan / Mesin Virtual (VM/CMS) IBM dan dengan pengaya "pemrosesan transaksi waktu nyata" IBM,
Sistem Kontrol Informasi Pelanggan CICS, dan ACP/TPF, maskapai penerbangan /sistem keuangan yang dimulai
pada tahun 1970-an dan masih menjalankan banyak sistem reservasi komputer (CRS) besar dan sistem kartu kredit
saat ini.

Dimungkinkan juga untuk hanya menggunakan kemampuan pemrosesan makro assembler untuk menghasilkan kode
yang ditulis dalam bahasa yang sama sekali berbeda, misalnya, untuk menghasilkan versi program inCOBOL
menggunakan program assembler makro murni yang berisi baris kode COBOL di dalam waktu perakitan yang
diinstruksikan operator assembler untuk menghasilkan kode arbitrer.

Ini karena, seperti yang direalisasikan pada tahun 1960-an, konsep "pemrosesan makro" tidak tergantung pada
konsep "perakitan", yang pertama dalam istilah modern lebih banyak pemrosesan kata, pemrosesan teks, daripada
menghasilkan kode objek. Konsep pemrosesan makro muncul, dan muncul, dalam bahasa pemrograman C, yang
mendukung "instruksi praprosesor" untuk mengatur variabel, dan membuat tes kondisional pada nilainya. Perhatikan
bahwa tidak seperti prosesor makro tertentu sebelumnya di dalam assembler, praprosesor C tidak Turing-lengkap
karena tidak memiliki kemampuan untuk loop atau "pergi ke", yang terakhir memungkinkan program untuk loop.

Terlepas dari kekuatan pemrosesan makro, itu tidak digunakan dalam banyak bahasa tingkat tinggi (pengecualian
utama adalah C/C++ dan PL/I) sementara tetap menjadi abadi bagi assembler.

Substitusi parameter makro secara ketat berdasarkan nama: pada waktu pemrosesan makro, nilai parameter secara
tekstual diganti dengan namanya. Kelas bug paling terkenal yang dihasilkan adalah penggunaan parameter yang
merupakan ekspresi dan bukan nama sederhana ketika penulis makro mengharapkan nama. Dalam makro: foo:
makro a memuat a*b maksudnya adalah bahwa pemanggil akan memberikan nama variabel, dan variabel "global"
atau konstanta b akan digunakan untuk mengalikan
Machine Translated by Google

"sebuah". Jika foo dipanggil dengan parameter ac, ekspansi makro beban ac*b terjadi. Untuk menghindari
kemungkinan ambiguitas, pengguna prosesor makro dapat mengkurung parameter formal di dalam definisi makro,
atau pemanggil dapat mengkurung parameter input

Dukungan untuk pemrograman terstruktur


Beberapa assembler telah memasukkan elemen pemrograman terstruktur untuk mengkodekan aliran eksekusi.
Contoh paling awal dari pendekatan ini adalah dalam set makro Concept-14, awalnya diusulkan oleh Dr. HD Mills
(Maret, 1970), dan diimplementasikan oleh Marvin Kessler di Divisi Sistem Federal IBM, yang memperluas perakit
makro S/360 dengan IF/ ELSE/ENDIF dan blok aliran kontrol serupa.[10] Ini adalah cara untuk mengurangi atau
menghilangkan penggunaan operasi GOTO dalam kode rakitan, salah satu faktor utama yang menyebabkan kode
spageti dalam bahasa rakitan. Pendekatan ini diterima secara luas di awal tahun 80-an (hari-hari terakhir
penggunaan bahasa rakitan skala besar).

Desain yang aneh adalah A-natural, assembler "berorientasi aliran" untuk prosesor 8080/Z80 [rujukan ?] dari
Whitesmiths Ltd. ( pengembang sistem operasi Idris mirip Unix, dan yang dilaporkan sebagai kompiler C komersial
pertama). Bahasa diklasifikasikan sebagai assembler, karena bekerja dengan elemen mesin mentah seperti
opcode, register, dan referensi memori; tapi itu memasukkan sintaks ekspresi untuk menunjukkan urutan eksekusi.
Tanda kurung dan simbol khusus lainnya, bersama dengan konstruksi pemrograman terstruktur berorientasi blok,
mengontrol urutan instruksi yang dihasilkan. A-natural dibangun sebagai bahasa objek kompiler C, bukan untuk
pengkodean tangan, tetapi sintaks logisnya memenangkan beberapa penggemar.

Ada sedikit permintaan yang jelas untuk assembler yang lebih canggih sejak penurunan pengembangan bahasa
assembly skala besar. Meskipun demikian, mereka masih dikembangkan dan diterapkan dalam kasus di mana
kendala sumber daya atau kekhasan dalam arsitektur sistem target mencegah penggunaan bahasa tingkat yang
lebih tinggi secara efektif.

4.2.Mikroprosesor
Mikroprosesor menggabungkan fungsi unit pemrosesan pusat ( CPU) komputer pada satu sirkuit terintegrasi (IC),
atau paling banyak beberapa sirkuit terintegrasi. Ini multiguna , perangkat yang dapat diprogram yang menerimaadalah sebuah

data digital sebagai input, memprosesnya sesuai dengan instruksi yang disimpan dalam memorinya, dan
memberikan hasil sebagai output. Ini adalah contoh logika digital sekuensial, karena memiliki memori internal.
Mikroprosesor beroperasi pada angka dan simbol yang direpresentasikan dalam sistem angka biner.

Munculnya komputer murah di sirkuit terpadu telah mengubah masyarakat modern.


Mikroprosesor serba guna di komputer pribadi digunakan untuk komputasi, pengeditan teks, tampilan multimedia,
dan komunikasi melalui Internet. Lebih banyak mikroprosesor adalah bagian dari sistem tertanam, menyediakan
kontrol digital atas berbagai objek dari peralatan ke mobil ke telepon seluler dan kontrol proses industri.

Intel memperkenalkan mikroprosesor 4-bit pertama 4004 pada tahun 1971 dan mikroprosesor 8-bit 8008 pada
tahun 1972. Selama tahun 1960-an, prosesor komputer dibuat dari IC skala kecil dan menengah—masing-masing
berisi dari puluhan hingga beberapa ratus transistor. Ini ditempatkan dan disolder ke papan sirkuit tercetak, dan
seringkali beberapa papan saling berhubungan dalam sasis. Sejumlah besar gerbang logika diskrit menggunakan
lebih banyak daya listrik — dan karenanya menghasilkan lebih banyak panas —
Machine Translated by Google

daripada desain yang lebih terintegrasi dengan IC yang lebih sedikit. Jarak yang harus dilalui sinyal antara
IC pada papan membatasi kecepatan operasi komputer.

Dalam misi luar angkasa Apollo NASA ke bulan pada 1960-an dan 1970-an, semua perhitungan onboard
untuk panduan, navigasi, dan kontrol utama disediakan oleh prosesor khusus kecil yang disebut "The
Apollo Guidance Computer". Itu menggunakan papan sirkuit pembungkus kawat yang hanya elemen
logikanya adalah gerbang NOR tiga input.

Integrasi seluruh CPU ke dalam satu chip atau beberapa chip sangat mengurangi biaya daya pemrosesan.
Prosesor sirkuit terpadu diproduksi dalam jumlah besar oleh proses yang sangat otomatis, sehingga biaya
unit rendah. Prosesor chip tunggal meningkatkan keandalan karena lebih sedikit sambungan listrik yang
gagal. Karena desain mikroprosesor menjadi lebih cepat, biaya pembuatan chip (dengan komponen yang
lebih kecil yang dibangun di atas chip semikonduktor dengan ukuran yang sama) umumnya tetap sama.

Mikroprosesor terintegrasi ke dalam satu atau beberapa IC skala besar arsitektur yang sebelumnya telah
diimplementasikan menggunakan banyak sirkuit terintegrasi skala menengah dan kecil. Peningkatan
kapasitas mikroprosesor yang berkelanjutan telah membuat bentuk komputer lain hampir sepenuhnya
usang (lihat sejarah perangkat keras komputasi), dengan satu atau lebih mikroprosesor digunakan dalam
segala hal mulai
tertanam
dari sistem
terkecil
dan perangkat genggam hingga mainframe dan superkomputer terbesar.

Mikroprosesor pertama muncul pada awal 1970-an dan digunakan untuk kalkulator elektronik, menggunakan
aritmatika biner-kode desimal (BCD) pada kata- kata 4-bit. Penggunaan mikroprosesor 4-bit dan 8-bit
tertanam lainnya , seperti terminal, printer, berbagai jenis otomatisasi , dll., segera menyusul. Mikroprosesor
8-bit yang terjangkau dengan pengalamatan 16-bit juga menghasilkan komputer mikro serba guna pertama
sejak pertengahan 1970-an.

Sejak awal 1970-an, peningkatan kapasitas mikroprosesor telah mengikuti hukum Moore; ini awalnya
menyarankan bahwa jumlah komponen yang dapat dipasang ke sebuah chip berlipat ganda setiap tahun.
Dengan teknologi saat ini, sebenarnya setiap dua tahun, [4] dan karena itu Moore kemudian mengubah
periode menjadi dua tahun

Aplikasi yang disematkan

Ribuan item yang secara tradisional tidak berhubungan dengan komputer termasuk mikroprosesor. Ini
termasuk peralatan rumah tangga besar dan kecil, mobil (dan unit peralatan aksesorinya), kunci mobil,
peralatan dan instrumen uji, mainan, sakelar lampu/dimmer dan pemutus sirkuit listrik, alarm asap, kemasan
baterai, dan komponen audio/visual hi-fi (dari pemutar DVD ke meja putar fonograf). Produk seperti telepon
seluler, sistem video DVD dan sistem siaran HDTV pada dasarnya membutuhkan perangkat konsumen
dengan mikroprosesor yang kuat dan murah. Standar pengendalian polusi yang semakin ketat secara
efektif mengharuskan produsen mobil untuk menggunakan sistem manajemen mesin mikroprosesor, untuk
memungkinkan kontrol emisi yang optimal pada berbagai kondisi pengoperasian mobil. Kontrol yang tidak
dapat diprogram akan membutuhkan implementasi yang kompleks, besar, atau mahal untuk mencapai
hasil yang mungkin dengan mikroprosesor
Machine Translated by Google

Program kontrol mikroprosesor (perangkat lunak tertanam) dapat dengan mudah disesuaikan dengan kebutuhan lini
produk yang berbeda, memungkinkan peningkatan kinerja dengan desain ulang produk yang minimal.
Fitur yang berbeda dapat diimplementasikan dalam model lini produk yang berbeda dengan biaya produksi yang
dapat diabaikan.

Kontrol mikroprosesor dari suatu sistem dapat memberikan strategi kontrol yang tidak praktis untuk diterapkan
menggunakan kontrol elektromekanis atau kontrol elektronik yang dibuat khusus. Misalnya, sistem kontrol mesin di
mobil dapat menyesuaikan waktu pengapian berdasarkan kecepatan mesin, beban pada mesin, suhu lingkungan,
dan kecenderungan yang diamati untuk mengetuk — memungkinkan
mobil untuk beroperasi pada berbagai kelas bahan bakar.

Struktur

Susunan internal mikroprosesor bervariasi tergantung pada usia desain dan tujuan prosesor. Kompleksitas sirkuit
terpadu dibatasi oleh keterbatasan fisik jumlah transistor yang dapat dimasukkan ke dalam satu chip, jumlah terminasi
paket yang dapat menghubungkan prosesor ke bagian lain dari sistem, jumlah interkoneksi yang mungkin dilakukan.
pada chip, dan panas yang dapat dikeluarkan oleh chip.

Teknologi yang maju membuat chip yang lebih kompleks dan kuat layak untuk diproduksi.

Mikroprosesor hipotetis minimal mungkin hanya menyertakan unit logika aritmatika (ALU) dan bagian logika kontrol.
ALU melakukan operasi seperti penambahan, pengurangan, dan operasi seperti AND atau OR. Setiap operasi ALU
menetapkan satu atau lebih flag dalam register status, yang menunjukkan hasil operasi terakhir (nilai nol, angka
negatif, overflow, atau lainnya). Bagian logika mengambil kode operasi instruksi dari memori, dan memulai urutan
operasi apa pun yang diperlukan ALU untuk melaksanakan instruksi. Satu kode operasi dapat mempengaruhi banyak
jalur data individu, register, dan elemen prosesor lainnya.

Sebagai teknologi sirkuit terpadu maju, itu layak untuk memproduksi prosesor yang lebih dan lebih kompleks pada
satu chip. Ukuran objek data menjadi lebih besar; memungkinkan lebih banyak transistor pada sebuah chip
memungkinkan ukuran kata meningkat dari kata 4- dan 8-bit hingga kata-kata 64-bit saat ini. Fitur tambahan
ditambahkan ke arsitektur prosesor; lebih banyak register on-chip mempercepat program, dan instruksi kompleks
dapat digunakan untuk membuat program yang lebih ringkas. Aritmatika floating point, misalnya, seringkali tidak
tersedia pada mikroprosesor 8-bit, tetapi harus dilakukan dalam perangkat lunak. Integrasi unit floating point pertama
sebagai sirkuit terintegrasi yang terpisah dan kemudian sebagai bagian dari chip mikroprosesor yang sama,
mempercepat perhitungan floating point.

Kadang-kadang, keterbatasan fisik sirkuit terpadu membuat praktik seperti pendekatan irisan kecil diperlukan. Alih-
alih memproses semua kata yang panjang pada satu sirkuit terintegrasi, beberapa sirkuit secara paralel memproses
subset dari setiap kata data. Meskipun ini membutuhkan logika ekstra untuk menangani, misalnya, membawa dan
meluap dalam setiap irisan, hasilnya adalah sistem yang dapat menangani, katakanlah, kata 32-bit menggunakan
sirkuit terintegrasi dengan kapasitas masing-masing hanya 4 bit.

Dengan kemampuan untuk menempatkan sejumlah besar transistor pada satu chip, menjadi layak untuk
mengintegrasikan memori pada cetakan yang sama dengan prosesor. Cache CPU ini memiliki keunggulan akses
yang lebih cepat daripada memori off-chip, dan meningkatkan kecepatan pemrosesan sistem untuk banyak aplikasi.
Umumnya, kecepatan prosesor meningkat lebih cepat daripada kecepatan memori eksternal, sehingga memori cache
diperlukan jika prosesor tidak tertunda oleh memori eksternal yang lebih lambat.
Machine Translated by Google

Pertama

Tiga proyek mengirimkan mikroprosesor pada waktu yang hampir bersamaan: Garrett AiResearch's Central Air
Data Computer (CADC) (1968), Texas Instruments (TI) TMS 1000 (1971 September), dan Intel's4004 (1971
November).

CADC

Pada tahun 1968, Garrett AiResearch (yang mempekerjakan desainer Ray Holt dan Steve Geller) diundang
untuk memproduksi komputer digital untuk bersaing dengan sistem elektromekanis yang kemudian dalam
pengembangan untuk komputer kontrol penerbangan utama di pesawat tempur F-14 Tomcat baru Angkatan Laut AS .
Desainnya selesai pada tahun 1970, dan menggunakan chipset berbasis MOS sebagai CPU inti.
Desainnya secara signifikan (sekitar 20 kali) lebih kecil dan jauh lebih andal daripada sistem mekanis
yang dilawannya, dan digunakan di semua model Tomcat awal. Sistem ini berisi "mikroprosesor multi-
mikroprosesor paralel 20-bit, pipelined". Angkatan Laut menolak untuk mengizinkan publikasi desain
sampai tahun 1997. Untuk alasan ini CADC, dan chipset MP944 yang digunakannya, cukup tidak
diketahui. Ray Holt lulus California Polytechnic University pada tahun 1968, dan memulai karir desain
komputernya dengan CADC. Sejak awal, dokumen tersebut diselimuti kerahasiaan hingga tahun 1998
ketika atas permintaan Holt, Angkatan Laut AS mengizinkan dokumen tersebut masuk ke domain
publik. Sejak itu beberapa orang memperdebatkan apakah ini adalah mikroprosesor pertama. Holt
telah menyatakan bahwa tidak ada yang membandingkan mikroprosesor ini dengan mikroprosesor
yang datang kemudian. Menurut Parab dkk. (2007), "Makalah ilmiah dan literatur yang diterbitkan
sekitar tahun 1971 mengungkapkan bahwa prosesor digital MP944 yang digunakan untuk F-14
Tomcataircraft Angkatan Laut AS memenuhi syarat sebagai mikroprosesor pertama. Meskipun menarik,
itu bukan prosesor chip tunggal, seperti yang bukan Intel 4004 – keduanya lebih mirip satu set blok
bangunan paralel yang dapat Anda gunakan untuk membuat formulir tujuan umum. Ini berisi CPU,
RAM, ROM, dan dua chip pendukung lainnya seperti Intel 4004. Menarik itu dibuat dari teknologi P-
Channel yang tepat dan dioperasikan di Mil Spec dengan chip yang lebih besar. Desain teknik komputer
yang sangat baik dengan standar apa pun. Desainnya menunjukkan kemajuan besar atas Intel dan
dua tahun sebelumnya. Ini benar-benar berfungsi dan terbang di F-14 ketika Intel 4004 diumumkan. Ini
menunjukkan bahwa tema industri konvergensi arsitektur mikrokontroler DSP dimulai pada tahun 1971.
Konvergensi arsitektur DSP dan mikrokontroler ini dikenal sebagai Digital Signal Controller

Gilbert Hyatt
Gilbert Hyatt dianugerahi paten yang mengklaim penemuan sebelum TI dan Intel, menggambarkan
"mikrokontroler". Paten itu kemudian dibatalkan, tetapi tidak sebelum royalti substansial dibayarkan.

TMS 1000

Smithsonian Institution mengatakan bahwa insinyur TI Gary Boone dan Michael Cochran berhasil menciptakan
mikrokontroler pertama (juga disebut mikrokomputer) dan CPU pertama yang di-chip pada tahun 1971. Hasil
dari pekerjaan mereka adalah TMS 1000, yang dikomersialkan pada tahun 1974.] TI menekankan TMS 1000 4-
bit untuk digunakan dalam aplikasi tertanam yang telah diprogram sebelumnya, memperkenalkan versi yang
disebut TMS1802NC pada 17 September 1971 yang mengimplementasikan kalkulator pada sebuah chip.
Machine Translated by Google

TI mengajukan paten pada mikroprosesor. Gary Boone dianugerahi Paten AS 3.757.306 untuk
arsitektur mikroprosesor chip tunggal pada tanggal 4 September 1973. Pada tahun 1971 dan sekali
lagi pada tahun 1976, Intel dan TI menandatangani perjanjian lintas lisensi paten yang luas, dengan
Intel membayar royalti kepada TI untuk paten mikroprosesor. Sejarah peristiwa ini terdapat dalam
dokumentasi pengadilan dari sengketa hukum antara Cyrix dan Intel, dengan TI sebagai intervenor
dan pemilik paten mikroprosesor.
Computer-on-a-chip menggabungkan inti mikroprosesor (CPU), memori, dan jalur I/O (input/output) ke
dalam satu chip. Paten komputer-on-a-chip, yang disebut "paten komputer mikro" pada saat itu, Paten
AS 4.074.351, diberikan kepada Gary Boone dan Michael J. Cochran dari TI. Selain paten ini, arti
standar komputer mikro adalah komputer yang menggunakan satu atau lebih mikroprosesor sebagai
CPU-nya, sedangkan konsep yang didefinisikan dalam paten lebih mirip dengan mikrokontroler.

Intel 4004
Intel 4004 umumnya dianggap sebagai mikroprosesor pertama yang tersedia secara komersial, dan
berharga $60.[15] Iklan 4004 pertama yang diketahui tertanggal 15 November 1971 dan muncul di
Electronic News. Proyek yang menghasilkan 4004 berasal dari tahun 1969, ketika Busicom, produsen
kalkulator Jepang, meminta Intel untuk membuat chipset untuk kalkulator desktop berkinerja tinggi.
Desain asli Busicom menyerukan satu set chip yang dapat diprogram yang terdiri dari tujuh chip yang
berbeda. Tiga dari chip tersebut adalah untuk membuat CPU tujuan khusus dengan programnya
disimpan dalam ROM dan datanya disimpan dalam memori baca-tulis register geser. Ted Hoff, insinyur
Intel yang ditugaskan untuk mengevaluasi proyek, percaya bahwa desain Busicom dapat disederhanakan
dengan menggunakan penyimpanan RAM dinamis untuk data, daripada memori register geser, dan
arsitektur CPU tujuan umum yang lebih tradisional. Hoff datang dengan proposal arsitektur empat chip:
chip ROM untuk menyimpan program, chip RAM dinamis untuk menyimpan data, perangkat I/O
sederhana dan unit pemrosesan pusat (CPU) 4-bit. Meskipun bukan perancang chip, dia merasa CPU
dapat diintegrasikan ke dalam satu chip, tetapi karena dia tidak memiliki pengetahuan teknis, ide
tersebut tetap menjadi harapan untuk saat ini.

Sementara arsitektur dan spesifikasi MCS-4 berasal dari interaksi Hoff dengan Stanley Mazor, seorang
insinyur perangkat lunak yang melapor kepadanya, dan dengan insinyur Busicom Masatoshi Shima,
selama tahun 1969, Mazor dan Hoff pindah ke proyek lain. Pada bulan April 1970, Intel mempekerjakan
insinyur kelahiran Italia Federico Faggin sebagai pemimpin proyek, sebuah langkah yang pada akhirnya
membuat desain akhir CPU chip tunggal menjadi kenyataan (Shima malah merancang firmware
kalkulator Busicom dan membantu Faggin selama enam bulan pertama implementasi). Faggin, yang
awalnya mengembangkan teknologi gerbang silikon (SGT) pada tahun 1968 di Fairchild Semiconductor
dan merancang sirkuit terintegrasi komersial pertama di dunia menggunakan SGT, Fairchild 3708,
memiliki latar belakang yang tepat untuk memimpin proyek tersebut menjadi mikroprosesor komersial
pertama yang bertujuan umum, karena itu adalah penemuannya sendiri, SGT di samping metodologi
barunya untuk desain logika acak, yang memungkinkan untuk mengimplementasikan CPU chip tunggal
dengan kecepatan, disipasi daya, dan biaya yang tepat. Manajer Departemen Desain MOS Intel adalah Leslie L.
Vadasz. pada saat pengembangan MCS-4, tetapi perhatian Vadasz sepenuhnya terfokus pada bisnis
utama memori semikonduktor dan dia menyerahkan kepemimpinan dan pengelolaan proyek MCS-4
kepada Faggin, yang pada akhirnya bertanggung jawab untuk memimpin
Machine Translated by Google

4004 proyek untuk realisasinya. Unit produksi 4004 pertama kali dikirim ke Busicom pada Maret 1971 dan
dikirim ke pelanggan lain pada akhir 1971.
Pico/Instrumen Umum

Pada tahun 1971 Pico Electronics dan General Instrument (GI) memperkenalkan kolaborasi pertama mereka
dalam IC, IC kalkulator chip tunggal lengkap untuk kalkulator Monroe/Litton Royal Digital III. Chip ini juga bisa
dibilang mengklaim sebagai salah satu mikroprosesor atau mikrokontroler pertama yang memiliki ROM, RAM
dan set instruksi RISC on-chip. Tata letak untuk empat lapisan proses PMOS digambar tangan pada skala x500
pada film mylar, tugas yang signifikan pada saat itu mengingat kompleksitas chip.

Pico adalah spin-out oleh lima insinyur desain GI yang memiliki visi untuk membuat IC kalkulator chip tunggal.
Mereka memiliki pengalaman desain sebelumnya yang signifikan pada beberapa chipset kalkulator dengan GI
dan Marconi-Elliott . Anggota tim utama awalnya ditugaskan oleh Elliott Automation untuk membuat komputer
8 bit di MOS dan telah membantu mendirikan Laboratorium Penelitian MOS di Glenrothes, Skotlandia pada
tahun 1967 .

Kalkulator menjadi pasar tunggal terbesar untuk semikonduktor dan Pico dan GI terus meraih sukses yang
signifikan di pasar yang sedang berkembang ini. GI terus berinovasi dalam mikroprosesor dan mikrokontroler
dengan produk termasuk CP1600, IOB1680 dan PIC1650. Pada tahun 1987 bisnis Mikroelektronik GI dipintal
menjadi bisnis mikrokontroler Microchip PIC .

Sistem Empat Fase AL1


Sistem Empat Fase AL1 adalah chip irisan bit 8-bit yang berisi delapan register dan sebuah ALU. Ini dirancang
oleh Lee Boysel pada tahun 1969. Pada saat itu, itu merupakan bagian dari sembilan chip, CPU 24-bit dengan
tiga AL1, tetapi kemudian disebut mikroprosesor ketika, sebagai tanggapan atas litigasi tahun 1990-an oleh
Texas Instruments, sebuah demonstrasi sistem dibangun di mana satu AL1 membentuk bagian dari sistem
komputer demonstrasi ruang sidang, bersama dengan RAM, ROM, dan perangkat input-output.

desain 8-bit

Intel 4004 diikuti pada tahun 1972 oleh Intel 8008, mikroprosesor 8-bit pertama di dunia .
Namun, 8008 bukanlah perpanjangan dari desain 4004, melainkan puncak dari proyek desain terpisah di Intel,
yang timbul dari kontrak dengan Computer Terminals Corporation, dari San Antonio TX, untuk sebuah chip
untuk terminal yang mereka rancang, titik Data 2200 —
aspek mendasar dari desain tidak berasal dari Intel tetapi dari CTC. Pada tahun 1968, Vic Poor dan Harry Pyle
dari CTC mengembangkan desain asli untuk set instruksi dan pengoperasian
prosesor. Pada tahun 1969, CTC mengontrak dua perusahaan, Intel dan Texas Instruments, untuk membuat
implementasi chip tunggal, yang dikenal sebagai CTC 1201. Pada akhir 1970 atau awal 1971, TI keluar karena
tidak dapat membuat bagian yang andal. Pada tahun 1970, dengan Intel yang belum mengirimkan bagian
tersebut, CTC memilih untuk menggunakan implementasi mereka sendiri di Datapoint 2200, menggunakan
logika TTL tradisional (jadi mesin pertama yang menjalankan "kode 8008" sebenarnya bukan mikroprosesor
sama sekali dan dikirimkan setahun sebelumnya). Mikroprosesor 1201 versi Intel tiba pada akhir tahun 1971,
tetapi terlambat, lambat, dan memerlukan sejumlah chip pendukung tambahan. CTC tidak tertarik
menggunakannya. CTC awalnya mengontrak Intel untuk chip tersebut, dan akan berutang $50.000 kepada mereka untuk desain
Machine Translated by Google

kerja. Untuk menghindari membayar chip yang tidak mereka inginkan (dan tidak dapat digunakan), CTC melepaskan
Intel dari kontrak mereka dan mengizinkan mereka menggunakan desain secara gratis. Intel memasarkannya sebagai
8008 pada bulan April 1972, sebagai mikroprosesor 8-bit pertama di dunia. Itu adalah dasar untuk perangkat komputer
"Mark-8" yang terkenal yang diiklankan di majalah Radio-Electronics pada tahun 1974.

8008 adalah pendahulu dari Intel 8080 (1974) yang sangat sukses, yang menawarkan kinerja yang jauh lebih baik
daripada 8008 dan membutuhkan lebih sedikit chip pendukung, Zilog Z80 (1976), dan prosesor Intel 8-bit turunan.
Motorola 6800 yang bersaing dirilis Agustus 1974 dan MOS Technology 6502 serupa pada tahun 1975 (keduanya
sebagian besar dirancang oleh orang yang sama). Keluarga 6502 menyaingi Z80 dalam popularitas selama tahun 1980-
an.

Biaya keseluruhan yang rendah, kemasan kecil , persyaratan bus komputer sederhana, dan
kadang-kadang integrasi sirkuit ekstra ( misalnya sirkuit penyegaran memori bawaan Z80)
memungkinkan "revolusi" komputer rumah berakselerasi tajam pada awal 1980-an. Ini
menghasilkan mesin murah seperti Sinclair ZX-81, yang dijual seharga US$99. Variasi dari
6502 , Teknologi MOS 6510 digunakan di Commodore 64 dan varian lain, 8502, mendukung
Commodore 128.

Western Design Center, Inc (WDC) memperkenalkan CMOS 65C02 pada tahun 1982 dan melisensikan desainnya ke
beberapa perusahaan. Itu digunakan sebagai CPU di komputer pribadi Apple IIe dan IIc serta alat pacu jantung dan
defibrillator tingkat implan medis , perangkat otomotif, industri, dan konsumen. WDC memelopori lisensi desain
mikroprosesor, kemudian diikuti oleh ARM dan penyedia Kekayaan Intelektual (IP) mikroprosesor lainnya pada 1990-an.

Motorola memperkenalkan MC6809 pada tahun 1978, sumber desain 8-bit yang ambisius dan penuh pemikiran yang
kompatibel dengan 6800 dan diimplementasikan menggunakan logika terprogram murni . (Mikroprosesor 16-bit
berikutnya biasanya menggunakan mikrokode sampai batas tertentu, karena persyaratan desain CISC menjadi terlalu
rumit untuk logika murni kabel saja.)

Mikroprosesor 8-bit awal lainnya adalah Signetics 2650, yang menikmati lonjakan minat singkat karena arsitektur set
instruksi yang inovatif dan kuat.

Sebuah mikroprosesor mani di dunia luar angkasa adalah RCA's RCA 1802 (alias CDP1802, RCA COSMAC)
(diperkenalkan pada tahun 1976), yang digunakan di papan probe Galileo ke Jupiter (diluncurkan 1989, tiba 1995). RCA
COSMAC adalah yang pertama menerapkan teknologi CMOS.
CDP1802 digunakan karena dapat dijalankan dengan daya yang sangat rendah, dan karena tersedia varian yang dibuat
menggunakan proses produksi khusus (Silicon on Sapphire), memberikan perlindungan yang jauh lebih baik terhadap
radiasi kosmik dan pelepasan muatan elektrostatis daripada prosesor lainnya. zaman. Dengan demikian, versi SOS dari
1802 dikatakan sebagai mikroprosesor pertama yang diperkeras radiasi.

RCA 1802 memiliki apa yang disebut desain statis, yang berarti bahwa frekuensi clock dapat dibuat sewenang-wenang
rendah, bahkan hingga 0 Hz, kondisi berhenti total. Ini memungkinkan pesawat ruang angkasa Galileo menggunakan
daya listrik minimum untuk perjalanan panjang yang lancar. Timer atau sensor akan membangunkan prosesor tepat
waktu untuk tugas-tugas penting, seperti pembaruan navigasi, kontrol sikap, akuisisi data, dan komunikasi radio. Versi
saat ini dari Western Design Center 65C02 dan 65C816 memiliki inti statis, dan dengan demikian menyimpan data
bahkan ketika jam benar-benar dihentikan.
Machine Translated by Google

desain 12-bit

Keluarga Intersil 6100 terdiri dari mikroprosesor 12-bit (6100) dan berbagai dukungan periferal dan IC
memori. Mikroprosesor mengenali set instruksi komputer mini DEC PDP 8 . Karena itu kadang-kadang
disebut sebagai CMOS-PDP8. Karena juga diproduksi oleh Harris Corporation, ia juga dikenal sebagai
Harris HM-6100. Berdasarkan teknologi CMOS dan manfaat yang terkait, 6100 dimasukkan ke dalam
beberapa desain militer hingga awal 1980-an.

desain 16-bit

Mikroprosesor 16-bit multi-chip pertama adalah National Semiconductor IMP-16, diperkenalkan pada
awal tahun 1973. Versi 8-bit dari chipset diperkenalkan pada tahun 1974 sebagai IMP-8.
Mikroprosesor 16-bit multi-chip awal lainnya termasuk yang digunakan oleh Digital Equipment
Corporation (DEC) dalam set papan OEM LSI-11 dan komputer mini PDP 11/03 yang dikemas —
dan Fairchild Semiconductor MicroFlame 9440, keduanya diperkenalkan pada 1975-1976. Pada
tahun 1975, National memperkenalkan mikroprosesor chip tunggal 16-bit pertama, National
Semiconductor PACE, yang kemudian diikuti oleh versi NMOS, INS8900.
Mikroprosesor 16-bit chip tunggal awal lainnya adalah TI TMS 9900, yang juga kompatibel dengan
jajaran komputer mini TI-990 mereka. 9900 digunakan di komputer mini TI 990/4, komputer rumah
TI-99/4A , dan jajaran papan mikrokomputer OEM TM990. Chip tersebut dikemas dalam paket DIP 64-
pin keramik besar, sementara sebagian besar mikroprosesor 8-bit seperti Intel 8080 menggunakan
DIP 40-pin plastik yang lebih umum, lebih kecil, dan lebih murah. Sebuah chip lanjutan, TMS 9980,
dirancang untuk bersaing dengan Intel 8080, memiliki set instruksi 16-bit TI 990 lengkap, menggunakan
paket plastik 40-pin, memindahkan data 8 bit sekaligus, tetapi hanya dapat menangani 16KB. Chip
ketiga, TMS 9995, adalah desain baru. Keluarga kemudian diperluas untuk memasukkan 99105 dan
99110.

Western Design Center (WDC) memperkenalkan CMOS 65816 16-bit upgrade dari WDC CMOS
65C02 pada tahun 1984. Mikroprosesor 16-bit 65816 adalah inti dari Apple IIgs dan kemudian Super
Nintendo Entertainment System, menjadikannya salah satu yang paling populer Desain 16-bit
sepanjang masa.

Intel "meningkatkan" desain 8080 mereka menjadi Intel 8086 16-bit, anggota pertama dari keluarga
x86, yang menggerakkan sebagian besar komputer jenis PC modern. Intel memperkenalkan 8086
sebagai cara yang hemat biaya untuk memindahkan perangkat lunak dari lini 8080, dan berhasil
memenangkan banyak bisnis pada premis itu. 8088, versi 8086 yang menggunakan bus data eksternal
8-bit, adalah mikroprosesor di PC IBM pertama. Intel kemudian merilis 80186 dan 80188, 80286 dan,
pada tahun 1985, 80386 32-bit, memperkuat dominasi pasar PC mereka dengan kompatibilitas mundur
keluarga prosesor. The 80186 dan 80188 pada dasarnya adalah versi dari 8086 dan 8088, ditingkatkan
dengan beberapa periferal onboard dan beberapa instruksi baru; mereka tidak digunakan di PC yang
kompatibel dengan IBM karena perferal bawaan dan lokasinya di peta memori tidak sesuai dengan
desain IBM. 8086 dan penerusnya memiliki metode segmentasi memori yang inovatif namun terbatas,
sedangkan 80286 memperkenalkan unit manajemen memori tersegmentasi berfitur lengkap (MMU).
80386 memperkenalkan model memori 32-bit datar dengan manajemen memori halaman.
Machine Translated by Google

Prosesor Intel x86 hingga dan termasuk 80386 tidak menyertakan unit titik-mengambang (FPU). Intel
memperkenalkan koprosesor matematika 8087, 80287, dan 80387 untuk menambahkan kemampuan
fungsi titik-mengambang dan fungsi transendental perangkat keras ke CPU 8086 hingga 80386. 8087
bekerja dengan 8086/8088 dan 80186/80188, 80187 bekerja dengan 80186/80188, 80287 bekerja
dengan 80286 dan 80386, dan 80387 bekerja dengan 80386 (menghasilkan kinerja yang lebih baik
daripada 80287). Kombinasi CPU x86 dan koprosesor x87 membentuk mikroprosesor multi-chip
tunggal; dua chip diprogram sebagai satu unit menggunakan satu set instruksi terintegrasi. Meskipun
koprosesor 8087 dihubungkan ke CPU melalui port I/O di ruang alamat CPU, ini transparan untuk
program, yang tidak perlu mengetahui atau mengakses port I/O ini secara langsung; program
mengakses koprosesor dan registernya melalui opcode instruksi normal. Dimulai dengan penerus
80386, 80486, FPU terintegrasi dengan unit kontrol, MMU, dan ALU integer dalam desain pipelined
pada satu chip (dalam versi 80486DX), atau FPU dihilangkan seluruhnya (dalam 80486SX Versi:
kapan). Sebuah koprosesor nyata untuk 80486SX, 80487 sebenarnya adalah 80486DX lengkap yang
menonaktifkan dan menggantikan 80486SX tanpa koprosesor yang diinstal untuk ditingkatkan.

desain 32-bit

Desain 16-bit baru beredar sebentar di pasaran ketika implementasi 32-bit mulai muncul.

Yang paling signifikan dari desain 32-bit adalah Motorola MC68000, diperkenalkan pada tahun 1979.
68K, seperti yang dikenal secara luas, memiliki register 32-bit dalam model pemrogramannya tetapi
menggunakan jalur data internal 16-bit, 3 Aritmatika 16-bit Unit Logika, dan bus data eksternal 16-bit
(untuk mengurangi jumlah pin), dan hanya mendukung alamat 24-bit secara eksternal (secara internal
berfungsi dengan alamat 32 bit penuh). Pada mainframe IBM-kompatibel berbasis PC , mikrokode
internal MC68000 telah dimodifikasi untuk meniru mainframe IBM System/370 32-bit. Motorola umumnya
menggambarkannya sebagai prosesor 16-bit, meskipun jelas memiliki arsitektur yang mampu 32-bit.
Kombinasi antara kinerja tinggi, ruang memori besar (16 megabyte atau 224 byte) dan biaya yang
cukup rendah menjadikannya desain CPU paling populer di kelasnya. Desain Apple Lisa dan Macintosh
menggunakan 68000, seperti halnya sejumlah desain lain pada pertengahan 1980-an, termasuk Atari
ST dan Commodore Amiga.
Mikroprosesor 32-bit chip tunggal pertama di dunia, dengan jalur data 32-bit, bus 32-bit, dan alamat 32-
bit, adalah AT&T Bell Labs BELLMAC-32A, dengan sampel pertama pada tahun 1980, dan produksi
umum pada tahun 1982 [32][33] Setelah divestasi AT&T pada tahun 1984, namanya diubah menjadi
WE 32000 (WE forWestern Electric), dan memiliki dua generasi penerus, WE 32100 dan WE 32200.
Mikroprosesor ini digunakan di komputer mini AT&T 3B5 dan 3B15; di 3B2, komputer supermikro
desktop pertama di dunia; di "Companion", komputer laptop 32-bit pertama di dunia; dan di "Alexander",
komputer supermikro pertama seukuran buku di dunia, yang menampilkan kartrid memori paket ROM
yang mirip dengan konsol game saat ini. Semua sistem ini menjalankan sistem operasi UNIX System V.

Mikroprosesor 32-bit pertama Intel adalah iAPX 432, yang diperkenalkan pada tahun 1981 tetapi tidak
sukses secara komersial. Itu memiliki arsitektur berorientasi objek berbasis kemampuan canggih ,
tetapi kinerjanya buruk dibandingkan dengan arsitektur kontemporer seperti 80286 milik Intel (diperkenalkan
Machine Translated by Google

1982), yang hampir empat kali lebih cepat pada tes benchmark biasa. Namun, hasil untuk iAPX432 sebagian
disebabkan oleh compiler Ada yang terburu-buru dan oleh karena itu kurang optimal. ARM pertama kali muncul
pada tahun 1985. Ini adalah desain prosesor RISC , yang sejak itu mendominasi prosesor 32-
bit ruang prosesor sistem tertanam sebagian besar karena efisiensi daya, model lisensi, dan berbagai pilihan
alat pengembangan sistem. Produsen semikonduktor umumnya melisensikan inti seperti ARM11 dan
mengintegrasikannya ke dalam sistem mereka sendiri pada produk chip ; hanya beberapa vendor tersebut
yang dilisensikan untuk memodifikasi inti ARM. Sebagian besar ponsel menyertakan prosesor ARM, seperti
halnya berbagai macam produk lainnya. Ada inti ARM berorientasi mikrokontroler tanpa dukungan memori
virtual, serta prosesor aplikasi SMP dengan memori virtual.

Keberhasilan Motorola dengan 68000 menyebabkan MC68010, yang menambahkan dukungan memori virtual.
MC68020, diperkenalkan pada tahun 1985 menambahkan data 32-bit penuh dan bus alamat. 68020 menjadi
sangat populer di pasar supermikrokomputer Unix, dan banyak perusahaan kecil (misalnya, Altos, Charles
River Data Systems, Cromemco) memproduksi sistem ukuran desktop. MC68030 diperkenalkan selanjutnya,
menyempurnakan desain sebelumnya dengan mengintegrasikan MMU ke dalam chip. Keberhasilan yang
berkelanjutan menghasilkan MC68040, yang menyertakan FPU untuk kinerja matematika yang lebih baik. A
68050 gagal mencapai sasaran kinerjanya dan tidak dirilis, dan MC68060 lanjutan dirilis ke pasar yang
dipenuhi oleh desain RISC yang jauh lebih cepat. Keluarga 68K memudar dari desktop di awal 1990-an.

Perusahaan besar lainnya merancang 68020 dan mengikutinya ke dalam peralatan tertanam. Pada satu titik,
ada lebih banyak 68020 di peralatan tertanam daripada Intel Pentium di PC. Inti prosesor ColdFire adalah
turunan dari 68020 yang terhormat.

Selama waktu ini (awal hingga pertengahan 1980-an), National Semiconductor memperkenalkan pinout 16-bit
yang sangat mirip, mikroprosesor internal 32-bit yang disebut NS 16032 (kemudian berganti nama menjadi
32016), versi 32-bit penuh bernama NS 32032. Kemudian, National Semiconductor menghasilkan NS 32132,
yang memungkinkan dua CPU untuk berada di bus memori yang sama dengan arbitrase bawaan. NS32016/32
mengungguli MC68000/10, tetapi NS32332—yang tiba pada waktu yang hampir bersamaan dengan MC68020
—tidak memiliki performa yang cukup. Chip generasi ketiga, NS32532, berbeda. Performanya sekitar dua kali
lipat dari MC68030, yang dirilis sekitar waktu yang sama. Munculnya prosesor RISC seperti AM29000 dan
MC88000 (sekarang keduanya mati) mempengaruhi arsitektur inti terakhir, NS32764.

Secara teknis canggih—dengan inti RISC superskalar, bus 64-bit, dan overclock internal—masih dapat
mengeksekusi instruksi Seri 32000 melalui terjemahan waktu nyata.

Ketika National Semiconductor memutuskan untuk meninggalkan pasar Unix, chip tersebut
didesain ulang menjadi prosesor Swordfish Embedded dengan satu set periferal on chip. Chip itu
ternyata terlalu mahal untuk pasar printer laser dan terbunuh. Tim desain pergi ke Intel dan di sana
merancang prosesor Pentium, yang sangat mirip dengan inti NS32764 secara internal. Keberhasilan
besar Seri 32000 berada di pasar printer laser, di mana NS32CG16 dengan instruksi BitBlt
mikrokode memiliki harga/kinerja yang sangat baik dan diadopsi oleh perusahaan besar seperti
Canon. Pada pertengahan 1980-an, Sequent memperkenalkan komputer kelas server symmetric
multiprocessor (SMP) pertama menggunakan NS 32032. Ini adalah salah satu dari sedikit
kemenangan desain, dan menghilang pada akhir 1980-an. MIPS R2000 (1984) dan R3000 (1989)
adalah mikroprosesor RISC 32-bit yang sangat sukses. Mereka digunakan di workstation dan server kelas atas ole
Machine Translated by Google

diantara yang lain. Desain lainnya termasuk Zilog Z80000, yang datang terlambat ke pasar untuk mendapat
kesempatan dan menghilang dengan cepat.

Pada akhir 1980-an, "perang mikroprosesor" mulai mematikan beberapa mikroprosesor


Rupanya hanya dengan satu kemenangan desain yang lebih besar, Sequent, NS 32032 menghilang begitu
saja, dan Sequent beralih ke mikroprosesor Intel.

Dari tahun 1985 hingga 2003, arsitektur x86 32-bit menjadi semakin dominan di pasar desktop, laptop, dan
server, dan mikroprosesor ini menjadi lebih cepat dan lebih mampu. Intel telah melisensikan versi awal
arsitektur ke perusahaan lain, tetapi menolak untuk melisensikan Pentium, sehingga AMD dan Cyrix
membangun versi arsitektur yang lebih baru berdasarkan desain mereka sendiri.
Selama rentang ini, prosesor ini meningkatkan kompleksitas (jumlah transistor) dan kemampuan (instruksi/
detik) setidaknya tiga kali lipat. Lini Pentium Intel mungkin adalah model prosesor 32-bit yang paling terkenal
dan dikenal, setidaknya dengan masyarakat luas.

Desain 64-bit di komputer pribadi

Sementara desain mikroprosesor 64-bit telah digunakan di beberapa pasar sejak awal 1990-an ( termasuk
konsol game Nintendo 64 pada tahun 1996), awal 2000-an melihat pengenalan 64-bit.
mikroprosesor bit yang ditargetkan untuk pasar PC.

Dengan diperkenalkannya AMD arsitektur 64-bit yang kompatibel dengan x86, x86-64 (juga disebut AMD64),
pada bulan September 2003, diikuti oleh ekstensi 64-bit Intel yang hampir sepenuhnya kompatibel (pertama
disebut IA-32e atau EM64T, kemudian berganti nama menjadi Intel 64), era desktop 64-bit dimulai. Kedua
versi dapat menjalankan aplikasi warisan 32-bit tanpa penalti kinerja apa pun serta 64-bit baru.
perangkat lunak bit. Dengan sistem operasi Windows XP x64, Windows Vista x64, Windows 7 x64, Linux,
BSD, dan Mac OS X yang menjalankan 64-bit native, perangkat lunak ini juga diarahkan untuk sepenuhnya
memanfaatkan kemampuan prosesor tersebut. Perpindahan ke 64 bit lebih dari sekedar peningkatan ukuran
register dari IA-32 karena juga menggandakan jumlah register tujuan umum.

Perpindahan ke 64 bit oleh prosesor PowerPC telah dimaksudkan sejak desain prosesor di awal 90-an dan
bukan merupakan penyebab utama ketidakcocokan. Register integer yang ada diperluas seperti halnya
semua jalur data terkait, tetapi, seperti halnya dengan IA-32, baik floating point maupun unit vektor telah
beroperasi pada atau di atas 64 bit selama beberapa tahun. Tidak seperti apa yang terjadi ketika IA-32
diperluas ke x86-64, tidak ada register tujuan umum baru yang ditambahkan di PowerPC 64-bit, sehingga
kinerja apa pun yang diperoleh saat menggunakan mode 64-bit untuk aplikasi yang tidak menggunakan
ruang alamat yang lebih besar adalah minimal

4.3.Format instruksi untuk contoh Mikroprosesor


Setelah sebuah program berada di memori, program itu harus dieksekusi. Untuk melakukan ini, setiap
instruksi harus dilihat, diterjemahkan dan ditindaklanjuti secara bergantian sampai program selesai. Hal ini
dicapai dengan menggunakan apa yang disebut 'siklus eksekusi instruksi', yang merupakan siklus dimana
setiap instruksi pada gilirannya diproses. Namun, untuk memastikan bahwa eksekusi berjalan dengan lancar,
perlu juga menyinkronkan aktivitas prosesor.
Machine Translated by Google

Untuk menjaga agar acara tetap sinkron, jam terletak di dalam unit kontrol CPU digunakan. Ini menghasilkan pulsa reguler
pada bus sistem pada frekuensi tertentu, sehingga setiap pulsa memiliki waktu yang sama setelah yang terakhir. Frekuensi
pulsa clock ini terkait dengan kecepatan clock prosesor -
semakin tinggi kecepatan clock, semakin pendek waktu antara pulsa. Tindakan hanya terjadi ketika pulsa terdeteksi,
sehingga perintah dapat disimpan dalam waktu satu sama lain di seluruh unit komputer.

Siklus eksekusi instruksi dapat dengan jelas dibagi menjadi tiga bagian yang berbeda, yang sekarang akan dibahas
secara lebih rinci. Untuk informasi lebih lanjut tentang setiap bagian dari siklus, klik judul yang relevan, atau gunakan
panah berikutnya seperti sebelumnya untuk melanjutkan setiap tahap secara berurutan.

Ambil Siklus
Siklus pengambilan mengambil alamat yang diperlukan dari memori, menyimpannya dalam register instruksi, dan
memindahkan penghitung program pada satu sehingga menunjuk ke instruksi berikutnya.

Siklus Dekode
Di sini, unit kontrol memeriksa instruksi yang sekarang disimpan dalam register instruksi. Ini menentukan opcode dan
mode pengalamatan mana yang telah digunakan, dan dengan demikian tindakan apa yang perlu dilakukan untuk
mengeksekusi instruksi yang bersangkutan.

Jalankan Siklus
Tindakan aktual yang terjadi selama siklus eksekusi instruksi bergantung pada instruksi itu sendiri, dan mode
pengalamatan yang ditentukan untuk digunakan untuk mengakses data yang mungkin diperlukan. Namun, ada empat
kelompok aksi utama, yang akan dibahas secara lengkap nanti.

4.4.Kebutuhan dan penggunaan bahasa assembly

Membutuhkan

Setiap jenis CPU memiliki bahasa mesin dan bahasa rakitannya sendiri, sehingga program bahasa rakitan yang ditulis
untuk satu jenis CPU tidak akan berjalan di jenis CPU lainnya. Pada hari-hari awal pemrograman, semua program ditulis
dalam bahasa assembly. Sekarang, sebagian besar program ditulis dalam bahasa tingkat tinggi seperti FORTRAN atau
C. Pemrogram masih menggunakan bahasa rakitan ketika kecepatan sangat penting atau ketika mereka perlu melakukan
operasi yang tidak mungkin dilakukan dalam bahasa tingkat tinggi.

Penggunaan bahasa rakitan

Perspektif sejarah

Bahasa rakitan berasal dari pengenalan komputer program tersimpan.


Komputer EDSAC (1949) memiliki assembler yang disebut pesanan awal yang menampilkan satu huruf
Machine Translated by Google

mnemonik.[13] Nathaniel Rochester menulis assembler untuk IBM 701 (1954). SOAP (Symbolic Optimal
Assembly Program) (1955) adalah bahasa rakitan untuk komputer IBM 650 yang ditulis oleh Stan Poley.

Bahasa assembly menghilangkan banyak pemrograman generasi pertama yang rawan kesalahan dan
memakan waktu yang dibutuhkan dengan komputer paling awal, membebaskan programmer dari kebosanan
seperti mengingat kode numerik dan menghitung alamat. Mereka pernah banyak digunakan untuk semua jenis
pemrograman. Namun, pada 1980-an (1990-an pada mikrokomputer), penggunaannya sebagian besar telah
digantikan oleh bahasa tingkat tinggi, dalam pencarian untuk meningkatkan produktivitas pemrograman. Saat
ini bahasa rakitan masih digunakan untuk manipulasi perangkat keras langsung, akses ke instruksi prosesor
khusus, atau untuk mengatasi masalah kinerja yang kritis. Penggunaan yang umum adalah driver perangkat,
sistem tertanam tingkat rendah, dan sistem waktu nyata.

Secara historis, sejumlah besar program telah ditulis seluruhnya dalam bahasa assembly.
Sistem operasi seluruhnya ditulis dalam bahasa assembly sampai diperkenalkannya Burroughs MCP (1961),
yang ditulis dalam ESPOL, sebuah dialek Algol. Banyak aplikasi komersial juga ditulis dalam bahasa rakitan,
termasuk sejumlah besar perusahaan besar perangkat lunak mainframe IBM . COBOL, FORTRAN dan
beberapa PL/I akhirnya menggantikan
tertulis sebagian
oleh besarmempertahankan
pekerjaan ini, meskipun
hingga tahun sejumlah
infrastruktur
90-an. organisasi
aplikasi bahasabesar
assembly

Penggunaan saat ini

Selalu ada perdebatan tentang kegunaan dan kinerja bahasa rakitan relatif terhadap bahasa tingkat tinggi.
Bahasa assembly memiliki kegunaan khusus yang penting; Lihat di bawah. Tetapi secara umum, kompiler
pengoptimalan modern diklaim dapat merender bahasa tingkat tinggi ke dalam kode yang dapat berjalan
secepat perakitan tulisan tangan, terlepas dari contoh penghitung yang dapat ditemukan. Kompleksitas
prosesor modern dan sub-sistem memori membuat pengoptimalan yang efektif semakin sulit bagi kompiler,
serta pemrogram perakitan. Selain itu, dan mengecewakan pecinta efisiensi, peningkatan kinerja prosesor
berarti bahwa sebagian besar CPU tidak digunakan sepanjang waktu, dengan penundaan yang disebabkan
oleh kemacetan yang dapat diprediksi seperti operasi I/O dan paging. Ini telah membuat kecepatan eksekusi
kode mentah tidak menjadi masalah bagi banyak programmer.

Ada beberapa situasi di mana pengembang mungkin memilih untuk menggunakan bahasa rakitan:

Eksekusi mandiri dengan ukuran ringkas diperlukan yang harus dijalankan tanpa bantuan komponen
run-time atau pustaka yang terkait dengan bahasa tingkat tinggi; ini mungkin situasi yang paling umum.
Misalnya, firmware untuk telepon, sistem bahan bakar dan pengapian mobil, sistem kontrol AC, sistem
keamanan, dan sensor.
Kode yang harus berinteraksi langsung dengan perangkat keras, misalnya di perangkat
driver dan penangan interupsi.
Program yang perlu menggunakan instruksi khusus prosesor tidak diimplementasikan dalam kompiler.
Contoh umum adalah instruksi rotasi bitwise pada inti dari banyak algoritma enkripsi.

Program yang membuat fungsi vektor untuk program dalam bahasa tingkat tinggi seperti C. Dalam
bahasa tingkat tinggi ini terkadang dibantu oleh fungsi intrinsik kompiler yang
Machine Translated by Google

memetakan langsung ke mnemonik SIMD, tetapi tetap menghasilkan konversi perakitan satu-ke-satu khusus
untuk prosesor vektor yang diberikan.
Program yang membutuhkan optimasi ekstrim, misalnya loop dalam dalam algoritma intensif prosesor.
Pemrogram game memanfaatkan kemampuan fitur perangkat keras dalam sistem, memungkinkan game
berjalan lebih cepat. Juga simulasi ilmiah yang besar memerlukan algoritma yang sangat dioptimalkan,
misalnya aljabar linier
x264)dengan BLAS atau transformasi kosinus diskrit (misalnya versi perakitan SIMD dari

Situasi di mana tidak ada bahasa tingkat tinggi, pada prosesor baru atau khusus, misalnya.

Program yang membutuhkan waktu yang tepat seperti

program real-time seperti simulasi, sistem navigasi penerbangan, dan peralatan medis.
Misalnya, dalam sistem fly-by-wire , telemetri harus ditafsirkan dan ditindaklanjuti dalam batasan waktu
yang ketat. Sistem tersebut harus menghilangkan sumber penundaan tak terduga, yang mungkin dibuat
oleh (beberapa) bahasa yang ditafsirkan, pengumpulan sampah otomatis, operasi paging, atau
multitasking preemptive. Namun, beberapa bahasa tingkat yang lebih tinggi menggabungkan komponen
run-time dan antarmuka sistem operasi yang dapat menyebabkan penundaan tersebut. Memilih bahasa
rakitan atau bahasa tingkat rendah untuk sistem semacam itu memberi pemrogram visibilitas dan
kontrol yang lebih besar atas detail pemrosesan.

algoritma kriptografi yang harus selalu mengambil waktu yang sama untuk mengeksekusi,
mencegah serangan waktu.

Aplikasi khas
Bahasa assembly biasanya digunakan dalam kode boot sistem, (BIOS pada sistem PC yang kompatibel
dengan IBM dan CP/M), kode tingkat rendah yang menginisialisasi dan menguji perangkat keras sistem
sebelum mem-boot OS, dan sering disimpan dalam ROM.

Beberapa kompiler menerjemahkan bahasa tingkat tinggi ke dalam perakitan terlebih dahulu sebelum sepenuhnya dikompilasi,
memungkinkan kode perakitan untuk dilihat untuk tujuan debugging dan optimasi.

Bahasa tingkat yang relatif rendah, seperti C, memungkinkan pemrogram untuk menyematkan bahasa
rakitan secara langsung dalam kode sumber. Program yang menggunakan fasilitas tersebut, seperti kernel
Linux, kemudian dapat membangun abstraksi menggunakan bahasa rakitan yang berbeda pada setiap
platform perangkat keras. Kode portabel sistem kemudian dapat menggunakan komponen khusus prosesor
ini melalui antarmuka yang seragam.

Bahasa assembly sangat berharga dalam reverse engineering. Banyak program hanya didistribusikan
dalam bentuk kode mesin yang mudah diterjemahkan ke dalam bahasa rakitan, tetapi
Machine Translated by Google

lebih sulit untuk diterjemahkan ke dalam bahasa tingkat yang lebih tinggi. Alat seperti Interactive Disassembler
memanfaatkan pembongkaran secara ekstensif untuk tujuan seperti itu.

Assembler dapat digunakan untuk menghasilkan blok data, tanpa overhead bahasa tingkat tinggi, dari kode
sumber yang diformat dan dikomentari, untuk digunakan oleh kode lain

4.5.Input output dalam Program Bahasa assembly


Instruksi Input/Output (I/O) digunakan untuk memasukkan data dari periferal, mengeluarkan data ke periferal, atau
membaca/menulis kontrol input/output. Komputer awal menggunakan perangkat keras khusus untuk menangani perangkat
I/O. Kecenderungan di komputer modern adalah untuk memetakan perangkat I/O dalam memori, memungkinkan
penggunaan langsung dari setiap instruksi yang beroperasi pada memori untuk menangani I/O.

Masuk Masukan; MENCAMPUR; memulai transfer informasi dari perangkat input yang ditentukan ke lokasi
berurutan dimulai dengan M, ukuran blok tersirat oleh unit
Keluaran ; MENCAMPUR; memulai transfer informasi dari lokasi berurutan dimulai dengan M ke perangkat
output yang ditentukan, ukuran blok tersirat oleh unit
Kontrol Input-Output IOC ; MENCAMPUR; memulai operasi kontrol I/O yang akan dilakukan oleh perangkat
yang ditunjuk
JRED Langsung Siap; MENCAMPUR; Lompat jika unit yang ditentukan sudah siap (menyelesaikan operasi IN,
OUT, atau IOC sebelumnya); jika lompatan terjadi, J-register dimuat dengan alamat instruksi yang akan terjadi
berikutnya jika lompatan tidak diambil
JBUS Langsung Sibuk; MENCAMPUR; Lompat jika unit yang ditentukan belum siap (belum selesai sebelumnya
operasi IN, OUT, atau IOC); jika lompatan terjadi, J-register dimuat dengan alamat instruksi yang akan terjadi
berikutnya jika lompatan tidak diambil

perangkat CAMPURAN

Informasi tentang perangkat untuk instruksi input/output prosesor MIX hipotetis.

Ukuran
Periferal Kontrol
nomor unit blok

M=0, putar ulang; tape


100
t Satuan pita no. saya (0 saya 7) M < 0, lewati kembali catatan M;
kata
M > 0, lewati M record
Disk atau unit drum 100 no. hari (8 hari 15) posisi perangkat menurut X-register (ekstensi)
d
kata-kata

16 Pembaca kartu 16 kata


17 Pukulan kartu 16 kata

IOC 0(18) melompati printer ke atas halaman 24 kata


18 Pencetak berikut

19 Mesin tik dan pita kertas Pembaca pita kertas 14 kata: pita mundur
Machine Translated by Google

4.6.Alat Pemrograman Perakitan


Anda dapat menggunakan Lingkungan Pengembangan Terintegrasi untuk mengembangkan, merakit, dan
menyebarkan modul Java Platform, Enterprise Edition (Java EE) untuk Server Aplikasi WebSphere®.

Produk IBM® Rational® Application Developer for WebSphere Software, IBM WebSphere Application Server
Developer Tools untuk produk Eclipse, dan produk IBM Assembly and Deploy Tools for WebSphere
Administration adalah alat yang didukung untuk lingkungan pengembangan terintegrasi.

Pusat informasi ini mengacu pada produk sebagai alat perakitan. Namun, Anda dapat menggunakan produk
untuk melakukan lebih dari sekadar merakit modul. Manfaatkan alat ini dalam lingkungan pengembangan
terintegrasi untuk mengembangkan, merakit, dan menerapkan modul Java EE.

Pengembang Aplikasi Rasional untuk Perangkat Lunak WebSphere adalah seperangkat alat yang lebih luas
yang mendukung pengembangan perusahaan. Meja kerja ini memiliki dukungan terintegrasi untuk Server
Aplikasi WebSphere Versi 6.1 dan yang lebih baru. Meja kerja ini juga mendukung model pemrograman OSGi
dan Java EE, dan berisi wizard dan editor visual untuk membantu Anda mengembangkan aplikasi Web 2.0,
Service Component Architecture (SCA), Java, dan Java EE. Produk ini berisi alat kualitas kode untuk membantu
Anda menganalisis kode dan meningkatkan kinerja. Produk ini terintegrasi dengan Rational Team Concert
untuk menyediakan lingkungan berbasis tim untuk membantu pengembang berbagi informasi dan bekerja
secara kolaboratif. Unduhan Percobaan untuk Pengembang Aplikasi Rasional tersedia di http://www.ibm.com/
developerworks/downloads/r/rad/.

IBM WebSphere Application Server Developer Tools for Eclipse adalah seperangkat alat ringan untuk
mengembangkan, merakit, dan menyebarkan aplikasi Java EE ke WebSphere Application Server Versi 7.0 dan
8.0. Meja kerja ini terintegrasi dengan server aplikasi untuk membantu Anda menyebarkan dan menguji aplikasi
dengan cepat. Produk ini berisi wizard dan editor visual yang mendukung model pemrograman Java EE.

IBM Assembly and Deploy Tools for WebSphere Administration, tersedia dengan WebSphere Application
Server, menyediakan alat bagi administrator untuk merakit dan menyebarkan aplikasi Web, Java, Java EE, dan
OSGi ke WebSphere Application Server Versi 8.0.

Untuk dokumentasi alat, lihat "Dokumentasi Pengembang Aplikasi Rasional." Topik tentang perakitan aplikasi
di pusat informasi ini melengkapi dokumentasi itu.

Penting: Alat perakitan berjalan pada platform Intel Windows dan Linux. Pengguna Server Aplikasi WebSphere
di semua platform harus merakit modul mereka menggunakan alat perakitan
Machine Translated by Google

diinstal pada platform Intel Windows atau Linux. Untuk memasang alat rakitan, ikuti petunjuk yang tersedia bersama
alat tersebut.

4.7.Menghubungkan perakitan dengan HLL

Ada kalanya bahasa tingkat tinggi perlu memanggil modul bahasa assembly. Hasil ini karena kendala seperti
kecepatan dan ruang memori.

Kita akan melihat antarmuka program Pascal ke modul bahasa assembly.

Program Pascal akan mendeklarasikan array berbasis integer, dan meneruskan alamat array ini, dan jumlah elemen
dalam array, ke modul bahasa assembly.

Menggunakan alamat, modul bahasa assembly akan menambahkan jumlah array, mengembalikan hasilnya ke
program Pascal.

Modul bahasa assembly ditunjukkan di bawah ini.

TITLE
Addup88 .MODEL
TPASCAL .CODE
PUBLIC Addup Addup
Proc Far Array : DWORD, Elemen : WORD RETURNS Hasil : WORD
dorong ds; simpan ds register
push cx ; simpan cx register
push si ; simpan si daftar lds
si, Array ; titik DS:SI ke array element1 mov cx,
Elements ; jumlah elemen xor ax, ax ; hapus total
tambah kapak, [si] ; menambah nilai total inc si ;
lp1: elemen berikutnya inc si dec cx jne lp1 pop si pop cx
pop ds

RET ; keluar ke Modul Pascal dengan ;


menghasilkan AX
Tambahkan ENDP
AKHIR

Ini dikompilasi ke kode OBYEK dengan perintah


Machine Translated by Google

$TASM ADDUP88

Modul Pascal ditunjukkan di bawah ini.

Program ADDDEMO (masukan, keluaran);


Menggunakan DOS, CRT;

Ketik IntArray = Array[1..20] dari Integer;


Var
Nomor : IntArray;
Hasil : Bilangan bulat;
Lingkaran : Bilangan bulat;

{$F+}

Penambahan Fungsi( var Numbers : IntArray; Elements : Integer )


: Bilangan bulat ; LUAR;
{$L TAMBAHAN88.OBJ}
{$F-}

mulai
untuk loop:= 1 hingga 20 do
Angka[loop] := putaran;
Hasil := Penambahan( Bilangan, 20 );
Writeln('Jumlah Array adalah ', Hasil)
Akhir.

Saat dikompilasi di bawah Turbo Pascal, kedua modul objek dihubungkan bersama, membuat file yang dapat dieksekusi.

4.8.Device Turunan dari bahasa assembly


Dalam proyek lain untuk digunakan dengan komputer notebook saya, saya bermaksud untuk membangun semacam
perangkat yang akan menghubungkan ke port paralel, dan menyediakan penyimpanan portabel tambahan di atas dan di
luar 720KB yang dapat diakses dari masing-masing dua floppy disk.

Sementara saya masih ragu-ragu tentang bagaimana tepatnya saya akan membangun perangkat seperti itu, atau apa
yang akan terjadi, saya sudah mulai melihat ke perangkat lunak antarmuka untuk itu, karena saya mengantisipasi lebih
banyak masalah di sana daripada benar-benar membangun semacam perangkat. Sangat mengejutkan saya, saya tidak
dapat menemukan informasi sama sekali di World-Wide Web tentang penulisan driver perangkat DOS, dan saya telah
dapat menemukan kode sumber yang berguna di WWW sampai saat ini. Namun, setelah banyak mencari, akhirnya saya
menemukan cukup banyak informasi di bagian belakang Manual Referensi MS-DOS IBM, untuk IBM DOS V2.0 . Karya
referensi ini tampaknya memiliki semua informasi yang diperlukan untuk membuat driver perangkat apa pun, untuk
digunakan dengan DOS. Sayangnya, itu sudah tidak dicetak.
Machine Translated by Google

Untuk kepentingan lebih lanjut informasi yang tersedia di WWW, saya memutuskan untuk mengetikkan kode sumber yang
diberikan sebagai contoh. Manual memiliki daftar kode sumber untuk driver perangkat RAMDisk, yang saya sajikan di sini.

Ini adalah daftar yang dirakit: ibmvdisk.lst

Ini adalah kode perakitan, hanya: ibmvdisk.asm

Beberapa catatan singkat tentang kode: Anda dapat menyimpannya setelah melihatnya, menggunakan fungsi "Simpan
Sebagai..." browser Anda.

Saya tidak tahu untuk assembler apa ini ditulis: Saya menyajikannya di sini, saat diterbitkan. Anda mungkin harus memodifikasi
sumber untuk bekerja dengan assembler Anda.

4.9.Interupsi dalam pemrograman bahasa assembly

Interupsi dalam bahasa assembly sedikit lebih rumit.

Karena Anda tidak tahu apa yang sedang dilakukan prosesor ketika diinterupsi, Anda tidak tahu status register W, flag
STATUS, PCLATH atau bahkan halaman register apa yang Anda tunjuk. Jika Anda perlu mengubah salah satu dari ini, dan
Anda mungkin akan melakukannya, Anda harus menyimpan nilai saat ini sehingga Anda dapat memulihkannya sebelum
mengizinkan prosesor untuk kembali ke apa yang dilakukannya sebelum terganggu secara kasar. Ini disebut menyimpan dan
memulihkan konteks prosesor.

Jika konteks prosesor, setelah kembali dari interupsi, tidak dibiarkan persis seperti yang Anda temukan, semua jenis bug
halus dan bahkan sistem crash utama dapat dan akan terjadi.

Ini tentu saja berarti bahwa Anda bahkan tidak dapat dengan aman menggunakan variabel internal compiler=s untuk
menyimpan konteks prosesor. Anda tidak dapat membedakan variabel mana yang digunakan oleh rutinitas perpustakaan
pada waktu tertentu.

Anda harus membuat variabel dalam program PICBASIC PRO™ untuk tujuan menyimpan W, register STATUS dan register
lain yang mungkin perlu diubah oleh pengendali interupsi. Variabel-variabel ini tidak boleh digunakan dalam program BASIC.

Meskipun tampaknya masalah sederhana untuk menyimpan W di register RAM apa pun, sebenarnya agak lebih rumit.
Masalah terjadi karena Anda tidak memiliki cara untuk mengetahui bank register mana yang Anda tuju saat interupsi terjadi.
Jika Anda telah memesan lokasi di Bank0 dan penunjuk register saat ini diatur ke Bank1, misalnya, Anda bisa menimpa lokasi
yang tidak diinginkan.
Oleh karena itu Anda harus memesan lokasi register RAM di setiap bank perangkat pada offset yang sama.
Machine Translated by Google

Sebagai contoh, mari kita pilih 16C74(A). Ini memiliki 2 bank register RAM mulai dari $20 dan $A0 masing-masing. Agar
aman, kita perlu memesan lokasi yang sama di setiap bank. Dalam hal ini kita akan memilih lokasi pertama di setiap
bank. Konstruksi khusus telah ditambahkan ke perintah VAR untuk memungkinkan ini:

simpan var byte $20 sistem


wsave1 var byte $a0 sistem

Ini menginstruksikan kompiler untuk menempatkan variabel di lokasi tertentu dalam RAM. Dengan cara ini, jika
penyimpanan W "menembus" ke bank lain, itu tidak akan merusak data lain.

Rutin interupsi harus sesingkat dan secepat mungkin. Jika terlalu lama untuk dieksekusi, Watchdog Timer bisa kehabisan
waktu dan benar-benar mengacaukan segalanya.

Rutin harus diakhiri dengan instruksi Retfie untuk kembali dari interupsi dan membiarkan prosesor melanjutkan di tempat
yang ditinggalkannya dalam program PICBASIC PRO™ Anda.

Tempat terbaik untuk meletakkan pengendali interupsi bahasa assembly mungkin adalah di awal program PICBASIC
PRO™ Anda. Ini harus memastikan bahwa itu ada di 2K pertama untuk meminimalkan masalah batas. GOTO perlu
dimasukkan sebelum untuk memastikannya tidak akan dieksekusi saat program dimulai. Lihat contoh di bawah untuk
demonstrasi ini.

Jika PICmicro memiliki lebih dari 2K ruang kode, sebuah rintisan interupsi ditambahkan secara otomatis yang menyimpan
register W, STATUS dan PCLATH ke dalam variabel wsave, ssave dan psave, sebelum pergi ke penangan interupsi
Anda. Penyimpanan untuk variabel-variabel ini harus dialokasikan dalam program BASIC:

simpan var byte $20 sistem


wsave1 var byte $a0 sistem ' Jika perangkat memiliki RAM di bank1
wsave2 var byte $120 sistem ' Jika perangkat memiliki RAM di bank2
wsave3 var byte $1a0 sistem ' Jika perangkat memiliki RAM di bank3
simpan var sistem byte bank0
simpan var sistem byte bank0

Anda harus mengembalikan register ini di akhir handler interupsi assembler Anda. Jika PICmicro memiliki ruang kode 2K
atau kurang, register tidak disimpan. Penangan interupsi Anda harus menyimpan dan memulihkan register yang
digunakan.

Terakhir, Anda perlu memberi tahu PBP bahwa Anda menggunakan penangan interupsi bahasa assembly dan di mana
menemukannya. Ini dicapai dengan DEFINE:

DEFINE INTHAND Label


Machine Translated by Google

Label adalah awal dari rutinitas interupsi Anda. PBP akan menempatkan lompatan ke Label ini di lokasi 4 di PICmicro.

'Contoh interupsi bahasa assembly

dipimpin var PORTB.1

simpan var byte $20 sistem


simpan sistem var byte bank0
psave sistem varbyte bank0

Harus mulai ' Lewati penangan interupsi

' Definisikan penangan interupsi


definisikan INTHAND myint

'Penangan interupsi bahasa assembly


asm
; Simpan register W, STATUS dan PCLATH
myint movwf wsave
swapf STATUS, W
clrf STATUS
movwf save
movf PCLATH, W
movwf psave

; Masukkan kode interupsi di sini


; Simpan dan pulihkan FSR jika digunakan

bsf _dipimpin ; Nyalakan LED (misalnya)

; Kembalikan register PCLATH, STATUS, dan W


movf psave, W
movwf PCLATH
simpan swapf, W
movwf STATUS
swapf wsave, F
swapf wsave, W
retfie
endasme

' Program PICBASIC PRO™ dimulai di sini


'
mulai: LED rendah Matikan LED

' Aktifkan interupsi pada PORTB.0


Machine Translated by Google

INTCON = %10010000

putaran: Goto loop 'Tunggu di sini sampai terganggu

Tinjau Pertanyaan

1. Apa itu bahasa pemrograman assembly?


2. Jelaskan Input output pada Program Bahasa assembly?
3. Jelaskan alat bahasa assembly?
4. Jelaskan program bahasa assembly dengan kata-kata sendiri?
5. Apa itu Interfacing assembly dengan HLL secara detail?
6. Jelaskan Driver perangkat dalam bahasa rakitan?
7. Jelaskan interupsi dalam pemrograman bahasa assembly?
8. Apa itu pemrograman modular?
9. Jelaskan layanan input output dalam bahasa assembly?
10. Apa perlunya bahasa assembly?
Machine Translated by Google

“Isi pelajaran telah dikompilasi dari berbagai sumber di domain publik termasuk tetapi tidak terbatas pada internet
untuk kenyamanan pengguna. Universitas tidak memiliki hak kepemilikan atas hal yang sama.”

Jorethang, Distrik Namchi, Sikkim- 737121,


India www.eiiluniversity.ac.in

Anda mungkin juga menyukai