專利名稱:檢測非揮發(fā)性儲存媒體邏輯地址的方法
技術領域:
本發(fā)明是有關一種檢測邏輯地址的方法,特別是關于一種檢測非揮發(fā)性儲存媒體邏輯地址的方法。
背景技術:
存儲器為儲存資料的所在,當微處理器使用存儲器儲存資料和讀取資料時,微處理器會將所需的資訊定義存儲器的位置,以便將資料傳送到正確的地址上。
在非揮發(fā)性儲存媒體中是以復數位元組(Byte)組成的區(qū)塊(Block)為單位進行資料儲存及讀取的使用,每一個可供資料存取的區(qū)塊都具有一實體地址(Physical Address),以代表在非揮發(fā)性儲存媒體內的空間順序,同時每一區(qū)塊記錄磁盤機檔案作業(yè)系統(tǒng)(File System)所標示的邏輯地址(Logical Address),如圖1所示,且每一實體地址各具有一相對應的邏輯地址;然而,在快閃機制中,由于檔案作業(yè)系統(tǒng)存取資料所需的實體地址及邏輯地址為非線性的對應關系,無法直接由實體地址推知邏輯地址的所在,公知通常有二種方式來得到相對應的邏輯地址。
第一種方式為在系統(tǒng)開機時先建立一邏輯—實體地址對映表,其為記錄邏輯地址和實體地址之間對映關系的表格,并設計有復數個靜態(tài)隨機存取存儲器(SRAM)來儲存記錄該地址對映表,如圖2所示,在建立地址對映表時,是以邏輯地址的排列順序為主,而將相對應的實體位置填入表格的內容中,由于原邏輯地址是呈不規(guī)則排列,因此必須從頭到尾排序一次,才能夠建立一個如圖2所示的地址對映表,并將此對映表儲存在靜態(tài)隨機存取存儲器中。當系統(tǒng)在存取資料時會先提供一個待查邏輯地址,并利用軔體直接讀取在靜態(tài)隨機存取存儲器中的地址對映表,進而快速得到相對于該邏輯地址的實體地址。此種利用地址對映表搜尋邏輯地址的方式雖然具有地址轉換時間短、處理速度快的優(yōu)點,但卻需要大量的靜態(tài)隨機存取存儲器來記錄所有的地址對應關系,所占有的空間面積相當大;且因目前皆將不同IC功能同時整合在一單一系統(tǒng)晶片中,靜態(tài)隨機存取存儲器數目為固定,無法依需求而隨時增加靜態(tài)隨機存取存儲器的數目,造成使用上的限制。
另一種由邏輯地址推知實體地址的方式是無靜態(tài)隨機存取存儲器的設計,亦無需建立任何地址對映表,僅需要利用軔體程序在每次要尋找實體地址所對應的邏輯地址時,在非揮發(fā)性儲存媒體中從頭開始搜尋,直至搜尋到所需的邏輯地址為止。此種方式是無靜態(tài)隨機存取存儲器的設計,所以不占空間,但因每次要尋找邏輯地址時都必須從頭開始搜尋,搜尋時間長,使得非揮發(fā)性儲存媒體存取資料的速度相當慢。
因此,本發(fā)明是針對上述的問題,提出一種檢測非揮發(fā)性儲存媒體邏輯地址的方法。
發(fā)明內容
本發(fā)明的主要目的,是在提供一種檢測非揮發(fā)性儲存媒體邏輯地址的方法,在不增加隨機存取存儲器空間的前提下,同時可達到存取速度快及不占空間的功效,進而有效的降低成本及提升系統(tǒng)存取資料的性能,以克服公知二者無法兼具的缺點。
本發(fā)明的另一目的,是在提供一種檢測非揮發(fā)性儲存媒體邏輯地址的方法,在使非揮發(fā)性儲存媒體寫入或更新資料時,將相同檔案屬性的資料寫在同一個區(qū)域內,以集中資料于同一區(qū)域而不分散,進而有效提升系統(tǒng)存取資料的速度及穩(wěn)定性。
為實現上述目的,本發(fā)明提供一種檢測非揮發(fā)性儲存媒體邏輯地址的方法,包括下列步驟在一非揮發(fā)性儲存媒體中定義數區(qū)域,每一區(qū)域包含有復數區(qū)塊,在系統(tǒng)開機時先將第一區(qū)域的實體地址與其相對應邏輯地址的關系,建立一第一地址對映表,并將其儲存在一隨機存取存儲器中,同時設定一錯誤函數的臨界值;當系統(tǒng)下達一待查邏輯地址,是先計算出該邏輯地址所在的區(qū)域地址及區(qū)塊地址,而后系統(tǒng)根據計算出的區(qū)域地址來判斷該待查邏輯地址是否落在該第一區(qū)域內,若是,則表示該待查邏輯地址是存在于該第一地址對映表中,該隨機存取存儲器則根據該待查邏輯地址而在該第一地址對映表中得到一相對應的區(qū)塊實體地址,系統(tǒng)并設定錯誤函數的數值為0;若否,則系統(tǒng)將該錯誤函數的數值加1,當系統(tǒng)連續(xù)數次所計算得出的邏輯地址所在區(qū)域非為第一區(qū)域,使該錯誤函數的數值達到該臨界值,則系統(tǒng)以計算所得的區(qū)域為單位,將該待查邏輯地址與其相對應另一區(qū)域地址的關系,建立一第二地址對映表,并將其儲存在該隨機存取存儲器中,以提供系統(tǒng)直接從該第二地址對映表中取得相對于該待查邏輯地址的實體地址;以及當該錯誤函數的數值未達到該臨界值,則系統(tǒng)直接在該非揮發(fā)性儲存媒體中于該計算得出的區(qū)域地址及區(qū)塊地址處取得該邏輯地址對應的實體區(qū)域地址。
所述的檢測非揮發(fā)性儲存媒體邏輯地址的方法,其中當系統(tǒng)下達一待查邏輯地址,是先計算出該邏輯地址所在的區(qū)域地址及區(qū)塊地址,而后根據計算出的區(qū)域地址來判斷該待查邏輯地址是否落在在第X區(qū)域的地址對映表中,若該待查邏輯地址是存在于該第X區(qū)域的地址對映表中,該隨機存取存儲器是根據該待查邏輯地址而在該地址對映表中得到一相對應的區(qū)塊實體地址;若該待查邏輯地址不在該第X區(qū)域的地址對映表中,則系統(tǒng)將錯誤函數的數值加1,當該錯誤函數的數值達設定的臨界值時,系統(tǒng)以計算所得的區(qū)域為單位,將該待查邏輯地址與其相對應實體區(qū)域地址的關系,建立一第Y地址對映表,并將其儲存在該隨機存取存儲器中,以提供系統(tǒng)直接從該第Y地址對映表中取得相對于該待查邏輯地址的實體地址,同時系統(tǒng)設定錯誤函數為0;反之錯誤函數的數值未達臨界值時,則系統(tǒng)直接至該非揮發(fā)性儲存媒體中于該計算得出的區(qū)域及區(qū)塊處取得該邏輯地址相對應的實體地址。
所述的檢測非揮發(fā)性儲存媒體邏輯地址的方法,其中該第一區(qū)域為系統(tǒng)開機資料區(qū)。
所述的檢測非揮發(fā)性儲存媒體邏輯地址的方法,其中計算該邏輯地址所在的區(qū)域及區(qū)塊地址的方法是利用該邏輯地址除以一個區(qū)域內的區(qū)塊數,得出X且余數為Y,則該邏輯地址是落在第X區(qū)域的第Y區(qū)塊。
所述的檢測非揮發(fā)性儲存媒體邏輯地址的方法,其中該錯誤函數的臨界值是介于5至10之間。
所述的檢測非揮發(fā)性儲存媒體邏輯地址的方法,其中該隨機存取存儲器為靜態(tài)隨機存取存儲器。
所述的檢測非揮發(fā)性儲存媒體邏輯地址的方法,其中在該非揮發(fā)性儲存媒體內寫入或更新資料時,是將相同檔案屬性的資料寫在同一個區(qū)域內。
圖1為公知存儲器中實體地址與邏輯地址的關系示意圖;圖2為公知利用圖1中的關系所建立的邏輯—實體地址對映表;圖3為本發(fā)明的非揮發(fā)性儲存媒體內區(qū)域及區(qū)塊關系示意圖;圖4為本發(fā)明建立第一區(qū)域地址對映表的示意圖;圖5為本發(fā)明檢測邏輯地址的流程圖。
具體實施例方式
結合具體實施例配合所附的圖式詳加說明,當更容易說明本發(fā)明的目的、技術內容、特點及其所達成的功效。
本發(fā)明是利用系統(tǒng)開機時固定讀取存儲器前端的系統(tǒng)資料區(qū)及資料儲存具有連續(xù)性的特性,將非揮發(fā)儲存媒體定義為數區(qū)域(Zone),使每一區(qū)域包含有復數區(qū)塊(Block),且僅建立第一區(qū)域或經常使用的區(qū)域的地址對映表(Address Mapping Table),以便于系統(tǒng)快速檢知邏輯地址對應的實體位址。
其中,本發(fā)明在檢測非揮發(fā)性儲存媒體內的區(qū)塊的狀態(tài)時是運用已申請的第92100483號申請案“快速檢知非揮發(fā)性儲存媒體狀態(tài)的方法”,其是在寫入資料之際,同時將區(qū)塊的邏輯地址紀錄在其中一頁(如第一頁)以作為標記,因此在檢測非揮發(fā)性儲存媒體內的區(qū)塊的狀態(tài)時,直接讀取每一區(qū)塊的第一頁,根據標記的有無便可立即得知區(qū)塊的狀態(tài),本發(fā)明配合該申請案中的方法,是可達到快速搜尋邏輯地址對應實體地址的作用。
本發(fā)明如圖3所示,一非揮發(fā)性儲存媒體10是定義成M個區(qū)域,每一區(qū)域包含有N個區(qū)塊,且第一區(qū)域定義為Zone 0,每一個可供資料存取的區(qū)塊都具有一實體地址,以代表在存儲器中實際的實體存儲器的位置,且每一區(qū)塊的實體地址具有一與其相對應的邏輯地址。一般而言,系統(tǒng)的開機資料皆是存放在存儲器的前端,通常稱為系統(tǒng)端,以便于系統(tǒng)在開機時固定從此系統(tǒng)端讀取開機資料,利用此特性,本發(fā)明是將非揮發(fā)性儲存媒體10的第一區(qū)域12設定為系統(tǒng)開機資料區(qū)。
本發(fā)明建立地址對映表的示意圖如圖4所示,在系統(tǒng)開機進行初始化時,是先將非揮發(fā)性儲存媒體10的第一區(qū)域(Zone 0)12內的各區(qū)塊的實體地址與其相對應邏輯地址的關系,建立一第一地址對映表,其為以邏輯地址排序為主的邏輯地址—實體地址的對應表,并將其儲存在一隨機存取存儲器14中,常用者為靜態(tài)隨機存取存儲器,以提供系統(tǒng)隨時檢測待查邏輯地址;另外,同時設定一錯誤函數(Error)的臨界值,錯誤函數的臨界值是介于5至10之間,較佳的,該錯誤函數的臨界值為10。由于此地址對應表僅立建立第一區(qū)域內各區(qū)塊的邏輯—實體地址對映表,并不需要占用太多的儲存空間,所以可減少使用靜態(tài)隨機存取存儲器的數目,同時在檢測邏輯地址時,只需直接讀取第一區(qū)域相對應的第一地址對映表,所需瀏覽的實體地址數目較少,故可提升讀取速度。
請參閱圖5所示,為本發(fā)明檢測邏輯地址的流程示意圖,首先,如步驟S10,在系統(tǒng)開機時先將第一區(qū)域內的區(qū)塊的實體地址與其相對應邏輯地址的關系,建立一第一邏輯—實體地址對映表,并將其儲存在一隨機存取存儲器中。
當系統(tǒng)如步驟S12所示下達一待查邏輯地址時,是先計算出該邏輯地址所屬的區(qū)域及區(qū)塊,計算方法是利用該邏輯地址除以一個區(qū)域內的區(qū)塊數,得出X且余數為Y,則計算出該邏輯地址是落在第X區(qū)域的第Y區(qū)塊內;而后如步驟S14所示,系統(tǒng)根據計算出的區(qū)域地址來判斷待查邏輯地址是否落在第一區(qū)域內;若是,則如步驟S16,表示待查邏輯地址是存在于第一地址對映表中,隨機存取存儲器則立刻根據待查邏輯地址而在第一地址對映表中取得一相對應的區(qū)塊實體地址,且系統(tǒng)設定錯誤函數的數值為0;相反地,系統(tǒng)在經過與計算得出的地址比對后,若待查邏輯地址非為屬于第一區(qū)域時,系統(tǒng)是將錯誤函數的數值加1,且如步驟S22所示持續(xù)判斷錯誤函數是否達到臨界值(于此,臨界值設定為10);當系統(tǒng)連續(xù)10次檢測的邏輯地址經計算后非為屬于第一區(qū)域,使錯誤函數的數值達到10的臨界值,表示待查邏輯地址已固定在某一區(qū)域而非在第一區(qū)域,則此時如步驟S24,系統(tǒng)以計算所得的區(qū)域為單位,將待查邏輯地址與其相對應另一區(qū)域地址的關系,建立一第二地址對映表,并將其儲存在該隨機存取存儲器中,以補充更新隨機存取存儲器內的地址對映表,提供系統(tǒng)直接從第二地址對映表中取得相對于該待查邏輯地址的實體地址,同時系統(tǒng)設定錯誤函數為0;反之,錯誤函數未達臨界值則如步驟S26所示,系統(tǒng)根據先前計算的區(qū)域及區(qū)塊地址,直接在非揮發(fā)性儲存媒體中取得邏輯地址對應的區(qū)塊實體地址。如此重復步驟S12、S14、S16或S22至S26,直至資料讀取結束。
上述流程為系統(tǒng)開機進行初始化時,系統(tǒng)搜尋邏輯地址的方法。另一方面,系統(tǒng)在開機作業(yè)完成后,而在存取非揮發(fā)性儲存媒體10內的檔案資料時,系統(tǒng)是在隨機存取存儲器14內先建立一第X區(qū)域的地址對映表,而后與上述流程相同的,系統(tǒng)下達一待查邏輯地址后,是先計算出邏輯地址所在的區(qū)域地址及區(qū)塊地址,而后根據計算出的區(qū)域地址來判斷該待查邏輯地址是否落在在第X區(qū)域的地址對映表中。若待查邏輯地址是存在于第X區(qū)域的地址對映表中,則隨機存取存儲器旋即根據待查邏輯地址而在第X區(qū)域的地址對映表中得到一相對應的區(qū)塊實體地址,同時系統(tǒng)設定錯誤函數為0;反之,若該待查邏輯地址不在第X區(qū)域的地址對映表中,則系統(tǒng)將錯誤函數的數值加1,當錯誤函數的數值達到臨界值,則表示邏輯地址是固定在某一區(qū)域,則系統(tǒng)以區(qū)域為單位,將待查邏輯地址與其相對應實體區(qū)域地址的關系,建立一第Y地址對映表,并將其儲存在該隨機存取存儲器14中,以提供系統(tǒng)直接從該第Y地址對映表中取得相對于該待查邏輯地址的實體地址,同時設定錯誤函數為0,反之錯誤函數未達到臨界值,則系統(tǒng)直接至該計算出的區(qū)域及區(qū)塊處取得邏輯地址相對應的實體地址。
另外,在非揮發(fā)性儲存媒體10內寫入或更新資料時,是將相同檔案屬性的資料寫在同一個區(qū)域內,因此資料是集中在同一區(qū)域而不分散,可提升系統(tǒng)存取資料的性能。
本發(fā)明利用系統(tǒng)開機時固定讀取存儲器前端的系統(tǒng)資料區(qū)及資料儲存的連續(xù)性的特性,配合前述利用標記快速檢知非揮發(fā)性儲存媒體狀態(tài)的方法,以區(qū)域為單位而僅建立第一區(qū)域或經常使用的區(qū)域內區(qū)塊的地址對映表,故無需占用太多的隨機存取存儲器;且因在搜尋邏輯地址時,只需搜尋該些經常使用的區(qū)域對應的地址對映表,所需搜尋的實體地址數目較少,故處理速度較公知快速。因此,本發(fā)明在不增加隨機存取存儲器空問的前提下,同時可達到存取速度快及不占空間的功效,進而可有效的降低成本及提升系統(tǒng)存取資料的性能。
以上所述是由實施例說明本發(fā)明的特點,其目的在使熟習該技術的人能了解本發(fā)明的內容并據以實施,而非限定本發(fā)明的專利范圍,故,凡其他未脫離本發(fā)明所揭示的精神所完成的等效修飾或修改,仍應包含在本發(fā)明中。
權利要求
1.一種檢測非揮發(fā)性儲存媒體邏輯地址的方法,其特征在于,包括下列步驟在一非揮發(fā)性儲存媒體中定義數區(qū)域,每一區(qū)域包含有復數區(qū)塊,在系統(tǒng)開機時先將第一區(qū)域的實體地址與其相對應邏輯地址的關系,建立一第一地址對映表,并將其儲存在一隨機存取存儲器中,同時設定一錯誤函數的臨界值;當系統(tǒng)下達一待查邏輯地址,是先計算出該邏輯地址所在的區(qū)域地址及區(qū)塊地址,而后系統(tǒng)根據計算出的區(qū)域地址來判斷該待查邏輯地址是否落在該第一區(qū)域內,若是,則表示該待查邏輯地址是存在于該第一地址對映表中,該隨機存取存儲器則根據該待查邏輯地址而在該第一地址對映表中得到一相對應的區(qū)塊實體地址,系統(tǒng)并設定錯誤函數的數值為0;若否,則系統(tǒng)將該錯誤函數的數值加1,當系統(tǒng)連續(xù)數次所計算得出的邏輯地址所在區(qū)域非為第一區(qū)域,使該錯誤函數的數值達到該臨界值,則系統(tǒng)以計算所得的區(qū)域為單位,將該待查邏輯地址與其相對應另一區(qū)域地址的關系,建立一第二地址對映表,并將其儲存在該隨機存取存儲器中,以提供系統(tǒng)直接從該第二地址對映表中取得相對于該待查邏輯地址的實體地址;以及當該錯誤函數的數值未達到該臨界值,則系統(tǒng)直接在該非揮發(fā)性儲存媒體中于該計算得出的區(qū)域地址及區(qū)塊地址處取得該邏輯地址對應的實體區(qū)域地址。
2.根據權利要求1所述的檢測非揮發(fā)性儲存媒體邏輯地址的方法,其特征在于,其中當系統(tǒng)下達一待查邏輯地址,是先計算出該邏輯地址所在的區(qū)域地址及區(qū)塊地址,而后根據計算出的區(qū)域地址來判斷該待查邏輯地址是否落在在第X區(qū)域的地址對映表中,若該待查邏輯地址是存在于該第X區(qū)域的地址對映表中,該隨機存取存儲器是根據該待查邏輯地址而在該地址對映表中得到一相對應的區(qū)塊實體地址;若該待查邏輯地址不在該第X區(qū)域的地址對映表中,則系統(tǒng)將錯誤函數的數值加1,當該錯誤函數的數值達設定的臨界值時,系統(tǒng)以計算所得的區(qū)域為單位,將該待查邏輯地址與其相對應實體區(qū)域地址的關系,建立一第Y地址對映表,并將其儲存在該隨機存取存儲器中,以提供系統(tǒng)直接從該第Y地址對映表中取得相對于該待查邏輯地址的實體地址,同時系統(tǒng)設定錯誤函數為0;反之錯誤函數的數值未達臨界值時,則系統(tǒng)直接至該非揮發(fā)性儲存媒體中于該計算得出的區(qū)域及區(qū)塊處取得該邏輯地址相對應的實體地址。
3.根據權利要求1所述的檢測非揮發(fā)性儲存媒體邏輯地址的方法,其特征在于,其中該第一區(qū)域為系統(tǒng)開機資料區(qū)。
4.根據權利要求1所述的檢測非揮發(fā)性儲存媒體邏輯地址的方法,其特征在于,其中計算該邏輯地址所在的區(qū)域及區(qū)塊地址的方法是利用該邏輯地址除以一個區(qū)域內的區(qū)塊數,得出X且余數為Y,則該邏輯地址是落在第X區(qū)域的第Y區(qū)塊。
5.根據權利要求1所述的檢測非揮發(fā)性儲存媒體邏輯地址的方法,其特征在于,其中該錯誤函數的臨界值是介于5至10之間。
6.根據權利要求1所述的檢測非揮發(fā)性儲存媒體邏輯地址的方法,其特征在于,其中該隨機存取存儲器為靜態(tài)隨機存取存儲器。
7.根據權利要求1所述的檢測非揮發(fā)性儲存媒體邏輯地址的方法,其特征在于,其中在該非揮發(fā)性儲存媒體內寫入或更新資料時,是將相同檔案屬性的資料寫在同一個區(qū)域內。
全文摘要
本發(fā)明提供一種檢測非揮發(fā)性儲存媒體邏輯地址的方法,其是利用系統(tǒng)開機時固定讀取儲存媒體前端的系統(tǒng)資料區(qū)及資料儲存具有連續(xù)性的特性,將非揮發(fā)儲存媒體定義為數區(qū)域,使每一區(qū)域包含有復數區(qū)塊,且在一隨機存取存儲器內僅建立第一區(qū)域或經常使用的區(qū)域的邏輯-實體地址對映表,以便系統(tǒng)在非揮發(fā)性儲存媒體內快速取得邏輯地址。因此本發(fā)明同時可達到存取速度快及不占存儲器空間的功效,進而降低成本及提升系統(tǒng)存取資料的性能。
文檔編號G11C16/06GK1534683SQ0310844
公開日2004年10月6日 申請日期2003年3月31日 優(yōu)先權日2003年3月31日
發(fā)明者謝盛忠 申請人:笙泉科技股份有限公司