Last time I explored five physical systems. This time I want to implement those five systems as information systems, by which I mean numeric versions of those five systems. The requirement is that everything has to be done with numbers and simple manipulations of numbers.
Of course, to be useful, some parts of the system need to interact with the physical world, so, in terms of their primary information, these systems convert physical inputs into numbers and convert numbers into physical outputs.
Our goal is for the numeric systems to fully replace the physical systems.
The term “information system” is often used for numeric systems but the term can include any system that processes information.
The tin can phones and sound system described last time process information but are not numeric systems. A plumb bob processes information about gravity. Plants process information about the location of the sun.
So when we talk about “information systems” we need to be clear what we mean — how broad is the umbrella?
There is the specific meaning of “information system” where the system’s primary information is numeric (except for inputs and outputs). That kind of “information system” is essentially a conventional digital computer.
Our goal involves that kind of information system.
Regarding the terms “simulate” and “emulate” as used here…
An “emulation” is a complete functional replacement of the original. It accomplishes all the same things. A Windows™ emulation running on a Macintosh™ should be exactly like Windows™.
A “simulation” has more latitude in fidelity and need not provide all the effects of the original. We simulate weather in order to predict it, but those simulations provide none of the physical effects.
Generally, an emulation is a replacement, while a simulation is a description.
(Virtual reality systems are currently simulations, but they may someday be emulations!)
The first system was tin can phones. Their function is to pass verbal messages between two people, Alice and Bob, who are not in verbal range.
To emulate this, we could give Alice and Bob laser pointers they can shine at each other. (Neither string nor line-of-sight laser links are particularly great solutions. Photons do work well, but not at optical frequencies!)
If Alice wants to send a message to Bob, she encodes it into numbers. Then she uses her laser, turning it on and off, to send those numbers to Bob, who decodes them into the original message.
That’s kind of a low-tech solution. We can make it better.
Suppose Alice has a microphone hooked to a system that converts her voice to numbers (analog-to-digital). That system directly controls the laser. On Bob’s end, the receiver converts those numbers to an audio signal (digital-to-analog) for a speaker.
(Bob, likewise, would have a microphone and sender, and Alice would have a receiver and speaker.)
Depending on the quality of the conversion between numbers and audio, this system has the potential to have much higher quality than the tin cans.
In fact, the high-tech solution is like calling on a cell phones. The low-tech solution is like sending a text message.
However, in either case, if we look at the information (the numbers) there’s nothing about it that directly represents what Alice or Bob said (or wrote). In one case, a stream of numbers stands for characters; in the other, numbers represent a sound wave. The numbers have no necessary correlation with the original message.
The numbers are arbitrary. Any number can stand for any character. Many different number protocols can represent sound.
The second system involved sound recording. The function is to record and play sound — also to manipulate the sound in useful ways.
This just extends the high-tech solution for Alice and Bob. Here we want a much more sophisticated and capable system with full attention to sound fidelity. This system also records sound, so we need various ways to store the numbers.
The previous solution was cell phones. Here the solution is the modern sound recording industry in all its digital glory.
The crucial point is that those numbers have an arbitrary connection to the original sound. Without knowing the numeric protocol, looking at the numbers tells us nothing about the sound.
At this point, notice two things: Firstly, both numeric systems can fully replace the original physical system. They can accomplish everything the physical systems did. Secondly, given high precision conversion the numeric systems can be more accurate than the physical systems.
The third system was a simple switch and light bulb. Its function is to allow current to flow through the bulb (to provide light).
This one is interesting in that we can simulate it fairly easily, but that cannot accomplish what the physical system does — the simulation won’t emit light (or heat up or short circuit and blow a fuse).
It’s also interesting in that we can simulate the abstract function (which is easy) or we can simulate the physical system at some level of detail (which is harder).
Simulating the abstract function here is trivial:
define Switch as Boolean value FALSE. define Light as Integer value 0. function Click-Switch is if Switch then set Light to 0. set Switch to FALSE. else set Light to FULL. set Switch to TRUE. end if end function
Simulating the physics of the actual switch, wires, and bulb, is a much more involved proposition. (Which I won’t even touch on here.)
Either way, the code is actually a sequence of numbers (like Alice’s low-tech message). Those numbers comprise a set of instructions for an execution engine implemented by a computer.
Unlike the last two systems, here we cannot do everything the original system did. In fact, we can’t do the most important part of that system — we can’t emit light!
All we can do here is describe (or simulate) the behavior of the circuit.
We can do that as a simple abstraction of function or any deeper level of organization all the way down to quantum, depending on our needs.
The fourth system, the car engine, also involves physical effects we can’t accomplish by manipulating numbers.
(On the other hand, we can’t crash the car.)
We can, as with the light circuit, simulate the causality of physical engine or we can simulate its functionality without regard to the actual physics of the engine.
An accurate physical simulation can show engineers how an engine design might perform. At least in theory — it depends on the precision, accuracy, and correctness, of the simulation.
A functional simulation would be useful during initial development of the CPU to control the engine. The developer only needs a laptop!
Either way, the stream of numbers representing code instructions, the stream(s) of data processed by those instructions, and the engine executing the code, are all arbitrary and abstract.
When those numbers are interpreted correctly, they represent the physical values the virtual system would have had if it were physical.
Despite what some argue, I think computation is generally recognizable as computation. But what the computation means depends on an external intent and map.
The fifth system, the computer, is easy! There’s no trick to using a computer to emulate another computer.
It’s done all the time, especially now with cloud services. In fact, all computers have a layers of virtual machine running on top of the hardware machine.
For example, a BIOS (Basic I/O System) layer abstracts a particular motherboard to a generic virtual board. On that, a low-level Operating System core implements an abstract virtual machine that is the foundation for high-level O/S functions. The core handles the file system and other system devices. The high-level functions present the O/S to the user (like Windows or Unix or macOS).
So most computers already have at least three layers of virtualization as soon as they’re up and running, let alone before they actually execute any code for the user. (There’s usually at least one more inside the CPU chip itself.)
Since a computer is already the kind of numeric information system that’s our goal here, we can emulate its function exactly with a different numeric information system.
As with light circuits and car engines, we can also simulate the physical computer, although that’s a much bigger challenge. (Note that this would be a simulation.) As with the engines, such a simulation explores physical effects — how hot the chips get, how well the fans cool.
But as with sound systems, we can emulate the information flow and logic — in this case with total precision since we’re using numbers to represent numbers.
In terms of our goal of replacing all five systems, we’re 3-2, so at least emulations win the series even if they lost light circuit and car engine.
The three emulations do as well or better than the original systems, and numeric systems have huge advantages in terms of features, as well as data storage and transmission.
But numeric simulations can’t emulate everything, so light circuits and car engines remain forever physical.
The difference here between systems we can emulate and those we can only simulate has to do with how distinct the primary information is. In particular, can it be meaningfully separated from the physical system.
In the two sound systems, the primary information is entirely distinct — it’s the sound. In the computer, the primary information (the bit groups) is also entirely distinct. In all three cases, it’s easy to extract that information and realize it in a different system.
The light circuit and the car engine don’t have such distinct information.
In the previous post, I said their information was, respectively, whether the light was on or off and the rotations and torque. (To be honest, that was a bit of a stretch, and I wondered if anyone would call me on it.)
It is difficult, certainly with the engine, to clearly identify the primary information, let alone its path. There’s a lot of information we can point to, but nothing as strong as the audio signal or computer bits.
This is why audio systems and computers are clearly Information Systems, but a light circuit and a car engine seem much less so (even though, as I mentioned, they do have plenty of information in them and can fall under the broader umbrella).
Emulation or simulation, in all cases, when we look at the primary information in these systems, what we see is numbers. Without a map, they bear no obvious relationship to the physical signal — they are entirely arbitrary.
As I said in the opening, these systems convert physical quantities to numbers and numbers into physical quantities. They do a transformation of information using an arbitrary map.
This is a key difference between the physical systems described last time and the numeric systems described this time. Physical systems don’t convert magnitudes to numbers or do numeric operations on numbers.
Stay emulated, my friends!