SRI SUPATMI,S.KOM multi level >> ORGANISASI DAN ARSITEKTUR KOMPUTER • Organisasi komputer mempelajari bagian yang terkait dengan unit-unit operasional komputer dan hubungan antara komponen sistem komputer,contoh : sinyal kontrol, prosesor, interface komputer dan peripheral, teknologi memori yang digunakan. • Arsitektur komputer mempelajari atribut-atribut sistem komputer yang terkait dengan seorang programmer dan memiliki dampak langsung pada eksekusi logis sebuah program, contoh : set instruksi, jumlah bit yang digunakan untuk merepresentasikan bermacam-macam jenis data (misal bilangan, karakter), aritmetika yang digunakan, teknik pengalamatan, mekanisme I/O. >> KOMPUTER SEBAGAI MESIN MULTI LEVEL Level adalah suatu tingkatan bahasa dan mesin virtual yang mencerminkan tingkat kemudahan komunikasi antara manusia sebagai pemrogram dengan komponen sirkuit elektronik dalam sebuah komputer sebagai pelaksana instruksi sebuah pemrograman. Bahasa atau level yang terletak paling bawah adalah yang paling sederhana dan dapat diproses dengan cepat oleh mesin komputer, tetapi sulit untuk dipahami oleh manusia. Bahasa atau level yang paling atas adalah yang paling rumit dan mesin akan lebih lama melakukan proses instruksinya karena memerlukan interpreter, tetapi manusia lebih mudah memahami bahasa level tersebut. >> KOMPUTER SEBAGAI MESIN 6 LEVEL Pada level 1 – 3 merupakan bahasa mesin bersifat numerik. Program-program didalamnya terdiri dari deretan angka yang panjang, yang tidak menjadi masalah untuk mesin tapi merupakan persoalan untuk manusia. Mulai pada level 4 bahasa berisi kata/singkatan yang mempunyai arti bagi manusia. Komputer dirancang sebagai suatu rangkaian level, dimana setiap level dibangun diatas level sebelumnya. Setiap level memiliki abstraksi berbeda, dengan objek-objek dan operasi yang juga berbeda. • Kumpulan jenis data, operasi dan sifat dari setiap level disebut arsitektur dari level tersebut. • Sifat-sifat yang dipahami oleh programmer,seperti berapa besar memori yang tersedia, adalah bagian dari arsitektur. • Sedangkan aspek implementasi seperti jenis teknologi chip apa yang digunakan untuk mengimplementasikan memori bukan bagian dari arsitektur. • Studi tentang cara merancang bagian-bagian suatu sistem komputer yang terlihat oleh programmer disebut arsitektur komputer. SRI SUPATMI,S.KOM >> Komputer Generasi Pertama 1940 -1959 ENIAC (Electronic Numerical Integrator and Calculator)Komputer ENIAC ini diciptakan oleh Dr John Mauchly dan J. Presper Eckert pada tahun 1946 (one year after the war was over) EDVAC (Electronic Discrete Variable Automatic Computer) Penggunaan tiub tiub vakum juga telah dikurangi di dalam EDVAC, di mana proses perhitungan telah menjadi lebih cepat dibandingkan ENIAC EDSAC (Electronic Delay Storage Automatic Calculator) the world’s first stored-program computer. Diciptakan oleh Maurice Wilkes EDSAC telah memperkenalkan penggunaan raksa (merkuri) dalam tube untuk menyimpan memori. was based on the discovery of the matematician John von Neumann. UNIVAC I (Universal Automatic Calculator)P ada tahun 1951 Dr Mauchly dan Eckert menciptakan UNIVAC I , komputer pertama yang digunakan untuk memproses data perniagaan. >>Komputer Generasi Ke Dua ( 1959-1964 ) Komputer-komputer generasi kedua telah menggunakan transistor dan diode untuk menggantikan saluran-saluran vakum dan menjadikan ukuran komputer lebih kecil dan murah. Cara baru menyimpan memori juga diperkenalkan melalui teknologi magnetik. Keupayaan pemprosesan dan ukuran memori utama komputer juga bertambah dan manjadikan ia lebih efisien. Kemunculan FORTRAN dan COBOL menandakan permulaan bahasa tingkat tinggi untuk menggantikan bahasa pengantar dalam mesin yang lebih sukar. Minikomputer juga telah diperkenalkan yaitu yang kedua terbesar di dalam generasi komputer. Versinya yang pertama ialah DEC PDP 8 yang diciptakan pada tahun 1964 yang berguna untuk memproses data-data. >> Komputer Generasi Ke Tiga (1964-awal 80-an) Chip mulai menggantikan transistor sebagai bahan logis komputer dengan terhasilnya Integrated Circuit atau lebih dikenal dengan sebutan chip. Jenis komputer terkecil mikrokomputer telah muncul dan paling cepat menjadi popular seperti Apple II, IBM PC dan Sinclair. Banyak bahasa pemrograman telah muncul seperti BASIC, Pascal dan PL/1. Kebanyakan mikrokomputer didasari dengan tafsiran bahasa secara mendalam, chip ROM untuk menggunakan bahasa BASIC. Komputer Generasi Ke Empat (awal 80-an-??) Chip masih digunakan untuk memproses dan menyimpan memori. Ia lebih canggih, dilengkapi hingga ratusan ribu komponen transistor yang disebut pengamiran skala amat besar (very large scale intergartion,VLSI). Pemprosesan dapat dilakukan dengan lebih tepat,sampai jutaan bit per detik. Memori utama komputer menjadi lebih besar sehingga menyebabkan memori sekunder kurang penting. Teknologi chip yang maju ini telah mewujudkan satu lagi kelas komputer yang disebut Supercomputer. Komputer Generasi Ke Lima (masa depan) Generasi kelima dalam sejarah evolusi komputer merupakan komputer impian masa depan. Ia diperkirakan mempunyai lebih banyak unit pemprosesan yang berfungsi bersamaan untuk menyelesaikan lebih daripada satu tugas dalam satu masa. Komputer ini juga mempunyai ingatan yang amat besar sehingga memungkinkan penyelesaian lebih dari satu tugas dalam waktu bersamaan. Unit pemprosesan pusat juga dapat berfungsi sebagai otak manusia. Komputer ini juga mempunyai kepandaian tersendiri, merespon keadaan sekeliling melalui penglihatan yang bijak dalam mengambil sesuatu keputusan bebas dari pemikiran manusia yang disebut sebagai artificial intelligence (AI). SRI SUPATMI,S.KOM 3. ALU Tugas utama adalah melakukan semua perhitungan aritmatika dan melakukan keputusan dari suatu operasi logika. 4. I/O Interconection Input-Output (/O) Interconection merupakan sistem koneksi yang menghubungkan antar komponen internel dalam sebuah CPU, yaitu ALU, unit kontrol, dan register serta menghubugkan CPU dengan busbus eksternal diluar CPU. >> SIKLUS INSTRUKSI Program yang ada di memori komputer terdiri dari sederetan instruksi. Setiap instruksi dieksekusi melalui suatu siklus. Setiap siklus instruksi terdiri dari tahap-tahap : 1. Instruction fetch, yaitu mengambil instruksi dari memori dan mentransfernya ke unit kontrol. 2. Mengartikan (decode) instruksi dan menentukan apa yang harus dikerjakan serta data apa yang digunakan. 3. Baca alamat efektif, jika instruksi beralamat indirect. 4. Proses eksekusi instruksi dengan memilih operasi yang diperlukan dan mengendalikan perpindahan data yang terjadi. 5. Terdapat register dalam CPU yang berfungsi mengawasi dan menghitung instruksi selanjutnya yaitu Program Counter 6. PC akan menambah satu hitungan setiap kali CPU membaca instruksi 7. Instruksi-instruksi yang dibaca akan dibuat dalam register instruksi (IR) Berikut ini beberapa istilah yang digunakan di dalam aktifitas atau proses-proses pada siklus tersebut : Instruction Address Calculation (IAC), yaitu proses mengkalkulasi atau menentukan alamat instruksi berikutnya yang akan dieksekusi Instruction Fetch (IF) yaitu membaca atau mengambil 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) yaitu mengambil operand dari memori atau dari modul I/O Data Operation (DO) yaitu proses membentuk operasi yang diperintahkan dalam instruksi. Operand Store (OS) yaitu proses menyimpan hasil eksekusi ke dalam memori atau mengeluarkan ke I/O. 5. INTERUPSI Fungsi interupsi adalah mekanisme penghentian atau pengalihan pengolahan instruksi dalam CPU kepada routine interupsi. Hampir semua modul (memori dan I/O) memiliki mekanisme yang dapat menginterupsi kerja CPU. Tujuan interupsi secara umum untuk manajemen pengeksekusian routine instruksi agar efektif dan efisien antar CPU dan modul-modul I/O maupun memori. Setiap komponen komputer dapat menjalankan tugasnya secara bersamaan, tetapi kendali terletak pada CPU dan kecepatan eksekusi masing-masing modul berbeda sehingga dengan adanya fungsi interupsi dapat sebagai sinkronisasi kerja antar modul. Dalam CPU terdapat sinyal-sinyal interupsi sebagai berikut : Program nterupsi yang dibangkitkan dengan beberapa kondisi yang terjadi pada hasil eksekusi program, contoh : aritmatika overflow, pembagian nol, operasi ilegal Timer Interupsi yang dibangkitkan pewaktuan dalam prosesor. Sinyal ini memungkinkan sistem operasi menjalankan fungsi tertentu secara reguler I/O Sinyal interupsi yang dibangkitkan oleh modul I/O sehubungan pemberitahuan kondisi error dan penyelesaian suatu operasi. Hardware failure Interupsi yang dibangkitkan oleh kegagalan daya atau kesalahan paritas memori >> CONTOH EKSEKUSI PROGRAM DALAM CPU Tahap eksekusi program : Tahap 1 PC (Program Counter) berisi alamat 300 untuk instruksi pertama. Instruksi yang berada di alamat 300 dimuatkan ke IR (Instruction Register).Tentunya proses ini melibatkan penggunaan MAR (Memory Address Register) dan MBR (Memory Buffer Register) Tahap 2 Instruksi dalam IR : untuk 4 bit pertama menunjukkan opcode, bit berikutnya yaitu 12 bit menunjukkan alamat. Jadi instruksi 1940 maksudnya 1 = opcode 0001 = isi AC dari memori alamat 940 Tahap 3 PC bertambah nilainya dan instruksi berikutnya diambil yaitu di alamat 301 dan dimasukkan di dalam IR. Tahap 4 Instruksi dalam IR yaitu 5941 maksudnya 5 = opcode 0101 = tambahkan AC dengan isi memori alamat 941 dan hasilnya disimpan dalam AC. Tahap 5 PC bertambah nilainya dan instruksi berikutnya diambil yaitu di alamat 302 dan dimasukkan di dalam IR. Tahap 6 Instruksi dalam IR yaitu 2941 maksudnya 2 = opcode 0010 = isi AC disimpan di memori alamat 941. SRI SUPATMI,S.KOM >> CISC BANDING RISC Ada dua buah konsep popuker yang berhubungan sengan desain cpu dan set instruksi: 1. Complex Instruction Set Computing (CISC) 2. Reduce Instruction Set Computing (RISC) Semua sistem yang lama ( komputer mainframe, komputer mini atau komputer mikro) relatif saat ini lebih populer karena tingkat kinerjanya, dibandingkan dengan sistem CISC. Namun demikian, karena biayanya tinggi, sistem RISC hanya digunakan ketika diperlukan kecepatan khusus, keadaan dan sebagainya. 1. Trend Teknologi CISC Umumnya set instruksi pada sistem CISC dibuat efisien dengan memasukkan sejumlah besar complex instruction (instruksi kompleks). Tujuannya adalah mengurangi ukuran program yang telah terkompilasi (bahasa mesin) dengan instruksi-instruksi yang terbatas. Sebuah instruksi kompleks pada dasarnya adalah ekivalen dengan tiga atau empat simple instruction (instruksi sederhana). Karena program yang telah terkompilasi mempunyai ukuran kecil, kebutuhan memori utama juga kecil. Keuntungan Instruksi Kompleks antara lain: 1. Jumlah instruksi di dalam sebuah program (terkompilasi) 2. lebih sedikit,hal tersebut bisa mengurangi harga sistem (penggunaan memori kecil). Waktu yang digunakan CPU untuk pengambilan (fetching) instruksi lebih sedikit, sehingga bisa mengurangi waktu eksekusi program. Diperlukan compiler efisiensi tinggi untuk menggunakan instruksi kompleks yang lebih sering pada saat translasi program bahasa tingkat tinggi ke program bahasa mesin. Karena itu, software sistem (compiler) menjadi sangat besar untuk membuat kode objek yang kecil. Saat ini komputer menggunakan memori semikonduktor sebagai memori utama (dan memori cache) yang lebih murah dan lebih cepat. Ilustrasi Konsep CISC >> Kelemahan CISC >> Beberapa kelemahan sistem CISC adalah: 1. Komplesitas CPU: desainunit kontrol (utamanya pendekodean instruksi) menjadi kompleks karena mempunyai set instruksi yang besar. 2. Ukuran sistem dan biaya: mempunyai banyak sirkuit hardware yang menyebabkan CPU manjadi kompleks. Hal ini meningkatkan biaya hardware pada sistem dan juga kebutuhan daya listrik. 3. Kecepatan Clock: karena sirkuit yang besar maka progagation delay (tunda propagasi) lebih besar dan waktu siklus CPU yang besar sehingga kecepatan clock efektif menurun. 4. Keandalan: dengan hardware yang besar maka cenderung mudah menjadi kegagalan. 5. Maintainability: Troubleshooting dan pendeteksian suatu kegagalan mengakibatkan pekerjaan menjadi besar karena besarnya sirkuit yang ada. Dengan penemuan microprogramming membantu menurunkan beban tersebut. 2. Konsep RISC Istilah “KISS” sering digunakan dalam konsep RISC yang merupakan singkatan dari “ Keep Is short and simple)”. Arsitektur RISC mempunyai fitur sebagai berikut: 1. Instruksinya sederhana 2. Set instruksi kecil 3. Panjang instruksinya sama untuk semua instruksi 4. Register untuk penyimpanan operand jumlahnya besar 5. Arsitektur Load/Store: operand untuk instruksi aritmatika seperti “ADD” tersedia di register dan bukan di memori. Demikian halnya hasil instruksi “ADD” disimpan di register bukan di memori. Jadi Instruksi “LOAD” akan mendahului instruksi “ADD” dan instruksi “STORE” akan mengikuti instruksi “ADD”, jika diperlukan. Karena itu compiler akan memberikan banyak instruksi “LOAD” dan “STORE”. 6. Eksekusi instruksi yang lebih cepat (memberikan kecepatan siklus instruksi rata-rata satu clok per instruksi). Pipeline instruksi, memori cache internal (built-in) dan arsitektur supersaklar yang termasuk dalm CPU supaya rata-rata satu instruksi menghasilkan pipeline untuk setiap clock. >> Ilustrasi Skenario RISC CPU RISC yang berbasis mikroprosesor maupun yang non-mikroprosesor hingga saat ini telah didesain dan dipasarkan. Berikut beberapa CPU RISC: 1. IBM RS/6000 atau Arsitektur POWER 2. Keluarga Sun’s SPARC 3. HP’s PA (precision architecture) 4. Keluarga Motorola 88000 5. Intel 860 6. Seri MIPS 7. PowerPC >> Mikroprosesor RISC Pabrik mikroprosesor dari dulu tidk memberikan prioritas pengembangan prosesor. Salah satu alasannya adalah ketersediaan kompatibilitas (pada mikroprosesor baru) terhadap mikroprosesor sebelumnya yaitu CPU tipe CISC. Pada umumnya mikroprosesor keluarga Intel (8008 sampai pentium 4) adalah tipe CISC kecuali Intel 860. Keluarga Motorola 88000 termasuk dalam tipe RISC. Sedangkan powerPC merupakan CPU tipe RISC yang dikembangkan bersama oleh IBM, Motorola dan Apple. Saat ini telah didesain untuk menyediakan mikroprosesor RISC yang murah untuk pengguna. Sri Supatmi,S.Kom >> KLASIFIKASI ARSITEKTURAL Ada 3 skema klasifikasi arsitektural sistem komputer, yaitu: 1. Klasifikasi Flynn Didasarkan pada penggandaan alur instruksi dan alur data dalam sistem komputer. 2. Klasifikasi Feng Didasarkan pada pemrosesan paralel dan serial 3. Klasifikasi H ndler Didasarkan pada derajat keparalelan dan pipelining dalam berbagai tingkat subsistem. >> KLASIFIKASI FLYNN Klasifikasi sistem komputer yang didasarkan pada penggandaan alur instruksi dan alur data diperkenalkan oleh Michael J. Flynn Alur instruksi (instruction stream) adalah urutan instruksi yang dilaksanakan oleh mesin Alur data adalah urutan data yang dipanggil oleh alur instruksi Baik instruksi maupun data diambil dari modul memori Instruksi didecode (diartikan) oleh Control Unit. Alur data mengalir dua arah antara prosesor dan memori. Ada 4 kategori sistem komputer dalam klasifikasi Flynn: 1. Single Instruction stream – Single Data stream (SISD) 2. Single Instruction stream – Multiple Data stream (SIMD) 3. Multiple Instruction stream – Single Data stream (MISD) 4. Multiple Instruction stream – Multiple Data stream (MIMD) >> Tabel klasifikasi Flynn Instruksi Tunggal (Single instruction) Data Tunggal (single data) Data majemuk (multiple data) Instruksi Majemuk (multiple instruction) SISD (Single instructin single data) MISD (multiple instruction single data) SIMD (Single instruction multiple data) MIMD (multiple instruction multiple data ) 1. Single Instruction Single Data Stream Sebuah komputer yang instruksi-instruksinya dijalankan satu per satu dan sebuah instruksi tunggal berhubungan dengan paling banyak satu operasi data. Dapat juga menggunakan pipelining untuk mempercepat pemrosesan dan kebanyakan komputer SISD di-pipelin-kan ke beberapa saluran tambahan. Karakteristik SISD yang penting adalah pelaksanaan instruksi secara sekuensial (secara berurut) dalam arti instruksi dan data diproses secara serial. Satu alur instruksi di decodekan untuk alur data tunggal. >> ilustrasi Single Instruction Single Data Stream Keterangan: CU : Control Unit PU : Processor Unit MM : Memory Module 2. Multiple Instruction stream – Single Data stream (MISD) Sebuah komputer yang dapat melakukan banyak instruksi terhdap satu aliran data. Komputer jenis ini tidak pernah diaplikasikan karena ridak efektif dan efisien. Ada dua kategori: 1.Mesin dengan Unit pemroses berbeda dengan instruksi yang berbeda dengan data yang sama (sampai sekarang tidak ada mesin yang seperti ini) 2.Mesin, dimana data akan mengalir ke elemen pemroses serial >> lanjutan Keterangan gambar: CU1,CU2,..Cu-n : Control Unit PU1,PU2,PU-n : Processor Unit MM : Memory Module Sejumlah PU, masing-masing menerima instruksi yang berbeda dan mengoperasikan data yang sama. Output salah satu prosesor menjadi input bagi prosesor berikutnya. Struktur komputer ini tidak praktis, sehingga tidak ada komputer yang menggunakannya. 3. Single Instruction stream – Multiple Data stream (SIMD) Sebuah komputer yang mampu memproses banyak aliran data dengan hanya satu instruksi. Operasi yang dilakukan adalah paralel. Contoh dari SIMD adalah prosesor larik (array processor) atau GPU. >> Ilustrasi Single Instruction stream – Multiple Data stream (SIMD) PE : Processing Element CU : Control Unit PU : Processor Unit MM : Memory Modul SM : Shared Memory IS : Instruction Stream DS : Data Stream Beberapa Processor Unit (Processing Element) disupervisi oleh Control Unit yang sama. Semua Processing Element menerima instruksi yang sama dari control unit tetapi mengeksekusi data yang berbeda dari alur data yang berbeda pula. Subsistem memori berisi modul-modul memori. Processor vektor dan processor array termasuk dalam kategori ini. SRI SUPATMI,S.KOM 1. Desain Set Instruksi Pekerjaan yang paling signifikan/penting dan kompleks dalam mendesain komputer adalah membuat set instruksi. Komputer era sebelumnya tidak melakukan perencanaan set instruksi. Kelemahan desain set instruksi mereka secara drastis mempengaruhi ruang memori utama oleh panjang program (bahasa mesin). Karena itu, desain yang baik, perencanaan awal set instruksi memungkinkan compiler membuat kode objek yang kompak (tersusun baik dan padat) tersimpan pada ruang memori. Seorang arsitektur komputer harus mempertimbangkan aspek-aspek berikut sebelum menyelesaikan set instruksi: 1. Kenyamanan Pemrograman: Jumlah instruksi; pemrogram lebih suka mempunyai sebanyak mungkin instruksi supaya operasi yang tepat dapat dikerjakan oleh rangkaian instruksi. Tetapi mempunyai terlalu banyak instruksi dalam set instruksi menghasilkan desain unit kontrol yang kompleks. Pendekokean instruksi memerlukan sirkuit dan waktu yang besar. 2. Pengalamatan yang fleksibel: pemrogram senang jika memungkinkan semua mode pengalamatan operand ada di dalam arsitektur. Hal ini memberikan fleksibilas yang banyak kepada pemrogram. Walaupun desain unit kontrol menjadi kompleks. 3. Jumlah General Purpose Register (GPR): Jika CPU mempunyai register yang banyak, pemrogram memperoleh pemrosesan dan transfer data yang cepat. Tetapi biaya perangkat keras CPU meningkat dengan banyaknya GPR. >> Lanjutan 4. Target Segmen Pasar: sasaran bidang aplikasi untuk komputer memerlukan operasi-operasi khusus untuk pemrosesan data yang efisien. Komputer saintifk harus mempunyai aritmetika floating-point yang tingkat presisinya baik/tidak terlalu jelek. Sedangkan komputer bisnis harus mendukung aritmetika desimal, komputer iburan harus mempunyai operasi-operasi multimedia. 5. Kinerja Sistem: Jika sebuah program mempunyai instruksi sedikit, kinerja sistem meningkat karena waktu yang digunakan oleh CPU dalam pengambilan instruksi berkurang. Untuk program yang pendek, instruksi yang digunakan harus instruksi kompleks. Jadi instruksi tunggal harus dapat melakukan beberapa mikrooperasi. Pemrogram menyadari hal ini mengurangi ukuran program. Tapi di sisi lain menambah kompleksitas unit kontrol dan waktu eksekusi instruksi. Konsep modern arsitektur RISC tidak mendukung instruksi-instruksi kompleks, walaupun semua komputer lama yang berbasis CISC menggunakan instruksi-instruksi kompleks. 2. CPU berbasis Akumulator Pada mulanya komputer adalah berbasis akumulator. Hal ini merupakan CPU yang sederhana, dimana akumulator berisi satu operand pada instruksi, demikian juga hasilnya disimpan pada akumulator. Isi akumulator disertakan di dalam operasi-0perasi aritmetika seperti penjumlahan, pengurangan dan sebagainya. Hal ini dikenal sebagai mesin satu-alamat. PDP-8 merupakan minicomputer pertama yang mempunyai jenis CPU seperti ini dan digunakan untuk kendali proses dan aplikasi-aplikasi laboratorium. Komputer Mark I juga merupakan komputer khas yang berbasis akumulator. Organisasi CPU secara total telh digantikan dengan diperkenalkan CPU berbasis register yang baru. Keuntungan CPU berbasis akumulator adalah: Isi akumulator diperuntukkan bagi satu operand. Karena itu tidak memerlukan medan alamat operand (untuk satu operand) dalam instruksi. Hal ini menghasilakn instruksi yang pendek dan ruang memori yang sedikit. Karena tidak adanya medan alamat, maka jenis CPU ini mendukung instruksi-instruksi non-alamat dan satualamat. Instruksi satu-alamat mempunyai satu operand di dalam memori utama dan yang lainnya di dalam akumulator. 2. Siklus instruksi menggunakan waktu yang singkat sebab menghemat waktu dalam pengambilan instruksi karena tidak ada siklus pengambilan operand. 1. Kekurangan CPU berbasis akumulator adalah: 1. Ukuran programnya menjadi panjang karena banyak menggunakan instruksi dalam ekspresi-ekspresi kompleks. Karena itu ukuran memori bertambah. 2. Waktu eksekusi program bertambah karena bertambahnya jumlah instruksi dalam program. >> Contoh2: Tuliskan sebuah program bahasa rakitan dalam arsitektur CPU berbasis akumulator untuk menyelesaikan statement X=(A+B)-(C+D) Solusi: LOAD A : Salin A ke dalam akumulator ADD B : Jumlahkan B dengan isi akumulator dan hasilnya disimpan di akumulator ( akumulator berisi A+B) STORE T : simpan hasil AB dalam T, suatu lokasi memori sementara LOAD C : salin C ke dalam akumulator ADD D : Jumlahkan D ke dalam akumulator dan simpan hasilnya dalam akumulator (akumulator berisi C+D) SUB T : Perkurangkan isi akumulator dari T dan simpan hasilnya dalam akumulator STORE X : Simpan isi akumulator di dalam lokasi memori X. 3. CPU Berbasis Register Pada CPU jenis ini, banyak register yang digunakan sebagai akumulator. Dengan kata lain, ada lebih dari satu akumulator. CPU seperti ini mempunyai organisasi register umum GPR (general purpose register). Penggunaan register-register tersebut menghasilkan program yang pendek dengan instruksi yang sedikit. IBM System/360 dan PDP-11 merupakan contoh khas. >> Contoh2: Tuliskan sebuah program bahasa rakitan dalam arsitektur CPU berbasis register untuk menyelesaikan statement X=(A+B)-(C+D) Solusi: LOAD R1,A : salin A ke dalam register ADD R1,B : Jumlahkan B dengan isi R1 dan hasilnya disimpan di R1 LOAD R2,C : salin C ke dalam R2 ADD R2,D : Jumlahkan D ke dalam R2 dan simpan hasilnya di R2 SUB R1,R2 : perkurangkan isi R2 dan R1 dan simpan hasilnya dalam R1 STORE,X : simpan hasil di dalam lokasi memori X Dibandingkan dengan contoh2 terlihat bahwa CPU berbasis register (arsitektur GPR) menghasilkan ukuran program yang lebih pendek daripada CPU berbasis akumulator. Dan juga program pada CPU yang berbasis akumulator memerlukan lokasi memori untuk menyimpan asil sementara(parsial). Karena itu diperlukan akses memori tambahan selama eksekusi program. Jadi, penambahan jumlah register akan menambah efisiensi CPU. 3.CPU Berbasis Stack Stack merupakan daftar yang didorong ke bawah dengan mekanisme akses LIFO (Last In Firs Out). Stack yang menyimpan operand-operand. Penggunaan stack dapat berada di dalam CPU atau merupakan bagian dari memori. Suatu register(atau lokasi memori) digunakan untuk menunjuk ke alamat lokasi kosong pada puncak stack. Register ini dikenal dengan Stack Pointer (SP). Bila tidak ada yang tersimpan dalam stack, berarti stack kosong dan SP menunjuk ke bagian stack terbawah. Bila suatu item disimpan di dalam stack, maka dinamakan oerasi PUSH; dan isi SP diturunkan (decrement) Bila stack penuh, SP menunjuk ke bagian stack teratas. Bila suatu item diambil dari satck(operasi POP),maka SP dinaikkan (uncrement). >> Konsep Stack >> Operasi Stack Keterangan konsep stack & operasi stack: Item yang terakhr didorong ke dalam stack, akan keluar pertama jika ada operasi POPberikutnya. Pada CPU berbasis stack, semua operasi oleh CPU dikerjakan pada isi stack. Demikian halnya,hasil suatu operasi juga disimpan pada stack. Pada eksekusi suatu instruksi aritmetika seperti ADD, operand-operand teratas yang di-pop Komputer Burroughs B5000 dan HP 3000 merupakan contoh dari komputer berbasis stack. Contoh3: Tuliskan sebuah program bahasa rakitan dalam arsitektur CPU berbasis stack untuk menyelesaikan statement X=(A+B)-(C+D) Statement Isi Stack setelah eksekusi instruksi Lokasi stack yang diduduki PUSH A A 1 PUSH B A,B 2 ADD A+B 1 PUSH C (A+B),C 2 PUSH D (A+B),C,D 3 ADD (A+B),(C+D) 2 SUB (A+B),(C+D) 1 POP X Kosong 0 Dari isi stack, dapat dilihat bahwa stack berubah bil beberapa operasi PUSH mendapat tempat. Bila suatu instruksi dieksekusi, operand dipindahkan dari stack dan hasilnya menempati posisi pada puncak stack. Contoh3 menunjukkan bahwa ukuran program untuk komputer berbasis stack lebih besar dibandingkan dengan CPU berbasis register. Keuntungan CPU berbasis Stack adalah: Pemrograman mudah/efisiensi compiler tinggi 2. Sangat cocok untuk bahasa-bahasa blok-terstruktur (block-structered language) 3. Instruksi tidak mempunyai fieldalamat; instruksi pendek. Kelemahan CPU berbasis Stack: 1. Diperlukan sirkuit hardware tambahan untuk implementasi stack 2. Ukuran program meningkat. 1. 4. Panjang Istruksi Intruksi yang terlalu panjang mempunyai kekurangan: 1. Instruksi menempati ruang memori yang lebih besar, yang meningkatkan kebutuhan memori sistem 2. lebar luas data besar atau pengambilan instruksi lebih memakan waktu. Kondisi pertama menambah biaya hardware sedangkan yang kedua menambah waktu siklus instruksi. Instruksi yang terlalu pendek mempunyai kekurangan: 1. Terlalu banyak instruksi di dalam program. Karena itu banyak waktu yang terbuang untuk fase pengambilan 2. Ukuran program bertambah. Karena itu kebutuhan memori bertambah. 5. Format Instruksi Umumnya format instruksi terdiri dari kode operasi dan operand. Suatu instruksi memberikan palng banyak empat informasi pada CPU : 1. 2. 3. 4. Operasi yang akan dikerjakan oleh instruksi Operand (data) yang harus dioperasikan Lokasi (memori atau register) di mana hasil operasi harus disimpan Lokasi memori dimana instruksi berikutnya harus diambil Instruksi Empat-alamat contoh4 Medan panjang instruksi dan medan alamat operand masing-masing adalah 36 bit dan 14 bit. Jika instruksi dua-operand yang digunakan sebanyak 240, berapa banyak instruksi satu-operand yang memungkinkan? Solusi: Panjang instruksi = 36 bit sebuah instruksi dua-operand membutuhkan 28 bit untuk alamat operand (2x14 bit).karena itu Ukuran opcode=36-28 = 8bit Total instruksi yang mungkin = 2 pangkat 8 = 256 Jumlah instruksi satu-operand= 256-240 = 16 Sri Supatmi,S.Kom 5. Pengalamatan Register Format instruksi perngalamatan register Secara konseptual, pengalamatan register mirip dengan pengalamatan langsung kecuali lokasi memori digantikan dengan register untuk menyimpan operand. Instruksi berisi nomor register yang mempunyai operand. Mode pengalamatan ini sangat berguna untuk suatu program yang panjang dalam penyimpanan hasil-hasil sementara di dalam register daripada di dalam memori. >> Lanjutan: Contoh berikut adalah ilustrasi mode pengalamatan register: ADD R1,R2 Jumlah isi register R1 dan R2 dan hasilnya disimpan di R1. Kedua operand menggunakan pengalamatan register. STORE R1,MEM1 isi dari register R1 disimpan/disalin ke alamat memori MEM1; operand pertama menggunakan pengalamatan register dan operand kedua menggunakan pengalamatan langsung. >> Keuntungan dan Kelemahan Pengalamatan Register Keuntungan: pengambilan operand lebih cepat tanpa akses memori Kelemahan: Jumlah register terbatas dan karena itu utilisasi efektif oleh programmer merupakan hal yang esensial. 6. Pengalamatan Indeks Format instruksi pengalamatan Indeks Pada mode pangalamatan indeks, alamat operand diperoleh dengan menambahkan sebuah konstanta ke suatu register, yang disebut register indeks. Instruksi ini mengisi register Ri dengan isi lokasi memori yang alamatnya adalah hasil jumlah isi register Rind dan nilai X Contoh: LOAD X(Rind),Ri instruksi ini menyalin operand alamat hasil penjumlahan nilai X dengan nilai register Rind ke dalam register Ri >> lanjutan 1: Mode ini berbeda sedikti dengan mode pengalamatan base register. Register indeks berisi sebuah offset atau perpindahan (displacement). Instruksi berisi alamat yang akan ditambahkan pada offset dalam register indeks, untuk mendapatkan alamat operand efektif. Umumnya medan alamat dalam instruksi memberikan alamat awal array dalam memori. Register indeks berisi ‘nilai indeks’ untuk operand yaitu selisih antara alamat awal dan alamat operand. Dengan mengubah register indeks, maka operand dalam array dapat diakses. Umumnya operand-operand(elemen-elemen array) berada dalam lokasi yang berurutan. Mereka diakses dengan increment yang sederhana pada register indeks. >> lanjutan2: Beberapa CPU mendukung fitur ‘autoindexing’, yang melibatkan auto-increment (dengan hardware) pada register indeks kapanpun sutu instruksi dengan pengalamatan indeks dieksekusi. Hal ini mengurangi penggunaan instruksi terpisah dalam menambah(increment) isi register indeks. Hal ini juga lebih mempercepat aksi serta lebih mengurangi ukuran program. Namun memberikan tanggungjawab tambahan ‘autoindexing’ pada unit kontrol. 7. Pengalamatan Relatif Format instruksi pengalamatan relatif Pengalamatan relatif sama seperti pengalamatan indeks kecuali register indeks diganti dengan program counter (PC). Instruksi ini megisi Ri dengan kandungan lokasi memori yang alamatnya adalah hasil jumlah program counter (PC) dengan nilai X >> Lanjutan3: Pada mode ini,instruksi menetapkan alamat operand (lokasi memori) sebagai posisi relatif dari alamat instruksi sekarang yaitu isi PC. Karena itu operand terletakpada ‘jarak pendek’ dari isi PC. Jumlah mode ini digunakan untuk menetapkan alamat pencabangan dalam instruksi branch, alamat pencabangan berada dekat dengan alamat instruksi. Contoh: JUMP+8(PC) JUMP-8(PC) >> Keuntungan Pengalamatan Relatif Keuntungan: Jumlah bit dalam medan alamat lebih sedikit 8. Pengalamatan Base Register Mode ini digunakan untuk relokasi program di dalam memori (dari satu area ke area lain). Pada mode pengalamatan base register, instruksi tidak berisi alamat. Dia memberikan perpindahan relatif terhadap area memori sekarang ke area memori yang lain, base register diisi dengan alamat base baru. Instruksi tidak perlu dimodifikasi/diubah. Dengan cara ini, keseluruhan program atau suatu segment dri program dapat dipindahkan dari satu area di memori ke yang lain tanpa mempengaruhi instruksi, dengan perubahan sederhana ini base register. Hal ini penting untuk sistem multiprogramming karena waktu yang berbeda (run), area berbeda dari memori tersedia untuk sebuah program. Sebuah CPU dapat mempunyai lebih dari satu base register. >>Format Instruksi & keuntungan Pengalamatan Base Register Format instruksi pengalamatan base register Keuntungan: medan alamat operand dalam instruksi sangat pendek karena dia hanya memberikan offset(perpindahan);alamat operand dikalkulasikan tanpa akses memori. 9. Pengalamatan Stack Pada pengalamatan stack(tumpukan), semua operand untuk suatu instruksi diambl dari bagian teratas stack. Instruksi tidak mempunyai medan operand. Misalnya, sebuah instruksi ADD hanya memberikan opcode (ADD). Kedua operand dalam stack, di dalam lokasi yang berurutan. Bila instruksi ADD dieksekusi, dua operand di-pop-off dari stack satu persatu. Setelah penjumlahan, hasilnya di-push ke dalam stack. Keuntungan: Tidak ada menda operand dalam instruksi, karena itu instruksinya pendek. |