Windows驱动开发随想2

下面说说计算机的磁盘存储器,内存,高速缓存和寄存器的的关系。

我不想和技术书籍讲的很类同,我想换一种方法:

某个运行的程序-----à你(读者自己)

寄存器à桌子

高速缓存à书架

内存   à书箱

磁盘存储器 à书库

以上时类比关系。同时,你的内存,也就是你的书箱不是由你自己管理,而是由你老妈给你管理,因为你家不止你一个人有书,你的弟弟,老爹等,他们想将书房到书箱的时候,也是交给你老妈去管理。

现在开始,你开始看书,发现这本书就在你的桌子上,很好,拿起来就看。这种情况最好,速度最快。(CPU要使用的数据正好在寄存器中)

现在开始,你又要看书,发现桌子上没有你要的书,于是,你来到你的书架上,发现你要看的书,还不错,速度不算慢(CPU使用的数据正好在CPU的高速缓存中)

现在开始,你又要看书,发现桌子上没有你要的书,于是,你来到书架,发现你的书架上也没有你要的书,这个时候,你开始大叫(相当于计算机引发一个异常),我的XXX书在哪里。这是,你老妈接收处理这个事情,告诉你,你的XXX书在书香的某个位置。你取来书开始读。

现在看是,你又要看书,桌子上,书架上没有你要的书,你开始大叫(相当于计算机引发一个异常),你老妈接收这个事情,你老妈一看,哦,这个没有在书箱内,而已经被放到了书库中,因为书箱已经满了。这是,你老妈从书箱中拿出一些书,从书库个去处你要的书,放在书箱中,然后告诉你,你的书在书箱中的某个位置,你自己去拿。

好了各种情况我们都看完了。在这个事情中,你老妈扮演的就是内存管理器的角色。你,你兄弟,你老爹,有自己的书桌,书架,但是共用书香。相当于各种程序共用物理内存。但是因为你老妈的存在(内存管理器的存在),你和你兄弟,老爹之间的存书互不干扰,你们甚至不知道自己的书具体放在书箱的那个位置,这个由你老妈来决定,你们也不知道自己的书到底在书箱,还是书库中,只有你老妈知道(这个相当于程序根本不知道自己需要的数据到底放在那里,他先看寄存器,没有,然后再看高速缓存,没有,在看内存,直到引发异常)。

为了说的更清楚一些,我们给你们家的书籍管理规定一个制度。你们家每个人都可以存4G本书,也就是说,你有4G个书位(真正有没有那么多,我们不管,因为我们大概不可能真正拥有4G本书)。你现在要存书,那么你一定要知道,你的书存在那个位置,比方说,我的一本叫做《青春无悔》的书,存在了位置100。好了,这个100就是《青春无悔》的存储地址。以后,你要找青春无悔,你就去100的地址找。

现在假如你开始想读《青春无悔》,你知道,书桌上没有(寄存器里面没有),因为就在你手边,你很容易知道,这个时候,可以不需要地址。结果你发现,你的这本书没有在你的书桌上。此时,你就需要这本书的地址了。你在看书架,书架上是否有地址为100的书,如果有,那么你取出来,如果没有,你就告诉你老妈,我存在地址是100的那本书呢?你老妈告诉你,去书箱的第几个地址去取这本书(你所谓的地址100,是你自己的地址编号,我们称为虚拟地址,而此时你老妈告诉你的书箱中的地址,是物理地址),比方说,这个物理地址时352,你到书箱中的352位置,找你的《青春无悔》。或者你老妈可能告诉你,你的这本书,我已经入库了,现在还没有,于是你老妈去书库,将这本书放在书箱的某个地址,然后告诉你这个地址,让你去取。

另外,你还有一些重要的书,根本不能放在书库,必须时刻在书箱中。我们就把你为这本书申请的地址空间对应的内存(书箱位置)叫做驻留内存,或者非分页内存。还有一些书,不重要,可以允许你老妈(内存管理器)将书放在书库中,那么这部分内存,或者书箱位置就叫分页内存。

你给你自己的书编排的地址(虚拟地址)和真正书箱中的位置(物理地址)之间的转换,由你老妈负责(内存管理器)负责。这样,你,你兄弟,你老爹和你的书籍永远不可能混乱,你们在看书上,也一般不会发生交集。这都是你老妈的功劳,内存管理器的功劳。

你看完上面这段话,肯定不清楚(内存管理的细节),但是,你对看书的这种模式,相信已经明白了,不要紧,如果你紧接着看真正的技术书籍,然后把我给你讲的乱七八糟的故事有个印象,你会事半功倍的。

现在我将非常正式的,讲解这几个概念!现在不是讲故事了,大家要进入枯燥的技术领域了,但不要忘记前面的故事哦。

 

概述:

我们将微处理器(CPU)看做一个可编程的设备。首先,这个可编程设备有不同的内部编程模式和不同的内存地址空间。我们主要看Intel微处理器。

微处理器自己的地址空间,有两种编址模式,一种是实模式,另外一种是保护模式。实模式的地址空间为00000H----FFFFFH,也就是1M的内存地址。在现在所有的微处理器上,都存在这种内存的编址模式。另外一种模式是保护模式,这种模式只在286以及以上的处理器上存在。286处理器的保护模式拥有16M的内存空间,而386以上的微处理器则拥有4G的内存地址空间。如果是最新的64为的处理器,则拥有更大的内存空间。

微处理器内部结构:

在编程前,或者对微处理器的汇编指令进行了解前,必须了解微处理器的内部结构。现在我们先来看看未处理内部,和编程相关的,也就是编程者可以通过汇编指令进行直接操作的寄存器,以及这些寄存器的主要功能。

编程模式:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值