Anda di halaman 1dari 43

TUGAS RUTIN

ARSITEKTUR KOMPUTER

Disusun Oleh:
KELOMPOK 12

NO NAMA NIM

1. Muhammad Prasandy 5193351008

Dosen Pengampu :

Ressy Dwi Tyas Sari, M.T.I


NIP. 198909152019032021

PRODI PENDIDIKAN TEKNOLOGI INFORMATIKA & KOMPUTER


JURUSAN PENDIDIKAN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS NEGERI MEDAN
2022
KATA PENGANTAR

Puji dan syukur kami panjatkan kehadirat Allah SWT, yang mana berkat rahmat, dan
karunia-Nya, kami dapat menyelesaikan makalah Arsitektur Komputer dengan judul materi
“Parellel Processing & Multicore Computer” Makalah ini telah kami susun dengan maksimal
dan mendapatkan bantuan dari berbagai pihak sehingga dapat memperlancar pembuatan makalah
ini. Makalah ini dibuat bertujuan untuk memenuhi tugas mata kuliah dari dosen Arsitektur
Komputer serta menambah ilmu dan wawasan bagi pembaca. Untuk itu, kami menyampaikan
banyak terima kasih kepada semua pihak yang telah berkontribusi dalam pembuatan makalah ini.

Terlepas dari semua itu, kami menyadari bahwa masih ada kekurangan baik dari segi
susunan kalimat maupun tata bahasanya. Oleh karena itu, kami menerima segala saran dan kritik
dari pembaca agar kami dapat memperbaiki makalah ini.

Akhir kata kami berharap semoga makalah ini bermanfaat dan menginspirasi para
pembaca, serta menambah pengetahuan tentang Parellel Processing & Multicore Computer

Medan, 25 November 2019

Kelompok 12

MIKRO-OPERASI
The Fetch Cycle

Kita mulai dengan melihat siklus pengambilan, yang terjadi pada awal setiap instruksi siklus dan
menyebabkan instruksi diambil dari memori. Untuk keperluan diskusi, kami menganggap organisasi
digambarkan pada Gambar 14.6 (Aliran Data, Ambil Siklus). Empat register terlibat:

 Register alamat memori (MAR): Terhubung ke jalur alamat system bis. Ini menentukan alamat
dalam memori untuk operasi baca atau tulis.
 Memory buffer register (MBR): Terhubung ke jalur data bus sistem. Ini berisi nilai yang akan
disimpan dalam memori atau nilai terakhir yang dibaca dari memori.
 Penghitung Program (PC): Menyimpan alamat instruksi selanjutnya diambil
 Instruction register (IR): Menyimpan instruksi terakhir yang diambil.

Mari kita lihat urutan kejadian untuk siklus pengambilan dari sudut pandang efeknya pada register
prosesor. Contoh muncul pada Gambar 20.2. Pada awal siklus pengambilan, alamat instruksi berikutnya
yang akan dieksekusi ada di penghitung program (PC); dalam hal ini, alamatnya adalah 1100100.
Langkah pertama adalah pindahkan alamat itu ke register alamat memori (MAR) karena ini adalah satu-
satunya register terhubung ke jalur alamat bus sistem. Langkah kedua adalah membawa dalam instruksi.
Alamat yang diinginkan (dalam MAR) ditempatkan pada bus alamat, unit kontrol mengeluarkan perintah
BACA pada bus kontrol, dan hasilnya muncul pada bus data dan disalin ke register buffer memori
(MBR). Kami juga butuh untuk menambah PC dengan panjang instruksi untuk bersiap-siap untuk
instruksi selanjutnya. Karena dua tindakan ini (baca kata dari memori, increment PC) tidak mengganggu
satu sama lain, kita dapat melakukannya secara bersamaan untuk menghemat waktu. Langkah ketiga
adalah untuk memindahkan isi MBR ke register instruksi (IR). Ini membebaskan MBR untuk digunakan
selama siklus tidak langsung yang mungkin. Dengan demikian, siklus pengambilan sederhana sebenarnya
terdiri dari tiga langkah dan empat mikro operasi. Setiap mikro operasi melibatkan pergerakan data ke
dalam atau ke luar dari daftar. Selama gerakan-gerakan ini tidak saling mengganggu, beberapa di
antaranya mereka dapat terjadi selama satu langkah, menghemat waktu. Secara simbolis, kita dapat
menulis ini urutan acara sebagai berikut

di mana saya adalah panjang instruksi. Kami perlu membuat beberapa


komentar tentang ini urutan. Kami berasumsi bahwa sebuah jam
tersedia untuk keperluan penentuan waktu dan bahwa itu memancarkan
secara teratur pulsa clock spasi. Setiap pulsa jam menentukan satuan waktu. Dengan demikian, semua
unit waktu memiliki durasi yang sama. Setiap mikro operasi dapat dilakukan dalam waktu satu satuan
waktu. Notasi (t1, t2, t3) mewakili satuan waktu berturut-turut. Dengan kata lain, kita punya

 Unit pertama kali: Memindahkan isi PC ke MAR.


 Unit waktu kedua: Memindahkan isi lokasi memori yang ditentukan oleh MAR ke MBR. Selisih
dengan saya isi PC.
 Unit ketiga: Pindahkan konten MBR ke IR.
Perhatikan bahwa mikro kedua dan ketiga operasi keduanya berlangsung selama yang kedua satuan
waktu. Mikro ketiga operasi bisa dikelompokkan dengan yang keempat tanpa memengaruhi operasi
pengambilan:

Pengelompokan mikro- operasi harus mengikuti dua aturan sederhana:

1. Urutan kejadian yang tepat harus diikuti. Jadi (MAR d (PC)) harus mendahului (MBR dMemory)
karena operasi pembacaan memori menggunakan alamat di MAR.
2. Konflik harus dihindari. Seseorang seharusnya tidak mencoba membaca dan menulis dari
register yang sama dalam satu unit waktu, karena hasilnya tidak dapat diprediksi. Misalnya,
operasi (MBR dMemory) dan (IR dMBR) seharusnya tidak terjadi selama unit waktu yang sama.

Poin terakhir yang patut dicatat adalah bahwa salah satu operasi melibatkan sebuah tambahan. Untuk
menghindari duplikasi sirkuit, penambahan ini dapat dilakukan oleh ALU. Penggunaan ALU dapat
melibatkan mikro-tambahan operasi, tergantung pada fungsi ALU dan organisasi prosesor. Kami
menunda diskusi tentang hal ini sampai nanti dalam bab ini. Sangat berguna untuk membandingkan
peristiwa yang dijelaskan dalam subbagian ini dan yang berikut ini Gambar 3.5 (Contoh Eksekusi
Program). Sedangkan mikro operasi diabaikan pada gambar itu, diskusi ini menunjukkan operasi
diperlukan untuk melakukan sub sepeda dari siklus instruksi.

Siklus Tidak Langsung

Setelah instruksi diambil, langkah selanjutnya adalah mengambil operan sumber. Melanjutkan contoh
sederhana, mari kita asumsikan satu alamat format instruksi, dengan langsung dan tidak langsung
pengalamatan diizinkan. Jika instruksi menentukan alamat tidak langsung, maka siklus tidak langsung
harus mendahului siklus eksekusi. Aliran data agak berbeda dari yang ditunjukkan pada Gambar 14.7
(Aliran Data, Siklus Tidak Langsung) dan termasuk mikro operasi: t1: MAR d (IR (Alamat)) t2: MBR d
Memori t3: IR (Alamat) d (MBR (Alamat)) Bidang alamat instruksi ditransfer ke MAR. Ini kemudian
digunakan untuk mengambil alamat operan. Akhirnya, bidang alamat IR diperbarui dari MBR, sehingga
sekarang berisi alamat langsung dan bukan langsung. IR sekarang dalam kondisi yang sama seolah-olah
pengalamatan tidak langsung tidak pernah digunakan,dan siap untuk siklus eksekusi. Kami melewatkan
siklus itu sejenak, untuk dipertimbangkan siklus interupsi.

Siklus Interupsi

Pada penyelesaian siklus eksekusi, tes dilakukan untuk menentukan apakah ada interupsi yang diaktifkan
telah terjadi. Jika demikian, siklus interupsi terjadi. Sifat ini siklus sangat bervariasi dari satu mesin ke
yang lain. Kami menyajikan urutan yang sangat sederhana peristiwa, seperti yang diilustrasikan pada
Gambar 14.8 (Aliran Data, Siklus Tidak Langsung). Kita punya

t1: MBR d (PC)

t2: MAR dan Save_Address

PC d Routine_Address

t3: Memori d (MBR)

Pada langkah pertama, isi PC ditransfer ke MBR, jadi mereka dapat disimpan untuk kembali dari
interupsi. Kemudian MAR dimuat dengan alamat di mana isi PC akan disimpan, dan PC dimuat dengan
alamat awal interupsi-pengolahan rutin. Dua tindakan ini masing-masing dapat menjadi mikro tunggal
operasi. Namun, karena kebanyakan prosesor menyediakan beberapa jenis dan / atau tingkat interupsi,
mungkin diperlukan satu atau lebih mikro operasi untuk mendapatkan Save_Address dan
Routine_Address sebelum mereka bisa masing-masing ditransfer ke MAR dan PC. Bagaimanapun,
setelah ini dilakukan, langkah terakhir adalah menyimpan MBR, yang berisi nilai lama PC, ke dalam
memori. Prosesor sekarang siap untuk memulai siklus instruksi berikutnya.

Siklus Eksekusi

Siklus pengambilan, tidak langsung, dan interupsi sederhana dan dapat diprediksi. Masing-masing
melibatkan urutan kecil, tetap mikro operasidan, dalam setiap kasus, mikro yang sama operasi Diulang
setiap kali sekitar. Ini tidak benar dari siklus eksekusi. Karena beragam opcode, ada sejumlah urutan
mikro yang berbeda operasi itu bisa terjadi. Kontrol Unit memeriksa opcode dan menghasilkan urutan
mikro- operasi berdasarkan nilai opcode. Ini disebut sebagai instruksi decoding. Mari kita perhatikan
beberapa contoh hipotetis. Pertama, pertimbangkan instruksi tambahan:

ADD R1, X

yang menambahkan konten lokasi X untuk mendaftar R1. Urutan berikut mikro-operasi mungkin terjadi:

t1: MAR d (IR (alamat))

t2: MBR d Memori

t3: R1 d (R1) + (MBR)

Kami mulai dengan IR yang berisi instruksi ADD. Pada langkah pertama, bagian alamat IR dimuat ke
dalam MAR. Kemudian memori direferensikan lokasi dibaca. Akhirnya, isi R1 dan MBR ditambahkan
oleh ALU. Lagi, ini adalah contoh yang disederhanakan. Mikro tambahan operasi mungkin diperlukan
untuk mengekstrak referensi register dari IR dan mungkin untuk tahap input atau output ALU di beberapa
register perantara.
Mari kita lihat dua contoh yang lebih kompleks. Instruksi umum adalah kenaikan dan lewati jika nol: ISZ
X Isi lokasi X bertambah 1. Jika hasilnya 0, instruksi selanjutnya dilewati. Kemungkinan urutan mikro-
operasi aku s t1: MAR d (IR (alamat)) t2: MBR d Memori t3: MBR d (MBR) +1 t4: Memori d (MBR)
Jika ((MBR) = 0) maka (PC d (PC) + I) Fitur baru yang diperkenalkan di sini adalah tindakan bersyarat.
PC bertambah if (MBR) = 0. Tes dan tindakan ini dapat diimplementasikan sebagai satu mikro- operasi.
Perhatikan juga bahwa mikro operasi dapat dilakukan selama yang sama unit waktu di mana nilai yang
diperbarui dalam MBR disimpan kembali ke memori. Akhirnya, pertimbangkan instruksi panggilan
subrutin. Sebagai contoh, pertimbangkan a cabang- dan- menyimpan- alamat petunjuk: BSA X Alamat
instruksi yang mengikuti instruksi BSA disimpan di lokasi X, dan eksekusi berlanjut di lokasi X + I.
Alamat yang disimpan nantinya akan digunakan untuk kembali. Ini adalah teknik sederhana untuk
mendukung panggilan subrutin. Itu mengikuti mikro operasi cukup: t1: MAR d (IR (alamat)) MBR d
(PC) t2: PC d (IR (alamat)) Memori d (MBR) t3: PC d (PC) + I Alamat di PC pada awal instruksi adalah
alamat selanjutnya instruksi secara berurutan. Ini disimpan di alamat yang ditentukan dalam IR. Yang
terakhir alamat juga bertambah untuk memberikan alamat instruksi untuk selanjutnya siklus instruksi.

Siklus Instruksi

Kita telah melihat bahwa setiap fase dari siklus instruksi dapat diuraikan menjadi a urutan mikro operasi.
Dalam contoh kita, ada satu urutan masing-masing untuk mengambil, tidak langsung, dan mengganggu
siklus, dan, untuk siklus eksekusi, ada satu urutan mikro operasi untuk setiap opcode. Untuk melengkapi
gambar, kita perlu mengikat urutan mikro- operasi bersama-sama, dan ini dilakukan pada Gambar 20.3.
Kami menganggap register 2-bit baru bernama instruksi siklus kode (ICC). ICC menunjukkan status
prosesor dalam hal ini dari bagian mana dari siklus itu di:

00: Ambil

01: Tidak Langsung

10: Jalankan

11: Mengganggu

Pada akhir dari masing-masing dari empat siklus, ICC diatur dengan tepat. Tidak langsung siklus selalu
diikuti oleh siklus eksekusi. Siklus interupsi selalu diikuti oleh siklus pengambilan (lihat Gambar 14.4,
Siklus Instruksi). Untuk mengambil dan mengeksekusi siklus, siklus berikutnya tergantung pada keadaan
sistem. Dengan demikian, diagram alir Gambar 20.3 mendefinisikan urutan lengkap dari mikro- operasi,
hanya bergantung pada urutan instruksi dan pola interupsi. Tentu saja, ini adalah contoh yang
disederhanakan. Diagram alir untuk prosesor aktual akan menjadi lebih kompleks. Bagaimanapun, kami
telah mencapai titik dalam diskusi kami di mana pengoperasian prosesor didefinisikan sebagai kinerja
urutan mikro- operasi. Kita sekarang dapat mempertimbangkan bagaimana unit kontrol menyebabkan
urutan ini terjadi.
PENGENDALIAN PROSESOR
Persyaratan Fungsional

Sebagai hasil dari analisis kami di bagian sebelumnya, kami telah menguraikan perilaku tersebut atau
berfungsinya prosesor ke dalam operasi elementer, yang disebut micro- operasi. Dengan mengurangi
operasi prosesor ke tingkat yang paling mendasar, kami mampu mendefinisikan dengan tepat apa yang
harus menyebabkan unit kontrol terjadi. Demikian kita dapat menentukan persyaratan fungsional untuk
unit kontrol: fungsi-fungsi yang unit kontrol harus melakukan. Definisi persyaratan fungsional ini adalah
dasarnya untuk desain dan implementasi unit kontrol. Dengan informasi yang tersedia, tiga langkah
proses mengarah ke karakterisasi dari unit kontrol:

1. Tentukan elemen dasar prosesor.


2. Jelaskan mikro- operasi bahwa prosesor berkinerja.
3. Tentukan fungsi yang harus dilakukan unit kontrol untuk menyebabkan mikro- operasi untuk
dilakukan.

Kami telah melakukan langkah 1 dan 2. Mari kita simpulkan hasilnya. Pertama, elemen fungsional dasar
prosesor adalah sebagai berikut:

 ALU
 Mendaftar
 Jalur data internal
 Jalur data eksternal
 Unit control

Beberapa pemikiran harus meyakinkan Anda bahwa ini adalah daftar lengkap. ALU adalah esensi
fungsional komputer. Register digunakan untuk menyimpan data internal ke prosesor Beberapa register
berisi informasi status yang diperlukan untuk mengelola instruksi pengurutan (mis., kata status program).
Lainnya berisi data yang masuk atau dating dari modul ALU, memori, dan I / O. Jalur data internal
digunakan untuk bergerak data antara register dan antara register dan ALU. Tautan jalur data eksternal
mendaftar ke memori dan modul I / O, sering melalui bus sistem. Kontrol unit menyebabkan operasi
terjadi di dalam prosesor. Eksekusi suatu program terdiri dari operasi yang melibatkan prosesor ini
elemen. Seperti yang telah kita lihat, operasi ini terdiri dari urutan mikro-operasi. Setelah meninjau
Bagian 20.1, pembaca harus melihat bahwa semua operasi termasuk dalam salah satu kategori berikut:

 Mentransfer data dari satu register ke register lainnya.


 Mentransfer data dari register ke antarmuka eksternal (mis., Bus sistem).
 Mentransfer data dari antarmuka eksternal ke register.
 Melakukan operasi aritmatika atau logika, menggunakan register untuk input dan keluaran.

Semua mikro-operasi diperlukan untuk melakukan satu siklus instruksi, termasuk semua dari mikro
operasi untuk mengeksekusi setiap instruksi dalam set instruksi, termasuk salah satu kategori ini. Kita
sekarang bisa agak lebih eksplisit tentang cara control fungsi unit. Unit kontrol melakukan dua tugas
dasar:

 Sequencing: Unit kontrol menyebabkan prosesor melewati serangkaian dari mikro operasi dalam
urutan yang tepat, berdasarkan pada program yang sedang dieksekusi.
 Eksekusi: Unit kontrol menyebabkan setiap mikro operasi untuk dilakukan.

Sebelumnya adalah deskripsi fungsional tentang apa yang dilakukan unit kontrol. Itu kunci bagaimana
unit kontrol beroperasi adalah penggunaan sinyal kontrol.

Sinyal Kontrol

Kami telah mendefinisikan elemen-elemen yang membentuk prosesor (ALU, register, data jalur) dan
mikro operasi yang dilakukan. Agar unit kontrol berfungsi fungsinya, ia harus memiliki input yang
memungkinkannya untuk menentukan keadaan sistem dan output yang memungkinkannya untuk
mengontrol perilaku sistem. Ini adalah eksternal spesifikasi unit kontrol. Secara internal, unit kontrol
harus memiliki logika diperlukan untuk melakukan fungsi sekuensing dan eksekusi. Kami menunda
diskusi operasi internal unit kontrol ke Bagian 20.3 dan Bab 21. The Sisa dari bagian ini berkaitan dengan
interaksi antara unit kontrol dan elemen prosesor lainnya. Gambar 20.4 adalah model umum unit kontrol,
yang menunjukkan semua input dan output. Inputnya adalah:

 Jam: Ini adalah bagaimana unit kontrol “menjaga waktu.” Unit kontrol menyebabkan satu mikro-
operasi (atau satu set mikro- simultan operasi) untuk dilakukan untuk setiap pulsa jam. Ini
kadang-kadang disebut sebagai waktu siklus prosesor, atau waktu siklus jam.
 Instruksi register: Mode opcode dan pengalamatan dari instruksi saat ini digunakan untuk
menentukan mikro operasi untuk melakukan selama eksekusi siklus.
 Bendera: Ini diperlukan oleh unit kontrol untuk menentukan status prosesor dan hasil operasi
ALU sebelumnya. Misalnya, untuk kenaikan- dan- melewatkan- jika- nol (ISZ) instruksi, unit
kontrol akan bertambah PC jika flag nol diatur.
 Mengontrol sinyal dari bus kontrol: Bagian bus kontrol dari bus sistem memberikan sinyal ke

unit kontrol .
 Mengontrol sinyal di dalam prosesor: Ini adalah dua jenis: yang menyebabkannya data yang
akan dipindahkan dari satu register ke register lain, dan yang mengaktifkan spesifik Fungsi ALU.
 Kontrol sinyal ke bus kontrol: Ini juga dari dua jenis: sinyal kontrol untuk memori, dan kontrol
sinyal ke modul I / O.

Tiga jenis sinyal kontrol digunakan: yang mengaktifkan fungsi ALU; mereka yang mengaktifkan jalur
data; dan yang merupakan sinyal pada bus sistem eksternal atau antarmuka eksternal lainnya. Semua
sinyal ini pada akhirnya diterapkan secara langsung sebagai input biner ke gerbang logika individu. Mari
kita perhatikan lagi siklus pengambilan untuk melihat bagaimana unit kontrol dipertahankan kontrol. Unit
kontrol melacak di mana ia berada dalam siklus instruksi. Di diberikan titik, ia tahu bahwa siklus
pengambilan akan dilakukan selanjutnya. Langkah pertama adalah mentransfer isi PC ke MAR. Unit
kontrol melakukan ini dengan mengaktifkan sinyal kontrol yang membuka gerbang antara bit PC dan bit
MAR. Langkah selanjutnya adalah membaca kata dari memori ke dalam MBR dan increment PC. Unit
kontrol melakukan ini dengan mengirimkan sinyal kontrol berikut serentak:

 Sinyal kontrol yang membuka gerbang, memungkinkan konten MAR ke bus alamat;
 Sinyal kontrol baca memori pada bus kontrol;
 Sinyal kontrol yang membuka gerbang, memungkinkan isi bus data disimpan di MBR;
 Kontrol sinyal ke logika yang menambahkan 1 ke isi PC dan menyimpan hasil kembali ke PC.

Setelah ini, unit kontrol mengirimkan sinyal kontrol yang membuka gerbang antara MBR dan IR. Ini
melengkapi siklus pengambilan kecuali untuk satu hal: Unit kontrol harus putuskan apakah akan
melakukan siklus tidak langsung atau siklus eksekusi berikutnya. Untuk memutuskan ini, itu memeriksa
IR untuk melihat apakah referensi memori tidak langsung dibuat. Siklus tidak langsung dan interupsi
bekerja sama. Untuk siklus eksekusi, unit kontrol dimulai dengan memeriksa opcode dan, atas dasar itu,
memutuskan mana urutan mikro operasi untuk melakukan siklus eksekusi.

Contoh Sinyal Kontrol

Untuk menggambarkan fungsi unit kontrol, mari kita periksa contoh sederhana. Gambar 20.5
menggambarkan contoh tersebut. Ini adalah prosesor sederhana dengan akumulator tunggal (AC). Jalur
data antara elemen ditunjukkan. Jalur control untuk sinyal yang berasal dari unit kontrol tidak
diperlihatkan, tetapi terminasi dari sinyal kontrol diberi label Ci dan ditunjukkan oleh lingkaran. Unit
kontrol menerima input dari jam, IR, dan bendera. Dengan setiap siklus jam, unit kontrol membaca semua
inputnya dan memancarkan serangkaian sinyal kontrol. Sinyal kontrol masuk ke tiga tujuan terpisah:
 Jalur data: Unit kontrol mengontrol aliran data internal. Misalnya, pada instruksi ambil, isi
register buffer memori ditransfer ke IR. Untuk setiap jalur yang akan dikontrol, ada saklar
(ditunjukkan oleh lingkaran di gambar). Sinyal kontrol dari unit kontrol untuk sementara
membuka gerbang untuk membiarkan data lewat.
 ALU: Unit kontrol mengontrol operasi ALU dengan satu set control sinyal. Sinyal-sinyal ini
mengaktifkan berbagai sirkuit dan gerbang logika di dalam ALU.
 Bus sistem: Unit kontrol mengirimkan sinyal kontrol ke jalur control bus sistem (mis., memori
BACA).

Unit kontrol harus memelihara pengetahuan tentang di mana instruksi tersebut berada siklus.
Menggunakan pengetahuan ini, dan dengan membaca semua inputnya, unit kontrol memancarkan urutan
sinyal kontrol yang menyebabkan mikro-operasi terjadi. Ini menggunakan clock pulses ke waktu urutan
peristiwa, memungkinkan waktu antara peristiwa untuk sinyal level untuk stabil. Tabel 20.1 menunjukkan
sinyal kontrol yang diperlukan untuk beberapa mikro operasi urutan dijelaskan sebelumnya. Untuk
kesederhanaan, datanya dan mengontrol jalur untuk menambah PC dan untuk memuat alamat tetap ke PC
dan MAR tidak ditampilkan. Perlu mempertimbangkan sifat minimal dari unit kontrol. Unit control
adalah mesin yang menjalankan seluruh komputer. Ini dilakukan hanya berdasarkan pengetahuan
instruksi untuk dieksekusi dan sifat hasil aritmatika dan logis operasi (mis., positif, overflow, dll.) Tidak
pernah melihat data yang sedang diproses atau hasil aktual yang dihasilkan. Dan itu mengendalikan
semuanya dengan beberapa control sinyal ke titik dalam prosesor dan beberapa sinyal kontrol ke bus
sistem.
Organisasi Prosesor Internal

Gambar 20.5 menunjukkan penggunaan berbagai jalur data. Kompleksitas jenis ini organisasi harus jelas.
Lebih khusus, semacam pengaturan bus internal, seperti yang disarankan pada Gambar 14.2 (Struktur
Internal CPU), akan digunakan. Menggunakan bus prosesor internal, Gambar 20.5 dapat disusun ulang
seperti yang ditunjukkan pada Gambar 20.6. Satu bus internal menghubungkan ALU dan semua register
prosesor. Gerbang dan sinyal kontrol disediakan untuk pergerakan data ke dan dari bus dari masing-
masing register. Sinyal kontrol tambahan mengontrol transfer data ke dan dari sistem (eksternal) bus dan
pengoperasian ALU. Dua register baru, berlabel Y dan Z, telah ditambahkan ke organisasi. Ini diperlukan
untuk operasi ALU yang tepat. Ketika operasi melibatkan dua operan dilakukan, satu dapat diperoleh dari
bus internal, tetapi lainnya harus diperoleh dari sumber lain. AC dapat digunakan untuk tujuan ini, tetapi
ini membatasi fleksibilitas sistem dan tidak akan bekerja dengan prosesor dengan beberapa general-
Tujuan register. Register Y menyediakan penyimpanan sementara untuk input lainnya. ALU adalah
sirkuit kombinatorial (lihat Bab 11) dengan no penyimpanan internal. Jadi, ketika sinyal kontrol
mengaktifkan fungsi ALU, input ke ALU ditransformasikan menjadi output. Karena itu, output ALU
tidak bisa terhubung langsung ke bus, karena output ini akan mengumpan balik ke input. Register Z
menyediakan penyimpanan output sementara. Dengan pengaturan ini, sebuah operasi untuk menambah
nilai dari memori ke AC akan memiliki langkah-langkah berikut:

Organisasi lain dimungkinkan, tetapi, secara umum, semacam bus internal atau set bus internal
digunakan. Penggunaan jalur data umum menyederhanakan tata letak interkoneksi dan kontrol prosesor.
Alasan praktis lainnya untuk penggunaan bus internal adalah untuk menghemat ruang.
Intel 8085

Untuk mengilustrasikan beberapa konsep yang diperkenalkan sejauh ini dalam bab ini, mari kita
pertimbangkan Intel 8085. Organisasinya ditunjukkan pada Gambar 20.7. Beberapa komponen kunci itu
mungkin tidak mandiri jelas adalah:

 Penambah alamat / penurun alamat: Logika yang dapat menambah 1 atau mengurangi 1 dari
isi stack pointer atau penghitung program. Ini menghemat waktu dengan menghindari
penggunaan ALU untuk tujuan ini.
 Kontrol interupsi: Modul ini menangani beberapa level sinyal interupsi.
 Kontrol I / O seri: Modul ini antarmuka ke perangkat yang berkomunikasi 1 bit pada suatu
waktu. Tabel 20.2 menggambarkan sinyal eksternal masuk dan keluar dari 8085. Ini adalah
terhubung ke bus sistem eksternal. Sinyal-sinyal ini adalah antarmuka antara 8085 prosesor dan
seluruh sistem (Gambar 20.8).
Unit kontrol diidentifikasi memiliki dua komponen berlabel (1) instruksi decoder dan penyandian siklus
mesin dan (2) pengaturan waktu dan kontrol. Diskusi dari komponen pertama ditangguhkan hingga
bagian selanjutnya. Inti dari kontrol unit adalah modul pengaturan waktu dan kontrol. Modul ini termasuk
jam dan menerima sebagai masukan instruksi saat ini dan beberapa sinyal kontrol eksternal. Keluarannya
terdiri sinyal kontrol ke komponen lain dari prosesor plus sinyal kontrol ke bus sistem eksternal. Waktu
operasi prosesor disinkronkan oleh jam dan dikontrol oleh unit kontrol dengan sinyal kontrol. Setiap
siklus instruksi dibagi menjadi dari satu hingga lima siklus mesin; setiap siklus mesin pada gilirannya
dibagi menjadi tiga lima negara. Setiap negara bagian bertahan satu siklus jam. Selama keadaan, prosesor
melakukan satu atau satu set mikro-simultan operasi sebagaimana ditentukan oleh sinyal kontrol. Jumlah
siklus mesin ditetapkan untuk instruksi yang diberikan tetapi bervariasi dari satu instruksi ke instruksi
lainnya. Siklus mesin didefinisikan setara dengan akses bus. Dengan demikian, jumlah siklus mesin untuk
instruksi tergantung pada berapa kali prosesor harus berkomunikasi dengan perangkat eksternal. Untuk
contoh, jika instruksi terdiri dari dua bagian 8-bit, maka dua siklus mesin adalah diminta untuk
mengambil instruksi. Jika instruksi itu melibatkan memori 1-byte atau I / O operasi, maka siklus mesin
ketiga diperlukan untuk eksekusi.
Gambar 20.9 memberikan contoh timing 8085, menunjukkan nilai eksternal sinyal kontrol. Tentu saja,
pada saat yang sama, unit kontrol menghasilkan kontrol internal sinyal yang mengontrol transfer data
internal. Diagram menunjukkan instruksi siklus untuk instruksi OUT. Tiga siklus mesin (M1, M2, M3)
diperlukan. Selama yang pertama, instruksi OUT diambil. Siklus mesin kedua mengambil bagian kedua
dari instruksi, yang berisi jumlah perangkat I / O yang dipilih untuk output. Selama siklus ketiga, isi AC
ditulis ke perangkat yang dipilih melalui bus data. Pulsa Address Latch Enabled (ALE) memberi sinyal
awal dari setiap mesin siklus dari unit kontrol. Denyut ALE memberitahu sirkuit eksternal. Selama waktu
keadaan T1 dari siklus mesin M1, unit kontrol mengatur sinyal IO / M untuk menunjukkan itu ini adalah
operasi memori. Selain itu, unit kontrol menyebabkan isi PC ditempatkan di bus alamat (A15 hingga A8)
dan bus alamat / data (AD7 sampai AD0). Dengan tepi jatuh dari pulsa ALE, modul-modul lain di bus
menyimpan alamatnya. Selama keadaan waktu T2, modul memori yang dialamatkan menempatkan
konten dari lokasi memori yang dialamatkan pada bus alamat / data. Unit kontrol mengatur Baca Kontrol
(RD) sinyal untuk menunjukkan membaca, tetapi menunggu hingga T3 untuk menyalin data dari bis. Ini
memberi waktu modul memori untuk meletakkan data di bus dan untuk sinyal level untuk stabil. Keadaan
akhir, T4, adalah kondisi diam bis selama prosesor menerjemahkan instruksi. Siklus mesin yang tersisa
melanjutkan dengan cara yang serupa.
IMPLEMENTASI KERAS
Kami telah membahas unit kontrol dalam hal input, output, dan fungsinya. Kita sekarang beralih ke topik
implementasi unit kontrol. Berbagai macam teknik Telah digunakan. Sebagian besar termasuk dalam
salah satu dari dua kategori:
 Implementasi bawaan
 Implementasi Microprogrammed
Dalam implementasi bawaan, unit kontrol pada dasarnya adalah mesin negara sirkuit. Sinyal logika
inputnya diubah menjadi seperangkat sinyal logika output, yang merupakan sinyal kontrol. Pendekatan ini
dibahas dalam bagian ini. Diprogram secara mikro implementasi adalah subjek Bab 21.

Input Unit Kontrol


Gambar 20.4 menggambarkan unit kontrol seperti yang telah kita bahas sejauh ini. Input kuncinya adalah
IR, jam, bendera, dan kontrol sinyal bus. Dalam hal bendera dan kontrol sinyal bus, setiap bit individual
biasanya memiliki beberapa makna (mis., overflow). Yang lain dua input, bagaimanapun, tidak secara
langsung bermanfaat bagi unit kontrol. Pertama-tama pertimbangkan IR. Unit kontrol menggunakan
opcode dan akan melakukan tindakan yang berbeda (mengeluarkan kombinasi sinyal kontrol yang
berbeda) untuk berbeda instruksi. Untuk menyederhanakan logika unit kontrol, harus ada input logika
unik untuk setiap opcode. Fungsi ini dapat dilakukan oleh decoder, yang mengambil kode input dan
menghasilkan output tunggal. Secara umum, dekoder akan memiliki input biner dan 2n keluaran biner.
Masing-masing dari 2n pola input yang berbeda akan mengaktifkan satu unik keluaran. Tabel 20.3 adalah
contoh untuk n = 4. Dekoder untuk unit kontrol biasanya akan harus lebih kompleks dari itu, untuk
memperhitungkan variabel- panjangnya opcodes. Sebuah contoh logika digital yang digunakan untuk
mengimplementasikan dekoder disajikan pada Bab 11. Bagian jam dari unit kontrol mengeluarkan urutan
pulsa berulang. Ini berguna untuk mengukur durasi mikro operasi. Intinya, titik pulsa clock harus cukup
lama untuk memungkinkan perambatan sinyal di sepanjang jalur data dan melalui sirkuit prosesor.
Namun, seperti yang telah kita lihat, kontrol unit memancarkan sinyal kontrol yang berbeda pada unit
waktu yang berbeda dalam satu instruksi siklus. Dengan demikian, kami ingin penghitung sebagai input
ke unit kontrol, dengan yang berbeda sinyal kontrol digunakan untuk T1, T2, dan sebagainya. Di akhir
siklus instruksi, unit kontrol harus mengumpan balik ke konter untuk menginisialisasi ulang di T1.
Dengan dua perbaikan ini, unit kontrol dapat digambarkan seperti pada Gambar 20.10.
Logika Unit Kontrol

Untuk menentukan implementasi bawaan unit kontrol, yang tersisa adalah membahas logika internal unit
kontrol yang menghasilkan sinyal kontrol output sebagai fungsi dari sinyal inputnya. Pada dasarnya, apa
yang harus dilakukan adalah, untuk setiap sinyal kontrol, untuk mendapatkan Boolean ekspresi sinyal itu
sebagai fungsi dari input. Ini paling baik dijelaskan oleh contoh. Mari kita perhatikan lagi contoh
sederhana kita yang diilustrasikan pada Gambar 20.5. Kita lihat pada Tabel 20.1 mikro operasi sinyal
urutan dan kontrol yang diperlukan untuk mengontrol tiga dari empat fase siklus instruksi. Mari kita
pertimbangkan sinyal kontrol tunggal, C5. Sinyal ini menyebabkan data dibaca bus data eksternal ke
MBR. Kita dapat melihat bahwa ini digunakan dua kali pada Tabel 20.1. Membiarkan kami
mendefinisikan dua sinyal kontrol baru, P dan Q, yang memiliki interpretasi berikut:
PQ = 00 Ambil Siklus

PQ = 01 Siklus Tidak Langsung

PQ = 10 Jalankan Siklus

PQ = 11 Siklus Interupsi Kemudian ekspresi Boolean berikut mendefinisikan

C5: C5 = P • Q • T2 + P • Q • T2

Artinya, sinyal kontrol C5 akan ditegaskan selama unit waktu kedua dari kedua ambil dan siklus tidak
langsung. Ungkapan ini tidak lengkap. C5 juga dibutuhkan selama siklus eksekusi. Sebagai contoh
sederhana kita, mari kita asumsikan bahwa hanya ada tiga instruksi itu baca dari memori: LDA, ADD,
dan AND. Sekarang kita dapat mendefinisikan C5 sebagai

C5 = P • Q • T2 + P • Q • T2 + P • Q • (LDA + ADD + DAN) • T2


Proses yang sama ini dapat diulang untuk setiap sinyal kontrol yang dihasilkan oleh prosesor. Hasilnya
akan menjadi seperangkat persamaan Boolean yang menentukan perilaku unit kontrol dan karenanya
prosesor. Untuk mengikat semuanya, unit kontrol harus mengontrol keadaan siklus instruksi. Seperti yang
disebutkan, pada akhir setiap sub siklus (ambil, tidak langsung, mengeksekusi, menyela), unit kontrol
mengeluarkan sinyal yang menyebabkan generator waktu untuk menginisialisasi ulang dan mengeluarkan
T1. Unit kontrol juga harus menetapkan nilai yang sesuai P dan Q untuk menentukan sub siklus
berikutnya yang akan dilakukan. Pembaca harus dapat menghargai itu dalam prosesor kompleks modern,
jumlah persamaan Boolean yang dibutuhkan untuk mendefinisikan unit kontrol sangat besar. Tugas
menerapkan rangkaian kombinatorial yang memenuhi semua persamaan ini menjadi sangat sulit.
Hasilnya adalah pendekatan yang jauh lebih sederhana, yang dikenal sebagai pemrograman mikro,
biasanya digunakan. Ini adalah pokok bahasan bab selanjutnya.

PERSYARATAN KUNCI, PERTANYAAN ULASAN, DAN MASALAH


Ketentuan Utama

bus control sinyal kontrol implementasi bawaan

jalur kontrol unit kontrol mikro- operasi

Tinjau Pertanyaan

20.1 Jelaskan perbedaan antara urutan tertulis dan urutan waktu dari suatu petunjuk.

20.2 Apa hubungan antara instruksi dan mikro operasi?

20.3 Apa fungsi keseluruhan dari unit kontrol prosesor?

20.4 Menguraikan tiga- langkah proses yang mengarah ke karakterisasi unit kontrol.

20.5 Apa tugas dasar yang dilakukan unit kontrol?

20.6 Berikan daftar input dan output khas dari unit kontrol.

20.7 Sebutkan tiga jenis sinyal kontrol.

20.8 Jelaskan secara singkat apa yang dimaksud dengan implementasi unit kontrol bawaan.

Masalah

20.1 ALU Anda dapat menambahkan dua register inputnya, dan secara logis dapat melengkapi bit baik
input register, tetapi tidak dapat mengurangi. Nomor harus disimpan dalam dua komplemen perwakilan.
Daftar mikro operasi unit kontrol Anda harus melakukan menyebabkan pengurangan.
20.2 Tunjukkan mikro-operasi dan mengontrol sinyal dengan cara yang sama seperti Tabel 20.1 untuk
prosesor pada Gambar 20.5 untuk instruksi berikut:

 Load Accumulator
 Simpan Akumulator
 Tambahkan ke Akumulator
 DAN ke Akumulator
 Melompat
 Melompat jika AC = 0
 Akumulator Komplemen

20.3 Asumsikan bahwa keterlambatan propagasi di sepanjang bus dan melalui ALU pada Gambar 20.6
adalah 20 dan 100 ns, masing-masing. Waktu yang diperlukan untuk register untuk menyalin data dari
bus adalah 10 ns. Jam berapa yang harus diizinkan Sebuah.

a. data dari satu register ke register lainnya?


b. penghitung program?

20.4 Tulis urutan mikro- operasi diperlukan untuk struktur bus pada Gambar 20.6 untuk menambahkan
nomor ke AC saat nomor tersebut Sebuah.

a. operan langsung;
b. langsung-alamatoperan;
c. tidak langsung-alamat operan.

20.5 Tumpukan diimplementasikan seperti yang ditunjukkan pada Gambar 20.11 (lihat Lampiran I untuk
diskusi tentang tumpukan). Tampilkan urutan mikro-operasi untuk Sebuah.

a. muncul;
b. tumpukan.
Kontrol yang Diprogram dengan Mikro
KONSEP DASAR
Microinstructions

Unit kontrol tampaknya merupakan perangkat yang cukup sederhana. Namun demikian, untuk
menerapkan control unit sebagai interkoneksi elemen logika dasar bukanlah tugas yang mudah. Desain
harus termasuk logika untuk mengurutkan melalui operasi mikro, untuk menjalankan operasi mikro,
untuk menafsirkan opcode, dan untuk membuat keputusan berdasarkan bendera ALU. Sulit untuk desain
dan uji perangkat keras seperti itu. Selain itu, desainnya relatif tidak fleksibel. Misalnya, sulit untuk
mengubah desain jika seseorang ingin menambahkan mesin baru petunjuk. Alternatif, yang telah
digunakan di banyak prosesor CISC, adalah menerapkan unit kontrol yang diprogram secara mikro.
Pertimbangkan Tabel 21.1. Selain penggunaan sinyal kontrol, masing-masing operasi mikro dijelaskan
dalam notasi simbolis. Notasi ini terlihat seperti mencurigakan bahasa pemrograman. Sebenarnya itu
adalah bahasa, yang dikenal sebagai pemrograman mikro bahasa. Setiap baris menggambarkan
serangkaian operasi mikro yang terjadi pada satu waktu dan dikenal sebagai microinstruction. Urutan
instruksi dikenal sebagai mikroprogram, atau firmware. Istilah terakhir ini mencerminkan fakta bahwa
mikroprogram sedang di tengah jalan antara perangkat keras dan perangkat lunak. Lebih mudah untuk
mendesain dalam firmware daripada perangkat keras, tetapi lebih sulit untuk menulis program firmware
daripada program perangkat lunak. Bagaimana kita bisa menggunakan konsep pemrograman mikro untuk
menerapkan control satuan? Pertimbangkan itu untuk setiap operasi mikro, semua yang diizinkan oleh
unit control lakukan adalah menghasilkan satu set sinyal kontrol. Jadi, untuk setiap operasi mikro,
masing-masing control jalur yang berasal dari unit kontrol menyala atau mati. Kondisi ini dapat, dari
tentu saja, diwakili oleh digit biner untuk setiap garis kontrol. Jadi kita bisa membangun kata kontrol di
mana setiap bit mewakili satu baris kontrol. Kemudian setiap operasi mikro akan diwakili oleh pola 1s
dan 0s yang berbeda di kata kontrol. Misalkan kita merangkai urutan kata kontrol untuk mewakili urutan
operasi mikro yang dilakukan oleh unit kontrol. Selanjutnya, kita harus mengenali bahwa urutan operasi
mikro tidak diperbaiki. Terkadang kita punya siklus tidak langsung; terkadang kita tidak melakukannya.
Jadi mari kita letakkan kata-kata kontrol kita dalam memori, dengan setiap kata memiliki alamat unik.
Sekarang tambahkan bidang alamat ke setiap control kata, menunjukkan lokasi kata kontrol berikutnya
yang akan dieksekusi jika tertentu kondisi benar (mis., bit tidak langsung dalam instruksi referensi
memori adalah 1). Juga, tambahkan beberapa bit untuk menentukan kondisinya.
Hasilnya dikenal sebagai microinstruction horisontal, contohnya ditunjukkan pada Gambar 21.1a. Format
microinstruction atau control word adalah sebagai mengikuti. Ada satu bit untuk setiap jalur kontrol
prosesor internal dan satu bit untuk masing-masing jalur kontrol bus sistem. Ada bidang kondisi yang
menunjukkan kondisi di bawah yang harus ada cabang, dan ada bidang dengan alamat microinstruction
untuk dieksekusi selanjutnya ketika cabang diambil. Mikroinstruksi semacam itu diartikan sebagai
berikut:

1. Untuk menjalankan mikro-instruksi ini, hidupkan semua garis kontrol yang ditunjukkan oleh 1
sedikit; tinggalkan semua garis kontrol yang ditunjukkan oleh 0 bit. Sinyal kontrol yang
dihasilkan akan menyebabkan satu atau lebih operasi mikro dilakukan.
2. Jika kondisi yang ditunjukkan oleh bit kondisi salah, jalankan instruksi mikro berikutnya
berurutan.
3. Jika kondisi yang ditunjukkan oleh bit kondisi benar, microinstruction berikutnya untuk
dieksekusi ditunjukkan di bidang alamat.

Gambar 21.2 menunjukkan bagaimana kata-kata kontrol atau microinstructions ini bisa diatur dalam
memori kontrol. Mikroinstruksi dalam setiap rutin harus dijalankan secara berurutan. Setiap rutinitas
diakhiri dengan instruksi cabang atau lompat ke mana harus pergi selanjutnya Ada siklus eksekusi khusus
yang hanya bertujuan untuk menandakan bahwa salah satu rutin instruksi mesin (DAN, TAMBAH, dan
sebagainya) adalah untuk dieksekusi selanjutnya, tergantung pada opcode saat ini. Memori kontrol dari
Gambar 21.2 adalah deskripsi singkat dari yang lengkap pengoperasian unit kontrol. Ini mendefinisikan
urutan operasi mikro menjadi dilakukan selama setiap siklus (mengambil, tidak langsung, mengeksekusi,
mengganggu), dan itu menentukan urutan siklus ini. Jika tidak ada yang lain, notasi ini akan menjadi
perangkat yang bermanfaat untuk mendokumentasikan fungsi unit kontrol untuk komputer tertentu. Tapi
itu benar lebih dari itu. Ini juga merupakan cara untuk menerapkan unit kontrol.
Unit Kontrol yang Diprogram Secara Mikro

Memori kontrol pada Gambar 21.2 berisi program yang menjelaskan perilaku dari unit kontrol. Oleh
karena itu kita dapat mengimplementasikan unit kontrol dengan mudah menjalankan program itu. Gambar
21.3 menunjukkan elemen-elemen kunci dari implementasi tersebut. Sekumpulan dari microinstructions
disimpan dalam memori kontrol. Daftar alamat kontrol berisi alamat microinstruction berikutnya untuk
dibaca. Ketika microinstruction adalah membaca dari memori kontrol, itu ditransfer ke register buffer
kontrol. Tangan kiri bagian dari register itu (lihat Gambar 21.1a) terhubung ke garis kontrol yang berasal
dari unit kontrol. Dengan demikian, membaca instruksi mikro dari memori control sama dengan
mengeksekusi microinstruction itu. Elemen ketiga yang ditunjukkan pada gambar adalah unit pengurutan
yang memuat register alamat kontrol dan mengeluarkan perintah baca.

Mari kita periksa struktur ini secara lebih rinci, seperti yang digambarkan dalam Gambar 21.4.
Perbandingan ini dengan Gambar 21.3, kita melihat bahwa unit kontrol masih memiliki input yang sama
(IR, Bendera ALU, jam) dan keluaran (sinyal kontrol). Unit kontrol berfungsi sebagai berikut:

1. Untuk menjalankan instruksi, unit logika sequencing mengeluarkan perintah BACA ke memori
kontrol.
2. Kata yang alamatnya ditentukan dalam register alamat kontrol dibaca register buffer kontrol.
3. Konten register buffer kontrol menghasilkan sinyal kontrol dan informasi alamat berikutnya
untuk unit logika sequencing.
4. Unit logika sequencing memuat alamat baru ke register alamat kontrol berdasarkan informasi
alamat berikutnya dari register buffer kontrol dan Bendera ALU.

Semua ini terjadi selama satu jam pulsa. Langkah terakhir yang baru saja didaftar perlu diuraikan. Pada
akhir setiap instruksi mikro, unit logika sequencing memuat alamat baru ke alamat kontrol daftar.
Bergantung pada nilai flag ALU dan register buffer kontrol, satu dari tiga keputusan dibuat:

 Dapatkan instruksi selanjutnya: Tambahkan 1 ke register alamat kontrol.


 Melompat ke rutin baru berdasarkan pada microinstruction lompat: Memuat alamat bidang
register kontrol buffer ke register alamat kontrol.
 Beralih ke rutin instruksi mesin: Muat register alamat kontrol berdasarkan opcode di IR.

Gambar 21.4 menunjukkan dua modul berlabel decoder. Dekoder atas diterjemahkan opcode IR ke alamat
memori kontrol. Dekoder bawah adalah tidak digunakan untuk microinstructions horisontal tetapi
digunakan untuk microinstructions vertikal (Gambar 21.1b). Seperti yang disebutkan, dalam
microinstruction horisontal setiap bit dalam bidang kontrol melekat pada garis kontrol. Dalam
microinstruction vertikal, sebuah kode digunakan untuk setiap tindakan yang akan dilakukan [mis., MAR
d (PC)], dan diterjemahkan oleh decoder kode ini menjadi sinyal kontrol individual. Keuntungan dari
microinstructions vertikal adalah bahwa mereka lebih kompak (lebih sedikit bit) dari mikrostruktur
horisontal, dengan mengorbankan sejumlah kecil tambahan logika dan waktu tunda.

Kontrol Wilkes

Seperti disebutkan, Wilkes pertama kali mengusulkan penggunaan unit kontrol yang diprogram secara
mikro pada tahun 1951 [WILK51]. Proposal ini kemudian dielaborasi menjadi lebih rinci desain
[WILK53]. Adalah instruktif untuk memeriksa proposal mani ini. Konfigurasi yang diusulkan oleh
Wilkes digambarkan pada Gambar 21.5. Jantung kota sistem adalah sebagian matriks diisi dengan dioda.
Selama siklus mesin, satu baris Matriks diaktifkan dengan pulsa. Ini menghasilkan sinyal pada titik-titik
di mana dioda berada hadir (ditunjukkan oleh titik dalam diagram). Bagian pertama dari baris
menghasilkan control sinyal yang mengontrol operasi prosesor. Bagian kedua menghasilkan alamat baris
yang akan berdenyut dalam siklus mesin berikutnya. Jadi, setiap baris dari matriks adalah salah satu
instruksi mikro, dan tata letak matriks adalah memori kontrol. Di awal siklus, alamat baris yang akan diisi
berisi di Register I. Alamat ini adalah input ke decoder, yang ketika diaktifkan oleh sebuah clock pulse,
mengaktifkan satu baris matriks. Tergantung pada sinyal kontrol, opcode dalam register instruksi atau
bagian kedua dari baris berdenyut adalah masuk ke Register II selama siklus. Register II kemudian
diamankan ke Register I oleh sebuah pulsa jam. Pulsa clock bergantian digunakan untuk mengaktifkan
baris matriks dan untuk mentransfer dari Register II ke Register I. Pengaturan dua register diperlukan
karena dekoder hanyalah rangkaian kombinatorial; hanya dengan satu register, output akan menjadi input
selama siklus, menyebabkan kondisi tidak stabil. Skema ini sangat mirip dengan pendekatan
pemrograman mikro horizontal dijelaskan sebelumnya (Gambar 21.1a). Perbedaan utama adalah ini:
Dalam deskripsi sebelumnya, register alamat kontrol dapat ditambah satu untuk mendapatkan yang
berikutnya alamat. Dalam skema Wilkes, alamat berikutnya tercantum dalam instruksi mikro. Untuk
mengizinkan percabangan, satu baris harus berisi dua bagian alamat, dikendalikan oleh sinyal bersyarat
(mis., bendera), seperti yang ditunjukkan pada gambar. Setelah mengajukan skema ini, Wilkes
memberikan contoh penggunaannya untuk diterapkan unit kontrol dari mesin sederhana. Contoh ini,
desain pertama yang diketahui dari prosesor mikroprogram, layak diulang di sini karena menggambarkan
banyak prinsip-prinsip kontemporer pemrograman mikro. Prosesor mesin hipotetis (mesin contoh oleh
Wilkes) termasuk register berikut:

Selain itu, ada tiga register dan dua flag 1-bit yang hanya dapat diakses oleh control satuan. Register
adalah sebagai berikut:

Tabel 21.1 mencantumkan set instruksi mesin untuk contoh ini. Tabel 21.2 adalah set lengkap
microinstructions, diekspresikan dalam bentuk simbolis, yang mengimplementasikan unit kontrol.
Dengan demikian, total 38 microinstructions adalah semua yang diperlukan untuk didefinisikan sistem
sepenuhnya. Kolom lengkap pertama memberikan alamat (nomor baris) dari setiap instruksi mikro.
Alamat-alamat yang terkait dengan opcode diberi label. Jadi, ketika opcode untuk instruksi add (A)
ditemui, microinstruction di lokasi 5 dijalankan. Kolom 2 dan 3 menyatakan tindakan yang harus diambil
oleh ALU dan control unit masing-masing. Setiap ekspresi simbolis harus diterjemahkan ke dalam satu
set control sinyal (microinstruction bits). Kolom 4 dan 5 ada hubungannya dengan pengaturan dan
penggunaan dua bendera (sandal jepit). Kolom 4 menentukan sinyal yang mengatur bendera. Untuk
contoh, (1) Cs berarti bahwa nomor bendera 1 diatur oleh bit tanda nomor dalam register C. Jika kolom 5
berisi pengidentifikasi bendera, maka kolom 6 dan 7 berisi keduanya alamat microinstruction alternatif
yang akan digunakan. Kalau tidak, kolom 6 menentukan alamat microinstruction berikutnya yang akan
diambil. Instruksi 0 hingga 4 merupakan siklus pengambilan. Microinstruction 4 menyajikan opcode ke
decoder, yang menghasilkan alamat dari instruksi mikro yang sesuai ke instruksi mesin yang akan
diambil. Pembaca harus bisa menyimpulkan fungsi lengkap unit kontrol dari studi yang cermat pada
Tabel 21.2.

Keuntungan dan kerugian

