Wednesday, June 28, 2017

Review Jurnal
ROBOT PEMBERSIH LANTAI BERBASIS ARDUINO UNO DENGAN SENSOR ULTRASONIK
Amir Mukhlis
amirmukhlis06@gmail.com

Abstrak
Pada prinsipnya tujuan penciptaan robot adalah untuk mempermudah pekerjaan manusia agar lebih efektif dan efisien. Robot pembersih ini dibuat untuk meringankan pengguna agar dapat membersihkan rumah secara efektif dan efisien. Karena robot ini dikendalikan dengan arduino sebagai otaknya. Robot ini bergerak maju sampai bertemu halangan berupa tembok maka robot ini akan berbelok ke kiri otomatis untuk menghindari halangan dan terus membersihkan lantai yang belum di bersihkan. Bergerak maju mengunakan motor DC dan mengepel lantai menggunakan sikat yang dikendalikan oleh motor DC. Sensor Ultrasonik yang terpasang pada depan robot berfungsi sebagai penentu jarak.
Kata kunci : Robot pembersih lantai otomatis, Mikrokontroller, Sensor Ultrasonik.
1. Pendahuluan
Perkembangan Ilmu pengetahuan dan teknologi mempengaruhi kehidupan masyarakat untuk melangkah lebih maju, praktis dan simple. Robot otomatis sangat dibutuhkan dalam kehidupan ini, apalagi kemajuan zaman menuntut pekerjaan manusia yang efektif dan efisien. Pada perkembangannya sekarang ini telah banyak di ciptakannya berbagai macam robot yang bergerak otomatis dengan menggunakan sensor sebagai system control ataupun yang dikendalikan secara manual oleh manusia melalui remot control. Untuk lebih praktis dan efisien penggunaan sensor ultrasonic sangat mempengaruhi pergerakan pada robot pembersih ini. Karena dalam penggunaanya robot pengepel ini dapat berjalan dan menghindari halangan di depannya sendiri tanpa bantuan remote control atau campur tangan manusia. Ukuran robot ini kecil cocok ditempatkan di dalam rumah dan tidak memakan banyak tempat. Dengan menggunakan sensor ultrasonic maka robot dapat menghindari halangan yang berada di depannya. Pada penelitian ini akan dibahas tentang robot  pembersih lantai, dimana robot ini di rancang dengan bentuk seperti mobil yang di bawahnya terdapat busa pengepel. Robot ini bergerak secara otomatis dengan sensor ultasonik sebagai system control. Motor DC digunakan sebagai pengerak robot serta menambahkan push button tombol untuk mengatur data jarak dan motor pada pengepel dan menampilkan data (pengaturan) tersebut pada layar LCD (liquid Cristal Display).
2. Landasan Teori
1.1 Arduino Uno
Arduino Uno adalah salah satu produk berlabel Arduino yang sebenarnya adalah suatu papan elektronik yang mengandung mikrokontroller Atmega 328 (sebuah keping yang secara fungsional bertindak seperti sebuah komputer). Dengan penambahan komponen tertentu, Arduino Uno ini bisa dipakai untuk pemantau jarak jauh melalui internet.
Gambar 1.1 Arduino Uno
Arduino Uno mengandung mikroposesor (berupa Atmel AVR) dan dilengkapi dengan oscillator 16MHz (yang memungkinkan operasi berbasis waktu dilaksanakan dengan tepat), dan regulator (pembangkit tegangan) 5 volt. Sejumlah pin tersedia di papan. Pin 0 hingga 13 digunakan untuk isyarat analog. Arduino Uno dilengkapi dengan static random-access memory (SRAM) berukuran 2KB untuk memegang data, flash memory berukuran 32KB, dan erasable programmable read-only memory untuk menyimpan program.
1.2 Motor Driver L298
L298 adalah jenis IC driver motor yang dapat mengendalikan arah putaran dan kecepatan motor DC ataupun Motor stepper. Mampu mengeluarkan output tegangan untuk Motor dc dan motor stepper sebesar 50 volt. IC l298 terdiri dari transistor-transistor logik (TTL) dengan gerbang nand yang memudahkan dalam menentukkan arah putaran suatu motor dc dan motor stepper. Dapat mengendalikan 2 untuk motor dc namun pada hanya dapat mengendalikan 1 motor stepper.
Gambar 1.2 Contoh Motor Shield L298
Untuk menggerakkan robot menggunakan motor DC yang dihubungkan langsung dengan Motor Shield L298 dan dikendalikan langsung oleh keluaran dari mikrokontroler.


1.3 Sensor Elektronik
Gelombang ultrasonik merupakan gelombang yang memiliki frekuensi tinggi, dimana gelombang tersebut berada diatas gelombang suara sehingga tidak dapat didengan manusia. Gelombang ultrasonik berada pada frekuensi diatas 20kHz. Sensor ultrasonic merupakan sensor utama untuk navigasi dan penghindar halangan.
Gambar 1.3 Sensor Ultrasonik
Cara kerja dari sensor ini adalah ketika sensor ini memancarkan gelombang ultrasonik, gelombang tersebut mengenai suatu objek maka objek tersebut akan memantulkan gelombang ultrasonik itu kembali ke sensor, sehingga sensor dapat mengetahui jaraknya terhadap benda tersebut dan jika jaraknya terlalu dekat maka sensor akan mengirimkan inputan pada arduino untuk menjauhi objek.

1.4 Motor DC
Motor DC adalah motor yang menggunakan sumber tegangan DC dan digunakan untuk mengubah tenaga listrik menjadi tenaga mekanis. Komponen ini bekerja dengan prinsip electromagnet. Kecepatan putaran motor DC ditentukan oleh besar tegangan.
Gambar 1.4 Motor DC
Sumber tegangan yang digunakan motor DC perlu diambil dari sumber eksternal, misalnya berupa baterai atau regulator, bukan dari Arduino Uno. Hal ini disebabkan Arduino Uno tidak dirancang untuk memasok tegangan ke motor DC. Pin-pin Arduino Uno hanya bisa memberikan arus 60mA, sedangkan kebutuhan motor sekitar 500mA untuk membuat putaran maksimum.

1.5 LCD (Liquid Crystal Display)
LCD (Liquid Cristal Display) adalah salah satu jenis display elektronik yang dibuat dengan teknologi CMOS logic yang bekerja dengan tidak menghasilkan cahaya tetapi memantulkan cahaya yang ada di sekelilingnya terhadap  front-lit atau mentransmisikan cahaya dari back-lit. LCD (Liquid Cristal Display) berfungsi sebagai penampil data baik dalam bentuk karakter, huruf, angka ataupun grafik.
Gambar 1.5 LCD

1.6 Relay
Relay adalah saklar listrik atau elektrik yang membuka atau menutup sirkuit atau rangkaian lain dalam kondisi tertentu. Relay pada dasarnya adalah sakelar yang membuka dan menutupnya dengan tenaga listrik melalui coil relay yang terdapat di dalamnya.
Gambar 1.6 Relay

1.7 Push Button Switch
Push button switch adalah perangkat atau saklar sederhana yang berfungsi untuk menghubungkan atau memutuskan aliran arus listrik dengan sistem kerja tekan unlock (tidak mengunci).
Gambar 1.7 Push Button Switch
Sebagai device penghubung atau pemutus, push button switch hanya memiliki 2 kondisi, yaitu On dan Off. Istilah On dan Off ini menjadi sangat penting karena semua perangkat listrik yang memerlukan sumber energi listrik pasti membutuhkan kondisi On dan Off.

2. Perancangan
2.1 Perancangan Hardware
Dalam perancangannya, pembersih lantai otomatis ini menggunakan Arduino Uno sebagai dasar utamanya, sehingga diperlukan sebuah modul Arduino Uno untuk menjadi otak dasarnya. Berikut adalah blok diagram sistem elektrikal pada alat pembersih lantai.
Gambar 2.1 blok digram



2.2 Perancangan Elektrikal
Dalam pembuatan sebuah robot tentunya tidak terlepas dari adanya system elektrikal. Perancangan ini adalah pembuatan regulator, pemasangan motor DC, penempatan motor driver, pemasangan sensor ultrasonic, pengaturan tombol dan penampilan pada LCD. Berikut adalah perancangan elektrikal yang dibuat menggunakan proteus isis 7 profesional.
Gambar 2.2 Perancangan Elektrikal

2.3 Pemograman
Pemograman robot pada umumnya dilakukan ditahap akhir, setelah perancangan mekanik dan elektrik terselesaikan. Fungsi dari robot ini adalah robot untuk membersihkan permukaan lantai yang kotor menjadi bersih. Berikut adalah gambar pemograman pada robot dengan program arduino Uno.
Gambar 2.3 Pemograman Pada Arduino
3. Hasil Perancangan
Setelah melewati beberapa tahap, maka terbentuklah sebuah robot yang dapat difungsikan sebagai pengepel lantai. Berikut gambar perancangan robot.
Gambar 3.1 Hasil Perancangan Robot
Pada gambar diatas dapat dilihat bentuk robot pengepel lantai. Yang terbentuk dari beberapa bagian robot yaitu, robot beroda yang di depannya terdapat busa pembersih serta sensor ultrasonic pada bagian atasnya guna mendeteksi jarak.

3.1 Pengujian secara keseluruhan
Robot pembersih lantai ini dapat membersihkan lantai dengan pengepel yang terdapat dibagian bawah robot. Robot ini dapat bergerak maju sampai terdapat halangan didepannya. Sebelum dilakukan pengujian pada robot secara keseluran dirancanglah sebuah program yang mencakup seluruh program perangkat penyusun dari robot ini. Berikut gambar program keseluruhan robot pembersih lantai.
Gambar 3.2 Program Keseluruhan Robot
Program pada gambar merupakan contoh program keseluruhan dengan segala prinsip dan logika kerja dari robot pembersih ini. Untuk memahami perintah pada mikrokontroller dan robot dan untuk memahami bagaimana kinerja robot ini, berikut akan dipaparkan ke dalam sebuah diagram flowchart
Gambar 3.3 Flowchart
Dari pembacaan flowchart tersebut dapat dilihat bahwa gerak motor dipengaruhi oleh motor DC. Sensor ultrasonic mempunyai fungsi untuk mendeteksi adanya halangan di depan dan alat pembersih ini akan berbelok ke kiri sebesar 90 derajat, maju dan berbelok ke kiri lagi sebesar 90 derajat. Dari perancangan di atas maka di dapatkan cuplikan video seperti dibawah ini.
Gambar 3.4 Cuplikan Video Robot

4. Kesimpulan
4.1 Kesimpulan
Percobaan dari jurnal ini bertujuan untuk mengatahui hasil dari pengujian power supply, tegangan output yang keluar adalah 4,97 VDC. Tegangan ini sesuai dengan rating tegangan arduino Uno, IC Motor Driver L298, sensor ultrasonic, LCD, dan Relay yakni 5.00 VDC. Kemudian robot dapat menghindari halangan dan berbelok 90 derajat ke kiri kurang sempurna karena torsi dari motor DC robot kurang kuat untuk menggerakkan robot berbelok. Dan juga untuk mengetahui hasil dari pengujian, pengepel dapat berputar, akan tetapi putaran sikat mengakibatkan pergerakkan robot menjadi tidak stabil.

4.2 Saran
Saran pada percobaan perancangan robot pembersih lantai ini terdapat pada proses kerja robot yang belum begitu sempurna dalam gerakannya karena tidak dapat berbelok 90 derajat disebabkan torsi motor yang tidak sebanding dengan berat robot. Saat proses pemrograman robot maju hasilnya tidak bergerak maju karena sikat robot bergerak terlalu kencang sehingga menekan lantai membuat robot menjadi tidak seimbang. Untuk itu disarankan agar pengembangan robot ini dapat dirancang sedemikian rupa sehingga menjadi karya yang lebih baik dan bermanfaat.

DAFTAR PUSTAKA
  1. Kadir Abdul. 2013. Panduan Prkatis Mempelajari Aplikasi Mikrokontroler dan Pemogramannya Menggunakan Arduino. Yogyakarta: C.V ANDI OFFSET.

  1. Halim Sandy. 2007. Merancang Mobile Robot Menggunakan OOPic-R. Jakarta: PT. Elex Media Komputindo.

  1. Budiharto Widodo. 2006. Belajar Sendiri Membuat Robot Cerdas. Loc.Cit.

  1. Prabowo Barkah. 2007. Robot Pembersih Lantai Otomatis Berbasis Mikrokontroler AT89S52. Fakultas Ilmu Komputer

  1. Budiharto Widodo. Belajar Sendiri Membuat Robot Cerdas. Jakarta: PT. Elex Media Komputindo.

  1. Marsudi, Jepri. 2014. “Perancangan Robot Ular Pemantau Keadaan Berbasis Arduino Nano”. Jurnal Teknik Elektro Mercu Buana

Sunday, December 25, 2016

Processor Paralel

Pemrosesan paralel (parallel processing) adalah penggunakan lebih dari satu CPU untuk menjalankan sebuah program secara simultan.Idealnya, parallel processing membuat program  berjalan lebih cepat karena semakin banyak CPU yang digunakan.

1. Jaringan Interkoneksi

Ada 5 komponen

  1. CPU
  2. Memori
  3. Interface : peralatan yang yangnmembawa pesanmasuk dan keluar dari CPU danMemori
  4. Penghubung : saluran fisik yang dilalui bit-bituntuk berpindah tempat
  5. Switch : peralatan yang memiliki banyak portinput dan port output

