直接存储器存取(dma)的检测的制作方法

文档序号:7577199阅读:174来源:国知局
专利名称:直接存储器存取(dma)的检测的制作方法
技术领域
本发明涉及主机以及为进行串行数据通信而连接的设备。特别地,本发明涉及通用串行总线(USB)标准“Universal Serial BusSpecification Revision 2.2”的扩展。
背景技术
发明者已经发现可以改进现有USB规范的一个领域。目前,当USB主机向连接的USB设备中的某个目的端发送数据时,必须中断设备的处理器,以便将接收时临时存储在缓冲器中的数据传送到其目的地。因此,USB主机会增加所连接的设备的处理负载。于是,数据传送可能导致正在处理器上运行的应用程序的挂起或其他不希望有的影响。

发明内容
需要改进在主机和设备之间传送数据的机制。
需要提供一种主机用来减少因数据传送而产生的设备中的不希望有的后果的机制。
根据本发明的第一方面,提供一种为进行串行数据通信而与主机相连接的设备,该设备包括用于向主机传送预定数据结构的装置,该预定数据结构表示该设备是否支持直接存储器存取。
用于传送的装置可以响应于主机的请求,例如,在USB中,主机对设备进行轮询。预定数据结构可以为同时向主机传送的多个数据结构中的一个。更佳地,这些数据结构向主机提供该设备的容量。该设备可以为USB设备,该主机可以为USB主机,并且该数据结构可以为列举设备时提供的一系列USB描述符。该预定数据结构可以是扩展另一个(更佳地是前一个)描述符的非标准描述符。
根据本发明的第二方面,提供一种为进行串行数据通信而与设备相连接的主机,该主机包括用于从该设备向该主机传送预定数据结构的传送装置,该预定数据结构标识该设备是否支持直接存储器存取。
可以安排该传送装置,以请求设备至少发送预定数据结构,例如,在USB中主机对设备进行轮询。该预定数据结构可以为同时向主机传送的多个数据结构中的一个。更佳地,这些数据结构向主机提供该设备的容量。该设备可以为USB设备,该主机可以为USB主机,并且该数据结构可以为列举设备时提供的一系列USB描述符。预定数据结构可以是扩展另一个(更佳地是前一个)描述符的非标准描述符。该主机还可以包括分配装置,该装置用于依据预定数据结构的内容,分配与该设备传送的数据或传送给该设备的数据有关的任务。
根据本发明的第三方面,提供一种系统包括主机、设备以及该主机和该设备之间的串行数据互连,该系统包括用于经由串行数据互连从设备向主机传送预定数据结构的装置,该预定数据结构表示该设备是否支持直接存储器存取。
本发明的实施方式提供主机用来确定对于某些功能所连接的设备是否支持直接存储器存取(DMA)的机制。借助该信息,该主机可以选择是否与支持DMA的设备的接口/端点或不支持DMA的设备的接口/端点进行通信。这使得主机能够灵活地调度通过连接主机和设备的总线进行的数据传送,并且使得主机优化了设备的使用。主机通过使用支持DMA的接口/端点,减少了设备处理器的负载,因为向其目的端传送数据时不再需要处理器中断。这特别有益于诸如移动蜂窝电话之类的移动设备,其可能具有惯于同时运行用户应用程序低功率处理器。
在大部分USB设备中,如果支持DMA,则入站端点和出站端点均支持DMA。在优选实施方式中,主机确定一个接口是否支持DMA,假设如果该接口支持DMA,则入站端点和出站端点均支持DMA。由此提供了本发明的简化的实现。


