Warm tip: This article is reproduced from stackoverflow.com, please click
embedded system machine-language microcoding

Connection between microprogramming and embedded systems

发布于 2020-04-11 11:51:52

What is the connection between microprogramming and embedded systems?

Is microprogramming a machine language?

Microprogramming it is the same as microcode?

Are embedded systems manufactured using microprogramming only?

Or isn't it an exclusivity of an embedded system that is using microprogramming?

If possible, please exemplify. Thanks!

Questioner
ℛɑƒæĿ
Viewed
45
Erik Eidt 2020-02-02 09:34

Microprogramming / microcoding is an implementation technique for processors — as such dates back pretty far.

A processor implements an instruction set; programs using these instructions are generated by a compiler or assembly language programmer and stored in program files, later loaded into memory to execute the program.

A microcoded processor is like having another, different processor-within-the-processor that is used to interpret the instruction stream (sequences of machine language) of the program.  This processor within the processor has its own instructions set and its own program.  Unlike the externally visible instruction set (which can load & run any program), the processor within the processor generally only runs one dedicated program (the instruction set interpreter), which is stored in a ROM (or re-writable flash) inside the processor.

(In some such systems, the processor within the processor has instructions that are very wide (as in horizontal microcode), and impractical (regarding code size) for general use by regular programs.)


What is the connection between microprogramming and embedded systems?

There is no particular relationship between microcoding and embedded.  Yes/no on either can be mixed with each other.


Is microprogramming a machine language?

Yes, I would say it is, but it is generally not accessible to operating systems and user programs.


Microcoding was particularly popular when virtually all instructions each executed in multiple cycles.  Later techinques removed the indirection of the microcoded machine in favor of direct hardwired execution, with single cycle approaches.  This publication sheds some light on some of the thinking of the day during the transition of the state of the art from microcoding to hard wiring.  See also IBM 801.

Most processors these days are not microprogrammed; however, the very advanced techniques applied by x86 processors may mimic microprogramming techniques here and there.


Embedded systems are simply processors used in devices that are not seen as "computers", for example, a thermostat, a microwave, or a car (which might have numerous embedded systems).  Considerations here are that these systems are dedicated: they tend to run a single program (rather than running an operating system capable of running any program the user directs); they have low power requirements, disconnected requirements (disconnected from user terminal/screen/keyboard, perhaps from network, etc..).  Still, embedded system keep getting even more powerful.