Project:Ball Computer: Difference between revisions

From London Hackspace Wiki

m
Line 73: Line 73:
Do we read individual bit or a whole nibble? Nibbles make addressing easier. With a 16x16 grid of nibbles (so 32x32 ball slots) you'd be able to use 2 nibbles as an address (16x16 = 256 = 2^8). This would give 1 kilobit (256 nibbles) of memory. If we're using 4/5mm bearings and you allow 8mm by memory cell then this memory would be about 26cm to a side.  
Do we read individual bit or a whole nibble? Nibbles make addressing easier. With a 16x16 grid of nibbles (so 32x32 ball slots) you'd be able to use 2 nibbles as an address (16x16 = 256 = 2^8). This would give 1 kilobit (256 nibbles) of memory. If we're using 4/5mm bearings and you allow 8mm by memory cell then this memory would be about 26cm to a side.  


Physically this doesn't scale too horrendously. If we want to get ambitious then a 64x64 grid of nibbles (128x128 ball slots) would store 4096 nibbles, but would require 3 nibble addresses (12 bits) and be around 1m to a side (it would also require over 16 thousand ball bearings!).
Physically this doesn't scale too horrendously. If we want to get ambitious then a 64x64 grid of nibbles (128x128 ball slots) would store 4096 nibbles, but would require 3 nibble addresses (12 bits) and be around 1m to a side (it would also require over 16 thousand ball bearings!). Could also be a stacked arrangement of draws: that way the third nibble controls which draw to open and how up/down the memory head needs to move. If we assume we need 2cm/draw then the memory would be a cube around 30cm to a side, which would be quite manageable (though note the 16,000 ball bearings would weigh around 8kg if they were all 1s).


This all assumes we use normal binary encoding for memory locations, not BCD. However that would mean adding numbers and addresses would be different.
This all assumes we use normal binary encoding for memory locations, not BCD. However that would mean adding numbers and addresses would be different.