Tugas Kuliah


LAPORAN PRAKTIKUM I
SISTEM OPERASI
MODEL PEMROGRAMAN I



















Disusun oleh:
HUDDA AFFANDI
NIM : 12615009
JURUSAN TEKNOLOGI INFORMASI
POLITEKNIK NEGERI SAMARINDA
2012






A.      Tujuan

Pada akhir praktikum ini, peserta dapat:

1.  Memahami komponen arsitektur komputer tingkat bawah.
2.  Menggunakan simulator untuk membuat dan mengeksekusi instruksi dasar CPU.
3.  Membuat instruksi untuk memindahkan data ke register, membandingkan isi register,
memasukkan data ke stack, mengambil data dari stack, melompat ke lokasi alamat, menambahkan  nilai dalam register.
4.  Menjelaskan fungsi-fungsi dari register khusus CPU antara lain register PC, SR, dan SP.

B.      Dasar Teori

Model pemrograman arsitektur komputer mendefinisikan komponen-komponen arsitektur pada tingkat bawah (low level architectural components) yang mencakup:

-  Set instruksi prosesor
   Set Instruksi didefinisikan sebagai suatu aspek dalam arsitektur komputer yang dapat dilihat oleh para pemrogram. Secara, ISA ini mencakup jenis data yang didukung, jenis instruksi yang dipakai, jenis register, mode pengalamatan, arsitektur memori, penanganan interupsi, eksepsi, dan operasi I/O eksternalnya (jika ada).
ISA merupakan sebuah spesifikasi dari kumpulan semua kode-kode biner (opcode) yang diimplementasikan dalam bentuk aslinya (native form) dalam sebuah desain prosesor tertentu. Kumpulan opcode tersebut, umumnya disebut sebagai bahasa mesin (machine language) untuk ISA yang bersangkutan. ISA yang populer digunakan adalah set instruksi untuk chip Intel x86, IA-64, IBM PowerPC, Motorola 68000, Sun SPARC, DEC Alpha, dan lain-lain

A. Elemen Instruksi Mesin
- Untuk dapat dieksekusi CPU, suatu instruksi harus berisi elemen informasi yang
  diperlukan CPU secara lengkap dan jelas.
- Elemen – elemennya:
  1.  Operation Code (Opcode)
    menspesifikasikan operasi yang akan dilakukan. Kode operasi berbentuk kode biner.
  2. Source Operand Reference
    operasi dapat berasal dari lebih satu sumber. Operand adalah input instruksi.
  3. Result Operand Reference
    Merupakan hasil atau keluaran operasi.
  4. Next Instruction Reference
    elemen ini menginformasikan CPU posisi instruksi berikutnya yang harus diambil dan dieksekus
    i.


B. Operasi-Operasi Set Instruksi
a.      Operasi set instruksi untuk transfer data :
• MOVE : memindahkan word atau blok dari sumber ke tujuan
• STORE : memindahkan word dari prosesor ke memori.
• LOAD : memindahkan word dari memori ke prosesor.
• EXCHANGE : menukar isi sumber ke tujuan.
• CLEAR / RESET : memindahkan word 0 ke tujuan.
• SET : memindahkan word 1 ke tujuan.
• PUSH : sumber ke bagian memindahkan word dari paling atas stack.
• POP : memindahkan word dari bgian paling atas sumber
b.      Operasi set instruksi untuk arithmetic :
• ADD : penjumlahan
• SUBTRACT : pengurangan
• MULTIPLY : perkalian
• DIVIDE : pembagian
• ABSOLUTE
• NEGATIVE
• DECREMENT
• INCREMENT
Urutan 5 sampai 8 merupakan instruksi operand tunggal.
c.       Operasi set instruksi untuk operasi logical :
• AND, OR, NOT, EXOR
• COMPARE : melakukan perbandingan logika.
• 3TEST : menguji kondisi tertentu.
• SHIFT : operand menggeser ke kiri atau kanan menyebabkan konstanta pada
   ujung bit.
• ROTATE : operand menggeser ke kiri atau ke kanan dengan ujung yang terjalin
.

-  Register
       Register prosesor, dalam arsitektur komputer, adalah sejumlah kecil memori komputer yang bekerja dengan kecepatan sangat tinggi yang digunakan untuk melakukan eksekusi terhadap program-program komputer dengan menyediakan akses yang cepat terhadap nilai-nilai yang umum digunakan. Umumnya nilai-nilai yang umum digunakan adalah nilai yang sedang dieksekusi dalam waktu tertentu. Register prosesor berdiri pada tingkat tertinggi dalam hierarki memori: ini berarti bahwa kecepatannya adalah yang paling cepat; kapasitasnya adalah paling kecil; dan harga tiap bitnya adalah paling tinggi. Register juga digunakan sebagai cara yang paling cepat dalam sistem komputer untuk melakukan manipulasi data. Register umumnya diukur dengan satuan bit yang dapat ditampung olehnya, seperti "register 8-bit", "register 16-bit", "register 32-bit", atau "register 64-bit" dan lain-lain.
Istilah register saat ini dapat merujuk kepada kumpulan register yang dapat diindeks secara langsung untuk melakukan input/output terhadap sebuah instruksi yang didefinisikan oleh set instruksi. untuk istilah ini, digunakanlah kata "Register Arsitektur". Sebagai contoh set instruksi Intel x86 mendefinisikan sekumpulan delapan buah register dengan ukuran 32-bit, tapi CPU yang mengimplementasikan set instruksi x86 dapat mengandung lebih dari delapan register 32-bit.

Jenis register

Register terbagi menjadi beberapa kelas:
·       Register data, yang digunakan untuk menyimpan angka-angka dalam bilangan bulat (integer).
·       Register alamat, yang digunakan untuk menyimpan alamat-alamat memori dan juga untuk         mengakses memori.
·       Register general purpose, yang dapat digunakan untuk menyimpan angka dan alamat secara     sekaligus.
·       Register floating-point, yang digunakan untuk menyimpan angka-angka bilangan titik   mengambang (floating-point).
·       Register konstanta (constant register), yang digunakan untuk menyimpan angka-angka tetap    yang hanya dapat dibaca (bersifat read-only), semacam phi, null, true, false dan lainnya.
·       Register vektor, yang digunakan untuk menyimpan hasil pemrosesan vektor yang dilakukan oleh             prosesor SIMD.
·       Register special purpose yang dapat digunakan untuk menyimpan data internal prosesor,           seperti halnya instruction pointer, stack pointer, dan status register.
·       Register yang spesifik terhadap model mesin (machine-specific register), dalam beberapa arsitektur tertentu, digunakan untuk menyimpan data atau pengaturan yang berkaitan dengan prosesor itu sendiri. Karena arti dari setiap register langsung dimasukkan ke dalam desain prosesor tertentu saja, mungkin register jenis ini tidak menjadi standar antara generasi prosesor.

Ukuran register

Tabel berikit berisi ukuran register dan padanan prosesornya
Register
Prosesor
4-bit
8-bit
16-bit
32-bit
64-bit





-  Jenis-jenis pengamatan instruksi dan data
-  Interrupts dan exceptions
   Interupts
       Interupsi (interrupt) adalah peristiwa internal atau eksternal asinkron dalam alur program utama pada saat terjadi sesuatu yang memicu (trigger) untuk mendapatkan perhatian dari mikrokontroler.

Pada saat terjadi interupsi, untuk sementara mikrokontroler akan menjeda urutan perintah yang sedang dieksekusi, ia akan melaksanakan dulu perintah yang ada pada rutin interupsi (ISR - interrupt service routine), kemudian bila telah selesai, maka mikrokontroler akan melanjutkan kembali eksekusi perintah yang tadi sempat tertunda.
Biasanya, saat sebuah mikrokontroler berkomunikasi dengan dunia luar, ia harus menunggu peristiwa eksternal  terjadi sebelum mengambil suatu tindakan. Katakanlah misalnya, kita memiliki sebuah tombol dan LED yang terhubung ke mikrokontroler dan tugas dia adalah untuk menyalakan LED ketika kita menekan tombol. Apa yang mikro akan lakukan? Mikrokontroler akan terus memeriksa apakah tombol sudah ditekan atau belum dan jika sudah, ia akan mengambil tindakan. Nah, ini berarti bahwa mikro akan tetap dalam keadaan sibuk-tunggu, padahal mungkin ia juga memiliki tugas lain yang seharusnya bisa ia dilakukan.



Dengan menggunakan teknik polling,  maka ketika tombol ditekan,  ia akan menghasilkan sinyal hardware, sebuah interupsi eksternal untuk mikrokontroler dan akan ditanggapi dengan cepat bahkan mikro akan meninggalkan apa yang dilakukannya untuk masuk ke ISR dan melaksanakan instruksi didalamnya.

     Exceptions
       Sebuah exception adalah sebuah error yang bersifat logical ataupun berasal dari sistem yang terjadi pada waktu eksekusi script. Sebuah exception dapat di aktifkan oleh sistem ataupun oleh program itu sendiri. Exception handling adalah fitur baru yang terdapat pada PHP 5. Pada php digunakan try…catch untuk menghandle sebuah exception. Handling Exception adalah cara yang “elegan” dalam menangani kesalahan/error yang terjadi di sebuah program. Karena pada kenyataan tidak ada sebuah program yang bebas dari kesalahan. Oleh karena itu kita butuh cara yang ELEGAN untuk menangani kesalahan.

Pada model pemrograman ini terdapat interaksi antar komponen diatas. Ini merupakan model pemrograman tingkat rendah (low-level) yang memungkinkan suatu komputasi terprogram.











C.      DATA HASIL PRAKTIKUM

A.      Transfer data
pertama adalah instruksi memindahkan angka 5 ke R00, dan eksekusilah. Setelah itu memindahkan angka 8 ke R01.

B.      Aritmatika
 pada instruksi yang kedua yaitu ADD R00 dan R01 hasil penjumlahannnya terjadi di register
set di R01 bernilai 13.


C.      Stack pointer
 instruksi berikutnya adalah membuat instruksi yang menaruh hasil diatas pada program stack selanjutnya adalah  instruksi untuk menaruh (push) angka -2 pada stack teratas dan yang terjadi adalah nilai pada register SP bertambah 8114 sebelumnya 8112.

D.      Pembanding
 instruksi untuk membandingkan nilai register R00 dan R01 dan mengeksekusi instruksi tersebut pada bit status tidak terjadi apa - apa.



E.       Program Counter
 selanjutnya adalah instruksi untuk melakukan unconditionally jump ke instruksi yang pertama.


F.       Alamat fisik dan alamat logika
Mengamati nilai pada kolom Padd and Ladd, dan mengamati nilai pada Ladd R01 - R02.



G.     Stack Pointer
Gambar di atas adalah instruksi untuk mengambil (pop) nilai teratas dari program stack ke register R02 dan R03 dan amati nilai pada SP.

H.     Status register
 instruksi pembanding (compare) yang membandingkan nilai dalam register R04 dan R05, dan menyisipkan secara manual dua nilai yang sama pada register R04 dan R05

instruksi pembanding (compare) dan menyisipkan secara manual dua nilai pada register
 R04 < R05.


instruksi pembanding (compare) dan menyisipkan secara manual dua nilai pada register
 R04 > R05.



I.        Jump if
Gambar di atas adalah instruksi yang akan lompat langsung ke instruksi pertama dengan nilai yang sama
Pada register  R04 = 8 dan R05 = 8.






Tidak ada komentar:

Posting Komentar