⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 grouplinkmap.java

📁 主存--辅存模拟 主存--cash模拟
💻 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 + -