Register eller RAM

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46878
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Register eller RAM

Inlägg av TomasL »

Och instruktionscykler är det enda man räknar.
Nerre
Inlägg: 27168
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Register eller RAM

Inlägg av Nerre »

Tänk, jag som trodde det var exekveringstid man räknade.

Men då tar jag fram en CPU som har en instruktionscykel på 40 klockcykler. Den fixar loopen på EN instruktionscykel.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46878
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Register eller RAM

Inlägg av TomasL »

Nja, man räknar ju alltid exekveringstiden i instruktionscykler, sedan får man multiplicera detta med tiden för en instruktionscykel, normalt sett.
Detta eftersom man faktiskt i olika applikationer köra olika oscillatorfrekvenser.
Den fixar loopen på EN instruktionscykel.
Hur då.
Antalet klockcykler är en instruktion behöver är rätt ointressant, det enda intressanta är hur många instruktionscykler det tar att utföra en operation, samt vid tidskritiska applikationer hur lång tid en instruktionscykel tar.
En annan nackdel med AVR's minneshantering är att när du till exempel får ett interrupt, måste samtliga register läggas på stacken.
I en PIC räcker det i princip att byta bank.
Nerre
Inlägg: 27168
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Register eller RAM

Inlägg av Nerre »

"sedan får man multiplicera detta med tiden för en instruktionscykel"

Precis, och tiden för en instruktionscykel är proportionell mot hur mycket klockcykler en instruktionscykel är.


Man måste inte lägga ALLA register på stacken, grundläggande programmeringskutym är att man pushar de register man använder på stacken (och popar dem före retur).

Byta bank fungerar säkert bra så länge man inte har rekursiva funktioner. Men hur löser du en rekursiv funktion på en PIC?
sodjan
EF Sponsor
Inlägg: 43241
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Register eller RAM

Inlägg av sodjan »

> grundläggande programmeringskutym är att man pushar de register man använder på stacken (och popar dem före retur).

Notera att PIC (16F1xxx) har "Automatic Context Saving" vilket sparar ett antal
register "on-the-fly" vid interrupt resp vid retur utan extra processor cykler. D.v.s
• W register
• STATUS register (except for TO and PD)
• BSR register
• FSR registers
• PCLATH register
Kan vara en fördel vid korta/snabba interrupt. De sparade värderna
är tillgängliga för läsning och/eller modifiering om man vill det.
Nerre
Inlägg: 27168
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Register eller RAM

Inlägg av Nerre »

Liknar lite grann Z80:s alternate register set (fanns dubbel uppsättning av de flesta register).

Jag har skissat hemma på en slags task switching (baserat på 50 Hz NMI) som utnyttjade det (men jag kom aldrig så långt med det, det var för att få lite kul med min gamla Spectravideo som jag försökte mig på det, till den hade jag extra minne som krävde bankswitching så det hade nog funkat fint med flera processer eftersom de kunde fått en egen bank att leka i).
Skriv svar