How DSPs are Different from Other MicroprocessorsIn the 1960s it was predicted that artificial intelligence would revolutionize theway humans interact with computers and other machines. It was believed thatby the end of the century we would have robots cleaning our houses, computersdriving our cars, and voice interfaces controlling the storage and retrieval ofinformation. This hasn't happened; these abstract tasks are far morecomplicated than expected, and very difficult to carry out with the step-by-steplogic provided by digital computers. However, the last forty years have shown that computers are extremely capablein two broad areas, (1) data manipulation, such as word processing anddatabase management, and (2) mathematical calculation, used in science,engineering, and Digital Signal Processing. All microprocessors can performboth tasks; however, it is difficult (expensive) to make a device that isoptimized for both. There are technical tradeoffs in the hardware design, suchas the size of the instruction set and how interrupts are handled. Evenmore important, there are marketing issues involved: development andmanufacturing cost, competitive position, product lifetime, and so on. As abroad generalization, these factors have made traditional microprocessors, suchas the Pentium®, primarily directed at data manipulation. Similarly, DSPs aredesigned to perform the mathematical calculations needed in Digital SignalProcessing.Figure 28-1 lists the most important differences between these twocategories. Data manipulation involves storing and sorting information.For instance, consider a word processing program. The basic task is tostore the information (typed in by the operator), organize the information(cut and paste, spell checking, page layout, etc.), and then retrieve theinformation (such as saving the document on a floppy disk or printing itwith a laser printer). These tasks are accomplished by moving data fromone location to another, and testing for inequalities (A=B, A<B, etc.). Asan example, imagine sorting a list of words into alphabetical order. Eachword is represented by an 8 bit number, the ASCII value of the first letterin the word. Alphabetizing involved rearranging the order of the wordsuntil the ASCII values continually increase from the beginning to the endof the list. This can be accomplished by repeating two steps over-and-overuntil the alphabetization is complete. First, test two adjacent entries forbeing in alphabetical order (IF A>B THEN ...). Second, if the two entriesare not in alphabetical order, switch them so that they are (AWB). Whenthis two step process is repeated many times on all adjacent pairs, the listwill eventually become alphabetized.As another example, consider how a document is printed from a wordprocessor. The computer continually tests the input device (mouse or keyboard)for the binary code that indicates "print the document." When this code isdetected, the program moves the data from the computer's memory to theprinter. Here we have the same two basic operations: moving data andinequality testing.