Komunikasi diantara terminal-terminal yang berbeda harus dapat dilakukan dengan suatu media tertentu. Interkoneksi yang efektif antara prosesor dan modul memorisangat penting dalam lingkungan komputer. Menggunakan arsitektur bertopologi  busbukan merupakan solusi yang praktis karena bus hanya sebuah pilihan yang baik ketika digunakan untuk menghubungkan komponen-komponen dengan jumlah yang sedikit. Jumlah komponen dalam sebuah modul IC bertambah seiring waktu. Oleh karena itu, topologi  bus bukan topologi yang cocok untuk kebutuhan interkoneksi komponenkomponen di dalam modul IC. Selain itu juga tidak dapat diskalakan, diuji, dan kurang dapat disesuaikan, serta menghasilkan kinerja toleransi kesalahan yang kecil. Di sisi lain, sebuah crossbar menyediakan interkoneksi penuh diantara semua terminal dari  suatu  sistem  tetapi dianggap sangat kompleks, mahal untuk membuatnya, dan sulit untuk dikendalikan. Untuk alasan ini jaringan interkoneksi merupakan solusi media komunikasi yang baik untuk sistem komputer dan telekomunikasi. Jaringan ini membatasi jalur-jalur diantara terminal komunikasi yang berbeda untuk mengurangi kerumitan dalam menyusun elemen switching.

2. Mesin SIMD & Mesin MMID

Mesin SIMD

Yang merupakan singkatan dari Single Instruction, Multiple Data. SIMD menggunakan  banyak processor dengan instruksi yang sama, namun setiap processor mengolah data yang  berbeda. Sebagai contoh kita ingin mencari angka 27 pada deretan angka yang terdiri dari 100 angka, dan kita menggunakan 5 processor. Pada setiap processor kita menggunakan algoritma atau perintah yang sama, namun data yang diproses berbeda. Misalnya processor 1 mengolah data dari deretan / urutan pertama hingga urutan ke 20, processor 2 mengolah data dari urutan 21 sampai urutan 40, begitu pun untuk processor-processor yang lain. Beberapa contoh komputer yang menggunakan model SIMD adalah ILLIAC IV, MasPar, Cray X-MP, Cray Y-MP, Thingking Machine CM-2 dan Cell Processor (GPU).

Prosesor yang memiliki SIMD menawarkan dua keunggulan, yakni:
Data langsung dapat dipahami dalam bentuk blok data, dibandingkan dengan beberapa data yang terpisah secara sendiri-sendiri. Dengan menggunakan blok data, prosesor dapat memuat data secara keseluruhan pada waktu yang sama. Daripada melakukan beberapa instruksi "ambil pixel ini, lalu ambil pixel itu, dst", sebuah prosesor SIMD akan melakukannya dalam sebuah instruksi saja, yaitu "ambil semua pixel itu!" (istilah "semua" adalah nilai yang berbeda dari satu desain ke desain lainnya). Jelas, hal ini dapat mengurangi banyak waktu pemrosesan (akibat instruksi yang dikeluarkan hanya satu untuk sekumpulan data), jika dibandingkan dengan desain prosesor tradisional yang tidak memiliki SIMD (yang memberikan satu instruksi untuk satu data saja). Sistem SIMD umumnya hanya mencakup instruksi-instruksi yang dapat diaplikasikan terhadap semua data dalam satu operasi. Dengan kata lain, sistem SIMD dapat bekerja dengan memuat beberapa titik data secara sekaligus, dan melakukan operasi terhadap titik data secara sekaligus.

Mesin MIMD

Yang merupakan singkatan dari Multiple Instruction, Multiple Data. MIMD menggunakan  banyak processor dengan setiap processor memiliki instruksi yang berbeda dan mengolah data yang berbeda. Namun banyak komputer yang menggunakan model MIMD juga memasukkan komponen untuk model SIMD. Beberapa komputer yang menggunakan model MIMD adalah IBM POWER5, HP/Compaq AlphaServer, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.

Komputer jenis ini memiliki n unit pemroses yang masing-masing menerima dan mengoperasikan instruksi yang berbeda terhadap aliran data yang sama, dikarenakan setiap unit pemroses memiliki unit pengendali yang berbeda. Keluaran dari satu pemroses menjadi masukan bagi pemroses berikutnya. Belum ada perwujudan nyata dari komputer jenis ini kecuali dalam bentuk prototipe untuk penelitian.

3. Arsitektur Pengganti

Banyak aplikasi yang membutuhkan atau meminta komputasional yang berat pada komputer, dan para arsitek telah meresponnya dengan merancang prosesor khusus untuk memenuhi permintaan ini. Sebagian besar prosesor khusus tersebut merupakan arsitektur flow-control (kontrol arus) dan dengan demikian ia menggunakan counter program.Prosesor ini berbeda dengan komputer penggunaan umum dalam hal kekhususan hardware yang ia sertakan untuk memenuhi aplikasi target tersebut. Contohnya adalah mesin pemrosesan tampilan, mesin artificial intelligence (AI), dan mesin database. Para arsitek merancang mesin pemrosesan tampilan dengan peralatan I/O khusus yang dapat memberikan bandwidth I/O tinggi yang diperlukan untuk memproses dan mendisplay tampilan,dan mereka seringkali menerapkan unit aritmetik pipelined yang khusus diperuntukkan bagi operasi seperti bluriing (pengaburan) dan korelasi tampilan. Para arsitek merancang mesin AI 500 dengan prosesor khusus yang dirancang untuk memenuhi kebutuhan komputasi simbolik, yang biasanya menggunakan salah satu prosesor untuk mengalokasi memori dan prosesor yang satunya untuk mengklaim kembali memori yang tidak terpakai (kumpulan sampah). Mereka merancang mesin database untuk memberikan fasilitas untuk operasi database kepada peralatan penyimpanan eksternal besar berkecepatan tinggi.

Umumnya, arsitektur penggunaan khusus menggunakan berbagai teknik yang baru saja kita kemukakan. Bagian berikut, yang menutup buku ini, akan membahas secara singkat mengenai dua alternatif bagi arsitektur flow-control konvensional. Salah satunya adalah prosesor dataflow (arus data). Tidak seperti halnya dalam mesin von Neumann, yakni bahwa program menentukan kapan mereka akan menjalankan operasi, prosesor data flow ini adalah availability data yang menentukan kapan prosesor dataflow akan menjalankan operasi. 

