Showing posts with label Topic 4: The Processor. Show all posts
Showing posts with label Topic 4: The Processor. Show all posts

Saturday, 15 December 2012

4.4 Pipelining


The processor

Pipelining

Analogi Pipelining

Kita boleh mengandaikan bahawa ia merupakan “pipelined laundry” iaitu pertindihan pelaksanaan.

MIPS pipeline

Dalam MIPS pipeline, terdapat lima peringkat dan mempunyai langkah-langkah yang tertentu dalam peringkat masing-masing, iaitu :

1.   IF : Mengambil arahan dari memori
2.  ID : Decode arahan dan mendaftar register
     3.  EX : Melaksanakan operasi atau mengira alamat   
     4.  MEM : Mengakses memori dan mendapat nilai
     5. WB : Menulis balik semua arahan dan simpan dalam register


Pipeline Speedup

  •      Jika semua peringkat adalah seimbang

      Sebagai contoh : semua dalam masa yang sama

Time between instructions pipelined = Time between instructions 

nonpipelined / Number of stages

  • Jika tidak seimbang, speedup akan berkurang

  •  Speedup menyebabkan berlakunya peningkatan pengeluaran.


     Pipeline Performance


     Bagi setiap process, tempoh masa adalah berlainan. Jika menggunakan pipeline, persembahan akan meningkat.


    Sebagai contoh :


Tambah 2,000,000 arahan, tambah 400 ps kepada jumlah masa pelaksanaan,

Jumlah Masa Pelaksanaan = 2,000,000 x 400 ps + 1400 ps

                                            = 800,001,400 ps

Nonpipelined jumlah masa pelaksanaan

= 2,000,000 x 1600 ps + 2400 ps

= 3,200,002,400 ps

Kecepatan = 3,200,002,400 ps /800,001,400 ps = 4
                                          



4.3 Branch Instructions

Apakah fungsi Branch Instructions?
-Branch Instructions digunakan untuk menukar urutan pelaksanaan arahan.


Disebabkan semua branch instructions di sempadan perkataan, pemproses melaksanakan cawangan menghiraukan bit 30 dan 31 alamat sasaran cabang yang dijana. Semua branch instructions boleh digunakan dalam keadaan unprivileged.



Sesuatu branch instruction mengira alamat sasaran dalam salah satu daripada empat cara:

• Alamat sasaran adalah jumlah pemalar dan alamat branch instruction sendiri.
• Sasaran alamat adalah alamat mutlak yang diberikan sebagai satu operan arahan.
• Sasaran alamat adalah alamat yang terdapat dalam Link Register.
• Sasaran alamat adalah alamat yang terdapat dalam Count Register.


Menggunakan kaedah pertama dan kedua, alamat sasaran boleh dikira dengan cukup di hadapan arahan cawangan prefetch arahan di sepanjang jalan sasaran.



Menggunakan kaedah yang ketiga dan keempat, praambilan arahan sepanjang jalan cawangan juga mungkin yang disediakan Link Register atau Count Register dimuatkan cukup menjelang branch instruction.



Jenis Branch Instructions

• Branch Unconditional
• Branch Conditional


Dalam pelbagai bentuk sasaran, branch instruction umumnya sama ada branch unconditionally sahaja, branch uncondtionally dan memberikan alamat kembali, branch conditionally sahaja, atau branch conditionally dan menyediakan alamat kembali. Jika branch instruction mempunyai set Link sedikit kepada 1, maka Link Registration diubah untuk menyimpan alamat kembali untuk kegunaan oleh subroutine. Alamat pulangan adalah alamat arahan segera berdasarkan arahan cawangan.

4.2 Fetch, R-format


       -          Fetch bermaksud membaca dari memory
       -          Untuk melaksanakan sebarang arahan, kita mesti fetch arahan itu dari Instuction Memory
       -          PC (program counter)
       -          Instruction memory membaca address dan menyimpan fetch arahan itu dalam memory.
       -          PC menambah 4 untuk memegang arahan seterusnya

Arahan Format R

Add $t0,$t1,$t2
       -          Reg 1 ialah $t1, Reg 2 ialah $t2 ( setiap satu mengandungi 5 bits)
       -          Write Register ialah $t0 (6 bits)
