(like the truck) 1. abbr. See multiply-and-accumulate.

2. abbr. See MAC address.

MAC address

n. A globally unique 48-bit hardware address assigned to each device on a network. Every system on a physical network, like Ethernet or Token Ring, includes a peripheral called a network controller. This chip is the processor's interface to the physical communications medium. As part of its initialization, the network controller must be fed a unique hardware address to use when communicating over the network. In the case of Ethernet, the hardware address is a 48-bit value. To guarantee global uniqueness, the upper 24 bits are controlled by the IEEE, which allocates them to individual device manufacturers. See OUI for more information about obtaining a block of Ethernet addresses for your company.


(meh bee) pre. The prefix meaning 220. Abbreviated Mi.

  • 1 mebibit: 1 Mibit = 1,048,576 bits
  • 1 mebibyte: 1 MiB = 1,048,576 bytes

See also binary prefixes, mega-.

memory map

n. A table or diagram containing the name and address range of each peripheral and memory device within a processor's memory space. Memory maps are a helpful aid in getting to know one's target.

memory map

A memory map for a real-mode x86 processor with memory-mapped I/O

memory-mapped I/O

n. A common hardware design methodology in which peripheral control and status registers are mapped into the memory space rather than the I/O space. From the software developer's point of view, memory-mapped I/O devices look very much like memory devices. Their registers can even be accessed via ordinary pointers and data structures, greatly simplifying device driver implementation.

Contrast with ported I/O.

memory space

n. A processor's standard address space.

Contrast with I/O space.


n. A highly integrated microprocessor designed specifically for use in embedded systems. Microcontrollers typically include an integrated CPU, memory (a small amount of RAM, ROM, or both), and other peripherals on the same chip. Common examples are Microchip's PIC, the 8051, Intel's 80196, and Motorola's 68HCxx series.


n. A piece of silicon containing a general-purpose CPU. The most common examples are Intel's 80x86 and Motorola's 680x0 families.


(miz-rah see) n. A set of 127 guidelines for the use of C in safety-critical software. Although widely used in automotive systems, for example, ISO standard C is not itself properly suited to the development of safety-critical software. The MISRA C guidelines attempt to shore up weaknesses in the programming language standard so that something very like C can be used to reliably develop safe software.

MISRA C can be considered a subset of ISO C; the discarded language constructs are those deemed most prone to error. For example, rule 35 prohibits the use of assignments within Boolean expressions; thus, simple if (x = 1) typos can't cause run-time errors that are difficult to detect and debug. If enforced by a code-checking tool as part of the build process, these rules can be complied with selectively and easily. [more]

FURTHER READING: Guidelines for the Use of the C Language in Vehicle Based Software. Motor Industry Software Reliability Association, April 1998. Available for purchase at


1. n. A language-level intertask synchronization primitive. Java is the only language in the embedded systems space that supports monitors.

2. n. The CRT or LCD display attached to a computer.

3. See debug monitor.


adj. Describes a special CPU instruction, common on digital signal processors, that performs both a multiplication and an addition in a single instruction cycle. The result of the multiplication is typically added to a sum kept in a register. Abbreviated MAC. A multiply-and-accumulate instruction is helpful for speeding up the execution of the many digital filters and transforms required in signal processing applications. In recent years, many microprocessor and microcontroller makers have included a MAC instruction on their products as well.


n. The use of more than one processor in a single computer system. So-called multiprocessor systems usually have a common memory space through which all of the processors can communicate and share data. In addition, some multiprocessor systems support parallel processing.


n. The execution of multiple software routines in pseudoparallel. Each routine represents a separate thread of execution. The operating system is responsible for simulating parallelism by parceling out the processor's time to the individual threads. [more]


See multitasking.


(mew tex) n. An operating system data structure used by tasks to ensure exclusive access to shared variables or hardware registers. Short for mutual exclusion. A mutex is a multitasking-aware binary flag that can be used to synchronize the activities of multiple tasks. As such, it can protect critical sections from interruption and shared resources from simultaneous accesses.

USAGE: The term "mutex" is best reserved only for binary semaphores that are aware of the potential for priority inversions and implement an appropriate workaround. But beware that many RTOS vendors do not make such distinctions.


mutual exclusion

n. A guarantee of exclusive access to a shared resource. In embedded systems, the shared resource is typically a block of memory, a global variable, a peripheral, or a set of registers. Mutual exclusion is typically achieved with the use of a mutex.