Kelompok lain dari arsitektur pengganti yang baru-baru ini telah diperkenalkan adalah jaringan neural. Ia agak didasarkan pada sistem biologis dan terdiri atas sejumlah elemen komputasional yang sangat sederhana yang beroperasi secara paralel. Walaupun tidak dirancang sebagai komputer penggunaan umum, namun jaringan neural ini telah menunjukkan bahwa ia bisa digunakan untuk pemrosesan signal dan aplikasi rekognisi pola.

Referensi:


Pipelining & RISC ( Reduce Instruction Set Computer)

Pengertian Pipeline
Pipeline adalah suatu cara yang digunakan untuk melakukan sejumlah kerja secara  bersama tetapi dalam tahap yang berbeda yang dialirkan secara kontinu pada unit  pemrosesor. Dengan cara ini, maka unit pemrosesan selalu bekerja.

Teknik pipeline ini dapat diterapkan pada berbagai tingkatan dalam sistem komputer. Bisa  pada level yang tinggi, misalnya program aplikasi, sampai pada tingkat yang rendah, seperti  pada instruksi yang dijaankan oleh microprocessor.

Pada microprocessor yang tidak menggunakan  pipeline , satu instruksi dilakukan sampai selesai, baru instruksi berikutnya dapat dilaksanakan. Sedangkan dalam microprocessor yang menggunakan teknik pipeline, ketika satu instruksi sedangkan diproses, maka instruksi yang berikutnya juga dapat diproses dalam waktu yang bersamaan. Tetapi, instruksi yang diproses secara bersamaan ini, ada dalam tahap proses yang berbeda. Jadi, ada sejumlah tahapan yang akan dilewati oleh sebuah instruksi.

Dengan penerapan  pipeline ini pada microprocessor akan didapatkan peningkatan kinerja microprocessor. Hal ini terjadi karena beberapa instruksi dapat dilakukan secara parallel dalam waktu yang bersamaan. Secara kasarnya diharapkan akan didapatkan peningkatan sebesar K kali dibandingkan dengan microprocessor yang tidak menggunakan  pipeline, apabila tahapan yang ada dalam satu kali pemrosesan instruksi adalah K tahap.

Karena beberapa instruksi diproses secara bersamaan ada kemungkinan instruksi tersebut sama-sama memerlukan resource yang sama, sehingga diperlukan adanya pengaturan yang tepat agar proses tetap berjalan dengan benar dan lancar. Sedangkan ketergantungan terhadap data bisa muncul, misalnya instruksi yang berurutan memerlukan data dari instruksi yang sebelumnya. Kasus Jump, juga perlu perhatian, karena ketika sebuah instruksi meminta untuk melompat ke suatu lokasi memori tertentu, akan terjadi perubahan program counter, sedangkan instruksi yang sedang berada dalam salah satu tahap proses yang berikutnya mungkin tidak mengharapkan terjadinya perubahan program counter.

Teknik  pipeline yang diterapkan pada microprocessor, dapat dikatakan sebuah arsitektur khusus. Ada perbedaan khusus antara model microprocessor yang tidak menggunakan arsitektur  pipeline dengan microprocessor yang menerapkan teknik ini.

Pada microprocessor yang tidak menggunakan  pipeline, satu instruksi dilakukan sampai selesai, baru instruksi berikutnya dapat dilaksanakan. Sedangkan dalam microprocessor yang menggunakan teknik  pipeline ketika satu instruksi sedangkan diproses, maka instruksi yang berikutnya juga dapat diproses dalam waktu yang bersamaan. Tetapi, instruksi yang diproses secara bersamaan ini, ada dalam tahap proses yang berbeda.

Jadi, ada sejumlah tahapan yang akan dilewati oleh sebuah instruksi. Misalnya sebuah microprocessor menyelesaikan sebuah instruksi dalam 4 langkah. Ketika instruksi pertama masuk ke langkah 2, maka instruksi berikutnya diambil untuk diproses pada langkah 1 instruksi tersebut. Begitu pun seterusnya, ketika instruksi pertama masuk ke langkah 3, instruksi kedua masuk ke langkah 2 dan instruksi ketiga masuk ke langkah 1.

Teknik  pipeline ini menyebabkan ada sejumlah hal yang harus diperhatikan sehingga ketika diterapkan dapat berjalan dengan baik.

Tiga kesulitan yang sering dihadapi ketika menggunakan teknik  pipeline ini adalah :

  1. Terjadinya penggunaan resource yang bersamaan
  2. Ketergantungan terhadap data, dan 
  3. Pengaturan Jump ke suatu lokasi memori.


Instruksi pada pipeline

Tahapan pipeline

  • Mengambil instruksi dan membuffferkannya
  • Ketika tahapan kedua bebas tahapan pertama mengirimkan instruksi yang dibufferkan tersebut
  • Pada saat tahapan kedua sedang mengeksekusi instruksi ,tahapan pertama memanfaatkan siklus memori yang tidak dipakai untuk mengambil dan membuffferkan instruksi berikutnya
Berikut ini adalah gambaran tentang Instuksi pipeline :

Karena untuk setiap tahap pengerjaan instruksi, komponen yang bekerja berbeda, maka dimungkinkan untuk mengisi kekosongan kerja di komponen tersebut. Sebagai contoh :

Instruksi 1: ADD AX, AX Instruksi 2: ADD EX, CX 

Setelah CU menjemput instruksi 1 dari memori (IF), CU akan menerjemahkan instruksi tersebut(ID). Pada menerjemahkan instruksi 1 tersebut, komponen IF tidak bekerja. Adanya teknologi pipeline menyebabkan IF akan menjemput instruksi 2 pada saat ID menerjemahkan instruksi 1. Demikian seterusnya pada saat CU menjalankan instruksi 1 (EX), instruksi 2 diterjemahkan (ID).

Keuntungan dari Pipeline

  1. Waktu siklus prosesor berkurang, sehingga meningkatkan tingkat instruksi-isu dalam kebanyakan kasus.
  2. Beberapa combinational sirkuit seperti penambah atau pengganda dapat dibuat lebih cepat dengan menambahkan lebih banyak sirkuit.
  3. Pemrosesan dapat dilakukan lebih cepat, dikarenakan beberapa proses dilakukan secara bersamaan dalam satu waktu. 


Jika  pipeline digunakan sebagai pengganti, hal itu dapat menghemat sirkuit vs combinational yang lebih kompleks sirkuit.

Kerugian dari Pipeline

  1. Prossesor non-pipeline hanya menjalankan satu instruksi pada satu waktu. Hal ini untuk mencegah penundaan cabang (yang berlaku, setiap cabang tertunda) dan masalah dengan serial instruksi dieksekusi secara bersamaan. Akibatnya desain lebih sederhana dan lebih murah untuk diproduksi.
  2. Instruksi latency di prossesor non-pipeline sedikit lebih rendah daripada dalam  pipeline setara. Hal ini disebabkan oleh fakta bahwa sandal jepit ekstra harus ditambahkan ke jalur data dari prossesor pipeline.
  3. Prossesor non-pipeline akan memiliki instruksi bandwidth yang stabil. Kinerja  prossesor yang pipeline jauh lebih sulit untuk meramalkan dan dapat bervariasi lebih luas di antara program yang berbeda.
  4. Karena beberapa instruksi diproses secara bersamaan ada kemungkinan instruksi tersebut sama-sama memerlukan resource yang sama, sehingga diperlukan adanya  pengaturan yang tepat agar proses tetap berjalan dengan benar.
  5. Sedangkan ketergantungan terhadap data, bisa muncul, misalnya instruksi yang  berurutan memerlukan data dari instruksi yang sebelumnya.
  6. Kasus Jump, juga perlu perhatian, karena ketika sebuah instruksi meminta untuk melompat ke suatu lokasi memori tertentu, akan terjadi perubahan program counter, sedangkan instruksi yang sedang berada dalam salah satu tahap proses yang  berikutnya mungkin tidak mengharapkan terjadinya perubahan program counter.


Pengertian RISC (Reduced Instruction Set Computer)
RISC adalah komputasi kumpulan instruksi yang disederhanakan. RISC merupakan sebuah arsitektur komputer atau arsitektur komputasi modern dengan instruksi-instruksi dan jenis eksekusi yang paling sederhana. Arsitektur ini digunakan pada komputer dengan kinerja tinggi, seperti komputer vektor. Selain digunakan dalam komputer vektor, desainini juga diimplementasikan pada prosesor komputer lain, seperti pada beberapa mikroprosesor Intel 960, Itanium (IA64) dari Intel Corporation, Alpha AXP dari DEC, R4x00dari MIPS Corporation, PowerPC dan Arsitektur POWER dari International Business Machine.Selain itu, RISC juga umum dipakai pada Advanced RISC Machine (ARM) dan StrongARM (termasuk di antaranya adalah Intel XScale), SPARC dan UltraSPARC dari Sun Microsystems, serta PA-RISC dari Hewlett-Packard.

Ada beberapa elemen penting dalam arsitektur RISC, yaitu :
-  Set instruksi yang terbatas dan sederhana
-  Register general-purpose yang berjumlah banyak, atau pengguanaan teknologi kompiler untuk mengoptimalkan pemakaian regsiternya.
-  Penekanan pada pengoptimalan pipeline instruksi.

Ciri-ciri karakteristik RISC 
-  Instruksi berukuran tunggal.
-  Ukuran yang umum adalah 4 byte.
-  Jumlah mode pengalamatan data yang sedikit, biasanya kurang dari lima buah.
-  Tidak terdapat pengalamatan tak langsung.
-  Tidak terdapat operasi yang menggabungkan operasi load/store dengan operasi aritmatika .

Referensi: 



Saturday, December 24, 2016

Arsitektur Family Komputer IBM PC

1. Famili IBM PC dan Turunannya

IBM PC adalah sebutan untuk keluarga komputer pribadi buatan IBM. IBM PC diperkenalkan pada 12 Agustus 1981, dan "dipensiunkan" pada tanggal 2 April 1987. Komputer personal pertamakali muncul setelah diperkenalkan mikroprosesor, yaitu chip tunggal yang terdiri dari set register , ALU dan unit kontrol computer. IBM PC merupakan arsitektur bus tunggal yang disebut PC I/O Channel BUS atau PC BUS. PC BUS melengkapi PC dengan 8 jalur data, 20 jalur alamat, sejumlah jalur kontrol dan ruang alamat fisik PC adalah 1 MB. 
Sejak diluncurkan oleh IBM, IBM PC memiliki beberapa keluarga, yakni :
    - IBM 4860 PCjr
    - IBM 5140 Convertible Personal Computer (laptop)
    - IBM 5150 Personal Computer (PC yang asli)
    - IBM 5155 Portable PC (sebenarnya merupakan PC XT yang portabel)
    - IBM 5160 Personal Computer/eXtended Technology
    - IBM 5162 Personal Computer/eXtended Technology Model 286 (sebenarnya merupakan PC AT)
    - IBM 5170 Personal Computer/Advanced Technology



2. Konfigurasi Mikrokomputer Dasar

Berdasarkan UkurannyaBerdasarkan ukurannya, komputer digolongkan ke dalam micro computer (komputer mikro), mini computer (komputer mini), small computer (komputer kecil), medium computer (komputer menengah), large computer (komputer besar) dan super computer (komputer super).1.Micro ComputerMicro Computer (Mikro Komputer) disebut juga dengan nama personal computer (komputer personal) . ukuran main memory komputer mikro sekarang berkisar dari 16 MB sampai lebih dari 128 MB, dengan konfigurasi operand register 8 bit, 16 bit, atau 32 bit. Kecepatan komputer mikro sekarang berkisar 200 Mhz sampai dengan 500 Mhz.Komputer mikro umumnya adalah single-user (pemakainya tunggal), yaitu satu komputer hanya dapat digunakan untuk satu pemakai saja untuk tiap saat.
1. Chipset adalah set dari chip yang mendukung kompatibel yang mengimplementasikan berbagai fungsi tertentu seperti pengontrol interupt, pengontrol bus dan timer.
2. Chip khusus yang di sebut koprosesor yang beroperasi bersama dengan CPU guna meningkatkan fungsionalitasnya

3. Komponen IBM PC
   - Sistem kontrol BUS : Pengontrol BUS, Buffer Data, dan Latches Alamat
   - Sistem kontrol interuppt : Pengontrol Interuppt
   - Sistem kontrol RAM & ROM : Chip RAM & ROM, Decoder Alamat, dan Buffer
   - Sistem kontrol DMA : Pengontrol DMA
   - Timer : Timer Interval Programmable
   - Sistem kontrol I/O : Interface Paralel Programmable


Referensi:

https://www.flickr.com/photos/notionscapital/6036834071

https://id.wikipedia.org/wiki/IBM_PC

http://icikomputer.blogspot.co.id/2015/09/arsitektur-famili-komputer-ibm.html

Unit Input / Output

Dalam komputasi, input / output, atau I / O, mengacu pada komunikasi antara sistem pengolahan informasi (seperti komputer), dan dunia luar mungkin manusia, atau sistem lain pengolahan informasi. 

Masukan adalah sinyal atau data yang diterima oleh sistem, dan keluaran adalah sinyal atau data yang dikirim dari itu. Istilah ini juga dapat digunakan sebagai bagian dari suatu tindakan, untuk “melakukan I / O” adalah untuk melakukan operasi input atau output. I / O device yang digunakan oleh seseorang (atau sistem lain) untuk berkomunikasi dengan komputer. Misalnya, keyboard atau mouse mungkin sebuah perangkat input untuk komputer, sementara monitor dan printer dianggap perangkat output untuk komputer. Perangkat untuk komunikasi antar komputer, seperti modem dan kartu jaringan, biasanya melayani untuk kedua input dan output.

Perhatikan bahwa penunjukan perangkat sebagai masukan atau keluaran tergantung pada perspektif. Mouse dan keyboard mengambil sebagai gerakan input fisik yang output pengguna manusia dan mengubahnya menjadi sinyal bahwa komputer dapat mengerti. Output dari perangkat ini merupakan input untuk komputer. Demikian pula, printer dan monitor ambil sebagai masukan sinyal bahwa output komputer. Mereka kemudian mengubah sinyal-sinyal ini menjadi representasi bahwa pengguna manusia bisa melihat atau membaca. Untuk pengguna manusia proses membaca atau melihat representasi ini adalah menerima masukan. Ini interaksi antara komputer dan manusia adalah belajar di bidang yang disebut interaksi manusia-komputer.

1. Sistem Bus

System bus atau bus sistem, dalam arsitektur komputer merujuk pada bus yang digunakan oleh sistem komputer untuk menghubungkan semua komponennya dalam menjalankan tugasnya. Sebuah bus adalah sebutan untuk jalur di mana data dapat mengalir dalam komputer. Jalur-jalur ini digunakan untuk komunikasi dan dapat dibuat antara dua elemen atau lebih. Data atau program yang tersimpan dalam memori dapat diakses dan dieksekusi oleh CPU melalui perantara sistem bus.

Sebuah komputer memiliki beberapa bus, agar dapat berjalan. Banyaknya bus yang terdapat dalam sistem, tergantung dari arsitektur sistem komputer yang digunakan. Sebagai contoh, sebuah komputer PC dengan prosesor umumnya Intel Pentium 4 memiliki bus prosesor (Front-Side Bus), bus AGP, bus PCI, bus USB, bus ISA (yang digunakan oleh keyboard dan mouse), dan bus-bus lainnya.


Bus disusun secara hierarkis, karena setiap bus yang memiliki kecepatan rendah akan dihubungkan dengan bus yang memiliki kecepatan tinggi. Setiap perangkat di dalam sistem juga dihubungkan ke salah satu bus yang ada. Sebagai contoh, kartu grafis AGP akan dihubungkan ke bus AGP. Beberapa perangkat lainnya (utamanya chipset atau kontrolir) akan bertindak sebagai jembatan antara bus-bus yang berbeda. Sebagai contoh, sebuah kontrolir bus SCSI dapat mengubah sebuah bus menjadi bus SCSI, baik itu bus PCI atau bus PCI Express.


Struktur Bus

- Kontrol Bus
Digunakan untuk mengontrol bus data, bus alamat dan seluruh modul yang ada. Karena bus data dan bus alamat digunakan oleh semua komponen maka diperlukan suatu mekanisme kerja yang dikontrol melalui bus kontrol ini.
Sinyal – sinyal kontrol terdiri atas :
1.    Sinyal pewaktuan yaitu Sinyal pewaktuan menandakan validitas data dan alamat
2.    Sinyal–sinyal perintah yaitu Sinyal perintah berfungsi membentuk suatu operasi

- Alamat Bus
Digunakan untuk menspesifikasi sumber dan tujuan data pada bus data, mengirim alamat word pada memori yang akan diakses CPU, dan digunakan untuk saluran alamat perangkat modul komputer saat CPU mengakses suatu modul.
Semua peralatan yang terhubung dengan sistem komputer, agar dapat diakses harus memiliki alamat.
Contoh : mengakses port I/O, maka port I/O harus memiliki alamat hardware-nya

- Data Bus
Lintasan bagi perpindahan data antar modul. Secara kolektif lintasan ini disebut bus data. Umumnya jumlah saluran terkait dengan panjang word, misalnya 8, 16, 32 saluran.
Tujuan : agar mentransfer word dalam sekali waktu.
Jumlah saluran dalam bus data dikatakan lebar bus, dengan satuan bit, misal lebar bus 16 bit

2. Standar Input/Output Interface

Interface atau antarmuka adalah Penghubung antara dua sistem atau alat media penghubung antara satu subsistem dengan subsistem lainnya. Melalui penghubung ini memungkinkan sumber daya mengalir dari satu subsistem ke subsistem yang lainnya. Keluaran (output) dari suatu subsistem akan menjadi masukan (input) untuk subsistem lainnya dengan melalui penghubung.
Interface Aplikasi I/O

Ketika suatu aplikasi ingin membuka data yang ada dalam suatu disk, sebenarnya aplikasi tersebut harus dapat membedakan jenis disk apa yang akan diaksesnya. Untuk mempermudah pengaksesan, sistem operasi melakukan standarisasi cara pengaksesan pada peralatan Input / Output. Pendekatan inilah yang dinamakan interface aplikasi Input / Output.

Interface aplikasi Input / Output melibatkan abstraksi, enkapsulasi, dan software layering. Abstraksi dilakukan dengan membagi-bagi detail peralatan-peralatan Input / Output ke dalam kelas-kelas yang lebih umum. Dengan adanya kelas-kelas yang umum ini, maka akan lebih mudah untuk membuat fungsi-fungsi standar(interface) untuk mengaksesnya. Lalu kemudian adanya device driver pada masing-masing peralatan Input / Output, berfungsi untuk enkapsulasi perbedaan-perbedaan yang ada dari masing-masing anggota kelas-kelas yang umum tadi. Device driver mengenkapsulasi tiap -tiap peralatan Input / Output ke dalam masing-masing 1 kelas yang umum tadi(interface standar). 

Tujuan dari adanya lapisan device driver ini adalah untuk menyembunyikan perbedaan-perbedaan yang ada pada device controller dari subsistem Input / Output pada kernel. Karena hal ini, subsistem Input / Outputdapat bersifat independen dari hardware.


Karena subsistem Input / Output independen dari hardware maka hal ini akan sangat menguntungkan dari segi pengembangan hardware. Tidak perlu menunggu vendor sistem operasi untuk mengeluarkan support code untuk hardware-hardware baru yang akan dikeluarkan oleh vendor hardware.

3. Pengaksesan Peralatan Input/Output

Pengaksesan peralatan(I/O) bergantung pada perspektif mengubah sinyal-sinyal bahwa pengguna manusia bisa melihat atau membaca. Untuk pengguna proses membaca atau melihat representasi ini adalah menerima masukan.

Interaksi antara komputer dan manusia dipelajari dalam bidang yang disebut interaksi manusia-komputer. CPU dan memori utama dianggap sebagai otak dari komputer, dan dari sudut pandang adanya transfer informasi dari atau ke kombinasi itu, misalnya untuk atau dari disk drive, dianggap Input / Output. CPU dan sirkuit pendukungnya menyediakan memori-mapping Input / Output yang digunakan dalam pemrograman komputer tingkat rendah dalam pelaksanaan driver perangkat. 

