LOGIN   :::   RECOVER PASS   :::   GET ACCOUNT    
Browse
  • Projects
  • Code (CVS)
  • Forums
  • News
  • Articles
  • Polls
  •  
    OpenCores
  • FAQ
  • CVS HowTo
  • Mission
  • Media
  • Tools
  • Advertise
  • Mirrors
  • Logos
  • Contact us
  • Job Opportunity
  •  
    Tools
  • Search
      
  • Download Cores (CVSGet)
  •  
    More
  • Wishbone
  • Perlilog
  • EDA tools
  • OpenTech CD
  •  
    Navigation: All forums > Cvs-checkins > Message List > Message Post

    Message

    Reply | Reply all
    Date Prev | Date Next | Thread Prev | Thread Next Date Index | Thread Index

    From: cvs at opencores.org<cvs@o...>
    Date: Wed Jul 23 10:46:00 CEST 2008
    Subject: [cvs-checkins] MODIFIED: jop ...
    Top
    Date: 00/08/07 23:10:46

    Modified: jop/doc changelog.tex
    Log:
    New scheduler to allow CMP scheulding.


    Revision Changes Path
    1.19 jop/doc/changelog.tex

    http://www.opencores.org/cvsweb.shtml/jop/doc/changelog.tex.diff?r1=1.18&r2=1.19

    (In the diff below, changes in quantity of whitespace are not shown.)

    Index: changelog.tex
    ===================================================================
    RCS file: /cvsroot/martin/jop/doc/changelog.tex,v
    retrieving revision 1.18
    retrieving revision 1.19
    diff -u -b -r1.18 -r1.19
    --- changelog.tex 21 Jul 2008 12:18:39 -0000 1.18
    +++ changelog.tex 23 Jul 2008 08:45:59 -0000 1.19
    @@ -25,175 +25,6 @@
    \end{abstract}


    -\section{First Change Log}
    -
    -\subsubsection*{2005-06-20}
    -
    -Added GC info field in class structure: ClassInfo.java (JOPizer),
    -JVM.java (f\_new). Use handle, changed multianewarray to work with
    -handles.
    -
    -\subsubsection*{2005-06-25}
    -
    -Working stop-the-world, two space GC committed to CVS.
    -
    -
    -
    -\subsubsection*{2005-12-01}
    -
    -IO devices are memory mapped (SimpCon) - no more stioa, stiod,
    -ldiod.
    -
    -\subsubsection*{2005-12-17}
    -
    -Prototype of periodic scheduled real-time GC for the ISORC paper.
    -
    -\subsubsection*{2006-01-11}
    -
    -Start to generate HW exceptions similar to the timer interrupt.
    -Exception logic is in \code{cnt.vhd} (should perhaps get renamed).
    -First exception is generated by a stack overflow (SP=0xff).
    -
    -\subsubsection*{2006-01-12}
    -
    -Add a new register (\code{ar}) to address the local memory:
    -
    -\begin{itemize}
    - \item New microcode instructions: star, ldmi, stmi
    - \item Use it instead of vp on various bytecodes
    - \item reduce vp to 7 bits (only the upper half of the local
    - memory)
    - \item ld and st instruction changed coding, different address
    - mux coding -- document in JOP instruction set
    - \item iinc is now 8 instead of 11 cycles
    -\end{itemize}
    -
    -\subsubsection*{2006-01-20}
    -
    -Add individual field instructions for long and reference fields
    -(\emph{special} bytecodes).
    -
    -
    -
    -\subsubsection*{2006-01-23}
    -
    -Long instructions in JVM.java added (Peter and Christof jvmhw work).
    -Replace CP index in field instructions by the field offset.
    -
    -\subsubsection*{2006-06-15}
    -
    -Enhanced memory/cache interface: Avoid one state, load one word
    -less.
    -
    -\subsubsection*{2006-08-19}
    -
    -System.arraycopy: Hello World is 11 KB code, 19 KB all. Changes in:
    -\begin{itemize}
    - \item GC: use type info of array + types for ref. and plain
    - objects in handle
    - \item 20 KB with arraycopy() and additional Exceptions
    - \item 21 KB with Java 1.5 corrections (16.9.2006)
    -\end{itemize}
    -
    -\subsubsection*{2006-09-16}
    -
    -Substitute IINC by ILOAD, PUSH const, IADD, and ISTORE in JOPizer to
    -avoid Java 1.5 compiler issues and improve the performance a little
    -bit. Java 1.5 compiler can now be used (with -target 1.4).
    -
    -\subsubsection*{2006-10-08} - -Optimize with \url{http://sourceforge.net/projects/proguard/} - -\subsubsection*{2006-10-26} - -Merged Nelsons JDK port into the source tree. Moved \code{jdk} to -three different directories: \code{jdk\_base}, \code{jdk11}, and -\code{jdk14}. TODO: Check size of Hello World. - -\subsubsection*{2006-11-04} - -Move mtab pointer and array size to the handle. Small optimization -in array load and store (one cycle). invokevirtual, invokeinterface -and arraylength should be faster. - -\subsubsection*{2006-12-30} - -Microcode ROM extended to 2K (with arom.vhd again), long array -bytecodes enabled again, additional stack manipulation bytecodes. -Class structure extended by pointer to super class, checkcast, -instanceof. - - - -\subsubsection*{2007-01-11} - -Check new TCP/IP stack (TU Graz). Application size: -\begin{itemize} - \item Hello World 33 KB (!) - \item ejip.Main 47 KB (old stack) - \item ejip.Main 49 KB (some changes) -\end{itemize} - -20060818: Hello World 19 KB - - -%Questions: -% -%Warum zusaetzlich Payload und nicht Packet weiterverwenden? -% -%Das Zusammenstellen eines IP Paketes ist sehr aufwendig (z.B.: -%prepareIPPacket()) - -\subsubsection*{2007-03-17} - -Restructure of JOP components: Additional \code{jopcpu} contains -\code{core}, \code{extension}, and \code{mem\_sc}. Simple AMBA slave -interface for SimpCon paper (FPL 2007). - -\subsubsection*{2007-04-11} - -New version of JavaBenchEmbedded (1.1) with an additional -\emph{Lift} benchmark. - -\subsubsection*{2007-04-14} - -Original cycmin: 2691 LCs, 88.4 MHz (extension: 62, mem\_sc: 113). -Original iaload timing: 32 + 3r = 35 and iastore timing: 35 + 2r + w -= 38. - -Implement xaload and xastore in hardware. New timings: iaload: 7 + -3r = 10, iastore: 9 + 2r + w = 12. - -cycmin w array HW: 2906 LCs, 93 MHz (extension: 70, mem\_sc: 304). - -\subsubsection*{2007-05-28} - -putfield and putstatic for references invoke JVM.java (for GC -write-barriers). - -\subsubsection*{2007-08-03} - -Add pointer to static primitive fields into the class structure (for -Hardware objects). - -\subsubsection*{2007-08-31} - -Change stack pointer handling: no wrapping, exception generation at -maxstack-8, use constants for stack size and start, changed start to -64. With 512 stack words LC is 2948 (instead of 2906). - -\subsubsection*{2008-02-05} - -Added invokesuper bytecode: the case of invoking the method of a -super-class was not handled correctly by invokespecial. JOPizer -replaces invokespecial with invokesuper where appropriate. - -\subsubsection*{2008-06-23} - -Implemented athrow as specified by the JVM specification. Changed -system code in a few places such that exceptions are throw instead of -aborting immediately. \section{Performance Tracker} @@ -279,6 +110,67 @@ \subsection{Hardware} + +\paragraph{20051201} + +IO devices are memory mapped (SimpCon) -- no more stioa, stiod, +ldiod. + + +\paragraph{20060111} + +Start to generate HW exceptions similar to the timer interrupt. +Exception logic is in \code{cnt.vhd} (should perhaps get renamed). +First exception is generated by a stack overflow (SP=0xff). + +\paragraph{20060112} + +Add a new register (\code{ar}) to address the local memory: + +\begin{itemize} + \item New microcode instructions: star, ldmi, stmi + \item Use it instead of vp on various bytecodes + \item reduce vp to 7 bits (only the upper half of the local + memory) + \item ld and st instruction changed coding, different address + mux coding -- document in JOP instruction set + \item iinc is now 8 instead of 11 cycles +\end{itemize} + +\paragraph{20060615} + +Enhanced memory/cache interface: Avoid one state, load one word less. + +\paragraph{20061230} + +Microcode ROM extended to 2K (with arom.vhd again), long array +bytecodes enabled again, additional stack manipulation bytecodes. +Class structure extended by pointer to super class, checkcast, +instanceof. + +\paragraph{20070317} + +Restructure of JOP components: Additional \code{jopcpu} contains +\code{core}, \code{extension}, and \code{mem\_sc}. Simple AMBA slave +interface for SimpCon paper (FPL 2007). + +\paragraph{20070414} Array load and store in hardware. + +Original cycmin: 2691 LCs, 88.4 MHz (extension: 62, mem\_sc: 113). +Original iaload timing: 32 + 3r = 35 and iastore timing: 35 + 2r + w += 38. + +Implement xaload and xastore in hardware. New timings: iaload: 7 + 3r += 10, iastore: 9 + 2r + w = 12. + +cycmin w array HW: 2906 LCs, 93 MHz (extension: 70, mem\_sc: 304). + +\paragraph{20070831} + +Change stack pointer handling: no wrapping, exception generation at +maxstack-8, use constants for stack size and start, changed start to +64. With 512 stack words LC is 2948 (instead of 2906). + \paragraph{20070909} sc\_ram16.vhd violated SimpCon rule to hold data in the register till new data arrives (used data input register to store first 16-bit value). Results in an error in the array bounds check. @@ -290,11 +182,8 @@ only 4~MB of the 16~MB PSDRAM with a lot of wait states. \paragraph{20071121} more space in stack.vhd for the stack -trace. Use 33 bit for the comparison (compare bug for diff $>$ -2**31 in stack.vhd corrected). - -\subsubsection{Error with YAFFS code} is probably an issue with -the cache. Run EraseNAND and TestWithNAND to see the error. +trace. Use 33 bit for the comparison (compare bug for diff $>$ 2**31 +in stack.vhd corrected). \paragraph{20071122} Christof checked in the work on JOP CMP (jvm.asm, jop\_types.vhd, cmpsync.vhd, sc\_sys.vhd, @@ -353,6 +242,95 @@ \subsection{Software} +\paragraph{20050620} + +Added GC info field in class structure: ClassInfo.java (JOPizer), +JVM.java (f\_new). Use handle, changed multianewarray to work with +handles. + +\paragraph{20050625} + +Working stop-the-world, two space GC committed to CVS. + +\paragraph{20051217} + +Prototype of periodic scheduled real-time GC for the ISORC paper. + +\paragraph{20060120} + +Add individual field instructions for long and reference fields +(\emph{special} bytecodes). + +\paragraph{20060123} + +Long instructions in JVM.java added (Peter and Christof jvmhw work). +Replace CP index in field instructions by the field offset. + +\paragraph{20060819} + +System.arraycopy: Hello World is 11 KB code, 19 KB all. Changes in: +\begin{itemize} + \item GC: use type info of array + types for ref. and plain + objects in handle + \item 20 KB with arraycopy() and additional Exceptions + \item 21 KB with Java 1.5 corrections (16.9.2006) +\end{itemize} + +\paragraph{20060916} + +Substitute IINC by ILOAD, PUSH const, IADD, and ISTORE in JOPizer to +avoid Java 1.5 compiler issues and improve the performance a little +bit. Java 1.5 compiler can now be used (with -target 1.4). + +\paragraph{20061008} + +Optimize with \url{http://sourceforge.net/projects/proguard/} + +\paragraph{20061026} + +Merged Nelsons JDK port into the source tree. Moved \code{jdk} to +three different directories: \code{jdk\_base}, \code{jdk11}, and +\code{jdk14}. TODO: Check size of Hello World. + +\paragraph{20061104} + +Move mtab pointer and array size to the handle. Small optimization in +array load and store (one cycle). invokevirtual, invokeinterface and +arraylength should be faster. + +\paragraph{20070111} + +Check new TCP/IP stack (TU Graz). Application size: +\begin{itemize} + \item Hello World 33 KB (!) + \item ejip.Main 47 KB (old stack) + \item ejip.Main 49 KB (some changes) +\end{itemize} + +20060818: Hello World 19 KB + +%Questions: +% +%Warum zusaetzlich Payload und nicht Packet weiterverwenden? +% +%Das Zusammenstellen eines IP Paketes ist sehr aufwendig (z.B.: +%prepareIPPacket()) + +\paragraph{20070411} + +New version of JavaBenchEmbedded (1.1) with an additional \emph{Lift} +benchmark. + +\paragraph{20070528} + +putfield and putstatic for references invoke JVM.java (for GC +write-barriers). + +\paragraph{20070803} + +Add pointer to static primitive fields into the class structure (for +Hardware objects). + \paragraph{20070911} Changes in ejip for TCP addition and some cleanup in packet manipulation. TCP connection works for a very simple Telnet server. @@ -385,9 +363,19 @@ constants for stack start and size for the root scanning in stop-the-world mode. +\paragraph{20080205} + +Added invokesuper bytecode: the case of invoking the method of a +super-class was not handled correctly by invokespecial. JOPizer +replaces invokespecial with invokesuper where appropriate. + \paragraph{20080221} WP: JOPizer: insert monitorenter and monitorexit for synchronized (non-static) methods. +\paragraph{20080623} WP: Implemented athrow as specified by the JVM specification. Changed +system code in a few places such that exceptions are throw instead of +aborting immediately. + \paragraph{20080624} WP: JOPizer: interface tables are now generated correctly \paragraph{20080626} MS: Back to original scheduler, OEBB BG version @@ -401,6 +389,11 @@ hardware for long versions of get/putfield and array access to use the GC copy redirection! +\paragraph{20080723} MS: Scheduler change for CMP scheduling. +Scheduler is now an object -- a \code{Runnable} that is registered as +an interrupt handler for the time interrupt. Each CMP core has it's +own scheduler registered on \code{missionStart()}. + \subsection{Documentation} \paragraph{20080108} corrected timing for \code{xastore}. It's $10 +

     
    Copyright (c) 1999 OPENCORES.ORG. All rights reserved.