View
213
Download
0
Embed Size (px)
Citation preview
Computer Organization
Boolean Logic and the CPU
i206 Fall 2010
John Chuang
Some slides adapted from Marti Hearst, Brian Hayes, or Glenn Brookshear
John Chuang 2
Boolean LogicCPU Operation
Bits & BytesBinary Numbers
Number Systems
Gates
Boolean Logic
Circuits
CPU Machine Instructions
Assembly Instructions
Program Algorithms
Application
Memory
Data compression
Compiler/Interpreter
OperatingSystem
Data Structures
Analysis
I/O
Memory hierarchy
Design
Methodologies/Tools
Process
Truth tableVenn DiagramDeMorgan’s Law
Numbers, text,audio, video, image, …
Decimal, Hexadecimal, Binary
AND, OR, NOT, XOR, NAND, NOR,etc.
Register, CacheMain Memory,Secondary Storage
Context switchProcess vs. ThreadLocks and deadlocks
Op-code, operandsInstruction set arch
Lossless v. lossyInfo entropy & Huffman code Adders, decoders,
Memory latches, ALUs, etc.
DataRepresentation
Data
Data storage
Principles
ALUs, Registers,Program Counter, Instruction Register
Network
Distributed Systems Security
Cryptography
Standards & Protocols
Inter-processCommunication
Searching, sorting,Encryption, etc.
Stacks, queues,maps, trees, graphs, …
Big-O
UML, CRC
TCP/IP, RSA, …
ConfidentialityIntegrityAuthentication…
C/S, P2PCaching
sockets
Formal models
Finite automataregex
John Chuang 3
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 4
Central Processing Unit (CPU) CPU components:
- Arithmetic/Logic Units (ALU)- Control Unit- Registers- Cache Memory
http://www.ischool.berkeley.edu/~chuang/images/mips_r10000.jpg
John Chuang 5
Boolean Logic
Boolean algebra = logical calculation of truth values (true/false values)
Basic boolean operators- AND- OR- XOR (exclusive-OR)- NOT
John Chuang 6
AND, OR, XOR, and NOT:Gates and Truth Tables
John Chuang 7
Boolean Notation
U
Operator
Symbol Example
AND * or • orA*B = A•B = A B = AB
OR + or U A+B = A U B
NOT¬ or ¯ or -
¬(A+B) = (A+B) = -(A+B)
XOR A B = AB + AB+
U
+
John Chuang 8
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 Chuang 9
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 10
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)
AB =
A
B
John Chuang 11
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 12
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
Image and further reading at: http://www.lithoguru.com/scientist/lithobasics.html
John Chuang 13
NAND Gate
NAND gate implemented using 4 transistors
John Chuang 14
Integrated Circuit (IC) Chips Contain Gates & Connectors
Images from http://www.ee.ed.ac.uk/~gaa/DigilabNotes/Digilab/Components/node7.html
John Chuang 15
Circuits for Binary AdditionHalf Adder
Images from http://www.play-hookey.com/digital/adder.html
John Chuang 16
Circuits for Binary AdditionFull Adder
Images from http://www.play-hookey.com/digital/adder.html
John Chuang 17
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
Images from http://www.play-hookey.com/digital/adder.html
John Chuang 18
Arithmetic Logic Unit (ALU)Add, Subtract, and Logic Operations
http://www.seas.upenn.edu/~ee201/lab/LabALU/ALU.html
multiplexer
John Chuang 21
CPU Operation
Bits & BytesBinary Numbers
Number Systems
Gates
Boolean Logic
Circuits
CPU Machine Instructions
Assembly Instructions
Program Algorithms
Application
Memory
Data compression
Compiler/Interpreter
OperatingSystem
Data Structures
Analysis
I/O
Memory hierarchy
Design
Methodologies/Tools
Process
Truth tableVenn DiagramDeMorgan’s Law
Numbers, text,audio, video, image, …
Decimal, Hexadecimal, Binary
AND, OR, NOT, XOR, NAND, NOR,etc.
Register, CacheMain Memory,Secondary Storage
Context switchProcess vs. ThreadLocks and deadlocks
Op-code, operandsInstruction set arch
Lossless v. lossyInfo entropy & Huffman code Adders, decoders,
Memory latches, ALUs, etc.
DataRepresentation
Data
Data storage
Principles
ALUs, Registers,Program Counter, Instruction Register
Network
Distributed Systems Security
Cryptography
Standards & Protocols
Inter-processCommunication
Searching, sorting,Encryption, etc.
Stacks, queues,maps, trees, graphs, …
Big-O
UML, CRC
TCP/IP, RSA, …
ConfidentialityIntegrityAuthentication…
C/S, P2PCaching
sockets
Formal models
Finite automataregex
John Chuang 22
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 23
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 24
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 25
Example Machine Architecture (Brookshear Appendix C)
John Chuang 26
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 27
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 28
Example: Decoding the instruction 35A7
John Chuang 29
Example: Addition Operation
John Chuang 30
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