SlideShare a Scribd company logo
1 of 32
Download to read offline
Dhawal Kumar, 13-Nov-2019
SPARK / ADA FOR SAFE
AND SECURE FIRMWARE
DEVELOPMENT
2
SAFE HARBOR
Forward-Looking Statements
Except for the historical information contained herein, certain matters in this presentation including, but not limited to, statements as to: our strategies, growth, position,
opportunities, and continued expansion; the performance and benefits of our products and technologies; the state of affairs of firmware and C; consequences of software
vulnerability; the benefits and impact of, development challenges with, and adoption path for, SPARK; and other predictions and estimates are forward-looking statements
within the meaning of the Private Securities Litigation Reform Act of 1995. These forward-looking statements and any other forward-looking statements that go beyond
historical facts that are made in this presentation are subject to risks and uncertainties that may cause actual results to differ materially. Important factors that could
cause actual results to differ materially include: global economic conditions; our reliance on third parties to manufacture, assemble, package and test our products; the
impact of technological development and competition; development of new products and technologies or enhancements to our existing product and technologies; market
acceptance of our products or our partners’ products; design, manufacturing or software defects; changes in consumer preferences and demands; changes in industry
standards and interfaces; unexpected loss of performance of our products or technologies when integrated into systems and other factors. For a complete discussion of
factors that could materially affect our financial results and operations, please refer to the reports we file from time to time with the SEC, including our Form 10-K for the
annual period ended January 27, 2019 and our Form 10-Q for the quarterly period ended October 27, 2019. Copies of reports we file with the SEC are posted on our website
and are available from NVIDIA without charge. These forward-looking statements are not guarantees of future performance and speak only as of November 13, 2019, based
on information currently available to us. Except as required by law, NVIDIA disclaims any obligation to update these forward-looking statements to reflect future events or
circumstances.
3
Why SPARK for firmware?
Usage of SPARK at NVIDIA
Learn
Adoption Path
AGENDA
4
WHY SPARK FOR
FIRMWARE?
5
FIRMWARE: STATE OF AFFAIRS
Omnipresent (PCs, supercomputers, IOT devices, cellphones, cars etc)
Executes at elevated privilege (higher than rich OS)
Attractive target for attackers to implant malware (ransomware, rootkit)
With OS security advancements, focus shifted to firmware
Developed predominantly in C
6
C: STATE OF AFFAIRS
Security vulnerabilities continue to happen (or recur)
Memory corruption vulnerabilities (Buffer overflow, ROP etc)
Numeric truncation
Typos in ifdefs (ifdef READ_ABLE vs ifdef READABLE)
Regressions (security regressions usually invisible)
https://cve.mitre.org/ (Nov 10)
7
C: DID WE UNDER INVEST?
Security vulnerabilities continue to happen despite
Usage of static analysis tools such as coverity
Compiler hardening techniques such as stack canary, address sanitizer
HW countermeasures
Negative tests (ex: fuzzing)
Peer reviews
8
C: WHY DO PROBLEMS HAPPEN - 1
Static analysis tools
Do not cover enough
Get noisy as we try to extract more out of them and still fall short
HW countermeasures
Expensive
Can’t solve all issues
9
C: WHY DO PROBLEMS HAPPEN - 2
Fuzzing
Very time consuming
Tricky for firmware (crashes are costly)
Peer reviews
Not enough reviewers (practically unsolvable scalability problem)
Reviewers may not have domain knowledge
Humans get tired and less effective as code grows
10
C: WHY DO PROBLEMS HAPPEN - 3
Developers
Lack training (difficult to find courses on FW let alone FW security)
Lack the time for training
Lack the mindset
Attackers are getting smarter
Tools for reverse engineering becoming cheaper and widely available
11
CONSEQUENCES OF VULNERABILITY
Even a single incident could be disastrous
Millions of $s of penalty
Product recall
Man years lost in IR (Incident Response)
Brand damage
Lost sales
Lives lost
12
SPARK: A PROBLEM
SOLVER
13
SPARK
A language and a set of tools
Language is a large subset of Ada
Tool: GNATprove
Formal Verification
Built in goodness: AORTE / Silver
User contracts
14
SPARK: A PROBLEM SOLVER - 1
Static analysis
High quality
Low noise
[Peer] Reviews (automated)
Machine never gets tired
Reviewers freed up to focus on more important parts ➔ Scalability problem less severe
15
SPARK: A PROBLEM SOLVER - 2
HW countermeasures
No need to pay (for some of them)
And yet better results
Fuzzing
No fuzzing required
Significant machine hours savings
Reduced time to market
16
SPARK: A PROBLEM SOLVER - 3
Developers
Don’t need to know or test for many classes of attack
Gets even better with SPARK contracts
Regressions reduced
17
USAGE OF SPARK AT
NVIDIA
18
USAGE: TARGETS
SPs (Security Processors)
Falcon
RISCV
Hardware Targets (Platforms)
Security critical ucodes
Safety (ISO-26262) critical ucodes
Software Targets
19
WHAT DOES SP LOOK LIKE?
CPU
IMEM DMEM
SHA AES
20
WHERE ARE THESE SPs?
C
R
O
S
S
B
A
R
SP SP SP
Graphics /
Compute
E
E
P
R
O
M
Internal Bus External Bus
GPU Board
FB
Board / Die
21
DETAILED SP USAGE
Secure boot
Video decoding
DRM
Power management
Clock and voltage programming
And more...
22
HW TARGET: VARIATIONS
RISCV is brand new, falcon has been around since over a decade
Transition from falcon to RISCV underway and will take time
RISCV can address larger IMEM and DMEM
Does not mean space constraints have disappeared entirely (low power RAMs, EEPROM, boot perf)
RISCV uses native compiler while falcon uses CCG
23
SW TARGET: SAMPLE USER CONTRACTS
Simple / Mid level
If mutex has been acquired, it shall be released under all exit paths
Tainted data can not be consumed without sanitization (abstraction + contracts)
Advanced
Memory model: Whenre-sizing a protection region, every byte that was previously
Part of protection region but no longer is, shall be scrubbed
Not part of protection region, shall stay unchanged
24
DEVELOPMENT
CHALLENGES
25
DEVELOPMENT CHALLENGES - HW
Require highly optimized code
Space constraints (IMEM/DMEM, Low power RAMs, EEPROM)
Performance constraints
26
DEVELOPMENT CHALLENGES – SPARK - 1
New language (for Nvidia)
Need to find equivalent of every tool / trick being used with C
Safety cert makes it furthermore challenging
Need to study specs such as Cert-C and MISRA to craft equivalent rules + checkers
Small community
Lack of reviewers (“we don’t know what we don’t know”)
Engineering efficiency impacted
27
DEVELOPMENT CHALLENGES – SPARK - 2
Bit fields (Ada records converted to bit fields by CCG)
Not portable in C
Unbearable code bloat ➔ One of the grounds for SPARK rejection in a potential use case
Lack of support in popular IDEs (ex: Visual Studio)
Additional learning curve ➔ displeasure
28
ADOPTION STRATEGY
29
ADOPTION PATH
POC (Proof Of Concept) with handholding and mentorship
Ramping up on more FWs under mentorship
Started with boot firmware on falcon (but not all parts)
Added RISCV bootrom
Hope to convert more critical components from C to SPARK
Don’t expect to convert all FWs (not practical in near future)
30
SPARK SUMMARY
Very appealing for
Security and safety critical applications
Addressing scalability concerns (of critical expertise)
Not entirely free of challenges. So, pick the targets wisely
32
© 2019 NVIDIA Corporation. All rights reserved. NVIDIA and
the NVIDIA logo are trademarks and/or registered
trademarks of NVIDIA Corporation in the U.S. and other
countries. Other company and product names may be
trademarks of the respective companies with which they are
associated.

More Related Content

What's hot

Safe & Sec Case Patterns (ASSURE 2015)
Safe & Sec Case Patterns (ASSURE 2015)Safe & Sec Case Patterns (ASSURE 2015)
Safe & Sec Case Patterns (ASSURE 2015)Kenji Taguchi
 
Cav Taguchi autosec china slides
Cav Taguchi autosec china slidesCav Taguchi autosec china slides
Cav Taguchi autosec china slidesKenji Taguchi
 
Prof.Marik @ Stanford University
Prof.Marik @ Stanford UniversityProf.Marik @ Stanford University
Prof.Marik @ Stanford UniversityVladimir Marik
 
Waise 2021 Uber ATG Safety Case Framework and ANSI/UL 4600
Waise 2021 Uber ATG Safety Case Framework and ANSI/UL 4600Waise 2021 Uber ATG Safety Case Framework and ANSI/UL 4600
Waise 2021 Uber ATG Safety Case Framework and ANSI/UL 4600Kenji Taguchi
 
19 Jun 2018 - Hazard Analysis and Functional Safety Compliance
19 Jun 2018 - Hazard Analysis and Functional Safety Compliance 19 Jun 2018 - Hazard Analysis and Functional Safety Compliance
19 Jun 2018 - Hazard Analysis and Functional Safety Compliance Intland Software GmbH
 
Smart Energy Management Systems (SEMS)
Smart Energy Management Systems (SEMS)Smart Energy Management Systems (SEMS)
Smart Energy Management Systems (SEMS)NAED_Org
 
IEC 61511 introduction
IEC 61511 introduction IEC 61511 introduction
IEC 61511 introduction KoenLeekens
 
Cost Effective Outcomes from FPSO Safety Case
Cost Effective Outcomes from FPSO Safety CaseCost Effective Outcomes from FPSO Safety Case
Cost Effective Outcomes from FPSO Safety CaseIQPC
 
MISRA Safety Case Guidelines -
MISRA Safety Case Guidelines - MISRA Safety Case Guidelines -
MISRA Safety Case Guidelines - Automotive IQ
 
D pduapi user-manual
D pduapi user-manualD pduapi user-manual
D pduapi user-manuallinhdoanbro
 
AI + Security: Military Technologies and Commercial Applications
AI + Security: Military Technologies and Commercial Applications AI + Security: Military Technologies and Commercial Applications
AI + Security: Military Technologies and Commercial Applications vactivity
 
Guardian Week 3 H4D Stanford 2016
Guardian Week 3 H4D Stanford 2016Guardian Week 3 H4D Stanford 2016
Guardian Week 3 H4D Stanford 2016Stanford University
 
Introduction to Functional Safety and SIL Certification
Introduction to Functional Safety and SIL CertificationIntroduction to Functional Safety and SIL Certification
Introduction to Functional Safety and SIL CertificationISA Boston Section
 
Misra C Software Development Standard
Misra C Software Development StandardMisra C Software Development Standard
Misra C Software Development StandardVittorio Giovara
 
AV Combinator H4D 2020 Lessons Learned
AV Combinator H4D 2020 Lessons LearnedAV Combinator H4D 2020 Lessons Learned
AV Combinator H4D 2020 Lessons LearnedStanford University
 
Safety Instrumentation
Safety Instrumentation Safety Instrumentation
Safety Instrumentation Living Online
 
SOTIF Conference 2019 - APTIV, Toyota, Delphi Tech, Texas Instruments
SOTIF Conference 2019 - APTIV, Toyota, Delphi Tech, Texas InstrumentsSOTIF Conference 2019 - APTIV, Toyota, Delphi Tech, Texas Instruments
SOTIF Conference 2019 - APTIV, Toyota, Delphi Tech, Texas InstrumentsTorben Haagh
 
HSSEQ-RECM Presentation.
HSSEQ-RECM Presentation.HSSEQ-RECM Presentation.
HSSEQ-RECM Presentation.Marco Parodi
 
MISRA C Chairman - Device Developer Conference 2016
MISRA C Chairman - Device Developer Conference 2016MISRA C Chairman - Device Developer Conference 2016
MISRA C Chairman - Device Developer Conference 2016Andrew Banks
 

What's hot (20)

Safe & Sec Case Patterns (ASSURE 2015)
Safe & Sec Case Patterns (ASSURE 2015)Safe & Sec Case Patterns (ASSURE 2015)
Safe & Sec Case Patterns (ASSURE 2015)
 
Cav Taguchi autosec china slides
Cav Taguchi autosec china slidesCav Taguchi autosec china slides
Cav Taguchi autosec china slides
 
Prof.Marik @ Stanford University
Prof.Marik @ Stanford UniversityProf.Marik @ Stanford University
Prof.Marik @ Stanford University
 
Waise 2021 Uber ATG Safety Case Framework and ANSI/UL 4600
Waise 2021 Uber ATG Safety Case Framework and ANSI/UL 4600Waise 2021 Uber ATG Safety Case Framework and ANSI/UL 4600
Waise 2021 Uber ATG Safety Case Framework and ANSI/UL 4600
 
19 Jun 2018 - Hazard Analysis and Functional Safety Compliance
19 Jun 2018 - Hazard Analysis and Functional Safety Compliance 19 Jun 2018 - Hazard Analysis and Functional Safety Compliance
19 Jun 2018 - Hazard Analysis and Functional Safety Compliance
 
Smart Energy Management Systems (SEMS)
Smart Energy Management Systems (SEMS)Smart Energy Management Systems (SEMS)
Smart Energy Management Systems (SEMS)
 
IEC 61511 introduction
IEC 61511 introduction IEC 61511 introduction
IEC 61511 introduction
 
Cost Effective Outcomes from FPSO Safety Case
Cost Effective Outcomes from FPSO Safety CaseCost Effective Outcomes from FPSO Safety Case
Cost Effective Outcomes from FPSO Safety Case
 
MISRA Safety Case Guidelines -
MISRA Safety Case Guidelines - MISRA Safety Case Guidelines -
MISRA Safety Case Guidelines -
 
D pduapi user-manual
D pduapi user-manualD pduapi user-manual
D pduapi user-manual
 
AI + Security: Military Technologies and Commercial Applications
AI + Security: Military Technologies and Commercial Applications AI + Security: Military Technologies and Commercial Applications
AI + Security: Military Technologies and Commercial Applications
 
Guardian Week 3 H4D Stanford 2016
Guardian Week 3 H4D Stanford 2016Guardian Week 3 H4D Stanford 2016
Guardian Week 3 H4D Stanford 2016
 
Introduction to Functional Safety and SIL Certification
Introduction to Functional Safety and SIL CertificationIntroduction to Functional Safety and SIL Certification
Introduction to Functional Safety and SIL Certification
 
Misra C Software Development Standard
Misra C Software Development StandardMisra C Software Development Standard
Misra C Software Development Standard
 
AV Combinator H4D 2020 Lessons Learned
AV Combinator H4D 2020 Lessons LearnedAV Combinator H4D 2020 Lessons Learned
AV Combinator H4D 2020 Lessons Learned
 
Safety Instrumentation
Safety Instrumentation Safety Instrumentation
Safety Instrumentation
 
SOTIF Conference 2019 - APTIV, Toyota, Delphi Tech, Texas Instruments
SOTIF Conference 2019 - APTIV, Toyota, Delphi Tech, Texas InstrumentsSOTIF Conference 2019 - APTIV, Toyota, Delphi Tech, Texas Instruments
SOTIF Conference 2019 - APTIV, Toyota, Delphi Tech, Texas Instruments
 
HSSEQ-RECM Presentation.
HSSEQ-RECM Presentation.HSSEQ-RECM Presentation.
HSSEQ-RECM Presentation.
 
Mynd company presentation
Mynd   company presentationMynd   company presentation
Mynd company presentation
 
MISRA C Chairman - Device Developer Conference 2016
MISRA C Chairman - Device Developer Conference 2016MISRA C Chairman - Device Developer Conference 2016
MISRA C Chairman - Device Developer Conference 2016
 

Similar to Spark / Ada for Safe and Secure Firmware Development

AMD Epyc 7Fx2 Press Deck
AMD Epyc 7Fx2 Press DeckAMD Epyc 7Fx2 Press Deck
AMD Epyc 7Fx2 Press DeckLow Hong Chuan
 
Safety reliability and security lessons from defense for IoT
Safety reliability and security lessons from defense for IoTSafety reliability and security lessons from defense for IoT
Safety reliability and security lessons from defense for IoTIoT613
 
Overview of software reliability engineering
Overview of software reliability engineeringOverview of software reliability engineering
Overview of software reliability engineeringAnn Marie Neufelder
 
System z Mainframe Data with Amazon S3 and Amazon Glacier (ENT107) | AWS re:I...
System z Mainframe Data with Amazon S3 and Amazon Glacier (ENT107) | AWS re:I...System z Mainframe Data with Amazon S3 and Amazon Glacier (ENT107) | AWS re:I...
System z Mainframe Data with Amazon S3 and Amazon Glacier (ENT107) | AWS re:I...Amazon Web Services
 
Embedded Platforms Launch Press Presentation
Embedded Platforms Launch Press PresentationEmbedded Platforms Launch Press Presentation
Embedded Platforms Launch Press PresentationAMD
 
AMD Next Horizon
AMD Next HorizonAMD Next Horizon
AMD Next HorizonAMD
 
AMD Next Horizon
AMD Next HorizonAMD Next Horizon
AMD Next HorizonAMD
 
Ten Things You Should not Forget in Mainframe Security
Ten Things You Should not Forget in Mainframe Security Ten Things You Should not Forget in Mainframe Security
Ten Things You Should not Forget in Mainframe Security CA Technologies
 
Qualifying a high performance memory subsysten for Functional Safety
Qualifying a high performance memory subsysten for Functional SafetyQualifying a high performance memory subsysten for Functional Safety
Qualifying a high performance memory subsysten for Functional SafetyPankaj Singh
 
wp-01070-hardware-software-coverification-fpga
wp-01070-hardware-software-coverification-fpgawp-01070-hardware-software-coverification-fpga
wp-01070-hardware-software-coverification-fpgaGautam Kavipurapu
 
Bilbro james
Bilbro jamesBilbro james
Bilbro jamesNASAPMC
 
Key Resources - z/Assure Sales Presentation
Key Resources - z/Assure Sales PresentationKey Resources - z/Assure Sales Presentation
Key Resources - z/Assure Sales Presentationrfragola
 
Platform Encryption for ISVs (February 23, 2016)
Platform Encryption for ISVs (February 23, 2016)Platform Encryption for ISVs (February 23, 2016)
Platform Encryption for ISVs (February 23, 2016)Salesforce Partners
 
G01.2012 magic quadrant for endpoint protection
G01.2012 magic quadrant for endpoint protectionG01.2012 magic quadrant for endpoint protection
G01.2012 magic quadrant for endpoint protectionSatya Harish
 
Model-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical SoftwareModel-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical Softwaregjuljo
 
20140121 cisec-safety criticalsoftwaredevelopment
20140121 cisec-safety criticalsoftwaredevelopment20140121 cisec-safety criticalsoftwaredevelopment
20140121 cisec-safety criticalsoftwaredevelopmentCISEC
 
Yakaiah_Resume_9Yrs
Yakaiah_Resume_9YrsYakaiah_Resume_9Yrs
Yakaiah_Resume_9YrsYakaiah S
 

Similar to Spark / Ada for Safe and Secure Firmware Development (20)

AMD Epyc 7Fx2 Press Deck
AMD Epyc 7Fx2 Press DeckAMD Epyc 7Fx2 Press Deck
AMD Epyc 7Fx2 Press Deck
 
Safety reliability and security lessons from defense for IoT
Safety reliability and security lessons from defense for IoTSafety reliability and security lessons from defense for IoT
Safety reliability and security lessons from defense for IoT
 
Overview of software reliability engineering
Overview of software reliability engineeringOverview of software reliability engineering
Overview of software reliability engineering
 
System z Mainframe Data with Amazon S3 and Amazon Glacier (ENT107) | AWS re:I...
System z Mainframe Data with Amazon S3 and Amazon Glacier (ENT107) | AWS re:I...System z Mainframe Data with Amazon S3 and Amazon Glacier (ENT107) | AWS re:I...
System z Mainframe Data with Amazon S3 and Amazon Glacier (ENT107) | AWS re:I...
 
Embedded Platforms Launch Press Presentation
Embedded Platforms Launch Press PresentationEmbedded Platforms Launch Press Presentation
Embedded Platforms Launch Press Presentation
 
AMD Next Horizon
AMD Next HorizonAMD Next Horizon
AMD Next Horizon
 
AMD Next Horizon
AMD Next HorizonAMD Next Horizon
AMD Next Horizon
 
Ten Things You Should not Forget in Mainframe Security
Ten Things You Should not Forget in Mainframe Security Ten Things You Should not Forget in Mainframe Security
Ten Things You Should not Forget in Mainframe Security
 
Qualifying a high performance memory subsysten for Functional Safety
Qualifying a high performance memory subsysten for Functional SafetyQualifying a high performance memory subsysten for Functional Safety
Qualifying a high performance memory subsysten for Functional Safety
 
wp-01070-hardware-software-coverification-fpga
wp-01070-hardware-software-coverification-fpgawp-01070-hardware-software-coverification-fpga
wp-01070-hardware-software-coverification-fpga
 
Bilbro james
Bilbro jamesBilbro james
Bilbro james
 
Key Resources - z/Assure Sales Presentation
Key Resources - z/Assure Sales PresentationKey Resources - z/Assure Sales Presentation
Key Resources - z/Assure Sales Presentation
 
Platform Encryption for ISVs (February 23, 2016)
Platform Encryption for ISVs (February 23, 2016)Platform Encryption for ISVs (February 23, 2016)
Platform Encryption for ISVs (February 23, 2016)
 
G01.2012 magic quadrant for endpoint protection
G01.2012 magic quadrant for endpoint protectionG01.2012 magic quadrant for endpoint protection
G01.2012 magic quadrant for endpoint protection
 
Resume_01
Resume_01Resume_01
Resume_01
 
Model-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical SoftwareModel-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical Software
 
20140121 cisec-safety criticalsoftwaredevelopment
20140121 cisec-safety criticalsoftwaredevelopment20140121 cisec-safety criticalsoftwaredevelopment
20140121 cisec-safety criticalsoftwaredevelopment
 
eBook: Commercial vs Industrial SSD Storage - Advantech
eBook: Commercial vs Industrial SSD Storage - AdvantecheBook: Commercial vs Industrial SSD Storage - Advantech
eBook: Commercial vs Industrial SSD Storage - Advantech
 
Making Network Security Relevant
Making Network Security RelevantMaking Network Security Relevant
Making Network Security Relevant
 
Yakaiah_Resume_9Yrs
Yakaiah_Resume_9YrsYakaiah_Resume_9Yrs
Yakaiah_Resume_9Yrs
 

More from AdaCore

RCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsRCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsAdaCore
 
Have we a Human Ecosystem?
Have we a Human Ecosystem?Have we a Human Ecosystem?
Have we a Human Ecosystem?AdaCore
 
Rust and the coming age of high integrity languages
Rust and the coming age of high integrity languagesRust and the coming age of high integrity languages
Rust and the coming age of high integrity languagesAdaCore
 
SPARKNaCl: A verified, fast cryptographic library
SPARKNaCl: A verified, fast cryptographic librarySPARKNaCl: A verified, fast cryptographic library
SPARKNaCl: A verified, fast cryptographic libraryAdaCore
 
Developing Future High Integrity Processing Solutions
Developing Future High Integrity Processing SolutionsDeveloping Future High Integrity Processing Solutions
Developing Future High Integrity Processing SolutionsAdaCore
 
Taming event-driven software via formal verification
Taming event-driven software via formal verificationTaming event-driven software via formal verification
Taming event-driven software via formal verificationAdaCore
 
Pushing the Boundary of Mostly Automatic Program Proof
Pushing the Boundary of Mostly Automatic Program ProofPushing the Boundary of Mostly Automatic Program Proof
Pushing the Boundary of Mostly Automatic Program ProofAdaCore
 
RCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsRCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsAdaCore
 
Product Lines and Ecosystems: from customization to configuration
Product Lines and Ecosystems: from customization to configurationProduct Lines and Ecosystems: from customization to configuration
Product Lines and Ecosystems: from customization to configurationAdaCore
 
Adaptive AUTOSAR - The New AUTOSAR Architecture
Adaptive AUTOSAR - The New AUTOSAR ArchitectureAdaptive AUTOSAR - The New AUTOSAR Architecture
Adaptive AUTOSAR - The New AUTOSAR ArchitectureAdaCore
 
Software Engineering for Robotics - The RoboStar Technology
Software Engineering for Robotics - The RoboStar TechnologySoftware Engineering for Robotics - The RoboStar Technology
Software Engineering for Robotics - The RoboStar TechnologyAdaCore
 
The Application of Formal Methods to Railway Signalling Software
The Application of Formal Methods to Railway Signalling SoftwareThe Application of Formal Methods to Railway Signalling Software
The Application of Formal Methods to Railway Signalling SoftwareAdaCore
 
Bounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise EnvironmentBounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise EnvironmentAdaCore
 
Multi-Core (MC) Processor Qualification for Safety Critical Systems
Multi-Core (MC) Processor Qualification for Safety Critical SystemsMulti-Core (MC) Processor Qualification for Safety Critical Systems
Multi-Core (MC) Processor Qualification for Safety Critical SystemsAdaCore
 
Ada 202x A broad overview of relevant news
Ada 202x A broad overview of relevant newsAda 202x A broad overview of relevant news
Ada 202x A broad overview of relevant newsAdaCore
 
Verification and Validation of Robotic Assistants
Verification and Validation of Robotic AssistantsVerification and Validation of Robotic Assistants
Verification and Validation of Robotic AssistantsAdaCore
 
An Alternative Approach to DO-178B
An Alternative Approach to DO-178BAn Alternative Approach to DO-178B
An Alternative Approach to DO-178BAdaCore
 
MISRA C – Recent developments and a road map to the future
MISRA C – Recent developments and a road map to the futureMISRA C – Recent developments and a road map to the future
MISRA C – Recent developments and a road map to the futureAdaCore
 
HIS 2015: Prof. Phil Koopman - A Case Study of Toyota Unintended Acceleration...
HIS 2015: Prof. Phil Koopman - A Case Study of Toyota Unintended Acceleration...HIS 2015: Prof. Phil Koopman - A Case Study of Toyota Unintended Acceleration...
HIS 2015: Prof. Phil Koopman - A Case Study of Toyota Unintended Acceleration...AdaCore
 
HIS 2015: Prof. Ian Phillips - Stronger than its weakest link
HIS 2015: Prof. Ian Phillips - Stronger than its weakest linkHIS 2015: Prof. Ian Phillips - Stronger than its weakest link
HIS 2015: Prof. Ian Phillips - Stronger than its weakest linkAdaCore
 

More from AdaCore (20)

RCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsRCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standards
 
Have we a Human Ecosystem?
Have we a Human Ecosystem?Have we a Human Ecosystem?
Have we a Human Ecosystem?
 
Rust and the coming age of high integrity languages
Rust and the coming age of high integrity languagesRust and the coming age of high integrity languages
Rust and the coming age of high integrity languages
 
SPARKNaCl: A verified, fast cryptographic library
SPARKNaCl: A verified, fast cryptographic librarySPARKNaCl: A verified, fast cryptographic library
SPARKNaCl: A verified, fast cryptographic library
 
Developing Future High Integrity Processing Solutions
Developing Future High Integrity Processing SolutionsDeveloping Future High Integrity Processing Solutions
Developing Future High Integrity Processing Solutions
 
Taming event-driven software via formal verification
Taming event-driven software via formal verificationTaming event-driven software via formal verification
Taming event-driven software via formal verification
 
Pushing the Boundary of Mostly Automatic Program Proof
Pushing the Boundary of Mostly Automatic Program ProofPushing the Boundary of Mostly Automatic Program Proof
Pushing the Boundary of Mostly Automatic Program Proof
 
RCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsRCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standards
 
Product Lines and Ecosystems: from customization to configuration
Product Lines and Ecosystems: from customization to configurationProduct Lines and Ecosystems: from customization to configuration
Product Lines and Ecosystems: from customization to configuration
 
Adaptive AUTOSAR - The New AUTOSAR Architecture
Adaptive AUTOSAR - The New AUTOSAR ArchitectureAdaptive AUTOSAR - The New AUTOSAR Architecture
Adaptive AUTOSAR - The New AUTOSAR Architecture
 
Software Engineering for Robotics - The RoboStar Technology
Software Engineering for Robotics - The RoboStar TechnologySoftware Engineering for Robotics - The RoboStar Technology
Software Engineering for Robotics - The RoboStar Technology
 
The Application of Formal Methods to Railway Signalling Software
The Application of Formal Methods to Railway Signalling SoftwareThe Application of Formal Methods to Railway Signalling Software
The Application of Formal Methods to Railway Signalling Software
 
Bounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise EnvironmentBounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise Environment
 
Multi-Core (MC) Processor Qualification for Safety Critical Systems
Multi-Core (MC) Processor Qualification for Safety Critical SystemsMulti-Core (MC) Processor Qualification for Safety Critical Systems
Multi-Core (MC) Processor Qualification for Safety Critical Systems
 
Ada 202x A broad overview of relevant news
Ada 202x A broad overview of relevant newsAda 202x A broad overview of relevant news
Ada 202x A broad overview of relevant news
 
Verification and Validation of Robotic Assistants
Verification and Validation of Robotic AssistantsVerification and Validation of Robotic Assistants
Verification and Validation of Robotic Assistants
 
An Alternative Approach to DO-178B
An Alternative Approach to DO-178BAn Alternative Approach to DO-178B
An Alternative Approach to DO-178B
 
MISRA C – Recent developments and a road map to the future
MISRA C – Recent developments and a road map to the futureMISRA C – Recent developments and a road map to the future
MISRA C – Recent developments and a road map to the future
 
HIS 2015: Prof. Phil Koopman - A Case Study of Toyota Unintended Acceleration...
HIS 2015: Prof. Phil Koopman - A Case Study of Toyota Unintended Acceleration...HIS 2015: Prof. Phil Koopman - A Case Study of Toyota Unintended Acceleration...
HIS 2015: Prof. Phil Koopman - A Case Study of Toyota Unintended Acceleration...
 
HIS 2015: Prof. Ian Phillips - Stronger than its weakest link
HIS 2015: Prof. Ian Phillips - Stronger than its weakest linkHIS 2015: Prof. Ian Phillips - Stronger than its weakest link
HIS 2015: Prof. Ian Phillips - Stronger than its weakest link
 

Recently uploaded

The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 

Recently uploaded (20)

The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 

