TWI656445B - 快閃記憶體的命令排程及執行方法以及使用該方法的裝置 - Google Patents

快閃記憶體的命令排程及執行方法以及使用該方法的裝置 Download PDF

Info

Publication number
TWI656445B
TWI656445B TW106117575A TW106117575A TWI656445B TW I656445 B TWI656445 B TW I656445B TW 106117575 A TW106117575 A TW 106117575A TW 106117575 A TW106117575 A TW 106117575A TW I656445 B TWI656445 B TW I656445B
Authority
TW
Taiwan
Prior art keywords
command
highest priority
register
queue
priority
Prior art date
Application number
TW106117575A
Other languages
English (en)
Other versions
TW201901454A (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 慧榮科技股份有限公司
Priority to TW106117575A priority Critical patent/TWI656445B/zh
Priority to US15/863,531 priority patent/US10275181B2/en
Priority to CN201810040402.2A priority patent/CN108932108B/zh
Publication of TW201901454A publication Critical patent/TW201901454A/zh
Application granted granted Critical
Publication of TWI656445B publication Critical patent/TWI656445B/zh

Links

Classifications

    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • 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/061Improving I/O performance
    • 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]

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)
  • Memory System (AREA)
  • Read Only Memory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本發明的實施例提出一種快閃記憶體的命令排程及執行方法,由處理單元執行,包含以下步驟:讀取命令輪廓空間中儲存的資訊,據以判斷命令佇列中是否存在優先級命令;當命令佇列中存在優先級命令時,從命令佇列推出優先級命令並執行;以及當命令佇列中不存在優先級命令時,使用排程演算法從命令佇列選擇簡單讀寫命令並執行。

Description

快閃記憶體的命令排程及執行方法以及使用該方法的裝置
本發明關連於一種快閃記憶體裝置,特別是一種快閃記憶體的命令排程及執行方法以及使用該方法的裝置。
快閃記憶體裝置通常分為NOR快閃裝置與NAND快閃裝置。NOR快閃裝置為隨機存取裝置,而可於位址腳位上提供任何的位址,用以存取NOR快閃裝置的主裝置(host),並及時地由NOR快閃裝置的資料腳位上獲得儲存於該位址上的資料。相反地,NAND快閃裝置並非隨機存取,而是序列存取。NAND快閃裝置無法像NOR快閃裝置一樣,可以存取任何隨機位址,主裝置反而需要寫入序列的位元組(bytes)的值到NAND快閃裝置中,用以定義請求命令(command)的類型(如,讀取、寫入、抹除等),以及用在此命令上的位址。位址可指向一個頁面(在快閃記憶體中的一個寫入作業的最小資料塊)或一個區塊(在快閃記憶體中的一個抹除作業的最小資料塊)。實際上,NAND快閃裝置通常從記憶體單元(memory cells)上讀取或寫入完整的數頁資料。當一整頁的資料從陣列讀取到裝置中的緩存器(buffer)後,藉由使用提取訊號(strobe signal)順序地敲出(clock out)內容,讓主單元可逐位元組或字元組(words)存取資 料。
主裝置發送的所有令會依到達的先後順序儲存於佇列中,而這些命令具有優先級的區別。傳統上,處理單元會掃描佇列中的命令並依據命令的優先級進行排程並執行。然而,掃描佇列中的命令會耗費大量的時間。因此,本發明提出一種快閃記憶體的命令排程及執行方法以及使用該方法的裝置,用以克服上述缺陷。
本發明的實施例提出一種快閃記憶體的命令排程及執行方法,由處理單元執行,包含以下步驟:讀取命令輪廓空間中儲存的資訊,據以判斷命令佇列中是否存在優先級命令;當命令佇列中存在優先級命令時,從命令佇列推出優先級命令並執行;以及當命令佇列中不存在優先級命令時,使用排程演算法從命令佇列選擇簡單讀寫命令並執行。
本發明的實施例提出一種快閃記憶體的命令排程及執行裝置,至少包含命令佇列、命令輪廓空間及命令輪廓產生器。命令輪廓產生器耦接於命令輪廓空間及命令佇列,監看存取介面寫入命令佇列的所有命令,並且依據命令的屬性資訊更新命令輪廓空間中儲存的資訊,使得處理單元可依據命令輪廓空間中儲存的資訊判斷命令佇列中是否存在優先級命令。
10‧‧‧系統
110‧‧‧處理單元
120‧‧‧命令輪廓產生器
130‧‧‧命令佇列
140‧‧‧命令輪廓空間
141‧‧‧最高優先級寄存器
143‧‧‧次高優先級寄存器
145‧‧‧簡單讀寫寄存器
150‧‧‧存取介面
160‧‧‧主裝置
170‧‧‧存取介面
170_0~170_j‧‧‧存取子介面
180‧‧‧儲存單元
180_0_0、...、180_j_i‧‧‧儲存子單元
320_0_0、...、320_0_i‧‧‧晶片致能控制訊號
410‧‧‧控制器
431、433‧‧‧比較器
LUN、LUN0、LUN1、…、LUNn-1‧‧‧邏輯單元號碼
HoQ‧‧‧佇列頂旗標
S511~S553‧‧‧方法步驟
第1圖係依據本發明實施例之快閃記憶體的系統架構示意圖。
第2圖係依據本發明實施例之存取介面與儲存單元的方塊圖。
第3圖係依據本發明實施例之一個存取子介面與多個儲存子單元的連接示意圖。
第4圖係依據本發明實施例之命令輪廓產生器及命令輪廓空間的方塊圖。
第5圖係依據本發明實施例的快閃記憶體的命令排程及執行方法流程圖。
以下說明係為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。
必須了解的是,使用於本說明書中的”包含”、”包括”等詞,係用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。
於權利要求中使用如”第一”、"第二"、"第三"等詞係用來修飾權利要求中的元件,並非用來表示之間具有優先權順序,先行關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。
第1圖係依據本發明實施例之快閃記憶體的系統架構示意圖。快閃記憶體的系統架構10中包含處理單元110, 用以寫入資料到儲存單元180中的指定位址,以及從儲存單元180中的指定位址讀取資料。詳細來說,處理單元110透過存取介面170寫入資料到儲存單元180中的指定位址,以及從儲存單元180中的指定位址讀取資料。處理單元110可使用多種方式實施,例如以專用硬體電路或通用硬體(例如,單一處理器、具平行處理能力的多處理器或其他具運算能力的處理器),並且於載入及執行特定指令或軟體時實施如下所述的功能。處理單元110可包含運算邏輯單元(ALU,Arithmetic and Logic Unit)以及位移器(bit shifter)。運算邏輯單元負責執行布林運算(如AND、OR、NOT、NAND、NOR、XOR、XNOR等),而位移器負責位移運算及位元旋轉。系統架構10使用數個電子訊號來協調處理單元110與儲存單元180間的資料與命令傳遞,包含資料線(data line)、時脈訊號(clock signal)與控制訊號(control signal)。資料線可用以傳遞命令、位址、讀出及寫入的資料;控制訊號線可用以傳遞晶片致能(chip enable,CE)、位址提取致能(address latch enable,ALE)、命令提取致能(command latch enable,CLE)、寫入致能(write enable,WE)等控制訊號。存取介面170可採用雙倍資料率(double data rate,DDR)通訊協定與儲存單元180溝通,例如,開放NAND快閃(open NAND flash interface,ONFI)、雙倍資料率開關(DDR toggle)或其他介面。處理單元110另可使用存取介面150透過指定通訊協定與主裝置160進行溝通,例如,通用序列匯流排(universal serial bus,USB)、先進技術附著(advanced technology attachment,ATA)、序列先進技術附著(serial advanced technology attachment, SATA)、快速周邊元件互聯(peripheral component interconnect express,PCI-E)或其他介面。
儲存單元180可包含多個儲存子單元,每一個儲存子單元實施於一個晶粒(die)上,各自使用關聯的存取子介面與處理單元110進行溝通。第2圖係依據本發明實施例之存取介面與儲存單元的方塊圖。快閃記憶體10可包含j+1個存取子介面170_0至170_j,存取子介面又可稱為通道(channel),每一個存取子介面連接i+1個儲存子單元。換句話說,i+1個儲存子單元共享一個存取子介面。例如,當快閃記憶體10包含4個通道(j=3)且每一個通道連接4個儲存單元(i=3)時,快閃記憶體10一共擁有16個儲存單元180_0_0至180_j_i。處理單元110可驅動存取子介面170_0至170_j中之一者,寫入資料至指定的儲存子單元或從指定的儲存子單元讀取資料。每個儲存子單元擁有獨立的晶片致能(CE,Chip Enable)控制訊號。換句話說,當欲對指定的儲存子單元進行資料寫入或讀取時,需要驅動關聯的存取子介面致能此儲存子單元的晶片致能控制訊號。第3圖係依據本發明實施例之一個存取子介面與多個儲存子單元的連接示意圖。處理單元110可透過存取子介面170_0使用獨立的晶片致能控制訊號320_0_0至320_0_i來從連接的儲存子單元180_0_0至180_0_i中選擇出其中一者,接著,透過共享的資料線310_0寫入資料至選擇出的儲存子單元的指定位置。
存取介面150將每一個從主裝置160接收的命令依據到達的先後順序儲存至命令佇列130。每個命令包含操作碼(opcode)及屬性(attribute)等資訊。操作碼用以定義命令的類 型,如讀取、寫入、抹除等。屬性可包含欲讀取或寫入資料的邏輯單元號碼(LUN,Logical Unit Number)以及各式各樣的旗標(flags),使得處理單元110可藉由屬性資訊來區分命令的優先級。為了讓處理單元110能有效率地判斷命令佇列130中是否存在高優先級以及/或高優先級的命令待處理,本發明實施例於快閃記憶體10中設置命令輪廓產生器(command profile generator)120及命令輪廓空間(command profile space)140。命令輪廓空間140包含多個寄存器,每個寄存器儲存命令佇列130中特定優先級類型的命令數量。例如,命令的優先級類型由高至低可分為最高優先級(highest priority)、次高優先級(2nd priority)及簡單讀寫(simple read/write)。命令輪廓空間140包含三個寄存器,分別儲存佇列130中最高優先級(highest-priority)、次高優先級(2nd-priority)及簡單讀寫的命令數量。命令輪廓產生器120監看存取介面150寫入命令佇列130的所有命令,並且依據命令中的屬性資訊更新三個寄存器的值。例如,當命令中包含特定的邏輯單元號碼時,代表此命令為一個最高優先級的讀取或寫入命令。於此須注意的是,邏輯單元號碼關聯儲存單元180中特定的實體區塊,而一些邏輯單元號碼的實體區塊可能被設置來儲存敏感或重要資料。當命令輪廓產生器120偵測到任何命令的屬性值中包含特定的邏輯單元號碼時,將最高優先級寄存器的值加一。此外,命令中可能包含一個佇列頂旗標(Head-of-Queue flag),用以表示除了最高優先級的命令外,此命令的執行是否需優先於命令佇列130中的其他命令。舉例來說,佇列頂旗標為邏輯”1”表示此命令的 執行需優先於命令佇列130中的其他命令(除了最高優先級的命令以外)。當命令輪廓產生器120偵測到任何命令的屬性值中的佇列頂旗標為邏輯”1”時,將次高優先級寄存器的值加一。如上所述之特定的邏輯單元號碼可稱為最高優先級的資訊,佇列頂旗標可稱為次高優先級的資訊,而特定的邏輯單元號碼及佇列頂旗標可統稱為優先級的資訊。處理單元110於每次執行完一個命令後,讀取最高優先級寄存器的值以判斷命令佇列130中是否存在最高優先級的命令。如果最高優先級寄存器的值大於0,則從命令佇列130中推出(de-queue)最高優先級的命令並執行。如果命令佇列130中不存在最高優先級的命令,讀取次高優先級寄存器的值以判斷命令佇列130中是否存在次高優先級的命令。如果次高優先級寄存器的值大於0,則從命令佇列130中推出次高優先級的命令並執行。如果命令佇列130中不存在次高優先級的命令,則以習知的演算法排程命令佇列130中的其他命令並執行。雖然本發明實施例將優先權類型分為三個等級,但是熟習此技藝人士可將命令佇列130中的命令區分出更多或更少的等級,本發明並不因此受限。
第4圖係依據本發明實施例之命令輪廓產生器120及命令輪廓空間140的方塊圖。輪廓空間140包含最高優先級寄存器141、次高優先級寄存器143及簡單讀寫寄存器145。最高優先級寄存器141、次高優先級寄存器143及簡單讀寫寄存器145於系統初始時設為0。命令輪廓產生器120包含控制器410及二個比較器431及433。比較器431取得每個命令中特定位元的值作為命令的邏輯單元號碼LUN,並且判斷邏輯單元號碼LUN 是否符合預設的邏輯單元號碼LUN0至LUNn-1中之一者。於一些實施例中,預設的邏輯單元號碼LUN0至LUNn-1可儲存至唯讀記憶體(ROM,Read Only Memory,未顯示於第1圖)或靜態隨機存取記憶體(SRAM,Static Random Access Memory,未顯示於第1圖)。於一些實施例中,預設的邏輯單元號碼LUN0至LUNn-1可儲存於儲存單元180,並且於系統開機後,處理單元110驅動存取介面170從儲存單元180讀取邏輯單元號碼LUN0至LUNn-1並儲存至動態隨機存取記憶體(DRAM,Dynamic Random Access Memory)。當比較器431發現邏輯單元號碼LUN符合預設的邏輯單元號碼LUN0至LUNn-1中之一者時,輸出邏輯”1”給控制器410;否則,輸出邏輯”0”給控制器410。比較器433取得每個命令中的特定位元作為命令的佇列頂旗標(Head-of-Queue Flag)HoQ,並且判斷佇列頂旗標是否為邏輯”1”。當比較器433發現佇列頂旗標為邏輯”1”時,輸出邏輯”1”給控制器410;否則,輸出邏輯”0”給控制器410。控制器410依據比較器431及433的輸出,將最高優先級寄存器141、次高優先級寄存器143及簡單讀寫寄存器145中之一者的值加一。詳細來說,當控制器410發現比較器431輸出邏輯”1”時,將最高優先級寄存器141的值加一。當控制器410發現比較器433輸出邏輯”1”時,將次高優先級寄存器143的值加一。當控制器410發現比較器431及433皆輸出邏輯”0”時,將簡單讀寫寄存器145的值加一。於一些實施例中,熟習此技藝人士可省略輪廓空間140中的簡單讀寫寄存器145,用以降低硬體成本。
第5圖係依據本發明實施例的快閃記憶體的命令 排程及執行方法流程圖。處理單元110載入並執行特定微碼或韌體指令時實施此方法,用以依據輪廓空間140中儲存的資訊排程及執行命令佇列130中的命令。總的來說,處理單元110每次執行完命令佇列130中的一個命令後讀取輪廓空間140中儲存的資訊,據以判斷命令佇列130中是否存在優先級的命令(例如,如上所述的最高優先級的命令、次高優先級的命令等)。如果存在優先級的命令,則從命令佇列130推出優先級的命令並執行。優先級可分為一或多級。當較高優先級的命令存在時,處理單元110必須先執行較高優先級的命令。雖然實施例描述將優先級分為二級,但是熟習此技藝人士可修改為使用更多或更少級的優先級,本發明並不因此侷限。如果不存在優先級的命令,則使用預先設定的排程演算法從命令佇列130選擇簡單讀寫命令並執行。舉例來說,排程演算法可從命令佇列130挑選最早進入的命令、於特定計時器逾時前挑選與上次執行命令相同類型的命令(讀取或寫入)、挑選與上次執行命令相反類型的命令(也就是循環排程round-robin)、挑選與上次執行命令形成連續讀取或寫入的命令,或以任何習知條件挑選命令佇列130中的命令。相較於傳統掃描命令佇列130中的命令來判斷是否存在優先級的命令,本發明實施例中的處理單元110讀取輪廓空間140中儲存的資訊來判斷是否存在優先級的命令,則更具效率。也就是說,處理單元110不掃描命令佇列130中的命令來判斷是否存在優先級的命令,用以提升命令排程的效率。
詳細來說,於每一回合中,處理單元110讀取最高優先級寄存器141的值(步驟S511)並判斷是否大於0(步驟 S513)。當最高優先級寄存器141的值大於0時(步驟S513中”是”的路徑),從命令佇列推出最高優先級的命令並執行(步驟S515)及將最高優先級寄存器141的值減1(步驟S517)。於步驟S515,於最高優先級的命令之前的其他命令(例如,次高優先級的命令或簡單讀寫命令)可依然保存於命令佇列130或移出命令佇列130並暫存於靜態隨機存取記憶體(未顯示於第1圖)。當最高優先級寄存器141的值不大於0時(步驟S513中”否”的路徑),處理單元110讀取次高優先級寄存器143的值(步驟S531)並判斷是否大於0(步驟S533)。當次高優先級寄存器143的值大於0時(步驟S533中”是”的路徑),從命令佇列推出次高優先級的命令並執行(步驟S535)及將次高優先級寄存器143的值減1(步驟S537)。於步驟S535,於最高優先級的命令之前的其他命令(例如,簡單讀寫命令)可依然保存於命令佇列130或移出命令佇列130並暫存於靜態隨機存取記憶體(未顯示於第1圖)。當次高優先級寄存器143的值不大於0時(步驟S533中”否”的路徑),使用預先設定的排程演算法從命令佇列130選擇一個簡單讀寫命令並執行(步驟S551)及將簡單讀寫寄存器145的值減1(步驟S553)。
雖然第1至4圖中包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,已達成更佳的技術效果。此外,雖然第5圖的處理步驟採用特定的順序來執行,但是在不違反發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順序,所以,本發明並不侷限於僅使用如上所述的順序。
雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請權利要求範圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。

Claims (18)

  1. 一種快閃記憶體的命令排程及執行方法,由一處理單元執行,包含:讀取與一命令佇列有關之一命令輪廓空間中儲存的資訊,據以判斷上述命令佇列中是否存在一優先級命令;當上述命令佇列中存在上述優先級命令時,從上述命令佇列推出上述優先級命令並執行;以及當上述命令佇列中不存在上述優先級命令時,使用一排程演算法從上述命令佇列選擇一簡單讀寫命令並執行。
  2. 如申請專利範圍第1項所述的快閃記憶體的命令排程及執行方法,其中,一主裝置發送上述優先級命令及上述簡單讀寫命令。
  3. 如申請專利範圍第2項所述的快閃記憶體的命令排程及執行方法,其中,一命令輪廓產生器監看一存取介面寫入上述命令佇列的所有命令,並且依據上述命令的屬性資訊更新上述命令輪廓空間中儲存的資訊。
  4. 如申請專利範圍第3項所述的快閃記憶體的命令排程及執行方法,其中,上述命令輪廓空間包含一寄存器,以及,每當上述命令輪廓產生器從上述命令中之一者的屬性資訊發現含有一優先級的資訊時,將上述寄存器的值加1。
  5. 如申請專利範圍第4項所述的快閃記憶體的命令排程及執行方法,其中,於讀取一命令輪廓空間中儲存的資訊,據以判斷上述命令佇列中是否存在一優先級命令的步驟中,包含:讀取上述寄存器的值,並判斷上述寄存器的值是否 大於0;其中,於當上述命令佇列中存在上述優先級命令時,從上述命令佇列推出上述優先級命令並執行的步驟中,包含:當上述寄存器的值大於0時,從上述命令佇列推出上述優先級命令並執行;其中,於當上述命令佇列中不存在上述優先級命令時,使用一排程演算法從上述命令佇列選擇一簡單讀寫命令並執行的步驟中,包含:當上述寄存器的值不大於0時,使用上述排程演算法從上述命令佇列選擇上述簡單讀寫命令並執行。
  6. 如申請專利範圍第1項所述的快閃記憶體的命令排程及執行方法,其中,於讀取一命令輪廓空間中儲存的資訊,據以判斷上述命令佇列中是否存在一優先級命令的步驟中,包含:讀取上述命令輪廓空間中儲存的資訊,據以判斷上述命令佇列中是否存在一最高優先級命令;以及當不存在上述最高優先及命令時,根據上述命令輪廓空間中儲存的資訊判斷上述命令佇列中是否存在一次高優先級命令;其中,於當上述命令佇列中存在上述優先級命令時,從上述命令佇列推出上述優先級命令並執行的步驟中,包含:當上述命令佇列中存在上述最高優先級命令時,從上述命令佇列推出上述最高優先級命令並執行;以及 當上述命令佇列中存在上述次高優先級命令時,從上述命令佇列推出上述次高優先級命令並執行;其中,於當上述命令佇列中不存在上述優先級命令時,使用一排程演算法從上述命令佇列選擇一簡單讀寫命令並執行的步驟中,包含:當上述命令佇列中不存在上述最高優先級命令及上述次高優先級命令時,使用上述排程演算法從上述命令佇列選擇上述簡單讀寫命令並執行。
  7. 如申請專利範圍第6項所述的快閃記憶體的命令排程及執行方法,其中,一命令輪廓產生器監看一存取介面寫入上述命令佇列的所有命令,並且依據上述命令的屬性資訊更新上述命令輪廓空間中儲存的資訊;其中,上述命令輪廓空間包含一最高優先級寄存器及一次高優先級寄存器;其中,每當上述命令輪廓產生器從上述命令中之一者的屬性資訊發現含有一最高優先級的資訊時,將上述最高優先級寄存器的值加1,以及其中,每當上述命令輪廓產生器從上述命令中之一者的屬性資訊發現含有一次高優先級的資訊時,將上述次高優先級寄存器的值加1。
  8. 如申請專利範圍第7項所述的快閃記憶體的命令排程及執行方法,其中,上述最高優先級的資訊為特定的邏輯單元號碼,以及上述次高優先級的資訊為一佇列頂旗標包含邏輯”1”。
  9. 如申請專利範圍第7項所述的快閃記憶體的命令排程及執行方法,其中,於讀取上述命令輪廓空間中儲存的資訊,據以判斷上述命令佇列中是否存在一最高優先級命令的步驟中,包含:讀取上述最高優先級寄存器的值,並判斷上述最高優先級寄存器的值是否大於0;其中,於當不存在上述最高優先及命令時,根據上述命令輪廓空間中儲存的資訊判斷上述命令佇列中是否存在一次高優先級命令的步驟中,包含:當上述最高優先級寄存器的值是否不大於0時,讀取上述次高優先級寄存器的值,並判斷上述次高優先級寄存器的值是否大於0。
  10. 一種快閃記憶體的命令排程及執行裝置,包含:一命令佇列;一命令輪廓空間;以及一命令輪廓產生器,耦接於上述命令輪廓空間及上述命令佇列,監看一存取介面寫入上述命令佇列的所有命令,並且依據上述命令的屬性資訊更新上述命令輪廓空間中儲存的資訊,使得一處理單元可依據上述命令輪廓空間中儲存的資訊判斷上述命令佇列中是否存在一優先級命令。
  11. 如申請專利範圍第10項所述的快閃記憶體的命令排程及執行裝置,其中,上述處理單元不掃描上述命令佇列中的命令來判斷上述命令佇列中是否存在上述優先級命令。
  12. 如申請專利範圍第10項所述的快閃記憶體的命令排程及執行裝置,其中,一主裝置發送上述命令給上述存取介面,用以存取一儲存單元中的資料。
  13. 如申請專利範圍第10項所述的快閃記憶體的命令排程及執行裝置,其中,上述命令輪廓空間包含一寄存器,以及,每當上述命令輪廓產生器從上述命令中之一者的屬性資訊發現含有一優先級的資訊時,將上述寄存器的值加1。
  14. 如申請專利範圍第13項所述的快閃記憶體的命令排程及執行裝置,包含:一處理單元,耦接於上述命令輪廓空間及上述命令佇列,讀取上述寄存器的值,並判斷上述寄存器的值是否大於0;當上述寄存器的值大於0時,從上述命令佇列推出一優先級命令並執行;當上述寄存器的值不大於0時,使用一排程演算法從上述命令佇列選擇一簡單讀寫命令並執行。
  15. 如申請專利範圍第10項所述的快閃記憶體的命令排程及執行裝置,其中,上述命令輪廓空間包含一最高優先級寄存器及一次高優先級寄存器,以及,每當上述命令輪廓產生器從上述命令中之一者的屬性資訊發現含有一最高優先級的資訊時,將上述最高優先級寄存器的值加1;及每當上述命令輪廓產生器從上述命令中之一者的屬性資訊發現含有一次高優先級的資訊時,將上述次高優先級寄存器的值加1。
  16. 如申請專利範圍第15項所述的快閃記憶體的命令排程及執行裝置,其中,上述最高優先級的資訊為特定的邏輯單元號碼,以及上述次高優先級的資訊為一佇列頂旗標包含邏輯”1”。
  17. 如申請專利範圍第15項所述的快閃記憶體的命令排程及執 行裝置,其中,上述命令輪廓產生器,包含:一第一比較器,取得每一上述命令中的一第一邏輯單元號碼;判斷上述第一邏輯單元號碼是否符合一第二邏輯單元號碼;以及當上述第一邏輯單元號碼是否符合上述第二邏輯單元號碼時,輸出邏輯”1”,否則,輸出邏輯”0”;一第二比較器,取得每一上述命令中的一佇列頂旗標;判斷上述佇列頂旗標是否為邏輯”1”;以及當上述佇列頂旗標為邏輯”1”時,輸出邏輯”1”;否則,輸出邏輯”0”;以及一控制器,耦接於上述第一比較器、上述第二比較器、上述最高優先級寄存器及上述次高優先級寄存器,當上述第一比較器的輸出為邏輯”1”時,將上述最高優先級寄存器的值加1;以及當上述第二比較器的輸出為邏輯”1”時,將上述次高優先級寄存器的值加1。
  18. 如申請專利範圍第16項所述的快閃記憶體的命令排程及執行裝置,包含:一處理單元,耦接於上述命令輪廓空間及上述命令佇列,讀取上述最高優先級寄存器的值,並判斷上述最高優先級寄存器的值是否大於0;當上述最高優先級寄存器的值大於0時,從上述命令佇列推出一最高優先級命令並執行;當上述最高優先級寄存器的值不大於0時,讀取上述次高優先級寄存器的值,並判斷上述次高優先級寄存器的值是否大於0;當上述次高優先級寄存器的值大於0時,從上述命令佇列推出一次高優先級命令並執行;以及當上述次高優先級 寄存器的值不大於0時,使用一排程演算法從上述命令佇列選擇一簡單讀寫命令並執行。
