Showing posts with label AOK. Show all posts
Showing posts with label AOK. Show all posts

Tuesday, January 12, 2016

Friday, January 08, 2016

Arsitektur dan Organisasi Komputer - Instruction Sets: Addressing Modes and Formats

Addressing Modes:
- Immediate
- Direct
- Indirect
- Register
- Register Indirect
- Displacement ( Indexed )
- Stack

1) Immediate Addressing
-> operand merupakan bagian dari instruksi
-> contoh: ADD 5 -> tambah 5 ke dalam isi akumulator
-> no memory reference to fetch data
-> fast
-> limited range







2) Direct Addressing
-> address field contains address of operand
-> EA (effective address) = address field (A)
-> cth: ADD A -> tambah isi dari A dgn akumulator
-> Single memory reference to access data













3) Indirect Addressing
-> address field mengandung alamat dari operand (pointer)
-> EA = (A)
-> contoh: ADD (A) -> lihat isi dari A, mencari alamat isi dari A utk mendapatkan operand
-> may be nested, cascaded, multilevel. cth: EA = (((A)))












Contoh Soal ! !
Tuliskan ADD 400 secara:
- Immediate
- Direct
- Indirect

4) Register Addressing -> paling cepet, krn udh ada di CPU
-> EA = R











5) Register Indirect Addressing
-> EA = (R)
-> operand is in memory cell pointed to by contents of register R











6) Displacement Addressing
-> EA = A + (R)











7) Relative Addressing
-> EA = A + (PC) *PC = Program Counter
-> cth: get operand from A cells from current location pointed to by PC

8) Base-Register Addressing
(gw gagitu ngerti, jd modal copas aja ya)
-> A holds displacement
-> R holds pointer to base address
-> R may be implicit or explicit
-> cth: segment registers in 80x86

9) Indexed addressing
-> A = Base
-> R = displacement
-> EA = A + R
-> Good for accessing arrays
   EA = A + R
   R++

10) Combinations
-> Postindex
   EA = (A) + (R)

-> Preindex
   EA = (A + (R))

11) Stack Addressing
-> operand is (implicitly) on top of stack

**Stack pointer: register yang menyimpan alamat paling atas dari stack
^^^keluar di kuis pak Tatang

JAWABAN LATIHAN SOAL
Immediate: A = 400
Direct: A = 420
Indirect: A = 470

Arsitektur dan Organisasi Komputer - Instruction Sets: Characteristics and Functions

Instruction Sets: kumpulan instruksi yang dimengerti CPU

Elemen dari Instruksi:
- Operation Code (Op Code): do this
- Source Operand reference: to this
- Result Operand reference: put the answer here
- Next Instruction reference: when you have done that, do this...

Instruction Representation:
cth: ADD, SUB, LOAD

Simple Instruction Format:

Instruction Types:
- Data Processing
- Data Storage (main memory)
- Data Movement (I/O)
- Program flow control

Untuk mengambil operand, alamat dapat berjumlah 0, 1, 2, atau 3 alamat
3 Alamat
A = B + C

2 Alamat
A = A + B

1 Alamat
Accumulator, cth A++

0 Alamat
Menggunakan stack
cth:
PUSH A
PUSH B
ADD
POP C

sama saja seperti: C = A + B

Types of Operand:
- Addresses
- Numbers (integer/ floating point)
- Characters (ASCII dll)
- Logical Data (bits/ flags)

More addresses
-> More complex (powerful?) instructions
-> More registers 
     -> Inter-register operations are quicker
-> Fewer instructions per program

Fewer addresses
-> Less complex (powerful?) instructions
-> More instructions per program
-> Faster fetch/execution of instructions


Types of Operation:
- Data transfer
   Specify -> source, destination, amount of data
- Arithmetic
   Add, subtract, multiply, divide
   May include: increment (a++), decrement (a--), negate (-a)
- Logical
   AND, OR, NOT
- Conversion
   e.g binary to decimal
