strt ts s sts - - PowerPoint PPT Presentation

str t t s s st s
SMART_READER_LITE
LIVE PREVIEW

strt ts s sts - - PowerPoint PPT Presentation

strt ts s sts r r t rr strt sst sys 1 sys n


slide-1
SLIDE 1

❉✐str✐❜✉t❡❞ ❙♦❧✉t✐♦♥s ✉s✐♥❣ ❚✐♠❡st❛♠♣s

❙❤❛♥❦❛r ❆♣r✐❧ ✷✺✱ ✷✵✶✹

slide-2
SLIDE 2

❊✈❡♥t ♦r❞❡r✐♥❣ ✐♥ ❛ ❞✐str✐❜✉t❡❞ s②st❡♠

fifo channel sys 1 sys n

▲❡t x ❛♥❞ y ❜❡ t✇♦ st❛t❡♠❡♥t ❡①❡❝✉t✐♦♥s ✭❛❦❛ ❡✈❡♥ts✮ ❉❡✜♥❡ x ❝❛✉s❛❧❧② ♣r❡❝❡❞❡s y ✐❢ x ❛♥❞ y ❤❛♣♣❡♥❡❞ ✐♥ t❤❛t ♦r❞❡r ✐♥ t❤❡ s❛♠❡ s②st❡♠✱ ♦r x s❡♥t ❛ ♠❡ss❛❣❡ t❤❛t y r❡❝❡✐✈❡❞✱ ♦r tr❛♥s✐t✐✈❡ ❝❧♦s✉r❡ ♦❢ ❛❜♦✈❡ ❈❛✉s❛❧ ♣r❡❝❡❞❡♥❝❡ ✐s ❛ ♣❛rt✐❛❧ ♦r❞❡r ✐❢ x ❛♥❞ y ♥♦t ❝❛✉s❛❧❧② r❡❧❛t❡❞✱ ♥♦ s②st❡♠ ❝❛♥ ❞❡t❡r♠✐♥❡ ✇❤✐❝❤ ❤❛♣♣❡♥❡❞ ✜rst ✭✇✐t❤♦✉t ♦t❤❡r ✐♥t❡r❛❝t✐♦♥ ♦r r❡❛❧✲t✐♠❡ ❝❧♦❝❦s✮ ❚✐♠❡st❛♠♣ ♠❡❝❤❛♥✐s♠ ❡①t❡♥❞s ♣❛rt✐❛❧ ♦r❞❡r t♦ t♦t❛❧ ♦r❞❡r ❢♦r ❛ s♣❡❝✐✜❡❞ s❡t ♦❢ ❡✈❡♥ts

slide-3
SLIDE 3

❖✉t❧✐♥❡

ts ♠❡❝❤❛♥✐s♠

❚✐♠❡st❛♠♣ ♠❡❝❤❛♥✐s♠ ❉✐str✐❜✉t❡❞ ♦r❞❡r✐♥❣ ♦❢ ❝♦♥✢✐❝t✐♥❣ r❡q✉❡sts ❉✐str✐❜✉t❡❞ ❧♦❝❦ ♣r♦❣r❛♠✿ ❛❧❣♦r✐t❤♠ ❧❡✈❡❧ ❉✐str✐❜✉t❡❞ ❧♦❝❦ ♣r♦❣r❛♠✿ ♦✈❡r✈✐❡✇ ❈②❝❧✐❝ t✐♠❡st❛♠♣s

slide-4
SLIDE 4

❚✐♠❡st❛♠♣ ♠❡❝❤❛♥✐s♠ ✇✐t❤♦✉t ❛❝❦s

ts ♠❡❝❤❛♥✐s♠

❊❛❝❤ s②st❡♠ j ❤❛s ✐♥t❡❣❡r ✏❝❧♦❝❦✑ clk✱ ✐♥✐t✐❛❧❧② ✵ ❲❤❡♥ j ❞♦❡s ❛♥ ❡✈❡♥t x t♦ ❜❡ ♦r❞❡r❡❞✿ ✐♥❝r❡♠❡♥t clk✱ ❜r♦❛❞❝❛st [x, clk, j] clk value✿ t✐♠❡st❛♠♣ ✭ts✮ ♦❢ x [clk value, id]✿ ❡①t❡♥❞❡❞ t✐♠❡st❛♠♣ ✭❡ts✮ ♦❢ x ❲❤❡♥ j r❡❝❡✐✈❡s ♠s❣ [y, t, k]✿ clk ← ♠❛①(t, clk) + ✶ x✳❡ts < y✳❡ts✿ ✭x✳ts < y✳ts✮ ♦r ✭x✳ts = y✳ts ❛♥❞ x✳✐❞ < y✳✐❞✮ ❊✈❡♥t x ♦r❞❡r❡❞ ❜❡❢♦r❡ ❡✈❡♥t y ✐❢ x✳❡ts < y✳❡ts ❋♦r ♠♦st ❛♣♣❧✐❝❛t✐♦♥s✱ ♥❡❡❞ ❛❝❦s t♦ t✐♠❡st❛♠♣s

slide-5
SLIDE 5

❚✐♠❡st❛♠♣ ♠❡❝❤❛♥✐s♠ ✭✇✐t❤ ❛❝❦s✮

ts ♠❡❝❤❛♥✐s♠

❊❛❝❤ s②st❡♠ j ❤❛s ✐♥t❡❣❡r ❝❧♦❝❦ clk✱ ✐♥✐t✐❛❧❧② ✵ rtsk✱ k = j✱ ✐♥✐t✐❛❧❧② ✵ ✴✴ ❧❛st ts r❝✈❞ ❢r♦♠ k ❧❡t αRts✿ ♠✐♥([rtsk, k] : k = j) ✴✴ ♥♦ ♥❡✇ ❡ts < αRts ❲❤❡♥ j ❞♦❡s ❛♥ ❡✈❡♥t x t♦ ❜❡ ♦r❞❡r❡❞✿ ✐♥❝r❡♠❡♥t clk✱ ❜r♦❛❞❝❛st [x, clk, j] ❲❤❡♥ j r❡❝❡✐✈❡s ♠s❣ [y, t, k]✿ clk ← ♠❛①(t, clk) + ✶ rtsk ← t✱ s❡♥❞ [❛❝❦, clk, j] t♦ k ❲❤❡♥ j r❡❝❡✐✈❡s ♠s❣ [❛❝❦, t, k]✿ clk ← ♠❛①(t, clk)✱ rtsk ← t

slide-6
SLIDE 6

Pr♦♣❡rt✐❡s

ts ♠❡❝❤❛♥✐s♠

❉❡✜♥❡ ❛✉①✐❧✐❛r② q✉❛♥t✐t✐❡s hst✿ s❡q ♦❢ ❛❧❧ ❡ts✬s ✐♥ ❡ts✲♦r❞❡r ✴✴ ✐♥✐t✐❛❧❧② [ [✵, ✵] ] j.hst✿ s❡q ♦❢ ❡ts✬s s❡❡♥ ❜② j ✐♥ ❡ts✲♦r❞❡r ✴✴ ✐♥✐t✐❛❧❧② [ [✵, ✵] ] j.αhst✿ ♣r❡✜① ♦❢ j.hst ♦❢ ❡ts✬s ≤ j.αRts ❙❛❢❡t② ♣r♦♣❡rt✐❡s ■♥✈ j.hst s✉❜s❡q✉❡♥❝❡✲♦❢ hst ■♥✈ j.αhst ♣r❡✜①✲♦❢ hst Pr♦❣r❡ss ♣r♦♣❡rt✐❡s ✭❛ss✉♠✐♥❣ ♥♦ s②st❡♠ st♦♣s r❝✈✐♥❣✮ j.αRts = z < hst.last ❧❡❛❞s✲t♦ j.αRts > z j.αhst.size = z < hst.size ❧❡❛❞s✲t♦ j.αhst.size > z

slide-7
SLIDE 7

❖✉t❧✐♥❡

r❡q✉❡st ♦r❞❡r✐♥❣

❚✐♠❡st❛♠♣ ♠❡❝❤❛♥✐s♠ ❉✐str✐❜✉t❡❞ ♦r❞❡r✐♥❣ ♦❢ ❝♦♥✢✐❝t✐♥❣ r❡q✉❡sts ❉✐str✐❜✉t❡❞ ❧♦❝❦ ♣r♦❣r❛♠✿ ❛❧❣♦r✐t❤♠ ❧❡✈❡❧ ❉✐str✐❜✉t❡❞ ❧♦❝❦ ♣r♦❣r❛♠✿ ♦✈❡r✈✐❡✇ ❈②❝❧✐❝ t✐♠❡st❛♠♣s

slide-8
SLIDE 8

❘❡q✉❡st ♦r❞❡r✐♥❣ ♣r♦❜❧❡♠

r❡q✉❡st ♦r❞❡r✐♥❣

❈♦❧❧❡❝t✐♦♥ ♦❢ s②st❡♠s ❛tt❛❝❤❡❞ t♦ ❛ ✜❢♦ ❝❤❛♥♥❡❧ ❯s❡rs ✐ss✉❡ ❝♦♥✢✐❝t❛❜❧❡ r❡q✉❡sts t♦ t❤❡ s②st❡♠s ❊❛❝❤ s②st❡♠ s❤♦✉❧❞ s❡r✈❡ ✐ts r❡q✉❡sts s♦ t❤❛t ❝♦♥✢✐❝t✐♥❣ r❡q✉❡sts ❛r❡ ♥♦t s❡r✈❡❞ s✐♠✉❧t❛♥❡♦✉s❧② ✭❡✈❡♥ ❜② ❞✐✛❡r❡♥t s②st❡♠s✮ ❙♦♠❡ s♣❡❝✐❛❧ ❝❛s❡s ♦❢ t❤❡ ♣r♦❜❧❡♠ ❞✐str✐❜✉t❡❞ ❧♦❝❦ ❡✈❡r② t✇♦ r❡q✉❡sts ❝♦♥✢✐❝t ❞✐str✐❜✉t❡❞ r❡❛❞❡rs✲✇r✐t❡rs ❧♦❝❦ ❝❧❛ss✐❢② r❡q✉❡sts ✐♥t♦ r❡❛❞s ❛♥❞ ✇r✐t❡s ✇r✐t❡ ❝♦♥✢✐❝ts ✇✐t❤ ❡✈❡r② ♦t❤❡r r❡q✉❡st

