An Overview of ISA (Instruction Set Architecture)

Size: px
Start display at page:

Download "An Overview of ISA (Instruction Set Architecture)"

Transcription

1 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 influences on ISA development. 3. A discussion of basic data types; what to include and what to omit. 4. A discussion of options for evaluating expressions (mostly numerical): infix, postfix, and prefix. 5. The basics of instruction set design. 6. A comparison of fixed length and variable length instructions. 7. Comparison of stack machines, accumulator machines, and register machines, including a consideration of memory to memory designs. 8. Modern design principles and RISC (Reduced Instruction Set Computers). NOTE: In this context, instruction means assembly language instruction. Page 1 of 37 CPSC 2105 Revised 9/25/2011

2 The Term Architecture The introduction of the IBM System/360 produced the creation and definition of the term computer architecture. According to IBM [R10] The term architecture is used here to describe the attributes of a system as seen by the programmer, i.e., the conceptual structure and functional behavior, as distinct from the organization of the data flow and controls, the logical design, and the physical implementation. The IBM engineers realized that logical structure (as seen by the programmer) and physical structure (as seen by the engineer) are quite different. Thus, each may see registers, counters, etc., that to the other are not at all real entities. In more modern terms, we speak of the Instruction Set Architecture, or ISA, of a family of computers. This isolates the logical structure of a CPU in the family from its physical implementation. Page 2 of 37 CPSC 2105 Revised 9/25/2011

3 Architecture, Organization, and Implementation The basic idea behind the IBM System/360 was a family of computers that shared the same architecture but had different organization. For example, each of the computers in the family had 16 general purpose 32 bit registers, numbered 0 through 15. These were logical constructs. The organization of the different models called for registers to be realized in rather different ways. Model 30 Models 40 and 50 Dedicated storage locations in main memory A dedicated core array, distinct from main memory. Models 60, 62, and 70 True data flip flops, implemented as transistors. Page 3 of 37 CPSC 2105 Revised 9/25/2011

4 Strict Program Compatibility This was the driving goal of the common architecture for the IBM S/360 family. IBM issued a precise definition for its goal that all models in the S/360 family be strictly program compatible ; i.e., that they implement the same architecture. [R10, page 19]. A family of computers is defined to be strictly program compatible if and only if a valid program that runs on one model will run on any model. There are a few restrictions on this definition. 1. The program must be valid. Invalid programs, i.e., those which violate the programming manual, are not constrained to yield the same results on all models. 2. The program cannot require more primary memory storage or types of I/O devices not available on the target model. 3. The logic of the program can contain time dependencies only if they are explicit; e.g., explicit testing for event completion. Page 4 of 37 CPSC 2105 Revised 9/25/2011

5 Instruction Set Architecture The Instruction Set Architecture of a computer defines the view of the machine as seen by the assembly language programmer. The ISA includes the following: 1. The list of machine language instructions. 2. The general purpose registers that can be directly accessed by an assembly language program. 3. The status flags that are interpreted by conditional instructions in the machine language. 4. The standard instructions used to invoke operating system services. 5. The address modes used and methods to form an effective address. 6. Indirectly, the organization of memory (big endian or little endian) The ISA can be seen as a contract, specifying the hardware services that are available to the software. It is the software hardware interface. Page 5 of 37 CPSC 2105 Revised 9/25/2011

6 Comments on the ISA Machine Language vs. Assembly Language The terms can almost be interchanged, as the concepts are similar. Consider an example from the IBM System/370. Assembly language: AR 6,8 Add register 8 to register 6 Machine language: 1A 68 The machine language for the above. The term AR is the assembly mnemonic for the add register instruction. The term 1A is the opcode for the add register instruction. In binary it is the 8 bit code In general, each assembly language instruction is translated to exactly one line of machine language. Assembly language is often viewed as a human readable form of machine language. It is for these reasons that we often consider the two languages to be equivalent. Page 6 of 37 CPSC 2105 Revised 9/25/2011

7 The Core Assembly Language Most courses teach only a subset of any given assembly language. This language, often called the core assembly language suffices to write meaningful programs, but does not cover the entire range of extended possibilities. A working knowledge of the core assembly language of a given computer generally leads to a detailed knowledge of its Instruction Set Architecture. Assembly languages evolve in time, just as the computers for which they are written also evolve. Hardware features are added to improve CPU performance. These lead to new assembly language instructions to use those features. The standard core assembly languages taught are: Intel assembly language, the basis for the Pentium languages. IBM System/370 assembly language, the basis for all IBM mainframes. Page 7 of 37 CPSC 2105 Revised 9/25/2011

8 What Registers are Seen? In general, the set includes all integer registers and floating point registers. On the IBM System/370, the set would include the following. The sixteen general purpose registers R0 through R15. The four floating point registers: F0, F2, F4, and F6. For the Intel Pentium series, the set includes at least the following. The four main computational registers (EAX, EBX, ECX, and EDX), as well as their subset registers (AX, AH, AL, BX, BH, BL, etc.) The index registers (EDI and ESI) and their subsets (DI and SI). The 32 bit pointer registers (EBP, ESP, and EIP). The 16 bit pointer registers (BP, SP, and IP) and the 16 bit segment registers (CS, DS, ES, and SS). Internal control registers (MAR, MBR, etc.) are generally not in the ISA. Page 8 of 37 CPSC 2105 Revised 9/25/2011

9 What is IA 32? The term IA 32 refers to the commonalities that almost all Intel designs since the Intel share. In this view, there are roughly three generations of processors in the main line of Intel products. IA 16 There are only three common models in this line: the Intel 8086 (and 8088), the Intel (not much used), and Intel IA 32 This class holds all of the 32 bit designs in the Intel main line, beginning with the Intel and Intel All 32 bit Pentium designs are included here. It is the upward compatibility design principle that holds IA 32 together. IA 64 This class holds the newer 64 bit Pentium designs. Page 9 of 37 CPSC 2105 Revised 9/25/2011

10 Status Flags The status flags are generally 1 bit values, treated as Boolean, that indicate the status of program execution and reflect the results of the last computation. These status bits are often grouped together conceptually as a 32 bit PSW (Program Status Word) or PSR (Program Status Register). Here are some values used by the IA 32 designs. T O S Z C the trap bit. This indicates the program is to be single stepped. Execution of a program one step at a time helps to debug. Arithmetic overflow bit. Other designs call this V. Sign bit from the ALU. If 1, the result was negative. Other designs call this N for negative. Zero bit from the ALU. If 1, the result was zero. Carry bit from the ALU. Used in multiple precision arithmetic. Page 10 of 37 CPSC 2105 Revised 9/25/2011

11 Invoking Services of the Operating System This class of instructions generates what is called a software interrupt. On various designs, these instructions have mnemonics such as int interrupt, trap, and svc supervisor call. Some systems use the name supervisor for the operating system. This class of instructions is required because of the existence of privileged instructions that only the operating system is allowed to execute. In the IA 32 designs, the most common of these is the int 21 series, which causes a software interrupt with the argument value 21. The int 21 series provides input, output, and file management services. In a later chapter, we shall study software interrupts a bit more and answer a few questions. 1. How do software interrupts differ from hardware interrupts? 2. How do software interrupts differ from standard procedure calls? Page 11 of 37 CPSC 2105 Revised 9/25/2011

12 Data Types: Basic and Otherwise The choice of data types at the ISA level differs slightly from the choice at the level of a high level language. In Java, one may define a data type and write specific code to handle any number of operations on that data type. At the ISA level, the choice is which data types to support and how each type is to be supported. There are two types of support at the ISA level: hardware and software. Certain data types are supported by almost all machines. Character Characters are moved and compared. Binary Integer There are often several integer formats. Each must be moved, compared, and used in standard arithmetic operations. Page 12 of 37 CPSC 2105 Revised 9/25/2011

13 More (Basic) Data Types Floating Point Most computers now support floating point with a special hardware unit. Almost all support the two common formats in the IEEE 754 standard. F IEEE Single Precision D IEEE Double Precision 7 significant digits in decimal form. 16 significant digits in decimal form. NOTE: The IA 32 design uses an internal 80 bit representation in order not to lose precision when accumulating results. NOTE: Many designs do not directly support single precision, but first convert the values to double precision, do the math, and then convert back to single precision. Packed Decimal All IA 32 designs and all IBM Mainframes provide hardware support for this format, widely used in commercial transactions. Page 13 of 37 CPSC 2105 Revised 9/25/2011

14 Data Types Generally Supported in Software Here are a few data types that could be supported in hardware. These types do not get enough use to warrant the extra expense of creating special hardware to handle them on most machines. Bignums This is the LISP name for integers (and other numbers) with arbitrarily large numbers of digits. This would be used to compute the value of the math constant π to 100,000 decimal places. I have seen that done. Complex Numbers This is a set of numbers that has wide applicability in engineering studies. Complex numbers are often written as x + i y, were the symbol i represents the square root of 1, which is not a real number. Complex numbers are normally supported in software as pairs of real numbers, such as (x, y) for x + i y. The math rules are implemented in software. Addition: (x 1, y 1 ) + (x 2, y 2 ) = (x 1 + x 2, y 1 + y 2 ) Multiplication: (x 1, y 1 ) (x 2, y 2 ) = (x 1 x 2 y 1 y 2, x 1 y 2 + y 1 x 2 ) Page 14 of 37 CPSC 2105 Revised 9/25/2011

15 Why Multiple Precisions? A standard ALU (Arithmetic Logic Unit) will support multiple precisions for representing integers and real numbers. In addition, most designs support both signed and unsigned integers. Why not support only the most general of each type. Integers: Floats: 64 bit two s complement, and 64 bit IEEE 754 double precision? There are two standard reasons, each of which is less important for computation on most standard IA 32 and IA 64 machines. 1. More effective use of memory. Why use 8 bytes (64 bits) if 2 bytes (16 bits) will do? 2. Computational efficiency: arithmetic operations on the larger data types take somewhat longer to execute. Page 15 of 37 CPSC 2105 Revised 9/25/2011

16 Example: Evolution of Graphics Standards An examination of the MS Windows utility program Paint will show the evolution of standards for representing color graphics data. The original VGA mode allowed for display of only 256 distinct colors in a 640 by 480 array of pixels. Eight bits were used to encode each pixel. Twenty four bit color, with eight bits to represent each of the Red, Green, and Blue values, was introduced along with the hardware to support it. Recent graphics standards seem to use IEEE 754 Single Precision floating point values (presumably one per color) to represent pixel color values. The company NVIDIA, a producer of graphics coprocessor cards, included support for IEEE 754 single precision on its early graphics cards because it was required to support the standard. This gave rise to the CUDA (Compute Unified Device Architecture), in which NVIDIA graphics cards were used as small supercomputers. This gave rise to support for IEEE 754 double precision, a bit slower. Page 16 of 37 CPSC 2105 Revised 9/25/2011

17 Fixed Length and Variable Length Instructions In a modern stored program computer, all instructions share a basic format. There are two parts: 1. The op code, indicating what instruction is to be executed, and 2. The rest of the instruction, perhaps containing arguments. In a fixed length instruction design, all machine language instructions have the same length. For many designs, this length is 32 bits or four bytes. In a variable length instruction design, the length of the instruction varies. In these, bit patterns in the first bytes of the machine language instruction are interpreted to determine the length of the instruction. The advantages of a fixed length instruction are seen in the CU (Control Unit) of the CPU (Central Processing Unit), which can be simpler and faster. The disadvantage of such a design is that it makes less efficient use of memory. Such designs are said to have poor code density in that a smaller percentage of the memory set aside for code actually contains useful information. Page 17 of 37 CPSC 2105 Revised 9/25/2011

18 One Example of Poor Code Density The Boz 7 is a didactic design by your instructor. Each instruction occupies 32 bits, the first five of which are the op code. Bit Use 5 bit opcode Address Modifier Use depends on the opcode Now consider the HALT instruction (op code = 00000) that stops the computer. Bit Use Not used Not used Only 5 of the 32 bits in this instruction mean anything. Code density = 15.6%. In a variable length instruction design machine, this probably would be packaged as an 8 bit instruction. Bit Use Not used The code density here is 62.5% Page 18 of 37 CPSC 2105 Revised 9/25/2011

19 The MIPS The MIPS (Microprocessor without Interlocked Pipeline Stages) is a commercial design with a fixed length instruction, sized at 32 bits. The MIPS core instruction set has about 60 instructions in three basic formats. The most significant six bits representing the opcode. This allows at most 2 6 = 64 different instructions. Many arithmetic operations have the same opcode, with a function selector, funct, selecting the function. For addition, opcode = 0 and funct = 32. For subtraction, opcode = 0 and funct = 34. This makes better use of memory. Page 19 of 37 CPSC 2105 Revised 9/25/2011

20 Comments on the MIPS Design Note the three fields (rs, rt, rd), each designating a general purpose register. Each is a 5 bit field, suggesting a design with 2 5 = 32 general purpose registers. The shift amount field (shamt) also is a 5 bit field, encoding an unsigned integer between 0 and 31 inclusive. This suggests 32 bit registers. The address/immediate field in the I Format instruction occupies 16 bits. As an unsigned integer, this would limit memory references to 64KB. We infer that this value is a signed address offset; with values in the range to The target address might be of the form (EIP) + Offset. The J Format target address is a 26 bit value. This has the potential to generate direct memory addresses. All instructions are four bytes in length and must be aligned on an address that is a multiple of 4. The last two bits in the address must be 00. This trick expands the address to 28 bits bytes = 256 megabytes. Page 20 of 37 CPSC 2105 Revised 9/25/2011

21 The IBM System/360 and System/370 The design for this architecture was formalized in the early 1960 s, when computer memory was very expensive and somewhat unreliable. This design calls for five common instruction formats. Format Length Use Name in bytes RR 2 Register to register transfers and arithmetic. RS 4 Register to storage and register from storage RX 4 Register to indexed storage and register from indexed storage SI 4 Storage immediate SS 6 Storage to Storage. These have two variants. The average instruction length is probably 4 bytes, which represents a saving of 33% over a fixed length instruction set, each with 6 bytes. Page 21 of 37 CPSC 2105 Revised 9/25/2011

22 One Classification of Architectures How do we handle the operands? Consider a simple addition, specifically C = A + B Stack architecture In this all operands are found on a stack. These have good code density (make good use of memory), but have problems with access. Typical instructions would include: Push X // Push the value at address X onto the top of stack Pop Y // Pop the top of stack into address Y Add // Pop the top two values, add them, & push the result Program implementation of C = A + B Push A Push B Add Pop C Page 22 of 37 CPSC 2105 Revised 9/25/2011

23 Single Accumulator Architectures There is a single register used to accumulate results of arithmetic operations. Consider the high level language statement C = A + B Load A // Load the AC from address A Add B // Add the value at address B Store C // Store the result into address C In each of these instructions, the accumulator is implicitly one of the operands and need not be specified in the instruction. This saves space. Extension of this for multiplication If we multiply two 16 bit signed integers, we can get a 32 bit result. Consider squaring ( ) or is 16 bit binary. The result is 603, 979, 776 or We need two 16 bit registers to hold the result. The PDP 9 had the MQ and AC. The results of this multiplication would be MQ // High 16 bits AC // Low 16 bits Page 23 of 37 CPSC 2105 Revised 9/25/2011

24 General Purpose Register Architectures These have a number of general purpose registers, normally identified by number. The number of registers is often a power of 2: 8, 16, or 32 being common. (The Intel architecture with its four general purpose registers is different. These are called EAX, EBX, ECX, and EDX a lot of history here) The names of the registers often follow an assembly language notation designed to differentiate register names from variable names. An architecture with eight general purpose registers might name them: %R0, %R1,., %R7. The prefix % here indicates to the assembler that we are referring to a register, not to a variable that has a name such as R0. The latter name would be poor coding practice. Designers might choose to have register %R0 identically set to 0. Having this constant register considerably simplifies a number of circuits in the CPU control unit. Page 24 of 37 CPSC 2105 Revised 9/25/2011

25 General Purpose Registers with Load Store A Load Store architecture is one with a number of general purpose registers in which the only memory references are: 1) Loading a register from memory 2) Storing a register to memory The realization of our programming statement C = A + B might be something like Load %R1, A // Load memory location A contents into register 1 Load %R2, B // Load register 2 from memory location B Add %R3, %R1, %R2 // Add contents of registers %R1 and %R2 // Place results into register %R3 Store %R3, C // Store register 3 into memory location C The load store approach was pioneered by the RISC (Reduced Instruction Set Computing) movement, to be discussed later in this lecture. Page 25 of 37 CPSC 2105 Revised 9/25/2011

26 General Purpose Registers: Register Memory In a load store architecture, the operands for any arithmetic operation must all be in CPU registers. The Register Memory design relaxes this requirement to requiring only one of the operands to be in a register. We might have two types of addition instructions Add register to register Add memory to register The realization of the above simple program statement, C = A + B, might be Load %R4, A // Get M[A] into register 4 Add %R4, B // Add M[B] to register 4 Store %R4, C // Place results into memory location C Page 26 of 37 CPSC 2105 Revised 9/25/2011

27 General Purpose Registers: Memory Memory In this, there are no restrictions on the location of operands. Our instruction C = A + B might be encoded simply as Add C, A, B The VAX series supported this mode. The VAX had at least three different addition instructions for each data length Add register to register Add memory to register Add memory to memory There were these three for each of the following data types: 8 bit bytes, 16 bit integers, and 32 bit long integers 32 bit floating point numbers and 64 bit floating point numbers. Here we see at least 15 different instructions that perform addition. This is complex. Page 27 of 37 CPSC 2105 Revised 9/25/2011

28 Reduced Instruction Set Computers The acronym RISC stands for Reduced Instruction Set Computer. RISC represents a design philosophy for the ISA (Instruction Set Architecture) and the CPU microarchitecture that implements that ISA. RISC is not a set of rules; there is no pure RISC design. The first designed called RISC date to the early 1980 s. The movement began with two experimental designs The IBM 801 developed by IBM in 1980 The RISC I developed by UC Berkeley in We should note that the original RISC machine was probably the CDC 6400 designed and built by Mr. Seymour Cray, then of the Control Data Corporation. In designing a CPU that was simple and very fast, Mr. Cray applied many of the techniques that would later be called RISC without himself using the term. Page 28 of 37 CPSC 2105 Revised 9/25/2011

29 RISC vs. CISC Considerations The acronym CISC, standing for Complex Instruction Set Computer, is a term applied by the proponents of RISC to computers that do not follow that design. Early CPU designs could have followed the RISC philosophy, the advantages of which were apparent early. Why then was the CISC design followed? Here are two reasons thought to be important: 1. CISC designs make more efficient use of memory. In particular, the code density is better, more instructions per kilobyte. The cost of memory was a major design influence until the late 1990 s. 2. CISC designs close the semantic gap ; they produce an ISA with instructions that more closely resemble those in a higher level language. This should provide better support for the compilers. The VAX 11/780, manufactured in the 1970 s and 1980 s was definitely CISC, a fact that lead to its demise. The complexity of its control unit made it much too slow. Page 29 of 37 CPSC 2105 Revised 9/25/2011

30 RISC vs. CISC Considerations The RISC (Reduced Instruction Set Computer) movement advocated a simpler design with fewer options for the instructions. Simpler instructions could execute faster. One of the main motivations for the RISC movement is the fact that computer memory is no longer a very expensive commodity. In fact, it is a commodity ; that is, a commercial item that is readily and cheaply available. If we have fewer and simpler instructions, we can speed up the computer s speed significantly. True, each instruction might do less, but they are all faster. The Load Store Design One of the slowest operations is the access of memory, either to read values from it or write values to it. A load store design restricts memory access to two instructions 1) Load a register from memory 2) Store a register into memory A moment s reflection will show that this works only if we have more than one register, possibly 8, 16, or 32 registers. More on this when discussing the options for operands. NOTE: It is easier to write a good compiler for an architecture with a lot of registers. Page 30 of 37 CPSC 2105 Revised 9/25/2011

31 Modern Design Principles: Basic Assumptions Some assumptions that drive current design practice include: 1. The fact that most programs are written in high level compiled languages. Provision of a large general purpose register set greatly facilitates compiler design. 2. The fact that current CPU clock cycle times ( nanoseconds) are much faster than memory access times. Reducing the number of memory accesses will speed up the program. 3. The fact that a simpler instruction set implies a smaller control unit, thus freeing chip area for more registers and on chip cache. 4. The fact that execution is more efficient when a two level cache system is implemented on chip. We have a split L1 cache (with an I Cache for instructions and a D Cache for data) and a L2 cache. 5. The fact that memory is so cheap that it is a commodity item. Page 31 of 37 CPSC 2105 Revised 9/25/2011

32 Modern Design Principles 1. Allow only fixed length operands. This may waste memory, but modern designs have plenty of it, and it is cheap. 2. Minimize the number of instruction formats and make them simpler, so that the instructions are more easily and quickly decoded. 3. Provide plenty of registers and the largest possible on chip cache memory. 4. Minimize the number of instructions that reference memory. Preferred practice is called Load/Store in which the only operations to reference primary memory are: register loads from memory register stores into memory. 5. Use pipelined and superscalar approaches that attempt to keep each unit in the CPU busy all the time. At the very least provide for fetching one instruction while the previous instruction is being executed. 6. Push the complexity onto the compiler. This is called moving the DSI (Dynamic Static interface). Let Compilation (static phase) handle any any issue that it can, so that Execution (dynamic phase) is simplified. Page 32 of 37 CPSC 2105 Revised 9/25/2011

33 What About Support for High Level Languages? Experimental studies conducted in 1971 by Donald Knuth and in 1982 by David Patterson showed that 1) nearly 85% of a programs statements were simple assignment, conditional, or procedure calls. 2) None of these required a complicated instruction set. The following table summarizes some results from experimental studies of code emitted by typical compilers of the 1970 s and 1980 s. Language Pascal FORTRAN Pascal C SAL Workload Scientific Student System System System Assignment Loop Call If GOTO Other Page 33 of 37 CPSC 2105 Revised 9/25/2011

34 Comparison of RISC and CISC This table is taken from an IEEE tutorial on RISC architecture. CISC Type Computers RISC Type IBM 370/168 VAX-11/780 Intel 8086 RISC I IBM 801 Developed Instructions Instruction size (bits) Addressing Modes General Registers Control Memory Size 420 Kb 480 Kb Not given 0 0 Cache Size 64 Kb 64 Kb Not given 0 Not given Page 34 of 37 CPSC 2105 Revised 9/25/2011

35 Experience on the VAX by Digital Equipment Corporation (DEC) The VAX 11/780 is the classic CISC design with a very complex instruction set. DEC experimented with two different implementations of the VAX architecture. These are the VLSI VAX and the MicroVAX 32. The VLSI VAX implemented the entire VAX instruction set. The MicroVAX 32 design was based on the following observation about the more complex instructions. they account for 20% of the instructions in the VAX ISA, they account for 60% of the microcode, and they account for less than 0.2% of the instructions executed. The MicroVAX implemented these instructions in system software. Page 35 of 37 CPSC 2105 Revised 9/25/2011

