Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations waross on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Calculating Memory Throughput 2

Status
Not open for further replies.

jamesnguyen

Electrical
Sep 6, 2010
49
Hello everyone,

How do I calculate the throughput of SRAM, SDR and DDR SDRAM? Is there a formula to calculate it?

Let suppose that:
- The speed for all three memory ICs = 100 MHz
- Data width = 16
- SRAM is attached to Asynchronous Memory Interface
- SDR and DDR SDRAM (both CL2) are connected to Synchronous Memory Interface

Regards,
James
 
Replies continue below

Recommended for you

Are you talking about basic read-write speed of each memory type? I don't think there is a particular formula to combine your requirements together as its depends too much on the architecture of your design and the processor.

Considering just the memory, for the asynchronous memory and bus the calculation is relatively simple: work out the worst-case access time for the memory, add in the data setup and hold times for any buffers and latches (read-write sequences will usually be longer). This gives you the maximum cycle time of that memory type. For synchronous memory you must consider the same parameters for the memory devices used, which ideally must be much less than the time between clock pulses otherwise you will require one or more 'wait states' to get in sync.

Without considering what types of data transfers are required between the different memory types, you could arrive at a figure where for the simplest transfer case you add the figures together for the different memory types involved. However, unless you have a DMA controller, or similar, to perform an independent bus to bus transfer, the processor speed will normally determine the rate at which data can be transferred from one memory area to another.

 
Thank you for your valuable reply. I worked out the read-write timing as follows:

SRAM’s Read-Write
(1 Setup) + (1 Read Access) + (1 hold) + (1 Transition) + (1 Setup) + (1 Write Access) + (1 hold) = 7 Cycles

SDRAM’s Read-Write
ON-Page Read-Write: (3 ACTIVE) + (3 Read) + (1 Write) = 7 Cycles
OFF-Page Read-Write: (8 Read) + (7 Write) = 15 Cycles

So, for one byte read-write, SDRAM looses. However, for multi-byte read-write, the SDRAM wins.

Can you read or write to SDRAM during its "auto refresh"?
Regards,
James
 
That sounds like a typical conclusion. That's the whole point of developing SDRAMs in the first place. However, it's not clear from your analysis whether "cycle" means the same thing in both cases. Additionally, your conclusion only appears to be corroborated by your analysis for an off-page access.

But, speed is not the only consideration for selecting memory devices. Density and power are also critical factors. Since the initial development of the PC, DRAM was selected over SRAM, not for speed, but for density and power. DRAMs ostensibly have no DC power draw when not selected, but SRAMs do. SRAMs had typically been at least a factor of 4 less dense than DRAM.

SRAM is typically reserved for registers and cache memories, where speed and non-volatility is paramount.

TTFN

FAQ731-376
Chinese prisoner wins Nobel Peace Prize
 
We are trying to decide what to put on a development board for ease of software development (SDRAM only or SDRAM + SRAM). In the final product, only SDRAM will be used.

Somehow, I was always under the impression that SRAM is the fastest memory for single-byte random access...
 
Well, I haven't really looked at their performance in over a decade, but that certainly used to be the case, i.e., DRAM had, at one point in time, roughly 60ns access time, while the SRAM of that same time were running 12 ns access times. Most the "cycle" stuff is really a processor thing, i.e., to synchronize RAS' and CAS' and RE's and CE's to the clock cycles of the processors.

I think that if the final product is going to be SDRAM, then the development environment should be identical. Nothing worse that developing timing critical code that runs fine on the development system, but crashes on the target system because the timing is different.

Also, the long-pole in the tent for development is rarely the download time. It's more often a problem with compiling, linking, etc. And usually, don't they download to flash, anyway?

TTFN

FAQ731-376
Chinese prisoner wins Nobel Peace Prize
 
I'm chuckling at that, IR (long-pole in the tent)... it's the bane of my development career ;-)

Dan - Owner
Footwell%20Animation%20Tiny.gif
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top