CPU与外设交换的信息,通常需要哪些信息?
呵呵 状态、数据和控制信息了。

CPU与外设之间的数据传送方式有哪些?CPU与外设之间的数据传送
其基本思想是在外围设备和内存之间开辟直接的数据交换通道。
(4)通道方式:与DMA方式相类似,也是一种以内存为中心,实现设备和内存直接交换数据的控制方式。与之不同的是,在DMA方式中数据传送方向、存放数据内存始址以及传送的数据块长度等都是由CPU控制,而在通道方式中这些都是由专管输入输出的硬件——通道来进行控制。
CPU是怎么访问外设的
CPU对外设的访问有2中方法:
轮询方式:CPU不停的,不断的访问设备,因为外设的处理速度慢,处理的时间是随机的,为了防止外设的数据丢失,CPU可以采用这种方法。
它的问题是造成CPU的利用率大大降低,CPU只做一件事情,功耗也非常高。
中断方式:如果外设的数据没有准备就绪,那么CPU可以做别的任务(比如处理一个进程,这个进程做一个算法),一旦外设准备就绪,外设会给CPU发送一个中断信号(嗨,哥们,准备就绪了,请处理),CPU停止当前的算法运算,处理这个外设,处理完毕,接着这行上一次打断的任务。
此时CPU在至少做两件事情,大大提高了CPU的利用率。cpu对外设的访问有2中方法:
轮询方式:cpu不停的,不断的访问设备,因为外设的处理速度慢,处理的时间是随机的,为了防止外设的数据丢失,cpu可以采用这种方法!它的问题是造成cpu的利用率大大降低,cpu只做一件事情,功耗也非常高!
中断方式:如果外设的数据没有准备就绪,那么cpu可以做别的任务(比如处理一个进程,这个进程做一个算法),一旦外设准备就绪,外设会给cpu发送一个中断信号(嗨,哥们,我准备就绪了,请处理我),cpu停止当前的算法运算,处理这个外设,处理完毕,接着这行上一次打断的任务!此时cpu在至少做两件事情,大大提高了cpu的利用率。CPU是通过主板访问外部设备的,因为外部设备是接在主板上的。CPU对外设的访问有2中方法:
轮询方式:CPU不停的,不断的访问设备,因为外设的处理速度慢,处理的时间是随机的,为了防止外设的数据丢失,CPU可以采用这种方法。
它的问题是造成CPU的利用率大大降低,CPU只做一件事情,功耗也非常高。
中断方式:如果外设的数据没有准备就绪,那么CPU可以做别的任务(比如处理一个进程,这个进程做一个算法),一旦外设准备就绪,外设会给CPU发送一个中断信号(嗨,哥们,准备就绪了,请处理),CPU停止当前的算法运算,处理这个外设,处理完毕,接着这行上一次打断的任务。
此时CPU在至少做两件事情,大大提高了CPU的利用率。

简述CPU与外设之间的数据传输有哪些控制方式以及每种方式的工作过程及特点。
你的问题太宏伟,简单的说,就是你的要求给了CPU,CPU收到以后,就是分散给其他硬件,第一个到达的就是内存,你可以把内存理解成转运的临时仓库,所有的指令都要经过内存,再转化成你想要的结果,到外设的话,大致上也是这个意思,你想要特点,你就非常专业,而且很繁琐,内存的频率越高,转存的速度就越快,但是,你处理器的处理速度很慢,你的内存速度再快也不管用,反之,处理器快,内存慢也很慢,都是相互的,也就是很早以前所说的瓶颈8.2 cpu与外设数据传送的方式
8.2.1 查询传送方式
cpu与i/o设备的工作往往是异步的,很难保证当cpu执行输入操作时,外设已把要输入的信息准备好了;而当cpu执行输出时,外设的寄存器(用于存放cpu输出数据的寄存器)一定是空的.所以,通常程序控制的传送方式在传送之前,必须要查询一下外设的状态,当外设准备就绪了才传送;若未准备好,则cpu等待.
1.查询式输入
在输入时,cpu必须了解外设的状态,看外设是否准备好.
当输入设备的数据已准备好后,发出一个选通信号,一边把数据送入锁存器,一边使d触发器为”1″,给出”准备好”ready的状态信号.而数据与状态必须由不同的端口输至cpu数据总线.当cpu要由外设输入信息时,先输入状态信息,检查数据是否已准备好,当数据已经准备好后,才输入数据.读入数据的指令,使状态信息清”0″.
这种查询输入方式的程序流程图,如图8-11所示.
2.查询式输出
同样的,在输出时cpu也必须了解外设的状态,看外设是否有空(即外设不是正处在输出状态,或外设的数据寄存器是空的,可以接收cpu输出的信息),若有空,则cpu执行输出指令,否则就等待.
查询式输出的程序流程图如图8-14所示.
8.2.2 中断传送方式
在上述的查询传送方式中,cpu要不断地询问外设,当外设没有准备好时,cpu要等待,不能进行别的操作,这样就浪费了cpu的时间.而且许多外设的速度是较低的,如键盘,打印机等等,它们输入或输出一个数据的速度是很慢的,在这个过程中,cpu可以执行大量的指令.为了提高cpu的效率,可采用中断的传送方式:在输入时,若外设的输入数据已存入寄存器;在输出时,若外设已把上一个数据输出,输出寄存器已空,由外设向cpu 发出中断请求,cpu就暂停原执行的程序( 即实现中断),转去执行输入或输出操作(中断服务),待输入输出操作完成后即返回,cpu再继续执行原来的程序.这样就可以大大提高cpu的效率,而且允许cpu与外设(甚至多个外设)同时工作.
8.2.3 直接数据通道传送(dma)
中断传送仍是由cpu通过程序来传送,每次要保护断点,保护现场需用多条指令,每条指令要有取指和执行时间.这对于一个高速i/o设备,以及成组交换数据的情况,例如磁盘与内存间的信息交换,就显得速度太慢了.
所以希望用硬件在外设与内存间直接进行数据交换(dma),而不通过cpu,这样数据传送的速度的上限就取决于存储器的工作速度.但是,通常系统的地址和数据总线以及一些控制信号线(例如io/,,等)是由cpu管理的.在dma方式时,就希望cpu把这些总线让出来(即cpu连到这些总线上的线处于第三态——高阻状态),而由dma控制器接管,控制传送的字节数,判断dma是否结束,以及发出dma结束等信号.这些都是由硬件实现的.
1.dma控制器的基本功能
dmac是控制存储器和外部设备之间直接高速地传送数据的硬件电路,它应能取代cpu,用硬件完成图8-17所示的各项功能.具体地说应具有如下功能:
(1)能接收外设的请求,向cpu发出dma请求信号.
(2)当cpu发出dma响应信号之后,接管对总线的控制,进入dma方式.
(3)能寻址存储器,即能输出地址信息和修改地址.
(4)能向存储器和外设发出相应的读/写控制信号.
(5)能控制传送的字节数,判断dma传送是否结束.
(6)在dma传送结束以后,能结束dma请求信号,释放总线,使cpu恢复正常工作.
2.dma传送方式
各种dmac一般都有两种基本的dma传送方式:
(1)单字节方式:每次dma请求只传送一个字节数据,每传送完一个字节,都撤除dma请求信号,释放总线.
(2)字节(字符)组方式:每次dma请求连续传送一个数据块,待规定长度的数据块传送完了以后,才撤除dma请求,释放总线.








