TWI651646B - 資料儲存裝置及其任務排序方法 - Google Patents
資料儲存裝置及其任務排序方法 Download PDFInfo
- Publication number
- TWI651646B TWI651646B TW106114698A TW106114698A TWI651646B TW I651646 B TWI651646 B TW I651646B TW 106114698 A TW106114698 A TW 106114698A TW 106114698 A TW106114698 A TW 106114698A TW I651646 B TWI651646 B TW I651646B
- Authority
- TW
- Taiwan
- Prior art keywords
- task
- tasks
- data storage
- executed
- storage device
- Prior art date
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一種資料儲存裝置及其任務排序方法。所述資料儲存裝置包括資料儲存媒體及控制單元。控制單元用以電性連接及控制資料儲存媒體,並可切換至指令佇列模式以接收主機所發送的包括至少一個任務的佇列指令,並判斷佇列指令所包括的任務是否為待執行的任務,且將待執行的任務排序,並選擇性地回覆佇列狀態資訊給主機,佇列狀態資訊包含對應至待執行的任務的任務數量以及對應至排序後的待執行的任務的任務編號。
Description
本發明是有關於一種資料結構的相關技術,尤其是有關於一種資料儲存裝置、控制此資料儲存裝置的控制單元及任務排序方法。
在習知技術中,主機(例如電腦、手機)會依照工業規格而發送一個特定的命令給與其電性連接的資料儲存裝置(例如快閃記憶體等),而資料儲存裝置會因應此命令而回覆主機有哪些任務(task)已準備好要被執行,然後主機才會接著發送一個存取命令以通知資料儲存裝置是要進行讀或寫的操作。
然而,現有技術的資料儲存裝置雖然可以回覆複數個待執行的任務給主機,但是主機並不能判斷這些待執行任務的執行順序。例如,資料儲存裝置可以有效率地執行某一任務,但是主機實際上卻是要求資料儲存裝置去執行另一個任務,進而使得資料儲存裝置必須重新安排適當的系統資源以便完成此任務之執行。因此,如何讓主機與資料儲存裝置能夠更有效率地溝通並安排執行任務的執行,便成為本領域技術人員所亟欲探討的課題。
本發明提供一種資料儲存裝置,其能夠更有效率地與主機進行溝通。
本發明又提供一種控制單元,其能夠使主機更有效率地存取上述的資料儲存裝置所儲存的資料。
本發明另提供一種適用於上述資料儲存裝置的任務排序方法。
本發明提出的一種資料儲存裝置包括了資料儲存媒體及控制單元。控制單元用以電性連接及控制資料儲存媒體,並可切換至指令佇列模式以接收主機所發送的包括至少一個任務的佇列指令,並判斷佇列指令所包括的任務是否為待執行的任務,且將待執行的任務排序,並選擇性地回覆佇列狀態資訊給主機,佇列狀態資訊包含對應至待執行的任務的任務數量以及對應至排序後的待執行的任務的任務編號。
本發明又提出的一種控制單元包括了控制邏輯、介面邏輯以及微處理器。微處理器電性連接控制邏輯與介面邏輯,並用以透過控制邏輯存取資料儲存媒體中的資料,還用以透過介面邏輯接收主機所發送的佇列指令,佇列指令包括至少一個任務,並判斷佇列指令所包括的任務是否為待執行的任務,並排序待執行的任務,並選擇性地回覆佇列狀態資訊給主機,佇列狀態資訊包含對應至待執行的任務的任務數量以及對應至排序後的待執行的任務的任務編號。
本發明另提出適用於資料儲存裝置的一種任務排序方法,其包括下列步驟:切換至指令佇列模式;接收來自於主機的佇列指令,佇列指令包含至少一個任務;佇列上述佇列指令所包含的任務;判斷所佇列的任務是否為待執行的任務;將待執行的任務排列;以及選擇性地回覆佇列狀態
資訊至主機,佇列狀態資訊包括對應至所述待執行的任務的任務數量以及對應至排序後的待執行的任務的任務編號。
本發明的資料儲存裝置能夠因應主機的佇列指令而回覆包含已排序的待執行任務的任務數量以及任務編號的佇列狀態資訊給主機,因此主機能夠藉此判斷有多少個待執行的任務,並且依據排序的先後來依序執行這些待執行的任務,藉此提高任務執行的效率。
100‧‧‧主機
200‧‧‧資料儲存裝置
210‧‧‧控制單元
220‧‧‧資料儲存媒體
212‧‧‧介面邏輯
214‧‧‧微處理器
216‧‧‧控制邏輯
230‧‧‧佇列狀態資訊
CMD44、CMD45、CMD13、CMD46、CMD47‧‧‧指令
S501、S502、S503、S504、S505、S506、S507‧‧‧步驟
圖1為本發明一實施例之資料儲存裝置以及與其電性連接的主機的示意圖。
圖2為一般的指令佇列流程的示意圖。
圖3為本發明一實施例的佇列狀態資訊的資料結構示意圖。
圖4為傳統的佇列狀態資訊的資料結構示意圖。
圖5為本發明一實施例的任務排序方法的流程圖。
圖1為本發明一實施例之資料儲存裝置以及與其電性連接的主機的示意圖。如圖1所示,主機100電性連接於資料儲存裝置200,主機100例如是以電腦、手機、平板、相機或是其他具運算功能的手持式電子裝置來實現。資料儲存裝置200包括控制單元210及資料儲存媒體220。控制單元210包括介面邏輯212、微處理器214及控制邏輯216。微處理器214電性連接介面邏輯212與控制邏輯216。微處理器214用以透過控制邏輯216存取資料儲存媒體220中的資料。微處理器214用以透過介面邏輯212接收主機100所發送的佇列指令,並因應所接收的佇列指令而回覆本發明佇列狀態資訊給主
機100,以通知主機100根據本發明佇列狀態資訊中所指定的任務排序來存取資料儲存媒體220所儲存的資料。資料儲存媒體220包括以非揮發性記憶體來實現,例如是以快閃記憶體(Flash memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)等具有長時間資料保存之記憶體裝置來實現。介面邏輯212為符合SATA介面(Serial Advanced Technology Attachment)、通用序列匯流排(Universal Serial Bus,USB)、快捷外設互聯標準(PCI Express,Peripheral Component Interconnect Express)、非揮發性記憶體儲存裝置(NVMe,Non-Volatile Memory Express)、通用快閃記憶體儲存裝置(UFS,Universal Flash Storage)、嵌入式多媒體記憶卡(eMMC,embeded MultiMedia Card)或SDIO介面(Secure Digital Input/Output)標準之介面邏輯。
下列將以eMMC版本5.1,發行日期為2015年2月,進行本發明之說明,但不以此為限。eMMC可支援最多32個資料傳輸任務的佇列,其中,資料傳輸任務(或簡稱為任務)可對應至資料讀取指令或資料寫入指令。圖2為一般的指令佇列流程的示意圖。當致能或切換至指令佇列(command queue)模式後,主機100發送佇列指令以傳送複數個任務至資料儲存裝置200進行佇列。佇列指令包括第44類指令(Command 44)及第45類指令(Command 45),其中,第44類指令為佇列指令參數,其內容包括:資料區塊(Block)數目、任務編號、資料傳輸方向、優先權等,其中,任務編號互不重複;第45類指令為佇列指令位址,其內容為任務所對應之邏輯資料區塊位址(LBA,Logical Block Address)。當佇列任務後,主機100發送第13類指令(Command 13)以查詢任務佇列的狀態,接著資料儲存裝置200會回覆佇列狀態資訊230至主機100。可選地,佇列狀態資訊230較佳為本發明佇列狀態資訊,亦可為傳統的佇列狀態資訊,資料儲存裝置200乃依據第13
類指令的要求以決定佇列狀態資訊230的內容。本發明佇列狀態資訊除了提供哪些佇列中的任務是待執行的(ready for execution)任務之外,更提供了待執行的任務的較佳(或建議的)執行順序,資料儲存裝置200依此順序來執行待執行的任務將具有較佳的效率。當收到佇列狀態資訊230後,主機100可發送第46類指令(Command 46)或第47類指令(Command 47)至資料儲存裝置200以執行佇列中的待執行的任務。
圖3為本發明一實施例的佇列狀態資訊的資料結構示意圖。如圖3所示,本發明佇列狀態資訊包含位元0到位元31所依序排列的32個位元。主機100發送第13類指令以獲取資料儲存裝置200所回覆的本發明佇列狀態資訊。如圖4所示,傳統的佇列狀態資訊的資料結構是以1個位元來表示對應的任務是否為待執行的任務,舉例來說,如果任務0、任務6、任務15及任務21是待執行的,在傳統的資料結構當中,位元0、位元6、位元15及位元21便會以二進制的1來表示,主機100方能夠藉此得知這些是待執行的任務。至於其他的任務,其對應的位元則是以二進制的0來表示。
然而,傳統的佇列狀態資訊無法表示這些待執行的任務的執行順序,而執行順序的失當會導致資料儲存裝置200花費更長的時間及更多的系統資源以完成任務之執行,這將導致系統效能的低落。與傳統的佇列狀態資訊不同的是,本發明佇列狀態資訊包含待執行的任務的任務數量以及依據較佳任務執行排序來排列的複數個待執行的任務的任務編號,而待執行的任務數量以及待執行的任務的任務編號各自以複數個位元來分別表示。請參照圖3,在本實施例中,待執行的任務的任務數量是用32個位元中的位元0~2等3個位元來表示,本實施例的任務數量其最小數值為0,最大數值為7。例如,用位元0~2等3個位元來表示待執行任務數量為4,而每一個待執行任務的任務編號係各自以5個位元來表示並自位元4開始依序排列。例
如,若資料儲存裝置200欲告知主機100較佳任務執行排序依序為任務21、6、15、0等4個待執行任務,則位元4~8等5個位元會被用來表示第1個待執行任務是任務21,位元9~13等5個位元會被用來表示第2個待執行任務是任務6,位元14~18等5個位元會被用來表示第3個待執行任務是任務15,位元19~23等5個位元會被用來表示第4個待執行任務是任務0。
特別說明的是,按照上述的資料結構所設計的本發明佇列狀態資訊,最多可以提供5個待執行的任務的任務編號,此乃受限於佇列狀態資訊230的長度為32位元。假設資料儲存裝置200可回覆多個本發明佇列狀態資訊至主機100,則所有待執行的任務可依其較佳的執行順序依序提供給主機100。假設佇列狀態資訊230的長度可延長為64位元或128位元時,依據本發明之精神,本發明佇列狀態資訊將可提供超過5個待執行的任務的任務編號。同理可證,如果保留4個位元,而非3個位元,以表示待執行的任務的任務數量其數值最高可為15。待執行的任務的任務數量以及依照任務排序所排列的待執行的任務的任務編號並不限於以上述實施例所舉例的位元數來表示,可視設計時的需求而供技術人員自行改變。此外,在本實施例中,位元3、位元29~31為保留位元(狀態為0),保留位元的位置及數量並不限於上述所提及,可視設計時的需求而供技術人員自行改變,至於保留位元的功能可以由技術人員自行定義因此不於此贅述。
另外,主機100所發送的第13類指令的長度為16個位元,假設位元14-15是以二進制的”01”來表示,那麼資料儲存裝置200便會回覆傳統的佇列狀態資訊給主機100;假設位元14-15是以二進制的”11”來表示,那麼資料儲存裝置200便會回覆本發明佇列狀態資訊給主機100,換句話說,資料儲存裝置200可依據第13類指令的內容而選擇並回覆適當的佇列狀態資訊給主機100。
圖5為本發明一實施例的任務排序方法的流程圖,其包含步驟S501~S507。步驟S501,資料儲存裝置200切換至指令佇列模式。步驟S502,資料儲存裝置200接收來自於主機100的佇列指令,其中,佇列指令包含複數個任務。步驟S503,資料儲存裝置200佇列其所接收的複數個任務。步驟S504,資料儲存裝置200判斷複數個佇列任務是否為複數個待執行的任務,由於判斷佇列任務是否為待執行的任務為習知技藝,故不多作說明。步驟S505,資料儲存裝置200排序複數個待執行的任務,其中,資料儲存裝置200可依據任務編號的大小、優先權與否、同一邏輯資料區塊位址的讀取或寫入、邏輯資料區塊位址的連續性等條件來決定複數個待執行的任務的執行順序。步驟S506,資料儲存裝置200接收來自主機100的查詢指令,例如,第13類指令。步驟S507,資料儲存裝置200依據查詢指令回覆佇列狀態資訊,其中,資料儲存裝置200可依據查詢指令的要求,選擇性地回覆本發明佇列狀態資訊或傳統的佇列狀態資訊給主機100。
綜上所述,本發明提供較佳任務執行順序的佇列狀態資訊,藉此提供主機100已排程的任務資訊,以使主機100根據佇列狀態資訊當中待執行的任務的任務數量以及待執行的任務的任務編號來依序執行任務,進而提高任務執行的效率。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟習此技藝者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
Claims (12)
- 一種資料儲存裝置,包括:一非揮發性記憶體,用以儲存資料;以及一控制單元,用以控制該非揮發性記憶體的運作,該控制單元佇列來自於一主機的複數任務且決定該些任務是否為複數待執行的任務,並選擇性地回覆一佇列狀態資訊給該主機,其中,該佇列狀態資訊包含一任務數量以及複數任務編號。
- 如申請專利範圍第1項所述的資料儲存裝置,其中,該些任務編號依據該些待執行的任務的執行先後順序進行排列。
- 如申請專利範圍第1項所述的資料儲存裝置,其中,該任務數量為該些待執行的任務的數量。
- 如申請專利範圍第1項所述的資料儲存裝置,其中,該控制單元可選擇性地回覆另一佇列狀態資訊給該主機,該另一佇列狀態資訊顯示每一該些佇列中的任務是否為待執行的。
- 如申請專利範圍第1項所述的資料儲存裝置,其中,該佇列狀態資訊用以回應來自於該主機的一查詢指令。
- 如申請專利範圍第2項所述的資料儲存裝置,其中,先後順序仍依據一邏輯資料區塊位址所決定。
- 一種任務排序方法,包括:傳送一佇列指令至一遠端,該佇列指令包含複數任務;傳送一查詢指令至該遠端;以及接收一佇列狀態資訊自該遠端,其中,該佇列狀態資訊包括一任務數量以及複數任務編號。
- 如申請專利範圍第7項所述的任務排序方法,其中,該些任務編號依據複數待執行的任務的執行先後順序進行排列。
- 如申請專利範圍第7項所述的任務排序方法,其中,該任務數量為複數待執行的任務的數量。
- 如申請專利範圍第9項所述的任務排序方法,其中,該些待執行的任務選自於該些任務。
- 如申請專利範圍第8項所述的任務排序方法,其中,先後順序仍依據一邏輯資料區塊位址所決定。
- 如申請專利範圍第7項所述的任務排序方法,更包括:傳送另一查詢指令至該遠端;以及接收另一佇列狀態資訊自該遠端,其中,該另一佇列狀態資訊顯示每一該些佇列中的任務是否為待執行的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106114698A TWI651646B (zh) | 2016-04-21 | 2016-04-21 | 資料儲存裝置及其任務排序方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106114698A TWI651646B (zh) | 2016-04-21 | 2016-04-21 | 資料儲存裝置及其任務排序方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201738730A TW201738730A (zh) | 2017-11-01 |
TWI651646B true TWI651646B (zh) | 2019-02-21 |
Family
ID=61022795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106114698A TWI651646B (zh) | 2016-04-21 | 2016-04-21 | 資料儲存裝置及其任務排序方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI651646B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108958950A (zh) * | 2018-05-29 | 2018-12-07 | 联发科技(新加坡)私人有限公司 | 电子存储设备的任务管理方法、主机和存储装置 |
CN110908717B (zh) * | 2018-09-14 | 2023-11-24 | 深圳大心电子科技有限公司 | 指令处理方法及使用所述方法的存储控制器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040049628A1 (en) * | 2002-09-10 | 2004-03-11 | Fong-Long Lin | Multi-tasking non-volatile memory subsystem |
US20080195833A1 (en) * | 2007-02-13 | 2008-08-14 | Samsung Electronics Co., Ltd. | Systems, methods and computer program products for operating a data processing system in which a file system's unit of memory allocation is coordinated with a storage system's read/write operation unit |
US20100262979A1 (en) * | 2009-04-08 | 2010-10-14 | Google Inc. | Circular command queues for communication between a host and a data storage device |
US20120311197A1 (en) * | 2011-05-31 | 2012-12-06 | Micron Technology, Inc. | Apparatus including memory system controllers and related methods |
-
2016
- 2016-04-21 TW TW106114698A patent/TWI651646B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040049628A1 (en) * | 2002-09-10 | 2004-03-11 | Fong-Long Lin | Multi-tasking non-volatile memory subsystem |
US20080195833A1 (en) * | 2007-02-13 | 2008-08-14 | Samsung Electronics Co., Ltd. | Systems, methods and computer program products for operating a data processing system in which a file system's unit of memory allocation is coordinated with a storage system's read/write operation unit |
US20100262979A1 (en) * | 2009-04-08 | 2010-10-14 | Google Inc. | Circular command queues for communication between a host and a data storage device |
US20120311197A1 (en) * | 2011-05-31 | 2012-12-06 | Micron Technology, Inc. | Apparatus including memory system controllers and related methods |
Also Published As
Publication number | Publication date |
---|---|
TW201738730A (zh) | 2017-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI587214B (zh) | 資料儲存裝置、其控制單元及其任務排序方法 | |
US11023167B2 (en) | Methods and apparatuses for executing a plurality of queued tasks in a memory | |
EP2849077B1 (en) | Method for writing data into storage device and storage device | |
CN114443529B (zh) | 内存直接访问架构、***、方法、电子设备和介质 | |
EP2849076B1 (en) | Dma transmission method and system | |
US11630766B2 (en) | Memory system and operating method thereof | |
CN109815172B (zh) | 设备控制器以及包括其的储存设备 | |
KR20160049200A (ko) | 데이터 저장 장치의 작동 방법, 이를 포함하는 모바일 컴퓨팅 장치, 및 이의 작동 방법 | |
CN111897743B (zh) | 数据储存装置及逻辑至物理地址映射表的载入方法 | |
US9575887B2 (en) | Memory device, information-processing device and information-processing method | |
CN111796759B (zh) | 多平面上的片段数据读取的计算机可读取存储介质及方法 | |
CN109213687A (zh) | 数据储存装置、存储器操作方法及操作指令执行方法 | |
TWI651646B (zh) | 資料儲存裝置及其任務排序方法 | |
US20180364946A1 (en) | Data storage device | |
US11307798B2 (en) | Storage device and method for performing macro command | |
TWI629638B (zh) | 儲存裝置及其任務執行方法、對應於儲存裝置的主機及其任務執行方法、以及應用於儲存裝置的控制單元 | |
US20170075694A1 (en) | Memory system, electric device, and information processing device | |
CN108984108A (zh) | 用于调度io命令的方法与固态存储设备 | |
CN108536475B (zh) | 完整编程命令处理方法与装置 | |
TWI452471B (zh) | 用於通用序列匯流排裝置的全雙工控制器與其方法 | |
TWI822516B (zh) | 執行主機寫入命令的方法及電腦程式產品及裝置 | |
US20230305711A1 (en) | Memory controller and data processing method for processing disordered read-out data | |
KR102686749B1 (ko) | 맵 스케줄링을 수행하기 위한 스토리지 장치 및 그것을 포함하는 전자 장치 | |
CN109857331B (zh) | 指令处理方法及使用所述方法的储存控制器 | |
CN109144907B (zh) | 实现快速读取的方法及介质接口控制器 |