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