I/O: Design Considerations, Buses

Tom Kelliher, CS 240

Apr. 28, 2000

Administrivia

Announcements

Assignment

From Last Time

Dynamic placement policies. Intro to I/O.

Outline

  1. Introduction to I/O system design.

  2. Buses.

Coming Up

I/O

Some I/O System Considerations

  1. I/O can be:

  2. Latency: Delay between request and first data received.

  3. Bandwidth: The rate at which data can be transferred.

Example 1:

  1. You're here in Maryland, on a T1, accessing a web page on a web server in California.

  2. The files composing the web page are in RAM cache. In total, you access 1MB of data in downloading the web page.

  3. What delay dominates, latency (minimally 32 ms) or bandwidth?

  4. Repeat, assuming you have a gigabit connection.

  5. Can we overcome latency?
    1. Hard to get around the speed of light.

    2. Caching data locally. Problems such as updates, validity. Does this solve the problem? Is the problem solvable?

Example 2:

  1. You have a system with a 1 GHz CPU and a gigabit ethernet card.

  2. The ethernet card interrupts each time it receives 16 bytes.

  3. The ethernet interrupt handler requires executing 200 instructions. (This is probably optimistic.)

  4. Do you get any work done?
    1. Bytes received per second: 1E8.

    2. Ethernet interrupts per second: 6.25E6.

    3. Cpu cycles spent handling interrupts: 1.25E9.

    4. Time spend handling one second of ethernet data: 1.25 s.

Software System Examples

  1. Supercomputing: Weather forecasting. Supercomputing applications tend to process large volumes of data, putting a premium on I/O bandwidth.

  2. ``Back Office'' computing: Online transaction processing. Client/Server. This involves database operations: queries, adds, deletes, edits. Requests from large geographical areas are aggregated at one database server. Very large transaction volumes (airline ticketing systems). For this reason, databases often kept in RAM (several GB of RAM).

  3. e-Commerce computing: Client/Server. Client: web browser. Server: web server (Apache, etc.) feeding dynamic HTML and data from a SQL (MySQL, Oracle, etc.) database server. CGI used to interface the two.

Buses

Definition 1:

A set of wires.

Definition 2:

An expansion capability.

Terminology:

  1. Protocol.

  2. Initiator, target. Arbitration.

  3. Synchronous, asynchronous.

  4. Concurrency.

A smattering of buses:

  1. VME.

  2. ISA, EISA.

  3. VLB, PCI.

  4. AGP.

  5. SCSI.

  6. USB, FireWire.

The PCI Bus

Refer to handout:

  1. Complexity.

  2. Covers: bus protocol, configuration, electrical, mechanical.

  3. Architecture.

  4. Transfer rate, latency.

  5. Plug-'n-Play.



Thomas P. Kelliher
Fri Apr 28 09:35:06 EDT 2000
Tom Kelliher