为了更好地理解本发明,并且理解本发明的实现方式,请参照附图中的示例,其中附图为图1是USB系统的示意说明;以及图2说明由设备传送到主机的信息。
具体实施例方式
图1说明为进行串行通信而与主机16相连的设备14,该设备包括用于向主机传送预定数据结构46和56的装置27,该预定数据结构表示该设备是否支持DMA。该图还说明为进行串行数据通信而与设备14相连的主机16,该主机包括用于从设备14向主机16传送预定数据结构46和56的传送装置26,该预定数据结构标识该设备是否支持到存储器29的直接存储器存取。
通用串行总线(USB)是一条电缆总线,它支持主计算机20与各种可同时访问的外设14之间的数据交换。连接的外设14通过主机调度的基于令牌的协议共享USB带宽。在主机或其他外设工作时,总线12可以连接、配置、使用或断开外设。
图1是通用串行总线(USB)系统10的示意说明,该系统包括把USB设备14连接到USB主机16的USB互连12。USB主机可以是具有总线22的计算机20,总线22把处理器24连接到USB主机控制器26和存储器28。USB主机控制器26把计算机20连接到USB互连12。
在本例中,设备14包括一个连接到互连12的接口27,把接口27连接到处理器25和存储器29的总线23。该接口可以访问存储器29,以便使用直接存储器存取(DMA),或者可选地,使用处理器25控制的总线23,直接进行读/写操作。
USB系统10以位串行格式的方式在USB主机16和USB设备14之间传送数据。USB系统中只有一个主机,并且它是总线的控制者。USB是轮询总线,并且主机发起对端点的读写的所有数据传送。
端点是数据的信源或信宿。各端点均具有存储缓冲器,在数据到达其最终目的端之前,该缓冲器对该数据进行缓冲。主机可以向存储缓冲器发送数据,或从存储缓冲器请求数据。
主机16和设备14之间的数据传送发生在主机16和数据端点之间,并称之为管道。管道确定了数据流的方向、数据流(如,数据块)的类型、同步或控制以及为数据传送分配多少带宽。
当初始地把USB设备14连接到系统10时,发生总线列举。这就是用来为设备分配地址并且设备向主机发送数据的过程,该数据标识设备的容量,并启用主机和设备之间的通信。
USB主机16通过向利用分配的地址寻址的USB设备14发送分组,与USB设备14进行通信。
所有USB设备必须支持位于端点0特别指定的的管道。与端点0关联的是列举过程中向主机完整描述设备所需的信息。该信息包括设备、配置、接口和端点描述符。该描述符向主机报告了USB设备的属性。
描述符为带有规定格式的数据结构。每个描述符以一个字节宽的字段开始,后跟一个字节宽的字段,前一个字段包含描述符中的总字节数,后一个字段标识了描述符类型。
设备描述符唯一标识设备,并通知主机该设备拥有的配置数目。
配置描述符通知主机该设备不同的可能配置,如自供电和/或总线供电。它还通知主机它拥有的接口数。
每个接口是划分为功能组的端点分组,该功能组执行设备的单一特征。例如,在组合传真/扫描/打印设备中,有一个接口,并且对于传真、扫描和打印功能的每一个功能都有一个接口描述符。传真接口描述符规定传真所用的入站端点和出站端点。扫描接口描述符规定了扫描所用的不同的端点。打印接口描述符规定了打印所用的另外的端点。
根据本发明的第一实施方式,定义一个全新的非标准的DMA描述符。该描述符用于扩展接口描述符,并通知主机在该接口上DMA是否可用。在列举过程中,DMA描述符紧随在其扩展的接口描述符的之后。
图2说明在列举过程中设备向主机传送的、在设备的端点0存储的信息。在说明的本例中,信息30包括设备描述符32、配置描述符34,第一接口描述符40和第二接口描述符50,与第一接口关联的第一和第二端点描述符42和44,以及与第二接口关联的第三和第四接口描述符52和54。第一和第二端点描述符42和44在与其关联的接口描述符40的后面。第三和第四端点描述符52和54在接口描述符50的后面,通过该接口描述符50,它们被关联在一起。与第一接口关联的第一DMA描述符46紧随在第一接口描述符40的后面,并且扩展了第一接口描述符40。与第二接口关联的第二DMA描述符56紧随在第二接口描述符50的后面,并且扩展了第二接口描述符50。
DMA描述符为带有规定格式的数据结构。它以一个字节宽的字段开始,后跟一个字节宽的字段,前一个字段包含描述符中的总字节数,后一个字段标识描述符类型。
描述符的格式如下bFunctionLength 0x04bDescriptorType 0x24bDescriptorSubtype 0xFDbDMAavailable 0x00/0x01bFunctionLength的值是由通用串行总线规范确定的。bDescriptorType的值也是由通用串行总线规范定义的,它标识通信设备类。bDescriptorSubtype的值为免费使用的通信设备类中的许多定义地值中的一个值。它用于识别DMA描述符。bDMAavailable的值表示该接口是否支持DMA(0x00表示无DMA,0x01表示DMA可用)。
主机根据bDescriptorType和bDescriptorSubtype字段,识别接收的描述符作为DMA描述符。
在本实施方式中,假设如果一个接口支持DMA,则与该端点关联的每个端点也支持DMA。主机确定哪个接口能够支持DMA。主机具有为不同接口分配不同数据传送任务的智能,从而能够在不增加设备的处理器的负担的情况下,优化数据的传送。
根据可选地实施方式,使用DMA描述符来扩展端点描述符而不是接口描述符。在该实施方式中,端点描述符紧随在接口描述符的后面,并且与端点关联的DMA描述符紧随在其端点描述符的后面,且扩展了端点描述符。更佳地,各端点描述符具有关联的DMA描述符。在该可选实施方式中,假设一个接口的端点是否支持DMA与该接口的其他端点是否支持DMA无关。
尽管前述说明书尽力引起人们对那些被认为是特别重要的本发明的特征的注意,然而,应该理解到,申请人要求保护附图提及的和/或表示的任何可以取得专利的特征或特征之组合,而不论是否特别强调过这些特征。
权利要求
1.一种为进行串行数据通信而与主机相连的设备,包括向主机传送预定数据结构的装置,所述预定数据结构表示所述设备是否支持直接存储器存取。
2.根据权利要求1所述的设备,其中所述传送装置响应于所述主机的请求。
3.根据权利要求1或2所述的设备,其中所述预定数据结构为同时向所述主机传送的多个数据结构中的一个数据结构。
4.根据任一前述权利要求所述的设备,其中所述设备为USB设备,并且所述预定数据结构为描述符。
5.根据权利要求4所述的设备,其中所述描述符为非标准描述符。
6.根据权利要求4或5所述的设备,其中所述预定数据结构扩展了前一个描述符。
7.根据权利要求4、5或6所述的设备,其中在所述设备列举期间传送所述预定数据结构。
8.一种为进行串行数据通信而与设备相连的主机,包括从设备向主机传送预定数据结构的传送装置,所述预定数据结构标识所述设备是否支持直接存储器存取。
9.根据权利要求8所述的主机,其中安排所述传送装置,以请求所述设备至少发送所述预定数据结构。
10.根据权利要求8或9所述的主机,其中所述预定数据结构为同时向所述主机传送的多个数据结构中的一个数据结构。
11.根据权利要求8、9或10所述的主机,其中所述主机为USB主机,并且所述预定数据结构为描述符。
12.根据权利要求11所述的主机,其中所述描述符为非标准描述符。
13.根据权利要求11或12所述的主机,其中所述预定数据结构扩展了先前传送的描述符。
14.根据权利要求8-13的任一权利要求所述的主机,进一步包括分配装置,用于依据所述预定数据结构的内容,分配与从所述设备传送数据或向所述设备传送数据有关的任务。
15.根据权利要求11、12或13所述的设备,其中在所述主机列举所述设备期间传送所述预定数据结构。
16.一种包括主机、设备以及所述主机和所述设备之间的串行数据互连的系统,包括经由所述串行数据互连,从所述设备向所述主机传送预定数据结构的装置,所述预定数据结构表示所述设备是否支持直接存储器存取。
17.基本如上文中参照附图描述的和/或附图展示的系统。
18.包括公开的新颖主题的新颖主题或其组合,不论是否在如前述权利要求的本发明的范围内,也不论是否与如前述权利要求的本发明有关。
全文摘要
一种为进行串行数据通信而与主机相连的设备,该设备包括用于向主机传送预定数据结构的装置,其中该预定数据结构表示该设备是否支持直接存储器存取。
文档编号H04L12/403GK1703686SQ200380101098
公开日2005年11月30日 申请日期2003年10月1日 优先权日2002年10月9日
发明者理查德·皮埃里, 简·冈德夫 申请人:诺基亚公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1