书签 分享 收藏 举报 版权申诉 / 28

在少引线数总线上的直接存储器存取DMA事务处理.pdf

  • 上传人:t****
  • 文档编号:1020270
  • 上传时间:2018-03-26
  • 格式:PDF
  • 页数:28
  • 大小:1.01MB
  • 摘要
    申请专利号:

    CN98811473.9

    申请日:

    1998.06.26

    公开号:

    CN1301361A

    公开日:

    2001.06.27

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||实质审查的生效申请日:1998.6.26|||公开

    IPC分类号:

    G06F3/00

    主分类号:

    G06F3/00

    申请人:

    英特尔公司;

    发明人:

    A·H·加夫肯; J·A·本尼特; D·I·波伊斯纳

    地址:

    美国加利福尼亚州

    优先权:

    1997.09.24 US 08/936,318

    专利代理机构:

    中国专利代理(香港)有限公司

    代理人:

    吴立明;王忠忠

    PDF完整版下载: PDF下载
    内容摘要

    包括连接至存储器设备(108)和外部控制器设备(120)的主机(102)的系统。该主机通过有携带时间多元地址,数据和控制信息的多条通用信号线的总线连接至外部控制器设备(120)。该外部控制器设备(108)通过主机(102)和总线(124)执行与存储器设备(108)的直接存储器存取(DMA)事务处理。

    权利要求书

    1: 一种系统,包含:  一个总线,有多条通用信号线,载有时分多路复用地址,数据和 控制信息; 一个主机,连接至总线; 一个存储器设备,连接至主机;以及 一个外部控制器设备,连接至总线,通过主机和总线与存储器设 备进行直接存储器存取(DMA)事务处理。
    2: 权利要求1中的系统,还包含连接至主机和外部控制器设备的第 一控制线,其中外部控制器设备通过第一控制线传递直接存储器存 取(DMA)信道数。
    3: 权利要求2中的系统,2的系统,其中总线带有第二控制线,它载 有从主机至外部控制器设备的控制信息,而且其中主机通过总线和 控制线将第一控制信息写入外部控制器设备以表示DMA事务处理的 开始。
    4: 权利要求3中的系统,其中主机通过总线将第二控制信息写入外 部控制器设备以表示DMA事务处理是读或写事务处理。
    5: 权利要求4中的系统,其中主机通过总线将第三控制信息写入外 部控制器设备以表示DMA事务处理的DMA信道数。
    6: 权利要求5中的系统,其中主机通过总线将第四控制信息写入外 部控制器设备以表示DMA事务处理中的字节数。
    7: 权利要求6中的系统,其中主机将第五控制信息写入外部控制器 设备以表示DMA事务处理中的数据的最后字节。
    8: 权利要求5中的系统,其中主机提供第五控制信息给总线将总线 控制交给外部控制器设备。
    9: 权利要求8中的系统,其中外部控制器设备在总线上驱动同步控 制信息。
    10: 权利要求9中的系统,其中同步控制信息表示在DMA写事务处理 中,数据没有准备好从外部控制器设备读取。
    11: 权利要求9中的系统,其中同步控制信息表示在DMA读事务处理 中,数据已被外部控制器设备接收。
    12: 权利要求9中的系统,其中同步控制信息表示在DMA事务处理中 有一个错误。
    13: 权利要求9中的系统,其中同步控制信息表示外部控制器设备请 求DMA事务处理中数据的一个附加传送。
    14: 权利要求1中的系统,其中主机包含处理器。
    15: 权利要求1中的系统,其中主机包含芯片集。
    16: 一种从主机通过控制线请求直接存储器存取(DMA)事务处理的 方法,该方法包括步骤: 在控制线上声明第一信号表示请求开始; 在控制线上传送DMA信道数。
    17: 权利要求16中的方法,还包含在控制线上声明第二信号表示请 求为有效请求的步骤。
    18: 权利要求17中的方法,还包含在控制线上传送第三控制信号表 示请求结束的步骤。
    19: 权利要求16中的方法,还包含在控制线上给DMA信道数传送第 二控制信号来中止请求的步骤。
    20: 权利要求16中的方法,其中在请求DMA事务处理执行之前,为 另一个请求重复声明和传送步骤。
    21: 一种通过主机从外部控制器设备向存储器设备执行直接存储器存 取(DMA)写事务处理的方法,该方法包含步骤: 从主机在DMA信道上通过第一控制线请求DMA写事务处理;   通过在有多条通用信号线的总线上传送第一控制信息,许可DMA 写事务处理给外部控制器设备; 通过总线从外部控制器设备传送数据给主机;以及 将数据写入存储器设备。
    22: 权利要求21中的方法,还声明在第二控制线上DMA写事务处理 的开始的指示。
    23: 权利要求21中的方法,还包含传送第二条控制信息以表示通过 总线从主机至外部控制器设备的DMA写事务处理中的字节数的步骤。
    24: 权利要求21中的方法,还包含传送在DMA写事务处理中的数据 的最后字节的指示的步骤。
    25: 权利要求21中的方法,还包含提供同步控制信息给总线直到外 部控制器设备准备输出数据的步骤。
    26: 权利要求21中的方法,还包含通过总线从外部控制器设备向主 机传送错误消息的步骤。
    27: 一种通过主机从存储器设备向外部控制器设备执行直接存储器存 取(DMA)读事务处理的方法,该方法包含步骤: 从主机在DMA信道上通过第一控制线请求DMA读事务处理; 通过在有多条通用信号线的总线上传送第一控制信息,许可DMA 读事务处理给外部控制器设备; 通过总线从存储器设备传送数据给主机;以及 将数据写入外部控制器设备。
    28: 权利要求21中的方法,还声明在第二控制线上DMA读事务处理 的开始的指示。
    29: 权利要求21中的方法,还包含传送第二条控制信息以表示通过 总线从主机至外部控制器设备的DMA读事务处理中的字节数的步骤。
    30: 权利要求21中的方法,还包含传送在DMA读事务处理中的数据 的最后字节的指示的步骤。
    31: 权利要求21中的方法,还包含通过总线从外部控制器设备向主 机传送错误消息的步骤。
    32: 一种系统包括: 一个主机; 一个外设;以及 一个第一控制线,连接至主机和外设,其中外设通过第一控制线 请求直接存储器存取(DMA)信道数。
    33: 权利要求32中的系统,还包含有多条通用信号线的总线,其中 主机通过总线给外设通信DMA事务处理的许可。
    34: 一种系统包括: 一个主机; 一个外设;以及 一个总线,有多条连接至主机和外设的通用信号线,其中主机通 过总线向外设通信DMA事务处理的许可。

    说明书


    在少引线数总线上的 直接存储器存取(DMA)事务处理

        本发明涉及计算机系统。更确切地说,本发明涉及计算机系统中的少引线数总线上的不同类型设备之间的通信。

        传统代基的计算机系统包括不同外设和存储器设备,它们通过工业标准体系(ISA)总线或扩展总线(X-总线)与系统芯片集或处理器通信。这种系统芯片集或处理器必须包括大量针(例如,大约50-70个针)和相关电路,来支持ISA总线或X-总线信号,这些信号用来接口芯片集或处理器与代基外设,包括输入/输出(I/O)或I/O控制器设备,例如并口控制器,串口控制器,超级I/O控制器,软盘控制器,键盘控制器以及存储器设备,如非易失性存储器设备,它保存例如基本输入输出设备(BIOS)信息。

        这些需要支持ISA总线或X-总线标准的大量的针一般增加整体系统开销。例如,芯片集或处理器需要较大的封包。较大的针总数封包一般比较小的针总数封包开销多,而且一般较易影响生产质量和在封包装配和系统集成处理过程中的可靠性问题。而且,较大的针总数封包需要较大的印刷电路板(PCB)的表面面积,计算机系统可以实现在PCB上。因此,有必要将计算机系统中的ISA总线或X-总线用这样一种总线来代替,这种总线能支持同样类型的外设,但使用相对较少数量的针或信号线。

        ISA总线或X-总线标准也限制了存储器的总量或I/O地址空间为至多24个字节或大约16M字节的存储器或I/O地址空间。由于有些处理器和芯片集能支持32位或64位的地址空间,取别名以前需要将处理器地址空间翻译为ISA地址空间。取别名能产生大量的一般开销,以致于可能对计算机系统的表现有负面影响。因此,有必要将ISA总线或X-总线标准用这样一种总线代替,这种总线可以支持一种地址空间,它与处理器和芯片集地址空间兼容,且潜在地是无限的。

        ISA总线或X-总线标准还有一个缺点:是异步的。一般这增加元件的设计复杂性,它需要产生和响应ISA总线或X-总线信号。因此,有必要将ISA总线或X-总线标准用这样一种总线代替,这种总线可以支持元件间地同步通信,从而普遍地减少总线接口电路的复杂性。

        描述了一个系统,它包括连接到存储器设备和外部控制器设备的主机。该主机通过一种总线连接到外部控制器设备,该总线有多个携带时分多路复用地址,数据和控制信息的通用信号线。该外部控制器设备通过主机和总线与存储器设备执行直接存储器存取(DMA)事务处理。

        从附图和随后的详细描述,本发明的其它特性和优点是显而易见的。

        本发明的其它特性和优点用实例的方法加以描述且不受限于附图,在附图中同样标号表示同样部件,其中:

        图1是少引线数(LPC)总线的计算机系统的一个实施例;

        图2是主机的LPC接口的一个实施例;

        图3是实现直接存储器存取(DMA)请求的状态机器图的一个实施例;

        图4是DMA请求事务处理的一个实施例;

        图5是实现DMA读写事务处理的状态机器的一个实施例;

        图6是DMA写事务处理的一个实施例;

        图7是DMA读事务处理的一个实施例;

        图8是低功率模式操作的时序图的一个实施例;

        公开了具有少引线数(LPC)总线的计算机系统。该LPC总线可以替换计算机系统中的ISA总线或X-总线,同时提供在例如处理器或芯片集的主机,和例如I/O或I/O控制器设备的外部设备以及存储器设备之间的通信机制。对于一个实施例,该LPC总线可以包括通用信号线,它们载有基本上全部时分多路复用地址,数据和控制信息,来实现在主机和外部设备之间的存储器,I/O,直接存储器存取(DMA)和主总线事务处理。

        LPC总线的一个显著优点是,它可需要显著少量的信号线(例如大约6-8条信号线)来执行由符合ISA总线和X-总线标准的大约50-70条信号线来执行的全部功能。由于LPC总线的信号线的数目相对于ISA总线和X-总线标准可以大大地减少,计算机系统的芯片集或处理器所需要的支持LPC总线的针的数目可以显著地减少。同样地,包含在每个外部设备中LPC接口可以通过LPC总线使用同等少量的针与芯片集或处理器接口。这可以导致较低的元件生产商的封包成本和较低的计算机系统生产商的系统费用。而且,这可以导致更高的质量和更可靠的封包和系统集成。

        LPC总线的另一个显著优点是,存储器和/或I/O地址空间并不限于通信总线中的地址线的特定数目;而是,LPC总线可以连续地携带与用来定址任何地址空间同样多的地址信号。因此,可以避免传统的存储器或I/O地址空间的取别名。

        LPC总线的另一个显著优点是,可用来将芯片集或处理器与外设接口的LPC接口逻辑和/或软件,可以是与执行ISA总线或X-总线标准的现存的计算机系统兼容的软件。也就是,操作系统软件或应用程序运行在LPC总线系统中不需特殊驱动程序或配置,但在ISA总线或X-总线系统中却相反。

        LPC总线的另一个显著优点是,它可以是一个同步总线,激活在主机和外设中的LPC接口电路,一般比异步总线接口设计需要较低复杂程度的电路。

        图1是计算机系统100的一个实施例,它包括通过一条LPC总线124连接到外设和存储器设备108的主机102,这些外设包括I/O或I/O控制器设备104和106。主机102可以是芯片集,处理器或者包含LPC总线124的智能接口的任何其它控制逻辑。主机102也可包括与可选ISA总线126和可选PCI或主机总线128接口的必须逻辑。主机102通过总线130与存储器110通信地址,数据和控制信息,总线130可以是本地总线或其它存储器总线。存储器130可以是系统100的主/初始存储器,如动态随机存取存储器(DRAM),静态随机存取存储器(SRAM),或任何其它类型的易失或非易失性存储器,它可保存例如操作系统软件,应用程序码或程序数据。

        I/O设备104和106可以是I/O控制设备,它们在I/O地址空间是可定址的,并控制存取外部部件,如软盘驱动器,键盘等等。I/O设备104和106可以是例如,软盘控制器,串口控制器,并口控制器,红外线控制器,键盘控制器,音频控制设备或视频控制设备。I/O设备104可以是包括I/O控制器120和122的超级I/O设备,每个I/O控制器120和122可以是例如,软盘控制器,串口控制器,并口控制器,红外线控制器,键盘控制器,音频控制设备或视频控制设备。

        存储器设备108是在存储器空间中可定址的外设。例如,存储器设备108可包括任何类型的易失或非易失性存储器,如DRAM,SRAM,闪存,导电式可编程只读存储器(EPROM),导电式可擦写可编程只读存储器(EEPROM),磁存储媒体或光存储媒体。存储器设备108可以保存主机102或I/O设备104和106的系统启动代码,管理程序代码,操作系统数据,应用程序码,程序数据,或者作为便签本函数。系统启动码可以包括在系统100中来配置或启动部件的必要软件,也可以包括BIOS信息。

        每个主机102和外设104,106和108分别包括LPC接口118,112,114和116,用来在LPC总线124上生成LPC信号和响应LPC信号。这些LPC接口可以通过LPC总线124激活系统100,完成存储器,I/O,DMA和主总线事务处理。每个LPC接口或输入或输出针来接收或传送信号LAD[3:0],LCLK和LFRAME#。注意某信号名后的磅符“#”表示该信号是一活动低信号。在另一实施例中,活动低信号可改变为活动高信号。

        LAD[3:0]信号线为通用信号线,它们通过LPC总线124且在主机102和外设104,106和108之间携带时分多路复用地址,数据和控制信息。LAD[3:0]在任何给定时间是否在携带地址,数据和控制信息由系统100的操作上下文决定,这将在以下详细描述。当LAD[3:0]表示为四位总线时,它可包括任何数目的信号线,来实现携带地址,数据和控制信息所要到达的目标。四字节半位元组大小的总线有利于减少在每个LPC接口112-118所需的针的数目,也有利于减少针数和主机102和外设104,106和108的封包尺寸。

        LCLK是一时钟信号,它可由LPC接口118或主机102(未示出)中的其它电路产生。另外,LCLK可由包括水晶或其它时钟电路的系统时钟(未示出)产生。对一个实施例,LCLK可以是PCI总线128的PCI时钟。

        LFRAME#由主机102的LPC接口产生,表示LPC事务处理或循环的开始和/或结束。每个LPC接口112,114和116可以监视或取样LFRMAE#来决定何时LPC事务处理可以开始或者结束。例如,当LFRMAE#被主机102,LPC接口112,114,116和外设104,106和108分别声明(例如低),监视器LAD[3:0]决定事务处理或循环是否针对它们。有利地是,当事务处理不欲给某特定外设,该外设可进入低功率模式而且可从总线和/或门钟中解除它的状态机器。如果LFRMAE#被声明为不只一个LCLK循环,那么LPC接口112,114和116可只对在LFRAME#为活动的最后LCLK循环中位于LAD[3:0]之上的启动控制信息作出反映。表1总结了当LFRAME#被声明时,LAD[3:0]上的启动控制信息的示范性定义。

        表1

            LAD[3:0]    功能    0000    事务处理启动    0001    保留    0010    授权主总线0    0011    授权主总线1    0100    保留    1101    存储器读    1110    存储器写    1111    停止/退出事务处理

        LFRAME#也可用作退出或结束LPC事务处理。例如,外设104,106和108的LPC接口112,114和116在LPC事务处理中分别继续监视LFRAME#。如果在LPC事务处理中LFRAME#被声明,外设104,106和108将停止驱动LAD[3:0],且退出它们的LPC事务处理。在一个实施例中,主机102声明LFRAME#为某一数量的LCLK循环(比如,四个时钟循环),以确保退出指示被全部外设所认可。在一个或多个这样的LCLK循环中,主机102也可以驱动在LAD[3:0]上的预定数据。在一个实施例中,主机102在LAD[3:0]上驱动1111,同时LFRAME#被声明表示一个退出序列。在退出序列的结尾,LFRAME#可以在一个新的LPC事务处理开始前解除声明。

        在另一实施例中,LFRAME#可以在任何系统中的任何二个设备(例如,主机和外设)之间作为独立控制线(除了总线外)上的独立控制信号,来通信启动或退出事务处理,例如存储器,I/O,主总线或DMA事务处理。

        LPC总线124也可包括输入给每个LPC接口112,116和118的复位信号LRESET#,它将LPC接口复位为一已知状态(例如闲置状态)。在一个实施例中,LRESET#可以是与PCI总线128上的PCI复位信号一样的复位信号。

        I/O设备104和106也可分别有DMA请求信号LDRQ0#和LDRQ1#,在单独控制线上提供给主机102的LPC接口118。LDRQ0#和LDRQ1#可用来在执行DMA或主总线事务处理之前,传送已编码的DMA信道请求给主机102。每个I/O设备可以有一个唯一的LDRQ#信号,以便外设I/O控制器120和122共享在LDRQ0#上的一个DMA信道请求。

        LPC总线124也可包括一个低功率或备用信号LPCPD#,它可以由主机102输出到独立控制线上的每个外设104-108。如图8所示,主机102可以在时刻T0异步声明LPCPD#(例如为低),使得外设104-108进入低功率模式。一旦认可由主机声明的102LPCPD#,外设104-108将中止任何LPC事务处理和三态,或驱动LRQ#信号为非活动状态。外设104-108和/或主机102也可三态或驱动LAD[3:0]为已知状态。主机102在声明LPCPD#后也可驱动LFRAME#为已知状态(高或低)。在低功率模式,LPLK在时刻T1可被关闭,且外设104-108可关闭它们的状态机器和/或其它逻辑。在一个实施例中,T0和T1之间的时差至少为30毫秒。当存在低功率模式,LCLK可在时刻T2异步重新启动,且在时刻T3可能声明LPCPD#之前运行一段时间。在一个实施例中,T2和T3之间的时差至少为100毫秒。然后LRESET#可用来从时刻T3至T4复位外设104-108。在一个实施例中,T3和T4之间的时差至少为60毫秒。

        主机102和外设104-108也可有附加的用在ISA或PCI总线中的边带输入和/或输出信号,包括干扰许可(例如,SERIRQ和SMI#),附加时钟信号(例如,CLKRUN#)和电源管理信号,这将在下面作更详尽描述。

        在一个实施例中,使用大约6-9条信号线,LPC总线124可以提供具体信号和比传统的ISA总线或X-总线零件或系统节省针总数。例如,在即插即用设备上典型地被发现的下列ISA总线或X-总线信号可能不再需要:D[7:0],SA[15:0],DREQ[3:0],DACK#[3:0],TC,IOR#,IOW#,IOCHRDY,IOCS16#和MEMCS16#。这将节省在总线,主机和/或外设上的大约30-40个信号。在一个实施例中,一个在与ISA或X-总线兼容情形下可能需要160针之多的封包的全功能的超级I/O外设控制器设备,使用如图1所示的LPC接口可能只需要88针(或更少)的封包。

        LPC接口112-118使用LPC总线,执行存储器,I/O,DMA和主总线事务处理或循环,包括存储器读,存储器写,I/O读,I/O写,DMA读,DMA写,主总线存储器读,主总线存储器写,主总线I/O读和主总线I/O写。事务处理类型可以在循环类型的某域中指定,也可在LAD[3:0]上由主机102或外设104,106和108驱动的方向控制信息中指定。循环类型和编码在LAD[3:0]上的控制信息的实例如表2所示。也可使用在同样或其它信号线上的其它编码方法。

        表2

            LAD[3:0]    事务处理    000    I/O读    001    I/O写    010    存储器读    011    存储器写    100    DMA读    101    DMA写    110-111    保留

        图2示出了LPC接口200,它是主机102的LPC接口118的一个实施例。LPC接口200产生并解释在LPC总线124上的地址,数据和控制信息来完成表2的这些事务处理。LPC接口200包括存储器和I/OLPC控制逻辑202,它们可控制在主机102和外设104-108中之一之间的存储器读,存储器写,I/O读,I/O写LPC事务处理。存储器和I/O LPC逻辑202可包括状态机器或序列器,该序列器用来在为特定LPC事务处理,和为生成在LAD[3:0],LFRAME#和/或LCLK上的地址,数据或控制信息所必须的状态之间排序。可以提供在LAD[3:0],LFRAME#和/或LCLK上的信息给总线214,由逻辑208输出给LPC总线124。

        在一个实施例中,存储器和I/O LPC控制逻辑202决定,用通过一个或多个信号216与LPC解码逻辑210通信的方法,可能需要执行LPC存储器或I/O事务处理。LPC解码逻辑210可以接收存储器或I/O读或写请求和来自主机102,ISA总线126,或PCI或主机总线128的一个相关地址。LPC解码逻辑可以对地址,信号存储器和I/OLPC控制逻辑202解码,以开始存储器或I/O LPC事务处理。LPC解码逻辑210也可选择性地位于在LPC接口200之外但在主机102之内。可以定义在外设104-108范围内的解码地址,以便与先前的基于ISA总线和X-总线的外设兼容,使得LPC事务处理软件对操作系统软件和应用软件透明。在另一实施例中,存储器和I/O LPC事务处理的控制可以分成不同的控制电路。

        LPC接口200也包括DMA LPC控制逻辑204,它控制在主机102和I/O设备104和106中一个之间的DMA读和写的LPC事务处理。DMALPC控制逻辑204可以包括状态机器和序列器,序列器用来在为DMALPC事务处理,和为生成在LAD[3:0],LFRAME#和/或LCLK上的地址,数据或控制信息,以及为接收DMA请求信号LDRQ0#和LDRQ1#所必须的状态之间排序。可以通过逻辑208和总线214,给/从LPC总线124提供在LAD[3:0],LFRAME#,LDRQ0#,LDRQ1#和/或LCLK上的信息。

        DMA LPC控制逻辑204通过可能驻留在主机102上的DMA控制器212,可以与主机102和存储器110接口。DMA LPC控制逻辑204可通过一个或多个信号218与DMA控制器212通信。在一个实施例中,DMA控制器212可包括一个或多个8237或8237-兼容的DMA控制器。DMA控制器212可代表一个DMA信道在主机102中执行仲裁,以便使用那个DMA信道的I/O设备可以通过主机102与主存储器110通信。

        LPC接口200也可包括主总线控制逻辑206,它控制在主机102和外设104-108之间的主总线存储器读和写LPC事务处理,主总线I/O读和写LPC事务处理。主总线LPC控制逻辑206可包括状态机器或序列器,序列器用来在为主总线LPC事务处理,和为生成在LAD[3:0],LFRAME#和/或LCLK上的地址,数据或控制信息,以及为接收DMA请求信号LDRQ0#和LDRQ1#所必须的状态之间排序。可以通过逻辑208和总线214,给/从LPC总线124提供在LAD[3:0],LFRAME#,LDRQ0#,LDRQ1#和/或LCLK上的信息。

        逻辑208可包含一个或多个缓冲区或用来与LPC总线214接口LPC总线124的收发器。另外,LPC接口200可不包括总线214;而是,逻辑208可直接地且单独地与存储器和I/O LPC控制逻辑202,DMA LPC控制逻辑204和主总线LPC控制逻辑206的输入和输出信号连接。在另一实施例中,逻辑208可是一选用或复用电路,它在主机102的控制下,向/从LPC总线124和控制逻辑202,204和206输出或输入合适的LPC信号。

        图3是状态图的一个实施例,在一个或多个DMA请求控制线LDRQ0#或LDRQ1#上执行一个DMA请求。图3的状态图可分别由主机102(例如,图2的DMA LPC控制逻辑204)的LPC接口118中的状态机器或控制逻辑实现,或分别由I/O设备104和106的LPC接口112和114中的状态机器或控制逻辑实现。在另一实施例中,状态图可由在有主机设备和I/O设备的任何系统中的状态机器或控制逻辑来实现,该I/O设备通过独立于通用总线的控制线请求DMA信道。

        如前所述,I/O设备104和106在主机102的LPC接口118的单独控制线上,可分别提供DMA请求信号LDRQ0#和LDRQ1#。LDRQ0#和LDRQ1#可用来传送已编码的DMA或主总线信道请求信号给主机102。每个I/O设备可有一个唯一的专用LDRQ#信号,这样外设I/O控制器120和122可共享一个DMA或主总线请求线LDRQ0#。

        图3的操作将借助于图4的示范性时序图加以描述。在状态302,LPC接口112,114和116处在LDRQ0#和LDRQ1#解除声明(例如为高)的闲置状态。举例来说,当I/O设备104声明LDRQ0#(例如为低),请求与主机102的DMA事务处理时,过程在循环T0中转换到启动状态304。主机102认识到,LDRQ0#已经被声明且准备接收I/O设备104请求的DMA信道数目。

        该过程然后转移到状态306,这里被请求的信道数目可以连续地且同步地在时钟循环T1,T2和T3中,在LDRQ0#上从I/O设备104传送至主机102。可使用三个时钟循环用二进位格式来编码多至8个不同的DMA信道。在另一个实施例中,不同数目的连续字节可被转送来编码任何数目的DMA信道。在其它的实施例中,可使用编码方案而不是二进位编码方案。信道数目也可连续地首先转送最重要位,或首先转送最不重要位,或以主机102希望的任何其它次序进行。

        信道数目被转送后,过程转到状态308,在该状态I/O设备104在时钟循环T4在LDRQ0#上可送出一个活动位(ACT)或信号至主机102。ACT位可表示当前DMA请求是否为一活动或非活动请求。例如,若ACT位是活动的(例如为高),主机102的DMA的控制器可试图对访问存储器110仲裁。主机收到一个活动位后,I/O设备104可在结束状态310驱动LDRQ0#至一个或多个时钟循环T5的预定状态。然后DMA事务处理可在循环T6或其后的任何时间发生启动。然而,如果ACT位是非活动的(例如为低),主机102可解释该DMA请求为试图放弃显示在时钟循环T1-T3中的信道数目的先前的DMA请求。即,当ACT为非活动时,I/O设备104可请求主机放弃先前的DMA请求。然后过程转回至空闲状态302。

        LPC接口112,114和118也可支持多管道连续DMA请求。例如,第一个DMA请求可为在I/O设备104的I/O控制器120的LDRQ0#上的第一个信道被处理。然后,在第一个信道上的实际DMA事务处理之前,之间或之后,可为在I/O控制器122的LDRQ0#上的第二个信道发出且处理第二个DMA请求。在一个实施例中,主机102在第一个事务处理后立即执行第二个DMA事务处理。没有管道操作,当主机102在LDRQ0#或LDRQ1#上处理第二个DMA请求时,可能在DMA事务处理之间有一些延迟。

        发出DMA请求之后,主机102可仲裁获得存储器110的访问权,以便数据文件,驱动程序信息,应用程序码之类可通过主机102在I/O设备104-106和存储器110之间通信。一旦主机102(例如,图2的DMA控制器212)完成访问存储器110,DMA写或DMA读事务处理可在LPC总线124上发生。图5是可出现在LPC总线124上的DMA读和写事务处理的状态图。图5的状态图可在每个LPC接口112,114和118中实现。例如,图5的状态图可在图2的DMA LPC控制逻辑204中实现。

        在I/O设备104的LPC接口112,主机102的LPC接口118和存储器110之间的DMA写事务处理将借助与图6的示范性时序图描述。DMA写事务处理可包括LPC接口118,它从I/O设备104读取数据,然后将该数据写到存储器110中。

        过程开始于状态502,在该状态当LFRAME#解除声明时(例如,高),LPC接口118和112是闲置的。这时,主机102获得给由I/O设备104(例如,图3的过程)先前请求的信道对存储器的访问权,当在循环T0中主机声明LFRAME#时(例如,低),DMA事务处理在状态504开始。主机102驱动启动控制信息表示在循环T0中LAD[3:0]上的一个LPC事务处理的启动。例如,启动控制信息可以为0000,如表1所示。

        过程转移到状态506,在该状态主机102驱动在循环T1中LAD[3:0]上的循环类型和方向控制信息。循环类型和方向控制信息向外设104表示LPC事务处理是DMA写事务处理。例如,循环类型和方向控制信息可以为LAD[3:1]上的101,如表2所示。

        过程转移到状态508,主机102可以在时钟循环T2中驱动信道数目控制信息到LAD[2:0]上。信道数目代表过程中主机102许可的DMA信道数目。该信道数目在LDRQ0#上由I/O设备匹配包含在先前的DMA请求中的信道数目。信道数目可用二进位格式或任何其它格式编码。二进位编码方法的实例在下面表3中示出。

        表3

            LAD[2:0]    信道数目    000    0    001    1    010    2    011    3    100    保留    101    5    110    6    111    7

        终端总数控制信息也在同一时钟循环T2中在LAD[3]上被主机102发送,信道数目被驱动到LAD[2:0]上。终端总数控制位可表示基于DMA事务处理长度的转移的最后位(描述如下)。例如,如果DMA事务处理长度为8位且设置了TC位(例如为高),那么这可能是DMA写事务处理的数据的最后字节。同样地,如果TC位设为16位DMA写事务处理,那么紧根TC位后的第二个字节可为DMA写事务处理的最后字节。

        过程下一步转移到状态510,主机102在时钟循环T3中在LAD[1:0]上驱动长度控制信息。长度控制信息表示通过主机102从I/O设备108读取且写入存储器110中的I/O数据的字节数。表4提供了在LAD[1:0]上的编码字节数的实例,这些字节顺序传送通过LAD[3:0]。在相同或不同LAD信号线上的其它编码方法也可使用。

        表4

            LAD[1:0]    长度    00    8字节(1位)    01    16字节(2位)    10    保留    11    32字节(4位)

        在另一实施例中,长度控制信息可表示通过主机102从I/O设备108读取且写入存储器110中的I/O数据的2size个字节数。

        每个DMA信道可有特定长度。在一个实施例中,信道0-3每个都可是8位信道,而信道5-7每个都可是16位信道。如果专用信道宽度被使用,LPC接口118可转送匹配信道宽度的长度控制信息给已许可DMA写事务处理的信道。在另一个实施例中,较大数据长度可转移成较小信道宽度,或较小数据长度可转移成较大信道宽度。

        过程然后可转移到转向(TAR)状态514,在n个时钟信号T4中将LPC总线124的控制转给I/O设备104。LPC总线124的控制可转到I/O设备104上,以便输出它的DMA写数据到LAD[3:0]上。在一个实施例中,状态514有二个时钟宽。在第一个时钟循环,主机102驱动已预定控制信息(例如1111)的LAD[3:0]。在第二个时钟循环,主机102可将LAD[3:0]线分成三态。这些线可以有附在其上的弱拉力,以便它们可保持在一个逻辑高状态。在另一个实施例中,n可能是一个时钟循环或大于二个时钟循环来转向LAD[3:0]。

        过程然后转移到状态516并等待n个时钟循环,同时I/O设备104在n时钟循环T5在LAD[3:0]驱动带内同步控制信息。可以使用同步控制信息来增加等待状态直到该数据准备好由I/O设备104输出。在这种方式下,不同速度或访问时间的I/O设备1可被连接到同一个LPC总线上。传统地,在专用控制线上的专用控制信号被用来表示何时数据准备妥当(例如,在ISA总线或X-总线中的IOCHRDY)。相反,I/O设备104可使用在LAD[3:0]上的内带信令插入等待状态,不需使用额外专用针或信号线。

        在一个实施例中,同步控制信息域可有二个阶段。第一个阶段驱动在LAD[3:0]上的第一控制信息(例如,在LAD[3:0]上的0101或0110),同时访问DMA写数据。第二个阶段驱动在LAD[3:0]上的第二控制信息(例如,在LAD[3:0]上的0000)表示数据准备输出到LPC总线124)。主机102监视同步控制信息来判断何时DMA事务处理的DMA写数据将在随后的时钟循环T6中被I/O设备104输出到LAD[3:0]。在一个实施例中,第一个控制信息可有一种编码方法(例如LAD[3:0]上的0110),它表示I/O设备104可驱动相对大数目的等待状态到LAD[3:0]上(例如大约20多个等待状态)。第一个控制信息可有一种编码方法(例如LAD[3:0]上的0101),它表示I/O设备104可驱动相对小数目的等待状态到LAD[3:0]上(例如大约1-20个等待状态)。举一个例子(见下面表5),I/O设备104可分别为大约1-20个时钟循环驱动在LAD[3:0]上的0101的同步数据,然后分别驱动在LAD[3:0]上的0000的一个循环,表示被请求的数据已准备并将输出到下一个时钟循环。

        如果等待状态的数目大,主机可用进入状态518的方法来决定退出事务处理。如前所述,主机102可用给一个或多个时钟循环声明LFRAME#和在LAD[3:0]上驱动预定的退出控制信息的方法,来退出事务处理。

        同步控制信息域也可被I/O设备104使用来发送LAD[3:0]上的内带错误消息至主机102。错误消息可在同步序列中在任何时候发送。例如,它可作为有第一和第二同步控制信息的实施例中的第二控制信息被发送。错误消息可表示为,举例来说,数据在某种方式下被毁坏,外设不能理解该请求,发出一个无效请求,或请求已发出但同时外设在电源关闭模式或在它处在没准备好或能输出数据的另外模式。在另一个实施例中,错误消息可表示软盘控制器可能已超过它的FIF0。错误消息可引起DMA写事务处理退出。

        在另一个实施例中,I/O设备104可用驱动在16位或32位传送的奇位字节的LAD[3:0]上的0000或1010的同步控制信息的方法来表示一个错误条件。

        表5提供了在LAD[3:0]上给以上描述的同步控制信息编码方法的实例。也可使用其它的编码方法。

        表5

            LAD[3:0]    含义    0000    待备    0001-0100    保留    0101    短等待    0110    长等待    0111-1000    保留    1001    DMA待备    1010    错误    1011    保留    1100    待备不同步    1101-111    保留

        在另一个实施例中,在任何系统中,通过一条通用时分多元总线,在任意二个设备(例如I/O设备104和主机102)之间使用内带同步控制信息,来通信等待状态,错误或前面在表5中描述或总结的任何其它信息。

        I/O设备104可使用同步控制信息,通过LAD[3:0]将数据的每个字节传送到主机102,向主机表示这是否为传送的最后字节或是否相应更多字节被传送。在一个实施例中,不带错误的待备(例如0000)或带错误的待备(例如1010)可向主机表示跟在循环T6后的数据字节是DMA写事务处理数据的最后字节。I/O设备104用在循环T6前在LAD[3:0]上驱动DMA待备控制信息(例如表5中的1001)的方法保持DMA请求为活动状态。这可向主机102表示当前字节之后有更多的数据字节被请求传送。主机102在稍后的某个时间可以再次从状态502开始DMA写事务处理来访问附加数据。

        I/O设备104在LAD[3:0]上提供合适的同步控制信息(例如0000)之后,准备输出它的数据至LPC总线124时,过程转移到状态520给n时钟循环T6。I/O设备104可用二个时钟循环的字节增量驱动数据到LAD[3:0]上。对于每个字节,可用I/O设备104低半字节优先,或高半字节优先或任何其它格式输出数据。如果DMA写事务处理为16位或32位传输(或更高),过程可按需要重复状态516和520多次,来传送所需字节的数据至主机102。I/O设备104输出的每组字节可用低位字节优先,或高位字节优先或任何其它格式输出。从I/O设备104读取的数据然后可由主机102写入存储器110。主机102也可支持确认模式,在该模式完成表5的过程,不用将从I/O设备104读取数据写入存储器110的附加步骤。

        在所有数据被I/O设备104的LPC接口112输出完后,过程转移到转回(TAR)状态522,在该状态在n个时钟循环T7中返回LAD[3:0]的控制给主机102。同样在状态514,状态522可为二个时钟宽。在第一个时钟循环中,I/O设备104驱动带预定控制信息(例如1111)的LAD[3:0]线。在第二个时钟循环中,I/O设备104可将LAD[3:0]线分成三态。在另一个实施例中,n可为一个时钟循环或大于二个时钟循环来转向LAD[3:0]。

        借助于表7的示范性时序图,将描述在I/O设备104的LPC接口112,和主机102的LPC接口118以及存储器110之间的一个DMA读事务处理。

        过程开始于状态502,在该状态当LFRAME#被去声明(deassert)(例如为高)时,LPC接口118和112是闲置的。当主机102获得从存储器110访问和读取存储器数据的权利时,LFRAME#在循环T0被主机102声明(例如为低)。主机102还驱动启动控制信息,表示在循环T0中LAD[3:0]上的LPC事务处理的启动。例如,启动控制信息可为0000,如表1所示。然后过程转移到状态506,在该状态主机102在循环T1中LAD[3:0]上驱动循环类型和方向控制信息。循环类型和方向控制信息向外设表示LPC事务处理为DMA读事务处理。例如,循环类型和方向控制信息可是LAD[3:1]上的100,如表2所示。

        过程然后转移到状态508,LPC接口118在时钟循环T2驱动信道数目控制信息到LAD[2:0]上。信道数目代表在该过程中主机102许可的DMA信道数目。终端总数控制信息也可在同一时钟循环T2在LAD[3]上被主机102传送,信道数目被驱动到LAD[2:0]上。终端总数控制位可表示基于DMA事务处理长度的转移的最后字节。过程然后转移到状态510,并且主机102在时钟循环T3在LAD[1:0]上驱动长度控制信息。

        过程然后转移到状态512,这里主机102通过LAD[3:0]在n时钟循环T4写入一个或多个字节的存储器数据至I/O设备104。主机102可以用二个时钟循环间的字节增量驱动数据到LAD[3:0]上。对于每个字节,可用低半字节优先,或高半字节优先或任何其它格式输出数据。同样地,每组字节可用低位字节优先,或高位字节优先或任何其它格式由LPC接口118输出。

        当写完成时,过程转移到转向(TAR)状态514,在n时钟循环T4将LPC总线124的控制交给I/O设备104。过程然后转移到状态516并等待n时钟循环,同时I/O设备104在n时钟循环中在LAD[3:0]上驱动内带同步控制信息。在一个实施例中,同步控制信息可以是一个或多个时钟循环并用来表示(1)接收到至I/O设备104的存储器读取数据(例如LAD[3:0]上的0000),错误条件已发生(例如LAD[3:0]上的1010),(2)循环T4中接收的字节可是存储器数据(例如LAD[3:0]上的0000)的最后字节,或(3)I/O设备104可为更多的DMA转移(例如LAD[3:0]上的1001〕保持DMA请求为活动状态。

        如果DMA读事务处理是16位或32位转移(或更高),过程可按需要重复状态512,514和516多次,转移足够字节的读取数据至I/O设备104的存储器。过程然后转移到转向(TAR)状态522,在该状态,在n时钟循环T7,LAD[3:0]的控制返回到LPC接口118和主机102。

        在前面说明书中,参考其中特定的实施例描述了本发明。然而,很明显,可以对它进行各种各样的修改和变化,而不偏离在权利要求书中提出的本发明的实质和范围。相应地,说明书和附图作为说明之用而没有限制之意。

    关 键  词:
    引线 线上 直接 存储器 存取 DMA 事务处理
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:在少引线数总线上的直接存储器存取DMA事务处理.pdf
    链接地址:https://www.zhuanlichaxun.net/p-1020270.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1