ChrisPerson Posted February 15, 2013 Posted February 15, 2013 Calling all redstone nerds gurus! Have you ever had an issue with memory? Say you're making some kind of system that needs a LOT of memory. Maybe a computer, a game, something. If you need to store over, say, 32 bits, this might be for you: Meet the BBM device, or Block-to-Bit Memory Storage Device, capable of storing memory in what is arguably the most efficient method possible. This is beyond those handy RS latches, beyond toggle gates, beyond most other forms of memory. The system is a fairly simple concept, but actually much harder to wire up than it may seem. But first, to understand how it works and what exactly it does, we have to go back to basics. If you're reading this, you probably know what a repeater is, right? And how it transfers power, right? There's a very useful property of repeaters - be it block or wire, they transfer a redstone "charge" to whatever is in front of them - if it can be charged. Transparent blocks, such as air or glass, cannot be charged, but something like stone or marble bricks can be. Here's the catch - the "charged" blocks power whatever is near them too, but only if it's something like another repeater or a wire. This means that it's possible to detect if a block is in between a space or not. But we've had this technology for ages, even in Vanilla Minecraft. What use could this possibly be put t- Oh. OK, so you can have a small array of repeaters set up. The repeaters on one side power blocks, if they're there, and repeaters on the other side input to colored wires, which run into a bundled cable... So you can detect large strings of blocks. That's nice. But unless you can, you know, somehow move your repeaters, you can't do anything wit- Aw hell yeah. Yes indeed, the entire thing is made out of frames, and powered by two Inchworm-class drives. Using a kind of blocky "tape", the device can slide along said tape, allowing for the mass reading of arrays of blocks - each space that a block could be in is a bit, each row of blocks is a byte. The demo I built was supposed to be 8-bit, but I somehow screwed it up and made 9-bit memory instead. So that's nice. But this is memory, right? Unless you're making ROM, it's only truly useful if you can read AND write memory. Did I mention that aside from the read module, on the "carriage", as I'll refer to it from now on, has a write module too: You can't see it too well, it's at the very top. The general idea is that there's 9 block breakers and 9 deployers, each and every one of them individually controlled. It never runs out of marble for the bits either - the block breakers' outputs are fed directly into the deployers via pneumatic tube. When you want to write a bit, you deploy a block. When you want to erase a bit, you break a block. Some more images: This is a view of the "tape" that the BBM reads and writes to - the rails that the carriage run along can be easily extended such that the memory can be extended with ease. This is the master control panel. The two center red buttons control vertical movement, the buttons on the sides control whether you place a block or destroy a block (for the write module), and the white lamps on the top are the output of the read module. As you can see, the carriage runs on a series of wires that send information and resources to the carriage - signals to go up and down, control information for the write module, read module output, and a bluetricty cable to power the inchworm drives. All this could probably be condensed a LOT. Important Facts: The carriage moves at a pace of 1 block every two seconds, hence the name of its propulsion system, the "inchworm" drive. Because of this, I recommend usage of BBM type memory as non-RAM memory - it is best used for writing programs/codes to a large computer system. This design is only a prototype, and is a simple proof of concept. It is not designed to be used in anything major, hence it is rather bulky. Future versions can be made far more compact, and possibly faster. There are 16 different kinds of colored wires, and 16 types of colored bundled cables. This means that it is possible to make a memory system with capacity for a 256 bit system. WORLD DOWNLOAD: Located on the PlanetMinecraft project page, for simplicity's sake. Link: PlanetMinecraft: BBM Memory Questions? Comments? Ideas on how to improve the design? By all means, ask your questions and tell me your comments, either here or through a PM! Quote
Chefsbrian Posted February 18, 2013 Posted February 18, 2013 That... Is beautiful. I'd have less than no idea what exactly to build with it, but I can only imagine what sort of systems could be built off of this. Although I don't think I'd be much up for using that when I can't even really grasp Redpower's language (Fourth or Forth? XD) Quote
Korialstrasz Posted February 18, 2013 Posted February 18, 2013 well it reminds me of this. Just that you found a clever way of writing the code. Quote
ChrisPerson Posted February 18, 2013 Author Posted February 18, 2013 So first of all, I can see how the reader in the video is similar to this, but even if it could write to the tape(virtually impossible in Vanilla minecraft), it'd still have massive limitations, mostly due to the pistons. Pistons can only push something like 12 blocks at a time, so that would mean that your tape would not have the capacity to be much longer. So each and every time you run out of tape, you have to make a new one of those devices - with my device, you can build it sideways, for all I care, and it'll still work. As for any possible uses, I was thinking that it could be used as a kind of "hard drive" for advanced redstoners with computer-building skills, or for less-advanced options, it could store things like times tables, or records of what happened, that kind of thing. I started on building this with the idea of making a very basic trigonometry calculator in mind. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.