国产精品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ù)訪問方法及相關的控制器、設備、主機和系統(tǒng)的制作方法_3

      文檔序號:9597135閱讀:來源:國知局
      址以及發(fā)送第二標識信息 的步驟的執(zhí)行順序也不限定。
      [0070] S15、存儲控制器收到第一標識信息時,將收到的邏輯地址轉(zhuǎn)換為第一物理地址并 根據(jù)第一物理地址訪問閃存顆粒中的數(shù)據(jù)的信息;存儲控制器收到第二標識信息時,使用 收到的第二物理地址訪問所述閃存顆粒中的數(shù)據(jù)的信息。
      [0071] 存儲控制器通過標準的協(xié)議接口(如eMMC協(xié)議)接收來自主機的邏輯地址處理 模塊發(fā)送的信息,本實施例中,對于存儲控制器,僅根據(jù)收到的"地址",其并不能知道這個 地址表示的是"邏輯地址"還是轉(zhuǎn)換后的"物理地址",也不知道如何對邏輯地址或者物理地 址進行處理。因此,需要一個信息去告訴存儲控制器如何進行處理,這個信息就是第一標識 信息以及第二標識信息,存儲控制器通過判斷接收到的是哪個標識信息來采取對應的處理 策略,即,收到第一標識信息后,進行地址轉(zhuǎn)換,根據(jù)轉(zhuǎn)換后的第一物理地址訪問閃存顆粒 中的數(shù)據(jù);收到第二標識信息后,直接根據(jù)收到的第二物理地址訪問閃存顆粒中的數(shù)據(jù)。
      [0072] 標識信息(包括第一標識信息以及第二標識信息)可以基于現(xiàn)有的協(xié)議或者使用 私有協(xié)議來實現(xiàn)。通常為了方便實現(xiàn),可以基于現(xiàn)有的協(xié)議,例如,基于協(xié)議的一些預留的 字段進行擴展,或者使用預留的命令等。
      [0073] 以主機與存儲控制器使用eMMC協(xié)議進行通信為例,可以利用eMMC墳預留的命令 來實現(xiàn)標識信息的傳遞。在eMMC協(xié)議中,通信雙方基于命令(Command,CMD)進行,其中, CMD 60-63為預留的命令,因此,可以使用這些命令來傳遞標識信息。
      [0074] 例如,S13中,邏輯地址處理模塊需要發(fā)送邏輯地址時,可以首先發(fā)送一個CMD 60 命令,同時攜帶參數(shù)0x754C4241,表示發(fā)送了第一標識信息;類似的,步驟504中,邏輯地址 處理模塊需要發(fā)送第二物理地址時,可以首先發(fā)送一個CMD 60命令,該CMD 60攜帶參數(shù) 0x7550504E,表示發(fā)送了第二標識信息。
      [0075] 這些用于傳遞標識信息的命令(如CMD 60)可以在每個訪問請求前都發(fā)送,也可 以在第一次訪問不同類型的請求時發(fā)送,后續(xù)的訪問訪求使用前一次的結(jié)果。例如,剛開始 通過CMD 60發(fā)了一個第一標識信息,后續(xù)如果不發(fā)送CMD 60命令,而直接發(fā)送訪問命令, 則默認這些后續(xù)訪問命令都是第一標識信息,除非再次發(fā)送CMD 60命令來表示發(fā)送第二 標識信息,這樣后續(xù)的訪問命令又默認變成了第二標識信息。
      [0076] 當存儲控制器收到這些命令后,就知道接下來如何對收到的命令中的"地址"進行 處理(如直接根據(jù)地址訪問還是進行地址轉(zhuǎn)換)。
      [0077] 需要再次說明的是,如上述S13、S14中最后提到的一樣,這個指示標識的發(fā)送并 不一定嚴格限定在發(fā)送邏輯地址前面執(zhí)行,根據(jù)不同協(xié)議對各種命令(或報文、或消息)的 不同定義,也可以選擇在發(fā)送邏輯地址后再執(zhí)行,或者同時執(zhí)行(如封裝到一個命令,或者 封裝到一個報文后發(fā)送)。
      [0078] 此外,還需要說明的是,上述步驟都是邏輯層面的步驟,在真正實現(xiàn)的代碼層面, 可能并沒有跟步驟一一對應的,從代碼字面意義看跟步驟完全符合的代碼,但這些代碼背 后所表示的邏輯含義是符合上述步驟的。例如,對于S12,在代碼層面,可以只進行一次判 斷,即判斷收到的邏輯地址是否屬于范圍Α,如果屬于這個范圍Α,執(zhí)行一種操作,否則執(zhí)行 另一種操作;從字面上看,似乎并不和S12完全一致,但結(jié)合其他條件(例如,只定義兩種地 址,將Α范圍定義為操作系統(tǒng)數(shù)據(jù)對應的邏輯地址,那么剩下的自然就是用戶數(shù)據(jù)對應的 邏輯地址了),就能發(fā)現(xiàn)在邏輯層面是跟S12 -樣的。這些在軟件層面具體的實現(xiàn)比較靈 活,也屬于本領域技術人員所公知的技術,本發(fā)明各實施例不對此進行詳細描述。
      [0079] 本發(fā)明實施例中,將原來存儲控制器實現(xiàn)的邏輯地址到物理地址轉(zhuǎn)換功能中的一 部分移到主機來做,由于主機的處理能力通常都會比存儲控制器高,從而能夠提高主機訪 問存儲設備的速度。
      [0080] 此外,由于在主機實現(xiàn)了對對閃存顆粒物理地址以及邏輯地址的映射管理,主機 能夠更直接地管理閃存顆粒的物理地址和各類算法(如地址映射算法)的運行過程,并可 以根據(jù)主機自身的運行狀態(tài),在合適的時機發(fā)起垃圾回收和磨損均衡等操作,提高對存儲 設備的管理,降低Nand壞塊和數(shù)據(jù)碎片化對存儲性能的影響。而且,當出現(xiàn)故障時,可以更 清楚地對故障進行定位。
      [0081] 實施例二
      [0082] 基于實施例一,本實施例通過兩個具體的示例來對上述實施例進行說明,本實施 例中,假設主機與存儲控制器基于eMMC協(xié)議,假設閃存顆粒總的物理空間為lOOOOByte (僅 用于示例,實際物理空間會遠大于這個數(shù)),其中前2000用于操作系統(tǒng)數(shù)據(jù)(包含管理信 息),剩下的8000物理空間分配給用戶數(shù)據(jù);同時,假設在主機(內(nèi)核)側(cè),將2000的物理 空間映射到了邏輯地址空間100-2099 ;在存儲控制器側(cè),將8000物理空間映射到邏輯地址 空間2100-10099 ;具體如表一所示:
      [0085] 示例一:
      [0086] S21、應用向文件系統(tǒng)發(fā)送訪問文件的第一請求;
      [0087] S22、文件系統(tǒng)將第一請求轉(zhuǎn)成通過邏輯地址來進行訪問的第二請求,第二請求中 攜帶的要訪問的邏輯地址是2201-2300之間的邏輯地址,并將第二請求發(fā)送給內(nèi)核;
      [0088] S23、內(nèi)核判斷2201-2300之間的邏輯地址屬于用戶數(shù)據(jù)對應的地址,將邏輯地址 2201-2300轉(zhuǎn)成物理地址2101-2200,并將第二請求重新根據(jù)eMMC協(xié)議要求封裝后發(fā)送給 存儲控制器,并發(fā)送一個標識信息,指示類型是物理地址(也即指示后續(xù)存儲器不需要再 進行轉(zhuǎn)換);
      [0089] S24、存儲控制器收到基于物理地址2101-2200的訪問請求后,直接訪問閃存顆粒 的物理地址2101-2200。
      [0090] 示例二:
      [0091] S31、應用向文件系統(tǒng)發(fā)送訪問文件的第一請求;
      [0092] S32、文件系統(tǒng)將第一請求轉(zhuǎn)成通過邏輯地址來進行訪問的第二請求,第二請求中 攜帶的要訪問的邏輯地址是100-199之間的邏輯地址,并將第二請求發(fā)送給內(nèi)核;
      [0093] S33、內(nèi)核判斷100-199之間的邏輯地址屬于操作系統(tǒng)數(shù)據(jù)對應的地址,根據(jù)eMMC 協(xié)議要求封裝后將包括邏輯地址100-199的第三請求"透傳"給存儲控制器,并發(fā)送一個標 識信息,指示類型是邏輯地址(也即指示后續(xù)存儲器進行轉(zhuǎn)換);
      [0094] S34、內(nèi)存存儲控制器收到第三請求后將邏輯地址100-199轉(zhuǎn)成物理地址0-99,并 通過物理地址0-99訪問閃存顆粒。
      [0095] 實施例三
      [0096] 基于上述各實施例,本實施例公開了一種使用boot loader的通信設備(如手機、 平板等終端設備)以及該通信設備訪問存儲設備的方法。本實施例中的通信設備包括主機 以及前述實施例中的存儲設備,主機與存儲設備之間通過例如eMMC等協(xié)議進行通信。主機 主要包括CPU,當然,為了 CPU能夠更好地運行,還可以包括用于數(shù)據(jù)存儲的內(nèi)存,同時,還 需要一些外圍電路(如電源管理相關的電路、與外圍設備通信的接口電路等)。
      [0097] 本實施例中的通信設備在使用過程中會用到引導加載器(通常用英文boot loader或者bootloader表示),這是一個用于引導操作系統(tǒng)的一個程序。這個程序是跟 CPU適配的一個固化的程序,一般由CPU廠家提供,使用該CPU的其他廠家不會對該程序進 行修改。
      [0098] 同時,現(xiàn)有的引導加載器都使用邏輯地址來訪問存儲顆粒中存儲的操作系統(tǒng)數(shù) 據(jù),在上述各實施例中,由于存儲控制器對操作系統(tǒng)數(shù)據(jù)仍然可以進行邏輯地址到物理地 址的轉(zhuǎn)換,這樣,現(xiàn)有的引導加載器仍然能夠工作,起到了兼容的作用。
      [0099] 在這過程當中,需要對存儲控制器進行一些適配性的工作,具體的:
      [0100] 由于引導加載器本身不具有上述實施例提到的發(fā)送上述實施例中提到的標識信 息的能力,也就無法讓存儲控制器知道在收到地址時進行何種處理。此時,可以讓存儲控制 器上電后默認對收到的地址按邏輯地址進行處理,即存儲控制器在上電后,如果沒有收到 標識信息,則默認收到的地址是邏輯地址,然后對邏輯地址進行轉(zhuǎn)換,轉(zhuǎn)成物理地址后訪問 閃存顆粒。具體實現(xiàn)方法可以根據(jù)傳遞標識信息方式的不同而不同,例如,如果是通過一 個消息的一個預定義字段攜帶標識信息時,那么通過讀取這個字段就可知道是否有標識信 息;如果傳遞標識信息的方式是基于一個單獨的命令(如在上文舉例的通過CMD 60來傳 遞),那么如果沒有收到這個命令,就可認為沒有收到標識信息。
      [0101] 實施例四
      [0102] 基于上述各實施例,本發(fā)明實施例公開了一種存儲控制器,位于存儲設備,存儲設 備還包括與存儲控制器通信的至少一個閃存顆粒,參見圖3,存儲控制器包括接收單元41、 判斷單元42、轉(zhuǎn)換單元43以及訪問單元44 ;這些單元用于執(zhí)行實施例一中的各個步驟,具 體的:
      [0103] 接收單元用于接收主機發(fā)送的用于訪問閃存顆粒的第一地址以及用于指示第一 地址的地址類型的標識信息,標識信息為第一標識信息或者第二標識信息;第一地址由位 于主機中的軟件底層的邏輯地址處理模塊發(fā)送,其中,邏輯地址處理模塊接收到位于主機 中的軟件上層的邏輯地址發(fā)送模塊發(fā)送的第一邏輯地址后,判斷第一邏輯地址屬于操作系 統(tǒng)數(shù)據(jù)對應的邏輯地址還是屬于用戶數(shù)據(jù)對應的邏輯地址;當判斷第一邏輯地址屬于操作 系統(tǒng)數(shù)據(jù)對應的邏輯地址時,將第一邏輯地址發(fā)送給存儲控制器,并向存儲控制器發(fā)送第 一標識信息,此時,第一地址為第一邏輯
      當前第3頁1 2 3 4 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1