From System Software to System Hardware PDF
Document Details
Uploaded by NobleKrypton
Jordan University of Science and Technology
Tags
Summary
This presentation covers the transition from system software to system hardware, discussing topics such as cloud computing, operating systems, and embedded systems. It also explores various aspects of these domains, providing a broad overview.
Full Transcript
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 P...
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” - Confucius µ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 60 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 61 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 64 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 …) 65 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 67 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, 70 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 71 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