Ieee1394平行并列式总线的制作方法

文档序号:7713774阅读:275来源:国知局
专利名称:Ieee1394平行并列式总线的制作方法
技术领域
本发明涉及一种IEEE1394平行并列式总线(IEEE1394_based parallel bus),特别 是指一种使用多个IEEE1394总线作为传输线基础的平行并列式总线技术,从而使封包可 同时在多个传输线上传送或者接收。
背景技术
IEEEl394的官方全名为“IEEE1394高性能序列式总线”(IEEE1394 High-performance Serial Bus),商业上以Firewire 为名。目前应用的范围包括 机械人控制(robotic control)、自动光学检测(automated optical inspection)、医疗影 像(medical imaging)、摄影(filming)、安全监视系统(security surveillance)、通讯系 统(communication systems) > 音口向装置(audio)、商务航空(commercial aviation) > 军事 (military)以及车辆(automotive)等。绝大多数的火线(超过90% )应用于数字相机的领 域。此一领域的应用被分类为“机械视觉”(machine vision)应用。
一般而言,只要包括Firewire 连结器(connector)或者接口(interface)而能够 在Firewire 总线上沟通的任何产品即可称为Firewire 产品(Firewire product), 实务应用上,亦可能包括其它的接口。
图10显示现有技术的IEEE1394总线,为一树状结构(tree structure),称为拓 扑图(topology),每一个在总线上的设备以唯一的编址(unique address)的方式识别其 身分。图 10 中的编号 1005、1006、1008 以及 1014 为Firewire 重复器(repeaters), 所谓重复器并不具有其它功能,其目的仅在延长和重复数据传输。而事实上,每一个 IEEE1394 设备(1000、 1001、 1002、 1003、 1004、 1007、 1009、 1010、 1011、 1012、 1013、1015)也有与重复器相同的功能,但与重复器的不同之处在于其仍具有一些除了重 复数据传输以外的功能。因此,传输线段连接所有的设备,并自动以Firewire 协议 (protocol)结合为单一的总线(single widewire bus),也就是成为一个单一共享的(shared) 传输线。
根据图10,其包含一共享的(shared)传输线,所有的设备与该传输线直接连 接。一个传输的封包丢掷到传输线上,并且在整条传输线上传播(propogate),在该传输 线上所有的设备皆能知悉该封包的传输。一设备的硬件元件(hardware components)将检 查所有封包的标头(headers),如该设备的地址(address)出现于该封包的标头,则该设备 将接收该数据。
但是,如图10的现有技术的IEEE1394总线有传输线上设备数量的限制,总 线上设置设备的数目不能超过63个,该数目亦包括重复器的数目。另外,现有技术的 IEEE1394总线也有频宽(bandwidth)上的限制。举例说明,如果一种需要八台相机的应 用,而其中任三台组合已经超过了 IEEE1394的频宽。也就是说只有两台相机可以在该总 线上操作,因此八台相机的应用需要四个独立的总线。
因此,某些专利提出连结捆包(Iinkbundling)的方法。然而,因该连结捆包为点对点层级(point-to-pointlevel),未扩及到整个总线系统,效果不佳。另外,如授权给Intel公司的美国第6,094,683号专利,其揭露了一种在于网络的 连结捆包,用以增加频宽(bandwidth)以及减少延迟(latency)。在第一节点(first node) 与第二节点(second node)之间传输的数据在传输的过程中需要经过切割(stripped)。此 夕卜,在系统初始设定时,必须确定对哪些传输线加以捆包(pre-bundled)。数据的切割和 传输线的事先捆包耗费硬件/软件资源以及时间。其它和本领域相关的专利,包括序列数据总线的同步化(synchronization of serial data),如授权给Point Grey公司的美国第7,337,344号专利,其揭露了一种在不同列式 总线(different serial buses)上同步化的方法与设备,该专利必须在第一总线设置一第一 时钟,以产生供第一总线参考的第一时间信号。而在第二总线设置一第二时间,以产生 供第二总线参考的第二时间信号。利用该第一时间信号以及第二时间信号计算时间偏移 (timing offset)。关于复数连接的负载平衡(load balancing of the multi-links),如授权给 Cisco公司的美国第7,184,402号专利,其揭露了一种利用在MFR(multiple frame relay)的 负载平衡方法和设备。

发明内容
本发明的一个目的在于提供一种IEEE1394平行并列式总线,其包含多个 IEEE1394传输线,致使不同数据封包可以在同一时间由多个传输线并行传输/接收,因 此,不受总线上连接设备数目或者频宽的限制。本发明的另一目的在于提供一种IEEE1394平行并列式总线,该IEEE1394平 行并列式总线上连接多个宽线设备,并选择一根节点(root node)上的宽线设备为周期主 (cycle master), 传送一个时间参考信号(timing reference)给宽线总线(widewire bus)上 所有的宽线设备(widewire devices)。各IEEE1394传输线上的周期开始封包(cycle start packets)之间可以在时间轴上彼此平移,从而使封包传送的尖峰时间重叠时间可以减少, 进而减少存储体总线的负载,且系统的效能(performance)即使在高负载(heavy loads)下 亦可以维持其可靠度(reliable)。本发明的再一目的在于提供一种IEEE1394平行并列式总线,数据封包在传输线 上传送/接收时为整体封包型式,并未改变其数据型式。因此,无须在传输时切割或裁 切(stripped/chopped)封包。禾Ij用本发明的IEEE1394平行并列式总线,数据的传输由“位传输”(bit-level) 提升到“封包传输”(packet-level),不同的数据封包(data packet)在同一时间下由不同
的传输线传送/接收。 本发明的封包为单一封包完整传输,途中并未进行任何数据切割(split)。单一 封包由不同传输线传送,之后于接收端组合(reassemble)。本发明为减少宽线设备在存储体总线(in-memory buses)中的传输负载尖峰 (traffic load peaks),将各传输线的周期开始封包在时间轴上彼此平移(time-shifted),故 意非同步化(on-purpose desynchronized)。结果因传输线之间同步周期(密集传输的时间 区域)有较少的时间重叠区域,因此减少了不同传输线之间闲置时间的重叠区域,避免 负载尖峰传输。这样的平移对宽线总线上的传输设备或是接收设备皆有利,因此,可以使宽线设备的存储体汇流的负载平均化(more evenly balanced load patterns)。本发明的目的与精神可参考以下的发明详细叙述与附图,将可获得进一步的了解。


图1为本发明的概念模式(conceptual model)图;图2-1为本发明实体架构(physical topology)示意图的一个范例,其为一四频带 宽线总线(four-band widewire bus);图2-2为图2-1中节点(node) 105的内部构造图;图3为本发明中封包整体传输的示意图;图4-1 是单一转接器(single adapter)的逻辑操作(logical operation)示意图;图4-2为本发明的四频带宽线设备的四转接器(quad-adapter)逻辑操作示意图;图5-1为本发明中1394周期的同步(isochronous periods)以及非同步周期 (asynchronous periods)交替不意图;图5-2为本发明中一个1394周期结构(cycle structure)图;图5-3为本发明中解决延迟累积(delay accumulation)的示意图;图5-4为本发明中四频带宽线总线的传输动作时间图;图6-1为本发明的同步周期简化状态机(simplified state machine)图;图6-2为本发明的非同步周期简化状态机图;图6-3为本发明的同步以及非同步周期组合状态机图;图7-1为本发明封包化(packetization)的一个范例图,其中,每一个扫描线(scan line)包含三个封包;图7-2显示图7-1的一种可能的传送顺序(transmission sequence),称为循环 (round robin)法;图8-1为本发明另一个封包化范例图;图8-2显示图8-1的一种可能的传送顺序,称为区块分割(block division)法;图9-1显示本发明的一个可能的编址空间策略(one possible address space scheme)
示意图;图9-2显示用于本发明的宽线编址空间策略(widewire address space scheme)示意 图;以及图10示出了现有技术的IEEE1394总线。
具体实施例方式在本发明的实施方式中,以陈述特定细节的方式来提供对发明深入的了解。然 而,本发明可在省略这些细节下实施。并且在某些例子中,并未显示或陈述现有技术常 见的元件,以不模糊本发明的精髓为原则。本发明为一种IEEE1394平行并列式总线(IEEE1394_based parallel bus),建构于 IEEE1394技术上,或称为“宽线总线”(widewire bus)。该平行并列传输或者接收并非 为位层级(bit level)传输,而是封包层级(packet level)的传输。所谓的封包层级的传输是指数据以平行并列方式,使用封包为传输单位,不同封包在不同传输线上平行并列式 同时被传输或者接收,每一个封包在其中一个可利用的传输线上传输。
请参阅图1,为本发明的概念模式(conceptualmodel)图。在图1中显示出以四 个IEEE1394总线2为基础所建构的IEEE1394平行并列式总线,即所称的宽线总线。概 念上,本发明的宽线总线2可在任何大于一个传输线的数量下操作,传输线的数量将决 定于实际状况和需要。因此,图1中所显示的数量并不用于限制本发明,仅为一范例。 实务上,IEEE1394总线数量的考虑点,举例说明,例如在单一主机板(board)上芯片 (chips)的使用数量,或者软件和硬件的应用状况。
本发明概念上可如此观之宽线总线具有共有的通讯线(communication lines), 该通讯线是由多个IEEE1394传输线(transmission lines) 2所建构。每一个在一传输线的 封包仅在该传输线上传递(propogate),并未在其它的传输线上传递,因此传输线之间可 视为彼此独立(independent)。
如图1所显示,多个宽线设备(widewire devices) 1连接于本发明的宽线总线2。 所谓的宽线设备1是指任何设备,该宽线设备1包含适当硬件接口(coraiector/interface), 以使该宽线设备1可连接于本发明的宽线总线2,其还包含适当软件或韧体(software/ firmware),以使宽线设备1可以传送或接收宽线总线2的数据。
在宽线总线技术上,必须注意的是,虽然宽线总线由多个IEEE1394传输线2所 组成,但在实际应用上,在数据传输时并非必须使用到宽线中所有的IEEE1394总线2, 实务的情况可能连接较少的传输线。
在建构的过程中,如已知一设备并不需要所有传输线的频宽,为节省制造上的 费用,亦有可能某些宽线设备并不连结所有的传输线,容后详加说明。因此,理论上, 本发明可以建构多种不同型态的宽线总线。图1以及以下的图2-1仅为显示方便的参考 范例,实务建构上并非所有的传输线都必须和图1或者图2-1完全相同而存在。
现在请参阅图2-1,其显示出本发明的一个范例的实体架构(physical topology) 示意图。其包括传输线2以及10个节点101至110。其中的节点101和104为PC转接器 (PC adapters),节点102和103为宽线重复器(widewire repeaters),而其它节点选自其它 宽线设备(widewire devices),此处不详加说明。在总线上,所谓的节点(node)是一个可 循址(addressable)的主体,该地址在每次起始化(configuration)时可以被重新设定(reset) 以及被确认(re-verified)。在本说明书中,IEEE1394宽线设备和IEEE1394节点可互相取 代而交替使用。其中特别加以指出的是,标号101的节点的宽线设备为整个宽线总线的 根节点(root node),其将负责产出该宽线总线的单一参考时间点(timing reference),容后 加以说明。
如前所述,本发明的宽线总线可省略某些宽线设备的传输线。宽线总线的一个 传输线可为一个频带(band)。例如,在包含四个传输线的四频带宽线总线(four-band widewire his)中,其中某些宽线设备仅连接其中的两个传输线,成为两频带宽线设备 (two-band widewire device),如图2-1中的宽线设备109以及110。在此种情况下,若该宽 线设备109与110的软件设备驱动器(software device drivers)具有调节的功能,则可在使 用该两个传输线下进行适当的操作;也可能有某些宽线设备仅连接其中的三个传输线, 如图2-1中所示的宽线设备107。但是,一种相反情况,意即一个需要四传输线的四频带宽线设备(four-band widewire device)仅连接两频带宽线总线(two-band widewire bus)(图
中未加以显示)。如该宽线设备可侦测到此种情况,并且在减少容量(reduced capacity) 下操作,则该四频带宽线设备将被当成二频带宽线设备使用,而该二频带宽线总线中的 其它宽线节点(widewire node)也可顺利与该宽线设备的沟通,不至于产生问题。建构上,显示于图2-2,其为图2-1中节点105的内部结构。宽线设备105为 一包含四个IEEE1394PHY+LINK芯片201、202、203、204,并包含三个四线宽线连接埠 (4-line widewire ports) 205、206、207 的宽线相机(widewire camera)。节点 105 的宽线相 机与节点102的宽线重复器以四个IEEE1394传输线21、22、23、24连接。图2_1并未 显示图2-2的其中两个宽线连接埠(widewire ports) 206、207。此外,图2_2仅为说明图 2-1中其中一个节点105,其它在图2-1传输线上的宽线设备可为相似的PHY+LINK芯片 内部配置,禾U用对应于传输线数目的1394PHY+LINK芯片数量,与其它在传输线上的宽 线设备相连。例如,图2-1中的宽线设备107,因其仅与三个传输线相连,因此其内部仅 包含三个PHY+LINK芯片。 IEEEl394协议是一个数据传输的协议,自然地其以分层方式(layered fashion)来 定义。硬件上,通常建构为实体层(physical Layer-ΡΗΥ)以及链接层(link Layer-LINK)。 过去几年,PHY芯片(PHY chips)和LINK芯片(LINK chips)通常是在主机板上分开建 构,但是最近,许多芯片制造商倾向将PHY芯片和LINK芯片结合成为PHY+LINK芯 片。另外,近年来,还对LINK芯片标准化,现今称该标准芯片为1394 OHCI芯片,其 中OHCI为Open Host Controller Interface的缩写。在本发明中,将LINK芯片与OHCI芯 片的名称交互使用,表示以OHCI芯片建构的IEEE1394的链接层LINK。另外,在图2-1中要提到的是,1394传输线之间未以任何1394硬件桥接 (hardware bridge)或者以其它硬件机构相连,彼此为完全独立。但是,传输线之间共有一 些重叠共通的特性,例如该多个传输线共享相同的时间参考点(time reference)。关于共 有时间参考点的特性将在下文中详细说明。再者,该传输线模式是对称的此对称性质非指物理实体上的对称性,而是在 宽线总线模型中所有的1394的传输线被视为相等的(equal)。因此,宽线总线中,没 有“主要传输线(master lines) ”、“次要传输线(secondary lines) ”或者“控制传输线 (control line)"和“数据传输线(data line) ”的区别,亦无“主要(main) ”和“重复或 备用(redundant) or (backup) ” 的区分。因本发明的各传输线之间为彼此独立,因此需要有单一的时间参考点。在之后 亦会提及,不同1394传输线,一宽线主机转接器(widewire host adapter)必须根据情况将 一已知的时间偏移(offset)插入不同传输线的周期开始封包以改善效能,因此所有的周期 开始封包(cycle startpacket)必须由相同的实体设备产出。对于封包、周期开始封包以及 偏移的详细内容,请容后详细加以说明。在此处要说明的是,宽线软件驱动器(widewire software drivers)将控制1394总线的拓朴结构(topology),从而使相同的实体设备成为每 一个总线中的根节点,而所有周期开始封包由该实体设备产生。IEEEl394标准经历许多进展,IEEE1394a信号和IEEE1394b信号为其中两个信 号模式(signaling modes)。在实务上,优选地,本发明的宽线总线倾向以IEEE 1394b信 号和芯片来建构,因IEEE1394b拥有较高的功能性以及可靠度。然而,此乃优选化的考虑,但本发明并不以IEEEE 1394b信号为限制,也不排除IEEEE 139 设备的存在。
在传输数据时,寄送端(sender)传输一串有排序(ordered sequence)的数据比特 流(bit stream),寄送端的较高层级软件(higher level software)可将该串数据比特流切割 (split)成封包(packet)的形式,再加以传送。在接收端(receiver)的较高层级软件负责把 所接收到的封包重新结合(recomWne),并重新结构(reconstruct)为比特流(bit stream)。 上述切割技术已为习知,故此处不再详加说明。
上述的“较高层级软件”(higher level software) —词通常用来描述较IEEEl394 设备驱动软件(1394 device drive software)较高层级的任何软件。举例而言,其可为一般 在使用者模式下不需要特别权限(privileges)的一般应用软件(application software)。在 1394传输线上的数据封包(data packets)根据其特性和目的有不同的种类。IEEE1394标 准封包主要包括三种型态,分别是PHY封包、收讫封包(acknowledge packets)、以及主 要封包(primary packets)。其中的主要封包又可分为非同步封包(asynchronous packets)以 及同步封包(isochronouspackets)。本发明主要针对同步和非同步封包的传输讨论,但不 排除其它封包在本发明的宽线总线上的传送。
由数据的观点观之,非同步和同步封包基本上是相同的皆包括一标头 (header) 30以及一本体(body) 31,如图3所示。但是,同步封包在标头有一个特定的执 行码(未显示),使同步封包可与非同步封包互相被分辨。在内本质上,同步和非同步封 包并没有非常显著的差异,而在封包传输处理上,却有相当的差异性,容后详细说明。
此处非常重要的是,在宽线总线上传输数据是以IEEE1394标准封包的形式传 输,如图3所示,封包由一寄送端(Sender)32至一接收端(reCeiver)33传输的过程中,皆 维持同样的封包形态,封包从未被分割再重新组合(never fragmented and reassembled)。 每一个封包整体地(as a whole)在一个传输线上传输,在其它封包也可能在其它传输线上 传输时。
现请参阅图4-1,其为单一转接器的逻辑操作(logical operation)示意图,转 接器又可称为主机控制器(host controller)。图4_1显示的该转接器包含一 PHY+LINK 芯片201,该PHY+LINK芯片201包含多个直接存储体存取器(direct memory access engines-DMA)400。图4_1还显示出一个主存储器(main memory)40,该直接存储体存 取器400可将同步封包41、42、43以及非同步封包44、45直接由存储体40读取或者写 入。此外,该直接存储体存取器400如图4-1所示,根据其使用,可分为同步传送直 接存储体存取器(isochronous transmit DMA engines) 410、411、412、413,同步接收直接 存储体存取器(isochronous received DMA engines)420、421、422、423,以及非同步传送 直接存储体存取器(asynchronous transmit DMA engine) 430,以及非同步接收直接存储体 存取器(asynchronous received DMA engines) 431。
图 4-1 中的 PHY+LINK 芯片 201 还包含多个 FIFO 模块(first-in-first-out modules)441、442、443,提供传送或者接收封包的暂存存储体空间(temporary buffer space)。该FIFO模块441、442、443为特殊功能的存储体,一般而言,其大小大约在2K 至16K之间。在传输时,封包在FIFO模块441、442、443内部暂时队列。该FIFO模块 441、442、443并不需要等到一个完整封包接收完毕,直接存储体存取器400才存至主存 储器40。可以在封包正在接收过程中,以区块为单位(block-by-block)地存至存储体。相同地,反方向的传输亦同。也就是一个外出的封包无须待其完整,可以由主存储器中 以区块为单位地传送至适当的FIFO模块,再传送至1394总线。
重新回到图2-2,显示出一个与四频带宽线总线连接的四频带宽线设备105,其 内部包含四个PHY+LINK芯片201、202、203、204,即为一四转接器。图4-2将图2中 的四个PHY+LINK芯片201、202、203、204重新绘制(四转接器),并且显示出其与一 主存储器40的逻辑操作。对于一 PHY+LINK芯片的逻辑操作已于图4-1中说明,基本 上图4-2的四转接器的逻辑操作与之相同,此处不再赘述。另外,为了方便绘制,图4-2 将该主存储器40分为四个部分显示,实际上,该存储体40为一单独存储体。因直接存 储体存取器400直接由主存储器40读和写,因此该PHY+LINK芯片201、202、203、204 必须能够和一内部存储器总线(internal memory bus) 401沟通。该宽线设备105与四个传 输线21、22、23、对相连接,封包4可在传输线上平行并列式传输与接收。
现请参阅图5-1,其显示出同步期间(isochronous period) 51以及非同步期间 (asynchronous period) 52在125 μ s的1394周期下交替进行。在之后将有详细说明,解释 图5-1的1394周期125 μ s仅是一个平均值。如前所述,同步封包和非同步封包在内质 上并无大的不同,而是在传输处理上的差异性。在同步期间51传送者,皆可被视为“同 步封包”,而在同步期间51以外传送者,则可被视为“非同步封包”。也就是说,同步 封包仅能在同步期间51内传送。
在同步期间51结束之后,非同步期间52紧接在后,两者之间以一子动作指示 (subaction indication) 54所分隔。子动作指示M在IEEE 1394a中为一时间间隔,例如大 于某一预定的时间间隔;而在IEEE1394b中,子动作指示M则为一信号。无论是一时 间间隔或是一信号,两者皆用来指示非同步封包的可能发生开始。关于子动作指示M, 可在相关技术背景中找到参考数据,并不在本案讨论的范围内,此处并不多加以解释。
每一个周期的开始(如图5-1)会产生“周期开始事件(cycle start event),,53, 在1394总线上以数据封包(data packet)的型式显示,称为“周期开始封包(cycle start packet)”。当收到下一个周期开始封包,则上一个1394周期结束,而一个新的1394周 期将开始。因该周期开始封包是一种数据封包形式,因此在宽线总线上有某一节点必须 负责传送该封包,如图2-1中的节点101。在1394的术语中,传送该周期开始封包的节 点被称为是“周期主(cyclemaster)”。在一个时间点上,仅能有一个周期主,也就是说 仅能有一个传送周期开始封包的节点。在宽线总线重新设定(reset)后,周期主节点立即 被重新确认,直到下一次宽线总线再次被重新设定。周期主一般为任意选定,但是在某 些情况下,也有可能强制一个节点为根节点(周期主)以产生时钟信号(clock signals)。
每一个被选择的周期主节点内部包含一个非常准确的时钟,在每秒内产生8000 个周期同步信号,也就是每125 μ S发生一个周期同步信号(cycle sync signals)。该信号表 示一个周期开始事件,提示根节点的PHY+LINK芯片必须开始传送一个周期开始封包。
如在宽线总线未有其它封包在传输状态,周期开始封包将立即顺利传输。然 而,若在周期开始封包需要被传输时,仍有其它封包在该时间仍在传输当中,则周期开 始封包将被延迟到目前封包完成。这也解释前文中提到,为何同步和非同步封包周期时 间为“大约” 125PS,并非为准确的125yS。每个1394周期的125 μ S仅是一个平均值, 并非每个1394周期都有125 μ s的时间间隔。
1394协议将周期开始封包定义为“高优先权封包(high priority packet) ”,也就
是如目前在传输线上的封包传输结束后,没有其它封包会接着被传输,基于周期开始封包享有较高的传输优先权,因此周期开始封包将优先传输。现参阅图5-2,其为一周期结构(cycle structure)图,显示在图5_1中同步期间51 以及非同步期间52中的内部封包结构。在周期主产生周期同步信号551、552时,亦即通 知必须开始周期开始事件。理论上,周期主的PHY+LINK芯片必须仅快传送周期开始封 包。但是,因传输线上尚有未完成传送的封包,因此周期开始封包必须等待该传送动作 完成。因此,周期开始封包531、532将有传输上的延迟,如图5-2中周期同步信号551 与对应周期开始封包531之间的间隔,以及周期同步信号552与对应周期开始封包532之 间的间隔,显示预定周期开始封包应传输时间和实际传输时间上的延迟(delay)。这些延迟在长时间下将产生飘移(cycle drift),对许多应用将导致严重的问题, 必须在该延迟累积以前加以解决。不同于周期开始封包是由软件时钟(software clock)产 生,周期同步信号是由真实的硬件时钟产生,因此并不会有漂移的现象,因此延迟累积 的问题可藉由周期同步信号为指南加以解决。举例说明,请参阅图5-3,假设第一个周期占去145 μ s的时间,因(145-125)= 20,因此第二个周期开始封包532延迟了 20 μ s的时间。假设仍有封包在传输中,第三个 周期开始封包533因此又延迟了 5 μ s,下一个周期同步信号553必须在125x2 = 250 μ s发 生,因此第二个周期为250+5-145 = 110 μ s,第二个周期期间为110 μ s,因此有125-110 = 15yS的时间调整。假设之后没有其它传送中的封包,则第四个周期开始封包534会即 刻被传送,因此仅有125-120 = 5μ s的时间调整。故此,即便是在繁忙的传输情况下, 周期开始封包最多大约仅有40-45 μ s的延迟。也就是说,藉由某些长于125 μ s的1394 周期和某些短于125 μ s的1394周期调和,1394周期时间可以平均为125 μ S。在周期开始封包531传送完成之后,如图5-2,同步封包56将开始被传输。然, 传送周期开始封包是非必要的,软件模块(software module)可以要求周期主停止周期开 始封包的传送。倘若无周期开始封包的情况下,则亦将没有周期(cycles)的存在,因此 同步封包无法被传输,1394总线将全部以非同步的方式操作。并非所有的系统都需要同 步交通,因此在某些情况下是有可能关闭周期开始封包,仅使用非同步交通。请再度回到图5-2,其显示出同步封包之间存在着同步间隔(isochronous gaps) 541。但是根据1394原则,在同步封包之间亦可能不存在间隔(gaps),称为连锁封 包(concatenated packets),或者存在一个小同步间隔(small isochronous gap)。因此,图 5-2仅作为一个说明范例。当最后一个必须传输同步封包的节点传输结束后,如总线闲置 时间(bus idle time)较长,前述子动作间隔542提示1394芯片同步期间51已结束,应开 始非同步交通(asynchronous traffic),传送非同步封包57。或者同步封包56的传送已经 达到额定的容量,则子动作间隔542指示非同步期间52的开始。前一个非同步封包已经 结束,如仍有其它非同步封包等待传送,则必须开始下一个非同步封包的传送。值得注 意的是,非同步封包可能要求接收端传送收讫封包58,如图5-2所显示。对同步交通, 必须保证同步封包在每一个125 μ s被传送,但是并不需要收讫封包。对非同步封包,在 大部分的案例,皆需要将收讫封包58传送给寄送端。图5-4为包含四频带宽线总线的传输动作时间图,其显示出多个周期开始封包53、同步封包56以及非同步封包57。在周期开始封包53传送后,表示同步周期51的开 始,接着传送同步封包56。同步封包56上所标示的数字表示接收该同步封包56的信道 号码(channel numbers)。每一个同步封包具有一信道号码,信道号码用以指定同步封包 所属的目的地。多个宽线设备可能接收来自同一信道号码的同步封包,相当于多点传送 或多播(multicast)。同步封包并未特别编址(addressed)指定给特定的节点。
对每一个同步期间51,仅会传送单一信道号码的封包一次。举例说明,如在一 个同步期间51,已经传送过信道号码为8的同步封包,在该同步期间,将不会有第二个 信道号码为8的同步封包再次被传送。一个宽线设备可在每一个1394周期中传送多个同 步封包,但是该些同步封包必须属于不同的信道号码。
同步封包56集中在同步期间的开始阶段,另外在同步封包56之间并无闲置时 间。不同于同步封包56,非同步封包57可以分布且散落(spread and scattered)在非同步 期间52中。非同步步封包57等待同步封包56结束之后被传送,然若一个节点在总线闲 置时欲进行非同步交通,其将可直接进入总线,传送封包。在非同步期间52,如没有任 何非同步封包57需要被传输,则整个非同步期间52将呈现闲置状态(idle)。非同步封包 57的传输将较同步封包56为少,一般而言,将由应用来决定。例如,外部硬盘(external hard disks)仅使用非同步交通,但是对大部分的本发明的宽线应用,在总线上大部分的 活动都是与同步封包相关。故此,本发明的绝大部分交通的封包多是同步封包,也就是 说,1394总线的闲置时间倾向于集中在非同步期间52。
图5-4显示本发明的宽线总线的一个特征。为了减少宽线设备在存储体总线中 的传输负载尖峰(traffic load peaks),将四个传输线21、22、23、M的周期封包53进行 彼此平移(shifting)的动作,称为“故意非同步化”(on purpose desynchronized)。结果 因为四个传输线21、22、23、M的同步周期51有较少的时间重叠区域,因此减少不同传 输线之间闲置时间的重叠区域。避免负载尖峰传输,将有助于在数据传输或者接收下, 有较少的FIFO错误产生。这样的时间平移(time-shifting)也可影响一宽线总线的接收 端。因同样地,若四个传输线的四个同步封包在同一时间下接收,则存储体总线(internal memory bus)使用量将大增。
在图5-4的第四个传输线M显示出一个特别的情况。显示的最后一个同步期间 51,并未如前面几个同步期间51传送属于信道号码11的同步封包。一个传输的宽线设 备可利用不传送某一信道号码的同步封包的方式,或者明确要求该信道号码在某一周期 闲置(idle cycle)的方式,将某些同步期间闲置。
图6-1显示出一宽线设备连结层的同步期间的简化状态机(statemachine)图。一 宽线设备的起始状态为非同步期间状态60,同步期间由周期开始封包触动,收到一周期 开始封包后,非同步期间状态60进入同步期间状态61。在同步期间状态61,如收到一 同步封包指示(isochronous packenndication),则进入同步接收状态62,开始接收该同步 封包。待该同步封包接收完毕后,重新进入同步期间状态61。在传输时,同时间,有 多个同步封包要求传输,则同步传输要求(isochronous transmit request)队列进入同步仲裁 (isochronous arbitration)状态63。待某一同步封包赢得仲裁(arbitration won)后,进入同 步传送状态64,开始该同步封包的传送,直到该封包传送完成,重新进入同步期间状态 61。如同步仲裁丧失(arbitration lost),则再度回到同步期间状态61。在同步期间状态61,如受到一子动作指示(subactionindication)的触动,则进入起始状态的非同步期间状 态60。现在请参 考图6-2,其显示出一宽线设备连结层的非同步期间的简化状态机 (statemachine)图。同样地,其由非同步期间状态60为起始点,视接收到的是非同步封 包指示(asynchronous packet indication)或者是数据要求(data request),也就是接收或者传 送的动作,分别进入非同步接收封包(asynchronous receive packet)状态65或者非同步仲 裁(asynchronous arbitration)状态67。进入至非同步接收状态65后,如非同步封包确实 收讫,则进入寄出收讫(send acknowledge)状态66,寄出ACK信号,同时回到起始状态 60。如进入非同步仲裁状态67,视丧失仲裁或是赢得仲裁,分别重新回到起始的非同步 期间状态60,或者是可以开始非同步传输封包状态68。在非同步传输封包状态68下, 在非同步封包传输完毕之后,进入等待收讫(wait for acknowledge)状态69。在ACK信 号确实收到后,或者有子动作间隔指示发生(表示ACK信号已经遗失),则重新进入起 始的非同步期间状态60。图6-3则显示由图6-1以及图6-2所组合的简化状态机图,此处不再赘述。一影像流的生命周期(Image streaming lifecycle)可分为三个部分,首先是把影像 撷取在相机的存储体,再将影像封包化(image packetization),最后是影像的传输(image transmission)。在影像封包化部分,必须将影像裁切成合于同步封包的小区块。所得到的封包 决定于影像尺寸(image size)以及封包尺寸(packet size),也就是封包数量等于影像尺寸 除以封包尺寸。封包的方式决定于影像扫描策略(scanning scheme),在扫描影像的过程 中,将所扫描的像素(pixels)加入封包。举例而言,对于标准的1394相机协议,像是 IIDC,封包以及传输的顺序已经定义影像将会被一列一列扫描(row-by-row),从左到 右(left-to-right),从上到下(top-to-bottom),而封包以扫描产生的顺序被传输。现请参考图7-1,其显示影像封包化的一范例图,每一个扫描线(scanline)切割 为(chopped)三个封包。图7-2则显示图7-1的一种可能的传送顺序,称为循环(round robin)法。也就是,在四个传输线的宽线总线,封包1将由第一个传输线传输,封包2将 由第二个传输线传输,封包3将由第三个传输线传输,封包4将由第四个传输线传输。封 包5重新由第一个传输线传输,以此类推。图7-2则显示在四个传输线上,利用循环法 传输封包以及其封包号码。此种循环法在宽线功效(widewireperformance)上并非最佳, 且有建构上的不实用性。因此有其它封包传输顺序提出。图8-1显示另外一种影像封包化(image packetization)图,称为区块分割(block division)法。影像被区分(split)为多个水平层(horizontal slices),每一层指定一个传输
线并由该同一传输线传送。如图8-1和图8-2显示,在四个传输线上,利用区块分割法 (block division)分割所有的扫描线(scan lines)为四个区块81、82、83、84,每一区块指 定一个传输线,并由该传输线传送封包。以上所述和显示的封包化以及封包传输方式仅 用来方便说明本发明的宽线总线传输的精神,仅为说明范例,非用以限制本发明。实务 上,不排除其它封包化(packetization)以及封包传输策略(packet transmission schemes)的 存在。每一同步封包的标头(header)包含一信道号码,信道号码决定一封包是否被接收,以及该封包将接收于何处。同一传输线上的宽线设备皆可取得具有相同信道号码的 同步封包,相等于多点传输或者多播(multicast)。在多个同步封包需要被传送时,这些 同步封包将队列(queued),等待赢得仲裁(arbitration),而得以在同步期间传送。一个封 包在赢得仲裁之后,将在同步周期被传送。在一个同步期间内,对于一个信道号码,仅 有一个该信道号码的同步封包被传送。
相较于同步封包,非同步封包于其标头(header)包含一个标的实体码(target physical ID),该标的实体码可指定单一宽线节点(widewire nod),或者亦可能为所有节点 (allnodes)。也就是说,一个非同步封包可被一个宽线设备或者所有的宽线设备接收。
根据IEEE1394 标准(1洲4 standard),总线的地址空间(address space)有 64 位 (bit)的存储体空间(memory space)。在总线上执行动作,概念上须进入存储体中该64位 的地址空间。IEEE1394利用64位地址的较高的16位作为外部地址(external address), 而以其它的48位作为在该节点内的内部地址(internal address)。在1394总线中的1394 节点外部地址称为节点码(Node ID),该节点码又分为两部分,其中的10位称为总线码 (Bus ID),而另外的6位则称为实体码(Physical ID),实体码会随着每次总线重新设定而 变化。
延续上述IEEE1394标准,在本发明的宽线总线,每一个宽线设备使用多个16位 的节点码,每一节点码提供给连接于该宽线设备的每一个IEEE1394传输线使用。虽然有 多个IEEE1394传输线连接在宽线设备上,但仅有单一的内部48位地址。每一个1394传 输线(相等于每一个复数的节点码)被视为该内部地址空间的“进入点”(entrypoint)。 宽线软件设备驱动器(widewire software device drivers)必须对每一个宽线设备维护一个 1394节点码更新表(up-to-date list of all its 1394 Node IDs)。此将使用为宽线设备的“实 体标的”(physically target)。当一个非同步封包必须寄送到该设备时,某一传输线将被 选择,适当的1394节点码将被使用。
因此,图9-1显示一个宽线编址空间策略(widewire address space scheme)。 因为连接于宽线设备的传输线数目并非为固定,而是可根据需要而变动,因此图9-1将会 有一个可变的地址长度,此乃不意欲的情况。因此,图9-2显示另一个宽线编址空间策 略。该模式提供一个固定的64位编址空间。传输线号码选择16位宽,将与1394的16 位节点码互相对应。
因此,宽线驱动器(widewire driver)将指定一个不同的1394总线码给每一个传输 线,例如,第一个传输线为总线码BusID = 1,第二个传输线为BusID = 2等。如有一 个宽线总线有一个节点码,其中的总线码为1而实体码为7,总线码为2而实体码为5, 在如图9-2所示的宽线编址空间策略下,将有类似丨BusID = 1,PhyID = 7}以及{BusID =2,PhyID = 5}的节点码。
因节点码包括10位的总线码(BusID)以及6位的实体码(PhyID)两个部分,因 此对于一个{BusID = 1,PhyID = 7},其传输线码(LineID)将为((1 << 6) |7) = 26+7 =71 = 0x47,而对{BusID = 2,PhyID = 5},其 LineID 将为( << 6) |5) = 27+5 = 133 = 0x85。
如第一个传输线的地址{BusID= 1,PhyID = 7,Offset = 0xFFFFF0000400}, 则其64位宽线地址为{LinelD = 0x47,Offset = 0xFFFFF0000400}。如第二条传输线的地址{BusID = 2,PhyID = 5,Offset = 0xFFFFF0000400},则其 64 位宽线地址则为 {LineID = 0x85, Offset = 0xFFFFF0000400}。两宽线地址{LinelD = 0x47,Offset = 0xFFFFF0000400}以及{LinelD = 0x85,Offset = 0xFFFFF0000400}的标的为相同宽线设备。换句话说,多个传输线码(LineID)可以对应(map)到相同的宽线设备。
“封包同步化”(packet synchronization)是用来建立寄送端(sender)以及接收端 (receiver)之间的数据一致性(consistency)。不论是同步交通或是非同步交通皆必须考虑 封包同步化。在本发明的宽线总线中,封包在整个传输线的传输过程中维持其原有的型 态,并未切割为小区块,然后再组合。因此,本发明在封包同步化,寄送1394封包的寄 送端考虑整个总线的架构(bustopology)以及速度图(speedmap),并且在较佳正确的速度 下传输适当大小的封包,致使封包可以顺利到达其目的地(destination)。也就是说,封包 可以在整个总线上到目的地止,重复而被传送。除此之外,并无须其它工作。
在宽线总线上的同步交通有与1394的同步交通的相似性。一宽线接收端必须 事先知悉的影像格式信息,广义上至少包括同步封包的信道号码、封包大小、影像尺 寸(image dimension)、像素编码(pixel encoding)、封包的传输顺序(packet transmission order)等。除此之外,在本发明的宽线总线,宽线接收端还必须知悉在每一条传输线上 的封包是属于影像中哪些区块(pieces)。
如此一来,宽线软件应用了解封包在某一特定传输线上的顺序性,亦了解该封 包是属于影像的何部分,其将指示宽线设备的驱动器(widewire device driver)建构适当的 直接存储体存取器(DMAengines),将直接将所接收的同步封包直接存入存储体适当的位 置。最后,每一个传输线上的直接存储体存取器将由宽线驱动器建构,因此最后的影像 将被重新建立(reconstructed)。
对于非同步交通,以下为一寄送端的简单算法(algorithm),其并未考虑传送错 误(transmission errors)或者接收错误(reception errors),但该算法仍然说明非同步传输是 以寄送端以及接收端之间的共同(共享shared)协议来操作
1.当需要寄送一新的档案(new file)时,与标的节点(target node)对每一个传输 线协议(i^gotiate) —个新的“基准偏移”(base offset)(在48-bit内部地址空间的偏移), 将该偏移称为BASEL。其中BASE的下标代表传输线(Line)。
2.决定在所有传输线上可传输到达标的的最大封包尺寸(maximum packet size), 并且数据流(stream)裁切成K个等尺寸的写入交易封包(write transaction packets)(最后一个封包可能未满足该尺寸)。
3.对每一个从0至K-I的封包中的编号N封包
a.选择传输线X寄送标号N的封包;以及
b.以写入交易(writetransaction)的方式,将标号N封包寄送到该标的节点(target node),其偏移(offset)地址为 BASEL+N。
4.当完成,传送一零字节的写入交易(zero byte write transaction)至每一个传输线 于BASEL的地址。
在接收端的程序为上述传送程序的反向。因为所述的封包为相同的尺寸S,因此 第N个封包应该被存放在接收缓存器(receive buffer)于NxS (N乘上S)的偏移(offset), 而无论其由哪一个传输线接收。如上步骤3b,寄送第N个封包至偏移BASEL+N。因此,当一个封包由BASEL+N处接收,接收端(receiver)备份(copy)该封包数据到NxS(N 乘上S)偏移处。当所有N个封包皆已接收,数据可以在接收缓存器中重新建构。同步传输和非同步传输的封包同步化看上去并无太大的差异性,主要是在直接 存储体存取器DMA使用上的不同。对于进入的非同步交易要求(incoming asynchronous transaction requests),仅有一个共享的(shared)直接存储体存取器DMA,但是对于每一个 传输线的OHCI芯片所欲接收的同步通道,则必须有一个对应配合(dedicated)的直接存 储体存取器DMA来接收特定通道的同步封包。请参见图4-1,对于每一个同步通道,皆有一个特定所属的直接存储体存取器 DMA。也就是说,同步直接存储体存取器DMA将事先知道下一个欲接收的封包所属的 通道。因此,并不需要实际先接收该封包,然后视其所属的通道,再将其备份(copy)到 标的缓冲器(targetbuffer),可以在标的缓冲器(targetbuffer)直接接收。相反地,对于进 入的非同步交易要求(asynchronous transaction request),OHCI芯片并不知悉下一个封包 所属者。可能从在任何偏移的任何节点而来。因此必须实际接收非同步封包到某个中间 缓冲器(intermediate buffer),检查之后,再备份到标的缓冲器(target buffer)。因本发明的宽线总线在多个传输线上进行,因此必须有一选择传输线来传送一 非同步封包的算法,使负载得以平衡。最简单的方式是上述的循环(round robin)算法,其是在传输非同步封包时,以 第一个传输线到最后一个传输线的循环选择方式。平均值下,循环法可获得不错的负载 平衡结果,而且建构上也简单。但是在本发明,因为在某些特殊情况,有可能宽线设备 并未连结所有的传输线,因此可能无法随时最佳化。在本发明所提出的算法,是和每一个传输线的目前负载相关。该算法涉及的负 载考虑有以下的因素1.在传输线上队列(queue)的非同步封包数量每一个封包在被传送之前须要赢 得仲裁(arbitration);2.在传输线上队列的非同步封包大小(size)越大的封包需要较长的传输时 间;3.在传输线上队列,等待传输到同一个节点的封包数量。每一个封包在接收时 会消耗一些存储体的空间(memorybuffer),因此需要将负载平均化;以及4.每一个传输线的同步宽带(isochronous bandwidth)。对于同步交通的负载平衡,必须要考虑的是将每一个传输线所配置(allocated) 的同步宽带(isochronous bandwidth)j平均化。首先的目标是使每一个宽线设备能够在所 有其所连接的传输线上以均勻的方式(uniform manner)传输,因此这些传输线能够平均 化负载(evenly loaded)。再度强调的是,某些宽线设备(widewire devices)有可能仅连接 或者仅传输在某些传输线上,因此可能无法获得平均负载分布。第二个目标,必须考虑 最大的同步封包尺寸(maximum isochronous packet size)以及可利用的同步频宽(available isochronous bandwidth)。因此,利用本发明的IEEE1394平行并列式总线,数据的传输由“位传 输”(bit-level)提升到“封包传输”(packet-level),不同的数据封包(data packet)在同
一时间下由不同的传输线传送。
本发明的封包为单一封包完整传输,途中并未进行任何数据切割(split)。单一 封包由不同传输线传送,之后于接收端组合(reassemble)。
本发明为减少宽线设备在存储体总线(in-memory tases)中的传输负载尖峰 (traffic load peaks),将多个传输线的周期开始封包在时间轴上彼此平移(time-shifted), 故意非同步化(on-purpose desynchronized)。结果因传输线之间同步周期(密集传输的时 间区域)有较少的时间重叠区域,因此减少不同传输线之间闲置时间的重叠区域,避免 负载尖峰传输。这样的平移对宽线总线上的传输设备或是接收设备皆有利,因此可以使 宽线设备的存储体汇流的负载平均化(more evenly balanced load patterns)。
本发明所揭露的实施例仅用于说明发明的特征与精神,并非用以限定发明本 身。本发明的范围应以所提出的权利要求书为准,并参酌说明书给予最宽的解释。任何 被权利要求书涵盖的相等性改变皆应属于本发明保护范围内。
权利要求
1.一种IEEE1394平行并列式总线,其特征在于,包含a.多个IEEE1394总线(2),作为多个传输线;b.多个宽线设备(1);每一所述宽线设备(1)连接于至少二个所述IEEE1394总线 (2),并且利用任一连接于所述宽线设备(1)的IEEE1394总线(2)传输/接收一封包 (4),在其它连接的传输线可能在传输/接收其它封包(4)的情况下;每一个封包(4)维 持原封包(4)状态而整体在所述传输线上传送/接收,封包(4)并未加以切割而重新组 合,并与其它传输线独立;所述多个IEEE1394总线⑵以及连接于其上的多个宽线设备⑴形成一宽线总线。
2.根据权利要求1所述的IEEE1394平行并列式总线,其特征在于,还选定其中一宽 线设备(1)作为一根节点(101);所述根节点(101)负责周期性产生时间参考信号,传送 至所有连接于宽线总线O)的宽线设备(1)。
3.根据权利要求2所述的IEEE1394平行并列式总线,其特征在于,根据每一所述时 间参考信号,提示所述根节点(101)可传送一周期开始封包(53)至所有连接于所述宽线 总线O)的宽线设备(1)。
4.根据权利要求3所述的IEEE1394平行并列式总线,其特征在于,每一所述周期开 始封包(5 提示在每一个传输线的一 IEEE1394周期的开始;每一所述IEEE1394周期分 为同步周期(51)以及非同步周期(52)。
5.根据权利要求4所述的IEEE1394平行并列式总线,其特征在于,所述同步周期 (51)和所述非同步周期(52)由一子动作指示(54)分隔。
6.根据权利要求4所述的IEEE1394平行并列式总线,其特征在于,还将传送到每一 传输线上的周期开始封包(53)彼此相对地在时间轴上平移,以使多个传输线的同步周期 (51)的时间重叠区域减少,从而避免负载尖峰传输并且减少传输/接收的错误。
7.根据权利要求4所述的IEEE1394平行并列式总线,其特征在于,所传输的封包(4) 可为同步封包(56)或者非同步封包(57);在每一所述IEEE1394周期内,同步封包(56) 较非同步封包(57)优先传送;同步封包(56)须在所述同步周期(51)内传送,而非同步 封包(57)在同步周期(51)以外传送。
8.根据权利要求7所述的IEEE1394平行并列式总线,其特征在于,每一所述同步封 包(56)和每一所述非同步封包(57)皆包含一标头(30)以及一本体(31)。
9.根据权利要求8所述的IEEE1394平行并列式总线,其特征在于,在每一传输线上 的宽线设备(1)是以一同步封包(56)于标头(30)的一信道号码而确认为所述宽线设备 (1)所须接收而接收所述同步封包(56);在同一传输线上的多个宽线设备(1)可接收同一 信道号码的同步封包(56)。
10.根据权利要求9所述的IEEE1394平行并列式总线,其特征在于,在每一所述同步 周期(51)内,可传送多个同步封包(56),同步封包(56)通过赢得仲裁而开始传送;在 每一所述同步周期(51)内,对于每一信道号码,仅有一个具有所述信道号码的同步封包 (56)被传送。
11.根据权利要求8所述的IEEE1394平行并列式总线,其特征在于,一宽线设备(1) 在接收一非同步封包(57)时,是以所述非同步封包(57)于标头(30)的一标的实体码确 认为所述宽线设备(1)所属而接收所述非同步封包(57)。
12.根据权利要求11所述的IEEE1394平行并列式总线,其特征在于,在每一所述非 同步周期(5 内,可传送多个非同步封包(57),非同步封包(57)通过赢得仲裁而开始传 送;所述非同步封包(57)被一宽线设备(1)的接收端(3 所接收后,所述接收端(33) 可寄出一收讫封包(58)至一宽线设备(1)的寄送端(3 ,从而确认收讫。
13.根据权利要求8所述的IEEE1394平行并列式总线,其特征在于,所述同步封包 (56)选择传输线的顺序为循环运算法。
14.根据权利要求8所述的IEEE1394平行并列式总线,其特征在于,所述同步封包 (56)选择传输线的顺序为区块分割法。
15.根据权利要求1所述的IEEE1394平行并列式总线,其特征在于,以一64位宽线 编址空间指定给连接一宽线设备(1)的每一传输线;其中所述64位中较高的10位为一总 线码,接下来的6位为一实体码,总线码和实体码形成一传输线码,而其它的48位为一 内部地址,用以指出对应所述传输线码的所述宽线设备(1)。
16.根据权利要求10所述的IEEE1394平行并列式总线,其特征在于,所述宽线设备 (1)将每一传输线上所接收的同步封包(56)直接存入一存储体适当位置,建构存储体的 数据,传输的数据将被重新建立。
17.根据权利要求12所述的IEEE1394平行并列式总线,其特征在于,在寄送非同步 封包(57)时,是以所述寄送端(3 和所述接收端(3 的共同协议来传输,在所述接收 端(3 的程序为所述寄送端(3 的传输程序的反向;所述接收端(3 备份所接收的非 同步封包(57)至一接收缓存器的一适当偏移位置;当所有非同步封包(57)接收后,数据 可在所述接收端(3 的接收缓存器中重新建立。
全文摘要
本发明公开了一种IEEE1394平行并列式总线,应用多个IEEE1394总线作为本发明的传输线,而形成一个宽线总线。宽线设备连接于宽线总线,并且利用宽线总线彼此沟通。影像以及/或者数据根据IEEE1394原则以封包的型式加以传输,每一个封包在其中一个IEEE1394传输线上独立传输。传输的封包为IEEE1394标准封包,可分成同步或者非同步封包传输,每一个封包整体地在任一传输线上传输/接收,在其它封包也可能在其它传输线上传输/接收时。宽线设备根据封包标头的信息接收该封包,且可同时在多个传输线上传输/接收封包。
文档编号H04L12/40GK102025578SQ200910176140
公开日2011年4月20日 申请日期2009年9月22日 优先权日2009年9月22日
发明者史德衡 申请人:竭虑科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1