- I/O
   May be specific instructions
   May be done using data movement instructions (memory mapped)
   May be done by separate controller (DMA)
- System Control
   for OS use, CPU must be in specific state
- Transfer of Control
   Branch, dibagi 2:
   -> Branch Conditional, cth branch to x if result is zero
   -> Branch Unconditional, cth call 1000
   -> cth branch:

   Skip
   -> cth: increment and skip if zero
   -> bersyarat
   Subroutine Call
   -> tanpa syarat
   -> cth: interrupt call

Uses of Stack
Stack berguna utk menyimpan isi register kalau ada program yang loncat (bercabang) sehingga dia tau harus kembali ke mana
Stack hanya menyimpan operand yang di push dan alamat untuk kembali
Stack terdapat di RAM (memori bisa diambil secara acak)
Namun, stack tdk dapat diambil secara acak melainkan dengan LIFO
Contoh:



Arsitektur dan Organisasi Komputer - Computer Arithmetic

ALU -> melakukan kalkulasi dalam komputer.
         -> Handles integers, may handle floating point (real) numbers

Integer Representation
- 0 and 1 merepresentasikan semuanya.
- Contoh: 41 = 00101001
- No minus sign
- Sign Magnitude (pd leftmost bit, 0 utk +, 1 utk - )
- Two's Complement

TWO'S COMPLEMENT
-> negating is fairly easy
cth:
3 = 00000011
boolean complement gives 11111100 (1 jd 0, 0 jd 1)
add 1 to LSB (Least Significant Digit -> digit plg blkg) gives 11111101 -> -3

-> range of numbers:
8 bit two's complement: 2^7 -1 to -2^7
16 bit two's complement: 2^15 -1 to -2^15

-> addition and subtraction
addition: normal binary addition
subtraction: e.g. a - b = a + (-b)

-> multiplication
a) Unsigned Binary Multiplication


















Execution Example:
Keterangan:
C = Carry
A = tempat utk menampung perhitungan
Q = pengali (multiplier)
M = yang dikali (multiplicand)

Penjelasan:
Dari algoritma (flowchart) diatas, kita aplikasikan buat melakukan perkalian bilangan positif. Awalnya, nilai carry (C) dan A di set 0. Kita akan mengalikan 13 dengan 11 (1101 dan 1011). Count bernilai n, yaitu jumlah digit Q.
Next, kita lihat apakah Q0 nya bernilai 1? Q0 adalah LSD dari Q. Karena awalnya Q0 bernilai 1, kita menambahkan (add) A+M dan shift 1 digit ke kanan kanan. Jangan lupa count-1, nilai count sekarang adalah 3. nilai count != 0, maka diulang kembali.
Selanjutnya, nilai Q0 berubah menjadi 0, sehingga kita lakukan shift kembali dan count = 3-1 = 2. Nilai count != 0, maka perulangan kembali dilakukan.
Lalu, setelah di shift nilai Q0 menjadi 1, sehingga A+M menjadi 1101, dan shift kembali dilakukan. Count sekarang bernilai 1, dan belum sama dengan 0, sehingga perulangan lagi.
Akhirnya, kita lihat bahwa nilai Q0 adalah 1, sehingga A+M, Shift dan Count sekarang == 0, sehingga proses berakhir.

Hasil akhir dari perkalian adalah A, Q sehingga = 10001111 atau 143.

b) Signed Binary Multiplication -> menggunakan Booth's Algorithm





























Contoh:
Penjelasan:
Rata" sama kyk unsigned binary sih, tapi bedanya yang ini ada Q-1 nya. Ikutin flowchart aja ya wkwk :p

-> division:
a) Unsigned Binary Division
    - Cara pembagian biasa:
    - Umumnya dibagi menjadi 2: restoring dan non-restoring
1) Restoring
cth: 8/3 -> 1000 / 11

2) Non-restoring
cth: 8/3 -> 1000 / 11

Semoga dgn membaca sendiri udah bisa ngerti ya :) kalo emang masih blm ngerti feel free to ask :)

REAL NUMBERS
-> numbers with fraction
-> floating point:

1) Single precision/format

2) Double Precision Format

Cara menghitung biased exponent
dan seterusnya.


















Cara menghitung floating point:
contoh:
a. FP dari 102?
1) Cari biner dari 102 -> 1100110

2) Ubah bentuknya menjadi 1,...
1100110 -> 1,100110 x 2^6 (karena komanya geser 6 biner)

3) Cari biased exponentnya
Bias: 127
geser 6 biner -> E = 6
Bias + E = 133
Biner dari 133 = 10000101

4) Masukkan ke bentuk Floating point
 0    10000101   10011000000000
(+)    (Biased)     (Dapet dari angka dibelakang koma)

b. konversi hexa ke desimal dalam bentuk floating point (gw gapunya term yg lebih bagus dr ini lol)
cth: 8 3 6 0 0 0 0 0
1) ubah ke bentuk biner
1000 0011 0110 0000 0000 0000 0000 0000

2) ubah ke bentuk floating point
   1      | 000 0011 0 |  110 0000 0000 0000 0000 0000
(sign)    (biased)        (fractions)

3) ubah ke desimal, caranya:
-> sign = 1 berarti minus (-)
-> biased = 6, utk mjd 127 berarti kurang 121 -> 2^(-121)
-> fractions = pake cara angka dibelakang koma, sehingga 0,5 + 0,25 = 0,75
-> lalu, gabungin semuanya~
    - 1,75 x 2^(-121)
(jangan lupa didpn koma tambahin 1)
Hope it helps!

Thursday, January 07, 2016

Arsitektur dan Organisasi Komputer - Operating System

Software:
-> System: utk membantu, cth OS
-> Application: program yg dibuat utk menyelesaikan masalah

OS: kumpulan program utk membantu pemakai utk menggunakan komputer dengan lbh mudah.

Fungsi OS:
- Convenience -> membantu
  cth: kalo mau bikin chart tinggal ambil

- Security (keamanan)
   -> Aman thd ancaman (thread), cth: org yg ga punya hak gabisa buka
        -> Data Availability, data integrity, lost data
   -> Aman thd serangan

- Efficiency: utk mengatur sumber daya (CPU, Memory, I/O) di komputer utk dipakai se efisien mungkin.

Tipe" OS (Sesuai Algo):
1. Interactive
2. Batch
3. Single Program (uni-programming)
4. Multi Programming (multi-tasking)

Early systems -> No OS, program interact directly with hardware

Simple Batch Systems -> resident monitor program

















Multi-programming Systems -> I/O Devices are very slow, so when one program is waiting for I/O, another can use the CPU
-> Time sharing systems: Allow users to interact directly with the computer. Multiprogramming allows a number oof users to interact with the computer
-> Scheduling: key of multiprogramming
     -> Long Term: Determines which programs are submitted for processing. E.g. Program masih di hard disk tapi udah diatur nanti program dari HD mau diambil dan ditaro dimana
     -> Medium Term: Part of the swapping function, usually based on the need to manage multiprogramming. Trjd di memori utama
     -> Short Term: Dispatcher. Fine grained decisions of which job to execute next. Trjd di CPU

Process Control Block
- Identifier
- State
- Priority
- Program Counter
- Memory pointers
- Context data
- I/O Status
- Accounting Information

Diagram:















Key Element of OS:






















Memory Management
- Uni Program: memori terbagi menjadi 2, satu utk OS (monitor), 1 utk program yg sdg berjalan
- Multi program: "user" part is sub-divided and shared among active processes

(Sisanya baca sendiri ya, ada juga di materi OS :))

Saturday, October 17, 2015

Kisi-kisi UTS Arsitektur dan Organisasi Komputer

1. Fungsi Dasar Komputer:

  • Pengolahan data (grafik, chart)
  • Penyimpanan data (data mahasiswa, nilai)
  • Pemindahan data (mencari jurnal dari luar negeri, sekarang hanya hitungan menit)
  • Kontrol (sistem booking pesawat terbang agar jadwal tidak bertabrakan)
  • Entertainment (games, film)
2. Komponen utama komputer:
  1. CPU / prosesor
  2. Memory Utama (RAM dan ROM) -> untuk menyimpan data dan agar dapat menjalankan program, harus disimpan di RAM.
  3. Input/Output
  4. Sistem Interkoneksi (Bus)
3. BUS (Sistem interkoneksi)
   > Ada 2 macam sistem interkoneksi: Single and Multiple
   > Pengertian: saluran komunikasi antar 2 device atau lebih.
   > Macam-macam Bus:
      - Data bus
        > saluran data dan instruksi. performa ditentukan oleh panjang saluran tersebut (8/16/32/64 bit)
      - Address Bus
        > mengidentifikasi sumber dan tujuan dari sebuah data. 
        > menentukan banyaknya memori.
           contohnya jika diketahui jumlah kawat 18, berapa jumlah memori?
           jawab: jumlah memori = 2^18 = 2^10 . 2^8 =256 KB.
           kok bisa gitu caranya?
           - yang perlu diingat adalah:
             2^10 = Kilo          2^1 = 2          2^6=64
             2^20 = Mega        2^2 = 4          2^7=128
             2^30 = Giga         2^3 = 8          2^8 = 256
                                        2^4 = 16        2^9 = 512
                                        2^5 = 32        2^10 = 1024
           - sedikit latihan..
              2GB = ... Saluran?    28kawat: ... ?     
              
      - Control Bus: untuk kontrol dan timing, memberi sinyal read/write memory, interrupt, sinyal clock

4. Konsep Operasi Dasar Komputer
    Von Neumann: Stored Program Concept
    Instruksi dan data disimpan dalam memory utama. Instruksi dikerjakan di CPU. Instruksi diambil satu persatu dari memory utama ke CPU.
    Untuk mempermudah mempergunakan komputer maka diperlukan sistem software (sistem operasi).
    Tugasnya:
    - Menerima, interpretasi perintah
    - Memasukkan, mengedit, menyimpan dalam file
    - Mengatur penyimpanan, I/O, CPU.

5. CPU Performance Measurement
    (Waktu) T = (N x S) / R
    clock, bit register, cache memory, pipelining, RISC, multiprosesor, multikomputer
    
    Satuan Kecepatan Komputer:
    - MIPS (Million Instructions Per Second) -> Berapa banyak instruksi yang dapat diselesaikan dlaam waktu satu detik). Biasanya merupakan instruksi operasi aritmatik integer dan intsruksi-instruksi load/store.
    - MFLOPS (Million Floating Point Operations Per Second) -> one floating point operation combines several operations)

6. Fetch and Execute Cycle
 
    
     Contoh eksekusi program:
 
    
    keterangan:
    PC = Program Counter, isinya alamat dari memori yang akan dieksekusi. PC bisa increment sendiri
    AC = Accumulator, tempat untuk mengerjakan/eksekusi
    IR = Instruction Register, adalah instruksi yang akan dieksekusi
    
    1. PC membaca alamat yang akan dieksekusi (300), lalu memasukkan isi dari alamat ke 300 kedalam IR.
    2. IR membaca instruksi yang diberikan (1), yaitu memasukkan isi dari alamat 940 kedalam AC.
    3. PC increment, lalu memasukkan isi dari alamat selanjutnya (301) kedalam IR.
    4. IR membaca instruksi (5), yaitu menjumlahkan isi dari AC dengan isi dari alamat ke 941. Hasilnya disimpan di AC.
    5. PC increment, memasukkan isi dari alamat ke 302 kedalam IR
    6. IR membaca instruksi (2), yaitu memasukkan data didalam AC ke dalam alamat 941

7. Interrupt
    > Mekanisme dimana sebuah modul (cth: I/O) dapat mengganggu eksekusi sebuah program
    > Contoh: pembagian angka dengan nol
    > Interrupt cycle:
     
    > Stack dipakai untuk menyimpan isi register bila ada interrupt
    > Walaupun stack ada didalam RAM, tapi tidak dapat diakses secara acak, sistem LIFO (Last In First Out)
    > Macam-macam interrupt cycle:
       - Maskable Interrupt (MI): Interrupt yang masih dapat dicegah.
         Analogi: Pak Tatang lagi ngajar, gamau diganggu dari luar, maka ia kunci pintu kelas
       - Non-maskable Interrupt (NMI): interrupt yang tidak dapat dicegah
         Analogi: Pak Tatang lagi ngajar, ada kebakaran, terpaksa harus berenti

    > Multiple Interrupt:
       


    
8. Memory
    CPU = Register
    Internal = RAM, ROM, Cache
    Eksternal = Hard Disk, Tape, dll
    
    Memori Utama:
    - Non-Volatile Memory (Tidak membutuhkan tegangan)
      ROM
      PROM
      EPROM
      EEPROM
      Flash Memory

    - Volatile Memory (Butuh tegangan)
       Static RAM (SRAM)
       Dynamic RAM (DRAM)
       Synchronous DRAM
       Double Data Rate SDRAM
       SIMM = Single In Line Memory Module
       DIMM = Double In Line Memory Module

      Sedikit bacotan dari Pak Tatang:
      ROM: Dimasukkan program dari pabrik.
      Jika kebutuhan pemakai program tidak dr pabrik, harus dapat disimpan dan dibaca seperti ROM -> Lahirlah PROM (Programmable ROM)
      PROM hanya bisa diprogram sekali. Jika ada yang salah harus dibuang, diganti baru. Sehingga pd jaman dahulu (?) PROM" tidak dipakai. Sehingga dibuatlah EPROM (Erasable Programmable ROM). Isinya dapat dihapus dan diisi ulang. (Disimpan menggunakan magnetic pada jaman itu).
      Jika ingin ditambah/dikurang isinya, EPROM harus dicopot dan dimasukkan ke box berisi bohlam yang mengeluarkan sinar ultraviolet. Magnet akan hilang jika terkena sinar UV. Kerugian: bila terkena sinar matahari, data bisa hilang. Solusi: EEPROM -> dihapus menggunakan tegangan listrik berbeda, dan Flash Memory. 

      RAM: Memiliki 2 bahan, 1/2 penghantar, 1/2 penghambat. Dapat menyimpan data selama ada tegangan listrik. Bila menggunakan bahan magnetic, untuk menyimpan 0 dan 1 menggunakan magnet (1 = magnet, 0 = kosong). Bila menggunakan bahan semikonduktor, untuk menyimpan data menggunakan rangkaian. Bila stabil, ada 6 transistor dalam 1 rangkaian. Rangkaian ini biasa dikenal dgn flip-flop.
      Komputer tidak mengerti alphanumeric. Yang komputer mengerti itu hanya ada tegangan/ngga, magnetic/ngga, dll. Sehingga inputan dari keyboard harus diubah. Oleh IEEE, distandarkan karakter keyboard dalam kode ASCII.
      Untuk menyimpan 1 karakter 'A', 1 byte memori diperlukan 8 rangkaian -> 48 transistor (gua juga gatau ini dapet dari mana). 
      1 KB -> ada tempat untuk menyimpan sebanyak 1000 byte, masing-masing 8 byte
      1 MB -> ada tempat untuk menyimpan sebanyak 1 juta byte, masing-masing 8 byte
      karena jaman dahulu ukuran EPROM kecil, maka hanya dapat menyimpan 8byte/EPROM. Sehingga dibuat dynamic RAM.
      Keuntungan DRAM: dapat menyimpan data dalam jumlah besar
      Kerugian DRAM: storage capacitor seperti tangki, dapat penuh dan terbuang memory nya walaupun ada tegangan.

      Di memory, ada alamat dan isi. Bila ga ada alamat, isi tdk bs diambil. Bila sudah dicari alamatnya, ada control, mau simpan (write)/read.
      Contoh: untuk mencari 16 tempat, butuh 4 kawat (2^4).

Oke, sekarang kita masuk ke bagian yang sulit yaitu: Pencarian Memori :|
misalnya ada rangkaian 512 KB x 8. dari rangkaian ini mau dibuat komputer 2MB x 32. Alamatnya? (Hayoloh)
langkah pertama: pingsan (lho) kita cari dulu perubahan bit nya, dari 8 -> 32 = 4 (32/8). angka ini akan menjadi jumlah kolomnya

langkah kedua: 512 KB -> 2MB = ??? 2MB = 2000 KB
2000 KB / 512 KB = 3,90625. Kita buletin jadi 4. angka ini akan menjadi jumlah barisnya.

kolom dan baris itu buat apa sih?
buat gambar:


karena ada 4 baris, maka keluaran dari decoder berjumlah 4. sehingga inputan decoder berjumlah 2 (00-11)

langkah ketiga: hitung jumlah kawat dari ukuran awal
512 KB = 512 . 1000
             = 2^9 . 2^10 
             = 2^19 = 19 kawat
artinya ada 19 kombinasi

langkah keempat: tentukan kombinasi tersebut!
bagi jumlah kombinasi dgn 4
19/4 = 4 sisa 3
kombinasi:
(decoder) (sisa bagi) (hasil bagi)
     00          000             0000
     00          111             FFFF

     01          000             0000
     01          111             FFFF

     10          000             0000
     10          111             FFFF
     
     11          000             0000
     11          111             FFFF

Jadi jumlah alamat yang terbentuk:
000000 - 07FFFF
100000 - 17FFFF
200000 - 27FFFF
300000 - 37FFFF

SELESAI!

Latihan Soal!!
128KB x 8bit -> 1MB x 32 bit, alamatnya?


9. Memory Hierarchy
10. Cache Memory 
      > Pengertian: Memori kecil dan cepat yang ditempatkan antara CPU dan memori utama.
      > Memakai static RAM karena ukurannya lebih kecil dan cepat
      > Cara kerja:
         1. CPU meminta data dari memori tertentu
         2. CPU mengecek data tersebut di cache
         3. Jika ada didalam cache, akan diambil langsung oleh CPU
         4. Jika tidak ada, CPU akan mencari di main memory kemudian disimpan dalam cache, lalu dari cache dikirimkan ke CPU
      > 3 Cara pemetaan data dalam cache memory:
1. Direct Mapping: Artinya setiap blok pada main memory disimpan sama persis posisinya pada cache memory, baik nomor maupun kelipatannya.
               Contoh: block 0 pada main memory disimpan pada block 0 di cache, jika ukuran cache 128 maka ada 0-127 block. Block ke 128 akan disimpan kembali di block 0 (kelipatannya). Kerugian: Jika kita membutuhkan block 0 dan block 128 secara bergantian, akan memperlambat proses kerja karena di overwrite terus menerus. Keuntungan: pencarian data lebih cepat 
               Direct Mapping Address Structure:
> Line/Slot = 14 =  00 | 0000 | 0000 | 0000 - 11 | 1111 | 1111 | 1111 atau 0000 - 3FFF
> Jumlah block dalam memory = tag+line =22
> Ukuran memory per block = 2^(line+word) = 2^16 = 2^6 x 2^10 = 64 KB.
> Jumlah memori keseluruhan = 2^(tag+line+word) 
> Block size = 2^(word) = 2^2 = 4 byte block size

