Selasa, 29 Desember 2020

Tugas Resum Perkuliahan 13

 

ORGANISASI & ARSITEKTUR KOMPUTER 

PERTEMUAN KE- 13


Materi micro-programmed control (Organisasi Komuter).


Microprogrammed Control


Istilah micro-program pertama kali muncul padatahun 1950 dan diperkenalkan oleh M. V. Wilkes Pada hard-wired diperlukan perancangan ulang perangkat keras jika serangkaian instruksi
dikembangkan. Sebaliknya, pada micro-programmed, serangkaian instruksi mikro (program-mikro) disimpan dalam ROM sehingga sebuah instruksi dapat diubah dengan mengubah program mikro yang bersesuaian dengan instruksi tersebut dan kelompok instruksi dapat dikembangkan dengan hanya menyertakan ROM tambahan yang berisi program-mikro bersesuaian.

Pada microprogrammed, serangkaian instruksi mikro (program-mikro) disimpan dalam ROM sehingga sebuah instruksi dapat diubah dengan mengubah program mikro yang bersesuaian dengan instruksi tersebut dan kelompok instruksi dapat dikembangkan dengan hanya menyertakan ROM tambahan yang berisi program-mikro bersesuaian.

Microprogrammed Control : Menggunakan sekumpulan instruksi untuk mengontrol operasi yang kompleks. Rangkaian instruksi tersebut disebut dengan microprogramming atau firmware.

Implementation
- Seluruh unit kontrol dapat membangkitkan sekumpulan sinyal kontrol.
- Tiap saluran kontrol tersebut dalam keadaan on atau off.
- Kondisi tersebut direpresentasikan oleh digit biner untuk masing-masing saluran kontrolnya.
- Terdapat control word untuk setiap operasi mikro.
- Memiliki sejumlah control words untuk tiap instruksi mesin.
- Menambahkan field alamat untuk menjelaskan micro instruction selanjutnya, untuk menspesifikasikan kondisi.

Komponen-komponen Control Unit Microprogrammed
1. Instruction Register
- Menyimpan instruksi register mesin yang dijalankan.
2. Control Store berisi microprogrammed
- Untuk semua instruksi mesin.
- Untuk startup mesin.
- 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

Control Unit Function
- Untuk mengeksekusi suatu instruksi, unit urutan logika mengeluarkan perintah READ ke memori kontrol.
- Word yang memiliki alamat yang dispesifikasikan pada register alamat kontrol dibaca ke dalam register buffer kontrol.
- Isi register buffer kontrol menghasilkan sinyal-sinyal kontrol dan informasi alamat berikutnya untuk unit urutan logika.
- Unit logika pengurutan memuatkan sebuah alamat ke dalam register alamat kontrol yang didasarkan pada informasi alamat berikutnya dari register buffer kontrol dan flag ALU.

Pengurutan instruksi mikro mengambil instruksi-instruksi mikro berikutnya dari unit kontrol.
Eksekusi instruksi mikro Menghasilkan sinyal-sinyal kontrol yang diperlukan untuk mengeksekusi instruksi mikro.
Keduanya sama-sama dipertimbangkan dalam merancang sebuah unit kontrol karena akan
mempengaruhi format instruksi mikro dan pewaktuan unit kontrol.

Pertimbangan Perancangan
  1. Ukuran instruksi mikro.
  2. Peminimalan ukuran memori kontrol akan mengurangi biaya yang diperlukan u/ komponen tersebut.
  3. Waktu yang diperlukan untuk pembuatan alamat (address generation time)
  4. Ditentukan oleh instruction register
  5. Terjadi sekali per siklus instruksi, setelah sebuah instruksi diambil.
Teknik Pengurutan
Berdasar instruksi mikro saat itu, flag-flag kondisi, isi IR, alamat memori kontrol harus dibuat untuk keperluan instuksi mikro berikutnya. Berdasar pada format informasi alamat yang terdapat di dalam instruksi mikro. Dua field alamat Field alamat tunggal Format variabel.

Perancangan Control Unit
Rancangan hardwired sejumlah gerbang(gate), counter dan register saling dihubungkan untuk menghasilkansinyal-sinyal kontrol. Tiaprancangan memerlukan sekelompok piranti logika dan hubungan yang berbeda-bedaRancangan microprogrammed dibentukserangkaian instruksi mikro, yang disebut
sebagai program mikro (micro-program) untuk setiap instruksi mikro dan disimpan dalamsebuah memori kontrol (biasanya ROM) dalam Control Unit.


Micro-programmed Control

1. Suatu control unit dapat dikatakan microprogrammable apabila memori kontrolnya dapat dimodifikasi oleh pemakai untuk menghasilkan instruksi makro yang dibentuk sesuai keinginan pemakai.
2. Apabila tidak, kelompok instruksi tetap, maka disebut kelompok instruksi dalam control unit hard-wired


Micro-instruction Types

1. Each micro-instruction specifies single microoperations to be performed (vertical micro-programming)
2. Each micro-instruction specifies many different micro-operations to be performed in parallel (horizontal micro-programming)
 Terdapat satu bit bagi setiap saluran kontrol CPU internal dan satu bit bagi setiap saluran kontrol bus sistem

Advantages and Disadvantages of Microprogramming

1. Dapat menyederhanakan rancangan unit kontrol
2. Rancangan menjadi lebih murah
3. Kesalahan yang terjadi lebih sedikit




NAMA  : M. ANANG MA'RUF
PRODY : TEKNIK INFORMATIKA 20(B)
NIM      : 23420003

Orkom Perkuliahan 13

Selasa, 22 Desember 2020

Tugas Resum Perkuliahan 12

 ORGANISASI & ARSITEKTUR KOMPUTER 

PERTEMUAN KE- 12


Materi Unit Control (Organisasi Komuter).


1.    Pengertian Control Unit

Control Unit merupakan bagian dari microprosesor dimana fungsi dari CU adalah untuk memberikan arahan maupun pengawasan serta kontrol terhadap operasi yang dilakukan di bagian ALU (Arithmetic Logical Unit)  yang terdapat di dalam CPU. Output dari CU ini akan mengatur aktivitas dari bagian lainnya dari perangkat CPU tersebut. Jika dilihat dari desain computer sebelumnya, CU diimplementasikan sebagai ad-hoc logic yang susah untuk didesain. Namun sekarang, CU diimplementasikan sebagai sebuah microprogram yang disimpan di dalam tempat penyimpanan kontrol (control store). Control unit dari sebuah prosesor memiliki 2 peran penting. Pertama, control unit mengatur processor agar melakukan semua micro-operation dalam urutan yang benar. Kedua, control unit menghasilkan control signal yang memastikan supaya semua micro-operation dieksekusi.
Control signal tersebut secara umum menyebabkan salah satu dari hal berikut: pembukaan atau penutupan dari gerbang-gerbang logika, transfer data antara register-register, dan pengoperasian ALU.

2.    Tugas CU

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

3.    Macam-Macam CU

Sampai detik ini terdapat 2 macam jenis CU dimana tiap tiap CU memiliki desain maupun fungsi yang berbeda berikut macam macam dari CU :
1.    Single-Cycle CU
Proses di CUl ini hanya terjadi dalam satu clock cycle, artinya setiap instruksi ada pada satu cycle, maka dari itu tidak memerlukan state. Dengan demikian fungsi boolean masing-masing control line hanya merupakan fungsi dari opcode saja. Clock cycle harus mempunyai panjang yang sama untuk setiap jenis instruksi. Ada dua bagian pada unit kontrol ini, yaitu proses men-decodeopcode untuk mengelompokkannya menjadi 4 macam instruksi (yaitu di gerbang AND), dan pemberian sinyal kontrol berdasarkan jenis instruksinya (yaitu gerbang OR). Keempat jenis instruksi adalah “R-format” (berhubungan dengan register), “lw” (membaca memori), “sw” (menulis ke memori), dan “beq” (branching). Sinyal kontrol yang dihasilkan bergantung pada jenis instruksinya. Misalnya jika melibatkan memori ”R-format” atau ”lw” maka akan sinyal ”Regwrite” akan aktif. Hal lain jika melibatkan memori “lw” atau “sw” maka akan diberi sinyal kontrol ke ALU, yaitu “ALUSrc”. Desain single-cycle ini lebih dapat bekerja dengan baik dan benar tetapi cycle ini tidak efisien.
2.    Multi-Cycle CU
Berbeda dengan unit kontrol yang single-cycle, unit kontrol yang multi-cycle lebih memiliki banyak fungsi. Dengan memperhatikan state dan opcode, fungsi boolean dari masing-masing outputcontrol line dapat ditentukan. Masing-masingnya akan menjadi fungsi dari 10 buah input logic. Jadi akan terdapat banyak fungsi boolean, dan masing-masingnya tidak sederhana. Pada cycle ini, sinyal kontrol tidak lagi ditentukan dengan melihat pada bit-bit instruksinya. Bit-bit opcode memberitahukan operasi apa yang selanjutnya akan dijalankan CPU; bukan instruksi cycle selanjutnya.

4.    Operasi Control Unit

Pada Control Unit terdapat operasi yaitu Siklus Intruksi. Instruksi  merupakan bentuk dari pengeksekusian langkah langkah kecil yang biasa disebut dengan Siklus fetch, Siklus Eksekusi, Siklus Pengambilan Tak Langsung, dan Siklus Interrupt.
Masing-masing Siklus  masih dapat diuraikan kembali menjadi langkah – langkah  yang lebih kecil lagi, yaitu micro-operation. Suatu micro-operation biasanya berupa transfer antar register, transfer antara register dan interface eksternal (seperti system bus), atau suatu operasi ALU biasa ( aritmetik dan logika).

5.    Pengertian Operasi Mikro

Di dalam CU terdapat Operasi yang disebut Operasi Mikro dimana operasi tingkat rendah yang dapat dilakukan oleh komputer atau CPU sehingga fungsi-fungsi operasi akan dihasilkan untuk memindahkan data antar register. Salah satu cara dalam melakukan operasi mikro tersebut dengan menggunakan bahasa transfer register / Register Transfer Language (RTL). RTL adalah sebuah bahasa yang digunakan untuk menjabarkan atau melaksanakan operasi mikro. Untuk mengungkapkan bahasa RTL ini dapat digunakan notasi RTL yang merupakan aturan penulisan pemberian instruksi RTL.
Operasi Mikro mengatur fungsi-fungsi sebagai berikut :
1.    Membuka/menutup suatu gerbang ( gate ) dari sebuah register ke sebuah bus
2.    Mentransfer data sepanjang 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

6.    Siklus Pengambilan/Fetch

Tahap Tahap dari Siklus Pengambilan yaitu:
1.    Pada saat siklus pengambilan (fetch cycle), instruksi dibaca dari memori.
2.    PC berisi alamat instruksi berikutnya yang akan diambil.
3.    Alamat ini akan dipindahkan ke MAR dan ditaruh di bus alamat.
4.    Unit kontrol meminta pembacaan memori dan hasilnya disimpan di bus data dan disalin ke MBR dan kemudian dipindahkan ke IR.
5.    PC naik nilainya 1, sebagai persiapan untuk pengambilan selanjutnya.
6.    Siklus selesai, unit kontrol memeriksa isi IR untuk  menentukan apakah IR berisi operand specifier yang menggunakan pengalamatan tak langsung.
Siklus Fetch dalam Operasi Mikro
T1 : MAR (PC)
T2 : MBR Memori PC (PC) + 1
T3 : IR (MBR)

7.    Siklus Pengambilan Tak Langsung

Proses/ Tahap Tahap Siklus Pengambilan Tak Langsung yaitu:
1.    N bit paling kanan pada MBR, yang berisi referensi alamat, dipindahkan ke MAR.
2.    Unit kontrol meminta pembacaan memori, agar mendapatkan alamat operand yang diinginkan ke dalam MBR.
3.    Siklus meliputi pemindahan data di antara register-register, pembacaan atau penulisan dari memori atau I/O, atau penggunaan ALU.
Siklus Tak Langsung dalam Operasi Mikro
T1 : MAR (IR(Alamat))
T2 : MBR Memori
T3 : IR (Alamat) (MBR(Alamat))

8.    Siklus Interrupt

1.    isi PC dipindahkan ke MBR untuk kemudian dituliskan ke dalam memori.
2.    Lokasi memori khusus yang dicadangkan untuk keperluan ini dimuatkan ke MAR dari unit control.
3.    Lokasi ini berupa stack pointer.
4.    PC dimuatkan dengan alamat rutin interrupt.
5.    Akibatnya siklus intruksi berikutnya akan mulai mengambil instruksi yang sesuai.

Siklus Interrupt dalam Operasi Mikro

T1 : MAR (PC)
T2 : MBR Alamat-simpan PC Alamat-rutin
T3 : IR (MBR)

9.    Siklus Eksekusi

Siklus Eksekusi adalah proses dari CPU untuk mengerjakan instruksi yang sudah dijemput dari main memory dan sudah berada di IR register.Control unit di CPU mengartikan instruksi tersebut, melaksanakan operasi yang harus dilakukan, seperti penjemputan/penambilan data dari main memory, mengirim instruksi ke ALU untuk melakukan operasi aritmatika atau logika dan menyimpan hasil pengolahan kembali ke main memory.    
Siklus Eksekusi dalam Operasi Mikro
1.    Penambahan (ADD)
ADD R1,X=Menambahkan isi lokasi X ke register R1
T1 : MAR (IR(Alamat))
T2 : MBR Memori
T3 : IR (R1)+(MBR)
2.    ISZ = Isi lokasi X ditambahkan dengan 1. Apabila hasilnya sama dengan nol, maka instruksi berikutnya dilompati.
T1 : MAR (IR(Alamat))
T2 : MBR Memori
T3 : IR (MBR) + 1
T4 : Memori (MBR)

10.    Jenis Jenis Sinyal Kontrol

1.    Clock (satu instruksi operasi mikro persiklus clock)
2.    Instruction Register (Opcode setiap instruksi dan menentukan instuksi mikro yang akan dilakukan)
3.    Tags (Menunjukkan status CPU dan hasil dari operasi sebelumnya)
4.    Pada BUS Kendali (Interupsi dan Sinyal Acknowledgment) Pada Ouput dalam CPU (Pergerakan Data dan Mengaktifkan fungsi Tertentu)
5.    Melalui BUS Kendali (Ke memori dan Ke I/O)

11.    Input Pada Unit Control:

1.    Clock 
Clock yaitu cara unit control dalam menjaga waktunya. Unit control   menyebabkan sebuah operasi mikro ( atau sejumslah operasi mikro yang bersamaan) dibentuk bagi setiap pulsa waktu. Pulsa ini dikenal sebagai waktu siklus prosesor.
2.    Register instruksi 
Register instruksi merupakan Opcode instruksi saat itu digunakan untuk menentukan operasi mikro mana yang akan dilakukan selama siklus eksekusi.
3.    Flag
Flag ini diperlukan oleh unit control untuk menentukan status prosesor dan hasil     operasi ALU sebelumnya.
4.    Sinyal control untuk mengontrol bus
Bagian bus control bus system memberikan sinyal-sinyal ke unit control, seperti sinyal-sinyal interupsi dan acknowledgement.

12.    Output Pada Unit Control

1.    Sinyal control didalam prosesor, terdiri dari dua macam yaitu : 
a)    Sinyal-sinyal yang menyebabkan data dipindahkan dari register yang satu keregister yang lainnya dan,  
b)    Sinyal-sinyal yang dapat mengaktifasi fungsi-fungsi ALU tertentu
2.    Sinyal control bagi Bus Control , sinyal ini terdiri dari dua macam yaitu :
a)    Sinyal control bagi memori dan,
b)    Sinyal control bagi modul-modul I/O.

13.    Implementasi Hardwired

