Memories. Design of Digital Circuits 2017 Srdjan Capkun Onur Mutlu.

Similar documents
Chapter 5. Digital Design and Computer Architecture, 2 nd Edition. David Money Harris and Sarah L. Harris. Chapter 5 <1>

Digital Logic & Computer Design CS Professor Dan Moldovan Spring 2010

Chapter 5 - Memory. Sarah L. Harris and David Money Harris. Digital Design and Computer Architecture: ARM Edi>on 2015


Chapter 3. SEQUENTIAL Logic Design. Digital Design and Computer Architecture, 2 nd Edition. David Money Harris and Sarah L. Harris.

ENGR 303 Introduction to Logic Design Lecture 7. Dr. Chuck Brown Engineering and Computer Information Science Folsom Lake College

CSEE 3827: Fundamentals of Computer Systems. Storage

Lecture 11 SRAM Zhuo Feng. Z. Feng MTU EE4800 CMOS Digital IC Design & Analysis 2010

Lecture 13: SRAM. Slides courtesy of Deming Chen. Slides based on the initial set from David Harris. 4th Ed.

Memory. Outline. ECEN454 Digital Integrated Circuit Design. Memory Arrays. SRAM Architecture DRAM. Serial Access Memories ROM

+1 (479)

Introduction to CMOS VLSI Design Lecture 13: SRAM

Chapter 6 (Lect 3) Counters Continued. Unused States Ring counter. Implementing with Registers Implementing with Counter and Decoder

Semiconductor Memory Classification

Internal Memory. Computer Architecture. Outline. Memory Hierarchy. Semiconductor Memory Types. Copyright 2000 N. AYDIN. All rights reserved.

! Memory Overview. ! ROM Memories. ! RAM Memory " SRAM " DRAM. ! This is done because we can build. " large, slow memories OR

SRAM. Introduction. Digital IC

Semiconductor Memory Classification. Today. ESE 570: Digital Integrated Circuits and VLSI Fundamentals. CPU Memory Hierarchy.

Introduction to SRAM. Jasur Hanbaba

Embedded Systems Design: A Unified Hardware/Software Introduction. Outline. Chapter 5 Memory. Introduction. Memory: basic concepts

Embedded Systems Design: A Unified Hardware/Software Introduction. Chapter 5 Memory. Outline. Introduction

Digital Integrated Circuits Lecture 13: SRAM

Logic and Computer Design Fundamentals. Chapter 8 Memory Basics

ESE370: Circuit-Level Modeling, Design, and Optimization for Digital Systems

CENG 4480 L09 Memory 2

Design and Implementation of an AHB SRAM Memory Controller

Computer Organization and Assembly Language (CS-506)

! Memory. " RAM Memory. " Serial Access Memories. ! Cell size accounts for most of memory array size. ! 6T SRAM Cell. " Used in most commercial chips

CREATED BY M BILAL & Arslan Ahmad Shaad Visit:

Memory classification:- Topics covered:- types,organization and working

Memory and Programmable Logic

RTL Design (2) Memory Components (RAMs & ROMs)

EECS150 - Digital Design Lecture 16 - Memory

Lecture-14 (Memory Hierarchy) CS422-Spring

ECE 341. Lecture # 16

Concept of Memory. The memory of computer is broadly categories into two categories:

EECS150 - Digital Design Lecture 16 Memory 1

Storage Elements & Sequential Circuits

Address connections Data connections Selection connections

ECE 152 Introduction to Computer Architecture

Random Access Memory (RAM)

Chapter 4 Main Memory

COMPSCI 210 S Computer Systems 1. 6 Sequential Logic Circuit

Computer Organization. 8th Edition. Chapter 5 Internal Memory

Memory Pearson Education, Inc., Hoboken, NJ. All rights reserved.

Memory & Logic Array. Lecture # 23 & 24 By : Ali Mustafa

Memory and Programmable Logic

Module 5a: Introduction To Memory System (MAIN MEMORY)

Slide Set 10. for ENEL 353 Fall Steve Norman, PhD, PEng. Electrical & Computer Engineering Schulich School of Engineering University of Calgary

RISC (Reduced Instruction Set Computer)

Random Access Memory (RAM)

Sequential Logic Design

Chapter 5 Internal Memory

ECSE-2610 Computer Components & Operations (COCO)

The Memory Hierarchy 1

Digital Design, Kyung Hee Univ. Chapter 7. Memory and Programmable Logic

Lecture-7 Characteristics of Memory: In the broad sense, a microcomputer memory system can be logically divided into three groups: 1) Processor

Basic Organization Memory Cell Operation. CSCI 4717 Computer Architecture. ROM Uses. Random Access Memory. Semiconductor Memory Types

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2017 Lecture 13

Sense Amplifiers 6 T Cell. M PC is the precharge transistor whose purpose is to force the latch to operate at the unstable point.

Microcontroller Systems. ELET 3232 Topic 11: General Memory Interfacing

Overview. Memory Classification Read-Only Memory (ROM) Random Access Memory (RAM) Functional Behavior of RAM. Implementing Static RAM

MEMORIES. Memories. EEC 116, B. Baas 3

Chapter 8 Memory Basics

Lecture 13: Memory and Programmable Logic

EEM 486: Computer Architecture. Lecture 9. Memory

ECE 2300 Digital Logic & Computer Organization

Topic #6. Processor Design

William Stallings Computer Organization and Architecture 6th Edition. Chapter 5 Internal Memory

Introduction to Semiconductor Memory Dr. Lynn Fuller Webpage:

Memory memories memory

EECS 3201: Digital Logic Design Lecture 7. Ihab Amer, PhD, SMIEEE, P.Eng.

Memory Expansion. Lecture Embedded Systems

ENGIN 112 Intro to Electrical and Computer Engineering

INSTITUTO SUPERIOR TÉCNICO. Architectures for Embedded Computing

UNIT V (PROGRAMMABLE LOGIC DEVICES)

William Stallings Computer Organization and Architecture 8th Edition. Chapter 5 Internal Memory

Semiconductor Memories: RAMs and ROMs

Very Large Scale Integration (VLSI)

CS 320 February 2, 2018 Ch 5 Memory

Memory in Digital Systems

CENG 4480 L09 Memory 3

Timing and Verification

Organization. 5.1 Semiconductor Main Memory. William Stallings Computer Organization and Architecture 6th Edition

Silicon Memories. Why store things in silicon? It s fast!!! Compatible with logic devices (mostly)

Unit 6 1.Random Access Memory (RAM) Chapter 3 Combinational Logic Design 2.Programmable Logic

COMP2121: Microprocessors and Interfacing. Introduction to Microprocessors

Memory in Digital Systems

SECTION-A

EE414 Embedded Systems Ch 5. Memory Part 2/2

! Serial Access Memories. ! Multiported SRAM ! 5T SRAM ! DRAM. ! Shift registers store and delay data. ! Simple design: cascade of registers

Memory in Digital Systems

Where Have We Been? Ch. 6 Memory Technology

Memory in Digital Systems

Introduction read-only memory random access memory

Chapter 6 Objectives

The Memory Hierarchy Part I

Announcement. Computer Architecture (CSC-3501) Lecture 20 (08 April 2008) Chapter 6 Objectives. 6.1 Introduction. 6.

CS 265. Computer Architecture. Wei Lu, Ph.D., P.Eng.

8051 INTERFACING TO EXTERNAL MEMORY

Transcription:

Memories Design of Digital Circuits 2017 Srdjan Capkun Onur Mutlu http://www.syssec.ethz.ch/education/digitaltechnik_17 Adapted from Digital Design and Computer Architecture, David Money Harris & Sarah L. Harris 2007 Elsevier 1

What will we learn today? Common sequential building blocks Counters Shift registers How can we store data? Array organization of memories 2

Common Sequential Building Blocks Various Counters Up / down, program counters Serial / Parallel Converters Serial In - Serial Out : Shift Register Serial In - Parallel Out Parallel In - Serial Out Parallel In - Parallel Out : Normal Register 3

+ Counters Increments on each clock edge. Used to cycle through numbers. For example, 000, 001, 010, 011, 100, 101, 110, 111, 000, 001 Example uses: Digital clock displays Program counter: keeps track of current instruction executing Symbol Implementation CLK N CLK Q Reset N 1 N N r Reset N Q 4

Shift Register Shift a new value in on each clock edge Shift a value out on each clock edge Serial-to-parallel converter: converts serial input (S in ) to parallel output (Q 0:N-1 ) Symbol CLK Implementation Q N S in S out S in S out Q 0 Q 1 Q 2 Q N-1 5

Shift Register with Parallel Load When Load = 1, acts as a normal N-bit register When Load = 0, acts as a shift register Now can act as a serial-to-parallel converter (S in to Q 0:N-1 ) or a parallel-to-serial converter (D 0:N-1 to S out ) Load Clk S in D 0 D 1 D 2 D N-1 0 1 0 1 0 1 0 1 S out Q 0 Q 1 Q 2 Q N-1 6

Motivation: Memory Elements Memories are large blocks A significant portion of a modern circuit is memory. Memories are practical tools for system design Programmability, reconfigurability all require memory Allows you to store data and work on data Not all algorithms are designed to process data as it comes, some require data to be. Data type determines required storage SMS: 160 bytes 1 second normal audio: 64 kbytes 1 HD picture: 7.32 Mbytes 7

Die photograph of an Intel processor in 45nm 8

Larger Memory Blocks 9

How can we store data Flip-Flops (or Latches) Very fast, parallel access Expensive (one bit costs 20+ transistors) 10

How can we store data Flip-Flops (or Latches) Very fast, parallel access Expensive (one bit costs 20+ transistors) Static RAM (we will describe them in a moment) Relatively fast, only one data word at a time Less expensive (one bit costs 6 transistors) 11

How can we store data Flip-Flops (or Latches) Very fast, parallel access Expensive (one bit costs 20+ transistors) Static RAM (we will describe them in a moment) Relatively fast, only one data word at a time Less expensive (one bit costs 6 transistors) Dynamic RAM (we will describe them a bit later) Slower, reading destroys content (refresh), one data word at a time, needs special process Cheaper (one bit is only a transistor) 12

How can we store data Flip-Flops (or Latches) Very fast, parallel access Expensive (one bit costs 20+ transistors) Static RAM (we will describe them in a moment) Relatively fast, only one data word at a time Less expensive (one bit costs 6 transistors) Dynamic RAM (we will describe them a bit later) Slower, reading destroys content (refresh), one data word at a time, needs special process Cheaper (one bit is only a transistor) Other storage technology (hard disk, flash) Much slower, access takes a long time, non-volatile Per bit cost is lower (no transistors directly involved) 13

Array Organization of Memories Efficiently store large amounts of data Consists of a memory array (stores data) Address selection logic (selects one row of the array) Readout circuitry (reads data out) Address An M-bit value can be read or written at each unique N-bit address All values can be accessed, but only M-bits at a time Access restriction allows more compact organization N Array M Data 14

Memory Arrays Two-dimensional array of bit cells Each bit cell stores one bit An array with N address bits and M data bits: 2 N rows and M columns Depth: number of rows (number of words) Width: number of columns (size of word) Array size: depth width = 2 N M Address Data Address N Array Address 2 Array 11 10 01 0 1 0 1 0 0 1 1 0 depth M 3 00 0 1 1 Data Data width 15

Memory Array: Example 2 2 3-bit array Number of words: 4 Word size: 3-bits For example, the 3-bit word at address 10 is 100 Address Data Address 2 Array 11 10 01 0 1 0 1 0 0 1 1 0 depth 3 00 0 1 1 Data width 16

Memory Arrays Address 10 1024-word x 32-bit Array 32 Data 17

Types of Memories Volatile memories (loses data when power is off) Static Random Access Memory (SRAM) Dynamic Random Access Memory (DRAM) Non-volatile memories (keeps data even without power) Read Only Memory (ROM) Various forms of flash memory (i.e. EEPROM) 18

Static Random Access Memory Volatile: Stores data by cross coupled inverters, once data is the inverters keep the value (therefore static) Historically called Random Access Memory, because data can be accessed in any order (unlike magnetic tapes which allowed only serial access) 19

Dynamic Random Access Memory wordline bitline wordline Volatile: Stores data by charging a (small) capacitor bitline + + Problem is that the charge on the capacitor will slowly discharge (memory will forget the value) with time. It is called Dynamic, because we have to refresh the contents before memory forgets what it. The larger the capacitor, the longer it takes to forget This costs area, ingenious methods are used to increase capacitance 20

Memory Array Organization Storage nodes in one column connected to one bitline Address decoder activates only ONE wordline Content of one line of storage available at output Address 2 2:4 Decoder 11 10 01 00 wordline 3 wordline 2 wordline 1 wordline 0 bitline 2 bitline 1 bitline 0 Data 2 Data 1 Data 0 21

Memory Array Organization Storage nodes in one column connected to one bitline Address decoder activates only ONE wordline Content of one line of storage available at output Address 10 2 2:4 Decoder 11 10 01 00 wordline 3 Active wordline wordline 2 wordline 1 wordline 0 bitline 2 bitline 1 bitline 0 Data 2 Data 1 Data 0 1 0 0 22

How is Access Controlled? Access transistors configured as switches connect the bit storage to the bitline. Access controlled by the wordline wordline bit bitline bitline wordline wordline bitline bitline DRAM SRAM 23

Read Only Memories Non Volatile: Read Only Memories (ROM) can be made much denser No need to change the content (no storage transistors) Denser array Used for keeping content that will not change Program of an embedded system Configuration data Look up tables Re-writable (flash) memories are commonly used These are actually programmable, but writing is very slow From an application point of view identical to ROMs 24

ROMs: Dot Notation Address 2 2:4 Decoder 11 10 wordline bit cell containing 0 bitline 01 wordline bitline 00 bit cell containing 1 Data 2 Data 1 Data 0 25

ROM Storage Address 2 2:4 Decoder 11 10 01 Address 11 10 01 00 Data 0 1 0 1 0 0 1 1 0 0 1 1 depth 00 width Data 2 Data 1 Data 0 26

ROM Logic 2:4 Decoder 11 Address 2 10 Data 2 = A 1 A 0 Data 1 = A 1 + A 0 01 Data 0 = A 1 A 0 00 Data 2 Data 1 Data 0 27

Logic with Memory Arrays Implement the following logic functions using a 22 3-bit memory array: X = AB Y = A + B Z = A B A, B 2 2:4 Decoder 11 10 01 00 wordline 3 wordline 2 wordline 1 wordline 0 bitline 2 bitline 1 bitline 0 X Y Z 28

Logic with Memory Arrays Called lookup tables (LUTs): look up output at each input combination (address) 4-word x 1-bit Array Truth Table A B Y 0 0 0 0 1 0 1 0 0 1 1 1 A B 2:4 Decoder 00 A 1 01 A 0 10 11 bitline 29

Multi-ported Memories Port: address/data pair 3-ported memory: 2 read ports (A 1 /RD 1, A 2 /RD 2 ) 1 write port (A 3 /WD 3, WE 3 enables writing) Small multi-ported memories are called register files CLK N N A1 A2 WE3 RD1 RD2 M M N M A3 WD3 Array 30

Memory Arrays in Verilog // 256 x 3 memory module with one read/write port module dmem( input clk, // clock input we, // write enable input [7:0] a // 8-bit address input [2:0] wd, // 3-bit write data output [2:0] rd); // 3-bit read data reg [2:0] RAM[255:0]; // Memory array, holds // 256 entries each 3 bits wide assign rd = RAM[a]; // Read access always @(posedge clk) if (we) RAM[a] <= wd; endmodule // with rising clock // if write enable // write data is in array 31

What have we learned? Different ways of storing data Registers Static Memory Dynamic Memory Array organization Compact form One row active at a time 32