Kamis, 11 Juni 2009

Superscalar Processor

Ø Superscalar

superscalar CPU arsitektur menerapkan suatu bentuk paralel disebut-tingkat instruksi paralel dalam satu prosesor. Ia sehingga memungkinkan lebih cepat CPU akan dibandingkan Throughput lain mungkin pada jam yang sama menilai. Sebuah prosesor superscalar melaksanakan lebih dari satu instruksi selama satu jam secara bersamaan dengan siklus dispatching beberapa petunjuk ke membazir fungsional unit pada prosesor. Setiap unit fungsional tidak terpisah CPU inti, tetapi sebuah sumber daya eksekusi dalam satu CPU seperti aritmetika logis unit, sedikit Shifter, atau kelipatan.

Sementara superscalar CPU biasanya juga pipelined, mereka adalah dua teknik peningkatan kinerja yang berbeda. Hal ini secara teoritis memungkinkan untuk mendapatkan non-pipelined superscalar CPU atau pipelined non-superscalar CPU.

Teknik superscalar yang secara tradisional terkait dengan mengidentifikasi beberapa karakteristik. Catatan ini diterapkan dalam suatu CPU inti.

• Instruksi yang dikeluarkan dari berurutan instruksi streaming

• CPU hardware secara dinamis untuk memeriksa dependensi data antara petunjuk berjalan di waktu (versus perangkat lunak memeriksa di waktu kompilasi)

• Terima petunjuk beberapa jam per siklus

B

Sederhana superscalar pipa. Dengan mengambil dua dispatching dan petunjuk sekaligus, maksimal dua instruksi per siklus dapat diselesaikan.

C

Processor papan yang CRAY T3e supercomputer dengan empat prosesor superscalar Alpha 21164

Sejarah

Seymour Cray's CDC 6600 dari 1965 sering disebut sebagai pertama superscalar desain. Intel i960CA (1988) dan seri AMD 29000-29050 (1990) mikro yang komersial pertama chip tunggal superscalar mikro. CPU RISC seperti ini membawa konsep superscalar untuk mikro komputer RISC karena hasil desain yang sederhana inti, agar mudah instruksi dispatch dan keterlibatan beberapa unit fungsional (seperti ALUs) pada satu CPU dalam rancangan peraturan yang terpaksa waktu. Ini adalah alasan yang RISC desain yang lebih cepat dari CISC desain melalui ke dalam tahun 1980-an dan 1990-an.

Kecuali untuk digunakan dalam beberapa CPU-daya baterai perangkat, pada dasarnya semua tujuan-CPU umum dikembangkan sejak 1998 adalah superscalar. Diawali dengan "P6" (Pentium Pro dan Pentium II) pelaksanaan, Intel x86 arsitektur mikro yang telah menerapkan CISC pada set instruksi RISC superscalar mikro. Kompleks petunjuk yang diterjemahkan secara internal ke-RISC seperti "micro-ops" set instruksi RISC, prosesor yang memungkinkan untuk mengambil keuntungan dari performa yang lebih tinggi-prosesor yang melandasi tetap kompatibel dengan prosesor Intel sebelumnya.

Dari skalar untuk superscalar

Prosesor yang paling sederhana adalah skalar prosesor. Setiap instruksi dijalankan oleh prosesor skalar manipulates biasanya satu atau dua item data sekaligus. Sebaliknya, setiap instruksi yang dijalankan oleh prosesor vector beroperasi secara simultan pada banyak data item. Sebuah analogi adalah perbedaan antara skalar dan vector aritmatika. Sebuah prosesor superscalar adalah jenis campuran ke dua. Setiap instruksi proses data satu item, namun ada beberapa fungsional berlebihan dalam setiap unit CPU sehingga beberapa petunjuk dapat memproses data terpisah item serentak.

Superscalar desain CPU menekankan peningkatan instruksi memberangkatkan akurasi, dan mengoperasikannya menyimpan beberapa unit fungsional digunakan setiap waktu. Hal ini menjadi semakin penting ketika jumlah unit meningkat. Sementara awal superscalar CPU akan memiliki dua ALUs dan satu fpu, desain yang modern seperti PowerPC 970 mencakup empat ALUs, dua FPUs, dan dua unit SIMD. Jika memberangkatkan adalah menjaga tidak efektif di semua unit bosan dengan petunjuk, kinerja sistem akan menderita.