Spark / Ada for Safe and Secure Firmware Development

  • 1. Dhawal Kumar, 13-Nov-2019 SPARK / ADA FOR SAFE AND SECURE FIRMWARE DEVELOPMENT
  • 2. 2 SAFE HARBOR Forward-Looking Statements Except for the historical information contained herein, certain matters in this presentation including, but not limited to, statements as to: our strategies, growth, position, opportunities, and continued expansion; the performance and benefits of our products and technologies; the state of affairs of firmware and C; consequences of software vulnerability; the benefits and impact of, development challenges with, and adoption path for, SPARK; and other predictions and estimates are forward-looking statements within the meaning of the Private Securities Litigation Reform Act of 1995. These forward-looking statements and any other forward-looking statements that go beyond historical facts that are made in this presentation are subject to risks and uncertainties that may cause actual results to differ materially. Important factors that could cause actual results to differ materially include: global economic conditions; our reliance on third parties to manufacture, assemble, package and test our products; the impact of technological development and competition; development of new products and technologies or enhancements to our existing product and technologies; market acceptance of our products or our partners’ products; design, manufacturing or software defects; changes in consumer preferences and demands; changes in industry standards and interfaces; unexpected loss of performance of our products or technologies when integrated into systems and other factors. For a complete discussion of factors that could materially affect our financial results and operations, please refer to the reports we file from time to time with the SEC, including our Form 10-K for the annual period ended January 27, 2019 and our Form 10-Q for the quarterly period ended October 27, 2019. Copies of reports we file with the SEC are posted on our website and are available from NVIDIA without charge. These forward-looking statements are not guarantees of future performance and speak only as of November 13, 2019, based on information currently available to us. Except as required by law, NVIDIA disclaims any obligation to update these forward-looking statements to reflect future events or circumstances.
  • 3. 3 Why SPARK for firmware? Usage of SPARK at NVIDIA Learn Adoption Path AGENDA
  • 5. 5 FIRMWARE: STATE OF AFFAIRS Omnipresent (PCs, supercomputers, IOT devices, cellphones, cars etc) Executes at elevated privilege (higher than rich OS) Attractive target for attackers to implant malware (ransomware, rootkit) With OS security advancements, focus shifted to firmware Developed predominantly in C
  • 6. 6 C: STATE OF AFFAIRS Security vulnerabilities continue to happen (or recur) Memory corruption vulnerabilities (Buffer overflow, ROP etc) Numeric truncation Typos in ifdefs (ifdef READ_ABLE vs ifdef READABLE) Regressions (security regressions usually invisible) https://cve.mitre.org/ (Nov 10)
  • 7. 7 C: DID WE UNDER INVEST? Security vulnerabilities continue to happen despite Usage of static analysis tools such as coverity Compiler hardening techniques such as stack canary, address sanitizer HW countermeasures Negative tests (ex: fuzzing) Peer reviews
  • 8. 8 C: WHY DO PROBLEMS HAPPEN - 1 Static analysis tools Do not cover enough Get noisy as we try to extract more out of them and still fall short HW countermeasures Expensive Can’t solve all issues
  • 9. 9 C: WHY DO PROBLEMS HAPPEN - 2 Fuzzing Very time consuming Tricky for firmware (crashes are costly) Peer reviews Not enough reviewers (practically unsolvable scalability problem) Reviewers may not have domain knowledge Humans get tired and less effective as code grows
  • 10. 10 C: WHY DO PROBLEMS HAPPEN - 3 Developers Lack training (difficult to find courses on FW let alone FW security) Lack the time for training Lack the mindset Attackers are getting smarter Tools for reverse engineering becoming cheaper and widely available
  • 11. 11 CONSEQUENCES OF VULNERABILITY Even a single incident could be disastrous Millions of $s of penalty Product recall Man years lost in IR (Incident Response) Brand damage Lost sales Lives lost
  • 13. 13 SPARK A language and a set of tools Language is a large subset of Ada Tool: GNATprove Formal Verification Built in goodness: AORTE / Silver User contracts
  • 14. 14 SPARK: A PROBLEM SOLVER - 1 Static analysis High quality Low noise [Peer] Reviews (automated) Machine never gets tired Reviewers freed up to focus on more important parts ➔ Scalability problem less severe
  • 15. 15 SPARK: A PROBLEM SOLVER - 2 HW countermeasures No need to pay (for some of them) And yet better results Fuzzing No fuzzing required Significant machine hours savings Reduced time to market
  • 16. 16 SPARK: A PROBLEM SOLVER - 3 Developers Don’t need to know or test for many classes of attack Gets even better with SPARK contracts Regressions reduced
  • 17. 17 USAGE OF SPARK AT NVIDIA
  • 18. 18 USAGE: TARGETS SPs (Security Processors) Falcon RISCV Hardware Targets (Platforms) Security critical ucodes Safety (ISO-26262) critical ucodes Software Targets
  • 19. 19 WHAT DOES SP LOOK LIKE? CPU IMEM DMEM SHA AES
  • 20. 20 WHERE ARE THESE SPs? C R O S S B A R SP SP SP Graphics / Compute E E P R O M Internal Bus External Bus GPU Board FB Board / Die
  • 21. 21 DETAILED SP USAGE Secure boot Video decoding DRM Power management Clock and voltage programming And more...
  • 22. 22 HW TARGET: VARIATIONS RISCV is brand new, falcon has been around since over a decade Transition from falcon to RISCV underway and will take time RISCV can address larger IMEM and DMEM Does not mean space constraints have disappeared entirely (low power RAMs, EEPROM, boot perf) RISCV uses native compiler while falcon uses CCG
  • 23. 23 SW TARGET: SAMPLE USER CONTRACTS Simple / Mid level If mutex has been acquired, it shall be released under all exit paths Tainted data can not be consumed without sanitization (abstraction + contracts) Advanced Memory model: Whenre-sizing a protection region, every byte that was previously Part of protection region but no longer is, shall be scrubbed Not part of protection region, shall stay unchanged
  • 25. 25 DEVELOPMENT CHALLENGES - HW Require highly optimized code Space constraints (IMEM/DMEM, Low power RAMs, EEPROM) Performance constraints
  • 26. 26 DEVELOPMENT CHALLENGES – SPARK - 1 New language (for Nvidia) Need to find equivalent of every tool / trick being used with C Safety cert makes it furthermore challenging Need to study specs such as Cert-C and MISRA to craft equivalent rules + checkers Small community Lack of reviewers (“we don’t know what we don’t know”) Engineering efficiency impacted
  • 27. 27 DEVELOPMENT CHALLENGES – SPARK - 2 Bit fields (Ada records converted to bit fields by CCG) Not portable in C Unbearable code bloat ➔ One of the grounds for SPARK rejection in a potential use case Lack of support in popular IDEs (ex: Visual Studio) Additional learning curve ➔ displeasure
  • 29. 29 ADOPTION PATH POC (Proof Of Concept) with handholding and mentorship Ramping up on more FWs under mentorship Started with boot firmware on falcon (but not all parts) Added RISCV bootrom Hope to convert more critical components from C to SPARK Don’t expect to convert all FWs (not practical in near future)
  • 30. 30 SPARK SUMMARY Very appealing for Security and safety critical applications Addressing scalability concerns (of critical expertise) Not entirely free of challenges. So, pick the targets wisely
  • 31.
  • 32. 32 © 2019 NVIDIA Corporation. All rights reserved. NVIDIA and the NVIDIA logo are trademarks and/or registered trademarks of NVIDIA Corporation in the U.S. and other countries. Other company and product names may be trademarks of the respective companies with which they are associated.