Unit kontrol merupakan rangkaian kombinatorial. Sinyal-sinyal logika inputnya akan didekodekan menjadi sinyal-sinyal logika output, yang merupakan sinyal-sinyal kontrol ke sistem komputer. Sinyal-sinyal input tersebut, seperti clock, flag, register instruction, dan sinyal kontrol merupakan input bagi unit kontrol untuk mengetahui status komputer. Sinyal keluaran yang dihasilkan akan mengendalikan sistem kerja komputer.
N buah input biner akan menghasilkan 2N output biner. Setiap instruksi memiliki opcode yang yang berbeda-beda. Opcode yang berbeda dalam instruksi akan menghasilkan sinyal kontrol yang berbeda pula. Pewaktu unit kontrol mengeluarkan rangkaian pulsa yang periodik.
Pulsa waktu ini digunakan untuk mengukur durasi setiap operasi mikro yang dijalankan CPU, intinya digunakan untuk sinkronisasi kerja masing-masing bagian. Masalah dalam Merancang Implementasi Hardwired:
1.    Memiliki kompleksitas dalam pengurutan dan operasi mikronya
2.    Sulit didesain dan dilakukan pengetesan
3.    Tidak fleksibel
4.    Sulit untuk menambahkan instruksi baru
Jadi secara garis besar:
1.    Intinya unit control merupakan rangkaian kombinatorial
2.    Sinyal-sinyal logika inputnya akan dikodekan menjadi sekumpulan sinyal-sinyal logika output yang merupakan sinyal-sinyal kontrol ke system computer
3.    Input unit control meliputi sinyal-sinyal register instruksi, pewaktu, flag dan sinyal bus control
4.    Sinyal-sinyal tersebut sebagai masukkan bagi unit control dalam mengetahui status computer
5.    Selanjutnya dikodekan manghasilkan sinyal keluaran untuk mengendalikan system kerja computer
6.    n buah input biner akan menghasilkan 2n output biner
7.    setiap instruksi memiliki opcode yang berbeda – beda
8.    opcode yang berbeda dalam setiap instruksi akan menghasilkan sinyal control yang berbeda pula
9.    pewaktu unit control mengeluarkan rangkaian pulsa yang periodic
10.    pulsa waktu ini digunakan untuk mengukur durasi setiap operasi mikro yang dijalankan CPU, intinya digunakan untuk sinkronisasi kerja masing – masing bagian\

14.    Implementasi Microprogrammed

Implementasi yang paling sering digunakan saat ini adalah implementasi microprogrammed. Unit kontrol memerlukan sebuah memori untuk menyimpan program kontrolnya. Fungsi–fungsi pengontrolan dilakukan berdasarkan program kontrol yang tersimpan pada unit kontrol. Selain itu, fungsi–fungsi pengontrolan tidak berdasarkan dekode dari input unit kontrol lagi. Teknik ini dapat menjawab kesulitan–kesulitan yang ditemui dalam implementasi hardwired.
Jadi secara garis besar:
1.    Unit control memerlukan sebuah memori untuk menyimpan program controlnya
2.    Fungsi-fungsi pengontrolan dilakukan berdasarkan program control yang tersimpan pada unit control
3.    Fungsi-fungsi pengontrolan tidak berdasarkan decode dari input unit control lagi
4.    Teknik ini dapat menjawab kesulitan-kesulitan yang ditemui dalam implementasi hardwired

RANGKUMAN
Control Unit merupakan bagian dari microprossesor yang terdapat di dalam CPU yang berfungsi sebagai pengarah, pengontrol serta sebagai pengawas jalannya proses ALU (Arithmetic Logical Unit) pada CPU. Control Unit mempunyai peran yang sangat penting pada prosesor karena ia memiliki tugas untuk mengatur processor agar melakukan semua micro-operation dalam urutan yang benar dan Control Unit yang  menghasilkan Control Signal yang memastikan supaya semua micro-operation dieksekusi dengan benar. Terdapat 2 jenis  Control Unit yaitu Single Cycle dan Multi Cycle CU Serta terdapat beberapa Micro Operasi di dalam  Siklus instruksi :  Fetch, Fetch tidak langsung, siklus interrupt, serta siklus eksekusi. Pengimplementasian Control Unit dapat dibagi dua yaitu Pengimplementasian Hardwired Unit Control serta Pengimplementasian Microprogrammed Unit Control.



NAMA : M. ANANG MA'RUF
PRODI : TEKNIK INFORMATIKA 20(B)
NIM     : 23420003

Orkom Perkuliahan 12

Selasa, 15 Desember 2020

Tugas Resum Perkuliahan 11

 ORGANISASI & ARSITEKTUR KOMPUTER 

PERTEMUAN KE- 11

1. Pengertian

Superscalar adalah sebuah unitprocessor yang dapat mengeksekusi dua atau lebih operasi scalar dalm bentuk paralel. Superscalar merupakan salah satu rancangan untuk meningkatkan kecepatan CPU.

Kebanyakan dari komputer saat ini menggunakan mekanisme superscalar ini. Standar pipeline yang digunakan adalah untuk pengolahan bilangan matematika integer (bilangan bulat, bilangan yang tidak memiliki pecahan), kebanyakan CPU juga memiliki kemampuan untuk pengolahan untuk data floating point (bilangan berkoma). Pipeline yang mengolah integer dapat juga digunakan untuk mengolah data bertipe floating point ini, namun untuk aplikasi tertentu, terutama untuk aplikasi keperluan ilmiah CPU yang memiliki kemampuan pengolahan floating point dapat meningkatkan kecepatan prosesnya secara dramatis.

Peristiwa menarik yang bisa dilakukan dengan metoda superscalar ini adalah dalam hal memperkirakan pencabangan instruksi (brach prediction) serta perkiraan eksekusi perintah (speculative execution). Peristiwa ini sangat menguntungkan buat program yang membutuhkan pencabangan dari kelompok intruksi yang dijalankankannya.

Program yang terdiri dari kelompok perintah bercabang ini sering digunakan dalam pemrograman. Contohnya dalam menentukan aktifitas yang dilakukan oleh suatu sistem berdasarkan umur seseorang yang sedang diolahnya, katakanlah jika umur yang bersangkutan lebih dari 18 tahun, maka akan diberlakukan instruksi yang berhubungan dengan umur tersebut, anggaplah seseorang tersebut dianggap telah dewasa, sedangkan untuk kondisi lainnya dianggap belum dewasa. Tentu perlakuannya akan dibedakan sesuai dengan sistem yang sedang dijalankan.

Lalu apa yang dilakukan oleh CPU untuk hal ini? Komputer akan membandingkan nilai umur data yang diperolehnya dengan 18 tahun sehingga komputer dapat menentukan langkah dan sikap yang harus diambilnya berdasarkan hasil perbandingan tersebut. Sikap yang diambil tentu akan diambil berdasarkan pencabangan yang ada.

Pada CPU yang mendukung perintah pencabangan ini, CPU membutuhkan lumayan banyak clock cycle, mengingat CPU menempatkan semuanya pada pipeline dan menemukan perintah berikutnya yang akan dieksekusinya. Sirkuit untuk branch prediction melakukan pekerjaan ini bekerja sama dengan pipeline, yang dilakukan sebelum proses di ALU dilaksanakan, dan memperkirakan hasil dari pencabangan tersebut.

Jika CPU berfikir bahwa branch akan menuju suatu cabang, biasanya berdasarkan pekerjaan sebelumnya, maka perintah berikutnya sudah dipersiapkan untuk dieksekusi berikut data-datanya, bahkan dengan adanya pipeline ini, bila tidak diperlukan suatu referensi dari instruksi terakhir, maka bisa dilaksanakan dengan segera, karena data dan instruksi yang dibutuhkan telah dipersiapkan sebelumnya.

Dalam hal speculative execution, artinya CPU akan menggunakan melakukan perhitungan pada pipeline yang berbeda berdasarkan kemungkinan yang diperkirakan oleh komputer. Jika kemungkinan yang dilakukan oleh komputer tepat, maka hasilnya sudah bisa diambil langsung dan tinggal melanjutkan perintah berikutnya, sedangkan jika kemungkinan yang diperkirakan oleh komputer tidak tepat, maka akan dilaksanakan kemungkinan lain sesuai dengan logika instruksi tersebut.

Teknik yang digunakan untuk pipeline dan superscalar ini bisa melaksanakan branch prediction dan speculative execution tentunya membutuhkan ekstra transistor yang tidak sedikit untuk hal tersebut.

Sebagai perbandingan, komputer yang membangkitkan pemrosesan pada PC pertama yang dikeluarkan oleh IBM pada mesin 8088 memiliki sekitar 29.000 transistor. Sedangkan pada mesin Pentium III, dengan teknologi superscalar dan superpipeline, mendukung branch prediction, speculative execution serta berbagai kemampuan lainnya memiliki sekitar 7,5 juta transistor. Beberapa CPU terkini lainnya seperti HP 8500 memiliki sekitar 140 juta transistor.

Superscalar ini mampu menjlankan Instruction Level Parallelism dengan satu prosesor. Superscalar dapat diaplikasikan di RISC dan CISC, tapi pada umumnya RISC.

2. Alasan desain Superscalar

Sebagian besar operasi menggunakan besaran/nilai skalar Operasi ini memungkinkan peningkatan kinerja sistem hingga level tertentu  Superscalar Implementation.

Proses fetch dari beberapa instruksi secara bersamaan. Logika untuk menentukan ketergantungan sebenarnya yang meliputi nilai register Mekanisme untuk mengkomunikasikan nilai tersebut. Mekanisme untuk menginisialisasi instruksi paralel. Tersedianya sumber untuk eksekusi paralel dari beberapa instruksi. Mekanisme processing instruksi dengan urutan yg sesuai.

3. Contoh Instruksi

Add R1, R2, R3

Misalkan, instruksi

yang akan menambahkan isi register R1 dan R2 dan menempatkan jumlahnya dalam register R3. Isi dari register R1 dan R2 mula-mula akan ditransfer ke Unit aritmetika dan logika. Setelah operasi penambahan dilakukan, hasil penjumlahan tersebut akan ditransfer ke register R3. Prosesor dapat membaca instruksi selanjutnya dari memori, sementara operasi penambahan dilakukan. Kemudian jika instruksi tersebut juga menggunakan ALU, operand-nya dapat ditransfer ke input ALU pada waktu yang sama dengan hasil instruksi Add ditransfer ke register R3.

Pada kasus ideal, jika semua instruksi ditumpuk ke derajat yang maksimum yang mungkin dilakukan, maka eksekusi dilanjutnkan pada kecepatan penyelesaian satu instruksi dalam tiap siklus detak prosesor. Instruksi individual, mungkin masih memerlukan beberapa siklus detak agar selesai dilakukan. Tetapi untuk tujuan perhitungan, prosesor superskalar umumnya mampu melakukannya dalam tiap siklus.

