Processors, FPGAs, and ASICs
|
|
- Kerrie Merritt
- 5 years ago
- Views:
Transcription
1 Processors, FPGAs, and ASICs p. 1/? Processors, FPGAs, and ASICs CSEE W4840 Prof. Stephen A. Edwards Columbia University
2 Processors, FPGAs, and ASICs p. 2/? Spectrum of IC choices Full Custom You choose polygons (Intel) Flexibility ASIC Gate Array circuit (Sony) wires FPGA PLD GP Processor SP Processor Multifunction Fixed-function logic network logic function program (e.g., Pentium) program (e.g., DSP) settings (e.g., Ethernet) part number (e.g., 74LS00)
3 Processors, FPGAs, and ASICs p. 3/? NMOS Transistor Cross Section Al n+ poly Al ox n+ p
4 Processors, FPGAs, and ASICs p. 4/? Inverter Transistors and Layout V dd V dd x x x V ss V ss x
5 Processors, FPGAs, and ASICs p. 5/? NAND Gate Transistors and Layout V dd V dd y x y x y x V ss V ss x y
6 Full-custom ICs Processors, FPGAs, and ASICs p. 6/?
7 Standard Cell ASICs Processors, FPGAs, and ASICs p. 7/?
8 Standard Cell ASICs Processors, FPGAs, and ASICs p. 8/?
9 Channeled Gate Arrays Processors, FPGAs, and ASICs p. 9/?
10 Channeled Gate Arrays Processors, FPGAs, and ASICs p. 10/?
11 Sea-of-Gates Gate Arrays Processors, FPGAs, and ASICs p. 11/?
12 Processors, FPGAs, and ASICs p. 12/? FPGAs: Floorplan DLL DLL BLOCK RAM BLOCK RAM CLBs CLBs CLBs CLBs BLOCK RAM BLOCK RAM DLL DLL I/O LOGIC
13 FPGAs: Routing Processors, FPGAs, and ASICs p. 13/?
14 G4 G3 G2 G1 F5IN BY SR F4 F3 F2 F1 BX CIN CLK CE I4 I3 I2 I1 I4 I3 I2 I1 Look-Up Table Look-Up Table O O Carry and Control Logic Carry and Control Logic D CK EC D CK EC S R S R Q Q COUT YB Y YQ XB X XQ FPGAs: CLB Processors, FPGAs, and ASICs p. 14/?
15 PLAs/CPLDs: The 22v10 CLK/I 1 Increments First Fuse Numbers Macrocell 23 Async (to all I/O/Q 396 P = 5808 R = Macrocell 22 I/O/Q I P = 5810 R = Macrocell 21 I/O/Q I P = 5812 R = Macrocell 20 I/O/Q 2112 Processors, FPGAs, and ASICs p. 15/?
16 Processors, FPGAs, and ASICs p. 16/? Example: Euclid s Algorithm int gcd(int m, int n) { int r; while ((r = m % n)!= 0) { m = n; n = r; } return n; }
17 Processors, FPGAs, and ASICs p. 17/? i386 Programmer s Model eax Mostly cs Code segment ebx General- ds Data segment ecx Purpose- ss Stack segment edx Registers es Extra segment esi edi Source index Destination index fs gs Data segment Data segment ebp Base pointer esp Stack pointer eflags Status word eip Instruction Pointer
18 Processors, FPGAs, and ASICs p. 18/? Euclid on the i386 gcd: pushl %ebp movl %esp,%ebp pushl %ebx movl 8(%ebp),%eax movl 12(%ebp),%ecx jmp.l6.l4: movl %ecx,%eax movl %ebx,%ecx.l6: cltd idivl %ecx movl %edx,%ebx testl %edx,%edx jne.l4 movl %ecx,%eax movl -4(%ebp),%ebx leave ret
19 Processors, FPGAs, and ASICs p. 19/? SPARC Programmer s Model 31 0 r0 Always 0 r1 Global Registers. r7 r8/o0 Output Registers. r14/o6 Stack Pointer r15/o7 r16/l0 Local Registers. r23/l r24/i0. r30/i6 r31/i7 PSW PC npc Input Registers Frame Pointer Return Address Status Word Program Counter Next PC
20 Processors, FPGAs, and ASICs p. 20/? SPARC Register Windows The output registers of the calling procedure become the inputs to the called procedure The global registers remain unchanged The local registers are not visible across procedures r8/o0. r15/o7 r16/l0. r23/l7 r8/o0 r24/i0.. r15/o7 r31/i7 r16/l0. r23/l7 r8/o0 r24/i0.. r15/o7 r31/i7 r16/l0. r23/l7 r24/i0. r31/i7
21 Euclid on the SPARC gcd: save %sp, -112, %sp mov %i0, %o1 b.ll3 mov %i1, %i0 mov %i0, %o1 b.ll3 mov %i1, %i0.ll5: mov %o0, %i0.ll3: mov %o1, %o0 call.rem, 0 mov %i0, %o1 cmp %o0, 0 bne.ll5 mov %i0, %o1 ret Processors, FPGAs, and ASICs p. 21/?
22 Processors, FPGAs, and ASICs p. 22/? Motorola DSP Memory Expansion Area Triple Timer Host Interface (HI32) ESSI SCI Program RAM (Default) X Data RAM (Default) Y Data RAM (Default) Address Generation Unit Six Channel DMA Unit Bootstrap ROM Internal Data Bus Switch PIO_EB Peripheral Expansion Area PM_EB DDB YDB XDB PDB GDB YAB XAB PAB DAB 24-Bit DSP56300 Core XM_EB YM_EB External Address Bus Switch External Bus Interface and I - Cache Control External Data Bus Switch 24 ADDRESS 14 CONTROL 24 DATA EXTAL XTAL Clock Generator PLL Program Interrupt Controller Program Decode Controller Program Address Generator Power Management Data ALU bit JTAG MAC OnCE Two 56-bit Accumulators DE 56-bit Barrel Shifter RESET PINIT/NMI 2 MODD/IRQA MODC/IRQB MODB/IRQC MODA/IRQD
23 Processors, FPGAs, and ASICs p. 23/? DSP Programmer s Model x1 x0 Source y1 y0 Registers a2 a1 a0 Accumulator b2 b1 b0 Accumulator 15 0 r7. r4 r3. r n7. n4 n3. n m7. m4 m3. m0 Address Registers 15 0 Program Counter Status Register Loop Address Loop Count 15 PC Stack SR Stack. 0 Stack pointer
24 Processors, FPGAs, and ASICs p. 24/? Motorola DSP56301 ALU X Data Bus Y Data Bus P Data Bus Immediate Field X0 X1 Y0 Y MUX Multiplier Pipeline Register Bit Field Unit and Barrel Shifter 48 Forwarding Register Accumulator and Rounding Unit Accumulator Shifter A (56) B (56) Shifter/Limiter 24 24
25 Processors, FPGAs, and ASICs p. 25/? Motorola DSP56301 AGU Low Address ALU High Address ALU XAB YAB PAB Triple Multiplexer EP N0 M0 R0 R4 M4 N4 N1 N2 M1 M2 Address ALU R1 R2 R5 R6 Address ALU M5 M6 N5 N6 N3 M3 R3 R7 M7 N7 Global Data Bus Program Address Bus
26 Processors, FPGAs, and ASICs p. 26/? FIR Filter in move #samples, r0 move #coeffs, r4 move #n-1, m0 move m0, m4 movep y:input, x:(r0) clr a x:(r0)+, x0 y:(r4)+, y0 rep #n-1 mac x0,y0,a x:(r0)+, x0 y:(r4)+, y0 macr x0,y0,a (r0)- movep a, y:output
27 Processors, FPGAs, and ASICs p. 27/? TI TMS320C6000 VLIW DSP src1.l1 src2 Data path A ST1 dst long dst long src 8 8 long src long dst dst.s1 src Register file A (A0 A15) src2.m1 dst src1 src2 DA1 LD1.D1 dst src1 src2 2X DA2 LD2.D2 src2 src1 dst 1X src2 Data path B ST2.M2 src1 dst src2 src1.s2 dst long dst long src long src long dst dst.l2 src Register file B (B0 B15) src1 Control register file
28 Processors, FPGAs, and ASICs p. 28/? FIR in One C6 Assembly Instruction Load a halfword (16 bits) Do this on unit D1 FIRLOOP: LDH.D1 *A1++, A2 ; Fetch next sample LDH.D2 *B1++, B2 ; Fetch next coeff. [B0] SUB.L2 B0, 1, B0 ; Decrement count [B0] B.S2 FIRLOOP ; Branch if non-zero MPY.M1X A2, B2, A3 ; Sample Coeff. ADD.L1 A4, A3, A4 ; Accumulate result Use the cross path Predicated instruction (only if B0 non-zero) Run these instruction in parallel
29 Processors, FPGAs, and ASICs p. 29/? AX88796 Ethernet Controller EECS EECK EEDI EEDO Print Port or General I/O SPP / GPIO 8K* 16 SRAM and Memory Arbiter SEEPROM I/F NE2000 Registers Host Interface Remote DMA FIFOs STA MAC Core & PHY+ Tranceiver SMDC SMDIO TPI, TPO MII I/F Ctl BUS SA[9:0] SD[15:0]
30 Ethernet Controller Registers PAGE 0 (PS1=0,PS0=0) OFFSET READ WRITE 00H Command Register ( CR ) Command Register ( CR ) 01H Page Start Register ( PSTART ) Page Start Register ( PSTART ) 02H Page Stop Register ( PSTOP ) Page Stop Register ( PSTOP ) 03H Boundary Pointer ( BNRY ) Boundary Pointer ( BNRY ) 04H Transmit Status Register ( TSR ) Transmit Page Start Address ( TPSR ) 05H Number of Collisions Register ( NCR ) Transmit Byte Count Register 0 ( TBCR0 ) 06H Current Page Register ( CPR ) Transmit Byte Count Register 1 ( TBCR1 ) 07H Interrupt Status Register ( ISR ) Interrupt Status Register ( ISR ) 08H Current Remote DMA Address 0 ( CRDA0 ) Remote Start Address Register 0 ( RSAR0 ) 09H Current Remote DMA Address 1 ( CRDA1 ) Remote Start Address Register 1 ( RSAR1 ) 0AH Reserved Remote Byte Count 0 ( RBCR0 ) 0BH Reserved Remote Byte Count 1 ( RBCR1 ) 0CH Receive Status Register Receive Configuration Register Processors, FPGAs, and ASICs p. 30/?
31 Philips SAA7114H Video Decoder Processors, FPGAs, and ASICs p. 31/?
32 SAA7114H Registers, page 1 of 7 (!) Processors, FPGAs, and ASICs p. 32/?
33 Processors, FPGAs, and ASICs p. 33/? Fixed-function: The 7400 series D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 ge 1 2 1A 1B 1Y 3 D D D D D D D D 4 5 2A 2B 2Y 6 CP CP Q CP Q CP Q CP Q CP Q CP Q CP Q CP Q A 3B 3Y A 4B 4Y 11 OE Q 0 Q 1 Q 2 Q 3 Q 4 Q 5 Q 6 Q Quad NAND Gate Octal D Flip-Flop
Processors, FPGAs, and ASICs
Processors, FPGAs, and ASICs Prof. Stephen A. Edwards sedwards@cs.columbia.edu Columbia University Spring 2011 Processors, FPGAs, and ASICs p. Spectrum of IC choices Full Custom You choose polygons (Intel)
More informationProcessors, FPGAs, and ASICs
Processors, FPGAs, and ASICs Stephen A. Edwards Columbia University Spring 2012 Spectrum of IC choices Flexible, efficient Full Custom You choose Polygons (Intel) ASIC Gate Array Circuit (Sony) Wires FPGA
More informationTutorial Introduction
Tutorial Introduction PURPOSE: This tutorial describes the key features of the DSP56300 family of processors. OBJECTIVES: Describe the main features of the DSP 24-bit core. Identify the features and functions
More informationHardware and Software Architecture. Chapter 2
Hardware and Software Architecture Chapter 2 1 Basic Components The x86 processor communicates with main memory and I/O devices via buses Data bus for transferring data Address bus for the address of a
More informationDeveloping DSP56364 Software Using the DSP56362 EVM
AN1810/D Rev. O, 8/99 Developing DSP56364 Software Using the DSP56362 EVM by Miguel Moreno This application note is intended for programmers that wish to develop DSP56364 software on a DSP56362EVM. The
More informationAdvance Information 24-BIT GENERAL PURPOSE DIGITAL SIGNAL PROCESSOR
MOTOROLA SEMICONDUCTOR PRODUCT BRIEF Order this document by: DSP56309PB/D, Rev 0 DSP56309 Advance Information 24-BIT GENERAL PURPOSE DIGITAL SIGNAL PROCESSOR The DSP56309 is a member of the DSP56300 core
More informationCS 31: Intro to Systems ISAs and Assembly. Martin Gagné Swarthmore College February 7, 2017
CS 31: Intro to Systems ISAs and Assembly Martin Gagné Swarthmore College February 7, 2017 ANNOUNCEMENT All labs will meet in SCI 252 (the robot lab) tomorrow. Overview How to directly interact with hardware
More informationWe can study computer architectures by starting with the basic building blocks. Adders, decoders, multiplexors, flip-flops, registers,...
COMPUTER ARCHITECTURE II: MICROPROCESSOR PROGRAMMING We can study computer architectures by starting with the basic building blocks Transistors and logic gates To build more complex circuits Adders, decoders,
More informationThe Instruction Set. Chapter 5
The Instruction Set Architecture Level(ISA) Chapter 5 1 ISA Level The ISA level l is the interface between the compilers and the hardware. (ISA level code is what a compiler outputs) 2 Memory Models An
More informationMachine-level Representation of Programs. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University
Machine-level Representation of Programs Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Program? 짬뽕라면 준비시간 :10 분, 조리시간 :10 분 재료라면 1개, 스프 1봉지, 오징어
More informationComplex Instruction Set Computer (CISC)
Introduction ti to IA-32 IA-32 Processors Evolutionary design Starting in 1978 with 886 Added more features as time goes on Still support old features, although obsolete Totally dominate computer market
More informationIntroduction to IA-32. Jo, Heeseung
Introduction to IA-32 Jo, Heeseung IA-32 Processors Evolutionary design Starting in 1978 with 8086 Added more features as time goes on Still support old features, although obsolete Totally dominate computer
More informationINTRODUCTION TO IA-32. Jo, Heeseung
INTRODUCTION TO IA-32 Jo, Heeseung IA-32 PROCESSORS Evolutionary design Starting in 1978 with 8086 Added more features as time goes on Still support old features, although obsolete Totally dominate computer
More informationTurning C into Object Code Code in files p1.c p2.c Compile with command: gcc -O p1.c p2.c -o p Use optimizations (-O) Put resulting binary in file p
Turning C into Object Code Code in files p1.c p2.c Compile with command: gcc -O p1.c p2.c -o p Use optimizations (-O) Put resulting binary in file p text C program (p1.c p2.c) Compiler (gcc -S) text Asm
More informationCS 31: Intro to Systems ISAs and Assembly. Kevin Webb Swarthmore College September 25, 2018
CS 31: Intro to Systems ISAs and Assembly Kevin Webb Swarthmore College September 25, 2018 Overview How to directly interact with hardware Instruction set architecture (ISA) Interface between programmer
More informationADVANCED PROCESSOR ARCHITECTURES AND MEMORY ORGANISATION Lesson-11: 80x86 Architecture
ADVANCED PROCESSOR ARCHITECTURES AND MEMORY ORGANISATION Lesson-11: 80x86 Architecture 1 The 80x86 architecture processors popular since its application in IBM PC (personal computer). 2 First Four generations
More informationCS 31: Intro to Systems ISAs and Assembly. Kevin Webb Swarthmore College February 9, 2016
CS 31: Intro to Systems ISAs and Assembly Kevin Webb Swarthmore College February 9, 2016 Reading Quiz Overview How to directly interact with hardware Instruction set architecture (ISA) Interface between
More informationAssembly Language. Lecture 2 - x86 Processor Architecture. Ahmed Sallam
Assembly Language Lecture 2 - x86 Processor Architecture Ahmed Sallam Introduction to the course Outcomes of Lecture 1 Always check the course website Don t forget the deadline rule!! Motivations for studying
More informationAddressing Modes on the x86
Addressing Modes on the x86 register addressing mode mov ax, ax, mov ax, bx mov ax, cx mov ax, dx constant addressing mode mov ax, 25 mov bx, 195 mov cx, 2056 mov dx, 1000 accessing data in memory There
More informationFor your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents at a Glance links to
For your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents at a Glance links to access them. Contents at a Glance About the Author...xi
More informationMoodle WILLINGDON COLLEGE SANGLI (B. SC.-II) Digital Electronics
Moodle 4 WILLINGDON COLLEGE SANGLI (B. SC.-II) Digital Electronics Advanced Microprocessors and Introduction to Microcontroller Moodle developed By Dr. S. R. Kumbhar Department of Electronics Willingdon
More informationSECTION 5 ADDRESS GENERATION UNIT AND ADDRESSING MODES
SECTION 5 ADDRESS GENERATION UNIT AND ADDRESSING MODES This section contains three major subsections. The first subsection describes the hardware architecture of the address generation unit (AGU); the
More informationMICROPROCESSOR TECHNOLOGY
MICROPROCESSOR TECHNOLOGY Assis. Prof. Hossam El-Din Moustafa Lecture 5 Ch.2 A Top-Level View of Computer Function (Cont.) 24-Feb-15 1 CPU (CISC & RISC) Intel CISC, Motorola RISC CISC (Complex Instruction
More informationadministrivia today start assembly probably won t finish all these slides Assignment 4 due tomorrow any questions?
administrivia today start assembly probably won t finish all these slides Assignment 4 due tomorrow any questions? exam on Wednesday today s material not on the exam 1 Assembly Assembly is programming
More informationAssembly Language. Lecture 2 x86 Processor Architecture
Assembly Language Lecture 2 x86 Processor Architecture Ahmed Sallam Slides based on original lecture slides by Dr. Mahmoud Elgayyar Introduction to the course Outcomes of Lecture 1 Always check the course
More informationEXPERIMENT WRITE UP. LEARNING OBJECTIVES: 1. Get hands on experience with Assembly Language Programming 2. Write and debug programs in TASM/MASM
EXPERIMENT WRITE UP AIM: Assembly language program for 16 bit BCD addition LEARNING OBJECTIVES: 1. Get hands on experience with Assembly Language Programming 2. Write and debug programs in TASM/MASM TOOLS/SOFTWARE
More informationLecture 15 Intel Manual, Vol. 1, Chapter 3. Fri, Mar 6, Hampden-Sydney College. The x86 Architecture. Robb T. Koether. Overview of the x86
Lecture 15 Intel Manual, Vol. 1, Chapter 3 Hampden-Sydney College Fri, Mar 6, 2009 Outline 1 2 Overview See the reference IA-32 Intel Software Developer s Manual Volume 1: Basic, Chapter 3. Instructions
More informationThe Microprocessor and its Architecture
The Microprocessor and its Architecture Contents Internal architecture of the Microprocessor: The programmer s model, i.e. The registers model The processor model (organization) Real mode memory addressing
More informationSECTION 5 PROGRAM CONTROL UNIT
SECTION 5 PROGRAM CONTROL UNIT MOTOROLA PROGRAM CONTROL UNIT 5-1 SECTION CONTENTS SECTION 5.1 PROGRAM CONTROL UNIT... 3 SECTION 5.2 OVERVIEW... 3 SECTION 5.3 PROGRAM CONTROL UNIT (PCU) ARCHITECTURE...
More informationLow-Level Essentials for Understanding Security Problems Aurélien Francillon
Low-Level Essentials for Understanding Security Problems Aurélien Francillon francill@eurecom.fr Computer Architecture The modern computer architecture is based on Von Neumann Two main parts: CPU (Central
More informationBasic Execution Environment
Basic Execution Environment 3 CHAPTER 3 BASIC EXECUTION ENVIRONMENT This chapter describes the basic execution environment of an Intel Architecture processor as seen by assembly-language programmers.
More informationFreescale Semiconductor, I SECTION 6 PROGRAM CONTROL UNIT
nc. SECTION 6 PROGRAM CONTROL UNIT This section describes the hardware of the program control unit and concludes with a description of the programming model. The instruction pipeline description is also
More informationCS241 Computer Organization Spring 2015 IA
CS241 Computer Organization Spring 2015 IA-32 2-10 2015 Outline! Review HW#3 and Quiz#1! More on Assembly (IA32) move instruction (mov) memory address computation arithmetic & logic instructions (add,
More informationW4118: PC Hardware and x86. Junfeng Yang
W4118: PC Hardware and x86 Junfeng Yang A PC How to make it do something useful? 2 Outline PC organization x86 instruction set gcc calling conventions PC emulation 3 PC board 4 PC organization One or more
More informationx86 architecture et similia
x86 architecture et similia 1 FREELY INSPIRED FROM CLASS 6.828, MIT A full PC has: PC architecture 2 an x86 CPU with registers, execution unit, and memory management CPU chip pins include address and data
More informationChapter 11. Addressing Modes
Chapter 11 Addressing Modes 1 2 Chapter 11 11 1 Register addressing mode is the most efficient addressing mode because the operands are in the processor itself (there is no need to access memory). Chapter
More informationProgram controlled semiconductor device (IC) which fetches (from memory), decodes and executes instructions.
8086 Microprocessor Microprocessor Program controlled semiconductor device (IC) which fetches (from memory), decodes and executes instructions. It is used as CPU (Central Processing Unit) in computers.
More informationLow Level Programming Lecture 2. International Faculty of Engineerig, Technical University of Łódź
Low Level Programming Lecture 2 Intel processors' architecture reminder Fig. 1. IA32 Registers IA general purpose registers EAX- accumulator, usually used to store results of integer arithmetical or binary
More informationICS143A: Principles of Operating Systems. Midterm recap, sample questions. Anton Burtsev February, 2017
ICS143A: Principles of Operating Systems Midterm recap, sample questions Anton Burtsev February, 2017 Describe the x86 address translation pipeline (draw figure), explain stages. Address translation What
More informationThe x86 Architecture
The x86 Architecture Lecture 24 Intel Manual, Vol. 1, Chapter 3 Robb T. Koether Hampden-Sydney College Fri, Mar 20, 2015 Robb T. Koether (Hampden-Sydney College) The x86 Architecture Fri, Mar 20, 2015
More informationMACHINE-LEVEL PROGRAMMING I: BASICS COMPUTER ARCHITECTURE AND ORGANIZATION
MACHINE-LEVEL PROGRAMMING I: BASICS COMPUTER ARCHITECTURE AND ORGANIZATION Today: Machine Programming I: Basics History of Intel processors and architectures C, assembly, machine code Assembly Basics:
More informationInstruction Set Architectures
Instruction Set Architectures ISAs Brief history of processors and architectures C, assembly, machine code Assembly basics: registers, operands, move instructions 1 What should the HW/SW interface contain?
More informationAssembly Language Programming Introduction
Assembly Language Programming Introduction October 10, 2017 Motto: R7 is used by the processor as its program counter (PC). It is recommended that R7 not be used as a stack pointer. Source: PDP-11 04/34/45/55
More informationCS 16: Assembly Language Programming for the IBM PC and Compatibles
CS 16: Assembly Language Programming for the IBM PC and Compatibles Discuss the general concepts Look at IA-32 processor architecture and memory management Dive into 64-bit processors Explore the components
More informationModule 3 Instruction Set Architecture (ISA)
Module 3 Instruction Set Architecture (ISA) I S A L E V E L E L E M E N T S O F I N S T R U C T I O N S I N S T R U C T I O N S T Y P E S N U M B E R O F A D D R E S S E S R E G I S T E R S T Y P E S O
More informationMachine and Assembly Language Principles
Machine and Assembly Language Principles Assembly language instruction is synonymous with a machine instruction. Therefore, need to understand machine instructions and on what they operate - the architecture.
More informationDr. Ramesh K. Karne Department of Computer and Information Sciences, Towson University, Towson, MD /12/2014 Slide 1
Dr. Ramesh K. Karne Department of Computer and Information Sciences, Towson University, Towson, MD 21252 rkarne@towson.edu 11/12/2014 Slide 1 Intel x86 Aseembly Language Assembly Language Assembly Language
More informationFPGA for Complex System Implementation. National Chiao Tung University Chun-Jen Tsai 04/14/2011
FPGA for Complex System Implementation National Chiao Tung University Chun-Jen Tsai 04/14/2011 About FPGA FPGA was invented by Ross Freeman in 1989 SRAM-based FPGA properties Standard parts Allowing multi-level
More informationIA32 Intel 32-bit Architecture
1 2 IA32 Intel 32-bit Architecture Intel 32-bit Architecture (IA32) 32-bit machine CISC: 32-bit internal and external data bus 32-bit external address bus 8086 general registers extended to 32 bit width
More informationCredits and Disclaimers
Credits and Disclaimers 1 The examples and discussion in the following slides have been adapted from a variety of sources, including: Chapter 3 of Computer Systems 2 nd Edition by Bryant and O'Hallaron
More informationMICROPROCESSOR ALL IN ONE. Prof. P. C. Patil UOP S.E.COMP (SEM-II)
MICROPROCESSOR UOP S.E.COMP (SEM-II) 80386 ALL IN ONE Prof. P. C. Patil Department of Computer Engg Sandip Institute of Engineering & Management Nashik pc.patil@siem.org.in 1 Architecture of 80386 2 ARCHITECTURE
More informationIA-32 Architecture COE 205. Computer Organization and Assembly Language. Computer Engineering Department
IA-32 Architecture COE 205 Computer Organization and Assembly Language Computer Engineering Department King Fahd University of Petroleum and Minerals Presentation Outline Basic Computer Organization Intel
More informationLecture (02) The Microprocessor and Its Architecture By: Dr. Ahmed ElShafee
Lecture (02) The Microprocessor and Its Architecture By: Dr. Ahmed ElShafee ١ INTERNAL MICROPROCESSOR ARCHITECTURE Before a program is written or instruction investigated, internal configuration of the
More informationMachine-Level Programming Introduction
Machine-Level Programming Introduction Today Assembly programmer s exec model Accessing information Arithmetic operations Next time More of the same Fabián E. Bustamante, Spring 2007 IA32 Processors Totally
More informationAdvanced Microprocessors
Advanced Microprocessors Notes #2 Software Architecture & Instruction Set Architecture Part 1 EE 467/567 Winter 2012 by Avinash Kodi SWA.1 Background Materials Textbook: 2.1, 2.2, 3.1 Other: IA-32 Intel
More informationMachine-Level Programming I: Introduction Jan. 30, 2001
15-213 Machine-Level Programming I: Introduction Jan. 30, 2001 Topics Assembly Programmer s Execution Model Accessing Information Registers Memory Arithmetic operations IA32 Processors Totally Dominate
More informationEECE416 :Microcomputer Fundamentals and Design. X86 Assembly Programming Part 1. Dr. Charles Kim
EECE416 :Microcomputer Fundamentals and Design X86 Assembly Programming Part 1 Dr. Charles Kim Department of Electrical and Computer Engineering Howard University www.mwftr.com 1 Multiple Address Access
More informationUMBC. contain new IP while 4th and 5th bytes contain CS. CALL BX and CALL [BX] versions also exist. contain displacement added to IP.
Procedures: CALL: Pushes the address of the instruction following the CALL instruction onto the stack. RET: Pops the address. SUM PROC NEAR USES BX CX DX ADD AX, BX ADD AX, CX MOV AX, DX RET SUM ENDP NEAR
More informationReverse Engineering II: Basics. Gergely Erdélyi Senior Antivirus Researcher
Reverse Engineering II: Basics Gergely Erdélyi Senior Antivirus Researcher Agenda Very basics Intel x86 crash course Basics of C Binary Numbers Binary Numbers 1 Binary Numbers 1 0 1 1 Binary Numbers 1
More informationAssembler Programming. Lecture 2
Assembler Programming Lecture 2 Lecture 2 8086 family architecture. From 8086 to Pentium4. Registers, flags, memory organization. Logical, physical, effective address. Addressing modes. Processor Processor
More informationAssembly I: Basic Operations. Computer Systems Laboratory Sungkyunkwan University
Assembly I: Basic Operations Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Moving Data (1) Moving data: movl source, dest Move 4-byte ( long )
More informationInstruction Set Architectures
Instruction Set Architectures! ISAs! Brief history of processors and architectures! C, assembly, machine code! Assembly basics: registers, operands, move instructions 1 What should the HW/SW interface
More informationAssembly I: Basic Operations. Jo, Heeseung
Assembly I: Basic Operations Jo, Heeseung Moving Data (1) Moving data: movl source, dest Move 4-byte ("long") word Lots of these in typical code Operand types Immediate: constant integer data - Like C
More informationINSTRUCTION SET AND EXECUTION
SECTION 6 INSTRUCTION SET AND EXECUTION Fetch F1 F2 F3 F3e F4 F5 F6 Decode D1 D2 D3 D3e D4 D5 Execute E1 E2 E3 E3e E4 Instruction Cycle: 1 2 3 4 5 6 7 MOTOROLA INSTRUCTION SET AND EXECUTION 6-1 SECTION
More informationUMBC. A register, an immediate or a memory address holding the values on. Stores a symbolic name for the memory location that it represents.
Intel Assembly Format of an assembly instruction: LABEL OPCODE OPERANDS COMMENT DATA1 db 00001000b ;Define DATA1 as decimal 8 START: mov eax, ebx ;Copy ebx to eax LABEL: Stores a symbolic name for the
More informationReverse Engineering II: The Basics
Reverse Engineering II: The Basics Gergely Erdélyi Senior Manager, Anti-malware Research Protecting the irreplaceable f-secure.com Binary Numbers 1 0 1 1 - Nibble B 1 0 1 1 1 1 0 1 - Byte B D 1 0 1 1 1
More informationASSEMBLY I: BASIC OPERATIONS. Jo, Heeseung
ASSEMBLY I: BASIC OPERATIONS Jo, Heeseung MOVING DATA (1) Moving data: movl source, dest Move 4-byte ("long") word Lots of these in typical code Operand types Immediate: constant integer data - Like C
More informationMachine-Level Programming Introduction
Machine-Level Programming Introduction Today! Assembly programmer s exec model! Accessing information! Arithmetic operations Next time! More of the same Fabián E. Bustamante, 2007 X86 Evolution: Programmer
More informationeaymanelshenawy.wordpress.com
Lectures on Memory Interface Designed and Presented by Dr. Ayman Elshenawy Elsefy Dept. of Systems & Computer Eng.. Al-Azhar University Email : eaymanelshenawy@yahoo.com eaymanelshenawy.wordpress.com Lecture
More informationx86 Assembly Tutorial COS 318: Fall 2017
x86 Assembly Tutorial COS 318: Fall 2017 Project 1 Schedule Design Review: Monday 9/25 Sign up for 10-min slot from 3:00pm to 7:00pm Complete set up and answer posted questions (Official) Precept: Monday
More information6/17/2011. Introduction. Chapter Objectives Upon completion of this chapter, you will be able to:
Chapter 2: The Microprocessor and its Architecture Chapter 2: The Microprocessor and its Architecture Chapter 2: The Microprocessor and its Architecture Introduction This chapter presents the microprocessor
More informationAssembly Programmer s View Lecture 4A Machine-Level Programming I: Introduction
Assembly Programmer s View Lecture 4A Machine-Level Programming I: Introduction E I P CPU isters Condition Codes Addresses Data Instructions Memory Object Code Program Data OS Data Topics Assembly Programmer
More informationPractical Malware Analysis
Practical Malware Analysis Ch 4: A Crash Course in x86 Disassembly Revised 1-16-7 Basic Techniques Basic static analysis Looks at malware from the outside Basic dynamic analysis Only shows you how the
More informationComputer Processors. Part 2. Components of a Processor. Execution Unit The ALU. Execution Unit. The Brains of the Box. Processors. Execution Unit (EU)
Part 2 Computer Processors Processors The Brains of the Box Computer Processors Components of a Processor The Central Processing Unit (CPU) is the most complex part of a computer In fact, it is the computer
More informationBinghamton University. CS-220 Spring x86 Assembler. Computer Systems: Sections
x86 Assembler Computer Systems: Sections 3.1-3.5 Disclaimer I am not an x86 assembler expert. I have never written an x86 assembler program. (I am proficient in IBM S/360 Assembler and LC3 Assembler.)
More informationSungkyunkwan University
- 2 - Complete addressing mode, address computation (leal) Arithmetic operations Control: Condition codes Conditional branches While loops - 3 - Most General Form D(Rb,Ri,S) Mem[ Reg[ R b ] + S Reg[ R
More informationInterfacing Compiler and Hardware. Computer Systems Architecture. Processor Types And Instruction Sets. What Instructions Should A Processor Offer?
Interfacing Compiler and Hardware Computer Systems Architecture FORTRAN 90 program C++ program Processor Types And Sets FORTRAN 90 Compiler C++ Compiler set level Hardware 1 2 What s Should A Processor
More informationMODE (mod) FIELD CODES. mod MEMORY MODE: 8-BIT DISPLACEMENT MEMORY MODE: 16- OR 32- BIT DISPLACEMENT REGISTER MODE
EXERCISE 9. Determine the mod bits from Figure 7-24 and write them in Table 7-7. MODE (mod) FIELD CODES mod 00 01 10 DESCRIPTION MEMORY MODE: NO DISPLACEMENT FOLLOWS MEMORY MODE: 8-BIT DISPLACEMENT MEMORY
More informationEEM336 Microprocessors I. The Microprocessor and Its Architecture
EEM336 Microprocessors I The Microprocessor and Its Architecture Introduction This chapter presents the microprocessor as a programmable device by first looking at its internal programming model and then
More informationCSCI 192 Engineering Programming 2. Assembly Language
CSCI 192 Engineering Programming 2 Week 5 Assembly Language Lecturer: Dr. Markus Hagenbuchner Slides by: Igor Kharitonenko and Markus Hagenbuchner Room 3.220 markus@uow.edu.au UOW 2010 24/08/2010 1 C Compilation
More informationChapter 2: The Microprocessor and its Architecture
Chapter 2: The Microprocessor and its Architecture Chapter 2: The Microprocessor and its Architecture Chapter 2: The Microprocessor and its Architecture Introduction This chapter presents the microprocessor
More informationSYSC3601 Microprocessor Systems. Unit 2: The Intel 8086 Architecture and Programming Model
SYSC3601 Microprocessor Systems Unit 2: The Intel 8086 Architecture and Programming Model Topics/Reading SYSC3601 2 Microprocessor Systems 1. Registers and internal architecture (Ch 2) 2. Address generation
More informationComputer System Architecture
CSC 203 1.5 Computer System Architecture Department of Statistics and Computer Science University of Sri Jayewardenepura Instruction Set Architecture (ISA) Level 2 Introduction 3 Instruction Set Architecture
More informationCISC 360. Machine-Level Programming I: Introduction Sept. 18, 2008
CISC 360 Machine-Level Programming I: Introduction Sept. 18, 2008 Topics Assembly Programmerʼs Execution Model Accessing Information Registers Memory Arithmetic operations IA32 Processors Totally Dominate
More information1. INTRODUCTION TO MICROPROCESSOR AND MICROCOMPUTER ARCHITECTURE:
1. INTRODUCTION TO MICROPROCESSOR AND MICROCOMPUTER ARCHITECTURE: A microprocessor is a programmable electronics chip that has computing and decision making capabilities similar to central processing unit
More informationSecond Part of the Course
CSC 2400: Computer Systems Towards the Hardware 1 Second Part of the Course Toward the hardware High-level language (C) assembly language machine language (IA-32) 2 High-Level Language g Make programming
More informationDatapoint 2200 IA-32. main memory. components. implemented by Intel in the Nicholas FitzRoy-Dale
Datapoint 2200 IA-32 Nicholas FitzRoy-Dale At the forefront of the computer revolution - Intel Difficult to explain and impossible to love - Hennessy and Patterson! Released 1970! 2K shift register main
More informationCMSC Lecture 03. UMBC, CMSC313, Richard Chang
CMSC Lecture 03 Moore s Law Evolution of the Pentium Chip IA-32 Basic Execution Environment IA-32 General Purpose Registers Hello World in Linux Assembly Language Addressing Modes UMBC, CMSC313, Richard
More informationAssembly I: Basic Operations. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University
Assembly I: Basic Operations Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Basic Execution Environment RAX RBX RCX RDX RSI RDI RBP RSP R8 R9 R10
More informationCSC 8400: Computer Systems. Machine-Level Representation of Programs
CSC 8400: Computer Systems Machine-Level Representation of Programs Towards the Hardware High-level language (Java) High-level language (C) assembly language machine language (IA-32) 1 Compilation Stages
More informationCS3210: Booting and x86. Taesoo Kim
1 CS3210: Booting and x86 Taesoo Kim 2 What is an operating system? e.g. OSX, Windows, Linux, FreeBSD, etc. What does an OS do for you? Abstract the hardware for convenience and portability Multiplex the
More informationCAS CS Computer Systems Spring 2015 Solutions to Problem Set #2 (Intel Instructions) Due: Friday, March 20, 1:00 pm
CAS CS 210 - Computer Systems Spring 2015 Solutions to Problem Set #2 (Intel Instructions) Due: Friday, March 20, 1:00 pm This problem set is to be completed individually. Explain how you got to your answers
More informationCS 31: Intro to Systems Functions and the Stack. Martin Gagne Swarthmore College February 23, 2016
CS 31: Intro to Systems Functions and the Stack Martin Gagne Swarthmore College February 23, 2016 Reminders Late policy: you do not have to send me an email to inform me of a late submission before the
More informationPROGRAM CONTROL UNIT (PCU)
nc. SECTION 5 PROGRAM CONTROL UNIT (PCU) MOTOROLA PROGRAM CONTROL UNIT (PCU) 5-1 nc. SECTION CONTENTS 5.1 INTRODUCTION........................................ 5-3 5.2 PROGRAM COUNTER (PC)...............................
More informationMemory Models. Registers
Memory Models Most machines have a single linear address space at the ISA level, extending from address 0 up to some maximum, often 2 32 1 bytes or 2 64 1 bytes. Some machines have separate address spaces
More informationControl flow. Condition codes Conditional and unconditional jumps Loops Switch statements
Control flow Condition codes Conditional and unconditional jumps Loops Switch statements 1 Conditionals and Control Flow Familiar C constructs l l l l l l if else while do while for break continue Two
More informationCS241 Computer Organization Spring Addresses & Pointers
CS241 Computer Organization Spring 2015 Addresses & Pointers 2-24 2015 Outline! Addresses & Pointers! leal - load effective address! Condition Codes & Jumps! conditional statements: if-then-else! conditional
More informationCSC 2400: Computer Systems. Towards the Hardware: Machine-Level Representation of Programs
CSC 2400: Computer Systems Towards the Hardware: Machine-Level Representation of Programs Towards the Hardware High-level language (Java) High-level language (C) assembly language machine language (IA-32)
More informationProcess Layout and Function Calls
Process Layout and Function Calls CS 6 Spring 07 / 8 Process Layout in Memory Stack grows towards decreasing addresses. is initialized at run-time. Heap grow towards increasing addresses. is initialized
More informationCS165 Computer Security. Understanding low-level program execution Oct 1 st, 2015
CS165 Computer Security Understanding low-level program execution Oct 1 st, 2015 A computer lets you make more mistakes faster than any invention in human history - with the possible exceptions of handguns
More information