tag:blogger.com,1999:blog-28157041337401523382024-03-08T00:48:28.129-08:00Ayo Belajar BarengFavahttp://www.blogger.com/profile/00718531650181754542noreply@blogger.comBlogger10125tag:blogger.com,1999:blog-2815704133740152338.post-4255829690140668972012-01-05T09:26:00.000-08:002012-01-05T09:26:00.824-08:00Pertemuan 10<b>SUPERSCALAR<br />
</b><br />
<b>1. Pengertian</b><br />
<br />
Superscalar adalah sebuah unitprocessor yang dapat mengeksekusi dua atau lebih operasi scalar dalm bentuk paralel. Superscalar merupakan salah satu rancangan untuk meningkatkan kecepatan CPU.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Superscalar ini mampu menjlankan Instruction Level Parallelism dengan satu prosesor. Superscalar dapat diaplikasikan di RISC dan CISC, tapi pada umumnya RISC.<br />
<br />
<b>2. Alasan desain Superscalar</b><br />
<br />
Sebagian besar operasi menggunakan besaran/nilai skalar Operasi ini memungkinkan peningkatan kinerja sistem hingga level tertentu Superscalar Implementation.<br />
<br />
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.<br />
<br />
<b>3. Contoh Instruksi</b><br />
<br />
Add R1, R2, R3<br />
<br />
Misalkan, instruksi<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
<b>4. Contoh CPU yang menerapkan arsitektur superscalar :</b><br />
<br />
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<br />
Superscalar Processor Design<br />
<br />
• Use PowerPC 604 as case study<br />
<br />
• Speculative Execution, Register Renaming, Branch Prediction<br />
<br />
More Superscalar Examples<br />
<br />
• MIPS R10000<br />
<br />
• DEC Alpha 21264<br />
<br />
<b>5. Implementasi Superscalar</b><br />
<br />
Proses fetch dari beberapa instruksi secara bersamaan.<br />
Logika untuk menentukan ketergantungan sebenarnya yang meliputi nilai register.<br />
Mekanisme untuk mengkomunikasikan nilai tersebut.<br />
Mekanisme untuk menginisialisasi instruksi paralel.<br />
Tersedianya sumber untuk eksekusi paralel dari beberapa instruksi.<br />
Mekanisme processing instruksi dengan urutan yg sesuai.<br />
Pada penjelasan diatas bias diterangkan bahwa untuk superscalar dapat digunakan untuk berbagai keperluan dan dapat diimplementasikan pada perangkat prosessor seperti :<br />
<br />
Pentium 4<br />
<br />
Pada Pentium, implementasi superscalar dapat dijabarkan sebagai berikut :<br />
<br />
80486 – CISC.<br />
Pentium.<br />
ada beberapa komponen superscalar.<br />
2 unit eksekusi integer yang terpisah.<br />
Pentium Pro – Full superscalar.<br />
Memperhalus models subsequent & Meningkatkan design superscalar.<br />
6. Permasalahan pada Superscalar<br />
<br />
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.<br />
<br />
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).Favahttp://www.blogger.com/profile/00718531650181754542noreply@blogger.com0tag:blogger.com,1999:blog-2815704133740152338.post-71611405693949198832011-12-18T07:25:00.000-08:002011-12-18T07:25:28.040-08:00pertemuan 9<b>RISC dan CISC</b><br />
<br />
RISC singkatan dari Reduced Instruction Set Computer. Merupakan bagian dari arsitektur mikroprosessor, berbentuk kecil dan berfungsi untuk negeset istruksi dalam komunikasi diantara arsitektur yang lainnya.<br />
Sejarah RISC<br />
Proyek RISC pertama dibuat oleh IBM, stanford dan UC –Berkeley pada akhir tahun 70 dan awal tahun 80an. IBM 801, Stanford MIPS, dan Barkeley RISC 1 dan 2 dibuat dengan konsep yang sama sehingga dikenal sebagai RISC. RISC mempunyai karakteristik :<br />
<br />
one cycle execution time : satu putaran eksekusi. Prosessor RISC mempunyai CPI (clock per instruction) atau waktu per instruksi untuk setiap putaran. Hal ini dimaksud untuk mengoptimalkan setiap instruksi pada CPU.<br />
pipelining:adalah sebuah teknik yang memungkinkan dapat melakukan eksekusi secara simultan.Sehingga proses instruksi lebih efiisien<br />
large number of registers: Jumlah register yang sangat banyak. RISC di Desain dimaksudkan untuk dapat menampung jumlah register yang sangat banyak untuk mengantisipasi agar tidak terjadi interaksi yang berlebih dengan memory.<br />
<br />
Complex instruction-set computing atau Complex Instruction-Set Computer (CISC; "Kumpulan instruksi komputasi kompleks") adalah sebuah arsitektur dari set instruksi dimana setiap instruksi akan menjalankan beberapa operasi tingkat rendah, seperti pengambilan dari memory, operasi aritmetika, dan penyimpanan ke dalam memory, semuanya sekaligus hanya di dalam sebuah instruksi. Karakteristik CISC dapat dikatakan bertolak-belakang dengan RISC.<br />
Sebelum proses RISC didesain untuk pertama kalinya, banyak arsitek komputer mencoba menjembatani celah semantik", yaitu bagaimana cara untuk membuat set-set instruksi untuk mempermudah pemrograman level tinggi dengan menyediakan instruksi "level tinggi" seperti pemanggilan procedure, proses pengulangan dan mode-mode pengalamatan kompleks sehingga struktur data dan akses array dapat dikombinasikan dengan sebuah instruksi. Karakteristik CISC yg "sarat informasi" ini memberikan keuntungan di mana ukuran program-program yang dihasilkan akan menjadi relatif lebih kecil, dan penggunaan memory akan semakin berkurang. Karena CISC inilah biaya pembuatan komputer pada saat itu (tahun 1960) menjadi jauh lebih hemat.<br />
Memang setelah itu banyak desain yang memberikan hasil yang lebih baik dengan biaya yang lebih rendah, dan juga mengakibatkan pemrograman level tinggi menjadi lebih sederhana, tetapi pada kenyataannya tidaklah selalu demikian. Contohnya, arsitektur kompleks yang didesain dengan kurang baik (yang menggunakan kode-kode mikro untuk mengakses fungsi-fungsi hardware), akan berada pada situasi di mana akan lebih mudah untuk meningkatkan performansi dengan tidak menggunakan instruksi yang kompleks (seperti instruksi pemanggilan procedure), tetapi dengan menggunakan urutan instruksi yang sederhana.<br />
Satu alasan mengenai hal ini adalah karena set-set instruksi level-tinggi, yang sering disandikan (untuk kode-kode yang kompleks), akan menjadi cukup sulit untuk diterjemahkan kembali dan dijalankan secara efektif dengan jumlah transistor yang terbatas. Oleh karena itu arsitektur -arsitektur ini memerlukan penanganan yang lebih terfokus pada desain prosesor. Pada saat itu di mana jumlah transistor cukup terbatas, mengakibatkan semakin sempitnya peluang ditemukannya cara-cara alternatif untuk optimisasi perkembangan prosesor. Oleh karena itulah, pemikiran untuk menggunakan desain RISC muncul pada pertengahan tahun 1970 (Pusat Penelitian Watson IBM 801 - IBMs)<br />
Contoh-contoh prosesor CISC adalah System/360, VAX, PDP-11, varian Motorola 68000 , dan CPU AMD dan Intel x86.<br />
Istilah RISC dan CISC saat ini kurang dikenal, setelah melihat perkembangan lebih lanjut dari desain dan implementasi baik CISC dan CISC. Implementasi CISC paralel untuk pertam` kalinya, seperti 486 dari Intel, AMD, Cyrix, dan IBM telah mendukung setiap instruksi yang digunakan oleh prosesor-prosesor sebelumnya, meskipun efisiensi tertingginya hanya saat digunakan pada subset x86 yang sederhana (mirip dengan set instruksi RISC, tetapi tanpa batasan penyimpanan/pengambilan data dari RISC). Prosesor-prosesor modern x86 juga telah menyandikan dan membagi lebih banyak lagi instruksi-instruksi kompleks menjadi beberapa "operasi-mikro" internal yang lebih kecil sehingga dapat instruksi-instruksi tersebut dapat dilakukan secara paralel, sehingga mencapai performansi tinggi pada subset instruksi yang lebih besar.Favahttp://www.blogger.com/profile/00718531650181754542noreply@blogger.com0tag:blogger.com,1999:blog-2815704133740152338.post-79513538773740401722011-12-05T14:20:00.000-08:002011-12-05T14:24:29.977-08:00Pertemuan 8<b>Struktur Program Assembly</b><br />
<br />
Sarana yang ada dalam program assembly sangat minim, tidak seperti dalam bahasa pemrograman tingkat atas (high level language programming) semuanya sudah siap pakai. Penulis program assembly harus menentukan segalanya, menentukan letak program yang ditulisnya dalam memori-program, membuat data konstan dan tablel konstan dalam memori-program, membuat variabel yang dipakai kerja dalam memori-data dan lain sebagainya.<br />
<br />
<b>Program sumber assembly</b><br />
Program-sumber assembly (assembly source program) merupakan kumpulan dari baris-baris perintah yang ditulis dengan program penyunting-teks (text editor) sederhana, misalnya program EDIT.COM dalam DOS, atau program NOTEPAD dalam Windows. Kumpulan baris-printah tersebut biasanya disimpan ke dalam file dengan nama ekstensi *.ASM atau nama lain misalnya *.A51 dan lain sebagainya, tergantung pada program Assembler yang akan dipakai untuk mengolah program-sumber assembly tersebut.<br />
<br />
Setiap baris-perintah merupakan sebuah perintah yang utuh, artinya sebuah perintah tidak mungkin dipecah menjadi lebih dari satu baris. Satu baris perintah bisa terdiri atas 4 bagian, bagian pertama dikenali sebagai label atau sering juga disebut sebagai symbol, bagian kedua dikenali sebagai kode operasi, bagian ketiga adalah operand dan bagian terakhir adalah komentar.<br />
<br />
Antara bagian-bagian tersebut dipisahkan dengan sebuah spasi atau tabulator. <br />
<br />
<b>Bagian label</b><br />
Label dipakai untuk memberi nama pada sebuah baris-perintah, agar bisa mudah menyebitnya dalam penulisan program. Label bisa ditulis apa saja asalkan diawali dengan huruf, biasa panjangnya tidak lebih dari 16 huruf. Huruf-huruf berikutnya boleh merupakan angka atau tanda titik dan tanda garis bawah. Kalau sebuah baris-perintah tidak memiliki bagian label, maka bagian ini boleh tidak ditulis namun spasi atau tabulator sebagai pemisah antara label dan bagian berikutnya mutlak tetap harus ditulis.<br />
<br />
Dalam sebuah program sumber bisa terdapat banyak sekali label, tapi tidak boleh ada label yang kembar.<br />
<br />
Sering sebuah baris-perintah hanya terdiri dari bagian label saja, baris demikian itu memang tidak bisa dikatakan sebagai baris-perintah yang sesungguhnya, tapi hanya sekedar memberi nama pada baris bersangkutan.<br />
<br />
Bagian label sering disebut juga sebagai bagian symbol, hal ini terjadi kalau label tersebut tidak dipakai untuk menandai bagian program, melainkan dipakai untuk menandai bagian data. <br />
<br />
<b>Bagian kode operasi</b><br />
Kode operasi (operation code atau sering disingkat sebagai OpCode) merupakan bagian perintah yang harus dikerjakan. Dalam hal ini dikenal dua macam kode operasi, yang pertama adalah kode-operasi untuk mengatur kerja mikroprosesor / mikrokontroler. Jenis kedua dipakai untuk mengatur kerja program assembler, sering dinamakan sebagai assembler directive.<br />
<br />
Kode-operasi ditulis dalam bentuk mnemonic, yakni bentuk singkatan-singkatan yang relatip mudah diingat, misalnya adalah MOV, ACALL, RET dan lain sebagainya. Kode-operasi ini ditentukan oleh pabrik pembuat mikroprosesor/mikrokontroler, dengan demikian setiap prosesor mempunyai kode-operasi yang berlainan.<br />
<br />
Kode-operasi berbentuk mnemonic tidak dikenal mikroprosesor/mikrokontroler, agar program yang ditulis dengan kode mnemonic bisa dipakai untuk mengendalikan prosesor, program semacam itu diterjemahkan menjadi program yang dibentuk dari kode-operasi kode-biner, yang dikenali oleh mikroprosesor/mikrokontroler.<br />
<br />
Tugas penerjemahan tersebut dilakukan oleh program yang dinamakan sebagai Program Assembler. <br />
<br />
Di luar kode-operasi yang ditentukan pabrik pembuat mikroprosesor/mikrokontroler, ada pula kode-operasi untuk mengatur kerja dari program assembler, misalnya dipakai untuk menentukan letak program dalam memori (ORG), dipakai untuk membentuk variabel (DS), membentuk tabel dan data konstan (DB, DW) dan lain sebagainya.<br />
<br />
<b>Bagian operand</b><br />
Operand merupakan pelengkap bagian kode operasi, namun tidak semua kode operasi memerlukan operand, dengan demikian bisa terjadi sebuah baris perintah hanya terdiri dari kode operasi tanpa operand. Sebaliknya ada pula kode operasi yang perlu lebih dari satu operand, dalam hal ini antara operand satu dengan yang lain dipisahkan dengan tanda koma.<br />
<br />
Bentuk operand sangat bervariasi, bisa berupa kode-kode yang dipakai untuk menyatakan Register dalam prosesor, bisa berupa nomor-memori (alamat memori) yang dinyatakan dengan bilangan atau pun nama label, bisa berupa data yang siap di-operasi-kan. Semuanya disesuaikan dengan keperluan dari kode-operasi.<br />
<br />
Untuk membedakan operand yang berupa nomor-memori atau operand yang berupa data yang siap di-operasi-kan, dipakai tanda-tanda khusus atau cara penulisan yang berlainan.<br />
<br />
Di samping itu operand bisa berupa persamaan matematis sederhana atau persamaan Boolean, dalam hal semacam ini program Assembler akan menghitung nilai dari persamaan-persamaan dalam operand, selanjutnya merubah hasil perhitungan tersebut ke kode biner yang dimengerti oleh prosesor. Jadi perhitungan di dalam operand dilakukan oleh program assembler bukan oleh prosesor!<br />
<br />
<b>Bagian komentar</b><br />
Bagian komentar merupakan catatan-catatan penulis program, bagian ini meskipun tidak mutlak diperlukan tapi sangat membantu masalah dokumentasi. Membaca komentar-komentar pada setiap baris-perintah, dengan mudah bisa dimengerti maksud tujuan baris bersangkutan, hal ini sangat membantu orang lain yang membaca program.<br />
<br />
Pemisah bagian komentar dengan bagian sebelumnya adalah tanda spasi atau tabulator, meskipun demikian huruf pertama dari komentar sering-sering berupa tanda titik-koma, merupakan tanda pemisah khusus untuk komentar.<br />
<br />
Untuk keperluan dokumentasi yang intensip, sering-sering sebuah baris yang merupakan komentar saja, dalam hal ini huruf pertama dari baris bersangkutan adalah tanda titik-koma.Favahttp://www.blogger.com/profile/00718531650181754542noreply@blogger.com0tag:blogger.com,1999:blog-2815704133740152338.post-16493589486206051632011-11-06T14:46:00.000-08:002011-11-06T14:47:44.048-08:00pertemuan 7Sistem Operasi berikut berisi tentang PCB (Process Control Block) yang berada pada sistem Operasi Linux. Process Control Block berkaitan erat dengan manajemen proses. Proses adalah program yang sedang dieksekusi, yang meliputi aktivitas yang berkaitan dengan program Counter; stack yang berisi data sementara seperti parameter fungsi, return address, dan variabel local; dan data section yang menyimpan variabel-variabel global.<br />
<br />
Sistem operasi dapat menjalankan satu proses tunggal pada satu waktu tetapi juga dapat menjalankan beberapa proses (multi-proses) dalam satu waktu. Sistem Operasi mengeksekusi proses dengan dua cara yaitu:<br />
<br />
Batch System yang mengeksekusi jobs<br />
<br />
Time-shared System yang mengatur pengeksekusian program pengguna (user programs) atau tasks.<br />
<br />
Pada umumnya sistem komputer hanya memiliki satu prosesor yang dapat menjalankan satu instruksi pada satu waktu. Untuk dapat menangani multi-proses dalam satu waktu, prosesor bekerja dengan cara menjalankan satu proses pada satu waktu dan berganti dengan cepat untuk menangani proses yang lain demikian proses akan ditangani secara bergantian oleh prosesor. Pada satu waktu setiap proses dalam multi-proses memiliki status proses yang berbeda-beda. Status proses tersebut adalah:<br />
<br />
New : status yang dimiliki pada saat proses baru saja dibuat.<br />
Running : status pada saat instruksi-instruksi dari sebuah proses dieksekusi.<br />
Waiting : status pada saat proses menunggu suatu sebuah event seperti proses I/O.<br />
Ready : status pada saat proses siap untuk dieksekusi oleh prosesor<br />
Terminated : status yang dimiliki pada saat proses telah selesai dieksekusi.<br />
Agar prosesor dapat menangani multi-proses dengan baik dan lancar diperlukan manajemen proses. Untuk melakukan pengaturan eksekusi proses, setiap proses memiliki sebuah PCB (Process Control Block) pada sistem operasi. Process Control Block adalah struktur data yang digunakan oleh sistem oprasi untuk melakukan manajemen proses. PCB memuat informasi sebuah proses yang spesifik, termasuk hal-hal di bawah ini:<br />
<br />
Process state<br />
Proses ID (PID), sebagai nomor identitas<br />
Program counter<br />
CPU registers<br />
CPU scheduling information.<br />
Prioritas eksekusi proses, menunjukkan seberapa sering proses dikerjakan prosesor. Proses yang memiliki nilai prioritas lebih tinggi akan dikerjakan terlebih dahulu.<br />
Memory-management information<br />
Accounting information<br />
I/O status information<br />
Untuk melihat secara langsung sebuah PCB menyimpan informasi dari suatu proses, berisi seperti yang disebutkan diatas, kami (kelompok PCB : Dany Kurniawan, Yonan, dan M. Arif) mencoba untuk menjalankan Open Office, dan melihat kejadian-kejadian sebagai berikut:<br />
<br />
<br />
Informasi yang kami dapatkan adalah:<br />
<br />
Nama Process (Command) : soffice.bin<br />
<br />
Proses ID(PID) : 3388<br />
<br />
melihat isi /proc dalam directory 3388 yang merupakan proses dari open office. Isi dari proses 3388 dpt diihat<br />
<br />
Status (S) : S (Sleep)<br />
<br />
Memori (%MEM) : 11.6Favahttp://www.blogger.com/profile/00718531650181754542noreply@blogger.com0tag:blogger.com,1999:blog-2815704133740152338.post-63454926812037656962011-10-30T09:42:00.000-07:002011-10-30T09:42:06.415-07:00Pertemuan 6<b>Input/Output Problems<br />
</b><br />
Berbagai macam peripheral<br />
Menyampaikan berbagai data dalam jumlah<br />
Pada kecepatan yang berbeda<br />
Dalam format yang berbeda<br />
Lebih lambat dari CPU dan RAM Semua<br />
Need I / O modul<br />
<br />
<b>Input/Output Module</b><br />
<br />
Interface ke CPU dan Memori<br />
Interface ke satu atau lebih peripheral<br />
<br />
<b>External Devices<br />
</b><br />
dapat dibaca manusia<br />
Layar, printer, keyboard<br />
dibaca mesin<br />
Monitoring dan kontrol<br />
komunikasi<br />
modem<br />
Network Interface Card (NIC)<br />
<br />
<b>I/O Module Function<br />
</b><br />
Control & Timing<br />
CPU Communication<br />
Device Communication<br />
Data Buffering<br />
Error Detection<br />
<br />
<b>I/O Steps</b><br />
<br />
CPU memeriksa I / O Status modul device<br />
Modul I / O Status pengembalian<br />
Jika siap, CPU meminta transfer data<br />
Modul I / O mendapatkan data dari device<br />
Modul I / O transfer data ke CPU<br />
Variasi untuk output, DMA, dll<br />
<br />
<b>I/O Module Decisions</b><br />
<br />
Menyembunyikan atau mengungkapkan device properties ke CPU<br />
Dukungan beberapa device atau tunggal<br />
Kontrol fungsi perangkat atau meninggalkan untuk CPU<br />
Juga O / S keputusan<br />
misalnya Unix memperlakukan segala sesuatu yang dapat sebagai file<br />
<br />
<b>Input Output Techniques</b><br />
<br />
Programmed<br />
interrupt driven<br />
Direct Memory Access (DMA)<br />
<br />
<b>Programmed I/O</b><br />
<br />
CPU memiliki kontrol langsung atas I / O<br />
penginderaan Status<br />
Membaca / menulis perintah<br />
mentransfer data<br />
CPU menunggu modul I / O untuk operasi lengkap<br />
Limbah waktu CPU<br />
<br />
<b>Programmed I/O – detail</b><br />
<br />
CPU meminta I / O operasi<br />
Modul I / O melakukan operasi<br />
I / O modul set bit status yang<br />
CPU memeriksa bit status yang secara berkala<br />
Modul I / O tidak memberitahu CPU secara langsung<br />
Modul I / O tidak mengganggu CPU<br />
CPU mungkin menunggu atau kembali lagi nanti<br />
<br />
<b>I/O Commands</b><br />
<br />
CPU masalah alamat<br />
Mengidentifikasi modul (& perangkat jika> 1 per modul)<br />
CPU masalah perintah<br />
Kontrol - modul memberitahu apa yang harus dilakukan<br />
misalnya berputar disk<br />
Uji - Status cek<br />
misalnya kekuasaan? Kesalahan?<br />
Baca / Tulis<br />
Modul transfer data melalui buffer dari / ke perangkat<br />
<br />
<b>Addressing I/O Devices</b><br />
<br />
Di bawah diprogram I / O transfer data sangat seperti akses memori (sudut pandangCPU)<br />
Setiap perangkat diberi pengenal unik<br />
Perintah CPU berisi pengenal (alamat)<br />
<br />
<b>I/O Mapping</b><br />
<br />
Memori dipetakan I / O<br />
Perangkat dan berbagi ruang alamat memori<br />
I / O tampak seperti memori baca / tulis<br />
Tidak ada perintah khusus untuk I / O<br />
Banyak pilihan perintah akses memori yang tersedia<br />
Terisolasi I / O<br />
Pisahkan alamat spasi<br />
Butuh I / O atau memori baris pilih<br />
Khusus perintah untuk I / O<br />
terbatas diatur<br />
<br />
<b>Interrupt Driven I/O</b><br />
<br />
Mengatasi CPU menunggu<br />
Tidak memeriksa ulang perangkat CPU<br />
I / O modul interupsi saat siap<br />
<br />
<b>Interrupt Driven I/O Basic Operation</b><br />
<br />
Masalah CPU membaca perintah<br />
Modul I / O mendapatkan data dari CPU sementara tidak bekerja perifer lainnya<br />
Modul I / O menyela CPU<br />
CPU permintaan data<br />
Transfer modul I / O data<br />
<br />
<b>CPU Viewpoint</b><br />
<br />
Masalah membaca perintah<br />
Melakukan pekerjaan lain<br />
Periksa interupsi pada akhir setiap siklus instruksi<br />
Jika terganggu: -<br />
Simpan konteks (register)<br />
proses mengganggu<br />
Mengambil data & menyimpan<br />
Lihat catatan Sistem Operasi<br />
<br />
<b>Design Issues</b><br />
<br />
Bagaimana Anda mengidentifikasi modul menerbitkan mengganggu?<br />
Bagaimana Anda menangani beberapa interupsi?<br />
yakni sebuah interrupt handler yang terganggu<br />
<br />
<b>Identifying Interrupting Module (1)</b><br />
<br />
Berbeda baris untuk setiap modul<br />
PC<br />
Batas jumlah perangkat<br />
Software jajak pendapat<br />
CPU meminta modul masing-masing pada gilirannya<br />
lambat<br />
<br />
<b>Identifying Interrupting Module (2)</b><br />
<br />
Daisy Chain atau jajak pendapat perangkat keras<br />
Interrupt Akui diturunkan rantai<br />
Modul bertanggung jawab tempat vektor di bus<br />
CPU menggunakan vektor untuk mengidentifikasi rutin handler<br />
bus Master<br />
Modul harus mengajukan klaim bus sebelum dapat meningkatkan mengganggu<br />
misalnya PCI & SCSI<br />
<br />
<b>Multiple Interrupts</b><br />
<br />
Setiap baris interrupt memiliki prioritas<br />
Garis prioritas yang lebih tinggi dapat mengganggu jalur prioritas yang lebih rendah<br />
Jika bus mastering hanya master saat ini dapat mengganggu<br />
<br />
<b>Example - PC Bus</b><br />
<br />
80x86 memiliki satu baris interrupt<br />
8086 menggunakan sistem berbasis satu controller interupsi 8259A<br />
8259A memiliki 8 baris interrupt<br />
<br />
<b>Sequence of Events</b><br />
<br />
Menerima interupsi 8259A<br />
8259A menentukan prioritas<br />
8259A sinyal 8086 (INTR menimbulkan baris)<br />
CPU Mengakui<br />
8259A menempatkan vektor yang benar pada data bus<br />
Proses CPU mengganggu<br />
<br />
<b>ISA Bus Interrupt System</b><br />
<br />
Bus ISA chain dua 8259As bersama-sama<br />
Link adalah melalui interupsi 2<br />
Memberikan 15 baris<br />
16 baris kurang satu untuk link<br />
IRQ 9 digunakan untuk kembali rute apa pun mencoba untuk menggunakan IRQ 2<br />
kompatibilitas mundur<br />
Incorporated di chip set<br />
<br />
<b>Direct Memory Access</b><br />
<br />
Interrupt driven dan diprogram I / O memerlukan intervensi CPU aktif<br />
Transfer rate terbatas<br />
CPU diikat<br />
DMA adalah jawabannya<br />
<br />
<b>DMA Function</b><br />
<br />
Modul tambahan (hardware) di bus<br />
DMA controller mengambil alih dari CPU untuk I / O<br />
<br />
<b>DMA Operation</b><br />
<br />
DMA controller memberitahu CPU: -<br />
Baca / Tulis<br />
alamat perangkat<br />
Mulai alamat blok memori untuk data<br />
Jumlah data yang ditransfer<br />
CPU melanjutkan pekerjaan lain<br />
DMA controller mentransfer berhubungan dengan<br />
DMA controller mengirimkan interupsi ketika selesai<br />
<br />
<b>DMA Transfer Cycle Stealing</b><br />
<br />
DMA controller mengambil alih bus untuk siklus<br />
Transfer data satu kata<br />
Tidak interrupt<br />
CPU tidak context switch<br />
CPU ditangguhkan sebelum ia mengakses bus<br />
yaitu sebelum mengambil operand atau data atau menulis data<br />
Memperlambat CPU, tetapi tidak sebanyak mentransfer CPU melakukan<br />
<br />
<b>I/O Channels</b><br />
<br />
I / O device semakin canggih<br />
misalnya Kartu grafis 3D<br />
Menginstruksikan CPU I / O controller untuk melakukan transfer<br />
I / O controller tidak seluruh transfer<br />
meningkatkan kecepatan<br />
Membawa beban dari CPU<br />
Dedicated prosesor lebih cepat<br />
<br />
<b>Small Computer Systems Interface (SCSI)</b><br />
<br />
paralel antarmuka<br />
8, 16, 32 bit data baris<br />
daisy dirantai<br />
Perangkat independen<br />
Perangkat dapat berkomunikasi satu sama lain juga sebagai tuan rumah<br />
<br />
<b>SCSI – 1</b><br />
<br />
awal 1980-an<br />
8 bit<br />
5MHz<br />
Data rate 5MBytes.s-1<br />
tujuh perangkat<br />
Delapan termasuk antarmuka host<br />
<br />
<b>SCSI – 2</b><br />
<br />
1991<br />
16 dan 32 bit<br />
10MHz<br />
Data rate 20 atau 40 Mbytes.s-1<br />
(Check out Ultra / Wide SCSI)<br />
<br />
<b>SCSI Signaling (1)</b><br />
<br />
Antara inisiator dan target<br />
Biasanya host & perangkat<br />
Bis gratis? (c.f. Ethernet)<br />
Arbitrase - mengendalikan bus (c.f. PCI)<br />
memilih target<br />
seleksi ulang<br />
Memungkinkan rekoneksi setelah suspensi<br />
misalnya jika permintaan membutuhkan waktu untuk mengeksekusi, bus dapat dilepaskan<br />
<br />
<b>SCSI Signaling (2)</b><br />
<br />
Perintah - target meminta dari inisiator<br />
data permintaan<br />
Status permintaan<br />
Pesan permintaan (kedua cara)<br />
<br />
<b>Configuring SCSI</b><br />
<br />
Bus harus diakhiri di setiap akhir<br />
Biasanya salah satu ujungnya adalah host adapter<br />
Pasang di terminator atau beralih (es)<br />
SCSI Id harus diatur<br />
Jumper atau switch<br />
Unik pada rantai<br />
0 (nol) untuk perangkat boot<br />
Jumlah yang lebih tinggi merupakan prioritas tinggi pada arbitrase<br />
<br />
<b>IEEE 1394 FireWire</b><br />
<br />
Kinerja bus seri tinggi<br />
cepat<br />
biaya rendah<br />
Mudah untuk menerapkan<br />
Juga digunakan dalam kamera digital, VCR dan TV<br />
<br />
<b>FireWire Configuration</b><br />
<br />
rantai daisy<br />
Sampai dengan 63 perangkat pada port tunggal<br />
Benar-benar 64 yang satu adalah antarmuka itu sendiri<br />
Sampai 1022 bus dapat dihubungkan dengan jembatan<br />
konfigurasi otomatis<br />
Tidak ada bus terminator<br />
Mungkin struktur pohon<br />
<br />
<b>FireWire 3 Layer Stack</b><br />
<br />
fisik<br />
Transmisi menengah, listrik dan karakteristik sinyal<br />
link<br />
Transmisi data dalam paket<br />
transaksi<br />
Permintaan-respon protocol<br />
<br />
<b>FireWire - Physical Layer</b><br />
<br />
Data rate dari 25 hingga 400Mbps<br />
Dua bentuk arbitrase<br />
Berdasarkan struktur pohon<br />
Akar bertindak sebagai arbiter<br />
Pertama datang pertama dilayani<br />
Prioritas alami kontrol permintaan simultan<br />
yaitu yang terdekat untuk root<br />
arbitrase yang adil<br />
mendesak arbitrase<br />
<br />
<b>FireWire - Link Layer</b><br />
<br />
Dua jenis transmisi<br />
asynchronous<br />
Jumlah variabel data dan beberapa byte data transaksi ditransfer sebagai sebuah paket<br />
Untuk mengatasi eksplisit<br />
Pengakuan kembali<br />
isochronous<br />
Variabel jumlah data dalam urutan paket ukuran yang tetap secara berkala<br />
Sederhana menangani<br />
tidak ada pengakuan<br />
<br />
<b>Foreground Reading</b><br />
<br />
Check out Universal Serial Bus (USB)<br />
Bandingkan dengan standar komunikasi lainnya misalnya EthernetFavahttp://www.blogger.com/profile/00718531650181754542noreply@blogger.com0tag:blogger.com,1999:blog-2815704133740152338.post-5555175518017227312011-10-23T08:26:00.000-07:002011-10-30T09:42:52.528-07:00Pertemuan 5<b>Jenis Memori External</b><br />
Magnetic Disk<br />
RAID<br />
Removable<br />
Optical<br />
CD-ROM<br />
CD-Writable (WORM)<br />
CD-R/W<br />
DVD<br />
Magnetic Tape<br />
<b>Magnetic Disk</b><br />
Metal atau plastic dilapisi dg material yg bersifat magnet (iron oxide)<br />
Jenis kemasan <br />
Floppy<br />
Winchester hard disk<br />
Removable hard disk<br />
<b>Format dan Organisasi Data</b><br />
Lingkaran konsentris atau track<br />
Ada Gap antar track<br />
Gap sempit, kapasitas bertambah <br />
Jumlah bit per track sama (kerapatan bervariasi)<br />
Kecepatan putar tetap <br />
Track dibagi menjadi beberapa sector<br />
Ukuran minimum block adalah satu sector<br />
Satu block bisa berisi lebih dari satu sector<br />
<b>Fixed/Movable Head Disk</b><br />
Fixed head<br />
Ada satu head (r/w) per track<br />
Head diletakkan pada tangkai yg tetap <br />
Movable head<br />
Hanya ada satu head per side<br />
Diletakkan pada tangkai yg dpt bergerak <br />
<b>Removable / Non removable</b><br />
Removable disk<br />
Dapat dilepas dari drive dan diganti dg disk lain <br />
Memberikan kapasitas simpanan yg tak terbatas <br />
Mudah melakukan transfer data antar sistem <br />
Nonremovable disk<br />
Terpasanang permanen dalam drive<br />
<b>Floppy Disk</b><br />
8”, 5.25”, 3.5”<br />
Kapasitas kecil <br />
sampai 1.44Mbyte (ada yg 2.88M)<br />
Lambat <br />
Umum dipakai <br />
Murah <br />
<b>Winchester Hard Disk (1)</b><br />
Dikembangkan oleh IBM di Winchester (USA)<br />
Dikemas dalam satu unit<br />
Berisi satu cakram atau lebih <br />
Head sangat kecil <br />
Handal <br />
<b>Winchester Hard Disk (2)</b><br />
Umum digunakan <br />
Murah <br />
Sbg external storage yg sangat cepat <br />
Kapasitas semakin besar <br />
Dalam orde GB<br />
<b>Removable Hard Disk</b><br />
ZIP<br />
Murah <br />
Banyak digunakan <br />
100MB<br />
JAZ<br />
Mahal <br />
1G<br />
L-120 (a: drive)<br />
Juga dpt untuk membaca 3.5” floppy<br />
<b>Pencarian Sector</b><br />
Harus dapat mengenali awal suatu track dan sector<br />
Format disk<br />
Menambahkan informasi tambahan <br />
Memberi tanda awal track dan sector<br />
<b>Karakteristik</b><br />
Fixed head atau movable head<br />
Removable disk atau fixed disk<br />
Single side atau double side<br />
Single platter atau multiple platter<br />
Mekanisme head <br />
Contact (Floppy)<br />
Fixed gap<br />
Flying (Winchester)<br />
<b>Multiple Platter</b><br />
Satu head per side<br />
Semua head di-join dan di-align<br />
Track-track yg setiap platter membentuk cylinder<br />
Data dipecah berdasarkan cylinder<br />
Mengurangi gerakan head<br />
Meningkatkan kecepatan (transfer rate)<br />
<b>Kecepatan</b><br />
Seek time<br />
gerakan head ke track yg dituju <br />
(Rotational) latency<br />
Putar platter sampai posisi data dibawah head<br />
Access time = Seek + Latency<br />
Transfer rate<br />
<b>RAID</b><br />
Redundant Array of Independent Disks <br />
Redundant Array of Inexpensive Disks<br />
Ada 6 level <br />
Tidak berhirarki <br />
Sejumlah disks (fisik) yg dipandang sbg satu drive (logical) oleh Sistem Operasil<br />
Data tersebar diantara disk fisik <br />
<b>RAID 0</b><br />
No redundancy<br />
Data striped across all disks<br />
Round Robin striping<br />
Increase speed<br />
Multiple data requests probably not on same disk<br />
Disks seek in parallel<br />
A set of data is likely to be striped across multiple disks<br />
<b>RAID 1</b><br />
Mirrored Disks<br />
Data is striped across disks<br />
2 copies of each stripe on separate disks<br />
Read from either<br />
Write to both<br />
Recovery is simple<br />
Swap faulty disk & re-mirror<br />
No down time<br />
Expensive<br />
<b>RAID 2</b><br />
Disks are synchronized<br />
Very small stripes<br />
Often single byte/word<br />
Error correction calculated across corresponding bits on disks<br />
Multiple parity disks store Hamming code error correction in corresponding position<br />
Lots of redundancy<br />
Expensive<br />
Not used<br />
<b>RAID 3</b><br />
Similar to RAID 2<br />
Only one redundant disk, no matter how large the array<br />
Simple parity bit for each set of corresponding bits<br />
Data on failed drive can be reconstructed from surviving data and parity info<br />
Very high transfer rates<br />
<b>RAID 4</b><br />
Each disk operates independently<br />
Good for high I/O request rate<br />
Large stripes<br />
Bit by bit parity calculated across stripes on each disk<br />
Parity stored on parity disk<br />
<b>RAID 5</b><br />
Like RAID 4<br />
Parity striped across all disks<br />
Round robin allocation for parity stripe<br />
Avoids RAID 4 bottleneck at parity disk<br />
Commonly used in network servers<br />
N.B. DOES NOT MEAN 5 DISKS!!!!!<br />
<b>Optical Storage CD-ROM</b><br />
Originally for audio<br />
650Mbytes giving over 70 minutes audio<br />
Polycarbonate coated with highly reflective coat, usually aluminum<br />
Data stored as pits<br />
Read by reflecting laser<br />
Constant packing density<br />
Constant linear velocity<br />
<b>CD-ROM Drive Speed</b>s<br />
Audio is single speed<br />
Constant linier velocity<br />
1.2 ms-1<br />
Track (spiral) is 5.27km long<br />
Gives 4391 seconds = 73.2 minutes<br />
Other speeds are quoted as multiples<br />
e.g. 24x<br />
The quoted figure is the maximum the drive can achieve<br />
<b>Random Access on CD-ROM</b><br />
Difficult<br />
Move head to rough position<br />
Set correct speed<br />
Read address<br />
Adjust to required location<br />
(Yawn!)<br />
<b>CD-ROM for & against</b><br />
Large capacity (?)<br />
Easy to mass produce<br />
Removable<br />
Robust<br />
Expensive for small runs<br />
Slow<br />
Read only<br />
<b>Other Optical Storage</b><br />
CD-Writable<br />
WORM<br />
Now affordable<br />
Compatible with CD-ROM drives<br />
CD-RW<br />
Erasable<br />
Getting cheaper<br />
Mostly CD-ROM drive compatible<br />
<b>DVD - what’s in a name?</b><br />
Digital Video Disk<br />
Used to indicate a player for movies<br />
Only plays video disks<br />
Digital Versatile Disk<br />
Used to indicate a computer drive<br />
Will read computer disks and play video disks<br />
Dogs Veritable Dinner<br />
Officially - nothing!!!<br />
<b>DVD – technology</b><br />
Multi-layer<br />
Very high capacity (4.7G per layer)<br />
Full length movie on single disk<br />
Using MPEG compression<br />
Finally standardized (honest!)<br />
Movies carry regional coding<br />
Players only play correct region films<br />
Can be “fixed”<br />
<b>DVD – Writable</b><br />
Loads of trouble with standards<br />
First generation DVD drives may not read first generation DVD-W disks<br />
First generation DVD drives may not read CD-RW disks<br />
Wait for it to settle down before buying!<br />
<b>Foreground Reading</b><br />
Check out optical disk storage options<br />
Check out Mini Disk<br />
<b>Magnetic Tape</b><br />
Serial access<br />
Slow<br />
Very cheap<br />
Backup and archive<br />
<b>Digital Audio Tape (DAT)</b><br />
Uses rotating head (like video)<br />
High capacity on small tape<br />
4Gbyte uncompressed<br />
8Gbyte compressed<br />
Backup of PC/network serversFavahttp://www.blogger.com/profile/00718531650181754542noreply@blogger.com0tag:blogger.com,1999:blog-2815704133740152338.post-13620341212508961812011-10-16T08:25:00.000-07:002011-10-16T08:25:24.188-07:00Pertemuan 4<b>Pertemuan 4<br />
MEMORY<br />
Karakteristik Memori</b><br />
Lokasi <br />
Kapasitas <br />
Unit transfer<br />
Metode Akses <br />
Kinerja <br />
Jenis fisik <br />
Sifat-sifat fisik <br />
Organisasi <br />
<b>Lokasi</b><br />
CPU (register)<br />
Internal (main memori)<br />
External (secondary memori)<br />
<b>Kapasitas</b><br />
Ukuran Word<br />
Satuan alami organisasi memori <br />
Banyaknya words<br />
atau Bytes<br />
<b>Satuan Transfer</b><br />
Internal<br />
Jumlah bit dalam sekali akses <br />
Sama dengan jumlah saluran data (= ukuran word)<br />
External<br />
Dalam satuan block yg merupakan kelipatan word<br />
Addressable unit<br />
Lokasi terkecil yang dpt dialamati secara uniq <br />
Secara internal biasanya sama dengan Word <br />
Untuk disk digunakan satuan Cluster <br />
<b>Metode Akses</b><br />
Sekuensial <br />
Mulai dari awal sampai lokasi yang dituju <br />
Waktu akses tergantung pada lokasi data dan lokasi sebelumnya <br />
Contoh tape<br />
Direct<br />
Setiap blocks memilki address yg unique<br />
Pengaksesan dengan cara lompat ke kisaran umum (general vicinity) ditambah pencarian <b>sekuensial </b><br />
Waktu akses tdk tergantung pada lokasi dan lokasi sebelumnya <br />
contoh disk<br />
Random<br />
Setiap lokasi memiliki alamat tertentu <br />
Waktu akses tdk tergantung pada urutan akses sebelumnya <br />
Contoh RAM<br />
Associative<br />
Data dicarai berdasarkan isinya bukan berdasarkan alamatnya <br />
Waktu akses tdk tergantung terhadap lokasi atau pola akses sebelumnya <br />
Contoh: cache<br />
<b>Hierarki Memori</b><br />
Register<br />
Dalam CPU<br />
Internal/Main memory<br />
Bisa lebih dari satu level dengan adanya cache<br />
“RAM”<br />
External memory<br />
Penyimpan cadangan <br />
<b>Performance</b><br />
Access time<br />
Waktu untuk melakukan operasi baca-tulis <br />
Memory Cycle time<br />
Diperlukan waktu tambahan untuk recovery sebelum akses berikutnya <br />
Access time + recovery<br />
Transfer Rate<br />
Kecepatan transfer data ke/dari unit memori <br />
<b>Jenis Fisik</b><br />
Semiconductor<br />
RAM<br />
Magnetic<br />
Disk & Tape<br />
Optical<br />
CD & DVD<br />
Others<br />
Bubble<br />
Hologram<br />
<b>Karakteristik</b><br />
Decay<br />
Volatility<br />
Erasable<br />
Power consumption<br />
<b>Organisasi</b><br />
Susunan fisik bit-bit untuk membentuk word<br />
<b>Kendala Rancangan</b><br />
Berapa banyak?<br />
Capacity<br />
Seberapa cepat?<br />
Time is money<br />
Berapa mahal?<br />
<b>Hierarki</b><br />
Registers<br />
L1 Cache<br />
L2 Cache<br />
Main memory<br />
Disk cache<br />
Disk<br />
Optical<br />
Tape<br />
<b>Locality of Reference</b><br />
Selama berlangsungnya eksekusi suatu program, referensi memori cenderung untuk <b>mengelompok (cluster)</b> <br />
Contoh: loops<br />
<b>Memori Semiconductor</b><br />
RAM <br />
Penamaan yang salah karena semua memori semiconductor adalah random access (termasuk ROM) <br />
Read/Write<br />
Volatile<br />
Penyimpan sementara <br />
Static atau dynamic<br />
<b>Dynamic RAM</b><br />
Bit tersimpan berupa muatan dalam capacitor<br />
Muatan dapat bocor <br />
Perlu di-refresh<br />
Konstruksi sederhana <br />
Ukuran per bit nya kecil <br />
Murah <br />
Perlu refresh-circuits<br />
Lambat <br />
Main memory<br />
<b>Static RAM</b><br />
Bit disimpan sebagai switches on/off <br />
Tidk ada kebocoran <br />
Tdk perlu refreshing <br />
Konstruksi lebih complex <br />
Ukuran per bit lebih besar <br />
Lebih mahal <br />
Tidak memerlukan refresh-circuits<br />
Lebih cepat <br />
Cache<br />
R<b>ead Only Memory (ROM)</b><br />
Menyimpan secara permanen <br />
Untuk <br />
Microprogramming <br />
Library subroutines<br />
Systems programs (BIOS)<br />
Function tables<br />
<b>Jenis ROM</b><br />
Ditulisi pada saat dibuat <br />
Sangat mahal <br />
Programmable (once)<br />
PROM<br />
Diperlukan peralatan khusus untuk memprogram <br />
Read “mostly”<br />
Erasable Programmable (EPROM)<br />
Dihapus dg sinar UV<br />
Electrically Erasable (EEPROM)<br />
Perlu waktu lebih lama untuk menulisi <br />
Flash memory<br />
Menghapus seleuruh memori secara electris <br />
<b>Organisasi</b><br />
16Mbit chip dapat disusun dari 1M x 16 bit word <br />
1 bit/chip memiliki 16 lots dengan bit ke 1 dari setiap word berada pada chip 1 <br />
16Mbit chip dapat disusun dari array: 2048 x 2048 x 4bit <br />
Mengurangi jumlah addres pins<br />
Multiplex row address dg column address<br />
11 pins untuk address (211=2048)<br />
Menambah 1 pin kapasitas menjadi 4x <br />
<b>Refreshing</b><br />
Rangkaian Refresh diamsukkan dalam chip<br />
Disable chip<br />
Pencacahan melalui baris <br />
Read & Write back<br />
Perlu waktu <br />
Menurunkan kinerja <br />
<b>Koreksi kesalahan</b><br />
Rusak berat <br />
Cacat/rusak Permanent<br />
Rusak ringan <br />
Random, non-destructive<br />
Rusak non permanent<br />
Dideteksi menggunakan Hamming code<br />
<b>Operasi pada Cache</b><br />
CPU meminta isi data dari lokasi memori tertentu <br />
Periksa data tersebut di cache<br />
Jika ada ambil dari cache (cepat)<br />
Jika tidak ada, baca 1 block data dari main memory ke cache<br />
Ambil dari cache ke CPU<br />
Cache bersisi tags untuk identitas block dari main memory yang berada di cache<br />
<b>Desain Cache</b><br />
Ukuran (size)<br />
Fungsi Mapping<br />
Algoritma penggantian (replacement algrthm)<br />
Cara penulisan (write policy)<br />
Ukuran Block<br />
Jumlah Cache<br />
<b>Size</b><br />
Cost<br />
Semakin besar semakin mahal <br />
Speed<br />
Semakin besar semakin cepat <br />
Check data di cache perlu waktu <br />
<b>Fungsi Mapping</b><br />
Ukuran Cache 64kByte<br />
Ukuran block 4 bytes<br />
diperlukan 16k (214) alamat per alamat 4 bytes<br />
Jumlah jalur alamat cache 14<br />
Main memory 16MBytes<br />
Jalur alamat perlu 24 bit <br />
(224=16M)<br />
<b>Direct Mapping</b><br />
Setiap block main memory dipetakan hanya ke satu jalur cache <br />
Jika suatu block ada di cache, maka tempatnya sudah tertentu <br />
Address terbagi dalam 2 bagian <br />
LS-w-bit menunjukkan word tertentu <br />
MS-s-bit menentukan 1 blok memori <br />
MSB terbagi menjadi field jalur cache r dan tag sebesar s-r (most significant)<br />
<b>Table Cache Line pada Direct Mapping</b><br />
Cache line blocks main memori <br />
0 0, m, 2m, 3m…2s-m<br />
1 1,m+1, 2m+1…2s-m+1<br />
m-1 m-1, 2m-1,3m-1…2s-1<br />
<b>Keuntungan & Kerugian Direct Mapping</b><br />
Sederhana <br />
Murah <br />
Suatu blok memiliki lokasi yang tetap <br />
Jika program mengakses 2 block yang di map ke line yang sama secara berulang-ulang, maka cache-miss sanagat tinggi <br />
<b>Associative Mapping</b><br />
Blok main memori dpt di simpan ke cache line mana saja <br />
Alamat Memori di interpresi sbg tag dan word<br />
Tag menunjukan identitas block memori <br />
Setiap baris tag dicari kecocokannya <br />
Pencarian data di Cache menjadi lama<br />
<b>Set Associative Mapping</b><br />
Cache dibagi dalam sejumlah sets<br />
Setiap set berisi sejumlah line<br />
Suatu blok di maps ke line mana saja dalam set<br />
misalkan Block B dapat berada pada line mana saja dari set i <br />
Contoh: per set ada 2 line<br />
2 way associative mapping<br />
Suatu block dpt berada pada satu dari 2 lines dan hanya dalam 1 set<br />
Replacement Algorithms (1)<br />
<b>Direct mapping</b><br />
Tidak ada pilihan <br />
Setiap block hanya di map ke 1 line<br />
Ganti line tersebutFavahttp://www.blogger.com/profile/00718531650181754542noreply@blogger.com0tag:blogger.com,1999:blog-2815704133740152338.post-20114302168576144702011-10-09T04:08:00.000-07:002011-10-09T04:08:28.720-07:00Pertemuan Ketiga<b>Bus</b><br />
Ada beberapa kemungkinan interkoneksi sistem <br />
Yang biasa dipakai: Single Bus dan multiple BUS <br />
PC: Control/Address/Data bus<br />
DEC-PDP: Unibus <br />
<b>Pengertian Bus</b><br />
Jalur komunikasi yang menghubungkan beberapa device<br />
Biasanya menggunakan cara broadcast <br />
Seringkali dikelompokkan <br />
Satu bus berisi sejumlah kanal (jalur) <br />
Contoh bus data 32-bit berisi 32 jalur <br />
Jalur sumber tegangan biasanya tidak diperlihatkan <br />
<b>Data Bus</b><br />
Membawa data<br />
Tidak dibedakan antara “data” dan “instruksi”<br />
Lebar jalur menentukan performance<br />
8, 16, 32, 64 bit<br />
<b>Bentuk Fisik</b><br />
Bagaimana bentuk fisik bus?<br />
Jalur-jalur parallel PCB <br />
Ribbon cables<br />
Strip connectors pada mother boards<br />
contoh PCI<br />
Kumpulan kabel <br />
<b>Problem pada Single Bus</b><br />
Banyak devices pada bus tunggal menyebabkan:<br />
Propagation delays<br />
Jalur data yg panjang berarti memerlukan koordinasi pemkaian shg berpengaruh pada <b>Performance</b><br />
If aggregate data transfer approaches bus capacity<br />
Kebanyakan sistem menggunakan multiple bus<br />
<b>Jenis Bus</b><br />
Dedicated<br />
Jalur data & address terpisah <br />
Multiplexed<br />
Jalur bersama <br />
Address dan data pada saat yg beda <br />
Keuntungan – jalur sedikit <br />
Kerugian <br />
Kendali lebih komplek <br />
Mempengaruhi performance<br />
<b>Arbitrasi Bus</b><br />
Beberapa modul mengendalikan bus <br />
contoh CPU dan DMA controller<br />
Setiap saat hanya satu modul yg mengendalikan <br />
Arbitrasi bisa secara centralised atau distributed<br />
<b>Arbitrasi Centralised</b><br />
Ada satu hardware device yg mengendalikan akses bus<br />
Bus Controller<br />
Arbitrer <br />
Bisa berupa bagian dari CPU atau terpisah <br />
<b>Arbitrasi Distributed</b><br />
Setiap module dapat meng-klaim bus<br />
Setiap modules memiliki Control logic<br />
<b>Timing</b><br />
Koordinasi event pada bus<br />
Synchronous<br />
Event ditentukan oleh sinyal clock<br />
Control Bus termasuk jalur clock <br />
Siklus bus ( bus cycle) transmisi 1 ke 0 <br />
Semua devices dpt membaca jakur clock<br />
Biasanya sinkronisasi terjadi pada tepi naik (leading edge) <br />
Suatu event biasanya dimualai pada awal siklus <br />
<b>Bus PCI</b><br />
Peripheral Component Interconnection<br />
Dikeluarkan oleh Intel sebagai public domain<br />
32 atau 64 bit<br />
50 Jalur <br />
<b>Jalur pada Bus PCI (yg harus)</b><br />
Jalur System<br />
clock and reset<br />
Address & Data<br />
32 jalur multiplex address/data<br />
Jalur validasi <br />
Interface Control<br />
Arbitrasi <br />
Not shared<br />
Direct connection to PCI bus arbiter<br />
Error lines<br />
<b>Jalur Bus PCI (Optional)</b><br />
Interrupt lines<br />
Not shared<br />
Cache support<br />
64-bit Bus Extension<br />
Additional 32 lines<br />
Time multiplexed<br />
2 lines to enable devices to agree to use 64-bit transfer<br />
JTAG/Boundary Scan<br />
For testing procedures<br />
<b>Command pada PCI</b><br />
Transaksi antara initiator (master) dg target<br />
Master pegang kendali bus<br />
Master menentukan jenis transaksi <br />
Misal I/O read/write<br />
Fase Address<br />
Fase DataFavahttp://www.blogger.com/profile/00718531650181754542noreply@blogger.com0tag:blogger.com,1999:blog-2815704133740152338.post-26837931554459416222011-10-09T04:00:00.000-07:002011-10-09T04:01:09.389-07:00Pertemuan Kedua<b>Latar Belakang ENIAC</b><br />
Electronic Numerical Integrator And Computer<br />
Eckert and Mauchly <br />
University of Pennsylvania<br />
Tabel lintasan peluru <br />
Mulai dibuat 1943<br />
Selesai 1946<br />
Sangat terlambat untuk digunakan dalam PD-II<br />
Digunakan sampai 1955<br />
Desimal (bukan biner)<br />
Memiliki 20 akumulator untuk 10 digit<br />
Diprogram manual dengan switch (sakelar) <br />
18.000 tabung vakum <br />
Berat 30 ton<br />
Luas 15,000 square feet<br />
Konsumsi daya 140 kW <br />
<b>Von neumann / Turing</b><br />
Konsep à Penyimpanan program komputer <br />
Memori à Menyimpan data dan program<br />
ALU à operasi data biner <br />
Unit Kontrol à Menginterpretasikan instruksi dari memori dan mengeksekusi <br />
Perangkat I/O dikendalikan oleh Unit Kontrol <br />
Princeton Institute for Advanced Studies <br />
IAS<br />
Selesai 1952<br />
<b>IAS (Computer of Institute for Advanced Studies)</b><br />
Kapasitas memori: 1000 x 40 bit words<br />
Menggunakan sistem bilangan Biner <br />
Panjang instruksi 20 bit ( 1 word = 2 instruksi ) <br />
Register-register dalam CPU<br />
MBR (Memory Buffer Register) <br />
MAR (Memory Address Register) <br />
IR (Instruction Register) <br />
IBR (Instruction Buffer Register) <br />
PC (Program Counter) <br />
AC (Accumulator) <br />
MQ (Multiplier Quotient) <br />
<b>Komputer Komersial</b><br />
1947 - Eckert-Mauchly Computer Corporation<br />
UNIVAC I (Universal Automatic Computer)<br />
Untuk kalkulasi sensus 1950 oleh US Bureau of Census<br />
Menjadi divisi dari Sperry-Rand Corporation<br />
UNIVAC II dipasarkan akhir th. 1950-an<br />
Lebih cepat <br />
Kapasitas memori <br />
<b>IBM</b><br />
Pabrik peralatan Punched-card <br />
1953 – IBM-701<br />
Komputer pertama IBM (stored program computer)<br />
Untuk keperluan aplikasi Scientific<br />
1955 – IBM- 702<br />
Untuk applikasi bisnis <br />
Merupakan awal dari seri 700/7000 yang membuat IBM menjadi pabrik komputer <br />
<b>Komputer Berbasis Prosesor</b><br />
Mesin generasi II<br />
NCR & RCA menghasilkan small transistor machines<br />
IBM 7000<br />
DEC - 1957<br />
Membuat PDP-1<br />
<b>Mikro Elektronik</b><br />
Secara harafiah berarti “electronika kecil”<br />
Sebuah computer dibuat dari gerbang logika (gate), sel memori dan interkoneksi <br />
Sejumlah gate dikemas dalam satu keping semikonduktor <br />
silicon wafer<br />
<b>Generasi Komputer</b><br />
Vacuum tube - 1946-1957<br />
Transistor - 1958-1964<br />
Small scale integration - 1965 <br />
Sampai dengan 100 komponen dalam 1 IC (chip)<br />
Medium scale integration - sampai 1971<br />
100-3.000 komponen dalam 1 IC<br />
Large scale integration - 1971-1977<br />
3.000 – 100.000 komponen dalam 1 IC<br />
Very large scale integration - 1978 -1991<br />
100.000 – 100.000,000 komponen dalam 1 IC<br />
Ultra large scale integration – 1991 -<br />
Lebih dari 100.000.000 komponen dalam 1 IC<br />
<b>Hukum Moore</b><br />
Gordon Moore - cofounder of Intel<br />
Meningkatkan kerapatan komponen dalam chip<br />
Jumlah transistors/chip meningkat 2 x lipat per tahun <br />
Sejak 1970 pengembangan agak lambat <br />
Jumlah transistors 2 x lipat setiap 18 bulan <br />
Harga suatu chip tetap / hampir tidak berubah <br />
Kerapatan tinggi berarti jalur pendek, menghasilkan kinerja yang meningkat <br />
Ukuran semakin kecil, flexibilitas meningkat <br />
Daya listrik lebih hemat, panas menurun <br />
Sambungan sedikit berarti semakin handal / reliable<br />
<b>Memori Semikonduktor</b><br />
1970<br />
Ukuran kecil ( sebesar 1 sel core memory) <br />
Dapat menyimpan 256 bits<br />
Non-destructive read<br />
Lebih cepat dari core memory <br />
Kapasitas meningkat 2 x lipat setiap tahun <br />
<b>Meningkatkan Kecepatan</b><br />
Pipelining<br />
On board cache<br />
On board L1 & L2 cache<br />
Branch prediction<br />
Data flow analysis<br />
Speculative execution <br />
<b>Ketidak Seimbangan Kinerja</b><br />
Kecepatan prosesor meningkat <br />
Kapasitas memori meningkat <br />
Perkembangan kecepatan memori lebih lambat (tertinggal) dibanding kecepatan prosesor <br />
<b>Solusi</b><br />
Meningkatkan jumlah bit per akses <br />
Mengubah interface DRAM<br />
Cache<br />
Mengurangi frekuensicy akses memory<br />
Cache yg lebih kompleks dan cache on chip<br />
Meningkatkan bandwidth interkoneksi <br />
Bus kecepatan tinggi - High speed buses<br />
Hierarchy of buses<br />
<b>Perangkat I/O</b><br />
Perangkat untuk kebutuhan I/O<br />
Besar data throughput yang dibutuhkan <br />
Dapat dihandle oleh prosesor <br />
Permasalahan à Perpindahan data <br />
Solusi:<br />
Caching<br />
Buffering<br />
Higher-speed interconnection buses<br />
More elaborate bus structures<br />
Multiple-processor configurations<br />
<b>Kunci à Keseimbangan</b><br />
Komponen prosesor <br />
Memori <br />
Perangkat I/O<br />
Struktur koneksi <br />
Meningkatkan kecepatan prosesor <br />
Ukuran gerbang logika (IC) yang lebih kecil <br />
Lebih banyak gate, dikemas lebih rapat, menambah clock rate<br />
Waktu propagasi untuk sinyal berkurang <br />
Menambah ukuran dan kecepatan cache<br />
Diperuntuk bagi prosesor <br />
Waktu akses cache turun secara signifikan <br />
Perubahan organisasi dan arsitektur prosesor <br />
Meningkatkan kecepatan eksekusi <br />
Parallel<br />
<b>Bertambahnya kapasitas cache</b><br />
Biasanya dua atau tiga kali cache antara prosesor dan memori utama <br />
Bertambahnya kepadatan IC (Chip)<br />
Lebih besar cache memori dalam chip<br />
Lebih cepat akses cache<br />
Pentium mengalokasikan 10% untuk cache<br />
Pentium 4 mengalokasikan sekitar 50%<br />
<b>Embedded System / ARM</b><br />
ARM pengembangan dari desain RISC<br />
Digunakan terutama di embedded systems<br />
Digunakan dalam produk <br />
Bukan general purpose computer<br />
Mempunyai fungsi khusus <br />
Contoh: Anti-lock rem di mobil <br />
<b>Kategori Sistem ARM</b><br />
Embedded real time<br />
Platform aplikasi <br />
Linux, Palm OS, Symbian OS, Windows mobile<br />
Secure applications<br />
<b>Penilaian Kinerja Kecepatan Clock</b><br />
Parameter Kunci <br />
Kinerja, biaya, ukuran, keamanan, kehandalan, konsumsi daya <br />
Sistem kecepatan clock<br />
Dalam Hz atau kelipatanya <br />
Clock rate, clock cycle, clock tick, cycle time<br />
Sinyal dalam CPU membutuhkan waktu untuk perubahan ke 1 atau 0<br />
Sinyal dapat berubah dengan kecepatan yang berbeda <br />
Dibutuhkan sinkronisasi untuk pengoperasiannya <br />
Eksekusi instruksi dalam diskrit <br />
Decode, load dan menyimpan, aritmatika atau logika <br />
Biasanya memerlukan beberapa siklus clock per instruksi <br />
<b>Instruction Execution Rate</b><br />
Millions of instructions per second (MIPS)<br />
Millions of floating point instructions per second (MFLOPS)<br />
Sangat bergantung pada instruksi, kompiler, implementasi prosesor, cache dan hirarki memori <br />
<b>Benchmarks</b><br />
Program dirancang untuk menguji kinerja <br />
Ditulis dengan bahasa tingkat tinggi <br />
Portable <br />
Merepresentasikan jenis pekerjaannya <br />
Systems, numerical, commercial<br />
Mudah diukur <br />
Luas penggunannya <br />
Misal: System Performance Evaluation Corporation (SPEC)<br />
CPU2006 untuk perhitungan yang pasti <br />
17 floating point programs dalam C, C++, Fortran<br />
12 integer programs dalam C, C++<br />
3 juta baris kode <br />
Kecepatan <br />
Single task dan throughput<br />
<b>Hukum Amdahl</b><br />
Gene Amdahl [AMDA67]<br />
Potensi peningkatan kecepatan program dengan menggunakan beberapa prosesor <br />
Menyimpulkan bahwa:<br />
Kode perlu parallelizable<br />
Kecepatan meningkat, memberikan hasil yang menurun untuk procesor lebih banyak <br />
Tergantung apa yang dikerjakan <br />
Server dapat memelihara beberapa koneksi pada multiple prosesor <br />
Database dapat dibagi dalam tugas-tugas pararel <br />
<b>Formula Hukum Amdahl</b><br />
For program running on single processor<br />
Fraction f : bagian/fraksi dari operasi komputasi yang dapat dikerjakan secara pararel <br />
T adalah waktu eksekusi total untuk program dalam prosesor tunggal <br />
N adalah jumlah prosesor yang sepenuhnya memanfaatkan bagian dari kode pararel <br />
<br />
<b>Kesimpulan</b> <br />
f small, parallel processors mempunyai efek yang kecil <br />
N ->∞, kecepatan tergantung dari 1/(1 – f)<br />
Berkurangnya manfaat ketika menggunakan banyak prosesorFavahttp://www.blogger.com/profile/00718531650181754542noreply@blogger.com0tag:blogger.com,1999:blog-2815704133740152338.post-32122238003734087052011-10-09T03:41:00.000-07:002011-10-09T04:03:01.022-07:00Pertemuan Pertama Organisasi adalah Bagaimana suatu perangkat diimplementasikan <br />
Sinyal kontrol, interface dan memori <br />
Contoh: <br />
penambahan hardware baru atau penambahan hardware secara berulang.<br />
Apakah instruksi perkalian diimplementasikan secara hardware, ataukah dikerjakan dengan <b>Penambahan secara berulang?</b><br />
Arsitektur à Atribut yang berhubungan dengan programmer<br />
Kumpulan bit, jumlah bit yang digunakan untuk representasi data, mekanisme I/O, teknik <b>Pengalamatan </b><br />
Contoh: apakah tersedia instruksi untuk perkalian?<br />
Dari segi perbedaan Arsitektur bertahan lama, organisasi menyesuaikan perkembangan <b>Teknologi</b> <br />
Contoh : Semua keluarga Intel x86 mempunyai dasar arsitektur yang sama.<br />
Fungsi merupakan operasi dari masing-masing komponen sebagai bagian dari struktur <br />
<b>Semua komputer berfungsi untuk:</b><br />
Pengolahan data (Data processing)<br />
Penyimpanan data (Data storage)<br />
Pemindahan data (Data movement)<br />
Control<br />
Struktur adalah bagaimana masing-masing komponen saling berhubungan satu sama lain.Favahttp://www.blogger.com/profile/00718531650181754542noreply@blogger.com0