两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種Flash控制方法及裝置與流程

文檔序號(hào):11807797閱讀:401來(lái)源:國(guó)知局
一種Flash控制方法及裝置與流程

本申請(qǐng)涉及Flash控制技術(shù)領(lǐng)域,特別涉及一種Flash控制方法及裝置。



背景技術(shù):

Flash(FLASH閃存,F(xiàn)lash Memory)作為非易失性存儲(chǔ)器,被廣泛應(yīng)用在各類便攜式數(shù)字設(shè)備(如手機(jī)和平板電腦等)中。而在Flash使用過(guò)程中,某些接口時(shí)序復(fù)雜的Flash,在讀寫數(shù)據(jù)時(shí)需要配有Flash控制器。

目前對(duì)配有Flash控制器的Flash的讀寫控制實(shí)現(xiàn)方式為:CPU(中央處理器,Central Processing Unit)向Flash控制器發(fā)送控制命令,F(xiàn)lash控制器通過(guò)接收到的控制命令對(duì)Flash進(jìn)行相應(yīng)的操作(如讀數(shù)據(jù)或?qū)憯?shù)據(jù)),F(xiàn)lash控制器在對(duì)Flash進(jìn)行操作完成后,便向CPU發(fā)送一個(gè)攜帶有操作結(jié)果的中斷請(qǐng)求,CPU在接收到Flash控制器發(fā)送的中斷請(qǐng)求后,才會(huì)發(fā)送下一個(gè)控制指令。其中,CPU在接收到Flash控制器發(fā)送的中斷請(qǐng)求時(shí),需要暫停當(dāng)前正在運(yùn)行的程序,將當(dāng)前正在運(yùn)行的程序相關(guān)的指令壓入堆棧,轉(zhuǎn)而查看Flash控制器發(fā)送的操作結(jié)果,在查看Flash控制器發(fā)送的操作結(jié)果并執(zhí)行相應(yīng)的操作后,從堆棧里讀取當(dāng)前正在運(yùn)行的程序相關(guān)的指令,重新運(yùn)行原來(lái)被中斷的程序。然而,將當(dāng)前正在運(yùn)行的程序相關(guān)的指令壓入堆棧和從堆棧里讀取當(dāng)前正在運(yùn)行的程序相關(guān)的指令的操作會(huì)延長(zhǎng)CPU的整體工作時(shí)間,降低了CPU的整體工作效率。



技術(shù)實(shí)現(xiàn)要素:

為解決上述技術(shù)問(wèn)題,本申請(qǐng)實(shí)施例提供一種Flash控制方法及裝置,以達(dá)到縮短CPU的整體工作時(shí)間,提高CPU的整體工作效率的目的,技術(shù)方案如下:

一種Flash控制方法,應(yīng)用于Flash控制器,包括:

接收CPU發(fā)送的Flash控制命令,并將接收到的Flash控制命令寫入預(yù)設(shè)隊(duì)列中;

從所述預(yù)設(shè)隊(duì)列中讀取當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令,并對(duì)Flash進(jìn)行與所述當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令所對(duì)應(yīng)的操作;

將命令執(zhí)行結(jié)果寫入所述預(yù)設(shè)隊(duì)列中,以供所述CPU從所述預(yù)設(shè)隊(duì)列中讀取命令執(zhí)行結(jié)果,并根據(jù)所述命令執(zhí)行結(jié)果執(zhí)行相應(yīng)的操作;

所述命令執(zhí)行結(jié)果為對(duì)Flash進(jìn)行與所述當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令所對(duì)應(yīng)的操作的結(jié)果。

優(yōu)選的,所述接收CPU發(fā)送的Flash控制命令,并將接收到的所述Flash控制命令寫入預(yù)設(shè)隊(duì)列中的過(guò)程,包括:

接收所述CPU發(fā)送的Flash控制命令,并將接收到的Flash控制命令中,針對(duì)不同F(xiàn)lash區(qū)塊的Flash控制命令分別寫入不同的預(yù)設(shè)隊(duì)列中;

其中,同一個(gè)預(yù)設(shè)隊(duì)列中存儲(chǔ)的是針對(duì)同一個(gè)Flash區(qū)塊的Flash控制命令。

優(yōu)選的,所述接收CPU發(fā)送的Flash控制命令的過(guò)程,包括:

接收所述CPU并行發(fā)送的多個(gè)Flash控制命令。

優(yōu)選的,從所述預(yù)設(shè)隊(duì)列中讀取當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令,并對(duì)Flash進(jìn)行與所述當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令所對(duì)應(yīng)的操作的過(guò)程,包括:

從所述預(yù)設(shè)隊(duì)列中讀取當(dāng)前控制任務(wù)對(duì)應(yīng)的多個(gè)不同的子Flash控制命令,所述子Flash控制命令為針對(duì)某一個(gè)Flash區(qū)塊的Flash控制命令;

并行對(duì)各個(gè)所述子Flash控制命令對(duì)應(yīng)的Flash區(qū)塊進(jìn)行相應(yīng)的操作。

優(yōu)選的,從所述預(yù)設(shè)隊(duì)列中讀取當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令,并對(duì)Flash進(jìn)行與所述當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令所對(duì)應(yīng)的操作的過(guò)程,包括:

從所述預(yù)設(shè)隊(duì)列中讀取當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令,并通過(guò)預(yù)設(shè)指令集解析所述當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令,得到底層Flash指令,所述底層Flash指令為可被所述Flash控制器直接識(shí)別的指令;

對(duì)所述Flash進(jìn)行與所述底層Flash指令對(duì)應(yīng)的操作。

一種Flash控制方法,應(yīng)用于CPU,所述方法包括:

發(fā)送Flash控制命令至Flash控制器,以使所述Flash控制器將接收到的Flash控制命令寫入預(yù)設(shè)隊(duì)列中,以及從所述預(yù)設(shè)隊(duì)列中讀取當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令,并對(duì)Flash進(jìn)行與所述當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令所對(duì)應(yīng)的操作,以及將命令執(zhí)行結(jié)果寫入所述預(yù)設(shè)隊(duì)列中;

從所述預(yù)設(shè)隊(duì)列中讀取命令執(zhí)行結(jié)果,并根據(jù)所述命令執(zhí)行結(jié)果執(zhí)行相應(yīng)的操作;

所述命令執(zhí)行結(jié)果為對(duì)Flash進(jìn)行與所述當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令所對(duì)應(yīng)的操作的結(jié)果。

優(yōu)選的,所述發(fā)送Flash控制命令至Flash控制器的過(guò)程,包括:

并行發(fā)送多個(gè)不同的Flash控制命令至Flash控制器。

一種Flash控制裝置,應(yīng)用于Flash控制器,所述Flash控制裝置包括:

第一寫入模塊,用于接收CPU發(fā)送的Flash控制命令,并將接收到的Flash控制命令寫入預(yù)設(shè)隊(duì)列中;

讀取模塊,用于從所述預(yù)設(shè)隊(duì)列中讀取當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令;

操作模塊,用于對(duì)Flash進(jìn)行與所述當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令所對(duì)應(yīng)的操作;

第二寫入模塊,用于將命令執(zhí)行結(jié)果寫入所述預(yù)設(shè)隊(duì)列中,以供所述CPU從所述預(yù)設(shè)隊(duì)列中讀取命令執(zhí)行結(jié)果,并根據(jù)所述命令執(zhí)行結(jié)果執(zhí)行相應(yīng)的操作;

所述命令執(zhí)行結(jié)果為對(duì)Flash進(jìn)行與所述當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令所對(duì)應(yīng)的操作的結(jié)果。

優(yōu)選的,所述第一寫入模塊包括:

寫入單元,用于接收所述CPU發(fā)送的Flash控制命令,并將接收到的Flash控制命令中,針對(duì)不同F(xiàn)lash區(qū)塊的Flash控制命令分別寫入不同的預(yù)設(shè)隊(duì)列中;

其中,同一個(gè)預(yù)設(shè)隊(duì)列中存儲(chǔ)的是針對(duì)同一個(gè)Flash區(qū)塊的Flash控制命令。

優(yōu)選的,所述第一寫入模塊包括:

接收單元,用于接收所述CPU并行發(fā)送的多個(gè)Flash控制命令。

優(yōu)選的,所述讀取模塊包括:

第一讀取單元,用于從所述預(yù)設(shè)隊(duì)列中讀取當(dāng)前控制任務(wù)對(duì)應(yīng)的多個(gè)不同的子Flash控制命令,所述子Flash控制命令為針對(duì)某一個(gè)Flash區(qū)塊的Flash控制命令;

所述操作模塊包括:

第一操作單元,用于并行對(duì)各個(gè)所述子Flash控制命令對(duì)應(yīng)的Flash區(qū)塊進(jìn)行相應(yīng)的操作。

優(yōu)選的,所述讀取模塊包括:

第二讀取單元,用于從所述預(yù)設(shè)隊(duì)列中讀取當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令;

所述操作模塊包括:

解析單元,用于通過(guò)預(yù)設(shè)指令集解析所述當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令,得到底層Flash指令,所述底層Flash指令為可被所述Flash控制器直接識(shí)別的指令;

第二操作單元,用于對(duì)所述Flash進(jìn)行與所述底層Flash指令對(duì)應(yīng)的操作。

一種Flash控制裝置,應(yīng)用于CPU,所述Flash控制裝置包括:

發(fā)送模塊,用于發(fā)送Flash控制命令至Flash控制器,以使所述Flash控制器將接收到的Flash控制命令寫入預(yù)設(shè)隊(duì)列中,以及從所述預(yù)設(shè)隊(duì)列中讀取當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令,并對(duì)Flash進(jìn)行與所述當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令所對(duì)應(yīng)的操作,以及將命令執(zhí)行結(jié)果寫入所述預(yù)設(shè)隊(duì)列中;

執(zhí)行模塊,用于從所述預(yù)設(shè)隊(duì)列中讀取命令執(zhí)行結(jié)果,并根據(jù)所述命令執(zhí)行結(jié)果執(zhí)行相應(yīng)的操作;

所述命令執(zhí)行結(jié)果為對(duì)Flash進(jìn)行與所述當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令所對(duì)應(yīng)的操作的結(jié)果。

優(yōu)選的,所述發(fā)送模塊包括:

發(fā)送單元,用于并行發(fā)送多個(gè)不同的Flash控制命令至Flash控制器。

與現(xiàn)有技術(shù)相比,本申請(qǐng)的有益效果為:

在本申請(qǐng)中,F(xiàn)lash控制器在對(duì)Flash進(jìn)行與所述待執(zhí)行Flash控制命令對(duì)應(yīng)的操作之后,將命令執(zhí)行結(jié)果寫入預(yù)設(shè)隊(duì)列進(jìn)行緩存,CPU則可以在執(zhí)行完當(dāng)前運(yùn)行的程序之后再?gòu)念A(yù)設(shè)隊(duì)列中讀取命令執(zhí)行結(jié)果,不再需要進(jìn)行將當(dāng)前正在運(yùn)行的程序相關(guān)的指令壓入堆棧和從堆棧里讀取當(dāng)前正在運(yùn)行的程序相關(guān)的指令的操作,雖然CPU需要從預(yù)設(shè)隊(duì)列中讀取命令執(zhí)行結(jié)果,但是相比于現(xiàn)有技術(shù)中CPU將當(dāng)前正在運(yùn)行的程序相關(guān)的指令壓入堆棧和從堆棧里讀取當(dāng)前正在運(yùn)行的程序相關(guān)的指令的方式,CPU的工作量得到減少,從而縮短了CPU的整體工作時(shí)間,提高了CPU的整體工作效率。

附圖說(shuō)明

為了更清楚地說(shuō)明本申請(qǐng)實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本申請(qǐng)的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1是本申請(qǐng)?zhí)峁┑腇lash控制方法的一種流程圖;

圖2是本申請(qǐng)?zhí)峁┑腇lash控制方法的一種流程圖;

圖3是本申請(qǐng)?zhí)峁┑腇lash控制方法的一種流程圖;

圖4是本申請(qǐng)?zhí)峁┑腇lash控制方法的另一種流程圖;

圖5是本申請(qǐng)?zhí)峁┑腇lash控制裝置的一種邏輯結(jié)構(gòu)示意圖;

圖6是本申請(qǐng)?zhí)峁┑腇lash控制裝置的另一種邏輯結(jié)構(gòu)示意圖。

具體實(shí)施方式

下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本申請(qǐng)保護(hù)的范圍。

實(shí)施例一

在本實(shí)施例中,提供了一種Flash控制方法,可應(yīng)用于Flash控制器,請(qǐng)參見(jiàn)圖1,其示出了本申請(qǐng)?zhí)峁┑腇lash控制方法的一種流程圖,可以包括以下步驟:

步驟S101:接收CPU發(fā)送的Flash控制命令,并將接收到的Flash控制命令寫入預(yù)設(shè)隊(duì)列中。

在本實(shí)施例中,F(xiàn)lash控制器會(huì)預(yù)先構(gòu)建預(yù)設(shè)隊(duì)列,用于存放CPU發(fā)送的Flash控制命令及CPU發(fā)送的Flash控制命令對(duì)應(yīng)的命令執(zhí)行結(jié)果。

Flash控制器可以控制一個(gè)Flash或控制多個(gè)Flash。在Flash控制器控制一個(gè)Flash時(shí),F(xiàn)lash控制器可以構(gòu)建一個(gè)預(yù)設(shè)隊(duì)列或多個(gè)預(yù)設(shè)隊(duì)列。Flash控制器在構(gòu)建一個(gè)預(yù)設(shè)隊(duì)列時(shí),無(wú)論CPU發(fā)送的Flash控制命令是針對(duì)Flash整體的Flash控制命令,還是針對(duì)同一個(gè)Flash中不同F(xiàn)lash區(qū)塊的Flash控制命令,都需要將接收到的Flash控制命令寫入同一個(gè)預(yù)設(shè)隊(duì)列中。Flash控制器在構(gòu)建多個(gè)預(yù)設(shè)隊(duì)列時(shí),若CPU發(fā)送的Flash控制命令為針對(duì)某一個(gè)Flash區(qū)塊的Flash控制命令,F(xiàn)lash控制器則可以接收所述CPU發(fā)送的Flash控制命令,并將接收到的Flash控制命令中,針對(duì)不同F(xiàn)lash區(qū)塊的Flash控制命令分別寫入不同的預(yù)設(shè)隊(duì)列中;其中,同一個(gè)預(yù)設(shè)隊(duì)列中存儲(chǔ)的是針對(duì)同一個(gè)Flash區(qū)塊的Flash控制命令。

在Flash控制器控制多個(gè)Flash時(shí),F(xiàn)lash控制器同樣可以構(gòu)建一個(gè)預(yù)設(shè)隊(duì)列或多個(gè)預(yù)設(shè)隊(duì)列。當(dāng)Flash控制器構(gòu)建一個(gè)預(yù)設(shè)隊(duì)列時(shí),F(xiàn)lash控制器則需要將CPU發(fā)送的針對(duì)不同F(xiàn)lash的Flash控制命令寫入同一個(gè)預(yù)設(shè)隊(duì)列中。當(dāng)Flash控制器構(gòu)建多個(gè)預(yù)設(shè)隊(duì)列時(shí),F(xiàn)lash控制器則可以將CPU發(fā)送的針對(duì)不同F(xiàn)lash的Flash控制命令寫入不同的預(yù)設(shè)隊(duì)列中,其中,每個(gè)預(yù)設(shè)隊(duì)列對(duì)應(yīng)一個(gè)Flash即每個(gè)預(yù)設(shè)隊(duì)列僅存儲(chǔ)對(duì)應(yīng)的Flash對(duì)應(yīng)的Flash控制命令。

CPU可以采用串行的方式向Flash控制器發(fā)送Flash控制命令,即每次發(fā)送一個(gè)Flash控制命令。相應(yīng)的,F(xiàn)lash控制器接收CPU發(fā)送的Flash控制命令具體為:Flash控制器接收CPU串行發(fā)送的Flash控制命令。

當(dāng)然,CPU可以并行發(fā)送多個(gè)Flash控制命令至Flash控制器,即CPU一次發(fā)送多個(gè)Flash控制命令至Flash控制器。相應(yīng)的,F(xiàn)lash控制器接收CPU發(fā)送的Flash控制命令具體為:Flash控制器接收CPU并行發(fā)送的多個(gè)Flash控制命令。

其中,CPU并行發(fā)送多個(gè)Flash控制命令至Flash控制器的方式相比于CPU采用串行的方式向Flash控制器發(fā)送Flash控制命令,縮短了CPU的命令發(fā)送時(shí)間和Flash控制器的命令接收時(shí)間,提高了CPU的整體工作效率和Flash控制器的整體工作效率。

需要說(shuō)明的是,F(xiàn)lash控制器無(wú)論接收CPU串行發(fā)送的Flash控制命令,還是接收CPU并行發(fā)送的多個(gè)Flash控制命令,F(xiàn)lash控制器均是依次將接收到的Flash控制命令寫入預(yù)設(shè)隊(duì)列中。

步驟S102:從所述預(yù)設(shè)隊(duì)列中讀取當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令,并對(duì)Flash進(jìn)行與所述當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令所對(duì)應(yīng)的操作。

在本實(shí)施例中,F(xiàn)lash控制器在將CPU發(fā)送的Flash控制命令寫入同一個(gè)預(yù)設(shè)隊(duì)列中時(shí),F(xiàn)lash控制器則直接從該預(yù)設(shè)隊(duì)列中讀取當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令。

Flash控制器在將CPU發(fā)送的Flash控制命令寫入到不同的預(yù)設(shè)隊(duì)列中時(shí),F(xiàn)lash控制器則需要從不同的預(yù)設(shè)隊(duì)列中讀取當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令。例如,F(xiàn)lash控制器控制一個(gè)Flash,該Flash被劃分為Flash區(qū)塊1、Flash區(qū)塊2和Flash區(qū)塊3,F(xiàn)lash控制器構(gòu)建三個(gè)預(yù)設(shè)隊(duì)列,分別為預(yù)設(shè)隊(duì)列1、預(yù)設(shè)隊(duì)列2和預(yù)設(shè)隊(duì)列3,預(yù)設(shè)隊(duì)列1用于存放Flash區(qū)塊1對(duì)應(yīng)的Flash控制命令,預(yù)設(shè)隊(duì)列2用于存放Flash區(qū)塊2對(duì)應(yīng)的Flash控制命令,預(yù)設(shè)隊(duì)列3用于存放Flash區(qū)塊3對(duì)應(yīng)的Flash控制命令,F(xiàn)lash控制器在接收到CPU發(fā)送的針對(duì)Flash區(qū)塊1的Flash控制命令時(shí),將CPU發(fā)送的針對(duì)Flash區(qū)塊1的Flash控制命令寫入預(yù)設(shè)隊(duì)列1中,F(xiàn)lash控制器在接收到CPU發(fā)送的針對(duì)Flash區(qū)塊2的Flash控制命令時(shí),將CPU發(fā)送的針對(duì)Flash區(qū)塊2的Flash控制命令寫入預(yù)設(shè)隊(duì)列2中,F(xiàn)lash控制器在接收到CPU發(fā)送的針對(duì)Flash區(qū)塊3的Flash控制命令時(shí),將CPU發(fā)送的針對(duì)Flash區(qū)塊3的Flash控制命令寫入預(yù)設(shè)隊(duì)列3中,并在執(zhí)行當(dāng)前控制任務(wù)時(shí),相應(yīng)的,從預(yù)設(shè)隊(duì)列1中讀取針對(duì)Flash區(qū)塊1的Flash控制命令,從預(yù)設(shè)隊(duì)列2中讀取針對(duì)Flash區(qū)塊2的Flash控制命令,從預(yù)設(shè)隊(duì)列3中讀取針對(duì)Flash區(qū)塊3的Flash控制命令。

Flash控制器構(gòu)建預(yù)設(shè)隊(duì)列,將CPU發(fā)送的Flash控制命令寫入預(yù)設(shè)隊(duì)列的方式,使得Flash控制器可以根據(jù)不同的命令階段對(duì)不同的Flash區(qū)塊對(duì)應(yīng)的Flash控制命令進(jìn)行調(diào)度,實(shí)現(xiàn)Flash控制器對(duì)不同的Flash區(qū)塊的并行處理。例如,預(yù)設(shè)隊(duì)列中存儲(chǔ)有Flash控制命令A(yù)和Flash控制命令B,F(xiàn)lash控制命令A(yù)對(duì)應(yīng)Flash區(qū)塊A,F(xiàn)lash控制命令B對(duì)應(yīng)Flash區(qū)塊B,F(xiàn)lash控制器可以首先從預(yù)設(shè)隊(duì)列中讀取Flash控制命令A(yù),并對(duì)Flash區(qū)塊A進(jìn)行與Flash控制命令A(yù)所對(duì)應(yīng)的操作,F(xiàn)lash控制器不必等到Flash區(qū)塊A執(zhí)行完Flash控制命令A(yù)所對(duì)應(yīng)的操作后就可以從預(yù)設(shè)隊(duì)列中讀取Flash控制命令B,并對(duì)Flash區(qū)塊B進(jìn)行與Flash控制命令B所對(duì)應(yīng)的操作,實(shí)現(xiàn)了對(duì)Flash區(qū)塊A和Flash區(qū)塊B的并行操作。

步驟S103:將命令執(zhí)行結(jié)果寫入所述預(yù)設(shè)隊(duì)列中,以供所述CPU從所述預(yù)設(shè)隊(duì)列中讀取命令執(zhí)行結(jié)果,并根據(jù)所述命令執(zhí)行結(jié)果執(zhí)行相應(yīng)的操作。

所述命令執(zhí)行結(jié)果為對(duì)Flash進(jìn)行與所述當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令所對(duì)應(yīng)的操作的結(jié)果。

在本實(shí)施例中,F(xiàn)lash控制器在對(duì)Flash進(jìn)行與所述當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令所對(duì)應(yīng)的操作之后,將命令執(zhí)行結(jié)果寫入預(yù)設(shè)隊(duì)列中緩存,而不再是將攜帶有命令執(zhí)行結(jié)果的中斷請(qǐng)求發(fā)送至CPU,使CPU由被動(dòng)的根據(jù)命令執(zhí)行結(jié)果執(zhí)行相應(yīng)的操作轉(zhuǎn)變?yōu)橹鲃?dòng)的從預(yù)設(shè)隊(duì)列中讀取命令執(zhí)行結(jié)果,并根據(jù)命令執(zhí)行結(jié)果執(zhí)行相應(yīng)的操作,因此CPU可以不中斷當(dāng)前運(yùn)行的程序,而是可以在運(yùn)行完當(dāng)前運(yùn)行的程序后,再?gòu)念A(yù)設(shè)隊(duì)列中讀取命令執(zhí)行結(jié)果,并根據(jù)所述命令執(zhí)行結(jié)果執(zhí)行相應(yīng)的操作,不再需要進(jìn)行將當(dāng)前正在運(yùn)行的程序相關(guān)的指令壓入堆棧和從堆棧里讀取當(dāng)前正在運(yùn)行的程序相關(guān)的指令的操作。

在Flash控制器僅構(gòu)建一個(gè)預(yù)設(shè)隊(duì)列時(shí),F(xiàn)lash控制器將命令執(zhí)行結(jié)果寫入該預(yù)設(shè)隊(duì)列中即可。在Flash控制器構(gòu)建多個(gè)預(yù)設(shè)隊(duì)列中,F(xiàn)lash控制器則將命令執(zhí)行結(jié)果寫入命令執(zhí)行結(jié)果對(duì)應(yīng)的Flash控制命令對(duì)應(yīng)的預(yù)設(shè)隊(duì)列中。仍以步驟S102中Flash控制器控制一個(gè)Flash,該Flash被劃分為Flash區(qū)塊1、Flash區(qū)塊2和Flash區(qū)塊3,F(xiàn)lash控制器構(gòu)建三個(gè)預(yù)設(shè)隊(duì)列,分別為預(yù)設(shè)隊(duì)列1、預(yù)設(shè)隊(duì)列2和預(yù)設(shè)隊(duì)列3為例,F(xiàn)lash控制器在得到針對(duì)Flash區(qū)塊1的Flash控制命令對(duì)應(yīng)的命令執(zhí)行結(jié)果1時(shí),將命令執(zhí)行結(jié)果1寫入預(yù)設(shè)隊(duì)列1中,F(xiàn)lash控制器在得到針對(duì)Flash區(qū)塊2的Flash控制命令對(duì)應(yīng)的命令執(zhí)行結(jié)果2時(shí),將命令執(zhí)行結(jié)果2寫入預(yù)設(shè)隊(duì)列2中,F(xiàn)lash控制器在得到針對(duì)Flash區(qū)塊3的Flash控制命令對(duì)應(yīng)的命令執(zhí)行結(jié)果3時(shí),將命令執(zhí)行結(jié)果3寫入預(yù)設(shè)隊(duì)列3中。

當(dāng)然,在本實(shí)施例中,存放CPU發(fā)送的Flash控制命令的預(yù)設(shè)隊(duì)列和存放CPU發(fā)送的Flash控制命令對(duì)應(yīng)的命令執(zhí)行結(jié)果的預(yù)設(shè)隊(duì)列可以不同,只需要Flash控制器構(gòu)建不同的預(yù)設(shè)隊(duì)列即可。

