直接存储器存取

合集下载

7.3 CPU与外设之间的数据传送方式

7.3  CPU与外设之间的数据传送方式

(3)连续方式 )
连续操作方式是指在数据块传送的整个过程中, 连续操作方式是指在数据块传送的整个过程中,不 请求是否撤消, 控制器始终控制着总线。 管DMA请求是否撤消,DMA控制器始终控制着总线。 请求是否撤消 控制器始终控制着总线 除非传送结束或检索到“匹配字节” 除非传送结束或检索到“匹配字节”,才把总线控制 权交回CPU。在传送过程中,当DMA请求失效时, 请求失效时, 权交回 。在传送过程中, 请求失效时 DMA控制器将等待它变为有效,却并不释放总线。 控制器将等待它变为有效, 控制器将等待它变为有效 却并不释放总线。
返 回

如图7-3-6所示,试编程实现将48000H 所示,试编程实现将 如图 所示 为首地址的顺序100个单元的数据,利用 个单元的数据, 为首地址的顺序 个单元的数据 查询方式输出到外设。 查询方式输出到外设。
程序如下: 程序如下: START: MOV AX, 4000H MOV DS, AX MOV SI, 8000H MOV CX, 100 GOON: MOV DX, 00F1H WAIT: IN AL, DX AND AL, 01H JZ WAIT MOV AL, [SI] MOV DX, 00F0H OUT DX, AL INC SI LOOP GOON RET
返 回
DMA控制器从CPU完全接管对总线的控制, DMA控制器从CPU完全接管对总线的控制,数据 控制器从CPU完全接管对总线的控制 交换不经过CPU 而直接在内存和I/O CPU, I/O设备之间 交换不经过CPU,而直接在内存和I/O设备之间 进行。 进行。 优点:传送速率很高, 优点:传送速率很高,这对高速度大批量数据传 送特别有用。 送特别有用。 缺点:要求设置DMA控制器,电路结构复杂, 缺点:要求设置DMA控制器,电路结构复杂,硬 DMA控制器 件开销大

计算机三级嵌入式试题题库

计算机三级嵌入式试题题库

一单项选择题1. 世界上第一台计算机研制成功的年代是( C )Α.1944年B.1945年C.1946年D.1947年2. 十进制数235,用二进制表达为( A )Α.11101011B.11101010C.11101001D.111011103. ARM采用定长指令格式,所有指令都是32位,Bit[31:28]为( B )Α.目标寄存器编码B.条件执行C.指令操作符编码D.永远是04. 8080处理器是( C )Α.32位处理器B.16位处理器C.8位处理器D.4位处理器5. 把微处理器与外部设备相连接的线路称为( D )Α.电源线B.控制线C.数据线D.总线6. 嵌入式软件开发构建阶段的第一步是( A )Α.编译B.链接C.定址D.打包7. 以下有关进程和程序的说法错误的是( D )Α.进程是动态的B.程序是静态的C.一个程序可以对应多个进程D.程序就是进程8. 微软开发的嵌入式操作系统是( C )Α.RT-LinuxB.MontaVistaC.Windows CED.VxWorks9. ROM监视器是一个小程序,驻留在嵌入式系统的( B )Α.RAM中B.ROM中C.Flash中D.DOM中10.直接存储器存取的英文缩写是( A )Α.DMAB.DRAMC.ISAD.IRQ11. 以下不是嵌入式系统应用领域的是( C )Α.移动电话B.汽车电子C.办公系统D.军工航天12. 十进制数235,用八进制表达为( C )Α.351B.352C.353D.35413. ARM采用定长指令格式,所有指令都是32位,Bit[27:26]为( C )Α.目标寄存器编码B.指令操作符编码C.永远是0D.条件执行14. 80286处理器是( B )Α.32位处理器B.16位处理器C.8位处理器D.4位处理器15. 厂家和用户为性能扩充或作为特殊要求使用的信号线称为( A )Α.备用线B.控制线C.数据线D.总线16. 嵌入式软件开发构建阶段的第二步是( B )Α.编译B.链接C.定址D.打包17. 以下有关进程和程序的说法错误的是( B )Α.进程是动态的B.一个进程可以对应多个程序C.一个程序可以对应多个进程D.程序不是进程18. WindRiver公司开发的嵌入式操作系统是( A )Α.VxWorksB.MontaVistaC.Windows CED.RT-Linux19. GDB中,用来设置断点的命令是( D )Α.killB.nextC.makeD.break20.1Byte等于( D )Α.1024KBB.1024KMC.1024GBD.8bit21. 以下不是嵌入式系统应用领域的是( A )Α.电子商务B.移动电话C.消费类电子产品D.军工航天22. 十进制数235,用十六进制表达为( A )Α.EBB.ECC.EAD.EE23. ARM采用定长指令格式,所有指令都是32位,Bit[24:21]为( C )Α.目标寄存器编码B.条件执行C.指令操作符编码D.永远是024. 80386处理器是( C )Α.8位处理器B.16位处理器C.32位处理器D.64位处理器25. 决定电源种类的线称为( C )Α.备用线B.控制线C.电源线D.数据线26. 嵌入式软件开发构建阶段的第三步是( B )Α.编译B.定址C.打包D.定址和打包27. 以下有关进程和程序的说法正确的是( C )Α.进程是静态的B.一个进程可以对应多个程序C.一个程序只能对应一个进程D.程序不是进程28. 以下不是嵌入式操作系统的是( A )Α.U-BootB.MontaVistaC.Windows CED.RT-Linux29. GDB中,用来显示源代码的命令是( B )Α.killB.listC.makeD.break30.1KB等于( B )Α.1024MBB.1024BC.1024GBD.8bit31. 以下不是嵌入式系统应用领域的是( A )Α.通用软件B.工业控制C.消费类电子产品D.机器人32. 十进制数100,用十六进制表达为( C )Α.62B.63C.64D.6533. ARM采用定长指令格式,所有指令都是32位,Bit[24:21]为( B )Α.目标寄存器编码B.操作符编码C.第一个操作数寄存器D.永远是034. 80486处理器是( B )Α.64位处理器B.32位处理器C.16位处理器D.8位处理器35. 决定地线分别方式的线称为( D )Α.备用线B.控制线C.电源线D.地线36. 打包结束后得到的是一个( A )Α.二进制文件B.文本文件C.源文件D.汇编文件37. 以下有关进程和程序的说法正确的是( ABC )Α.进程是动态B.程序是静态的C.一个程序可以对应多个进程D.一个进程可以对应多个程序38. 以下是嵌入式操作系统的是( D )Α.U-BootB.VM WareC.EVCD.Windows CE39. GDB中,用来删除断点的命令是( B )Α.killB.clearC.makeD.break40.1MB等于( C )Α.1024BB.1024GBC.1024KBD.8bit41. 以下属于嵌入式系统应用领域的是( D )Α.移动电话B.工业控制C.机器人D.以上都是42. 十进制数100,用八进制表达为( A )Α.144B.145C.146D.14743. ARM采用定长指令格式,所有指令都是32位,Bit[20]为( C )Α.目标寄存器编码B.第一个操作数寄存器C.指示本指令操作是否影响CPSR的值D.永远是044. EMU只指( A )Α.嵌入式微控制器B.嵌入式微处理器C.嵌入式数字信号处理器D.嵌入式片上系统45. 不能确定总线功能的强弱以及适应性的是( D )Α.控制线B.时序信号线C.中断信号线D.地线46. 以下不是选择嵌入式系统编程语言的衡量标准的是( B )Α.位操作B.价格C.指针D.异常事件处理47. 以下不是线程的优点的选项是( D )Α.响应度高B.资源共享C.经济D.单处理器使用48. 以下是嵌入式操作系统的是( B )Α.VIVIB.RT-LinuxC.EVCD.VM Ware49. GDB中,执行下条源代码的命令是( D )Α.nextB.clearC.makeD.go50.1GB等于( C )Α.8bitB.1024BC.1024MBD.1024KB51. 以下不属于嵌入式系统应用领域的是( D )Α.消费类电子产品B.工业控制C.军工航天D.办公系统52. 十进制数100,用二进制表达为( D )Α.1100111B.1100010C.1100101D.110010053. ARM采用定长指令格式,所有指令都是32位,Bit[19:16]为( D )Α.目标寄存器编码B.永远是0C.指示本指令操作是否影响CPSR的值D.第一个操作数寄存器54. EMPU只指( B )Α.嵌入式微控制器B.嵌入式微处理器C.嵌入式数字信号处理器D.嵌入式片上系统55. 能确定总线功能的强弱以及适应性的是( C )Α.备用线B.地线C.中断信号线D.数据线56. 以下不是选择嵌入式系统编程语言的衡量标准的是( A )Α.以下都不是B.多任务支持C.程序控制结构D.异常事件处理57. 以下说法错误的是( B )Α.线程响应度高B.程序是动态的C.程序不是进程D.进程是动态的58. 以下不是Boot Loader的是( C )Α.VIVIB.U-BootC.RT-LinuxD.BLOB59. GDB中,显示帮助信息的命令是( B )Α.showB.helpC.seeD.browse60.1TB等于( C )Α.1024BB.1024KBC.1024GBD.1024MB61. 世界上第一台计算机诞生在( B )Α.英国B.美国C.法国D.苏联62. 十进制数123,用十六进制表达为( C )Α.70B.7AC.7BD.7C63. ARM采用定长指令格式,所有指令都是32位,Bit[15:11]为( B )Α.第一个操作数寄存器B.目标寄存器编码C.指示本指令操作是否影响CPSR的值D.永远是064. EDSP只指( B )Α.嵌入式微控制器B.嵌入式数字信号处理器器C.嵌入式微处理D.嵌入式片上系统65. 能确定数据传输的宽度的是( A )Α.数据线B.时序信号线C.中断信号线D.电源线66. 以下是选择嵌入式系统编程语言的衡量标准的是( D )Α.异常事件处理B.多任务支持C.程序控制结构D.以上都是67. 以下说法正确的是( A )Α.线程响应度高B.程序是动态的C.程序就是进程D.进程是静态的68. 以下是嵌入式系统的是( D )Α.VIVIB.U-BootC.BLOBD.RT-Linux69. GDB中,显示表达式的值使用命令( A )Α.displayB.showD.list70.1024KB等于( C )Α.1TBB.1BC.1MBD.1GB71. 单片出现在20世纪( A )Α.70年代B.80年代C.90年代D.60年代72. 十进制数123,用二进制表达为( C )Α.1111101B.1111100C.1111011D.111101073. ARM采用定长指令格式,所有指令都是( B )Α.64位B.32位C.16位D.8位74. 以下说法错误的是( D )Α.寄存器的速度最快B.寄存器容量最小C.一般用来存储计算的操作数和结果D.寄存器位于处理器外部75. 不能决定总线功能的强弱以及适应性的信号线是( C )Α.控制信号线B.时序信号线C.中断信号线D.备用信号线76. 在做低功耗优化时,以下说法错误的是( A )Α.采用什么算法与降低功耗无关B.在采集系统中应尽量降低采集速率C.在通讯模块中应尽量提高传输的波特率D.CPU的工作时间与降低功耗有关77. 以下说法错误的是( A )Α.程序就是进程B.程序是静态的C.线程响应度高D.进程是动态的78. 以下不是引导程序的是( D )Α.VIVIB.U-BootC.BLOBD.RT-Linux79. GDB中,终止被调试的程序可以使用命令( B )Α.clearB.killC.stopD.make80.1024MB等于( B )Α.1TBB.1GBC.1KBD.1B二填空题1.嵌入式系统的嵌入性特性,是指系统需要与物理世界中特定的环境和设备紧密结合。

直接存储器存取(DirectMemoryAccess,DMA)详细讲解

直接存储器存取(DirectMemoryAccess,DMA)详细讲解

直接存储器存取(DirectMemoryAccess,DMA)详细讲解⼀、理论理解部分。

1、直接存储器存取(DMA)⽤来提供在外设和存储器之间或者存储器和存储器之间的⾼速数据传输。

2、⽆须CPU⼲预,数据可以通过DMA快速移动,这就节省了CPU的资源来做其他操作。

3、两个DMA控制器有12个通道(DMA1有7个通道,DMA2有5个通道),每个通道专门⽤来管理来⾃⼀个或者多个外设对存储器访问的请求。

4、还有⼀个冲裁器协调各个DMA请求的优先权。

在同⼀个DMA模块上,多个请求间的优先权可以通过软件编程设置(共有四级:很⾼、⾼、中和低),优先权设置相等时由硬件决定(请求0优先请求1,)5、每个通道都有三个事件标志(DMA半传输、DMA传输完成和DMA传输出错),这三个事件标志逻辑或成为⼀个单独的中断请求。

6、闪存、SRAM、外设的SRAM、APB1、APB2和AHB外设均可作为访问的源和⽬标。

7、可编程的数据传输数⽬:最⼤为655358、如果外设要想通过DMA 来传输数据,必须先给DMA 控制器发送DMA 请求,DMA 收到请求信号之后,控制器会给外设⼀个应答信号,当外设应答后且DMA 控制器收到应答信号之后,就会启动DMA 的传输,直到传输完毕。

DMA 有DMA1 和DMA2 两个控制器,DMA1 有7个通道,DMA2有5 个通道,不同的DMA 控制器的通道对应着不同的外设请求,这决定了我们在软件编程上该怎么设置,具体见DMA 请求映像表。

9、仲裁器当发⽣多个DMA 通道请求时,就意味着有先后响应处理的顺序问题,这个就由仲裁器也管理。

仲裁器管理DMA 通道请求分为两个阶段。

第⼀阶段属于软件阶段,可以在DMA_CCRx 寄存器中设置,有4 个等级:⾮常⾼、⾼、中和低四个优先级。

第⼆阶段属于硬件阶段,如果两个或以上的DMA通道请求设置的优先级⼀样,则他们优先级取决于通道编号,编号越低优先权越⾼,⽐如通道0 ⾼于通道1。

机电一体化试题(卷)与答案汇总

机电一体化试题(卷)与答案汇总

目录机电一体化复习题2机电一体化复习题参考答案6机电一体化技术试题11答案与评分标准13机电一体化复习题18一、名词解释18二、填空题19三、简答题20四、选择题。

〔无答案〕23五、应用题24《机电一体化技术》试卷〔一〕27《机电一体化技术》试卷 (一)答案29《机电一体化技术》试卷 (二)30《机电一体化技术》试卷(二) 答案33《机电一体化技术》试卷 (三)35《机电一体化技术》试卷 (三)答案38《机电一体化技术》试卷 (四)40《机电一体化技术》试卷 (四) 答案42《机电一体化技术》试卷 (五)45《机电一体化技术》试卷 (五) 答案47机电一体化系统设计试题51一、填空题〔每空1分,共20分〕51二、简答题〔每题5分,共30分〕51三、计算题〔共20分〕〔将此题答案写在答题纸上〕52四、综合分析题〔共30分〕52机电一体化系统设计试题答案53一、填空题〔每空1分,共20分〕53二、简答〔每题5分,共30分〕53三、计算题〔共20分〕54四、综合分析题〔30分〕54机电一体化复习题一、名词解释1机电一体化 2伺服控制 3闭环控制系统 4逆变器 5 SPWM 6单片机 7 I/O接口8 I/O通道 9 串行通信 10直接存储器存取〔DMA〕二、判断题:1 在计算机接口技术中I/O通道就是I/O接口。

〔×〕2 滚珠丝杆不能自锁。

〔√〕3 无论采用何种控制方案,系统的控制精度总是高于检测装置的精度。

〔×〕4 异步通信是以字符为传输信息单位。

〔√〕5 同步通信常用于并行通信。

〔×〕6 无条件I/O方式常用于中断控制中。

〔×〕7从影响螺旋传动的因素看,判断下述观点的正确或错误〔1〕影响传动精度的主要是螺距误差、中径误差、牙型半角误差〔√〕〔2〕螺杆轴向窜动误差是影响传动精度的因素〔√〕〔3〕螺杆轴线方向与移动件的运动方向不平行而形成的误差是影响传动精度的因素〔√〕〔4〕温度误差是影响传动精度的因素〔√〕三、单项选择题1. 步进电动机,又称电脉冲马达,是通过〔 B 〕决定转角位移的一种伺服电动机。

计算机组成原理

计算机组成原理

③全互锁方式
t2、t4均限定。
保证了数据传输的正确性。
3、常用的标准总线
(1)ISA总线
ISA为工业标准总线,是IBM公 司为其生产的PC系列微机制定的总线 标准。
ISA-8总线(即XT总线)属8位总 线,适用于CPU为8088的IBM/XT, 包括数据总线8位,地址线20位,可 接受6路中断请求,3路DMA请求。
ISA-16总线(即AT总线)属16 位总线,适用于CPU为80286的 IBM/AT,包括数据总线16位,地 址线24位,可接受16路中断请求, 7路DMA请求。 ISA总线的总线时钟频率为 8.33MHZ,最大传输率为5MB/S。
(2)EISA总线
EISA总线为扩充工业标准总线。
EISA总线为32位总线,与ISA总线兼 容,总线插槽分为两段,较浅的部分为原 ISA总线信号,较深的部分是EISA信号, 插槽上有一个卡口使ISA的板卡不能进入较 深的部分。 EISA总线在ISA总线的基础上增加了 数据宽度和地址空间,具有共享DMA,总 线传输方式增加了块DMA方式、淬发传输 方式,支持多个主模块,支持中断共享。
常见的双向异步通信方式有非互锁 方式、半互锁方式和全互锁方式三种。
①非互锁方式
请求信号与回答信号互不连锁。
t2与t4未作限定。
该方式可以判断数据是否正确地传 送到对方,但两次总线传输的延迟t3+t5 和请求信号的宽度t2、回答信号的宽度 t4之间的配合是一个难以处理的问题, 原因为:
A、如t2过窄,在远距离的两个部件通 信时会出现边缘畸变而产生错误。 B、如t2过宽,在近距离的两个部件通 信时会出现t2﹥t3+t5,导致请求信号与 下一次数据传输相重叠而产生错误。
①外设本身的工作已经完成 中断触发器发出中断请求

微型计算机原理及应用试题及答案

微型计算机原理及应用试题及答案

填空1.微型计算机是指以微处理器为核心,配上存储器、输入输出接口电路及系统总线所组成的计算机。

2.微处理器是由一片或几片大规模集成电路组成的具有运算器和控制器功能的部件。

3.8086CPU从功能上讲,其内部结构分为_执行单元_和_总线接口单元_两大部分。

4.1KB=1024 字节,1MB=1024 KB,1GB=1024 MB。

5.带符号数有原码、反码和补码三种表示方法,目前计算机中带符号数都采用补码形式表示。

6.(101110.11)2=(46.75)10=(2E.C)167.已知[ X]补=81H,则X= -127 。

(已知补码如何求真值?)8.假设二进制数A=10000110,试回答下列问题:1)若将A看成无符号数则相应的十进制数是_134_。

2)若将A看成有符号数则相应的十进制数是_-122_。

(带符号数都采用补码形式表示,已知补码如何求真值?。

)3)若将A看成BCD码则相应的十进制数是_86_。

9.从_奇_地址开始的字称为“非规则字”,访问“非规则字”需_两_个总线周期。

10.8086CPU数据总线是_16_位,对规则字的存取可在一个总线周期完成,对非规则字的存取则需要两个总线周期。

11.8086CPU的地址总线有20 位,可直接寻址1M B的存储空间。

12.若DS=6100H,则当前数据段的起始地址为 61000H ,末地址为 70FFFFH 。

13.动态存储器是靠电容来存储信息的,所以对存储器中所存储的信息必须每隔几毫秒刷新一次。

14.8086 CPU复位后,执行的第一条指令的物理地址是FFFF0H 。

15.8086CPU系统的逻辑地址由段地址和偏移地址组成,物理地址的求法是段地址左移4位+偏移地址。

16.堆栈是以_先进后出_的原则存取信息的一个特定存贮区。

8086的堆栈可在1MB 存贮空间内设定,由堆栈段寄存器 SS 和堆栈指针 SP 来定位。

堆栈操作是以字为单位。

17.转移指令分为条件转移指令和无条件转移指令,条件转移指令的转移目的地址只能是短标号,即转移范围不能超过_-128~+127_字节。

(计算机原理会考试题库)

(计算机原理会考试题库)

《计算机组成与工作原理》试题库教材《计算机组成与工作原理》电子工业出版社刘晓川主编一、选择题[0102A] 1、计算机直接存储器存取传送方式就是()。

A、程序查询方式B、中断处理方式C、DMA传送方式D、I/O通道控制方式[0302B] 2、下列存储器中,读出数据传输率最高的是()。

A、DRAMB、SRAMC、EPROMD、EEPROM[0101A] 3、以下不属于微机主机箱内接口或部件的是()。

A、IDE接口B、AGP显卡接口C、内存条D、鼠标[0202C] 4、当[x]反=1.1111时,对应的真值是()。

A、-0B、-15/16C、-1/16D、-6/16[0302A]5、1GB=()字节。

A、210B、220C、230D、240[0302B]6、一个512KB的存储器,其地址线和数据线的总和是()。

