School of Computer Science G51CSA 1 The Little Man Computer.

Slides:



Advertisements
Similar presentations
CHAPTER 6: The Little Man Computer
Advertisements

Computer Architecture and the Fetch-Execute Cycle
The Assembly Language Level
The Little man computer
The CPU Revision Typical machine code instructions Using op-codes and operands Symbolic addressing. Conditional and unconditional branches.
LMC Little Moron Computer
CSCE 121, Sec 200, 507, 508 Fall 2010 Prof. Jennifer L. Welch.
Memory - Registers Instruction Sets
Stored Program Concept: The Hardware View
Recap – Our First Computer WR System Bus 8 ALU Carry output A B S C OUT F 8 8 To registers’ input/output and clock inputs Sequence of control signal combinations.
Chapter 2: Impact of Machine Architectures What is the Relationship Between Programs, Programming Languages, and Computers.
The Little Man Computer
Lecture 13 - Introduction to the Central Processing Unit (CPU)
The von Neumann Model – Chapter 4 COMP 2620 Dr. James Money COMP
An Interactive Web-Based Simulation of a General Computer Architecture
CS 1308 Computer Literacy and the Internet Computer Systems Organization.
Machine Instruction Characteristics
Computer Systems Organization CS 1428 Foundations of Computer Science.
Computer Architecture and the Fetch-Execute Cycle
Computer Architecture and the Fetch-Execute Cycle
Microcode Source: Digital Computer Electronics (Malvino and Brown)
CSC 3210 Computer Organization and Programming Chapter 1 THE COMPUTER D.M. Rasanjalee Himali.
Week 2.  Understand what the processor is and what it does.  Execute basic LMC programs.  Understand how CPU characteristics affect performance.
The CPU Central Processing Unit. 2 Reminder - how it fits together processor (CPU) memory I/O devices bus.
Chapter 4 The Von Neumann Model
CHAPTER 6: The Little Man Computer
Von Neumann Machine Objectives: Explain Von Neumann architecture:  Memory –Organization –Decoding memory addresses, MAR & MDR  ALU and Control Unit –Executing.
Computer Architecture And Organization UNIT-II General System Architecture.
Execution of an instruction
Lecture 14 Today’s topics MARIE Architecture Registers Buses
Little Man Computer When your program gets “translated to machine code” all 0’s & 1’s The translator must know the language of the program (java) as well.
1 Text Reference: Warford. 2 Computer Architecture: The design of those aspects of a computer which are visible to the programmer. Architecture Organization.
A summary of TOY. 4 Main Components Data Processor Control Processor Memory Input/Output Device.
Computer Architecture 2 nd year (computer and Information Sc.)
© GCSE Computing Candidates should be able to:  describe the characteristics of an assembler Slide 1.
Computer Organization 1 Instruction Fetch and Execute.
The von Neumann Model – Chapter 4 COMP 2620 Dr. James Money COMP
System Unit Working of CPU. The CPU CPU The CPU CPU stands for central processing unit. it is brain of computer It is most important component of the.
Dale & Lewis Chapter 5 Computing components
Digital Computer Concept and Practice Copyright ©2012 by Jaejin Lee Control Unit.
Examples with 3-Digit Numbers
Question What technology differentiates the different stages a computer had gone through from generation 1 to present?
CMSC 104, Lecture 061 Stored Programs A look at how programs are executed.
Computer Organization Instructions Language of The Computer (MIPS) 2.
Digital Computer Concept and Practice Copyright ©2012 by Jaejin Lee Control Unit.
Mastering LMC Coding Part #1 Introduction to Low Level Languages Introduction to Little Man computer Simple examples (demos) with video tutorials included.
Program to multiply 2 numbers 500-Input x 291-Store acc. as x 500-Input y 292-Store acc. as y 193-Load y in to acc. (0 on 1 st parse) 391-Add x to acc.
Little Man Computer Task 1 Last lesson you were asked to write a program to multiply two numbers together. The next slide has a working program to do this.
1. 2 TimeActivity 9:45Welcome and introductions 10:00What is a computer? 10:15What’s inside? 10:45Activity: A simple view of how computers work 11:15Coffee/tea.
The Little man computer
CHAPTER 6: The Little Man Computer
Basic Computer Organization and Design
Control Unit Lecture 6.
CHAPTER 6: The Little Man Computer
Chapter 4 The Von Neumann Model
Starter Read the Feedback Click on Add new Feedback Open Realsmart
Computer Science 210 Computer Organization
The Processor and Machine Language
Computer Science 210 Computer Organization
CHAPTER 6: The Little Man Computer
Computer Architecture
Computer Architecture
ECE 352 Digital System Fundamentals
GCSE OCR 1 The CPU Computer Science J276 Unit 1
Chapter 6 Programming the basic computer
A Level Computer Science Topic 5: Computer Architecture and Assembly
Information Representation: Machine Instructions
Objectives Describe common CPU components and their function: ALU Arithmetic Logic Unit), CU (Control Unit), Cache Explain the function of the CPU as.
Chapter 4 The Von Neumann Model
Little Man Computer.
Presentation transcript:

School of Computer Science G51CSA 1 The Little Man Computer

School of Computer Science G51CSA 2 The Little Man Computer: Components & Physical Layout J100 mailboxes Jaddress JEach holds 3-digit decimal number JCalculator JEnter number JTemporarily hold number JAdd and Subtraction JDisplay 3 digits JHand counter JReset button JInstruction counter JLittle Man JIn/Out Basket

School of Computer Science G51CSA 3 The Little Man Computer: Components & Physical Layout JStart Button: The operator of the LMC (not the Little Man) presses the START BUTTON to zero the Instruction Counter and ring a bell which wakes up the Little Man so he can start executing the program which has previously been stored in the mailboxes JInstruction Counter: This display contains the number of the mailbox in which the NEXT instruction is stored. The Little Man can change the number in the instruction counter (usually by incrementing but sometimes by replacement), and the user of the LMC can reset the Instruction Counter to 00 using the start button

School of Computer Science G51CSA 4 The Little Man Computer: Components & Physical Layout JCalculator: Performs simple arithmetic (addition and subtraction only) Used for temporary storage of a single three digit number. The display is limited to three digits. The calculator has ten numerical keys (0-9) and two operation keys (+ and -). The calculator also has two lights which can be seen by the Little Man. One of these lights turns on whenever the number being displayed is exactly zero. The other light turns on whenever the number being displayed is positive ( the number ZERO is considered a positive number). Thus when ZERO is displayed on the calculator, both lights will be on. These lights are sometimes referred to as flags

School of Computer Science G51CSA 5 The Little Man Computer: Components & Physical Layout JMailboxes: Mailboxes are identified using two-digit numbers (00 99) and each can hold a single slip of paper containing a single three digit number.

School of Computer Science G51CSA 6 The Little Man Computer: Communication with outside World JA user outside the mailroom communicate with the little man by JPutting a 3-digit into the in basket JRetrieving a 3-digit from the out basket JApart from the reset button, all communication between the LMC and the outside world takes place using 3-digit numbers

School of Computer Science G51CSA 7 The Little Man Computer: Operation JA small group of instructions, each consists of a single digit JThe first digit of a 3-digit number is used to tell the Little Man which operation to perform. JIn some cases, the Little Man is required to use a particular mailbox to store or retrieve data JThe 3 digits can be used to give instructions to the Little Man according to 3 25 Instructionmailbox address Operation Code (Op-Code)

School of Computer Science G51CSA 8 The Little Man Computer: Instruction Set FORMATMNEMONICMEANING 3xxSTO xxStores the calculator value into mailbox xx. 4xxSTA xxStores the address portion of the calculator value (last 2 digits) into the address portion of the instruction in mailbox xx. 5xxLOAD xxLoads the contents of mailbox xx into the calculator.

School of Computer Science G51CSA 9 The Little Man Computer: Instruction Set FORMATMNEMONICMEANING 1xxADD xxAdds the contents of mailbox xx to the calculator display. 2xxSUB xxSubtracts the contents of mailbox xx from the calculator display.

School of Computer Science G51CSA 10 The Little Man Computer: Instruction Set FORMATMNEMONICMEANING 000STOPStops the Computer - the Little Man rests. 6xxB xxThis instruction sets the instruction counter to the number xx, thus effectively branching to mailbox xx 7xxBZ xx IF the calculator value is zero, THEN set the instruction counter to the number xx, thus effectively branching to mailbox xx. 8xxBP xxIF the calculator value is positive, THEN set the instruction counter to the number xx, thus effectively branching to mailbox xx. NOTE: zero is considered positive.

School of Computer Science G51CSA 11 The Little Man Computer: Instruction Set FORMAT MNEMONIC MEANING 901INPUTRead a number from the IN basket and key it into the calculator. 902OUTPUTCopy the number in the calculator onto a slip of paper and place it into the OUT basket.

School of Computer Science G51CSA 12 The Little Man Computer: Execute Program JLoad the instructions into the mailboxes, starting with mailbox 00. JPlace the data to be used by the program in the IN basket, in the order in which the program will use these data. JPress the RESET BUTTON to set the Instruction Counter to 00 and to also wakeup the Little Man. Then 1. The Little Man looks into the Instruction Counter 2. The Little Man find the mailbox whose address has the value in the Instruction Counter and fetches the 3-digit number from the mailbox. 3. The Little Man executes the instruction found in the mailbox 4. The Little Man go over to increase the instruction counter by 1 5. The Little Man repeat the by going to 1 To actually run an LMC program we must carry out the following steps.

School of Computer Science G51CSA 13 The Little Man Computer: Program Example Mail Box Division: Both Program and data are stored in the mail box Which is data, which is program? Instructions Data Not Used Mail Box Map (Memory Map)

School of Computer Science G51CSA 14 The Little Man Computer: Program Example Write a LMC program which adds two numbers together MailboxCodeInstruction Description INPUT STORE DATA (to mailbox no 99) INPUT ADD the 1st number to 2nd number OUTPUT RESULT The Little Man rest 99Data

School of Computer Science G51CSA 15 The Little Man Computer: Program Example Write a LMC program to find the positive (absolute) difference of two numbers MailboxMnemonicCode 00IN STO IN STO SUB BP LOAD SUB OUT902 09HALT000 10DAT DAT00000

School of Computer Science G51CSA 16 The Little Man Computer: The Instruction Cycle The fetch portion of the instruction cycle (LOAD Instruction)

School of Computer Science G51CSA 17 The Little Man Computer: The Instruction Cycle The execute portion of the instruction cycle (LOAD instruction)

School of Computer Science G51CSA 18 The Little Man Computer: The Instruction Cycle The execute portion of the instruction cycle (LOAD instruction)

School of Computer Science G51CSA 19 Some Observations Regarding Computer Architecture JBetween 1945 and 1951, von Neumann architecture JOther experimental architectures have been developed and built Jvon Neumann architecture continues to be the standard architecture for computer JNo other architecture has had any commercial success so far JIt is significant that in a field where technological changes happens almost overnight, the architecture of computers is virtually unchanged since 1951 J Key concepts of von Neumann architecture include JStored program concept JMemory is addressed linearly JMemory addressed by the location number without regard to the contents JInstructions executed in sequence unless an instruction or outside events cause branch

School of Computer Science G51CSA 20 MM MAR MDR PC IR Accu. ALU Buffer Ctrl Out In The Little Man CPU

School of Computer Science G51CSA 21 Assembly Languages And Programming Paradigm

School of Computer Science G51CSA 22 Programming Languages Divided into two broad categories – Low-level (close to hardware) – High-level (abstracted away from hardware)

School of Computer Science G51CSA 23 Characteristics Of High-Level Language Many-to-one translation Hardware independence Application orientation General-purpose Powerful abstractions

School of Computer Science G51CSA 24 Characteristics Of Low-Level Language One-to-one translation Hardware dependence Systems programming orientation Special-purpose Few abstractions

School of Computer Science G51CSA 25 Terminology Assembly language – Refers to a type of low-level language – Specific to given processor Assembler – Refers to software that translates assembly language into binary code – Analogous to compiler

School of Computer Science G51CSA 26 An Important Concept Because an assembly language is a low-level language that incorporates specific characteristics of a processor, such as the instruction set, operand addressing, and registers, many assembly languages exist.

School of Computer Science G51CSA 27 Assembly Languages Share same general structure Programmer who understands one assembly language can learn another quickly

School of Computer Science G51CSA 28 Assembly Statement Format General format is: label: opcode operand1, operand2,... Label is optional Opcode and operands are processor specific

School of Computer Science G51CSA 29 Comment Syntax Typically – Character reserved to start a comment – Comment extends to end of line Examples of comment characters – Pound sign (#) – Semicolon (;)

School of Computer Science G51CSA 30 LMC Assembly Program to find the positive (absolute) difference of two numbers IN#input 1 st number STO dat1#store first number in location dat11 IN#input 2 nd number STO dat2#store in location dat2 SUB dat1#A = A – (dat1) BP Label1#If A>=0, jump to Label1 LOAD dat1#load content from location dat1 SUB dat2#A – A – (dat2) Label1OUT#output content in A HALT#Halt the program dat1DAT 00#Location reserved for 1 st number dat2DAT00#Location reserve for 2 nd number An LMC Assembly Program

School of Computer Science G51CSA 31 Assembly Language For Conditional Execution if (condition) { body } next statement code to test condition and set condition code branch not true to label code to perform body label: code for next statement

School of Computer Science G51CSA 32 In Practice Because writing application programs in assembly language is difficult, assembly language is reserved for situations where a high-level language has insufficient functionality or results in poor performance.

School of Computer Science G51CSA 33 Assembler  Software component  Accepts assembly language program as input  Produces binary form of program as output  Uses two-pass algorithm

School of Computer Science G51CSA 34 Difference Between Assembler And Compiler Although both a compiler and an assembler translate a source program into equivalent binary code, a compiler has more freedom to choose which values are kept in registers, the instructions used to implement each statement, and the allocation of variables to memory. An assembler merely provides a one-to-one translation of each statement in the source program to the equivalent binary form.

School of Computer Science G51CSA 35 What An Assembler Provides  Statements are 1-1 with instructions  Assembler  – Computes relative location for each label  – Fills in branch offsets automatically  Consequence: can insert or delete statements without recomputing offsets manually

School of Computer Science G51CSA 36 Summary  Assembly language is low-level and incorporates details of a specific processor  Many assembly languages exist, one per processor  Each assembly language statement corresponds to one machine instruction  Same basic programming paradigm used in most assembly languages  Programmers must code assembly language equivalents of abstractions such as  – Conditional execution  – Definite and indefinite iteration  – Procedure call

School of Computer Science G51CSA 37 Summary  Assembler translates assembly language program into binary code  Assembler uses two-pass processing  – First pass assigns relative locations  – Second pass generates code

School of Computer Science G51CSA 38 PC ALU Ctrl Out In MAR 777 MDR 8 8 Acc. Beginning, Program & Data in Memory Reset counter, the Machine in a random state …. 234

School of Computer Science G51CSA 39 PC ALU Ctrl Out In MAR 901 MDR 0 0 Acc. Instruction Fetch …. IR 234

School of Computer Science G51CSA 40 PC ALU Ctrl Out In MAR 901 MDR 0 0 Acc. Instruction execution …. IR 234

School of Computer Science G51CSA 41 PC ALU Ctrl Out In MAR 310 MDR 0 1 Acc. Instruction Fetch …. IR 234

School of Computer Science G51CSA 42 PC ALU Ctrl Out In MAR 310 MDR 1 0 Acc. Instruction Execution …. IR 102

School of Computer Science G51CSA 43 PC ALU Ctrl Out In MAR 901 MDR 0 2 Acc. Instruction Fetch …. IR 102

School of Computer Science G51CSA 44 PC ALU Ctrl Out In MAR 901 MDR 0 2 Acc. Instruction Execution …. IR 102

School of Computer Science G51CSA 45 PC ALU Ctrl Out In MAR 311 MDR 0 3 Acc. Instruction Fetch …. IR 102

School of Computer Science G51CSA 46 PC ALU Ctrl Out In MAR 311 MDR 1 1 Acc. Instruction Execution …. IR 304

School of Computer Science G51CSA 47 PC ALU Ctrl Out In MAR 210 MDR 0 4 Acc. Instruction Fetch …. IR 304

School of Computer Science G51CSA 48 PC ALU Ctrl Out In MAR 102 MDR 1 0 Acc. Instruction Execution …. IR 304

School of Computer Science G51CSA 49 PC ALU Ctrl Out In MAR 808 MDR 0 5 Acc. Instruction Fetch …. IR 304

School of Computer Science G51CSA 50 PC ALU Ctrl Out In MAR 808 MDR 0 5 Acc. Instruction Execution …. IR 304

School of Computer Science G51CSA 51 PC ALU Ctrl Out In MAR 902 MDR 0 8 Acc. Instruction Fetch …. IR 304

School of Computer Science G51CSA 52 PC ALU Ctrl Out In MAR 902 MDR 0 8 Acc. Instruction Execution …. IR ….

School of Computer Science G51CSA 53 PC ALU Ctrl Out In MAR 000 MDR 0 9 Acc. Instruction Fetch …. IR ….

School of Computer Science G51CSA 54 PC ALU Ctrl Out In MAR 000 MDR 0 9 Acc. Instruction Execution …. IR ….

School of Computer Science G51CSA 55 If the first number is bigger than the first number ………., e.g, the input basket looks like this … …. not this

School of Computer Science G51CSA 56 PC ALU Ctrl Out In MAR 808 MDR 0 5 Acc. Instruction Fetch …. IR 102

School of Computer Science G51CSA 57 PC ALU Ctrl Out In MAR 808 MDR 0 5 Acc. Instruction Execution …. IR 102

School of Computer Science G51CSA 58 PC ALU Ctrl Out In MAR 510 MDR 0 6 Acc. Instruction Fetch …. IR 102

School of Computer Science G51CSA 59 PC 510 ALU Ctrl Out In MAR 304 MDR 1 0 Acc. Instruction Execution …. IR

School of Computer Science G51CSA 60 PC ALU Ctrl Out In MAR 211 MDR 0 7 Acc. Instruction Fetch …. IR 102

School of Computer Science G51CSA 61 PC ALU Ctrl Out In MAR 102 MDR 1 1 Acc. Instruction Execution …. IR 102

School of Computer Science G51CSA 62 PC ALU Ctrl Out In MAR 902 MDR 0 8 Acc. Instruction Fetch …. IR 102

School of Computer Science G51CSA 63 PC ALU Ctrl Out In MAR 902 MDR 0 8 Acc. Instruction Execution …. IR ….

School of Computer Science G51CSA 64 PC ALU Ctrl Out In MAR 000 MDR 0 9 Acc. Instruction Fetch …. IR ….

School of Computer Science G51CSA 65 PC ALU Ctrl Out In MAR 000 MDR 0 9 Acc. Instruction Execution …. IR ….