.
Mu seems to be some sort of minimal software stack and uCISC is some sort of minimal CISC on which to run it - with fixed length 16 bit instructions.
Quote:
All instructions, therefore, should be 16-bits wide including the immediate value. Variable instruction widths are not allowed since this makes things harder to mentally keep track of.
Maximum Value
The instruction set should pack as much value as possible in the limited space. This means that clever tricks are used to get double use of instructions. Humans are clever beings that can wield powerful tools in creative ways. It makes the learning curve a bit higher, but the payoff is big.
For example, uCISC doesn't have jump instructions. A copy, move or transform instruction will do just fine if the resulting value is stored in the program counter.
Constant Time Peformance
All instructions should execute in a consistent time on a processor. There are a few cases where this is not possible (e.g. page to/from main memory). This implies consistent instruction size, roughly equivalent instruction computation time, etc.
This also means no caching is allowed since cache misses necessarily produce longer execution times. The local CPU memory is essentially the cache and paging is manually handled by the program.
- From
uCISC IntroductionThat is, rather than a single page, the deal is to make something understandable by a single person:
via Kartik Agaram on mastodon