A、17B、19C、27D、37[0302C]7、某计算机字长是32位,它的存储容量是64KB,按字编址,它的寻址范围是()。

A、16KBB、16KC、32KD、32KB[0303A]8、所谓三总线结构的计算机是指()。

A、地址线、数据线和控制线三组传输线B、I/O总线、主存总线和DMA总线三组传输线C、I/O总线、主存总线和系统总线三组传输线D、地址线、主存总线和系统总线三组传输线[0302A]9、下列( )是正确的。

A、1KB=1024×1024BB、1KB=1024MBC、1MB=1024×1024BD、1MB=1024B[0301A]10、存放欲执行指令的寄存器是( )。

A、MARB、PCC、MDRD、IR[0102A]11、在下列设备中,属于图形输入设备的是()。

A、键盘B、条形码阅读机C、数字化仪D、显示器[0201B]12、以下不可能是八进制数的是()。

A、10B、24C、38D、67[0201C]13、在定点二进制运算器中,减法运算一般通过()来实现。

A、原码运算的二进制减法器B、补码运算的二进制减法器C、补码运算的十进制加发器D、补码运算的二进制加法器[0302B]14、在程序执行过程中,常需要将信息写入主存,通常有两种写法()。

微机原理考试题目及知识点整理

微机原理考试题目及知识点整理

填空题知识点整理1.CPU的读写操作、微处理器的性能指标:参考填空题6、7、8。

2.中断响应中两个总线周期。

p160主要是对于时序图的理解,熟悉书中160页内容,理解两个总线周期的作用。

第一个周期8259A收到外设的中断请求(IR0~IR7),分析请求并向CPU请求中断(INT),CPU做出响应(INTA*),锁住总线(LOCK*),8259A在级联方式时选择从片(CAS0~CAS2,输出被响应中断的从8259A 的编码);第二个周期CPU发出第二个响应(INTA*),8259A把中断向量号送上数据总线(D0~D7),CPU利用向量号执行中断程序。

主要理解其中“4)8259A收到第一个INTA有效信号后,使最高优先权的ISR置位,对应的IRR复位”即进入中断服务状态,“5)8259A在收到第二个INTA有效时,把中断向量号送上数据总线,供CPU读取”即让CPU处理中断。

补充:关于中断还可能会考查关于中断级联的问答题,要求画出连接:3.三大总线,DB和AB决定什么。

p7微机三大总线包括地址总线、数据总线和控制总线,是微处理器与存储器与I/O接口之间信息传输的通路。

地址总线(AB):由微处理器向外设的单向总线,用以传输微处理器将要访问的外设的地址信息。

地址线的数量决定了系统直接寻址空间的大小。

数据总线(DB):微处理器与外设间数据传输线,为双向总线。

读操作时,外设将数据输入微处理器,写操作时,微处理器将数据输出外设。

数据线的数量决定了一次可传输数据的位数。

控制总线(CB):双向总线,用于协调系统中个部件的操作,有些信号线将微处理器的控制信号或状态信号送往外界,有些信号线将外界的请求或联络信号送往微处理器。

控制总线决定总线功能强弱与适应性的好坏。

4.DMA及相关。

其传送过程涉及的信号。

p140、p151、p189~p193直接存储器存取DMA是一种外设与存储器之间直接传输数据的方法,适用于需要数据高速大量传送的场合。

STM32技术参考手册第7章DMA 控制器(DMA)

STM32技术参考手册第7章DMA 控制器(DMA)

● 硬件:如果 2 个请求有相同的软件优先级,则拥有较低编号的通道比拥有较高编号的通 道有较高的优先权。举个例子,通道 2 优先于通道 4。
7.3.3
DMA 通道
每个通道都可以在有固定地址的外设寄存器和存储器地址之间执行DMA传输。DMA传输的 数据量是可编程的,最大达到65535。包含要传输的数据项数量的寄存器,在每次传输后递 减。 可编程的数据量 可编程的数据量 外设和存储器的传输数据量可以通过 DMA_CCRx 寄存器中的 PSIZE 和 MSIZE 位编程。 指针增量 通过设置DMA_CCRx寄存器中PINC和MINC标志位,外设和存储器的指针在每次传输后可 以有选择地完成自动增量。当设置为增量模式时,下一个要传输的地址将是前一个地址加 上增量值,增量值取决与所选的数据宽度为1、2或4。第一个传输的地址存放在 DMA_CPARx/DMA_CMARx寄存器中。 通道配置为非循环模式时,在传输结束后(即传输数据量变为 0)将不再产生 DMA 操作。 通道配置过程 下面是配置 DMA 通道的过程(x 代表通道号): 1. 2. 3. 4. 5. 6. 在 DMA_CPARx 寄存器中设置外设寄存器的地址。发生外设数据传输请求时,这个地 址将是数据传输的源或目标。 在 DMA_CMARx 寄存器中设置数据存储器的地址。发生外设数据传输请求时,传输的 数据将从这个地址读出或写入这个地址。 在 DMA_CNDTRx 寄存器中设置要传输的数据量。在每个数据传输后,这个数值递 减。 在 DMA_CCRx 寄存器的 PL[1:0]位中设置通道的优先级。 在 DMA_CCRx 寄存器中设置数据传输的方向、循环模式、外设和存储器的增量模 式、外设和存储器的数据宽度、传输一半产生中断或传输完成产生中断。 设置 DMA_CCRx 寄存器的 ENABLE 位,启动该通道。

微机原理第六章 输入输出和中断技术 part 2 (2)

微机原理第六章 输入输出和中断技术 part 2 (2)
回复断点和硬件现场
中断处理的一般过程
6.4.3 8088/8086中断系统
8086/8088为每个中断源分配 一个中断类型码(中断向量码),其取值范围为 0~255,实际可处理56种中断。其中包括软件中断,系统占用的中断,已经开放 给用户使用的中断。所有中断又可分为两大类:内部中断和外部中断。
内部中断
6.4.2 中断处理的一般过程
1. 中断请求 2. 中断源识别及中断判优 3. 中断响应 4. 中断处理(服务) 5. 中断返回
1. 中断请求 ➢ INTR中断请求信号应保持到中断被处理为止 ➢ CPU响应中断后,中断请求信号应及时撤销
2. 中断源识别 ➢ 软件判优:由软件来安排中断源的优先级别。顺序查询中断请求,先查询的
➢ (4)能向存储器或外设发出读/写命令。 ➢ (5)能决定传送的字节数,并判断DMA传送是否结束。 ➢ (6)在DMA过程结束后,能向CPU发出DMA结束信号,将总线控制权交
还给CPU。
2. DMA控制器的工作过程 ➢ (1)当外设准备好,可以进行DMA传送时,外设向DMA控制器发出
“DMA传送请求”信号DRQ ➢ (2)DMA控制器收到请求后,向CPU发出“总线请求”信号HOLD ➢ (3)CPU在完成当前总线周期后会立即发出HLDA信号,对HOLD信号进
➢ (2)单步中断——1型中断,标志寄存器中有一位陷阱标志TF。 ➢ (3)断点中断——3型中断,专用于设置断点的指令INT 3,用于程序中设
置断点来调试程序。
➢ (4)溢出中断——4型中断,在算数指令的执行过程发出溢出 ➢ (5)用户自定义的软件中断——n型中断,执行中断指令INT n引起内部中
断。
需要时,CPU回到原来被中断的地方继续执行自己的程序。 优点: ➢ CPU效率高,实时性好 缺点 ➢ 程序编制相对较为复杂

完整版计算机组成原理简答题

完整版计算机组成原理简答题

完整版计算机组成原理简答题计算机组成原理简答题第四章1、存储器的层次结构主要体现在什么地方?为什么要分这些层次?计算机如何管理这些层次?答:存储器的层次结构主要体现在Cache-主存和主存-辅存这两个存储层次上。

Cache-主存层次在存储系统中主要对CPU访存起加速作用,即从整体运行的效果分析,CPU访存速度加快,接近于Cache的速度,而寻址空间和位价却接近于主存。

主存-辅存层次在存储系统中主要起扩容作用,即从程序员的角度看,他所使用的存储器其容量和位价接近于辅存,而速度接近于主存。

综合上述两个存储层次的作用,从整个存储系统来看,就达到了速度快、容量大、位价低的优化效果。

主存与CACHE之间的信息调度功能全部由硬件自动完成。

而主存与辅存层次的调度目前广泛采用虚拟存储技术实现,即将主存与辅存的一部分通过软硬结合的技术组成虚拟存储器,程序员可使用这个比主存实际空间(物理地址空间)大得多的虚拟地址空间(逻辑地址空间)编程,当程序运行时,再由软、硬件自动配合完成虚拟地址空间与主存实际物理空间的转换。

因此,这两个层次上的调度或转换操作对于程序员来说都是透明的。

2. 说明存取周期和存取时间的区别。

解:存取周期和存取时间的主要区别是:存取时间仅为完成一次操作的时间,而存取周期不仅包含操作时间,还包含操作后线路的恢复时间。

即:存取周期 = 存取时间 + 恢复时间3. 什么叫刷新?为什么要刷新?说明刷新有几种方法。

解:刷新:对DRAM定期进行的全部重写过程;刷新原因:因电容泄漏而引起的DRAM所存信息的衰减需要及时补充,因此安排了定期刷新操作;常用的刷新方法有三种:集中式、分散式、异步式。

集中式:在最大刷新间隔时间内,集中安排一段时间进行刷新,存在CPU访存死时间。

分散式:在每个读/写周期之后插入一个刷新周期,无CPU访存死时间。

异步式:是集中式和分散式的折衷。

4. 半导体存储器芯片的译码驱动方式有几种?解:半导体存储器芯片的译码驱动方式有两种:线选法和重合法。

操作系统第4章5.6 本单元作业参考答案

操作系统第4章5.6 本单元作业参考答案

单元四课后作业答案一、填空1.磁带、磁盘这样的存储设备都是以块为单位与内存进行信息交换的。

2.根据用户作业发出的磁盘I/O请求的柱面位置,来决定请求执行顺序的调度,被称为移臂调度。

3.DMA控制器在获得总线控制权的情况下能直接与内存储器进行数据交换,无需CPU介入。

4.在DMA方式下,设备与内存储器之间进行的是成批数据传输。

5.通道程序是由通道执行的。

6.通道是一个独立与CPU的、专门用来管理输入/输出操作的处理机。

7.缓冲的实现有两种方法:一种是采用专门硬件寄存器的硬件缓冲,一种是在内存储器里开辟一个区域,作为专用的I/O缓冲区,称为软件缓冲。

8.设备管理中使用的数据结构有系统设备表(SDT)和设备控制块(DCB)。

9.基于设备的分配特性,可以把系统中的设备分为独享、共享和虚拟三种类型。

10.引起中断发生的事件称为中断源。

二、选择1.在对磁盘进行读/写操作时,下面给出的参数中,C 是不正确的。

A.柱面号B.磁头号C.盘面号D.扇区号2.在设备管理中,是由B 完成真正的I/O操作的。

A.输入/输出管理程序B.设备驱动程序C.中断处理程序D.设备启动程序3.在下列磁盘调度算法中,只有D 考虑I/O请求到达的先后次序。

A.最短查找时间优先调度算法B.电梯调度算法C.单向扫描调度算法D.先来先服务调度算法4.下面所列的内容里,C 不是DMA方式传输数据的特点。

A.直接与内存交换数据B.成批交换数据C.与CPU并行工作D.快速传输数据5.在CPU启动通道后,由A 执行通道程序,完成CPU所交给的I/O任务。

A.通道B.CPU C.设备D.设备控制器6.利用SPOOL技术实现虚拟设备的目的是A 。

A.把独享的设备变为可以共享B.便于独享设备的分配C.便于对独享设备的管理D.便于独享设备与CPU并行工作7.通常,缓冲池位于C 中。

A.设备控制器B.辅助存储器C.主存储器D.寄存器8. B 是直接存取的存储设备。

(计算机原理会考试题库).

(计算机原理会考试题库).

《计算机组成与工作原理》试题库教材《计算机组成与工作原理》电子工业出版社刘晓川主编一、选择题[0102A] 1、计算机直接存储器存取传送方式就是()。

A、程序查询方式B、中断处理方式C、DMA传送方式D、I/O通道控制方式[0302B] 2、下列存储器中,读出数据传输率最高的是()。

A、DRAMB、SRAMC、EPROMD、EEPROM[0101A] 3、以下不属于微机主机箱内接口或部件的是()。

A、IDE接口B、AGP显卡接口C、内存条D、鼠标[0202C] 4、当[x]反=1.1111时,对应的真值是()。

A、-0B、-15/16C、-1/16D、-6/16[0302A]5、1GB=()字节。

A、210B、220C、230D、240[0302B]6、一个512KB的存储器,其地址线和数据线的总和是()。

A、17B、19C、27D、37[0302C]7、某计算机字长是32位,它的存储容量是64KB,按字编址,它的寻址范围是()。

A、16KBB、16KC、32KD、32KB[0303A]8、所谓三总线结构的计算机是指()。

A、地址线、数据线和控制线三组传输线B、I/O总线、主存总线和DMA总线三组传输线C、I/O总线、主存总线和系统总线三组传输线D、地址线、主存总线和系统总线三组传输线[0302A]9、下列( )是正确的。

A、1KB=1024×1024BB、1KB=1024MBC、1MB=1024×1024BD、1MB=1024B[0301A]10、存放欲执行指令的寄存器是( )。

A、MARB、PCC、MDRD、IR[0102A]11、在下列设备中,属于图形输入设备的是()。

A、键盘B、条形码阅读机C、数字化仪D、显示器[0201B]12、以下不可能是八进制数的是()。

A、10B、24C、38D、67[0201C]13、在定点二进制运算器中,减法运算一般通过()来实现。

A、原码运算的二进制减法器B、补码运算的二进制减法器C、补码运算的十进制加发器D、补码运算的二进制加法器[0302B]14、在程序执行过程中,常需要将信息写入主存,通常有两种写法()。

微机原理第六章参考答案

微机原理第六章参考答案

一、I/O接口的作用是使微机处理器与外设之间能够有条不紊地协调工作,打到信息交换的目的。

I/O接口的功能有:数据缓冲、设备选择、信号转换、接收、解释并执行CPU命令、中断管理、可编程等功能。

二、I/O端口是接口信息流传送的地址通道。

一般接口电路中有数据端口、命令端口、状态端口等。

三、CPU对I/O端口的编址方式有哪几种?各有什么特点?80X86对I/O端口的编址方式属于哪一种?CPU对I/O端口的编址方式有:统一编址和独立编址。

统一编址的微机系统中,存储器、I/O接口和CPU通常挂接在同一总线上,CPU对I/O端口的访问非常灵活、方便,有利于提高端口数据的处理速度;但是减少了有效的存储空间。

独立编址的微机系统中,I/O地址空间和存储器地址空间可以重叠,CPU需要通过不同的命令来区分端口的存储器。

80X86采用独立编址方式。

四、某微机系统有8个I/O接口芯片,每个接口芯片占用8个端口地址。

若起始地址为9000H,8个接口芯片的地址连续分布,用74LS138作译码器,请画出端口译码电路图,并说明每个芯片的端口地址范围。

74LS138分析下表所列的地址分配情况,可知系统地址信号的译码情况为(图略):●字选:A2~A0直接与接口芯片上的地址信号线连接以寻址每个接口芯片内部的8个端口;●片选:⏹A5~A3接3-8译码器输入端,译码器输出端分别作为8个接口芯片的片选信号;五、由于CPU与外设之间的速度不匹配,所以输入需要缓冲,输出需要锁存。

输入缓冲器就是输入时在外设和CPU之间接一数据缓冲器,当读该缓冲器的控制信号有效时,才将缓冲器的三态门打开,使外设的数据进入系统的数据总线,而其他时间,三态门处于高阻状态,不影响总线上的其他操作。

输出锁存就是在CPU和外设之间接一锁存器,使得有输出指令并且选中该I/O端口时,才使总线上的数据进入锁存器,此后不管总线上的数据如何变化,只要没有再次使锁存器的信号有效,锁存器的输出端就一直保持原来的锁存信息。

DMA控制器

DMA控制器

9.何谓DMA方式? DMA控制器可采用哪几种方式与CPU分时使用内存?
【解】直接内存访问(DMA)方式是一种完全由硬件执行I/O交换的工作方式。DMA控制器从CPU完全接管对总线的控制。数据交换不经过CPU,而直接在内存和I/O设备之间进行。DMA控制器采用以下三种方式:
①停止CPU访问内存:当外设要求传送一批数据时,由DMA控制器发一个信号给CPU。DMA控制器获得总线控制权后,开始进行数据传送。一批数据传送完毕后,DMA控制器通知CPU可以使用内存,并把总线控制权交还给CPU。
DMA控制器在微机系统中起什么作用?它的工作特点如何
悬赏分:0 | 提问时间:2006-11-14 16:03 | 提问者:繌苽Deじ☆ve
推荐答案
直接存储存取方式(DMA)是在存储器与输入输出设备间直接传送数据,是一种完全由硬件完成输入输出操作的方式。
DMA(Direct Memory Access),即直接存储器存取,是一种快速传送数据的机制。数据传递可以从适配卡到内存,从内存到适配卡或从一段内存到另一段内存。
利用它进行数据传送时不需要CPU的参与。每台电脑主机板上都有DMA控制器,通常计算机对其编程,并用一个适配器上的ROM(如软盘驱动控制器上的ROM)来储存程序,这些程序控制DMA传送数据。一旦控制器初始化完成,数据开始传送,DMA就可以脱离CPU,独立完成数据传送。
在DMA传送开始的短暂时间内,基本上有两个处理器为它工作,一个执行程序代码,一个传送数据。利用DMA传送数据的另一个好处是,数据直接在源地址和目的地址之间传送,不需要中间媒介。如果通过CPU把一个字节从适配卡传送至内存,需要两步操作。首先,CPU把这个字节从适配卡读到内部寄存器中,然后再从寄存器传送到内存的适当地址。DMA控制器将这些操作简化为一步,它操作总线上的控制信号,使写字节一次完成。这样大大提高了计算机运行速度和工作效率。

CPU与外设之间的数据传送方式

CPU与外设之间的数据传送方式

科学、政治、文化、经济、心理、哲学在微型计算机系统中,CPU与外设之间的数据传送方式主要有程序传送方式、中断传送方式和直接存储器存取(DMA)传送方式,分别介绍如下。

7.2.1 程序传送方式程序传送方式是指直接在程序控制下进行数据的输入/输出操作。

程序查询方式分为无条件传送方式和查询方式(条件传送方式)两种。

一.无条件传送方式微机系统中的一些简单的外设,如开关、继电器、数码管、发光二极管等,在它们工作时,可以认为输入设备已随时准备好向CPU提供数据,而输出设备也随时准备好接收CPU送来的数据,这样,在CPU需要同外设交换信息时,就能够用IN或OUT指令直接对这些外设进行输入/输出操作。

由于在这种方式下CPU对外设进行输入/输出操作时无需考虑外设的状态,故称之为无条件传送方式。

对于简单外设,若采用无条件传送方式,其接口电路也很简单。

如简单外设作为输入设备时,输入数据保持时间相对于CPU的处理时间要长得多,所以可直接使用三态缓冲器和数据总线相连,如图7.5(a)所示()。

当执行输入的指令时,读信号RD有效,选择信号M/IO处于低电平,因而三态缓冲器被选通,使其中早已准备好的输入数据送到数据总线上,再到达CPU。

所以要求CPU在执行输入指令时,外设的数据是准备好的,即数据已经存入三态缓冲器中。

简单外设为输出设备时,由于外设取数的速度比较慢,要求CPU送出的数据在接口电路的输出端保持一段时间,所以一般都需要锁存器,如图7.5(b)所示。

CPU执行输出指令时,M/IO和WR信号有效,于是,接口中的输出锁存器被选中,CPU输出的信息经过数据总线送入输出锁存器中,输出锁存器保持这个数据,直到外设取走。

无条件传送方式下,程序设计和接口电路都很简单,但是为了保证每一次数据传送时外设都能处于就绪状态,传送不能太频繁。

对少量的数据传送来说,无条件传送方式是最经济实用的一种传送方法。

二.查询传送方式查询传送也称为条件传送,是指在执行输入指令(IN)或输出指令(OUT)前,要先查询相应设备的状态,当输入设备处于准备好状态、输出设备处于空闲状态时,CPU才执行输入/输出指令与外设交换信息。

数据传送的控制方式

数据传送的控制方式

数据传送的控制方式程序控制的数据传送分为无条件传送、查询传送和中断传送,这类传送方式的特点是以CPU为中心,数据传送的控制来自CPU,通过预先编制好的输入或输出程序(传送指令和I/O指令)实现数据的传送。

这种传送方式的数据传送速度较低,传送路径要经过CPU内部的寄存器,同时数据的输入输出的响应也较慢。

一、无条件传送方式又称“同步传送方式”。

主要用于外设的定时是固定的并且是已知的场合,外设必须在微处理器限定的指令时间内准备就绪,并完成数据的接收或发送。

通常采用的办法是:把I/O指令插入到程序中,当程序执行到该I/O指令时,外设必定已为传送数据作好准备,于是在此指令时间内完成数据传送任务。

无条件传送是最简便的传送方式,它所需的硬件和软件都较少。

二、查询传送方式无条件传送对于那些总是准备好的外设来说是比较适用的,但是,还有许多外设并不是总是准备好的。

当CPU与这类外设进行数据交换,经常采用程序查询方式。

查询方式传送数据的过程如下:1、如果CPU要从外设接收一个数据,CPU首先查询外设的状态,看外设数据是否准备好,若没有准备好,则等待;若外设已将数据准备好,则CPU由外设读取数据。

2、接收数据后,CPU向外设发响应信号,表示数据已被接收。

外设收到响应信号之后,即可开始下一个数据的准备工作。

3、当CPU需要向外设输出一个数据,同样,CPU首先查询外设的状态,看其是否空闲。

若正忙,则等待;若外设准备就绪,处于空闲状态,则CPU向外设送出数据和输出就绪信号,外设接收数据后,向CPU发出数据已收到的状态信息,这样,就完成了一个数据的输出过程。

在条件查询方式下,CPU在与外设打交道时,必须采样READY信号。

(1)查询方式◆从硬件上来说,必须有两个端口,状态端口,数据端口。

◆从软件上来说,必须有查询循环。

(2)查询传送的缺点不能对外设进行及时的数据交换,这对许多实时性要求较高的外设来说,就可能造成丢失数据。

三、中断传送方式无条件传送和查询传送的缺点是CPU和外设只能串行工作,各外设之间也只能串行工作。

第四章 汇编语言程序设计基础

第四章  汇编语言程序设计基础

4.2.2 分支程序的设计方法 ★条件控制 ★逻辑尺控制 ★地址跳转表控制
1. 条件控制——利用比较和条件转移指令实现分支,是最常用的 程序设计方法。
பைடு நூலகம்
例如,求解函数:
练习题2. 编写程序,比较两个字符串STRING1和STRING2所 含字符是否完全相同,若相同则显示“MATCH”,若不同则显示 “NO MATCH”。 答案: datarea segment string1 db ‘asfioa’ ;定义字符串STRING1 string2 db ‘xcviyoaf’ ;定义字符串STRING2 mess1 db ‘MATCH’,’$’ ;定义显示字串“MATCH” mess2 db ‘NO MATCH’,’$’ ;定义显示字串“NO MATCH” datarea ends prognam segment main proc far assume cs:prognam,ds:datarea start: push ds ;将ds:00入栈 sub ax,ax push ax mov ax,datarea ;装填数据段及附加段 mov ds,ax mov es,ax
程序流程图
mov ch,4 rotate: mov cl, 4 rol bx,cl mov al,bl and al,0fh add al,30h ;’0’-’9’ ASCII 30H-39H cmp al,3ah jl printit add al,7h ;’A’-’F’ ASCII 41H-46H printit: mov dl,al mov ah,2 int 21h dec ch jnz rotate
例4.3 将首地址为A的N字数组按照从小到大的次序整序(气 泡算法,多重循环) A dw 32,85,16,15, 8
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

直接存储器存取—基本原理、结构与应用(上)上网时间: 2007年06月14日直接存储器存取(DMA) 控制器是一种在系统内部转移数据的独特外设,可以将其视为一种能够通过一组专用总线将内部和外部存储器与每个具有DMA能力的外设连接起来的控制器。

它之所以属于外设,是因为它是在处理器的编程控制下来执行传输的。

值得注意的是,通常只有数据流量较大(kBps或者更高)的外设才需要支持DMA能力,这些应用方面典型的例子包括视频、音频和网络接口。

一般而言,DMA控制器将包括一条地址总线、一条数据总线和控制寄存器。

高效率的DMA控制器将具有访问其所需要的任意资源的能力,而无须处理器本身的介入,它必须能产生中断。

最后,它必须能在控制器内部计算出地址。

一个处理器可以包含多个DMA控制器。

每个控制器有多个DMA通道,以及多条直接与存储器站(memory bank)和外设连接的总线,如图1所示。

在很多高性能处理器中集成了两种类型的DMA控制器。

第一类通常称为“系统DMA控制器”,可以实现对任何资源 (外设和存储器)的访问,对于这种类型的控制器来说,信号周期数是以系统时钟(SCLK)来计数的,以ADI的Blackfin处理器为例,频率最高可达133MHz。

第二类称为内部存储器DMA控制器(IMDMA),专门用于内部存储器所处位置之间的相互存取操作。

因为存取都发生在内部 (L1-L1、L1-L2,或者L2-L2),周期数的计数则以内核时钟(CCLK)为基准来进行,该时钟的速度可以超过600MHz。

每个DMA控制器有一组FIFO,起到DMA子系统和外设或存储器之间的缓冲器的作用。

对于MemDMA(Memory DMA)来说,传输的源端和目标端都有一组FIFO存在。

当资源紧张而不能完成数据传输的话,则FIFO可以提供数据的暂存区,从而提高性能。

因为你通常会在代码初始化过程中对DMA控制器进行配置,内核就只需要在数据传输完成后对中断做出响应即可。

你可以对DMA控制进行编程,让其与内核并行地移动数据,而同时让内核执行其基本的处理任务—那些应该让它专注完成的工作。

图1:系统和存储器DMA架构。

在一个优化的应用中,内核永远不用参与任何数据的移动,而仅仅对L1存储器中的数据进行读写。

于是,内核不需要等待数据的到来,因为DMA引擎会在内核准备读取数据之前将数据准备好。

图2给出了处理器和DMA控制器间的交互关系。

由处理器完成的操作步骤包括:建立传输,启用中断,生成中断时执行代码。

返回到处理器的中断输入可以用来指示“数据已经准备好,可进行处理”。

图2:DMA控制器。

数据除了往来外设之外,还需要从一个存储器空间转移到另一个空间中。

例如,视频源可以从一个视频端口直接流入L3存储器,因为工作缓冲区规模太大,无法放入到存储器中。

我们并不希望让处理器在每次需要执行计算时都从外部存储读取像素信息,因此为了提高存取的效率,可以用一个存储器到存储器的DMA (MemDMA)来将像素转移到L1或者L2存储器中。

到目前为之,我们还仅专注于数据的移动,但是DMA的传送能力并不总是用来移动数据。

我们可以用代码覆盖的办法来提高性能,将DMA的控制器配置为在执行前把代码送入L1指令存储器。

代码往往存储于较大的外部存储器中,而根据需要有选择性的送入L1。

DMA控制器的编程让我们考察一下在定义DMA活动的过程中可以有哪些选项。

我们将从最简单的模型开始,并在此基础上过渡到更为灵活的模型,这反过来增加了设置的复杂度。

对于任何类型的DMA传输,我们都需要规定数据的起始源和目标地址。

对于外设DMA的情况来说,外设的FIFO可以作为数据源或者目标端。

当外设作为源端时,某个存储器的位置(内部或外部)则成为目标端地址。

当外设作为目标端,存储的位置(内部或者外部)则成为源端地址。

在最简单的MemDMA情况中,我们需要告诉DMA控制器源端地址、目标端地址和待传送的字的个数。

采用外设DMA的情况下,我们规定数据的源端或者目标端,具体则取决于传输的方向。

每次传输的字的大小可以是8、16或者12位。

这种类型的事务代表了简单的1维(“1D”)统一“跨度” (unity stride)的传输。

作为这一传输机制的一部分,DMA控制器连续跟踪不断增加的源端和目标端地址。

采用这种传输方式时,8位的传输产生1字节的地址增量,而16位传输产生的增量为2字节,32位传输则产生4字节的增量。

上面的参数是基本的1D DMA 传输的设置参数。

我们只需要改变数据传输每次的数据大小,就可以简单地增加一维DMA的灵活性。

例如,采用非单一大小的传输方式时,我们以传输数据块的大小的倍数来作为地址增量。

也就是说,若规定32位的传输和4个采样的跨度,则每次传输结束后,地址的增量为16字节(4个32位字)。

虽然1D DMA得到了广泛的应用,但用处更大的则是2维(2D) DMA,特别是在视频应用中。

2D功能是我们所讨论的1D DMA的情形的一种直接扩展。

除了XCOUNT 和XMODIFY值之外,我们还需对对应的YCOUNT和YMODIFY值进行编程设定。

2D DMA 可以简单地理解为一个嵌套的循环,即内循环由XCOUNT和XMODIFY来规定,外循环由YCOUNT和YMODIFY规定。

一个1D DMA可以被简单的视为2D传输的“内循环”,如下形式:for y = 1 to YCOUNT /* 2D的外循环*/for x = 1 to XCOUNT /* 1D的内循环 */{/* 传输循环主体转移到这里 */}XMODIFY决定了XCOUNT每次减少时的DMA控制器的跨度值,而YMODIFY则决定了YCOUNT每次减少时对应的跨度值。

与 XCOUNT和XMODIFY一样,YOUNT可以以传输数量来定义,而YMODIFY则以字节数来定义。

值得注意的是,YMODIFY可以为负值,这会让DMA控制器回转到缓冲器的起始点。

对于外设DMA来说,传输的“存储器端”可以是1D或2D。

不过,在外设端,传输始终是1D的。

唯一的限制是在DMA每一端(源端和目标端)传输的字节总数必须相同。

例如,如果我们从3个10字节的缓冲器向外设馈入数据。

例如,如果我们从3个10字节的缓冲器向外设发送数据,外设必须被设定为传送30字节,具体方式则可以是任何可能的、所支持的传输宽度和传输计数值的组合。

MemDMA提供的灵活度则要更高一些。

例如,如果我们可以建立一个1D-2D传输、一个1D-2D传输、1个2D-1D传输,且可自然而然建立一个2D-2D传输,唯一的限制条件是,在DMA传输模块的两端所传送的字节总数必须相等。

DMA的设置目前有两类主要的DMA传输结构:寄存器模式和描述符模式。

无论属于哪一类DMA,表1所描述的几类信息都会在DMA控制器中出现。

当 DMA以寄存器模式工作时,DMA控制器只是简单地利用寄存器中所存储的参数值。

在描述符模式中,DMA控制器在存储器中查找自己的配置参数。

表1:DMA寄存器基于寄存器的DMA在基于寄存器的DMA内部,处理器直接对DMA控制寄存器进行编程,来启动传输。

基于寄存器的DMA提供了最佳的DMA控制器性能,因为寄存器并不需要不断地从存储器中的描述符上载入数据,而内核也不需要保持描述符。

基于寄存器的DMA由两种子模式组成:自动缓冲(Autobuffer)模式和停止模式。

在自动缓冲DMA中,当一个传输块传输完毕,控制寄存器就自动重新载入其最初的设定值,同一个DMA进程重新启动,开销为零。

正如我们在图3中所看到的那样,如果将一个自动缓冲DMA设定为从外设传输一定数量的字到L1数据存储器的缓冲器上,则DMA控制器将会在最后一个字传输完成的时刻就迅速重新载入初始的参数。

这构成了一个“循环缓冲器”,因为当一个量值被写入到缓冲器的最后一个位置上时,下一个值将被写入到缓冲器的第一个位置上。

图3:用DMA实现循环缓冲器。

自动缓冲DMA特别适合于对性能敏感的、存在持续数据流的应用。

DMA控制器可以在独立于处理器其他活动的情况下读入数据流,然后在每次传输结束时,向内核发出中断。

虽然有可能以恰当的方式阻止自动缓冲模式,但如果DMA进程需要定期启动和停止时,采用这种工作方式就没有什么意义。

停止模式的工作方式与自动缓冲DMA类似,区别在于各寄存器在DMA结束后不会重新载入,因此整个DMA传输只发生一次。

停止模式对于基于某种事件的一次性传输来说十分有用。

例如,非定期地将数据块从一个位置转移到另一个位置。

当你需要对事件进行同步时,这种模式也非常有用。

例如,如果一个任务必须在下一次传输前完成的话,则停止模式可以确保各事件发生的先后顺序。

此外,停止模式对于缓冲器的初始化来说非常有用。

描述符模型基于描述符(descriptor)的DMA要求在存储器中存入一组参数,以启动DMA的系列操作。

该描述符所包含的参数与那些通常通过编程写入DMA控制寄存器组的所有参数相同。

不过,描述符还可以容许多个DMA操作序列串在一起。

在基于描述符的DMA操作中,我们可以对一个DMA通道进行编程,在当前的操作序列完成后,自动设置并启动另一次DMA传输。

基于描述符的方式为管理系统中的DMA 传输提供了最大的灵活性。

ADI 的Blackfin处理器上有两种主要的描述符方式—描述符阵列和描述符列表,这两种操作方式所要实现的目标是在灵活性和性能之间实现一种折中平衡。

在描述符阵列模式下,描述符驻留在连续的存储器位置上。

DMA控制器依然从存储器取用描述符,但是因为下一个描述符紧跟着当前的描述符,说明到何处去寻找下一个描述符(以及它们相应的描述符取用)的两个数据字就并不必要。

因为描述符并不包含这一“下一描述符”指针项,DMA控制器希望一组描述符在存储器相互挨在一起,如同阵列一般。

当各描述符在存储器中的分布位置并非“背对背”时,可以使用一个描述符列表。

实际上这里涉及多种子模式,从而再一次实现了性能和灵活性之间的折中平衡。

在“小描述符”模型中,描述符包括了一个单16位的域,用来给出“下一描述符指针”域的低位部分;高位部分则通过寄存器来独立编程设定,并且不发生改变。

当然,这将描述符限制在存储器中一个特定的64K(=216)页面上。

当描述符的位置需要跨越这一边界时,也可以提供一个“大”模型,它可以为“下一描述符指针”项提供32位的位置。

无论采用何种描述符模式,描述符的量值数越多,则描述符取用的次数就越多。

这也就是为何Blackfin处理器定义了一个“柔性描述符方式”的原因,该模式可以修改描述符的长度,使之仅仅包括特定传输所需要的数据。

例如,如果不需要2D DMA,YMODIFY和 YCOUNT 寄存器就不需要成为描述符数据块的一部分。

描述符管理管理描述符列表的最佳方法是什么?其实,这个问题的答案需要根据应用来定,但要明白存在何种替代方法很重要。

相关文档
最新文档