一种数据传输控制方法与系统的制作方法

文档序号:7927111阅读:88来源:国知局
专利名称:一种数据传输控制方法与系统的制作方法
技术领域
本发明涉及计算机技术,特别地涉及一种数据传输控制方法与系统。
背景技术
现有技术中的串行数据的收发是由中央处理器CPU ( Center Process Unit) 控制的。如图1所示,CPU1通过接口装置3从数据存储装置2接收数据时, 接口装置3先接收来自数据存储装置2的数据,然后通过中断信号通知CPU1; CPU1收到中断信号后,通过总线接口,例如周边元件扩展接口 PCI (Pedpherd Component Interconnect)将数据从接口装置3中读出。当CPU1通过传输装置 3从数据存储装置2发送数据时,CPU通过PCI接口将数据写入接口装置3 , 接口装置3通过串行数据口 (简称串口 )将数据向数据存储装置2发送。
在上述方式中,数据收发过程需占用CPU资源,导致系统效率降低。具 体来说,CPU每次读取一个字节的数据,就需要进行一次PCI读操作,同样, 每次写一个字节,也需要进行一次PCI写操作。不同系统中的PCI读写操作耗 时不等,在有多级桥的系统中, 一次读操作耗时可以达到1微秒;写操作的耗 时在0.2微秒左右。即实际操作速率为1字节/1.2微秒。如果串口的速率为 115200比特/秒,即14400字节/秒,则对一个串口 1秒内数据的操作需要占用 CPU的处理时间为14400 x 1.2微秒=17280微秒,即0.017280秒,CPU的占用 率为1.7%。如果CPU通过PCI连接多个串口芯片,CPU利用率随之上升。例 如模块化路由器中,可能接多个串口卡,每个串口卡又有多个串口。在一个有 32个串口的路由器系统中,CPU对串口的读写操作所占用的时间即上升到32 xl.7%=54%,占用CPU性能的一半以上,CPU的负荷较大。因此需要一种方 法来有效降低CPU在收发串行数据时的负荷。

发明内容
有鉴于此,本发明实施例提供数据传输控制方法与系统,用于降低CPU 收发串行数据时的负荷。
本发明实施例中的一种数据传输控制方法,应用于包括中央处理器CPU、 数据存储装置和传输装置的系统,包括
CPU生成CPU指定的CPU内存空间可写的第一通知信息;
传输装置根据所述第一通知信息将来自于数据存储装置的目标数据写入 所述CPU内存空间。
本发明实施例中的又一种数据传输控制方法,应用于包括中央处理器 CPU、数据存储装置和传输装置的系统,包括
CPU将目标数据存入CPU内存并生成所述目标数据所在CPU内存空间可 读的第二通知信息;
传输装置根据所述第二通知信息从CPU内存中读取所述目标数据;
传输装置将所述目标数据向数据存储装置发送。
本发明实施例中的一种数据传输控制系统,用于控制CPU和数据存储装 置之间的数据传输,包括CPU和传输装置,其中,
所述CPU,用于生成CPU指定的CPU内存空间可写的第一通知信息;
所述传输装置,用于根据所述第一通知信息将来自于数据存储装置的目标 数据写入所述CPU内存空间。
本发明实施例中的又一种数据传输控制系统,用于控制CPU和数据存储 装置之间的数据传输,包括CPU和传输装置,其中,
所述CPU,用于将目标数据存入CPU内存并生成所述目标数据所在CPU 内存空间可读的第二通知信息;
所述传输装置,用于根据所述第二通知信息从CPU内存中读取所述目标 数据并向数据存储装置发送。
根据本发明实施例的技术方案,当数据从CPU外部的数据存储装置转输
至CPU时,对CPU内存的写操作由CPU外部的装置完成,当数据从CPU传 输至CPU外部的数据存储装置时,对CPU内存的读操作也由CPU外部的装 置完成,在上述过程中CPU给出相应的控制信息,CPU与外部数据存储装置 的数据交互无需CPU亲自操作,从而降低了 CPU收发串行数据时的负荷。


