亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種芯片的數(shù)據(jù)讀寫方法、相應(yīng)裝置和系統(tǒng)的制作方法

文檔序號(hào):6613926閱讀:272來(lái)源:國(guó)知局
專利名稱:一種芯片的數(shù)據(jù)讀寫方法、相應(yīng)裝置和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,尤其涉及芯片的數(shù)據(jù)讀寫技術(shù)。
背景技術(shù)
終端中有大量的數(shù)據(jù)需要在非易失閃存(NvRAM, Non-Volatile Random Access Memory)芯片中進(jìn)行寫入和讀取,這些數(shù)據(jù)包括廠商進(jìn)行自動(dòng)生產(chǎn)測(cè) 試的數(shù)據(jù)、終端出廠時(shí)的缺省配置數(shù)據(jù)、用戶更改的配置數(shù)據(jù)、終端應(yīng)用使用 的數(shù)據(jù)等。
在終端運(yùn)行過(guò)程中,會(huì)頻繁的讀寫NvRAM芯片上的數(shù)據(jù),而每次讀寫的 數(shù)據(jù)量大小也有很大差異。目前終端上的NvRAM芯片基本上有NOR (Not R,或非門)和NAND (Not AND,與非門)兩類,對(duì)兩類閃存芯片的數(shù)據(jù) 寫入操作之前都需要先進(jìn)行擦除操作,此外,NOR類型的NvRAM芯片與 NAND類型的NvRAM芯片相比,具有以下特點(diǎn)
1 、 NOR類型的NvRAM芯片的數(shù)據(jù)讀取速度比NAND類型的NvRAM芯 片的數(shù)據(jù)讀取速度稍快一些;
2、 NOR類型的NvRAM芯片的數(shù)據(jù)寫入速度比NAND類型的NvRAM芯 片的數(shù)據(jù)寫入速度慢很多;
3、 NOR類型的NvRAM芯片5s的數(shù)據(jù)擦除速度比NAND類型的NvRAM 芯片的4ms的數(shù)據(jù)擦除速度慢很多;
4、 NOR類型的NvRAM芯片的擦除單元比NAND類型的NvRAM芯片的 擦除單元更大,相應(yīng)的擦除電路更復(fù)雜。
考慮到芯片容量、生產(chǎn)成本、電路設(shè)計(jì)、內(nèi)存技術(shù)驅(qū)動(dòng)程序等方面的因素, 不同廠商會(huì)選擇不同的閃存芯片。如果選擇了 NOR類型的閃存芯片,則需要考慮NOR類型NvRAM芯片的擦除或?qū)懭氲臅r(shí)間較長(zhǎng)的因素。
現(xiàn)有技術(shù)應(yīng)用比較普遍的方案是將芯片的擦除和寫入操作放在后臺(tái)線程 處理,即后臺(tái)線程調(diào)度時(shí),首先將要讀取或?qū)懭氲臄?shù)據(jù)加入到緩存中的單向鏈 表中。當(dāng)寫入數(shù)據(jù)時(shí),需針對(duì)NOR類型NvRAM芯片的特點(diǎn),先擦除數(shù)據(jù)預(yù) 寫入的資源塊(Block)中存儲(chǔ)的內(nèi)容,再將緩存中的單向鏈表中的每個(gè)節(jié)點(diǎn) 中的數(shù)據(jù)逐一寫入芯片中。當(dāng)讀取數(shù)據(jù)時(shí),首先在緩存中的單向鏈表中遍歷查 找,若緩存中的某個(gè)節(jié)點(diǎn)包含所需讀取的數(shù)據(jù),則從緩存中讀取,否則,則將 緩存中的數(shù)據(jù)寫入芯片后,再?gòu)腘vRAM芯片中進(jìn)行讀取。 上述現(xiàn)行方案中,主要存在以下缺點(diǎn)
在寫入數(shù)據(jù)時(shí),因?yàn)镹vRAM芯片的寫入操作只能在空的或已擦除的Block 中進(jìn)行,所以每將緩存中的一個(gè)節(jié)點(diǎn)寫入芯片前,都需要先擦除其所要寫入的 NvRAM芯片上的Block中的內(nèi)容,然后再將數(shù)據(jù)寫入到空的或已擦除的Block 中。當(dāng)緩存中的節(jié)點(diǎn)較多時(shí),就需要^"除Block多次,例如拷貝USIM卡上 N條電話條目至終端上,首先將N個(gè)節(jié)點(diǎn)加入到緩存中的單向鏈表,后臺(tái)線程 調(diào)度時(shí),每向NOR類型NvRAM芯片中寫入一個(gè)節(jié)點(diǎn)都要擦除要寫入數(shù)據(jù)的 Block—次。由于NOR類型NvRAM芯片中的Block—般為64-128KB,執(zhí) 行一個(gè)寫入或擦除操作的時(shí)間為5s,比較耗時(shí)。如果N=200,則整個(gè)拷貝時(shí) 間約為16.7分鐘,并且需要擦除Block 200次。顯然,這樣不但非常耗時(shí), 寫入效率低,而且對(duì)芯片擦除次數(shù)過(guò)多,會(huì)影響芯片的使用壽命。另外,如果 數(shù)據(jù)的寫入時(shí)間過(guò)長(zhǎng),緩存中的數(shù)據(jù)還沒(méi)有全部寫入到芯片中,如果在這個(gè)過(guò) 程中系統(tǒng)出現(xiàn)異?;驍嚯?,就會(huì)造成緩存中的數(shù)據(jù)丟失。
在讀取數(shù)據(jù)時(shí),當(dāng)需要讀取的數(shù)據(jù)部分在緩存中,部分在NvRAM芯片中 時(shí),也即需要讀取的數(shù)據(jù)的地址范圍超出緩存中某個(gè)節(jié)點(diǎn)的地址范圍,按照現(xiàn) 行的方案,需要先將緩存中的數(shù)據(jù)寫入到NvRAM芯片中,再?gòu)腘vRAM芯片 中讀取需要的數(shù)據(jù)。例如緩存中的節(jié)點(diǎn)A保存的數(shù)據(jù)的地址范圍是 0x00001000—0x00001100 ,需要讀取數(shù)據(jù)的地址范圍是0x00001050—0x00001150,要讀取的數(shù)據(jù)不能全部從緩存中的節(jié)點(diǎn)A中讀取 到,則需要先將緩存中的節(jié)點(diǎn)A保存的數(shù)據(jù)寫入NvRAM芯片中對(duì)應(yīng)地址范圍 的Block中,相應(yīng)地,就需要預(yù)先擦除對(duì)應(yīng)地址范圍的Block中的內(nèi)容,在將 緩存中的節(jié)點(diǎn)A保存的數(shù)據(jù)寫入NvRAM芯片后,再?gòu)腘vRAM芯片中讀取需 要的數(shù)據(jù)。可見(jiàn),這樣無(wú)形中增加了擦寫芯片的時(shí)間,讀取效率低。 總之,現(xiàn)有的數(shù)據(jù)讀寫方法運(yùn)行效率低,并且影響芯片的使用壽命。

