From: adam Date: Mon, 12 Feb 2007 09:36:42 +0000 (+0100) Subject: migrated ships into .ship files X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=3ea36cc4b271ba24cb0190e59a8dfb35e0be5457;p=fleet.git migrated ships into .ship files --- diff --git a/src/edu/berkeley/fleet/ships/Adder.java b/src/edu/berkeley/fleet/ships/Adder.java deleted file mode 100644 index e4955a6..0000000 --- a/src/edu/berkeley/fleet/ships/Adder.java +++ /dev/null @@ -1,36 +0,0 @@ -package edu.berkeley.fleet.ships; -import edu.berkeley.fleet.interpreter.*; -import edu.berkeley.fleet.*; - -import java.util.*; -import java.io.*; - -/** - * @author Adam Megacz - */ -public class Adder extends InterpreterShip { - - private int link; - - DataInbox a = new DataInbox(this, "a"); - DataInbox b = new DataInbox(this, "b"); - DataOutbox out = new DataOutbox(this, "out"); - - public String getBalsaName() { return "adder"; } - - public Adder(Interpreter fleet, String name) { - super(fleet, name); - } - - public void service() { - if (!out.readyForDataFromShip()) return; - if (!a.dataReadyForShip()) return; - if (!b.dataReadyForShip()) return; - - int inA = a.removeDataForShip(); - int inB = b.removeDataForShip(); - int result = inA + inB; - - out.addDataFromShip(result); - } -} diff --git a/src/edu/berkeley/fleet/ships/Alu1.java b/src/edu/berkeley/fleet/ships/Alu1.java deleted file mode 100644 index b2b6648..0000000 --- a/src/edu/berkeley/fleet/ships/Alu1.java +++ /dev/null @@ -1,37 +0,0 @@ -package edu.berkeley.fleet.ships; -import edu.berkeley.fleet.interpreter.*; -import edu.berkeley.fleet.*; - -import java.util.*; -import java.io.*; - -public class Alu1 extends InterpreterShip { - - DataInbox in = new DataInbox(this, "in"); - DataInbox op = new DataInbox(this, "op"); - DataOutbox out = new DataOutbox(this, "out"); - - public Alu1(Interpreter fleet, String name) { super(fleet, name); } - - public String getBalsaName() { return "alu1"; } - - public void service() { - if (in.dataReadyForShip() && op.dataReadyForShip()) { - int data = in.removeDataForShip(); - int opcode = in.removeDataForShip(); - switch(opcode) { - case 0: out.addDataFromShip(-1 * data); // NEG - break; - case 1: out.addDataFromShip(data+1); // INC - break; - case 2: out.addDataFromShip(data-1); // DEC - break; - case 3: out.addDataFromShip(Math.abs(data)); // ABS - break; - default: out.addDataFromShip(0); - break; - } - } - } - -} diff --git a/src/edu/berkeley/fleet/ships/Alu2.java b/src/edu/berkeley/fleet/ships/Alu2.java deleted file mode 100644 index 75a82dc..0000000 --- a/src/edu/berkeley/fleet/ships/Alu2.java +++ /dev/null @@ -1,41 +0,0 @@ -package edu.berkeley.fleet.ships; -import edu.berkeley.fleet.interpreter.*; -import edu.berkeley.fleet.*; - -import java.util.*; -import java.io.*; - -public class Alu2 extends InterpreterShip { - - DataInbox ap = new DataInbox(this, "a"); - DataInbox bp = new DataInbox(this, "b"); - DataInbox opp = new DataInbox(this, "op"); - DataOutbox out = new DataOutbox(this, "out"); - - public Alu2(Interpreter fleet, String name) { super(fleet, name); } - - public String getBalsaName() { return "alu2"; } - - public void service() { - if (ap.dataReadyForShip() && bp.dataReadyForShip() && opp.dataReadyForShip() && out.readyForItemFromShip()) { - int a = ap.removeDataForShip(); - int b = bp.removeDataForShip(); - int op = opp.removeDataForShip(); - switch(op) { - case 0: out.addDataFromShip(a+b); // ADD - break; - case 1: out.addDataFromShip(a-b); // SUB - break; - case 2: out.addDataFromShip(a*b); // MUL - break; - case 3: out.addDataFromShip(a/b); // DIV - break; - case 4: out.addDataFromShip(a%b); // REM - break; - default: out.addDataFromShip(0); - break; - } - } - } - -} diff --git a/src/edu/berkeley/fleet/ships/Dcache.java b/src/edu/berkeley/fleet/ships/Dcache.java deleted file mode 100644 index c570f87..0000000 --- a/src/edu/berkeley/fleet/ships/Dcache.java +++ /dev/null @@ -1,45 +0,0 @@ -package edu.berkeley.fleet.ships; -import edu.berkeley.fleet.interpreter.*; -import edu.berkeley.fleet.*; - -import java.util.*; -import java.io.*; - -public class Dcache extends InterpreterShip { - - DataInbox read_addr = new DataInbox(this, "read_addr"); - DataOutbox read_data = new DataOutbox(this, "read_data"); - DataInbox write_addr = new DataInbox(this, "write_addr"); - DataInbox write_data = new DataInbox(this, "write_data"); - TokenOutbox write_done = new TokenOutbox(this, "write_done"); - - public Dcache(Interpreter fleet, String name) { super(fleet, name); } - - public String getBalsaName() { return "dcache"; } - - private long[] mem = new long[0]; - public long readMem(int addr) { return mem[addr]; } - public void writeMem(int addr, long val) { - if (addr >= mem.length) { - long[] newmem = new long[addr * 2 + 1]; - System.arraycopy(mem, 0, newmem, 0, mem.length); - mem = newmem; - } - mem[addr] = val; - } - - public void service() { - if (read_addr.dataReadyForShip() && - read_data.readyForItemFromShip()) { - read_data.addDataFromShip((int)readMem(read_addr.removeDataForShip())); - } - - if (write_addr.dataReadyForShip() && - write_data.dataReadyForShip() && - write_done.readyForItemFromShip()) { - writeMem(write_addr.removeDataForShip(), - write_data.removeDataForShip()); - write_done.addTokenFromShip(); - } - } -} diff --git a/src/edu/berkeley/fleet/ships/Debug.java b/src/edu/berkeley/fleet/ships/Debug.java deleted file mode 100644 index c6273f0..0000000 --- a/src/edu/berkeley/fleet/ships/Debug.java +++ /dev/null @@ -1,24 +0,0 @@ -package edu.berkeley.fleet.ships; -import edu.berkeley.fleet.interpreter.*; -import edu.berkeley.fleet.*; - -import java.util.*; -import java.io.*; - -public class Debug extends InterpreterShip { - - DataInbox data = new DataInbox(this, "data"); - DataOutbox out = new DataOutbox(this, "out", true); - - public String getBalsaName() { return "debug"; } - - public Debug(Interpreter fleet, String name) { - super(fleet, name); - } - - public void service() { - if (data.dataReadyForShip()) - Log.println(Log.invert(" DEBUG: got a datum: " + data.removeDataForShip()+Log.clreol())); - } - -} diff --git a/src/edu/berkeley/fleet/ships/Execute.java b/src/edu/berkeley/fleet/ships/Execute.java deleted file mode 100644 index 7880738..0000000 --- a/src/edu/berkeley/fleet/ships/Execute.java +++ /dev/null @@ -1,24 +0,0 @@ -package edu.berkeley.fleet.ships; -import edu.berkeley.fleet.interpreter.*; -import edu.berkeley.fleet.*; - -import java.util.*; -import java.io.*; - -public class Execute extends InterpreterShip { - - DataInbox in = new DataInbox(this, "in", true); - DataOutbox ihorn = new DataOutbox(this, "ihorn", true, true, false); - DataOutbox dhorn = new DataOutbox(this, "dhorn", true, false, true); - - public String getBalsaName() { return "execute"; } - - public Execute(Interpreter fleet, String name) { - super(fleet, name); - } - - public void service() { - //throw new Error("the Execute ship is only for FPGA simulations"); - } - -} diff --git a/src/edu/berkeley/fleet/ships/FetchShip.java b/src/edu/berkeley/fleet/ships/FetchShip.java deleted file mode 100644 index f6d1656..0000000 --- a/src/edu/berkeley/fleet/ships/FetchShip.java +++ /dev/null @@ -1,39 +0,0 @@ -package edu.berkeley.fleet.ships; -import edu.berkeley.fleet.interpreter.*; -import edu.berkeley.fleet.*; - -import java.util.*; -import java.io.*; - -public class FetchShip extends InterpreterShip { - - DataInbox codebag = new DataInbox(this, "codebag"); - TokenInbox release = new TokenInbox(this, "release"); - TokenInbox revoke = new TokenInbox(this, "revoke"); - TokenOutbox done = new TokenOutbox(this, "done"); - - public FetchShip(Interpreter fleet, String name) { - super(fleet, name); - } - - public void service() { - if (!codebag.dataReadyForShip()) return; - if (!release.tokenReadyForShip() && !revoke.tokenReadyForShip()) return; - if (!done.readyForTokenFromShip()) return; - int cbd = codebag.removeDataForShip(); - - CodeBag cb = CodeBag.getCodeBagByDescriptor(cbd); - if (revoke.tokenReadyForShip()) { - revoke.removeTokenForShip(); - Log.print("revoking codebag: " + cb + "\n"); - } else { - release.removeTokenForShip(); - if (cb==null) - throw new RuntimeException("bogus codebag -- this should not happen"); - cb.dispatch(getInterpreter()); - } - - done.addTokenFromShip(); - } - -} diff --git a/src/edu/berkeley/fleet/ships/Fifo.java b/src/edu/berkeley/fleet/ships/Fifo.java deleted file mode 100644 index b0fb610..0000000 --- a/src/edu/berkeley/fleet/ships/Fifo.java +++ /dev/null @@ -1,32 +0,0 @@ -package edu.berkeley.fleet.ships; -import edu.berkeley.fleet.interpreter.*; -import edu.berkeley.fleet.*; - -import java.util.*; -import java.io.*; - -public class Fifo extends InterpreterShip { - - DataInbox in = new DataInbox(this, "in"); - DataOutbox out = new DataOutbox(this, "out"); - - public String getBalsaName() { return "fifo"; } - - private Queue fifo = new LinkedList(); - - public Fifo(Interpreter fleet, String name) { - super(fleet, name); - } - - public void service() { - if (in.dataReadyForShip()) { - fifo.add(in.removeDataForShip()); - //Log.println(name + ": fifo occupancy is now " + fifo.size() + " items"); - } - if (out.readyForDataFromShip() && fifo.size() > 0) { - out.addDataFromShip(fifo.remove()); - //Log.println(name + ": fifo occupancy is now " + fifo.size() + " items"); - } - } - -} diff --git a/src/edu/berkeley/fleet/ships/HaltShip.java b/src/edu/berkeley/fleet/ships/HaltShip.java deleted file mode 100644 index d5d72e3..0000000 --- a/src/edu/berkeley/fleet/ships/HaltShip.java +++ /dev/null @@ -1,23 +0,0 @@ -package edu.berkeley.fleet.ships; -import edu.berkeley.fleet.interpreter.*; -import edu.berkeley.fleet.*; - -import java.util.*; -import java.io.*; - -public class HaltShip extends InterpreterShip { - - TokenInbox in = new TokenInbox(this, "in"); - - public HaltShip(Interpreter fleet, String name) { - super(fleet, name); - } - - public void service() { - if (!in.tokenReadyForShip()) return; - in.removeTokenForShip(); - ((Interpreter)getInterpreter()).halt = true; - Log.println(Log.yellow(" HALT: ====== halt ship got a token; halting the fleet ======")); - } - -} diff --git a/src/edu/berkeley/fleet/ships/Icache.java b/src/edu/berkeley/fleet/ships/Icache.java deleted file mode 100644 index 11b8bbf..0000000 --- a/src/edu/berkeley/fleet/ships/Icache.java +++ /dev/null @@ -1,62 +0,0 @@ -package edu.berkeley.fleet.ships; -import edu.berkeley.fleet.interpreter.*; -import edu.berkeley.fleet.*; -import edu.berkeley.fleet.api.*; - -import java.util.*; -import java.io.*; - -public class Icache extends InterpreterShip { - - DataInbox write_addr = new DataInbox(this, "write_addr"); - DataInbox write_data = new DataInbox(this, "write_data"); - TokenOutbox write_done = new TokenOutbox(this, "write_done"); - - DataInbox cbd = new DataInbox(this, "cbd"); - - // only for hardware fleet - DataInbox command = new DataInbox(this, "command", true); - DataOutbox ihorn = new DataOutbox(this, "ihorn", true, true, false); - DataOutbox dhorn = new DataOutbox(this, "dhorn", true, false, true); - - public Icache(Interpreter fleet, String name) { super(fleet, name); } - - public String getBalsaName() { return "icache"; } - - private long[] mem = new long[0]; - public long readMem(int addr) { return mem[addr]; } - public void writeMem(int addr, long val) { - if (addr >= mem.length) { - long[] newmem = new long[addr * 2 + 1]; - System.arraycopy(mem, 0, newmem, 0, mem.length); - mem = newmem; - } - mem[addr] = val; - } - - public void dispatch(int addr, int size) { - for(int i=addr; i> 6; - int size = val & 0x3f; - dispatch(addr, size); - } - - if (write_addr.dataReadyForShip() && - write_data.dataReadyForShip() && - write_done.readyForItemFromShip()) { - Interpreter f = (Interpreter)getFleet(); - f.writeMem(write_addr.removeDataForShip(), - write_data.removeDataForShip()); - write_done.addTokenFromShip(); - } - } - -} diff --git a/src/edu/berkeley/fleet/ships/Lut.java b/src/edu/berkeley/fleet/ships/Lut.java deleted file mode 100644 index 4fa1a9d..0000000 --- a/src/edu/berkeley/fleet/ships/Lut.java +++ /dev/null @@ -1,33 +0,0 @@ -package edu.berkeley.fleet.ships; -import edu.berkeley.fleet.interpreter.*; -import edu.berkeley.fleet.*; - -import java.util.*; -import java.io.*; - -public class Lut extends InterpreterShip { - - DataInbox ap = new DataInbox(this, "a"); - DataInbox bp = new DataInbox(this, "b"); - DataInbox lutp = new DataInbox(this, "lut"); - DataOutbox out = new DataOutbox(this, "out"); - - public Lut(Interpreter fleet, String name) { super(fleet, name); } - - public String getBalsaName() { return "lut"; } - - public void service() { - if (ap.dataReadyForShip() && bp.dataReadyForShip() && lutp.dataReadyForShip()) { - int a = ap.removeDataForShip(); - int b = bp.removeDataForShip(); - int lut = lutp.removeDataForShip(); - int ret = 0; - if ((lut & 1) != 0) ret |= (~a) & (~b); - if ((lut & 2) != 0) ret |= (a) & (~b); - if ((lut & 4) != 0) ret |= (~a) & (b); - if ((lut & 8) != 0) ret |= a & b; - out.addDataFromShip(ret); - } - } - -} diff --git a/src/edu/berkeley/fleet/ships/Shifter.java b/src/edu/berkeley/fleet/ships/Shifter.java deleted file mode 100644 index f532e7f..0000000 --- a/src/edu/berkeley/fleet/ships/Shifter.java +++ /dev/null @@ -1,32 +0,0 @@ -package edu.berkeley.fleet.ships; -import edu.berkeley.fleet.interpreter.*; -import edu.berkeley.fleet.*; - -import java.util.*; -import java.io.*; - -public class Shifter extends InterpreterShip { - - private int count = 0; - - DataInbox valp = new DataInbox(this, "val"); - DataInbox shamtp = new DataInbox(this, "shamt"); - DataOutbox out = new DataOutbox(this, "out"); - - public Shifter(Interpreter fleet, String name) { - super(fleet, name); - } - - public String getBalsaName() { return "shift"; } - - public void service() { - if (valp.dataReadyForShip() && shamtp.dataReadyForShip()) { - int val = valp.removeDataForShip(); - int shamt = shamtp.removeDataForShip(); - if (shamt < 0) val = val >> (-1 * shamt); - else val = val << shamt; - out.addDataFromShip(val); - } - } - -}