CENG 3420 Lecture 05: Arithmetic and Logic Unit


 Amber Murphy
 10 months ago
 Views:
Transcription
1 CENG 3420 Lecture 05: Arithmetic and Logic Unit Bei Yu CENG3420 L05.1 Spring 2017
2 Outline q 1. Overview q 2. Addition q 3. Multiplication & Division q 4. Shift q 5. Floating Point Number CENG3420 L05.2 Spring 2017
3 Outline q 1. Overview q 2. Addition q 3. Multiplication & Division q 4. Shift q 5. Floating Point Number CENG3420 L05.3 Spring 2017
4 Abstract Implementation View PC Address Instruction Memory Instruction Write Data Register Write Addr File Read Addr Read Addr Read Data Read Data ALU Address Data Memory Write Data Read Data CENG3420 L05.4 Spring 2017
5 Arithmetic q Where we've been Abstractions  Instruction Set Architecture (ISA)  Assembly and machine language q What's up ahead Implementing the ALU architecture zero ovf A ALU 32 result B 32 4 m (operation) CENG3420 L05.5 Spring 2017
6 Review: VHDL q Supports design, documentation, simulation & verification, and synthesis of hardware q Allows integrated design at behavioral & structural levels CENG3420 L05.6 Spring 2017
7 Review: VHDL q Basic structure Design entityarchitecture descriptions Timebased execution (discrete event simulation) model Design EntityArchitecture == Hardware Component Entity == External Characteristics Architecture (Body ) == Internal Behavior or Structure CENG3420 L05.7 Spring 2017
8 Review: EntityArchitecture Features q Entity defines externally visible characteristics Ports: channels of communication  signal names for inputs, outputs, clocks, control Generic parameters: define class of components  timing characteristics, size (fanin), fanout q Architecture defines the internal behavior or structure of the circuit Declaration of internal signals Description of behavior  collection of Concurrent Signal Assignment (CSA) statements (indicated by <=); can also model temporal behavior with the delay annotation  one or more processes containing CSAs and (sequential) variable assignment statements (indicated by :=) Description of structure  interconnections of components; underlying behavioral models of each component must be specified CENG3420 L05.8 Spring 2017
9 ALU VHDL Representation entity ALU is port(a, B: in std_logic_vector (31 downto 0); m: in std_logic_vector (3 downto 0); result: out std_logic_vector (31 downto 0); zero: out std_logic; ovf: out std_logic) end ALU; architecture process_behavior of ALU is... begin ALU: process(a, B, m) begin... result := A + B;... end process ALU; end process_behavior; CENG3420 L05.9 Spring 2017
10 Machine Number Representation q Bits are just bits (have no inherent meaning) conventions define the relationships between bits and numbers q Binary numbers (base 2)  integers > > > > > >... in decimal from 0 to 2 n 1 for n bits q Of course, it gets more complicated storage locations (e.g., register file words) are finite, so have to worry about overflow (i.e., when the number is too big to fit into 32 bits) have to be able to represent negative numbers, e.g., how do we specify 8 in addi $sp, $sp, 8 #$sp = $sp  8 in real systems have to provide for more than just integers, e.g., fractions and real numbers (and floating point) and alphanumeric (characters) CENG3420 L05.10 Spring 2017
11 MIPS Representations q 32bit signed numbers (2 s complement): two = 0 ten two = + 1 ten two = + 2 ten... maxint two = + 2,147,483,646 ten two = + 2,147,483,647 ten two = 2,147,483,648 ten two = 2,147,483,647 ten two = 2,147,483,646 ten... minint two = 3 ten two = 2 ten two = 1 ten q What if the bit string represented addresses? need operations that also deal with only positive (unsigned) integers CENG3420 L05.11 Spring 2017
12 Two's Complement Operations q Negating a two's complement number complement all the bits and then add a 1 remember: negate and invert are quite different! q Converting nbit numbers into numbers with more than n bits: MIPS 16bit immediate gets converted to 32 bits for arithmetic sign extend  copy the most significant bit (the sign bit) into the other bits > > sign extension versus zero extend (lb vs. lbu) CENG3420 L05.12 Spring 2017
13 Design the MIPS Arithmetic Logic Unit (ALU) q Must support the Arithmetic/Logic operations of the ISA add, addi, addiu, addu sub, subu mult, multu, div, divu sqrt and, andi, nor, or, ori, xor, xori beq, bne, slt, slti, sltiu, sltu A B zero ovf 1 ALU m (operation) result q With special handling for sign extend addi, addiu, slti, sltiu zero extend andi, ori, xori Overflow detected add, addi, sub CENG3420 L05.13 Spring 2017
14 MIPS Arithmetic and Logic Instructions Rtype: op Rs Rt Rd funct IType: op Rs Rt Immed 16 Type op funct ADDI xx ADDIU xx SLTI xx SLTIU xx ANDI xx ORI xx XORI xx LUI xx Type op funct ADD ADDU SUB SUBU AND OR XOR NOR Type op funct SLT SLTU CENG3420 L05.14 Spring 2017
15 Design Trick: Divide & Conquer q Break the problem into simpler problems, solve them and glue together the solution q Example: assume the immediates have been taken care of before the ALU A B now down to 10 operations can encode in 4 bits zero ovf 1 ALU m (operation) result 0 add 1 addu 2 sub 3 subu 4 and 5 or 6 xor 7 nor CENG3420 L05.15 Spring 2017 a b slt sltu
16 Outline q 1. Overview q 2. Addition q 3. Multiplication & Division q 4. Shift q 5. Floating Point Number CENG3420 L05.16 Spring 2017
17 Addition & Subtraction q Just like in grade school (carry/borrow 1s) q Two's complement operations are easy do subtraction by negating and then adding > > q Overflow (result too large for finite computer word) e.g., adding two nbit numbers does not yield an nbit number CENG3420 L05.17 Spring 2017
18 Building a 1bit Binary Adder carry_in A B carry_in carry_out S A B 1 bit Full Adder S carry_out S = A xor B xor carry_in carry_out = A&B A&carry_in B&carry_in (majority function) q How can we use it to build a 32bit adder? q How can we modify it easily to build an adder/subtractor? CENG3420 L05.18 Spring 2017
19 Building 32bit Adder c 0 =carry_in A 0 1bit B FA S 0 0 c 1 A 1 1bit B FA S 1 1 c 2 A 2 1bit FA S B 2 2 c 3... c 31 A 31 1bit B FA S c 32 =carry_out q Just connect the carryout of the least significant bit FA to the carryin of the next least significant bit and connect... q Ripple Carry Adder (RCA) l advantage: simple logic, so small (low cost) l disadvantage: slow and lots of glitching (so lots of energy consumption) CENG3420 L05.19 Spring 2017
20 Glitch q Glitch: invalid and unpredicted output that can be read by the next stage and result in a wrong action q Example: Draw the propagation delay CENG3420 L05.20 Spring 2017
21 Glitch in RCA c 0 =carry_in A 0 1bit B FA S 0 0 c 1 A 1 1bit B FA S 1 1 c 2 A 2 1bit FA S B 2 2 c 3 A B carry_in carry_out S c 31 A 31 1bit FA S B c 32 =carry_out CENG3420 L05.21 Spring 2017
22 But What about Performance? q Critical path of nbit ripplecarry adder is n*cp A0 B0 A1 B1 A2 B2 A3 B3 CarryIn0 1bit Result0 ALU CarryOut0 CarryIn1 1bit Result1 ALU CarryOut1 CarryIn2 1bit Result2 ALU CarryOut2 CarryIn3 1bit ALU Result3 CarryOut3 q Design trick throw hardware at it (Carry Lookahead) CENG3420 L05.22 Spring 2017
23 A 32bit Ripple Carry Adder/Subtractor q Remember 2 s complement is just l complement all the bits add/sub B 0 A 0 c 0 =carry_in 1bit FA S 0 c 1 control (0=add,1=sub) B 0 if control = 0!B 0 if control = 1 B 0 B 1 A 1 1bit FA S 1 c 2 l add a 1 in the least significant bit B 2 A 2 1bit FA S 2 c 3 A > 0111 B > B 31 A c 31 1bit FA S 31 c 32 =carry_out CENG3420 L05.23 Spring 2017
24 Minimal Implementation of a Full Adder q Gate library: inverters, 2input nands, orandinverters architecture concurrent_behavior of full_adder is begin signal t1, t2, t3, t4, t5: std_logic; t1 <= not A after 1 ns; t2 <= not cin after 1 ns; t4 <= not((a or cin) and B) after 2 ns; t3 <= not((t1 or t2) and (A or cin)) after 2 ns; t5 <= t3 nand B after 2 ns; S <= not((b or t3) and t5) after 2 ns; cout <= not((t1 or t2) and t4) after 2 ns; end concurrent_behavior; q [Optional] Can you create the equivalent schematic? Can you determine worst case delay (the worst case timing path through the circuit)? CENG3420 L05.24 Spring 2017
25 Tailoring the ALU to the MIPS ISA q Also need to support the logic operations (and,nor,or,xor) Bit wise operations (no carry operation involved) Need a logic gate for each function and a mux to choose the output q Also need to support the setonlessthan instruction (slt) Uses subtraction to determine if (a b) < 0 (implies a < b) q Also need to support test for equality (bne, beq) Again use subtraction: (a  b) = 0 implies a = b q Also need to add overflow detection hardware overflow detection enabled only for add, addi, sub q Immediates are sign extended outside the ALU with wiring (i.e., no logic needed) CENG3420 L05.25 Spring 2017
26 A Simple ALU Cell with Logic Op Support add/subt carry_in op A result B 1bit FA add/subt carry_out CENG3420 L05.26 Spring 2017
27 Modifying the ALU Cell for slt add/subt carry_in op A result B less 1bit FA 6 7 add/subt carry_out CENG3420 L05.27 Spring 2017
28 Modifying the ALU for slt A 0 q First perform a subtraction q Make the result 1 if the subtraction yields a negative result B 0 A 1 less + result 0 q Make the result 0 if the subtraction yields a positive result l tie the most significant sum bit (sign bit) to the low order less input B 1 0 A 31 less +... result 1 result 31 0 set B + 31 CENG3420 L05.28 Spring 2017 less
29 Overflow Detection q Overflow occurs when the result is too large to represent in the number of bits allocated adding two positives yields a negative or, adding two negatives gives a positive or, subtract a negative from a positive gives a negative or, subtract a positive from a negative gives a positive q On your own: Prove you can detect overflow by: Carry into MSB xor Carry out of MSB CENG3420 L05.29 Spring 2017
30 add/subt A 0 B 0 less + op Modifying the ALU for Overflow result 0 q Modify the most significant cell to determine overflow output setting A 1 result 1 set B 1 0 A 31 less + result 31 + B 31 0 less zero q Enable overflow bit setting for signed arithmetic (add, addi, sub) overflow CENG3420 L05.30 Spring 2017
31 Overflow Detection and Effects q On overflow, an exception (interrupt) occurs Control jumps to predefined address for exception Interrupted address (address of instruction causing the overflow) is saved for possible resumption q Don't always want to detect (interrupt on) overflow CENG3420 L05.31 Spring 2017
32 New MIPS Instructions Category Instr Op Code Example Meaning Arithmetic (R & I format) Data Transfer Cond. Branch (I & R format) add unsigned 0 and 21 addu $s1, $s2, $s3 $s1 = $s2 + $s3 sub unsigned 0 and 23 subu $s1, $s2, $s3 $s1 = $s2  $s3 add imm.unsigned ld byte unsigned 9 addiu $s1, $s2, 6 $s1 = $s lbu $s1, 20($s2) $s1 = Mem($s2+20) ld half unsigned 25 lhu $s1, 20($s2) $s1 = Mem($s2+20) set on less than unsigned set on less than imm unsigned 0 and 2b sltu $s1, $s2, $s3 if ($s2<$s3) $s1=1 else $s1=0 b sltiu $s1, $s2, 6 if ($s2<6) $s1=1 q Sign extend addi, addiu, slti q Zero extend andi, ori, xori q Overflow detected add, addi, sub else $s1=0 CENG3420 L05.32 Spring 2017
33 Outline q 1. Overview q 2. Addition q 3. Multiplication & Division q 4. Shift q 5. Floating Point Number CENG3420 L05.33 Spring 2017
34 Multiplication q More complicated than addition Can be accomplished via shifting and adding 0010 (multiplicand) x_1011 (multiplier) (partial product 0000 array) (product) q Double precision product produced q More time and more area to compute CENG3420 L05.34 Spring 2017
35 First Version of Multiplication Hardware CENG3420 L05.35 Spring 2017
36 Add and Right Shift Multiplier Hardware multiplicand 32bit ALU product multiplier shift right add Control CENG3420 L05.36 Spring 2017
37 Add and Right Shift Multiplier Hardware = 6 multiplicand 32bit ALU product multiplier shift right = 5 add add add add = 30 add Control CENG3420 L05.37 Spring 2017
38 MIPS Multiply Instruction q Multiply (mult and multu) produces a double precision product mult $s0, $s1 # hi lo = $s0 * $s x18 Loworder word of the product is left in processor register lo and the highorder word is left in register hi Instructions mfhi rd and mflo rd are provided to move the product to (user accessible) registers in the register file q Multiplies are usually done by fast, dedicated hardware and are much more complex (and slower) than adders CENG3420 L05.38 Spring 2017
39 Division q Division is just a bunch of quotient digit guesses and left shifts and subtracts divisor n n quotient dividend partial remainder array n remainder CENG3420 L05.39 Spring 2017
40 Example: Division q Dividing by 1000 CENG3420 L05.40 Spring 2017
41 MIPS Divide Instruction q Divide generates the reminder in hi and the quotient in lo div $s0, $s1 # lo = $s0 / $s1 # hi = $s0 mod $s1 op rs rt rd shamt funct Instructions mflo rd and mfhi rd are provided to move the quotient and reminder to (user accessible) registers in the register file q As with multiply, divide ignores overflow so software must determine if the quotient is too large. Software must also check the divisor to avoid division by 0. CENG3420 L05.41 Spring 2017
42 Outline q 1. Overview q 2. Addition q 3. Multiplication & Division q 4. Shift q 5. Floating Point Number CENG3420 L05.42 Spring 2017
43 Shift Operations q Shifts move all the bits in a word left or right sll $t2, $s0, 8 #$t2 = $s0 << 8 bits srl $t2, $s0, 8 #$t2 = $s0 >> 8 bits sra $t2, $s0, 8 #$t2 = $s0 >> 8 bits op rs rt rd shamt funct q Notice that a 5bit shamt field is enough to shift a 32bit value or 31 bit positions q Logical shifts fill with zeros, arithmetic left shifts fill with the sign bit q The shift operation is implemented by hardware separate from the ALU using a barrel shifter (which would takes lots of gates in discrete logic, but is pretty easy to implement in VLSI) CENG3420 L05.43 Spring 2017
44 A Simple Shifter Right nop Left A i B i A i1 B i1 BitSlice i... CENG3420 L05.44 Spring 2017
45 Parallel Programmable Shifters Control = Shift amount (Sh 4 Sh 3 Sh 2 Sh 1 Sh 0 ) Shift direction (left, right) Shift type (logical, arithmetic) CENG3420 L05.45 Spring 2017
46 Logarithmic Shifter Structure Sh 0!Sh 0 Sh 1!Sh 1 Sh 2!Sh 2 Sh 3!Sh 3 Sh 4!Sh 4 Sh 01 & right shifts of 0 or 1 bits shifts of 0 or 2 bits shifts datain i+1 i+2 of 0!Sh 0 or datain 4 i bits datain i1 i2 shifts of 0 or 8 bits shifts of 0 dataout or 16 i bits Sh 01 & left 0,1 shifts 0,1,2,3 shifts 0,1,2,3,4, 5,6,7 shifts 0,1,2 15 shifts 0,1,2 31 shifts CENG3420 L05.46 Spring 2017
47 Logarithmic Shifter Structure Sh1 Sh1 Sh2 Sh2 Sh4 Sh4 A 3 B 3 A 2 B 2 A 1 B 1 A 0 B 0 CENG3420 L05.47 Spring 2017
48 Outline q 1. Overview q 2. Addition q 3. Multiplication & Division q 4. Shift q 5. Floating Point Number CENG3420 L05.48 Spring 2017
49 Floating Point Number q Scientific notation: A normalized number of certain accuracy e.g is called the mantissa Scale factors to determine the position of the decimal point e.g indicates position of decimal point and is called the exponent (the base is implied) Sign bit CENG3420 L05.49 Spring 2017
50 Normalized Form q Floating Point Numbers can have multiple forms, e.g x 10 4 = = 2.32 x x 10 2 = = x x 102 q It is desirable for each number to have a unique representation => Normalized Form q We normalize Mantissa's in the Range [ 1.. R ) where R is the Base, e.g.: [ ) for BINARY [ ) for DECIMAL CENG3420 L05.50 Spring 2017
51 IEEE Standard 754 Single Precision (32bit, float in C/ C++/ Java) 32 bits S E M Sign of number : 0 signifies + 1 signifies 8bit signed exponent in excess127 representation 23bit mantissa fraction Value represented = 1. M x 2 E 127 (a) Single precision à 40 Value represented = x = 87 (b) Example of a singleprecision number CENG3420 L05.51 Spring 2017
52 IEEE Standard 754 Double Precision (64bit, double in C/ C++/ Java) 64 bits S E M Sign 11bit excess1023 exponent 52bit mantissa fraction E 1023 Value represented = 1. M x 2 (c) Double precision CENG3420 L05.52 Spring 2017
53 Example q What is the IEEE single precision number 40C in decimal? Binary: Sign: + Exponent: = +2 Mantissa: à x 2 +2 à Decimal Answer = CENG3420 L05.53 Spring 2017
54 Class Exercise q What is in IEEE single precision binary floating point format? 0.5 = (in binary) Exponent bit= ( 1) = Sign bit = 1 Mantissa = binary representation = CENG3420 L05.54 Spring 2017
55 Ref: IEEE Standard 754 Numbers l Normalized +/ 1.d d x 2 exp l Denormalized +/ 0.d d x 2 min_exp à to represent nearzero numbers e.g x for Single Precision Format # bits # significant bits macheps # exponent bits exponent range Single (~107 ) (~10 38 ) Double (~1016 ) (~ ) Double Extended >=80 >=64 <=264 (~1019 ) >= (~ ) (Double Extended is 80 bits on all Intel machines) macheps = Machine Epsilon = = 2 (# significand bits) mach CENG3420 L05.55 Spring 2017
56 Other Features q +,, x, /, sqrt, remainder, as well as conversion to and from integer are correctly rounded As if computed with infinite precision and then rounded Transcendental functions (that cannot be computed in a finite number of steps e.g., sine, cosine, logarithmic, p, e, etc. ) may not be correctly rounded q Exceptions and Status Flags Invalid Operation, Overflow, Division by zero, Underflow, Inexact q Floating point numbers can be treated as "integer bitpatterns" for comparisons If Exponent is all zeroes, it represents a denormalized, very small and near (or equal to) zero number If Exponent is all ones, it represents a very large number and is considered infinity (see next slide.) CENG3420 L05.56 Spring 2017
57 Special Values q Exponents of all 0's and all 1's have special meaning E=0, M=0 represents 0 (sign bit still used so there is +/ 0) E=0, M<>0 is a denormalized number ±0.M x (smaller than the smallest normalized number) E=All 1's, M=0 represents ±Infinity, depending on Sign E=All 1's, M<>0 represents NaN CENG3420 L05.57 Spring 2017
58 Other Features q q q q Dual Zeroes: +0 (0x ) and 0 (0x ) (they are treated as the same) Infinity is like the mathematical one Finite / Infinity à 0 Infinity x Infinity à Infinity Nonzero / 0 à Infinity Infinity ^ (Finite or Infinity) à Infinity NaN (NotaNumber) is produced whenever a limiting value cannot be determined: Infinity Infinity à NaN Infinity / Infinity à NaN 0 / 0 à NaN Infinity x 0 à NaN Many systems just store the result quietly as a NaN (all 1's in exponent) some systems will signal or raise an exception If x is a NaN, x!= x CENG3420 L05.58 Spring 2017
59 Inaccurate Floating Point Operations q E.g. Find 1 st root of a quadratic equation r = ( b + sqrt(b*b 4*a*c)) / (2*a) Sparc processor, Solaris, gcc 3.3 (ANSI C), Expected Answer double float q Problem is that if c is near zero, sqrt(b*b 4*a*c)» b q Rule of thumb: use the highest precision which does not give up too much speed CENG3420 L05.59 Spring 2017
60 Catastrophic Cancellation l (a b) is inaccurate when a» b l Decimal Examples Using 2 significant digits to compute mean of 5.1 and 5.2 using the formula (a+b) / 2: a + b = 10 (with 2 sig. digits, 10.3 can only be stored as 10) 10 / 2 = 5.0 (the computed mean is less than both numbers!!!) Using 8 significant digits to compute sum of three numbers: ( ( ) ) = ( ( ) ) = l Catastrophic cancellation occurs when CENG3420 L05.60 Spring 2017
Chapter 3 Arithmetic for Computers
Chapter 3 Arithmetic for Computers 1 Arithmetic Where we've been: Abstractions: Instruction Set Architecture Assembly Language and Machine Language What's up ahead: Implementing the Architecture operation
More informationComputer Architecture. Chapter 3: Arithmetic for Computers
182.092 Computer Architecture Chapter 3: Arithmetic for Computers Adapted from Computer Organization and Design, 4 th Edition, Patterson & Hennessy, 2008, Morgan Kaufmann Publishers and Mary Jane Irwin
More informationTailoring the 32Bit ALU to MIPS
Tailoring the 32Bit ALU to MIPS MIPS ALU extensions Overflow detection: Carry into MSB XOR Carry out of MSB Branch instructions Shift instructions Slt instruction Immediate instructions ALU performance
More informationOutline. EEL4713 Computer Architecture Multipliers and shifters. Deriving requirements of ALU. MIPS arithmetic instructions
Outline EEL4713 Computer Architecture Multipliers and shifters Multiplication and shift registers Chapter 3, section 3.4 Next lecture Division, floatingpoint 3.5 3.6 EEL4713 Ann GordonRoss.1 EEL4713
More informationNumber Systems and Computer Arithmetic
Number Systems and Computer Arithmetic Counting to four billion two fingers at a time What do all those bits mean now? bits (011011011100010...01) instruction Rformat Iformat... integer data number text
More informationAssembly Programming
Designing Computer Systems Assembly Programming 08:34:48 PM 23 August 2016 AP1 Scott & Linda Wills Designing Computer Systems Assembly Programming In the early days of computers, assembly programming
More informationECE232: Hardware Organization and Design. Computer Organization  Previously covered
ECE232: Hardware Organization and Design Part 6: MIPS Instructions II http://www.ecs.umass.edu/ece/ece232/ Adapted from Computer Organization and Design, Patterson & Hennessy, UCB Computer Organization
More informationInstruction Set Architecture of. MIPS Processor. MIPS Processor. MIPS Registers (continued) MIPS Registers
CSE 675.02: Introduction to Computer Architecture MIPS Processor Memory Instruction Set Architecture of MIPS Processor CPU Arithmetic Logic unit Registers $0 $31 Multiply divide Coprocessor 1 (FPU) Registers
More informationMIPS Instruction Reference
Page 1 of 9 MIPS Instruction Reference This is a description of the MIPS instruction set, their meanings, syntax, semantics, and bit encodings. The syntax given for each instruction refers to the assembly
More informationECE 2035 Programming HW/SW Systems Fall problems, 7 pages Exam Two 23 October 2013
Instructions: This is a closed book, closed note exam. Calculators are not permitted. If you have a question, raise your hand and I will come to you. Please work the exam in pencil and do not separate
More informationArithmetic for Computers. Hwansoo Han
Arithmetic for Computers Hwansoo Han Arithmetic for Computers Operations on integers Addition and subtraction Multiplication and division Dealing with overflow Floatingpoint real numbers Representation
More informationMIPS Reference Guide
MIPS Reference Guide Free at PushingButtons.net 2 Table of Contents I. Data Registers 3 II. Instruction Register Formats 4 III. MIPS Instruction Set 5 IV. MIPS Instruction Set (Extended) 6 V. SPIM Programming
More informationPart I: Translating & Starting a Program: Compiler, Linker, Assembler, Loader. Lecture 4
Part I: a Program: Compiler, Linker, Assembler, Loader Lecture 4 Program Translation Hierarchy C program Com piler Assem bly language program Assem bler Object: Machine language module Object: Library
More informationMIPS Instruction Format
MIPS Instruction Format MIPS uses a 32bit fixedlength instruction format. only three different instruction word formats: There are Register format Opcode Rs Rt Rd Function code 000000 sssss ttttt ddddd
More informationCO Computer Architecture and Programming Languages CAPL. Lecture 13 & 14
CO20320241 Computer Architecture and Programming Languages CAPL Lecture 13 & 14 Dr. Kinga Lipskoch Fall 2017 Frame Pointer (1) The stack is also used to store variables that are local to function, but
More informationCS61C : Machine Structures
inst.eecs.berkeley.edu/~cs61c CS61C : Machine Structures $2M 3D camera Lecture 8 MIPS Instruction Representation I Instructor: Miki Lustig 20140917 August 25: The final ISA showdown: Is ARM, x86, or
More informationMark Redekopp, All rights reserved. EE 352 Unit 3 MIPS ISA
EE 352 Unit 3 MIPS ISA Instruction Set Architecture (ISA) Defines the software interface of the processor and memory system Instruction set is the vocabulary the HW can understand and the SW is composed
More informationArithmetic. Chapter 3 Computer Organization and Design
Arithmetic Chapter 3 Computer Organization and Design Addition Addition is similar to decimals 0000 0111 + 0000 0101 = 0000 1100 Subtraction (negate) 0000 0111 + 1111 1011 = 0000 0010 Over(under)flow For
More informationCPS311  COMPUTER ORGANIZATION. A bit of history
CPS311  COMPUTER ORGANIZATION A Brief Introduction to the MIPS Architecture A bit of history The MIPS architecture grows out of an early 1980's research project at Stanford University. In 1984, MIPS computer
More informationECE Exam I February 19 th, :00 pm 4:25pm
ECE 3056 Exam I February 19 th, 2015 3:00 pm 4:25pm 1. The exam is closed, notes, closed text, and no calculators. 2. The Georgia Tech Honor Code governs this examination. 3. There are 4 questions and
More informationCOMP MIPS instructions 2 Feb. 8, f = g + h i;
Register names (save, temporary, zero) From what I have said up to now, you will have the impression that you are free to use any of the 32 registers ($0,..., $31) in any instruction. This is not so, however.
More informationEE 109 Unit 8 MIPS Instruction Set
1 EE 109 Unit 8 MIPS Instruction Set 2 Architecting a vocabulary for the HW INSTRUCTION SET OVERVIEW 3 Instruction Set Architecture (ISA) Defines the software interface of the processor and memory system
More informationChapter 3 Arithmetic for Computers (Part 2)
Department of Electr rical Eng ineering, Chapter 3 Arithmetic for Computers (Part 2) 王振傑 (ChenChieh Wang) ccwang@mail.ee.ncku.edu.tw ncku edu Depar rtment of Electr rical Eng ineering, FengChia Unive
More informationWeek 10: Assembly Programming
Week 10: Assembly Programming Arithmetic instructions Instruction Opcode/Function Syntax Operation add 100000 $d, $s, $t $d = $s + $t addu 100001 $d, $s, $t $d = $s + $t addi 001000 $t, $s, i $t = $s +
More informationCS 61C: Great Ideas in Computer Architecture MIPS Instruction Formats
CS 61C: Great Ideas in Computer Architecture MIPS Instruction Formats Instructors: Vladimir Stojanovic and Nicholas Weaver http://inst.eecs.berkeley.edu/~cs61c/sp16 1 Machine Interpretation Levels of Representation/Interpretation
More informationFast Arithmetic. Philipp Koehn. 19 October 2016
Fast Arithmetic Philipp Koehn 19 October 2016 1 arithmetic Addition (Immediate) 2 Load immediately one number (s0 = 2) li $s0, 2 Add 4 ($s1 = $s0 + 4 = 6) addi $s1, $s0, 4 Subtract 3 ($s2 = $s13 = 3)
More informationMIPS Assembly Programming
COMP 212 Computer Organization & Architecture COMP 212 Fall 2008 Lecture 8 Cache & Disk System Review MIPS Assembly Programming Comp 212 Computer Org & Arch 1 Z. Li, 2008 Comp 212 Computer Org & Arch 2
More informationHW2 solutions You did this for Lab sbn temp, temp,.+1 # temp = 0; sbn temp, b,.+1 # temp = b; sbn a, temp,.+1 # a = a (b) = a + b;
HW2 solutions 3.10 Pseuodinstructions What is accomplished Minimum sequence of Mips Move $t5, $t3 $t5=$t3 Add $t5, $t3, $0 Clear $t5 $t5=0 Xor $t5, $t5, $t5 Li $t5, small $t5=small Addi $t5, $0, small
More informationCS/COE 0447 Example Problems for Exam 2 Spring 2011
CS/COE 0447 Example Problems for Exam 2 Spring 2011 1) Show the steps to multiply the 4bit numbers 3 and 5 with the fast shiftadd multipler. Use the table below. List the multiplicand (M) and product
More informationEC 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 informationToday s Lecture. MIPS Assembly Language. Review: What Must be Specified? Review: A Program. Review: MIPS Instruction Formats
Today s Lecture Homework #2 Midterm I Feb 22 (in class closed book) MIPS Assembly Language Computer Science 14 Lecture 6 Outline Assembly Programming Reading Chapter 2, Appendix B 2 Review: A Program Review:
More informationHomework 3. Assigned on 02/15 Due time: midnight on 02/21 (1 WEEK only!) B.2 B.11 B.14 (hint: use multiplexors) CSCI 402: Computer Architectures
Homework 3 Assigned on 02/15 Due time: midnight on 02/21 (1 WEEK only!) B.2 B.11 B.14 (hint: use multiplexors) 1 CSCI 402: Computer Architectures Arithmetic for Computers (2) Fengguang Song Department
More informationConcocting an Instruction Set
Concocting an Instruction Set Nerd Chef at work. move flour,bowl add milk,bowl add egg,bowl move bowl,mixer rotate mixer... Read: Chapter 2.12.7 L03 Instruction Set 1 A GeneralPurpose Computer The von
More informationComputer Architecture Experiment
Computer Architecture Experiment Jiang Xiaohong College of Computer Science & Engineering Zhejiang University Architecture Lab_jxh 1 Topics 0 Basic Knowledge 1 Warm up 2 simple 5stage of pipeline CPU
More informationModule 2: Computer Arithmetic
Module 2: Computer Arithmetic 1 B O O K : C O M P U T E R O R G A N I Z A T I O N A N D D E S I G N, 3 E D, D A V I D L. P A T T E R S O N A N D J O H N L. H A N N E S S Y, M O R G A N K A U F M A N N
More informationData Representation Type of Data Representation Integers Bits Unsigned 2 s Comp Excess 7 Excess 8
Data Representation At its most basic level, all digital information must reduce to 0s and 1s, which can be discussed as binary, octal, or hex data. There s no practical limit on how it can be interpreted
More informationComputer Arithmetic Ch 8
Computer Arithmetic Ch 8 ALU Integer Representation Integer Arithmetic FloatingPoint Representation FloatingPoint Arithmetic 1 Arithmetic Logical Unit (ALU) (2) (aritmeettislooginen yksikkö) Does all
More informationComputer Arithmetic Ch 8
Computer Arithmetic Ch 8 ALU Integer Representation Integer Arithmetic FloatingPoint Representation FloatingPoint Arithmetic 1 Arithmetic Logical Unit (ALU) (2) Does all work in CPU (aritmeettislooginen
More informationReview from last time. CS152 Computer Architecture and Engineering Lecture 6. Verilog (finish) Multiply, Divide, Shift
Review from last time CS152 Computer Architecture and Engineering Lecture 6 Verilog (finish) Multiply, Divide, Shift February 11, 2004 John Kubiatowicz (www.cs.berkeley.edu/~kubitron) lecture slides: http://wwwinst.eecs.berkeley.edu/~cs152/
More informationICS 233 COMPUTER ARCHITECTURE. MIPS Processor Design Multicycle Implementation
ICS 233 COMPUTER ARCHITECTURE MIPS Processor Design Multicycle Implementation Lecture 23 1 Add immediate unsigned Subtract unsigned And And immediate Or Or immediate Nor Shift left logical Shift right
More informationCS2214 COMPUTER ARCHITECTURE & ORGANIZATION SPRING 2014
B CS2214 COMPUTER ARCHITECTURE & ORGANIZATION SPRING 2014 DUE : March 3, 2014 READ :  Related sections of Chapter 2  Related sections of Chapter 3  Related sections of Appendix A  Related sections
More informationA Processor. Kevin Walsh CS 3410, Spring 2010 Computer Science Cornell University. See: P&H Chapter , 4.13
A Processor Kevin Walsh CS 3410, Spring 2010 Computer Science Cornell University See: P&H Chapter 2.1620, 4.13 Let s build a MIPS CPU but using Harvard architecture Basic Computer System Registers ALU
More informationCS 61c: Great Ideas in Computer Architecture
MIPS Functions July 1, 2014 Review I RISC Design Principles Smaller is faster: 32 registers, fewer instructions Keep it simple: rigid syntax, fixed instruction length MIPS Registers: $s0$s7,$t0$t9, $0
More informationECE 154A Introduction to. Fall 2012
ECE 154A Introduction to Computer Architecture Fall 2012 Dmitri Strukov Lecture 4: Arithmetic and Data Transfer Instructions Agenda Review of last lecture Logic and shift instructions Load/store instructionsi
More informationENCM 369 Winter 2013: Reference Material for Midterm #2 page 1 of 5
ENCM 369 Winter 2013: Reference Material for Midterm #2 page 1 of 5 MIPS/SPIM General Purpose Registers Powers of Two 0 $zero all bits are zero 16 $s0 local variable 1 $at assembler temporary 17 $s1 local
More informationCS 4200/5200 Computer Architecture I
CS 4200/5200 Computer Architecture I MIPS Instruction Set Architecture Dr. Xiaobo Zhou Department of Computer Science CS420/520 Lec3.1 UC. Colorado Springs Adapted from UCB97 & UCB03 Review: Organizational
More informationEE108B Lecture 3. MIPS Assembly Language II
EE108B Lecture 3 MIPS Assembly Language II Christos Kozyrakis Stanford University http://eeclass.stanford.edu/ee108b 1 Announcements Urgent: sign up at EEclass and say if you are taking 3 or 4 units Homework
More informationECE 2035 A Programming Hw/Sw Systems Spring problems, 8 pages Final Exam 29 April 2015
Instructions: This is a closed book, closed note exam. Calculators are not permitted. If you have a question, raise your hand and I will come to you. Please work the exam in pencil and do not separate
More informationCOMP 303 Computer Architecture Lecture 6
COMP 303 Computer Architecture Lecture 6 MULTIPLY (unsigned) Paper and pencil example (unsigned): Multiplicand 1000 = 8 Multiplier x 1001 = 9 1000 0000 0000 1000 Product 01001000 = 72 n bits x n bits =
More informationFloatingPoint Data Representation and Manipulation 198:231 Introduction to Computer Organization Lecture 3
FloatingPoint Data Representation and Manipulation 198:231 Introduction to Computer Organization Instructor: Nicole Hynes nicole.hynes@rutgers.edu 1 Fixed Point Numbers Fixed point number: integer part
More informationSPIM Instruction Set
SPIM Instruction Set This document gives an overview of the more common instructions used in the SPIM simulator. Overview The SPIM simulator implements the full MIPS instruction set, as well as a large
More informationA GeneralPurpose Computer The von Neumann Model. Concocting an Instruction Set. Meaning of an Instruction. Anatomy of an Instruction
page 1 Concocting an Instruction Set Nerd Chef at work. move flour,bowl add milk,bowl add egg,bowl move bowl,mixer rotate mixer... A GeneralPurpose Computer The von Neumann Model Many architectural approaches
More informationInf2C  Computer Systems Lecture 2 Data Representation
Inf2C  Computer Systems Lecture 2 Data Representation Boris Grot School of Informatics University of Edinburgh Last lecture Moore s law Types of computer systems Computer components Computer system stack
More informationAnne Bracy CS 3410 Computer Science Cornell University. See P&H Chapter: , , Appendix B
Anne Bracy CS 3410 Computer Science Cornell University The slides are the product of many rounds of teaching CS 3410 by Professors Weatherspoon, Bala, Bracy, and Sirer. See P&H Chapter: 2.162.20, 4.14.4,
More informationArithmetic Logic Unit
Arithmetic Logic Unit A.R. Hurson Department of Computer Science Missouri University of Science & Technology A.R. Hurson 1 Arithmetic Logic Unit It is a functional bo designed to perform "basic" arithmetic,
More informationGrading: 3 pts each part. If answer is correct but uses more instructions, 1 pt off. Wrong answer 3pts off.
Department of Electrical and Computer Engineering University of Wisconsin Madison ECE 552 Introductions to Computer Architecture Homework #2 (Suggested Solution) 1. (10 points) MIPS and C program translations
More informationDigital System Design II
Digital System Design II 数字系统设计 II Peng Liu ( 刘鹏 ) Dept. of Info. Sci. & Elec. Engg. Zhejiang University liupeng@zju.edu.cn Lecture 2 MIPS Instruction Set Architecture 2 Textbook reading MIPS ISA 2.12.4
More informationMIPS%Assembly% E155%
MIPS%Assembly% E155% Outline MIPS Architecture ISA Instruction types Machine codes Procedure call Stack 2 The MIPS Register Set Name Register Number Usage $0 0 the constant value 0 $at 1 assembler temporary
More informationCPS 104 Computer Organization and Programming
CPS 104 Computer Organization and Programming Lecture 9: Integer Arithmetic. Robert Wagner CPS104 IMD.1 RW Fall 2000 Overview of Today s Lecture: Integer Multiplication and Division. Read Appendix B CPS104
More informationCharacter Is a byte quantity (00~FF or 0~255) ASCII (American Standard Code for Information Interchange) Page 91, Fig. 2.21
2.9 Communication with People: Byte Data & Constants Character Is a byte quantity (00~FF or 0~255) ASCII (American Standard Code for Information Interchange) Page 91, Fig. 2.21 32: space 33:! 34: 35: #...
More informationConcocting an Instruction Set
Concocting an Instruction Set Nerd Chef at work. move flour,bowl add milk,bowl add egg,bowl move bowl,mixer rotate mixer... Lab is posted. Do your prelab! Stay tuned for the first problem set. L04 Instruction
More informationECE 2035 A Programming Hw/Sw Systems Fall problems, 10 pages Final Exam 14 December 2016
Instructions: This is a closed book, closed note exam. Calculators are not permitted. If you have a question, raise your hand and I will come to you. Please work the exam in pencil and do not separate
More informationTwoLevel CLA for 4bit Adder. TwoLevel CLA for 4bit Adder. TwoLevel CLA for 16bit Adder. A Closer Look at CLA Delay
TwoLevel CLA for 4bit Adder Individual carry equations C 1 = g 0 +p 0, C 2 = g 1 +p 1 C 1,C 3 = g 2 +p 2 C 2, = g 3 +p 3 C 3 Fully expanded (infinite hardware) CLA equations C 1 = g 0 +p 0 C 2 = g 1
More informationCS 61c: Great Ideas in Computer Architecture
Introduction to Assembly Language June 30, 2014 Review C Memory Layout Local variables disappear because the stack changes Global variables don t disappear because they are in static data Dynamic memory
More informationEC2303COMPUTER ARCHITECTURE AND ORGANIZATION
EC2303COMPUTER ARCHITECTURE AND ORGANIZATION QUESTION BANK UNITII 1. What are the disadvantages in using a ripple carry adder? (NOV/DEC 2006) The main disadvantage using ripple carry adder is time delay.
More informationCAD4 The ALU Fall 2009 Assignment. Description
CAD4 The ALU Fall 2009 Assignment To design a 16bit ALU which will be used in the datapath of the microprocessor. This ALU must support two s complement arithmetic and the instructions in the baseline
More informationThe MIPS Processor Datapath
The MIPS Processor Datapath Module Outline MIPS datapath implementation Register File, Instruction memory, Data memory Instruction interpretation and execution. Combinational control Assignment: Datapath
More informationCS3350B Computer Architecture
CS3350B Computer Architecture Winter 2015 Lecture 4.1: MIPS ISA: Introduction Marc Moreno Maza www.csd.uwo.ca/courses/cs3350b [Adapted d from lectures on Computer Organization and Design, Patterson & Hennessy,
More informationMIPS (SPIM) Assembler Syntax
MIPS (SPIM) Assembler Syntax Comments begin with # Everything from # to the end of the line is ignored Identifiers are a sequence of alphanumeric characters, underbars (_), and dots () that do not begin
More informationMips Code Examples Peter Rounce
Mips Code Examples Peter Rounce P.Rounce@cs.ucl.ac.uk Some C Examples Assignment : int j = 10 ; // space must be allocated to variable j Possibility 1: j is stored in a register, i.e. register $2 then
More informationCS61C L10 MIPS Instruction Representation II, Floating Point I (6)
CS61C L1 MIPS Instruction Representation II, Floating Point I (1) inst.eecs.berkeley.edu/~cs61c CS61C : Machine Structures Lecture #1 Instruction Representation II, Floating Point I 2513 There is one
More informationCPU Design for Computer Integrated Experiment
CPU Design for Computer Integrated Experiment Shan Lu, Guangyao Li, Yijianan Wang CEIE, Tongji University, Shanghai, China Abstract  Considering the necessity and difficulty of designing a CPU for students,
More informationMIPS PROJECT INSTRUCTION SET and FORMAT
ECE 312: Semester Project MIPS PROJECT INSTRUCTION SET FORMAT This is a description of the required MIPS instruction set, their meanings, syntax, semantics, bit encodings. The syntax given for each instruction
More informationBasic Arithmetic (adding and subtracting)
Basic Arithmetic (adding and subtracting) Digital logic to show add/subtract Boolean algebra abstraction of physical, analog circuit behavior 1 0 CPU components ALU logic circuits logic gates transistors
More informationMIPS Instructions: 64bit Core Subset
MIPS Instructions: 64bit Core Subset Spring 2008 General notes: a. R s, R t, and R d specify 64bit general purpose registers b. F s, F t, and F d specify 64bit floating point registers c. C d specifies
More informationThe MIPS R2000 Instruction Set
The MIPS R2000 Instruction Set Arithmetic and Logical Instructions In all instructions below, Src2 can either be a register or an immediate value (a 16 bit integer). The immediate forms of the instructions
More informationECE410 Design Project Spring 2013 Design and Characterization of a CMOS 8bit pipelined Microprocessor Data Path
ECE410 Design Project Spring 2013 Design and Characterization of a CMOS 8bit pipelined Microprocessor Data Path Project Summary This project involves the schematic and layout design of an 8bit microprocessor
More informationCS61C : Machine Structures
inst.eecs.berkeley.edu/~cs61c CS61C : Machine Structures Lecture 13 Introduction to MIPS Instruction Representation I Lecturer PSOE Dan Garcia www.cs.berkeley.edu/~ddgarcia Anyone seen Terminator? Military
More informationNumeric Encodings Prof. James L. Frankel Harvard University
Numeric Encodings Prof. James L. Frankel Harvard University Version of 10:19 PM 12Sep2017 Copyright 2017, 2016 James L. Frankel. All rights reserved. Representation of Positive & Negative Integral and
More informationENGN1640: Design of Computing Systems Topic 03: Instruction Set Architecture Design
ENGN1640: Design of Computing Systems Topic 03: Instruction Set Architecture Design Professor Sherief Reda http://scale.engin.brown.edu School of Engineering Brown University Spring 2014 Sources: Computer
More information3.5 Floating Point: Overview
3.5 Floating Point: Overview Floating point (FP) numbers Scientific notation Decimal scientific notation Binary scientific notation IEEE 754 FP Standard Floating point representation inside a computer
More information361 datapath.1. Computer Architecture EECS 361 Lecture 8: Designing a Single Cycle Datapath
361 datapath.1 Computer Architecture EECS 361 Lecture 8: Designing a Single Cycle Datapath Outline of Today s Lecture Introduction Where are we with respect to the BIG picture? Questions and Administrative
More informationA Processor! Hakim Weatherspoon CS 3410, Spring 2010 Computer Science Cornell University. See: P&H Chapter , 4.13
A Processor! Hakim Weatherspoon CS 3410, Spring 2010 Computer Science Cornell University See: P&H Chapter 2.1620, 4.13 Announcements! HW2 available later today HW2 due in one week and a half Work alone
More informationFloating Point Arithmetic
Floating Point Arithmetic CS 365 FloatingPoint What can be represented in N bits? Unsigned 0 to 2 N 2s Complement 2 N1 to 2 N11 But, what about? very large numbers? 9,349,398,989,787,762,244,859,087,678
More informationThe ALU consists of combinational logic. Processes all data in the CPU. ALL von Neuman machines have an ALU loop.
CS 320 Ch 10 Computer Arithmetic The ALU consists of combinational logic. Processes all data in the CPU. ALL von Neuman machines have an ALU loop. Signed integers are typically represented in signmagnitude
More informationChapter 2 Data Representations
Computer Engineering Chapter 2 Data Representations Hiroaki Kobayashi 4/21/2008 4/21/2008 1 Agenda in Chapter 2 Translation between binary numbers and decimal numbers Data Representations for Integers
More informationFloating Point COE 308. Computer Architecture Prof. Muhamed Mudawar. Computer Engineering Department King Fahd University of Petroleum and Minerals
Floating Point COE 38 Computer Architecture Prof. Muhamed Mudawar Computer Engineering Department King Fahd University of Petroleum and Minerals Presentation Outline FloatingPoint Numbers IEEE 754 FloatingPoint
More informationLecture 5. Other Adder Issues
Lecture 5 Other Adder Issues Mark Horowitz Computer Systems Laboratory Stanford University horowitz@stanford.edu Copyright 24 by Mark Horowitz with information from Brucek Khailany 1 Overview Reading There
More informationCS61C : Machine Structures
inst.eecs.berkeley.edu/~cs61c CS61C : Machine Structures Lecture #10 Instruction Representation II, Floating Point I 20051003 Lecturer PSOE, new dad Dan Garcia www.cs.berkeley.edu/~ddgarcia #9 bears
More informationChapter 03: Computer Arithmetic. Lesson 09: Arithmetic using floating point numbers
Chapter 03: Computer Arithmetic Lesson 09: Arithmetic using floating point numbers Objective To understand arithmetic operations in case of floating point numbers 2 Multiplication of Floating Point Numbers
More informationComputer 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 informationToday s topics. MIPS operations and operands. MIPS arithmetic. CS/COE1541: Introduction to Computer Architecture. A Review of MIPS ISA.
Today s topics CS/COE1541: Introduction to Computer Architecture MIPS operations and operands MIPS registers Memory view Instruction encoding A Review of MIPS ISA Sangyeun Cho Arithmetic operations Logic
More informationISA: The Hardware Software Interface
ISA: The Hardware Software Interface Instruction Set Architecture (ISA) is where software meets hardware In embedded systems, this boundary is often flexible Understanding of ISA design is therefore important
More informationCS 61C: Great Ideas in Computer Architecture. MIPS CPU Datapath, Control Introduction
CS 61C: Great Ideas in Computer Architecture MIPS CPU Datapath, Control Introduction Instructor: Alan Christopher 7/28/214 Summer 214  Lecture #2 1 Review of Last Lecture Critical path constrains clock
More informationFloating Point Numbers. Lecture 9 CAP
Floating Point Numbers Lecture 9 CAP 3103 06162014 Review of Numbers Computers are made to deal with numbers What can we represent in N bits? 2 N things, and no more! They could be Unsigned integers:
More informationMicrocomputers. Outline. Number Systems and Digital Logic Review
Microcomputers Number Systems and Digital Logic Review Lecture 11 Outline Number systems and formats Common number systems Base Conversion Integer representation Signed integer representation Binary coded
More informationData Representations & Arithmetic Operations
Data Representations & Arithmetic Operations Hiroaki Kobayashi 7/13/2011 7/13/2011 Computer Science 1 Agenda Translation between binary numbers and decimal numbers Data Representations for Integers Negative
More informationChapter 2. Instruction Set Architecture (ISA)
Chapter 2 Instruction Set Architecture (ISA) MIPS arithmetic Design Principle: simplicity favors regularity. Why? Of course this complicates some things... C code: A = B + C + D; E = F  A; MIPS code:
More informationLogic, Words, and Integers
Computer Science 52 Logic, Words, and Integers 1 Words and Data The basic unit of information in a computer is the bit; it is simply a quantity that takes one of two values, 0 or 1. A sequence of k bits
More informationChapter 2. Instruction Set. RISC vs. CISC Instruction set. The University of Adelaide, School of Computer Science 18 September 2017
COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Interface RISCV Edition Chapter 2 Instructions: Language of the Computer These slides are based on the slides by the authors. The slides doesn t
More information