Devil: an IDL for Hardware Programming
|
|
- Asher Willis
- 5 years ago
- Views:
Transcription
1 Devil: an IDL for Hardware Programming Fabrice Mérillon, Laurent Réveillère, Charles Consel, Renaud Marlet, Gilles Muller Group Irisa/Labri, Rennes/Bordeaux (France) 1
2 Interfacing Devices... The Devil is in the details 2 2
3 Looking into the "Details" #define MSE_DATA_PORT #define MSE_SIGNATURE_PORT #define MSE_CONTROL_PORT... #define MSE_READ_X_LOW #define MSE_READ_X_HIGH (busmouse.h) 0x23c 0x23d 0x23e 0x80 0xa0 (busmouse.c) outb(mse_read_y_low, MSE_CONTROL_PORT ); dy = (inb(mse_data_port) & 0xf); outb(mse_read_y_high, MSE_CONTROL_PORT); buttons = inb(mse_data_port); dy = (buttons & 0xf) << 4; buttons = ((buttons >> 5) & 0x07); 3 3
4 Assessment of Existing (Linux) Drivers Assembly-level programming style Macros unreadable code factorized, not suppressed no single programming style no typing / consistency checking The hardware interface code is: hard to read and maintain tedious and error prone 4 4
5 Lack of Support for the Driver Programmer Paper documentation» natural language» manufacturer-specific terminology» inconsistencies, ambiguities, omissions, typos Mixed levels of abstractions» communication mechanisms, data layout, semantics Inherent complexity of devices Laborious testing until expected functionality is obtained 5 5
6 Devil: a DEVice Interface Language Existing device interface code outb(mse_read_y_low, MSE_CONTROL_PORT ); dy = (inb(mse_data_port) & 0xf); outb(mse_read_y_high, MSE_CONTROL_PORT); buttons = inb(mse_data_port); dy = (buttons & 0xf) << 4; Application API System API Driver DI Device C Devil Generated Stubs DevIL 6 6
7 Our Vision High-level description of device interface Easy to write Strongly typed Consistency checking Code generation DevIL Hardware vendor, Public repository, Device expert Device Specification Verifier Compiler Functional interface Easy to use Debug/production mode Driver programmer Driver C Devil C stubs (run-time checks) 7 7
8 Devil: Key Concepts Ports communication point, address range Registers repository of data, granule of exchange Variables: programmer interface collection of register fragments semantic values:» bounded integers» enumerated types 8 8
9 Programmer Support: Verifying Critical Properties Consistency of Devil specifications no omission no double definition no overlapping type/size of variables C Devil interface usage in debug mode compile-time (type checking) run-time (assertion checking) 9 9
10 The Logitech Busmouse: functional interface dx (delta X) relative horizontal movement dy (delta Y) relative vertical movement buttons button state Read only variables! 10 10
11 Device Interface Code: C Devil vs. existing drivers dx = get_dx(); dy = get_dy(); buttons = get_buttons(); C Devil outb(mse_read_x_low, MSE_CONTROL_PORT); dx = (inb(mse_data_port) & 0xf); outb(mse_read_x_high, MSE_CONTROL_PORT); dx = (inb(mse_data_port) & 0xf) << 4; outb(mse_read_y_low, MSE_CONTROL_PORT ); dy = (inb(mse_data_port) & 0xf); outb(mse_read_y_high, MSE_CONTROL_PORT); buttons = inb(mse_data_port); dy = (buttons & 0xf) << 4; buttons = ((buttons >> 5) & 0x07); Existing code 11 11
12 The Logitech Busmouse: detailed description base + 2 base + 0 dx Direct register 0 index *.... Register array buttons dy 12 12
13 Direct registers base + 2 base + 0 dx fi index_reg 0 index *.... Register array buttons dy... register index_reg = write base@2, mask : bit[8]; 13 13
14 Private device variables base + 2 base + 0 dx fi index_reg 0 index *.... Register array buttons dy... register index_reg = write base@2, mask : bit[8]; private variable index = index_reg[6..5] : int(2); 14 14
15 Indexed registers base + 2 base + 0 dx index fi index_reg *.... fi x_low fi x_high fi y_low fi y_high buttons dy... register index_reg = write base@2, mask : bit[8]; private variable index = index_reg[6..5] : int(2);... register x_low = read base@0, pre {index = 0}, mask ****... : bit[8]; register x_high = read base@0, pre {index = 1}, mask ****... : bit[8];
16 ... register index_reg = write base@2, mask : bit[8]; private variable index = index_reg[6..5] : int(2);... register x_low = read base@0, pre {index = 0}, mask ****... : bit[8]; register x_high = read base@0, pre {index = 1}, mask ****... : bit[8];... variable dx = x_high[3..0] # x_low[3..0], volatile : signed int(8); variable dy = y_high[3..0] # y_low[3..0], volatile : signed int(8); base index Interface variables fi index_reg base *.... buttons dx fi x_low fi x_high fi y_low fi y_high dy 16 16
17 What About Performance? Sharing registers between variables may induce performance penalty additional I/O w.r.t. hand-crafted drivers command parameters Re-engineering of performance critical drivers IDE disk driver Permedia2 X11 driver 17 17
18 IDE Linux Driver (intel 82371SB) Characteristics: many initializations DMA/PIO-loop for transfer DMA mode C: 14 I/Os Devil: 20 I/Os Mb/s PIO-32bits mode, 16 sectors/interrupt C (rep loop): 8.17 Mb/s Devil (C loop): 7.36 Mb/s (90% of C) Devil (rep loop): 8.17 Mb/s 18 18
19 Permedia2 X11 driver Characteristics: registers mapped in memory buffered write (on-chip FIFO) same number of I/Os Screen copy operations (24 bpp) 100% performance of C Rectangle operations (24 bpp) 97%-100% performance of C difference due to stub code for small size operation 19 19
20 Benefits of Devil Expressivity» advanced Devil constructs (see paper and manual)» DMA, sound, interrupt, Ethernet controllers Guaranteed safety» Mutation-based experiment (typo simulation)» 5 times less prone to errors than C code Negligible performance overhead Improved productivity» reuse of specifications» tools and verifications 20 20
21 Our Vision (On-going work) Hardware vendor Device specification Device interface documentation Verifier Compiler Device interface implementation Driver programmer Device driver specification DSL type-checker DSL compiler DSL optimizer Generated device driver Device driver documentation 21 21
22 Conclusion Step toward the development of robust drivers Compiler/checker available No performance penalty Expressive enough to allow the specification of various devices Instance of our vision: DSL for Operating System Design 22 22
23 The details are in Devil 23 23
24 Questions? Specifications/compiler/manual available : Public CVS repository of specs Please contribute 24 24
Devil : An IDL for Hardware Programming
Devil : An IDL for Hardware Programming Fabrice Mérillon, Laurent Réveillère, Charles Consel, Renaud Marlet, Gilles Muller To cite this version: Fabrice Mérillon, Laurent Réveillère, Charles Consel, Renaud
More informationLanguage Technology for Internet Telephony Service Creation
Language Technology for Internet Telephony Service Creation Charles Consel,, Laurent Réveillère,, et al. Phoenix Research Group, INRIA Futurs/LaBRI Presenter: Lenin Singaravelu,, Georgia Tech. L. Réveillère,
More informationImproving Driver Robustness : an Evaluation of the Devil Approach
Improving Driver Robustness : an Evaluation of the Devil Approach Laurent Réveillère, Gilles Muller To cite this version: Laurent Réveillère, Gilles Muller. Improving Driver Robustness : an Evaluation
More informationResearch Proposal. The Phoenix Project
Research Proposal The Phoenix Project Personnel Faculty members (ex Compose) Charles Consel, Prof., Dept of Telecom, ENSEIRB / LaBRI Laurent Réveillère, Assoc. Prof., Dept of Telecom, ENSEIRB / LaBRI PhD
More informationNDL: A Domain-Specific Language for Device Drivers. Christopher Conway & Stephen Edwards Columbia University. 24 May 2004
NDL: A Domain-Specific Language for Device Drivers Christopher Conway & Stephen Edwards Columbia University 24 May 2004 Paper Christopher L. Conway and Stephen A. Edwards. NDL: A Domain-Specific Language
More informationPRESENTED BY: SANTOSH SANGUMANI & SHARAN NARANG
PRESENTED BY: SANTOSH SANGUMANI & SHARAN NARANG Table of contents Introduction Binary Disassembly Return Address Defense Prototype Implementation Experimental Results Conclusion Buffer Over2low Attacks
More information//
----------------------------------------------------------------------------------- Filename: FixedMath.h ----------------------------------------------------------------------------------- -----------------------------------------------------------------------------------
More informationTowards Verifiable Device Drivers: An Approach based on Domain-Specific Languages
INSTITUT NATIONAL DE RECHERCHE EN INFORMATIQUE ET EN AUTOMATIQUE Towards Verifiable Device Drivers: An Approach based on Domain-Specific Languages Fabrice Mérillon Laurent Réveillère Charles Consel Robin
More informationVirtual Memory. Daniel Sanchez Computer Science & Artificial Intelligence Lab M.I.T. April 12, 2018 L16-1
Virtual Memory Daniel Sanchez Computer Science & Artificial Intelligence Lab M.I.T. L16-1 Reminder: Operating Systems Goals of OS: Protection and privacy: Processes cannot access each other s data Abstraction:
More informationOn Designing a Target-Independent DSL for Safe OS Process Scheduling Components
On Designing a Target-Independent DSL for Safe OS Process Scheduling Components Julia Lawall, DIKU, University of Copenhagen Anne-Françoise Le Meur, Jacquard Group, LIFL, Lille Gilles Muller, OBASCO Group,
More informationEmbedded System Design
Embedded System Design Lecture 5 Jaeyong Chung System-on-Chips (SoC) Laboratory Incheon National University What We Have Covered So Far Instruction Set Architecture How CPU interacts with I/O controllers
More informationI/O Devices. Nima Honarmand (Based on slides by Prof. Andrea Arpaci-Dusseau)
I/O Devices Nima Honarmand (Based on slides by Prof. Andrea Arpaci-Dusseau) Hardware Support for I/O CPU RAM Network Card Graphics Card Memory Bus General I/O Bus (e.g., PCI) Canonical Device OS reads/writes
More informationStatic program checking and verification
Chair of Software Engineering Software Engineering Prof. Dr. Bertrand Meyer March 2007 June 2007 Slides: Based on KSE06 With kind permission of Peter Müller Static program checking and verification Correctness
More informationVirtual Memory. Daniel Sanchez Computer Science & Artificial Intelligence Lab M.I.T. November 15, MIT Fall 2018 L20-1
Virtual Memory Daniel Sanchez Computer Science & Artificial Intelligence Lab M.I.T. L20-1 Reminder: Operating Systems Goals of OS: Protection and privacy: Processes cannot access each other s data Abstraction:
More informationTyped Assembly Language for Implementing OS Kernels in SMP/Multi-Core Environments with Interrupts
Typed Assembly Language for Implementing OS Kernels in SMP/Multi-Core Environments with Interrupts Toshiyuki Maeda and Akinori Yonezawa University of Tokyo Quiz [Environment] CPU: Intel Xeon X5570 (2.93GHz)
More informationCEC 450 Real-Time Systems
CEC 450 Real-Time Systems Lecture 6 Accounting for I/O Latency September 28, 2015 Sam Siewert A Service Release and Response C i WCET Input/Output Latency Interference Time Response Time = Time Actuation
More informationSpring 2017 :: CSE 506. Device Programming. Nima Honarmand
Device Programming Nima Honarmand read/write interrupt read/write Spring 2017 :: CSE 506 Device Interface (Logical View) Device Interface Components: Device registers Device Memory DMA buffers Interrupt
More informationCycle Approximate Simulation of RISC-V Processors
Cycle Approximate Simulation of RISC-V Processors Lee Moore, Duncan Graham, Simon Davidmann Imperas Software Ltd. Felipe Rosa Universidad Federal Rio Grande Sul Embedded World conference 27 February 2018
More informationBlack-Box Program Specialization
Published in Technical Report 17/99, Department of Software Engineering and Computer Science, University of Karlskrona/Ronneby: Proceedings of WCOP 99 Black-Box Program Specialization Ulrik Pagh Schultz
More informationDebugging Your CUDA Applications With CUDA-GDB
Debugging Your CUDA Applications With CUDA-GDB Outline Introduction Installation & Usage Program Execution Control Thread Focus Program State Inspection Run-Time Error Detection Tips & Miscellaneous Notes
More informationPCI-4IPM Revision C. Second Generation Intelligent IP Carrier for PCI Systems Up to Four IndustryPack Modules Dual Ported SRAM, Bus Master DMA
PCI-4IPM Revision C Second Generation Intelligent IP Carrier for PCI Systems Up to Four IndustryPack Modules Dual Ported SRAM, Bus Master DMA REFERENCE MANUAL 781-21-000-4000 Version 2.1 April 2003 ALPHI
More informationRead section 8 of this document for detailed instructions on how to use this interface spec with LibUSB For OSX
CP2130 INTERFACE SPECIFICATION 1. Introduction The Silicon Labs CP2130 USB-to-SPI bridge is a device that communicates over the Universal Serial Bus (USB) using vendor-specific control and bulk transfers
More informationUnderstanding the Genetic Makeup of Linux Device Drivers
Understanding the Genetic Makeup of Linux Device Drivers (Work in Progress) Peter Senna Tschudin, Laurent Réveillère, Lingxiao Jiang, David Lo, Julia Lawall, Gilles Muller LIP6 Inria & UPMC, LaBRI, Singapore
More informationLaddie: The Language for Automated Device Drivers (Ver 1) Bucknell Computer Science Technical Report #08-2
Laddie: The Language for Automated Device Drivers (Ver 1) Bucknell Computer Science Technical Report #08-2 Lea Wittie March 12, 2008 Abstract Device drivers, which make up a large portion of operating
More informationMachine-Level Programming V: Unions and Memory layout
Machine-Level Programming V: Unions and Memory layout Slides adapted from Bryant and O Hallaron Bryant and O Hallaron, Computer Systems: A Programmer s Perspective, Third Edition 1 FAQ Call conventions
More informationPage 1. Last Time. Today. Embedded Compilers. Compiler Requirements. What We Get. What We Want
Last Time Today Low-level parts of the toolchain for embedded systems Linkers Programmers Booting an embedded CPU Debuggers JTAG Any weak link in the toolchain will hinder development Compilers: Expectations
More informationSurvey. Motivation 29.5 / 40 class is required
Survey Motivation 29.5 / 40 class is required Concerns 6 / 40 not good at examination That s why we have 3 examinations 6 / 40 this class sounds difficult 8 / 40 understand the instructor Want class to
More informationCSI31 Introduction to Computer Programming I. Dr. Sharon Persinger Fall
CSI31 Introduction to Computer Programming I Dr. Sharon Persinger Fall 2018 1 Overview Basic definitions: Computer Computer science Algorithm Programming language What is a computer? A modern computer
More informationTAG Word 0 Word 1 Word 2 Word 3 0x0A0 D2 55 C7 C8 0x0A0 FC FA AC C7 0x0A0 A5 A6 FF 00
ELE 758 Final Examination 2000: Answers and solutions Number of hits = 15 Miss rate = 25 % Miss rate = [5 (misses) / 20 (total memory references)]* 100% = 25% Show the final content of cache using the
More informationThe Device Driver Interface. Input/Output Devices. System Call Interface. Device Management Organization
Input/Output s Slide 5-1 The Driver Interface Slide 5-2 write(); Interface Output Terminal Terminal Printer Printer Disk Disk Input or Terminal Terminal Printer Printer Disk Disk Management Organization
More informationMemory, Data, & Addressing I
Memory, Data, & Addressing I CSE 351 Autumn 2017 Instructor: Justin Hsia Teaching Assistants: Lucas Wotton Michael Zhang Parker DeWilde Ryan Wong Sam Gehman Sam Wolfson Savanna Yee Vinny Palaniappan http://xkcd.com/953/
More informationEEPROM Emulation with the ez80f91 MCU. Discussion
Application Note EEPROM Emulation with the ez80f91 MCU AN015803-0608 Abstract This Application Note describes a method to utilize a portion of Zilog s ez80acclaimplus! MCU s Flash memory to emulate the
More informationImperas Peripheral Model Guide. Model Specific Information for xilinx.ovpworld.org / zynq_7000-ddrc. Imperas Software Limited
Imperas Peripheral Model Guide Model Specific Information for xilinx.ovpworld.org / zynq_7000-ddrc Imperas Software Limited Imperas Buildings, North Weston Thame, Oxfordshire, OX9 2HA, U.K. docs@imperas.com.
More informationComputer Systems A Programmer s Perspective 1 (Beta Draft)
Computer Systems A Programmer s Perspective 1 (Beta Draft) Randal E. Bryant David R. O Hallaron August 1, 2001 1 Copyright c 2001, R. E. Bryant, D. R. O Hallaron. All rights reserved. 2 Contents Preface
More informationMODERN OPERATING SYSTEMS. Chapter 3 Memory Management
MODERN OPERATING SYSTEMS Chapter 3 Memory Management No Memory Abstraction Figure 3-1. Three simple ways of organizing memory with an operating system and one user process. Base and Limit Registers Figure
More informationChapters 9 & 10: Memory Management and Virtual Memory
Chapters 9 & 10: Memory Management and Virtual Memory Important concepts (for final, projects, papers) addressing: physical/absolute, logical/relative/virtual overlays swapping and paging memory protection
More informationUse Dynamic Analysis Tools on Linux
Use Dynamic Analysis Tools on Linux FTF-SDS-F0407 Gene Fortanely Freescale Software Engineer Catalin Udma A P R. 2 0 1 4 Software Engineer, Digital Networking TM External Use Session Introduction This
More informationBoot Loader. Bootloader
October 2013 Boot Loader A program that is executed upon initial power-up that typically involves a power-on self-test, locating and initializing peripheral devices, and then loading and starting an operating
More informationChapter 9 Interrupt Controller
Chapter 9 Interrupt Controller This chapter describes the operation of the interrupt controller portion of the system integration module (SIM). It includes descriptions of the registers in the interrupt
More informationGPU Memory Model Overview
GPU Memory Model Overview John Owens University of California, Davis Department of Electrical and Computer Engineering Institute for Data Analysis and Visualization SciDAC Institute for Ultrascale Visualization
More informationORACLE MESSAGEQ ORACLE DATA SHEET KEY FEATURES AND BENEFITS
ORACLE MESSAGEQ KEY FEATURES AND BENEFITS With Oracle MessageQ, you can translate your inventory of diverse applications into a strategic advantage. FEATURES Interoperability with IBM platforms via TCP/IP
More informationProject 3: An Introduction to File Systems. COP4610 Florida State University
Project 3: An Introduction to File Systems COP4610 Florida State University 1 Introduction The goal of project 3 is to understand basic file system design and implementation file system testing data serialization/de-serialization
More informationNEW CEIBO DEBUGGER. Menus and Commands
NEW CEIBO DEBUGGER Menus and Commands Ceibo Debugger Menus and Commands D.1. Introduction CEIBO DEBUGGER is the latest software available from Ceibo and can be used with most of Ceibo emulators. You will
More informationSPIN: Seamless Operating System Integration of Peer-to-Peer DMA Between SSDs and GPUs. Shai Bergman Tanya Brokhman Tzachi Cohen Mark Silberstein
: Seamless Operating System Integration of Peer-to-Peer DMA Between SSDs and s Shai Bergman Tanya Brokhman Tzachi Cohen Mark Silberstein What do we do? Enable efficient file I/O for s Why? Support diverse
More informationThe Ensoniq EPS/EPS16+/ASR-10 Bank Format
The Ensoniq EPS/EPS16+/ASR-10 Bank Format, document version 0.7 1/6 The Ensoniq EPS/EPS16+/ASR-10 Bank Format documented by Thoralt Franz The Ensoniq EPS/EPS16+/ASR-10 Bank Format, document version 0.7
More informationSimpleLink Bluetooth Low Energy CC2640 Wireless MCU. Simple Network Processor API Guide For BLE-Stack Version: 2.1.0
SimpleLink Bluetooth Low Energy CC2640 Wireless MCU Simple Network Processor API Guide For BLE-Stack Version: 2.1.0 July 2015 Page 1 of 46 TABLE OF CONTENTS 1. REFERENCES... 5 2. REVISION HISTORY... 5
More information1. Draw and explain program flow of control without and with interrupts. [16]
Code No: R05310503 Set No. 1 1. Draw and explain program flow of control without and with interrupts. [16] 2. Explain the following transitions: (a) Blocked Blocked/Suspended. (b) Blocked/Suspended Ready/Suspended.
More information(Embedded) Systems Programming Overview
System Programming Issues EE 357 Unit 10a (Embedded) Systems Programming Overview Embedded systems programming g have different design requirements than general purpose computers like PC s I/O Electro-mechanical
More informationCPCI-SIP-PLX. Slave 2- IndustryPack Carrier for 3U CompactPCI systems REFERENCE MANUAL Version 1.2 August 2008
CPCI-SIP-PLX Slave 2- IndustryPack Carrier for 3U CompactPCI systems REFERENCE MANUAL 824-12-000-4000 Version 1.2 August 2008 ALPHI TECHNOLOGY CORPORATION 1898 E. Southern Avenue Tempe, AZ 85282 USA Tel:
More informationDØ Level 2 Trigger Software for Run II R. Moore, Michigan State University
DØ Level 2 Trigger Software for Run II R. Moore, Michigan State University 2/4/99 R. Moore, L2 Review 1 Software Environment Main environment is DEC s debug monitor compile using DEC C++ executable download
More informationHierarchical vs. Flat Component Models
Hierarchical vs. Flat Component Models František Plášil, Petr Hnětynka DISTRIBUTED SYSTEMS RESEARCH GROUP http://nenya.ms.mff.cuni.cz Outline Component models (CM) Desired Features Flat vers. hierarchical
More informationCSE351: Memory, Data, & Addressing I
CSE351: Memory, Data, & Addressing I CSE 351 Spring 2017 Instructor: Ruth Anderson Teaching Assistants: Dylan Johnson Kevin Bi Linxing Preston Jiang Cody Ohlsen Yufang Sun Joshua Curtis http://xkcd.com/138/
More informationNDL: A Domain-Specific Language for Device Drivers
NDL: A Domain-Specific Language for Device Drivers Christopher L. Conway conway@cs.columbia.edu Stephen A. Edwards sedwards@cs.columbia.edu Department of Computer Science, Columbia University 1214 Amsterdam
More informationImplementing Secure Software Systems on ARMv8-M Microcontrollers
Implementing Secure Software Systems on ARMv8-M Microcontrollers Chris Shore, ARM TrustZone: A comprehensive security foundation Non-trusted Trusted Security separation with TrustZone Isolate trusted resources
More informationVME64M VME64 MASTER CONTROLLER. Version 1.1
Datasheet VME64M VME64 MASTER CONTROLLER Version 1.1 INICORE INC. 5600 Mowry School Road Suite 180 Newark, CA 94560 t: 510 445 1529 f: 510 656 0995 e: info@inicore.com www.inicore.com C O P Y R I G H T
More informationTesting & Debugging TB-1
Testing & Debugging TB-1 Need for Testing Software systems are inherently complex» Large systems 1 to 3 errors per 100 lines of code (LOC) Extensive verification and validiation is required to build quality
More informationArduCAM-M-2MP Camera Shield
33275-MP ArduCAM-M-2MP Camera Shield 2MP SPI Camera Hardware Application Note Rev 1.0, Mar 2015 33275-MP ArduCAM-M-2MP Hardware Application Note Table of Contents 1 Introduction... 2 2 Typical Wiring...
More informationRuntime Checking for Program Verification Systems
Runtime Checking for Program Verification Systems Karen Zee, Viktor Kuncak, and Martin Rinard MIT CSAIL Tuesday, March 13, 2007 Workshop on Runtime Verification 1 Background Jahob program verification
More informationDevice I/O Programming
Overview Device I/O Programming Don Porter CSE 506 Many artifacts of hardware evolution Configurability isn t free Bake-in some reasonable assumptions Initially reasonable assumptions get stale Find ways
More informationComputer Labs: I/O and Interrupts
Computer Labs: I/O and Interrupts 2 o MIEIC Pedro F. Souto (pfs@fe.up.pt) October 3, 2010 I/O Operation I/O devices are the interface between the computer and its environment Most of the time, the processor
More informationFieldServer Driver - Ethernet FS EtherNet/IP
Driver Version: 1.02 Document Revision: 2 Description FieldServer Driver - Ethernet FS-8704-14 EtherNet/IP The Ethernet IP driver allows the FieldServer to transfer data to and from devices over Ethernet
More informationI/O Systems. Jo, Heeseung
I/O Systems Jo, Heeseung Today's Topics Device characteristics Block device vs. Character device Direct I/O vs. Memory-mapped I/O Polling vs. Interrupts Programmed I/O vs. DMA Blocking vs. Non-blocking
More informationIntroduction to C CMSC 104 Spring 2014, Section 02, Lecture 6 Jason Tang
Introduction to C CMSC 104 Spring 2014, Section 02, Lecture 6 Jason Tang Topics History of Programming Languages Compilation Process Anatomy of C CMSC 104 Coding Standards Machine Code In the beginning,
More informationChapter 8: Memory Management
Chapter 8: Memory Management Chapter 8: Memory Management Background Swapping Contiguous Allocation Paging Segmentation Segmentation with Paging 8.2 Silberschatz, Galvin and Gagne 2005 Background Program/Code
More informationOptimal Algorithm. Replace page that will not be used for longest period of time Used for measuring how well your algorithm performs
Optimal Algorithm Replace page that will not be used for longest period of time Used for measuring how well your algorithm performs page 1 Least Recently Used (LRU) Algorithm Reference string: 1, 2, 3,
More informationSYSTEMS PROGRAMMING. Srimanta Pal. Associate Professor Indian Statistical Institute Kolkata OXFORD UNIVERSITY PRESS
SYSTEMS PROGRAMMING Srimanta Pal Associate Professor Indian Statistical Institute Kolkata OXFORD UNIVERSITY PRESS Contents Preface v 1. Scope of Systems Programming 1 1.1 Introduction 7 1.2 Computers and
More informationIntroduction to Embedded Systems and Chapter 1: Introduction to HCS12/MC9S12. EE383: Introduction to Embedded Systems University of Kentucky
Introduction to Embedded Systems and Chapter 1: Introduction to HCS12/MC9S12 EE383: Introduction to Embedded Systems University of Kentucky Samir Rawashdeh With slides based on material by H. Huang Delmar
More informationnetx DPM Interface Manual DPM Interface Manual for netx based Products Language: English
netx DPM Interface Manual DPM Interface Manual for netx based Products Language: English www.hilscher.com netx DPM Interface Introduction 2 Rev Date Name Revisions 0 3-Mar-06 rm, tk created 1 13-Jun-06
More informationIntroduction to Computer Systems and Operating Systems
Introduction to Computer Systems and Operating Systems Minsoo Ryu Real-Time Computing and Communications Lab. Hanyang University msryu@hanyang.ac.kr Topics Covered 1. Computer History 2. Computer System
More informationWhat is NXTCam5. What you will need before using NXTCam5. NXTCam5 User Guide
NXTCam5 User Guide What is NXTCam5 NXTCam5 is a real-time image processing engine. Think of it as a vision sub-system with on-board processor and a protocol interface that is accessible through a standard
More informationThe Mathemagix compiler. Joris van der Hoeven, Palaiseau
The Mathemagix compiler Joris van der Hoeven, Palaiseau 2011 http://www.texmacs.org 1 Motivation Existing computer algebra systems are slow for numerical algorithms we need a compiled language Low level
More informationMay 19, Answer pieces in italics were not required to receive full points.
(2 pts) Name: (2 pts) User Id: CMPSCI 377: Operating Systems Final Exam May 19, 2003 Answer pieces in italics were not required to receive full points. Problem Topic Max Grade 0-4 1 Memory 30 2 Disk Support
More informationThe Mathemagix compiler. Joris van der Hoeven, Palaiseau 2011
The Mathemagix compiler Joris van der Hoeven, Palaiseau 2011 http://www.texmacs.org Motivation Existing computer algebra systems are slow for numerical algorithms we need a compiled language Low level
More informationSpot: A Programming Language for Verified Flight Software
Spot: A Programming Language for Verified Flight Software Rob Bocchino (bocchino@jpl.nasa.gov) Ed Gamble (ed.gamble@jpl.nasa.gov) Kim Gostelow Jet Propulsion Laboratory Califor nia Institute of Technology
More informationCprE 288 Spring 2014 Homework 5 Due Fri. Feb. 21
CprE 288 Spring 2014 Homework 5 Due Fri. Feb. 21 Notes: Homework answers must be typed using a word editor. Homework is individual work. Adhere to the University s policy relating to the integrity of scholarship.
More informationSolutions - Homework 2 (Due date: October 4 5:30 pm) Presentation and clarity are very important! Show your procedure!
Solutions - Homework 2 (Due date: October 4 th @ 5:30 pm) Presentation and clarity are very important! Show your procedure! PROBLEM 1 (28 PTS) a) What is the minimum number of bits required to represent:
More informationVS1053B PCM Mixer. VSMPG VLSI Solution Audio Decoder. Project Code: Project Name:
Controlled Document VS1053B PCM Mixer VLSI Solution Audio Decoder Project Code: Project Name: Revision History Rev. Date Author Description 1.1 2011-04-27 Rate configured from AICTRL0 1.0 2011-03-14 Initial
More informationWire-Frame 3D Graphics Accelerator IP Core. Specification
Wire-Frame 3D Graphics Accelerator IP Core Specification Kenji Ishimaru 1 / 30 Revision History Rev. Date Author Description 1.0 2015/09/30 Kenji Ishimaru First Release 1.1 2016/08/14
More informationUSER MANUAL NATHANIEL THWAITES-MCGOWAN
USER MANUAL NATHANIEL THWAITES-MCGOWAN ABBREVIATIONS Whilst this document is aimed at readers with a Computer Science background, this list of acronyms is intended to help those without the required depth
More informationΗΜΥ 317 Τεχνολογία Υπολογισμού
ΗΜΥ 317 Τεχνολογία Υπολογισμού Εαρινό Εξάμηνο 2008 ΙΑΛΕΞΕΙΣ 18-19: Έλεγχος και Πιστοποίηση Λειτουργίας ΧΑΡΗΣ ΘΕΟΧΑΡΙ ΗΣ Λέκτορας ΗΜΜΥ (ttheocharides@ucy.ac.cy) [Προσαρμογή από Ian Sommerville, Software
More informationUSING PAPYRUS IN A DESIGN SPACE EXPLORATION TOOLCHAIN CURRENT DEVELOPMENTS AT FLANDERS MAKE
USING PAPYRUS IN A DESIGN SPACE EXPLORATION TOOLCHAIN CURRENT DEVELOPMENTS AT FLANDERS MAKE Who is Flanders Make? A Flemish research institute whose mission is to strengthen the long-term international
More informationC Refresher, Advance C, Coding Standard, Misra C Compliance & Real-time Programming
C Refresher, Advance C, Coding Standard, Misra C Compliance & Real-time Programming Course Overview This course transforms an IT-Professional or a Student into an expert C Programming Person with concepts
More informationCS 471 Operating Systems. Yue Cheng. George Mason University Fall 2017
CS 471 Operating Systems Yue Cheng George Mason University Fall 2017 Review: Disks 2 Device I/O Protocol Variants o Status checks Polling Interrupts o Data PIO DMA 3 Disks o Doing an disk I/O requires:
More informationBest Practices in Programming
Best Practices in Programming from B. Kernighan & R. Pike, The Practice of Programming Giovanni Agosta Piattaforme Software per la Rete Modulo 2 Outline 1 2 Macros and Comments 3 Algorithms and Data Structures
More informationUniversal Serial Bus Host Interface on an FPGA
Universal Serial Bus Host Interface on an FPGA Application Note For many years, designers have yearned for a general-purpose, high-performance serial communication protocol. The RS-232 and its derivatives
More informationOutline. Introduction. Survey of Device Driver Management in Real-Time Operating Systems
Survey of Device Driver Management in Real-Time Operating Systems Sebastian Penner +46705-396120 sebastian.penner@home.se 1 Outline Introduction What is a device driver? Commercial systems General Description
More informationSystem On Chip: Design & Modelling (SOC/DAM) 1 R: Verilog RTL Design with examples.
System On Chip: Design & Modelling (SOC/DAM) Exercises Here is the first set of exercises. These are intended to cover subject groups 1-4 of the SOC/DAM syllabus (R, SC, SD, ESL). These questions are styled
More informationLaboratory Exercise 8
Laboratory Exercise 8 Introduction to Graphics and Animation The purpose of this exercise is to learn how to display images and perform animation. We will use the Nios II processor, in the pre-build DE-series
More informationSLCD Technical Note TN-100. Programming the SLCD bitmap / macro flash memory in an embedded system
SLCD Technical Note TN-100 Programming the SLCD bitmap / macro flash memory in an embedded system December 3, 2004 Copyright Reach Technology Inc. 2004 All Rights Reserved Reach Technology, Inc. sales@reachtech.com
More informationEE445M/EE380L.6 Quiz 2 Spring 2017 Solution Page 1 of 5
EE445M/EE380L.6 Quiz 2 Spring 2017 Solution Page 1 of 5 First Name: Last Name: April 21, 2017, 10:00 to 10:50am Open book, open notes, calculator (no laptops, phones, devices with screens larger than a
More informationARM TrustZone for ARMv8-M for software engineers
ARM TrustZone for ARMv8-M for software engineers Ashok Bhat Product Manager, HPC and Server tools ARM Tech Symposia India December 7th 2016 The need for security Communication protection Cryptography,
More informationCOS 320. Compiling Techniques
Topic 5: Types COS 320 Compiling Techniques Princeton University Spring 2016 Lennart Beringer 1 Types: potential benefits (I) 2 For programmers: help to eliminate common programming mistakes, particularly
More information[537] I/O Devices/Disks. Tyler Harter
[537] I/O Devices/Disks Tyler Harter I/O Devices Motivation What good is a computer without any I/O devices? - keyboard, display, disks! We want: - H/W that will let us plug in different devices - OS that
More informationBuilding Whole Systems: an Overview
1 (29) Building Whole Systems: an Overview In this lecture: System specification, design, and synthesis Hardware/software co-design Work tips Design challenges and trade-offs 2 (29) Ideal flow (Informal)
More informationFINALTERM EXAMINATION Fall 2008 CS501- Advance Computer Architecture (Session - 1) Marks: 75
FINALTERM EXAMINATION Fall 2008 CS501- Advance Computer Architecture (Session - 1) Marks: 75 Question No: 1 ( Marks: 1 ) - Please choose one Which one of the following is the memory organization of SRC
More informationSoftware Development. Integrated Software Environment
Software Development Integrated Software Environment Source Code vs. Machine Code What is source code? Source code and object code refer to the "before" and "after" versions of a computer program that
More informationCS 322 Operating Systems Practice Midterm Questions
! CS 322 Operating Systems 1. Processes go through the following states in their lifetime. time slice ends Consider the following events and answer the questions that follow. Assume there are 5 processes,
More informationMemory, Data, & Addressing II CSE 351 Spring
Memory, Data, & Addressing II CSE 351 Spring 2018 http://xkcd.com/138/ Review Questions 1) If the word size of a machine is 64-bits, which of the following is usually true? (pick all that apply) a) 64
More informationDigital Blocks Semiconductor IP
Digital Blocks Semiconductor IP General Description The Digital Blocks LCD Controller IP Core interfaces a video image in frame buffer memory via the AMBA 3.0 / 4.0 AXI Protocol Interconnect to a 4K and
More informationRC32334/RC32332 Differences Between Z and Y Revisions
RC32334/RC32332 Differences Between Z and Y Revisions Application Note AN-350 By Paul Snell Revision History February 1, 2002: Initial publication. Background The RC32334/RC32332 are integrated processors
More information