Lecture 1. x86 General-purpose vs Embedded Systems

Slides:



Advertisements
Similar presentations
Operating Systems Manage system resources –CPU scheduling –Process management –Memory management –Input/Output device management –Storage device management.
Advertisements

Lecture 0. Course Introduction Prof. Taeweon Suh Computer Science Education Korea University ECM553 Special Topics in Computer Science 1.
Embedded System Lab. What is an embedded systems? An embedded system is a computer system designed for specific control functions within a larger system,
Implementing Fault Tolerant Systems with Windows CE.NET Reliable System Design 2010 by: Amir M. Rahmani.
Chapter 1: Introduction
© ABB Group Jun-15 Evaluation of Real-Time Operating Systems for Xilinx MicroBlaze CPU Anders Rönnholm.
Operating Systems High Level View Chapter 1,2. Who is the User? End Users Application Programmers System Programmers Administrators.
1 Hardware and Software Architecture Chapter 2 n The Intel Processor Architecture n History of PC Memory Usage (Real Mode)
Component 4: Introduction to Information and Computer Science Unit 1: Basic Computing Concepts, Including History Lecture 1 This material was developed.
INTRODUCTION OS/2 was initially designed to extend the capabilities of DOS by IBM and Microsoft Corporations. To create a single industry-standard operating.
Chapter 13 Embedded Systems
1 DOS with Windows 3.1 and 3.11 Operating Environments n Designed to allow applications to have a graphical interface DOS runs in the background as the.
1 Chapter 13 Embedded Systems Embedded Systems Characteristics of Embedded Operating Systems.
SM3121 Software Technology Mark Green School of Creative Media.
1/16/2008CSCI 315 Operating Systems Design1 Introduction Notice: The slides for this lecture have been largely based on those accompanying the textbook.
Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access memory.
Lecture 0. Course Introduction
Introduction to Operating Systems
Computer System System Software. Learning Objective Students should understand the different types of systems software and their functions. Students should.
Lecture 1. Embedded Systems vs General-Purpose Systems
Computer for Health Sciences
Lecture 1. Embedded Systems vs General-Purpose Systems
ECEn 191 – New Student Seminar - Session 8: Computer Systems ECEn 191 – New Student Seminar – Session 7: Computer Systems Computer Systems ECEn 191 New.
Chapter 3 Operating Systems Introduction to CS 1 st Semester, 2015 Sanghyun Park.
Lecture 2. General-Purpose (GP) Computer Systems Prof. Taeweon Suh Computer Science Education Korea University COMP427 Embedded Systems.
Chapter 8 Input/Output. Busses l Group of electrical conductors suitable for carrying computer signals from one location to another l Each conductor in.
Lecture 5. AT91 - Memory Map, Timers, and AIC -
Excellence Publication Co. Ltd. Volume Volume 1.
Lecture 1. Embedded Systems vs General- Purpose Systems Prof. Taeweon Suh Computer Science Education Korea University COM609 Topics in Embedded Systems.
Lecture 2. General-Purpose (GP) Computer Systems Prof. Taeweon Suh Computer Science Education Korea University ECM586 Special Topics in Embedded Systems.
Lecture 0. Course Introduction Prof. Taeweon Suh Computer Science Education Korea University ECM586 Special Topics in Embedded Systems.
LOGO BUS SYSTEM Members: Bui Thi Diep Nguyen Thi Ngoc Mai Vu Thi Thuy Class: 1c06.
Lecture 1. What is Embedded System? Prof. Taeweon Suh Computer Science & Engineering Korea University COMP427 Embedded Systems.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 1: Introduction What is an Operating System? Mainframe Systems Desktop Systems.
A+ Guide to Software Managing, Maintaining and Troubleshooting THIRD EDITION Chapter 2 How an OS Works with Hardware and Other Software.
CS 1308 Computer Literacy and the Internet. Introduction  Von Neumann computer  “Naked machine”  Hardware without any helpful user-oriented features.
1 CS503: Operating Systems Spring 2014 Dongyan Xu Department of Computer Science Purdue University.
Lecture 0. Course Introduction Prof. Taeweon Suh Computer Science Education Korea University ECM585 Special Topics in Computer Design.
Component 4: Introduction to Information and Computer Science
1.1 Operating System Concepts Introduction What is an Operating System? Mainframe Systems Desktop Systems Multiprocessor Systems Distributed Systems Clustered.
INFO 320 Server Technology I Week 1 Server operating system and hardware concepts 1INFO 320 week 1.
Foundation year Lec.3: Computer SoftwareLec.3: Computer Software Lecturer: Dalia Mirghani Year: 2014/2015.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
Lecture 0. Program Introduction Prof. Taeweon Suh Computer Science Education Korea University 2010 R&E Computer System Education & Research.
1 THE COMPUTER. 2 Input Processing Output Storage 4 basic functions.
Application Software System Software.
Lecture 0. Course Introduction Prof. Taeweon Suh Computer Science Education Korea University ECM583 Special Topics in Computer Systems.
Lecture 1. General-Purpose Computer Systems
Lecture on Central Process Unit (CPU)
Week1: Introduction to Computer Networks. Copyright © 2012 Cengage Learning. All rights reserved.2 Objectives 2 Describe basic computer components and.
CS4315A. Berrached:CMS:UHD1 Introduction to Operating Systems Chapter 1.
1.  System Characteristics  Features of Real-Time Systems  Implementing Real-Time Operating Systems  Real-Time CPU Scheduling  An Example: VxWorks5.x.
Lecture 0. Course Introduction Prof. Taeweon Suh Computer Science Education Korea University COM515 Advanced Computer Architecture.
Silberschatz and Galvin  Operating System Concepts Module 1: Introduction What is an operating system? Simple Batch Systems Multiprogramming.
Lecture 2. General-Purpose Computer Systems Prof. Taeweon Suh Computer Science Education Korea University ECM586 Special Topics in Embedded Systems.
Lecture 01: Computer Architecture overview. Our Goals ● Have a better understanding of computer architecture – Write better (more efficient) programs.
Cs506 First lecture. Materials Lecture note ELearning web site : Main text book : “Operating System Concepts”, 8 th edition,Auther:
Lecture 1. What is Embedded System?
CT101: Computing Systems Introduction to Operating Systems.
1 OPERATING SYSTEMS. 2 CONTENTS 1.What is an Operating System? 2.OS Functions 3.OS Services 4.Structure of OS 5.Evolution of OS.
Lecture 2. A Computer System for Labs
Android Mobile Application Development
Chapter 19: Real-Time Systems
Chapter Objectives In this chapter, you will learn:
Computer Organization & Assembly Language Chapter 3
Chapter 1: Introduction
Booting Up 15-Nov-18 boot.ppt.
Chapter 19: Real-Time Systems
Chapter 1: Introduction
Course Code 114 Introduction to Computer Science
Presentation transcript:

Lecture 1. x86 General-purpose vs Embedded Systems COM509 Computer Systems Lecture 1. x86 General-purpose vs Embedded Systems Prof. Taeweon Suh Computer Science Education Korea University

Embedded Systems Embedded System is a special-purpose computer system designed to perform one or a few dedicated functions - Wikipedia In general, it does not provide programmability to users, as opposed to general purpose computer systems like PC Embedded systems are virtually everywhere in your life

Embedded Systems (Cont) Even though embedded systems cover a wide range of special-purpose systems, there are common characteristics Low cost Should be cheap to be competitive Memory is typically very small compared to a general purpose computer system Lightweight processors are used in embedded systems Low power Should consume low power especially in case of portable devices Low-power processors are used in embedded systems

Embedded Systems (Cont) High performance Should meet the computing requirements of applications Users want to watch video on portable devices Audio should be in sync with video Gaming gadgets like playstation should provide high performance Real-time property Job should be done within a time limit Aerospace applications, Car control systems, Medical gadgets are critical in terms of time constraint – Otherwise, it could lead to catastrophe such as loss of life

Embedded Systems (Cont) It is challenging to satisfy the characteristics You may not be able to achieve high performance while maintaining low power consumption and making use of cheap components So, you got to do your best in a given circumstance to be competitive in the market

