Propagating Constants Past Software to Hardware Peripherals Frank Vahid*, Rilesh Patel and Greg Stitt Dept. of Computer Science and Engineering University.

Slides:



Advertisements
Similar presentations
Tuning of Loop Cache Architectures to Programs in Embedded System Design Susan Cotterell and Frank Vahid Department of Computer Science and Engineering.
Advertisements

purpose Search : automation methods for device driver development in IP-based embedded systems in order to achieve high reliability, productivity, reusability.
Experiments with the Peripheral Virtual Component Interface Roman L. Lysecky, Frank Vahid*, Tony D. Givargis Dept. of Computer Science & Engineering University.
Parul Polytechnic Institute
RADIO FREQUENCY BASED SERIAL COMMUNICATION..
1 A Self-Tuning Cache Architecture for Embedded Systems Chuanjun Zhang*, Frank Vahid**, and Roman Lysecky *Dept. of Electrical Engineering Dept. of Computer.
Chapter 10 Input/Output Organization. Connections between a CPU and an I/O device Types of bus (Figure 10.1) –Address bus –Data bus –Control bus.
TK2633 Introduction to Parallel Data Interfacing DR MASRI AYOB.
Internal Logic Analyzer Final presentation-part B
A reconfigurable system featuring dynamically extensible embedded microprocessor, FPGA, and customizable I/O Borgatti, M. Lertora, F. Foret, B. Cali, L.
I/O Unit.
FIU Chapter 7: Input/Output Jerome Crooks Panyawat Chiamprasert
Graduate Computer Architecture I Lecture 16: FPGA Design.
Chuanjun Zhang, UC Riverside 1 Low Static-Power Frequent-Value Data Caches Chuanjun Zhang*, Jun Yang, and Frank Vahid** *Dept. of Electrical Engineering.
Instruction-based System-level Power Evaluation of System-on-a-chip Peripheral Cores Tony Givargis, Frank Vahid* Dept. of Computer Science & Engineering.
© 2006 Pearson Education, Upper Saddle River, NJ All Rights Reserved.Brey: The Intel Microprocessors, 7e Chapter 13 Direct Memory Access (DMA)
ENGIN112 L38: Programmable Logic December 5, 2003 ENGIN 112 Intro to Electrical and Computer Engineering Lecture 38 Programmable Logic.
02/02/20091 Logic devices can be classified into two broad categories Fixed Programmable Programmable Logic Device Introduction Lecture Notes – Lab 2.
Mahapatra-Texas A&M-Fall'001 cosynthesis Introduction to cosynthesis Rabi Mahapatra CPSC498.
A First-step Towards an Architecture Tuning Methodology for Low Power Greg Stitt, Frank Vahid*, Tony Givargis Dept. of Computer Science & Engineering University.
Configurable System-on-Chip: Xilinx EDK
Introduction An interrupt is an event which informs the CPU that its service (action) is needed. Sources of interrupts: internal fault (e.g.. divide by.
1 CSIT431 Introduction to Operating Systems Welcome to CSIT431 Introduction to Operating Systems In this course we learn about the design and structure.
University College Cork IRELAND Hardware Concepts An understanding of computer hardware is a vital prerequisite for the study of operating systems.
1/31/20081 Logic devices can be classified into two broad categories Fixed Programmable Programmable Logic Device Introduction Lecture Notes – Lab 2.
Read Chapter 3 (David E. Simon, An Embedded Software Primer)
ELEN468 Lecture 11 ELEN468 Advanced Logic Design Lecture 1Introduction.
A Self-Optimizing Embedded Microprocessor using a Loop Table for Low Power Frank Vahid* and Ann Gordon-Ross Dept. of Computer Science and Engineering University.
CS 151 Digital Systems Design Lecture 38 Programmable Logic.
Lecture 7 Lecture 7: Hardware/Software Systems on the XUP Board ECE 412: Microcomputer Laboratory.
CS-334: Computer Architecture
Input / Output CS 537 – Introduction to Operating Systems.
Computer Organization
NetBurner MOD 5282 Network Development Kit MCF 5282 Integrated ColdFire 32 bit Microcontoller 2 DB-9 connectors for serial I/O supports: RS-232, RS-485,
1 Computer System Overview Chapter 1. 2 n An Operating System makes the computing power available to users by controlling the hardware n Let us review.
A Fast On-Chip Profiler Memory Roman Lysecky, Susan Cotterell, Frank Vahid* Department of Computer Science and Engineering University of California, Riverside.
Computer System Overview Chapter 1. Operating System Exploits the hardware resources of one or more processors Provides a set of services to system users.
1 SERIAL PORT INTERFACE FOR MICROCONTROLLER EMBEDDED INTO INTEGRATED POWER METER Mr. Borisav Jovanović, Prof.dr Predrag Petković, Prof.dr. Milunka Damnjanović,
MICROPROCESSOR INPUT/OUTPUT
Basic I/O Interface A Course in Microprocessor
Interrupts and DMA CSCI The Role of the Operating System in Performing I/O Two main jobs of a computer are: –Processing –Performing I/O manage and.
By, Prof. Tambe S. S. S.N.D. College of Engineering and Research Center Department of Electrical Engineering.
A Self-Optimizing Embedded Microprocessor using a Loop Table for Low Power Frank Vahid* and Ann Gordon-Ross Dept. of Computer Science and Engineering University.
1 Fly – A Modifiable Hardware Compiler C. H. Ho 1, P.H.W. Leong 1, K.H. Tsoi 1, R. Ludewig 2, P. Zipf 2, A.G. Oritz 2 and M. Glesner 2 1 Department of.
Tools - LogiBLOX - Chapter 5 slide 1 FPGA Tools Course The LogiBLOX GUI and the Core Generator LogiBLOX L BX.
MICROPROCESSOR FUNCTION Technician Series Created Mar 2015 gmail.com.
Roman LyseckyUniversity of California, Riverside1 Pre-fetching for Improved Core Interfacing Roman Lysecky, Frank Vahid, Tony Givargis, & Rilesh Patel.
04/26/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Introduction to VHDL 12.2: VHDL versus Verilog (Separate File)
Input/Output Problems Wide variety of peripherals —Delivering different amounts of data —At different speeds —In different formats All slower than CPU.
بسم الله الرحمن الرحيم MEMORY AND I/O.
Scott Sirowy, Chen Huang, and Frank Vahid † Department of Computer Science and Engineering University of California, Riverside {ssirowy,chuang,
1 Frequent Loop Detection Using Efficient Non-Intrusive On-Chip Hardware Ann Gordon-Ross and Frank Vahid* Department of Computer Science and Engineering.
Submitted by:.  Project overview  Block diagram  Power supply  Microcontroller  MAX232 & DB9 Connector  Relay  Relay driver  Software requirements.
Modified Harvard architecture 8-bit RISC single chip microcontroller Complete System-on-a-chip On Board Memory (FLASH, SRAM & EEPROM) On Board Peripherals.
Intel 8255A PPI EEE 365 [FALL 2014] LECTURE ATANU K SAHA BRAC UNIVERSITY.
Maj Jeffrey Falkinburg Room 2E46E
Prototyping SoC-based Gate Drive Logic for Power Convertors by Generating code from Simulink models. Researchers Rounak Siddaiah, Graduate Student-University.
PC Mouse operated Electrical Load Control Using VB Application
Introduction Introduction to VHDL Entities Signals Data & Scalar Types
The 8255 Programmable Peripheral Interface
E3165 DIGITAL ELECTRONIC SYSTEM
Chapter 1: Introduction
An Introduction to Microprocessor Architecture using intel 8085 as a classic processor
8255.
FPro Bus Protocol and MMIO Slot Specification
RTL Style در RTL مدار ترتيبي به دو بخش (تركيبي و عناصر حافظه) تقسيم مي شود. مي توان براي هر بخش يك پروسس نوشت يا براي هر دو فقط يك پروسس نوشت. مرتضي صاحب.
Md. Mojahidul Islam Lecturer Dept. of Computer Science & Engineering
Md. Mojahidul Islam Lecturer Dept. of Computer Science & Engineering
Portable SystemC-on-a-Chip
Automatic Tuning of Two-Level Caches to Embedded Applications
Presentation transcript:

Propagating Constants Past Software to Hardware Peripherals Frank Vahid*, Rilesh Patel and Greg Stitt Dept. of Computer Science and Engineering University of California, Riverside *Also with the Center for Embedded Computer Systems, UC Irvine This work was supported by the National Science Foundation Compilers and Operating Systems for Low Power 2001 (COLP’01)

Frank Vahid, 2 Introduction Past –Board-level IC’s Present –System-on-a-chip (SOC) and IP “cores” –Core types Hard: layout Firm: structural HDL Soft: RT-synthesizable HDL ProcessorMemoryPeripheral Board PeripheralMem Processor IP cores Core library PeripheralA PeripheralB ProcessorX SOC

Frank Vahid, 3 Cores Come with Parameters Sample parameters –JPEG resolution –Cache size and # ways –Buffer sizes –Peripheral register addresses Sample VHDL using generics entity CODEC is generic (resol : integer); port (clk: in bit; rst: in bit...);... if (resol = 12) then... elsif (resol = 16) then... User sets generics entity SOC is... M1: MIPS... B1: DMA... C1: CODEC generic map( resol => 12 ); port map (clk_sig, rst_sig,...); MIPS CCD I$ A/D D/A JPEG CODEC DMA Memory UART LCD Driver Bridge D$ Field-programmable logic SOC

Frank Vahid, 4 Impact of Parameter Settings Pre-fabrication parameters –Essentially CONSTANTS –Synthesis tool propagates constants and performs dead code elimination Impact on Power –Less logic means less switching Dynamic power proportional to switching –Less logic means shorter wires So also get less power per switch MIPS CCD I$ A/D D/A JPEG CODEC DMA Memory UART LCD Driver Bridge D$ Field-programmable logic Parameter setting A Parameter setting B entity CODEC is generic (resol : integer); -- suppose =12 port (clk: in bit; rst: in bit...);... if (12 = 12) then... elsif (12 = 16) then...

Frank Vahid, 5 Impact of Parameter Settings Impact on Size and Cost –Each wafer holds tens to hundreds of chips Chips processed concurrently, photographic-like process Wafer processing is slow and expensive –Yield – percentage of good chips on wafer Smaller (and thus more) chips means higher yield –Smaller chips means more good chips per wafer Translates to lower cost per chip ingotsilicon wafer

Frank Vahid, 6 Not all Parameters are Set before IC Fabrication Many parameters are “software configurable” –Values set by software, usually during boot sequence, thus post-fabrication –Don’t give same power, size and cost advantages as pre-fabrication parameters Micro- processor Program memory Peripheral Core library cont_reg1cont_reg2 Reset() cont_reg1 = 0x00 cont_reg2 = 0xFF

Frank Vahid, 7 Key Observation Embedded system software often fixed –Never changes –Often can’t be changed – burned into ROM Thus, those values written to software configurable parameters are really CONSTANTS –If we recognize this, we can obtain further size and power savings After propagating generic parameters After propagating software configurable parameters

Frank Vahid, 8 Example if (cont_reg(0) = ‘0’) then A_out <= ‘1’; else A_in <= ‘1’; end if; if( cont_reg(1) =‘0’) then B_out <= ‘1’; else B_in <= ‘1’; end if; -- Other behavior omitted end process; signal cont_reg: UNSIGNED(1 downto 0); -- declarations for A, B and buffers omitted. process(clk, reset) begin if (reset) then cont_reg = “00”; A_out <= ‘0’; A_in <= ‘1’; B_out <= ‘0’; B_in <= ‘1’; end if; if rising_edge(clk) then -- code to detect write request -- from bus to cont_reg, and -- to update cont_reg omitted AB 1 1 ABcont_reg logic bus After converting the software configurable parameter (cont_reg) to a constant and optimizing

Frank Vahid, 9 Propagating Constants Past Software to Hardware Compiler approach –Compiler outputs information on all writes in the software to memory-mapped I/O registers that are never read in the software –Must replace register by a constant before synthesis Manually or with some tool support CompilerSynthesis SoftwareCore Constants info. SOC structure

Frank Vahid, 10 Propagating Constants Past Software to Hardware Platform tool approach –Modern tools help instantiate cores Ask for values for generics, set those Ask for values for software config. parms, creates appropriate software drivers –Could also ask if fixed value Then, could convert register to constant Software Platform tool Core Constants info. from user Synthesis Compiler SOC structure

Frank Vahid, 11 Experiments Examples –8255A programmable peripheral interface One configuration register to set ports as input or output, and set I/O type (handshake, interr.) We considered three different configurations –8237A DMA controller Several config. registers to select arbitration mode, # channels, base addresses, block size We considered one configuration –16550 UART Several config. registers to enable transmit and receive, select interrupt mode, select baud rate We considered two configurations –DCT (Free-DCT-L from OpenCores) Config. registers to select fwd/rev DCT, and resolution (8, 9, 10 or 12-bit). We considered 1 configuration

Frank Vahid, 12 Results CoresGates, original Gates, with constant propagati on size savings ratio Power, original (micro- watts) Power, with constant propagati on (micro- watts) power savings ratio 8255A mode A mode A mode A single transfer PC16550 Tx PC16550 Rx DCT Forward 8-bit Average savings

Frank Vahid, 13 Conclusion Treating software configurable parameter values as constants can yield excellent size and power savings –Big question – what’s the best way to do this? –Platform tool approach is probably best –But many designs are made without a platform tool So we need compilers that can help by outputting information on singly-written I/O registers Need synthesis tools that can convert software configurable registers to generics/constants Partial automation would be a big first step