CacheSim/data.py
2022-01-20 14:29:36 +08:00

54 lines
1.1 KiB
Python

from math import log2
from random import randint
DATANUM = 10000
setNum = 2
offsetBits = 7
tagBits = 21
# setNum = int(input("Set: "))
# offsetBits = int(input("offset bits: "))
# tagBits = int(input("tag bits: "))
print("-machine(in bits) 32")
print("-total_cache_size(in KB) 1")
print("-num_cache_way 1")
print("-block_size(in bytes) 512")
print("")
for i in range(DATANUM):
ans = []
tagTouchBits = 4
for i in range(tagBits-tagTouchBits):
ans.append(0)
for i in range(tagTouchBits):
ans.append(randint(0, 1))
setBits = int(log2(setNum))
for i in range(setBits):
ans.append(randint(0, 1))
for i in range(offsetBits):
ans.append(randint(0, 1))
# print(ans)
charStr = ""
index = 0
output = ""
for i in ans:
charStr += str(i)
index += 1
if index == 4:
# print(charStr)
base2 = int(charStr, 2)
# print("base 2:", base2)
output += hex(base2)[-1]
charStr = ""
index = 0
typeNum = randint(0, 1)
print("{} 0x{}".format("R" if typeNum else "W", output))