A superscalar prosesor biasanya sustains yang menilai pelaksanaan melebihi satu instruksi per siklus mesin. Tetapi hanya memproses beberapa instruksi serentak tidak membuat sebuah arsitektur superscalar, sejak pipelined, multiprocessor atau multi-inti yang mencapai arsitektur juga, tetapi dengan metode yang berbeda.

Dalam superscalar CPU yang memberangkatkan bacaan instruksi dari memori dan memutuskan mana yang dapat dijalankan secara paralel, dispatching mereka ke membazir unit fungsional yang terdapat di dalam satu CPU. Oleh karena itu prosesor superscalar dapat envisioned memiliki beberapa pipa paralel, yang masing-masing adalah instruksi pemrosesan secara simultan dari sebuah instruksi benang.

Keterbatasan

Tersedia dari peningkatan kinerja superscalar teknik dibatasi oleh dua bidang utama:

• Tingkat dari hakiki paralel dalam instruksi streaming, yakni terbatasnya jumlah instruksi level parallelism, dan

• Kompleksitas waktu dan biaya yang terkait memberangkatkan dan ketergantungan memeriksa logika.

Binari yang ada telah dijalankan program tahap hakiki paralel. Dalam beberapa kasus petunjuk tidak tergantung pada satu sama lain dan dapat dijalankan secara bersamaan. Dalam kasus lain mereka yang antar-tergantung: satu instruksi dampak baik sumber daya atau hasil lainnya. Petunjuk yang = b + c; d = e + f dapat berjalan secara bersamaan karena tidak ada yang bergantung pada hasil perhitungan lain. Namun, petunjuk yang = b + c; d = a + f mungkin tidak akan runnable secara paralel, tergantung pada urutan petunjuk yang lengkap saat mereka bergerak melalui unit.

Bila jumlah yang dikeluarkan secara simultan petunjuk meningkat, biaya memeriksa dependensi meningkat sangat pesat. Hal ini diperparah oleh kebutuhan untuk memeriksa dependensi di waktu dan menjalankan di CPU jam menilai. Ini termasuk biaya tambahan gerbang logika diperlukan untuk melaksanakan pemeriksaan, dan waktu tunda yang melalui pintu. Penelitian menunjukkan pintu gerbang biaya dalam beberapa kasus dapat NK pintu, dan biaya keterlambatan k2logn, dimana n adalah jumlah instruksi pada prosesor's set instruksi, dan k adalah jumlah bersamaan menurunkan petunjuk. Dalam matematika, ini disebut sebagai combinatoric masalah melibatkan permutations.

Meski mungkin berisi instruksi streaming tidak antar-instruksi dependensi, superscalar CPU yang sebenarnya harus memeriksa bahwa kemungkinan, karena tidak ada jaminan lain dan kegagalan untuk mendeteksi suatu dependensi akan menghasilkan hasil yang salah.

Tidak peduli bagaimana lanjutan proses yang semikonduktor atau cara cepat kecepatan yang berpindah, ini tempat yang praktis membatasi berapa petunjuk dapat menurunkan secara bersamaan. Meskipun proses kemajuan akan mengijinkan pernah lebih besar jumlah unit fungsional (misalnya, ALUs), beban instruksi memeriksa dependensi sehingga tumbuh pesat yang dicapai superscalar dispatch batas relatif kecil. - Kemungkinan pada urutan lima hingga enam secara bersamaan menurunkan petunjuk.

Namun akhirnya tak terhingga cepat memeriksa ketergantungan pada logika konvensional yang lain superscalar CPU, jika instruksi streaming itu sendiri memiliki banyak dependensi, ini juga akan membatasi speedup mungkin. Dengan demikian tingkat hakiki paralel dalam kode streaming bentuk kedua keterbatasan.

Alternatif

Secara kolektif, kedua batas berkendara investigasi ke alternatif arsitektur meningkatkan kinerja seperti Long Sangat Instruksi Word (VLIW), secara paralel Instruksi Computing (EPIC), serentak multithreading (SMT), dan multi-core.

Dengan VLIW, tugas yang memberatkan ketergantungan memeriksa hardware dengan logika berjalan di waktu akan dihapus dan didelegasikan kepada compiler. Instruksi secara paralel Computing (EPIC) adalah seperti VLIW, dengan tambahan cache prefetching petunjuk.

