CN110998509B - 获取光模块链路协商信息的方法、设备和系统 - Google Patents

获取光模块链路协商信息的方法、设备和系统 Download PDF

Info

Publication number
CN110998509B
CN110998509B CN201880003844.8A CN201880003844A CN110998509B CN 110998509 B CN110998509 B CN 110998509B CN 201880003844 A CN201880003844 A CN 201880003844A CN 110998509 B CN110998509 B CN 110998509B
Authority
CN
China
Prior art keywords
optical module
information
partition
link negotiation
acquiring
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201880003844.8A
Other languages
English (en)
Other versions
CN110998509A (zh
Inventor
史品
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN110998509A publication Critical patent/CN110998509A/zh
Application granted granted Critical
Publication of CN110998509B publication Critical patent/CN110998509B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/141Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0016Inter-integrated circuit (I2C)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0028Serial attached SCSI [SAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Optical Communication System (AREA)

Abstract

一种获取光模块链路协商信息的方法、设备和系统,以解决获取光模块链路协商信息过程中可靠性低的问题。所述方法包括:获取光模块可读取的分区的信息;当获取的所述光模块可读取的分区的信息对应的分区,与所述光模块中存储链路协商信息的分区不同,且记录的获取光模块链路协商信息的次数未达到预设阈值时,将所述光模块可读取的分区的信息修改为所述光模块中存储链路协商信息的分区的信息;重新获取所述光模块可读取的分区的信息,并在获取的所述光模块可读取的分区的信息对应的分区,与所述光模块中存储链路协商信息的分区相同时,获取所述光模块的链路协商信息。

Description

获取光模块链路协商信息的方法、设备和系统
技术领域
本发明涉及信息技术(Information Technology,IT)领域,尤其涉及获取光模块链路协商信息的方法、设备和系统。
背景技术
小型计算机系统接口(small computer system interface,SCSI)是用于计算机和智能设备之间(包括但不限于硬盘、软驱、光驱、打印机、扫描仪等)系统级接口的独立处理器标准。
串行连接的SCSI(Serial Attached SCSI,SAS)接口,通过采用串行技术获得更高的传输速度,是继并行SCSI接口之后出现的一种全新接口。与传统的并行SCSI接口技术相比,改善了存储系统的性能、可用性和扩充性,并且拥有更高的传输速度、更长的传输距离和更好的抗干扰能力。SAS接口主要应用于服务器、大容量存储系统、磁盘阵列和高速互联网络等方面。
MINI SAS是新一代SAS接口,不仅具有优越的信号传输性能,同时还能满足板卡小型化的要求。MINI SAS光模块是SAS电缆和SAS光缆的身份标识,在企业存储和云存储中应用非常广泛。
现有技术在获取MINI SAS光模块信息的过程中,存在获取光模块链路协商信息时可靠性低的问题。
发明内容
本申请提供一种获取光模块链路协商信息的方法、设备和系统,以提高获取光模块链路协商信息的可靠性。
第一方面,本申请提供了一种获取光模块链路协商信息的方法,包括:
获取光模块可读取的分区的信息;
当获取的所述光模块可读取的分区的信息对应的分区,与所述光模块中存储链路协商信息的分区不同,且记录的获取光模块链路协商信息的次数未达到预设阈值时,将所述光模块可读取的分区的信息修改为所述光模块中存储链路协商信息的分区的信息;
重新获取所述光模块可读取的分区的信息,并在获取的所述光模块可读取的分区的信息对应的分区,与所述光模块中存储链路协商信息的分区相同时,获取所述光模块的链路协商信息。
上述方法中,先获取可读取的分区的信息,在获取的可读取的分区的信息对应的分区,与所述光模块中存储链路协商信息的分区不同,且记录的获取光模块链路协商信息的次数未达到预设阈值时,将所述光模块可读取的分区的信息修改为所述光模块中存储链路协商信息的分区的信息,以获取所述光模块的链路协商信息。这样,可以避免现有技术中先将光模块可读取的分区的信息修改为所述光模块中存储链路协商信息的分区的信息,造成的在修改之后读取之前这段时间内,因供电闪断、链路异常复位等情况导致获取失败的情况。提高了读取光模块链路协商信息的可靠性。
上述方法中,在获取的所述光模块可读取的分区的信息对应的分区,与所述光模块中存储链路协商信息的分区相同时,表示选通的是所述光模块中存储链路协商信息的分区,即可以读取所述光模块中存储链路协商信息的分区中的信息。在这种情况下,获取所述光模块的链路协商信息成功率高,获取光模块链路协商信息的可靠性也高。
可选的,上述方法中,将所述光模块可读取的分区的信息修改为所述光模块中存储链路协商信息的分区的信息,可以通过将所述光模块中用于记录已经选通的所述光模块的分区的字段所对应的值,修改为所述光模块中存储链路协商信息的分区的信息所对应的值的方式实现。可选的,已经选通的所述光模块的分区是指可以读取其存储的内容的分区。
在一种可能的实现方式中,在所述重新获取所述光模块可读取的分区的信息之前,所述方法还包括:
将记录的获取光模块链路协商信息的次数加1。
在一种可能的实现方式中,在所述重新获取所述光模块可读取的分区的信息之后,所述方法还包括:
如果获取的所述光模块可读取的分区的信息对应的分区,与所述光模块中存储链路协商信息的分区不同,且记录的获取光模块链路协商信息的次数未达到所述预设阈值时,则再次将所述光模块可读取的分区的信息修改为所述光模块中存储链路协商信息的分区的信息;再次获取所述光模块可读取的分区的信息,并再次将记录的获取光模块链路协商信息的次数加1。
在一种可能的实现方式中,所述光模块的链路协商信息,用于对所述光模块驱动管理过程中的链路协商;所述光模块的链路协商信息包括:
连接器类型、光电参数、多模或单模、电压和发送偏移。
可选的,所述光模块的链路协商信息还包括工作温度或厂商信息等。
可选的,所述方法是由微控制单元(Microcontroller Unit,MCU)实现。所述MCU与所述光模块之间通过I2C总线(Inter Integrated Circuit bus,I2C bus)连接。
可选的,所述MCU是存储系统的控制设备中的MCU,或所述MCU是存储系统的存储设备中的MCU。
可选的,所述光模块是MINI SAS光模块。所述存储链路协商信息的分区是MINISAS光模块中的page0分区。
可选的,所述光模块可读取的分区的信息,是所述光模块选通的分区的信息。例如,当光模块选通page0分区,则MCU可以通过与光模块之间的连接读取page0分区中的信息。
可选的,所述预设阈值为3。可选的,所述记录的获取光模块链路协商信息的次数的预设阈值,可以是第一预设阈值。
可选的,上述将记录的获取光模块链路协商信息的次数加1,是通过所述MCU中的计数器加1的方式实现。例如,可以通过对第一计数器加1的方式实现。
在一种可能的实现方式中,所述方法还包括:通过获取所述光模块的page selectbyte中的控制字节对应的内容获取光模块可读取的分区的信息,所述控制字节记录的是选通的分区的信息。例如,所述光模块的page select byte中的控制字节对应的内容为0,表明选通的分区为page0分区。
可选的,page select byte中的控制字节是所述page select byte中的第127位字节。
在一种可能的实现方式中,所述方法还包括:
如果获取的所述光模块可读取的分区的信息对应的分区,与所述光模块中存储链路协商信息的分区不同,且记录的获取光模块链路协商信息的次数达到所述预设阈值,则终止获取光模块的链路协商信息。
上述在获取的所述光模块可读取的分区的信息对应的分区与所述光模块中存储链路协商信息的分区不同,且记录的获取光模块链路协商信息的次数达到所述预设阈值时,终止获取光模块的链路协商信息。所述终止获取光模块的链路协商信息,可以通过退出光模块的驱动管理流程的方式实现。这样,对于不支持分区选通字段写操作的光模块,例如不支持page select byte写的光模块,也给出了有效的处理机制,提高了读取光模块链路协商信息的兼容性。
在一种可能的实现方式中,所述方法还包括:
当获取所述光模块可读取的分区的信息失败且记录的获取光模块链路协商信息的次数未达到预设阈值时,重新获取所述光模块可读取的分区的信息,并将记录的获取光模块链路协商信息的次数加1。可选的,可以通过对所述第一计数器加1的方式,在获取所述光模块可读取的分区的信息失败时,将记录的获取光模块链路协商信息的次数加1。即当获取所述光模块可读取的分区的信息失败时,可以只通过所述第一计数器,记录获取光模块链路协商信息的次数。
在一种可能的实现方式中,所述方法还包括:
当获取所述光模块可读取的分区的信息失败时,重新获取所述光模块可读取的分区的信息。
可选的,可以对获取光模块可读取的分区信息失败的次数通过另外一个计数器计数。当获取光模块可读取的分区信息失败的次数达到预设的另外一个预设阈值时,例如第二预设阈值时,发送获取光模块可读取的分区信息失败的信息。可选的,可以通过MCU中的第二计数器对获取光模块可读取的分区信息失败的次数进行统计。当获取光模块可读取的分区信息失败时,将所述第二计数器加1。即用于记录获取光模块可读取的分区信息失败次数的计数器,可以与用于记录获取光模块链路协商信息的次数的计数器可以不同。
第二方面,本申请提供了一种控制芯片,包括控制单元和获取单元,
所述获取单元,用于获取光模块可读取的分区的信息;
所述控制单元,用于在所述获取单元获取的所述光模块可读取的分区的信息对应的分区,与所述光模块中存储链路协商信息的分区不同,且记录的获取光模块链路协商信息的次数未达到预设阈值时,将所述光模块可读取的分区的信息修改为所述光模块中存储链路协商信息的分区的信息;
所述获取单元,还用于重新获取所述光模块可读取的分区的信息,并在获取的所述光模块可读取的分区的信息对应的分区,与所述光模块中存储链路协商信息的分区相同时,获取所述光模块的链路协商信息。
上述控制芯片中,获取单元获取所述光模块可读取的分区的信息;控制单元在所述获取单元获取的所述光模块可读取的分区的信息对应的分区,与所述光模块中存储链路协商信息的分区不同,且记录的获取光模块链路协商信息的次数未达到预设阈值时,将所述光模块可读取的分区的信息修改为所述光模块中存储链路协商信息的分区的信息,以获取所述光模块的链路协商信息。这样,能够避免因供电闪断、链路异常复位等情况导致控制芯片读取光模块链路协商信息失败的情况,提高了读取光模块链路协商信息的可靠性。
可选的,所述控制单元将所述光模块可读取的分区的信息修改为所述光模块中存储链路协商信息的分区的信息,可以通过所述控制单元将所述光模块中用于记录已经选通的所述光模块的分区的字段对应的值,修改为所述光模块中存储链路协商信息的分区的信息所对应的值的方式实现。可选的,已经选通的所述光模块的分区是指可以读取其存储的内容的分区。
可选的,所述控制芯片是存储系统的控制设备中的控制芯片,或所述控制芯片是存储系统的存储设备中的控制芯片。
可选的,所述光模块是MINI SAS光模块。所述存储链路协商信息的分区是MINISAS光模块中的page0分区。
可选的,所述光模块可读取的分区的信息,是所述光模块选通的分区的信息。例如,当控制芯片为MCU,光模块为MINI SAS光模块,如果光模块选通page0分区,则MCU可以通过与光模块之间的连接读取page0分区中的信息。可选的,所述预设阈值为3。可选的,所述记录的获取光模块链路协商信息的次数的预设阈值,可以是第一预设阈值。
在一种可能的实现方式中,所述光模块的链路协商信息,用于对所述光模块驱动管理过程中的链路协商;所述光模块的链路协商信息包括:
连接器类型、光电参数、多模或单模、电压和发送偏移。
可选的,所述光模块的链路协商信息还包括工作温度或厂商信息等。
在一种可能的实现方式中,所述控制芯片还包括计数单元;
所述计数单元用于在将所述光模块可读取的分区的信息修改为所述光模块中存储链路协商信息的分区的信息后,将记录的获取光模块信息的次数加1。
在一种可能的实现方式中,所述计数单元还用于当获取所述光模块可读取的分区的信息失败且记录的获取光模块链路协商信息的次数未达到预设阈值时,将记录的获取光模块链路协商信息的次数加1。
可选的,上述计数单元可以是所述控制芯片中的计数器。
在一种可能的实现方式中,所述获取单元还用于在所述获取单元获取的所述光模块可读取的分区的信息对应的分区,与所述光模块中存储链路协商信息的分区不同,且记录的获取光模块链路协商信息的次数达到预设阈值时,终止获取所述光模块的链路协商信息。
由于在获取的所述光模块可读取的分区的信息对应的分区与所述光模块中存储链路协商信息的分区不同,且记录的获取光模块链路协商信息的次数达到所述预设阈值时,所述控制芯片中的获取单元终止获取所述光模块的链路协商信息。例如,可以通过所述控制芯片退出光模块的驱动管理流程的方式,使得所述获取单元终止获取所述光模块的链路协商信息。这样,对于不支持分区选通字段写操作的光模块,例如不支持page selectbyte写的光模块,所述控制芯片也能够有效处理,,提高了读取光模块链路协商信息的兼容性。
在一种可能的实现方式中,所述获取单元还用于当获取光模块可读取的分区的信息失败时,重新获取光模块可读取的分区的信息。
可选的,可以通过所述控制芯片中的另一计数单元对获取光模块可读取的分区的信息失败的次数进行计数。当所述另一计数单元计数达到预设的另外一个预设阈值时,例如第二预设阈值时,所述控制芯片发送获取光模块可读取的分区的信息失败的信息。
可选的,上述另一计数单元可以是所述控制芯片中的另一计数器。
在一种可能的实现方式中,所述获取单元通过获取所述光模块的page selectbyte中的控制字节对应的内容获取光模块可读取的分区的信息,所述控制字节记录的是选通的分区的信息。例如,光模块的page select byte中的控制字节对应的内容为0,表明选通的分区为page0分区。
可选的,page select byte中的控制字节是所述page select byte中的第127位字节。
在一种可能的实现方式中,所述获取单元还用于当获取光模块可读取的分区的信息失败且记录的获取光模块链路协商信息的次数未达到预设阈值时,重新所述获取光模块可读取的分区的信息。
第三方面,本申请还提供一种控制设备,包括中央处理器、主存储器,以及上述第二方面所述的控制芯片。
第四方面,本申请还提供一种存储设备,包括存储介质以及上述第二方面所述的控制芯片。
第五方面,本申请还提供一种存储系统,所述存储系统包括控制设备和存储设备,
所述控制设备包括中央处理器、主存储器,以及上述第二方面所述的控制芯片;
所述存储设备包括存储介质以及上述第二方面所述的控制芯片。
第六方面,本申请提供了一种计算机存储介质,用于储存为控制芯片所用的计算机软件指令,其包含用于执行上述第一方面方面所设计的程序。
第七方面,本申请提供了一种计算机程序,当计算机设备或服务器中的控制芯片运行该计算机程序时,该控制芯片执行上述第二方面中所述控制芯片的功能。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1A为本申请实施例提供的存储系统的一种结构示意图;
图1B为本申请实施例提供的存储系统的另一种结构示意图;
图2为本申请实施例提供的MCU通过I2C总线与MINI SAS光模块连接的结构示意图;
图3为本申请实施例提供的MCU获取光模块信息的流程示意图;
图4A为本申请实施例提供的一种获取光模块链路协商信息的方法流程示意图;
图4B为本申请实施例提供的一种获取光模块链路协商信息的具体方法流程示意图;
图5为本申请实施例提供的一种控制芯片500的结构示意图;
图6为本申请实施例提供的另一种控制芯片500的结构示意图;
图7为本申请实施例提供的控制设备700的结构示意图;
图8为本申请实施例提供的存储设备800的结构示意图;
图9为本申请实施例提供的存储系统900的结构示意图。
具体实施方式
下面结合附图,对本发明的实施例进行描述。
本申请实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
图1A为存储系统的一种结构示意图,包括控制设备100和存储设备200。控制设备100主要包括中央处理器(central processing unit,CPU)、主存储器(例如随机存取存储器RAM等)以及MCU等硬件资源。图1A中以只显示MCU101为例进行说明。存储设备200用于存储数据,可以包括但不限于硬盘驱动器(hard disk drive,HDD)、固态硬盘(solid-statedisk,SSD)等存储介质。图1A中以存储设备200包括硬盘为例进行说明。控制设备100与光模块102连接,存储设备200与光模块202连接,光模块102与光模块202之间通过SAS线缆连接,实现控制设备100与存储设备200之间的通信。
光模块102接入控制设备100后,控制设备100中的MCU101能够检测到光模块的接入,启动驱动的管理流程,以建立与光模块102的连接。本申请实施例中,MCU是一种具有管理控制功能的芯片,为不同的应用场合做不同的组合控制。例如,MCU可以是把CPU的频率与规格做适当缩减,并将主存储器(memory)、计时器(Timer)、计数器、通用串行总线(Universal Serial Bus,USB)、模/数(analog/digit,A/D)转换、通用异步收/发器(universal asynchronous receiver/transmitter,UART)、可编程序逻辑控制器(programmable logic controller,PLC)、直接内存访问(direct memory access,DMA)等周边接口,甚至光耦合器件(light coupled device,LCD)驱动电路都整合在单一芯片上,形成芯片级的计算机。
MCU101与光模块102之间,可以通过I2C总线通信,即MCU101可以通过I2C总线获取光模块102的内部信息。由于I2C总线结构清晰,包括一根数据线和一根时钟线,并且实现原理简单,是获取光模块信息的常用总线。但本申请实施例不限定MCU101与光模块102之间的通信总线的形式,其它能够实现MCU101获取光模块102内部信息的总线,也可以通过本申请实施例提供的技术方案来实现。本申请实施例以I2C总线为例进行说明。
同样的,MCU201在检测到光模块202接入存储设备200后,通过I2C总线启动驱动的管理流程,并建立与光模块202的连接。
图1A只是以一个控制设备和一个存储设备为例进行说明。可以理解,在具体实现时,控制设备100还可以连接多个存储设备。当控制设备连接多个存储设备的情况下,每个控制设备通过光模块与存储设备连接的实现方式,与控制设备100与存储设备200的连接的实现方式类似,不再赘述。
图1B为另一种场景下存储系统实现的结构示意图。图1B中,存储设备200还与存储设备300通过SAS线缆连接,即存储设备200通过光模块204、SAS线缆和光模块302,与存储设备300连接。存储设备300中的MCU301和光模块302的连接关系,与存储设备200中MCU203和光模块204的连接关系类似,不再赘述。
可以理解,上述SAS通道只是举例。在具体实现时,控制设备与存储设备之间,也可以通过快速外围部件互连(Peripheral Component Interconnect Express,PCIe)通道或以太网通道等。本申请实施例以SAS通道为例进行说明,但本申请实施例公开的技术方案并不限定于SAS通道的实现方式,对于PCIe通道或以太网通道等其它实现方式,也可以参照SAS通道的实现方式来实现,不再赘述。
图1A和图1B所示的通信系统中,控制设备100与存储设备200之间通信的稳定性,以及存储设备200与存储设备300之间通信的稳定性,决定着存储系统的性能和稳定性。控制设备100与存储设备200之间通信的稳定性,取决于光模块102通过SAS线缆与光模块202之间通信的稳定性。存储设备200与存储设备300之间通信的稳定性,取决于光模块204通过SAS线缆与光模块302之间通信的稳定性。
在影响高速SAS通信通道稳定性的因素中,MCU获取光模块中链路协商的信息,以进行链路协商是关键因素。如果MCU获取光模块链路协商信息失败,就会影响到链路协商的成功与否,最终影响SAS通道的稳定性。
MCU在检测到光模块接入后,会启动对光模块的驱动管理过程。在对光模块的驱动管理过程中,MCU会获取光模块链路协商的信息。例如:MCU101在对光模块102的驱动管理中,会获取光模块102的内部关于链路协商相关的信息以进行链路协商;MCU201对光模块202的驱动管理中会获取光模块202的内部关于链路协商相关的信息以进行链路协商。
以MINI SAS光模块为例,光模块内部共存储有四个分区的分区信息:page0-page3,其中用于链路协商的信息存放在page0分区,page1-page3主要是扩散信息部分,有应用编码,用户自定义区间等等。在具体实现时,MCU可以通过I2C协议读/写配置pageselect byte字段,选择page分区并读取分区中的信息。
参考图2,图2为MCU通过I2C总线与MINI SAS光模块连接,以及光模块内部分区信息的结构示意图。可以理解,MCU也可以通过其它总线与光模块连接,只要能够实现光模块信息的获取,都在本申请实施例公开的范围之内。
MCU对MINI SAS光模块的驱动管理包括但不限于:光模块在位检查、光模块信息获取、根据获取到的信息进行带外参数配置和使能SAS链路速率协商。其中:
光模块在位检查,主要是监控光模块是否接入系统。
光模块信息获取,主要是获取光模块链路协商的信息,一般而言,即为page0分区的信息。光模块链路协商信息包括但不限于连接器类型,是光缆还是电缆,光电参数,多模或单模,电压和发送偏移等信息。光模块链路协商信息还可以包括工作温度或厂商等信息。
带外参数配置,主要是根据获取到的光模块内部信息,进行链路参数,例如预加重,摆幅,中心参数等配置。
使能链路协商,主要是开启SAS链路速率协商。
在上述四项驱动管理中,光模块链路协商信息的获取是整个驱动管理的核心部分,直接关系链路的稳定。
图3为基于图2所示的场景,MCU获取光模块信息的流程示意图。如图3所示,包括:
步骤100:MCU检测到MINI SAS光模块接入后,首先将page select byte配置为0,选通page0分区;
MCU将page select byte配置为0时,即选通page0分区。MCU选通page0分区后,就可以获取page0分区的信息。
步骤102:MCU读取page0的信息;
步骤104:判断读取page0信息是否成功,如果成功,则执行步骤106,如果不成功,则执行108;
步骤106:读取成功,根据获取到的page0的信息,进行链路协商等驱动管理的后续流程;
步骤108:读取失败,退出驱动管理流程。
上述步骤102中,MCU获取page0信息只执行一次,没有确认机制,导致获取page0信息时可靠性不高。并且,在一些场景下,例如供电闪断、I2C主异常复位等场景,存在首次I2C访问不稳定因素,可能获取信息异常或读取到其他分区的参数等,导致参数配置失败和链路协商的失败。
此外,部分厂商所生产的光模块的驱动访问接口未遵循SFF-8636 Specificationfor COMMON MANAGEMENT INTERFACE管理协议,不支持写page select byte操作。这些光模块在接入控制设备或存储设备时,驱动管理过程中也无法读取光模块的信息,没有有效的处理机制。其中,所述SFF为Small Form Factor的缩写,主要用于定义存储系统上的一些接插件标准。
本申请实施例提供一种获取光模块链路协商信息的方法,以解决上述获取光模块信息时可靠性不高的问题。
参考图4A,为本申请实施例提供的一种获取光模块链路协商信息的方法流程示意图,所述方法包括:
步骤200A:获取光模块可读取的分区的信息;
步骤202A:当获取的所述光模块可读取的分区的信息对应的分区,与所述光模块中存储链路协商信息的分区不同,且记录的获取光模块链路协商信息的次数未达到预设阈值时,将所述光模块可读取的分区的信息修改为所述光模块中存储链路协商信息的分区的信息;
步骤204A:重新获取所述光模块可读取的分区的信息,并在获取的所述光模块可读取的分区的信息对应的分区,与所述光模块中存储链路协商信息的分区相同时,获取所述光模块的链路协商信息。
上述方法通过先获取可读取的分区的信息,在获取的可读取的分区的信息对应的分区,与所述光模块中存储链路协商信息的分区不同,且记录的获取光模块链路协商信息的次数未达到预设阈值时,将所述光模块可读取的分区的信息修改为所述光模块中存储链路协商信息的分区的信息,以获取所述光模块的链路协商信息。这样,可以避免现有技术中先将光模块可读取的分区的信息修改为所述光模块中存储链路协商信息的分区的信息,造成的在修改之后读取之前这段时间内,因供电闪断、链路异常复位等情况导致获取失败的情况。提高了读取光模块链路协商信息的可靠性。
上述方法可以由MCU实现,该MCU可以是存储系统中作为控制设备的计算机设备或服务器中的MCU,也可以是存储系统中作为存储设备的计算机设备或服务器中的MCU。
可选的,在所述步骤204A之前,所述方法还包括:将记录的获取光模块链路协商信息的次数加1。
可选的,上述将记录的获取光模块链路协商信息的次数加1,可以通过MCU中的计数器加1的方式实现。例如,可以通过MCU中的第一计数器记录获取光模块链路协商信息的次数。可以在MCU将所述光模块可读取的分区的信息修改为所述光模块中存储链路协商信息的分区的信息后,将所述第一计数器加1。
可选的,所述预设阈值可以为第一预设阈值。所述第一预设阈值可以为3次。
可选的,在所述步骤204A之后,所述方法还包括:
如果获取的所述光模块可读取的分区的信息对应的分区,与所述光模块中存储链路协商信息的分区不同,且记录的获取光模块链路协商信息的次数未达到所述预设阈值时,则再次将所述光模块可读取的分区的信息修改为所述光模块中存储链路协商信息的分区的信息,再次获取所述光模块可读取的分区的信息,并再次将记录的获取光模块链路协商信息的次数加1。具体的,再次将记录的获取光模块链路协商信息的次数加1,可以通过将所述第一计数器加1的方式实现。
在一种可能的实现方式中,上述方法还可以包括:
如果获取的可读取的分区的信息对应的分区,与所述光模块中存储链路协商信息的分区不同,且记录的获取光模块链路协商信息的次数达到所述预设阈值,则终止获取光模块的链路协商信息。
终止获取光模块的链路协商信息的方式,可以是退出光模块的驱动管理流程。这样,对于不支持分区选通字段写操作的光模块,例如不支持page select byte写的光模块,也给出了有效的处理机制。从而提供了在光模块不支持分区选通字段写操作的处理方式,提高了读取光模块链路协商信息的兼容性。
可选的,在所述步骤200A之后,可能会因为MCU与光模块之间的链路的问题导致获取光模块可读取的分区的信息失败。在这种情况下,所述方法还可以包括:判断记录的获取光模块链路协商信息的次数是否达到所述预设阈值,如果未达到所述预设阈值,则重新执行步骤200A,并将记录的获取光模块链路协商信息的次数加1。具体的,在获取光模块链路协商信息失败后,可以对所述第一计数器加1,作为记录的获取光模块链路协商信息的次数。
当然,获取光模块链路协商信息失败的原因有些是暂时的、可修复的,有些是不可修复的。为避免在获取光模块链路协商信息失败重复执行步骤200A导致的死循环等原因,可以针对获取光模块链路协商信息失败设置第二计数器,用于记录获取光模块可读取的分区的信息的次数。每执行步骤200A失败一次,所述第二计数器加1一次。当所述第二计数器记录的次数达到一定预设阈值,例如达到第二预设阈值时,则发送获取光模块链路协商信息失败的信息,并停止执行步骤200A。可选的,所述第二预设阈值可以为10。
作为另外一种实现方式,在所述步骤200A之后,如果获取光模块可读取的分区的信息失败,可以不用计数,即不需要将所述第一计数器加1,直接重新执行步骤200A。
可选的,所述光模块的链路协商信息,用于对所述光模块驱动管理过程中的链路协商;所述光模块的链路协商信息可以包括:连接器类型、光电参数、多模或单模、电压和发送偏移。
可选的,所述光模块的链路协商信息还可以包括工作温度或厂商信息等。
可选的,上述步骤200A中,可以通过获取所述光模块的page select byte中的控制字节获取光模块可读取的分区的信息。所述控制字节记录的是选通的分区的信息,选通分区后,MCU可以读取选通的分区的信息。可选的,所述光模块的page select byte中的控制字节可以是所述page select byte中的第127位字节。
下面以MINI SAS光模块为例,对本申请实施例提供的一种获取光模块链路协商信息的方法进行说明。如图4B所示,所述方法包括:
步骤200B:MCU检测到光模块接入后,获取page select byte控制字节;
所述page select byte控制字节,记录的是光模块可读取的分区的信息。光模块中包括page select byte字段,可以用于实现光模块分区的选择。其中的page selectbyte控制字节,记录的是可读取的分区的信息。
例如,如果page select byte控制字节记录的值为0,表示可读取page0分区的信息;如果page select byte控制字节记录的值为3,表示可读取page3分区的信息。
在一种实现方式中,page select byte中的第127位为page select byte控制字节。即MCU可以通过获取page select byte中第127位字节的内容,获取可读取的分区的信息。
本步骤中,当MCU检测到光模块接入系统后,通过通信总线(例如I2C总线)向光模块发送获取page select byte控制字节的指示。可以避免现有技术中,MCU先向pageselect byte控制字节写0然后再读取page0信息时,在page select byte控制字节被写0之后MCU读取page0之前这段时间内,因为供电闪断、I2C主异常复位等情况导致MCU读取page0信息失败的情况。
同时,如果page select byte控制字节记录的值为0,说明可读取的分区是page0分区。即在可读取的分区刚好就是page0分区的情况下,就可以减少执行写page selectbyte字段的步骤,能够提升获取光模块信息的效率。
步骤202B:MCU判断是否获取成功;如果成功则执行步骤206B,如果失败则执行步骤204B;
以MCU通过I2C总线与光模块连接为例,MCU会基于I2C通信协议关于获取成功的判断标准,判断获取page select byte控制字节是否成功。I2C总线包括时钟线和数据线,MCU会通过数据线接收光模块传输的内容。接收到的内容,包括但不限于:校验位、应答信号、数据内容等。MCU接收到光模块通过数据线传输的内容后,根据I2C通信协议判断获取是否成功。
需要说明的是,在本步骤中,MCU只需要判断获取是否成功,不需要判断获取的内容。
步骤204B:MCU进行重试,重新执行步骤200B;
在具体实现时,可能会因为I2C链路故障导致MCU获取page select byte控制字节时失败。在这种情况下,MCU重新获取光模块链路协商的信息,即重新执行步骤200B。
同时MCU可以将记录的获取光模块链路协商信息的次数加1。具体实现时,可以通过计数器的方式,设置计数值。计数值默认为0,当首次执行步骤204B时,将计数器加1,依次类推。例如,可以将MCU中的第一计数器加1,以记录获取光模块链路协商信息的次数。
可选的,MCU也可以通过第二计数器,用于记录获取光模块链路协商信息失败的次数。当所述第二计数器达到预设的第二预设阈值,例如所述第二预设阈值为10时,不再执行步骤204B,也不再返回执行步骤200B。即MCU获取page select byte控制字节失败的次数所用的计数器,与统计下面步骤214B中将page select byte控制字段写0时的计数器不同。这样,可以针对不同的情况分别统计不同的执行次数,在分别达到不同的预设阈值时,进行不同的处理,能够提高获取光模块链路协商信息时的处理精度。
可选的,MCU还可以向MCU所在的计算机设备或服务器中的管理控制器,例如主板管理控制(baseboard management controller)BMC,发送获取失败的信息。
步骤206B:MCU获取page select byte控制字节成功,MCU判断获取到的pageselect byte控制字节的值是否为0。如果为0,说明已经选通page0分区,能够读取page0分区的信息,则执行步骤208B;如果不为0,说明还未选通page0分区,还不能读取page0分区的信息,则执行步骤210B;
需要说明的是,上述是以page select byte控制字节的值为0作为选通page0分区的实现方式进行描述的。在具体实现时,也可以用其它的值作为选通page0的page selectbyte控制字节的值。本申请实施例不限定具体的代表选通page0分区的值。
步骤208B:MCU读取page0分区的信息,并执行光模块驱动管理中读取page0分区成功的后续流程;
步骤210B:判断记录的获取光模块信息的次数是否达到预设阈值;如果超过预设阈值,则执行步骤212B,如果未超过预设阈值,则执行步骤214B;
具体实现时,可以通过计数器计数的方式,记录获取光模块链路协商信息的次数。例如,可以是判断上述步骤204B中的第一计数器记录的值是否超过预设阈值。当第一计数器记录的值达到预设阈值,例如达到上述第一预设阈值时,则执行步骤212B;当第一计数器记录的值未达到预设阈值,例如未达到上述第一预设阈值时,则执行步骤214B。
通过同一个计数器,例如第一计数器,对不同情况下获取光模块链路协商信息未成功都作为一次获取的尝试,可以在达到预设阈值仍未成功获取光模块链路协商信息时,不再尝试获取,并退出驱动管理流程,能够提高获取光模块链路协商信息时的效率。
当记录的获取光模块信息的次数达到预设阈值时,例如第一预设阈值时,说明存在的故障较严重,获取光模块信息失败。在这种情况下,不再获取光模块信息,退出光模块驱动管理流程。
可选的,所述第一预设阈值为3。在具体实现时,还可以根据具体的业务需求灵活设置,例如所述第一预设阈值也可以为2次或4次等,本申请实施例不做具体限定。
步骤212B:获取光模块信息失败,退出驱动管理流程;
MCU确定获取page0信息失败,退出驱动管理流程,本次驱动管理流程结束。
步骤214B:MCU将page select byte控制字段写0,以选通page0分区,并将记录的获取光模块信息的次数加1;
具体的,MCU可以通过I2C总线向光模块发送指令,所述指令用于指示光模块将page select byte控制字段写0,以选通page0分区。选通page0分区后,MCU即能够读取page0分区中的信息。
将记录的获取光模块信息的次数加1,可以通过将上述步骤204B、步骤210B中统计次数的所述第一计数器加1的方式来实现。这样,能够提高获取光模块链路协商信息时的效率
上述图4B所示的方法实施例中,MCU在检测到光模块接入后,先获取page selectbyte控制字节的内容。如果获取成功再判断选通的是否为page0分区。在选通的不是page0分区时,向page select byte控制字节写入page0分区对应的值,并重新获取page selectbyte控制字节的内容再次尝试获取page0分区的信息。这样,能够避免因供电闪断、I2C主异常复位等情况导致MCU读取page0信息失败的情况,提高了读取page0分区信息的可靠性。
并且,无论MCU将page select byte控制字节写0操作成功与否,都返回执行步骤200B。这样,对于支持page select byte控制字节写操作的光模块,重新执行步骤200B后能够获取的光模块的信息,以进行后续的驱动管理的流程。对于不支持page select byte控制字节写操作的光模块,重新执行步骤200B后,如果在步骤210B判断达到预设阈值,就结束光模块的驱动管理流程。即在光模块不兼容的情况下,也有有效的处理机制来处理,提高了获取光模块链路协商信息时的兼容性。
本申请实施例中,上述是以MINI SAS光模块为例进行说明。对于其它的光模块,例如网卡的光模块、光纤通道(Fiber Channel,FC)的光模块、以及PCIE的光模块,由于驱动的机制或方式都类似,也可以使用本申请实施例提供的方案。
图5为本申请实施例提供的一种控制芯片500的结构示意图。如图5所示,控制芯片500包括控制单元501和获取单元502,
所述获取单元501,用于获取光模块可读取的分区的信息;
所述控制单元502,用于在所述获取单元获取的所述光模块可读取的分区的信息对应的分区,与所述光模块中存储链路协商信息的分区不同,且记录的获取光模块链路协商信息的次数未达到预设阈值时,将所述光模块可读取的分区的信息修改为所述光模块中存储链路协商信息的分区的信息;
所述获取单元502,还用于重新获取所述光模块可读取的分区的信息,并在获取的所述光模块可读取的分区的信息对应的分区,与所述光模块中存储链路协商信息的分区相同时,获取所述光模块的链路协商信息。
其中,所述光模块的链路协商信息,用于对所述光模块驱动管理过程中的链路协商;
所述光模块的链路协商信息包括:连接器类型、光电参数、多模或单模、电压和发送偏移。
可选的,所述光模块的链路协商信息还包括工作温度或厂商信息等。
可选的,如图6所示,控制芯片500还包括计数单元503;
所述计数单元503用于在将所述光模块可读取的分区的信息修改为所述光模块中存储链路协商信息的分区的信息后,将记录的获取光模块信息的次数加1。
可选的,所述计数单元503还用于当获取光模块可读取的分区信息失败且记录的获取光模块链路协商信息的次数未达到预设阈值时,将记录的获取光模块链路协商信息的次数加1。
在一种可能的实现方式中,所述获取单元503还用于当获取光模块可读取的分区信息失败时,重新获取光模块可读取的分区信息。
可选的,可以通过所述控制芯片500中的另一计数单元,例如第二计数单元(图中未示出),统计获取光模块可读取的分区信息失败的次数。当所述另一计数单元计数达到预设的另外一个预设阈值时,例如第二预设阈值时,所述控制芯片500可以退出光模块的驱动管理流程,并发送获取光模块可读取的分区信息失败的信息。例如可以发送给控制芯片500所在的计算机设备或服务器的BMC等。
可选的,所述计数单元503可以是所述控制芯片500中的计数器。
可选的,所述获取单元502通过获取所述光模块的page select byte中的控制字节对应的内容获取光模块可读取的分区的信息,所述控制字节记录的是选通的分区的信息。
可选的,所述获取单元502还用于当获取光模块可读取的分区信息失败且记录的获取光模块链路协商信息的次数未达到预设阈值时,重新获取光模块可读取的分区信息。
可选的,所述获取单元502还用于在所述获取单元获取的可读取的分区的信息对应的分区,与所述光模块中存储链路协商信息的分区不同,且记录的获取光模块链路协商信息的次数达到预设阈值(例如上述第一预设阈值或上述第二预设阈值)时,终止获取所述光模块的链路协商信息。
所述获取单元502终止获取所述光模块的链路协商信息后,所述控制芯片500退出光模块的驱动管理流程。
上述控制芯片500的实现方式中,获取单元502获取可读取的分区的信息;控制单元501在所述获取单元502获取的可读取的分区的信息对应的分区,与所述光模块中存储链路协商信息的分区不同,且记录的获取光模块链路协商信息的次数未达到预设阈值时,将所述光模块可读取的分区的信息修改为所述光模块中存储链路协商信息的分区的信息,以获取所述光模块的链路协商信息。这样,能够避免因供电闪断、链路异常复位等情况导致控制芯片500读取光模块链路协商信息失败的情况,提高了读取光模块链路协商信息的可靠性。
同时,由于在获取的可读取的分区的信息对应的分区与所述光模块中存储链路协商信息的分区不同,且记录的获取光模块链路协商信息的次数达到所述预设阈值时,所述控制芯片500中的获取单元502终止获取光模块的链路协商信息。对于不支持分区选通字段写操作的光模块,例如不支持page select byte写的光模块,所述控制芯片500也能够有效的处理,提高了读取光模块链路协商信息的兼容性。
图7为本申请实施例提供的控制设备700的结构示意图。如图7所示,所述控制设备700包括控制芯片701。具体的,控制设备700可以是存储系统中的控制设备,控制设备700通过光模块与存储系统中的存储设备连接。当光模块连接到控制设备700后,控制芯片701检测到光模块的接入,启动光模块的驱动管理流程。当控制芯片701获取光模块链路协商信息时,可以参照上述图4A或图4B所示的方法中MCU的实现方式来实现,也可以参照上述图5或图6所示的控制芯片500的实现方式来实现。具体不再赘述。
图8为本申请实施例提供的存储设备800的结构示意图。如图8所示,所述存储设备800包括控制芯片801。具体的,存储设备800可以是存储系统中的存储设备,并通过光模块与存储系统中的控制设备或存储设备连接。当光模块连接到存储设备800后,控制芯片801检测到光模块的接入,启动光模块的驱动管理流程。当控制芯片801获取光模块链路协商信息时,可以参照上述图4A或图4B所示的方法中MCU的实现方式来实现,也可以参照上述图5或图6所示的控制芯片500的实现方式来实现。具体不再赘述。
图9为本申请实施例提供的存储系统900的结构示意图。如图9所示,所述存储系统900包括控制设备901和存储设备902,其中,控制设备901包括控制芯片9011,存储设备902包括控制芯片9021,控制设备901与光模块9012连接,存储设备902与光模块9022连接,光模块9012与光模块9022通过通信链路连接。例如光模块9012与光模块9022可以通过SAS链路连接。
当光模块9012与控制设备901连接后,控制芯片9011检测到光模块9012的接入,启动光模块的驱动管理流程。当控制芯片9011获取光模块9012链路协商信息时,可以参照上述图4A或图4B所示的方法中MCU的实现方式来实现,也可以参照上述图5或图6所示的控制芯片500的实现方式来实现。具体不再赘述。
当光模块9022与存储设备902连接后,控制芯片9021检测到光模块9022的接入,启动光模块的驱动管理流程。当控制芯片9021获取光模块链路协商信息时,可以参照上述图4A或图4B所示的方法中MCU的实现方式来实现,也可以参照上述图5或图6所示的控制芯片500的实现方式来实现。具体不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、单元和系统的具体实现方式,可以参考前述方法实施例中的对应方式来实现,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (18)

1.一种获取光模块链路协商信息的方法,其特征在于,所述方法包括:
获取光模块可读取的分区的信息;
当获取的所述光模块可读取的分区的信息对应的分区,与所述光模块中存储链路协商信息的分区不同,且记录的获取光模块链路协商信息的次数未达到预设阈值时,将所述光模块可读取的分区的信息修改为所述光模块中存储链路协商信息的分区的信息;
重新获取所述光模块可读取的分区的信息,并在获取的所述光模块可读取的分区的信息对应的分区,与所述光模块中存储链路协商信息的分区相同时,获取所述光模块的链路协商信息。
2.根据权利要求1所述的方法,其特征在于,在所述重新获取所述光模块可读取的分区的信息之前,所述方法还包括:
将记录的获取光模块链路协商信息的次数加1。
3.根据权利要求1或2所述的方法,其特征在于,在所述重新获取所述光模块可读取的分区的信息之后,所述方法还包括:
如果获取的所述光模块可读取的分区的信息对应的分区,与所述光模块中存储链路协商信息的分区不同,且记录的获取光模块链路协商信息的次数未达到所述预设阈值时,则再次将所述光模块可读取的分区的信息修改为所述光模块中存储链路协商信息的分区的信息,再次获取所述光模块可读取的分区的信息,并再次将记录的获取光模块链路协商信息的次数加1。
4.根据权利要求1或2所述的任一方法,其特征在于,所述方法还包括:
如果获取的所述光模块可读取的分区的信息对应的分区,与所述光模块中存储链路协商信息的分区不同,且记录的获取光模块链路协商信息的次数达到所述预设阈值,则终止获取所述光模块的链路协商信息。
5.根据权利要求1或2所述的任一方法,其特征在于,所述方法还包括:
当获取所述光模块可读取的分区信息失败且记录的获取光模块链路协商信息的次数未达到预设阈值时,重新获取所述光模块可读取的分区信息,并将记录的获取光模块链路协商信息的次数加1。
6.根据权利要求1或2所述的任一方法,其特征在于,所述方法还包括:
当获取所述光模块可读取的分区的信息失败时,重新获取所述光模块可读取的分区的信息。
7.根据权利要求1或2所述的任一方法,其特征在于:
所述光模块的链路协商信息,用于对所述光模块驱动管理过程中的链路协商;
所述光模块的链路协商信息包括:
连接器类型、光电参数、多模或单模、电压和发送偏移。
8.根据权利要求1或2所述的任一方法,其特征在于,所述方法还包括:
通过获取所述光模块的page select byte中的控制字节对应的内容获取光模块可读取的分区的信息,所述控制字节记录的是选通的分区的信息。
9.一种控制芯片,其特征在于,包括控制单元和获取单元,
所述获取单元,用于获取光模块可读取的分区的信息;
所述控制单元,用于在所述获取单元获取的所述光模块可读取的分区的信息对应的分区,与所述光模块中存储链路协商信息的分区不同,且记录的获取光模块链路协商信息的次数未达到预设阈值时,将所述光模块可读取的分区的信息修改为所述光模块中存储链路协商信息的分区的信息;
所述获取单元,还用于重新获取所述光模块可读取的分区的信息,并在获取的所述光模块可读取的分区的信息对应的分区,与所述光模块中存储链路协商信息的分区相同时,获取所述光模块的链路协商信息。
10.根据权利要求9所述的控制芯片,其特征在于,所述控制芯片还包括计数单元;
所述计数单元用于在将所述光模块可读取的分区的信息修改为所述光模块中存储链路协商信息的分区的信息后,将记录的获取光模块信息的次数加1。
11.根据权利要求9或10所述的控制芯片,其特征在于,所述获取单元还用于在所述获取单元获取的所述光模块可读取的分区的信息对应的分区,与所述光模块中存储链路协商信息的分区不同,且记录的获取光模块链路协商信息的次数达到预设阈值时,终止获取所述光模块的链路协商信息。
12.根据权利要求9或10所述的任一控制芯片,其特征在于,计数单元还用于当获取所述光模块可读取的分区信息失败且记录的获取光模块链路协商信息的次数未达到预设阈值时,将记录的获取光模块链路协商信息的次数加1。
13.根据权利要求9或10所述的任一控制芯片,其特征在于,所述获取单元还用于当获取所述光模块可读取的分区的信息失败时,重新获取所述光模块可读取的分区的信息。
14.根据权利要求9或10所述的任一控制芯片,其特征在于:
所述光模块的链路协商信息,用于对所述光模块驱动管理过程中的链路协商;
所述光模块的链路协商信息包括:
连接器类型、光电参数、多模或单模、电压和发送偏移。
15.根据权利要求9或10所述的任一控制芯片,其特征在于,所述获取单元通过获取所述光模块的page select byte中的控制字节对应的内容获取所述光模块可读取的分区的信息,所述控制字节记录的是所述光模块中选通的分区的信息。
16.一种控制设备,所述控制设备包括中央处理器、主存储器,其特征在于,所述控制设备还包括权利要求9-15所述的控制芯片。
17.一种存储设备,所述存储设备包括存储介质,其特征在于,所述存储设备还包括权利要求9-15所述的控制芯片。
18.一种存储系统,所述存储系统包括控制设备和存储设备,所述控制设备包括中央处理器、主存储器,所述存储设备包括存储介质,其特征在于:
所述控制设备还包括权利要求9-15所述的控制芯片;
所述存储设备还包括权利要求9-15所述的控制芯片。
CN201880003844.8A 2018-07-16 2018-07-16 获取光模块链路协商信息的方法、设备和系统 Active CN110998509B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/095831 WO2020014836A1 (zh) 2018-07-16 2018-07-16 获取光模块链路协商信息的方法、设备和系统

Publications (2)

Publication Number Publication Date
CN110998509A CN110998509A (zh) 2020-04-10
CN110998509B true CN110998509B (zh) 2021-11-09

Family

ID=69164196

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880003844.8A Active CN110998509B (zh) 2018-07-16 2018-07-16 获取光模块链路协商信息的方法、设备和系统

Country Status (4)

Country Link
US (1) US11256635B2 (zh)
EP (1) EP3805911A4 (zh)
CN (1) CN110998509B (zh)
WO (1) WO2020014836A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110998509B (zh) * 2018-07-16 2021-11-09 华为技术有限公司 获取光模块链路协商信息的方法、设备和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1859155A (zh) * 2005-07-02 2006-11-08 华为技术有限公司 链路状态自协商方法
CN1971497A (zh) * 2005-11-23 2007-05-30 普安科技股份有限公司 主机端为sas接口的冗余储存虚拟化子系统及其系统
US20070168396A1 (en) * 2005-08-16 2007-07-19 Zetera Corporation Generating storage system commands
CN102916776A (zh) * 2012-10-15 2013-02-06 青岛海信宽带多媒体技术有限公司 光模块参数传输方法及装置
CN106708445A (zh) * 2017-01-19 2017-05-24 北京腾凌科技有限公司 链路选择方法及装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3533082A (en) * 1968-01-15 1970-10-06 Ibm Instruction retry apparatus including means for restoring the original contents of altered source operands
US7062568B1 (en) * 2002-01-31 2006-06-13 Forcelo Networks, Inc. Point-to-point protocol flow control extension
JP4432388B2 (ja) * 2003-08-12 2010-03-17 株式会社日立製作所 入出力制御装置
US7600171B2 (en) * 2003-12-18 2009-10-06 Electronics And Telecommunications Research Institute Method of controlling FEC in EPON
US8218434B1 (en) * 2004-10-15 2012-07-10 Ciena Corporation Ethernet facility and equipment protection
WO2010103670A1 (en) * 2009-03-12 2010-09-16 Hitachi, Ltd. Storage apparatus and method for controlling the same
CN102055521B (zh) * 2009-11-11 2014-03-12 中兴通讯股份有限公司 读写光模块信息的控制方法及装置、光模块
CN102131248B (zh) * 2010-01-19 2013-12-04 华为技术有限公司 一种速率协商方法及数据传输系统以及相关设备
US10382590B2 (en) * 2011-08-29 2019-08-13 International Business Machines Corporation Emulating FICON over IP
US9225614B2 (en) * 2011-11-17 2015-12-29 Google Inc. Service and application layer optimization using variable rate optical transmission
CN107666415B (zh) * 2017-09-07 2020-11-03 北京京东尚科信息技术有限公司 Fc-ae-1553协议桥的优化方法和装置
CN110998509B (zh) * 2018-07-16 2021-11-09 华为技术有限公司 获取光模块链路协商信息的方法、设备和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1859155A (zh) * 2005-07-02 2006-11-08 华为技术有限公司 链路状态自协商方法
US20070168396A1 (en) * 2005-08-16 2007-07-19 Zetera Corporation Generating storage system commands
CN1971497A (zh) * 2005-11-23 2007-05-30 普安科技股份有限公司 主机端为sas接口的冗余储存虚拟化子系统及其系统
CN102916776A (zh) * 2012-10-15 2013-02-06 青岛海信宽带多媒体技术有限公司 光模块参数传输方法及装置
CN106708445A (zh) * 2017-01-19 2017-05-24 北京腾凌科技有限公司 链路选择方法及装置

Also Published As

Publication number Publication date
EP3805911A4 (en) 2021-06-30
US11256635B2 (en) 2022-02-22
CN110998509A (zh) 2020-04-10
EP3805911A1 (en) 2021-04-14
US20210133127A1 (en) 2021-05-06
WO2020014836A1 (zh) 2020-01-23

Similar Documents

Publication Publication Date Title
CN104516843B (zh) 基于fpga的非安装型存储器测试装置
US10127170B2 (en) High density serial over LAN management system
US20090024764A1 (en) Tracking The Physical Location Of A Server In A Data Center
CN109324991B (zh) 一种pcie设备的热插拔装置、方法、介质及系统
US20230153024A1 (en) System and method for nand multi-plane and multi-die status signaling
CN114116378B (zh) 获取PCIe设备温度的方法、系统、终端及存储介质
CN108170620A (zh) 一种服务器用硬盘拓展系统及方法、硬盘信号增强方法
CN105183575A (zh) 处理器故障的诊断方法、装置及系统
CN114817105B (zh) 设备枚举的方法、装置、计算机设备以及存储介质
US20130246857A1 (en) Controller, storage apparatus, method of testing storage apparatus, and tangible computer-readable storage medium
CN104572386A (zh) 一种Linux下自动测试HBA卡带宽的方法
CN110998509B (zh) 获取光模块链路协商信息的方法、设备和系统
CN112000535A (zh) 一种基于SAS Expander卡的硬盘异常识别方法及处理方法
WO2008085240A1 (en) Universal serial bus host controller
CN116539992A (zh) 存储设备在位稳定状态检测装置、方法、逻辑模块及介质
CN115480621B (zh) 计算驱动器、用于计算驱动器的方法及机器可读介质
CN113609036A (zh) 一种基于u.3接口的硬盘背板
US20110119529A1 (en) Virtual hard disk drive
US9794120B2 (en) Managing network configurations in a server system
CN115599311B (zh) 极性反转方法及装置、存储介质、电子装置
CN103365811A (zh) 电子装置和主机确定方法
CN218768133U (zh) 一种基于国产处理器的台式机主板
TWI822503B (zh) 匯流排位址設定方法
WO2023160691A1 (zh) 一种基于连接器的端口管理方法及相关设备
KR101265233B1 (ko) 초기 저장장치 생산 및 테스트용 호스트 버스 아답터

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant