This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
° A small number of backplane buses tap into the processor-memory bus• Processor-memory bus is only used for processor-memory traffic• I/O buses are connected to the backplane bus
° Advantage: loading on the processor bus is greatly reduced
Multiple Potential Bus Masters: the Need for Arbitration° Bus arbitration scheme:• A bus master wanting to use the bus asserts the bus request• A bus master cannot use the bus until its request is granted• A bus master must signal to the arbiter after finish using the bus
° Bus arbitration schemes usually try to balance two factors:• Bus priority: the highest priority device should be serviced first• Fairness: Even the lowest priority device should never
be completely locked out from the bus° Bus arbitration schemes can be divided into four broad classes:
• Daisy chain arbitration• Centralized, parallel arbitration• Distributed arbitration by self-selection: each device wanting the bus places a
code indicating its identity on the bus.• Distributed arbitration by collision detection:
Each device just “goes for it”. Problems found after the fact.
° Average seek time as reported by the industry:• Typically in the range of 8 ms to 12 ms• Due to locality of disk reference may
only be 25% to 33% of the advertised number
° Rotational Latency:• Most disks rotate at 3,600 to 7200 RPM• Approximately 16 ms to 8 ms
per revolution, respectively• An average latency to the desired
information is halfway around the disk: 8 ms at 3600 RPM, 4 ms at 7200 RPM
° Transfer Time is a function of :• Transfer size (usually a sector): 1 KB / sector• Rotation speed: 3600 RPM to 10000 RPM• Recording density: bits per inch on a track• Diameter typical diameter ranges from 2.5 to 5.25 in• Typical values: 2 to 40 MB per second
° 512 byte sector, rotate at 5400 RPM, advertised seeks is 12 ms, transfer rate is 4 MB/sec, controller overhead is 1 ms, queue idle so no service time
° Disk Access Time = Seek time + Rotational Latency + Transfer time
+ Controller Time + Queueing Delay
° Disk Access Time = 12 ms + 0.5 / 5400 RPM + 0.5 KB / 4 MB/s + 1 ms + 0
° Disk Access Time = 12 ms + 0.5 / 90 RPS + 0.125 / 1024 s + 1 ms + 0
° Disk Access Time = 12 ms + 5.5 ms + 0.1 ms + 1 ms + 0 ms
° Disk Access Time = 18.6 ms
° If real seeks are 1/3 advertised seeks, then its 10.6 ms, with rotation delay at 50% of the time!
° Queuing models assume state of equilibrium: input rate = output rate
° Notation: average number of arriving customers/secondTser average time to service a customer (tradtionally µ = 1/ Tser )u server utilization (0..1): u = x Tser (or u = / µ )Tq average time/customer in queue Tsys average time/customer in system: Tsys = Tq + Tser
Lq average length of queue: Lq = x Tq
Lsys average length of system: Lsys = x Tsys
° Little’s Law: Lsys = x Tsys(Mean number customers = arrival rate x mean service time)
° Server spends a variable amount of time with customers• Weighted mean m1 = (f1 x T1 + f2 x T2 +...+ fn x Tn)/F
= p(T)xT• variance = (f1 x T12 + f2 x T22 +...+ fn x Tn2)/F – m12
= p(T)xT2 - m12
• Squared coefficient of variance: C = variance/m12
- Unitless measure (100 ms2 vs. 0.1 s2)° Exponential distribution C = 1 : most short relative to average, few others
long; 90% < 2.3 x average, 63% < averageHypoexponential distribution C < 1 : most close to average, C=0.5 => 90% < 2.0 x average, only 57% < averageHyperexponential distribution C > 1 : further from average C=2.0 => 90% < 2.8 x average, 69% < average
Avg.
A Little Queuing Theory: Use of random distributions
° Disk response times C 1.5 (majority seeks < average)° Yet usually pick C = 1.0 for simplicity
• Memoryless, exponential dist• Many complex systems well described
by memoryless distribution!° Another useful value is average time
must wait for server to complete current task: m1(z)• Not just 1/2 x m1 because doesn’t capture variance• Can derive m1(z) = 1/2 x m1 x (1 + C)• No variance C= 0 => m1(z) = 1/2 x m1• Exponential C= 1 => m1(z) = m1
° Calculating average wait time in queue Tq:• If something at server, it takes to complete on average m1(z)• Chance server is busy = u; average delay is u x m1(z)
• All customers in line must complete; each avg Tser
Tq = u x m1(z) + Lq x Ts er
Tq = u x m1(z) + x Tq x Ts er
Tq = u x m1(z) + u x Tq
Tq x (1 – u) = m1(z) x uTq = m1(z) x u/(1-u) = Ts er x {1/2 x (1+C)} x u/(1 – u))
Notation: average number of arriving customers/second
Tser average time to service a customeru server utilization (0..1): u = x Tser
Tq average time/customer in queueLq average length of queue:Lq= x Tq
m1(z) average residual wait time = Ts er x {1/2 x (1+C)}
° Assumptions so far:• System in equilibrium• Time between two successive arrivals in line are random• Server can start on next customer immediately after prior finishes• No limit to the queue: works First-In-First-Out• Afterward, all customers in line must complete; each avg Tser
° Described “memoryless” or Markovian request arrival (M for C=1 exponentially random), General service distribution (no restrictions), 1 server: M/G/1 queue
° When Service times have C = 1, M/M/1 queueTq = Tser x u / (1 – u)
Tser average time to service a customeru server utilization (0..1): u = x TserTq average time/customer in queue
° Processor sends 10 x 8KB disk I/Os per second, requests & service exponentially distrib., avg. disk service = 20 ms
• This number comes from disk equation:Service time = Ave seek + ave rot delay + transfer time + ctrl overhead
° On average, how utilized is the disk?• What is the number of requests in the queue?• What is the average time spent in the queue?• What is the average response time for a disk request?
° Notation: average number of arriving customers/second = 10Tser average time to service a customer = 20 ms (0.02s)u server utilization (0..1): u = x Tser= 10/s x .02s = 0.2Tq average time/customer in queue = Tser x u / (1 – u)
= 20 x 0.2/(1-0.2) = 20 x 0.25 = 5 ms (0 .005s)Tsys average time/customer in system: Tsys =Tq +Tser= 25 msLq average length of queue:Lq= x Tq
= 10/s x .005s = 0.05 requests in queueLsys average # tasks in system: Lsys = x Tsys = 10/s x .025s = 0.25