TWI480883B - 資訊處理裝置及控制方法 - Google Patents
資訊處理裝置及控制方法 Download PDFInfo
- Publication number
- TWI480883B TWI480883B TW101134714A TW101134714A TWI480883B TW I480883 B TWI480883 B TW I480883B TW 101134714 A TW101134714 A TW 101134714A TW 101134714 A TW101134714 A TW 101134714A TW I480883 B TWI480883 B TW I480883B
- Authority
- TW
- Taiwan
- Prior art keywords
- node
- unit
- memory
- nodes
- shared memory
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0721—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
- G06F11/0724—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/076—Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
Description
此處所討論之實施例係有關於資訊處理裝置、控制方法及控制程式。
傳統上,數個計算處理裝置共用一儲存裝置之對稱多處理器(SMP)之技術係已為習知。應用此種SMP技術之資訊處理器之範例為經由單一匯流排連接數個各自具有計算處理裝置及儲存裝置之節點且其中每一計算處理裝置共用每一儲存裝置的資訊處理系統(資訊處理裝置)。亦即,此資訊處理系統具有共用於數個節點間之儲存裝置(共用記憶體)。
錯誤檢查及校正(ECC)、週期性可校正錯誤(ICE)或ECC、永久可校正錯誤(PCE)發生於此種共用記憶體之資料。同時,”ECC ICE”係週期性可校正錯誤。亦即,”ECC ICE”係於預定時間內發生超過預定次數之可校正錯誤。詳言之,”ECC PCE”係固定可校正錯誤。亦即,”ECC PCE”係在記憶體區域之單一位置發生之可校正錯誤。
詳言之,目前已存有一技術,當錯誤校正頻繁地實施於給定頁時,可自包括校正錯誤之位置之第一記憶體區域複製頁之內容至第二記憶體區域,且可自第一記憶體區域之位址寫入TLB之實體頁至第二記憶體區域之位址。
更詳言之,目前已存有一技術,當可校正之一位元錯
誤發生於對該共用記憶體之存取,同時一给定裝置寫回資料時,可防止另一裝置存取給定裝置正在存取之記憶體。
專利文件1:日本專利早期公開案第11-175409號。
專利文件2:日本專利早期公開案第09-128303號。
專利文件3:日本專利早期公開案第08-077078號。
然而,上述技術具有一問題,若諸如ICE或PCE之CE遺留於記憶體,資訊處理裝置在某些情況下減弱,例如發生於已存有ICE或PCE之記憶體空間之軟性錯誤。
據此,本發明之實施例之態樣之目標係可抑制資訊處理裝置減弱之可能性。
根據實施例之態樣,一資訊處理裝置包括數個節點,每一節點包含一儲存裝置,及一連接於該等數個節點間之互連件,其中該等數個節點中之至少一節點包括一檢測單元,其檢測包括於該一節點或其他節點之一儲存裝置之一共用記憶體區域的資料的一可校正錯誤,該共用記憶體區域係該一節點或其他節點存取之一區域且該可校正錯誤係:(i)於一預定時間期間內發生超過預定次數之錯誤,或(ii)發生於該共用記憶體區域之一單一位置之錯誤,一防止控制單元,當該檢測單元檢測該可校正錯誤時,實施控制以防止該一節點及其他節點存取該共用記憶體區域,一復原單元,其將儲存於該共用記憶體區域之資料復原於不同於該共用記憶體區域之一記憶體區域,一通知單元,其對其他節點通知關於該不同記憶體區域之資訊,以及一回復控制單元,
其實施控制以自該一節點及其他節點回復對經復原之該資料之存取。
2‧‧‧XB
10、10a、10b、10c、10d、10e‧‧‧建構方塊
20‧‧‧節點
21、21a、21b、21c‧‧‧CPU
22、22a、22b、22c‧‧‧記憶體
23、26‧‧‧通訊單元
24‧‧‧服務處理器
25‧‧‧控制單元
27、27a‧‧‧XB連接單元
28‧‧‧PCIe連接單元
30‧‧‧計算處理單元
31‧‧‧計算單元
32‧‧‧L1快取
33‧‧‧L2快取
34‧‧‧節點映射
35‧‧‧位址轉換單元
35a‧‧‧TLB
36‧‧‧快取目錄管理單元
36a‧‧‧目錄
37‧‧‧封包控制單元
37a、37b‧‧‧封包產生單元
40‧‧‧路由器
41‧‧‧記憶體存取單元
41a‧‧‧ECC檢查單元
41b‧‧‧CE位址暫存器
41c‧‧‧ICE發生統計計數器
42‧‧‧PCIe控制單元
42a‧‧‧請求產生單元
42b‧‧‧PCIe匯流排控制單元
50‧‧‧本區節點
51‧‧‧檢測單元
52‧‧‧停止單元
53‧‧‧停止請求單元
54‧‧‧發送單元
55‧‧‧接收單元
56‧‧‧決定單元
57‧‧‧再映射單元
58‧‧‧再映射請求單元
59‧‧‧回復單元
60‧‧‧回復請求單元
70‧‧‧遠端節點
71‧‧‧接收單元
72‧‧‧停止單元
73‧‧‧完成通知產生單元
74‧‧‧發送單元
75‧‧‧再映射單元
76‧‧‧回復單元
S101~S105‧‧‧步驟
S201~S203‧‧‧步驟
S301~S304‧‧‧步驟
S401~S405‧‧‧步驟
S501~S505‧‧‧步驟
S601~S602‧‧‧步驟
S701~S707‧‧‧步驟
S801~S808‧‧‧步驟
S901~S909‧‧‧步驟
S1001‧‧‧步驟
S1101~S1111‧‧‧步驟
S1201~S1202‧‧‧步驟
S1301~S1302‧‧‧步驟
S1401‧‧‧步驟
S1501~S1503‧‧‧步驟
S1601~S1607‧‧‧步驟
S1701~S1703‧‧‧步驟
第1圖係用於說明根據實施例之資訊處理系統之範例的圖。
第2圖係用於說明根據實施例之建構方塊之功能組態的圖。
第3圖係描述當另一節點附接至分配有共用記憶體之節點時之記憶體映射的範例的圖。
第4圖係用於說明根據實施例之CPU的功能組態的圖。
第5圖係用於說明根據實施例之節點映射的資料組態的範例的圖。
第6圖係用於說明根據實施例之自CPU發送之封包的圖。
第7圖係用於說明根據實施例之自CPU發送請求之處理的範例的圖。
第8圖係用於說明根據實施例之當CPU接收封包時執行之處理的範例的圖。
第9圖係用於說明根據實施例之自I/O裝置發送請求之處理的範例的圖。
第10圖係用於說明根據實施例之於I/O裝置接收響應之處理的範例的圖。
第11圖係用於說明控制共用區域之處理流程之流程圖。
第12圖係用於說明分配共用記憶體之處理之流程圖。
第13圖係用於說明共用記憶體附接處理之流程圖。
第14圖係用於說明使用應用之共用記憶體之處理的流程圖。
第15圖係用於說明解接節點間之共用記憶體之處理的流程圖。
第16圖係用於說明釋放節點間共用記憶體之處理之流程圖。
第17圖係用於說明發出請求之處理流程之流程圖。
第18圖係用於說明當接收請求時執行之處理流程之流程圖。
第19圖係用於說明藉由ECC檢查單元執行之處理流程之流程圖。
第20圖係用於說明藉由ECC檢查單元執行之處理流程之流程圖。
第21圖係用於說明藉由ECC檢查單元執行之檢測ICE發生之處理的範例之圖。
第22圖係用於說明藉由ECC檢查單元執行之檢測ICE發生之處理的範例之圖。
第23圖係用於說明藉由ECC檢查單元執行之檢測ICE發生之處理的範例之圖。
第24圖係用於說明藉由ECC檢查單元執行之檢測ICE發生之處理的範例之圖。
第25圖係用於說明藉由ECC檢查單元執行之檢測ICE發生之處理的範例之圖。
第26圖係用於說明藉由ECC檢查單元執行之檢測ICE發生之處理的範例之圖。
第27圖係用於說明藉由ECC檢查單元執行之檢測ICE發生之處理的範例之圖。
第28A圖係描述根據實施例之藉由CPU執行之OS的功能組
態的範例的圖。
第28B圖係描述OS之處理所參考之表格的資料組態的範例的圖。
第28C圖係描述OS之處理所參考之表格的資料組態的範例的圖。
第29圖係用於說明藉由OS執行之處理流程之流程圖。
第30圖係用於說明藉由OS執行之處理流程之流程圖。
第31圖係用於說明藉由OS執行之處理流程之流程圖。
第32圖係用於說明藉由OS執行之處理流程之流程圖。
第33圖係用於說明藉由OS執行之處理流程之流程圖。
第34圖係描述記憶體管理表格之資料組態之範例的圖。
第35圖係描述位址轉換表格之資料組態之範例的圖。
第36圖係用於說明藉由OS執行之處理流程之流程圖。
第37圖係描述存取回復等待列表之資料組態之範例的圖。
第38圖係描述排程等待列表之資料組態之範例的圖。
第39圖係用於說明藉由OS執行之處理流程之流程圖。
第40圖係描述根據實施例之OS之功能組態及藉由CPU執行之處理的範例的圖。
本發明之較佳實施例將參考附隨圖式說明如下。
具有數個節點之資訊處理系統之範例將使用第1圖以下列實施例說明。第1圖係用於說明根據實施例之資訊處理系統之範例的圖。以第1圖所描述之範例,資訊處理系統1具有縱橫交
換機(cross bar switch,XB)2及數個建構方塊10至10e。XB2係相互連接建構方塊10至10e中之每一者之縱橫式交換機。詳言之,XB2具有一服務處理器,其並未描述且係作用為下文所說明之建構方塊10至10e中之每一者的每一服務處理器之主管。除此之外,於連接小數目之節點之微小尺度組態之情況中,建構方塊可直接連接,無需XB2。
詳言之,建構方塊10具有數個中央處理單元(CPU)21至21c及數個記憶體22至22c。更詳言之,其他建構方塊10a至10e亦利用與建構方塊10相同之組態且因此將不再於下文說明。除此之外,藉由第1圖所描述之範例,CPU 21b及21c與記憶體22b及22c並未加以描述。詳言之,未曾描述之輸入輸出(I/O)裝置係設置於每一建構方塊。同時,藉由本範例,CPU間之快取一致性控制可藉由目錄系統而實現,且於下文說明並於記憶體具有資料之本區CPU可管理此目錄。
建構方塊10至10e中之每一者係獨立地操作OS。亦即,CPU21至21c中之每一者獨立地執行OS。藉由建構方塊10至10e中之每一者執行之OS係操作於與每一建構方塊不同之部段。同時,當自操作中之OS觀看時,此部段參考由相同OS操作之建構方塊群組及一系統。
舉例言之,建構方塊10及10a係操作為部段#A,且建構方塊10b至10d係操作為部段#B。於此情況中,藉由建構方塊10操作之OS將建構方塊10及10a識別為一操作系統,且藉由建構方塊10b操作之OS將建構方塊10b至10d識別為一操作系統。
其次,建構方塊之組態範例將使用第2圖加以說明。第
2圖係用於說明根據實施例之建構方塊之功能組態的圖。藉由第2圖所描述之範例,建構方塊10具有節點20、服務處理器24、XB連接單元27及27a及高速週邊組件互連件(PCIe)連接單元28。
節點20具有數個CPU21至21c、數個記憶體22至22c及通訊單元23。
服務處理器24具有控制單元25及通訊單元26。詳言之,藉由第2圖所描述之範例,CPU21至21c中之每一者係相互地連接,且係與通訊單元23連接。更詳言之,記憶體22至22c係個別地與CPU21至21c連接。服務處理器24係經由諸如本地區域網路(LAN)之網路連接至並未描述之伺服器之管理終端,並響應於來自管理終端之指令實施控制以改變節點或建構方塊10之各種設定。
詳言之,CPU21至21c中之每一者係與XB連接單元27或XB連接單元27a連接。除此之外,XB連接單元27及27a可為相同之XB連接單元。詳言之,CPU21至21c中之每一者係與PCIe連接單元28連接。更詳言之,通訊單元23係與服務處理器24之通訊單元26連接。除此之外,控制單元25、通訊單元26、通訊單元23及CPU21至21c中之每一者係經由諸如內積體電路(Inter-Integrated Circuit,I2
C)連接。
CPU21至21c係執行應用之計算處理裝置。詳言之,CPU21至21c係個別地與記憶體22至22c連接。更詳言之,當執行之應用請求共用記憶體之分配時,CPU21至21c中之每一者相互地通訊,並分配應用所使用之共用記憶體。再詳言之,CPU21至21c中之每一者將記憶體22至22c中之每一者或其他建構方塊10a至
10e的記憶體的部份使用為共用記憶體。
第3圖係描述當另一節點附接至分配有共用記憶體之節點時,記憶體映射的範例的圖。藉由第3圖之範例,當共用記憶體係分配予直接連接於共用記憶體存在之實體記憶體之節點時(參考為”本區節點”),本區節點將共用記憶體分割為特定區域大小。雖然分割單元係參考為”區段”,其並非將共用記憶體分割為區段所不可缺少的。當另一節點請求本區記憶體具有之共用記憶體之分配時,其可藉由附接共用記憶體使用本區節點之共用記憶體。遠端節點使用之記憶體區域係參考為”共用記憶體影像區域”。共用記憶體影像區域可藉由單一遠端節點或數個遠端節點附接。
回到第2圖,CPU21至21c中之每一者具有與記憶體之實體位址相關聯的節點映射及係為與記憶體連接之CPU之識別器的識別(CPUID)。除此之外,CPUID係藉由系統1獨特地判定且並未重疊。
CPU21至21c中之每一者使用節點映射與另一CPU通訊。舉例言之,當與存取目標實體位置相關聯之CPUID指示與CPU21至21c不同之CPU時,CPU21經由XB連接單元27或XB連接單元27a及XB2發送記憶體存取請求至另一節點。詳言之,當自另一節點接收用於與CPU21連接之記憶體之請求時,CPU21自與CPU21連接之記憶體22讀取請求目標資料,並將資料發送至請求來源。其他CPU21a至21c亦實施相同之處理。
詳言之,CPU21至21c中之每一者具有轉換位址之功能,此轉換位址之功能使用翻譯旁看緩衝器(Translation Lookside
Buffer,TLB),且當TLB失誤發生時,執行與傳統CPU相同之處理,諸如困境處理。
記憶體22至22c係資訊處理系統1之所有CPU所共用之記憶體。詳言之,於資訊處理系統1中,建構方塊10至10e中之每一者之服務處理器將映射於相同實體位址空間之實體位址排序於所有建構方塊10至10e之記憶體。亦即,具有尚未評價之值之實體位址係分配予在資訊處理系統1的所有記憶體中之至少使用為共用記憶體之記憶體。
詳言之,記憶體22至22c將記憶體區域之部份使用為資訊處理系統1之所有CPU所共用之共用區域,並將其他部份使用為本地區域,其中存取記憶體22至22c之CPU21至21c儲存核心資料及使用者資料及與另一節點經由共用記憶體之交換無關且係由I/O裝置使用之I/O區域。
控制單元25可控制建構方塊10。舉例言之,控制單元25可管理建構方塊10之電源,或監看且控制建構方塊10之異常。詳言之,控制單元25係經由並未描述之網路與其他建構方塊10a至10e之服務處理器連接,並執行協調於建構方塊10a及10e間之控制。更詳言之,控制單元25可與藉由CPU21至21c中之每一者執行之OS通訊。
再詳言之,控制單元25可經由通訊單元25及通訊單元23存取CPU21至21c中之每一者。不僅如此,控制單元可更新及控制建構方塊10至10e中之每一者之節點映射。
除此之外,服務處理器24之通訊單元26可接收自控制單元25發送之控制訊號,並將經接收之控制訊號發送至節點20之
通訊單元23。詳言之,通訊單元23可接收自通訊單元26發送之控制訊號,並將經接收之控制訊號發送至CPU21至21c中之每一者。更詳言之,XB連接單元27及27a連接CPU21至21a中之每一者與XB2,並中繼建構方塊10至10e之CPU間之通訊。再詳言之,PCIe連接單元28可經由CPU21至21c中繼對I/O裝置之存取。
其次,CPU21至21c中之每一者之功能組態將使用第4圖說明如下。第4圖係用於說明根據實施例之CPU的功能組態的圖。除此之外,CPU21a至21c具有與CPU21相同之功能,且因此將不再加以說明。詳言之,藉由第4圖描述之範例,連接服務處理器24及CPU21之通訊單元23及26並未描述。
藉由第4圖描述之範例,CPU21具有計算處理單元30、路由器40、記憶體存取單元41及PCIe控制單元42。詳言之,計算處理單元30具有計算單元31、一級(Level 1,L1)快取32、二級(Level 2,L2)快取33、節點映射34、位址轉換單元35、快取目錄管理單元36及封包控制單元37。除此之外,路由器40、記憶體存取單元41及PCIe控制單元41中之每一者並非必需包括於單一CPU21。
詳言之,封包控制單元37具有封包產生單元37a及封包接收單元37b。更詳言之,PCIe控制單元42具有請求產生單元42a及PCIe匯流排控制單元42b。
首先,將說明計算處理單元30之節點映射34。節點映射34係一表格,其中有多個指示記憶體之記憶體區域之實體位址及與記憶體連接的CPU的CPUID。暫存於節點映射34之資訊之範例將使用圖式加以說明。
第5圖係用於說明根據實施例之節點映射的資料組態
的範例的圖。藉由第5圖所描述之範例,節點映射34具有與諸如”位址”、”有效”、”節點ID”及”CPUID”等登記內容相關聯之分錄。同時,在每一分錄之”位址”項目中,儲存有顯示包括數個連續實體位址之位址區域的資訊。
舉例言之,資訊處理系統1將對所有記憶體排序之實體位址空間分割為相同大小之位址區域,並分派諸如#0、#1及#2之識別器予每一位址區域。詳言之,資訊處理系統1將指示每一位址區域之識別器暫存於節點映射34之每一分錄的”位址”中。舉例言之,第5圖描述識別器#0係暫存於第一分錄之”位址”項目中的情況。詳言之,第5圖描述例如識別器#1係暫存於第二分錄之”位址”項目中的情況。更詳言之,第5圖描述例如識別器#2係暫存於第三分錄之”位址”項目中的情況。
再詳言之,於每一分錄之”有效”項目中,其將指示是否每一CPU可存取藉由實體位址指示之記憶體區域的有效位元暫存。舉例言之,當藉由實體位址指示之記憶體區域係共用於CPU間之共用區域時,其將指示每一CPU可存取記憶體區域之有效位元(例如”1”)暫存。舉例言之,第5圖描述有效位元”1”係暫存於第一分錄之”有效”項目中之情況。詳言之,第5圖描述例如有效位元”1”係暫存於第二分錄之”有效”項目中之情況。更詳言之,第5圖描述例如指示每一CPU無法存取藉由實體位址指示之記憶體區域之有效位元”0”係暫存於第三分錄的”有效”項目中之情況。
再詳言之,於每一分錄之”節點ID”項目中,其暫存指示具有實體位址排序的記憶體的節點的識別器。舉例言之,第
5圖描述指示節點之識別器”#1”係暫存於第一分錄之”節點ID”項目中的情況。更詳言之,第5圖描述例如指示節點之識別器”#1”係暫存於第二分錄之”節點ID”項目中的情況。
再詳言之,於每一分錄之”CPUID”項目中,其暫存指示與實體位址排序之記憶體連接之CPU的識別器。亦即,節點映射34指示存取目標實體位址係與那一個CPU連接之記憶體的實體位址。舉例言之,第5圖描述指示CPU係暫存於第一分錄之”CPUID”項目中之識別器”4”的情況。詳言之,第5圖描述諸如指示CPU係暫存於第二分錄之”CPUID”項目中之識別器”5”的情況。
除此之外,只要其可指示存取目標實體位址係與那一個CPU連接之實體位址,資訊可以與目前範例之格式不同之任意格式暫存於節點映射34。
回到第4圖,計算單元31係執行計算處理之計算裝置的最重要部份並執行操作系統(OS)及應用。詳言之,當讀取或寫入資料時,計算單元31輸出儲存係為讀取目標或寫入目標之資料的記憶體區域的虛擬位址(VA)至位址轉換單元35。
L1快取32係暫時地儲存頻繁地使用於計算單元31之資料之快取記憶體。雖然L2快取33暫時地儲存頻繁地使用之資料,類似於L1快取32,L2快取33係低速讀取及寫入資料之快取記憶體。同時,目錄資訊36a係儲存於快取目錄管理單元36,且係指示CPU之更新狀態之資訊,其中儲存於記憶體22之每一記憶體區域之資料係加以快取或係經快取的資料。於下文之說明中,在部份情況下,”目錄資訊”係簡單地參考為”目錄”。根據此目錄
之快取記憶體管理方法係頻繁地使用於快取一致性非均勻記憶體(Cache Coherent Non-Uniform Memory,ccNUMA)系統之技術。ccNUMA技術及目錄技術皆係習知技術,且因此將不詳細說明。詳言之,雖然於第4圖中,目錄36a係內建於快取目錄管理單元36內,其亦可能將目錄資訊36a記錄於記憶體22之記憶體區域的一部份中。
位址轉換單元35具有TLB35a。於TLB35a中,其暫存與虛擬位址及實體位址相關聯之分錄。位址轉換單元35可使用TLB35a將自計算單元31輸出之虛擬位址轉換為實體位址。舉例言之,位址轉換單元35自TLB35a搜尋與自計算單元31取得之虛擬位址相關聯之實體位址,且當獲得作為搜尋結果之實體位址時,將經獲得之實體位址輸出至快取目錄管理單元36。除此之外,當TLB失誤發生時,位址轉換單元35執行困境處理。同時,諸如OS之系統軟體將TLB失誤發生之一組實體位址及虛擬位址儲存於TLB35a。同時,對於遭禁止之一組登記之實體位址,即使於TLB失誤發生時,諸如OS之系統軟體並未暫存一組實體位址及虛擬位址於TLB35a。
同時,當藉由計算單元31執行之應用請求對共用記憶體之分配時,OS及位址轉換單元35執行下列處理。亦即,當TLB失誤發生時,諸如OS之系統軟體將分錄暫存於TLB35a。詳言之,當TLB失誤並未發生時,分錄已暫存於TLB35a,且位址轉換單元35將虛擬位址轉換為實體位址。
更詳言之,當應用或OS請求本地區域之分配時,位址轉換單元35及OS執行下列處理。亦即,當TLB失誤發生時,諸如
OS之系統軟體暫存與容許應用或OS存取專屬於CPU21之本地區域及分配予本地區域之一範圍內的實體位址之虛擬位址相關聯之分錄於TLB35a。
快取目錄管理單元36可管理快取資料及目錄。快取目錄管理單元36可取得自位址轉換單元35輸出之實體位址。
詳言之,當自位址轉換單元35取得實體位址時,快取目錄管理單元36可執行下列處理。亦即,快取目錄管理單元36決定儲存於經取得之實體位址內之資料是否使用目錄36a快取於L1快取32及L2快取33。
詳言之,當決定儲存於經取得之實體位址內之資料已快取,快取目錄管理單元36將經快取之資料輸出至計算單元31。更詳言之,當儲存於經取得之實體位址內之資料並未快取於L1快取32及L2快取33時,快取目錄管理單元36執行下列處理。首先,快取目錄管理單元36參考節點映射34,且識別包括經取得之實體位址之一範圍的分錄。詳言之,快取目錄管理單元36決定經識別之分錄之CPUID是否係CPU21的CPUID。隨後,當經識別之分錄之CPUID係為CPU21的CPUID時,快取目錄管理單元36將實體位址輸出至記憶體存取單元41。
詳言之,當經識別之分錄之CPUID並非CPU21的CPUID時,快取目錄管理單元36執行下列處理。亦即,快取目錄管理單元36可取得經識別之分錄之CPUID及實體位址。詳言之,快取目錄管理單元36可將經取得之CPUID及實體位址輸出至封包控制單元37。
更詳言之,當取得儲存於藉由自記憶體存取單元41或
封包控制單元37輸出之實體位址指示的記憶體區域的資料時,快取目錄管理單元36可將經取得之資料儲存於L1快取32及L2快取33。再詳言之,快取目錄管理單元36可將快取於L1快取32之資料輸出至計算單元31。
不僅如此,當自封包控制單元37取得實體位址時,快取目錄管理單元36可執行下列處理,亦即,當自另一CPU或I/O裝置取得記憶體存取之請求目標實體位址時,快取目錄管理單元36可執行下列處理。亦即,快取目錄管理單元36參考節點映射34,並決定經取得之實體位址是否係對本地區域排序之實體位址。
當另一部段係請求來源且經取得之實體位址係對本地區域排序之實體位址時,快取目錄管理單元36指令封包控制單元37發送拒絕響應(存取錯誤)至請求來源。
詳言之,當經取得之實體位址係對共用區域排序之實體位址時,快取目錄管理單元36取得藉由經取得之實體位址指示之儲存於記憶體區域的資料,將經取得之資料輸出至封包控制單元37並指令封包控制單元37將經取得之資料發送至請求來源。
更詳言之,快取目錄管理單元36執行使用目錄系統保持經快取之資料之一致性的處理。舉例言之,當發送對儲存於記憶體22之資料之請求至請求發送來源的CPU時,快取目錄管理單元36決定除發送來源之CPU外之CPU是否快取資料。
詳言之,當另一CPU並未快取請求目標資料時,快取目錄管理單元36自L1快取32、L2快取33及記憶體22取得請求目標資料。而後,快取目錄管理單元36將經取得之資料輸出至封包控單元37。
同時,當另一CPU快取請求目標資料時,快取目錄管理單元使用諸如伊利諾協定(Illinois protocol)之方法執行用於維持快取一致性之處理。舉例言之,快取目錄管理單元36決定經快取之資料之狀態係已修改/專屬/共用/無效(MESI)中之何者。
詳言之,快取目錄管理單元36根據決定結果,發送用於維持一致性之請求或命令(指令)至另一CPU之快取目錄管理單元或自另一CPU之快取目錄管理單元接收用於維持一致性之請求或命令(指令),並執行匹配經快取之資料之狀態的處理。同時,”已修改”指示CPU之經快取之資料中的一者之狀態且經快取之資料已更新。除此之外,當經快取之資料之狀態係為”已修改”時,需執行寫回。
詳言之,”專屬”指示CPU中之一者快取資料且經快取之資料並未更新的狀態。更詳言之,”共用”指示數個CPU快取資料且經快取之資料並未更新之狀態。再詳言之,”無效”指示快取狀況並未暫存。
下文將說明一指定範例。快取目錄管理單元36指令封包產生單元37a發送命令,指令快取具有狀況M(已修改)之資料之CPU寫回。詳言之,快取目錄管理單元36更新資料狀況,並執行匹配經更新之狀況之處理。除此之外,藉由快取目錄管理單元36發送及接收之請求或命令之種類將於下文說明。
當自快取目錄管理單元36取得實體位址及CPUID時,封包產生單元37a產生儲存經取得之實體位址及CPUID之封包,亦即作用為記憶體存取請求之封包。詳言之,封包產生單元37a發送經產生之封包至路由器40。
第6圖係用於說明根據實施例之自CPU發送之封包的圖。藉由第6圖所描述之範例,封包產生單元37a可產生包括CPUID、實體位址及指示請求內容之資料之請求,並將經產生之請求輸出至路由器40。在此情況中,路由器40將藉由封包產生單元37a產生之請求經由XB連接單元27輸出至XB2。而後,XB2傳輸請求至藉由包括於請求內之CPUID指示之CPU。
除此之外,當自快取目錄管理單元36接收發出用以維持一致性之請求或命令之指令時,封包產生單元37a產生經指令之請求或命令。詳言之,封包產生單元37a經由路由器40、XB連接單元27及XB2發送經產生之請求或命令至指定CPU。更詳言之,當自I/O裝置取得資料時,封包產生單元37a將對I/O裝置之存取請求輸出至路由器40。
當接收自非本地節點之另一CPU或另一I/O裝置輸出之封包時,封包接收單元37b取得包括於經接收之封包之實體位址。詳言之,當經由PCIe控制單元42及路由器40接收自本地節點之I/O裝置輸出之封包時,封包接收單元37b取得包括於經接收之封包之實體位址。更詳言之,封包接收單元37b輸出經取得之實體位址至快取目錄管理單元36。再詳言之,當接收自另一CPU發送之資料時,封包接收單元37b輸出經接收之資料至快取目錄管理單元36。
更詳言之,當接收用於維持一致性之請求或命令時,封包接收單元37b將經接收之請求或命令輸出至快取目錄管理單元36。不僅如此,當自路由器40接收對I/O裝置或資料之存取請求之響應時,封包接收單元37b將經接收之響應或資料輸出至快取
目錄管理單元36。在此情況中,舉例言之,快取目錄管理單元36將經取得之資料輸出至記憶體存取單元41。藉此,記憶體存取單元41可將資料儲存於記憶體22。
當接收自封包產生單元37a輸出之封包時,路由器40將經接收之請求輸出至XB連接單元27。詳言之,路由器40接收自另一CPU經由XB連接單元27發送之封包及資料,並將經接收之封包及資料輸出至封包接收單元37b。更詳言之,路由器40輸出自封包控制單元37輸出之諸如I/O裝置之封包至PCIe控制單元42。再詳言之,當自PCIe控制單元42接收諸如來自I/O裝置之請求時,路由器40輸出諸如經接收之請求至封包控制單元37或XB連接單元27。不僅如此,當經由XB連接單元27或封包控制單元37接收對I/O裝置之響應時,路由器40輸出經接收之響應至PCIe匯流排控制單元42b。
記憶體存取單元41係所謂的記憶體存取控制器(MAC),且控制對記憶體22之存取。舉例言之,當自快取目錄管理單元36接收實體位址時,記憶體存取單元41取得儲存於藉由經接收之實體位址指示之記憶體22的區域的資料,並將經取得之資料輸出至快取目錄管理單元36。除此之外,記憶體存取單元41使用記憶體鏡射功能(memory mirror function)令共用記憶體變為冗餘。
詳言之,記憶體存取單元41具有ECC檢查單元41a、CE位址暫存器41b及ICE發生統計計數器41c。
ECC檢查單元41a在每一預定週期或每次快取目錄管理單元36對記憶體22產生讀取存取請求時,實施下列處理。亦
即,ECC檢查單元41a決定CE是否發生於記憶體22之所有記憶體區域之資料或存取目標記憶體區域之資料。依據此決定,ECC檢查單元41a檢測CE。當檢測CE時,ECC檢查單元41a讀取經檢測之CE發生之記憶體區域的資料、校正經讀取之資料之錯誤及將經錯誤校正的資料寫回至經檢測之CE發生之記憶體區域。詳言之,ECC檢查單元41a再次讀取資料寫回之記憶體區域之資料,並再次決定CE是否發生於經讀取之資料。當其決定CE發生於第二決定時,ECC檢查單元41a決定PCE發生。以此方式,ECC檢查單元41a檢測PCE。
詳言之,ECC檢查單元41a記錄ICE發生統計計數器41c之預定時間內之CE發生統計,並決定當預定時間內CE發生超過預定次數α時,ICE發生。以此方式,ECC檢查單元41a檢測ICE。除此之外,記憶體存取單元41之處理單元(例如微電腦)可實施諸如預定時間內之依據程式處理之統計CE發生統計的統計操作
詳言之,當檢測ICE或PCE時,ECC檢查單元41a設定其中發生有經檢測之ICE或PCE之記憶體22的實體位址予CE位址暫存器41b。
當經由路由器40取得對I/O裝置之存取請求時,請求產生單元42a產生發送至係為存取請求目標之I/O裝置之請求,並輸出經產生之請求至PCIe匯流排控制單元42b。詳言之,當自I/O裝置取得實體位址及CPUID時,請求產生單元42a產生儲存有經取得之實體位址及CPUID之封包,亦即,作用為記憶體存取請求之封包。此種請求之形式包括I/O裝置讀取與CPU21或另一CPU連接之記憶體的請求。詳言之,當取得來自I/O裝置之實體位址、CPUID
及寫入資料時,請求產生單元42a產生儲存有經取得之實體位址、CPUID及寫入資料之封包,亦即作用為記憶體存取請求之封包。此種請求之形式包括I/O裝置寫入資料至連接於CPU21或另一CPU之記憶體的請求。詳言之,請求產生單元42a發送經產生之封包至路由器40。
當請求產生單元42a取得經產生之請求時,PCIe匯流排控制單元42b經由PCIe連接單元28發送請求至I/O裝置。詳言之,當經由PCIe連接單元28自I/O裝置取得實體位址及CPUID時,PCIe匯流排控制單元42b發送經取得之實體位址及CPUID至請求產生單元42a。更詳言之,當經由PCIe連接單元28自I/O裝置取得實體位址、CPUID及寫入資料時,PCIe匯流排控制單元42b發送經取得之實體位址、CPUID及寫入資料至請求產生單元42a。
以下將使用第7圖說明自CPU21發送請求至另一CPU之處理範例。第7圖係用於說明根據實施例之自CPU發送請求之處理的範例的圖。舉例言之,如第7圖之(A)所示,與存取儲存有實體位址之記憶體之CPU的CPUID及記憶體的實體位址相關聯之分錄係藉由服務處理器24對節點映射34設定。
詳言之,計算單元31執行計算處理,並將存取目標虛擬位址輸出至位址轉換單元35,如第7圖之(B)所示。而後,位址轉換單元35將虛擬位址轉換為實體位址,並將經轉換之實體位址輸出至快取目錄管理單元36,如第7圖之(C)所示。
同時,當自位址轉換單元35取得實體位址時,如第7圖之(D)所示,快取目錄管理單元36參考節點映射34,並取得與經取得之實體位址相關聯之CPUID。詳言之,當經取得之CPUID並非
CPU21之CPUID時,如第7圖之(E)所示,快取目錄管理單元36將經取得之CPUID及實體位址輸出至封包控制單元37。
於此情況中,封包產生單元37a產生儲存自快取目錄管理單元36取得之實體位址及CPUID之封包,並將經產生之封包輸出至路由器40,如第7圖之(F)所示。而後,如第7圖之(G)所示,路由器40將自封包產生單元37a取得之封包輸出至XB連接單元27。隨後,如第7圖之(H)所示,XB連接單元27將經取得之封包輸出至XB2。而後,XB2將封包傳送至藉由儲存於封包之CPUID所指示之CPU。
而後,當CPU21自另一CPU接收封包時所執行之處理範例將使用第8圖說明如下。第8圖係用於說明根據實施例之當CPU接收封包時所執行之處理範例的圖。舉例言之,如第8圖之(J)所示,封包接收單元37b自另一CPU接收儲存有CPU21之CPUID、及對記憶體22排序之實體位址之封包或響應封包。
於此情況中,封包接收單元37b自經接收之封包取得實體位址,且如第8圖之(K)所示,將經取得之實體位址及顯示經取得的實體位址之請求來源是否係本地部段之資訊輸出至快取目錄管理單元36。而後,快取目錄管理單元36決定藉由實體位址所指示之記憶體區域是否係共用區域或係本地區域。
當請求來源係另一部段時,快取目錄管理單元36檢查共用區域是否經存取,並請求封包控制單元37回應本地區域之錯誤。於其他情況中,如第8圖之(L)所示,快取目錄管理單元36決定藉由實體區域指示之記憶體區域之資料是否經快取於L1快取32及L2快取33。
詳言之,當決定資料並未經快取時,快取目錄管理單元36將實體位址輸出至記憶體存取單元41,如第8圖之(M)所示。而後,如第8圖之(N)所示,記憶體存取單元41自記憶體22取得藉由實體位址指示之記憶體區域之資料,並將資料輸出至快取目錄管理單元36。詳言之,當實體位址輸入至記憶體存取單元41時,若IEC及PEC係於儲存於藉由經輸入之實體位址指示之記憶體區域的資料中檢測,ECC檢查單元41設定輸入於CE位址暫存器41b之實體位址,如第8圖之(O)所示。
更詳言之,當自L1快取32、L2快取33或記憶體存取單元41取得資料時,快取目錄管理單元36將經取得之資料輸出至封包控制單元37並指令封包控制單元37將資料發送至請求來源之CPU。
其次,下文將使用第9圖說明自I/O裝置發送讀取或寫入請求至非CPU21之CPU之處理範例。第9圖係用於說明根據實施例之自I/O裝置發送請求之處理範例的圖。舉例言之,當自I/O裝置取得實體位址及CPUID時,PCIe連接單元28將經取得之實體位址及CPUID輸出至PCIe匯流排控制單元42b,如第9圖之(P)所示。詳言之,當自I/O裝置取得實體位址、CPUID及寫入資料時,PCIe連接單元28將經取得之實體位址、CPUID及寫入資料輸出至PCIe匯流排控制單元42b,如第9圖之(P)所示。
更詳言之,當自PCIe連接單元28取得實體位址及CPUID時,PCIe匯流排控制單元42b將經取得之實體位址及CPUID輸出至請求產生單元42a,如第9圖之(Q)所示。再詳言之,如第9圖之(Q)所示,當自PCIe連接單元28取得實體位址、CPUID
及寫入資料時,PCIe匯流排控制單元42b將經取得之實體位址、CPUID及寫入資料發送至請求產生單元42a。
當自PCIe匯流排控制單元42b取得實體位址及CPUID時,請求產生單元42a產生作用為包括經取得之實體位址及CPUID之讀取請求的封包。詳言之,當自PCIe匯流排控制單元42b取得實體位址、CPUID及寫入資料時,請求產生單元42a產生作用為包括經取得之實體位址、CPUID及寫入資料之寫入請求的封包。更詳言之,如第9圖之(R)所示,請求產生單元42a將經產生之封包輸出至路由器40。
其次,如第9圖之(T)所示,路由器40將自請求產生單元42a取得之請求輸出至XB連接單元27。隨後,如第9圖之(U)所示,XB連接單元27將經取得之請求輸出至XB2。而後,XB2將封包傳送至藉由儲存於請求內之CPUID所指示之CPU。
其次,於I/O裝置接收來自非CPU21之CPU之響應的處理範例將使用第10圖說明如下。第10圖係用於說明根據實施例之於I/O裝置接收響應之處理範例的圖。舉例言之,如第10圖之(V)所示,XB連接單元27接收來自非CPU21之CPU的對I/O裝置之響應。
當接收響應時,如第10圖之(W)所示,XB連接單元27將經接收之響應輸出至路由器40。當接收響應時,如第10圖之(X)所示,路由器40將經接收之響應輸出至請求產生單元42a。詳言之,如第10圖之(Y)所示,請求產生單元42a將響應輸出至PCIe匯流排控制單元42b。當接收響應時,如第10圖之(Z)所示,PCIe匯流排控制單元42b將經接收之響應輸出至PCIe連接單元28。藉
此,其可將響應自PCIe連接單元28發送至I/O裝置。
通訊單元23、服務處理器24、XB連接單元27、XB連接單元27a及PCIe連接單元28係電子電路。同時,作為電子電路之範例,諸如特殊應用積體電路(ASIC)及場域可程式閘極陣列(FPGA)等積體電路及CPU或微處理單元(MPU)皆可適用。詳言之,諸如ASIC及FPGA等積體電路或MPU皆可適用以取代CPU21至21c。
更詳言之,記憶體22至22a係諸如隨機存取記憶體(RAM)、唯讀記憶體(ROM)或快閃記憶體等半導體記憶體元件。再詳言之,L1快取32及L2快取33係諸如靜態隨機存取記憶體(SRAM)之高速半導體記憶體元件。
其次,用於保持CPU21至21c中之每一者之一致性的處理將說明如下。除此之外,於下文之說明中,資訊處理系統1之每一CPU使用伊利諾協定(Illinois protocol)保持一致性。
詳言之,於下文之說明中,資訊處理系統1之每一記憶體係識別為具有所有CPU可快取資料之空間的記憶體。更詳言之,於下文之說明中,經由CPU之MAC直接且實體地連接至儲存有經請求之資料的記憶體的CPU係參考為”本區CPU”,且請求資料以將其儲存於其快取之CPU係參考為”本地CPU”。
再詳言之,具有已發送請求至本區CPU且已快取資料之CPU係參考為”遠端CPU”。除此之外,本地CPU及本區CPU在某些情況中係相同的,且本地CPU與遠端CPU在某些情況中係相同的。
本地CPU決定存取目標實體位址係對存取本區CPU之
記憶體排序,參考本地CPU之節點映射。詳言之,本地CPU對本區CPU發出儲存實體位址之請求。除此之外,藉由本地CPU發出之請求包括數種請求。因此,本區CPU之快取目錄管理單元根據經取得之請求之種類控制快取一致性。
藉由本地CPU發出之請求之種類包括諸如共用提取存取、專屬提取存取、快取無效請求及快取替換請求。舉例言之,共用提取存取係”移入以共用”之執行請求且係於本區CPU自記憶體讀取資料以進行存取時發出之請求。
詳言之,專屬提取存取係為諸如”專屬地移入”之執行請求,且係於本區CPU將資料儲存於記憶體以進行存取時在將資料裝載於快取時發出。更詳言之,快取無效請求係為諸如”移出”之執行請求,且係於本區CPU遭請求使快取線無效時發出。除此之外,當接收快取無效請求時,在某些情況下本區CPU發出快取無效請求至遠端CPU,且在某些情況下發出實施快取”無效”之命令。
快取替換請求係為諸如”寫回”之執行請求,且係於本區CPU寫入經更新之快取資料,亦即處於”已修改”狀態之快取資料於記憶體以進行存取時發出。除此之外,快取替換請求係為諸如”沖回”之執行請求,且係於並未經更新之經快取之資料,亦即處於”共用”或”專屬”狀態之資料被廢除時發出。
當自本地CPU或遠端CPU接收上述請求時,本區CPU發出命令至本地CPU或遠端CPU以處理請求。同時,本區CPU發出數種命令以根據經取得之請求之種類控制快取一致性。舉例言之,本區CPU發出”移出及分路以共用”至藉由遠端CPU快取之
負載資料至本地CPU。
詳言之,例如本區CPU令所有非本地CPU之遠端CPU之快取無效,且於其後本區CPU發出”專屬地移出及分路”以將資料發送至本地CPU。更詳言之,本區CPU發出”無效移出”以請求遠端CPU使快取無效。除此之外,當本區CPU發出”無效移出”時,所有CPU快取對目標位址進入”無效”狀態。此外,本地CPU於異動完成時快取資料。
詳言之,本區CPU發出”移出清沖”以請求遠端CPU令快取線無效。除此之外,當本區CPU發出”移出清沖”時,目標資料係僅儲存於本區CPU之記憶體。詳言之,當目標資料之狀態係為”共用”時,本區CPU發出”緩衝器無效”以請求遠端CPU廢除快取。
本區CPU根據請求之種類發出上述命令,並轉化藉由每一CPU快取之資料之狀態。詳言之,當接收命命時,本地CPU及遠端CPU執行藉由命令指示之處理,並轉化藉由本地CPU及遠端CPU快取之資料之狀態。
隨後,本地CPU及遠端CPU發送完成響應至命令或具有資料之完成響應至本區CPU。詳言之,本區CPU及遠端CPU執行經命令之處理,且於其後發送具有資料之請求響應至本地CPU。
其次,用於控制共用區域之資訊處理系統1之處理流程將使用第11圖說明如下。第11圖係用於說明控制共用區域之處理流程之流程圖。首先,資訊處理系統1根據來自應用之請求執行
分配節點間之共用記憶體的處理(步驟S101)。其次,資訊處理系統1執行附接於節點間共用之共用記憶體之處理(步驟S102)。
隨後,藉由資訊處理系統1之每一CPU執行之應用使用每一記憶體(步驟S103)。其次,資訊處理系統執行解接共用記憶體之處理(步驟S104)。隨後,資訊處理系統1執行釋放共用記憶體之處理(步驟S105),並結束處理。除此之外,僅有共用記憶體之本區節點之應用可實行步驟S101及步驟S105,或實際處理係無操作(nop),則除共用記憶體之本區節點外之節點的應用亦可實行步驟S101及步驟S105。
其次,第11圖之步驟S101之分配共用記憶體的處理流程將使用第12圖說明如下。第12圖係用於說明分配共用記憶體之處理之流程圖。藉由第12圖所描述之範例,藉由CPU21執行之應用請求OS執行分配節點間之共用記憶體的處理(步驟201)。
而後,藉由CPU21執行之OS分配自實體位址區域請求之用於共用區域之大小的記憶體(步驟202)。其次,藉由OS分配之共用記憶體之管理ID係傳送至應用(步驟203),且共用記憶體分配處理結束。
而後,第11圖之步驟S102之附接節點間的共用記憶體之處理的流程將使用第13圖說明如下。第13圖係用於說明共用記憶體附接處理之流程圖。首先,應用傳送管理ID至OS,並請求附接節點間之共用記憶體之處理(步驟S301)。在此情況中,OS與藉由另一節點執行之OS通訊,並取得與管理ID相關聯之實體位址(步驟S302)。
同時,當OS與藉由另一節點執行之OS通訊時,其使用
經由LAN之通訊或經由服務處理器24之節點間之通訊。詳言之,藉由每一節點執行之OS將指定共用記憶體設定為供節點間通訊用之區域並儲存或讀取關於設定區域之資訊以實施通訊。
其次,OS判定並分配與實體位址相關聯之虛擬位址(步驟S303)。舉例言之,藉由CPU21執行之OS對位址轉換單元35設定實體位址及虛擬位址之TLB35a。
除此之外,藉由CPU21至21c中之每一者使用之虛擬位址可為重疊範圍,或可隨每一CPU改變之範圍。詳言之,藉由CPU21至21c中之每一者使用之虛擬位址可藉由應用而相對於OS指定。隨後,其將虛擬位址之值傳送至應用(步驟S304),並結束處理。
其次,於第11圖之步驟S103之應用的使用節點間的共用記憶體之處理流程將使用第14圖加以說明。第14圖係用於說明於應用中使用共用記憶體之處理的流程圖。舉例言之,藉由CPU21執行之應用發出虛擬位址,並存取藉由虛擬位址指示之記憶體區域(步驟S401)。
而後,CPU21決定是否發生TLB失誤(步驟S402)。詳言之,當發生TLB失誤時(步驟S402中之是),CPU21執行困境處理,並對TLB設定係為一組虛擬位址及實體位址之分錄(步驟S403)。
其次,應用再次發出虛擬位址,使用TLB將虛擬位址轉換為實體位址,並於其後正常地存取共用記憶體(步驟S404),並結束處理。同時,當未發生TLB失誤時(步驟S402中之否),對共用記憶體之存取係正常地執行(步驟S405),並結束處理。
其次,於第11圖之步驟S104之解接節點間的共用記憶
體之處理流程將使用第15圖加以說明。第15圖係用於說明解接節點間之共用記憶體之處理的流程圖。舉例言之,藉由CPU21執行之應用對OS指定節點間之共用記憶體的虛擬位址或管理ID,並請求解接處理(步驟S501)。
而後,藉由CPU21執行之OS清沖快取(步驟S502)。亦即,當OS於共用記憶體之分配解放(解除分配)後再次分配共用記憶體時,若共用記憶體之本區節點並未分配且係再啟動,則會有快取之狀態與真實記憶體之狀態衝突之疑慮。因此,OS清沖快取,並防止快取之狀態與真實記憶體之狀態衝突之狀態。
詳言之,OS取消節點間共用記憶體之分配,亦即,藉由應用使用之虛擬位址之範圍,並刪除與經取消之虛擬位址有關之TLB35a之分錄(步驟S503)。除此之外,即使隨後當TLB失誤發生於此節點之經解接之記憶體位址時(步驟S402中之是),OS並未對TLB35a設定與經解接之虛擬位址相關聯之實體位址。因此,步驟S404並未正常結束,且發生存取錯誤。不同於步驟S302之處理,在解接完成後,OS實施節點間之通訊,且此應用通知對共用記憶體之PA之存取已完成(步驟S504)。若共用記憶體係釋放於本區節點且此應用係使用共用記憶體之最後應用,則本區節點係經請求以實施釋放處理(步驟S505)並結束處理。
其次,於第11圖之步驟S105之釋放節點間共用記憶體的處理的流程將使用第16圖加以說明。第16圖係用於說明釋放節點間共用記憶體之處理之流程圖。舉例言之,藉由CPU21執行之應用請求OS實施釋放節點間共用記憶體之處理(步驟S601)。而後,當所有使用者解接經指定之共用記憶體時,OS釋放分配(步
驟S602),並結束處理。若解接並未完成,處理可以不實施分配釋放處理而完成。除此之外,完成實際分配之處理係於步驟S505中實施。
其次,自CPU21發送記憶體存取請求至另一CPU之處理的流程將使用第17圖加以說明。第17圖係用於說明發出請求之處理流程之流程圖。舉例言之,CPU21之計算單元31發出虛擬位址(步驟S701)。
而後,位址轉換單元35將虛擬位址轉換為實體位址(步驟S702)。其次,快取目錄管理單元36取得實體位址,並管理快取目錄(步驟S703)。亦即,快取目錄管理單元36轉化藉由經取得之實體位址指示之記憶體區域的快取狀態。
其次,快取目錄管理單元36參考節點映射34,並決定經取得之實體位址是否係對另一節點(另一部段)之記憶體排序的實體位址(步驟S704)。詳言之,當決定經取得之實體位址並非對另一節點(另一部段)之記憶體排序的實體位址時(步驟S704中之否),快取目錄管理單元36使用經取得之實體位址執行記憶體存取(步驟S705)。更詳言之,處理結束。
同時,當經取得之實體位址係對另一節點(另一部段)之記憶體排序之實體位址時(步驟S704中之是),快取目錄管理單元36取得與來自節點映射之實體位址相關聯之CPUID(步驟S706)。詳言之,封包發送單元產生儲存CPUID及實體位址之封包,亦即,記憶體存取請求並將封包傳送至XB2(步驟S707),並結束處理。
其次,當CPU21自另一CPU接收記憶體存取請求時執
行之處理之流程將使用第18圖說明如下。第18圖係用於說明接收請求時執行之處理流程之流程圖。除此之外,藉由第18圖所描述之範例,當CPU21自另一CPU接收”移入以共用”或”專屬地移入”時,其執行下列處理流程。舉例言之,CPU21自另一CPU經由XB2接收請求(步驟S801)。
在此情況中,CPU21使用節點映射決定請求目標實體位址是否係本地區域(步驟S802)。詳言之,當請求目標實體位址係本地區域時(步驟S802中之是),CPU21送回拒絕響應至請求來源CPU(步驟S803),並結束處理。
更詳言之,當請求目標實體位址並非本地區域時(步驟S802中之否),CPU21管理保持一致性之快取目錄(步驟S804)。再詳言之,CPU21決定藉由實體位址指示之記憶體區域之狀況(步驟S805)。
更詳言之,CPU21發出匹配經決定之狀況與另一CPU之命令(步驟S806),並轉化狀況(步驟S807)。隨後,CPU21產生響應以發送藉由實體位址指示之記憶體區域之資料至請求來源CPU(步驟S808),並結束處理。
其次,於每一預定週期或每次快取目錄管理單元36對記憶體22產生讀取存取請求時,藉由ECC檢查單元41a執行之處理流程將使用第19圖加以說明。第19圖係用於說明藉由ECC檢查單元執行之處理流程之流程圖。如第19圖所描述者,ECC檢查單元41a檢查記憶體22之所有記憶體區域之資料的錯誤及存取目標記憶體區域之資料。詳言之,ECC檢查單元41a決定是否發生CE(步驟S902)。
當CE並未發生時(步驟S902中之否),亦即舉例言之,資料係為正常或PE發生,處理結束。除此之外,於此情況中,記憶體存取單元41發送讀取存取目標記憶體區域之資料至快取目錄管理單元36。同時,當CE發生時(步驟S902中之是),ECC檢查單元41a讀取CE發生之記憶體區域之資料,校正經讀取的資料之錯誤,並將經錯誤校正的資料寫回CE發生之記憶體區域(步驟S903)。詳言之,ECC檢查單元41a再次讀取資料寫回之記憶體區域之資料(步驟S904),並再次對經讀取之資料檢查錯誤(步驟S905)。
隨後,ECC檢查單元41a決定CE是否發生於錯誤已再次檢查之資料(步驟S906)。當CE發生時(步驟S906中之是),ECC檢查單元41a對CE位址暫存器41b設定CE發生之記憶體22之實體位址(步驟s907),並結束處理。藉此,其可檢測ICE。
同時,當CE並未發生於第二錯誤檢查時(步驟S906中之否),ECC檢查單元41a增量對應於CE發生之記憶體22之實體位址的ICE發生統計計數器41c之值。同時,ICE發生統計計數器41c係於記憶體22之每一預定記憶體區域提供。舉例言之,當1位元之錯誤校正可於每64位元組藉由ECC實施時,ICE發生統計計數器41c係於每64位元組提供。詳言之,ICE發生統計計數器41c可於藉由分割記憶體22之記憶體區域而獲得之每一頁提供。
更詳言之,ECC檢查單元41a決定ICE發生統計計數器41c之值是否係為臨界值α或更小(步驟S909)。當ICE發生統計計數器41c之值大於臨界值α時(步驟S909中之否),步驟繼續至步驟S907。同時,當ICE發生統計計數器41c之值係為臨界值α或更小
時(步驟S909中之是),處理即為完成。
其次,每一預定週期藉由ECC檢查單元執行之處理流程將使用第20圖加以說明。第20圖係用於說明藉由ECC檢查單元執行之處理流程之流程圖。此處理係在較第19圖所描述之處理的週期更長之週期執行。如第20圖所描述者,ECC檢查單元41a清除ICE發生統計計數器41c之值(步驟S1001),並結束處理。
除此之外,當ECC檢查單元41a統計發生之CE並計算藉由將CE之統計除以統計時間(每單位時間之CE發生統計)所獲得之值,並且可於經計算之值超過臨界值β時決定發生ICE。藉由ECC檢查單元41a執行以檢測以此方式發生之ICE之處理範例將說明如下。
第21到27圖係用於說明藉由ECC檢查單元執行之ICE檢測發生處理之範例的圖。第21到27圖描述藉由ECC檢查單元41a使用之表格之範例。藉由第21到27圖之範例描述之表格包括其中暫存有每單位時間的CE發生統計的”平均值”項目、其中有CE發生統計之統計開始之時間的”開始時間”項目及其中暫存有CE最後一次發生之時間的”最後發生時間”項目。
舉例言之,暫存於第21圖所描述之表格之內容指示CE發生統計之統計係開始於2011年01月1日0:00,且最後一次發生CE之時間係2011年01月01日3:30。詳言之,暫存於第21圖所描述之表格之內容指示藉由將自2010年01月01日0:00至3:30之210分鐘內發生之CE統計除210分鐘所獲得之值,亦即,單位時間1分鐘內發生之CE統計的平均值為0.1(次數/分鐘)。
一種情況將以第21圖之範例加以說明,其中ECC檢查
單元41a於2011年01月01日3:50檢測新EC。在此情況中,ECC檢查單元41a自第21圖之範例所描述之表格計算發生於自2011年01月01日0:00至3:30之210分鐘間的CE之統計”21”(0.1×210)。詳言之,ECC檢查單元41a計算發生於2011年01月01日0:00至3:50間之230分鐘的CE之統計“22”(21+1)。隨後,ECC檢查單元41a計算藉由將發生於2011年01月01日0:00至3:50間之230分鐘的CE統計”22”除以230分鐘所獲得之值,亦即單位時間1分鐘內發生之CE之統計的平均值”0.095”。詳言之,如第22圖之範例所描述者,ECC檢查單元41a更新表格之”平均值”項目及”最後發生時間”項目為”0.095”及”2011/1/1 03:50”。隨後,ECC檢查單元41a決定平均值”0.095”是否超過臨界值β、於平均值超過臨界值β時檢測ICE之發生並對CE位址暫存器41b設定CE發生之記憶體22之實體位址。
除此之外,如第23圖之範例所描述者,”0”係暫存於每一項目作為表格預設值。此外,”開始時間”及”最後發生時間”項目之”0”意指系統的指定時間,例如Unix(註冊商標)系統中之1970年01月01日0:00。
詳言之,當CE第一次發生時,ECC檢查單元41a實施下列處理。一種情況將以第23圖之ECC檢查單元41a於2011年01月01日0:00檢測第一EC之範例說明。於此情況中,如第24圖之範例所描述,ECC檢查單元41a分別更新表格之”平均值”、”開始時間”及”最後發生時間”項目為”1”、”2011/1/1 0:00”及”2011/1/1 00:00”。
詳言之,當第二CE發生時,ECC檢查單元41a實施下列
處理。下文將以第24圖之範例說明,ECC檢查單元41a於2011年01月01日0:05檢查第二CE。在此情況中,ECC檢查單元41a計算於2011年01月01日0:00至0:05之5分鐘內發生之CE之統計”2”(1+1)。隨後,ECC檢查單元41a計算藉由將於2011年01月01日0:00至0:05之5分鐘內發生之CE之統計”2”除以5分鐘所獲得之值,亦即,於單位時間的一分鐘內發生的CE之統計的平均值”0.4”。詳言之,如第25圖之範例所描述,ECC檢查單元41a分別更新表格之”平均值”項目及”最後發生時間”項目為”0.5”及”2011/1/1 00:05”。
除此之外,當於”最後發生時間”項目暫存後之一時間,諸如一小時或更長之時間的預定時間檢測CE時,ECC檢查單元41a可檢測此CE之發生係第一CE之發生。一種情況將以第26圖之範例加以說明,其中顯示CE最後於2011年01月01日3:30檢測之資訊係暫存於表格之”最後發生時間”項目。在此情況中,經過2011年01月01日3:30後之預定時間(一小時)或更長之時間後,於2011年01月01日5:30檢測CE時,ECC檢查單元41a檢測CE是第一次檢測。詳言之,如第27圖所描述者,ECC檢查單元41a更新表格之”平均值”、”開始時間”及”最後發生時間”項目為”1”、”2011/1/1 05:30”及”2011/1/1 05:30”。藉此,當CE發生頻率急速上升時,由於過去之低發生頻率之故,其可防止察知CE發生頻率之上升。
此後,下文將說明藉由CPU21執行之OS執行之處理。第28A圖係描述根據實施例之藉由CPU執行之OS的功能組態的範例的圖。第28B圖係描述參考OS之處理之表格的資料組態的範
例的圖。第29到33圖、第36圖及第39圖係用於說明藉由OS執行之處理流程之流程圖。
第28A圖描述本區節點50及遠端節點70之OS的功能組態。藉由第28A圖之範例,本區節點50具有檢測單元51、停止單元52、停止請求單元53、發送單元54、接收單元55、決定單元56、再映射單元57、再映射請求單元58、回復單元59及回復請求單元60。詳言之,遠端節點70具有接收單元71、停止單元72、完成通知產生單元73、發送單元74、再映射單元75及回復單元76。
如第29圖所描述,檢測單元51藉由決定記憶體22之實體位址是否對CE位址暫存器41b設定而決定ICE或PCE是否發生(步驟S1101)。當ICE或PCE並未發生時(步驟S1101中之否),檢測單元51再次實施步驟S1101之處理。詳言之,當ICE或PCE發生時(步驟S1101中之是),檢測單元51決定ICE或PCE是否發生於共用記憶體(步驟S1102)。舉例言之,檢測單元51決定對CE位址暫存器41b設定之實體位址是否係共用記憶體之記憶體區域的位址。藉此,檢測單元51可決定ICE或PCE是否發生於共用記憶體。除此之外,當虛擬位址係對CE位址暫存器41b設定時,檢測單元51參考表格,其中暫存有將虛擬位址轉換為實體位址之方程式,自虛擬位址計算實體位址並決定實體位址是否係共用記憶體之記憶體區域之位址。同時,此種表格包括分錄,此分錄係與顯示位址區域之資訊、藉由位址區域指示之實體位址範圍、將虛擬位址轉換為實體位址之方程式及將實體位址轉換為虛擬位址的方程式相關聯並將其暫存。舉例言之,檢測單元51參考第28B圖所描述之表格自虛擬位址計算實體位址。
當ICE或PCE並未發生於共用記憶體時(步驟S1102中之否),檢測單元51執行預定處理(步驟S1103),並結束處理。同時,舉例言之,預定處理參考目標頁之退化或保留退化。除此之外,記憶體存取單元41可藉由忽略CE之發生,實施發送資料至快取目錄管理單元36之處理。
同時,當ICE或PCE發生於共用記憶體時(步驟S1102中之是),停止單元52執行存取停止處理(步驟S1104)。詳言之,停止請求單元53發送指令使用共用記憶體之另一節點(遠端節點70)之OS的指令(存取停止請求)至發送單元54,以停止存取共用記憶體(步驟S1105)。藉此,發送單元54發送存取停止請求至使用共用記憶體之另一節點。詳言之,已接收存取停止請求之遠端節點70之OS執行存取停止處理,並停止對共用記憶體之存取。更詳言之,遠端節點70之OS通知本區節點50對共用記憶體之存取停止處理已完成。除此之外,發送單元54發送存取停止請求至所有與本地節點連接之其他節點,或參考描述於第28C圖之範例之表格,指定使用共用記憶體之節點並發送存取停止請求至經指定之節點。描述於第28C圖之範例之表格包括與共用記憶體之實體位址、共用記憶體之虛擬位址、共用記憶體之記憶體長度、使用共用記憶體之節點之識別器及指示下一分錄之指標相關聯之分錄。
隨後,決定單元56決定本地節點(本區節點50)及其他節點是否停止存取共用記憶體(步驟S1106)。舉例言之,當檢查停止單元52是否完成存取停止處理時,決定單元56決定本地節點停止存取共用記憶體。詳言之,當接收單元55接收對共用記憶體之存取停止處理已完成之通知時,決定單元56決定已發送通知之另一
節點停止存取共用記憶體。
當決定本地節點(本區節點50)及另一節點停止存取共用記憶體時(步驟S1106中之是),再映射單元57執行頁再映射處理(步驟S1107)。
同時,頁再映射處理之處理內容將以指定範例加以說明。舉例言之,根據頁再映射處理,包括發生ICE或PCE之記憶體區域之頁係首先分割為數個頁,使得發生ICE或PCE之記憶體區域係包括於最小尺寸的經分割之頁。舉例言之,當一頁具有256MB時,包括發生ICE或PCE之記憶體區域之一頁(256MB)係如下所述分割為數個頁,使得包括發生ICE或PCE之記憶體區域之頁係包括於最小尺寸為8KB之頁。舉例言之,一頁(256MB)係分割為總數為128MB(1頁)、8KB(8頁)、64KB(63頁)及4MB(31頁)之103頁。藉此,其可抑制數量自256KB至8KB之複製。此頁分割處理係實施以減少複製處理時間,且並非係不可缺少的處理。亦即,此頁分割處理並非一定需要實施。可替代地,僅當可使用(並非由應用使用)之節點間共用記憶體具有特定容量或更小或係不足夠時,頁分割處理才會實施。此係因為其可取得8KB之頁,即使其無法取得256MB之頁。詳言之,根據頁再映射處理,其可取得複製終點頁。除此之外,僅有藉由系統固定或藉由使用者指定之複製終點頁之尺寸可在OS啟動時或應用啟動時取得,使得複製終點頁可在不失敗之情形下取得。隨後,根據頁再映射處理,包括發生ICE及PCE之記憶體區域之頁(8KB)的頁係複製於複製終點頁。除此之外,當頁分割處理並未實施時,諸如全部256MB之全部原始頁係以上述範例之方式複製。隨後,根據頁再映射處
理,新頁組態係對OS之管理區域設定。
隨後,再映射請求單元58發送再映射頁至使用共用記憶體之另一節點的OS之指令(頁再映射請求)至發送單元54(步驟S1108)。藉此,發送單元54發送頁再映射請求至使用共用記憶體之另一節點。詳言之,已接收頁再映射請求之遠端節點70之OS執行頁再映射處理,並再映射頁。更詳言之,遠端節點70之OS通知本區節點50頁再映射處理已完成。除此之外,發送單元54發送頁再映射請求至所有連接至本地節點之其他節點,或參考第28C圖之範例所描述之表格,指定使用共用記憶體之節點並發送頁再映射請求至經指定之節點。
隨後,決定單元56決定本地節點及另一節點是否結束再映射頁(步驟S1109)。舉例言之,當檢查再映射單元57是否完成頁再映射處理時,決定單元56決定本地節點結束再映射頁。詳言之,當接收單元55接收頁再映射處理已完成之通知時,決定單元56決定已發送通知之另一節點結束再映射頁。
當決定本地節點及另一節點完成再映射頁時(步驟S1109中之是),回復單元59執行存取回復處理(步驟S1110)。詳言之,回復請求單元60發送指令使用共用記憶體之另一節點之OS回復對共用記憶體的存取的指令至發送單元54(步驟S1111),並結束處理。藉此,發送單元54發送存取回復請求至使用共用記憶體之另一節點。詳言之,已接收存取回復請求之遠端節點70之OS執行存取回復處理,並回復對共用記憶體之存取。更詳言之,遠端節點70之OS通知本區節點50存取回復處理已完成。除此之外,發送單元54發送存取回復請求至所有連接至本地節點之其他節
點,或參考第28C圖之範例所描述之表格,指定使用共用記憶體之節點並發送存取回復請求至經指定之節點。
其次,藉由已接收存取停止請求之遠端節點70之OS執行的處理將使用第30圖說明如下。第30圖係用於說明藉由已接收存取停止請求之遠端節點的OS執行之處理之流程圖。如第30圖所描述,停止單元72執行存取停止處理(步驟S1201)。詳言之,完成通知產生單元73通知發送單元74存取停止處理已完成(步驟S1202),並結束處理。同時,已接收存取停止處理已完成之通知的發送單元74發送存取停止處理已完成之通知至本區節點50。
其次,藉由已接收頁再映射請求之遠端節點70之OS執行的處理將使用第31圖說明如下。第31圖係用於說明藉由已接收頁再映射請求之遠端節點的OS執行之處理之流程圖。如第31圖所描述,再映射單元75執行頁再映射處理(步驟S1301)。根據此頁再映射處理,新頁組態(介於VA與PA間之新對應)係對OS之管理區域設定。詳言之,完成通知產生單元73通知發送單元74頁再映射處理已完成(步驟S1302),並結束處理。同時,已接收頁再映射處理已完成之通知的發送單元74發送頁再映射處理已完成之通知至本區節點50。
其次,藉由已接收存取回復請求之遠端節點70之OS執行的處理將使用第32圖說明如下。第32圖係用於說明藉由已接收存取回復請求之遠端節點的OS執行之處理之流程圖。如第32圖所描述,回復單元76執行存取回復處理(步驟S1401),並結束處理。除此之外,完成通知產生單元73亦可於步驟1401之處理後通知發送單元74存取停止處理已完成。同時,已接收存取停止處理已完
成之通知之發送單元74發送存取停止處理已完成之通知至本區節點50。
其次,第29圖之步驟S1104及第30圖之步驟S1201之存取停止處理之流程將使用第33圖說明如下。第33圖係用於說明存取停止處理之流程圖。如第33圖所描述,停止單元52(停止單元72)取得用於經指定之共用記憶體之記憶體管理表格(頁管理表格)之I/O處理鎖定(步驟S1501)。藉此,對I/O裝置之存取暫停。
同時,記憶體管理表格之資料組態之範例將說明如下。第34圖係描述記憶體管理表格之資料組態之範例的圖。第34圖之範例之記憶體管理表格包括暫存有指示存取停止旗標的開啟/關閉狀態之值的”存取停止旗標”項目及暫存有指示I/O處理鎖定之狀態的值的”I/O處理鎖定”項目。詳言之,第34圖之記憶體管理表格包括暫存有對另一頁管理表格之指標之”對另一頁管理表格之指標”項目,及暫存有對位址轉換表格之指標的”對位址轉換表格之指標”項目。更詳言之,第34圖之範例之記憶體管理表格包括暫存有其他管理資訊項目的各種形式的”其他管理資訊”項目。
再詳言之,藉由暫存於記憶體管理表格之”對位址轉換表格之指標”指示之位址轉換表格將說明如下。第35圖係描述位址轉換表格之資料組態之範例的圖。第35圖之範例之位址轉換表格包括暫存有記憶體22的實體位址的”PA”項目、暫存有與實體位址相關聯之虛擬位址的”VA”項目、及暫存有藉由記憶體22之實體位址指示的記憶體區域的大小的”區域長度”項目。詳言之,第35圖之範例之位址轉換表格包括暫存有對頁管理表格之指
標的”對頁管理表格之指標”項目、及暫存有對另一位址轉換表格之指標的”對另一位址轉換表格之指標”項目。更詳言之,第35圖之範例的位址轉換表格包括暫存有其他管理資訊項目之各種形式的”其他管理資訊”項目。
再詳言之,停止單元52(停止單元72)對經指定之共用記憶體設定記憶體管理表格之存取停止旗標(步驟S1502)。藉此,對共用記憶體之存取停止。隨後,停止單元52(停止單元72)參考位址轉換表格,並於與共用記憶體之虛擬位址及實體位址相關聯之分錄係暫存於TLB35a時實施下列處理。亦即,停止單元52(停止單元72)自TLB35a刪除分錄(步驟S1503),並結束處理。
同時,當與共用記憶體之虛擬位址及實體位址相關聯之分錄自TLB35a刪除時,若應用存取共用記憶體,則發生TLB失誤。藉由目前之範例,當此種TLB失誤發生時,TLB失誤處理係執行為中斷處理,且可防止應用對共用記憶體之存取。
第36圖係用於說明TLB失誤處理之流程之流程圖。如第36圖所描述,OS自中斷發生之程式計數器指定處理(步驟S1601)。隨後,OS自發生位址搜尋第35圖所描述之位址轉換表格。當發現對應位址轉換表格時,其檢查藉由位址轉換表格之頁管理表格之指標指示的頁管理表格。其決定藉由存取終點位址指示之記憶體區域是否係存取停止之區域、換出發生(換出已實施之資訊已記錄)之記憶體區域或異常發生(未有位址轉換表格之記憶體區域)的記憶體區域(步驟S1602)。
當存取停止旗標開啟時,亦即,當記憶體區域係存取停止之記憶體區域時(步驟S1602:存取停止),OS自執行處理列
表移除目標處理資訊,並將執行處理列表移動至存取回復等待列表(步驟S1603)。同時,存取回復等待列表之資料組態之範例將說明如下。第37圖係描述存取回復等待列表之資料組態之範例的圖。第37圖之範例所描述之存取回復等待列表包括暫存有用於識別處理的識別器之”處理識別器”項目,及暫存有指示諸如回復程式計數器之暫存器資訊之區域已清空的指標的”處理復原資訊”項目。詳言之,第37圖之範例描述之存取回復等待列表包括暫存有回復等待共用記憶體之虛擬位址的”回復等待共用記憶體位址”項目,及暫存有對下一列表之指標的”對下一列表之指標”項目。
隨後,OS請求OS之排程模組啟動另一處理(步驟S1606),並結束處理。
詳言之,於發生換出之記憶體區域之情況中(步驟S1602:換出),OS啟動存取終點頁之換進處理(步驟S1604)。更詳言之,OS自執行處理列表移除目標處理資訊,並移動目標處理資訊至排程等待列表(步驟S1605),並進行步驟S1606。同時,排程等待列表之資料組態之範例將說明如下。第38圖係描述存取回復等待列表之資料組態之範例的圖。第38圖之範例所描述之存取回復等待列表包括暫存有用於識別處理的識別器的”處理識別器”項目,及暫存有指示諸如回復程式計數器之暫存器資訊之區域已清空的指標的”處理復原資訊”項目。詳言之,第38圖之範例所描述之存取回復等待列表包括暫存有對下一列表之指標的”對下一列表之指標”項目。
更詳言之,於發生異常之記憶體區域之情況中(步驟
S1602:異常位址),OS執行導致存取處理之存取錯誤的”異常位址存取處理”(步驟S1607),並結束處理。
其次,第29圖之步驟S1110及第32圖之步驟S1401的存取回復處理之流程將使用第39圖說明如下。第39圖係用於說明存取回復處理之流程圖。如第39圖所描述者,回復單元59(回復單元76)清除用於經指定之共用記憶體之記憶體管理表格的存取停止旗標(步驟S1701)。藉此,CPU回復對共用記憶體之存取。
詳言之,回復單元59(回復單元76)釋放用於經指定之共用記憶體之記憶體管理表格的I/O處理鎖定(步驟S1702)。藉此,I/O回復存取。隨後,回復單元59(回復單元76)檢查存取回復等待處理列表並移動處理至排程等待列表(步驟S1703),並結束處理。
除此之外,藉由諸如停止單元52、停止單元72、回復單元59及回復單元76執行之處理可藉由處理實施。第40圖係描述根據實施例之OS之功能組態及藉由CPU執行之處理的範例的圖。第40圖之範例與第28A圖之範例的差異在於相較於第28A圖之範例,處理包括停止單元52、停止單元72、回復單元59及回復單元76。同時,OS產生預先與共用記憶體之實體位址及各種事件處置器相關聯之資訊。舉例言之,此資訊係產生於應用請求OS與”共用記憶體位址”、”需接收之事件形式”(存取停止請求及存取回復請求)及與此事件相關之”事件處置器程式之位址”相關聯。此應用通常僅知悉”共用記憶體之虛擬位址(VA)”,且並不知悉實體位址(PA)。而後,OS側將VA轉換為PA,並記錄PA。當發生與PA相關之事件時(例如存取停止請求),與此事件及PA相關聯之事件處置器程式啟動。(其暫存事件處置器程式之開始位
址,且程式操作係自此開始位址開始。)
詳言之,當檢測單元51檢測ICE或PCE時,停止單元52及停止單元72參考經產生之資訊,並讀取與對CE位址暫存器41b設定之共用記憶體的實體位址相關聯的第一事件處置器。更詳言之,當事件發生同時應用正進行操作時,在此時間點操作之暫存器資訊係清空至堆疊,且事件處置器程式之操作係自第一事件處置器程式的開始位址開始。而後,第一事件處置器停止自應用對共用記憶體之每一存取(讀取/寫入及I/O存取)。停止存取之方法包括:(1)於程式內準備及產生”用於共用記憶體之存取停止旗標”,使得應用僅於旗標未開啟時繼續存取。此方法亦包括於第一事件處置器開啟旗標,及(2)停止第一事件處置器之應用之操作並停止應用處理之每一處理。
詳言之,當決定單元56決定本地節點及另一節點再映射頁時,回復單元59參考經產生之資訊,並讀取與對CE位址暫存器41b設定的共用記憶體之實體位址相關聯之第二事件處置器。而後,應用(處理)回復所有經停止之對經指定之共用記憶體的存取(讀取/寫入及I/O存取)。詳言之,當接收存取回復請求時,回復單元76參考經產生之資訊,並讀取與對CE位址暫存器41b設定的共用記憶體之實體位址相關聯之第二事件處置器。更詳言之,當事件發生同時應用正進行操作時,在此時間點操作之暫存器資訊係清空至堆疊,且事件處置器程式之操作係自第二事件處置器程式的開始位址開始。而後,第二事件處置器回復來自應用(處理)的所有經停止之對經指定之共用記憶體的存取。回復存取之方法包括:(1)在程式內準備並產生”對共用記憶體之存取停止旗
標”,使得應用僅於旗標並未開啟時繼續存取。此方法亦包括關閉第二事件處置器之旗標,及(2)由於應用停止操作於第一事件處置器,自第一事件處置器重新寫入PC及送回應用處理。除此之外,直接自回復單元59援用之本地節點之事件處置器及自回復單元76直接援用的另一節點的事件處置器可為包括單一指令序列之程式或包括不同指令序列之程式。(此為程式設計者之偏好且兩者皆可實行。)
如上文所述,資訊處理系統1具有各自具有記憶體之數個建構方塊及連接於數個建構方塊間之XB2。數個建構方塊中之至少一建構方塊10實施下列包括於建構方塊10或另一建構方塊之記憶體的資料的處理,且此資料係儲存於建構方塊10或另一建構方塊所存取之共用記憶體區域。亦即,建構方塊10檢測在預定時間內發生超過預定次數之ICE,或檢測發生於共用記憶體區域之單一位置的PCE。當檢測錯誤時,建構方塊10實施控制以防止建構方塊10及另一建構方塊存取共用記憶體。建構方塊10復原不同於共用記憶體區域之記憶體之資料。建構方塊10通知不同記憶體區域予另一建構方塊。建構方塊10實施控制以回復自建構方塊10或另一建構方塊對共用記憶體之存取。因此,資訊處理系統1可抑制資訊處理系統1減弱之可能性。
詳言之,資訊處理系統1依據經接收之實體位址決定存取目標是否係共用區域或本地區域,且可保持儲存於本地區域之核心資料或使用者資料之高安全層級。更詳言之,資訊處理系統1令所有記憶體可進行快取,且可簡易地掩飾記憶體存取之潛時。
再詳言之,CPU21可根據與對記憶體22之存取相同之方法存取另一CPU存取的記憶體之共用區域。亦即,即使記憶體22或另一記憶體上有存取目標記憶體區域,CPU21之計算單元31僅需輸出虛擬位址。
因此,CPU21可輕易地存取共用區域,無需執行諸如I/O之專屬控制之處理及程式化,且因而可改良記憶體存取效能。詳言之,CPU21可適當地使用共用記憶體而執行,無需修改程式或OS,且因此執行類似於傳統方法之預先提取處理,使得其可改良記憶體存取效能。
更詳言之,當來自另一CPU之記憶體存取目標係對本地區域的存取時,CPU21送回拒絕響應。因此,資訊處理系統1可防止對共用區域外之區域的存取,且因此可防止錯誤。
詳言之,快取目錄管理單元36使用節點映射34將實體位址轉換為相關於節點映射34儲存之CPUID。因此,CPU21可識別存取記憶體之CPU及排序存取目標實體位址之CPU。
詳言之,CPU21可使用供管理快取儲存於記憶體22之資料的CPU用的目錄控制快取一致性。因此,即使資訊處理系統1之CPU之數目增加,資訊處理系統1可有效地保持快取一致性,無需增加XB2之業務。
更詳言之,於資訊處理系統1中,CPU間之通訊係限制於遠端CPU與本區CPU之間或遠端CPU、本區CPU及快取經更新之資料的本地CPU之間。因此,資訊處理系統1可有效地保持快取一致性。
雖然本發明之範例已說明如上,但除上文所述之範例
外,仍可實行各種不同範例。下文將說明其他實施例。
上文所述之資訊處理系統1具有含有4個CPU的建構方塊10至10e。然而,範例並未受限於此,且建構方塊10至10e可具有任意數目之CPU且每一CPU可存取任意數目之記憶體。詳言之,CPU及記憶體並無需為一對一的關聯性,且直接存取記憶體之CPU可為整體中的部份。
上文所述之CPU21發送包括CPUID及PA(實體位址)之封包作為記憶體存取請求。然而,範例並未受限於此。亦即,若CPU21可獨特地識別存取一存取目標記憶體的CPU,CPU21可輸出儲存任意資訊之封包。
詳言之,例如CPU21可將CPUID轉換為VC(虛擬連接)ID,並儲存VCID。更詳言之,CPU21可於封包中儲存諸如指示資料長度之長度的資訊。
如上文所述,CPU21至21c中之每一者可發出請求或命令,並保持快取一致性。然而,上文所述之請求或命令係為範例,且舉例言之CPU21至21c可發出CAS(比較及交換)指令。
如此一來,當CPU21至21c發出CAS指令時,即使專屬控制之競爭經常發生於數個CPU之間,處理係實施於每一CPU之快取。因此,CPU21至21c可防止因記憶體存取之發生而引起之延遲,且可防止CPU間之異動過於擁擠。
上文已說明OS存取係為資訊處理系統1之硬體之位址轉換單元35的範例。然而,範例並不受限於此,且舉例言之,操作虛擬機器之超管理器(HVP)可存取位址轉換單元35。
亦即,於超管理器操作之節點中,OS請求超管理器實施無需直接操作CPU21至21c之諸如快取及MMUs等硬體資源之操作。如此一來,當CPU21至21c中之每一者係經由超管理器控制時,CPU21至21c中之每一者將虛擬位址轉換為真實位址(RA),且於其後將真實位址轉換為實體位址。
詳言之,於超管理器操作之節點中。HPV係根據中斷處理而中斷,並未直接中斷OS。在此情況中,超管理器藉由讀取OS之中斷處理處置器實施中斷。除此之外,藉由上文所述之超管理器執行之處理係為習知執行以操作虛擬機器之處理。
於上文所述之資訊處理系統1中,CPU21至21c中之每一者使用一節點映射發送記憶體存取。然而,範例並不受限於此。舉例言之,建構方塊10至10e中之每一者可操作為數個節點群組,且組構每一節點群組操作單一韌體(超管理器)之一虛擬部段。
在此情況中,CPU21至21c中之每一者包括指示存取終點CPU之節點映射及指示單一虛擬部段的CPU的節點映射。如此一來,CPU21至21c中之每一者包括指示包括於單一虛擬部段之CPU的節點映射,且可識別特殊封包之傳輸範圍,其並未超出諸如錯誤發生通知、減弱請求或重置請求封包等虛擬部段傳輸。
服務處理器24存取係為硬體之節點映射34之範例係以上文所述之資訊處理系統1說明。然而,範例並不受限於此,且非服務處理器24之單元可組構以存取節點映射34。舉例言之,藉由CPU21至21c中之一者或全部操作之基本韌體BIOS(基本輸入/輸出系統)或HPV可組構以存取節點映射34。
根據實施例,其可抑制資訊處理裝置減弱之可能性。
2‧‧‧XB
10、10a、10b、10c、10d、10e‧‧‧建構方塊
21、21a‧‧‧CPU
22、22a‧‧‧記憶體
Claims (8)
- 一種資訊處理裝置,包含:數個節點,每一節點包含一儲存裝置;以及連接於該等數個節點間之一互連件;其中該等數個節點中之至少一節點包含:一檢測單元,其可檢測儲存於包括於該一節點或其他節點之一儲存裝置之一共用記憶體區域內的資料的一可校正錯誤,該共用記憶體區域係該一節點及其他節點存取之一區域,且該可校正錯誤係:(i)在一預定時間期間內發生超過一預定次數之一錯誤,或(ii)發生於該共用記憶體區域之一單一位置之一錯誤;一防止控制單元,當該檢測單元檢測該可校正錯誤時,該防止控制單元實施控制以防止該一節點及其他節點存取該共用記憶體區域,藉由從第一位址轉換資訊刪除一分錄,該第一位址轉換資訊將使用於該一節點及其他節點之記憶體存取的一虛擬位址與指示於該一節點的該儲存裝置中之一資料儲存區域的一具體位址相關聯,該分錄將於其中該可校正錯誤係經檢測之該共用記憶體區域中的一虛擬位址與一具體位址相關聯,並藉由發送一指令至其他節點用以刪除來自第二位址轉換資訊之該分錄,該第二位址轉換資訊將使用於該一節點及其他節點之該記憶體存取的一虛擬位址與指示於該其他節點的該儲存裝置中之一資料儲存區域的一具體位址相關聯; 一復原單元,其可將儲存於該共用記憶體區域之該資料復原於一與該共用記憶體區域不同之記憶體區域;一通知單元,其可通知其他節點有關該不同之記憶體區域之資訊;以及一回復控制單元,其可實施控制以回復對自該一節點及其他節點復原之資料之存取。
- 如申請專利範圍第1項之資訊處理裝置,其中該防止控制單元發送一指令至其他節點,該指令係用以停止自一藉由其他節點執行之應用對該共用記憶體之一存取,並停止自一藉由該一節點執行之應用對該共用記憶體之一存取。
- 如申請專利範圍第1或2項之資訊處理裝置,其中該復原單元取得其他記憶體區域之一頁,以複製包括該共用記憶體區域之該錯誤之一頁,並複製儲存於包括該共用記憶體區域之該錯誤之該頁的一區域的資料至其他記憶體區域之該頁之一區域。
- 如申請專利範圍第3項之資訊處理裝置,其中該復原單元將該共用記憶體區域之該頁分割為數個頁,並將儲存於包括該錯誤之一經分割的頁之一區域的資料複製於其他記憶體區域之該頁的一區域。
- 如申請專利範圍第3項之資訊處理裝置,其中,當取得其他記憶體區域之該頁時,若一可取得的頁容量係一預定容量或更少或其他記憶體區域之該頁之取得失 敗,該復原單元分割該共用記憶體區域之該頁。
- 如申請專利範圍第3項之資訊處理裝置,其中,當一操作系統(OS)啟動於一本地節點時或啟動一使用該本地節點或其他節點之一共用記憶體之應用時,該復原單元預先保全一可使用為其他記憶體區域之一預定大小之一區域。
- 一種資訊處理裝置,包含:數個節點,每一節點包含一儲存裝置;以及連接於該等數個節點間之一互連件;其中該等數個節點中之至少一節點包含:一存取控制單元,其可控制對該一節點之該儲存裝置之一存取,並且包含一錯誤檢測單元,其可檢測自該儲存裝置讀取之資料之一錯誤;以及一處理單元,其實施一處理,包含:當該錯誤檢測單元檢測儲存於該共用記憶體區域之資料之一可校正錯誤時,防止自該一節點及其他節點對一共用記憶體區域之一存取,藉由從第一位址轉換資訊刪除一分錄,該第一位址轉換資訊將使用於該一節點及其他節點之記憶體存取的一虛擬位址與指示於該一節點的該儲存裝置中之一資料儲存區域的一具體位址相關聯,該分錄將於其中該可校正錯誤係經檢測之該共用記憶體區域中的一虛擬位址與一具體位址相關聯,並藉由發送一指令至其他節點用以刪除來自第二位址轉換資訊之該分錄,該第二位址轉換資訊將 使用於該一節點及其他節點之該記憶體存取的一虛擬位址與指示於該其他節點的該儲存裝置中之一資料儲存區域的一具體位址相關聯,該共用記憶體區域係包括於該一節點之該儲存裝置且係藉由該一節點及其他節點存取,該可校正錯誤係:(i)於一預定時間期間內發生超過一預定次數之一錯誤,或(ii)發生於該共用記憶體區域之一單一位置之一錯誤;將儲存於該共用記憶體區域之該資料復原於一不同於該共用記憶體區域且係包括於該一節點之該儲存裝置之一記憶體區域;通知其他節點有關該不同記憶體區域之資訊;以及回復對自該一節點及其他節點復原之該資料之該存取。
- 一種用於一資訊處理裝置之控制方法,該控制方法係藉由該資訊處理裝置之數個節點中之至少一節點實施,該資訊處理裝置包含該等數個節點,每一節點包含一儲存裝置,及連接於該等數個節點間之一互連件,該控制方法包含:檢測儲存於包括於該一節點或其他節點之一儲存裝置之一共用記憶體區域的資料的一可校正錯誤,該共用記憶體區域係該一節點及其他節點存取之一區域,且該可校正錯誤係:(i)於一預定時間期間內發生超過一預定次數之一錯誤,或(ii)發生於該共用記憶體 區域之一單一位置之一錯誤;當該可校正錯誤被檢測到時,實施控制以防止該一節點及其他節點存取該共用記憶體區域,藉由從第一位址轉換資訊刪除一分錄,該第一位址轉換資訊將使用於該一節點及其他節點之記憶體存取的一虛擬位址與指示於該一節點的該儲存裝置中之一資料儲存區域的一具體位址相關聯,該分錄將於其中該可校正錯誤係經檢測之該共用記憶體區域中的一虛擬位址與一具體位址相關聯,並藉由發送一指令至其他節點用以刪除來自第二位址轉換資訊之該分錄,該第二位址轉換資訊將使用於該一節點及其他節點之該記憶體存取的一虛擬位址與指示於該其他節點的該儲存裝置中之一資料儲存區域的一具體位址相關聯;將儲存於該共用記憶體區域之該資料復原於一不同於該共用記憶體區域之一記憶體區域;通知其他節點關於該不同記憶體區域之資訊;以及實施控制以回復自該一節點及其他節點復原之該資料之該存取。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012044848A JP5614419B2 (ja) | 2012-02-29 | 2012-02-29 | 情報処理装置、制御方法および制御プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201337938A TW201337938A (zh) | 2013-09-16 |
TWI480883B true TWI480883B (zh) | 2015-04-11 |
Family
ID=47044874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101134714A TWI480883B (zh) | 2012-02-29 | 2012-09-21 | 資訊處理裝置及控制方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8856588B2 (zh) |
EP (1) | EP2634696B1 (zh) |
JP (1) | JP5614419B2 (zh) |
KR (1) | KR101476001B1 (zh) |
CN (1) | CN103294616B (zh) |
TW (1) | TWI480883B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5906881B2 (ja) * | 2012-03-27 | 2016-04-20 | 富士通株式会社 | 情報処理装置及び情報処理装置の制御方法 |
US20150269092A1 (en) * | 2014-03-19 | 2015-09-24 | Fujitsu Limited | Information processing device and shared memory management method |
CN105807728B (zh) * | 2014-12-29 | 2019-03-08 | 联想(北京)有限公司 | 一种控制方法及电子设备 |
JP6540309B2 (ja) | 2015-07-16 | 2019-07-10 | 富士通株式会社 | 共有メモリシステム、演算処理装置、及び方法 |
JP2017111750A (ja) * | 2015-12-18 | 2017-06-22 | 富士通株式会社 | 情報処理装置、共有メモリ管理方法及び共有メモリ管理プログラム |
US10387281B2 (en) * | 2017-08-30 | 2019-08-20 | Micron Technology, Inc. | Flash memory block retirement policy |
CN107943605B (zh) * | 2017-11-14 | 2021-03-19 | 青岛海信移动通信技术股份有限公司 | 一种存储卡处理方法及装置 |
KR102413096B1 (ko) * | 2018-01-08 | 2022-06-27 | 삼성전자주식회사 | 전자 장치 및 그 제어 방법 |
US10990369B2 (en) * | 2018-04-30 | 2021-04-27 | EMC IP Holding Company LLC | Repurposing serverless application copies |
CN109144901B (zh) * | 2018-10-10 | 2024-01-02 | 古进 | 公式化虚拟地址转换 |
JP7283784B2 (ja) * | 2021-02-19 | 2023-05-30 | Necプラットフォームズ株式会社 | メモリ障害検出装置、検出プログラム、および検出方法 |
FR3120465B1 (fr) | 2021-03-03 | 2023-10-13 | Thoonsen Trading | Dispositif antivol electronique ameliore |
EP4053814A1 (fr) | 2021-03-03 | 2022-09-07 | Thoonsen Trading | Dispositif antivol electronique a pile |
JP2022187116A (ja) * | 2021-06-07 | 2022-12-19 | 富士通株式会社 | 多重制御プログラム、情報処理装置および多重制御方法 |
KR20230119966A (ko) * | 2022-02-08 | 2023-08-16 | 삼성전자주식회사 | 전자 장치에서 데이터베이스 파일을 복구하는 방법 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040139374A1 (en) * | 2003-01-10 | 2004-07-15 | International Business Machines Corporation | Method for tagging uncorrectable errors for symmetric multiprocessors |
US20040205420A1 (en) * | 2002-06-26 | 2004-10-14 | Charles Seeley | Error reporting network in multiprocessor computer |
US20060179358A1 (en) * | 2005-02-09 | 2006-08-10 | International Business Machines Corporation | System and method for recovering from errors in a data processing system |
US20070220313A1 (en) * | 2006-03-03 | 2007-09-20 | Hitachi, Ltd. | Storage control device and data recovery method for storage control device |
US20110161620A1 (en) * | 2009-12-29 | 2011-06-30 | Advanced Micro Devices, Inc. | Systems and methods implementing shared page tables for sharing memory resources managed by a main operating system with accelerator devices |
US20120036412A1 (en) * | 2010-08-09 | 2012-02-09 | International Business Machines Corporation | Low delay and area efficient soft error correction in arbitration logic |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61195444A (ja) * | 1985-02-26 | 1986-08-29 | Toshiba Corp | コンピユ−タシステム |
JPH0877078A (ja) | 1994-09-07 | 1996-03-22 | Fujitsu Ltd | シェアードストレージ装置 |
JPH09128303A (ja) | 1995-10-31 | 1997-05-16 | Toshiba Corp | メモリ管理装置 |
US6148377A (en) * | 1996-11-22 | 2000-11-14 | Mangosoft Corporation | Shared memory computer networks |
JPH11175409A (ja) | 1997-12-05 | 1999-07-02 | Nec Corp | メモリ制御方式 |
US6742145B2 (en) | 2001-03-01 | 2004-05-25 | International Business Machines Corporation | Method of de-allocating multiple processor cores for an L2 correctable error |
US7418557B2 (en) | 2004-11-30 | 2008-08-26 | International Business Machines Corporation | Managing multiprocessor operations |
US7774645B1 (en) * | 2006-03-29 | 2010-08-10 | Emc Corporation | Techniques for mirroring data within a shared virtual memory system |
JP4930078B2 (ja) | 2007-01-31 | 2012-05-09 | 富士通株式会社 | 情報処理方法、情報処理装置、情報処理プログラムおよび該プログラムを記録した記録媒体 |
US20090132876A1 (en) * | 2007-11-19 | 2009-05-21 | Ronald Ernest Freking | Maintaining Error Statistics Concurrently Across Multiple Memory Ranks |
JP4892746B2 (ja) * | 2008-03-28 | 2012-03-07 | エヌイーシーコンピュータテクノ株式会社 | 分散共有メモリ型マルチプロセッサシステム及びプレーンデグレード方法 |
US8719543B2 (en) * | 2009-12-29 | 2014-05-06 | Advanced Micro Devices, Inc. | Systems and methods implementing non-shared page tables for sharing memory resources managed by a main operating system with accelerator devices |
US8489829B2 (en) * | 2010-12-01 | 2013-07-16 | International Business Machines Corporation | Reduction of communication and efficient failover processing in distributed shared memory-based application |
-
2012
- 2012-02-29 JP JP2012044848A patent/JP5614419B2/ja not_active Expired - Fee Related
- 2012-08-29 US US13/597,428 patent/US8856588B2/en not_active Expired - Fee Related
- 2012-09-21 TW TW101134714A patent/TWI480883B/zh not_active IP Right Cessation
- 2012-10-12 EP EP12188300.3A patent/EP2634696B1/en not_active Not-in-force
- 2012-10-15 CN CN201210390225.3A patent/CN103294616B/zh not_active Expired - Fee Related
- 2012-10-17 KR KR1020120115353A patent/KR101476001B1/ko not_active IP Right Cessation
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040205420A1 (en) * | 2002-06-26 | 2004-10-14 | Charles Seeley | Error reporting network in multiprocessor computer |
US20040139374A1 (en) * | 2003-01-10 | 2004-07-15 | International Business Machines Corporation | Method for tagging uncorrectable errors for symmetric multiprocessors |
US20060179358A1 (en) * | 2005-02-09 | 2006-08-10 | International Business Machines Corporation | System and method for recovering from errors in a data processing system |
US20070220313A1 (en) * | 2006-03-03 | 2007-09-20 | Hitachi, Ltd. | Storage control device and data recovery method for storage control device |
US20110161620A1 (en) * | 2009-12-29 | 2011-06-30 | Advanced Micro Devices, Inc. | Systems and methods implementing shared page tables for sharing memory resources managed by a main operating system with accelerator devices |
US20120036412A1 (en) * | 2010-08-09 | 2012-02-09 | International Business Machines Corporation | Low delay and area efficient soft error correction in arbitration logic |
Also Published As
Publication number | Publication date |
---|---|
EP2634696A2 (en) | 2013-09-04 |
US8856588B2 (en) | 2014-10-07 |
US20130227224A1 (en) | 2013-08-29 |
CN103294616B (zh) | 2016-01-20 |
EP2634696A3 (en) | 2013-11-27 |
EP2634696B1 (en) | 2014-12-24 |
TW201337938A (zh) | 2013-09-16 |
JP5614419B2 (ja) | 2014-10-29 |
KR20130099801A (ko) | 2013-09-06 |
CN103294616A (zh) | 2013-09-11 |
KR101476001B1 (ko) | 2014-12-23 |
JP2013182355A (ja) | 2013-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI480883B (zh) | 資訊處理裝置及控制方法 | |
TWI484343B (zh) | 資訊處理裝置以及控制方法 | |
EP2608044B1 (en) | Information processing apparatus and memory access method | |
JP5931196B2 (ja) | I/oノード及び複数の計算ノードに備えられたキャッシュメモリの制御方法 | |
TWI431475B (zh) | 用於在本地代理者之記憶體鏡像及遷移之裝置、系統及方法 | |
CN100487674C (zh) | 利用镜像锁定高速缓存传播数据的方法和处理器节点 | |
US8990513B2 (en) | Accelerated recovery for snooped addresses in a coherent attached processor proxy | |
US20140201460A1 (en) | Data recovery for coherent attached processor proxy | |
JP2014160502A (ja) | 情報処理装置およびメモリアクセス方法 | |
JP5800058B2 (ja) | 情報処理装置、制御方法および制御プログラム | |
EP3046035B1 (en) | Request response method and device based on a node controller | |
US10394636B2 (en) | Techniques for managing a hang condition in a data processing system with shared memory | |
US9436613B2 (en) | Central processing unit, method for controlling central processing unit, and information processing apparatus | |
WO2019149031A1 (zh) | 应用于节点系统的数据处理方法及装置 | |
KR20160068481A (ko) | 모바일 디바이스 및 모바일 디바이스의 메모리 관리 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |