• tetris11@feddit.uk
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    6 hours ago

    I think that people just can’t make the software --> hardware jump. Like they understand what machine code is, and what CPU registers are, but can’t understand how a CPU with baked in hardware instructions (i.e. a seemingly fully deterministic piece of hardware) can drive transistors to high or low voltages in a random way.

    The key is to see all software as hardware, and to envision the CPU as many many light bulb switches, with some wired into each other, creating flip/flopping latches.

    Once you get the idea of a flipflop, you can maybe then start to understand how all you really want from the switches is to output a switch configuration that encodes a value in some representation. The switches are all initialized in some state, but then drive a known flipflop path towards a desired value, and this happens millions of time a second, often in parallel with isolated switches, or with switches that are virtually segmented from each other, or switches that can chaotically interact with each other