Sebuah Input / Output merupakan salah satu algoritma yang dirancang untuk mengeksploitasi lokalitas dan melakukan efisien bila berada pada penyimpanan data sekunder, seperti disk drive.
Input / Output Interface diperlukan setiap kali Input / Output device didorong oleh prosesor. 
Antarmuka harus memiliki logika yang diperlukan untuk menafsirkan perangkat alamat yang dihasilkan oleh prosesor. Handshaking harus dilaksanakan oleh antarmuka menggunakan perintah yang sesuai seperti (Sibuk, SIAP, WAIT), dan prosesor dapat berkomunikasi dengan Input / Output device melalui antarmuka. Khusus Input / Output monad, yang memungkinkan program untuk hanya menguraikan Input / Output, dan tindakan yang dilakukan diluar program. Hal ini penting karena Input / Output fungsi akan memperkenalkan efek samping untuk setiap bahasa pemrograman, tapi sekarang pemrograman fungsional murni praktis.

Berikut alamat yang dapat disimpan dalam register. Instruksi akan memiliki register yang memiliki alamat tersebut. Jadi untuk mengambil data, instruksi harus mendaftar didekode sesuai dipilih. Isi register akan diperlakukan sebagai alamat menggunakan alamat lokasi memori yang sesuai dipilih dan data dibaca / ditulis. Port-mapping Input / Output biasanya memerlukan penggunaan instruksi yang secara khusus dirancang untuk melakukan Input / Output operasi.

Pengelolaan I/O :
Tugas utama komputer adalah:
·     Pemrosesan CPU, pemrosesan Input / Output
·     Peran OS dalam pengelolaan Input / Output: Mengelola dan mengontrol operasi Input / Output serta   perangkat Input / Output
·     Fungsi pengelolaan Input / Output: Hardware : port, bus, device controller, software  Input / Output adalah modul device driver sebagai peralatan input/output.


Referensi :

http://mardanijaya.blogspot.co.id/2012/08/penjelasan-tentang-memoryprosesorinput.html

http://www.catatanichan.com/2010/09/sistem-bus-komputer-bus-system.html

http://ghalankoktaviano.blogspot.co.id/2012/11/tugas-3-inputoutput-unit.html

Saturday, November 5, 2016

Central Processing Unit (CPU)

Central Processing Unit (CPU)
CPU merupakan salah satu bagian penting yang harus ada dalam perangkat komputer. Tanpa kehadiran CPU, sebuah perangkat komputer tidak akan bisa digunakan sama sekali, meskipun semua perangkat lainnya (seperti mouse, keyboard, speaker, monitor, dll) sudah terpasang dengan baik. Sebaliknya, tanpa beberapa perangkat lainnya (seperti speaker, mouse, atau pun keyboard), sebuah perangkat komputer masih dapat digunakan selama di dalamnya ada perangkat CPU dan perangkat keras penting lainnya. CPU pada dasarnya merupakan singkatan dari Central Processing Unit yang artinya unit pusat pemrosesan. Jika diartikan secara lengkap, maka pengertian CPU adalah perangkat keras khusus yang bertugas untuk mengeksekusi atau pun memproses semua data yang ada pada perangkat komputer.




Komponen CPU dapat dibagi menjadi beberapa macam, yaitu sebagai berikut:

Sistem Bus 
Sistem Bus dalam arsitektur komputer merujuk pada bus yang digunakan oleh sistem komputer untuk menghubungkan semua komponennya dalam menjalankan tugasnya. Sebuah bus adalah sebutan untuk jalur di mana data dapat mengalir dalam komputer. Jalur-jalur ini digunakan untuk komunikasi dan dapat dibuat antara dua elemen atau lebih. Data atau program yang tersimpan dalam memori dapat diakses dan dieksekusi oleh CPU melalui perantara sistem bus.




Suatu sistem digital pada umumnya memiliki banyak komponen register. Interkoneksi antar komponen diperlukan untuk transfer data dari satu komponen ke komponen yang lainnya. Untuk efesiensi dalam transfer data tersebut digunakan suatu sistem untuk berbagi saluran yang disebut bus. Bus adalah sekelompok kawat penghubung yang digunakan sebagai jalur untuk menyalurkan bit-bit biner. Ada tiga jenis bus pada sistem prosesor : bus data, bus alamat, dan bus kontrol.

1. Bus data digunakan untuk mentransfer data antara CPU dengan elemen elemen lain di dalam sistem. Bus data bersifat bidirectional, bisa menerima data dan juga mengirimkan data. Juga terdapat internal data bus untuk transfer data sesama elemen CPU, yang dihubungkan ke bus data sistem melalui Memory Buffer Register (MBR). MBR merupakan buffer dua arah.

2. Bus alamat membawa alamat dari lokasi memori, untuk mengambil data agar dapat dibaca atau untuk menyimpan agar dapat ditulis. Bus alamat dapat juga mengalamati elemen elemen lain di dalam sistem seperti unit antarmuka masukan/keluaran. Bus alamat dapat membawa 16 bit informasi digital secara serempak.

3.Bus kontrol membawa semua isyarat kontrol dari CPU. Fungsi utama bus kontrol adalah: sinkronisasi memori dan I/O, penjadwalan CPU (misalnya interupsi), dan tugas lain seperti reset dan clock. Sebelum memasuki address bus sistem maupun control bus sistem, informasi terlebih dahulu melewati Memory Address Register (MAR), yang merupakan buffer satu arah.


Sruktur Sistem BUS yaitu: 

- Saluran data
Saluran data memberikan lintasan bagi perpindahan data antara dua modul sistem. Lebar bus data perupakan faktor penting dalam menentukan kinerja sistem secara keseluruhan.

- Saluran Alamat
Saluran alamat digunakan untuk menandakan sumber atau tujuan data pada bus data.

- Saluran Kontrol
Saluran kontrol digunakan untuk mengontrol akses ke saluran alamat dan penggunaan data.



ALU ( Arithmetic And Logic Unit ) 
ALU adalah salah satu bagian dalam dari sebuah mikroprosesor yang berfungsi untuk melakukan operasi hitungan aritmatika dan logika. Contoh operasi aritmatika adalah operasi penjumlahan dan pengurangan, sedangkan contoh operasi logika adalah logika AND dan OR. 