2. Associative Map: setiap block dalam main memory dapat disimpan dibagian mana saja yang kosong secara acak didalam cache memory.
Keuntungan: program yang kelipatannya sama tidak harus di overwrite setiap waktu juka dipakai bersamaan
Kerugian: lebih lambat, karena tidak tahu pasti alamat block yang dibutuhkan disimpan dibagian mana dalam cache.

3. Set-associative Map: setiap kelipatan disimpan pada 1 set yang sama, 1 set dapat terdiri dari 2^n bagian. contoh: 
      Cache Design:
      > Size = ukuran cache
      > Mapping Function: Direct map, Associative map, Set-Associative map
      > Replacement Algorithm:  LIFO (Last In First Out), LRU (Least Recently Used), LFU (Least Frequently Used), FIFO (First In First Out)
      > Write Policy => MESI (Modified Exclusive Share Invalid)
          MESI berguna untuk menjamin data yang ada dalam cache dan memory utama bernilai sama
          MESI dibagi 2:
          Write Back = Data didalam cache akan disesuaikan dengan data di main memory jika data di cache sudah tidak dipakai dalam operasi dan dikembalikan.
          Write Through = Ketika data dalam cache berubah, data dalam memori juga langsung berubah
      > Block Size
      > Number of caches 

11. Parity -> Memori yang disimpan harus sama ketika dikeluarkan kepada user. Cara termudah untuk mengecek adalah dengan menggunakan parity. 
Contoh soal Parity:
Data dari memory:   01101110, check bit: 0101
D1=0, D2=1, D3=1, D4=1, D5=0, D6=1, D7=1, D8=0
C1 = D1 XOR D2 XOR D4 XOR D5 XOR D7 =1
C2 = D1 XOR D3 XOR D4 XOR D6 XOR D7 =0
C3 = D2 XOR D3 XOR D4 XOR D8 = 1
C4 = D5 XOR D6 XOR D7 XOR D8= 0
Baca dari C4 -> 0101
0101 XOR check bit
= 0000 -> tidak ada kesalahan

12. External Memory
      RAID (Redundant Array of Independent Disks) = kumpulan beberapa hard disk yang dilihat oleh CPU menjadi satu.
Level RAID
Level 0 = menggunakan data stripping tanpa redudansi
Level 1 = disk mirroring, menduplikasi semua data untuk meningkatkan kinerja
Level 2 = Mendeteksi adanya error dengan menggunakan bit paritas.
Level 3 = hampir sama dengan level 2, namun hanya menggunakan sebuah redundant disk
Level 4 = Mengorganisasi data dengan parity block interleaved, yaitu menyimpan paritas blok dari masing-masing blok lainnya dalam sebuah disk baru.
Level 5 = mengorganisasi data dengan parity block interleaved tersebar. parity ada di sebuak block dalam setiap disk
Level 6 = sama seperti level 5, namun menyimpan data redundan dari parity untuk mengantisipasi kegagalan beberapa disk sekaligus

13. Input/Output
      Cara memberi alamat:
      1) Memory-mapped I/O -> I/O dan memori berada dalam 1 alamat yang sama
      2) I/O Mapped I/O atau Isolated I/O -> alamat I/O terpisah dari memori

      I/O Techniques
      1. Programmed I/O = seluruh input/output berada dalam program. CPU akan menunggu dan cek setiap program, apakah ada I/O. Kerugian: waktu terbuang untuk mengecek
      2. Interrupt Driven = I/O dapat menginterupsi jika dibutuhkan. Mengatasi kerugian programmed I/O. Kerugian: bila ada lebih dari 1 interupsi, tidak tau mana yang harus dikerjakan duluan.
          SOLUSI = diberikan prioritas pada setiap interupsi
Interrupt yang berdiri sendiri:

Interrupt yang datang bersamaan: dapat menggunakan daisy chain


Keterangan: INTR = interrupt, INTA = interrupt acknowledged 

Kira-kira itu yang harus dipelajari, terutama perhitungannya.
Kalo ada yang salah/kurang, tolong komen dibawah buat menambahkan :)