von neumann fördel mot harvard arketektur

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
arte
Inlägg: 317
Blev medlem: 13 januari 2006, 01:18:50

von neumann fördel mot harvard arketektur

Inlägg 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.
rand_althor
Inlägg: 49
Blev medlem: 10 november 2008, 13:43:25
Ort: Göteborg
Kontakt:

Inlägg 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....
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 9127
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Inlägg av AndersG »

Vill minnas att det fanns en sida om et på wikipedia..
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7487
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Inlägg 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.
Användarvisningsbild
speakman
Inlägg: 4838
Blev medlem: 18 augusti 2004, 23:03:32
Ort: Ånge

Inlägg 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.
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg 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.
AAVE
Inlägg: 67
Blev medlem: 1 april 2008, 11:57:24
Ort: Skåeuone

Inlägg 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
Skriv svar