Materi CPU




Memory Models
Kebanyakan model memori yang modern jatuh ke salah satu dari tiga kategori:
1. Model memori flat

   -Antarmuka yang sederhana untuk programmer, desain bersih
    
-Fleksibilitas terbesar
   - 
Hardware minimum dan CPU real estate untuk aplikasi pengendali sederhana
    
-Kecepatan eksekusi maksimum
    
-Tidak cocok untuk komputasi umum atau sistem operasi multitasking, kecuali ditingkatkan dengan tambahan hardware manajemen memori / software; tapi ini hampir selalu terjadi di prosesor CISC modern, yang menerapkan manajemen memori maju dan teknologi perlindungan lebih model memori flat. Linux mis menggunakan model memori flat, melihat memori x86 segmentasi # Praktek.

2. Model memori paged

    
-Cocok untuk multitasking, desain sistem operasi umum, perlindungan sumber daya dan alokasi
    
-Cocok untuk implementasi memori virtual
   - 
Lebih CPU real estate, kecepatan sedikit lebih rendah
    
-Lebih kompleks untuk program
    
-Batas halaman kaku, tidak selalu yang paling memori efisien
   - 
Ini adalah model memori CPU Pentium Pro dan yang lebih baru x86 digunakan dalam 32-bit mode pengalamatan ketika menangani memori menggunakan alamat 36-bit. Ini disebut Physical Address Extension

3. Model memori Segmented X86
Artikel utama: Intel Memory Model

    
-Mirip dengan memori paged, tapi paging dicapai dengan penambahan implisit dua yang relatif bergeser register: segmen: offset
    
-Batas halaman variabel, lebih efisien dan fleksibel daripada model memori paged
    
-Cukup kompleks dan canggung dari titik programmer pandang
   - 
Lebih sulit bagi compiler
    
-Halaman dapat tumpang tindih / perlindungan sumber daya miskin dan isolasi
    
-Banyak ke satu alamat terjemahan korespondensi: Banyak segmen: kombinasi diimbangi menyelesaikan ke alamat fisik yang sama
    
-Kesempatan lebih besar untuk kesalahan pemrograman
    
-Diimplementasikan dalam asli Intel 8086, 8088, 80186, 80286 dan didukung oleh 80.386 dan semua mesin x86 berikutnya sampai sekarang hari Pentium dan Core 2 prosesor. model memori ini tetap sejak di mesin x86, yang kini menyediakan operasi multi-mode dan jarang beroperasi dalam modus tersegmentasi kompatibel pula. [klarifikasi diperlukan] Lihat segmentasi memori x86 untuk rincian.

Dalam arsitektur x86, ketika beroperasi dalam mode real (kompatibel), alamat fisik dihitung sebagai: [2]

    
Alamat = 16 × segmen + diimbangi

(Yaitu 16-bit segmen register bergeser ditinggalkan oleh 4 bit dan ditambahkan ke 16-bit offset, sehingga alamat 20-bit.)
Memory Consistency
Dalam ilmu komputer, model konsistensi yang digunakan dalam sistem terdistribusi seperti sistem memori bersama terdistribusi atau penyimpanan data terdistribusi (seperti filesystem, database, sistem replikasi optimis atau Web caching). Sistem ini mendukung model yang diberikan jika operasi pada memori mengikuti aturan tertentu. Model konsistensi data menentukan kontrak antara programmer dan sistem, dimana sistem jaminan bahwa jika programmer mengikuti aturan, memori akan konsisten dan hasil operasi memori akan diprediksi.

Bahasa tingkat tinggi, seperti C ++ dan Java, sebagian mempertahankan kontrak dengan menerjemahkan operasi memori ke operasi tingkat rendah dengan cara yang melindungi semantik memori. Untuk terus untuk kontrak, kompiler dapat menyusun ulang beberapa petunjuk memori, dan panggilan perpustakaan seperti pthread_mutex_lock () merangkum sinkronisasi yang diperlukan.

Memverifikasi konsistensi berurutan adalah diputuskan secara umum, bahkan untuk protokol cache-koherensi terbatas-negara.

Model konsistensi mendefinisikan aturan untuk urutan jelas dan visibilitas update, dan itu adalah sebuah kontinum dengan penjualan.
Ada dua metode untuk menentukan dan mengkategorikan model konsistensi; masalah dan melihat.
Masalah: Metode masalah menjelaskan pembatasan yang mendefinisikan bagaimana proses dapat mengeluarkan operasi.
View: View metode yang mendefinisikan urutan operasi terlihat proses.
Misalnya, model konsistensi dapat menentukan bahwa proses tidak diperbolehkan untuk mengeluarkan sebuah operasi sampai semua operasi yang dikeluarkan sebelumnya selesai.
model konsistensi yang berbeda menegakkan kondisi yang berbeda. Salah satu model Konsistensi dapat dianggap lebih kuat dari yang lain jika memerlukan semua kondisi model itu dan banyak lagi. Dengan kata lain, model dengan kurang kendala dapat dianggap sebagai model konsistensi lemah.
Tipe-tipe memory consistency adalah sebagai berikut :
·         Strict consistency
·          Sequential consistency
·         Causal consistency
·         Processor consistency
·         Cache consistency
·         Slow consistency
·         Release consistency
·         Entry consistency
·         General consistency
·         Local consistency

Branch Prediction pada CPU
            Dalam arsitektur komputer, sebuah prediktor cabang adalah sirkuit digital yang mencoba untuk menebak arah mana cabang (misalnya struktur if-then-else) akan pergi sebelum ini diketahui pasti. Tujuan dari prediktor cabang untuk meningkatkan aliran dalam pipa intruksi. rediktor cabang penting dalam mikroprosesor pipelined hari ini untuk encapai kinerja tinggi. Dua arah percabangan biasanya diimplementasikan dengan instruksi lompat bersyarat. Sebuah lompat bersyarat dapat menjadi "tidak diambil" dan melanjutkan eksekusi dengan cabangpertama dari kode yang mengikuti segera setelah lompat bersyarat - atau dapat "diambil" dan melompat ke tempat yang berbeda di memori program dimana cabang kedua ode adalahdisimpan. Hal ini tidak diketahui secara pasti apakah lompat bersyarat akan diambil atau tidak diambil sampai kondisi telah dihitung dan lompat bersyarat telah lulus tahap eksekusi dalam pipa instruksi. Tanpa prediksi cabang, prosesor harus menunggu sampai instruksi lompat bersyarat telah melewati tahap mengeksekusi sebelum instruksi berikutnya dapat memasuki tahap fetch dalam pipa. Prediktor cabang upaya untuk menghindari pemborosan waktu dengan mencoba untuk menebak apakah lompat bersyarat yang paling mungkin diambil atau tidak diambil. Cabang yang diduga sebagai yang paling mungkin adalah kemudian diambil dan spekulasi dieksekusi. Jika kemudian mendeteksi bahwa salah menebak maka instruksi dieksekusi spekulatif atau sebagian dieksekusi dibuang dan pipa dimulai atas dengan cabang yang benar. Waktu yang terbuang dalam kasus misprediction cabang sama dengan jumlah tahap dalam pipa dari tahap ke tahap fetch mengeksekusi. Mikroprosesor modern cenderung memiliki pipa yang cukup panjang sehingga penundaan misprediction adalah antara 10 dan 20 siklus clock. Semakin lama pipa tinggi kebutuhan untuk prediksi cabang yang baik. Pertama kali instruksi lompat bersyarat ditemui, tidak ada banyak informasi untuk dasar prediksi di. Tapi prediksi cabang menyimpan catatan dari apakah cabang diambil atau tidak diambil. Ketika bertemu dengan lompat bersyarat yang telah melihat beberapa kali sebelum kemudian dapat dasar prediksi pada sejarah masa lalu. Prediktor cabang mungkin, misalnya, mengakui bahwa lompat bersyarat diambil lebih sering daripada tidak, atau bahwa itu adalah diambil setiap kali kedua. Prediksi cabang tidak sama dengan prediksi cabang target.Prediksi cabang upaya untuk menebak apakah lompatan bersyarat akan diambil atau tidak. Cabang prediksi target yang mencoba untuk menebak target lompatan bersyarat atau tanpa syarat diambil sebelum dihitung oleh decoding dan mengeksekusi instruksi itu sendiri. Cabang cabang prediksi dan prediksi target sering dikombinasikan ke dalam sirkuit yang sama.
