數(shù)據(jù)處理方法及電子設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及存儲技術(shù),尤其涉及一種數(shù)據(jù)處理方法及電子設(shè)備。
【背景技術(shù)】
[0002] 電子設(shè)備如智能手機、平板電腦等普遍使用閃存(Flash)如NANDflash等存儲 單元作為存儲介質(zhì),閃存自頂而下的架構(gòu)為:芯片(Chip)、邏輯單元(LU)、片(Plane)、塊 (Block)、頁(Page),每個上層的架構(gòu)(除最底層)可以包括一個或多個下層的架構(gòu),例如 一個芯片可以包括一個或多個邏輯單元;其中邏輯單元可以采用邏輯單元號(LUN,Logic UnitNumber)標識,閃存中以塊為擦除的基本單位,以頁為基本的尋址單位(也即頁為讀 取操作的基本單位),其中,邏輯單元是能夠獨立響應(yīng)處理器的指令的最?。ɑ荆﹩挝?;
[0003] 閃存操作的一個典型特征是每個存儲單元執(zhí)行指令所需的時間也即延遲 (latency)較大,例如讀取芯片中頁(Page)的延遲為微秒級(如50us),對芯片中頁進行編 程(Program)也即寫入數(shù)據(jù)的延遲為微秒級(如500us),芯片中塊擦除(BlockErase)的 延遲為毫秒(ms)級;在延遲期間電子設(shè)備的總線是空閑的,為了提高總線利用率,相關(guān)技 術(shù)引入了交錯頁編程(InterleavePageProgram)技術(shù);
[0004] 以頁讀取為例,對于同一邏輯單元,在某一時刻只能對該邏輯單元中的一個頁進 行讀取,在通過總線向一個邏輯單元發(fā)送讀取指令以使該邏輯單元執(zhí)行讀取數(shù)據(jù)并返回的 等待期間內(nèi),可以通過總線向閃存中其他的邏輯單元發(fā)送指令(例如插入對其他邏輯單元 的頁進行讀取的指令),從而實現(xiàn)了不同邏輯單元之間的指令的亂序執(zhí)行,也即后發(fā)送的指 令可能早于先發(fā)送的指令(執(zhí)行發(fā)送指令的邏輯單元與執(zhí)行后發(fā)送指令的邏輯單元是不 同的邏輯單元)完成。
[0005] 相關(guān)技術(shù)中通過使用以下方案實現(xiàn)交錯頁編程技術(shù):
[0006] 1)通過微碼實現(xiàn),需要很大的緩存(SRAM),而且對每個邏輯單元操作的通道都需 要單獨的SRAM空間;同時微碼設(shè)計復(fù)雜,修改困難,對于不同指令的亂序執(zhí)行實現(xiàn)較難;
[0007] 2)通過處理器(CPU)調(diào)度實現(xiàn),需要處理器維護隊列,通過中斷來與閃存進行交 互,并且需要查詢閃存的狀態(tài),因此速度受限,不適合帶寬要求比較高的場合,實時性差,對 處理器性能要求也較高,從而導致處理器的高功耗。
[0008] 綜上,對于高效、低功耗的方式實現(xiàn)指令的亂序執(zhí)行,以提升總線的利用率,進而 提升對閃存的讀寫速度,相關(guān)技術(shù)尚無有效解決方案。
【發(fā)明內(nèi)容】
[0009] 本發(fā)明實施例提供一種數(shù)據(jù)處理方法及電子設(shè)備,能夠高效、低功耗的方式實現(xiàn) 指令的亂序執(zhí)行,以提升總線的利用率,進而提升對存儲器的讀寫速度。
[0010] 本發(fā)明實施例的技術(shù)方案是這樣實現(xiàn)的:
[0011] 本發(fā)明實施例提供一種數(shù)據(jù)處理方法,所述方法包括:
[0012] 基于指令隊列緩存中指令的優(yōu)先級選取可執(zhí)行指令,針對所選取的指令發(fā)送總線 請求以請求總線;
[0013] 在請求到總線時通過總線發(fā)送所述可執(zhí)行指令至存儲器中對應(yīng)的目標存儲單元, 并將所述可執(zhí)行指令的計時信息讀取至輪詢隊列緩存;
[0014] 在所述輪詢隊列緩存中任意的計時信息到達后發(fā)送總線請求以請求總線,以在請 求到總線時,通過總線查詢所述計時信息歸屬的指令所對應(yīng)的目標存儲單元是否執(zhí)行完 畢;
[0015] 在總線空閑時基于預(yù)設(shè)策略對接收到的總線請求進行仲裁,并基于仲裁結(jié)果分配 總線。
[0016] 本發(fā)明實施例提供一種電子設(shè)備,所述電子設(shè)備包括:
[0017] 指令管理器,用于基于指令隊列緩存中指令的優(yōu)先級選取可執(zhí)行指令,針對所選 取的指令發(fā)送總線請求以請求總線;
[0018] 接口控制器,用于在所述指令管理器請求到總線時通過總線發(fā)送所述可執(zhí)行指令 至存儲器中對應(yīng)的目標存儲單元,并將所述可執(zhí)行指令的計時信息讀取至輪詢隊列緩存;
[0019] 輪詢管理器,用于在所述輪詢隊列緩存中任意的計時信息到達后發(fā)送總線請求以 請求總線,以在請求到總線時,通過所述接口控制器、經(jīng)由總線查詢所述計時信息歸屬的指 令所對應(yīng)的目標存儲單元是否執(zhí)行完畢;
[0020] 仲裁器,用于在總線空閑時基于預(yù)設(shè)策略對接收到的總線請求進行仲裁,并基于 仲裁結(jié)果分配總線。
[0021] 本發(fā)明實施例中,通過純硬件實現(xiàn)(FPGA或CPLD實現(xiàn))的數(shù)據(jù)處理結(jié)構(gòu)對來自主 機端的寫指令和讀指令進行響應(yīng),由仲裁器基于預(yù)設(shè)策略對空閑的總線進行仲裁,以根據(jù) 仲裁結(jié)果將可執(zhí)行指令發(fā)送至目標存儲單元以實現(xiàn)數(shù)據(jù)讀寫,或根據(jù)仲裁結(jié)果查詢目標存 儲單元是否執(zhí)行完畢已發(fā)送的指令;從而實現(xiàn)了對不同存儲單元的交互操作,執(zhí)行效率和 實時性高。
【附圖說明】
[0022] 圖1為本發(fā)明實施例中電子設(shè)備的結(jié)構(gòu)示意圖一;
[0023] 圖2為本發(fā)明實施例中電子設(shè)備的結(jié)構(gòu)示意圖二;
[0024] 圖3為本發(fā)明實施例中數(shù)據(jù)處理方法的實現(xiàn)流程示意圖一;
[0025] 圖4為本發(fā)明實施例中數(shù)據(jù)處理方法的實現(xiàn)流程示意圖二;
[0026] 圖5為本發(fā)明實施例中數(shù)據(jù)處理方法的實現(xiàn)流程示意圖三;
[0027] 圖6為本發(fā)明實施例中數(shù)據(jù)處理方法的實現(xiàn)流程示意圖四。
【具體實施方式】
[0028] 下面結(jié)合附圖和具體實施例對本發(fā)明作進一步詳細說明。
[0029] 本發(fā)明實施例記載的電子設(shè)備可以以各種形式來實施,例如,上述的電子設(shè)備可 以是智能手機、平板電腦、筆記本電腦或穿戴式設(shè)備(如智能眼鏡、智能手表等),電子設(shè)備 的操作系統(tǒng)可以是安卓操作系統(tǒng)、I0S操作系統(tǒng)或其他任意第三方開發(fā)的可以運行于微型 計算機結(jié)構(gòu)(至少包括處理器和內(nèi)存)的操作系統(tǒng)(如移動版Linux系統(tǒng)、黑莓QNX操作 系統(tǒng)等);上述的電子設(shè)備還可以是固態(tài)硬盤等用于存儲數(shù)據(jù)的電子設(shè)備。
[0030] 電子設(shè)備中通過設(shè)置基于邏輯可編程門陣列(FPGA)或復(fù)雜可編程器件(CPLD)技 術(shù)實施本發(fā)明實施例記載的數(shù)據(jù)處理方法,參見圖1,實施本發(fā)明實施例記載的數(shù)據(jù)處理方 法的電子設(shè)備至少包括以下功能單元:指令管理器200、接口控制器300、仲裁器100、存儲 器400和輪詢管理器500 ;上述功能單元構(gòu)成了電子設(shè)備中響應(yīng)數(shù)據(jù)讀寫的數(shù)據(jù)處理結(jié)構(gòu); 如前,上述的指令管理器200、接口控制器300、仲裁器100和輪詢管理器500基于邏輯可編 程門陣列或復(fù)雜可編程器件實現(xiàn),具有獨立的數(shù)據(jù)處理結(jié)構(gòu)和數(shù)據(jù)存儲結(jié)構(gòu),上述的存儲 器400是電子設(shè)備中用于存儲數(shù)據(jù)的主要器件,可以由閃存(如NandFlash)實現(xiàn);
[0031] 當然,根據(jù)電子設(shè)備的具體產(chǎn)品形態(tài),如圖2所示,電子設(shè)備中還可以包括處理器 (CPU)600,當電子設(shè)備為智能手機、平板電腦時該處理器作為應(yīng)用處理器(AP)使用,負責 在數(shù)據(jù)處理結(jié)構(gòu)與電子設(shè)備操作系統(tǒng)的應(yīng)用層之間進行數(shù)據(jù)處理,例如根據(jù)應(yīng)用層的讀請 求向上述的數(shù)據(jù)結(jié)構(gòu)發(fā)送讀指令,將數(shù)據(jù)結(jié)構(gòu)相應(yīng)的數(shù)據(jù)傳遞給應(yīng)用層;或根據(jù)應(yīng)用層的 寫請求向上述的數(shù)據(jù)結(jié)構(gòu)發(fā)送寫指令,使數(shù)據(jù)結(jié)構(gòu)寫入目標數(shù)據(jù);也就是說,數(shù)據(jù)處理結(jié)構(gòu) 是對來自處理器600的讀指令或?qū)懼噶钸M行響應(yīng),對于數(shù)據(jù)處理結(jié)構(gòu)來說處理器相當于主 機(Host)端。
[0032] 基于圖1和圖2示出的電子設(shè)備,參見圖3,本發(fā)明實施例記載的數(shù)據(jù)處理方法通 過以下步驟實現(xiàn):
[0033] 步驟101,指令管理器200基于指令隊列緩存中指令的優(yōu)先級選取可執(zhí)行指令,針 對所選取的指令發(fā)送總線請求以請求總線。
[0034] 指令管理器200從處理器600讀取針對存儲器400的指令(也即待執(zhí)行的指令, 包括讀指令和寫指令),并將獲取的指令存儲在指令管理器200的指令隊列緩存(如前,指 令隊列緩存是以FPGA或CPLD實現(xiàn)的緩存結(jié)構(gòu)),指令管理器200從處理器600讀取的指 令的數(shù)量取決于指令管理器200的指令隊列緩存中能夠存儲的指令的數(shù)量,當指令管理器 200將指令隊列緩存中的一條指令通過接口控制器300發(fā)送至存儲器400中的目標存儲單 元(接口控制器300根據(jù)指令產(chǎn)生時序信號,使目標存儲單元執(zhí)行指令)并被目標存儲單 元執(zhí)行完畢之后,指令管理器200會刪除指令隊列緩存中對應(yīng)的指令,并從處理器600讀 取一條指令存儲至指令隊列緩存的隊尾;存儲單元400是指存儲器400中能夠響應(yīng)處理器 600指令的基本單位(如邏輯單元,一個存儲單元在某一時刻只能響應(yīng)來自處理器600的一 個指令)。
[0035] 指令隊列緩存中每個指令的格式示例如表1所示:
[0036]
[0037]表1
[0038] 參見表1,指令隊列緩存中的每個指令包括:
[0039] 1)指令標識,用于唯一標識從處理器600讀取的指令;
[0040] 2)可執(zhí)行部分,也就是可執(zhí)行的指令