EECS 700: Project Proposal TimerQueue Implementation for the HybridThread Framework Jason Agron

Slides:



Advertisements
Similar presentations
Real Time Versions of Linux Operating System Present by Tr n Duy Th nh Quách Phát Tài 1.
Advertisements

© 2007 Eaton Corporation. All rights reserved. LabVIEW State Machine Architectures Presented By Scott Sirrine Eaton Corporation.
purpose Search : automation methods for device driver development in IP-based embedded systems in order to achieve high reliability, productivity, reusability.
© 2004 Wayne Wolf Topics Task-level partitioning. Hardware/software partitioning.  Bus-based systems.
Using emulation for RTL performance verification
Thread Criticality Predictors for Dynamic Performance, Power, and Resource Management in Chip Multiprocessors Abhishek Bhattacharjee Margaret Martonosi.
ECE 720T5 Fall 2011 Cyber-Physical Systems Rodolfo Pellizzoni.
The Process Control Block From: A Process Control Block (PCB, also called Task Control Block or Task Struct) is.
Chapter 7 Protocol Software On A Conventional Processor.
ECE 526 – Network Processing Systems Design Software-based Protocol Processing Chapter 7: D. E. Comer.
© ABB Group Jun-15 Evaluation of Real-Time Operating Systems for Xilinx MicroBlaze CPU Anders Rönnholm.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
EECS 700 Project TimerQueue Implementation for the HybridThread Framework Jason Agron
UC Berkeley 1 Time dilation in RAMP Zhangxi Tan and David Patterson Computer Science Division UC Berkeley.
Define Embedded Systems Small (?) Application Specific Computer Systems.
Threads 1 CS502 Spring 2006 Threads CS-502 Spring 2006.
Chapter 13 Embedded Systems
Threads CSCI 444/544 Operating Systems Fall 2008.
Figure 1.1 Interaction between applications and the operating system.
Real-Time Kernels and Operating Systems. Operating System: Software that coordinates multiple tasks in processor, including peripheral interfacing Types.
University of Kansas Douglas Niehaus Information and Telecommunication Technology Center Electrical Engineering and Computer Science Department University.
Dipartimento di Informatica - Università di Verona Networked Embedded Systems The HW/SW/Network Cosimulation-based Design Flow Introduction Transaction.
1 Chapter 14 Embedded Processing Cores. 2 Overview RISC: Reduced Instruction Set Computer RISC-based processor: PowerPC, ARM and MIPS The embedded processor.
Race Conditions CS550 Operating Systems. Review So far, we have discussed Processes and Threads and talked about multithreading and MPI processes by example.
Technion Digital Lab Project Performance evaluation of Virtex-II-Pro embedded solution of Xilinx Students: Tsimerman Igor Firdman Leonid Firdman.
ThreadsThreads operating systems. ThreadsThreads A Thread, or thread of execution, is the sequence of instructions being executed. A process may have.
Lecture 7 Lecture 7: Hardware/Software Systems on the XUP Board ECE 412: Microcomputer Laboratory.
50.003: Elements of Software Construction Week 5 Basics of Threads.
Chapter 8 Windows Outline Programming Windows 2000 System structure Processes and threads in Windows 2000 Memory management The Windows 2000 file.
University of Kansas Electrical Engineering Computer Science Jerry James and Douglas Niehaus Information and Telecommunication Technology Center Electrical.
A Fast On-Chip Profiler Memory Roman Lysecky, Susan Cotterell, Frank Vahid* Department of Computer Science and Engineering University of California, Riverside.
Design and Characterization of TMD-MPI Ethernet Bridge Kevin Lam Professor Paul Chow.
Hardware Definitions –Port: Point of connection –Bus: Interface Daisy Chain (A=>B=>…=>X) Shared Direct Device Access –Controller: Device Electronics –Registers:
Eric Keller, Evan Green Princeton University PRESTO /22/08 Virtualizing the Data Plane Through Source Code Merging.
High Performance Computing & Communication Research Laboratory 12/11/1997 [1] Hyok Kim Performance Analysis of TCP/IP Data.
Three fundamental concepts in computer security: Reference Monitors: An access control concept that refers to an abstract machine that mediates all accesses.
SystemC and Levels of System Abstraction: Part I.
CprE / ComS 583 Reconfigurable Computing Prof. Joseph Zambreno Department of Electrical and Computer Engineering Iowa State University Lecture #21 – HW/SW.
Hardware-software Interface Xiaofeng Fan
Performance Characterization and Architecture Exploration of PicoRadio Data Link Layer Mei Xu and Rahul Shah EE249 Project Fall 2001 Mentor: Roberto Passerone.
Time Triggered Networks: use in space 2015 CCSDS spring SOIS Plenary 23 March 2015 Glenn Rakow/NASA-GSFC.
Copyright ©: University of Illinois CS 241 Staff1 Threads Systems Concepts.
Time Management.  Time management is concerned with OS facilities and services which measure real time, and is essential to the operation of timesharing.
Conformance Test Experiments for Distributed Real-Time Systems Rachel Cardell-Oliver Complex Systems Group Department of Computer Science & Software Engineering.
NC STATE UNIVERSITY 1 Feedback EDF Scheduling w/ Async. DVS Switching on the IBM Embedded PowerPC 405 LP Frank Mueller North Carolina State University,
1 Embedded Computer System Laboratory Systematic Embedded Software Gerneration from SystemC.
Introduction to Operating Systems and Concurrency.
Computer Network Lab. Korea University Computer Networks Labs Se-Hee Whang.
Chapter 13 – I/O Systems (Pgs ). Devices  Two conflicting properties A. Growing uniformity in interfaces (both h/w and s/w): e.g., USB, TWAIN.
Processes, Threads, and Process States. Programs and Processes  Program: an executable file (before/after compilation)  Process: an instance of a program.
FPGA-Based System Design: Chapter 7 Copyright  2004 Prentice Hall PTR Topics n Hardware/software co-design.
CCSDS SOIS Working Group Meeting – Berlin, Germany 14th of October 2008 Prototyping of CCSDS SOIS services on 1553 Bus Sev Gunes-Lasnet, Olivier Notebaert.
Platform Abstraction Group 3. Question How to deal with different types hardware and software platforms? What detail to expose to the programmer? What.
HyperThreading ● Improves processor performance under certain workloads by providing useful work for execution units that would otherwise be idle ● Duplicates.
Real-Time Operating System Design
Managing Processors Jeff Chase Duke University. The story so far: protected CPU mode user mode kernel mode kernel “top half” kernel “bottom half” (interrupt.
Time Management.  Time management is concerned with OS facilities and services which measure real time.  These services include:  Keeping track of.
System-on-Chip Design Homework Solutions
Where Testing Fails …. Problem Areas Stack Overflow Race Conditions Deadlock Timing Reentrancy.
Interrupts and Interrupt Handling David Ferry, Chris Gill CSE 522S - Advanced Operating Systems Washington University in St. Louis St. Louis, MO
Embedded Real-Time Systems Processing interrupts Lecturer Department University.
Prototyping of CCSDS SOIS services on 1553 Bus
15-740/ Computer Architecture Lecture 3: Performance
Fabric Interfaces Architecture – v4
The Component System … a bit further
CS 286 Computer Organization and Architecture
Xen: The Art of Virtualization
Hardware Support for Embedded Operating System Security
CS703 - Advanced Operating Systems
Interrupts and Interrupt Handling
Presentation transcript:

EECS 700: Project Proposal TimerQueue Implementation for the HybridThread Framework Jason Agron

Overview HybridThread Architecture. HybridThread Architecture. Background on “yielding” calls. Background on “yielding” calls. Timed vs. Untimed calls.Timed vs. Untimed calls. Background on nanosleep(). Background on nanosleep(). Proposed architecture. Proposed architecture. Conclusion. Conclusion. Questions. Questions.

HybridThread Architecture Hybrid architecture = CPU + FPGA. Hybrid architecture = CPU + FPGA. Unified programming model. Unified programming model. Threaded programming model.Threaded programming model. HW/SW co-design of OS services. HW/SW co-design of OS services. Precise, and deterministic behavior of OS components. Precise, and deterministic behavior of OS components. Good for embedded and RTOS systems.Good for embedded and RTOS systems.

HybridThread Architecture

“Yielding” System Calls Consider yield() and nanosleep() Consider yield() and nanosleep() Timed vs. Untimed  affects how a thread re-added to the R2R-Queue.Timed vs. Untimed  affects how a thread re-added to the R2R-Queue. Timed yield calls – i.e. nanosleep(). Timed yield calls – i.e. nanosleep(). Using software managed timer-queues.Using software managed timer-queues. Periodic management Periodic management Only managed at most once per system clock!Only managed at most once per system clock! Non-deterministic execution times. Non-deterministic execution times. Cache misses, branch mispredictions.Cache misses, branch mispredictions. Signal delivery, jitter due to “clock alignment”.Signal delivery, jitter due to “clock alignment”.

Nanosleep() POSIX specification: POSIX specification: Can sleep less than time specified.Can sleep less than time specified. Due to asynchronous signal delivery. Due to asynchronous signal delivery. Can sleep more than time specified.Can sleep more than time specified. Specified time is rounded up to resolution of system clock. Specified time is rounded up to resolution of system clock. Periodic queue management  missed timer events. Periodic queue management  missed timer events. Why is it even called NANOsleep? Why is it even called NANOsleep?

Proposed Solution Goal – REAL nanosecond resolution for thread sleep times w/o increased OS overhead. Goal – REAL nanosecond resolution for thread sleep times w/o increased OS overhead. Build a timer-queue IP core. Build a timer-queue IP core. HW implementation.HW implementation. Very fast, deterministic, constant queue management. Very fast, deterministic, constant queue management. Timer-events != CPU interrupts. Timer-events != CPU interrupts. HybridThread architecture allows for TQ to “talk” directly with TM and SCHED.HybridThread architecture allows for TQ to “talk” directly with TM and SCHED. Uniform interface for both SW and HW. Uniform interface for both SW and HW.

How it will work nanosleep(threadID,delta) nanosleep(threadID,delta) Call interacts with TimerQueue core.Call interacts with TimerQueue core. Adds an entry to a sorted queue.Adds an entry to a sorted queue. Calling thread “yields”Calling thread “yields” Time goes on  timer-events expire. Time goes on  timer-events expire. Upon expirationUpon expiration TQ sends add_thread message to the TM. TQ sends add_thread message to the TM. Single bus transaction.Single bus transaction. TQ removes timer-event entry, waits for more to expire. TQ removes timer-event entry, waits for more to expire.

Design Decisions Actual queue structure. Actual queue structure. Space vs. Time.Space vs. Time. Registers Registers Fast, parallel access.Fast, parallel access. Take up CLBs.Take up CLBs. BRAMs BRAMs Fast, sequential access.Fast, sequential access. Doesn’t take up CLBs.Doesn’t take up CLBs. Sorted vs. Unsorted.Sorted vs. Unsorted. “Monitor” the top of the queue vs. constant queue traversal. “Monitor” the top of the queue vs. constant queue traversal.

Conclusion FPGA implementation of TimerQueue FPGA implementation of TimerQueue Allows for TQ to monitor events at the rate of the FPGA clock (~100 MHz).Allows for TQ to monitor events at the rate of the FPGA clock (~100 MHz). Accurate nanosecond sleep times!!! Accurate nanosecond sleep times!!! Allows for uniform access of TQ services to both SW and HW threads!Allows for uniform access of TQ services to both SW and HW threads! Provides an abstraction of the FPGA resources for the everyday programmer!Provides an abstraction of the FPGA resources for the everyday programmer!