CSIT 301 (Blum)1 Software Based in part on material from Chapters 4 & 5 in Computer Architecture by Nicholas Carter.

Slides:



Advertisements
Similar presentations
RAM (cont.) 220 bytes of RAM (1 Mega-byte) 20 bits of address Address
Advertisements

GCSE Computing Lesson 5.
Instruction Set Design
INSTRUCTION SET ARCHITECTURES
 Suppose for a moment that you were asked to perform a task and were given the following list of instructions to perform:
The Assembly Language Level
Tuan Tran. What is CISC? CISC stands for Complex Instruction Set Computer. CISC are chips that are easy to program and which make efficient use of memory.
1 Registers and MAL - Part I. Motivation So far there are some details that we have ignored instructions can have different formats most computers have.
Processor Technology and Architecture
Chapter XI Reduced Instruction Set Computing (RISC) CS 147 Li-Chuan Fang.
CSCE 121, Sec 200, 507, 508 Fall 2010 Prof. Jennifer L. Welch.
Chapter 4 Processor Technology and Architecture. Chapter goals Describe CPU instruction and execution cycles Explain how primitive CPU instructions are.
Chapter 2: Impact of Machine Architectures What is the Relationship Between Programs, Programming Languages, and Computers.
Introduction to a Programming Environment
CMP 131 Introduction to Computer Programming Violetta Cavalli-Sforza Week 1, Lab.
EET 2261 Unit 2 HCS12 Architecture
The Pentium: A CISC Architecture Shalvin Maharaj CS Umesh Maharaj:
Cisc Complex Instruction Set Computing By Christopher Wong 1.
RISC and CISC. Dec. 2008/Dec. and RISC versus CISC The world of microprocessors and CPUs can be divided into two parts:
Principles of Programming Chapter 1: Introduction  In this chapter you will learn about:  Overview of Computer Component  Overview of Programming 
CHAPTER 4: INTRODUCTION TO COMPUTER ORGANIZATION AND PROGRAMMING DESIGN Lec. Ghader Kurdi.
General Computer Science for Engineers CISC 106 Lecture 02 Dr. John Cavazos Computer and Information Sciences 09/03/2010.
Levels of Architecture & Language CHAPTER 1 © copyright Bobby Hoggard / material may not be redistributed without permission.
IT253: Computer Organization Lecture 4: Instruction Set Architecture Tonga Institute of Higher Education.
1 4.2 MARIE This is the MARIE architecture shown graphically.
Software Overview. Why review software? Software is the set of instructions that tells hardware what to do The reason for hardware is to execute a program.
CSIT 301 (Blum)1 Instructions at the Lowest Level Some of this material can be found in Chapter 3 of Computer Architecture (Carter)
Computers organization & Assembly Language Chapter 0 INTRODUCTION TO COMPUTING Basic Concepts.
What have mr aldred’s dirty clothes got to do with the cpu
Microcode Source: Digital Computer Electronics (Malvino and Brown)
CS 147 June 13, 2001 Levels of Programming Languages Svetlana Velyutina.
Computer Engineering Rabie A. Ramadan Lecture 1. 2 Welcome Back.
PHY 201 (Blum)1 Microcode Source: Digital Computer Electronics (Malvino and Brown)
Ted Pedersen – CS 3011 – Chapter 10 1 A brief history of computer architectures CISC – complex instruction set computing –Intel x86, VAX –Evolved from.
CSC 370 (Blum)1 Instructions From the Bottom Up Based in part on material from Chapters 4 & 5 in Computer Architecture by Nicholas Carter.
 Introduction to SUN SPARC  What is CISC?  History: CISC  Advantages of CISC  Disadvantages of CISC  RISC vs CISC  Features of SUN SPARC  Architecture.
