. .This is f0r fun, i thought blogging is kinda boring. .but it rocks My World.

12th January 2010

Post

Von Neumann architecture for a self replicating system

Von Neumann’s proposal consisted of two central elements: a Universal Computer and a Universal Constructor (see figure 1). The Universal Computer contains a program that directs the behavior of the Universal Constructor. The Universal Constructor, in turn, is used to manufacture both another Universal Computer and a Universal Constructor. Once finished, the newly manufactured Universal Computer was programmed by copying the program contained in the original Universal Computer, and program execution would then begin.

This is rather an abstract proposal and covers a wide variety of specific implementations. Furthermore, both the design of the system and the environment in which it is intended to operate must be specified. The range of systems that would successfully operate on the ocean floor would be different from those that would operate in either deep space or an abstract mathematical space that had no physical existence. Von Neumann worked out the details for a Constructor that worked in a theoretical two-dimensional cellular automata world (and parts of his proposal have since been modeled computationally[13]). The Constructor had an arm, which it could move about; and a tip, which could be used to change the state of the cell on which it rested. Thus, by progressively moving the arm and changing the state of the cell at the tip of the arm, it was possible to create “objects” that consisted of regions of the two-dimensional cellular automata world which were fully specified by the program that controlled the Constructor.

While this solution demonstrates the theoretical validity of the idea, von Neumann’s kinematic constructor (which was not worked out in such detail) has had perhaps a greater influence, for it is a model of self replication which can more easily be adapted to the three-dimensional world in which we live. The kinematic constructor was a robotic arm which moved in three-space, and which grasped parts from a sea of parts around it. These parts were then assembled into another kinematic constructor and its associated control computer.

An important point to notice is that self replication, while important, is not by itself an objective. A device able to make copies of itself but unable to make anything else would not be very valuable. Von Neumann’s proposals centered around the combination of a Universal Constructor, which could make anything it was directed to make, and a Universal Computer, which could compute anything it was directed to compute. This combination provides immense value, for it can be re- programmed to make any one of a wide range of things. It is this ability to make almost any structure that is desired, and to do so at low cost, which is of value. The ability of the device to make copies of itself is simply a means to achieve low cost, rather than an end in itself.

Drexler’s architecture for an assembler

Drexler’s assembler follows the Von Neumann architecture, but is specialized for dealing with systems made of atoms. The essential components in Drexler’s Assembler are shown in figure 2. The emphasis here (in contrast to von Neumann’s proposal) is on small size. The computer and constructor both shrink to the molecular scale, while the constructor takes on additional detail consistent with the desire to manipulate molecular structures with atomic precision. The molecular constructor has two major subsystems: (1) a positional capability and (2) the “tip chemistry.”

The positional capability might be provided by one or more small robotic arms, or alternatively might be provided by any one of a wide range of devices that provide positional control[14]. The emphasis, though, is on a positional device that is very small in scale: perhaps 0.1 microns (100 nanometers) or so in size.

As an aside, current SPM (Scanning Probe Microscope) designs employ piezoelectric elements for positional control[21]. A rather obvious question to ask is: why prefer mechanical positioning systems over piezoelectric or other electrostatic devices? The reasons for using basically mechanical devices at the molecular scale are similar to the reasons that mechanical devices are employed at the macroscopic scale: the desire for compactness and high positional accuracy (e.g., high stiffness). This weighs against electrostatic and piezoelectric devices. Molecular mechanical devices, on the other hand, can employ very stiff materials and, with appropriate design, can have joints that can rotate easily but which at the same time provide high stiffness in other degrees of freedom[1,20]

The “tip chemistry” is logically similar to the ability of the Von Neumann Universal Constructor to alter the state of a cell at the tip of the arm, but here the change in “state” must correspond to a real world change in molecular structure. That is, we must specify a set of well defined chemical reactions that take place at the tip of the arm, and this well defined set of chemical reactions must be sufficient to allow the synthesis of the class of structures of interest.

The assembler, as defined here, is not a specific device but is instead a class of devices. Specific members of this class will deal with specific issues in specific ways.

Specifying an assembler

An example might help clarify these concepts. We can view a ribosome as a degenerate case of an assembler. The ribosome is present in essentially all living systems (we will ignore the marginal or debatable cases, such as viruses). It is programmable, in the sense that it reads input from a strand of messenger RNA (mRNA) which encodes the protein to be built. Its “positional device” can grasp and hold an amino acid in a fixed position (more accurately, the mRNA in the ribosome selects a specific transfer RNA, which in its turn was bound to a specific amino acid by a specific enzyme). The one operation available in the “well defined set of chemical reactions” is the ability to make a peptide bond.

Of course, if we really want to specify how a self-replicating system works, we must provide more information. For example, the ribosome functions correctly only in a specific kind of environment. There must be energy provided in the form of ATP; there must be information provided in the form of strands of mRNA; there must be compounds such as amino acids; etc. etc. If the ribosome is removed from this environment it ceases to function.

More generally, to specify an assembler one needs to specify (1) the type and construction of the computer, (2) the type and construction of the positional device, (3) the set of chemical reactions that take place at the tip, (4) how compounds are transported to and from the tip, and how the compounds are modified (if at all) before reaching the tip, (5) the class of structures that can be built, (6) the environment in which it operates and (7) the method of providing power.

An additional requirement is often significant. While it is true that a ribosome will function in a certain type of environment, it is also true that the environment in which a ribosome functions is found inside the cell wall and not outside. That is, the environment inside the cell is a special kind of environment not normally found in the world. There is a barrier (the cell wall) which maintains an internal environment to which the ribosome is directly exposed, and which separates the internal environment from a less-well-controlled external environment. Of course, having introduced a barrier to maintain an internal environment, it is necessary to introduce some means of transporting the needed compounds across this barrier. Bacteria, for example, have specific transport mechanisms to absorb nutrients from their environment and to maintain appropriate concentrations of those nutrients in their internal environment.

If we wish to adopt this model we need to specify four additional elements of the assembler: (8) the type of barrier used to prevent unwanted changes in the internal environment in the face of changes in the external environment, (9) the nature of the external environment (we assume that item 6 above now refers to the internal environment). (10) the transport mechanism that moves material across the barrier and (11) the transport mechanism used in the external environment.

Finally, it is often useful to be able to transmit instructions to the assembler. We will therefore include a final element: (12) a receiver that allows the assembler to receive broadcast instructions. The presence of a receiver is not mandatory for the manufacture of interesting structures (as demonstrated by a fertilized egg), but it is extremely useful if we are considering a general purpose device able to make a wide variety of different products. As we will see later, not only does a receiver allow us to re-program the assembler for specific tasks, it also allows us to significantly simplify the computational element.

These, then, are the 12 major elements that must be specified before we can discuss the behavior and properties of an individual member of the class of assemblers. To some extent, item (5), the class of structures that can be built, is implicit in the capabilities of the computer, the positional device, and the set of chemical reactions that can be used during synthesis. In fact, it is possible to argue that item (5) is rather poorly defined. For example, ribosomes can make people, and people can make integrated circuits. Do we then say that ribosomes can make integrated circuits? In some sense, this is true. In another sense, and in the sense we will use in this paper, it is false. It is fairly obvious how to program a ribosome to make a protein, but it requires a rather complex and non- obvious program to induce a ribosome to make an integrated circuit. We will limit the class of structures that can be built to those that are “obvious,” and will not examine the term “obvious” too closely.

The utility of an assembler

Now that we know how to specify an assembler, we might ask which assemblers are valuable? The ribosome is an obviously valuable member of this class: it allows us to exist! In general, though, what features of an assembler might be viewed as enhancing or reducing its value? What do we want, and what should we avoid?

There are some rather obvious points. First, the external environment in which an assembler operates, item 8 on our list, must be an environment which is physically achievable in some reaonably economical way.

Second, the class of structures that the assembler can build, item 5, should include the assembler itself. If we are to achieve low cost through the ability of the assembler to make copies of itself, it’s useful to include this capability on our list of “value enhancing features.” This feature is not absolute, for it might be that a “specialized assembler” would be unable to make a copy of itself, but would still be able to very efficiently manufacture simpler structures. Such a specialized device would still be quite valuable, provided that more general devices existed which were able to manufacture it. In general, it is not actually necessary that any specific device be able to make a copy of itself, but it is necessary that a system composed of many different devices be able to manufacture any individual device in the system. Conceptually, however, it is simplest to imagine a “general purpose” device able to make copies of itself, and “special purpose devices” that are deficient in this regard, but can more efficiently make some narrower class of devices. The “general purpose” device also makes a convenient design target and is likely to be a reasonable way to implement a general purpose molecular manufacturing capability.

Third, the class of structures should include many things that we view as valuable. Ideally, the class of structures should include as broad a range as possible. There are, however, tradeoffs involved between the range of things that can be built and the complexity and cost of the manufacturing process. If we wish to build structures that include large amounts of radioactive isotopes, then our assembler must be able to function in the face of high radiation levels. If we forego this ability and limit ourselves to building structures that are not radioactive, then we can use a (presumably simpler and cheaper) assembler that is less able to tolerate radiation.

Fourth, the costs of the feedstock upon which the assembler operates should be low. Cost, of course, is a concept which is foreign to science. The cost of a pound of carbon cannot be found in the periodic table, nor is it even a constant. Fundamentally, however, our objective is to design and build a device which will be useful in the real world, and in the real world cost is a major concern. While our design effort is more complex and will take a longer time than the design of a new car or a new computer, our efforts are still fundamentally cast in the same mold and driven by the same imperatives. While we cannot today make the cost tradeoffs involved in the design of an assembler as precisely or as accurately as an engineer at Boeing can weigh the tradeoffs between aluminum and composites, we can still seek to avoid approaches that seem inherently more costly and favor approaches that are likely to be less expensive.

Fifth, we wish to reduce the total energy involved in the manufacturing process. While this is also a relative goal (we don’t know the exact cost of energy, nor the precise ratio of energy costs to raw materials costs) we can again favor the approaches that reduce energy consumption while avoiding approaches that are obviously wasteful.

Sixth, it should be easy to re-program the assembler to fabricate different structures. If our objective is the flexible ability to make a wide variety of products, then re-programming is mandatory. If this process is unduly time consuming or complex, we will have lost significant value.

Seventh, the design should eliminate the risk of extraordinary dangers. Self replicating systems, like other systems, might fail to work correctly and as a consequence cause damage. Unlike ordinary systems, they can theoretically inflict an unlimited amount of damage. They could theoretically, for example, replicate unchecked and destroy the planet. This is clearly unacceptable. The design must completely eliminate this risk. This requires more than a simple “program check” or some possibly circumventable safeguard. We require that the design be inherently safe; i.e., not only must the device as designed be safe, it must continue to be safe even in the face of accidental design errors, errors in handling or transmitting the instructions, etc. It must be robustly safe.

12th January 2010

Post

Early von Neumann-architecture computers

The First Draft described a design that was used by many universities and corporations to construct their computers. Among these various computers, only ILLIAC and ORDVAC had compatible instruction sets.

* ORDVAC (U-Illinois) at Aberdeen Proving Ground, Maryland (completed Nov 1951[13])

* IAS machine at Princeton University (Jan 1952)

* MANIAC I at Los Alamos Scientific Laboratory (Mar 1952)

* ILLIAC at the University of Illinois, (Sept 1952)

* AVIDAC at Argonne National Laboratory (1953)

* ORACLE at Oak Ridge National Laboratory (Jun 1953)

* JOHNNIAC at RAND Corporation (Jan 1954)

* BESK in Stockholm (1953)

* BESM-1 in Moscow (1952)

* DASK in Denmark (1955)

* PERM in Munich (1956?)

* SILLIAC in Sydney (1956)

* WEIZAC in Rehovoth (1955)

12th January 2010

Post

Von Neumann architecture

The Von Neumann architecture is a design model for a stored-program digital computer that uses a processing unit and a single separate storage structure to hold both instructions and data. It is named after the mathematician and early computer scientist John von Neumann. Such computers implement a universal Turing machine sequential architecture. and have a

A stored-program digital computer is one that keeps its programmed instructions, as well as its data, in read-write, random-access memory (RAM). Stored-program computers were an advancement over the program-controlled computers of the 1940s, such as the Colossus and the ENIAC, which were programmed by setting switches and inserting patch leads to route data and to control signals between various functional units. In the vast majority of modern computers, the same memory is used for both data and program instructions. The mechanisms for transferring the data and instructions between the CPU and memory are, however, considerably more complex than the original von Neumann architecture.

The earliest computing machines had fixed programs. Some very simple computers still use this design, either for simplicity or training purposes. For example, a desk calculator (in principle) is a fixed program computer. It can do basic mathematics, but it cannot be used as a word processor or a gaming console. Changing the program of a fixed-program machine requires re-wiring, re-structuring, or re-designing the machine. The earliest computers were not so much “programmed” as they were “designed”. “Reprogramming”, when it was possible at all, was a laborious process, starting with flowcharts and paper notes, followed by detailed engineering designs, and then the often-arduous process of physically re-wiring and re-building the machine. It could take three weeks to set up a program on ENIAC and get it working.[1]

The idea of the stored-program computer changed all that: a computer that by design includes an instruction set and can store in memory a set of instructions (a program) that details the computation.

A stored-program design also lets programs modify themselves while running. One early motivation for such a facility was the need for a program to increment or otherwise modify the address portion of instructions, which had to be done manually in early designs. This became less important when index registers and indirect addressing became usual features of machine architecture. Self-modifying code has largely fallen out of favor, since it is usually hard to understand and debug, as well as being inefficient under modern processor pipelining and caching schemes.

On a large scale, the ability to treat instructions as data is what makes assemblers, compilers and other automated programming tools possible. One can “write programs which write programs”.[2] On a smaller scale, I/O-intensive machine instructions such as the BITBLT primitive used to modify images on a bitmap display, were once thought to be impossible to implement without custom hardware. It was shown later that these instructions could be implemented efficiently by “on the fly compilation” (“just-in-time compilation”) technology, e.g. code-generating programs—one form of self-modifying code that has remained popular.

There are drawbacks to the von Neumann design. Aside from the von Neumann bottleneck described below, program modifications can be quite harmful, either by accident or design. In some simple stored-program computer designs, a malfunctioning program can damage itself, other programs, or the operating system, possibly leading to a computer crash. Memory protection and other forms of access control can usually protect against both accidental and malicious program modification.

5th January 2010

Quote

Always do what you want, don’t mind what other people might say. Because, whether you do it or not, Other people has always something to say”. .

5th January 2010

Post

Christmas

When I was young every christmas time I hang some socks so that If Santa Claus will came to town He will put something on it hehehe., Sounds Great, maybe every children know who Santa is. He is big, fat,a man in red and white with his sleigh and reindeers.Funny thing is, I realized that It is not him putting presents in my socks but It’s my two Granpas ^_^.

Christmas is all about giving presents and most specially showing love to each other. I hope everyday is christmas so that there will be peace and love in our country, that is the most important thing on earth. The true meaning of Christmas is that God was born and He is our savior. God gave Jesus His only son to save us from our sins and to show us how much He loves us.

5th January 2010

Post

Learning Everyday!

Everyday is an opportunity that God has given us, we can always learn from our mistakes and imperfections. I believe that we can never learn if we don’t try. Some say that they don’t want to fail in life, but that is very impossible. No one in this world haven’t try any failure in life, because in every failure that we get the more we fix our imperfections and that’s the meaning of a great success. Learning is also a form of achievement.

I always fail but I consider that failure is a lesson or a way so that next time I know what to do, sooner and later you will realize something from your mistakes. And you will never know time would come that you’ll achieve the kind of success you are wishing for.