tdr wrote
it looks like it is similar with the clock.are they one and the same?
Think of "load" this way: the "in" bus always has some value. If you just want to read the data stored in the Bit/Register/Memory register, this value must be ignored. You do that by making sure that "load" is 0.
When you want to update the value, you make load 1.
The clock is a synchronization mechanism. In the real world chips, things don't happen at the same time. The clock should be slow enough so that the slowest parts of the chip can get their outputs settled, so they can be used by the next iteration.
For example, consider if the HACK CPU needs to store certain value in a specific address in the RAM. It has to produce the value on its outM[16] output, the address on it's addressM[15] output, and it needs to set writeM to 1. Without the clock, as soon as the writeM is set to 1, the RAM will start writing whatever is in outM on whatever address is specified on addressM. Not a good way to do computing.