Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
20 years ago

dev board CF interface speed

doing some speed tests on my altera 1c20 deb board. Ive done the following.

mount a CF thats been formatted FAT and has a 1MiB file on it called speed

cat speed > /dev/null and time the results.

1:43 seconds for the blazing rate of 10KiB/s.

Why Is this so slow? Because of the ide interface in the demo kernel? I know its not the CF which can do much faster on USB adapters.

I've got custom code (no OS) on a NIOS1 that reads a CF at several MiB/s and thats just using PIO. Dosen't this setup use DMA?

Would the opencores IDE interface or the one in Public IP do any better?

IDE access this slow basically makes uClinux worthless for our product. Which sucks because I _really_ want to use it so I don't have to write VFAT and USB driver code.

6 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    smithbone,

    What is the max. sustained read transfer rate specified by the Compact Flash manufacturer?

    I realized that this is probably not your bottleneck, but once your initial problem is repaired it would good to know what rates are theoretically possible given the CF itself is the limiting factor.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Sustained of 5 MiB/second.

    It can burst up to 16MiB/s but I've not tested that.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Hi smithbone,

    Sounds like your CF is plenty fast enough. We have a Nios II CF interface working on an Altera DSP Development Kit board. On Monday, I will try the replicate the same type of test you mentioned in your orginal post and let you know the results.

    cat speed > /dev/null and time the results.

    Also, based on the calculations made in your orginal post, I'm assuming that "MiB" = mebibyte = 2^20 = 1024 ^2 = 1,048,576 bytes? Is that correct?

    I wasn't familiar with the "MiB" acronym until I looked it up. I find it interesting that the "mebi" prefix was created to avoid the confusion between what the "mega" prefix meant (1,000,000, 1,048,5467, or even 1,024,000 bytes). You learn something new everyday.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    <div class='quotetop'>QUOTE </div>

    --- Quote Start ---

    Also, based on the calculations made in your orginal post, I&#39;m assuming that "MiB" = mebibyte = 2^20 = 1024 ^2 = 1,048,576 bytes? Is that correct?[/b]

    --- Quote End ---

    Correct. I rounded the result of the calculation. I created the file with:

    dd if=/dev/zero of=speed bs=1M count=1

    But any large size file will do. Just see if its fast or slow. Are you using the stock IDE CF interface provided in the example code or a different one?
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Are you using the stock IDE CF interface provided in the example code or a different one?

    I haven&#39;t had a chance to run that test yet. Hopefully, I will find some time tomorrow.

    I will be using the stock CF interface that is available from the "Downloads -> Tested IP" section of this forum with the 16 MB Sandisk CF card that is included with the DSP Development Kit.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    <div class='quotetop'>QUOTE </div>

    --- Quote Start ---

    I will be using the stock CF interface that is available from the "Downloads -> Tested IP" section of this forum with the 16 MB Sandisk CF card that is included with the DSP Development Kit.[/b]

    --- Quote End ---

    Is that the same one that is in the kits/nios2/examples/verilog/<board>/linux?

    Its not clear from the docs if the dev kit contains that version of the IDE interface.