Minggu, 28 September 2014

Arsitektur Harvard



Arsitektur Harvard adalah arsitektur komputer dengan fisik terpisah penyimpanan dan sinyal jalur untuk instruksi dan data. Istilah ini berasal dari Harvard Mark I komputer berbasis relay, yang disimpan petunjuk pada pita menekan (24 bit lebar) dan data dalam counter elektro-mekanis. Mesin-mesin awal memiliki penyimpanan data seluruhnya terkandung dalam central processing unit , dan tidak memberikan akses ke penyimpanan instruksi sebagai data. Program perlu dimuat oleh operator; prosesor tidak bisa booting sendiri.
Saat ini, sebagian besar prosesor menerapkan jalur sinyal yang terpisah tersebut untuk alasan kinerja tetapi sebenarnya menerapkan arsitektur Harvard dimodifikasi , sehingga mereka dapat mendukung tugas-tugas seperti memuat program dari penyimpanan disk sebagai data dan kemudian dijalankan. 

Rincian memori
Dalam arsitektur Harvard, tidak perlu untuk membuat dua memori berbagi karakteristik. Secara khusus, kata lebar, waktu, penerapan teknologi, dan alamat memori struktur bisa berbeda. Dalam beberapa sistem, instruksi dapat disimpan dalam read-only memory sementara memori data umumnya memerlukan baca-tulis memori . Dalam beberapa sistem, ada lebih banyak memori instruksi dari memori data sehingga alamat instruksi yang lebih lebar dari alamat data.
Kontras dengan arsitektur von Neumann
Dalam murni arsitektur von Neumann yang CPU dapat berupa membaca instruksi atau data membaca / menulis dari / ke memori. Keduanya tidak dapat terjadi pada saat yang sama sejak instruksi dan data menggunakan sistem bus yang sama. Dalam komputer menggunakan arsitektur Harvard, CPU dapat baik membaca instruksi dan melakukan akses data memori pada saat yang sama, bahkan tanpa cache. Sebuah arsitektur komputer Harvard sehingga bisa lebih cepat untuk kompleksitas rangkaian diberikan karena instruksi menjemput dan akses data tidak bersaing untuk memori jalur tunggal.
Juga, mesin arsitektur Harvard memiliki kode dan data alamat ruang yang berbeda: Alamat instruksi nol tidak sama dengan data alamat nol. Alamat Instruksi nol mungkin mengidentifikasi nilai dua puluh empat bit, sedangkan data alamat nol mungkin menunjukkan byte delapan bit yang bukan bagian dari itu nilai dua puluh empat bit.
Kontras dengan modifikasi Harvard arsitektur
Arsitektur Harvard diubah mesin sangat banyak seperti mesin arsitektur Harvard, tetapi melemaskan pemisahan yang ketat antara instruksi dan data sementara masih membiarkan CPU secara bersamaan mengakses dua (atau lebih) bus memori. Modifikasi yang paling umum termasuk terpisah instruksi dan data cache yang didukung oleh address space yang sama. Sementara CPU mengeksekusi dari cache, ia bertindak sebagai mesin Harvard murni. Ketika mengakses memori dukungan, itu bertindak seperti mesin von Neumann (di mana kode dapat dipindahkan sekitar seperti data, yang merupakan teknik yang kuat). Modifikasi ini tersebar luas di prosesor modern seperti arsitektur ARM dan x86 prosesor. Kadang-kadang longgar disebut arsitektur Harvard, mengabaikan fakta bahwa itu benar-benar "diubah".
Modifikasi lainnya menyediakan jalur antara memori instruksi (seperti ROM atau flash) dan CPU untuk memungkinkan kata-kata dari memori instruksi harus diperlakukan sebagai read-only data. Teknik ini digunakan dalam beberapa mikrokontroler, termasuk Atmel AVR . Hal ini memungkinkan data konstan, seperti string teks atau tabel fungsi, untuk diakses tanpa terlebih dahulu harus disalin ke dalam memori data, melestarikan langka (dan haus kekuasaan) memori data untuk membaca / menulis variabel. Khusus instruksi bahasa mesin yang tersedia untuk membaca data dari memori instruksi. (Ini berbeda dari instruksi yang sendiri menanamkan data konstan, meskipun untuk konstanta individu dua mekanisme dapat menggantikan satu sama lain.)

Kecepatan
Dalam beberapa tahun terakhir, kecepatan CPU telah tumbuh berkali-kali dibandingkan dengan kecepatan akses memori utama. Perawatan harus diambil untuk mengurangi jumlah kali memori utama diakses untuk mempertahankan kinerja. Jika, misalnya, setiap instruksi dijalankan dalam CPU memerlukan akses ke memori, keuntungan komputer tidak untuk meningkatkan kecepatan CPU-masalah disebut sebagai "memori terikat".
Hal ini dimungkinkan untuk membuat memori yang sangat cepat tapi ini hanya praktis untuk sejumlah kecil memori untuk biaya, tenaga dan routing sinyal alasan. Solusinya adalah untuk menyediakan sejumlah kecil memori yang sangat cepat yang dikenal sebagai CPU cache yang menyimpan data yang baru diakses. Selama data yang perlu CPU dalam cache, kinerja yang jauh lebih tinggi daripada ketika cache harus mendapatkan data dari memori utama.
Internal vs eksternal desain
Kinerja tinggi desain chip CPU modern menggabungkan aspek kedua Harvard dan arsitektur von Neumann. Secara khusus, "tembolok split" versi arsitektur Harvard termodifikasi sangat umum. CPU memori cache dibagi menjadi cache instruksi dan data cache. Arsitektur Harvard digunakan sebagai CPU mengakses cache. Dalam kasus cache miss, bagaimanapun, data diambil dari memori utama, yang tidak secara resmi dibagi menjadi beberapa bagian instruksi dan data terpisah, meskipun mungkin memiliki kontroler memori yang terpisah digunakan untuk akses bersamaan ke RAM, ROM dan (NOR ) memori flash.
Jadi, sementara arsitektur von Neumann terlihat dalam beberapa konteks, seperti ketika data dan kode datang melalui memory controller yang sama, implementasi hardware keuntungan efisiensi dari arsitektur Harvard cache mengakses dan setidaknya beberapa memori akses utama.
Selain itu, CPU sering memiliki write buffer yang memungkinkan CPU melanjutkan setelah menulis ke daerah non-cache. The von Neumann sifat memori kemudian terlihat ketika instruksi ditulis sebagai data oleh CPU dan perangkat lunak harus memastikan bahwa cache (data dan instruksi) dan menulis penyangga disinkronisasi sebelum mencoba untuk menjalankan instruksi tersebut hanya ditulis.

Penggunaan modern dari arsitektur Harvard
Keuntungan utama dari Harvard murni Akses arsitektur-simultan lebih dari satu memori sistem-telah dikurangi oleh prosesor Harvard dimodifikasi menggunakan moderen cache CPU sistem. Relatif murni Harvard mesin arsitektur digunakan terutama dalam aplikasi di mana pengorbanan, seperti penghematan biaya dan tenaga dari menghilangkan cache, melebihi hukuman pemrograman dari menampilkan kode dan data alamat ruang yang berbeda.
  • Prosesor sinyal digital (DSP) umumnya mengeksekusi kecil, audio atau video algoritma pengolahan yang sangat optimal. Mereka menghindari cache karena perilaku mereka harus sangat direproduksi. Kesulitan mengatasi beberapa ruang alamat menjadi perhatian sekunder untuk kecepatan eksekusi. Akibatnya, beberapa DSP memiliki beberapa kenangan data dalam ruang alamat yang berbeda untuk memfasilitasi SIMD dan VLIW pengolahan. Texas Instruments TMS320 prosesor C55x, untuk satu contoh, memiliki beberapa bus data paralel (dua menulis, membaca tiga) dan satu instruksi bus.
  • Mikrokontroler ditandai dengan memiliki sejumlah kecil program ( flash memory ) dan data ( SRAM ) memori, tanpa cache, dan mengambil keuntungan dari arsitektur Harvard untuk kecepatan pemrosesan instruksi oleh bersamaan dan akses data. Penyimpanan terpisah berarti program dan kenangan data mungkin memiliki lebar bit yang berbeda, misalnya menggunakan 16-bit instruksi lebar dan 8-bit data yang lebar. Mereka juga berarti bahwa instruksi prefetch dapat dilakukan secara paralel dengan kegiatan lain. Contohnya termasuk, yang AVR oleh Atmel Corp dan PIC oleh Microchip Technology, Inc .
Bahkan dalam kasus ini, itu adalah umum untuk menggunakan instruksi khusus untuk memori program akses seolah-olah itu data untuk tabel-hanya membaca, atau untuk pemrograman ulang; prosesor tersebut yang dimodifikasi arsitektur Harvard prosesor. 

1 komentar: