Harvard vs. Neumann

Andras Tantos andras at tantosonline.com
Tue Dec 13 17:28:56 CET 2005


Hali!

Mar mas is megirta, de ugy tunik, nem art az ismetles: azok a processzorok, 
amik elkulonult adat es kod cache-el rendelkeznek szuksegszeruen Harvard 
felepitesuek. Az, hogy a programozo ebbol mit lat, mar egy masik kerdes. A 
mai (nem DSP) 32-bites procik zome valoban egyesitett memoriat mutat a 
programoznak, de a belso mukodeset tekintve mindegyik (beleertve az ARM-ot 
is) Harvard velepitesu.

A kod-cache nem modosithato (nem lehet 'dirty'), es nem szinkronizalt az 
adat-cache-el (legalabbis en meg ilyet nem lattam). Minden memoria-iras a 
kod-cache megkeruleseven megy. Ha ugyanaz a memoria bent van az adat- es a 
kod-cache-ben is, es az adat-cache modosult, a kod-cache ebbol mit sem vesz 
eszre. Sot, tudtommal a 'snooping' se mukodik a kod-cache-nel, azaz ha egy 
masik CPU (vagy barmi mas bus-master, pl. DMA) modositja a memoria 
tartalmat, ez se erdekli a kod-cache-t. Es ez (megintcsak tudtommal) minden 
cache-t hasznalo procinal igy van, legyen az x86, ARM, MIPS vagy PowerPC. 
(Ennek egyebkent az az oka, gondolom rajottetek, hogy igy a kod-cache sokkal 
egyszerubb.) Szoval, ezeknel az architekturaknal is 'kilog' a Harvard 
architektura, meg ha nem is az utasitas-keszlet szintjen.

Az onmodosito kodokrol: ez ma mar valoban nem divat, viszont egy masik 
modositott fajtaja annal inkabb. Ha JAVA, vagy .NET kodot futtatsz, akkor a 
vergrehajthato kodot futasi idoben allitja elo a JIT-nek (Just-In-Time 
compiler) nevezett program. Tehat, amikor meghivsz egy JAVA, vagy C# 
fuggvenyt, akkor a vezerlest a JIT kapja meg, aki gyorsan leforditja csak 
azt az egy fuggvenyt, lerakja a memoriaba, atirja a hivatkozast, hogy 
legkozelebb mar kozvetlenul a leforditott kod hivodjon meg, majd raadja a 
vezerlest. Vegulis ez is 'onmodosito kod' a processzor szemszogebol 
legalabbis. Van is szivas a pipeline, a cache-ek, a tobb-processzoros 
rendszerek, a multi-taskink es az NX bitek korul.

Udv,
Tantos Andras

> Még ehhez hozzátenném, hogy a Harvardot emlékem szerint a sebessége miatt
> választják a 8 bites világban, mivel a külön program és adatbusz 
> párhuzamos működése gyorsabb...
> Viszont a 32 bites eszközök közül egyetlen Harvard típusut sem ismerek...
> Még az ARM is Neumann.
>
>
> Moczik Gabor írta:
>
>> Rancz Lajos wrote:
>>
>>> Felmerült már többször itt a listán, hogy a Neumann architektúra jobb 
>>> mint a Harvard (azt hiszem Móczik kollega billentyűzetéből). Viszont nem 
>>> értem, hogy miért.... Elmondaná vki?
>>
>>
>> Mar ugy latom a tobbiek elmondtak, nem jobb, csak bizonyos esetekben 
>> praktikusabb. A harvard architekturas procikban kulon utasitas van a 
>> kodteruletrol az adatteruletre masolashoz, ami megneheziti az alkalmazast 
>> olyan esetekben, amikor sok konstanssal kell dolgozni.
>>
>> Hogy peldat is mondjak, szamitas kodtabla alapjan, vagy a ROM-ban tarolt 
>> hangminta lejatszasa DAC-on, stb...
>>
>> A harvard elonyeit masok szepen leirtak.
>>
>
> -----------------------------------
> Szponzorunk: http://tonerbolt.hu/
> 




More information about the Elektro mailing list