在本申請(qǐng)中,F(xiàn)lash控制器在對(duì)Flash進(jìn)行與所述待執(zhí)行Flash控制命令對(duì)應(yīng)的操作之后,將命令執(zhí)行結(jié)果寫入預(yù)設(shè)隊(duì)列進(jìn)行緩存,CPU則可以在執(zhí)行完當(dāng)前運(yùn)行的程序之后再?gòu)念A(yù)設(shè)隊(duì)列中讀取命令執(zhí)行結(jié)果,不再需要進(jìn)行將當(dāng)前正在運(yùn)行的程序相關(guān)的指令壓入堆棧和從堆棧里讀取當(dāng)前正在運(yùn)行的程序相關(guān)的指令的操作,雖然CPU需要從預(yù)設(shè)隊(duì)列中讀取命令執(zhí)行結(jié)果,但是相比于現(xiàn)有技術(shù)中CPU將當(dāng)前正在運(yùn)行的程序相關(guān)的指令壓入堆棧和從堆棧里讀取當(dāng)前正在運(yùn)行的程序相關(guān)的指令的方式,CPU的工作量得到減少,從而縮短了CPU的整體工作時(shí)間,提高了CPU的整體工作效率。

在本實(shí)施例中,上述從所述預(yù)設(shè)隊(duì)列中讀取當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令,并對(duì)Flash進(jìn)行與所述當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令所對(duì)應(yīng)的操作具體可以為:每次從所述預(yù)設(shè)隊(duì)列中讀取當(dāng)前控制任務(wù)對(duì)應(yīng)的某一個(gè)Flash控制命令,并對(duì)Flash進(jìn)行與所述當(dāng)前控制任務(wù)對(duì)應(yīng)的該Flash控制命令對(duì)應(yīng)的操作。

當(dāng)然,上述從所述預(yù)設(shè)隊(duì)列中讀取當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令,并對(duì)Flash進(jìn)行與所述當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令所對(duì)應(yīng)的操作具體過(guò)程,可以參見(jiàn)圖2,可以包括以下步驟:

步驟S201:從所述預(yù)設(shè)隊(duì)列中讀取當(dāng)前控制任務(wù)對(duì)應(yīng)的多個(gè)不同的子Flash控制命令,所述子Flash控制命令為針對(duì)某一個(gè)Flash區(qū)塊的Flash控制命令。

Flash控制器可以從預(yù)設(shè)隊(duì)列中一次性讀取當(dāng)前控制任務(wù)對(duì)應(yīng)的多個(gè)不同的子Flash控制命令。

步驟S202:并行對(duì)各個(gè)所述子Flash控制命令對(duì)應(yīng)的Flash區(qū)塊進(jìn)行相應(yīng)的操作。

在從預(yù)設(shè)隊(duì)列中一次性讀取出當(dāng)前控制任務(wù)對(duì)應(yīng)的多個(gè)不同的子Flash控制命令后,并行對(duì)各個(gè)所述子Flash控制命令對(duì)應(yīng)的Flash區(qū)塊進(jìn)行相應(yīng)的操作,可以提高Flash控制器的工作效率,并充分的利用了Flash控制器所控制的Flash的接口帶寬。

其中,步驟S201和步驟S202示出的過(guò)程即Flash控制器可以根據(jù)不同的命令階段對(duì)不同的Flash區(qū)塊對(duì)應(yīng)的Flash控制命令進(jìn)行調(diào)度的實(shí)現(xiàn)過(guò)程。

在本實(shí)施例中,從所述預(yù)設(shè)隊(duì)列中讀取當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令,并對(duì)Flash進(jìn)行與所述當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令所對(duì)應(yīng)的操作的具體過(guò)程可以參見(jiàn)圖3,可以包括以下步驟:

步驟S301:從所述預(yù)設(shè)隊(duì)列中讀取當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令,并通過(guò)預(yù)設(shè)指令集解析所述當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令,得到底層Flash指令,所述底層Flash指令為可被所述Flash控制器直接識(shí)別的指令。

在本實(shí)施例中,在Flash控制器所控制的Flash時(shí)序發(fā)生變化時(shí),可以通過(guò)更改預(yù)設(shè)指令集,來(lái)保證Flash控制器解析出的底層Flash控制命令仍能被Flash識(shí)別,從而保證Flash控制器仍能對(duì)時(shí)序發(fā)生變化的Flash進(jìn)行控制,而不需要為了適應(yīng)Flash的時(shí)序變化更改Flash控制器的硬件設(shè)計(jì),從而改善了Flash控制器設(shè)計(jì)的靈活性。

步驟S302:對(duì)所述Flash進(jìn)行與所述底層Flash指令對(duì)應(yīng)的操作。

實(shí)施例二

在本實(shí)施例中,提供的Flash控制方法,應(yīng)用于CPU,請(qǐng)參見(jiàn)圖4,其示出了本申請(qǐng)?zhí)峁┑腇lash控制方法的另一種流程圖,可以包括以下步驟:

步驟S401:發(fā)送Flash控制命令至Flash控制器,以使所述Flash控制器將接收到的Flash控制命令寫入預(yù)設(shè)隊(duì)列中,以及從所述預(yù)設(shè)隊(duì)列中讀取當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令,并對(duì)Flash進(jìn)行與所述當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令所對(duì)應(yīng)的操作,以及將命令執(zhí)行結(jié)果寫入所述預(yù)設(shè)隊(duì)列中。

在本實(shí)施例中,CPU可以采用串行的方式向Flash控制器發(fā)送Flash控制命令,即每次發(fā)送一個(gè)Flash控制命令。

當(dāng)然,CPU可以并行發(fā)送多個(gè)不同的Flash控制命令至Flash控制器,即CPU一次發(fā)送多個(gè)不同的Flash控制命令至Flash控制器。

其中,F(xiàn)lash控制器將接收到的Flash控制命令寫入預(yù)設(shè)隊(duì)列中,以及從所述預(yù)設(shè)隊(duì)列中讀取當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令,并對(duì)Flash進(jìn)行與所述當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令所對(duì)應(yīng)的操作,以及將命令執(zhí)行結(jié)果寫入所述預(yù)設(shè)隊(duì)列中的具體過(guò)程,請(qǐng)參見(jiàn)實(shí)施例一示出的Flash控制器的執(zhí)行過(guò)程,在此不再贅述。

步驟S402:從所述預(yù)設(shè)隊(duì)列中讀取命令執(zhí)行結(jié)果,并根據(jù)所述命令執(zhí)行結(jié)果執(zhí)行相應(yīng)的操作。

所述命令執(zhí)行結(jié)果為對(duì)Flash進(jìn)行與所述當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令所對(duì)應(yīng)的操作的結(jié)果。

在本實(shí)施例中,由于CPU可以主動(dòng)從預(yù)設(shè)隊(duì)列中讀取命令執(zhí)行結(jié)果,因此CPU可以在任意時(shí)刻從預(yù)設(shè)隊(duì)列中讀取命令執(zhí)行結(jié)果,具體的,可以在當(dāng)前運(yùn)行程序運(yùn)行結(jié)束后從預(yù)設(shè)隊(duì)列中讀取命令執(zhí)行結(jié)果,并根據(jù)命令執(zhí)行結(jié)果執(zhí)行相應(yīng)的操作,不再需要進(jìn)行將當(dāng)前正在運(yùn)行的程序相關(guān)的指令壓入堆棧和從堆棧里讀取當(dāng)前正在運(yùn)行的程序相關(guān)的指令的操作,減少了工作量,從而縮短了CPU的整體工作時(shí)間,提高了CPU的整體工作效率。

實(shí)施例三

本實(shí)施例提供了一種Flash控制裝置,應(yīng)用于Flash控制器,請(qǐng)參見(jiàn)圖5,F(xiàn)lash控制裝置包括:第一寫入模塊11、讀取模塊12、操作模塊13和第二寫入模塊14。

第一寫入模塊11,用于接收CPU發(fā)送的Flash控制命令,并將接收到的Flash控制命令寫入預(yù)設(shè)隊(duì)列中。

在本實(shí)施例中,F(xiàn)lash控制器會(huì)預(yù)先構(gòu)建預(yù)設(shè)隊(duì)列,用于存放CPU發(fā)送的Flash控制命令及CPU發(fā)送的Flash控制命令對(duì)應(yīng)的命令執(zhí)行結(jié)果。

Flash控制器可以控制一個(gè)Flash或控制多個(gè)Flash。在Flash控制器控制一個(gè)Flash時(shí),F(xiàn)lash控制器可以構(gòu)建一個(gè)預(yù)設(shè)隊(duì)列或多個(gè)預(yù)設(shè)隊(duì)列。Flash控制器在構(gòu)建一個(gè)預(yù)設(shè)隊(duì)列時(shí),無(wú)論CPU發(fā)送的Flash控制命令是針對(duì)Flash整體的Flash控制命令,還是針對(duì)同一個(gè)Flash中不同F(xiàn)lash區(qū)塊的Flash控制命令,都需要將接收到的Flash控制命令寫入同一個(gè)預(yù)設(shè)隊(duì)列中。Flash控制器在構(gòu)建多個(gè)預(yù)設(shè)隊(duì)列時(shí),若CPU發(fā)送的Flash控制命令為針對(duì)某一個(gè)Flash區(qū)塊的Flash控制命令,第一寫入模塊11包括的寫入單元接收所述CPU發(fā)送的Flash控制命令,并將接收到的Flash控制命令中,針對(duì)不同F(xiàn)lash區(qū)塊的Flash控制命令分別寫入不同的預(yù)設(shè)隊(duì)列中;其中,同一個(gè)預(yù)設(shè)隊(duì)列中存儲(chǔ)的是針對(duì)同一個(gè)Flash區(qū)塊的Flash控制命令。

在Flash控制器控制多個(gè)Flash時(shí),F(xiàn)lash控制器同樣可以構(gòu)建一個(gè)預(yù)設(shè)隊(duì)列或多個(gè)預(yù)設(shè)隊(duì)列。當(dāng)Flash控制器構(gòu)建一個(gè)預(yù)設(shè)隊(duì)列時(shí),第一寫入模塊11則需要將CPU發(fā)送的針對(duì)不同F(xiàn)lash的Flash控制命令寫入同一個(gè)預(yù)設(shè)隊(duì)列中。當(dāng)Flash控制器構(gòu)建多個(gè)預(yù)設(shè)隊(duì)列時(shí),第一寫入模塊11則可以將CPU發(fā)送的針對(duì)不同F(xiàn)lash的Flash控制命令寫入不同的預(yù)設(shè)隊(duì)列中,其中,每個(gè)預(yù)設(shè)隊(duì)列對(duì)應(yīng)一個(gè)Flash即每個(gè)預(yù)設(shè)隊(duì)列僅存儲(chǔ)對(duì)應(yīng)的Flash對(duì)應(yīng)的Flash控制命令。

CPU可以采用串行的方式向Flash控制器發(fā)送Flash控制命令,即每次發(fā)送一個(gè)Flash控制命令。相應(yīng)的,第一寫入模塊11接收CPU發(fā)送的Flash控制命令具體為:第一寫入模塊11接收CPU串行發(fā)送的Flash控制命令。

當(dāng)然,CPU可以并行發(fā)送多個(gè)Flash控制命令至Flash控制器,即CPU一次發(fā)送多個(gè)Flash控制命令至Flash控制器。相應(yīng)的,在本實(shí)施例中,第一寫入模塊11包括的接收單元,接收所述CPU并行發(fā)送的多個(gè)Flash控制命令。

其中,CPU并行發(fā)送多個(gè)Flash控制命令至Flash控制器的方式相比于CPU采用串行的方式向Flash控制器發(fā)送Flash控制命令,縮短了CPU的命令發(fā)送時(shí)間和Flash控制器的命令接收時(shí)間,提高了CPU的整體工作效率和Flash控制器的整體工作效率。

需要說(shuō)明的是,F(xiàn)lash控制器無(wú)論接收CPU串行發(fā)送的Flash控制命令,還是接收CPU并行發(fā)送的多個(gè)Flash控制命令,F(xiàn)lash控制器均是依次將接收到的Flash控制命令寫入預(yù)設(shè)隊(duì)列中。

讀取模塊12,用于從所述預(yù)設(shè)隊(duì)列中讀取當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令。

操作模塊13,用于對(duì)Flash進(jìn)行與所述當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令所對(duì)應(yīng)的操作。

在本實(shí)施例中,F(xiàn)lash控制器在將CPU發(fā)送的Flash控制命令寫入同一個(gè)預(yù)設(shè)隊(duì)列中時(shí),讀取模塊12則直接從該預(yù)設(shè)隊(duì)列中讀取當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令。

Flash控制器在將CPU發(fā)送的Flash控制命令寫入到不同的預(yù)設(shè)隊(duì)列中時(shí),讀取模塊12則需要從不同的預(yù)設(shè)隊(duì)列中讀取當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令。例如,F(xiàn)lash控制器控制一個(gè)Flash,該Flash被劃分為Flash區(qū)塊1、Flash區(qū)塊2和Flash區(qū)塊3,F(xiàn)lash控制器構(gòu)建三個(gè)預(yù)設(shè)隊(duì)列,分別為預(yù)設(shè)隊(duì)列1、預(yù)設(shè)隊(duì)列2和預(yù)設(shè)隊(duì)列3,預(yù)設(shè)隊(duì)列1用于存放Flash區(qū)塊1對(duì)應(yīng)的Flash控制命令,預(yù)設(shè)隊(duì)列2用于存放Flash區(qū)塊2對(duì)應(yīng)的Flash控制命令,預(yù)設(shè)隊(duì)列3用于存放Flash區(qū)塊3對(duì)應(yīng)的Flash控制命令,F(xiàn)lash控制器在接收到CPU發(fā)送的針對(duì)Flash區(qū)塊1的Flash控制命令時(shí),將CPU發(fā)送的針對(duì)Flash區(qū)塊1的Flash控制命令寫入預(yù)設(shè)隊(duì)列1中,F(xiàn)lash控制器在接收到CPU發(fā)送的針對(duì)Flash區(qū)塊2的Flash控制命令時(shí),將CPU發(fā)送的針對(duì)Flash區(qū)塊2的Flash控制命令寫入預(yù)設(shè)隊(duì)列2中,F(xiàn)lash控制器在接收到CPU發(fā)送的針對(duì)Flash區(qū)塊3的Flash控制命令時(shí),將CPU發(fā)送的針對(duì)Flash區(qū)塊3的Flash控制命令寫入預(yù)設(shè)隊(duì)列3中,并在執(zhí)行當(dāng)前控制任務(wù)時(shí),相應(yīng)的,從預(yù)設(shè)隊(duì)列1中讀取針對(duì)Flash區(qū)塊1的Flash控制命令,從預(yù)設(shè)隊(duì)列2中讀取針對(duì)Flash區(qū)塊2的Flash控制命令,從預(yù)設(shè)隊(duì)列3中讀取針對(duì)Flash區(qū)塊3的Flash控制命令。

Flash控制器構(gòu)建預(yù)設(shè)隊(duì)列,將CPU發(fā)送的Flash控制命令寫入預(yù)設(shè)隊(duì)列的方式,使得Flash控制器可以根據(jù)不同的命令階段對(duì)不同的Flash區(qū)塊對(duì)應(yīng)的Flash控制命令進(jìn)行調(diào)度,實(shí)現(xiàn)Flash控制器對(duì)不同的Flash區(qū)塊的并行處理。例如,預(yù)設(shè)隊(duì)列中存儲(chǔ)有Flash控制命令A(yù)和Flash控制命令B,F(xiàn)lash控制命令A(yù)對(duì)應(yīng)Flash區(qū)塊A,F(xiàn)lash控制命令B對(duì)應(yīng)Flash區(qū)塊B,F(xiàn)lash控制器可以首先從預(yù)設(shè)隊(duì)列中讀取Flash控制命令A(yù),并對(duì)Flash區(qū)塊A進(jìn)行與Flash控制命令A(yù)所對(duì)應(yīng)的操作,F(xiàn)lash控制器不必等到Flash區(qū)塊A執(zhí)行完Flash控制命令A(yù)所對(duì)應(yīng)的操作后就可以從預(yù)設(shè)隊(duì)列中讀取Flash控制命令B,并對(duì)Flash區(qū)塊B進(jìn)行與Flash控制命令B所對(duì)應(yīng)的操作,實(shí)現(xiàn)了對(duì)Flash區(qū)塊A和Flash區(qū)塊B的并行操作。

第二寫入模塊14,用于將命令執(zhí)行結(jié)果寫入所述預(yù)設(shè)隊(duì)列中,以供所述CPU從所述預(yù)設(shè)隊(duì)列中讀取命令執(zhí)行結(jié)果,并根據(jù)所述命令執(zhí)行結(jié)果執(zhí)行相應(yīng)的操作;

所述命令執(zhí)行結(jié)果為對(duì)Flash進(jìn)行與所述當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令所對(duì)應(yīng)的操作的結(jié)果。

在本實(shí)施例中,操作模塊13在對(duì)Flash進(jìn)行與所述當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令所對(duì)應(yīng)的操作之后,將命令執(zhí)行結(jié)果寫入預(yù)設(shè)隊(duì)列中緩存,而不再是將攜帶有命令執(zhí)行結(jié)果的中斷請(qǐng)求發(fā)送至CPU,使CPU由被動(dòng)的根據(jù)命令執(zhí)行結(jié)果執(zhí)行相應(yīng)的操作轉(zhuǎn)變?yōu)橹鲃?dòng)的從預(yù)設(shè)隊(duì)列中讀取命令執(zhí)行結(jié)果,并根據(jù)命令執(zhí)行結(jié)果執(zhí)行相應(yīng)的操作,因此CPU可以不中斷當(dāng)前運(yùn)行的程序,而是可以在運(yùn)行完當(dāng)前運(yùn)行的程序后,再?gòu)念A(yù)設(shè)隊(duì)列中讀取命令執(zhí)行結(jié)果,并根據(jù)所述命令執(zhí)行結(jié)果執(zhí)行相應(yīng)的操作,不再需要進(jìn)行將當(dāng)前正在運(yùn)行的程序相關(guān)的指令壓入堆棧和從堆棧里讀取當(dāng)前正在運(yùn)行的程序相關(guān)的指令的操作。

在Flash控制器僅構(gòu)建一個(gè)預(yù)設(shè)隊(duì)列時(shí),F(xiàn)lash控制器將命令執(zhí)行結(jié)果寫入該預(yù)設(shè)隊(duì)列中即可。在Flash控制器構(gòu)建多個(gè)預(yù)設(shè)隊(duì)列中,第二寫入模塊14則將命令執(zhí)行結(jié)果寫入命令執(zhí)行結(jié)果對(duì)應(yīng)的Flash控制命令對(duì)應(yīng)的預(yù)設(shè)隊(duì)列中。仍以步驟S102中Flash控制器控制一個(gè)Flash,該Flash被劃分為Flash區(qū)塊1、Flash區(qū)塊2和Flash區(qū)塊3,F(xiàn)lash控制器構(gòu)建三個(gè)預(yù)設(shè)隊(duì)列,分別為預(yù)設(shè)隊(duì)列1、預(yù)設(shè)隊(duì)列2和預(yù)設(shè)隊(duì)列3為例,F(xiàn)lash控制器在得到針對(duì)Flash區(qū)塊1的Flash控制命令對(duì)應(yīng)的命令執(zhí)行結(jié)果1時(shí),將命令執(zhí)行結(jié)果1寫入預(yù)設(shè)隊(duì)列1中,F(xiàn)lash控制器在得到針對(duì)Flash區(qū)塊2的Flash控制命令對(duì)應(yīng)的命令執(zhí)行結(jié)果2時(shí),將命令執(zhí)行結(jié)果2寫入預(yù)設(shè)隊(duì)列2中,F(xiàn)lash控制器在得到針對(duì)Flash區(qū)塊3的Flash控制命令對(duì)應(yīng)的命令執(zhí)行結(jié)果3時(shí),將命令執(zhí)行結(jié)果3寫入預(yù)設(shè)隊(duì)列3中。

