Computer Organization Boolean Logic and the CPU i206 Fall 2010 John Chuang Some slides adapted from Marti Hearst, Brian Hayes, or Glenn Brookshear
John Chuang2 Boolean Logic CPU Operation Bits & Bytes Binary Numbers Number Systems Gates Boolean Logic Circuits CPU Machine Instructions Assembly Instructions Program Algorithms Application Memory Data compression Compiler/ Interpreter Operating System Data Structures Analysis I/O Memory hierarchy Design Methodologies/ Tools Process Truth table Venn Diagram DeMorgan’s Law Numbers, text, audio, video, image, … Decimal, Hexadecimal, Binary AND, OR, NOT, XOR, NAND, NOR, etc. Register, Cache Main Memory, Secondary Storage Context switch Process vs. Thread Locks and deadlocks Op-code, operands Instruction set arch Lossless v. lossy Info entropy & Huffman code Adders, decoders, Memory latches, ALUs, etc. Data Representation Data storage Principles ALUs, Registers, Program Counter, Instruction Register Network Distributed Systems Security Cryptography Standards & Protocols Inter-process Communication Searching, sorting, Encryption, etc. Stacks, queues, maps, trees, graphs, … Big-O UML, CRC TCP/IP, RSA, … Confidentiality Integrity Authentication … C/S, P2P Caching sockets Formal models Finite automata regex
John Chuang3 Central Processing Unit (CPU) Software programs consist of arithmetic and logical operations The CPU or processor of a machine is responsible for executing these operations in hardware Modern CPUs are implemented using tens of millions of transistors (switches)
John Chuang4 Central Processing Unit (CPU) CPU components: -Arithmetic/Logic Units (ALU) -Control Unit -Registers -Cache Memory
John Chuang5 Boolean Logic Boolean algebra = logical calculation of truth values (true/false values) Basic boolean operators -AND -OR -XOR (exclusive-OR) -NOT
John Chuang6 AND, OR, XOR, and NOT: Gates and Truth Tables
John Chuang7 Boolean Notation U OperatorSymbolExample AND* or orA*B = AB = A B = AB OR+ or UA+B = A U B NOT¬ or ¯ or - ¬(A+B) = (A+B) = -(A+B) XORA B = AB + AB + U +
John Chuang8 Boolean Logic Relationships A BC D Venn Diagram C = A*B D = (A+B) X+X = 1; X*X = 0 X+Y=Y+X; XY = YX X(Y+Z) = XY + XZ DeMorgan’s Law: -(A*B) = A + B -(A+B) = A * B
John Chuang9 Exercise Let’s solve a problem using Boolean Logic -First express the problem using Boolean expressions and/or truth table -Then implement solution using Boolean gates
John Chuang10 NAND, NOR, XNOR NAND and NOR gates easier to implement in hardware than AND and OR gates Example: AND logic can be implemented with two NOTs and a NOR (DeMorgan’s Law) A B = A B
John Chuang11 Gates The Richest Man in the World Devices that produce the outputs of Boolean operations when given the operations’ input values -Often implemented as electronic circuits called transistors -Provide the building blocks from which computers are constructed -Gates are used to build up circuits that perform computations (e.g., addition, subtraction), or store values to be used later
John Chuang12 Inverter (NOT Gate) Implements the simplest Boolean operator “NOT” using two transistors Photolithography techniques used in fabrication of integrated circuit (IC) chips Image and further reading at:
John Chuang13 NAND Gate NAND gate implemented using 4 transistors
John Chuang14 Integrated Circuit (IC) Chips Contain Gates & Connectors Images from
John Chuang15 Circuits for Binary Addition Half Adder Images from
John Chuang16 Circuits for Binary Addition Full Adder Images from
John Chuang17 Circuits for Binary Addition Full Adder, 4 bit output + carry Can link up an arbitrary number of input bits Can modify this easily to do subtraction Images from
John Chuang18 Arithmetic Logic Unit (ALU) Add, Subtract, and Logic Operations multiplexer
John Chuang19 Decoder Implementation of a truth table Example: 2-bit decoder -Uses NOTs (invertors) to convert 2 inputs to turn on one (and only one) of 4 outputs Adapted from
John Chuang20 Example: Decoder for LED Clock Images from
John Chuang21 CPU Operation Bits & Bytes Binary Numbers Number Systems Gates Boolean Logic Circuits CPU Machine Instructions Assembly Instructions Program Algorithms Application Memory Data compression Compiler/ Interpreter Operating System Data Structures Analysis I/O Memory hierarchy Design Methodologies/ Tools Process Truth table Venn Diagram DeMorgan’s Law Numbers, text, audio, video, image, … Decimal, Hexadecimal, Binary AND, OR, NOT, XOR, NAND, NOR, etc. Register, Cache Main Memory, Secondary Storage Context switch Process vs. Thread Locks and deadlocks Op-code, operands Instruction set arch Lossless v. lossy Info entropy & Huffman code Adders, decoders, Memory latches, ALUs, etc. Data Representation Data storage Principles ALUs, Registers, Program Counter, Instruction Register Network Distributed Systems Security Cryptography Standards & Protocols Inter-process Communication Searching, sorting, Encryption, etc. Stacks, queues, maps, trees, graphs, … Big-O UML, CRC TCP/IP, RSA, … Confidentiality Integrity Authentication … C/S, P2P Caching sockets Formal models Finite automata regex
John Chuang22 Central Processing Unit (CPU) Software programs consist of arithmetic and logical operations The CPU or processor of a machine is responsible for executing these operations in hardware CPU components -Arithmetic/Logic Units (ALU) -Control Unit -Registers -Cache Memory
John Chuang23 Program execution Controlled by two special-purpose registers -Program counter: address of next instruction -Instruction register: current instruction Steps performed by control unit -Fetch -Decode -Execute
John Chuang24 Machine language Machine instruction: an instruction coded as a bit pattern directly recognizable by the CPU Machine language: the set of all instructions recognized by a machine -Also known as instruction set architecture (ISA) -E.g., Intel x86, IA-64, MIPS, PowerPC, … -Brookshear Appendix C provides an example
John Chuang25 Example Machine Architecture (Brookshear Appendix C)
John Chuang26 Machine instruction types Data Transfer: copy data between CPU and main memory Arithmetic/Logic: use existing data values to compute a new data value Control: direct the execution of the program
John Chuang27 Parts of a machine instruction Op-code: specifies which machine operation to execute -One per instruction Operand: more detailed information about this operation -Number of operands varies depending on op-code Example:
John Chuang28 Example: Decoding the instruction 35A7
John Chuang29 Example: Addition Operation
John Chuang30 Readings for Next Week Read: Brookshear Chapter , 6.1 Review: Brookshear Chapter Read: Brookshear Chapter Read: -