PIPELINING
AGP uses pipelining to increase speed.
Pipelining organizes data retrieval into a sort of assembly-line
process. The graphics card receives multiple chunks of data in
response to a single request.
AGP
overlaps the memory or bus access times for a request ("n") with the
issuing of following requests ("n+1"..."n+2"... etc.). The first step
of execution is performed on the first instruction, and then when the
instruction passes to the next step, a new instruction is started. In
the PCI bus, request "n+1" does not begin until the data transfer of
request "n" finishes. Hence, PCI bus is much slower than the AGP bus.
This
process is very similar to ordering a many course dinner. Either you
can order all of the courses at one time, or order one course, and
then wait for the waiter to bring the food, and then order the second
course. In both cases, the order of the food will be the same.

http://developer.intel.com/technology/agp/tutorial/chapt_4.htm
However, pipelining has several
drawbacks. First of all, it is very complex. The processor has to do a
lot of work to keep the pipeline moving. This makes it expensive as
well. The greater problem is data dependencies. This happens when the
execution of the second instruction requires the result from an
earlier execution. Therefore, the processor will have to wait for the
first instruction to be executed. This will cause a stall in the
pipeline, causing a lot of delay. For example:-
A = A++
B = A + B
In
this case the second instruction can only be executed after the first
one finishes.
Next >> |