Bagaimana saya bisa tahu apakah komputer saya adalah arsitektur Harvard atau von Neumann?

12

Saya mengerti perbedaan antara kedua arsitektur ini adalah pemisahan instruksi dari data dalam arsitektur Harvard. Tetapi bagaimana saya tahu jenis sistem yang saya gunakan? Apakah mungkin untuk menulis suatu program sedemikian rupa sehingga program menentukan apakah sistem itu von Neumann atau Harvard? Mungkinkah ada arsitektur lain atau arsitektur ini satu-satunya yang dikenal?

Niklas
sumber
3
Penggunaan Modern Arsitektur Harvard . Segala sesuatu yang biasa digunakan adalah Von Neumann.
Robert Harvey
1
Sementara sistem modern juga tidak sepenuhnya von-Neumann. berpikir tentang GPU dan semua hal-hal lain :)
johannes
1
Ada jenis arsitektur lainnya. Arsitektur dataflow adalah favorit saya. Tapi Anda tidak mungkin melihatnya di alam liar.
Martin York
1
Kecuali jika Anda melakukan sesuatu yang benar-benar sangat rendah, saya tidak yakin mengapa Anda perlu mengetahui perbedaannya (apakah Anda menulis kode modifikasi sendiri?). Meskipun kebanyakan mesin modern adalah von-Neumann, OS biasanya menandai halaman kode secara berbeda dari halaman data untuk mencegah modifikasi kode yang tidak disengaja (berbahaya).
Martin York

Jawaban:

13

Komputer Anda adalah mesin von Neumann. Semua komputer untuk keperluan umum. Satu-satunya pengecualian adalah co-prosesor khusus seperti GPU. Bukannya Anda tidak dapat memiliki mesin Harvard (atau arsitektur lainnya). Hanya saja tidak ada yang membangunnya, terutama tidak untuk dijual (modulo co-prosesor, tentu saja).

Ross Patterson
sumber
3
Ini tentu tergantung pada definisi. Jika Anda mengganti dikotomi yang agak usang dengan trikotomi , kebanyakan komputer tujuan umum saat ini adalah Arsitektur Harvard yang Dimodifikasi.
maaartinus
3
Banyak mikrokontroler tertanam menggunakan arsitektur Harvard. Mereka umumnya menjalankan kode dari beberapa jenis atau ROM atau memori flash, dan sedikit yang akan diperoleh dengan menggunakan bus umum untuk kode dan data.
supercat
6

CPU tujuan umum terkini menggunakan Arsitektur Harvard yang Dimodifikasi . Core CPU dapat mengakses program dan data secara terpisah dalam cache L1 mereka yang terpisah. Di luar, tidak ada memori program dan data yang terpisah (atau tingkat cache lainnya dipisahkan).

Mungkinkah ada arsitektur lain atau arsitektur ini satu-satunya yang dikenal?

Semua arsitektur lain agak terbatas dalam penggunaannya. Karena kerumitan ekstrem dan biaya yang terkait dengan pengembangan prosesor, saya tidak berpikir siapa pun akan mencobanya dengan serius lagi.

Namun, sementara CPU modern pada dasarnya von Neumann, mereka menggabungkan banyak ide seperti Arsitektur Dataflow secara internal.

maaartinus
sumber
4

Baik arsitektur Von Neumann dan Harvard termasuk dalam paradigma aliran kontrol.

Ada paradigma lain, yaitu aliran data .

Contoh umum komputasi aliran data, meskipun diimplementasikan pada komputer aliran kontrol, adalah spreadsheet (dari Visicalc dan Multiplan ke Excel).

Jaringan saraf juga termasuk dalam kategori ini.

FPGA adalah contoh lain arsitektur dataflow. Mereka diprogram dengan bahasa deskripsi perangkat keras seperti VHDL .

mouviciel
sumber
3

Arsitektur Harvard biasanya hanya digunakan dalam mikroprosesor tertanam di mana program disimpan dalam memori eeprom on-board. Satu-satunya yang cenderung Anda lihat adalah Atmel AVR seperti yang digunakan dalam Arduino

Martin Beckett
sumber
1

Saat Anda memprogramnya: Ubah wilayah memori dan kemudian lompat ke sana dan jalankan.

Jika itu adalah Havard, Anda tidak dapat melakukannya.

Pengguna
sumber
Atau mungkin mesin Von Neumann dengan manajer memori W ^ X.