Permalänk
Hedersmedlem

Tack lincoln, nu slapp jag dra upp mycket.
För att säga på litet annat sätt så att addera eller subtrahera tal är som att hälla vatten genom en sil. Tar längre tid att måtta lika delar vatten och hälla genom två silar. Det beskrivs lite fel om man säger att processorn sitter och "räknar". Den gör sitt så snabbt, inte som en människa manuellt räknar på det.
Nu var det ett tag sen jag läste digitalteknik, men man kan väl inte dela upp ett tal för addering, du måste ju veta carry:n från den lägsta biten i det man börjar med.

Sånt här är så internt inom processorkärnan (innutin ALU:n) så det skulle vara en så stor overhead att bygga in så två kärnor arbetade. Man måste göra det på större uppgifter... t.ex. trådar som man programmerar.

lincoln, vet du om det finns instruktioner för processorn att läsa in saker till cachen? Jag tror det är speciell hantering av det, inte processorn som gör det så det är "automatiskt". Visst skulle väl ditt program toucha minnesadresser i förväg för att få in dem. Men risken finns väl att programmet själv slängs ut till slut (men om det körs borde det vara kvar).

str8forthakill, du verkar intressserad av detta, jag rekommenderar dig att läsa någon bok om digitalteknik och datorarkitektur. Men kort sagt är alla de här smådelarna som du vill dela upp så små att det inte lönar sig eller så delas det upp redan i processorkärnan idag.

Btw lincoln, med dedikerat mikroprogram menar du väl som jag tror något litet litet program, du talar väl inte om mikrokoden i processorn?

Äsch fan er, nu blev jag ju sugen på att programmera assembler.

Visa signatur

Forumregler | Feedbackforumet | Något som behöver modereras? Tryck på Anmäl inlägget och ge en anledning, någon moderator kommer granska inlägget och göra (egen) bedömning
"Fate. Protects fools, little children and ships named Enterprise." - Riker - ST:TNG

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Aqualize
Tack lincoln, nu slapp jag dra upp mycket.

<snip>

Nu var det ett tag sen jag läste digitalteknik, men man kan väl inte dela upp ett tal för addering, du måste ju veta carry:n från den lägsta biten i det man börjar med.

Sånt här är så internt inom processorkärnan (innutin ALU:n) så det skulle vara en så stor overhead att bygga in så två kärnor arbetade. Man måste göra det på större uppgifter... t.ex. trådar som man programmerar.

Ingen orsak.

Man kan implementera en s.k. 'Fast Adder' så man inte behöver addera bit för bit och skicka med carryn framåt...

http://en.wikipedia.org/wiki/Fast_adder

... men trots det är det knappast nån fråga om att det skulle kunna vara effektivt att dela upp additioner, så jag håller helt med om det där med att man måste dela upp jobbet i större uppgifter.

Citat:

Ursprungligen inskrivet av Aqualize
lincoln, vet du om det finns instruktioner för processorn att läsa in saker till cachen? Jag tror det är speciell hantering av det, inte processorn som gör det så det är "automatiskt". Visst skulle väl ditt program toucha minnesadresser i förväg för att få in dem. Men risken finns väl att programmet själv slängs ut till slut (men om det körs borde det vara kvar).

Jo, jag tror cache-hanteringen sköts automatiskt. Annars skulle processorerna aldrig kunna ha delad cache.

Mina kunskaper om moderna processorer är dock tyvärr ganska bristfällig. Min senaste någotsånär seriösa kontakt med det hela var väl nån gång 93-94 när jag gick en kurs ('mikrodatorer' eller vad den hette) på KTH. Men dels var den tämligen översiktlig (mest avancerade var väl labbar i form av att skriva mikrokod för en enkel CISC-processor) och sen var det ju ett tag sedan...

Det var därför jag blev genuint nyfiken när str8forthakill tyckte man skulle 'serialisera' två cores så de jobbade som en enda. När nån läckte ett rykte om att AMD skulle göra det tidigare, så var det ju bluff, men nånting i mig hoppades att det kanske fanns nåt korn av sanning bakom det ändå...

Citat:

Ursprungligen inskrivet av Aqualize
Btw lincoln, med dedikerat mikroprogram menar du väl som jag tror något litet litet program, du talar väl inte om mikrokoden i processorn?

Äsch fan er, nu blev jag ju sugen på att programmera assembler.

Jag var faktiskt medvetet litet svävande där eftersom jag inte vet om det ens skulle funka att bygga ett analysprogram av den typen i mikrokod, och jag misstänkte att ett 'vanligt' program troligen skulle exekvera för långsamt för att vara värt det...

Som sagt, mina kunskaper om moderna processorers inre beskaffning lämnar en del övrigt att önska.

Hacka assembler, ja... Skulle å ena sidan vara kul att se hur små och effektiva program man kan dra ihop.. Och å andra sidan vara extremt jobbigt att bygga upp datastrukturer från råa minnesblock. Nej, jag har nog blivit för bekväm för att gå tillbaka dit.

Visa signatur

Gammal och gnällig

Permalänk
Citat:

Hade själv funderingar på om man kunde spara några klockcykler på aggressivare 'speculative evaluation' - dvs. att om man har en 'if'-sats som måste vänta på att accessa minnet, kör man koden på båda sidor om if-satserna på pin tji, och sedan när man får svaret från minnet så fortsätter man på den sida om 'iffen' som var rätt. Tyvärr lär dock koden på båda sidorna 'iffen' snart själv behöva hämta data från minnet, så då hänger det på att man lyckas exekvera fler cykler det kostar i administration för att dela upp jobbet. Osannolikt.

Det var det jag nämnde. Den räknar ut alla möjliga svar innan den vet vilket som är det rätta. Gäller iaf för matte.