Den Fri, 27 Apr 2001 11:39:01 +0200 skrev Mogens Hansen:
>Hej Kent,
>"Kent Friis" <leeloo@mailandnews.com> wrote in message
>news:9cb654$lt9$1@sunsite.dk...
>> Den Thu, 26 Apr 2001 08:48:41 +0200 skrev Mogens Hansen:
>> >
>> >
>> >Kan man forestille sig situationer, hvor det er væsentligt for programmet
>at
>> >vide hvordan arkitekturen implementerer "automatic allocation" ?
>>
>> Skriver standarden "på stakken", eller blot "automatic allocation"? Det
>> kan implementationsmæssigt være en stor forskel (fx. på architekturer
>> hvor stakken er begrænset i størrelse).
>
>I den sammenhæng vi taler om her benyttes udtrykket "Automatic storage
>duration".
Så siger standarden reelt heller ikke noget om hvad der skal ligge
på stakken -> det afhænger af implementationen.
>Ordet "stack" bruges i forbindelse med:
> * class std::stack
Som sandsynligvis er implementeret vha. en kædet liste på head'en, bare
for at gøre forvirringen total.
> * stack unwinding i forbindelse med exception
Mon ikke det er for at forklare hvad der skal ske - så det er irrelevant
om det reelt ligger på stakken, eller er implementeret på en anden måde.
>> Det kan godt være en fordel for programmøren at vide, om de fleste
>> variable ligger på stakken eller i registre - man kan normalt ikke lave
>> en pointer til et register, så her må compileren enten lave noget
>> hokuspokus, eller tvinge variablen til at ligge på stakken. Det kan SVJV
>> nemt tage fire gange så lang tid at tilgå stakken som et register på en
>> RISC-maskine. Men det vil aldrig være _nødvendigt_ for programmøren at
>> vide, for compileren skjuler det.
>
>Sådan som jeg har forstået beskrivelsen af Intel Itanium, laver den et
>"rullende register vindue" som faktisk mapper ud til main-memory (og
>undervejs spiller cachen en rolle for performance) og dermed har objekter i
>registre en adresse.
Dvs. man får ikke hastighedsfordelen af register-operationer.
>Det må formodentlig også betyde at type, som er mere
>komplekse end int og pointer, kan placeres i "CPU registre" ?
Det afhænger vel mere af størrelsen af "registrene" end af hvor de
ligger.
Mvh
Kent
--
http://www.celebrityshine.com/~kfr/ - sidste billede: garden.png