Add utility functions to read/set matrices of registers
Separate read and write address lines of CPU
Use a matrix of registers instead of an array so that they can be updated in parallel