TWI653537B - 卸載固態硬碟卡的方法以及使用該方法的裝置 - Google Patents

卸載固態硬碟卡的方法以及使用該方法的裝置 Download PDF

Info

Publication number
TWI653537B
TWI653537B TW106118498A TW106118498A TWI653537B TW I653537 B TWI653537 B TW I653537B TW 106118498 A TW106118498 A TW 106118498A TW 106118498 A TW106118498 A TW 106118498A TW I653537 B TWI653537 B TW I653537B
Authority
TW
Taiwan
Prior art keywords
hard disk
state hard
solid state
disk card
unloading
Prior art date
Application number
TW106118498A
Other languages
English (en)
Other versions
TW201839619A (zh
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 中國商上海寶存信息科技有限公司
Publication of TW201839619A publication Critical patent/TW201839619A/zh
Application granted granted Critical
Publication of TWI653537B publication Critical patent/TWI653537B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/62Uninstallation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/143Detection of memory cassette insertion or removal; Continuity checks of supply or ground lines; Detection of supply variations, interruptions or levels ; Switching between alternative supplies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Power Engineering (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Stored Programmes (AREA)

Abstract

本發明的實施例提出一種卸載固態硬碟卡的方法,由處理單元於載入並執行驅動程式時實施,至少包含以下步驟:於接收到應用程式發出的資料存取命令以及傳送相應於資料存取命令的資料存取請求給下層之間,讀取資料存取命令所欲存取的固態硬碟卡的寄存器中的值;以及當透過讀取的值發現固態硬碟卡已經被移除時,執行卸載程序。

Description

卸載固態硬碟卡的方法以及使用該方法的裝置
本發明關連於輸出入裝置管理,特別是一種卸載固態硬碟卡的方法以及使用該方法的裝置。
固態硬碟是一種固態儲存裝置,使用如記憶體的集成電路組件,用以永久地儲存資料。固態硬碟技術主要使用相容於傳統輸出入硬盤的電子接口,於一般應用中允許簡易地進行替換。此外,如快捷外設互聯(PCIe,Peripheral Component Interconnect Express)及U.2標準的新輸出入接口更設計來滿足固態硬碟技術的特殊需求。當固態硬碟卡連接上系統時,系統會為固態硬碟卡配置計算資源,例如記憶體空間。當固態硬碟卡卸載時,系統需要執行卸載程序來釋放已經配置的計算資源。然而,當固態硬碟卡已經從系統移除但沒有偵測到時,將浪費不必要的計算資源。因此,本發明提出一種卸載固態硬碟卡的方法以及使用該方法的裝置,用以解決以上的問題。
本發明的實施例提出一種卸載固態硬碟卡的方法,由處理單元於載入並執行驅動程式時實施,至少包含以下步驟:於接收到應用程式發出的資料存取命令以及傳送相應於資料存取命令的資料存取請求給下層之間,讀取資料存取命令 所欲存取的固態硬碟卡的寄存器中的值;以及當透過讀取的值發現固態硬碟卡已經被移除時,執行卸載程序。
本發明的實施例提出一種卸載固態硬碟卡的裝置,至少包含:根複雜裝置;以及處理單元,耦接於根複雜裝置。處理單元載入並執行驅動程式,用以於接收到應用程式發出的資料存取命令以及傳送相應於資料存取命令的資料存取請求給下層之間,透過根複雜裝置讀取資料存取命令所欲存取的固態硬碟卡的寄存器中的值;以及當透過讀取的值發現固態硬碟卡已經被移除時,執行卸載程序。
卸載程序釋放相應於固態硬碟卡的電腦資源,以及將固態硬碟卡移出裝置模型。
10‧‧‧系統架構
110‧‧‧處理單元
130‧‧‧記憶體
150‧‧‧快捷外設互聯根複雜單元
151‧‧‧寄存器
170‧‧‧快捷外設互聯切換器
191、193‧‧‧固態硬碟卡
191_1、193_1‧‧‧寄存器
210‧‧‧應用程式
220‧‧‧作業系統
230‧‧‧驅動程式
240‧‧‧傳輸層
250‧‧‧資料鏈結層
260‧‧‧物理層
300‧‧‧效能結構
310‧‧‧外設互聯表頭
311‧‧‧槽狀態
S410~S490‧‧‧方法步驟
511‧‧‧供應商識別碼寄存器
513‧‧‧裝置識別碼寄存器
521‧‧‧命令寄存器
523‧‧‧狀態寄存器
531‧‧‧更版識別碼寄存器
533‧‧‧類別碼寄存器
541‧‧‧快取線大小寄存器
543‧‧‧主延遲計時寄存器
545‧‧‧表頭類型寄存器
547‧‧‧自測能力寄存器
第1圖係依據本發明實施例之電腦裝置的系統架構示意圖。
第2圖係依據本發明實施例之快捷外設互聯階層示意圖。
第3圖係依據本發明實施例之效能結構示意圖。
第4圖係依據本發明實施例之卸載固態硬碟卡方法的流程圖。
第5圖係依據本發明實施例之快捷外設互聯組態寄存器中儲存的一般組態空間表頭的示意圖。
以下說明係為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。
必須了解的是,使用於本說明書中的”包含”、”包括”等詞,係用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。
於權利要求中使用如”第一”、"第二"、"第三"等詞係用來修飾權利要求中的元件,並非用來表示之間具有優先權順序,先行關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。
第1圖係依據本發明實施例之電腦裝置的系統架構示意圖。電腦裝置的系統架構10可包含處理單元110、記憶體130、快捷外設互聯(PCI-E,Peripheral Component Interconnect Express)根複雜單元(root complex)150及快捷外設互聯切換器170。處理單元110可使用多種方式實施,例如以專用硬體電路或通用硬體(例如,單一處理器、具平行處理能力的多處理器或其他具運算能力的處理器),並且於載入及執行相關微操作或軟體指令時執行如下所述的功能。處理單元110可包含運算邏輯單元(ALU,Arithmetic and Logic Unit)以及位移器(bit shifter)。運算邏輯單元負責執行布林運算(如AND、OR、NOT、NAND、NOR、XOR、XNOR等),而位移器負責位移運算及位元旋轉。根複雜裝置(root complex device)150將處理單元110及記憶體130連接至快捷外設互聯切換器(PCI Express Switch)170,而快捷外設互聯切換器170由一或多個切換器組成。根複雜裝置150可代表處理單元110產生交易請求,而根複雜裝置150及處理單元110間以本地總線連接。根複雜功能可以專用裝置實施,或整合至處理單元110。根複雜裝置150可包含至少一個快捷外設互聯或U.2接口,快捷外設互聯或U.2接口設置於母板(mother board)。U.2接口為快捷外設互聯接口的變體。以上二種接口都遵守快捷外設互聯協議,只是外型不同。U.2接口支援熱插拔功能,而快捷外設互聯接口大部分不支援熱插拔功能。母板上另設置處理單元110、記憶體130、北橋晶片(未顯示)、南橋晶片(未顯示)及快捷外設互聯根複雜單元170。固態硬碟卡(SSD card)191連接根複雜裝置150上的一個快捷外設互聯或U.2接口,且固態硬碟卡193透過快捷外設互聯切換器170串聯至(concatenate)根複雜裝置150上的一個快捷外設互聯或U.2接口。連接至快捷外設互聯接口的固態硬碟卡可稱為快捷外設互聯固態硬碟卡,而連接至U.2接口的固態硬碟卡可稱為U.2固態硬碟卡。當固態硬碟卡191或193連接根複雜裝置150時,記憶體130可配置空間給連接上的固態硬碟卡,作為輸出入緩衝器(I/O buffer)以及操作固態硬碟卡所需的常數、變數等。
第2圖係依據本發明實施例之快捷外設互聯階層示意圖。應用程式(application)210可透過作業系統(OS,operating system)220讀取固態硬碟卡191或193中特定位址的資料,或寫入資料到固態硬碟卡191或193的特定位址。作業系統220發出命令給驅動程式230,使得驅動程式230可產生並傳送相應的讀取與寫入請求給傳輸層(transaction layer)240。傳輸層(transaction layer)使用封包架構的分割交易(split-transaction)協定,將讀取與寫入請求經由資料鏈結層(data link layer)250及物理層(physical layer)260傳送至固態硬碟卡191或193。
根複雜裝置150可設置寄存器151,用以儲存每一快捷外設互聯或U.2固態硬碟卡的效能結構(capacity structure)。第3圖係依據本發明實施例之效能結構示意圖。效能結構300可為4096字節(Bytes),用以辨認固態硬碟卡以及對新快捷外設互聯功能的支援情形。效能結構300可包含外設互聯表頭(PCI header)310(第0h字節至第3Fh字節),外設互聯表頭310的第1Ah字節及第1Bh字節儲存槽狀態311。槽狀態311包含2個字節(亦即是16比特)的信息。範例的槽狀態311信息如表1所示: 於一些實施方式中,處理器110可執行守護程序(daemon),用來週期性透過驅動程式230偵測槽狀態311的第3比特及第6比特中之至少一者以了解固態硬碟卡191或193是否插入接口並連接至根複雜裝置150。於多任務作業系統(multitasking operating system),守護程序是系統開機後執行於背景任務的電腦程式,而不是受到使用者直接控制的電腦程式。並且,當守護程序偵測到固態硬碟卡191及193中之任一者移出接口而脫離母板時,執行卸載程序以釋放已移除固態硬碟卡的相關電腦資源,例如,記憶體130中的配置空間,以及將已移除固態硬碟卡移出裝置模型(device model)以避免應用程式再存取此固態硬碟卡。固態硬碟卡191及193中的處理單元(未顯示)可執行熱插拔程序。熱插拔程序於固態硬碟卡即將移出接口而脫離母板前,可藉由改變寄存器151中槽狀態311的第3比特及第6比特以通知守護程序。然而,當固態硬碟卡的熱插拔程序沒有依照規範於固態硬碟卡即將移出接口而脫離母板前改變寄存器151中槽狀態311的第3比特及第6比特時,已移除固態硬碟卡的相關電腦資源不會被釋放而造成浪費,並且造成裝置模型錯誤地包含已移除固態硬碟卡。
為解決如上所述的缺陷,驅動程式230可於接收到應用程式發出的資料存取命令以及傳送相應於資料存取命令的資料存取請求給下層之間,讀取資料存取命令所欲存取的固態硬碟卡的寄存器中的值。於一些實施例中,下層包含傳輸層240、資料鏈結層250及物理層260。於一些實施例中,寄存器中的值為快捷外設互聯組態寄存器(PCI-E configuration registers)的值。當透過讀取的值發現此固態硬碟卡已經被移除時,執行卸載程序。於一些實施例中,卸載程序釋放已移除固態硬碟卡的相關電腦資源,以及將已移除固態硬碟卡移出裝置模型。固態硬碟卡已經被移除可指固態硬碟卡脫離母板上的快捷外設互聯或U.2接口,而不耦接至快捷外設互聯根複雜單元170。第4圖係依據本發明實施例之卸載固態硬碟卡方法的流程圖。此方法於處理單元110載入並驅動程式230時實施。於接收到應用程式發出的資料存取命令後(步驟S410),讀取資料存取命令欲存取的固態硬碟卡的快捷外設互聯組態寄存器的值(步驟S430)。例如,資料存取命令可指示從固態硬碟卡191_1讀取一段邏輯區塊位址(LBA,Logical Block Address)的資料,刪除固態硬碟卡191中一段邏輯區塊位址的資料,或更新固態硬碟卡191中一段邏輯區塊位址的資料等等。當驅動程式230接收到如上的命令時,讀取固態硬碟卡191的快捷外設互聯組態寄存器191_1的值。第5圖係依據本發明實施例之快捷外設互聯組態寄存器中儲存的一般組態空間(Common Configuration Space)表頭的示意圖。於一些實施例中,驅動程式230可從偏移量00h開始讀取二個字節的供應商識別碼寄存器(Vendor ID)511的值。 當固態硬碟卡已經移除時,驅動程式230接收到”FFh”的值。於一些實施例中,驅動程式230可從偏移量04h開始讀取二個字節的命令寄存器(Command)521的值。當固態硬碟卡已經移除時,驅動程式230接收到”FFh”的值。於一些實施例中,驅動程式230可從偏移量06h開始讀取二個字節的狀態寄存器(Status)523的值。當固態硬碟卡已經移除時,驅動程式230接收到”FFh”的值。於一些實施例中,驅動程式230可從偏移量08h開始讀取一個字節的更版識別碼寄存器(Revision ID)531的值。當固態硬碟卡已經移除時,驅動程式230接收到”Fh”的值。於一些實施例中,驅動程式230可從偏移量09h開始讀取三個字節的類別碼寄存器(Class Code)533的值。當固態硬碟卡已經移除時,驅動程式230接收到”FFFh”的值。於一些實施例中,驅動程式230可從偏移量0Ch開始讀取一個字節的快取線大小寄存器(Cache Line Size)541的值。當固態硬碟卡已經移除時,驅動程式230接收到”Fh”的值。於一些實施例中,驅動程式230可從偏移量0Dh開始讀取一個字節的主延遲計時寄存器(Master Latency Timer)543的值。當固態硬碟卡已經移除時,驅動程式230接收到”Fh”的值。於一些實施例中,驅動程式230可從偏移量0Eh開始讀取一個字節的表頭類型寄存器(Header Type)545的值。當固態硬碟卡已經移除時,驅動程式230接收到”Fh”的值。於一些實施例中,驅動程式230可從偏移量0Fh開始讀取一個字節的自測能力寄存器(BIST,Built-In Self Test)547的值。當固態硬碟卡已經移除時,驅動程式230接收到”Fh”的值。接著,驅動程式230依據讀取結果判斷欲存取的固態硬碟卡是否已經移除(步驟S450)。詳細來說,當n個字節的值中之每一者皆為”Fh”時,判定欲存取的固態硬碟卡已經被移除。當n個字節的值中之任一者不為”Fh”時,判定欲存取的固態硬碟卡沒有被移除。當欲存取的固態硬碟卡並沒有被移除時(步驟S450中”否”的路徑),依據資料存取命令產生資料存取請求(步驟S471),以及透過傳輸層240、資料鏈結層250及物理層260傳送資料存取請求至固態硬碟卡以進行資料存取(步驟S473)。當欲存取的固態硬碟卡已經被移除時(步驟S450中”是”的路徑),執行卸載程序。
雖然第1圖中包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,已達成更佳的技術效果。此外,雖然第4圖的處理步驟採用特定的順序來執行,但是在不違反發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順序,所以,本發明並不侷限於僅使用如上所述的順序。
雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請權利要求範圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。

Claims (18)

  1. 一種卸載固態硬碟卡的方法,由一處理單元載入並執行一驅動程式時實施,包含:於接收到一應用程式發出的一資料存取命令以及傳送相應於上述資料存取命令的一資料存取請求給一下層之間,讀取上述資料存取命令所欲存取的一固態硬碟卡的一寄存器中的值,其中該下層包含一傳輸層、一資料鏈結層及一物理層;以及當透過上述讀取的值發現上述固態硬碟卡已經被移除時,執行一卸載程序。
  2. 如申請專利範圍第1項所述的卸載固態硬碟卡的方法,其中上述寄存器為快捷外設互聯組態寄存器。
  3. 如申請專利範圍第2項所述的卸載固態硬碟卡的方法,其中上述寄存器中的值為一般組態空間表頭的一供應商識別碼、一裝置識別碼、一命令、一狀態、一更版識別碼、一類別碼、一快取線大小、一主延遲計時、一表頭類型或一自測能力。
  4. 如申請專利範圍第1項所述的卸載固態硬碟卡的方法,其中上述寄存器中的值包含n個字節的值。
  5. 如申請專利範圍第4項所述的卸載固態硬碟卡的方法,其中,當上述n個字節的值中之每一者為”Fh”時,判定上述固態硬碟卡已經被移除。
  6. 如申請專利範圍第1項所述的卸載固態硬碟卡的方法,其中,更包含: 當透過上述讀取的值發現上述固態硬碟卡沒有被移除時,依據上述資料存取命令產生上述資料存取請求,以及傳送上述資料存取請求給上述下層。
  7. 如申請專利範圍第6項所述的卸載固態硬碟卡的方法,其中,上述寄存器中的值包含n個字節的值,當上述n個字節的值中之任一者不為”Fh”時,判定上述固態硬碟卡沒有被移除。
  8. 如申請專利範圍第1項所述的卸載固態硬碟卡的方法,其中,上述卸載程序釋放相應於上述固態硬碟卡的一電腦資源,以及將上述固態硬碟卡移出一裝置模型。
  9. 如申請專利範圍第8項所述的卸載固態硬碟卡的方法,其中,上述電腦資源包含一記憶體的一配置空間。
  10. 一種卸載固態硬碟卡的裝置,包含:一根複雜裝置;以及一處理單元,耦接於上述根複雜裝置,載入並執行一驅動程式,用以於接收到一應用程式發出的一資料存取命令以及傳送相應於上述資料存取命令的一資料存取請求給一下層之間,透過上述根複雜裝置讀取上述資料存取命令所欲存取的一固態硬碟卡的一寄存器中的值;以及當透過上述讀取的值發現上述固態硬碟卡已經被移除時,執行一卸載程序,其中該下層包含一傳輸層、一資料鏈結層及一物理層。
  11. 如申請專利範圍第10項所述的卸載固態硬碟卡的裝置,其中上述寄存器為快捷外設互聯組態寄存器。
  12. 如申請專利範圍第11項所述的卸載固態硬碟卡的裝置,其中上述寄存器中的值為一般組態空間表頭的一供應商識別碼、一裝置識別碼、一命令、一狀態、一更版識別碼、一類別碼、一快取線大小、一主延遲計時、一表頭類型或一自測能力。
  13. 如申請專利範圍第10項所述的卸載固態硬碟卡的裝置,其中上述寄存器中的值包含n個字節的值。
  14. 如申請專利範圍第13項所述的卸載固態硬碟卡的裝置,其中,當上述n個字節的值中之每一者為”Fh”時,上述處理單元判定上述固態硬碟卡已經被移除。
  15. 如申請專利範圍第10項所述的卸載固態硬碟卡的裝置,其中,當透過上述讀取的值發現上述固態硬碟卡沒有被移除時,上述處理單元依據上述資料存取命令產生上述資料存取請求,以及傳送上述資料存取請求給上述下層。
  16. 如申請專利範圍第15項所述的卸載固態硬碟卡的裝置,其中,上述寄存器中的值包含n個字節的值,當上述n個字節的值中之任一者不為”Fh”時,上述處理單元判定上述固態硬碟卡沒有被移除。
  17. 如申請專利範圍第10項所述的卸載固態硬碟卡的裝置,其中,上述卸載程序釋放相應於上述固態硬碟卡的一電腦資源,以及將上述固態硬碟卡移出一裝置模型。
  18. 如申請專利範圍第17項所述的卸載固態硬碟卡的裝置,其中,上述電腦資源包含一記憶體的一配置空間。
TW106118498A 2017-04-24 2017-06-05 卸載固態硬碟卡的方法以及使用該方法的裝置 TWI653537B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
??201710270323.6 2017-04-24
CN201710270323.6A CN108733479B (zh) 2017-04-24 2017-04-24 卸载固态硬盘卡的方法以及使用该方法的装置

Publications (2)

Publication Number Publication Date
TW201839619A TW201839619A (zh) 2018-11-01
TWI653537B true TWI653537B (zh) 2019-03-11

Family

ID=63853901

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106118498A TWI653537B (zh) 2017-04-24 2017-06-05 卸載固態硬碟卡的方法以及使用該方法的裝置

Country Status (3)

Country Link
US (1) US11099856B2 (zh)
CN (1) CN108733479B (zh)
TW (1) TWI653537B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111694764B (zh) * 2020-05-29 2023-03-14 四川效率源信息安全技术股份有限公司 一种故障固态硬盘的数据读取方法
TWI773463B (zh) * 2021-07-29 2022-08-01 緯穎科技服務股份有限公司 固態硬碟裝置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100490273C (zh) 2005-11-08 2009-05-20 联想(北京)有限公司 移动终端电压动态管理系统及方法
CN101604266A (zh) 2009-07-13 2009-12-16 浪潮电子信息产业股份有限公司 计算机故障硬盘自动断电系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100251636B1 (ko) * 1997-04-10 2000-05-01 윤종용 소형컴퓨터시스템인터페이스방식접속을위한메모리장치
US20070156942A1 (en) * 2005-12-30 2007-07-05 Robert Gough Method and apparatus for independently managing a chipset-integrated bus controller
JP4930762B2 (ja) * 2006-05-24 2012-05-16 日本電気株式会社 情報処理装置、および、装置間接続方法
TWI326411B (en) 2006-12-04 2010-06-21 Inventec Corp Method for protecting data in a hard disk
US8090904B2 (en) 2008-02-01 2012-01-03 Cru Acquisition Group, Llc Reduced hard-drive-capacity detection device
CN103257912A (zh) * 2012-02-16 2013-08-21 鸿富锦精密工业(深圳)有限公司 测试装置及其测试pcie插槽的方法
US9703744B2 (en) * 2013-01-23 2017-07-11 Hitachi, Ltd. Storage device employing PCI-express connection solid-state drive
ES2687609T3 (es) * 2013-05-02 2018-10-26 Huawei Technologies Co., Ltd. Sistema informático, método para acceder a un terminal de interconexión de componentes periféricos exprés y equipo
EP2829986B1 (en) 2013-05-20 2017-07-12 Huawei Technologies Co., Ltd. Computer system, access method and apparatus for peripheral component interconnect express endpoint devices
CN106126454B9 (zh) * 2013-05-20 2019-08-30 华为技术有限公司 一种计算机系统、高速外围组件互联端点设备的访问方法和装置
CN104035728A (zh) 2014-03-31 2014-09-10 深圳英飞拓科技股份有限公司 一种硬盘热插拔处理方法、装置及节点
CN103995675A (zh) * 2014-04-21 2014-08-20 安庆师范学院 硬盘读写装置的控制方法及装置
CN105893293B (zh) * 2014-12-18 2019-10-29 伊姆西公司 用于管理外部组件快速互连设备热插拔的系统和方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100490273C (zh) 2005-11-08 2009-05-20 联想(北京)有限公司 移动终端电压动态管理系统及方法
CN101604266A (zh) 2009-07-13 2009-12-16 浪潮电子信息产业股份有限公司 计算机故障硬盘自动断电系统

Also Published As

Publication number Publication date
US11099856B2 (en) 2021-08-24
US20180307500A1 (en) 2018-10-25
TW201839619A (zh) 2018-11-01
CN108733479B (zh) 2021-11-02
CN108733479A (zh) 2018-11-02

Similar Documents

Publication Publication Date Title
US10649815B2 (en) Apparatus and method of managing shared resources in achieving IO virtualization in a storage device
KR100909119B1 (ko) 집적 dma 엔진을 사용하는 고성능 휘발성 디스크드라이브 메모리 액세스 장치 및 방법
US9229730B2 (en) Multi-chip initialization using a parallel firmware boot process
CN106970864B (zh) 片上系统、移动终端和用于操作片上系统的方法
JP5977094B2 (ja) フレキシブルフラッシュコマンド
TW445416B (en) Upgrade card for a computer system and method of operating the same
KR102424238B1 (ko) 프로그래밍가능 논리부를 위한 메모리의 가상화
EP3274806A1 (en) Sequential write stream management
JP2013025795A (ja) フラッシュデバイスのためのフラッシュコントローラハードウェアアーキテクチャ
US20150356049A1 (en) Assigning processors to memory mapped configuration
US20220100425A1 (en) Storage device, operating method of storage device, and operating method of computing device including storage device
JP6622512B2 (ja) 仮想ディバイスを有するディバイスとその動作方法
US8090894B1 (en) Architectures for supporting communication and access between multiple host devices and one or more common functions
CN112416250A (zh) 基于NVMe的固态硬盘的命令处理方法及相关设备
WO2016115737A1 (en) Aligned variable reclamation
TWI653537B (zh) 卸載固態硬碟卡的方法以及使用該方法的裝置
JP2013025794A (ja) フラッシュインタフェースの有効利用
EP3270293B1 (en) Two stage command buffers to overlap iommu map and second tier memory reads
US20130173855A1 (en) Method of operating storage device including volatile memory and nonvolatile memory
US10180800B2 (en) Automated secure data and firmware migration between removable storage devices that supports boot partitions and replay protected memory blocks
US10922226B1 (en) Scratchpad memory management in a computing system
Tanwar et al. Zynq SoC Based High Speed Data Transfer Using PCIe: A Device Driver Based Approach
EP3974954A1 (en) Storage device, operating method of storage device, and operating method of computing device including storage device
US10572382B2 (en) Method of operating data storage device and method of operating data processing system including the same
Yang Programming for I/O and Storage