9.2 INSTRUCTION SET PROCESSORS

This section is devoted to architectures that execute a reduced set of instructions (reduced instruction set computer—RISC). Belonging to this category are processors, microprocessors, digital signal processors (DSPs), application specific instruction set processors (ASIPs), and others. A first classification of microprocessors is presented in Figure 9.6; it is based on the levels of specialization.

image

Figure 9.6 Classification of microprocessors according to level of specialization.

The first microprocessors were sequential processors based on Von Neumann architecture. Initially, poor compilers and the lack of processor-memory bandwidth resulted in complex instruction sets: complex instruction set computers (CISCs). In the early 1980s, developments of RISC and VLSI technologies enabled the implementation of pipelined architectures, larger register banks, and more address space in a single-chip processor. In the 1990s the focus was on the exploitation of instruction-level parallelism, which eventually resulted in the modern general-purpose processors (GPPs). Superscalar processors and very long instruction word (VLIW) architectures are examples of dynamic and static parallelism.

An important dimension in processor architectures is the application orientation that has led to a variety of different types of instruction sets and organizations. Today, together with general-purpose processors (GPPs), microcontrollers share the feature of including memory and peripherals integrated into the same chip. Digital signal processors (DSPs) were invented to perform stream-based processing, such as filtering. The Harvard architecture,1 involving advanced addressing, efficient interfaces, and powerful functional units such as fast multipliers and barrel shifters, provides superior performances in limited application spaces. Multimedia processors are targeted by applications where data parallelism can be exploited efficiently, for example, real-time compression and decompression of audio and video streams, and generation of computer graphics. Multimedia processors can be divided into microprocessors with multimedia instruction extensions and highly parallel DSPs. Network processors have an effective interconnection network between the processing elements, operating in parallel, and efficient instructions for packet classification. Reconfigurable data path processors (RDPPs), have coarse-grain reconfigurable functional units such as ALUs or multipliers. Application-specific instruction set processors (ASIPs) are designed for a particular application set. The general ASIP idea is that the complete instruction set, together with the selection of the architecture template, is based on the application analysis. Application-specific processors are synthesized from the application description using a built-in architecture template. The strategy is to extract the computation resources from the application description and to synthesize the control that minimizes the resources within given performance constraints.

9.2.1 Microprocessors

The main classification starts from the differences between CISC and RISC processors. Actually, that is quite a philosophical classification, since most of today's processors are combinations of these models. Other criteria in the hardware classification of microprocessors are VLIW and superscalar architectures. Figure 9.7 describes the main microprocessor classes.

Another classification can be made according to the memory access. There are two fundamental memory access architectures: Von Neumann and Harvard. (Figure 9.8). In the first one, the memory is shared between instructions (program) and data; one data bus and one address bus only are used between processor and memory. Instructions and data have to be fetched in sequential order (known as the Von Neumann bottleneck); this limits the operation bandwidth. On the other hand, the Harvard architecture uses different memories for their instructions and data, requiring dedicated buses for each of them. Instructions and operands can therefore be fetched simultaneously. Different program and data bus widths are possible, allowing program and data memory to be better optimized with respect to the architectural requirements. A compromise between these two approaches is known as modified Harvard architecture, where programs and data are cached separately but are ultimately stored in one memory and connected over one bus.

image

Figure 9.7 Types and characteristics of microprocessors, using the hardware structures as classification criteria.

image

Figure 9.8 Von Neumann and Harvard architectures.

The Von Neumann design is simpler than the Harvard one. Von Neumann's architecture has an efficient utilization of memory; it is the choice for most of the general-purpose processors. On the other hand, most DSPs and microcontrollers use Harvard architecture for streaming data; it allows greater and more predictable memory bandwidth.

9.2.2 Microcontrollers

Microcontrollers are single-chip computers; they are relatively slow and have very little memory, but cost less and are very easy to interface with real world devices. They are typically programmed in either C language (even subsets of C) or assembly languages. Microcontrollers are like single-chip computers; they are often embedded into other systems acting as processing/controlling units. For example, modern keyboards, microwave ovens, or washing machines use microcontrollers for decoding and controlling simple functions.

Microcontrollers usually adopt RISC architecture with a very small instruction set. A microcontroller virtually holds a complete system within it, with a CPU core, memory (ROM and RAM), and I/O circuits. Furthermore, a timer unit is available for operations based on time periods. A serial port is used for the data communication between devices or to a PC. Typically, small ROM-type memories are used to store the program codes. Another small RAM is used for data storage and stack management tasks. Traditionally, an 8- or 16-bit data path is used. Some microcontroller ports can be used to operate LEDs and relays, as well as logic circuit inputs. Recent high-end families of microcontrollers use a 32-bit data path, bigger memories, additional I/O capabilities such as A/D-D/A converters, faster standards of communications (e.g. CAN, USB, Ethernet), as well as connections with radio frequency or infrared circuits.

9.2.3 Embedded Processors Everywhere

Computing systems are everywhere. One first thinks about general-purpose computers (e.g., PCs, laptops, mainframes, servers), but another type of computing system, that is far more common, is the embedded computing system. These are computing systems embedded within electronic devices (radios, TV sets, phones, most home appliances, etc.). In fact, as a rough definition, practically any computing system other than a general-purpose computer. Billions of units are produced yearly, versus millions of general-purpose units only. They number perhaps close to one hundred per household or per high-end automobile.

The average new car has dozens of microprocessors inside. Embedded processors are present in every PC system: the keyboard and the mouse hold processors and there is a small CPU in each hard disk drive, floppy drive, CD-ROM/DVD drive, and so on. Except for graphics chips, most of these tiny helpers are 8-bit processors sourced by a number of companies. The very first IBM™ PC/XT system already included about half a dozen different processor chips besides the 8088 CPU. The volume of 8-bit embedded chips is enormous and growing steadily. Today the estimated sale of these little processors is rounding three billion chips per year!

9.2.4 Digital Signal Processors

Digital signal processing deals with digital representations of signals; digital processors are used to analyze, modify, or extract information from signals: the digital signal processor (DSP) is an electronic system that processes digital signals. Internally, the signals are digitally represented as sequences of samples. Digital signals are obtained from physical signals via transducers (e.g., microphones) and analog-to-digital converters (ADCs); then digital signals can be converted back to physical analog signals using digital-to-analog converters (DACs) as shown in Figure 9.9.

Some of the most common application areas of DSPs are:

  • Image Processing: pattern recognition, robotic vision, image enhancement, facsimile, satellite weather map, 3-D rendering, and animation.
  • Instrumentation and Control: spectrum analysis, position and rate control, noise reduction, data compression, guidance, and GPS processing.
  • Audio and Video Processing: speech recognition, speech synthesis, text to speech, digital audio, equalization, and machine vision.

image

Figure 9.9 Typical DSP interaction with the real world.

  • Military: secure communications, radar processing, sonar processing, and missile guidance.
  • Telecommunications: echo cancellation, adaptive equalization, video conference, data communications, digital cellular telephony, pagers, wireless systems, and modems.
  • Biomedical: patient monitoring, scanners, electronic brain mappers, ECG analysis, and X-ray storage and enhancement.

Typical algorithms implemented to carry out these tasks deal with finite (infinite) impulse response (FIR and IIR) filtering, frequency–time transformation, fast Fourier transform (FFT), and other correlation and convolution operations. The most important operations that a DSP needs to achieve are repetitive numerical computations with attention to numerical reliability (precision). Most of the tasks are real-time processes, and a high bandwidth memory is necessary, mostly through array accesses.

Though there are many DSPs, they are mostly designed with the same few basic operations in mind: they share the same set of basic characteristics. Most DSP operations require additions and multiplications. So DSPs usually involve hardware adders and multipliers, which can be used in parallel within a single instruction: multiply and accumulate (MAC) units.

The main differences between digital signal processors and general-purpose processors are related to the essence of problems they can respectively solve. Infinite streams of data, to be processed in real-time, are common applications for DSPs. Normally, DSPs have relatively small programs and data storage requirements; in addition, they run intensive arithmetic processes with a low amount of control and branching (in critical loops). Other remarkable DSP features are:

  • They tend to be designed for just one program. Hence OS are much simpler; there is neither virtual memory or protection, nor typical OS facilities.
  • Sometimes they run hard real-time applications. One must cope with anything that could happen in a time slot: all possible interruptions or exceptions must be accounted for, and their combined delays must be subtracted from the time interval.
  • Algorithms are the most important and the binary compatibility is not an issue.
  • A high amount of I/O with analog interfaces.
  • Like other embedded processors, they are energy and cost efficient.

9.2.5 Application-Specific Instruction Set Processors

An application-specific instruction set processor (ASIP), alternatively referred to as a programmable platform, is a stored-memory CPU whose architecture is tailored for a particular set of applications. Programmability allows changes to the implementation so it can be used in several different products. Usually the ASIPs have high data path utilization. Application-specific architecture provides smaller silicon area and higher speed with respect to a general-purpose processor. Performance/cost enhancements are achieved using special-purpose registers and buses to complete the required computations, avoiding useless generality. Furthermore, special-purpose function units are implemented to perform long operations in fewer cycles. In addition, special-purpose control units allow execution of common combinations of instructions in fewer cycles. ASIPs mainly deal with audio/video processing, network processing, cellular telephony, wireless applications, and more. Another approach, related to ASIPs, is called reconfigurable instruction set processors (RISPs), where a processor core is coupled with reconfigurable logic and internal memory in order to extend functionalities and capabilities.

9.2.6 Programming Instruction Set Processors

The programming languages, used to program instruction set processors, depend on applications and specializations. The general-purpose processors use a wide variety of programming languages based on different programming paradigms, but when one moves to more specific fields, where microcontrollers, DSPs, or ASIPs are preferred, assembly language or C/C++ are most often used. Java is also present in embedded system design but it is still dominated by C/C++.

The assembly language is a human-readable representation of a machine language that uses a reduced vocabulary of short words, such as, for example, MOV A(x),B(x). Some years ago, when CPU speed and storage space used to be measured in kilohertz and kilobytes, respectively, assembly language was the most cost-efficient way to implement programs; it is less used nowadays, as megas and gigas are more common prefixes, so that efficiency is getting less critical. Nevertheless, today's small microcontrollers are still programmed in assembly languages.

C offers smart compromises between the efficiency of coding in assembly language and the convenience and portability of writing in a well-structured, high-level language. By keeping many of its commands and syntax analogous to those common machine languages, and with several generations of optimizing compilers behind it, C makes it easy to write efficient codes without resigning readability. C++ is probably the most widely supported language today, and most commercial software products are written in C++. The name reflects why. When it was introduced, it took all the benefits of the then-reigning development language C. Then it added the next set of features programmers were looking for: object-oriented programming. So, programmers didn't have to throw anything away and redo it: they just added these techniques to their repertoire, as needed. Free and commercial tools are available from various sources for just about any operating system (OS).

Most general-purpose processors are dominated by Windows, Linux, and Unix based OSs. In the embedded systems world, where real-time constraints, small memories, and other specific features appear, the range of possibilities is widening. In very small microcontrollers, no OS at all appears. For almost all OSs, the C/C++ is the de-facto programming language.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset