|
Prev: system level language: why all this fuss about
Next: 19th IEEE/IFIP Rapid System Prototyping Symposium
From: Antti on 7 Apr 2008 01:53 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 7 Apr 2008 16:50 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 7 Apr 2008 17:03 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 8 Apr 2008 04:25 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 6 May 2008 14:45
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 |