Home Products Documents links News Events Tech Info

Report on speeding up an Acorn A5000 computer

The following document was posted to comp.sys.acorn on Wed 17 March 1993

TITLE - Report on speeding up an Acorn A5000 computer
AUTHORS - Nick Smith <nas20@cus.cam.ac.uk> & contributors
REVISION - 0.07
DATE - 17-Mar-93
DISTRIBUTION - Electronic only - UseNet news
COPYRIGHT - (c) Nick Smith, 1993

SUMMARY

This is the initial version of my 'Guide to turbo A5000s', a detailed description on how to get an extra 5 MIPS speed out of a standard A5000 for peanuts (well ...) This document will eventually published in Archive magazine (I hope) but for now should be distributed in electronic form only - I want to get some feedback & correct some technical errors before paper distribution.

It also contains a whole load of general RISCOS configuration advice, and possible hardware add-ons (speed related), which could be useful to owners of other Acorn computers.

This document consists of ;

INTRODUCTION

With a 25MHz ARM3 and 12MHz RAM, the A5000 is a powerful computer (clocking about 13.5 MIPS - Million Instructions Per Second), but it is quite possible to increase this speed substantially without vast amounts of arcane knowledge &apm; hardware skill. Before I describe some simple hardware & software modifications, you can have the obligatory warning :

Certain of the (hardware) modifications described below are potentially dangerous to your machine, and they will a) certainly INVALIDATE YOUR MACHINE WARRANTY, and b) cause EXPENSIVE DAMAGE if not performed correctly. I except no responsibility for any damage or losses caused. This document is presented in good faith, and is subject to change without notice [read: full of mistakes]

I honestly don't advise performing any of the hardware modifications unless you have used a soldering iron on a computer PCB before.

Below I go into a fair amount of detail for those readers who (like me ;-) are not real hardware techies. For the dedicated hardware buff, here is the concise description of the hardware mods :

  1. Desolder XTAL OSC 36MHz CMOS DIL [X2]
  2. Desolder XTAL OSC 50MHz 14/0.3 DIL [X6]
  3. Buy a selection of 38-72MHz replacement Oscillators
  4. Buy 3 or 4 suitable IC heatsinks - fit to ARM3 [IC54], VIDC [IC9] and MEMC [IC41]
  5. Try crystals in 38-60MHz range for [X2] until machine fails self- test
  6. Try crystals in 52-72MHz range for [X6] until data aborts/address exceptions start occurring
This gives a good speed improvement - possibly increasing the speed to over 18 MIPS.

A good place for more detail on the A5000 internals is the 'A5000 Technical Reference Manual', which contains A0 size diagrams of the circuit board, lists all the parts, and discusses in depth practically everything hardware-wise about the A5000. At L65 it is expensive though.

PARTS & TOOLS

Tools that you will need for this job are few ;

  1. Small Phillips cross-head screwdriver (to get case off!)
  2. Medium cross-head & flat screwdrivers (maybe)
  3. Soldering iron (10-20W)
  4. A solder-sucking tool
  5. A steady hand, and (optionally) a friend to help out.

Parts for this job ;

Parts suppliers are listed at the end of the document.

  1. 8 IC 'ferrules'
    I can't find these in the Farnell catalogue, but 2 of a 14 way 0.3" row spacing DIL socket should do as well. These are available from Farnell - [179-913] are 11p each.
  2. 3 or 4 IC Heatsinks (4 if you want/have an FPA chip)
    A good passive heatsink is available from Farnell Electronics [175-006] at L1.82 each
  3. Heat conductive adhesive
    Farnell [HTC10S] L1.45 for a 10ml syringe
  4. Range of replacement Can Oscillators
    Advanced Crystal Technology supply standard and custom speed oscillators. You need 14 pin DIL, 0.3" spacing Crystal oscillators in the range 38-60MHz to increase the memory speed, and crystals in the 52-72MHz range for the ARM3 processor speed. ACT supply 40,42,45,47,48,50,54,56,57.14,60,64,66,72 MHz crystals at L3.00 each, and just about any other speed you could want at L12.00 (made to order)
    The exact number of crystals you buy is up to you - see below for advice on which ones to get, and remember that you will end up using only 2 !

HARDWARE MODIFICATIONS

The way different parts of the A5000 are controlled is quite involved. Below, Owen Smith (formally of Acorn Computers Ltd, now at SJ Research Ltd) details the timing system :

Article 152 of comp.sys.acorn.tech:
From: osmith@acorn.co.uk (Owen Smith)
Newsgroups: comp.sys.acorn.tech
Subject: Re: Hi res modes

"On the A540 and all newer machines, the IO system runs at 8MHz and the memory runs at 12MHz. There are some synchronisation state machines to handle communications between the two, so you can vary the memory speed without varying the IO speed. The state machines just accommodate for the difference. You can run the memory at basically whatever speed you like within reason (providing it doesn't keel over and die) because the IO system is still running at 8MHz and the synchronisation logic adapts. Of course turning the memory clock up runs the RAM chips out of spec (and possibly some of the other components) so don't be surprised if your machine becomes unreliable.

"The synchronisation logic is in the big bank of PALs on the A540 and issue 1 A5000s, it's in the IOEB chip in issue 2 A5000s and the A4, and it's in the ARM250 (along with the rest of the IOEB) on the A3010/A3020/A4000.

"Where the IO and Memory clocks are derived from is a different issue. On the A5000 the Memory clock happens to share the 36MHz VIDC clock and the IO clock happens to share the 24MHz VIDC clock (both divided by three). On the A3010/A3020/A4000 all the clocks are derived from one master 72 MHz oscillator (except the 25.175 MHz VGA VIDC clock) so you can't change the memory speed without changing the IO speed. On the A540 I think the 12 MHz memory clock comes from a 72MHz oscillator, which is separate to the three VIDC clocks (but I may be wrong here). On the A4 everything comes from one master clock, because there isn't enough board space for anything else.

"Fiddling around with these clocks is not advisable. It will invalidate your warranty and it may make your machine unreliable or break it completely. The above is provided as information to the curious only.

Owen.

The views expressed are my own and are not necessarily those of Acorn."

Everything Owen points out is perfectly true - it WILL invalidate your warranty. I started hacking up my machine innards just before the warranty ran out ...

So there are 2 main clocks we can alter - the ARM3 speed (which has its own 50MHz crystal, divide by 2 to give 25MHz), and the memory system which shares a 36MHz crystal with the video system. The I/O system is driven by a 24MHz crystal (also used by the video) and this shouldn't be altered !

Changing the 36MHz crystal for a faster one will have a number of effects ;

  • Speeds up the machine overall (faster memory)
  • Increases the refresh rate of screen modes using the 36MHz crystal (less flicker on display)
  • Can mess up the timing of the rare (modern) game which uses a 36MHz mode, so the game would go slightly faster.

If you increase the crystal sufficiently, then Mode 0 (and a few other low memory modes) will not display correctly on the monitor. Why this is is not clear, but it has been suggested that it is an obscure bug with VIDC.

It is easy for me fix this because I have a PCATS graphics enhancer card, fitted with 24, 25.175, 32, 36, 40, 42, 45, & 47MHz crystals, and so I can software-select a PCATS crystal to override the altered crystal on the motherboard. If you have a PCATS card, then there is code inside my 'IconSwitch' module which provides this facility.

A solution to this problem for non-PCATS owners would be to redefine bad system modes (0, 1, 4, 5 & 6) with a mode designer application to use the 25.175MHz crystal.

In addition to redefining system modes, it is possible to software-switch the current system crystal by writing directly to the Video Control Latch. This is documented in the A5000 Technical Reference manual, and involves writing to address &3350048. The lower 4 bits of that byte hold the following data ;

        bit 0   VC0    } Clock speed, 0=24, 1=25.175, 2=36, 3=reserved
        bit 1   VC1    }
        bit 2   SP0      Horizontal sync polarity (0 +ve, 1 -ve)
        bit 3   SP1      Vertical sync polarity (0 +ve, 1 -ve)

A5000 owners with an issue 2 PCB (which has an IOEB chip) can read from this address to get the existing state, while issue 1 PCB owners can only write to this address. A simple *MemoryA command can be used to write to the address and switch the system clock.

A useful option for non-PCATS owners is to replace the 25.175MHz oscillator as well (used for VGA compatible modes) with a 36MHz oscillator (you can use the one you removed for the memory system). To actually make use of this oscillator, a modified version of Owen Smith's VIDCClock module (see USEFUL SOFTWARE) is required to select the (replaced) 25.175MHz oscillator whenever a 36MHz mode is used. Note that issue 2 PCB A5000s have a 2 pin crystal providing 25.175MHz (some have 25MHz) rather than a can oscillator. These can be desoldered and replaced with a 36MHz crystal, but must not be socketed (ie, they must be soldered straight on) because of the signal losses involved in a socket.

The A5000 (at least mine - an issue 1 PCB) has 70ns RAMs fitted on the main board. However, most RAM upgrade cards use cheaper 80ns RAMs, and when I increased my memory system speed from 12MHz to 16.6MHz I found that the 2MB RAM card that I had from Craddock Computer Systems (now bankrupt) could not keep up. Because the chips were surface mounted there was little chance of me replacing them with faster chips, so I sold my existing card and got in touch with Simtec Electronics, who were only too happy to talk about high speed RAM cards. NOTE that I have no information about RAM card products from Simtec - this was purely a custom job that they did for me, and you should get in touch with them with your own requirements.

I initially contacted IFEL Ltd about high speed RAM cards because of their higher profile (I had never heard of SimTec until someone on the net mentioned them in connection with combined ARM3/FPA upgrades). I must say that they were not particularly friendly, or indeed helpful - suggesting that 70 or 80ns would be 'quite suitable for my needs' when it was obviously not what I wanted. They do, however, sell A5000 RAM upgrade cards without RAM chips fitted.

For various reasons to do with supplies of particular sizes of chip, I ended up with a vertically mounting RAM upgrade card from SimTec which actually contained 4MB of 60ns RAM chips ! By setting links appropriately, the card by-passes the 2MB of 70ns RAM on the motherboard. This cost very little more than a standard card and I am delighted with the results. Of course, if your 70ns RAMs can perform to the speed you want, it would be more economical to get a 2MB upgrade rather than a full 4MB of chips. Recently, Simtec have been in touch with me, and apparently they use high quality 70ns RAMs on their standard 2MB upgrade cards which can do 16.66MHz.

I don't know how fast this card can go - there are a number of possible 'bottlenecks' - not just the raw speed of the RAM chips. In particular, the RAM card socket apparently gives an extra 5ns or so delay, and then there is the MEMC, and a whole host of other components. I don't have any suitable crystals over 16.66MHz to try in the memory at the moment. I have heard reports of standard 70ns RAM in an A5000 running at over 20MHz !

Here is an important warning on increasing the memory speed (from a contributor who wishes to remain anonymous) ;

To: nas20@uk.ac.cam.phx
Subject: Re: ARM3 speeds on a 12MHz memory system

"One warning I would give: back up your hard disc first, especially if you're messing with the RAM speed. You may find that the rest of your machine runs fine, but your IDE or SCSI interface doesn't correctly latch the data from the rest of the machine, and trashes the data on your disc. This happened to me when I was tweaking my 540; I lost the free space map, boot block, and root directory - as well as other bits - which made it kind of hard to reconstruct the disc. Fortunately I'd had the sense to make a backup...

>Do you mean it could happen randomly with the machine running at a higher
>speed, or is it due to the ARM3 falling over when it over heats ?

"It's caused by raising the speed of the interface between the computer's memory and disc interface to the stage where the disc interface can no longer correctly latch the data it is being fed. The result is that it writes garbage to the disc. As I said in my earlier reply, if this corrupts vital parts of your disc's structure such as the free space map, boot block or root directory it means big trouble.

"If you're running your machine outside spec something's got to give first. In the case of my machine it was this interface. I was running my memory at 16MHz, and had a machine that was seemingly perfect until I wrote to my SCSI disc. The problem was consistent, not intermittent, and had nothing to do with heat, or with the ARM3 falling over. It was just that the SCSI interface couldn't cope with the speed at which it was receiving data from my otherwise perfectly functional souped-up machine.

"The moral is, if you increase the memory speed of your machine, watch out for disc corruption. In my case, bringing it down to 14MHz solved the problem.

"If you want to try it good luck; but if it goes wrong, you've been warned. And there's plenty of things that can go wrong other than the disc interface packing in..."

Now, in fact I have an Acorn SCSI card in use daily with an IBM MD3125A 128MB Magneto-Optical drive (fitted internally !) and have had none of these nasty corruption problems - it may be that running at exactly 16MHz can cause memory/IO synchronisation problems , or perhaps I have a particularly good SCSI card ... all these things are pretty much a 'Black Art' and you should be careful.

SCREWING & SOLDERING

To the actual job ...

First take whatever static precautions you feel sensible - just touching the machine casing (when plugged in) should discharge any static, but you may want to use anti-static wrist straps, etc.

Unplug all cables attached to the base unit, and clear yourself a level working area. Take off the case, and remove any podules & blanking plates from the machine.

Removing the podule backplane (at the front of the machine, holding the harddrive and the floppy drive) is probably the trickiest part of the disassembly, so go slowly. First, a single retaining screw must be undone. This is located right near the front of the machine, to the right of the harddrive (looking down from the front & top).

Next, unplug the cables leading to the harddrive and the floppy drive. The IDC data cables (the wide, grey ones) can be 'wiggled out' by gripping the sides of the black connectors and gently moving from side to side whilst pulling out steadily. Don't yank on the cable itself ! Make a note of which way around the cable went in before letting go - they have a thin red stripe on one edge to help. One of the most frequent mistakes that friends and I have made in the past is putting cables in the wrong way around!

Before the backplane can be removed, one of the power cables to the main PCB must be pulled out (or at least in helps) There are a whole bunch of thick cables running out of the power supply - you want the red cable nearest to the backplane. It just pops off the top of the PCB by pulling gently upwards.

The backplane is now lifted up - make sure you place your hands on the metalwork, and not on the hard or floppy drives. It may take a fair bit of force, and it can be helpful to have that friend hold the rest of the machine. Once removed, but it somewhere safe - you won't be doing any work on that part of the machine.

Have a good look at the main PCB now, and do a quick sketch - identify the important chips ;

  • ARM3 CPU - square chip near the front of the machine. It has a crystal oscillator marked '50MHz' near it.

  • VIDC video controller - to the rear of the machine and on the left hand side.

  • MEMC memory controller - to the right of the machine, near the backplane socket.

  • Bank of 3 crystal oscillators - 24, 25.175 and 36MHz - near the centre of the PCB.

Also, make a note of every connector that leads to the PCB, its colour and where it connects - now remove all the leads so that the PCB can be slid out. There should be the 6 power leads from the power supply, the power/HD leds and the speaker line. There are also quite a few screws that need undoing, and then the whole PCB slides out of the back of the machine.

Now for the desoldering - hold the PCB vertically, and desolder the appropriate oscillators from the PCB. This is best done by have one person on the soldering iron, and the other gently pulling the oscillator out of the hole as the solder is heated up. The oscillators to be removed would be the 50MHz, 36MHz and the 25.175MHz (if you want to socket it for trying different video speeds for instance). ** Note the orientation of the crystals before you remove them. **

Make sure that the holes are free of solder by using the solder sucker: one person heats the hole with the soldering iron, whilst the other gets ready to suck out the solder from the other side.

Next - fitting the ferrules or crystal sockets. This should be relatively easy, just solder them in as any other component - just be very careful where the solder goes !

Once you have successfully soldered in the ferrules/sockets, then replace the old oscillators (if you managed to avoid burning their legs off!), and rebuild the machine. It is rather annoying that the podule backplane/ hard drive get in the way of the ARM3 oscillator, so leave that off - the machine will still run. Also, don't attach any expansion cards (RAM or otherwise) - just put enough of the machine together so that you can load speed trial software off the floppy drive (eg, !ArmSI - see USEFUL SOFTWARE)

Do a quick check of the leads to make sure everything seems connected correctly, and you are ready to switch on. Hopefully everything will work fine as before - the computer will probably complain about the lack of a hard drive, etc. but you should be able to go into the desktop and run software off the floppy drive.

If things DON'T work, then the first thing you should look for is the power-on test failing. Below is a brief summary of what can happen (taken from the comp.sys.acorn FAQ list, maintained by Philip Banks).

Subject: Comp.Sys.Acorn FAQ List Posting (Automatic)
Date: Mon, 1 Mar 1993 00:00:21 +1300
From: banksie@khantazi.welly.gen.nz (Philip R. Banks)

"The purple screen at power on indicates that the self-test has begun. A brief ROM, RAM, VIDC and IOC test is performed and then the screen colour changes to blue and a full memory test is performed, along with a second test of the VIDC and IOC. When the screen returns to purple, the machine is testing for an ARM3. At the end of this sequence the screen colour is set to green (for pass) or red (for fail). If the tests have all passed then the machine starts to boot and the RISC OS 3 welcome screen is displayed.

"If any test fails, the screen will remain red and the disc drive light will blink a fault code. A short flash is used to indicate a binary '0' and a long flash indicates a binary '1'. The bits are grouped into eight nibbles (blocks of four bits) with the most significant bit first.

"The lowest seven bits are a status word. The meaning of each bit is given below in hex :-

00000001   Self-test due to power on
00000002   Self-test due to interface hardware
00000004   Self-test due to test link
00000008   Long memory test performed
00000010   ARM 3 fitted
00000020   Long memory test disabled
00000040   PC-style IO world detected

"Bits 8-31 indicate the fault code and are described below. Not all the bits are used.

00000200   ROM failed checksum test
00000400   MEMC CAM mapping failed
00000800   MEMC protection failed
00004000   VIDC Virq (video interrupt) timing failed
00008000   VIDC Sirq (sound interrupt) timing failed
00020000   RAM control line failure
00040000   Long RAM test failure

If nothing happens to the screen or drive light, then switch off, and check leads again. If nothing seems to fix your problem, then consult with an expert (not me!)

Assuming everything has gone well, then you can now experiment at different speeds. The way I did it, was to purchase a range of standard oscillators, and starting from the standard system speed, increase in 2MHz jumps until a self-test failure occurred. You may like to take speed measurements at each stage using something like !ArmSI. As practical guide, you should be able to run your RAM at 16-20Mhz (x3 = 48-60MHz oscillator) and the ARM3 at 30-36MHz (60-72MHz oscillator).

As far as failure modes go - it is generally fairly obvious when you are running the chips too fast. With memory, if you over-do it, the machine will fail its selftest when you switch it on (flashing floppy drive light, or nothing at all). Switch off *immediately* - certainly within 15 secs of power on. When you are right on the edge of the possible performance, then things may start to overheat - you can check with some sort of thermometer probe - good multimeters can measure temperatures, or you could use adhesive temperature indicator strips. An expensive solution is to use 'Spectratherm' fluid such as Farnell [175-644] at L23 for a bottle of the fluid which can be painted onto a surface and changes colour with temperature.

The failure modes of an ARM3 chip are more tricky - it will fail to startup if going too fast of course, but right on the edge it will give rise to 'random' address exceptions or data aborts. I found that with no heatsink fitted, I got an unexplained (non-fatal) crash once an hour at 30MHz, and every 5 minutes or so at 32MHz. Fitting the heatsink meant I could run at 32MHz with no crashes. It you are worried about damaging the ARM3 by running it too fast - a) check the temperature over a couple of hours, making it sure it isn't overheating, and b) run a couple of MHz *below* what you think it runs reliably at. For me, that would mean using the 30MHz crystal rather than the 32MHz one - just to be on the safe side.

SOFTWARE CHANGES

Tuning the most speed out a system takes quite a lot of effort - it depends greatly on the system setup in question, and what it is used for.

System startup - so who hates the length of time it takes to get from switch on to the desktop? Well, there are a number of things that can be done - it helps if you have a hard drive of course.

A new setting in the CMOS RAM lets you disable some of the more lengthy tests performed at system startup (the 'self test'). It is best to leave these enabled until you have a completely stable system - if you have dodgy RAM you want to know about it!

Bit 7 (0-7) of byte &BC is 'Hardware test disable' and when set to 1 will disable long tests at power up. Because this CMOS byte has other uses, it is important to set it correctly with an OS_Byte call. eg,

   REM Toggle state of Hardware test disable bit in CMOS

   REM Read byte
   SYS "OS_Byte",161,&BC TO ,,byte%
   REM EOR byte with mask for bit 7
   byte% = byte% EOR 1<<7
   REM Write byte back again
   SYS "OS_Byte",162,&BC,byte%
   END

Another source of annoyance is the Acorn 'RISC OS 3.1' screen. Apart from getting heartily sick of seeing it day after day for months, it takes a second or two to display - especially if you don't have a font cache setup. During starting up, the desktop broadcasts a service call message;

Service_DesktopWelcome (&7C) On exit, R1=0 to claim and stop startup screen from appearing. It should be claimed if you want to replace the startup screen, or to prevent it from appearing.

A small PD module called 'Startup' written by Brian Brunswick claims this service call. Below is a UUencoded copy of the module, which can be decoding using '!UUDecode' or '!SparkFS', eg.

--
table
 !"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
