- View SourcePaul, that is a very concise explanation. I would like to say thanks for posting that. I've been considering the question of whether the clock is in fact a CPU as well.

I am leaning towards accepting that it is a CPU because it if I accept the explanation provided with the 9 line program, it does have registers, it has a comparator and it can perform jumps and loops. I suppose what remains to be seen is if it can be programmed to perform more than one algorithm using the machine language provided and without modifying the machine.

Great topic by the way.

Cheers,

Andrew

--- In friendsofdigicomp@yahoogroups.com, "prp_teleport" <prp@...> wrote:

>

> Some more rigorous definitions than those you found on Wikipedia might help understand whether the clock is a CPU:

>

> Computer - In modern usage, a stored program general purpose digital electronic computer, defined not in terms of its construction but in terms of its capability. In particular, a computer is a machine that would be equivalent to a "Turing Machine" if it had infinite memory. (The "electronic" aspect is not optional in proper usage, but we can discard it for this discussion.)

>

> CPU - Central Processing Unit. Tranditionally, the "control" part of the computer, a computer consisting of control, memory and I/O. The CPU is the defining part of a computer and it is the part that must pass the Turing Machine equivalency test.

>

> Harvard Architecture - A computer where the instructions and data are in separate memory units, and the memory containing the instructions is read-only.

>

> Turing Machine - A rigorous pure mathematical construct proposed by the famous British mathemetician Alan Turing. There is an entire field of mathematics based on it. A Turing Machine is a very simple 1-bit device with an infinite memory. An important early result in the field is that you can construct (mathematically) a computing device in many different ways, and if it has the capabilities of a Turing Machine, then it can be proved that it has exactly the same capability as a Turing Machine, no more and no less. (Execution time is not modelled, so there is no notion of "faster" or "slower", only whether it is the same or not.) So, for instance, if you can show that your construct is able to emulate a Turing Machine, then you have proved that it is exactly the same as a Turing Machine as far as what you could do with it.

>

>

> All computers, from the tiniest microcontrollers to the largest supercomputer, pass the Turing Machine equivalency test. There is the special case of the Harvard Architecture designs, typical for microcontrollers, where in addition to assuming the memory is infinite you also have to assume that, for the purposes of the test, the instruction and data memories are combined and uniformly accessible for read and write.

>

> The Mechanical Clock is not able to emulate a Turing Machine even if its registers were inifitely large, so its not a computer or a CPU in itself.

>

> You could argue that the Mechanical Clock is a Harvard Architecture machine, where the instructions are encoded in the structure of the pathways for the ball. But this structure is not similar enough to the data memory (the registers) to convincingly argue that they could be unified for the purposes of testing Turing Machine equivalency. So thats out.

>

> If it is possible to emulate a Turing Machine using the 6-instruction assembly language given, then you could argue that the instruction set combined with the laser cutter is a computer, and the clock is one possible program. However, I don't think the instruction set is sufficient (even though its larger than some minimal examples I've seen) because, among possibly other things, it lacks any kind of indirect or computed addressing mechanism. In any case, a single program is not a computer, so the Mechanical Clock is still not a CPU.

>

> The property of Turing Machine equivalence is an extremely important concept in Computer Science, and in my opinion cannot be discarded lightly because its so helpful in understanding how it is that computers can do what they do. So I'm uncomfortable seeing you call the Mechanical Clock a CPU, and more uncomfortable seeing it used to explain what a computer is. Its a fine way to show how logic works, and then to note that a CPU is made out of logic.

>

> I like the way you've combined a logical description (the instructions) with the visual and tactile implementation. You had a tutelage problem you wanted to solve, and came up with a clever approach, but it slightly missed the mark you were ultimately aiming for.

>

> Paul Pierce

> - View SourceThanks for the great insight.

I would “agree” with the definition

that a CPU “must pass the Turing Machine equivalency test” for it

is to be considered a CPU. But this machine, does passes the Turing

Machine equivalence test (although it does not passes the “Turing

Test” since it can not talk back :)

However, I think you are on to

something, which has to do with Universal Turing Machines.

First whether this is a Turing machine:

I say yes, and here is the proof.

Once simple proof can be based on Church's Thesis which states that that

any algorithm can be represented as a Turing machine. And since I

have an algorithm for this clock, it is a Turing machine.

A more formal definition: A Turing

machine T has a set of 4-tuple (S,I,f,s0) (in its simplest form. I

know there are other definition, but they could all be boiled down to

this without a lose in generality). I got this from the book

“Discrete Mathematics and its applications” page 776

(http://www.amazon.com/Discrete-Mathematics-Applications-Kenneth-Rosen/dp/0072899050). Yes, you made me brush up my old CS book.

S is a fine set of states (in the

clock, Register A and the DTD_FLAG)

I is a finite set of alphabet (in the

clock 0 and 1)

f which is a partial function from SxI

to SxI x {R,L} (this is the program of the clock implemented by the

tracks and the flip-flops, I and L levers)

s0, which is the starting state (in our

case we can set register A and the DTD_FLAG to anything).

The “tape” is implemented by the

ball which reads register A and the DTD_FLAG and manipulates them

accordingly.

Note that I did not considered the

other registers, because they are tied together with the buss, so their state is just the same. Also note that there is an optimization

when the INCREMENT instruction and is actually an INCREMENT and CHECK

together.

Paul Pierce wrote: “However, I don't

think the instruction set is sufficient “ (see more later)

Note that in the Turing machine

definition f can be any length (even 1) so you could have a 1

instruction Turing machine (see 1 bit Turing machines).

Therefore, this is a Turing machine.

Note that a Turing machine does not require for the tape to change!!!

However, I believe what you meant to

prove is that this is not a Universal Turing Machine (UTM), which is how we

should define a CPU (not just a Turing machine). A universal Turing

machine is one that reads the set of instructions f from the tape.

This will allow it to simulate an arbitrary Turing machine, and thus

solve an array of problems. This is why the Harvard Architecture is a

spatial case, since it has its program in a separate memory

structure. So I would argue that his clock has an Harvard

Architecture. Therefore, the only question remaining is whether this

clock reads the program from memory, and how is this memory

implemented.

I argue that the program memory is

implemented in the paths the ball takes, and is burned in using the

laser as well as the configurations of the flip-flops, so its similar

to burning the program on a ROM. (although I agree this is a far

fetch, but just for the sake of discussion). Therefore, I could

change the program of the clock by simply rotating on of the L levers

or changing the T flip-flops to an L. I could also, remake the tracks

of the C register, to check for a different number, or change the B

register to increment instead of reset (by changing the L to

flip-flops and reconfiguring the paths).

Therefore I conclude that this is a

Universal Turing machine, and thus a CPU.

Paul Pierce wrote: “However, I don't

think the instruction set is sufficient “

However,

this is not a complete proof (even if we buy the argument that the

laser cutter can cut the paths). The reason is that a universal

machine need be be able to calculate all possible functions which can

be calculated. Therefore, we need to find if this clock can do that

(even if we can reprogrammed it, by only using the instructions I

have given), which I am not able to do at this point. However, See

Wolfram's 2-state 3-symbol Turing machine

(http://en.wikipedia.org/wiki/Wolfram%27s_2-state_3-symbol_Turing_machine)

for what might be the smallest universal Turing machine, but the

proof is difficult.

Based on that, the I don't believe the DigiComp Ior II is not is a UTM, and threfore should not be called a computer either!

However, even if you don't buy the

argument that the program is read from memory (and I agree this is

hard to swallow, even for me) or that is can not emulate a Universal Turing

machine. I still stand by the fact that this is still useful in

describing a CPU since it has all the major components of a CPU. just like the DigiComp.

Therefore, it can help people understand what is inside a CPU and how

a CPU works in a very broad way. Remember, this is for non

computer-science people, and not for hardware designers trying to

implement a useful CPU.

________________________________

From: prp_teleport <prp@...>

To: friendsofdigicomp@yahoogroups.com

Sent: Thursday, April 19, 2012 2:50 PM

Subject: Re: [Friends of DigiComp] Mechanical CPU Clock

Some more rigorous definitions than those you found on Wikipedia might help understand whether the clock is a CPU:

Computer - In modern usage, a stored program general purpose digital electronic computer, defined not in terms of its construction but in terms of its capability. In particular, a computer is a machine that would be equivalent to a "Turing Machine" if it had infinite memory. (The "electronic" aspect is not optional in proper usage, but we can discard it for this discussion.)

CPU - Central Processing Unit. Tranditionally, the "control" part of the computer, a computer consisting of control, memory and I/O. The CPU is the defining part of a computer and it is the part that must pass the Turing Machine equivalency test.

Harvard Architecture - A computer where the instructions and data are in separate memory units, and the memory containing the instructions is read-only.

Turing Machine - A rigorous pure mathematical construct proposed by the famous British mathemetician Alan Turing. There is an entire field of mathematics based on it. A Turing Machine is a very simple 1-bit device with an infinite memory. An important early result in the field is that you can construct (mathematically) a computing device in many different ways, and if it has the capabilities of a Turing Machine, then it can be proved that it has exactly the same capability as a Turing Machine, no more and no less. (Execution time is not modelled, so there is no notion of "faster" or "slower", only whether it is the same or not.) So, for instance, if you can show that your construct is able to emulate a Turing Machine, then you have proved that it is exactly the same as a Turing Machine as far as what you could do with it.

All computers, from the tiniest microcontrollers to the largest supercomputer, pass the Turing Machine equivalency test. There is the special case of the Harvard Architecture designs, typical for microcontrollers, where in addition to assuming the memory is infinite you also have to assume that, for the purposes of the test, the instruction and data memories are combined and uniformly accessible for read and write.

The Mechanical Clock is not able to emulate a Turing Machine even if its registers were inifitely large, so its not a computer or a CPU in itself.

You could argue that the Mechanical Clock is a Harvard Architecture machine, where the instructions are encoded in the structure of the pathways for the ball. But this structure is not similar enough to the data memory (the registers) to convincingly argue that they could be unified for the purposes of testing Turing Machine equivalency. So thats out.

If it is possible to emulate a Turing Machine using the 6-instruction assembly language given, then you could argue that the instruction set combined with the laser cutter is a computer, and the clock is one possible program. However, I don't think the instruction set is sufficient (even though its larger than some minimal examples I've seen) because, among possibly other things, it lacks any kind of indirect or computed addressing mechanism. In any case, a single program is not a computer, so the Mechanical Clock is still not a CPU.

The property of Turing Machine equivalence is an extremely important concept in Computer Science, and in my opinion cannot be discarded lightly because its so helpful in understanding how it is that computers can do what they do. So I'm uncomfortable seeing you call the Mechanical Clock a CPU, and more uncomfortable seeing it used to explain what a computer is. Its a fine way to show how logic works, and then to note that a CPU is made out of logic.

I like the way you've combined a logical description (the instructions) with the visual and tactile implementation. You had a tutelage problem you wanted to solve, and came up with a clever approach, but it slightly missed the mark you were ultimately aiming for.

Paul Pierce

[Non-text portions of this message have been removed] - View SourceIt's definitely a convoluted question of whether it is a CPU or not based on Turing and/or modern definition.

I've been writing software for decades and built 8-bit computers with Hex Keypads back in the late 70's but I've only been really interested in CPU design for about the last 5 - 6 years. As a result I may have a liberal idea of what constitutes a true CPU.

My interpretation of Turing and the definition of a CPU dictates that it must have:

1) an instruction set

2) control

3) program memory

4) accumulator

5) conditional jump

6) the ability to loop

7) the ability to be programmed

I think this unit has the first 6 but I'm not sure that the program can be modified enough to believe that it can be programmed to do anything but be some sort of clock.

It's not to say that it won't ever be a CPU but at the moment it is hard for me to definitively state that it is a CPU.

That said, it's really impressive.

Cheers,

Andrew

--- In friendsofdigicomp@yahoogroups.com, Lior Elazary <lelazary@...> wrote:

>

>

> Thanks for the great insight.

>

> I would âagreeâ with the definition

> that a CPU âmust pass the Turing Machine equivalency testâ for it

> is to be considered a CPU. But this machine, does passes the Turing

> Machine equivalence test (although it does not passes the âTuring

> Testâ since it can not talk back :)

> However, I think you are on to

> something, which has to do with Universal Turing Machines.

>

> First whether this is a Turing machine:

> I say yes, and here is the proof.

>

> Once simple proof can be based on Church's Thesis which states that that

> any algorithm can be represented as a Turing machine. And since I

> have an algorithm for this clock, it is a Turing machine.

>

> A more formal definition: A Turing

> machine T has a set of 4-tuple (S,I,f,s0) (in its simplest form. I

> know there are other definition, but they could all be boiled down to

> this without a lose in generality). I got this from the book

