Method for producing solid state disk, computer readable storage medium and device

文档序号:378694 发布日期:2021-12-10 浏览:6次 中文

阅读说明:本技术 生产固态硬盘的方法及计算机可读取存储介质及装置 (Method for producing solid state disk, computer readable storage medium and device ) 是由 林昭宇 刘恒宾 邱俊翔 于 2020-06-09 设计创作,主要内容包括:本发明提出一种生产固态硬盘方法,由生产主机的处理单元执行。生产主机包含装置接口,且装置接口包含多个第一端口。每个第一端口连接一个集线器,且每个集线器包含多个第二端口。上述方法包含:加载端口映射配置表,包含代表每个第二端口的位置信息;比对硬件描述文件中的位置信息和端口映射配置表中的位置信息来判断每个第二端口是否连接固态硬盘;在显示器上显示图形用户界面,用于指出每个第二端口是否连接固态硬盘的信息;以及当第二端口中的一个所连接的固态硬盘开卡失败时,更新图形用户界面,用于指出相应第二端口所连接的固态硬盘发生开卡失败的信息。通过如上所述的比对,能够自动标识生产系统中每个集线器上的端口。(The invention provides a method for producing a solid state disk, which is executed by a processing unit of a production host. The production host comprises a device interface, and the device interface comprises a plurality of first ports. Each first port is connected to a hub, and each hub comprises a plurality of second ports. The method comprises the following steps: loading a port mapping configuration table containing location information representing each second port; comparing the position information in the hardware description file with the position information in the port mapping configuration table to judge whether each second port is connected with the solid state disk; displaying a graphical user interface on the display, wherein the graphical user interface is used for indicating whether each second port is connected with the information of the solid state disk; and when the card opening failure of the solid state disk connected with one of the second ports occurs, updating the graphical user interface to indicate the information of the card opening failure of the solid state disk connected with the corresponding second port. By the alignment described above, the ports on each hub in the production system can be automatically identified.)

1. A method for manufacturing a solid state disk, performed by a processing unit of a manufacturing host, wherein the manufacturing host includes a device interface, the device interface includes a plurality of first ports, each of the first ports is connected to a hub, each of the hubs includes a plurality of second ports, the method comprising:

loading a port mapping configuration table containing location information representing each of the second ports;

comparing position information in a hardware description file with position information in the port mapping configuration table to judge whether each second port is connected with a solid state disk, wherein the hardware description file is provided by an operating system operated by the production host;

displaying a graphical user interface on a display, wherein the graphical user interface is used for indicating whether each second port is connected with the information of the solid state disk; and

and when the card opening failure of the solid state disk connected with one of the second ports occurs, updating the graphical user interface to indicate the information of the card opening failure of the solid state disk connected with the corresponding second port.

2. The method of manufacturing a solid state disk of claim 1, wherein an order of location information in the port mapping configuration table corresponds to a default physical arrangement of the second port of the hub.

3. The method of claim 1, wherein the operating system is a windows operating system and the hardware description file is a windows registry.

4. The method of manufacturing a solid state disk of claim 3, wherein the port mapping configuration table includes a plurality of registries associated with the first port, the method comprising:

judging whether all registries in the port mapping configuration table exist in the window registry or not;

when all the registries in the port mapping configuration table exist in the window registry, comparing the position information in the hardware description file with the position information in the port mapping configuration table to judge whether each second port is connected with a solid state disk; and

and when any registry in the port mapping configuration table does not exist in the window registry, ending the card opening operation of the solid state disk.

5. The method of manufacturing a solid state disk of claim 1, wherein the graphical user interface displays content of location information of the second port to which the solid state disk is connected.

6. The method of manufacturing a solid state disk of claim 1, wherein the graphical user interface displays a port number of the second port to which the solid state disk is connected, the port number being calculated using the following formula:

PN=BusN*MAX_PCI_TARGET_NUM+TargetID

PN represents a port number of a specific second port, BusN represents a bus number of the specific second port, TargetID represents a TARGET identification code of the specific second port, and MAX _ PCI _ TARGET is a constant set to an integer greater than 0.

7. A computer-readable storage medium for producing solid state disks, storing a computer program executable by a processing unit of a production host, wherein the computer program, when executed by the processing unit of the production host, implements the method for producing solid state disks according to any one of claims 1 to 6.

8. An apparatus for manufacturing a solid state disk, comprising:

a device interface comprising a plurality of first ports, wherein each of said first ports is connected to a hub, each of said hubs comprising a plurality of second ports; and

a processing unit, coupled to the device interface, for loading a port mapping configuration table from a storage unit, including location information representing each of the second ports; comparing position information in a hardware description file with position information in the port mapping configuration table to judge whether each second port is connected with a solid state disk, wherein the hardware description file is provided by an operating system operated by the device; displaying a graphical user interface on a display, wherein the graphical user interface is used for indicating whether each second port is connected with the information of the solid state disk; and when the solid state disk connected with one of the second ports fails to open the card, updating the graphical user interface to indicate the information that the solid state disk connected with the corresponding second port fails to open the card.

9. The apparatus for manufacturing a solid state disk of claim 8, wherein an order of the location information in the port mapping configuration table corresponds to a default physical arrangement of the second port of the hub.

10. The apparatus of claim 8, wherein the operating system is a windows operating system and the hardware description file is a windows registry.

11. The apparatus of claim 10, wherein the port mapping configuration table comprises a plurality of registries associated with the first port, and the processing unit is configured to determine whether all of the registries in the port mapping configuration table exist in the window registry; when all the registries in the port mapping configuration table exist in the window registry, comparing the position information in the hardware description file with the position information in the port mapping configuration table to judge whether each second port is connected with a solid state disk; and when any registry in the port mapping configuration table does not exist in the window registry, ending the card opening operation of the solid state disk.

12. The apparatus for manufacturing a solid state disk according to claim 8, wherein the graphical user interface displays the content of the location information of the second port to which the solid state disk is connected.

13. The apparatus for manufacturing a solid state disk of claim 8, wherein the graphical user interface displays a port number of the second port to which the solid state disk is connected, the port number being calculated using the following formula:

PN=BusN*MAX_PCI_TARGET_NUM+TargetID

PN represents a port number of a specific second port, BusN represents a bus number of the specific second port, TargetID represents a TARGET identification code of the specific second port, and MAX _ PCI _ TARGET is a constant set to an integer greater than 0.

Technical Field

The present invention relates to a storage device, and more particularly, to a method for manufacturing a solid state disk, a computer readable storage medium, and a storage device.

Background

The solid state disk usually needs to be sold after the card opening program is completed, and the time consumed by the card opening program is an important issue in the production of the solid state disk. A production host can connect 5 to 16 solid state disks through a port of the device interface, and open the card of the connected solid state disk. However, conventionally, when the card opening of one of the solid state disks fails, the production host cannot automatically know which solid state disk actually has an error, and the production personnel needs to manually pull out the connected solid state disk to confirm, which prolongs the production time. Therefore, the present invention provides a method, a computer readable storage medium and an apparatus for manufacturing a solid state disk, which are used to solve the above problems.

Disclosure of Invention

In view of the above, how to reduce or eliminate the above-mentioned deficiencies in the related art is a problem to be solved.

The invention provides a method for producing a solid state disk, which is executed by a processing unit of a production host. The production host comprises a device interface, and the device interface comprises a plurality of first ports. Each first port is connected to a hub, and each hub comprises a plurality of second ports. The method comprises the following steps: loading a port mapping configuration table containing location information representing each second port; comparing the position information in the hardware description file with the position information in the port mapping configuration table to judge whether each second port is connected with the solid state disk; displaying a graphical user interface on the display, wherein the graphical user interface is used for indicating whether each second port is connected with the information of the solid state disk; and when the card opening failure of the solid state disk connected with one of the second ports occurs, updating the graphical user interface to indicate the information of the card opening failure of the solid state disk connected with the corresponding second port.

The present invention also provides a computer readable storage medium for producing a solid state disk, for storing a computer program executable by a processing unit of a production host, and the computer program, when executed by the processing unit of the production host, implements the method described above.

The invention also provides a device for producing the solid state disk, which comprises: the device interface and a processing unit. The processing unit is coupled to the device interface for performing the method as described above when the computer program as described above is loaded and executed.

One of the advantages of the above embodiments is that through the comparison as described above, whether each port on each hub in the production system is connected with a solid state disk can be automatically identified.

Another advantage of the foregoing embodiment is that, through the information included in the port mapping configuration table as described above, when a certain solid state disk fails to be opened, it can be automatically identified which port is connected to the solid state disk and an error occurs in the card opening process.

Other advantages of the present invention will be explained in more detail in conjunction with the following description and the accompanying drawings.

Drawings

The accompanying drawings, which are included to provide a further understanding of the application and are incorporated in and constitute a part of this application, illustrate embodiment(s) of the application and together with the description serve to explain the application and not to limit the application.

FIG. 1 is a schematic diagram of a production stage according to an embodiment of the present invention.

FIG. 2 is a diagram of a training system according to an embodiment of the present invention.

FIG. 3 is a block diagram of a fixed-port host and a training solid state drive according to an embodiment of the invention.

FIG. 4 is a flow chart of a method for porting according to an embodiment of the present invention.

FIG. 5 is a schematic diagram of a production system according to an embodiment of the invention.

FIG. 6 is a block diagram of a production host and a solid state disk according to an embodiment of the invention.

FIG. 7 is a flowchart illustrating a card opening method according to an embodiment of the invention.

Fig. 8 and 9 are schematic diagrams of graphical user interfaces according to embodiments of the present invention.

[ List of reference numerals ]

110 fixed port stage

130 card opening stage

140 training computer

160 port mapping configuration table

180 production computer

20 training system

210 fixed port host

212 device interface

214-1 to 214-4, 232-1 to 232-4 ports

230 hub

250. 250-1 to 250-4 training solid state disk

270 display

312 processing unit

314 random access memory

316 memory cell

330 flash controller

332 host interface

350 flash memory module

Method steps S410 to S480

50 production system

510 production host

512 device interface

514-1 ~ 514-4, 532-1 ~ 532-4 ports

530 hub

550. 550-1-550-4 solid state disk

570 display

612. 637 processing Unit

614 random access memory

616 storage unit

632 host interface

634 flash memory interface

636 volatile random access memory

638 read-only memory

650 flash memory module

S710-S790 method steps

800 graphic user interface

810#1 ~ 810#16 information frame

Detailed Description

Embodiments of the present invention will be described below with reference to the accompanying drawings. In the drawings, the same reference numerals indicate the same or similar components or process flows.

It will be understood that the terms "comprises" and/or "comprising," when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of further features, integers, steps, operations, elements, components, and/or groups thereof.

The use of words such as "first," "second," "third," etc. in this disclosure is intended to modify a component in a claim and is not intended to imply a priority order, precedence relationship, or order between components or steps in a method.

It will be understood that when an element is referred to as being "connected" or "coupled" to another element, it can be directly connected or coupled to the other element or intervening elements may be present. In contrast, when an element is described as being "directly connected" or "directly coupled" to another element, there are no intervening elements present. Other words used to describe relationships between components may be similarly interpreted, such as "between" and "directly between," or "adjacent" and "directly adjacent," etc.

In order to enable a production computer to automatically distinguish Solid State Disks (SSD) connected to each port, the embodiment of the present invention divides the whole production process into two stages: a Port disconnection (Port disconnection) phase and a Card Activation (Card Activation) phase. Referring to fig. 1, in the fixed Port stage 110, the training computer 140 analyzes the content of a Hardware Description File (Hardware Description File) in an Operating System (OS) for obtaining identification information of each physical Port, such as Serial Advanced Technology Attachment/Peripheral Component Interconnect Express (SATA/Peripheral Component Interconnect Express, PCIe registers), a Bus Number (Bus Number), a Target identification code (Target ID), a Logical Unit Number (LUN), and the like, and generates a Port-mapping Configuration Table (Port-mapping Configuration Table)160 accordingly. In the card-open phase 130, the production computer 180 loads the port mapping configuration table 160 and executes a card-open program for a plurality of solid state drives connected to the production computer 180. In the card-opening procedure, if the production computer 180 finds any error information, it can be identified which physical port connected solid state disk has an error according to the information of the port mapping configuration table 160, and the error is displayed on a Graphical User Interface (GUI), which is beneficial for an operator and/or the production computer 180 to execute the error elimination process. It is noted herein that the training computer 140 and the production computer 180 may be two computers having the same necessary software and hardware configuration, or the same computer.

Refer to fig. 2. The training system 20 includes a Port-rendering Host 210, a Hub 230, a training solid state drive 250, and a display 270. The training computer 140 of FIG. 1 may include a ported host 210, a hub 230, and a display 270. The training solid state drive 250 may include a flash memory controller and a plurality of flash memory modules. The Display 270 may be a Thin Film Transistor-Liquid Crystal Display (TFT-LCD Display), an Organic Light-Emitting Diode (OLED Display), or the like, and displays a picture including characters, numbers, symbols, patterns, or the like, or any combination thereof, which can be viewed by an engineer or an operator during a training process.

The fixed port host 210 may be implemented by a personal Computer, a notebook Computer (Laptop PC), an Industrial Computer (Industrial Computer), a Workstation (Workstation), or the like. The ported host 210 includes a device interface 212 having a plurality of ports (ports)214-1 to 214-4, each of which may be connected to a hub, such as port 214-1 connected to hub 230. Although fig. 2 depicts the device interface 212 as being configured with only 4 ports, those skilled in the art may configure more or fewer ports on the device interface 212 to enable the fixed port host 210 to connect to more or fewer hubs, and the invention should not be limited thereby. Hub 230 includes a plurality of ports 232-1 through 232-4, each of which may be plugged with a training solid state disk 250, such as any one of training solid state disks 250-1 through 250-4. It should be noted that for simplicity and clarity of description, while the following paragraphs describe the training solid state disk 250, the structures, functions, method steps or other technical content representing the description can be applied to any of the training solid state disks 250-1 to 250-4 and others. Although fig. 1 depicts hub 230 as having 4 ports, one skilled in the art may connect hubs having more or fewer ports to the fixed-port host 210, such that the fixed-port host 210 can connect more or fewer training solid state disks, and the invention should not be limited thereby.

Refer to fig. 3. The hub 230 shown in fig. 2 is omitted from fig. 3 because the hub 230 is connected to a port on the device interface 212 and is equivalent to the training solid state disk 250 being physically connected to the fixed port host 210 when the training solid state disk 250 is plugged into the hub 230. The ported host 210 includes a processing unit 312, which can be implemented in a variety of ways, such as using general purpose hardware (e.g., a single processor, a multiprocessor with parallel processing capability, a graphics processor, or other processor with computing capability), and providing specific functions when executing software and/or firmware instructions, such as a Port-rendering Tool (Port-rendering Tool), an Operating System (OS), a Driver (Driver), and the like. Processing unit 312 may transmit commands to training solid state disk 250 via device interface 212 to perform the desired operations.

The training solid state drive 250 includes a flash controller 330 and a flash module 350. Flash module 350 provides a large amount of storage space, typically hundreds of Gigabytes (Gigabytes) or even Terabytes (Terabytes), for storing large amounts of user data, such as high resolution pictures, movies, and the like. The flash controller 130 includes a host interface 332, and the host interface 332 is coupled to the device interface 212 of the ported host 210.

To distinguish between the ports 214-1 through 214-4 of the device interface 212 and the ports 232-1 through 232-4 of the hub 230 as shown in FIG. 2, a hardware description file needs to be provided to identify the ports 214-1 through 214-4 and the ports 232-1 through 232-4 so that a software program can know, when executed, that an input/output device is connected to the port master 210 through one of the ports 214-1 through 214-4 and the ports 232-1 through 232-4. For example, a window Registry (Windows Registry) is a hierarchical database that stores underlying settings for use by the Windows operating system (Windows OS) and applications. In detail, the window login file includes information, settings, options, and other values of hardware (such as SATA/PCIe interface) of the fixed port host 210 and devices (such as solid state disk) connected to the fixed port host 210. When a solid state disk is connected to the host 210 via a port of the hub 230, a new sub-key (sub) is added to the window registry, and the sub-key contains a plurality of Values (Values) for storing settings such as hardware id, location information, manufacturer, service, etc.

The present invention provides a method for determining a port, which is implemented when the processing unit 312 loads and executes a program code of a port determining tool. Refer to fig. 4. Taking the windows operating system as an example, the following is detailed:

step S410: the variable i is set to 1. The variable i is used to record the sequential number of the given port.

Then, the process repeatedly executes a loop including steps S420 to S480. Before each round is performed, the operator inserts a training solid state disk into the designated port. For example, ports 232-1, 232-2, 232-3, and 232-4 of hub 230 may be labeled Port #1, Port #2, Port #3, and Port #4, in that order. After the operator inserts the training solid state disk 250-1 into the Port 232-1, the processing unit 312 executes steps S420 to S480 to Port the Port # 1. Next, after the operator inserts the training solid state disk 250-2 into the Port 232-2, the processing unit 312 executes steps S420 to S480 to Port the Port # 2. This process is repeated until all necessary ports have been ported.

Step S420: a sub-key (sub) corresponding to the newly inserted solid state disk added to the window registry is obtained. For example, the processing unit 312 may execute an Application Programming Interface (API) function "CreateFile" to obtain a handle of the path "Enum/SCSI" in the window login file. Processing unit 312 may then execute the microsoft API function "DeviceIOControl" to check if there are newly added child keys in the retrieved handle. If there is a new sub-key, it means that a new Small Computer System Interface (SCSI) device is detected, and the type class globally unique identification code (ClassGUID) of the sub-key is obtained. If there is no new added sub-key, the processing unit 312 can execute the Microsoft API function "CreateFile" to obtain the handle of the path "Enum \ IDE" in the window login file. Processing unit 312 may then execute the microsoft API function "DeviceIOControl" to check if there are newly added child keys in the retrieved handle. If there is a newly added sub-key, which means that a newly added Integrated Drive Electronics (IDE) device is detected, the globally unique identification code of the type of the sub-key is obtained.

Step S430: and acquiring the position information and the device path serial number of the ith port from the newly added sub-key. For example, the processing unit 312 may execute a microsoft API function "winsetup API setupidegetclassdevs" for acquiring a handle "hdeviinfo" pointing to a specific Device Information Set (Device Information Set) in accordance with the type global unique identification code (acquired at step S420). The processing unit 312 may execute the microsoft API function "winsetup API setup state Device interface" for enumerating Device Interfaces (Device Interfaces) contained in the handle "HDEVINFO", data of which may be stored in a default buffer in the RAM 314. The processing unit 312 may execute a microsoft API function "winsetup API setup get Device interface detail data" for retrieving Device interface detail data including a Device Path (Device Path) and Location Information (Location Information). The location information contains three parts: bus Number (Bus Number); a Target identification code (Target ID); and a Logical Unit Number (LUN). For example, the location information may be used to identify one of the ports 232-1 through 232-4 of the hub 230 of FIG. 2. The processing unit 312 may interrupt the character string between the second to third pound sign ("#", Hashtag) from the device path and take the last character in the character string and the character before the symbol ("&", amp ersand) as the device path number. For example, processing unit 312 may be "\ \? \\ sci # disk & ven _ wdc & prod _ wd10spzx-08z10#4&2e835db4&0&000200# {53f 5639-b 6bf-11d0-94f2-00a0c91efb8b } "take-out device path number" 4&2e835db4&0 ". As another example, processing unit 312 may "\ \? \\ ide # disks _ disk ________________________________ q0921b __ #5&39170d91&0&1.0.0# {53f 56563207-b 6bf-11d0-94f2-00a0c91efb8b } "take-out device Path number" 5&39170d91&0 ".

