Pertemuan 12 SUN SPARC

54
1 Pertemuan 12 SUN SPARC Matakuliah : H0162/ Mikroprosesor Tahun : 2006 Versi : 1/0

description

Pertemuan 12 SUN SPARC. Matakuliah: H0162/ Mikroprosesor Tahun: 2006 Versi: 1/0. Learning Outcomes. Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu: menerangkan arsitektur mikroprosesor keluarga SUN SPARC (C2). Outline Materi. Register Set Format Data - PowerPoint PPT Presentation

Transcript of Pertemuan 12 SUN SPARC

Page 1: Pertemuan 12 SUN SPARC

1

Pertemuan 12SUN SPARC

Matakuliah : H0162/ Mikroprosesor

Tahun : 2006

Versi : 1/0

Page 2: Pertemuan 12 SUN SPARC

2

Learning Outcomes

Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu:

• menerangkan arsitektur mikroprosesor keluarga SUN SPARC (C2)

Page 3: Pertemuan 12 SUN SPARC

3

Outline Materi

• Register Set

• Format Data

• Addressing Mode

• Instruction Set

• Integer Pipeline

• Floating Point Pipeline

Page 4: Pertemuan 12 SUN SPARC

4

Page 5: Pertemuan 12 SUN SPARC

5

Sun SPARC

• Arsitektur SPARC dimulai oleh Sun Microsystem Inc yang berlokasi di Mountain View, California. Sebelum mengumumkan SPARC, Sun Microsystems memproduksi keluar Sun Workstation  yang terkenal berbasis M68000. Salah satu hal yang membedakan SPARC dari sistem RISC adalah Sun tidak memiiki sejarah dalam dunia permikroprosesoran (baik CISC maupun RISC) sebelumnya, sehingga ia tidak memiliki kekuatiran akan kompabilitas piranti lunak (software). Para perancang SPARC dapat memulai merancang dari dasar yang bersih.

Page 6: Pertemuan 12 SUN SPARC

6

• Hal lain yang memembedakan Sun dari pembuat mikroprosesor RISC adalah Sun tidak memproduksi mikropsrosesornya, Sun hanya merancangnya saja. Sun Microsystems merancang arsitektur SPARC, dan memproduksi workstation yang mengimplementasikan mikroprosesor SPARC (SPARCStation adalah paling terkenal dan populer). Produksi mikroprosesor-mikroprosesor yang mengimplementasikan arsitektur SPARC adalah dengan melisensikan keluar pada para pembuat mikroprosesor di Amerika Serikat, Eropa dan Jepang.

Page 7: Pertemuan 12 SUN SPARC

7

• Malah yang pertama kali dipasarkan adalah implementasi SPARC yang diproduksi oleh Fujitsu Microelectronics Inc dari Jepang. Implementasi SPARC level paling atas adalah SuperSPARC, sebuah join ventura dari Sun Microsystems dan Texas Intruments (TI) di Houston, Texas.

• Nama SPARC adalah kepanjangan dari Scalable Processor ARChitecture. Konsep skalabilitasnya, seperti yang dilihat oleh para perancang SPARC, adalah spektrum yang luas dari implementasi harga dibanding unjuk kerja (Price/Performance), dimulai dari mikrokomputer sampai SuperKomputer. Skalabilitas dari SPARC juga dapat diartikan dalam jumlah Register dalam CPU yang dapat digunakan pada beragam versi produk yang mengimplementasikan arsitektur SPARC.

Page 8: Pertemuan 12 SUN SPARC

8

• Arsitektur SPARC mengikuti filosofi rancangan RISC dari Berkeley dengan menekankan pentingnya file register CPU yang relatif besar dan mengimplementasikan fitur jendela register yang sama (similar register window).

Page 9: Pertemuan 12 SUN SPARC

9

Page 10: Pertemuan 12 SUN SPARC

10

Page 11: Pertemuan 12 SUN SPARC

11

Page 12: Pertemuan 12 SUN SPARC

12

Page 13: Pertemuan 12 SUN SPARC

