Pokok Bahasan • Organisasi processor • Register • Siklus instruksi • Pipelining instruksi Organisasi Processor • Prosesor : IC yang mengontrol keseluruhan jalannya sistem komputer dan digunakan sebagai pusat atau otak dari komputer • Central Processing Unit (CPU): Merupakan komponen terpenting dari sistem komputer • Komponen pengolah data berdasarkan instruksi yang diberikan kepadanya • Dalam mewujudkan fungsi dan tugasnya, CPU tersusun atas beberapa komponen Pekerjaan yang dilakukan CPU • Fetch Instruction(Mengambil instruksi) : CPU membaca instruksi dari memory • Interpret Instruction (Menterjemahkan instruksi) : CPU menterjemahkan instruksi untuk menentukan aksi yang diperlukan. • Fetch Data (Mengambil data) : eksekusi instruksi mungkin memerlukan pembacaan data dari memory atau dari modul I/O • Process Data (Mengolah data) : eksekusi instruksi memerlukan operasi aritmatik atau logika. • Write data (Menulis data) : Hasil eksekusi mungkin memerlukan penulisan data ke memory atau ke modul I/O Komponen CPU • Arithmetic and Logic Unit (ALU) • Control Unit • Registers • CPU Interconnections Arithmetic and Logic Unit (ALU) • Bertugas membentuk fungsi – fungsi pengolahan data komputer. • ALU sering disebut mesin bahasa (machine language) karena bagian ini mengerjakan instruksi – instruksi bahasa mesin yang diberikan padanya. • Seperti istilahnya ALU terdiri dari dua bagian, yaitu unit arithmetika dan unit logika boolean, yang masing – masing memiliki spesifikasi tugas tersendiri. Control Unit • Bertugas mengontrol operasi CPU dan secara keselurahan mengontrol komputer sehingga terjadi sinkronisasi kerja antar komponen dalam menjalankan fungsi – fungsi operasinya. • Termasuk dalam tanggung jawab unit kontrol adalah mengambil instruksi – instruksi dari memori utama dan menentukan jenis instruksi tersebut. Registers • Media penyimpan internal CPU yang digunakan saat proses pengolahan data. • Memori ini bersifat sementara, biasanya digunakan untuk menyimpan data saat diolah ataupun data untuk pengolahan selanjutnya. CPU Interconnections • Sistem koneksi dan bus yang menghubungkan komponen internal dan bus – bus eksternal CPU • Komponen internal CPU yaitu ALU, unit kontrol dan register – register. • Komponen eksternal CPU : sistem lainnya, seperti memori utama, piranti masukan/keluaran Komponen Internal CPU Struktur Detail Internal CPU Fungsi CPU • Menjalankan program – program yang disimpan dalam memori utama dengan cara mengambil instruksi – instruksi, menguji instruksi tersebut dan mengeksekusinya satu persatu sesuai alur perintah. • Pandangan paling sederhana proses eksekusi program adalah dengan mengambil pengolahan instruksi yang terdiri dari dua langkah, yaitu : • operasi pembacaan instruksi (fetch) • operasi pelaksanaan instruksi (execute) Kenapa ada Program? • Hardwired system (sistem yang instruksinya dikendalikan oleh kombinasi hardware) Æ tidak fleksibel Kabel-kabel, jumper dsb Æ Rumit • Dibuatlah general purpose hardware yang bisa menerima control signal. • Jenis control signal menentukan instruksi yang akan dijalankan Apakah Program itu? • Serangkaian langkah-langkah (a sequence of steps) • Pada tiap langkah, dilakukan sebuah operasi logika atau aritmetik • Untuk tiap-tiap operasi, disediakan sebuah kode instruksi yang unik. • Satu kode instruksi mengandung satu set control signal yang dapat dimengerti oleh hardware Eksekusi Program Æ Siapa saja yang terlibat? • Control Unit di CPU Æ mengatur aliran program • Memory Æ menyimpan baris-baris program yang akan dieksekusi dan hasil outputnya • Arithmetic and Logic Unit di CPU Æ untuk melakukan operasi aritmetik dan logika jika diperintahkan oleh program Sekilas – Bagaimana Program disimpan di memory • Kira-kira beginilah format penyimpanan program di memory: Memory n-bit alamat m-bit instruksi Alamat Data : x – bit kode instruksi 0000 1003 y – bit data 0001 3004 Data : bisa data angka 0002 5070 atau alamat 0003 4000 0000 1 003 4 Bit alamat, 1 bit kode instruksi, 3 bit data Sekilas Kedua – Apa sih isinya Control Unit? • PC: Program Counter Berisi alamat memory untuk mengambil instruksi selanjutnya • IR: Instruction Register Menampung instruksi yang diambil dari memory • AC: Accumulator Penampung sementara untuk data hasil eksekusi instruksi Register • Registers merupakan media penyimpanan yang bersifat sementara. General Purpose Register • Digunakan untuk mode pengalamatan dan data. • Akumulator ( aritmatika, Shift, Rotate) • Base Register (Rotate,Shift, aritmatika) • Counter Register ( Looping) • Data Register (menyimpan alamat I/O device). • Register Alamat: Digunakan untuk mode pengalamatan • Segment Register (Code Segment, Data Segment, Stack Segment, Extra Segment) : Register yang menyimpan alamat berbasis Segmen dimana mungkin terdapat beberapa register misalnya satu register untuk system operasi dan satu register untuk proses saat itu. • Register Index (Stack Index, Data Index) : melakukan operasi string dan sering digunakan untuk menulis dan membaca ke atau dari memory. • Stack Pointer : Register yang memiliki fungsi operasi Push & Pop, Operasi push menambah bagian atas daftar, menyembunyikan semua item yang sudah di stack, atau menginisialisasi stack jika kosong. Operasi pop menghapus item dari bagian atas daftar, • Register Data Digunakan untuk menampung data • Register Kode Status Kondisi (Flag) Kode yang menggambarkan hasil operasi sebelumnya Control dan Status Register • Program Counter (PC) Berisi alamat Register ini digunakan oleh unit control instruksi yang akan diambil untuk mengontrol operasi cpu dan oleh program system operasi untuk • Instruction Register (IR) Berisi alamat mengontrol eksekusi program instruksi terakhir • Memory Address Register (MAR) Berisi alamat data atau instruksi dalam memori • Memori Buffer Register (MBR) Berisi data yang dibaca dari memori atau yang dituliskan ke memori • Akumulator adalah register yang dapat digunakan untuk aritmatika, logis, pergeseran, memutar, atau lainnya operasi serupa • Program Status Word (PSW) Register yang berisi bit status yang menunjukkan kondisi CPU pada saat bekerja. Siklus Instruksi Terdiri dari siklus fetch dan siklus eksekusi Siklus Fetch - Eksekusi • Pada setiap siklus instruksi, CPU awalnya akan membaca instruksi dari memori • Terdapat register dalam CPU yang berfungsi mengawasi dan menghitung instruksi selanjutnya, yang disebut Program Counter (PC) • PC akan menambah satu hitungannya setiap kali CPU membaca instruksi Siklus Fetch - Eksekusi • Instruksi – instruksi yang dibaca akan dimuat dalam register instruksi (IR). • Instruksi – instruksi ini dalam bentuk kode – kode binner yang dapat diinterpretasikan oleh CPU kemudian dilakukan aksi yang diperlukan Siklus Iteruksi • Mengambil/membaca instruksi dan mengeksekusi instruksi • Setelah pengambilan instruksi, instruksi diperiksa untuk menentukan apakah diperlukan pengalamatan tidak langsung atau tidak • Setelah eksekusi , interrupt dapat diproses sebelum membaca/mengambil instruksi berikutnya. Execute Cycle • Transfer data antara CPU dengan main memory • Transfer data antara CPU dengan modul I/O • Data processing (operasi aritmetik / logika terhadap data oleh CPU) • Control • Perubahan urutan program (merubah isi PC) dg instruksi JUMP • Menghentikan program di tengah jalan dg insruksi HALT • Kombinasi dari hal-hal diatas Data Flow Fetch Cycle • PC berisi alamat instruksi berikutnya yang akan diambil • Alamat ini akan dipindahkan ke MAR dan ditempatkan pada bus alamat • Unit kontrol meminta pembacaan memori, dan hasilnya ditempatkan pada bus data • Hasil disalin ke MBR kemudian dipindahkan ke IR • PC bertambah 1, persiapan untuk pengambilan selanjutnya Data Flow Indirect Cycle • N bits yang ada dalam Address bus disimpan ke dalam MBR • Kemudian dari MBR dipindahkan ke dalam MAR • Selanjutnya unit control membaca alamat yang ada didalam memori dari operan ke MBR Data Flow Interrupt Cycle • Isi dalam PC harus disimpan agar dapat melanjutkan aktivitas normal setelah interupsi • Setelah itu, isi PC akan ditransfer ke MBR • Kemudian tersimpan kedalam data bus • Selanjutnya langsung ditulis didalam memori yang akan dimuat dalam MAR dari unit control • PC ini menjadi syarat dengan alamat interrupt • Sehingga masuk ke siklus instruksi berikutnya dengan mengambil instruksi yang sesuai Aksi CPU • CPU – Memori, perpindahan data dari CPU ke memori dan sebaliknya. • CPU –I/O, perpindahan data dari CPU ke modul I/O dan sebaliknya. • Pengolahan Data, CPU membentuk sejumlah operasi aritmatika dan logika terhadap data. • Kontrol, merupakan instruksi untuk pengontrolan fungsi atau kerja. Misalnya instruksi pengubahan urusan eksekusi. Elemen Siklus Eksekusi • Instruction Addess Calculation (IAC), yaitu mengkalkulasi atau menentukan alamat instruksi berikutnya yang akan dieksekusi. Biasanya melibatkan penambahan bilangan tetap ke alamat instruksi sebelumnya. Misalnya, bila panjang setiap instruksi 16 bit padahal memori memiliki panjang 8 bit, maka tambahkan 2 ke alamat sebelumnya. • Instruction Fetch (IF), yaitu membaca atau pengambil instruksi dari lokasi memorinya ke CPU. • Instruction Operation Decoding (IOD), yaitu menganalisa instruksi untuk menentukan jenis operasi yang akan dibentuk dan operand yang akan digunakan. • Operand Address Calculation (OAC), yaitu menentukan alamat operand, hal ini dilakukan apabila melibatkan referensi operand pada memori. • Operand Fetch (OF), adalah mengambil operand dari memori atau dari modul I/O. • Data Operation (DO), yaitu membentuk operasi yang diperintahkan dalam instruksi. • Operand store (OS), yaitu menyimpan hasil eksekusi ke dalam memori Siklus Eksekusi Pepeline • suatu cara yang digunakan untuk melakukan sejumlah kerja secara bersamaan tetapi dalam tahap yang berbeda yang dialirkan secara kontinu pada unit pemrosesan. • Dengan cara ini, maka unit pemroses selalu bekerja Dekomposisi Instruksi Pipelining • Fetch Instruction (FI) : membaca instruksi berikutnya ke dalam buffer • Decode instruction (DI) : menentukan opcode dan ooperand specifier • Calculate operand (CO) : menghitung alamat efektif seluruh operand sumber. Hal ini mungkin melibatkan displacement, register indirect, atau bentuk kalkulasi alamat lainnya • Fetch operand (FO) : mengambil semua operand dari memori. Operand-operand yang berada di register tidak perlu di ambil • Execute instruktions (EI) : melakukan operasi yang di indikasikan dan menyimpan hasilnya. • Write operand (WO) : menyimpan hasilnya di dalam memori Kelebihan • Waktu siklus prosesor berkurang, sehingga meningkatkan tingkat instruksi-isu dalam kebanyakan kasus. • Beberapa combinational sirkuit seperti penambah atau pengganda dapat dibuat lebih cepat dengan menambahkan lebih banyak sirkuit. Kekurangan Pipeline • Non-pipelined prosesor hanya menjalankan satu instruksi pada satu waktu. Hal ini untuk mencegah penundaan cabang (yang berlaku, setiap cabang tertunda) dan masalah dengan serial instruksi dieksekusi secara bersamaan. Akibatnya desain lebih sederhana dan lebih murah untuk diproduksi. • Instruksi latency di non-pipelined prosesor sedikit lebih rendah daripada dalam pipelined setara • Non-pipelined prosesor akan memiliki instruksi yang stabil bandwidth. Kinerja prosesor yang pipelined jauh lebih sulit untuk meramalkan dan dapat bervariasi lebih luas di antara program yang berbeda. Pipeline Hazard (Bahaya) • Bahaya pipa terjadi ketika pipa, atau beberapa bagian dari pipa, harus diperlambat karena kondisi tidak mengizinkan eksekusi terus. Seperti sebuah pipa diperlambat • Resource Hazard = Bahaya terjadi ketika dua (atau lebih) petunjuk yang telah di pipa membutuhkan sumber daya yang sama • Data hazard = Data bahaya terjadi ketika ada konflik dalam akses lokasi operan • Control hazard = dikenal sebagai cabang bahaya, terjadi ketika pipa membuat keputusan yang salah tentang prediksi cabang dan karena itu membawa petunjuk ke pipa yang harus kemudian dibuang