ฉันจะรู้ได้อย่างไรว่าคอมพิวเตอร์ของฉันเป็นสถาปัตยกรรมฮาร์วาร์ดหรือฟอนนอยมันน์


12

ฉันเข้าใจความแตกต่างระหว่างสถาปัตยกรรมทั้งสองคือการแยกคำสั่งจากข้อมูลในสถาปัตยกรรมฮาร์วาร์ด แต่ฉันจะรู้ได้อย่างไรว่าฉันใช้ระบบประเภทใด เป็นไปได้ไหมที่จะเขียนโปรแกรมเพื่อให้โปรแกรมพิจารณาว่าระบบเป็น von Neumann หรือ Harvard หรือไม่? อาจมีสถาปัตยกรรมอื่นหรือสถาปัตยกรรมเหล่านี้เป็นที่รู้จักกันเท่านั้น?


3
การใช้งานที่ทันสมัยของฮาร์วาร์สถาปัตยกรรม ทุกสิ่งที่ใช้โดยทั่วไปคือ Von Neumann
Robert Harvey

1
ในขณะที่ระบบที่ทันสมัยไม่ได้เป็นฟอน - นอยมันน์เช่นกัน ความคิดเกี่ยวกับ GPUs และบรรดาสิ่งอื่น ๆ :)
โยฮันเน

1
มีประเภทสถาปัตยกรรมอื่น ๆ สถาปัตยกรรมดาต้าโลว์เป็นที่ชื่นชอบ แต่คุณไม่น่าจะเห็นมันในป่า
Martin York

1
ยกเว้นว่าคุณกำลังทำบางสิ่งในระดับต่ำจริงๆฉันไม่แน่ใจว่าทำไมคุณต้องรู้ถึงความแตกต่าง (คุณกำลังเขียนโค้ดแก้ไขด้วยตนเองหรือไม่) แม้ว่าเครื่องที่ทันสมัยส่วนใหญ่จะเป็น von-Neumann แต่ระบบปฏิบัติการมักจะทำเครื่องหมายหน้ารหัสต่างจากหน้าข้อมูลเพื่อป้องกันการแก้ไขโดยไม่ตั้งใจ (เป็นอันตราย) ต่อรหัส
Martin York

คำตอบ:


13

คอมพิวเตอร์ของคุณเป็นเครื่อง von Neumann คอมพิวเตอร์อเนกประสงค์ทั่วไปคือ ข้อยกเว้นเพียงอย่างเดียวคือตัวประมวลผลร่วมพิเศษเช่น GPU ไม่ใช่ว่าคุณไม่สามารถมีเครื่องจักรของฮาร์วาร์ด (หรือสถาปัตยกรรมอื่น ๆ ) มันเป็นเพียงแค่ว่าไม่มีใครสร้างพวกเขาโดยเฉพาะอย่างยิ่งไม่ใช่เพื่อการขาย (แน่นอน modulo co-processor แน่นอน)


3
นี้แน่นอนขึ้นอยู่กับคำจำกัดความ หากคุณแทนที่การแบ่งขั้วสองขั้วที่ค่อนข้างล้าสมัยด้วยtrichotomyคอมพิวเตอร์วัตถุประสงค์ทั่วไปส่วนใหญ่ในปัจจุบันคือ Modified Harvard Architecture
maaartinus

3
ไมโครคอนโทรลเลอร์ฝังตัวจำนวนมากใช้สถาปัตยกรรมของฮาร์วาร์ด พวกเขามักเรียกใช้รหัสจากบางชนิดหรือ ROM หรือหน่วยความจำแฟลชและจะได้รับน้อยโดยใช้บัสทั่วไปสำหรับรหัสและข้อมูล
supercat

6

ส่วนใหญ่ในปัจจุบันซีพียูอเนกประสงค์ใช้ดัดแปลงฮาร์วาร์สถาปัตยกรรม แกนประมวลผล CPU สามารถเข้าถึงโปรแกรมและข้อมูลได้อย่างอิสระในแคช L1 ที่แยกต่างหาก ที่ด้านนอกไม่มีหน่วยความจำโปรแกรมและข้อมูลแยกต่างหาก (หรือระดับแคชอื่น ๆ จะถูกแยกออก)

อาจมีสถาปัตยกรรมอื่นหรือสถาปัตยกรรมเหล่านี้เป็นที่รู้จักกันเท่านั้น?

สถาปัตยกรรมอื่น ๆ ทั้งหมดค่อนข้าง จำกัด ในการใช้งาน เนื่องจากความซับซ้อนและค่าใช้จ่ายที่เกี่ยวข้องกับการพัฒนาโปรเซสเซอร์ฉันไม่คิดว่าจะมีใครลองอีกครั้งอย่างจริงจัง

อย่างไรก็ตามในขณะที่ซีพียูสมัยใหม่โดยพื้นฐานแล้วฟอนนอยมันน์มันรวมเอาไอเดียมากมายเช่นDataflow Architecture ไว้ภายใน


4

ทั้งสถาปัตยกรรม Von Neumann และ Harvard เป็นของกระบวนทัศน์ Flow control

มีกระบวนทัศน์อื่นซึ่งเป็นคือการไหลของข้อมูล

ตัวอย่างทั่วไปของการคำนวณดาต้าโฟลว์ที่ถูกนำมาใช้บนคอมพิวเตอร์โฟลว์ควบคุมคือสเปรดชีท (จาก Visicalc และ Multiplan ถึง Excel)

เครือข่ายประสาทยังเป็นของหมวดนี้

FPGAเป็นอีกตัวอย่างหนึ่งของสถาปัตยกรรมดาต้าโฟลว์ พวกเขามีโปรแกรมที่มีคำอธิบายฮาร์ดแวร์ภาษาเช่นภาษาVHDL


3

โดยทั่วไปแล้ว Harvard Architecture จะใช้ในไมโครโปรเซสเซอร์แบบฝังที่โปรแกรมเก็บไว้ในหน่วยความจำแบบ eeprom สิ่งเดียวที่คุณน่าจะเห็นคือ Atmel AVRที่ใช้ในArduino


1

เมื่อคุณโปรแกรม: ปรับเปลี่ยนพื้นที่หน่วยความจำแล้วกระโดดไปที่นั่นและดำเนินการ

หากเป็น Havard คุณไม่สามารถทำได้


หรืออาจเป็นเครื่อง Von Neumann ที่มีตัวจัดการหน่วยความจำ W ^ X
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.