smalltalk debug lives in the matrix
DESCRIPTION
Loïc Lagadec, Damien Picard: Smalltalk Debug Lives in the Matrix. ESUG 2010, Barcelona, SpainTRANSCRIPT
![Page 1: Smalltalk Debug Lives in the Matrix](https://reader033.vdocuments.us/reader033/viewer/2022052623/5599a5da1a28ab17698b475c/html5/thumbnails/1.jpg)
Smalltalk Debug Lives in the Matrix
Loïc Lagadec, Damien Picard
![Page 2: Smalltalk Debug Lives in the Matrix](https://reader033.vdocuments.us/reader033/viewer/2022052623/5599a5da1a28ab17698b475c/html5/thumbnails/2.jpg)
What Matrix?
Compute node
Programmable
interconnection
I1+i2i1
i2
LUT LUT
LUT
LUTLUTLUT
LUT
i1
i2I1-i2
LUT
LUT E/S
µP
“Flexible” hardware
Time to market
Hard to program
Hard to debug
![Page 3: Smalltalk Debug Lives in the Matrix](https://reader033.vdocuments.us/reader033/viewer/2022052623/5599a5da1a28ab17698b475c/html5/thumbnails/3.jpg)
What Matrix?
“Flexible” hardware
Time to market
Hard to program
Hard to debug
Specific languages
Specific tools
Performances still
requires manual
tuning
EE skills required
![Page 4: Smalltalk Debug Lives in the Matrix](https://reader033.vdocuments.us/reader033/viewer/2022052623/5599a5da1a28ab17698b475c/html5/thumbnails/4.jpg)
State of the art debugging
Huge challenge
![Page 5: Smalltalk Debug Lives in the Matrix](https://reader033.vdocuments.us/reader033/viewer/2022052623/5599a5da1a28ab17698b475c/html5/thumbnails/5.jpg)
State of the art debuggingTouching the void
Huge challenge
Meet in the middle
![Page 6: Smalltalk Debug Lives in the Matrix](https://reader033.vdocuments.us/reader033/viewer/2022052623/5599a5da1a28ab17698b475c/html5/thumbnails/6.jpg)
Debug silver bullet
Observability
Controlability
Abstract analysis
Fast changes
Time to market
Multiple runs
Long cycles
Simulation is not
enough
![Page 7: Smalltalk Debug Lives in the Matrix](https://reader033.vdocuments.us/reader033/viewer/2022052623/5599a5da1a28ab17698b475c/html5/thumbnails/7.jpg)
Debug silver bullet
Observability
Controlability
Abstract analysis
Fast changes
Time to market
Multiple runs
Long cycles
Simulation is not
enough
![Page 8: Smalltalk Debug Lives in the Matrix](https://reader033.vdocuments.us/reader033/viewer/2022052623/5599a5da1a28ab17698b475c/html5/thumbnails/8.jpg)
Operate at-speed
Keep your speed-up alive
Multiple runs prohibit any over time penalty
![Page 9: Smalltalk Debug Lives in the Matrix](https://reader033.vdocuments.us/reader033/viewer/2022052623/5599a5da1a28ab17698b475c/html5/thumbnails/9.jpg)
Operate in-situ
Because only HW brings speed-up
Debug requires extra circuitry
![Page 10: Smalltalk Debug Lives in the Matrix](https://reader033.vdocuments.us/reader033/viewer/2022052623/5599a5da1a28ab17698b475c/html5/thumbnails/10.jpg)
Debugging facilities are circuits
![Page 11: Smalltalk Debug Lives in the Matrix](https://reader033.vdocuments.us/reader033/viewer/2022052623/5599a5da1a28ab17698b475c/html5/thumbnails/11.jpg)
Debugging facilities are circuits
![Page 12: Smalltalk Debug Lives in the Matrix](https://reader033.vdocuments.us/reader033/viewer/2022052623/5599a5da1a28ab17698b475c/html5/thumbnails/12.jpg)
Debugging facilities are circuits
![Page 13: Smalltalk Debug Lives in the Matrix](https://reader033.vdocuments.us/reader033/viewer/2022052623/5599a5da1a28ab17698b475c/html5/thumbnails/13.jpg)
Observe and monitor
Take decision
You cannot watch everything
![Page 14: Smalltalk Debug Lives in the Matrix](https://reader033.vdocuments.us/reader033/viewer/2022052623/5599a5da1a28ab17698b475c/html5/thumbnails/14.jpg)
Abstract analysis: semantic needed
From information to knowledge
Signals vs Variables, etc.
Composite pattern, polymorphism, etc.
![Page 15: Smalltalk Debug Lives in the Matrix](https://reader033.vdocuments.us/reader033/viewer/2022052623/5599a5da1a28ab17698b475c/html5/thumbnails/15.jpg)
From a technical point of view
Software abstraction Implementation in hardware
?Synthesis
From D. Picard’s ESUG 2009 talk
![Page 16: Smalltalk Debug Lives in the Matrix](https://reader033.vdocuments.us/reader033/viewer/2022052623/5599a5da1a28ab17698b475c/html5/thumbnails/16.jpg)
Full observabiliy isn’t scalable
Focus on POI
![Page 17: Smalltalk Debug Lives in the Matrix](https://reader033.vdocuments.us/reader033/viewer/2022052623/5599a5da1a28ab17698b475c/html5/thumbnails/17.jpg)
Full observabiliy isn’t scalable
Focus on POI
![Page 18: Smalltalk Debug Lives in the Matrix](https://reader033.vdocuments.us/reader033/viewer/2022052623/5599a5da1a28ab17698b475c/html5/thumbnails/18.jpg)
Take control
Select your
Become a time traveller
![Page 19: Smalltalk Debug Lives in the Matrix](https://reader033.vdocuments.us/reader033/viewer/2022052623/5599a5da1a28ab17698b475c/html5/thumbnails/19.jpg)
Smalltalk debugger
Just fit approach
Run code and catch exception
Code hot replacement, variable update,
etc.
Step on or resume execution
Possible rollback
Multiple runs
Breakpoints update, earlier exception
Same conceptual behavior
![Page 20: Smalltalk Debug Lives in the Matrix](https://reader033.vdocuments.us/reader033/viewer/2022052623/5599a5da1a28ab17698b475c/html5/thumbnails/20.jpg)
Dodge bullets
Once the time has stopped
… just operate !
![Page 21: Smalltalk Debug Lives in the Matrix](https://reader033.vdocuments.us/reader033/viewer/2022052623/5599a5da1a28ab17698b475c/html5/thumbnails/21.jpg)
21
Bullet time explained
Bullet time
![Page 22: Smalltalk Debug Lives in the Matrix](https://reader033.vdocuments.us/reader033/viewer/2022052623/5599a5da1a28ab17698b475c/html5/thumbnails/22.jpg)
Conditional probes
Conditional probes offer the controlabily
that lacks in commercial tools
Observability can be gained at the cost
of adding some variable look-up wires
… But also using vendor’s tool such as
Chipscope
![Page 23: Smalltalk Debug Lives in the Matrix](https://reader033.vdocuments.us/reader033/viewer/2022052623/5599a5da1a28ab17698b475c/html5/thumbnails/23.jpg)
Red Pill
Application
Decomposition
Probes
Application
(Generated)
Control panel
Probes
inspector
Active probes
Inserted probe
![Page 24: Smalltalk Debug Lives in the Matrix](https://reader033.vdocuments.us/reader033/viewer/2022052623/5599a5da1a28ab17698b475c/html5/thumbnails/24.jpg)
RedPill Flow extends Biniou (HLS)
Application
High-level
CDFG
Low-level
CDFG
Multi-Level
SimulatorSynthesis
Tools
Probed Netlist
Probe
Insertion
Reconfigurable
ArchitectureBiniou
![Page 25: Smalltalk Debug Lives in the Matrix](https://reader033.vdocuments.us/reader033/viewer/2022052623/5599a5da1a28ab17698b475c/html5/thumbnails/25.jpg)
Abstract analysis
Encapsulate circuit modules as smalltalk blocks
Enables soft and hard objects to
communicate
Delivers the power of Sunit to hardware
![Page 26: Smalltalk Debug Lives in the Matrix](https://reader033.vdocuments.us/reader033/viewer/2022052623/5599a5da1a28ab17698b475c/html5/thumbnails/26.jpg)
Abstract analysis (example)
![Page 27: Smalltalk Debug Lives in the Matrix](https://reader033.vdocuments.us/reader033/viewer/2022052623/5599a5da1a28ab17698b475c/html5/thumbnails/27.jpg)
Characterization tests & SUnit
![Page 28: Smalltalk Debug Lives in the Matrix](https://reader033.vdocuments.us/reader033/viewer/2022052623/5599a5da1a28ab17698b475c/html5/thumbnails/28.jpg)
How Many matrix?
![Page 29: Smalltalk Debug Lives in the Matrix](https://reader033.vdocuments.us/reader033/viewer/2022052623/5599a5da1a28ab17698b475c/html5/thumbnails/29.jpg)
Reboot the Matrix
![Page 30: Smalltalk Debug Lives in the Matrix](https://reader033.vdocuments.us/reader033/viewer/2022052623/5599a5da1a28ab17698b475c/html5/thumbnails/30.jpg)
Will you take the red pill?
HLS (Biniou) offers a path from HL
languages to circuits
Vendors tools offer observability
Red Pill offers controlability
Object encapsulation offers abstract
analysis and polymorphism.
Smalltalk debug definitively lives in the Matrix
![Page 31: Smalltalk Debug Lives in the Matrix](https://reader033.vdocuments.us/reader033/viewer/2022052623/5599a5da1a28ab17698b475c/html5/thumbnails/31.jpg)
Thank you for your attention
http://stiff.univ-brest.fr/BINIOU