The earliest computers were based on the electrical properties of doped silicon or germanium components, making up simple circuits on so-called silicon chips. These were soon replaced by gallium arsenide components and then by various optical systems. By the mid 21st century most computers were based on proteins. Proteins tailored to have specific electrical properties were used to form logic gates with crystals of photocyclic proteins (such as derivatives of bacteriorhodopsin) as memory elements. These photocyclic proteins, which can be cycled through a number of stable states with laser light of various wavelengths, are able to store data at a density of 1018 bits m-3. A cubic centimetre holocube memory of that era could store approximately 1 terabit.
With the invention of assemblers these protein systems were used as the basis of the first molecular computers. Designs similar to bulk-fabricated protein computers were produced using single protein molecules (rather than crystalline regions of proteins) as components. Later, considerably more advanced molecular computers, containing a mixture of electronic, optical and mechanical components, were built.
Current designs of mechanical nanocomputers are based on sliding carbon rods that interact with each other at 'locks'. A small cluster of locks can be made to act as a logic gate (the basic element of a digital computer). The volume of each lock is about 10 nm3, including all the necessary power supply and support systems. The logic gates make up processor or memory units that are packed into three-dimensional arrays. Most designs use a 'low-level polymorphism' that allows each section to act as either a processor or a memory element, with the hardware effectively redesigning itself to run each piece of software most efficiently. This enables massively parallel processing, or the use of different processors for each independent software object for true object-oriented systems.
Using these mechanical elements as memory devices, data can be stored at a density of 1026 bits m-3. This is roughly the same as the storage density of a cellular nucleus.
Modern data processors work at vastly greater speeds than those constructed using bulk technology. A slimline hand-held will typically perform 20-50 TIPS (trillion instructions per second), a cubic metre processor cluster will perform about 1000 QIPS (quadrillion instructions per second) - note however that this is just the volume for the processor and does not include a power supply or input-output systems. For comparison a standard desktop machine from the end of the 20th century was capable of perhaps 500 MIPS and the most advanced supercomputers of that era about 1 TIPS. The speeds of current computers are limited by the need to remove waste heat from the processor array, which in turn limits the possible density of processing elements.
Many small computers also have a slow 'polymeric tape', consisting of a set of assemblers that can manipulate polymer molecules, typically interchanging fluorine and hydrogen atoms on a hydrocarbon chain. These polymer tapes can store 1028 bits m-3 (approximately ten gigabits in a box the size of a small bacterium) with a microsecond access time.
Today, the standard data storage item is a cubic centimetre mechanical store capable of holding 40 exabits (i.e. 40x1018 bits). Such a cube can contain several quadrillion pages of text, about 50 billion stereoscopic pictures (approximately sixteen years of perfect quality stereoscopic video [4096x4096 pixels, 24 bit colour, 100Hz]), or the specification of a small room with 20 micrometres resolution (good enough for a completely convincing virtual environment, but not of high enough quality to run a somatic simulation in).
The future of Ad Astra