CMSC 100 CMSC 100 From the Bottom Up: It's All Just Bits Professor Marie desJardins Thursday, September 10, 2009

Slides:



Advertisements
Similar presentations
Lecture # 7. Topics Storage Techniques of Bits Storage Techniques of Bits Mass Storage Mass Storage Disk System Performance Disk System Performance File.
Advertisements

Binary Representation Introduction to Computer Science and Programming I Chris Schmidt.
Data Storage – Part 1 CS 1 Introduction to Computers and Computer Technology Rick Graziani Fall 2013.
Chapter 4: The Building Blocks: Binary Numbers, Boolean Logic, and Gates Invitation to Computer Science, Java Version, Third Edition.
Chapter 4: The Building Blocks: Binary Numbers, Boolean Logic, and Gates Invitation to Computer Science, C++ Version, Third Edition.
ECEN 248: INTRODUCTION TO DIGITAL SYSTEMS DESIGN Lecture 3 Dr. Shi Dept. of Electrical and Computer Engineering.
Chapter 1: Data Storage.
Storage of Bits Computers represent information as patterns of bits
Chapter 1 Data Storage. 2 Chapter 1: Data Storage 1.1 Bits and Their Storage 1.2 Main Memory 1.3 Mass Storage 1.4 Representing Information as Bit Patterns.
CISC1400: Binary Numbers & Computer Fall 2011, Dr. Zhang 1.
Mantıksal Tasarım – BBM231 M. Önder Efe
Topic 4 Computer Mathematics and Logic
CMSC 104, Version 9/01 1 Machine Architecture and Number Systems Topics Major Computer Components Bits, Bytes, and Words The Decimal Number System The.
Bits and Data Storage. Basic Hardware Units of a Computer.
(2.1) Fundamentals  Terms for magnitudes – logarithms and logarithmic graphs  Digital representations – Binary numbers – Text – Analog information 
1 Machine Architecture and Number Systems Topics Major Computer Components Bits, Bytes, and Words The Decimal Number System The Binary Number System Converting.
1 CHAPTER 4: PART I ARITHMETIC FOR COMPUTERS. 2 The MIPS ALU We’ll be working with the MIPS instruction set architecture –similar to other architectures.
CSU0014 Assembly Languages Homepage: Textbook: Kip R. Irvine, Assembly Language for Intel-Based Computers,
Binary Numbers.
Summer 2014 Chapter 1: Basic Concepts. Irvine, Kip R. Assembly Language for Intel-Based Computers 6/e, Chapter Overview Welcome to Assembly Language.
Assembly Language for x86 Processors 7th Edition
1 Modified from  Modified from 1998 Morgan Kaufmann Publishers Chapter Three: Arithmetic for Computers citation and following credit line is included:
Logic and Digital System Design - CS 303
IT253: Computer Organization
Pengantar Teknologi Informasi dan Ilmu Komputer Information Technology and Data Representation PTIIK- UB.
Digital Electronics and Computer Interfacing Tim Mewes 3. Digital Electronics.
Machine Architecture CMSC 104, Section 4 Richard Chang 1.
1 DIGITAL ELECTRONICS. 2 OVERVIEW –electronic circuits capable of carrying out logical (boolean) and arithmetic operations on information stored as binary.
Logic Design Dr. Yosry A. Azzam. Binary systems Chapter 1.
First Program.  The type of all data used in a C program must be specified  A data type is a description of the data being represented ▪ That is, a.
Binary Numbers. Why Binary? Maximal distinction among values  minimal corruption from noise Imagine taking the same physical attribute of a circuit,
Chapter 1: Data Storage.
Representing Information Digitally (Number systems) Nell Dale & John Lewis (adapted by Erin Chambers, Michael Goldwasser, Andrew Harrington)
Chapter 1 Data Storage © 2007 Pearson Addison-Wesley. All rights reserved.
Computer Data Storage (Internal Representation) Fall 2011.
1 Lecture 6 BOOLEAN ALGEBRA and GATES Building a 32 bit processor PH 3: B.1-B.5.
Chapter 1 Data Storage © 2007 Pearson Addison-Wesley. All rights reserved.
Computer Science Binary. Binary Code Remember the power supply that is inside your computer and how it sends electricity to all of the components? That.
Lecture 10: Binary Representation Intro to IT COSC1078 Introduction to Information Technology Lecture 10 Binary Representation James Harland
CMSC 100 CMSC 100 From the Bottom Up: It's All Just Bits Professor Marie desJardins Tuesday, September 11, 2012 Tue 9/11/12 1CMSC Just Bits.
June 10, 2002© Howard Huang1 Number systems To get started, we’ll discuss one of the fundamental concepts underlying digital computer design:
Data Storage © 2007 Pearson Addison-Wesley. All rights reserved.
Computer Organization. The digital computer is a digital system that performs various computational tasks Digital computer use binary number system which.
Machine Architecture and Number Systems
CMSC Machine Architecture and Number Systems Topics Major Computer Components Bits, Bytes, and Words The Decimal Number System The Binary Number.
Chapter 1: Binary Systems
Data Storage © 2007 Pearson Addison-Wesley. All rights reserved.
Chapter 1 Data Storage © 2007 Pearson Addison-Wesley. All rights reserved.
Logic Design EE-2121 Manesh T. Digital Systems  Introduction  Binary Quantities and Variables  Logic Gates  Boolean Algebra  Combinational Logic.
Introduction to Computing Systems and Programming Digital Logic Structures.
Number Systems and Computer Arithmetic Winter 2014 COMP 1380 Discrete Structures I Computing Science Thompson Rivers University.
Digital Logic Design Basics Combinational Circuits Sequential Circuits Pu-Jen Cheng Adapted from the slides prepared by S. Dandamudi for the book, Fundamentals.
BINARY SYSTEMS ENGR. KASHIF SHAHZAD 1. BINARY NUMBERS 1/2 Internally, information in digital systems is of binary form groups of bits (i.e. binary numbers)
1 Binary Signals Logic gate circuits are designed to input and output only two types of signals: “high” (1) and “low” (0), as represented by a variable.
Lecture 3: More Java Basics Michael Hsu CSULA. Recall From Lecture Two  Write a basic program in Java  The process of writing, compiling, and running.
Chapter 1: Data Storage.
Computer Science: An Overview Eleventh Edition
3 – Boolean Logic and Logic Gates 4 – Binary Numbers
Computer Architecture & Operations I
Morgan Kaufmann Publishers
Fundamentals & Ethics of Information Systems IS 201
University of Gujrat Department of Computer Science
Chapter 1 Data Storage.
CMSC 100 From the Bottom Up: It's All Just Bits
CMSC 100 From the Bottom Up: It's All Just Bits
Presentation transcript:

CMSC 100 CMSC 100 From the Bottom Up: It's All Just Bits Professor Marie desJardins Thursday, September 10, 2009

Thu 9/10/09 CMSC Just Bits 2 Just Bits  Inside the computer, all information is stored as bits  A “bit” is a single unit of information  Each “bit” is set to either zero or one  How do we get complex systems like Google, Matlab, and our cell phone apps?

Thu 9/10/09 CMSC Just Bits 3 Storing Bits  How are these “bits” stored in the computer?  A bit is just an electrical signal or voltage (by convention: “low voltage” = 0; “high voltage” = 1)  A circuit called a “flip-flop” can store a single bit  A flip-flop can be “set” (using an electrical signal) to either 0 or 1  The flip-flop will hold that value until it receives a new signal telling it to change  Bits can be operated on using gates (which “compute” a function of two or more bits)  Later we’ll talk about how a flip-flop can be built of out gates

Thu 9/10/09 CMSC Just Bits 4 Manipulating Bits  What does a bit value “mean”?  0 = FALSE[off, no]  1 = TRUE[on, yes]  Just as in regular algebra, we can think of “variables” that represent a single bit  If X is a Boolean variable, then the value of X is either: 0[FALSE, off, no] or 1[TRUE, on, yes]  In algebra, we have operations that we can perform on numbers:  Unary operations: Negate, square, square-root, …  Binary operations: Add, subtract, multiply, divide, …  What are the operations you can imagine performing on bits?  Unary: ??  Binary: ??  Thought problem: How many unary operations are there? How many binary operations?

Thu 9/10/09 CMSC Just Bits 5 Remember Function Tables? XX2X …… XYX + Y ………

Thu 9/10/09 CMSC Just Bits 6  Negation (NOT):   Conjunction (AND):  Boolean Operations: “Truth Tables” X XX XY X  Y XY X  Y  Disjunction (OR):  X XX FT TF Or equivalently… XY X  Y FFF FTF TFF TTT XY X  Y FFF FTT TFT TTT

Thu 9/10/09 CMSC Just Bits 7 Logic Gates  In hardware, Boolean operations are implemented using circuits called logic gates XOR: Exclusive or (one input is TRUE, but not both)

Thu 9/10/09 CMSC Just Bits 8 Boolean Expressions  What would a truth table look like for the expression: (A  B)  (  B  C) ABC A  B BB  B  C(A  B)  (  B  C)

Thu 9/10/09 CMSC Just Bits 9 Boolean Expressions  What would a truth table look like for the expression: (A  B)  (  B  C) ABC A  B BB  B  C(A  B)  (  B  C)

Thu 9/10/09 CMSC Just Bits 10 Boolean Expressions  What would a truth table look like for the expression: (A  B)  (  B  C) ABC A  B BB  B  C(A  B)  (  B  C)

Thu 9/10/09 CMSC Just Bits 11 (Boolean) Algebraic Laws  DeMorgan’s Theorem  Analogous to the distributive law in regular algebra  (A  B) =  A   B  (A  B) =  A   B AB A  B  (A  B) AA BB  A   B FFFTTTT FTFTTFT TFFTFTT TTTFFFF

Thu 9/10/09 CMSC Just Bits 12 Logic Circuits  We can implement any logical expression just by assembling the associated logical gates in the right order  What would a logic circuit look like for the expression: (A  B)  (  B  C)

Thu 9/10/09 CMSC Just Bits 13 Implementing a Flip-Flop

Thu 9/10/09 CMSC Just Bits 14 Setting the Output to 1

Thu 9/10/09 CMSC Just Bits 15 Setting the Output to 1 (cont.)

Thu 9/10/09 CMSC Just Bits 16 Setting the Output to 1 (cont.)

Thu 9/10/09 CMSC Just Bits 17 What Else Can We Do? What happens if we put a zero on both inputs? …a one on the upper input and a zero on the lower input? …a zero on the upper input and a one on the lower input? …a one on both inputs?

Thu 9/10/09 CMSC Just Bits 18 Memory & Abstraction  There are other circuits that will also implement a flip-flop  These are sometimes called SRM (Static Random Access Memory)  …meaning that once the circuit is “set” to 1 or 0, it will stay that way until a new signal is used to re-set it  DRAM (Dynamic Random Access Memory):  Use a capacitor to store the charge (has to be refreshed periodically)  BUT…  Abstraction tells us that (for most purposes) it really doesn’t matter how we implement memory -- we just know that we can store (and retrieve) “a bit” at a time

Thu 9/10/09 CMSC Just Bits 19 Storing Information  One bit can’t tell you much… (just 2 possible values)  Usually we group 8 bits together into one “byte”  How many possible values (combinations) are there for one byte?  A byte can just be thought of as an 8-digit binary (base 2) number  Michael Littman's octupus counting video Michael Littman's octupus counting video  Low-order or least significant bit == ones place  Next bit would be “10s place” in base what about base 2?  High-order bit or most significant bite in a byte == ?? place

Thu 9/10/09 CMSC Just Bits 20 Orders of Magnitude  One 0/1 (“no/yes”) “bit” is the basic unit of memory  Eight (2 3 ) bits = one byte  1,024 (2 10 ) bytes = one kilobyte (1K) *  1,024K = 1,048,576 (2 20 bytes) = one megabyte (1M)  1,024K (2 30 bytes) = one gigabyte (1G)  1,024 (2 40 bytes) = one terabyte (1T)  1,024 (2 50 bytes) = one petabyte (1P)  bytes = one yottabyte (1Y?)

Thu 9/10/09 CMSC Just Bits 21 Scaling Up Memory  Computer chip:  Many (millions) of circuits  Etched onto a silicon wafer using VLSI (Very Large-Scale Integration) technology  Lots of flip-flops or DRAM devices == memory chip  Each byte has an address (and we use binary numbers to represent those addresses…)  An address is represented using a word, which is typically either; 2 bytes (16 bits) -- earliest PCs  Only 64K combinations  memory is limited to 64K (65,535) bytes! 4 bytes (32 bits) -- first Pentium chips  This brings us up to 4G (4,294,967,295) bytes of memory! 8 bytes (64 bits) -- modern Pentium chips  Up to 16.8 million terabytes (that’s 18,446,744,073,709,551,615 bytes!) 

Thu 9/10/09 CMSC Just Bits 22 Hexadecimal  It would be very inconvenient to write out a 64-bit address in binary:  Instead, we group each set of 4 bits together into a hexadecimal (base 16) digit:  The digits are 0, 1, 2, …, 9, A (10), B (11), …, E (14), F (15) D 6 F C D E 0 E 0  …which we write, by convention, with a “0x” preceding the number to indicate it’s heXadecimal:  0x29D6F89611CDE0E0

Thu 9/10/09 CMSC Just Bits 23 Other Memory Concepts (read the book!!)  Mass storage: hard disks, CDs, USB/flash drives…  Stores information without a constant supply of electricity  Larger than RAM   Slower than RAM  Often removable   Physically often more fragile than RAM  CDs, hard drives, etc. actually spin and have tracks divided into sectors, read by a read/write head  Seek time: Time to move head to the proper track  Latency: Time to wait for the disk to rotate into place  Access time: Seek + latency  Transfer rate: How many bits/second can be read/written once you’ve found the right spot  Flash memory: high capacity, no moving parts, but less reliable for long-term storage

Thu 9/10/09 CMSC Just Bits 24 Representing Information  Positive integers: Just use the binary number system  Negative integers, letters, images, … not so easy!  There are many different ways to represent information  Some are more efficient than others  … but once we’ve solved the representation problem, we can use that information without considering how it’s represented… via

Thu 9/10/09 CMSC Just Bits 25 Representing Characters  ASCII representation: one byte [actually 7 bits…] == one letter == an integer from  No specific reason for this assignment of letters to integers!  UNICODE is a popular 16-bit representation that supports accented characters like é [Chart borrowed from ha.ckers.org]

Thu 9/10/09 CMSC Just Bits 26 Representing Integers  Simplest idea (“ones’ complement”):  Use one bit for a “sign bit”: 1 means negative, 0 means positive  The other bits are “complemented” (flipped) in a negative number  So, for example, +23 (in a 16-bit word) is represented as: and -23 is represented as:  But there are two different ways to say “zero” (0000… and 1111…)  It’s tricky to do simple arithmetic operations like addition in the ones’ complement notation

Thu 9/10/09 CMSC Just Bits 27 Two’s Complement  Two’s complement is a clever representation that allows binary addition to be performed in an elegant way

Thu 9/10/09 CMSC Just Bits 28 Two’s Complement cont.

Thu 9/10/09 CMSC Just Bits 29 Floating Point Numbers  Non-integers are a problem…  Remember that any rational number can be represented as a fraction  …but we probably don’t want to do this, since (a) we’d need to use two words for each number (i.e., the numerator and the denominator) (b) fractions are hard to manipulate (add, subtract, etc.)  Irrational numbers can’t be written down at all, of course  Notice that any representation we choose will by definition have limited precision, since we can only represent 2 32 different values in a 32-bit word  1/3 isn’t exactly 1/3 (let’s try it on a calculator!)  In general, we also lose precision (introduce errors) when we operate on floating point numbers  You don’t need to know the details of how “floating point” numbers are represented

Thu 9/10/09 CMSC Just Bits 30 Summary: Main Ideas  It’s all just bits  Abstraction  Boolean algebra  TRUE/FALSE  Truth tables  Logic gates  Representing numbers  Hexadecimal representation  Ones’ (and two’s) complement  Floating point numbers (main issues)  ASCII representation (main idea)  Types and properties of RAM and mass storage

Thu 9/10/09 CMSC Just Bits 31 ACTIVITY (if time)  Design a one-bit adder (i.e., a logic circuit that adds two 1-bit numbers together)  X + Y  Z 2 Z 1  Z 2 is needed since the result may be two binary digits long  First let’s figure out the Boolean expression for each output…  Then we’ll draw the logic circuit