通过通用串行总线流进行的侧信道存取的制作方法

文档序号:11160918阅读:536来源:国知局
通过通用串行总线流进行的侧信道存取的制造方法与工艺

本申请案要求2014年10月13日申请的共同拥有的美国临时专利申请案第62/063,092号的优先权,所述美国临时专利申请案出于全部目的特此以引用的方式并入本文中。

技术领域

本发明涉及用于通用串行总线(USB)环境中之系统和方法,且更特定来说,涉及用于使用USB流的USB装置的侧信道存取的改进系统和方法。



背景技术:

USB环境在现代电子装置(例如,服务器、个人计算机(“PC”)、平板PC、蜂窝式电话、汽车信息娱乐系统、个人游戏系统、玩具等)中普遍存在。“通用”接口容许键盘、监视器、打印机、存储装置、相机、电话、玩具、游戏及许多其它电子装置在单一接口上运作。使用USB装置(尤其是如读卡器和类似者的装置),具有使用(例如)自其可直接存取下游USB资源(例如在读卡器的情况下是媒体卡等)的单独接口(例如SPI、I2C、UART等)的到装置中的侧信道是有价值的。一种方法是要求通过上游USB端口进行此存取,但这可使逻辑复杂和/或危害系统性能。

例如,在不支持USB流的USB装置(例如双用途读卡器)中,在给定时间仅可处理一个USB数据包,且推迟任何另外的数据包直到完成当前数据包的处理为止。这意味着如果侧信道传送通过上游USB端口进入系统中,那么即使不存取物理资源(例如,存储卡),仍必须推迟全部USB数据包。

