SlideShare a Scribd company logo
1 of 84
Download to read offline
Yann-Gaël Guéhéneuc
This work is licensed under a Creative
Commons Attribution-NonCommercial-
ShareAlike 3.0 Unported License
Are CPUs VMs
Like Any Others?
How did I fall into this rabbit hole?
Version 1.0
2020/10/09
2/84
Outline
 A bit of history
 About FPGAs
 Programming
– Basics
– Simulation
– Deployment
– More…
 Conclusion
3/84
A BIT OF HISTORY
4/84
A Bit of History
 Of course, we start with a bit of history!
https://en.wikiquote.org/wiki/George_Santayana
“Those who cannot remember
the past are condemned to
repeat it.”
George Santayana (1863 –1952)
5/84
A Bit of History
 Of course, we start with a bit of history!
https://en.wikiquote.org/wiki/George_Santayana
“Those who cannot remember
the past are condemned to
repeat it.”
George Santayana (1863 –1952)
Or to overlook it…
6/84
At The Beginning of Times
ENIAC machine, 1945
https://en.wikipedia.org/wiki/Difference_engine
https://en.wikipedia.org/wiki/ENIAC
https://www.engineering.com/ElectronicsDesign/ElectronicsDesignArticles/ ArticleID/16337/Vacuum-Tubes-The-World-Before-Transistors.aspx
Difference engine, 1822
7/84
A Bit Later…
https://www.computerhistory.org/revolution/digital-logic/12/273
https://en.wikipedia.org/wiki/Intel_4004
Intel 4004, 1971
First bipolar junction transistors, 1947
8/84
More Recently
https://techgage.com/news/amd-rumored-to-soon-launch-ryzen-pro-version-of-threadripper-3990x-dubbed-3995wx/
https://www.techpowerup.com/cpu-specs/ryzen-threadripper-pro-3995wx.c2314
https://en.wikipedia.org/wiki/Transistor_count
AMD Ryzen Threadripper PRO 3995WX
14th of July, 2020
(3,800 million transistors)
9/84
Rich People’s Problems
 More and more transistors
 More and more complexity
10/84
3,510 Transistors in
https://en.wikipedia.org/wiki/MOS_Technology_6502
http://6502.org/users/andre/csa/cpu/index.html
11/84
Rich People’s Problems
 AMD Ryzen Threadripper PRO 3995WX
– 14th of July, 2020
– 3,800 million transistors
 Cerebras Wafer-Scale Engine
– 28th of August, 2019
– 1.2 trillion transistors
12/84
Rich People’s Problems
 More and more transistors
 More and more bugs
13/84
(In)Famous CPU Bugs
 Pentium FDIV bug
– Incorrect floating-point
divisions
– Missing entries in the
lookup table of the
floating-point division
circuitry
– Equivalent to
$743 million in 2019
14/84
(In)Famous CPU Bugs
 Intel x86 CPUs
 IBM POWER CPUS
 Some ARM CPUs
– A process can read all
the memory
– CVE-2017-5754
– Unclear costs?
15/84
FPGAS
16/84
Alternatives?
 What if we could (re)program CPUs as we
program/update software?
 FPGAs as alternative to CPUs
– Field-programmable gate arrays
– Integrated circuit configured after manufacturing
https://en.wikipedia.org/wiki/Field-programmable_gate_array
17/84
Field-programmable Gate Arrays
https://www.sparkfun.com/products/retired/11657
https://www.sparkfun.com/products/retired/10750
18/84
Field-programmable Gate Arrays
 A gate: OR, AND…
– Any logic function can be built from gates
 An array: a set of unconnected gates
 Field-programmable: configured by a
customer after manufacturing
19/84
Field-programmable Gate Arrays
https://www.ni.com/en-ca/innovations/white-papers/08/fpga-fundamentals.html
 Programmable interconnects
between configurable logic
blocks (CLBs)
20/84
Applications
 Soft microprocessors
 Microprocessor cores
 Soft cores
 Intel 4004 CPU
 MOS 6502
 Motorola 68000
 …
https://opencores.org
21/84
More Applications
 Specialised algorithms
– Monte Carlo methods
– Map-Reduce algorithms
– Neural networks
– Encryption
 Specialised domains
– Sensors/Actuators
– Space probes
– Cameras
– F1 steering wheels
– Video en/decoding
– Audio/Video filtering
– Software defined
networks
22/84
Typical Application
 FPGAArcade Replay 1
– 1.6M gates Xilinx
Spartan 3E FPGA
– PS/2 x2, Joysticks x2
– RS232, DVI, audio, S-
video, Composite
– JTAG, USB, SD Card
http://www.mfilos.com/2015/08/fpga-arcade-new-led-signals-on-core.html
23/84
Typical Application
https://build.fpgaarcade.com/releases/cores/R1/
 Computers
– Amiga
– C64
– VIC20
– …
 Arcades
– Crystal Castles
– Donkey Kong
– Mr. Do!
– …
24/84
Even More Applications
https://www.sparkfun.com/products/14829
https://www.mouser.ca/new/terasic-technologies/terasic-de10-nano-kit/
TinyFPGA
Bx Board
DE10-Nano Board
25/84
PROGRAMMING
Basics
26/84
Schizophrenia
 FPGA
– Software (cores)
– Hardware (chips, boards)
 Hardware description language
– Verilog
– VHDL
27/84
Development
 Dynamic rather than static
 Data flow graphs rather than class diagrams
 Data flow graphs like in compiler design
28/84
Data Flow Graphs (Procedure)
Silvia Regina Vergilio, José Carlos Maldonado, and Mario Jino ; Infeasible Paths in the
Context of Data Flow Based Testing Criteria: Identification, Classification and Prediction
; Journal of the Brazilian Computer Society, Springer, 2006
29/84
Data Flow Graphs (Interprocedural)
Rohan Padhye and Uday P. Khedker ; Interprocedural Data Flow Analysis in Soot using
Value Contexts; Proceedings of the 2nd ACM SIGPLAN International Workshop on State
Of the Art in Java Program analysis, ACM Press, 2013
30/84
Development
 Time(ing) is of the
essence
 Functions are like
processes that trigger
updates at the clock
signal
https://www.designboom.com/art/alex-chinneck-ties-antique-clock-05-18-2018/
31/84
Time(ing)?


 Quantum Field Theory
32/84
Time(ing)?


 Quantum Field Theory
Another time ;-)
33/84
Time(ing)?
 Synchronisation
 Cannot be faster than
the slowest transition
– Transistors
– Memory
– …
 Quantum Field Theory
Another time ;-)
34/84
Development
https://course.ece.cmu.edu/~ee760/760docs/blif.pdf
http://www.clifford.at/papers/2016/yosys-synth-formal/slides.pdf
 BLIF: logic-level hierarchical circuit (text)
 ASC: PADS layout ASCII design files (?)
 BIN: binary bitstream
Yosys
• Verilog
to
BLIF
NextPnR
• BLIF
to
ASC
IceStorm
• ASC
to
BIN
35/84
Development
 Yosys
– Compiles Verilog into Berkeley Logic
Interchange Format (BLIF), aka synthesis
 NextPnR
– Decides which CLBs should implement what
logic blocks of the design
– Decides which programmable switches to turn
ON to connect CLBs
https://www.eng.uwo.ca/people/wwang/ece616a/616_extra/notes_web/5_dphysicaldesign.pdf
36/84
Development
 IceStorm
– Converts ASC to a binary file that can be upload
onto the FPGA
– Generates a bitstream
– iCE is actually a brand name of Lattice
Semiconductor, which produce FPGAs
– Several FPGAs support their format because
it is open source
https://en.wikipedia.org/wiki/ICE_%28FPGA%29#Open_source
37/84
PROGRAMMING
Example
38/84
Hello World?
 “Hello World” is the typical first program
written in any language
https://www.softwaretestinghelp.com/java/hello-world-first-java-program/
39/84
Hello World!
 Blinking a LED is the
typical first “program”
written for any FPGA
40/84
Hello World!
 “FPGA design for Software Engineers”
– Jeff DeWall
– 2019/10/16
– www.walknsqualk.com/post/014-tiny-fpga-bx/
41/84
Development
Jae-yeob Kim, Eui-sub Kim, Jun-beom Yoo, Young Lee, and Jong-gyun Choi ; An
Integrated Software Testing Framework for FPGA-based Controllers in Nuclear Power
Plants ; Nuclear Engineering and Technology, Elsevier, 2016
42/84
Requirements
 Switch on a LED after some
period of time
43/84
Design
44/84
Design
 TinyFPGA Bx defines
– CLK
– LED
– USBPU
(and many more)
45/84
 Windows 10
– Because why not?
 Cygwin
– Let’s be serious!
Simulation
46/84
 00_blinky contains 5 files
– CMakeLists.txt Build directives
– conanfile.txt C/C++ dependencies
– main.cpp Test/Simulation driver
– pins.pcf Physical constraints file
– top.v Verilog module
Simulation
47/84
 CMake .
– To generate the Makefile and other files
 Make
– To compile and generate the executable
 bin/blinky.exe
– To simulate and generate trace.vcd
 GTKWave
– To visualise trace.vcd
Simulation
48/84
https://uxdesign.cc/curiouser-and-curiouser-my-journey-down-the-ux-rabbit-hole-65ffcf570bc
Simulation
49/84
https://uxdesign.cc/curiouser-and-curiouser-my-journey-down-the-ux-rabbit-hole-65ffcf570bc
That’s me!
Simulation
50/84
 Install CMake
– Build process manager
– Which led to adding all sort of dependencies
 Install Conan
– C/C++ package manager
– Which would not compile on Cygwin…
– Which was missing conanbuildinfo.cmake…
Simulation
51/84
 Install Yosys
– A framework for Verilog RTL synthesis
– Which would not compile on Cygwin…
 Install Project IceStorm
– Place and route tool
– Which would not compile on Cygwin…
Simulation
52/84
 Install NextPnR
– Place and route tool
– Which would not compile on Cygwin…
 Fixes for the compilation
– -DCMAKE_CXX_FLAGS=-std=c++11
– Implement strdup()...
– Modify
• /usr/local/share/verilator/include/verilated.cpp
• /usr/local/share/verilator/include/verilatedos.h
Simulation
53/84
Simulation
https://themidult.com/beauty-school-dropout-vita-liberata-ten-minute-tan/alice-in-wonderland-face-palm-funny-time/
54/84
Simulation
https://themidult.com/beauty-school-dropout-vita-liberata-ten-minute-tan/alice-in-wonderland-face-palm-funny-time/
That’s still me!
55/84
Simulation
https://www.kindpng.com/imgv/ixoxiTx_alice-in-wonderland-and-the-white-rabbit-png/
56/84
Simulation
 All the steps to simulate
 Simulate?
– Value Change Dump (.vcd)
– Timestamps
– Values for each signal/variable
57/84
Simulation
58/84
Simulation
59/84
Simulation
60/84
Simulation
The LED signal is up
61/84
PROGRAMMING
Deployment
62/84
 “FPGA design for Software Engineers”
– Jeff DeWall
– 2019/10/16
– www.walknsqualk.com/post/014-tiny-fpga-bx/
 “TinyFPGA BX User Guide”
– 2020/10/01
– https://tinyfpga.com/bx/guide.html
Deployment
∧
∧
∧
∧
63/84
 Windows 10
– Because why not?
– Because it works!
 Cygwin
– Not possible!
Deployment
64/84
 Doesn’t work in Cygwin
– Packages not (yet?) available
 Break on my %TEMP% in Windows
– Space + Accents
– Had to Set TEMP=D:Temp
Deployment
65/84
 Doesn’t work in Cygwin
– Packages not (yet?) available
 Break on my %TEMP% in Windows
– Space + Accents
– Had to Set TEMP=D:Temp
Deployment
66/84
Deployment
 Create a file apio.ini
 Generate and upload the bitstream
[env]
board = TinyFPGA-BX
apio build
apio upload
67/84
Deployment
 Produces 3 files
– Hardware.blif BLIF
– Hardware.asc Place and route
– Hardware.bin Bitstream
apio build
68/84
Deployment
We (re)use
Yosys and
NextPnR
69/84
Deployment
 Asks for the boot-loader to be active
 Takes the bin file and
apio upload
70/84
Deployment
The
bitstream
71/84
00_Blinky Blink_Project
Deployment
72/84
00_Blinky Blink_Project
Deployment
73/84
00_Blinky Blink_Project
Deployment
74/84
00_Blinky Blink_Project
Deployment
75/84
PROGRAMMING
More..
76/84
State Machine
A
• LED <= 0
1 B
• LED <=
counter[...]
2 C
• LED <= 1
3
77/84
State Machine
 Must consider the
speed of the FPGA
 16Mhz  16 x 1,000 x
1,000 per second
 27 bits register reg
[26:0] counter;
 24 bits, every 22nd bit
78/84
State Machine
79/84
State Machine
80/84
CONCLUSION
81/84
Okay But…
TinyFPGA Bx Particle Photon
82/84
Okay But…
TinyFPGA Bx
 ICE40LP8K FPGA
 6MB flash, 128KB RAM
 $54.72
 HDL
 Verilog
 Many tools
 USB
Particle Photon
 STM32 ARM Cortex M3
 1MB flash, 128KB RAM
 $27.71
 (Very) High-level APIs
 C
 Usual (?) compilers
 Over-the-air (WiFi)
