Computer to Brain, Brain to Computer

Embed from Getty Images

In the dawn of computing computers were essentially rooms full of racks and racks of circuits connected by mazes of cables. The circuits were formed out of electronic valves, relays, solenoids and other electronic and magnetic components, with not a single transistor to be seen, as semiconductors had not then been invented.

To reprogram such computers one often needed a soldering iron and an intensive knowledge of every part of the computer and how the parts interacted. From all accounts such machines were fickle, sometimes working sometimes not.

English: "U.S. Army Photo", from M. ...
English: “U.S. Army Photo”, from M. Weik, “The ENIAC Story” A technician changes a tube. Caption reads “Replacing a bad tube meant checking among ENIAC’s 19,000 possibilities.” Center: Possibly John Holberton (Photo credit: Wikipedia)

Since they were not housed in sterile environments or encased in a metal or plastic shell, foreign bodies could and did find their way into them and cause them to fail. Hence the concept of the computer bug. Computer pioneer Grace Hopper reported a real bug (actually a moth) in a computer and it made a great joke, but from the context of the report the term already existed.

Embed from Getty Images

As we know computer technology rapidly improved, and computers rapidly shrank, became more reliable, and bugs mostly retreated to the software. I don’t know what the architecture of the early room fillers was, but the architecture of most computers these days, even tablets and phones, is based on a single architecture.

This architecture is based on buses, and there is often only one. A bus is like a data highway, and data is placed on this highway and read off it by various other computer circuits such as the CPU (of which more later). To ensure that data is placed on the bus when safe, every circuit in the computer references a single system clock.

English: A Chennai MTC Volvo bus in front of t...
English: A Chennai MTC Volvo bus in front of the Royapettah clock tower, Chennai, India. (Photo credit: Wikipedia)

The bus acts much like the pass in a restaurant. Orders are placed on it, and data is also placed on it, much like orders are placed through the pass and meals come the other way in a restaurant. Unlike the restaurant’s pass however, there is no clear distinction between orders and data and the bus doesn’t have two sides corresponding to the kitchen and the front of house in a restaurant.

Attached to the bus are the other computer components. As a minimum, there is a CPU, and there is memory. The CPU is the bit that performs the calculations, or the data moves, or whatever. It is important to realise that the CPU itself has no memory of what has been done, and what must be done in the future. It doesn’t know what data is to be worked on either.

The ZX81 PCB. The circuits are (from left to r...
The ZX81 PCB. The circuits are (from left to right) ULA, Z80 CPU, 8 Kb ROM and two memory curcuits making up 1 Kb RAM. (Photo credit: Wikipedia)

All that stuff is held in the memory, data and program. Memory is mostly changeable, and can contain data and program. There is no distinction in memory between the two.

The CPU looks on the bus for what is to be done next. Suppose the instruction is to load data from the bus to a register. A register is a temporary storage area in the CPU. The CPU does this and then looks for the next instruction which might be to load more data from the bus to another register, and then it might get an instruction to add the two registers and place the result in a third register. Finally it gets told to place the results from the third register onto the bus.

English: Simplified diagram of a computer syst...
English: Simplified diagram of a computer system implemented with a single system bus. This modular organization was popular in the 1970s and 1980s. (Photo credit: Wikipedia)

I was not entirely correct when I said that there was only one bus in a computer. Other chips have interfaces on the main bus, but have interfaces on other buses too. An example would be the video chip, which has to interface to both the main bus and the display unit. Another example is the keyboard. A computer is not much use without input and output!

The architecture that I’ve described is incorporated in almost all devices that have some “intelligence”. Your washing machine almost certainly has it, and as I said above so do your tablets and phones. Your intelligent TV probably does, and even your stove/range may do. These days we are surrounded by this technology.

The microcontroller on the right of this USB f...
The microcontroller on the right of this USB flash drive is controlled with embedded firmware. (Photo credit: Wikipedia)

The above is pretty much accurate, though I may have glossed and elided some facts. Although the technology has advanced tremendously over the years, the underlying architecture is still based around the bus concept, with a single clock synchronizing operations.

Within the computer chips themselves, the clock is of prime importance as it ensures that data is in the right place at the right time. Internally a computer chip is a bit like a train set, in that strings of digits flow through the chip, passing through gates which merge and split the bits of the train to perform the calculations. All possible tracks within the chip have be traversable within a clock cycle.

English: Chips & Technologies Super 386
English: Chips & Technologies Super 386 (Photo credit: Wikipedia)

Clockless chips may some day address the on-chip restrictions, though the article I cite was from 2001. I’m more interested in the off-chip restrictions, the ones that spring from the necessity to synchronise the use of the bus. This pretty much defines how computers work and limit their speed.

One possibility is to ditch the bus concept and replace it with a network concept little bits of computing power could be distributed throughout the computer and could either be signalled with the data and the instructions to process the data, or maybe the computing could be distributed to many computational units and the result could then be assessed and the majority taken as the “right” answer. The instructions could be dispensed with if the computational unit only does one task.

Network Computing Devices NCD-88k X terminal, ...
Network Computing Devices NCD-88k X terminal, back ports. (Photo credit: Wikipedia)

The computational units themselves could be ephemeral too, being formed and unformed as required. This would lead to the “program” and “computation” being distributed across the device as well as the data. Data would be ephemeral too, fading away over time, being reinforced if necessary by reading and writing, much like early computer memory was refresh on each cycle of the clock.

What would such a computer look like? Well, I’d imagine that it would look something like the mass of grey matter between your ears. Data would exist in the device as an echo, much like our memories do, and processing would be distributed through the device much like our brains seem to work. Like the brain it is likely that such a computing device would be grown, and likely some structures would be mostly dedicated to certain tasks, as in the brain.

One big advantage that I see for such “devices” is that it should be very easy to interface them to the brain, as they would work on similar principles. It does mean though that we would be unlikely to be able to download one of these devices to a conventional computer, just as the contents of a brain could never be downloaded to a conventional computer.

On the other hand, the contents of a brain could conceivable be downloaded to a device like I have tried to describe.

Computers and cells

English: "U.S. Army Photo", from M. ...
English: “U.S. Army Photo”, from M. Weik, “The ENIAC Story” A technician changes a tube. Caption reads “Replacing a bad tube meant checking among ENIAC’s 19,000 possibilities.” Center: Possibly John Holberton (Photo credit: Wikipedia)

(Oops! One day late this week!)

A computer has some similarities to living organisms. Both produce something from, well, not very much. A computer program has data input from various sources, and produces output to various sinks or targets. A living organism takes in nutrients from various sources, and produces branches, leaves, fur, bones, blood and other organs.

Of course there are differences. A computer is much, much simpler than a living being, even single celled organism. A computer in general only has a relatively small number of parts, but the “parts” in a living organism number in the billions. And of course, living organisms reproduce, but that may change in the foreseeable future.

English: The heterolobosean protozoa species A...
English: The heterolobosean protozoa species Acrasis rosea Olive & Stoian. Photographed at the Biology of Fungi Lab, UC Berkeley, California. (Photo credit: Wikipedia)

Some animals are sentient, but I’m not going to discuss that here. Maybe in another post.

A computer has hardware, software and operates on data. The data is either part of the software or read from buffers in the hardware. It stores its calculations in “memory”, which is special hardware with particularly fast access speeds.

English: 1GB SO-DIMM DDR2 memory module
English: 1GB SO-DIMM DDR2 memory module (Photo credit: Wikipedia)

The computer produces results by placing data into buffers in the hardware. This results in things happening in the real world, such as printing a letter or number on paper, or more frequently these days, on some sort of screen. It may also do many other things, such as control the flow of water by moving a valve or other control mechanism.

Computers communicate with other computers, by placing data in an output piece of hardware. The hardware is connected to a distant piece hardware of the same sort which puts the data into a buffer accessible to another computer. This computer may be a specialised computer that merely passes on the data. Such computers are called routers (or modems, or firewalls).

Railway network in Wrocław
Railway network in Wrocław (Photo credit: Wikipedia)

Computers, specialised only in their usage, are found in washing machines, cars, televisions, and we all these days have multi-functional computers in our pockets, our cellphones. It would be hard to find a piece of electronic equipments these days that doesn’t have some sort of computer embedded in it. Very few of these computers are completely isolated – they chatter to one another all the times by various mechanisms.

Internet (Photo credit: Wikipedia)

(Incidentally, I came across a bizarre example of connectivity of things the other day – a wifi teddy bear. Say you are sitting in the lounge and you want to send a message to your child who is in her bedroom. You pick up your tablet and send a message to a “cloud” web site. This sends a message to your child’s tablet which is in her bedroom with her. The teddy bear, which is connected to the child’s tablet by wifi, growls the message to the child. No doubt scaring her out of her wits.)

So in the current technological world everything is connected to everything else. Much like all the cells in a living being are connected to all the other cells in the organism, directly or indirectly. So how far can we take this analogy, where the organism is the network and the individual cells as the computers. (Caveat emptor – I am not a biology expert, so don’t take what I might say from here on as gospel).

Embed from Getty Images

A computer consists of hardware, software, and operates on data. A cell is sort of squishy, so “hardware” can only be a relative term, but a cell does have a relatively small number of organelles, such as mitochondria. The nucleus, which contains most of the genetic material, acts as the control centre of the cell, much as the CPU is the control centre of a computer.

The function of the nucleus is to maintain the integrity of these genes and to control the activities of the cell by regulating gene expression—the nucleus is, therefore, the control center of the cell.

In the cell, the genetic material is in some sense the software of the cell. It contains all the necessary information to create the cell itself or more interestingly the information needed to cause the cell to split into two identical daughter cells. This information is generally encoded in the DNA of the chromosomes.

Information flows between DNA, RNA and protein...
Information flows between DNA, RNA and protein. DNA -> protein is another special transfer, but it is not found in nature. (Photo credit: Wikipedia)

The cell also contains, within the nucleus, an organelle called the nucleolus. This organelle (which is part of the nucleus organelle) seems from my reading to mostly relate to RNA, while the rest of the nucleus mostly relates to DNA, very roughly. RNA and DNA perform a complex dance called protein synthesis in organelles called ribosomes.

Cells produce chemicals, which can be consider analogous to computer outputs and receive chemicals from other cells, and so cells communicate, in a sense, with each other. Since all cells are equal genetically, it follows that a cell’s type, liver, skin, lung or brain neurone is determined by factors in its environment.

The model of an artificial neuron as the activ...
The model of an artificial neuron as the activation function of the linear combination of weighted inputs (Photo credit: Wikipedia)

This only loosely true as each cells is the daughter of another cell and inherits its type, but in the early days of an organism’s life, before organs are formed cells do differentiate. Just as when computers were new, they were all very similar, keyboard, monitor, and beige case.

As the computer-sphere evolved, special types of computer evolved, such as routers and modems, and firewalls. Not to mention phones. Computers became specialised. Similarly cells become differentiated, some going on to become liver cells for example, and others brain cells (neurones).

English: Front side of a Juniper SRX210 servic...
English: Front side of a Juniper SRX210 service gateway Deutsch: Vorderseite eines Juniper SRX210 Service Gateways (Photo credit: Wikipedia)

When an organism is young and a cell divides both cells are the same type, but when the organism is very young there is no differentiation. The DNA in the cell contains the necessary information to determine the cell type and tissues and organs are created in the more complex animals.

This process obviously can’t be random, otherwise cells of the various tissue types would be all mixed up. It seems to me, maybe naively, that while the “program” for creating cells is in the DNA, some factors in the environment convey such information as how old the organism is, and what type of cell needs to be created.

an example of a Program
an example of a Program (Photo credit: Wikipedia)

We know from investigations into fractals that a simple equation can result in the creation of an image that looks very much like a tree or grasses and that small changes to the equation can lead to different tree or grass shapes. It is tempting to think that a similar process takes place in organisms – a general rule is given which results in the right sort of cells being produced in the right places.

The problem with the fractal idea is that it only creates simple shapes. An arm with fingers, skin and so on is beyond the capabilities of a fractal process so far as I know. Fractals don’t stop. Again, so far as I know there’s no way to iteratively create a tree structures with leaves.

Embed from Getty Images

So the “software” of the cell, the “program” embedded in the DNA doesn’t appear to be analogous to a simple computer program that draws fractals. Of course that doesn’t mean that we can never describe a simple organism completely in fractal terms, and create analogous distinct individuals.

It seems that a long as the analogy is not pushed too far, computers in a distributed network are reasonably similar to living organisms. Please note I am note referring to the fractal type computer programs, but am talking about the way that computers themselves in a network are somewhat analogous to living organisms. Primitive ones!

Sample oscillator from hexagonal Game of Life.
Sample oscillator from hexagonal Game of Life. (Photo credit: Wikipedia)

Round numbers

Zero (Photo credit: chrisinplymouth)

It seems that we have a fascination for numbers that end in zeros. One thousand (1,000) and one million (1,000,000) and so on and to a lesser extent numbers like one hundred (100) and ten thousand (10,000). Fractions of round numbers also appeal to people. Reaching the age of 50 (half of 100) or 75 (3/4 of 100) is considered an interesting milestone while reaching 74 or 51 for some reason is not so interesting.

English: One Billion Dollar Artwork
English: One Billion Dollar Artwork (Photo credit: Wikipedia)

However some fractions are not even noticed. At the age of 33 years and 4 months you will be 1/3 of 100 years old and at 66 years and 8 months you will be 2/3 of 100 years old. When I passed the second milestone, I mentioned it to people and they didn’t seem to care. No prezzies were forthcoming.

There is one special number that could be considered a round number, and the wellspring of all round numbers and that is the number zero. The first number which is usually considered a round number is ten (10), where the zero indicates the absence of any digit (except zero itself, which is normally considered a numeric digit), and the 1 is positional and represents the number ten or ten units. Stick another zero on the end has the effect of multiplying all the digits in the number by ten, so 10 becomes 100 which represents one hundred.

One zero zero for dummies 2011-04
One zero zero for dummies 2011-04 (Photo credit: hare :-))

The number 100 could be considered to be, reading from the right, zero ‘units’, zero ‘tens’ and one ‘hundred’. 110 is zero ‘units’, one ‘ten’ and one ‘hundred’ giving the number one hundred and ten. When I was learning arithmetic as a small boy, while I grasped the principles quickly enough, I continued to ponder this mapping process from numbers, like seven hundred and thirty one to the mathematical representation of 731. Maybe I was a strange child. I still ponder it, even today. I look on “seven hundred and thirty one” as a name of the number, ‘731’ as a representation of the number, and the number itself as some ineffable thing. Maybe I grew up to be a strange adult!

Notice that above I said that “seven hundred and thirty one” is a name of the number and ‘731’ is a representation of the number. This is because there can be other representations of the same number, mainly in different bases. For all the numbers above I’ve used the number ten (10) as the base, but I could have used another base, such as sixteen (16) which is frequently used in computers. The number “seven hundred and thirty one” in base 10 representation is represented as ‘2D8’ in base 16 or hexadecimal representation. The ‘D’ is in there to represent the number thirteen (decimal 13).

Hexadecimal multiplication table
Hexadecimal multiplication table (Photo credit: Wikipedia)

Any positive integer can be used as a base. The bigger the base the more ‘digits’ are required to represent numbers, making them hard to read and hard to calculate with, so a base of ten (10) is a reasonable choice for general use. Negative integers can also be used as bases, but then things get very difficult! I’ve occasionally wondered if rational numbers or real numbers could be used as bases, but I can’t see how that would work.

Computers are interesting, since they, at the lowest level, appear to use a base of two (2), which is the smallest possible positive integer base. The numbers are conceptually simple strings of ones (1) and zeros (0) called ‘bits’. It’s not as simple as that however as in the computer’s central processor the data and programs are shunted around like little trains of bits, switching from track to track and in many cases circulating round small loops, merging with other trains of bits, eventually arriving in stations called buffers.

English: Train comes into Sheringham with frei...
English: Train comes into Sheringham with freight waiting to leave A typical railway scene with the enginemen on the engine, a train arriving and two spotters noting numbers. This is all part of the ‘That’s yer lot’ gala on the North Norfolk gala. (Photo credit: Wikipedia)

These buffers can be 8 bits long (one byte) or 16 bits long (2 bytes) or even longer. The length is related to the architecture of the processor, and a 64-bit processor can handle addresses, integers and data path widths up to 64 bits, so effectively they naturally use numbers up (but not including) decimal 18,446,744,073,709,551,616! Computer people can’t read such long strings of bits of course so they convert the numbers to base sixteen (16) otherwise known as hexadecimal. It’s still very long, but can be handled and is less error prone than long strings of zeros and ones.

An illustration of an example IPv6 address
An illustration of an example IPv6 address (Photo credit: Wikipedia)

Round numbers are very useful as abbreviations. Saying nine thousand, eight hundred and seventy three is a lot more verbose than “about ten thousand” and is sufficiently accurate for many purposes.

One interesting use of round numbers is found in the nominal sizing of disk drives. To a computer person one byte is the smallest unit of storage. Bytes are usually grouped into ‘kilobytes’ where in this sense the prefix ‘kilo’ stands for one thousand and twenty four, and kilobytes are grouped into ‘megabytes’ where in this sense the prefix ‘mega’ stands for one thousand and twenty four again, and megabytes are grouped into ‘gigabytes’. This means that to a computer person a gigabyte contains 1,073,741,824 bytes. So this number (and numbers with the smaller prefixes of kilo and mega) are round numbers to computer people, because, if expressed in hexadecimal or binary bases these numbers end with long strings of zeros!)

Six hard disk drives with cases opened showing...
Six hard disk drives with cases opened showing platters and heads; 8, 5.25, 3.5, 2.5, 1.8 and 1 inch disk diameters are represented. (Photo credit: Wikipedia)

There is a source of confusion here, because outside of the computer world, the prefixes of kilo, mega and giga are defined in terms of thousands. A kilogram is one thousand grams. Technically a megagram would be a thousand kilograms or a million of grams. This confusion impacts the computer world when computer disks size are given. To a computer disk manufacturer a gigabyte is one thousand million bytes, not a bit over one thousand and seventy three million bytes as mentioned above.

This leads to disappointment when purchasing disks. A nominally one hundred gigabyte disk will contain one hundred thousand thousand thousand bytes (100,000,000,000) but when when formatted will be able to contain less than ninety three gigabytes as the computer world counts bytes and that doesn’t take into account the overhead of the method of storing data on the disk. This overhead is necessitated by the need to hold the file names and locations on the disk itself so that the files can be retrieved.

There is no right or wrong way to consider bytes on disks and so computer people are in general now aware that if they buy a disk it will not seem (to them) to be quite as big as advertised. The moral is to ask what people mean when they use round numbers.

English: 2 Gigabyte MicroSD (TransFlash) card....
English: 2 Gigabyte MicroSD (TransFlash) card. Photo created from 20 single frames using Focus stacking. Deutsch: microSD-(TransFlash-)Karte mit 2 Gigabyte Kapazität. Foto erstellt aus 20 Einzelaufnahmen mittels Focus-Stacking (Photo credit: Wikipedia)

I was going to go into topics like giving change and Swedish rounding, but this post is already long enough. I will just mention that the topic of round numbers came to me because this is my fiftieth post! Fifty is sort of a round number, I suppose. It is halfway to a proper round number.

Reverse of Coin
Reverse of Coin (Photo credit: Wikipedia)