[Hardware] Fwd: Re: JOP and tagged memory

Klaus D. Witzel klaus.witzel at cobss.com
Sat Jun 9 08:57:23 UTC 2007


This is another message from my archive; discussed JOP+tagged memory, with  
Jecel and Martin.

Cheers
Klaus

P.S. some background on JOP: http://www.jopdesign.com/ has info the  
board(s) used and the tool chain.

------- Forwarded message -------
From: "Martin Schoeberl"
To: "Klaus D. Witzel"
Cc: "Jecel Assumpcao Jr"
Subject: Re: JOP and tagged memory
Date: Wed, 29 Nov 2006 10:16:03 +0100

Dear Klaus,

> I've been impressed by your development of JOP, what an exceptional  
> piece  of work!
thanks :-)

>  Of course I have questions. I considered posting to   
> java-processor at yahoogroups.com but I have no Java question. Instead:

You can also post them there. But you get probabaly only an
answer from me there ;-)

>  - what is the alignment of memory access, I couldn't read that out of  
> your  timing.pdf document and other downloaded material. Because of the  
> dense  packing of Java constants, class and method bits, is it so that  
> memory  access is byte aligned. Or did I just overlook the info  
> somewhere in your  documentation.

All element are 32-bit aligned. In JOP all addresses and data
structures count in words. There is no such thing as bytes or
short (internally). I think I did not document this implementation
detail in the thesis.

>  - I'm interested in an architecture which (besides a bytecode  
> instruction  set) supports tagged memory. That is, every 32 bit word in  
> RAM and FLASH  memory has (at least) one extra bit. Do you think that  
> JOP architecture  can support that and, if so, have suggestions how to  
> achieve that.

That could be of great use with JOP (e.g. for garbage collection).
I was thinking to use tagged words on the on-chip stack to get exact
roots for the GC. However, up to now I think it makes things too
complicted with the 32-bit main memory.

As you want to do it for all memories it makes sense. There is
only this little problem: 33-bit memories are no available ;-)

> - alternately, if memory access is aligned (except for bytecode and   
> [binary] strings), I consider to tag 32 bit pointers, which because of  
> the  alignment then would have at least one bit freed for tagging.

You mean using the two lower bits in the pointer? Not in JOP
as the pointer actually count in words (= no byte addressing).
However, as we will not use 4G words (= 16 GB) main memory
with JOP there are plenty of bits free in the upper part of
the pointer.

> - I'm confident that it is (relative) easy to implement an other  
> bytecode  instruction set, without compromizing JOP architecture. Was  
> that already  done, is there experience, are there pointers.

The core pipeline and microcode ISA is design to map easy to
Java bytecode. It's a stack machine. If you want to implement
another instruction set on top of the it should be similar.
Do you think about .NET?

AFAIK no one has done this.


Cheers,
Martin




More information about the Hardware mailing list