CISC dan RISC
Pada saat ini ada dua konsep populer yang berhubungan dengan desain CPU dan set instruksi:
1. Complex Instruction Set Computing (CISC).
2. Reduce Instruction Set Computing (RISC).
    Semua sistem yang lama (komputer mainframe, komputer mini atau komputer mikro) relatif mempunyai sistem CISC. Walaupun sistem sekarang terdiri atas kedua jenis tersebut. Sistem RISCsaat ini lebih populer karena tingkat kerjanya, dibandingkan dengan sistem CISC. Namun karena biayanya tinggi, sistem RISC hanya digunakan ketika diperlukan kecepatan khusus, keandalan dan sebagainya.

CISC (Complex Instruction-Set Computer)
          Complex Instruction Set Computer (CISC) adalah sebuah arsitektur dari set instruksi dimana setiap instruksi akan menjalankan beberapa operasi tingkat rendah, seperti pengambilan dari memory, operasi aritmetika, dan penyimpanan ke dalam memory, semuanya sekaligus hanya di dalam sebuah instruksi. Tujuan utama dari arsitektur CISC adalah melaksanakan suatu perintah cukup dengan beberapa baris bahasa mesin sedikit mungkin. Hal ini bisa tercapai dengan cara membuat perangkat keras prosesor mampu memahami dan menjalankan beberapa rangkaian operasi. Untuk tujuan contoh kita kali ini, sebuah prosesor CISC sudah dilengkapi dengan sebuah instruksi khusus, yang kita beri nama MULT. Saat dijalankan, instruksi akan membaca dua nilai dan menyimpannya ke 2 register yag berbeda, melakukan perkalian operan di unit eksekusi dan kemudian mengambalikan lagi hasilnya ke register yang benar.
     Karakteristik CISC yg "sarat informasi" ini memberikan keuntungan di mana ukuran program-program yang dihasilkan akan menjadi relatif lebih kecil, dan penggunaan memory akan semakin berkurang. Karena CISC inilah biaya pembuatan komputer pada saat itu (tahun 1960) menjadi jauh lebih hemat. Memang setelah itu banyak desain yang memberikan hasil yang lebih baik dengan biaya yang lebih rendah, dan juga mengakibatkan pemrograman level tinggi menjadi lebih sederhana, tetapi pada kenyataannya tidaklah selalu demikian.
Contoh-contoh prosesor CISC adalah : System/360, VAX, PDP-11, varian Motorola 68000 , dan CPU AMD dan Intel x86.
CISC mempunyai karakteristrik :
1. Instruksi berukuran tunggal
2. Ukuran yang umum adalah 4 byte. 
3. Jumlah mode pengalamatan data yang sedikit, biasanya kurang dari lima buah. 
4. Tidak terdapat pengalamatan tak langsung. 
5. Tidak terdapat operasi yang menggabungkan operasi load/store dengan operasi aritmetika (misalnya, penambahan dari memori, penambahan ke memori). 

RISC (Reduce Instruction Set Computer)
  RISC Reduced Instruction Set Computingatau "Komputasi set instruksi yang disederhanakan. Merupakan sebuah arsitektur komputer atau arsitektur komputasi modern dengan instruksi-instruksi dan jenis eksekusi yang paling sederhana. Biasanya digunakan pada komputer berkinerja tinggi seperti komputer vektor.
       Bahasa pemprograman memungkinkan programmer dapat mengekspresikan algoritma lebih singkat, lebih memperhatikan rincian, dan mendukung penggunaan pemprograman terstruktur, tetapi ternyata muncul masalah lain yaitu semantic gap, yaitu perbedaan antara operasi-operasi yang disediakan oleh HLL dengan yang disediakan oleh arsitektur komputer, ini ditandai dengan ketidakefisienan eksekusi, program mesin yang berukuran besar,dan kompleksitas kompiler.
Set-set instruksi yang kompleks tersebut dimaksudkan untuk :
1. Memudahkan pekerjaan kompiler
2. Meningkatkan efisiensie ksekusi, karena operasi yang kompleks dapat diimplementasikan didalam mikrokode.
3. Memberikan dukungan bagi HLL yang lebih kompleks dan canggih.

RISC mempunyai karakteristik :
1. One cycle execution time : satu putaran eksekusi.
2. Prosessor RISC mempunyai CPI (clock per instruction) atau waktu per instruksi untuk setiap putaran. Hal ini dimaksud untuk mengoptimalkan setiap instruksi pada CPU.
3. Pipelining  adalah sebuah teknik yang memungkinkan dapat melakukan eksekusi secara simultan. Sehingga proses instruksi lebih efiisien
4. Large number of registers: Jumlah register yang sangat banyak
5. RISC didesain dimaksudkan untuk dapat menampung jumlah register yang sangat banyak untuk mengantisipasi agar tidak terjadi interaksi yang berlebih dengan memory.
6. Rangkaian instruksi built-in pada processor yang terdiri dari perintah-perintah yang lebih ringkas dibandingkan dengan CISC.
7. RISC memiliki keunggulan dalam hal kecepatannya sehingga banyak digunakan untuk aplikasi-aplikasi yang memerlukan kalkulasi secara intensif.

Ø   Perbandingan antara RISC dengan CISC
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGfg_KxMcK7AJPqK8zY6wqWOFV1SxQ4ACads-XUUoaG5_W8I6tcwp7mwoP_ls0DxlobR7QwdgbQNt7yg-vNWFdwlsQgMQhUXJIWIbQVtt_kqulUVT6QJ5AkljLDewuKAiTXAIeVx0ciTI/s1600/ted.png

      Cara sederhana untuk melihat kekurangan dan kelebihan dari CISC dan RISC adalah dengan membandingkannya secara langsung. Pada tahap perbandingan ini dicoba dengan menghitung perkalian dua bilangan dalam memori. Memori tersebut terbagi menjadi beberapa lokasi yang diberi nomor 1(baris): 1 (kolom) hingga 6:4. Unit eksekusi bertanggung-jawab untuk semua operasi komputasi. Namun, unit eksekusi hanya beroperasi untuk data yang sudah disimpan kedalam salah satu dari 6 register (A, B, C, D, Eatau F). Misalnya, kita akan melakukan perkalian (product) dua angka, satu di simpan di lokasi 2:3 sedangkan lainnya di lokasi 5:2, kemudian hasil perkalian tersebut dikembalikan lagi kelokasi 2:3.

1.Menggunakan Pendekatan RISC
       Prosesor RISC hanya menggunakan instruksi-instruksi sederhana yang bisa dieksekusi dalam satu siklus. Dengan demikian, instruksi ‘MULT’ sebagaimana dijelaskan sebelumnya dibagi menjadi tiga instruksi yang berbeda, yaitu“LOAD”, yang digunakan untuk memindahkan data dari memori kedalam register, “PROD”, yang digunakan untuk melakukan operasi produk (perkalian) dua operan yang berada di dalam register (bukan yang ada di memori) dan “STORE”, yang digunakan untuk memindahkan data dari register kembali kememori. Berikut ini adalah urutan instruksi yang harus dieksekusi agar yang terjadi sama dengan instruksi “MULT” pada prosesor RISC (dalam 4 baris bahasa mesin):
LOAD A, 2:3
LOAD B, 5:2
PROD A, B
STORE 2:3, A

2.Menggunakan Pendekatan  CISC
      Tujuan utama dari arsitektur CISC adalah melaksanakan suatu perintah cukup dengan beberapa baris bahasa mesin sedikit mungkin. Hal ini bisa tercapai dengan cara membuat perangkat keras prosesor mampu memahami dan menjalankan beberapa rangkaian operasi.
      Sebuah prosesor CISC sudah dilengkapi dengan sebuah instruksi khusus, yang  diberi nama MULT. Saat dijalankan, instruksi akan membaca dua nilai dan menyimpannya ke 2 register yang berbeda, melakukan perkalian operan di unit eksekusi dan kemudian mengambalikan lagi hasilnya ke register yang benar. Jadi instruksi-nya cukup satu saja.
MULT 2:3, 5:2

CISC
- Penekanan pada perangkat keras (hardware) 
- Termasuk instruksi kompleks multi-clock
- Memori-ke-memori: “LOAD” dan “STORE” saling bekerjasama
- Ukuran kode kecil, kecepatan rendah
- Transistor digunakan untuk menyimpan instruksi-instruksi kompleks
    
RISC
- Penekanan pada perangkat lunak (software)
- Single-clock, hanya sejumlah kecil instruksi
- Register ke register: “LOAD” dan “STORE” adalah instruksi - instruksi terpisah
- Ukuran kode besar, kecepatan (relatif) tinggi
- Transistor banyak dipakai untuk register memori

0 komentar:

Posting Komentar

Instagram

www.instagram.com/alda.aladawiyah

Twitter

@AldaAvibra

Like us