TW200401202A - Direct addressed shared compressed memory system - Google Patents
Direct addressed shared compressed memory system Download PDFInfo
- Publication number
- TW200401202A TW200401202A TW092112810A TW92112810A TW200401202A TW 200401202 A TW200401202 A TW 200401202A TW 092112810 A TW092112810 A TW 092112810A TW 92112810 A TW92112810 A TW 92112810A TW 200401202 A TW200401202 A TW 200401202A
- Authority
- TW
- Taiwan
- Prior art keywords
- host
- memory
- register
- scope
- value
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
200401202 五'發明說明(1) 一、【發明所屬之技術領域】 本::係關於一種電腦架構,並且特別關於一種網路 J接”置,使得多個主機分享—記憶體段(““ο。集 ^其中記憶體段係用來儲存。此裝置以下被稱 2 直接疋址分旱壓縮記憶體系統(Direct Addressed
Shared Compressed Mem〇ry System)」,並簡寫為^⑽。 鲁 本發明包括轉譯(translate)由主機產生之實位址 address)為被SCMSf理之實位址,接著scms的實位 址再轉成壓縮記憶體管理系統之實體位址(physicai address)。本發明包括供確保記憶體内容保護之方法. =包括在複數個主機間分享記憶體内容之㈣;本發明 二m之實位址空間之一連續部份,分佈在多個 特數,明亦包括一方*,供確保每-主機能夠提供 一特疋數目之記憶體段。 二、【先前技術】 2電腦系統主記憶體使用資料壓縮,是—種新興的發 展。貫§己憶體(real memory),即對應到儲存在記憶^ 料^處理器位址(pr〇cess〇r address)之集合,一般會二 為複數個成對不相交(p a i r w i s e d i s j 〇 i n t)的區段 (segment),以對應一定數目的連續處理器位址。藉由 不相交’即意味著每個實位址係對應至—且 — 仨)1_ ·*-±* ^Lj_ I~~犬貝 Ϊρ〇 •k。这二區段在此稱為記憶體線(memory Hnes)。記憶體
第7頁 200401202 五、發明說明(2) 線為壓縮的基本單位。存在壓縮記憶體中的記憶體線係經 過壓縮,並且儲存於一變動數目的記憶體位置中,至於數 目的大小則由其内容壓縮的程度決定。國際商業機器公司 (I Β Μ)具有若干有關電腦系統之主記憶體壓縮的專利。這類 系統的例子揭露於美國專利US5, 72 9, 228,標題為「使用合, 作目錄所進行的平行壓縮/解壓縮(Parallel compression and decompression using a cooperative diet ionary)」;美國專利US 5, 76 1 , 53 6,標題為「基於一 最佳合適基礎,藉由指定餘數給分享記憶體區塊以降低記 憶體零散破裂配置的系統與方法(S y s t e m a n d m e t h 〇 d f 〇 r _ reducing memory fragmentation by assigning remainders to share memory blocks on a best fit basis)」;以及美國專利US5, 864, 859,標題為「使用儲存 定址以進行壓縮與解壓縮的系統與方法(System and method of compression and decompression using store addressing)」° 第1圖例示一範例系統,此系統具有此資料壓縮特徵。 在第1圖中,中央處理单元(CPU)102從一或多個快取 (c a c h e ) 1 0 4讀取資料以及將資料寫入到這些快取1 〇 4。當快 取未中(c a c h e m i s s)或欲將快取資料進行儲存時,將導致 從壓縮主記憶體11 0讀取資料’或將資料寫入壓縮主記憶體 11 0,而這些讀取與寫入係透過壓縮控制器1 〇 6所提供的機 制以達成。壓縮主記憶體11 0分割成兩個部分:資料部分
200401202 五、發明說明(3) 108及目錄1〇7(也可視為壓縮變換表(c〇mpressi〇n translation table),簡寫為CTT)。資料部分1〇8則分割為 成對不相交之段,亦即,實體記憶體位置的固定尺寸區 間。舉例來說,一段可能由256個實體位元組(byte)構成, 而此2 5 6個實體位元組具有連續實體位址。壓縮記憶體線之· 内容則盡可能存於最小數目的實體段中。包含壓縮線的實 體4又不需要具有連續貫體位址,且可被安置在壓縮主記憶 體110之資料部分108的任意位置。對於一位元組的實位址 與包含此位元組的實體段位址之間的轉譯’係經由目錄或 壓縮變換表1 〇 7以達成。 1 第2圖包含進一步細節,以供更深入了解壓縮記憶體 2 1 〇的操作。處理器快取2 4 0包含未壓縮快取線2 41及快取目 錄2 42,其儲存每一快取線的實位址。為了說明,以下將假 °又丨夬取線具有與一记憶體線(壓縮的單元)相同之大小。 在快取未中資料時’快取提供造成快取未中的實位址27〇, 以向5己憶體的相對線要求資料。實位址切分為兩個部分: 第—部份係l〇g2(線長)個最低有效(least signif icant)位 凡’亦即自線中的位址之偏移值,其中丨〇g2是以2為基底的 對數’第二部分,亦即剩餘的位元,則作為目錄2 2 〇的索引 (i n d e X )’其包含對於支援實位址範圍之每一線之線項目。 在第2圖中,位址A1 (271)對應線項目} (221),位址A2( 2 72 ) 對應線項目2 ( 222 ),位址A3( 273 )對應線項目3(513),並且 位址A 4 ( 2 7 4 )則對應線項目4 ( 5 1 4 )。在此例子中使用不同的
第9頁 200401202 五、發明說明(4) 位址,以顯示在壓縮主記憶體中儲存壓縮資料的不同方 法。在此例中,具有位址A1的線壓縮地非常好(舉例來說, 此線包含所有的0 )。此種線係整個存於C c τ項目2 2 1中,且 並不需要記憶體段。在位址A 2的線則壓縮較差,並且需要 兩個記憶體段231及232,其存於資料區(data section)
2 3 0。線項目2 2 2包含指標指向記憶體段2 31及2 3 2。注意記 fe體段2 3 2的最後一部份未被使用到。具有位址a 3的線需要 3個記憶體段2 3 3、2 3 4、及2 3 5。在段2 3 5剩餘的空間足夠 大’以儲存具有實位址A4的壓縮線之一部份,此實位址八4 輪流使用段236及段235的一部份。在位址A4及…的線稱作 同室者(roommate) ° β 當快取中的髒線(dlrty 1 ines)寫回到記憶體時,使用 壓'兔目盗2 6 1。在快取寫回時,髒線被壓縮。假如辦線可符人 寫回之前所使用的記憶體數量時,則其直接存放在原處/ 否則’其被寫入適當數目的段中。假如要求的段數目減少 時’未使用的段就加入自由段列表(free —sect〇r Hst)。 假如要求段數目增加時’它們則從自由區段列表中讀取。 第3圖顯示目錄或壓縮變換表2 2 0中項目可能的組織方 式。在此例示三種線組織。項目1 ( 306 )包含一旗標集合(a set of flags) (301),以及四個段的位址。假如線的大/ 為1 〇 2 4位元組,並且記憶體段大小為2 5 6,則線需要最多 個段。項目2 ( 3 0 7 )包含一旗標集合、線使用之第一段值
200401202
址、壓縮線的開始’與線使用的最後-段的位址。假如線 需要超過兩個記憶體段,則此些段藉由一連結的指標表列 而連結(亦即,每一記憶體段包含下一記憶體段之位址)。 ^目3匕3旗私集合,以及一高密度壓縮線,且此壓縮線 壓細至1 2 0位元或更少。在此例子中的旗標可為旗標⑽2, 辨哉=否線以壓縮格式存放或未壓縮;旗標3 〇 3辨識是否線 為可同饴度壓縮與是否整個存於目錄項目;旗標3〇4(2位 =)辨&識線使用了多少的段;以及項目3 〇 5 (4位元)包含破碎 離政資Λ( f ragment i nf orma t i on),亦即線所佔用了最後
一個被使用段之多少部分(此資訊用來供同室者使用)。系 統中依賴上述之壓縮記憶體結構,可達成的最大壓縮比係 有賴於目錄的大小決定,亦即,實位址的最大數目等於目 錄中的目錄項目之數目。 在相關領域中’已提出用來分割(partiH〇ning) 一未 壓縮記憶體的方法,舉例來說,美國專利U s 4,5 6 4,9 〇 3,標 題「分割多處理器程式系統(Parti ti〇ned multipr〇cessQr programming system)」。此專利提出一控制方法,以提供 具有多個中央處理單元之多處理器(multiprocess〇r,up) 系統分享一主要儲存裝置(main storage,MS)及輸出/輪入 (I /0)處理機制’以將複數個輸出/輸入裝置連接到主要儲 存裝置,此控制方法使得多處理器系統可以使其上的多個 中央處理單元’同時執行一單一處理器程式系統 (Uniprocessor programming system, UPS),即使此單—
頁 200401202 五、發明說明(6) ίΪΪΪί系,僅針對單-處理器系統設計,且也只能在 ^ 夕地理态系統相同或不同架構之單一處理器系統中 拽哭έ M t 出I置與方法,供適用於包含在多處 π系為中的非壓縮記憶體。然而, 統r裝置與方法’此產縮記憶體系統】:多ί d二;上“ ,亚且也非供多個不同電腦系統分享, w整鈿記憶體也非屬於任何電腦系統的一部份。 在美國專利U S 4,8 4 3 5 4 1 ,择日音r -欠少丨$ I田4 資源分割“〇gical e 碭貧料處理糸統的邏輯 ogicai resource partitioning of a data
Processing systein)」中,此專利提出一種方法, 資源限制為此系統配仏ί 2 gUeSt、〇Peratl〇n)可利用的 包括-或多個id:;各(⑽”的資源。系統的資源 戶、τ夹處理早兀,一系統主儲存裝置,一選 擇性糸統擴充儲存裝置(extended storage,ES),以;5满 數個輸出/輸入通道,苴使 仏 輸出/ #人驻# 、+ /、使用稷數個輸出/輸入處理器以將 別、置,透過複數個輸出/輪入裝置控制單元連接 h 以及一包含敕體的主機超級使用者(host ’ μ主機*監視管理(SUPerViSe)複數個軟體控制 Λ 個軟體同時及獨立地在系統中運作, / °為同一或不同型態之控制程式,副通道 = iCHS) ’供向輸出/輸入裝置指出此主機及此 ;二母一…]限制只能存取給定之系統資源的子集合 刀品partition))。然而,此專利未提出如何在不同主機
第12頁 200401202 五、發明說明(7) 間分享一網路連接之壓縮記憶體。 在習知技術中的分區包含,透過在電腦上執行的 凡件將所見到之實位址轉譯為被電腦所管理的實位址。= 些軟體元件可在同一或多個作業系統中有多個=版 化 (image),因此它們可以執行邏輯_到_真實卜 rea 1)的位址轉譯。分區將這些軟體元件所產生 硯為邏輯位址,並且執行進一步的邏輯—到、直麻、 J。假如硬體不支援記憶體壓縮,實位址與實:位 =的。然而,假如記憶體經過壓'缩,實位址則不會等於: 體位址,並且需要進一步的轉譯。傳统八 '灵 保護機制,使得在-特定分區内所執行之;欠:方:也包括 取在其他分區内所執行之軟體元件的記憶體内=。避免存 然而,習知技術所教示的分區未提 ,離的裝置t,如何分享記憶體資源』系统 其中使用資料的軟體元件就是在此電腦系統中 機制, 分享與安全機制並未被電腦系統控制,所以 I 因此 腦系統來說,上述問題是顯而易見的。 、;廷類的電
三、【發明内容】 網路連接,I , 、疋银而本發 置連接到此網路 ,以及在壓縮格式
在電腦系統中,複數個主機經由一 明係提供網路連結裝置,此網路連結裝 並提供擴充主機的邏輯實記憶體的功能 200401202 五、發明說明(8) 中維持它們記憶體的内容。本發明之此網路連接裝置係一 直接疋址分旱壓縮s己憶體系統(Shared Compressed Memory Sy s tem,以下簡稱SCMS)。SCMS將其内部實記憶體空間分割 為相鄰的貫位址區,稱為區段(s e g m e n t),並且它們的實體 5己憶體(physical memory)被分割成由相鄰的實體位址區的 共用區(common pool),稱為段(sect〇r)。主機能夠從這些 農置为配區!又,並且如同對它們内部記憶體定址的方式, 對這些區段之内容加以定址(address),亦即,透過一實位 址為之。SCMS將主機所提供的記憶體位址轉譯成内部實位 址。此係藉由上述壓縮記憶體目錄(CTT),轉譯到段的實體 位址而達成,而壓縮資料就是存在這些段的實體位址。區 段則動態關聯對照於實體段數目之變化值。當在區段内 資料之可壓縮性降低時,關聯區段的實體段之數目將增 加,反之亦然。本發明特別提供裝置與方法,供管理^共 用區(common pool)的實體段,完成對記憶體區段的指定、, 而這是在不支援記憶體壓縮的裝置中無法達到的, 一般支援記憶體壓縮的電腦無法完成的。 疋
依據本發明之一實施例,在一電腦系统 ::由-交互連接網路連接’一裝置: 網路’以提供此複數個主機分享一記憶體段集合 體段集合由複屬個記憶體段所組成,而 ° 供儲存壓縮資料。此裝置包括一網路卡, 5己憶體 交互連接網路;亦包括一記憶體供存放此:憶
200401202 五'發明說明(9) 亦包括控制邏輯,供管理此記憶體,此 憶體壓縮器/解壓縮器。此弟J璉輯包括-記 少-主機之實位址為此裝置二一,^
矩陣在二=輯更包括-暫存II :之;:不同的區段號碼,11此,經由至少3 到偏二的特定暫存器之内容與所需之區段連接 偏私值(〇ffset),以產生此裝置的實位址。 連接 列在f λ轭例中,此裝置的控制邏輯包括一暫;& _ 列,此陣列包括複數個暫存哭, ^括暫存盗陣 , 臀存為對於每一支援主機包含一彷士 # 拒絕存取此區段。 、、 。、主機將被 相聯ΐΐΓ = :實施例[此裝置的控制邏輯包括- 杆i i1 相聯記憶體具有第一行與第二行,此第一 1有稷數個鍵值(key),此第二行含有複數個數值 所11、其中此複數個鍵值為此複數個主機對於需求區段 …複數個數值為此裝置的起始實 精由上述之至少一主機之—搜尋鍵(search key)所 200401202 五、發明說明(10) 決定之一數值連接到此偏移值’以產生此裝置的實位址 一依據另一實施例,提供一電腦系統,此電腦 一經由一交互連接網路連接的主機;以及递* '、、,,匕括 晨置包括一記憶體段集合,此記憶體 母 t版奴所组成,此複數個裝置連接於此交互連接 】 谷許此複數個主機在此複數個裝置間,八古μ 人 :二中此稷數個記憶體段供儲存壓縮資料。主機實位址 的-連續子集合分佈在此複數個裝置上。 拭貝位址 在 主機經 路之裝 憶體段 段供存 主機所 一主機 本發明之另一實 由一交 置,以 集合由 放壓縮 使用之 之最大 器’供存放分 至少一主機一 數個段 暫存器 限暫存 :並且 之值, 器之值 互連接網 容許複數 複數個記 資料。並 複數個記 數目之段 配給此至 計數暫存 比較此至 以決定是 施例中 路連接 個主機 憶體段 且,亦 憶體段 5在一 ,包括 分享一 所組成 提供一 ◊此方 :分配給至少 少一主機之最 器,供儲存此 少一主機的定 否此計數暫存 電腦系 一連接 記憶體 ’而此 種方法 統中, 到交互 段集合 複數個 ,供管 複數個 連接網 ,此記 記憶體 理每一 法包括決定分配給每 一主機一定限暫存 分配給 用之複 與計數 渦此定 大數目 至少一 限暫存 器之值 之段; 主機使 器之值 已經超 此方法更包# ’假如此計數暫存器之值已經超過此定
第16頁 200401202
限暫存器之值, 一此複數個主機 、返> 免至J/ 一主機之寫入操作,並通知每 ,此寫入操作為無效。 依據本發明 主機經由一交互 置,此裝置與此 一記憶體段集合 成,此複數個記 以供將每一主機 方法包括由此至 此裝置之一需求 此裝置的資料持 決定一第一數值 產生此裝置之實 •^另 — 連接網 交互連 ’此記 憶體段 指定之 一… 實位址 有位置 ;以及 位址。 貫施例 路連結 結網路 憶體段 供存放 實位址 機使用 ;使用 ;使用 將此第 ’在一電腦 ’此交互連 輕接以供此 集合由複數 壓縮資料, 轉譯為此裝 系統中 接網路 複數個 個記憶 —種方 置之實 實位址 實位址 ,複數個 包含一裝 主機分孕 體段所組 法被提出 位置。此 ,以要求 ’以辨識 位置的内容,以 數值接續到一偏移值,以 一主機指定 此主機指定 此資料持有
四、【實施方式】 本电明之杈佳貫施例的描述,係假設網路系統為—分 頁(paged)作業系統,例如Wirid〇ws95、wind(3ws98、
WindowsNT、Wind〇ws2000、Linux、Αΐχ 及所有其他版本的 UNIX、MacOS、IBM OS/400等等。習知技藝者當能清楚理 解,本發明亦可實作於非分頁型作業系統。 在分頁作業系統中,「虛擬位址空間(virtual address space)」,亦即由一程式可定址的位址集合,被
第17頁 200401202 五、發明說明(12) '一-' 一 一 切分為頁’而頁為連續虛擬位址的集合且具有固定長度。 一般來說’一頁包含4 κ B。程式的虛擬位址空間可能比可獲 得的實體記憶體來得大。作業系統提供功能集合以支援此 種技術特彳玫’而這些功能集合通稱為「虛擬記憶體管理員 (virtual memory manager)」。為了支援比實體記憶體更 大的虛擬記憶體空間’虛擬記憶體管理員在記憶體及在硬 碟等第二級儲存裝置(tertiary store)中,存放虛擬頁。 當一虛擬頁被存取,而此虛擬頁不在主記憶體申時,則從 磁碟(頁内操作(page-in operati〇n))中讀取此虛擬頁。假 如沒有貫體空間(physical space)供從磁碟讀取此頁時, 則另一虛擬頁就被寫入磁碟(頁外操作(page_〇u1: operation)),並且釋放其原先佔據的空間。當一虛擬頁被 從磁碟讀入,此虛擬頁被指定一起始實位址(亦即,從處理 器所見到的位址)。實記憶體(此處理器的位址空間)則被分 割為連續及成對不相交實位址區之集合,其具有與邏輯頁 相同的大小。這些稱為「頁框(page frame)」。因此,當 一邏輯頁被從記憶體讀取時,此邏輯頁被儲存在頁框中: 在邏輯頁及真實頁間的轉譯有賴於分割頁的目錄結構,稱 為「頁表(page table)」。每一邏輯頁在一頁表中具有單 一項’稱為「頁表項(page table entry)」,其可能包人 該頁框的起始實位址’其中該頁框包含該頁,而假如^ ^ 頁係存放在第三級儲存裝置時,頁表項亦可能包含磁碟 位置。自由頁框(f ree page frame )透過一個別的資料妹 將以管理’此資料結構(在W i n d 〇 w s N T及2 0 0 0 )稱為百4「構 π只框號
200401202 五、發明說明(13) 碼資料庫(page frame number database) ° 第4圖顯示具有本發明特徵之網路架構。複數個電腦主 機401連接到一SCMS 403,而此SCMS 403透過一交互連接網 路4 0 2以支援記憶體壓縮。其中,電腦主機4 〇 1可為個人電 腦、工作站、對稱多處理器機器(S y m m e t r i c Multiprocessor, SMP)、非單一記憶體存取機器(non-uniform memory access machines,NUMA)、純快取機器 (Cache-only machine, COMA)、儲存伺服器,或SP 節點(SP nodes)等等 ° SCMS 403支援記憶體壓縮,並且提供電腦主機4〇1分享 一自由記憶體段集合’其中包含記憶體壓縮/解壓縮,在實 位址與實體位址間進行轉譯,提供保護(亦即,避免—主機 存取分配給其他主機的記憶體段),負載平衡,效能分離 (performance isolation)(亦即,將主機4〇1對於其他主機 的影響降到最低)等等。 第5圖顯示SCMS 403的基本架構。SCMS 403包括裝置集 合501及記憶體502。裝置集合501包括網路卡5〇3、管理記 憶體502的控制邏輯504、及第三級儲存裝置5〇5 ^管理記憶 體的控制邏輯504更包含記憶體壓縮器/解壓縮器、暫存 器、包含目錄或壓縮變換表(CTT)項目的快取、定址電路、 從記憶體的讀取及寫入、緩衝區等等。第三級儲存骏置5〇5
第19頁 200401202
包括唯讀記憶體(ROM)、雷轻々儿“ ± μ扣卜土上 ” 4 ^式化唯讀記憶體(EPROM)、快 π己t思卡’及硬碟。在幸交朴皆η丄 十夕加 ,_ 竿又1土貫施例中,SCMS 403也與一個 或多個主機4〇1分享一個或多個硬碟機。 η ί述1 ^體…邏輯上分為記憶體目錄區域5Q6(也被 :緣,變換bcjT)、„直接亀域5〇7(舉例來說, 以目對—暫存益的偏差值予以計算)、-未壓縮區 i 以及一記憶體段池(a po〇1 〇f mem〇ry sect〇rs) η, 1本發明之精神,每一個這些區域不需要展開成位 ^ e dress range),但也能展開成多個位址範圍,在 ^ 之例子中’每一此類區域也可認為由複數個區域組 成0 在車乂 ^貝施例中,SCMS 403以主機401的實記憶體空間 的延β伸方、式進行操作。更精確地來說,主機4(Π可指示scms 4 0 3提供貧位址之範圍。當主機4〇1需要存取(讀或寫)在實 位^的^圍内之記憶體位置時,主機40 1要求SCMS 403進行 所而j作。在較佳實施例中,為了使3(^$的硬體複雜性保 持在δ里的|&圍’記憶體$ 〇 2可服務到η個不同的主機。對 於想&要使用SCMS的主機,如果SCMS目前服務的主機數目少 於Η台’則將自己登錄到SCMS,且SCMS分配給該主機一唯一 識別碼’舉例來說’介於0到Η- 1,並且登錄程序因此而完 成0
第20頁 200401202 五、發明說明(15) 在較佳實施例中,主機401可在SCMS中,以一預定的基 本單位(granularity)分配實記憶體範圍,而此處的基本單 位即包含連續實位址之固定數目,在此將簡稱為區段。區 段大小用L代表,並且SCMS所支援的區段之數目則用s代 表°舉例來說,在支援32Gb實記憶體的SCMS中,H=16而L = 1 Gb。在此例中,SCMS所提供的實記憶體空間切分為32區 段,且每一主機401可以分配1到1 7區段(此時,剩下的η—;!
個主機僅僅使用一區段)。在一實施例中,sCMS限制區段數 目’使得單一主機可分配到最大為N的區段,以避免一主機 因為使用過多資源而影響到其他的主機。舉例來 SCMS 可限制主機使用的區段數目為8。假如尚有區段的話,並且 主機尚未用到區段之限制,則主機可向SCMS要求區段,而 SCMS也會配給此主機所要求之區段。主機也可以釋放區 k,而釋放之區段可加入一自由區段池。 在較佳實施例中 主機分配一記憶體區段時 =知士機對應的實位址範圍。在此實:例中二假設相 名&#I =疋u址,位址的1〇§2(Η)個最大位元為主機識別碼
丨/ / = 16,則前4個最大位元為主機識別碼。接下 而l〇g2(L):,凡(在此例中為3)辨識包含此位址的區段, 辨識…偏移值。此種方法無彳 其他場合,兴::列為7)的龐大數目。上述方法也可用名 獲得相同的^ 假如主機4〇1向多個則$登錄,並 獲行相以碼。在這樣的情形巾
200401202 五、發明說明(16) 用來區別不同SCMS所分配的區段,以下將對此提供說明 如上所述’在支援記憶體壓縮的系統中,實位址與實 體位址(physical address)之間的轉譯須依賴稱作CTT的目 錄。依據本發明之精神,SCMS CTT 50 6分割成連續部分, 每一部份用來進行一個區段的實-到—實體(real t〇
Physical )的轉譯。連續部分的數目因此等於S(:MS所管理合 最大數目之區段,並且每一連續部分的大小足以使其包含 能夠定址一區段的CTT項之數目。在較佳實施例令,^ττ的 ^小係由初始載入程式Program Load’ IPL)所访 ^糾亦H機器開機時)。舉例來說,假如SCMS包含16Gb的 !=CTT將Λν麦32Gb的實記憶體,並且壓縮的單位為 IJCTT將“ 32x22。個項目,並分為 其中母-部份包含22。項,以對應到每一個不同二:: 尽發明之 的實俨弋严髀μ s1為需要可供控制每—主機能使用多 :2。己L體的硬體及/或軟體 記憶體壓縮之一般雷聰^ ^ 行倣無法見於戈
或:不支援記憶體I縮 力二-置 一主機要求—问必 · u饤做诉拖述於弟6圖。 複數個實體段可;為^主^也可要求複數個實體段,而] 段。假如ί = 留給區段之保證數量之實, 接受。 〜數目未超過段的總數目,則要求就,
第22頁 200401202
200401202 五、發明說明(18) 號給主機。此可避免從主機,如主機〇 ,進行之接續寫入操 作’直到使用段數目降到此定限值以下才繼續進行。此 外’不管主機0的壓縮比降級到多差的程度,仍容許其他主 機繼續運作。 (2)假如SCMS仍有足夠多的未使用段時,SCMS可同意此 寫入操作。SCMS也可以發出另一種錯誤信號到主機,此可 視為南優先權之訊息’以降低其段的使用。在此種情形, 其他主機可繼續運作’然而’假如主機〇的壓縮比持續衰 減,則段最後仍有可能會用完。
第7圖顯示一較佳實施例,說明如何將一主機所指定之 貫位址轉譯成s C M S的實位址。主機指定實位址7 〇 i分割為主 機識別碼702、區段號碼703及偏移值7〇4,以及部分可忽略 的位元。如第5圖所示,SCMS的控制邏輯5〇4包含一暫存器 矩陣705,亦即資料持有位置。矩陣7〇5的每一列對應到二 不同的主機識別碼,因此矩陣7〇5包含Η列。矩陣的每一行 對應一不同的區段號碼,因此矩陣包含L行。主機識別碼 702用來選擇矩陣的列70 6,並且區段號碼7〇3用來選擇行
70 7。行70 7與列70 6 —起辨識暫存器7〇9。暫存器7〇9的内 容’亦即CTT用來定址需求區段的部分之開始點,則與偏 值704結合在矩陣705外的暫存器71〇,此係將包含在暫存器 7^9的位兀接續到偏移位元7〇4。暫存器71〇現在包含%仏的 實位址,換言之,為被記憶體5〇2所管理的需求資料的實位 址。
200401202 五、發明說明(19) ^ 在另一實施例中’主機識別碼並非位址之一部份,而 係從網路卡等處獲得。在此種實施例中,如第8圖所示情 況’主機40 1所提供的預定部分8〇2,亦即區段號碼,用月來 才曰疋需求區段(因此,此部份長度為1〇g2(s)位元),此時位 = 801的最低有效位元8〇3為偏移值。習知技藝者當知,包 含區段號碼的位址80 1之部分802的預先指定位置,不需要 由鄰接位元構成,並且除了偏移值8〇3使用的位置外,而這此 ,元可以放在位址8 〇 i的任意位置。主機識別碼⑽5係5兩 分別提供。如第5圖所示,SCMS的控制邏輯5〇4包二 子,804陣列(資牙斗持有纟置),丨中每—區段對應己 ^,母:暫存器對於每一支援主機包含一位元。當一主暫存 二配一區段,其指定何主機能夠讀取及寫入嗜區 藉由對暫存器的相關位元設定為到、此時:又係 存器陣列804的暫存器, 二用來選擇暫 位元被檢測。佰如仏 —上 土械成別碼80 5的項目之 使得位址807可以被侫兀用設\±=則產生致能信號_,其 μ被使用。位址8 〇 7係 值803所組成。假如位元設為。、—二3:8〇2及偏移 之傳送給要求之主旗 〇_括士、+ / 錯秩k號,並且將 避免主機讀•或寫Λ其他主機所7種保護機制,以 間之部分下 提供一機制,以在多部主機401 *享吃體區段。其亦 對於此分享記憶體環境中提供存取控制-二
200401202 五、發明說明(20)
藉由第6圖所示之方法’控制邏輯5〇4可 包含-計數器’其包含此每一主機使用;:主機 J免-主機被配給超過其被容許之區段數二技J且 :如何將第8圖所示的保護機制整合到第6圖的者 本發明也提供 錄圖所示之方法建器陣列,其透 中的主機識別碼部分個別由第8圖:弟J圖所不,位扯 -變換表供轉譯從網路卡取得的主機網路::來:為二用 3\碼)。接著,對於—區段排他性的存取,由於^主桷 7 2為位址8〇1的一部份,而主機識別碼⑽5獨立於位^馬 外,因此能夠藉由比較第7圖中主機 二址之 機識別碼805,而輕易實作此功处。二馬2 ”第8圖的 a I ± 、 力月b。假如找不到tb斜έ士田 :表示該位址為-無效位址,並會發出對、:果支援區段的分享,當分配—區段時, 蔣=二。為了 列中未使用的項目,並且二主機的轉譯矩陣Μ. 起始點位址到所有的項目中。絲、及拷貝分配區段的 同段的主機,衍生出不同的奋 方法可以對每個分享相 目’SCMS控制邏輯不容許使;中區段之: 因此可謂此種方法提供了保護機制。 σ置破寫入,
假如主機識別碼非位址的一部份 但卻另外提供,則
200401202 五、發明說明(21) 第7圖所4田述之方法可進—步修正,使得轉譯矩陣的列由另 ,^供的主機識別碼中選擇(也就是其不再為位址7〇1的— 部^而行係使用區段識別碼703選出。此方法也自動提 供一保護機制,並且可以用來控制上述段落中,對於段 分享存取控制。 σ λ在另一實施例中,要求一區段之主機401也指定對於此 區段之起始實位址,其與區段之邊界對齊。在此實施例 :scms包g邏輯态,供確認主機無法分配兩個不同的區 段但指向相同之起始位址。第9圖顯示在主機所提供之實位 3 2 = 貫位址之間的轉譯。在此情況中,第5圖中的控制 璉輯504包含一相聯記憶體9〇4(資料持有位置)。此相聯記 :體9^4對於每一官理區段包含一列(這些管理區段包括那 :目::未配置者)’以及兩行。第一行9〇5包含複數個鍵 值,其為主機401對於配置區段所提供之起始實位址。第二 = 906包含複數個數值,其為SCMS實記憶體空間的區段: 貫位址。 σ 當一主機401提供一位址901時,此位址被分為兩 分三=在區段内的偏移值9〇3,其由最低有效位元構成,以 及取咼有效位元(the most Significant bit)9〇2,其被 聯記憶體904當作一搜尋鍵值使用。假如其中一列包令; 攔位之值與此搜尋鍵相同時,例如列9〇7,則此相聯記憔俨 04傳回值欄位908之内容。值9〇8接著結合此偏移值〜到Α
第27頁 200401202
暫存器90 9 ’藉以產生SCMS 楚,如何將第9圖的機制與 的實位址。對於習知技藝者應清 第8圖的保護機制結合在一起。 7 〇 5、第8 I» ^二理大量數目的區段,第7圖的轉譯矩陣 些從上述所衍生:器、第9圖的相聯記憶體904,以及那 存器方法予以- 果用第5圖所示之控制邏輯504之暫
實施例中,勺I^ :將會造成相當高的製作成本。在較佳 # 5 0 2中二3在%件7°5、8G4、與9°4的f訊儲存於記惰 :資二一二邏輯504包含快…此快取只存有前述儲 取;理:幸:備使用。這些快取可以透過已知之快 段資訊。〃、官理,例如在快取中維持最近被使用的區 本發明亦顯示如何將實記憶體空間,
開。第10圖顯示主機1001與多個SCMS 1〇 B 並且部分主機的實記憶體空間\^^ 間使付母—記憶體1 0 04包含複數個實位址。 一 方法可以用來確保主機1001的實記憶體空弟9圖所示. 合分布在SCMS 1〇〇3間。 日]之—連續子集
相同網路的其他 個別SCMS的位 目與壓縮資訊。 在較佳實施例中,SCMS也包含連接到 SCMS之資訊’例如包括它們的號碼、每— 址,以及,對於每一SCMS,分配區段的數
ZUU4U1ZU2 五、發明說明(23) 可以理 韋刃體、特殊 本發明可實 儲存裝置中 機^',或由 中,此機器 機存取記憶 系統及微指 碼的一部份 業系統執行 平台,例如 解的是 用途處 作於軟 。此應 一包含 係以電 體,及 令碼。 或應用 。此外 額外的 理哭,明可以實作於各式硬體、軟體、 體^ A或其各種組合。在一實施例中, 用程$一應用程式’其實際存於—程式 適當以被上傳到一包含適當架構的 腦平=構的機器以執行。在較佳的情況 輸出二 而具有中央處理單元、隨 在此Λ入/面。此電腦平台也包括作業 程式:不同程序及功能可為微指令 ,各ϊ: =(Λ其結合)’其可經由作 資粗Ϊ 邊裝置可連接到此電腦 貝抖儲存裝置與列印裝置。 生的系統元件Ξ 可J::f:示中所描述的-些可衍 的實際連接(或程序步驟)^ —貝乍,因此,在系統元件間 ^ , X f斤驟)可依據本發明程式;&宜ώΛ τ m 發生差昱。由於卟考士政 冬+ & 71往式撰寫的不同而 納〜處本發明的教示,習知技藝者將r豹邶 酌這些及相似的實作,或是本發明的各種配置 夠斟 第11圖顯示主機系統如何將記憶體參照(_ reference)轉譯成對於SCMS的要求。在步驟丨 統辨識何時實位址存於一網 主機糸 t ^ 〇^lca' 1 t ^ # ^SCMS Γ y;;;a; } # # ^ ^ 4$rfl , . 丨刀在此實施例中,頁表的適當旗 軚(f 1 ag)用來區別其係存於主機的主儲存裝置之頁或是存 200401202 五、發明說明(24) ^卜°卩之頁。存於外部之頁接著經由一驅動程式或一硬體 裝置存取,其係將此記憶體參照轉譯成一對網路連接裝置 的要求。此轉譯將包括步驟11 〇2,其中包含資料的SCMS網 路位址將在位址目錄1丨〇 3中,此位址目錄11⑽被存入複數 個SCMS,以及被存在步驟1中被要求的scms,此被要求 的S C M S在步驟1 1 〇 2中被辨識。
在另一實施例中,存於SCMS的頁具有的實位址不屬於 主機§己憶體所支援的實位址。舉例來說,假如主機不支援 S己憶體壓縮,則主機記憶體所支援的實位址將從零到等於 貫體S己憶體大小之最大值。假如主機支援壓縮,則實位址 將由實-到-實體轉譯機制決定其範圍;假如該轉譯機制依 賴一靜態目錄(CTT),實位址的範圍由該目錄決定。在現今 的作業系統中,當一實位址從主機所支援的實位置的範圍 外所發出’則將會產生例外錯誤(excepti〇n),並且也會產 生中斷。在目前的實施例中,當作業系統模組因為此類中 斷而被呼叫時’作業系統模组包含程式碼以執行丨丨〇 2及 11 0 4之作業。 在另一直接定址分享壓縮記憶體系統(SCMS)的實施例 中’ SCMS包括一CTT的集合,其中每個CTT對應一不同的實 位址空間。在此實施例中,未被主機分享的位址空間可以 連接到最多一個主機。當一個新的主機要求一個非分享之 位址空間,並且實的位址空間仍可被獲得時,SCMS的控制
200401202 五、發明說明(25) 邏輯指定一可用實位址空間與對應的CTT,並且將此位址空 間與此主機識別碼關聯起來。當主機記憶體操作被導向 SCMS時’ SCMS將主機識別碼轉換成對應CTT的位址,並且將 主機所提供之實位址轉譯成使用CTT的實體位址。 第1 2圖說明此實施例之一範例。SCMS 1 2 0 2包括,但不 限^ ’ CCT集合12〇7以及記憶體12ι 1。此記憶體1211更包括 为子§己憶體段1 2 〇 9、1 21 〇的集合。在運作時,主機1 2 0 1對 SCMS 1 2 02發出—記憶體操作,並且送出一位址1 2 0 3。SCMS 從位址1 2 0 3取出主機識別碼丨2 〇 4及由主機產生的實位址 1 2 0 β。接著’主機識別碼丨2 〇 4配合一主機識別碼-到_ c 了 τ變 換表1 205 ’從CCT的集合1 20 7中選擇一個CTT。使用主機識 別碼到-CTT 變換表 1 2 0 5,SCMS 選擇一CTT1 208,此CTT1208 係關聯於主機1201。選出之CTT1 20 8用來將主機1 206所產生 的實位址轉譯到包含相對資料的實體位址。在此範例中, 包含位址1 2 0 6的記憶體線,使用兩個記憶體段丨2 〇 9及丨2 j 〇 來儲存。 習知技藝者將能夠理解如何將本發明之前述其他 AJ. λ 、 1可1主又 、、'° S到此特徵。舉例來說,SCMS可容許多個主機分享關聯 於CTT集合1 20 7中之一個CTT的相同區段,此係藉由容許主P 機識別碼與CTT之間的的對應為多對一之對應所達成。在此 十月況中,多個主機識別碼使用主機識別碼-到_ C τ τ變換表, 以將多個主機識別碼對應到單一之CTT。習知技藝者當知,
第31頁 200401202 五、發明說明(26) 由單一區段使用之實體記憶體數目之各種控制方案,在主 機產生之位址與區段之實位址間之轉換等等,也可以應用 在本發明之此特徵中。 雖然本發明已以一較佳實施例揭露如上,然其並非用 以限定本發明,任何熟習此技藝者,在不脫離本發明之精 神和範圍内,當可作各種之更動與潤飾,因此本發明之保 護範圍當視後附之申請專利範圍所界定者為準。
第32頁 200401202 圖式簡單說明 本發明上述及其他目的,特徵或 細說明獲得更清楚的解釋,而這些 二召卜的 ,。 將爹',,、下列圖示為 第1圖為一傳統電腦系統之結構, 主記憶體; 傳统電腦系蛛支複髮缩 第2圖為一傳統電腦系統之記憶體系 電腦系統支援第1圖所示之壓縮主記憶體°.、 ,此傳统 ΓΛ為,γ"傳統電腦系統之記憶體目錄之結構’此傳餅I« 糸統支援第1圖所示之壓縮主記憶體; 、電腦 定址分 第4圖為一網路架構,此網路架構使用 享壓縮記憶體系統(SCMS); 發直接 第5圖為根據本發明之SCMS的方塊圖; 第6圖為根據本發明之控制邏輯的結構,此控制邏輯用以追 5從SCMS中每—主機所使用的段數目; 第7圖為—方法,此方法利用一轉譯矩陣,供將一主機之位 址轉譯為被SCMS所管理之位址;
第8圖A ^ ~方法,此方法利用具有保護位元之陣列,以提供
200401202 圖式簡單說明 對SCMS之區段的保護與存取控制; 第9圖為一方法,此方法利用一相聯記憶體,供將一主機之 位址轉譯成被SCMS所管理之實位址; 第1 0圖為一網路架構,其中一主機之實位址空間的一部份 分散在多個SCMS間; 第11圖為 求;以及 方法,供將一記憶體參照轉譯成一向SCMS的要 第1 2圖為根據本發明之SCMS之實施例,包括多個記憶體目 錄(CTT)。 圖式元件符號說明 1 0 2 中央處理單元 1 0 6 壓縮控制器 1 0 7 目錄 2 1 0 壓縮記憶體 2 2 1 線項目1 2 3 0 資料區 2 3 2 記憶體段 2 3 4 記憶體段 2 3 6 記憶體段 1 0 4 快取 1 0 8 資料 11 0 壓縮主記憶體 2 2 0 目錄 2 2 2 線項目2 2 31 記憶體段 2 3 3 記憶體段 2 3 5 記憶體段 2 4 0 處理器快取
11K11I
|11
第34頁 200401202 圖式簡單說明 241 未 壓 縮 快 取 線 242 快 取 S 錄 261 壓 縮 器 262 解 壓 縮 器 270 實 位 址 271 位 址 A 1 272 位 址 A 2 273 位 址 A 3 274 位 址 A 4 301 旗 標 集 合 302 壓 縮 /未壓縮 303 存 於 S 錄 304 使 用 區 塊 數 305 破 石卒 資 訊 306 項 目 1 307 項 g 2 308 項 @ 3 401 主 機 402 交 互 連 接 網 路 403 直 接 定 址 分 享壓縮記憶體系統 501 裝 置 集 合 502 記 憶 體 503 網 路 卡 504 控 制 邏 輯 505 第 —......— 級 儲 存 裝置 506 @ 錄 (CTT) 507 直 接 映 射 區 域 508 未 壓 縮 區 509 記 憶 體 段 池 513 線 項 a 3 514 線 項 i 4 601 定 限 值 602 計 數 器 603 主 機 識 別碼 604 壓 縮 器 / 解 壓縮器 605 比 較 器 606 比 較 結 果 701 主 機 位 址 702 主 機 識 別 碼 703 區 段 號 碼 704 偏 移 值 705 矩 陣 706 矩 陣 之 列 707 矩 陣 之 行 709 暫 存 器 710 暫 存 器 麝
第35頁 200401202 圖式簡單說明 801 主機位址 802 區段號碼 803 偏移值 804 暫存器陣列 805 主機識別碼 806 致能信號 807 S C M S實位址 901 主機位址 902 最高有效位元 903 偏移值 904 相聯記憶體 905 相聯記憶體之 906 相聯記憶體之第二行 907 相聯記憶體之 908 值 909 暫存器 1001 主機 1002 交互連接網路 1003 S C M S 1 0 0 4記憶體 1201 主機 1202 S C M S 1 2 0 3位址 1204 主機識別碼 1 2 0 5主機識別碼-到-CTT變換表 1 2 0 6實位址 1207 CCT集合 1 208選出之CTT 1 2 0 9記憶體段 1 2 1 0記憶體段 1211 記憶體 打
第36頁
Claims (1)
- 200401202 六、申請專利範圍 1. 一種供複數個主機(hos t)分享一記憶體段(mem〇ry s e c t o r)集合的裝置,該記憶體段集合由複數個記憶體段所 組成,該複數個主機係在一電腦系統中藉由一交互連結網 路連接,每一主機具有一關聯實位址空間(reai address space ),該複數個記憶體段儲存壓縮資料,該裝置包含: 一網路卡(network adapter),供連接該裝置至該交互 連結網路; 一記憶體’供存放該複數個記憶體段,該記憶體包含 一目錄,供將至少一主機的實位址轉譯為該裝置之一位 址,而在該裝置之該位址係供存放壓縮資料;以及 一控制邏輯(c ο n t r ο 1 1 〇 g i c),供管理該記憶體,且該 控制邏輯包含一記憶體壓縮器/解壓縮器。 2. 如申請專利範圍第1項所述之裝置,更包含一第三級儲存 (tertiary store) 〇 3. 如申請專利範圍第1項所述之裝置,其中該記憶體更包含 一直接映射區域(mapped area)及一未壓縮區域。 4. 如申請專利範圍第1項所述之裝置,更包含一暫存器組, 該暫存器組包含複數個定限暫存器供存放每一主機所配& 之一最大數目之記憶體段,且該暫存器組亦包含複數個計 數暫存器供存放每一主機使用的複數個記憶體段。第37頁 200401202 六、申請專利範圍 5.如申請專利範圍第4項所述之裝置,更包含一比較器,該 比較器供比較至少—主機之〆定限暫存器之值與該至少一 主機之一計數暫存器之值,藉此以判斷是否該計數暫存器 之值已超過該定限暫存器之值。 6 ·如申請專利範圍第丨項所述之裝置,其中該至少一主機之 該實位址包含該至少一主機識別碼、該裝置之一所需記憶 體區段(memory segmen1〇、以及該所需記憶體區段之一偏 移值(offset)。 7. 如申請專利範圍第6項所述之裝置,其中該實位址更包含 在不同裝置間之分配區段。 8. 如申請專利範圍第6項所述之裝置,其中該控制邏輯更包 含一暫存器矩陣,該矩陣之每一列對應一不同的主機識別 碼,且每—行則對應一不同的區段號碼(segmen t η u m b e r ),藉此,至少一主機之該識別瑪及所需記憶體區段 決定一特定暫存器的内容,该特定暫存器的内容連接 (concatenate)該偏移值,使該實位址被該裝置所管理。 9 ·如申請專利範圍第1項所述之裝置,其中該控制邏輯更包 含一暫存器陣列,該陣列包含複數個暫存器,對應至該裝 置之複數個記憶體區段,其中每一暫存器相對於▲一 =▲ 主機包含一位元,藉此當該位元為1時,一所需記憶體區矣段 頁 8 3 第200401202 ——— 六、申請專利範圍 並且當該 在連接該偏移值後使該實位址被該裝置所管理 位元為0時,該至少一主機被拒絕存取該區段( 聯記憶體含有一第一行 及一第二行含有複數個數 由該複數主機所提供,以 位址’且該複數個數值係 位址,藉此,該至少一主機之一搜 足之一數值被接續到一偏移值,該 裝置所管理。 該第一行 值(v a 1 u e 對應複數 在該裝置 所述之裝 i a t i ve m 管理之每 10.如申請專利範圍第1項 包含一相聯記憶體(assoc 含有—列對應於該裝置所 置,其中該控制邏輯更 emory),該相聯記憶體 一記憶體區段,且該相 含有複數個鍵值(k e y )以 ),其中該複數個鍵值係 個需求記憶體之起始實 中複數個區段的起始實 尋鍵(search key)所決 偏移值使該實位址被該 11 _如申請專利範圍第1項所述之裝置,其中該電腦系統更 包含複數個裝置’該裝置包含其他裝置之資訊,例如該複 數個裝置之數目、每一該複數個裝置之位址、每一該複數 個裝置所配置的複數個分配區段,以及儲存資料的可壓縮 性。 12 ·如申請專利範圍第i項所述之裝置,其中該記憶體更包 含複數個目錄、每—目錄對應每一該複數主機之一不同實 位址空間。第39頁 200401202 六、申請專利範圍 1 3.如申請專利範圍第丨2項所述之裝置,其中該記憶體更包 含—主機識別碼對目錄變換表(i d - t 〇 - d i r e c t 〇 r y translation table),其中至少一主機產生一主機識別 碼’用於選擇該複數個目錄中的一目錄,該複數個目錄中 的一目錄對應該至少—主機,該目錄轉譯該至少一主機之 λ位址為§亥裝置之一實體位址(physical address)。 1 4. 一種電腦系統包含一主機以及複數個裝置,該主機經由 一交互連接網路連接,每一裝置包括—記憶體段集合,該 記憶體段集合由複數個記憶體段所組成,且該每一裝置輕 ,到該=互連接網路’以容許該主機在該複數個裝置間分 子该圯憶體段集合,且該複數個記憶體段儲存壓縮資料。 如申請專利範圍第14項所述之電腦系統’其中該主機之 乂貝位址之一連續子集合(contiguous subset)分佈在該複數 個裝置間。 仕^複數 如Λ請專利範圍第14項所述之電腦#'統,其中該複數ίϋΐ〉、:裝置包含其他裝置之資訊,例如該複數個絮 置所Κ之位址、對於每-該卿 °°丰又數目以及儲存資料的可壓縮性。 17 ·在一電腦系統中 接,該電腦系統包括 痛^數個主機經由一交互連接網路連 -衣置輕接於該交互連接網路,供容第40頁 200401202 主機分享一記憶 體段所組成,該 種方法供管理每 包含下列步驟: 一主機所配給之 至少一主機一定 計 複數個記憶體段 至少一主機之一 暫存器之值,以 存器之值。 六、申請專利範圍 許該複數個 複數個記憶 料’其中一 段,該方法 決定每 分配給 機被配給之最大數目之記億 分配該至少一主機 機所使用之 比較該 機之一計數 過該定限暫 體段集合,該記憶體段集合由 後數個記憶體段儲存壓縮資 主機使用之複數個記憶體 隶大數目之記憶體段; 限暫存器,供儲存該至少一主 體段; 數暫存器,供儲存該至少一主 9 定限暫存器之值與該至少一主 判斷是否該計數暫存器之值超 1 8.如申明專利乾圍第丨7項所述之方 藉由該至少一主機夕一哄w成 又匕3 . 之#定卩, 別碼,以選擇關聯該至少一主機 之該疋限暫存裔及計數暫存器。 1 9二如申請專利範圍第1 7項所述之方法,更包含: 當該至少一主機、勃# 該計數暫存器遞減釋放操作(reieaSe 〇peration),從 段係由該至少—主:數個記憶體段’其中該複數個記憶體 王機所釋放之一實位址集合所使用。 2 0.如申§青專利範圍楚,。 祀阁弟1 7項所述之方法,更包含: 假使該計數暫存哭少从 —„ * σ。之值超過該疋限暫存器之值,則通知該 mm 第41頁 200401202至v 主機其使用之記憶體段數目已經超過其所配給之數 減少該 以.如申晴專利範圍第1 7項所述之方法,更包含: ^卞"亥°十數暫存器之值超過該定限暫存器之值時 > 一主機其使用之該複數個記憶體段數目。 j二如申請專利範圍第1 7項所述之方法,更包含:^為至 主機執行一寫入操作(wr i t e operat i on)時,麗 畲目待寫入之複數個記憶體線(memor y 1 ine),並且增加該·λ· 個5己憶體線所使用之複數個記憶體段至該計數暫存器。昊 23·如申請專利範圍第22項所述之方法,更包含 2該計數暫存器之值超過該定限暫存器之值_,拒絕 夕一主機進行該寫入操作 更包含通知該至少 24.如申請專利範圍第23項所述之方法 主機§亥寫入操作為無效。在一電腦系統中,複數個主機經由一交互連接網 接,具有連接到該交互連接網路之一裝置,供該 分享-記憶體段集合,該記憶體段集合由複數個纪 饺組成,該複數個記憶體段儲存壓縮資料,一種; ~主機所指定之一實位址轉譯到該裝置之—實位址第42頁 200401202 六、 申請專利範圍 方 法包含下列步 驟: 利用一主機 指定實位址 ,由該 至少 一主機 要求該裝 置 之 一需求實位址 置 利用該主機 指定實位址 ,辨識 該裝 置之一 資料持有 位 (data holding location ); 利用該資料 持有位置的 内容, 以決 定一第 一數值; 以 及 連結該第— 數值到一偏 移值, 以獲 得該裝 置之該實 位 址 〇 26. .如申請專利範圍第2 5項所述之方法, 更包含從該主機指 定 貫位址分解出 一主機識別 石馬、一 區段 號碼及 該偏移值 〇 27. ‘如申請專利範圍第2 6項所述之方法, 其申該控制邏輯為 暫存器矩陣, 該矩陣之每 /列對 應該 至少一 主機之一 不 同 的主機識別碼 ,且每一行 則對應 一不 同的區 段號碼。28.如申請專利範圍第27項所述之方法’其中該辨識之步驟 更包含: 利用該至少一主機之該主機識別碼,選擇該矩陣之一 列,以及利用該區段號碼,選擇該矩陣之一行,以辨識在 該矩陣中之一暫存器。第43頁 200401202值之步驟更包含 —數值。 提供該被辨識暫存器之内容以作為該第 其中該資料持有位 暫存器以對應該裴 3〇.如申請專利範圍第25項所述之方法 置為—暫存器陣列,該陣列含有複數個 置之複數個區段。 如申請+專利範圍第3〇項所述之方法’其中每一暫存器相 」母一支k主機包含一位元,當該支援主機被容許存取 該區段時,該位元被設為1,而當該支援主機不被容許存取 該區段時,該位元被設為〇。 3 2.如申請專利範圍第31項所述之方法,其中該辨識步驟更 包含,對應從該主機指定實位址擷取出之—區段號碼,辨 識該矩陣之一暫存器。 3 3.如申請專利範圍第3 2所述之方法,其中該決定步驟更包 含: 對應S亥至少—主機所提供之一主機識別碼,檢查該被 辨識暫存器中之該位元;以及 一 假如該位元等於1,提供該區段號碼以作為該第一數 值。 34·如申請專利範圍第32項所述之方法,其中該決定步驟更200401202 六、申請專利範圍 包含 辨識所ΓΓ—主機識別碼’檢查該被 主機錯誤™〜 3 5.如申含杳直4ΐϊ々Λτ 置係一相妒圍第25項所述之方法,其中該資料持有杨 ” %记仪體,該相聯記憶體含有_•列,針庫μ位 置所管理之备—^ ^ 3 ^ 列,對應於該裝 行,嗲第一八圮憶體區段,且該相聯記憶體含有一第— μ弟仃含有複數個鍵值以及—第-人弟 二數值,其中钤 > ⑹, "丄 弟一灯&有後數個第 t+ A ?旻數個鍵值係由該複數個主機所楹& 對應複數個需求記憶體之起始實位址,供,以 值係在該裝置中複數個區段的起始實位址。/ 個第二數 36·如申請專利範圍第35 述之 指定位址分解出—搜尋鍵值及該偏/值更包3’從該主機 3 7'如申凊專利範圍第%項所述之方法,其中該辨識步驟更 匕含,利用該至少一主機之該搜尋鍵值,以辨識該相聯記 憶體之一列。 3 8.如申請專利範圍第3 7項所述之方法’其中該決定步驟更 包含’對應該被辨識列,提供該第二數值為該第—數值。200401202 六、申請專利範圍 __ 3 9 .在一電腦系統中,包, 連接,使該複數個主機分復數個主機經由一交互連接網路 集合由複數個記憶體務予 c憶體段集合,該記憶體段 縮資料,機器可讀取之〜、、、攻’該複數個記憶體段儲存壓 device),以具體的方式線'式儲存裝置(program storage 則可由該機器執行以達由扎々組成之一程式,該程式 體段之方法’該方法包含.S理複數個每—主機所用之記憶 決定每一主機所配給 分配給至少一主機一〜取大數目之記憶體段; 機所被配給之^己惊體暫存器,供儲存該至少一主 八獅4 〇 又之—最大值; 为配戎至少一主機— 口。 機所使用之記憶體段之一數目存斋,供儲存該至少一主 比較該至少一主機之兮— 該計數暫存器之一數目疋限暫存器與該至少一主機之 過該定限暫存器之值,立該計數暫存器之值超 作。 邑由該至少一主機進行該寫入操 4〇 .在—電腦系統中,複數 J /括連接於該交互連接網:二由-交互連接網路連 體段所組成,’ _體段集合由複數個記憶 人可讀取之-程式館存裝置,以;;=4二亦包括 式…“執行該程式,以達成將該至少— 第46頁 200401202 六、申請專利範圍 主機指定之一實位址,轉譯成該裝置之一實位置之方法, 該方法包含: 利用一主機指定實位址,由該至少一主機要求該裝置 之一需求實位址; 利用該主機指定實位址,辨識該裝置之一資料持有位 置; 利用該資料持有位置的内容,以決定一第一數值;以 及 連結該第一數值到一偏移值,以獲得該裝置之該實位 址。第47頁
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US10/158,534 US7039769B2 (en) | 2002-05-30 | 2002-05-30 | Direct addressed shared compressed memory system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW200401202A true TW200401202A (en) | 2004-01-16 |
| TWI273431B TWI273431B (en) | 2007-02-11 |
Family
ID=29582706
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW092112810A TWI273431B (en) | 2002-05-30 | 2003-05-12 | Apparatus for the plurality of hosts to share a collection of memory sectors, and method and program storage device for managing memory sectors used by a host |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US7039769B2 (zh) |
| TW (1) | TWI273431B (zh) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI484343B (zh) * | 2011-12-28 | 2015-05-11 | 富士通股份有限公司 | 資訊處理裝置以及控制方法 |
| TWI612421B (zh) * | 2017-01-20 | 2018-01-21 | 宇瞻科技股份有限公司 | 快閃記憶體的動態對齊資料方法 |
| CN108334276A (zh) * | 2017-01-20 | 2018-07-27 | 宇瞻科技股份有限公司 | 快闪记忆体的动态对齐数据方法 |
Families Citing this family (22)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4629307B2 (ja) * | 2001-02-24 | 2011-02-09 | インターナショナル・ビジネス・マシーンズ・コーポレーション | トーラス・ネットワークおよびツリー・ネットワークでの算術機能 |
| US6956507B2 (en) * | 2002-12-12 | 2005-10-18 | International Business Machines Corporation | Method and apparatus for morphing memory compressed machines |
| US7457880B1 (en) * | 2003-09-26 | 2008-11-25 | Ximeta Technology, Inc. | System using a single host to receive and redirect all file access commands for shared data storage device from other hosts on a network |
| US20050138126A1 (en) * | 2003-12-23 | 2005-06-23 | Timucin Ozugur | Peer-to-peer e-mail |
| JP4615337B2 (ja) * | 2005-03-16 | 2011-01-19 | 株式会社日立製作所 | ストレージシステム |
| US20160098279A1 (en) * | 2005-08-29 | 2016-04-07 | Searete Llc | Method and apparatus for segmented sequential storage |
| US9176741B2 (en) * | 2005-08-29 | 2015-11-03 | Invention Science Fund I, Llc | Method and apparatus for segmented sequential storage |
| JP2007304794A (ja) * | 2006-05-10 | 2007-11-22 | Hitachi Ltd | ストレージシステム及びストレージシステムにおける記憶制御方法 |
| US8122216B2 (en) * | 2006-09-06 | 2012-02-21 | International Business Machines Corporation | Systems and methods for masking latency of memory reorganization work in a compressed memory system |
| US7962700B2 (en) * | 2006-09-06 | 2011-06-14 | International Business Machines Corporation | Systems and methods for reducing latency for accessing compressed memory using stratified compressed memory architectures and organization |
| US8214425B2 (en) * | 2008-01-29 | 2012-07-03 | Mitel Networks Corporation | System and method for storing a program using partial compression |
| US7870160B2 (en) * | 2008-04-14 | 2011-01-11 | Objectif Lune Inc. | Block compression algorithm |
| US8417730B2 (en) * | 2008-04-14 | 2013-04-09 | Objectif Lune Inc. | Block compression algorithm |
| US8593472B1 (en) * | 2009-07-31 | 2013-11-26 | Nvidia Corporation | System and method for accessing a frame buffer via a storage driver |
| US8645338B2 (en) * | 2010-10-28 | 2014-02-04 | International Business Machines Corporation | Active memory expansion and RDBMS meta data and tooling |
| WO2012085968A1 (en) * | 2010-12-22 | 2012-06-28 | Hitachi, Ltd. | Storage apparatus and storage management method |
| JP5712609B2 (ja) * | 2010-12-24 | 2015-05-07 | 富士通株式会社 | データ処理装置及びデータ記録方法 |
| US9378560B2 (en) * | 2011-06-17 | 2016-06-28 | Advanced Micro Devices, Inc. | Real time on-chip texture decompression using shader processors |
| US11051140B2 (en) * | 2014-09-19 | 2021-06-29 | Texas Instruments Incorporated | Compression of internet protocol version 6 addresses in wireless sensor networks |
| US10169246B2 (en) * | 2017-05-11 | 2019-01-01 | Qualcomm Incorporated | Reducing metadata size in compressed memory systems of processor-based systems |
| US11609861B1 (en) * | 2020-04-08 | 2023-03-21 | Marvell Asia Pte Ltd | Method and apparatus for efficient address decoding and address usage reduction |
| US12530152B2 (en) | 2023-09-29 | 2026-01-20 | Rambus Inc. | Memory system for flexibly allocating compressed storage |
Family Cites Families (23)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4564903A (en) * | 1983-10-05 | 1986-01-14 | International Business Machines Corporation | Partitioned multiprocessor programming system |
| JPS62169258A (ja) | 1986-01-22 | 1987-07-25 | Nec Corp | 主記憶領域の共有・排他使用制御方式 |
| JPS6371744A (ja) | 1986-09-12 | 1988-04-01 | Nec Corp | システム空間制御方式 |
| US4843541A (en) * | 1987-07-29 | 1989-06-27 | International Business Machines Corporation | Logical resource partitioning of a data processing system |
| JPH01191244A (ja) | 1988-01-26 | 1989-08-01 | Mitsubishi Electric Corp | マルチプロセツサシステムにおける共有メモリアクセス方式 |
| JPH0368044A (ja) | 1989-08-07 | 1991-03-25 | Nec Corp | 動的メモリ制御方式 |
| JPH0397049A (ja) | 1989-09-08 | 1991-04-23 | Fujitsu Ltd | 記憶装置 |
| US5627995A (en) * | 1990-12-14 | 1997-05-06 | Alfred P. Gnadinger | Data compression and decompression using memory spaces of more than one size |
| JPH04238556A (ja) | 1991-01-22 | 1992-08-26 | Okuma Mach Works Ltd | メモリ選択回路 |
| US5390299A (en) * | 1991-12-27 | 1995-02-14 | Digital Equipment Corporation | System for using three different methods to report buffer memory occupancy information regarding fullness-related and/or packet discard-related information |
| US5729228A (en) * | 1995-07-06 | 1998-03-17 | International Business Machines Corp. | Parallel compression and decompression using a cooperative dictionary |
| US5864859A (en) * | 1996-02-20 | 1999-01-26 | International Business Machines Corporation | System and method of compression and decompression using store addressing |
| US5909638A (en) * | 1996-08-06 | 1999-06-01 | Maximum Video Systems, Inc. | High speed video distribution and manufacturing system |
| US5761536A (en) * | 1996-08-21 | 1998-06-02 | International Business Machines Corporation | System and method for reducing memory fragmentation by assigning remainders to share memory blocks on a best fit basis |
| JPH10133893A (ja) | 1996-10-30 | 1998-05-22 | Oki Electric Ind Co Ltd | コンピュータシステム |
| US6341325B2 (en) | 1999-01-12 | 2002-01-22 | International Business Machines Corporation | Method and apparatus for addressing main memory contents including a directory structure in a computer system |
| JP2000250766A (ja) | 1999-03-02 | 2000-09-14 | Sharp Corp | ネットワークメモリ管理装置及び記録媒体 |
| US6349372B1 (en) * | 1999-05-19 | 2002-02-19 | International Business Machines Corporation | Virtual uncompressed cache for compressed main memory |
| JP4317296B2 (ja) | 1999-09-17 | 2009-08-19 | 株式会社ターボデータラボラトリー | 並列コンピュータのアーキテクチャおよびこのアーキテクチャを利用した情報処理ユニット |
| US6446145B1 (en) * | 2000-01-06 | 2002-09-03 | International Business Machines Corporation | Computer memory compression abort and bypass mechanism when cache write back buffer is full |
| US7089391B2 (en) * | 2000-04-14 | 2006-08-08 | Quickshift, Inc. | Managing a codec engine for memory compression/decompression operations using a data movement engine |
| US6681305B1 (en) | 2000-05-30 | 2004-01-20 | International Business Machines Corporation | Method for operating system support for memory compression |
| US6842832B1 (en) | 2000-08-25 | 2005-01-11 | International Business Machines Corporation | Reclaim space reserve for a compressed memory system |
-
2002
- 2002-05-30 US US10/158,534 patent/US7039769B2/en not_active Expired - Fee Related
-
2003
- 2003-05-12 TW TW092112810A patent/TWI273431B/zh not_active IP Right Cessation
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI484343B (zh) * | 2011-12-28 | 2015-05-11 | 富士通股份有限公司 | 資訊處理裝置以及控制方法 |
| US9065706B2 (en) | 2011-12-28 | 2015-06-23 | Fujitsu Limited | Information processing apparatus, computer-readable recording medium, and control method |
| TWI612421B (zh) * | 2017-01-20 | 2018-01-21 | 宇瞻科技股份有限公司 | 快閃記憶體的動態對齊資料方法 |
| CN108334276A (zh) * | 2017-01-20 | 2018-07-27 | 宇瞻科技股份有限公司 | 快闪记忆体的动态对齐数据方法 |
| CN108334276B (zh) * | 2017-01-20 | 2021-01-29 | 宇瞻科技股份有限公司 | 快闪记忆体的动态对齐数据方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20030225981A1 (en) | 2003-12-04 |
| US7039769B2 (en) | 2006-05-02 |
| TWI273431B (en) | 2007-02-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TW200401202A (en) | Direct addressed shared compressed memory system | |
| TWI300541B (en) | Method and system for graphics processing | |
| CN109726139B (zh) | 存储器系统及控制方法 | |
| JP2833062B2 (ja) | キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置 | |
| US5829053A (en) | Block storage memory management system and method utilizing independent partition managers and device drivers | |
| US8966219B2 (en) | Address translation through an intermediate address space | |
| CN116302491A (zh) | 内存管理方法、装置、计算机设备及存储介质 | |
| TW567413B (en) | Apparatus, method and computer program product for privatizing operating system data | |
| US20050044340A1 (en) | Remote translation mechanism for a multinode system | |
| US8151076B2 (en) | Mapping memory segments in a translation lookaside buffer | |
| JPH1091525A (ja) | 変換索引バッファ及びメモリ管理システム | |
| US9146879B1 (en) | Virtual memory management for real-time embedded devices | |
| Li et al. | ctFS: Replacing file indexing with hardware memory translation through contiguous file allocation for persistent memory | |
| WO1999035579A1 (en) | Two-level address translation and memory registration system and method | |
| JPS59502123A (ja) | デ−タ接続性が制御される仮想記憶アドレス変換機構 | |
| JPH11102323A (ja) | 仮想アドレス変換用の柔軟な変換記憶バッファ | |
| US20120198121A1 (en) | Method and apparatus for minimizing cache conflict misses | |
| US6341325B2 (en) | Method and apparatus for addressing main memory contents including a directory structure in a computer system | |
| US20110276776A1 (en) | Addressing for Huge Direct-Mapped Object Systems | |
| EP4575744A1 (en) | Data migration method and apparatus, and chip and computer-readable storage medium | |
| CN114546898A (zh) | 一种tlb管理方法、装置、设备及存储介质 | |
| CN120743564A (zh) | 一种内存管理方法、程序产品、设备及介质 | |
| JPH10283259A (ja) | 情報処理装置およびプロセッサ | |
| JP3808058B2 (ja) | 複数のホストが圧縮データを記憶するメモリ・セクタの集合を共用できるようにするための装置 | |
| JP2026009346A (ja) | ストレージデバイス |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| MM4A | Annulment or lapse of patent due to non-payment of fees |