图1为现有技术中的串行数据的收发系统示意图; 图2为发明实施例的方法步骤;
图3为本发明实施例中的串行数据的收发系统示意图4为串口收发控制器内部结构示意图5A为串口接收模块内部结构示意图5B为串口发送模块内部结构示意图6A为向CPU的内存写入数据的流程图6B为从CPU的内存读出数据的流程图7为本发明实施例中数据传输控制系统的一种结构示意图8为本发明实施例中数据传输控制系统的另 一种结构示意图。
具体实施例方式
为了降低CPU收发串行数据时的负荷,在本发明实施例中,CPU生成数 据传输控制信息并保存在数据收发记录中,传输装置才艮据数据收发记录中的数 据传输控制信息对CPU内存进行读/写搡作。具体包括如图2所示的如下步骤
步骤21: CPU生成数据传输控制信息。具体为CPU指定自身的一段内存 空间可读或可写,并生成通知信息。通知信息中包含CPU与传输装置约定的 信息表达方式,例如包含一种控制标志,传输装置根据该控制标志,得知CPU 指定的CPU内存空间可读或可写。并且,当传输装置向CPU内存写入数据时, 通知信息中还包含CPU内存的地址,当传输装置从CPU内存中读出数据时,
通知信息中包含CPU内存的地址和需要读出的数据的长度。
CPU生成的通知信息可以是直接发送至数据传输装置,也可以存储在系统
中的某个装置中,例如存储于CPU内部,由传输装置获取该通知信息。
步骤22:传输装置根据CPU生成的通知信息对CPU内存进行读/写操作。 具体为,当传输装置向CPU内存写入数据时,根据数据收发记录中的地址将 数据写入CPU内存中,根据CPU的设置,可以是从该地址起将数据写入CPU 内存空间,或者是由该地址的邻域确定一段CPU内存空间,再将数据写入该 段CPU内存空间;当传输装置从CPU内存中读出数据时,根据数据收发记录 中的地址和数据包长度,从该地址起读出该长度的数据。
下面对本发明实施例给出的方法和装置作详细说明。先结合图3-5B说明 本发明实施例中的一种装置实现方式,然后结合该装置进一步说明本发明实施 例中的数据传输控制方法。
本发明实施例中给出 一种串行数据口 (简称串口 )收发数据时的传输装置, 如图3所示的串口收发控制器30,可以看出它取代了图1中的接口装置3。串 口收发控制器30的功能是根据数据收发记录中的数据传输控制信息,对CPU 的内存进行的读/写操作。图4示出了串口收发控制器30的一种内部结构,包 括串口接收模块31,串口发送模块32,内部总线仲裁器33和PCI接口 34, 它们分别连接到内部总线上,如图中所示。
串口接收模块31用于CPU1从数据存储装置2接收串口数据,串口发送 模块32用于CPU1向数据存储装置2发送串口数据,内部总线仲裁器33用于 控制串口接收模块或者串口发送模块对内部总线的占用。PCI接口 34用于实现 PCI协议的标准接口 。可以看出串口接收模块31、内部总线仲裁器33和PCI 接口 34用于对CPU内存写操作,而串口发送模块32、内部总线仲裁器33和 PCI接口 34用于对CPU内存读操作。
图5A示出了串口接收模块31的一种内部结构,包括串口接收接口311, 串口接收緩存312, PCI接收控制器313。串口接收接口 311和串口接收緩存
312互连,PCI接收控制器313和串口接收緩存312连接到内部总线上。
串口接收接口 311从数据存储装置2接收串口数据,将数据存入串口接收 緩存312。 PCI接收控制器313用于自动轮询接收块描述符BD (Block Description)表,申请内部总线,并控制数据发送地址和长度。串口接收数据 时使用接收BD表,关于BD表在下文中予以i兌明。
图5B示出了串口发送模块32的一种内部结构,包括串口发送接口 321, 串口发送緩存322, PCI发送控制器323。串口发送接口 321和串口发送緩存 322互连,PCI发送控制器323和串口发送缓存322连接到内部总线上。
串口发送接口 321用于向数据存储装置2发送存储在串口发送缓存中的数 据。串口发送緩存322用于存储PCI总线上接收到的数据。PCI发送控制器323 用于自动轮询发送BD表,申请内部总线,并控制数据接收地址和长度。
本发明实施例中的数据收发记录是BD表,BD表中包含数据传输控制信 息,用于串口收发控制器30和CPU1之间数据传输的控制,由CPU在初始化 的时候创建,以循环链表的结构存储于CPU1内存中或其他存储装置中。若存 储在CPU1中,则CPU1需安排存储空间来存储BD表。下面以BD表存储在 CPU1中为例进行说明。BD表的存储地址由CPU1确定,串口收发控制器30 从约定地址访问链表。 一个BD表由N个有序排列的条目组成。当访问BD表 的指针指向第N个条目时,下一个指针就指向第1个条目,由此构成循环链表。
当数据存储装置2的数据被写入CPU1的内存时,串口收发控制器30访 问接收BD表,接收BD表的每一条目存储于一个存储模块中,包含的内容至 少包括控制标志、数据地址指针和下一条目指针。当读出CPU1内存的数据时, 串口收发控制器30访问发送BD表,发送BD表的每一条目存储于一个存储模 块中,包含的内容至少包括控制标志、数据地址指针、数据长度和下一条目指 针。
接收BD表中的控制标志包括第一控制标志和第二控制标志,发送BD表 中的控制标志包括第三控制标志和第四控制标志。BD表条目中仅存储二者其
一,第一控制标志和第三控制标志表示其所在条目应当由串口收发控制器30 控制,也就是说当串口收发控制器30访问该条目时,串口收发控制器30根据
该条目中的信息进行数据读/写操作,而当CPU1访问该条目时不执行针对该条 目的相应操作;第二控制标志和第四控制标志表示其所在条目应当由CPU1控 制,即当CPU1访问该条目时执行对该条目的相应操作,而当串口收发控制器 30访问该条目时不进行操作。在CPU创建BD表时,接收/发送BD的控制标 志为第一控制标志。CPU1或串口收发控制器30的操作在下文中进行说明。
数据地址指针是当前BD条目所对应的数据在内存中的起始地址。在接收 BD表中表示从该开始地址将数据写入CPU1的内存;在发送BD表中表示从 该开始地址起,根据发送BD表中与该开始地址存储于同 一条目中的数据长度, 从CPU1的内存中读出该长度的数据。
如果BD表包括N项条目,则第N项条目中的下一条目指针用于指示第1 项条目的存储地址,其余每项条目中的下一条目指针用于指示本项条目的下一 项条目的存储地址。对于数据地址指针,需要在相邻两个指针之间留有足够空 间以存放数据。根据应用系统的设计或约定来确定该空间大小,例如基于IP (Internet Protocol)协议的数据传输中,数据包的长度最大为1518字节,则数 据地址指针之间的间隔应当不小于1518字节,例如为2K字节。
BD表也可以仅包含一项条目。接收BD表的条目记录CPU内存中的一个 地址,并且记录第一控制标志或第二控制标志。发送BD表的条目记录CPU 内存中的一个地址和从该地址起的数据包的长度,并且记录第三控制标志或第 四控制标志。
下面说明串口收发控制器30的工作流程,分为向CPU1的内存写入数据 的流程和从CPU1的内存读出数据的流程。
在CPU1初始化之后,生成BD表并存储。在此时的BD表的条目中,控 制标志为第一控制标志。当数据存储装置向CPU1发送数据时,该数据需要写 入CPU1的内存,此时串口收发控制器30的工作流程如图6A所示。步骤S61:串口收发控制器30读取接收BD表。
步骤S62:访问接收BD表的条目,判断控制标志是否为第一控制标志, 若是,转入步骤S63,否则重复步骤S62。
步骤S63:串口收发控制器30判读串口接收緩存312是否有数据,若是, 转入步骤S64,否则重复步骤S63。
步骤S64:将数据写入CPU1内存。
步骤S65:串口收发控制器30判断一个完整的数据包是否发送完毕,若是, 转入步骤S66,否则转入步骤S63。
步骤S66:串口收发控制器30修改接收BD表的当前条目。
步骤S67:串口收发控制器30根据当前条目中的下一条目指针,确定下一 条目的存储地址,然后转入步骤S62。
步骤S61-S67给出的是串口收发控制器30的工作流程,其中步骤S61-S65 完成了对CPU1的一次写操作。在步骤S65之后,CPU1读取步骤S63-S65中 写至CPU1内存的数据。在上述步骤S62中,当串口收发控制器30第一次访 问条目时,该条目的控制标志为第一控制标志,该第一控制标志由CPU1在生 成BD表时设置,通过设置第一控制标志,实现了向串口收发控制器30发出 表明CPU1内存空间可写的通知信息。当串口收发控制器30访问BD表的最 后一项条目,然后从第一项条目开始依次访问BD表条目时,如果CPU1还未 结束上述的读取数据,那么该条目中的控制地址仍为第二控制标志,此时串口 收发控制器30需重复步骤S62作等待。
在上述步骤S64中,当数据写入CPU1内存之前,PCI接收控制器313申 请内部总线,由内部总线仲裁器33向串口接收緩存312分配内部总线,然后 串口接收緩存312将数据通过分配的内部总线从接收BD表的当前条目中的数 据地址指针指示的地址开始写入CPU1内存。当前条目即为步骤S62中访问的 条目。
步骤S66中,串口收发控制器30修改接收BD表的当前条目,以实现对CPU1发出当前BD表条目可读的通知信息。具体是PCI接收控制器313将条 目中原有的第一控制标志修改为第二控制标志,并且获取步骤S63-S65中写至 CPUl内存的凄t据包长度信息并记录在条目中。
CPUl按设定的时间间隔轮询接收BD表的每项条目,当访问的条目中的 控制标志为第二控制标志时,则从该条目中记录的CPUl内存地址起,长度为 该条目中记录的数据包长度的数据已经由CPUl读取,此时CPUl将该第二控 制标志修改为第一控制标志,具体是CPU1从访问的条目中记录的地址起,按 访问的条目中记录的数据包长度从CPU1内存中读取数据,然后生成第一控制 标志并存储在BD表的该条目中。BD表的该条目所在存储单元接收该第一控 制标志,并删除原有的第二控制标志。
如果接收BD表仅有1项条目,则在步骤66之后,当CPUl读取写入内 存的数据之后,将第二控制标志修改为第一控制标志;并且在步骤S66之后跳 过步骤S67,直接转入步骤S62,步骤S62中的访问的接收BD表的条目即为 接收BD表的唯一条目。
在CPUl初始化之后,当从CPU1的内存读出数据时,流程如图6B所示。
步骤S71:串口收发控制器30读取发送BD表。
步骤S72:访问发送BD表的条目,判断控制标志是否为第三控制标志, 若是,转入步骤S73,否则重复步骤S72。
步骤S73:串口收发控制器30判读串口发送緩存322是否有空间,若是, 输入步骤S74,否则重复步骤S73。
步骤S74:将数据从CPU1内存中读出。
步骤S75:串口收发控制器30判断一个完整的数据包是否读出完毕,若是, 转入步骤S76,否则转入步骤S73。
步骤S76:串口收发控制器30修改发送BD表,将当前条目中的第三控制 标志修改为第四控制标志。
步骤S77:串口收发控制器30根据当前条目中的下一条目指针,确定下一
条目的存储地址,然后转入步骤S72。
步骤S71-S75完成了对CPU1的一次读操作,此时串口发送緩存322中存 在完整的数据包,该数据包将被发送至数据存储装置2。在上述步骤S74中, 当数据从CPU1内存中读出之前,PCI发送控制器323申请内部总线,由内部 总线仲裁器33向串口发送緩存322分配内部总线,然后串口发送緩存322根 据接收BD表的当前条目中的数据地址指针指示的地址开始通过分配的内部总 线从CPU1内存中读出数据并存储。当前条目即为步骤S72中访问的条目。步 骤S75中根据当前条目中记录的数据长度来判断是否读出完毕。
步骤S76中,串口收发控制器30修改接收BD表,具体是由PCI发送控 制器323生成第四控制标志并向CPU1发送,CPU1将其存储,并删除原有的 第三控制标志。
CPU1按设定的时间间隔轮询接收BD表的每项条目,当访问的条目中的 控制标志为第四控制标志时,CPU1根据该条目中的数据地址指针,从该地址 起将数据写入CPU1内存中,然后将该条目中的第四控制标志修改为第三控制 标志,并且在该条目中记录所写数据包的长度。这里的数据包是从该BD表条 目中的地址起的1个数据包。CPU1对条目的修改,实现了向串口收发控制器 30发出CPU1内存可读的通知信息。
如果接收BD表仅有1项条目,则在步骤S76之后,若当前条目中记录的 CPU1内存中需要有数据被读出,则CPU1将第四控制标志修改为第三控制标 志;并且在步骤S76之后跳过步骤S77,直接转入步骤S72,步骤S72中的访 问的接收BD表的条目即为接收BD表的唯一条目。
以上说明了串口收发控制器30的一种具体结构及工作方式。以下说明一 般结构下的数据传输控制系统,该系统用于CPU与外部数据存储装置之间的 数据传输。
当数据从外部数据存储装置传输至CPU时,该系统结构如图7所示,包 括CPU71和传输装置72, CPU71用于生成CPU指定的CPU内存空间可写的
第一通知信息。传输装置72用于根据第一通知信息将来自于数据存储装置的
目标数据写入CPU71内存空间。这里的第一通知信息是通过BD表来实现, 另外CPU71和传输装置72之间也可以直接向对方发送通知信息,但是这样比 较耗费双方资源,而且由于数据为串行方式写入CPU71, CPU71在对一段内 存空间进行读取之后一^t殳会继续读取另 一段内存空间,而不是要求传输装置立 刻将数据写入已读过的内存空间,所以CPU71与传输装置72之间以一方修改 BD表,另 一方查询BD表的方式(即上文中的步骤S66和S76以及CPU轮询 BD表)互通信息,二者之间无需实时收发信息。
如图7所示,CPU71和传输装置72的一种内部结构是CPU71包括获取模 块711和生成模块712,传输装置72包括存储模块721、第一判断模块722和 写操作模块723。获取模块711用于获取CPU71指定的CPU71内存空间的地 址,获取之后可以存储于CPU71中。生成模块712用于生成标示所述CPU内 存空间可写的第一控制标志,也可以存储于CPU71中。存储模块721用于接 收并保存来自于数据存储装置的目标数据。第一判断模块722用于根据所述第 一控制标志判断CPU71内存空间是否可写。写操作模块723用于若CPU71内 存空间可写,贝'J根据CPU71指定的CPU71内存空间的地址将来自于数据存储 装置的目标数据写入CPU71内存。
本发明实施例中可以设置记录装置73,它位于CPU71内部,同示于图7 中,即CPU71设置一部分内存空间来构成记录装置73,用于保存CPU71内存 空间对应的地址和标示该地址的CPU71内存空间可写的标识,本发明实施例 中记录装置73保存接收BD表,包括两个以上记录模块并且有序排列,每个 记录模块用于保存第一通知信息,并且末位记录模块进一步用于记录首位记录 模块的位置,其余记录模块进一步用于记录下一记录模块的位置。获取模块711 进一步用于向记录装置73发送CPU71指定的CPU71内存空间的地址。生成 模块712进一步用于向记录装置73发送第一控制标志;
并且第一判断模块包括读条目单元和判断单元,读条目单元用于根据记录
模块中记录的下一记录模块位置确定当前记录模块,第 一判断单元用于判断若 当前记录模块中包含第 一控制标志,则确认当前记录模块中的地址对应的
CPU71内存空间可写。写操作模块包括定位单元和写入单元,定位单元用于当 判断单元确认当前记录冲莫块中的地址对应的CPU71内存空间可写时,从读条 目单元确定的记录模块中获取所述地址,写入单元用于根据定位单元获取的地 址将目标数据写入CPU71内存。
为了 CPU71能够继续读取传输装置72写入CPU71内存中的数据,传输 装置进一步包括登记模块724,用于在当前记录模块中写入目标数据的长度, 并将其中的第一控制标志更改为标示CPU指定的CPU内存空间可读的第二控 制标志。记录模块进一步用于记录写入单元根据当前记录模块中的CPU71内 存地址写入的数据的长度。CPU71进一步包括第二判断模块713和读取模块 714,同示于图7中。第二判断模块713用于判断当前记录模块中是否包含第 二控制标志,读取模块714用于若当前条目中包含第二控制标志,则根据当前 记录模块中的CPU71内存地址和目标数据的长度读取目标数据。生成模块712 进一步用于将当前记录模块中的第二控制标志更改为第一控制标志。
当数据从CPU传输至外部数据存储装置时,本发明实施例中的数据传输 控制系统结构如图8所示,包括CPU81和传输装置82。 CPU81用于将目标数 据存入CPU81内存并生成目标数据所在CPU81内存空间可读的第二通知信 息。传输装置82用于根据第二通知信息从CPU81内存中读取目标数据并向数 据存储装置发送。
如图8所示,本发明实施例中CPU81和传输装置82的一种内部结构是, CPU81包括写入模块811、获取模块812和生成模块813,传输装置82包括第 一判断模块821、读操作模块822、存储模块823和发送模块824。写入模块 811用于将目标数据写入CPU81内存,获取模块812用于获取CPU81指定的 CPU81内存空间的地址,获取之后可以存储于CPU81中。生成模块813用于 生成标示CPU81内存空间可读的第三控制标志,也可以存储于CPU81中。第
一判断模块821用于根据第三控制标志判断CPU81内存空间是否可读。读操 作模块822用于若CPU81内存空间可读,则根据记录装置83中的CPU81内 存空间对应的地址和目标彰:据的长度从CPU81内存中读取目标数据。存储才莫 块823用于保存读操作模块822读出的目标数据。发送模块824用于将存储模 块823中的数据向数据存储装置发送。
对于保存了包含两个以上条目的发送BD表,本发明实施例中可以设置记 录装置83,它位于CPU81内部,同示于图8中,记录装置83包括两个以上记 录模块并且有序排列,每个记录模块用于保存第二通知信息,并且末位记录模 块进一步用于记录首位记录模块的位置,其余记录模块进一步用于记录下一记 录模块的位置。相应于记录装置83的这种结构,本发明实施例中获取模块812 进一步用于向记录装置83发送CPU81指定的CPU81内存空间的地址,生成 模块813进一步用于向记录装置83发送第三控制标志。
第一判断模块821包括读条目单元和判断单元。读条目单元用于根据记录 模块中的下一记录模块位置确定当前记录模块,判断单元用于判断若当前记录 模块中包含第三控制标志,则确认当前记录模块中的CPU81内存地址对应的 CPU81内存空间可读。读操作模块822包括定位单元和读出单元。定位单元用 于当判断单元确认当前记录模块中的CPU81内存地址对应的CPU81内存空间 可读时,从读条目单元确定的记录模块中获取CPU81内存地址和数据长度, 读出单元用于根据定位单元获取的地址和数据长度从CPU81内存中读出目标 数据。
为了使CPU81能够向CPU81内存继续写入数据,传输装置82进一步包 括登记模块825 ,同示于图8中,用于将当前记录模块中的第三控制标志更改 为第四控制标志。并且CPU81进一步包括第二判断模块814,用于判断所述当 前记录模块中是否包含第四控制标志,写入模块811进一步用于若当前记录模 块中包含第四控制标志,则将数据根据当前记录模块中的CPU81内存地址写 入CPU81内存。生成模块813进一步用于在写入模块811根据当前记录模块
中的CPU81内存地址写入CPU81内存之后将当前记录模块中的第四控制标志
更改为第三控制标志。
在本发明实施例中,通过传输装置和数据收发流程,实现自动完成串口数
据的收发。当数据从外部存储装置传输至CPU内存,是由串口收发控制器将 数据直接写入CPU内存;当数据由CPU内存传输至外部存储装置,是由串口 收发控制器将数据直接从CPU内存中读出。这种方法使得CPU无需亲自对 CPU与外部存储装置之间的接口装置进行读写操作,所以降低了传输串行数据 时CPU的负荷,提高了系统的处理能力。在具体实现中,传输装置可以使用 PCI接口 ,能够和所有带PCI接口的CPU连接。由于一条PCI总线上可以连 接多个串口控制器,实现了系统的灵活扩展。本发明实施例中的PCI接收控制 器、PCI发送控制器、串口发送接口、串口接收接口、串口发送緩存、串口接 收緩存以及PCI接口可以使用逻辑控制器件以及存储器件实现,也可以使用现 场可编程门阵列FPGA ( Field Programmable Gate Way )来实现。在实际应用系 统中,CPU包含图7的CPU71和图8中的CPU81内部的各个功能模块,数据 传输装置也包含图7的传输装置72和图8的传输装置82内部的各个功能模块, 并且系统中包含图7的记录装置73和图8的记录装置83,即CPU可以同时保 存接收BD表和发送BD表,这样的系统就能够实现对CPU内存读和写的操作 控制,用于CPU与外部数据存储装置之间的数据往来。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发 明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及 其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1、一种数据传输控制方法,应用于包括中央处理器CPU、数据存储装置和传输装置的系统,其特征在于,包括A、CPU生成CPU指定的CPU内存空间可写的第一通知信息;B、传输装置根据所述第一通知信息将来自于数据存储装置的目标数据写入所述CPU内存空间。
2、 如权利要求1所述方法,其特征在于,所述第一通知信息包括CPU 内存空间的地址和标示该地址的CPU内存空间可写的第一控制标志;则所述步骤B包括bl、传输装置根据所述第一控制标志确认所述CPU内存空间可写; b2、传输装置根据所述地址将来自于数据存储装置的目标数据写入CPU 内存。
3、 如权利要求2所述方法,其特征在于,所述步骤A包括CPU生成数据收发记录,所述数据收发记录包括两项以上条目并有序排 列,每项条目记录所述第一通知信息,并且末项条目记录首项条目的存储位置, 非末项条目记录本条目的下一条目的存储位置;则所述步骤bl包括传输装置判断若数据收发记录的条目中包含第一控制标志,则确认当前条 目中的地址对应的CPU内存空间可写; 并且所述步骤b2包括传输装置接收并保存来自于数据存储装置的目标数据,然后根据所述地址 将所述目标数据写入CPU内存。
4、 如权利要求3所述方法,其特征在于,所述步骤b2之后进一步包括 传输装置在所述当前条目中记录所写目标数据的长度,并将所述当前条目中的第一控制标志更改为标示CPU内存空间可读的第二控制标志;传输装置根据所述当前条目记录的下一条目的存储位置访问下一条目;CPU判断若所述当前条目中包含第二控制标志,则根据所述当前条目中的 地址和所述目标数据的长度读取所述目标数据,然后将所述当前条目中的第二 控制标志更改为第 一控制标志。
5、 一种数据传输控制方法,应用于包括中央处理器CPU、数据存储装置 和传输装置的系统,其特征在于,包括A、 CPU将目标数据存入CPU内存并生成所述目标数据所在CPU内存空 间可读的第二通知信息;B、 传输装置根据所述第二通知信息从CPU内存中读取所述目标数据;C、 传输装置将所述目标数据向数据存储装置发送。
6、 如权利要求5所述方法,其特征在于,所述第二通知信息包括存储 有目标数据的CPU内存空间的地址、目标数据的长度以及标示该地址的CPU 内存空间可读的第三控制标志;则所述步骤B包括bl、传输装置根据所述第三控制标志确认存储有目标数据的CPU内存空 间可读,b2、传输装置根据所述地址和目标数据的长度从CPU内存中读取所述目 标数据。
7、 如权利要求6所述方法,其特征在于,所述步骤A包括CPU生成数据收发记录,所述数据收发记录包括两项以上条目并有序排 列,每项条目记录所述第二通知信息,并且末项条目记录首项条目的存储位置, 非末项条目记录本条目的下一条目的存储位置;则所述步骤bl包括传输装置判断若数据收发记录的条目中包含第三控制标志,则确认当前条 目中的地址对应的CPU内存空间可读; 并且所述步骤b2包括传输装置根据所述当前条目中的地址和目标数据的长度从CPU内存中读 取所述目标数据。
8、 如权利要求7所述方法,其特征在于,所述步骤b2之后进一步包括 传输装置将所述当前条目中的第三控制标志更改为标示CPU内存空间可写的第四控制标志;传输装置根据所述当前条目记录的下一条目的存储地址访问下一条目; CPU判断若所述当前条目中包含第四控制标志,则根据所述当前条目中的地址向CPU内存写入数据,然后将所述当前条目中的第四控制标志更改为第三控制标志。
9、 一种数据传输控制系统,用于控制CPU和数据存储装置之间的数据传 输,其特征在于,包括CPU和传输装置,其中,所述CPU,用于生成CPU指定的CPU内存空间可写的第一通知信息; 所述传输装置,用于根据所述第一通知信息将来自于数据存储装置的目标 数据写入所述CPU内存空间。
10、 如权利要求9所述系统,其特征在于,所述CPU包括获取模块和生 成模块,所述传输装置包括存储模块、第一判断模块和写操作模块,其中,所述获取模块,用于获取CPU指定的CPU内存空间的地址; 所述生成^^莫块,用于生成标示所述CPU内存空间可写的第一控制标志; 所述存储模块,用于接收并保存来自于数据存储装置的目标数据; 所述第一判断模块,用于根据所述第一控制标志判断所述CPU内存空间 是否可写;所述写操作模块,用于若所述CPU内存空间可写,则根据所述地址将来 自于数据存储装置的目标数据写入CPU内存。
11、 如权利要求IO所述系统,其特征在于,进一步包括记录装置,所述 记录装置包括两个以上记录模块并且有序排列,每个记录模块用于保存所述 CPU指定的CPU内存空间的地址和所述第一控制标志,并且末位记录模块进一步用于记录首位记录模块的位置,其余记录模块进一步用于记录下一记录模 块的位置;所述获取模块进一步用于向记录装置发送所述CPU指定的CPU内存空间 的地址;所述生成模块进一步用于向记录装置发送所述第一控制标志; 所述第一判断模块包括读条目单元和判断单元,其中, 所述读条目单元,用于根据记录模块中记录的下一记录模块位置确定当前 记录模块,所述判断单元,用于判断若所述当前记录模块中包含第一控制标志,则确 认所述当前记录模块中的所述地址对应的CPU内存空间可写; 所述写操作模块包括定位单元和写入单元,定位单元用于当判断单元确认所述当前记录模块中的所述地址对应的 CPU内存空间可写时,从所述当前记录模块中获取所述地址,写入单元用于根据定位单元获取的所述地址将目标数据写入CPU内存。
12、 如权利要求11所述系统,其特征在于,所述传输装置进一步包括登 记模块,用于在所述当前记录模块中记录所述目标数据的长度,并将其中的第 一控制标志更改为标示CPU指定的CPU内存空间可读的第二控制标志;所述记录模块进一步用于记录所述目标数据的长度;所述CPU进一步包括第二判断模块和读取模块,其中,所述第二判断模块,用于判断所述当前记录模块中是否包含第二控制标志5所述读取模块,用于若所述当前条目中包含第二控制标志,则根据所述当前记录模块中的地址和所述目标数据的长度读取所述目标数据;所述生成模块进一 步用于将所述当前记录模块中的第二控制标志更改为 第一控制标志。
13、 一种数据传输控制系统,用于控制CPU和数据存储装置之间的数据 传输,其特征在于,包括CPU和传输装置,其中, 所述CPU,用于将目标数据存入CPU内存并生成所述目标数据所在CPU 内存空间可读的第二通知信息;所述传输装置,用于根据所述第二通知信息从CPU内存中读取所述目标 数据并向数据存储装置发送。
14、 如权利要求13所述系统,其特征在于,所述CPU包括写入模块、获 取模块和生成模块,所述传输装置包括第一判断模块、读操作模块、存储模块 和发送模块,其中,所述写入模块,用于将目标数据写入CPU内存; 所述获取冲莫块,用于获取CPU指定的CPU内存空间的地址; 所述生成模块,用于生成标示所述CPU内存空间可读的第三控制标志; 所述第一判断模块,用于根据所述第三控制标志判断所述CPU内存空间 是否可读;所述读操作模块,用于若所述CPU内存空间可读,则根据所述地址和目 标数据的长度从CPU内存中读取所述目标数据;所述存储模块,用于保存读操作模块读出的目标数据; 所述发送模块,用于将存储模块中的数据向数据存储装置发送。
15、 如权利要求14所述系统,其特征在于,进一步包括记录装置,所述 记录装置包括两个以上记录模块并且有序排列,每个记录模块用于保存所述 CPU指定的CPU内存空间的地址和所述第三控制标志,并且末位记录模块进 一步用于记录首位记录模块的位置,其余记录模块进一步用于记录下一记录模 块的位置;所述获取模块进一步用于向记录装置发送所述CPU指定的CPU内存空间 的地址;所述生成模块进一步用于向记录装置发送所述第三控制标志;所述第一判断模块包括读条目单元和判断单元,其中,所述读条目单元,用于根据记录模块中记录的下一记录模块位置确定当前记录模块,所述判断单元,用于判断若所述当前记录模块中包含第一控制标志,则确认所述当前记录模块中的所述地址对应的CPU内存空间可读; 所述读操作模块包括定位单元和读出单元,其中,所述定位单元,用于当判断单元确认当前记录才莫块中的所述地址对应的 CPU内存空间可读时,从所述当前记录模块中获取所述地址和数据长度,所述读出单元,用于根据定位单元获取的所述地址和数据长度从CPU内 存中读出所述目标数据。
16、如权利要求15所述系统,其特征在于,所述传输装置进一步包括登 记模块,用于将所述当前记录模块中的第三控制标志更改为标示CPU指定的 CPU内存空间可写的第四控制标志;所述CPU进一步包括第二判断模块,用于判断所述当前记录模块中是否 包含第四控制标志;所述写入模块进一步用于若所述当前记录模块中包含第四控制标志,则将 数据根据所述当前记录模块中的所述地址写入CPU内存;所述生成模块进一步用于在写入模块根据所述当前记录模块中的所述地 址写入CPU内存之后将所述当前记录模块中的第四控制标志更改为第三控制才示志o
全文摘要
本发明提供一种数据传输控制方法与系统,用以解决CPU收发串行数据时负荷较大的问题。CPU生成CPU指定的CPU内存空间可写的第一通知信息;传输装置根据所述第一通知信息将来自于数据存储装置的目标数据写入所述CPU内存空间。根据本发明实施例的技术方案,对CPU内存的读/写操作由CPU外部的装置完成,CPU只需给出相应的控制信息,从而降低了CPU收发串行数据时的负荷。
文档编号H04L12/56GK101355523SQ20081022336
公开日2009年1月28日 申请日期2008年9月26日 优先权日2008年9月26日
发明者宁 杨 申请人:福建星网锐捷网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1