Please enable JavaScript.
Coggle requires JavaScript to display documents.
Memory system design in SoC (2. Architecture (Von neumann (benefits…
Memory system design in SoC
1. Why does memory occupy most of the die space?
A lot of silicon is dedicated to memory because of
memory hungry applications
2. Architecture
Harvard
separate
bus and storage for data and instruction
the ratio of memory allocated to instruction and data is determined by hardware. Once the chip is made, it cannot be changed.
Limitation
Compilers usually
embed data within the code
it is often
necessary
to be able to
write to the instruction memory
,
i.e set software break points in memory
high speed execution time is at the cost of
more hardware complexity
benefits
two or more internal buses which allow
simultaneous access
to both instructions and data
time for execution
of program is
low
Von neumann
single common memory space
where both program instructions and data are stored
more flexible, since modern computers are design to perform wide variety of tasks
single data bus
which fetches data and instructions
benefits
simplicity
economy
limitation
execution time
taken by the cpu to fetch a program is
high
Modified Harvard
uses
I and D caches with a common address space
what architecture benefit more from cache memory?
cache
two memory array
data
tag
beneficial
spatial locality
use of neighboring data
temporal locality
reuse of specific data
sequentiality
to reduce memory access latency
3. Types of on-chip memory
Static Ram (SRAM)
common
fast
Dynamic Ram
high density
lower cost per bit
slower than SRAM
Non-volatile memory
EPROM
Flash
retain data even if there a break in power supply
5. Processor to processor communication
Shared bus
read and write
cannot be executed concurrently
each processor has its own local ram
another processor can use the
common bus to send data over
to another processor local memory, and the
receiving processor can access concurrently
. Effective cut down traffic by half
Shared dual port ram
both processor
uses the same local ram
processor to processor
traffic removed
from bus
Shared FIFO
alternative of using ram, a
FIFO
is used
but processors must be
aware of who's writing and reading
6. Two type of performance perspective
Macro view
performance of memory system
across all instruction and data references
in applications
Micro view
performance of memory system
across critical code regions
performance parameter
access latency
memory bandwidth
where will processor execute its initialization code from?
is data loaded from remote memories?
is application code small enough to fit in the processor local on-chip instruction ram or is a cache necessary?
how will the processor load application data?
is on-chip local data ram big enough to satisfy run time requirements for heap and stack?
is data pushed into the processor's local data ram by an outside agent like DMA?
does the processor directly load data as input or as load instructions?
how does output data get to other parts of SoC?
can all data fit entirely into processor's local data ram?
7. Deciding memory system in SoC
restricted functionality
that needs more than
100MB
real or virtual memory with off die portions of memory,
may need L2 cache
maximum functionality
, large memory requirement
virtual memory with DRAM, L2 cache on die
restricted functionality
that fits in less than
100MB
SRAM, no virtual table, L1 cache only
How much memory can we put on die?
need to consider access time, write time, addressability
How to tune the memory system?
use simulation to obtain informations
number of execution
uncached instructions
total instruction committed
data write instructions executed
cache misses, cycle per instruction