4-Bit Register. Memory 1. Built using D flip-flops: Clock input controls when input is "written" to the individual flip-flops.

Similar documents
Memory Basics. SRAM/DRAM Basics

Computer Systems Structure Main Memory Organization

Memory Systems. Static Random Access Memory (SRAM) Cell

1. Memory technology & Hierarchy

Homework # 2. Solutions. 4.1 What are the differences among sequential access, direct access, and random access?

A N. O N Output/Input-output connection

Computer Architecture

ERROR DETECTION AND CORRECTION

RAM & ROM Based Digital Design. ECE 152A Winter 2012

Technical Note. Micron NAND Flash Controller via Xilinx Spartan -3 FPGA. Overview. TN-29-06: NAND Flash Controller on Spartan-3 Overview

Memory. The memory types currently in common usage are:

Module 2. Embedded Processors and Memory. Version 2 EE IIT, Kharagpur 1

Chapter 5 :: Memory and Logic Arrays

Memory unit. 2 k words. n bits per word

GETTING STARTED WITH PROGRAMMABLE LOGIC DEVICES, THE 16V8 AND 20V8

With respect to the way of data access we can classify memories as:

Switch Fabric Implementation Using Shared Memory

Computer Performance. Topic 3. Contents. Prerequisite knowledge Before studying this topic you should be able to:

User s Manual HOW TO USE DDR SDRAM

Computer Architecture

Chapter 7 Memory and Programmable Logic

Logical Operations. Control Unit. Contents. Arithmetic Operations. Objectives. The Central Processing Unit: Arithmetic / Logic Unit.

We r e going to play Final (exam) Jeopardy! "Answers:" "Questions:" - 1 -

To design digital counter circuits using JK-Flip-Flop. To implement counter using 74LS193 IC.

CSE2102 Digital Design II - Topics CSE Digital Design II

Modeling Sequential Elements with Verilog. Prof. Chien-Nan Liu TEL: ext: Sequential Circuit

CPU Organisation and Operation

Slide Set 8. for ENCM 369 Winter 2015 Lecture Section 01. Steve Norman, PhD, PEng

Digital Systems Based on Principles and Applications of Electrical Engineering/Rizzoni (McGraw Hill

CS 61C: Great Ideas in Computer Architecture. Dependability: Parity, RAID, ECC

A New Paradigm for Synchronous State Machine Design in Verilog

COMPUTER HARDWARE. Input- Output and Communication Memory Systems

(Refer Slide Time: 00:01:16 min)

ECE410 Design Project Spring 2008 Design and Characterization of a CMOS 8-bit Microprocessor Data Path

MICROPROCESSOR AND MICROCOMPUTER BASICS

EE 42/100 Lecture 24: Latches and Flip Flops. Rev B 4/21/2010 (2:04 PM) Prof. Ali M. Niknejad

Disks and RAID. Profs. Bracy and Van Renesse. based on slides by Prof. Sirer

Asynchronous counters, except for the first block, work independently from a system clock.

Digital Logic Design. Basics Combinational Circuits Sequential Circuits. Pu-Jen Cheng

Read this before starting!

MICROPROCESSOR. Exclusive for IACE Students iacehyd.blogspot.in Ph: /422 Page 1

CHAPTER 11: Flip Flops

Lecture-3 MEMORY: Development of Memory:

Memory Testing. Memory testing.1

The Big Picture. Cache Memory CSE Memory Hierarchy (1/3) Disk

Experiment # 9. Clock generator circuits & Counters. Eng. Waleed Y. Mousa

PowerPC Microprocessor Clock Modes

ETEC 2301 Programmable Logic Devices. Chapter 10 Counters. Shawnee State University Department of Industrial and Engineering Technologies

OpenSPARC T1 Processor

Lecture 8: Synchronous Digital Systems

Sequential Circuit Design

DDR4 Memory Technology on HP Z Workstations

Computers. Hardware. The Central Processing Unit (CPU) CMPT 125: Lecture 1: Understanding the Computer

NAND Flash FAQ. Eureka Technology. apn5_87. NAND Flash FAQ

Chapter 2 Logic Gates and Introduction to Computer Architecture

University of Texas at Dallas. Department of Electrical Engineering. EEDG Application Specific Integrated Circuit Design

So far we have investigated combinational logic for which the output of the logic devices/circuits depends only on the present state of the inputs.

IE1204 Digital Design F12: Asynchronous Sequential Circuits (Part 1)

TECHNOLOGY BRIEF. Compaq RAID on a Chip Technology EXECUTIVE SUMMARY CONTENTS

Lecture N -1- PHYS Microcontrollers

Finite State Machine. RTL Hardware Design by P. Chu. Chapter 10 1

Master/Slave Flip Flops

Semiconductor Memories

COMBINATIONAL and SEQUENTIAL LOGIC CIRCUITS Hardware implementation and software design

Lecture 5: Gate Logic Logic Optimization

Byte Ordering of Multibyte Data Items

The Classical Architecture. Storage 1 / 36

NTE2053 Integrated Circuit 8 Bit MPU Compatible A/D Converter

Microprocessor & Assembly Language

Counters and Decoders

ADVANCED PROCESSOR ARCHITECTURES AND MEMORY ORGANISATION Lesson-17: Memory organisation, and types of memory

Memory ICS 233. Computer Architecture and Assembly Language Prof. Muhamed Mudawar

Memory Elements. Combinational logic cannot remember

Computer Organization & Architecture Lecture #19

Contents. Overview Memory Compilers Selection Guide

Module 3: Floyd, Digital Fundamental

ASYNCHRONOUS COUNTERS

DDR subsystem: Enhancing System Reliability and Yield

Lesson 12 Sequential Circuits: Flip-Flops

Memory Hierarchy. Arquitectura de Computadoras. Centro de Investigación n y de Estudios Avanzados del IPN. adiaz@cinvestav.mx. MemoryHierarchy- 1

Random Access Memory (RAM) Types of RAM. RAM Random Access Memory Jamie Tees SDRAM. Micro-DIMM SO-DIMM

Random-Access Memory (RAM) The Memory Hierarchy. SRAM vs DRAM Summary. Conventional DRAM Organization. Page 1

Chapter 11 I/O Management and Disk Scheduling

Cascaded Counters. Page 1 BYU

DIGITAL TECHNICS II. Dr. Bálint Pődör. Óbuda University, Microelectronics and Technology Institute 5. LECTURE: REGISTERS AND RELATED

COMPUTER ARCHITECTURE. Input/Output

Chapter 6: From Digital-to-Analog and Back Again

UMBC. ISA is the oldest of all these and today s computers still have a ISA bus interface. in form of an ISA slot (connection) on the main board.

HT1632C 32 8 &24 16 LED Driver

SOLVING HIGH-SPEED MEMORY INTERFACE CHALLENGES WITH LOW-COST FPGAS

4 Character 5x7 LED Matrix Display

Chapter 6. Inside the System Unit. What You Will Learn... Computers Are Your Future. What You Will Learn... Describing Hardware Performance

CS311 Lecture: Sequential Circuits

Network Traffic Monitoring an architecture using associative processing.

Semiconductor Device Technology for Implementing System Solutions: Memory Modules

Flip-Flops, Registers, Counters, and a Simple Processor

BROADBAND AND HIGH SPEED NETWORKS

Counters. Present State Next State A B A B

Sequential Logic Design Principles.Latches and Flip-Flops

Transcription:

4-Bit Register Memory 1 Built using D flip-flops: Clock input controls when input is "written" to the individual flip-flops. However, the design above isn t quite what we want QTP What s wrong with this? How can we fix it?

Register File Memory 2 A register file is a collection of k registers (a sequential logic block) that can be read and written by specifying a register number that determines which register is to be accessed. The interface should minimally include: - an n-bit input to import data for writing (a write port) - an n-bit output to export read data (a read port) - a log(k)-bit input to specify the register number - control bit(s) to enable/disable read/write operations - a control bit to clear all the registers, asynchronously - a clock signal Some designs may provide multiple read or write ports, and additional features. For MIPS, it is convenient to have two read ports and one write port. Why?

A File of 4-Bit Registers Memory 3 Aggregating a collection of 4-bit registers, and providing the appropriate register selection and data input/output interface: 4-bit registers decoder to select write register multiplexor to select read register

Random Access Memory Memory 4 Random access memory (RAM) is an array of memory elements. Static RAM (SRAM): - bits are stored as flip-flops (typically 4 or more transistors per bit) - hence static in the sense that the value is preserved as long as power is supplied - somewhat complex circuit per bit, so not terribly dense on chip - typically used for cache memory Dynamic RAM (DRAM): - bits are stored as a charge in a capacitor - hence dynamic since periodic refreshes are needed to maintain stored values - single transistor needed per data bit, so very dense in comparison to SRAM - much cheaper per bit than SRAM - much slower access time than SRAM - typically used for main memory

Basic MIPS Implementation Memory 5 Here's an updated view of the basic architecture needed to implement a subset of the MIPS environment: RAM modules register file

SRAMs Memory 6 Configuration specified by the # of addressable locations (# of rows or height) and the # of bits stored in each location (width). Consider a 4M x 8 SRAM: - 4M locations, each storing 8 bits - 22 address bits to specify the location for a read/write - 8-bit data output line and 8-bit data input line Enable/disable chip access 21-bit address input 16-bit output path Enable/disable read and write access 16-bit wide input path

SRAM Performance Memory 7 read access time - the delay from the time the Output enable is true and the address lines are valid until the time the data is on the output lines. - typical read access times might be from 2-4 ns to 8-20 ns, or considerably greater for low-power versions developed for consumer products. write access time - set-up and hold-time requirements for both the address and data lines - write-enable signal is actually a pulse of some minimum width, rather than a clock edge - write access time includes all of these

SRAM Implementation Memory 8 Although the SRAM is conceptually similar to a register file: - impractical to use same design due to the unreasonable size of the multiplexors that would be needed - design is based on a three-state buffer output enable multiplexor build from 3- state buffer elements data signal If output enable is 1, then the buffer's output equals its input data signal. If output enable is 0, then the buffer's output is in a high-impedance state that effectively disables its effect on the bit line to which it is connected.

SRAM Implementation Memory 9 At right is a conceptual representation of a 4x2 SRAM unit built from D latches that incorporate 3-state buffers. For simplicity, the chip select and output enable signals have been omitted. Although this eliminates the need for a multiplexor, the decoder that IS required will become excessively large if we scale this up to a useful capacity.

SRAM Implementation Memory 10 A 4Mx8 SRAM as an array of 4Kx1024 arrays: decoder generates addresses for the 4096 rows of each of the 8 subarrays each subarray outputs a row of 1024 bits bank of 10-bit multiplexors select one bit from each of the subarrays This requires neither a huge multiplexor nor a huge decoder. A practical version might use a larger number of smaller subarrays. How would that affect the dimensions of the decoder and multiplexors that would be needed?

DRAM Implementation Memory 11 Each bit is stored as a charge on a capacitor. Periodic refreshes are necessary and typically require 1-2% of the cycles of a DRAM module. Access uses a 2-level decoding scheme; a row access selects and transfers a row of values to a row of latches; a column access then selects the desired data from the latches. Refreshing uses the column latches. DRAM access times typically range from 45-65 ns, about 5-10 times slower than typical SRAM.

Error Detection Memory 12 Error detecting codes enable the detection of errors in data, but do not determine the precise location of the error. - store a few extra state bits per data word to indicate a necessary condition for the data to be correct - if data state does not conform to the state bits, then something is wrong - e.g., represent the correct parity (# of 1 s) of the data word - 1-bit parity codes fail if 2 bits are wrong 1011 1101 0001 0000 1101 0000 1111 0010 1 odd parity: data should have an odd number of 1's A 1-bit parity code is a distance-2 code, in the sense that at least 2 bits must be changed (among the data and parity bits) produce an incorrect but legal pattern. In other words, any two legal patterns are separated by a distance of at least 2.

Error Correction Memory 13 Error correcting codes provide sufficient information to locate and correct some data errors. - must use more bits for state representation, e.g. 6 bits for every 32-bit data word - may indicate the existence of errors if up to k bits are wrong - may indicate how to correct the error if up to l bits are wrong, where l < k - c code bits and n data bits 2 c >= n + c + 1 We must have at least a distance-3 code to accomplish this. Given such a code, if we have a data word + error code sequence X that has 1 incorrect bit, then there will be a unique valid data word + error code sequence Y that is a distance of 1 from X, and we can correct the error by replacing X with Y.

Error Correction Memory 14 A distance-3 code is also knows as a single-error correcting, double-error detecting or SECDED code. If X has 2 incorrect bits, then we will replace X with an incorrect (but valid) sequence. We cannot both detect 2-bit errors and correct 1-bit errors with a distance-3 code. But, hopefully flipped bits will be a rare occurrence and so sequences with two or more flipped bits will have a negligible probability.

Hamming Codes Memory 15 Richard Hamming described a method for generating minimum-length error-correcting codes. Here is the (7,4) Hamming code for 4-bit words: Say we had the data word 0100 and check bits 011. The two valid data words that match that check bit pattern would be 0001 and 0110. The latter would correspond to a single-bit error in the data word, so we would choose that as the correction. Note that if the error was in the check bits, we'd have to assume the data word was correct (or else we have an uncorrectable 2-bit error or worse). In that case, the check bits would have to be 1 bit distance from 110, which they are not. Data bits Check bits 0000 000 0001 011 0010 101 0011 110 0100 110 0101 101 0110 011 0111 000 1000 111 1001 100 1010 010 1011 001 1100 001 1101 010 1110 100 1111 111

Hamming Code Details Memory 16 Hamming codes use extra parity bits, each reflecting the correct parity for a different subset of the bits of the code word. Parity bits are stored in positions corresponding to powers of 2 (positions 1, 2, 4, 8, etc.). The encoded data bits are stored in the remaining positions. The parity bits are defined as follows: - position 1: check 1 bit, skip 1 bit, check 1 bit, skip 1 bit, - position 2: check 2 bits, skip 2 bits, - position 2 k : check 2 k bits, skip 2 k bits, Consider the data byte: 10011010 Expand to allow room for the parity bits: 1 _ 001_1010 Now compute the parity bits as defined above

Hamming Code Details Memory 17 We have the expanded sequence: 1 _ 0 0 1 _ 1 0 1 0 The parity bit in position 1 (first bit) would depend on the parity of the bits in positions 1, 3, 5, 7, etc: 1 _ 0 0 1 _ 1 0 1 0 Those bits have even parity, so we have: 0 _ 1 _ 0 0 1 _ 1 0 1 0 The parity bit in position 2 would depend on bits in positions 2, 3, 6, 7, etc: 0 _ 1 _ 0 0 1 _ 1 0 1 0 Those bits have odd parity, so we have: 0 1 1 _ 0 0 1 _ 1 0 1 0 Continuing, we obtain the encoded string: 0 1 1 1 0 0 1 0 1 0 1 0

Hamming Code Correction Memory 18 Suppose we receive the string: 0 1 1 1 0 0 1 0 1 1 1 0 How can we determine whether it's correct? Check the parity bits and see which, if any are incorrect. If they are all correct, we must assume the string is correct. Of course, it might contain so many errors that we can't even detect their occurrence, but in that case we have a communication channel that's so noisy that we cannot use it reliably. Checking the parity bits above: 0 1 1 1 0 0 1 0 1 1 1 0 OK WRONG OK WRONG So, what does that tell us, aside from that the string is incorrect? Well, if we assume there's no more than one incorrect bit, we can say that because the incorrect parity bits are in positions 2 and 8, the incorrect bit must be in position 10.