Step S440: and acquiring the PCI or IDE registry of the ith port according to the device path serial number of the ith port. The processing unit 312 can determine whether to scan the PCI or IDE registry according to the information in which path the newly added sub-key is detected in step S420.

If the newly added sub-key is in the path "Enum \ SCSI", processing unit 312 scans the PCI login file. For example, the processing unit 312 executes the microsoft API function "CreateFile" to obtain the handle of the path "Enum \ PCI" in the window login file. Processing unit 312 may execute the Microsoft API function "DeviceIOControl" to obtain all the child keys in the handle. Next, for each sub-key, referring to the technical contents as described in step S420, the processing unit 312 may execute microsoft API functions "winsetup API setup get classdevds", "winsetup API setup get efficiency interface", and "winsetup API setup get efficiency interface detail" to acquire a login Value (Registry Value) "fractional identity", and compare whether the login Value "fractional identity" coincides with the device path number acquired in step S430. If the result is a match, the PCI login file containing the ith port is represented by the sub-key, and the processing unit S312 can execute the Microsoft API function "WINSETUPAPI SetupDetDeviceInterfaceDetail" to obtain the PCI registry. The processing unit 312 may interrupt a string from the PCI registry between the second Backslash ("\", Backslash) to the last and the symbol ("&", Ampersand) as the device path number of the PCI device. For example, the processing unit 312 may retrieve the device path number "3 &11583659& 0" from the device path "PCI \ VEN _8086& DEV _9D03& SUBSYS _225D17AA & REV _21\3&11583659&0& B8" of the PCI device.

If the newly added sub-key is in the path "Enum \ IDE," processing unit 312 scans the pci IDE login file. For example, processing unit 312 executes the microsoft API function "CreateFile" to obtain the handle of path "Enum \ pci ide" in the window login file. Processing unit 312 may execute the Microsoft API function "DeviceIOControl" to obtain all the child keys in the handle. Next, for each sub-key, referring to the technical contents as described in step S420, the processing unit 312 may execute the microsoft API functions "winsetup API setup get classdevds", "winsetup API setup get efficiency interface", and "winsetup API setup get efficiency interface detail" to acquire the login value "parentedprifix", and compare whether the login value "parentedprifix" coincides with the device path number acquired in step S430. If the result is positive, the IDE register file of the ith port is included in the sub-key, and the processing unit S312 executes the Microsoft API function "WINSETUPAPI SetupDetDeviceInterfaceDetail" to acquire the IDE registry. The processing unit 312 may interrupt a string from the second Backslash ("\", Backslash) to the last and symbol ("&", Ampersand) from the IDE registry as a device path number of the IDE device. For example, processing unit 312 may retrieve the device path number "4 &1dd8ffee & 0" from the device path "pci IDE \ IDEChannel \4&1dd8ffee &0& 1" of the IDE device.

Step S450: and acquiring the SATA or PCIe registry according to the device path serial number of the PCI or IDE device. For example, the processing unit 312 may execute the microsoft API function "CreateFile" to obtain the handle of the path "Enum \ PCI" in the window login file. Processing unit 312 may execute the Microsoft API function "DeviceIOControl" to obtain all the child keys in the handle. Next, for each sub-key, referring to the technical contents as described in step S420, the processing unit 312 may execute microsoft API functions "winsetup API setup get classdevds", "winsetup API setup get efficiency interface", and "winsetup API setup get efficiency interface detail" to acquire a login value "parentedprifix", and compare whether the login value "parentedprifix" coincides with the device path number acquired in step S440. If the result is positive, the SATA login file of the ith port is included in the sub-key, and the processing unit S312 executes the Microsoft API function "WINSETUPAPI SetupDCigDeviceInterfaceDetail" to obtain the SATA registry.

If the handle of the path "Enum \ PCI" in the window login file cannot find the matching login file, the processing unit 312 executes the microsoft API function "CreateFile" to obtain the handle of the path "Enum \ ACPI" in the window login file. Processing unit 312 may execute the Microsoft API function "DeviceIOControl" to obtain all the child keys in the handle. Next, for each sub-key, referring to the technical contents as described in step S420, the processing unit 312 may execute microsoft API functions "winsetup API setup get classdevds", "winsetup API setup get efficiency interface", and "winsetup API setup get efficiency interface detail" to acquire a login value "parentedprifix", and compare whether the login value "parentedprifix" coincides with the device path number acquired in step S440. If the result is yes, the processing unit S312 may execute the Microsoft API function "WINSETUPAPI SetupDetDeviceInterfaceDetail" to obtain the PCIe registry "ACPI \ PNP0A08\ 0". For example, a SATA or PCIe registry may be used to identify one of the ports 214-1 through 214-4 of the device interface 212 in FIG. 2.

Step S460: the port-specific information for the ith port is stored to port mapping configuration table 160 in RAM 314 and/or storage unit 316. The porting information includes the location information obtained in step S430 and the SATA or PCIe registry obtained in step S450. Table 1 shows a partial example of the port mapping configuration table 160:

TABLE 1

For example, the 1 st to 4 th notebooks of the Port mapping configuration table 160 store the location information and PCIe login files of the ports Port #1 to Port #4, respectively.

Step S470: and judging whether the port operation is finished or not. If so, the process ends and the port mapping configuration table 160 is completed. Otherwise, the flow proceeds to the process of step S480.

Step S480: i is calculated as i + 1.

When the process is completed, the port mapping configuration table 160 in the RAM 314 or the storage unit 316 of the fixed-port host 210 may be output to the production computer 180 for reference by the card-opening program.

It is noted here that since the operator inserts the training solid state disk one by one into all ports of the hub in a default order, the order of the location information in the port mapping configuration table 160 corresponds to the default physical arrangement of the ports of the hub.

Refer to fig. 5. The Production system 50 includes a Production Host (Production Host)510, a hub 530, solid state disks 550-1 to 550-4, and a display 570. For each solid state disk 550, after the flash memory controller and the flash memory module are disposed on the motherboard, the flash memory controller and the flash memory module can be shipped and provided to the customer after completing a Card opening Process (Card-activation Process). The display 570 may be a tft-lcd, an oled display, or the like, which displays a picture that can be viewed by an engineer or an operator during the card-opening process, including prompting characters, numbers, symbols, patterns, or the like, or any combination thereof.

Under normal circumstances, the device interface 512 in the production host 510, and the hub 530 have the same or matched software and hardware settings as the device interface 212 of the fixed-port host 210, and the hub 230. For simplicity of description, while the following paragraphs describe the use of solid state disk 550, the structures, functions, method steps, or other technical content that represent its description can be applied to any of solid state disks 550-1 through 550-4 and others.

Refer to fig. 6. Since the hub 530 is connected to a port on the device interface 512 and the solid state disk 550 is plugged into the hub 530, which is equivalent to the solid state disk 550 physically connected to the production host 510, the hub 530 shown in fig. 1 is omitted in fig. 6. The Production host 510 includes a processing unit 612, which may be implemented in a variety of ways, such as using general purpose hardware (e.g., a single processor, a multi-processor with parallel processing capabilities, a graphics processor, or other processor with computing capabilities) and providing specific functions when executing software and/or firmware instructions, such as a Mass Production Tool (MP Tool), an Operating System (OS), a Driver (Driver), etc. The processing unit 612 can issue an instruction to the device interface 512 for transmitting a Vendor Command (Vendor Command) to the solid state disk 550 to complete the operations required in the card opening process. The vendor command is not a standard host operation command, such as a management command defined by Universal Flash Storage (UFS), Non-Volatile Memory Express (NVMe), Open-channel Solid State Disk (SSD), etc., an input/output command, etc., but is a custom command (pro-priority command) provided to a client by the manufacturer of the Solid State Disk 550 or the Flash Memory controller 630.

The production host 510 includes a storage unit 616, which may be a Hard Disk (Hard Disk) or a solid state Disk, for storing the port mapping configuration table 160. The production host 510 further includes a RAM 614 for executing temporary data required in the card-opening process, such as variables, flags, port mapping configuration table 160, and the like.

The solid state drive 550 includes a flash memory controller 630 and a flash memory module 650. The flash memory module 650 provides a large amount of storage space, typically hundreds of Gigabytes (Gigabytes) or even Terabytes (Terabytes), for storing large amounts of user data, such as high resolution pictures, movies, and the like. The flash memory module 650 includes a control circuit and a memory array, and the memory Cells in the memory array may include Single Level Cells (SLCs), Multiple Level Cells (MLCs), Triple Level Cells (TLCs), Quad-Level Cells (QLCs), or any combination thereof.

The flash Memory controller 630 includes a host interface 632, a flash Memory interface 634, a Volatile Random Access Memory (VRAM) 636, a processing unit 637, a Read-Only Memory (ROM) 638, and an input/output interface 639. The host interface 632 is coupled to the device interface 512 of the production host 510. Flash Interface (Flash Interface)634 is coupled to Flash module 650 and may communicate with each other in a Double Data Rate (DDR) communication protocol, such as Open NAND Flash Interface (ONFI), Double Data Rate switch (DDR Toggle) or other Interface communication protocols. The processing unit 637 may be implemented in general hardware as described above. The VRAM 636 stores temporary data, such as variables, flags, data tables, etc., required in executing the card-open process.

Refer to fig. 7. The embodiment of the invention provides a card opening method, which is implemented when the processing unit 612 loads and executes the program code of the mass production tool. The method comprises the following steps: load the port mapping configuration table 160 previously generated by the fixed port host 210, containing the location information for each port in the hub 530; comparing the location information in the hardware description file with the location information in the port mapping configuration table 160 to determine whether each port in the hub 530 is connected to a solid state disk; displaying a GUI on display 570 for indicating whether each port in hub 530 is connected to a solid state disk; and when the solid state disk connected with one port fails to open the card, updating the GUI for indicating the information of the solid state disk connected with the corresponding port that the card fails to open. The hardware description file is provided by the operating system run by production host 510. The detailed description is as follows:

step S710: the port mapping configuration table 160 is loaded from the storage unit 616 and stored in the RAM 614 for fast lookup. The port mapping configuration table 160 may refer to examples of table 1 or table 2 (described in the following paragraphs).

Step S720: it is determined whether all SATA/PCIe login files of the port mapping configuration table 160 exist as a window login file of the operating system of the production host 510. If so, the flow proceeds to the process of step S730. Otherwise, the software and hardware settings representing the training host 210 that was used to generate the port mapping configuration table 160 are not the same or do not match the production host 510, and the process ends.

In detail, for each SATA login file in the port mapping configuration table 160, the processing unit 612 may execute the microsoft API function "CreateFile" to obtain a handle of the path "Enum \ PCI" in the window login file. Processing unit 612 may execute the Microsoft API function "DeviceIOControl" to obtain all the child keys in the handle. Then, for each sub-key, referring to the technical contents as described in step S420, the processing unit 612 may execute microsoft API functions "winsetup API setup get classdevs", "winsetup API setup get efficiency interface", and "winsetup API setup get efficiency interface detail" to check whether the same SATA registry exists. When any SATA registry in the port mapping configuration table 160 is not found in all the sub-keys in the handle, the software and hardware settings representing the exerciser host 210 that was used to generate the port mapping configuration table 160 are not the same or do not match the producer host 510.

In addition, for each PCIe login file in the port mapping configuration table 160, the processing unit 612 may execute the microsoft API function "CreateFile" to obtain a handle of the path "Enum \ ACPI" in the window login file. Processing unit 612 may execute the Microsoft API function "DeviceIOControl" to obtain all the child keys in the handle. Next, referring to the technical contents as described in step S420 for each sub-key, the processing unit 612 may execute microsoft API functions "winsetup API setup get classdevs", "winsetup API setup get efficiency interface", and "winsetup API setup get efficiency interface detail" to check whether the same PCIe registry exists. When any PCIe registry in the port mapping configuration table 160 is not found in all the sub-keys in the handle, the software and hardware settings representing the training host 210 that was used to generate the port mapping configuration table 160 are not the same or do not match with the production host 510.

Step S730: and scanning the solid state disk connected with the production host. For example, referring to the technical contents of steps S420 and S430, the processing unit 612 may execute microsoft API functions "CreateFile", "DeviceIOControl", "winsetup API setup request devices", "winsetup API setup request device interface", and "winsetup setup request device" to acquire the location information of all SCSI devices and IDE devices connected to the production host 510. Next, the processing unit 612 compares the location information of all connected SCSI devices and IDE devices with all location information in the port mapping configuration table 160, determines which ports on the production host 510 have been connected to the solid state disk 550, and displays the detected connection result on a Graphical User Interface (GUI) of the display 570. For example, the GUI may display whether a solid state disk is connected to each port, location information of each port, and a card open status of the solid state disk connected to each port.

In some embodiments, the processing unit 612 may display the contents of the location information of the port on the hub to which the solid state disk 550 is connected, such as a bus number, a target identification code, a logical unit number, or any combination thereof, on the GUI.

In other embodiments, the processing unit 612 may further calculate a Port Number (Port Number) according to the bus Number and the target identification code of the specific Port, and use the Port Number to represent the location information of the specific Port, and the exemplary formula is as follows:

PN=BusN*MAX_PCI_TARGET_NUM+TargetID

wherein, PN represents the port number of the specific port, BusN represents the bus number of the specific port, TargetID represents the TARGET identification code of the specific port, and MAX _ PCI _ TARGET is a constant and is set to an integer greater than 0, for example, 48. Table 2 shows the calculation results of the location information according to the port mapping configuration table 160 of table 1:

TABLE 2

Port(s) Port number SATA/PCIe registry
Port#1 2 ACPI\PNP0A08\0
Port#2 4 ACPI\PNP0A08\0
Port#3 6 ACPI\PNP0A08\0
Port#4 8 ACPI\PNP0A08\0

Assume that solid state disks 550-1 to 550-4 are connected to ports 532-1 to 532-4 of hub 530, respectively: referring to fig. 8, information boxes 810#1 to 810#4 in the graphic user interface 800 display port numbers (shown in table 2) and card-open states of the ports P #1 to P #4, respectively. Blocks 810#5 through 810#16 of gui 800 are shown with backslash to indicate that ports P #5 through P #16 are not connected to any solid state disk.

It should be noted here that if only the window registry is searched, and the port mapping configuration table 160 according to the embodiment of the present invention is not provided, only the location information of the ports on the hub to which all solid state disks are connected can be obtained. In other words, the production host does not know the total number of ports contained in the hub, and there is no sequential relationship that can be referred to between the location information searched from the window login file. Thus, even if all of the location information is available, it is not possible to correlate the location information with the physical arrangement of ports on the hub.

Step S740: the variable i is set to 1. The variable i is used for recording the sequence number of the opened card.

Step S750: and opening the card for the solid state disk connected with the ith port.

For example, in a card-open flow, the processing unit 637 can load and execute program code (also can be referred to as vendor command processing code) for processing vendor commands issued from the production host 110 from a Read-Only Memory (ROM) 638. In response to the initializer command issued from the production host 510, the processing unit 637 may perform a series of tests on the flash memory module 650 via the flash memory interface 634 while executing vendor command processing code to find Bad Blocks (Bad Blocks), Bad rows (Bad Columns), etc., and accordingly generate a Bad block table, a Bad row table, etc. The vendor command processing Code can calculate the length of each physical page that can be used for storing an Error Check Code (ECC Code) according to parameters such as the number of detected bad lines. The vendor command processing code can calculate the start position of each Sector (Sector) in each physical page according to the bad line table, the ECC length and other information, and generate the Sector start table accordingly. The vendor command processing code may calculate the number of Logical Block addresses (LBA quantity) that the flash memory module 250 can store according to the number of bad blocks, the number of bad rows, the ECC length, and other information. The vendor command processing code can store the above-mentioned data table, variables, etc. in the VRAM 636 and reply the initialization completed information to the production host 510 through the driver host interface 632 for notifying the mass production tool. The production tool may display information on the completion of the initialization on the display 570 for prompting the operator or engineer.

After receiving the initialization information from the solid state disk 650, which may include information such as the number of LBAs that the flash memory module 650 can store, the mass production tool issues a vendor command to DOWNLOAD information (DOWNLOAD INFO) to the flash memory device 650, which instructs the solid state disk 650 to store the initialization result in a non-volatile storage space, such as the flash memory module 650. In response to the download info command, the processing unit 637 may write information such as data tables and variables stored in the VRAM 636 into a System Block (System Block) of the flash memory module 650 via the flash memory interface 634 when executing the vendor command processing code. Those skilled In the art will understand that the generated data tables, variables, and other information are reference information required for future execution of In-System Programming (ISP Code, which may also be referred to as firmware). The in-system programming code includes operations for executing host commands issued from the host, such as host read, write, erase commands, and the like. Host commands are commands specified by standard-making organizations, such as UFS, NVMe, Open-channel SSD commands, and the like. The vendor command processing code can reply to the production host 510 via the driver host interface 632 to notify the mass production tool of the completion of the downloading. The production tool may display the information of the completion of the opening of the card on the display 570 for prompting the operator or engineer. For example, the state of one of the information boxes 810#1 to 810#4 shown in fig. 8 is changed to "complete".

However, the solid state disk 550 may fail in a certain operation of the card-open process as described above, and the processing unit 637 may reply an appropriate error code or error message to the production host 510 via the driving host interface 632, so that the production tool may display the error code or error message on the display 570 for prompting an operator or engineer. Then, the mass production tool, operator or engineer may perform error-rejection operations on the solid state disk connected to the ith port.

Step S760: and judging whether the card is opened successfully according to the reply information of the solid state disk 550 connected to the ith port. If so, the flow proceeds to the process of step S780. Otherwise, the flow proceeds to the process of step S770.

Step S770: and displaying information of the card opening failure of the solid-state hard disk of the ith port on the GUI. Suppose that the solid state disk 550-3 fails in the card opening process: referring to fig. 9, an information box 810#3 in the graphic user interface 800 shows that the card-open state of port P #3 is "failure".

Step S780: and judging whether the card opening of all the solid state disks is finished or not. If so, the process ends. Otherwise, the flow proceeds to the process of step S790.

Step S790: i is calculated as i + 1.

By comparing the port mapping configuration table 160 with the hardware description file provided by the operating system executing in the production host 510 as described above, it can be identified whether each port on each hub in the production system 50 is connected to a solid state disk. And when a certain solid state disk fails to be opened, the solid state disk connected to the port can be automatically identified to have an error in the card opening process.

All or a portion of the steps of the method described herein may be implemented as a computer program, such as the operating system of the computer, a driver for specific hardware in the computer, or a software program. In addition, other types of programs as shown above may also be implemented. Those skilled in the art can write the method of the embodiment of the present invention as a computer program, and will not be described again for the sake of brevity. The computer program implemented according to the embodiments of the present invention can be stored in a suitable computer readable data medium, such as a DVD, a CD-ROM, a usb disk, a hard disk, or a network server accessible via a network (e.g., the internet, or other suitable medium).

Although fig. 2, 3, 5 and 6 include the above-described components, it is not excluded that more additional components may be used to achieve better technical results without departing from the spirit of the present invention. Further, although the flowcharts of fig. 4 and 7 are performed in the order specified, a person skilled in the art may modify the order between the steps to achieve the same effect without departing from the spirit of the invention, and therefore, the invention is not limited to using only the order as described above. In addition, one skilled in the art may integrate several steps into one step, or perform more steps in sequence or in parallel besides the steps, and the present invention is not limited thereby.

While the present invention has been illustrated by the above examples, it is noted that these descriptions are not intended to limit the present invention. Rather, this invention encompasses modifications and similar arrangements as would be apparent to one skilled in the art. Therefore, the protection scope of the present application shall be subject to the scope defined by the claims.

23页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:数据处理方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!