| 网站首页 | 电脑论坛 | 计算机原理 | 电脑主板 | cpu中央处理器 | 内存 | 硬盘 | 软驱 | 光驱 | usb设备 | 显卡 | 
 | 显示器 | 声卡 | 电脑音箱 | 耳机耳麦 | 网卡 | 局域网的组建 | 鼠标 | 键盘 | 电脑电源 | 电脑机箱 | 电脑组装与维修 | 
 | 电脑摄像头 | 网友留言 | 网站地图 | 网站地图2 | 
您现在的位置: 电脑硬件知识网 >> 计算机原理 >> 输入输出接口 >> 文章正文  
[组图]8237A的寄存器组           ★★★
8237A的寄存器组
作者:陆志才 文章引用自“微型计算机组成原理”(高教出版社,南开大学2003)点击数: 更新时间:2007-2-25 21:30:38
 

8237A的寄存器组
    8237A内部寄存器可以分成两类。一类是通道寄存器,即每个通道都有的现行地址寄存器、现行字节数寄存器、基地址寄存器和基字节数寄存器,这些都是16位寄存器。另一类是控制和状态寄存器,包括模式寄存器(6位寄存器,4个通道各有一个)、命令寄存器(8位)、状态寄存器(8位)、屏蔽寄存器(4位)、临时寄存器(8位)。这两类寄存器在寻址时由最低4位地址A3~A0区分。
    1)现行地址寄存器
    该寄存器用来寄存DMA传送的当前存储器地址,每次传送后自动加l或减1。CPU可读或写该寄存器。
  2)现行字节数寄存器
  该寄存器保存还要传送的字节数,每次传送后减1。当其值从0减到FFFFH时,TC将产生。该寄存器的值可由CPU写入或读出。
  3)基地址寄存器和基字节数寄存器
  这两个“基”寄存器存放着相对应的“现行”寄存器的初始值。在初始化时,分别与相对应的“现行”寄存器被CPU写入相同的值,但“基”寄存器的值一直保持不变,且不能读出。
如果编程为自动初始化,则在每次产生TC后,“基”寄存器的值被用来作为相对应的“现行”寄存器的初始值。
  需要指出,由于字节数寄存器从0减到FFFFH时,DMA传送才终结。所以,实际传送的字节数要比写入字节数寄存器的值多1。因此,如果需要传送N个字节,则编程写入字节数寄存器的值应为N-1。
  4)模式寄存器
  它寄存相应通道的模式控制字。模式控制字的格式参看图6.35,其中用最低2位选择写入哪个通道的模式寄存器。D4位用来允许或禁止自动初始化。所谓自动初始化,是指每当EOP(上划线)产生时(不论是内部的TC引起还是由外部输入),都用基地址寄存器和基字节数寄存器的内容,使相应的“现行”寄存器恢复为初始值。
这样就为下一次DMA传送做好了准备。



  5)命令寄存器
  该寄存器用来寄存CPU写入控制8237A操作的命令字,复位时被清0。命令字的格式如图6.36所示。


 
    D4位用来规定优先权模式。8237A有两种优先权管理模式:固定优先权模式和循环优先权模式。当采用固定优先权模式时,4个通道的优先权是固定的,即通道0优先权最高,通道1次之,通道2再次之,通道3最低。当采用循环优先权模式时,本次循环中最近一次服务的通道在下次循环中优先权变成最低,而原本优先级仅次于它的通道将具有最高优先权,其他通道也依次改变优先权。循环优先权模式可有效避免一个通道独占系统总线而其他通道的DMA请求得不到及时响应的情况。需要指出,不论采用哪一种优先权模式,经判优某个通道获得服务后,其他通道无论优先权高低,均被禁止,直到已服务的通道结束传送为止。
    DO位用来禁止或允许存储器到存储器的传送方式。若选择该方式,则用通道0的现行地址寄存器存放源地址。此时,若D1位也置位,则在整个存储器到存储器的传送过程中始终保持同一源地址,以便实现将一个目的存储区域的所有存储单元都置成同一个值。当D0位为0时,D1位不起作用。
    在不影响系统性能的情况下,为获得较高的传输效率,8237A能将每次传输时间从正常时序的3个时钟周期变为压缩时序的2个时钟周期。在正常时序时,命令字的D5选择滞后写或扩展写。其不同之处在于写信号是滞后到S4状态有效(滞后写)还是扩展到S3状态有效(扩展写)。
  6)请求寄存器   
该寄存器为4位,寄存DMA请求DREQ,每位对应一个通道。DREQ请求可由硬件DREQ线引入,也可由软件发出DREQ请求(仅限于数据块传送时可用)。用软件发DREQ请求需要使用请求字,请求字的格式如图6.37所示。其中D1、D0两位决定写入的通道,D2位决定是请求(置位)还是复位。
    注意,对于存储器到存储器的传送,必须用软件请求启动通道0。
  7)屏蔽寄存器
  该寄存器用来对某个。DMA通道设置为屏蔽或允许。8237A在复位后,4个通道全被置于屏蔽状态。所以,在编程时必须根据需要复位屏蔽位,以允许相应的通道产生DMA请求。还有一点需注意,当一个通道进行DMA传送后,产生面EOP(上划线)信号,如不是工作在自动初始化方式,则这一通道的屏蔽位被置位,必须再次编程为允许,才能进行下一次DMA传送。
    对屏蔽寄存器的写人有两种格式:单通道屏蔽字和主屏蔽字,如图6.38所示。单通道屏蔽字一次仅能设置一个通道,而主屏蔽字可同时对4个通道进行设置。


 
  8)状态寄存器
  状态寄存器是为CPU能了解8237A的内部状态而设置。它的高

[1] [2] 下一页

本篇文章属于主题:DMA控制器8237A,了解更多请点击:DMA控制器8237A
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    专 题 栏 目

    电脑硬件知识站导读

    最 新 热 门

    最 新 推 荐
    相 关 文 章
    8237A的应用
    对8237A的编程
    8237A的软件命令
    8237A的传送类型
    8237A的工作模式
    8237A的引脚
    8237A的工作周期
    DMA控制器8237A
    最 新 文章
    文章 下载 图片
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
            我与电脑共舞