Serentak multithreading, sering disingkat sebagai SMT, adalah teknik untuk meningkatkan efisiensi superscalar CPU. SMT izin dari beberapa rangkaian independen untuk pelaksanaan lebih baik memanfaatkan sumber daya yang disediakan oleh prosesor arsitektur modern.

Superscalar berbeda dari prosesor multi-core yang berlebihan di unit fungsional tidak seluruh prosesor. Satu prosesor terdiri dari halus-halus unit fungsional seperti ALU, kelipatan bulat, bulat Shifter, floating point unit, dll Mungkin ada beberapa versi dari masing-masing unit fungsional untuk memungkinkan pelaksanaan banyak instruksi secara paralel. Ini berbeda dari multicore CPU yang serentak proses instruksi dari beberapa rangkaian, satu per benang inti. Ia juga berbeda dari pipelined CPU, dimana beberapa instruksi dapat dilakukan serentak di berbagai tahapan pelaksanaan, assembly-line mode.

Berbagai alternatif teknik tidak saling eksklusif-mereka dapat (dan sering adalah) digabungkan dalam satu prosesor. Dengan demikian yang multicore CPU dapat di mana masing-masing inti adalah independen prosesor berisi beberapa pipa paralel, masing-masing pipa yang superscalar. Beberapa prosesor juga termasuk vector kemampuan.

Superscalar VS Pipelining

Superscalar adalah arsitektur prosessor yang memungkinkan eksekusi yang bersamaan (parallel) dari instruksi yang banyak pada tahap pipeline yang sama sebaik tahap pipeline yang lain.

Pipeline sendiri adalah meningkatkan kinerja komputer dengan cara saling overlap tahapan dari instruksi yang berbeda.

Superscalar mampu menjlankan Instruction Level Parallelism dengan satu prosesor. Superscalar dapat diaplikasikan di RISC dan CISC, tapi pada umumnya RISC.

Pada pipenline untuk melakukan proses (stages) overlapping dibutuhkan paling tidak setengah clock. Sedangkan superscalar mengijinkan proses untuk bekerja secara bersamaan pada saat clock yang sama.

Superscalar VS Superpipeline

Contoh CPU yang telah menerapkan arsitektur superscalar :
Intel Processors

486, Pentium, Pentium Pro

Superscalar Processor Design

Use PowerPC 604 as case study

Speculative Execution, Register Renaming, Branch Prediction

More Superscalar Examples

MIPS R10000

DEC Alpha 21264

Berikut perbandingan superscalar dengan system i386

Cycles Per Instruction

Instruction Type 386 Cycles 486 Cycles
Load 4 1
Store 2 1
ALU 2 1
Jump taken 9 3
Jump not taken 3 1
Call 9 3

Superscalar dapat mengeksekusi instruksi 1 (I1) dan instruksi 2 (I2) secara pararel dengan syarat

Keduanya instruksi yang sederhana

I1 tidak melakukan proses jump

Tujuan (destination) dari I1 bukan sumber (source) dari I2

Tujaun (destinition) dari I1 bukan tujuan (destination) dari I2

Jika kondisi diatas tidak dapat dipenuhi

I1 melakukan proses U-pipe

I2 dijalankan di cycle berikutnya.

Sabtu, 16 Mei 2009

Terjemahan / Translate tugas

Set Intruksi : Karakteristik dan Fungsi
Modul Oleh : Nguyen Thi Hoang Lan

Ringkasan : Modul ini berisi set intruksi, fungsi,jenis operand serta operasi. Modul ini lebih fokus pada Set Intruksi : Karakteristik dan Fungsi.

Karakteristik Intruksi Mesin
Apakah Set Intruksi itu?
Menurut pandangan perancang, Set Intruksi mesin menyediakan syarat-syarat fungsi dari CPU: CPU melaksanakan tugas yang mempunyai bagian yang sangat luas meliputi pelaksanaan Set Intruksi mesin. Menurut pandangan pengguna yang memilih program dalam bahasa mesin (sebenarnya, dalam bahasa assembly) dapat mengetahui bagian register dalam struktur memori, tipe-tipe data yang langsung di support oleh mesin dan difungsikan oleh ALU.

Bagian-bagian dari Intruksi

