From: Antti on
Hi

I am trying to squeeze some read speed out from CF using systemACE and
xilinx standard libraries, but the performance is really really bad

read using xilfats 400KB/s
read using systemace low level (direct sector reads) 1MB/s

I have found NO information in any Xilinx documentation what speeds
can be excpected to be achived with systemACE

the 400KB/s looks like really miserable :(

i am using the CF card supplied by Xilinx, that is have not yet done
testbenching with other better CF cards, but i would like to know if
such testing has been done, and if there is hope of BIG speed
improvment when using some high-speed CF cards.

if i look at the spec of the CF card supplied by Xilinx it has 2ms
controller overhead (command to data ready delay) this would limit
access to maximum 500 sector reads commands sent to the CF, but we
need to add time for data transfer too, but this could explain the 1MB/
s measured speed

Antti
From: morphiend on
On Apr 7, 1:53 am, Antti <Antti.Luk...(a)googlemail.com> wrote:
> Hi
>
> I am trying to squeeze some read speed out from CF using systemACE and
> xilinx standard libraries, but the performance is really really bad
>
> read using xilfats 400KB/s
> read using systemace low level (direct sector reads) 1MB/s
>
> I have found NO information in any Xilinx documentation what speeds
> can be excpected to be achived with systemACE
>
> the 400KB/s looks like really miserable :(
>
> i am using the CF card supplied by Xilinx, that is have not yet done
> testbenching with other better CF cards, but i would like to know if
> such testing has been done, and if there is hope of BIG speed
> improvment when using some high-speed CF cards.
>
> if i look at the spec of the CF card supplied by Xilinx it has 2ms
> controller overhead (command to data ready delay) this would limit
> access to maximum 500 sector reads commands sent to the CF, but we
> need to add time for data transfer too, but this could explain the 1MB/
> s measured speed
>
> Antti

We've noticed the same thing working with the sysace fs. The problem
is the overhead from it is QUITE slow since its missing some essential
features like a real seek(). My guess is that we're also seeing
slowdown on the SystemACE controller in the FPGA. We're using the OPB-
based one from EDK 9.1. IIRC, the sysace_*() use extra locking, etc
for each operation that adds overhead to the bus. It probably also
depends on what you're doing with the sysace files. We're reading
ELF's from CF, and b/c there was no seek() there were tons of extra
read()'s just to get to the intended part of the ELF, for loading.

Currently, we're looking at using the dosfs, which I think you pointed
a link to a few years back.

-- Mike

From: Antti on
On 7 Apr., 22:50, morphiend <morphi...(a)gmail.com> wrote:
> On Apr 7, 1:53 am, Antti <Antti.Luk...(a)googlemail.com> wrote:
>
>
>
> > Hi
>
> > I am trying to squeeze some read speed out from CF using systemACE and
> > xilinx standard libraries, but the performance is really really bad
>
> > read using xilfats 400KB/s
> > read using systemace low level (direct sector reads) 1MB/s
>
> > I have found NO information in any Xilinx documentation what speeds
> > can be excpected to be achived with systemACE
>
> > the 400KB/s looks like really miserable :(
>
> > i am using the CF card supplied by Xilinx, that is have not yet done
> > testbenching with other better CF cards, but i would like to know if
> > such testing has been done, and if there is hope of BIG speed
> > improvment when using some high-speed CF cards.
>
> > if i look at the spec of the CF card supplied by Xilinx it has 2ms
> > controller overhead (command to data ready delay) this would limit
> > access to maximum 500 sector reads commands sent to the CF, but we
> > need to add time for data transfer too, but this could explain the 1MB/
> > s measured speed
>
> > Antti
>
> We've noticed the same thing working with the sysace fs. The problem
> is the overhead from it is QUITE slow since its missing some essential
> features like a real seek(). My guess is that we're also seeing
> slowdown on the SystemACE controller in the FPGA. We're using the OPB-
> based one from EDK 9.1. IIRC, the sysace_*() use extra locking, etc
> for each operation that adds overhead to the bus. It probably also
> depends on what you're doing with the sysace files. We're reading
> ELF's from CF, and b/c there was no seek() there were tons of extra
> read()'s just to get to the intended part of the ELF, for loading.
>
> Currently, we're looking at using the dosfs, which I think you pointed
> a link to a few years back.
>
> -- Mike

hm dont think there is any help, i just did buy "EXTREME III" CF card
with advertised min speed of 20MB/s, to my surprise it did not make
any speed improvement at all ! :(

the RAW sector read (no filesystem) is about 1MB/s, and i need 3MB/s
as bare minimum.

so using dosfs or any other library will not help as plain raw reads
are
way too slow.

Antti
From: Antti on
On 7 Apr., 22:50, morphiend <morphi...(a)gmail.com> wrote:
> On Apr 7, 1:53 am, Antti <Antti.Luk...(a)googlemail.com> wrote:
>
>
>
> > Hi
>
> > I am trying to squeeze some read speed out from CF using systemACE and
> > xilinx standard libraries, but the performance is really really bad
>
> > read using xilfats 400KB/s
> > read using systemace low level (direct sector reads) 1MB/s
>
> > I have found NO information in any Xilinx documentation what speeds
> > can be excpected to be achived with systemACE
>
> > the 400KB/s looks like really miserable :(
>
> > i am using the CF card supplied by Xilinx, that is have not yet done
> > testbenching with other better CF cards, but i would like to know if
> > such testing has been done, and if there is hope of BIG speed
> > improvment when using some high-speed CF cards.
>
> > if i look at the spec of the CF card supplied by Xilinx it has 2ms
> > controller overhead (command to data ready delay) this would limit
> > access to maximum 500 sector reads commands sent to the CF, but we
> > need to add time for data transfer too, but this could explain the 1MB/
> > s measured speed
>
> > Antti
>
> We've noticed the same thing working with the sysace fs. The problem
> is the overhead from it is QUITE slow since its missing some essential
> features like a real seek(). My guess is that we're also seeing
> slowdown on the SystemACE controller in the FPGA. We're using the OPB-
> based one from EDK 9.1. IIRC, the sysace_*() use extra locking, etc
> for each operation that adds overhead to the bus. It probably also
> depends on what you're doing with the sysace files. We're reading
> ELF's from CF, and b/c there was no seek() there were tons of extra
> read()'s just to get to the intended part of the ELF, for loading.
>
> Currently, we're looking at using the dosfs, which I think you pointed
> a link to a few years back.
>
> -- Mike

Hi Mike

I tried my luck on Xilinx forums and there an Xilinx employee
suggested enableing burst mode in xps_sysace!
In EDK 9.2 and 10.1 the burst mode is hardcoded to 0 (disabled) and
explained as being 0 in the datasheet on page 9.

So while the Xilinx employee answer looked promising... HAA I invented
a new word !

XILOTEN

everyone is free to guess the meaning

Antti
PS Xilinx sorry, I have been saying that Xilinx systemACE is NOT
RECOMMENDED for new designs for years, now I just got another reason
why this is so.
From: UETIAN on
Hi:
I found your queries every where about SystemAce so I decided to
seek your help. I am also stuck in SystemAce and want to simply read
and write files from it. The code was working on EDK 8.1 reference
design but when I make a separate project no file is created in
SystemAce. I also added XILFATFS library in .mss and there were no
errors. I will be thankful to any help in this regard.
Thanks again