TW200839515A - Storing compressed data - Google Patents

Storing compressed data Download PDF

Info

Publication number
TW200839515A
TW200839515A TW096149576A TW96149576A TW200839515A TW 200839515 A TW200839515 A TW 200839515A TW 096149576 A TW096149576 A TW 096149576A TW 96149576 A TW96149576 A TW 96149576A TW 200839515 A TW200839515 A TW 200839515A
Authority
TW
Taiwan
Prior art keywords
memory
data
page
size
initial
Prior art date
Application number
TW096149576A
Other languages
English (en)
Inventor
Staffan Mansson
Ola Nilsson
Original Assignee
Ericsson Telefon Ab L M
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ericsson Telefon Ab L M filed Critical Ericsson Telefon Ab L M
Publication of TW200839515A publication Critical patent/TW200839515A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

200839515 九、發明說明: 【發明所屬之技術領域】 之資料儲存。更具體 入式糸統或其他處理 理。 而 裝 本發明概言之係關於一儲存媒體中 言,本發明係關於儲存於一與_嵌 置相關聯之儲存媒體中之資料之處 【先前技術】 諸多數據機電子裝置(例如嵌入式 〜八八表置)係由儲存於快閃
記憶體中之軟體來控制。快閃記情 J U體係一類在電子裝置中 頻繁使用之記憶體,此乃因其容_彡 八各开夕次重寫。然而,寫入 作業被限定為每次寫入相對輕逵留 了叙運之早個記憶區段(所謂捧 除塊)。 先前嵌入式系統曾經頻繁地使用所謂之N0R快閃記憶體 及其中直接自該快閃記憶體執行儲存於該快閃記憶體中之 軟體之本地執行機制。近來,所謂iNAND記憶體因其實 現大儲存容量之相對低之價格而愈來愈多地用於嵌入式系 統中。然π,由於其構造原理,NAND記憶體通常不適於 提供就地執行。 嵌入式系統可使用NOR& NAND記憶體之一組合,其中 較小NOR記憶體用作軟體唯讀記憶體(R〇M),且一較大 NAND σ己憶體與一槽案系統分離用作一隨機存取儲存區 或;、、:而在此系統中對NOR及NAND記憶體兩者之需要 部分地消耗NAND記憶體之價格優勢。 在其他系統中,NAND用於軟體及常數資料(c〇nstant 127847.doc 200839515 data)之儲存及隨機存取儲存。為此目的,當自nand記憶 體執行軟體時,使用虛擬記憶體策略,其中首先將記憶體 内容自該NAND記憶體分頁或複製至記憶體映射之隨機存 取記憶體(RAM)且在彼處執行。因此,在該等系統中,該 - NAND記憶體作為一副媒體/儲存裝置運作,而記憶體映射 . 之Ram作為一主記憶體運作。 虛擬記憶體或虛擬記憶體定址係電腦及其他處理裝置之 〇 作業系統所用之記憶體管理技術,其中非連續記憶體作為 連續記憶體提供給一軟體/處理程序。該連續記憶體稱作 虛擬位址空間。 通常使用分頁法構建虛擬記憶體。在分頁法中,一虛擬 位址空間中之一連續位址範圍(處理器所用位址之範圍)映 射至該記憶體之一對應實體位址範圍。藉由此範圍所參照 之記憶體稱作一頁面。頁面大小通常在5丨2至8丨92位元組 之範圍内,其中幾千個位元組(例如4千個位元組)係當今一 〇 極為常見之選擇,當然可將4兆位元組或更大之頁面大小 用於特殊用途。 通常藉由所言胃之記憶體管料元(MMU)來實施自虛擬位 址至實體位址之轉譯,記憶體管理單元可作為中央處理單 元(CPU)之一模組或作為一輔助之緊密耦合之晶片來提 供。記憶體管理單元因此係負責處置CPU所請求之記憶體 存取的電腦硬體組件類別。除了虛擬位址轉譯至實體位址 (即虛擬記憶體管理)外,該MMU可實施進一步之士处 、 / b,例 如記憶體保護、快取控制、匯流排仲裁等。 127847.doc 200839515 需求分頁(demand paging)係構建虛擬記憶體之特別有用 之方法。在需求分頁中,若進行存取一頁面之嘗試㈠列 如,若發生一分頁錯誤),則該作業系統將一頁面自副記 憶體(例如快閃記憶體)複製至其主記憶體(例如Ram)。 - 在嵌入式系統中,一般期望減少儲存需求或增加儲存容 、 量而不增加該系統中所安裝之記憶體量,以保持產品成本 較低。 p 使用需求分頁或其他虛擬記憶體技術來自虛擬唯讀記憶 體執行碼或讀取常數資料之後入式系統之構建已開放將碼 2常數資料壓縮於該儲存媒體中之可能性。然後當將碼及 常數資料載入至RAM中由CPU執行或讀取存取時,對其進 行解壓縮。 ’、 US 6,349,375揭示一嵌入式系統,丨中資料以一壓縮格 式儲存於一儲存媒體中。因應於(:1>11提出之資料請求,該 虛擬記憶體系統首先確定被請求之資料是否以非壓縮形式 存在於可供該CPU存取之主記憶體中。若該被請求之資料 未在主記憶體之解I缩部分中,而以一麼縮格式存在於該 ^存媒體中’則藉由-需求分頁運作將該資料傳送至主記
It體之.亥解壓細部分中。在需求分頁運作期間,解壓縮該 •資料。 US專利第6,332,172號揭示一種用於在一低資源電腦系 統中減少記憶體需求之方法。在該先前技術方法中,一經 屢縮之影像儲存於快閃記憶體中且在執行時間調換進經壓 縮記憶體之頁面,其中該頁入作業包括解屢縮該對應之頁 127847.doc 200839515 面資料。 在此先前技術方法及系統中,通常可將資料壓縮於大小 與MMU頁面大小相同或為其倍數(例如4、8或16圳之部 分中。對應於相應記憶體頁面之壓縮資料通常將具有一小 於該頁面大小之大小。然而,由於資料壓縮性質,對應於 該虛擬記憶體頁面之壓縮資料通常具有變化之大小,乃因 可達成之壓縮比例通常因頁面而變化。 因此,在多個串連壓縮頁面之一連續影像中,虛擬位址 至實體位移之轉譯係非線性且實務上需要一轉譯表。此一 轉譯表需要儲存於該儲存媒體中或重構於系統引導處。假 设每一 MMU頁面一個4個位元組之字及4kB之一MMU頁面 大小之最小需求,則該轉譯表將具有lkB/MB之成本。在 程式之完整執行期間,應將該轉譯表靜態保存於RAM中, 藉此增加該系統之RAM之使用率。另一選擇係,可將該轉 譯表保存於該儲存媒體中,因此使該轉譯導致一經由該儲 存媒體之額外間接。用於讀取該間接之額外時間將增加讀 取一頁面之壓縮資料所需之時間,從而減小該系統之效 率。 在某些諸如硬碟、NAND及其他類型之快閃記憶體等儲 存媒體中,在一大於1位元組之通常為512個位元組至數κ 之位tl組之實體(例如硬碟之硬碟區段或nand塊)中存取 資料。出於本說明之目的,將資料儲存及/或存取於其中 之大於1個位元組之實體稱作記憶體區段或簡單地稱作區 卞又 口此’在该等系統中’讀取該轉譯表之額外讀取作業 127847.doc 200839515 將涉及讀取至少一個此區段,且此明顯增加讀取一壓縮頁 面之有效時間。 us專利4揭示一種用於在一可定址記憶體中存 取可變長度之經壓縮符號串之方法。根據該先前技術之方 法’將一超過一線性或主位址段大小之經壓縮符號劃分成 一主段及一溢流段,以使該溢流段之一指示字嵌入該主段 中。藉由調整該等線性段之大小及使用可隨該線性空間調 整之溢流空間保持一常數和來動態地管理總計固定大小之 位址空間。 因此,該先前技術方法在該源符號概率隨時間改變時, 要求該系統動態地改變該儲存空間之線性位址擴展之相對 大小及儲存於其中之段之相對大小。該調整大小根據該溢 流按其當前大小之百分率是否已欠利用或過利用而涉及線 性及溢流擴展之週期及機會性地重寫。相依於該儲存媒 體,此重寫可需要大量時間及能力消耗。尤其對於電池驅 動裝置及/或具有有限計算資源之裝置,該等限制可對裝 置之效能產生明顯之降低。此外,主段之調整大小進一^ 需要自虛擬位址至實體位址之轉譯的改變。此外,對於諸 如快閃記憶體等某些類型之儲存媒體,主段大小至不同=、 儲存媒體之塊大小之改變可導致低效讀取及/或寫、 業。 〆”、、入作 因此,此保持提供-用於在-儲存媒體中儲存壓縮 之改良方法之問題。 、 【發明内容】 127847.doc 200839515 本發明揭示-種處理供儲存於—儲存媒體中之資料之方 法,該儲存媒體耗合至一處理單元,該處理單元經調適用 於存取作為—個或多個記憶體資料頁面儲存於該儲㈣體 中,資料’每一記憶體頁面均具有—職頁面大小及一對 應記憶體頁面位址,該方法包括: -獲得-個或多個壓縮資料項,每—壓縮資料項均包 括對應於非壓縮資料之一相應記憶體頁面之壓縮資 料;
將具有λ力予員定大小之壓縮資料項大小之該一 個或多個壓縮資料項中之每_者均劃分成一初始部 分及一補充部分; 將每一初始部分連同一相應之索引資料項配置於一 與該對應記憶體頁面相關聯之相應第—記憶體位置 處; 確定用於該一個或多個補奋立 人夕1U補充邛分中之每一者之相應 第二記憶體位置’以便至少近似最大程度地減小每 一補充部分至少部分地佔據之區段之數量; 在忒所確疋之相應第二記憶體位置處配置每一補充 料,其中每—索引資料項均指示對應於連同該索 引資料項一起配置之該初始部分之該補充部分之該 所確定之第二記憶體位置。 口此纟文所揭不之方法允許在無需—轉譯表之情況下 將該壓縮資料配置至該儲存媒體,乃因虛擬位址空間 -資料頁面之開始位址均可線性地映射至該儲存媒體中其 127847.doc -12- 200839515 中該壓縮資料之初始部分與一索引一起放置之位置,該索 引指出該頁面剩餘之I縮資料位於該館存媒體中之位置/'。、 因此可藉由-簡單算術計算來確定該虛擬位址與該初始部 分在該儲存媒體中之位置之間的關係。 Γ 由於確定了用於該一個或多個補充部分之相應第二記憶 體位置,因而至少近似最大程度地減小每一補充部分至少 :分地佔據之區段數量,最大程度地減小或至少減少用於 讀取每一壓縮記憶體頁面所需之時間。因A,提供一儲存 壓縮資料之特別記憶體有效方法,同時保持對―虛擬記憶 體系統中記憶體頁面之有效存取。在本發明之實施例中, 在該儲存媒體之可供用於儲存該補充部分之預定空間中確 定該等相應之第二記憶體位詈。與Y丨 ㈣置舉例而言,可將該等相應 之記憶體位置確定為一預定記憶體空間中用於該等補充部 分之相應之開始位址。 該至少近似之最大程度地減小可包括針對該等補充部分 之每-者較-最佳佈局,形成最小數量之至少部分地被 佔據之記憶體區段。然而’應瞭解’在某些情況下,獲取 此一最佳解決方案係不可能及/或不可行於是該處理程 序可(例如)藉由允許補充部分之—子集佔據多於最小數量 之記憶體區段來針對該等補充部分之每一者確定僅近似最 大程度地減小f少部分地被佔據之記憶體區段數量。然 而,此-近似最小化-般將針對該等補充部分中之每一者 形成至少部分地被佔據之記憶體區段數量之減小。 因此,本文所述方法較复Φ脸 .. 孕乂具中將一轉譯表保存於儲存媒體 127847.doc •13- 200839515 中之方法實施得更快,且本文所述方法較其中將轉譯表保 存於RAM中之方法省卻了對ram之需要。此外,本文所 揭不方法之實施例無需動態調整初始部分之大小。 在一實施例中,該儲存媒體經調適用於在一預定區段大 小之區段中儲存資料,且初始部分之大小(本文亦稱作初 始部分大小)經選擇使得該初始部分大小與該索引資料項 之大小之和不大於該區段大小。因此,每一初始部分均可 對準一區段之開始儲存,藉此提供虛擬頁面位址至實體記 憶體位址之特別簡單之映射及一有效載入,乃因自記憶體 讀取該初始部分僅需要讀取一單個記憶體區段,例如一硬 碟之一單個磁碟區段、一快閃記憶體之一單個塊或諸如此 類。 如上文所述,在虛擬記憶體系統中,對應於虛擬記憶體 頁面之記憶體内容之載入(或頁面調進)通常(雖然並非必 須)係基於虛擬位址資訊來實施,該虛擬位址資訊係(例如)
在-記憶體管理單^針對―既^虛擬位址產生—指示該主 記憶體無對應之實體記憶體映射至該虛擬位址的分頁錯誤 時獲得。因此,在-實施例中,該處理單元經調適用於將 该虛擬位址資訊轉譯成該儲存媒體之一實體位址。在一實 施例中,該轉譯實施為虛擬位址與該儲存媒體之實體位址 之間的線性映射。 在一實施例中,將每一初始 項配置於一相應第一記憶體位 始部分及相應索引資料項作為 部分連同一相應之索引資料 置處包括配置一個或多個初 對應於一可由該處理單元 127847.doc -14- 200839515 疋址之記憶體頁面之序列次序之初始部分資料項序列,其 中该頁面大小大於該等初始部分資料項之一預定最大大小 (例如等於该儲存媒體之區段大小)。因此,該等頁碼可映 射至記憶體之連續同等大小之範圍(例如連續之記憶體區 奴),藉此提供虛擬記憶體頁面與該儲存媒體之實體位址 之間的特別簡單之映射。應瞭解,某些壓縮頁面可能小於 所確定之最大大小。因此,無需對該等壓縮頁面進行分 ^而了作為包括整個壓縮頁面資料之一初始部分予以 存。 ^ 在貝加例中’本文所述方法係針對將儲存於該裝置中 之所有(或至少部分)可分頁記憶體内容實施。通常,該可 分頁内容對應於複數個頁面。 在實施例中,該方法進一步包括以補充部分之倍數佈 置該等補充部分之至少—子集,以至少近似最大程度地減 丨預定成本準則。特定而言,在一實施例中,該成本準 則扣示補充σ卩为之泫等倍數之相應大小與該等區段大小之 相應正數倍數之偏差。因此,由所形成之記憶體佈局佔據 之記憶體區段之數量減小,藉此提供有效存取,乃因讀取 較少之記憶體區段即可擷取該壓縮資料。同樣,該佈局進 一步有利於所儲存之記憶體内容之有效 新之記憶體區段數量減小。 因*要更 因此,在某些實施例中,進一步確定用於該一個或多個 補充4 77之相應之第二記憶體位置,以便至少近似最大程 度地減小該等補充部分中之至少_者至少部分地佔據之區 127847.doc -15- 200839515 畺藉由確疋用於該等補充部分之相應第二記憶體位 置以減小該等補充部分所佔據之區段數量,減小了用於儲 ,該塵縮資料之總記憶體之使用。在—實施例中,在防止 每一補充部分至少部分地佔據之區段數量增加之約束下, 實施該等補充部分中之至少一者至少部分地佔據之該等區 段數量之至少近似之最小化。 在一實施例中,佈置該等補充部分之至少一子集包括以 成對之補充部分佈置補充部分之至少該子集,以便每一對 補充。P刀均佔據該儲存媒體之一連續區段範圍,該範圍包 括一初始區段及一最後區段,且使得每一對之一第一成員 之開始位址與該對應初始區段之一開始位址對準,且每一 對之一第二成員之最終位址與該相應最終區段之一最終位 址對準。因此,可進一步減小每一對補充部分所佔據之記 憶體區段之數量。在一實施例中,該等對經組合以使該對 儘可能地填納整數個區段,以便最大程度地減小保持未用 之備用/填充空間。舉例而言,可藉由確定以未使用之填 充空間作為一成本函數之最佳化問題之至少一近似方案來 實施對之配置。 在一進一步實施例中,該方法進一步包括: -識別被初始部分資料項部分地佔據之區段中未使用 之記憶體空間; -痛定該等補充部分中之至少一者是否小得足以置入 該等所識別之未使用之空間中; -若一補充部分經識別小得足以置入一所識別之未使 127847.doc -16- 200839515 用之空間中,則確定該所識別之未使用空間將係用 於配置該所識別之補充部分之第二記憶體位置。 因此’在某些實施例中,可用於儲存補充部分之儲存媒 體空間包括被初始部分資料項部分地佔據之區段中未使用 之0己丨思體空間’藉此進一步增加記憶體之使用效率。 類似地,在一實施例中,該方法進一步包括··
-識別被多個補充部分部分地佔據之區段中未使用之 記憶體空間; -確疋至少一個不同於該多個所識別之多個補充部分 之成員之剩餘補充部分小得足以置入該所識別之未 使用空間中; 右一 餘之補充部分經識別小得足以置入一 識別 之未使用空間中,則確定該所識別之未使用空間係 用於配置該所識別之剩餘補充部分之第二記憶體位 置 因此,在某些實施例中 儲存媒體之空間包括被一 區段中未使用之記憶體空
可供用於儲存該等補充部分之 個或多個補充部分部分地佔據之 間。 存記._容〜。 部分資料項包括與索引資料=!=:=,當初始 供-特別簡單且有效之健存及广”亦可提 初始部分與補充部分之:取。㈣地’即使可提供 部分與補充部分之串連時心,但當壓縮資料項係初始 連時,亦可提供一特別簡單且有效之 127847.doc -17- 200839515 儲存及存取。 進-步之較佳實施例揭示於附屬中請專利範圍中。 本毛月可以包括上述方法及將儲存於—副儲存媒體中之 資料載人至-儲存裝置之—主記憶體中之方法、—處理裝 =、及進-步之系統及產品構件來實施,—處理裝置及進 ^步之系統及產品構件之每—者均產生結合該第—所述方 法成明之-個或多個好處及優點,且每—者均具有對應於 η c 、m斤述方法說明及/或揭示於隨附申請專利範圍 之較佳實施例之一個或多個較佳實施例。 -:據一態樣,將資料自一副儲存媒體載入至 表置之一主記憶體之方法包括: -在-虛擬記憶體空間中定址該作為資料頁面之資 ^’每―頁面均具有1定頁面大小,其t該副儲 :媒體均於其上儲存—個或多個壓縮資料項,每一 =縮資料項均包括對應於非壓縮㈣之—對應記憶 -頁面之壓縮資料;其中該副儲存媒體已將每一大 :-預定大小之壓縮資料項作為一與一索引資料項 -起儲存之初始部分及作為—儲㈣該索引資料項 所識別之-記憶體位置處之補充部分儲存於其上; 其中選擇用於該等補充部分之相應記憶體位置以便 至少近似最大程度地減小每—補充部分至少部分地 佔據之區段數量; 確定對應於欲自該第二記憶體載入至該主記憔體之 -第-記憶體頁面之一屢縮資料項之一初始部分之 127847.doc -18- 200839515 一實體位址; -根據與該初始部分-起儲存之—索弓丨資料項確定一 補充部分之一實體位址; -解壓縮該初始部分及該補充部分以獲得非壓縮資料 之該第一記憶體頁面。 ^-實施例中,確定該初始部分之—實體位址包括在一 記憶體頁面位址與該第二記憶體之—實體位址之間應用一
線性映射’即藉由作為至少該記憶體頁面位址之一線性函 數來計算該實體位址。 明注思,上文及下文中所述方法之特徵可以軟體實施且 實現於-資料處理系統或藉由執行諸如電腦可執行指令之 程式碼構件所致使之其他處理構件上。於此及在下文中, 術語「處理構件」包含任何經適當地調適以實施上述功能
之電路及/或裝置。特定而纟,術語「處理構件」包括通 用或專用可程式化微處理器、數位信號處理器(Dsp)、應 用專用積體電路(ASIC)、可程式化邏輯陣列(pLA)、場可 程式化閘陣列(FPGA)、專用電子電路等,或其一組合。 舉例而5,该程式碼構件可自一儲存媒體或經由一電腦 、同路自# |腦/计异f i載入至一記憶體,諸如一隨機 存取記憶體(RAM)。或者,上述特徵可由硬接線電路而非 軟體或與軟體相結合來實施。 根據另悲樣,一資料處理系統經適當地程式化以實施 上文及下文中所述方法之各個步驟。 根據另-態樣,一電腦程式產品包括如下程式碼構件: 127847.doc • J9- 200839515 f該程式碼構件執行於-資料處理m其他處理構件上 …使該資料處理系統或其他處理構件實施 頂狀方法。該電腦程式產品可體現為-已於其上儲: 否亥專粒式碼構件之電胞% 冤月自可碩媒體,例如光碟、硬碟、妒 碟、磁帶、CD ROM、快閃記情體、 人 別、 5己憶棒、及/或其他類 里之磁性及/或光學儲存媒體。 根據另一態樣,一處理裝置包括一 ^ w vxa ^ 單7^及一輕合至 Γ 5亥處理早兀之儲存媒體,該處理單元經調適用於存取作為 一個或多個資料頁面儲存於該儲存媒體中之資料,每一頁 ,均具有-預定頁面大小及一對應之虛擬記憶體位址,該 :理裝置經調適用於已在該儲存媒體中健存麼縮資料項, 7一1 缩資料項均包括對應於非壓縮資料之一對應記憶體 頁=之壓㈣料;其中該處理裝置組態成已將每-大於一 =疋大小之壓縮資料項作為一對應初始部分及-補充部分 在;儲存;其中該處理裝置進一步組態成在該儲存媒體中 ,與該對應記憶體頁面相關聯之相應第一記憶體位置處儲 :母—初始部連同一對應索引資料項;其中該處理裝置進 "悲成確疋用於每一補充部分之一相應第二記憶體位 乂便至近似最大程度地減小每—補充部分至少部分地 據之區段數量及以便在該儲存媒體中該所確定之相應第 Z憶體位置處儲存每一補充部分;其中每一索引資料項 句才日示對應於與該帝引眘 .^ ^ ,、貝枓項一起儲存之初始部分之補充 W为之第二記憶體位置。 出於本Λ明之目的’術語處理裝置及電子裝置包括任一 127847.doc -20- 200839515 。括諸如-用於儲存諸如程式碼及常數資料等資料 閃記憶體等記憶體之p:罢 、 丨〜股之表置。此類裝置之實例包括可 線電通信設備及其他手持 ^ 他于持或可攜式裝置。術語可攜式盔 電通信設備包括諸如行動電話、傳呼機、通信器(即電子 。己事薄)、智慧電話、個人數位助理(pDA)、手持式電腦、 媒體播放器(諸如mp3播放器)、數位照相機或其他記錄裝 置自動推進工業中之嵌入式裝置、媒體裝置或類似裝 置。 、
遠儲存媒體/裝置可係非揮發性儲存媒體,例如快閃記 憶體,例如NAND記憶體。應瞭解,本文所述之方法系統 及裝置亦可結合其他類型之儲存媒體(諸如其他類型之快 閃記憶體(例如NOR快閃記憶體)及/或其他類型之可在區段 中存取之儲存媒體(諸如硬碟)或類似儲存媒體)構建。 在一實施例中,該處理裝置進一步包括一經調適用於將 一虛擬記憶體空間之頁面映射至處理裝置之一主記憶體 (諸如一 RAM)之實體位址之記憶體管理單元。該記憶體管 理單元可構建為一包括於或耦合至該處理裝置之中央處理 單元之硬體組件。另一選擇係,該記憶體管理單元可至少 部分地作為一個或多個軟體組件構建。在某些實施例中, 該處理單元經調適用於基於虛擬位址資訊存取儲存於該儲 存媒體中之資料,且該處理單元經調適用於將該虛擬位址 資訊轉譯成該儲存媒體之一實體位址。 在一實施例中,該處理裝置經調適用於將記憶體頁面序 列映射成對應之初始部分資料項序列,其中該頁面大小大 127847.doc -21- 200839515 於該初始部分資袓TS a 1刀貝枓項之—預定最大大小。 在一實施例中,該處理裝置 牛 縮資料項之構件。兮用於醢r /匕括用於解壓縮該壓 件'軟體功” I 縮之構件可構建為-硬體組 H切it及㈣之-組合。料 至該中央處 1 决兴處理早兀之-合適裝置或電路 來實細S亥解壓縮。另— 电格 卢Π $選擇係或額外地,可藉由由該中央 處理早讀行之軟體來實施該解n 、 【實施方式】 圖^不思性地顯示-系統之方塊圖,該系統用於為 ^于動終端機等處理I置產生—記憶體影像(例如_個或 少個軟體模組及/或常數資料之—最初或更新構造之一於 像)及用於將該所產生之影像上載至該處理裝置。通常: 示為100之系統包括一軟體散佈系統102及一可經由一通‘ ’I面103連接至該軟體散佈系統1〇2之處理裝置1^。 軟體散佈系統102可包括一伺服器電腦或具有對通信介 面1〇3之存取之其他資料處理系、统。於某些實施例中^ 體散佈系統102之功能可分散於複數個電腦中,例如經由 一電腦網路(例如一區域網路、一廣域網路、一網際網路 或類似網路)連接之電腦。軟體散佈系統1〇2包括一允許軟 體散佈系統102經由該通信介面1〇3傳送資料之介面電路 104。舉例而言,介面電路104可包括一串行埠、一並行 埠、一短範圍無線通仏介面,例如一紅外線埠、一誌芽收 發器或類似裝置。介面電路之進一步實例包括一網路卡、 一 DSL數據機、一網間連接器電腦、一用於蜂巢式電俨之 127847.doc -22- 200839515 無線通信電路或類似裝置。
體政佈系統102進一步包括一經合適地程式化以控制 及實^影像之產生及散佈處理程序之處理單元105,例如 伺服态電腦之CPU。如下文更詳細說明,該影像產生及 政佈處理私序包括影像之壓縮及以—有效方式對應於一目 ^虛擬记憶體系統之頁面佈置記憶體内容。處理單元1〇5 可進一步實施實際碼產生處理程序,例如包括一個或多個 、、扁厚及鏈接步驟。另_選擇係,可藉由_單獨電腦系統實 施碼之產生,且該所產生之碼可以由一鏈接器產生之可執 /亍馬之幵^/式傳送至處理單元1 〇 5。軟體散佈系統1 可進一 步包括額外組件,例如資料庫106或其他用於欲散佈之軟 體之庫、及/或用於(例如)版本管理及/或增加之軟體更新 之產生及管理之進一步組件(未具體顯示)、安全模組(例如 用於藉由(例如)公鑰及私鑰安全機制進行完整性保護及/或 認證該所散佈之影像資料)、或類似組件。 通信介面103可係任何適於用於在軟體散佈系統1〇2與處 理裝置1G1之間傳送資料之有線或無線通信介面。舉例而 言,在適於經由一蜂巢式通信網路(例如GSM網路、一 UMTS網路、一 GPRS網路或類似網路)進行通信之一行動 電話之情況下’可經由該蜂巢式通信網路在該軟體散佈系 統與該行動終端機之間實施與一軟體更新相關之通信,藉 此避免在該行動終端機中對額外通信介面之需要。合適^ 一通用串列匯流
通信介面之進一步實例包括一串列介面 排(USB) ' —諸如IrDa等紅外線介面 127847.doc -23- 200839515 範圍射頻介面(例如根據藍芽標準)及/或類似介面。 因此,為了載入新軟體或更新處理裝置1〇1上現存在之 軟體及/或常數貧料,處理裝置101可自軟體散佈系統1〇2 接收正載入/更新之指令(例如包括欲寫入之記憶體區段之 ^ 影像)。於一使用差異稽案(delta file)之差異式 (differential)軟體更新系統1〇2中,更新指令經產生以便其 使處理裝置101能夠自處理裝置101中已儲存之現有版本及 广 更新指令中所包含之額外資訊產生經更新軟體版本。 因此,在上文,描述軟體及/或常數資料散佈之一可能 情形。然而,應瞭解本文所述之用於壓縮資料之記憶體佈 局之產生亦可應用於其他散佈情形。舉例而言,軟體及/ 或常數資料可經由其他媒體(例如其他通信通道)、經由一 電腦可讀媒體等提供至目標裝置。 圖2不思性地顯不一處理裝置(例如一行動終端機)之一 實例之方塊圖。處理裝置101包括一中央處理單元 1) (CPU)211、處理單元211可存取之一主記憶體212(例如一 RAM)、及一副儲存媒體/裝置213(例如快閃記憶體)。可藉 由一單個晶片或藉由多個處理器構建該CPU。舉例而言, 該CPU可包括一可合適程式化之微處理器。使用自主記憶 • 體212接收之指令,CPU 211控制該處理裝置之作業,例如 輸入資料之接收及操控,以及資料在輸出裝置上之輸出及 顯示。在一行動終端機之情形下,該運作可進一步包括經 由一蜂巢式通信網路之基於無線電之通信。為此目的, CPU 211可進一步控制處理裝置之額外組件(例如一個或多 127847.doc -24- 200839515 個通信組件2 1 0)及/或與其相互操作。通信組件2 1 ο可包 括·用於藉由無線電通信技術中所習知之合適技術合適地 傳輸/接收通信信號之發射器及接收器電路、用於處理(例 如無線電通#技術中合適之技術調變、編碼、放大信號) 4 4彳§號之電路。通信組件之進一步實例包括用於提供一 用於如上文所述在軟體散佈系統1〇2與處理裝置1〇1之間傳 送資料之合適之有線或無線通信介面之電路或裝置。 主記憶體212可係隨機存取記憶體,例如靜態ram(srma)、 動態RAM(DRAM)或任何其他合適類型之隨機存取記憶 體。主記憶體212可(例如直接地或如圖2所示經由一記憶 體管理單元(MMU)2 14)雙向耦合至CPU 211。在運作期 間,主記憶體212包括CPU 211用以實施其功能之運作指 令、程式碼、資料及目標。 在CPU 2 11運作開始時,或調用一由CPU 2丨丨執行之軟 體組件時,通常將運作指令自副儲存媒體2〗3載入至主記 憶體2 12,在主記憶體2 1 2中該CPU可存取該運作指令。 在圖2之實例中,CPU 211經由一記憶體管理單元 (MMU)214耦合至該主記憶體212。MMU 214通常構建為— 硬體組件且經組態以將自CPU 211接收之虛擬位址映射至 主記憶體212之實體位址。可能存在較實體位址為多之虛 擬位址,因而虛擬位址與實體位址之間的關係係多對—p 經由MMU 214使用之虛擬記憶體被拆分成多個較佳地具有 相同大小之頁面。 現代MMU通常將虛擬位址空間劃分成多個具有一以$之 127847.doc -25- 200839515 幕:位元組為單位之頁面大小之頁面。該底位址η個位元 通常代表一頁面内之位移且保持不變,而高位址位元係虛 口此提供一自虛擬位址空間之連續位址範圍至實 體位址空間之遠病A # 、、男4址乾圍之映射。通常將RAM 2 12中之 • ㈣㈣拆分成多個頁面,該等頁面亦稱作頁面框架。- . °可將任何頁面儲存於任何頁面框架中,通常使得 虛擬頁面之載入在一實體頁面框架之開始處開始。 ▼藉由使虛擬頁碼與頁面框架編號相關聯之分頁表來 實施虛擬頁面與頁面框架之間的映射,該分頁表可存在於 主記憶體212中。MMU通常藉由—稱作轉譯旁視緩衝器 (Translation Lookaside Buffer; TLB)之關聯式快取將虛擬 頁碼轉譯成實體頁碼。當TLB缺少一轉譯時,使用一涉及 硬體專用資料結構或軟體輔助之較慢機構。存在於此資料 結構中之資料項通常稱作分頁表項目(ρτΕ),且該資料結 構自身通常稱作一分頁纟。實體頁碼與頁面位移组合以給 (j 出完整之實體位址。 在一需求分頁系統中’在運作開始時,並非所有虛擬頁 面皆需要最初載入至主記憶體212中。因此,若在隨後運 作期間,CPU 211所睛求之虛擬位址在主記憶體2 12中不具 有一對應之實體位址,則MMU 214產生一異常,通常稱作 一「分頁錯誤」。當發生一分頁錯誤時,一可用實體位址 映射至引起該分頁錯誤之虛擬位址。舉例而言,可藉由抛 棄先前已存在之另一虛擬位址至該實體位址之映射來提供 可用之實體位址,從而使新近可供使用之實體位址映射至 127847.doc -26 - 200839515 引起分頁錯誤之虛擬位址。MMU 214始終掌握虛擬位址至 實體位址之映射。 副儲存媒體2 13可係諸如快閃記憶體、R〇M、一硬碟等非 揮發性圮憶體、或一輸入/輸出裝置、一 ram或類似裝 置。在某些實施方案中,主記憶體212及第二記憶體213甚 至可構建為相同實體記憶體單元之不同部分。副儲存媒體 213已於其上儲存記憶體頁面之經壓縮之内容,該等頁面 可在CPU 211之控制下載入至主記憶體212。舉例而言,副 儲存媒體213可已於立上儲在—‘ μ今&、+、丄 ^ 、/、上储存如上文所述由一軟體散佈 系統產生及接收之經壓縮之RAM影像。 舉例而言,副儲存媒體213可已於其上儲存處理裝置ι〇ι 之包括一操作系統之韌體,當將該韌體載入至主記憶體
本文所述儲存資料之方法 可應用於儲存媒體 〖分。副儲存媒體 、或以類似方式耦
127847.doc 僅該荨内容之一部分。 經由一記憶體控制器、或 -27- 200839515 在將一新虛擬頁面内容載入至主記憶體212時,在(例 如)一合適之用於將虛擬位址映射至副儲存媒體之實體位 址及用於控制將壓縮資料以非壓縮形式載入至主記憶體 212的映射塊217之控制下,自副儲存媒體213讀取且由中 • 央處理卓元211解壓細該對應之壓縮資料。藉由cpu 211之 解壓縮塊215(例如由該CPU執行之合適之解壓縮軟體,視 需要藉由一硬體加速器輔助)實施解壓縮。 應瞭解’映射塊217及解壓縮塊2 1 5可以軟體、硬體或硬 體及軟體之一組合構建。舉例而言,映射塊2丨7及/或壓縮 塊2 1 5可體現為由CPU 2 11執行之一個或相應之軟體組件, 例如作為用於處理由MMU產生之分頁錯誤之異常處理常 式之一部分或由該常式調用。下文將更詳細地說明該映射 塊所實施功能之實施例。 雖然在圖2中作為單獨塊顯示,但解壓縮單元215及/或 映射塊217亦可整體構建為一單個功能塊及/或與其他功能 〇 塊整合,例如與諸如該處理裝置之作業系統之其他軟體組 件整合。在一替代實施例中,映射塊217及/或解壓縮塊 2 1 5可構建為與CPU 211分離之一個或多個硬體塊。在又一 替代實施例中,可由MMU實施或在MMU之控制下實施壓 ' 縮資料之存取及解壓縮。 下文’將參照圖3-4說明用於處理供儲存於一處理裝置 中之資料之方法。 圖3顯示用於處理儲存於一處理裝置之一副儲存媒體中 之資料之一處理程序之流程圖,而圖4圖解說明一處理裝 127847.doc -28 - 200839515 田]儲存媒體之一記憶體佈局之一實例。舉例而令, 域理程序可構建為一用於產生一軟體版本之一構造:理 在序之一部分或構造安裝於一處理裝置中。通常,此—構 造程序接收源碼模組、編譯並鏈接該等源碼模組,形成— ㈣人至該裝置之可執行槽案。因此,本文所述之過程可 • ^該連接器階段後(例如)作為-單獨處理程序或作為該構 以處理程序之—組成部分來實施。因此,本文所述之處理 〇 程序可藉由一單獨軟體應用程序或藉由一經整合之應用程 序或用於實細§亥整個構造處理程序之應用程式套組 施。 、貝 最初,在圖3所示處理程序之步驟§3〇1中,該處理程序 接收(例如)一習用鏈接器輸出之欲處理之資料,(例如)一 鏈接之可執行軟體組件。如上文所述,該處理裝置之包括 碼及常量之-特定範圍之虛擬位址空間在系統組態時間可 界定為應需自該副儲存媒體入頁。出於本說明之目的,對 (j 應於一虛擬記憶體頁面之資料内容將亦稱作頁面資料 (PD) 〇 圖4a顯示虛擬位址空間範圍4〇〇之一實例。在圖4之實例 * 中,虛擬記憶體空間範圍400包括4個各自具有4千個位元 ,,且之連續頁面該等頁面在目的處理裝置之虛千::己: 體空間中之開始位址分別係〇χ2〇〇〇〇〇〇〇、、 0x20002000、0χ20003000。將對應之頁面資料標識為 PD0、PDl、PR、及PR。圖4中頁面4〇1之編號、大小及 開始位址僅旨在用作一非限制實例。應瞭解,虛擬位址空 127847.doc -29- 200839515 間可包括一不同頁碼、不同大小、及/或處於不同之開始 位址。 在隨後步驟S302中,該處理程序使用一合適壓縮算法將 對應於該範圍中每一頁面之頁面内容壓縮成一壓縮資料 _ 項。出於本說明之目的,對應於一虛擬記憶體頁面之壓縮 資料内容將亦稱作一經壓縮頁面資料(PDC)。用於壓縮軟 體及常數資料之合適之壓縮算法在此項技術中係習知,且 其可構建於軟體或硬體中或兩者之一組合中。適合壓縮算 法之實例包括諸如Lempel-ZiV(LZ)等無損失壓縮算法、 DEFLATE算法、LZW(Lempel-Ziv-Welch)算法、LZR(LZ-
Renau)方法、使用概率模型及算術編碼之壓縮器、及類似 算法。 大多數壓縮算法共用之一虛擬記憶體頁面之壓縮資料之 典型大小介於原始大小之30-90%之間,且一期望之平均值 可係約60-70%。 〔: 圖4b顯示分別由對應之頁面資料PD〇、PD!、PD2及PD3 壓縮形成之分別標識為PDC〇、PDCi、PDC2、PDC3之壓縮 資料項403。出於圖4實例之目的,假設頁面資料PD〇自4千 * 個位元組壓縮至1434個位元組,而假設PDi壓縮至2134個 ' 位元組,假設PD2壓縮至3412個位元組,且假設PD3壓縮至 2548個位元組。然而,應瞭解,該等大小可僅用作一非限 制實例。 在隨後步驟S303-S3 12中,該壓縮資料在該儲存媒體之 實體記憶體空間中擺開,例如,如在圖4中所圖解說明。 127847.doc -30- 200839515 每-pdc皆按照原#資料虛擬位址之序歹]次序與該儲存 媒體中之-對應區段相關聯(例如^該儲存媒體係一硬碟 驅動器’則該區段係磁碟區段或若該儲存媒體係— nand 快閃記憶體,則該相應區段係記憶體塊)。以此方式,使 用於在儲存器中找到壓縮資料之成本最大程度地減乃 因可藉由-簡單算術表達式計算該壓縮資料之初始部分之 位置:
Lpds
Av-Avrs
Spmmu (i) 其中標示壓縮資料之初始部分儲存於該儲存媒體中 之位置,心標示所請求虛擬記憶體頁面之虛擬位址、y 標示儲存於該儲存媒體中之虛擬記憶體範圍之開始位址, 且標示一MMU頁面大小。通f,“係一正整數(例 :一區段數量或相對區段數量),械細係X相應 倍數,且—卿可係任一位元組數量,通常係幾千個位元 組,例如4千個位元組。因此,該儲存媒體中之該位置可 作為所請求虛擬記憶體頁面之虛擬㈣之—線性函數進行 計算。大多數MMU皆使用一係2之幂的頁面大小。因此, 以上劃分作業可有效地作為一右移作業來實施。 由於儲:媒體中之該等區段通常小於絕大多數一記憶體 ' 1宿貝料,因而每一相關聯區段僅具有用以儲存每 Μ 4貝料項之初始部分加上一指示該頁面之剩餘虔縮資 料(或所謂之補充部分)之位置之索引的容量。 #然而,在一百工 ^ 广 、 之壓縮資料小於該儲存媒體之區段大小 127847.doc -31 - 200839515
之情況下, 下’該相關聯區段之桑I丨修如A
之補充部分之小實例(若存在)。
。由N表示記憶體頁 面數量,針對每一記憶體頁面實施隨後步驟。因此,在步 驟S304中,將一計數器z•初始化至(例如)/ = 〇。 在步驟S305中,該處理程序確定該頁面序列之第丨個經 壓縮之頁面資料(PDCZ)是否小得足以填納於該儲存媒體之 一單個區段中。 若情況係如此,則該處理程序在步驟S3〇6處繼續且將該 壓縮資料項配置至開始於一預定開始位址/區段之下一可 用記憶體區段&中。在某些實施例中,該壓縮資料項 (PDCy)包括關於其自身大小之資訊。舉例而言,該處理程 序可在該PDC開始(即在實際壓縮資料之前)包括該完整 PDC之大小,從而允許隨後之擷取處理程序確定欲讀取之 資料量。相依於所使用之壓縮算法,該壓縮資料之大小可 能已藉由該壓縮算法包括於該經壓縮之資料中。在一替代 實施例中,該處理程序可附加一具有一預定值之索引資料 項來指示無欲讀取之補充部分。應瞭解,另一選擇係或額 外地,可以不同方式提供關於欲讀取之資料量之資訊及是 否將讀取一補充部分之指示。隨後,該處理程序在步驟 127847.doc -32- 200839515 S307繼續。 否則,即若在步驟S305該確定已指示pDC大於該區^大 小,則該處理程序在步驟S308繼續,且將該經壓 又 育料(PDC,·)分裂/劃分成一初始部分(pDci,)及一補充部分 ' (PDCSi) ’以便將該初始部分與-索引資料項置入區段Si。 該PDCI,與—索引卜起儲存於與該虛擬記憶體頁面/相關 聯之區.中,索引L指出該對應補充部分pDcs,位於儲存 (. ㈣中之位4,即I,指示PDCSi.儲存於該儲存媒體中之實 體位址。舉例而言’可將索引!.附加至該初始部分pod,,' 形成一包括該初始部分與該索引資料項之串連之初始部分 資料項。因此,在步驟S3〇9中,該處理程序確定一用於儲 存PDCS,之位置。在步驟S31〇中,該處理程序將⑶之 開始位址指配至索引,且在步驟§311中,該處理程序將 PDCI,·及索引iz.配置至區段心。 該補充部分可儲存於該儲存媒體仍可供使用之合適位 ί / 置。下文將說明一以一有效方式配置該等補充部分之處理 程序之實例。 隨後,該處理程序在步驟S307處繼續,在步驟33〇7處, 該處理程序將計數器ζ·增加至(例如)ζ·+/。在隨後步驟S312 , 處,該處理程序確定是否所有N個頁面皆已予以處理,即 疋否z 。若情形並非如此,則該處理程序返回至步驟 S305以處理下一頁面。否則,該處理程序終止。 再次參考圖4之實例,圖躭顯示當根據圖3之方法配置圖 4b之經壓縮頁面資料時,所形成之記憶體佈局。出於圖4 127847.doc •33· 200839515 之貝例之目的,假设该儲存媒體具有一 5丨2個位元組之區 段大小,且假設該索引資料項需要32個位元(即4個位元 組)。同樣,應瞭解,該等數字值僅旨在用作非限制性實 例,且該方法可針對不同之區段大小及/或不同之索引大 小實施。連續區段410之範圍包括分別係經壓縮頁面資料 PDC〇 PDC!、PDC2、及 PDC3之初始部分pdcI〇、PDCI】、 PDCI2、及PDCI3及對應之索引資料項411。對應之補充部
刀PDCS〇、PDCS!、PDCS2、及PDCS3儲存於隨配置給該等 初始部分之區段範圍之後的連續位址範圍中,且該等索引 資料項411指向該等相應補充部分之開始位址。在圖心 中’顯示該等補充部分以與對應初始部分相同之順序配 置然而,應瞭解,該等補充部分亦可以不同序列次序配 置此外雖然顯示該等補充部分儲存於該等初始部分所 佔據區段之擴展部分中且儲存於一連續區段之範圍中,但 該等補充部分亦可以不同佈局儲存,例如儲存於非連續位 置中及/或遠離該等初始部分儲存。 舉例而言,當對於以-4 kB之頁面大小運作之以顧及 對於512個位元組之區段大小以例如625%之壓縮比壓縮某 一頁面PD/,所形成之經壓縮頁面資料PDC/之大小係2506 個位元組。假設該索引資料項之大小係32個位元(4個位元 組),則僅有遷縮資料之初始5()8個位元組填納於該相關聯 之區段卜然後剩餘1998個位元組可配置至該儲存媒體之 另一位置,且該相關聯區段中之該索引可指示彼位置。應 瞭解’在某些實施例中,該等初始部分之大小(加上該索 127847.doc -34- 200839515 引大小)可選擇成對應於該區段大小之兩倍或另一整數 倍,例如在其中頁面大小及區段大小係如此以致於頁面資 料之壓縮極不可能小於該區段大小之兩倍或另一倍數之實 施方案中。在某些實施例中,甚至可將初始部分之大小確 定為區段大小之倍數,以便最佳化記憶體之使用率。 在實施結合圖3所述之資料處理後,該軟體散佈系統可 實施進一步之處理步驟,以產生一包括所產生之軟體影像 之軟體散佈。該等處理步驟可包括如下步驟中之一者或多 者:版本控制、完整性保護、認證、加密等。隨後,可將 該軟體散佈發送至該處理裝置且藉由任何合適之軟體散佈 方法儲存於該處理裝置上。 圖5顯示將資料自副儲存媒體載入至該處理裝置之主記 憶體之方法之流程圖。 在步驟S501中,CPU嘗試定址一當前未載入至該主記憶 體之一記憶體頁面,從而形成一分頁錯誤。 在隨後步驟S502中,該CPU請求藉由MMU映射形成分頁 錯誤之該記憶體頁面。 在步驟S5 03中,該處理程序確定可將所請求之頁面载入 至之主記憶體之實體位址。此可包括解映射雖然當前栽入 於彼位址處但當前未使用之另一頁面。 在步驟S504中,該CPU根據引起分頁錯誤之頁面的虛擬 位址(例如基於上文之方程式(1))計算該壓縮資料之初始部 分(PDCI)在該副儲存媒體中之位置。 在步驟S505中,CPU自副儲存媒體讀取包括所請求貢面 127847.doc -35- 200839515 之經壓縮頁面資料之初始部分(PDCI)之區段。 在步驟S506中’該CPU根據該初始部分之内容確定該初 始部分是$包括該所請求頁面之整個壓縮資料或是否需要 讀取-補充部分。如上文所述,該確定可(例如)基於:初 始部分中所包括之大小資訊或該初始部分或索引資料項中 所包括Κϊ何合適資訊L始部分包括整個經壓縮之
資料,則該處理程序在步驟S5〇9繼續,否則,該處理程 在步驟S507繼續。 在步驟S507中,該CPU根據附加至該初始部分之索引資 料項確定該補充部分之位置。 ^ 在步驟S508中,該CPU在該索引資料項所識別之位址開 始自該副儲存媒體讀取所請求頁面之經壓縮頁面資料之補 充部分(PDCS)。 ' 在步驟S509中,該解壓縮塊在步驟85〇3所確定之位址處 將該經壓縮之頁面資料解壓縮進該主記憶體中,形成所= 求頁面之經解壓縮之頁面資料。 在步驟S510中,該MMU以(例如)一分頁表之形式更新其 映射,因此使該所請求及載入頁面之頁碼與經解壓縮之頁 面資料載入至之主記憶體之位址相關聯。隨後,該處理程 序終止。 如上文所述,為最大程度地減小當载入一頁面之壓縮資 料(PDC)時需要讀取之區段數量,期望計劃該佈局,以便 自該媒體讀取之資料重疊儘可能少之區段。在上文所述之 實施例中’壓縮資料之每-初始部分(pDCI)連同該對應補 127847.doc -36- 200839515 充部分(PDCS)之參考定位於對準一對應區段之開始。此 外,該初始部分之大小經選擇以使每一初始部分連同該對 應索引不會配置多於一單個區段。因此,足以考量該等補 充部分(PDCS)之最佳化配置,以便該等部分重疊儘可能少 - 之區段。一般而言,可藉由定義該等補充部分之配置問題 達成此一(至少部分地)最佳化,其中(例如)藉由定義一合 適,成本函數來最大程度地減少&至少減少I—補充部: f - 重豐(即至少部分地佔據)之區段數量。 在一實施例中,藉由根據以下規則配置該等補充部分可 達成一至少近似之最佳化: -該等補充部分(PDCS)兩個與兩個地成對組合,以便 其大小之和儘可能緊密地填納於任何倍數之區段 中。由於一般該等對之大小不可能與該等區段大小 完全匹配,因而至少某些對將在一個該等補充部分 對僅部分地佔據之區段中留出一些未使用之空間。 」 在一實施例中,該對補充部分經佈置以便該對補充 部分中之一者與一區段之開始對準,且另一補充部 分與一區段之末端對準,以便該兩個補充部分之間 的任何間隙均小於一區段大小。該佈局進一步減小 在某些情況下被佔據之區段數量,如在圖6中所圖 解次明。在圖6a之實例中,顯示四個連續區段 〇1 602、603及604分別被一對補充部分pdcsη及 PDCSi2佔據,PDCSil&PDCSi2之大小與四個區段之 大小緊密地匹配,因此僅留下一未使用之記憶體小 127847.doc -37· 200839515 空隙605。在圖6a中該對補充部分彼此連續地擺在 中間,因此在最後區段604末端留出未使用之空間 605。在圖6b中圖解說明相同補充部分對在相同四 個§己k、體區段内之一替代佈局。在圖6b中,補充部 • 分PDCSn與區段601之開始對準,而補充部分 PDCSu與區段604之末端對準,因此在圍繞區段邊 界之補充部分之間及區段602與603之間留出未使用 之空間606。該佈局減小當擷取PDCSi2時需要讀取 之區段數量。在圖6a之佈局中擷取PDCSi2需要讀取 區段602、603及604,而在圖6b中之相同作業僅需 要跨越區段603及604。 -該等頁面中之某些可能已經壓縮以使該經壓縮之頁 面資料完全置入一個區段中,可能甚至留出未使用 之空間。小得足以置入已配置給PDCI之區段的未使 用空間之補充部分(PDCS)可因此放置於此未使用之 Q 空間中。圖7中所圖解說明之情形分別圖解說明兩 個連續記憶體區段701及702。記憶體區段70 1由初 始部分PDCIi部分地佔據,而記憶體區段702由初始 部分PDCIi+1&指向該對應補充部分(未顯示)之索引 , L+i佔據。在圖7之實例中,該初始部分PDCIi實際 上包括整個經壓縮之頁面資料PDCIi且甚至在區段 701之末端留出一些未使用之空間703,乃因將隨後 之初始部分卩0(:11+1排列至隨後區段702之開始。 -小得足以置入已配置給其他對PDCS之區段的未使 127847.doc -38 - 200839515 用空間之補充部分(pDCS)可放置於此未使用之空間 (例如圖6中之未使用空間605及606)中。 注意,上述實施例係主要參考快閃記憶體進行說明。然 而,應瞭解,本文所述方法亦可結合其他類型之記憶體來 • 實靶,包括可以更小單元(例如按位元組(byte-wise)或甚至 _ 按位元(bitwise))寫入之記憶體類型。此外,本文所述方法 亦可結合其他儲存媒體應用,諸如光碟、硬碟、軟碟、磁 (' 帶及/或其他類型之磁性或光學儲存媒體。舉例而言,本 ,料方法亦可應用於其他敌入式系、统或電腦之更新,該 等嵌入式系統或電腦在執行程式之前將程式自一第二記憶 體/儲存媒體載入至RAM。 類似地,已主要地結合將軟體載入至一處理裝置之 中來說明本發明。然而,應瞭解,本文所述之方法、裝 置、系統及產品構件亦可結合其他類型之資料(例如常數 資料)應用。 G 本發明可藉助包括數個相異元件之硬體及一經合適程式 化之電腦來實施。在列舉數個構件之裝置請求項中,可藉 丨硬體(例如—經合適程式化之微處理器或電腦)之一個且 同一物項及/或本文所述之一個或多個通信介面體現該等 • 構件。在彼此不同附屬請求項内引用或在不同實施例中闊 述特定方法之單純事實並不表示不能有利地使用此 之組合。 應強調,術語包括(comprises/comprising)在用於此說明 書中時旨在指定所述特徵、整數、步驟或組件之存在 127847.doc -39- 200839515 不排除-個或多個 之存在或添加。 4 寺欲、整數、步驟、組件或其組群 【圖式簡單說明】 參照圖式根據上文中 他態樣,其中: 斤述之實施例明瞭及闡明上述及其 圖1示意性地顯示_奉# + + 1 -行動終端機等處理二:之:塊圖,該系統用於為諸如 產生之影像儲存於該處理裝f體影像及用於將該所 性地顯示—處理裝置(例如-行動終端機)之- 只施例之方塊圖。 啊 圖3顯示用於處理儲存於一處理 之資料之-處理程序之流程圖。、-術子媒體中 圖4圖解說明一處理裝置之一 局之一實例。 ·子媒體之一記憶體佈 體载入至該處理裝置 之主記 C, 圖5顯示將資料自副儲存媒 憶體之方法流程圖。 之補充部分之佈局 圖6及7圖解說明不同壓縮頁面資料項 的實例。 、 【主要元件符號說明】 100 系統 101 處理裝置 102 軟體散佈系統 103 通信介面 104 介面電路 127847.doc 200839515 105 處理單元 106 資料庫 210 通信組件 211 CPU 212 主記憶體 213 副儲存媒體 214 記憶體管理單元 215 解壓縮塊 217 映射塊 400 虛擬位址空間範圍 401 連續頁面 403 壓縮貧料項 410 區段 411 索引資料項 701 記憶體區段 702 記憶體區段 601 區段 602 區段 603 區段 604 區段 605 未使用之記憶體空隙 127847.doc -41 -

Claims (1)

  1. 200839515 十、申請專利範圍: 1· 一種處理供儲奸-儲存媒體中之資料之方法, 媒體耦合至一處理單元,該處理 :子 平70經凋適用於存取作 為-個或多個記憶體資料頁面儲存於該儲存媒體中之資 料,每一記憶體頁面均具有一預定頁面大小_ 記憶體頁面位址,該方法包括: Μ之 -獲得-個或多個麼縮資料項’每一壓縮資料項均包括 對應於非壓縮資料之一相應記憶體頁面之麼縮資料; •有大於一預定大小之一壓縮資料項大小之該一個 或夕個壓縮資料項中之每-者均劃分成一初始部分及 一補充部分; -將每-初始部分連同一相應之索5,資料項配置於盘該 對應記憶體頁面相關聯之-相應第_記憶體位置處. -確定用於該一個或多個補充部分中之每一者之相應第 j記憶體位置’以至少近似最大程度地減小每m 口p刀至少部分地佔據之區段之數量; -補充部分配置於在該所確定之相應第二記憶體 :處,其中每-索引資料項均指示對應於連同該索 =料項-起配置之該初始部分的該補充部分之該所 確疋之第二記憶體位置。 2·項1之方法’其中該儲存媒體經調適用於在具有 員-區段大小之區段中儲存資料,且其中該初始部分 ::始部分大小’該初始部分大小經選擇以使該初 刀大小及該索引資料項之-大小之和不大於該區段 127847.doc 200839515 大小。 3.:請求項1至2中之任—項之方法,其中該處理單元㈣ =於::虛擬位址資訊存取儲存於該館存術之該 轉痒成該餘存媒趙之_實雜位Γ用於將该虛擬位址資訊 4·:二項3之方法’其中將每一初始部分連同一相應之 貝料項配置於-相應第—記憶體位置處包括:配置
    個或多個初始部分及相應索引資料項作為對應於可由 :處理單元定址之記憶體頁面之一序列次序的一初始部 分貧料項序列,其中該頁面大小大於該等初始部分資料 項之一預定最大大小。 如明求項4之方法,其中該等初始部分資料項係同等大 小 〇 127847.doc 200839515 子集,使得每一對補充部分均佔據該儲存媒體之一連續 區段範圍,該範圍包括一初始區段及一最後區段,且使 得每一對之一第一成員之開始位址與該相應初始區段之 一開始位址對準,且每一對之一第二成員之最終位址與 該相應最終區段之一最終位址對準。 10·如請求項1或2之方法,其進一步包含: -識別區段中被初始部分資料項部分地佔據之未使用記 憶體空間;
    所識別之未使用空間中;
    空間中,貝1 則確定該所識別之未使用空間係用於配置該 所識別之補充部分之該第二記憶體位置。 11·如請求項1或2之方法,其進一步包含: -識別區段中被多個補充部分部分地佔據之未使用記憶 體空間; ^ -確定不同於該所識別之多個補充部分之 個剩餘補充部分小得足以置入該所識別 之成員的至少一 別之未使用空間 中; 若一
    127847.doc 200839515 1 3 ·如請求項1或2之古、土 ^ , 在 3之方法,其中該壓縮資料項係該初始部分 與該補充部分之一串連。 Μ ::求項1或2之方法,其進-纟包括在該等所配置之初 η:分及補充部分被配置至的該等相應記憶體位置處產 生包括該所配置之初始部分及補充部分之記憶體影 像。 15. 如明求項!或2之方法’其進一步包括將該等所配置之初 ,部分及補充部分儲存在該等所配置之初始部分及補充 #刀被配置至的該館存媒體之該等相應記憶體位置處。 16. -種將儲存於一副儲存媒體中之資料載入至一處理裝置 之主纪憶體之方法,該方法包括·· _ ^―虛擬記憶體空間中定址作為資料頁面之該資料, 每一頁面均具有一預定頁面大小,其中該副儲存媒體 上儲存有一個或多個壓縮資料項,每一壓縮資料項均 包括對應於非壓縮資料之一對應記憶體頁面之壓縮資 料,其中該副儲存媒體上儲存有大於一預定大小之每 一壓縮資料項以作為連同一索引資料項一起儲存之— 初始部分及作為儲存於該索引資料項所識別之一記憶 體位置處之-補充部分;其中選擇用於該等補充部^ 之該等相應記憶體位置以便至少近似最大程度地減小 每一補充部分至少部分地佔據之區段數量; -確定對應於欲自該第二記憶體載入至該主記憶體之一 第一記憶體頁面之一壓縮資料項之一初始部分之一實 體位址; 127847.doc -4- 200839515 根據連同該初始部分一起儲左+ 儲存之一索弓I資料項,確定 一補充部分之一實體位址; -解壓縮該初始部分及該補右 _ ^ 4刀以獲得非壓縮資料之 ό亥弟一記憶體頁面。 17 ·如請求項16之方法,直中 ^ . 八μ :存媒體經調適用於將資料 儲存在具有一預定區段大小 邱八& θ + j之£奴中,且其中每一初始 邛分均具有一初始部分大小, μ初始部分大小經選擇以 使该初始部分大小及該索引眘 眾5丨貝枓項之—大小之和不大於 5亥區段大小。 18·如請求項16至17中之任一項 、方法,其進一步包括··接 -曰:欲自該副儲存媒體載入至該主記憶體之記憶體 :内谷之虛擬記憶體位址’·及將該虛擬記憶體空間之 邊虛擬記憶體位址映射至 耵主4儲存媒體之一實體位址。 如請求項16或17之方法,其中確定該初始部分之一實體 位址包括.在-記憶體頁面位址與該第二記憶體之一實 體位址之間應用一線性映射。 2〇· 一種處理裝置,苴句括一考一 一 八括處理早7L及一耦合至該處理單 凡之儲存媒體,該處理單元經調適用於存取作為一個或 多個資料頁面儲存於該儲存媒體中之資料,每一頁面均 -、有預疋頁面大小及一相應之虛擬記憶體位址,該處 —裝置一周適用於已在該儲存媒體中館存遷縮資料項, 每一塵縮資料項均包括對應於㈣縮歸之_對應記憶 體頁面之縮資料;其中該處理裝置經組態已儲存大於 疋大i之母一壓縮資料項作為一相應初始部分及一 127847.doc 200839515 :::分;其中該處理裝置進一步經组態以在該儲存媒 位置虛辟六— 相應弟一記憶體 讀存母—初始部分連同—相應Μ轉項;其中 置進—步經組態以衫用於每—補充部分之一 一己憶體位置,以便至少近似最大程度地減小每 補充部分至少部分地伯據之區段數量,及 存媒體中在該所確定之相應、第:記憶 ^ ⑮一土 f引貝枓項均指示連同該索引資料 記憶體位置。卩“目對應的该補充部分之該第二 21·:請求項20之處理裝置,其中該儲存媒體經調適用於將 資嶋在具有—預定區段大小之區段中,且其= 始部分具有一初始部分大小,兮 μ初始。卩分大小經選擇以 使該初始部分大小及該索引資 該區段大小。 +員《a小之和不大於 / 22. 如睛求項20或21之處理裝罟甘丄 &里展置,其中該儲存媒體係-非揮 發性儲存媒體。 車 23. 如請求項20或21之處理步罟甘丄 ’置其中該儲存媒體係-快閃 吕己憶體。 24·如請求項23之處理裝置,1由 我置其中該快閃記憶體係一 記憶體。 25·如請求項20或21之處理裝置,立 在置其進-步包括-記憶體管 =單元’該記憶體管理單元經調適用於將一虛擬記憶體 空間之頁面映射至該處理裝 戒置之一主記憶體之實體位 127847.doc 200839515 址 26·如請求項20或21之處理裝置,其、 於指示欲自該副儲存媒體载2步終調適用於:基 面内容之虛擬位址資訊,來 2記憶體之記憶體頁 =4:及將'虛擬位址資訊映射至該儲存媒 27.如請求項26之處理裝置,其中該處理襄置 初始部分資料項序列映射至 體之一實 經調適用於將 Γ L ^ ^ ^ ^ ^ 相應之記憶體頁面序 列,其中该頁面大小大於該等初 s 浪7始4分貪料項之一預定 最大大小。 28. —種資料處理系統,其用於產 ^ 包括資料之記憶體影 像供儲存於一耗合至一處理單亓夕冲 处主早70之儲存媒體中,該資料 處理系統經組態以實施如請求項丨或2之方法之步驟。 29. —種電腦程式,其包括經調適用於在由耦合至一儲存媒 體之一處理單元執行時致使該處理單元實施如請求項Μ 或17之方法之步驟的程式碼構件。 30· —種電腦程式產品,其包括經調適用於在由一資料處理 系統執行時致使該資料處理系統實施如請求項1或2之方 法之步驟的程式碼構件。 127847.doc
TW096149576A 2006-12-22 2007-12-21 Storing compressed data TW200839515A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP06388072A EP1939751A1 (en) 2006-12-22 2006-12-22 Storing compressed data

Publications (1)

Publication Number Publication Date
TW200839515A true TW200839515A (en) 2008-10-01

Family

ID=37964076

Family Applications (1)

Application Number Title Priority Date Filing Date
TW096149576A TW200839515A (en) 2006-12-22 2007-12-21 Storing compressed data

Country Status (5)

Country Link
US (1) US8799614B2 (zh)
EP (1) EP1939751A1 (zh)
KR (1) KR20090101183A (zh)
TW (1) TW200839515A (zh)
WO (1) WO2008077523A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI631556B (zh) * 2017-05-05 2018-08-01 英屬開曼群島商捷鼎創新股份有限公司 資料壓縮裝置及其資料壓縮方法

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8490074B2 (en) * 2007-11-27 2013-07-16 The Boeing Company Aircraft software part library
US8930310B2 (en) * 2007-11-27 2015-01-06 The Boeing Company Proxy server for distributing aircraft software parts
US9208308B2 (en) 2007-11-27 2015-12-08 The Boeing Company Alternate parts signature list file
US20090138873A1 (en) * 2007-11-27 2009-05-28 The Boeing Company Method and Apparatus for Loadable Aircraft Software Parts Distribution
US8442751B2 (en) * 2007-11-27 2013-05-14 The Boeing Company Onboard electronic distribution system
US9772936B2 (en) 2008-07-10 2017-09-26 Micron Technology, Inc. Data collection and compression in a solid state storage device
FR2939534B1 (fr) * 2008-12-08 2012-07-06 St Nxp Wireless France Procede et dispositif de chiffrement et de dechiffrement de donnees numeriques.
EP2200029A1 (en) * 2008-12-22 2010-06-23 ST-NXP Wireless France Method and device for storing and transferring paged data, in particular paged code in a virtual memory mechanism
CN102209953B (zh) * 2009-01-30 2014-04-30 株式会社日立制作所 压缩和存储数据元素的存储系统和存储控制方法
US8326893B2 (en) * 2009-02-24 2012-12-04 International Business Machines Corporation Allocating data sets to a container data set
US8180981B2 (en) * 2009-05-15 2012-05-15 Oracle America, Inc. Cache coherent support for flash in a memory hierarchy
US9582431B2 (en) * 2010-03-22 2017-02-28 Seagate Technology Llc Storage address space to NVM address, span, and length mapping/converting
US8311551B1 (en) * 2010-04-09 2012-11-13 Sprint Spectrum L.P. System and method for adaptive route updating for access terminals based on mobility and channel loading
US8351938B1 (en) 2010-04-09 2013-01-08 Sprint Spectrum L.P. System and method for dynamic route-update-radius parameters
US10102687B1 (en) 2010-08-17 2018-10-16 The Boeing Company Information management system for ground vehicles
CN103329112B (zh) * 2010-10-22 2015-12-16 意法爱立信有限公司 用于减少页面错误发生时压缩页面加载时间的方法和装置
US8996842B2 (en) * 2010-12-09 2015-03-31 Seagate Technology Llc Memory stacks management
US8880839B2 (en) 2011-04-14 2014-11-04 International Business Machines Corporation Writing adjacent tracks to a stride, based on a comparison of a destaging of tracks to a defragmentation of the stride
US8838890B2 (en) 2011-04-14 2014-09-16 International Business Machines Corporation Stride based free space management on compressed volumes
WO2012169124A1 (ja) * 2011-06-10 2012-12-13 パナソニック株式会社 配置決定装置、配置決定方法、データ構造、メモリ、アクセス装置及びメモリアクセス方法
US9378560B2 (en) * 2011-06-17 2016-06-28 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
US9471584B2 (en) * 2011-08-15 2016-10-18 Spreadtrum Communications (Shanghai) Co., Ltd. Demand paging method for mobile terminal, controller and mobile terminal
KR20130027253A (ko) * 2011-09-07 2013-03-15 삼성전자주식회사 데이터의 압축 방법
US9495288B2 (en) 2013-01-22 2016-11-15 Seagate Technology Llc Variable-size flash translation layer
US9705532B2 (en) * 2013-03-15 2017-07-11 Arris Enterprises Llc Parallel low-density parity check (LDPC) accumulation
US9575982B1 (en) * 2013-04-29 2017-02-21 Amazon Technologies, Inc. Size targeted database I/O compression
US9237022B2 (en) 2013-05-07 2016-01-12 The Boeing Company Use of multiple digital signatures and quorum rules to verify aircraft information
US9160543B2 (en) 2013-05-07 2015-10-13 The Boeing Company Verification of aircraft information in response to compromised digital certificate
JP5978259B2 (ja) * 2013-08-16 2016-08-24 エルエスアイ コーポレーション 順次読み出し最適化可変サイズフラッシュトランスレーションレイヤ
US9478000B2 (en) * 2013-09-27 2016-10-25 Intel Corporation Sharing non-page aligned memory
BR112017013618A2 (pt) 2014-12-23 2018-06-19 Pogotec Inc câmeras, sistemas e métodos para receber energia sem fio
EP3067795A1 (en) * 2015-03-10 2016-09-14 Gemalto Sa A method for generating an embedded system derivable into a plurality of personalized embedded system
US10341787B2 (en) 2015-10-29 2019-07-02 PogoTec, Inc. Hearing aid adapted for wireless power reception
US11558538B2 (en) 2016-03-18 2023-01-17 Opkix, Inc. Portable camera system
US20180115691A1 (en) * 2016-10-21 2018-04-26 PogoTec, Inc. Architecture for and camera devoid of viewfinder
US10365828B1 (en) * 2018-04-30 2019-07-30 EMC IP Holding Company LLC Techniques for efficiently organizing storage of compressed extents
KR20200014964A (ko) * 2018-08-02 2020-02-12 삼성전자주식회사 버츄얼 메모리 영역을 제공하는 스토리지 장치, 이를 포함하는 전자 시스템 및 전자 시스템의 동작 방법
US11300857B2 (en) 2018-11-13 2022-04-12 Opkix, Inc. Wearable mounts for portable camera

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5459850A (en) * 1993-02-19 1995-10-17 Conner Peripherals, Inc. Flash solid state drive that emulates a disk drive and stores variable length and fixed lenth data blocks
US6349375B1 (en) 1994-02-02 2002-02-19 Compaq Computer Corporation Compression of data in read only storage and embedded systems
US5666114A (en) * 1994-11-22 1997-09-09 International Business Machines Corporation Method and means for managing linear mapped address spaces storing compressed data at the storage subsystem control unit or device level
US5696927A (en) * 1995-12-21 1997-12-09 Advanced Micro Devices, Inc. Memory paging system and method including compressed page mapping hierarchy
US6332172B1 (en) 1998-05-29 2001-12-18 Cisco Technology, Inc. Method and system for virtual memory compression in an embedded system
US7565665B2 (en) * 1998-09-09 2009-07-21 Microsoft Corporation Efficient linking and loading for late binding and platform retargeting
US6643754B1 (en) * 2000-02-15 2003-11-04 International Business Machines Corporation System and method for dynamically allocating computer memory
ES2487890T3 (es) 2004-10-07 2014-08-25 Optis Wireless Technology, Llc Determinación de tamaños de tramas de memoria para la asignación dinámica de memoria limitando la fragmentación interna
US7984084B2 (en) * 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI631556B (zh) * 2017-05-05 2018-08-01 英屬開曼群島商捷鼎創新股份有限公司 資料壓縮裝置及其資料壓縮方法

Also Published As

Publication number Publication date
EP1939751A1 (en) 2008-07-02
US20100017578A1 (en) 2010-01-21
US8799614B2 (en) 2014-08-05
WO2008077523A1 (en) 2008-07-03
KR20090101183A (ko) 2009-09-24

Similar Documents

Publication Publication Date Title
TW200839515A (en) Storing compressed data
JP6265746B2 (ja) 記憶アドレス空間と不揮発性メモリのアドレス、範囲、および長さとの間のマッピング/変換
JP6387231B2 (ja) 不揮発性メモリへの書き込みの管理および領域選択
JP6045567B2 (ja) 不揮発性記憶のための可変オーバープロビジョニング
US9760502B2 (en) Encrypted transport solid-state disk controller
US9851910B2 (en) Scalable data structures for control and management of non-volatile storage
US8812816B2 (en) Garbage collection schemes for index block
KR101930092B1 (ko) 데이터 이용가능성의 마운트타임 조정
TWI234113B (en) Accessing file data stored in non-volatile re-programmable semiconductor memories
JP2013137770A (ja) Lbaビットマップの使用
JP2014507717A (ja) より高いレベルの冗長な情報の計算
US20200225882A1 (en) System and method for compaction-less key-value store for improving storage capacity, write amplification, and i/o performance
US20200241794A1 (en) Low latency swap device, system and method
US11842082B2 (en) Storage device including a plurality of zones having separate compression ratios and operating method thereof
US11875036B2 (en) Computing system including host and storage system and having increased write performance
TWI777720B (zh) 用來藉助於裝置側表資訊而在主機效能增幅器架構中進行記憶裝置的存取管理的方法及設備
KR20200053052A (ko) 스토리지 장치 및 스토리지 장치로 전송되는 데이터를 관리하는 전자 장치
US20190213122A1 (en) Method of operating data storage device and method of operating data processing system including the same
US20090313396A1 (en) System, controller and method thereof for transmitting and distributing data stream
US7624224B1 (en) System and method for directly executing code from block-based memory