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