DSPRelated.com
Forums

SDRAM access is slow

Started by halilcuce November 18, 2004


Hi All,

I am using a board based on C6416. Writing to SDRAM is nearly six
times slower than reading for same amount of the data. Could anybody
help me for fast writing methods.

Thanks.

Halil





Halil,
You can use a EDMA transfer it is faster.
stephane
--- halilcuce <> a rit:
> Hi All,
>
> I am using a board based on C6416. Writing to SDRAM
> is nearly six
> times slower than reading for same amount of the
> data. Could anybody
> help me for fast writing methods.
>
> Thanks.
>
> Halil > _____________________________________
> Note: If you do a simple "reply" with your email
> client, only the author of this message will receive
> your answer. You need to do a "reply all" if you
> want your answer to be distributed to the entire
> group.
>
> _____________________________________
> About this discussion group:
>
> To Join: Send an email to > To Post: Send an email to
>
> To Leave: Send an email to > Archives: http://www.yahoogroups.com/group/c6x
>
> Other Groups: http://www.dsprelated.com
>
> Yahoo! Groups Links >
Vous manquez despace pour stocker vos mails ? Le nouveau Yahoo! Messenger est arriv! Douvrez toutes les nouveaut pour
dialoguer instantanent avec vos amis. A tharger gratuitement sur
http://fr.messenger.yahoo.com



Hi Halil

I just went through playing with memory timing. Look for SPRU266 on
the TI site. In the section on for "EMIF CE Space Control Registers
(CECTL0-3)" and you'll find how to set the registers. You'll probably
make the changes in the init_emif() section of the .gel file on the
line with /* CE0 SDRAM */.

I'm using a DSK6713 and built my program starting with one of the ones
that come with the board. I made the gel file changes and found that
the DSK6713_init() call reset the values on me.

If you have the DSK_init call you can change the source for it (a
task) or just copy the line of code in the gel file ---

*(int *)EMIF_CE0 = 0xffffbf33; /* CE0 SDRAM */

with the new value to the line after the DSK init call to get the
values to what you want. Might not be clean but is fast and easy :-)

Al
--- In , "halilcuce" <halilcuce@y...> wrote:
>
>
> Hi All,
>
> I am using a board based on C6416. Writing to SDRAM is nearly six
> times slower than reading for same amount of the data. Could anybody
> help me for fast writing methods.
>
> Thanks.
>
> Halil



well, a EDMA will be as fast in accessing the SDRAM as a direct access with
the same EMIF settings.... The gateway between the DSP and the SDRAM is the
EMIF. The settings for the Adressrange (ChipSelect) of your SDRAM for
waitstates for reading and writing will affect direct access or EDMA access
in the same way.

please check the EMIF section in the peripherals reference manual to see the
effect of the settings

bye,

thomas

----- Original Message -----
From: "stephane deb" <>
To: "halilcuce" <>; <>
Sent: Friday, November 19, 2004 6:48 PM
Subject: Re: [c6x] SDRAM access is slow >
>
> Halil,
> You can use a EDMA transfer it is faster.
> stephane
> --- halilcuce <> a rit :
> >
> >
> >
> > Hi All,
> >
> > I am using a board based on C6416. Writing to SDRAM
> > is nearly six
> > times slower than reading for same amount of the
> > data. Could anybody
> > help me for fast writing methods.
> >
> > Thanks.
> >
> > Halil
> >
> >
> >
> >
> >
> >
> >
> >
> > _____________________________________
> > Note: If you do a simple "reply" with your email
> > client, only the author of this message will receive
> > your answer. You need to do a "reply all" if you
> > want your answer to be distributed to the entire
> > group.
> >
> > _____________________________________
> > About this discussion group:
> >
> > To Join: Send an email to
> >
> >
> > To Post: Send an email to
> >
> > To Leave: Send an email to
> >
> >
> > Archives: http://www.yahoogroups.com/group/c6x
> >
> > Other Groups: http://www.dsprelated.com
> >
> > Yahoo! Groups Links
> >
> >
> >
> >
> >
> >
> >
> >
> >
> Vous manquez d'espace pour stocker vos mails ? > Le nouveau Yahoo! Messenger est arriv! Douvrez toutes les nouveaut
pour dialoguer instantanent avec vos amis. A tharger gratuitement sur
http://fr.messenger.yahoo.com
>
>
> _____________________________________
> Note: If you do a simple "reply" with your email client, only the author
of this message will receive your answer. You need to do a "reply all" if
you want your answer to be distributed to the entire group.
>
> _____________________________________
> About this discussion group:
>
> To Join: Send an email to
>
> To Post: Send an email to
>
> To Leave: Send an email to
>
> Archives: http://www.yahoogroups.com/group/c6x
>
> Other Groups: http://www.dsprelated.com
>
> Yahoo! Groups Links >
>

--
Geschenkt: 3 Monate GMX ProMail + 3 Top-Spielfilme auf DVD
++ Jetzt kostenlos testen http://www.gmx.net/de/go/mail ++



I agree to the things you write about the documentation. But...:

> *(int *)EMIF_CE0 = 0xffffbf33; /* CE0 SDRAM */

this is about the slowest possible setting. I think you will not have much
progress with this ;-)

You have to calculate the required setting for your schematic. There is no
use in using anyones settings.

Take the clock with which you operate the RAM. Have a look in the datasheet
about the possible waitstates for reading (setup hold strobe and so on...).
With this informations you can decide about the settings you will use.

In the EMIF_CE0 you define the number of waitstates for the different states
of memory access. ffff is the maximum possible ...

The last bits define the type of memory-access (32Bit, 16 bit, synchronous,
asynchronous....)

The required settings depend 100% from your very private schematic. You have
to consider each and every bit in the setting to avoid errors and to get out
the maximum of your system.

We have invested some time in reading the manuals and calculating the
optimum settings for our project - this is from my point of view the only
possible option ;-)

have fun with all the bits,

thomas ----- Original Message -----
From: "eewizard_1" <>
To: <>
Sent: Saturday, November 20, 2004 11:37 AM
Subject: [c6x] Re: SDRAM access is slow >
> Hi Halil
>
> I just went through playing with memory timing. Look for SPRU266 on
> the TI site. In the section on for "EMIF CE Space Control Registers
> (CECTL0-3)" and you'll find how to set the registers. You'll probably
> make the changes in the init_emif() section of the .gel file on the
> line with /* CE0 SDRAM */.
>
> I'm using a DSK6713 and built my program starting with one of the ones
> that come with the board. I made the gel file changes and found that
> the DSK6713_init() call reset the values on me.
>
> If you have the DSK_init call you can change the source for it (a
> task) or just copy the line of code in the gel file ---
>
> *(int *)EMIF_CE0 = 0xffffbf33; /* CE0 SDRAM */
>
> with the new value to the line after the DSK init call to get the
> values to what you want. Might not be clean but is fast and easy :-)
>
> Al >
> --- In , "halilcuce" <halilcuce@y...> wrote:
> >
> >
> > Hi All,
> >
> > I am using a board based on C6416. Writing to SDRAM is nearly six
> > times slower than reading for same amount of the data. Could anybody
> > help me for fast writing methods.
> >
> > Thanks.
> >
> > Halil > _____________________________________
> Note: If you do a simple "reply" with your email client, only the author
of this message will receive your answer. You need to do a "reply all" if
you want your answer to be distributed to the entire group.
>
> _____________________________________
> About this discussion group:
>
> To Join: Send an email to
>
> To Post: Send an email to
>
> To Leave: Send an email to
>
> Archives: http://www.yahoogroups.com/group/c6x
>
> Other Groups: http://www.dsprelated.com
>
> Yahoo! Groups Links >
>

