用于端口倍增器增强的方法、装置及系统的制作方法

文档序号:6593122阅读:223来源:国知局
专利名称:用于端口倍增器增强的方法、装置及系统的制作方法
技术领域
本发明的多个实施方案总体上涉及网络的领域,并且更具体地涉及用于端口倍增 器增强的一种方法、装置及系统。
背景技术
一个网络可以包括多种个人电子媒体装置的一种互连。为了共享数据、提高便利 性并且更为充分地利用每一个元件,可以将不同的媒体装置连接在一起。然而,传统机制妨 碍了用户享用不同元件和部件(如对端口倍增器)的潜在效益,这是通过限制这类端口倍 增器的高级性能和操作。例如,传统的机制不允许端口倍增器进行级联,从而限制了一个标 准的端口倍增器只具有一个单一层级的连接装置。

图1展示了一种传统机制,它不允许端 口倍增器104进行级联,因此只允许装置106、108构成的一个单级11 6通过端口倍增器104 的两个装置端口 112、114连接至端口倍增器104上。端口倍增器104通过主机端口 110连 接至一台主机102。换言之,所示的现有技术不允许端口倍增器104级联进入那些可与端口 倍增器104联接的附加装置中。该1 2端口倍增器104受限于不超过两个装置106、108 的单一级116,因此这就限制了端口倍增器104以及所展示的使用该端口倍增器104的网络 100的高级性能和优点。图1的端口倍增器104可以包括串行高级技术附件(“SATA”或“串行ΑΤΑ”)端口 倍增器,它是一种兼容SATA-IO标准的端口倍增器。SATA 1. 0规范及后期的SATA II端口 倍增器规范可以在www. serialata. org上获得。串行ATA国际组织2005年10月27日颁 布的串行ATA修订版2. 5 (可在mm. serialata. org上获得)是早期SATA规范的修订版, 并且包括了关于SATA端口倍增器的信息,例如在第十六章。因为它不允许进行级联,最终 结果是用户无法获得能够提供高端性能和优势的易于使用并且低成本的端口倍增器。发明 概述在此提供了用于协助端口倍增器增强的一种方法、装置和系统。在一个实施方案中,一种装置包括一个端口倍增器,该端口倍增器被配置为将一 个网络主机与多个端口倍增器相连接。该端口倍增器包括一个顶层端口倍增器以建立和保 持与这些端口倍增器中每一个的通信从而与该网络主机进行通信,并且这些端口倍增器具 有中间层端口倍增器和/或底层端口倍增器。此外,多个网络装置与这些端口倍增器、该端 口倍增器及该网络主机进行通信。在一个实施方案中,一种系统包括一个端口倍增的网络,该端口倍增的网络被配 置为将一个网络主机联接至多个网络装置上。该端口倍增的网络包括一个端口倍增器,该 端口倍增器被配置为将该网络主机与多个端口倍增器相联接。该端口倍增器包括一个顶层 端口倍增器以建立和保持与这些端口倍增器中每一个的通信从而与该网络主机进行通信, 这些端口倍增器具有一个或多个中间层端口倍增器以及底层端口倍增器,并且多个网络装 置与该多个些端口倍增器进行通信并进一步与该端口倍增器以及该网络主机进行通信。在一个实施方案中,一种方法包括通过一个端口倍增器将一个网络主机与多个端 口倍增器相联接。该端口倍增器包括一个顶层端口倍增器以建立和保持与这些端口倍增器 中每一个的通信从而与该网络主机进行通信,该多个端口倍增器具有一个或多个中间层端口倍增器以及底层端口倍增器。在多个网络装置与该多个端口倍增器、该端口倍增器、以及 该网络主机之间建立通信。附图简要说明通过举例而非通过限制展示了本发明的多个实施方案,在附图的这些图例中相同 的参考号代表相似的元件图1展示了使用一个端口倍增器的一种传统机制;
图2展示了一种网络的实施方案,该网络采用了一种端口倍增器增强机制的实施 方案;图3展示了一种端口倍增器增强机制的实施方案;图4展示了一种网络的实施方案,该网络采用了一种端口倍增器增强机制的实施 方案;图5A至5B展示了一种网络的多个实施方案,该网络采用了一种端口倍增器增强 机制的实施方案;图6展示了一种网络实施方案,该网络采用一种端口倍增器增强机制的实施方 案;图7展示了一种端口倍增器的实施方案;图8展示了进行端口倍增器增强的一种过程的实施方案;图9展示了在通电后设定路由图寄存器的一种过程的实施方案;图IOA展示了一种网络的实施方案,该网络采用了一种端口倍增器增强机制以及 一种设定路由图寄存器的机制;图IOB展示了用于端口倍增器的一种路由图寄存器的实施方案;图IOC展示了用于一种装置的装置端口的一种路由图寄存器的实施方案;以及图IlA至IlF展示了用于设定路由图寄存器的一个处理序列的实施方案。详细说 明本发明的多个实施方案总体上是针对端口倍增器的增强。如在此使用的,“网络”或“通信网络”是指在多个装置之间递送数字媒体内容(包 括音乐、音频/视频、游戏、相片、以及其他内容)的一种互联的网络。例如,一个端口倍增 器网络主要是用于通过一个或多个端口倍增器递送SATA、帧信息结构(FIS)等;尽管所递 送的SATA及FIS可以包括数字媒体的形式。娱乐网络可包括个人娱乐网络,如家庭中的网 络、商务环境中的网络、或多个装置和/或多个部件的任何其他网络。在一个网络中,某些 网络装置可以作为媒体内容的来源,如数字电视调谐器、有线机顶盒、视频存储服务器、以 及其他的来源装置。其他装置可以显示或使用媒体内容,如数字电视、家庭剧院系统、音频 系统、游戏系统、以及其他装置。此外,某些装置(如视频与音频存储服务器)可以是旨在 用于存储或传输媒体内容。某些装置可执行多项媒体功能。在一些实施方案中,这些网络 装置可以同处在一个单一局域网上。在其他实施方案中,这些网络装置可以跨越多个网络 区段,如通过在多个局域网之间隧道连通。这种娱乐网络可以包括多个数据编码和加密过 程。应当注意在以下示图并且贯穿本文件中,1 15的比例仅被用作是最大数量层级 (例如,网络装置和端口倍增器的个数)的一个实例,这些层级可通过主端口倍增器或顶层 端口倍增器链接至一个网络主机(例如,标准SATA主机)上,该主端口倍增器或顶层端口倍增器实际上是一种二端口的端口倍增器(例如,标准的1 2 SATA端口倍增器)。换言 之,在一个实施方案中,一个标准的1 2端口倍增器充当一个增强的1 15端口倍增器, 这样对它进行级联来接受任何数量的装置(例如15个装置以及15个端口倍增器),并使网 络主机误识别并认为该标准的1 2端口倍增器是一个具有15个端口(尽管在物理上它 有两个端口)的增强的1 15端口倍增器例如,利用这种技术,该端口倍增器的一个端口被用作一个常规装置端口以连接 到一个网络装置(例如,磁盘驱动器)上,而第二个端口被用作一个扩展端口来接收另一个 标准的1 2端口倍增器,以充当一个增强的1 15端口倍增器,并如此等等。可以设想, 该端口倍增器的两个端口都可以用作扩展端口,在这种情况中,可以在它上面连接两个附 加的端口倍增器。与此相反,在级联链中任何端口倍增器的两个端口都可以用作标准装置 端口以接收最多两个网络装置,特别是在级联即将结束时。可以设想,在一些实施方案中, 可以对一个端口倍增器进行增强,使其表现出具有多个端口,并且端口的数量并不限于15, 而使主机误识别该端口倍增器具有所述数量的端口。贯穿本文件,顶层端口倍增器的级联 层级的最大数量或者多个装置与附加端口倍增器(可以将它们级联为与顶层端口倍增器 相连接)的数量是15;然而,可以设想,15个层级或15个端口倍增器或15个装置(例如, 增强的1 15端口倍增器)仅仅是为了简洁与清晰的目的使用的一个实例,而最大的数量 可能是任何数值(例如,SATA协议的最大数量是15),而最小数量可以是零。端口倍增器是指一种基于硅的装置,该装置允许它的端口与多个倍增器装置(例 如,硬盘驱动器)进行通信。这些端口包括串行ATA端口。端口倍增器可置于母板的底板 上,并且对包括SATA驱动器的装置而言是透明的。在一个实施方案中,端口倍增器允许对 存储系统提供成本效益好的和扩展的驱动器扩充能力,这些系统是相对简单的机制,允许 一个单一的活动主机与多个装置通信。此外,多个端口倍增器允许在个人电脑(PC)或带 有多个装置的服务器的内部和外部均提供简单的、成本效益好的存储器可扩充能力,而且 无需额外的控制器来扩展存储器。与其他技术例如通用串行卡(USB)硬盘驱动器(例如, USB 1. 1,1.2.0等等)、火线技术等相比,无额外控制器可以显著地提升外部储存器中的性 能。SATA主机包括一个计算机系统主机,该主机通过一个端口倍增器与SATA硬驱动器进行
通{曰。图2展示了一种网络200的实施方案,该网络采用了一种端口倍增器增强机制的 实施方案。在一个实施方案中,采用了标准的1 2端口倍增器204(例如,标准SATA端口 倍增器)与主机202 (例如,SATA主机)进行通信,该通信利用一种标准的通信信号(例如, 标准SATA通信信号)。在一个实施方案中,利用一种新的端口增强协议,将标准端口倍增器 204(顶层端口倍增器)增强为一种增强型1 15端口倍增器。换言之,虽然端口倍增器 204仅具有两个物理端口并且在物理上保持不变,但端口倍增器204在逻辑上被增强了,这 样它充当了一个15端口的增强型端口倍增器,并且被级联成为多个层级222、224。在一个 实施方案中,随着利用端口增强协议端口倍增器204的增强,使得主机识别端口倍增器204 具有15个端口(此时它实际上仅有两个端口)。顶层端口倍增器204通过基于主机的主机端口 212和基于端口倍增器的主机端口 226与主机202相联接。端口倍增器204的第一装置端口 214被用作连接网络装置208的 装置端口。端口倍增器204的第二装置端口被用作一个扩充端口 218,以便级联连接另一个端口倍增器206 (通过它的主机端口 228)。与顶层端口倍增器204类似,第二端口倍增器 206也包括一个标准的1 2端口倍增器,但经过增强它像一个增强型的1 15端口倍增 器一样起作用,以 用于通过其扩充端口 220与装置端口 216进行进一步的级联。第二装置 210与连接到第二端口倍增器206的第三端口倍增器(未展示)形成一个第二层级224的 级联,而第二端口倍增器206与第一装置208形成一个第一层级222的级联。在一个实施 方案中,在任意端口倍增器204、206(以及其他未展示的)都不具有多于两个物理端口的情 况下,这种形式的级联可以持续15个层级,而无需在所示的单一主机202上添加任何主机。 在后续的图示中展示了端口倍增器增强网络200的多种实际的实施方式(例如,菊花链实 施方式、金字塔或中枢式实施方式等)。图3展示了 一种端口倍增器增强机制300的实施方案。在一个实施方案中,端口倍 增器增强机制300使用具有端口倍增器增强协议(增强协议)的端口倍增器增强模块(增 强模块)306将具有两个物理端口 308的标准1 2端口倍增器302增强为一种具有相同 的两个物理端口 308的增强型1 15的端口倍增器304。然而,增强型1 15端口倍增器 能够在几个层级上进行级联以接收多达15个的附加端口倍增器与网络装置。网络装置包 括ATA数据包接口(ATAPI)装置、ATA装置、等等。在一个实施方案中,新的增强模块306的新增强协议包括所需要素,范围从通电 计数序列、热插拔支持、基于控制的或基于FIS的递送机制等,以便建立标准通信以及(按 照可适用的情况)在主机、端口倍增器及网络装置之间增强的通信。在一个实施方案中,将 磁盘簇(JBOD)修改为JBOD增强型(JBOD-E)以构成新增强型模块306的新增强协议,以用 于增强多个端口倍增器,例如端口倍增器302。控制器将每一个驱动器视为一个独立的磁 盘,因此每一个驱动器是一个独立的逻辑驱动器。JBOD并不提供数据冗余。此外,使用增强 型端口倍增器304的网络包括一个基于JBOD-E或兼容JBOD-E的网络,而该网络的某些标 准元件和部件是兼容JBOD的,但是能够与其他兼容JBOD-E的元件与组件一起工作。JBOD 是指未按照独立(或廉价的)冗余磁盘阵列(RAID)配置的硬盘。RAID是指提高性能及容 错的一种磁盘驱动器的子系统。换言之,RAID是指磁盘驱动器的一个类别,它结合使用多 个驱动器以提高性能和容错。RAID是指一种技术,这种技术支持在不同的配置中整合使用 两个或更多的硬盘驱动器,其目的是获得更好的性能、整个冗余过程中的稳定性、和/或整 个聚集过程中的更大磁盘容量。图4展示了一种网络400的实施方案,该网络采用了一种端口倍增器增强机制的 实施方案。在一个实施方案中,网络400展示了端口倍增器404的一种菊花链方式的级联 增强。在所示的实施方案中,对端口倍增器404进行增强以形成级联,从而增加另一个端口 倍增器406和一个装置434。类似地,对端口倍增器406也进行增强以形成级联,从而增加 另一个端口倍增器408和另一个装置436。这种级联过程一直持续到将端口倍增器432和 装置462增加到链上为止。可以设想,多于或少于这里所示的15个装置434-462的任何数 量的装置可以从该端口倍增器404级联出来。在一个实施方案中,端口倍增器404被连接至主机402上。在主机402和顶层增 强型端口倍增器404之间的通信信号被视为一种标准SATA信号464。然而,顶层增强型端 口倍增器404之后的通信信号被视为增强的SATA信号466、468。换言之,标准SATA信号 464是保持在顶层增强型端口倍增器404与主机402之间的,以符合SATA规范并保持装置402与404之间的标准通信。然而,使主机402误认为顶层增强型端口倍增器404具有15 个端口,这允许顶层增强型端口倍增器404利用增强的SATA信号466、468进行级联而具有 附加的增强型端口倍增器406-432以及装置434-462。 每个增强型端口倍增器404-432被视为一个节点,而端口倍增器404被视为与 SATA主机402相连接的顶层端口倍增器,并且与最后一个装置462相连接的最后一个端口 倍增器432被视为底层节点。此外,与第三方端口倍增器(未展示)相连接的端口倍增器 也可被视为一个底层节点,因为它被认为是最后一个基于JBOD或JBOD-E的SATA端口倍增 器;尽管如此,可设想的是第三方端口倍增器可以兼容JB0D。此外,每个节点被视为一个父 和/或子节点。附接于当前节点的主机端口上的节点被视为父,而附接于当前节点的装置 端口上的节点被视为子。例如,端口倍增器408对于端口倍增器410而言充当一个父节点, 而其对端口倍增器406而言则充当一个子节点。因此,端口倍增器408(如同端口倍增器 406,410-430 一样)被视为中间节点,其中每个节点408-430既充当父节点又充当子节点。 利用这种技术,顶层端口倍增器404对于端口倍增器406而言仅充当父节点,因为它没有父 节点。与此相反,底层端口倍增器432对于端口倍增器430而言仅充当子节点,因为它没有 子节点。在一个实施方案中,网络400是采用JBOD-E协议的JBOD-E标准网络;然而,可以 设想并采用其他形式的协议。就数据路由选择而言,在每个节点404-432处使用路由图(RouteMap)寄存器来协 助除其他任务之外在节点404至432之间的通信。例如,每个节点404-432可以管理一组寄 存器以在这种JBOD-E标准网络600中的这些端口进行寻址。端口是指一个连接点,它协助 将一个节点与另一节点相连接。例如,这里所示的每个SATA端口倍增器404-432各具有两 个端口,而一个第三方端口倍增器可以具有不同数量的端口。每个端口倍增器404-432的 两个端口可以包括用于连接一个装置(例如,装置434)的装置端口(例如,装置端口 470) 以及用于连接另一个端口倍增器(例如,端口倍增器406)的主机端口 468,如同端口倍增器 404的情况。在一个实施方案中,底层节点432没有任何依赖性地将其RouteMap寄存器更新。 如果要求底层节点432向RouteMap寄存器报告,则底层节点432向它的父节点(例如,上 层节点)430提供RouteMap寄存器的内容。此时父节点430具有一个有效的RouteMap寄 存器并且可以相应地对其父节点428作出响应。重复这个过程,最终顶层节点404能够读 取其子节点406的RouteMap寄存器。一旦顶层节点404读取了其子节点406的RouteMap 寄存器,顶层节点404于是将一个端口倍增器端口(PMP)分配至它的子节点406,然后子节 点406将一个PMP分配给它的子节点408,如此持续下去,直到最终底层节点432从其父节 点430接收一个PMP并且所有节点404-432上的RouteMap寄存器都被设定。为勾画出这种JBOD-E网络400的拓扑图,主机402访问每一个节点404-432以读 取它们对应的RouteMap寄存器。然而,因为网络400中每一个节点404-432可能不具有 它自己的标识号,因此要从主机402对独立节点404-432中的每一个进行寻址可能并不容 易。为了克服这个障碍,引入令牌技术的一种实施方案,并且来自令牌所属的节点404-432 的RouteMap寄存器要根据命令(例如,读取端口倍增器命令)被返回。可以通过更新相 应的令牌信息寄存器(例如,Tokenlnfo寄存器)而使一个令牌向前或向后移动。这种技 术/过程的一些特征可以包括(1)使得一个单一令牌在整个JBOD-E网络400中是可供使用的;⑵默认的情况下,JBOD-E网络400的每一个节点404-432中的向前(例如,FWARD) 与向后(例如,BWARD)被设定为零;(3)如果一个特定节点(例如节点406)的FWARD全为 零,则该节点406具有一个令牌;(4)为了访问连接到一个上层节点(例如,顶层端口倍增 器404)的下层节点端口倍增器(例如节点406)的RouteMap寄存器,主机402将FWARD的 0位更新为1。然后,该令牌属于连接到上层节点端口倍增器404的下层节点端口倍增器 406。此外,当主机402发出命令来读取端口倍增器(例如,读端口倍增器命令)以获得一 个RouteMap寄存器时,从与上层节点端口倍增器404相联接的下层节点端口倍增器406接 收到响应。为了到达所有节点404-432,通过重复此过程将RouteMap寄存器向前推进,例如 在不同的节点404至432之间推进RouteMap寄存器,直到它从底层节点432到达主机402 为止。为了向后移动令牌,主机402向Tokenlnfo寄存器的BWARD位写入路由图。为了简 洁清楚的目的,展示了一个简化的网络400 ;然而,可以设想,在一个网络中可以采用任何 数量的充当增强型端口倍增器的端口倍增器、装置、和/或第三方端口倍增器。图5A展示了一个网络500的实施方案,该网络采用了一种端口倍增器增强机制 的实施方案。所示的网络500提供了端口倍增器504的一种中枢式或金字塔式的级联增 强。与图4中的菊花链联网机制400中15个层级的端口倍增器和装置不同,在所示的实施 方案中,存在四个层级572-578的端口倍增器504-532及一个单一层580的多个网络装置 534-560。这些端口倍增器532中的最 后一个端口 570保留不使用或未分配,因为例如已经 达到了十五个装置534-562的最大值。再一次设想,可以分配任何数量的装置(包括多于 或少于十五个装置);然而在本文件中,出于简洁、清晰和一致的目的,以最大数量为十五 个装置为例。在一个实施方案中,端口倍增器504包括一个标准1 2 SATA端口倍增器,这使 主机502认为该标准1 2 SATA端口倍增器是一个增强型1 15的SATA端口倍增器,它 被级联而分配了多达15个装置534-562。这是通过以下方式进行的,首先利用一个主机端 口将顶层端口倍增器504连接至主机502,并利用一个标准SATA通信信号582进行通信。 然后利用顶层倍增器504的两个端口将一对端口倍增器506、508与顶层倍增器504连接, 并且利用增强型SATA通信信号584进行通信。类似地,将其余的端口倍增器510-532与装 置534-562连接,并利用增强型SATA通信信号使彼此互相通信。尽管所示的实施方案采用了 15个端口倍增器504-532与15个网络装置534-562, 可以设想,可以使用少于或多于15的任何数量的端口倍增器或装置。例如,图5B展示了这 样一种网络590,该网络采用了一种端口倍增器增强机制的实施方案。在图5B所示的实施 方案中,端口倍增器592与主机591进行通信。然而,与图5A的中枢式联网机制500不同, 在图5B所示的实施方案中仅加入了两个端口倍增器593、594来增强顶层端口倍增器592。 这两个附加的端口倍增器593、594被进一步增强,通过两个端口倍增器593、594的每一个 利用其两个端口而采用了四个网络装置595-598。可以设想,可以对这种中枢式联网机制590作出不同改变,并且它仍可以形成并 实施。例如,不用另一个端口倍增器593,可以使用另一个网络装置利用其第二(装置)端 口与顶层端口倍增器592进行通信,而它的第一(主机)端口由端口倍增器594使用。如同 其他图例一样,SATA主机591与顶层端口倍增器592之间的通信信号使用一种标准的SATA 通信信号586,而其余的这些端口倍增器593、594和装置595-598则利用一种增强型SATA通信信号588进行通信。在一个实施方案中,网络500、590是采用JBOD-E协议的JBOD-E 标准网络;然而,可以设想并采用其他形式的协议。图6展示了一种网络600的实施方案,该网络采用了端口倍增器增强机制的一个 实施方案。在所展示的实施方案中,网络600采用了包括第三方端口倍增器608、610的一 种中枢式级联形式,这些第三方端口倍增器遵守一种不同的规范和/或由不同的制造商生 产,并且使用增强型端口倍增器技术和协议的这两个端口倍增器608、610与其他两个标准 端口倍增器604、606共同使用。例如,这两个第三方端口倍增器608、610也许是与JBOD-E 协议不兼容的,并且它们也许不具有两个标准SATA端口(例如,端口倍增器608是1 3 的,具有三个端口,而端口倍增器610是1 4的,具有四个端口、等等),但是仍然利用增 强型端口倍增器机制, 根据一个实施方案,使得这两个第三方端口倍增器608、610与两个 1 2的SATA端口倍增器604、606 —起工作。在一个实施方案中,顶层端口倍增器604与主机602的主机端口相通信,并进一步 与兼容JBOD-E的SATA端口倍增器606和第三方端口倍增器610相通信。第三方端口倍增 器610具有四个端口并且与四个网络装置620-626相连接。端口倍增器606通过一个装置 端口与网络装置630相连接,并且进一步通过端口倍增器606的主机端口与一个第三方端 口倍增器608相连接。第三方端口倍增器608具有三个端口并且与三个网络装置614-616 相连接。如本文件中所述的其他级联网络机制一样,这个第三方中枢式级联网络600在主 机602与顶层端口机制604之间也采用标准SATA通信信号628,这样使得主机602误认为 顶层端口倍增器604是具有15个端口的增强型1 15端口倍增器。然而,在端口倍增器 604-610与网络装置612-626之间的通信信号是增强型SATA通信信号630。在一个实施方案中,在通电和/或热插拔事件过程中进行计数和编号;然而无论 哪种情况,SATA主机602可以不知道此计数过程。顶层端口倍增器604表现为如同是1 15 SATA端口倍增器,因此SATA主机602将顶层端口倍增器604视为或识别为1 15的SATA 端口倍增器。例如,JBOD-E标准支持符合SATA端口倍增器规范的第三方端口倍增器608、 610。当发出命令以访问第三方端口倍增器608、610时,第三方端口倍增器608和610便暴 露给它们对应的父级增强型端口倍增器606和604。例如,在通电过程中,当从主机602接收到“软件重置”命令时,顶层端口倍增器 604将软件重置命令发送至相连接的第三方节点610以及下一个(子)节点端口倍增器606 上,该端口倍增器对于向其发送命令的另一个第三方端口倍增器608而言充当了一个父节 点。这个过程一直持续到命令到达基于ATA/ATAPI的网络驱动器612-626。在将一个寄存 器FIS装置612-626发送至主机602之前,并非每一个SATA节点604、606、608、610都必须 等待后续软件重置命令的完成。如果软件重置命令的签名是一个端口倍增器604、606的签 名,那么读取节点604、606的型号、供货商身份(ID)或全球状态控制寄存器(GSCR)(例如 GSCR
),以确定节点604、606是否是JBOD-E可兼容的。如果节点604、606是JBOD-E可兼 容的,那么当前节点读取节点604、606的路由图(RouteMap)寄存器。此外,每个节点604、 606直到其路由图寄存器包括有效信息时才需要作出响应。在所示的实施方案中,顶层端口倍增器604对端口倍增器606和第三方端口倍增 器610而言充当一个父节点。顶层端口倍增器604用作一个顶层节点,因为在它之上没有 其他端口倍增器节点,但在网络600中,对于第三方端口倍增器610而言它也充当一个底层节点。类似地,端口倍增器606对顶层端口倍增器604而言充当一个子节点,而在网络600 中,对于第三方端口倍增器608它充当一个父节点。在网络600中端口倍增器606对于第 三方端 口倍增器608而言的确用作一个底层。相反,在没有父或上层节点的情况下,端口倍 增器604被视为一个顶层节点。图7展示了端口倍增器700的一个实施方案。所展示的端口倍增器700包括一 个标准SATA端口倍增器,该标准SATA端口倍增器能够作为增强型端口倍增器以便被用在 具有端口倍增器增强机制的网络中,如贯穿本文件所说明的。端口倍增器700包括两个标 准装置端口 706、708(例如,SATA装置端口)以对接两个网络装置。采用端口倍增器增强 机制的一个实施方案时,装置端口 706、708中的一个用作一个主机端口以便将端口倍增器 700连接至另一端口倍增器,而另一个装置端口仍可用作一个装置端口以便连接至一个装 置。在另一个实施方案中,两个装置端口 706、708都可以用作主机端口以连接至两个其他 的端口倍增器上。贯穿本文件对这种级联端口倍增器700的端口倍增器增强机制进行了描 述。端口倍增器700进一步包括一个主机端口 704 (例如,SATA主机端口),如果端口 倍增器700用作网络中的顶层节点端口倍增器,则这个主机端口被用于连接至一个网络主 机(例如SATA主机)上,或者如果端口倍增器700用作网络中的中间层或底层节点端口倍 增器,则这个主机端口被用于连接至一个父节点端口倍增器上。装置端口 706、708和主机 端口 704通过缓冲器710-714被连接至端口倍增器核芯702上。端口倍增器700进一步包括状态发光二极管(LED)驱动器716、内建自测(BIST) 及联合测试行动小组(JTAG)机制718、锁相环(PLL) 724、串行电可擦除可编程只读存储器 (EEPROM) 722、以及SATA外壳管理桥(SEMB) 720。LED是指一种半导体二极管,正如在普通 的LED电路中一样,当在p-n结正向偏置时它发出非相干的窄谱光。集成电路(IC)内的 BIST机制718是验证IC内部的全部或部分功能性的一种功能。例如,可以在高级的现场总 线系统中提供BIST机制718以验证其功能。JTAG 718是IEEE 1149. 1标准经常使用的名 称,该标准题为“标准测试访问端口及边界扫描体系结构”,它用于测试访问端口,这些端口 用于利用边界扫描来测试印刷电路板。PLL 724是指一种产生信号的电子控制系统,该信号包括相对于一个“参考”信号 的相位的一种固定关系。它是现代锁相环的前身。EEPROM是指用在计算机与其他装置中以 存储少量易失性数据(例如,校准表格或装置配置)的一种非易失性储存芯片。串行EEPROM 722通常运行在三个阶段0P码阶段、寻址阶段及数据阶段。OP码通常为输入至EEPROM装 置的串行输入针的前8位(或对于大多数内置集成电路间(I2C)装置是隐式的);接着是根 据装置的深度的8至24位的寻址,然后是读或写数据。SEMB 720在主控制器和伴随外壳管 理装置之间通过I2C总线传递带内外壳管理数据。图8展示了用于执行端口倍增器增强过程的一个实施方案。在处理块802中,识 别出一个主机(例如,SATA主机)和一个标准二端口端口倍增器(例如标准1 2 SATA端 口倍增器)。接着利用一个主机端口在处理块804中将主机连接至端口倍增器。主机和端 口倍增器之间的通信是通过包括标准通信信号(例如,标准SATA通信信号)的一个通信信 号来建立的。在一个实施方案中,在处理块806中,将具有新端口倍增器协议的新端口倍增 器增强机制引入到主机与端口倍增器中。利用该增强机制,在处理块808中使主机误认为标准二端口端口倍增器具有多于两个的端口(例如,15个端口)。一旦主机已经开始认可端口倍增器具有多于两个的端口,则该端口倍增器充当一 个顶层端口倍增器并在处理块810中级联成为与多个端口倍增器和网络装置连接。如在之 前图示中所述,通过在链上增加一个或多个端口倍增器与网络装置直到最大数量(例如, 15个装置与15个端口倍增器),可以完成不同方式的级联(例如,菊花链式、中枢式、第三 方中枢式等)。这种技术在之前的图示和本文件的其他地方作了进一步解释。图9展示了在通电后设定路由图寄存器过程的实施方案。在一个实施方案中,在 处理块902处进行通电,接着在处理块904处检查节点的身份。三种身份包括一个顶层节 点(它在处理块906中只能是一个父节点)、衣柜底层节点(它在处理块916中只能是一个 子节点)、或一个中间层节点(它在处理块926中可以既是父节点也是子节点)。如果节点 被识 别为顶层节点(例如,顶层端口倍增器),则在处理块908中顶层节点等待来自其子节 点(并不一定是底层节点)的RouteMap寄存器。在处理块910中,分配PMP。接着在处理 块912中,将更新的RouteMap寄存器发送至子节点,然后顶层节点在处理块914准备就绪。如果该节点是一个底层节点,则在处理块918中填写通道编号(CHNUM)。在处理块 920中,请求底层节点的父节点(并不一定是顶层节点)读取RouteMap寄存器。在处理块 922中,底层节点等待父节点写入RouteMap域,然后底层节点在处理块924中准备就绪。返回参看处理块926,如果该节点被识别为是一个中间层节点(例如,非顶层节点 或底层节点),则中间层节点在处理块928中等待来自其子节点的RouteMap寄存器。在处 理块930中,填写CHNUM。在处理块932中,请求中间层节点的父节点读取RouteMap寄存 器。然后在处理块934中,中间层节点等待父节点更新RouteMap域,并且在处理块936中 分配PMP。接着在处理块938中,父节点将更新的RouteMap寄存器发送至子节点。然后中 间层节点在处理块940中准备就绪。图IOA展示了一种网络1000的实施方案,该网络采用了一种端口倍增器增强的机 制及一种设定路由图寄存器的机制。在一个实施方案中,路由图(RouteMap)寄存器是在通 电后设定的,并且使其准备就绪从主机1002开始传送FIS。用于节点1004-1008 (例如,端 口倍增器1006)的RouteMap寄存器包括关于节点1006的路由图(RouteMap)的相关信息。 CHNUM_N0DE是指在节点1006下或与其直接通信的装置1020的数目,而R0UTEMAP_N0DE是 指与属于节点1006的PMP(例如,PMP5)相对应的一个位。用于装置1010-1018 (例如,第一 装置Dev0,1012)的RouteMap寄存器包括与网络1000中的第一装置DevO,1012的路由图 (RouteMap)相关的信息。在这种情况下,CHNUM_D0是指DevO端口下装置(例如装置1012) 的总数,而R0UTEMAP_D0是指与属于DevO端口的PMP (例如ΡΜΡ0)相对应的每个位。与其 他装置Devl-Dev4,1014-1020 (在某些情况下,可达15个装置,Devl-DevE)相关的寄存器 具有与第一装置DevO相同的信息。一旦更新了 RouteMap寄存器,接下来就可以对远程装置进行访问。为进行主机至 装置的数据传送,节点1006-1010从FIS头接收PMP号(例如PMP0-PMP5),查阅RouteMap 寄存器,并且确定哪一个装置端口传送FIS。在进行装置至主机的数据传送的情况中,底层 节点1106-1008 (例如,直接附接于装置1012-1020或第三方端口倍增器1010的节点)相 应地更新PMP域,并且非底层节点(例如,第三方端口倍增器1010)传送FIS而不作任何修 改。此外,在进行主机至装置的数据传送的情况中,如果目标PMP并不存在,则利用SATA规范中的SyncEscape机制终止FIS。如果访问是为了读取PSCR区段,并且目标PMP存在,则 利用PortNum获得路由信息。对于顶层节点1004而言,如果访问是为了读取PSCR区段,并 且目标PMP并不存在,则将预定的默认值返回主机1002。为了避免再次传输也无法解决的 冲突问题,JBOD-E中所有端口都能够接收完整的FIS。为了保证来自主机1002的主机端口 的FIS能够到达装置1012-1020的目的装置端口,在一个可能的总线冲突(例如,SATA规 范中的XRDY-XRDY冲突)的情况下,给予父节点较高的优先级,这样可以避免可能的总线冲 突,并且数据可以畅通地传输。 在一个实施方案中,只要这些第三方端口倍增器1010符合SATA端口倍增器规范, JBOD-E就支持作为网络1000的一部分的第三方端口倍增器1010。例如,节点1008发出一 串命令以访问第三方端口倍增器1010,并且将第三方端口倍增器1010的端口暴露给它的 父节点1004,该节点在本实例中是顶层端口倍增器1004。节点1008发出命令(例如,软 件重置命令)至PMP再到达第三方端口倍增器1010。节点1008读取GSCRW]以获得装置 1012-1016的身份,并确定第三方端口倍增器1010是否是JBOD-E可兼容的。节点1008接着 读取GSCR[2]以获得第三方端口倍增器1010的装置端口的数目。节点1008通过RouteMap 寄存器将装置端口的数目返回给父节点1004。节点1002维护一个表,该表将RouteMap信 息转换为第三方端口倍增器1010的实际PMP。此外,该表的格式可以是对于实现方式特有 的,并且不需要暴露给主机1002。图IOB展示了用于端口倍增器1004-1008的路由图寄存器1050的实施方案。所 展示的用于端口倍增器1004、1006、1008的路由图(RouteMap)寄存器1050的实施方案包 括用于节点1004、1006、1008的路由图相关信息,该路由图具有一个区段CHNUM_N0DE1052, 该区段包括在当前节点下的装置总数(例如,对于节点1006有一个装置1020),并且包括区 段R0UTEMAP_N0DE 1056,该区段包括与属于当前节点的PMP相对应的每一个位(例如,节点 1006的PMP5对应于装置1020)。寄存器1050进一步包括一个保留的区段1054以便包括 其他相关信息。图IOC展示了用于装置1012-1020的装置端口的路由图寄存器1060的实施方案。 所示的用于装置1012-1020的装置端口的路由图(RouteMap)寄存器1060的实施方案包 括用于装置端口的相关路由图信息,该路由图具有一个区段CHNUM_D0 1062,该区段包括 在一个具体装置端口下的装置总数,例如对于装置1012是D0,并且包括区段R0UTEMAP_D0 1066,该区段包括与属于该特定装置端口的PMP相对应的每一个位(例如,装置端口的PMPO 对应于第一装置D0,1012)。寄存器1060进一步包括一个保留区段1064以便包括其他相关 fn息ο图1IA至1IF展示了设定路由图寄存器的处理序列的实施方案。图1IA展示了端 口倍增器增强网络1100,该网络具有SATA主机1102和三个兼容JBOD-E的SATA端口倍增 器1104-1108,多个装置包括HDD驱动器1112-1120,其中驱动器1118、1120可以包括SATA 驱动器。其他三个装置1112至1116与第三方端口倍增器1110相连接。在所展示的实施 方案中,存在三个RouteMap寄存器,每一个寄存器对应于一个兼容JBOD-E的端口倍增器 1104-1108,这些端口倍增器将进行更新。图IlB展示了与端口倍增器节点1104、1106、1108相关联的RouteMap寄存器 1122、1124、1126。如图所示,RouteMap寄存器1122、1124、1126被设置为要被清零。图IlC展示了从底层节点1106、1108开始读取RouteMap寄存器1122、1128、1130。例如,当一个装 置端口 1154、1158 (例如,节点1106的装置端口 B 1154和节点1108的装置端口 B 1158) 被连接到一个单一装置1120、1118上时,用于对应的装置端口,DB,1154、1158的CHNUM数 1128、1130是1。类似地,当一个装置端口,DA,1152未连接到任何装置上时,用于该装置端 口,DB,1152的CHNUM数1128也是1。然而,如图所示,如果一个装置端口 1156被连接到 一个端口倍增器1110上,则用于装置端口,DA,1156的CHNUM 1130就是连接到该端口倍增 器1110的装置1112、1114、1116的数目,在这种情况中该数目是对于三个装置1112、1114、 1116是三。此信息通过读取端口倍增器1110的GSCR[2]获得的。用于节点1110的节点数 量1130的RouteMap寄存器的CHNUMl 130只是对装置端口 1156、1158的每个RouteMap寄 存器的CHNUM相加,在这种情况中因为有四个装置1112、1114、1116、1118,该数是四。类似地,如图1ID所示,用于父级或顶层端口倍增器节点1104的装置端口 DA 1160 和DB 1162的CHNUM 1132是装置1112、1114、1116、1118和1120的装置总数,这些装置对应 地通过底层或子端口倍增器1106和1108相连接。在这种情况下,对于子端口倍增器装置 端口 DA 1152、1156,装置端口 DA 1160的CHNUM 1132是四,而对于子端口倍增器装置端口 DB 1154、1158,装置端口 DB1162的数目是二。端口倍增器节点1104的节点数1132是六, 该数目对应地是DA与DB 1132的数目四与二之和。然后顶层端口倍增器1104将PMP分配 给装置端口 DA 1152 (表示无装置的一个端口)、DB 1154(表示具有一个装置1120的一个 端口)、DB 1158 (表示具有一个装置1118的一个端口)以及DA 1156 (表示通过第三方端 口倍增器1110而具有三个装置1112、1114、1116的三个端口)中的每一个。 现在参看图11E,它实现了 PMP分配机制的实施方案。在一个实施方案中,PMP分 配机制包括一种PMP分配算法并且对于实现方式是特定的。在所示的实施方案中,简单地 从一个低数至一个高数将PMP分配给装置端口 1152、1154、1156、1158中的每一个。因此, 顶层端口倍增器节点1104将PMPO, PMPl、PMP2及PMP3分配给装置端口 A 1152、1156,将 PMP4、PMP5分配给装置端口 B 1154、1156。然后顶层端口倍增器1104更新RouteMap寄存 器1134、1136、1138的节点数(NODE),同时子端口倍增器1106、1108更新RouteMap寄存器 1134、1136、1138的装置端口数(DA、DB)。现在参考图11F,顶层节点1104更新其子节点 1106与1108的RouteMap寄存器(NODE) 1136与1138,同时子节点1106、1108更新其装置 1120、1112-1116、1118 的 RouteMap 寄存器(DA, DB) 1136、1138。在一个实施方案中,多个网络装置在一种客户/服务器网络系统中是互连的,例 如在一种个人娱乐网络中。以上图示的网络机制是不同网络的一部分。一个网络可以包括 局域网(LAN)、广域网(WAN)、城域网(MAN)、内部网、互联网等等。如在本文件的其他地方 所述的,任意数量的网络装置可以被级联而与一个端口倍增器相连接,从而形成一个网络 内的网络化机制。在此考虑了通过网络1025可以连接任何数量的装置。一个装置可以通 过多个标准及非标准协议(包括本文件中所述的协议)向网络系统中的其他装置传送数据 流,例如流媒体数据。在以上描述中,出于解释的目的,陈述了很多具体细节来提供对本发明的透彻理 解。然而,对本领域的熟练技术人员而言,应当清楚的是可以实施本发明而无需这些具体细 节中的一些。在其他实例中,多种为人熟知的结构以及装置是以框图的形式示出。所展示 的部件之间可能存在中间结构。在此描述的或展示的这些部件可以具有并未展示或描述的额外输入或输出。本发明的不同实施方案可以包括不同的过程。这些过程可以通过硬件部件来执 行,或者可以体现在计算机程序或者多条机器可执行的指令之中,它们可以用来使得一种 通用或者专用的处理器或者逻辑电路利用这些指令进行编程来执行这些过程。可替代地, 这些过程可以通过硬件和软件的组合来实施。贯穿本文件说明的一个或多个模块、部件、或元件(如所示出在一种端口倍增器 增强机构中或与其相关联的那些)可以包括硬件、软件、和/或它们的组合。在模块包含软 件的情况下,可以通过一种机器/电子的装置/硬件制造物品来提供这些软件数据、指令、 和/或配置。制造物品可以包括具有用于提供指令、数据等内容的机器可存取/可读媒介。 该内容可以导致电子装置(例如在此说明的文件管理器、磁盘、或磁盘控制器)进行所说明 的不同运作或执行。本发明不同实施方案的多个部 分可以作为计算机程序产品来提供,这可以包括其 上储存了计算机程序指令的一种计算机可读取媒质,这可以用来对一台计算机(或其他电 子装置)进行编程以执行根据本发明这些实施方案的过程。这种机器可读媒介可以包括但 不限于软盘、光盘、致密只读存储器(CD-ROM)、以及磁光盘、只读存储器(ROM)、随机存取存 储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁 卡或光卡、闪存、或者其他类型适合储存电子指令的媒体/机器可读取媒体。此外,本发明 还可以作为计算机程序产品被下载,其中该程序可以从一台远程计算机传送至一台请求计 算机上。这些方法中的很多方法仅以它们最基本的形式进行说明,但多个过程可以增加到 这些方法的任何一个之中或从其中删去、并且信息可以加入这些所说明的消息中的任何一 个或从其中删去而不背离本发明的基本范围。对于那些本领域的熟练技术人员而言清楚的 是可以做出很多进一步的修改和适配。这些具体的实施方案并不用于限制本发明,而是仅 为解释本发明。本发明的这些实施方案的范围并非由以上提供的具体实例来决定,而是仅 仅由以下的权利要求来决定。如果提及元件“A”连接到或与元件“B”相连接,元件A可以直接地连接到元件B, 或者间接地连接,例如通过元件C。当说明书或权利要求书叙述由至少一个其他部件、特点、 结构、过程、或特征A “导致了”一个部件、特点、结构、过程、或特征B时,这意味着“A”是“B” 的至少一部分起因,但还可以存在至少一个其他部件、特点、结构、过程、或特征协助导致了 “B”。如果本说明书指出一个部件、特点、结构、过程、或特征“可以”、“也许”、或“可能”包含 在内时,那么不要求一定包含该具体的部件、特点、结构、或特征。如果说明书或权利要求书 提及“一种/ 一个”要素时,这并不意味着只存在所说明的要素中的一个。 一个实施方案是本发明的一种实现方式或者一个实例。本说明书提到的“ 一实施 方案”、“ 一个实施方案”、“某些实施方案”、或者“其他实施方案,,是指与这些实施方案相关 说明的一个具体的特点、结构、或者特性被包括在至少某些实施方案之中,但不是必须包括 在所有实施方案之中。“一实施方案”、“一个实施方案”、或者“某些实施方案”等不同的表现 形式并不是必须全部都针对同一批实施方案。应该认识到,在本发明的多个示例性实施方 案的以上说明中,为了使得本披露流畅并且有助于理解一个或者多个不同创造性方面的目 的,本发明的不同特征有时被集合在一个单独的实施方案、示图、或者其说明之中。然而,这种披露方法并不得被解释为反映了一种意图,即提出权利要求的发明所要求的特征要多于 在每个权利要求中明确提到的情况。相反,如以下权利要求所反映的,多个创造性的方面在 于要少于一个单独的以上披露的实施方案的全部特征。因此,在此明确地将这些权利要求 结合到本说明书之中,其中每条权利要求自身独立地作为本发明的一个分别的实施方案。
权利要求
一种装置,包括一个端口倍增器,该端口倍增器被配置为将一个网络主机与多个端口倍增器相联接,其中该端口倍增器包括一个顶层端口倍增器以建立并保持同这些端口倍增器中每一个的通信从而与该网络主机进行通信,该多个端口倍增器具有一个或多个中间层端口倍增器和底层端口倍增器;以及多个网络装置,该多个网络装置与该多个端口倍增器进行通信并进一步与该端口倍增器及该网络主机进行通信。
2.如权利要求1所述的装置,其中该顶层端口倍增器被配置为通过一种标准的串行高 级技术附件(SATA)信号与该网络主机进行通信。
3.如权利要求1所述的装置,其中该顶层端口倍增器被配置为通过一种增强型SATA信 号与该中间层及底层端口倍增器进行通信。
4.如权利要求1所述的装置,其中该顶层、中间层及底层端口倍增器各自包括多个寄 存器以管理数据的路由选择,其中每一个寄存器包括用于该数据的一个路由图。
5.如权利要求1所述的装置,其中该网络主机被配置为一旦设定了这些寄存器就将一 个帧信息结构(FIS)从该网络主机发送至该顶层、中间层及底层端口倍增器。
6.如权利要求1所述的装置,其中每一个端口倍增器包括具有两个端口的一个SATA端 口倍增器。
7.一种系统,包括一个端口倍增的网络,该端口倍增的网络被配置为将一个网络主机联接至多个网络装 置上,该端口倍增的网络包括一个端口倍增器,该端口倍增器被配置为将该网络主机与多个端口倍增器相联接,其 中该端口倍增器包括一个顶层端口倍增器,以建立和保持与这些端口倍增器的每一个的通 信从而与该网络主机进行通信,该多个端口倍增器具有一个或多个中间层端口倍增器和底 层端口倍增器,以及多个网络装置,该多个网络装置与该多个端口倍增器进行通信并进一步与该端口倍增 器及该网络主机进行通信。
8.如权利要求7所述的系统,其中该顶层端口倍增器被配置为通过一种标准串行高级 技术附件(SATA)信号与该网络主机进行通信。
9.如权利要求7所述的系统,其中该顶层端口倍增器被配置为通过一种增强型SATA信 号与这些中间层和底层端口倍增器进行通信。
10.如权利要求7所述的系统,其中这些顶层、中间层及底层端口倍增器各自包括多个 寄存器以管理数据的路由选择,其中每个寄存器包括用于该数据的一个路由图。
11.如权利要求7所述的系统,其中该网络主机被配置为从该网络主机对这些顶层、中 间层及底层端口倍增器发送一个帧信息结构(FIS)。
12.如权利要求7所述的系统,其中每一个端口倍增器包括具有两个端口的一个SATA 端口倍增器。
13.一种方法,包括通过一个端口倍增器将一个网络主机与多个端口倍增器相联接,其中该端口倍增器包 括一个顶层端口倍增器以建立并保持与该多个端口倍增器中的每一个的通信,从而与该网络主机进行通信,该多个端口倍增器具有一个或多个中间层和底层端口倍增器;并且 建立在多个网络装置与该多个端口倍增器、该端口倍增器及该网络主机之间的通信。
14.如权利要求13所述的方法,进一步包括通过一种标准串行高级技术附件(SATA)信 号在该顶层端口倍增器与该网络主机之间建立通信。
15.如权利要求13所述的方法,进一步包括通过一种增强型SATA信号在该顶层端口倍 增器与该中间层以及底层端口倍增器之间建立通信。
全文摘要
在此提供了用于增强端口倍增器的一种方法、装置及系统。在一个实施方案中,一种端口倍增器被配置为将一个网络主机与多个端口倍增器相联接。该端口倍增器包括一个顶层端口倍增器以建立并保持与这些端口倍增器中每一个的通信从而与该网络主机进行通信,并且这些端口倍增器具有中间层端口倍增器和/或底层端口倍增器。此外,多个网络装置与这些端口倍增器、该端口倍增器及该网络主机进行通信。
文档编号G06F13/38GK101971156SQ200980109861
公开日2011年2月9日 申请日期2009年3月12日 优先权日2008年3月14日
发明者C·麦斯威尔, R·J·威尔考克斯, 吴圭泽, 黄银珠 申请人:晶像股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1