Gambar tersebut menunjukkan operasi bagi Format R, seperti add $t0,$t1 dan $t2. Operasi ini
1.       Arahan dibawa ke dalam memory.
2.       2 pendaftaran, $t1 dan $t2 dibaca dari file pendaftaran; RegDst, RegWrite dan ALUOp disediakan di sebelah control.
3.       ALU mengoperasi data yang dibaca dari file pendaftaran dengan menggunakan kod fungsi (5 bit di ladang fungsi) untuk menjalankan fungsi ALU
4.       Keputusan dari ALU ditulis ke dalam file pendaftaran dengan menggunakan bit 15:11 daripada arahan untuk memilih pendaftaran destinasi ($t0)



4.1 Introduction to Processor

Faktor Prestasi CPU
- Pengiraan arahan diperlukan untuk program yang diberikan,
  • ini ditentukan oleh ISA dan   pengkompil
- CPI dan masa kitaran (Cycle time)
  • ini ditentukan oleh perkakasan CPU Pemeriksaan pelaksanaan MIPS
Pemeriksaan pelaksanaan MIPS
 - Versi yang dipermudahkan
 - Versi saluran maklumat yang lebih realistic

Pelaksanaan asas set arahan MIPS
 - Rujukan memori : lw, sw
 - Aritmetik / logic : add, sub, and, or, slt
 - Pemindahan mengawal : beq, j




Gambar rajah di atas menunjukkan gambaran abstrak pelaksanaan subset MIPS menunjukkan unit utama fungsi dan sambungan utama di antara mereka.

1. Semua arahan bermula dengan menggunakan kaunter program untuk membekalkan alamat arahan untuk memori arahan.
2. Selepas arahan dihantar, operan daftar digunakan oleh arahan yang dinyatakan oleh bidang arahan tersebut.
3. Sebaik sahaja operan daftar telah dihantar, mereka boleh dikendalikan untuk mengira alamat memori (untuk 'load' atau 'store'), untuk mengira hasil aritmetik (bagi arahan integer-logik aritmetik), atau membandingkan (ranting).
4. Jika arahan adalah arahan logik-aritmetik, hasil dari ALU mesti bertulis kepada daftar/'register'.
5. Jika operasi adalah 'load' atau 'store', hasil ALU digunakan sebagai alamat sama ada untuk menyimpan nilai dari daftar/'registers' atau memuatkan nilai dari memori ke dalam daftar/'register'.
6. Hasil dari ALU atau memori ditulis kembali ke dalam fail daftar.
7. Ranting memerlukan penggunaan output ALU untuk menentukan alamat arahan seterusnya, yang datang sama ada dari ALU (mana PC dan cawangan yang mengimbangi disimpulkan) atau dari satu penambah bahawa kenaikan PC semasa dengan 4.
8. Garis tebal bersambung dengan unit fungsian mewakili bas, yang terdiri daripada pelbagai isyarat.



Pemultipleks ( Multiplexer)


Dalam amalan, talian data tidak boleh berwayar bersama- sama sesuka hati. Kita perlu menambah satu elemen logik yang pilih daripada pelbagai sumber dan mengemudi salah satu sumber kepada destinasinya. Pilihan ini dilakukan dengan satu alat bernama ‘multiplexor’ atau alat pemilih data.

Control

 
  • Gambar rajah di atas menunjukkan pelaksanaan asas subset MIPS termasuk ‘multiplexors’ dan ‘control lines’
  •  Multiplexor (Mux) yang berada di atas mengawalkan nilai yang mengganti PC, multiplexor dikawalkan oleh pintu ‘ANDs’ yang menyatukan kosong output ALU dan satu isyarat kawalan akan menunjukkan bahawa arahan itu adalah ranting.
  • Multiplexor yang berada di tengah memulangkan output kepada file daftar. Multiplexor ini biasanya mengemudi output ALU ataupun output data memori yang digunakan untuk menulis ke dalam file daftar.
  • Multiplexor yang berada di bawah sekali biasanya adalah menentukan tempat asal ALU input yang kedua.
  •  Control lines adalah terus terang dan akan menentukan operasi yang dilaksanakan di ALU dan menentukan cara pelaksanaan data memori dan perlukan ‘registers’ melaksanakan operasi.
  • Control lines adalah ditunjukkan dalam warna biru.