TWI745997B - Method and apparatus and computer program product for producing solid state disk devices - Google Patents

Method and apparatus and computer program product for producing solid state disk devices Download PDF

Info

Publication number
TWI745997B
TWI745997B TW109119252A TW109119252A TWI745997B TW I745997 B TWI745997 B TW I745997B TW 109119252 A TW109119252 A TW 109119252A TW 109119252 A TW109119252 A TW 109119252A TW I745997 B TWI745997 B TW I745997B
Authority
TW
Taiwan
Prior art keywords
port
state drive
solid state
ports
solid
Prior art date
Application number
TW109119252A
Other languages
Chinese (zh)
Other versions
TW202147114A (en
Inventor
林昭宇
劉恒賓
邱俊翔
Original Assignee
慧榮科技股份有限公司
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 慧榮科技股份有限公司 filed Critical 慧榮科技股份有限公司
Priority to TW109119252A priority Critical patent/TWI745997B/en
Application granted granted Critical
Publication of TWI745997B publication Critical patent/TWI745997B/en
Publication of TW202147114A publication Critical patent/TW202147114A/en

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

A method is introduced for producing solid state disks (SSDs), which is performed by a processing unit of a production host. The production host includes a device interface including first ports. Each first port is connected to one hub. Each hub includes second ports. The method includes the steps of: loading a port-mapping configuration table containing location information for indicating the second ports; comparing location information of a hardware description file with the location information of the port-mapping configuration table to determine whether each second port is connected to a SSD; displaying a graphical user interface (GUI) for showing whether each second port is connected to a SSD; and, when a SSD connecting to one second port fails to perform a card-activation process, updating the GUI for showing information about a card-activation failure has occurred in the SSD connecting to the corresponding second port. With the aforementioned comparisons therebetween, it can automatically identify ports of each hub of the production system.

Description

生產固態硬碟的方法及裝置以及電腦程式產品 Method and device for producing solid hard disk and computer program product

本發明涉及儲存裝置,尤指一種生產固態硬碟的電腦程式產品及方法以及裝置。 The invention relates to a storage device, in particular to a computer program product, method and device for producing solid-state hard disks.

固態硬碟通常需要完成開卡程序後才能出廠銷售,而開卡程序耗費的時間在固態硬碟的生產上是個重要的課題。一部生產主機通常可以通過裝置介面的埠連接5到16個固態硬碟,並且對連接上的固態硬碟進行開卡。然而,傳統上,當其中一個固態硬碟的開卡失敗時,生產主機無法自動知道實際上是哪一個發生了錯誤,需要生產人員以人工的方式將連接的固態硬碟拔下來確認,拉長了生產的時間。 The solid state drive usually needs to complete the card opening procedure before it can be sold out of the factory, and the time consumed by the card opening procedure is an important issue in the production of the solid state hard drive. A production host can usually connect 5 to 16 solid state drives through the port of the device interface, and open the card of the connected solid state drive. However, traditionally, when one of the solid state drives fails to open the card, the production host cannot automatically know which one actually has an error, and the production personnel need to manually unplug the connected solid state drive to confirm and extend it. Time for production.

因此,本發明提出一種生產固態硬碟的方法、裝置及電腦程式產品,用於解決如上所述的問題。 Therefore, the present invention provides a method, device, and computer program product for producing a solid state hard disk to solve the above-mentioned problems.

有鑑於此,如何減輕或消除上述相關領域的缺失,實為有待解決的問題。 In view of this, how to reduce or eliminate the deficiencies in the above-mentioned related fields is indeed a problem to be solved.

本說明書涉及一種生產固態硬碟的方法的實施例,由生產主機的處理單元執行。生產主機包含裝置介面,且裝置介面包含多個第一埠。每個第一埠連接一個集線器,且每個集線器包含多個第二埠。上述方法包含:載入埠映射組態表,包含代表每個第二埠的位置資訊;比對硬體描述檔中的位置資訊和埠映射組態表中的位置資訊來判斷每個第二埠是否連接固態硬碟;在顯示器上顯示圖形用戶界面,用 於指出每個第二埠是否連接固態硬碟的資訊;以及當第二埠中的一個所連接的固態硬碟開卡失敗時,更新圖形用戶界面,用於指出相應第二埠所連接的固態硬碟發生開卡失敗的資訊。 This specification relates to an embodiment of a method for producing a solid state hard disk, which is executed by the processing unit of the production host. The production host includes a device interface, and the device interface includes a plurality of first ports. Each first port is connected to a hub, and each hub includes multiple second ports. The above method includes: loading the port mapping configuration table, which contains the location information representing each second port; comparing the location information in the hardware description file with the location information in the port mapping configuration table to determine each second port Whether to connect a solid state drive; display the graphical user interface on the monitor, use In the information indicating whether each second port is connected to the solid state drive; and when the solid state drive connected to one of the second ports fails to open the card, the graphical user interface is updated to indicate the solid state drive connected to the corresponding second port Information about the card opening failure of the hard disk.

本說明書另涉及一種電腦程式產品,包含用於生產固態硬碟的程式碼。當生產主機的處理單元執行程式碼時,實施如上所述的生產固態硬碟的方法。 This manual also relates to a computer program product, which contains the program code used to produce solid state drives. When the processing unit of the production host executes the program code, the method for producing the solid state drive as described above is implemented.

本說明書另涉及一種生產固態硬碟的裝置,包含:上述裝置介面和處理單元。處理單元耦接裝置介面,用於載入並執行如上所述的程式碼時,實施如上所述的方法。 This specification also relates to a device for producing solid-state hard disks, including: the above-mentioned device interface and a processing unit. The processing unit is coupled to the device interface, and is used to load and execute the above-mentioned program code to implement the above-mentioned method.

上述實施例的優點之一,通過如上所述的比對,能夠自動識別生產系統中每個集線器上的每個埠是否連接固態硬碟。 One of the advantages of the above embodiment is that through the above comparison, it can automatically identify whether each port on each hub in the production system is connected to a solid state drive.

上述實施例的另一個優點,通過如上所述的埠映射組態表中包含的資訊,當某個固態硬碟開卡失敗時,能夠自動辨認是哪個埠上連接的固態硬碟在開卡過程中發生錯誤。 Another advantage of the above embodiment is that through the information contained in the port mapping configuration table as described above, when a certain solid state drive fails to open, it can automatically identify which port is connected to the solid state drive in the process of opening the card. An error occurred in.

本發明的其他優點將搭配以下的說明和圖式進行更詳細的解說。 Other advantages of the present invention will be explained in more detail with the following description and drawings.

110:定埠階段 110: fixed port stage

130:開卡階段 130: card opening stage

140:訓練計算機 140: training computer

160:埠映射組態表 160: Port mapping configuration table

180:生產計算機 180: production computer

20:訓練系統 20: Training system

210:定埠主機 210: fixed port host

212:裝置介面 212: Device Interface

214-1~214-4,232-1~232-4:埠 214-1~214-4,232-1~232-4: Port

230:集線器 230: Hub

250,250-1~250-4:訓練固態硬碟 250, 250-1~250-4: training solid state drive

270:顯示器 270: display

312:處理單元 312: Processing Unit

314:隨機存取記憶體 314: Random Access Memory

316:儲存單元 316: storage unit

330:閃存控制器 330: Flash Controller

332:主機介面 332: Host Interface

350:閃存模組 350: Flash memory module

S410~S480:方法步驟 S410~S480: method steps

50:生產系統 50: production system

510:生產主機 510: production host

512:裝置介面 512: device interface

514-1~514-4,532-1~532-4:埠 514-1~514-4,532-1~532-4: Port

530:集線器 530: Hub

550,550-1~550-4:固態硬碟 550,550-1~550-4: solid state drive

570:顯示器 570: display

612,637:處理單元 612,637: processing unit

614:隨機存取記憶體 614: Random Access Memory

616:儲存單元 616: storage unit

632:主機介面 632: Host Interface

634:閃存介面 634: flash memory interface

636:揮發性隨機存取記憶體 636: Volatile Random Access Memory

638:唯讀記憶體 638: Read Only Memory

650:閃存模組 650: Flash memory module

S710~S790:方法步驟 S710~S790: method steps

800:圖形用戶界面 800: Graphical user interface

810#1~810#16:訊息框 810#1~810#16: message box

圖1為依據本發明實施例的生產階段示意圖。 Fig. 1 is a schematic diagram of a production stage according to an embodiment of the present invention.

圖2為依據本發明實施例的訓練系統的示意圖。 Fig. 2 is a schematic diagram of a training system according to an embodiment of the present invention.

圖3為依據本發明實施例的定埠主機和訓練固態硬碟的方塊圖。 FIG. 3 is a block diagram of a fixed-port host and a training solid state drive according to an embodiment of the present invention.

圖4為依據本發明實施例的定埠方法流程圖。 FIG. 4 is a flowchart of a port determination method according to an embodiment of the present invention.

圖5為依據本發明實施例的生產系統的示意圖。 Fig. 5 is a schematic diagram of a production system according to an embodiment of the present invention.

圖6為依據本發明實施例的生產主機和固態硬碟的方塊圖。 Fig. 6 is a block diagram of a production host and a solid state drive according to an embodiment of the present invention.

圖7為依據本發明實施例的開卡方法流程圖。 Fig. 7 is a flowchart of a card opening method according to an embodiment of the present invention.

圖8和圖9為依據本發明實施例的圖形用戶界面的示意圖。 Figures 8 and 9 are schematic diagrams of graphical user interfaces according to embodiments of the present invention.

以下說明為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的 權利要求範圍。 The following descriptions are preferred implementations for completing the invention, and their purpose is to describe the basic spirit of the invention, but not to limit the invention. The actual content of the invention must refer to the following Scope of claims.

必須了解的是,使用於本說明書中的“包含”、“包括”等詞,用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。 It must be understood that the words "including" and "including" used in this specification are used to indicate the existence of specific technical features, values, method steps, operations, elements, and/or components, but they do not exclude the possibility of adding More technical features, values, method steps, job processing, components, components, or any combination of the above.

於權利要求中使用如“第一”、“第二”、“第三”等詞是用於修飾權利要求中的元件,並非用於表示之間具有優先順序,前置關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用於區別具有相同名字的元件。 Words such as "first", "second", and "third" used in the claims are used to modify the elements in the claims, and are not used to indicate that there is a precedence, prerequisite relationship, or an element. Prior to another element, or the chronological order of execution of method steps, is only used to distinguish elements with the same name.

必須了解的是,當元件描述為“連接”或“耦接”至另一元件時,可以是直接連結、或耦接至其他元件,可能出現中間元件。相反地,當元件描述為“直接連接”或“直接耦接”至另一元件時,其中不存在任何中間元件。使用來描述元件之間關係的其他語詞也可類似方式解讀,例如“介於”相對於“直接介於”,或者是“鄰接”相對於“直接鄰接”等等。 It must be understood that when an element is described as being “connected” or “coupled” to another element, it can be directly connected or coupled to other elements, and intervening elements may appear. Conversely, when an element is described as being "directly connected" or "directly coupled" to another element, there are no intervening elements. Other terms used to describe the relationship between elements can also be interpreted in a similar manner, such as "between" versus "directly between", or "adjacent" versus "directly adjacent" and so on.

為了讓生產計算機能夠自動區別每個埠上連接的固態硬碟(Solid State Disk,SSD),本發明實施例將整個生產流程分為二個階段:定埠(Port Distinguishing)階段和開卡(Card Activation)階段。參考圖1,在定埠階段110,訓練計算機140分析作業系統(Operating System,OS)中的硬體描述檔(Hardware Description File)的內容,用於獲取每個物理埠的識別資訊,例如序列先進技術附著/快速周邊元件互聯登錄檔(Serial Advanced Technology Attachment,SATA/Peripheral Component Interconnect Express,PCIe Registries)、匯流排編號(Bus Number)、目標識別碼(Target ID)、邏輯單元號(Logical Unit Number,LUN)等,並據以產生埠映射組態表(Port-mapping Configuration Table)160。在開卡階段130,生產計算機180載入埠映射組態表160,並且為多個連接上生產計算機180 的固態硬碟執行開卡程序。在開卡程序中,如果生產計算機180發現任何錯誤訊息,可依據埠映射組態表160的資訊辨認出是哪個物理埠上連接的固態硬碟發生錯誤,並顯示在圖形用戶界面(Graphical User Interface,GUI),有利於操作人員和/或生產計算機180執行錯誤排除處理。在這裡需要注意的是訓練計算機140和生產計算機180可以是兩部擁有相同的必要軟體和硬體配置的計算機,或者是同一部計算機。 In order to allow the production computer to automatically distinguish the Solid State Disk (SSD) connected to each port, the embodiment of the present invention divides the entire production process into two stages: Port Distinguishing stage and Card opening stage. Activation) stage. Referring to FIG. 1, in the port determination stage 110, the training computer 140 analyzes the content of the Hardware Description File (Hardware Description File) in the operating system (Operating System, OS) to obtain the identification information of each physical port, such as serial advanced Technology Attachment/Fast Peripheral Component Interconnect Express (Serial Advanced Technology Attachment, SATA/Peripheral Component Interconnect Express, PCIe Registries), Bus Number, Target ID, Logical Unit Number, LUN) and so on, based on which a Port-mapping Configuration Table 160 is generated. In the card opening stage 130, the production computer 180 loads the port mapping configuration table 160, and the production computer 180 is connected for multiple connections Perform the card opening procedure for the solid state drive. During the card opening process, if the production computer 180 finds any error messages, the port mapping configuration table 160 can be used to identify which physical port is connected to the solid state drive that has an error, and display it on the Graphical User Interface (Graphical User Interface). , GUI), which is beneficial to the operator and/or the production computer 180 to perform error elimination processing. It should be noted here that the training computer 140 and the production computer 180 may be two computers with the same necessary software and hardware configuration, or the same computer.

參考圖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,OLED Display)等,在訓練流程中顯示讓工程師或操作員可以觀看的畫面,包含提示的文字、數字、符號、圖案等,或以上任意組合。 Refer to Figure 2. The training system 20 includes a port-distinguishing host 210, a hub 230, a training solid-state drive 250, and a display 270. The training computer 140 described in FIG. 1 may include a fixed-port 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 can be a Thin Film Transistor-Liquid Crystal Display (TFT-LCD Display), an Organic Light-Emitting Diode (OLED Display), etc., which can be displayed during the training process for engineers or The screen that the operator can watch, including prompt text, numbers, symbols, patterns, etc., or any combination of the above.

定埠主機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能夠連接上更多或更少的訓練固態硬碟,本發明不應因此受限。 The fixed port host 210 can be implemented by a personal computer, a laptop PC, an industrial computer, a workstation, or the like. The fixed-port host 210 includes a device interface 212 with a plurality of ports 214-1 to 214-4, and each port can be connected to a hub, for example, the port 214-1 is connected to the hub 230. Although the device interface 212 described in FIG. 2 is only equipped with 4 ports, those skilled in the art can equip the device interface 212 with more or fewer ports, so that the fixed-port host 210 can connect to more or fewer hubs. The present invention should not be limited by this. The hub 230 includes a plurality of ports 232-1 to 232-4, and each port can be plugged into a training solid state drive 250, such as any one of the training solid state drives 250-1 to 250-4. It should be noted that, in order to make the instructions concise, when the following paragraphs use the training solid state drive 250 to describe, it means that the structure, function, method steps or other technical content of the description can be applied to the training solid state drive 250-1 to 250-4 And others Any one of them. Although the hub 230 described in FIG. 1 has 4 ports, those skilled in the art can connect a hub with more or fewer ports to the fixed-port host 210, so that the fixed-port host 210 can be connected to more or less training. For solid state drives, the present invention should not be limited by this.

參考圖3。由於集線器230連接裝置介面212上的一個埠並且在訓練固態硬碟250插上集線器230時,等同於訓練固態硬碟250物理性連接上定埠主機210,所以圖3中省略了圖2所示的集線器230。定埠主機210包含處理單元312,可使用多種方式實施,如使用通用硬體(例如,單一處理器、具平行處理能力的多處理器、圖形處理器或其他具運算能力的處理器),並且在執行軟體以及/或韌體指令時,例如,定埠工具(Port-distinguishing Tool)、作業系統(Operating System,OS)、驅動程式(Driver)等,提供指定的功能。處理單元312可通過裝置介面212傳送命令給訓練固態硬碟250,完成所需要的操作。 Refer to Figure 3. Since the hub 230 is connected to a port on the device interface 212 and when the training solid state drive 250 is plugged into the hub 230, it is equivalent to training the solid state drive 250 physically connected to the fixed port host 210, so the figure 2 shown in Figure 3 is omitted The hub 230. The fixed-port host 210 includes a processing unit 312, which can be implemented in a variety of ways, such as using general-purpose hardware (for example, a single processor, multiple processors with parallel processing capabilities, graphics processors, or other processors with computing capabilities), and When executing software and/or firmware commands, for example, Port-distinguishing Tool (Port-distinguishing Tool), Operating System (OS), Driver, etc., provide specified functions. The processing unit 312 can send commands to the training solid state drive 250 through the device interface 212 to complete the required operations.

訓練固態硬碟250包含閃存控制器330及閃存模組350。閃存模組350提供大量的儲存空間,通常是數百個千兆位元組(Gigabytes),甚至是數個兆兆位元組(Terabytes),用於儲存大量的使用者資料,例如高解析度圖片、影片等。閃存控制器130包含主機介面332,並且主機介面332耦接定埠主機210的裝置介面212。 The training solid state drive 250 includes a flash memory controller 330 and a flash memory module 350. The flash memory module 350 provides a large amount of storage space, usually hundreds of gigabytes (Gigabytes), or even several terabytes (Terabytes), used to store a large amount of user data, such as high resolution Pictures, videos, etc. The flash memory controller 130 includes a host interface 332, and the host interface 332 is coupled to the device interface 212 of the fixed-port host 210.

為了區分如圖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),用於儲存如硬體識別碼、位置資訊、製造商、服務等的設定值。 In order to distinguish the ports 214-1 to 214-4 of the device interface 212 and the ports 232-1 to 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 to 214-4 and The ports 232-1 to 232-4 enable the software program to know that an input/output device is connected to the fixed port host 210 through one of the ports 214-1 to 214-4 and the ports 232-1 to 232-4 when the software program is executed. For example, the Windows Registry is a hierarchical database that stores low-level settings and is used for Windows operating systems (Windows OS) and applications. In detail, the Windows registry file includes the hardware of the fixed-port host 210 (such as SATA/PCIe interface, etc.) and the device connected to the fixed-port host 210 (such as a solid state drive) Information, settings, options, and other values for. When a solid state drive is connected to the fixed-port host 210 through a port of the hub 230, a new subkey (Subkey) will be added to the window registry file. The subkey contains multiple values (Values) for storage such as hardware Setting values for identification code, location information, manufacturer, service, etc.

本發明實施例提出一種定埠方法,由處理單元312載入並執行定埠工具的程式碼時實施。參考圖4。以視窗作業系統為例,詳細說明如下:步驟S410:設定變數i=1。變數i用來記錄定埠的順序編號。 The embodiment of the present invention provides a port determination method, which is implemented when the processing unit 312 loads and executes the program code of the port determination tool. Refer to Figure 4. Taking the Windows operating system as an example, the detailed description is as follows: Step S410: Set the variable i=1. The variable i is used to record the serial number of the fixed port.

接著,流程反覆執行一個迴圈,包含步驟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定埠。這個過程會一直重複,直到必要的埠都完成定埠為止。 Then, the process repeatedly executes a loop, including steps S420 to S480. Before each round is executed, the operator inserts a training solid state drive into the designated port. For example, the ports 232-1, 232-2, 232-3, and 232-4 of the hub 230 may be sequentially labeled Port#1, Port#2, Port#3, and Port#4. After the operator inserts the training solid-state drive 250-1 into the port 232-1, the processing unit 312 executes steps S420 to S480 to set the port Port#1. Then, after the operator inserts the training solid state drive 250-2 into the port 232-2, the processing unit 312 executes steps S420 to S480 to set the port Port#2. This process will be repeated until the necessary ports have been fixed.

步驟S420:獲取相應於新插入的固態硬碟所增加到視窗登錄檔的子鍵(Subkey)。舉例來說,處理單元312可執行微軟應用程式介面(Application Programming Interface,API)功能“CreateFile”來獲取視窗登錄檔中路徑“Enum\SCSI”的控制代碼。接著,處理單元312可執行微軟API功能“DeviceIOControl”來檢查獲取的控制代碼中是否有新增加的子鍵。如果有新增加的子鍵,代表偵測到一個新增加的小型電腦系統介面(Small Computer System Interface,SCSI)裝置,則獲取此子鍵的類別全域唯一識別碼(ClassGUID)。如果沒有新增加的子鍵,處理單元312可執行微軟API功能“CreateFile”來獲取視窗登錄檔中路徑“Enum\IDE”的控制代碼。接著,處理單元312可執行微軟API功能“DeviceIOControl”來檢查是否獲取的控制代碼中是 否有新增加的子鍵。如果有新增加的子鍵,代表偵測到一個新增加的整合裝置電路(Integrated Drive Electronics,IDE)裝置,則獲取此子鍵的類別全域唯一識別碼。 Step S420: Obtain the subkey corresponding to the newly inserted solid-state drive added to the window registration file. For example, the processing unit 312 can execute the Microsoft Application Programming Interface (API) function "CreateFile" to obtain the control code of the path "Enum\SCSI" in the Windows registry file. Next, the processing unit 312 can execute the Microsoft API function "DeviceIOControl" to check whether there is a newly added subkey in the acquired control code. If there is a newly added subkey, it means that a newly added Small Computer System Interface (SCSI) device is detected, and the class GUID of this subkey is obtained. If there is no newly added subkey, the processing unit 312 can execute the Microsoft API function "CreateFile" to obtain the control code of the path "Enum\IDE" in the Windows login file. Next, the processing unit 312 can execute the Microsoft API function "DeviceIOControl" to check whether the acquired control code is Are there any newly added subkeys? If there is a newly added subkey, it means that a newly added Integrated Drive Electronics (IDE) device is detected, and then the category global unique identification code of this subkey is obtained.

步驟S430:從新增加的子鍵中獲取第i個埠的位置資訊。舉例來說,處理單元312可執行微軟API功能“WINSETUPAPI SetupDiGetClassDeVs‘,用於依據類別全域唯一識別碼(在步驟S420獲取)來獲取指向特定裝置資訊集(Device Information Set)的控制代碼“HDEVINFO-。處理單元312可執行微軟API功能“WINSETUPAPI SetupDiEnumDeviceInterface”,用於列舉控制代碼“HDEVINFO”中包含的裝置介面(Device Interfaces),裝置介面的資料可儲存在RAM 314中的預設緩衝區。處理單元312可執行微軟API功能“WINSETUPAPI SetupDiGetDeviceInterfaceDetail”,用於取得裝置介面的詳細資料,其中包含裝置路徑(Device Path)和位置資訊(Location Information)。位置資訊包含三個部分:匯流排編號(Bus Number);目標識別碼(Target ID);和邏輯單元號(Logical Unit Number,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”。 Step S430: Obtain the location information of the i-th port from the newly added subkey. For example, the processing unit 312 can execute the Microsoft API function "WINSETUPAPI SetupDiGetClassDeVs", which is used to obtain the control code "HDEVINFO-" pointing to a specific Device Information Set according to the category global unique identification code (obtained in step S420). The processing unit 312 can execute the Microsoft API function "WINSETUPAPI SetupDiEnumDeviceInterface" for listing the device interfaces (Device Interfaces) contained in the control code "HDEVINFO". The data of the device interfaces can be stored in the preset buffer in the RAM 314. The processing unit 312 can execute the Microsoft API function "WINSETUPAPI SetupDiGetDeviceInterfaceDetail" for obtaining detailed data of the device interface, including the device path (Device Path) and location information (Location Information). The location information includes three parts: Bus Number; Target ID; and Logical Unit Number (LUN). For example, the location information can be used to identify one of the ports 232-1 to 232-4 of the hub 230 in FIG. 2. The processing unit 312 can interrupt the string between the second to the third hashtag ("#", Hashtag) from the device path, and extract the last word before the ampersand ("&", Ampersand) in the string Yuan as the device path number. For example, the processing unit 312 can retrieve the device path serial number "4&2e835db4&0" from the device path "\\?\scsi#disk&ven_wdc&prod_wd10spzx-08z10#4&2e835db4&0&000200#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}" of the SCSI device. For another example, the processing unit 312 can retrieve the device path serial number "5" from the IDE device's device path "\\?\ide#disksmi_disk____q0921b_#5&39170d91&0&1.0.0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}".

步驟S440:根據第i個埠的裝置路徑序號獲取第i個埠的PCI或IDE登錄檔。處理單元312可根據步驟S420偵測到的新增加子鍵是在哪個路徑中的資訊來決定要掃描的是PCI或IDE登錄檔。 Step S440: Obtain the PCI or IDE registration file of the i-th port according to the device path serial number of the i-th port. The processing unit 312 can determine whether the PCI or IDE registry file to be scanned is based on the information in which path the newly added subkey is detected in step S420.

如果新增加子鍵是在路徑“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登錄檔,處理單元312可執行微軟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”。 If the newly added subkey is in the path "Enum\SCSI", the processing unit 312 scans the PCI registration file. For example, the processing unit 312 executes the Microsoft API function “CreateFile” to obtain the control code of the path “Enum\PCI” in the Windows registry file. The processing unit 312 can execute the Microsoft API function "DeviceIOControl" to obtain all the subkeys in the control code. Then, for each subkey, referring to the technical content described in step S420, the processing unit 312 can execute the Microsoft API functions "WINSETUPAPI SetupDiGetClassDevs", "WINSETUPAPI SetupDiEnumDeviceInterface" and "WINSETUPAPI SetupDiGetDeviceInterfaceDetail" to obtain the registry value "ParentIdPrifix" ", and compare whether the registered value "ParentIdPrifix" matches the device path serial number obtained in step S430. If it matches, it means that this subkey contains the PCI registration file of the i-th port, and the processing unit 312 can execute the Microsoft API function "WINSETUPAPI SetupDiGetDeviceInterfaceDetail" to obtain the PCI registration file. The processing unit 312 can interrupt the string from the second backslash ("\", Backslash) to the last ampersand ("&", Ampersand) from the PCI registration file as the device path serial number of the PCI device. For example, the processing unit 312 can retrieve the device path serial 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.

如果新增加子鍵是在路徑“Enum\IDE”中,則處理單元312掃描PCIIDE登錄檔。舉例來說,處理單元312執行微軟API功能“CreateFile”來獲取視窗登錄檔中路徑“Enum\PCIIDE”的控制代碼。處理單元312可執行微軟API功能“DeviceIOControl”來獲取控制代碼中的所有子鍵。接著,針對每一個子鍵,參考如步驟S420所述的技術內容,處理單元312可執行微軟API功能“WINSETUPAPI SetupDiGetClassDevs”、“WINSETUPAPI SetupDiEnumDeviceInterface”和“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”。 If the newly added subkey is in the path "Enum\IDE", the processing unit 312 scans the PCIIDE registration file. For example, the processing unit 312 executes the Microsoft API function “CreateFile” to obtain the control code of the path “Enum\PCIIDE” in the window registration file. The processing unit 312 can execute the Microsoft API function "DeviceIOControl" to obtain all the subkeys in the control code. Then, for each subkey, referring to the technical content described in step S420, the processing unit 312 can execute the Microsoft API functions "WINSETUPAPI SetupDiGetClassDevs", "WINSETUPAPI SetupDiEnumDeviceInterface" and "WINSETUPAPI SetupDiGetDeviceInterfaceDetail" to obtain the registry value “ParentIdPrifix”, and compare whether the registry value “ParentIdPrifix” matches the device path serial number obtained in step S430. If they match, it means that this subkey contains the IDE login of the i-th port. The processing unit S312 can execute the Microsoft API function "WINSETUPAPI SetupDiGetDeviceInterfaceDetail" to obtain the IDE login file. The processing unit 312 can interrupt the IDE login file from the second backslash ("\", Backslash) to the last and the symbol ("& ", Ampersand), as the device path serial number of the IDE device. For example, the processing unit 312 can retrieve the device path serial number "4&1dd8ffee&0" from the device path "PCIIDE\IDEChannel\4&1dd8ffee&0&1" of the IDE device.

步驟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登錄檔。 Step S450: Obtain the SATA or PCIe registration file according to the device path serial number of the PCI or IDE device. For example, the processing unit 312 can execute the Microsoft API function "CreateFile" to obtain the control code of the path "Enum\PCI" in the Windows log file. The processing unit 312 can execute the Microsoft API function "DeviceIOControl" to obtain all the subkeys in the control code. Next, for each subkey, referring to the technical content described in step S420, the processing unit 312 can execute the Microsoft API functions "WINSETUPAPI SetupDiGetClassDevs", "WINSETUPAPI SetupDiEnumDeviceInterface" and "WINSETUPAPI SetupDiGetDeviceInterfaceDetail" to obtain the login value "ParentIdPrifix", and compare Whether the registered value "ParentIdPrifix" matches the device path serial number obtained in step S440. If it matches, it means that this subkey contains the SATA registry file of the i-th port, and the processing unit S312 can execute the Microsoft API function "WINSETUPAPI SetupDiGetDeviceInterfaceDetail" to obtain the SATA registry file.

如果在視窗登錄檔中路徑“Enum\PCI”的控制代碼找不到相符的登錄檔,處理單元312執行微軟API功能“CreateFile”來獲取視窗登錄檔中路徑“Enum\ACPI”的控制代碼。處理單元312可執行微軟API功能“DeviceIOControl”來獲取控制代碼中的所有子鍵。接著,針對每一 個子鍵,參考如步驟S420所述的技術內容,處理單元312可執行微軟API功能“WINSETUPAPI SetupDiGetClassDevs”、“WINSETUPAPI SetupDiEnumDeviceInterface”和“WINSETUPAPI SetupDiGetDeviceInterfaceDetail”來獲取登錄值“ParentIdPrifix”,並比較登錄值“ParentIdPrifix”是否相符於步驟S440中獲取的裝置路徑序號。如果相符,則代表此子鍵包含第i個埠的PCIe登錄檔,處理單元S312可執行微軟API功能“WINSETUPAPI SetupDiGetDeviceInterfaceDetail”來獲取PCIe登錄檔,“ACPI\PNP0A08\0”。舉例來說,SATA或PCIe登錄檔可用來識別圖2中裝置介面212的埠214-1至214-4中的一個。 If the control code of the path “Enum\PCI” in the window registry file cannot find a matching registry file, the processing unit 312 executes the Microsoft API function “CreateFile” to obtain the control code of the path “Enum\ACPI” in the window registry file. The processing unit 312 can execute the Microsoft API function "DeviceIOControl" to obtain all the subkeys in the control code. Then, for each With reference to the technical content described in step S420, the processing unit 312 can execute the Microsoft API functions "WINSETUPAPI SetupDiGetClassDevs", "WINSETUPAPI SetupDiEnumDeviceInterface" and "WINSETUPAPI SetupDiGetDeviceInterfaceDetail" to obtain the login value "ParentIdPrifix", and compare the login value "ParentIdPrifix" Whether it matches the device path serial number obtained in step S440. If it matches, it means that this subkey contains the PCIe registration file of the i-th port, and the processing unit S312 can execute the Microsoft API function "WINSETUPAPI SetupDiGetDeviceInterfaceDetail" to obtain the PCIe registration file, "ACPI\PNP0A08\0". For example, the SATA or PCIe registry file can be used to identify one of the ports 214-1 to 214-4 of the device interface 212 in FIG. 2.

步驟S460:儲存第i個埠的定埠資訊到RAM 314和/或儲存單元316中的埠映射組態表160。定埠資訊包含步驟S430獲取的位置資訊和步驟S450獲取的SATA或PCIe登錄檔。表1顯示埠映射組態表160的部份範例:

Figure 109119252-A0305-02-0013-1
Step S460: Store the fixed port information of the i-th port in the RAM 314 and/or the port mapping configuration table 160 in the storage unit 316. The port information includes the location information obtained in step S430 and the SATA or PCIe registration file obtained in step S450. Table 1 shows some examples of port mapping configuration table 160:
Figure 109119252-A0305-02-0013-1

舉例來說,埠映射組態表160的第1至第4筆記錄分別儲存埠Port#1至Port#4的位置資訊和PCIe登錄檔。 For example, the first to fourth records of the port mapping configuration table 160 respectively store the location information of the ports Port#1 to Port#4 and the PCIe registration file.

步驟S470:判斷是否定埠作業完成。如果是,則流程結束,埠映射組態表160製作完成。否則,流程繼續進行步驟S480的處理。 Step S470: Determine whether the port assignment is completed. If it is, the process ends, and the port mapping configuration table 160 is created. Otherwise, the flow continues with the processing of step S480.

步驟S480:計算i=i+1。 Step S480: Calculate i=i+1.

當流程結束後,定埠主機210的RAM 314或儲存單元316中的埠映射 組態表160可以輸出到生產計算機180,讓開卡程序參考用。 When the process ends, the port mapping in RAM 314 or storage unit 316 of fixed port host 210 The configuration table 160 can be output to the production computer 180 for reference by the card opening program.

在這裡需要注意的是,由於操作人員以預設的順序逐一插入訓練固態硬碟到集線器的所有埠,因此,埠映射組態表160中的位置資訊的順序相符於集線器的埠的預設物理安排。 It should be noted here that since the operator inserts the training solid-state drive into all ports of the hub one by one in the preset order, the order of the position information in the port mapping configuration table 160 matches the default physical of the hub port. arrange.

參考圖5。生產系統50包含生產主機(Production Host)510、集線器530、固態硬碟550-1至550-4及顯示器570。針對每一個固態硬碟550,在閃存控制器及閃存模組設置在母板後,還需要完成開卡流程(Card-activation Process)才能夠出廠並提供給客戶。顯示器570可以是薄膜電晶體液晶顯示器、有機發光二極體顯示器等,在開卡流程中顯示讓工程師或操作員可以觀看的畫面,包含提示的文字、數字、符號、圖案等,或以上任意組合。 Refer to Figure 5. The production system 50 includes a production host 510, a hub 530, solid state drives 550-1 to 550-4, and a display 570. For each solid-state hard disk 550, after the flash memory controller and flash memory module are installed on the motherboard, the card activation process (Card-activation Process) needs to be completed before it can be shipped and provided to customers. The display 570 can be a thin-film transistor liquid crystal display, an organic light-emitting diode display, etc. It displays images that can be viewed by engineers or operators during the card opening process, including prompt texts, numbers, symbols, patterns, etc., or any combination of the above .

在正常情況下,生產主機510中的裝置介面512,和集線器530擁有相同或者匹配於定埠主機210的裝置介面212,和集線器230的軟硬體設置。為了讓說明書簡明,以下段落使用固態硬碟550來描述時,代表其說明的結構、功能、方法步驟或其他技術內容能夠應用在固態硬碟550-1至550-4和其他中的任何一個。 Under normal circumstances, the device interface 512 in the production host 510 and the hub 530 have the same or match the device interface 212 of the fixed-port host 210, and the hardware and software settings of the hub 230. In order to make the description concise, when the solid state drive 550 is used for description in the following paragraphs, it means that the structure, function, method steps or other technical content of the description can be applied to any of the solid state drives 550-1 to 550-4 and others.

參考圖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,完成開卡流程中所需要的操作。供應商命令不是標準的主機操作命令,例如,通用快閃記憶儲存(Universal Flash Storage,UFS)、快速非揮發性記憶體(Non-Volatile Memory Express,NVMe)、開放通道固態硬碟(Open-channel Solid State Disk,SSD)等定義的管理命令、輸入輸出命令等,而是由固態硬碟550或者閃存控制器630的製造商提供給客戶的自訂命令(Proprietary Commands)。 Refer to Figure 6. Since the hub 530 is connected to a port on the device interface 512 and the solid state drive 550 is plugged into the hub 530, it is equivalent to that the solid state drive 550 is physically connected to the production host 510, so the hub 530 shown in FIG. 1 is omitted in FIG. The production host 510 includes a processing unit 612, which can be implemented in a variety of ways, such as using general-purpose hardware (for example, a single processor, multiple processors with parallel processing capabilities, graphics processors or other processors with computing capabilities), and When executing software and/or firmware commands, for example, mass production tools (Mass Production, MP Tool), operating systems (OS), drivers, etc., provide specified functions. The processing unit 612 can issue a command to the device interface 512 for sending a vendor command (Vendor Command) to the solid state drive 550 to complete the operations required in the card opening process. Vendor commands are not standard host operation commands, for example, Universal Flash memory storage (Universal Flash Storage, UFS), fast non-volatile memory (Non-Volatile Memory Express, NVMe), open-channel solid state disk (Open-channel Solid State Disk, SSD) and other defined management commands, input and output commands, etc., but by Proprietary Commands (Proprietary Commands) provided by the manufacturer of the solid state drive 550 or the flash memory controller 630 to the customer.

生產主機510包含儲存單元616,可以為硬碟(Hard Disk)、固態硬碟,用來儲存埠映射組態表160。生產主機510另包含RAM 614,用於執行開卡流程中需要的暫存資料,例如,變數、旗標、埠映射組態表160等。 The production host 510 includes a storage unit 616, which can be a hard disk or a solid state disk, and is used to store the port mapping configuration table 160. The production host 510 further includes a RAM 614, which is used to execute temporary storage data required in the card opening process, such as variables, flags, port mapping configuration table 160, and so on.

固態硬碟550包含閃存控制器630及閃存模組650。閃存模組650提供大量的儲存空間,通常是數百個千兆位元組(Gigabytes),甚至是數個兆兆位元組(Terabytes),用於儲存大量的使用者資料,例如高解析度圖片、影片等。閃存模組650中包含控制電路以及記憶體陣列,記憶體陣列中的記憶單元可包含單層式單元(Single Level Cells,SLCs)、多層式單元(Multiple Level Cells,MLCs)三層式單元(Triple Level Cells,TLCs)、四層式單元(Quad-Level Cells,QLCs)或上述的任意組合。 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, usually hundreds of Gigabytes (Gigabytes), or even several Terabytes (Terabytes), used to store a large amount of user data, such as high resolution Pictures, videos, etc. The flash memory module 650 includes a control circuit and a memory array. The memory cells in the memory array can include single level cells (SLCs), multiple level cells (MLCs) and triple level cells (Triple). Level Cells, TLCs), Quad-Level Cells (QLCs) or any combination of the above.

閃存控制器630包含主機介面632、閃存介面634、揮發性隨機存取記憶體(Volatile Random Access Memory,VRAM)636、處理單元637、唯讀記憶體(Read-Only Memory,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儲存執行開卡流程中需要的暫存資料,例如,變數、旗標、資料表等。 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 input and output. Interface 639. The host interface 632 is coupled to the device interface 512 of the production host 510. The flash interface (Flash Interface) 634 is coupled to the flash memory module 650, and can communicate with each other through the Double Data Rate (DDR) communication protocol, for example, Open NAND Flash Interface (ONFI), double data Rate switch (DDR Toggle) or other interface communication protocol. The processing unit 637 may be implemented by general-purpose hardware as described above. The VRAM 636 stores the temporary data needed in the card opening process, such as variables, flags, and data tables.

參考圖7。本發明實施例提出一種開卡方法,由處理單元612載入並執行量產工具的程式碼時實施。此方法包含以下步驟:載入之前由定埠主機210產生的埠映射組態表160,包含集線器530中每個埠的位置資訊;比對硬體描述檔中的位置資訊和埠映射組態表160中的位置資訊來判斷集線器530中的每個埠是否連接固態硬碟;在顯示器570上顯示GUI,用於指出集線器530中每個埠是否連接固態硬碟的資訊;以及當其中一個埠所連接的固態硬碟開卡失敗時,更新GUI,用於指出相應埠所連接的固態硬碟發生開卡失敗的資訊。硬體描述檔由生產主機510運行的作業系統提供。詳細說明如下:步驟S710:從儲存單元616載入埠映射組態表160,並且儲存於RAM 614中以供快速查找。埠映射組態表160可參考表1或表2(將在以下段落描述)的範例。 Refer to Figure 7. The embodiment of the present 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. This method includes the following steps: load the port mapping configuration table 160 previously generated by the ported host 210, which contains the location information of each port in the hub 530; compare the location information in the hardware description file with the port mapping configuration table 160 to determine whether each port in the hub 530 is connected to a solid state drive; display a GUI on the display 570 to indicate whether each port in the hub 530 is connected to a solid state drive; and when one of the ports is connected When the connected solid-state drive fails to open the card, the GUI is updated to indicate the information that the solid-state drive connected to the corresponding port has failed to open the card. The hardware description file is provided by the operating system run by the production host 510. The detailed description is as follows: Step S710: Load the port mapping configuration table 160 from the storage unit 616, and store it in the RAM 614 for quick search. The port mapping configuration table 160 can refer to the example of Table 1 or Table 2 (which will be described in the following paragraphs).

步驟S720:判斷埠映射組態表160的所有SATA/PCIe登錄檔是否存在生產主機510的作業系統的視窗登錄檔。如果是,流程繼續步驟S730的處理。否則,代表曾經用來產生埠映射組態表160的訓練主機210的軟硬體設置和生產主機510並不相同或不匹配,流程結束。 Step S720: Determine whether all the SATA/PCIe registration files of the port mapping configuration table 160 exist in the window registration file of the operating system of the production host 510. If yes, the flow continues with the processing of step S730. Otherwise, it means that the software and hardware settings of the training host 210 used to generate the port mapping configuration table 160 and the production host 510 are not the same or do not match, and the process ends.

詳細來說,針對埠映射組態表160中的每一個SATA登錄檔,處理單元612可執行微軟API功能“CreateFile”來獲取視窗登錄檔中路徑“Enum\PCI”的控制代碼。處理單元612可執行微軟API功能“DeviceIOControl”來獲取控制代碼中的所有子鍵。接著,針對每一個子鍵,參考如步驟S420所述的技術內容,處理單元612可執行微軟API功能“WINSETUPAPI SetupDiGetClassDevs”、“WINSETUPAPI SetupDiEnumDeviceInterface”和“WINSETUPAPI SetupDiGetDeviceInterfaceDetail”來檢查是否存在相同的SATA登錄檔。當埠映射組態表160中有任何一個SATA登錄檔在此控制代碼中的所有子鍵內都找不到時,代表曾經用來產生埠映射組態表160的訓練主機210的軟硬體設置和生產主機510並不相同或不匹配。 In detail, for each SATA registry file in the port mapping configuration table 160, the processing unit 612 can execute the Microsoft API function “CreateFile” to obtain the control code of the path “Enum\PCI” in the window registry. The processing unit 612 can execute the Microsoft API function "DeviceIOControl" to obtain all the subkeys in the control code. Then, for each subkey, referring to the technical content described in step S420, the processing unit 612 can execute the Microsoft API functions "WINSETUPAPI SetupDiGetClassDevs", "WINSETUPAPI SetupDiEnumDeviceInterface" and "WINSETUPAPI SetupDiGetDeviceInterfaceDetail" to check whether the same SATA login file exists. When any SATA registry file in the port mapping configuration table 160 cannot be found in all the subkeys in this control code, it represents the software and hardware settings of the training host 210 used to generate the port mapping configuration table 160 It is not the same or does not match the production host 510.

此外,針對埠映射組態表160中的每一個PCIe登錄檔,處理單元612可執行微軟API功能“CreateFile”來獲取視窗登錄檔中路徑“Enum\ACPI”的控制代碼。處理單元612可執行微軟API功能“DeviceIOControl”來獲取控制代碼中的所有子鍵。接著,針對每一個子鍵,參考如步驟S420所述的技術內容,處理單元612可執行微軟API功能“WINSETUPAPI SetupDiGetClassDevs”、“WINSETUPAPI SetupDiEnumDeviceInterface”和“WINSETUPAPI SetupDiGetDeviceInterfaceDetail”來檢查是否存在相同的PCIe登錄檔。當埠映射組態表160中有任何一個PCIe登錄檔在此控制代碼中的所有子鍵內都找不到時,代表曾經用來產生埠映射組態表160的訓練主機210的軟硬體設置和生產主機510並不相同或不匹配。 In addition, for each PCIe registration file in the port mapping configuration table 160, the processing unit 612 can execute the Microsoft API function "CreateFile" to obtain the control code of the path "Enum\ACPI" in the window registration file. The processing unit 612 can execute the Microsoft API function "DeviceIOControl" to obtain all the subkeys in the control code. Next, for each subkey, referring to the technical content described in step S420, the processing unit 612 can execute the Microsoft API functions "WINSETUPAPI SetupDiGetClassDevs", "WINSETUPAPI SetupDiEnumDeviceInterface" and "WINSETUPAPI SetupDiGetDeviceInterfaceDetail" to check whether the same PCIe login file exists. When any PCIe registration file in the port mapping configuration table 160 cannot be found in all the subkeys in this control code, it represents the hardware and software settings of the training host 210 used to generate the port mapping configuration table 160 It is not the same or does not match the production host 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上可顯示每一個埠上是否連接一個固態硬碟,每一個埠的位置資訊,以及每個埠上連接的固態硬碟的開卡狀態。 Step S730: Scan the solid state drive connected to the production host. For example, referring to the technical content of steps S420 and S430, the processing unit 612 can execute Microsoft API functions "CreateFile", "DeviceIOControl", "WINSETUPAPI SetupDiGetClassDevs", "WINSETUPAPI SetupDiEnumDeviceInterface" and "WINSETUPAPI SetupDiGetDeviceInterfaceDetail" to obtain all connected production hosts Location information of 510 SCSI devices and IDE devices. Then, the processing unit 612 compares the location information of all connected SCSI devices and IDE devices with all the location information in the port mapping configuration table 160, and determines which ports on the production host 510 have been connected to the solid state drive 550, and the display The 570’s Graphical User Interface (GUI) displays the detected connection results. For example, the GUI can display whether a solid state drive is connected to each port, the location information of each port, and the open card status of the solid state drive connected to each port.

在一些實施例中,處理單元612可在GUI上顯示固態硬碟550連接到的集線器上的埠的位置資訊的內容,例如,匯流排編號,目標識別碼,邏輯單元號,或以上的任意組合。 In some embodiments, the processing unit 612 can display the location information of the port on the hub to which the solid state drive 550 is connected on the GUI, for example, the bus number, the target identification code, the logical unit number, or any combination of the above .

在另一些實施例中,處理單元612可更依據特定埠的匯流排編號和目標識別碼計算埠號(Port Number),並且使用埠號來代表特定埠的的位置資訊,範例的公式如下: PN=BusN*MAX_PCI_TARGET_NUM+TargetID其中,PN代表特定埠的埠號,BusN代表特定埠的匯流排編號,TargetID代表特定埠的目標識別碼,MAX_PCI_TARGET為常數,設為大於0的整數,例如,48。表2顯示根據表1的埠映射組態表160的位置資訊的計算結果:

Figure 109119252-A0305-02-0018-2
In other embodiments, the processing unit 612 may further calculate the port number (Port Number) based on the bus number and target ID of a specific port, and use the port number to represent the location information of the specific port. The example formula is as follows: PN =BusN*MAX_PCI_TARGET_NUM+TargetID where PN represents the port number of a specific port, BusN represents the bus number of a specific port, TargetID represents the target identification code of the specific port, MAX_PCI_TARGET is a constant, set to an integer greater than 0, for example, 48. Table 2 shows the calculation result of the location information according to the port mapping configuration table 160 of Table 1:
Figure 109119252-A0305-02-0018-2

假設固態硬碟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並沒有連接任何固態硬碟。 Assume that the solid state drives 550-1 to 550-4 are respectively connected to the ports 532-1 to 532-4 of the hub 530: referring to Figure 8, the message boxes 810#1 to 810#4 in the graphical user interface 800 respectively display port P# Port number from 1 to port P#4 (as shown in Table 2) and card opening status. The boxes 810#5 to 810#16 of the graphical user interface 800 use backslashes to indicate that the ports P#5 to P#16 are not connected to any solid state drives.

在這裡需要注意的是,如果只搜索視窗登錄檔,而沒有提供如本發明實施例所述的埠映射組態表160,只能得到所有固態硬碟連接的集線器上埠的位置資訊。換句話說,生產主機不知道集線器包含的埠的總數量,並且從視窗登錄檔搜索到的位置資訊間也沒有可以參考的順序關係。因此,就算得到了所有的位置資訊,也無法讓這些位置資訊能夠跟集線器上的埠的物理安排產生關聯。 It should be noted here that if only the window registration file is searched without providing the port mapping configuration table 160 as described in the embodiment of the present invention, only the location information of the ports on the hubs to which all solid state drives are connected can be obtained. In other words, the production host does not know the total number of ports included in the hub, and there is no order relationship that can be referenced among the location information searched from the window registry. Therefore, even if all the location information is obtained, it cannot be related to the physical arrangement of the ports on the hub.

步驟S740:設定變數i=1。變數i用來記錄開卡的順序編號。 Step S740: Set the variable i=1. The variable i is used to record the sequence number of card opening.

步驟S750:為連接上第i個埠的固態硬碟進行開卡。 Step S750: Open a card for the solid state drive connected to the i-th port.

舉例來說,在開卡流程中,處理單元637可從唯讀記憶體(Read-Only Memory,ROM)638載入並執行用於處理從生產主機110發出的供應商命令的程式碼(又可稱為供應商命令處理代碼)。為了反應從生產主機510發出的初始化裝置命令,處理單元637執行供應商命令處理代碼時可通過閃存介面634對閃存模組650進行一連串的測試,用於找出壞塊(Bad Blocks)、壞行(Bad Columns)等,並據以產生壞塊表、壞行表等。供應商命令處理代碼可依據偵測到的壞行數量等參數來計算每個實體頁面能夠用於儲存錯誤檢查校驗碼(Error Check and Correction,ECC Code)的長度。供應商命令處理代碼可依據壞行表及ECC長度等資訊計算每一個實體頁面中每一個區段(Sector)的起始位置,並據以產生區段起始表。供應商命令處理代碼可依據壞塊數目、壞行數目、ECC長度等資訊計算閃存模組650能夠儲存的邏輯區塊位址數目(Logical Address Block,LBA quantity)。供應商命令處理代碼可將以上所述的資料表、變數等資訊儲存在VRAM 636中,並且通過驅動主機介面632回覆初始化完成的訊息給生產主機510,用於通知量產工具。量產工具可將初始化完成的訊息顯示在顯示器570,用於提示操作員或工程師。 For example, in the card opening process, the processing unit 637 can load and execute the program code (which can also Called the supplier command processing code). In order to respond to the initialization device command sent from the production host 510, the processing unit 637 can perform a series of tests on the flash memory module 650 through the flash memory interface 634 when executing the supplier command processing code to find bad blocks and bad lines. (Bad Columns) and so on, and generate bad block tables, bad row tables and so on. The supplier command processing code can calculate the length of each physical page that can be used to store the Error Check and Correction (ECC Code) based on the number of detected bad rows and other parameters. The supplier command processing code can calculate the starting position of each sector in each physical page based on the bad row table and ECC length and other information, and generate the sector starting table accordingly. The vendor command processing code can calculate the logical address block (LBA quantity) that the flash memory module 650 can store based on information such as the number of bad blocks, the number of bad rows, and the length of the ECC. The supplier command processing code can store the above-mentioned data tables, variables and other information in the VRAM 636, and reply the initialization completion message to the production host 510 through the driver host interface 632 for notifying the mass production tool. The mass production tool may display the initialization completion message on the display 570 to prompt the operator or engineer.

量產工具從固態硬碟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中的一個的狀態為“完成”。 After the mass production tool receives the initialization completion message from the solid state drive 650, it can include information such as the number of LBAs that the flash memory module 650 can store, and sends a supplier command for downloading information (DOWNLOAD INFO) to the flash memory device 650 for instructions The solid state drive 650 stores the initialization result in a non-volatile storage space, such as the flash memory module 650. In order to respond to the download information command, the processing unit 637 can write the data table, variables and other information stored in the VRAM 636 into the system block of the flash memory module 650 through the flash memory interface 634 when executing the supplier command processing code. Those skilled in the art understand that the data tables, variables and other information generated above are reference information needed for future execution of the In-System Programming (ISP Code, also referred to as firmware). The code in the system contains the operations used to execute the host command sent from the host, for example Such as host read, write, erase commands, etc. The host command is a command regulated by a standard-setting organization, such as UFS, NVMe, and Open-channel SSD commands. The supplier's command processing code can reply to the production host 510 through the driver host interface 632 with the completion of the download information, for notifying the mass production tool. The mass production tool can display the card opening completion message on the display 570 for prompting the operator or engineer. For example, change the status of one of the message boxes 810#1 to 810#4 shown in FIG. 8 to "completed".

然而,固態硬碟550可能在如上所述的開卡流程中的某個操作上失敗,處理單元637可通過驅動主機介面632回覆適當的錯誤碼或錯誤訊息給生產主機510,用於讓量產工具可將錯誤碼或錯誤訊息顯示在顯示器570,用於提示操作員或工程師。接著,量產工具、操作員或工程師可對連接在第i個埠的固態硬碟進行錯誤排除操作。 However, the solid state drive 550 may fail in a certain operation in the card opening process as described above, and the processing unit 637 can reply an appropriate error code or error message to the production host 510 through the drive host interface 632 for mass production. The tool can display an error code or error message on the display 570 for prompting the operator or engineer. Then, mass production tools, operators, or engineers can perform error troubleshooting operations on the solid state drive connected to the i-th port.

步驟S760:依據第i個埠上連接的固態硬碟550的回覆訊息判斷是否開卡成功。如果是,則流程繼續進行步驟S780的處理。否則,流程繼續進行步驟S770的處理。 Step S760: Determine whether the card is successfully opened according to the reply message of the solid state drive 550 connected to the i-th port. If so, the flow continues with the processing of step S780. Otherwise, the flow continues with the processing of step S770.

步驟S770:在GUI上顯示第i個埠的固態硬碟開卡失敗的訊息。假設固態硬碟550-3在開卡過程中失敗:參考圖9,圖形用戶界面800中的訊息框810#3顯示埠P#3的開卡狀態為“失敗”。 Step S770: A message indicating that the card opening of the i-th port of the solid state drive failed to be opened is displayed on the GUI. Assume that the solid state drive 550-3 fails during the card opening process: referring to FIG. 9, the message box 810#3 in the graphical user interface 800 shows that the card opening status of the port P#3 is "failed".

步驟S780:判斷是否完成所有固態硬碟的開卡。如果是,則流程結束。否則,流程繼續進行步驟S790的處理。 Step S780: It is judged whether the card opening of all the solid state hard disks is completed. If it is, the process ends. Otherwise, the flow continues with the processing of step S790.

步驟S790:計算i=i+1。 Step S790: Calculate i=i+1.

通過比對如上所述埠映射組態表160和生產主機510中執行的作業系統所提供的硬體描述檔,能夠識別生產系統50中每個集線器上的每個埠是否連接固態硬碟。並且,當某個固態硬碟開卡失敗時,能夠自動辨認是哪個埠上連接的固態硬碟在開卡過程中發生錯誤。 By comparing the port mapping configuration table 160 as described above with the hardware description file provided by the operating system running in the production host 510, it is possible to identify whether each port on each hub in the production system 50 is connected to a solid state drive. Moreover, when a certain solid-state drive fails to open the card, it can automatically identify which port the solid-state drive is connected to in the process of opening the card.

本發明所述的方法中的全部或部分步驟可以計算機指令實現,例如特定硬體的驅動程式、韌體程式或軟體程式等。此外,也可實現於其他類型程式。所屬技術領域人員可將本發明實施例的方法撰寫成 計算機指令,為求簡潔不再加以描述。依據本發明實施例方法實施的計算機指令可儲存於適當的電腦可讀取媒體,例如DVD、CD-ROM、USB碟、硬碟,亦可置於可通過網路(例如,網際網路,或其他適當載具)存取的網路伺服器。 All or part of the steps in the method of the present invention can be implemented by computer instructions, such as specific hardware drivers, firmware programs, or software programs. In addition, it can also be implemented in other types of programs. Those skilled in the art can write the method of the embodiment of the present invention as The computer instructions are not described for the sake of brevity. The computer instructions implemented according to the method of the embodiment of the present invention can be stored in a suitable computer readable medium, such as DVD, CD-ROM, USB disk, hard disk, and can also be placed on a network (such as the Internet, or Other appropriate vehicles).

雖然圖2、圖3、圖5和圖6中包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,已達成更佳的技術效果。此外,雖然圖4和圖7的流程圖採用指定的順序來執行,但是在不違反發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順序,所以,本發明並不侷限於僅使用如上所述的順序。此外,熟習此技藝人士亦可以將若干步驟整合為一個步驟,或者是除了這些步驟外,循序或平行地執行更多步驟,本發明亦不因此而侷限。 Although FIG. 2, FIG. 3, FIG. 5, and FIG. 6 include the above-described elements, it does not rule out that, without violating the spirit of the invention, more other additional elements are used to achieve better technical effects. In addition, although the flowcharts in Figures 4 and 7 are executed in the specified order, those skilled in the art can modify the sequence of these steps on the premise of achieving the same effect without violating the spirit of the invention. Therefore, The present invention is not limited to using only the sequence described above. In addition, those skilled in the art can also integrate several steps into one step, or in addition to these steps, perform more steps sequentially or in parallel, and the present invention is not limited thereby.

雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請權利要求範圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。 Although the present invention is described using the above embodiments, it should be noted that these descriptions are not intended to limit the present invention. On the contrary, this invention covers modifications and similar arrangements that are obvious to those skilled in the art. Therefore, the scope of applied claims must be interpreted in the broadest way to include all obvious modifications and similar settings.

S710~S790:方法步驟 S710~S790: method steps

Claims (13)

一種生產固態硬碟的方法,由一生產主機的一處理單元執行,其中,上述生產主機包含一裝置介面,上述裝置介面包含多個第一埠,每個上述第一埠連接一集線器,每個上述集線器包含多個第二埠,上述方法包含:載入一埠映射組態表,包含代表每個上述第二埠的位置資訊;比對一硬體描述檔中的位置資訊和上述埠映射組態表中的位置資訊來判斷每個上述第二埠是否連接固態硬碟,其中上述硬體描述檔由上述生產主機運行的一作業系統提供;在一顯示器上顯示一圖形用戶界面,用於指出每個上述第二埠是否連接固態硬碟的資訊;以及當上述第二埠中的一個所連接的固態硬碟開卡失敗時,更新上述圖形用戶界面,用於指出上述相應第二埠所連接的固態硬碟發生開卡失敗的資訊。 A method for producing a solid state drive is executed by a processing unit of a production host, wherein the production host includes a device interface, the device interface includes a plurality of first ports, each of the first ports is connected to a hub, and each The hub includes a plurality of second ports, and the method includes: loading a port mapping configuration table containing location information representing each of the second ports; comparing the location information in a hardware description file with the port mapping group The position information in the status table is used to determine whether each of the second ports is connected to a solid state drive, wherein the hardware description file is provided by an operating system running on the production host; a graphical user interface is displayed on a display to indicate Information about whether each of the second ports is connected to a solid state drive; and when the solid state drive connected to one of the second ports fails to open the card, update the graphical user interface to indicate that the corresponding second port is connected Information about the card opening failure of the solid state drive. 如請求項1所述的生產固態硬碟的方法,其中,上述埠映射組態表中的位置資訊的順序相符於上述集線器的上述第二埠的預設物理安排。 The method for producing a solid state drive according to claim 1, wherein the sequence of the position information in the port mapping configuration table matches the default physical arrangement of the second port of the hub. 如請求項1所述的生產固態硬碟的方法,其中,上述作業系統為視窗作業系統,以及上述硬體描述檔為一視窗登錄檔。 The method for producing a solid state drive according to claim 1, wherein the operating system is a windows operating system, and the hardware description file is a windows registry file. 如請求項3所述的生產固態硬碟的方法,其中,上述埠映射組態表包含關聯於上述第一埠的多個登錄檔,上述方法包含:判斷上述埠映射組態表中的所有登錄檔是否存在於上述視窗登錄檔;當上述埠映射組態表中的所有登錄檔存在於上述視窗登錄檔時,比 對上述硬體描述檔中的位置資訊和上述埠映射組態表中的位置資訊來判斷每個上述第二埠是否連接固態硬碟;以及當上述埠映射組態表中的任何一個上述登錄檔不存在於上述視窗登錄檔時,結束固態硬碟的開卡操作。 The method for producing a solid state drive according to claim 3, wherein the port mapping configuration table includes a plurality of registration files associated with the first port, and the method includes: determining all the registrations in the port mapping configuration table File exists in the above-mentioned window registry file; when all the registry files in the above-mentioned port mapping configuration table exist in the above-mentioned window registry file, compare Determine whether each of the second ports is connected to a solid-state drive based on the location information in the hardware description file and the location information in the port mapping configuration table; and when any one of the above-mentioned registration files in the port mapping configuration table If it does not exist in the above-mentioned window registration file, the solid-state drive card opening operation is ended. 如請求項1所述的生產固態硬碟的方法,其中,上述圖形用戶界面顯示固態硬碟連接到的上述第二埠的位置資訊的內容。 The method for producing a solid state drive according to claim 1, wherein the graphical user interface displays the content of the location information of the second port to which the solid state drive is connected. 如請求項1所述的生產固態硬碟的方法,其中,上述圖形用戶界面顯示固態硬碟連接到的上述第二埠的埠號,上述埠號使用以下公式計算:PN=BusN*MAX_PCI_TARGET_NUM+TargetID PN代表一特定第二埠的埠號,BusN代表上述特定第二埠的匯流排編號,TargetID代表上述特定第二埠的目標識別碼,以及MAX_PCI_TARGET為常數,設為大於0的整數。 The method for producing a solid state drive according to claim 1, wherein the graphic user interface displays the port number of the second port to which the solid state drive is connected, and the port number is calculated using the following formula: PN=BusN*MAX_PCI_TARGET_NUM+TargetID PN represents the port number of a specific second port, BusN represents the bus number of the above specific second port, TargetID represents the target identification code of the above specific second port, and MAX_PCI_TARGET is a constant, set to an integer greater than 0. 一種電腦程式產品,包含用於生產固態硬碟的程式碼,其中,當一生產主機的一處理單元執行上述程式碼時,實施如請求項1至6中任一項所述的生產固態硬碟的方法。 A computer program product, comprising a program code for the production of a solid-state hard disk, wherein when a processing unit of a production host executes the above-mentioned program code, the production of the solid-state hard disk according to any one of claim items 1 to 6 is implemented Methods. 一種生產固態硬碟的裝置,包含:一裝置介面,包含多個第一埠,其中,每個上述第一埠連接一集線器,每個上述集線器包含多個第二埠;以及一處理單元,耦接上述裝置介面,用於從一儲存單元載入一埠映射組態表,包含代表每個上述第二埠的位置資訊;比對一硬體描述檔中的位置資訊和上述埠映射組態表中的位置資訊來判斷每個上述第二埠是否連接固態硬碟,其中上述硬體描述檔由上述 裝置運行的一作業系統提供;在一顯示器上顯示一圖形用戶界面,用於指出每個上述第二埠是否連接固態硬碟的資訊;以及當上述第二埠中的一個所連接的固態硬碟開卡失敗時,更新上述圖形用戶界面,用於指出上述相應第二埠所連接的固態硬碟發生開卡失敗的資訊。 A device for producing a solid state drive, comprising: a device interface, including a plurality of first ports, wherein each of the first ports is connected to a hub, and each of the hubs includes a plurality of second ports; and a processing unit, coupled Connected to the above device interface, used to load a port mapping configuration table from a storage unit, including location information representing each of the above second ports; compare the location information in a hardware description file with the above port mapping configuration table To determine whether each of the above-mentioned second ports is connected to a solid-state drive, and the above-mentioned hardware description file is determined by the above-mentioned The operating system provided by the device is provided; a graphical user interface is displayed on a display to indicate whether each of the above-mentioned second ports is connected to the solid state drive; and when one of the above-mentioned second ports is connected to the solid state drive When the card opening fails, the above-mentioned graphical user interface is updated to indicate the information of the card opening failure of the solid-state hard disk connected to the corresponding second port. 如請求項8所述的生產固態硬碟的裝置,其中,上述埠映射組態表中的位置資訊的順序相符於上述集線器的上述第二埠的預設物理安排。 The device for producing a solid-state hard disk according to claim 8, wherein the sequence of the position information in the port mapping configuration table matches the default physical arrangement of the second port of the hub. 如請求項8所述的生產固態硬碟的裝置,其中,上述作業系統為視窗作業系統,以及上述硬體描述檔為一視窗登錄檔。 The device for producing a solid-state hard disk according to claim 8, wherein the operating system is a windows operating system, and the hardware description file is a windows registry file. 如請求項10所述的生產固態硬碟的裝置,其中,上述埠映射組態表包含關聯於上述第一埠的多個登錄檔,以及上述處理單元用於判斷上述埠映射組態表中的所有登錄檔是否存在於上述視窗登錄檔;當上述埠映射組態表中的所有登錄檔存在於上述視窗登錄檔時,比對上述硬體描述檔中的位置資訊和上述埠映射組態表中的位置資訊來判斷每個上述第二埠是否連接固態硬碟;以及當上述埠映射組態表中的任何一個上述登錄檔不存在於上述視窗登錄檔時,結束固態硬碟的開卡操作。 The device for producing a solid state drive according to claim 10, wherein the port mapping configuration table includes a plurality of registration files associated with the first port, and the processing unit is used to determine the port mapping configuration table Whether all registry files exist in the above window registry file; when all registry files in the above port mapping configuration table exist in the above window registry file, compare the location information in the above hardware description file with the above port mapping configuration table To determine whether each of the second ports is connected to a solid state drive; and when any one of the above-mentioned registration files in the above-mentioned port mapping configuration table does not exist in the above-mentioned window registration file, the solid-state drive opening operation is terminated. 如請求項8所述的生產固態硬碟的裝置,其中,上述圖形用戶界面顯示固態硬碟連接到的上述第二埠的位置資訊的內容。 The device for producing a solid-state hard 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. 如請求項8所述的生產固態硬碟的裝置,其中,上述圖形用戶界面顯示固態硬碟連接到的上述第二埠的埠號,上述埠號使用以下公 式計算:PN=BusN*MAX_PCI_TARGET_NUM+TargetID PN代表一特定第二埠的埠號,BusN代表上述特定第二埠的匯流排編號,TargetID代表上述特定第二埠的目標識別碼,以及MAX_PCI_TARGET為常數,設為大於0的整數。 The device for producing a solid-state hard disk according to claim 8, wherein the above-mentioned graphical user interface displays the port number of the above-mentioned second port to which the solid-state disk is connected, and the above-mentioned port number uses the following Formula calculation: PN=BusN*MAX_PCI_TARGET_NUM+TargetID PN represents the port number of a specific second port, BusN represents the bus number of the above specific second port, TargetID represents the target identification code of the above specific second port, and MAX_PCI_TARGET is a constant, Set to an integer greater than 0.
TW109119252A 2020-06-09 2020-06-09 Method and apparatus and computer program product for producing solid state disk devices TWI745997B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW109119252A TWI745997B (en) 2020-06-09 2020-06-09 Method and apparatus and computer program product for producing solid state disk devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW109119252A TWI745997B (en) 2020-06-09 2020-06-09 Method and apparatus and computer program product for producing solid state disk devices

Publications (2)

Publication Number Publication Date
TWI745997B true TWI745997B (en) 2021-11-11
TW202147114A TW202147114A (en) 2021-12-16

Family

ID=79907442

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109119252A TWI745997B (en) 2020-06-09 2020-06-09 Method and apparatus and computer program product for producing solid state disk devices

Country Status (1)

Country Link
TW (1) TWI745997B (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200414219A (en) * 2002-08-16 2004-08-01 Micron Technology Inc System and method for self-testing and repair of memory modules
CN100511118C (en) * 2004-12-21 2009-07-08 普安科技股份有限公司 Storage virtualization controller, subsystem and system using the same, and method therefor
TW201042460A (en) * 2009-01-13 2010-12-01 Qualcomm Inc System, apparatus, and method for fast startup of USB devices
US20130254402A1 (en) * 2012-03-23 2013-09-26 Commvault Systems, Inc. Automation of data storage activities
WO2016051445A1 (en) * 2014-09-29 2016-04-07 株式会社日立製作所 Management system for storage system
TW201727479A (en) * 2015-03-27 2017-08-01 英特爾公司 Implied directory state updates
TW201729084A (en) * 2015-10-28 2017-08-16 英特爾股份有限公司 Interfacing with block-based storage in a processor

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200414219A (en) * 2002-08-16 2004-08-01 Micron Technology Inc System and method for self-testing and repair of memory modules
CN100511118C (en) * 2004-12-21 2009-07-08 普安科技股份有限公司 Storage virtualization controller, subsystem and system using the same, and method therefor
TW201042460A (en) * 2009-01-13 2010-12-01 Qualcomm Inc System, apparatus, and method for fast startup of USB devices
US20130254402A1 (en) * 2012-03-23 2013-09-26 Commvault Systems, Inc. Automation of data storage activities
WO2016051445A1 (en) * 2014-09-29 2016-04-07 株式会社日立製作所 Management system for storage system
TW201727479A (en) * 2015-03-27 2017-08-01 英特爾公司 Implied directory state updates
TW201729084A (en) * 2015-10-28 2017-08-16 英特爾股份有限公司 Interfacing with block-based storage in a processor

Also Published As

Publication number Publication date
TW202147114A (en) 2021-12-16

Similar Documents

Publication Publication Date Title
US10423425B2 (en) System and method for runtime update of ESRT table for hot-pluggable disks
US20150154032A1 (en) Server bootstrapping method and computer system
US8412986B2 (en) Storage system and control method thereof
US9164840B2 (en) Managing a solid state drive (‘SSD’) in a redundant array of inexpensive drives (‘RAID’)
US9680712B2 (en) Hardware management and control of computer components through physical layout diagrams
US20210004242A1 (en) Method and system for remote selection of boot device
US7711945B2 (en) Universal computer product hardware configuration initialization handling method and system
US8903967B2 (en) Out-of-band management of third party adapter configuration settings in a computing system
US20170286097A1 (en) Method to prevent operating system digital product key activation failures
US11062746B1 (en) Computer program product and method and apparatus for activating flash devices
US20200026531A1 (en) Apparatus and Method for Dynamic Modification of Machine Branding of Information Handling Systems Based on Hardware Inventory
TWI745997B (en) Method and apparatus and computer program product for producing solid state disk devices
TW201947411A (en) Method for configuring input/output interfaces, device with configurable input/output interfaces and control system
CN113778915B (en) Method for producing solid state disk and computer readable storage medium and device
US10628309B1 (en) Loading a serial presence detect table according to jumper settings
US20090210589A1 (en) Dynamic Vital Product Data Update Based on an Installed Feature Card
US20140181586A1 (en) Method and apparatus for performing host based diagnostics using a service processor
US10108537B2 (en) Mechanisms for reproducing storage system metadata inconsistencies in a test environment
US11809833B2 (en) System and method for image localization in knowledge base content
US11307785B2 (en) System and method for determining available post-package repair resources
US8645600B2 (en) Configuring expansion component interconnect (‘ECI’) physical functions on an ECI device in a computing system
TWI747231B (en) Computer program product and method and apparatus for activating flash devices
CN112540881A (en) Storage device test management method and storage device test management system
US20220129324A1 (en) Remotely Controllable Monitoring Agent with a Dynamic Set of Subcomponents
TWI832173B (en) Method and system for monitoring flash memory device and computer system thereof