13

UltraSPARC T1

• Sun Microsystems Chief Executive Scott McNealy holds his company's new UltraSPARC T1 processor, unveiled on November 14, 2005.

• The processor was previously code named Niagara.

Page 14: Pertemuan 12 SUN SPARC

14

UltraSPARC T1 Die Photo

• 300 juta transistor

Page 15: Pertemuan 12 SUN SPARC

15

UltraSPARC T1

Page 16: Pertemuan 12 SUN SPARC

16

Page 17: Pertemuan 12 SUN SPARC

17

Page 18: Pertemuan 12 SUN SPARC

18

Register Set

• Fitur arsitektur SPARC memiliki file register yang besar, lebih dari 100 register. Seperti pada RISC Berkeley, suatu prosedur yang berjalan pada SPARC dapat mengakses hanya 32 regiter, yaitu r0 sampai r31. 8 dari register (r0 sampai r7) adalah bersifat global, dapat diakses dari semua prosedur. Ke-24 register lainnya adalah register jendela (window registers), yang diberikan pada tiap prosedur, dengan adanya 8 register tumpang tindih (overlap) antar prosedur. Ke 24 register jendela tersebut dibagi menjadi 3 group dari masing-masing 8 register, seperti yang terlihat pada Gambar 16.1, untuk sebuah urutan dari 3 prosedur yang bertingkat (nested procedures).

Page 19: Pertemuan 12 SUN SPARC

19

Register

Page 20: Pertemuan 12 SUN SPARC

20

• r31 sampai r24 adalah ins, berisi parameter input yang dilewatkan ke prosedur dari prosedur pemanggil.

• r23 sampai r16 adalah locals, berisi parameter lokal dari prosedur.

• r15 sampai r8 adalah outs, berisi parameter keluaran yang akan dilewatkan kepada prosedur selanjutnya

Page 21: Pertemuan 12 SUN SPARC

21

• Seperti yang terlihat pada Gambar 16.1, register outs dari prosedur pemanggil adalah secara fisik adalah register ins dari prosedur yang dipanggil. Prosedur pemanggil melewatkan parameter kepada prosedur yang dipanggil melalui register outs-nya, yang merupakan register ins dari prosedur yang dipanggil.

• Jendela register dari prosedur yang saat ini berjalan, disebut seapgai Active Window, yang ditunjukkan oleh Pointer Jendela Aktif (Current Window Pointer, CWP) pada Register Status Prosesor (Processor Status Register, PSR).

Page 22: Pertemuan 12 SUN SPARC

22

• Jumlah jendela (NWINDOWS) dapat digunakan pada versi SPARC yang berbeda berkisar dari 2 sampai 32 jendela, ini akan menjadi Register IU (Integer Unit) yang bersifat umum (general purpose, termasuk yang 8 register global) berkisar dari 48 sampai 548 register. Mikroprosesor implementasi SPARC yang terakhir menggunakan 8 jendela dengan 136 register. Jendela tersebut diberi nomor 0 sampai NWINDOWS-1 secara berurutan. Gambar 16.2 menunjukkan contoh dari sebuah implementasi 8 jendela, di mana jendela-jendela tersebut secara sirkular terhubung.

Page 23: Pertemuan 12 SUN SPARC

23

Page 24: Pertemuan 12 SUN SPARC

24

• CPU memiliki sebuah Register Control yang lebarnya 32 bit yang disebut Window Invalid Mask (WIM). Setiap bit pada WIM, wi (i=0,1,..,31), berkorespondensi 1 dari antara 32 jendela yang memungkinkan (terjadi bila diimplementasikan kurang dari 32 jendela). Jika wi=1, jendela i dianggap sebagai invalid, dan kondisi trap terjadi.

• Program Counter (PC) pada CPU adalah register yang terpisah, tidak termasuk di dalam file register bersifat umum. Implementasi-implementasi SPARC memungkinkan memiliki lebih dari satu PC yang berisi alamat-alamat instruksi yang berurutan.

Page 25: Pertemuan 12 SUN SPARC

25

• Beberapa dari Register IU (Integer Unit) SPARC memiliki fungsi khusus. r0 adalah hardwired pada nilai 0, seperti pada sistem type RISC lainnya. Sebuah insruksi CALL menulis alamatnya lompatannya sendiri pada register outs r15. CWP (Current Window Pointer) adakan dikurangi satu dengan instruksi SAVE pada pemanggilan prosedur dan dinaikkan satu dengan instruksi RESTORE ketika kembali dari prosedur. Prosedur-prosedur dapat dipanggil tanpa mengganti jendela.

Page 26: Pertemuan 12 SUN SPARC

26

• Bayangkan bahwa suatu kasus NWINDOWS bernilai 8 (lihat Gambar 16.2), window 0 adalah jendela aktif yang saat ini berjalan. Dalam kasus tersebut, CWP = 0. Karena window 0 adalah jendela bebas yang terakhir, ketika prosedur, menggunakan window 0 menggunakan prosedur lainnya, sebuah window overflow terjadi. Sebuah jendela register baru muncul menimpa dareah yang sebelumnnya digunakan oleh window 7, yang isinya harus disimpan ke dalam memory oleh program. Setelah kembali, dan ketika file register telah keluar dari jendela-jendela, maka kita memiliki window underflow. Program harus mengembalikan jendela register yang sebelumnya digunakan dalam kasus ini.

Page 27: Pertemuan 12 SUN SPARC

27

• Window Overflow Trap ditimbulkan oleh terjadinya overflow. Overflow Trap Handler menggunakan locals dari jendela 7 untuk menunjuk pada alamat memory dimana window overflow disimpan. Window 7 dinyatakan invalid selama penanganan trap dengan menset bit w7 pada register WIM.

Page 28: Pertemuan 12 SUN SPARC

28

Format Data

Arsitektur SPARC mengenali type data sebagai berikut:

• Integer – Signed, unsigned byte 8 bits – Signed, unsigned halfword 16 bits – Signed, unsigned word 32 bits – Doubleword 64 bits

• Halfword adalah dialign pada batasan alamat 2-byte (alamat genap), Word pada batasan 4-byte (alamat yang dapat dibagi habis dengan 4), dan DoubleWord pada batasan 8-byte. Urutan byte yang digunakan adalah Big Endian.

Page 29: Pertemuan 12 SUN SPARC

29

Integer

Page 30: Pertemuan 12 SUN SPARC

30

• Floating-point (IEEE 754-1985 standard) – Single-precision 32 bits – Double-precision 64 bits – Quad-precision exponent: 15 bits, mantissa:

63 bits

Page 31: Pertemuan 12 SUN SPARC

31

Floating Point

Page 32: Pertemuan 12 SUN SPARC

32

Addressing Mode

• Selain mode pengalamatan standar seperti Register Direct dan Immediate, hanya ada 3 mode pengalamatan untuk mengakses memory:– Register Indirect with Displacement; Register

+ signed konstanta 13-bit – Register Indirect Indexed; Register1 +

Register2 – PC-Relative; digunakan pada instruksi CALL

dengan displacement 30-bit.

Page 33: Pertemuan 12 SUN SPARC

33

Instruction Format

• Format Instruksi SPARC dapat dilihat pada Gambar 16.5. Terdapat 3 dasar format instruksi yaitu:– CALL – Instruksi Bercabang (Branch) – Instruksi operasi (Register-to-Register)

Page 34: Pertemuan 12 SUN SPARC

34

Page 35: Pertemuan 12 SUN SPARC

35

• Seperti yang terlihat pada Gambar 16.5, instruksi operasi mengimplementasikan pengalamatan 3-operand. Semua instruksi berformat single word panjangnya (32 bits).

• Field-field pada instruksi memiliki pengaturan sebagai berikut:– op bit 31 dan 30 pada semua format,

diinterpretasikan:

Page 36: Pertemuan 12 SUN SPARC

36

– Bicc = Branch on integer condition codes– FBfcc = Branch on floating-point condition

codes– CBccc = Branch on coprocessor condition

codes– SETHI = Set High 22 bits of r register

Page 37: Pertemuan 12 SUN SPARC

37

• op2 bit 24 sampai 22 dalam format 2. Memilih instruksi sebagai berikut:

Page 38: Pertemuan 12 SUN SPARC

38

– rd         bit 29 sampai 25 pada format 2 dan 3. Memilih register sumber untuk instruksi store dan register tujuan untuk semua instruksi lainnya.

– a             bit 29 pada format 2. Annul bit. Merubah tindakan instruksi yang ditemuinya segera setelah terjadi lompatan (control transfer).

– cond         bit 28 sampai 25 pada format 2. Memilih condition code untuk lompatan bersyarat.

Page 39: Pertemuan 12 SUN SPARC

39

– imm22     bit 21 sampai 0 pada format 2. Nilai konstanta 22 bits digunakan pada instruksi SETHI.

– disp22     bit 21 sampai 0 pada dormat 2. Displacement sign-extended word 22 bits untuk instruksi bercabang (branch).

– disp30    bit 29 sampai 0 pada format 1. Displacement sign-extended word 30 bits untuk instruksi PC relative CALL.

Page 40: Pertemuan 12 SUN SPARC

40

• op3        bit 24 sampai 19 in format 3. Ektensi opcode. – i            bit 13 pada format 3. Memilih operand

kedua pada ALU pada instruksi operasi non-floating-point.

• i = 0: operand kedua adalah register rs2. • i = 1: operasi kedua adalah sign-extended simm13.

– asi        bit 12 sampai 5 pada format 3. Sebuah 8 bit address space indentifier yang dihasilkan dengan instruksi load dan store.

Page 41: Pertemuan 12 SUN SPARC

41

– rs1        bit 18 sampai 14 pada format 3. Memilih register operand sumber pertama.

– rs2        bit 4 sampai 0 pada format 3. Memilih register operand sumber kedua.

– simm13    bit 12 sampai 0 pada format 3. Sebuah nilai sign-extended 13-bit immediate.

– opf        bit 13 sampai 5 pada format 3. Mengenali instruksi operasi floating point.

Page 42: Pertemuan 12 SUN SPARC

42

Instruction Set

• Fitur Arsitektur SPARC memiliki jenis instruksi sebagai berikut:– Load/ Store

– Arithmetic/ Logical/ Shift

– Control Transfer

– Read/ Write Control Registers

– Floating-point operate

– Coprocessor operate

Page 43: Pertemuan 12 SUN SPARC

43

• Set instruksi SPARC disarikan pada tabel 16.1 berikut:

Page 44: Pertemuan 12 SUN SPARC

44

• Contoh:– LDSB    addr, rd        ; Load signed byte dari

memory pada alamat addr pada register rd– LD        addr, rd        ; Load word dari addr

pada register rd.– ADD    rs1, rs2, rd    ; (rs1) + (rs2) --> rd, tidak

ada icc modification.    

Page 45: Pertemuan 12 SUN SPARC

45

• Ada 5 jenis Instruksi Transfer Kontrol:– Conditional Branch (Bicc, FBfcc, CBccc) – Jump dan Link – Call (CALL) – Trap (Ticc) – Return from trap (RETT)

Page 46: Pertemuan 12 SUN SPARC

46

SuperSPARC

• SuperSPARC merupakan microprocessor 3.1-juta transistor, dengan teknologi 0.8 micron, 3-layer metal BiCMOS, dengan 293 ceramic pin grid array (PGA) yang dibuat oleh Texas Instruments bekerja sama dengan Sun Microsystems. Processor nya memiliki IU, FPU, MMU dan dua cache (disebut juga Dual Cache: 20 KB untuk instruksi, 16 KB untuk data, total 36 KB). Prosesor SuperSPARC juga dapat mendukung external Level-1 cache ke-dua sebesar 1MB.

Page 47: Pertemuan 12 SUN SPARC

47

Page 48: Pertemuan 12 SUN SPARC

48

• SuperSPARC adalah three-issue superscalar system, sehingga dia dapat mengeluarkan dan menjalankan 3 instruksi per siklus dan mengikuti ketentuan sebagai berikut:– Maximum 2 hasil perhitungan integer – Maximum 1 referensi memory tentang data – Maximum 1 instruksi aritmatik floating-point – Terminate kelompok instruksi segera setelah

setiap transfer kontrol.

Page 49: Pertemuan 12 SUN SPARC

49

• Ketergantungan data di SuperSPARC diatasi dengan:

• Menyusun Instruksi-instruksi yang saling bergantung pada group yang sama.

• Mengirimkan instruksi-instruksi yang saling bergantung pada group yang saling berurutan. Blok diagram 16.6 memperlihatkan detil struktur dari integer unit, terdapat 4 ALU dan sebuah SHIFTER. ALU yang paling kiri bawah, digunakan untuk perhitungan alamat, dan outputnya dikeluarkan ke MMU dan data-cache. Ketiga ALU lainnya digunakan untuk pemrosesan data.

Page 50: Pertemuan 12 SUN SPARC

50

• Jika kita memiliki 2 instruksi integer, yang saling bergantung pada data, instruksi pertama akan dilaksanakan pada salah satu ALU di atas, mengirimkan hasilnya dan operand lainnya pada ALU yang di bawah. menyelesaikan kedua komputasi tersebut dalam satu cycle. Setelah itu kedua hasilnya akan disimpan ke dalam register file IU (Integer Unit).

Page 51: Pertemuan 12 SUN SPARC

51

Integer Pipeline

• Pipeline Integer SuperSPARC berisi 4 tingkat/cycle, setiap cycle memiliki 2 fase:– 1. F0: mengakses instruction Cache (icache) dan

TLB Lookup.– 2. F1: Deteksi kecocockan icache. 4 instruksi

dikirimkan ke instruction queue (iqueue).– 3. D0: Mengeluarkan 1, 2 atau 3 instruksi. Memilih

nomor register untuk instruksi Load/Store.– 4. D1: Membaca file register untuk instruksi

Load/Store. Alokasi sumberdaya untuk instruksi-instruksi ALU. Mengevaluasi alamat target lompatan.

Page 52: Pertemuan 12 SUN SPARC

52

– 5. D2: Membaca file register untuk operand-operand ALU. Mengkalkulasikan EA (Effective Address) untuk instruksi Load/Store

– 6. E0: Tahap pertama ALU. Mengakses Data Cache (dcache) dan TLB Lookup. Mengeluarkan instruksi Floating-Point.

– 7. E1: Tahap dua ALU. Deteksi kecocokan dcache. Data yang akan diload tersedia. Menyelesaikan eksepsi.

– 8. WB: (Write Back) Menulis hasil ke file register. Menyimpan store ke buffer store.

Page 53: Pertemuan 12 SUN SPARC

53

• SuperSPARC mengimplementasikan model eksepsi yang sangat presisi. Pada setiap saat, akan selalu ada 9 instruksi pada pipeline IU dan 4 lagi berada pada antrian floating-point. Eksepsi dan instruksi-instruksi tersebut akan menyebabkan mereka melewati pipeline IU. Mereka akan diselesaikan pada tahap pelaksanaan, sebelum hasil mereka dapat merubah status yang terlihat pada file register, register kontrol atau memory.

Page 54: Pertemuan 12 SUN SPARC

54

Floating Point Pipeline

• FPU (Floating Point Unit) berisi sebuah Floating Point Controller (FPC), 2 buah pipeline yang independen yaitu FADD dan FMUL, sebuah antrian floating point dan file register yang terdiri dari 32 buah register FP yang masing-masing lebarnya 32 bit.

• Pipeline FPU terdiri dari 4 tingkat:– 1. FRD: Decode and Read– 2. FM/FA: Execute Multiply atau Addition– 3. FN/FR: Normalisasi dan Rounding

(pembulatan)– 4. FWB: Write Back ke file register FP.