Setiap intruksi harus mempunyai elemen-elemen yang berisi informasi yang dibutuhkan oleh CPU untuk dieksekusi. Elemen-elemen ini antara lain:
  • Kode Operasi : Operasi yang dibentuk secara spesifik (misalnya: ADD,I/O). Operasi ini ditentukan oleh kode binary yang dikenal dengan kode operasi atau opcode.
  • Sumber referensi operand: Operasi ini mungkin terdiri dari satu atau lebih sumber operand. yaitu operand yang merupakan input dari suatu operasi.
  • Referensi hasil operand: Operasi ini kemungkinan menghasilkan sebuah bukti ( hasil ).
  • Referensi Intruksi selanjutnya: Referensi ini menginformasikan kepada CPU,dimana pengambilan instruksi selanjutnya dilakukan setelah eksekusi dari instruksi ini lengkap.
Instruksi selanjutnya bisa di ambil dari lokasi memory utama atau, dalam hal ini sebuah virtual memory system didalam memory utama atau memory kedua (disk). Pada banyak kasus, pengambilan instruksi selanjutnya mengikuti arus/alur instruksi. Pada kasus itu tidak ada referensi yang tegas/eksplisit untuk instruksi selanjutnya. Sumber dan hasil operand bisa pada satu atau tiga daerah.
  • Vertual memory (memory utama) : seperti referensi instruksi selanjutnya, alamat memory utama harus di sediakan.
  • Register CPU: Dengan pengecualian yang jarang terjadi, sebuah CPU terdiri dari satu atau lebih register yang dijadikan referensi oleh instruksi mesin. Jika hanya terdapat satu register, referensinya mungkin bisa secara implisit/tersembunyi. Jika terdapat lebih dari satu register kemudian setiap register berisi sebuah nomor-nomor unik dan instruksi harus berisi nomor-nomor yang di inginkan register.
  • Perlengkapan I/O: Instruksi harus spesifik terdiri dari modul atau perlengkapan operasi. Jika memory I/O digunakan, ini hanya alamat virtual memory atau alamat memory utama yang lain yang menunjuk.
Diagram Status Peredaran Intruksi
[qrib.JPG]


Kamis, 14 Mei 2009

tugas arkom II.1

Instruction Set: Characteristics and Functions
Module by: Nguyen Thi Hoang Lan

Summary: This module present the intruction set, the functions, the types of operands and of operations. The module focuses on the Instruction Set: Characteristics and Functions.

Machine Instruction Characteristics

What is an Instruction Set?

From the designer's point of view, the machine instruction set provides the functional requirements for the CPU: Implementing the CPU is a task that in large part involves implementing the machine instruction set. From the user's side, the user who chooses to program in machine language (actually, in assembly language) becomes aware of the register and memory structure, the types of data directly supported by the machine, and the functioning of the ALU.

Elements of an Instruction

Each instruction must have elements that contain the information required by the CPU for execution. These elements are as follows

* Operation code: Specifies the operation to be performed (e.g.. ADD, I/O). The operation is specified by a binary code, known as the operation code, or opcode.
* Source operand reference: The operation may involve one or more source operands, that is, operands that are inputs for the operation.
* Result operand reference: The operation may produce a result.
* Next instruction reference: This tells the CPU where to fetch the next instruc­tion after the execution of this instruction is complete.

The next instruction to be fetched is located in main memory or, in the case of a virtual memory system, in either main memory or secondary memory (disk). In most cases, the next instruction to be fetched immediately follows the current instruction. In those cases, there is no explicit reference to the next instruction. Source and result operands can be in one of three areas:

* Main or virtual memory: As with next instruction references, the main or vir­tual memory address must be supplied.
* CPU register: With rare exceptions, a CPU contains one or more registers that may be referenced by machine instructions. If only one register exists, reference to it may be implicit. If more than one register exists, then each register is assigned a unique number, and the instruction must contain the number of the desired register.
* I/O device: The instruction must specify (he I/O module and device for the operation. If memory-mapped I/O is used, this is just another main or virtual memory address.


Instruction Cycle State Diagram

Figure 1

Rabu, 13 Mei 2009

Info Ringan

Hanya sekedar informasi,buat teman-teman semua dan bagi siapapun yang ingin mendapatkan info lowongan kerja serta info mengenai ketenagakerjaan ( berita tentang ketenagakerjaan maupun ingin mengetahui data ketenagakerjaan ) baik secara nasional maupun daerah silakan anda klik di www.infokerja.web.id