slide-9
SLIDE 9

❙♦❧✉t✐♦♥ ♦✈❡r✈✐❡✇

r❡q✉❡st ♦r❞❡r✐♥❣

❙②st❡♠ j ❛✉❣♠❡♥ts t❤❡ ts ♠❡❝❤❛♥✐s♠ ❛s ❢♦❧❧♦✇s ▼❛✐♥t❛✐♥ ✈❛r✐❛❜❧❡ req✿ s❡t ♦❢ ✏♦♥❣♦✐♥❣✑ r❡q✲❡ts t✉♣❧❡s ❯♣♦♥ ❧♦❝❛❧ r❡q✉❡st x✿ ❛ss✐❣♥ ts✱ ❛❞❞ [x,ts,j] t♦ req ❯♣♦♥ r❝✈✐♥❣ [y,t,k]✿ ♣r♦❝❡ss ts✱ ❛❞❞ [y,t,k] t♦ req ❙❡r✈❡ [x,t,j] ✐♥ req ✇❤❡♥✿

[t,j] < αRts ❛♥❞ [t,j] < [u,k] ❢♦r ❡✈❡r② ❝♦♥✢✐❝t✐♥❣ [y,u,k] ✐♥ req

❆❢t❡r s❡r✈✐♥❣ [x,t,j]✿ r❡♠♦✈❡ ✐t ❢r♦♠ req✱ ❜❝❛st [REL,x,t,j] ❯♣♦♥ r❝✈✐♥❣ [REL,y,t,k]✿ r❡♠♦✈❡ [y,t,k] ❢r♦♠ req

slide-10
SLIDE 10

❙♦❧✉t✐♦♥✿ ✈❛r✐❛❜❧❡s ❛♥❞ ♠❡ss❛❣❡s

r❡q✉❡st ♦r❞❡r✐♥❣

❙②st❡♠ j ✈❛r✐❛❜❧❡s

clk✿ ✐♥✐t✐❛❧❧② 0

✴✴ ❝❧♦❝❦

rtsk✿ ✐♥✐t✐❛❧❧② 0

✴✴ ❤✐❣❤❡st ts r❝✈❞ ❢r♦♠ k αRts✿ ♠✐♥(rtsk, k]: k = j) ✴✴ ♠✐♥ ❡ts ✐♥❞✉❝❡❞ ❜② rts

req✿ ✐♥✐t✐❛❧❧② ❡♠♣t②

✴✴ s❡t ♦❢ ♦✉tst❛♥❞✐♥❣ r❡q✉❡sts✲❡ts ▼❡ss❛❣❡s

[REQ,x,t,k]

✴✴ r❡q✉❡st ♠s❣

[ACK,t,k]

✴✴ ❛❝❦ ♠s❣

[REL,x,t,k]

✴✴ r❡❧❡❛s❡ ♠s❣

slide-11
SLIDE 11

❙♦❧✉t✐♦♥✿ s②st❡♠ j r✉❧❡s ✕ ✶

r❡q✉❡st ♦r❞❡r✐♥❣

❯s❡r ✐s✉❡s r❡q✉❡st x

clk + +

s❡♥❞ [REQ,x,clk,j] t♦ ❡✈❡r② s②st❡♠ ❛❞❞ [x,clk,j] t♦ req ❘❡❝❡✐✈❡ [REQ,x,t,k]✿

clk ← max(clk, t+1) rts[k] ← t

s❡♥❞ [ACK,clk,j] t♦ k ✴✴ ♦♠✐t ✐❢ ❡ts > [t,k] ❛❧r❡❛❞② s❡♥t t♦ k ❛❞❞ [x,t,k] t♦ req ❙t❛rt s❡r✈✐♥❣ r❡q✉❡st [x,t,j] ✐♥ req ✇❤❡♥

[t,j] ≤ αRts

❢♦r ❡✈❡r② [y,s,k] ✐♥ req st x ❝♦♥✢✐❝ts ✇✐t❤ y✿ [t,j] ≤ [s,k]

slide-12
SLIDE 12

❙♦❧✉t✐♦♥✿ s②st❡♠ j r✉❧❡s ✕ ✷

r❡q✉❡st ♦r❞❡r✐♥❣

❋✐♥✐s❤ s❡r✈✐♥❣ r❡q✉❡st [x,t,j]✿ r❡♠♦✈❡ [x,t,j] ❢r♦♠ req❀ s❡♥❞ [REL,x,t,j] t♦ ❡✈❡r② ♦t❤❡r s②st❡♠✳ ❘❡❝❡✐✈❡ [ACK,t,k]✿

clk ← max(clk, t); rts[k] ← t

❘❡❝❡✐✈❡ [REL,x,t,k]✿ r❡♠♦✈❡ [x,t,k] ❢r♦♠ req ❛t♦♠✐❝✐t② ❛ss✉♠♣t✐♦♥✿ r✉❧❡s ❛r❡ ❛t♦♠✐❝ ♣r♦❣r❡ss ❛ss✉♠♣t✐♦♥✿ ✇❡❛❦ ❢❛✐r♥❡ss

slide-13
SLIDE 13

❖✉t❧✐♥❡

❞✐st ❧♦❝❦✿ ❛❧❣✲❧❡✈❡❧

