Arsitektur komputer
Dalam bidang teknik komputer, arsitektur komputer adalah konsep perencanaan dan struktur pengoperasian dasar dari suatu sistem komputer. Arsitektur komputer ini merupakan rencana cetak-biru dan deskripsi fungsional dari kebutuhan bagian perangkat keras yang didesain (kecepatan proses dan sistem interkoneksinya). Dalam hal ini, implementasi perencanaan dari masing–masing bagian akan lebih difokuskan terutama, mengenai bagaimana CPU akan bekerja, dan mengenai cara pengaksesan data dan alamat dari dan ke memori cache, RAM, ROM, cakram keras, dll). Beberapa contoh dari arsitektur komputer ini adalah arsitektur von Neumann, CISC, RISC, blue Gene, dll.
Arsitektur komputer juga dapat didefinisikan dan dikategorikan sebagai ilmu dan sekaligus seni mengenai cara interkoneksi komponen-komponen perangkat keras untuk dapat menciptakan sebuah komputer yang memenuhi kebutuhan fungsional, kinerja, dan target biayanya.
Arsitektur komputer ini paling tidak mengandung 3 sub-kategori:
- Set instruksi (ISA)
- Arsitektur mikro dari ISA, dan
- Sistem desain dari seluruh komponen dalam perangkat keras komputer ini.
Riwayat
Arsitektur komputer yang didokumentasikan pertama adalah dalam korespondensi antara Charles Babbage dan Ada Lovelace, menggambarkan mesin analitis. Ketika membangun komputer Z1 pada tahun 1936, Konrad Zuse menjelaskan dalam dua aplikasi paten untuk proyek masa depannya bahwa instruksi mesin dapat disimpan dalam penyimpanan yang sama yang digunakan untuk data, yaitu konsep program yang tersimpan. Dua contoh awal dan penting lainnya adalah:
- Makalah John von Neumann tahun 1945, Draft Pertama Laporan tentang EDVAC, yang menggambarkan organisasi elemen logis; dan
- Kalkulator Elektronik Usulan Alan Turing yang lebih rinci untuk Mesin Komputasi Otomatis, juga 1945 dan yang mengutip karya John von Neumann.
Istilah "arsitektur" dalam literatur komputer dapat ditelusuri ke karya Lyle R. Johnson, Frederick P. Brooks, Jr., dan Mohammad Usman Khan, semua anggota departemen Mesin Organisasi di pusat penelitian utama IBM pada tahun 1959. Johnson memiliki kesempatan untuk menulis komunikasi riset kepemilikan tentang Stretch, superkomputer yang dikembangkan IBM untuk Los Alamos National Laboratory (pada saat itu dikenal sebagai Los Alamos Scientific Laboratory). Untuk menggambarkan tingkat detail untuk mendiskusikan komputer yang dihias dengan mewah, ia mencatat bahwa deskripsi format, jenis instruksi, parameter perangkat keras, dan peningkatan kecepatan berada pada level "arsitektur sistem" - sebuah istilah yang sepertinya lebih berguna daripada "organisasi mesin . ”
Selanjutnya, Brooks, seorang perancang Stretch, memulai Bab 2 dari sebuah buku (Merencanakan Sistem Komputer: Peregangan Proyek, ed. W. Buchholz, 1962) dengan menulis,
arsitektur komputer, seperti arsitektur lainnya, adalah seni menentukan kebutuhan pengguna struktur dan kemudian merancang untuk memenuhi kebutuhan tersebut seefektif mungkin dalam kendala ekonomi dan teknologi.
Brooks melanjutkan untuk membantu mengembangkan jajaran komputer IBM System / 360 (sekarang disebut IBM zSeries), di mana "arsitektur" menjadi kata benda yang mendefinisikan "apa yang perlu diketahui pengguna". Kemudian, pengguna komputer menggunakan istilah ini dengan banyak cara yang kurang eksplisit.
Arsitektur komputer paling awal dirancang di atas kertas dan kemudian secara langsung dibangun ke dalam bentuk perangkat keras akhir. Kemudian, prototipe arsitektur komputer secara fisik dibangun dalam bentuk logika transistor-transistor (TTL) komputer-seperti prototipe 6800 dan PA-RISC-diuji, dan tweak, sebelum melakukan ke bentuk perangkat keras akhir. Pada 1990-an, arsitektur komputer baru biasanya "dibangun", diuji, dan di-tweak — di dalam beberapa arsitektur komputer lain dalam simulator arsitektur komputer; atau di dalam FPGA sebagai mikroprosesor lunak; atau keduanya — sebelum berkomitmen ke bentuk perangkat keras akhir.
Subkategori
Disiplin arsitektur komputer memiliki tiga subkategori utama:
1. Arsitektur Set Instruksi, atau ISA. ISA mendefinisikan kode mesin yang dibaca dan bertindak oleh prosesor serta ukuran kata, mode alamat memori, register prosesor, dan tipe data.
2. Arsitektur mikro, atau organisasi komputer menggambarkan bagaimana prosesor tertentu akan menerapkan ISA. [14] Ukuran cache CPU komputer misalnya, adalah masalah yang umumnya tidak ada hubungannya dengan ISA.
3. Desain Sistem mencakup semua komponen perangkat keras lainnya dalam sistem komputasi. Ini termasuk:
1. Pemrosesan data selain CPU, seperti akses memori langsung (DMA).
2. Masalah lain seperti virtualisasi, multiprocessing, dan fitur perangkat lunak.
Ada jenis arsitektur komputer lainnya. Jenis berikut digunakan di perusahaan besar seperti Intel, dan dihitung untuk 1% dari semua arsitektur komputer
- Macroarchitecture: lapisan arsitektur lebih abstrak daripada arsitektur mikro
- Arsitektur Set Instruksi Majelis (ISA): Perakit cerdas dapat mengkonversi bahasa assembly abstrak yang umum ke sekelompok mesin menjadi bahasa mesin yang sedikit berbeda untuk implementasi yang berbeda
- Programmer Visible Macroarchitecture: alat bahasa tingkat yang lebih tinggi seperti compiler s dapat mendefinisikan antarmuka yang konsisten atau kontrak untuk programmer menggunakan mereka, mengabstraksikan perbedaan antara ISA yang mendasari, UISA, dan mikroarsitektur s. Misalnya. C, C ++, atau Java mendefinisikan standar Programmer Visible Macroarchitecture yang berbeda.
- UISA (Arsitektur Instruksi Set Microcode) —sebuah kelompok mesin dengan arsitektur tingkat perangkat keras yang berbeda dapat berbagi arsitektur mikrokoda umum, dan karenanya UISA. Templat:Kutipan diperlukan
- Arsitektur Pin: Fungsi perangkat keras yang harus mikroprosesor sediakan untuk platform perangkat keras, misalnya, x86 pin A20M, FERR / IGNNE atau FLUSH. Juga, pesan yang harus dipancarkan oleh prosesor sehingga cache eksternal dapat dibatalkan (dikosongkan). Fungsi arsitektur Pin lebih fleksibel daripada fungsi ISA karena perangkat keras eksternal dapat beradaptasi dengan pengkodean baru, atau mengubah dari pin ke pesan. Istilah "arsitektur" cocok, karena fungsi harus disediakan untuk sistem yang kompatibel, meskipun metode detailnya berubah.
Peran
Definisi
Tujuannya adalah untuk merancang komputer yang memaksimalkan kinerja sambil menjaga konsumsi daya di cek, biaya rendah dibandingkan dengan jumlah kinerja yang diharapkan, dan juga sangat dapat diandalkan. Untuk ini, banyak aspek yang harus dipertimbangkan yang mencakup desain set instruksi, organisasi fungsional, desain logika, dan implementasi. Implementasinya melibatkan desain sirkuit terpadu, pengemasan, daya, dan pendinginan. Optimasi desain membutuhkan keakraban dengan kompiler, sistem operasi untuk desain logika, dan pengemasan.