国产精品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>

      存儲系統(tǒng)及其操作方法與流程

      文檔序號:12786287閱讀:656來源:國知局
      存儲系統(tǒng)及其操作方法與流程

      本申請要求2015年12月23日提交的申請?zhí)枮?0-2015-0184913的韓國專利申請的優(yōu)先權(quán),其通過引用其整體合并于此。

      技術(shù)領(lǐng)域

      本發(fā)明的示例性實(shí)施例總體而言涉及一種包括存儲器件和存儲器控制器的存儲系統(tǒng)及其操作方法。



      背景技術(shù):

      存儲器件中的存儲體的數(shù)量是重要的,因?yàn)樵诖鎯ζ骷牟僮髌陂g,任何一次僅可以激活每個(gè)存儲體的一行。因此,例如,如果存儲器件包括8個(gè)存儲體,則一次可以激活存儲器件中的僅最多8行,每個(gè)存儲體一行。類似地,如果存儲器件包括4個(gè)存儲體,則一次可以激活僅最多4行。

      因此,為了增強(qiáng)存儲器件的性能,可以增加存儲體的數(shù)量,然而,是以相當(dāng)大的代價(jià)。通常,用于繪圖的存儲器件(諸如例如GDDR5SDRAM)比已知的存儲器件(諸如例如DDR3SDRAM)具有更優(yōu)的并行性,因?yàn)槠渚哂懈嗟拇鎯w,但是其更昂貴。



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

      各種實(shí)施例針對提供一種更簡單、更經(jīng)濟(jì)適用的技術(shù)以提升存儲系統(tǒng)的性能。

      在一個(gè)實(shí)施例中,一種存儲系統(tǒng)可以包括:存儲器件,包括N個(gè)(N是等于或大于1的整數(shù))物理存儲體;以及存儲器控制器,適用于使用M個(gè)(M是比N大的整數(shù))邏輯存儲體來與主機(jī)通信以及適用于與存儲器件通信。存儲器控制器可以包括:與各個(gè)M個(gè)邏輯存儲體相對應(yīng)的M個(gè)行緩沖器,用于高速緩沖各個(gè)M個(gè)邏輯存儲體的數(shù)據(jù);以及地址轉(zhuǎn)換器,用于執(zhí)行用于與主機(jī)通信的邏輯地址與用于與存儲器件通信的物理地址之間的地址轉(zhuǎn)換。

      邏輯地址可以包括邏輯存儲體地址、邏輯行地址和邏輯列地址,而物理地址可以包括物理存儲體地址、物理行地址和物理列地址。

      地址轉(zhuǎn)換器可以將邏輯存儲體地址的一個(gè)或更多個(gè)比特轉(zhuǎn)換成物理存儲體地址,可以將邏輯存儲體地址的剩余比特和邏輯行地址轉(zhuǎn)換成物理行地址,以及可以將邏輯列地址轉(zhuǎn)換成物理列地址。

      所述M個(gè)行緩沖器中的每個(gè)行緩沖器可以儲存:高速緩沖的數(shù)據(jù)、關(guān)于行緩沖器的有效性的有效性信息、高速緩沖的數(shù)據(jù)的邏輯行地址、高速緩沖的數(shù)據(jù)的物理存儲體地址、高速緩沖的數(shù)據(jù)的物理行地址、以及指示高速緩沖的數(shù)據(jù)的臟或干凈的臟/干凈信息。

      所述M個(gè)行緩沖器中的每個(gè)行緩沖器儲存:被分成兩部分或更多部分的高速緩沖的數(shù)據(jù);關(guān)于行緩沖器的有效性的有效性信息;高速緩沖的數(shù)據(jù)的邏輯行地址;高速緩沖的數(shù)據(jù)的物理存儲體地址;高速緩沖的數(shù)據(jù)的物理行地址;關(guān)于高速緩沖的數(shù)據(jù)的所述兩部分或更多部分中的每部分的有效性的數(shù)據(jù)有效性信息;以及指示高速緩沖的數(shù)據(jù)的所述兩部分或更多部分中的每部分的臟或干凈的臟/干凈信息。

      如果要由主機(jī)讀取的邏輯存儲體地址和邏輯行地址的數(shù)據(jù)已經(jīng)被高速緩沖在所述M個(gè)行緩沖器的對應(yīng)邏輯存儲體的行緩沖器中,則存儲器控制器可以從所述對應(yīng)邏輯存儲體的行緩沖器讀取數(shù)據(jù)以及將讀取的數(shù)據(jù)發(fā)送給主機(jī)。如果要由主機(jī)讀取的邏輯存儲體地址和邏輯行地址的數(shù)據(jù)還未被高速緩沖在所述M個(gè)行緩沖器的對應(yīng)邏輯存儲體的行緩沖器中,則存儲器控制器可以使用由主機(jī)讀取的邏輯存儲體地址和邏輯行地址轉(zhuǎn)換來的物理存儲體地址和物理行地址來從存儲器件讀取數(shù)據(jù),以及將讀取的數(shù)據(jù)傳送給主機(jī)。

      當(dāng)主機(jī)指示寫入操作時(shí),存儲器控制器可以訪問所述M個(gè)行緩沖器之中的行緩沖器,以及用寫入數(shù)據(jù)來更新被訪問的行緩沖器。被訪問的行緩沖器可以是已經(jīng)被指示了寫入操作的邏輯存儲體的行緩沖器。

      如果被高速緩沖在已經(jīng)被指示了寫入操作的邏輯存儲體的行緩沖器中的行被改變,則可以用寫入數(shù)據(jù)更新存儲器件,已經(jīng)用所述寫入數(shù)據(jù)更新了已經(jīng)被指示了寫入操作的邏輯存儲體的行緩沖器。

      存儲器控制器還可以包括:主機(jī)接口,適用于與主機(jī)通信;調(diào)度器,適用于確定存儲器件的操作的順序;命令發(fā)生器,適用于產(chǎn)生要施加給存儲器件的命令;以及存儲器接口,適用于與存儲器件通信。

      對于每個(gè)邏輯存儲體,主機(jī)一次可以激活一行。

      在一個(gè)實(shí)施例中,一種存儲器控制器的操作方法可以包括:從主機(jī)接收針對M個(gè)邏輯存儲體的第K個(gè)邏輯存儲體的特定邏輯行的讀取請求;判斷第K個(gè)邏輯存儲體的行緩沖器是否是空的;如果確定第K個(gè)邏輯存儲體的行緩沖器是空的,則從存儲器件中包括的N個(gè)物理存儲體之中的特定物理存儲體的特定物理行讀取數(shù)據(jù)以及將讀取的數(shù)據(jù)傳送給主機(jī),其中,所述特定物理存儲體對應(yīng)于第K個(gè)邏輯存儲體,以及所述特定物理行對應(yīng)于所述特定邏輯行;以及用從存儲器件讀取的數(shù)據(jù)來更新第K個(gè)邏輯存儲體的行緩沖器。N可以是等于或大于1的整數(shù),M可以是大于N的整數(shù),以及K可以是大于等于1至小于等于M的整數(shù)。

      存儲器控制器的操作方法還可以包括:如果確定第K個(gè)邏輯存儲體的行緩沖器不是空的,則判斷是否存在針對第K個(gè)行緩沖器的行命中。

      存儲器控制器的操作方法還可以包括:如果確定存在針對第K個(gè)行緩沖器的行命中,則將儲存在第K個(gè)行緩沖器中的數(shù)據(jù)傳送給主機(jī)。

      存儲器控制器的操作方法還可以包括:如果確定不存在針對第K個(gè)行緩沖器的行命中,則用儲存在第K個(gè)行緩沖器中的臟數(shù)據(jù)來更新存儲器件的與物理存儲體地址和物理行地址相對應(yīng)的區(qū)域;從物理存儲體的與特定邏輯行相對應(yīng)的物理行讀取數(shù)據(jù)以及將讀取的數(shù)據(jù)傳送給主機(jī),所述物理存儲體屬于存儲器件的所述N個(gè)物理存儲體,且對應(yīng)于第K個(gè)邏輯存儲體;以及用從存儲器件讀取的數(shù)據(jù)來更新第K個(gè)邏輯存儲體的行緩沖器。

      在一個(gè)實(shí)施例中,一種存儲器控制器的操作方法可以包括:從主機(jī)接收針對M個(gè)邏輯存儲體的第K個(gè)邏輯存儲體的特定邏輯行的寫入請求;判斷是否存在針對第K個(gè)邏輯存儲體的行緩沖器的行命中;如果確定存在行命中,則用寫入數(shù)據(jù)來更新第K個(gè)邏輯存儲體的行緩沖器;如果確定不存在行命中,則用第K個(gè)邏輯存儲體的行緩沖器的臟數(shù)據(jù)來更新物理存儲體的與所述特定邏輯行相對應(yīng)的物理行,所述物理存儲體屬于存儲器件的N個(gè)物理存儲體且對應(yīng)于第K個(gè)邏輯存儲體;以及用寫入數(shù)據(jù)來更新第K個(gè)邏輯存儲體的行緩沖器。N可以是等于或大于1的整數(shù),M可以是大于N的整數(shù),以及K可以是大于等于1至小于等于M的整數(shù)。

      附圖說明

      圖1是圖示根據(jù)本發(fā)明的一個(gè)實(shí)施例的存儲系統(tǒng)的示圖。

      圖2是圖示根據(jù)本發(fā)明的一個(gè)實(shí)施例的地址轉(zhuǎn)換器的操作的示圖。

      圖3是圖示物理存儲體與邏輯存儲體之間的關(guān)系的示圖。

      圖4是圖示根據(jù)本發(fā)明的一個(gè)實(shí)施例的儲存在多個(gè)行緩沖器的每個(gè)中的信息的示例的示圖。

      圖5是圖示根據(jù)本發(fā)明的一個(gè)實(shí)施例的儲存在多個(gè)行緩沖器的每個(gè)中的信息的另一示例的示圖。

      圖6至圖10是圖示根據(jù)本發(fā)明的一個(gè)實(shí)施例的當(dāng)在存儲系統(tǒng)中執(zhí)行讀取操作和寫入操作時(shí)儲存在行緩沖器中的信息可以如何改變的示圖。

      圖11是根據(jù)本發(fā)明的一個(gè)實(shí)施例的存儲系統(tǒng)的讀取操作的流程圖。

      圖12是根據(jù)本發(fā)明的一個(gè)實(shí)施例的存儲系統(tǒng)的寫入操作的流程圖。

      具體實(shí)施方式

      下面將參照附圖更詳細(xì)地描述各種實(shí)施例。然而,本發(fā)明可以以不同的形式來實(shí)施,而不應(yīng)當(dāng)被解釋為局限于本文中闡述的實(shí)施例。相反地,這些實(shí)施例被提供使得本公開將徹底且完整,且這些實(shí)施例將把本發(fā)明的范圍充分傳達(dá)給本領(lǐng)域技術(shù)人員。貫穿本公開,相同的附圖標(biāo)記在本發(fā)明的各種附圖和實(shí)施例中始終指代相同的部分。

      圖1圖示了根據(jù)本發(fā)明的一個(gè)實(shí)施例的存儲系統(tǒng)100。

      根據(jù)圖1的實(shí)施例,存儲系統(tǒng)100可以包括存儲器件110和存儲器控制器120。

      存儲器件110可以包括八(8)個(gè)物理存儲體PBANK0~PBANK7。然而,我們注意到,物理存儲體的數(shù)量可以通過設(shè)計(jì)來改變。存儲器件110可以從存儲器控制器120接收命令和物理地址,以及將數(shù)據(jù)發(fā)送給存儲器控制器120和從存儲器控制器120接收數(shù)據(jù)。當(dāng)執(zhí)行讀取操作時(shí),數(shù)據(jù)可以從存儲器件110傳輸給存儲器控制器120。當(dāng)執(zhí)行寫入操作時(shí),數(shù)據(jù)可以從存儲器控制器120傳輸給存儲器件110。

      存儲器控制器120可以響應(yīng)于來自主機(jī)HOST的請求來控制存儲器件110。主機(jī)HOST與存儲器控制器120之間的通信可以基于存儲器件110包括三十二(32)個(gè)邏輯存儲體的假設(shè)來執(zhí)行。即,從主機(jī)HOST傳輸給存儲器控制器120的邏輯地址可以基于這32個(gè)邏輯存儲體來配置。邏輯存儲體的數(shù)量也可以通過設(shè)計(jì)來改變。存儲器控制器120與存儲器件110之間的通信可以基于存儲器件110包括8個(gè)物理存儲體的假設(shè)來執(zhí)行。即,從存儲器控制器120傳輸給存儲器件110的物理地址可以基于這8個(gè)物理存儲體來配置。

      存儲器控制器120可以包括主機(jī)接口121、調(diào)度器122、命令發(fā)生器123、存儲器接口124、地址轉(zhuǎn)換器125和多個(gè)行緩沖器(例如,具有與邏輯存儲體的數(shù)量相同的數(shù)量的ROW_BUF0~ROW_BUF31)。因此,在圖1的實(shí)施例中,控制器包括32個(gè)行緩沖器ROW_BUF0~ROW_BUF31。

      主機(jī)接口121可以為存儲器控制器120與主機(jī)HOST之間的任何合適的接口。主機(jī)HOST的請求可以經(jīng)由主機(jī)接口121來從主機(jī)HOST接收。與主機(jī)HOST的請求相對應(yīng)的處理的結(jié)果可以經(jīng)由主機(jī)接口121來傳輸給主機(jī)HOST。

      調(diào)度器122可以確定如下請求的順序,該請求屬于來自主機(jī)HOST的請求以及將針對存儲器件110作出的。調(diào)度器122可以改變從主機(jī)HOST接收的請求的順序以及要指示給存儲器件110的操作的順序以提升存儲器件110的性能。例如,雖然主機(jī)HOST可以首先請求存儲器件110的讀取操作,然后請求存儲器件110的寫入操作,但是調(diào)度器122可以控制該順序,使得寫入操作可以先于讀取操作執(zhí)行。調(diào)度器122可以訪問行緩沖器ROW_BUF0~ROW_BUF31,并執(zhí)行用于判斷是否對行緩沖器ROW_BUF0~ROW_BUF31執(zhí)行讀取/寫入操作或者是否對存儲器件110執(zhí)行讀取/寫入操作的操作。

      命令發(fā)生器123可以根據(jù)由調(diào)度器122確定的操作順序來產(chǎn)生要施加給存儲器件110的命令。

      存儲器接口124可以為用于存儲器控制器120與存儲器件110之間的接口的任意合適的接口。命令和物理地址可以經(jīng)由存儲器接口124從存儲器控制器120傳輸給存儲器件110。數(shù)據(jù)可以經(jīng)由存儲器接口124來在存儲器件110與存儲器控制器120之間傳輸和接收。在下文中存儲器接口124也稱作PHY接口。

      地址轉(zhuǎn)換器125可以執(zhí)行用于與主機(jī)HOST通信的邏輯地址與用于與存儲器件110通信的物理地址之間的轉(zhuǎn)換操作。

      行緩沖器ROW_BUF0~ROW_BUF31分別對應(yīng)于32個(gè)邏輯存儲體,并高速緩沖其相應(yīng)的邏輯存儲體的數(shù)據(jù)。當(dāng)從主機(jī)HOST作出讀取或?qū)懭胝埱髸r(shí),通過首先訪問行緩沖器ROW_BUF0~ROW_BUF31,然后盡可能多地從行緩沖器ROW_BUF0~ROW_BUF31讀取數(shù)據(jù)或?qū)?shù)據(jù)寫入行緩沖器ROW_BUF0~ROW_BUF31中,存儲器控制器120可以操作就好像存儲器件110具有大于32個(gè)存儲體的物理存儲體PBANK0~PBANK7一樣。即,存儲器件110僅包括8個(gè)物理存儲體PBANK0~PBANK7,但是存儲系統(tǒng)100可以給主機(jī)HOST提供增強(qiáng)的性能,就好像存儲器件110具有32個(gè)存儲體一樣。

      在圖1中,存儲器件110已經(jīng)被圖示為包括8個(gè)物理存儲體PBANK0~PBANK7,但是存儲器件110可以包括等于或大于1的任何特定數(shù)量N的物理存儲體,其中N是自然數(shù)。此外,在圖1中,存儲器控制器110已經(jīng)被圖示為支持32個(gè)邏輯存儲體,但是邏輯存儲體的數(shù)量可以為大于存儲器件110的物理存儲體的數(shù)量的特定數(shù)量M,其中M是物理數(shù)。

      圖2是圖示根據(jù)本發(fā)明的一個(gè)實(shí)施例的地址轉(zhuǎn)換器的操作的示圖。例如,圖2的操作可以為圖1的地址轉(zhuǎn)換器125的操作。

      根據(jù)圖2的實(shí)施例,物理地址可以包括3比特的物理存儲體地址PBA<0:2>、12比特的物理行地址PRA<0:11>和10比特的物理列地址PCA<0:9>。此外,邏輯地址可以包括5比特的邏輯存儲體地址LBA<0:4>、10比特的邏輯行地址LRA<0:9>和10比特的邏輯列地址LCA<0:9>。

      物理地址與邏輯地址之間的轉(zhuǎn)換可以通過將物理行地址PRA<0:11>的2比特的PRA<10:11>(即,最高有效位)轉(zhuǎn)換成邏輯地址的物理存儲體地址LBA<0:4>的最低有效位LBA<0:1>。在這種情況下,物理存儲體地址PBA<0:2>可以被轉(zhuǎn)換成邏輯存儲體地址LBA<2:4>。

      圖2中的物理地址與邏輯地址之間的轉(zhuǎn)換僅為示例??梢愿淖儚奈锢硇械刂返竭壿嫶鎯w地址的轉(zhuǎn)換中的地址的比特的數(shù)量和位置。在一些實(shí)施例中,一些物理列地址可以被轉(zhuǎn)換成邏輯存儲體地址。

      圖3圖示了物理存儲體與邏輯存儲體之間的對應(yīng)關(guān)系。

      相應(yīng)地,物理存儲體PBANK0~PBANK7與相同位置中示出的邏輯存儲體LBANK0~LBANK31彼此對應(yīng)。如所圖示的,例如,一個(gè)物理存儲體可以對應(yīng)于4個(gè)邏輯存儲體。例如,物理存儲體0PBANK0可以對應(yīng)于邏輯存儲體0LBANK0至邏輯存儲體3LBANK3,而物理存儲體6PBANK6可以對應(yīng)于邏輯存儲體24LBANK24至邏輯存儲體27LBANK27。

      如果物理存儲體PBANK0~PBANK7中的每個(gè)包括4096個(gè)物理行,這些物理行包括物理行0至物理行4095,則邏輯存儲體LBANK0~LBANK31中的每個(gè)可以包括1024個(gè)邏輯行,這些邏輯行包括邏輯行0至邏輯行1023。物理存儲體0PBANK0的物理行0至物理行1023可以對應(yīng)于邏輯存儲體0LBANK0的邏輯行0至邏輯行1023。物理存儲體0PBANK0的物理行1024至物理行2047可以對應(yīng)于邏輯存儲體1LBANK1的邏輯行0至邏輯行1023。物理存儲體0PBANK0的物理行2048至物理行3071可以對應(yīng)于邏輯存儲體2LBANK2的邏輯行0至邏輯行1023。物理存儲體0PBANK0的物理行3072至物理行4095可以對應(yīng)于邏輯存儲體3LBANK3的邏輯行0至邏輯行1023。類似地,物理存儲體1PBANK1至物理存儲體7PBANK7的物理行可以對應(yīng)于邏輯存儲體4LBANK4至邏輯存儲體31LBANK31的邏輯行。

      圖4是圖示根據(jù)本發(fā)明的一個(gè)實(shí)施例的圖1的行緩沖器ROW_BUF0~ROW_BUF31中的每個(gè)中儲存的信息的示例的示圖。

      根據(jù)圖4的實(shí)施例,行緩沖器ROW_BUF0~ROW_BUF31中的每個(gè)可以儲存關(guān)于每個(gè)行緩沖器的有效性的有效性信息VALID、邏輯行地址LRA<0:9>、物理存儲體地址PBA<0:2>、物理行地址PRA<0:11>、臟/干凈信息DIRTY和高速緩沖的數(shù)據(jù)DATA。

      針對每個(gè)行緩沖器的有效性信息VALID可以指示對應(yīng)的行緩沖器是否正被使用。如果有效性信息VALID是“0”,其可以意味著對應(yīng)的行緩沖器是空的。如果有效性信息VALID是“1”,則可以其意味著對應(yīng)的行緩沖器正被使用。

      邏輯行地址LRA<0:9>可以意味著與高速緩沖在對應(yīng)的行緩沖器中的數(shù)據(jù)相對應(yīng)的邏輯行地址。

      物理存儲體地址PBA<0:2>可以意味著與高速緩沖在對應(yīng)的行緩沖器中的數(shù)據(jù)相對應(yīng)的物理存儲體地址。

      物理行地址PRA<0:11>可以意味著與高速緩沖在對應(yīng)的行緩沖器中的數(shù)據(jù)相對應(yīng)的物理行地址。

      臟/干凈信息DIRTY可以指示儲存在對應(yīng)的行緩沖器中的數(shù)據(jù)與儲存在存儲器件110中的數(shù)據(jù)是否相同。如果臟/干凈信息DIRTY為“0”,則其可以意味著儲存在對應(yīng)的行緩沖器中的數(shù)據(jù)與儲存在存儲器件110中的數(shù)據(jù)相同(即,干凈)。如果臟/干凈信息DIRTY為“1”,則其意味著儲存在對應(yīng)的行緩沖器中的數(shù)據(jù)與儲存在存儲器件110中的數(shù)據(jù)不同(即,臟)。

      高速緩沖的數(shù)據(jù)DATA可以意味著高速緩沖在對應(yīng)的行緩沖器中的數(shù)據(jù)。存儲器件110中的一行的全部數(shù)據(jù)可以被高速緩沖在行緩沖器中。

      圖5圖示了根據(jù)本發(fā)明的一個(gè)實(shí)施例的儲存在行緩沖器ROW_BUF0~ROW_BUF31的每個(gè)中的信息的另一示例。

      根據(jù)圖5,類似于圖4中的信息,行緩沖器ROW_BUF0~ROW_BUF31中的每個(gè)可以儲存關(guān)于每個(gè)行緩沖器的有效性的有效性信息VALID、邏輯行地址LRA<0:9>、物理存儲體地址PBA<0:2>和物理行地址PRA<0:11>。

      此外,行緩沖器ROW_BUF0~ROW_BUF31中的每個(gè)可以以分結(jié)構(gòu)來儲存數(shù)據(jù)有效性信息V0~V1023、臟/干凈信息DIRTY0~DIRTY1023和高速緩沖的數(shù)據(jù)DATA0~DATA1023。被分成若干部分的高速緩沖的數(shù)據(jù)DATA0~DATA1023可以被儲存在行緩沖器ROW_BUF0至ROW_BUF31的每個(gè)中。各個(gè)分?jǐn)?shù)據(jù)DATA0~DATA1023的數(shù)據(jù)有效性信息V0~V1023的片段和各個(gè)分?jǐn)?shù)據(jù)DATA0~DATA1023的臟/干凈信息DIRTY0~DIRTY1023的片段可以被儲存在行緩沖器ROW_BUF0~ROW_BUF31的每個(gè)中。

      存儲器件110中的一行的數(shù)據(jù)可以被分成1024個(gè)部分來訪問,因?yàn)槠淇梢酝ㄟ^10比特的列地址來尋址。類似地,高速緩沖在行緩沖器ROW_BUF0~ROW_BUF31中的數(shù)據(jù)也可以按照1024個(gè)部分DATA0~DATA1023來劃分和儲存。高速緩沖的數(shù)據(jù)的這1024個(gè)部分DATA0~DATA1023中的每個(gè)可以具有多個(gè)比特。

      數(shù)據(jù)有效性信息V0~V1023的片段中的每個(gè)可以指示高速緩沖的數(shù)據(jù)的1024個(gè)部分DATA0~DATA1023中的每個(gè)的有效性。臟/干凈信息DIRTY0~DIRTY1023的片段中的每個(gè)可以指示高速緩沖的數(shù)據(jù)的1024個(gè)部分DATA0~DATA1023的每個(gè)是干凈的還是臟的。

      在下文中假設(shè)信息片段(諸如圖5的信息片段)被儲存在行緩沖器ROWBUF0~ROW_BUF31的每個(gè)中。

      圖6至圖10是圖示根據(jù)本發(fā)明的一個(gè)實(shí)施例的、當(dāng)在存儲系統(tǒng)100中執(zhí)行讀取操作和寫入操作時(shí),圖1的行緩沖器ROW_BUF0~ROW_BUF31中儲存的信息可以如何改變的示圖。

      從圖6可以看出,行緩沖器ROW_BUF0~ROW_BUF31在其初始狀態(tài)是空的。由于行緩沖器ROW_BUF0~ROW_BUF31全部是空的,因此全部行緩沖器ROW_BUF0~ROW_BUF31的有效性信息VALID可以具有值“0”。

      圖7是示出在圖6的狀態(tài)之后,主機(jī)HOST已經(jīng)請求針對邏輯存儲體0LBANK0的邏輯行1的讀取操作之后的行緩沖器ROW_BUF0~ROW_BUF31的狀態(tài)的示圖。由于與邏輯存儲體0LBANK0相對應(yīng)的行緩沖器ROW_BUF0是空的,因此行緩沖器ROW_BUF0可以立即更新。行緩沖器ROW_BUF0的有效性信息VALID可以用“1”來更新,邏輯行地址LRA<0:9>可以用“1”(表示十進(jìn)制數(shù)字)來更新。由于邏輯存儲體0LBANK0的邏輯行1對應(yīng)于物理存儲體0PBANK0的物理行1,因此行緩沖器ROW_BUF0的物理存儲體地址PBA<0:2>可以用“0”(表示十進(jìn)制數(shù)字)來更新,而物理行地址PRA<0:11>可以用“1”(表示十進(jìn)制數(shù)字)來更新。此外,數(shù)據(jù)可以從存儲器件110的物理存儲體0PBANK0的物理行1讀取,高速緩沖在行緩沖器ROW_BUF0中的數(shù)據(jù)DATA0~DATA1023可以用讀取的數(shù)據(jù)來更新。在這種情況下,物理存儲體0PBANK0的物理行1的全部數(shù)據(jù)已經(jīng)被示出為被讀取,而行緩沖器ROW_BUF0已經(jīng)被示出為用讀取的數(shù)據(jù)來更新。在一些實(shí)施例中,可以僅更新所要求部分的數(shù)據(jù)(即,僅由主機(jī)HOST請求的列的數(shù)據(jù))。由于高速緩沖的數(shù)據(jù)DATA0~DATA1023全部有效且干凈,因此數(shù)據(jù)有效性信息V0~V1023的片段可以具有值“1”,而臟/干凈信息DIRTY0~DIRTY1023的片段可以具有值“0”。此外,由主機(jī)HOST請求的數(shù)據(jù)(即,屬于邏輯存儲體0LBANK0的邏輯行1且已經(jīng)被主機(jī)HOST請求的列的數(shù)據(jù))可以被傳輸給主機(jī)HOST。

      圖8是示出在圖7的狀態(tài)之后,在主機(jī)HOST已經(jīng)請求針對邏輯存儲體1LBANK1的邏輯行1的讀取操作之后,行緩沖器ROW_BUF0~ROW_BUF31的狀態(tài)的示圖。由于與邏輯存儲體1LBANK1相對應(yīng)的行緩沖器ROW_BUF1是空的,因此行緩沖器ROW_BUF0可以立即更新。行緩沖器ROW_BUF1的有效性信息VALID可以用“1”來更新,以及邏輯行地址LRA<0:9>可以用“1”(表示十進(jìn)制數(shù)字)來更新。由于邏輯存儲體1LBANK1的邏輯行1對應(yīng)于物理存儲體0PBANK0的物理行1025,因此行緩沖器ROW_BUF1的物理存儲體地址PBA<0:2>可以用“0”(表示十進(jìn)制數(shù)字)來更新,以及物理行地址PRA<0:11>可以用“1025”(表示十進(jìn)制數(shù)字)來更新。此外,數(shù)據(jù)可以從存儲器件110的物理存儲體0PBANK0的物理行1025讀取,以及高速緩沖在行緩沖器ROW_BUF1中的數(shù)據(jù)DATA0~DATA1023可以用讀取的數(shù)據(jù)來更新。在這種情況下,物理存儲體0PBANK0的物理行1025的全部數(shù)據(jù)已經(jīng)被圖示為被讀取,以及行緩沖器ROW_BUF1已經(jīng)被圖示為用讀取的數(shù)據(jù)來更新。然而,在一些實(shí)施例中,可以僅更新所要求部分的數(shù)據(jù)(即,僅由主機(jī)HOST請求的列的數(shù)據(jù))。由于全部高速緩沖的數(shù)據(jù)DATA0~DATA1023是有效且干凈的,因此數(shù)據(jù)有效性信息V0~V1023的片段可以具有值“1”,而臟/干凈信息DIRTY0~DIRTY1023的片段可以具有值“0”。此外,由主機(jī)HOST請求的數(shù)據(jù)(即,屬于邏輯存儲體1LBANK0的邏輯行1且已經(jīng)被主機(jī)HOST請求的列的數(shù)據(jù))可以被傳輸給主機(jī)HOST。

      圖9是示出在圖8的狀態(tài)之后,主機(jī)HOST已經(jīng)請求針對邏輯存儲體0LBANK0的邏輯行1的寫入操作之后,行緩沖器ROW_BUF0~ROW_BUF31的狀態(tài)的示圖。因?yàn)檫壿嬓?已經(jīng)被高速緩沖在與邏輯存儲體0LBANK0相對應(yīng)的行緩沖器ROW_BUF0中,所以行緩沖器ROW_BUF0可以用寫入數(shù)據(jù)直接更新。屬于邏輯存儲體0LBANK0的邏輯行1且針對其的寫入操作已經(jīng)由主機(jī)HOST請求的列部分(圖示為部分DATA0)可以用寫入數(shù)據(jù)KJ來更新。此外,因?yàn)閮H行緩沖器ROW_BUF0已經(jīng)用寫入數(shù)據(jù)KJ更新,而存儲器件110還未用寫入數(shù)據(jù)KJ更新,即,因?yàn)閮Υ嬖谛芯彌_器ROW_BUF0中的數(shù)據(jù)KJ與儲存在存儲器件110中的數(shù)據(jù)(即,作為先前值的AB)不同,因此臟/干凈信息DIRTY0可以用“1”來更新。

      圖10是示出在圖9的狀態(tài)之后,主機(jī)HOST已經(jīng)請求針對邏輯存儲體0LBANK0的邏輯行2的讀取操作之后,行緩沖器ROW_BUF0~ROW_BUF31的狀態(tài)的示圖。由于邏輯行1的數(shù)據(jù)已經(jīng)被高速緩沖在與邏輯存儲體0LBANK0相對應(yīng)的行緩沖器ROW_BUF0中,因此需要移除儲存在行緩沖器ROW_BUF0中的數(shù)據(jù)以將邏輯行2的數(shù)據(jù)高速緩沖在行緩沖器ROW_BUF0中。用于移除儲存在行緩沖器ROW_BUF0中的數(shù)據(jù)的操作可以通過將該部分(圖9中的KJ)(即,高速緩沖在行緩沖器ROW_BUF0中的數(shù)據(jù))移動至存儲器件110來執(zhí)行。在行緩沖器ROW_BUF0變成空的之后,行緩沖器ROW_BUF0的邏輯行地址LRA<0:9>可以用“2”來更新,其物理存儲體地址PBA<0:2>可以用“0”來更新,物理行地址PRA<0:11>可以用“2”來更新,以及從存儲器件110的物理存儲體0PBANK0的物理行2讀取的數(shù)據(jù)可以被高速緩沖在行緩沖器ROW_BUF0中,如圖10中所示。由于高速緩沖在行緩沖器ROW_BUF0中的數(shù)據(jù)DATA0~DATA1023已經(jīng)重新從存儲器件110高速緩沖,因此數(shù)據(jù)有效性信息V0~V1023的片段全部可以具有值“1”,而臟/干凈信息DIRTY0~DIRTY1023的片段全部可以具有值“0”。此外,由主機(jī)HOST請求的數(shù)據(jù)(即,屬于邏輯存儲體0LBANK0的邏輯行2且已經(jīng)被主機(jī)HOST請求的列的數(shù)據(jù))可以被傳輸給主機(jī)HOST。

      圖11是根據(jù)本發(fā)明的一個(gè)實(shí)施例的存儲系統(tǒng)的讀取操作的流程圖。例如,圖11的讀取操作可以通過圖1中的存儲系統(tǒng)100的存儲器控制器120來執(zhí)行。

      根據(jù)圖11的實(shí)施例,首先在步驟S1110處,存儲系統(tǒng)100可以接收針對邏輯存儲體LBANKK的讀取請求。例如,存儲系統(tǒng)100的存儲器控制器120可以從主機(jī)HOST接收針對邏輯存儲體LBANKK(K為大于等于1至小于等于23的整數(shù))的特定邏輯行的讀取請求。

      此外,在步驟S1120處,存儲器控制器120檢查與邏輯存儲體K LBANKK相對應(yīng)的行緩沖器K ROW_BUFK是否是空的。

      在步驟S1130處,如果作為步驟S1120的檢查結(jié)果,確定行緩沖器K ROW_BUFK是空的(步驟S1120處的Y),則從存儲器件110讀取數(shù)據(jù),用讀取的數(shù)據(jù)更新行緩沖器K ROW_BUFK,以及將由主機(jī)HOST請求的數(shù)據(jù)發(fā)送給主機(jī)。已經(jīng)關(guān)于圖7和相關(guān)描述詳細(xì)描述了步驟S1130的操作。

      如果作為檢查結(jié)果,確定行緩沖器ROW_BUFK不是空的(步驟S1120處的N),則存儲器控制器120在步驟S1140處檢查是否存在行命中(row hit)。在此情況下,行命中意味著主機(jī)HOST已經(jīng)對其請求了讀取操作的邏輯存儲體K LBANKK的邏輯行與高速緩沖在行緩沖器ROW_BUFK中的邏輯行相同。

      在步驟S1150處,作為步驟S1140的檢查結(jié)果,如果確定行命中存在(步驟S1140處的Y),則存儲器控制器120將高速緩沖在行緩沖器K ROW_BUFK中的數(shù)據(jù)發(fā)送給主機(jī)HOST,因?yàn)橛芍鳈C(jī)HOST請求的數(shù)據(jù)已經(jīng)被高速緩沖在行緩沖器ROW_BUFK中。

      在步驟S1160處,作為步驟S1140的檢查結(jié)果,如果行命中不存在(步驟S1140處的N),則控制器120用儲存在行緩沖器K ROW_BUFK中的臟數(shù)據(jù)來更新存儲器件110。在步驟S1170處,從存儲器件110讀取數(shù)據(jù),用讀取的數(shù)據(jù)更新行緩沖器ROW_BUFK,以及將由主機(jī)HOST請求的數(shù)據(jù)發(fā)送給主機(jī)HOST。當(dāng)行緩沖器K ROW_BUFK用從存儲器件110讀取的數(shù)據(jù)更新時(shí),可以更新一行的全部數(shù)據(jù),或者可以僅更新一行的一些數(shù)據(jù)。已經(jīng)關(guān)于圖10和相關(guān)描述詳細(xì)描述了這種情況中的操作。

      圖12是根據(jù)本發(fā)明的一個(gè)實(shí)施例的存儲系統(tǒng)的寫入操作的流程圖。例如,圖12的寫入操作可以通過圖1中的存儲系統(tǒng)100的存儲器控制器120來執(zhí)行。

      根據(jù)圖12的實(shí)施例,首先,在步驟S1210處,存儲器控制器120可以從主機(jī)HOST接收針對邏輯存儲體K LBANKK的特定邏輯行的寫入請求。

      然后,在步驟S1220處,存儲器控制器120檢查在例如行緩沖器K ROW_BUF與在步驟S1210處接收的寫入請求之間是否存在行命中。在一些實(shí)施例中,不存在行命中的情況可以包括高速緩沖在行緩沖器K ROW_BUFK中的邏輯行與在步驟S1210處已經(jīng)請求了對其的寫入操作的邏輯行不同的情況以及行緩沖器K ROW_BUFK是空的情況。

      在步驟S1230處,作為步驟S1220的檢查結(jié)果,如果確定行命中存在(步驟S1220處的Y),則用寫入數(shù)據(jù)直接更新行緩沖器K ROW_BUFK。已經(jīng)關(guān)于圖9和相關(guān)描述詳細(xì)描述了此情況中的操作。

      在步驟S1240處,作為檢查的結(jié)果,如果行命中不存在(步驟S1220處的N),則用行緩沖器K ROW_BUFK的臟數(shù)據(jù)來更新存儲器件110。如果臟數(shù)據(jù)不存在,則可以省略步驟S1240的執(zhí)行,因?yàn)椴淮嬖卺槍Υ鎯ζ骷?10的更新數(shù)據(jù)。其后,將高速緩沖在行緩沖器ROW_BUFK中的邏輯行改變?yōu)樵诓襟ES1210處請求的邏輯行,以及在步驟S1250處用寫入數(shù)據(jù)更新行緩沖器K ROW_BUFK。

      根據(jù)本發(fā)明的實(shí)施例,可以在不增加存儲系統(tǒng)的成本的情況下提升存儲系統(tǒng)的性能。

      雖然已經(jīng)出于說明的目的而描述了各種實(shí)施例,但是對于本領(lǐng)域技術(shù)人員將明顯的是,在不脫離所附權(quán)利要求書中所限定的本發(fā)明的精神和/或范圍的情況下,可以作出各種改變和修改。

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1