Page 106 - Anatomy of a Robot
P. 106

03_200256_CH03/Bergren  4/17/03  12:27 PM  Page 91
                                                                                COMPUTER HARDWARE 91
                                 commands into the channel that will enable the reprogramming of the robot’s soft-
                                 ware. If the robot is at a remote location (like Mars), we would have to do this very
                                 carefully. The accepted technique is to trigger the download command, pull in
                                 blocks of program data with full error detection and correction, store the program
                                 away in block form until it has all arrived, and then blast it into flash memory or
                                 disk. If possible, put paged flash memory in the robot so a boot program will
                                 always exist and will not change. The boot program can download and burn pro-
                                 gram flash. That way, we have a minimal chance of corrupting the program to the
                                 extent that we have no way to recover.
                                 Another thing to remember about downloading over a long distance is that often
                                 significant communication delays occur. The downloading protocol has to survive
                                 all sorts of communication flaws, including long delays in transmission time. In
                                 the case of one of the Mars landing missions, the mobile robot could only be
                                 reprogrammed about once a day. In addition to communication delays, the repro-
                                 gramming team had to put up with decreased communication bandwidth, planet
                                 rotation, sunspots, and so on. In general, make the communications protocols for
                                 the robot bulletproof. Expect the unexpected. Martians might even show up and
                                 stand in front of the antennae!
                                 Sneaker Net is another way of getting the program information into the robot. If
                                 the robot is accessible, engineers can walk up to it and make the new software
                                 changes.
                                Memory  addressing  range   Computers  have  instruction  sets  that  encode
                                 addresses; the instructions are stored in memory as a series of bits. This allows an
                                 instruction to directly access a memory location for reading, writing, or modifi-
                                 cation. To encode a memory address into an instruction, the address must take up
                                 some bits within the instruction. Often, some of the bits in the instruction will ref-
                                 erence another register with many more bits to fill out the address. The final,
                                 resolved address is called the effective address. The number of different memory
                                 addresses that can be accessed at any one time depends on the number of bits in
                                 the effective address.
                                 Different instructions of the computer will be able to access different ranges of
                                 addresses. By and large, the word length of the computer sets the largest address
                                                                           32
                                 range. A 32-bit processor generally can address 2 bytes (about 4 billion bytes).
                                 Processors with 8 and 16 bits generally use a 16-bit address range for 65K bytes.
                                 The memory addressing range is important because it restricts the number of
                                 memory bytes that the computer can see at any one time. If our robot’s software
                                 is looking at many thousands of bytes at any one time, consider whether a 16-bit
                                 addressing range is sufficient. It does not cost a vast amount of extra money to
   101   102   103   104   105   106   107   108   109   110   111