before queue integration

This commit is contained in:
felsabbagh3 2019-02-14 22:46:39 -05:00
parent 6935d52c39
commit 337a8669fe
16 changed files with 815 additions and 82 deletions

View file

@ -1,74 +1,2 @@
start
./riscv_gpgpu/gpgpu_test.hex
ABOUT TO START
INTERRUPT ECALL/EBREAK
INTERRUPT ECALL/EBREAK
INTERRUPT ECALL/EBREAK
INTERRUPT ECALL/EBREAK
Total steps: 300
Total insts: 1503
=== Warp 0 ===
Steps : 300
Insts : 504
Loads : 0
Stores: 112
GRADE: FAILED 0
=== Warp 1 ===
Steps : 129
Insts : 333
Loads : 0
Stores: 76
GRADE: FAILED 0
=== Warp 2 ===
Steps : 129
Insts : 333
Loads : 0
Stores: 76
GRADE: FAILED 0
=== Warp 3 ===
Steps : 129
Insts : 333
Loads : 0
Stores: 76
GRADE: FAILED 0
=== Warp 4 ===
Steps : 0
Insts : 0
Loads : 0
Stores: 0
GRADE: FAILED 0
=== Warp 5 ===
Steps : 0
Insts : 0
Loads : 0
Stores: 0
GRADE: FAILED 0
=== Warp 6 ===
Steps : 0
Insts : 0
Loads : 0
Stores: 0
GRADE: FAILED 0
=== Warp 7 ===
Steps : 0
Insts : 0
Loads : 0
Stores: 0
GRADE: FAILED 0
81000000 = 1
81000004 = 3
81000008 = 8
8100000c = 0
81000010 = 8
81000014 = 1
81000018 = 2
8100001c = 3
81000020 = 4
81000024 = 5
81000028 = 6
8100002c = 7
81000030 = 8
81000034 = 9
81000038 = a
8100003c = b

View file