HW/SW Stack of Embedded Systems Identical to the general-computer systems Application Software OS / Device Drivers Hardware

Components of Embedded Systems Hardware It is mainly composed of processor (1 or more), memory, I/O devices including network devices, timers, sensors etc.

Components of Embedded Systems Software System software Operating systems Many times, a multitasking (multithreaded) OS is required, as embedded applications become complicated Networking, GUI, Audio, Video Processor is context-switched to process multiple jobs Operating system footprint should be small enough to fit into memory of an embedded system In the past and even now, real-time operating systems (RTOS) such as VxWorks or uC/OS-II have been used because they are light-weighted in terms of memory requirement Nowadays, little heavy-weighted OSs such as Windows-CE or embedded Linux (uClinux) are used, as embedded processors support computing power and advanced capabilities such as MMU (Memory Management Unit) Device drivers for I/O devices

Components of Embedded Systems (Cont) Software (cont.) Application software Run on top of operating system Execute tasks that users wish to perform Web surfing, Audio, Video playback

A General-Purpose Computer System (as of 2008) CPU Main Memory (DDR2) FSB (Front-Side Bus) North Bridge Graphics card DMI (Direct Media I/F) Peripheral devices South Bridge Hard disk USB PCIe card But, don’t forget the big picture!

IOH (Input/Output Hub) Present and More… Core i7– based Systems Core 2 Duo – based Systems CPU North Bridge South Bridge Main Memory (DDR2) FSB (Front-Side Bus) DMI (Direct Media I/F) CPU IOH (Input/Output Hub) South Bridge Main Memory (DDR3) DMI (Direct Media I/F) Quickpath (Intel) or Hypertransport (AMD) Keep in mind that CPU and computer systems are evolving at a fast pace

x86 History (as of 2008)

x86 History (Cont.) 2009 2011 Core i7 (Nehalem) Sandy Bridge 32-bit

x86? What is x86? Generic term referring to processors from Intel, AMD and VIA Derived from the model numbers of the first few generations of processors: 8086, 80286, 80386, 80486  x86 Now it generally refers to processors from Intel, AMD, and VIA x86-16: 16-bit processor x86-32 (aka IA32): 32-bit processor * IA: Intel Architecture x86-64: 64-bit processor Intel takes about 80% of the PC market and AMD takes about 20% Apple also have been introducing Intel-based Mac from Nov. 2006

Chipset We call North and South Bridges as Chipset Chipset has many PCIe devices inside North Bridge Memory controller PCI express ports to connect Graphics card http://www.intel.com/Assets/PDF/datasheet/316966.pdf South Bridge HDD (Hard-disk) controller USB controller Various peripherals connected Keyboard, mouse, timer etc PCI express ports http://www.intel.com/Assets/PDF/datasheet/316972.pdf Note that the landscape is being changed! For example, memory controller is integrated into CPU

PCI, PCI Express Devices PCI (Peripheral Component Interconnect) Computer bus connecting all the peripheral devices to the computer motherboard PCIe (PCI Express) Replaced PCI in 2004 Point-to-point connection PCI express slot x16 PCI express slots PCI slot http://www.pcisig.com/specifications/pciexpress/

An Old GP Computer System Example

PCI Express Slots in GP Systems

GP Computer System in terms of PCIe North Bridge South Bridge

Core i7-based Systems Core i7 860 (Lynnfield) – based system Core i7 920 (Bloomfield) – based system

Software Stack Applications Operating System BIOS Computer Hardware (MS-office, Google Earth…) API (Application Program I/F) Operating System (Linux, Vista, Mac OS …) BIOS provides common I/Fs BIOS (AMI, Phoenix Technologies …) Computer Hardware (CPU, Chipset, PCIe cards ...)

How the GP Computer System Works? x86-based system starts to execute from the reset address 0xFFFF_FFF0 The first instruction is “jmp xxx” off from BIOS ROM BIOS (Basic Input/Output System) Detect and initialize all the devices (including PCI devices via PCI enumeration) on the system Provide common interfaces to OS Hand over the control to OS OS Manage the system resources including main memory Control and coordinate the use of the hardware among various application programs for the various users Provide APIs for system and application programming

So… What? How is it different from embedded systems? General-purpose computer systems provide programmability to end-users You can do any kinds of programming on your PC C, C++, C#, Java etc General-purpose systems should provide backward compatibility A new system should be able to run legacy software, which could be in the form of binaries with no source codes written 30 years ago So, general purpose computer system becomes messy and complicated, still containing all legacy hardware functionalities

x86 Operation Modes Real Mode (= real address mode) Protected Mode Programming environment of the 8086 processor 8086 is a 16-bit processor from Intel Protected Mode Native state of the 32-bit Intel processor For example, Windows is running in protected mode 32-bit mode IA-32e mode (64-bit mode) There are 2 sub modes Compatibility mode 64-bit mode

Registers in 8086 Registers inside the 8086 Registers in x86-32 16-bit segment registers CS, DS, SS, ES General-purpose registers all 16-bits AX, BX, CX, DX, SP, BP, SI, DI Registers in x86-32

Real Mode Addressing In real mode (8086), general purpose registers are all 16-bit wide Real model Segment registers specify the base address of each segment Segment registers CS: Code Segment -> used to store instructions DS: Data Segment -> used to store data SS: Stack Segment -> stack ES: Extra Segment -> could be used to store more data Addressing method Segment << 4 + offset = physical address Example: mov ax, 2000h mov ds, ax  Data segment starts from 20000h (2000h << 4)

Data Segment in Real Mode Memory addressing in real mode (8086) 0xFFFFF Main Memory (1MB) mov ax, 2000h mov ds, ax mov al, [100h] 20100h offset 100h DS 2000h 20000h = 2000h << 4 0x0

A20M 8088/8086 allowed only 1MB memory access since they have only 20-bit physical address lines 220 = 1MB Memory is accessed with segment:offset in 8086/8088 (still the same though) What if CS=0xFFFF, IP=0x0020? CS << 4 + IP = 0x100010 But, we have only 20 address lines. So, 8088 ends up accessing 0x00010 ignoring the “1” in A21 Some (weird?) programmers took advantage of this mechanism

A20M (Cont) How about now? Your Core 2 Duo has 48-bit physical address lines What happens if there is no protection in the previous case Processor will access 0x100010, breaking the legacy code So, x86 provides a mechanism called A20M (A20 Mask) to make it compatible with the old generations

A20M (Cont)

Another Example Protected mode addressing (32-bit) As application programs become larger, 1MB main memory is too small Intel introduced protected mode to address a larger memory (up to 4GB) But, Intel still wants to use 16-bit segment registers for the backward compatability How to access a 4GB space with a 16-bit register?

Protected Mode Addressing TI = 0 TI = 1 Hardware Inside the CPU (Registers) Main memory Index Segment Selector TI RPL 15 3 2 1 0 Visible to software GDT LDT Segment Descriptor Segment Descriptor Segment Descriptor Segment Descriptor Invisible to software Segment Descriptor Segment Descriptor Segment Descriptor Segment Descriptor Base Access info 31 0 19 0 Limit Segment Descriptor Segment Descriptor

Segment Descriptor Format Software (OS) creates descriptor tables (GDT, LDT)

Address Translation in Protected Mode

One More Example 8259 Interrupt Controller Still in South Bridge IR0 CPU North Bridge South Bridge Main Memory (DDR) FSB (Front-Side Bus) DMI (Direct Media I/F) IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 INTR INTA 82C59A (Master) (Slave) CPU (8086) Still in South Bridge

Backup Slides

Real-Time System Real-time operating system (RTOS) Multitasking operating system intended for real-time applications RTOS facilitates the creation of real-time systems RTOS does not necessarily have a high throughput RTOS is valued more for how quickly and/or predictably it can respond to a particular event Hard real-time systems are required to complete a critical task within a guaranteed amount of time Soft real-time systems are less restrictive Implementing real-time system requires a careful design of scheduler System must have the priority-based scheduling Real-time processes must have the highest priority Priority inheritance (next slide) Solve the priority inversion problem Process dispatch latency must be small

Operating Systems for Embedded Systems RTOSs pSOS VxWorks VRTX (Versatile Real-Time Executive) uC/OS-II Palm OS (source: Wikipedia) Embedded operating system initially developed by U.S. Robotics-owned Palm Computing, Inc. for personal digital assistants (PDAs) in 1996 Symbian OS (source: Wikipedia) Proprietary operating system designed for mobile devices by Symbian Ltd. A descendant of Psion's EPOC and runs exclusively on ARM processors Android Open Handset Alliance Project Based on Linux 2.6 kernel http://code.google.com/android/

Operating Systems for Embedded Systems Windows CE (WinCE) (source: Wikipedia) Microsoft's operating system for minimalistic computers and embedded systems WinCE is a distinctly different operating system and kernel, rather than a trimmed-down version of desktop Windows Embedded Linux (uClinux, ELKS, ThinLinux) (source: Wikipedia) The use of a Linux operating system in embedded computer systems According to survey conducted by Venture Development Corporation, Linux was used by 18% of embedded engineers Embedded versions of Linux are designed for devices with relatively limited resources, such as cell phones and set-top boxes Due to concerns such as cost and size, embedded devices usually have much less RAM and secondary storage than desktop computers, and are likely to use flash memory instead of a hard drive Since embedded devices are used for specific purposes rather than general purposes, developers optimize their embedded Linux distributions to target specific hardware configurations and usage situations These optimizations can include reducing the number of device drivers and software applications, and modifying the Linux kernel to be a real-time operating system Instead of a full suite of desktop software applications, embedded Linux systems often use a small set of free software utilities such as busybox, and replace the glibc C standard library with a more compact alternative such as dietlibc, uClibc, or Newlib.

Embedded System Design Flow Planning & Architect (modeling & simulation) Hardware Design with CAD tools ASIC/SoC design ASIC/SoC chip Final product Hardware debugging & Software development System prototype board ASIC: Application-Specific Integrated Circuit SoC: System-on-Chip

Priority Inversion Problem Pathfinder mission on Mars in 1997 Used VxWorks, an RTOS kernel, from WindRiver Software problems caused the total system resets of the Pathfinder spacecraft in mission Watchdog timer goes off, informing that something has gone dramatically wrong and initiating the system reset

Priority Inversion Problem VxWorks provides preemptive priority scheduling of threads Tasks on the Pathfinder spacecraft were executed as threads with priorities that were assigned in the usual manner reflecting the relative urgency of these tasks. Task 1 tries to get the semaphore Task 1 gets the semaphore and execute Task 1 preempts Task3 Priority Inversion Task 1 (highest priority) Task 2 (medium priority) Task 2 preempts task 3 Task 3 (lowest priority) Task 3 is resumed Time Task 3 gets semaphore Task 3 is resumed Task 3 releases the semaphore

Priority Inheritance A chain of processes could all be accessing resources that the high-priority process needs All these processes inherit the high priority until they are done with the resource When they are finished, their priority reverts to its original value Task 1 tries to get the semaphore (Priority of Task 3 is raised to Task 1’s) Task 1 preempts Task3 Task 1 completes Priority Inversion Task 1 (highest priority) Task 2 (medium priority) Task 3 (lowest priority) Time Task 3 gets semaphore Task 3 is resumed with the highest priority Task 3 releases the semaphore