Geert Lovink on Sun, 1 Sep 96 17:45 METDST |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
nettime: our own computer architecture |
Output to NETTIME http://thing.des.nl/gris email: gris@desk.nl ************************************************************ Some Advertisements regarding the proposed Absolutely Simplyfied System or ASS Computer ************************************************************ By chris christiaansz ungerer assisted and advised by his friends and his the-Book by himself and the natural order of chaos as part of an experimental retrospective editing process. ************************************************************ About von Neumann and other design. Nearly all present day digital computers have a so-called architecture, a design, named after Margittai Neumann J nos or John von Neumann, the famous Hungarian mathematician and computer philosopher. Let us have a quick look at some of the principal features of such a von Neumann machine. Hardware A von-Neumann machine consists of the following hardware: * A power supply. * input & output subsystems Input-output equipment is designed to allow communication between the computer and the outside world. Perhaps this item is best illustrated by providing a list of some ( and by no means all) possible input/output devices: paper tape reader paper tape punch card reader card punch lamps switches keyboard monitor printer plotter magnetic tape drive flopy disk drive hard disk drive cd-rom drive modem image scanner camera and adapter mouse joy-stick touch screen a-d & d-a converters and data acquisition equipment a-d & d-a converters and sound adapter These IO components are, of course, indispensible if we are to have any kind of machine that can communicate with the outside world in some way. Machines which cannot do this may be very fast or clever, but they are usually not be very useful. Nevertheless i propose to concentrate on the remaining two items of hardware and a further two of software in the light of the present discussion. Memory provides storage for data and programs. In the von Neumann scheme it is essentially organised one-dimensionally, like a length of string or a street - memory lane. Each place in memory has an address and can store a certain amount of data. Data can be any information of potential use to the user. It should be pointed out here that the image in memory is only a representation of the actual information. The image is painted in memory using a binary system expressed in ones and zeros, five volts or no volts, charge or no charge, on or off. Each place where there may be a one or a zero is called a BIT, short for binary digit. The bit is said to be the basic unit of information. It can be thought of as the answer to any yes/no question. Let us examine a fragment of memory on this machine to see which representations have been made in it. Each address identifies a unique byte (eight bits) of memory on this machine and i have shown it in lines of eight bytes at a time. 00630³ 49 74 20 73 ³ 68 6F 75 6C It shoul 00638³ 64 20 62 65 ³ 20 70 6F 69 d be poi 00640³ 6E 74 65 64 ³ 20 6F 75 74 nted out 00648³ 20 68 65 72 ³ 65 20 74 68 here th 00650³ 61 74 20 74 ³ 68 65 20 69 at the i 00658³ 6D 61 67 65 ³ 20 69 6E 0D mage in 00660³ 0A 6D 65 6D ³ 6F 72 79 20 memory The numbers at the far left are the addresses of the first byte in a sequence of eight. The pairs of characters in the body of the table represent the data in each of those eight bytes. At the far right you will see the actual text, written by a person, which has resulted in this memory image. It would be cumbersome to write "0000 0000 0110 0011 0000³ 01001001 01110100 00100000 It " instead of "00630³ 49 74 20 73 ³ 68 6F 75 6C It shoul" and so we write " 0 0 6 3 0³ 49 74 20 It" I t space gathering together groups of eight bits at a time. more info --> hexbyte It is of course possible to represent any kind of information. There are several systems for representing text characters in binary. Let us quickly look a common version of the American Standard Code for Information Interchange (ASCII): Since the byte provides space for eight bits or two Hex digits (of four bits each) [Extended] ASCII is a table of 256 charcters of which the first 32 <00H-1FH> are special communication control characters, the next thirty two punctuation marks and numeric digits, the next sixty four upper and lower case letters according to the alphabet and the final hundred and twenty eight contain international, accented, box drawing and other special marks and characters. Capital U for example would be written in memory as 0101 0101 or 55H. Memory has been the subject of a very large world wide commercial game. Even though IBM decreed and defined in 1983/84 that 640 Kbytes was more than anyone could ever possibly want to use, it was soon not enough and this definition of infinity is these days a severely hindering limit. These days we see programs of tens of millions of bits and many more multiples when considering the associated help files, bugreports and internet conferences. Strange is that well being and functioning of these software conclomorations can depend on the well being of individual bits. The reliability of modern software suites rests on the myth that it is possible to have an infinite signal to noise ratio. All this be it as it may, memory is free. The Price has fallen around one millionth of modest meal per bit. * A Central Processing Unit (CPU) The processor does the actual computing by carrying out a program. It fetches an instruction from some address in memory; executes it and then fetches the next instruction from the address immediately following the previous one. During execution of an instruction it is possible to alter data anywhere in memory. It is also possible to jump or transfer control to another place in the list of instructions as a result of a condition being true or false. The processor is not like a Human being; it would not understand nor carry out the instruction PICK UP GRAIN OF SALT USING TWEEZERS. Processor instructions are at a much more fundamental level like: Fill processor register HL with the data found at memory location such and such, or: Do nothing for one machine cycle, or: Add the contents of processor register B to the accumulator. A program written at this fundamental level is said to be in MACHINE LANGUAGE. All the different machine language instructions recognised by the processor together form the INSTRUCTION SET. Modern microprocessors have tended towards ever greater complexity and the instruction sets have been getting larger and larger to the point where a modern processor has hundreds of fundamental instructions, including even multiplication and division. Since one byte is eight bits, it can only encompass 2^8=256 different possibilities. A processor having more than 256 different instructions must therefore require that each unique instruction is described by more than one byte. Adding the possibility of expressing addresses or data in the machine language leads us to several bytes for each step of machine code. Some years ago there was a development away from the trend of ever increasing complexity. It was realised that REDUCING the number of instructions in the set could actually make a computer faster, because each instruction would require only one byte (data not included), and could therefore be fetched from memory and executed that much faster than than four or more bytes in the case of the then modern processors. These machines were called Reduced Instruction Set Computers or RISC for short. Software * Data According to the-book's GLoSsary, Data is a finite extent of some non- random signal. It can be any information of potential use to the user. In the von Neumann scheme, the class Data can be acted upon and undergo some form of transformation or editing. * Program A program for the computer is like a cookery recipy, a structured list of instructions. To give you an idea of how a computer program works i have stolen an example from Mr. Zeno: DATA: A table A jar of salt Tweezers PROGRAM: 10 BEGIN 20 PICK UP TWEEZERS 30 40 MAIN_LOOP: 50 60 PICK UP GRAIN OF SALT USING TWEEZERS 70 DROP GRAIN OF SALT ON TABLE FROM A HEIGHT 80 IF THERE IS A HEAP OF SALT ON THE TABLE GO TO REPORT 90 IF NOT GO TO MAIN_LOOP 100 110 REPORT: 120 130 TELL TEACHER THAT THERE IS NOW A HEAP OF SALT ON THE TABLE 140 END This 'program' is the fourth of set of paradoxes or rather stories by Zeno the Greek philosopher (B.C. 336?-264?). The point of it is that there is initially no 'heap' of salt on the table. After a few grains have been dropped there are some isolated scattered grains lying here and there. Everybody knows that there will be a heap after, say, a thousand have been dropped. The interesting question is: what is the exact boundary between scattered grains (no heap) and heap. This 'program' is not really suitable for computers, as it is rather difficult to get a computer / robot to decide whether there is a 'heap' or not. A human being is however quite capable of following these instructions and i have included this example because i always felt that the way Mr. Zeno's presented his instructions was very much like our present day concept of a computer program. The (example) (pseudo) program above was represented in TEXT and is therefore also a specialised form of DATA. In the von Neumann scheme, the class Program is Data which can be executed (possibly after successful completion of some compilation process). the classes of Data and Program together form the software for the von Neumann machine: a STORED PROGRAM COMPUTER where the program (the structured list of instructions telling the machine what to do next) can be on a disk, in memory, fixed with bits of wire and plugs, or inscribed in a chip. Aside: Once, in a bistro in Amsterdam in 1989, someone asked in the light of a discussion about RISC (Reduced Instruction Set Computers) what would be the minimum number of instructions for a computer. Somebody answered that it could well be two. As one thing leads to another, these two instructions were soon named: Please_Wait with the associated microcode of 0 and Please_Edit with a microcode of 1. If we image a machine with cells or domains of memory we can assign some meaning to these proto-instructions. A zero in the software field of such a cell would mean Please_Wait, that is, any information in the cell remains unchanged throughout the coming machine cycle. Please_Edit would mean that the information in the cell is processed in some way, perhaps moved or shifted to and from some other cell or parts of cells. A third instruction Please_Yourself was added to make the machine's software slightly noisy. In other words, Please_Yourself is slightly unpredictable. This opens the possibility that software could evolve on the machine (provided that a suitable modulated feedback channel is available). Let us look at the ASS computer in the way we did with the classic von Neumann schema: The proposed ASS machine consists of the following hardware: * A power supply. * input & output subsystems HAPPY is the name of the GREEN light ON the ASS computer which indicates that it is operating well. Naturally any other flavour of Input/Output devices would be warmly appreciated as well. we will come back to this issue shortly. * Memory Memory on the ASS Computer is organised in a more dimensional ARRAY of CELLS. Each cell encompasses enough bits of memory to be home to a decent sized information nugget. On top of this there are Control, Status, History, Expected, Input and Output fields Data is moved according to the principle that travelling is quickest when you have the shortest way to go, so it is moved from neighbour to neighbour. Specialised Peripheral Cells who may be at a physical edge of the memory cell array, or who can define a virtual boundary or interface to the machine can be connected to IO. Please think, if you will, of the (computer) game of LIFE. On our world LIFE has a tendency to exist at the boundary or interface between phases (EARTH-AIR WATER-EARTH etc.). {LIFE.PAS} * Some Distributed Processing Units (CPU) CHRISART:ASS_Processor Strictly speaking the ASS Computer has no Central Processing Unit. Each memory cell is accompanied by processing power or if you like inteligence. The Rythm of the machine consists of cycles which may be as slow as you like. The MAchine need not necessarily run at 100 or 200 MHz but perhaps at one herz or even a fraction of that. It was once envisaged that it would be nice to have an ASS machine with a span of seven cells in the direction of any one of seven hundred dimensions. Memory and processor are one and the same on the ASS machine Software In the ASS machine scheme, there is no distinction between the classes Program is Data which can be executed (possibly after successful completion of some compilation process). the class of Structured Data forms the software for the ASS machine. -- * distributed via nettime-l : no commercial use without permission * <nettime> is a closed moderated mailinglist for net criticism, * collaborative text filtering and cultural politics of the nets * more info: majordomo@is.in-berlin.de and "info nettime" in the msg body * URL: http://www.desk.nl/~nettime/ contact: nettime-owner@is.in-berlin.de