Instructions. Portability In addition to making hardware backward compatible, we have also made software portable. In describing software, “portable”
ECEG-3202 Computer Architecture and Organization Chapter 7 Reduced Instruction Set Computers.
Stored Programs In today’s lesson, we will look at: what we mean by a stored program computer how computers store and run programs what we mean by the.
1.4 Representation of data in computer systems Instructions.
CISC and RISC 12/25/ What is CISC? acronym for Complex Instruction Set Computer Chips that are easy to program and which make efficient use of memory.
Instruction Sets: Addressing modes and Formats Group #4  Eloy Reyes  Rafael Arevalo  Julio Hernandez  Humood Aljassar Computer Design EEL 4709c Prof:
The Instruction Set Architecture. Hardware – Software boundary Java Program C Program Ada Program Compiler Instruction Set Architecture Microcode Hardware.
Computer Organization Instruction Set Architecture (ISA) Instruction Set Architecture (ISA), or simply Architecture, of a computer is the.
Computer Systems – Machine & Assembly code. Objectives Machine Code Assembly Language Op-code Operand Instruction Set.
CSIT 301 (Blum)1 Instructions at the Lowest Level Some of this material can be found in Chapter 3 of Computer Architecture (Carter)
The Processor & its components. The CPU The brain. Performs all major calculations. Controls and manages the operations of other components of the computer.
Copyright © 2005 – Curt Hill MicroProgramming Programming at a different level.
Winter 2016CISC101 - Prof. McLeod1 Today Numeric representation (or “How does binary and hexadecimal work?”). How can a CPU understand instructions written.
Addressing modes, memory architecture, interrupt and exception handling, and external I/O. An ISA includes a specification of the set of opcodes (machine.
Introduction to computer software. Programming the computer Program, is a sequence of instructions, written to perform a specified task on a computer.
Component 1.6.
A Closer Look at Instruction Set Architectures
Edexcel GCSE Computer Science Topic 15 - The Processor (CPU)
Instructions From the Bottom Up
A Closer Look at Instruction Set Architectures
Instructions at the Lowest Level
Instructions From the Bottom Up
About Instructions Based in part on material from Chapters 4 & 5 in Computer Architecture by Nicholas Carter PHY 201 (Blum)
Central Processing Unit
CISC AND RISC SYSTEM Based on instruction set, we broadly classify Computer/microprocessor/microcontroller into CISC and RISC. CISC SYSTEM: COMPLEX INSTRUCTION.
CSCE Fall 2013 Prof. Jennifer L. Welch.
Topics Introduction Hardware and Software How Computers Store Data
CSCE Fall 2012 Prof. Jennifer L. Welch.
Introduction to Microprocessor Programming
ECE 352 Digital System Fundamentals
Instructions.
A Level Computer Science Topic 5: Computer Architecture and Assembly
Instructions at the Lowest Level
Course Code 114 Introduction to Computer Science
Presentation transcript:

CSIT 301 (Blum)1 Software Based in part on material from Chapters 4 & 5 in Computer Architecture by Nicholas Carter

CSIT 301 (Blum)2 Moving up one level Micro-code rarely changes thus it is written in (“burned into”) read-only memory (ROM). By the true meaning of the terms, ROM is RAM, by which I mean that a particular “word” in ROM is accessed using an address and does not require progressing through previous locations. Thus we can access the micro-code by supplying its address. Effectively, the addresses of the micro- code is the next level of programming: machine code.

CSIT 301 (Blum)3 Machine code In a machine-code program, one tells the computer to execute the micro-code found at Control-ROM Address1, then execute the micro-code found at Control-ROM Address2, etc. The program looks something like –Address1 –Address2 except that the addresses are in binary (1’s and 0’s). So it might look like – –

CSIT 301 (Blum)4 Machine code is software Micro-code is often referred to as firmware to indicate that it is the transition between hardware and software, that it is written in ROM and not changed very readily. Machine code is placed in RAM, which is easily rewritten. Thus it is soft-ware.

CSIT 301 (Blum)5 Ground floor for software Machine code is the lowest level of software. It is the only level of software capable of communicating with the hardware (via the firmware). Thus all software must be put into machine language form before it can be executed.

CSIT 301 (Blum)6 What makes software soft? Part of the flexibility of software is that the set of instructions can be rearranged, leading to a different program. Another part of the flexibility is the inclusion of data with the instructions. –A machine level instruction may be to move the value stored at a certain memory location to a register (e.g. Accumulator A). – Part of the instruction is data, the memory location, which can be changed to yield different results. –Also the data at the memory location can be changed to yield different results.

CSIT 301 (Blum)7 Operator/Operand So a software instruction can specify an action and data to be acted upon. –We use the term operator (also op-code) to refer to the action. –We use the term operand to refer to the data. So if we instruct the computer to copy the value from memory location 35 to accumulator A, then –Copying a value from memory to Acc. A is the operator –Location 35 is the operand

CSIT 301 (Blum)8 Instruction set So a programmer can modify the order of instructions and the data portion (operands) of those instructions, but what is fixed is the set of allowable instructions, known as the instruction set. The instruction set is an important characteristic of the processor, what instructions and how many are allowed.

CSIT 301 (Blum)9 Instruction-Set Size Issue Often one can realize a complicated instruction by using simple instructions, but then one must execute several instructions instead of just one. –The burden is taken off the hardware and put on the software. So an issue in processor design is whether one should have a smaller collection of simpler, faster instructions or whether one should support a larger collection of more complex instructions. If the more complex instructions are rarely used, it may be better to leave them out – provided their effect can obtained using a combination of other instructions.

CSIT 301 (Blum)10 RISC/CISC Reduced Instruction Set Computers (RISC) use processors that limit the number of instructions with the idea that the supported instructions will be simpler and faster. –A simpler instruction set also means less circuitry, fewer transistors and thus cheaper processors. To distinguish conventionally designed from RISC machines, the term Complex Instruction Set Computers (CISC) was introduced. Ideas from both camps have merged, so now it is hard to distinguish RISC from CISC.

CSIT 301 (Blum)11 RISCs in Parallel RISC processors are coming around again but this time in parallel. The simpler RISC processor requires fewer transistors and takes up less space. Thus, one can place two or more of them on a single chip. Multicore.

CSIT 301 (Blum)12 Stored program as data At the machine language level, one is writing software by entering strings of 1’s and 0’s. This is tedious and error prone. In the stored program concept, the instructions and the data are placed together in memory. It is then possible to treat the program as data – either of a different program or indeed of the same program. –The latter case is known as self-modifying code.

CSIT 301 (Blum)13 Assembly: one small step … Instead of coding in machine language’s binary strings, people introduced mnemonics for the instructions. –For example, LDA 35 instead of something like Then there was another program that treated the mnemonic code as data and created from it the corresponding machine code. The program is called an assembler and the mnemonic code is called assembly.

CSIT 301 (Blum)14 One-to-one There is essentially a one-to-one correspondence between assembly code and machine code. The assembler code corresponds to a look-up table. –It looks up the assembly code and outputs the corresponding machine code. –It can also do some checking. If the code submitted is not proper assembly code, …

CSIT 301 (Blum)15 Hardware Aware The assembly programmer has to have knowledge of the computer’s architecture –What registers there are –What actions are allowed on those registers –Etc. If the hardware changes, the assembly program may no longer be any good.

CSIT 301 (Blum)16 Backward Compatibility So as to not render customer’s software completely useless, processor designers take backward compatibility into consideration. A computer is called “backward compatible” if it can run the same software as the previous model of the computer. –The reverse is not necessarily true – for software written based on the new hardware. A manufacturer will try to make a series or family of processors backward compatible provided it doesn’t stand in the way of progress. Sometimes the computer has a special mode for running old programs.

CSIT 301 (Blum)17 Intel Intel introduced the first microprocessor (the CPU on a single chip) – the 4004 designed in conjunction with the Japanese firm Busicom for use in a calculator. They followed this with the 4040, 8008, 8080, 8086, 8088, and the At this stage, people drop the 80 at the beginning, giving the 286, 386, 486. Because a company cannot trademark a number, they stopped using this naming scheme, so instead of 586, we got the Pentium.

CSIT 301 (Blum)18 Intel Intel, founded in 1968 by Bob Noyce and Gordon Moore is the world's largest manufacturer of computer chips. It has been challenged by AMD – Advanced Micro Devices (especially since they broke the GHz barrier first) – and Cyrix (now part of VIA). Nearly all PCs are based on Intel's x86 architecture, in fact that’s how some people define the term PC. And now Intel chips are used in MACs.

CSIT 301 (Blum)19

CSIT 301 (Blum)20 Speaking of Gordon Moore Moore observed an exponential growth (effectively doubling every couple years) in the number of transistors per integrated circuit and predicted that this trend would continue. This is known as Moore’s Law. There are similar predictions about memory, price, etc.

CSIT 301 (Blum)21 Year of introduction Transistors , , , , , ™ processor , ™ DX processor19891,180,000 Pentium® processor 19933,100,000 Pentium II processor 19977,500,000 Pentium III processor ,000,000 Pentium 4 processor ,000,000

CSIT 301 (Blum)22

CSIT 301 (Blum)23

CSIT 301 (Blum)24

CSIT 301 (Blum)25 Portability In addition to making hardware backward compatible, we have also made software portable. In describing software, “portable” means that the software can be run on a variety of computers. Another term used is independence, in this case machine or hardware independence. Assembly’s use of specifics of the registers makes it machine dependent. One has to program at a higher level to gain machine independence. Of course, someone must deal with the specifics of the hardware but it doesn’t have to be you (Layering).

CSIT 301 (Blum)26 High-level language Languages which are above assembly language, known as high-level languages, hide the details of the hardware and thus are portable or hardware independent. Of course, high-level language are not directly executed. There is an in-between process or processes (compiling, translating, interpreting, linking, etc.) necessary before they can be executed.

CSIT 301 (Blum)27

CSIT 301 (Blum)28 Generations Another way of discussing this is to talk about generations. 1GL or first-generation language is machine language. 2GL or second-generation language is assembly. 3GL or third-generation language is a "high- level" programming language, Fortran, C, Java, Visual Basic, etc. 4GL or fourth-generation language is a more descriptive language, closer to human language usually used to query databases.

CSIT 301 (Blum)29 5 th Generation Language

CSIT 301 (Blum)30 Instruction Set One aspect of processor design is to determine what instructions will be supported. There must be rules (syntax) for how instructions are expressed, so that the code can be parsed, one instruction distinguished from the next, the data (operand) separated from the action (operator).

CSIT 301 (Blum)31 Number of operands An example of syntax would be whether an operator is binary or unary Binary operators take two operands –e.g. the Boolean operator AND –(x<y) AND (i=j) Unary operators take one operand –E.g. the Boolean operator NOT –NOT(x<y) Some ops are context dependent –- 5 (unary) versus 4-5 (binary)

CSIT 301 (Blum)32 Operation versus Instruction An operation such as addition, which is binary (takes two operands), can be coded using instructions that are unary (one operand) if there is a default location implied such as Accumulator A becomes –Load 5 (places data in acc. A) –Add 6 (adds number in Acc. A to new number)

CSIT 301 (Blum)33 Where does the answer go? Whether it’s or (Load 5, Add 6), there’s the question of what to do with the result. We can again use the default location of Accumulator A to place the answer in, or we can include a third operand that indicates where the result should be placed.

CSIT 301 (Blum)34 Store Placing the result of an operation in memory is known as storing it. Thus with unary instructions, we would have –Load 5 –Add 6 –Store 7 The operand of the store is an address indicating where to store the answer, which is held in Accumulator A. Or one might have just one instruction with three operands –Add 7, 5, 6

CSIT 301 (Blum)35 Addressing Modes The “7” in the previous example was clearly an address. But this raises the question as to what were the operands in the two previous instructions (Load and Add). For those instructions, the operand might have been the actual numbers one wanted added or the addresses of numbers one wanted added.

CSIT 301 (Blum)36 More than one kind of add By “Add” one typically means the latter case on the previous slide. The operand is not the number to be added but the address of the number to be added. –(Think variables.) A designer can include a distinct add instruction, Add Immediate, in which the operand is the actual number to be added.

CSIT 301 (Blum)37 Add Indirect In another version of addition, the operand is an address, and the data at that address is also an address, and the actual number to be added is located at the second address.

CSIT 301 (Blum)38 A short program AddressValue 0LOAD 4 1ADD INDIRECT 5 2ADD IMMEDIATE 6 3STOP Acc. A: XXX The arrow indicates the program counter, we assume it has not executed the statement it points to.

CSIT 301 (Blum)39 A short program AddressValue 0LOAD 4 1ADD INDIRECT 5 2ADD IMMEDIATE 6 3STOP Acc. A: 5 The Load 4 instruction has been executed. The value at location 4 (which is a 5) has been loaded into the accumulator.

CSIT 301 (Blum)40 A short program AddressValue 0LOAD 4 1ADD INDIRECT 5 2ADD IMMEDIATE 6 3STOP Acc. A: 12 The Add Indirect 5 instruction has been executed. One goes to location 5 to find a value of 6. That 6 is an address, thus one goes to location 6 to find a value of 7 and that is added to the 5 waiting in the accumulator. The result of 12 is placed in the accumulator.

CSIT 301 (Blum)41 A short program AddressValue 0LOAD 4 1ADD INDIRECT 5 2ADD IMMEDIATE 6 3STOP Acc. A: 18 The Add Immediate 6 instruction has been executed. The value 6 is data which is added to the 12 waiting in the accumulator. The result of 18 is placed in the accumulator.

CSIT 301 (Blum)42 The Stop Instruction Recall that in what is actually executed (machine code, not assembly) the instructions themselves are numbers. Thus it is crucial to know within a single instruction which numbers correspond to an operation and which numbers are operands. Similarly on the level of the program itself, the processor needs to know where the program ends as there may be data stored after it. In a machine with an operating system, it is more a notion of returning (control) than of stopping or halting.

CSIT 301 (Blum)43 Recap so far So there were issues about the number of operands. –Recall that we have a fetch-execute cycle – first an instruction is retrieved from memory and then acted upon. –With unary instructions adding two numbers and storing the result required three instructions, that’s three fetches and three executions. –With ternary instructions it can be done with one instruction, one fetch and one execute. The execution is now more complicated but we have saved time on fetches.

CSIT 301 (Blum)44 Recap so far (Cont.) More operators means more complicated circuitry, the load and store aspects of the instruction would have to built into each separate instruction. There is a speed versus complexity issue. And complexity also brings the issue of cost along with it.

CSIT 301 (Blum)45 Recap so far (Cont.) After determining the number of operands, came the issue of what the operands mean. –Are they data, addresses of data, or addresses of addresses of data? Either we can decide to support all of these types of instructions (addressing modes) and choose complexity. Or we can choose to support only some of them and sacrifice efficiency. –You can eliminate Add Immediate if you always store the values you want to add.

CSIT 301 (Blum)46 Data Types Apart from addressing, another issue is the type of data the operation is acting on. –The process for adding integers is different from the process for adding floating point numbers. –So one may have separate ADD and FADD for the addition of integers and floats respectively. –Furthermore, one may need to add instructions to convert from one type to another. To add an integer to a float, convert the integer to a float and then add the floats.

CSIT 301 (Blum)47 References Computer Architecture, Nicholas Carter Digital Computer Electronics, Albert P. Malvino and Jerald A. Brown