TWI639921B - 指令處理方法及使用所述方法的儲存控制器 - Google Patents
指令處理方法及使用所述方法的儲存控制器 Download PDFInfo
- Publication number
- TWI639921B TWI639921B TW106140428A TW106140428A TWI639921B TW I639921 B TWI639921 B TW I639921B TW 106140428 A TW106140428 A TW 106140428A TW 106140428 A TW106140428 A TW 106140428A TW I639921 B TWI639921 B TW I639921B
- Authority
- TW
- Taiwan
- Prior art keywords
- group
- input
- processor
- instruction
- output instructions
- Prior art date
Links
Classifications
-
- 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/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/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- 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
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
- Information Transfer Systems (AREA)
Abstract
本發明提出一種指令處理方法及使用所述方法的儲存控制器。指令處理方法包括:接收多個輸入輸出指令;根據輸入輸出指令的處理器使用指數,將輸入輸出指令分類成多個群組;從群組中選擇第一群組,重置計時器並根據第一群組的輸入輸出指令來獲得對應第一群組的到期時間,並執行第一群組的輸入輸出指令;以及當第一群組的到期時間到期時,從群組中選擇第二群組並重置計時器,其中當第一群組的處理器使用指數小於門檻值時,在到期時間到期之前降低處理器的時脈。
Description
本發明是有關於一種指令處理方法及使用所述方法的儲存控制器,且特別是有關於一種能夠最大化處理器使用率的指令處理方法及使用所述方法的儲存控制器。
在一般的儲存裝置中,通常是透過儲存控制器從主機系統收指令,並將指令傳送到指令佇列中等待執行。當儲存控制器在執行指令時會根據指令來存取儲存媒介,例如非揮發性記憶體模組,以執行讀取或寫入等功能。
然而,從主機系統接收到的指令有許多不同的類別,而每一種類別的指令的處理器執行時間及資料傳輸時間都不同。有些指令的處理器執行時間小於資料傳輸時間,而其他指令的處理器執行時間大於資料傳輸時間。當不同種類的指令從指令佇列輸出並執行時,處理器執行時間大於資料傳輸時間的指令會產生很多零散的處理器閒置時間,而這些時間的處理器資源相當於被浪費掉了。因此,如何對處理器資源進行更有效率的利用,是本領域技術人員應致力的目標。
本發明提供一種指令處理方法及使用所述方法的儲存控制器,以節省系統耗電量或充分利用處理器閒置時間的效能。
本發明提出一種指令處理方法,適用於儲存控制器。儲存控制器用於存取儲存媒體並耦接至主機系統。指令處理方法包括:接收多個輸入輸出指令。指令處理方法還包括根據上述輸入輸出指令的處理器使用指數,將上述輸入輸出指令分類成多個群組。指令處理方法還包括從上述群組中選擇第一群組,重置計時器並根據第一群組的輸入輸出指令來獲得對應第一群組的到期時間(expiration time),並執行第一群組的輸入輸出指令。指令處理方法還包括當第一群組的到期時間到期時,從上述群組中選擇第二群組並重置計時器。其中當第一群組的處理器使用指數小於門檻值時,在到期時間到期之前降低處理器的時脈。
在本發明的一實施例中,上述群組包括第三群組,當第三群組的輸入輸出指令的處理器使用指數都小於第一值且第一值小於門檻值時,處理器在第三群組的到期時間到期之前將處理器的原始時脈降低為原始時脈乘以第一值。
在本發明的一實施例中,上述儲存控制器透過主機介面與主機系統溝通,且主機界面支援亂序執行(out-of-order execution,OOE)功能。
在本發明的一實施例中,上述處理器使用指數為處理器輸入輸出指令執行時間除以對應的資料傳輸時間。
在本發明的一實施例中,上述門檻值為1。
在本發明的一實施例中,上述處理器輸入輸出指令執行時間為輸入輸出指令的其中之一所對應的多個函式的處理器的執行時間,上述函式直接相關於輸入輸出指令的該其中之一的資料傳輸。
在本發明的一實施例中,上述資料傳輸時間為輸入輸出指令的其中之一的估計資料傳輸時間。
在本發明的一實施例中,上述儲存控制器透過查找表將輸入輸出指令的傳輸方向及大小映射到上述群組的群組索引上,並透過指令排序器來查找查找表,其中指令排序器將輸入輸出指令分類成上述群組。
在本發明的一實施例中,上述儲存控制器透過查找表將輸入輸出指令的傳輸方向及大小映射到資料傳輸時間上,並透過每個群組所對應的指令佇列管理器來查找上述查找表。
在本發明的一實施例中,上述到期時間為第一群組的輸入輸出指令的資料傳輸時間的總合,其中資料傳輸時間從查找表來獲得。
本發明提出一種儲存控制器,用於存取儲存媒體並耦接至主機系統。儲存控制器包括:指令排序器;多個指令佇列管理器,耦接到指令排序器;仲裁器,耦接到上述指令佇列管理器;計時器,耦接到仲裁器;以及處理器,耦接到指令排序器、上述指令佇列管理器及仲裁器的至少其中之一。其中指令排序器從主機系統接收多個輸入輸出指令。指令排序器根據輸入輸出指令的處理器使用指數,將輸入輸出指令分類成多個群組。仲裁器從上述群組中選擇第一群組,重置計時器並根據第一群組的輸入輸出指令來獲得對應第一群組的到期時間,並由處理器執行第一群組的輸入輸出指令。當第一群組的到期時間到期時,仲裁器從上述群組中選擇第二群組並重置計時器。其中當第一群組的處理器使用指數小於門檻值時,在到期時間到期之前降低處理器的時脈。
在本發明的一實施例中,上述群組包括第三群組,當第三群組的輸入輸出指令的處理器使用指數都小於第一值且第一值小於門檻值時,處理器在第三群組的到期時間到期之前將處理器的原始時脈降低為原始時脈乘以第一值。
在本發明的一實施例中,上述儲存控制器透過主機介面與主機系統溝通,且主機界面支援亂序執行(out-of-order execution,OOE)功能。
在本發明的一實施例中,上述處理器使用指數為處理器輸入輸出指令執行時間除以對應的資料傳輸時間。
在本發明的一實施例中,上述門檻值為1。
在本發明的一實施例中,上述處理器輸入輸出指令執行時間為輸入輸出指令的其中之一所對應的多個函式的處理器的執行時間,上述函式直接相關於輸入輸出指令的該其中之一的資料傳輸。
在本發明的一實施例中,上述資料傳輸時間為輸入輸出指令的其中之一的估計資料傳輸時間。
在本發明的一實施例中,上述儲存控制器透過查找表將輸入輸出指令的傳輸方向及大小映射到上述群組的群組索引上,並透過指令排序器來查找查找表,其中指令排序器將輸入輸出指令分類成上述群組。
在本發明的一實施例中,上述儲存控制器透過查找表將輸入輸出指令的傳輸方向及大小映射到資料傳輸時間上,並透過每個群組所對應的指令佇列管理器來查找上述查找表。
在本發明的一實施例中,上述到期時間為第一群組的輸入輸出指令的資料傳輸時間的總合,其中資料傳輸時間從查找表來獲得。
基於上述,本發明的指令處理方法及使用所述方法會將輸入輸出指令根據處理器使用指數分成多個群組。在執行一個群組的輸入輸出指令之前會先重置計時器並根據此群組的輸入輸出指令來獲得此群組的到期時間。若所執行群組的處理器使用指數小於門檻值,則可在此群足的到期時間到期之前降低處理器的時脈。藉由根據處理器使用指數對輸入輸出指令分群組,可將處理器使用率較少的指令集中在同一群組,從而集中處理器閒置時間。因此,就可利用處理器閒置時間來處理其他指令或在上述閒置時間降低處理器的時脈。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,儲存裝置包括可複寫式非揮發性記憶體模組(rewritable non-volatile memory module)與儲存裝置控制器(亦稱,儲存控制器或儲存控制電路)。通常儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至儲存裝置或從儲存裝置中讀取資料。
圖1為根據本發明的一實施例所繪示的主機系統及儲存裝置的方塊圖。
請參照圖1,主機系統(Host System)10包括主機處理器(未繪示於圖中)、主機記憶體(Host Memory)100及資料傳輸介面電路(Data Transfer Interface Circuit) (未繪示於圖中)。在本實施例中,資料傳輸介面電路耦接(亦稱,電性連接)至主機處理器與主機記憶體100。在另一實施例中,主機處理器、主機記憶體100與資料傳輸介面電路之間利用系統匯流排(System Bus)彼此耦接。
儲存裝置20包括儲存控制器(Storage Controller)200、動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)300、儲存媒體(Storage Media)400_0至400_n及連接介面電路(Connection Interface Circuit)(未繪示於圖中)。儲存媒體400_0至400_n可為可複寫式非揮發性記憶體模組(Rewritable Non-Volatile Memory Module)。
在本實施例中,主機系統10是透過資料傳輸介面電路與儲存裝置20的連接介面電路(又稱為儲存裝置20的主機介面)至儲存裝置20來進行資料的存取操作。例如,主機系統10可經由資料傳輸介面電路將資料儲存至儲存裝置20或從儲存裝置20中讀取資料。
在本實施例中,主機處理器、主機記憶體100及資料傳輸介面電路可設置在主機系統10的主機板上。資料傳輸介面電路的數目可以是一或多個。透過資料傳輸介面電路,主機板可以經由有線或無線方式耦接至儲存裝置20。儲存裝置20可例如是隨身碟、記憶卡、固態硬碟(Solid State Drive, SSD)或無線記憶體儲存裝置。無線記憶體儲存裝置可例如是近距離無線通訊(Near Field Communication, NFC)記憶體儲存裝置、無線傳真(WiFi)記憶體儲存裝置、藍牙(Bluetooth)記憶體儲存裝置或低功耗藍牙記憶體儲存裝置(例如,iBeacon)等以各式無線通訊技術為基礎的記憶體儲存裝置。此外,主機系統10也可以透過系統匯流排耦接至全球定位系統(Global Positioning System, GPS)模組、網路介面卡、無線傳輸裝置、鍵盤、螢幕、喇叭等各式I/O裝置。
在本實施例中,資料傳輸介面電路與連接介面電路是相容於高速周邊零件連接介面(Peripheral Component Interconnect Express, PCI Express)標準的介面電路。並且,資料傳輸介面電路與連接介面電路之間是利用快速非揮發性記憶體(Non-Volatile Memory express,NVMe)控制器介面、進階主機控制器介面(Advanced Host Controller Interface,AHCI)或PCIe架構佇列介面(PCIe architecture Queuing Interface,PQI)等協定來進行資料的傳輸並可具有亂序執行(out-of-order execution,OOE)功能。其中快速非揮發性記憶體協定可具有輸入輸出提交佇列(Input/Output Submission Queue,IOSQ)及輸入輸出完成佇列(Input/Output Completion Queue,IOCQ)架構,進階主機控制器介面協定可具有(Native Command Queue,NCQ)指令支援,PCIe架構佇列介面協定可具有輸入佇列(Input Queue,IQ)及輸出佇列(Output Queue,OQ)架構。
然而,必須瞭解的是,本發明不限於此,資料傳輸介面電路與連接介面電路亦可以是符合並列先進附件(Parallel Advanced Technology Attachment, PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers, IEEE)1394標準、序列先進附件(Serial Advanced Technology Attachment, SATA)標準、通用序列匯流排(Universal Serial Bus, USB)標準、SD介面標準、超高速一代(Ultra High Speed-I, UHS-I)介面標準、超高速二代(Ultra High Speed-II, UHS-II)介面標準、記憶棒(Memory Stick, MS)介面標準、多晶片封裝(Multi-Chip Package)介面標準、多媒體儲存卡(Multi Media Card, MMC)介面標準、eMMC介面標準、通用快閃記憶體(Universal Flash Storage, UFS)介面標準、eMCP介面標準、CF介面標準、整合式驅動電子介面(Integrated Device Electronics, IDE)標準或其他適合的標準。此外,在另一實施例中,連接介面電路可與儲存控制器200封裝在一個晶片中,或者連接介面電路是佈設於一包含儲存控制器200之晶片外。
在本實施例中,主機記憶體100用以暫存主機處理器所執行的指令或資料。例如,在本範例實施例中,主機記憶體100可以是動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)、靜態隨機存取記憶體(Static Random Access Memory,SRAM)等。然而,必須瞭解的是,本發明不限於此,主機記憶體100也可以是其他適合的記憶體。
在本實施例中,儲存控制器200包括處理器201、指令輸入器210、指令排序器220、查找表230、指令佇列管理器240_0至240_N-1、仲裁器250及計時器260。指令佇列管理器240_0至240_N-1分別具有指令佇列241_0至241_N-1。處理器201負責主機輸入輸出指令的處理。除了處理器201之外,儲存控制器200還可包括一到多個處理器202,負責主機輸入輸出指令以外的指令的處理。
當指令輸入器210從主機記憶體100接收到多個指令時,指令輸入器210會將指令傳送到指令排序器220,由指令排序器220透過查找表230將指令依照處理器使用指數(CPU Effort Index,CEI)分成不同群組,再將不同群組的指令分別傳送到指令佇列241_0至241_N-1。仲裁器250會從指令佇列241_0至241_N-1中選擇其中一個指令群組來執行,並且透過計時器260來管控指令執行的到期時間。關於處理器使用指數的計算方法及計時器260的管控方法,將於下文中詳細說明。
在本實施例中,儲存控制器200還包括資料傳輸電路270與儲存媒體介面電路280。當指令被執行時,資料傳輸電路270用以接受處理器201的指示來與主機記憶體100進行資料的傳輸。例如,經由連接介面電路從主機系統10(如,主機記憶體100)讀取資料,並且將所讀取的資料經由儲存媒體介面電路280寫入至儲存媒體400_0至400_n中。又例如,經由儲存媒體介面電路280從儲存媒體400_0至400_n讀取資料,並且將所讀取的資料經由連接介面電路寫入至主機系統10(如,主機記憶體120)中。儲存媒體介面電路280用以接受處理器201的指示,配合資料傳輸電路270來進行對於儲存媒體400_0至400_n的資料的寫入(亦稱,程式化,Programming)、讀取操作。儲存媒體介面電路280亦可對儲存媒體400_0至400_n進行抹除操作。此外,透過儲存媒體介面電路280寫入儲存媒體400_0至400_n的資料可以先暫存在動態隨機存取記憶體300中,且儲存媒體介面電路280從儲存媒體400_0至400_n讀出的資料也可暫存在動態隨機存取記憶體300中。
值得注意的是,計時器260可由硬體電路來實作。指令輸入器210、指令排序器220及仲裁器250可由硬體電路或韌體的方式來實作。而查找表230則可由韌體方式來實作,在系統初始化的過程中,可預先定義每一群組指令所對應的處理器使用指數範圍,並將上述處理器使用指數範圍及對應的指令群組程式化進入查找表中。此外,查找表也會記錄每個指令群組中不同指令的處理時間。
圖2為根據本發明的一實施例所繪示的指令處理方法的流程圖。
請參照圖2,在步驟S201中,接收多個輸入輸出指令。具體來說,指令輸入器210可從主機記憶體100接收多個輸入輸出指令。
在步驟S203中,根據輸入輸出指令的處理器使用指數,將輸入輸出指令分類成多個群組。具體來說,指令排序器220會根據處理器使用指數(CPU Effort Index,CEI)將指令輸入器210的輸入輸出指令分類(categorize)成多個群組,並將不同群組的輸入輸出指令分別傳送到指令佇列管理器240_0至240_N-1的指令佇列241_0至241_N-1中。
值得注意的是,處理器使用指數(CEI)為處理器輸入輸出指令執行時間除以對應的資料傳輸時間。處理器輸入輸出指令執行時間為一個輸入輸出指令所對應的多個函式(function)的該處理器的執行時間,該些函式直接相關於該些輸入輸出指令的該其中之一的資料傳輸。上述函式例如是直接記憶體存取(Direct Memory Access,DMA)的硬體引擎激活、內部緩衝器(buffer)配置、儲存媒體存取協定的指令發布(command issue)、由處理器201分派工作到其他處理器202等等。另一方面,執行固態硬碟的垃圾收集操作的時間則不屬於處理器輸入輸出指令執行時間。上述資料傳輸時間則為一個輸入輸出指令被執行時所對應的估計總資料傳輸時間。
在本實施例中,儲存控制器200可透過查找表230將輸入輸出指令的傳輸方向及大小映射到對應群組的群組索引上,並透過指令排序器220來查找該查找表230。此外,儲存控制器200還透過查找表230將輸入輸出指令的傳輸方向及大小映射到資料傳輸時間上,並透過每個群組所對應的指令佇列管理器240_0至240_N-1來查找查找表230。
在步驟S205中,從上述群組中選擇第一群組,重置計時器260並根據第一群組的輸入輸出指令來獲得對應第一群組的到期時間,並執行第一群組的輸入輸出指令。具體來說,仲裁器250會選擇第一群組(例如,指令佇列)來執行第一群組的輸入輸出指令(例如,指令佇列240_1中的輸入輸出指令)。當第一群組被仲裁器250選到時,仲裁器250會重置(reset)計時器260並且根據第一群組的輸入輸出指令來獲得對應第一群組的到期時間,再將到期時間傳送到計時器260。
在步驟S207中,當第一群組的到期時間到期時,從群組中選擇第二群組並重置計時器,其中當第一群組的處理器使用指數小於門檻值時,在到期時間到期之前降低處理器的時脈。具體來說,當第一群組的到期時間到期時,也就是仲裁器250從計時器260接收到到期通知時,仲裁器250會選擇下一個群組的指令來執行,並重覆重置計時器260等步驟。值得注意的是,到期時間為第一群組的輸入輸出指令的資料傳輸時間的總合,其中資料傳輸時間可從查找表230來獲得。
在本實施例中,當一個群組的輸入輸出指令的輸入輸出指令(CEI)都小於等於1時,代表處理器201在執行此群組的指令時會有空閒時間,因此處理器201可在此群組的到期時間到期之前降低處理器201的時脈,以達成省電效果。在另一實施例中,當一個群組的輸入輸出指令的輸入輸出指令(CEI)都小於等於1時,若處理器201成執行用來激活資料傳輸所有必要函數,且此群組的到期時間還沒到期,則處理器201可利用等待資料傳輸的閒置時間,進行主機輸入輸出指令處理以外的工作。
圖3為根據本發明的另一實施例所繪示的指令處理方法的流程圖。
請參照圖3,在步驟S301中,仲裁器250從指令佇列241_0至241_N-1中選擇下一個群組。
在步驟S303中,仲裁器250判斷選定群組中是否有任何待執行(pending)的輸入輸出指令。若選定群組中沒有任何待執行的輸入輸出指令則回到步驟S301。
若選定群組中有待執行的輸入輸出指令則在步驟S305中,進一步判斷選定群組的輸入輸出指令的處理器使用指數是否小於門檻值。
若選定群組的輸入輸出指令的處理器使用指數不小於門檻值則直接在步驟S309中,激活所有資料的傳輸。
若選定群組的輸入輸出指令的處理器使用指數小於門檻值則先在步驟S307中,降低處理器201的時脈。接著才在步驟S309中,激活所有資料的傳輸。
在步驟S311中,仲裁器250會判斷選定群組的到期時間是否已經到期。
若選定群組的到期時間已經到期,在步驟S313中,將處理器201的時脈設定回預設時脈。接著回到步驟S301中,繼續選擇下一個群組。
圖4為根據本發明的另一實施例所繪示的指令處理方法的流程圖。
請參照圖4,在步驟S401中,仲裁器250從指令佇列241_0至241_N-1中選擇下一個群組。
在步驟S403中,仲裁器250判斷選定群組中是否有任何待執行(pending)的輸入輸出指令。若選定群組中沒有任何待執行的輸入輸出指令則回到步驟S401。
若選定群組中有待執行的輸入輸出指令則在步驟S405中,激活所有資料的傳輸。
在步驟S407中,判斷選定群組的輸入輸出指令的處理器使用指數是否小於門檻值。
若選定群組的輸入輸出指令的處理器使用指數不小於門檻值,則在完成所有資料傳輸後直接回到步驟S401。
若選定群組的輸入輸出指令的處理器使用指數小於門檻值,在步驟S409中,判斷是否存在輸入輸出指令以外的待執行工作。
若不存在輸入輸出指令以外的待執行工作,則在完成所有資料傳輸後直接回到步驟S401。
若存在輸入輸出指令以外的待執行工作,則在步驟S411中,仲裁器250會判斷選定群組的到期時間是否已經到期。
若選定群組的到期時間已經到期,則直接回到步驟S401。
若選定群組的到期時間還沒到期,則在步驟S413中,由處理器201執行其他工作,並在執行完上述其他工作後回到步驟S409,繼續判斷是否存在輸入輸出指令以外的待執行工作。值得注意的是,上述其他工作所需花費的時間需要在選定群組的到期時間到期之前完成。
圖5A及圖5B為根據本發明的一實施例所繪示的指令處理方法的範例。
請參照圖5A及圖5B,在本範例中,假設共有六個種類的主機輸入輸出指令A、B、C、D、E、F。以指令A為例,指令A的處理器輸入輸出指令執行時間(以虛線表示)為2,且資料傳輸時間(以實線表示)為1,因此指令A的處理器使用指數(即,CEI
0)為2/1。指令B到F的處理器輸入輸出指令執行時間、資料傳輸時間及CEI
1到CEI
5則可以此類推。
在本範例的指令處理方法中,可將指令A到F分類(categorize)為群組0、群組1及群組2。其中群組0包括CEI≧1的指令,也就是指令A、B、C。群組1包括0.25<CEI<1的指令,也就是指令D、E。群組2包括CEI≦0.25的指令,也就是指令F。
指令佇列510是未使用本發明的指令處理方法的指令佇列的範例。而指令佇列520、指令佇列521、指令佇列522則是根據本發明的指令處理方法將指令佇列510分類成多個群組。
時間關係圖530顯示了指令佇列510被執行時,處理器輸入輸出指令執行時間(實線部分)及資料傳輸時間(虛線部分)的關係。從時間關係圖530可看出,雖然處理器201有許多閒置時間,但閒置時間分散在各個不同的時間區段,無法進行有效的利用。
時間關係圖540則顯示了指令佇列520、指令佇列521、指令佇列522依序被執行時,處理器輸入輸出指令執行時間(實線部分)及資料傳輸時間(虛線部分)的關係。在本發明的指令處理方法中,透過CEI將指令分組,當群組中指令的CEI小於1時可將指令執行時處理器201的閒置時間整合成一個連續的區段,例如群組1的閒置時間541及群組2的閒置時間542。在閒置時間541及閒置時間542中,處理器201可用來執行其他的工作。
另一方面,以群組2為範例,當仲裁器250選擇執行群組2的指令時,就可根據群組2的CEI來降低處理器201的時脈。因為群組2的指令的CEI都小於0.25,因此在執行群組2的指令時就可以將處理器201的時脈降低為原始時脈乘上1/4,直到要執行下一個群組的指令(即,群組2的到期時間到期)之前,再將處理器201的時脈調整回原始時脈。如此一來,在執行CEI小於1的群組的指令時可以透過處理器201的降頻以達到省電效果。
綜上所述,本發明的指令處理方法及使用所述方法會將輸入輸出指令根據處理器使用指數分成多個群組。在執行一個群組的輸入輸出指令之前會先重置計時器並根據此群組的輸入輸出指令來獲得此群組的到期時間。若所執行群組的處理器使用指數小於門檻值,則可在此群足的到期時間到期之前降低處理器的時脈。藉由根據處理器使用指數對輸入輸出指令分群組,可將處理器使用率較少的指令集中在同一群組,從而集中處理器閒置時間。因此,就可利用處理器閒置時間來處理其他指令以更有效地利用處理器資源,或在上述閒置時間降低處理器的時脈以達到省電效果。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧主機系統
20‧‧‧儲存裝置
100‧‧‧主機記憶體
200‧‧‧儲存控制器
300‧‧‧動態隨機存取記憶體
201、202‧‧‧處理器
210‧‧‧指令輸入器
220‧‧‧指令排序器
230‧‧‧查找表
240_0~240_N-1‧‧‧指令佇列管理器
241_0~241_N-1‧‧‧指令佇列
250‧‧‧仲裁器
260‧‧‧計時器
270‧‧‧資料傳輸電路
280‧‧‧儲存媒體介面電路
300‧‧‧動態隨機存取記憶體
400_0~400_n‧‧‧儲存媒體
S201、S203、S205、S207‧‧‧指令處理方法的步驟
S301、S303、S305、S307、S309、S311、S313‧‧‧指令處理方法的步驟
S401、S403、S405、S407、S409、S411、S413‧‧‧指令處理方法的步驟
510、520、521、522‧‧‧指令佇列
530、540‧‧‧時間關係圖
541、542‧‧‧閒置時間
圖1為根據本發明的一實施例所繪示的主機系統及儲存裝置的方塊圖。 圖2為根據本發明的一實施例所繪示的指令處理方法的流程圖。 圖3為根據本發明的另一實施例所繪示的指令處理方法的流程圖。 圖4為根據本發明的另一實施例所繪示的指令處理方法的流程圖。 圖5A及圖5B為根據本發明的一實施例所繪示的指令處理方法的範例。
Claims (18)
- 一種指令處理方法,適用於一儲存控制器,該儲存控制器用於存取一儲存媒體並耦接至一主機系統,該指令處理方法包括:接收多個輸入輸出指令;根據該些輸入輸出指令的一處理器使用指數,將該些輸入輸出指令分類成多個群組,其中該處理器使用指數為一處理器輸入輸出指令執行時間除以對應的一資料傳輸時間;從該些群組中選擇一第一群組,重置一計時器並根據該第一群組的該些輸入輸出指令來獲得對應該第一群組的一到期時間(expiration time),並執行該第一群組的該些輸入輸出指令;以及當該第一群組的該到期時間到期時,從該些群組中選擇一第二群組並重置該計時器,其中當該第一群組的該處理器使用指數小於一門檻值時,在該到期時間到期之前降低該處理器的時脈。
- 如申請專利範圍第1項所述的指令處理方法,其中該些群組包括一第三群組,當該第三群組的該些輸入輸出指令的該處理器使用指數都小於一第一值且該第一值小於該門檻值時,該處理器在該第三群組的該到期時間到期之前將該處理器的一原始時脈降低為該原始時脈乘以該第一值。
- 如申請專利範圍第1項所述的指令處理方法,其中該儲存控制器透過一主機介面與該主機系統溝通,且該主機界面支援一亂序執行(out-of-order execution,OOE)功能。
- 如申請專利範圍第1項所述的指令處理方法,其中該門檻值為1。
- 如申請專利範圍第1項所述的指令處理方法,其中該處理器輸入輸出指令執行時間為該些輸入輸出指令的其中之一所對應的多個函式的該處理器的執行時間,該些函式直接相關於該些輸入輸出指令的該其中之一的資料傳輸。
- 如申請專利範圍第1項所述的指令處理方法,其中該資料傳輸時間為該些輸入輸出指令的其中之一的估計資料傳輸時間。
- 如申請專利範圍第1項所述的指令處理方法,其中該儲存控制器透過一查找表將該些輸入輸出指令的一傳輸方向及一大小映射到該些群組的一群組索引上,並透過一指令排序器來查找該查找表,其中該指令排序器將該些輸入輸出指令分類成該些群組。
- 如申請專利範圍第1項所述的指令處理方法,其中該儲存控制器透過一查找表將該些輸入輸出指令的一傳輸方向及一大小映射到該資料傳輸時間上,並透過每個該些群組所對應的一指令佇列管理器來查找該查找表。
- 如申請專利範圍第8項所述的指令處理方法,其中該到期時間為該第一群組的該些輸入輸出指令的該資料傳輸時間的總合,其中該資料傳輸時間從該查找表來獲得。
- 一種儲存控制器,用於存取一儲存媒體並耦接至一主機系統,該儲存控制器包括:一指令排序器;多個指令佇列管理器,耦接到該指令排序器;一仲裁器,耦接到該些指令佇列管理器;一計時器,耦接到該仲裁器;以及一處理器,耦接到該指令排序器、該些指令佇列管理器及該仲裁器的至少其中之一,其中該指令排序器從該主機系統接收多個輸入輸出指令,該指令排序器根據該些輸入輸出指令的一處理器使用指數,將該些輸入輸出指令分類成多個群組,其中該處理器使用指數為一處理器輸入輸出指令執行時間除以對應的一資料傳輸時間,該仲裁器從該些群組中選擇一第一群組,重置一計時器並根據該第一群組的該些輸入輸出指令來獲得對應該第一群組的一到期時間,並由該處理器執行該第一群組的該些輸入輸出指令,當該第一群組的該到期時間到期時,該仲裁器從該些群組中選擇一第二群組並重置該計時器,其中當該第一群組的該處理器使用指數小於一門檻值時,在該到期時間到期之前降低該處理器的時脈。
- 如申請專利範圍第10項所述的儲存控制器,其中該些群組包括一第三群組,當該第三群組的該些輸入輸出指令的該處理器使用指數都小於一第一值且該第一值小於該門檻值時,該處理器在該第三群組的該到期時間到期之前將該處理器的一原始時脈降低為該原始時脈乘以該第一值。
- 如申請專利範圍第10項所述的儲存控制器,其中該儲存控制器透過一主機介面與該主機系統溝通,且該主機界面支援一亂序執行功能。
- 如申請專利範圍第10項所述的儲存控制器,其中該門檻值為1。
- 如申請專利範圍第10項所述的儲存控制器,其中該處理器輸入輸出指令執行時間為該些輸入輸出指令的其中之一所對應的多個函式的該處理器的執行時間,該些函式直接相關於該些輸入輸出指令的該其中之一的資料傳輸。
- 如申請專利範圍第10項所述的儲存控制器,其中該資料傳輸時間為該些輸入輸出指令的其中之一的估計資料傳輸時間。
- 如申請專利範圍第10項所述的儲存控制器,其中該儲存控制器透過一查找表將該些輸入輸出指令的一傳輸方向及一大小映射到該些群組的一群組索引上,並透過一指令排序器來查找該查找表,其中該指令排序器將該些輸入輸出指令分類成該些群組。
- 如申請專利範圍第10項所述的儲存控制器,其中該儲存控制器透過一查找表將該些輸入輸出指令的一傳輸方向及一大小映射到該資料傳輸時間上,並透過每個該些群組所對應的一指令佇列管理器來查找該查找表。
- 如申請專利範圍第17項所述的儲存控制器,其中該到期時間為該第一群組的該些輸入輸出指令的該資料傳輸時間的總合,其中該資料傳輸時間從該查找表來獲得。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106140428A TWI639921B (zh) | 2017-11-22 | 2017-11-22 | 指令處理方法及使用所述方法的儲存控制器 |
US15/904,443 US10372379B2 (en) | 2017-11-22 | 2018-02-26 | Command processing method and storage controller using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106140428A TWI639921B (zh) | 2017-11-22 | 2017-11-22 | 指令處理方法及使用所述方法的儲存控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI639921B true TWI639921B (zh) | 2018-11-01 |
TW201926055A TW201926055A (zh) | 2019-07-01 |
Family
ID=65034466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106140428A TWI639921B (zh) | 2017-11-22 | 2017-11-22 | 指令處理方法及使用所述方法的儲存控制器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10372379B2 (zh) |
TW (1) | TWI639921B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200137244A (ko) * | 2019-05-29 | 2020-12-09 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
US11733918B2 (en) | 2020-07-28 | 2023-08-22 | Samsung Electronics Co., Ltd. | Systems and methods for processing commands for storage devices |
US11789634B2 (en) | 2020-07-28 | 2023-10-17 | Samsung Electronics Co., Ltd. | Systems and methods for processing copy commands |
KR20220087297A (ko) * | 2020-12-17 | 2022-06-24 | 삼성전자주식회사 | 처리 코드를 실행하는 스토리지 장치 및 이의 동작 방법 |
US11979341B2 (en) * | 2021-09-28 | 2024-05-07 | Red Hat, Inc. | Adaptive message queue timeouts for message queues related to storage systems |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7451341B2 (en) * | 2004-10-06 | 2008-11-11 | Hitachi, Ltd. | Storage system and communications path control method for storage system |
TW201224737A (en) * | 2010-09-30 | 2012-06-16 | Intel Corp | Storage drive management |
CN102741801B (zh) * | 2010-04-14 | 2015-03-25 | 株式会社日立制作所 | 存储控制装置和存储控制装置的控制方法 |
TW201516687A (zh) * | 2013-08-05 | 2015-05-01 | Lsi Corp | 多協定之儲存控制器 |
TW201518931A (zh) * | 2013-09-24 | 2015-05-16 | Toshiba Kk | 資訊處理裝置及半導體裝置 |
US20160162187A1 (en) * | 2013-04-17 | 2016-06-09 | The-Aio Co., Ltd. | Storage System And Method For Processing Writing Data Of Storage System |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4914657A (en) * | 1987-04-15 | 1990-04-03 | Allied-Signal Inc. | Operations controller for a fault tolerant multiple node processing system |
JPH1097385A (ja) * | 1996-09-19 | 1998-04-14 | Toshiba Corp | ディスク記録再生装置及び同装置に適用するインターフェース制御装置 |
JPH10307751A (ja) * | 1997-05-09 | 1998-11-17 | Hitachi Ltd | 並列計算機におけるポインタ制御によるデータ転送装置 |
US7406098B2 (en) * | 1999-01-13 | 2008-07-29 | Qualcomm Incorporated | Resource allocation in a communication system supporting application flows having quality of service requirements |
US6229795B1 (en) * | 1999-01-13 | 2001-05-08 | Qualcomm Incorporated | System for allocating resources in a communication system |
JP2005309653A (ja) * | 2004-04-20 | 2005-11-04 | Hitachi Global Storage Technologies Netherlands Bv | ディスク装置及びキャッシュ制御方法 |
JP2010224643A (ja) * | 2009-03-19 | 2010-10-07 | Toshiba Storage Device Corp | 磁気記憶装置、磁気記憶装置の処理条件設定方法および磁気記憶装置の処理条件設定プログラム |
JP4905597B1 (ja) * | 2011-03-15 | 2012-03-28 | オムロン株式会社 | コントローラサポート装置、その装置において実行されるためのコントローラサポートプログラム、およびそのプログラムを格納する記録媒体 |
US8385354B2 (en) * | 2011-07-18 | 2013-02-26 | Telefonaktiebolaget L M Ericsson (Publ) | Scalable hardware mechanism to implement time outs for pending POP requests to blocking work queues |
US8782454B2 (en) * | 2011-10-28 | 2014-07-15 | Apple Inc. | System and method for managing clock speed based on task urgency |
US9176716B2 (en) * | 2013-04-18 | 2015-11-03 | Siemens Aktiengesellschaft | Method and apparatus for exploiting data locality in dynamic task scheduling |
US9645744B2 (en) * | 2014-07-22 | 2017-05-09 | Sandisk Technologies Llc | Suspending and resuming non-volatile memory operations |
-
2017
- 2017-11-22 TW TW106140428A patent/TWI639921B/zh active
-
2018
- 2018-02-26 US US15/904,443 patent/US10372379B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7451341B2 (en) * | 2004-10-06 | 2008-11-11 | Hitachi, Ltd. | Storage system and communications path control method for storage system |
CN102741801B (zh) * | 2010-04-14 | 2015-03-25 | 株式会社日立制作所 | 存储控制装置和存储控制装置的控制方法 |
TW201224737A (en) * | 2010-09-30 | 2012-06-16 | Intel Corp | Storage drive management |
US20160162187A1 (en) * | 2013-04-17 | 2016-06-09 | The-Aio Co., Ltd. | Storage System And Method For Processing Writing Data Of Storage System |
TW201516687A (zh) * | 2013-08-05 | 2015-05-01 | Lsi Corp | 多協定之儲存控制器 |
TW201518931A (zh) * | 2013-09-24 | 2015-05-16 | Toshiba Kk | 資訊處理裝置及半導體裝置 |
Also Published As
Publication number | Publication date |
---|---|
TW201926055A (zh) | 2019-07-01 |
US10372379B2 (en) | 2019-08-06 |
US20190155541A1 (en) | 2019-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI639921B (zh) | 指令處理方法及使用所述方法的儲存控制器 | |
US10496281B2 (en) | Data storage device, data processing system and method of operation | |
CN112204524B (zh) | 用于硬件加速的硬件资源的嵌入式调度 | |
KR100909119B1 (ko) | 집적 dma 엔진을 사용하는 고성능 휘발성 디스크드라이브 메모리 액세스 장치 및 방법 | |
KR20160049200A (ko) | 데이터 저장 장치의 작동 방법, 이를 포함하는 모바일 컴퓨팅 장치, 및 이의 작동 방법 | |
US10229050B2 (en) | Method for operating storage controller and method for operating storage device including the same wherein garbage collection is performed responsive to free block unavailable during reuse | |
US20130007488A1 (en) | Power management of a storage device including multiple processing cores | |
US9535607B2 (en) | Semiconductor system performing status read for semiconductor device and operating method thereof | |
US9881680B2 (en) | Multi-host power controller (MHPC) of a flash-memory-based storage device | |
US20170068480A1 (en) | Power Saving Methodology for Storage Device Equipped with Task Queues | |
US20170031632A1 (en) | Data storage device, method of operating the same, and data processing system including the same | |
TWI685744B (zh) | 指令處理方法及使用所述方法的儲存控制器 | |
US20160321102A1 (en) | Application processor and system on chip | |
KR20160112529A (ko) | 메모리 컨트롤러의 작동 방법, 이를 포함하는 데이터 저장 장치, 및 이를 포함하는 데이터 처리 시스템 | |
WO2017112318A1 (en) | Techniques to achieve ordering among storage device transactions | |
JP7470685B2 (ja) | 集積回路中の算出ユニットをプログラムおよび制御すること | |
US11210130B2 (en) | Adaptive write acknowledgment for storage devices | |
TWI474254B (zh) | 用於在一記憶體系統中執行命令的方法與裝置及資料儲存系統 | |
US20170177219A1 (en) | Method of operating storage device using serial interface and method of operating data processing system including the same | |
CN109857331B (zh) | 指令处理方法及使用所述方法的储存控制器 | |
CN110908717B (zh) | 指令处理方法及使用所述方法的存储控制器 | |
CN109144907B (zh) | 实现快速读取的方法及介质接口控制器 | |
US20180157540A1 (en) | Control device and control method |