Jump to content

Microarchitecture

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Timmh (talk | contribs) at 03:07, 22 February 2007 (Components). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In computer science and computer engineering, microarchitecture (sometime abbreviated to µarch or uarch) is the design and layout of a microprocessor, [[microcontroller], or digital signal processor (DSP). Microarchitecture considerations include overall block design. Examples of this include the number of execution units, the type of execution units (such as floating point, integer, branch prediction, single instruction multiple data (SIMD)), the nature of the pipelining (which might include such stages as instruction fetch, decode, assign, execution, completion in a very simple pipeline), the cache memory design (level 1, level 2 interfaces), and the peripheral support.

The physical microarchitecture design is done by using one of several processes. The most common of these processes is Very-Large-Scale Integration (VLSI). This is the process of designing single chips that hold thousands of transistors. Increasingly important are the designs for manufacturing, low-power consumption, very high performance, and lower costs which yield the same benefits. Because microarchitecture covers a broad spectrum of designs, different applications have different priorities of these design considerations. For example DSP’s main purpose is real-time processing. Therefore it is important to be able to guarantee a certain performance level. Some microcontrollers are designed to work in remote areas where lower power consumption is more important. Most consumers pick a microprocessor for their PC where the combination of performance and cost come into consideration.


History

The concept of microarchitecture first came about during the invention of the microprocessor by Marcian Hoff for Intel in 1971. Before this, processors consisted of several integrated circuits (IC) contained on printed circuit board. The microprocessor enabled most of the processing power to be put on a single chip. Microarchitecture allowed smaller and faster processors to be designed at a much faster rate than the previous methods. During this time the industry also moved from the Large scale integration (LSI) process of designing integrated circuits to the Very-large-scale integration (VLSI).

In 1978, Intel used microarchitecture to design a specialized type of microprocessor that would serve as an analog signal processor. What set this apart from the microprocessor is that the design included Analog-to-digital converters(ADC) and Digital-to-analog converters(DAC) on the same chip. Although this chip was not successful, it provided insight into the creation of the digital signal processor in 1979.

With the design of DSP’s, the idea of adding other components to microprocessors become more popular in the process of microarchitecture. Microcontrollers were created to provide an all-in-one package that included everything needed for a specific application. Today microcontrollers are used in most everyday electronics.

Although performance, size, and storage capability have dramatically increased since the 1970’s, the overall design and concepts of microarchitecture have not changed much. VLSI remains the primary process in chip design and the underlying processor technology still consists of pipelined execution.


Components

Simple MIPS Pipeline Datapath

The Pipelined datapath is the most commonly used datapath design in microarchitecture today. This technique is used in most modern microprocessors, microcontrollers, and DSPs. According to Patterson/Hennessy, the Pipeline architecture allows multiple instructions to overlap in execution, much like an assembly line. The pipeline includes several different stages which are fundamental in microarchitecture designs. Some of these stages include instruction fetch, instruction decode, execute, and write back. Some architectures include other stages such as memory access.

The control is also fundamental in the designs of microarchitecture. The control logic runs the datapath and makes decisions based on the instructions and data in the registers. Control logic is usually implemented using a series of gates and multiplexers to control the different stages and execution units in the pipeline.

Execution units are also essential to microarchitecture. Execution units include Arithmetic logic unit(ALU), floating point unit(FPU), branch prediction, and SIMD. These units perform the operations or calculations of the processor.

Microcontrollers, DSPs, and many Microprocessors also include memory interfaces, registers, and cache memory. Microarchitecture includes the layout and connection of memory to the datapath. In most cases this requires the design of a memory control module.

Microcontrollers and DSPs include input/output interfaces, on-chip RAM, ROM, and a clock generator. DSPs also include Analog-to-digital converters and Digital-to-analog converters.

Types

Microprocessors architecture is one of the most known types of microarchitecture. One of the best known microarchitectures is the x86 architecture. This microarchitecture was developed by Intel in the early 1980s and is still the primary microprocessor architecture used in PC CPUs today.

Another common architecture is the MIPS architecture. This is a common architecture that is used primarily in embedded systems and microcontrollers. The MIPS architecture was developed in 1981 and is still manufactured today for many applications. Some of the products that use this architecture are PDAs, routers, and video game consoles. The MIPS architecture uses a Reduced instruction set computer or RISC design (as opposed to a complex instruction set computer, or CISC), therefore the microarchitecture is less complex.

There are many different microarchitectures for microcontrollers and DSPs, because each part is designed for a specific purpose the architecture varies from application to application. One of the common architectures used in microcontroller and DSP design is the Harvard architecture.

New types of microarchitectures are being developed that address the issue of parallel computing. This may involve adding support for multi-threading to existing architectures or implementing multiple cores on a signal die. Another architecture being developed is the superscalar architecture. This architecture implements Instruction-level parallelism with a single processor

Implementations

Implementations of microarchitecture require the design and layout of the units and datapaths. This is commonly done using a hardware description language such as VHDL or Verilog. The physical implementation is then performed by using a process such as VLSI. See also Integrated circuit design.

See also

References

D. Patterson and J. Hennessy (2004-08-02). Computer Organization and Design: The Hardware/Software Interface. Morgan Kaufmann Publishers, Inc.. ISBN 1558606041.