Review (#1/2) COMP Microprocessors and Embedded Systems. Lectures 13: Making Decisions in C/Assembly Language - I
|
|
|
- Elmer Charles
- 9 years ago
- Views:
Transcription
1 COMP 3221 Microprocessors and Embedded Systems Lectures 13: Making Decisions in C/Assembly Language - I August, 2003 Review (#1/2) Big idea in CS&E; compilation to translate from one level of abstraction to lower level Generally single HLL statement produces many assembly instructions Also hides address calculations (byte vs. word addressing) Design of an Assembly Language like ARM shaped by 1) Desire to keep hardware simple: e.g., most operations have 3 operands 2) Smaller is faster: e.g., ARM has 16 registers [email protected] COMP3221 lec13-decision-i.1 COMP3221 lec13-decision-i.2 COMP3221 lec13-decision-i.3 Review (#2/2) ARM assembly language thus far: Instructions: add,sub,mov, orr,and,bic, eor, mul, ldr, str At most one assembly instruction per line Comments start with; to end of line Operands: registers r0 r3 a1 a4 (correspond to C functions arguments. Used for scratch pad too!) r4 r10 v1 v7 (correspond to function variables) Operands: memory Memory[0], Memory[4], Memory[8],,..., Memory[ ] Baby Quiz What are the three different ways to obtain a data operand you have seen? Immediate - data is IN the instruction add r1, r1, #24 Register Direct - data is IN a register the register number is in the instruction add r1, r1, r2 Base plus offset - data is IN memory the register number is in the instruction the base address is in the register the offset is in the instruction/offset index register number in instruction ldr r1, [r2, #24] / ldr r1, [r2,r3] These are called Addressing Modes COMP3221 lec13-decision-i.4
2 Overview C/Assembly if, goto, if-else C /Assembly Loops: goto, while Test for less Than, Greater Than, etc C/Assembly case/switch statement Conclusion C Decisions (Control Flow): if statements 2 kinds of if statements in C if (condition) statement if (condition) statement1 else statement2 Following code is same as 2nd if if (condition) goto L1; statement2; goto L2; L1: statement1; L2: Not as elegant as if-else, but same meaning COMP3221 lec13-decision-i.5 COMP3221 lec13-decision-i.6 ARM decision instructions (control flow) (#1/2) Decision instruction in ARM: cmp register1, register2 ;compare register1 with ; register2 beq L1 ; branch to L1 if equal is Branch if (registers are) equal if (register1==register2) goto L1 Complementary ARM decision instruction cmp register1, register2 bne L1 bne is Branch if (registers are) not equal if (register1!=register2) goto L1 Called conditional branches ARM decision instructions (control flow) (#2/2) Decision instruction in ARM: cmp register1, #immediate ;compare register1 with ; immediate number beq L1 ; branch to L1 if equal is Branch if (register and immediate are) equal if (register1==#immediate) goto L1 Complementary ARM decision instruction cmp register1, #immediate bne L1 bne is Branch if (register and immediate are) not equal if (register1!=#immediate) goto L1 Called conditional branches COMP3221 lec13-decision-i.7 COMP3221 lec13-decision-i.8
3 Compiling C if into ARM Assembly Compile by hand if (i == j) f=g+h; else f=g-h; Mapping f: v1, g: v2, h: v3, i: v4, j: v5 Start with branch: cmp v4, v5 beq L-true Follow with false part sub v1,v2,v3 (true) i == j ; branch to L-True ; if i==j ; f=g-h f=g+h i == j? exit f=g-h (false) i!= j Compiling C if into ARM Assembly Need instruction that always transfers control to skip over true part ARM has branch: b label ; goto label sub v1,v2,v3 b L-exit Next is true part L-true: add v1,v2,v3 ; f=g-h Followed by exit branch label L-exit: ; f=g+h COMP3221 lec13-decision-i.9 COMP3221 lec13-decision-i.10 C Compiling C if into ARM: Summary Compile by hand if (i == j) f=g+h; else f=g-h; Mapping f: v1, g: v2, h: v3, i: v4, j: v5 cmp v4,v5 A beq L-true R sub v1,v2,v3 b L-exit M L-true: add v1,v2,v3 L-exit: COMP3221 lec13-decision-i.11 (true) i == j f=g+h i == j? f=g-h ; branch i==j ; (false) ; go to Exit ;(true) Note:Compiler supplies labels for branches not found in HLL code; often it flips the condition to branch to false part (false) i!= j Motoring with Microprocessors Thanks to the magic of microprocessors and embedded systems, our cars are becoming safer, more efficient, and entertaining. The average middle-class household includes over 40 embedded processors. About half are in the garage. Cars make a great vehicle for deploying embedded processors in huge numbers. These processors provide a ready source of power, ventilation, and mounting space and sell in terrific quantities. How many embedded processors does your car have? If you've got a late-model luxury sedan, two or three processors might be obvious in the GPS navigation system or the automatic distance control. Yet you'd still be off by a factor of 25 or 50. The current 7-Series BMW and S-class Mercedes boast about 100 processors apiece. A relatively low-profile Volvo still has 50 to 60 baby processors on board. Even a boring low-cost econobox has a few dozen different microprocessors in it. Your transportation appliance probably has more chips than your Internet appliance. New cars now frequently carry 200 pounds of electronics and more than a mile of wiring. COMP3221 lec13-decision-i.12
4 COMP3221 Reading Materials (Week #5) Week #5: Steve Furber: ARM System On-Chip; 2nd Ed, Addison-Wesley, 2000, ISBN: We use chapters 3 and 5 ARM Architecture Reference Manual On CD ROM A copy of the article by Cohen, D. On holy wars and a plea for peace (data transmission). Computer, vol.14, (no.10), Oct p.48-54, is place on the class website. Loops in C/Assembly Simple loop in C Loop: g = g + A[i]; i = i + j; if (i!= h) goto Loop; (g,h,i,j:v2,v3,v4,v5; base of A[]:v6): 1st fetch A[i] Loop: ldr a1,[v6, v4, lsl #2] ;(v6+v4*4)=addr A[i] ;a1=a[i] COMP3221 lec13-decision-i.13 COMP3221 lec13-decision-i.14 Simple Loop (cont) Add value of A[i] to g and then j to i g = g + a1 i = i + j; (g,h,i,j:v2,v3,v4,v5): add v2,v2,a1 ; g = g+a[i] add v4,v4,v5 ; i = i + j The final instruction branches back to Loop if i!= h : cmp v4,v3 bne Loop ; goto Loop ; if i!=h Loops in C/Assembly: Summary Loop: C A R M g = g + A[i]; i = i + j; if (i!= h) goto Loop; (g,h,i,j:v2,v3,v4,v5; base of A[]:v6): Loop: ldr a1,[v6, v4, lsl #2] ;(v6+v4*4)=addr A[i] ;a1=a[i] add v2,v2,a1 ; g = g+a[i] add v4,v4,v5 ; i = i + j cmp v4,v3 bne Loop ; goto Loop ; if i!=h COMP3221 lec13-decision-i.15 COMP3221 lec13-decision-i.16
5 while in C/Assembly: Although legal C, almost never write loops with if, goto: use while, or for loops Syntax: while(condition) statement while (save[i] == k) i = i + j; 1st load save[i] into a scratch register (i,j,k: v4,v5,v6: base of save[]:v7): Loop: ldr a1,[v7,v4,lsl #2] ;v7+v4*4=addr of save[i] ;a1=save[i] While in C/Assembly (cont) Loop test: exit if save[i]!= k (i,j,k: v4,v5,v6: base of save[]:v7) cmp a1,v6 bne Exit ;goto Exit ;if save[i]!=k The next instruction adds j to i: add v4,v4,v5 ; i = i + j End of loop branches back to the while test at top of loop. Add the Exit label after: b Loop ; goto Loop Exit: COMP3221 lec13-decision-i.17 COMP3221 lec13-decision-i.18 C While in C/Assembly: Summary while (save[i]==k) i = i + j; (i,j,k: v4,v5,v6: base of save[]:v7) Loop: ldr a1,[v7,v4,lsl #2] ;v7+v4*4=addr of save[i] A R M ;a1=save[i] cmp a1,v6 bne Exit ;goto Exit add v4,v4,v5 b Loop Exit: ;if save[i]!=k ; i = i + j ; goto Loop Beyond equality tests in ARM Assembly (#1/2) So far ==,!=, What about < or >? cmp register1, register2 blt L1 is Branch if (register1 <register2) if (register1<register2) go to L1 Complementary ARM decision instruction cmp register1, register2 bge L1 bge is Branch if (register1 >= register2) if (register1>=register2) go to L1 COMP3221 lec13-decision-i.19 COMP3221 lec13-decision-i.20
6 Beyond equality tests in ARM Assembly (#2/2) Also cmp register1, #immediate blt L1 is Branch if (register1 <#immediate) if (register1<immediate) go to L1 Complementary ARM decision instruction cmp register1, #immediate bge L1 bge is Branch if (register1 >= #immediate) if (register1>=immediate) go to L1 COMP3221 lec13-decision-i.21 C A R M COMP3221 lec13-decision-i.22 If less_than in C/Assembly if (g < h) {... } cmp v1,v2 ; v1<v2 (g<h) blt Less if (g < h) b noless ; if (g >= h) Less:... noless: Alternative Code cmp v1,v2 ; v1<v2 (g<h) bge noless if (g >= h)... ; if (g < h) noless: COMP3221 lec13-decision-i.23 Some Branch Conditions b Unconditional bal Branch Always beq Branch Equal bne Branch Not Equal blt Branch Less Than ble Branch Less Than or Equal bgt Branch Greater Than bge Branch Greater Than or Equal Full Table Page 64 Steve Furber: ARM System On- Chip; 2nd Ed, Addison-Wesley, 2000, ISBN: COMP3221 lec13-decision-i.24 What about unsigned numbers? Conditional branch instructions blt, ble, bgt, etc, assume signed operands (defined as int in C). The equivalent instructions for unsigned operands (defined as unsigned in C). are: blo Branch Lower (unsigned) bls Branch Less or Same (unsigned) bhi Branch Higher (unsigned) bhs Branch Higher or Same (Unsigned) v1 = FFFF FFFA hex, v2 = 0000 FFFA hex What is result of cmp v1, v2 cmp v1, v2 bgt L1 bhi L1
7 Signed VS Unsigned Comparison v1 = FFFF FFFA hex, v2 = 0000 FFFA hex v1 < v2 (signed interpretation) v1 > v2 (unsigned interpretation) What is result of cmp v1, v2 cmp v1, v2 bgt L1 bhi L1 L1: L1: Branch NOT taken Branch Taken COMP3221 lec13-decision-i.25 COMP3221 lec13-decision-i.26 Branches: PC-relative addressing Recall register r15 in the machine also called PC; points to the currently executing instruction Most instruction add 4 to it. (pc increments by 4 after execution of most instructions) Branch changes it to a specific value registers Branch adds to it 24-bit signed value r15 = pc r14 (contained in the instruction) Shifted left by 2 bits Labels => addresses r0 0: FFF... memory b address 24 bits beq address 32MB +32MB C case/switch statement Choose among four alternatives depending on whether k has the value 0, 1, 2, or 3 switch (k) { case 0: f=i+j; break; /* k=0*/ case 1: f=g+h; break; /* k=1*/ case 2: f=g h; break; /* k=2*/ case 3: f=i j; break; /* k=3*/ } Case/switch via chained if-else, C Could be done like chain of if-else if(k==0) f=i+j; else if(k==1) f=g+h; else if(k==2) f=g h; else if(k==3) f=i j; COMP3221 lec13-decision-i.27 COMP3221 lec13-decision-i.28
8 C A R M Case/switch via chained if-else, C/Asm. Could be done like chain of if-else if(k==0) f=i+j; else if(k==1) f=g+h; COMP3221 lec13-decision-i.29 else if(k==2) f=g h; else if(k==3) f=i j; (f,i,j,g,h,k:v1,v2,v3,v4,v5,v6) cmp v6,#0 bne L1 ; branch k!=0 add v1,v2,v3 k=0 so f=i+j L1:cmp v6,#1 bne L2 ; branch k!=1 add v1,v4,v5 ; k=1 so f=g+h L2:cmp v6,#2 bne L3 ; branch k!=2 sub v1,v4,v5 ; k=2 so f=g-h L3:cmp v6,#3 bne Exit ; branch k!=2 sub v1,v2,v3 ; k=3 so f=i-j Exit: Case/Switch via Jump Address Table Notice that last case must wait for n-1 tests before executing, making it slow Alternative tries to go to all cases equally fast: jump address table Idea: encode alternatives as a table of addresses of the cases - Table an array of words with addresses corresponding to case labels Program indexes into table and jumps ARM instruction ldr pc, [ ] unconditionally branches to address L1 (Changes PC to address of L1) COMP3221 lec13-decision-i.30 Idea for Case using Jump Table check within range get address of target clause from target array jump to target address Address Jump Table Default clause code for clause jump to end_of_case Case/Switch via Jump Address Table (#1/3) Use k to index a jump address table, and then jump via the value loaded 1st test that k matches 1 of cases (0<=k<=3); if not, the code exits (k:v6, v7: Base address of JumpTable[k]) cmp v6, #0 ;Test if k < 0 blt Exit ;if k<0,goto Exit cmp v6, #3 ;Test if k >3 bgt Exit ;if k>3,goto Exit end_of_case: COMP3221 lec13-decision-i.31 COMP3221 lec13-decision-i.32
9 Case/Switch via Jump Address Table (#2/3) Assume 4 sequential words (4 bytes) in memory, with base address in v7, have addresses corresponding to labels L0, L1, L2, L3. Now use (4*k) (k:v6) to index table of words and load the clause address from the table (Address of labels L0, L1, L2, L3 ) to register pc. ldr pc, [v7, v6,lsl #2] ;JumpTable[k]= v7 + (v6*4) V6*4 (Register Indexed Addressing) PC will contain the address of the clause and execution starts from there. v7 L0 L1 L2 L3 Case/Switch via Jump Address Table (#3/3) Cases jumped to by ldr pc, [v7, v6,lsl #2] : L0: add v1,v2,v3 ; k=1 so f=i+j L1: add v1,v4,v5 ; k=1 so f=g+h L2: sub v1,v4,v5 ; k=2 so f=g-h L3: sub v1,v2,v3 ; k=3 so f=i-j Exit: COMP3221 lec13-decision-i.33 COMP3221 lec13-decision-i.34 Jump Address Table: Summary (k,f,i,j,g,h Base address of JumpTable[k]) :v6,v1,v2,v3,v4,v5,v7) cmp v6, #0 ;Test if k < 0 blt Exit ;if k<0,goto Exit cmp v6, #3 ;Test if k >3 bgt Exit ;if k>3,goto Exit ldr pc, [v7, v6,lsl #2] ;JumpTable[k]= v7 + (v6*4) L0: add v1,v2,v3 ; k=1 so f=i+j L1: add v1,v4,v5 ; k=1 so f=g+h L2: sub v1,v4,v5 ; k=2 so f=g-h L3: sub v1,v2,v3 ; k=3 so f=i-j Exit: COMP3221 lec13-decision-i.35 More example on Jump Tables on CD-ROM COMP3221 lec13-decision-i.36 If there is time, do it yourself: Compile this C code into ARM: sum = 0; for (i=0;i<10;i=i+1) sum = sum + A[i]; sum:v1, i:v2, base address of A:v3
10 C (If time allows) Do it yourself: sum = 0; for (i=0;i<10;i=i+1) sum = sum + A[i]; sum:v1, i:v2, base address of A:v3 And in Conclusion (#1/2) HLL decisions (if, case) and loops (while, for) use same assembly instructions Comparison: cmp in ARM Conditional branches: beq, bne in ARM Unconditional Jumps: b, ldr pc,, mov pc, in ARM Case/Switch: either chained if-else or jump table + ldr pc, A R M mov v1, #0 mov v2, #0 Loop: ldr a1,[v3,v2,lsl #2] ; a1=a[i] add v1, v1, a1 ; sum = sum+a [i] add v2, v2, #1 ; increment i cmp v2, #10 ; Check(i<10) bne Loop ; goto loop COMP3221 lec13-decision-i.37 COMP3221 lec13-decision-i.38 And in Conclusion (#1/2) New Instructions: cmp beq bne bgt bge blt ble bhi bhs blo bls COMP3221 lec13-decision-i.39
An Introduction to Assembly Programming with the ARM 32-bit Processor Family
An Introduction to Assembly Programming with the ARM 32-bit Processor Family G. Agosta Politecnico di Milano December 3, 2011 Contents 1 Introduction 1 1.1 Prerequisites............................. 2
Instruction Set Architecture
Instruction Set Architecture Consider x := y+z. (x, y, z are memory variables) 1-address instructions 2-address instructions LOAD y (r :=y) ADD y,z (y := y+z) ADD z (r:=r+z) MOVE x,y (x := y) STORE x (x:=r)
Reduced Instruction Set Computer (RISC)
Reduced Instruction Set Computer (RISC) Focuses on reducing the number and complexity of instructions of the ISA. RISC Goals RISC: Simplify ISA Simplify CPU Design Better CPU Performance Motivated by simplifying
THUMB Instruction Set
5 THUMB Instruction Set This chapter describes the THUMB instruction set. Format Summary 5-2 Opcode Summary 5-3 5. Format : move shifted register 5-5 5.2 Format 2: add/subtract 5-7 5.3 Format 3: move/compare/add/subtract
We will use the accumulator machine architecture to demonstrate pass1 and pass2.
Accumulator machine We will use the accumulator machine architecture to demonstrate pass1 and pass2. The accumulator machine - has one processor register: the accumulator - all other operands are in memory,
Instruction Set Architecture (ISA)
Instruction Set Architecture (ISA) * Instruction set architecture of a machine fills the semantic gap between the user and the machine. * ISA serves as the starting point for the design of a new machine
Instruction Set Architecture. or How to talk to computers if you aren t in Star Trek
Instruction Set Architecture or How to talk to computers if you aren t in Star Trek The Instruction Set Architecture Application Compiler Instr. Set Proc. Operating System I/O system Instruction Set Architecture
Translating C code to MIPS
Translating C code to MIPS why do it C is relatively simple, close to the machine C can act as pseudocode for assembler program gives some insight into what compiler needs to do what's under the hood do
What to do when I have a load/store instruction?
76 What to do when I have a load/store instruction? Is there a label involved or a virtual address to compute? 1 A label (such as ldiq $T1, a; ldq $T0, ($T1);): a Find the address the label is pointing
An Introduction to the ARM 7 Architecture
An Introduction to the ARM 7 Architecture Trevor Martin CEng, MIEE Technical Director This article gives an overview of the ARM 7 architecture and a description of its major features for a developer new
Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C
Embedded Systems A Review of ANSI C and Considerations for Embedded C Programming Dr. Jeff Jackson Lecture 2-1 Review of ANSI C Topics Basic features of C C fundamentals Basic data types Expressions Selection
Computer Organization and Architecture
Computer Organization and Architecture Chapter 11 Instruction Sets: Addressing Modes and Formats Instruction Set Design One goal of instruction set design is to minimize instruction length Another goal
HC12 Assembly Language Programming
HC12 Assembly Language Programming Programming Model Addressing Modes Assembler Directives HC12 Instructions Flow Charts 1 Assembler Directives In order to write an assembly language program it is necessary
what operations can it perform? how does it perform them? on what kind of data? where are instructions and data stored?
Inside the CPU how does the CPU work? what operations can it perform? how does it perform them? on what kind of data? where are instructions and data stored? some short, boring programs to illustrate the
Intel 8086 architecture
Intel 8086 architecture Today we ll take a look at Intel s 8086, which is one of the oldest and yet most prevalent processor architectures around. We ll make many comparisons between the MIPS and 8086
MIPS Assembly Code Layout
Learning MIPS & SPIM MIPS assembly is a low-level programming language The best way to learn any programming language is to write code We will get you started by going through a few example programs and
Summary of the MARIE Assembly Language
Supplement for Assignment # (sections.8 -. of the textbook) Summary of the MARIE Assembly Language Type of Instructions Arithmetic Data Transfer I/O Branch Subroutine call and return Mnemonic ADD X SUBT
Addressing The problem. When & Where do we encounter Data? The concept of addressing data' in computations. The implications for our machine design(s)
Addressing The problem Objectives:- When & Where do we encounter Data? The concept of addressing data' in computations The implications for our machine design(s) Introducing the stack-machine concept Slide
Advanced Computer Architecture-CS501. Computer Systems Design and Architecture 2.1, 2.2, 3.2
Lecture Handout Computer Architecture Lecture No. 2 Reading Material Vincent P. Heuring&Harry F. Jordan Chapter 2,Chapter3 Computer Systems Design and Architecture 2.1, 2.2, 3.2 Summary 1) A taxonomy of
Exception and Interrupt Handling in ARM
Exception and Interrupt Handling in ARM Architectures and Design Methods for Embedded Systems Summer Semester 2006 Author: Ahmed Fathy Mohammed Abdelrazek Advisor: Dominik Lücke Abstract We discuss exceptions
Administration. Instruction scheduling. Modern processors. Examples. Simplified architecture model. CS 412 Introduction to Compilers
CS 4 Introduction to Compilers ndrew Myers Cornell University dministration Prelim tomorrow evening No class Wednesday P due in days Optional reading: Muchnick 7 Lecture : Instruction scheduling pr 0 Modern
Stack machines The MIPS assembly language A simple source language Stack-machine implementation of the simple language Readings: 9.1-9.
Code Generation I Stack machines The MIPS assembly language A simple source language Stack-machine implementation of the simple language Readings: 9.1-9.7 Stack Machines A simple evaluation model No variables
Instruction Set Architecture (ISA) Design. Classification Categories
Instruction Set Architecture (ISA) Design Overview» Classify Instruction set architectures» Look at how applications use ISAs» Examine a modern RISC ISA (DLX)» Measurement of ISA usage in real computers
Instruction Set Design
Instruction Set Design Instruction Set Architecture: to what purpose? ISA provides the level of abstraction between the software and the hardware One of the most important abstraction in CS It s narrow,
picojava TM : A Hardware Implementation of the Java Virtual Machine
picojava TM : A Hardware Implementation of the Java Virtual Machine Marc Tremblay and Michael O Connor Sun Microelectronics Slide 1 The Java picojava Synergy Java s origins lie in improving the consumer
ARM Cortex-M3 Assembly Language
ARM Cortex-M3 Assembly Language When a high level language compiler processes source code, it generates the assembly language translation of all of the high level code into a processor s specific set of
PROBLEMS #20,R0,R1 #$3A,R2,R4
506 CHAPTER 8 PIPELINING (Corrisponde al cap. 11 - Introduzione al pipelining) PROBLEMS 8.1 Consider the following sequence of instructions Mul And #20,R0,R1 #3,R2,R3 #$3A,R2,R4 R0,R2,R5 In all instructions,
Typy danych. Data types: Literals:
Lab 10 MIPS32 Typy danych Data types: Instructions are all 32 bits byte(8 bits), halfword (2 bytes), word (4 bytes) a character requires 1 byte of storage an integer requires 1 word (4 bytes) of storage
Keil C51 Cross Compiler
Keil C51 Cross Compiler ANSI C Compiler Generates fast compact code for the 8051 and it s derivatives Advantages of C over Assembler Do not need to know the microcontroller instruction set Register allocation
Lecture 3 Addressing Modes, Instruction Samples, Machine Code, Instruction Execution Cycle
Lecture 3 Addressing Modes, Instruction Samples, Machine Code, Instruction Execution Cycle Contents 3.1. Register Transfer Notation... 2 3.2. HCS12 Addressing Modes... 2 1. Inherent Mode (INH)... 2 2.
Chapter 2 Topics. 2.1 Classification of Computers & Instructions 2.2 Classes of Instruction Sets 2.3 Informal Description of Simple RISC Computer, SRC
Chapter 2 Topics 2.1 Classification of Computers & Instructions 2.2 Classes of Instruction Sets 2.3 Informal Description of Simple RISC Computer, SRC See Appendix C for Assembly language information. 2.4
2) Write in detail the issues in the design of code generator.
COMPUTER SCIENCE AND ENGINEERING VI SEM CSE Principles of Compiler Design Unit-IV Question and answers UNIT IV CODE GENERATION 9 Issues in the design of code generator The target machine Runtime Storage
Software based Finite State Machine (FSM) with general purpose processors
Software based Finite State Machine (FSM) with general purpose processors White paper Joseph Yiu January 2013 Overview Finite state machines (FSM) are commonly used in electronic designs. FSM can be used
The ARM Architecture. With a focus on v7a and Cortex-A8
The ARM Architecture With a focus on v7a and Cortex-A8 1 Agenda Introduction to ARM Ltd ARM Processors Overview ARM v7a Architecture/Programmers Model Cortex-A8 Memory Management Cortex-A8 Pipeline 2 ARM
CSE 141L Computer Architecture Lab Fall 2003. Lecture 2
CSE 141L Computer Architecture Lab Fall 2003 Lecture 2 Pramod V. Argade CSE141L: Computer Architecture Lab Instructor: TA: Readers: Pramod V. Argade ([email protected]) Office Hour: Tue./Thu. 9:30-10:30
ASSEMBLY LANGUAGE PROGRAMMING (6800) (R. Horvath, Introduction to Microprocessors, Chapter 6)
ASSEMBLY LANGUAGE PROGRAMMING (6800) (R. Horvath, Introduction to Microprocessors, Chapter 6) 1 COMPUTER LANGUAGES In order for a computer to be able to execute a program, the program must first be present
CHAPTER 7: The CPU and Memory
CHAPTER 7: The CPU and Memory The Architecture of Computer Hardware, Systems Software & Networking: An Information Technology Approach 4th Edition, Irv Englander John Wiley and Sons 2010 PowerPoint slides
Figure 1: Graphical example of a mergesort 1.
CSE 30321 Computer Architecture I Fall 2011 Lab 02: Procedure Calls in MIPS Assembly Programming and Performance Total Points: 100 points due to its complexity, this lab will weight more heavily in your
Computer Architecture Lecture 2: Instruction Set Principles (Appendix A) Chih Wei Liu 劉 志 尉 National Chiao Tung University [email protected].
Computer Architecture Lecture 2: Instruction Set Principles (Appendix A) Chih Wei Liu 劉 志 尉 National Chiao Tung University [email protected] Review Computers in mid 50 s Hardware was expensive
Review: MIPS Addressing Modes/Instruction Formats
Review: Addressing Modes Addressing mode Example Meaning Register Add R4,R3 R4 R4+R3 Immediate Add R4,#3 R4 R4+3 Displacement Add R4,1(R1) R4 R4+Mem[1+R1] Register indirect Add R4,(R1) R4 R4+Mem[R1] Indexed
Computer Architectures
Computer Architectures 2. Instruction Set Architectures 2015. február 12. Budapest Gábor Horváth associate professor BUTE Dept. of Networked Systems and Services [email protected] 2 Instruction set architectures
How To Understand The Design Of A Microprocessor
Computer Architecture R. Poss 1 What is computer architecture? 2 Your ideas and expectations What is part of computer architecture, what is not? Who are computer architects, what is their job? What is
MACHINE ARCHITECTURE & LANGUAGE
in the name of God the compassionate, the merciful notes on MACHINE ARCHITECTURE & LANGUAGE compiled by Jumong Chap. 9 Microprocessor Fundamentals A system designer should consider a microprocessor-based
Comp 255Q - 1M: Computer Organization Lab #3 - Machine Language Programs for the PDP-8
Comp 255Q - 1M: Computer Organization Lab #3 - Machine Language Programs for the PDP-8 January 22, 2013 Name: Grade /10 Introduction: In this lab you will write, test, and execute a number of simple PDP-8
Here is a diagram of a simple computer system: (this diagram will be the one needed for exams) CPU. cache
Computer Systems Here is a diagram of a simple computer system: (this diagram will be the one needed for exams) CPU cache bus memory controller keyboard controller display controller disk Computer Systems
LSN 2 Computer Processors
LSN 2 Computer Processors Department of Engineering Technology LSN 2 Computer Processors Microprocessors Design Instruction set Processor organization Processor performance Bandwidth Clock speed LSN 2
An Overview of Stack Architecture and the PSC 1000 Microprocessor
An Overview of Stack Architecture and the PSC 1000 Microprocessor Introduction A stack is an important data handling structure used in computing. Specifically, a stack is a dynamic set of elements in which
VLIW Processors. VLIW Processors
1 VLIW Processors VLIW ( very long instruction word ) processors instructions are scheduled by the compiler a fixed number of operations are formatted as one big instruction (called a bundle) usually LIW
CPU Organization and Assembly Language
COS 140 Foundations of Computer Science School of Computing and Information Science University of Maine October 2, 2015 Outline 1 2 3 4 5 6 7 8 Homework and announcements Reading: Chapter 12 Homework:
a storage location directly on the CPU, used for temporary storage of small amounts of data during processing.
CS143 Handout 18 Summer 2008 30 July, 2008 Processor Architectures Handout written by Maggie Johnson and revised by Julie Zelenski. Architecture Vocabulary Let s review a few relevant hardware definitions:
Notes on Assembly Language
Notes on Assembly Language Brief introduction to assembly programming The main components of a computer that take part in the execution of a program written in assembly code are the following: A set of
ARM. Architecture and Assembly. Modest Goal: Turn on an LED
ARM Architecture and Assembly Modest Goal: Turn on an LED Package on Package Broadcom 2865 ARM Processor Samsung 2Gb SDRAM (John) von Neumann Architecture Instructions and data stored in the same memory
612 CHAPTER 11 PROCESSOR FAMILIES (Corrisponde al cap. 12 - Famiglie di processori) PROBLEMS
612 CHAPTER 11 PROCESSOR FAMILIES (Corrisponde al cap. 12 - Famiglie di processori) PROBLEMS 11.1 How is conditional execution of ARM instructions (see Part I of Chapter 3) related to predicated execution
Lecture 2. Binary and Hexadecimal Numbers
Lecture 2 Binary and Hexadecimal Numbers Purpose: Review binary and hexadecimal number representations Convert directly from one base to another base Review addition and subtraction in binary representations
A-level COMPUTER SCIENCE
A-level COMPUTER SCIENCE Paper 2 TBC am/pm 2 hours 30 minutes Materials There are no additional materials required for this paper. Instructions Use black ink or black ball-point pen. Fill in the boxes
Operating Systems. Virtual Memory
Operating Systems Virtual Memory Virtual Memory Topics. Memory Hierarchy. Why Virtual Memory. Virtual Memory Issues. Virtual Memory Solutions. Locality of Reference. Virtual Memory with Segmentation. Page
More on Pipelining and Pipelines in Real Machines CS 333 Fall 2006 Main Ideas Data Hazards RAW WAR WAW More pipeline stall reduction techniques Branch prediction» static» dynamic bimodal branch prediction
Graded ARM assembly language Examples
Graded ARM assembly language Examples These examples have been created to help students with the basics of Keil s ARM development system. I am providing a series of examples that demonstrate the ARM s
Lecture Outline. Stack machines The MIPS assembly language. Code Generation (I)
Lecture Outline Code Generation (I) Stack machines The MIPS assembl language Adapted from Lectures b Profs. Ale Aiken and George Necula (UCB) A simple source language Stack- machine implementation of the
Chapter 7D The Java Virtual Machine
This sub chapter discusses another architecture, that of the JVM (Java Virtual Machine). In general, a VM (Virtual Machine) is a hypothetical machine (implemented in either hardware or software) that directly
CS412/CS413. Introduction to Compilers Tim Teitelbaum. Lecture 20: Stack Frames 7 March 08
CS412/CS413 Introduction to Compilers Tim Teitelbaum Lecture 20: Stack Frames 7 March 08 CS 412/413 Spring 2008 Introduction to Compilers 1 Where We Are Source code if (b == 0) a = b; Low-level IR code
COMP 303 MIPS Processor Design Project 4: MIPS Processor Due Date: 11 December 2009 23:59
COMP 303 MIPS Processor Design Project 4: MIPS Processor Due Date: 11 December 2009 23:59 Overview: In the first projects for COMP 303, you will design and implement a subset of the MIPS32 architecture
Central Processing Unit (CPU)
Central Processing Unit (CPU) CPU is the heart and brain It interprets and executes machine level instructions Controls data transfer from/to Main Memory (MM) and CPU Detects any errors In the following
Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives
Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,
Faculty of Engineering Student Number:
Philadelphia University Student Name: Faculty of Engineering Student Number: Dept. of Computer Engineering Final Exam, First Semester: 2012/2013 Course Title: Microprocessors Date: 17/01//2013 Course No:
language 1 (source) compiler language 2 (target) Figure 1: Compiling a program
CS 2112 Lecture 27 Interpreters, compilers, and the Java Virtual Machine 1 May 2012 Lecturer: Andrew Myers 1 Interpreters vs. compilers There are two strategies for obtaining runnable code from a program
CS101 Lecture 26: Low Level Programming. John Magee 30 July 2013 Some material copyright Jones and Bartlett. Overview/Questions
CS101 Lecture 26: Low Level Programming John Magee 30 July 2013 Some material copyright Jones and Bartlett 1 Overview/Questions What did we do last time? How can we control the computer s circuits? How
(Refer Slide Time: 00:01:16 min)
Digital Computer Organization Prof. P. K. Biswas Department of Electronic & Electrical Communication Engineering Indian Institute of Technology, Kharagpur Lecture No. # 04 CPU Design: Tirning & Control
6. Control Structures
- 35 - Control Structures: 6. Control Structures A program is usually not limited to a linear sequence of instructions. During its process it may bifurcate, repeat code or take decisions. For that purpose,
Board Notes on Virtual Memory
Board Notes on Virtual Memory Part A: Why Virtual Memory? - Letʼs user program size exceed the size of the physical address space - Supports protection o Donʼt know which program might share memory at
TIMING DIAGRAM O 8085
5 TIMING DIAGRAM O 8085 5.1 INTRODUCTION Timing diagram is the display of initiation of read/write and transfer of data operations under the control of 3-status signals IO / M, S 1, and S 0. As the heartbeat
Microprocessor and Microcontroller Architecture
Microprocessor and Microcontroller Architecture 1 Von Neumann Architecture Stored-Program Digital Computer Digital computation in ALU Programmable via set of standard instructions input memory output Internal
M A S S A C H U S E T T S I N S T I T U T E O F T E C H N O L O G Y DEPARTMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE
M A S S A C H U S E T T S I N S T I T U T E O F T E C H N O L O G Y DEPARTMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE 1. Introduction 6.004 Computation Structures β Documentation This handout is
Outline. Lecture 3. Basics. Logical vs. physical memory. 8086 physical memory. x86 byte ordering
Outline Lecture 3 bout Memory ddressing memory Data types MOV instruction ddressing modes Instruction format Dr. Dimitrios S. Nikolopoulos SL/UIU Basics Logical vs. physical memory Memory in the x processors
The 104 Duke_ACC Machine
The 104 Duke_ACC Machine The goal of the next two lessons is to design and simulate a simple accumulator-based processor. The specifications for this processor and some of the QuartusII design components
MICROPROCESSOR AND MICROCOMPUTER BASICS
Introduction MICROPROCESSOR AND MICROCOMPUTER BASICS At present there are many types and sizes of computers available. These computers are designed and constructed based on digital and Integrated Circuit
Processor Architectures
ECPE 170 Jeff Shafer University of the Pacific Processor Architectures 2 Schedule Exam 3 Tuesday, December 6 th Caches Virtual Memory Input / Output OperaKng Systems Compilers & Assemblers Processor Architecture
PROBLEMS (Cap. 4 - Istruzioni macchina)
98 CHAPTER 2 MACHINE INSTRUCTIONS AND PROGRAMS PROBLEMS (Cap. 4 - Istruzioni macchina) 2.1 Represent the decimal values 5, 2, 14, 10, 26, 19, 51, and 43, as signed, 7-bit numbers in the following binary
Computer Organization. and Instruction Execution. August 22
Computer Organization and Instruction Execution August 22 CSC201 Section 002 Fall, 2000 The Main Parts of a Computer CSC201 Section Copyright 2000, Douglas Reeves 2 I/O and Storage Devices (lots of devices,
ELEG3924 Microprocessor Ch.7 Programming In C
Department of Electrical Engineering University of Arkansas ELEG3924 Microprocessor Ch.7 Programming In C Dr. Jingxian Wu [email protected] OUTLINE 2 Data types and time delay I/O programming and Logic operations
Interpreters and virtual machines. Interpreters. Interpreters. Why interpreters? Tree-based interpreters. Text-based interpreters
Interpreters and virtual machines Michel Schinz 2007 03 23 Interpreters Interpreters Why interpreters? An interpreter is a program that executes another program, represented as some kind of data-structure.
Overview. CISC Developments. RISC Designs. CISC Designs. VAX: Addressing Modes. Digital VAX
Overview CISC Developments Over Twenty Years Classic CISC design: Digital VAX VAXÕs RISC successor: PRISM/Alpha IntelÕs ubiquitous 80x86 architecture Ð 8086 through the Pentium Pro (P6) RJS 2/3/97 Philosophy
Systems I: Computer Organization and Architecture
Systems I: Computer Organization and Architecture Lecture : Microprogrammed Control Microprogramming The control unit is responsible for initiating the sequence of microoperations that comprise instructions.
ios applications reverse engineering Julien Bachmann [email protected]
ios applications reverse engineering 1 Julien Bachmann [email protected] Agenda Motivations The architecture Mach-O Objective-C ARM AppStore binaries Find'em Decrypt'em Reverse'em What to look for Where to
8-Bit Flash Microcontroller for Smart Cards. AT89SCXXXXA Summary. Features. Description. Complete datasheet available under NDA
Features Compatible with MCS-51 products On-chip Flash Program Memory Endurance: 1,000 Write/Erase Cycles On-chip EEPROM Data Memory Endurance: 100,000 Write/Erase Cycles 512 x 8-bit RAM ISO 7816 I/O Port
Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C
Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C 1 An essential part of any embedded system design Programming 2 Programming in Assembly or HLL Processor and memory-sensitive
How It All Works. Other M68000 Updates. Basic Control Signals. Basic Control Signals
CPU Architectures Motorola 68000 Several CPU architectures exist currently: Motorola Intel AMD (Advanced Micro Devices) PowerPC Pick one to study; others will be variations on this. Arbitrary pick: Motorola
150127-Microprocessor & Assembly Language
Chapter 3 Z80 Microprocessor Architecture The Z 80 is one of the most talented 8 bit microprocessors, and many microprocessor-based systems are designed around the Z80. The Z80 microprocessor needs an
PART B QUESTIONS AND ANSWERS UNIT I
PART B QUESTIONS AND ANSWERS UNIT I 1. Explain the architecture of 8085 microprocessor? Logic pin out of 8085 microprocessor Address bus: unidirectional bus, used as high order bus Data bus: bi-directional
Introducción. Diseño de sistemas digitales.1
Introducción Adapted from: Mary Jane Irwin ( www.cse.psu.edu/~mji ) www.cse.psu.edu/~cg431 [Original from Computer Organization and Design, Patterson & Hennessy, 2005, UCB] Diseño de sistemas digitales.1
CSE 141 Introduction to Computer Architecture Summer Session I, 2005. Lecture 1 Introduction. Pramod V. Argade June 27, 2005
CSE 141 Introduction to Computer Architecture Summer Session I, 2005 Lecture 1 Introduction Pramod V. Argade June 27, 2005 CSE141: Introduction to Computer Architecture Instructor: Pramod V. Argade ([email protected])
How to Run the MQX RTOS on Various RAM Memories for i.mx 6SoloX
Freescale Semiconductor, Inc. Document Number: AN5127 Application Note Rev. 1, 05/2015 How to Run the MQX RTOS on Various RAM Memories for i.mx 6SoloX 1 Introduction This document describes how to customize
Developer Suite ARM. Assembler Guide. Version 1.2. Copyright 2000, 2001 ARM Limited. All rights reserved. ARM DUI 0068B
ARM Developer Suite Version 1.2 Assembler Guide Copyright 2000, 2001 ARM Limited. All rights reserved. ARM DUI 0068B ARM Developer Suite Assembler Guide Copyright 2000, 2001 ARM Limited. All rights reserved.
Central Processing Unit Simulation Version v2.5 (July 2005) Charles André University Nice-Sophia Antipolis
Central Processing Unit Simulation Version v2.5 (July 2005) Charles André University Nice-Sophia Antipolis 1 1 Table of Contents 1 Table of Contents... 3 2 Overview... 5 3 Installation... 7 4 The CPU
9 Control Statements. 9.1 Introduction. 9.2 Objectives. 9.3 Statements
9 Control Statements 9.1 Introduction The normal flow of execution in a high level language is sequential, i.e., each statement is executed in the order of its appearance in the program. However, depending
EE282 Computer Architecture and Organization Midterm Exam February 13, 2001. (Total Time = 120 minutes, Total Points = 100)
EE282 Computer Architecture and Organization Midterm Exam February 13, 2001 (Total Time = 120 minutes, Total Points = 100) Name: (please print) Wolfe - Solution In recognition of and in the spirit of the
Computers. Hardware. The Central Processing Unit (CPU) CMPT 125: Lecture 1: Understanding the Computer
Computers CMPT 125: Lecture 1: Understanding the Computer Tamara Smyth, [email protected] School of Computing Science, Simon Fraser University January 3, 2009 A computer performs 2 basic functions: 1.
Efficient Low-Level Software Development for the i.mx Platform
Freescale Semiconductor Application Note Document Number: AN3884 Rev. 0, 07/2009 Efficient Low-Level Software Development for the i.mx Platform by Multimedia Applications Division Freescale Semiconductor,
How To Write A Microsoft Microsoft 8D (Droid) (Program) (Powerbook) (I386) (Microsoft) (Donga) (Opera) And (Dungeo) (Dugeo
CPU08 Central Processor Unit Reference Manual M68HC08 Microcontrollers CPU08RM Rev. 02/2006 freescale.com CPU08 Central Processor Unit Reference Manual To provide the most up-to-date information, the
Let s put together a Manual Processor
Lecture 14 Let s put together a Manual Processor Hardware Lecture 14 Slide 1 The processor Inside every computer there is at least one processor which can take an instruction, some operands and produce