Tugas utama dari ALU adalah melakukan semua perhitungan aritmatika atau matematika yang terjadi sesuai dengan instruksi program. ALU melakukan operasi aritmatika yang lainnya. Seperti pengurangan, pengurangan, dan pembagian dilakukan dengan dasar penjumlahan. Sehingga sirkuit elektronik di ALU yang digunakan untuk melaksanakan operasi aritmatika ini disebut adder. ALU melakukan operasi arithmatika dengan dasar pertambahan, sedang operasi arithmatika yang lainnya, seperti pengurangan, perkalian, dan pembagian dilakukan dengan dasar penjumlahan. sehingga sirkuit elektronik di ALU yang digunakan untuk melaksanakan operasi arithmatika ini disebut adder. Tugas lalin dari ALU adalah melakukan keputusan dari operasi logika sesuai dengan instruksi program.

Unit kendali (Control Unit ) adalah salah satu bagian dari CPU yang bertugas untuk memberikan arahan/kendali/ kontrol terhadap operasi yang dilakukan di bagian ALU (Arithmetic Logical Unit) di dalam CPU tersebut. Output dari CU ini akan mengatur aktivitas dari bagian lainnya dari perangkat CPU tersebut. 

Tugas dari CU adalah sebagai berikut: 
*Mengatur dan mengendalikan alat-alat input dan output. 
*Mengambil instruksi-instruksi dari memori utama. 
*Mengambil data dari memori utama kalau diperlukan oleh proses. 
*Mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandingan logika serta mengawasi kerja. 
*Menyimpan hasil proses ke memori utama.

Central Logic Unit

Bertugas mengatur dan mengendalikan semua peralatan yang ada di sistem komputer, yaitu :
- mengatur dan mengendalikan alat-alat input dan output
- mengambil instruksi-instruksi dari memori utama
- mengambil data dari memori utama untuk diproses
- mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandingan logika serta mengawasi kerja dari ALU
- mengirim hasil proses ke memori utama untuk disimpan dan pada saatnya disajikan ke alat output.

Set Register
Register merupakan perangkat memori sementara yang menyimpan data. Register membantu CPU dalam melaksanakan instruksi. Mereka dikelola oleh unit kontrol. Register berfungsi untuk tempat penyimpanan yang berisi data dan informasi lainnya yang sering dibutuhkan ketika sebuah program sedang berjalan. Register dimaksudkan untuk dapat diakses dengan sangat cepat. Yang termasuk register di antaranya adalah register uji dan instruksi. Register instruksi berisi instruksi CPU sedangkan register uji dimaksudkan untuk menyimpan hasil kerja yang dilakukan oleh CPU.


Macam-macam Jenis dan Fungsi Register

Berikut ini jenis dan fungsi dari masing-masing Register yaitu :

a. General Purpose Register (Register Serbaguna)

Register untuk keperluan umum yang terdiri atas :

a. Register AX (Accumulator register) berfungsi sebagai tempat:
Sementara hasil suatu operasi arithmetika atau logika (AL, AH, AX dan EAX)

- Memasukkan nomor layanan interupsi, untuk keperluan pemesanan sebuah layanan interupsi (register AH).
- Menyimpan bilangan yang dikalikan (reg AL, AX, EAX) dan setengan bagian terkecil (LSB) dari hasil perkalian (register DX-AX dan EDX-EAX).
- Menyimpan setengah bagian terkecil(LSB) sebuah bilangan dibagi (DX-AX dan EDX-EAX) dan hasil bagi (AL, AX, EAX).

b. Register BX (Base Register)
Base register adalah register untuk menyimpan alamat offset data yang terletak di memori (BL, BH, BX dan EBX)

c. Register CX (Counter Register)
Counter register adalah register serbaguna yang berfungsi sebagai:

- Pencacah untuk operasi loop (CX dan ECX)
- Pencacah untuk operasi shift dan rotate (CL)
- Pencacah (counter) untuk operasi string (CX)

d. Register DX (Data register)
Data register adalah register serbaguna yang berfungsi sebagai :

- Penyimpan hasil perkalian 16 bit (DX-AX) dan 32 bit (EDX-EAX).
- Penyimpan hasil pembagian (DX-AX dan EDX-EAX)
- Penyimpan data hexadesimal (kode ASCII) di reg DL untuk dicetak di layar monitor.

2. Pointer Register
Register ini untuk menunjukkan alamat sebuah data di lokasi memori, dipakai saat operasi perpindahan data (dari/ke memori), operasi stack (PUSH/POP) dan penunjukkan alamat suatu instruksi. Berikut adalah macam-macam pointer register: SP (Stack Pointer) dan ESP, BP (Base Pointer) dan IP (Instruction Pointer).

3. Index Register
Sama dengan pointer register, sering digunakan untuk menunjukkan alamat sebuah data di lokasi memori pada operasi string. Macam-macam register Index adalah : SI (Source Index), DI (Destination Index).

4. Segment Register
Segment register membentuk alamat memori untuk data. Pada operasi real mode suatu segment register akan berbeda dengan segment register pada operasi protected mode. Yang termasuk ke dalam segment register antara lain :

- Code segment -> untuk menunjukkan alamt instruksi berikutnya.
- Data segment -> untuk menunjukkan alamat data pada transfer register
- Extra segment -> register tambahan untuk operasi string
- Stack segment -> dengan SP u/ menunjukkan stack dan memanggil suatu prosedur (CALL) dan mengarah ke program utama (RET).
- FS dan GS register -> register tambahan u/ segmen memori yang besar.

5. Flag Register
Berfungsi untuk menunjukkan status (keadaan) sesaat dari mikroprosessor.
Bit-bit pada flag akan mengalami perubahan, tergantung proses yang baru saja berlangsung. Adapun kode bit yaitu sebagai berikut :

- C (carry) -> 1=ada carry out 0= tdk ada carry out
- P (Parity) -> 1=paritas genap 0= paritas ganjil
- A (auxxiliary carry) -> 1=ada carry 0=tdk ada carry
- Z (zero) -> 1=hasilnya nol 0=hasilnya bukan nol
- S (sign) -> 1=hasilnya negatif 0=hasilnya positif
- T (trap) -> bila diset 1 dimungkinkan melakukan debugging.
- I (interrupt) -> 1= pin INTR enable 0=pin INTR disable
- D (direction) -> 1=cacahan turun 0=cacahan naik
- (Overflow) -> menunjukkan adanya kelebihan kapasitas atau tidak
- IOPL (input-output privalege level) -> untuk protected mode
- NT (nested task) -> indikasi dari penggabungan dengan operasi lain.
- RF (resume) -> untuk debugging
- VF (Virtual mode) -> untuk operasi virtual pada protected mode
- AC (alignment check) -> untuk data word dialamati ke memori

Register merupakan tempat menyimpan data sementara yang berada dalam CPU. Register terdiri atas 5 bagian yaitu : General Purpose Register, Pointer Register, Index Register, Segment Register, Flag Register. Fungsi setiap register bermacam-macam sesuai peruntukannya yang telah diatur oleh pembuat mikroprosesor.

Referensi :