FACTOID # 29: 73.3% of America's gross operating surplus in motion picture and sound recording industries comes from California.
 
 Home   Encyclopedia   Statistics   States A-Z   Flags   Maps   FAQ   About 
   
 
WHAT'S NEW
RELATED ARTICLES
People who viewed "Microprogram" also viewed:
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > Microprogram

A microprogram implements a CPU instruction set. Just as a single high level language statement is compiled to a series of machine instructions (load, store, shift, etc), each machine instruction is in turn implemented by a series of microinstructions, sometimes called a microprogram. The most common term is microcode, not microprogram. CPU can stand for: in computing: Central processing unit in journalism: Commonwealth Press Union in law enforcement: Crime prevention unit in software: Critical patch update, a type of software patch distributed by Oracle Corporation in Macleans College is often known as Ash Lim. ... An instruction set, or instruction set architecture (ISA), describes the aspects of a computer architecture visible to a programmer, including the native datatypes, instructions, registers, addressing modes, memory architecture, interrupt and exception handling, and external I/O (if any). ... A high-level programming language is a programming language that is more user-friendly, to some extent platform-independent, and abstract from low-level computer processor operations such as memory accesses. ... A compiler is a computer program that translates a computer program written in one computer language (called the source language) into an equivalent program written in another computer language (called the output or the target language). ... A system of codes directly understandable by a computers CPU is termed this CPUs native or machine language. ...


On most computers the microcode is not produced by a compiler, but exists in a special high speed memory. The microcode is written by the CPU engineer during the design phase. In some computers the microcode is in RAM and can be altered to correct bugs in the instruction set, or to implement new machine instructions. Microcode can also allow one computer microarchitecture to emulate another, usually more-complex architecture. Sharma Ram (disambiguation) Ram Sharma is an amazing, talented teenager that lives in Canada His talents include rapping, comedy, and cooking He is bound to success! ... Microarchitecture consists of a set of microprocessor design techniques used to implement the instruction set (including microcode, pipelining, cache systems, etc. ... An emulator reproducing a console games playable atmosphere on a Windows computer. ...


The elements composing the microprogram exist on a lower conceptual level than the more familiar assembler instructions. Each element is differentiated by the "micro" prefix to avoid confusion: microprogram, microcode, microinstruction, microassembler, etc.


Microprograms are carefully designed and optimized for the fastest possible execution, since a slow microprogram would yield a slow machine instruction which would in turn cause all programs using that to be slow. The microprogrammer must have extensive low-level hardware knowledge of the computer circuitry, as the microcode controls this.


The memory in which the CPU's microcode resides is called a control store. The microcode may be stored in ROM (as a form of firmware) or loaded into RAM memory as part of the initialization of the central processing unit. To meet Wikipedias quality standards, this article or section may require cleanup. ... Intel 80486DX2 microprocessor in a ceramic PGA package A central processing unit (CPU), or sometimes simply processor, is the component in a digital computer that interprets instructions and processes data contained in software. ... A control store is the part of a CPUs control unit that stores the CPUs microprogram. ... In computing, firmware is software that is embedded in a hardware device. ... Sharma Ram (disambiguation) Ram Sharma is an amazing, talented teenager that lives in Canada His talents include rapping, comedy, and cooking He is bound to success! ...


Microprograms consist of series of microinstructions. These microinstructions control the computer's central processing unit (CPU) at a very fundamental level. For example, a single typical microinstruction might specify the following operations: Intel 80486DX2 microprocessor in a ceramic PGA package A central processing unit (CPU), or sometimes simply processor, is the component in a digital computer that interprets instructions and processes data contained in software. ... Intel 80486DX2 microprocessor in a ceramic PGA package A central processing unit (CPU), or sometimes simply processor, is the component in a digital computer that interprets instructions and processes data contained in software. ...

  • Connect Register 1 to the "A" side of the ALU
  • Connect Register 7 to the "B" side of the ALU
  • Set the ALU to perform two's-complement addition
  • Set the ALU's carry input to zero
  • Store the result value in Register 8
  • Update the "condition codes" with the ALU status flags ("Negative", "Zero", "Overflow", and "Carry")
  • Microjump to MicroPC nnn for the next microinstruction

To simultaneously control all of these features, the microinstruction is often very wide, for example, 56 bits or more. ALU redirects here. ... ALU redirects here. ...

Contents


The reason for microprogramming

Microcode was originally developed as a simpler method of developing the control logic for a computer. Initially CPU instruction sets were "hard wired". Each machine instruction (add, shift, move) was implemented directly with circuitry. This provided fast performance, but as instruction sets grew more complex, hard-wired instruction sets became more difficult to design and debug.


Microcode alleviated that problem by allowing CPU design engineers to write a microprogram to implement a machine instruction rather than design circuitry for that. Even late in the design process, microcode could easily be changed, whereas hard wired instructions could not. This greatly facilitated CPU design and led to more complex instruction sets.


Another advantage of microcode was the implementation of more complex machine instructions. In the 1960s through the late 1970s, much programming was done in assembly language, a symbolic equivalent of machine instructions. The more abstract and higher level the machine instruction, the greater the programmer productivity. The ultimate extension of this were "Directly Executable High Level Language" designs. In these each statement of a high level language such as PL/1 would be entirely and directly executed by microcode, without compilation. The IBM Future Systems project and Data General Fountainhead Processor were examples of this. Those systems were never produced, but elements of the IBM project were implemented in the System/38 and AS/400, which used extensive microprogramming to implement high level constructs. For example the System/38 and AS/400 could perform a relational SQL join in a machine instruction. In the late 1960s and early 1970s, IBM considered modifying radically the conception of their computing environment to avoid a number of foreseeable bottlenecks in the 1980s given the predicted rate of change. ... Data General was one of the first minicomputer firms from the late 1960s. ... The IBM System/38 was a computer. ... The Application System/400 (also known as AS/400, iSeries (since 2000) and System i5 (since 2006)) is a type of minicomputer produced by IBM. It was first produced in 1988 and, as of 2006, is still in production. ... A join combines records from two or more tables in a relational database. ...


Microprogramming also helped alleviate the memory bandwidth problem. During the 1970s, CPU speeds grew more quickly than memory speeds. Numerous acceleration techniques such as memory block transfer, memory pre-fetch and multi-level caches helped reduce this. However high level machine instructions (made possible by microcode) helped further. Fewer more complex machine instructions require less memory bandwidth. For example complete operations on character strings could be done as a single machine instruction, thus avoiding multiple instruction fetches.


Architectures using this approach included the IBM System/360 and DEC VAX family used complex microprograms. The IBM System/38 and AS/400 took this concept even further. The approach of using increasingly complex microcode-implemented instruction sets was later called CISC. International Business Machines Corporation (IBM, or colloquially, Big Blue; NYSE: IBM) is a computer technology firm headquartered in Armonk, NY, USA. The company, which was founded in 1888 and incorporated June 15, 1911, manufactures and sells computer hardware, software, infrastructure services, hosting services, and consulting services. ... System 360 Model 65 operators console, with register value lamps and toggle switches (middle of picture) and emergency pull switch (upper right). ... Digital Equipment Corporation was a pioneering company in the American computer industry. ... VAX is a 32-bit computing architecture that supports an orthogonal instruction set (machine language) and virtual addressing (i. ... A Complex Instruction Set Computer (CISC) is an instruction set architecture (ISA) in which each instruction can indicate several low-level operations, such as a load from memory, an arithmetic operation, and a memory store, all in a single instruction. ...


Other benefits

A processor's microprograms operate on a more primitive, totally different and much more hardware-oriented architecture than the assembly instructions visible to normal programmers. In coordination with the hardware, the microcode implements the programmer-visible architecture. The underlying hardware need not have a fixed relationship to the visible architecture. This makes it possible to implement a given instruction set architecture on a wide variety of underlying hardware micro-architectures.


Doing so is important if binary program compatibility is a priority. That way previously existing programs can run on totally new hardware without requiring revision and recompilation. However there may be a performance penalty for this approach. The tradeoffs between application backward compatibility vs CPU performance are hotly debated by CPU design engineers.


The IBM System/360 has a 32-bit architecture with 16 general-purpose registers, but most of the System/360 implementations actually used hardware implementing a much simpler underlying microarchitecture. The 360 Model 30, the slowest model in the line, used an 8-bit microarchitecture with only a few hardware registers; everything that the programmer saw was emulated by the microprogram. Other, faster models used 16-bit or 32-bit underlying microarchitectures that more-closely resembled the programmer-visible architecture; this allowed much faster execution speeds.


In this way, microprogramming enabled IBM to design many System/360 models with substantially different hardware and spanning a wide range of cost and performance, while making them all architecturally compatible. This dramatically reduced the amount of unique system software that had to be written for each model.


A similar approach was used by Digital Equipment Corporation in their VAX family of computers. Initially a 32-bit TTL processor in conjunction with supporting microcode implemented the programmer-visible architecture. Later VAX versions used different microarchitectures, yet the programmer-visible architecture didn't change. A Motorola 68000-based computer with various TTL chips. ...


Microprogramming also reduced the cost of field changes to correct defects (bugs) in the processor; a bug could often be fixed by replacing a portion of the microprogram rather than by changes being made to hardware logic and wiring. A computer bug is an error, flaw, mistake, failure, or fault in a computer program that prevents it from working as intended, or produces an incorrect result. ...


History

Before 1951, the control logic for central processing units was designed by ad hoc methods. One of the simplest was to use rings of flip-flops to sequence the computer's control logic. Ad hoc is a Latin phrase which means for this [purpose]. It generally signifies a solution that has been tailored to a specific purpose, such as a tailor-made suit, a handcrafted network protocol, and specific-purpose equation and things like that. ... This article is about the electronic component. ...


In 1951 Maurice Wilkes had a fundamental insight. He realized that if one takes the control signals for a computer, one could understand them as being played much like a player piano roll. That is, they are controlled by a sequence of very wide words constructed of bits. 1951 (MCMLI) was a common year starting on Monday; see its calendar. ... Maurice V. Wilkes Maurice Vincent Wilkes (born June 26, 1913 in Dudley, Staffordshire, England) is a British computer scientist, credited with several important developments in computing. ... The player piano is a type of piano that plays music without the need for a human pianist to depress the normal keys or pedals. ... This article is about the unit of information; for other uses, see Bit (disambiguation). ...


Implementation

A microprogram provides the bits to control these. The fundamental advance is that CPU control becomes a specialized form of a computer program. It thus transforms a complex electronic design challenge (the control of a CPU) into a less-complex programming challenge.


To take advantage of this, computers were divided into several parts:


A microsequencer picked the next word of the control store. A sequencer is mostly a counter, but usually also has some way to jump to a different part of the control store depending on some data, usually data from the instruction register and always some part of the control store. The simplest sequencer is just a register loaded from a few bits of the control store. In the field of computer architecture and engineering, a sequencer or microsequencer, is a part of a control unit of a CPU. It generates the addresses used to step through the microprogram of a control store. ... A control store is the part of a CPUs control unit that stores the CPUs microprogram. ... In computing, an instruction register is the part of a CPUs control unit that stores an instruction. ...


A register set is a fast memory containing the data of the central processing unit. It may include the program counter, stack pointer, and other numbers that are not easily accessible to the application programmer. Often the register set is triple-ported, that is, two registers can be read, and a third written at the same time. In computer architecture, a processor register is a small amount of very fast computer memory used to speed the execution of computer programs by providing quick access to commonly used values—typically, the values being in the midst of a calculation at a given point in time. ...


An arithmetic and logic unit performs calculations, usually addition, logical negation, a right shift, and logical AND. It often performs other functions, as well. ALU redirects here. ...


There may also be a memory address register and a memory data register, used to access the main computer storage. The memory address register is the register of a computers control unit that contains the address of a register to fetch or store from or to the computer storage. ... The memory data register is the register of a computers control unit that contains the contents of a register to fetch or store from or to the computer storage. ... To meet Wikipedias quality standards, this article or section may require cleanup. ...


Together, these elements form an "execution unit." Most modern CPUs have several execution units. Even simple computers usually have one unit to read and write memory, and another to execute user code. In computer engineering, an execution unit is a part of a CPU that performs the operations and calculations called for by the program. ... Intel 80486DX2 microprocessor in a ceramic PGA package A central processing unit (CPU), or sometimes simply processor, is the component in a digital computer that interprets instructions and processes data contained in software. ...


These elements could often be bought together as a single chip. This chip came in a fixed width which would form a 'slice' through the execution unit. These were known a 'bit slice' chips.


The parts of the execution units, and the execution units themselves are interconnected by a bundle of wires called a bus. In computer architecture, a bus is a subsystem that transfers data or power between computer components inside a computer or between computers. ...


Programmers develop microprograms. The basic tools are software: A microassembler allows a programmer to define the table of bits symbolically. A simulator program executes the bits in the same way as the electronics (hopefully), and allows much more freedom to debug the microprogram. A microassembler is a type of software used to design the control unit of a computer. ... A simulation is an imitation of some real device or state of affairs. ...


A typical micromachine's control word has a field, a range of bits, to control each piece of electronics in the CPU. For example, one simple arrangement might be:


| register source A | register source B | destination register | arithmetic and logic unit operation | type of jump | jump address | ALU redirects here. ...


For this type of micromachine to implement a jump instruction with the address following the jump op-code, the microassembly would look something like:

 # Any line starting with a number-sign is a comment # This is just a label, the ordinary way assemblers symbolically represent a # memory address. InstructionJUMP: # To prepare for the next instruction, the instruction-decode microcode has already # moved the program counter to the memory address register. This instruction fetches # the target address of the jump instruction from the memory word following the # jump opcode, by copying from the memory data register to the memory address register. # This gives the memory system two clock ticks to fetch the next # instruction to the memory data register for use by the instruction decode. # The sequencer instruction "next" means just add 1 to the control word address. MDR, NONE, MAR, COPY, NEXT, NONE # This places the address of the next instruction into the PC. # This gives the memory system a clock tick to finish the fetch started on the # previous microinstruction. # The sequencer instruction is to jump to the start of the instruction decode. MAR, 1, PC, ADD, JMP, InstructionDecode # The instruction decode is not shown, because it's usually a mess, very particular # to the exact processor being emulated. Even this example is simplified. # Many CPUs have several ways to calculate the address, rather than just fetching # it from the word following the op-code. Therefore, rather than just one # jump instruction, those CPUs have a family of related jump instructions. 

The above is an example of "horizontal" microcode. This is microcode that sets all the bits of the CPU's controls on each tick of the clock that drives the sequencer. An assembler is a computer program for translating assembly language — essentially, a mnemonic representation of machine language — into object code. ...


Note how many of the bits in horizontal microcode contain fields to do nothing. Some CPUs use a completely different design called "vertical" microcode to reduce cost. Some vertical microcodes are just the assembly language of a simple conventional computer that is emulating a more complex computer. This technique was popular in the time of the PDP-8. Another form of vertical microcode has two fields: A PDP-8 on display at the Smithsonians National Museum of American History in Washington, D.C.. This example is from the first generation of PDP-8s, built with discrete transistors and later known as the Straight 8. ...


| field select | field value |


The "field select" selects which part of the CPU will be controlled by this word of the control store. The "field value" actually controls that part of the CPU. With this type of microcode, a designer explicitly chooses to make a slower CPU to save money by reducing the unused bits in the control store; however, the reduced complexity may increase the CPU's clock frequency, which lessens the effect of an increased number of cycles per instruction.


Because transistors are becoming cheaper, horizontal microcode is coming to dominate the design of hardware control units. As of the early 2000s, CPUs no longer use vertical microcode except perhaps in emulator software designed to run on a standard computer. 2000s - Wikipedia, the free encyclopedia /**/ @import /skins-1. ... An emulator reproducing a console games playable atmosphere on a Windows computer. ...


After the microprogram is finalized, and extensively tested, it is sometimes used as the input to a computer program that constructs logic to produce the same data. This program is similar to those used to optimize a programmable logic array. No known computer program can produce optimal logic, but even pretty good logic can vastly reduce the number of transistors from the number required for a ROM control store. This reduces the cost and power used by a CPU. A programmable logic device or PLD is an electronic component used to build digital circuits. ...


Writable control stores

A few computers were built using "writable microcode" -- rather that storing the microcode in ROM or hard-wired logic, the microcode was stored in a RAM called a Writable Control Store or WCS. Many of these machines were experimental laboratory prototypes, but there were also commercial machines that used writable microcode, such as early Xerox workstations, the DEC VAX 8800 ("Nautilus") family, and a number of IBM System/370 implementations. Many more machines offered user-programmable writeable control stores as an option (including the HP 2100 and DEC PDP-11/60 minicomputers). WCS offered several advantages including the ease of patching the microprogram and, for certain hardware generations, faster access than ROMs could provide. User-programmable WCS allowed the user to optimize the machine for specific purposes. Xerox Palo Alto Research Center (PARC) was a flagship research division of the Xerox Corporation, based in Palo Alto, California, USA, which essentially created the modern personal computer paper paradigm. ... Digital Equipment Corporation was a pioneering company in the American computer industry. ... VAX is a 32-bit computing architecture that supports an orthogonal instruction set (machine language) and virtual addressing (i. ... International Business Machines Corporation (IBM, or colloquially, Big Blue; NYSE: IBM) is a computer technology firm headquartered in Armonk, NY, USA. The company, which was founded in 1888 and incorporated June 15, 1911, manufactures and sells computer hardware, software, infrastructure services, hosting services, and consulting services. ... The System/370 is a model range of IBM mainframes introduced in the early 1970s as the successors to the System/360 family. ... ... Hewlett-Packards first computer, the 2116A of the HP-2100 series, was developed in the late 1960s. ... The PDP-11 was a 16-bit minicomputer sold by Digital Equipment Corp. ... Minicomputer (colloquially, mini) is a largely obsolete term for a class of multi-user computers which make up the middle range of the computing spectrum, in between the largest multi-user systems (traditionally, mainframe computers) and the smallest single-user systems (microcomputers or personal computers). ...


A CPU that uses microcode generally takes several clock cycles to execute a single instruction, one clock cycle for each step in the microprogram for that instruction. Some CISC processors include instructions that can take a very long time to execute. Such variations in instruction length interfere with pipelining and interrupt latency. A microprogram is a program consisting of microcode that controls the different parts of a computers central processing unit (CPU). ... A Complex Instruction Set Computer (CISC) is an instruction set architecture (ISA) in which each instruction can indicate several low-level operations, such as a load from memory, an arithmetic operation, and a memory store, all in a single instruction. ... In computer science, an interrupt is an asynchronous signal from hardware or software indicating the need for attention. ... Latency is the time a message takes to traverse a system. ...


Microcode versus VLIW and RISC

The design trend toward heavily microcoded processors with complex instructions began in the early 1960s and continued until roughly the mid-1980s. At that point the RISC design philosophy started becoming more prominent. This included the points: Reduced Instruction Set Computer (RISC), is a microprocessor CPU design philosophy that favors a smaller and simpler set of instructions that all take about the same amount of time to execute. ...

  • Analysis shows complex instructions are rarely used, hence the machine resources devoted to them are largely wasted.
  • Programming has largely moved away from assembly level, so it's no longer worthwhile to provide complex instructions for productivity reasons.
  • The machine resources devoted to rarely-used complex instructions is better used for expediting performance of simpler, commonly-used instructions.
  • Complex microcoded instructions requiring many, varying clock cycles are difficult to pipeline for increased performance.
  • Simpler instruction sets allow direct execution by hardware, avoiding the performance penalty of microcoded execution.

Many RISC and VLIW processors are designed to execute every instruction (as long as it is in the cache) in a single cycle. This is very similar to the way CPUs with microcode execute one microinstruction per cycle. VLIW processors have instructions that behave like very wide horizontal microcode, although typically VLIW instructions do not have as fine-grained control over hardware as microcode. RISC processors can have instructions that look like narrow vertical microcode. Reduced Instruction Set Computer (RISC), is a microprocessor CPU design philosophy that favors a smaller and simpler set of instructions that all take about the same amount of time to execute. ... A Very Long Instruction Word or VLIW CPU architecture implements a form of instruction level parallelism. ... A Very Long Instruction Word or VLIW CPU architecture implements a form of instruction level parallelism. ...


See also

In computing, firmware is software that is embedded in a hardware device. ...

External links

  • Writable Instruction Set Computer

  Results from FactBites:
 
Microprogram - Wikipedia, the free encyclopedia (2380 words)
Microprograms are carefully designed and optimized for the fastest possible execution, since a slow microprogram would yield a slow machine instruction which would in turn cause all programs using that to be slow.
Microprogramming also reduced the cost of field changes to correct defects (bugs) in the processor; a bug could often be fixed by replacing a portion of the microprogram rather than by changes being made to hardware logic and wiring.
After the microprogram is finalized, and extensively tested, it is sometimes used as the input to a computer program that constructs logic to produce the same data.
esp@cenet description view (2305 words)
The microprogram control M applies a data transfer instruction via the IOM control 8 to the CPU 1 and instructs the data buffer register 11 to send out the data therefrom to the CPU 1 via the data bus e.
To avoid this, the large quantities data are transferred by steps of several units of data under the control of the microprogram control M and a burst timer 13 is activated after each transfer to provide burst timing control of the microprogram itself, and stops the transfer operation until started by the burst timer 13.
Upon completion of the burst timing, the microprogram control M is started by the burst timer 13 to again send the request for the DMA transfer to the CPU 1, and the external memory system resumes the DMA transfer under the control of the microprogram.
  More results at FactBites »

 
 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments

Want to know more?
Search encyclopedia, statistics and forums:

 


Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms, 1022, m