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 :
- Desolder XTAL OSC 36MHz CMOS DIL [X2]
- Desolder XTAL OSC 50MHz 14/0.3 DIL [X6]
- Buy a selection of 38-72MHz replacement Oscillators
- Buy 3 or 4 suitable IC heatsinks - fit to ARM3 [IC54], VIDC [IC9]
and MEMC [IC41]
- Try crystals in 38-60MHz range for [X2] until machine fails self-
test
- 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 ;
- Small Phillips cross-head screwdriver (to get case off!)
- Medium cross-head & flat screwdrivers (maybe)
- Soldering iron (10-20W)
- A solder-sucking tool
- A steady hand, and (optionally) a friend to help out.
Parts for this job ;
Parts suppliers are listed at the end of the document.
- 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.
- 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
- Heat conductive adhesive
Farnell [HTC10S] L1.45 for a 10ml syringe
- 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