TWI712951B - 電子存放裝置的任務管理方法、主機和存儲裝置 - Google Patents
電子存放裝置的任務管理方法、主機和存儲裝置 Download PDFInfo
- Publication number
- TWI712951B TWI712951B TW108104901A TW108104901A TWI712951B TW I712951 B TWI712951 B TW I712951B TW 108104901 A TW108104901 A TW 108104901A TW 108104901 A TW108104901 A TW 108104901A TW I712951 B TWI712951 B TW I712951B
- Authority
- TW
- Taiwan
- Prior art keywords
- task
- storage device
- host
- tasks
- management method
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Abstract
本發明實施例公開了一種電子存放裝置的任務管理方法、主機和存儲裝置。該方法包括:主機以可變間隔向存放裝置發出查詢指令,用以確定存放裝置的任務佇列的狀態;主機獲取回應資訊,回應資訊包含任務佇列的狀態,其中,任務佇列的狀態包括任務佇列中的任務是否準備完成的資訊。因此,通過實施本發明,可以提高主機獲取任務準備完成資訊的效率,減少主機與存放裝置間資料傳輸任務的延遲,並使得它們之間的資料匯流排得以更高效地使用。
Description
本發明涉及電子存放裝置領域,特別是涉及電子存放裝置的任務管理方法、主機和存儲裝置。
一部分電子存放裝置配備有任務佇列,允許存放裝置排列來自於其主機的多個資料傳送請求。例如,對於符合電子器件工程聯合委員會(JEDEC)提出的eMMC5.1標準的存儲技術,主機可通過通信電路向存放裝置發送多個任務請求,存放裝置在處理當前的任務的同時,可以內部預處理其他的任務。預處理完成則該任務準備完成,在讀寫通道沒有被佔用的情況下主機即可搬運資料,從而減少了過程中的等待時間。通常,主機按照固定間隔對存放裝置的任務佇列中各個任務的準備情況進行週期性查詢,或者,主機在資料傳輸完成之前對任務的準備情況進行單次查詢。
在對現有技術的實踐過程中,本發明的發明人發現,由於主機採用固定間隔對存放裝置的任務佇列中的任務進行週期性查詢,因此在一些情況下,查詢間隔過長導致主機無法及時得知任務的準備情況。從而導致延遲增加,而在另一些情況下,查詢間隔過短則會導致主機與存放裝置之間的資料匯流排傳輸能力的浪費。
本發明實施例提供一種電子存放裝置的任務管理方法、主機和存儲裝置。
為了解決上述問題,本發明採用的一技術方案為提供一種電子存放裝置的任務管理方法,該方法包括:主機以可變間隔向所述存放裝置發出查詢指令,用以確定所述存放裝置的任務佇列的狀態;所述主機獲取回應資訊,所述回應資訊包含所述任務佇列的狀態,其中,所述任務佇列的狀態包括所述任務佇列中的任務是否準備完成的資訊。
為了解決上述問題,本發明採用的另一技術方案為提供一種電子存放裝置的任務管理方法,該方法包括:主機向所述存放裝置發送任務;所述主機判斷所述主機與所述存放裝置之間是否正在進行資料傳輸;當所述主機判斷所述主機與所述存放裝置之間正在進行資料傳輸時,所述主機確定與所述存放裝置之間的所述資料傳輸的完成時間,並且當所述資料傳輸完成時,所述主機立即向所述存放裝置發出查詢指令,用以確定所述存戶設備的任務佇列的狀態。
為了解決上述問題,本發明採用的另一技術方案為提供一種主機,該主機包括互相耦接的控制器和通信電路,其中所述通信電路用於使所述控制器與外部的存放裝置通信,所述主控制器用於載入程式指令並執行上述電子存放裝置的任務管理方法。
為了解決上述問題,本發明採用的另一技術方案為提供一種具有存儲功能的裝置,該裝置存儲有程式指令,所述程式指令可被載入並執行如上述電子存放裝置的任務管理方法。
本發明實施例的有益效果是:通過以可變間隔向存放裝置發出查詢指令,可以靈活地根據實際需要選擇發出查詢指令的間隔時間。因此,通過實
施本發明,可以提高主機獲取任務準備完成時間的效率,減少主機與存放裝置間資料傳輸任務的延遲,並使得它們之間的資料匯流排得以更高效地使用。
S101~S102:步驟
S201~S205:步驟
S301~S305:步驟
S401~S409:步驟
S501~S504:步驟
S601~S608:步驟
700:主機
701:匯流排
702:控制器
703:通信電路
704:記憶體
800:電子裝置
81:匯流排
82:主機
83:存放裝置
821:主機控制器
822:主機記憶體
823:主機通信電路
831:設備控制器
832:設備記憶體
833:任務狀態寄存器
834:設備通信電路
圖1根據本發明一實施例示出了電子存放裝置的任務管理方法的流程示意圖。
圖2根據本發明另一實施例示出了電子存放裝置的任務管理方法的流程示意圖。
圖3示出了圖2所示的實施例涉及的查詢指令的信號波形示意圖。
圖4根據本發明又一實施例示出了電子存放裝置的任務管理方法的流程示意圖。
圖5示出了圖4所示的實施例涉及的查詢指令的信號波形示意圖。
圖6根據本發明另一實施例示出了電子存放裝置的任務管理方法的流程示意圖。
圖7根據本發明又一實施例示出了電子存放裝置的任務管理方法的流程示意圖。
圖8根據本發明另一實施例示出了電子存放裝置的任務管理方法的流程示意圖。
圖9示出了圖8所示的實施例涉及的查詢指令的信號波形示意圖。
圖10是本發明提供的主機一實施例的結構示意圖。
圖11是本發明提供的電子設備一實施例的結構示意圖。
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅是本發明的一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
請參閱圖1,圖1根據本發明一實施例示出了電子存放裝置的任務管理方法的流程示意圖。該方法包括:
S101:主機以可變間隔向存放裝置發出查詢指令,用以確定存放裝置的任務佇列的狀態。
可以理解,在本實施例中,主機已經創建至少一個任務,並將任務發送給存放裝置,存放裝置將任務排隊。任務佇列用以存儲任務的相關資訊,可以由軟體、硬體或者二者的結合的形式實現。存放裝置接收到這些任務後,會對這些任務進行預處理,以準備任務的後續執行。為了瞭解這些任務的準備情況,在步驟S101中主機以可變間隔向存放裝置發出查詢指令,用以確定存放裝置的任務佇列的狀態。查詢指令可以是特定的資料格式,根據存放裝置使用的技術標準而定。在一些實施例中,主機可被設置為符合嵌入式多媒體卡(eMMC)標準來向存放裝置發送和接收信號。在這種情況下,查詢指令可以是從主機到存放裝置的SEND_QUEUE_STATUS(發送佇列狀態)命令CMD13。可以理解,主機也可以被設置為符合其他記憶體標準,在這些情況下查詢指令根據相應標準中的對應的命令確定。
可選地,根據需要可變間隔可以設置為零,也就是說主機可以不間斷地向存戶設備發出查詢指令。
主機持續地向存放裝置發出查詢指令以知曉任務何時準備完成,查詢指令的發送間隔可變。該可變間隔可以是主機在每次發送任務時進行調整,也可以是在存放裝置對任務進行準備的過程中動態地調整。可變間隔可以是根
據任務的數量、優先順序、重要性或者其他因素(例如,主機與存放裝置間的資料匯流排的負載)進行調整,具體將在後文中描述。應當理解,主機和存放裝置之間可以進行資料傳輸,而主機發出查詢指令的操作可以發生在資料傳輸之前、之後或者正在進行資料傳輸時。
S102:主機獲取回應資訊,回應資訊包含任務佇列的狀態,其中,任務佇列的狀態包括任務佇列中的任務是否準備完成。
存放裝置接收到主機發來的查詢指令後,發出相應的回應資訊。回應資訊中包含任務佇列的狀態。主機獲取回應資訊後,根據存放裝置任務佇列的狀態,就可以獲取任務佇列中哪些任務已準備完成,哪些任務未準備完成。
本發明通過以可變間隔向存放裝置發出查詢指令,可以靈活地根據實際需要選擇發出查詢指令的間隔時間。因此,通過實施本發明,可以提高主機獲取任務準備完成資訊的效率,減少主機與存放裝置間資料傳輸任務的延遲,並使得它們之間的資料匯流排得以更高效地使用。
請參閱圖2,圖2根據本發明另一實施例示出了電子存放裝置的任務管理方法的流程示意圖。該方法包括:
S201:主機根據任務佇列中的任務數量確定可變間隔。
在步驟S201中,主機首先根據任務佇列中的任務數量確定可變間隔。
在一些實施例中,任務佇列中的數量越多,可變間隔可以設置的越短,任務佇列中的數量越少,可變間隔可以設置的越長。可選地,可變間隔可以與任務佇列中的任務數量成反比,例如,可變間隔=標準間隔(standard fixed interval)/未準備完成的任務計數(un-ready task count)。或者,可變間隔=非標準間隔/未準備完成的任務計數(un-ready task count)。本領域的技術人員可以理解,標準間隔可以是根據記憶體協定/標準規定的間隔時間,或者記憶體和/或主機廠家在設備說明書中規定的間隔時間。非標準間隔可以是使用者根據經驗
或硬體或環境條件設定的一個間隔參考值,也可以是根據傳輸位址的分佈或者位址的相關性考慮來設定,當然,也可以由使用者根據其他因素確定。
在另一些實施例中,還可以對任務佇列中的任務數量分配相應的間隔,例如,當任務佇列中包含一個任務時採用1ms,當任務佇列中包含兩到三個任務時採用0.5ms,當任務佇列中包含四到十個任務時採用0.2ms等。可以理解,上述僅為舉例說明,在實際情況下可以為任務佇列中的任務數量和查詢間隔設置其他的對應關係,查詢間隔的也可以具有其他數值和數量級。
S202:主機以可變間隔向存放裝置發出查詢指令,用以確定存放裝置的任務佇列的狀態。
S203:主機獲取回應資訊,回應資訊包含任務佇列的狀態,其中,任務佇列的狀態包括任務佇列中的任務是否準備完成。
在一些實施例中,主機獲取回應資訊後,就可以根據回應資訊中包含的任務佇列的狀態執行相應的操作,例如步驟S204和S205所示。
S204:當任務未準備完成時,主機繼續以可變間隔向存放裝置發出查詢指令。
若任務佇列中存在未準備完成的任務,主機可以繼續以可變間隔向存放裝置發出查詢指令,以瞭解這些任務何時準備完成。
S205:當任務準備完成後,主機發出任務的執行指令。
當根據回應資訊,主機獲取到任務已準備完成的資訊後,主機可發出任務的執行指令,從而執行任務。可選地,任務的執行指令可包括讀數據、寫資料。或者,在一些實施例中,執行指令也可以是放棄任務的指令,可以理解,放棄任務的執行指令也可以在任務準備的過程中發出,從而使存放裝置停止任務準備的過程。
應當注意,主機發出任務的執行指令後,在一些實施例中存放裝置
可立即回應該執行指令並執行相應的操作,而在另一些實施例中,存放裝置已有正在執行的任務,例如存放裝置正在向主機傳輸資料以執行前一個任務的讀/寫操作,此時,存放裝置可以等待當前任務執行完成,再執行相應的執行指令。
例如,以圖3所示的例子為例。在第一個階段,任務佇列中未完成的任務只包括任務A,此時主機發送的查詢指令間隔較大。在第二個階段,任務B加入任務佇列,此時主機發送的查詢指令間隔縮小。而在第三個階段,任務A準備完成,但任務C和D又加入任務佇列,因此主機發送的查詢指令的間隔進一步縮小。應當注意,如前所述,在任務A執行的過程中(即資料傳輸過程中),主機可以根據需要動態被設置為發送或者不發送查詢指令。
根據本實施例,在任務佇列中存在多個任務時,主機發送查詢指令的頻率變高,這樣在存在多個任務的情況下,主機就可以儘早瞭解任務準備完成的資訊,並開始進行執行任務的準備,從而減少系統的等待延遲。
請參閱圖4,圖4根據本發明另一實施例示出了電子存放裝置的任務管理方法的流程示意圖。該方法包括:
S301:主機根據任務佇列中的任務的優先順序確定可變間隔。
在步驟S301中,主機首先根據任務佇列中的任務的優先順序確定可變間隔。
在一些實施例中,任務佇列中的任務的優先順序越高,可變間隔可以設置的越短,任務佇列中的任務的優先順序越低,可變間隔可以設置的越長。對於任務佇列中僅有一個任務的情況,可以根據該任務的優先順序確定可變間隔。而對於任務佇列中有多個任務的情況,可以根據其中優先順序最高的任務的優先順序,或者所有任務優先順序的平均水準確定可變間隔。
在一些實施例中,還可以對任務的優先順序分配相應的間隔,例如,對於低優先順序任務採用1ms,對於中優先順序任務採用0.5ms,對於高優先順
序任務採用0.2ms等。可以理解,上述僅為舉例說明,在實際情況下可以為任務佇列中的任務的優先順序和查詢間隔設置其他的對應關係,查詢間隔的也可以具有其他數值和數量級。本領域的技術人員可以理解,在確定不同優先順序任務的查詢間隔時,可以參考存儲協定/標準的規定、設備廠家的存放裝置的說明書、針對存放裝置分析實驗得出的經驗值或者其他因素來確定。
可選地,任務的優先順序可以根據記憶體標準中規定的任務優先順序確定,例如eMMC、NAND、UFS和SSD等記憶體標準。以eMMC標準為例,主機可在指令CMD44中將任務的優先順序定義為1(high)或者0(simple)。
可選地,任務的優先順序可以根據作業系統內核規定的任務優先順序確定,例如Windows、Linux和Mac等作業系統。以Linux系統為例,內核規定的任務優先順序可包括IOPRIO_CLASS_RT(高優先順序)、IOPRIO_CLASS_BE(中優先順序)以及IOPRIO_CLASS_IDLE(低優先順序)等。
可選地,任務的優先順序可以根據應用場景規定的優先順序確定。例如,與高效率應用場景相關的任務可以定義為高優先順序,例如視頻播放、遊戲、電話、短信、視頻重播功能等,而與低效率應用場景相關的任務可以定義為低優先順序,例如電子書、記事本等。
可選的,任務的優先順序可以根據硬體類型規定的任務優先順序確定。例如,通信硬體關聯的任務可以定義為高優先順序。
S302:主機以可變間隔向存放裝置發出查詢指令,用以確定存放裝置的任務佇列的狀態。
S303:主機獲取回應資訊,回應資訊包含任務佇列的狀態,其中,任務佇列的狀態包括任務佇列中的任務是否準備完成。
S304:當任務未準備完成時,主機繼續以可變間隔向存放裝置發出查詢指令。
S305:當任務準備完成後,主機按照優先順序順序發出任務的執行指令。
當任務佇列中包含的多個任務都準備完成時,主機可以按照優先順序順序,優先發出優先順序高的任務的執行指令,隨後再依次發出優先順序中等和優先順序低的任務的執行指令。相應地,存放裝置就可以優先執行高優先順序的任務。
例如,以圖5所示的例子為例。當任務佇列中未完成的任務為優先順序低的任務A時,主機發送的查詢指令間隔較大。當任務佇列中未完成的任務為優先順序中等的任務B時,主機發送的查詢指令間隔較小。當任務佇列中未完成的任務為優先順序高的任務C時,主機發送的查詢指令間隔最小。
根據本實施例,在任務佇列中存在高優先順序的任務時,主機發送查詢指令的頻率變高,這樣主機就可以儘早瞭解高優先順序任務準備完成的資訊,並開始進行執行該高優先順序任務的準備。由於高優先順序任務往往是系統的關鍵任務,或是實現系統功能必不可少的步驟,因此,減少高優先順序任務的準備時間可以減少系統的等待延遲,提高用戶體驗。
在另一個實施例中,當主機與存放裝置之間正在進行資料傳輸時,主機可根據資料傳輸對應的任務類型確定可變間隔。例如,當正在進行的資料傳輸是擦除操作時,由於主機可預估擦除操作的耗時大約為10分鐘,則使用毫秒級的可變間隔會造成浪費,因此,在這種情況下主機可以將可變間隔設置為秒級,例如1s。與之相比,若正在進行的資料傳輸是同位址的讀操作,主機可以預估該操作的耗時較短,因此在這種情況下主機可以將可變間隔設置為毫秒級,例如1ms或10ms等。
在另一個實施例中,主機還可以根據主機的運行模式動態地調整可變間隔。例如在關注電能的實施場景中,當主機處於省電模式,或者當電量不
足或低於一個閾值的時候,主機可調整可變間隔,增長可變間隔來減少電能的消耗。而當主機不處於省電模式時,主機可調整可變間隔,縮短可變間隔。
在另一個實施例中,主機可根據傳輸位址的分佈或傳輸位址的相關性確定可變間隔。例如,當正在準備中的任務的傳輸位址與正在傳輸中或者前次傳輸的任務的傳輸位址相近(例如相鄰)時,主機可以將可變間隔設置為較短,否則,則將可變間隔設置為較長。
請參閱圖6,圖6根據本發明另一實施例示出了電子存放裝置的任務管理方法的流程示意圖。該方法包括:
S401:主機創建任務,並將任務傳遞給存放裝置。
S402:存放裝置將任務放入任務佇列,並開始準備任務以供後續執行。
S403:主機以可變間隔向存放裝置發送查詢指令。
S404:存放裝置接收查詢指令,並發出相應的回應資訊。
S405:主機獲取回應資訊。
S406:根據回應資訊,主機獲取任務是否準備完成的資訊。當任務準備未完成時,返回執行步驟S403,繼續以可變間隔向存放裝置發送查詢指令。當任務準備完成時,繼續執行步驟S407。
S407:主機發出任務的執行指令。
S408:存放裝置執行任務的執行指令,進行資料轉移。
S409:主機確定與存放裝置之間的資料轉移的完成時間,並且,在資料轉移完成時立即向存放裝置發出查詢指令。而後,返回步驟S404,再次由存放裝置接收查詢指令並作出回應。
請參閱圖7,圖7根據本發明另一實施例示出了電子存放裝置的任務管理方法的流程示意圖。該方法包括:
S501:主機向存放裝置發送任務。
S502:主機判斷主機與存放裝置之間是否正在進行資料傳輸。
S503:當主機和存放裝置之間正在進行資料傳輸時,主機確定主機與存放裝置之間的資料傳輸的完成時間。
在這種情況下,主機與存放裝置之間正在進行資料傳輸,此時主機可暫不向存放裝置發送查詢指令,而是確定當前資料傳輸的完成時間。可選的,該完成時間可以由存放裝置計算得到,也可以由主機在發送執行任務的指令時根據任務的大小、存放裝置的處理速度和/或通信電路的傳輸能力等因素先驗地計算得到。或者,該完成時間也可以直接由主機和/或存放裝置通過檢測資料傳輸的完成而得到。
S504:當資料傳輸完成時,主機立即向存放裝置發出查詢指令,用以確定存放裝置的任務佇列的狀態。
本實施例通過在資料傳輸完成後立即對任務清單的狀態進行查詢,可以減少查詢操作的等待延遲。因此,本實施例有助於提高存放裝置的工作效率。
請參閱圖8,圖8根據本發明另一實施例示出了電子存放裝置的任務管理方法的流程示意圖。該方法包括:
S601:主機向存放裝置發送任務。
S602:主機判斷主機與存放裝置之間是否正在進行資料傳輸。若是,則執行步驟S603,若否,則執行步驟S605。
S603:主機確定主機與存放裝置之間的資料傳輸的完成時間。
S604:當資料傳輸完成時,主機立即向存放裝置發出查詢指令。
步驟S603和S604和前述S503和S504類似,在此不再贅述。
S605:主機立即向存放裝置發出查詢指令。
在這種情況下,由於主機和存放裝置之間沒有正在進行的資料傳輸,因此主機可立即向存放裝置發出查詢指令,而不需等待一段查詢間隔。
S606:主機獲取回應資訊,回應資訊包含任務佇列的狀態,其中,任務佇列的狀態包括任務佇列中的任務是否準備完成。
S607:當任務未準備完成時,主機繼續以可變間隔向存放裝置發出查詢指令。
S608:當任務準備完成後,主機發出任務的執行指令。
如圖9所示,在圖9所示的第一個階段,存放裝置正在執行任務A,並與主機之間進行資料傳輸,任務B在任務佇列中掛起。任務A的資料傳輸完成後,主機立刻開始向存放裝置發出查詢指令從而對任務B的準備情況進行查詢,而不用等待一個間隔。類似地,主機向存放裝置發出查詢指令的間隔可變。
可以理解,在已有任務正在被執行的情況下(正在進行資料傳輸),主機可以不發出查詢指令,或者,主機可以仍按照前述實施例中的可變間隔發送查詢指令。例如,對於一次只能執行一個任務的情況,已有資料傳輸時,即便另一個任務準備完成也無法執行,這種情況下可以不對任務清單的狀態進行查詢或者;而對於可以並存執行多個任務的情況,即便已有資料在傳輸,也可以執行另一個任務,因此可以持續對任務清單的狀態進行查詢。
本實施例通過在資料傳輸完成後或者主機和存放裝置之間不存在資料傳輸的情況下立即對任務清單的狀態進行查詢,可以減少查詢操作的等待延遲。因此,本實施例有助於提高存放裝置的工作效率。
請參閱圖10,圖10根據本發明一實施例示出了主機700的一個示例性結構示意圖。該主機700包括匯流排701、控制器702、通信電路703和記憶體704。控制器702、通信電路703和記憶體704可通過匯流排701耦接。
其中,通信電路703用於使控制器702與外部的存放裝置通信,記憶
體704保存有程式資料,程式資料可被控制器702載入並執行上述任意實施例的電子存放裝置的任務管理的方法。可以理解地,在其它一些實施例中,記憶體704可以不同控制器702設置於同一實體裝置中,而是通過將主機700結合網路來執行上述任一實施例的方法。
請參閱圖11,圖11根據本發明一實施例示出了電子裝置800的一個示例性結構示意圖。該電子裝置800包括匯流排81、主機82和存放裝置83。
其中,主機82包括用於通信的主機通信電路823、用於存儲程式指令的主機記憶體822和用於執行程式指令的主機控制器821,存放裝置83包括用於通信的設備通信電路834、用於存儲程式指令的設備記憶體832、用於執行程式指令的設備控制器831以及用於存儲任務佇列的任務狀態寄存器833。主機82和存放裝置83可通過分別執行程式指令,以配合實現上述任意實施例的電子存放裝置的任務管理方法。
如圖10所示的主機700以及如圖11所示的電子裝置800可以被設置或者集成在任意使用存放裝置的電子設備中,例如:電腦、行動電話、個人數位助理、多媒體播放機、機上盒、導航設備、電視機等等。
上述實施例所述功能如果以軟體形式實現並作為獨立的產品銷售或使用時,可存儲在一個具有存儲功能的裝置中,即,本發明還提供一種存儲有程式的存儲裝置。存儲裝置中程式資料能夠被執行以實現上述實施例中電子存放裝置的任務管理的方法,該存儲裝置包括但不限於U盤、光碟、伺服器或者硬碟等。例如,該存儲裝置可以是主機內嵌的存儲裝置,或者與主機相連的外部存儲裝置。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
S101~S102:步驟
Claims (16)
- 一種電子存放裝置的任務管理方法,包括:主機以可變間隔向存放裝置發出查詢指令,用以確定所述存放裝置的任務佇列的狀態,該可變間隔與該任何佇列之任務數量、任務的優先順序或任務類型有關;以及所述主機獲取回應資訊,所述回應資訊包含所述任務佇列的狀態,其中,所述任務佇列的狀態包括所述任務佇列中的任務是否準備完成的資訊。
- 根據請求項1所述的電子存放裝置的任務管理方法,還包括:所述主機根據所述任務佇列中的任務數量確定所述可變間隔。
- 根據請求項2所述的電子存放裝置的任務管理方法,其中:所述任務佇列中的任務數量越多,所述可變間隔越短;以及所述任務佇列中的任務數量越少,所述可變間隔越長。
- 根據請求項1所述的電子存放裝置的任務管理方法,還包括:所述主機根據所述任務佇列中的所述任務的優先順序確定所述可變間隔。
- 根據請求項4所述的電子存放裝置的任務管理方法,其中:所述任務的優先順序越高,所述可變間隔越短;以及所述任務的優先順序越低,所述可變間隔越長。
- 根據請求項4所述的電子存放裝置的任務管理方法,其中:所述任務的優先順序根據記憶體標準中規定的任務優先順序確定;或者 所述任務的優先順序根據作業系統內核規定的任務優先順序確定;或者所述任務的優先順序根據應用場景規定的任務優先順序確定;或者所述任務的優先順序根據硬體類型規定的任務優先順序確定。
- 根據請求項4所述的電子存放裝置的任務管理方法,還包括:當所述回應資訊指示出所述任務準備完成後,所述主機按照優先順序順序發出所述任務的執行指令。
- 根據請求項1所述的電子存放裝置的任務管理方法,還包括:所述主機根據所述主機與所述存放裝置之間正在進行的資料傳輸對應的任務類型確定所述可變間隔。
- 根據請求項1所述的電子存放裝置的任務管理方法,還包括:所述主機根據所述主機的運行模式確定所述可變間隔。
- 根據請求項1所述的電子存放裝置的任務管理方法,其中所述主機被設置為符合嵌入式多媒體卡(eMMC)標準來向所述存放裝置發送和接收信號。
- 根據請求項1所述的電子存放裝置的任務管理方法,還包括:當所述回應資訊指示出所述任務準備未完成時,所述主機繼續以所述可變間隔向所述存放裝置發出所述查詢指令;或者當所述回應資訊指示出所述任務準備完成後,所述主機發出所述任務的執行指令。
- 根據請求項11所述的電子存放裝置的任務管理方法,其中:所述任務的執行指令包括讀數據、寫資料或者丟棄任務。
- 一種電子存放裝置的任務管理方法,包括:主機向所述存放裝置發送任務;所述主機判斷所述主機與所述存放裝置之間是否正在進行資料傳輸;以及當所述主機與所述存放裝置之間正在進行資料傳輸時,所述主機確定所述主機與所述存放裝置之間的所述資料傳輸的完成時間,並且當所述資料傳輸完成時,所述主機立即向所述存放裝置發出查詢指令,用以確定所述存放裝置的任務佇列的狀態;以及所述主機獲取回應資訊,所述回應資訊包含所述任務佇列的狀態,其中,所述任務佇列的狀態包括所述任務佇列中的任務是否準備完成的資訊;當所述任務準備未完成時,所述主機繼續以可變間隔向所述存放裝置發出所述查詢指令,該可變間隔與該任何佇列之任務數量、任務的優先順序或任務類型有關;以及當所述任務準備完成時,所述主機發出所述任務的執行指令。
- 根據請求項13所述的電子存放裝置的任務管理方法,還包括:當所述主機判斷所述主機與所述存放裝置之間不在進行資料傳輸時,所述主機立即向所述存放裝置發出查詢指令。
- 一種主機,包括互相耦接的主機控制器和通信電路,其中所述通信電路用於使所述控制器與外部的存放裝置通信,所述主機控制器用於載入 程式指令並執行如請求項1-14任一項所述的電子存放裝置的任務管理方法。
- 一種具有存儲功能的裝置,存儲有程式指令,其中所述程式指令可被載入並執行如請求項1-14任一項所述的電子存放裝置的任務管理方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810534252.0A CN108958950A (zh) | 2018-05-29 | 2018-05-29 | 电子存储设备的任务管理方法、主机和存储装置 |
CN201810534252.0 | 2018-05-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202004492A TW202004492A (zh) | 2020-01-16 |
TWI712951B true TWI712951B (zh) | 2020-12-11 |
Family
ID=64492759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108104901A TWI712951B (zh) | 2018-05-29 | 2019-02-14 | 電子存放裝置的任務管理方法、主機和存儲裝置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11010094B2 (zh) |
CN (1) | CN108958950A (zh) |
TW (1) | TWI712951B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10942677B2 (en) * | 2019-01-24 | 2021-03-09 | Silicon Motion, Inc. | Method for performing access management of memory device, associated memory device and controller thereof, associated host device and associated electronic device |
CN112256773A (zh) * | 2019-07-22 | 2021-01-22 | 沅圣科技股份有限公司 | 企业管理系统对接方法、电子装置及存储介质 |
CN111383154A (zh) * | 2020-04-02 | 2020-07-07 | 广东金宇恒软件科技有限公司 | 一种数据接口及便于管理的公共财政预算管理一体化平台系统 |
CN113806058A (zh) * | 2021-10-09 | 2021-12-17 | 京东科技控股股份有限公司 | 任务管理方法及装置、存储介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103677665A (zh) * | 2012-09-14 | 2014-03-26 | 三星电子株式会社 | 嵌入式多媒体卡、控制其的主机及操作其系统的方法 |
TW201511008A (zh) * | 2013-07-25 | 2015-03-16 | Samsung Electronics Co Ltd | 儲存裝置、通用快閃儲存器系統及其改變資料轉移速度的方法 |
TW201523271A (zh) * | 2013-09-10 | 2015-06-16 | Qualcomm Inc | 於嵌入式記憶體中提供命令佇列 |
TW201738730A (zh) * | 2016-04-21 | 2017-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置、其控制單元及其任務排序方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1230737C (zh) * | 2002-09-23 | 2005-12-07 | 华为技术有限公司 | 一种设备数据轮询调度方法 |
US8286169B2 (en) * | 2005-06-17 | 2012-10-09 | Intel Corporation | Dynamic scheduling an interval for polling devices based on a current operational power mode in an extensible firmware interface architecture |
US8392923B2 (en) * | 2007-09-28 | 2013-03-05 | International Business Machines Corporation | Dynamic polling for completion of asynchronous tasks based on historical task completion times |
CN101261568B (zh) * | 2008-04-09 | 2012-07-04 | 成都市华为赛门铁克科技有限公司 | 一种管理存储设备的方法和装置 |
EP3422775A1 (en) * | 2010-11-22 | 2019-01-02 | Seven Networks, LLC | Optimization of resource polling intervals to satisfy mobile device requests |
CN102572099B (zh) * | 2011-12-15 | 2014-01-22 | 北京握奇数据系统有限公司 | 一种移动终端状态查询间隔时间确定方法、装置及系统 |
US9311005B2 (en) * | 2012-10-04 | 2016-04-12 | International Business Machines Corporation | Method to prevent I/O starvation of slower hosts in a multi-host environment |
CN103049317B (zh) * | 2013-01-10 | 2016-03-23 | 中国南方电网有限责任公司超高压输电公司 | 云环境下基于队列的高并发数据快速写入系统及方法 |
US9448839B2 (en) * | 2013-03-08 | 2016-09-20 | Oracle International Corporation | Backoff job queue polling mechanism |
CN105959249B (zh) * | 2015-09-11 | 2019-03-29 | 天地融科技股份有限公司 | 电子设备的管理方法及系统 |
CN105635802A (zh) * | 2015-12-31 | 2016-06-01 | 浙江大华技术股份有限公司 | 一种数字媒体数据的传输方法及装置 |
-
2018
- 2018-05-29 CN CN201810534252.0A patent/CN108958950A/zh active Pending
-
2019
- 2019-02-11 US US16/273,083 patent/US11010094B2/en active Active
- 2019-02-14 TW TW108104901A patent/TWI712951B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103677665A (zh) * | 2012-09-14 | 2014-03-26 | 三星电子株式会社 | 嵌入式多媒体卡、控制其的主机及操作其系统的方法 |
TW201511008A (zh) * | 2013-07-25 | 2015-03-16 | Samsung Electronics Co Ltd | 儲存裝置、通用快閃儲存器系統及其改變資料轉移速度的方法 |
TW201523271A (zh) * | 2013-09-10 | 2015-06-16 | Qualcomm Inc | 於嵌入式記憶體中提供命令佇列 |
TW201738730A (zh) * | 2016-04-21 | 2017-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置、其控制單元及其任務排序方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108958950A (zh) | 2018-12-07 |
US11010094B2 (en) | 2021-05-18 |
TW202004492A (zh) | 2020-01-16 |
US20190369919A1 (en) | 2019-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI712951B (zh) | 電子存放裝置的任務管理方法、主機和存儲裝置 | |
EP2529308B1 (en) | A system and method for read-while-write with nand memory device | |
US10901638B2 (en) | Cascading board and SSD shared remote access system and method | |
US11360705B2 (en) | Method and device for queuing and executing operation commands on a hard disk | |
CN102073461B (zh) | 输入输出请求调度方法、相关装置和存储阵列 | |
KR20160049200A (ko) | 데이터 저장 장치의 작동 방법, 이를 포함하는 모바일 컴퓨팅 장치, 및 이의 작동 방법 | |
CN104102693A (zh) | 对象处理方法和装置 | |
WO2019028682A1 (zh) | 一种多系统共享内存的管理方法及装置 | |
CN110362517B (zh) | 用于动态地调整在计算设备和存储设备之间传输i/o请求的方式的技术 | |
KR20210017264A (ko) | 메모리 시스템 및 그것의 동작방법 | |
KR20180049340A (ko) | 스토리지 장치 및 그것의 링크 상태 제어 방법 | |
US7689991B2 (en) | Bus management techniques | |
CN111562883B (zh) | 固态硬盘的缓存管理系统、方法、装置 | |
CN103019975A (zh) | 通用串行总线传输控制方法及主机设备 | |
CN107908428B (zh) | 一种帧、页同步的gpu图形指令缓冲同步方法 | |
US20230393782A1 (en) | Io request pipeline processing device, method and system, and storage medium | |
JP2008276739A (ja) | 情報処理システム及び情報処理プログラム | |
CN113672172A (zh) | 应用于led显示控制系统的数据交互方法以及接收卡 | |
KR20210061583A (ko) | 적응형 딥러닝 가속 장치 및 방법 | |
US8547985B2 (en) | Network interface controller capable of sharing buffers and buffer sharing method | |
JP2016026345A (ja) | メモリアレイにおける読み出し待ち時間を短縮するためのメモリ操作の一時停止 | |
US20160062925A1 (en) | Method and system for managing storage device operations by a host device | |
CN116069451B (zh) | 一种虚拟化方法、装置、设备、介质、加速器及系统 | |
CN112416253B (zh) | 一种基于分布式存储的存储区域动态调整方法及装置 | |
WO2021179218A1 (zh) | 直接内存存取单元、处理器、设备、处理方法及存储介质 |