SlideShare a Scribd company logo
1 of 39
William Stallings
Computer Organization
and Architecture
8th Edition
Chapter 13
Reduced Instruction Set Computers
Kemajuan Besar dalam Komputer(1)
• Konsep keluarga
—IBM System/360 1964
—DEC PDP-8
—Memisahkan arsitektur dari implementasi
• Unit kontrol yang diprogram mikro
—Idea by Wilkes 1951
—Produced by IBM S/360 1964
• Cache memory
—IBM S/360 model 85 1969
Kemajuan Besar dalam Komputer(2)
• Solid State RAM
—(See memory notes)
• Microprocessors
—Intel 4004 1971
• Pipelining
—Memperkenalkan paralelisme ke dalam siklus
eksekusi pengambilan
• Beberapa prosesor
Langkah Selanjutnya - RISC
• Reduced Instruction Set Computer
(Komputer Set Instruksi yang Dikurangi)
• Fitur utama
—Sejumlah besar register tujuan umum
—atau penggunaan teknologi kompiler untuk
mengoptimalkan penggunaan register
—Set instruksi terbatas dan sederhana
—Penekanan pada pengoptimalan jalur instruksi
Comparison of processors
Kekuatan pendorong untuk CISC
• Biaya perangkat lunak jauh melebihi biaya
perangkat keras
• Bahasa tingkat tinggi yang semakin
kompleks
• Kesenjangan semantik
• Mengarah ke:
—Set instruksi besar
—Lebih banyak mode pengalamatan
—Implementasi perangkat keras dari
pernyataan HLL
– e.g. CASE (switch) pada VAX
Niat CISC
• Kemudahan penulisan kompiler
• Tingkatkan efisiensi eksekusi
—Operasi kompleks dalam mikrokode
• Mendukung HLL yang lebih kompleks
Karakteristik Eksekusi
• Operasi yang dilakukan
• Operand yang digunakan
• Urutan eksekusi
• Studi telah dilakukan berdasarkan
program yang ditulis dalam HLL
• Studi dinamis diukur selama pelaksanaan
program
Operasi
• Assignment (Penugasan)
—Pergerakan data
• Conditional statements (IF, LOOP)
—Sequence control
• Prosedur Call-Return sangat memakan
waktu
• Beberapa instruksi HLL menyebabkan
banyak operasi kode mesin
Frekuensi Dinamis Relatif Tertimbang dari Operasi
HLL [PATT82a] (CISC)
Kejadian
Dinamis(Frekuensi
relatif terjadinya)
Mesin-Instruksi
Tertimbang(Ukuran
pengganti dari waktu
aktual yang dihabiskan
untuk mengeksekusi)
Memori-Referensi
Tertimbang(Ukuran
pengganti aktual waktu
yang dihabiskan untuk
referensi memori)
Pascal C Pascal C Pascal C
ASSIGN 45% 38% 13% 13% 14% 15%
LOOP 5% 3% 42% 32% 33% 26%
CALL 15% 12% 31% 33% 44% 45%
IF 29% 43% 11% 21% 7% 13%
GOTO — 3% — — — —
OTHER 6% 1% 3% 1% 2% 1%
Operand (Persentase Dinamis Referensi
Operand)
• Terutama variabel skalar lokal
• Pengoptimalan harus berkonsentrasi pada
mengakses variabel lokal
Pascal C Average
Integer Constant 16% 23% 20%
Scalar Variable
(80% Local Variables)
58% 53% 55%
Array/Structure
(+ a reference to an index
or a pointer @ item)
26% 24% 25%
Pemanggilan Prosedur
• Sangat memakan waktu
• Tergantung pada jumlah parameter yang
dilewati
• Tergantung pada tingkat nested
• Sebagian besar program tidak melakukan
banyak panggilan diikuti dengan banyak
pengembalian
• Sebagian besar variabel bersifat lokal
• (c.f. lokalitas referensi)
Implikasi
• Dukungan terbaik diberikan dengan
mengoptimalkan fitur yang paling sering
digunakan dan paling memakan waktu
• Banyaknya register
—Referensi operand
• Desain pipeline yang cermat
—Prediksi pencabangan dll.
• Set instruksi yang disederhanakan
(dikurangi)
Register File Besar
• Solusi perangkat lunak
—Memerlukan kompiler untuk mengalokasikan
register
—Alokasikan berdasarkan variabel yang paling
sering digunakan dalam waktu tertentu
—Memerlukan analisis program yang canggih
• Solusi Hardware
—Miliki lebih banyak register
—Jadi lebih banyak variabel akan ada di register
Register untuk Variabel Lokal
• Simpan variabel skalar lokal di register
• Mengurangi akses memori
• Setiap prosedur (fungsi) panggilan
mengubah lokalitas
• Parameter harus dilewati
• Hasil harus dikembalikan
• Variabel dari panggilan program harus
dipulihkan
Register Windows
• Hanya beberapa parameter
• Batas Jangkauan panggilan terbatas
• Gunakan beberapa set register kecil
• Panggilan beralih ke set register yang
berbeda
• Mengembalikan switch kembali ke set
register yang digunakan sebelumnya
Register Windows cont.
• Tiga area dalam satu set register
—Register parameter
—Register lokal
—Register sementara
—Register sementara dari satu set register
parameter tumpang tindih dari yang
berikutnya
—Ini memungkinkan parameter lewat tanpa
memindahkan data
Tumpangtindih Register Window
Diagram penyangga melingkar
Pengoperasian Penyangga Melingkar
• Saat panggilan dibuat, penunjuk jendela
saat ini dipindahkan untuk menunjukkan
jendela register yang sedang aktif
• Jika semua jendela sedang digunakan,
interupsi dihasilkan dan jendela tertua
(yang terjauh di belakang panggilan
bersarang) disimpan ke memori
• Penunjuk jendela yang disimpan
menunjukkan di mana jendela yang
disimpan berikutnya harus dikembalikan
ke
Variabel Global
• Dialokasikan oleh kompiler ke memori
• Tidak efisien untuk variabel yang sering
diakses
Registers v Cache
Large Register File Cache
All local scalars Recently-used local scalars
Individual variables Blocks of memory
Compiler-assigned global variables Recently-used global variables
Save/Restore based on procedure nesting depth Save/Restore based on cache replacement
algorithm
Register addressing Memory addressing
Merujuk File Register Skalar - Berbasis
Jendela
Mereferensikan Skalar - Cache
Optimasi Register Berbasis Kompilator
• Asumsikan sejumlah kecil register (16-32)
• Mengoptimalkan penggunaan terserah kompiler
• Program HLL tidak memiliki referensi eksplisit ke
register
—biasanya - pikirkan tentang C - register int
• Tetapkan register simbolis atau virtual untuk
setiap variabel kandidat
• Petakan register simbolik (tidak terbatas) ke
register nyata
• Register simbolik yang tidak tumpang tindih
dapat berbagi register nyata
• Jika Anda kehabisan register nyata, beberapa
variabel menggunakan memori
Pewarnaan Grafik
• Diberikan grafik simpul dan sisi
• Tetapkan warna untuk setiap simpul/node
• Node yang berdekatan memiliki warna yang
berbeda
• Gunakan jumlah minimum warna
• Node adalah simbolis register
• Dua register yang hidup dalam fragmen program
yang sama digabungkan oleh sebuah edge
• Cobalah untuk mewarnai grafik dengan n warna,
di mana n adalah jumlah register nyata
• Node yang tidak dapat diwarnai ditempatkan di
memori
Pendekatan Pewarnaan Grafik
Mengapa CISC (1)?
• Penyederhanaan kompiler?
—Disengketakan…
—Instruksi mesin yang rumit lebih sulit untuk
dieksploitasi
—Optimasi lebih sulit
• Program yang lebih kecil?
—Program membutuhkan lebih sedikit memori
tetapi…
—Memori sekarang murah
—Mungkin tidak menempati lebih sedikit, hanya
terlihat lebih pendek dalam bentuk simbolis
– Lebih banyak instruksi membutuhkan kode operasi
yang lebih panjang
– Referensi register membutuhkan lebih sedikit bit
Mengapa CISC (2)?
• Program lebih cepat?
—Bias terhadap penggunaan instruksi yang lebih
sederhana
—Unit kontrol yang lebih kompleks
—kontrol program mikro penyimpanan lebih
besar
—sehingga instruksi sederhana membutuhkan
waktu lebih lama untuk dieksekusi
• Masih jauh dari jelas bahwa CISC adalah
solusi yang tepat
Karakteristik RISC
• Satu instruksi per siklus
• Operasi Register ke register
• Beberapa, mode pengalamatan sederhana
• Beberapa, format instruksi sederhana
• Desain bawaan (tanpa mikrokode)
• Format instruksi tetap
• Lebih banyak waktu/usaha kompilasi
RISC v CISC
• Tidak jelas
• Banyak desain meminjam dari kedua
filosofi
• misalnya PowerPC dan Pentium II
Pemipaan RISC
• Sebagian besar instruksi adalah Register
ke Register
• Dua fase eksekusi
—I: Instruction fetch
—E: Execute
– Operasi ALU dengan input dan output register
• Untuk memuat dan menyimpan
—I: Instruction fetch
—E: Execute
– Hitung alamat memori
—D: Memory
– Register ke memory atau memory ke register
Operasi
Efek Pipelining
Optimalisasi Pipelining
• Delay branch
—Tidak berlaku sampai setelah eksekusi instruksi berikut
—Instruksi berikut ini adalah slot penundaan
• Delay Load
—Register menjadi target dikunci oleh prosesor
—Lanjutkan eksekusi aliran instruksi sampai register
diperlukan
—Menganggur hingga pemuatan selesai
—Mengatur ulang instruksi dapat memungkinkan
pekerjaan yang bermanfaat saat memuat
• Pembukaan Loop
—Replikasi body of loop beberapa kali
—pengulangan Loop lebih sedikit
—Mengurangi loop overhead
—Meningkatkan paralelisme instruksi
—Peningkatan register, cache data, atau lokalitas TLB
Loop Unrolling Dua Kali
Contoh
do i=2, n-1
a[i] = a[i] + a[i-1] * a[i+l]
end do
Becomes
do i=2, n-2, 2
a[i] = a[i] + a[i-1] * a[i+i]
a[i+l] = a[i+l] + a[i] * a[i+2]
end do
if (mod(n-2,2) = i) then
a[n-1] = a[n-1] + a[n-2] * a[n]
end if
Cabang Normal dan Tertunda
Address Normal Branch Delayed Branch Optimized
Delayed Branch
100 LOAD X, rA LOAD X, rA LOAD X, rA
101 ADD 1, rA ADD 1, rA JUMP 105
102 JUMP 105 JUMP 106 ADD 1, rA
103 ADD rA, rB NOOP ADD rA, rB
104 SUB rC, rB ADD rA, rB SUB rC, rB
105 STORE rA, Z SUB rC, rB STORE rA, Z
106 STORE rA, Z
Penggunaan
Cabang Tertunda
Kontroversi
• Kuantitatif
—bandingkan ukuran program dan kecepatan eksekusi
• Kualitatif
—memeriksa masalah dukungan bahasa tingkat tinggi
dan penggunaan real estat VLSI
• Problem
—Tidak ada pasangan RISC dan CISC yang dapat
dibandingkan secara langsung
—Tidak ada set program pengujian yang pasti
—Sulit untuk memisahkan efek perangkat keras dari efek
kompiler
—Kebanyakan perbandingan dilakukan pada "mainan"
daripada mesin produksi
—Sebagian besar perangkat komersial adalah campuran
Required Reading
• Stallings chapter 13
• Manufacturer web sites

