软件与硬件之间的交流是通过驱动程序(操作系统的一部分,操作系统就是那个控制系统的系统软件)
来实现的。这个交流的过程也需要时间,这个时间就是软件与硬件之间交流的成本,软件与硬件之间的交
流还有一个多任务的影响,计算机本身资源也会影响,也就是外力,这个外力也会影响到软件与硬件交流
的成本,延长交流时延。接下来将从头开始对软件与硬件之间的交流进行阐述。
这里将要谈到的硬件,也就是计算机,即软件生存的环境,比之于人类生存的地球。(不过软件生存
的环境是越来越好,而人类生存的环境却越来越糟糕,人类总有一天会尝到自己种下的苦果。)
从另一个角度来说,软件依附到计算机上之后却控制着计算机。其中有一个叫系统软件的软件,它与
计算机的中央处理器(CPU)进行配合作用后,就相当于计算整体系统的大脑。一方面系统软件本身被存
储在内存中,然后由CPU去执行系统软件,再由系统软件本身的逻辑和人类为其设定的任务进行对CPU
执行的指令进行控制,以达到控制系统软件本身和其他外部设备的目的。
图2
目前全世界范围内所使用的计算机都属冯氏结构的,如上图2所示,其实计算机系统与人类大脑这个
复杂的系统是十分相似的。
人类的大脑重要组成元素之一是神经,而大脑与人体各器官进行交流信息主要也是通过神经元之间的
信息传递。对于计算机系统来说,在断电的情况下我们可以说它是无,当上电后整个系统处于一个混沌的
状态。如果把计算机与人相比较的话,那么计算机本身就相当于人体,而0、1的二进制数据流就相当于
人类大脑与各器官间进行交流信息的神经元。为了提高信息处理的效率,科学家们把8位信息组成计算机
内的最小信息单元,我们就把这8位称作一个字节,这一个字节或者更多个字节所组成的信息能就相当于
人体内的神经元。
相对于人类的大脑来说,现代计算机的确太过简单且粗糙。但对于要去理解它的一般人来说又相对复
杂。人类大脑用特有的生物形式存储了大量信息,而全世界的计算机则以物理的形式存储了海量的信息,
这些信息从主观上来讲,一个人的大脑是无法容纳得下的。那么,我们先来看看计算机用于存储信息能的
存储体系结构。
图3
在计算机世界有种比较通用的设计方案,就是将不同功能进行模块化和层次化。就如图3的计算机系
统的存储结构,也是一个层次结构。每一个层与层之间都要进行交流,也就是说要进行信息的交换或传输。
前面说过,在计算机内的信息能就是由于任务的需要由电能表现的电位信息――字节。那么我们就举个简
单的例子来说明软件与硬件之间的交流是如何基于这个层次结构来进行的。
QQ聊天我们都会,当你在屏幕上输入“你好”的时候,整个计算机已为之转动起来了。首先,键盘
电路会将电位信号反应到键盘的寄存器中,控制程序会从键盘寄存器里按一定的频率收到两个字节(其实
中文‘你好’的计算机表示不指两个字节,不过为了简化说明,我们就认为是两个字节吧),这两个字节
承载的信息能就是‘你好’,这两个字节的信息能将被从键盘的寄存器里转移到内存中,然后被复制一份
到L2级缓存中,再复制一份到L1高速缓冲中,最后进入CPU的寄存器。到了CPU的寄存器后,因为要
显示你好给你自己看,所以大脑先把‘你好’这两个字节的信息能转移到显示卡的存储器中,显示卡的存
储器或是寄存器,或是与内存一样的存储器。最后显示卡的数据又表示为电位信息反应在显示器上。而另
一份被发往系统为网卡驱动程序分配的内存空间,由网卡驱动程序将‘你好’转换成电位信号,发送给与
你聊天之人所在的计算机的网卡,对方的网卡收到后的处理过程就与你发送时的处理过程相似了。
注意,信息能每一次被转存或复制都是软件与硬件之间的交流,且这个交流过程的耗时由这个硬件的
存储器的存取速度决定。那么我们可以得出这样一个结论,软件与硬件之间的交流成本就是信息能的转移
或复制时延。
存取速度 = 字节/秒
交流时延 = (复制次数 * 信息能) / 存取速度
所以,在信息能一定的情况下,要提高软件与硬件之间的交流速度,缩短交流时延,可以从两个方
面着手,一是提高硬件寄存器或存储器的存取速度,二是减少字节信息能的复制次数。因此才会有如图3
的存储结构模型。
阅读(895) | 评论(0) | 转发(0) |