@ -13,8 +13,8 @@ unsigned x[] = {1, 1, 6, 0, 3, 1, 1, 2, 0, 3, 6, 7, 5, 7, 7, 9};
unsigned y[] = {0, 2, 2, 0, 5, 0, 1, 1, 4, 2, 0, 0, 3, 2, 3, 2};
unsigned z[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
#define NUM_WARPS 4
#define NUM_THREADS 4
#define NUM_WARPS 8
#define NUM_THREADS 2
int main()
{

View file

@ -18,8 +18,8 @@ Disassembly of section .text:
80000028: 04068693 addi a3,a3,64 # 81000040 <y+0xffffffc0>
8000002c: 80000637 lui a2,0x80000
80000030: 05860613 addi a2,a2,88 # 80000058 <y+0xfeffffd8>
80000034: 00400593 li a1,4
80000038: 00400513 li a0,4
80000034: 00200593 li a1,2
80000038: 00800513 li a0,8
8000003c: 1d4000ef jal ra,80000210 <createWarps>
80000040: 00000793 li a5,0
80000044: 00078513 mv a0,a5
@ -42,7 +42,7 @@ Disassembly of section .text:
80000080: 2b0000ef jal ra,80000330 <get_3rd_arg>
80000084: fea42223 sw a0,-28(s0)
80000088: fd842783 lw a5,-40(s0)
8000008c: 00279793 slli a5,a5,0x2
8000008c: 00179793 slli a5,a5,0x1
80000090: fdc42703 lw a4,-36(s0)
80000094: 00f707b3 add a5,a4,a5
80000098: fef42023 sw a5,-32(s0)

Binary file not shown.

View file

@ -2,12 +2,12 @@
:10000000130101FF232611002324810013040101A1
:10001000EF008034B707008193870700370700811E
:1000200013070708B7060081938606043706008089
:10003000130686059305400013054000EF00401DA0
:10003000130686059305200013058000EF00401D80
:1000400093070000138507008320C100032481006B
:100050001301010167800000130101FD2326110235
:100060002324810213040103232EA4FC232CB4FCBB
:10007000EF0000272326A4FEEF0000292324A4FE7E
:10008000EF00002B2322A4FE832784FD93972700F3
:10008000EF00002B2322A4FE832784FD9397170003
:100090000327C4FDB307F7002320F4FE832704FEE3
:1000A000939727000327C4FEB307F70083A6070032
:1000B000832704FE93972700032784FEB307F700E6

BIN
src/riscv_gpgpu/lib/a.out Executable file

Binary file not shown.

3
src/riscv_gpgpu/lib/hi.sh Executable file
View file

@ -0,0 +1,3 @@
/opt/riscv-nommu/bin/riscv32-unknown-linux-gnu-gcc -march=rv32i -mabi=ilp32 -O0 -Wl,-Bstatic,-T,linker.ld -ffreestanding -nostdlib queue.c -o queue.elf
/opt/riscv-nommu/bin/riscv32-unknown-linux-gnu-objdump -D queue.elf > queue.dump
/opt/riscv-nommu/bin/riscv32-unknown-linux-gnu-objcopy -O ihex queue.elf queue.hex

View file

@ -4,7 +4,6 @@
// {
void createThreads(unsigned num_threads, unsigned wid, unsigned func_addr, unsigned * x_ptr, unsigned * y_ptr, unsigned * z_ptr)
{
register unsigned *xx asm("s2") = x_ptr;

View file

@ -0,0 +1,44 @@
/* ---- Original Script: /opt/riscv32i/riscv32-unknown-elf/lib/ldscripts/elf32lriscv.x ---- */
/* Default linker script, for normal executables */
/* Copyright (C) 2014-2017 Free Software Foundation, Inc.
Copying and distribution of this script, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. */
OUTPUT_FORMAT("elf32-littleriscv", "elf32-littleriscv",
"elf32-littleriscv")
OUTPUT_ARCH(riscv)
ENTRY(main)
SECTIONS
{
. = 0x80000000;
.text :
{
*(.text)
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
*(.text.exit .text.exit.*)
*(.text.startup .text.startup.*)
*(.text.hot .text.hot.*)
*(.stub .text.* .gnu.linkonce.t.*)
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
}
.init :
{
KEEP (*(SORT_NONE(.init)))
}
.plt : { *(.plt) }
.iplt : { *(.iplt) }
.fini :
{
KEEP (*(SORT_NONE(.fini)))
}
PROVIDE (__etext = .);
PROVIDE (_etext = .);
PROVIDE (etext = .);
. = 0x81000000;
.rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
.rodata1 : { *(.rodata1) }
. = 0x82000000;
.comment : { *(.comment) }
}

126
src/riscv_gpgpu/lib/queue.c Normal file
View file

@ -0,0 +1,126 @@
#include "queue.h"
unsigned x[] = {1, 1, 6, 0, 3, 1, 1, 2, 0, 3, 6, 7, 5, 7, 7, 9};
unsigned y[] = {0, 2, 2, 0, 5, 0, 1, 1, 4, 2, 0, 0, 3, 2, 3, 2};
unsigned z[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
int main()
{
Job j;
j.func_ptr = (unsigned) func;
j.x = x;
j.y = y;
j.z = z;
enqueue(j);
enqueue(j);
enqueue(j);
enqueue(j);
enqueue(j);
enqueue(j);
j = dequeue();
j = dequeue();
enqueue(j);
enqueue(j);
if (!isFull())
{
enqueue(j);
}
if (!isFull())
{
enqueue(j);
}
if (!isFull())
{
enqueue(j);
}
if (!isFull())
{
enqueue(j);
}
if (!isFull())
{
enqueue(j);
}
if (!isFull())
{
enqueue(j);
}
dequeue();
dequeue();
dequeue();
dequeue();
dequeue();
dequeue();
dequeue();
dequeue();
dequeue();
dequeue();
return 0;
}
void initialize_queue(void)
{
q.start_i = 0;
q.end_i = 0;
q.num_j = 0;
}
void enqueue(Job j)
{
q.num_j++;
q.jobs[q.end_i] = j;
if ((q.end_i + 1) < SIZE)
{
q.end_i++;
}
else
{
q.end_i = 0;
}
}
Job dequeue(void)
{
q.num_j--;
Job j = q.jobs[q.start_i];
if ((q.start_i + 1) < SIZE)
{
q.start_i++;
}
else
{
q.start_i = 0;
}
}
int isFull(void)
{
return (q.num_j == SIZE);
}
int isEmpty(void)
{
return (q.num_j == 0);
}
void func()
{
}

View file

@ -0,0 +1,481 @@
queue.elf: file format elf32-littleriscv
Disassembly of section .text:
80000000 <main>:
80000000: fd010113 addi sp,sp,-48
80000004: 02112623 sw ra,44(sp)
80000008: 02812423 sw s0,40(sp)
8000000c: 03010413 addi s0,sp,48
80000010: 800007b7 lui a5,0x80000
80000014: 5e078793 addi a5,a5,1504 # 800005e0 <y+0xff0004b4>
80000018: fef42023 sw a5,-32(s0)
8000001c: 810007b7 lui a5,0x81000
80000020: 0ec78793 addi a5,a5,236 # 810000ec <y+0xffffffc0>
80000024: fef42223 sw a5,-28(s0)
80000028: 810007b7 lui a5,0x81000
8000002c: 12c78793 addi a5,a5,300 # 8100012c <y+0x0>
80000030: fef42423 sw a5,-24(s0)
80000034: 810007b7 lui a5,0x81000
80000038: 00078793 mv a5,a5
8000003c: fef42623 sw a5,-20(s0)
80000040: fe042603 lw a2,-32(s0)
80000044: fe442683 lw a3,-28(s0)
80000048: fe842703 lw a4,-24(s0)
8000004c: fec42783 lw a5,-20(s0)
80000050: fcc42823 sw a2,-48(s0)
80000054: fcd42a23 sw a3,-44(s0)
80000058: fce42c23 sw a4,-40(s0)
8000005c: fcf42e23 sw a5,-36(s0)
80000060: fd040793 addi a5,s0,-48
80000064: 00078513 mv a0,a5
80000068: 390000ef jal ra,800003f8 <enqueue>
8000006c: fe042603 lw a2,-32(s0)
80000070: fe442683 lw a3,-28(s0)
80000074: fe842703 lw a4,-24(s0)
80000078: fec42783 lw a5,-20(s0)
8000007c: fcc42823 sw a2,-48(s0)
80000080: fcd42a23 sw a3,-44(s0)
80000084: fce42c23 sw a4,-40(s0)
80000088: fcf42e23 sw a5,-36(s0)
8000008c: fd040793 addi a5,s0,-48
80000090: 00078513 mv a0,a5
80000094: 364000ef jal ra,800003f8 <enqueue>
80000098: fe042603 lw a2,-32(s0)
8000009c: fe442683 lw a3,-28(s0)
800000a0: fe842703 lw a4,-24(s0)
800000a4: fec42783 lw a5,-20(s0)
800000a8: fcc42823 sw a2,-48(s0)
800000ac: fcd42a23 sw a3,-44(s0)
800000b0: fce42c23 sw a4,-40(s0)
800000b4: fcf42e23 sw a5,-36(s0)
800000b8: fd040793 addi a5,s0,-48
800000bc: 00078513 mv a0,a5
800000c0: 338000ef jal ra,800003f8 <enqueue>
800000c4: fe042603 lw a2,-32(s0)
800000c8: fe442683 lw a3,-28(s0)
800000cc: fe842703 lw a4,-24(s0)
800000d0: fec42783 lw a5,-20(s0)
800000d4: fcc42823 sw a2,-48(s0)
800000d8: fcd42a23 sw a3,-44(s0)
800000dc: fce42c23 sw a4,-40(s0)
800000e0: fcf42e23 sw a5,-36(s0)
800000e4: fd040793 addi a5,s0,-48
800000e8: 00078513 mv a0,a5
800000ec: 30c000ef jal ra,800003f8 <enqueue>
800000f0: fe042603 lw a2,-32(s0)
800000f4: fe442683 lw a3,-28(s0)
800000f8: fe842703 lw a4,-24(s0)
800000fc: fec42783 lw a5,-20(s0)
80000100: fcc42823 sw a2,-48(s0)
80000104: fcd42a23 sw a3,-44(s0)
80000108: fce42c23 sw a4,-40(s0)
8000010c: fcf42e23 sw a5,-36(s0)
80000110: fd040793 addi a5,s0,-48
80000114: 00078513 mv a0,a5
80000118: 2e0000ef jal ra,800003f8 <enqueue>
8000011c: fe042603 lw a2,-32(s0)
80000120: fe442683 lw a3,-28(s0)
80000124: fe842703 lw a4,-24(s0)
80000128: fec42783 lw a5,-20(s0)
8000012c: fcc42823 sw a2,-48(s0)
80000130: fcd42a23 sw a3,-44(s0)
80000134: fce42c23 sw a4,-40(s0)
80000138: fcf42e23 sw a5,-36(s0)
8000013c: fd040793 addi a5,s0,-48
80000140: 00078513 mv a0,a5
80000144: 2b4000ef jal ra,800003f8 <enqueue>
80000148: fe040793 addi a5,s0,-32
8000014c: 00078513 mv a0,a5
80000150: 36c000ef jal ra,800004bc <dequeue>
80000154: fd040793 addi a5,s0,-48
80000158: 00078513 mv a0,a5
8000015c: 360000ef jal ra,800004bc <dequeue>
80000160: fd042603 lw a2,-48(s0)
80000164: fd442683 lw a3,-44(s0)
80000168: fd842703 lw a4,-40(s0)
8000016c: fdc42783 lw a5,-36(s0)
80000170: fec42023 sw a2,-32(s0)
80000174: fed42223 sw a3,-28(s0)
80000178: fee42423 sw a4,-24(s0)
8000017c: fef42623 sw a5,-20(s0)
80000180: fe042603 lw a2,-32(s0)
80000184: fe442683 lw a3,-28(s0)
80000188: fe842703 lw a4,-24(s0)
8000018c: fec42783 lw a5,-20(s0)
80000190: fcc42823 sw a2,-48(s0)
80000194: fcd42a23 sw a3,-44(s0)
80000198: fce42c23 sw a4,-40(s0)
8000019c: fcf42e23 sw a5,-36(s0)
800001a0: fd040793 addi a5,s0,-48
800001a4: 00078513 mv a0,a5
800001a8: 250000ef jal ra,800003f8 <enqueue>
800001ac: fe042603 lw a2,-32(s0)
800001b0: fe442683 lw a3,-28(s0)
800001b4: fe842703 lw a4,-24(s0)
800001b8: fec42783 lw a5,-20(s0)
800001bc: fcc42823 sw a2,-48(s0)
800001c0: fcd42a23 sw a3,-44(s0)
800001c4: fce42c23 sw a4,-40(s0)
800001c8: fcf42e23 sw a5,-36(s0)
800001cc: fd040793 addi a5,s0,-48
800001d0: 00078513 mv a0,a5
800001d4: 224000ef jal ra,800003f8 <enqueue>
800001d8: 3a4000ef jal ra,8000057c <isFull>
800001dc: 00050793 mv a5,a0
800001e0: 02079863 bnez a5,80000210 <main+0x210>
800001e4: fe042603 lw a2,-32(s0)
800001e8: fe442683 lw a3,-28(s0)
800001ec: fe842703 lw a4,-24(s0)
800001f0: fec42783 lw a5,-20(s0)
800001f4: fcc42823 sw a2,-48(s0)
800001f8: fcd42a23 sw a3,-44(s0)
800001fc: fce42c23 sw a4,-40(s0)
80000200: fcf42e23 sw a5,-36(s0)
80000204: fd040793 addi a5,s0,-48
80000208: 00078513 mv a0,a5
8000020c: 1ec000ef jal ra,800003f8 <enqueue>
80000210: 36c000ef jal ra,8000057c <isFull>
80000214: 00050793 mv a5,a0
80000218: 02079863 bnez a5,80000248 <main+0x248>
8000021c: fe042603 lw a2,-32(s0)
80000220: fe442683 lw a3,-28(s0)
80000224: fe842703 lw a4,-24(s0)
80000228: fec42783 lw a5,-20(s0)
8000022c: fcc42823 sw a2,-48(s0)
80000230: fcd42a23 sw a3,-44(s0)
80000234: fce42c23 sw a4,-40(s0)
80000238: fcf42e23 sw a5,-36(s0)
8000023c: fd040793 addi a5,s0,-48
80000240: 00078513 mv a0,a5
80000244: 1b4000ef jal ra,800003f8 <enqueue>
80000248: 334000ef jal ra,8000057c <isFull>
8000024c: 00050793 mv a5,a0
80000250: 02079863 bnez a5,80000280 <main+0x280>
80000254: fe042603 lw a2,-32(s0)
80000258: fe442683 lw a3,-28(s0)
8000025c: fe842703 lw a4,-24(s0)
80000260: fec42783 lw a5,-20(s0)
80000264: fcc42823 sw a2,-48(s0)
80000268: fcd42a23 sw a3,-44(s0)
8000026c: fce42c23 sw a4,-40(s0)
80000270: fcf42e23 sw a5,-36(s0)
80000274: fd040793 addi a5,s0,-48
80000278: 00078513 mv a0,a5
8000027c: 17c000ef jal ra,800003f8 <enqueue>
80000280: 2fc000ef jal ra,8000057c <isFull>
80000284: 00050793 mv a5,a0
80000288: 02079863 bnez a5,800002b8 <main+0x2b8>
8000028c: fe042603 lw a2,-32(s0)
80000290: fe442683 lw a3,-28(s0)
80000294: fe842703 lw a4,-24(s0)
80000298: fec42783 lw a5,-20(s0)
8000029c: fcc42823 sw a2,-48(s0)
800002a0: fcd42a23 sw a3,-44(s0)
800002a4: fce42c23 sw a4,-40(s0)
800002a8: fcf42e23 sw a5,-36(s0)
800002ac: fd040793 addi a5,s0,-48
800002b0: 00078513 mv a0,a5
800002b4: 144000ef jal ra,800003f8 <enqueue>
800002b8: 2c4000ef jal ra,8000057c <isFull>
800002bc: 00050793 mv a5,a0
800002c0: 02079863 bnez a5,800002f0 <main+0x2f0>
800002c4: fe042603 lw a2,-32(s0)
800002c8: fe442683 lw a3,-28(s0)
800002cc: fe842703 lw a4,-24(s0)
800002d0: fec42783 lw a5,-20(s0)
800002d4: fcc42823 sw a2,-48(s0)
800002d8: fcd42a23 sw a3,-44(s0)
800002dc: fce42c23 sw a4,-40(s0)
800002e0: fcf42e23 sw a5,-36(s0)
800002e4: fd040793 addi a5,s0,-48
800002e8: 00078513 mv a0,a5
800002ec: 10c000ef jal ra,800003f8 <enqueue>
800002f0: 28c000ef jal ra,8000057c <isFull>
800002f4: 00050793 mv a5,a0
800002f8: 02079863 bnez a5,80000328 <main+0x328>
800002fc: fe042603 lw a2,-32(s0)
80000300: fe442683 lw a3,-28(s0)
80000304: fe842703 lw a4,-24(s0)
80000308: fec42783 lw a5,-20(s0)
8000030c: fcc42823 sw a2,-48(s0)
80000310: fcd42a23 sw a3,-44(s0)
80000314: fce42c23 sw a4,-40(s0)
80000318: fcf42e23 sw a5,-36(s0)
8000031c: fd040793 addi a5,s0,-48
80000320: 00078513 mv a0,a5
80000324: 0d4000ef jal ra,800003f8 <enqueue>
80000328: fd040793 addi a5,s0,-48
8000032c: 00078513 mv a0,a5
80000330: 18c000ef jal ra,800004bc <dequeue>
80000334: fd040793 addi a5,s0,-48
80000338: 00078513 mv a0,a5
8000033c: 180000ef jal ra,800004bc <dequeue>
80000340: fd040793 addi a5,s0,-48
80000344: 00078513 mv a0,a5
80000348: 174000ef jal ra,800004bc <dequeue>
8000034c: fd040793 addi a5,s0,-48
80000350: 00078513 mv a0,a5
80000354: 168000ef jal ra,800004bc <dequeue>
80000358: fd040793 addi a5,s0,-48
8000035c: 00078513 mv a0,a5
80000360: 15c000ef jal ra,800004bc <dequeue>
80000364: fd040793 addi a5,s0,-48
80000368: 00078513 mv a0,a5
8000036c: 150000ef jal ra,800004bc <dequeue>
80000370: fd040793 addi a5,s0,-48
80000374: 00078513 mv a0,a5
80000378: 144000ef jal ra,800004bc <dequeue>
8000037c: fd040793 addi a5,s0,-48
80000380: 00078513 mv a0,a5
80000384: 138000ef jal ra,800004bc <dequeue>
80000388: fd040793 addi a5,s0,-48
8000038c: 00078513 mv a0,a5
80000390: 12c000ef jal ra,800004bc <dequeue>
80000394: fd040793 addi a5,s0,-48
80000398: 00078513 mv a0,a5
8000039c: 120000ef jal ra,800004bc <dequeue>
800003a0: 00000793 li a5,0
800003a4: 00078513 mv a0,a5
800003a8: 02c12083 lw ra,44(sp)
800003ac: 02812403 lw s0,40(sp)
800003b0: 03010113 addi sp,sp,48
800003b4: 00008067 ret
800003b8 <initialize_queue>:
800003b8: ff010113 addi sp,sp,-16
800003bc: 00812623 sw s0,12(sp)
800003c0: 01010413 addi s0,sp,16
800003c4: 810007b7 lui a5,0x81000
800003c8: 04078793 addi a5,a5,64 # 81000040 <y+0xffffff14>
800003cc: 0a07a023 sw zero,160(a5)
800003d0: 810007b7 lui a5,0x81000
800003d4: 04078793 addi a5,a5,64 # 81000040 <y+0xffffff14>
800003d8: 0a07a223 sw zero,164(a5)
800003dc: 810007b7 lui a5,0x81000
800003e0: 04078793 addi a5,a5,64 # 81000040 <y+0xffffff14>
800003e4: 0a07a423 sw zero,168(a5)
800003e8: 00000013 nop
800003ec: 00c12403 lw s0,12(sp)
800003f0: 01010113 addi sp,sp,16
800003f4: 00008067 ret
800003f8 <enqueue>:
800003f8: ff010113 addi sp,sp,-16
800003fc: 00812623 sw s0,12(sp)
80000400: 00912423 sw s1,8(sp)
80000404: 01010413 addi s0,sp,16
80000408: 00050493 mv s1,a0
8000040c: 810007b7 lui a5,0x81000
80000410: 04078793 addi a5,a5,64 # 81000040 <y+0xffffff14>
80000414: 0a87a783 lw a5,168(a5)
80000418: 00178713 addi a4,a5,1
8000041c: 810007b7 lui a5,0x81000
80000420: 04078793 addi a5,a5,64 # 81000040 <y+0xffffff14>
80000424: 0ae7a423 sw a4,168(a5)
80000428: 810007b7 lui a5,0x81000
8000042c: 04078793 addi a5,a5,64 # 81000040 <y+0xffffff14>
80000430: 0a47a703 lw a4,164(a5)
80000434: 810007b7 lui a5,0x81000
80000438: 00471713 slli a4,a4,0x4
8000043c: 04078793 addi a5,a5,64 # 81000040 <y+0xffffff14>
80000440: 00f707b3 add a5,a4,a5
80000444: 0004a583 lw a1,0(s1)
80000448: 0044a603 lw a2,4(s1)
8000044c: 0084a683 lw a3,8(s1)
80000450: 00c4a703 lw a4,12(s1)
80000454: 00b7a023 sw a1,0(a5)
80000458: 00c7a223 sw a2,4(a5)
8000045c: 00d7a423 sw a3,8(a5)
80000460: 00e7a623 sw a4,12(a5)
80000464: 810007b7 lui a5,0x81000
80000468: 04078793 addi a5,a5,64 # 81000040 <y+0xffffff14>
8000046c: 0a47a783 lw a5,164(a5)
80000470: 00178713 addi a4,a5,1
80000474: 00900793 li a5,9
80000478: 02e7e263 bltu a5,a4,8000049c <enqueue+0xa4>
8000047c: 810007b7 lui a5,0x81000
80000480: 04078793 addi a5,a5,64 # 81000040 <y+0xffffff14>
80000484: 0a47a783 lw a5,164(a5)
80000488: 00178713 addi a4,a5,1
8000048c: 810007b7 lui a5,0x81000
80000490: 04078793 addi a5,a5,64 # 81000040 <y+0xffffff14>
80000494: 0ae7a223 sw a4,164(a5)
80000498: 0100006f j 800004a8 <enqueue+0xb0>
8000049c: 810007b7 lui a5,0x81000
800004a0: 04078793 addi a5,a5,64 # 81000040 <y+0xffffff14>
800004a4: 0a07a223 sw zero,164(a5)
800004a8: 00000013 nop
800004ac: 00c12403 lw s0,12(sp)
800004b0: 00812483 lw s1,8(sp)
800004b4: 01010113 addi sp,sp,16
800004b8: 00008067 ret
800004bc <dequeue>:
800004bc: fd010113 addi sp,sp,-48
800004c0: 02812623 sw s0,44(sp)
800004c4: 03010413 addi s0,sp,48
800004c8: fca42e23 sw a0,-36(s0)
800004cc: 810007b7 lui a5,0x81000
800004d0: 04078793 addi a5,a5,64 # 81000040 <y+0xffffff14>
800004d4: 0a87a783 lw a5,168(a5)
800004d8: fff78713 addi a4,a5,-1
800004dc: 810007b7 lui a5,0x81000
800004e0: 04078793 addi a5,a5,64 # 81000040 <y+0xffffff14>
800004e4: 0ae7a423 sw a4,168(a5)
800004e8: 810007b7 lui a5,0x81000
800004ec: 04078793 addi a5,a5,64 # 81000040 <y+0xffffff14>
800004f0: 0a07a703 lw a4,160(a5)
800004f4: 810007b7 lui a5,0x81000
800004f8: 00471713 slli a4,a4,0x4
800004fc: 04078793 addi a5,a5,64 # 81000040 <y+0xffffff14>
80000500: 00f707b3 add a5,a4,a5
80000504: 0007a603 lw a2,0(a5)
80000508: 0047a683 lw a3,4(a5)
8000050c: 0087a703 lw a4,8(a5)
80000510: 00c7a783 lw a5,12(a5)
80000514: fec42023 sw a2,-32(s0)
80000518: fed42223 sw a3,-28(s0)
8000051c: fee42423 sw a4,-24(s0)
80000520: fef42623 sw a5,-20(s0)
80000524: 810007b7 lui a5,0x81000
80000528: 04078793 addi a5,a5,64 # 81000040 <y+0xffffff14>
8000052c: 0a07a783 lw a5,160(a5)
80000530: 00178713 addi a4,a5,1
80000534: 00900793 li a5,9
80000538: 02e7e263 bltu a5,a4,8000055c <dequeue+0xa0>
8000053c: 810007b7 lui a5,0x81000
80000540: 04078793 addi a5,a5,64 # 81000040 <y+0xffffff14>
80000544: 0a07a783 lw a5,160(a5)
80000548: 00178713 addi a4,a5,1
8000054c: 810007b7 lui a5,0x81000
80000550: 04078793 addi a5,a5,64 # 81000040 <y+0xffffff14>
80000554: 0ae7a023 sw a4,160(a5)
80000558: 0100006f j 80000568 <dequeue+0xac>
8000055c: 810007b7 lui a5,0x81000
80000560: 04078793 addi a5,a5,64 # 81000040 <y+0xffffff14>
80000564: 0a07a023 sw zero,160(a5)
80000568: 00000013 nop
8000056c: fdc42503 lw a0,-36(s0)
80000570: 02c12403 lw s0,44(sp)
80000574: 03010113 addi sp,sp,48
80000578: 00008067 ret
8000057c <isFull>:
8000057c: ff010113 addi sp,sp,-16
80000580: 00812623 sw s0,12(sp)
80000584: 01010413 addi s0,sp,16
80000588: 810007b7 lui a5,0x81000
8000058c: 04078793 addi a5,a5,64 # 81000040 <y+0xffffff14>
80000590: 0a87a783 lw a5,168(a5)
80000594: ff678793 addi a5,a5,-10
80000598: 0017b793 seqz a5,a5
8000059c: 0ff7f793 andi a5,a5,255
800005a0: 00078513 mv a0,a5
800005a4: 00c12403 lw s0,12(sp)
800005a8: 01010113 addi sp,sp,16
800005ac: 00008067 ret
800005b0 <isEmpty>:
800005b0: ff010113 addi sp,sp,-16
800005b4: 00812623 sw s0,12(sp)
800005b8: 01010413 addi s0,sp,16
800005bc: 810007b7 lui a5,0x81000
800005c0: 04078793 addi a5,a5,64 # 81000040 <y+0xffffff14>
800005c4: 0a87a783 lw a5,168(a5)
800005c8: 0017b793 seqz a5,a5
800005cc: 0ff7f793 andi a5,a5,255
800005d0: 00078513 mv a0,a5
800005d4: 00c12403 lw s0,12(sp)
800005d8: 01010113 addi sp,sp,16
800005dc: 00008067 ret
800005e0 <func>:
800005e0: ff010113 addi sp,sp,-16
800005e4: 00812623 sw s0,12(sp)
800005e8: 01010413 addi s0,sp,16
800005ec: 00000013 nop
800005f0: 00c12403 lw s0,12(sp)
800005f4: 01010113 addi sp,sp,16
800005f8: 00008067 ret
Disassembly of section .bss:
81000000 <z>:
...
81000040 <q>:
...
Disassembly of section .data:
810000ec <x>:
810000ec: 0001 nop
810000ee: 0000 unimp
810000f0: 0001 nop
810000f2: 0000 unimp
810000f4: 0006 c.slli zero,0x1
810000f6: 0000 unimp
810000f8: 0000 unimp
810000fa: 0000 unimp
810000fc: 00000003 lb zero,0(zero) # 0 <main-0x80000000>
81000100: 0001 nop
81000102: 0000 unimp
81000104: 0001 nop
81000106: 0000 unimp
81000108: 0002 c.slli64 zero
8100010a: 0000 unimp
8100010c: 0000 unimp
8100010e: 0000 unimp
81000110: 00000003 lb zero,0(zero) # 0 <main-0x80000000>
81000114: 0006 c.slli zero,0x1
81000116: 0000 unimp
81000118: 00000007 0x7
8100011c: 0005 c.nop 1
8100011e: 0000 unimp
81000120: 00000007 0x7
81000124: 00000007 0x7
81000128: 0009 c.nop 2
...
8100012c <y>:
8100012c: 0000 unimp
8100012e: 0000 unimp
81000130: 0002 c.slli64 zero
81000132: 0000 unimp
81000134: 0002 c.slli64 zero
81000136: 0000 unimp
81000138: 0000 unimp
8100013a: 0000 unimp
8100013c: 0005 c.nop 1
8100013e: 0000 unimp
81000140: 0000 unimp
81000142: 0000 unimp
81000144: 0001 nop
81000146: 0000 unimp
81000148: 0001 nop
8100014a: 0000 unimp
8100014c: 0004 0x4
8100014e: 0000 unimp
81000150: 0002 c.slli64 zero
...
8100015a: 0000 unimp
8100015c: 00000003 lb zero,0(zero) # 0 <main-0x80000000>
81000160: 0002 c.slli64 zero
81000162: 0000 unimp
81000164: 00000003 lb zero,0(zero) # 0 <main-0x80000000>
81000168: 0002 c.slli64 zero
...
Disassembly of section .comment:
82000000 <.comment>:
82000000: 3a434347 fmsub.d ft6,ft6,ft4,ft7,rmm
82000004: 2820 fld fs0,80(s0)
82000006: 29554e47 fmsub.s ft8,fa0,fs5,ft5,rmm
8200000a: 3820 fld fs0,112(s0)
8200000c: 322e fld ft4,232(sp)
8200000e: 302e fld ft0,232(sp)
...

BIN
src/riscv_gpgpu/lib/queue.elf Executable file

Binary file not shown.

View file

@ -0,0 +1,44 @@
#ifndef __QUEUE__
#define __QUEUE__
#define SIZE 10
typedef struct Job_t
{
unsigned func_ptr;
unsigned * x;
unsigned * y;
unsigned * z;
} Job;
typedef struct Queue_t
{
struct Job_t jobs[SIZE];
unsigned start_i;
unsigned end_i;
unsigned num_j;
} Queue;
Queue q;
void initialize_queue(void);
void enqueue(Job);
Job dequeue(void);
int isFull(void);
int isEmpty(void);
void func();
#endif

View file

@ -0,0 +1,108 @@
:0200000480007A
:10000000130101FD2326110223248102130401039D
:10001000B70700809387075E2320F4FEB7070081AF
:100020009387C70E2322F4FEB70700819387C71278
:100030002324F4FEB7070081938707002326F4FEEC
:10004000032604FE832644FE032784FE8327C4FE82
:100050002328C4FC232AD4FC232CE4FC232EF4FC08
:10006000930704FD13850700EF000039032604FE03
:10007000832644FE032784FE8327C4FE2328C4FC72
:10008000232AD4FC232CE4FC232EF4FC930704FD48
:1000900013850700EF004036032604FE832644FE46
:1000A000032784FE8327C4FE2328C4FC232AD4FC10
:1000B000232CE4FC232EF4FC930704FD1385070096
:1000C000EF008033032604FE832644FE032784FECC
:1000D0008327C4FE2328C4FC232AD4FC232CE4FC5D
:1000E000232EF4FC930704FD13850700EF00C030B6
:1000F000032604FE832644FE032784FE8327C4FED2
:100100002328C4FC232AD4FC232CE4FC232EF4FC57
:10011000930704FD13850700EF00002E032604FE5D
:10012000832644FE032784FE8327C4FE2328C4FCC1
:10013000232AD4FC232CE4FC232EF4FC930704FD97
:1001400013850700EF00402B930704FE138507007B
:10015000EF00C036930704FD13850700EF0000365B
:10016000032604FD832644FD032784FD8327C4FD65
:100170002320C4FE2322D4FE2324E4FE2326F4FEFF
:10018000032604FE832644FE032784FE8327C4FE41
:100190002328C4FC232AD4FC232CE4FC232EF4FCC7
:1001A000930704FD13850700EF000025032604FED6
:1001B000832644FE032784FE8327C4FE2328C4FC31
:1001C000232AD4FC232CE4FC232EF4FC930704FD07
:1001D00013850700EF004022EF00403A9307050027
:1001E00063980702032604FE832644FE032784FE49
:1001F0008327C4FE2328C4FC232AD4FC232CE4FC3C
:10020000232EF4FC930704FD13850700EF00C01EA6
:10021000EF00C0369307050063980702032604FE2B
:10022000832644FE032784FE8327C4FE2328C4FCC0
:10023000232AD4FC232CE4FC232EF4FC930704FD96
:1002400013850700EF00401BEF00403393070500C4
:1002500063980702032604FE832644FE032784FED8
:100260008327C4FE2328C4FC232AD4FC232CE4FCCB
:10027000232EF4FC930704FD13850700EF00C0173D
:10028000EF00C02F9307050063980702032604FEC2
:10029000832644FE032784FE8327C4FE2328C4FC50
:1002A000232AD4FC232CE4FC232EF4FC930704FD26
:1002B00013850700EF004014EF00402C9307050062
:1002C00063980702032604FE832644FE032784FE68
:1002D0008327C4FE2328C4FC232AD4FC232CE4FC5B
:1002E000232EF4FC930704FD13850700EF00C010D4
:1002F000EF00C0289307050063980702032604FE59
:10030000832644FE032784FE8327C4FE2328C4FCDF
:10031000232AD4FC232CE4FC232EF4FC930704FDB5
:1003200013850700EF00400D930704FD13850700B8
:10033000EF00C018930704FD13850700EF000018B5
:10034000930704FD13850700EF004017930704FD92
:1003500013850700EF008016930704FD138507003F
:10036000EF00C015930704FD13850700EF0000158B
:10037000930704FD13850700EF004014930704FD65
:1003800013850700EF008013930704FD1385070012
:10039000EF00C012930704FD13850700EF00001261
:1003A00093070000138507008320C1020324810204
:1003B0001301010367800000130101FF2326810060
:1003C00013040101B70700819387070423A0070ADC
:1003D000B70700819387070423A2070AB7070081A4
:1003E0009387070423A4070A130000000324C10015
:1003F0001301010167800000130101FF2326810022
:10040000232491001304010193040500B707008120
:100410009387070483A7870A13871700B70700810C
:100420009387070423A4E70AB7070081938707048B
:1004300003A7470AB70700811317470093870704EC
:10044000B307F70083A5040003A6440083A6840035
:1004500003A7C40023A0B70023A2C70023A4D7008A
:1004600023A6E700B70700819387070483A7470AFD
:10047000138717009307900063E2E702B707008134
:100480009387070483A7470A13871700B7070081DC
:100490009387070423A2E70A6F000001B7070081D2
:1004A0009387070423A2070A130000000324C10056
:1004B000832481001301010167800000130101FD05
:1004C0002326810213040103232EA4FCB707008115
:1004D0009387070483A7870A1387F7FFB70700816D
:1004E0009387070423A4E70AB707008193870704CB
:1004F00003A7070AB707008113174700938707046C
:10050000B307F70003A6070083A6470003A78700E9
:1005100083A7C7002320C4FE2322D4FE2324E4FEA5
:100520002326F4FEB70700819387070483A7070AF1
:10053000138717009307900063E2E702B707008173
:100540009387070483A7070A13871700B70700815B
:100550009387070423A0E70A6F000001B707008113
:100560009387070423A0070A130000000325C4FD96
:100570000324C1021301010367800000130101FF7E
:100580002326810013040101B70700819387070424
:1005900083A7870A938767FF93B7170093F7F70F2F
:1005A000138507000324C1001301010167800000C7
:1005B000130101FF2326810013040101B707008105
:1005C0009387070483A7870A93B7170093F7F70F5A
:1005D000138507000324C100130101016780000097
:1005E000130101FF23268100130401011300000001
:0C05F0000324C10013010101678000001A
:02000004810079
:1000EC0001000000010000000600000000000000FC
:1000FC0003000000010000000100000002000000ED
:10010C0000000000030000000600000007000000D3
:10011C0005000000070000000700000009000000B7
:10012C0000000000020000000200000000000000BF
:10013C0005000000000000000100000001000000AC
:10014C00040000000200000000000000000000009D
:10015C000300000002000000030000000200000089
:040000058000000077
:00000001FF

View file

@ -41,4 +41,4 @@ SECTIONS
. = 0x82000000;
.comment : { *(.comment) }
}
}

View file

@ -1,4 +1,4 @@
echo start > results.txt
echo ./riscv_gpgpu/gpgpu_test.hex >> results.txt
./harptool -E -a rv32i --core ./riscv_gpgpu/gpgpu_test.hex -s -b &>> results.txt
./harptool -E -a rv32i --core ./riscv_gpgpu/gpgpu_test.hex -s -b