Sida 1 av 1

von neumann fördel mot harvard arketektur

Postat: 9 december 2008, 19:03:36
av arte
Hej,

Jag sitter och pillar lite med VHDL och soft cores. Undrar ifall det finns någon fördel med von neumann mot harvard arketektur?

För er som inte vet så är von neumann då man endast har en minnes buss och ett minne medans harvard så har man två bussar. En för data och en för kod.

Postat: 9 december 2008, 19:30:23
av rand_althor
en fördel är ju att du kan nyttja minnet för både program och data...

den uppenbara nackdelen är ju istället prestanda i många lägen om både instruktionsläsningar och dataaccesser skall göras i samma minne istället för olika minnen....

Postat: 10 december 2008, 10:08:28
av AndersG
Vill minnas att det fanns en sida om et på wikipedia..

Postat: 10 december 2008, 10:27:40
av Marta
Titta på instruktionssetet för att se fördelarna. von Neumann har i allmänhet ett mycket rikare instruktionsset eftersom det är mera flexibelt med variabel längd. Troligen finns en stack med bra djup och möjlighet att spara dataregister. Dessutom kan man trixa mycket mera, allt från att lägga parametrar till subrutiner som immediate data till självmodifierande kod.

Skall Du använda s.k. högnivåspråk till koden som Din softcore skall exekvera så märker Du inget av dessa saker. Försök då hitta jämförelser på vilken softcore som är snabbast i det språk Du tänker använda och helst på just den FPGA Du valt och för den typ av applikation Du skall göra.

Skall Du använda assembler så välj en softcore där Du känner att Du behärskar instruktionssetet, det ger nog bäst resultat allt sammantaget.

Postat: 10 december 2008, 12:43:13
av speakman
Även för högnivåspråk så blir von Neumann mer effektivt då pekare inte behöver ta hänsyn till *vad* den pekar på, annat än enbart adressen. En del kompilatorer lägger till initieringskod där den kopierar all statiska data till RAM-minnet för att slippa den problematiken.

Postat: 10 december 2008, 13:36:58
av Icecap
Jepp, som speakman skriver finns det kompilere som gör så. Jag fick allvarliga problem av den anledning i ett projekt med många texter på 7 olika språk, det visade det sig att alla 4-bytes pointers till dessa strängar kopierades till RAM vilket ju självklart fick kompilern till att vägra kompilera då minne inte kunde allokeras...

Jag fick då skriva alla texter i ASM för att få det att hänga ihop och plötsligt fungerade allt igen.

Varje arkitektur har ju sina fördelar, har man en del fast text och en del variabel ser jag fördelar vid von Neumann.

Postat: 11 december 2008, 10:16:00
av AAVE
von neumann är oftast svårare att få till i en softcore, du kommer att behöva extra pipeline steg, cache coherence och wait-states och annat tråkigt. Därför är nästan alla mindre softcores harvard.

Man kan undvika pekare-problem genom att deklarera konstanter med "const", eller platformberoende GCC-ord som den här:

http://www.nongnu.org/avr-libc/user-man ... space.html