您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第23讲_直接内存存取DMA
jlsheng@qtech.edu.cn1实验课题5组合逻辑控制单元设计实验内容:按照题目要求用硬布线(组合逻辑)控制法设计一个简单模型机的控制单元CU(微操作信号产生电路),决定外部的端口(名称、有效电平)和内部各元件的连接,画出系统框图和逻辑图,设计仿真数据,用VHDL编程和仿真。一、主要元件设计1.指令译码器功能要求:3-8译码器。(2学时)jlsheng@qtech.edu.cn2实验课题5组合逻辑控制单元设计实验内容:一、主要元件设计2.控制单元功能要求:假设该模型机有8条不同类型的指令。包括:算术运算、逻辑运算、移位、数据传送、访存操作、转移等。根据每条指令的功能和时序,分析其执行过程中需要在各个阶段产生的全部微操作,导出产生这些微操作控制信号的逻辑。提示:需要决定指令周期包括哪几个机器周期,每个机器周期包括几拍,每拍包括几个时钟,以及时钟周期是多少nS。有些操作可能还需要规定是在时钟的上升沿或是在时钟的下降沿进行。jlsheng@qtech.edu.cn3实验课题5组合逻辑控制单元设计二、顶层设计用层次结构设计的方法设计一个控制单元CU(微操作控制信号产生电路)。包括指令译码器和控制单元。功能要求:能够正确产生8条不同指令在执行过程中(每个机器周期、每拍)发出的全部微操作。三、仿真设计仿真波形数据,要考虑到所有可能的情况。在实验报告中必须清楚说明仿真波形数据是怎样设计的。提示:仿真输入波形包括三级时序信号。计算机组成原理PrinciplesofComputerOrganization广义双语教学课程青岛理工大学校级精品课程@qtech.edu.cn5第10章输入输出系统Chapter10Input/outputSystemManyI/Otaskscanbefairlycomplexandrequirelogictobeappliedtothedatatoconvertformatsandothersimilarduties.(3)InthesesituationsthesimplestsolutionistoasktheCPUtohandlethelogic,butduetothefactthattheI/Odevicesareveryslow,theCPUwouldendupwastingahugeamountoftime(incomputerperspective)sittingidlewaitingforthedatafromthedevice..jlsheng@qtech.edu.cn6§10.3DMA输入输出方式DMA是I/O设备与主存储器之间由硬件组成的直接数据通路,用于磁盘等高速I/O设备与主存之间的成组数据传送。DMA数据传送是在DMA控制器的控制下进行的。DirectMemoryAccessjlsheng@qtech.edu.cn7§10.3.1DMA的工作方式DMA传送需要使用系统总线,因而有4种可能的工作方式。1.CPU暂停方式在DMA进行一个数据块的传送期间,CPU放弃总线,不访问主存。DMA完成一个数据块的传送后,把总线控制权还给CPU。2.交替方式把每个总线周期分成两个时间片,CPU和DMA交替分时使用总线。DMACPU总线周期jlsheng@qtech.edu.cn83.CPU周期窃取方式(Cycle-Stealing)DMA每传送一个字节/字,占用(窃取)CPU的一个总线周期。在这个周期内,如果CPU(进行内部操作)正好不使用总线,则对CPU的工作无影响。如果CPU也需要使用总线,则必须等待DMA传送完成后(一个总线周期的时间)才能使用总线。jlsheng@qtech.edu.cn94.仲裁方式当系统中有多个主控设备(处理机,通道,IOP,DMAC),每个主控设备要使用系统总线都必须申请。总线控制器根据申请总线的设备的优先级做出仲裁,把总线在该周期的控制权交给优先级最高的设备。取得总线控制权的设备可以在该周期内使用总线访问存储器或进行输入/输出,然后交回总线控制权。DMA的优先级高于CPU和其他设备。实际在计算机系统中使用的是周期窃取方式和仲裁方式。jlsheng@qtech.edu.cn10§10.3.2DMA控制器组成DMA接口(DMA控制器)包括多个设备寄存器、中断控制和DMA控制逻辑等。1.设备寄存器①主存地址寄存器MAR初始值为主存数据缓冲区的首地址,在传输前由程序写入。在DMA传送期间,每交换一个字,由硬件逻辑将MAR自动加1。②外设地址寄存器ADR存放I/O设备的设备码,或者表示该设备信息存储区的寻址信息。例如;磁盘的驱动器号、磁头号、柱面号等。jlsheng@qtech.edu.cn11④控制与状态寄存器CSR存放控制字和状态字。控制字是在传输前由程序写入的。⑤数据缓冲寄存器DBR当主存与I/O设备的数据宽度不一致时,用于暂存I/O设备与主存传送的数据。若DMA与主存之间是按字传送的,而DMA与I/O设备之间是按字节或位传送的时候,DMA还要做数据的装配和分拆。③字数计数器WC在传输前由程序写入传送数据的总字数。每传送一个字自动减1。当其内容为0时表示传输结束。DMA控制器组成jlsheng@qtech.edu.cn122.中断控制逻辑每当一个数据块传输完毕,DMA通过中断请求CPU进行后处理和下次传输前的预处理。3.DMA控制逻辑一般包括设备码选择电路,DMA优先排队电路,产生DMA请求的线路等。在DMA取得总线控制权后,控制主存与I/O设备之间的数据传送。DMA与主机和DMA与I/O设备的接口,包括数据线、地址线、控制信号,以及有关收发和驱动线路。DMA控制器组成jlsheng@qtech.edu.cn13§10.3.3DMA的数据传送过程当I/O设备准备好后,向DMA控制器发出传送请求。DMA控制器用窃取处理机一个总线周期的方法完成I/O设备与主存储器之间的直接数据传送。当所要求的数据块传送完毕,DMA控制器向CPU发出中断请求。CPU做一些传送后处理工作。DMA数据传送与CPU之间是并行工作的。DMA的数据传送过程可以分为三个阶段:①传送前预处理,②DMA数据传送,③传送后处理。其中,第①和第③阶段是CPU执行程序完成的,第②阶段是在DMA控制器硬件逻辑控制下完成的。jlsheng@qtech.edu.cn141.传送前预处理CPU执行一段程序,测试设备的状态,启动将要进行I/O的外部设备。将数据在主存储器存放的首地址写入主存地址寄存器,然后,CPU继续执行其他程序。CPU对DMA控制器进行初始化:要传送的数据字数写入数据字数寄存器,I/O设备的地址写入设备地址寄存器,传送方式(输入/输出)写入控制与状态寄存器。DACK选通状态INTRDRQ系统总线I/O接口数据端口控制/状态端口数据寄存器控制逻辑DMAC主存地址寄存器字计数器控制/状态寄存器外设地址寄存器CPUMMHRQHLDAI/O设备DRQ:DMA请求HRQ:总线请求DACK:DMA响应HLDA:总线响应2.DMA数据传送jlsheng@qtech.edu.cn16DMA数据输入的过程I/O设备启动后,把准备好的数据送到I/O接口的数据缓冲寄存器,向DMAC请求DMA传送。DMAC每传送一个字向CPU发出总线请求。CPU必须在当前机器周期结束时交出系统总线,并向DMAC发出总线允许信号。DMAC取得总线控制权后,将主存地址寄存器中的内容送上地址总线,发I/O读命令和存储器写命令。I/O接口将数据缓冲寄存器中的内容送上数据总线,同时将数据写入主存。DMAC将字数寄存器减1,主存地址寄存器加1。如果字数寄存器减1后不为0,准备下一次输入。如果字数寄存器=0,表示一组数据传送结束,向CPU发中断请求。系统总线INTRDACKDRQCPUMMHRQHLDAI/O设备I/O接口数据端口控制/状态端口数据寄存器控制逻辑DMAC主存地址寄存器字计数器控制/状态寄存器外设地址寄存器数据缓冲寄存器如果I/O设备的数据宽度小于存储器的字长,就要由DMAC完成数据的拼接。I/O设备把准备好的每个字节的数据送到I/O接口的数据缓冲寄存器,向DMAC请求DMA传送。DMAC将数据读入。经过若干次输入,拼成一个完整的字后,DMAC向CPU发出总线请求,传送一个字。jlsheng@qtech.edu.cn18DMA数据输出的过程I/O设备启动并做好数据接受的准备后,通过I/O接口向DMAC请求DMA传送。DMAC向CPU发出总线请求。CPU必须在当前机器周期结束时交出系统总线,并向DMAC发出总线允许信号。DMAC取得总线控制权后,将主存地址寄存器中的内容送上地址总线,发存储器读命令和I/O写命令。将从主存读出的数据写入I/O接口的数据缓冲寄存器中,再送给输出设备。DMAC将字数寄存器减1,主存地址寄存器加1。如果字数寄存器减1后不为0,准备下一次输出。如果字数寄存器=0,表示一组数据传送结束,向CPU发中断请求。选通状态INTRDACKDRQ系统总线I/O接口数据端口控制/状态端口数据寄存器控制逻辑DMAC主存地址寄存器字计数器控制/状态寄存器外设地址寄存器CPUMMHRQHLDAI/O设备DRQ:DMA请求HRQ:总线请求DACK:DMA响应HLDA:总线响应DMA数据输出的过程系统总线INTRDACKDRQCPUMMHRQHLDAI/O设备I/O接口数据端口控制/状态端口数据寄存器控制逻辑DMAC主存地址寄存器字计数器控制/状态寄存器外设地址寄存器数据缓冲寄存器如果I/O设备的数据宽度小于存储器的字长,就要由DMAC完成数据的分拆。DMAC把从主存读出的数据字分拆成一个个字节。I/O设备每发一次DMAC请求,就向I/O设备输出一个字节,直到一个数据字输出完毕,再向CPU发出总线请求。jlsheng@qtech.edu.cn213.后处理阶段CPU响应DMA的中断请求后,如果需要继续进行数据传送,就再次对DMAC进行初始化。如果不需要继续进行数据传送,则停止外设。DMA数据传送,第一和第三阶段是CPU执行程序完成的,第二阶段是在DMA控制器硬件逻辑控制下完成的。jlsheng@qtech.edu.cn22Homework10-8,10,11,12Veryfewcomputerlanguagesincludebuilt-insupportforfixedpointvalues,becauseformostapplications,binaryordecimalfloating-pointrepresentationsareusuallysimplertouseandaccurateenough.Floating-pointrepresentationsareeasiertousethanfixed-pointrepresentations,becausetheycanhandleawiderdynamicrangeanddonotrequireprogrammerstospecifythenumberofdigitsaftertheradixpoint.jlsheng@qtech.edu.cn23测验4请写好自己的姓名、学号、班级一、(20分)设CPU有16条地址线,8条数据线,访存控制信号,读/写信号。现有存储芯片ROM(2K×8,4K×4),RAM(4K×8,1K×4,16K×1)。试从上述芯片中选用合适的芯片,画出主存和CPU的连接图,要求主存的地址空间分配如下:最小4K空间为系统程序区,4096-16383为用户程序区。请不要抄题,只写题号MREQWR/二、(共25分)设主存容量为256K字,Cache容量为2K字,块长为4。(1)设计Cache地址格式,Cache中可以装入多少块数据?(2)在直接映射方式下,设计主存地址格式。(3)在四路组相联映射方式下,设
本文标题:第23讲_直接内存存取DMA
链接地址:https://www.777doc.com/doc-3429687 .html