Cache地址与主存地址对应关系

     

一,为什么需要cache

         程序的运行大致是这个样纸的:当我们要运行一个程序时,如,我们点击了一个.exe的文件,然后剩下的事情就交给计算机处理了:计算机会先将程序读到内存,然后再通过各种调度读到cup中执行。(注:本图只是个例子)

     

    

       但是对于经常使用的程序或文件,想想如果我们经常按照这个顺序读下来,举个极端点儿的例子,从硬盘读到内存要1000S,从内存读到cache要100s,从cache读到寄存器执行要1s,这是我们就应该想,对于常用的东西,为什么不就放在身边呢?但是考虑到寄存器的容量太小的问题,于是,我们就把常用的东西放到了cache里面。这里的cache起到了一个buffer的作用:暂时不用但以后常用的东西先存起来。

        这样,使用了Cache后,我们在运行程序时如果需要访问存储器,就会先访问Cache,看看在这里面有没有我们要找的信息,如果没有,再到主存中去寻找,如果找不到,再到辅存中去找。

   

   

二,Cache与主存地址的对应方法

    

    CPU访问要读取数据时,发出来的是主存的地址,而有可能我们要访问的内容在Cache中,所以,这时候就要将主存地址转换为Cache的地址,这里,有3中转换方法。      

  1,直接映像

   

     在进行映像的工作时,规定各区中的某一信息块只能映像到Cache中的一个固定的信息块中,即主存中的第0块映像到cache的第0个块框架,第1块映像到cache的第1块,以此类推的映像方式。

 

 2,全相联

  
在全相联Cache中,存储的块与块之间,以及存储顺序或保存的存储器地址之间没有直接的关系。程序可以访问很多的子程序、堆栈和段,而它们是位于主存储器的不同部位上。

    这时,我们可以先来看一下cache结构:

  

     因为Cache保存着很多互不相关的数据块,所以,Cache必须对每个块和块自身的地址加以存储(就放在上面的tag里面)。当请求数据时,Cache控制器要把请求地址同所有地址加以比较,进行确认。

3, 组相连

    组相联Cache是介于全相联Cache和直接映像Cache之间的一种结构:通过直接映像决定组号,在一组内再用全相联的方式来决定cache中的块号。

综上,可得出:

    直接映射:一个块可以放到cache中的唯一的位置上

    全相联:一个块可以放到cache中的任意的位置上

    组相联:一个块可以放到cache的受限的组里,该块可以放置到组内的任意一个块里

   计算机内各种地址转换都很有规律:1,分级:比如,河北省——廊坊市——安次区——狼院——**宿舍楼; 2,逐一比较:比如,查找门牌号为515的房间,就从000这个房间挨个比较到找到515为止;3,综合上面1和2:比如,要从中国查找这个515房间,就先利用分级方法确定515大致位置,然后再利用逐个比较的方法找。

 

   小结:

   

在贝尔克的亡灵中,福尔摩斯对柯南说过:

     人生就是一束无色的线里交缠着名为杀人的血红色的线,而解开那线的工作,不就是我们的工作吗?

 

     最近感觉学习东西就像是解开一团线,越理就越清晰吧~

    

    

     

          

时间: 2024-10-10 11:34:06

Cache地址与主存地址对应关系的相关文章

计算机中,通常用来表示主存地址的是

问题描述 计算机中,通常用来表示主存地址的是 计算机中,通常用来表示主存地址的是 移码,补码,原码,无符号数 解决方案 那些都是涉及到数的运算里面的,主存地址应该是进制的问题.

批量绑定IP地址和mac地址的方法

  这里要跟大家分享的是关于批量绑定IP地址和mac地址的方法,在网络管理中,IP地址盗用现象经常发生,不仅对网络的正常使用造成影响,同时由于被盗用的地址往往具有较高的权限,因而也对用户造成了大量的经济上的损失和潜在的安全隐患.因此为了防止IP地址被盗用,可以在代理服务器端分配IP地址时,把IP地址与网卡地址进行捆绑.那么IP地址和mac地址要如何进行批量绑定?系统城的小编下面就跟大家详解有关的具体措施. 1.首先,我们要登录目前连接的路由器后台,到DHCP客户端面列表中查看目前连接的全部电脑;

GNU系统的运行地址和加载地址

在连接目标代码时,会提到运行地址和加载地址.这两者有什么区别呢? 加载时地址就是程序放置的地址,运行地址就是程序定位的绝对地址,也即在编译连接时定位的地址.如果程序是在flash里运行,则运行地址和加载地址是相同的.如果程序是在ram里运行,但程序是存储在flash里,则运行地址指向ram,而加载地址是指向flash.代码一般是烧写在NAND里面,比如S3C2440 如果开机从NAND启动 其开始的4K代码会被COPY到2440内部的4KRAM 用于对关键硬件的初始化 这时候内部RAM被映射为0

如何捆绑MAC地址和IP地址

在校园网络中,最方便的捣乱方法就是盗用别人的IP地址,被盗用IP地址的计算机不仅不能正常使用校园网络,而且还会频繁出现IP地址被占用的提示对话框,给校园网络安全和用户应用带来极大的隐患.捆绑IP地址和MAC地址就能有效地避免这种现象. 何为MAC地址 网卡在使用中有两类地址,一类是大家都熟悉的IP地址,另一类就是MAC地址,即网卡的物理地址,也称硬件地址或链路地址,这是网卡自身的惟一标识,就仿佛是我们的身份证一样,一般不能随意改变.它与网络无关,无论把这个网卡接入到网络的什么地方,MAC地址都是

如何修改IP地址和DNS地址

  笔记本在无线wifi网状连接时,如何修改IP地址和DNS地址: 操作步骤 鼠标左键点击通知区域里面的无线图标,在弹出的界面点击打开网络和共享中心. 然后在查看活动网络里面点击连接上的无线网络. 在状态界面点击属性按钮. 双击IPv4/TCP协议. 不选自动获取,手动填写即可,确定之后保存修改.

python获取本机mac地址和ip地址的方法

  这篇文章主要介绍了python获取本机mac地址和ip地址的方法,涉及Python获取系统相关信息的技巧,需要的朋友可以参考下 本文实例讲述了python获取本机mac地址和ip地址的方法.分享给大家供大家参考.具体如下: ? 1 2 3 4 5 6 7 8 9 10 import sys, socket def getipaddrs(hostname): result = socket.getaddrinfo(hostname,None,0,socket.SOCK_STREAM) retu

需要IP地址和MAC地址的几点原因

  每个以太网设备在出厂时都有一个唯一的MAC地址,为什么还需要为每台主机再分配一个IP地址?或者说每台主机都分配唯一的IP地址,为什么还要在网络设备(如网卡,集线器,路由器等)生产时内嵌一个唯一的MAC地址呢? 主要原因有以下几点: (1)IP地址的分配是根据网络的拓朴结构,而不是根据谁制造了网络设置.若将高效的路由选择方案建立在设备制造商的基础上而不是网络所处的拓扑位置基础上,这种方案是不可行的. (2)当存在一个附加层的地址寻址时,设备更易于移动和维修.例如,如果一个以太网卡坏了,可以被更

win7系统IP地址和网关地址怎么设置

  win7系统IP地址和网关地址怎么设置             具体方法如下: 1.在电脑桌面的右下角点击这个上网的连接图标; 2.点开以后,看到一个连接的状态菜单,在里面点击"打开网络和共享中心"; 3.在进入页面后,在左边找到"更改适配器设置"; 4.这里有两个连接方式,一个是路由器连接的,一个是无线的,中间的是宽带拨号上网的; 5.因为我的是无线的,我们点击无线的,右击选择属性; 6.双击这个版本ipv4的.进入配置; 7.把本来自动获取的,改成手动配置的

js获取客户端网卡的IP地址、MAC地址

 这篇文章主要介绍了js获取客户端网卡的IP地址.MAC地址的方法,需要的朋友可以参考下  代码如下: <html>  <head>  <title></title>  </head>  <body>  <object classid="CLSID:76A64158-CB41-11D1-8B02-00600806D9B6" id="locator" style="display: