Moving from 32 to 64 bits while maintaining compatibility. Orlando Ricardo Nunes Rocha
|
|
- Evelyn Patterson
- 6 years ago
- Views:
Transcription
1 Moving from 32 to 64 bits while maintaining compatibility Orlando Ricardo Nunes Rocha Informatics Department, University of Minho 4710 Braga, Portugal Abstract. The EM64T is a recent technology adopted by INTEL, allowing the new processors (Dual core, Xeon) to run 64 bit software. To compete with the rival AMD, Intel had to adapt its own x86 architecture increasing the memory addressing capabilities of their 32 bit processors.the advantage of using 64 bit computing is the ability to work with a higher range of integer values and a larger memory support. To provide the X86 architecture with 64 bit capacities, INTEL added eight generalpurposed 64 bit registers and eight 64 bit registers for streaming SIMD extensions. A new instruction pointer called RIP was been included like other new functionalities like fast interrupt prioritization mechanism, uniform byte register addressing and a new instruction pointer relative addressing mode. The arithmetic and logical operations are now directly supported for 64 bit integers, and pushes an pops on the stack are executed with eight byte strides. This new technology allows both 32 and 64 bit applications to run simultaneously on a system with a 64 bit operating system. The problems related to the bit compatibility can be decreased or avoid, allowing software producers a gradual transition for modifying their 32 bit to 64 bit software. Introduction A new concept of supporting 32 bit and 64 bit software by the same processor has been emerging in the last few years. AMD was the first company to explore this new concept. It was followed by the Intel, which named its own technology EM64T (Extended Memory 64 Technology). The principal idea behind these new features is to allow applications to address larger amounts of memory and support the coexistence of 32 bit and 64 bit applications in the same processor [7]. EM64T extends virtual and physical memory addressing beyond the 4 GB limit of current 32 bit processors [14]. Some modifications had to be made in the instruction set to support these new features. The system register that manages the new 64 bit extensions and at same time the old 32 bit instruction had to be altered; new registers were added to support 64 bit integers and to increase the performance of CPU, reducing the number of times that the CPU has access the memory to load instructions or load and save data. Intel also had to modify the memory access bus to 64 bits because a larger amount of data has to be transported. A new generation of Intel processors have the EM64T extensions included, such as newer versions of Pentium 4, Pentium D, Pentium Extreme Edition, Celeron D, Xeon, and Core2 processors [4]. At present, the most used processor in servers and workstations is the Xeon 1
2 processor, offering to customers a reliable 64 bit support. It allows to install and run all of the existing 32 bit applications, in which 32 bit execution remains critical, with excellent performance. The 64 bit scientific, engineering, and design applications that need larger memory support can be used without code recompilation[9]. The cluster SEARCH of the department of informatics of University of Minho has 96 recent Xeon processors, so it s possible to take advantage of all EM64T characteristics that will be mentioned in this paper, maintaining the compatibility between 32 bit and 64 bit applications with a low cost 64 bit support. 64 bit computing There are three areas that can be classified as 64 bit data, addressing, and software environment. 64 bit integer registers, 64 bit floating point registers, and 64 bit data paths between processor, memory, cache memory and registers has to be present in the processor architecture[12]. There are two main advantages using a 64 bit architecture, which are a higher range of integer values and a larger memory support. The increase of integer values representation allows to scientific and simulations applications fewer calculations to generate the same result as a 32 bit applications. This is more relevant for applications that do a large number of calculations with integers, because earlier in 32 bit registers it was necessary a larger number of registers (double) to represent a 64 bit number, causing many more accesses to the memory. However in the applications that use floating point math, the increase of speed is not so relevant, because the registers have the same length of 80 bits. 64 bit applications can address up to 16 Exabytes of RAM, but nowadays most of PCs have an artificial limit on the amount of memory they can recognize, due to physical constraints[3]. In table 1 shows the enlargement of memory from 4 bit to 64 bit computing. Table 1: Differences in scale between architectures; source [13] Bits Binary Number of memory addresses , ,294,967, ,446,744,073,709,600,000 EM64T technology EM64T is an increment at the Intel IA 32 architecture, providing a coexistence of 32 bit and 64 bit computing in a single processor. This is the idea behind the EM64T concept. To take advantage of this technology the chipset of motherboards and BIOS require a 64 bit support, as well a 64 bit operating system [14]. 2
3 Enhancement of the Intel IA 32 Eight new 64 bit general purpose registers were added; they were named R8 thru R15. These new registers are true general purpose registers, because they do not have a specialized task like old 32 bit eight registers EAX, EBX, etc. The EAX, EBX, ECX and EDX registers were modified having an R prefix to support the 64 bit extension. The rest of registers such as index registers, RSI, RDI, and the stack pointers RBP and RSP have been modified too [11]. All 64 bit registers continue to use the same division scheme of old 32 bit registers that allows them to be used for 32 bit, 16 bit and 8 bit operations. Like 32 bit registers division scheme to the least significant bits from RAX register are used to 8 bit or 16 bit operations designated as uniform byte register addressing [5]. The old EIP was modified to a new 64 bit instruction pointer (RIP), allowing like this to access at any 8 bytes of data stored in memory. Figure 1 shows the new structure of the registers; alterations are displayed in purple colour. Figure 1: New structure of the General purpose registers and XMM registers; Source [1] Also added were eight new XMM registers for SIMD instructions (MMX, SSE, SSE2 and SS3) accomplishing a total of 16 XMM registers, but they continue to be 128 bit wide. They support the storage of two 64 bit floating point numbers in a same register, and they are used most of time by multimedia instructions that use several calculations with real numbers. The control registers was modified to allow enabling and disabling of EM64T extend features, by adding what Intel calls MSRs (Extended feature enable MSR or IA32_EFER). This new feature contains some control bits (bit 10 and 8). Figure 2 shows each bit function in the 64bit register. The IA32e mode enabling and disabling mechanism is explained in controlling IA32e mode. Figure 2: Extended feature enable MSR. Source [8] 3
4 Default values of 64 bit for addressing size and 32 bits for operands size are used in 64 bit mode. The defaults values are changed just if it is necessary, for instance if an instruction of 32 bit is executed. There is a new prefix called REX in the new instructions that manage the operand size and addressing size. However not all instructions need this REX field, being used just if the instruction uses a 64 bit operand. A RIP (relative instruction pointer) was added and this provides a new address method relative at the instruction pointer position in the stack. This means, the address of one instruction can be composed by adding a value to the instruction pointer address. This addressing mode uses a signed 32 bit displacement that allows an offset range of ± 2GB from instruction pointer address [8]. Operating Modes There are two distinct operation modes available in EM64T, legacy mode and IA32e. This last one includes two sub modes, 64 bit mode and the compatibility mode. Legacy mode: In this mode the processor just works like a normal IA32 processor, running only 32 bit applications. The processor may operate in three different operating submodes like protected mode, Real address mode and System management mode[10]. IA32e mode: This is the new mode that was added by Intel and gives the possibility to run a 64 bit operating system while still being able to run unmodified 32 bit applications. The 32 bit applications continue to use only an address space with a maximum of 4 GB. Compatibility Mode: maintains binary compatibility with 16 bit or 32 bit applications. It allows the applications to coexist under a 64 bit operating system. To execute existing 16 and 32 bit application the operating system change their codesegment descriptor CS.L bit to 0 [8]. 64 bit mode: the default address size is 64 bit and the default operand size is 32 bit. This mode permits the full memory advantages of a 64 bit solution, but only 64 bit applications will work. This option is enabled by the operating system passing all registers and instruction pointer to 64 bit, and the applications will have access to the full physical memory range. Arithmetic and logical operations, memory to registers and register to memory operations are directly supported for 64 bit integers. A larger virtual address space and a larger physical address space can be used. A total of 2 64 or 16 exabytes can be addressed. There are some limitations on actual EM64T processors because they have only 36 address lines, that means 2 36 or 64 GB of RAM can be addressed. The Xeon DP is slightly different because it has a 40 address lines, allowing 2 40 bytes of addressing space[5 7;9]. 4
5 Controlling IA32e mode As it was already referred, the operation of 64 bit mode and compatibility mode are governed by various control bits in the Extended Feature Enable Register (IA32_EFER) MSR and CS descriptor [8]. The IA32_EFER.LMA controls the legacy mode or IA32e activation and code segment descriptor bits (CS.L and CS.D) are used to control the sub operating mode 64 bit mode and the compatibility mode. Figure 3 shows the different CS.L and CS.D conjugation that control the IA32e modes. If CS.L=1 and CS.D=0 the processor is running in 64 bit mode and the default operand size is 32 bit and address size is 64 bit. The compatibility mode is activated when CS.L=0 and the CS.D controls the operand and address sizes to 32 bit or 16 bit[8]. The LMA switches the legacy mode and the IA32e mode. Figure 3: EM64T Processor modes; Source [8]. Benchmarks Figure 4 presents a test of a Pentium 4 processor with and without active 64 bit extensions. This benchmark is online in Hardware.Fr website [2]. They studied different functions of encode, decode, visual effects and calculations to compare the EM64T technology with old IA32 legacy mode. The performance is observed by measuring the time, in seconds, of a task (lower values correspond at better performance). Figure 4: A benchmark test in a Pentium with em64t extensions activated and deactivated. Source [2]. 5
6 As it can be seen in the figure, the gain of performance is not expressive and in some functions the IA32 legacy mode exceeds the EM64T. That can be seen the increase of performance in EM64T is higher in image and video applications where is accomplished a larger floating point calculations and integer calculations, so a larger number of generalpurpose register and the enlargement of XMM registers helps in this increase of multimedia performance. Conclusions The EM64T seems to be the ideal technology for a progressive transition of 32 bit to 64 bit applications. Due to majority of the applications being still of 32 bit, this allows software developers a larger period of time to port their applications to 64 bit. The 64 bit applications can run simultaneously with 32 applications without recompilation. The benchmark test do not exhibit a significant increase of performance with active EM64T extension, but there are other agents that influence the performance of a processor like Front side bus, Pipeline levels, cache, etc. As the tests took place with the same processor these should be taken into account to demonstrate the small performance increase of EM64T. Perhaps this technology can be more efficient when it is used with database systems because the larger addressing space allows managing a larger amount of data. My personal opinion is that, the main advantage of using a processor with EM64T extension is the possibility to run 32 bit applications and 64 bit applications at same time, avoiding the necessity of acquisition of two different processors, a 32 bit support processor and a 64 bit support processor. Em64T allows Intel to take advantage of the existing IA32 architecture, avoiding the development of a new architecture to support both 32 bit applications and 64 bit applications decreasing the cost of development of a new architecture. As the cluster SEARCH only has Xeon processors, most of problems associated with 32 bit/64 bit compatibility issues can be solved. Moreover, as the cluster is accessible to scientific community of University of Minho, it is valuable to have a system that supports both 32 bit and 64 bit applications. References [1] 64bit.html [2] /# [3] bit [4] [5]
7 [6] David Watts and Robert Moon. IBM Eserver xseries 366 Technical IBM Redbooks Paper [7] Garima Kochhar, Kalyana Chadalavada, Amina Saify and Rizwan Ali. (2004) BLAST on Intel EM64T Architecture. Dell. [8] Intel. (2007) Intel Extended Memory 64 Technology Software Developer's Guide Volume 1. [9] Intel. (2004) The 64 bit Tipping Point. Intel Solutions. [10] Intel Corporation. (2006) Intel 64 and IA 32 Architectures Software Developer's Manual. [11] James Leiterman. (2005) 32/64 BIT 80 x 86 Assembly Language Architecture. [12] Jerry Haigh. 64 Bit Computing Solves the World's Most Complex Problems [13] John Coombs and John Fruehe. (2004) Planning Considerations for Intel Extended Memory 64 Technology on Servers and Workstations. Dell. [14] Ramesh Radhakrishnan, Jimmy Pike and Skipper Smith. (2004) INTEL EXTENDED MEMORY 64 TECHNOLOGY (EM64T). Dell. 7
Assembly Language for Intel-Based Computers, 4 th Edition. Chapter 2: IA-32 Processor Architecture Included elements of the IA-64 bit
Assembly Language for Intel-Based Computers, 4 th Edition Kip R. Irvine Chapter 2: IA-32 Processor Architecture Included elements of the IA-64 bit Slides prepared by Kip R. Irvine Revision date: 09/25/2002
More information1 Overview of the AMD64 Architecture
24592 Rev. 3.1 March 25 1 Overview of the AMD64 Architecture 1.1 Introduction The AMD64 architecture is a simple yet powerful 64-bit, backward-compatible extension of the industry-standard (legacy) x86
More informationAssembly Language Programming 64-bit environments
Assembly Language Programming 64-bit environments October 17, 2017 Some recent history Intel together with HP start to work on 64-bit processor using VLIW technology. Itanium processor is born with the
More informationInstruction Set Architectures
Instruction Set Architectures Computer Systems: Section 4.1 Suppose you built a computer What Building Blocks would you use? Arithmetic Logic Unit (ALU) OP1 OP2 OPERATION ALU RES ALU + Registers R0: 0x0000
More informationAssembly Language for x86 Processors 7 th Edition. Chapter 2: x86 Processor Architecture
Assembly Language for x86 Processors 7 th Edition Kip Irvine Chapter 2: x86 Processor Architecture Slides prepared by the author Revision date: 1/15/2014 (c) Pearson Education, 2015. All rights reserved.
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 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 informationHistory of the Intel 80x86
Intel s IA-32 Architecture Cptr280 Dr Curtis Nelson History of the Intel 80x86 1971 - Intel invents the microprocessor, the 4004 1975-8080 introduced 8-bit microprocessor 1978-8086 introduced 16 bit microprocessor
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 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 informationUNIT 2 PROCESSORS ORGANIZATION CONT.
UNIT 2 PROCESSORS ORGANIZATION CONT. Types of Operand Addresses Numbers Integer/floating point Characters ASCII etc. Logical Data Bits or flags x86 Data Types Operands in 8 bit -Byte 16 bit- word 32 bit-
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 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 informationCS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2018 Lecture 4
CS24: INTRODUCTION TO COMPUTING SYSTEMS Spring 2018 Lecture 4 LAST TIME Enhanced our processor design in several ways Added branching support Allows programs where work is proportional to the input values
More informationThe von Neumann Machine
The von Neumann Machine 1 1945: John von Neumann Wrote a report on the stored program concept, known as the First Draft of a Report on EDVAC also Alan Turing Konrad Zuse Eckert & Mauchly The basic structure
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 informationComputer Organization (II) IA-32 Processor Architecture. Pu-Jen Cheng
Computer Organization & Assembly Languages Computer Organization (II) IA-32 Processor Architecture Pu-Jen Cheng Materials Some materials used in this course are adapted from The slides prepared by Kip
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 informationAssembly Language for Intel-Based Computers, 4 th Edition. Kip R. Irvine. Chapter 2: IA-32 Processor Architecture
Assembly Language for Intel-Based Computers, 4 th Edition Kip R. Irvine Chapter 2: IA-32 Processor Architecture Chapter Overview General Concepts IA-32 Processor Architecture IA-32 Memory Management Components
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 informationThe von Neumann Machine
The von Neumann Machine 1 1945: John von Neumann Wrote a report on the stored program concept, known as the First Draft of a Report on EDVAC also Alan Turing Konrad Zuse Eckert & Mauchly The basic structure
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 informationRegisters. Ray Seyfarth. September 8, Bit Intel Assembly Language c 2011 Ray Seyfarth
Registers Ray Seyfarth September 8, 2011 Outline 1 Register basics 2 Moving a constant into a register 3 Moving a value from memory into a register 4 Moving values from a register into memory 5 Moving
More informationBLAST on Intel EM64T Architecture
Performance Characterization of BLAST on Intel EM64T Architecture Intel Extended Memory 64 Technology (EM64T) is designed to provide enhancements to IA-32 architecture that can support 64-bit address extensions.
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 informationCHAPTER 3 BASIC EXECUTION ENVIRONMENT
CHAPTER 3 BASIC EXECUTION ENVIRONMENT This chapter describes the basic execution environment of an Intel 64 or I A-32 processor as seen by assemblylanguage programmers. It describes how the processor executes
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 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 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 informationCSC 252: Computer Organization Spring 2018: Lecture 5
CSC 252: Computer Organization Spring 2018: Lecture 5 Instructor: Yuhao Zhu Department of Computer Science University of Rochester Action Items: Assignment 1 is due tomorrow, midnight Assignment 2 is out
More information6/20/2011. Introduction. Chapter Objectives Upon completion of this chapter, you will be able to:
Introduction Efficient software development for the microprocessor requires a complete familiarity with the addressing modes employed by each instruction. This chapter explains the operation of the stack
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 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 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 informationAssembly Language for Intel-Based Computers, 4 th Edition. Chapter 2: IA-32 Processor Architecture. Chapter Overview.
Assembly Language for Intel-Based Computers, 4 th Edition Kip R. Irvine Chapter 2: IA-32 Processor Architecture Slides prepared by Kip R. Irvine Revision date: 09/25/2002 Chapter corrections (Web) Printing
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 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 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 informationComputer System Architecture
CSC 203 1.5 Computer System Architecture Budditha Hettige Department of Statistics and Computer Science University of Sri Jayewardenepura Microprocessors 2011 Budditha Hettige 2 Processor Instructions
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 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 informationCS Bootcamp x86-64 Autumn 2015
The x86-64 instruction set architecture (ISA) is used by most laptop and desktop processors. We will be embedding assembly into some of our C++ code to explore programming in assembly language. Depending
More informationComputer Systems Laboratory Sungkyunkwan University
ARM & IA-32 Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu ARM (1) ARM & MIPS similarities ARM: the most popular embedded core Similar basic set
More informationEEM336 Microprocessors I. Addressing Modes
EEM336 Microprocessors I Addressing Modes Introduction Efficient software development for the microprocessor requires a complete familiarity with the addressing modes employed by each instruction. This
More information+ Machine Level Programming: x86-64 History
+ Machine Level Programming: x86-64 History + Intel x86 Processors Dominate laptop/desktop/server market Evolutionary design Backwards compatible up until 8086, introduced in 1978 Added more features as
More informationUNIT- 5. Chapter 12 Processor Structure and Function
UNIT- 5 Chapter 12 Processor Structure and Function CPU Structure CPU must: Fetch instructions Interpret instructions Fetch data Process data Write data CPU With Systems Bus CPU Internal Structure Registers
More informationIA-32 Architecture. Computer Organization and Assembly Languages Yung-Yu Chuang 2005/10/6. with slides by Kip Irvine and Keith Van Rhein
IA-32 Architecture Computer Organization and Assembly Languages Yung-Yu Chuang 2005/10/6 with slides by Kip Irvine and Keith Van Rhein Virtual machines Abstractions for computers High-Level Language Level
More informationChapter 2. lw $s1,100($s2) $s1 = Memory[$s2+100] sw $s1,100($s2) Memory[$s2+100] = $s1
Chapter 2 1 MIPS Instructions Instruction Meaning add $s1,$s2,$s3 $s1 = $s2 + $s3 sub $s1,$s2,$s3 $s1 = $s2 $s3 addi $s1,$s2,4 $s1 = $s2 + 4 ori $s1,$s2,4 $s2 = $s2 4 lw $s1,100($s2) $s1 = Memory[$s2+100]
More informationAssembly Language Each statement in an assembly language program consists of four parts or fields.
Chapter 3: Addressing Modes Assembly Language Each statement in an assembly language program consists of four parts or fields. The leftmost field is called the label. - used to identify the name of a memory
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 Pentium Processor
The Pentium Processor Chapter 7 S. Dandamudi Outline Pentium family history Pentium processor details Pentium registers Data Pointer and index Control Segment Real mode memory architecture Protected mode
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 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 informationIntel Architecture. Compass Security Schweiz AG Werkstrasse 20 Postfach 2038 CH-8645 Jona
Intel Architecture Compass Security Schweiz AG Werkstrasse 20 Postfach 2038 CH-8645 Jona Tel +41 55 214 41 60 Fax +41 55 214 41 61 team@csnc.ch www.csnc.ch Content Intel Architecture Memory Layout C Arrays
More informationToday: Machine Programming I: Basics
Today: Machine Programming I: Basics History of Intel processors and architectures C, assembly, machine code Assembly Basics: Registers, operands, move Intro to x86-64 1 Intel x86 Processors Totally dominate
More informationHow Software Executes
How Software Executes CS-576 Systems Security Instructor: Georgios Portokalidis Overview Introduction Anatomy of a program Basic assembly Anatomy of function calls (and returns) Memory Safety Programming
More informationWhat Transitioning from 32-bit to 64-bit x86 Computing Means Today
What Transitioning from 32-bit to 64-bit x86 Computing Means Today Chris Wanner Senior Architect, Industry Standard Servers Hewlett-Packard 2004 Hewlett-Packard Development Company, L.P. The information
More informationSystems Architecture I
Systems Architecture I Topics Assemblers, Linkers, and Loaders * Alternative Instruction Sets ** *This lecture was derived from material in the text (sec. 3.8-3.9). **This lecture was derived from material
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 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 informationRegisters. Registers
All computers have some registers visible at the ISA level. They are there to control execution of the program hold temporary results visible at the microarchitecture level, such as the Top Of Stack (TOS)
More informationOutline. What Makes a Good ISA? Programmability. Implementability
Outline Instruction Sets in General MIPS Assembly Programming Other Instruction Sets Goals of ISA Design RISC vs. CISC Intel x86 (IA-32) What Makes a Good ISA? Programmability Easy to express programs
More informationx86 Programming I CSE 351 Winter
x86 Programming I CSE 351 Winter 2017 http://xkcd.com/409/ Administrivia Lab 2 released! Da bomb! Go to section! No Luis OH Later this week 2 Roadmap C: car *c = malloc(sizeof(car)); c->miles = 100; c->gals
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 informationLecture 4 CIS 341: COMPILERS
Lecture 4 CIS 341: COMPILERS CIS 341 Announcements HW2: X86lite Available on the course web pages. Due: Weds. Feb. 7 th at midnight Pair-programming project Zdancewic CIS 341: Compilers 2 X86 Schematic
More informationIntroduction to Machine/Assembler Language
COMP 40: Machine Structure and Assembly Language Programming Fall 2017 Introduction to Machine/Assembler Language Noah Mendelsohn Tufts University Email: noah@cs.tufts.edu Web: http://www.cs.tufts.edu/~noah
More informationCMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 03, SPRING 2013
CMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 03, SPRING 2013 TOPICS TODAY Moore s Law Evolution of Intel CPUs IA-32 Basic Execution Environment IA-32 General Purpose Registers
More informationProcessing Unit CS206T
Processing Unit CS206T Microprocessors The density of elements on processor chips continued to rise More and more elements were placed on each chip so that fewer and fewer chips were needed to construct
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 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 informationFunctions. Ray Seyfarth. August 4, Bit Intel Assembly Language c 2011 Ray Seyfarth
Functions Ray Seyfarth August 4, 2011 Functions We will write C compatible function C++ can also call C functions using extern "C" {...} It is generally not sensible to write complete assembly programs
More informationIntel x86-64 and Y86-64 Instruction Set Architecture
CSE 2421: Systems I Low-Level Programming and Computer Organization Intel x86-64 and Y86-64 Instruction Set Architecture Presentation J Read/Study: Bryant 3.1 3.5, 4.1 Gojko Babić 03-07-2018 Intel x86
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 informationEJEMPLOS DE ARQUITECTURAS
Maestría en Electrónica Arquitectura de Computadoras Unidad 4 EJEMPLOS DE ARQUITECTURAS M. C. Felipe Santiago Espinosa Marzo/2017 ARM & MIPS Similarities ARM: the most popular embedded core Similar basic
More informationToday: Machine Programming I: Basics. Machine Level Programming I: Basics. Intel x86 Processors. Intel x86 Evolution: Milestones
Today: Machine Programming I: Basics Machine Level Programming I: Basics 15 213/1 213: Introduction to Computer Systems 5 th Lecture, Jan 29, 2013 History of Intel processors and architectures C, assembly,
More informationCS241 Computer Organization Spring Introduction to Assembly
CS241 Computer Organization Spring 2015 Introduction to Assembly 2-05 2015 Outline! Rounding floats: round-to-even! Introduction to Assembly (IA32) move instruction (mov) memory address computation arithmetic
More informationMACHINE-LEVEL PROGRAMMING I: BASICS
MACHINE-LEVEL PROGRAMMING I: BASICS CS 429H: SYSTEMS I Instructor: Emmett Witchel Today: Machine Programming I: Basics History of Intel processors and architectures C, assembly, machine code Assembly Basics:
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 3 nd Edition by Bryant and O'Hallaron
More informationOutline. What Makes a Good ISA? Programmability. Implementability. Programmability Easy to express programs efficiently?
Outline Instruction Sets in General MIPS Assembly Programming Other Instruction Sets Goals of ISA Design RISC vs. CISC Intel x86 (IA-32) What Makes a Good ISA? Programmability Easy to express programs
More informationMOV Move INSTRUCTION SET REFERENCE, A-M. Description. Opcode Instruction 64-Bit Mode. Compat/ Leg Mode
Opcode Instruction 64-Bit Mode Compat/ Leg Mode 88 /r MOV r/m8,r8 Valid Valid Move r8 to r/m8. REX + 88 /r MOV r/m8 ***, r8 *** Valid N.E. Move r8 to r/m8. 89 /r MOV r/m16,r16 Valid Valid Move r16 to r/m16.
More informationReal instruction set architectures. Part 2: a representative sample
Real instruction set architectures Part 2: a representative sample Some historical architectures VAX: Digital s line of midsize computers, dominant in academia in the 70s and 80s Characteristics: Variable-length
More informationCarnegie Mellon. 5 th Lecture, Jan. 31, Instructors: Todd C. Mowry & Anthony Rowe
Machine Level Programming I: Basics 15 213/18 213: 213: Introduction to Computer Systems 5 th Lecture, Jan. 31, 2012 Instructors: Todd C. Mowry & Anthony Rowe 1 Today: Machine Programming gi: Basics History
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 informationDigital Forensics Lecture 3 - Reverse Engineering
Digital Forensics Lecture 3 - Reverse Engineering Low-Level Software Akbar S. Namin Texas Tech University Spring 2017 Reverse Engineering High-Level Software Low-level aspects of software are often the
More informationHomework. Reading. Machine Projects. Labs. Exam Next Class. None (Finish all previous reading assignments) Continue with MP5
Homework Reading None (Finish all previous reading assignments) Machine Projects Continue with MP5 Labs Finish lab reports by deadline posted in lab Exam Next Class Open book / open notes 1 Hierarchy for
More informationLecture 3 CIS 341: COMPILERS
Lecture 3 CIS 341: COMPILERS HW01: Hellocaml! Announcements is due tomorrow tonight at 11:59:59pm. HW02: X86lite Will be available soon look for an announcement on Piazza Pair-programming project Simulator
More informationMillions of instructions per second [MIPS] executed by a single chip microprocessor
Microprocessor Design Trends Joy's Law [Bill Joy of BSD4.x and Sun fame] MIPS = 2 year-1984 Millions of instructions per second [MIPS] executed by a single chip microprocessor More realistic rate is a
More informationMeet & Greet! Come hang out with your TAs and Fellow Students (& eat free insomnia cookies) When : TODAY!! 5-6 pm Where : 3rd Floor Atrium, CIT
Meet & Greet! Come hang out with your TAs and Fellow Students (& eat free insomnia cookies) When : TODAY!! 5-6 pm Where : 3rd Floor Atrium, CIT CS33 Intro to Computer Systems XI 1 Copyright 2017 Thomas
More informationAn Overview of ISA (Instruction Set Architecture)
An Overview of ISA (Instruction Set Architecture) This lecture presents an overview of the ISA concept. 1. The definition of Instruction Set Architecture and an early example. 2. The historical and economic
More information2.7 Supporting Procedures in hardware. Why procedures or functions? Procedure calls
2.7 Supporting Procedures in hardware Why procedures or functions? Procedure calls Caller: Callee: Proc save registers save more registers set up parameters do function call procedure set up results get
More informationRISC I from Berkeley. 44k Transistors 1Mhz 77mm^2
The Case for RISC RISC I from Berkeley 44k Transistors 1Mhz 77mm^2 2 MIPS: A Classic RISC ISA Instructions 4 bytes (32 bits) 4-byte aligned Instructions operate on memory and registers Memory Data types
More informationCS 101, Mock Computer Architecture
CS 101, Mock Computer Architecture Computer organization and architecture refers to the actual hardware used to construct the computer, and the way that the hardware operates both physically and logically
More information17. Instruction Sets: Characteristics and Functions
17. Instruction Sets: Characteristics and Functions Chapter 12 Spring 2016 CS430 - Computer Architecture 1 Introduction Section 12.1, 12.2, and 12.3 pp. 406-418 Computer Designer: Machine instruction set
More informationINTRODUCTION TO MICROPROCESSORS
INTRODUCTION TO MICROPROCESSORS Richa Upadhyay Prabhu NMIMS s MPSTME richa.upadhyay@nmims.edu January 7, 2016 Richa Upadhyay Prabhu (MPSTME) INTRODUCTION January 7, 2016 1 / 63 Course Design Prerequisite:
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 informationRepresentation of Information
Representation of Information CS61, Lecture 2 Prof. Stephen Chong September 6, 2011 Announcements Assignment 1 released Posted on http://cs61.seas.harvard.edu/ Due one week from today, Tuesday 13 Sept
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 informationFaculty of Engineering Student Number:
Philadelphia University Student Name: Faculty of Engineering Student Number: Dept. of Computer Engineering Final Exam, Second Semester: 2013/2014 Course Title: Microprocessors Date: 08/06/2014 Course No:
More informationSWAR: MMX, SSE, SSE 2 Multiplatform Programming
SWAR: MMX, SSE, SSE 2 Multiplatform Programming Relatore: dott. Matteo Roffilli roffilli@csr.unibo.it 1 What s SWAR? SWAR = SIMD Within A Register SIMD = Single Instruction Multiple Data MMX,SSE,SSE2,Power3DNow
More information