Page 103 - Anatomy of a Robot
P. 103

03_200256_CH03/Bergren  4/17/03  12:27 PM  Page 88
                             88 CHAPTER THREE
                             represent the 12 numbers in our example. This gives our floating-point numbers a range
                                     10
                                            6
                                                                                             10
                             of about 2   10 , much larger than 65536. However, the accuracy is only 2   1024
                             instead of 65536. Our multiplication example from above (60,000   50,000) can now
                                                                           4
                                                                                              9
                                                                                     8
                             be done because it does not overflow 6   10   5   10 = 30   10 = 3   10 .
                                                                  4
                               The floating-point formats used in computers are a little different than this. Please
                             visit the URLs for a better description.
                               Floating-point gives us a wider range of numbers over which the arithmetic can take
                             place. The differences between these two number formats are explained at web sites
                             www.research.microsoft.com/ hollasch/cgindex/coding/ieeefloat.html  and  http://ee.
                             tamu.edu/matlab-help/toolbox/fixpoint/c3_bev2.html.
                             DSP Hardware   Many of the arithmetic problem domains we’ve looked at involve
                             many MACs. The Taylor series, FIR filters, and FFTs all require the repeated multipli-
                             cation of coefficients by data values to form a long summed-up equation. DSP proces-
                             sors have memory-addressing structures and control hardware that significantly speed
                             up such repetitive operations. In math parlance, they are well suited for vector and
                             matrix arithmetic. The most sophisticated also employs parallel processing to speed up
                             these calculations.
                               DSP processors are often used to process continuous streams of information such as
                             audio, video, or data from an RF receiver. The data stream never stops and must be
                             processed at all times. Accordingly, DSP processors can have buffering built into their
                             processing streams and avoid traffic jam interruptions that can stall a general-purpose
                             central processing unit (CPU). Think for a moment about a desktop computer. How
                             often does it lock up while performing some housekeeping task? Such lockups are not
                             allowed in the processing of continuous stream data, and DSP processors can make sure
                             that does not happen. If the robot needs to process continuous streams of media-type
                             data, consider a DSP processor as an alternative.
                               Here is a PDF file and a few web sites on DSP processors and what they can do:

                                 http://bwrc.eecs.berkeley.edu/Publications/2000/Theses/Evaluate_guide_
                                 process_archit_select/Dissertation.Ghazal.pdf
                                 www.bores.com/courses/intro/chips/index.htm
                                 www.wave-report.com/tutorials/DSP.htm
                                 www.jovian.com/tutorial/demos.html



                             General-Purpose Processors
                             The primary advantage that general-purpose processors have is their speed. They can
                             perform simple operations with blinding speed, and so complete great amounts of work.
                             How do we go about finding the right one for our robot?
   98   99   100   101   102   103   104   105   106   107   108