Commit e30b1b4a authored by Alan Marchiori's avatar Alan Marchiori
Browse files

fix

parent bedd5b8f
#
# Main Makefile for the AvDark cache simulator.
#
# Course: Advanced Computer Architecture, Uppsala University
# Course Part: Lab assignment 1
#
# Author: Andreas Sandberg <andreas.sandberg@it.uu.se>
#
# $Id: Makefile 80 2012-09-13 06:51:51Z andse541 $
#
COURSE_DIR ?= .
PIN_ROOT = ~/pin-2.13-61206-gcc.4.4.7-linux
PIN_KIT = $(PIN_ROOT)
CONFIG_ROOT = $(PIN_ROOT)/source/tools/Config
CC = gcc
CFLAGS = -Wall -std=gnu99
include $(CONFIG_ROOT)/makefile.config
SRC_FILES = cache.c
TOOL_ROOTS = avdc
TOOLS = $(TOOL_ROOTS:%=$(OBJDIR)%$(PINTOOL_SUFFIX))
all: tools
tools: $(OBJDIR) $(TOOLS)
$(OBJDIR):
mkdir -p $(OBJDIR)
$(OBJDIR)%.o : %.c
$(CC) -c -std=c99 $(PIN_CXXFLAGS) ${OUTOPT}$@ $<
$(OBJDIR)%.o : %.cc
$(CXX) -c $(CXXFLAGS) $(PIN_CXXFLAGS) ${OUTOPT}$@ $<
$(TOOLS): $(PIN_LIBNAMES)
$(TOOLS): %$(PINTOOL_SUFFIX) : $(OBJDIR)pin-glue.o $(OBJDIR)cache.o
${PIN_LD} $(PIN_LDFLAGS) $(LINK_DEBUG) ${LINK_OUT}$@ $^ ${PIN_LPATHS} $(PIN_LIBS) $(LIBS) $(DBG)
info:
@echo "To compile the cache simulator, just run make."
@echo
@echo "To run test cases, use one of the following targets:"
@echo " test-direct - Tests for direct mapped caches"
@echo " test-assoc - Tests for set associative caches"
@echo " test - All tests"
@echo
@echo "To run a make target type 'make target'"
test: test-direct test-assoc
test-direct: test0
@echo "**************************************************"
@echo "* Running tests for direct mapped caches *"
@echo "**************************************************"
./test0 > /dev/null
test-assoc: test1
@echo "**************************************************"
@echo "* Running tests for associative caches *"
@echo "**************************************************"
./test1 > /dev/null
test0: test0.o cache.o
test1: test1.o cache.o
pin-clean:
$(RM) -r $(OBJDIR)
clean: pin-clean
$(RM) *.o test0 test1
.PHONY: all clean test-direct test-assoc tools
...@@ -7,10 +7,10 @@ ...@@ -7,10 +7,10 @@
* Original authors: UART 1.0(?) * Original authors: UART 1.0(?)
* Modified by: Andreas Sandberg <andreas.sandberg@it.uu.se> * Modified by: Andreas Sandberg <andreas.sandberg@it.uu.se>
* *
* $Id: avdark-cache.c 14 2011-08-24 09:55:20Z ansan501 $ * $Id: cache.c 14 2011-08-24 09:55:20Z ansan501 $
*/ */
#include "avdark-cache.h" #include "cache.h"
#include <stdarg.h> #include <stdarg.h>
#include <stdio.h> #include <stdio.h>
...@@ -138,8 +138,9 @@ avdc_access(avdark_cache_t *self, avdc_pa_t pa, avdc_access_type_t type) ...@@ -138,8 +138,9 @@ avdc_access(avdark_cache_t *self, avdc_pa_t pa, avdc_access_type_t type)
void void
avdc_flush_cache(avdark_cache_t *self) avdc_flush_cache(avdark_cache_t *self)
{ {
int i;
/* HINT: You will need to update this function */ /* HINT: You will need to update this function */
for (int i = 0; i < self->number_of_sets; i++) { for (i = 0; i < self->number_of_sets; i++) {
self->lines[i].valid = 0; self->lines[i].valid = 0;
self->lines[i].tag = 0; self->lines[i].tag = 0;
} }
...@@ -229,7 +230,7 @@ avdc_new(avdc_size_t size, avdc_block_size_t block_size, ...@@ -229,7 +230,7 @@ avdc_new(avdc_size_t size, avdc_block_size_t block_size,
self = AVDC_MALLOC(1, avdark_cache_t); self = AVDC_MALLOC(1, avdark_cache_t);
memset(self, 0, sizeof(*self)); memset(self, 0, sizeof(*self));
self->dbg = 0; self->dbg = 1;
if (!avdc_resize(self, size, block_size, assoc)) { if (!avdc_resize(self, size, block_size, assoc)) {
AVDC_FREE(self); AVDC_FREE(self);
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* *
* Author: Andreas Sandberg <andreas.sandberg@it.uu.se> * Author: Andreas Sandberg <andreas.sandberg@it.uu.se>
* *
* $Id: avdark-cache.h 13 2011-08-24 09:50:25Z ansan501 $ * $Id: cache.h 13 2011-08-24 09:50:25Z ansan501 $
*/ */
#ifndef AVDARK_CACHE_H #ifndef AVDARK_CACHE_H
...@@ -32,7 +32,7 @@ typedef enum { ...@@ -32,7 +32,7 @@ typedef enum {
/** /**
* Forward declaration of the avdc_cache_line struct which is declared * Forward declaration of the avdc_cache_line struct which is declared
* in avdark-cache.c. The forward declaration is needed for the * in cache.c. The forward declaration is needed for the
* simulator configuration struct. * simulator configuration struct.
*/ */
typedef struct avdc_cache_line avdc_cache_line_t; typedef struct avdc_cache_line avdc_cache_line_t;
...@@ -53,7 +53,7 @@ typedef struct { ...@@ -53,7 +53,7 @@ typedef struct {
/** /**
* A pointer to an array of cache blocks. You will need to * A pointer to an array of cache blocks. You will need to
* change this structure, the strucutre declaration is in * change this structure, the strucutre declaration is in
* avdark-cache.c. This pointer is initialized by * cache.c. This pointer is initialized by
* avdc_resize(). * avdc_resize().
* *
* HINT: You may need to change how the internal cache state * HINT: You may need to change how the internal cache state
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
* $Id: test1.c 13 2011-08-24 09:50:25Z ansan501 $ * $Id: test1.c 13 2011-08-24 09:50:25Z ansan501 $
*/ */
#include "avdark-cache.h" #include "cache.h"
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment