Thursday, 20 December 2012

Logical Operation


LOGICAL OPERATION

-Pengenalan kepada Logical Operation-

Logical connective, juga dipanggil sebagai logical operator, merupakan satu symbol atau perkataan yang digunakan untuk menghubungkan dua atau lebih ayat yang menpunyai penggunaan tatabahasa yang betul.

Biasanya, logical connective merupakan connective yang menggabungkan dua ayat yang dapat dijadikan sebagai operan fungsi.

Logical connectives yang menpunyai pengkuantitinya terdapat dua jenis utama yang digunakan dalam system formal, contohnya termasuklah propositional logic dan predicate logic.

-Senarai Common Logical Connective-

Commonly used logical connectives include:
·         Negation (not):                              ¬ , Np, ~
·         Conjunction (and):                          , Kpq, & , ∙
·         Disconjunction (or):                       , Apq
·         Material inspiration (if…. Then)     , Cpq  , 
·         Biconditional (if and only if):          , Epq  , 
-Logic Gate-
Pendekatan truth-functional terhadap logical operators telah dilaksanakan sebagai logic gate dalam digital litar. Hampir semua digital litar (DRAM dikecualikan) dibangunkan daripada NAND, NOR, NOT, dan transmission gate.

NAND

NOR


NOT






GOH PEI ING
B031210215

MIPS Instruction Formats

MIPS  Instruction Format 

Instruction format boleh dibahagikan kepada tiga jenis iatu :
1. R-Type (Register Type)
2. I-Type (Immediate Type)
3. J-Type (Jump Type)

R-Type
- Merupakan arahan pemproses utama yang titak memerlukan alamat,immediate value.

- Semua arahan R-jenis menggunakan opcode => 000000.
- Operasi dinyatakan oleh medan fungsi.
- Bidang yang tidak digunakan dikodkan dengan 0 bit.











I-Type
-Mengadungi [ immediate.operand,branch instructions,and load&store instruction.]
-Mempunyai 16-bit bagi bidang immediate.












J-Type

J 10000 adalah seperti dibawah

Ini adalah arahan MIPS format J-jenis.

format I-jenis  menggunakan cabang bersyarat











Disediakan oleh:
CHUAH YIN BOON
B031210335


Branch, jump n target addressing

Branch addressing
* Arahan cabang adalah dinyatakan
- Opcode, two registers, target address
* Sasaran “branch” kebanyakan berhampiran “branch”
* Formats:
* dengan adanya branch addressing kita dapat menentukan register (seperti LW dan Sw) dan                               menambah ia untuk menangani
- penggunaan Instruction Address Register (PC = program counter)
- Kebanyakan branch adalah local (principle of locality)


Jump addressing
* Jump (j and jal) targets boleh berada di mana-mana sahaja dalam segmen teks
- Kodkan alamat penuh dalam pengajaran
* J format ada 26 bits dalam address field
* Untuk mendapatkan 32 bits
-Anggapkan bahawa jump address adalah word address
-26 + 2 (least significant bits) = 28
-Dapatkan 4 bit yang paling ketara  dari computer
-4 + 26 + 2 = 32
-Hanya boleh “jump”  antara 228 = 256 MB block of addresses
* (Pseudo)Direct jump addressing
-Target address = PC31…28 : (address × 4)


Target Addressing Example
-Assume Loop at location 80000
Loop : sll       $t1,    $s3,    2
            add    $t1,    $t1,    $s6            
            lw       $t0,     0($t1)
            bne    $t0,    $s5,    Exit
            add    $s3,    $s3,    1
            j          Loop
Exit :…



DISEDIAKAN OLEH;
LIM ZERKIE
B031210127

Tuesday, 18 December 2012

Arithmetic,Register and Memory Operand

Arithmetic Operand

- Prinsip Reka Bentuk 1 : Keringkasan Menyumbang Kepada Kekerapan
   ▪ Kekerapan memudahkan pelaksanaan.
   ▪ Keringkasan menyumbang kepada prestasi yang tinggi pada kos yang rendah.

- Melakukan operasi tambahan atau penolakan.

- Semua operasi aritmetik mempunyai format :
         add a, b, c        # a gets b+c

- 3 operand ( 2 sumber dan satu destinasi )

Contoh 1 :

- C code :
    a = b + c + d + e

- Compiled MIPS code :
   add , b ,             # sum of b and c is placed in a 
   add , , d              # sum of band d is placed in a 
   add , , e              # sum of bcd and e is placed in a

Contoh :

- C code :
   a = (c ) - ( d + e ) ;

- Compiled MIPS code :
   add  t0 ,   b ,  c         # temp t0 bc
   add  t1 ,   d ,  e         # temp t1 de
   sub    ,  t0 , t1        #  a  t0 - t1

________________________________________________________________________________

Register Operand

- Prinsip Reka Bentuk 2 : Lebih Kecil, Lebih Cepat

- Arahan aritmetik menggunakan register operands

- MIPS mempunyai 32x32 bit register file.
   ▪ Digunakan untuk data yang sering dibaca
   ▪ Bernombor 0 - 31
   ▪ 32-bit data dipanggil suatu 'word'

- Penghimpunan nama :
   ▪ $t0 , $t1 , ........ , $t9  bagi nilai sementara
   ▪ $s0 , $s1, ......... , $s7 bagi pembolehubah yang telah disimpan

Contoh : 
 
- C code :
   a =  ( b + c ) - ( d + e )

- Compiled MIPS code :
     add  $t0, $s1, $s2
     add  $t1, $s3, $s4
     sub  $s0, $t0, $t1

_________________________________________________________________________________

Memory Operand

- Memori utama digunakan untuk menggabungkan data
   ▪ Array, structures, dynamic data

- Untuk mengaplikasi operasi aritmetik
  ▪  Muat turun nilai dari memory ke dalam register
  ▪  Menyimpan keputusan dari register ke dalam memory

- Memory is byte addressed
   ▪ Setiap address mengenal pasti suatu 8-bit byte

- Perkataan disusun secara sejajar dalam memory 
    Address mestilah gandaan 4

Contoh 1 : 
 
- C code :
     a = b + C [8] ;
    ( a dalam $s1, b dalam $s2, base address of C dalam $s3 )

- Compiled MIPS code :
     lw     $t0,  32 ($s3)          # load word
     add  $s1, $s2. $t0

Contoh 2 :

- C code : 
  A [12] = b + A [8] ;
  ( b dalam $s2, base address of A dalam $s3 )

- Compiled MIPS code :
      lw   $t0 , 32 ($s3)               # load word
      add $t0,  $s2, $t0
      sw   $t0, 48 ($s3)               # store word

Disediakan oleh,
KANG YI SHIN   B031210356



 

Translation and Startup


Translation and Startup



Assembler Pseudinstructions
Pseudoinstructions: figments of the assembler’s imagination

Ini adalah mudah arahan dalam bahasa himpunan yang melakukan tidak mempunyai bahasa
Mesin bersamaan langsung. Semasa pemasangan, penghimpun menterjemahkan psedudoinstruction setiap ke satu atau lebih bahasa mesin
arahan.


Translating Pseudoinstructions

Small ertinya kuantiti yang boleh diwakili menggunakan 16 bit, dan big ertinya 32 bit. Upper ( big ) is the upper 16 bits of a 32 bit quantity. Penghimpun mesti memikirkan bagaimana untuk mendapatkan the upper 16 bits of a 32-bit value. Lower  ( big ) is the lower 16 bits of the 32 bit quantity. Penghimpun mesti memikirkan lagiUpper ( big ) and lower ( big ) tidak arahan sebenar.

Producing an object module
  • Assembler ( or compiler ) menterjemahkan program kepada arahan mesin.
  • Menyediakan maklumat untuk membina satu program yang lengkap
  • Header : menerang kandungan modul objek
  • Text segment : meneerjemahkan arahan
  • Static data segment : data yang diperuntukkan bagi kehidupan program
  • Relocation info : untuk kandungan yang bergantung kepada lokasi mutlak program dimuatkan
  • Symbol table : definisi global dan Rujukan luar
  • Debug info : untuk bersekutu dengan kod sumber
Linking Object Modules
1.Produces an executable image

   -bergabung segmen
   -Menyelesaikan label (menentukan alamat mereka)
   -Rujukan Patch bergantung kepada lokasi dan luaran

2.Boleh meninggalkan kebergantungan lokasi untuk penetapan oleh loader berpindah
   -Tetapi dengan memori maya, tidak perlu untuk melakukan ini
   -Program boleh dimuatkan ke dalam lokasi mutlak dalam ruang memori maya

Loading a Program
1.Baca header untuk menentukan saiz segmen
2.Buat ruang alamat maya
3.Salin teks dan data dimulakan ke dalam ingatan atau entri set jadual halaman supaya mereka boleh   
   disalahkan dalam.
4.Sediakan hujah pada timbunan
5.Memula daftar (termasuk $ sp, $ fp, $ gp)
6.Lompat ke rutin permulaan
   -Salinan hujah untuk $ a0, ... dan panggilan utama
   -Apabila pulangan utama, melakukan syscall keluar

Arrays vs Pointers
Penunjuk boleh merujuk kepada item individu atau pelbagai barangan. Malah, array adalah hanya satu cara mewujudkan kedua-dua senarai barangan dan penunjuk untuk item pertama yang menyenaraikan dalam satu akuan.

Ini bermakna bahawa subskrip boleh digunakan dengan petunjuk, seolah-olah mereka array diadakan di alamat penunjuk. Sebagai C tidak ada memeriksa pelbagai terikat, ini adalah tidak selamat sepenuhnya.

1.Pengindeksan Array melibatkan
  -Mendarabkan indeks oleh saiz elemen


2.Penunjuk sesuai langsung kepada alamat memori
  -Boleh mengelakkan kerumitan pengindeksan

Example : 
1.Menggunakan kod keadaan untuk hasil arahan aritmetik / logik
   -Negative, zero, carry, overflow
   -Bandingkan arahan untuk menetapkan kod keadaan tanpa menjaga hasilnya

2.Setiap arahan boleh bersyarat
   -4 bit yang terdahulu perkataan arahan: keadaan nilai
   -Boleh mengelakkan cawangan atas arahan tunggal


Disediakan oleh,
Yu Hong Sheng   B031210099