Picojava-II™ Microarchitecture Guide

Total Page:16

File Type:pdf, Size:1020Kb

Picojava-II™ Microarchitecture Guide picoJava-II™ Microarchitecture Guide Sun Microsystems, Inc. 901 San Antonio Road Palo Alto, CA 94303 USA 650 960-1300 Part No.: 960-1160-11 March 1999 Copyright 1999 Sun Microsystems, Inc. 901 San Antonio Road, Palo Alto, California 94303 U.S.A. All rights reserved. The contents of this document are subject to the current version of the Sun Community Source License, picoJava Core (“the License”). You may not use this document except in compliance with the License. You may obtain a copy of the License by searching for “Sun Community Source License” on the World Wide Web at http://www.sun.com. See the License for the rights, obligations, and limitations governing use of the contents of this document. Sun, Sun Microsystems, the Sun logo and all Sun-based trademarks and logos, Java, picoJava, and all Java-based trademarks and logos are trademarks, registered trademarks, or service marks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. Products bearing SPARC trademarks are based upon an architecture developed by Sun Microsystems, Inc. DOCUMENTATION IS PROVIDED “AS IS” AND ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD TO BE LEGALLY INVALID. THIS PUBLICATION COULD INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS. CHANGES ARE PERIODICALLY ADDED TO THE INFORMATION HEREIN; THESE CHANGES WILL BE INCORPORATED IN NEW EDITIONS OF THE PUBLICATION. SUN MICROSYSTEMS, INC. MAY MAKE IMPROVEMENTS AND/OR CHANGES IN THE PRODUCT(S) AND/OR THE PROGRAM(S) DESCRIBED IN THIS PUBLICATION AT ANY TIME. Please Recycle Contents Preface xix 1. Overview 1 1.1 Purpose 1 1.2 Components 2 1.2.1 Instruction Cache Unit (ICU) 3 1.2.2 Integer Unit (IU) 3 1.2.3 Floating Point Unit (FPU) 4 1.2.4 Data Cache Unit (DCU) 4 1.2.5 Stack Manager Unit (SMU) 5 1.2.6 Bus Interface Unit (BIU) 5 1.2.7 Powerdown, Clock, and Scan Unit (PCSU) 5 2. Instruction Cache Unit (ICU) 7 2.1 Structure 10 2.2 Functionalities 10 2.2.1 Instruction Cache Control (ic_cntl)10 2.2.2 Instruction Buffer (I-Buffer) 11 2.2.3 I-Buffer Control (ibuf_cntl)12 2.2.4 Instruction Cache Datapath (icu_dpath)12 iii 2.3 Cache Transactions 12 2.3.1 Cache Read Hits 12 2.3.2 Cache Read Misses 13 2.3.3 Noncacheable (NC) Reads 14 2.3.4 Cache Indexed Flushing 14 2.3.5 Error Transactions 14 2.3.6 Diagnostic Accesses 14 2.4 Power Management 15 2.5 Interface Signals 15 3. Integer Unit (IU) 19 3.1 Instruction Pipeline 20 3.2 Instruction Folding Unit (IFU) 21 3.2.1 I-Buffer Interface 22 3.2.2 Folding Logic 22 3.2.3 Folding Groups 23 3.3 Register Control Unit (RCU) 25 3.3.1 RCU Datapath 25 3.3.2 Interface Signals 27 3.4 Datapath 29 3.4.1 Functionalities 30 3.4.2 Interface Signals 31 3.5 Pipe Control Unit 32 3.5.1 Stall Types 33 3.5.2 Interface Signals 34 3.6 Microcode 35 3.6.1 Interface Protocol 36 3.6.2 Control Logic 37 3.6.3 Datapath 38 iv picoJava-II Microarchitecture Guide • March 1999 4. Floating Point Unit (FPU) 41 4.1 Structure 41 4.1.1 ALU 43 4.1.2 Multiply/Divide (MDIV) 43 4.1.3 Microcode Sequencer 43 4.2 Pipeline 43 4.3 Add and Subtract 44 4.4 Multiply and Divide 45 4.5 IEEE 754 Compliance 45 4.5.1 Deviation From IEEE 754 Specification 46 4.5.2 NaN Operations 46 4.6 Opcodes 47 4.6.1 FADD and FSUB Operations 47 4.6.2 FMUL and DMUL Operations 47 4.6.3 FDIV, FREM, DDIV, and DREM Operations 47 4.6.4 FConvert Operations 47 4.7 Power Management 48 4.8 Interface 48 4.8.1 Input Operations 48 4.8.2 Output Operations 50 4.8.3 Data Forwarding 51 4.9 Critical Paths 51 4.10 Signals 52 5. Data Cache Unit (DCU) 53 5.1 Dependencies 55 5.2 Data Cache 55 5.3 Functionalities 57 5.3.1 Arbiter 57 5.3.2 Address Control 57 Contents v 5.3.3 Aligner Control 57 5.3.4 Miss Control 58 5.3.5 Writeback Control 58 5.3.6 Data Cache Datapath 58 5.4 Pipeline 58 5.4.1 Cache Reads 59 5.4.2 Cache Writes 59 5.4.3 Cache Fills 60 5.4.4 Writebacks 62 5.4.5 Noncacheable (NC) Loads 63 5.4.6 Noncacheable (NC) Stores 63 5.5 Cache Transactions 64 5.5.1 Arbitration of Requests 64 5.5.2 Replacements 64 5.5.3 Cache Compare Flushing 65 5.5.4 Cache Indexed Flushing 65 5.5.5 Cache Invalidate Flushing 65 5.5.6 Zeroing of Cache Lines 65 5.5.7 Nonallocating Writes 66 5.5.8 Nonfetching Allocates 66 5.5.9 Diagnostic Accesses 66 5.6 Interface Signals 66 5.7 Power Management 68 5.8 Critical Timing Path 68 6. Stack Manager Unit (SMU) 71 6.1 Functionalities 73 6.2 Dribbling Operations 74 6.2.1 Spills and Fills 75 6.2.2 Stack Overflow 75 vi picoJava-II Microarchitecture Guide • March 1999 6.2.3 Stack Underflow 76 6.2.4 Stack Cache Write Misses 76 6.3 Pipeline 77 6.4 Interface Signals 77 7. Bus Interface Unit (BIU) 79 7.1 Functionalities 79 7.2 Arbitration 80 7.3 Interfaces 81 7.4 Power Management 82 7.5 Interface Signals 83 8. Powerdown, Clock, Reset, and Scan Unit (PCSU) 85 8.1 Power Management 85 8.1.1 Normal Mode 85 8.1.2 Standby Mode 86 8.2 Clock Management 88 8.3 Reset Management 88 8.4 Scan and Test Features 89 8.5 Interface Signals 91 8.6 Debug and Trace Features 92 8.7 JTAG Support 93 8.7.1 Full Internal Scan 93 8.7.2 Breakpoints and External Halt Mode 93 8.7.3 Single-Stepping 94 8.7.4 Nonscannable Arrays 95 9. External Interface 97 9.1 Core Interface Signals 97 9.1.1 Processor Interface Signals 100 Contents vii 9.1.2 Memory Interface Signals 101 9.1.3 Trace and Debug Signals 103 9.2 picoJava-II Transactions 105 9.2.1 Boot Mode 105 9.2.2 Read-Type Transactions 106 9.2.3 Write-Type Transactions 108 9.3 Endianness and Cacheability 111 9.4 Customizable Features 111 10. Traps and Interrupts 113 10.1 Definitions 113 10.2 Traps 114 10.3 Trap Control 114 10.4 Interrupts 114 10.4.1 Nonmaskable Interrupts (NMI) 115 10.4.2 Maskable Interrupts 115 10.5 Interrupt Control 116 11. Megacells 117 11.1 Instruction Cache Data RAM 117 11.1.1 I/O Pins 120 11.1.2 I/O Signals 121 11.1.3 Timing 122 11.1.4 RAM Redundancy 124 11.1.5 Testing 124 11.2 Instruction Cache Tag RAM 125 11.2.1 I/O Pins 128 11.2.2 I/O Signals 130 11.2.3 Timing 130 11.2.4 Implementation 133 viii picoJava-II Microarchitecture Guide • March 1999 11.2.5 RAM Redundancy 133 11.2.6 Testing 133 11.3 Data Cache Data RAM 134 11.3.1 I/O Pins 136 11.3.2 I/O Signals 137 11.3.3 Timing 138 11.3.4 Implementation 140 11.3.5 RAM Redundancy 140 11.3.6 Testing 140 11.4 Data Cache Tag RAM 141 11.4.1 I/O Pins 144 11.4.2 I/O Signals 145 11.4.3 Timing 146 11.4.4 Implementation 149 11.4.5 RAM Redundancy 149 11.4.6 Testing 149 11.5 Stack Cache RAM 150 11.5.1 I/O Pins 150 11.5.2 I/O Signals 151 11.5.3 Timing 152 11.5.4 Testing 154 11.6 Floating Point Unit (FPU) ROM 154 11.6.1 I/O Pins 156 11.6.2 I/O Signals 157 11.6.3 Timing 158 11.6.4 Implementation 160 11.6.5 ROM Contents 160 11.6.6 RAM Redundancy 160 11.6.7 Testing 160 Contents ix 11.7 Integer Unit (IU) ROM 161 11.7.1 I/O Signals 162 11.7.2 Timing 162 11.7.3 Implementation 163 11.7.4 ROM Contents 163 11.7.5 RAM Redundancy 163 11.7.6 Testing 163 Index 165 x picoJava-II Microarchitecture Guide • March 1999 Figures FIGURE 1-1 picoJava-II Core 2 FIGURE 1-2 Basic Pipeline 3 FIGURE 2-1 Instruction Cache Unit (ICU) Interaction with Other Units 8 FIGURE 2-2 Aligners 9 FIGURE 2-3 Program Counter 9 FIGURE 2-4 Instruction Buffer 11 FIGURE 2-5 A Miss State Transaction 13 FIGURE 3-1 Integer Unit (IU) 20 FIGURE 3-2 Instruction Pipeline in the IU 21 FIGURE 3-3 Instruction Folding Unit (IFU) Datapath 24 FIGURE 3-4 Register Control Unit (RCU) Datapath (Register Access Part for RS1) 26 FIGURE 3-5 Integer Unit (IU) Datapath 30 FIGURE 3-6 pipe_dpath (PC Pipe and OPTOP Pipe) 33 FIGURE 3-7 Microcode Interface with the Main IU Datapath 35 FIGURE 4-1 Floating Point Unit (FPU) 42 FIGURE 4-2 Double-Precision Operation Using Two Cycles 44 FIGURE 4-3 Simplified ALU Section of the Floating Point Unit (FPU) 44 FIGURE 4-4 Multiply and Divide (MDIV) Section of the FPU 45 FIGURE 4-5 Floating Point Interface 48 xi FIGURE 4-6 FPU Timing 49 FIGURE 4-7 Critical Paths in the FPU 51 FIGURE 5-1 Data Control Unit (DCU) Interaction with Other Units 54 FIGURE 5-2 16-Kbyte Data Cache (512x256) 56 FIGURE 5-3 A Pipeline Read Transaction 59 FIGURE 5-4 A Cache Write Transaction 60 FIGURE 5-5 A Cache Fill Transaction 61 FIGURE 5-6 A Writeback Transaction 62 FIGURE 5-7 A Noncacheable Load 63 FIGURE 5-8 A Noncacheable Store 64 FIGURE 5-9 Critical Timing Path in the DCU 69 FIGURE 6-1 Stack Manager Unit (SMU) Interaction with Other Units 72 FIGURE 6-2 Stack Cache 74 FIGURE 7-1 Bus Interface Unit (BIU) 80 FIGURE 7-2 BIU Arbiter 80 FIGURE 7-3 Bus Interface Unit (BIU) Interaction with Other Units 82 FIGURE 8-1 Protocol for the PCSU Standby Mode 86 FIGURE 8-2 Test-Related Vendor Issue 90 FIGURE 8-3 Tracing the Instruction Flow Using the picoJava-II Core 92 FIGURE 8-4 Single-Step Timing Through Scan Mode 94 FIGURE 8-5 Single-Stepping Using Breakpoints 95 FIGURE 8-6 Single-Stepping Using pj_halt 95 FIGURE 9-1 The picoJava-II External Interface 98 FIGURE 9-2 An Example of a System Based on the picoJava-II Core 104 FIGURE 9-3 A Cached Read Transaction Followed by a Noncached Read Transaction 107 FIGURE 9-4 A Cached Write Transaction Followed by a Noncached Write Transaction 108 FIGURE 9-5 A Cached Load Miss 109 FIGURE 9-6 A Noncached Write 110 xii picoJava-II Microarchitecture Guide • March 1999 FIGURE 9-7 A Writeback and Cached Read Miss 110 FIGURE 9-8 An Example of How To Use the picoJava-II
Recommended publications
  • Cost-Effective Compilation Techniques for Java Just-In-Time Compilers 3
    IEICE TRANS. ??, VOL.Exx–??, NO.xx XXXX 200x 1 PAPER Cost-Effective Compilation Techniques for Java Just-in-Time Compilers Kazuyuki SHUDO†, Satoshi SEKIGUCHI†, Nonmembers, and Yoichi MURAOKA ††, Fel low SUMMARY Java Just-in-Time compilers have to satisfy a policies. number of requirements in conflict with each other. Effective execution of a generated code is not the only requirement, but 1. Ease of use as a base of researches. compilation time, memory consumption and compliance with the 2. Cost-effective development. Less labor and rela- Java Virtual Machine specification are also important. We have tively much effect. developed a Java Just-in-Time compiler keeping implementation 3. Adequate quality and performance for practical labor little. Another important objective is developing an ad- equate base of following researches which utilize this compiler. use. The proposed compilation techniques take low compilation cost and low development cost. This paper also describes optimization Compiler development involves much work on a methods implemented in the compiler, for instance, instruction parser, intermediate representations and a number of folding, exception handling with signals and code patching. optimizations. Because of it, we have to consider those key words: Runtime compilation, Java Virtual Machine, Stack human and engineering factor seriously in addition to caching, Instruction folding, Code patching technical requirements like performance. Our plan on the development of the JIT compiler was to have a prac- 1. Introduction tical compiler with work several man-month. Our an- other goal was specifically having a research base on Just-in-Time (JIT) compilers for Java bytecode have which we do following researches with less labor while to satisfy a number of requirements, which are differ- developing it with less work.
    [Show full text]
  • Picojava-II™ Programmer's Reference Manual
    picoJava-II™ Programmer’s Reference Manual Sun Microsystems, Inc. 901 San Antonio Road Palo Alto, CA 94303 USA 650 960-1300 Part No.: 805-2800-06 March 1999 Copyright 1999 Sun Microsystems, Inc. 901 San Antonio Road, Palo Alto, California 94303 U.S.A. All rights reserved. The contents of this document are subject to the current version of the Sun Community Source License, picoJava Core (“the License”). You may not use this document except in compliance with the License. You may obtain a copy of the License by searching for “Sun Community Source License” on the World Wide Web at http://www.sun.com. See the License for the rights, obligations, and limitations governing use of the contents of this document. Sun, Sun Microsystems, the Sun logo and all Sun-based trademarks and logos, Java, picoJava, and all Java-based trademarks and logos are trademarks, registered trademarks, or service marks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. Products bearing SPARC trademarks are based upon an architecture developed by Sun Microsystems, Inc. DOCUMENTATION IS PROVIDED “AS IS” AND ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON- INFRINGEMENT, ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD TO BE LEGALLY INVALID. THIS PUBLICATION COULD INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS. CHANGES ARE PERIODICALLY ADDED TO THE INFORMATION HEREIN; THESE CHANGES WILL BE INCORPORATED IN NEW EDITIONS OF THE PUBLICATION.
    [Show full text]
  • C:\Andrzej\PDF\ABC Nagrywania P³yt CD\1 Strona.Cdr
    IDZ DO PRZYK£ADOWY ROZDZIA£ SPIS TREFCI Wielka encyklopedia komputerów KATALOG KSI¥¯EK Autor: Alan Freedman KATALOG ONLINE T³umaczenie: Micha³ Dadan, Pawe³ Gonera, Pawe³ Koronkiewicz, Rados³aw Meryk, Piotr Pilch ZAMÓW DRUKOWANY KATALOG ISBN: 83-7361-136-3 Tytu³ orygina³u: ComputerDesktop Encyclopedia Format: B5, stron: 1118 TWÓJ KOSZYK DODAJ DO KOSZYKA Wspó³czesna informatyka to nie tylko komputery i oprogramowanie. To setki technologii, narzêdzi i urz¹dzeñ umo¿liwiaj¹cych wykorzystywanie komputerów CENNIK I INFORMACJE w ró¿nych dziedzinach ¿ycia, jak: poligrafia, projektowanie, tworzenie aplikacji, sieci komputerowe, gry, kinowe efekty specjalne i wiele innych. Rozwój technologii ZAMÓW INFORMACJE komputerowych, trwaj¹cy stosunkowo krótko, wniós³ do naszego ¿ycia wiele nowych O NOWOFCIACH mo¿liwoYci. „Wielka encyklopedia komputerów” to kompletne kompendium wiedzy na temat ZAMÓW CENNIK wspó³czesnej informatyki. Jest lektur¹ obowi¹zkow¹ dla ka¿dego, kto chce rozumieæ dynamiczny rozwój elektroniki i technologii informatycznych. Opisuje wszystkie zagadnienia zwi¹zane ze wspó³czesn¹ informatyk¹; przedstawia zarówno jej historiê, CZYTELNIA jak i trendy rozwoju. Zawiera informacje o firmach, których produkty zrewolucjonizowa³y FRAGMENTY KSI¥¯EK ONLINE wspó³czesny Ywiat, oraz opisy technologii, sprzêtu i oprogramowania. Ka¿dy, niezale¿nie od stopnia zaawansowania swojej wiedzy, znajdzie w niej wyczerpuj¹ce wyjaYnienia interesuj¹cych go terminów z ró¿nych bran¿ dzisiejszej informatyki. • Komunikacja pomiêdzy systemami informatycznymi i sieci komputerowe • Grafika komputerowa i technologie multimedialne • Internet, WWW, poczta elektroniczna, grupy dyskusyjne • Komputery osobiste — PC i Macintosh • Komputery typu mainframe i stacje robocze • Tworzenie oprogramowania i systemów komputerowych • Poligrafia i reklama • Komputerowe wspomaganie projektowania • Wirusy komputerowe Wydawnictwo Helion JeYli szukasz ]ród³a informacji o technologiach informatycznych, chcesz poznaæ ul.
    [Show full text]
  • (19) United States (12) Patent Application Publication (10) Pub
    US 20060190934A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2006/0190934 A1 Kielstra et al. (43) Pub. Date: Aug. 24, 2006 (54) METHOD AND APPARATUS FOR INLINING Publication Classi?cation NATIVE FUNCTIONS INTO COMPILED JAVA CODE (51) Int. Cl. G06F 9/45 (2006.01) (52) US. Cl. ............................................................ ..717/148 (75) Inventors: Allan Henry Kielstra, Ajax (CA); Levon Sassoon Stepanian, Toronto (CA); Kevin Alexander Stoodley, (57) ABSTRACT Richmond Hill (CA) A method, apparatus, and computer instructions are pro vided for inlining native functions into compiled Java code. Correspondence Address: A conversion engine is provided by the present invention for IBM CORP (YA) converting the intermediate representation of native func C/O YEE & ASSOCIATES PC tions to the just-in-time (JIT) compiler’s intermediate rep PO. BOX 802333 resentation. With the converted intermediate representation, DALLAS, TX 75380 (US) an inliner recursively inlines the converted JIT compiler’s intermediate representation into the native callsite to remove the need of invoking the native function and subsequent (73) Assignee: International Business Machines Cor native calls made by the function. The inlining process poration, Armonk, NY continues until either a call to an opaque function is encoun tered or until a JIT compiler intermediate representation groWth limits are reached. The inliner also replaces calls to (21) Appl. No.: 11/062,293 most native functions that are non-inlineable or opaque With calls
    [Show full text]
  • Java and the JVM
    Java and the JVM Martin Schöberl Overview History and Java features Java technology The Java language A first look into the JVM Disassembling of .class files Java and the JVM 2 History of a Young Java 1992 Oak for a PDA on a SPARC (*7) 1995 Official release as Java – Internet 1997 picoJava – Sun’s Java processor 1998 RTSJ specification start as JSR-01 1999 split into J2SE and J2EE 2000 J2ME 2002 RTSJ final release 2002 first version of JOP ;-) Java and the JVM 3 Java features Simple and object oriented Look and feel of C Simplified object model with single inheritance Portability Java compiler generates bytecodes Runtime systems for various platforms Size and behavior of basic data types defined Write once, run/debug anywhere Java and the JVM 4 Java features cont. Availability Windows, Linux, Solaris,… Embedded systems Compiler and runtime are free Free IDEs: Eclipse, Netbeans Library Rich class library Part of the definition Standard GUI toolkit Java and the JVM 5 Java features cont. Built-in model for concurrency Threads at the language level Synchronization Libraries are thread-safe Safety No Pointer! Extensive compile-time checking Runtime checking Automatic memory management – GC Java and the JVM 6 Java system overview Java and the JVM 7 Java Technology The Java programming language The library (JDK) The Java virtual machine (JVM) Instruction set Binary format Verification Java and the JVM 8 Java Primitive Data Types boolean either true or false char 16-bit Unicode character (unsigned)
    [Show full text]
  • 20 Years of Java
    20 years of Java Vladimir Ivanov HotSpot JVM Compile r Twitter: @iwan0www Oracle Corp. OpenJDK: vlivanov 1 28.11.2015 Copyright © 2015, Oracle and/or its affiliates. All rights reserved 20 years of Java (The Platform) Vladimir Ivanov HotSpot JVM Compile r Twitter: @iwan0www Oracle Corp. OpenJDK: vlivanov 2 Copyright © 2015, Oracle and/or its affiliates. All rights reserved Safe Harbor Statement The preceding is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. 3 Copyright © 2015, Oracle and/or its affiliates. All rights reserved About me Joined Sun Microsystems (SPBDC) to work JDK 1.0 on HotSpot JVM Now 1996 2002 2005 2010 2015 Wrote my first Became part of program in Java. Oracle Corp. after acquisition 4 Copyright © 2015, Oracle and/or its affiliates. All rights reserved 1991: Project Green 5 Copyright © 2015, Oracle and/or its affiliates. All rights reserved 1991: *7 (StarSeven) Oak programming language 6 Copyright © 2015, Oracle and/or its affiliates. All rights reserved 1991: *7 (StarSeven) Duke 7 Copyright © 2015, Oracle and/or its affiliates. All rights reserved 1994: WebRunner/HotJava browser 8 Copyright © 2015, Oracle and/or its affiliates. All rights reserved 1995: First release: 1.0a2 9 Copyright © 2015, Oracle and/or its affiliates.
    [Show full text]
  • Contributions to the Construction of Extensible Semantic Editors
    Public Defence, January 18, 2013 Contributions to the Construction of Extensible Semantic Editors Emma Söderberg Doctoral Dissertation, 2012 Department of Computer Science Lund University 2/20 Orientation Today’s programming editors Text editor Semantic editor gedit, Notepad, .. Eclipse, NetBeans, ... Error feedback Background: Code browsing Refactoring - Programming: From text to semantic editor Name completion - Not all languages have semantic editors ... Problems: - Construction is time-consuming and complex - Maintenance may be difficult (extensions) Challenge: How can we make it easier to construct and maintain semantic editors? 3/20 Approach Generate services from specification Specification: RAGs - Formalism, specify semantics Services - Declarative, easily modularized - JastAddJ, JModelica, JastAdd RAGs – Reference Attribute Grammars - Grammar – defines program model, Program abstract syntax tree (AST) Model Programmer - Attributes – computed properties of AST nodes (types, scopes, ..) - References: Attribute values This dissertation: Extend compiler with editor module 4/20 Contributions Paper I Paper II Specification Paper III Paper IV Robustness Paper V Performance Paper VI Paper VII 5/20 Contributions Paper I Paper II Specification Paper III Paper IV Robustness Paper V Performance Paper VI Paper VII 6/20 Specification The JastAdd Editor Framework Framework Problem: Browsing Completion How to add an editor to an existing compiler? Errors Views Approach: - Editor Framework - JastAdd: semantics - Eclipse: graphical components - Predefined
    [Show full text]
  • JOP Reference Handbook: Building Embedded Systems with a Java Processor
    Downloaded from orbit.dtu.dk on: Sep 30, 2021 JOP Reference Handbook: Building Embedded Systems with a Java Processor Schoeberl, Martin Publication date: 2009 Document Version Publisher's PDF, also known as Version of record Link back to DTU Orbit Citation (APA): Schoeberl, M. (2009). JOP Reference Handbook: Building Embedded Systems with a Java Processor. http://www.jopdesign.com/ General rights Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. Users may download and print one copy of any publication from the public portal for the purpose of private study or research. You may not further distribute the material or use it for any profit-making activity or commercial gain You may freely distribute the URL identifying the publication in the public portal If you believe that this document breaches copyright please contact us providing details, and we will remove access to the work immediately and investigate your claim. JOP Reference Handbook JOP Reference Handbook Building Embedded Systems with a Java Processor Martin Schoeberl Copyright c 2009 Martin Schoeberl Martin Schoeberl Strausseng. 2-10/2/55 A-1050 Vienna, Austria Email: [email protected] Visit the accompanying web site on http://www.jopdesign.com/ and the JOP Wiki at http://www.jopwiki.com/ Published 2009 by CreateSpace, http://www.createspace.com/ All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, electronic, mechanical, recording or otherwise, without the prior written permission of Martin Schoeberl.
    [Show full text]
  • A Bibliography of Publications About Virtual Machines
    A Bibliography of Publications about Virtual Machines Nelson H. F. Beebe University of Utah Department of Mathematics, 110 LCB 155 S 1400 E RM 233 Salt Lake City, UT 84112-0090 USA Tel: +1 801 581 5254 FAX: +1 801 581 4148 E-mail: [email protected], [email protected], [email protected] (Internet) WWW URL: http://www.math.utah.edu/~beebe/ 21 July 2021 Version 1.379 Abstract This bibliography records books and other publications about virtual machines. Title word cross-reference TM $32.95 [Ano97a]. 5 [ALW15, HH18]. [Cza00]. TP [LTK17]. d [XDLS15]. HV 2M [CBZ+16]. n [WZKP19]. ! [Arv02]. Π [Syr07]. V 2 [DG05]. -dienste [WF03]. -Enabled [SB18]. -Tier [WZKP19]. .NET [Fra06, Fra09, Hee07, Hog06, Hog08, Men03]. /CLI [Fra06, Fra09, Hee07, Hog06, Hog08, Siv07, Wil06]. /dev/random [Fer11]. 1 2 0 [Sim92, SCP93]. 0.9.0 [WR07]. 0.9.1 [WR08]. '01 [Ano00, Ano01a, Ano01b, USE01c, USE01d]. '02 [USE02]. '03 [ACM03b, Ert03]. '04 [Ano04a, Ano04b]. '05 [ACM05d, Vra05]. 1 [Fli77, Pul91, Sch94a, WDSW01]. 1-4 [Ano06a]. 1.x [KGG00]. '10 [Ano10, See10, VSC+10, YCL+18]. 10.0 [Bau06b]. 10GE [HB12]. 11 [Ham76, PK75a]. 11/40 [GBO87]. 11/60 [SP83]. 1100 [Kam75]. 11th [ACM04a]. 12th [IEE85]. 14-16 [ACM06f]. 148 [Ano15]. 15th [ACM06b]. 165 [IBM76]. 168 [IBM76]. 16th [BW03, Ano93]. 17th [Ano10]. 180x86 [Law00]. 19 [Cap21]. 1981 [Mar81]. 1985 [Jou85]. 1989 [Boa90, Shr89]. 1990 [ACM90]. 1991 [MR91]. 1992 [IEE92]. 1993 [IEE93a, IEE93b, JPTE94]. 19th [ACM03b, SS05]. 1st [ACM06c, Ano01a]. 2 [Bri98, Com00, Com03, Kis08]. 2-Level [ZSR+05]. 2.0 [Fra06, Ng01a, SUN97]. 2000 [ACM00]. 2001 [ACM01b].
    [Show full text]
  • Attachments: # 1 Appendix a (Joint
    Oracle America, Inc. v. Google Inc. Doc. 525 Att. 1 Appendix A Dockets.Justia.com 1 MORRISON & FOERSTER LLP MICHAEL A. JACOBS (Bar No. 111664) 2 [email protected] MARC DAVID PETERS (Bar No. 211725) 3 [email protected] DANIEL P. MUINO (Bar No. 209624) 4 [email protected] 755 Page Mill Road 5 Palo Alto, CA 94304-1018 Telephone: (650) 813-5600 / Facsimile: (650) 494-0792 6 BOIES, SCHILLER & FLEXNER LLP 7 DAVID BOIES (Admitted Pro Hac Vice) [email protected] 8 333 Main Street Armonk, NY 10504 9 Telephone: (914) 749-8200 / Facsimile: (914) 749-8300 STEVEN C. HOLTZMAN (Bar No. 144177) 10 [email protected] 1999 Harrison St., Suite 900 11 Oakland, CA 94612 Telephone: (510) 874-1000 / Facsimile: (510) 874-1460 12 ORACLE CORPORATION 13 DORIAN DALEY (Bar No. 129049) [email protected] 14 DEBORAH K. MILLER (Bar No. 95527) [email protected] 15 MATTHEW M. SARBORARIA (Bar No. 211600) [email protected] 16 500 Oracle Parkway Redwood City, CA 94065 17 Telephone: (650) 506-5200 / Facsimile: (650) 506-7114 18 Attorneys for Plaintiff ORACLE AMERICA, INC. 19 20 UNITED STATES DISTRICT COURT 21 NORTHERN DISTRICT OF CALIFORNIA 22 SAN FRANCISCO DIVISION 23 ORACLE AMERICA, INC. Case No. CV 10-03561 WHA 24 Plaintiff, JOINT TRIAL EXHIBIT LIST 25 v. 26 GOOGLE INC. 27 Defendant. 28 JOINT TRIAL EXHIBIT LIST CASE NO. CV 10-03561 WHA pa-1490805 Case No. CV 10‐03561 WHA Oracle America, Inc. v. Google Inc. JOINT EXHIBIT LIST TRIAL EXHIBIT DATE DESCRIPTION BEGPRODBATE ENDPRODBATE GOOGLE'S ORACLE'S LIMITATIONS DATE DATE NO.
    [Show full text]
  • The Java™ Platform a White Paper
    The Java™ Platform A White Paper Douglas Kramer With contributions by Bill Joy and David Spenhoff 2550 Garcia Avenue Mountain View, CA 94043 U.S.A. 408-343-1400 May 1996 Copyright Information 1995, 1996, Sun Microsystems, Inc. All rights reserved. 2550 Garcia Avenue, Mountain View, California 94043-1100 U.S.A. This document is protected by copyright. No part of this document may be reproduced in any form by any means without prior written authorization of Sun and its licensors, if any. The information described in this document may be protected by one or more U.S. patents, foreign patents, or pending applications. TRADEMARKS Sun, Sun Microsystems, Sun Microelectronics, the Sun Logo, SunXTL, JavaSoft, JavaOS, the JavaSoft Logo, Java, HotJava, JavaChips, picoJava, microJava, UltraJava, JDBC, the Java Cup and Steam Logo, “Write Once, Run Anywhere” and Solaris are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. UNIX ® is a registered trademark in the United States and other countries, exclusively licensed through X/Open Company, Ltd. Adobe ® is a registered trademark of Adobe Systems, Inc. Netscape Navigator™ is a trademark of Netscape Communications Corporation. All other product names mentioned herein are the trademarks of their respective owners. THIS DOCUMENT IS PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. THIS DOCUMENT COULD INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS. CHANGES ARE PERIODICALLY ADDED TO THE INFORMATION HEREIN; THESE CHANGES WILL BE INCORPORATED IN NEW EDITIONS OF THE DOCUMENT.
    [Show full text]
  • Domain-Specific Program Profiling and Its
    Domain-Specific Program Profiling and its Application to Attribute Grammars and Term RewritingI Anthony M. Sloanea,∗, Matthew Robertsa aDepartment of Computing, Macquarie University, Sydney, Australia Abstract We present a method for profiling programs that are written using domain- specific languages. Instead of reporting execution in terms of implementation details as in most existing profilers, our method operates at the level of the prob- lem domain. Program execution generates a stream of events that summarises the execution in terms of domain concepts and operations. The events enable us to construct a hierarchical model of the execution. A flexible reporting system summarises the execution along developer-chosen model dimensions. The result is a flexible way for a developer to explore the execution of their program with- out requiring any knowledge of the domain-specific language implementation. These ideas are embodied in a new profiling library called dsprofile that is independent of the problem domain so it has no specific knowledge of the data and operations that are being profiled. We illustrate the utility of dsprofile by using it to profile programs that are written using our Kiama language process- ing library. Specifically, we instrument Kiama's attribute grammar and term rewriting domain-specific languages to use dsprofile to generate events that re- port on attribute evaluation and rewrite rule application. Examples of typical language processing tasks show how domain-specific profiling can help to diag- nose problems in Kiama-based programs without the developer needing to know anything about how Kiama is implemented. Keywords: program profiling, attribute grammars, term rewriting, Kiama, Scala INikki Lesley, Suzana Andova and Dominic Verity provided helpful feedback on this work.
    [Show full text]