Drobe :: The archives
About Drobe | Contact | RSS | Twitter | Tech docs | Downloads | BBC Micro

Iyonix software speed boost driver released

Published: 22nd Dec 2006, 15:36:38 | Permalink | Printable

Officer, I swear I was only doing 32MB/s

The Iyonix motherboard with its IOP321 processorSoftware running on the Castle Iyonix could benefit from a huge speed boost following the release of a new hardware acceleration driver. The module, developed by Rik Griffin, harnesses the application accelerator in the Intel XScale IOP321 processor to quickly transfer blocks of memory around the system.

The hardware acceleration can hit memory copying and filling speeds of up to 600MB/s, according to Rik. A quick test showed that non-accelerated programs on the Iyonix can manage 36MB/s, roughly half the speed of an ARM9-powered A9home under the same test. While the IOP321's accelerator is in action, the processor can also execute other code, although applications that support this are slightly more tricky to design and write.

Denbridge Marine engineer Rik said his AppAcc software allows programs to access the hardware acceleration when they need to throw data around the system. Software must be modified to take advantage of the acceleration, or use a SharedCLibrary module that can talk to AppAcc. It's understood not all applications will benefit, especially software that doesn't move large chunks of data around.

He said: "AppAcc is a module that provides an API to the Intel 80321's application accelerator hardware. This device can copy data from one part of main memory to another without going via the CPU.

"Obviously this module will only work on the Iyonix. Notwithstanding the overheads of setting up an operation, memory copy speeds of up to 600MB/s can be achieved. Also, as the operation is not performed by the CPU, the CPU can be executing other code while the memory operation continues in the background."

Rik admitted that his module could do with some more documentation, although he suggested programmers should read chapter six of the Intel 80321 IO Processor Developer's Manual to understand how the chip works. Example programs are included with the module along with its source code.

The AppAcc software uses David "Count Druckula" Ruck's TimerMod for benchmarking purposes, and the SysLog module for debugging. Developers can recompile the module to switch off these requirements.

Following the news, David said Graham Shaw's new replacement SharedCLibrary could use AppAcc to speed up certain memory-based functions.

He said: "It's definitely overdue that someone exploits this very useful feature of the XScale. My immediate thought is that this could be incorporated into the new open source SharedCLibrary to give a significant speed boost to large memcpy() and memset() operations."

Rough tests showed that the A9home can copy memory using memcpy() at a rate of 76MB/s using either UnixLib or RISC OS 4.42's SharedCLibrary. The Iyonix copies memory at a rate of 36MB/s using Unixlib's memcpy() or 32MB/s using Castle's SCL.


Download Rik's accelerator and send him feedback via rik (dot) griffin [at] ntlworld (dot) com.

Previous: Acorn PC card Linux files unearthed
Next: Merry Christmas


Viewing threaded comments | View comments unthreaded, listed by date | Skip to the end

Could this module be used by the DVD playing software to get it up to speed?

 is a RISC OS UserRevin Kevin on 22/12/06 3:54PM
[ Reply | Permalink | Report ]

where do we put this driver? nice to see the iyonix getting faster

 is a RISC OS Userccw on 22/12/06 4:59PM
[ Reply | Permalink | Report ]

Apologies if it's not entirely clear from the article, but applications have to 'opt-in' to benefit from the acceleration. That is, they have to be modified to use it, or use a SharedCLibrary that uses it. I'll tweak to the article to reinforce this.

 is a RISC OS Userdiomus on 22/12/06 5:11PM
[ Reply | Permalink | Report ]

I wonder if the new version of GutenPrint (5.0) will benefit from this? It would be nice to get A4 photos printed in less than half an hour.

 is a RISC OS Userfwibbler on 22/12/06 6:33PM
[ Reply | Permalink | Report ]

Robin Kevin: Please be realistic. This module accelerates copying large blocks of memory from one location to another. This is about the very last thing DVD playing software requires.

 is a RISC OS Userwuerthne on 22/12/06 8:12PM
