4 ms·
Alpha (1990s) had something along those lines called PALcode. Also check out the term "millicode" (IBM system/390, also 1990s). It's probably higher level than
by mbitsnbites 5y ago
Alpha (1990s) had something along those lines called PALcode. Also check out the term "millicode" (IBM system/390, also 1990s).
It's probably higher level than you are asking for, though.
The ISA is actually there as an abstraction layer, to allow CPU manufacturers to innovate "under the hood" w/o breaking software compatibility (serves roughly the same purpose as an API).
Giving programmers direct access to the inner workings of a CPU would mean that the software would only work on a very specific model (e.g. work fine on AMD Zen 2, but crash and burn on AMD Zen 3), since lots of things change from model to model (e.g. number of pipelines, instruction latencies, ALU implementation details, etc).
Worth noting: Some DSP ISA:s are quite close to "the metal". They are designed for maximum energy efficiency, and thus sacrifice some "convenience" functionality such as hardware hazard resolution (e.g. stall pipeline until result is reasy), meaning that the compiler needs to take care of instruction scheduling etc.