The Java Virtual Machine. Compiler construction The structure of a frame. JVM stacks. Lecture 2
|
|
- Austin Hodges
- 5 years ago
- Views:
Transcription
1 Compile constuction 2009 Lectue 2 Code geneation 1: Geneating code The Java Vitual Machine Data types Pimitive types, including intege and floating-point types of vaious sizes and the boolean type. The suppot fo boolean is vey limited; Java (and Javalette) boolean expessions ae compiled to int values. Javalette needs only int and double. Refeence types, used fo efeences to objects; not needed by basic Javalette. Data aeas Local vaiables and paametes ae stoed on the JVM stack (since Javalette is single-theaded thee is only one stack). Objects (including Java aays) ae stoed in the heap. The heap is not used by basic Javalette. JVM stacks Fames A JVM stack consists of fames. A new stack fame is allocated fo each method invocation. Diffeent JVM invocation instuctions: invokestatic fo static methods; use this fo Javalette functions. invokevitual fo instance methods; not needed fo basic Javalette. invokespecial fo special cases, e.g. initialization. Use in class file heade. JVM handles bueaucacy of method invocation: Allocating and deallocating fames. making paametes available to invoked method. making etun value available to invoking method. The stuctue of a fame Local vaiables aay An aay of wods containing local vaiables and paametes. An int value equies one wod, a double value two wods. Paametes occupy the fist pat of the aay, locally declaed vaiables the second pat. All vaiables ae efeed to using thei index in this aay. The size of the aay is specified in the class file. Opeand stack A stack of wods fo tempoay stoage. Many JVM opeations manipulate this stack. Each enty can hold a value of any JVM type (also double). Results fom method invocations ae left on top of stack. Maximal size of stack is specified in the class file.
2 A simple example, 1 A simple example, 2 static void main(sting[] ags){ int = f(3,5); System.out.pintln(); int = x+y+2; etun ; Snapshot: in main, befoe invokestatic f: ags 3 5 static void main(sting[] ags){ int = f(3,5); System.out.pintln(); int = x+y+2; etun ; Snapshot: in f, befoe fist instuction ags x 3 y 5 A simple example, 3 A simple example, 4 static void main(sting[] ags){ int = f(3,5); System.out.pintln(); int = x+y+2; etun ; Snapshot: in f, befoe etun: ags x 3 y static void main(sting[] ags){ int = f(3,5); System.out.pintln(); int = x+y+2; etun ; Snapshot: in f, afte invokestatic f: ags 10
3 A simple example, 5 Java bytecode static void main(sting[] ags){ int = f(3,5); System.out.pintln(); int = x+y+2; etun ; Snapshot: in main, befoe invoking pintln: ags 10 Geneal popeties Instuctions to push values on the opeand stack, stoe stack top in a vaiable, do aithmetic on opeands on the opeand stack, jump (conditionally) to othe instuctions, invoke and etun fom methods,... One byte opcodes; ca 250 diffeent instuctions. Instuctions may have aguments: (small) constants, indices to pool of (bigge) constants, local vaiable indices. Compact fomat, suitable fo mobile code. Binay fomat, no official assembly fom. assemble Download it! (Link on couse web site) Unzipped diectoy contains jasmin.ja. To assemble file myfile.j containing assemble code, you un > java -ja jasmin.ja myfile.j This poduces myfile.class, which can be un by java intepete. Note that classpath must be set so jasmin.ja is found. Option -d path wites the class file in diectoy path Disassembling > javap -c myfile.class pints an assemble vesion on stdout in (almost) syntax. instuctions 1 Aithmetic Push intege/sting constant c: ldc c Push double constant c: ldc2 w c Pefom binay opeation on integes: iadd isub imul idiv iem iand io Pefom binay opeation on doubles: dadd dsub dmul ddiv Booleans ae teated as integes: false = 0, tue = 1. Typed opeations Diffeent opeations depending on type: e.g. iadd and dadd. Also load/stoe opeations ae typed. Consequence: You will need to know fo all subexpessions which type they have. You compute this duing type-checking; we now see the benefit of saving this infomation.
4 Pushing values on the stack Intege constants Small values: iconst 1 pushes intege 1. Similaly fo -1, 0, 2, 3, 4, 5. A little bigge: bipush n pushes n, fo 128 n 127. Even bigge: sipush n pushes n, fo n Abitay: ldc n pushes n. Value of n stoed in constant pool, index in the instuction. jasmin handles constant pool; you can wite constants. To conside You will need a datatype of instuctions (in Haskell) o a class hieachy (in Java/C++). But will you need all fou foms of push instuctions? Simila consideations fo loading/stoing local vaiables. instuctions 2 Loading local vaiable to stack Load (push) intege vaiable n: iload n. If n = 0,1,2,3, thee ae one-byte vaiants iload 0, etc. Load (push) double vaiable n: dload n. If n = 0,1,2,3, thee ae one-byte vaiants dload 0, etc. Stoing vaiable to memoy Stoe (and pop) intege vaiable n: istoe n. If n = 0,1,2,3, thee ae one-byte vaiants istoe 0, etc. Stoe (and pop) double vaiable n: dstoe n. If n = 0,1,2,3, thee ae one-byte vaiants dstoe 0, etc. Incement of a vaiable can be done without loading and stoing: iinc Java instuctions 3 Labels The label L itself is an instuction: L: Make sue that all labels in a function ae distinct! In the JVM bytecode, code is stoed in an aay of bytes and the label is just the index. Jumps Jump (unconditionally) to a label: goto L Jump if compaison holds between the topmost two integes on stack: if icmpeq L, if icmplt L, etc Jump if compaison holds between the topmost intege and zeo: ifeq L, iflt L, etc. Fo doubles, the situation is diffeent: dcmpl, dcmpg compae the two doubles and etuns an intege -1, 0, o 1. Geneating code fo expessions The poblem Input: A type-annotated AST fo an expession. Output: A sequence of instuctions with net effect to push value of exp on the stack. The solution: Syntax-diected tanslation Constants: Push on stack. Aithmetic expessions: Geneate (ecusively) and concatenate code fo left and ight opeand; last instuction is aithmetic instuction. Function call: Geneate and concatenate code fo all aguments; last instuction is suitable invoke instuction. Vaiables: Load vaiable, using its numbe; how do you know this?
5 Additional input: The code geneato s state. The poblem As we saw on the pevious slide, the AST is not enough; we need to know the index (addess) of each vaiable. These will be computed by the compile itself, when geneating code fo function defs and vaiable declaations. Moe geneally: Needed state infomation Vaiable numbe/index fo each local vaiable (incl paametes). Type fo each function. Index to use fo next vaiable. Numbe to use fo next label. Cuent stack depth. Maximal stack depth. Code emitted so fa. A bette way to pesent tanslation Compilation schemes Pseudocode notation, simila to Haskell, using opeations on the state in monadic style. Example Defining codegenexp :: Exp -> Result (), by patten matching on the abstact syntax (pesented hee in concete syntax) codegenexp(exp1 + exp2 : int) = codegenexp exp1 codegenexp exp2 put [IAdd] -- add to code incstack (-1) -- decease cuent depth -- othe cases simila Define a suitable type fo the state Geneating code fo statements In Java/C++ Define a class with methods fo accessing and updating the vaious state components; don t use public instance vaiables! Make use of suitable collection classes. In Haskell Use a state monad; also hee, define suitable monadic functions fo accessing and updating the state. With suitable abstactions you will be able to modify you code easily if you ealy decisions need to be changed. Again: syntax-diected tanslation Assignment: Geneate code fo RHS; stoe in vaiable (state gives index). Declaation: Get next vaiable index fom state and update state with vaiable/index. Retun: Geneate code fo expession; add etun instuction. Block: concatenate code fom statements.... Some difficulties How does block stuctued scope affect tanslation? How to handle contol stuctues that lead to jumps (if and while)?
6 What about block stuctue? Result of peceding slide Each local vaiable in a method gets its own index. Example Example code int f (int x) { int a, b; {int a, c; {int x, y; Naive handling of while statemens Questions How big must the local vas aay be? How can we avoid making it bigge? Boolean expessions Booleans as integes Booleans ae teated as integes, tanslating false to 0, tue to 1. Thee ae no JVM opeations coesponding to the elational opeatos; we need to use jumps. codegenexp(exp1 > (exp2 : int)) = codegenexp exp1 codegenexp exp2 lab1, lab2 <- getlabel -- get fesh labels put [if_cmpgt lab1, iconst_0, goto lab2, label lab1, iconst_1, label lab2] An example: while (i > 6) i-- ; while scheme codegenstm (while (exp) stm) = lab1, lab2 <- getlabel put [label lab1] codegenexp exp -- push value of exp put [ifeq lab2] -- if false, fall though incstack (-1) -- the test popped exp codegenstm stm put [goto lab1, -- test again label lab2] -- label fo next stmt Check stack effect! Geneated code lab1: iload 1 bipush 6 if icmpgt lab3 iconst 0 goto lab4 lab3: iconst 1 lab4: ifeq lab2 iinc i (-1) goto lab1 lab2: Bette code lab1: iload 1 bipush 6 if_icmple lab2 iinc i (-1) goto lab1 lab2: The poblem The good code is not compositional, i.e. not built by combining code fom the immediate subtees.
7 Example, continued Recall souce code while (i > 6) i--; Even bette code goto lab2 lab1: iinc 1 (-1) lab2: iload 1 bipush 6 if_icmpgt lab1 Comments Saves one JVM instuction pe loop ound You can get (almost) this code compositionally by changing while scheme (fo you to do!) and changing teatment of Boolean expessions (next slide) Note: Naive codegen is enough to pass! Boolean expessions evisited Used in two diffeent ways As test expessions in contol stuctues (while, if). As ight hand sides in assignments to boolean vaiables o actual (boolean) paametes in function calls. Do code geneation diffeently in these two cases! Test expession Define a scheme that takes as aguments the test expession and two labels to jump to when value is tue and false, espectively. Called fom while and if schemes. To compute Boolean value Geneate code as we indicated befoe, teating Booleans as integes. Called fom assignment and function call schemes. May use function to the left when code with jumps needed. Tanslating function definitions Pedefined methods: output fundef scheme codegendef (typ f (paams) stms) = foall paams (ty x): addva ty x foall stms: codegenstm mx <- getmaxstack locs <- getlocals nm = jvmname f typ paams code <- getcode -- now we can build and etun the abstact syntax -- fo the function using these fou values Using Java libay methods All the pint functions call System.out.pintln. In, pintln gets out as a fist agument: getstatic java/lang/system/out Ljava/io/PintSteam; bipush 77 invokevitual java/io/pintsteam/pintln(i)v The fist instuction pushes a efeence to out on the stack. Then we push the value we want to pint. Then pintln is invoked and gets these two aguments.
8 Pedefined methods: input Input in Javalette vs. Java To ead e.g. an intege in Javalette is simple: Avoiding tivial poblems int main () { pintint (7 * eadint ()) ; In Java, much moe is needed: impot java.io.* ; class Read { public static void main (Sting [] ags) thows IOException { BuffeedReade b = new BuffeedReade (new InputSteamReade(System.in)) ; System.out.pintln(7 * Intege.paseInt(b.eadLine())) ; The Runtime class Instead of geneating lots of instuctions, you can define all pedefined methods in a Runtime class. Just wite it in Java and compile into a.class file! To think about fo input methods: only add thows IOException to functions that eally need it. only ceate one new BuffeedReade pe pogam un.
Compiler construction 2009
Compiler construction 2009 Lecture 2 Code generation 1: Generating Jasmin code JVM and Java bytecode Jasmin Naive code generation The Java Virtual Machine Data types Primitive types, including integer
More informationa Not yet implemented in current version SPARK: Research Kit Pointer Analysis Parameters Soot Pointer analysis. Objectives
SPARK: Soot Reseach Kit Ondřej Lhoták Objectives Spak is a modula toolkit fo flow-insensitive may points-to analyses fo Java, which enables expeimentation with: vaious paametes of pointe analyses which
More informationReader & ReaderT Monad (11A) Young Won Lim 8/20/18
Copyight (c) 2016-2018 Young W. Lim. Pemission is ganted to copy, distibute and/o modify this document unde the tems of the GNU Fee Documentation License, Vesion 1.2 o any late vesion published by the
More informationCOSC 6385 Computer Architecture. - Pipelining
COSC 6385 Compute Achitectue - Pipelining Sping 2012 Some of the slides ae based on a lectue by David Culle, Pipelining Pipelining is an implementation technique wheeby multiple instuctions ae ovelapped
More informationCompiling Techniques
Lecture 10: Introduction to 10 November 2015 Coursework: Block and Procedure Table of contents Introduction 1 Introduction Overview Java Virtual Machine Frames and Function Call 2 JVM Types and Mnemonics
More informationdc - Linux Command Dc may be invoked with the following command-line options: -V --version Print out the version of dc
- CentOS 5.2 - Linux Uses Guide - Linux Command SYNOPSIS [-V] [--vesion] [-h] [--help] [-e sciptexpession] [--expession=sciptexpession] [-f sciptfile] [--file=sciptfile] [file...] DESCRIPTION is a evese-polish
More informationGCC-AVR Inline Assembler Cookbook Version 1.2
GCC-AVR Inline Assemble Cookbook Vesion 1.2 About this Document The GNU C compile fo Atmel AVR isk pocessos offes, to embed assembly language code into C pogams. This cool featue may be used fo manually
More informationHow many times is the loop executed? middle = (left+right)/2; if (value == arr[middle]) return true;
This lectue Complexity o binay seach Answes to inomal execise Abstact data types Stacks ueues ADTs, Stacks, ueues 1 binayseach(int[] a, int value) { while (ight >= let) { { i (value < a[middle]) ight =
More informationCOEN-4730 Computer Architecture Lecture 2 Review of Instruction Sets and Pipelines
1 COEN-4730 Compute Achitectue Lectue 2 Review of nstuction Sets and Pipelines Cistinel Ababei Dept. of Electical and Compute Engineeing Maquette Univesity Cedits: Slides adapted fom pesentations of Sudeep
More informationThis lecture. Abstract Data Types (ADTs) The Stack ADT ( 4.2) Stacks. Stack Interface in Java. Exceptions. Abstract data types Stacks Queues
This lectue Abstact data types Stacks ueues Abstact Data Types (ADTs) An abstact data type (ADT) is an abstaction o a data stuctue An ADT speciies: Data stoed Opeations on the data Eo conditions associated
More informationQuery Language #1/3: Relational Algebra Pure, Procedural, and Set-oriented
Quey Language #1/3: Relational Algeba Pue, Pocedual, and Set-oiented To expess a quey, we use a set of opeations. Each opeation takes one o moe elations as input paamete (set-oiented). Since each opeation
More informationUser Visible Registers. CPU Structure and Function Ch 11. General CPU Organization (4) Control and Status Registers (5) Register Organisation (4)
PU Stuctue and Function h Geneal Oganisation Registes Instuction ycle Pipelining anch Pediction Inteupts Use Visible Registes Vaies fom one achitectue to anothe Geneal pupose egiste (GPR) ata, addess,
More informationLecture 8 Introduction to Pipelines Adapated from slides by David Patterson
Lectue 8 Intoduction to Pipelines Adapated fom slides by David Patteson http://www-inst.eecs.bekeley.edu/~cs61c/ * 1 Review (1/3) Datapath is the hadwae that pefoms opeations necessay to execute pogams.
More informationAny modern computer system will incorporate (at least) two levels of storage:
1 Any moden compute system will incopoate (at least) two levels of stoage: pimay stoage: andom access memoy (RAM) typical capacity 32MB to 1GB cost pe MB $3. typical access time 5ns to 6ns bust tansfe
More informationUCB CS61C : Machine Structures
inst.eecs.bekeley.edu/~cs61c UCB CS61C : Machine Stuctues Lectue SOE Dan Gacia Lectue 28 CPU Design : Pipelining to Impove Pefomance 2010-04-05 Stanfod Reseaches have invented a monitoing technique called
More informationLecture Topics ECE 341. Lecture # 12. Control Signals. Control Signals for Datapath. Basic Processing Unit. Pipelining
EE 341 Lectue # 12 Instucto: Zeshan hishti zeshan@ece.pdx.edu Novembe 10, 2014 Potland State Univesity asic Pocessing Unit ontol Signals Hadwied ontol Datapath contol signals Dealing with memoy delay Pipelining
More informationAll lengths in meters. E = = 7800 kg/m 3
Poblem desciption In this poblem, we apply the component mode synthesis (CMS) technique to a simple beam model. 2 0.02 0.02 All lengths in metes. E = 2.07 10 11 N/m 2 = 7800 kg/m 3 The beam is a fee-fee
More informationThe Processor: Improving Performance Data Hazards
The Pocesso: Impoving Pefomance Data Hazads Monday 12 Octobe 15 Many slides adapted fom: and Design, Patteson & Hennessy 5th Edition, 2014, MK and fom Pof. May Jane Iwin, PSU Summay Pevious Class Pipeline
More informationRANDOM IRREGULAR BLOCK-HIERARCHICAL NETWORKS: ALGORITHMS FOR COMPUTATION OF MAIN PROPERTIES
RANDOM IRREGULAR BLOCK-HIERARCHICAL NETWORKS: ALGORITHMS FOR COMPUTATION OF MAIN PROPERTIES Svetlana Avetisyan Mikayel Samvelyan* Matun Kaapetyan Yeevan State Univesity Abstact In this pape, the class
More informationGARBAGE COLLECTION METHODS. Hanan Samet
gc0 GARBAGE COLLECTION METHODS Hanan Samet Compute Science Depatment and Cente fo Automation Reseach and Institute fo Advanced Compute Studies Univesity of Mayland College Pak, Mayland 07 e-mail: hjs@umiacs.umd.edu
More informationA Memory Efficient Array Architecture for Real-Time Motion Estimation
A Memoy Efficient Aay Achitectue fo Real-Time Motion Estimation Vasily G. Moshnyaga and Keikichi Tamau Depatment of Electonics & Communication, Kyoto Univesity Sakyo-ku, Yoshida-Honmachi, Kyoto 66-1, JAPAN
More informationLecture #22 Pipelining II, Cache I
inst.eecs.bekeley.edu/~cs61c CS61C : Machine Stuctues Lectue #22 Pipelining II, Cache I Wiewold cicuits 2008-7-29 http://www.maa.og/editoial/mathgames/mathgames_05_24_04.html http://www.quinapalus.com/wi-index.html
More informationMonitors. Lecture 6. A Typical Monitor State. wait(c) Signal and Continue. Signal and What Happens Next?
Monitos Lectue 6 Monitos Summay: Last time A combination of data abstaction and mutual exclusion Automatic mutex Pogammed conditional synchonisation Widely used in concuent pogamming languages and libaies
More informationCMCS Mohamed Younis CMCS 611, Advanced Computer Architecture 1
CMCS 611-101 Advanced Compute Achitectue Lectue 6 Intoduction to Pipelining Septembe 23, 2009 www.csee.umbc.edu/~younis/cmsc611/cmsc611.htm Mohamed Younis CMCS 611, Advanced Compute Achitectue 1 Pevious
More informationCompiler-based Implementation of. Katia Gladitz. Lehrstuhl fur Informatik II, RWTH Aachen. Ahornstrae 55, W{5100 Aachen, Germany
Compile-based Implementation of Syntax-Diected Functional Pogamming Katia Gladitz ehstuhl fu Infomatik II, RWTH Aachen Ahonstae 55, W{5100 Aachen, Gemany Heinz Fabende and Heiko Vogle Abt. Theoetische
More informationCS 2461: Computer Architecture 1 Program performance and High Performance Processors
Couse Objectives: Whee ae we. CS 2461: Pogam pefomance and High Pefomance Pocessos Instucto: Pof. Bhagi Naahai Bits&bytes: Logic devices HW building blocks Pocesso: ISA, datapath Using building blocks
More informationJournal of World s Electrical Engineering and Technology J. World. Elect. Eng. Tech. 1(1): 12-16, 2012
2011, Scienceline Publication www.science-line.com Jounal of Wold s Electical Engineeing and Technology J. Wold. Elect. Eng. Tech. 1(1): 12-16, 2012 JWEET An Efficient Algoithm fo Lip Segmentation in Colo
More informationCSC 4181 Handout : JVM
CSC 4181 Handout : JVM Note: This handout provides you with the basic information about JVM. Although we tried to be accurate about the description, there may be errors. Feel free to check your compiler
More informationYou Are Here! Review: Hazards. Agenda. Agenda. Review: Load / Branch Delay Slots 7/28/2011
CS 61C: Geat Ideas in Compute Achitectue (Machine Stuctues) Instuction Level Paallelism: Multiple Instuction Issue Guest Lectue: Justin Hsia Softwae Paallel Requests Assigned to compute e.g., Seach Katz
More informationMapReduce Optimizations and Algorithms 2015 Professor Sasu Tarkoma
apreduce Optimizations and Algoithms 2015 Pofesso Sasu Takoma www.cs.helsinki.fi Optimizations Reduce tasks cannot stat befoe the whole map phase is complete Thus single slow machine can slow down the
More informationRecap: Printing Trees into Bytecodes
Recap: Printing Trees into Bytecodes To evaluate e 1 *e 2 interpreter evaluates e 1 evaluates e 2 combines the result using * Compiler for e 1 *e 2 emits: code for e 1 that leaves result on the stack,
More informationJVM. What This Topic is About. Course Overview. Recap: Interpretive Compilers. Abstract Machines. Abstract Machines. Class Files and Class File Format
Course Overview What This Topic is About PART I: overview material 1 Introduction 2 Language processors (tombstone diagrams, bootstrapping) 3 Architecture of a compiler PART II: inside a compiler 4 Syntax
More informationUser Specified non-bonded potentials in gromacs
Use Specified non-bonded potentials in gomacs Apil 8, 2010 1 Intoduction On fist appeaances gomacs, unlike MD codes like LAMMPS o DL POLY, appeas to have vey little flexibility with egads to the fom of
More informationEfficient Execution Path Exploration for Detecting Races in Concurrent Programs
IAENG Intenational Jounal of Compute Science, 403, IJCS_40_3_02 Efficient Execution Path Exploation fo Detecting Races in Concuent Pogams Theodous E. Setiadi, Akihiko Ohsuga, and Mamou Maekaa Abstact Concuent
More informationCOMP3131/9102: Programming Languages and Compilers
COMP3131/9102: Programming Languages and Compilers Jingling Xue School of Computer Science and Engineering The University of New South Wales Sydney, NSW 2052, Australia http://www.cse.unsw.edu.au/~cs3131
More informationComputer Science 141 Computing Hardware
Compute Science 141 Computing Hadwae Fall 2006 Havad Univesity Instucto: Pof. David Books dbooks@eecs.havad.edu [MIPS Pipeline Slides adapted fom Dave Patteson s UCB CS152 slides and May Jane Iwin s CSE331/431
More informationSegmentation of Casting Defects in X-Ray Images Based on Fractal Dimension
17th Wold Confeence on Nondestuctive Testing, 25-28 Oct 2008, Shanghai, China Segmentation of Casting Defects in X-Ray Images Based on Factal Dimension Jue WANG 1, Xiaoqin HOU 2, Yufang CAI 3 ICT Reseach
More informationCompiler construction 2009
Compiler construction 2009 Lecture 3 JVM and optimization. A first look at optimization: Peephole optimization. A simple example A Java class public class A { public static int f (int x) { int r = 3; int
More informationHigh performance CUDA based CNN image processor
High pefomance UDA based NN image pocesso GEORGE VALENTIN STOIA, RADU DOGARU, ELENA RISTINA STOIA Depatment of Applied Electonics and Infomation Engineeing Univesity Politehnica of Buchaest -3, Iuliu Maniu
More informationIn order to learn which questions have been answered correctly: 1. Print these pages. 2. Answer the questions.
In ode to lean which questions have been answeed coectly: 1. Pint these pages. 2. Answe the questions. 3. Send this assessment with the answes via: a. FAX to (212) 967-3498. O b. Mail the answes to the
More informationCISC 662 Graduate Computer Architecture Lecture 6 - Hazards
CISC 662 Gaduate Compute Achitectue Lectue 6 - Hazads Michela Taufe http://www.cis.udel.edu/~taufe/teaching/cis662f07 Powepoint Lectue Notes fom John Hennessy and David Patteson s: Compute Achitectue,
More informationOutput Primitives. Ellipse Drawing
Output Pimitives Ellipse Dawing Ellipses. An ellipses is an elongated cicle and can be dawn with modified cicle dawing algoithm.. An ellipse has set of fied points (foci) that will have a constant total
More informationConfiguring RSVP-ATM QoS Interworking
Configuing RSVP-ATM QoS Intewoking Last Updated: Januay 15, 2013 This chapte descibes the tasks fo configuing the RSVP-ATM QoS Intewoking featue, which povides suppot fo Contolled Load Sevice using RSVP
More informationXFVHDL: A Tool for the Synthesis of Fuzzy Logic Controllers
XFVHDL: A Tool fo the Synthesis of Fuzzy Logic Contolles E. Lago, C. J. Jiménez, D. R. López, S. Sánchez-Solano and A. Baiga Instituto de Micoelectónica de Sevilla. Cento Nacional de Micoelectónica, Edificio
More informationCS 61C: Great Ideas in Computer Architecture. Pipelining Hazards. Instructor: Senior Lecturer SOE Dan Garcia
CS 61C: Geat Ideas in Compute Achitectue Pipelining Hazads Instucto: Senio Lectue SOE Dan Gacia 1 Geat Idea #4: Paallelism So9wae Paallel Requests Assigned to compute e.g. seach Gacia Paallel Theads Assigned
More informationIntroduction To Pipelining. Chapter Pipelining1 1
Intoduction To Pipelining Chapte 6.1 - Pipelining1 1 Mooe s Law Mooe s Law says that the numbe of pocessos on a chip doubles about evey 18 months. Given the data on the following two slides, is this tue?
More informationMonte Carlo Techniques for Rendering
Monte Calo Techniques fo Rendeing CS 517 Fall 2002 Compute Science Conell Univesity Announcements No ectue on Thusday Instead, attend Steven Gotle, Havad Upson Hall B17, 4:15-5:15 (efeshments ealie) Geomety
More informationInformation Retrieval. CS630 Representing and Accessing Digital Information. IR Basics. User Task. Basic IR Processes
CS630 Repesenting and Accessing Digital Infomation Infomation Retieval: Basics Thosten Joachims Conell Univesity Infomation Retieval Basics Retieval Models Indexing and Pepocessing Data Stuctues ~ 4 lectues
More informationEmbeddings into Crossed Cubes
Embeddings into Cossed Cubes Emad Abuelub *, Membe, IAENG Abstact- The hypecube paallel achitectue is one of the most popula inteconnection netwoks due to many of its attactive popeties and its suitability
More informationAutomatically Testing Interacting Software Components
Automatically Testing Inteacting Softwae Components Leonad Gallaghe Infomation Technology Laboatoy National Institute of Standads and Technology Gaithesbug, MD 20899, USA lgallaghe@nist.gov Jeff Offutt
More informationAn Introduction to Multicodes. Ben Stephenson Department of Computer Science University of Western Ontario
An Introduction to Multicodes Ben Stephenson Department of Computer Science University of Western Ontario ben@csd csd.uwo.ca Outline Java Virtual Machine Background The Current State of the Multicode Art
More informationChapter 4 (Part III) The Processor: Datapath and Control (Pipeline Hazards)
Chapte 4 (Pat III) The Pocesso: Datapath and Contol (Pipeline Hazads) 陳瑞奇 (J.C. Chen) 亞洲大學資訊工程學系 Adapted fom class notes by Pof. M.J. Iwin, PSU and Pof. D. Patteson, UCB 1 吃感冒藥副作用怎麼辦? http://big5.sznews.com/health/images/attachement/jpg/site3/20120319/001558d90b3310d0c1683e.jpg
More informationImage Enhancement in the Spatial Domain. Spatial Domain
8-- Spatial Domain Image Enhancement in the Spatial Domain What is spatial domain The space whee all pixels fom an image In spatial domain we can epesent an image by f( whee x and y ae coodinates along
More informationControlled Information Maximization for SOM Knowledge Induced Learning
3 Int'l Conf. Atificial Intelligence ICAI'5 Contolled Infomation Maximization fo SOM Knowledge Induced Leaning Ryotao Kamimua IT Education Cente and Gaduate School of Science and Technology, Tokai Univeisity
More informationThe Internet Ecosystem and Evolution
The Intenet Ecosystem and Evolution Contents Netwok outing: basics distibuted/centalized, static/dynamic, linkstate/path-vecto inta-domain/inte-domain outing Mapping the sevice model to AS-AS paths valley-fee
More informationn If S is in convex position, then thee ae exactly k convex k-gons detemined by subsets of S. In geneal, howeve, S may detemine fa fewe convex k-gons.
Counting Convex Polygons in Plana Point Sets Joseph S. B. Mitchell a;1, Günte Rote b, Gopalakishnan Sundaam c, and Gehad Woeginge b a Applied Mathematics and Statistics, SUNY Stony Book, NY 11794-3600.
More informationIP Network Design by Modified Branch Exchange Method
Received: June 7, 207 98 IP Netwok Design by Modified Banch Method Kaiat Jaoenat Natchamol Sichumoenattana 2* Faculty of Engineeing at Kamphaeng Saen, Kasetsat Univesity, Thailand 2 Faculty of Management
More informationModeling a shared medium access node with QoS distinction
Modeling a shaed medium access node with QoS distinction Matthias Gies, Jonas Geutet Compute Engineeing and Netwoks Laboatoy (TIK) Swiss Fedeal Institute of Technology Züich CH-8092 Züich, Switzeland email:
More informationAssessment of Track Sequence Optimization based on Recorded Field Operations
Assessment of Tack Sequence Optimization based on Recoded Field Opeations Matin A. F. Jensen 1,2,*, Claus G. Søensen 1, Dionysis Bochtis 1 1 Aahus Univesity, Faculty of Science and Technology, Depatment
More informationUndecidability of Static Analysis. William Landi. Siemens Corporate Research Inc. 755 College Rd East.
Undecidability of Static Analysis William Landi Siemens Copoate Reseach Inc 755 College Rd East Pinceton, NJ 08540 wlandi@sc.siemens.com Abstact Static Analysis of pogams is indispensable to any softwae
More informationCENG 3420 Computer Organization and Design. Lecture 07: MIPS Processor - II. Bei Yu
CENG 3420 Compute Oganization and Design Lectue 07: MIPS Pocesso - II Bei Yu CEG3420 L07.1 Sping 2016 Review: Instuction Citical Paths q Calculate cycle time assuming negligible delays (fo muxes, contol
More informationPipes, connections, channels and multiplexors
Pipes, connections, channels and multiplexos Fancisco J. Ballesteos ABSTRACT Channels in the style of CSP ae a poeful abstaction. The ae close to pipes and connections used to inteconnect system and netok
More informationA Two-stage and Parameter-free Binarization Method for Degraded Document Images
A Two-stage and Paamete-fee Binaization Method fo Degaded Document Images Yung-Hsiang Chiu 1, Kuo-Liang Chung 1, Yong-Huai Huang 2, Wei-Ning Yang 3, Chi-Huang Liao 4 1 Depatment of Compute Science and
More informationAn Unsupervised Segmentation Framework For Texture Image Queries
An Unsupevised Segmentation Famewok Fo Textue Image Queies Shu-Ching Chen Distibuted Multimedia Infomation System Laboatoy School of Compute Science Floida Intenational Univesity Miami, FL 33199, USA chens@cs.fiu.edu
More informationDEADLOCK AVOIDANCE IN BATCH PROCESSES. M. Tittus K. Åkesson
DEADLOCK AVOIDANCE IN BATCH PROCESSES M. Tittus K. Åkesson Univesity College Boås, Sweden, e-mail: Michael.Tittus@hb.se Chalmes Univesity of Technology, Gothenbug, Sweden, e-mail: ka@s2.chalmes.se Abstact:
More informationGAS IA-32 Assembly Language Programming Tony Richardson April 19, 2007
GAS IA-32 Assembly Language Pogamming Tony Richadson Apil 19, 2007 The following table contains a patial list of IA-32 assembly mnemonics. An S in the mnemonic epesents a size specification lette of eithe
More informationTutorial 3: Code Generation
S C I E N C E P A S S I O N T E C H N O L O G Y Tutorial 3: Code Generation Univ.-Prof. Dr. Franz Wotawa, DI Roxane Koitz, Stephan Frühwirt, Christopher Liebmann, Martin Zimmermann Institute for Software
More informationLecture # 04. Image Enhancement in Spatial Domain
Digital Image Pocessing CP-7008 Lectue # 04 Image Enhancement in Spatial Domain Fall 2011 2 domains Spatial Domain : (image plane) Techniques ae based on diect manipulation of pixels in an image Fequency
More informationCache Memory and Performance
Cache Memo and Pefomance Code and Caches 1 Man of the following slides ae taken with pemission fom Complete Powepoint Lectue Notes fo Compute Sstems: A Pogamme's Pespective (CS:APP) Randal E. Bant and
More informationDYNAMIC STORAGE ALLOCATION. Hanan Samet
ds0 DYNAMIC STORAGE ALLOCATION Hanan Samet Compute Science Depatment and Cente fo Automation Reseach and Institute fo Advanced Compute Studies Univesity of Mayland College Pak, Mayland 07 e-mail: hjs@umiacs.umd.edu
More informationGravitational Shift for Beginners
Gavitational Shift fo Beginnes This pape, which I wote in 26, fomulates the equations fo gavitational shifts fom the elativistic famewok of special elativity. Fist I deive the fomulas fo the gavitational
More informationCourse Overview. PART I: overview material. PART II: inside a compiler. PART III: conclusion
Course Overview PART I: overview material 1 Introduction (today) 2 Language Processors (basic terminology, tombstone diagrams, bootstrapping) 3 The architecture of a Compiler PART II: inside a compiler
More informationConversion Functions for Symmetric Key Ciphers
Jounal of Infomation Assuance and Secuity 2 (2006) 41 50 Convesion Functions fo Symmetic Key Ciphes Deba L. Cook and Angelos D. Keomytis Depatment of Compute Science Columbia Univesity, mail code 0401
More informationTopics. Structured Computer Organization. Assembly language. IJVM instruction set. Mic-1 simulator programming
Topics Assembly language IJVM instruction set Mic-1 simulator programming http://www.ontko.com/mic1/ Available in 2 nd floor PC lab S/W found in directory C:\mic1 1 Structured Computer Organization 2 Block
More information3/1/18. Overview. Program Representations. Abstract Syntax Tree (AST) Eclipse JDT. Java Model. The Tree Structure of Java Project[2]
Oveview Pogam Reesentations Abstact Syntax Tee Eclise JDT Java Model Eclise JDT AST Contol Flow Gah Pogam Deendence Gah Points-to Gah Call Gah 2 Abstact Syntax Tee (AST) Ceated by the comile at the end
More informationModule 6 STILL IMAGE COMPRESSION STANDARDS
Module 6 STILL IMAE COMPRESSION STANDARDS Lesson 17 JPE-2000 Achitectue and Featues Instuctional Objectives At the end of this lesson, the students should be able to: 1. State the shotcomings of JPE standad.
More informationAccelerating Storage with RDMA Max Gurtovoy Mellanox Technologies
Acceleating Stoage with RDMA Max Gutovoy Mellanox Technologies 2018 Stoage Develope Confeence EMEA. Mellanox Technologies. All Rights Reseved. 1 What is RDMA? Remote Diect Memoy Access - povides the ability
More informationReachable State Spaces of Distributed Deadlock Avoidance Protocols
Reachable State Spaces of Distibuted Deadlock Avoidance Potocols CÉSAR SÁNCHEZ and HENNY B. SIPMA Stanfod Univesity We pesent a family of efficient distibuted deadlock avoidance algoithms with applications
More informationTHE THETA BLOCKCHAIN
THE THETA BLOCKCHAIN Theta is a decentalized video steaming netwok, poweed by a new blockchain and token. By Theta Labs, Inc. Last Updated: Nov 21, 2017 esion 1.0 1 OUTLINE Motivation Reputation Dependent
More informationarxiv: v1 [cs.lo] 3 Dec 2018
A high-level opeational semantics fo hadwae weak memoy models axiv:1812.00996v1 [cs.lo] 3 Dec 2018 Abstact Robet J. Colvin School of Electical Engineeing and Infomation Technology The Univesity of Queensland
More informationDEVELOPMENT OF NEW VARIANT MJ2 RSA DIGITAL SIGNATURE SCHEME WITH ONE PUBLIC KEY AND TWO PRIVATE KEYS
I.J.E.M.S., VOL. 1(1): 18-25 ISSN 2229-600X DEVELOPMENT OF NEW VARIANT MJ2 RSA DIGITAL SIGNATURE SCHEME WITH ONE PUBLIC KEY AND TWO PRIVATE KEYS A. Ravi Pasad, M. Padmavathamma Depatment of Compute Science,
More informationCSE 165: 3D User Interaction
CSE 165: 3D Use Inteaction Lectue #6: Selection Instucto: Jugen Schulze, Ph.D. 2 Announcements Homewok Assignment #2 Due Fiday, Januay 23 d at 1:00pm 3 4 Selection and Manipulation 5 Why ae Selection and
More informationCommunication vs Distributed Computation: an alternative trade-off curve
Communication vs Distibuted Computation: an altenative tade-off cuve Yahya H. Ezzeldin, Mohammed amoose, Chistina Fagouli Univesity of Califonia, Los Angeles, CA 90095, USA, Email: {yahya.ezzeldin, mkamoose,
More informationRunning class Timing on Java HotSpot VM, 1
Compiler construction 2009 Lecture 3. A first look at optimization: Peephole optimization. A simple example A Java class public class A { public static int f (int x) { int r = 3; int s = r + 5; return
More informationCSE P 501 Compilers. Java Implementation JVMs, JITs &c Hal Perkins Winter /11/ Hal Perkins & UW CSE V-1
CSE P 501 Compilers Java Implementation JVMs, JITs &c Hal Perkins Winter 2008 3/11/2008 2002-08 Hal Perkins & UW CSE V-1 Agenda Java virtual machine architecture.class files Class loading Execution engines
More informationUNION FIND. naïve linking link-by-size link-by-rank path compression link-by-rank with path compression context. An Improved Equivalence Algorithm
Disjoint-sets data type Lectue slides by Kevin Wayne Copyight 5 Peason-Addison Wesley http://www.cs.pinceton.edu/~wayne/kleinbeg-tados UNION FIND naïve linking link-by-size link-by-ank path compession
More information^2 PMAC NC FOR MILL APPLICATION
^1 SOFTWARE REFERENCE MANUA ^2 PMAC NC FOR MI APPICATION ^3 Integato/Softwae Manual ^4 3xx-603450-xSxx ^5 June 11, 2004 Single Souce Machine Contol Powe // Flexibility // Ease of Use 21314 assen Steet
More informationCode Generation Introduction
Code Generation Introduction i = 0 LF w h i l e i=0 while (i < 10) { a[i] = 7*i+3 i = i + 1 lexer i = 0 while ( i < 10 ) source code (e.g. Scala, Java,C) easy to write Compiler (scalac, gcc) parser type
More informationA modal estimation based multitype sensor placement method
A modal estimation based multitype senso placement method *Xue-Yang Pei 1), Ting-Hua Yi 2) and Hong-Nan Li 3) 1),)2),3) School of Civil Engineeing, Dalian Univesity of Technology, Dalian 116023, China;
More informationOn the Conversion between Binary Code and Binary-Reflected Gray Code on Boolean Cubes
On the Convesion between Binay Code and BinayReflected Gay Code on Boolean Cubes The Havad community has made this aticle openly available. Please shae how this access benefits you. You stoy mattes Citation
More informationSpiral Recognition Methodology and Its Application for Recognition of Chinese Bank Checks
Spial Recognition Methodology and Its Application fo Recognition of Chinese Bank Checks Hanshen Tang 1, Emmanuel Augustin 2, Ching Y. Suen 1, Olivie Baet 2, Mohamed Cheiet 3 1 Cente fo Patten Recognition
More informationProf. Feng Liu. Fall /17/2016
Pof. Feng Liu Fall 26 http://www.cs.pdx.edu/~fliu/couses/cs447/ /7/26 Last time Compositing NPR 3D Gaphics Toolkits Tansfomations 2 Today 3D Tansfomations The Viewing Pipeline Mid-tem: in class, Nov. 2
More informationOptical Flow for Large Motion Using Gradient Technique
SERBIAN JOURNAL OF ELECTRICAL ENGINEERING Vol. 3, No. 1, June 2006, 103-113 Optical Flow fo Lage Motion Using Gadient Technique Md. Moshaof Hossain Sake 1, Kamal Bechkoum 2, K.K. Islam 1 Abstact: In this
More informationSHA-3 and The Hash Function Keccak
Chistof Paa Jan Pelzl SHA-3 and The Hash Function Keccak An extension chapte fo Undestanding Cyptogaphy A Textbook fo Students and Pactitiones www.cypto-textbook.com Spinge 2 Table of Contents 1 The Hash
More informationComputer Architecture. Pipelining and Instruction Level Parallelism An Introduction. Outline of This Lecture
Compute Achitectue Pipelining and nstuction Level Paallelism An ntoduction Adapted fom COD2e by Hennessy & Patteson Slide 1 Outline of This Lectue ntoduction to the Concept of Pipelined Pocesso Pipelined
More informationAdministrivia. CMSC 411 Computer Systems Architecture Lecture 5. Data Hazard Even with Forwarding Figure A.9, Page A-20
Administivia CMSC 411 Compute Systems Achitectue Lectue 5 Basic Pipelining (cont.) Alan Sussman als@cs.umd.edu as@csu dedu Homewok poblems fo Unit 1 due today Homewok poblems fo Unit 3 posted soon CMSC
More informationCSE4201. Computer Architecture
CSE 4201 Compute Achitectue Pof. Mokhta Aboelaze Pats of these slides ae taken fom Notes by Pof. David Patteson at UCB Outline MIPS and instuction set Simple pipeline in MIPS Stuctual and data hazads Fowading
More informationCS 5114: Theory of Algorithms. Sorting. Insertion Sort. Exchange Sorting. Clifford A. Shaffer. Spring 2010
Depatment of Compute Science Viginia Tech Backsbug, Viginia Copyight c 10 by Ciffod A. Shaffe 3 4 5 7 : Theoy of Agoithms Tite page : Theoy of Agoithms Ciffod A. Shaffe Sping 10 Ciffod A. Shaffe Depatment
More informationModelling, simulation, and performance analysis of a CAN FD system with SAE benchmark based message set
Modelling, simulation, and pefomance analysis of a CAN FD system with SAE benchmak based message set Mahmut Tenuh, Panagiotis Oikonomidis, Peiklis Chachalakis, Elias Stipidis Mugla S. K. Univesity, TR;
More informationCENG 3420 Lecture 07: Pipeline
CENG 3420 Lectue 07: Pipeline Bei Yu byu@cse.cuhk.edu.hk CENG3420 L07.1 Sping 2017 Outline q Review: Flip-Flop Contol Signals q Pipeline Motivations q Pipeline Hazads q Exceptions CENG3420 L07.2 Sping
More information