Prosesor superskalar umumnya menggunakan beberapa unit fungsional, menciptakan jalur paralel di mana berbagai instruksi yang berbeda dapat dieksekusi secara paralel. Dengan pengaturan tersebut, maka dimungkinkan untuk memulai eksekusi beberapa instruksi secara paralel tiap siklus detak. Tentu saja, eksekusi paralel harus mempertahankan kebenaran logikan program, sehingga hasil yang diperoleh harus sama dengan hasil dari eksekusi secara serial.

4. Contoh CPU yang menerapkan arsitektur superscalar :

  • 486, Pentium, Pentium Pro, keluarga Intel Pentium, Intel Pentium Pro, Intel Pentium II, Intel Pentium III, Intel Itanium, Intel Xeon, Intel Pentium 4, Intel Pentium M, Intel Core dari Intel Corporation; keluarga AMD K5, AMD K6, AMD Athlon, AMD Athlon 64, dan AMD Opteron

Superscalar Processor Design

• Use PowerPC 604 as case study

• Speculative Execution, Register Renaming, Branch Prediction

More Superscalar Examples

• MIPS R10000

• DEC Alpha 21264

5. Implementasi Superscalar

  1. Proses fetch dari beberapa instruksi secara bersamaan.
  2. Logika untuk menentukan ketergantungan sebenarnya yang meliputi nilai register.
  3. Mekanisme untuk mengkomunikasikan nilai tersebut.
  4. Mekanisme untuk menginisialisasi instruksi paralel.
  5. Tersedianya sumber untuk eksekusi paralel dari beberapa instruksi.
  6. Mekanisme processing instruksi dengan urutan yg sesuai.

Pada penjelasan diatas bias diterangkan bahwa untuk superscalar dapat digunakan untuk berbagai keperluan dan dapat diimplementasikan pada perangkat prosessor seperti :

Pentium 4

Pada Pentium, implementasi superscalar dapat dijabarkan sebagai berikut :

  • 80486 – CISC.
  • Pentium.
  • ada beberapa komponen superscalar.
  • 2 unit eksekusi integer yang terpisah.
  • Pentium Pro – Full superscalar.
  • Memperhalus models subsequent & Meningkatkan design superscalar.

6. Permasalahan pada Superscalar

Kemampuan dari computer superscalar dapat dilihat dari banyaknya instruksi yang dapat diproses secara parallel. Superscalar hingga derajat tertentu dapat terjadi jika computer mampu mengatasi permasalahan ketergantungan yang ada pada suatu instruksi, diantaranya adalah : ketergantungan data, ketergantungan procedural, ketergantungan sumber unit, ketergantungan output dan antiketergantungan. Dari lima ketergantungan tersebut, sampai sekarang belum ada computer yang mampu mengatasinya secara total. Bagaimanapun computer akan menemukan beberapa ketergantungan dalam menyelesaikan suatu program.

Dari rancangan computer yang ada, hanya mampu meminimalisasikan beberapa ketergantungan saja, walaupun demikian ternyata dengan usaha ini mampu diciptakan computer dengan kinerja yang jauh lebih baik dari generasi-generasi sebelumnya. Adapun usaha yang dilakukan dalam peningkatan kinerja superscalar tersebut diantaranya : desain pipeline (out of order issue and out of order completion), memperbanyak tahapan pada pipeline, penduplikasian sumber unit (contoh : unit fungsional /ALU, memori, bus, cache, dll), desain micro operation (pada system CICS), desain unit prediksi percabangan, dan renaming allocation. Kebanyakan computer lebih menekankan pada upaya penduplikasian unit fungsional baik integer maupun floating point. Untuk itu pada pembahasan ini akan kita bahas salah satu upaya peningkatan kinerja prosesor superscalar secara khusus dalam hal reconfigurasi floating point unit (FPU).




NAMA : M. ANANG MA'RUF
KELAS : TEKNIK INFORMATIKA 20(B)
NIM     : 23420003

Orkom Perkuliahan 11

Selasa, 08 Desember 2020

Tugas Resum Perkuliahan 10

ORGANISASI & ARSITEKTUR KOMPUTER 

PERTEMUAN KE-10


RISC

TIK:

Major Advances in

Computers(1)

The family concept

- IBM System/360 1964

- DEC PDP-8

- Separates architecture from implementation

- Microporgrammed control unit

- Idea by Wilkes 1951

- Produced by IBM S/360 1964

- Cache memory

- IBM S/360 model 85 1969

Major Advances in
Computers(2)

- Solid State RAM

- (See memory notes)

- Microprocessors

- Intel 4004 1971

- Pipelining

- Introduces parallelism into fetch execute cycle

- Multiple processors

The Next Step - RISC

- Reduced Instruction Set Computer

- Key features

- Large number of general purpose registers

- or use of compiler technology to optimize register use

- Limited and simple instruction set

- Emphasis on optimising the instruction pipeline

Driving force for CISC

- Software costs far exceed hardware costs

- Increasingly complex high level languages

- Semantic gap

- Leads to:

- Large instruction sets

- More addressing modes

- Hardware implementations of HLL statements

- e.g. CASE (switch) on VAX

Intention of CISC

- Ease compiler writing

- Improve execution efficiency

- Complex operations in microcode

- Support more complex HLLs

Execution Characteristics

- Operations performed

- Operands used

- Execution sequencing

