Title: Datorsystem 1
1Datorsystem 1 Datorarkitektur 1 föreläsning 7
onsdag 7 november 2007
2- I/O devices are incredibly diverse with respect
to - Behavior input, output or storage
- Partner human or machine
- Data rate the peak rate at which data can be
transferred between the I/O device and the main
memory or processor
Device Behavior Partner Data rate (Mb/s)
Keyboard input human 0.0001
Mouse input human 0.0038
Laser printer output human 3.2000
Graphics display output human 800.0000-8000.0000
Network/LAN input or output machine 100.0000-1000.0000
Magnetic disk storage machine 240.0000-2560.0000
3Synkron Bus Bussen styrs av en klock-signal (en
speciell control-line).
Enkel att implementera Protokollet
förutbestämt Det går att köra bussen mycket snabbt
processor-memory buses
Alla enheter måste använda samma
klock-frekvens Det går inte att göra en snabb och
samtidigt allt för lång buss pga sk clock-skew.
4Asynkron Bus en Buss utan klocka Ett
handskaknings-protokoll används Sändare och
mottagare fortsätter till nästa steg i
protokollet först när de är överens om att det
föregående steget är utfört...
Ingen klocka! Lättare stödja olika typer av
enheter eftersom vi inte behöver komma överens om
en gemensam klockfrekvens. Längden på bussen
inget problem.
USB 2.0 och Firewire
Ingen klocka! Inte lika enkelt att implementera
(handskakning). Långsammare än Synkron buss
5Asynchronous Bus Handshaking Protocol
Output (read) data from memory to an I/O device
I/O device signals a request by raising
ReadReq and putting the addr on the data lines
- Memory sees ReadReq, reads addr from data lines,
and raises Ack
- I/O device sees Ack and releases the ReadReq and
data lines
- Memory sees ReadReq go low and drops Ack
- When memory has data ready, it places it on data
lines and raises DataRdy
- I/O device sees DataRdy, reads the data from data
lines, and raises Ack
- Memory sees Ack, releases the data lines, and
drops DataRdy
- I/O device sees DataRdy go low and drops Ack
6Control lines Master initiates requests
Bus Master
Bus Slave
Data lines Data can go either way
- Control lines
- Signal requests and acknowledgments
- Indicate what type of information is on the data
lines - Data lines
- Data, addresses, and complex commands
- Bus transaction consists of
- Master issuing the command (and address)
request - Slave receiving (or sending) the data action
- Defined by what the transaction does to memory
- Input inputs data from the I/O device to the
memory - Output outputs data from the memory to the I/O
device
7Nu får ni ge er - Jag vill ha bussen!
Jag vill oxå ha bussen!
Jag vill ha bussen!
Interrupts
Processor
Cache
Memory - I/O Bus
Main Memory
I/O Controller
I/O Controller
I/O Controller
Graphics
Disk
Disk
Network
8Bus priority the highest priority device should
be serviced first
Fairness even the lowest priority device should
never be completely locked out from the bus
9Om någon eller några gör request, skicka Ack
Vill jag ha bussen så tar jag den och skickar
inte vidare Ack.
Device 1 Highest Priority
Device N Lowest Priority
Device 2
Ack
Ack
Ack
Bus Arbiter
Request
wired-OR
Data/Addr
10Device 1 Highest Priority
Device N Lowest Priority
Device 2
Ack
Ack
Ack
Bus Arbiter
Request
wired-OR
Data/Addr
Enkel att implementera
Daisy Chaining
Enhet med låg prioritet riskar att svälta, dvs
aldrig få tillgång till bussen. Ack måste
propagera ? slöar ner bussen.
11Logik i hårdvara som ser till att ingen
svälter, dvs fairness
Device 1
Device N
Device 2
Request1
Request2
RequestN
Ack1
Ack2
Bus Arbiter
AckN
Data/Addr
Fairness
Centralized Parallel Arbitration
Mer komplicerad hårdvara
12Memory Controller Hub Northbridge
Gbit ethernet 0.266 GB/s
Det som tidigare var separata I/O-kort ryms nu på
dessa chip. Trend att gå från parallella delade
bussar till seriella höghastighets interconnects
Hub Bus 8b x 266 MHz
2 serial ATAs 150 MB/s
2 parallel ATA 100 MB/s
8 USBs 60 MB/s
I/O Controller Hub Southbridge
13Sammanfattning
- A bus is a shared communication link (a single
set of wires used to connect multiple subsystems)
that needs to support a range of devices with
widely varying latencies and data transfer rates - Advantages
- Versatile new devices can be added easily and
can be moved between computer systems that use
the same bus standard - Low cost a single set of wires is shared in
multiple ways - Disadvantages
- Creates a communication bottleneck bus
bandwidth limits the maximum I/O throughput - The maximum bus speed is largely limited by
- The length of the bus
- The number of devices on the bus
14Att bortse från I/O är ett vanligt misstag
Antag att CPU blir 50 snabbare varje år
After n years CPU time (s) I/O time (s) Elapsed time (s) I/O time
0 90 10 100 10
1 90/1.5 60 10 70 14
2 60/1.5 40 10 50 20
3 40/1.5 27 10 37 27
4 27/1.5 18 10 28 36
5 18/1.5 12 10 22 45
Förbättring i CPU tid 90/12 7.5
Förbättring i total-tid 100/22 4.5
15Kommunikation?
Processor
I/O enhet
Program som vi skriver...
16I SPIM finns det stöd för en enkel minnes-mappad
I/O-enhet. För att skriva ut tecken används
följande minnes-mappade transmitter-register
För att läsa tecken används följande
minnes-mappade register
17Direct Memory Access
Vill avlasta processorn...
- For high-bandwidth devices (like disks)
interrupt-driven I/O would consume a lot of
processor cycles - DMA the I/O controller has the ability to
transfer data directly to/from the memory without
involving the processor - The processor initiates the DMA transfer by
supplying the I/O device address, the operation
to be performed, the memory address
destination/source, the number of bytes to
transfer - The I/O DMA controller manages the entire
transfer (possibly thousand of bytes in length),
arbitrating for the bus - When the DMA transfer is complete, the I/O
controller interrupts the processor to let it
know that the transfer is complete - There may be multiple DMA devices in one system
- Processor and I/O controllers contend for bus
cycles and for memory
Interrupt endast för att säga till när hela
rasket är klart.