目前使用的计算机的结构大都采用冯.诺依曼结构。包括:CPU(运算器,控制器),存储器,输入输出设备。
先从输入输出设备走起,简单说下输入输出技术。
在编程的世界里,对外设的接口编址有两种,一种是内存与接口地址独立编址方法,另一种是内存与接口地址统一编址方法。
独立编址:顾名思义,独立就是内存和接口编址分开编址,接口是接口,内存是内存。他们的指令不相同,而且各自有各自的编址空间。而且各自的编址空间是连续的。
统一编址:顾名思义,内存和接口是一模一样的。采取统一的编址空间,各自的编址空间你中有我,我中有你。即:编址空间是不连续的。指令也是大体相同的。
大体有三种:程序方式,中断方式,DMA方式
在程序方式中有两种:无条件传送,这种传送比较简单,外设和CPU可以随时进行输入的交换。适用于一些简单的,少量的,不频繁的数据交换。这也像时间管理,这些简单的事,不是频繁的事情,两份钟原则。直接去做。
有条件传送,相反的适用于一些复杂的,较为频繁,或者外设不充裕的情况下,采取该种方式。这种事情就较为复杂了,而且很频繁。或许我们就需要拿出一个番茄来处理了。就相当于有条件。
先说下生活的一件事情。由于本人担负卫生环境方面的责任。所以会检查卫生是否合格等等。反映在计算机里:我会主动的发起信号,来检测是否有条件为true的信号。也就是说这种就是——程序查询方式,CPU会主动检测外设的状态,然后判断状态是否满足TRUE,如果满足CPU就会执行相应的外设请求。
程序查询方式:这种外设与CPU的数据传送方式我不喜欢,这是一种CPU主动的方式。CPU会检测外设的状态,如果
检测到了true的信号,就会去处理。在这种方式里有两大缺点:降低了CPU的效率。对外部的突发事件无法做到实
时处理。当然了这种方式实现起来很简单,电路设计也简单。只要约定一个时间,让CPU重复两个步骤:检测接口的状
态,检测状态是否满足true的条件。与生活做类比,闹钟的设置就蕴涵了一个道理。我们设置了闹钟的时间,是让
时间来发出一个信号——我们该起床了。而不是我们每个一段时间去查看下时间,看是否到了该起床的时间了。
另一个生活事情:我们的大老板是不会主动检测卫生环境问题的。而且有下面来发现问题,主动的向上请求老板,让老板来处理。这样就保证有了问题才会请大老板。这样才不会浪费大老板的宝贵资源。除非是下面除了问题,断线了。大老板才会出动。反映到计算机里这就是——中断方式。
中断方式实现起来,较为复杂,而且电路设计,程序设计也不简单。不过对于现在实现起来是很简单的了。
主要由三个步骤:1、外设发出请求信号。2、CPU接受信号,,保存好自己的当前的执行程序。3、处理外设的请求。4、返回原先的程序,继续执行。根据它的步骤我们就知道,实现起来不简单,电路设计也要复杂一些。不过对于现在的技术来说已经不难了。
中断的方法:通知老板的方法很多,有邮件,有飞信等。看计算机的通知方法都有哪些(离不开硬件和软件)。
1、多中断信号线法。每个中断源都有一个CPU的专线。
2、中断软件查询法。通过软件来查询是哪个线路的请求。
3、菊花链法:所有的中断源共用一个线路。
4、总线仲裁法。一个总线仲裁机制。
5、中断向量表法:用来保存各个中断源的中断服务程序入口地址,以便CPU去处理中断源的请求。
知道怎么处理中断请求之后,又有新的问题了。大老板怎么处理多个人的请求呢,很简单,根据一定的标准来判断谁的请求更加的高级,遇到高级的请求就处理,甭管现在再处理谁的请求。
这种方式不需要CPU的参与,是在主存与外设之间直接进行数据块的传递。
数据的传送离不开线路,总线分为三种
1、芯片级——内部总线。我认为是CPU了,内存了里面的一些线路。
2、系统总线——插件级总线(ISA EISA VEISA PCI)。我认为是主板上的那些线路。比如:地址,数据总线。
3、外部总线——又称通信总线(USB SCSI RS-232C IEEE系列)。咱们能看的见的线路。
PS:在软考中考到了总线周期这么一题。
时钟周期:CPU处理操作的最基本的单位,即我们所说的主频。
机器周期:访问内存花费的时间,读取一条指令的时间。
指令周期:读取指令,并执行完所需要的时间。
总线周期:CPU完成一次访问MEM或IO/端口操作所需要的时间。一般为4个时钟周期。
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
添加我为好友,拉您入交流群!
请使用微信扫一扫!