當(dāng)然,在本實(shí)施例中,存放CPU發(fā)送的Flash控制命令的預(yù)設(shè)隊(duì)列和存放CPU發(fā)送的Flash控制命令對(duì)應(yīng)的命令執(zhí)行結(jié)果的預(yù)設(shè)隊(duì)列可以不同,只需要Flash控制器構(gòu)建不同的預(yù)設(shè)隊(duì)列即可。

在本實(shí)施例中,讀取模塊12包括:第一讀取單元,用于從所述預(yù)設(shè)隊(duì)列中讀取當(dāng)前控制任務(wù)對(duì)應(yīng)的多個(gè)不同的子Flash控制命令,所述子Flash控制命令為針對(duì)某一個(gè)Flash區(qū)塊的Flash控制命令。

在本實(shí)施例中,操作模塊13包括:第一操作單元,用于并行對(duì)各個(gè)所述子Flash控制命令對(duì)應(yīng)的Flash區(qū)塊進(jìn)行相應(yīng)的操作。

在從預(yù)設(shè)隊(duì)列中一次性讀取出當(dāng)前控制任務(wù)對(duì)應(yīng)的多個(gè)不同的子Flash控制命令后,并行對(duì)各個(gè)所述子Flash控制命令對(duì)應(yīng)的Flash區(qū)塊進(jìn)行相應(yīng)的操作,可以提高Flash控制器的工作效率,并充分的利用了Flash控制器所控制的Flash的接口帶寬。

當(dāng)然,在本實(shí)施例中,讀取模塊12可以包括:第二讀取單元,用于從所述預(yù)設(shè)隊(duì)列中讀取當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令。

所述操作模塊13可以包括:解析單元和第二操作單元。

解析單元,用于通過(guò)預(yù)設(shè)指令集解析所述當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令,得到底層Flash指令,所述底層Flash指令為可被所述Flash控制器直接識(shí)別的指令。

在本實(shí)施例中,在Flash控制器所控制的Flash時(shí)序發(fā)生變化時(shí),可以通過(guò)更改預(yù)設(shè)指令集,來(lái)保證Flash控制器解析出的底層Flash控制命令仍能被Flash識(shí)別,從而保證Flash控制器仍能對(duì)時(shí)序發(fā)生變化的Flash進(jìn)行控制,而不需要為了適應(yīng)Flash的時(shí)序變化更改Flash控制器的硬件設(shè)計(jì),從而改善了Flash控制器設(shè)計(jì)的靈活性。

第二操作單元,用于對(duì)所述Flash進(jìn)行與所述底層Flash指令對(duì)應(yīng)的操作。

實(shí)施例三

本實(shí)施例提供了一種Flash控制裝置,應(yīng)用于CPU,請(qǐng)參見(jiàn)圖6,F(xiàn)lash控制裝置包括:發(fā)送模塊21和執(zhí)行模塊22。

發(fā)送模塊21,用于發(fā)送Flash控制命令至Flash控制器,以使所述Flash控制器將接收到的Flash控制命令寫入預(yù)設(shè)隊(duì)列中,以及從所述預(yù)設(shè)隊(duì)列中讀取當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令,并對(duì)Flash進(jìn)行與所述當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令所對(duì)應(yīng)的操作,以及將命令執(zhí)行結(jié)果寫入所述預(yù)設(shè)隊(duì)列中。

在本實(shí)施例中,CPU可以采用串行的方式向Flash控制器發(fā)送Flash控制命令,即每次發(fā)送一個(gè)Flash控制命令。

當(dāng)然,發(fā)送模塊21具體可以包括:發(fā)送單元,用于并行發(fā)送多個(gè)不同的Flash控制命令至Flash控制器。實(shí)現(xiàn)CPU可以并行發(fā)送多個(gè)不同的Flash控制命令至Flash控制器,即CPU一次發(fā)送多個(gè)不同的Flash控制命令至Flash控制器。

執(zhí)行模塊22,用于從所述預(yù)設(shè)隊(duì)列中讀取命令執(zhí)行結(jié)果,并根據(jù)所述命令執(zhí)行結(jié)果執(zhí)行相應(yīng)的操作。

所述命令執(zhí)行結(jié)果為對(duì)Flash進(jìn)行與所述當(dāng)前控制任務(wù)對(duì)應(yīng)的Flash控制命令所對(duì)應(yīng)的操作的結(jié)果。

在本實(shí)施例中,由于CPU可以主動(dòng)從預(yù)設(shè)隊(duì)列中讀取命令執(zhí)行結(jié)果,因此CPU可以在任意時(shí)刻從預(yù)設(shè)隊(duì)列中讀取命令執(zhí)行結(jié)果,具體的,可以在當(dāng)前運(yùn)行程序運(yùn)行結(jié)束后從預(yù)設(shè)隊(duì)列中讀取命令執(zhí)行結(jié)果,并根據(jù)命令執(zhí)行結(jié)果執(zhí)行相應(yīng)的操作,不再需要進(jìn)行將當(dāng)前正在運(yùn)行的程序相關(guān)的指令壓入堆棧和從堆棧里讀取當(dāng)前正在運(yùn)行的程序相關(guān)的指令的操作,減少了工作量,從而縮短了CPU的整體工作時(shí)間,提高了CPU的整體工作效率。

需要說(shuō)明的是,本說(shuō)明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見(jiàn)即可。對(duì)于裝置類實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。

最后,還需要說(shuō)明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。

以上對(duì)本申請(qǐng)所提供的一種Flash控制方法及裝置進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本申請(qǐng)的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本申請(qǐng)的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請(qǐng)的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書內(nèi)容不應(yīng)理解為對(duì)本申請(qǐng)的限制。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
藁城市| 平塘县| 昌平区| 望谟县| 肇庆市| 定结县| 上饶市| 基隆市| 锦屏县| 庆安县| 普宁市| 如皋市| 沅陵县| 甘谷县| 新营市| 新河县| 读书| 沙雅县| 称多县| 府谷县| 武清区| 渭源县| 申扎县| 苗栗市| 甘泉县| 大邑县| 武穴市| 浪卡子县| 新龙县| 遂平县| 兴义市| 扎兰屯市| 八宿县| 内黄县| 温州市| 呼图壁县| 南阳市| 仲巴县| 瓦房店市| 潼南县| 毕节市|