IKI10230 Pengantar Organisasi Komputer Solusi UTS 23 April 2003 Bobby Nazief (nazief@cs.ui.ac.id) Qonita Shahab (niet@cs.ui.ac.id) bahan kuliah: http://www.cs.ui.ac.id/kuliah/iki10230/
1 Gambarkan 4 tingkat abstraksi organisasi komputer mulai dari perangkat lunak aplikasi sebagai tingkat tertinggi! Perangkat lunak Aplikasi Perangkat lunak Sistem Set Instruksi Perangkat Keras [2] Apa manfaat dari pemilahan abstraksi organisasi komputer dalam beberapa tingkat seperti yang digambarkan di atas? Membantu pengguna memahami “komputer” sesuai keperluannya (end-user melihat komputer dari aplikasi yang dipakainya; pengembang aplikasi melihat komputer dari perangkat lunak sistem yang digunakan untuk mengembangkan aplikasinya) [2] Apakah seorang pengguna aplikasi MS Word harus mengetahui perbedaan sistem operasi Windows dan MacOS ... Tidak perlu. Dia cukup mengetahui fungsi-fungsi yang disediakan oleh MS Word untuk mengolah dokumennya. [2] Apakah seorang pengembang perangkat lunak aplikasi harus mengetahui perbedaan arsitektur Intel x86 dengan MIPS jika ... Tidak perlu. Dia cukup mengetahui fungsi-fungsi yang disediakan oleh sistem operasi Linux (dalam bentuk pustaka perangkat lunak) yang diperlukan oleh aplikasinya untuk mengakses sumber daya komputasi. [2]
2 Bagaimana prosesor dapat mengetahui isi lokasi memori mana yang merupakan instruksi/data? Prosesor tidak dapat membedakan lokasi memori yang berisi instruksi/data [3] Jika instruksi berada di lokasi 1 – 3, berapa isi lokasi memori 4 – 7 setelah ketiga instruksi tersebut selesai dieksekusi? 37 = 0x25 = 0010 0101 Add 4,5 ; M[4] = 10 + 15 = 25 55 = 0x37 = 0011 0111 Add 6,7 ; M[6] = 12 + 13 = 25 102 = 0x66 = 0110 0110 Sub 4,6 ; M4] = 25 – 25 = 0 M[4] = 0, M[5] = 15, M[6] = 25, M[7] = 13 [4]
3 Sebutkan jenis-jenis Modus Pengalamatan yang digunakan beserta Alamat Efektif-nya 1. Move #AVEC,R1 Immediate, tidak ada alamat efektif [2] 3. Load N,R3 Memory-direct, AE = harga N [2] 6. Load (R1)+,R4 Register-indirect Auto-incr., AE = harga R1 [2] 11. Branch>0 LOOP PC-relative, AE = PC + LOOP [2] 13. Store R0,4(R1) Index, AE = harga R1 + 4 [2]
4: Program I/O MOV #LOC,R0 1 KEYIN: In SREG,R1 2 TestBit #1,R1 2 Branch=0 KEYIN 2 In DREG,R1 2 Call ASCIITOBINARY ; Char. is passed in R1 2 Move R1,(R0)+ ; Result is passed in R1 1 Jump KEYIN 1 ASCIITOBINARY: Sub R1,#48 1 Return 1
5 Tuliskan kembali instruksi-instruksi pada baris 6, 7, 8 dengan tanpa menggunakan modus pengalamat- an INDEKS 6. LOOP Add #4,R0 Add (R0),R1 [4] 7. Add #4,R0 Add (R0),R2 [3] 8. Add #4,R0 Add (R0),R3 [3]
Jelaskan 3 perbedaan utama kedua arsitektur (MIPS vs. Intel x86) MIPS 3 address, Intel x86 2 address: MIPS: ADD R4,R4,R5 Intel: ADD EAX,EDX [3] MIPS instruksi yang mengakses memori: Load & Store, Intel x86 instruksi lainnya pun dapat mengakses memori: MIPS: LW R5,0(R1) SW low(DOTPROD)(R6),R4 Intel: IMUL EDX,[EBX+EDI*4] [3] MIPS ukuran instruksi konstan (32 bit), Intel x86 ukuran instruksi bervariasi; sebagai akibat program MIPS (15 baris) > program Intel x86 (11 baris) [4]
7 Hitung besaran rmaks yang menggambarkan kondisi dimana cara interupsi akan menghasilkan kinerja yang sama dengan cara Polling (waktu total yang dibutuhkan untuk polling sama dengan waktu yang dihabiskan untuk melayani interupsi). r*100*25*(1000+250) = 100*25*1000 r*(1250) = 1000 r = 1000/1250 = 4/5 = 0,8 [7] Jika masing-masing terminal memiliki 1 jalur interupsi langsung ke komputer (secara keseluruhan ada 25 jalur interupsi), hitung besaran rmaks yang baru! r*100*25*(250) = 100*25*1000 r*(250) = 1000 r = 1000/250 = 4 r > 1: kinerja cara Interupsi selalu lebih baik dibanding cara Polling [8]
8 Dengan merujuk pada diagram (a) dan (b), tunjukkan perbedaan utama antara bus sinkron dan bus asinkron! bus sinkron menggunakan CLOCK, sedangkan bus asinkron menggunakan handshaking (REQ & ACK) untuk setiap transaksi data [3] Jelaskan mengapa bus sinkron mampu beroperasi lebih cepat dibandingkan bus asinkron! karena pertukaran data dilakukan tanpa saling tunggu antara master dan slave, cukup dengan mengikuti irama CLOCK [1] Jelaskan mengapa bus asinkron mempunyai jangkauan lebih luas dibandingkan bus sinkron! karena pertukaran data dilakukan dengan mengandalkan pada handshaking antara master dan slave yang tidak akan terpengaruh oleh adanya CLOCK’S SKEW walaupun jarak di antara keduanya cukup besar [1]
9 main: ldi R16,low(RAMEND) out SPL,R16 ldi R16,high(RAMEND) out SPH,R16 PUSH TEMP (1) GETNUM DATA_A,TEMP MOV HASIL,TEMP (2) GETNUM DATA_B,TEMP (3) ADD HASIL,TEMP (4) LSL HASIL (5) GETNUM DATA_C,TEMP (6) ADD HASIL,TEMP (7) LSR HASIL (8) POP TEMP (9) ADD HASIL,TEMP (10) rjmp finish
Tulis ulang program di atas dengan menggunakan perintah BREQ 10 Tulis ulang program di atas dengan menggunakan perintah BREQ loop: DEC counter CPI counter,0 BREQ test RJMP loop test: