On Demand Loading of Code in MMUless Embedded System
|
|
- Barbra Mitchell
- 8 years ago
- Views:
Transcription
1 On Demand Loading of Code in MMUless Embedded System Sunil R Gandhi *. Chetan D Pachange, Jr.** Mandar R Vaidya***, Swapnilkumar S Khorate**** *Pune Institute of Computer Technology, Pune INDIA (Mob ; sunil.gandhi007@gmail.com). ** Pune Institute of Computer Technology, Pune INDIA ( pachange.chetan@gmail.com) *** Pune Institute of Computer Technology, Pune INDIA ( mandar2174@gmail.com) **** Pune Institute of Computer Technology, Pune INDIA ( swapnilkhorate@gmail.com) } Abstract: The paper proposes a technique for on-demand loading of code in MMUless embedded system using binary re-writing. This technique will be used for re-writing of code so that it runs on low-end embedded systems that lack MMU-support. Such re-writing of code can be helpful for processors having constrained on-chip memory and lack support for virtualization. This will reduce cost and add functionality to hardware using system on chip. We first analyze the problem using Mathematical modeling and based on analysis we propose the system for modifying the code. We put forth problems that need to be handled during loading of code and possible solutions to them. 1. INTRODUCTION Many embedded applications use low end processors due to its low cost and low power consumption. These processors usually have constrained resources. They lack MMU support, are small in size and have less on-chip memory. Processor speed is increasing and so is possibility of running complex programs on these embedded processors. But memory size in low-end processor remains the same. Even though processing power is present, this power cannot be utilized due to lack of memory and MMU support. Usually embedded system programmers reinvent on-demand loading techniques every time they face problem of memory constraint. We try to solve this problem by our code generation mechanism which will support on demand loading. Thus code modified by our system can run even if it is bigger than on-chip RAM available. This will reduce the need of external RAM and thus will also reduce its cost. 2. APPROACHES FOR ON-DEMAND LOADING OF CODE On demand loading in MMUless processors can be achieved using two approaches: 1) Static translation and 2) Dynamic Translation. Dynamic translation is done using technique called Dynamic Binary Translation (DBT). This technique translates the code at run-time just before it gets executed. This type of translation incurs run-time overhead of translating code every time it jumps to new location which is not already translated. This overhead can be reduced by use of code cache. But since low-end processors like ARM cortex-m3 don t have cache, huge run-time overhead will be incurred in DBT. Also the memory required for DBT is large compared to static translation and we are designing system for low-end microcontrollers which have less on-chip RAM, thus use of dynamic translation is not recommend. But, since DBT and static translation have some problems in common, we have reviewed DBT and tried to understand its working. Static translation is done during compilation of code. In this the modified binary is generated which can run even if its size is bigger than size of RAM. Although static translation does not incur runtime overhead, it can be used only for code regions that can be identified statically. It cannot be used for self modifying code and indirect control transfers. Since, Both approaches have their limitations, we are using both approaches in our system, so that minimum overhead is incurred and all cases are handled. We are modifying code during its compilation, But for indirect control transfers, a fault will be generated which will handle on demand loading. 3.1 System on chip 3. RELATED TERMS The System-on-a-chip or system on chip (SoC or SOC) is integrated circuit (IC) which will have all the functionality like flash, RAM, processor on single integrated chip. This is done to reduce the size, cost and power consumption of embedded devices. It also increases speed of execution. Use of SOC in embedded systems is increasing day by day.
2 .3.2 Binary re-writing A binary re-writing means modifying a program to functionally equivalent program which has some extra features like it is optimized or has smaller code size. We are using Binary re-writing to get new program which can be executed on RAM smaller than program size..3.3 On-demand loading of code A code is loaded into memory only when that code is referenced. Such type of loading of code is called on-demand loading. 4. MATHEMATICAL MODELLING Mathematical modelling is way of expressing a problem in form of set theory, relations and functions. This way of expressing problem helps us to understand system better and determine its input, output, success, failure and other related parameters. It helps in finding out efficient ways of implementing the system and various algorithms using which it can be implemented. 4.1 Mathematical Model Following is mathematical model of loading data in size constraint embedded system, Let S be a System, S ={ Mc 1,Mc 2, R size, P size, P, P,P, Pc, Ap, N, M } Mc 1: Input Binary Program Mc 2 : : Output Binary Program R size : Ram size P size : Page size P: Set of partitions in secondary memory P : Set of partitions in Ram P : Set of modified partitions Pc : Program Counter Ap :Active partition N : Number of partitions that Ram can hold M : Number of partitions present in program Here, each partition is of same and fixed size. P = { P 1, P 2, , P n } where 0<n< constant P i = { I 1, I 2, , I n } I i = { Ad, Mne, [Reg], [X] } Where, Ad = Address Mne = Mnemonic Reg = Register X = Register memory address Mapping Functions A Initially, P = { ɸ } where P = set of partitions modified RAM F (PC, A p ) I i (1) Program counter PC fetches the instruction at address from active partition A p. F 1 ( I i ) P j (2) Instruction I i is executed and for branch gives the next required partition. F 2 ( PC, P j ) A p (3) Routine to denote partition is in RAM that makes partition active F 2 ( PC, P j, P ) A p (4) Loads partition from secondary memory into primary memory. F 3 ( P ) P (5) Denotes partitions loaded into the RAM. F 4 ( P) P (6) Denotes the partition is modified Polymorphism F 2 ( PC, P j ) A p F 2 ( PC, P j, P ) A p
3 If the required partitions are in RAM then processor will fetch next instruct otherwise it will load partition from secondary memory jump to loaded functions. In this system the corresponding address instruction will be replaced by the code to handle the memory access. limitations. So, we will use both approaches to get optimum performance and ensure that all cases like indirect control transfer are handled. Fig1 shows all phase s code has to go through before on-demand loading. Thus our system works at two phases namely 1) Code Generation Phase and Search Once the address have been modified, the list has to be searched sequentially and compared with the initial address of current instruction and if an operand has address greater than the one present in initial address register modify the address Success State P = { P 1, P 2, P , P n } All the partitions have been successfully modified Failure State F 1 ( I i ) P j where j>m Or If the address in the PC is out of program i.e. invalid address then system goes in invalid state and in order to come back to valid state it aborts the execution.. 2) Execution Phase. Working of These phases is as follows: 5.1 Code Generation Phase: Our System works at code generation phase as shown in fig.1. In this phase, we link an (interrupt service routine) ISR to input code of an exception which will be generated whenever there is jump no execute (NX) region. Then we will modify all addresses in binary file to point to NX region. Following are the steps followed in Code Generation Phase: 1. Write ISR routine for NX fault and link it to input code. 2. Change address of each jump to point to NX region. We can trick compiler in doing this by placing our code in NX region by modifying linker script System constraint Output file will be produced for single target machine architecture. Fig 1: Phases of code for on-demand loading 5. ON DEMAND LOADING IN SIZE CONSTRAINED MEMORY We can achieve on-demand loading of code using both static and dynamic approaches. But they both have their own Fig 2: flow of function call in execution phase 5.2 Execution Phase:
4 In this phase, we have to handle all control transfer instructions (CTI) and ensure that code is loaded in RAM before executing it. Also the context in which the CTI instruction is executed must not change. Otherwise it may result in erroneous results especially in case of conditional jumps. This can be achieved through exceptions or faults. Before every control transfer instruction NX fault is generated which will check if code to be executed is loaded in RAM or not. We ensure that fault is occurred by changing branch addresses to point to NX region in code generation phase. Since exception handlers will be frequently used, we will always keep all the data and exception handlers in RAM. The Table is created and Initialized with name of every function and appropriate values of logical address, physical address, used bit and size of function.execution of code in MMUless processor takes place as follows: 1. Every instruction is executed step by step until control transfer instruction. 2. Since we have modified addresses in CTI instructions, NX fault will be generated. 3. Inside Fault we can easily re-generate address of branch instruction. 4. Check whether corresponding function is present in RAM or not. 5. If it is present in RAM then find actual address of loaded function. 6. Copy the jump instruction to other location with actual address. We can use table based approach for replacement of algorithm. In this approach we will store logical address, physical address, used bit and size of function in table at bottom of RAM. Logical address represents the address which is present in actual code. This address will point to NX region. Physical address represents address where function is loaded in RAM. Whenever there is nesting of functions calling function used bit is set to one. This function is not replaced from memory. In this approach we can also consider the size of free memory above and below a function to be replaced. This helps in reducing external fragmentation. But it cannot be completely avoided. We can also use buddy system for loading of functions. Fragmentation problem will be solved using buddy system. 6. LIMITATIONS This algorithm will not work in 2 conditions. These conditions are as follows: 1. Whenever size of one function is bigger than RAM our algorithm fails. 2. Whenever all the functions are nested. And total size of active functions is greater than RAM. But both these conditions are very rare. So, according to us, it is not necessary to handle these conditions as it would increase execution overhead. 7. Change Link register to point to this instruction. 8. And execute the branch instruction to transfer control to loaded code. 9. Else 10. Use Buddy system or any other replacement algorithm to load the function. 11. Copy the jump instruction to other location with actual address. 12. Change Link register to point to this instruction. 13. And execute the branch instruction to transfer control to loaded code. This flow of execution is diagrammatically represented in Fig.2. It shows processing done whenever there is a function call. 6. REPLACEMENT ALGORITHMS 7. RELATED WORK Hae-woo Park, Kyoungjoo Oh, Soyoung Park, Myoung-min Sim, Soonhoi Ha. in Dynamic code overlay of SDFmodeled programs on low-end embedded systems have proposed 2 techniques for Dynamic loading in MMU-less embedded systems namely full shadowing and DBT Full shadowing: - This is a most commonly used technique for running code in MMU-less embedded systems. Full shadowing copies the entire contents of a program s binary from flash to main memory. This approach can be adopted when the size of main memory is greater than size of program's binary. Also with this approach the loading time of program increases as it has to load complete program beforehand. DBT: - Dynamic binary translation looks at a short sequence of code typically on the order of a single basic block then translates it and caches the resulting sequence. Code is only translated as it is discovered and when possible, and branch instructions are made to point to already translated and saved code (memorization).
5 1. This technique is difficult to implement in size constraints embedded system because of following reasons: 2. It requires setting up table for mapping between addresses in cache and original program. 3. There must be a DBT present in cache always to translate the instruction in cache. 4. MMU support is not present. Due to constrained memory it is difficult to use DBT for dynamic loading. Siddharth Choudhuri and Tony Givargis in Software virtual memory management for MMU-less embedded systems shows various approaches in which data can be virtualized, their advantages and disadvantages. But it only explains virtualization of data. The system proposed in this paper is applicable to both data and code. 8. CONCLUSIONS This paper presents a concept for dynamic loading of code and data in MMU-less embedded system using binary rewriting. 9. REFERENCES Moore, Hae-woo Park, Kyoungjoo Oh, Soyoung Park, Myoung-min Sim, Soonhoi Ha., Dynamic code overlay of SDF-modeled programs on low-end embedded systems. In 1st conference on Design, automation and test, in Europe. José A. Baiocchi, Bruce R. Childers., Demand code paging for NAND flash in MMU-less embedded systems In Department of Computer Science University of Pittsburgh Pittsburgh, Pennsylvania USA. Mathias Payer, Thomas R Gross., Generating lowoverhead dynamic binary translators. In Proceedings of the 3rd Annual Haifa Experimental Systems Conference on SYSTOR 10. Siddharth Choudhuri and Tony Givargis., Software virtual memory management for MMU-less embedded systems. In Technical Report, Center for Embedded Computer Systems, University of California, Irvine.
OPERATING SYSTEM - VIRTUAL MEMORY
OPERATING SYSTEM - VIRTUAL MEMORY http://www.tutorialspoint.com/operating_system/os_virtual_memory.htm Copyright tutorialspoint.com A computer can address more memory than the amount physically installed
More informationOPERATING SYSTEM - MEMORY MANAGEMENT
OPERATING SYSTEM - MEMORY MANAGEMENT http://www.tutorialspoint.com/operating_system/os_memory_management.htm Copyright tutorialspoint.com Memory management is the functionality of an operating system which
More informationAn Introduction to the ARM 7 Architecture
An Introduction to the ARM 7 Architecture Trevor Martin CEng, MIEE Technical Director This article gives an overview of the ARM 7 architecture and a description of its major features for a developer new
More informationIntroducción. Diseño de sistemas digitales.1
Introducción Adapted from: Mary Jane Irwin ( www.cse.psu.edu/~mji ) www.cse.psu.edu/~cg431 [Original from Computer Organization and Design, Patterson & Hennessy, 2005, UCB] Diseño de sistemas digitales.1
More informationOverview of the Cortex-M3
CHAPTER Overview of the Cortex-M3 2 In This Chapter Fundamentals 11 Registers 12 Operation Modes 14 The Built-In Nested Vectored Interrupt Controller 15 The Memory Map 16 The Bus Interface 17 The MPU 18
More informationwhat operations can it perform? how does it perform them? on what kind of data? where are instructions and data stored?
Inside the CPU how does the CPU work? what operations can it perform? how does it perform them? on what kind of data? where are instructions and data stored? some short, boring programs to illustrate the
More informationADVANCED PROCESSOR ARCHITECTURES AND MEMORY ORGANISATION Lesson-12: ARM
ADVANCED PROCESSOR ARCHITECTURES AND MEMORY ORGANISATION Lesson-12: ARM 1 The ARM architecture processors popular in Mobile phone systems 2 ARM Features ARM has 32-bit architecture but supports 16 bit
More informationAdvanced Computer Architecture-CS501. Computer Systems Design and Architecture 2.1, 2.2, 3.2
Lecture Handout Computer Architecture Lecture No. 2 Reading Material Vincent P. Heuring&Harry F. Jordan Chapter 2,Chapter3 Computer Systems Design and Architecture 2.1, 2.2, 3.2 Summary 1) A taxonomy of
More informationPlug and Play Solution for AUTOSAR Software Components
Plug and Play Solution for AUTOSAR Software Components The interfaces defined in the AUTOSAR standard enable an easier assembly of the ECU application out of components from different suppliers. However,
More informationEmbedded Software development Process and Tools: Lesson-4 Linking and Locating Software
Embedded Software development Process and Tools: Lesson-4 Linking and Locating Software 1 1. Linker 2 Linker Links the compiled codes of application software, object codes from library and OS kernel functions.
More informationWe r e going to play Final (exam) Jeopardy! "Answers:" "Questions:" - 1 -
. (0 pts) We re going to play Final (exam) Jeopardy! Associate the following answers with the appropriate question. (You are given the "answers": Pick the "question" that goes best with each "answer".)
More informationTechnical Note. Micron NAND Flash Controller via Xilinx Spartan -3 FPGA. Overview. TN-29-06: NAND Flash Controller on Spartan-3 Overview
Technical Note TN-29-06: NAND Flash Controller on Spartan-3 Overview Micron NAND Flash Controller via Xilinx Spartan -3 FPGA Overview As mobile product capabilities continue to expand, so does the demand
More informationCPU Organization and Assembly Language
COS 140 Foundations of Computer Science School of Computing and Information Science University of Maine October 2, 2015 Outline 1 2 3 4 5 6 7 8 Homework and announcements Reading: Chapter 12 Homework:
More informationSoftware based Finite State Machine (FSM) with general purpose processors
Software based Finite State Machine (FSM) with general purpose processors White paper Joseph Yiu January 2013 Overview Finite state machines (FSM) are commonly used in electronic designs. FSM can be used
More informationCS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson
CS 3530 Operating Systems L02 OS Intro Part 1 Dr. Ken Hoganson Chapter 1 Basic Concepts of Operating Systems Computer Systems A computer system consists of two basic types of components: Hardware components,
More informationChapter 12. Development Tools for Microcontroller Applications
Chapter 12 Development Tools for Microcontroller Applications Lesson 01 Software Development Process and Development Tools Step 1: Development Phases Analysis Design Implementation Phase 1 Phase 2 Phase
More informationDesign and Implementation of an On-Chip timing based Permutation Network for Multiprocessor system on Chip
Design and Implementation of an On-Chip timing based Permutation Network for Multiprocessor system on Chip Ms Lavanya Thunuguntla 1, Saritha Sapa 2 1 Associate Professor, Department of ECE, HITAM, Telangana
More informationTopics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives
Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,
More informationComputer Architecture Lecture 2: Instruction Set Principles (Appendix A) Chih Wei Liu 劉 志 尉 National Chiao Tung University cwliu@twins.ee.nctu.edu.
Computer Architecture Lecture 2: Instruction Set Principles (Appendix A) Chih Wei Liu 劉 志 尉 National Chiao Tung University cwliu@twins.ee.nctu.edu.tw Review Computers in mid 50 s Hardware was expensive
More informationNIOS II Based Embedded Web Server Development for Networking Applications
NIOS II Based Embedded Web Server Development for Networking Applications 1 Sheetal Bhoyar, 2 Dr. D. V. Padole 1 Research Scholar, G. H. Raisoni College of Engineering, Nagpur, India 2 Professor, G. H.
More informationPeter J. Denning, Naval Postgraduate School, Monterey, California
VIRTUAL MEMORY Peter J. Denning, Naval Postgraduate School, Monterey, California January 2008 Rev 6/5/08 Abstract: Virtual memory is the simulation of a storage space so large that users do not need to
More informationComputer Systems Structure Main Memory Organization
Computer Systems Structure Main Memory Organization Peripherals Computer Central Processing Unit Main Memory Computer Systems Interconnection Communication lines Input Output Ward 1 Ward 2 Storage/Memory
More informationEmbedded Software development Process and Tools: Lesson-3 Host and Target Machines
Embedded Software development Process and Tools: Lesson-3 Host and Target Machines 1 1. Host-Target Based Development Approach 2 Host-Target System Development Approach During development process, a host
More informationARM Microprocessor and ARM-Based Microcontrollers
ARM Microprocessor and ARM-Based Microcontrollers Nguatem William 24th May 2006 A Microcontroller-Based Embedded System Roadmap 1 Introduction ARM ARM Basics 2 ARM Extensions Thumb Jazelle NEON & DSP Enhancement
More informationVirtualization in the ARMv7 Architecture Lecture for the Embedded Systems Course CSD, University of Crete (May 20, 2014)
Virtualization in the ARMv7 Architecture Lecture for the Embedded Systems Course CSD, University of Crete (May 20, 2014) ManolisMarazakis (maraz@ics.forth.gr) Institute of Computer Science (ICS) Foundation
More informationMICROPROCESSOR AND MICROCOMPUTER BASICS
Introduction MICROPROCESSOR AND MICROCOMPUTER BASICS At present there are many types and sizes of computers available. These computers are designed and constructed based on digital and Integrated Circuit
More informationMICROPROCESSOR. Exclusive for IACE Students www.iace.co.in iacehyd.blogspot.in Ph: 9700077455/422 Page 1
MICROPROCESSOR A microprocessor incorporates the functions of a computer s central processing unit (CPU) on a single Integrated (IC), or at most a few integrated circuit. It is a multipurpose, programmable
More information(Refer Slide Time: 00:01:16 min)
Digital Computer Organization Prof. P. K. Biswas Department of Electronic & Electrical Communication Engineering Indian Institute of Technology, Kharagpur Lecture No. # 04 CPU Design: Tirning & Control
More informationChapter 7 Memory Management
Operating Systems: Internals and Design Principles Chapter 7 Memory Management Eighth Edition William Stallings Frame Page Segment A fixed-length block of main memory. A fixed-length block of data that
More informationSolution: start more than one instruction in the same clock cycle CPI < 1 (or IPC > 1, Instructions per Cycle) Two approaches:
Multiple-Issue Processors Pipelining can achieve CPI close to 1 Mechanisms for handling hazards Static or dynamic scheduling Static or dynamic branch handling Increase in transistor counts (Moore s Law):
More informationİSTANBUL AYDIN UNIVERSITY
İSTANBUL AYDIN UNIVERSITY FACULTY OF ENGİNEERİNG SOFTWARE ENGINEERING THE PROJECT OF THE INSTRUCTION SET COMPUTER ORGANIZATION GÖZDE ARAS B1205.090015 Instructor: Prof. Dr. HASAN HÜSEYİN BALIK DECEMBER
More informationComputer Architecture
Computer Architecture Slide Sets WS 2013/2014 Prof. Dr. Uwe Brinkschulte M.Sc. Benjamin Betting Part 11 Memory Management Computer Architecture Part 11 page 1 of 44 Prof. Dr. Uwe Brinkschulte, M.Sc. Benjamin
More informationSOS: Software-Based Out-of-Order Scheduling for High-Performance NAND Flash-Based SSDs
SOS: Software-Based Out-of-Order Scheduling for High-Performance NAND -Based SSDs Sangwook Shane Hahn, Sungjin Lee, and Jihong Kim Department of Computer Science and Engineering, Seoul National University,
More informationAn Overview of Stack Architecture and the PSC 1000 Microprocessor
An Overview of Stack Architecture and the PSC 1000 Microprocessor Introduction A stack is an important data handling structure used in computing. Specifically, a stack is a dynamic set of elements in which
More informationChapter 01: Introduction. Lesson 02 Evolution of Computers Part 2 First generation Computers
Chapter 01: Introduction Lesson 02 Evolution of Computers Part 2 First generation Computers Objective Understand how electronic computers evolved during the first generation of computers First Generation
More informationNAND Flash FAQ. Eureka Technology. apn5_87. NAND Flash FAQ
What is NAND Flash? What is the major difference between NAND Flash and other Memory? Structural differences between NAND Flash and NOR Flash What does NAND Flash controller do? How to send command to
More informationException and Interrupt Handling in ARM
Exception and Interrupt Handling in ARM Architectures and Design Methods for Embedded Systems Summer Semester 2006 Author: Ahmed Fathy Mohammed Abdelrazek Advisor: Dominik Lücke Abstract We discuss exceptions
More information8-Bit Flash Microcontroller for Smart Cards. AT89SCXXXXA Summary. Features. Description. Complete datasheet available under NDA
Features Compatible with MCS-51 products On-chip Flash Program Memory Endurance: 1,000 Write/Erase Cycles On-chip EEPROM Data Memory Endurance: 100,000 Write/Erase Cycles 512 x 8-bit RAM ISO 7816 I/O Port
More informationA3 Computer Architecture
A3 Computer Architecture Engineering Science 3rd year A3 Lectures Prof David Murray david.murray@eng.ox.ac.uk www.robots.ox.ac.uk/ dwm/courses/3co Michaelmas 2000 1 / 1 6. Stacks, Subroutines, and Memory
More informationHow To Trace
CS510 Software Engineering Dynamic Program Analysis Asst. Prof. Mathias Payer Department of Computer Science Purdue University TA: Scott A. Carr Slides inspired by Xiangyu Zhang http://nebelwelt.net/teaching/15-cs510-se
More informationFull and Para Virtualization
Full and Para Virtualization Dr. Sanjay P. Ahuja, Ph.D. 2010-14 FIS Distinguished Professor of Computer Science School of Computing, UNF x86 Hardware Virtualization The x86 architecture offers four levels
More informationPROGRAMMABLE LOGIC CONTROLLERS Unit code: A/601/1625 QCF level: 4 Credit value: 15 OUTCOME 3 PART 1
UNIT 22: PROGRAMMABLE LOGIC CONTROLLERS Unit code: A/601/1625 QCF level: 4 Credit value: 15 OUTCOME 3 PART 1 This work covers part of outcome 3 of the Edexcel standard module: Outcome 3 is the most demanding
More information3 SOFTWARE AND PROGRAMMING LANGUAGES
3 SOFTWARE AND PROGRAMMING LANGUAGES 3.1 INTRODUCTION In the previous lesson we discussed about the different parts and configurations of computer. It has been mentioned that programs or instructions have
More informationHardware Assisted Virtualization
Hardware Assisted Virtualization G. Lettieri 21 Oct. 2015 1 Introduction In the hardware-assisted virtualization technique we try to execute the instructions of the target machine directly on the host
More informationKeil C51 Cross Compiler
Keil C51 Cross Compiler ANSI C Compiler Generates fast compact code for the 8051 and it s derivatives Advantages of C over Assembler Do not need to know the microcontroller instruction set Register allocation
More informationVirtual vs Physical Addresses
Virtual vs Physical Addresses Physical addresses refer to hardware addresses of physical memory. Virtual addresses refer to the virtual store viewed by the process. virtual addresses might be the same
More informationMemory Isolation in Many-Core Embedded Systems
Memory Isolation in Many-Core Embedded Systems Juan Zamorano and Juan A. de la Puente Universidad Politécnica de Madrid (UPM), Abstract. The current approach to developing mixed-criticality systems is
More information150127-Microprocessor & Assembly Language
Chapter 3 Z80 Microprocessor Architecture The Z 80 is one of the most talented 8 bit microprocessors, and many microprocessor-based systems are designed around the Z80. The Z80 microprocessor needs an
More informationAn Introduction to Computer Science and Computer Organization Comp 150 Fall 2008
An Introduction to Computer Science and Computer Organization Comp 150 Fall 2008 Computer Science the study of algorithms, including Their formal and mathematical properties Their hardware realizations
More informationEmbedded Software development Process and Tools:
Embedded Software development Process and Tools: Lesson-2 Integrated Development Environment (IDE) 1 1. IDE 2 Consists of Simulators editors, compilers, assemblers, etc., IDE 3 emulators logic analyzers
More informationMemory Management Outline. Background Swapping Contiguous Memory Allocation Paging Segmentation Segmented Paging
Memory Management Outline Background Swapping Contiguous Memory Allocation Paging Segmentation Segmented Paging 1 Background Memory is a large array of bytes memory and registers are only storage CPU can
More informationManagement Challenge. Managing Hardware Assets. Central Processing Unit. What is a Computer System?
Management Challenge Managing Hardware Assets What computer processing and storage capability does our organization need to handle its information and business transactions? What arrangement of computers
More informationAN1229. Class B Safety Software Library for PIC MCUs and dspic DSCs OVERVIEW OF THE IEC 60730 STANDARD INTRODUCTION
Class B Safety Software Library for PIC MCUs and dspic DSCs AN1229 Authors: Veena Kudva & Adrian Aur Microchip Technology Inc. OVERVIEW OF THE IEC 60730 STANDARD INTRODUCTION This application note describes
More informationFastboot Techniques for x86 Architectures. Marcus Bortel Field Application Engineer QNX Software Systems
Fastboot Techniques for x86 Architectures Marcus Bortel Field Application Engineer QNX Software Systems Agenda Introduction BIOS and BIOS boot time Fastboot versus BIOS? Fastboot time Customizing the boot
More informationOperating Systems CSE 410, Spring 2004. File Management. Stephen Wagner Michigan State University
Operating Systems CSE 410, Spring 2004 File Management Stephen Wagner Michigan State University File Management File management system has traditionally been considered part of the operating system. Applications
More informationFPGA area allocation for parallel C applications
1 FPGA area allocation for parallel C applications Vlad-Mihai Sima, Elena Moscu Panainte, Koen Bertels Computer Engineering Faculty of Electrical Engineering, Mathematics and Computer Science Delft University
More informationHaving read this workbook you should be able to: recognise the arrangement of NAND gates used to form an S-R flip-flop.
Objectives Having read this workbook you should be able to: recognise the arrangement of NAND gates used to form an S-R flip-flop. describe how such a flip-flop can be SET and RESET. describe the disadvantage
More informationHY345 Operating Systems
HY345 Operating Systems Recitation 2 - Memory Management Solutions Panagiotis Papadopoulos panpap@csd.uoc.gr Problem 7 Consider the following C program: int X[N]; int step = M; //M is some predefined constant
More informationMPSoC Designs: Driving Memory and Storage Management IP to Critical Importance
MPSoC Designs: Driving Storage Management IP to Critical Importance Design IP has become an essential part of SoC realization it is a powerful resource multiplier that allows SoC design teams to focus
More informationChapter 1 Computer System Overview
Operating Systems: Internals and Design Principles Chapter 1 Computer System Overview Eighth Edition By William Stallings Operating System Exploits the hardware resources of one or more processors Provides
More informationDemand Paging and the Advantages of DBT
Demand Code Paging for NAND Flash in MMU-less Embedded Systems José A. Baiocchi and Bruce R. Childers Department of Computer Science University of Pittsburgh {baiocchi,childers}@cs.pitt.edu Abstract NAND
More informationInstruction Set Design
Instruction Set Design Instruction Set Architecture: to what purpose? ISA provides the level of abstraction between the software and the hardware One of the most important abstraction in CS It s narrow,
More informationMore on Pipelining and Pipelines in Real Machines CS 333 Fall 2006 Main Ideas Data Hazards RAW WAR WAW More pipeline stall reduction techniques Branch prediction» static» dynamic bimodal branch prediction
More informationa storage location directly on the CPU, used for temporary storage of small amounts of data during processing.
CS143 Handout 18 Summer 2008 30 July, 2008 Processor Architectures Handout written by Maggie Johnson and revised by Julie Zelenski. Architecture Vocabulary Let s review a few relevant hardware definitions:
More informationChapter 2 Basic Structure of Computers. Jin-Fu Li Department of Electrical Engineering National Central University Jungli, Taiwan
Chapter 2 Basic Structure of Computers Jin-Fu Li Department of Electrical Engineering National Central University Jungli, Taiwan Outline Functional Units Basic Operational Concepts Bus Structures Software
More informationCPU Organisation and Operation
CPU Organisation and Operation The Fetch-Execute Cycle The operation of the CPU 1 is usually described in terms of the Fetch-Execute cycle. 2 Fetch-Execute Cycle Fetch the Instruction Increment the Program
More information18-447 Computer Architecture Lecture 3: ISA Tradeoffs. Prof. Onur Mutlu Carnegie Mellon University Spring 2013, 1/18/2013
18-447 Computer Architecture Lecture 3: ISA Tradeoffs Prof. Onur Mutlu Carnegie Mellon University Spring 2013, 1/18/2013 Reminder: Homeworks for Next Two Weeks Homework 0 Due next Wednesday (Jan 23), right
More informationFine-Grained User-Space Security Through Virtualization. Mathias Payer and Thomas R. Gross ETH Zurich
Fine-Grained User-Space Security Through Virtualization Mathias Payer and Thomas R. Gross ETH Zurich Motivation Applications often vulnerable to security exploits Solution: restrict application access
More informationLumousoft Visual Programming Language and its IDE
Lumousoft Visual Programming Language and its IDE Xianliang Lu Lumousoft Inc. Waterloo Ontario Canada Abstract - This paper presents a new high-level graphical programming language and its IDE (Integration
More informationCSE 141L Computer Architecture Lab Fall 2003. Lecture 2
CSE 141L Computer Architecture Lab Fall 2003 Lecture 2 Pramod V. Argade CSE141L: Computer Architecture Lab Instructor: TA: Readers: Pramod V. Argade (p2argade@cs.ucsd.edu) Office Hour: Tue./Thu. 9:30-10:30
More informationThomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation
Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science updated 03/08/2012 Unit 1: JKarel 8 weeks http://www.fcps.edu/is/pos/documents/hs/compsci.htm
More informationProgramming Logic controllers
Programming Logic controllers Programmable Logic Controller (PLC) is a microprocessor based system that uses programmable memory to store instructions and implement functions such as logic, sequencing,
More informationCHAPTER 1 ENGINEERING PROBLEM SOLVING. Copyright 2013 Pearson Education, Inc.
CHAPTER 1 ENGINEERING PROBLEM SOLVING Computing Systems: Hardware and Software The processor : controls all the parts such as memory devices and inputs/outputs. The Arithmetic Logic Unit (ALU) : performs
More informationARM Virtualization: CPU & MMU Issues
ARM Virtualization: CPU & MMU Issues Prashanth Bungale, Sr. Member of Technical Staff 2010 VMware Inc. All rights reserved Overview Virtualizability and Sensitive Instructions ARM CPU State Sensitive Instructions
More informationThe Classical Architecture. Storage 1 / 36
1 / 36 The Problem Application Data? Filesystem Logical Drive Physical Drive 2 / 36 Requirements There are different classes of requirements: Data Independence application is shielded from physical storage
More information1 The Java Virtual Machine
1 The Java Virtual Machine About the Spec Format This document describes the Java virtual machine and the instruction set. In this introduction, each component of the machine is briefly described. This
More informationAutomatic Logging of Operating System Effects to Guide Application-Level Architecture Simulation
Automatic Logging of Operating System Effects to Guide Application-Level Architecture Simulation Satish Narayanasamy, Cristiano Pereira, Harish Patil, Robert Cohn, and Brad Calder Computer Science and
More informationCHAPTER 7: The CPU and Memory
CHAPTER 7: The CPU and Memory The Architecture of Computer Hardware, Systems Software & Networking: An Information Technology Approach 4th Edition, Irv Englander John Wiley and Sons 2010 PowerPoint slides
More informationEMBEDDED SYSTEM BASICS AND APPLICATION
EMBEDDED SYSTEM BASICS AND APPLICATION TOPICS TO BE DISCUSSED System Embedded System Components Classifications Processors Other Hardware Software Applications 2 INTRODUCTION What is a system? A system
More informationELEC 5260/6260/6266 Embedded Computing Systems
ELEC 5260/6260/6266 Embedded Computing Systems Spring 2016 Victor P. Nelson Text: Computers as Components, 3 rd Edition Prof. Marilyn Wolf (Georgia Tech) Course Topics Embedded system design & modeling
More informationC Programming. for Embedded Microcontrollers. Warwick A. Smith. Postbus 11. Elektor International Media BV. 6114ZG Susteren The Netherlands
C Programming for Embedded Microcontrollers Warwick A. Smith Elektor International Media BV Postbus 11 6114ZG Susteren The Netherlands 3 the Table of Contents Introduction 11 Target Audience 11 What is
More informationProcessor Architectures
ECPE 170 Jeff Shafer University of the Pacific Processor Architectures 2 Schedule Exam 3 Tuesday, December 6 th Caches Virtual Memory Input / Output OperaKng Systems Compilers & Assemblers Processor Architecture
More information1/20/2016 INTRODUCTION
INTRODUCTION 1 Programming languages have common concepts that are seen in all languages This course will discuss and illustrate these common concepts: Syntax Names Types Semantics Memory Management We
More informationCS5460: Operating Systems
CS5460: Operating Systems Lecture 13: Memory Management (Chapter 8) Where are we? Basic OS structure, HW/SW interface, interrupts, scheduling Concurrency Memory management Storage management Other topics
More informationEmbedded Linux development with Buildroot training 3-day session
Embedded Linux development with training 3-day session Title Overview Duration Trainer Language Audience Embedded Linux development with training Introduction to Managing and building the configuration
More informationOutline. hardware components programming environments. installing Python executing Python code. decimal and binary notations running Sage
Outline 1 Computer Architecture hardware components programming environments 2 Getting Started with Python installing Python executing Python code 3 Number Systems decimal and binary notations running
More informationIA-64 Application Developer s Architecture Guide
IA-64 Application Developer s Architecture Guide The IA-64 architecture was designed to overcome the performance limitations of today s architectures and provide maximum headroom for the future. To achieve
More informationComputer Architecture TDTS10
why parallelism? Performance gain from increasing clock frequency is no longer an option. Outline Computer Architecture TDTS10 Superscalar Processors Very Long Instruction Word Processors Parallel computers
More informationWiggins/Redstone: An On-line Program Specializer
Wiggins/Redstone: An On-line Program Specializer Dean Deaver Rick Gorton Norm Rubin {dean.deaver,rick.gorton,norm.rubin}@compaq.com Hot Chips 11 Wiggins/Redstone 1 W/R is a Software System That: u Makes
More informationI Control Your Code Attack Vectors Through the Eyes of Software-based Fault Isolation. Mathias Payer, ETH Zurich
I Control Your Code Attack Vectors Through the Eyes of Software-based Fault Isolation Mathias Payer, ETH Zurich Motivation Applications often vulnerable to security exploits Solution: restrict application
More informationFour Keys to Successful Multicore Optimization for Machine Vision. White Paper
Four Keys to Successful Multicore Optimization for Machine Vision White Paper Optimizing a machine vision application for multicore PCs can be a complex process with unpredictable results. Developers need
More informationProgramming NAND devices
Technical Guide Programming NAND devices Kelly Hirsch, Director of Advanced Technology, Data I/O Corporation Recent Design Trends In the past, embedded system designs have used NAND devices for storing
More informationHypervisors and Virtual Machines
Hypervisors and Virtual Machines Implementation Insights on the x86 Architecture DON REVELLE Don is a performance engineer and Linux systems/kernel programmer, specializing in high-volume UNIX, Web, virtualization,
More informationChapter 2 Logic Gates and Introduction to Computer Architecture
Chapter 2 Logic Gates and Introduction to Computer Architecture 2.1 Introduction The basic components of an Integrated Circuit (IC) is logic gates which made of transistors, in digital system there are
More informationINTERNATIONAL JOURNAL OF ELECTRONICS AND COMMUNICATION ENGINEERING & TECHNOLOGY (IJECET)
INTERNATIONAL JOURNAL OF ELECTRONICS AND COMMUNICATION ENGINEERING & TECHNOLOGY (IJECET) International Journal of Electronics and Communication Engineering & Technology (IJECET), ISSN 0976 ISSN 0976 6464(Print)
More informationSmartFusion csoc: Basic Bootloader and Field Upgrade envm Through IAP Interface
Application Note AC372 SmartFusion csoc: Basic Bootloader and Field Upgrade envm Through IAP Interface Table of Contents Introduction................................................ 1 Introduction to Field
More informationTECHNOLOGY BRIEF. Compaq RAID on a Chip Technology EXECUTIVE SUMMARY CONTENTS
TECHNOLOGY BRIEF August 1999 Compaq Computer Corporation Prepared by ISSD Technology Communications CONTENTS Executive Summary 1 Introduction 3 Subsystem Technology 3 Processor 3 SCSI Chip4 PCI Bridge
More informationPROBLEMS #20,R0,R1 #$3A,R2,R4
506 CHAPTER 8 PIPELINING (Corrisponde al cap. 11 - Introduzione al pipelining) PROBLEMS 8.1 Consider the following sequence of instructions Mul And #20,R0,R1 #3,R2,R3 #$3A,R2,R4 R0,R2,R5 In all instructions,
More informationHardware Task Scheduling and Placement in Operating Systems for Dynamically Reconfigurable SoC
Hardware Task Scheduling and Placement in Operating Systems for Dynamically Reconfigurable SoC Yuan-Hsiu Chen and Pao-Ann Hsiung National Chung Cheng University, Chiayi, Taiwan 621, ROC. pahsiung@cs.ccu.edu.tw
More information