CN101916237B - 一种pci总线dma高速数据传输方法 - Google Patents

一种pci总线dma高速数据传输方法 Download PDF

Info

Publication number
CN101916237B
CN101916237B CN2010102212942A CN201010221294A CN101916237B CN 101916237 B CN101916237 B CN 101916237B CN 2010102212942 A CN2010102212942 A CN 2010102212942A CN 201010221294 A CN201010221294 A CN 201010221294A CN 101916237 B CN101916237 B CN 101916237B
Authority
CN
China
Prior art keywords
signal
data
state
main equipment
transmission
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2010102212942A
Other languages
English (en)
Other versions
CN101916237A (zh
Inventor
王权
尤启迪
李申阳
邹光南
陈旭琼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Space Star Technology Co Ltd
Original Assignee
Space Star Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Space Star Technology Co Ltd filed Critical Space Star Technology Co Ltd
Priority to CN2010102212942A priority Critical patent/CN101916237B/zh
Publication of CN101916237A publication Critical patent/CN101916237A/zh
Application granted granted Critical
Publication of CN101916237B publication Critical patent/CN101916237B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

一种PCI总线DMA高速数据传输方法,其特征在于利用DMA机制通过状态机的方式实现数据的高速传输,同时引入了断点续传的功能,可以在由于异常情况造成的数据传输中断后从断点处恢复数据的传输。本发明所述的方法不需要CPU参与和专用的PCI接口芯片,可直接利用可编程芯片实现,具有易于实现、便于修改、移植性高与用户逻辑紧密结合等特点。

Description

一种PCI总线DMA高速数据传输方法
技术领域
本发明涉及一种PCI总线高速数据传输的系统,特别涉及一种采用DMA机制进行数据传输,且不需要CPU参与,并可直接在硬件上实现的利用PCI总线的高速数据传输方法。
背景技术
PCI(Peripheral Component Interconnect)是一种高性能32/64位的局部总线,具有严格的规范保证数据传输的可靠性,为处理器与高度集成的外围设备提供高速安全接口,是迄今为止最成功的总线规范之一。
DMA(Direct Memory Access)是指一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据,既不通过CPU也不需要CPU干预。整个数据传输操作在一个称为“DMA控制器”的控制下进行,可使整个系统的效率大大提高。
PCI总线应用广泛,对于传统的32位PCI总线而言,它既支持单次数据传输,也支持突发数据传输。不论哪种工作模式传输数据都有数据连接建立的过程,因此对于33MHZ的工作时钟而言,单次数据传输在8个时钟周期内传输32bit的数据,传输速率较低。在用户具有越来越多的数据传送要求的情况下,提高主设备和主机之间的速度显然是大势所趋。
目前开发PCI接口大都使用专用的PCI接口芯片,客户往往只能使用PCI接口芯片的部分功能,因而造成了资源的浪费,并且PCI接口芯片的设计往往不能与用户的逻辑紧密的结合,因此在使用上也存在一定的限制。而对于DMA数据传输,当前基本采用DMA通道,DMA控制器由软件驱动完成,使用复杂。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供一种采用DMA机制利用PCI总线进行高速数据传输的方法,该方法在实现时不需要CPU的控制与参与,并且在数据传输时对数据块的配置可根据用户需要进行设置,具有易于实现、便于修改、移植性高等特点,同时加入了断点续传的功能,可以在数据传输发生异常时,保留前次数据传输时的信息并于异常后恢复数据的传输。
本发明的技术解决方案是:
一种PCI总线DMA高速数据传输方法,其特征在于通过状态机中各状态的循环跳转完成数据的传输,所述的状态包括:Idle状态、Busy状态、Addr状态、Dat状态、Last状态、Stop状态,通过以下步骤实现:
步骤1:Idle状态
该状态对应于正常数据传输以及断点续传操作中用于申请PCI总线,主设备在每个时钟的上升沿对PCI总线上的FRAME信号和IRDY信号进行采样,直到发现FRAME信号和IRDY信号均无效,主设备有效REQ信号,申请占用总线;从设备检测到有效的REQ信号后,有效GNT信号;当主设备发现GNT信号有效时,总线申请成功,转入到步骤2;
步骤2:Busy状态
对于正常数据传输:由用户根据需要对所要读写的数据块的长度进行设置,其中对所要读写的数据块可设置的最大长度对应于可用于存储数据的最大内存空间;用户配置读写标志;主设备与从设备根据读写标志选定数据传输首地址,转入步骤3;
对于断点续传操作:由主设备读取上次发生中断时锁存的读写标志、未传输部分数据块的长度及数据传输中断时的地址,转入步骤3;
步骤3:Addr状态
主设备有效FRAME信号,并在FRAME信号有效后的第一个时钟上升沿驱动数据传输首地址或数据传输中断时的地址及总线命令到PCI总线,其中若主设备为数据发送方,则总线命令为写命令,若主设备为数据接收方,则总线命令为读命令;从设备采样有效的FRAME信号、数据传输首地址及总线命令,转入步骤4;
步骤4:Dat状态
主设备有效IRDY信号;从设备采样到有效的IRDY信号后,有效DEVSEL信号和TRDY信号;主设备检测到有效的DEVSEL信号和TRDY信号后,停止驱动数据传输首地址或数据传输中断时的地址及总线命令到PCI总线;开始数据周期,主设备和从设备在每个时钟周期的上升沿开始传送数据,当正常传输至最后一段数据块时,主设备无效FRAME信号,当从设备采样到无效的FRAME信号后转入步骤5;如果在数据周期中由于出现异常情况而引起的传输中断,则从设备有效STOP信号,并无效TRDY信号和DEVSEL信号,进入断点续传操作,转入步骤5;
步骤5:Last状态
对于正常数据传输:完成对最后一段数据块的传输,主设备无效IRDY信号,从设备无效TRDY信号和DEVSEL信号,数据周期结束,转入步骤6;
对于断点续传操作:主设备采样到有效的STOP信号后,转入步骤6;
步骤6:Stop状态
对于正常数据传输:进入此状态后无条件转入步骤1,完成正常数据传输,等待下一次的操作;
对于断点续传操作:主设备与从设备终止数据传输,锁存当前数据传输中断时的地址、主设备的读写标志位及未传输部分数据块的长度;主设备无效IRDY信号;从设备无效STOP信号,持续采样2个时钟周期的无效的FRAME信号后,转入步骤1重新申请总线。
在采用本发明所述的方法进行数据传输前还需要对PCI总线按照PCI协议进行配置。
以上所述的状态机在可直接在编程芯片内实现。
本发明与现有技术相比有益效果为:
(1)本发明与现有技术中DMA传输机制的设计相比,将用户逻辑与PCI接口紧密结合,数据传输的长度、数据读写标志等可根据用户要求进行设置,具有便于修改的特点。
(2)本发明具有断点续传的功能,在由异常情况导致的数据传输中断时,可从前次中断的位置恢复数据的传输,提高了PCI数据传输的可靠性,保证了在发生异常情况时,数据传输的完整性。
(3)本发明所涉及的数据传输方法可直接使用可编程逻辑器件实现,与现有技术相比不需要CPU的控制与参与,同时不需要专用的PCI接口芯片、DMA通道及软件驱动节省了软硬件资源。
附图说明
图1为本发明中高速数据传输状态图;
图2为本发明实施例芯片连接示意图;
图3为本发明实施例配置空间头域示意图;
图4为本发明实施例中读操作部分信号图;
图5为本发明实施例中读操作部分信号图;
图6为本发明实施例中读操作部分信号图;
图7为本发明实施例中写操作部分信号图;
图8为本发明实施例中写操作部分信号图;
图9为本发明实施例中写操作部分信号图;
图10为本发明实施例中写操作部分信号图。
具体实施方式
下面结合附图对本发明的具体实施方式进行进一步的详细描述。
本发明采用PCI总线上基本的突发分组传输方式,一个突发分组由一个地址周期和一个或多个数据周期组成,支持存储空间和I/O空间的突发传输。在PCI总线时序上采用了DMA机制进行控制,从而实现了数据的高速传输,可以达到70Mbps。同时,本发明具有断点续传的功能,用于在由于发生异常情况导致的数据传输中断后,恢复数据的传输。整个的传输过程通过状态机间的状态转换进行实现。
为便于理解本发明,通过表1对本发明中所涉及到的PCI协议中的技术术语进行简单的介绍。针对表1中列出的总线信号,在默认情况下,PCI总线规定低电平代表信号有效,高电平代表信号无效。
  名称   用途
  FRAME   帧周期信号
  IRDY   主设备准备好信号
  TRDY   从设备准备好信号
  Stop   数据传输中断信号
  DEVSEL   设备选中信号
  REQ   主设备请求总线信号
  GNT   总线允许信号
  C/BE   总线命令
  AD   地址数据复用线
表1
一、状态机介绍
本发明采用状态机进行实现,其优点在于不需要CPU的控制与参与,即可完成收发的全过程。在状态机的每个状态下完成对总线或数据所规定的操作,然后跳转到下一状态。其中状态机的状态包括:Idle状态、Busy状态、Addr状态、Dat状态、Last状态、Stop状态。各个状态间的跳转流程如图1所示。下面就结合图1所示的状态机流程图对各个状态下的操作进行介绍。
1、Idle状态
在此状态下,主、从设备完成对总线的申请。对于正常启动的数据传输,此状态为数据进行传输前的第一个状态,对于断点续传操作,此状态为从异常情况恢复后,用于重新申请总线的状态。但对于正常数据传输和断点续传而言,所进行总线申请操作是一致的。
主设备在每个时钟的上升沿周期性的采样检测PCI总线上的FRAME信号和IRDY信号。总线空闲的标志为FRAME信号和IRDY信号均无效,因此当FRAME信号和IRDY信号均为高电平时,开始进入申请总线的操作。
主设备有效REQ信号;从设备对PCI总线上的REQ信号进行采样;当发现有效的REQ信号后,从设备有效GNT信号;当主设备检测到有效的GNT信号时,总线申请操作完成,总线申请成功。然后转入Busy状态。
2、Busy状态
在此状态下,主设备根据用户的设置完成对传输数据块的设置以及读写标志的配置操作,主设备根据读写标志选定数据传输地址,然后转入Addr状态,其中,数据传输地址包括在正常数据传输过程中的数据传输首地址以及断点续传操作中在发生中断时锁存的数据传输中断时的地址。因此,在此状态下,同样分为对正常数据传输即对初次传输时的数据块长度、读写标志位和数据传输首地址的设置,以及断点续传操作中,对之前锁存的未传输部分数据块的长度、读写标志和数据传输中断时的地址的读取和重新分配。
对于正常数据传输:首先进行读写数据块长度的设置。在本发明中对读写数据块长度的设置采用的是与用户逻辑相结合的方式,采用本发明的方法进行传输的最小数据块长度为64bit,最大数据块长度为内存可允许的最大地址空间,即内存空间的最大值减去系统运行所占用的内存空间,其中,最小数据块长度设置为64bit是考虑到高速数据传输的需要,在PCI总线的单次数据传输中,一个数据周期可以传送32bit,因此本发明设置64bit为最小数据块长度的目的在于更加节省资源,提高资源利用率。
然后进行读写标志的配置。对主、从设备读写标志的配置由用户进行设定。在具体的实现时,用户可通过人机接口根据预先的定义选择具体的值即可,比如定义“1”代表读操作,“0”代表写操作。在配置时,只需要将相应主、从设备中的读写标志寄存器进行置位。然后,主设备根据读写标志位选定读数据传输首地址或写数据传输首地址。其中,读写数据传输首地址为预先在内存中定义的地址范围,并且两个地址之差要比数据块长度要大以避免读数据块和写数据块的在具体操作时发生地址间的冲突。
对于断点续传操作:由于在初始传输数据时已经对读写数据块长度和读写标志位进行了设置。因此,在此状态下,主设备需要将发生中断时锁存的未传输部分的数据块长度信息、读写标志位以及数据传输中断时的地址从相应的寄存器读取后再重新分配。
3、Addr状态
在此状态下,用于配置PCI总线命令,并驱动数据传输地址到总线上,此处的总线包括用于传输总线命令的C/BE总线以及传输地址和数据的AD总线。
主设备首先有效FRAME信号,然后对PCI总线命令进行配置,具体的配置过程按照PCI总线的协议进行。根据读写操作选择不同的命令,PCI的总线命令具有4bit的位宽,对应0h-0Fh,共16个值,每个值所代表的具体操作在PCI总线协议中均具有说明,其中写操作对应的总线命令为07h,读操作对应的总线命令为0Ch。
在FRAME信号有效后的第一个时钟的上升沿,主设备将数据传输地址驱动到AD总线,将PCI总线命令驱动到C/BE命令总线,当从设备检测到有效的FRAME信号以及AD总线上的数据传输地址和C/BE总线上的PCI总线命令后,进入Dat状态。
4、Dat状态
此状态用于传输数据,同时此状态也可对发生的异常情况引起的中断进行响应,转入断点续传操作。
主设备有效IRDY信号,从设备采样到有效的IRDY信号后,从设备有效DEVSEL信号和TRDY信号。当IRDY信号和TRDY信号的同时有效标志着数据周期的开始。在数据周期中,按照Busy状态中对数据块长度和数据传输首地址的设置,在每一个时钟周期到来的上升沿进行传输,如果正常传输至最后一段数据块,主设备无效FRMAE信号,当从设备检测到无效的FRMAE信号时,表明当前要进行传输的数据块为最后一段数据块,则状态跳转到Last状态。
如果在数据传输的过程中,由于发生异常情况造成数据传输的中断,则从设备有效STOP信号并无效TRDY信号和DEVSEL信号,数据传输进入断点续传操作,同样跳转至Last状态。其中所述异常情况是由于数据传输过程中出现目标设备中止数据传输所引起的。传送一段数据后,目标设备终止原因包括:目标设备在PCI导线延迟时间内不能做出应答而要求终止或者目标设备终止有重大错误传送或是不能做出应答的传送。
5、Last状态
此状态对正常传输和出现异常时断点续传的操作分别进行处理。
对于正常数据传输,首先完成对最后一段数据块的传输,然后主设备无效IRDY信号,从设备无效TRDY信号和DEVSEL信号,数据周期结束,转入Stop状态。
对于断点续传操作,当主设备检测到有效的STOP信号后,终止对当前数据的传输,转入Stop状态。
6、Stop状态
对于正常数据传输,此状态为一次完整数据传输过程的最终状态,当从Last状态转入此状态后,无条件的转入Idle状态,等待下次数据传输的开始,并重新开始申请总线。
而对于断点续传操作,主设备首先终止当前的数据传输,然后锁存当前数据传输中断时的地址、读写标志位和未传输部分数据块的长度,并无效IRDY信号,同时从设备会采样FRAME信号,当发现FRAME信号无效时,从设备无效STOP信号,并持续1~2个周期,然后跳转到Idle状态,重新申请总线,以完成从断点处的继续传输。
如上所述,为对本发明所涉及的数据传输方法中状态机中各状态下所进行操作的介绍。
二、实施例
利用PCI总线传输数据,通常具有两种方式,一是单次传输,适用于数据少,并且数据长度为1的传输模式;二是采用DMA机制进行数据传输,适用于大数据量的传输模式。而对于PCI总线上的外围设备通常采用FPGA芯片实现收发。
对于单次数据传输,PowerPC为主设备,PCI总线上的外围设备FPGA为从设备。FPGA映射到PowerPC的地址空间从0x80000000到0xe7ffffff,对此空间进行数据操作即可实现单次数据传输。在单次数据传输中只建立一次连接且只传输一个数据,一般需要8个时钟周期,效率比较低,特别是在有连续大块的数据需要传送的场合下更显现出了单次传输的弊端。而本发明所利用的DMA机制则有效的解决了这个问题,采用DMA机制进行传输,一个地址周期后可以有多个数据周期。FPGA为主设备,PowerPC为从设备,其中PowerPC挂载SDRAM作为存储设备。
本实施例中的FPGA设备与PCI总线的连接关系如图2所示。在发生具体的数据传输之前,首先要对PCI进行配置,即对一些配置寄存器进行初始化配置。配置的目的在于:提供一套适当的配置措施,使之满足现行的和可预见的系统配置机构,使PCI设备能正常接入。
配置空间有256个字节,分为预定义的头域(64字节)和依赖于设备的区域(192字节)两部分。PCI协议规定,所有与PCI兼容的设备都必须定义头域,对依赖于设备的区域则未作规定。FPGA中的硬件资源有限,如果配置空间全部用FPGA内部的寄存器实现要占用很多资源,其它功能势必要受到削弱,并且会带来布局、布线上的麻烦。因此,在实现时,对一些只读配置寄存器或者不需要修改的配置寄存器可以采用硬连线的方式实现,比如强制性寄存器当中的设备代码、供应商代码、命令、状态、类别码、修改版本、首部类型寄存器,以及可选寄存器当中的中断引脚寄存器等。本实施例即采用部分硬连线的设计。
然后,根据PCI总线协议和高速数据传输功能要求配置PCI总线的配置寄存器。如图3所示,头域中VendorID为设备制造商标识,由PCI SIG发布;设备代码(Device ID)由设备制造商分配,设备代码和供应商代码一起用于定位设备指定的驱动程序;命令寄存器(Command)用于存放PCI命令;状态寄存器(Status)包含PCI的状态信息;修改版本寄存器(Revision ID)包含版本标识号;类别代码寄存器(Class Code)是只读寄存器,用来说明设备的通用功能;基地址寄存器(Base Address Register)提供了一种为设备指定存储空间或I/O空间的机制。操作系统在启动的时候要判断系统中有多少存储器、系统中的I/O设备需要多少地址空间,然后根据得到的结果,自动配置系统的存储空间和I/O空间,实现设备无关管理;中断线寄存器(Interrupt Line)由系统中的所有中断源共同使用,它的值说明设备的中断引脚连接到中断控制器的哪个输入上。中断引脚寄存器(Interrupt Pin)说明设备使用PCI总线上的哪一个中断引脚。根据需要配置好这些寄存器后,即能识别PCI设备了,然后就可采用该设备进行数据的传输。
在本实施例中,将对读操作以及写操作的数据传输过程分别进行介绍。
1、读操作
读操作即FPGA设备从PowerPC读取连续大块数据。如图4到图6其工作流程如下:
如图4所示,主设备首先检查总线是否空闲,即FRAME信号和IRDY信号是否都为无效。如果检测到空闲,则主设备准备启动交易,首先有效REQ信号,申请占用PCI总线。当收到目标设备检测到有效的REQ信号后,回应有效的GNT信号,此时PCI总线申请成功。
本例中数据块长度、数据传输首地址用寄存器存好具体数值在状态机转到正确的状态时提取出来即可,而总线命令在驱动时刻直接挂在C/BE【3:0】上。
主设备驱动数据传输地址到AD【31:0】上,同时驱动总线命令到C/BE【3:0】上,主设备有效FRAME信号,表明交易已经启动。此时,总线上具有有效的数据传输地址和命令,从设备在接下来的时钟的上升沿采样数据传输地址、总线命令和FRAME信号。
主设备有效IRDY信号,表明它准备接收来自目标设备的第一个数据块。主设备还停止驱动总线命令到C/BE【3:0】上,此时目标设备也有效DEVSEL信号作为响应声明交易,此信号会在数据周期中持续有效。由于是读存储器操作,地址由主设备提供,而数据由从设备提供。因此,AD总线上需要一个转换周期,如图4、5中A0与D0之间的黑色时间段。正因为在转换周期,所以目标设备此时并不驱动TRDY信号有效。
主设备在下一个时钟的上升沿采样到有效的DEVSEL信号时,清楚目标设备已声明交易。目标设备亦会有效TRDY信号。在下一个时钟上升沿,主设备和目标设备同时分别采样到对方有效的IRDY信号和TRDY信号,此时数据周期开始,数据传输开始。
如图6所示,当最后一段的数据块到来,主设备无效FRAME信号,而当目标采样无效的FRAME信号时,表明要对最后一段数据块进行传输。
传输完成后,主设备无效IRDY信号,目标设备亦无效TRDY信号和DEVSEL信号,在下一个时钟的上升沿总线返回空闲状态,读操作完成。
从图4到图6可以看出,读操作使用的总线命令是存储器重复读命令。对于进出系统存储器的数据块传输以及对能支持高速缓存写和高速缓存线寄存器读的总线主设备,建议采用这两种命令。如果由于某些原因,总线主设备不能使用性能已优化的命令,那么就用存储器读和存储器写命令。每个数据周期传输的单位数据长度为32bits,故使用存储器重复读命令。由以上几图可以看出PCI总线有一个连接重试的过程。正是由于使用存储器重复读命令,每次读取一条以上高速缓存线的数据。在数据开始传输之前,有一个连接重试的过程。因为任何支持可高速缓存的PCI目标设备都必须监视高速缓存支持引脚并做出适当的应答。目标设备保持TRDY信号无效直到监视完成,若监视碰到了高速缓存线,它便使STOP有效,从而终止传送。随后监视回写开始,且会按照DMA状态机的流程传送完这条高速缓存线上的所有数据。写完后,主设备释放总线,总线回到空闲状态。
2、写操作
写操作即FPGA设备向PowerPC写连续大块数据。如图7到图10,其工作流程如下:
如图7所示,主设备首先检查总线是否空闲。如果检测到空闲,主设备启动交易。主设备驱动地址到AD【31:0】上,同时驱动命令到C/BE【3:0】上,主设备有效FRAME信号,表明交易已经启动,总线上具有有效的地址和命令。
从设备在接下来的时钟的上升沿采样地址、命令和FRAME信号。此时从设备也有效DEVSEL信号声明交易。由于无转换周期,此时从设备也会有效TRDY信号。
主设备在下一个时钟的上升沿采样DEVSEL信号有效,表示目标已声明交易。而TRDY信号也有效,则表明主设备正在驱动第一个双字到AD总线上。在下一个时钟上升沿DEVSEL信号依然有效,主设备和目标设备同时采样IRDY信号和TRDY信号有效,数据周期开始。
在数据周期中,当发送到第24段数据块时,如图8所示,从设备有效STOP信号,发生断点续传,在STOP信号无效的同时,从设备无效TRDY信号。主设备检测到无效的TRDY信号和有效的STOP信号时,终止数据传输并无效IRDY信号。对应于状态机的跳转过程,是从Dat状态转到Last状态再转到Stop状态,然后再回到Idle状态。其中伴随着FRAME信号和IRDY信号的无效。
回到Idle状态后,主设备重新按照状态机中规定的操作申请总线,驱动数据传输中断时的地址等,然后如图9所示,继续从第24段数据块进行续传,直到完成整个数据的传输。
本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。
在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (3)

1.一种PCI总线DMA高速数据传输方法,其特征在于通过状态机中各状态的循环跳转完成数据的传输,所述的状态包括:Idle状态、Busy状态、Addr状态、Dat状态、Last状态、Stop状态,通过以下步骤实现:
步骤1:Idle状态
该状态对应于正常数据传输以及断点续传操作中用于申请PCI总线,主设备在每个时钟的上升沿对PCI总线上的FRAME信号和IRDY信号进行采样,直到发现FRAME信号和IRDY信号均无效,主设备有效REQ信号,申请占用总线;从设备检测到有效的REQ信号后,有效GNT信号;当主设备发现GNT信号有效时,总线申请成功,转入到步骤2;
步骤2:Busy状态
对于正常数据传输:由用户根据需要对所要读写的数据块的长度进行设置,其中对所要读写的数据块可设置的最大长度对应于可用于存储数据的最大内存空间;用户配置读写标志;主设备与从设备根据读写标志选定数据传输首地址,转入步骤3;
对于断点续传操作:由主设备读取上次发生中断时锁存的读写标志、未传输部分数据块的长度及数据传输中断时的地址,转入步骤3;
步骤3:Addr状态
主设备有效FRAME信号,并在FRAME信号有效后的第一个时钟上升沿驱动数据传输首地址或数据传输中断时的地址及总线命令到PCI总线,其中若主设备为数据发送方,则总线命令为写命令,若主设备为数据接收方,则总线命令为读命令;从设备采样有效的FRAME信号、数据传输首地址或数据传输中断时的地址及总线命令,转入步骤4;
步骤4:Dat状态
主设备有效IRDY信号;从设备采样到有效的IRDY信号后,有效DEVSEL信号和TRDY信号;主设备检测到有效的DEVSEL信号和TRDY信号后,停止驱动数据传输首地址或数据传输中断时的地址及总线命令到PCI总线;开始数据周期,主设备和从设备在每个时钟周期的上升沿开始传送数据,当正常传输至最后一段数据块时,主设备无效FRAME信号,当从设备采样到无效的FRAME信号后转入步骤5;如果在数据周期中由于出现异常情况而引起的传输中断,则从设备有效STOP信号,并无效TRDY信号和DEVSEL信号,进入断点续传操作,转入步骤5;
步骤5:Last状态
对于正常数据传输:完成对最后一段数据块的传输,主设备无效IRDY信号,从设备无效TRDY信号和DEVSEL信号,数据周期结束,转入步骤6;
对于断点续传操作:主设备采样到有效的STOP信号后,转入步骤6;
步骤6:Stop状态
对于正常数据传输:进入此状态后无条件转入步骤1,完成正常数据传输,等待下一次的操作;
对于断点续传操作:主设备与从设备终止数据传输,锁存当前数据传输中断时的地址、主设备的读写标志及未传输部分数据块的长度;主设备无效IRDY信号;从设备无效STOP信号,持续采样2个时钟周期的无效的FRAME信号后,转入步骤1重新申请总线。
2.根据权利要求1所述的一种PCI总线DMA高速数据传输方法,其特征在于数据传输前还需要对PCI总线按照PCI协议进行配置。
3.根据权利要求1所述的一种PCI总线DMA高速数据传输方法,其特征在于所述的状态机在可编程芯片内实现。
CN2010102212942A 2010-06-29 2010-06-29 一种pci总线dma高速数据传输方法 Active CN101916237B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010102212942A CN101916237B (zh) 2010-06-29 2010-06-29 一种pci总线dma高速数据传输方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010102212942A CN101916237B (zh) 2010-06-29 2010-06-29 一种pci总线dma高速数据传输方法

Publications (2)

Publication Number Publication Date
CN101916237A CN101916237A (zh) 2010-12-15
CN101916237B true CN101916237B (zh) 2012-08-22

Family

ID=43323752

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010102212942A Active CN101916237B (zh) 2010-06-29 2010-06-29 一种pci总线dma高速数据传输方法

Country Status (1)

Country Link
CN (1) CN101916237B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102253909A (zh) * 2011-06-30 2011-11-23 济南大学 Fpga环境下多用途pci接口及其数据传输方法
CN103164361B (zh) * 2011-12-08 2016-01-13 炬芯(珠海)科技有限公司 与存储器传输数据的装置及其传输数据的方法
DE102012010558A1 (de) * 2012-05-29 2013-12-05 Robert Bosch Gmbh Hardwarevorrichtung für ein system,system und speicherzugriffsverfahren
CN102710774B (zh) * 2012-06-04 2014-12-17 深圳市宏电技术股份有限公司 数据传输方法及系统
CN103513733B (zh) * 2013-10-12 2018-05-29 丁贤根 一种用于pcie电源可靠复位的方法
CN103678206A (zh) * 2013-11-18 2014-03-26 航天恒星科技有限公司 一种基于fpga系统的遥感数据进机处理结构
CN105988955B (zh) * 2015-02-06 2019-11-01 澜起科技股份有限公司 Sdio设备及其应用的电子装置和数据传输方法
CN106569974A (zh) * 2016-11-02 2017-04-19 深圳市博巨兴实业发展有限公司 一种软硬件接口协议
CN108153703A (zh) * 2016-12-05 2018-06-12 深圳市中兴微电子技术有限公司 一种外设访问方法和装置
CN113342721B (zh) * 2021-07-06 2022-09-23 无锡众星微系统技术有限公司 存储控制器dma设计方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5664117A (en) * 1994-02-24 1997-09-02 Intel Corporation Apparatus and method for prefetching data to load buffers in a bridge between two buses in a computer
KR20050080704A (ko) * 2004-02-10 2005-08-17 삼성전자주식회사 프로세서간 데이터 전송 장치 및 방법
CN101452430A (zh) * 2008-12-12 2009-06-10 北京星网锐捷网络技术有限公司 多处理器之间的通信方法与包括多处理器的通信装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5664117A (en) * 1994-02-24 1997-09-02 Intel Corporation Apparatus and method for prefetching data to load buffers in a bridge between two buses in a computer
KR20050080704A (ko) * 2004-02-10 2005-08-17 삼성전자주식회사 프로세서간 데이터 전송 장치 및 방법
CN101452430A (zh) * 2008-12-12 2009-06-10 北京星网锐捷网络技术有限公司 多处理器之间的通信方法与包括多处理器的通信装置

Also Published As

Publication number Publication date
CN101916237A (zh) 2010-12-15

Similar Documents

Publication Publication Date Title
CN101916237B (zh) 一种pci总线dma高速数据传输方法
US6405271B1 (en) Data flow control mechanism for a bus supporting two-and three-agent transactions
US7752374B2 (en) Method and apparatus for host messaging unit for peripheral component interconnect busmaster devices
CA2186598C (en) Method and apparatus for maintaining transaction ordering and supporting deferred replies in a bus bridge
US5919254A (en) Method and apparatus for switching between source-synchronous and common clock data transfer modes in a multiple processing system
US5564114A (en) Method and an arrangement for handshaking on a bus to transfer information between devices in a computer system
US5333276A (en) Method and apparatus for priority selection of commands
US7802061B2 (en) Command-based control of NAND flash memory
CN104520932A (zh) 闪存存储器控制器
CN1570907B (zh) 多处理器系统
US6823403B2 (en) DMA mechanism for high-speed packet bus
US6581129B1 (en) Intelligent PCI/PCI-X host bridge
CN105095254B (zh) 一种实现数据一致性的方法及装置
US20140115209A1 (en) Flow Control for a Serial Peripheral Interface Bus
CN102035658B (zh) 一种高速1553b光纤总线ip核
US8184110B2 (en) Method and apparatus for indirect interface with enhanced programmable direct port
CN110188059A (zh) 数据有效位统一配置的流控式fifo缓存结构及方法
US5968144A (en) System for supporting DMA I/O device using PCI bus and PCI-PCI bridge comprising programmable DMA controller for request arbitration and storing data transfer information
US7096290B2 (en) On-chip high speed data interface
US6990550B2 (en) Transaction duration management in a USB host controller
CN100517283C (zh) 先进高性能系统总线连接装置及先进高性能系统总线装置
US6633927B1 (en) Device and method to minimize data latency and maximize data throughput using multiple data valid signals
US5923857A (en) Method and apparatus for ordering writeback data transfers on a bus
CN107608927B (zh) 一种支持全功能的lpc总线主机端口的设计方法
US6327636B1 (en) Ordering for pipelined read transfers

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant