cachelab fixed

This commit is contained in:
2025-04-25 08:29:08 +08:00
parent 44051e5098
commit 421a8ac1a4
3 changed files with 9 additions and 10 deletions

Binary file not shown.

View File

@ -595,8 +595,7 @@ UINT8 AccessDataCache(UINT64 Address, UINT8 Operation, UINT8 DataSize,
UINT8 MissFlag = 'M';
UINT64 ReadValue = 0;
// 仅用于处理函数实现,实际不使用结果
char _unused_L2Result;
char L2Result;
// 检查命中
for (int i = 0; i < DCACHE_LINE_PER_SET; i++) {
@ -735,7 +734,7 @@ UINT8 AccessDataCache(UINT64 Address, UINT8 Operation, UINT8 DataSize,
}
// 先从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].Tag = Tag;
@ -796,7 +795,7 @@ UINT8 AccessDataCache(UINT64 Address, UINT8 Operation, UINT8 DataSize,
}
// 先从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].Tag = Tag;
@ -874,9 +873,7 @@ UINT8 AccessInstCache(UINT64 Address, UINT8 Operation, UINT8 InstSize,
UINT8 HitLine;
UINT8 MissFlag = 'M';
UINT64 ReadValue = 0;
// 仅用于处理函数实现,实际不使用结果
char _unused_L2Result;
UINT32 L2Result;
*InstResult = 0;
@ -941,7 +938,7 @@ UINT8 AccessInstCache(UINT64 Address, UINT8 Operation, UINT8 InstSize,
UINT8 replace_line = GetReplaceLineInst(set);
// 从L2加载数据到I-Cache
_unused_L2Result = LoadInstFromL2ToICache(Address, set, replace_line);
L2Result = LoadInstFromL2ToICache(Address, set, replace_line);
// 重新读取指令
switch (InstSize) {

View File

@ -9,7 +9,9 @@ LDFLAGS +=
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
#CPPFLAGS := -g
@ -20,7 +22,7 @@ objects = Cache.o CacheHelper.o getopt.o cbsl/src/buffer.o cbsl/src/file.o cbsl/
all: $(PROGRAMS)
Cache : $(objects)
gcc $(CPPFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS)
icpx $(CPPFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS)
rm -f $(objects)
clean: