Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This seems extremely humble and yet extremely useful. I have not started looking into electrical engineering though I do have interest in it. How would this sort of chip scale? For sonething like an add, would you send each bit to a chip then collect all 1+1s and add them to correct bits? Im sincerely curious. Maybe I think this is more amazing than it is


This seems to be essentially a programmable state machine. You have a series of inputs, states encoded in program memory and a series of outputs. In a real computer, the whole state machine is usually constructed of gates and flip flops and tightly optimized. If fact a typical processor would contain hundreds of thousands of little state machines doing things like sequencing or flow control between different modules.

I don't think such a design would scale up. You cannot put 32 of these together and make a powerful 32-bit computer. There are lots of operations where the bit positions would need to interact. For example an adder where the carry bit must ripple between the bit positions.

Now which is better, this 1-bit computer of a 32-bit computer? It depends on what you want it to do. If all you want to do is take some switch inputs and turn on control some lights, maybe the 1-bit computer is simple, reliable and low latency. But what if you wanted to blink the lights or add some timer delays and suddenly that 1-bit computer doesn't meet your needs without adding a timer source.


First of all the machine should have enough RAM to hold the numbers you want to add. Say two 3-bit numbers a and b:

    a2 a1 a0
  + b2 b1 b0
  ----------
  = c2 c1 c0
Then to do the addition by testing one bit at a time think like

  if (a0==0)
    if (b0==0)
      c0 = 0;
    else 
      c0 = 1;
  else
    if (b0==0)
      c0 = 1;
    else 
      c0 = 0;
  ...


And how do you store the carry bits (this machine only has 2 bits of state)? Or do you encode carries by pure branching?


It would be tedious to do it all by pure branching. You would need a 64-way branch for c2. If you can't spare one separate RAM bit for a carry you could store the carries in the c2 location and start the computation of c2 by if (c2==...




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: