• 0

    posted a message on Data Storage

    One chunk full of chests filled with shulker boxes containing various types and quantities of items can store over 30 megabytes of data, probably more.


    Another alternate "if you're using command blocks anyway" method - move an armor stand around the data instead of all the data around the reader. That scales to large RAM sizes without inducing lag. I can show you a 1-tick decoding method for bits-to-location teleportation if you like.

    Posted in: Redstone Discussion and Mechanisms
  • 0

    posted a message on Data Storage

    If you're using command blocks there's an algorithm for storing 30 megabytes per chunk.

    Posted in: Redstone Discussion and Mechanisms
  • 0

    posted a message on How To Make A Flash Light In Minecraft

    Here is a less spammy clock for alternating between command blocks:


    Posted in: Command Blocks
  • 0

    posted a message on How To Make A Working Shower In Minecraft Easily

    Fun! The short version: command block repeats


    /particle splash <x> <y> <z> 0 0 0 0.01 50 normal
    Posted in: Command Blocks
  • 0

    posted a message on Building a 4 tick pipelined CPU - 16 bit, 1 megabyte of ram - No scoreboard used

    Here are some architecture notes:


    There are no registers. Everything is memory-to-memory like certain early mainframe computers. It's completely orthogonal so every instructions can refer to integer numbers or addresses.

    "c = a + 5" usually means loading and manipulating bunch of temporary registers and saving the answer several clock cycles later.


    In this system 5 is added to contents of "a" and saved to address "c" in two clock cycles. The same goes for all core ops; only secondary systems are sometimes slowed down to redstone speed.


    So this system at 10 hertz can get more accomplished per second than a register-based system running at 100 hertz or more.


    The new goal is to surpass the processing of ENIAC (1945). It could do 40 to 5000+ math operations per second. Of course, you only had 20 words of memory to work with and you had to feed it punch cards to get back a printout of just numbers.

    On a related note, compiler inventor and charming lady Grace Hopper was just posthumously awarded the Presidential Medal of Freedom!

    Posted in: Command Blocks
  • 0

    posted a message on Building a 4 tick pipelined CPU - 16 bit, 1 megabyte of ram - No scoreboard used

    The CPU runs! It has fetched 2 numbers, added them, and stored the result at the correct address. Two stage pipeline.


    This thing is surprisingly low-lag. It looks like multi-core will run smoothly. One issue is the 1000 chunk updates you get to the client if you stare at the running CPU. (After 16? 64? block updates the server forces a chunk reload). It doesn't seem to affect my FPS. The screen will be positioned so that's out of your view and you aren't looking toward any lag-inducing "complex structures" e.g. the RAM when it's full of data.



    About half the initial planned instructions work. The core boring stuff is done and next is fun stuff like user interface and placing blocks in the overworld programatically. Stuff that does more than make lights blink.


    I've slowed it down for testing. The final clock is "too fast for redstone" and has to be command block driven. I can set and remove signals faster than repeaters and torches can react.


    Now I need to write an assembler/compiler so I can write larger test programs by typing instead of placing redstone blocks by hand.


    There have been some interesting accidents, like an out-of-bounds pointer overwriting a big part of the cpu's command blocks with redstone blocks.


    Once I've made some fun programs I'll explain my methods and release a map/schematic.

    Posted in: Command Blocks
  • 0

    posted a message on Building a 4 tick pipelined CPU - 16 bit, 1 megabyte of ram - No scoreboard used

    I'd been playing with that scheme from minecart days too. Ignoring extra packing from using different item types in each slot etc, 6 bits x 27 slots per shulker box x 27 shulker boxes per chest x 65536 blocks per chunk means... 34 megabytes of storage per chunk.


    You can see 34MB yourself with worldedit, //chunk, //set chest


    Convert 30 chunks and you've got a gigabyte. And possibly an angry server host.



    We're gonna need a bigger decoder <jaws.gif>


    Should we load minecraft.jar into a minecraft chunk?

    Posted in: Command Blocks
  • 0

    posted a message on Building a 4 tick pipelined CPU - 16 bit, 1 megabyte of ram - No scoreboard used

    I'd like to see your setup. One thing with avoiding scoreboard is it doesn't have a chance to interfere with any other scoreboard usage on the system. But my eventual goal has turned into a no-mod CPU, not a no-scoreboard CPU, so maybe I'll revisit that.


    I'd also like to do a speed comparison on adding 16 bit numbers and putting the answer in Minecraft overworld.

    Posted in: Command Blocks
  • 0

    posted a message on Building a 4 tick pipelined CPU - 16 bit, 1 megabyte of ram - No scoreboard used

    It looks like I'm ditching registers and doing everything as "Memory to Memory Architecture", e.g. ADD A,B,C adds the numbers from RAM addresses A and B and saves the result directly to RAM address C. Some older mainframes used this architecture.


    I'm tempted to make the whole system run within 1 tick. Fetch, decode, execute, write, set PC, and interact with the rest of Minecraft, including checking to see if we've been externally halted. Rinse and repeat next tick.

    For the expense of a superscalar scheduler I can fire up another full core instead, making it easier on the assembly programmer (me) later. The main CPU won't have to worry about task switching and constantly pushing and popping stacks.


    So I'm breaking from some "modern" concepts because of some unique properties to the Minecraft environment. I'm also accidentally implementing known paradigms, like Very Long Instruction Word as a by-product of the data storage methods used.

    Posted in: Command Blocks
  • 0

    posted a message on Building a 4 tick pipelined CPU - 16 bit, 1 megabyte of ram - No scoreboard used

    I want a minecraft CPU fast enough to be useful in-game, not just run a fibonacci test.


    This design could be zero tick, but it has to slow down to interact with the rest of minecraft; plus, a non-halting program would freeze/crash the server. So pipelined, each 1 redstone tick cycle will be processing 4 instructions at once, best case.


    Here are a couple things I consider clever so far. A 1 tick 16 bit adder that also acts as a program counter:



    Here's version 1 of 64 kilobytes of RAM with 1 tick read or write and multi-thread simultaneous access.



    Version 2 packs 16 bits in a chest, so this 16 cube is a kilobyte of 1 tick read/write. Version 3 will be multiples of that.



    I've brought a megabyte (!) of version 1 online but local rendering fps drops significantly just looking at it idle, just like any 'large structure'. So in practice you can use as much RAM as you want, but at startup you'll need to dimension/format it (one tick) so mountains and streams turn into data holding chests instead.


    I also have a GPU that streams 8x8 color movies at a few frames per second independent of the CPU. It can also compile layered frames into one output frame, so you can do things like move a tetris ball and have background and paddles automatically redraw where they were before.


    Right now I'm building the instruction set. Because blocks and data can be moved around anywhere within loaded chunks, there are some new tricks to pack more activity into any given CPU cycle.


    Besides the GPU instructions, it has add, subtract, shifts, all the logic gates, conditional jumping, and stack manipulation. A couple of these are still being converted to 1-tick. Multiply and divide are going to take some noodling. This rev might be superscalar and/or multi-core - there are trade-offs.


    What obvious stuff am I missing?


    If you're interested in hanging out on this server, point me to something complicated you've built and I'll whitelist you.

    Posted in: Command Blocks
  • 0

    posted a message on Obsidian Pillar Dismantling Cannon

    If you cannon the resting dragon too this would be a pretty fast xp farm.


    If you mine out 7 blocks for the water instead of laying 17 blocks you only have to lay 7 blocks and the redstone - much faster, and you coincidentally don't need to bring anything but the redstone and tnt.


    Nice explanation of tnt timing, btw.

    Posted in: Redstone Discussion and Mechanisms
  • 0

    posted a message on Display idea: 1.5 pixels per block using 64 banners

    I haven't made many banners, but I've seen a 6-cell checkerboard and I've seen an L, and I suspect all 64 combinations of 6 cells on and off are possible.


    If we crafted all 64 variations of 6-celled banners, they could be assembled on a wall to form a bigger picture with 50% more pixel density than using full blocks.


    It might be possible to get even more pixels on a banner. 8 cells per banner (2 2x2 squares) would have double the pixel density of 1x1 block displays.


    Example of 100110:


    Posted in: Command Blocks
  • 0

    posted a message on New project: Redstone CPU to assist Survival players - staff needed

    Davidnator, cool, I've whitelisted you. Jump in the pool whenever.

    Posted in: Server Recruitment
  • 0

    posted a message on New project: Redstone CPU to assist Survival players - staff needed

    We now have an ALU and some smaller gadgets. There are a few command blocks for lag-friendly bussing between components. That should also let let us cram a lot of co-processors in without worrying about space.

    Posted in: Server Recruitment
  • 0

    posted a message on New project: Redstone CPU to assist Survival players - staff needed

    Snakey, sounds good, I've whitelisted you at the temporary address 209.222.103.218:28583

    Posted in: Server Recruitment
  • To post a comment, please or register a new account.