Atomic I/O letters column #102Originally published 2009, in Atomic: Maximum Power Computing
Reprinted here February 3, 2010 Last modified 28-Apr-2012.
As accurately depicted in Stargate SG-1 and Superman: The Movie
Is it possible for a research lab to build a fully functional CPU that runs on light, rather than electricity, with logic gates made of fancyglass that transmit laser beams? Would they still have the 10GHz internal switching limit that silicon CPUs currently have?
You're talking about "photonic computing". Which exists, but is in its early stages.
One of the big early photonic efforts was to create all-optical networking hardware, so when you're moving slabs of data around via optic fibre you don't have to do it "electro-optically". That means converting your photonic data into electrons, then processing it in conventional computers, then converting it back into photons. Which is not fast.
We've got some all-optical network devices now, and their throughput is gigantic - processing speed is indeed a big advantage of photonics. But all-optical network hardware does very specialised jobs, like wavelength-division multiplexing and demultiplexing. That's where different wavelengths ("colours") of light, each carrying its own data stream, are combined and sent down one fibre, and then split up again at the other end so that colour-blind electro-optical hardware doesn't get confused.
These are very important technologies, but they're a long way from general computation.
We've had "photonic transistors" since 1989, and even photonic integrated circuits, but they're miserably simple compared with the electronic versions. Current desktop CPUs are pushing into billion-transistor territory; as I write this, an optical IC with a hundred components on it is a big one.
At the moment, optical chips have to include several different kinds of component just to generate signals and move them around. This means you can't make an optical IC with one single manufacturing process, like you can if you're making a silicon chip that contains little more than zillions of plain transistors.
There are several non-electronic ways to process optical signals. Micro-electro-mechanical, "MEMS" systems, for instance, which can bounce light off minuscule mirrors; that's how DLP projectors work. There's also thermo-optics, using steam bubbles in a fluid to influence the light, and liquid-crystal systems, which use variants of existing LCD technology to block, pass and polarise light. It's possible that something like this, which isn't electronic but isn't really "photonic" either, will be the closest we ever get to a real "optical computer".
(Analogue computers, by the way, weren't all electrical. An analogue computer is anything that uses continuously-changeable physical properties to represent data. So a slide rule, for instance, is an analogue computer. There have also been several "water computers", which process data via water flowing between different reservoirs at different rates. The most notable of those was the "MONIAC", back in 1949, which modelled the economy of the UK in a far more comprehensible way than any other information system of the time, and inspired a rather more dangerous magical version in Terry Pratchett's "Making Money". There were mechanical digital computers, too; adding machines, for instance.)
Some of my software refuses to run due to "not enough memory".
A bit of a Google led me to a thread suggesting the removal of one of the RAM modules because of some problem XP has with 3Gb. I gave it a go and sure enough everything works now.
Thing is, now I only have 2Gb, no triple-channel and a spare RAM stick that makes a pretty poor paperweight!
The software in question is good old "Ski Resort Tycoon". The error is a pop-up window:
I have since put the full 3Gb back in and sure enough, the problem is back.
Is there any way around this that doesn't involve installing Vista? (Do I need XP64, 4Gb of RAM...?)
"Out of memory" errors can be hard to figure out, but the error box was a dead giveaway this time.
It's not a Windows error, but one generated by Ski Resort Tycoon itself. (The wording is different from a Windows error, but the clincher is that the word "available" is misspelled. Say what you like about Microsoft, they do at least usually spell their errors correctly.)
So what this probably is, is a dumb free-memory checker that can't believe that anybody could have more than 2Gb of memory. It's like the installer errors I talk about in this old I/O column.
The first thing to try, if you haven't already, is going to the Properties of the game's program file, selecting the Compatibility tab, and choosing "Run this program in compatibility mode for:" some older flavour of Windows. Ski Resort Tycoon came out around the Win2000/WinXP change-over point, but it may be happier run in Win95 or Win98 mode. (If you were running Vista or Windows 7, you'd also have the option of running in WinXP compatibility mode.)
If that doesn't help - and it often doesn't - your next stop should be Virtual PC, a free package that lets you make a virtualised "client" PC within your own Windows "host" PC. The client PC can have pretty much whatever basic hardware specs you want, up to the actual specs of the computer it's running on.
Microsoft's site has for a while now had a mania for guiding you to the Windows 7 version of Virtual PC; you'll need an earlier version to be able to use anything but Windows 7 as the host operating system. That previous version is Virtual PC 2007 Service Pack 1; get the main package from Microsoft here and the service pack here.
The virtual PC works just like a real one. You can install any OS that you can install on a "real" PC, and then do anything with that OS that the host PC can handle. It'll be slower than running stuff directly on the host computer, so you probably don't want to try playing Crysis on the virtual PC. But you certainly can play older, less demanding games like Ski Resort Tycoon, on a virtual computer that you set up with only 1Gb of RAM, plus whatever other limitations may be necessary.
People also use virtual PCs to try out Linux, test possibly-malicious software, and so on. You can even play DOS games using Virtual PC, but DOSBox is a better solution for that.
(As Paul Thurrott explains here, PC-on-a-PC emulation also lets you take screenshots of things like OS installers and computers in the process of booting, which you can't otherwise do without pointing a camera at the screen.)
My desktop is in a rather drab old beige full-tower AOpen case with three case fans but otherwise drab exterior. So I was thinking I would make it better by adding stuff.
I should point out before I have my subscription cancelled for not being Atomic enough by even owning this statement in boredom that it is my third home PC, and is only doing print server, Squid and web server duties. My main PC is shiny black, which alone makes it faster in my opinion.
Anyway my idea seems so simple there must be something wrong with it, so your input would be appreciated. I planned to get two panel meters, like these, and wire them onto a four-pin "Molex" plug off the power supply. One across the red wire to the black wire, and the other meter across the yellow wire to the other black wire.
Will this work? And more importantly, will this cause the magic smoke to escape from my motherboard/power supply, sending them to silicon heaven? It would be a bonus too if they provide any useful information. Like if I want to add a sixth hard drive I need a new power supply.
Yep, it'll work fine. Some people put considerable work into contraptions like this, but just putting a meter across a PSU output will do.
Panel meters like the ones you're considering pretty much do what it says on the tin, and their large input impedance - 20 kiloohms, for the ones you're considering - means they add a trivial load to any power supply that isn't only meant to run a wristwatch. Connect one of these panel meters to a AA alkaline and the needle will slide down from a fresh 1.6 to a worn-out 0.8 volts over the course of, oh, I'd bet on between six and seven years.
Even quite large analogue voltmeters have very high input impedance. The bigger the meter the more power it'll need to move its needle against the force of the return spring, but a PC power supply won't notice even a huge voltmeter. So feel free to hunt around eBay for antique meters from power stations or battleships. Any DC meter with an appropriate voltage range should work.
And yes, analogue meters like this can provide useful diagnostic info. But unless you get meters with narrow voltage ranges, you're going to have to look pretty closely.
(Digital panel meters are easier to read, and have high input impedance too, but are of course less fun. They also need a separate power-supply wire, to feed them usually-5V at not very many milliamps.)
Current meters (ammeters), not that you asked, are a bit trickier. They're physically similar to voltmeters, with pretty high input impedance. But you have to put an ammeter in series with a load, to measure current through the circuit. If you put a high-impedance device in series with a load that has much lower impedance, the load won't work any more. (See also grabbing the terminals of a car battery, which will not electrocute you.)
So instead, you connect an ammeter in parallel with a carefully-calibrated extremely-low-value resistor called a "shunt", which is likely to have rather lower resistance per length than the wire in the rest of the circuit.
(The specs on the side of this shunt, plus Ohm's Law, tell us that it's a 0.0006-ohm resistor.)
Then you put the shunt in series with the load, so the ammeter's measuring the (very small) voltage across the shunt.
This is how the current range on a multimeter works. If you take the multimeter apart, you can often see the shunt, which may just be some thick copper wire with a calibrated notch in it.
Jaycar Electronics have a neat little PDF info sheet about this.