From e1b5d817b2f55a43b885104afe7ebf72cf34bb7e Mon Sep 17 00:00:00 2001 From: adam Date: Tue, 4 Nov 2008 08:41:03 +0100 Subject: [PATCH] add partial support for writeback to mergesort demo --- src/edu/berkeley/fleet/ir/Process.java | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/src/edu/berkeley/fleet/ir/Process.java b/src/edu/berkeley/fleet/ir/Process.java index eb31fc2..c864931 100644 --- a/src/edu/berkeley/fleet/ir/Process.java +++ b/src/edu/berkeley/fleet/ir/Process.java @@ -480,13 +480,16 @@ public class Process { vals[i] = Math.abs(random.nextInt()); } + Ship mem1 = fleet.getShip("Memory", 1); + Ship mem2 = fleet.getShip("Memory", 2); + FleetProcess fp; int stride = 1; fp = null; while(stride < vals.length) { if (fp==null) fp = fleet.run(new Instruction[0]); System.out.println("stride " + stride); - vals = mergeSort(fp, fleet, vals, stride); + vals = mergeSort(fp, fleet, vals, stride, mem1, mem2); stride = stride * 2; //fp.terminate(); fp = null; System.out.println(); @@ -568,13 +571,14 @@ public class Process { } // FIXME: numbers seem to get duplicated when stride=2 - public static long[] mergeSort(FleetProcess fp, Fleet fleet, long[] vals, int stride_length) throws Exception { + public static long[] mergeSort(FleetProcess fp, Fleet fleet, + long[] vals, int stride_length, + Ship memoryShip1, Ship memoryShip2) throws Exception { BitVector[] mem = new BitVector[vals.length]; for(int i=0; i