CS 473

Input/Output

Due Friday, May 2, 2003

  1. (10 points) Consider a 33MHz, 32-bit PCI bus. PCI performs all transfers in "burst mode:" that is, once a device has become a bus master and and used one bus cycle to transfer an address, it it is able to make an arbitrary number of data transfers (there is actually a timer function preventing a device from going "rogue" and never releasing the bus) at the rate of one data transfer per bus cycle.

    Plot bus throughput (in megabits/second) as a function of transfer size, for 32 bit, 64 bit, 96 bit, and 128 bit transfers.

  2. (20 points) The following 13 bit numbers consist of eight bits of data, four bits of error correcting code, and one parity bit in the order M8 M7 M6 M5 C8 M4 M3 M2 C4 M1 C2 C1 P.

    Two of them are correct, two have one-bit errors, and one has a two-bit error. Tell which is which, and correct the two with one-bit errors.

    1. 1000111100100
    2. 1011010110010
    3. 1011110110010
    4. 1010101111101
    5. 0110001101010
  3. (20 points) The following bit strings are 32-bit strings, which have had a four-bit cyclic redundancy check computed using the five-bit polynomial from the web page (11001). In both cases, the last four bits of the string are the CRC. One of them is correct, and one is not. Which is which?

    1. 01011011010000100010010000010100 1001
    2. 01010001100000110110101001010110 0111
  4. (20 points) The text talks about hard drive specifications on pages 646-650. For this problem, we're assuming a controller overhead of 0.

    Here's a link to the specifications for the Western Digital WD1200BB disk drive: http://www.wdc.com/en/products/products.asp?DriveID=12

    Based on these specifications:

    1. Show that the stated average latency is consistent with the stated rotational speed.
    2. Suppose you wish to transfer 1,000,000 bytes of data from a disk drive to your computer's memory (disk drive manufacturers use "Mega" to mean 1,000,000, not 220). Considering only the characteristics of the disk drive itself (so you aren't concerned with the characteristics of the disk buffer, the data transfer mode, or your PC's bus or memory), under what assumptions will this transfer take place as quickly as possible? Since you aren't given the number of bytes per track, you can assume that all the data is on a single track. Also, the specs only give the transfer rate from the buffer to the disk: assume you can get the same rate transferring from the disk to the buffer (which certainly seems reasonable to me... but isn't in fact true for all drives). How long does the transfer take under these assumptions?
    3. Now, suppose you want to perform the same transfer, except you want to make the assumptions that will lead to the worst possible performance (well, let's be a little bit fair: assume that data is laid out in 512 byte sectors). What are the assumptions to get worst-possible performance? How long does the tranfer take under these assumptions?
    4. One last go at it: assume the data is laid out randomly on the disk (but in 512 byte sectors). Now how long does the transfer take?


Last modified: Wed Apr 30 10:33:02 MDT 2003