❚✐♠❡st❛♠♣ ♠❡❝❤❛♥✐s♠ ❉✐str✐❜✉t❡❞ ♦r❞❡r✐♥❣ ♦❢ ❝♦♥✢✐❝t✐♥❣ r❡q✉❡sts ❉✐str✐❜✉t❡❞ ❧♦❝❦ ♣r♦❣r❛♠✿ ❛❧❣♦r✐t❤♠ ❧❡✈❡❧ ❉✐str✐❜✉t❡❞ ❧♦❝❦ ♣r♦❣r❛♠✿ ♦✈❡r✈✐❡✇ ❈②❝❧✐❝ t✐♠❡st❛♠♣s

slide-14
SLIDE 14

❉✐str✐❜✉t❡❞ ❧♦❝❦✿ ❛❧❣♦r✐t❤♠ ❧❡✈❡❧

❞✐st ❧♦❝❦✿ ❛❧❣✲❧❡✈❡❧

❉✐str✐❜✉t❡❞ ♣r♦❣r❛♠ t❤❛t ✐♠♣❧❡♠❡♥ts ❛ ❞✐str✐❜✉t❡❞ ❧♦❝❦ ❈♦❧❧❡❝t✐♦♥ ♦❢ s②st❡♠s ❛tt❛❝❤❡❞ t♦ ❛ ✜❢♦ ❝❤❛♥♥❡❧ ❙♣❡❝✐❛❧✐③❡ t❤❡ r❡q✉❡st✲♦r❞❡r✐♥❣ s♦❧✉t✐♦♥ ❢♦r ❛ ❧♦❝❦ ❆t ♠♦st ♦♥❡ ♦♥❣♦✐♥❣ r❡q✉❡st ♣❡r s②st❡♠ s♦ ❡❛❝❤ s②st❡♠ ✐s t❤✐♥❦✐♥❣✱ ❤✉♥❣r②✱ ♦r ❡❛t✐♥❣ ♥♦ ♥❡❡❞ ❢♦r ts ✐♥ r❡❧❡❛s❡ ♠s❣ ▲❛t❡r✱ r❡✜♥❡ t♦ ❛✇❛✐t ♣r♦❣r❛♠ ✐♠♣❧❡♠❡♥t✐♥❣ ❞✐st ❧♦❝❦ s❡r✈✐❝❡

slide-15
SLIDE 15

❙♦❧✉t✐♦♥✿ ✈❛r✐❛❜❧❡s✱ ❢✉♥❝t✐♦♥s✱ ♠❡ss❛❣❡s

❞✐st ❧♦❝❦✿ ❛❧❣✲❧❡✈❡❧

❙②st❡♠ j ✈❛r✐❛❜❧❡s

clk✱ {rtsk} // ❛s ✐♥ r❡q✲♦r❞❡r✐♥❣ req ← [] // ♠❛♣ ✐♥❞❡①❡❞ ❜② ❛❞❞r❡ss // ❡♥tr② [j,t] ↔ ❡ts [t,j]

❙②st❡♠ j ❢✉♥❝t✐♦♥s αRts

// ♠✐♥ ❡ts ✐♥ {rtsk}

αReq✿ ♠✐♥([req[k], k]: k in req.keys)

// ♠✐♥ ❡ts ✐♥ req

▼❡ss❛❣❡s

[REQ,t,k]✱ [ACK,t,k]✱ [REL,k]

✴✴ ❛s ✐♥ r❡q✲♦r❞❡r✐♥❣ ✴✴ ♥♦t❡✿ ♥♦ ✏x✑ ✜❡❧❞

slide-16
SLIDE 16

❙♦❧✉t✐♦♥✿ s②st❡♠ j r✉❧❡s ✕ ✶

❞✐st ❧♦❝❦✿ ❛❧❣✲❧❡✈❡❧

❇❡❝♦♠❡ ❤✉♥❣r② ♦♥❧② ✐❢ t❤✐♥❦✐♥❣

clk + +

s❡♥❞ [REQ,clk,j] t♦ ❡✈❡r② s②st❡♠

req[j] ← clk

❇❡❝♦♠❡ ❡❛t✐♥❣ ♦♥❧② ✐❢ ❤✉♥❣r② ❛♥❞ [reqj, j] = αReq ≤ αRts ❇❡❝♦♠❡ t❤✐♥❦✐♥❣ ♦♥❧② ✐❢ ❡❛t✐♥❣✿ r❡♠♦✈❡ ❡♥tr② ❢♦r j ❢r♦♠ req s❡♥❞ [REL,j] t♦ ❡✈❡r② s②st❡♠

slide-17
SLIDE 17

❙♦❧✉t✐♦♥✿ s②st❡♠ j r✉❧❡s ✕ ✷

❞✐st ❧♦❝❦✿ ❛❧❣✲❧❡✈❡❧

❘❡❝❡✐✈❡ [REQ,t,k]✿

clk ← max(clk, t+1) rts[k] ← t req[k] ← t

s❡♥❞ [ACK,clk,j] t♦ k ❘❡❝❡✐✈❡ [ACK,t,k]✿

clk ← max(clk, t); rts[k] ← t

❘❡❝❡✐✈❡ [REL,k]✿ r❡♠♦✈❡ ❡♥tr② ❢♦r k ❢r♦♠ req ❛t♦♠✐❝✐t② ❛ss✉♠♣t✐♦♥✿ r✉❧❡s ❛r❡ ❛t♦♠✐❝ ♣r♦❣r❡ss ❛ss✉♠♣t✐♦♥✿ ✇❡❛❦ ❢❛✐r♥❡ss

slide-18
SLIDE 18

❆♥❛❧②s✐s✿ s❛❢❡t②

❞✐st ❧♦❝❦✿ ❛❧❣✲❧❡✈❡❧

  • ♦❛❧✿ ■♥✈ ❛t ♠♦st ♦♥❡ s②st❡♠ ✐s ❡❛t✐♥❣

■♥✈ A✶✕A✹ ❤♦❧❞s✱ ✇❤❡r❡ A✶ : (([j,s] in k.req) and j = k) ⇒

([j,s] in j.req) or ([REL,j] in transit to k)

A✷ : (j eating) ⇒

[j.req[j], j] = j.αReq ≤ j.αRts

A✸ : ((j eating) and (k eating)) ⇒

j = k

A✹ : ((j hungry) and [j.req[j], j] = j.αReq ≤ j.αRts) ⇒ (no one eating) ■♥✈ A✸ ✐♠♣❧✐❡s ❞❡s✐r❡❞ ♣r♦♣❡rt②

slide-19
SLIDE 19

❆♥❛❧②s✐s✿ ♣r♦❣r❡ss

❞✐st ❧♦❝❦✿ ❛❧❣✲❧❡✈❡❧

  • ♦❛❧✿ ✭✇❢❛✐r✱ ❜♦✉♥❞❡❞ ❡❛t✐♥❣✱ ♦♥❣♦✐♥❣ r①✱ ❝❤❛♥♥❡❧ ♣r♦❣r❡ss✮

⇒ j ❤✉♥❣r② ❧❡❛❞s✲t♦ j ❡❛t✐♥❣ ❉❡✜♥❡

hst✿ s❡q ♦❢ ❛❧❧ ❡ts✬s ✐♥ ❡ts✲♦r❞❡r // ✐♥✐t✐❛❧❧② [[0,0]] ne✿ # r❡q✉❡sts t❤❛t ❤❛✈❡ ✜♥✐s❤❡❞ ❡❛t✐♥❣

Pr♦♦❢ ✐❢ [j,s] ✐s ✐♥ j.req✱ ❡✈❡♥t✉❛❧❧② [s,j] ≤ j.αRts ❤♦❧❞s ❛❢t❡r t❤✐s ♣♦✐♥t

[j,s]✬s ✐♥❞❡① ✐♥ hst ✐s ✜①❡❞✱ ❛t s❛② n

❡♥tr✐❡s ✐♥ hst[ne + 1..n] ❡❛t ✐♥ ♦r❞❡r ❬❡♥tr② ne✬s r❡❧❡❛s❡ ♠s❣ ✐s ✐♥❝♦♠✐♥❣ t♦ ❡♥tr② ne+1✬s s②st❡♠✳ ✇❤❡♥ ✐t ❛rr✐✈❡s✱ t❤❡ ❧❛tt❡r ❡✈❡♥t✉❛❧❧② ❜❡❝♦♠❡s ❡❛t✐♥❣❪

slide-20
SLIDE 20

❖✉t❧✐♥❡

❞✐st ❧♦❝❦✿ ❛✇❛✐t ♣r♦❣r❛♠

❚✐♠❡st❛♠♣ ♠❡❝❤❛♥✐s♠ ❉✐str✐❜✉t❡❞ ♦r❞❡r✐♥❣ ♦❢ ❝♦♥✢✐❝t✐♥❣ r❡q✉❡sts ❉✐str✐❜✉t❡❞ ❧♦❝❦ ♣r♦❣r❛♠✿ ❛❧❣♦r✐t❤♠ ❧❡✈❡❧ ❉✐str✐❜✉t❡❞ ❧♦❝❦ ♣r♦❣r❛♠✿ ♦✈❡r✈✐❡✇ ❈②❝❧✐❝ t✐♠❡st❛♠♣s

slide-21
SLIDE 21

❉✐str✐❜✉t❡❞ ❧♦❝❦✿ ❛✇❛✐t✲❜❛s❡❞

❞✐st ❧♦❝❦✿ ❛✇❛✐t ♣r♦❣r❛♠

❉✐str✐❜✉t❡❞ ♣r♦❣r❛♠✿ ✐♠♣❧❡♠❡♥ts ❞✐str✐❜✉t❡❞ ❧♦❝❦ s❡r✈✐❝❡ st❛rts ❛ ✜❢♦ ❝❤❛♥♥❡❧ st❛rts ❛ LockTs s②st❡♠ ❛t ❡❛❝❤ ❛❞❞r❡ss

LockTs✿ ❛✇❛✐t ♣r♦❣r❛♠✱ r❡✜♥❡s ❛❧❣♦r✐t❤♠✲❧❡✈❡❧ s②st❡♠

