CN113778915B - 生产固态硬盘的方法及计算机可读取存储介质及装置 - Google Patents

生产固态硬盘的方法及计算机可读取存储介质及装置 Download PDF

Info

Publication number
CN113778915B
CN113778915B CN202010516962.8A CN202010516962A CN113778915B CN 113778915 B CN113778915 B CN 113778915B CN 202010516962 A CN202010516962 A CN 202010516962A CN 113778915 B CN113778915 B CN 113778915B
Authority
CN
China
Prior art keywords
port
solid state
state disk
configuration table
ports
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
CN202010516962.8A
Other languages
English (en)
Other versions
CN113778915A (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.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
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 Silicon Motion Inc filed Critical Silicon Motion Inc
Priority to CN202010516962.8A priority Critical patent/CN113778915B/zh
Priority to US17/119,400 priority patent/US11513989B2/en
Publication of CN113778915A publication Critical patent/CN113778915A/zh
Application granted granted Critical
Publication of CN113778915B publication Critical patent/CN113778915B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4072Drivers or receivers
    • 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/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • 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
    • 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/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • 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/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/409Mechanical coupling
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • 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/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提出一种生产固态硬盘方法,由生产主机的处理单元执行。生产主机包含装置接口,且装置接口包含多个第一端口。每个第一端口连接一个集线器,且每个集线器包含多个第二端口。上述方法包含:加载端口映射配置表,包含代表每个第二端口的位置信息;比对硬件描述文件中的位置信息和端口映射配置表中的位置信息来判断每个第二端口是否连接固态硬盘;在显示器上显示图形用户界面,用于指出每个第二端口是否连接固态硬盘的信息;以及当第二端口中的一个所连接的固态硬盘开卡失败时,更新图形用户界面,用于指出相应第二端口所连接的固态硬盘发生开卡失败的信息。通过如上所述的比对,能够自动标识生产系统中每个集线器上的端口。

Description

生产固态硬盘的方法及计算机可读取存储介质及装置
技术领域
本发明涉及存储装置,尤指一种生产固态硬盘的方法、计算机可读取存储介质及装置。
背景技术
固态硬盘通常需要完成开卡程序后才能出厂销售,而开卡程序耗费的时间在固态硬盘的生产上是个重要的课题。一部生产主机通常可以通过装置接口的端口连接5至16个固态硬盘,并且对连接上的固态硬盘进行开卡。然而,传统上,当其中一个固态硬盘的开卡失败时,生产主机无法自动知道实际上是哪一个固态硬盘发生了错误,需要生产人员以人工的方式将连接的固态硬盘拔下来确认,拉长了生产的时间。因此,本发明提出一种生产固态硬盘的方法、计算机可读取存储介质及装置,用于解决如上所述的问题。
发明内容
有鉴于此,如何减轻或消除上述相关领域的缺失,实为有待解决的问题。
本发明提出一种生产固态硬盘的方法,所述方法由生产主机的处理单元执行。生产主机包含装置接口,且装置接口包含多个第一端口。每个第一端口连接一个集线器,且每个集线器包含多个第二端口。所述方法包含:加载端口映射配置表,包含代表每个第二端口的位置信息;比对硬件描述文件中的位置信息和端口映射配置表中的位置信息来判断每个第二端口是否连接固态硬盘;在显示器上显示图形用户界面,用于指出每个第二端口是否连接固态硬盘的信息;以及当第二端口中的一个所连接的固态硬盘开卡失败时,更新图形用户界面,用于指出相应第二端口所连接的固态硬盘发生开卡失败的信息。
本发明还提供一种生产固态硬盘的计算机可读取存储介质,用于存储能够被生产主机的处理单元执行的计算机程序,并且所述计算机程序被所述生产主机的处理单元执行时实现以上所述的方法。
本发明还提供一种生产固态硬盘的装置,包含:所述装置接口和处理单元。处理单元耦接装置接口,用于加载并执行如上所述的计算机程序时,实施如上所述的方法。
上述实施例的优点之一,通过如上所述的比对,能够自动标识生产系统中每个集线器上的每个端口是否连接固态硬盘。
上述实施例的另一优点,通过如上所述的端口映射配置表中包含的信息,当某个固态硬盘开卡失败时,能够自动辨认是哪个端口上连接的固态硬盘在开卡过程中发生错误。
本发明的其他优点将配合以下的说明和附图进行更详细的解说。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为依据本发明实施例的生产阶段示意图。
图2为依据本发明实施例的训练系统的示意图。
图3为依据本发明实施例的定端口主机和训练固态硬盘的框图。
图4为依据本发明实施例的定端口方法流程图。
图5为依据本发明实施例的生产系统的示意图。
图6为依据本发明实施例的生产主机和固态硬盘的框图。
图7为依据本发明实施例的开卡方法流程图。
图8和图9为依据本发明实施例的图形用户界面的示意图。
【附图标记列表】
110 定端口阶段
130 开卡阶段
140 训练计算机
160 端口映射配置表
180 生产计算机
20 训练系统
210 定端口主机
212 装置接口
214-1~214-4、232-1~232-4 端口
230 集线器
250、250-1~250-4 训练固态硬盘
270 显示器
312 处理单元
314 随机存取存储器
316 存储单元
330 闪存控制器
332 主机接口
350 闪存模块
S410~S480 方法步骤
50 生产系统
510 生产主机
512 装置接口
514-1~514-4、532-1~532-4 端口
530 集线器
550、550-1~550-4 固态硬盘
570 显示器
612、637 处理单元
614 随机存取存储器
616 存储单元
632 主机接口
634 闪存接口
636 易失性随机存取存储器
638 只读存储器
650 闪存模块
S710~S790 方法步骤
800 图形用户界面
810#1~810#16 信息框
具体实施方式
以下将配合相关附图来说明本发明的实施例。在这些附图中,相同的标号表示相同或类似的组件或方法流程。
必须了解的是,使用于本说明书中的“包含”、“包括”等词,是用于表示存在特定的技术特征、数值、方法步骤、作业处理、组件和/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、组件、组件,或以上的任意组合。
本发明中使用如“第一”、“第二”、“第三”等词是用来修饰权利要求中的组件,并非用来表示之间具有优先权顺序,先行关系,或者是一个组件先于另一个组件,或者是执行方法步骤时的时间先后顺序,其仅用来区别具有相同名字的组件。
必须了解的是,当组件描述为“连接”或“耦接”至另一组件时,可以是直接连结、或耦接至其他组件,可能出现中间组件。相反地,当组件描述为“直接连接”或“直接耦接”至另一组件时,其中不存在任何中间组件。使用于描述组件之间关系的其他语词也可类似方式解读,例如“介于”相对于“直接介于”,或者“邻接”相对于“直接邻接”等等。
为了让生产计算机能够自动区别每个端口上连接的固态硬盘(Solid StateDisk,SSD),本发明实施例将整个生产流程分为两个阶段:定端口(Port Distinguishing)阶段和开卡(Card Activation)阶段。参考图1,在定端口阶段110,训练计算机140分析操作系统(Operating System,OS)中的硬件描述文件(Hardware Description File)的内容,用于获取每个物理端口的标识信息,例如串行先进技术附件/快速外设组件互联登录文件(Serial Advanced Technology Attachment,SATA/Peripheral Component InterconnectExpress,PCIe Registries)、总线编号(Bus Number)、目标标识码(Target ID)、逻辑单元号(Logical Unit Number,LUN)等,并据以产生端口映射配置表(Port-mappingConfiguration Table)160。在开卡阶段130,生产计算机180加载端口映射配置表160,并且为多个连接上生产计算机180的固态硬盘执行开卡程序。在开卡程序中,如果生产计算机180发现任何错误信息,可依据端口映射配置表160的信息辨认出是哪个物理端口上连接的固态硬盘发生错误,并显示在图形用户界面(Graphical User Interface,GUI),有利于操作人员和/或生产计算机180执行错误排除处理。在这里需要注意的是训练计算机140和生产计算机180可以是两部拥有相同的必要软件和硬件配置的计算机,或者是同一部计算机。
参考图2。训练系统20包含定端口主机(Port-distinguishing Host)210、集线器(Hub)230、训练固态硬盘250及显示器270。图1所述的训练计算机140可包含定端口主机210、集线器230和显示器270。训练固态硬盘250可包含闪存控制器及多个闪存模块。显示器270可以是薄膜晶体管液晶显示器(Thin Film Transistor-Liquid Crystal Display,TFT-LCD Display)、有机发光二极管显示器(Organic Light-Emitting Diode,OLEDDisplay)等,在训练流程中显示让工程师或操作员可以观看的画面,包含提示的文字、数字、符号、图案等,或以上任意组合。
定端口主机210可用个人计算机、笔记本计算机(Laptop PC)、工业用计算机(Industrial Computer)、工作站(Workstation)等实施。定端口主机210包含装置接口212,具有多个端口(ports)214-1至214-4,每个端口可连接一个集线器,例如端口214-1连接集线器230。虽然图2描述的装置接口212只配备4个端口,但所属技术领域中的技术人员可在装置接口212上配备更多或更少的端口,让定端口主机210能够连接上更多或更少的集线器,本发明不应因此受限。集线器230包含多个端口232-1至232-4,每个端口可插上一个训练固态硬盘250,例如训练固态硬盘250-1至250-4中的任何一个。需注意的是,为了让说明书简明,以下段落使用训练固态硬盘250来描述时,代表其说明的结构、功能、方法步骤或其他技术内容能够应用在训练固态硬盘250-1至250-4和其他中的任何一个。虽然图1描述的集线器230具有4个端口,但所属技术领域中的技术人员可将具有更多或更少端口的集线器连接上定端口主机210,使得定端口主机210能够连接上更多或更少的训练固态硬盘,本发明不应因此受限。
参考图3。由于集线器230连接装置接口212上的一个端口并且在训练固态硬盘250插上集线器230时,等同于训练固态硬盘250物理性连接上定端口主机210,所以图3中省略了图2所示的集线器230。定端口主机210包含处理单元312,可使用多种方式实施,如使用通用硬件(例如,单处理器、具有并行处理能力的多处理器、图形处理器或其他具运算能力的处理器),并且在执行软件以和/或固件指令时,例如,定端口工具(Port-distinguishingTool)、操作系统(Operating System,OS)、驱动程序(Driver)等,提供指定的功能。处理单元312可通过装置接口212传送命令给训练固态硬盘250,完成所需要的操作。
训练固态硬盘250包含闪存控制器330及闪存模块350。闪存模块350提供大量的存储空间,通常是数百个千兆字节(Gigabytes),甚至是数个兆兆字节(Terabytes),用于存储大量的用户数据,例如高分辨率图片、影片等。闪存控制器130包含主机接口332,并且主机接口332耦接定端口主机210的装置接口212。
为了区分如图2所示的装置接口212的端口214-1至214-4和集线器230的端口232-1至232-4,需要提供硬件描述文件来标识端口214-1至214-4和端口232-1至232-4,使得软件程序在执行时能够知道一个输出输入设备通过端口214-1至214-4和端口232-1至232-4中的某一个连接上定端口主机210。例如,窗口注册表(Windows Registry)是一种存储底层设定的阶层式数据库,用于提供给窗口操作系统(Windows OS)和应用程序使用。详细来说,窗口登录文件包含定端口主机210的硬件(如SATA/PCIe接口等)和连接上定端口主机210的装置(如固态硬盘)的信息、设定、选项和其他值。当一个固态硬盘通过集线器230的一个端口连接上定端口主机210时,窗口注册表会加入一个新的子键(Subkey),该子键包含多个值(Values),用于存储如硬件标识码、位置信息、制造商、服务等的设定值。
本发明实施例提出一种定端口方法,由处理单元312加载并执行定端口工具的程序码时实施。参考图4。以窗口操作系统为例,详细说明如下:
步骤S410:设定变量i=1。变量i用于记录定端口的顺序编号。
接着,流程反复执行一个循环,包含步骤S420至S480。在每个回合执行前,操作人员将一个训练固态硬盘插入指定的端口。举例来说,集线器230的端口232-1、端口232-2、端口232-3和端口232-4可依序标示为Port#1、Port#2、Port#3和Port#4。操作人员将训练固态硬盘250-1插入端口232-1后,处理单元312执行步骤S420至S480为端口Port#1定端口。接着,操作人员将训练固态硬盘250-2插入端口232-2后,处理单元312执行步骤S420至S480为端口Port#2定端口。这个过程会一直重复,直到必要的端口都完成定端口为止。
步骤S420:获取相应于新插入的固态硬盘所增加到窗口注册表的子键(Subkey)。举例来说,处理单元312可执行微软应用程序接口(Application Programming Interface,API)功能“CreateFile”来获取窗口登录文件中路径“Enum\SCSI”的句柄。接着,处理单元312可执行微软API功能“DeviceIOControl”来检查获取的句柄中是否有新增加的子键。如果有新增加的子键,代表侦测到一个新增加的小型计算机系统接口(Small ComputerSystem Interface,SCSI)装置,则获取此子键的类型类全局唯一标识码(ClassGUID)。如果没有新增加的子键,处理单元312可执行微软API功能“CreateFile”来获取窗口登录文件中路径“Enum\IDE”的句柄。接着,处理单元312可执行微软API功能“DeviceIOControl”来检查获取的句柄中是否有新增加的子键。如果有新增加的子键,代表侦测到一个新增加的整合装置电路(Integrated Drive Electronics,IDE)装置,则获取此子键的类型全局唯一标识码。
步骤S430:从新增加的子键中获取第i个端口的位置信息和装置路径序号。举例来说,处理单元312可执行微软API功能“WINSETUPAPI SetupDiGetClassDevs”,用于依据类型全局唯一标识码(在步骤S420获取)来获取指向特定装置信息集(Device InformationSet)的句柄“HDEVINFO”。处理单元312可执行微软API功能“WINSETUPAPISetupDiEnumDeviceInterface”,用于列举句柄“HDEVINFO”中包含的装置接口(DeviceInterfaces),装置接口的数据可存储在RAM 314中的默认缓冲区。处理单元312可执行微软API功能“WINSETUPAPI SetupDiGetDeviceInterfaceDetail”,用于取得装置接口的详细数据,其中包含装置路径(Device Path)和位置信息(Location Information)。位置信息包含三个部分:总线编号(Bus Number);目标标识码(Target ID);和逻辑单元号(Logical UnitNumber,LUN)。举例来说,位置信息可用于标识图2中集线器230的端口232-1至232-4中的一个。处理单元312可从装置路径中断出第二个到第三个井字号(“#”,Hashtag)之间的字符串,并取出字符串中最后一个及符号(“&”,Ampersand)之前的字符作为装置路径序号。例如,处理单元312可从SCSI装置的装置路径“\\?\scsi#disk&ven_wdc&prod_wd10spzx-08z10#4&2e835db4&0&000200#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}”取出装置路径序号“4&2e835db4&0”。又例如,处理单元312可从IDE装置的装置路径“\\?\ide#disksmi_disk________________________________q0921b__#5&39170d91&0&1.0.0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}”取出装置路径序号“5&39170d91&0”。
步骤S440:根据第i个端口的装置路径序号获取第i个端口的PCI或IDE注册表。处理单元312可根据步骤S420侦测到的新增加子键是在哪个路径中的信息来决定要扫描的是PCI或IDE注册表。
如果新增加子键是在路径“Enum\SCSI”中,则处理单元312扫描PCI登录文件。举例来说,处理单元312执行微软API功能“CreateFile”来获取窗口登录文件中路径“Enum\PCI”的句柄。处理单元312可执行微软API功能“DeviceIOControl”来获取句柄中的所有子键。接着,针对每一个子键,参考如步骤S420所述的技术内容,处理单元312可执行微软API功能“WINSETUPAPI SetupDiGetClassDevs”、“WINSETUPAPI SetupDiEnumDeviceInterface”和“WINSETUPAPI SetupDiGetDeviceInterfaceDetail”来获取登录值(Registry Value)“ParentIdPrifix”,并比较登录值“ParentIdPrifix”是否相符于步骤S430中获取的装置路径序号。如果相符,则代表此子键包含第i个端口的PCI登录文件,处理单元S312可执行微软API功能“WINSETUPAPI SetupDiGetDeviceInterfaceDetail”来获取PCI注册表。处理单元312可从PCI注册表中断出第二个反斜杠(“\”,Backslash)到最后一个及符号(“&”,Ampersand)之间的字符串,作为PCI装置的装置路径序号。例如,处理单元312可从PCI装置的装置路径“PCI\VEN_8086&DEV_9D03&SUBSYS_225D17AA&REV_21\3&11583659&0&B8”取出装置路径序号“3&11583659&0”。
如果新增加子键是在路径“Enum\IDE”中,则处理单元312扫描PCIIDE登录文件。举例来说,处理单元312执行微软API功能“CreateFile”来获取窗口登录文件中路径“Enum\PCIIDE”的句柄。处理单元312可执行微软API功能“DeviceIOControl”来获取句柄中的所有子键。接着,针对每一个子键,参考如步骤S420所述的技术内容,处理单元312可执行微软API功能“WINSETUPAPI SetupDiGetClassDevs”、“WINSETUPAPISetupDiEnumDeviceInterface”和“WINSETUPAPI SetupDiGetDeviceInterfaceDetail”来获取登录值“ParentIdPrifix”,并比较登录值“ParentIdPrifix”是否相符于步骤S430中获取的装置路径序号。如果相符,则代表此子键包含第i个端口的IDE登录文件,处理单元S312可执行微软API功能“WINSETUPAPI SetupDiGetDeviceInterfaceDetail”来获取IDE注册表。处理单元312可从IDE注册表中断出第二个反斜杠(“\”,Backslash)到最后一个及符号(“&”,Ampersand)之间的字符串,作为IDE装置的装置路径序号。例如,处理单元312可从IDE装置的装置路径“PCIIDE\IDEChannel\4&1dd8ffee&0&1”取出装置路径序号“4&1dd8ffee&0”。
步骤S450:依据PCI或IDE装置的装置路径序号获取SATA或PCIe注册表。举例来说,处理单元312可执行微软API功能“CreateFile”来获取窗口登录文件中路径“Enum\PCI”的句柄。处理单元312可执行微软API功能“DeviceIOControl”来获取句柄中的所有子键。接着,针对每一个子键,参考如步骤S420所述的技术内容,处理单元312可执行微软API功能“WINSETUPAPI SetupDiGetClassDevs”、“WINSETUPAPI SetupDiEnumDeviceInterface”和“WINSETUPAPI SetupDiGetDeviceInterfaceDetail”来获取登录值“ParentIdPrifix”,并比较登录值“ParentIdPrifix”是否相符于步骤S440中获取的装置路径序号。如果相符,则代表此子键包含第i个端口的SATA登录文件,处理单元S312可执行微软API功能“WINSETUPAPI SetupDiGetDeviceInterfaceDetail”来获取SATA注册表。
如果在窗口登录文件中路径“Enum\PCI”的句柄找不到相符的登录文件,处理单元312执行微软API功能“CreateFile”来获取窗口登录文件中路径“Enum\ACPI”的句柄。处理单元312可执行微软API功能“DeviceIOControl”来获取句柄中的所有子键。接着,针对每一个子键,参考如步骤S420所述的技术内容,处理单元312可执行微软API功能“WINSETUPAPISetupDiGetClassDevs”、“WINSETUPAPI SetupDiEnumDeviceInterface”和“WINSETUPAPISetupDiGetDeviceInterfaceDetail”来获取登录值“ParentIdPrifix”,并比较登录值“ParentIdPrifix”是否相符于步骤S440中获取的装置路径序号。如果相符,则代表此子键包含第i个端口的PCIe登录文件,处理单元S312可执行微软API功能“WINSETUPAPISetupDiGetDeviceInterfaceDetail”来获取PCIe注册表,“ACPI\PNP0A08\0”。举例来说,SATA或PCIe注册表可用于标识图2中装置接口212的端口214-1至214-4中的一个。
步骤S460:存储第i个端口的定端口信息到RAM 314和/或存储单元316中的端口映射配置表160。定端口信息包含步骤S430获取的位置信息和步骤S450获取的SATA或PCIe注册表。表1显示端口映射配置表160的部分示例:
表1
举例来说,端口映射配置表160的第1至第4笔记录分别存储端口Port#1至Port#4的位置信息和PCIe登录文件。
步骤S470:判断是否定端口操作完成。如果是,则流程结束,端口映射配置表160制作完成。否则,流程继续进行步骤S480的处理。
步骤S480:计算i=i+1。
当流程结束后,定端口主机210的RAM 314或存储单元316中的端口映射配置表160可以输出到生产计算机180,让开卡程序参考用。
在这里需要注意的是,由于操作人员以默认的顺序逐一插入训练固态硬盘到集线器的所有端口,因此,端口映射配置表160中的位置信息的顺序相符于集线器的端口的默认物理安排。
参考图5。生产系统50包含生产主机(Production Host)510、集线器530、固态硬盘550-1至550-4及显示器570。针对每一个固态硬盘550,在闪存控制器及闪存模块设置在母板后,还需要完成开卡流程(Card-activation Process)才能够出厂并提供给客户。显示器570可以是薄膜晶体管液晶显示器、有机发光二极管显示器等,在开卡流程中显示让工程师或操作员可以观看的画面,包含提示的文字、数字、符号、图案等,或以上任意组合。
在正常情况下,生产主机510中的装置接口512,和集线器530拥有相同或者匹配于定端口主机210的装置接口212,和集线器230的软硬件设置。为了让说明书简明,以下段落使用固态硬盘550来描述时,代表其说明的结构、功能、方法步骤或其他技术内容能够应用在固态硬盘550-1至550-4和其他中的任何一个。
参考图6。由于集线器530连接装置接口512上的一个端口并且固态硬盘550插上集线器530时,等同于固态硬盘550物理性连接上生产主机510,所以图6中省略了图1所示的集线器530。生产主机510包含处理单元612,可使用多种方式实施,如使用通用硬件(例如,单处理器、具并行处理能力的多处理器、图形处理器或其他具运算能力的处理器),并且在执行软件以和/或固件指令时,例如,量产工具(Mass Production,MP Tool)、操作系统(Operating System,OS)、驱动程序(Driver)等,提供指定的功能。处理单元612可发出指令给装置接口512,用于传送供货商命令(Vendor Command)给固态硬盘550,完成开卡流程中所需要的操作。供货商命令不是标准的主机操作命令,例如,通用闪存存储器(UniversalFlash Storage,UFS)、快速非易失性存储器(Non-Volatile Memory Express,NVMe)、开放通道固态硬盘(Open-channel Solid State Disk,SSD)等定义的管理命令、输入输出命令等,而是由固态硬盘550或者闪存控制器630的制造商提供给客户的自定义命令(Proprietary Commands)。
生产主机510包含存储单元616,可以为硬盘(Hard Disk)、固态硬盘,用于存储端口映射配置表160。生产主机510另包含RAM 614,用于执行开卡流程中需要的暂存数据,例如,变量、标志、端口映射配置表160等。
固态硬盘550包含闪存控制器630及闪存模块650。闪存模块650提供大量的存储空间,通常是数百个千兆字节(Gigabytes),甚至是数个兆兆字节(Terabytes),用于存储大量的用户数据,例如高分辨率图片、影片等。闪存模块650中包含控制电路以及存储器数组,存储器数组中的存储单元可包含单层式单元(Single Level Cells,SLCs)、多层式单元(Multiple Level Cells,MLCs)三层式单元(Triple Level Cells,TLCs)、四层式单元(Quad-Level Cells,QLCs)或上述的任意组合。
闪存控制器630包含主机接口632、闪存接口634、易失性随机存取存储器(Volatile Random Access Memory,VRAM)636、处理单元637、只读存储器(Read-OnlyMemory,ROM)638和输入输出接口639。主机接口632耦接生产主机510的装置接口512。闪存接口(Flash Interface)634耦接闪存模块650,可以双倍数据率(Double Data Rate,DDR)通信协议彼此通信,例如,开放NAND闪存接口(Open NAND Flash Interface,ONFI)、双倍数据率开关(DDR Toggle)或其他接口通信协议。处理单元637可以如上所述的通用硬件实施。VRAM 636存储执行开卡流程中需要的暂存数据,例如,变量、标志、数据表等。
参考图7。本发明实施例提出一种开卡方法,由处理单元612加载并执行量产工具的程序码时实施。此方法包含以下步骤:加载之前由定端口主机210产生的端口映射配置表160,包含集线器530中每个端口的位置信息;比对硬件描述文件中的位置信息和端口映射配置表160中的位置信息来判断集线器530中的每个端口是否连接固态硬盘;在显示器570上显示GUI,用于指出集线器530中每个端口是否连接固态硬盘的信息;以及当其中一个端口所连接的固态硬盘开卡失败时,更新GUI,用于指出相应端口所连接的固态硬盘发生开卡失败的信息。硬件描述文件由生产主机510运行的操作系统提供。详细说明如下:
步骤S710:从存储单元616加载端口映射配置表160,并且存储于RAM 614中以供快速查找。端口映射配置表160可参考表1或表2(将在以下段落描述)的示例。
步骤S720:判断端口映射配置表160的所有SATA/PCIe登录文件是否存在生产主机510的操作系统的窗口登录文件。如果是,流程继续步骤S730的处理。否则,代表曾经用于产生端口映射配置表160的训练主机210的软硬件设置和生产主机510并不相同或不匹配,流程结束。
详细来说,针对端口映射配置表160中的每一个SATA登录文件,处理单元612可执行微软API功能“CreateFile”来获取窗口登录文件中路径“Enum\PCI”的句柄。处理单元612可执行微软API功能“DeviceIOControl”来获取句柄中的所有子键。接着,针对每一个子键,参考如步骤S420所述的技术内容,处理单元612可执行微软API功能“WINSETUPAPISetupDiGetClassDevs”、“WINSETUPAPI SetupDiEnumDeviceInterface”和“WINSETUPAPISetupDiGetDeviceInterfaceDetail”来检查是否存在相同的SATA注册表。当端口映射配置表160中有任何一个SATA注册表在此句柄中的所有子键内都找不到时,代表曾经用于产生端口映射配置表160的训练主机210的软硬件设置和生产主机510并不相同或不匹配。
此外,针对端口映射配置表160中的每一个PCIe登录文件,处理单元612可执行微软API功能“CreateFile”来获取窗口登录文件中路径“Enum\ACPI”的句柄。处理单元612可执行微软API功能“DeviceIOControl”来获取句柄中的所有子键。接着,针对每一个子键,参考如步骤S420所述的技术内容,处理单元612可执行微软API功能“WINSETUPAPISetupDiGetClassDevs”、“WINSETUPAPI SetupDiEnumDeviceInterface”和“WINSETUPAPISetupDiGetDeviceInterfaceDetail”来检查是否存在相同的PCIe注册表。当端口映射配置表160中有任何一个PCIe注册表在此句柄中的所有子键内都找不到时,代表曾经用于产生端口映射配置表160的训练主机210的软硬件设置和生产主机510并不相同或不匹配。
步骤S730:扫描连接上生产主机的固态硬盘。举例来说,参考步骤S420和S430的技术内容,处理单元612可执行微软API功能“CreateFile”、“DeviceIOControl”、“WINSETUPAPI SetupDiGetClassDevs”、“WINSETUPAPI SetupDiEnumDeviceInterface”和“WINSETUPAPI SetupDiGetDeviceInterfaceDetail”来获取所有连接上生产主机510的SCSI装置和IDE装置的位置信息。接着,处理单元612比对所有连接的SCSI装置和IDE装置的位置信息和端口映射配置表160中的所有位置信息,判断生产主机510上的哪些端口已经连接上固态硬盘550,并且在显示器570的图形用户界面(Graphical User Interface,GUI)显示侦测的连接结果。例如,GUI上可显示每一个端口上是否连接一个固态硬盘,每一个端口的位置信息,以及每个端口上连接的固态硬盘的开卡状态。
在一些实施例中,处理单元612可在GUI上显示固态硬盘550连接到的集线器上的端口的位置信息的内容,例如,总线编号,目标标识码,逻辑单元号,或以上的任意组合。
在另一些实施例中,处理单元612还可依据特定端口的总线编号和目标标识码计算端口号(Port Number),并且使用端口号来代表特定端口的位置信息,示例的公式如下:
PN=BusN*MAX_PCI_TARGET_NUM+TargetID
其中,PN代表特定端口的端口号,BusN代表特定端口的总线编号,TargetID代表特定端口的目标标识码,MAX_PCI_TARGET为常数,设为大于0的整数,例如,48。表2显示根据表1的端口映射配置表160的位置信息的计算结果:
表2
端口 端口号 SATA/PCIe注册表
Port#1 2 ACPI\PNP0A08\0
Port#2 4 ACPI\PNP0A08\0
Port#3 6 ACPI\PNP0A08\0
Port#4 8 ACPI\PNP0A08\0
假设固态硬盘550-1至550-4分别连接上集线器530的端口532-1至532-4:参考图8,图形用户界面800中的信息框810#1至810#4分别显示端口P#1至端口P#4的端口号(如表2所示)和开卡状态。图形用户界面800的方框810#5至810#16则以反斜杠来代表端口P#5至端口P#16并没有连接任何固态硬盘。
在这里需要注意的是,如果只搜索窗口注册表,而没有提供如本发明实施例所述的端口映射配置表160,只能得到所有固态硬盘连接的集线器上端口的位置信息。换句话说,生产主机不知道集线器包含的端口的总数量,并且从窗口登录文件搜索到的位置信息间也没有可以参考的顺序关系。因此,就算得到了所有的位置信息,也无法让这些位置信息能够跟集线器上的端口的物理安排产生关联。
步骤S740:设定变量i=1。变量i用于记录开卡的顺序编号。
步骤S750:为连接上第i个端口的固态硬盘进行开卡。
举例来说,在开卡流程中,处理单元637可从只读存储器(Read-Only Memory,ROM)638加载并执行用于处理从生产主机110发出的供货商命令的程序码(又可称为供货商命令处理代码)。为了响应从生产主机510发出的初始化装置命令,处理单元637执行供货商命令处理代码时可通过闪存接口634对闪存模块650进行一连串的测试,用于找出坏块(BadBlocks)、坏行(Bad Columns)等,并据以产生坏块表、坏行表等。供货商命令处理代码可依据侦测到的坏行数量等参数来计算每个物理页面能够用于存储错误检查校验码(ErrorCheck and Correction,ECC Code)的长度。供货商命令处理代码可依据坏行表及ECC长度等信息计算每一个物理页面中每一个区段(Sector)的起始位置,并据以产生区段起始表。供货商命令处理代码可依据坏块数目、坏行数目、ECC长度等信息计算闪存模块250能够存储的逻辑区块地址数目(Logical Address Block,LBA quantity)。供货商命令处理代码可将以上所述的数据表、变量等信息存储在VRAM 636中,并且通过驱动主机接口632回复初始化完成的信息给生产主机510,用于通知量产工具。量产工具可将初始化完成的信息显示在显示器570,用于提示操作员或工程师。
量产工具从固态硬盘650接收到初始化完成的信息后,其中可包含闪存模块650能够存储的LBA数目等信息,发出下载信息(DOWNLOAD INFO)的供货商命令给闪存装置650,用于指示固态硬盘650将初始化结果存储于非易失性存储空间,例如闪存模块650。为了响应下载信息命令,处理单元637执行供货商命令处理代码时可将VRAM 636中存储的数据表、变量等信息通过闪存接口634写入闪存模块650的系统块(System Block)。所属技术领域人员理解上述产生的数据表、变量等信息是系统内程序码(In-System Programming,ISP Code,又可称为固件)将来执行时需要的参考信息。系统内程序码包含用于执行从主机发出的主机命令的操作,例如主机读取、写入、抹除命令等。主机命令为由标准制定组织所规范命令,例如UFS、NVMe、Open-channel SSD命令等。供货商命令处理代码可通过驱动主机接口632回复下载信息完成的信息给生产主机510,用于通知量产工具。量产工具可将开卡完成的信息显示在显示器570,用于提示操作员或工程师。例如,改变图8所示信息框810#1至810#4中的一个的状态为“完成”。
然而,固态硬盘550可能在如上所述的开卡流程中的某个操作上失败,处理单元637可通过驱动主机接口632回复适当的错误码或错误信息给生产主机510,用于让量产工具可将错误码或错误信息显示在显示器570,用于提示操作员或工程师。接着,量产工具、操作员或工程师可对连接在第i个端口的固态硬盘进行错误排除操作。
步骤S760:依据第i个端口上连接的固态硬盘550的回复信息判断是否开卡成功。如果是,则流程继续进行步骤S780的处理。否则,流程继续进行步骤S770的处理。
步骤S770:在GUI上显示第i个端口的固态硬盘开卡失败的信息。假设固态硬盘550-3在开卡过程中失败:参考图9,图形用户界面800中的信息框810#3显示端口P#3的开卡状态为“失败”。
步骤S780:判断是否完成所有固态硬盘的开卡。如果是,则流程结束。否则,流程继续进行步骤S790的处理。
步骤S790:计算i=i+1。
通过比对如上所述端口映射配置表160和生产主机510中执行的操作系统所提供的硬件描述文件,能够标识生产系统50中每个集线器上的每个端口是否连接固态硬盘。并且,当某个固态硬盘开卡失败时,能够自动辨认是哪个端口上连接的固态硬盘在开卡过程中发生错误。
本发明所述的方法中的全部或部分步骤可以计算机程序实现,例如计算机的操作系统、计算机中特定硬件的驱动程序、或软件程序。此外,也可实现于如上所示的其他类型程序。所属技术领域中的技术人员可将本发明实施例的方法撰写成计算机程序,为求简明不再加以描述。依据本发明实施例方法实施的计算机程序可存储于适当的计算机可读取数据介质,例如DVD、CD-ROM、U盘、硬盘,也可置于可通过网络(例如,互联网,或其他适当介质)存取的网络服务器。
虽然图2、图3、图5和图6中包含了以上描述的组件,但不排除在不违反发明的精神下,使用更多其他的附加组件,已达成更佳的技术效果。此外,虽然图4和图7的流程图采用指定的顺序来执行,但是在不违反发明精神的情况下,所属技术领域的技术人员可以在达到相同效果的前提下,修改这些步骤之间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。此外,所属技术领域的技术人员也可以将若干步骤整合为一个步骤,或者是除了这些步骤外,循序或并行地执行更多步骤,本发明不因此而局限。
虽然本发明使用以上实施例进行说明,但需要注意的是,这些描述并非用于限制本发明。相反地,此发明涵盖了所属技术领域中的技术人员显而易见的修改与相似设置。所以,本申请的保护范围当以权利要求书所界定的范围为准。

Claims (7)

1.一种生产固态硬盘的方法,由生产主机的处理单元执行,其中,所述生产主机包含装置接口,所述装置接口包含多个第一端口,每个所述第一端口连接集线器,每个所述集线器包含多个第二端口,其特征在于,所述方法包含:
加载端口映射配置表,包含代表每个所述第二端口的位置信息,所述端口映射配置表中的位置信息的顺序相符于所述集线器的所述第二端口的默认物理安排;
比对硬件描述文件中的位置信息和所述端口映射配置表中的位置信息来判断每个所述第二端口是否连接固态硬盘,其中所述硬件描述文件由所述生产主机运行的操作系统提供;
在显示器上显示图形用户界面,用于指出每个所述第二端口是否连接固态硬盘的信息;以及
当所述第二端口中的一个所连接的固态硬盘开卡失败时,更新所述图形用户界面,用于指出所述第二端口所连接的固态硬盘发生开卡失败的信息;所述图形用户界面显示每个所述第二端口的端口号和开卡状态,所述开卡状态为所述第二端口是否连接固态硬盘,所述端口号使用以下公式计算:
PN=BusN*MAX_PCI_TARGET_NUM+TargetID
PN代表所述第二端口的端口号,BusN代表所述第二端口的总线编号,TargetID代表所述第二端口的目标标识码,以及MAX_PCI_TARGET_NUM为常数,设为大于0的整数。
2.如权利要求1所述的生产固态硬盘的方法,其特征在于,所述操作系统为窗口操作系统,以及所述硬件描述文件为窗口注册表。
3.如权利要求2所述的生产固态硬盘的方法,其特征在于,所述端口映射配置表包含关联于所述第一端口的多个注册表,所述方法包含:
判断所述端口映射配置表中的所有注册表是否存在于所述窗口注册表;
当所述端口映射配置表中的所有注册表存在于所述窗口注册表时,比对所述硬件描述文件中的位置信息和所述端口映射配置表中的位置信息来判断每个所述第二端口是否连接固态硬盘;以及
当所述端口映射配置表中的任何一个所述注册表不存在于所述窗口注册表时,结束固态硬盘的开卡操作。
4.一种生产固态硬盘的计算机可读取存储介质,用于存储能够被生产主机的处理单元执行的计算机程序,其特征在于,所述计算机程序被所述生产主机的处理单元执行时实现如权利要求1至3中任一项所述的生产固态硬盘的方法。
5.一种生产固态硬盘的装置,其特征在于,包含:
装置接口,包含多个第一端口,其中,每个所述第一端口连接集线器,每个所述集线器包含多个第二端口;以及
处理单元,耦接所述装置接口,用于从存储单元加载端口映射配置表,包含代表每个所述第二端口的位置信息,所述端口映射配置表中的位置信息的顺序相符于所述集线器的所述第二端口的默认物理安排;比对硬件描述文件中的位置信息和所述端口映射配置表中的位置信息来判断每个所述第二端口是否连接固态硬盘,其中所述硬件描述文件由所述装置运行的操作系统提供;在显示器上显示图形用户界面,用于指出每个所述第二端口是否连接固态硬盘的信息;以及当所述第二端口中的一个所连接的固态硬盘开卡失败时,更新所述图形用户界面,用于指出所述第二端口所连接的固态硬盘发生开卡失败的信息;所述图形用户界面显示每个所述第二端口的端口号和开卡状态,所述开卡状态为所述第二端口是否连接固态硬盘,所述端口号使用以下公式计算:
PN=BusN*MAX_PCI_TARGET_NUM+TargetID
PN代表所述第二端口的端口号,BusN代表所述第二端口的总线编号,TargetID代表所述第二端口的目标标识码,以及MAX_PCI_TARGET_NUM为常数,设为大于0的整数。
6.如权利要求5所述的生产固态硬盘的装置,其特征在于,所述操作系统为窗口操作系统,以及所述硬件描述文件为窗口注册表。
7.如权利要求6所述的生产固态硬盘的装置,其特征在于,所述端口映射配置表包含关联于所述第一端口的多个注册表,以及所述处理单元用于判断所述端口映射配置表中的所有注册表是否存在于所述窗口注册表;当所述端口映射配置表中的所有注册表存在于所述窗口注册表时,比对所述硬件描述文件中的位置信息和所述端口映射配置表中的位置信息来判断每个所述第二端口是否连接固态硬盘;以及当所述端口映射配置表中的任何一个所述注册表不存在于所述窗口注册表时,结束固态硬盘的开卡操作。
CN202010516962.8A 2020-06-09 2020-06-09 生产固态硬盘的方法及计算机可读取存储介质及装置 Active CN113778915B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010516962.8A CN113778915B (zh) 2020-06-09 2020-06-09 生产固态硬盘的方法及计算机可读取存储介质及装置
US17/119,400 US11513989B2 (en) 2020-06-09 2020-12-11 Method and computer program product and apparatus for producing solid state disk devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010516962.8A CN113778915B (zh) 2020-06-09 2020-06-09 生产固态硬盘的方法及计算机可读取存储介质及装置

Publications (2)

Publication Number Publication Date
CN113778915A CN113778915A (zh) 2021-12-10
CN113778915B true CN113778915B (zh) 2023-10-10

Family

ID=78817477

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010516962.8A Active CN113778915B (zh) 2020-06-09 2020-06-09 生产固态硬盘的方法及计算机可读取存储介质及装置

Country Status (2)

Country Link
US (1) US11513989B2 (zh)
CN (1) CN113778915B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1346099A (zh) * 2000-09-26 2002-04-24 宏碁电脑股份有限公司 一种具有热插拔功能的电脑系统
TW200719225A (en) * 2005-11-11 2007-05-16 Hon Hai Prec Ind Co Ltd Method and system for verifying the accuracy of installation location of a hard disk
JP2008065725A (ja) * 2006-09-11 2008-03-21 Hagiwara Sys-Com:Kk Nand型フラッシュメモリデバイス及びこれを利用したコンピューティングシステムの起動方法
CN102479124A (zh) * 2010-11-23 2012-05-30 英业达股份有限公司 一种测试方法
JP2012216112A (ja) * 2011-04-01 2012-11-08 Nec Corp コンピュータシステムおよび周辺機器の情報取得方法
JP2013047913A (ja) * 2011-08-29 2013-03-07 Toshiba Corp 情報処理装置、情報処理装置の制御方法、制御ツール、及びホスト装置

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5745558A (en) * 1995-10-27 1998-04-28 United States Advanced Network, Inc. Three-way call detection and response system
US6134616A (en) * 1996-10-28 2000-10-17 International Business Machines Corporation Method and apparatus for dynamic re-enumeration and reconfiguration of computer devices after system hibernation
US6243774B1 (en) * 1998-06-30 2001-06-05 International Business Machines Corporation Apparatus program product and method of managing computer resources supporting concurrent maintenance operations
US20030093509A1 (en) * 2001-10-05 2003-05-15 Li Raymond M. Storage area network methods and apparatus with coordinated updating of topology representation
US6754117B2 (en) 2002-08-16 2004-06-22 Micron Technology, Inc. System and method for self-testing and repair of memory modules
US7633948B2 (en) * 2003-07-07 2009-12-15 Panasonic Corporation Relay device and server, and port forward setting method
US9495263B2 (en) 2004-12-21 2016-11-15 Infortrend Technology, Inc. Redundant SAS storage virtualization subsystem and system using the same, and method therefor
CN100511118C (zh) 2004-12-21 2009-07-08 普安科技股份有限公司 储存虚拟化控制器、子系统及系统与方法
US20060195848A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation System and method of virtual resource modification on a physical adapter that supports virtual resources
US8001287B2 (en) * 2006-10-10 2011-08-16 International Business Machines Corporation Dynamically updating alias location codes with correct location codes during concurrent installation of a component in a computer system
US20090019211A1 (en) * 2007-07-13 2009-01-15 International Business Machines Corporation Establishing A Redundant Array Of Inexpensive Drives
CN101599035A (zh) * 2008-06-05 2009-12-09 鸿富锦精密工业(深圳)有限公司 Usb端口测试装置及方法
US8312215B2 (en) * 2008-09-18 2012-11-13 Lsi Corporation Method and system for resolving configuration conflicts in RAID systems
US8713209B2 (en) 2009-01-13 2014-04-29 Qualcomm Incorporated System, apparatus, and method for fast startup of USB devices
US8018943B1 (en) * 2009-07-31 2011-09-13 Anue Systems, Inc. Automatic filter overlap processing and related systems and methods
JP5482155B2 (ja) * 2009-12-04 2014-04-23 富士通株式会社 情報通信システム、接続設定装置、および接続設定プログラム
US8364871B2 (en) * 2011-01-25 2013-01-29 International Business Machines Corporation Providing virtual functions after an input/output adapter is moved from a first location to a second location
US8612656B2 (en) * 2011-06-02 2013-12-17 International Business Machines Corporation Implementing device physical location identification in serial attached SCSI (SAS) fabric using resource path groups
US8831021B2 (en) * 2011-09-25 2014-09-09 Qualcomm Incorporated System and method for dynamically configurable multi-window divergent protocol bridge
US9137111B2 (en) * 2012-01-30 2015-09-15 Microsoft Technology Licensing, Llc Discovering, validating, and configuring hardware-inventory components
US20130253977A1 (en) 2012-03-23 2013-09-26 Commvault Systems, Inc. Automation of data storage activities
JP6078984B2 (ja) * 2012-05-23 2017-02-15 富士通株式会社 処理装置,処理方法,処理プログラム及び管理装置
TWI497317B (zh) * 2012-11-14 2015-08-21 Inst Information Industry 網路埠與網路介面卡的視覺化映射方法及其電腦程式產品
WO2014115257A1 (ja) * 2013-01-23 2014-07-31 株式会社 日立製作所 PCI-Express接続ソリッドステートドライブを適用したストレージ装置
US9489210B2 (en) * 2013-03-07 2016-11-08 International Business Machines Corporation Implementing configuration preserving relocation of SRIOV adapter
KR102022666B1 (ko) * 2013-05-16 2019-09-18 삼성전자주식회사 통신 방법 및 이를 위한 디바이스
US9396065B2 (en) * 2014-06-25 2016-07-19 Intel Corporation Extensible memory hub
WO2016051445A1 (ja) 2014-09-29 2016-04-07 株式会社日立製作所 ストレージシステムの管理システム
US9639276B2 (en) 2015-03-27 2017-05-02 Intel Corporation Implied directory state updates
US9904586B2 (en) 2015-10-28 2018-02-27 Intel Corporation Interfacing with block-based storage in a processor
TWI567545B (zh) * 2015-12-23 2017-01-21 神雲科技股份有限公司 用於叢集式儲存系統的判斷異常硬碟之裝設位置的方法
US10154100B2 (en) * 2016-06-23 2018-12-11 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. NIC teaming pair configuration
KR102091704B1 (ko) * 2018-06-05 2020-03-20 주식회사 스토리지안 다양한 크기의 ssd 메모리 카드를 수평 슬라이드 방식으로 적층하는 구조와 내진동 특성을 갖는 에스에스디 멀티플러

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1346099A (zh) * 2000-09-26 2002-04-24 宏碁电脑股份有限公司 一种具有热插拔功能的电脑系统
TW200719225A (en) * 2005-11-11 2007-05-16 Hon Hai Prec Ind Co Ltd Method and system for verifying the accuracy of installation location of a hard disk
JP2008065725A (ja) * 2006-09-11 2008-03-21 Hagiwara Sys-Com:Kk Nand型フラッシュメモリデバイス及びこれを利用したコンピューティングシステムの起動方法
CN102479124A (zh) * 2010-11-23 2012-05-30 英业达股份有限公司 一种测试方法
JP2012216112A (ja) * 2011-04-01 2012-11-08 Nec Corp コンピュータシステムおよび周辺機器の情報取得方法
JP2013047913A (ja) * 2011-08-29 2013-03-07 Toshiba Corp 情報処理装置、情報処理装置の制御方法、制御ツール、及びホスト装置

Also Published As

Publication number Publication date
US20210382842A1 (en) 2021-12-09
CN113778915A (zh) 2021-12-10
US11513989B2 (en) 2022-11-29

Similar Documents

Publication Publication Date Title
US7702894B2 (en) System and method for loading programs from HDD independent of operating system
US7565523B2 (en) Apparatus and method for restoring master boot record infected with virus
US8219793B2 (en) Storage medium to manage a master boot record and a method of booting a computer system using a storage medium
US20150154032A1 (en) Server bootstrapping method and computer system
US20080021693A1 (en) Storage Device Simulator
US20120117367A1 (en) Electronic apparatus and booting method thereof
US20090077284A1 (en) System and Method for Enhancing External Storage
US10971246B2 (en) Performing error correction in computer memory
US7921230B2 (en) USB devices pre-configuration for KVM switch
US11062746B1 (en) Computer program product and method and apparatus for activating flash devices
JP2000222179A (ja) コンピュ―タシステムおよびコンピュ―タシステムを動作させる方法
TWI450194B (zh) 作業系統處理方法以及系統、以及儲存其之電腦可讀取記錄媒體
TWI475485B (zh) 韌體更新之方法及其相關電腦系統
US8661237B2 (en) System and method for booting a plurality of servers from a shared boot image stored on a USB boot image sharer
US8086834B2 (en) System and method for populating a dedicated system service repository for an information handling system
US20150082014A1 (en) Virtual Storage Devices Formed by Selected Partitions of a Physical Storage Device
US7246038B2 (en) Method, system, and article of manufacture for running diagnostics related to a device
CN113778915B (zh) 生产固态硬盘的方法及计算机可读取存储介质及装置
US20090210589A1 (en) Dynamic Vital Product Data Update Based on an Installed Feature Card
TWI745997B (zh) 生產固態硬碟的方法及裝置以及電腦程式產品
US11256435B2 (en) Method and apparatus for performing data-accessing management in a storage server
US20220066784A1 (en) Disabling software persistence
KR20060095133A (ko) 비휘발성 메모리에 저장된 시스템 프로그램을 구동시키는방법
US20220129324A1 (en) Remotely Controllable Monitoring Agent with a Dynamic Set of Subcomponents
US10489335B1 (en) Apparatus and method and computer program product for accessing a memory card

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