making it easier: improving design productivity

33
Making it Easier: Improving Design Productivity M ARK H OROWITZ

Upload: others

Post on 11-Feb-2022

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Making it Easier: Improving Design Productivity

Making it Easier:

Improving Design Productivity

MARK H OROWITZ

Page 2: Making it Easier: Improving Design Productivity

Lessons Learned from the 80’s

DON’T TRY TO SOLVE THE PROBLEM The complete problem is much too large

› No one has the resources to do it

THE PROBLEM IS REALLY MANY SMALLER PROBLEMS Need to find natural interfaces

› Create tools and methodologies for subproblems Users can then pick build “tool” sets from this work

Clean interfaces can be› Between different abstraction levels› Along domain lines

2

Page 3: Making it Easier: Improving Design Productivity

Themes

WE ARE INTERESTED IN DOMAIN SPECIFIC TOOLS/LANGUAGES Restricting application domain allows the tool to be more powerful Many of the tools are build around a domain

WE ARE VERY INTERESTED IN BUILDING CONSTRUCTORS If systems are expensive to build, want to reuse them

› This means we want the systems to be flexible Rather than building a specific instance

› Create a tool that understands local rules› And can create instances from parameters

3

Page 4: Making it Easier: Improving Design Productivity

A PPLICATION FRAMEWORKS

Page 5: Making it Easier: Improving Design Productivity

fabryq Statement

MANY RECENT IOT APPLICATIONS ARE BASED ON AN EMBEDDED-GATEWAY-CLOUD (MGC) PATTERN

PROGRAMMING COMPLETE MCG-BASED APPLICATIONS FOR CONNECTEDDEVICES IS COMPLICATED AND REQUIRES EXPERTISE IN DIFFERENT LANGUAGESON EACH TIER (E.G. PYTHON, JAVA, C)

Will McGrath, Bjoern Hartmann

Page 6: Making it Easier: Improving Design Productivity

fabryq Solution

THE FABRYQ PLATFORM LETS DEVELOPERS WRITE WEB APPS THAT CANCOMMUNICATE WITH MULTIPLE BLUETOOTH LOW ENERGY (BLE) DEVICES

FABRYQ SUPPORTS RAPID MCG APPLICATION PROTOTYPING BY PROVIDING AREUSABLE SERVER AND MOBILE “SMART GATEWAY”

fabryq APIBLE TCP/IP

79 BPM

Page 7: Making it Easier: Improving Design Productivity

fabryq Results

APPLICATIONS DEVELOPED BY PILOT STUDY PARTICIPANTS AND THE RESEARCHTEAM DEMONSTRATED FABRYQ’S UTILITY

SUGGESTED A NEED FOR A SMOOTH WAY TO MOVE FROM PROTOTYPE TOPRODUCTION

Published at EICS ‘15

Page 8: Making it Easier: Improving Design Productivity

Ravel

A FRAMEWORK THAT IN SINGLE LANGUAGE SUPPORTS WRITING APPLICATIONSWITH A DISTRIBUTED MODEL VIEW CONTROLLER PATTERN IN A DATA FLOWARCHITECTURE.

THE DEVELOPER WRITES A SINGLE MODEL WITH ONE DATA SCHEMA; RAVELGENERATES ALL NECESSARY MECHANISMS FOR MODEL SYNCHRONIZATIONACROSS ALL TIERS OF THE IOT APPLICATION.

Laurynas Riliskis, Phil Levis

Page 9: Making it Easier: Improving Design Productivity

Leveraging Good Interfaces

EXISTING IOT FRAMEWORKS SIMPLIFIES DEVELOPMENT BY PROVIDING ACOMPLETE ECOSYSTEM FOR EMBEDDED, GATEWAY, CLOUD, COMMUNICATIONS, AND SECURITY. CONSEQUENTLY, THE APPLICATION AND ANY FUTURE UPDATESARE TIGHT UP TO THAT PARTICULAR FRAMEWORK. ANY INVESTMENT INEXTENDING ECOSYSTEM AND OPTIMIZING WOULD NOT CARRY OVER TO ADIFFERENT PLATFORM.

INSTEAD OF PROVIDING A RUNTIME, RAVEL TRANSLATES CODE AND USESTEMPLATES TO GENERATE CODE FOR THE TARGET PLATFORMS. SUCH ASARDUINO, INTEL, NORDIC, ANDROID, AMAZON CLOUD, DJANGO, ETC.SWITCHING BETWEEN SUPPORTED FRAMEWORKS AND ECOSYSTEMS BECOMES APUSH OF A BUTTON.

Page 10: Making it Easier: Improving Design Productivity

Halide

LANGUAGE CREATED TO MAKE WRITING IMAGE/VISION APPS EASIER

IMAGE APPLICATIONS

Need to do tons of simple operations These operations have high locality

› Can be done fast and efficiently

BEFORE HALIDE

Either wrote clean code Or wrote fast code that was hard to read/reuse

HALIDE’S BIG IDEA

Separate schedule of code from function of code

Andrew Adams, Jonathan Ragan Kelley

Page 11: Making it Easier: Improving Design Productivity

Halide to Zynq FGPA

11

Jing Pu, Mark Horowitz

Page 12: Making it Easier: Improving Design Productivity

Energy Results

12

Page 13: Making it Easier: Improving Design Productivity

H ARDWARE P LATFORMS

Page 14: Making it Easier: Improving Design Productivity

Toastboard Statement

WHILE SOLDERLESS BREADBOARDS ALLOW FOR QUICK CIRCUIT PROTOTYPING, NOVICE USERS CAN MAKE ERRORS THAT ARE DIFFICULT AND TIME-CONSUMINGTO DIAGNOSE

Daniel Drew, Bjoern Hartmann

Page 15: Making it Easier: Improving Design Productivity

15

Toastboard SolutionTHE TOASTBOARD IS ANINSTRUMENTED BREADBOARD THATCAN AUTOMATICALLY SENSE THEVOLTAGE ON ALL OF ITS ROWS

IT INCLUDES AN EXTENSIBLE SET OFAUTOMATED CHECKER FUNCTIONSTHAT CAN DETECT AND EXPLAINCIRCUIT ERRORS IN A USER-FRIENDLYWAY

Page 16: Making it Easier: Improving Design Productivity

Toastboard ResultsA PRELIMINARY EVALUATION DEMONSTRATED THAT THE TOASTBOARD CAN HELPNOVICE USERS CORRECT COMMON CIRCUIT ISSUES WITH CHECKER FUNCTIONS.

Accepted to UIST

Page 17: Making it Easier: Improving Design Productivity

Imix:Enabling Next-Generation Research for Secure IoTSTANDALONE IOT SYSTEM

Crypto, wireless, power, sensors, softwareMAXIMIZE SYSTEM VISIBILITY

All internal signals exposed for debugging Power measurement headerUSABILITY AND CONTROL

Fully open source Software backbone: Tock

Shane Leonard, Phil Levis

Page 18: Making it Easier: Improving Design Productivity

Imix: Features ListOPEN SOURCE

TWO WIRELESS PROTOCOLS (802.15.4 AND BLE)POWERED BY USB, LI-ION BATTERY, OR EXTERNAL VOLTAGE SOURCE

INTEGRATED BATTERY CHARGER

POWER MEASUREMENT HEADER FOR EACH SUBSYSTEM

6-AXIS ACCELEROMETER/MAGNETOMETER, TEMPERATURE SENSOR, LIGHTSENSOR

ULTRA LOW POWER ARM CORTEX-M4 PROCESSOR WITH MPUFTDI USB TO SERIAL LINK

NATIVE USBARDUINO-COMPATIBLE

COMPATIBLE WITH FIRESTORM BOOTLOADER

TRUE RANDOM NUMBER GENERATOR BASED ON LAMPERT CIRCUIT

RUNS TOCK, A SECURE RUST OS FOR IOT

Page 19: Making it Easier: Improving Design Productivity

Going Meta: Embedded Device Generation

● COMPILE HIGH-LEVEL CODE INTO EMBEDDED HARDWARE.

● EXPAND ACCESS TO HARDWARE DEVELOPMENT.

● AUTOMATE THE DEVELOPMENT PROCESS FOR HOBBYISTS

● IMPROVE DEVELOPMENT TOOLS FOR PROFESSIONALS.

19

19

Rohit Ramesh, Prabal Dutta

Page 20: Making it Easier: Improving Design Productivity

Brewing Beer at Home

20

20

Page 21: Making it Easier: Improving Design Productivity

Hobbyist wants a bespoke temperature controller.

21 21

Page 22: Making it Easier: Improving Design Productivity

They write some Application Logic.

22 22

Page 23: Making it Easier: Improving Design Productivity

Device Generation turns code into design files.

23

23

Page 24: Making it Easier: Improving Design Productivity

Hobbyist sends the design to a fabricator.

24

24

Page 25: Making it Easier: Improving Design Productivity

A box arrives in the mail ...

25

25

Page 26: Making it Easier: Improving Design Productivity

… with the finished device.

26

26

Page 27: Making it Easier: Improving Design Productivity

Overall Framework

27

Page 28: Making it Easier: Improving Design Productivity

28

One Problem: How to Read Data Sheets

1. THERE ARE A LOT OFCOMPONENTS

2. COMPONENTS ARECOMPLICATED

3. EXISTING SEARCH TOOLS ANDONLINE DATABASES ONLY STORELIMITED INFORMATION

EMBEDDED SYSTEM DESIGNERSNEED TO CHOOSE BETWEENSPENDING LOTS OF TIME CURATINGCOMPONENTS AND THE OPTIMALITYOF THEIR CHOICES.

Component Family

Number of Entries on

Parts.ioConnectors 35,835,399Power Circuits 4,308,382Diodes 2,200,889Sensors/Transducers 1,429,819Memories 1,319,651Microcontrollers 818,329Transistors 659,628Drivers/Interfaces 121,955Amplifiers 98,506Transformers 86,021

Luke Hsiao, Phil, Mark, Chris

Page 29: Making it Easier: Improving Design Productivity

SolutionCREATE A FRAMEWORK TO AUTOMATICALLY BUILD COMPONENT DATABASESFROM THEIR DATASHEETS. THIS COMPONENT LIBRARY WILL ENABLE A WAVE OFNEW APPLICATIONS THAT HAVE ACCESS TO DETAILED, ACCURATE COMPONENTINFORMATION.

• COMPONENT SEARCH

• DATASHEET ERROR CHECKING

• HARDWARE OPTIMIZATION

• EMBEDDED DEVICE GENERATION

Page 30: Making it Easier: Improving Design Productivity

Results

Tabl

e Ex

trac

tor

doc  | part_num | storage_temp_min‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐X.pdf |  BC546   | ‐55X.pdf |  BC547   | ‐55   X.pdf |  BC548   | ‐55   

Proc

ess

Cel

l Fea

ture

s

Page 31: Making it Easier: Improving Design Productivity

VALIDATION

Page 32: Making it Easier: Improving Design Productivity

Code CheckersTRADITION SOFTWARE CHECKERS ARE COMPLEX SOFTWARE

• Hard to write and add rules

32

Fraser Brown, Dawson Engler

Page 33: Making it Easier: Improving Design Productivity

Big Idea

IF YOU ARE GOING TO THROW STUFF AWAY, WHY PARSE IT IN THE FIRST PLACE

33