✐♥♣✉t ❢✉♥❝t✐♦♥s acq ❛♥❞ rel ✴✴ ❝❛❧❧❡❞ ❜② ❧♦❝❦ ✉s❡rs ♦✉t♣✉t ❝❛❧❧s t♦ tx ❛♥❞ rx ♦❢ ❝❤❛♥♥❡❧ ❛❝❝❡ss s②st❡♠ ♦♥❡ ❧♦❝❛❧ t❤r❡❛❞ t♦ ❡①❡❝✉t❡ rx ♠✉❧t✐♣❧❡ acq ❝❛❧❧s ❝❛♥ ❜❡ ♦♥❣♦✐♥❣ ❜✉t ♦♥❧② ♦♥❡ ♣❛rt✐❝✐♣❛t❡s ✐♥ ts ♠❡❝❤❛♥✐s♠

slide-22
SLIDE 22

Pr♦❣r❛♠ ▲♦❝❦❚s❉✐st

❞✐st ❧♦❝❦✿ ❛✇❛✐t ♣r♦❣r❛♠

♣r♦❣r❛♠ LockTsDist( ADDR ) {cj} ← st❛rt( FifoChannel(ADDR) ) ❢♦r j ✐♥ ADDR

vj ← st❛rt( LockTs(ADDR, j, cj) )

r❡t✉r♥ {vj}

slide-23
SLIDE 23

Pr♦❣r❛♠ LockTs ( ADDR, j, cj) ✕ ✶

❞✐st ❧♦❝❦✿ ❛✇❛✐t ♣r♦❣r❛♠

▼❛✐♥

clk ← 0 rtsk ← 0✱ k in ADDR−{j}} req startThread ( doRx() )

✐♥♣✉t mysid.acq() ❛✇❛✐t (not (j in req.keys)

// ❛✶ clk + + ❀ reqj ← clk

❢♦r k ✐♥ ADDR−{j}

cj.tx(k, [REQ, clk, j])

❛✇❛✐t ([reqj, j] ≤ αReq

and // a2 (ADDR.size = 1

  • r

[reqj, j] ≤ αRts))

r❡t✉r♥

slide-24
SLIDE 24

Pr♦❣r❛♠ LockTs ( ADDR, j, cj) ✕ ✷

❞✐st ❧♦❝❦✿ ❛✇❛✐t ♣r♦❣r❛♠

✐♥♣✉t mysid.rel() ❛✇❛✐t (true)

req.remove(j)

❢♦r k ✐♥ ADDR−{j}

cj.tx(k, [REL, j])

❢✉♥❝t✐♦♥ doRx() ✴✴ ❡①❡❝✉t❡❞ ❜② ❛ ❧♦❝❛❧ t❤r❡❛❞ ✇❤✐❧❡ true

msg ← cj.rx()

✐❛ {msg ✐s [REQ, t, k]✱ [ACK, t, k]✱ ♦r [REL,k]} ❛✇❛✐t true ❞♦ ❛♣♣r♦♣r✐❛t❡ r①✲msg ❛❝t✐♦♥ ❛t♦♠✐❝✐t② ❛ss✉♠♣t✐♦♥ {awaits} ♣r♦❣r❡ss ❛ss✉♠♣t✐♦♥ {✇❢❛✐r t❤r❡❛❞s✱ s❢❛✐r await ❛✶}

slide-25
SLIDE 25

❆♥❛❧②s✐s

❞✐st ❧♦❝❦✿ ❛✇❛✐t ♣r♦❣r❛♠

▼❛♣ ❛❧❣✲❧❡✈❡❧ st❛t❡ t♦ ❛✇❛✐t✲♣r♦❣r❛♠ st❛t❡ ❛❧❣✲❧❡✈❡❧ ❛✇❛✐t✲♣r♦❣r❛♠

j ❤✉♥❣r②

↔ t❤r❡❛❞ ✐♥ j.acq.a2

j ❡❛t✐♥❣

[j,.] ✐♥ j.req✱ ♥♦ t❤r❡❛❞ ✐♥ j.acq.a2 j t❤✐♥❦✐♥❣

↔ ♥♦ [j,.] ✐♥ j.req ❙❤♦✇ t❤❛t ❛❧❣✲❧❡✈❡❧ ♣r♦♣❡rt✐❡s ❛r❡ ♣r❡s❡r✈❡❞ ✭⋆✮ Pr♦✈❡✿ LockTsDist(ADDR) ✐♠♣❧❡♠❡♥ts DistLockService(ADDR) ❞❡✜♥❡ ♣r♦❣r❛♠ ♦❢ ✐♠♣❧❡♠❡♥t❛t✐♦♥ ❛♥❞ s❡r✈✐❝❡ ✐♥✈❡rs❡ ✐❞❡♥t✐❢② ❡✛❡❝t✐✈❡ ❛t♦♠✐❝✐t② ❜r❡❛❦♣♦✐♥ts ♦❜t❛✐♥ ❛ss❡rt✐♦♥s ♣r♦✈❡ ♣r♦❣r❛♠ s❛t✐s✜❡s ❛ss❡rt✐♦♥s

// ❡❛s② ❣✐✈❡♥ ⋆

slide-26
SLIDE 26

❖✉t❧✐♥❡

❝②❝❧✐❝ t✐♠❡st❛♠♣s

❚✐♠❡st❛♠♣ ♠❡❝❤❛♥✐s♠ ❉✐str✐❜✉t❡❞ ♦r❞❡r✐♥❣ ♦❢ ❝♦♥✢✐❝t✐♥❣ r❡q✉❡sts ❉✐str✐❜✉t❡❞ ❧♦❝❦ ♣r♦❣r❛♠✿ ❛❧❣♦r✐t❤♠ ❧❡✈❡❧ ❉✐str✐❜✉t❡❞ ❧♦❝❦ ♣r♦❣r❛♠✿ ♦✈❡r✈✐❡✇ ❈②❝❧✐❝ t✐♠❡st❛♠♣s

slide-27
SLIDE 27

❯s✐♥❣ ❝②❝❧✐❝ t✐♠❡st❛♠♣s

❝②❝❧✐❝ t✐♠❡st❛♠♣s

  • ♦❛❧✿ ❝②❝❧✐❝ t✐♠❡st❛♠♣s ✐♥ t❤❡ ❞✐str✐❜✉t❡❞ ❧♦❝❦ s♦❧✉t✐♦♥

❊❛s✐❧② ❛❝❤✐❡✈❡❞ ❜② ♠♦❞✐❢②✐♥❣ s♦❧✉t✐♦♥ s❧✐❣❤t❧② ❊①✐st✐♥❣ s♦❧✉t✐♦♥✿ r❡q✉❡st [t,j] ❡❛ts ✇❤❡♥ ✶✳ [t,j] = j.αReq ✷✳ [t,j] ≤ j.αRts ■♠♣♦s❡ ❛❞❞✐t✐♦♥❛❧ r❡q✉✐r❡♠❡♥t✿ ✸✳ j ❡❛ts ♦♥❧② ❛❢t❡r r❝✈✐♥❣ ❛❝❦ ❢r♦♠ ❡✈❡r② s②st❡♠ ❘❡s✉❧t✐♥❣ s✐♠♣❧✐✜❝❛t✐♦♥ ❛❝❦✬s ts ❛❧✇❛②s ❤✐❣❤❡r t❤❛♥ r❡q✉❡st✬s ts s♦ ♥♦ ♥❡❡❞ ❢♦r ❛❝❦✬s ts ♥♦ ♥❡❡❞ ❢♦r {rtsk} s✉✣❝✐❡♥t t♦ tr❛❝❦ # ❛❝❦s r❝✈❞ ♥♦ ♥❡❡❞ ❢♦r ❛❝❦✬s s❡♥❞❡r ✐❞

slide-28
SLIDE 28

❙♦❧✉t✐♦♥✿ ✈❛r✐❛❜❧❡s✱ ❢✉♥❝t✐♦♥s✱ ♠❡ss❛❣❡s

❝②❝❧✐❝ t✐♠❡st❛♠♣s

❙②st❡♠ j ✈❛r✐❛❜❧❡s

clk✱

{rtsk}✱

req na // # ❛❝❦s ❞✉❡

❙②st❡♠ j ❢✉♥❝t✐♦♥s αRts ✱ αReq ▼❡ss❛❣❡s

[REQ,t,k]✱ [ACK, t,k]✱ [REL,k]

slide-29
SLIDE 29

❙♦❧✉t✐♦♥✿ s②st❡♠ j r✉❧❡s ✕ ✶

❝②❝❧✐❝ t✐♠❡st❛♠♣s

❇❡❝♦♠❡ ❤✉♥❣r② ♦♥❧② ✐❢ t❤✐♥❦✐♥❣

clk + + req[j] ← clk

s❡♥❞ [REQ,clk,j] t♦ ❡✈❡r② s②st❡♠

na ← 0

❇❡❝♦♠❡ ❡❛t✐♥❣ ♦♥❧② ✐❢ ❤✉♥❣r② ❛♥❞ [reqj, j] = αReq ❛♥❞ na = ADDR.size − 1 ❇❡❝♦♠❡ t❤✐♥❦✐♥❣ ♦♥❧② ✐❢ ❡❛t✐♥❣✿ r❡♠♦✈❡ ❡♥tr② ❢♦r j ❢r♦♠ req s❡♥❞ [REL,j] t♦ ❡✈❡r② s②st❡♠

slide-30
SLIDE 30

❙♦❧✉t✐♦♥✿ s②st❡♠ j r✉❧❡s ✕ ✷

❝②❝❧✐❝ t✐♠❡st❛♠♣s

❘❡❝❡✐✈❡ [REQ,t,k]✿

clk ← max(clk, t+1) req[k] ← t

s❡♥❞ [ACK] t♦ k ❘❡❝❡✐✈❡ [ACK]✿

na + +

❘❡❝❡✐✈❡ [REL,k]✿ r❡♠♦✈❡ ❡♥tr② ❢♦r k ❢r♦♠ req ❛t♦♠✐❝✐t② ❛ss✉♠♣t✐♦♥✿ r✉❧❡s ❛r❡ ❛t♦♠✐❝ ♣r♦❣r❡ss ❛ss✉♠♣t✐♦♥✿ ✇❡❛❦ ❢❛✐r♥❡ss

slide-31
SLIDE 31

❆♥❛❧②s✐s✿ ❝♦♥✈❡♥t✐♦♥s

❝②❝❧✐❝ t✐♠❡st❛♠♣s

❆❜❜r❡✈✐❛t✐♦♥s ❢♦r r❡❛❞❛❜✐❧✐t②✿

hstj.ts t♦ ♠❡❛♥ hst[j][0] N t♦ ♠❡❛♥ ADDR.size

❉❡✜♥❡

hst✿ s❡q ♦❢ ❛❧❧ ❡ts✬s✱ ✐♥✐t✐❛❧❧② [[0,0]] // ❛s ❜❡❢♦r❡ ne✿ # r❡❧❡❛s❡s ❣❧♦❜❛❧❧②✱ ✐♥✐t✐❛❧❧② 0 // ❛s ❜❡❢♦r❡ j.ne✿ # r❡❧❡❛s❡s s❡❡♥ ❜② j // ♠❛② ❧❛❣ ne tse✿ ts ♦❢ ❧❛st r❡q✉❡st t♦ r❡❧❡❛s❡ // hstne.ts j.tse✿ ts ♦❢ ❧❛st r❡q✉❡st r❡❧❡❛s❡❞ ❛t j // hstj.ne.ts

slide-32
SLIDE 32

❆♥❛❧②s✐s✿ ♦✈❡r✈✐❡✇

❝②❝❧✐❝ t✐♠❡st❛♠♣s

Pr♦✈❡✿ ❛♥② ts ✐♥ tr❛♥s✐t ✐s ✐♥ tse .. tse + 2 N Pr♦✈❡✿ j.tse ✐s ✐♥ tse − 2 N.. tse ❍❡♥❝❡✿ ❛♥② ts ✐♥ tr❛♥s✐t ✐s ✐♥ j.tse .. j.tse + 4 N ❍❡♥❝❡ ❝❛♥ ✉s❡ ♠♦❞✉❧♦✲M ts✱ ❢♦r M ≥ 4 N ▼♦❞✐❢② s②st❡♠ j t♦ ✉s❡ ❝②❝❧✐❝ ts ❛❞❞ ✈❛r✐❛❜❧❡ tse✱ ✐♥✐t✐❛❧❧② ✵ ✇❤❡♥ ❛ r❡q✉❡st ♠s❣ ✐s s❡♥t✱ s❡t ✐ts ts t♦ mod(clk, M) ✇❤❡♥ ❛ r❡q✉❡st ♠s❣ [REQ, ct, j] ✐s r❝✈❞✱ tr❡❛t ct ❛s ✉♥❜♦✉♥❞❡❞ ts tse + mod(ct−tse, M) ✇❤❡♥ [k,t] ✐s r❡♠♦✈❡❞ ❢r♦♠ req✱ s❡t tse t♦ t

slide-33
SLIDE 33

❆♥❛❧②s✐s✿ ❜♦✉♥❞ ts ✇rt tse

❝②❝❧✐❝ t✐♠❡st❛♠♣s

❋♦❧❧♦✇✐♥❣ ❛r❡ ✐♥✈❛r✐❛♥t C✶ : ([REQ,t,j] rcvable) ⇒ hstne.ts ≤ t ≤ hst.last.ts C✷ : forsome(x in hst:

x.ts ≤ i.clk ≤ x.ts + 1)

C✸ : hstp.ts ≤ hstp+1.ts ≤ hstp.ts + 2 C✹ : ([REQ,t,j] rcvable) ⇒

hstne.ts ≤ t ≤ hstne.ts + 2×ADDR.size

■♥✈ C✶✿ [REQ,t,j] ✐♥ tr❛♥s✐t ✐♠♣❧✐❡s r❡q [t,j] ❤✉♥❣r② ■♥✈ C✷✿ C✷ s❛t✐s✜❡s ✐♥✈❛r✐❛♥❝❡ r✉❧❡ ■♥✈ C✸✿ C✸ s❛t✐s✜❡s ✐♥✈❛r✐❛♥❝❡ r✉❧❡ ❛ss✉♠✐♥❣ ■♥✈ C✷ ■♥✈ C✹✿ ❢♦❧❧♦✇s ❢r♦♠ ■♥✈ C✶, C✸

slide-34
SLIDE 34

❆♥❛❧②s✐s✿ ❜♦✉♥❞ ts ✇rt j.tse

❝②❝❧✐❝ t✐♠❡st❛♠♣s

❋♦❧❧♦✇✐♥❣ ❛r❡ ✐♥✈❛r✐❛♥t C✺ : (# REL ♠s❣s ✐♥❝♦♠✐♥❣ t♦ j) < ADDR.size C✻ : ne − j.ne = (# REL ♠s❣s ✐♥❝♦♠✐♥❣ t♦ j) C✼ : hstne.ts − 2×ADDR.size ≤ hstj.ne ≤ hstne.ts C✽ : ([REQ,t,j] rcvable at i) ⇒

hstj.ne.ts ≤ t ≤ hsti.ne.ts + 4×ADDR.size

■♥✈ C✺✿ [t,k] ✐s ❛❝❦❡❞ ♦♥❧② ❛❢t❡r k✬s ♣r❡✈✐♦✉s REL ♠s❣s ❛r❡ r❝✈❞ ■♥✈ C✻✿ C✻ s❛t✐s✜❡s ✐♥✈❛r✐❛♥❝❡ r✉❧❡ ■♥✈ C✼✿ C✼ ✐♠♣❧✐❡❞ ❜② C✻✱ C✺✱ C✸ ■♥✈ C✽✿ C✽ ✐♠♣❧✐❡❞ ❜② C✼✱ C✹