📄 grouplinkmap.java
字号:
package cahe;
import java.util.Vector;
public class GroupLinkMap
{
private int caheNum;//cahe块数
private int memoryNum;//主存块数
private int team;//组数
private int teamNum;//组内块数
private int maxNum;//最大块号
private int minNum;//最小块号
public GroupLinkMap(int part,int memoryContent,int caheContent,int team)
{
this.team=team;
memoryNum=memoryContent/part;
caheNum=team*((caheContent/part)/team);
memoryNum=caheNum*(memoryNum/caheNum);
teamNum=caheNum/team;
}
//是否命中,命中则返回命中位置,否则返回-1
public int isTarget(int address,Vector<Integer> c)
{
if(c.contains(address))
{
return c.indexOf(address);
}
else
{
return -1;
}
}
//若没有位置则返回-1,否则返回地址流的映射位置
public int map(int a,Vector<Integer> c)
{
int temp1=a/teamNum;//在内存中的组号
int temp2=temp1%team;//映射到cahe中的组号
maxNum=team*(temp2+1)-1;//该组内的最大块好
minNum=maxNum-team+1;//该组内最小的块号
for(int i=minNum;i<=maxNum;i++)
{
if(c.get(i)==null)
{
return i;
}
}
return -1;
}
// 获得组号
public int caheTeamNum(int a)
{
int temp1=a/teamNum;//在内存中的组号
int temp2=temp1%team;//映射到cahe中的组号
return temp2;
}
public int getMaxNum()
{
return maxNum;
}
public int getMinNum()
{
return minNum;
}
public int getCaheNum()
{
return caheNum;
}
public int getMemoryNum()
{
return memoryNum;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -