Electronic – a Programmer’s Model

Architecturehardwaremicroprocessor

The manual of a computer processor usually includes a description of something called programmer's model. This section normally presents the core registers of the processor, operating modes, endianness and the instruction set.

I think the term refers to an abstract model that describes how a programmer should use the core components of the processor to program it. But I'm not sure whether I'm right or not, so I'm looking for a formal definition.

Best Answer

I would describe it as follows...

In a computer system, the programmers model shows what the CPU has available to a programmer for the execution of computer programs. It covers the CPU resources for execution of the CPU's instruction set.

This programmers model would not detail hardware, such as how the CPU's electronic circuitry works, how buses transport data or the I/O peripherals available. In other words, the programmers model would not cover functions that cannot be observed by CPU instructions. The latter excludes programs trying to detect hardware operations, such as cache behaviour, read/write variances because of varying bus delays etc.

I imagine this could be debated but its remained a continual definition for me across the CPU systems I've seen over the years.