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 Jnos 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