1 / 46

IKI10230 Pengantar Organisasi Komputer Kuliah no. 02: Stored Program Computers

IKI10230 Pengantar Organisasi Komputer Kuliah no. 02: Stored Program Computers. Sumber : 1. Paul Carter, PC Assembly Language 2. Hamacher. Computer Organization , ed-5 3. Materi kuliah CS61C/2000 & CS152/1997, UCB. 18 Februari 2004

cathal
Download Presentation

IKI10230 Pengantar Organisasi Komputer Kuliah no. 02: Stored Program Computers

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IKI10230Pengantar Organisasi KomputerKuliah no. 02: Stored Program Computers Sumber:1. Paul Carter, PC Assembly Language2. Hamacher. Computer Organization, ed-53. Materi kuliah CS61C/2000 & CS152/1997, UCB 18 Februari 2004 L. Yohanes Stefanus (yohanes@cs.ui.ac.id)Bobby Nazief (nazief@cs.ui.ac.id) bahan kuliah: http://www.cs.ui.ac.id/kuliah/POK/

  2. Review

  3. Review: Organisasi Sistem Komputer • Koordinasi dari berbagai tingkat “abstraksi” Application (Netscape) Operating 10230 Compiler System (Windows 98) Software Assembler Instruction Set Architecture Hardware Processor Memory I/O system Datapath & Control Digital Design Circuit Design transistors

  4. Review: Tingkat-tingkat Bahasa Pemrograman A = 25; B = 8; C = A * B; A dw 25 B dw 8 C resw 1 mov eax, [A] mov ebx, [B] add eax, ebx mov [C], eax High Level Language Program (e.g., C) 10230 Compiler Assembly Language Program Assembler Machine Language Program (80x86) 0000 1001 1100 0110 1010 1111 0101 1000 1010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111 Machine Interpretation Control Signal Specification ° °

  5. Keyboard, Mouse Computer Processor (active) Memory (passive) (where programs, data live when running) Devices Disk(where programs, data live when not running) Input Control (“brain”) Datapath (“brawn”) Output Display, Printer Review: 5 Komponen Utama Komputer “CPU”

  6. Koreksi: Processor • Responsible of executing program stored in memory • read instructions & input data • execute • store results (output data) • Datapath (“otot”): • ALU: Aritmetic & Logical Unit • Exposed register • Size of register determines processor smallest data unit (i.e., 8-bit, 16-bit, 32-bit, 64-bit computers) • Hidden register • Control Unit (“otak”): • interprete instruction • control data transfer between registers • define processsor’s ‘language’ complexity (e.g., RISC vs. CISC)

  7. Koreksi:Tren Teknologi: Kapasitas Mikroprosesor Pentium 4: 42 million Pentium III: 9.5 million Alpha 21264: 15 million Pentium Pro: 5.5 million PowerPC 620: 6.9 million Alpha 21164: 9.3 million Sparc Ultra: 5.2 million Moore’s Law 2X transistors/Chip Every 1.5 years Called “Moore’s Law”

  8. Komputer Digital

  9. switch bit inimenjadi 0 Test bit ini jika 0, switch bit pertama 0 100101 100001 100001 100000 Komputer Digital • Komputer Digital: • Hanya mengenal dua status (mis. ada / tidak ada tegangan) • Sangat sederhana hanya dapat bernilai: 1 atau 0 biner • Operasi hanya dapat dilakukan pada bit; yang dapat bernilai 1 atau 0. • Contoh operasi mengubah (flip, switch) nilai bit, menjadikan bit tertentu 0; test bit jika 0 atau bukan.

  10. ..hello buzz simulasi mobil Komputer & “things” • … jadi, apa yang membuat komputer (yang hanya mengenal bits dengan nilai: 0 dan 1) demikian “powerful”? • Apakah (dengan “mengandalkan” 0 & 1) komputer dapat merepresentasikan apa saja?

  11. Bit • Dengan bit, bagaimana komputer dapat merepresentasikan: • Bilangan (numerik)? Alfabet ? Kata? Alamat? Gambar? • Contoh: Bilangan • Manusia lebih mudah menggunakan representasi/ notasi desimal. • Misalkan: 1, 25, 125, 3896754321 • Disebut basis 10, dengan simbol:Digits: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 • ..tapi komputer hanya mengenal 2 simbol (0 dan 1)Bagaimana melakukan representasi bilangan yang dikenal manusia?

  12. Bit  Bilangan • Bilangan Basis B  B simbol per digit: • Basis 10 (Decimal): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9Basis 2 (Binary): 0, 1 • Komputer menyimpan dan beroperasi dalam “binary”  Basis 2 • Dapat melakukan konversi (representasi) bilangan dari basis 10 ke basis 2 (dan sebaliknya). • Decimal: 0,1,2,3,4,5,6,7,8,9 90 = 9x101 + 0x100 • Binary: 0,1 1011010 = 1x26 + 0x25 + 1x24 + 1x23 + 0x22 + 1x2 + 0x20 = 64 + 16 + 8 + 2 = 90

  13. Bit dapat mepresentasikan “apa saja” !!! • Bits dapat merepresentasikan apapun! • Karakter? Latin: • 26 huruf => 5 bits • Huruf besar/kecil + tanda lain => 7 bits, berapa simbol huruf? • Karakter, bahasa lain => 16 (unicode) • Logical values? • 0 -> False, 1 => True • Warna ? Berapa banyak warna => berapa bits? • Alamat? (berapa karakter alfabet ..) • .. Tapi N bits  hanya dapat merepresentasikan 2Nsesuatu

  14. 1 1 1 0 1 0 + 0 1 1 1 ------------------------- 1 0 0 0 1 Apa lagi (sesuatu yang berguna) yang dapat dilakukan? • Apa yang dapat dilakukan dengan “bilangan”? • … umumnya semua operasi (instruksi) yang biasa dilakukan pada bilangan! • Tambahkan, Kurangkan, Kalikan, Bagikan, Bandingkan! • Contoh: 10 + 7 = 17  10 Bagaimana instruksi +, diwakili oleh bits?  7  17

  15. Bit  Instruksi • Instruksi (Operasi). Apakah dapat diwakili oleh bit? • Contoh: • 0 => tepuk tangan • 1 => snap jari jempol dan telunjuk • Eksekusi Instruksi: 1 0 1 1 0 0 • Contoh instruksi operasi bilangan: • Misalkan 3 bit (berapa banyak instruksi?): • 000 => tambahkan 001 => kurangkan • 010 => kalikan 011 => bagikan • 100 => bandingkan dst. • Jadi bit (data) dapat diartikan sebagai instruksi!

  16. Memori

  17. n bits Alamat 0 1 i 2k-1 Byte 0 Byte 1 Byte i Byte 2k-1 Pengalamatan Memori • k menentukan besarnya ruang alamat (address space) memori: • k = 16  ruang alamat = 216 (64536) lokasi • k = 32  ruang alamat = 232 (4 G) lokasi • n menentukan besarnya suatu word (jumlah bit) • n = 8, 16, 32, 64 • Umumnya ukuran peng-alamatan terkecil adalah dalam orde byte byte addressable

  18. Bilangan (data) disimpan di memori • Memori adalah tempat menyimpan bit data • Suatu “word” adalah sejumlah bit data tetap, (mis. 16, atau 32 bit) pada satu lokasi di memori • Byte-addressable memory menyimpan data multi-byte pada lokasi memori yang berurutan • Alamat menunjuk ke lokasi “word” (byte-1) disimpan. • Alamat dapat direpresen-tasikan oleh bit • Alamat juga sebagai “bilangan” (yang dapat dimanipulasikan) Alamat 00000 data 01110 101101100110 11111 = 2k - 1

  19. 0 4 0 5 0 1 lsb msb msb 0 lsb 0 5 1 0 4 Pengalamatan Data: Endianess (1/2)  alamat data multi-byteadalah: • Big Endian: alamat dari most significant byte • IBM 360/370, Motorola 68k, MIPS, Sparc, HP PA • Little Endian: alamat dari least significant byte • Intel 80x86, DEC Vax, DEC Alpha

  20. Alamat 0 1 2 3 i 2k-1 0 0 5 1 Pengalamatan Data: Endianess (2/2) 1500 Big Endian Little Endian Alamat 0 1 2 3 4 5 6 7 i 2k-1 1 5 0 0 2 6 0 0

  21. Apa saja yang dapat disimpan? • Apa yang dapat disimpan? • Bilangan • Karakter • Alamat data • Representasi “sesuatu” di dunia luar • .. 00000 01110 101101100110 11111 = 2k - 1 anything Big Idea: Komputer dapat menyimpan apapun.

  22. Stored Program

  23. The Stored Program Computer (1/2) • Konsep Kunci: • Data dapat diartikan sebagai instruksi! • Data di komputer mampu merepresentasikan sesuatu (thing, anything)! Tergantung intrepetasi dan operasi yang diinginkan. • BIG IDEA: STORED PROGRAM program dapat disimpan sebagai data dan dijalankan oleh komputer • Merupakan konsep awal komputer Von Neumann Architecture (1955).

  24. The Stored Program Computer (2/2) • Memori menyimpan instruksi dan data sebagai bit. • Instruksi diambil oleh prosesor dari memori, diartikan, dan, dieksekusi (operands/data diambil, diolah, dan disimpan ke memori). • Contoh Instruksi 4-digit (á 4 bit)  16 bit (2 byte) ≈ 2 lokasi memori digit-1: Operasi: 0 => add, 1 => sub, ... digit-2: Alamat hasil digit-3: Alamat op1 digit-4: Alamat op2 0 0 8 4 6 2 1 6 8 6 40 0 6 1 6 0 0 1 7 8 0 0 0 0 10 0 0 0 0 12 0 0 0 0 14 0 0 0 0 16 0 0 0 0 18 0 0 0 0 data instruksi 0: 08460=add (jenis instruksi), 8=addr. result, 4=addr op1, 6=addr op2 instruksi Apa yang berada di lokasi 4,6,8 setelah eksekusi instruksi ke-1, ke-2?

  25. 0 0 8 4 6 2 1 6 8 6 4 0 0 6 1 6 0 0 1 7 8 0 0 0 0 10 0 0 0 0 12 0 0 0 0 14 0 0 0 0 16 0 0 0 0 18 0 0 0 0 0 0 8 4 6 2 1 6 8 6 4 0 0 6 1 6 0 0 1 7 8 0 0 7 8 10 0 0 0 0 12 0 0 0 0 14 0 0 0 0 16 0 0 0 0 18 0 0 0 0 Processor (active) Control (“brain”) Datapath (“brawn”) Operasi pada Memori 0846: Add (8),(4),(6) ; M[8]  M[4] + M[6] 0846 0061 0017 0078 • Instruction Fetch • Data Read • Data Store (write)

  26. Jadi, apa artinya? • Program adalah kumpulan bit yang tersimpan di memori merepresentasikan instruksi & data • Program tersebut dijalankan oleh prosesor: • untuk mengolah/manipulasi bilangan, karakter, pixels … (Aplikasi, Software) • untuk mengontrol penggunaan sumber daya komputer dan menjalankan program lain (Operating Systems)

  27. Bahasa Rakitan (Assembly Language)

  28. M[8]  M[4] + M[6] Bahasa Mesin  Bahasa Rakitan 0846:Add (8),(4),(6) • Bahasa Mesin  kumpulan bit yang merepresentasikan Operasi & Operand • Bahasa Rakitan  representasi dari Bahasa Mesin dalam bahasa (kumpulan huruf & angka) yang lebih mudah dimengerti oleh manusia Bahasa Rakitan Bahasa Mesin mnemonic

  29. The Program is ... • lokasiinstruksi 0000 0846 Add 8,4,6 ; M[8]  M[4] + M[6] ; M[8] = 61 + 17 = 78 0002 1686 Sub 6,8,6 ; M[6]  M[8] – M[6] ; M[6] = 78 – 17 = 61 • Data: SebelumSesudah • M[4] = 0061 M[4] = 0061 • M[6] = 0017 M[6] = 0061 • M[8] = 0000 M[8] = 0078

  30. Format Instruksi • Instruksi membutuhkan argumen sebagai input dan menghasilkan produk sebagai output • argumen  input operand • produk  output operand • Format instruksi: • <op-code> <out-op>,<in-op1>,<in-op2>,... • Berapa jumlah operand yang dibutuhkan?

  31. Jumlah Operand  Kelas Set Instruksi • 3-address instruction Add C,A,B ; C [A] + [B] Operation Destination,Source1,Source2 atau Operation Source1,Source2,Destination • 2-address instruction Add A,B ; A  [A] + [B] Operation Destination,Source • 1-address instruction Load B ; acc B Add A ; acc [acc] + [A] • 0-address instruction Push B ; tos  B Push A ; tos  A; [next] = B Add ; tos [tos] + [next]

  32. Jenis-jenis Operasi (tidak banyak berubah sejak 1960) Data Transfers memory-to-memory move register-to-register move memory-to-register move Arithmetic & Logic integer (binary + decimal) or FP Add, Subtract, Multiply, Divide shift left/right, rotate left/right not, and, or, set, clear Program Sequencing & Control unconditional, conditional Branch call, return trap, return Input/Output Transfers register-to-i/o device move Synchronization test & set (atomic r-m-w) String search, translate Graphics (MMX) parallel subword ops (4 16bit add)

  33. Eksekusi Instruksi

  34. Eksekusi Instruksi (1/2) • Instruksi dan data bersama-sama berada di memori: • Data diakses secara acak (tergantung alamat operand) • Instruksi umumnya dijalankan secara berurut (sekuensial) • Urutan ini menjamin logika alur program: terdapat urutan perintah ke mesin. • Instruksi disimpan secara berurut pada lokasi di memori • Eksekusi instruksi dilakukan mulai dari alamat terkecil • Bagaimana mengetahui “posisi” instruksi saat ini (berikutnya?) • Gunakan register khusus: Program Counter

  35. 0 0 8 4 6 2 1 6 8 6 40 0 6 1 6 0 0 1 7 8 0 0 0 0 10 0 0 0 0 12 0 0 0 0 14 0 0 0 0 16 0 0 0 0 18 0 0 0 0 0 0 8 4 6 2 1 6 8 6 40 0 6 1 6 0 0 1 7 8 0 0 7 8 10 0 0 0 0 12 0 0 0 0 14 0 0 0 0 16 0 0 0 0 18 0 0 0 0 0 2 4 0 0 8 4 6 2 1 6 8 6 40 0 6 1 6 0 0 6 1 8 0 0 7 8 10 0 0 0 0 12 0 0 0 0 14 0 0 0 0 16 0 0 0 0 18 0 0 0 0 Eksekusi Instruksi (2/2) PC (Program Counter) Program couter (PC) berisi alamat lokasi instruksi yang akan dieksekusi pada siklus berikutnya. Setelah instruksi dieksekusi, maka PC akan “increment” dan menunjuk pada instruksi berikutnya (next location)PC = PC + 2; dst .. dikenal dengan istilah: straight line sequencing

  36. Branching

  37. (false) i != j (true) i == j i == j? “that” “this” Exit Decision… • Instruksi aritmatika, transfer data memberikan kemampuan kita untuk melakukan komputasi data • Sama seperti “kalkulator” • Untuk sebuah komputer, maka diperlukan kemampuan untuk memilih, “make decisions” .. • Analogi HLL: assembly language harus mendukung statement:if (condition == true) do “this”;else do “that”;exit;

  38. Branching • Dampak dari pengambilan keputusan yang bergantung pada suatu kondisi tertentu adalah terjadinya pencabangan (branching): • Instruksi tidak lagi diambil dari lokasi memori yang “berurut”, tetapi “meloncat” ke lokasi memori tertentu  PC diisi dengan nilai baru, tidak di-increment • Manipulasi PC dengan memberikan alamat baru (tidak “berurut”) juga digunakan untuk mengubah alur eksekusi program tanpa bergantung pada kondisi tertentu (jump)

  39. Alamat Alamat i i+1w i+2w i+(n-1)w i+nw SUM Num1 Num2 NumN LOOP SUM N Num1 Num2 NumN Move R0,Num1 Move R1,N Add R0,Num2 Clear R0 Add R0,Num3 Determine address of next number and add Next number to R0 Decrement R1 Add R0,NumN Branch>0 LOOP Mov SUM,R0 Move SUM,R0 n Branching: Contoh R0 = ∑ Ni PC

  40. Conditional Branching • Branch>0 LOOP • Periksa kondisi (hasil operasi > 0?):memeriksa Condition Code Flags yang berada di Status Register: • N: hasil operasi sebelumnya menghasilkan bil. negatif • Z: hasil operasi sebelumnya menghasilkan 0 • V: hasil operasi sebelumnya menghasilkan overflow • C: hasil operasi sebelumnya menghasilkan carry  >0: hasil ≠ 0 (kondisi Z-flag == FALSE) • Jika ya, loncat ke LOOP (PC  lokasi LOOP) • Jika tidak, lanjutkan eksekusi

  41. I/O

  42. Prosesor Bus DATAOUT DATAIN SOUT SIN Display Keyboard Organisasi Input/Output • Pada prinsipnya sama dengan data transfer (memori/register), bedanya peranti I/O lebih lambat • Perlu mekanisme pemeriksaan kesiapan peranti I/O: • Baca informasi status di SIN/SOUT untuk memastikan peranti I/O siap • Jika “siap” lakukan operasi transfer data dari/ke peranti I/O ybs.

  43. I/O Device Examples and Speed • I/O Speed: bytes transferred per second(from mouse to display: million-to-1) • Device Behavior Partner Data Rate (Kbytes/sec) Keyboard Input Human 0.01 Mouse Input Human 0.02 Line Printer Output Human 1.00 Floppy disk Storage Machine 50.00 Laser Printer Output Human 100.00 Magnetic Disk Storage Machine 10,000.00 Network-LAN I or O Machine 10,000.00 Graphics Display Output Human 30,000.00

  44. Penutup

  45. 0 0 8 4 6 2 1 6 8 6 4 0 0 6 1 6 0 0 1 7 8 0 0 0 0 10 0 0 0 0 12 0 0 0 0 14 0 0 0 0 16 0 0 0 0 18 0 0 0 0 0 0 8 4 6 2 1 6 8 6 4 0 0 6 1 6 0 0 1 7 8 0 0 7 8 10 0 0 0 0 12 0 0 0 0 14 0 0 0 0 16 0 0 0 0 18 0 0 0 0 0 0 8 4 6 2 1 6 8 6 4 0 0 6 1 6 0 0 6 1 8 0 0 7 8 10 0 0 0 0 12 0 0 0 0 14 0 0 0 0 16 0 0 0 0 18 0 0 0 0 Processor (active) Control (“brain”) Datapath (“brawn”) Stored-program Computer • operasi yang dilakukan oleh komputer ditentukan oleh instruksi & data yang tersimpan di memori 0846 PC 1686 PC 0061 PC 0061 0017 0017 0078 0078 • komputer dapat diprogram untuk memenuhi kebutuhan pengguna dengan jalan mengisi memori dengan instruksi & data yang sesuai

  46. Computer is ... The great Richard Feynman, in his Lectures on Computation, summed up von Neumann computers by saying, "the inside of a computer is as dumb as hell, butit goes like mad!"

More Related