Document 571264

advertisement
Inleiding computersystemen en netwerken deel 3
Peter Kramer
Mail: [email protected]
Sheets en info:
http://www.et.fnt.hvu.nl/docenten/pkramer/
Onderwerp:
Literatuur:
Computersystemen (ICOSY1)
Computersystemen en embedded systemen
L.J.M. van Moergestel
Academic service
90-395-2132-8
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
3.1
Inleiding computersystemen en netwerken deel 3
herhaling, verdieping en een voorbeeld
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
3.2
Inleiding computersystemen en netwerken deel 3
3.3
Stored program computer
v. Neumann
Exception
Cycle
EX
IF
ID
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Inleiding computersystemen en netwerken deel 3
3.4
1001101101100011
Instruction register
1001001001001110
controle
Registers
memory
and I/O
unit
1001001001001110
0011100101111010
PC
Stack pointer
Status register
ALU
1.
instruction fetch
2.
instruction decoding
3.
execute
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Inleiding computersystemen en netwerken deel 3
CPU aansluitingen
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
3.5
Inleiding computersystemen en netwerken deel 3
3.6
Programmeringmodel ARM
General registers and Program Counter
User32 / System
FIQ32
Supervisor32
Abort32
IRQ32
Undefined32
r0
r0
r0
r0
r0
r0
r1
r2
r1
r2
r1
r2
r1
r2
r1
r2
r1
r2
r3
r4
r5
r3
r4
r5
r3
r4
r5
r3
r4
r5
r3
r4
r5
r3
r4
r5
r6
r6
r6
r6
r6
r6
r7
r7
r7
r7
r7
r7
r8
r8_fiq
r8
r8
r8
r8
r9
r9_fiq
r9
r9
r9
r9
r10
r10_fiq
r10
r10
r10
r10
r11
r11_fiq
r11
r11
r11
r11
r12
r12_fiq
r12
r12
r12
r12
r13 (sp)
r13_fiq
r13_svc
r13_abt
r13_irq
r13_undef
r14 (lr)
r14_fiq
r14_svc
r14_abt
r14_irq
r14_undef
r15 (pc)
r15 (pc)
r15 (pc)
r15 (pc)
r15 (pc)
r15 (pc)
cpsr
sprsr_fiq
spsr_irq
cpsr
spsr_undef
sprsr_fiq
4 Gbyte
flat memory
Program Status Registers
cpsr
cpsr
cpsr
cpsr
sprsr_fiq
spsr_fiq
spsr_svc
spsr_abt
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Inleiding computersystemen en netwerken deel 3
Voorbeeld: ARM7
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
3.7
Inleiding computersystemen en netwerken deel 3
3.8
Instruction codes
voorbeeld ARM7
31
mov r1,r2
0
1110000110110000000100000000010
mnemonische notatie
bitpatroon in het geheugen
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Inleiding computersystemen en netwerken deel 3
Instructie formaat
OPCODE
<operand>
OPCODE
<operand>,<operand>
OPCODE
<operand>,<operand>,<operand>
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
3.9
Inleiding computersystemen en netwerken deel 3
Instructie types
• Data move
– Internal <-> external
– Internal
• Data processing
Conditions?
– Logic
– Arithmetic
• Change PC
– Saved status / non saved status
• Control
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
3.10
Inleiding computersystemen en netwerken deel 3
Addressing modes
•
•
•
•
•
•
•
•
Implicit
Immediate
Direct
Indirect
Indexed
Indexed with displacement
Base, indexed with displacement
Auto increment / decrement
(pre/post)
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
3.11
Inleiding computersystemen en netwerken deel 3
3.12
Instruction length
m
n
0
0
One word
Op-code / operand addresses
Word one
Instruction register
Word two
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
?
Inleiding computersystemen en netwerken deel 3
Registers
n
?
3.13
Types:
0
Register
x?
Byte
• Accumulator
• Data
• Address
• Status
• Stack
• PC
• Index
• Base
• Segment
• ….
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Inleiding computersystemen en netwerken deel 3
3.14
Execution time
• Same for all
• Different for each
• Different, depending on addressing
mode
• Different on condition
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Inleiding computersystemen en netwerken deel 3
3.15
Programming layers
Design language
CASE-Tools
High level language
C, C++, Java
System independent
Assembler language
Target processor
Machine code
Generic firm/hardware
Binary code
Micro code
Binary in core
Digital logic
Transistors
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Inleiding computersystemen en netwerken deel 3
3.16
Program generation
HLL
HLL
HLL
compile
assembly
assembly
assembly
Debug
Module
Object
liblib
load
executable
assemble
module
Object
Object
link
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Inleiding computersystemen en netwerken deel 3
3.17
Compiler
• Vertaald naar assembler code
• Compilatie strategie:
– compilatie = vertaling + optimalisering
• De compiler bepaald de kwaliteit van de code:
– Snelheid
– compactheid
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Inleiding computersystemen en netwerken deel 3
Voorbeeld ARM
int main()
{
int a=1, b=2, c=3, d;
d=a+b+c;
return d;
}
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
3.18
Inleiding computersystemen en netwerken deel 3
Assembler
• Hoofd taak:
– Genereer de binaire code;
• Normaal gesproken een één op één
vertaling.
• De code is machine afhankelijk.
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
3.19
Inleiding computersystemen en netwerken deel 3
3.20
Linker
• Combineert meerdere object modulen tot
één executeerbaar geheel.
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Inleiding computersystemen en netwerken deel 3
3.21
Loader
• Maakt het executeerbare code geschikt om
(in de target) geladen te kunnen worden.
• Laad de executeerbare code.
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Inleiding computersystemen en netwerken deel 3
3.22
Debugger
• Laden van data en code in het geheugen
• Starten en stoppen van executie
• Vertonen en veranderen van de inhoud van het
geheugen
• Vertoon en verander de inhoud van CPU
registers
• Plaats of verwijder break points (stoppunt)
• Trace de code
• Afvangen van diagnostische exceptions
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Inleiding computersystemen en netwerken deel 3
Opdracht 1
• Zoek op internet naar het programmeringmodel
van de 80386 (i386) van Intel
–
–
–
–
–
–
Hoeveel bits bevat een (data) register?
Hoe groot is het geheugenbereik?
Welke type registers zijn er?
Welk instructie formaat wordt gebruikt
Zijn alle instructies even lang?
Welke data types zijn er ?
• Hoe kan je m.b.v. de instructieset van deze
processor, twee getallen, die in het geheugen staan,
bij elkaar optellen?
• Bestudeer hoofdstuk 7
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
3.23
Download