83/84
Okay But…
 Different applications
– MCU: fix hardware, flexible “software”
– FPGA: flexible hardware, flexible “software”
 Reimplementing a processor would be
difficult (impossible) with a MCU
https://www.quora.com/Should-I-learn-FPGA-or-STM32
84/84
And More…
 How do we interconnect these with other
sensors and actuators?
 How do we test such systems?
 How do we debug/update such systems?

More Related Content

Similar to Are CPUs VMs Like Any Others? v1.0

gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?
gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?
gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?ArangoDB Database
 
The power of linux advanced tracer [POUG18]
The power of linux advanced tracer [POUG18]The power of linux advanced tracer [POUG18]
The power of linux advanced tracer [POUG18]Mahmoud Hatem
 
Deep learning: Hardware Landscape
Deep learning: Hardware LandscapeDeep learning: Hardware Landscape
Deep learning: Hardware LandscapeGrigory Sapunov
 
OpenSPARC on FPGAs
OpenSPARC on FPGAsOpenSPARC on FPGAs
OpenSPARC on FPGAsDVClub
 
Buying a Ferrari for your teenager? You may want to think twice
Buying a Ferrari for your teenager? You may want to think twiceBuying a Ferrari for your teenager? You may want to think twice
Buying a Ferrari for your teenager? You may want to think twiceAl Zindiq
 
Introduction to FPGA acceleration
Introduction to FPGA accelerationIntroduction to FPGA acceleration
Introduction to FPGA accelerationMarco77328
 
How to run Linux on RISC-V (FOSS North 2020)
How to run Linux on RISC-V (FOSS North 2020)How to run Linux on RISC-V (FOSS North 2020)
How to run Linux on RISC-V (FOSS North 2020)Drew Fustini
 
Developing Applications for Beagle Bone Black, Raspberry Pi and SoC Single Bo...
Developing Applications for Beagle Bone Black, Raspberry Pi and SoC Single Bo...Developing Applications for Beagle Bone Black, Raspberry Pi and SoC Single Bo...
Developing Applications for Beagle Bone Black, Raspberry Pi and SoC Single Bo...ryancox
 
Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Codemotion
 
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytes
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytesWindows Kernel Exploitation : This Time Font hunt you down in 4 bytes
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytesPeter Hlavaty
 
MattsonTutorialSC14.pptx
MattsonTutorialSC14.pptxMattsonTutorialSC14.pptx
MattsonTutorialSC14.pptxgopikahari7
 
BURO Arduino Workshop
BURO Arduino WorkshopBURO Arduino Workshop
BURO Arduino WorkshopOmer Kilic
 
20131015_demo_oshk
20131015_demo_oshk20131015_demo_oshk
20131015_demo_oshkJeff Yang
 
Preparing to program Aurora at Exascale - Early experiences and future direct...
Preparing to program Aurora at Exascale - Early experiences and future direct...Preparing to program Aurora at Exascale - Early experiences and future direct...
Preparing to program Aurora at Exascale - Early experiences and future direct...inside-BigData.com
 
How to run Linux on RISC-V
How to run Linux on RISC-VHow to run Linux on RISC-V
How to run Linux on RISC-VDrew Fustini
 
Week1 Electronic System-level ESL Design and SystemC Begin
Week1 Electronic System-level ESL Design and SystemC BeginWeek1 Electronic System-level ESL Design and SystemC Begin
Week1 Electronic System-level ESL Design and SystemC Begin敬倫 林
 
Talk 160920 @ Cat System Workshop
Talk 160920 @ Cat System WorkshopTalk 160920 @ Cat System Workshop
Talk 160920 @ Cat System WorkshopQuey-Liang Kao
 

Similar to Are CPUs VMs Like Any Others? v1.0 (20)

gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?
gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?
gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?
 
The power of linux advanced tracer [POUG18]
The power of linux advanced tracer [POUG18]The power of linux advanced tracer [POUG18]
The power of linux advanced tracer [POUG18]
 
Deep learning: Hardware Landscape
Deep learning: Hardware LandscapeDeep learning: Hardware Landscape
Deep learning: Hardware Landscape
 
OpenSPARC on FPGAs
OpenSPARC on FPGAsOpenSPARC on FPGAs
OpenSPARC on FPGAs
 
Qt5 on ti processors
Qt5 on ti processorsQt5 on ti processors
Qt5 on ti processors
 
Buying a Ferrari for your teenager? You may want to think twice
Buying a Ferrari for your teenager? You may want to think twiceBuying a Ferrari for your teenager? You may want to think twice
Buying a Ferrari for your teenager? You may want to think twice
 
Introduction to FPGA acceleration
Introduction to FPGA accelerationIntroduction to FPGA acceleration
Introduction to FPGA acceleration
 
How to run Linux on RISC-V (FOSS North 2020)
How to run Linux on RISC-V (FOSS North 2020)How to run Linux on RISC-V (FOSS North 2020)
How to run Linux on RISC-V (FOSS North 2020)
 
Developing Applications for Beagle Bone Black, Raspberry Pi and SoC Single Bo...
Developing Applications for Beagle Bone Black, Raspberry Pi and SoC Single Bo...Developing Applications for Beagle Bone Black, Raspberry Pi and SoC Single Bo...
Developing Applications for Beagle Bone Black, Raspberry Pi and SoC Single Bo...
 
Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!
 
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytes
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytesWindows Kernel Exploitation : This Time Font hunt you down in 4 bytes
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytes
 
MattsonTutorialSC14.pptx
MattsonTutorialSC14.pptxMattsonTutorialSC14.pptx
MattsonTutorialSC14.pptx
 
BURO Arduino Workshop
BURO Arduino WorkshopBURO Arduino Workshop
BURO Arduino Workshop
 
20131015_demo_oshk
20131015_demo_oshk20131015_demo_oshk
20131015_demo_oshk
 
Preparing to program Aurora at Exascale - Early experiences and future direct...
Preparing to program Aurora at Exascale - Early experiences and future direct...Preparing to program Aurora at Exascale - Early experiences and future direct...
Preparing to program Aurora at Exascale - Early experiences and future direct...
 
How to run Linux on RISC-V
How to run Linux on RISC-VHow to run Linux on RISC-V
How to run Linux on RISC-V
 
Tools for FPGA Development
Tools for FPGA DevelopmentTools for FPGA Development
Tools for FPGA Development
 
SDAccel Design Contest: Vivado HLS
SDAccel Design Contest: Vivado HLSSDAccel Design Contest: Vivado HLS
SDAccel Design Contest: Vivado HLS
 
Week1 Electronic System-level ESL Design and SystemC Begin
Week1 Electronic System-level ESL Design and SystemC BeginWeek1 Electronic System-level ESL Design and SystemC Begin
Week1 Electronic System-level ESL Design and SystemC Begin
 
Talk 160920 @ Cat System Workshop
Talk 160920 @ Cat System WorkshopTalk 160920 @ Cat System Workshop
Talk 160920 @ Cat System Workshop
 

More from Yann-Gaël Guéhéneuc

Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5Yann-Gaël Guéhéneuc
 
Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1Yann-Gaël Guéhéneuc
 
Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22Yann-Gaël Guéhéneuc
 
Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3Yann-Gaël Guéhéneuc
 
Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9Yann-Gaël Guéhéneuc
 
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...Yann-Gaël Guéhéneuc
 
An Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesAn Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesYann-Gaël Guéhéneuc
 
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Yann-Gaël Guéhéneuc
 
On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1Yann-Gaël Guéhéneuc
 
On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6Yann-Gaël Guéhéneuc
 

More from Yann-Gaël Guéhéneuc (20)

Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5
 
Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1
 
Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22
 
Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3
 
Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9
 
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
 
An Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesAn Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its Consequences
 
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
 
Well-known Computer Scientists v1.0.2
Well-known Computer Scientists v1.0.2Well-known Computer Scientists v1.0.2
Well-known Computer Scientists v1.0.2
 
On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1
 
On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6
 
ICSOC'21
ICSOC'21ICSOC'21
ICSOC'21
 
Vissoft21.ppt
Vissoft21.pptVissoft21.ppt
Vissoft21.ppt
 
Service computation20.ppt
Service computation20.pptService computation20.ppt
Service computation20.ppt
 
Serp4 iot20.ppt
Serp4 iot20.pptSerp4 iot20.ppt
Serp4 iot20.ppt
 
Msr20.ppt
Msr20.pptMsr20.ppt
Msr20.ppt
 
Iwesep19.ppt
Iwesep19.pptIwesep19.ppt
Iwesep19.ppt
 
Icsoc20.ppt
Icsoc20.pptIcsoc20.ppt
Icsoc20.ppt
 
Icsoc18.ppt
Icsoc18.pptIcsoc18.ppt
Icsoc18.ppt
 
Icsm20.ppt
Icsm20.pptIcsm20.ppt
Icsm20.ppt
 

Recently uploaded

The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 

Recently uploaded (20)

The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 

Are CPUs VMs Like Any Others? v1.0