|
Message
From: cvs at opencores.org<cvs@o...>
Date: Wed Jul 23 10:46:00 CEST 2008
Subject: [cvs-checkins] MODIFIED: jop ...
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 +
|
 |