> âDiscrete Mathematics and its applicationsâ page 776

> (http://www.amazon.com/Discrete-Mathematics-Applications-Kenneth-Rosen/dp/0072899050). Yes, you made me brush up my old CS book.

>

>

> S is a fine set of states (in the

> clock, Register A and the DTD_FLAG)

> I is a finite set of alphabet (in the

> clock 0 and 1)

> f which is a partial function from SxI

> to SxI x {R,L} (this is the program of the clock implemented by the

> tracks and the flip-flops, I and L levers)

> s0, which is the starting state (in our

> case we can set register A and the DTD_FLAG to anything).

>

> The âtapeâ is implemented by the

> ball which reads register A and the DTD_FLAG and manipulates them

> accordingly.

>

> Note that I did not considered the

> other registers, because they are tied together with the buss, so their state is just the same. Also note that there is an optimization

> when the INCREMENT instruction and is actually an INCREMENT and CHECK

> together.

> Paul Pierce wrote: âHowever, I don't

> think the instruction set is sufficient â (see more later)

>

> Note that in the Turing machine

> definition f can be any length (even 1) so you could have a 1

> instruction Turing machine (see 1 bit Turing machines).

>

> Therefore, this is a Turing machine.

> Note that a Turing machine does not require for the tape to change!!!

>

> However, I believe what you meant to

> prove is that this is not a Universal Turing Machine (UTM), which is how we

> should define a CPU (not just a Turing machine). A universal Turing

> machine is one that reads the set of instructions f from the tape.

> This will allow it to simulate an arbitrary Turing machine, and thus

> solve an array of problems. This is why the Harvard Architecture is a

> spatial case, since it has its program in a separate memory

> structure. So I would argue that his clock has an Harvard

> Architecture. Therefore, the only question remaining is whether this

> clock reads the program from memory, and how is this memory

> implemented.

>

> I argue that the program memory is

> implemented in the paths the ball takes, and is burned in using the

> laser as well as the configurations of the flip-flops, so its similar

> to burning the program on a ROM. (although I agree this is a far

> fetch, but just for the sake of discussion). Therefore, I could

> change the program of the clock by simply rotating on of the L levers

> or changing the T flip-flops to an L. I could also, remake the tracks

> of the C register, to check for a different number, or change the B

> register to increment instead of reset (by changing the L to

> flip-flops and reconfiguring the paths).

> Therefore I conclude that this is a

> Universal Turing machine, and thus a CPU.

>

> Paul Pierce wrote: âHowever, I don't

> think the instruction set is sufficient â

> However,

> this is not a complete proof (even if we buy the argument that the

> laser cutter can cut the paths). The reason is that a universal

> machine need be be able to calculate all possible functions which can

> be calculated. Therefore, we need to find if this clock can do that

> (even if we can reprogrammed it, by only using the instructions I

> have given), which I am not able to do at this point. However, See

> Wolfram's 2-state 3-symbol Turing machine

> (http://en.wikipedia.org/wiki/Wolfram%27s_2-state_3-symbol_Turing_machine)

> for what might be the smallest universal Turing machine, but the

> proof is difficult.

>

> Based on that, the I don't believe the DigiComp Ior II is not is a UTM, and threfore should not be called a computer either!

>

>

> However, even if you don't buy the

> argument that the program is read from memory (and I agree this is

> hard to swallow, even for me) or that is can not emulate a Universal Turing

> machine. I still stand by the fact that this is still useful in

> describing a CPU since it has all the major components of a CPU. just like the DigiComp.

> Therefore, it can help people understand what is inside a CPU and how

> a CPU works in a very broad way. Remember, this is for non

> computer-science people, and not for hardware designers trying to

> implement a useful CPU.

>

>

>

> ________________________________

> From: prp_teleport <prp@...>

> To: friendsofdigicomp@yahoogroups.com

> Sent: Thursday, April 19, 2012 2:50 PM

> Subject: Re: [Friends of DigiComp] Mechanical CPU Clock

>

>

> Â

> Some more rigorous definitions than those you found on Wikipedia might help understand whether the clock is a CPU:

>

> Computer - In modern usage, a stored program general purpose digital electronic computer, defined not in terms of its construction but in terms of its capability. In particular, a computer is a machine that would be equivalent to a "Turing Machine" if it had infinite memory. (The "electronic" aspect is not optional in proper usage, but we can discard it for this discussion.)

>

> CPU - Central Processing Unit. Tranditionally, the "control" part of the computer, a computer consisting of control, memory and I/O. The CPU is the defining part of a computer and it is the part that must pass the Turing Machine equivalency test.

>

> Harvard Architecture - A computer where the instructions and data are in separate memory units, and the memory containing the instructions is read-only.

>

> Turing Machine - A rigorous pure mathematical construct proposed by the famous British mathemetician Alan Turing. There is an entire field of mathematics based on it. A Turing Machine is a very simple 1-bit device with an infinite memory. An important early result in the field is that you can construct (mathematically) a computing device in many different ways, and if it has the capabilities of a Turing Machine, then it can be proved that it has exactly the same capability as a Turing Machine, no more and no less. (Execution time is not modelled, so there is no notion of "faster" or "slower", only whether it is the same or not.) So, for instance, if you can show that your construct is able to emulate a Turing Machine, then you have proved that it is exactly the same as a Turing Machine as far as what you could do with it.

>

> All computers, from the tiniest microcontrollers to the largest supercomputer, pass the Turing Machine equivalency test. There is the special case of the Harvard Architecture designs, typical for microcontrollers, where in addition to assuming the memory is infinite you also have to assume that, for the purposes of the test, the instruction and data memories are combined and uniformly accessible for read and write.

>

> The Mechanical Clock is not able to emulate a Turing Machine even if its registers were inifitely large, so its not a computer or a CPU in itself.

>

> You could argue that the Mechanical Clock is a Harvard Architecture machine, where the instructions are encoded in the structure of the pathways for the ball. But this structure is not similar enough to the data memory (the registers) to convincingly argue that they could be unified for the purposes of testing Turing Machine equivalency. So thats out.

>

> If it is possible to emulate a Turing Machine using the 6-instruction assembly language given, then you could argue that the instruction set combined with the laser cutter is a computer, and the clock is one possible program. However, I don't think the instruction set is sufficient (even though its larger than some minimal examples I've seen) because, among possibly other things, it lacks any kind of indirect or computed addressing mechanism. In any case, a single program is not a computer, so the Mechanical Clock is still not a CPU.

>

> The property of Turing Machine equivalence is an extremely important concept in Computer Science, and in my opinion cannot be discarded lightly because its so helpful in understanding how it is that computers can do what they do. So I'm uncomfortable seeing you call the Mechanical Clock a CPU, and more uncomfortable seeing it used to explain what a computer is. Its a fine way to show how logic works, and then to note that a CPU is made out of logic.

>

> I like the way you've combined a logical description (the instructions) with the visual and tactile implementation. You had a tutelage problem you wanted to solve, and came up with a clever approach, but it slightly missed the mark you were ultimately aiming for.

>

> Paul Pierce

>

>

>

>

> [Non-text portions of this message have been removed]

> - View SourceI think number 7 needs to be defined more. So we will need a definition of what does reprogramming means. For example, I believe that the clock can be reprogrammed (even without re-burning the tracks).

For example, we can make it add two numbers (only up 4 bits) by doing the following.

* Reprogram the clock by disconnecting the 3 buss wires from register C to register A (register C is the check).

* Place the first number in register A

* Run the clock for the second number of times

* The result will be in register A

Similarly, subtraction can be made by taking the compliment of the number.

We can also produce other programs by replacing the T flip-flops with L or I.

So this clock can be reprogram. However, this does not mean that it can simulate any program (or any Turing machine).

So I think it is not a Universal Turing Machine (although it will need to be proven) and thus not a True CPU.

Non the less, its still useful in explaining CPU concepts.

Lior.

________________________________

From: awasson2001 <no_reply@yahoogroups.com>

To: friendsofdigicomp@yahoogroups.com

Sent: Thursday, April 19, 2012 10:22 PM

Subject: [Friends of DigiComp] Re: Mechanical CPU Clock

It's definitely a convoluted question of whether it is a CPU or not based on Turing and/or modern definition.

I've been writing software for decades and built 8-bit computers with Hex Keypads back in the late 70's but I've only been really interested in CPU design for about the last 5 - 6 years. As a result I may have a liberal idea of what constitutes a true CPU.

My interpretation of Turing and the definition of a CPU dictates that it must have:

1) an instruction set

2) control

3) program memory

4) accumulator

5) conditional jump

6) the ability to loop

7) the ability to be programmed

I think this unit has the first 6 but I'm not sure that the program can be modified enough to believe that it can be programmed to do anything but be some sort of clock.

It's not to say that it won't ever be a CPU but at the moment it is hard for me to definitively state that it is a CPU.

That said, it's really impressive.

Cheers,

Andrew

--- In friendsofdigicomp@yahoogroups.com, Lior Elazary <lelazary@...> wrote:

>

>

> Thanks for the great insight.

>

> I would “agree” with the definition

> that a CPU “must pass the Turing Machine equivalency test” for it

> is to be considered a CPU. But this machine, does passes the Turing

> Machine equivalence test (although it does not passes the “Turing

> Test” since it can not talk back :)

> However, I think you are on to

> something, which has to do with Universal Turing Machines.

>

> First whether this is a Turing machine:

> I say yes, and here is the proof.

>

> Once simple proof can be based on Church's Thesis which states that that

> any algorithm can be represented as a Turing machine. And since I

> have an algorithm for this clock, it is a Turing machine.

>

> A more formal definition: A Turing

> machine T has a set of 4-tuple (S,I,f,s0) (in its simplest form. I

> know there are other definition, but they could all be boiled down to

> this without a lose in generality). I got this from the book

> “Discrete Mathematics and its applications” page 776

> (http://www.amazon.com/Discrete-Mathematics-Applications-Kenneth-Rosen/dp/0072899050). Yes, you made me brush up my old CS book.

>

>

> S is a fine set of states (in the

> clock, Register A and the DTD_FLAG)

> I is a finite set of alphabet (in the

> clock 0 and 1)

> f which is a partial function from SxI

> to SxI x {R,L} (this is the program of the clock implemented by the

> tracks and the flip-flops, I and L levers)

> s0, which is the starting state (in our

> case we can set register A and the DTD_FLAG to anything).

>

> The “tape” is implemented by the

> ball which reads register A and the DTD_FLAG and manipulates them

> accordingly.

>

> Note that I did not considered the

> other registers, because they are tied together with the buss, so their state is just the same. Also note that there is an optimization

> when the INCREMENT instruction and is actually an INCREMENT and CHECK

> together.

> Paul Pierce wrote: “However, I don't

> think the instruction set is sufficient “ (see more later)

>

> Note that in the Turing machine

> definition f can be any length (even 1) so you could have a 1

> instruction Turing machine (see 1 bit Turing machines).

>

> Therefore, this is a Turing machine.

> Note that a Turing machine does not require for the tape to change!!!

>

> However, I believe what you meant to

> prove is that this is not a Universal Turing Machine (UTM), which is how we

> should define a CPU (not just a Turing machine). A universal Turing

> machine is one that reads the set of instructions f from the tape.

> This will allow it to simulate an arbitrary Turing machine, and thus

> solve an array of problems. This is why the Harvard Architecture is a

> spatial case, since it has its program in a separate memory

> structure. So I would argue that his clock has an Harvard

> Architecture. Therefore, the only question remaining is whether this

> clock reads the program from memory, and how is this memory

> implemented.

>

> I argue that the program memory is

> implemented in the paths the ball takes, and is burned in using the

> laser as well as the configurations of the flip-flops, so its similar

> to burning the program on a ROM. (although I agree this is a far

> fetch, but just for the sake of discussion). Therefore, I could

> change the program of the clock by simply rotating on of the L levers

> or changing the T flip-flops to an L. I could also, remake the tracks

> of the C register, to check for a different number, or change the B

> register to increment instead of reset (by changing the L to

> flip-flops and reconfiguring the paths).

> Therefore I conclude that this is a

> Universal Turing machine, and thus a CPU.

>

> Paul Pierce wrote: “However, I don't

> think the instruction set is sufficient “

> However,

> this is not a complete proof (even if we buy the argument that the

> laser cutter can cut the paths). The reason is that a universal

> machine need be be able to calculate all possible functions which can

> be calculated. Therefore, we need to find if this clock can do that

> (even if we can reprogrammed it, by only using the instructions I

> have given), which I am not able to do at this point. However, See

> Wolfram's 2-state 3-symbol Turing machine

> (http://en.wikipedia.org/wiki/Wolfram%27s_2-state_3-symbol_Turing_machine)

> for what might be the smallest universal Turing machine, but the

> proof is difficult.

>

> Based on that, the I don't believe the DigiComp Ior II is not is a UTM, and threfore should not be called a computer either!

>

>

> However, even if you don't buy the

> argument that the program is read from memory (and I agree this is

> hard to swallow, even for me) or that is can not emulate a Universal Turing

> machine. I still stand by the fact that this is still useful in

> describing a CPU since it has all the major components of a CPU. just like the DigiComp.

> Therefore, it can help people understand what is inside a CPU and how

> a CPU works in a very broad way. Remember, this is for non

> computer-science people, and not for hardware designers trying to

> implement a useful CPU.

>

>

>

> ________________________________

> From: prp_teleport <prp@...>

> To: friendsofdigicomp@yahoogroups.com

> Sent: Thursday, April 19, 2012 2:50 PM

> Subject: Re: [Friends of DigiComp] Mechanical CPU Clock

>

>

>

> Some more rigorous definitions than those you found on Wikipedia might help understand whether the clock is a CPU:

>

> Computer - In modern usage, a stored program general purpose digital electronic computer, defined not in terms of its construction but in terms of its capability. In particular, a computer is a machine that would be equivalent to a "Turing Machine" if it had infinite memory. (The "electronic" aspect is not optional in proper usage, but we can discard it for this discussion.)

>

> CPU - Central Processing Unit. Tranditionally, the "control" part of the computer, a computer consisting of control, memory and I/O. The CPU is the defining part of a computer and it is the part that must pass the Turing Machine equivalency test.

>

> Harvard Architecture - A computer where the instructions and data are in separate memory units, and the memory containing the instructions is read-only.

>

> Turing Machine - A rigorous pure mathematical construct proposed by the famous British mathemetician Alan Turing. There is an entire field of mathematics based on it. A Turing Machine is a very simple 1-bit device with an infinite memory. An important early result in the field is that you can construct (mathematically) a computing device in many different ways, and if it has the capabilities of a Turing Machine, then it can be proved that it has exactly the same capability as a Turing Machine, no more and no less. (Execution time is not modelled, so there is no notion of "faster" or "slower", only whether it is the same or not.) So, for instance, if you can show that your construct is able to emulate a Turing Machine, then you have proved that it is exactly the same as a Turing Machine as far as what you could do with it.

>

> All computers, from the tiniest microcontrollers to the largest supercomputer, pass the Turing Machine equivalency test. There is the special case of the Harvard Architecture designs, typical for microcontrollers, where in addition to assuming the memory is infinite you also have to assume that, for the purposes of the test, the instruction and data memories are combined and uniformly accessible for read and write.

>

> The Mechanical Clock is not able to emulate a Turing Machine even if its registers were inifitely large, so its not a computer or a CPU in itself.

>

> You could argue that the Mechanical Clock is a Harvard Architecture machine, where the instructions are encoded in the structure of the pathways for the ball. But this structure is not similar enough to the data memory (the registers) to convincingly argue that they could be unified for the purposes of testing Turing Machine equivalency. So thats out.

>

> If it is possible to emulate a Turing Machine using the 6-instruction assembly language given, then you could argue that the instruction set combined with the laser cutter is a computer, and the clock is one possible program. However, I don't think the instruction set is sufficient (even though its larger than some minimal examples I've seen) because, among possibly other things, it lacks any kind of indirect or computed addressing mechanism. In any case, a single program is not a computer, so the Mechanical Clock is still not a CPU.

>

> The property of Turing Machine equivalence is an extremely important concept in Computer Science, and in my opinion cannot be discarded lightly because its so helpful in understanding how it is that computers can do what they do. So I'm uncomfortable seeing you call the Mechanical Clock a CPU, and more uncomfortable seeing it used to explain what a computer is. Its a fine way to show how logic works, and then to note that a CPU is made out of logic.

>

> I like the way you've combined a logical description (the instructions) with the visual and tactile implementation. You had a tutelage problem you wanted to solve, and came up with a clever approach, but it slightly missed the mark you were ultimately aiming for.

>

> Paul Pierce

>

>

>

>

> [Non-text portions of this message have been removed]

>

[Non-text portions of this message have been removed]