TW106117575A 2017-05-26 2017-05-26 快閃記憶體的命令排程及執行方法以及使用該方法的裝置 TWI656445B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW106117575A TWI656445B (zh) 2017-05-26 2017-05-26 快閃記憶體的命令排程及執行方法以及使用該方法的裝置
US15/863,531 US10275181B2 (en) 2017-05-26 2018-01-05 Methods for scheduling and executing commands in a flash memory and apparatuses using the same
CN201810040402.2A CN108932108B (zh) 2017-05-26 2018-01-16 快闪存储器的命令排程及执行方法以及使用该方法的装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW106117575A TWI656445B (zh) 2017-05-26 2017-05-26 快閃記憶體的命令排程及執行方法以及使用該方法的裝置

Publications (2)

Publication Number Publication Date
TW201901454A TW201901454A (zh) 2019-01-01
TWI656445B true TWI656445B (zh) 2019-04-11

Family

ID=64401197

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106117575A TWI656445B (zh) 2017-05-26 2017-05-26 快閃記憶體的命令排程及執行方法以及使用該方法的裝置

Country Status (3)

Country Link
US (1) US10275181B2 (zh)
CN (1) CN108932108B (zh)
TW (1) TWI656445B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI805505B (zh) * 2022-10-11 2023-06-11 慧榮科技股份有限公司 排程和執行主機資料更新命令的方法及電腦程式產品及裝置
TWI818762B (zh) * 2022-10-11 2023-10-11 慧榮科技股份有限公司 排程和執行主機資料更新命令的方法及電腦程式產品及裝置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110851073B (zh) * 2018-08-20 2023-06-02 慧荣科技股份有限公司 储存装置及巨集指令的执行方法
TW202141290A (zh) 2020-01-07 2021-11-01 韓商愛思開海力士有限公司 記憶體中處理(pim)系統和pim系統的操作方法
US11720354B2 (en) 2020-01-07 2023-08-08 SK Hynix Inc. Processing-in-memory (PIM) system and operating methods of the PIM system
EP3926452A1 (en) * 2020-06-19 2021-12-22 NXP USA, Inc. Norflash sharing
TWI830608B (zh) * 2023-02-22 2024-01-21 神雲科技股份有限公司 通用介面系統及其控制方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100082879A1 (en) * 2008-09-26 2010-04-01 Mckean Brian D Priority command queues for low latency solid state drives
US8037234B2 (en) * 2003-12-02 2011-10-11 Super Talent Electronics, Inc. Command queuing smart storage transfer manager for striping data to raw-NAND flash modules

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW327690B (en) * 1996-12-06 1998-03-01 Philips Eloctronics N V Multi-layer capacitor
US6182177B1 (en) * 1997-06-13 2001-01-30 Intel Corporation Method and apparatus for maintaining one or more queues of elements such as commands using one or more token queues
US6092158A (en) * 1997-06-13 2000-07-18 Intel Corporation Method and apparatus for arbitrating between command streams
WO2010038739A1 (ja) * 2008-09-30 2010-04-08 Hoya株式会社 累進屈折力レンズとその設計方法及び累進屈折力レンズの評価方法
US8296480B2 (en) * 2009-11-30 2012-10-23 Lsi Corporation Context execution in a media controller architecture
CN103870206A (zh) * 2012-12-13 2014-06-18 华为技术有限公司 一种缓存数据接收和读取方法及装置、及路由器缓存装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8037234B2 (en) * 2003-12-02 2011-10-11 Super Talent Electronics, Inc. Command queuing smart storage transfer manager for striping data to raw-NAND flash modules
US20100082879A1 (en) * 2008-09-26 2010-04-01 Mckean Brian D Priority command queues for low latency solid state drives

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI805505B (zh) * 2022-10-11 2023-06-11 慧榮科技股份有限公司 排程和執行主機資料更新命令的方法及電腦程式產品及裝置
TWI818762B (zh) * 2022-10-11 2023-10-11 慧榮科技股份有限公司 排程和執行主機資料更新命令的方法及電腦程式產品及裝置

