20-1 Embedded Systems Memory Expansion Lecture 20.

Slides:



Advertisements
Similar presentations
Parul Polytechnic Institute
Advertisements

VHDL 8 Practical example
Chapter 5 Internal Memory
Computer Organization and Architecture
+ CS 325: CS Hardware and Software Organization and Architecture Internal Memory.
1 Homework Reading –Tokheim, Chapter 12-1 through 12-4 Machine Projects –MP4 due at start of next class Labs –Continue with your assigned section.
H. Huang Transparency No.5-1 The 68HC11 Microcontroller Chapter 5: Operation Modes and Memory Expansion The 68HC11 Microcontroller Han-Way Huang Minnesota.
Programmable Interval Timer
The 8085 Microprocessor Architecture
Direct Memory Access Introduction to 8237
© 2006 Pearson Education, Upper Saddle River, NJ All Rights Reserved.Brey: The Intel Microprocessors, 7e Chapter 13 Direct Memory Access (DMA)
1 TK2633TK Microprocessor Architecture DR MASRI AYOB.
Registers –Flip-flops are available in a variety of configurations. A simple one with two independent D flip-flops with clear and preset signals is illustrated.
Registers  Flip-flops are available in a variety of configurations. A simple one with two independent D flip-flops with clear and preset signals is illustrated.
Chapter 5 Internal Memory
Memory Devices Wen-Hung Liao, Ph.D..
I/O Subsystem Organization and Interfacing Cs 147 Peter Nguyen
IT Systems Memory EN230-1 Justin Champion C208 –
Micro-controller or embedded controller
1 The 8051 Microcontroller and Embedded Systems CHAPTER INTERFACING TO EXTERNAL MEMORY.
Microcomputer & Interfacing Lecture 2
CompE 460 Real-Time and Embedded Systems Lecture 5 – Memory Technologies.
Memory Technology “Non-so-random” Access Technology:
Input / Output CS 537 – Introduction to Operating Systems.
DataFlash TM …Pure Genius Q Slide 1 Ideal for Data Storage Applications –Digital voice storage –Digital image storage –Text/data storage Ideal.
C.S. Choy95 COMPUTER ORGANIZATION Logic Design Skill to design digital components JAVA Language Skill to program a computer Computer Organization Skill.
Memory Hierarchy.
Memory and I/O Interfacing
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Operating Systems Overview: Using Hardware.
CHAPTER 3 TOP LEVEL VIEW OF COMPUTER FUNCTION AND INTERCONNECTION
8086/8088 Hardware Specifications Power supply:  +5V with tolerance of ±10%;  360mA. Input characteristics:  Logic 0 – 0.8V maximum, ±10μA maximum;
Chapter 5 Internal Memory. Semiconductor Memory Types.
Memory and Storage Dr. Rebhi S. Baraka
Memory Interface A Course in Microprocessor Electrical Engineering Dept. University of Indonesia.
SEQUENTIAL CIRCUITS Component Design and Use. Register with Parallel Load  Register: Group of Flip-Flops  Ex: D Flip-Flops  Holds a Word of Data 
Renesas Technology America, Inc. Flash!. CPU Rewrite CPU-rewrite is a term that refers to an Renesas MCU’s ability to erase/program its own internal Flash.
Chapter 6: Internal Memory Computer Architecture Chapter 6 : Internal Memory Memory Processor Input/Output.
Memory Read only memory (ROM) – nonvolatile
Chapter 4: MEMORY Internal Memory.
It is the work space for the CPU Temporary storage for data/programs the CPU is working with. Started as a collection of IC’s on Motherboard. Two main.
Computer Hardware A computer is made of internal components Central Processor Unit Internal External and external components.
Intel 8051 Another family of microcontroller is the Intel 8051 family. The basic 8051 microcontroller has four parallel input/output ports, port 0, 1,
Computer Architecture Lecture 6 by Engineer A. Lecturer Aymen Hasan AlAwady 1/12/2013 University of Kufa - Informatics Center for Research and Rehabilitation.
Introduction to Microprocessors - chapter3 1 Chapter 3 The 8085 Microprocessor Architecture.
Overview von Neumann Architecture Computer component Computer function
Semiconductor Memory Types
Digital Circuits Introduction Memory information storage a collection of cells store binary information RAM – Random-Access Memory read operation.
Different Microprocessors Tamanna Haque Nipa Lecturer Dept. of Computer Science Stamford University Bangladesh.
Architectural Considerations A Review of Some Architectural Concepts.
بسم الله الرحمن الرحيم MEMORY AND I/O.
Chapter Microcontroller
Chapter 11 System Performance Enhancement. Basic Operation of a Computer l Program is loaded into memory l Instruction is fetched from memory l Operands.
Computer Architecture Chapter (5): Internal Memory
AHMEDABAD INSTITUTE OF TECHNOLOGY
Index What is an Interface Pins of 8085 used in Interfacing Memory – Microprocessor Interface I/O – Microprocessor Interface Basic RAM Cells Stack Memory.
Memory Expansion Lecture 22 Embedded Systems.
Homework Reading Machine Projects Labs
Memory Units Memories store data in units from one to eight bits. The most common unit is the byte, which by definition is 8 bits. Computer memories are.
Computer Architecture & Operations I
An Introduction to Microprocessor Architecture using intel 8085 as a classic processor
William Stallings Computer Organization and Architecture 8th Edition
William Stallings Computer Organization and Architecture 7th Edition
William Stallings Computer Organization and Architecture 8th Edition
The 8085 Microprocessor Architecture
William Stallings Computer Organization and Architecture 8th Edition
ADSP 21065L.
Presentation transcript:

20-1 Embedded Systems Memory Expansion Lecture 20

Embedded Systems20-2 In These Notes... Memory Types Memory Expansion –Interfacing Parallel Serial Direct Memory Access controllers

Embedded Systems20-3 Memory Characteristics and Issues Volatility - Does it remember when the power fails? Persistence - How long does it remember when there is power? Speed – How quickly can it be read or written? Reprogrammability –Speed is often an issue for nonvolatile memories –Maximum number of W/E cycles –Programming voltage Cost Temperature Sensitivity - EPROMs forget at high temperatures

Embedded Systems20-4 Types of Memory - ROM Mask –A custom ROM mask pattern is created –Large minimum order, NRE costs PROM –Program by burning fuses. Apply a high voltage for a certain amount of time. –Not erasable UV EPROM –Program by squeezing charge into floating transistor gate with high voltage –Erase entire memory at once with UV radiation

Embedded Systems20-5 Types of Memory - EEPROM EEPROM –Can erase a byte at a time electrically –Limited reprogrammability: e.g. 100,000 cycles –Slow programming (up to 10 ms per byte) Flash EEPROM –Can erase entire chip, or just certain blocks –May have limited reprogrammability: e.g. 1,000 cycles for some low-end units –May have slow programming –Serial or parallel interface

Embedded Systems20-6 Types of Memory - RAM SRAM –Use two or six transistors per bit –Fast - 10 ns or less DRAM –Use one transistor per bit –Acts like a capacitor, discharges in a few milliseconds –Incredibly cheap, but need to refresh each bit periodically –Slower than SRAM - 60 ns –Tricks to speed up access (e.g. page mode)

Embedded Systems20-7 Parallel Memory Interface 1920 bytes are not enough for our data logger! We want to store up to 32 kBytes of data Choose a microcontroller with more memory? –Not available, or too expensive Instead choose a microcontroller with a memory expansion mode –M16C/62 Modes for M16C/62 MCU

Embedded Systems20-8 SRAM Example – IDT71256L 32k x 8 SRAM

Embedded Systems20-9 IDT71256L Read Timing SymbolParameterMinimum (ns)Maximum (ns) t RC Read Cycle Time20- t AA Address Access time-20 t OLZ Output Enable to Output in Low-Z2- t OE Output Enable to Output Valid-10 t OHZ Output Disable to Output in Hi-Z28

Embedded Systems20-10 IDT71256L Write Timing SymbolParameterMinimum (ns)Maximum (ns) t wc Write Cycle Time20- t AW Address Valid to End-of-Write15- t WP Write Pulse Width15- t AS Address Set-Up Time0- t DW Data to Write Time Overlap11- t DH Data Hold from Write Time0-

Embedded Systems20-11 External Memory Access – Separate Buses Chip Select –Partial vs. Full Decoding –Power Consumption MCUSRAM I/O7-I/O0D7-D0 A14-A0 ~WR~WE ~RD~OE ~CS D7-D0 A15-A0 ~WR ~RD Read Write Data from SRAM Adx from MCU Data from MCU A15

Embedded Systems20-12 External Memory Access – Multiplexed Buses Use a latch to hold the low byte of the address Saves pins MCU SRAM I/O7-I/O0 AD7-AD0 A14-A8 ~WR~WE ~RD~OE ~CS AD7-AD0 A15-A8 ~WR ~RD Read Write Hi Adx from MCU A15 A7-A0 ALE Latch Out Low Adx from MCU ALE Low AdxSRAM DLow AdxMCU D Low Adx from MCU

Embedded Systems20-13 Multiple External Memories Decoder selects a single memory chip –Output 0 active when A16:A15 = 00. Address = 0 0xxx xxxx xxxx xxxx = 00000h to 07FFFh –Output 1 active when A16:A15 = 01. Address = 0 1xxx xxxx xxxx xxxx = 08000h to 0FFFFh –Output 2 active when A16:A15 = 10. Address = 1 0xxx xxxx xxxx xxxx = 10000h to 17FFFh MCUSRAM 1 I/O7-I/O0D7-D0 A14-A0 ~WR~WE ~RD~OE ~CSA16-A15 SRAM 2 I/O7-I/O0 A14-A0 ~WE ~OE ~CS ROM 1 I/O7-I/O0 A14-A0 ~OE ~CS Decoder 0 12

Embedded Systems20-14 Issue – Bus Loading Microcontroller has a limited output drive capacity on the data and address buses –e.g. 100 pF for an AMD MCU Each device on the bus adds capacitance –11 pF for each input on IDT SRAM chip This leads to increased time delay until bus reaches valid voltage –M16C lowers threshold voltages when accessing external memory Solution: add buffers

Embedded Systems20-15 Issue - The Memory Wall Difference in read cycle times for memories –Internal memories SRAM: blazingly fast Flash: down to 40 ns –External parallel-interface memories SRAM: down to 10 ns Flash: down to 55 ns Memory Wall: flash memory can’t keep up with fast processors –External flash: 1/55 ns = 18 MHz –Internal flash: 1/40 ns = 25 MHz Need a mechanism to speed up access to data stored in flash memory

Embedded Systems20-16 Solutions to the Embedded Memory Wall Code shadowing –Use flash memory to hold the program –At boot-time load the program into faster SRAM –Execute the program out of SRAM –Problem: extra memory costs money Cache –Use a small fast SRAM with a cache controller to hold commonly used data –Problem: unpredictable access times make it hard to guarantee predictable timing (e.g. real-time is difficult) Wider bus to memory –Access multiple (e.g. four bytes) at a time. –Fetching byte N also prefetches bytes N+1, N+2 and N+3 –Works well for sequential accesses –Problem: Still incurs a delay for random accesses (e.g. branch) Branch target cache –Cache multiple bytes from targets of branch instructions –Problem: Unpredictable access times. But may be able to lock cache. –Could also cache the beginning of all ISRs

Embedded Systems20-17 Storing Large Amounts of Data What if we want to store more data than fits into our processor’s address space? A. Use a memory paging scheme Use a register (or output port) to hold the upper bits of the address –This register selects which page of memory we will access Control the register with a page select function This doesn’t fit in well with C, as the compiler doesn’t know about your custom paging scheme –Some MCUs support paging, and the compilers can compile for it B. Use a serially-interfaced memory (inexpensive) Communicate with the memory over a few data lines C compiler doesn’t know about this memory either –May want to introduce some kind of file system to manage information in the expanded memory

Embedded Systems20-18 Serial Interface Flash NOR Flash Memory Array with Small Pages SPI compatible Serial Interface Chip Select Input allows multiple devices on the same bus RESET input allows the System to Terminate Any Operation Dual SRAM Buffers to provide enhanced flexibility and simultaneous read or write operations High Speed Clock Multiple Data Paths for Reading and Writing RDY/BSY output provides the device status I/O INTERFACE SISO FLASH MEMORY ARRAY PAGE SIZE = BUFFER SIZE BUFFER 1 BUFFER 2 SCK WP RESETRDY/BSYCS Write Protect Provides method to protect a portion of the memory Array DataFlash TM (Atmel)

Embedded Systems20-19 Details for DataFlash Numbers –1 Mbit – 128 Mbit capacities available –Page sizes from 264 to 1056 bytes –up to 20 MHz SPI interface speed –Page->Buffer transfer/compare: < 250 us –Page erase: < 8 ms –Page program: < 14 ms C source code for interface available –Flash file system (FAT12 and FAT16) –Compression/decompression –Error detection and correction –Wear leveling –Automatic page rewrite Commands (hardware) –Page read –Transfer page to buffer –Compare page with buffer –Buffer read, write –Program page from buffer (with or without erasing) –Program page through buffer –Page erase –Block erase (8 pages) –Automatic page rewrite

Embedded Systems20-20 Moving Data Efficiently Sometimes we just need to move data… –Loading a packet from an Ethernet interface –Loading a video frame buffer –Initializing an array to zero –Loading an audio output buffer with audio samples Very slow when performed in software Loop: mov.w _source[A0], _dest[A1] add.w #2, A0 ; increment src. ptr add.w #2, A1 ; increment dest. ptr cmp.w A0, R0 ; assume R0 is end ptr jle Loop Consider a UART ISR which takes 50 cycles –Actually just need to move a byte from the UART to a buffer –50 cycles/16 MHz = us –Limits us to maximum 320 kHz bit rate (100% CPU utilization)

Embedded Systems20-21 Direct Memory Access Sequence of activities –Controller takes bus from CPU –Performs data transfer –Can interrupt CPU to signal completion Control Registers –Start and destination addresses –Transfer length –Status DMA Controller preempts CPU, may need to interleave accesses to ensure progress for CPU UART DMA: 2 cycles –At 320 kBps, CPU utilization = 320 kHz * 2/16 MHz * 100% = 4% utilization

Embedded Systems20-22 M16C/62 DMA Controllers 2 DMACs, 0 and 1 Control Registers –Source Address SAR0, SAR1 –Destination Address DAR0, DAR1 –Transfer Count TCR0, TCR1 –DMA Request Cause INT1, Timer, software trigger, UART Tx, UART Rx, A/D conversion complete –Transfer mode Enable Byte or word transfer Single or repeat transfer Source address increment or fixed Destination address increment or fixed