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