Error Correction continued and start on FPGA architecture

Similar documents
ENEE x Digital Logic Design. Lecture 3

The Data Link Layer. CS158a Chris Pollett Feb 26, 2007.

EECS150 - Digital Design Lecture 20 - Finite State Machines Revisited

EECS Components and Design Techniques for Digital Systems. Lec 07 PLAs and FSMs 9/ Big Idea: boolean functions <> gates.

CS/MA 109 Fall Wayne Snyder Computer Science Department Boston University

From last time to this time

Error Detection. Hamming Codes 1

12/2/2016. Error Detection May Not Be Enough. ECE 120: Introduction to Computing. Can We Use Redundancy to Correct Errors?

Errors. Chapter Extension of System Model

Model EXAM Question Bank

CSE 123: Computer Networks Alex C. Snoeren. HW 1 due Thursday!

Error-Correcting Codes

Signed umbers. Sign/Magnitude otation

Ch. 7 Error Detection and Correction

CS 43: Computer Networks. 16: Reliable Data Transfer October 8, 2018

Error correction in Flash memory 1. Error correction in Flash memory. Melissa Worley. California State University Stanislaus.

Lecture 6: Reliable Transmission. CSE 123: Computer Networks Alex Snoeren (guest lecture) Alex Sn

Topic Notes: Building Memory

ELG3175 Introduction to Communication Systems. Introduction to Error Control Coding

EC500. Design of Secure and Reliable Hardware. Lecture 1 & 2

Error Detection And Correction

1 Shapes of Power Functions

Chapter 10 Error Detection and Correction 10.1

Communication Fundamentals in Computer Networks

(Refer Slide Time: 2:20)

Written exam for IE1204/5 Digital Design Thursday 29/

CMSC 2833 Lecture 18. Parity Add a bit to make the number of ones (1s) transmitted odd.

Due dates are as mentioned above. Checkoff interviews for PS2 and PS3 will be held together and will happen between October 4 and 8.

CS101 Lecture 04: Binary Arithmetic

4.7 Approximate Integration

problem maximum score 1 10pts 2 8pts 3 10pts 4 12pts 5 7pts 6 7pts 7 7pts 8 17pts 9 22pts total 100pts

Discrete structures - CS Fall 2017 Questions for chapter 2.1 and 2.2

Computer Science 324 Computer Architecture Mount Holyoke College Fall Topic Notes: Building Memory

CHAPTER 1 Encoding Information

CHAPTER 7. Copyright Cengage Learning. All rights reserved.

Memory and Programmable Logic

Announcement. (CSC-3501) Lecture 3 (22 Jan 2008) Today, 1 st homework will be uploaded at our class website. Seung-Jong Park (Jay)

Basics of Information Worksheet

Overview. CSE372 Digital Systems Organization and Design Lab. Hardware CAD. Two Types of Chips

Advanced Computer Networks. Rab Nawaz Jadoon DCS. Assistant Professor COMSATS University, Lahore Pakistan. Department of Computer Science

Music. Numbers correspond to course weeks EULA ESE150 Spring click OK Based on slides DeHon 1. !

Lecture 6: Signed Numbers & Arithmetic Circuits. BCD (Binary Coded Decimal) Points Addressed in this Lecture

Outline. Parity-based ECC and Mechanism for Detecting and Correcting Soft Errors in On-Chip Communication. Outline

CSE 123: Computer Networks

Some announcements. Announcements for game due (via ) on Wednesday, March 15 Homework 6 due on March 15 Exam 3 on March 17

umber Systems bit nibble byte word binary decimal

1. Draw general diagram of computer showing different logical components (3)

2015 Paper E2.1: Digital Electronics II

Describe the two most important ways in which subspaces of F D arise. (These ways were given as the motivation for looking at subspaces.

The Gray Code. Script

LECTURE 4. Logic Design

EECS 140 Laboratory Exercise 5 Prime Number Recognition

ECE 341 Midterm Exam

R07. Code No: V0423. II B. Tech II Semester, Supplementary Examinations, April

1 Counting triangles and cliques

1. Prove that if you have tri-state buffers and inverters, you can build any combinational logic circuit. [4]

Link Layer: Error detection and correction

Lecture 1: VHDL Quick Start. Digital Systems Design. Fall 10, Dec 17 Lecture 1 1

Horn Formulae. CS124 Course Notes 8 Spring 2018

CHAPTER 9 MULTIPLEXERS, DECODERS, AND PROGRAMMABLE LOGIC DEVICES

FAULT TOLERANT SYSTEMS

CSE 380 Computer Operating Systems

EECS 150 Homework 7 Solutions Fall (a) 4.3 The functions for the 7 segment display decoder given in Section 4.3 are:

ECE 550D Fundamentals of Computer Systems and Engineering. Fall 2017

Memory, Latches, & Registers

CS61C : Machine Structures

Recitation Session 6

9.1 Linear Inequalities in Two Variables Date: 2. Decide whether to use a solid line or dotted line:

Chapter 10 Error Detection and Correction. Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.

Designing Information Devices and Systems II Fall 2017 Miki Lustig and Michel Maharbiz Discussion 1B

Programmable Logic Devices (PLDs)

Boolean Logic CS.352.F12

Memory, Latches, & Registers

EECS 270 Midterm Exam

Slide Set 1. for ENEL 339 Fall 2014 Lecture Section 02. Steve Norman, PhD, PEng

STEVEN R. BAGLEY THE ASSEMBLER

DATA STORAGE. Chapter One. Chapter Summary. Comments

WELCOME TO. ENGR 303 Introduction to Logic Design. Hello my name is Dr. Chuck Brown

4. Error correction and link control. Contents

PART III. Data Link Layer MGH T MGH C I 204

(ii) Simplify and implement the following SOP function using NOR gates:

CSE 143 Lecture 22. Huffman Tree

University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Science

DATA LINK LAYER UNIT 7.

University of Toronto Faculty of Applied Science and Engineering Edward S. Rogers Sr. Department of Electrical and Computer Engineering

UNCA CSCI 255 Exam 1 Spring February, This is a closed book and closed notes exam. It is to be turned in by 1:45 PM.

Chapter 3. The Data Link Layer. Wesam A. Hatamleh

Lecture 4: CRC & Reliable Transmission. Lecture 4 Overview. Checksum review. CRC toward a better EDC. Reliable Transmission

CS43: Computer Networks Reliable Data Transfer. Kevin Webb Swarthmore College October 5, 2017

Piecewise Defined Functions

University of Alexandria Faculty of Engineering Division of Communications & Electronics

Fault Tolerance & Reliability CDA Chapter 2 Additional Interesting Codes

Outline. Announcements. Homework 2. Boolean expressions 10/12/2007. Announcements Homework 2 questions. Boolean expression

(Refer Slide Time 3:31)

CS 640 Introduction to Computer Networks. Role of data link layer. Today s lecture. Lecture16

Code No: R Set No. 1

Lecture 11 Overview. Last Lecture. This Lecture. Next Lecture. Medium Access Control. Flow and error control Source: Sections , 23.

Outline. EECS Components and Design Techniques for Digital Systems. Lec 11 Putting it all together Where are we now?

Combinational Circuits

1KOd17RMoURxjn2 CSE 20 DISCRETE MATH Fall

Transcription:

EECS 270 Fall 2014, Lecture 21 Page 1 of 7 Error Correction continued and start on FPGA architecture Today we ll finish up error correction and start in on FPGA architecture. But first we ll have an announcement and a bit of review from last time. Announcement: And review: GA4 problem 2 had an error a needed device was left off the list. Yes, it could have been built out of gates (and some of you who already did it may have done so) but that wasn t the intent of the question. 1. Draw the state transition diagram which corresponds to the following logic equations. Assume the initial state is 001 and that our states are one-hot encoded. o NS2=S2*A+S1*!A o NS1=S2*!A+S0 o NS0=S1*A o X=S1+S2 Question: how could you tell if this weren t one-hot encoded? 2. What is the Hamming Distance of the following set: A={11111, 00011, 10100}? What does that say about the potential error correction and detection if we knew the sender only sent data from set A?

EECS 270 Fall 2014, Lecture 21 Page 2 of 7 Error correction reviewed Parity gave as a method of detecting a one-bit flip. This is useful because we can, at the least, not use bad data, and we could perhaps even ask for the data to be resent. But what if we want to fix the data without needing to ask for a resend? It turns out we can do that if the set of messages we are using has a Hamming distance of 3 or more. Why is that? Let s review the specific scheme with 4 data bits and 3 parity bits A, B, C, D are data bits while X, Y, Z as parity bits Let P(x 1..x n ) be the function that generates even ones parity over the inputs x 1 to x n. Let X=P(A,B,C) Let Y=P(A,B,D) Let Z=P(A,C,D) From here, we re going to assume only one bit will go bad in a given message? What happens if more than one bit gets flipped? Our message will be received incorrectly. But let s ignore that case for now. Which parity bits will incorrect if the following bit were flipped in transmission? A B C D X Y Z So what s going on? How many bits of error correction would we need if we want to send X data bits with 1 bit of correction? The equation: P=# of parity bits, D= # of data bits.

EECS 270 Fall 2014, Lecture 21 Page 3 of 7 Other thoughts 1. How can we use that set to detect 2-bit errors? 2. How do we build the encoder (takes in 4 data bits, generates 7 bit message)? 3. How do we build the decoder (takes in 7 bit message, generates corrected 4-bit data)? -- This is question 1 of GA4. Moving forward on error correction The most obvious question is: how do we make codes for more than 4 data bits? And the answer is fairly simple. If the goal is to make it so that we have 8 data bits, the equation says we need 5 parity bits. But how to generate them? The basic theme is that each data bit must be: Covered by at least 2 parity bits Be covered by a set of parity bits that is unique that is no other data bit can be covered by exactly the same parity bits. An easy (and fairly standard) way to do this is to use the integers in binary. Start counting at 1. Have each number that is a power of 2 (1, 2, 4, 8, etc.) be a parity bit. The other bits are data bits. Notice the powers of 2 have exactly one 1 in them. Of course, all numbers have a unique set of 1 s (not shared with any other number. And finally, when we receive the data, we check which parity bits are different than we d expect. We just OR their numbers together and see which bit was flipped. So if we find 0001 and 0100 were different than expected, we d say that 0101 was the bit that was flipped! 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Notice that if we just do 1 bit of data, we have standard triple redundancy. What is the set of legal codes? Notice if we want just 4 bits of data, we have the Hamming(7,4) scheme discussed above. 1 0 0 1 1 1 0 0 1 1 1 0 0 0 0_ 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 And a few last words The schemes we ve used here have been generating sets. What I mean is that the sender is only sending data that meets certain requirements the parity bits are generated in a fixed way based on the data bits. And so there are so sets of bits that the sender will send, and some it won t send. In the case of even one s parity over 2 data bits, the set of things that might be sent are {000, 110, 101, 011}. That set has a Hamming Distance of 2. The Hamming(7,4) scheme and the Hamming (15,11) scheme both generate sets that have a Hamming Distance of 3. Why can we only do detection of a 1 bit error with a set that has a Hamming Distance of 2? Why can we detect 2 bits of error with a Hamming Distance of 3? Why can we correct 1 bit of error? What Hamming distance would we need if we wanted to correct 2 bits of data?

EECS 270 Fall 2014, Lecture 21 Page 4 of 7 FPGA internals: Lookup tables. Let s start looking at the internals of a Field Programmable Gate Array (FPGA). Basic issue: we want programmable hardware but we can t just move transistors around they are fixed in location. So how do we make it so we can create a real hardware device (not immolated in software)? Answer: We use memory. Memory is one thing that we can easily change on the fly. Consider the following truth table of an XNOR gate where F=x XNOR y. We can implement it as a memory. We can even implement 2 logic functions if the memory is two-bits wide (i.e. word size is 2). Create a memory that implements the following (from the text) k p s w 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1

EECS 270 Fall 2014, Lecture 21 Page 5 of 7

EECS 270 Fall 2014, Lecture 21 Page 6 of 7

EECS 270 Fall 2014, Lecture 21 Page 7 of 7