SUPERSCALAR
1. Pengertian
Superscalar adalah sebuah unitprocessor yang dapat mengeksekusi dua atau lebih operasi scalar dalm bentuk paralel. Superscalar merupakan salah satu rancangan untuk meningkatkan kecepatan CPU.
Kebanyakan dari komputer saat ini menggunakan mekanisme superscalar ini. Standar pipeline yang digunakan adalah untuk pengolahan bilangan matematika integer (bilangan bulat, bilangan yang tidak memiliki pecahan), kebanyakan CPU juga memiliki kemampuan untuk pengolahan untuk data floating point (bilangan berkoma). Pipeline yang mengolah integer dapat juga digunakan untuk mengolah data bertipe floating point ini, namun untuk aplikasi tertentu, terutama untuk aplikasi keperluan ilmiah CPU yang memiliki kemampuan pengolahan floating point dapat meningkatkan kecepatan prosesnya secara dramatis.
Peristiwa menarik yang bisa dilakukan dengan metoda superscalar ini adalah dalam hal memperkirakan pencabangan instruksi (brach prediction) serta perkiraan eksekusi perintah (speculative execution). Peristiwa ini sangat menguntungkan buat program yang membutuhkan pencabangan dari kelompok intruksi yang dijalankankannya.
Program yang terdiri dari kelompok perintah bercabang ini sering digunakan dalam pemrograman. Contohnya dalam menentukan aktifitas yang dilakukan oleh suatu sistem berdasarkan umur seseorang yang sedang diolahnya, katakanlah jika umur yang bersangkutan lebih dari 18 tahun, maka akan diberlakukan instruksi yang berhubungan dengan umur tersebut, anggaplah seseorang tersebut dianggap telah dewasa, sedangkan untuk kondisi lainnya dianggap belum dewasa. Tentu perlakuannya akan dibedakan sesuai dengan sistem yang sedang dijalankan.
Lalu apa yang dilakukan oleh CPU untuk hal ini? Komputer akan membandingkan nilai umur data yang diperolehnya dengan 18 tahun sehingga komputer dapat menentukan langkah dan sikap yang harus diambilnya berdasarkan hasil perbandingan tersebut. Sikap yang diambil tentu akan diambil berdasarkan pencabangan yang ada.
Pada CPU yang mendukung perintah pencabangan ini, CPU membutuhkan lumayan banyak clock cycle, mengingat CPU menempatkan semuanya pada pipeline dan menemukan perintah berikutnya yang akan dieksekusinya. Sirkuit untuk branch prediction melakukan pekerjaan ini bekerja sama dengan pipeline, yang dilakukan sebelum proses di ALU dilaksanakan, dan memperkirakan hasil dari pencabangan tersebut.
Jika CPU berfikir bahwa branch akan menuju suatu cabang, biasanya berdasarkan pekerjaan sebelumnya, maka perintah berikutnya sudah dipersiapkan untuk dieksekusi berikut data-datanya, bahkan dengan adanya pipeline ini, bila tidak diperlukan suatu referensi dari instruksi terakhir, maka bisa dilaksanakan dengan segera, karena data dan instruksi yang dibutuhkan telah dipersiapkan sebelumnya.
Dalam hal speculative execution, artinya CPU akan menggunakan melakukan perhitungan pada pipeline yang berbeda berdasarkan kemungkinan yang diperkirakan oleh komputer. Jika kemungkinan yang dilakukan oleh komputer tepat, maka hasilnya sudah bisa diambil langsung dan tinggal melanjutkan perintah berikutnya, sedangkan jika kemungkinan yang diperkirakan oleh komputer tidak tepat, maka akan dilaksanakan kemungkinan lain sesuai dengan logika instruksi tersebut.
Teknik yang digunakan untuk pipeline dan superscalar ini bisa melaksanakan branch prediction dan speculative execution tentunya membutuhkan ekstra transistor yang tidak sedikit untuk hal tersebut.
Sebagai perbandingan, komputer yang membangkitkan pemrosesan pada PC pertama yang dikeluarkan oleh IBM pada mesin 8088 memiliki sekitar 29.000 transistor. Sedangkan pada mesin Pentium III, dengan teknologi superscalar dan superpipeline, mendukung branch prediction, speculative execution serta berbagai kemampuan lainnya memiliki sekitar 7,5 juta transistor. Beberapa CPU terkini lainnya seperti HP 8500 memiliki sekitar 140 juta transistor.
Superscalar ini mampu menjlankan Instruction Level Parallelism dengan satu prosesor. Superscalar dapat diaplikasikan di RISC dan CISC, tapi pada umumnya RISC.
2. Alasan desain Superscalar
Sebagian besar operasi menggunakan besaran/nilai skalar Operasi ini memungkinkan peningkatan kinerja sistem hingga level tertentu Superscalar Implementation.
Proses fetch dari beberapa instruksi secara bersamaan. Logika untuk menentukan ketergantungan sebenarnya yang meliputi nilai register Mekanisme untuk mengkomunikasikan nilai tersebut. Mekanisme untuk menginisialisasi instruksi paralel. Tersedianya sumber untuk eksekusi paralel dari beberapa instruksi. Mekanisme processing instruksi dengan urutan yg sesuai.
3. Contoh Instruksi
Add R1, R2, R3
Misalkan, instruksi
yang akan menambahkan isi register R1 dan R2 dan menempatkan jumlahnya dalam register R3. Isi dari register R1 dan R2 mula-mula akan ditransfer ke Unit aritmetika dan logika. Setelah operasi penambahan dilakukan, hasil penjumlahan tersebut akan ditransfer ke register R3. Prosesor dapat membaca instruksi selanjutnya dari memori, sementara operasi penambahan dilakukan. Kemudian jika instruksi tersebut juga menggunakan ALU, operand-nya dapat ditransfer ke input ALU pada waktu yang sama dengan hasil instruksi Add ditransfer ke register R3.
Pada kasus ideal, jika semua instruksi ditumpuk ke derajat yang maksimum yang mungkin dilakukan, maka eksekusi dilanjutnkan pada kecepatan penyelesaian satu instruksi dalam tiap siklus detak prosesor. Instruksi individual, mungkin masih memerlukan beberapa siklus detak agar selesai dilakukan. Tetapi untuk tujuan perhitungan, prosesor superskalar umumnya mampu melakukannya dalam tiap siklus.
Prosesor superskalar umumnya menggunakan beberapa unit fungsional, menciptakan jalur paralel di mana berbagai instruksi yang berbeda dapat dieksekusi secara paralel. Dengan pengaturan tersebut, maka dimungkinkan untuk memulai eksekusi beberapa instruksi secara paralel tiap siklus detak. Tentu saja, eksekusi paralel harus mempertahankan kebenaran logikan program, sehingga hasil yang diperoleh harus sama dengan hasil dari eksekusi secara serial.
4. Contoh CPU yang menerapkan arsitektur superscalar :
486, Pentium, Pentium Pro, keluarga Intel Pentium, Intel Pentium Pro, Intel Pentium II, Intel Pentium III, Intel Itanium, Intel Xeon, Intel Pentium 4, Intel Pentium M, Intel Core dari Intel Corporation; keluarga AMD K5, AMD K6, AMD Athlon, AMD Athlon 64, dan AMD Opteron
Superscalar Processor Design
• Use PowerPC 604 as case study
• Speculative Execution, Register Renaming, Branch Prediction
More Superscalar Examples
• MIPS R10000
• DEC Alpha 21264
5. Implementasi Superscalar
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.
Pada penjelasan diatas bias diterangkan bahwa untuk superscalar dapat digunakan untuk berbagai keperluan dan dapat diimplementasikan pada perangkat prosessor seperti :
Pentium 4
Pada Pentium, implementasi superscalar dapat dijabarkan sebagai berikut :
80486 – CISC.
Pentium.
ada beberapa komponen superscalar.
2 unit eksekusi integer yang terpisah.
Pentium Pro – Full superscalar.
Memperhalus models subsequent & Meningkatkan design superscalar.
6. Permasalahan pada Superscalar
Kemampuan dari computer superscalar dapat dilihat dari banyaknya instruksi yang dapat diproses secara parallel. Superscalar hingga derajat tertentu dapat terjadi jika computer mampu mengatasi permasalahan ketergantungan yang ada pada suatu instruksi, diantaranya adalah : ketergantungan data, ketergantungan procedural, ketergantungan sumber unit, ketergantungan output dan antiketergantungan. Dari lima ketergantungan tersebut, sampai sekarang belum ada computer yang mampu mengatasinya secara total. Bagaimanapun computer akan menemukan beberapa ketergantungan dalam menyelesaikan suatu program.
Dari rancangan computer yang ada, hanya mampu meminimalisasikan beberapa ketergantungan saja, walaupun demikian ternyata dengan usaha ini mampu diciptakan computer dengan kinerja yang jauh lebih baik dari generasi-generasi sebelumnya. Adapun usaha yang dilakukan dalam peningkatan kinerja superscalar tersebut diantaranya : desain pipeline (out of order issue and out of order completion), memperbanyak tahapan pada pipeline, penduplikasian sumber unit (contoh : unit fungsional /ALU, memori, bus, cache, dll), desain micro operation (pada system CICS), desain unit prediksi percabangan, dan renaming allocation. Kebanyakan computer lebih menekankan pada upaya penduplikasian unit fungsional baik integer maupun floating point. Untuk itu pada pembahasan ini akan kita bahas salah satu upaya peningkatan kinerja prosesor superscalar secara khusus dalam hal reconfigurasi floating point unit (FPU).
Ayo Belajar Bareng
Kamis, 05 Januari 2012
Minggu, 18 Desember 2011
pertemuan 9
RISC dan CISC
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.
Sejarah RISC
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 :
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.
pipelining:adalah sebuah teknik yang memungkinkan dapat melakukan eksekusi secara simultan.Sehingga proses instruksi lebih efiisien
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.
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.
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.
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.
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)
Contoh-contoh prosesor CISC adalah System/360, VAX, PDP-11, varian Motorola 68000 , dan CPU AMD dan Intel x86.
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.
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.
Sejarah RISC
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 :
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.
pipelining:adalah sebuah teknik yang memungkinkan dapat melakukan eksekusi secara simultan.Sehingga proses instruksi lebih efiisien
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.
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.
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.
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.
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)
Contoh-contoh prosesor CISC adalah System/360, VAX, PDP-11, varian Motorola 68000 , dan CPU AMD dan Intel x86.
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.
Senin, 05 Desember 2011
Pertemuan 8
Struktur Program Assembly
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.
Program sumber assembly
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.
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.
Antara bagian-bagian tersebut dipisahkan dengan sebuah spasi atau tabulator.
Bagian label
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.
Dalam sebuah program sumber bisa terdapat banyak sekali label, tapi tidak boleh ada label yang kembar.
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.
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.
Bagian kode operasi
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.
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.
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.
Tugas penerjemahan tersebut dilakukan oleh program yang dinamakan sebagai Program Assembler.
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.
Bagian operand
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.
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.
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.
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!
Bagian komentar
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.
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.
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.
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.
Program sumber assembly
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.
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.
Antara bagian-bagian tersebut dipisahkan dengan sebuah spasi atau tabulator.
Bagian label
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.
Dalam sebuah program sumber bisa terdapat banyak sekali label, tapi tidak boleh ada label yang kembar.
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.
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.
Bagian kode operasi
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.
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.
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.
Tugas penerjemahan tersebut dilakukan oleh program yang dinamakan sebagai Program Assembler.
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.
Bagian operand
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.
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.
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.
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!
Bagian komentar
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.
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.
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.
Minggu, 06 November 2011
pertemuan 7
Sistem 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.
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:
Batch System yang mengeksekusi jobs
Time-shared System yang mengatur pengeksekusian program pengguna (user programs) atau tasks.
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:
New : status yang dimiliki pada saat proses baru saja dibuat.
Running : status pada saat instruksi-instruksi dari sebuah proses dieksekusi.
Waiting : status pada saat proses menunggu suatu sebuah event seperti proses I/O.
Ready : status pada saat proses siap untuk dieksekusi oleh prosesor
Terminated : status yang dimiliki pada saat proses telah selesai dieksekusi.
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:
Process state
Proses ID (PID), sebagai nomor identitas
Program counter
CPU registers
CPU scheduling information.
Prioritas eksekusi proses, menunjukkan seberapa sering proses dikerjakan prosesor. Proses yang memiliki nilai prioritas lebih tinggi akan dikerjakan terlebih dahulu.
Memory-management information
Accounting information
I/O status information
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:
Informasi yang kami dapatkan adalah:
Nama Process (Command) : soffice.bin
Proses ID(PID) : 3388
melihat isi /proc dalam directory 3388 yang merupakan proses dari open office. Isi dari proses 3388 dpt diihat
Status (S) : S (Sleep)
Memori (%MEM) : 11.6
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:
Batch System yang mengeksekusi jobs
Time-shared System yang mengatur pengeksekusian program pengguna (user programs) atau tasks.
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:
New : status yang dimiliki pada saat proses baru saja dibuat.
Running : status pada saat instruksi-instruksi dari sebuah proses dieksekusi.
Waiting : status pada saat proses menunggu suatu sebuah event seperti proses I/O.
Ready : status pada saat proses siap untuk dieksekusi oleh prosesor
Terminated : status yang dimiliki pada saat proses telah selesai dieksekusi.
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:
Process state
Proses ID (PID), sebagai nomor identitas
Program counter
CPU registers
CPU scheduling information.
Prioritas eksekusi proses, menunjukkan seberapa sering proses dikerjakan prosesor. Proses yang memiliki nilai prioritas lebih tinggi akan dikerjakan terlebih dahulu.
Memory-management information
Accounting information
I/O status information
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:
Informasi yang kami dapatkan adalah:
Nama Process (Command) : soffice.bin
Proses ID(PID) : 3388
melihat isi /proc dalam directory 3388 yang merupakan proses dari open office. Isi dari proses 3388 dpt diihat
Status (S) : S (Sleep)
Memori (%MEM) : 11.6
Minggu, 30 Oktober 2011
Pertemuan 6
Input/Output Problems
Berbagai macam peripheral
Menyampaikan berbagai data dalam jumlah
Pada kecepatan yang berbeda
Dalam format yang berbeda
Lebih lambat dari CPU dan RAM Semua
Need I / O modul
Input/Output Module
Interface ke CPU dan Memori
Interface ke satu atau lebih peripheral
External Devices
dapat dibaca manusia
Layar, printer, keyboard
dibaca mesin
Monitoring dan kontrol
komunikasi
modem
Network Interface Card (NIC)
I/O Module Function
Control & Timing
CPU Communication
Device Communication
Data Buffering
Error Detection
I/O Steps
CPU memeriksa I / O Status modul device
Modul I / O Status pengembalian
Jika siap, CPU meminta transfer data
Modul I / O mendapatkan data dari device
Modul I / O transfer data ke CPU
Variasi untuk output, DMA, dll
I/O Module Decisions
Menyembunyikan atau mengungkapkan device properties ke CPU
Dukungan beberapa device atau tunggal
Kontrol fungsi perangkat atau meninggalkan untuk CPU
Juga O / S keputusan
misalnya Unix memperlakukan segala sesuatu yang dapat sebagai file
Input Output Techniques
Programmed
interrupt driven
Direct Memory Access (DMA)
Programmed I/O
CPU memiliki kontrol langsung atas I / O
penginderaan Status
Membaca / menulis perintah
mentransfer data
CPU menunggu modul I / O untuk operasi lengkap
Limbah waktu CPU
Programmed I/O – detail
CPU meminta I / O operasi
Modul I / O melakukan operasi
I / O modul set bit status yang
CPU memeriksa bit status yang secara berkala
Modul I / O tidak memberitahu CPU secara langsung
Modul I / O tidak mengganggu CPU
CPU mungkin menunggu atau kembali lagi nanti
I/O Commands
CPU masalah alamat
Mengidentifikasi modul (& perangkat jika> 1 per modul)
CPU masalah perintah
Kontrol - modul memberitahu apa yang harus dilakukan
misalnya berputar disk
Uji - Status cek
misalnya kekuasaan? Kesalahan?
Baca / Tulis
Modul transfer data melalui buffer dari / ke perangkat
Addressing I/O Devices
Di bawah diprogram I / O transfer data sangat seperti akses memori (sudut pandangCPU)
Setiap perangkat diberi pengenal unik
Perintah CPU berisi pengenal (alamat)
I/O Mapping
Memori dipetakan I / O
Perangkat dan berbagi ruang alamat memori
I / O tampak seperti memori baca / tulis
Tidak ada perintah khusus untuk I / O
Banyak pilihan perintah akses memori yang tersedia
Terisolasi I / O
Pisahkan alamat spasi
Butuh I / O atau memori baris pilih
Khusus perintah untuk I / O
terbatas diatur
Interrupt Driven I/O
Mengatasi CPU menunggu
Tidak memeriksa ulang perangkat CPU
I / O modul interupsi saat siap
Interrupt Driven I/O Basic Operation
Masalah CPU membaca perintah
Modul I / O mendapatkan data dari CPU sementara tidak bekerja perifer lainnya
Modul I / O menyela CPU
CPU permintaan data
Transfer modul I / O data
CPU Viewpoint
Masalah membaca perintah
Melakukan pekerjaan lain
Periksa interupsi pada akhir setiap siklus instruksi
Jika terganggu: -
Simpan konteks (register)
proses mengganggu
Mengambil data & menyimpan
Lihat catatan Sistem Operasi
Design Issues
Bagaimana Anda mengidentifikasi modul menerbitkan mengganggu?
Bagaimana Anda menangani beberapa interupsi?
yakni sebuah interrupt handler yang terganggu
Identifying Interrupting Module (1)
Berbeda baris untuk setiap modul
PC
Batas jumlah perangkat
Software jajak pendapat
CPU meminta modul masing-masing pada gilirannya
lambat
Identifying Interrupting Module (2)
Daisy Chain atau jajak pendapat perangkat keras
Interrupt Akui diturunkan rantai
Modul bertanggung jawab tempat vektor di bus
CPU menggunakan vektor untuk mengidentifikasi rutin handler
bus Master
Modul harus mengajukan klaim bus sebelum dapat meningkatkan mengganggu
misalnya PCI & SCSI
Multiple Interrupts
Setiap baris interrupt memiliki prioritas
Garis prioritas yang lebih tinggi dapat mengganggu jalur prioritas yang lebih rendah
Jika bus mastering hanya master saat ini dapat mengganggu
Example - PC Bus
80x86 memiliki satu baris interrupt
8086 menggunakan sistem berbasis satu controller interupsi 8259A
8259A memiliki 8 baris interrupt
Sequence of Events
Menerima interupsi 8259A
8259A menentukan prioritas
8259A sinyal 8086 (INTR menimbulkan baris)
CPU Mengakui
8259A menempatkan vektor yang benar pada data bus
Proses CPU mengganggu
ISA Bus Interrupt System
Bus ISA chain dua 8259As bersama-sama
Link adalah melalui interupsi 2
Memberikan 15 baris
16 baris kurang satu untuk link
IRQ 9 digunakan untuk kembali rute apa pun mencoba untuk menggunakan IRQ 2
kompatibilitas mundur
Incorporated di chip set
Direct Memory Access
Interrupt driven dan diprogram I / O memerlukan intervensi CPU aktif
Transfer rate terbatas
CPU diikat
DMA adalah jawabannya
DMA Function
Modul tambahan (hardware) di bus
DMA controller mengambil alih dari CPU untuk I / O
DMA Operation
DMA controller memberitahu CPU: -
Baca / Tulis
alamat perangkat
Mulai alamat blok memori untuk data
Jumlah data yang ditransfer
CPU melanjutkan pekerjaan lain
DMA controller mentransfer berhubungan dengan
DMA controller mengirimkan interupsi ketika selesai
DMA Transfer Cycle Stealing
DMA controller mengambil alih bus untuk siklus
Transfer data satu kata
Tidak interrupt
CPU tidak context switch
CPU ditangguhkan sebelum ia mengakses bus
yaitu sebelum mengambil operand atau data atau menulis data
Memperlambat CPU, tetapi tidak sebanyak mentransfer CPU melakukan
I/O Channels
I / O device semakin canggih
misalnya Kartu grafis 3D
Menginstruksikan CPU I / O controller untuk melakukan transfer
I / O controller tidak seluruh transfer
meningkatkan kecepatan
Membawa beban dari CPU
Dedicated prosesor lebih cepat
Small Computer Systems Interface (SCSI)
paralel antarmuka
8, 16, 32 bit data baris
daisy dirantai
Perangkat independen
Perangkat dapat berkomunikasi satu sama lain juga sebagai tuan rumah
SCSI – 1
awal 1980-an
8 bit
5MHz
Data rate 5MBytes.s-1
tujuh perangkat
Delapan termasuk antarmuka host
SCSI – 2
1991
16 dan 32 bit
10MHz
Data rate 20 atau 40 Mbytes.s-1
(Check out Ultra / Wide SCSI)
SCSI Signaling (1)
Antara inisiator dan target
Biasanya host & perangkat
Bis gratis? (c.f. Ethernet)
Arbitrase - mengendalikan bus (c.f. PCI)
memilih target
seleksi ulang
Memungkinkan rekoneksi setelah suspensi
misalnya jika permintaan membutuhkan waktu untuk mengeksekusi, bus dapat dilepaskan
SCSI Signaling (2)
Perintah - target meminta dari inisiator
data permintaan
Status permintaan
Pesan permintaan (kedua cara)
Configuring SCSI
Bus harus diakhiri di setiap akhir
Biasanya salah satu ujungnya adalah host adapter
Pasang di terminator atau beralih (es)
SCSI Id harus diatur
Jumper atau switch
Unik pada rantai
0 (nol) untuk perangkat boot
Jumlah yang lebih tinggi merupakan prioritas tinggi pada arbitrase
IEEE 1394 FireWire
Kinerja bus seri tinggi
cepat
biaya rendah
Mudah untuk menerapkan
Juga digunakan dalam kamera digital, VCR dan TV
FireWire Configuration
rantai daisy
Sampai dengan 63 perangkat pada port tunggal
Benar-benar 64 yang satu adalah antarmuka itu sendiri
Sampai 1022 bus dapat dihubungkan dengan jembatan
konfigurasi otomatis
Tidak ada bus terminator
Mungkin struktur pohon
FireWire 3 Layer Stack
fisik
Transmisi menengah, listrik dan karakteristik sinyal
link
Transmisi data dalam paket
transaksi
Permintaan-respon protocol
FireWire - Physical Layer
Data rate dari 25 hingga 400Mbps
Dua bentuk arbitrase
Berdasarkan struktur pohon
Akar bertindak sebagai arbiter
Pertama datang pertama dilayani
Prioritas alami kontrol permintaan simultan
yaitu yang terdekat untuk root
arbitrase yang adil
mendesak arbitrase
FireWire - Link Layer
Dua jenis transmisi
asynchronous
Jumlah variabel data dan beberapa byte data transaksi ditransfer sebagai sebuah paket
Untuk mengatasi eksplisit
Pengakuan kembali
isochronous
Variabel jumlah data dalam urutan paket ukuran yang tetap secara berkala
Sederhana menangani
tidak ada pengakuan
Foreground Reading
Check out Universal Serial Bus (USB)
Bandingkan dengan standar komunikasi lainnya misalnya Ethernet
Berbagai macam peripheral
Menyampaikan berbagai data dalam jumlah
Pada kecepatan yang berbeda
Dalam format yang berbeda
Lebih lambat dari CPU dan RAM Semua
Need I / O modul
Input/Output Module
Interface ke CPU dan Memori
Interface ke satu atau lebih peripheral
External Devices
dapat dibaca manusia
Layar, printer, keyboard
dibaca mesin
Monitoring dan kontrol
komunikasi
modem
Network Interface Card (NIC)
I/O Module Function
Control & Timing
CPU Communication
Device Communication
Data Buffering
Error Detection
I/O Steps
CPU memeriksa I / O Status modul device
Modul I / O Status pengembalian
Jika siap, CPU meminta transfer data
Modul I / O mendapatkan data dari device
Modul I / O transfer data ke CPU
Variasi untuk output, DMA, dll
I/O Module Decisions
Menyembunyikan atau mengungkapkan device properties ke CPU
Dukungan beberapa device atau tunggal
Kontrol fungsi perangkat atau meninggalkan untuk CPU
Juga O / S keputusan
misalnya Unix memperlakukan segala sesuatu yang dapat sebagai file
Input Output Techniques
Programmed
interrupt driven
Direct Memory Access (DMA)
Programmed I/O
CPU memiliki kontrol langsung atas I / O
penginderaan Status
Membaca / menulis perintah
mentransfer data
CPU menunggu modul I / O untuk operasi lengkap
Limbah waktu CPU
Programmed I/O – detail
CPU meminta I / O operasi
Modul I / O melakukan operasi
I / O modul set bit status yang
CPU memeriksa bit status yang secara berkala
Modul I / O tidak memberitahu CPU secara langsung
Modul I / O tidak mengganggu CPU
CPU mungkin menunggu atau kembali lagi nanti
I/O Commands
CPU masalah alamat
Mengidentifikasi modul (& perangkat jika> 1 per modul)
CPU masalah perintah
Kontrol - modul memberitahu apa yang harus dilakukan
misalnya berputar disk
Uji - Status cek
misalnya kekuasaan? Kesalahan?
Baca / Tulis
Modul transfer data melalui buffer dari / ke perangkat
Addressing I/O Devices
Di bawah diprogram I / O transfer data sangat seperti akses memori (sudut pandangCPU)
Setiap perangkat diberi pengenal unik
Perintah CPU berisi pengenal (alamat)
I/O Mapping
Memori dipetakan I / O
Perangkat dan berbagi ruang alamat memori
I / O tampak seperti memori baca / tulis
Tidak ada perintah khusus untuk I / O
Banyak pilihan perintah akses memori yang tersedia
Terisolasi I / O
Pisahkan alamat spasi
Butuh I / O atau memori baris pilih
Khusus perintah untuk I / O
terbatas diatur
Interrupt Driven I/O
Mengatasi CPU menunggu
Tidak memeriksa ulang perangkat CPU
I / O modul interupsi saat siap
Interrupt Driven I/O Basic Operation
Masalah CPU membaca perintah
Modul I / O mendapatkan data dari CPU sementara tidak bekerja perifer lainnya
Modul I / O menyela CPU
CPU permintaan data
Transfer modul I / O data
CPU Viewpoint
Masalah membaca perintah
Melakukan pekerjaan lain
Periksa interupsi pada akhir setiap siklus instruksi
Jika terganggu: -
Simpan konteks (register)
proses mengganggu
Mengambil data & menyimpan
Lihat catatan Sistem Operasi
Design Issues
Bagaimana Anda mengidentifikasi modul menerbitkan mengganggu?
Bagaimana Anda menangani beberapa interupsi?
yakni sebuah interrupt handler yang terganggu
Identifying Interrupting Module (1)
Berbeda baris untuk setiap modul
PC
Batas jumlah perangkat
Software jajak pendapat
CPU meminta modul masing-masing pada gilirannya
lambat
Identifying Interrupting Module (2)
Daisy Chain atau jajak pendapat perangkat keras
Interrupt Akui diturunkan rantai
Modul bertanggung jawab tempat vektor di bus
CPU menggunakan vektor untuk mengidentifikasi rutin handler
bus Master
Modul harus mengajukan klaim bus sebelum dapat meningkatkan mengganggu
misalnya PCI & SCSI
Multiple Interrupts
Setiap baris interrupt memiliki prioritas
Garis prioritas yang lebih tinggi dapat mengganggu jalur prioritas yang lebih rendah
Jika bus mastering hanya master saat ini dapat mengganggu
Example - PC Bus
80x86 memiliki satu baris interrupt
8086 menggunakan sistem berbasis satu controller interupsi 8259A
8259A memiliki 8 baris interrupt
Sequence of Events
Menerima interupsi 8259A
8259A menentukan prioritas
8259A sinyal 8086 (INTR menimbulkan baris)
CPU Mengakui
8259A menempatkan vektor yang benar pada data bus
Proses CPU mengganggu
ISA Bus Interrupt System
Bus ISA chain dua 8259As bersama-sama
Link adalah melalui interupsi 2
Memberikan 15 baris
16 baris kurang satu untuk link
IRQ 9 digunakan untuk kembali rute apa pun mencoba untuk menggunakan IRQ 2
kompatibilitas mundur
Incorporated di chip set
Direct Memory Access
Interrupt driven dan diprogram I / O memerlukan intervensi CPU aktif
Transfer rate terbatas
CPU diikat
DMA adalah jawabannya
DMA Function
Modul tambahan (hardware) di bus
DMA controller mengambil alih dari CPU untuk I / O
DMA Operation
DMA controller memberitahu CPU: -
Baca / Tulis
alamat perangkat
Mulai alamat blok memori untuk data
Jumlah data yang ditransfer
CPU melanjutkan pekerjaan lain
DMA controller mentransfer berhubungan dengan
DMA controller mengirimkan interupsi ketika selesai
DMA Transfer Cycle Stealing
DMA controller mengambil alih bus untuk siklus
Transfer data satu kata
Tidak interrupt
CPU tidak context switch
CPU ditangguhkan sebelum ia mengakses bus
yaitu sebelum mengambil operand atau data atau menulis data
Memperlambat CPU, tetapi tidak sebanyak mentransfer CPU melakukan
I/O Channels
I / O device semakin canggih
misalnya Kartu grafis 3D
Menginstruksikan CPU I / O controller untuk melakukan transfer
I / O controller tidak seluruh transfer
meningkatkan kecepatan
Membawa beban dari CPU
Dedicated prosesor lebih cepat
Small Computer Systems Interface (SCSI)
paralel antarmuka
8, 16, 32 bit data baris
daisy dirantai
Perangkat independen
Perangkat dapat berkomunikasi satu sama lain juga sebagai tuan rumah
SCSI – 1
awal 1980-an
8 bit
5MHz
Data rate 5MBytes.s-1
tujuh perangkat
Delapan termasuk antarmuka host
SCSI – 2
1991
16 dan 32 bit
10MHz
Data rate 20 atau 40 Mbytes.s-1
(Check out Ultra / Wide SCSI)
SCSI Signaling (1)
Antara inisiator dan target
Biasanya host & perangkat
Bis gratis? (c.f. Ethernet)
Arbitrase - mengendalikan bus (c.f. PCI)
memilih target
seleksi ulang
Memungkinkan rekoneksi setelah suspensi
misalnya jika permintaan membutuhkan waktu untuk mengeksekusi, bus dapat dilepaskan
SCSI Signaling (2)
Perintah - target meminta dari inisiator
data permintaan
Status permintaan
Pesan permintaan (kedua cara)
Configuring SCSI
Bus harus diakhiri di setiap akhir
Biasanya salah satu ujungnya adalah host adapter
Pasang di terminator atau beralih (es)
SCSI Id harus diatur
Jumper atau switch
Unik pada rantai
0 (nol) untuk perangkat boot
Jumlah yang lebih tinggi merupakan prioritas tinggi pada arbitrase
IEEE 1394 FireWire
Kinerja bus seri tinggi
cepat
biaya rendah
Mudah untuk menerapkan
Juga digunakan dalam kamera digital, VCR dan TV
FireWire Configuration
rantai daisy
Sampai dengan 63 perangkat pada port tunggal
Benar-benar 64 yang satu adalah antarmuka itu sendiri
Sampai 1022 bus dapat dihubungkan dengan jembatan
konfigurasi otomatis
Tidak ada bus terminator
Mungkin struktur pohon
FireWire 3 Layer Stack
fisik
Transmisi menengah, listrik dan karakteristik sinyal
link
Transmisi data dalam paket
transaksi
Permintaan-respon protocol
FireWire - Physical Layer
Data rate dari 25 hingga 400Mbps
Dua bentuk arbitrase
Berdasarkan struktur pohon
Akar bertindak sebagai arbiter
Pertama datang pertama dilayani
Prioritas alami kontrol permintaan simultan
yaitu yang terdekat untuk root
arbitrase yang adil
mendesak arbitrase
FireWire - Link Layer
Dua jenis transmisi
asynchronous
Jumlah variabel data dan beberapa byte data transaksi ditransfer sebagai sebuah paket
Untuk mengatasi eksplisit
Pengakuan kembali
isochronous
Variabel jumlah data dalam urutan paket ukuran yang tetap secara berkala
Sederhana menangani
tidak ada pengakuan
Foreground Reading
Check out Universal Serial Bus (USB)
Bandingkan dengan standar komunikasi lainnya misalnya Ethernet
Minggu, 23 Oktober 2011
Pertemuan 5
Jenis Memori External
Magnetic Disk
RAID
Removable
Optical
CD-ROM
CD-Writable (WORM)
CD-R/W
DVD
Magnetic Tape
Magnetic Disk
Metal atau plastic dilapisi dg material yg bersifat magnet (iron oxide)
Jenis kemasan
Floppy
Winchester hard disk
Removable hard disk
Format dan Organisasi Data
Lingkaran konsentris atau track
Ada Gap antar track
Gap sempit, kapasitas bertambah
Jumlah bit per track sama (kerapatan bervariasi)
Kecepatan putar tetap
Track dibagi menjadi beberapa sector
Ukuran minimum block adalah satu sector
Satu block bisa berisi lebih dari satu sector
Fixed/Movable Head Disk
Fixed head
Ada satu head (r/w) per track
Head diletakkan pada tangkai yg tetap
Movable head
Hanya ada satu head per side
Diletakkan pada tangkai yg dpt bergerak
Removable / Non removable
Removable disk
Dapat dilepas dari drive dan diganti dg disk lain
Memberikan kapasitas simpanan yg tak terbatas
Mudah melakukan transfer data antar sistem
Nonremovable disk
Terpasanang permanen dalam drive
Floppy Disk
8”, 5.25”, 3.5”
Kapasitas kecil
sampai 1.44Mbyte (ada yg 2.88M)
Lambat
Umum dipakai
Murah
Winchester Hard Disk (1)
Dikembangkan oleh IBM di Winchester (USA)
Dikemas dalam satu unit
Berisi satu cakram atau lebih
Head sangat kecil
Handal
Winchester Hard Disk (2)
Umum digunakan
Murah
Sbg external storage yg sangat cepat
Kapasitas semakin besar
Dalam orde GB
Removable Hard Disk
ZIP
Murah
Banyak digunakan
100MB
JAZ
Mahal
1G
L-120 (a: drive)
Juga dpt untuk membaca 3.5” floppy
Pencarian Sector
Harus dapat mengenali awal suatu track dan sector
Format disk
Menambahkan informasi tambahan
Memberi tanda awal track dan sector
Karakteristik
Fixed head atau movable head
Removable disk atau fixed disk
Single side atau double side
Single platter atau multiple platter
Mekanisme head
Contact (Floppy)
Fixed gap
Flying (Winchester)
Multiple Platter
Satu head per side
Semua head di-join dan di-align
Track-track yg setiap platter membentuk cylinder
Data dipecah berdasarkan cylinder
Mengurangi gerakan head
Meningkatkan kecepatan (transfer rate)
Kecepatan
Seek time
gerakan head ke track yg dituju
(Rotational) latency
Putar platter sampai posisi data dibawah head
Access time = Seek + Latency
Transfer rate
RAID
Redundant Array of Independent Disks
Redundant Array of Inexpensive Disks
Ada 6 level
Tidak berhirarki
Sejumlah disks (fisik) yg dipandang sbg satu drive (logical) oleh Sistem Operasil
Data tersebar diantara disk fisik
RAID 0
No redundancy
Data striped across all disks
Round Robin striping
Increase speed
Multiple data requests probably not on same disk
Disks seek in parallel
A set of data is likely to be striped across multiple disks
RAID 1
Mirrored Disks
Data is striped across disks
2 copies of each stripe on separate disks
Read from either
Write to both
Recovery is simple
Swap faulty disk & re-mirror
No down time
Expensive
RAID 2
Disks are synchronized
Very small stripes
Often single byte/word
Error correction calculated across corresponding bits on disks
Multiple parity disks store Hamming code error correction in corresponding position
Lots of redundancy
Expensive
Not used
RAID 3
Similar to RAID 2
Only one redundant disk, no matter how large the array
Simple parity bit for each set of corresponding bits
Data on failed drive can be reconstructed from surviving data and parity info
Very high transfer rates
RAID 4
Each disk operates independently
Good for high I/O request rate
Large stripes
Bit by bit parity calculated across stripes on each disk
Parity stored on parity disk
RAID 5
Like RAID 4
Parity striped across all disks
Round robin allocation for parity stripe
Avoids RAID 4 bottleneck at parity disk
Commonly used in network servers
N.B. DOES NOT MEAN 5 DISKS!!!!!
Optical Storage CD-ROM
Originally for audio
650Mbytes giving over 70 minutes audio
Polycarbonate coated with highly reflective coat, usually aluminum
Data stored as pits
Read by reflecting laser
Constant packing density
Constant linear velocity
CD-ROM Drive Speeds
Audio is single speed
Constant linier velocity
1.2 ms-1
Track (spiral) is 5.27km long
Gives 4391 seconds = 73.2 minutes
Other speeds are quoted as multiples
e.g. 24x
The quoted figure is the maximum the drive can achieve
Random Access on CD-ROM
Difficult
Move head to rough position
Set correct speed
Read address
Adjust to required location
(Yawn!)
CD-ROM for & against
Large capacity (?)
Easy to mass produce
Removable
Robust
Expensive for small runs
Slow
Read only
Other Optical Storage
CD-Writable
WORM
Now affordable
Compatible with CD-ROM drives
CD-RW
Erasable
Getting cheaper
Mostly CD-ROM drive compatible
DVD - what’s in a name?
Digital Video Disk
Used to indicate a player for movies
Only plays video disks
Digital Versatile Disk
Used to indicate a computer drive
Will read computer disks and play video disks
Dogs Veritable Dinner
Officially - nothing!!!
DVD – technology
Multi-layer
Very high capacity (4.7G per layer)
Full length movie on single disk
Using MPEG compression
Finally standardized (honest!)
Movies carry regional coding
Players only play correct region films
Can be “fixed”
DVD – Writable
Loads of trouble with standards
First generation DVD drives may not read first generation DVD-W disks
First generation DVD drives may not read CD-RW disks
Wait for it to settle down before buying!
Foreground Reading
Check out optical disk storage options
Check out Mini Disk
Magnetic Tape
Serial access
Slow
Very cheap
Backup and archive
Digital Audio Tape (DAT)
Uses rotating head (like video)
High capacity on small tape
4Gbyte uncompressed
8Gbyte compressed
Backup of PC/network servers
Magnetic Disk
RAID
Removable
Optical
CD-ROM
CD-Writable (WORM)
CD-R/W
DVD
Magnetic Tape
Magnetic Disk
Metal atau plastic dilapisi dg material yg bersifat magnet (iron oxide)
Jenis kemasan
Floppy
Winchester hard disk
Removable hard disk
Format dan Organisasi Data
Lingkaran konsentris atau track
Ada Gap antar track
Gap sempit, kapasitas bertambah
Jumlah bit per track sama (kerapatan bervariasi)
Kecepatan putar tetap
Track dibagi menjadi beberapa sector
Ukuran minimum block adalah satu sector
Satu block bisa berisi lebih dari satu sector
Fixed/Movable Head Disk
Fixed head
Ada satu head (r/w) per track
Head diletakkan pada tangkai yg tetap
Movable head
Hanya ada satu head per side
Diletakkan pada tangkai yg dpt bergerak
Removable / Non removable
Removable disk
Dapat dilepas dari drive dan diganti dg disk lain
Memberikan kapasitas simpanan yg tak terbatas
Mudah melakukan transfer data antar sistem
Nonremovable disk
Terpasanang permanen dalam drive
Floppy Disk
8”, 5.25”, 3.5”
Kapasitas kecil
sampai 1.44Mbyte (ada yg 2.88M)
Lambat
Umum dipakai
Murah
Winchester Hard Disk (1)
Dikembangkan oleh IBM di Winchester (USA)
Dikemas dalam satu unit
Berisi satu cakram atau lebih
Head sangat kecil
Handal
Winchester Hard Disk (2)
Umum digunakan
Murah
Sbg external storage yg sangat cepat
Kapasitas semakin besar
Dalam orde GB
Removable Hard Disk
ZIP
Murah
Banyak digunakan
100MB
JAZ
Mahal
1G
L-120 (a: drive)
Juga dpt untuk membaca 3.5” floppy
Pencarian Sector
Harus dapat mengenali awal suatu track dan sector
Format disk
Menambahkan informasi tambahan
Memberi tanda awal track dan sector
Karakteristik
Fixed head atau movable head
Removable disk atau fixed disk
Single side atau double side
Single platter atau multiple platter
Mekanisme head
Contact (Floppy)
Fixed gap
Flying (Winchester)
Multiple Platter
Satu head per side
Semua head di-join dan di-align
Track-track yg setiap platter membentuk cylinder
Data dipecah berdasarkan cylinder
Mengurangi gerakan head
Meningkatkan kecepatan (transfer rate)
Kecepatan
Seek time
gerakan head ke track yg dituju
(Rotational) latency
Putar platter sampai posisi data dibawah head
Access time = Seek + Latency
Transfer rate
RAID
Redundant Array of Independent Disks
Redundant Array of Inexpensive Disks
Ada 6 level
Tidak berhirarki
Sejumlah disks (fisik) yg dipandang sbg satu drive (logical) oleh Sistem Operasil
Data tersebar diantara disk fisik
RAID 0
No redundancy
Data striped across all disks
Round Robin striping
Increase speed
Multiple data requests probably not on same disk
Disks seek in parallel
A set of data is likely to be striped across multiple disks
RAID 1
Mirrored Disks
Data is striped across disks
2 copies of each stripe on separate disks
Read from either
Write to both
Recovery is simple
Swap faulty disk & re-mirror
No down time
Expensive
RAID 2
Disks are synchronized
Very small stripes
Often single byte/word
Error correction calculated across corresponding bits on disks
Multiple parity disks store Hamming code error correction in corresponding position
Lots of redundancy
Expensive
Not used
RAID 3
Similar to RAID 2
Only one redundant disk, no matter how large the array
Simple parity bit for each set of corresponding bits
Data on failed drive can be reconstructed from surviving data and parity info
Very high transfer rates
RAID 4
Each disk operates independently
Good for high I/O request rate
Large stripes
Bit by bit parity calculated across stripes on each disk
Parity stored on parity disk
RAID 5
Like RAID 4
Parity striped across all disks
Round robin allocation for parity stripe
Avoids RAID 4 bottleneck at parity disk
Commonly used in network servers
N.B. DOES NOT MEAN 5 DISKS!!!!!
Optical Storage CD-ROM
Originally for audio
650Mbytes giving over 70 minutes audio
Polycarbonate coated with highly reflective coat, usually aluminum
Data stored as pits
Read by reflecting laser
Constant packing density
Constant linear velocity
CD-ROM Drive Speeds
Audio is single speed
Constant linier velocity
1.2 ms-1
Track (spiral) is 5.27km long
Gives 4391 seconds = 73.2 minutes
Other speeds are quoted as multiples
e.g. 24x
The quoted figure is the maximum the drive can achieve
Random Access on CD-ROM
Difficult
Move head to rough position
Set correct speed
Read address
Adjust to required location
(Yawn!)
CD-ROM for & against
Large capacity (?)
Easy to mass produce
Removable
Robust
Expensive for small runs
Slow
Read only
Other Optical Storage
CD-Writable
WORM
Now affordable
Compatible with CD-ROM drives
CD-RW
Erasable
Getting cheaper
Mostly CD-ROM drive compatible
DVD - what’s in a name?
Digital Video Disk
Used to indicate a player for movies
Only plays video disks
Digital Versatile Disk
Used to indicate a computer drive
Will read computer disks and play video disks
Dogs Veritable Dinner
Officially - nothing!!!
DVD – technology
Multi-layer
Very high capacity (4.7G per layer)
Full length movie on single disk
Using MPEG compression
Finally standardized (honest!)
Movies carry regional coding
Players only play correct region films
Can be “fixed”
DVD – Writable
Loads of trouble with standards
First generation DVD drives may not read first generation DVD-W disks
First generation DVD drives may not read CD-RW disks
Wait for it to settle down before buying!
Foreground Reading
Check out optical disk storage options
Check out Mini Disk
Magnetic Tape
Serial access
Slow
Very cheap
Backup and archive
Digital Audio Tape (DAT)
Uses rotating head (like video)
High capacity on small tape
4Gbyte uncompressed
8Gbyte compressed
Backup of PC/network servers
Minggu, 16 Oktober 2011
Pertemuan 4
Pertemuan 4
MEMORY
Karakteristik Memori
Lokasi
Kapasitas
Unit transfer
Metode Akses
Kinerja
Jenis fisik
Sifat-sifat fisik
Organisasi
Lokasi
CPU (register)
Internal (main memori)
External (secondary memori)
Kapasitas
Ukuran Word
Satuan alami organisasi memori
Banyaknya words
atau Bytes
Satuan Transfer
Internal
Jumlah bit dalam sekali akses
Sama dengan jumlah saluran data (= ukuran word)
External
Dalam satuan block yg merupakan kelipatan word
Addressable unit
Lokasi terkecil yang dpt dialamati secara uniq
Secara internal biasanya sama dengan Word
Untuk disk digunakan satuan Cluster
Metode Akses
Sekuensial
Mulai dari awal sampai lokasi yang dituju
Waktu akses tergantung pada lokasi data dan lokasi sebelumnya
Contoh tape
Direct
Setiap blocks memilki address yg unique
Pengaksesan dengan cara lompat ke kisaran umum (general vicinity) ditambah pencarian sekuensial
Waktu akses tdk tergantung pada lokasi dan lokasi sebelumnya
contoh disk
Random
Setiap lokasi memiliki alamat tertentu
Waktu akses tdk tergantung pada urutan akses sebelumnya
Contoh RAM
Associative
Data dicarai berdasarkan isinya bukan berdasarkan alamatnya
Waktu akses tdk tergantung terhadap lokasi atau pola akses sebelumnya
Contoh: cache
Hierarki Memori
Register
Dalam CPU
Internal/Main memory
Bisa lebih dari satu level dengan adanya cache
“RAM”
External memory
Penyimpan cadangan
Performance
Access time
Waktu untuk melakukan operasi baca-tulis
Memory Cycle time
Diperlukan waktu tambahan untuk recovery sebelum akses berikutnya
Access time + recovery
Transfer Rate
Kecepatan transfer data ke/dari unit memori
Jenis Fisik
Semiconductor
RAM
Magnetic
Disk & Tape
Optical
CD & DVD
Others
Bubble
Hologram
Karakteristik
Decay
Volatility
Erasable
Power consumption
Organisasi
Susunan fisik bit-bit untuk membentuk word
Kendala Rancangan
Berapa banyak?
Capacity
Seberapa cepat?
Time is money
Berapa mahal?
Hierarki
Registers
L1 Cache
L2 Cache
Main memory
Disk cache
Disk
Optical
Tape
Locality of Reference
Selama berlangsungnya eksekusi suatu program, referensi memori cenderung untuk mengelompok (cluster)
Contoh: loops
Memori Semiconductor
RAM
Penamaan yang salah karena semua memori semiconductor adalah random access (termasuk ROM)
Read/Write
Volatile
Penyimpan sementara
Static atau dynamic
Dynamic RAM
Bit tersimpan berupa muatan dalam capacitor
Muatan dapat bocor
Perlu di-refresh
Konstruksi sederhana
Ukuran per bit nya kecil
Murah
Perlu refresh-circuits
Lambat
Main memory
Static RAM
Bit disimpan sebagai switches on/off
Tidk ada kebocoran
Tdk perlu refreshing
Konstruksi lebih complex
Ukuran per bit lebih besar
Lebih mahal
Tidak memerlukan refresh-circuits
Lebih cepat
Cache
Read Only Memory (ROM)
Menyimpan secara permanen
Untuk
Microprogramming
Library subroutines
Systems programs (BIOS)
Function tables
Jenis ROM
Ditulisi pada saat dibuat
Sangat mahal
Programmable (once)
PROM
Diperlukan peralatan khusus untuk memprogram
Read “mostly”
Erasable Programmable (EPROM)
Dihapus dg sinar UV
Electrically Erasable (EEPROM)
Perlu waktu lebih lama untuk menulisi
Flash memory
Menghapus seleuruh memori secara electris
Organisasi
16Mbit chip dapat disusun dari 1M x 16 bit word
1 bit/chip memiliki 16 lots dengan bit ke 1 dari setiap word berada pada chip 1
16Mbit chip dapat disusun dari array: 2048 x 2048 x 4bit
Mengurangi jumlah addres pins
Multiplex row address dg column address
11 pins untuk address (211=2048)
Menambah 1 pin kapasitas menjadi 4x
Refreshing
Rangkaian Refresh diamsukkan dalam chip
Disable chip
Pencacahan melalui baris
Read & Write back
Perlu waktu
Menurunkan kinerja
Koreksi kesalahan
Rusak berat
Cacat/rusak Permanent
Rusak ringan
Random, non-destructive
Rusak non permanent
Dideteksi menggunakan Hamming code
Operasi pada Cache
CPU meminta isi data dari lokasi memori tertentu
Periksa data tersebut di cache
Jika ada ambil dari cache (cepat)
Jika tidak ada, baca 1 block data dari main memory ke cache
Ambil dari cache ke CPU
Cache bersisi tags untuk identitas block dari main memory yang berada di cache
Desain Cache
Ukuran (size)
Fungsi Mapping
Algoritma penggantian (replacement algrthm)
Cara penulisan (write policy)
Ukuran Block
Jumlah Cache
Size
Cost
Semakin besar semakin mahal
Speed
Semakin besar semakin cepat
Check data di cache perlu waktu
Fungsi Mapping
Ukuran Cache 64kByte
Ukuran block 4 bytes
diperlukan 16k (214) alamat per alamat 4 bytes
Jumlah jalur alamat cache 14
Main memory 16MBytes
Jalur alamat perlu 24 bit
(224=16M)
Direct Mapping
Setiap block main memory dipetakan hanya ke satu jalur cache
Jika suatu block ada di cache, maka tempatnya sudah tertentu
Address terbagi dalam 2 bagian
LS-w-bit menunjukkan word tertentu
MS-s-bit menentukan 1 blok memori
MSB terbagi menjadi field jalur cache r dan tag sebesar s-r (most significant)
Table Cache Line pada Direct Mapping
Cache line blocks main memori
0 0, m, 2m, 3m…2s-m
1 1,m+1, 2m+1…2s-m+1
m-1 m-1, 2m-1,3m-1…2s-1
Keuntungan & Kerugian Direct Mapping
Sederhana
Murah
Suatu blok memiliki lokasi yang tetap
Jika program mengakses 2 block yang di map ke line yang sama secara berulang-ulang, maka cache-miss sanagat tinggi
Associative Mapping
Blok main memori dpt di simpan ke cache line mana saja
Alamat Memori di interpresi sbg tag dan word
Tag menunjukan identitas block memori
Setiap baris tag dicari kecocokannya
Pencarian data di Cache menjadi lama
Set Associative Mapping
Cache dibagi dalam sejumlah sets
Setiap set berisi sejumlah line
Suatu blok di maps ke line mana saja dalam set
misalkan Block B dapat berada pada line mana saja dari set i
Contoh: per set ada 2 line
2 way associative mapping
Suatu block dpt berada pada satu dari 2 lines dan hanya dalam 1 set
Replacement Algorithms (1)
Direct mapping
Tidak ada pilihan
Setiap block hanya di map ke 1 line
Ganti line tersebut
MEMORY
Karakteristik Memori
Lokasi
Kapasitas
Unit transfer
Metode Akses
Kinerja
Jenis fisik
Sifat-sifat fisik
Organisasi
Lokasi
CPU (register)
Internal (main memori)
External (secondary memori)
Kapasitas
Ukuran Word
Satuan alami organisasi memori
Banyaknya words
atau Bytes
Satuan Transfer
Internal
Jumlah bit dalam sekali akses
Sama dengan jumlah saluran data (= ukuran word)
External
Dalam satuan block yg merupakan kelipatan word
Addressable unit
Lokasi terkecil yang dpt dialamati secara uniq
Secara internal biasanya sama dengan Word
Untuk disk digunakan satuan Cluster
Metode Akses
Sekuensial
Mulai dari awal sampai lokasi yang dituju
Waktu akses tergantung pada lokasi data dan lokasi sebelumnya
Contoh tape
Direct
Setiap blocks memilki address yg unique
Pengaksesan dengan cara lompat ke kisaran umum (general vicinity) ditambah pencarian sekuensial
Waktu akses tdk tergantung pada lokasi dan lokasi sebelumnya
contoh disk
Random
Setiap lokasi memiliki alamat tertentu
Waktu akses tdk tergantung pada urutan akses sebelumnya
Contoh RAM
Associative
Data dicarai berdasarkan isinya bukan berdasarkan alamatnya
Waktu akses tdk tergantung terhadap lokasi atau pola akses sebelumnya
Contoh: cache
Hierarki Memori
Register
Dalam CPU
Internal/Main memory
Bisa lebih dari satu level dengan adanya cache
“RAM”
External memory
Penyimpan cadangan
Performance
Access time
Waktu untuk melakukan operasi baca-tulis
Memory Cycle time
Diperlukan waktu tambahan untuk recovery sebelum akses berikutnya
Access time + recovery
Transfer Rate
Kecepatan transfer data ke/dari unit memori
Jenis Fisik
Semiconductor
RAM
Magnetic
Disk & Tape
Optical
CD & DVD
Others
Bubble
Hologram
Karakteristik
Decay
Volatility
Erasable
Power consumption
Organisasi
Susunan fisik bit-bit untuk membentuk word
Kendala Rancangan
Berapa banyak?
Capacity
Seberapa cepat?
Time is money
Berapa mahal?
Hierarki
Registers
L1 Cache
L2 Cache
Main memory
Disk cache
Disk
Optical
Tape
Locality of Reference
Selama berlangsungnya eksekusi suatu program, referensi memori cenderung untuk mengelompok (cluster)
Contoh: loops
Memori Semiconductor
RAM
Penamaan yang salah karena semua memori semiconductor adalah random access (termasuk ROM)
Read/Write
Volatile
Penyimpan sementara
Static atau dynamic
Dynamic RAM
Bit tersimpan berupa muatan dalam capacitor
Muatan dapat bocor
Perlu di-refresh
Konstruksi sederhana
Ukuran per bit nya kecil
Murah
Perlu refresh-circuits
Lambat
Main memory
Static RAM
Bit disimpan sebagai switches on/off
Tidk ada kebocoran
Tdk perlu refreshing
Konstruksi lebih complex
Ukuran per bit lebih besar
Lebih mahal
Tidak memerlukan refresh-circuits
Lebih cepat
Cache
Read Only Memory (ROM)
Menyimpan secara permanen
Untuk
Microprogramming
Library subroutines
Systems programs (BIOS)
Function tables
Jenis ROM
Ditulisi pada saat dibuat
Sangat mahal
Programmable (once)
PROM
Diperlukan peralatan khusus untuk memprogram
Read “mostly”
Erasable Programmable (EPROM)
Dihapus dg sinar UV
Electrically Erasable (EEPROM)
Perlu waktu lebih lama untuk menulisi
Flash memory
Menghapus seleuruh memori secara electris
Organisasi
16Mbit chip dapat disusun dari 1M x 16 bit word
1 bit/chip memiliki 16 lots dengan bit ke 1 dari setiap word berada pada chip 1
16Mbit chip dapat disusun dari array: 2048 x 2048 x 4bit
Mengurangi jumlah addres pins
Multiplex row address dg column address
11 pins untuk address (211=2048)
Menambah 1 pin kapasitas menjadi 4x
Refreshing
Rangkaian Refresh diamsukkan dalam chip
Disable chip
Pencacahan melalui baris
Read & Write back
Perlu waktu
Menurunkan kinerja
Koreksi kesalahan
Rusak berat
Cacat/rusak Permanent
Rusak ringan
Random, non-destructive
Rusak non permanent
Dideteksi menggunakan Hamming code
Operasi pada Cache
CPU meminta isi data dari lokasi memori tertentu
Periksa data tersebut di cache
Jika ada ambil dari cache (cepat)
Jika tidak ada, baca 1 block data dari main memory ke cache
Ambil dari cache ke CPU
Cache bersisi tags untuk identitas block dari main memory yang berada di cache
Desain Cache
Ukuran (size)
Fungsi Mapping
Algoritma penggantian (replacement algrthm)
Cara penulisan (write policy)
Ukuran Block
Jumlah Cache
Size
Cost
Semakin besar semakin mahal
Speed
Semakin besar semakin cepat
Check data di cache perlu waktu
Fungsi Mapping
Ukuran Cache 64kByte
Ukuran block 4 bytes
diperlukan 16k (214) alamat per alamat 4 bytes
Jumlah jalur alamat cache 14
Main memory 16MBytes
Jalur alamat perlu 24 bit
(224=16M)
Direct Mapping
Setiap block main memory dipetakan hanya ke satu jalur cache
Jika suatu block ada di cache, maka tempatnya sudah tertentu
Address terbagi dalam 2 bagian
LS-w-bit menunjukkan word tertentu
MS-s-bit menentukan 1 blok memori
MSB terbagi menjadi field jalur cache r dan tag sebesar s-r (most significant)
Table Cache Line pada Direct Mapping
Cache line blocks main memori
0 0, m, 2m, 3m…2s-m
1 1,m+1, 2m+1…2s-m+1
m-1 m-1, 2m-1,3m-1…2s-1
Keuntungan & Kerugian Direct Mapping
Sederhana
Murah
Suatu blok memiliki lokasi yang tetap
Jika program mengakses 2 block yang di map ke line yang sama secara berulang-ulang, maka cache-miss sanagat tinggi
Associative Mapping
Blok main memori dpt di simpan ke cache line mana saja
Alamat Memori di interpresi sbg tag dan word
Tag menunjukan identitas block memori
Setiap baris tag dicari kecocokannya
Pencarian data di Cache menjadi lama
Set Associative Mapping
Cache dibagi dalam sejumlah sets
Setiap set berisi sejumlah line
Suatu blok di maps ke line mana saja dalam set
misalkan Block B dapat berada pada line mana saja dari set i
Contoh: per set ada 2 line
2 way associative mapping
Suatu block dpt berada pada satu dari 2 lines dan hanya dalam 1 set
Replacement Algorithms (1)
Direct mapping
Tidak ada pilihan
Setiap block hanya di map ke 1 line
Ganti line tersebut
Langganan:
Postingan (Atom)