280 likes | 379 Views
Computer Organization Boolean Logic and the CPU. i206 Fall 2010 John Chuang. Some slides adapted from Marti Hearst, Brian Hayes, or Glenn Brookshear. Confidentiality Integrity Authentication …. Boolean Logic CPU Operation. Distributed Systems. C/S, P2P Caching. Security.
E N D
Computer OrganizationBoolean Logic and the CPU i206 Fall 2010 John Chuang Some slides adapted from Marti Hearst, Brian Hayes, or Glenn Brookshear
Confidentiality Integrity Authentication … Boolean LogicCPU Operation Distributed Systems C/S, P2P Caching Security Cryptography Network Standards & Protocols sockets Inter-process Communication Methodologies/ Tools Principles TCP/IP, RSA, … UML, CRC OperatingSystem Formal models Application Design Process I/O Finite automata regex Context switch Process vs. Thread Locks and deadlocks Algorithms Program Analysis Memory hierarchy ALUs, Registers, Program Counter, Instruction Register Memory Big-O Compiler/ Interpreter Assembly Instructions Data Structures Register, Cache Main Memory, Secondary Storage Searching, sorting, Encryption, etc. Machine Instructions CPU Op-code, operands Instruction set arch Data storage Stacks, queues, maps, trees, graphs, … Circuits Lossless v. lossy Info entropy & Huffman code Decimal, Hexadecimal, Binary Adders, decoders, Memory latches, ALUs, etc. Gates Data compression Number Systems Data AND, OR, NOT, XOR, NAND, NOR, etc. Boolean Logic Numbers, text, audio, video, image, … Truth table Venn Diagram DeMorgan’s Law Data Representation Binary Numbers Bits & Bytes John Chuang
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 Chuang
http://www.ischool.berkeley.edu/~chuang/images/mips_r10000.jpghttp://www.ischool.berkeley.edu/~chuang/images/mips_r10000.jpg Central Processing Unit (CPU) • CPU components: • Arithmetic/Logic Units (ALU) • Control Unit • Registers • Cache Memory John Chuang
Boolean Logic • Boolean algebra = logical calculation of truth values (true/false values) • Basic boolean operators • AND • OR • XOR (exclusive-OR) • NOT John Chuang
AND, OR, XOR, and NOT:Gates and Truth Tables John Chuang
+ + Boolean Notation U U John Chuang
Boolean Logic Relationships D • 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 C B A Venn Diagram John Chuang
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 Chuang
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 A = B B John Chuang
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 Chuang
Image and further reading at: http://www.lithoguru.com/scientist/lithobasics.html Inverter (NOT Gate) • Implements the simplest Boolean operator “NOT” using two transistors • Photolithography techniques used in fabrication of integrated circuit (IC) chips http://www.csee.umbc.edu/~plusquel/vlsi/slides/chap3_2.html John Chuang
NAND Gate • NAND gate implemented using 4 transistors John Chuang
Integrated Circuit (IC) Chips Contain Gates & Connectors John Chuang Images from http://www.ee.ed.ac.uk/~gaa/DigilabNotes/Digilab/Components/node7.html
Circuits for Binary AdditionHalf Adder John Chuang Images from http://www.play-hookey.com/digital/adder.html
Circuits for Binary AdditionFull Adder John Chuang Images from http://www.play-hookey.com/digital/adder.html
Circuits for Binary AdditionFull Adder, 4 bit output + carry • Can link up an arbitrary number of input bits • Can modify this easily to do subtraction John Chuang Images from http://www.play-hookey.com/digital/adder.html
Arithmetic Logic Unit (ALU)Add, Subtract, and Logic Operations multiplexer John Chuang http://www.seas.upenn.edu/~ee201/lab/LabALU/ALU.html
Confidentiality Integrity Authentication … CPU Operation Distributed Systems C/S, P2P Caching Security Cryptography Network Standards & Protocols sockets Inter-process Communication Methodologies/ Tools Principles TCP/IP, RSA, … UML, CRC OperatingSystem Formal models Application Design Process I/O Finite automata regex Context switch Process vs. Thread Locks and deadlocks Algorithms Program Analysis Memory hierarchy ALUs, Registers, Program Counter, Instruction Register Memory Big-O Compiler/ Interpreter Assembly Instructions Data Structures Register, Cache Main Memory, Secondary Storage Searching, sorting, Encryption, etc. Machine Instructions CPU Op-code, operands Instruction set arch Data storage Stacks, queues, maps, trees, graphs, … Circuits Lossless v. lossy Info entropy & Huffman code Decimal, Hexadecimal, Binary Adders, decoders, Memory latches, ALUs, etc. Gates Data compression Number Systems Data AND, OR, NOT, XOR, NAND, NOR, etc. Boolean Logic Numbers, text, audio, video, image, … Truth table Venn Diagram DeMorgan’s Law Data Representation Binary Numbers Bits & Bytes John Chuang
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 Chuang
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 Chuang
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 Chuang
Example Machine Architecture (Brookshear Appendix C) John Chuang
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 Chuang
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 Chuang
Example: Decoding the instruction 35A7 John Chuang
Example: Addition Operation John Chuang
Readings for Next Week • Read: Brookshear Chapter 5.1-5.5, 6.1 • Review: Brookshear Chapter 6.2-6.5 • Read: Brookshear Chapter 7.1-7.7 • Read: • http://en.wikipedia.org/wiki/Unified_Modeling_Language John Chuang