begin 644 Startup
MV    )0   "\    P    !P    D    1P   %-T87)T=7  4W1AD ()SD   RXP,  !H& *#C!#"@XQX  N\ ((SDa
H L"@X0" O>@.\*#A?  QXP 0H ,.\*#A $ MZ0# G.0 @+WH$0  [^\ a
 a
end
--

If (for some perverse reason!) you like the Acorn startup screen, then configuring a 32Kb font cache, plus pre-caching the fonts will give a useful speed up. RISC OS 3 has *SaveFontCache and *LoadFontCache commands, which can be used to save your most commonly used fonts (for instance the ones used in the TaskManager 'Info' dialogue box and startup screen) into a single file. You load this in your hard disc !Boot file before entering the desktop to speed things up a little.

Opening directories - directories with many applications takes ages to open - even with a fast hard drive. To speed things up, you can stop the applications from filer booting (and hence from loading their !Sprites files) by holding down the CTRL key before entering the directory. Also, correctly partitioning your applications into a logical hierarchy - Apps1, Apps2, Music, Tools, etc. is always recommended. You shouldn't really have more than 20 apps in a single directory.

Miscellaneous - all the usual speedups - configuring a bigger ADFS/IDE/ SCSI buffers & dircache setting, using a lower res mode with fewer colours, etc. all speed things up. Many magazines have carried articles on how to go about all this.

ROM access speed - if you have the RAM to spare, then *RMFaster'ing important modules such as WindowManager and BASIC are worth while because they run faster in RAM than from ROM.

The MEMC chip in the A5000 has 4 ROM access speed settings. When switched on, the operating system picks one (rather pessimistically) based on memory speed (eg, 12MHz). You can override the ROM access speed to run things faster using the following program;

  REM Speed up ROM access

  REM speed%=3 is the fastest, 0 the slowest. NB speed%=3 is likely
  REM to cause a machine crash with RISC OS 3 ROMs.
  speed%=2
  SYS "OS_UpdateMEMC",speed%<<6,&C0
  END

When you are trying this, make sure you have dismounted any discs, etc. and have no unsaved work. Running ROMs too fast will crash the machine, but not do any harm - just reboot.

MORE SPEED?

If the speed achieved is not sufficient to satisfy (!) there are of course always additional hacks - some rather expensive. First, the processor:

The A5000 has a 25MHz ARM3 CPU in a plastic quad flat pack (PQFP). As has already been mentioned, VLSI Tech. do not speed select their chips, and so it is always possible to get the chips to go faster than specced. For more speed, the passive heatsink described above could be replaced with some active device that gives better cooling.

An example active 'heat pump' are thermoelectric modules (as sold by Farnell [105-941]) that work on the Peltier effect to pump heat from a hot surface (CPU) to a cold surface (machine casing ?) These require a power supply which could be taken from the Arc's internal power, and some heat conductive glue such as epoxy bonding or heatsink compound. These are very effective, but start at L10 and require a fair current (0.5 - 1A).

Another solution is to mount another fan inside the A5000, blowing across the CPU to aid in cooling (perhaps in conjunction with the passive heatsink) A 40mm low voltage DC fan (suitable for driving from Arc power supply) such as Farnell [151-073] is L15.95

For experimentation, a freezing aerosol (Ozone friendly of course!) which cools components to below -50C is useful to see how fast a chip can be driven is sufficiently cool enough. WARNING: I don't think running chips *way* over their spec is a particularly smart move - especially as the ARM3 on the A5000 in surface mount, and so cannot be simply replaced if it is damaged. VLSI give the absolute maximum temperature rating of the ARM3 to be: -10C to 80C running, and -65C to 150C storage.

Matthias Sattler <@uni-kl.de:m_sattle@poker.informatik.uni-kl.de> in Article 10 of comp.sys.acorn.tech, says:

"I used 60 Mhz VIDC frequency in my A5000 and it worked quite well with 1024x768x16x60Hz. And even the normal A5000 monitor did it. But I have one BIG problem, the VIDC is too slow for that. Meaning I have to cool it all the time using cooling-spray ("Kaeltespray" in german but I think you'll understand what I mean) because the silicon based microchips are fastest at about 0C."

He also says that cooling the VIDC chip increased performance, but the ARM3 could not be speeded-up even with cooling-spray. I found that a simple passive heatsink *did* allow a worthwhile increase in ARM3 clock speed.

One of the problems with the A5000 ARM3 is that it is in a plastic package - bad for heat conduction. Apparently, there were an early run of some 400 ARM3s which were in ceramic packaging and specced to run at 35MHz ! Unfortunately, Acorn never used these in production machines.

Paul Gee in Article 1850 of comp.sys.acorn, says:

"The 36Mhz ARM 3's are being produced by Ground Control Electronics. The story goes that Acorn once ordered a batch of 35Mhz ARM 3's from VLSI and then changed their mind. Hence roughly 400 35Mhz ARMs were made. Ground Control have got their hands on about 200 of them and are running them at 36Mhz."

Robert Voisey <r_voisey@csd.uwe.ac.uk> in Article 1879 of comp.sys.acorn, replies:

"Ground Control strongly implied that the chips would 'probably' run much faster than their rated 36Mhz. Speeds of up to 40 or even 42Mhz were suggested.."

Speaking to the engineer at Simtec Electronics, he said it was entirely possible to desolder the existing ARM3 in an A5000, and socket one of the ceramic ARM3s in its place. Of course, this costs money - probably over L100 (with the cost of a ceramic ARM3 on top of that), and you have to find a source of a ceramic chip too - Ground Control may well have sold out by the time you read this.

Another possibility is to replace the ARM3 with another chip entirely - namely the ARM600 from ARM Ltd. Atomwide/Aleph One announced in a 1992 issue of BBC Acorn User magazine that they intended to produce a plug in card with an ARM600 chip on it - to replace an existing ARM3 or ARM2 CPU. This would give a good speed increase for ARM2 owners (with 8Mhz memory) because the ARM600 contains a write-buffer to effectively increase memory speeds, but is unlikely to give major performance gains over an ARM3. There are also significant incompatibility problems with the ARM600 and RISC OS 2.00/3.10. It will not be a cheap or simple upgrade to produce (IMHO).

A more promising hardware upgrade for A5000 owners is the much talked-about FPA (Floating Point Accelerator) chip upgrade.

John O'Malley <J.Herbert1@lut.ac.uk> in Article 2104 of comp.sys.acorn, says:

"ARM Ltd made an official statement to the Electronics Times (or so the article said). It made no promises for silicon but said that it would be available 'early in 1993'.

They also said that the chips would cost about #40 going down to around #30 for thousand orders. This means that for A5000 and A540 owners, they should be quite cheap as all that it needed is the chip + a software patch. This is also true about owners of the new ARM3 + FPA socket upgrades."

The A5000 has a socket waiting for the FPA chip, and so all is required is the chip itself, and some support software (which will no doubt be available from Acorn in some way) So a price of L50 - L100 for the upgrade could be imagined - giving fantastic performance increases in floating point operations, from about 80 KFLOPS (Thousand floating point operations per second) to over 3 MFLOPS (Million FLOPS) ! Of course, many applications will not benefit from such an upgrade since they use almost no FP ops.

High bandwidth screen modes are quite a drain on even a 16MHz memory A5000. At the 1992 BAU Show, a number of companies announced their graphics enhancer cards which speeded up and enhanced the A5000's graphics performance. As well as providing more colours, higher resolutions and a decent palette, the important thing that some cards offered was on board video RAM.

For instance, the Computer Concepts 'ColourCard' contains 512K of dual ported video RAM directly mapped into the Acorn video memory. An on-board Inmos video controller outputs video from the card at 60Hz or 70Hz - giving a flicker free display, even if the 'real' refresh rate by MEMC is only 10Hz. In this way very high resolution modes can be used with hardly any drain on the A5000 data bus (like running software in Mode 0) - giving impressive speed increases.

These cards tend to cost at least L200.

On the far horizon (at the time of writing), are upgrade boards which use the new ARM Ltd VIDC20 chip. An upgrade using one of these chips to its full use would far outperform any of the existing video cards for the Archimedes at a realistic price. Some of the VIDC20's specs ;

  • Full compatibility with VIDC1 video & sound modes
  • 1,2,4,8,16 & 32 bits/pixel modes (24 millions colours)
  • hires mono modes at 400MHz pixel rates
  • colour modes at 80MHz, 80MBytes/s bandwidth
  • CD compatible IIS serial interface (eg, 16-bit stereo sound at 44KHz)

Some example modes (with on board video RAM) would be 1024x768 at 16bpp (65,000 colours) or 800x600 at 24bpp (24 million colours).

Also, since Acorn are looking at integrated these chips in 'future products' there is going to be some real support in future operating systems.

If you remember, in an earlier section, Owen Smith mentioned some 'synchronisation state machines' to deal with the memory and IO running at different speeds. It has been suggested by a couple of people that the logic used is not the most efficient possible in the case of memory at 16MHz and IO at 8MHz. If the synchronisation logic could be reprogrammed then a large increase in IO performance (SCSI disc speeds for instance ?) could be obtained. This would only be possible in issue 1 A5000s and A540s where the logic is contained in PALs rather than the custom IOEB chip used in later machines. This particular speedup is highly speculative and I have heard of no one who has tried it !

SPEED RESULTS

Below are some brief speed results, obtained using my !ArmSI application, for more detailed results, have a look in the 'Examples' directory supplied with the application.

Don't read *too* much into the figures below - I haven't specified whether there was any video DMA, or the ROM speed, etc. Look at the files themselves.

File           Description                             MIPS    FLOPS   Dhrys
============================================================================
A310           Original 1MB A310, RISC OS 2.00         4.76    22506   5988
A440/1_std     A440/1, RO3.10                          4.83    16463   4500
A440/1_287     A440/1, RO3.10, RMFaster FPE 2.87       4.83    22228   4496
A440/1_280     A440/1, RO3.10, RMLoad FPE 2.80         4.83    24427   4500
A3020          4MB A3020, RISC OS 3.10                 7.23    34724   8390
A500           A500, RO3.1, 20MHz ARM3, 12MHz RAM      11.44   69177   16556
A4             A4 portable, RO3.1                      12.85   77303   18181
A5000          A5000, RO3.1                            13.73   80446   19084      
A5000s         Tests with RAM MHz/ARM Mhz/Video|NoVideo
============================================================================
A5000i         A5000, RO3.1, 32MHz ARM3, 16.6MHz RAM   18.01   108663  25252

USEFUL SOFTWARE

Some useful software to have when doing speed trials is (from the Newcastle info-server) ;

30/Apr/91     2 memc_roms           speedup rom access 
03/Mar/92     9 vidclock            software control of turbo VIDC hardware 
22/Jan/92    38 si                  arc speed indexer 
19/May/92    20 startup             multitasking boot-up, v0.04 
27/Nov/92   140 armsi               ARM speed indexer v3.31H
15/Feb/93    14 iconswitch          low/high res icon utility v 1.00 

I would particularly recommend !ArmSI (because I wrote most of it!) as a new and much enhanced version of !SI which gives you lots of helpful speed indices for processor, video, floating point, BASIC, etc.

FINAL COMMENTS

Don't be too put off by all the warnings and horror stories above !!!! You have to be careful, yes, but if you really feel you have to have that extra speed ... I have run my machine happily (touch wood) for about five months now without any ugly problems occurring. Matthias Sattler has also run his machine out of spec for over 10 months with no problems.

I would greatly appreciate any comments/corrections/improvements that you can add. In particular, if you carry out the mods, some scanned photos or drawfile diagrams would be great, as I want to put together a nice Impression document version of this.

Oh - and GOOD LUCK !

SUPPLIERS

Farnell Electronic Components Ltd
Canal Road, Leeds, Yorkshire. LS12 2TU
Tel 0532 636311 Fax 0532 633411

Farnell require you to set up an account before ordering (can be done at the same time as ordering I believe - contact them for more details)

Advanced Crystal Technology
Unit 9 Kingfisher Court, Hambridge Road, Newbury, Berkshire. RG14 5SJ
Tel 0635 528520 Fax 0635 528443

ACT have a minimum order of L25.

Simtec Electronics Ltd
Avondale Drive, Tarleton, Lancs. PR4 6AX
Tel 0772 812863 Fax 0772 816426

Norwich Computer Services
96a Vauxhall Street, Norwich. NR2 2SD
Tel 0603 766592 Fax 0603 764011

NCS generally require you to subscribe to their magazine before selling you anything! Well worth the money of course - you recover the cost of the subs in discounted prices, and the magazine itself is pretty good !

Computer Concepts Ltd
Gaddesden Place, Hemel Hempstead, Herts. HP2 6EX
Tel 0442 63933 Fax 0442 231632

Ground Control Electronics Ltd
Unit 7, Kingfisher Court, Hambridge Road, Newbury, Berkshire. RG14 5SJ
Tel 0635 524008 Fax 0635 528115

IFEL Ltd
34 Culver Road, Saltash, Cornwall. PL12 4DR
Tel 0752 847286 Fax 0752 840029

-
Nick Smith, Rm.226, Churchill College, Cambridge XOX Email: nas20@cus.cam.ac.uk
Intel? Watashi o warawasenaide kudasi ...        OXO    or: nas20@uk.ac.cam.phx
-

DISLCAIMER: All views expressed are my own (or those quoted) and not
necessarily those of any organisations that we work for or have worked for
in the past. I have no direct connection with any of the companies mentioned
in this document.

poppy@poppyfields.net