From System Software to
System Hardware
"People who are really
serious about software
should make their own
hardware."
- Alan Kay
Content
System Software: Computer Engineers as
Software Developers
Cloud Computing, IoT, and Big Data Engineering
Artificial Intelligence and Image Processing
Embedded Systems, Architecture,
Microprocessors, and VLSI
System
Software
This Photo by Unknown Author is licensed under CC BY
Computer Engineers As Software Developers
Understanding of
Strong mathematical software design,
skills debugging and
development cycles
Proficiency in
Experience with
programming languages
hardware optimizations
(i.e., C++, C#)
Potential Jobs
AR/VR SOFTWARE MACHINE LEARNING GAMING SOFTWARE BIG DATA SOFTWARE
ENGINEERS SOFTWARE ENGINEERS ENGINEER ENGINEERS
Operating Systems
• It is one of the core courses in any Computer Engineering
Program
• Provides deeper understanding of how computers work
Operating System
( A software that controls the hardware )
UML Computer Architecture
Data Structures Microprocessors
Object Oriented Computer Organization
C++ Programming Digital Logic Design
Cloud Computing
Internet of Things (IoT)
Big Data Engineering
Definition of Cloud Computing
The standardized definition of Cloud Computing by the
National Institute of Standards and Technology (NIST):
• “Cloud computing is a model for enabling ubiquitous, convenient, on-
demand network access to a shared pool of configurable computing
resources (e.g., networks, servers, storage, applications, and services)
that can be rapidly provisioned and released with minimal
management effort or service provider interaction. This cloud model
promotes availability and is composed of five essential characteristics,
three service models, and four deployment models.”
Characteristics of Cloud Computing
On-demand self-service
Broad network access
Service-Level-Agreement (SLA) enforcement
Resource pooling and multi-tenancy
Rapid elasticity
Measured service
Service Models in Cloud Computing
Software as a Service (SaaS)
• Web-based Email (e.g., Gmail)
• Business Applications (e.g., Salesforce)
• Google Drive and Docs
• Microsoft Office
Platform as a Service (PaaS)
• Google App Engine
• Microsoft Azure
• Amazon Web Services
• Database/Web Servers
Infrastructure as a Service (IaaS)
• Amazon Elastic Compute Cloud (Amazon EC2)
• VMWare
• Oracle Cloud Computing
• Sun Microsystems Cloud Services
• IBM Smart Business Cloud Solutions
Deployment Models of Cloud Computing
Services are provided to public based
It’s an open model, external
Public cloud
on an agreement between cloud Least expensive
provider and client
It’s an internal Highest degree of control over security,
Private cloud privacy, and performance
Expensive
A combination of public Needs interoperability and portability
Hybrid and private clouds between both clouds
Created between a group who shares common goals
Community (professional, geographical, etc.)
Cloud Computing and Virtualization
▪ Virtualization enables a single computer to host multiple independent virtual computers called virtual
machines (VM) that share the host computer hardware.
▪ Virtualization software separates the actual physical hardware from the VM instances.
▪ An image of a VM can be saved as a file and then be re-started when required.
▪ Cloud computing separates the applications from the
hardware.
▪ Service providers such as Amazon Web Services
(AWS) own and manage the cloud infrastructure.
Virtualization is the foundation which supports
cloud computing.
2016 ©Cisco and/or its affiliates. All rights reserved. Cisco Confidential 18
Server Virtualization
▪ Server virtualization takes advantage of idle resources to reduce the number of servers required.
▪ A program called the hypervisor is used to manage the computer resources and various VMs.
▪ It provides VMs access to the hardware in the physical machine such as CPUs, memory, disk
controllers, and NICs.
▪ Each VM runs a complete and separate operating system.
© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 19
Client-Side Virtualization
▪ Client-side virtualization enables
users to run VMs on their local
computer.
▪ It allows users to test new operating
systems, software, or to run older
software.
▪ Host computer – the physical
computer controlled by a user.
▪ Host OS - the operating system of
the host computer.
▪ Guest OS - the operating system
that is running in the VM.
© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 20
Type 1 and Type 2 Hypervisors
▪ Type 1 (native) hypervisor is typically used
with server virtualization. For example, they
are used in data centers and cloud
computing.
▪ Type 1 hypervisors run directly on the
hardware of a host and manage the
allocation of system resources to VMs.
▪ Type 1 hypervisors include VMware
vSphere / ESXi, Xen, and Oracle VM
Server.
© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 21
Type 1 and Type 2 Hypervisors (Cont.)
▪ Type 2 (hosted) hypervisors are commonly used with client-side virtualization.
▪ Type 2 hypervisors such as VMware Workstation work with the host computer to create and
use multiple VMs.
▪ Type 2 hypervisors include VMware Workstation and Oracle VirtualBox.
▪ In the Type 2 implementation, the host OS on the computer is Windows 10.
▪ VirtualBox has been used to create and manage the Windows 7 VM and a Linux VM.
© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 22
• Definition of IoT in Wikipedia:
• The Internet of things (IoT) describes physical objects (or groups of
such objects) with sensors, processing ability, software and other
IoT Applications technologies that connect and exchange data with other devices and
systems over the Internet or other communications networks. Internet
of things has been considered a misnomer because devices do not
need to be connected to the public internet, they only need to be
connected to a network and be individually addressable.
This Photo by Unknown Author is licensed under CC BY
IoT Applications
Intelligent
Inter-connected Smart
Smart Cities Transportation
Cars Homes/Buildings
Systems
Industrial Environment
Agricultures Smart Devices
Systems Monitoring
Medical and
Health Systems
Big Data Engineering
Data engineering is about designing Cloud computing focuses on scalability, Cloud computing provides big data
robust/scalable data-processing elasticity, on-demand allocation of with massive on-demand computation
systems that work with large datasets resources, and pay-per-use self-service power, networking, and distributed
models storage capacity required for analysis
Big data engineer designs systems that and visualization of big data
collect and extract data
Big data scientist analyzes generated data
using predictive models to create insights
Certificates – Cloud Computing
CompTIA Cloud+ Amazon Web Services AWS Certified Cloud AWS Certified AWS Certified SysOps Microsoft Certified:
(AWS) Solutions Practitioner Developer – Associate Administrator – Azure Fundamentals
Architect – Associate Associate
Microsoft Certified: IBM Certified Technical Cloud Security Alliance: Google Associate Cloud Google Professional Certified Cloud Security
Azure Administrator Advocate - Cloud v3 Certificate of Cloud Engineer Cloud DevOps Engineer Professional (CCSP)
Associate Security Knowledge
(CCSK)
Introduction to Image Processing
What is Image Processing?
• Image processing is the process
of transforming an image into
digital form and perform
operations to get useful
information
• The type of operations depends
on what we need to achieve and
what we need to enhance in the
image
Types of image processing
• Image processing has five main
types
• Visualization: finding hidden
objects in an image
• Recognition
• Sharpening and restoration
• Pattern recognition
• Retrieval
Why do we need it?
• Medical image enhancement
• Traffic sensing
• Image reconstruction
• Face detection
Embedded Systems
Architecture
Microprocessors
Embedded Systems
What is an embedded system?
What examples of
embedded
systems do you know?
Example 1: The Domestic Fridge
An Embedded
System
Compressor Control
Alarm
Display Human
The
Embedded Interaction
Computer
Networked
Actual Temperature
Interaction
(Maybe!)
Required Temperature
Example 2: Car Door Control, within a Larger Network
window control buttons
window stall sensor Right
Door
Dash Climate
window motor Board Control
lock control
lock actuator open door sensor
Driver's
Steering Seat
Central
Control Air Radio
Bag & CD
CAN Bus
Left
Door
The Microcontroller
A microcontroller is a microprocessor designed primarily to perform simple control
functions.
Microcontrollers usually have these features
• low cost,
• physically small,
• input/output intensive, and capable of easy interfacing,
• limited memory capability for program and data,
• instruction set leading to compact code, with limited arithmetic capability,
• ability to operate in a real-time environment.
In certain applications the following further features are essential:
• ability to operate in hostile environment, e.g. high or low temperature, tolerant to
electromagnetic interference,
• low power, with features adapted to battery power.
Computer Architecture
Computer Architecture: overview
Computer architecture is a set of Design goal: improving Topics of interest to computer
rules and methods that describe performance and power efficiency architects
the functionality, organization, of computer systems
and implementation of computer
systems
How programs are translated into the
machine language and how the hardware
executes them
The hardware/software interface –
Instruction Set Architecture (ISA)
What determines program performance and
how it can be improved
Techniques used by hardware designers to
achieve the design goals
Relation between performance resources
Application software – realization of an algorithm
• Written in high-level language (HLL)
System software
• Compiler: translates HLL code to machine code
• Operating System: service code
• Handling input/output
• Managing memory and storage
• Scheduling tasks & sharing resources
Hardware
• Processor, memory, I/O controllers
Microprocessors Systems
“Study the past if you would define the future - ”
suicufnoC
µP Systems
• Digital systems have a prominent role in our life; social, commercial, industrial, scientific, etc.
• Performance, cost, size, power, etc. vary; depending on what they are designed to do
• Computing platforms like Desktops, Laptops & Tablets represent a fraction of the world’s computing; the industrial and embedded
platforms are numerous
• On the average, a person in the USA faces computing devices of some sort more than 70 times in a typical day; Security doors, Car,
Phone, Tickets, ATM, etc.
• Artificial Intelligence (AI) has a touch on everything today, and this requires sophisticated high performance processors;
autonomous vehicles as an example
• Internet of Things (IoT) emerged recently, and everything is now connected
• A typical microprocessor system consist of:
• Microprocessor, and support logic like clock & reset circuits
• Storage, to store code and data
• Peripherals, to interact with the outside world via information exchange
• Connections, to connect all devices for signal transmission
• Glue Logic, to arbitrate operations using decoders, encoders, buffers, etc.
• The hardware runs under the control of low level software (Firmware) that provides services to the operating systems, which in
turn serves the end user applications
36
General Purpose Computer
Keyboard Storage Screen
Camera Speaker
Microphone Interface Printer
Scanner Plotter
Touch Screen PROCESSOR Stars indicate
separate
Mouse elements, rest are
either
separate or integrated
Track Pad MEMORY Information
Joy Stick Pointing
Finger Reader Power Supply Security
37
Integrated Circuits
• In the late 1950, transistors replaced the electronic valves as a switch to build gates and use in
making computers as discrete elements, since they are smaller, faster and more reliable
• Todays transistors are built using Complementary Metal Oxide Semiconductor (CMOS) type for
density and power consumption
• Integrated Circuits (ICs) is about placing the whole circuit, transistors and connections, on a single
die yielding smaller space and more reliability
• Dies are packaged in what we called chips, with many contacts through with it communicates
with the other components
• Contacts represent: Address, Data, Control & Power lines VCC
AB
DB
• Contacts started with 16, 18, 40, 64, … and now 6096 ? ! CB
GND
• How does the number of transistors affect performance? CB
• How does wider data bus affect performance?
• How does wider address bus affect performance?
• How does higher clock frequency affect performance? CPU
• How does power consumption relate to performance?
• Why do we have many VCC& GND inputs ? CPU
38
Modern Systems
• Integration Levels (Tr for Transistor, K, M & B for Kilo, Million & Billion)
• 1975: 10 KTr, Very Large Scale Integration (VLSI)
• 1980: 100 KTr, Ultra Large Scale Integration (ULSI)
• 1990: 1 MTr, Extremely Large Scale Integration (ELSI)
• 2000: 10 MTr, VLSI for all as a generic name
• 2010: 1 BTr
• 2013: 10 BTr
• 2015: 20 BTr
• 2018: 40 BTr
• 2020: 50 BTr
• 2021: 57 BTr
cm
• Wafer Scale Integration (WSI)) integrates 2,600 BTr on nearly 22 cm x 22 cm in 2021
• Making chips from Silicon is a long, complex and extremely precise process
• It uses lithography to print dies on wafers to cut them later and package them as chips
• Process, node or fab, used to refer to the transistor dimension (10 µm was the beginning)
• Today, the node is more of marketing number although smaller still means smaller transistors
• Today’s 5 nm process has 130 to 230 MTr/mm2; cells of 100 x 100 nm2 (including wiring …)
39
Moore’s Law
96-Core
64-Core
1010 In 1965: The number of transistors on a 32-Core
chip will double every year for 10 years 16-Core
8-Core
109 4-Core
In 1975: The number of transistors on a 2-Core
108 chip will double every two years Pentium 4
Itanium
Pentium Pro
107 Pentium
80486
106 80386
80286
105 8086
8080
104 4004 Since 2010, node or fab is no longer
transistor dimension, marketing
103
’70 ’75 ’80 ’85 ’90 ’95 ’00 ’05 ’10 ’15 ’20 Year 40
10m 6m 2m 1m 800n 350n 130n 65n 32n 14n 7n Fab (Node)
RISC vs. CISC - Specifications
• RISC compilers are harder to design, take more time to compile, generate larger
binary codes; around 25% - 50% more
• RISC implements conditional instructions, reducing the number of instructions to
less than double or triple as might be deduced from the example below
• Example: when compiled, 1 KiloLine of high level language code may produce:
• 1500 to 2000 instructions for a CISC processor CISC Code RISC Code
• 2000 to 2500 instructions for a RISC processor AND R1, R2 AND R1, R2
• RISC compilers are hard to design MOVE A, B LOAD A, R1
• RISC compilers take longer to run STORE R1, B
• RISC / CISC code segments ADD R1, A LOAD
ADD
A, R2
R1, R2
• A & B are variables STORE R2, A
• R1 & R2 are registers
ADD A, B LOAD A, R1
LOAD B, R2
ADD R1, 41
R2
STORE R2, B
State of the Art - Specifications
• Compute Cores (CPUs): General purpose compute cores with variety of instructions
• Around 300 MTr per core (Speed oriented; Do it fast)
• 2 - 8 cores, Laptops class µPs
• 4 - 12 core, Desktops class µPs
• 12 - 24 core, Workstations
• 24 - 64 core, Servers
• 96 - 100 cores now available for Data Centers
• Graphic Cores (GPUs)
• Around 3 MTr per core (Throughput oriented; Do more)
• Special purpose graphic cores, limited to Math & Logic instructions
• 100s or 1000s of GPUs on chip as co-processors add on
• 100s of stages in every pipeline; Single Instruction Multiple Data (SIMD)
• Special Cores; Neural Processing Units (NPUs) & Tensor Processor Units (TPSs)
• Special purpose neural processing cores, limited to specific functions for neural network algorithms, for
training and recognition (Throughput oriented; Do more)
• Like GPU Cores; few Millions of transistors per core. Typically, 10s NPUs on an So
42
VLSI & Hardware
Systems
“Study the past if you would define the
future” - Confucius
This Photo by Unknown Author is licensed under CC BY
Hardware Design Abstractions
First Invented Transistor
Fabrication Room
Hardware Description Languages
System on a Chip Design