36 Results of the DEC Experience The VLSI VAX uses five to ten times the resources of the MicroVAX. The VLSI VAX is only about 20% faster than the MicroVAX. Here is a table from their study. Notes: 1. VLSI VAX MicroVAX 32 VLSI Chips 9 2 Microcode 480K 64K Transistors 1250K 101K The MicroVAX used two VLSI chips One for the basic instruction set, and one for the optional floating point processor. 2. Note that two MicroVAX 32 computers, used together, might have about 160% of the performance of the VLSI VAX at about half the cost. Page 36 of 37 CPSC 2105 Revised 9/25/2011

37 The RISC/360 The term is this author s name for an experiment by David A. Patterson. The IBM System/360 comprises a number of computers, all of which fall definitely in the CISC category. Each has a complex instruction set. Patterson s experiment focused on the IBM S/360 and S/370 as targets for a RISC compiler. One model of interest was the S/360 model 44. A compiler created for the RISC computer IBM 801 (an early RISC design) was adapted to emit code for the S/370 treated as a load store RISC machine. This subset ran programs 50 percent faster than the previous best optimizing compiler that used the full S/360 instruction set. Reference David A. Patterson, Reduced Instruction Set Computers, Communications of the ACM, Volume 28, Number 1, Reprinted in IEEE Tutorial Reduced Instruction Set Computers, edited by William Stallings, The Computer Science Press, 1986, ISBN Page 37 of 37 CPSC 2105 Revised 9/25/2011

Reduced Instruction Set Computers

Reduced Instruction Set Computers Reduced Instruction Set Computers The acronym RISC stands for Reduced Instruction Set Computer. RISC represents a design philosophy for the ISA (Instruction Set Architecture) and the CPU microarchitecture

More information

Chapter 7A Overview of Instruction Set Architecture

Chapter 7A Overview of Instruction Set Architecture Overview of This is the first of three chapters in this textbook that correspond to Chapter 7, The Intel Pentium CPU, in the official text for this course, Computer Systems Architecture by Rob Williams.

More information

Modern Design Principles RISC and CISC, Multicore. Edward L. Bosworth, Ph.D. Computer Science Department Columbus State University

Modern Design Principles RISC and CISC, Multicore. Edward L. Bosworth, Ph.D. Computer Science Department Columbus State University Modern Design Principles RISC and CISC, Multicore Edward L. Bosworth, Ph.D. Computer Science Department Columbus State University The von Neumann Inheritance The EDVAC, designed in 1945, was one of the

More information

Computer Processors. Part 2. Components of a Processor. Execution Unit The ALU. Execution Unit. The Brains of the Box. Processors. Execution Unit (EU)

Computer 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 information

Real instruction set architectures. Part 2: a representative sample

Real 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 information

Memory Models. Registers

Memory 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 information

RISC Principles. Introduction

RISC Principles. Introduction 3 RISC Principles In the last chapter, we presented many details on the processor design space as well as the CISC and RISC architectures. It is time we consolidated our discussion to give details of RISC

More information

Assembly Language. Lecture 2 - x86 Processor Architecture. Ahmed Sallam

Assembly 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 information

Problem with Scanning an Infix Expression

Problem with Scanning an Infix Expression Operator Notation Consider the infix expression (X Y) + (W U), with parentheses added to make the evaluation order perfectly obvious. This is an arithmetic expression written in standard form, called infix

More information

Lecture Topics. Announcements. Today: The MIPS ISA (P&H ) Next: continued. Milestone #1 (due 1/26) Milestone #2 (due 2/2)

Lecture Topics. Announcements. Today: The MIPS ISA (P&H ) Next: continued. Milestone #1 (due 1/26) Milestone #2 (due 2/2) Lecture Topics Today: The MIPS ISA (P&H 2.1-2.14) Next: continued 1 Announcements Milestone #1 (due 1/26) Milestone #2 (due 2/2) Milestone #3 (due 2/9) 2 1 Evolution of Computing Machinery To understand

More information

Hardware and Software Architecture. Chapter 2

Hardware 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 information

Systems Architecture I

Systems 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 information

Assembly Language. Lecture 2 x86 Processor Architecture

Assembly 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 information

EC 413 Computer Organization

EC 413 Computer Organization EC 413 Computer Organization Review I Prof. Michel A. Kinsy Computing: The Art of Abstraction Application Algorithm Programming Language Operating System/Virtual Machine Instruction Set Architecture (ISA)

More information

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. 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 information

Chapter 4. MARIE: An Introduction to a Simple Computer 4.8 MARIE 4.8 MARIE A Discussion on Decoding

Chapter 4. MARIE: An Introduction to a Simple Computer 4.8 MARIE 4.8 MARIE A Discussion on Decoding 4.8 MARIE This is the MARIE architecture shown graphically. Chapter 4 MARIE: An Introduction to a Simple Computer 2 4.8 MARIE MARIE s Full Instruction Set A computer s control unit keeps things synchronized,

More information

Chapter 13 Reduced Instruction Set Computers

Chapter 13 Reduced Instruction Set Computers Chapter 13 Reduced Instruction Set Computers Contents Instruction execution characteristics Use of a large register file Compiler-based register optimization Reduced instruction set architecture RISC pipelining

More information

CSEE 3827: Fundamentals of Computer Systems

CSEE 3827: Fundamentals of Computer Systems CSEE 3827: Fundamentals of Computer Systems Lecture 15 April 1, 2009 martha@cs.columbia.edu and the rest of the semester Source code (e.g., *.java, *.c) (software) Compiler MIPS instruction set architecture

More information

Chapter 2. lw $s1,100($s2) $s1 = Memory[$s2+100] sw $s1,100($s2) Memory[$s2+100] = $s1

Chapter 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 information

We can study computer architectures by starting with the basic building blocks. Adders, decoders, multiplexors, flip-flops, registers,...

We 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 information

Outline. What Makes a Good ISA? Programmability. Implementability

Outline. 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 information

EXPERIMENT WRITE UP. LEARNING OBJECTIVES: 1. Get hands on experience with Assembly Language Programming 2. Write and debug programs in TASM/MASM

EXPERIMENT 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 information

Problem with Scanning an Infix Expression

Problem with Scanning an Infix Expression Operator Notation Consider the infix expression (X Y) + (W U), with parentheses added to make the evaluation order perfectly obvious. This is an arithmetic expression written in standard form, called infix

More information

Outline. What Makes a Good ISA? Programmability. Implementability. Programmability Easy to express programs efficiently?

Outline. 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 information

The Instruction Set. Chapter 5

The 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 information

Interfacing Compiler and Hardware. Computer Systems Architecture. Processor Types And Instruction Sets. What Instructions Should A Processor Offer?

Interfacing 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 information

Evolution of ISAs. Instruction set architectures have changed over computer generations with changes in the

Evolution of ISAs. Instruction set architectures have changed over computer generations with changes in the Evolution of ISAs Instruction set architectures have changed over computer generations with changes in the cost of the hardware density of the hardware design philosophy potential performance gains One

More information

Moodle WILLINGDON COLLEGE SANGLI (B. SC.-II) Digital Electronics

Moodle 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 information

UNIT 2 PROCESSORS ORGANIZATION CONT.

UNIT 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 information

Lecture 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. 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 information

IA-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 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 information

Computer Systems Laboratory Sungkyunkwan University

Computer 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 information

Instruction Set Principles. (Appendix B)

Instruction Set Principles. (Appendix B) Instruction Set Principles (Appendix B) Outline Introduction Classification of Instruction Set Architectures Addressing Modes Instruction Set Operations Type & Size of Operands Instruction Set Encoding

More information

MICROPROCESSOR TECHNOLOGY

MICROPROCESSOR 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 information

Typical Processor Execution Cycle

Typical Processor Execution Cycle Typical Processor Execution Cycle Instruction Fetch Obtain instruction from program storage Instruction Decode Determine required actions and instruction size Operand Fetch Locate and obtain operand data

More information

CS 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 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 information

Functional Units of a Modern Computer

Functional Units of a Modern Computer Functional Units of a Modern Computer We begin this lecture by repeating a figure from a previous lecture. Logically speaking a computer has four components. Connecting the Components Early schemes for

More information

Introduction to IA-32. Jo, Heeseung

Introduction 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 information

Review Questions. 1 The DRAM problem [5 points] Suggest a solution. 2 Big versus Little Endian Addressing [5 points]

Review Questions. 1 The DRAM problem [5 points] Suggest a solution. 2 Big versus Little Endian Addressing [5 points] Review Questions 1 The DRAM problem [5 points] Suggest a solution 2 Big versus Little Endian Addressing [5 points] Consider the 32-bit hexadecimal number 0x21d3ea7d. 1. What is the binary representation

More information

Understand the factors involved in instruction set

Understand the factors involved in instruction set A Closer Look at Instruction Set Architectures Objectives Understand the factors involved in instruction set architecture design. Look at different instruction formats, operand types, and memory access

More information

Instruction Set Architectures

Instruction 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 information

The x86 Architecture

The 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 information

INTRODUCTION TO IA-32. Jo, Heeseung

INTRODUCTION 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 information

Computer Organization CS 206 T Lec# 2: Instruction Sets

Computer Organization CS 206 T Lec# 2: Instruction Sets Computer Organization CS 206 T Lec# 2: Instruction Sets Topics What is an instruction set Elements of instruction Instruction Format Instruction types Types of operations Types of operand Addressing mode

More information

ASSEMBLY LANGUAGE MACHINE ORGANIZATION

ASSEMBLY LANGUAGE MACHINE ORGANIZATION ASSEMBLY LANGUAGE MACHINE ORGANIZATION CHAPTER 3 1 Sub-topics The topic will cover: Microprocessor architecture CPU processing methods Pipelining Superscalar RISC Multiprocessing Instruction Cycle Instruction

More information

EEM336 Microprocessors I. The Microprocessor and Its Architecture

EEM336 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 information

Instruction Set Architecture (ISA)

Instruction Set Architecture (ISA) Instruction Set Architecture (ISA)... the attributes of a [computing] system as seen by the programmer, i.e. the conceptual structure and functional behavior, as distinct from the organization of the data

More information

Processing Unit CS206T

Processing 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 information

Chapter 5. A Closer Look at Instruction Set Architectures. Chapter 5 Objectives. 5.1 Introduction. 5.2 Instruction Formats

Chapter 5. A Closer Look at Instruction Set Architectures. Chapter 5 Objectives. 5.1 Introduction. 5.2 Instruction Formats Chapter 5 Objectives Understand the factors involved in instruction set architecture design. Chapter 5 A Closer Look at Instruction Set Architectures Gain familiarity with memory addressing modes. Understand

More information

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

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 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 information

Lecture 3: Instruction Set Architecture

Lecture 3: Instruction Set Architecture Lecture 3: Instruction Set Architecture Interface Software/compiler instruction set hardware Design Space of ISA Five Primary Dimensions Number of explicit operands ( 0, 1, 2, 3 ) Operand Storage Where

More information

8086 INTERNAL ARCHITECTURE

8086 INTERNAL ARCHITECTURE 8086 INTERNAL ARCHITECTURE Segment 2 Intel 8086 Microprocessor The 8086 CPU is divided into two independent functional parts: a) The Bus interface unit (BIU) b) Execution Unit (EU) Dividing the work between

More information

EC-801 Advanced Computer Architecture

EC-801 Advanced Computer Architecture EC-801 Advanced Computer Architecture Lecture 5 Instruction Set Architecture I Dr Hashim Ali Fall 2018 Department of Computer Science and Engineering HITEC University Taxila!1 Instruction Set Architecture

More information

Introduction to Machine/Assembler Language

Introduction 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 information

Math 230 Assembly Programming (AKA Computer Organization) Spring 2008

Math 230 Assembly Programming (AKA Computer Organization) Spring 2008 Math 230 Assembly Programming (AKA Computer Organization) Spring 2008 MIPS Intro II Lect 10 Feb 15, 2008 Adapted from slides developed for: Mary J. Irwin PSU CSE331 Dave Patterson s UCB CS152 M230 L10.1

More information

Topics Power tends to corrupt; absolute power corrupts absolutely. Computer Organization CS Data Representation

Topics Power tends to corrupt; absolute power corrupts absolutely. Computer Organization CS Data Representation Computer Organization CS 231-01 Data Representation Dr. William H. Robinson November 12, 2004 Topics Power tends to corrupt; absolute power corrupts absolutely. Lord Acton British historian, late 19 th

More information

Instruction Set Architecture

Instruction Set Architecture Instruction Set Architecture Instructor: Preetam Ghosh Preetam.ghosh@usm.edu CSC 626/726 Preetam Ghosh Language HLL : High Level Language Program written by Programming language like C, C++, Java. Sentence

More information

The Microprocessor and its Architecture

The 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 information

COMP2121: Microprocessors and Interfacing. Instruction Set Architecture (ISA)

COMP2121: Microprocessors and Interfacing. Instruction Set Architecture (ISA) COMP2121: Microprocessors and Interfacing Instruction Set Architecture (ISA) http://www.cse.unsw.edu.au/~cs2121 Lecturer: Hui Wu Session 2, 2017 1 Contents Memory models Registers Data types Instructions

More information

ISA and RISCV. CASS 2018 Lavanya Ramapantulu

ISA and RISCV. CASS 2018 Lavanya Ramapantulu ISA and RISCV CASS 2018 Lavanya Ramapantulu Program Program =?? Algorithm + Data Structures Niklaus Wirth Program (Abstraction) of processor/hardware that executes 3-Jul-18 CASS18 - ISA and RISCV 2 Program

More information

Assembly Language Programming Introduction

Assembly 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 information

17. Instruction Sets: Characteristics and Functions

17. 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 information

Computer Organization & Assembly Language Programming

Computer Organization & Assembly Language Programming Computer Organization & Assembly Language Programming CSE 2312-002 (Fall 2011) Lecture 8 ISA & Data Types & Instruction Formats Junzhou Huang, Ph.D. Department of Computer Science and Engineering Fall

More information

Chapter 5. A Closer Look at Instruction Set Architectures

Chapter 5. A Closer Look at Instruction Set Architectures Chapter 5 A Closer Look at Instruction Set Architectures Chapter 5 Objectives Understand the factors involved in instruction set architecture design. Gain familiarity with memory addressing modes. Understand

More information

Chapter 5. A Closer Look at Instruction Set Architectures

Chapter 5. A Closer Look at Instruction Set Architectures Chapter 5 A Closer Look at Instruction Set Architectures Chapter 5 Objectives Understand the factors involved in instruction set architecture design. Gain familiarity with memory addressing modes. Understand

More information

Lecture 3 Machine Language. Instructions: Instruction Execution cycle. Speaking computer before voice recognition interfaces

Lecture 3 Machine Language. Instructions: Instruction Execution cycle. Speaking computer before voice recognition interfaces Lecture 3 Machine Language Speaking computer before voice recognition interfaces 1 Instructions: Language of the Machine More primitive than higher level languages e.g., no sophisticated control flow Very

More information

MARIE: An Introduction to a Simple Computer

MARIE: An Introduction to a Simple Computer MARIE: An Introduction to a Simple Computer 4.2 CPU Basics The computer s CPU fetches, decodes, and executes program instructions. The two principal parts of the CPU are the datapath and the control unit.

More information

Computer Architecture

Computer Architecture Computer Architecture Lecture 3: ISA Tradeoffs Dr. Ahmed Sallam Suez Canal University Spring 2015 Based on original slides by Prof. Onur Mutlu Design Point A set of design considerations and their importance

More information

ECE 486/586. Computer Architecture. Lecture # 7

ECE 486/586. Computer Architecture. Lecture # 7 ECE 486/586 Computer Architecture Lecture # 7 Spring 2015 Portland State University Lecture Topics Instruction Set Principles Instruction Encoding Role of Compilers The MIPS Architecture Reference: Appendix

More information

Lecture 4: Instruction Set Architecture

Lecture 4: Instruction Set Architecture Lecture 4: Instruction Set Architecture ISA types, register usage, memory addressing, endian and alignment, quantitative evaluation Reading: Textbook (5 th edition) Appendix A Appendix B (4 th edition)

More information

Computer Architecture

Computer Architecture Computer Architecture Lecture 3: ISA Tradeoffs Dr. Ahmed Sallam Suez Canal University Based on original slides by Prof. Onur Mutlu Application Space Dream, and they will appear 2 Design Point A set of

More information

Addressing Modes on the x86

Addressing 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 information

Complex Instruction Set Computer (CISC)

Complex 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 information

History of the Intel 80x86

History 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 information

Instruction Set Principles and Examples. Appendix B

Instruction Set Principles and Examples. Appendix B Instruction Set Principles and Examples Appendix B Outline What is Instruction Set Architecture? Classifying ISA Elements of ISA Programming Registers Type and Size of Operands Addressing Modes Types of

More information

Low Level Programming Lecture 2. International Faculty of Engineerig, Technical University of Łódź

Low 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 information

Instruction Set Architectures

Instruction 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 information

Program controlled semiconductor device (IC) which fetches (from memory), decodes and executes instructions.

Program 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 information

ADVANCED PROCESSOR ARCHITECTURES AND MEMORY ORGANISATION Lesson-11: 80x86 Architecture

ADVANCED 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 information

Chapter 4. MARIE: An Introduction to a Simple Computer

Chapter 4. MARIE: An Introduction to a Simple Computer Chapter 4 MARIE: An Introduction to a Simple Computer Chapter 4 Objectives Learn the components common to every modern computer system. Be able to explain how each component contributes to program execution.

More information

Computer Science 324 Computer Architecture Mount Holyoke College Fall Topic Notes: MIPS Instruction Set Architecture

Computer Science 324 Computer Architecture Mount Holyoke College Fall Topic Notes: MIPS Instruction Set Architecture Computer Science 324 Computer Architecture Mount Holyoke College Fall 2007 Topic Notes: MIPS Instruction Set Architecture vonneumann Architecture Modern computers use the vonneumann architecture. Idea:

More information

Machine and Assembly Language Principles

Machine 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 information

Communicating with People (2.8)

Communicating with People (2.8) Communicating with People (2.8) For communication Use characters and strings Characters 8-bit (one byte) data for ASCII lb $t0, 0($sp) ; load byte Load a byte from memory, placing it in the rightmost 8-bits

More information

Instruction Set Architecture. "Speaking with the computer"

Instruction Set Architecture. Speaking with the computer Instruction Set Architecture "Speaking with the computer" The Instruction Set Architecture Application Compiler Instr. Set Proc. Operating System I/O system Instruction Set Architecture Digital Design

More information

CS311 Lecture: CPU Implementation: The Register Transfer Level, the Register Set, Data Paths, and the ALU

CS311 Lecture: CPU Implementation: The Register Transfer Level, the Register Set, Data Paths, and the ALU CS311 Lecture: CPU Implementation: The Register Transfer Level, the Register Set, Data Paths, and the ALU Last revised October 15, 2007 Objectives: 1. To show how a CPU is constructed out of a regiser

More information

RISC I from Berkeley. 44k Transistors 1Mhz 77mm^2

RISC 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 information

INTEL Architectures GOPALAKRISHNAN IYER FALL 2009 ELEC : Computer Architecture and Design

INTEL Architectures GOPALAKRISHNAN IYER FALL 2009 ELEC : Computer Architecture and Design INTEL Architectures GOPALAKRISHNAN IYER FALL 2009 GBI0001@AUBURN.EDU ELEC 6200-001: Computer Architecture and Design Silicon Technology Moore s law Moore's Law describes a long-term trend in the history

More information

Chapter 14 Design of the Central Processing Unit

Chapter 14 Design of the Central Processing Unit Chapter 14 Design of the Central Processing Unit We now focus on the detailed design of the CPU (Central Processing Unit) of the Boz 7. The CPU has two major components: the Control Unit and the ALU (Arithmetic

More information

COMP3221: Microprocessors and. and Embedded Systems. Instruction Set Architecture (ISA) What makes an ISA? #1: Memory Models. What makes an ISA?

COMP3221: Microprocessors and. and Embedded Systems. Instruction Set Architecture (ISA) What makes an ISA? #1: Memory Models. What makes an ISA? COMP3221: Microprocessors and Embedded Systems Lecture 2: Instruction Set Architecture (ISA) http://www.cse.unsw.edu.au/~cs3221 Lecturer: Hui Wu Session 2, 2005 Instruction Set Architecture (ISA) ISA is

More information

Page 1. Structure of von Nuemann machine. Instruction Set - the type of Instructions

Page 1. Structure of von Nuemann machine. Instruction Set - the type of Instructions Structure of von Nuemann machine Arithmetic and Logic Unit Input Output Equipment Main Memory Program Control Unit 1 1 Instruction Set - the type of Instructions Arithmetic + Logical (ADD, SUB, MULT, DIV,

More information

CMSC Lecture 03. UMBC, CMSC313, Richard Chang

CMSC 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 information

The x86 Microprocessors. Introduction. The 80x86 Microprocessors. 1.1 Assembly Language

The x86 Microprocessors. Introduction. The 80x86 Microprocessors. 1.1 Assembly Language The x86 Microprocessors Introduction 1.1 Assembly Language Numbering and Coding Systems Human beings use the decimal system (base 10) Decimal digits: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Computer systems use the

More information

Computer System Architecture

Computer 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 information

RISC, CISC, and ISA Variations

RISC, CISC, and ISA Variations RISC, CISC, and ISA Variations CS 3410 Computer System Organization & Programming These slides are the product of many rounds of teaching CS 3410 by Professors Weatherspoon, Bala, Bracy, and Sirer. iclicker

More information

Basic Execution Environment

Basic 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 information

Machine-level Representation of Programs. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Machine-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 information

IA32 Intel 32-bit Architecture

IA32 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 information

Announcements HW1 is due on this Friday (Sept 12th) Appendix A is very helpful to HW1. Check out system calls

Announcements HW1 is due on this Friday (Sept 12th) Appendix A is very helpful to HW1. Check out system calls Announcements HW1 is due on this Friday (Sept 12 th ) Appendix A is very helpful to HW1. Check out system calls on Page A-48. Ask TA (Liquan chen: liquan@ece.rutgers.edu) about homework related questions.

More information

Computer Science 324 Computer Architecture Mount Holyoke College Fall Topic Notes: MIPS Instruction Set Architecture

Computer Science 324 Computer Architecture Mount Holyoke College Fall Topic Notes: MIPS Instruction Set Architecture Computer Science 324 Computer Architecture Mount Holyoke College Fall 2009 Topic Notes: MIPS Instruction Set Architecture vonneumann Architecture Modern computers use the vonneumann architecture. Idea:

More information

Microprocessor and Assembly Language Week-5. System Programming, BCS 6th, IBMS (2017)

Microprocessor and Assembly Language Week-5. System Programming, BCS 6th, IBMS (2017) Microprocessor and Assembly Language Week-5 System Programming, BCS 6th, IBMS (2017) High Speed Memory Registers CPU store data temporarily in these location CPU process, store and transfer data from one

More information