Avatar billede thomas_nj Nybegynder
25. september 2005 - 16:42 Der er 8 kommentarer og
2 løsninger

Forståelse af cpuen

Hej eksperter

  Jeg er ved at lære assembler og er i min bog nået til et sted, hvor cpuen gennemgås. Da det hele er på engelsk vil jeg gerne sikre mig at jeg ikke har misforstået noget.

  Som jeg forstår det så:

Program Counter: Fortæller cpuen, hvor den næste instruktion samt dertil tilhørende data skal hentes fra. CPuen starter altså her og henter indstruktionen fra den givne adresse hvorefter den går videre til

Instruction Decoder: Finder ud af, hvad den gvine indtruktion betyder, samt hvilke adresser i hukommelsen, der skal deltage i processen.

Data bus: Henter dataet fra de gvine adresser i hukkommelsen

Registers: Her opbevares den data, der bearbejdes pt. Cpuens har selv 2 forskellige former for hukommelse kaldet registers. De 2 er general purpose registers (Det er er den givne udregning foretages eks addition)og special purpose registers. En special purpose register kaldet "the indstruction pointer" peger på de forskellige indstructioner. Det er sådan at computeren kan skille data og indstruktioner ad.

Arithmetic and logic unit: Det er her selve udregningen sker. Når resultaterne er beregnede sendes de ud til hukkommelsen via data-bussen.

  Der står at det er en meget skrabet gennemgang, så ovenstående er nok meget mangelfuld, men er der nogen ting, der virker til at jeg har misforstået dem?
Avatar billede arne_v Ekspert
25. september 2005 - 16:56 #1
det er ikke helt ved siden af

"the indstruction pointer" må være det samme som "Program Counter"
Avatar billede bertelbrander Novice
25. september 2005 - 16:56 #2
Der er, så vidt jeg kan se, ikke noget i ovenstående der er forkert.
Avatar billede arne_v Ekspert
25. september 2005 - 16:56 #3
men iøvrigt bør du nok skelne mellem det som du kan bruge og det som bare er der
behind the scene

genereal purpose registre, instruktioner etc. er noget du bruger

data bus er der bare
Avatar billede arne_v Ekspert
25. september 2005 - 16:57 #4
som assembler programmør er du ligeglad med om data flyttes på en data bus eller
via telepati
Avatar billede bertelbrander Novice
25. september 2005 - 17:01 #5
På nogle processorer er der mere end én bus, det kan have betydning for assembler programmering.

Det er også en god idé at forstå begreber som cache.

Skellet mellem general og special purpose registre er ofte noget flydende. Der findes en del special purpose registre, så som til floating point.
Avatar billede strych9 Praktikant
25. september 2005 - 17:16 #6
Special purpose registers inkluderer program counter (som ganske rigtigt er det samme som instruction pointer), stack pointer og et status register.

Floating point registers mener jeg nu ikke hører ind under special purpose.
Avatar billede arne_v Ekspert
25. september 2005 - 17:31 #7
jeg mener stadig at det er meget vigigt at skelne mellem den logiske arkitektur
som assembler programmøren / compileren ser og så den fysiske arkitektur
som elektronik ingeniørerne har implemeneteret den logiske arkitektur med

dit program kører uændret når du skifter fra en P4 uden til en P4 med hyperthreading,
fordi du stadig kun ser et EAX register, at der fysisk er 2 EAX registre i CPU'en
således at 2 processer kan køre delvist parallelt er kun noget hardware
folkene har fundet på for at få performance op
Avatar billede thomas_nj Nybegynder
25. september 2005 - 18:34 #8
Skal lige være sikker. En cache er et lager for for nyligt behandlet data ikke også?

  Mange tak for hjælpen.
  arne_v && strych9 >> Gider I ikke smide et svar
Avatar billede arne_v Ekspert
25. september 2005 - 18:48 #9
ja

en CPU har L1, L2 evt. L3 cache

så er der controller og disk cache etc.

og svar
Avatar billede strych9 Praktikant
25. september 2005 - 19:31 #10
takker

Ja, og fordelen ved en cache er at der typisk er høj båndbredde mellem processor og cache. til L1 cache (som er lille) er der enormt høj båndbredde og processoren kan derfor blive født hurtigt med de data. Til L2 cache er båndbredden en anelse mindre, men altså stadig hurtigere end hvis data skal hentes fra systemets RAM.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester