Pemrograman
Mikro
Unit
Kendali Logika atau Control Logic Unit adalah bagian yang mengatur seluruh
aktivitas perangkat keras di dalam komputer. CLU menyebabkan suatu instruksi
dapat diambil dari memori, memberi kode pada instruksi tersebut untuk
menentukan operasi yang akan dilaksanakan, menentukan sumber dan tujuan data,
dan menyebabkan perpindahan data dan eksekusi operasi yang diperlukan. CLU
menjalankan seluruh proses sampai sebuah operasi HALT secara tiba-tiba masuk ke
dalam program dan dieksekusi.
Kode
instruksi bersama data, tersimpan di dalam memori. Sebuah instruksi merupakan
entitas kompleks yang pelaksanaannya tidak dapat diselesaikan dalam satu
waktu/putaran. Karena itu setelah menginterpretasikan kode biner suatu
instruksi, CLU menghasilkan serangkaian perintah kendali yang disebut sebagai
instruksi-mikro (microinstruction) yang menjalankan instruksi tersebut. Untuk
membedakan sebuah instruksi dan sebuah instruksi-micro, seringkali
instruksi-instruksi disebut sebagai instruksi-makro (macroinstruction).
Durasi
siklus eksekusi tergantung pada jenis operasi yang akan dikerjakan, mode
pengalamatan data yang digunakan dan jumlah operand yang diperlukan. CLU
mengerjakannya dengan membagi setiap siklus instruksi menjadi serangkaian
keadaan (state), setiap state mempunyai panjang yang sama dan durasi setiap
state sama dengan periode clock/siklus komputer.
Instruksi-mikro
merupakan operasi primitif tingkat rendah yang bertindak secara langsung pada
sirkuit logika suatu komputer. Mereka memerinci fungsi-fungsi (sinyal-sinyal)
seperti berikut:
1. Membuka/menutup suatu gerbang (gate) dari sebuah
register ke sebuah BUS.
2. Mengirim data sepanjang sebuah BUS.
3. Memberi inisial sinyal-sinyal kendali seperti
READ, WRITE, SHIFT, CLEAR dan SET.
4. Mengirimkan sinyal-sinyal waktu.
5. Menunggu sejumlah periode waktu tertentu.
6. Menguji bit-bit tertentu dalam sebuah register.
Ada dua pendekatan
pokok bagi perancangan sebuah CLU yaitu: rancangan hard-wire (atau logika acak)
dan rancangan microprogrammed.
Pada
pendekatan hard-wired sejumlah gerbang (gate), counter, dan register saling
dihubungkan untuk menghasilkan sinyal-sinyal kendali, setiap rancangan
memerlukan piranti logika dan hubungan yang berbeda-beda. Pada pendekatan
microprogrammed untuk setiap instruksi-mikro disebut sebagai sebuah program-mikro,
untuk setiap instruksi-mikro dan disimpan dalam sebuah memori kendali (biasanya
ROM) dalam CLU. Kemudian waktu yang diperlukan dan kendali dihasilkan dengan
menjalankan suatu program-mikro untuk masing-masing instruksi-makro.
KENDALI
HARD-WIRED
Sewaktu
sebuah instruksi ditempatkan dalam register instruksi (IR atau Instruction
Register), CLU mendekode instruksi itu dan menghasilkan serangkaian
instruksi-mikro. Sebagai contoh suatu komputer yang mempunyai 16 instruksi,
sehingga setiap instruksi dapat diberi kode dengan sebuah opcode 4 bit yang
unik, sisa word instruksi berisi informasi pengalamatan yang penting seperti
register-register yang terlibat, alamat-alamat memori dan offset).
Mneumonic-nya diperlihatkan sebagai berikut:
·
LDR (Load register dari memori)
·
LDM (Load memori dari suatu register)
·
ADR (Add ke register)
·
BRU (Branch/percabangan tidak
kondisional)
·
BRZ (Branch/percabanan pada nol)
KENDALI
MICROPROGRAMMED
Istilah
program-mikro pertama kali diungkapkan oleh M.V Wilkes pada awal tahun 1950-an
ketika dia mengajukan suatu pendekatan baru untuk mengendalikan perancangan
unit. Ide ini menarik perhatian banyak ahli dan insinyur komputer pada saat
itu, walaupun hal itu tampak tidak realistis karena adanya persyaratan untuk
memori kendali yang sangat cepat dan relatif tidak mahal. Situasi ini berubah
secara dramatis dengan adanya pengumuman keluarga komputer IBM System/360 pada
bulan April 1964. Seluruh model terbesar menyertakan memori kontrol yang cepat
dan tidak mahal dan merupakan microprogrammed. Sejak itu, pemrograman mikro
menjadi hal yang umum sejalan dengan peningkatan kecepatan dan penurunan harga
memori kontrol.
l Organisasi
CLU Microprogrammed
Instruksi-makro disimpan dalam memori utama dan
diakses melalui memory address register (MAR) dan memory buffer register (MBR).
Instruksi diambil (fetch) ke dalam register instruksi (IR atauinstruction
register) dan pengendali-mikro (microcontroller atau sequencer) yang
bersesuaian. Alamat awal program-mikro dimuat (load) ke dalam kendali alamat
register (CAR atau Control Address Register) dan kemudian kendali memori
mengirim instruksi-mikro pertama ke dalam kendali penyangga register (CBR atau
Control Buffer).
l
Komponen-Komponen Pokok Control
Unit Microprogrammed
1.
Instruction Register
Menyimpan instruksi register mesin yang dijalankan.
2.
Control Store berisi microprogrammed
a) Untuk semua instruksi mesin.
b) Untuk startup mesin.
c) Untuk memprosesan interupt
3.
Address Computing Circuiting
Menentukan alamat Control Store dari mikroinstruksi berikutnya yang akan
dijalankan.
4.
Microprogrammed Counter
Menyimpan alamat dari mikroinstruksi berikutnya.
5.
Microinstruction Buffer
Menyimpan mikroinstruksi tersebut selama dieksekusi.
6.
Microinstruction Decoder
Menghasilkan dan mengeluarkan mikroorder yang didasarkan pada mikroinstruksi
dan opcode instruksi yang akan dijalankan
Format Instruksi-mikro
Pada
dasarnya ada dua jenis format instruksi-mikro: horisontal dan vertikal. Pada
format instruksi-mikro horisontal, satu bit diberikan untuk setiap sinyal
logika yang dapat dihasilkan oleh instruksi-mikro. Dengan demikian, jika
dibutuhkan sejumlah K sinyal kendali yang berbeda maka dibutuhkan
instruksi-mikro dengan word sepanjang K bit. Untuk menghasilkan suatu sinyal
tertentu, bit yang bersesuaian dalam instruksi mikro diatur menjadi
1. kehadiran suatu
sinyal kendali diindikasikan dengan menempatkan sebuah nol pada posisi bit yang
semestinya. Pendekatan ini mempunyai keuntungan bahwa kita dapat menghasilkan
sebanyak mungkin sinyal kendali yang diperlukan secara beruntun, yang
memungkinkan operasi yang sangat cepat.
Namun demikian
kebanyakan operasi-mikro adalah mutual ekslusif dan tidak pernah dipanggil
secara bersamaan. Karena itu, kita dapat membagi mereka ke dalam
kelompok-kelompok dan menggunakan sejumlah bit (field) untuk memberi kode
sekumpulan intruksi-mikro yang mutual ekslusif. Kemudian digunakan suatu
dekoder untuk memilih operasi mikro tertentu yang akan dipanggil. Jika terbawa
ke dalam ekstrem (hanya satu field) maka proses mengode (coding) dan mendekode
(decoding) menghasilkan suatu format instruksi-mikro vertikal, dimana hanya ada
satu operasi-mikro yang dipanggil pada suatu waktu. Karena itu instruksi-mikro
vertikal menyerupai format sebuah interuksi-makro dan terdiri atas suatu kode
operasi tunggal, disebut sebagai opecode mikro, satu operand atau lebih, dan
berberapa field lain (misalnya untuk percabangan kondisional).
KEUNTUNGAN
PEMROGRAMAN-MIKRO
Kendali microprogrammed menawarkan suatu pendekatan
yang lebih terstruktur untuk merancang unit kendali logika (CLU) dibandingkan
dengan kendali hard-wired.
1.
Rancangan microprogrammed relative mudah diubah-ubah dan dibetulkan
2.
Menyediakan kemampuan diagnostic yang lebih baik dan lebih dapat
diandalkan daripada rancangan hard-wired
3.
Utilisasi memori utama dalam computer microprogrammed biasanya lebih
baik Karena perangkat lunak yang seharusnya menggunakan ruang memori utama
justru ditempatkan pada memori kendali
4.
Pengembangan ROM lebih lanjut(dalam kaitan dengan harga dan waktu akses)
secara lebih jauh justru menguatkan posisi dominant pemrograman mikro, salah
satunya dengan menyertakan unit memori ketiga disebut sebagai nano-memory
(tambahan bagi memori utama dan memori kendali). Dalam mengerjakan hal ini,
mungkin terjadi pertukaran (trade-off) yang menarik antara pemrograman mikro
horisontal dan vertikal
Yang Ke-2 adalah Komputer Pipeline
2.
Pengertian Pipeline
Pipeline
adalah suatu cara yang digunakan untuk melakukan sejumlah kerja secara bersama
tetapi dalam tahap yang berbeda yang dialirkan secara kontinou pada unit
pemrosesor. Dengan cara ini, maka unit pemrosesan selalu bekerja.
Intruksi Pipeline
Urutan Pengolahan Intruksi Pipeline
a. Fetch Intrukasi (FI)
b. Decode Instruction
(DI)
c. Calculate Operand
(CO)
d. Fetch Operand (FO)
e. Execute Instruction
(EI)
f. Write Operand (WO)
·
Masalah-masalah pada Pipeline
1. Resiko pada Struktur harware muncul dari
konflik resource sistem yaitu ketika
hardware tidak dapat mendukung semua kemungkinan kombinasi instruksi.
2. Resiko pada Data muncul ketika data untuk suatu
instruksi tergantung pada hasil instruksi sebelumnya.
3.Resiko pada kontrol program muncul pada
pelaksanaan instruksi yang mengubah nilai pada Program Counter (PC) (contoh
:branch/ percabangan).
·
Keuntungan Pipeline
1. Waktu siklus prosesor berkurang, sehingga
meningkatkan kecepatan proses.
2. Beberapa rangkaian digital seperti ADDER dapat
dibuat lebih cepat dengan menambahkan lebih banyak rangkaian.
3. Jika pipelining digunakan sebagai pengganti, hal
itu dapat menghemat rangkaian yang kompleks.
·
Kekurangan Pipeline
1. Non-pipelined prosesor 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 yang bersifat laten (terpendam) di
non-pipelined prosesor sedikit lebih rendah daripada dalam pipelined
setara.
3. Non-pipelined prosesor akan memiliki bandwidth
yang stabil. Kinerja prosesor yang pipelined jauh lebih sulit untuk diprediksi
karena harus memiliki kecepatan proses yang bervariasi di antara program yang
berbeda.
Dan Yang terakhir di sini adalah Pemrosesan Paralel
3.
Pemrosesan Pararel
Pemrosesan Paralel
adalah komputasi dua atau lebih tugas pada waktu bersamaan dengan tujuan untuk
mempersingkat waktu penyelesaian tugas-tugas tersebut dengan cara
mengoptimalkan resource pada sistem komputer yang ada untuk mencapai tujuan
yang sama. Pemrosesan paralel dapat mempersingkat waktu ekseskusi suatu program
dengan cara membagi suatu program menjadi bagian-bagian yang lebih kecil yang
dapat dikerjakan pada masing-masing prosesor secara bersamaan.
Tujuan utama dari
pemrosesan paralel adalah untuk meningkatkan performa komputasi. Semakin banyak
hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin
banyak pekerjaan yang bisa diselesaikan. Analogi yang paling gampang adalah,
bila anda dapat merebus air sambil memotong-motong bawang saat anda akan
memasak, waktu yang anda butuhkan akan lebih sedikit dibandingkan bila anda
mengerjakan hal tersebut secara berurutan (serial). Atau waktu yg anda butuhkan
memotong bawang akan lebih sedikit jika anda kerjakan berdua.
Performa dalam
pemrosesan paralel diukur dari berapa banyak peningkatan kecepatan (speed up)
yang diperoleh dalam menggunakan teknik paralel. Secara informal, bila anda
memotong bawang sendirian membutuhkan waktu 1 jam dan dengan bantuan teman,
berdua anda bisa melakukannya dalam 1/2 jam maka anda memperoleh peningkatan
kecepatan sebanyak 2 kali.
Adapun proses kerja ,
pemrosesan paralel membagi beban kerja dan mendistribusikannya pada
komputer-komputer lain yang terdapat dalam sistem untuk menyelesaikan suatu
masalah. Sistem yang akan dibangun akan tidak akan menggunakan komputer yang
didesikasikan secara khusus untuk keperluan pemrosesan paralel melainkan
menggunakan komputer yang telah ada. Artinya, sistem ini nantinya akan terdiri
dari sejumlah komputer dengan spesifikasi berbeda yang akan bekerjasama untuk
menyelesaikan suatu masalah.
Mikrokontroler adalah
suatu unit yang dapat diprogram cara kerjanya, sehingga dapat dipergunakan
untuk keperluan yang berbeda. Pada masa sekarang mikrokontroler banyak
digunakan sebagai pengontrol pada peralatan-peralatan mulai dari mainan/hobie,
peralatan rumah tangga, sampai kontrol pada peralatan industri. Beberapa
mikrokontroler yang beredar dipasaran merupakan keluaran beberapa pabrik yang
sudah terkenal, misal: Intel, Zilog dan Microchip.
Struktur Mikrokontroler :
a. Register adalah suatu tempat penyimpanan (Variabel)
bilangan bulat 8 bit atau 16 bit. Pada umumnya register berjumlah banyak, dan
masing-masing ada yang memiliki fungsi khusus dan ada yang memiliki fungsi
umum.
b. Accumulor (register A), merupakan salah satu
register khusus yang berfungsi sebagai operand umum proses aritmatika dan
logika.
c. Program counter, merupakan salah satu register
khusus yang berfungsi sebagai pencacah/penghitung eksekusi program
mikrokontroler
d. ALU (Arithmetical and Logical Unit), ALU memiliki
kemampuan khusus dalam mengerjakan proses-proses arithmetika (penjumlahan,
pengurangan, perkalian dan pembagian) dan operasi logika (AND, OR, XOR dan NOT)
e. Clock circuits, mikrokontroler merupakan
rangkaian digital sekuensial, dimana kerjanya berjalan melalui sinkronisasi
clock. Karenanya diperlukan clock circuits yang menyediakan clock bagi seluruh
bagian rangkaian
f. Internal ROM (On Chip Flash), merupakan memori
yang isinya tidak dapat diubah atau dihapus (pada saat mikrokontroler berjalan)
isinya hanya dapat dibaca saja. ROM biasanya berisi program (urutan-urutan
instruksi) untuk menjalankan mikrokontroler. Data pada ROM dibaca secara
berurutan.
g. Internal RAM, merupakan memori yang isinya dapat
diubah atau dihapus. RAM pada mikrokontroler biasanya berisi data-data variable
dan register. Data yang tersimpan pada RAM bersifat hilang jika catu daya yang
diberikan hilang (mati).
h. Stack pointer, merupakan bagian dari RAM yang
memiliki metode penyimpanan dan pengambilan data yang khusus. Dimana data yang
paling terakhir dimasukkan merupakan data yang pertama kali dibaca kembali
(LIFO).
i. I/O port (serial dan parallel), merupakan sarana
yang digunakan mikrokontroler untuk
mengakses peralatan di luar dirinya, memasukan dan mengeluarkan data.
j. Interrupt circuits, merupakan rangkaian yang
mengendalikan sinyal-sinyal interupsi bail internal maupun eksternal, dengan
adanya sinyal interupsi akan mengakibatkan program utama yang sedang dikerjakan
berhenti sejenak, dan bercabang/.loncat ke program rutin layanan interupsi
(RLI) yang diminta, setelah RLI selesai dikerjakan, mikrokontroler kembali
melanjutkan program utama yang tertunda tadi.
Prinsip
kerja mikrokontroler adalah sebagai berikut :
a. Berdasarkan nilai yang berada pada register
Program Counter, mikrokontroler mengambil data pada ROM dengan alamat
sebagaimana yang tertera pada register Program Counter. Selanjutnya isi dari
register Program Counter ditambah dengan satu (Increment) secara otomatis.
b. Data yang diambil pada ROM merupakan urutan
instruksi program yang telah dibuat dan diisikan sebelumnya oleh pengguna.
c. Instruksi yang diambil tersebut diolah dan
dijalankan oleh mikrokontroler. Proses pengerjaan bergantung pada jenis
instruksi, bisa membaca, mengubah nilai-nilai pada register, RAM, isi Port,
atau melakukan pembacaan dan dilanjutkan dengan pengubahan data.
d. Program Counter telah berubah nilainya (baik
karena penambahan otomatis pada langkah 1, atau karena pengubahan-pengubahan
pada langkah 2). Selanjutnya yang dilakukan oleh mikrokontroler adalah
mengulang kembali siklus ini pada langkah 1. Demikian seterusnya hingga power dimatikan.
contoh pemprograman mikro :
sumber : http://kevinwarendra.blogspot.co.id/2016/06/apa-itu-pemrograman-mikro.html
Pemrograman
Mikro
Unit
Kendali Logika atau Control Logic Unit adalah bagian yang mengatur seluruh
aktivitas perangkat keras di dalam komputer. CLU menyebabkan suatu instruksi
dapat diambil dari memori, memberi kode pada instruksi tersebut untuk
menentukan operasi yang akan dilaksanakan, menentukan sumber dan tujuan data,
dan menyebabkan perpindahan data dan eksekusi operasi yang diperlukan. CLU
menjalankan seluruh proses sampai sebuah operasi HALT secara tiba-tiba masuk ke
dalam program dan dieksekusi.
Kode
instruksi bersama data, tersimpan di dalam memori. Sebuah instruksi merupakan
entitas kompleks yang pelaksanaannya tidak dapat diselesaikan dalam satu
waktu/putaran. Karena itu setelah menginterpretasikan kode biner suatu
instruksi, CLU menghasilkan serangkaian perintah kendali yang disebut sebagai
instruksi-mikro (microinstruction) yang menjalankan instruksi tersebut. Untuk
membedakan sebuah instruksi dan sebuah instruksi-micro, seringkali
instruksi-instruksi disebut sebagai instruksi-makro (macroinstruction).
Durasi
siklus eksekusi tergantung pada jenis operasi yang akan dikerjakan, mode
pengalamatan data yang digunakan dan jumlah operand yang diperlukan. CLU
mengerjakannya dengan membagi setiap siklus instruksi menjadi serangkaian
keadaan (state), setiap state mempunyai panjang yang sama dan durasi setiap
state sama dengan periode clock/siklus komputer.
Instruksi-mikro
merupakan operasi primitif tingkat rendah yang bertindak secara langsung pada
sirkuit logika suatu komputer. Mereka memerinci fungsi-fungsi (sinyal-sinyal)
seperti berikut:
1. Membuka/menutup suatu gerbang (gate) dari sebuah
register ke sebuah BUS.
2. Mengirim data sepanjang sebuah BUS.
3. Memberi inisial sinyal-sinyal kendali seperti
READ, WRITE, SHIFT, CLEAR dan SET.
4. Mengirimkan sinyal-sinyal waktu.
5. Menunggu sejumlah periode waktu tertentu.
6. Menguji bit-bit tertentu dalam sebuah register.
Ada dua pendekatan
pokok bagi perancangan sebuah CLU yaitu: rancangan hard-wire (atau logika acak)
dan rancangan microprogrammed.
Pada
pendekatan hard-wired sejumlah gerbang (gate), counter, dan register saling
dihubungkan untuk menghasilkan sinyal-sinyal kendali, setiap rancangan
memerlukan piranti logika dan hubungan yang berbeda-beda. Pada pendekatan
microprogrammed untuk setiap instruksi-mikro disebut sebagai sebuah program-mikro,
untuk setiap instruksi-mikro dan disimpan dalam sebuah memori kendali (biasanya
ROM) dalam CLU. Kemudian waktu yang diperlukan dan kendali dihasilkan dengan
menjalankan suatu program-mikro untuk masing-masing instruksi-makro.
KENDALI
HARD-WIRED
Sewaktu
sebuah instruksi ditempatkan dalam register instruksi (IR atau Instruction
Register), CLU mendekode instruksi itu dan menghasilkan serangkaian
instruksi-mikro. Sebagai contoh suatu komputer yang mempunyai 16 instruksi,
sehingga setiap instruksi dapat diberi kode dengan sebuah opcode 4 bit yang
unik, sisa word instruksi berisi informasi pengalamatan yang penting seperti
register-register yang terlibat, alamat-alamat memori dan offset).
Mneumonic-nya diperlihatkan sebagai berikut:
·
LDR (Load register dari memori)
·
LDM (Load memori dari suatu register)
·
ADR (Add ke register)
·
BRU (Branch/percabangan tidak
kondisional)
·
BRZ (Branch/percabanan pada nol)
KENDALI
MICROPROGRAMMED
Istilah
program-mikro pertama kali diungkapkan oleh M.V Wilkes pada awal tahun 1950-an
ketika dia mengajukan suatu pendekatan baru untuk mengendalikan perancangan
unit. Ide ini menarik perhatian banyak ahli dan insinyur komputer pada saat
itu, walaupun hal itu tampak tidak realistis karena adanya persyaratan untuk
memori kendali yang sangat cepat dan relatif tidak mahal. Situasi ini berubah
secara dramatis dengan adanya pengumuman keluarga komputer IBM System/360 pada
bulan April 1964. Seluruh model terbesar menyertakan memori kontrol yang cepat
dan tidak mahal dan merupakan microprogrammed. Sejak itu, pemrograman mikro
menjadi hal yang umum sejalan dengan peningkatan kecepatan dan penurunan harga
memori kontrol.
l Organisasi
CLU Microprogrammed
Instruksi-makro disimpan dalam memori utama dan
diakses melalui memory address register (MAR) dan memory buffer register (MBR).
Instruksi diambil (fetch) ke dalam register instruksi (IR atauinstruction
register) dan pengendali-mikro (microcontroller atau sequencer) yang
bersesuaian. Alamat awal program-mikro dimuat (load) ke dalam kendali alamat
register (CAR atau Control Address Register) dan kemudian kendali memori
mengirim instruksi-mikro pertama ke dalam kendali penyangga register (CBR atau
Control Buffer).
l
Komponen-Komponen Pokok Control
Unit Microprogrammed
1.
Instruction Register
Menyimpan instruksi register mesin yang dijalankan.
2.
Control Store berisi microprogrammed
a) Untuk semua instruksi mesin.
b) Untuk startup mesin.
c) Untuk memprosesan interupt
3.
Address Computing Circuiting
Menentukan alamat Control Store dari mikroinstruksi berikutnya yang akan
dijalankan.
4.
Microprogrammed Counter
Menyimpan alamat dari mikroinstruksi berikutnya.
5.
Microinstruction Buffer
Menyimpan mikroinstruksi tersebut selama dieksekusi.
6.
Microinstruction Decoder
Menghasilkan dan mengeluarkan mikroorder yang didasarkan pada mikroinstruksi
dan opcode instruksi yang akan dijalankan
Format Instruksi-mikro
Pada
dasarnya ada dua jenis format instruksi-mikro: horisontal dan vertikal. Pada
format instruksi-mikro horisontal, satu bit diberikan untuk setiap sinyal
logika yang dapat dihasilkan oleh instruksi-mikro. Dengan demikian, jika
dibutuhkan sejumlah K sinyal kendali yang berbeda maka dibutuhkan
instruksi-mikro dengan word sepanjang K bit. Untuk menghasilkan suatu sinyal
tertentu, bit yang bersesuaian dalam instruksi mikro diatur menjadi
1. kehadiran suatu
sinyal kendali diindikasikan dengan menempatkan sebuah nol pada posisi bit yang
semestinya. Pendekatan ini mempunyai keuntungan bahwa kita dapat menghasilkan
sebanyak mungkin sinyal kendali yang diperlukan secara beruntun, yang
memungkinkan operasi yang sangat cepat.
Namun demikian
kebanyakan operasi-mikro adalah mutual ekslusif dan tidak pernah dipanggil
secara bersamaan. Karena itu, kita dapat membagi mereka ke dalam
kelompok-kelompok dan menggunakan sejumlah bit (field) untuk memberi kode
sekumpulan intruksi-mikro yang mutual ekslusif. Kemudian digunakan suatu
dekoder untuk memilih operasi mikro tertentu yang akan dipanggil. Jika terbawa
ke dalam ekstrem (hanya satu field) maka proses mengode (coding) dan mendekode
(decoding) menghasilkan suatu format instruksi-mikro vertikal, dimana hanya ada
satu operasi-mikro yang dipanggil pada suatu waktu. Karena itu instruksi-mikro
vertikal menyerupai format sebuah interuksi-makro dan terdiri atas suatu kode
operasi tunggal, disebut sebagai opecode mikro, satu operand atau lebih, dan
berberapa field lain (misalnya untuk percabangan kondisional).
KEUNTUNGAN
PEMROGRAMAN-MIKRO
Kendali microprogrammed menawarkan suatu pendekatan
yang lebih terstruktur untuk merancang unit kendali logika (CLU) dibandingkan
dengan kendali hard-wired.
1.
Rancangan microprogrammed relative mudah diubah-ubah dan dibetulkan
2.
Menyediakan kemampuan diagnostic yang lebih baik dan lebih dapat
diandalkan daripada rancangan hard-wired
3.
Utilisasi memori utama dalam computer microprogrammed biasanya lebih
baik Karena perangkat lunak yang seharusnya menggunakan ruang memori utama
justru ditempatkan pada memori kendali
4.
Pengembangan ROM lebih lanjut(dalam kaitan dengan harga dan waktu akses)
secara lebih jauh justru menguatkan posisi dominant pemrograman mikro, salah
satunya dengan menyertakan unit memori ketiga disebut sebagai nano-memory
(tambahan bagi memori utama dan memori kendali). Dalam mengerjakan hal ini,
mungkin terjadi pertukaran (trade-off) yang menarik antara pemrograman mikro
horisontal dan vertikal
Yang Ke-2 adalah Komputer Pipeline
2.
Pengertian Pipeline
Pipeline
adalah suatu cara yang digunakan untuk melakukan sejumlah kerja secara bersama
tetapi dalam tahap yang berbeda yang dialirkan secara kontinou pada unit
pemrosesor. Dengan cara ini, maka unit pemrosesan selalu bekerja.
Intruksi Pipeline
Urutan Pengolahan Intruksi Pipeline
a. Fetch Intrukasi (FI)
b. Decode Instruction
(DI)
c. Calculate Operand
(CO)
d. Fetch Operand (FO)
e. Execute Instruction
(EI)
f. Write Operand (WO)
·
Masalah-masalah pada Pipeline
1. Resiko pada Struktur harware muncul dari
konflik resource sistem yaitu ketika
hardware tidak dapat mendukung semua kemungkinan kombinasi instruksi.
2. Resiko pada Data muncul ketika data untuk suatu
instruksi tergantung pada hasil instruksi sebelumnya.
3.Resiko pada kontrol program muncul pada
pelaksanaan instruksi yang mengubah nilai pada Program Counter (PC) (contoh
:branch/ percabangan).
·
Keuntungan Pipeline
1. Waktu siklus prosesor berkurang, sehingga
meningkatkan kecepatan proses.
2. Beberapa rangkaian digital seperti ADDER dapat
dibuat lebih cepat dengan menambahkan lebih banyak rangkaian.
3. Jika pipelining digunakan sebagai pengganti, hal
itu dapat menghemat rangkaian yang kompleks.
·
Kekurangan Pipeline
1. Non-pipelined prosesor 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 yang bersifat laten (terpendam) di
non-pipelined prosesor sedikit lebih rendah daripada dalam pipelined
setara.
3. Non-pipelined prosesor akan memiliki bandwidth
yang stabil. Kinerja prosesor yang pipelined jauh lebih sulit untuk diprediksi
karena harus memiliki kecepatan proses yang bervariasi di antara program yang
berbeda.
Dan Yang terakhir di sini adalah Pemrosesan Paralel
3.
Pemrosesan Pararel
Pemrosesan Paralel
adalah komputasi dua atau lebih tugas pada waktu bersamaan dengan tujuan untuk
mempersingkat waktu penyelesaian tugas-tugas tersebut dengan cara
mengoptimalkan resource pada sistem komputer yang ada untuk mencapai tujuan
yang sama. Pemrosesan paralel dapat mempersingkat waktu ekseskusi suatu program
dengan cara membagi suatu program menjadi bagian-bagian yang lebih kecil yang
dapat dikerjakan pada masing-masing prosesor secara bersamaan.
Tujuan utama dari
pemrosesan paralel adalah untuk meningkatkan performa komputasi. Semakin banyak
hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin
banyak pekerjaan yang bisa diselesaikan. Analogi yang paling gampang adalah,
bila anda dapat merebus air sambil memotong-motong bawang saat anda akan
memasak, waktu yang anda butuhkan akan lebih sedikit dibandingkan bila anda
mengerjakan hal tersebut secara berurutan (serial). Atau waktu yg anda butuhkan
memotong bawang akan lebih sedikit jika anda kerjakan berdua.
Performa dalam
pemrosesan paralel diukur dari berapa banyak peningkatan kecepatan (speed up)
yang diperoleh dalam menggunakan teknik paralel. Secara informal, bila anda
memotong bawang sendirian membutuhkan waktu 1 jam dan dengan bantuan teman,
berdua anda bisa melakukannya dalam 1/2 jam maka anda memperoleh peningkatan
kecepatan sebanyak 2 kali.
Adapun proses kerja ,
pemrosesan paralel membagi beban kerja dan mendistribusikannya pada
komputer-komputer lain yang terdapat dalam sistem untuk menyelesaikan suatu
masalah. Sistem yang akan dibangun akan tidak akan menggunakan komputer yang
didesikasikan secara khusus untuk keperluan pemrosesan paralel melainkan
menggunakan komputer yang telah ada. Artinya, sistem ini nantinya akan terdiri
dari sejumlah komputer dengan spesifikasi berbeda yang akan bekerjasama untuk
menyelesaikan suatu masalah.
Mikrokontroler adalah
suatu unit yang dapat diprogram cara kerjanya, sehingga dapat dipergunakan
untuk keperluan yang berbeda. Pada masa sekarang mikrokontroler banyak
digunakan sebagai pengontrol pada peralatan-peralatan mulai dari mainan/hobie,
peralatan rumah tangga, sampai kontrol pada peralatan industri. Beberapa
mikrokontroler yang beredar dipasaran merupakan keluaran beberapa pabrik yang
sudah terkenal, misal: Intel, Zilog dan Microchip.
Struktur Mikrokontroler :
a. Register adalah suatu tempat penyimpanan (Variabel)
bilangan bulat 8 bit atau 16 bit. Pada umumnya register berjumlah banyak, dan
masing-masing ada yang memiliki fungsi khusus dan ada yang memiliki fungsi
umum.
b. Accumulor (register A), merupakan salah satu
register khusus yang berfungsi sebagai operand umum proses aritmatika dan
logika.
c. Program counter, merupakan salah satu register
khusus yang berfungsi sebagai pencacah/penghitung eksekusi program
mikrokontroler
d. ALU (Arithmetical and Logical Unit), ALU memiliki
kemampuan khusus dalam mengerjakan proses-proses arithmetika (penjumlahan,
pengurangan, perkalian dan pembagian) dan operasi logika (AND, OR, XOR dan NOT)
e. Clock circuits, mikrokontroler merupakan
rangkaian digital sekuensial, dimana kerjanya berjalan melalui sinkronisasi
clock. Karenanya diperlukan clock circuits yang menyediakan clock bagi seluruh
bagian rangkaian
f. Internal ROM (On Chip Flash), merupakan memori
yang isinya tidak dapat diubah atau dihapus (pada saat mikrokontroler berjalan)
isinya hanya dapat dibaca saja. ROM biasanya berisi program (urutan-urutan
instruksi) untuk menjalankan mikrokontroler. Data pada ROM dibaca secara
berurutan.
g. Internal RAM, merupakan memori yang isinya dapat
diubah atau dihapus. RAM pada mikrokontroler biasanya berisi data-data variable
dan register. Data yang tersimpan pada RAM bersifat hilang jika catu daya yang
diberikan hilang (mati).
h. Stack pointer, merupakan bagian dari RAM yang
memiliki metode penyimpanan dan pengambilan data yang khusus. Dimana data yang
paling terakhir dimasukkan merupakan data yang pertama kali dibaca kembali
(LIFO).
i. I/O port (serial dan parallel), merupakan sarana
yang digunakan mikrokontroler untuk
mengakses peralatan di luar dirinya, memasukan dan mengeluarkan data.
j. Interrupt circuits, merupakan rangkaian yang
mengendalikan sinyal-sinyal interupsi bail internal maupun eksternal, dengan
adanya sinyal interupsi akan mengakibatkan program utama yang sedang dikerjakan
berhenti sejenak, dan bercabang/.loncat ke program rutin layanan interupsi
(RLI) yang diminta, setelah RLI selesai dikerjakan, mikrokontroler kembali
melanjutkan program utama yang tertunda tadi.
Prinsip
kerja mikrokontroler adalah sebagai berikut :
a. Berdasarkan nilai yang berada pada register
Program Counter, mikrokontroler mengambil data pada ROM dengan alamat
sebagaimana yang tertera pada register Program Counter. Selanjutnya isi dari
register Program Counter ditambah dengan satu (Increment) secara otomatis.
b. Data yang diambil pada ROM merupakan urutan
instruksi program yang telah dibuat dan diisikan sebelumnya oleh pengguna.
c. Instruksi yang diambil tersebut diolah dan
dijalankan oleh mikrokontroler. Proses pengerjaan bergantung pada jenis
instruksi, bisa membaca, mengubah nilai-nilai pada register, RAM, isi Port,
atau melakukan pembacaan dan dilanjutkan dengan pengubahan data.
d. Program Counter telah berubah nilainya (baik
karena penambahan otomatis pada langkah 1, atau karena pengubahan-pengubahan
pada langkah 2). Selanjutnya yang dilakukan oleh mikrokontroler adalah
mengulang kembali siklus ini pada langkah 1. Demikian seterusnya hingga power dimatikan.
contoh pemprograman mikro :
sumber : http://kevinwarendra.blogspot.co.id/2016/06/apa-itu-pemrograman-mikro.html
0 komentar:
Posting Komentar