Also Published As

Publication number Publication date
CN108932108B (zh) 2021-07-06
CN108932108A (zh) 2018-12-04
US20180341430A1 (en) 2018-11-29
US10275181B2 (en) 2019-04-30
TW201901454A (zh) 2019-01-01

Similar Documents

Publication Publication Date Title
TWI656445B (zh) 快閃記憶體的命令排程及執行方法以及使用該方法的裝置
US10761772B2 (en) Memory system including a plurality of chips and a selectively-connecting bus
JP4748610B2 (ja) 取り出されたデータをメモリに直接に書き込むストレージコントローラによるバッファスペースの最適な使用
US20120159016A1 (en) Memory system and data transfer method
US20120166685A1 (en) Selectively enabling a host transfer interrupt
CN109815172B (zh) 设备控制器以及包括其的储存设备
TWI512609B (zh) 讀取命令排程方法以及使用該方法的裝置
US20150253992A1 (en) Memory system and control method
WO2018040038A1 (zh) 一种闪存介质的访问方法及控制器
TWI639921B (zh) 指令處理方法及使用所述方法的儲存控制器
CN107870866B (zh) Io命令调度方法与nvm接口控制器
US20220350655A1 (en) Controller and memory system having the same
TWI588652B (zh) 讀取及寫入命令排程方法以及使用該方法的裝置
TWI592866B (zh) 固態硬碟系統的原子寫入方法以及使用該方法的裝置
CN107870779B (zh) 调度方法与装置
TWI471731B (zh) 記憶體存取方法、記憶體存取控制方法、spi快閃記憶體裝置以及spi控制器
TWI474254B (zh) 用於在一記憶體系統中執行命令的方法與裝置及資料儲存系統
US10459847B1 (en) Non-volatile memory device application programming interface
US10268388B2 (en) Access control method, storage device, and system
TWI613656B (zh) 固態硬碟系統的優先寫入方法以及使用該方法的裝置
US20150212759A1 (en) Storage device with multiple processing units and data processing method
US8462561B2 (en) System and method for interfacing burst mode devices and page mode devices
TWI621015B (zh) 讀取及寫入命令排程方法以及使用該方法的裝置
TWI822517B (zh) 執行主機寫入命令的方法及電腦程式產品及裝置
TWI822516B (zh) 執行主機寫入命令的方法及電腦程式產品及裝置