在支持USB流的USB装置中,USB装置控制器将处理依序进入的N个流。通过USB流,可在处理先前数据包前将新数据包接受到装置中,达到装置的存储及处理能力。此可通过使用检查各个USB数据包且确定数据包应路由到的物理资源(例如,存储卡#1、存储卡#2、CPU等)的中央命令仲裁器而完成。通过仅路由到数据包希望的物理资源,可简化物理资源中的逻辑。

然而,即使使用支持USB流的装置,仍将需要由CPU处理对装置上的物理资源中的一者的侧信道存取以便确定正确导引。在不支持数据包的无序处理(大多数装置是这样,这是因为不支持所述无序处理是更为简单)的装置上,必须推迟对所有其它数据包的处理直到正确导引侧信道数据包为止,使得维持所有数据包的顺序。这需要正确实施可为复杂的侧信道逻辑与USB装置控制器之间的通信和同步。

此外,要求通过上游USB端口的侧信道存取对于必须使用(或想要使用)单独接口(例如SPI、I2C、UART等)以存取USB装置的一些用户来说可能不可接受。容许经由这些单独接口中的一者的对USB装置的侧信道存取可使硬件及相关联的软件例程复杂化。例如,实施多路传输此侧信道上的读取和写入命令/数据以及USB上游上的读取和写入命令的功能可为实施复杂的且通常将导致专属命令和寻址方案及/或额外硬件要求(例如,确定如在源于USB主机的命令与经由单独SPI/I2C/UART等接口发源的命令之间的存取优先级的额外仲裁器层)。



技术实现要素:

因此,存在对于可提供避免先前提及的复杂性的有效且简单的侧信道存取的改进USB环境的需要。

根据实施例,提供一种系统,其可包含与USB装置控制器及缓冲器存储器介接的USB接口。系统可进一步包含内部总线及耦合在USB装置控制器与内部总线之间的逻辑单元号(LUN)仲裁器。系统可进一步包含与LUN仲裁器耦合的次级接口。在某些实施例中,系统可包含耦合在次级接口与内部总线之间的FIFO。在相同或替代实施例中,系统可包含耦合到内部总线的多个存储装置,且各个存储装置可包含小型计算机系统接口(SCSI)命令处理单元及存储卡控制器。在相同或替代实施例中,系统可包含耦合在USB装置控制器与LUN仲裁器之间的多个端点。在相同或替代实施例中,USB装置控制器可支持USB流且LUN仲裁器可为USB流仲裁器。在相同或替代实施例中,LUN仲裁器可经配置以接受来自USB装置控制器的多个USB流及来自次级接口的至少一个额外USB流。

根据另一实施例,提供一种方法,其用于提供对具有多个硬件资源、支持USB流的USB装置控制器、逻辑单元号(LUN)仲裁器及次级接口的系统中的第一硬件资源的侧信道存取。USB装置控制器可接收存取多个硬件资源中的第一硬件资源的USB请求。次级接口可接收存取多个硬件资源中的第一硬件资源的侧信道请求。USB装置控制器可将USB请求转发到LUN仲裁器,且次级接口可将侧信道请求转发到LUN仲裁器。LUN仲裁器可确定将USB请求及侧信道请求转发到第一硬件资源的顺序。

根据另一实施例,提供一种系统,其可包含USB装置控制器,内部总线和侧信道接口单元。系统可进一步包含逻辑单元号(LUN)仲裁器,其耦合在(i)USB装置控制器与内部总线之间和(ii)侧信道接口单元与内部总线之间。系统可进一步包含耦合到内部总线的至少一个硬件控制器。系统可进一步包含至少一个处理器。至少一个处理器可经配置以产生用于存取至少一个硬件控制器的第一USB数据包和第二USB数据包。至少一个处理器可进一步经配置以经由USB接口将第一USB数据包发射到USB装置控制器,且通过经由侧信道接口通信协议以隧道方式传输第二USB数据包而将第二USB数据包发射到侧信道接口单元。在接收到第一USB数据包后,USB装置控制器便可将第一USB数据包转发到LUN仲裁器作为第一USB流。在接收到第二USB数据包后,侧信道接口单元便可将第二USB数据包转发到LUN仲裁器作为第二USB流。LUN仲裁器可确定第一USB流与第二USB流之间的存取优先级。可响应于第一USB数据包及第二USB数据包而存取至少一个硬件控制器。

附图说明

可通过参考结合附图进行的以下描述获取对本发明的更完整理解,其中:

图1说明根据本发明的某些实施例的可提供使用USB流的USB装置的侧信道存取的实例系统的框图;

图2说明根据本发明的某些实施例的可提供使用USB流的USB装置的侧信道存取的实例系统的框图;

图3说明根据本发明的某些实施例的用于提供使用USB流的USB装置的侧信道存取的实例方法的流程图。

虽然本发明可具有多种修改及替代形式,但在附图中展示且在本文中详细描述本发明的特定实例实施例。然而,应理解,本文中对特定实例实施例的描述并不意欲将本发明限于本文中揭示的特定形式,而是相反地,本发明意欲涵盖如由所附权利要求定义的全部修改和等效物。

具体实施方式

根据多种实施例,可提供一种系统,其可提供使用USB流的USB装置的增强型侧信道存取。

现在参考附图,示意性地说明实例实施例的细节。附图中的相同元件将由相同数字表示,且类似元件将由具有不同小写字母后缀的相同数字表示。

图1说明根据本发明的某些实施例的可提供使用USB流对USB装置的增强型侧信道存取的实例系统的框图。如图1中所描绘,系统100可包括分别具有处理器102a和104a的硬件单元102和104。系统100可进一步包括耦合到端点缓冲器110和缓冲器存储器112的USB装置控制器106。系统100可进一步包含耦合到FIFO 122的次级接口108。系统100可进一步包括具有上游端口126和128且经由下游端口耦合到内部总线116的逻辑单元(LUN)仲裁器114。系统100可进一步包括小型计算机系统接口(SCSI)命令处理单元118a和118b以及分别用于存取存储卡124a和124b的存储卡控制器120a和120b。总线103可使硬件单元102与USB装置控制器106耦合,且可能够在硬件单元102与USB装置控制器106之间载送符合USB的信令(USB-compliant signaling)。总线130可使硬件单元104与次级接口108耦合,且可能够载送对应于由次级接口108支持的协议的信令。图1描绘硬件单元140,指示其可为与硬件单元102和104分开的硬件(例如,不同物理芯片、板等)。然而,此所描绘的硬件定界仅为例示性的。不同实施例(例如,在下文中描述的图2)可提供不同硬件配置。此外,虽然图1中描绘的实施例包含两个物理存储卡(124a/124b)和对应存储卡控制器(120a/120b)及SCSI命令处理单元(118a/118b),但替代实施例可包含任何数目的存储卡(例如,2、3、10、16等)及相关联的SCSI命令处理单元。

处理器102a和104a可包括可操作以解释和/或执行程序指令和/或过程数据的任何系统、装置或设备,且可包含(但不限于)微处理器、微控制器、数字信号处理器、专用集成电路(ASIC)或经配置以解释和/或执行程序指令和/或过程数据的任何其它数字或模拟电路。硬件单元102的处理器102a可经通信耦合到USB装置控制器106以提供适合于实施/控制USB装置的信令。硬件单元104的处理器104a可通信耦合到次级接口108以提供适合于实施/控制次级接口(例如,SPI/I2C/UART等)的信令。处理器102a和104a也可经通信耦合到包含存储器(例如,易失性、非易失性等)、存储媒体(例如,闪存、EEPROM、固态存储媒体等)等的其它资源(未展示)。

USB装置控制器106可包括可操作以实施USB装置控制器接口的任何系统、装置或设备,且可包含(但不限于)专用集成电路(ASIC)或经配置以实施USB装置控制器接口的任何其它数字或模拟电路(及必要的软件/固件)。在某些实施例中,USB装置控制器106可为由微芯技术有限公司(Microchip)提供的装置控制器。USB装置控制器106可支持USB流(例如,如USB规范的第3.0版中所引入)。USB装置控制器106可耦合到端点缓冲器110和缓冲器存储器112。端点缓冲器110可包括任何数目的端点,多达由USB规范容许的最大值。端点缓冲器110可用于存储USB命令而缓冲器存储器112可用于存储与由USB装置控制器106处置的USB事务有关的数据。

次级接口108可包括可操作以实施次级接口的任何系统、装置或设备,且可包含(但不限于)专用集成电路(ASIC)或经配置以实施次级接口的任何其它数字或模拟电路(及必要的软件/固件)。次级接口108可为串行外围接口(SPI)、集成电路间(I2C)接口、通用异步接收器/发射器(UART)接口或适合于实施侧信道存取接口的任何其它非USB通信接口。次级接口108可耦合到FIFO 122。FIFO 122可用于存储与由次级接口108处置的侧信道存取USB事务有关的USB命令和数据。

逻辑单元号(LUN)仲裁器114可包括可操作以实施USB流仲裁器的任何系统、装置或设备,且可包含(但不限于)专用集成电路(ASIC)或经配置以实施USB流仲裁器的任何其它数字或模拟电路(及必要的软件/韧体)。LUN仲裁器114可包含分别耦合到端点缓冲器110和FIFO 122的上游端口126及128。LUN仲裁器114可经由上游端口126支持源自USB装置控制器106的多个USB流。LUN仲裁器114可进一步经由上游端口128支持源自次级接口108的至少一个额外USB流。LUN是用于区分如由SCSI、iSCSI或光纤信道(FC)协议寻址的单独装置(其各为逻辑单元)的唯一标识符。

SCSI命令处理单元118a和118b可包括可操作以处理在内部总线116上发出的SCSI命令的任何系统、装置或设备,且可包含(但不限于)专用集成电路(ASIC)或经配置以处理在内部总线116上发出的SCSI命令的任何其它数字或模拟电路(及必要的软件/固件)。在替代实施例中,内部总线116可为iSCSI、FC或适合于介接在LUN仲裁器与存储卡控制器120a和120b之间的任何其它总线。因此,虽然图1将元件118a和118b描绘为SCSI命令处理单元,但这些处理单元在替代实施例中可为iSCSI、FC或其它命令处理单元。

存储卡处理器120a和120b可包括可操作以分别控制存储卡124a和124b的任何系统、装置或设备,且可包含(但不限于)专用集成电路(ASIC)或经配置以控制存储卡124a和124b的任何其它数字或模拟电路(及必要的软件/固件)。在替代实施例中,存储卡124a和124b可为除存储卡外的其它硬件资源(例如,音频装置等)。因此,虽然图1将元件120a和120b描绘为存储卡控制器,但这些控制器可经配置以控制除存储卡外的其它硬件资源(例如,音频装置等)。

在操作中,系统100可提供使用USB流的对USB装置的增强型侧信道存取。硬件单元102和处理器102a可执行一般可操作以经由USB总线103(例如,USB主机控制器堆栈等)与USB装置控制器106交互的软件和/或固件。在经由USB总线103接收到USB数据包后,USB装置控制器106便可将包括USB流的对应USB命令转发(例如,存储)到端点缓冲器110且可将对应数据存储在缓冲器存储器112中。

在任何时候,硬件单元104和处理器104a可执行一般可操作以通过经由总线130将数据发射到次级接口108而起始USB装置的侧信道存取的软件和/或固件。如之前所揭示,总线130可为SPI总线,I2C总线、UART总线或适合于实施侧信道存取接口的任何其它非USB总线。硬件单元104和处理器104a可通过经由次级接口协议以隧道方式传输USB数据包而经由总线130发送USB数据包。换句话说,USB协议可叠加在当不将USB桥接到SPI/I2C/UART等时是反直觉的的SPI/I2C/UART等协议的顶部上。实际上,已完成反向桥接功能,可将此视为非常奇怪的事,这是因为USB被视为使用起来更有能力且稳固的协议。在经由总线130接收到USB数据包后,次级接口108便解压缩USB数据包且将USB命令和数据作为USB流转发(例如,存储)到FIFO 122中。

LUN仲裁器114可在上游端口126处(自USB装置控制器106)和上游端口128处(自次级接口108)经由USB流接收USB数据包。LUN仲裁器114可通过确定数据包所指定哪些物理LUN(例如,图1中的存储卡控制器120a和120b)且将USB数据包中含有的请求引导到正确的LUN而将在上游端口126和128处接收的USB数据包导引到正确的芯片上资源。因此,LUN仲裁器114可根据SCSI、iSCSI或光纤信道(FC)协议将USB数据包中含有的请求转换成命令(例如,单播命令)且将经转换的请求转发到内部总线116。

SCSI命令处理单元118a及118b可从内部总线116接收命令且分别与存储卡控制器120a和120b(或其它硬件控制器)介接以导致对存储卡124a和124b(或其它硬件资源)的存取。对存储卡124a和124b的存取可作为正规USB存取(即,经由USB装置控制器106)或作为侧信道存取(即,经由次级接口108)。

图2说明根据本发明的某些实施例的可提供使用USB流对USB装置的增强型侧信道存取的实例系统的框图。图2在几乎所有方面都与图1相同。图2描绘替代实施例,其中处理器203取代图1的硬件单元102和104。图2的实施例也通过添加元件140a而不同于图1。

根据图2中描绘的实施例,处理器203可包括可操作以解释及/或执行程序指令和/或过程数据的任何系统、装置或设备,且可包含(但不限于)微处理器、微控制器、数字信号处理器、专用集成电路(ASIC)或经配置以解释及/或执行程序指令和/或过程数据的任何其它数字或模拟电路。处理器203可经通信耦合到USB装置控制器106以提供适合于实施/控制USB装置的信令。处理器203可进一步经通信耦合到次级接口108以提供适合于实施/控制次级接口的信令。处理器203也可通信耦合到包含存储器(例如,易失性、非易失性等)、存储媒体(例如,闪存、EEPROM、固态存储媒体等)等的其它资源(未展示)。因此,虽然图1的处理器102a和104a是单独硬件单元的部分,但图2中的处理器203起始正常USN存取和侧信道存取两者。

图2的元件140a表示根据本发明的多种替代实施例。例如,在一个实施例中,处理器203可为硬件单元140的部分。在替代实施例中,处理器203可为与硬件单元140分开的硬件单元的部分。

图3说明根据本发明的某些实施例的用于提供使用USB流的USB装置的增强型侧信道存取的实例方法300的流程图。根据一个实施例,方法300优选开始于步骤302。如上文中所述,可以系统100/200的多种配置实施本发明的教示。因而,对于方法300的优选初始化点及包括步骤302到314的方法300的顺序可取决于所选择的实施方案。

在步骤302处,系统100/200可初始化。例如,可通电系统100/200(经由电源或连接到USB主机),且USB装置控制器106、次级接口108和系统100/200的其它组件可初始化。在步骤304处,系统100/200可经由USB总线103接收第一USB数据包。第一USB数据包可表示从硬件单元102中的USB主机发送的正常USB业务。在步骤306处,系统100/200可在次级接口108上接收第二USB数据包。可根据由次级接口(例如,经由SPI/I2C/UART等接口以隧道方式传输USB数据包)定义的通信协议接收第二USB数据包。在步骤308处,USB装置控制器可将第一USB数据包作为USB流转发到LUN仲裁器114。在步骤310处,次级接口108可将第二USB数据包作为USB流转发到LUN仲裁器114(即,次级接口可解压缩经以隧道方式传输的第二USB数据包,以便经由FIFO122而将其转发到LUN仲裁器114)。在步骤312处,LUN仲裁器114可确定第一USB数据包与第二USB数据包之间的存取优先级。在这上下文中,如果LUN仲裁器114确定将第一数据包及第二数据包引导到不同硬件资源,那么LUN仲裁器114可确定第一数据包及第二数据包中含有的请求之间不存在竞争。在步骤314处,LUN仲裁器114可根据针对第一USB数据包和第二USB数据包所确定的优先级存取硬件控制器120a和/或120b。例如,LUN仲裁器114可在内部总线116上发出可由命令处理块118a/118b处理的命令。继而,可存取硬件控制器120a和/或120b,此导致对存储卡124a和/或124b的存取。

虽然图3揭示关于本文中描绘的方法进行的特定数目的步骤,但所述方法可经执行具有比所描绘的更多或更少的步骤。另外,虽然图3揭示关于本文中描绘的方法进行的特定顺序的步骤,但可以任何适合顺序完成步骤。例如,步骤304可在步骤306后进行。作为另一实例,步骤308可在步骤310后进行。

使用本文中揭示的方法及系统,可提供一种系统,其可提供使用USB流的USB装置的增强型侧信道存取。根据所揭示的实施例,用户可有利地使用现有硬件接口以执行USB装置的侧信道存取。侧信道主控(例如,SPI、I2C、UART等主控)可如同USB主机对可放置在芯片上的任何类型的USB下游装置一样应答(speak)。此外,根据所揭示的实施例,可解除驻留在系统140上的CPU处理全部侧信道数据包的负担。另外,根据所揭示的实施例,仲裁变得集中且因此更简单且更一致。例如,LUN仲裁器114仅需要处理USB数据包,此可简化设计且去除对于专属协议的需要。作为另一实例,在一些实施例中,LUN仲裁器114仅需要支持与侧信道存取有关的一个额外USB流、对预先存在的USB流仲裁器的简单修改。仍另外,所揭示的实施例将容许用于侧信道存取的相干无序处理。

虽然已详细描述本发明,但应理解,可对其作出多种改变、取代和替代而不会脱离如由所附权利要求定义的本发明的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1