1 / 35

Design and Performance Analysis of Buffers: a Constructive Approach

Design and Performance Analysis of Buffers: a Constructive Approach. Rudolf H. Mak Dept. of Mathematics and Computer Science Technische Universiteit Eindhoven P.O. Box 513, 5600 MB Eindhoven, The Netherlands E-mail: R.H.Mak@tue.nl. Baroque Buffer. Design issues. Functional correctness

akamu
Télécharger la présentation

Design and Performance Analysis of Buffers: a Constructive Approach

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Design and Performance Analysis of Buffers:a Constructive Approach Rudolf H. Mak Dept. of Mathematics and Computer Science Technische Universiteit Eindhoven P.O. Box 513, 5600 MB Eindhoven, The Netherlands E-mail: R.H.Mak@tue.nl

  2. Baroque Buffer

  3. Design issues • Functional correctness • Preservation of order • Behavioral correctness • Absence of deadlock • Performance • Cycle time, throughput • Latency • Occupancy

  4. Constructive Approach • Basic building blocks • 1-place buffer • 2-way split • 2-way merge • Construction methods • Serial composition • Wagging composition • Multi-wagging

  5. Functional Specification A functional specification of a system spe-cifies each output stream as a transforma-tion of (a combination of) its input streams. • Basic stream transformers • Take operator • Drop operator • Stream transformer calculus • Computation rules

  6. Baroque Buffer (functional spec)

  7. Sequence Functions • map the events of a system onto discrete time-slots • are used to: • establish absence of deadlock • analyze system performance • are constructed using: • a fixed set of basic sequence functions • a set of sequence function transformers

  8. Baroque Buffer (sequence function)

  9. Capacity and I/O-distance • The capacity of a buffer is the sum of the number of variables of each of its compo-nents • The i/o-distance of a buffer is the minimal number of variables visited by any value on its passage through the buffer

  10. Cycle Time Given a sequence function s we define • The individual cycle time by • The average cycle time by

  11. Latency Given a sequence function s we define • The individual latency by • The average latency by

  12. Occupancy Given a sequence function s we define • The instantaneous occupancy by • The average occupancy by

  13. Queuing Formula (Little) Let s be a sequence function of a buffer with finite average latency, occupancy, and cycle time. Then

  14. -bounds Let X be a buffer with capacity  and i/o-distance . Then for every sequence function  for X with average cycle time , the average occupancy  is bounded by

  15. Optimality Problem Given a pair of values (k, d), design the optimal buffer with capacity k and i/o-distance d, where optimal means that the occupancy can attain both bounds.

  16. Optimal Buffer Families • Linear buffers • Tree-like buffers • Rectangular buffers • Square buffers

  17. Rectangular Buffer (5x3)

  18. Ebergen’s Square FIFO J. Ebergen, Squaring the FIFO in GasP, Async 2001

  19. Ebergen’s Ring Experiment • Capacity: 74 • I/o-distance: 34 • Theoretical bounds: 17    57 • Experimental bounds: 23    63

  20. Conclusions • Simple calculus to verify functional correctness • Accurate performance analysis based on sequence functions • Rectangular buffers are (, )-optimal

  21. 1-place Buffer

  22. 2-way Split

  23. 2-way Merge

  24. Serial Composition

  25. Wagging Composition

  26. Multi-wagging

  27. Take Operator For integers  and l, 0kl, and an infinite stream of values A, we define the postfix-operator by “from A take every k-th out of l values”

  28. Drop Operator For integers  and l, 0kl, and an infinite stream of values A, we define the postfix-operator by “from A drop every k-th out of l values”

  29. Computation Rules • Drop-take rule • Take-take rule • Complement rule

  30. Linear Buffers • Capacity  = n • I/o-distance  = n

  31. Capacity  = 32n-1 2 I/o-distance  = 2n  1 Tree-like Buffers

  32. Rectangular Buffers • Capacity  = mn • I/o-distance  = m + n  1

  33. SF-construction 2 2,4

  34. Multi-split and Multi-merge

More Related