More Related Content

Similar to 13_risc_ind.pptx

MATA KULIAH GANJIL ARSITEKTUR KOMPUTER.ppt
MATA KULIAH GANJIL ARSITEKTUR KOMPUTER.pptMATA KULIAH GANJIL ARSITEKTUR KOMPUTER.ppt
MATA KULIAH GANJIL ARSITEKTUR KOMPUTER.pptkaruniaman
 
MATERI PERKULIAHAN ARSITEKTUR KOMPUTER.pptx
MATERI PERKULIAHAN ARSITEKTUR KOMPUTER.pptxMATERI PERKULIAHAN ARSITEKTUR KOMPUTER.pptx
MATERI PERKULIAHAN ARSITEKTUR KOMPUTER.pptxkaruniaman
 
Pertemuan 3. Struktur CPU.ppt
Pertemuan 3. Struktur CPU.pptPertemuan 3. Struktur CPU.ppt
Pertemuan 3. Struktur CPU.pptDoniOktaviana2
 
Arsitektur Set Instruksi dan CPU
Arsitektur Set Instruksi dan CPUArsitektur Set Instruksi dan CPU
Arsitektur Set Instruksi dan CPURamandha Auryl
 
Arsitektur Set Instruksi dan CPU
Arsitektur Set Instruksi dan CPUArsitektur Set Instruksi dan CPU
Arsitektur Set Instruksi dan CPURamandha Auryl
 