發(fā)明內(nèi)容
本發(fā)明提供了一種芯片的數(shù)據(jù)讀寫方法、相應(yīng)裝置和系統(tǒng),能夠解決現(xiàn)有 的數(shù)據(jù)讀寫方法運(yùn)行效率低,并且影響芯片使用壽命的問(wèn)題。 本發(fā)明實(shí)施例通過(guò)如下技術(shù)方案實(shí)現(xiàn)
本發(fā)明實(shí)施例4是供了一種芯片的數(shù)據(jù)寫入方法,該凝:據(jù)寫入方法包括 從芯片中找到與塊二叉樹(shù)的根節(jié)點(diǎn)對(duì)應(yīng)的資源塊,并將該資源塊中存儲(chǔ)的 數(shù)據(jù)讀取到指定緩存中;以及,根據(jù)所述塊二叉樹(shù)的根節(jié)點(diǎn)及其左子樹(shù)上的所
有節(jié)點(diǎn)中存儲(chǔ)的數(shù)據(jù)信息,從緩存中找到相應(yīng)的數(shù)據(jù);
利用從緩存中找到的相應(yīng)數(shù)據(jù)將讀取到指定緩存中的數(shù)據(jù)更新,并將更新 后得到的凄t據(jù)寫入到所述芯片中。
本發(fā)明實(shí)施例還提供了 一種芯片的數(shù)據(jù)讀取方法,該數(shù)據(jù)讀取方法包括
根據(jù)芯片中的各個(gè)資源塊對(duì)應(yīng)的地址范圍,對(duì)需要讀取數(shù)據(jù)的地址范圍進(jìn) 行切割,得到對(duì)應(yīng)不同地址范圍的多個(gè)凝:據(jù)塊;
遍歷塊二叉樹(shù)的每個(gè)節(jié)點(diǎn)中存儲(chǔ)的數(shù)據(jù)信息,若所述多個(gè)數(shù)據(jù)塊的數(shù)據(jù)信 息全部能在塊二叉樹(shù)的節(jié)點(diǎn)中讀取到,則從緩存中讀取數(shù)據(jù);若所述多個(gè)數(shù)據(jù) 塊的數(shù)據(jù)信息全部不能在塊二叉樹(shù)的節(jié)點(diǎn)中讀取到,則從芯片中讀取數(shù)據(jù);若 所述多個(gè)數(shù)據(jù)塊的數(shù)據(jù)信息部分能在塊二叉樹(shù)的節(jié)點(diǎn)中讀取到,則讀取芯片中 的數(shù)據(jù),并根據(jù)能在塊二叉樹(shù)的節(jié)點(diǎn)中讀取到的數(shù)據(jù)信息,從緩存中找到相應(yīng) 的數(shù)據(jù),并利用從緩存中找到的相應(yīng)數(shù)據(jù)將從芯片中讀取到的數(shù)據(jù)更新。
9本發(fā)明實(shí)施例還提供了 一種芯片的數(shù)據(jù)寫入裝置,該數(shù)據(jù)寫入裝置包括 芯片數(shù)據(jù)讀取單元、更新數(shù)據(jù)獲取單元以及數(shù)據(jù)更新及寫入單元;
其中,芯片數(shù)據(jù)讀取單元,用于從芯片中找到與塊二叉樹(shù)的根節(jié)點(diǎn)對(duì)應(yīng)的 資源塊,并將該資源塊中存儲(chǔ)的數(shù)據(jù)讀取到指定緩存中;
更新數(shù)據(jù)獲取單元,用于根據(jù)所述塊二叉樹(shù)的根節(jié)點(diǎn)及其左子樹(shù)上的所有 節(jié)點(diǎn)中存儲(chǔ)的數(shù)據(jù)信息,從緩存中找到相應(yīng)的數(shù)據(jù);
數(shù)據(jù)更新及寫入單元,用于利用從緩存中找到的相應(yīng)數(shù)據(jù)將讀取到指定緩 存中的數(shù)據(jù)更新,并將更新后得到的數(shù)據(jù)寫入到所述芯片中。
本發(fā)明實(shí)施例還提供了 一種芯片的數(shù)據(jù)讀取裝置,該數(shù)據(jù)讀取裝置包括 數(shù)據(jù)切割單元、遍歷單元、第一讀取單元、第二讀取單元以及第三讀取單元;
其中,數(shù)據(jù)切割單元,用于根據(jù)芯片中的各個(gè)資源塊對(duì)應(yīng)的地址范圍,對(duì) 需要讀取數(shù)據(jù)的地址范圍進(jìn)行切割,得到對(duì)應(yīng)不同地址范圍的多個(gè)數(shù)據(jù)塊;
遍歷單元,用于遍歷塊二叉樹(shù)的每個(gè)節(jié)點(diǎn)中存儲(chǔ)的數(shù)據(jù)信息;
第 一讀取單元,用于當(dāng)所述遍歷單元遍歷的結(jié)果為所述塊二叉樹(shù)的節(jié)點(diǎn)完
全包含所述多個(gè)數(shù)據(jù)塊的數(shù)據(jù)信息時(shí),則從緩存中讀取數(shù)據(jù);
第二讀取單元,用于當(dāng)所述遍歷單元遍歷的結(jié)果為所述塊二叉樹(shù)的節(jié)點(diǎn)完 全不包含所述多個(gè)數(shù)據(jù)塊的數(shù)據(jù)信息時(shí),則從芯片中讀取數(shù)據(jù);
第三讀取單元,用于當(dāng)所述遍歷單元遍歷的結(jié)果為所述塊二叉樹(shù)的節(jié)點(diǎn)部 分包含所述多個(gè)數(shù)據(jù)塊的數(shù)據(jù)信息時(shí),則讀取芯片中的數(shù)據(jù),并根據(jù)能在塊二 叉樹(shù)的節(jié)點(diǎn)中讀取到的數(shù)據(jù)信息,從緩存中找到相應(yīng)的數(shù)據(jù),并利用從緩存中 找到的相應(yīng)數(shù)據(jù)將從芯片中讀取到的數(shù)據(jù)更新。
本發(fā)明實(shí)施例還提供了 一種芯片的數(shù)據(jù)讀寫系統(tǒng),該數(shù)據(jù)讀寫系統(tǒng)包括 數(shù)據(jù)寫入裝置和數(shù)據(jù)讀取裝置;
其中,數(shù)據(jù)寫入裝置,用于從芯片中找到與塊二叉樹(shù)的根節(jié)點(diǎn)對(duì)應(yīng)的資源
塊,并將該資源塊中存儲(chǔ)的數(shù)據(jù)讀取到指定緩存中;以及,根據(jù)所述塊二叉樹(shù) 的根節(jié)點(diǎn)及其左子樹(shù)上的所有節(jié)點(diǎn)中存儲(chǔ)的數(shù)據(jù)信息,從緩存中找到相應(yīng)的數(shù)據(jù);利用從緩存中找到的相應(yīng)數(shù)據(jù)將讀取到指定緩存中的數(shù)據(jù)更新,并將更新 后得到的數(shù)據(jù)寫入到所述芯片中;
數(shù)據(jù)讀取裝置,用于根據(jù)芯片中的各個(gè)資源塊對(duì)應(yīng)的地址范圍,對(duì)需要讀 取數(shù)據(jù)的地址范圍進(jìn)行切割,得到對(duì)應(yīng)不同地址范圍的多個(gè)數(shù)據(jù)塊;遍歷塊二 叉樹(shù)的每個(gè)節(jié)點(diǎn)中存儲(chǔ)的數(shù)據(jù)信息,若所述多個(gè)數(shù)據(jù)塊的數(shù)據(jù)信息全部能在塊 二叉樹(shù)的節(jié)點(diǎn)中讀^i到,則從緩存中讀取數(shù)據(jù);若所述多個(gè)數(shù)據(jù)塊的數(shù)據(jù)信息 全部不能在塊二叉樹(shù)的節(jié)點(diǎn)中讀取到,則從芯片中讀取數(shù)據(jù);若所述多個(gè)數(shù)據(jù) 塊的數(shù)據(jù)信息部分能在塊二叉樹(shù)的節(jié)點(diǎn)中讀取到,則讀取芯片中的數(shù)據(jù),并根 據(jù)能在塊二叉樹(shù)的節(jié)點(diǎn)中讀取到的數(shù)據(jù)信息,從緩存中找到相應(yīng)的數(shù)據(jù),并利 用從緩存中找到的相應(yīng)數(shù)據(jù)將從芯片中讀取到的數(shù)據(jù)更新。
通過(guò)上述技術(shù)方案,本發(fā)明實(shí)施例在執(zhí)行讀寫操作時(shí),以芯片中的一個(gè) Block在塊二叉樹(shù)中對(duì)應(yīng)的所有節(jié)點(diǎn)為操作單位,不僅能夠提高讀寫效率,而 且也能夠減少對(duì)芯片的操作次數(shù),從而能夠提高芯片的使用壽命。


圖1為本發(fā)明第一實(shí)施例的一種芯片的數(shù)據(jù)寫入方法流程圖2為本發(fā)明實(shí)施例的Block 二叉樹(shù)結(jié)構(gòu)示意圖3為本發(fā)明實(shí)施例緩存和芯片的數(shù)據(jù)存儲(chǔ)關(guān)系示意圖4為本發(fā)明第一實(shí)施例的數(shù)據(jù)寫入過(guò)程示意圖5為本發(fā)明第二實(shí)施例的一種芯片的數(shù)據(jù)讀取方法流程圖6為本發(fā)明第三實(shí)施例的一種芯片的凄t據(jù)寫入裝置示意圖7為本發(fā)明第四實(shí)施例的 一種芯片的數(shù)據(jù)讀取裝置示意圖8為本發(fā)明第五實(shí)施例的 一 種芯片的凄史據(jù)讀寫系統(tǒng)示意圖。
具體實(shí)施例方式
本發(fā)明實(shí)施例提供了一種芯片的數(shù)據(jù)讀寫方法、相應(yīng)裝置和系統(tǒng),能夠提
ii高數(shù)據(jù)的讀寫效率和芯片的使用壽命,下面結(jié)合說(shuō)明書附圖和具體實(shí)施例對(duì)本 發(fā)明技術(shù)方案進(jìn)行詳細(xì)闡述。
本發(fā)明第 一 實(shí)施例提供了 一種芯片的數(shù)據(jù)寫入方法,在執(zhí)行第 一 實(shí)施例
時(shí),將緩存中的數(shù)據(jù)結(jié)構(gòu)定義為塊(Block) 二叉樹(shù)結(jié)構(gòu)。 該Block 二叉樹(shù)結(jié)構(gòu)如圖2所示,包括以下特征
1、 Block二叉樹(shù)的每個(gè)節(jié)點(diǎn),用于存儲(chǔ)信息,該信息包括數(shù)據(jù)信息(即 數(shù)據(jù)起始地址和數(shù)據(jù)長(zhǎng)度)、并選擇性地包括指向左子樹(shù)的指針和/或指向右子 樹(shù)的指針;
2、 Block 二叉樹(shù)的最大深度即為NvRAM芯片中的資源塊(Block)的數(shù) 目,塊二叉樹(shù)的實(shí)際深度為當(dāng)前緩存中數(shù)據(jù)對(duì)應(yīng)于芯片中資源塊的數(shù)目;
3、 Block二叉樹(shù)的根節(jié)點(diǎn)用于存儲(chǔ)第一次寫入緩存中數(shù)據(jù)的數(shù)據(jù)信息;
4、 Block二叉樹(shù)的任意一個(gè)節(jié)點(diǎn)及該節(jié)點(diǎn)的右子樹(shù)上的節(jié)點(diǎn)分別對(duì)應(yīng)非易 失閃存芯片中的不同Block,例如,根節(jié)點(diǎn)Block—1_node a與NvRAM芯片的 Block 1對(duì)應(yīng),根節(jié)點(diǎn)的右子樹(shù)上的節(jié)點(diǎn)Block_2—node a與Block 2對(duì)應(yīng),依 次類推,根節(jié)點(diǎn)右子樹(shù)的右子樹(shù)上的節(jié)點(diǎn)Block—3—node a與Block 3對(duì) 應(yīng)……;
5、 塊二叉樹(shù)的任意一個(gè)節(jié)點(diǎn)及該節(jié)點(diǎn)的左子樹(shù)上的節(jié)點(diǎn)對(duì)應(yīng)非易失閃存 芯片中的同一個(gè)Block,例如,根節(jié)點(diǎn)Block—1_node a及其左子樹(shù)上的所有 節(jié)點(diǎn)(Block_1—node b、 Block_1—node c......)都對(duì)應(yīng)NvRAM芯片中的
Block1;
6、 每個(gè)節(jié)點(diǎn)只保存數(shù)據(jù)的數(shù)據(jù)信息(數(shù)據(jù)起始地址和數(shù)據(jù)長(zhǎng)度),而不保 存具體數(shù)據(jù)。
對(duì)于上述特征1 ,當(dāng)用于存儲(chǔ)信息的節(jié)點(diǎn)為根節(jié)點(diǎn)或右子樹(shù)上的子節(jié)點(diǎn)時(shí), 則存儲(chǔ)于該節(jié)點(diǎn)的信息包括數(shù)據(jù)信息、并包括指向左子樹(shù)的指針和/或指向右 子樹(shù)的指針;當(dāng)用于存儲(chǔ)信息的節(jié)點(diǎn)為左子樹(shù)上的子節(jié)點(diǎn)時(shí),則存儲(chǔ)于該節(jié)點(diǎn) 的信息包括數(shù)據(jù)信息和指向左子樹(shù)的指針。對(duì)于上述特征4,對(duì)Block—1—node a、 Block—2—node a、 Block—3—node a......的區(qū)分,僅用于區(qū)分NvRAM芯片中不同的Block,和芯片中的Block順
序無(wú)關(guān)。
對(duì)于上述特征5,對(duì)Block—1—node a、 Block一1—node b、 Block—1—node c......的區(qū)分,僅用于區(qū)分向NvRAM芯片寫入數(shù)據(jù)時(shí)的操作次序,和數(shù)據(jù)的
存儲(chǔ)次序無(wú)關(guān)。
對(duì)于上述特征6,具體數(shù)據(jù)保存在緩存中,如圖3所示,緩存中包括具 體數(shù)據(jù)、用來(lái)存儲(chǔ)Block 二叉樹(shù)的空間、以及用來(lái)存儲(chǔ)從芯片中讀取到的數(shù)據(jù) 的指定緩存A,該指定緩存A為緩存中的一個(gè)空白區(qū)域。
Block 二叉樹(shù)中每個(gè)節(jié)點(diǎn)可以定義如下
typedef struct —MAN—NVRAM_DATA—NODE—
kbuf—ptr;〃緩存中數(shù)據(jù)的起始地址 addr; 〃緩存中數(shù)據(jù)在寫入NvRAM芯片時(shí)所在的芯片
void
UINT32 中的起始地址
UINT32
struct 個(gè)Block上*/
struct
length;〃緩存中的數(shù)據(jù)長(zhǎng)度 .MAN—NVRAM—DATA_NODE— *left—ptr; /*左子樹(shù),在同一
_MAN—NVRAM—DATA—NODE— 、ight—ptr;"右子樹(shù),在另一
個(gè)Block上*/
}MAN—NVRAM—DATA—NODE
第一實(shí)施例的具體實(shí)現(xiàn)過(guò)程,如圖1所示,包括如下內(nèi)容 S101、根據(jù)NvRAM芯片中的各個(gè)資源塊對(duì)應(yīng)的地址范圍,對(duì)輸入數(shù)據(jù)的 地址范圍進(jìn)行切割,得到對(duì)應(yīng)不同地址范圍的N個(gè)數(shù)據(jù)塊,并將得到的對(duì)應(yīng)不 同地址范圍的N個(gè)數(shù)據(jù)塊的數(shù)據(jù)信息,存儲(chǔ)到塊二叉樹(shù)中與各個(gè)資源塊對(duì)應(yīng)的 節(jié)點(diǎn)上。其中1<= N <=NvRAM芯片中Block數(shù)目。
例如NVRAM芯片的地址范圍為0x00000000—Ox0007FFFF,芯片中總 共有4個(gè)Block,每個(gè)Block的大小為128k,即Block 1的地址范圍是 0x00000000—0x0001 FFFF , Block 2 的地址范圍是 0x00020000—0x0003FFFF , Block 3 的地址范圍是 0x00040000—0x0005FFFF , Block 4 的地址范圍是 0x00060000—0x0007FFFF 。 第 一 次寫入數(shù)據(jù)的地址范圍是 0x00010000—0x00020100,該地址范圍在Block1和Block2的地址范圍間, 則將寫入的數(shù)據(jù)分成2個(gè)數(shù)據(jù)塊,數(shù)據(jù)塊1對(duì)應(yīng)Block 1,其地址范圍為 0x00010000—0x0001 FFFF ,數(shù)據(jù)塊2對(duì)應(yīng)Block 2,其地址范圍為 0x00020000—0x00020100,則將數(shù)據(jù)塊1對(duì)應(yīng)的數(shù)據(jù)信息存儲(chǔ)到與Block1 對(duì)應(yīng)的塊二叉樹(shù)的根節(jié)點(diǎn)Block—1一node a中,將數(shù)據(jù)塊2對(duì)應(yīng)的數(shù)據(jù)信息存 儲(chǔ)到Block2對(duì)應(yīng)的塊二叉樹(shù)的根節(jié)點(diǎn)的右子樹(shù)上的子節(jié)點(diǎn)Block_2_node a 中。之后若再有數(shù)據(jù)寫入,也按照此方法進(jìn)行分割,并將分割后得到的對(duì)應(yīng)不 同地址范圍的數(shù)據(jù)塊對(duì)應(yīng)的數(shù)據(jù)信息,按照各個(gè)數(shù)據(jù)塊對(duì)應(yīng)的地址范圍存儲(chǔ)到 對(duì)應(yīng)的Block 二叉樹(shù)中,例如,第二次寫入數(shù)據(jù)的地址范圍依然是 0x00010000—0x00020100,則按照上述方法對(duì)該寫入的數(shù)據(jù)方法進(jìn)行分割, 得到地址范圍為0x00010000—0x0001 FFFF的數(shù)據(jù)塊1,和地址范圍為 0x00020000—0x00020100的數(shù)據(jù)塊2,將數(shù)據(jù)塊1對(duì)應(yīng)的數(shù)據(jù)信息存儲(chǔ)到 Block—1_node b中,將數(shù)據(jù)塊2對(duì)應(yīng)的數(shù)據(jù)信息存儲(chǔ)到Block—2—node b中。
S102、將NvRAM芯片中與所述Block二叉樹(shù)的根節(jié)點(diǎn)對(duì)應(yīng)的Block中的 數(shù)據(jù)讀取到指定緩存中;以及根據(jù)根節(jié)點(diǎn)中存儲(chǔ)的數(shù)據(jù)信息,從緩存中找到相 應(yīng)的數(shù)據(jù),并利用找到的數(shù)據(jù)將讀取到指定緩存中的數(shù)據(jù)更新,并將更新后得 到的數(shù)據(jù)寫入到NvRAM芯片中。
如圖4所示,該步驟具體過(guò)程如下
當(dāng)后臺(tái)線程調(diào)度時(shí),首先將Block 1上的數(shù)據(jù)全部讀取到指定緩存A中,如圖3所示,然后根據(jù)Block 1對(duì)應(yīng)的節(jié)點(diǎn)Block—1—node a,以及 Block—1—node a的所有左子樹(shù)上的節(jié)點(diǎn)Block—1—node b、 Block—1—node c......上存儲(chǔ)的數(shù)據(jù)信息中記載的數(shù)據(jù)起始地址和數(shù)據(jù)長(zhǎng)度,從緩存中找到具
體數(shù)據(jù),再利用找到的具體數(shù)據(jù)依次將讀取到指定緩存A中的數(shù)據(jù)更新,也就 是說(shuō),利用找到的具體數(shù)據(jù),將讀取到指定緩存A中與找到的具體數(shù)據(jù)的地址 范圍相同部分的數(shù)據(jù)替換掉,最后再將更新后的數(shù)據(jù)寫入芯片。
5103、 刪除所述根節(jié)點(diǎn)及其所有左子樹(shù),更新Block 二叉樹(shù),得到新的塊 二叉樹(shù)及其根節(jié)點(diǎn)。
5104、 判斷整個(gè)Block 二叉樹(shù)中所有節(jié)點(diǎn)存儲(chǔ)的數(shù)據(jù)信息對(duì)應(yīng)的數(shù)據(jù)是否 全部寫入芯片中,若沒(méi)有全部寫入芯片中,則執(zhí)行S102,若全部寫入芯片中, 則結(jié)束操作。
通過(guò)上述方法能夠提高數(shù)據(jù)的寫入效率,同樣還是以拷貝USIM卡上N條 電話條目至終端為例,NvRAM芯片有4個(gè)Block,每個(gè)Block的大小為128K, 當(dāng)N-200時(shí),最優(yōu)情況下,此200條電話本記錄全部在同一個(gè)Block上,則 拷貝時(shí)間將縮小為5s左右(因?yàn)閷懭階察除一個(gè)Block的時(shí)間就為5s),與現(xiàn) 有技術(shù)的方法相比效率提高了 200倍;最壞情況下,也就是說(shuō)此200條電話 本記錄分布在4個(gè)Block上,則拷貝時(shí)間也僅為20s,與現(xiàn)有技術(shù)的方法相比 效率也提高了 50倍。
本發(fā)明第二實(shí)施例提供了 一種芯片的數(shù)據(jù)讀取方法,在執(zhí)行該實(shí)施例之 前,將緩存中的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)為塊(Block) 二叉樹(shù)結(jié)構(gòu)。該過(guò)程與本發(fā)明第 一實(shí)施例中的相關(guān)描述一致,此處不再詳細(xì)描述。
本發(fā)明第二實(shí)施例的實(shí)現(xiàn)過(guò)程如圖5所示,包括如下內(nèi)容
S201、根據(jù)NvRAM芯片中的各個(gè)資源塊對(duì)應(yīng)的地址范圍,對(duì)需要讀取的 數(shù)據(jù)的地址范圍進(jìn)行切割,得到對(duì)應(yīng)不同地址范圍的N個(gè)數(shù)據(jù)塊。
其中1<= n <=NvRAM芯片中Block數(shù)目。
依然以NvRAM芯片的地址范圍為0x00000000—0x0007FFFF,總共有4
15個(gè)Block,每個(gè)Block的大小為128k為例進(jìn)行說(shuō)明,Block 1的地址范圍是 0x00000000—0x0001FFFF , Block 2 的地址范圍是 0x00020000—0x0003FFFF , Block 3 的地址范圍是 0x00040000—0x0005FFFF , Block 4 的地址范圍是 0x00060000—0x0007FFFF 。 需要讀取數(shù)據(jù)的地址范圍是 0x00010000—0x00020100,該地址范圍在Block 1和Block 2的地址范圍間, 將需要讀取的數(shù)據(jù)分成2個(gè)數(shù)據(jù)塊,數(shù)據(jù)塊1對(duì)應(yīng)Block1,其地址范圍為 0x00010000—0x0001FFFF,數(shù)據(jù)塊2對(duì)應(yīng)Block 2,其地址范圍為 0x00020000—0x00020100,則從與Block1對(duì)應(yīng)的根節(jié)點(diǎn)Block_1—node a以 及Block_1—node a的所有左子樹(shù)上的節(jié)點(diǎn)中讀取數(shù)據(jù)塊1的數(shù)據(jù)信息,從與 Block2對(duì)應(yīng)的根節(jié)點(diǎn)的右子樹(shù)上的節(jié)點(diǎn)Block—2—node a以及Block—2_node a的所有左子樹(shù)上的節(jié)點(diǎn)中讀取數(shù)據(jù)塊2的數(shù)據(jù)信息。
5202、 遍歷塊二叉樹(shù)每個(gè)節(jié)點(diǎn)中存儲(chǔ)的數(shù)據(jù)信息,判斷N個(gè)數(shù)據(jù)塊的數(shù) 據(jù)信息是否能在塊二叉樹(shù)的節(jié)點(diǎn)中讀取到,若N個(gè)數(shù)據(jù)塊的數(shù)據(jù)信息全部能在 塊二叉樹(shù)的節(jié)點(diǎn)中讀取到,則執(zhí)行S203;若N個(gè)數(shù)據(jù)塊的數(shù)據(jù)信息全部不能 在塊二叉樹(shù)的節(jié)點(diǎn)中讀取到,則執(zhí)行S204;若N個(gè)數(shù)據(jù)塊的數(shù)據(jù)信息部分能 在塊二叉樹(shù)的節(jié)點(diǎn)中讀取到,則執(zhí)行S205。
5203、 從緩存中讀取數(shù)據(jù);
5204、 從芯片中讀取數(shù)據(jù);
5205、 讀取芯片中的全部數(shù)據(jù),根據(jù)能在塊二叉樹(shù)的節(jié)點(diǎn)中讀取到的數(shù) 據(jù)信息記載的數(shù)據(jù)起始地址和數(shù)據(jù)長(zhǎng)度,從緩存中找到具體數(shù)據(jù),并利用找到 的具體數(shù)據(jù)將從芯片中讀取到的數(shù)據(jù)更新,也就是說(shuō),利用找到的具體數(shù)據(jù)將 從芯片中讀取到的與找到的具體數(shù)據(jù)的地址范圍相同部分的數(shù)據(jù)替換掉。
本發(fā)明第三實(shí)施例提供了一種芯片的數(shù)據(jù)寫入裝置,如圖6所示,該數(shù)據(jù) 寫入裝置包括芯片數(shù)據(jù)讀取單元、更新數(shù)據(jù)獲取單元、數(shù)據(jù)更新及寫入單元; 該數(shù)括數(shù)據(jù)切割單元和^t據(jù)信息存儲(chǔ)單元;該數(shù)據(jù)寫入裝置也可以進(jìn)一步包括 塊二叉樹(shù)構(gòu)造單元;
其中,芯片數(shù)據(jù)讀取單元,用于從芯片中找到與塊二叉樹(shù)的根節(jié)點(diǎn)對(duì)應(yīng)的 資源塊,并將該資源塊中存儲(chǔ)的數(shù)據(jù)讀取到指定緩存中;
更新數(shù)據(jù)獲取單元,用于根據(jù)所述塊二叉樹(shù)的根節(jié)點(diǎn)及其左子樹(shù)上的所有 節(jié)點(diǎn)中存儲(chǔ)的數(shù)據(jù)信息,從緩存中找到相應(yīng)的數(shù)據(jù);
數(shù)據(jù)更新及寫入單元,用于利用從緩存中找到的相應(yīng)數(shù)據(jù)將讀取到指定緩 存中的數(shù)據(jù)更新,并將更新后得到的數(shù)據(jù)寫入到所述芯片中。
該數(shù)據(jù)寫入裝置進(jìn)一步包括的刪除單元,用于當(dāng)芯片數(shù)據(jù)讀取單元和更新 數(shù)據(jù)獲取單元得到數(shù)據(jù)后,刪除所述根節(jié)點(diǎn)及其左子樹(shù),得到新的塊二叉樹(shù)及 其根節(jié)點(diǎn)。
該數(shù)據(jù)寫入裝置進(jìn)一步包括的塊二叉樹(shù)構(gòu)造單元,用于在緩存中構(gòu)造塊二 叉樹(shù),并使構(gòu)造的塊二叉樹(shù)滿足條件塊二叉樹(shù)的根節(jié)點(diǎn),用于存儲(chǔ)信息,該 信息包括數(shù)據(jù)信息,并包括指向左子樹(shù)的指針和/或指向右子樹(shù)的指針;塊二 叉樹(shù)的子節(jié)點(diǎn),用于存儲(chǔ)信息,該信息包括數(shù)據(jù)信息,并可選地包括指向左 子樹(shù)的指針和/或指向右子樹(shù)的指針;塊二叉樹(shù)的最大深度為芯片中的資源塊的 數(shù)目,塊二叉樹(shù)的實(shí)際深度為當(dāng)前緩存中數(shù)據(jù)對(duì)應(yīng)于芯片中資源塊的數(shù)目;塊 二叉樹(shù)的任意一個(gè)節(jié)點(diǎn)及該節(jié)點(diǎn)的左子樹(shù)上的節(jié)點(diǎn)對(duì)應(yīng)芯片中的同一個(gè)資源 塊;塊二叉樹(shù)的任意一個(gè)節(jié)點(diǎn)及該節(jié)點(diǎn)的右子樹(shù)上的節(jié)點(diǎn)分別對(duì)應(yīng)芯片中的不 同資源塊。
該數(shù)據(jù)寫入裝置進(jìn)一步包括的數(shù)據(jù)切割單元,用于才艮據(jù)芯片中的各個(gè)資源 塊對(duì)應(yīng)的地址范圍,對(duì)輸入數(shù)據(jù)的地址范圍進(jìn)行切割,得到對(duì)應(yīng)不同地址范圍 的多個(gè)數(shù)據(jù)塊;該數(shù)據(jù)寫入裝置進(jìn)一步包括的數(shù)據(jù)信息存儲(chǔ)單元,用于將得到 的對(duì)應(yīng)不同地址范圍的多個(gè)數(shù)據(jù)塊的數(shù)據(jù)信息,存儲(chǔ)到塊二叉樹(shù)中與各個(gè)資源 塊對(duì)應(yīng)的節(jié)點(diǎn)上。
本發(fā)明第四實(shí)施例提供了一種芯片的數(shù)據(jù)讀取裝置,如圖7所示,該數(shù)據(jù)讀取裝置包括數(shù)據(jù)切割單元、遍歷單元、第一讀取單元、第二讀取單元、第 三讀取單元。
在實(shí)施該裝置之前,利用塊二叉樹(shù)構(gòu)造單元將緩存中的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)為塊 二叉樹(shù)結(jié)構(gòu),所述的塊二叉樹(shù)構(gòu)造單元,用于在緩存中構(gòu)造塊二叉樹(shù),并使構(gòu) 造的塊二叉樹(shù)滿足條件塊二叉樹(shù)的根節(jié)點(diǎn),用于存儲(chǔ)信息,該信息包括數(shù) 據(jù)信息,并包括指向左子樹(shù)的指針和/或指向右子樹(shù)的指針;塊二叉樹(shù)的子節(jié)點(diǎn), 用于存儲(chǔ)信息,該信息包括數(shù)據(jù)信息,并可選地包括指向左子樹(shù)的指針和/ 或指向右子樹(shù)的指針;塊二叉樹(shù)的最大深度為芯片中的資源塊的數(shù)目,塊二叉 樹(shù)的實(shí)際深度為當(dāng)前緩存中數(shù)據(jù)對(duì)應(yīng)于芯片中資源塊的數(shù)目;塊二叉樹(shù)的任意 一個(gè)節(jié)點(diǎn)及該節(jié)點(diǎn)的左子樹(shù)上的節(jié)點(diǎn)對(duì)應(yīng)芯片中的同一個(gè)資源塊;塊二叉樹(shù)的 任意 一個(gè)節(jié)點(diǎn)及該節(jié)點(diǎn)的右子樹(shù)上的節(jié)點(diǎn)分別對(duì)應(yīng)芯片中的不同資源塊。
該數(shù)據(jù)讀取裝置中的數(shù)據(jù)切割單元,用于根據(jù)芯片中的各個(gè)資源塊對(duì)應(yīng)的 地址范圍,對(duì)需要讀取數(shù)據(jù)的地址范圍進(jìn)行切割,得到對(duì)應(yīng)不同地址范圍的多 個(gè)數(shù)據(jù)塊;
遍歷單元,用于遍歷塊二叉樹(shù)的每個(gè)節(jié)點(diǎn)中存儲(chǔ)的數(shù)據(jù)信息;
第 一讀取單元,用于當(dāng)所述遍歷單元遍歷的結(jié)果為所述塊二叉樹(shù)的節(jié)點(diǎn)完
全包含所述多個(gè)數(shù)據(jù)塊的數(shù)據(jù)信息時(shí),則從緩存中讀取數(shù)據(jù);
第二讀取單元,用于當(dāng)所述遍歷單元遍歷的結(jié)果為所述塊二叉樹(shù)的節(jié)點(diǎn)完
全不包含所述多個(gè)數(shù)據(jù)塊的數(shù)據(jù)信息時(shí),則從芯片中讀取數(shù)據(jù);
第三讀取單元,用于當(dāng)所述遍歷單元遍歷的結(jié)果為所述塊二叉樹(shù)的節(jié)點(diǎn)部
分包含所述多個(gè)數(shù)據(jù)塊的數(shù)據(jù)信息時(shí),則讀取芯片中的數(shù)據(jù),根據(jù)能在塊二叉
樹(shù)的節(jié)點(diǎn)中讀取到的數(shù)據(jù)信息,從緩存中找到相應(yīng)的邀:據(jù),并利用從緩存中找
到的相應(yīng)數(shù)據(jù)將從芯片中讀取到的數(shù)據(jù)更新。
本發(fā)明第五實(shí)施例提供了一種芯片的數(shù)據(jù)讀寫系統(tǒng),如圖8所示,該數(shù)據(jù)
讀寫系統(tǒng)包括數(shù)據(jù)寫入裝置、數(shù)據(jù)讀取裝置;該數(shù)據(jù)讀寫系統(tǒng)還可以進(jìn)一步
包括塊二叉樹(shù)構(gòu)造裝置;其中,數(shù)據(jù)寫入裝置,用于從芯片中找到與塊二叉樹(shù)的根節(jié)點(diǎn)對(duì)應(yīng)的資源
塊,并將該資源塊中存儲(chǔ)的數(shù)據(jù)讀取到指定緩存中;以及,根據(jù)所述塊二叉樹(shù) 的根節(jié)點(diǎn)及其左子樹(shù)上的所有節(jié)點(diǎn)中存儲(chǔ)的數(shù)據(jù)信息,從緩存中找到相應(yīng)的數(shù) 據(jù);利用從緩存中找到的相應(yīng)數(shù)據(jù)將讀取到指定緩存中的數(shù)據(jù)更新,并將更新 后得到的數(shù)據(jù)寫入到所述芯片中;
該數(shù)據(jù)寫入裝置所包括的單元以及各個(gè)單元的功能,與第三實(shí)施例中所述 的單元以及各個(gè)單元的功能相同,此處不再詳細(xì)描述。
數(shù)據(jù)讀取裝置,用于根據(jù)芯片中的各個(gè)資源塊對(duì)應(yīng)的地址范圍,對(duì)需要讀 取數(shù)據(jù)的地址范圍進(jìn)行切割,得到對(duì)應(yīng)不同地址范圍的多個(gè)數(shù)據(jù)塊;遍歷塊二 叉樹(shù)的每個(gè)節(jié)點(diǎn)中存儲(chǔ)的數(shù)據(jù)信息,若所述多個(gè)數(shù)據(jù)塊的數(shù)據(jù)信息全部能在塊 二叉樹(shù)的節(jié)點(diǎn)中讀取到,則從緩存中讀取數(shù)據(jù);若所述多個(gè)數(shù)據(jù)塊的數(shù)據(jù)信息 全部不能在塊二叉樹(shù)的節(jié)點(diǎn)中讀取到,則從芯片中讀取數(shù)據(jù);若所述多個(gè)數(shù)據(jù) 塊的數(shù)據(jù)信息部分能在塊二叉樹(shù)的節(jié)點(diǎn)中讀取到,則讀取芯片中的數(shù)據(jù),根據(jù) 能在塊二叉樹(shù)的節(jié)點(diǎn)中讀取到的數(shù)據(jù)信息,從緩存中找到相應(yīng)的數(shù)據(jù),并利用 從緩存中找到的相應(yīng)數(shù)據(jù)將從芯片中讀取到的數(shù)據(jù)更新。
該數(shù)據(jù)讀取裝置所包括的單元以及各個(gè)單元的功能,與第四實(shí)施例中所述 的單元以及各個(gè)單元的功能相同,此處不再詳細(xì)描述。
該數(shù)據(jù)讀寫系統(tǒng)進(jìn)一步包括的二叉樹(shù)構(gòu)造裝置,用于在緩存中構(gòu)造塊二叉 樹(shù),并使構(gòu)造的塊二叉樹(shù)滿足條件塊二叉樹(shù)的根節(jié)點(diǎn),用于存儲(chǔ)信息,該信 息包括數(shù)據(jù)信息,并包括指向左子樹(shù)的指針和/或指向右子樹(shù)的指針;塊二叉 樹(shù)的子節(jié)點(diǎn),用于存儲(chǔ)信息,該信息包括數(shù)據(jù)信息,并可選地包括指向左子 樹(shù)的指針和/或指向右子樹(shù)的指針;塊二叉樹(shù)的最大深度為芯片中的資源塊的數(shù) 目,塊二叉樹(shù)的實(shí)際深度為當(dāng)前緩存中數(shù)據(jù)對(duì)應(yīng)于芯片中資源塊的數(shù)目;塊二 叉樹(shù)的任意一個(gè)節(jié)點(diǎn)及該節(jié)點(diǎn)的左子樹(shù)上的節(jié)點(diǎn)對(duì)應(yīng)芯片中的同一個(gè)資源塊; 塊二叉樹(shù)的任意一個(gè)節(jié)點(diǎn)及該節(jié)點(diǎn)的右子樹(shù)上的節(jié)點(diǎn)分別對(duì)應(yīng)芯片中的不同 資源塊;所述數(shù)據(jù)寫入裝置還用于,根據(jù)芯片中的各個(gè)資源塊對(duì)應(yīng)的地址范圍,對(duì) 輸入數(shù)據(jù)的地址范圍進(jìn)行切割,得到對(duì)應(yīng)不同地址范圍的多個(gè)數(shù)據(jù)塊,并將得 到的對(duì)應(yīng)不同地址范圍的多個(gè)數(shù)據(jù)塊的數(shù)據(jù)信息,存儲(chǔ)到塊二叉樹(shù)中與各個(gè)資 源塊對(duì)應(yīng)的節(jié)點(diǎn)上。
本發(fā)明實(shí)施例提供的技術(shù)方案,在執(zhí)行讀寫操作時(shí),以對(duì)應(yīng)芯片中同一個(gè) 資源塊的塊二叉樹(shù)上的所有節(jié)點(diǎn)為操作單位,不僅能夠提高讀寫效率,也能夠 減少對(duì)芯片的操作次數(shù),從而能夠提高芯片的使用壽命。
另外,當(dāng)要讀取的數(shù)據(jù)部分在緩存中且部分在芯片中時(shí),采取分別讀取的
方案,即從芯片中讀取數(shù)據(jù),并利用塊二叉樹(shù)節(jié)點(diǎn)中存儲(chǔ)的數(shù)據(jù)信息,從緩存 中找到具體數(shù)據(jù),利用找到的具體數(shù)據(jù)將從芯片中讀取到的數(shù)據(jù)更新,這樣就 無(wú)需先將緩存中的數(shù)據(jù)寫入芯片,進(jìn)一步提高數(shù)據(jù)的讀取效率。
另外,通過(guò)本發(fā)明技術(shù)方案縮短了數(shù)據(jù)的寫入時(shí)間,如果數(shù)據(jù)的寫入時(shí)間
過(guò)長(zhǎng),緩存中的數(shù)據(jù)還沒(méi)有全部寫入NvRAM芯片,在這個(gè)過(guò)程中系統(tǒng)出現(xiàn)異 ?;驍嚯妴?wèn)題,則緩存中還未完全寫入芯片中的其他數(shù)據(jù)就會(huì)丟失,通過(guò)本發(fā) 明提供的技術(shù)方案就能夠避免緩存中數(shù)據(jù)丟失的問(wèn)題。
明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及 其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1、一種芯片的數(shù)據(jù)寫入方法,其特征在于,該數(shù)據(jù)寫入方法包括從芯片中找到與塊二叉樹(shù)的根節(jié)點(diǎn)對(duì)應(yīng)的資源塊,并將該資源塊中存儲(chǔ)的數(shù)據(jù)讀取到指定緩存中;以及,根據(jù)所述塊二叉樹(shù)的根節(jié)點(diǎn)及其左子樹(shù)上的所有節(jié)點(diǎn)中存儲(chǔ)的數(shù)據(jù)信息,從緩存中找到相應(yīng)的數(shù)據(jù);利用從緩存中找到的相應(yīng)數(shù)據(jù)將讀取到指定緩存中的數(shù)據(jù)更新,并將更新后得到的數(shù)據(jù)寫入到所述芯片中。
2、 如權(quán)利要求1所述的數(shù)據(jù)寫入方法,其特征在于,該數(shù)據(jù)寫入方法還 包括刪除所述根節(jié)點(diǎn)及其左子樹(shù),得到新的塊二叉樹(shù)及其一艮節(jié)點(diǎn)。
3、 如權(quán)利要求1所述的數(shù)據(jù)寫入方法,其特征在于,該數(shù)據(jù)寫入方法還 包括根據(jù)芯片中的各個(gè)資源塊對(duì)應(yīng)的地址范圍,對(duì)輸入數(shù)據(jù)的地址范圍進(jìn)行切 割,得到對(duì)應(yīng)不同地址范圍的多個(gè)數(shù)據(jù)塊,并將得到的對(duì)應(yīng)不同地址范圍的多 個(gè)數(shù)據(jù)塊的數(shù)據(jù)信息,存儲(chǔ)到塊二叉樹(shù)中與各個(gè)資源塊對(duì)應(yīng)的節(jié)點(diǎn)上。
4、 如權(quán)利要求1、 2或3所述的數(shù)據(jù)寫入方法,其特征在于,所述數(shù)據(jù)信 息包括數(shù)據(jù)起始地址和數(shù)據(jù)長(zhǎng)度。
5、 如權(quán)利要求4所述的數(shù)據(jù)寫入方法,其特征在于,該數(shù)據(jù)寫入方法還 包括在緩存中構(gòu)造塊二叉樹(shù),所述塊二叉樹(shù)滿足如下條件塊二叉樹(shù)的根節(jié)點(diǎn),用于存儲(chǔ)信息,所述信息包括數(shù)據(jù)信息,并包括指 向左子樹(shù)的指針和/或指向右子樹(shù)的指針;塊二叉樹(shù)的子節(jié)點(diǎn),用于存儲(chǔ)信息,所述信息包括數(shù)據(jù)信息,并可選地 包括指向左子樹(shù)的指針和/或指向右子樹(shù)的指針;塊二叉樹(shù)的最大深度為芯片中的資源塊的數(shù)目,塊二叉樹(shù)的實(shí)際深度為當(dāng) 前緩存中數(shù)據(jù)對(duì)應(yīng)于芯片中資源塊的數(shù)目;塊二叉樹(shù)的任意一個(gè)節(jié)點(diǎn)及所述節(jié)點(diǎn)的左子樹(shù)上的節(jié)點(diǎn)對(duì)應(yīng)芯片中的同一個(gè)資源塊;塊二叉樹(shù)的任意一個(gè)節(jié)點(diǎn)及所述節(jié)點(diǎn)的右子樹(shù)上的節(jié)點(diǎn)分別對(duì)應(yīng)芯片中 的不同資源塊。
6、 一種芯片的數(shù)據(jù)讀取方法,其特征在于,該數(shù)據(jù)讀取方法包括 根據(jù)芯片中的各個(gè)資源塊對(duì)應(yīng)的地址范圍,對(duì)需要讀取數(shù)據(jù)的地址范圍進(jìn)行切割,得到對(duì)應(yīng)不同地址范圍的多個(gè)數(shù)據(jù)塊;遍歷塊二叉樹(shù)的每個(gè)節(jié)點(diǎn)中存儲(chǔ)的數(shù)據(jù)信息,若所述多個(gè)數(shù)據(jù)塊的數(shù)據(jù)信 息全部能在塊二叉樹(shù)的節(jié)點(diǎn)中讀取到,則從緩存中讀取數(shù)據(jù);若所述多個(gè)數(shù)據(jù) 塊的數(shù)據(jù)信息全部不能在塊二叉樹(shù)的節(jié)點(diǎn)中讀取到,則從芯片中讀取數(shù)據(jù);若 所述多個(gè)數(shù)據(jù)塊的數(shù)據(jù)信息部分能在塊二叉樹(shù)的節(jié)點(diǎn)中讀取到,則讀取芯片中 的數(shù)據(jù),并根據(jù)能在塊二叉樹(shù)的節(jié)點(diǎn)中讀取到的數(shù)據(jù)信息,從緩存中找到相應(yīng) 的數(shù)據(jù),并利用從緩存中找到的相應(yīng)數(shù)據(jù)將從芯片中讀取到的數(shù)據(jù)更新。
7、 如權(quán)利要求6所述的數(shù)據(jù)讀取方法,其特征在于,所述數(shù)據(jù)信息包括 數(shù)據(jù)起始地址和數(shù)據(jù)長(zhǎng)度。
8、 一種芯片的數(shù)據(jù)寫入裝置,其特征在于,該數(shù)據(jù)寫入裝置包括 芯片數(shù)據(jù)讀取單元,用于從芯片中找到與塊二叉樹(shù)的根節(jié)點(diǎn)對(duì)應(yīng)的資源塊,并將該資源塊中存儲(chǔ)的數(shù)據(jù)讀取到指定緩存中;更新數(shù)據(jù)獲取單元,用于根據(jù)所述塊二叉樹(shù)的根節(jié)點(diǎn)及其左子樹(shù)上的所有 節(jié)點(diǎn)中存儲(chǔ)的數(shù)據(jù)信息,從緩存中找到相應(yīng)的數(shù)據(jù);數(shù)據(jù)更新及寫入單元,用于利用從緩存中找到的相應(yīng)數(shù)據(jù)將讀取到指定緩 存中的數(shù)據(jù)更新,并將更新后得到的數(shù)據(jù)寫入到所述芯片中。
9、 如權(quán)利要求8所述的數(shù)據(jù)寫入裝置,其特征在于,該數(shù)據(jù)寫入裝置還 包括刪除單元,用于當(dāng)芯片數(shù)據(jù)讀取單元和更新數(shù)據(jù)獲取單元得到數(shù)據(jù)后,刪 除所述根節(jié)點(diǎn)及其左子樹(shù),得到新的塊二叉樹(shù)及其根節(jié)點(diǎn)。
10、 如權(quán)利要求8所述的數(shù)據(jù)寫入裝置,其特征在于,該數(shù)據(jù)寫入裝置還包括數(shù)據(jù)切割單元,用于根據(jù)芯片中的各個(gè)資源塊對(duì)應(yīng)的地址范圍,對(duì)輸入數(shù) 據(jù)的地址范圍進(jìn)行切割,得到對(duì)應(yīng)不同地址范圍的多個(gè)數(shù)據(jù)塊;數(shù)據(jù)信息存儲(chǔ)單元,用于將得到的對(duì)應(yīng)不同地址范圍的多個(gè)數(shù)據(jù)塊的數(shù)據(jù) 信息,存儲(chǔ)到塊二叉樹(shù)中與各個(gè)資源塊對(duì)應(yīng)的節(jié)點(diǎn)上。
11、 如權(quán)利要求8所述的數(shù)據(jù)寫入裝置,其特征在于,該數(shù)據(jù)寫入裝置還 包括塊二叉樹(shù)構(gòu)造單元,用于在緩存中構(gòu)造塊二叉樹(shù),并使構(gòu)造的塊二叉樹(shù)滿 足條件塊二叉樹(shù)的根節(jié)點(diǎn),用于存儲(chǔ)信息,所述信息包括數(shù)據(jù)信息,并包 括指向左子樹(shù)的指針和/或指向右子樹(shù)的指針;塊二叉樹(shù)的子節(jié)點(diǎn),用于存儲(chǔ)信 息,所述信息包括數(shù)據(jù)信息,并可選地包括指向左子樹(shù)的指針和/或指向右子 樹(shù)的指針;塊二叉樹(shù)的最大深度為芯片中的資源塊的數(shù)目,塊二叉樹(shù)的實(shí)際深 度為當(dāng)前緩存中數(shù)據(jù)對(duì)應(yīng)于芯片中資源塊的數(shù)目;塊二叉樹(shù)的任意一個(gè)節(jié)點(diǎn)及 所述節(jié)點(diǎn)的左子樹(shù)上的節(jié)點(diǎn)對(duì)應(yīng)芯片中的同一個(gè)資源塊;塊二叉樹(shù)的任意一個(gè) 節(jié)點(diǎn)及所述節(jié)點(diǎn)的右子樹(shù)上的節(jié)點(diǎn)分別對(duì)應(yīng)芯片中的不同資源塊。
12、 一種芯片的凄t據(jù)讀取裝置,其特征在于,該數(shù)據(jù)讀取裝置包括 數(shù)據(jù)切割單元,用于根據(jù)芯片中的各個(gè)資源塊對(duì)應(yīng)的地址范圍,對(duì)需要讀取數(shù)據(jù)的地址范圍進(jìn)行切割,得到對(duì)應(yīng)不同地址范圍的多個(gè)數(shù)據(jù)塊; 遍歷單元,用于遍歷塊二叉樹(shù)的每個(gè)節(jié)點(diǎn)中存儲(chǔ)的數(shù)據(jù)信息; 第 一讀取單元,用于當(dāng)所述遍歷單元遍歷的結(jié)果為所述塊二叉樹(shù)的節(jié)點(diǎn)完全包含所述多個(gè)數(shù)據(jù)塊的數(shù)據(jù)信息時(shí),則從緩存中讀取數(shù)據(jù);第二讀取單元,用于當(dāng)所述遍歷單元遍歷的結(jié)果為所述塊二叉樹(shù)的節(jié)點(diǎn)完全不包含所述多個(gè)數(shù)據(jù)塊的數(shù)據(jù)信息時(shí),則從芯片中讀取數(shù)據(jù);第三讀取單元,用于當(dāng)所述遍歷單元遍歷的結(jié)果為所述塊二叉樹(shù)的節(jié)點(diǎn)部分包含所述多個(gè)數(shù)據(jù)塊的數(shù)據(jù)信息時(shí),則讀取芯片中的數(shù)據(jù),并根據(jù)能在塊二叉樹(shù)的節(jié)點(diǎn)中讀取到的數(shù)據(jù)信息,從緩存中找到相應(yīng)的數(shù)據(jù),并利用從緩存中找到的相應(yīng)數(shù)據(jù)將從芯片中讀取到的數(shù)據(jù)更新。
13、 一種芯片的數(shù)據(jù)讀寫系統(tǒng),其特征在于,該凝:據(jù)讀寫系統(tǒng)包括 數(shù)據(jù)寫入裝置,用于從芯片中找到與塊二叉樹(shù)的根節(jié)點(diǎn)對(duì)應(yīng)的資源塊,并將該資源塊中存儲(chǔ)的數(shù)據(jù)讀取到指定緩存中;以及,根據(jù)所述塊二叉樹(shù)的根節(jié) 點(diǎn)及其左子樹(shù)上的所有節(jié)點(diǎn)中存儲(chǔ)的數(shù)據(jù)信息,從緩存中找到相應(yīng)的數(shù)據(jù);利 用從緩存中找到的相應(yīng)數(shù)據(jù)將讀取到指定緩存中的數(shù)據(jù)更新,并將更新后得到 的數(shù)據(jù)寫入到所述芯片中;數(shù)據(jù)讀取裝置,用于根據(jù)芯片中的各個(gè)資源塊對(duì)應(yīng)的地址范圍,對(duì)需要讀 取數(shù)據(jù)的地址范圍進(jìn)行切割,得到對(duì)應(yīng)不同地址范圍的多個(gè)數(shù)據(jù)塊;遍歷塊二 叉樹(shù)的每個(gè)節(jié)點(diǎn)中存儲(chǔ)的數(shù)據(jù)信息,若所述多個(gè)數(shù)據(jù)塊的數(shù)據(jù)信息全部能在塊 二叉樹(shù)的節(jié)點(diǎn)中讀取到,則從緩存中讀取數(shù)據(jù);若所述多個(gè)數(shù)據(jù)塊的數(shù)據(jù)信息 全部不能在塊二叉樹(shù)的節(jié)點(diǎn)中讀取到,則從芯片中讀取數(shù)據(jù);若所述多個(gè)數(shù)據(jù) 塊的數(shù)據(jù)信息部分能在塊二叉樹(shù)的節(jié)點(diǎn)中讀取到,則讀取芯片中的數(shù)據(jù),并根 據(jù)能在塊二叉樹(shù)的節(jié)點(diǎn)中讀取到的數(shù)據(jù)信息,從緩存中找到相應(yīng)的數(shù)據(jù),并利 用從緩存中找到的相應(yīng)數(shù)據(jù)將從芯片中讀取到的數(shù)據(jù)更新。
14、 如權(quán)利要求13所述的數(shù)據(jù)讀寫系統(tǒng),其特征在于, 該數(shù)據(jù)讀寫系統(tǒng)還包括塊二叉樹(shù)構(gòu)造裝置,用于在緩存中構(gòu)造塊二叉樹(shù),并使構(gòu)造的塊二叉樹(shù)滿足條件塊二叉樹(shù)的根節(jié)點(diǎn),用于存儲(chǔ)信息,所述信息 包括數(shù)據(jù)信息,并包括指向左子樹(shù)的指針和/或指向右子樹(shù)的指針;塊二叉樹(shù) 的子節(jié)點(diǎn),用于存儲(chǔ)信息,所述信息包括數(shù)據(jù)信息,并可選地包括指向左子 樹(shù)的指針和/或指向右子樹(shù)的指針;塊二叉樹(shù)的最大深度為芯片中的資源塊的數(shù) 目,塊二叉樹(shù)的實(shí)際深度為當(dāng)前緩存中數(shù)據(jù)對(duì)應(yīng)于芯片中資源塊的數(shù)目;塊二 叉樹(shù)的任意一個(gè)節(jié)點(diǎn)及所述節(jié)點(diǎn)的左子樹(shù)上的節(jié)點(diǎn)對(duì)應(yīng)芯片中的同一個(gè)資源 塊;塊二叉樹(shù)的任意一個(gè)節(jié)點(diǎn)及所述節(jié)點(diǎn)的右子樹(shù)上的節(jié)點(diǎn)分別對(duì)應(yīng)芯片中的 不同資源塊;所述數(shù)據(jù)寫入裝置,還用于根據(jù)芯片中的各個(gè)資源塊對(duì)應(yīng)的地址范圍,對(duì)輸入數(shù)據(jù)的地址范圍進(jìn)行切割,得到對(duì)應(yīng)不同地址范圍的多個(gè)數(shù)據(jù)塊,并將得 到的對(duì)應(yīng)不同地址范圍的多個(gè)數(shù)據(jù)塊的數(shù)據(jù)信息,存儲(chǔ)到塊二叉樹(shù)中與各個(gè)資 源塊對(duì)應(yīng)的節(jié)點(diǎn)上。
全文摘要
本發(fā)明公開(kāi)了一種芯片的數(shù)據(jù)讀寫方法、相應(yīng)裝置和系統(tǒng),能夠解決現(xiàn)有技術(shù)讀寫效率低和影響芯片使用壽命的問(wèn)題。本發(fā)明提供的技術(shù)方案在執(zhí)行讀寫操作時(shí),以芯片中的一個(gè)資源塊在塊二叉樹(shù)中對(duì)應(yīng)的所有節(jié)點(diǎn)為操作單位,不僅能夠提高讀寫效率,也能夠減少對(duì)芯片的操作次數(shù),從而能夠提高芯片的使用壽命。同時(shí),當(dāng)要讀取的數(shù)據(jù)部分在緩存中且部分在芯片中時(shí),則分別讀取,這樣就無(wú)需先將緩存中的數(shù)據(jù)寫入芯片,從而能夠進(jìn)一步提高數(shù)據(jù)的讀取效率。
文檔編號(hào)G06F12/08GK101452422SQ200710178398
公開(kāi)日2009年6月10日 申請(qǐng)日期2007年11月29日 優(yōu)先權(quán)日2007年11月29日
發(fā)明者馮增華, 王舒翀 申請(qǐng)人:大唐移動(dòng)通信設(shè)備有限公司;上海大唐移動(dòng)通信設(shè)備有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1