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