3.struktur sistemoperasi
3.struktur sistemoperasi3.struktur sistemoperasi
3.struktur sistemoperasinasib silaban
 
Tipe dan format instruksi 1
Tipe dan format instruksi 1Tipe dan format instruksi 1
Tipe dan format instruksi 1Rosyid Ridlo
 
Arsitektur dan desain set
Arsitektur dan desain setArsitektur dan desain set
Arsitektur dan desain setPrisca Renatha
 
Pengantar Sistem Mikroprosesor.ppt
Pengantar Sistem Mikroprosesor.pptPengantar Sistem Mikroprosesor.ppt
Pengantar Sistem Mikroprosesor.pptDennyHardiyanto2
 
Bernis Sagita - Manajemen Memory
Bernis Sagita - Manajemen MemoryBernis Sagita - Manajemen Memory
Bernis Sagita - Manajemen Memorybelajarkomputer
 
2.struktur sistemkomputer
2.struktur sistemkomputer2.struktur sistemkomputer
2.struktur sistemkomputernasib silaban
 
Sistem operasi monolitik
Sistem operasi monolitikSistem operasi monolitik
Sistem operasi monolitikUtami Islami
 

Similar to 13_risc_ind.pptx (20)

MATA KULIAH GANJIL ARSITEKTUR KOMPUTER.ppt
MATA KULIAH GANJIL ARSITEKTUR KOMPUTER.pptMATA KULIAH GANJIL ARSITEKTUR KOMPUTER.ppt
MATA KULIAH GANJIL ARSITEKTUR KOMPUTER.ppt
 
MATERI PERKULIAHAN ARSITEKTUR KOMPUTER.pptx
MATERI PERKULIAHAN ARSITEKTUR KOMPUTER.pptxMATERI PERKULIAHAN ARSITEKTUR KOMPUTER.pptx
MATERI PERKULIAHAN ARSITEKTUR KOMPUTER.pptx
 
Clustering Computer
Clustering ComputerClustering Computer
Clustering Computer
 
Pertemuan 3. Struktur CPU.ppt
Pertemuan 3. Struktur CPU.pptPertemuan 3. Struktur CPU.ppt
Pertemuan 3. Struktur CPU.ppt
 
Paralel prosesor
Paralel prosesorParalel prosesor
Paralel prosesor
 
Arsitektur Set Instruksi dan CPU
Arsitektur Set Instruksi dan CPUArsitektur Set Instruksi dan CPU
Arsitektur Set Instruksi dan CPU
 
Arsitektur Set Instruksi dan CPU
Arsitektur Set Instruksi dan CPUArsitektur Set Instruksi dan CPU
Arsitektur Set Instruksi dan CPU
 
9 man memoriaplot
9 man memoriaplot9 man memoriaplot
9 man memoriaplot
 
3.struktur sistemoperasi
3.struktur sistemoperasi3.struktur sistemoperasi
3.struktur sistemoperasi
 
Tipe dan format instruksi 1
Tipe dan format instruksi 1Tipe dan format instruksi 1
Tipe dan format instruksi 1
 
Sistem Operasi
Sistem OperasiSistem Operasi
Sistem Operasi
 
Arsitektur dan desain set
Arsitektur dan desain setArsitektur dan desain set
Arsitektur dan desain set
 
Pengantar Sistem Mikroprosesor.ppt
Pengantar Sistem Mikroprosesor.pptPengantar Sistem Mikroprosesor.ppt
Pengantar Sistem Mikroprosesor.ppt
 
Tugas so
Tugas soTugas so
Tugas so
 
Arkom6
Arkom6Arkom6
Arkom6
 
Bernis Sagita - Manajemen Memory
Bernis Sagita - Manajemen MemoryBernis Sagita - Manajemen Memory
Bernis Sagita - Manajemen Memory
 
Set intruksi ppt
Set intruksi pptSet intruksi ppt
Set intruksi ppt
 
2.struktur sistemkomputer
2.struktur sistemkomputer2.struktur sistemkomputer
2.struktur sistemkomputer
 
Memory
MemoryMemory
Memory
 
Sistem operasi monolitik
Sistem operasi monolitikSistem operasi monolitik
Sistem operasi monolitik
 

Recently uploaded

MARIA NOVILIA BOISALA FASILITATOR PMM.pptx
MARIA NOVILIA BOISALA FASILITATOR PMM.pptxMARIA NOVILIA BOISALA FASILITATOR PMM.pptx
MARIA NOVILIA BOISALA FASILITATOR PMM.pptxmariaboisala21
 
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptx
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptxMATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptx
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptxrikosyahputra0173
 
PENGENDALIAN MUTU prodi Blitar penting untuk dimiliki oleh masyarakat .pptx
PENGENDALIAN MUTU prodi Blitar penting untuk dimiliki oleh masyarakat .pptxPENGENDALIAN MUTU prodi Blitar penting untuk dimiliki oleh masyarakat .pptx
PENGENDALIAN MUTU prodi Blitar penting untuk dimiliki oleh masyarakat .pptxheru687292
 
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptx
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptxUKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptx
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptxzidanlbs25
 
Menggunakan Data matematika kelas 7.pptx
Menggunakan Data matematika kelas 7.pptxMenggunakan Data matematika kelas 7.pptx
Menggunakan Data matematika kelas 7.pptxImahMagwa
 
Geologi Jawa Timur-Madura Kelompok 6.pdf
Geologi Jawa Timur-Madura Kelompok 6.pdfGeologi Jawa Timur-Madura Kelompok 6.pdf
Geologi Jawa Timur-Madura Kelompok 6.pdfAuliaAulia63
 
Sistem operasi adalah program yang bertindak sebagai perantara antara user de...
Sistem operasi adalah program yang bertindak sebagai perantara antara user de...Sistem operasi adalah program yang bertindak sebagai perantara antara user de...
Sistem operasi adalah program yang bertindak sebagai perantara antara user de...Shary Armonitha
 

Recently uploaded (7)

MARIA NOVILIA BOISALA FASILITATOR PMM.pptx
MARIA NOVILIA BOISALA FASILITATOR PMM.pptxMARIA NOVILIA BOISALA FASILITATOR PMM.pptx
MARIA NOVILIA BOISALA FASILITATOR PMM.pptx
 
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptx
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptxMATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptx
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptx
 
PENGENDALIAN MUTU prodi Blitar penting untuk dimiliki oleh masyarakat .pptx
PENGENDALIAN MUTU prodi Blitar penting untuk dimiliki oleh masyarakat .pptxPENGENDALIAN MUTU prodi Blitar penting untuk dimiliki oleh masyarakat .pptx
PENGENDALIAN MUTU prodi Blitar penting untuk dimiliki oleh masyarakat .pptx
 
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptx
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptxUKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptx
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptx
 
Menggunakan Data matematika kelas 7.pptx
Menggunakan Data matematika kelas 7.pptxMenggunakan Data matematika kelas 7.pptx
Menggunakan Data matematika kelas 7.pptx
 
Geologi Jawa Timur-Madura Kelompok 6.pdf
Geologi Jawa Timur-Madura Kelompok 6.pdfGeologi Jawa Timur-Madura Kelompok 6.pdf
Geologi Jawa Timur-Madura Kelompok 6.pdf
 
Sistem operasi adalah program yang bertindak sebagai perantara antara user de...
Sistem operasi adalah program yang bertindak sebagai perantara antara user de...Sistem operasi adalah program yang bertindak sebagai perantara antara user de...
Sistem operasi adalah program yang bertindak sebagai perantara antara user de...
 

13_risc_ind.pptx

  • 1. William Stallings Computer Organization and Architecture 8th Edition Chapter 13 Reduced Instruction Set Computers
  • 2. Kemajuan Besar dalam Komputer(1) • Konsep keluarga —IBM System/360 1964 —DEC PDP-8 —Memisahkan arsitektur dari implementasi • Unit kontrol yang diprogram mikro —Idea by Wilkes 1951 —Produced by IBM S/360 1964 • Cache memory —IBM S/360 model 85 1969
  • 3. Kemajuan Besar dalam Komputer(2) • Solid State RAM —(See memory notes) • Microprocessors —Intel 4004 1971 • Pipelining —Memperkenalkan paralelisme ke dalam siklus eksekusi pengambilan • Beberapa prosesor
  • 4. Langkah Selanjutnya - RISC • Reduced Instruction Set Computer (Komputer Set Instruksi yang Dikurangi) • Fitur utama —Sejumlah besar register tujuan umum —atau penggunaan teknologi kompiler untuk mengoptimalkan penggunaan register —Set instruksi terbatas dan sederhana —Penekanan pada pengoptimalan jalur instruksi
  • 6. Kekuatan pendorong untuk CISC • Biaya perangkat lunak jauh melebihi biaya perangkat keras • Bahasa tingkat tinggi yang semakin kompleks • Kesenjangan semantik • Mengarah ke: —Set instruksi besar —Lebih banyak mode pengalamatan —Implementasi perangkat keras dari pernyataan HLL – e.g. CASE (switch) pada VAX
  • 7. Niat CISC • Kemudahan penulisan kompiler • Tingkatkan efisiensi eksekusi —Operasi kompleks dalam mikrokode • Mendukung HLL yang lebih kompleks
  • 8. Karakteristik Eksekusi • Operasi yang dilakukan • Operand yang digunakan • Urutan eksekusi • Studi telah dilakukan berdasarkan program yang ditulis dalam HLL • Studi dinamis diukur selama pelaksanaan program
  • 9. Operasi • Assignment (Penugasan) —Pergerakan data • Conditional statements (IF, LOOP) —Sequence control • Prosedur Call-Return sangat memakan waktu • Beberapa instruksi HLL menyebabkan banyak operasi kode mesin
  • 10. Frekuensi Dinamis Relatif Tertimbang dari Operasi HLL [PATT82a] (CISC) Kejadian Dinamis(Frekuensi relatif terjadinya) Mesin-Instruksi Tertimbang(Ukuran pengganti dari waktu aktual yang dihabiskan untuk mengeksekusi) Memori-Referensi Tertimbang(Ukuran pengganti aktual waktu yang dihabiskan untuk referensi memori) Pascal C Pascal C Pascal C ASSIGN 45% 38% 13% 13% 14% 15% LOOP 5% 3% 42% 32% 33% 26% CALL 15% 12% 31% 33% 44% 45% IF 29% 43% 11% 21% 7% 13% GOTO — 3% — — — — OTHER 6% 1% 3% 1% 2% 1%
  • 11. Operand (Persentase Dinamis Referensi Operand) • Terutama variabel skalar lokal • Pengoptimalan harus berkonsentrasi pada mengakses variabel lokal Pascal C Average Integer Constant 16% 23% 20% Scalar Variable (80% Local Variables) 58% 53% 55% Array/Structure (+ a reference to an index or a pointer @ item) 26% 24% 25%
  • 12. Pemanggilan Prosedur • Sangat memakan waktu • Tergantung pada jumlah parameter yang dilewati • Tergantung pada tingkat nested • Sebagian besar program tidak melakukan banyak panggilan diikuti dengan banyak pengembalian • Sebagian besar variabel bersifat lokal • (c.f. lokalitas referensi)
  • 13. Implikasi • Dukungan terbaik diberikan dengan mengoptimalkan fitur yang paling sering digunakan dan paling memakan waktu • Banyaknya register —Referensi operand • Desain pipeline yang cermat —Prediksi pencabangan dll. • Set instruksi yang disederhanakan (dikurangi)
  • 14. Register File Besar • Solusi perangkat lunak —Memerlukan kompiler untuk mengalokasikan register —Alokasikan berdasarkan variabel yang paling sering digunakan dalam waktu tertentu —Memerlukan analisis program yang canggih • Solusi Hardware —Miliki lebih banyak register —Jadi lebih banyak variabel akan ada di register
  • 15. Register untuk Variabel Lokal • Simpan variabel skalar lokal di register • Mengurangi akses memori • Setiap prosedur (fungsi) panggilan mengubah lokalitas • Parameter harus dilewati • Hasil harus dikembalikan • Variabel dari panggilan program harus dipulihkan
  • 16. Register Windows • Hanya beberapa parameter • Batas Jangkauan panggilan terbatas • Gunakan beberapa set register kecil • Panggilan beralih ke set register yang berbeda • Mengembalikan switch kembali ke set register yang digunakan sebelumnya
  • 17. Register Windows cont. • Tiga area dalam satu set register —Register parameter —Register lokal —Register sementara —Register sementara dari satu set register parameter tumpang tindih dari yang berikutnya —Ini memungkinkan parameter lewat tanpa memindahkan data
  • 20. Pengoperasian Penyangga Melingkar • Saat panggilan dibuat, penunjuk jendela saat ini dipindahkan untuk menunjukkan jendela register yang sedang aktif • Jika semua jendela sedang digunakan, interupsi dihasilkan dan jendela tertua (yang terjauh di belakang panggilan bersarang) disimpan ke memori • Penunjuk jendela yang disimpan menunjukkan di mana jendela yang disimpan berikutnya harus dikembalikan ke
  • 21. Variabel Global • Dialokasikan oleh kompiler ke memori • Tidak efisien untuk variabel yang sering diakses
  • 22. Registers v Cache Large Register File Cache All local scalars Recently-used local scalars Individual variables Blocks of memory Compiler-assigned global variables Recently-used global variables Save/Restore based on procedure nesting depth Save/Restore based on cache replacement algorithm Register addressing Memory addressing
  • 23. Merujuk File Register Skalar - Berbasis Jendela
  • 25. Optimasi Register Berbasis Kompilator • Asumsikan sejumlah kecil register (16-32) • Mengoptimalkan penggunaan terserah kompiler • Program HLL tidak memiliki referensi eksplisit ke register —biasanya - pikirkan tentang C - register int • Tetapkan register simbolis atau virtual untuk setiap variabel kandidat • Petakan register simbolik (tidak terbatas) ke register nyata • Register simbolik yang tidak tumpang tindih dapat berbagi register nyata • Jika Anda kehabisan register nyata, beberapa variabel menggunakan memori
  • 26. Pewarnaan Grafik • Diberikan grafik simpul dan sisi • Tetapkan warna untuk setiap simpul/node • Node yang berdekatan memiliki warna yang berbeda • Gunakan jumlah minimum warna • Node adalah simbolis register • Dua register yang hidup dalam fragmen program yang sama digabungkan oleh sebuah edge • Cobalah untuk mewarnai grafik dengan n warna, di mana n adalah jumlah register nyata • Node yang tidak dapat diwarnai ditempatkan di memori
  • 28. Mengapa CISC (1)? • Penyederhanaan kompiler? —Disengketakan… —Instruksi mesin yang rumit lebih sulit untuk dieksploitasi —Optimasi lebih sulit • Program yang lebih kecil? —Program membutuhkan lebih sedikit memori tetapi… —Memori sekarang murah —Mungkin tidak menempati lebih sedikit, hanya terlihat lebih pendek dalam bentuk simbolis – Lebih banyak instruksi membutuhkan kode operasi yang lebih panjang – Referensi register membutuhkan lebih sedikit bit
  • 29. Mengapa CISC (2)? • Program lebih cepat? —Bias terhadap penggunaan instruksi yang lebih sederhana —Unit kontrol yang lebih kompleks —kontrol program mikro penyimpanan lebih besar —sehingga instruksi sederhana membutuhkan waktu lebih lama untuk dieksekusi • Masih jauh dari jelas bahwa CISC adalah solusi yang tepat
  • 30. Karakteristik RISC • Satu instruksi per siklus • Operasi Register ke register • Beberapa, mode pengalamatan sederhana • Beberapa, format instruksi sederhana • Desain bawaan (tanpa mikrokode) • Format instruksi tetap • Lebih banyak waktu/usaha kompilasi
  • 31. RISC v CISC • Tidak jelas • Banyak desain meminjam dari kedua filosofi • misalnya PowerPC dan Pentium II
  • 32. Pemipaan RISC • Sebagian besar instruksi adalah Register ke Register • Dua fase eksekusi —I: Instruction fetch —E: Execute – Operasi ALU dengan input dan output register • Untuk memuat dan menyimpan —I: Instruction fetch —E: Execute – Hitung alamat memori —D: Memory – Register ke memory atau memory ke register Operasi
  • 34. Optimalisasi Pipelining • Delay branch —Tidak berlaku sampai setelah eksekusi instruksi berikut —Instruksi berikut ini adalah slot penundaan • Delay Load —Register menjadi target dikunci oleh prosesor —Lanjutkan eksekusi aliran instruksi sampai register diperlukan —Menganggur hingga pemuatan selesai —Mengatur ulang instruksi dapat memungkinkan pekerjaan yang bermanfaat saat memuat • Pembukaan Loop —Replikasi body of loop beberapa kali —pengulangan Loop lebih sedikit —Mengurangi loop overhead —Meningkatkan paralelisme instruksi —Peningkatan register, cache data, atau lokalitas TLB
  • 35. Loop Unrolling Dua Kali Contoh do i=2, n-1 a[i] = a[i] + a[i-1] * a[i+l] end do Becomes do i=2, n-2, 2 a[i] = a[i] + a[i-1] * a[i+i] a[i+l] = a[i+l] + a[i] * a[i+2] end do if (mod(n-2,2) = i) then a[n-1] = a[n-1] + a[n-2] * a[n] end if
  • 36. Cabang Normal dan Tertunda Address Normal Branch Delayed Branch Optimized Delayed Branch 100 LOAD X, rA LOAD X, rA LOAD X, rA 101 ADD 1, rA ADD 1, rA JUMP 105 102 JUMP 105 JUMP 106 ADD 1, rA 103 ADD rA, rB NOOP ADD rA, rB 104 SUB rC, rB ADD rA, rB SUB rC, rB 105 STORE rA, Z SUB rC, rB STORE rA, Z 106 STORE rA, Z
  • 38. Kontroversi • Kuantitatif —bandingkan ukuran program dan kecepatan eksekusi • Kualitatif —memeriksa masalah dukungan bahasa tingkat tinggi dan penggunaan real estat VLSI • Problem —Tidak ada pasangan RISC dan CISC yang dapat dibandingkan secara langsung —Tidak ada set program pengujian yang pasti —Sulit untuk memisahkan efek perangkat keras dari efek kompiler —Kebanyakan perbandingan dilakukan pada "mainan" daripada mesin produksi —Sebagian besar perangkat komersial adalah campuran
  • 39. Required Reading • Stallings chapter 13 • Manufacturer web sites