[ Reply | Permalink | Report ]

fwibbler: It is highly unlikely that Gutenprint would benefit at all from such a specialized optimization. In fact, I can think of very few cases where this acceleration would make any significant difference to an application's speed. With one interesting exception though: Due to the way it was designed, ArtWorks does indeed copy huge amounts of memory around and this has become a problem when editing with large files. So, at least for ArtWorks it will make a lot of sense to use this module when running on an Iyonix.

 is a RISC OS Userwuerthne on 22/12/06 8:16PM
[ Reply | Permalink | Report ]

The Application Accelerator provides functions that help greatly in doing RAID. This is not surprising, given being the controller on a RAID card is what the IOP321 is designed to do. Running general purpose code is not what it is designed to do - as such, any possible applications for it will be quite narrow.

 is a RISC OS Userrjek on 22/12/06 8:23PM
[ Reply | Permalink | Report ]

rjek>"being the controller on a RAID card is what the IOP321 is designed to do. Running general purpose code is not what it is designed to do - as such, any possible applications for it will be quite narrow."

But the beauty of it is is it's a freebee. It's something built into the hardware, and if malloc() can be made take advantage of it, or even if some specific apps can use it well that's a good thing isn't it? Usually I am not usually surprised that once someone opens the door to making use of a speed enhancing feature people find ways to exploit it. And getting an x10->x20 memory transfer rate improvement for nothing I can happily accept without too much protestation.... ;-)

 is a RISC OS UserAMS on 22/12/06 9:04PM
[ Reply | Permalink | Report ]

You get an even better speed increase by not copying large chunks of memory in the first place.

 is a RISC OS Useradrianl on 22/12/06 9:15PM
[ Reply | Permalink | Report ]

Well yes, that's true ;-)

I meant in the context where you *had* to copy it - obviously if you can avoid it so much the better.

 is a RISC OS UserAMS on 22/12/06 9:18PM
[ Reply | Permalink | Report ]

AMS: I'm not sure why you think malloc() could be improved by this - I assume you mean memcpy() ? What I meant by my post is to clarify to some people that this won't suddenly make their computer go 5 times faster. It might make a small improvement to a handful of applications in very rare circumstances - it's relatively rare that you'd ever want to copy around large amounts of memory on desktop machines.

 is a RISC OS Userrjek on 22/12/06 9:47PM
[ Reply | Permalink | Report ]

rjek>memcpy(), yes sorry (sheepish grin).

Combination of tiredness and old age creeping up on me methinks.

 is a RISC OS UserAMS on 22/12/06 10:19PM
[ Reply | Permalink | Report ]

Please login before posting a comment. Use the form on the right to do so or create a free account.

Search the archives

Today's featured article

  • Wakefield 2006 show report
    All the thrills and spills from the weekend [Updated]
     90 comments, latest by bucksboy on 23/05/06 5:57PM. Published: 15 May 2006

  • Random article

  • ARM plays hand, reveals 1GHz plans
    More mobile, more powerful, more Intel rattling
     38 comments, latest by Col1 on 10/10/05 09:49AM. Published: 5 Oct 2005

  • Useful links

    News and media:

    Top developers:
    RISCOS LtdRISC OS OpenMW SoftwareR-CompAdvantage SixVirtualAcorn

    CJE MicrosAPDLCastlea4X-AmpleLiquid SiliconWebmonster


    RISCOS.org.ukRISCOS.orgRISCOS.infoFilebaseChris Why's Acorn/RISC OS collectionNetSurf

    Non-RISC OS:
    The RegisterThe InquirerApple InsiderBBC NewsSky NewsGoogle Newsxkcddiodesign

    © 1999-2009 The Drobe Team. Some rights reserved, click here for more information
    Powered by MiniDrobeCMS, based on J4U | Statistics
    "Don't expect Chris to acknowledge where Drobe's articles originally came from"
    Page generated in 0.1563 seconds.