cachelab fixed
This commit is contained in:
BIN
cachelab/Cache
BIN
cachelab/Cache
Binary file not shown.
@ -595,8 +595,7 @@ UINT8 AccessDataCache(UINT64 Address, UINT8 Operation, UINT8 DataSize,
|
|||||||
UINT8 MissFlag = 'M';
|
UINT8 MissFlag = 'M';
|
||||||
UINT64 ReadValue = 0;
|
UINT64 ReadValue = 0;
|
||||||
|
|
||||||
// 仅用于处理函数实现,实际不使用结果
|
char L2Result;
|
||||||
char _unused_L2Result;
|
|
||||||
|
|
||||||
// 检查命中
|
// 检查命中
|
||||||
for (int i = 0; i < DCACHE_LINE_PER_SET; i++) {
|
for (int i = 0; i < DCACHE_LINE_PER_SET; i++) {
|
||||||
@ -735,7 +734,7 @@ UINT8 AccessDataCache(UINT64 Address, UINT8 Operation, UINT8 DataSize,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 先从L2加载新行到L1
|
// 先从L2加载新行到L1
|
||||||
_unused_L2Result = LoadDataFromL2ToL1(Address, Set, replace_Line);
|
L2Result = LoadDataFromL2ToL1(Address, Set, replace_Line);
|
||||||
|
|
||||||
DCache[Set].Line[replace_Line].Valid = 1;
|
DCache[Set].Line[replace_Line].Valid = 1;
|
||||||
DCache[Set].Line[replace_Line].Tag = Tag;
|
DCache[Set].Line[replace_Line].Tag = Tag;
|
||||||
@ -796,7 +795,7 @@ UINT8 AccessDataCache(UINT64 Address, UINT8 Operation, UINT8 DataSize,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 先从L2加载新行到L1
|
// 先从L2加载新行到L1
|
||||||
_unused_L2Result = LoadDataFromL2ToL1(Address, Set, replace_Line);
|
L2Result = LoadDataFromL2ToL1(Address, Set, replace_Line);
|
||||||
|
|
||||||
DCache[Set].Line[replace_Line].Valid = 1;
|
DCache[Set].Line[replace_Line].Valid = 1;
|
||||||
DCache[Set].Line[replace_Line].Tag = Tag;
|
DCache[Set].Line[replace_Line].Tag = Tag;
|
||||||
@ -874,9 +873,7 @@ UINT8 AccessInstCache(UINT64 Address, UINT8 Operation, UINT8 InstSize,
|
|||||||
UINT8 HitLine;
|
UINT8 HitLine;
|
||||||
UINT8 MissFlag = 'M';
|
UINT8 MissFlag = 'M';
|
||||||
UINT64 ReadValue = 0;
|
UINT64 ReadValue = 0;
|
||||||
|
UINT32 L2Result;
|
||||||
// 仅用于处理函数实现,实际不使用结果
|
|
||||||
char _unused_L2Result;
|
|
||||||
|
|
||||||
*InstResult = 0;
|
*InstResult = 0;
|
||||||
|
|
||||||
@ -941,7 +938,7 @@ UINT8 AccessInstCache(UINT64 Address, UINT8 Operation, UINT8 InstSize,
|
|||||||
UINT8 replace_line = GetReplaceLineInst(set);
|
UINT8 replace_line = GetReplaceLineInst(set);
|
||||||
|
|
||||||
// 从L2加载数据到I-Cache
|
// 从L2加载数据到I-Cache
|
||||||
_unused_L2Result = LoadInstFromL2ToICache(Address, set, replace_line);
|
L2Result = LoadInstFromL2ToICache(Address, set, replace_line);
|
||||||
|
|
||||||
// 重新读取指令
|
// 重新读取指令
|
||||||
switch (InstSize) {
|
switch (InstSize) {
|
||||||
|
|||||||
@ -9,7 +9,9 @@ LDFLAGS +=
|
|||||||
LDLIBS += -lzstd
|
LDLIBS += -lzstd
|
||||||
|
|
||||||
|
|
||||||
CPPFLAGS := -O3 -Wall -Wextra -Winline -Winit-self -Wno-sequence-point\
|
CPPFLAGS := -Ofast -Wall -Wextra -Winit-self \
|
||||||
|
-Wno-unused-function -fPIC -W -Wcast-qual -Wpointer-arith -Icbsl/include
|
||||||
|
#CPPFLAGS := -O3 -Wall -Wextra -Winline -Winit-self -Wno-sequence-point\
|
||||||
-Wno-unused-function -Wno-inline -fPIC -W -Wcast-qual -Wpointer-arith -Icbsl/include
|
-Wno-unused-function -Wno-inline -fPIC -W -Wcast-qual -Wpointer-arith -Icbsl/include
|
||||||
|
|
||||||
#CPPFLAGS := -g
|
#CPPFLAGS := -g
|
||||||
@ -20,7 +22,7 @@ objects = Cache.o CacheHelper.o getopt.o cbsl/src/buffer.o cbsl/src/file.o cbsl/
|
|||||||
all: $(PROGRAMS)
|
all: $(PROGRAMS)
|
||||||
|
|
||||||
Cache : $(objects)
|
Cache : $(objects)
|
||||||
gcc $(CPPFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS)
|
icpx $(CPPFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS)
|
||||||
rm -f $(objects)
|
rm -f $(objects)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
|||||||
Reference in New Issue
Block a user