Devil: an IDL for Hardware Programming

Size: px
Start display at page:

Download "Devil: an IDL for Hardware Programming"

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 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 information

Language Technology for Internet Telephony Service Creation

Language 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 information

Improving Driver Robustness : an Evaluation of the Devil Approach

Improving 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 information

Research Proposal. The Phoenix Project

Research 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 information

NDL: 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 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 information

PRESENTED BY: SANTOSH SANGUMANI & SHARAN NARANG

PRESENTED 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 information

Towards Verifiable Device Drivers: An Approach based on Domain-Specific Languages

Towards 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 information

Virtual 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. 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 information

On Designing a Target-Independent DSL for Safe OS Process Scheduling Components

On 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 information

Embedded System Design

Embedded 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 information

I/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) 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 information

Static program checking and verification

Static 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 information

Virtual 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. 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 information

Typed 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 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 information

CEC 450 Real-Time Systems

CEC 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 information

Spring 2017 :: CSE 506. Device Programming. Nima Honarmand

Spring 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 information

Cycle Approximate Simulation of RISC-V Processors

Cycle 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 information

Black-Box Program Specialization

Black-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 information

Debugging Your CUDA Applications With CUDA-GDB

Debugging 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 information

PCI-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 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 information

Read section 8 of this document for detailed instructions on how to use this interface spec with LibUSB For OSX

Read 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 information

Understanding the Genetic Makeup of Linux Device Drivers

Understanding 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 information

Laddie: 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 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 information

Machine-Level Programming V: Unions and Memory layout

Machine-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 information

Page 1. Last Time. Today. Embedded Compilers. Compiler Requirements. What We Get. What We Want

Page 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 information

Survey. Motivation 29.5 / 40 class is required

Survey. 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 information

CSI31 Introduction to Computer Programming I. Dr. Sharon Persinger Fall

CSI31 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 information

TAG Word 0 Word 1 Word 2 Word 3 0x0A0 D2 55 C7 C8 0x0A0 FC FA AC C7 0x0A0 A5 A6 FF 00

TAG 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 information

The Device Driver Interface. Input/Output Devices. System Call Interface. Device Management Organization

The 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 information

Memory, Data, & Addressing I

Memory, 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 information

EEPROM Emulation with the ez80f91 MCU. Discussion

EEPROM 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 information

Imperas 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 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 information

Computer Systems A Programmer s Perspective 1 (Beta Draft)

Computer 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 information

MODERN OPERATING SYSTEMS. Chapter 3 Memory Management

MODERN 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 information

Chapters 9 & 10: Memory Management and Virtual Memory

Chapters 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 information

Use Dynamic Analysis Tools on Linux

Use 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 information

Boot Loader. Bootloader

Boot 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 information

Chapter 9 Interrupt Controller

Chapter 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 information

GPU Memory Model Overview

GPU 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 information

ORACLE MESSAGEQ ORACLE DATA SHEET KEY FEATURES AND BENEFITS

ORACLE 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 information

Project 3: An Introduction to File Systems. COP4610 Florida State University

Project 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 information

NEW CEIBO DEBUGGER. Menus and Commands

NEW 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 information

SPIN: Seamless Operating System Integration of Peer-to-Peer DMA Between SSDs and GPUs. Shai Bergman Tanya Brokhman Tzachi Cohen Mark Silberstein

SPIN: 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 information

The Ensoniq EPS/EPS16+/ASR-10 Bank Format

The 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 information

SimpleLink 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 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 information

1. Draw and explain program flow of control without and with interrupts. [16]

1. 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

(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 information

CPCI-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 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 information

DØ 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 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 information

Hierarchical vs. Flat Component Models

Hierarchical 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 information

CSE351: Memory, Data, & Addressing I

CSE351: 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 information

NDL: A Domain-Specific Language for Device Drivers

NDL: 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 information

Implementing Secure Software Systems on ARMv8-M Microcontrollers

Implementing 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 information

VME64M VME64 MASTER CONTROLLER. Version 1.1

VME64M 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 information

Testing & Debugging TB-1

Testing & 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 information

ArduCAM-M-2MP Camera Shield

ArduCAM-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 information

Runtime Checking for Program Verification Systems

Runtime 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 information

Device I/O Programming

Device 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 information

Computer Labs: I/O and Interrupts

Computer 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 information

FieldServer Driver - Ethernet FS EtherNet/IP

FieldServer 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 information

I/O Systems. Jo, Heeseung

I/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 information

Introduction 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 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 information

Chapter 8: Memory Management

Chapter 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 information

Optimal 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 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 information

SYSTEMS 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 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 information

Introduction 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 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 information

netx 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 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 information

Introduction to Computer Systems and Operating Systems

Introduction 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 information

What is NXTCam5. What you will need before using NXTCam5. NXTCam5 User Guide

What 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 information

The Mathemagix compiler. Joris van der Hoeven, Palaiseau

The 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 information

May 19, Answer pieces in italics were not required to receive full points.

May 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 information

The Mathemagix compiler. Joris van der Hoeven, Palaiseau 2011

The 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 information

Spot: A Programming Language for Verified Flight Software

Spot: 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 information

CprE 288 Spring 2014 Homework 5 Due Fri. Feb. 21

CprE 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 information

Solutions - 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 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 information

VS1053B PCM Mixer. VSMPG VLSI Solution Audio Decoder. Project Code: Project Name:

VS1053B 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 information

Wire-Frame 3D Graphics Accelerator IP Core. Specification

Wire-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 information

USER MANUAL NATHANIEL THWAITES-MCGOWAN

USER 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 Τεχνολογία Υπολογισμού ΗΜΥ 317 Τεχνολογία Υπολογισμού Εαρινό Εξάμηνο 2008 ΙΑΛΕΞΕΙΣ 18-19: Έλεγχος και Πιστοποίηση Λειτουργίας ΧΑΡΗΣ ΘΕΟΧΑΡΙ ΗΣ Λέκτορας ΗΜΜΥ (ttheocharides@ucy.ac.cy) [Προσαρμογή από Ian Sommerville, Software

More information

USING 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 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 information

C Refresher, Advance C, Coding Standard, Misra C Compliance & Real-time Programming

C 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 information

CS 471 Operating Systems. Yue Cheng. George Mason University Fall 2017

CS 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 information

Best Practices in Programming

Best 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 information

Universal Serial Bus Host Interface on an FPGA

Universal 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 information

Outline. Introduction. Survey of Device Driver Management in Real-Time Operating Systems

Outline. 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 information

System On Chip: Design & Modelling (SOC/DAM) 1 R: Verilog RTL Design with examples.

System 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 information

Laboratory Exercise 8

Laboratory 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 information

SLCD 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 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 information

EE445M/EE380L.6 Quiz 2 Spring 2017 Solution Page 1 of 5

EE445M/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 information

ARM TrustZone for ARMv8-M for software engineers

ARM 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 information

COS 320. Compiling Techniques

COS 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 [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 information

Building Whole Systems: an Overview

Building 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 information

FINALTERM EXAMINATION Fall 2008 CS501- Advance Computer Architecture (Session - 1) Marks: 75

FINALTERM 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 information

Software Development. Integrated Software Environment

Software 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 information

CS 322 Operating Systems Practice Midterm Questions

CS 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 information

Memory, Data, & Addressing II CSE 351 Spring

Memory, 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 information

Digital Blocks Semiconductor IP

Digital 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 information

RC32334/RC32332 Differences Between Z and Y Revisions

RC32334/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