Overclocking the A5000.
by Nick Smith
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:
- PARTS & TOOLS
- HARDWARE MODIFICATIONS
- SCREWING & SOLDERING
- SOFTWARE CHANGES
- MORE SPEED?
- SPEED RESULTS
- USEFUL SOFTWARE
- FINAL COMMENTS
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 & 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:
This gives a good speed improvement - possibly increasing the speed to over 18 MIPS.
- 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
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;
Parts for this job;
- 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 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 !
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: email@example.com (Owen Smith)
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 yourwarranty and it may make your machine unreliable or break it completely. Theabove is provided as information to the curious only.
The views expressed are my own and are not necessarily those of Acorn."
Everything Owen points out is perfectly true - it WILL invalidate yourwarranty. I started hacking up my machine innards just before the warrantyran out...
So there are 2 main clocks we can alter - the ARM3 speed (which has its own50MHz crystal, divide by 2 to give 25MHz), and the memory system whichshares a 36MHz crystal with the video system. The I/O system is driven by a24MHz 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;
If you increase the crystal sufficiently, then Mode 0 (and a few other lowmemory modes) will not display correctly on the monitor. Why this is is notclear, but it has been suggested that it is an obscure bug with VIDC.
- 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.
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 tothe 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);
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;
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 slidout. 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.
- 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.
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: firstname.lastname@example.org (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.
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
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;
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:
begin 644 Startup
MV )0 "\ P !P D 1P %-T87)T=7 4W1A
M,2XP,2 H,S @3V-T(#$Y.3$I(&)Y($)$0@!3=&%R='5P #, a
M !D "I3=&%R='5P('!R979E;G1S('1H92!2:7-C3W,@,R!S=&%Ra
M='5P('-CD ()SD RXP, !H& *#C!#"@XQX N\ ((SDa
H L"@X0" O>@.\*#A? QXP 0H ,.\*#A $ MZ0# G.0 @+WH$0 [^\ a
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.
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.
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:email@example.com> 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 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 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;
Some example modes (with on board video RAM) would be 1024x768 at 16bpp (65,000 colours) or 800x600 at 24bpp (24 million colours).
- 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)
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
ogic 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!
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.
A310-----------Original 1MB A310, RISC OS 2.00---------4.76----22506---5988
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.82---------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
A5000s---------Tests with RAM MHz/ARM Mhz/Video|NoVideo
A5000i---------A5000, RO3.1, 32MHz ARM3, 16.6MHz RAM---18.01---108663--25252
Some useful software to have when doing speed trials is (from the Newcastle info-server);
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.
- 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
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!
Nick Smith, Rm.226, Churchill College, Cambridge XOX Email: firstname.lastname@example.org
Intel? Watashi o warawasenaide kudasi ... OXO or: email@example.com
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.
From: firstname.lastname@example.org (Rogers Huw)
Subject: 30MHz A5000 - How to do it
Date: 18 Mar 93 03:24:22 GMT
Well yesterday I wandered into Akihabara and picked up a 60MHz crystal for 800 yen (4.50 pounds), deciding to replace the 50MHz ARM3 crystal with the 60MHz one. (The ARM3 is clocked via a divide-by-2 IC.) You need a standard 4 pin crystal.
BTW Originally all ARM3s were rated at 30MHz. Due to VLSI deciding rather arbitrarily that the fabrication yield at 30MHz was a few % too low (they were chucking too much silicon back into the process), they downrated it to 25MHz. Fact is they probably would of made more money by leaving the ARM3's MIPS rating higher and accepting the lower yield - however that's another story.
Thus the first few A5000s were shipped with 60MHz crystals, and 90+% of ARM3s will work without any problem at 30MHz.
Well the actual replacement operation is not simple. For those interested in doing this, here is what I did. For newbies who aren't used to hacking the internals of their valuable consumer durables, I've included various precautions which all the _real_ _hackers_ (tm out there can ignore... ;-) Note you need (obviously) screwdrivers, pliers, wire clippers (maybe a thin bladed scissors - see later), soldering iron, and solder.
First get a large sheet of kitchen foil, put it over your work surface, solder some green earth mains cable to it, and attach the other end to the earth pin from a UK mains plug. Plug this earth pin into the mains earth. Alternatively use a croc clip on the cable to attach it to a large steel desk/radiator. This is to earth everything (including you) and prevent static electricity damage.
Place the machine to one side of this cover. While you work on the machine, regularly touch the foil. The last thing you want is static damage. Ensure you have enough space for three machines on the foil. Put the machine at one side of the space with the rear facing inwards.
First you have to completely disassemble the machine. I.e. remove the case, any expansion cards, and backplane - keep them all on the foil.
Then unplug all cables leading to the motherboard. I.e. the PSU cables, and the LEDs. Then unscrew the motherboard's connector plane from the rear of the machine and slide the whole board out the back. If you have a 4/8Mb upgrade you will need to remove the blanking plate above the motherboard's connectors in order to get it through the gap.
Place the motherboard somewhere well lit and easy to access. If you have a memory upgrade fitted (especially if you have 8Mb), then place a support under the PCB where the upgrade connectors are. When refitting the upgrade it can require some force to insert the connectors and you don't want to flex the PCB unnecessarily - alternatively you could remove the spacers from the underside of the motherboard.
I have the Atomwide 8Mb upgrade and this plugs into a MEMC socket as well as the standard connector. Be aware that unplugging the Atomwide memory upgrade involves violating your warranty.
The crystal you need to remove is on the bottom edge of the motherboard's PCB and is marked 50.000 MHz. Unfortunately it is soldered flush with the PCB and it is very difficult to get at the legs with wire clippers. The solution I used was to use a pair of thin bladed scissors and a pair of pliers - slide the blades under the xtal to either side of each leg. Then apply the pliers to the portions of the blades not under the component to squeeze them together and cut the leg. You need to do this for all four legs.
Once removed, place your new 60MHz crystal where the old one was. Do not clip the legs! It makes it much easier to solder if it is standing well clear of the PCB. Even tall legs will not cause problems with the memory upgrade (which sits quite some distance above the PCB). The orientation of the crystal is important. The dot on the crystal has to be at the same end as the indentation on the PCB drawing.
Don't try to place the legs directly on top of the existing solder spots. Place the component so it is standing balanced on all four legs, with all the legs adjoining the solder spots.
Now solder the legs to the PCB. This should be done quickly as excessive heat may damage adjoining components. The solder should flow nicely from the legs to the solder spots.
Once the new crystal is installed, reassemble the machine to the minimum state necessary to boot it successfully. I.e. reassemble memory upgrade, backplane, and PSU cables. Then perform a test boot. If all is ok (run a few programs), power down and reassemble the rest. If the machine doesn't work any more, check your soldering and the orientation of the crystal. If it still doesn't work, go back to 50 MHz. If it still doesn't work - panic 'cause you screwed up somewhere along the line. In case you didn't take note when disassembling, the PSU cables are color coded as follows: Y - 12V, R - 5V, B - 0V.
When fully reassembled, enjoy your 20% increase in CPU performance!
From: email@example.com (Rogers Huw)
Subject: 30MHz A5000 - How to do it - Supplement
Date: 18 Mar 93 08:16:31 GMT
Once the new crystal is installed, reassemble the machine to the minimum state necessary to boot it successfully. I.e. reassemble memory upgrade, backplane, and PSU cables. Then perform a test boot. If all is ok (run a few programs), power down and reassemble the rest. If the machine doesn't work any more, check your soldering and the orientation of the crystal. If it still doesn't work, go back to 50 MHz. If it still doesn't work - panic 'cause you screwed up somewhere along the line.
It just occurs to me that there is another possibility here. Try spraying all connectors you have detached with contact cleaner and then reinserting them. Liberal spraying of contact cleaner is, in any case, always a good idea and can never do any harm. It's worth ensuring that the memory upgrade's connectors are thoroughly clean, especially if you had to touch them. Sweat and grime can be very effective current inhibitors.
From: firstname.lastname@example.org (PeterClaus Gutmann)
Subject: Re: Turbo A5000 posting (long)
Date: 20 Mar 93 09:22:41 GMT
Does anyone actually know what speed specifications the chips are actually designed to run at, ie. by how much is running them at 12MHz pushing them past their designed limits?
(This is actually more relevant to the previous posting about speeding up your system by changing the clock crystal)
There is a reason why manufacturers don't run the machines at this speed, and that is that the hardware simply isn't meant to run at that speed. It's not just a case of "Hmm, it runs at 40MHz instead of 33, OK let's call it a '40 instead of '33" - the system may run fine at that speed for a while, but it's being pushed beyond the manufacturers ratings. There is a reason for these ratings - you may be increasing the thermal stress on sections of the chip, for example, thus lowering the chip life (this was a major problem for Intel when they designed the 66MHz Pentium(c)(tm)(r) - it worked fine at lower speeds but localised thermal stress at 66Mhz would fry the silicon). Be very careful when you increase the speed like this....
BTW the way many n-MHz CPU's are made is that the manufacturer builds a whole batch of, say, 66MHz CPU's. The ones which fail at 66MHz are tested at 50 and sold as such if possible, otherwise they're tested at 33, then at 25, and if they fail that they're encased in plastic and presented to employees as a memento. So by running your n-MHz system at n+m MHz you're running it in a state which the manufacturer has implicitly branded as being unstable....
Nick Smith (1993)