Keuntungan utama dari penggunaan pemrograman mikro untuk menerapkan control unit adalah yang
menyederhanakan desain unit kontrol. Jadi, keduanya lebih murah dan lebih sedikit kesalahan yang
cenderung diimplementasikan. Unit kontrol bawaan harus mengandung logika kompleks untuk
mengurutkan melalui banyak operasi mikro dari siklus instruksi. Di sisi lain, decoder dan unit logika
sequencing dari kontrol yang diprogram secara mikro Unit adalah potongan logika yang sangat
sederhana. Kerugian utama dari unit mikroprogram adalah bahwa ia akan agak lebih lambat dari unit
bawaan teknologi yang sebanding. Meskipun demikian, pemrograman mikro adalah teknik dominan
untuk menerapkan unit kontrol di murni Arsitektur CISC, karena kemudahan implementasi. Prosesor
RISC, dengan mereka format instruksi yang lebih sederhana, biasanya menggunakan unit kontrol bawaan.
Kami sekarang memeriksa pendekatan yang diprogram secara lebih terperinci. Tabel 21.2
Microinstructions untuk Contoh Wilkes Notasi: A, B, C,. . . berdiri untuk berbagai register di unit register
aritmatika dan kontrol. C ke D menunjukkan bahwa sirkuit switching menghubungkan keluaran register C
ke register masukan D; (D + A) ke C menunjukkan bahwa register output A terhubung ke satu input dari
unit tambah (output dari D secara permanen terhubung ke input lainnya), dan output dari penambah untuk
mendaftar C. Simbol numerik n dalam tanda kutip (mis., "n") adalah singkatan dari sumber yang
outputnya adalah angka n dalam satuan digit paling tidak signifikan.
* Pergeseran kanan. Sirkuit pensaklaran dalam unit aritmatika diatur sedemikian rupa sehingga digit
paling signifikan dari register C ditempatkan di tempat register B yang paling signifikan selama operasi
mikro shift kanan, dan yang paling banyak digit signifikan register C (digit tanda) diulangi (sehingga
membuat koreksi untuk angka negatif). † Shift kiri. Sirkuit switching juga diatur untuk melewatkan digit
paling signifikan dari register B ke tempat paling tidak signifikan register C selama operasi mikro shift
kiri.

21.2 URUTAN MIKROINSTRUKSI


Dua tugas dasar yang dilakukan oleh unit kontrol mikroprogram adalah sebagai berikut:

 Microinstruction sequencing: Dapatkan microinstruction berikutnya dari kontrol ingatan.


 Eksekusi Microinstruction: Menghasilkan sinyal kontrol yang diperlukan untuk mengeksekusi
instruksi mikro.

Dalam mendesain unit kontrol, tugas-tugas ini harus dipertimbangkan bersama, karena keduanya
mempengaruhi format instruksi mikro dan waktu unit kontrol. Di bagian ini, kami akan fokus pada urutan
dan mengatakan sesedikit mungkin tentang format dan masalah waktu. Masalah-masalah ini diperiksa
secara lebih rinci di bagian selanjutnya. Pertimbangan Desain Dua masalah yang terlibat dalam desain
teknik sequencing microinstruction: ukuran instruksi mikro dan waktu pembuatan alamat. Perhatian
pertama sudah jelas; meminimalkan ukuran memori kontrol mengurangi biaya komponen itu.
Kekhawatiran kedua hanyalah keinginan untuk mengeksekusi microinstructions secepat mungkin. Dalam
menjalankan mikroprogram, alamat dari microinstruction berikutnya adalah dieksekusi dalam salah satu
kategori ini:

 Ditentukan oleh register instruksi


 Alamat berurutan berikutnya
 Cabang

Kategori pertama muncul hanya sekali per siklus instruksi, tepat setelah instruksi diambil Kategori kedua
adalah yang paling umum di sebagian besar desain. Namun demikian desain tidak dapat dioptimalkan
hanya untuk akses berurutan. Cabang, keduanya bersyarat dan tanpa syarat, adalah bagian penting dari
program mikro. Selanjutnya, microinstruction urutannya cenderung pendek; satu dari setiap tiga atau
empat mikro bisa menjadi cabang [SIEW82]. Karena itu, penting untuk merancang yang ringkas, hemat
waktu teknik untuk microinstruction branching.
Teknik Sequencing

Berdasarkan microinstruction saat ini, bendera kondisi, dan isi register instruksi, alamat memori kontrol
harus dihasilkan untuk instruksi mikro berikutnya. Berbagai macam teknik telah digunakan. Kita dapat
mengelompokkannya menjadi tiga kategori umum, seperti yang diilustrasikan dalam Gambar 21.6 hingga
21.8. Kategori-kategori ini adalah berdasarkan format informasi alamat dalam microinstruction:
 Dua bidang alamat
 Bidang alamat tunggal
 Format variable

Pendekatan paling sederhana adalah menyediakan dua bidang alamat di setiap microinstruction. Gambar
21.6 menunjukkan bagaimana informasi ini digunakan. Multiplexer disediakan yang berfungsi sebagai
tujuan untuk kedua bidang alamat ditambah register instruksi. Berdasarkan input pemilihan alamat,
multiplexer mentransmisikan opcode atau salah satu dari dua alamat ke register alamat kontrol (CAR).
Mobil itu adalah kemudian diterjemahkan untuk menghasilkan alamat microinstruction berikutnya.
Pemilihan alamat sinyal disediakan oleh modul logika cabang yang inputnya terdiri dari control unit flags
plus bits dari bagian kontrol dari microinstruction. Meskipun pendekatan dua alamat sederhana, itu
membutuhkan lebih banyak bit di microinstruction daripada pendekatan lain. Dengan beberapa logika
tambahan, penghematan bisa jadi tercapai. Pendekatan umum adalah memiliki bidang alamat tunggal
(Gambar 21.7). Dengan pendekatan ini, opsi untuk alamat berikutnya adalah sebagai berikut:

 Bidang alamat
 Kode register instruksi
 Alamat berurutan berikutnya

Sinyal pemilihan alamat menentukan opsi mana yang dipilih. Pendekatan ini mengurangi jumlah bidang
alamat menjadi satu. Perhatikan, bagaimanapun, bahwa bidang alamat sering tidak akan digunakan.
Dengan demikian, ada beberapa inefisiensi dalam pengkodean microinstruction skema. Pendekatan lain
adalah menyediakan dua microinstruction yang sama sekali berbeda format (Gambar 21.8). Satu bit
menunjuk format mana yang sedang digunakan. Jadi satu format, bit yang tersisa digunakan untuk
mengaktifkan sinyal kontrol. Dalam format lain, beberapa bit menggerakkan modul logika cabang, dan
bit yang tersisa menyediakan alamat. Dengan format pertama, alamat berikutnya adalah urutan
selanjutnya alamat atau alamat yang berasal dari register instruksi. Dengan yang kedua format, baik
cabang bersyarat atau tanpa syarat sedang ditentukan. Satu Kerugian dari pendekatan ini adalah bahwa
satu siklus penuh dikonsumsi dengan masing-masing microinstruction cabang. Dengan pendekatan lain,
generasi alamat terjadi sebagai bagian dari siklus yang sama dengan generasi sinyal kontrol,
meminimalkan memori kontrol akses. Pendekatan yang baru saja dijelaskan bersifat umum. Implementasi
spesifik akan sering melibatkan variasi atau kombinasi teknik-teknik ini.

Address Generation

Kami telah melihat masalah pengurutan dari sudut pandang pertimbangan format dan persyaratan logika
umum. Sudut pandang lain adalah mempertimbangkan berbagai cara di mana alamat selanjutnya dapat
diturunkan atau dihitung. Tabel 21.3 mencantumkan berbagai teknik pembuatan alamat. Ini bisa saja
dibagi menjadi teknik eksplisit, di mana alamat tersebut tersedia secara eksplisit di instruksi mikro, dan
teknik implisit, yang membutuhkan logika tambahan untuk menghasilkan alamat. Kami pada dasarnya
telah berurusan dengan teknik eksplisit. Dengan dua bidang pendekatan, dua alamat alternatif tersedia
dengan masing-masing instruksi mikro. Menggunakan baik bidang alamat tunggal atau format variabel,
berbagai instruksi cabang dapat diimplementasikan. Instruksi cabang bersyarat tergantung pada tipe
berikut informasi:

 Bendera ALU
 Bagian dari opcode atau bidang mode alamat dari instruksi mesin
 Bagian dari register yang dipilih, seperti bit tanda
 Status bit dalam unit kontrol

Beberapa teknik implisit juga biasa digunakan. Salah satunya, pemetaan, diperlukan dengan hampir
semua desain. Bagian opcode dari instruksi mesin harus dipetakan ke alamat microinstruction. Ini terjadi
hanya sekali per instruksi siklus. Teknik implisit yang umum adalah teknik yang melibatkan
menggabungkan atau menambahkan dua bagian dari alamat untuk membentuk alamat lengkap.
Pendekatan ini diambil untuk keluarga IBM S / 360 [TUCK67] dan digunakan pada banyak model S /
370. Kami akan gunakan IBM 3033 sebagai contoh. Register alamat kontrol pada IBM 3033 adalah 13 bit
panjang dan diilustrasikan pada Gambar 21.9. Dua bagian alamat dapat dibedakan. Orde tertinggi 8 bit
(00-07) biasanya tidak berubah dari satu siklus instruksi mikro ke yang berikutnya. Selama pelaksanaan
microinstruction, 8 bit ini disalin langsung dari bidang 8-bit dari microinstruction (bidang BA) menjadi 8
bit orde tertinggi register alamat kontrol. Ini mendefinisikan satu blok 32 microinstructions dalam control
ingatan. Sisa 5 bit dari register alamat kontrol diatur untuk menentukan alamat spesifik dari
microinstruction yang akan diambil selanjutnya. Masing-masing bit ini ditentukan oleh bidang 4-bit
(kecuali satu adalah bidang 7-bit) dalam instruksi mikro saat ini; bidang menentukan kondisi untuk
mengatur bit yang sesuai. Sebagai contoh, sedikit dalam register alamat kontrol mungkin diatur ke 1 atau
0 tergantung pada apakah a carry terjadi pada operasi ALU terakhir.
Pendekatan terakhir yang tercantum dalam Tabel 21.3 disebut kontrol residual. Ini Pendekatan ini
melibatkan penggunaan alamat microinstruction yang sebelumnya telah disimpan dalam penyimpanan
sementara dalam unit kontrol. Misalnya, beberapa microinstruction set dilengkapi dengan fasilitas
subrutin. Daftar atau tumpukan internal register digunakan untuk menyimpan alamat pengirim. Contoh
dari pendekatan ini diambil pada LSI-11, yang sekarang kita periksa.

LSI-11 Microinstruction Sequencing

LSI-11 adalah versi komputer mikro dari PDP-11, dengan komponen utama sistem berada di satu papan.
LSI-11 diimplementasikan menggunakan mikroprogram unit kontrol [SEBE76]. LSI-11 memanfaatkan
mikroinstruksi 22-bit dan memori kontrol 2K 22-bit kata-kata. Alamat microinstruction berikutnya
ditentukan dalam satu dari lima cara:

 Alamat berurutan berikutnya: Dengan tidak adanya instruksi lain, unit kontrol register alamat
kontrol bertambah 1.
 Pemetaan kode sandi: Di awal setiap siklus instruksi, instruksi mikro berikutnya alamat
ditentukan oleh opcode.
 Fasilitas subrutin: Dijelaskan saat ini.
 Pengujian interupsi: Instruksi mikro tertentu menentukan tes untuk interupsi. Jika interupsi telah
terjadi, ini menentukan alamat microinstruction berikutnya.
 Cabang: microinstructions cabang bersyarat dan tanpa syarat digunakan. Fasilitas satu tingkat
subrutin disediakan.

Satu bit di setiap microinstruction didedikasikan untuk tugas ini. Ketika bit diatur, register kembali 11-bit
dimuat dengan isi yang diperbarui dari register alamat kontrol. Mikroinstruksi selanjutnya yang
menentukan pengembalian akan menyebabkan register alamat kontrol diambil dari daftar kembali.
Pengembalian adalah salah satu bentuk instruksi cabang tanpa syarat. Bentuk lain dari cabang tanpa
syarat menyebabkan bit register alamat kontrol dimuat dari 11 bit dari microinstruction. Instruksi cabang
bersyarat memanfaatkan dari kode uji 4-bit dalam instruksi mikro. Kode ini menentukan pengujian
berbagai Kode kondisi ALU untuk menentukan keputusan cabang. Jika kondisinya tidak benar, alamat
berurutan berikutnya dipilih. Jika itu benar, 8 bit urutan terendah dari register alamat kontrol diambil dari
8 bit dari microinstruction. Ini memungkinkan bercabang dalam halaman 256 kata memori. Seperti dapat
dilihat, LSI-11 termasuk fasilitas pengurutan alamat yang kuat dalam unit kontrol. Ini memungkinkan
mikroprogrammer fleksibilitas yang cukup dan dapat memudahkan tugas pemrograman mikro. Di sisi
lain, pendekatan ini membutuhkan lebih banyak unit kontrol logika daripada kemampuan yang lebih
sederhana.

EKSEKUSI MICROINSTRUCTION
Siklus microinstruction adalah peristiwa dasar pada prosesor yang diprogram secara mikro. Setiap siklus
terdiri dari dua bagian: ambil dan jalankan. Bagian pengambilan ditentukan oleh generasi alamat
microinstruction, dan ini telah dibahas pada bab sebelumnya bagian. Bagian ini berkaitan dengan
pelaksanaan microinstruction. Ingatlah bahwa efek dari pelaksanaan microinstruction adalah
menghasilkan sinyal kontrol. Beberapa sinyal kontrol ini menunjuk ke internal prosesor. Itu sinyal yang
tersisa pergi ke bus kontrol eksternal atau antarmuka eksternal lainnya. Sebagai fungsi insidental, alamat
microinstruction berikutnya ditentukan. Deskripsi sebelumnya menyarankan organisasi dari unit kontrol
yang ditunjukkan pada Gambar 21.10. Versi Gambar 21.4 yang sedikit direvisi ini menekankan fokus ini
bagian. Modul utama dalam diagram ini sekarang harus jelas. Urutannya Modul logika berisi logika untuk
melakukan fungsi-fungsi yang dibahas pada bab sebelumnya bagian. Ini menghasilkan alamat
microinstruction berikutnya, menggunakan sebagai input register instruksi, flag ALU, register alamat
kontrol (untuk penambahan), dan register buffer kontrol. Yang terakhir dapat memberikan alamat aktual,
bit kontrol, atau kedua. Modul ini digerakkan oleh jam yang menentukan waktu instruksi mikro siklus.
Modul logika kontrol menghasilkan sinyal kontrol sebagai fungsi dari beberapa bit dalam
microinstruction. Harus jelas bahwa format dan konten microinstruction menentukan kompleksitas modul
logika kontrol.

Taksonomi Informasi Mikro

Mikroinstruksi dapat diklasifikasikan dalam berbagai cara. Perbedaan yang umum dibuat dalam literatur
meliputi:

 Vertikal / horizontal
 Dikemas / dibongkar
 Pemrograman mikro keras / lunak
 Pengkodean langsung / tidak langsung

Semua ini ada pada format microinstruction. Tidak satu pun dari istilah ini yang memiliki telah digunakan
secara konsisten, tepat dalam literatur. Namun, pemeriksaan dari pasangan kualitas ini berfungsi untuk
menerangi alternatif desain mikroinstruksi. Dalam paragraf berikut, pertama-tama kita melihat masalah
desain utama yang mendasarinya semua pasangan karakteristik ini, dan kemudian kita melihat konsep
yang disarankan oleh masing-masing pasangan. Dalam proposal asli oleh Wilkes [WILK51], setiap bit
dari microinstruction baik secara langsung menghasilkan sinyal kontrol atau secara langsung
menghasilkan sedikit alamat selanjutnya. Kita telah melihat, di bagian sebelumnya, bahwa skema
pengurutan alamat yang lebih kompleks, menggunakan bit mikro instruksi lebih sedikit, adalah mungkin.
Skema ini membutuhkan modul logika sequencing yang lebih kompleks. Ada semacam trade-off yang
serupa untuk bagian dari microinstruction yang berkaitan dengan sinyal kontrol. Dengan pengkodean
mengontrol informasi, dan kemudian mendekodekannya untuk menghasilkan sinyal kontrol, control bit
kata dapat disimpan. Bagaimana pengkodean ini dilakukan? Untuk menjawab itu, pertimbangkan bahwa
ada total K sinyal kontrol internal dan eksternal yang berbeda untuk digerakkan oleh control satuan.
Dalam skema Wilkes, bit K dari microinstruction akan didedikasikan untuk tujuan ini. Ini memungkinkan
semua kombinasi 2K dari sinyal control dihasilkan selama siklus instruksi apa pun. Tetapi kita bisa
melakukan lebih baik dari ini jika kita amati bahwa tidak semua kombinasi yang mungkin akan
digunakan. Contohnya termasuk pengikut:

 Dua sumber tidak dapat dipagari ke tujuan yang sama (mis., C2 dan C8 in Angka 21.5).
 Sebuah register tidak dapat menjadi sumber dan tujuan (mis., C5 dan C12 in Gambar 21.5).
 Hanya satu pola sinyal kontrol yang dapat disajikan kepada ALU pada suatu waktu.
 Hanya satu pola sinyal kontrol yang dapat disajikan ke kontrol eksternal bus pada suatu waktu.

Jadi, untuk prosesor yang diberikan, semua kombinasi yang memungkinkan dari sinyal control dapat
didaftar, memberikan beberapa nomor Q <2K kemungkinan. Ini bisa disandikan dengan bit log2 Q
minimum, dengan (log2 Q) <K. Ini akan menjadi seketat mungkin bentuk pengkodean yang
mempertahankan semua kombinasi yang diizinkan dari sinyal kontrol. Di praktiknya, bentuk pengodean
ini tidak digunakan, karena dua alasan:

 Sama sulitnya untuk memprogram sebagai skema yang diterjemahkan murni (Wilkes). Poin ini
adalah dibahas lebih lanjut saat ini.
 Ini membutuhkan modul logika kontrol yang kompleks dan lambat.

Sebaliknya, beberapa kompromi dibuat. Ini ada dua macam:

 Lebih banyak bit daripada yang benar-benar diperlukan digunakan untuk menyandikan yang
mungkin kombinasi.
 Beberapa kombinasi yang diizinkan secara fisik tidak dimungkinkan untuk disandikan.

Jenis kompromi yang terakhir memiliki efek mengurangi jumlah bit. Jaring hasilnya, bagaimanapun,
adalah menggunakan lebih dari bit log2 Q. Pada subbab berikutnya, kita akan membahas teknik
penyandian khusus. Itu Sisa dari ayat ini berkaitan dengan efek pengodean dan beragamnya istilah yang
digunakan untuk menggambarkannya. Berdasarkan pendahulunya, kita dapat melihat bahwa bagian sinyal
kontrol dari format microinstruction jatuh pada spektrum. Pada satu ekstrim, ada satu bit untuk setiap
sinyal kontrol; di sisi lain, format yang sangat dikodekan digunakan. Tabel 21.4 menunjukkan bahwa
karakteristik lain dari unit kontrol yang diprogram dengan mikro juga termasuk dalam spektrum dan
bahwa spektrum ini, pada umumnya, ditentukan oleh derajat-of-encoding spektrum. Pasangan item kedua
dalam tabel agak jelas. Skema Wilkes murni akan membutuhkan bit terbanyak. Juga harus jelas bahwa
ekstrem ini menyajikan tampilan paling detail dari perangkat keras. Setiap sinyal kontrol dapat dikontrol
secara individual oleh mikroprogrammer. Pengkodean dilakukan sedemikian rupa untuk menggabungkan
fungsi atau sumber daya, sehingga mikroprogrammer melihat prosesor dengan lebih tinggi, lebih sedikit
tingkat detail. Selain itu, pengkodean dirancang untuk memudahkan pemrograman mikro beban. Sekali
lagi, harus jelas bahwa tugas memahami dan mengatur penggunaan semua sinyal kontrol adalah yang
sulit. Seperti yang disebutkan, salah satunya konsekuensi dari pengkodean, biasanya, adalah untuk
mencegah penggunaan tertentu kombinasi yang diijinkan.

Oleh karena itu, semua karakteristik yang tercantum dalam Tabel 21.4 termasuk dalam spectrum strategi
desain. Secara umum, desain yang jatuh ke ujung kiri spectrum dimaksudkan untuk mengoptimalkan
kinerja unit kontrol. Desain menuju ujung kanan lebih peduli dengan mengoptimalkan proses
pemrograman mikro. Memang, set mikroinstrasi dekat ujung kanan spektrum sangat mirip set instruksi
mesin. Contoh yang baik dari ini adalah desain LSI-11, yang akan dijelaskan nanti di bagian ini.
Biasanya, ketika tujuannya hanya untuk mengimplementasikan unit kontrol, desain akan berada di dekat
ujung kiri spektrum. Desain IBM 3033, dibahas saat ini, berada dalam kategori ini. Seperti yang akan kita
bahas nanti, beberapa sistem mengizinkan variasi pengguna untuk membangun mikroprogram yang
berbeda menggunakan fasilitas microinstruction yang sama. Dalam kasus-kasus terakhir, desain
cenderung jatuh di dekat ujung kanan spektrum. Kita sekarang dapat menangani beberapa terminologi
yang diperkenalkan sebelumnya. Tabel 21.4 menunjukkan bagaimana tiga pasang istilah ini berhubungan
dengan spektrum instruksi mikro. Intinya, semua pasangan ini menggambarkan hal yang sama tetapi
menekankan karakteristik desain yang berbeda. Tingkat pengemasan berhubungan dengan tingkat
identifikasi antara yang diberikan tugas kontrol dan bit instruksi mikro spesifik. Saat bit menjadi lebih
penuh, Jumlah bit yang diberikan mengandung lebih banyak informasi. Dengan demikian, pengemasan
berkonotasi pengodean. Istilah horisontal dan vertikal berhubungan dengan lebar relatif dari
microinstructions. [SIEW82] menyarankan sebagai pedoman praktis bahwa microinstructions vertikal
memiliki panjang kisaran 16 hingga 40 bit dan bahwa microinstructions horisontal memiliki panjang di
kisaran 40 hingga 100 bit. Istilah pemrograman mikro keras dan lunak digunakan untuk menyarankan
tingkat kedekatan dengan sinyal kontrol yang mendasari dan tata letak perangkat keras. Hard
mikroprogram umumnya diperbaiki dan berkomitmen untuk memori hanya-baca. Lembut mikroprogram
lebih mudah berubah dan menyarankan pemrogram mikro pengguna. Sepasang istilah lain yang
disebutkan di awal ayat ini merujuk pengkodean langsung versus tidak langsung, subjek yang sekarang
kita bahas.

Pengkodean Microinstruction

Dalam praktiknya, unit kontrol yang diprogram dengan mikroprosesor tidak dirancang menggunakan
murni tanpa kode atau format microinstruction horisontal. Setidaknya beberapa tingkat penyandian adalah
digunakan untuk mengurangi lebar kontrol memori dan untuk menyederhanakan tugas pemrograman
mikro. Teknik dasar untuk pengkodean diilustrasikan pada Gambar 21.11a. Instruksi mikro diatur sebagai
seperangkat bidang. Setiap bidang berisi kode, yang, setelah decoding, mengaktifkan satu atau lebih
sinyal kontrol. Mari kita perhatikan implikasi dari tata letak ini. Ketika microinstruction dieksekusi, setiap
bidang didekodekan dan menghasilkan sinyal kontrol. Jadi, dengan N bidang, N tindakan simultan
ditentukan. Setiap tindakan menghasilkan aktivasi satu atau lebih sinyal kontrol. Secara umum, tetapi
tidak selalu, kami ingin mendesain format sehingga setiap sinyal kontrol diaktifkan oleh tidak lebih dari
satu bidang. Namun, jelas, setiap sinyal kontrol harus diaktifkan di setidaknya satu bidang. Sekarang
perhatikan bidang individual. Bidang yang terdiri dari L bit dapat berisi satu kode 2L, yang masing-
masing dapat dikodekan ke pola sinyal kontrol yang berbeda. Karena hanya satu kode yang dapat muncul
dalam satu bidang pada satu waktu, kode tersebut saling eksklusif, dan, oleh karena itu, tindakan yang
mereka sebabkan adalah saling eksklusif.
Desain format instruksi mikro yang dikodekan sekarang dapat dinyatakan dengan sederhana ketentuan:

 Mengatur format ke dalam bidang independen. Artinya, setiap bidang menggambarkan satu set
tindakan (pola sinyal kontrol) sehingga tindakan dari bidang yang berbeda dapat terjadi secara
bersamaan.
 Tentukan setiap bidang sedemikian rupa sehingga tindakan alternatif yang dapat ditentukan oleh
bidang saling eksklusif. Artinya, hanya satu dari tindakan yang ditentukan untuk bidang yang
diberikan dapat terjadi pada suatu waktu.

Dua pendekatan dapat diambil untuk mengatur microinstruction yang dikodekan ke dalam bidang:
fungsional dan sumber daya. Metode pengkodean fungsional mengidentifikasi fungsi di dalam mesin dan
menetapkan bidang berdasarkan jenis fungsi. Misalnya kalau beragam sumber dapat digunakan untuk
mentransfer data ke akumulator, satu bidang bisa ditunjuk untuk tujuan ini, dengan masing-masing kode
menentukan sumber yang berbeda. Sumber encoding memandang mesin sebagai terdiri dari satu set
sumber daya independen dan mencurahkan satu bidang untuk masing-masing (mis., I / O, memori, ALU).
Aspek lain dari pengkodean adalah apakah itu langsung atau tidak langsung (Gambar 21.11b). Dengan
pengkodean tidak langsung, satu bidang digunakan untuk menentukan interpretasi bidang lain. Misalnya,
pertimbangkan ALU yang mampu melakukan delapan berbeda operasi aritmatika dan delapan operasi
shift yang berbeda. Bidang 1-bit bisa jadi digunakan untuk menunjukkan apakah operasi shift atau
aritmatika akan digunakan; bidang 3-bit akan menunjukkan operasi. Teknik ini umumnya menyiratkan
dua tingkat decoding, meningkatkan penundaan propagasi. Gambar 21.12 adalah contoh sederhana dari
konsep-konsep ini. Asumsikan prosesor dengan akumulator tunggal dan beberapa register internal,
seperti penghitung program dan sementara mendaftar untuk input ALU. Gambar 21.12a menunjukkan
format yang sangat vertikal. Pertama 3 bit menunjukkan jenis operasi, 3 selanjutnya mengkodekan
operasi, dan final 2 pilih register internal. Gambar 21.12b adalah pendekatan yang lebih horizontal
pengkodean masih digunakan. Dalam hal ini, berbagai fungsi muncul di bidang yang berbeda.

Eksekusi Mikroinstruksi LSI-11

LSI-11 [SEBE76] adalah contoh yang baik dari pendekatan microinstruction vertikal. Kita lihat pertama
di organisasi unit kontrol, kemudian pada format instruksi mikro. organisasi unit kontrol lsi-11 LSI-11
adalah anggota pertama Keluarga PDP-11 yang ditawarkan sebagai prosesor papan tunggal. Papan berisi
tiga chip LSI, sebuah bus internal yang dikenal sebagai microinstruction bus (MIB), dan beberapa lainnya
logika interfacing tambahan. Gambar 21.13 menggambarkan, dalam bentuk yang disederhanakan,
organisasi prosesor LSI-11. Tiga chip tersebut adalah data, kontrol, dan chip kontrol toko. Chip data
berisi 8-bit ALU, dua puluh enam register 8-bit, dan penyimpanan untuk beberapa kondisi kode. Enam
belas register digunakan untuk mengimplementasikan delapan tujuan umum 16-bit register PDP-11.
Lainnya termasuk kata status program, memori register alamat (MAR), dan register buffer memori.
Karena ALU berurusan dengan hanya 8 bit pada satu waktu, dua melewati ALU diperlukan untuk
mengimplementasikan a Operasi aritmatika PDP-11 16-bit. Ini dikendalikan oleh program mikro. Chip
atau chip penyimpanan kontrol berisi memori kendali selebar 22-bit. Itu chip kontrol berisi logika untuk
mengurutkan dan mengeksekusi mikroinstruksi. Saya t berisi register alamat kontrol, register data kontrol,
dan salinan register instruksi mesin. MIB mengikat semua komponen. Selama microinstruction fetch, the
chip kontrol menghasilkan alamat 11-bit ke MIB. Toko kontrol diakses, memproduksi microinstruction
22-bit, yang ditempatkan pada MIB. Orde rendah 16 bit pergi ke chip data, sedangkan 18 bit pesanan
rendah pergi ke chip kontrol. Itu orde tinggi 4 bit mengontrol fungsi papan prosesor khusus. Gambar
21.14 memberikan tampilan yang masih disederhanakan tetapi lebih detail pada LSI-11 unit kontrol:
gambar mengabaikan batas chip individu. Urutan alamat Skema yang dijelaskan dalam Bagian 21.2
diimplementasikan dalam dua modul. Urutan keseluruhan kontrol disediakan oleh modul kontrol urutan
mikroprogram, yang mampu

penambahan register alamat microinstruction dan melakukan tanpa syarat ranting. Bentuk-bentuk lain
dari perhitungan alamat dilakukan oleh terjemahan terpisah array Ini adalah sirkuit kombinatorial yang
menghasilkan alamat berdasarkan pada microinstruction, instruksi mesin, konter program
microinstruction, dan register interupsi.

Array terjemahan mulai digunakan pada kesempatan berikut:

 Opcode digunakan untuk menentukan awal microroutine.


 Pada waktu yang tepat, bit mode alamat dari microinstruction diuji melakukan pengalamatan
yang tepat.
 Kondisi interupsi diuji secara berkala.
 Konstruksi mikro cabang bersyarat dievaluasi.
format mikro-konstruksi lsi-11

LSI-11 menggunakan sangat vertical format microinstruction, yang lebarnya hanya 22 bit.
Microinstruction diset dengan kuat menyerupai set instruksi mesin PDP-11 yang diimplementasikan.
Desain ini dimaksudkan untuk mengoptimalkan kinerja unit kontrol dalam batasan desain vertikal, mudah
diprogram. Tabel 21.5 mencantumkan beberapa dari mikro-konstruksi LSI-11. Gambar 21.15
menunjukkan format mikroinstruksi LSI-11 22-bit. Orde tinggi 4 bit mengontrol fungsi khusus pada
papan prosesor. Bit terjemahan memungkinkan array terjemahan untuk memeriksa interupsi yang
tertunda. Bit register pengembalian beban digunakan pada akhir microroutine menyebabkan alamat
microinstruction selanjutnya dimuat dari register kembali. 16 bit sisanya digunakan untuk operasi mikro
yang sangat terkodekan. Format mirip dengan instruksi mesin, dengan opcode panjang variabel dan satu
atau lebih lebih banyak operan.
Eksekusi Mikroinstruksi IBM 3033

Memori kontrol IBM 3033 standar terdiri dari 4K kata. Paruh pertama ini (0000–07FF) berisi
microinstructions 108-bit, sedangkan sisanya (0800–0FFF) digunakan untuk menyimpan
microinstructions 126-bit. Formatnya digambarkan pada Gambar 21.16.
Meskipun ini adalah format yang agak horisontal, pengkodean masih digunakan secara luas. Itu bidang
kunci dari format itu dirangkum dalam Tabel 21.6. ALU beroperasi berdasarkan input dari empat register
khusus yang tidak terlihat oleh pengguna, A, B, C, dan D. Format microinstruction berisi bidang untuk
memuat register ini dari register yang terlihat oleh pengguna, menjalankan fungsi ALU, dan menentukan
register yang terlihat oleh pengguna untuk menyimpan hasilnya. Ada juga bidang untuk memuat dan
menyimpan data antara register dan memori. Mekanisme urutan untuk IBM 3033 dibahas dalam Bagian
21.2.
BAB III
PENUTUP
A.Kesimpulan
Secara tradisional, komputer telah dilihat sebagai mesin berurutan. Sebagian besar bahasa
pemrograman komputer membutuhkan pemrogram untuk menentukan algoritma sebagai urutan
instruksi. Prosesor menjalankan program dengan menjalankan instruksi mesin secara berurutan
dan satu per satu. Setiap instruksi dieksekusi dalam urutan operasi (ambil instruksi, ambil
operan, lakukan operasi, simpan hasil).
Pandangan komputer ini tidak pernah sepenuhnya benar. Pada tingkat operasi mikro,
beberapa sinyal kontrol dihasilkan secara bersamaan. Instruksi pipelining, setidaknya sampai
tumpang tindih mengambil dan menjalankan operasi, telah ada untuk waktu yang lama.
Keduanya adalah contoh dari melakukan operasi independen secara paralel. Pendekatan ini
diambil lebih lanjut dengan organisasi superscalar, yang mengeksploitasi paralelisme tingkat
instruksi. Dengan mesin superscalar, ada beberapa unit eksekusi dalam satu prosesor, dan ini
dapat mengeksekusi beberapa instruksi dari program yang sama secara paralel.

B.Saran
Penulis tetunya masih menyadari jika masalah diatas masih terdapat banyak kesalahan
dan jauh dari kesempurnaan. Penulis akan memperbaiki masalah tersebut dengan berpedoman
pada banyak sumber serta kritik yang membangun dari para pembaca.
DAFTAR PUSTAKA

William Stalling.2016.Computer Organization and Architecture Designing for Performance


Tenth Edition.Hoboken.Pearson Education,Inc

Anda mungkin juga menyukai