国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      硬件數(shù)據(jù)更新方法和設(shè)備的制作方法

      文檔序號(hào):7706676閱讀:332來(lái)源:國(guó)知局
      專利名稱:硬件數(shù)據(jù)更新方法和設(shè)備的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及硬件數(shù)據(jù)更新方法和設(shè)備,更具體地,涉及基于代價(jià)的硬件 數(shù)據(jù)更新方法和設(shè)備。
      背景技術(shù)
      很多應(yīng)用涉及硬件數(shù)據(jù)的更新。例如,在數(shù)據(jù)通信領(lǐng)域中,路由表在路 由器中指導(dǎo)路由轉(zhuǎn)發(fā),通俗一點(diǎn)就是"問(wèn)路"。路由器存儲(chǔ)的就是"去哪怎么 走"的信息,即目的地址和路徑。
      一個(gè)數(shù)據(jù)包進(jìn)入路由器后,包頭里面攜帶 了它的"目的地址",通過(guò)目的地址,查找到路徑,然后完成轉(zhuǎn)發(fā)。目前網(wǎng)絡(luò) 上的計(jì)算機(jī)越來(lái)越多,所以路由表的規(guī)模是越來(lái)越大,電信運(yùn)營(yíng)商要求達(dá)到
      IOO萬(wàn)以上的路由表表項(xiàng)。另外隨著網(wǎng)絡(luò)應(yīng)用的豐富,網(wǎng)絡(luò)帶寬要求也飛速
      增長(zhǎng),對(duì)路由查找的性能要求也越來(lái)越高。
      路由查找表是一種路由表,就是將路由信息壓縮整理成一定格式的表,
      完成轉(zhuǎn)發(fā)過(guò)程中的高速查找(一般是30Mpps以上)。路由查找表將會(huì)以一種 "方便快速查找"的格式或者方式存在于路由查找硬件中。
      隨著路由表表項(xiàng)數(shù)量的不斷增加,目前主流已經(jīng)達(dá)到百萬(wàn)數(shù)量級(jí)別,相 應(yīng)的對(duì)于路由表表項(xiàng)更新(包括添加和刪除)速率的要求也不斷增長(zhǎng),以達(dá) 到快速更新路由,減少業(yè)務(wù)中斷時(shí)間的目的。
      路由器算法查找系統(tǒng)一般由一套維護(hù)軟件和一套硬件組成。軟件通過(guò)計(jì) 算,產(chǎn)生一個(gè)或者多個(gè)算法查找結(jié)構(gòu)中的節(jié)點(diǎn),在硬件中通過(guò)"最小"訪問(wèn) 硬件,完成快速的轉(zhuǎn)發(fā)查找。在一條表項(xiàng)添加過(guò)程中,4艮據(jù)算法方案的不同, 需要更新一次或者多次硬件數(shù)據(jù),隨后的表項(xiàng)添加,也同樣需要更新一次或 者多次硬件數(shù)據(jù)并且隨著表項(xiàng)數(shù)量的增長(zhǎng),更新量變大的幾率也會(huì)增長(zhǎng)。
      路由更新速率逐漸成為各種算法容量不斷擴(kuò)大的一個(gè)技術(shù)瓶頸,目前沒(méi) 有比較好的解決辦法, 一般是在算法本身做出一些優(yōu)化來(lái)達(dá)到提速的目的。
      現(xiàn)有的技術(shù)方案是逐條添加表項(xiàng),同時(shí)完成硬件數(shù)據(jù)的更新。圖5示出 了現(xiàn)有表項(xiàng)操作過(guò)程的示意圖。對(duì)于一個(gè)表項(xiàng)操作,算法查找維護(hù)軟件產(chǎn)生相應(yīng)的一系列硬件操作,然后按照這些硬件操作,逐條將數(shù)據(jù)更新到硬件。 發(fā)明人在研究過(guò)程中發(fā)現(xiàn),由于對(duì)于每一個(gè)表項(xiàng)操作,現(xiàn)有技術(shù)方案獨(dú)立進(jìn) 行處理,因此對(duì)于批量接收的表項(xiàng)操作請(qǐng)求,會(huì)引起大量重復(fù)、冗余和無(wú)效 的硬件操作。因此現(xiàn)有技術(shù)的缺點(diǎn)是不能利用路由器軟件批量表項(xiàng)下發(fā)的信 息,造成硬件更新操作的浪費(fèi)。而且,大量表項(xiàng)刷新過(guò)程中,刷新時(shí)間長(zhǎng)。 因此,存在對(duì)于優(yōu)化的硬件數(shù)據(jù)更新方案的需求。

      發(fā)明內(nèi)容
      因此,本發(fā)明實(shí)施例的一個(gè)目的是基于代價(jià)來(lái)更新硬件的數(shù)據(jù)。 本發(fā)明實(shí)施例的另 一 目的是提高硬件數(shù)據(jù)的更新速度。
      本發(fā)明實(shí)施例的另 一 目的是使得硬件數(shù)據(jù)的更新不會(huì)影響路由查找,即 沒(méi)有中間的"錯(cuò)誤狀態(tài)"。
      本發(fā)明實(shí)施例的另 一 目的是提高路由查找算法中固定二叉樹的更新速率。
      為了實(shí)現(xiàn)上述以及其他目的,本發(fā)明實(shí)施例提供了 一種硬件數(shù)據(jù)更新設(shè)
      備,用于更新硬件中存儲(chǔ)的數(shù)據(jù)。該設(shè)備包括接收模塊,接收至少一個(gè)請(qǐng)
      求操作并將至少一個(gè)請(qǐng)求操作定義為批量操作;以及維護(hù)模塊,對(duì)于批量操
      作中的每個(gè)請(qǐng)求操作產(chǎn)生至少兩個(gè)硬件操作集,估計(jì)每個(gè)硬件操作集的代價(jià), 并基于所估計(jì)的代價(jià)更新硬件中存儲(chǔ)的數(shù)據(jù)。每個(gè)硬件操作集包括至少兩個(gè) 硬件操作。各個(gè)硬件操作集對(duì)硬件的操作結(jié)果是等價(jià)的。
      為了實(shí)現(xiàn)上述以及其他目的,本發(fā)明實(shí)施例還提供了 一種硬件數(shù)據(jù)更新
      方法,用于更新硬件中存儲(chǔ)的數(shù)據(jù)。該方法包括接收至少一個(gè)請(qǐng)求操:作并 將所述至少一個(gè)請(qǐng)求操作定義為批量操作;對(duì)于批量操作中的每個(gè)請(qǐng)求操作 產(chǎn)生至少兩個(gè)硬件操作集;估計(jì)每個(gè)硬件操作集的代價(jià);以及基于所估計(jì)的 代價(jià)更新所述硬件中存儲(chǔ)的數(shù)據(jù)。每個(gè)硬件操作集包括至少兩個(gè)硬件操作。 各個(gè)硬件操作集對(duì)硬件的操作結(jié)果是等價(jià)的。
      為了實(shí)現(xiàn)上述以及其他目的,本發(fā)明實(shí)施例還l是供了一種系統(tǒng),包括用 于存儲(chǔ)數(shù)據(jù)的硬件。該系統(tǒng)還包括硬件數(shù)據(jù)更新設(shè)備,用于更新硬件中存儲(chǔ) 的數(shù)據(jù)。該硬件數(shù)據(jù)更新設(shè)備包括接收模塊,接收至少一個(gè)請(qǐng)求操作并將 至少一個(gè)請(qǐng)求操作定義為批量操作;以及維護(hù)模塊,對(duì)于批量操作中的每個(gè) 請(qǐng)求操作產(chǎn)生至少兩個(gè)硬件操作集,估計(jì)每個(gè)硬件操作集的代價(jià),并基于所
      7估計(jì)的代價(jià)更新硬件中存儲(chǔ)的數(shù)據(jù)。每個(gè)硬件操作集包括至少兩個(gè)硬件操:作。 各個(gè)硬件操作集對(duì)硬件的操作結(jié)果是等價(jià)的。
      通過(guò)本發(fā)明的實(shí)施例,給批量操作導(dǎo)致硬件多次無(wú)效更新情況提供了 一 種減少硬件操作代價(jià)的方案,并可以給分層二叉樹的^各由查找方案提供一種 快速刷新表項(xiàng)的方法和i殳備。


      根據(jù)結(jié)合附圖的以下描述,將更充分地理解本發(fā)明的其他優(yōu)點(diǎn)、特征和 細(xì)節(jié)。
      圖1是示出根據(jù)本發(fā)明實(shí)施例的硬件數(shù)據(jù)更新設(shè)備的框圖。
      圖2是示出根據(jù)本發(fā)明實(shí)施例的硬件數(shù)據(jù)更新方法的流程圖。 圖3是示出分層二叉樹的示意圖。
      圖4是示出根據(jù)本發(fā)明實(shí)施例在分層二叉樹中使用硬件代價(jià)策略的表項(xiàng) 操作的示意圖。
      圖5示出了現(xiàn)有表項(xiàng)操作過(guò)程的示意圖。
      具體實(shí)施例方式
      下面參照附圖描述本發(fā)明的實(shí)施例。應(yīng)注意,在附圖中,相同的附圖標(biāo) 記始終表示相同或相似的元素。
      應(yīng)當(dāng)理解,在此描述的本發(fā)明的各個(gè)實(shí)施例僅僅是為了更好地解釋本發(fā) 明的原理和概念,而不是要限制本發(fā)明。在閱讀這樣的描述之后,本領(lǐng)域技 術(shù)人員很容易構(gòu)造其他修改或替換,這樣的修改或替換應(yīng)被理解為落入本發(fā) 明的范圍中。
      圖1是示出根據(jù)本發(fā)明實(shí)施例的硬件數(shù)據(jù)更新設(shè)備100的框圖。硬件數(shù) 據(jù)更新設(shè)備100用于更新硬件200中存儲(chǔ)的數(shù)據(jù)。該硬件數(shù)據(jù)更新設(shè)備100 包括接收模塊105和維護(hù)模塊110。
      接收模塊105可以從硬件數(shù)據(jù)更新設(shè)備100外部接收針對(duì)硬件200的請(qǐng) 求操作,例如請(qǐng)求更新硬件200中數(shù)據(jù)的操作。接收模塊105可一次性或分 多次接收多個(gè)請(qǐng)求操作(requested operation)。例如,4妄收才莫塊105可包括與外 部通信的數(shù)據(jù)接口等,以便接收外部設(shè)備的請(qǐng)求操作。各個(gè)請(qǐng)求操作有可能 會(huì)相互影響到硬件更新結(jié)果。接收模塊105將接收到的(一個(gè)或多個(gè))請(qǐng)求操作定義為批量操作1050。批量操作1050可以有一個(gè)明確的長(zhǎng)度。批量操 作1050中的請(qǐng)求操作可以在整個(gè)操作過(guò)程中一次完成,也可以根據(jù)需要在某 個(gè)請(qǐng)求操作后即更新硬件,然后再繼續(xù)執(zhí)行。 一般來(lái)說(shuō),該批量操作1050中 的一個(gè)請(qǐng)求操作將造成一個(gè)或者多個(gè)硬件操作(包括^旦不限于對(duì)硬件200中 存儲(chǔ)的數(shù)據(jù)的添加、刪除、替換、搬移等)。如果批量沖喿作中只有一個(gè)請(qǐng)求操 作,則要求這個(gè)請(qǐng)求操作能夠產(chǎn)生不同的硬件操作集("硬件操作集"在下文 中描述)。
      維護(hù)模塊110依次針對(duì)批量操作1050中的每個(gè)請(qǐng)求操作,產(chǎn)生相應(yīng)的一 個(gè)或多個(gè)硬件操作。 一般來(lái)說(shuō), 一個(gè)請(qǐng)求操作可對(duì)應(yīng)于不同的一系列硬件操 作(稱為"硬件操作集")。維護(hù)模塊110可根據(jù)預(yù)先定義的方案,產(chǎn)生兩個(gè) 或更多個(gè)硬件操作集1101、 ...、 110i等。產(chǎn)生的每個(gè)石更件操作集1101、...、 110i中的硬件操作和其他硬件操作集中的硬件操作可以是相同種類(添加、 刪除、替換、搬移等)的,也可以是完全不同的。每個(gè)硬件操作集完成硬件 操作后,其導(dǎo)致的結(jié)果是一致和等價(jià)的。
      維護(hù)模塊110可以估計(jì)所產(chǎn)生的每個(gè)硬件操作集的代價(jià)。每一種硬件操 作(添加、刪除、替換、搬移等)所需的硬件代價(jià)可能是不同的。因而,可 對(duì)每一種硬件操作賦予相應(yīng)的權(quán)值,由此估計(jì)硬件操作集的代價(jià)。
      維護(hù)模塊110可以在產(chǎn)生硬件操作集的過(guò)程中并行地估計(jì)代價(jià),也可以 在產(chǎn)生整個(gè)硬件操作集之后再估計(jì)代價(jià)。
      維護(hù)模塊110還可以根據(jù)所估計(jì)的代價(jià),更新硬件200中存儲(chǔ)的數(shù)據(jù)。 維護(hù)模塊110可選擇具有最小代價(jià)的硬件操作集作為優(yōu)選操作集,并按照該 優(yōu)選操作集中的硬件操作來(lái)更新硬件200中的數(shù)據(jù)。
      對(duì)于操作的硬件對(duì)象, 一般來(lái)說(shuō)其訪問(wèn)速度是比較慢的,而維護(hù)模塊和
      代價(jià)模塊的速度相比要快得多。通過(guò)上述基于代價(jià)的硬件數(shù)據(jù)更新設(shè)備100, 能以最小的代價(jià)來(lái)訪問(wèn)硬件,減少無(wú)效或冗余的硬件操作,從而大大提高硬 件的更新速度。
      圖2是示出根據(jù)本發(fā)明實(shí)施例的硬件數(shù)據(jù)更新方法1000的流程圖。硬件 數(shù)據(jù)更新方法1000可以由圖1所示的硬件數(shù)據(jù)更新設(shè)備100來(lái)執(zhí)行,也可以 由具有處理能力的其他設(shè)備來(lái)執(zhí)行。
      在S1005,接收針對(duì)硬件200 (見(jiàn)圖1)的請(qǐng)求操作。可一次性或分多次 接收多個(gè)請(qǐng)求操作。各個(gè)請(qǐng)求操作有可能會(huì)相互影響到硬件更新結(jié)果。將接收到的(一個(gè)或多個(gè))請(qǐng)求操作定義為批量操作1050 (見(jiàn)圖1)。批量操作 1050中的請(qǐng)求操作可以在整個(gè)操作過(guò)程中一次完成,也可以根據(jù)需要在某個(gè) 請(qǐng)求操作后即更新硬件,然后再繼續(xù)執(zhí)行。 一般來(lái)說(shuō),該批量操作中的一個(gè) 請(qǐng)求操作將造成一個(gè)或者多個(gè)硬件操作(包括但不限于對(duì)硬件200中存儲(chǔ)的
      數(shù)據(jù)的添加、刪除、替換、搬移等)。如果批量操作中只有一個(gè)請(qǐng)求操:作,則
      要求這個(gè)請(qǐng)求操作能夠產(chǎn)生不同的硬件操作集。
      在S1010,依次針對(duì)批量操作1050中的每個(gè)請(qǐng)求才喿作,產(chǎn)生相應(yīng)的一個(gè) 或多個(gè)硬件操作。 一般來(lái)說(shuō), 一個(gè)請(qǐng)求操作可對(duì)應(yīng)于不同的硬件操作集。可 根據(jù)預(yù)先定義的方案,產(chǎn)生兩個(gè)或更多個(gè)硬件操作集1101、 ...、 110i等(見(jiàn)
      圖1)。產(chǎn)生的每個(gè)硬件操作集1101..... 110i中的硬件操作和其他硬件操作
      集中的硬件操作可以是相同種類(添加、刪除、替換、搬移等)的,也可以 是完全不同的。每個(gè)硬件操作集完成硬件操作后,其導(dǎo)致的結(jié)果是一致和等 價(jià)的。
      在S1015,估計(jì)在S1010中產(chǎn)生的每個(gè)硬件操作集的代價(jià)。每一種硬件 操作(添加、刪除、替換、搬移等)所需的硬件代價(jià)可能是不同的。因而, 可對(duì)每一種硬件操作賦予相應(yīng)的權(quán)值,由此估計(jì)硬件操:作集的代價(jià)。
      S1015可以與S1010并行執(zhí)行,即在產(chǎn)生硬件操作集的過(guò)程中并行地估 計(jì)代價(jià),也可以在S1010之后執(zhí)行,即,在產(chǎn)生整個(gè)石更件操作集之后再估計(jì) 代價(jià)。
      在S1020,根據(jù)在S1015中估計(jì)出的代價(jià),更新石更件200中存儲(chǔ)的數(shù)據(jù)。 可選擇代價(jià)最小的硬件操作集作為優(yōu)選操作集,并按照該優(yōu)選操作集中的硬 件操作來(lái)更新硬件200中的數(shù)據(jù)。
      對(duì)于操作的硬件對(duì)象, 一般來(lái)說(shuō)其訪問(wèn)速度是比較慢的,而維護(hù)模塊和 代價(jià)模塊的速度相比要快得多。通過(guò)上述基于代價(jià)的硬件數(shù)據(jù)更新方法1000, 能以最小的代價(jià)來(lái)訪問(wèn)硬件,減少無(wú)效或冗余的硬件操作,從而大大提高硬 件的更新速度。
      路由查找硬件就是針對(duì)高速查找的 一種硬件,可以是某種算法實(shí)現(xiàn)的方 案,也可以是某種硬件電路實(shí)現(xiàn)的查找方案(例如TCAM)。算法查找方案具 有容量大,功耗小,成本低的優(yōu)點(diǎn)。路由表的更新是算法查找方案中的一個(gè) 主要問(wèn)題,更新速度反映了路由器在發(fā)生網(wǎng)絡(luò)故障時(shí)的反應(yīng)能力,即需要快 速更新大量路由信息,完成"正確"的轉(zhuǎn)發(fā)。下面以路由查找硬件的數(shù)據(jù)更新操作(路由查找表表項(xiàng)操作)為例,更 詳細(xì)地說(shuō)明根據(jù)本發(fā)明實(shí)施例的硬件數(shù)據(jù)更新方法。
      路由查找硬件的數(shù)據(jù)更新操作可以在分層固定二叉樹中實(shí)現(xiàn)。圖3是示 出分層二叉樹的示意圖。分層二叉樹是一種查找方案,其特點(diǎn)是大樹節(jié)點(diǎn)和 小樹節(jié)點(diǎn)通過(guò)指針完成物理上的分離,但邏輯上仍然是一棵有序的二叉樹。 小樹是一棵固定大小的有序二叉樹。每個(gè)請(qǐng)求操作會(huì)產(chǎn)生相應(yīng)的對(duì)大樹節(jié)點(diǎn) 或小樹節(jié)點(diǎn)的一個(gè)或多個(gè)硬件操作(稱為"節(jié)點(diǎn)操作")。
      分層二叉樹和節(jié)點(diǎn)的內(nèi)容在軟件和硬件中都存儲(chǔ),它們的內(nèi)容如果是直 接同步,會(huì)造成中間的"錯(cuò)誤狀態(tài)",在路由器上就表現(xiàn)為"丟包"等,所以 需要定義多組不造成中間"錯(cuò)誤狀態(tài)"的操作集,用來(lái)完成硬件的同步,也 就是說(shuō),同步過(guò)程"不中斷服務(wù)",不需要中斷同步過(guò)程中外部的查找請(qǐng)求(不 是操作請(qǐng)求)。
      大樹節(jié)點(diǎn)和小樹節(jié)點(diǎn)主要體現(xiàn)出分層的概念
      1. 大樹節(jié)點(diǎn)和小樹節(jié)點(diǎn)--對(duì)應(yīng);
      2. 大樹節(jié)點(diǎn)作為對(duì)小樹節(jié)點(diǎn)的資源分配單位;
      3. —組大樹節(jié)點(diǎn)和一組小樹節(jié)點(diǎn)組成一個(gè)有序的二叉樹;
      4. 一組大樹節(jié)點(diǎn)和對(duì)應(yīng)的一組小樹節(jié)點(diǎn)構(gòu)成一個(gè)查找表。 根據(jù)本發(fā)明的實(shí)施例,可定義兩種硬件更新方式
      a) 節(jié)點(diǎn)操作更新按照對(duì)于節(jié)點(diǎn)(大樹節(jié)點(diǎn)和小樹節(jié)點(diǎn))的節(jié)點(diǎn)操作來(lái) 更新硬件;以及
      b) —次更新按照"一次更新操作" 一次性更新一個(gè)小樹的所有節(jié)點(diǎn), 即將小樹節(jié)點(diǎn)一次更新到硬件的一棵新小樹中,然后^^改大樹節(jié)點(diǎn)指針。
      換句話說(shuō),硬件操作可包括節(jié)點(diǎn)操作和一次更新操作。
      圖4是示出根據(jù)本發(fā)明實(shí)施例在分層二叉樹中使用硬件代價(jià)策略的表 項(xiàng)操作的示意圖。該實(shí)施例可用于更新路由查找硬件200,中存儲(chǔ)的數(shù)據(jù)。具 體地,路由查找硬件200,中存儲(chǔ)了分層二叉樹的節(jié)點(diǎn)數(shù)據(jù)。
      接收模塊105,接收來(lái)自外部的表項(xiàng)操作1.....n,作為請(qǐng)求操作,并建
      立表項(xiàng)批量操作1050,。
      路由查找維護(hù)模塊110,建立和維護(hù)硬件操作集(隊(duì)列)。例如,建立一 個(gè)或者幾個(gè)大小為小樹大小的隊(duì)列(以下稱為"節(jié)點(diǎn)操作隊(duì)列,,),用來(lái)緩存 單個(gè)小樹在硬件的操作。同時(shí)另外建立一個(gè)隊(duì)列(以下稱為"小樹更新隊(duì)列,,),
      ii緩存"一次更新"操作。
      針對(duì)某一請(qǐng)求操作,以節(jié)點(diǎn)添加為例,在一個(gè)節(jié)點(diǎn)加入后,可能造成多 個(gè)節(jié)點(diǎn)的搬移,所有對(duì)節(jié)點(diǎn)的操作緩存在"節(jié)點(diǎn)操作隊(duì)列"中。節(jié)點(diǎn)操作隊(duì) 列只屬于對(duì)一棵小樹的操作。節(jié)點(diǎn)才喿作隊(duì)列數(shù)量可以是有限的幾個(gè)。如果節(jié) 點(diǎn)操作隊(duì)列用完,則需要將緩存的硬件操作更新到硬件中。在完成更新之后, 再繼續(xù)緩存后面的操作。
      路由查找維護(hù)模塊IIO,可估計(jì)和比較節(jié)點(diǎn)操作隊(duì)列的硬件操作代價(jià)和小 樹的一次更新操作的代價(jià)。將節(jié)點(diǎn)操作隊(duì)列的代價(jià)定義為它所包括的節(jié)點(diǎn)操 作的代價(jià)。 一顆小樹的"一次更新操作"的代價(jià)可以是一個(gè)固定值,例如對(duì) 應(yīng)于一顆小樹的節(jié)點(diǎn)數(shù)。該維護(hù)模塊110,在一次批量刷新過(guò)程中,將維護(hù)"硬
      件操作"隊(duì)列,選擇代價(jià)最小的隊(duì)列作為該節(jié)點(diǎn)添加請(qǐng)求操作的硬件操作隊(duì)
      列,并且將執(zhí)行該硬件操作隊(duì)列中的硬件操作,以便更新硬件200,中的數(shù)據(jù)。 換句話說(shuō),在節(jié)點(diǎn)添加過(guò)程中,如果發(fā)現(xiàn)一棵小樹中節(jié)點(diǎn)操作次數(shù)(代 價(jià))超過(guò)整棵小樹更新的代價(jià),則應(yīng)選擇一次更新方式,以小樹更新隊(duì)列作 為優(yōu)選的硬件操作隊(duì)列。這時(shí)將節(jié)點(diǎn)操作隊(duì)列釋放,記錄該小樹到小樹更新 隊(duì)列中。在此情況下,路由查找維護(hù)模塊IIO,在小樹更新隊(duì)列中寫入"一次 更新"操作。否則,應(yīng)選擇節(jié)點(diǎn)操作更新方式,以節(jié)點(diǎn)操作隊(duì)列作為優(yōu)選的 硬件操作隊(duì)列。
      這樣,對(duì)于批量操作1050,,所得到的最小代價(jià)的硬件操作集將僅僅包 括優(yōu)選的硬件操作隊(duì)列。路由查找維護(hù)模塊IIO,按照該最小代價(jià)的硬件操作 集中的硬件操作來(lái)更新硬件200,中的數(shù)據(jù)。
      應(yīng)注意,對(duì)于批量操作中大樹節(jié)點(diǎn)發(fā)生變化的情況,如果有兩棵及以上 大樹節(jié)點(diǎn)發(fā)生變化,將會(huì)影響路由查找過(guò)程,可能中斷用戶的正常使用。所 以一旦發(fā)生大樹節(jié)點(diǎn)發(fā)生變化(更新)時(shí),需要及時(shí)更新硬件。換句話說(shuō), 如果發(fā)生大樹節(jié)點(diǎn)被修改的情況,則馬上根據(jù)已有計(jì)算結(jié)果,更新硬件數(shù)據(jù), 然后再處理后面的其他表項(xiàng)操作。
      另外,如果更新涉及的小樹數(shù)量超過(guò)節(jié)點(diǎn)操作隊(duì)列的數(shù)量,即節(jié)點(diǎn)操作 隊(duì)列已用完,則同樣需要先將已有數(shù)據(jù)同步到硬件后再繼續(xù)處理后面的其他 表項(xiàng)操作。
      由于上述最小代價(jià)的硬件操作集的確定過(guò)程是軟件層面上的,比硬件操 作速度要快得多,因而能以最小的代價(jià)來(lái)訪問(wèn)硬件,減少無(wú)效或冗余的硬件操作,從而大大提高硬件的更新速度。 ,
      圖5是示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的在分層二叉樹中使用硬件代價(jià)
      策略的表項(xiàng)操作方法2000的流程的圖。
      方法2000在S2001判斷批量操作中是否緩存有操作(表項(xiàng)操作)。如果 有,則方法2000前進(jìn)到S2005,從批量操作隊(duì)列中取出一個(gè)表項(xiàng)操作。
      然后在S2010,完成節(jié)點(diǎn)的更新,在此過(guò)程中將產(chǎn)生相應(yīng)的一系列硬件 操作。
      隨后,在S2015,判斷小樹是否已經(jīng)擁有節(jié)點(diǎn)操作隊(duì)列。如果該小樹被 操作過(guò),將有節(jié)點(diǎn)操作隊(duì)列,或者已經(jīng)進(jìn)入小樹更新隊(duì)列。如果在S2015判 斷小樹沒(méi)有節(jié)點(diǎn)操作隊(duì)列,則方法2000前進(jìn)到S2020,判斷小樹是否在小樹 更新隊(duì)列。
      在S2020,如果判斷為在小樹更新隊(duì)列,則該小樹的操作不需要記錄, 方法前進(jìn)到S2040(下文將描述)。如果判斷為不在小樹更新隊(duì)列,則方法2000 前進(jìn)到S2025,判斷是否還有可用的節(jié)點(diǎn)操作隊(duì)列。
      在S2025,如果還有可用的節(jié)點(diǎn)搮:作隊(duì)列,則方法2000前進(jìn)到S2045(下 文將描述)。如果沒(méi)有節(jié)點(diǎn)操作隊(duì)列可用,則方法2000前進(jìn)到S2030,需要 先將目前隊(duì)列中的硬件操作更新到硬件,然后再給本次硬件操作申請(qǐng)隊(duì)列。
      隨后,在S2035,將本次硬件操作入節(jié)點(diǎn)操作隊(duì)列。然后在S2040,判 斷大樹節(jié)點(diǎn)是否受到影響。如果大樹節(jié)點(diǎn)受到影響,則方法2000需要前進(jìn)到 S2045和S2050,及時(shí)將目前緩存在節(jié)點(diǎn)操作隊(duì)列和小樹更新隊(duì)列中的硬件操 作刷新到硬件中,以免后續(xù)刷新影響硬件查找。具體地,首先在S2045,將 小樹中的節(jié)點(diǎn)操作更新到硬件,然后才在S2050,更新整棵小樹到硬件。在 更新整棵小樹時(shí),需要先申請(qǐng)一個(gè)空閑的小樹,更新數(shù)據(jù)到硬件后,修改相 應(yīng)大樹的指針,然后釋放原來(lái)的小樹。
      完成刷新之后,方法2000前進(jìn)到S2055,判斷是否要結(jié)束整個(gè)方法。如 果要結(jié)束,則方法2000完成并終止。如果不要結(jié)束,則返回S2001繼續(xù)循環(huán), 處理下一個(gè)表項(xiàng)纟喿作。如果在S2040,判斷為大樹節(jié)點(diǎn)不受影響,則方法2000 也返回S2001繼續(xù)循環(huán),處理下一個(gè)表項(xiàng)操作。
      返回S2015,當(dāng)判斷小樹擁有節(jié)點(diǎn)操作隊(duì)列時(shí),說(shuō)明小樹已經(jīng)被操作過(guò)。 在此情況下,方法2000前進(jìn)到S2060,比較硬件代^介,根據(jù)代價(jià)決定硬件更 新策略。具體地,在S2060,判斷節(jié)點(diǎn)操作代價(jià)是否超過(guò)小樹更新代價(jià)。如說(shuō)明應(yīng)選擇小樹更新操作(上文描述的"一次更 新"操作),則方法2000前進(jìn)到S2065,釋放節(jié)點(diǎn)操作隊(duì)列,以供其他小樹 使用。這是因?yàn)閷?duì)于需要整棵更新的小樹來(lái)說(shuō),操作入隊(duì)列是沒(méi)有意義的。 然后在S2070,清空節(jié)點(diǎn)操作隊(duì)列。將節(jié)點(diǎn)操作隊(duì)列清空可以防止后面的誤 操作。隨后,在S2075,入小樹更新隊(duì)列,即,記錄要更新的小樹。在小樹 后續(xù)會(huì)被銷毀的情況下,也可在S2075處感知到這一情況,以免做無(wú)效或者 錯(cuò)誤更新。
      隨后,方法2000前進(jìn)到S2040。 S2040以及后續(xù)已經(jīng)在上文中進(jìn)行了詳 細(xì)描述,在此不再贅述。
      返回S2060,如果判斷結(jié)果為"是",即節(jié)點(diǎn)操作代價(jià)不超過(guò)小樹更新代 價(jià),則應(yīng)選擇節(jié)點(diǎn)操作更新方式。因此,方法2000前進(jìn)到S2035,將硬件梯: 作入節(jié)點(diǎn)操作隊(duì)列。S2035以及后續(xù)步驟已經(jīng)在上文中進(jìn)行了詳細(xì)描述,在 此不再贅述。
      返回S2001,如果判斷結(jié)果為"否",即沒(méi)有待處理的表項(xiàng)操作,或者說(shuō) 已經(jīng)將緩存的所有表項(xiàng)操作處理完,則方法2000前進(jìn)到S2045和S2050,將 目前緩存在節(jié)點(diǎn)操作隊(duì)列和小樹更新隊(duì)列中的硬件操作刷新到硬件中。 S2045、 S2050以及后續(xù)步驟已經(jīng)在上文中進(jìn)行了詳細(xì)描述,在此不再贅述。
      上面以分層二叉樹為例說(shuō)明了路由查找硬件表項(xiàng)更新的方法。但本領(lǐng)域 技術(shù)人員很清楚,上述例子只是為了更好地解釋本發(fā)明的原理,而不構(gòu)成對(duì) 本發(fā)明范圍的限制。例如,本發(fā)明實(shí)施例也可應(yīng)用于其他種類的硬件數(shù)據(jù)的 更新。硬件數(shù)據(jù)的存儲(chǔ)方式不限于分層二叉樹,其他數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)也可采用 本發(fā)明實(shí)施例的原理。在任何數(shù)據(jù)同步到硬件中時(shí),定義一個(gè)批量更新硬件 操作的開(kāi)始和結(jié)束點(diǎn),在此過(guò)程中,如果后面的更新硬件操作可能會(huì)影響前 面的更新結(jié)果,導(dǎo)致前面的更新"無(wú)效",就可以使用該設(shè)備來(lái)完成優(yōu)化減少 硬件更新操作。
      另外,本發(fā)明實(shí)施例中描述了用于更新整顆小樹的"一次更新操作"作 為節(jié)點(diǎn)操作的替代方法。但本領(lǐng)域技術(shù)人員明白,"一次更新操作"不對(duì)本發(fā) 明的范圍構(gòu)成限制,也可以采用其他的同步更新方法。例如可以進(jìn)行"局部" 更新,效率會(huì)提高一些,但是代價(jià)計(jì)算會(huì)相對(duì)復(fù)雜。這樣的局部更新操作也 在本發(fā)明的范圍內(nèi)。
      因此,通過(guò)本發(fā)明的實(shí)施例,給批量操作導(dǎo)致硬件多次無(wú)效更新情況提
      14供了 一種減少硬件操作的方案,并可以給分層二叉樹的路由查找方案提供一 種快速刷新表項(xiàng)的方法和設(shè)備。
      盡管已示出和描述了本發(fā)明的 一些實(shí)施例,但本領(lǐng)域技術(shù)人員應(yīng)理解, 在不脫離本發(fā)明的原理和精神的情況下,可對(duì)這些實(shí)施例進(jìn)行各種修改,這 樣的修改應(yīng)落入本發(fā)明的范圍內(nèi)。
      權(quán)利要求
      1、一種硬件數(shù)據(jù)更新設(shè)備,用于更新硬件中存儲(chǔ)的數(shù)據(jù),其特征在于,包括接收模塊,接收至少一個(gè)請(qǐng)求操作并將所述至少一個(gè)請(qǐng)求操作定義為批量操作;以及維護(hù)模塊,對(duì)于所述批量操作中的每個(gè)請(qǐng)求操作產(chǎn)生至少兩個(gè)硬件操作集,估計(jì)每個(gè)硬件操作集的代價(jià),并基于所估計(jì)的代價(jià)更新所述硬件中存儲(chǔ)的數(shù)據(jù),其中每個(gè)硬件操作集包括至少兩個(gè)硬件操作,并且所述至少兩個(gè)硬件操作集對(duì)所述硬件的操作結(jié)果是等價(jià)的。
      2、 如權(quán)利要求1所述的硬件數(shù)據(jù)更新設(shè)備,其特征在于,所述維護(hù)模塊 基于所估計(jì)的代價(jià)更新所述硬件中存儲(chǔ)的數(shù)據(jù)包括所述維護(hù)模塊在所估計(jì) 的代價(jià)中選擇最小代價(jià),并按照對(duì)應(yīng)于該最小代價(jià)的硬件操作集中的硬件操 作來(lái)更新所述硬件中存儲(chǔ)的數(shù)據(jù)。
      3、 如權(quán)利要求1所述的硬件數(shù)據(jù)更新設(shè)備,其特征在于,所述維護(hù)模塊 根據(jù)硬件操作的種類而對(duì)該硬件操作賦予權(quán)值,以估計(jì)硬件操作集的代價(jià)。
      4、 如權(quán)利要求1所述的硬件數(shù)據(jù)更新設(shè)備,其特征在于,所述數(shù)據(jù)被存 儲(chǔ)為分層二叉樹的節(jié)點(diǎn),其中所述分層二叉樹包括大樹節(jié)點(diǎn)和小樹節(jié)點(diǎn)。
      5、 如權(quán)利要求4所述的硬件數(shù)據(jù)更新設(shè)備,其特征在于,所述硬件操作 包括節(jié)點(diǎn)操作和一次更新操作,其中所述節(jié)點(diǎn)操作是按照所述請(qǐng)求操作而產(chǎn) 生的對(duì)分層二叉樹的節(jié)點(diǎn)的操作,所述一次更新操作是一次性更新一個(gè)小樹 的所有節(jié)點(diǎn)的操作。
      6、 如權(quán)利要求5所述的硬件數(shù)據(jù)更新設(shè)備,其特征在于,所述硬件操作 集包括節(jié)點(diǎn)操作隊(duì)列和小樹更新隊(duì)列,其中所述節(jié)點(diǎn)操作隊(duì)列緩存單個(gè)小樹 的所述節(jié)點(diǎn)操作,所述小樹更新隊(duì)列緩存所述一次更新操作。
      7、 如權(quán)利要求6所述的硬件數(shù)據(jù)更新設(shè)備,其特征在于, 所述估計(jì)每個(gè)硬件操作集的代價(jià)包括針對(duì)特定請(qǐng)求操作,所述維護(hù)模塊估計(jì)所述節(jié)點(diǎn)操作隊(duì)列和所述一次更新操作的代價(jià),所述基于所估計(jì)的代價(jià)更新所述硬件中存儲(chǔ)的數(shù)據(jù)包括如果所述節(jié)點(diǎn) 操作隊(duì)列的代價(jià)不超過(guò)所述一次更新操作的代價(jià),則所述維護(hù)模塊確定所述節(jié)點(diǎn)操作隊(duì)列作為所述特定請(qǐng)求操作的硬件操作隊(duì)列,如果所述節(jié)點(diǎn)操:作隊(duì) 列的代價(jià)超過(guò)所述一次更新操作的代價(jià),則所述維護(hù)模塊確定所述小樹更新 隊(duì)列作為所述特定請(qǐng)求操作的硬件操作隊(duì)列,并且按照所確定的硬件操作隊(duì) 列來(lái)更新所述硬件中存儲(chǔ)的數(shù)據(jù)。
      8、 如權(quán)利要求6所述的硬件數(shù)據(jù)更新設(shè)備,其特征在于,如果所述節(jié)點(diǎn) 操作隊(duì)列用完,則所述維護(hù)模塊按照目前的節(jié)點(diǎn)操作隊(duì)列和小樹更新隊(duì)列中 的硬件操作而更新所述硬件中存儲(chǔ)的數(shù)據(jù)。
      9、 如權(quán)利要求4所述的硬件數(shù)據(jù)更新設(shè)備,其特征在于,如果更新所述 大樹節(jié)點(diǎn),則所述維護(hù)模塊按照目前的節(jié)點(diǎn)操作隊(duì)列和小樹更新隊(duì)列中的硬 件操作而更新所述硬件中存儲(chǔ)的數(shù)據(jù)。
      10、 如權(quán)利要求6所述的硬件數(shù)據(jù)更新設(shè)備,其特征在于,所述小樹的 一次更新梯:作包括申請(qǐng)新小樹;將小樹節(jié)點(diǎn)一次更新到所述新小樹中;以 及修改大樹節(jié)點(diǎn)指針。
      11、 一種硬件數(shù)據(jù)更新方法,用于更新硬件中存儲(chǔ)的數(shù)據(jù),其特征在于,包括接收至少 一個(gè)請(qǐng)求操作并將所述至少 一個(gè)請(qǐng)求操作定義為批量操作; 對(duì)于所述批量操作中的每個(gè)請(qǐng)求操作產(chǎn)生至少兩個(gè)硬件操作集; 估計(jì)每個(gè)硬件操作集的代價(jià);以及 基于所估計(jì)的代價(jià)更新所述硬件中存儲(chǔ)的數(shù)據(jù),其中每個(gè)硬件操作集包括至少兩個(gè)硬件操作,并且所述至少兩個(gè)硬件操 作集對(duì)所述硬件的操作結(jié)果是等價(jià)的。
      12、 如權(quán)利要求11所述的硬件數(shù)據(jù)更新方法,其特征在于,所述基于所 估計(jì)的代價(jià)更新所述硬件中存儲(chǔ)的數(shù)據(jù)包括在所估計(jì)的代價(jià)中選擇最小代 價(jià),并按照對(duì)應(yīng)于該最小代價(jià)的硬件操作集中的硬件操作來(lái)更新所述硬件中 存儲(chǔ)的數(shù)據(jù)。
      13、 如權(quán)利要求11所述的硬件數(shù)據(jù)更新方法,其特征在于,所述估計(jì)每 個(gè)硬件操作集的代價(jià)包括根據(jù)硬件操作的種類而對(duì)該硬件操作賦予權(quán)值, 以估計(jì)硬件操作集的代價(jià)。
      14、 如權(quán)利要求11所述的硬件數(shù)據(jù)更新方法,其特征在于,所述數(shù)據(jù)被 存儲(chǔ)為分層二叉樹的節(jié)點(diǎn),其中所述分層二叉樹包括大樹節(jié)點(diǎn)和小樹節(jié)點(diǎn)。
      15、 如權(quán)利要求14所述的硬件數(shù)據(jù)更新方法,其特征在于,所述硬件操作包括節(jié)點(diǎn)操作和一次更新操作,其中所述節(jié)點(diǎn)操作是按照所述請(qǐng)求操作而 產(chǎn)生的對(duì)分層二叉樹的節(jié)點(diǎn)的操作,所述一次更新才乘作是一次性更新一個(gè)小 樹的所有節(jié)點(diǎn)的操作。
      16、 如權(quán)利要求15所述的硬件數(shù)據(jù)更新方法,其特征在于,所述硬件搡 作集包括節(jié)點(diǎn)操作隊(duì)列和小樹更新隊(duì)列,其中所述節(jié)點(diǎn)操作隊(duì)列緩存單個(gè)小 樹的所述節(jié)點(diǎn)操作,所述小樹更新隊(duì)列緩存所述一次更新操作。
      17、 如權(quán)利要求16所述的硬件數(shù)據(jù)更新方法,其特征在于, 所述估計(jì)每個(gè)硬件操作集的代價(jià)包括針對(duì)特定請(qǐng)求操作,估計(jì)節(jié)點(diǎn)操作隊(duì)列和所述一次更新操作的代〗介,以及所述基于所估計(jì)的代價(jià)更新所述硬件中存儲(chǔ)的數(shù)據(jù)包括如果所述節(jié)點(diǎn) 操作隊(duì)列的代價(jià)不超過(guò)所述一次更新操作的代價(jià),則所述維護(hù)模塊確定所述 節(jié)點(diǎn)操作隊(duì)列作為所述特定請(qǐng)求操作的硬件操作隊(duì)列,如果所述節(jié)點(diǎn)梯:作隊(duì) 列的代價(jià)超過(guò)所述一次更新操作的代價(jià),則所述維護(hù)模塊確定所述小樹更新 隊(duì)列作為所述特定請(qǐng)求操作的硬件操作隊(duì)列,并且按照所確定的硬件操作隊(duì) 列來(lái)更新所述硬件中存儲(chǔ)的數(shù)據(jù)。
      18、 如權(quán)利要求16所述的硬件數(shù)據(jù)更新方法,其特征在于,所述更新所 述硬件中存儲(chǔ)的數(shù)據(jù)包括如果所述節(jié)點(diǎn)操作隊(duì)列用完,則按照目前的節(jié)點(diǎn) 操作隊(duì)列和小樹更新隊(duì)列中的硬件操作而更新所述硬件中存儲(chǔ)的數(shù)據(jù)。
      19、 如權(quán)利要求14所述的硬件數(shù)據(jù)更新方法,其特征在于,所述更新所 述硬件中存儲(chǔ)的數(shù)據(jù)包括如果更新所述大樹節(jié)點(diǎn),則所述維護(hù)模塊按照目 前的節(jié)點(diǎn)操作隊(duì)列和小樹更新隊(duì)列中的硬件操作而更新所述硬件中存儲(chǔ)的數(shù) 據(jù)。
      20、 如權(quán)利要求16所述的硬件數(shù)據(jù)更新方法,其特征在于,所述小樹的 一次更新操作包括申請(qǐng)新小樹;將小樹節(jié)點(diǎn)一次更新到所述新小樹中;以及 修改大樹節(jié)點(diǎn)指針。
      21、 一種系統(tǒng),包括用于存儲(chǔ)數(shù)據(jù)的硬件,其特征在于,所述系統(tǒng)還包 括硬件數(shù)據(jù)更新設(shè)備,用于更新所述硬件中存儲(chǔ)的數(shù)據(jù),所述硬件數(shù)據(jù)更新 設(shè)備包括接收模塊,接收至少一個(gè)請(qǐng)求操作并將所述至少一個(gè)請(qǐng)求操作定義為批量操作;以及維護(hù)模塊,對(duì)于批量操作中的每個(gè)請(qǐng)求操作產(chǎn)生至少兩個(gè)硬件操作集, 估計(jì)每個(gè)硬件操作集的代價(jià),并基于所估計(jì)的代價(jià)更新所述硬件中存儲(chǔ)的數(shù) 據(jù),其中每個(gè)硬件操作集包括至少兩個(gè)硬件操作,并且所述至少兩個(gè)硬件操 作集對(duì)所述硬件的操作結(jié)果是等價(jià)的。
      全文摘要
      本發(fā)明實(shí)施例提供了一種硬件數(shù)據(jù)更新設(shè)備和方法,用于更新硬件中存儲(chǔ)的數(shù)據(jù)。該設(shè)備包括接收模塊,接收至少一個(gè)請(qǐng)求操作并將至少一個(gè)請(qǐng)求操作定義為批量操作;以及維護(hù)模塊,對(duì)于批量操作中的每個(gè)請(qǐng)求操作產(chǎn)生至少兩個(gè)硬件操作集,估計(jì)每個(gè)硬件操作集的代價(jià),并基于所估計(jì)的代價(jià)更新硬件中存儲(chǔ)的數(shù)據(jù)。每個(gè)硬件操作集包括至少兩個(gè)硬件操作。至少兩個(gè)硬件操作集對(duì)硬件的操作結(jié)果是等價(jià)的。該設(shè)備能以最小的代價(jià)來(lái)訪問(wèn)硬件,減少無(wú)效或冗余的硬件操作,從而大大提高硬件的更新速度。
      文檔編號(hào)H04L12/24GK101515866SQ20091013182
      公開(kāi)日2009年8月26日 申請(qǐng)日期2009年4月8日 優(yōu)先權(quán)日2009年4月8日
      發(fā)明者董偉峰 申請(qǐng)人:華為技術(shù)有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1