Sign in

username:

password:



Not a member?

Search fpga-cpu



Search tips

Subscribe to fpga-cpu



fpga-cpu by Keywords

Altera | CISCifying | IDE | ISA | Java | JHDL | JTAG | LBU | MicroBlaze | PAR | PCI | RISC | SoC | Spartan | Transputers | Verilog | VHDL | Virtex | VLIW | WebPack | Xilinx | Xsoc | YARD-1A

Discussion Groups

Discussion Groups | FPGA-CPU | Re: transactional memory

This list is for discussion of the design and implementation of field-programmable gate array based processors and integrated systems. It is also for discussion and community support of the XSOC Project (see http://www.fpgacpu.org/xsoc).

transactional memory - Jan Gray - Feb 13 10:41:57 2007


My friends, the big action these days in loveable programming models for
shared memory synchronization is transactional memory.
http://www.cs.wisc.edu/trans-memory/biblio/index.html
http://www.amazon.com/Transactional-Synthesis-Lectures-Computer-Architecture/dp/1598291246

There is an FPGA processor connection, for example if you review some of the
recent publications out of Stanford.
http://tcc.stanford.edu/publications/

On an unrelated note, I recently reviewed the moderator activity on this
mailing list and noted that others have been quietly keeping house for me.
I thank the assistant moderators of this mailing list for their help at
keeping this mailing list running and spam-free during those times when my
attentions have been elsewhere.

Jan.


(You need to be a member of fpga-cpu -- send a blank email to fpga-cpu-subscribe@yahoogroups.com )

Re: transactional memory - fgruend - Feb 14 6:12:46 2007

examples from
http://tcc.stanford.edu/publications/tcc_pldi2006.pdf -- JAVA : public
int get (){
synchronized (this) {
while (!available)
wait();
available = false;
notifyAll();
return contents;}}
public void put(int value){
synchronized (this) {
while (available)
wait();
contents = value;
available = true;
notifyAll();}}
--Atomos :
public int get() {
atomic {
if (!available) {
watch available;
retry;}
available = false;
return contents;}}

public void put (int value) {
atomic {
if (available) {
watch available;
retry;}
contents = value;
available = true;}

my example:

-- OCCAM :
CHAN OF INT available:
PROC get (int contents)
SEQ
available ? contens -- compiles to 12 13 44 F7
:

PROC put (VAL int value)
SEQ
available ! value -- compiles to 12 13 44 FB
:

The IN and OUT instructions compile to just 3 ASM Instructions
that the CPU has to execute.

So just 8 Bytes binary code are needed to solve the producer/consumer
problem (ST20 Processor).

Using kroc OCCAM compiler from kent it will be a little bit more.

Frithjof

[Non-text portions of this message have been removed]


(You need to be a member of fpga-cpu -- send a blank email to fpga-cpu-subscribe@yahoogroups.com )