- Studies have been done based on programs written

  in HLLs

- Dynamic studies are measured during the execution

  of the program

Operations

- Assignments

- Movement of data

- Conditional statements (IF, LOOP)

- Sequence control

- Procedure call-return is very time consuming

- Some HLL instruction lead to many machine code

  operations

Procedure Calls

- Very time consuming

- Depends on number of parameters passed

- Depends on level of nesting

- Most programs do not do a lot of calls followed by

  lots of returns

- Most variables are local

- (c.f. locality of reference)

Implications

- Best support is given by optimising most used and

  most time consuming features

- Large number of registers

- Operand referencing

- Careful design of pipelines

- Branch prediction etc.

- Simplified (reduced) instruction set

Large Register File

- Software solution

- Require compiler to allocate registers

- Allocate based on most used variables in a given time

- Requires sophisticated program analysis

- Hardware solution

- Have more registers

- Thus more variables will be in registers

Sejarah

Reduced Instruction Set Computing (RISC) atau "Komputasi set instruksi yang disederhanakan" pertama kali digagas oleh John Cocke, peneliti dari IBM di Yorktown, New York pada tahun 1974 saat ia membuktikan bahwa sekitar 20% instruksi pada sebuah prosesor ternyata menangani sekitar 80% dari keseluruhan kerjanya. Komputer pertama yang menggunakan konsep RISC ini adalah IBM PC/XT pada era 1980-an. Istilah RISC sendiri pertama kali dipopulerkan oleh David Patterson, pengajar pada University of California di Berkely.

Definisi

RISC, yang jika diterjemahkan berarti "Komputasi Kumpulan Instruksi yang Disederhanakan", merupakan sebuah arsitektur komputer atau arsitektur komputasi modern dengan instruksi-instruksi dan jenis eksekusi yang paling sederhana. Arsitektur ini digunakan pada komputer dengan kinerja tinggi, seperti komputer vektor. Selain digunakan dalam komputer vektor, desain ini juga diimplementasikan pada prosesor komputer lain, seperti pada beberapa mikroprosesor Intel 960, Itanium (IA64) dari Intel Corporation, Alpha AXP dari DEC, R4x00 dari MIPS Corporation, PowerPC dan Arsitektur POWER dari International Business Machine. Selain itu, RISC juga umum dipakai pada Advanced RISC Machine (ARM) dan StrongARM (termasuk di antaranya adalah Intel XScale), SPARC dan UltraSPARC dari Sun Microsystems, serta PA-RISC dari Hewlett-Packard.

Selain RISC, desain Central Processing Unit yang lain adalah CISC (Complex Instruction Set Computing), yang jika diterjemahkan ke dalam Bahasa Indonesia berarti Komputasi Kumpulan Instruksi yang kompleks atau rumit.






NAMA  : M. ANANG MA'RUF

KELAS : TEKNIK INFORMATIKA

NIM    : 23420003

Orkom Perkuliahan 10

Selasa, 01 Desember 2020

Tugas Resume Perkuliahan 9

 Arsitektur Set Instruksi dan Teknik Pengalamatan


Set Instruksi didefinisikan sebagai suatu aspek dalam arsitektur komputer yang dapat dilihat oleh para pemrogram. Secara umum, ISA ini mencakup jenis data yang didukung, jenis instruksi yang dipakai, jenis register, mode pengalamatan, arsitektur memori, penanganan interupsi, eksepsi, dan operasi I/O eksternalnya (jika ada).

ISA merupakan sebuah spesifikasi dari Pullman semua kode-kode biner (opcode) yang diimplementasikan dalam bentuk aslinya (native form) dalam sebuah desain prosesor tertentu.

A. Elemen Elemen Set Instruksi
  • Operation Code (opcode) : menentukan operasi yang akan dilaksanakan.
  • Source Operand Reference : merupakan input bagi operasi yang akan dilaksanakan.
  • Result Operand Reference : merupakan hasil dari operasi yang dilaksanakan.
  • Next Instruction Reference : memberitahu CPU untuk mengambil instruksi berikutnya setelah instruksi yang dijalankan selesai.
B. Jenis Jenis Instruksi
  • Data Processing / Pengolahan Data : instruksi-instruksi aritmetika dan logika. Instruksi aritmetika memiliki kemampuan untuk mengolahdata numeric, sedangkan instruksi logika beroperasi pada bit-bit word sebagai bit bukan sebagai bilangan. Operasi-operasi tersebut dilakukan terutama untuk data di register CPU.
  • Data Storage / Penyimpanan Data : instruksi-instruksi memori. Instruksi-instruksi memori diperlukan untuk memindah data yang terdapat di memori dan register.
  • Data Movement / Perpindahan Data : instruksi I/O. Instruksi-instruksi I/O diperlukan untuk memindahkan program dan data ke dalam memori dan mengembalikan hasil komputansi kepada pengguna.
  • Control / Kontrol : instruksi pemeriksaan dan percabangan. Instruksi-instruksi kontrol digunakan untuk memeriksa nilai data, status komputansi dan mencabangkan ke set instruksi lain.
C. Teknik Pengalamatan
1. Immediate Addressing (Pengalamatan Segera)
  • Pengalamatan yang paling sederhana.
  • Operand benar-benar ada dalam instruksi atau bagian dari intsruksi
  • Operand sama dengan field alamat
  • Umumnya bilangan akan disimpan dalam bentuk complement dua
  • Bit paling kiri sebagai bit tanda
  • Ketika operand dimuatkan ke dalam register data, bit tanda digeser ke kiri hingga maksimum word data

Keuntungan :

Tidak adanya referensi memori selain dari instruksi yang diperlukan untuk memperoleh operand

Menghemat siklus instruksi sehingga proses keseluruhanakan akan cepat.

Kekurangan :

Ukuran bilangan dibatasi oleh ukuran field

Contoh :
ADD 7 ; tambahkan 7 pada akumulator

2. Direct Addressing (Pengalamatan Langsung)

  • Teknik ini banyak digunakan pada komputer lama dan komputer kecil
  • Hanya memerlukan sebuah referensi memori dan tidak memerlukan kalkulus khusus

Kelebihan :
Field alamat berisi efektif address sebuah operand

Kekurangan :
Keterbatasan field alamat karena panjang field alamat biasanya lebih kecil dibandingkan panjang word

Contoh :
ADD A ; tambahkan isi pada lokasi alamat A ke akumulator

3. Indirect Addressing (Pengalamatan tak langsung)

Merupakan mode pengalamatan tak langsung

  • Field alamat mengacu pada alamat word di alamat memori, yang pada gilirannya akan berisi alamat operand yang panjang

Kelebihan :
Ruang bagi alamat menjadi besar sehingga semakin banyak alamat yang dapat referensi

Kekurangan :
Diperlukan referensi memori ganda dalam satu fetch sehingga memperlambat proses operasi

Contoh :
ADD (A) ; tambahkan isi memori yang ditunjuk oleh isi alamat A ke akumulator

4. Register addressing (Pengalamatan Register)

  • Metode pengalamatan register mirip dengan mode pengalamatan langsung
  • Perbedaanya terletak pada field alamat yang mengacu pada register, bukan pada memori utama
  • Field yang mereferensi register memiliki panjang 3 atau 4 bit, sehingga dapat mereferensi 8 atau 16 register general purpose

Keuntungan :
Diperlukan field alamat berukuran kecil dalam instruksi dan tidak diperlukan referensi memori

Akses ke register lebih cepat daripada akses ke memori, sehingga proses eksekusi akan lebih cepatKerugian : Ruang alamat menjadi terbatas

5. Register indirect addressing (Pengalamatan tak-langsung register)

Metode pengalamatan register tidak langsung mirip dengan mode pengalamatan tidak langsung
Perbedaannya adalah field alamat mengacu pada alamat register
  • Letak operand berada pada memori yang dituju oleh isi register
  • Keuntungan dan keterbatasan pengalamatan register tidak langsung pada dasarnya sama dengan pengalamatan tidak langsung
  • Keterbatasan field alamat diatasi dengan pengaksesan memori yang tidak langsung sehingga alamat yang dapat direferensi makin banyak
  • Dalam satu siklus pengambilan dan penyimpanan, mode pengalamatan register tidak langsung hanya menggunakan satu referensi memori utama sehingga lebih cepat daripada mode pengalamatan tidak langsung
6. Displacement addressing
  • Menggabungkan kemampuan pengalamatan langsung dan pengalamatan register tidak langsung
  • Mode ini mensyaratkan instruksi memiliki dua buah field alamat, sedikitnya sebuah field yang eksplisit
  • Operand berada pada alamat A ditambahkan isi register
    Tiga model displacement
  • Relative addressing : register yang direferensi secara implisit adalah Program Counter (PC)
  • Alamat efektif didapatkan dari alamat instruksi saat itu ditambahkan ke field alamat
  • Memanfaatkan konsep lokalitas memori untuk menyediakan operand-operand berikutnya

Base register addressing : register yang direferensi berisi sebuah alamat memori dan field alamat berisi perpindahan dari alamat itu

  • Referensi register dapat eksplisit maupun implisit
  • Memanfaatkan konsep lokalitas memori

Indexing  : field alamat mereferensi alamat memori utama, dan register yang direferensikan berisi pemindahan positif dari alamat tersebut

  • Merupakan kebalikan dari mode base register
  • Field alamat dianggap sebagai alamat memori dalam indexing
  • Manfaat penting dari indexing adalah untuk eksekusi program-pprogram iteratif

Contoh :
Field eksplisit bernilai A dan field imlisit mengarah pada register

7. Stack addressing

  • Stack adalah array lokasi yang linier = pushdown list = last-in-firs-out
  • Stack merupakan blok lokasi yang terbaik
  • Btir ditambahkan ke puncak stack sehingga setiap blok akan terisi secara parsial
  • Yang berkaitan dengan stack adalah pointer yang nilainya merupakan alamat bagian paling atas stack
  • Dua elemen teratas stack dapat berada di dalam register CPU, yang dalam hal ini stack pointer mereferensi ke elemen ketiga stack
  • Stack pointer tetap berada dalam register
  • Dengan demikian, referensi-referensi ke lokasi stack di dalam memori pada dasarnya merupakan pengalamatan register tidak langsung

NAMA  : M. ANANG MA'RUF
KELAS : TEKNIK INFORMATIKA (B)
NIM      : 23420003



JAWABAN UAS ORGANISASI DAN ARSITEKTUR KOMPUTER

 UJIAN AKHIR SEMESTER GANJIL TA. 2020/2021 FAKULTAS ILMU KOMPUTER UNIVERSITAS NAHDLATUL ULAMA SIDOARJO JAWABAN UAS ORGANISASI DAN ARSITEKTUR...