--
NEU +++ DSL Komplett von GMX +++ http://www.gmx.net/de/go/dsl
GMX DSL-Netzanschluss + Tarif zum supergstigen Komplett-Preis!




Hi thomas

I just clipped that out of the example program. It's
what Spectrum Digital has the SDRAM set at for the DSK
we are using as a development platform.

For my daugnter board I changed the CE2 and CE3 times.

All of the program itself fits in the DSP and doesn't
run in the SDRAM.

Al

--- In , krahvogl@g... wrote:
> I agree to the things you write about the documentation. But...:
>
> > *(int *)EMIF_CE0 = 0xffffbf33; /* CE0 SDRAM */
>
> this is about the slowest possible setting. I think you will not
have much
> progress with this ;-)
>
> You have to calculate the required setting for your schematic. There
is no
> use in using anyones settings.
>
> Take the clock with which you operate the RAM. Have a look in the
datasheet
> about the possible waitstates for reading (setup hold strobe and so
on...).
> With this informations you can decide about the settings you will use.
>
> In the EMIF_CE0 you define the number of waitstates for the
different states
> of memory access. ffff is the maximum possible ...
>
> The last bits define the type of memory-access (32Bit, 16 bit,
synchronous,
> asynchronous....)
>
> The required settings depend 100% from your very private schematic.
You have
> to consider each and every bit in the setting to avoid errors and to
get out
> the maximum of your system.
>
> We have invested some time in reading the manuals and calculating the
> optimum settings for our project - this is from my point of view the
only
> possible option ;-)
>
> have fun with all the bits,
>
> thomas > ----- Original Message -----
> From: "eewizard_1" <eewizard_1@y...>
> To: <>
> Sent: Saturday, November 20, 2004 11:37 AM
> Subject: [c6x] Re: SDRAM access is slow > >
> >
> >
> >
> > Hi Halil
> >
> > I just went through playing with memory timing. Look for SPRU266 on
> > the TI site. In the section on for "EMIF CE Space Control Registers
> > (CECTL0-3)" and you'll find how to set the registers. You'll probably
> > make the changes in the init_emif() section of the .gel file on the
> > line with /* CE0 SDRAM */.
> >
> > I'm using a DSK6713 and built my program starting with one of the ones
> > that come with the board. I made the gel file changes and found that
> > the DSK6713_init() call reset the values on me.
> >
> > If you have the DSK_init call you can change the source for it (a
> > task) or just copy the line of code in the gel file ---
> >
> > *(int *)EMIF_CE0 = 0xffffbf33; /* CE0 SDRAM */
> >
> > with the new value to the line after the DSK init call to get the
> > values to what you want. Might not be clean but is fast and easy :-)
> >
> > Al
> >
> >
> >
> > --- In , "halilcuce" <halilcuce@y...> wrote:
> > >
> > >
> > > Hi All,
> > >
> > > I am using a board based on C6416. Writing to SDRAM is nearly six
> > > times slower than reading for same amount of the data. Could
anybody
> > > help me for fast writing methods.
> > >
> > > Thanks.
> > >
> > > Halil
> >
> >
> >
> >
> >
> >
> >
> >
> > _____________________________________
> > Note: If you do a simple "reply" with your email client, only the
author
> of this message will receive your answer. You need to do a "reply
all" if
> you want your answer to be distributed to the entire group.
> >
> > _____________________________________
> > About this discussion group:
> >
> > To Join: Send an email to
> >
> > To Post: Send an email to
> >
> > To Leave: Send an email to
> >
> > Archives: http://www.yahoogroups.com/group/c6x
> >
> > Other Groups: http://www.dsprelated.com
> >
> > Yahoo! Groups Links
> >
> >
> >
> >
> >
> >
> >
>
> --
> NEU +++ DSL Komplett von GMX +++ http://www.gmx.net/de/go/dsl
> GMX DSL-Netzanschluss + Tarif zum supergstigen Komplett-Preis!