Dalam
ilmu komputer dan teknik , arsitektur komputer adalah seperangkat disiplin yang
menggambarkan sistem komputer dengan menentukan bagian-bagiannya dan hubungan
mereka.
Sebagai
contoh, pada tingkat tinggi, arsitektur komputer mungkin prihatin dengan
bagaimana central processing unit (CPU) bertindak dan bagaimana menggunakan
memori komputer . Beberapa modis (2011) arsitektur komputer termasuk cluster
komputasi dan Non-Uniform Memory Access .
Arsitek
komputer menggunakan komputer untuk merancang komputer baru. Emulation software
dapat menjalankan program yang ditulis dalam satu set instruksi yang diusulkan.
Sedangkan desain sangat mudah untuk mengubah pada tahap ini, compiler desainer
sering berkolaborasi dengan arsitek, menunjukkan perbaikan dalam set instruksi.
Emulator modern mungkin mengukur waktu dalam siklus clock: memperkirakan
konsumsi energi dalam joule, dan memberikan perkiraan yang realistis dari
ukuran kode dalam bytes. Ini mempengaruhi kenyamanan pengguna, kehidupan
baterai, dan ukuran dan biaya terbesar komputer bagian fisik: memorinya.
Artinya, mereka membantu untuk memperkirakan nilai dari sebuah desain komputer.
Tujuannya
adalah untuk merancang sebuah komputer yang memaksimalkan kinerja sambil
menjaga konsumsi daya di cek, biaya relatif rendah untuk jumlah kinerja yang
diharapkan, dan juga sangat handal. Untuk ini, banyak aspek yang harus
dipertimbangkan yang mencakup Instruction Set Desain, Organisasi Fungsional,
Logic Desain, dan Implementasi. Implementasi melibatkan Desain Sirkuit Terpadu,
Packaging, Power, dan Cooling. Optimasi desain membutuhkan keakraban dengan
Compiler, Sistem Operasi Logika Desain dan Kemasan.
Arsitektur set instruksi
Sebuah
set instruksi arsitektur (ISA) adalah antarmuka antara perangkat lunak komputer
dan perangkat keras dan juga dapat dilihat sebagai pandangan programmer mesin.
Komputer tidak mengerti bahasa tingkat tinggi yang memiliki sedikit, jika ada,
unsur-unsur bahasa yang diterjemahkan langsung ke asli mesin itu opcodes .
Sebuah prosesor hanya memahami instruksi dikodekan dalam beberapa mode numerik,
biasanya sebagai bilangan biner . Perangkat lunak, seperti compiler ,
menerjemahkan bahasa tingkat tinggi, seperti C ke dalam instruksi.
Selain
petunjuk, ISA mendefinisikan item dalam komputer yang tersedia untuk
program-misalnya tipe data , register , mode pengalamatan , dan memori. Instruksi
menemukan operan dengan indeks Register (atau nama) dan mode pengalamatan
memori.
ISA
komputer biasanya digambarkan dalam sebuah buku kecil atau pamflet, yang
menjelaskan bagaimana instruksi dikodekan. Juga, mungkin mendefinisikan pendek
(samar-samar) nama mnenonic untuk instruksi. Nama-nama dapat dikenali oleh alat
pengembangan perangkat lunak yang disebut assembler . Assembler adalah sebuah
program komputer yang menerjemahkan bentuk manusia-dibaca dari ISA menjadi
bentuk yang dapat dibaca komputer. Disassemblers juga banyak tersedia, biasanya
dalam debugger , program perangkat lunak untuk mengisolasi dan kerusakan yang
benar dalam program komputer biner.
ISA
bervariasi dalam kualitas dan kelengkapan. Sebuah kompromi yang baik antara
kenyamanan ISA programmer (operasi lagi yang bisa lebih baik), biaya komputer
untuk menafsirkan instruksi (lebih murah lebih baik), kecepatan komputer (lebih
cepat lebih baik), dan ukuran dari kode (lebih kecil lebih baik). Sebagai
contoh, ISA single-instruksi adalah mungkin, murah, dan cepat, (misalnya,
mengurangi dan melompat jika nol. Itu benar-benar digunakan dalam SSEM ), tapi
itu tidak nyaman atau membantu membuat program kecil. Organisasi memori
mendefinisikan bagaimana petunjuk berinteraksi dengan memori, dan juga
bagaimana berbagai bagian dari memori berinteraksi satu sama lain.
Organisasi Komputer
Organisasi
komputer membantu mengoptimalkan produk berbasis kinerja. Sebagai contoh,
perangkat lunak insinyur perlu mengetahui kemampuan pengolahan prosesor. Mereka
mungkin perlu mengoptimalkan software untuk mendapatkan kinerja yang paling
dengan mengorbankan setidaknya. Hal ini dapat memerlukan analisis yang cukup
rinci dari organisasi komputer. Sebagai contoh, dalam sebuah decoder
multimedia, para desainer mungkin perlu untuk mengatur data yang paling untuk
diproses di jalur data tercepat dan berbagai komponen diasumsikan berada di
tempat dan tugas adalah untuk menyelidiki struktur organisasi untuk
memverifikasi bagian komputer beroperasi.
Organisasi
komputer juga membantu merencanakan pemilihan prosesor untuk suatu proyek
tertentu. Proyek multimedia mungkin membutuhkan akses data yang sangat cepat,
sedangkan perangkat lunak pengawasan mungkin perlu menyela cepat. Kadang-kadang
tugas-tugas tertentu memerlukan komponen tambahan juga. Sebagai contoh, sebuah
komputer yang mampu virtualisasi membutuhkan memori virtual hardware sehingga
memori komputer simulasi yang berbeda dapat disimpan terpisah. Organisasi
komputer dan fitur juga mempengaruhi konsumsi daya dan biaya prosesor.
Implementasi
Setelah
set instruksi dan mikro-arsitektur dijelaskan, mesin praktis harus dirancang.
Proses desain ini disebut implementasi. Implementasi biasanya tidak dianggap
definisi arsitektur, melainkan hardware engineering design . Implementasi dapat
lebih dipecah menjadi beberapa (tidak sepenuhnya berbeda) langkah-langkah:
Logika
Pelaksanaan desain blok didefinisikan dalam mikro-arsitektur di (terutama)
dengan tingkat daftar transfer dan gerbang logika tingkat.
Pelaksanaan
sirkuit tidak transistor desain-tingkat elemen dasar (gerbang, multiplexer,
kait dll) serta dari beberapa blok yang lebih besar ( ALUs , cache dll) yang
dapat diimplementasikan pada tingkat ini, atau bahkan (sebagian) pada tingkat
fisik , karena alasan kinerja.
Pelaksanaan
fisik menarik sirkuit fisik. Komponen sirkuit yang berbeda ditempatkan dalam
sebuah chip floorplan atau pada papan dan kabel yang menghubungkan mereka yang
diarahkan.
Desain
Validasi tes komputer secara keseluruhan untuk melihat apakah ia bekerja dalam
segala situasi dan semua timing. Setelah pelaksanaan dimulai, validasi desain
pertama adalah simulasi menggunakan logika emulator. Namun, hal ini biasanya
terlalu lambat untuk menjalankan program-program yang realistis. Jadi, setelah
melakukan koreksi, prototipe yang dibangun menggunakan lapangan-Programmable
Gate Array-( FPGA ). Banyak proyek hobi berhenti pada tahap ini. Langkah
terakhir adalah untuk menguji prototipe sirkuit terpadu. Sirkuit terpadu
mungkin memerlukan beberapa pendesainan ulang untuk memperbaiki masalah.Untuk
CPU , seluruh proses implementasi sering disebut desain CPU .
Tujuan desain
Bentuk
yang tepat dari sebuah sistem komputer tergantung pada kendala dan tujuan.
Arsitektur komputer biasanya trade off standar, kekuasaan versus kinerja,
biaya, kapasitas memori, latency (latency adalah jumlah waktu yang dibutuhkan
untuk informasi dari satu node untuk melakukan perjalanan ke sumber) dan
throughput. Kadang-kadang pertimbangan lain, seperti fitur, ukuran, berat,
keandalan, dan upgrade juga faktor.
Skema
yang paling umum tidak dalam analisis mendalam daya dan angka keluar bagaimana
untuk menjaga konsumsi daya yang rendah, sambil mempertahankan kinerja yang
memadai.
Kinerja
Kinerja
komputer modern sering digambarkan di MIPS per MHz (jutaan instruksi per jutaan
siklus clock speed ). Ini mengukur efisiensi arsitektur pada setiap clock
speed. Karena jam lebih cepat dapat membuat komputer yang lebih cepat, ini
adalah, pengukuran diterapkan secara luas berguna. Komputer bersejarah memiliki
MIPS / MHz serendah 0,1 (Lihat instruksi per detik ). Prosesor modern sederhana
mudah mencapai mendekati 1. Superscalar prosesor bisa mencapai 3-5 dengan
mengeksekusi beberapa instruksi per clock cycle. Multicore dan vektor CPU
pengolahan dapat berkembang biak ini lebih lanjut dengan bertindak pada banyak
data per instruksi, yang memiliki beberapa CPU mengeksekusi secara paralel.
Menghitung
instruksi bahasa mesin akan menyesatkan karena mereka bisa melakukan sejumlah
pekerjaan yang bervariasi dalam ISA yang berbeda. The "instruksi"
dalam pengukuran standar tidak hitungan instruksi bahasa mesin ISA yang
sebenarnya, tetapi unit sejarah pengukuran, biasanya didasarkan pada kecepatan
VAX arsitektur komputer.
Secara
historis, banyak orang mengukur kecepatan komputer dengan clock rate (biasanya
dalam MHz atau GHz). Hal ini mengacu pada siklus per detik dari jam utama CPU.
Namun, metrik ini agak menyesatkan, sebagai mesin dengan tingkat clock yang
lebih tinggi belum tentu memiliki kinerja yang lebih tinggi. Akibatnya produsen
telah pindah dari clock speed sebagai ukuran kinerja.
Faktor-faktor
lain mempengaruhi kecepatan, seperti campuran unit fungsional , bus kecepatan,
memori yang tersedia, dan jenis dan urutan instruksi dalam program yang
dijalankan.
Dalam
komputer rumah khas, sederhana, cara yang paling dapat diandalkan untuk
mempercepat kinerja biasanya untuk menambahkan random access memory (RAM). RAM
lebih meningkatkan kemungkinan bahwa diperlukan data atau program dalam
RAM-sehingga sistem ini cenderung tidak perlu memindahkan data memori dari
disk. Disk sering sepuluh ribu kali lebih lambat dari RAM karena memiliki
bagian mekanik yang harus bergerak untuk mengakses data.
Ada
dua jenis utama dari kecepatan, latency dan throughput. Latency adalah waktu
antara awal dari suatu proses dan selesai. Throughput adalah jumlah kerja yang
dilakukan per satuan waktu. Interrupt latency adalah dijamin waktu respon
maksimum sistem untuk acara elektronik (misalnya ketika disk drive selesai
memindahkan beberapa data).
Kinerja
dipengaruhi oleh rentang yang sangat luas dari pilihan desain - misalnya,
pipelining prosesor biasanya membuat latency buruk (lambat) tetapi membuat
throughput yang lebih baik. Komputer yang mengontrol mesin biasanya perlu
latency interrupt rendah. Komputer-komputer ini beroperasi dalam real-time
lingkungan dan gagal jika operasi tidak selesai dalam waktu tertentu. Misalnya,
rem anti-lock yang dikendalikan komputer harus dimulai pengereman dalam diprediksi,
waktu yang singkat setelah pedal rem dirasakan.
Kinerja
komputer dapat diukur dengan menggunakan metrik lainnya, tergantung pada domain
aplikasi. Suatu sistem dapat CPU terikat (seperti dalam perhitungan numerik), I
/ O terikat (seperti dalam aplikasi webserving) atau memori terikat (seperti
dalam video editing). Konsumsi daya telah menjadi penting dalam server dan
perangkat portabel seperti laptop.
Benchmarking
mencoba untuk mengambil semua faktor-faktor ini dengan mengukur waktu komputer
yang diperlukan untuk menjalankan melalui serangkaian program uji. Meskipun
benchmarking menunjukkan kekuatan, mungkin tidak membantu seseorang untuk
memilih komputer. Seringkali mesin diukur dibagi pada ukuran yang berbeda.
Misalnya, satu sistem bisa menangani aplikasi ilmiah dengan cepat, sementara
yang lain mungkin memainkan video game populer lebih lancar. Selain itu,
desainer dapat menambahkan fitur khusus untuk produk mereka, dalam perangkat
keras atau perangkat lunak, yang memungkinkan patokan tertentu untuk
mengeksekusi cepat tetapi tidak menawarkan keuntungan yang mirip dengan
tugas-tugas umum.
Tidak ada komentar:
Posting Komentar