TWI484343B - 資訊處理裝置以及控制方法 - Google Patents

資訊處理裝置以及控制方法 Download PDF

Info

Publication number
TWI484343B
TWI484343B TW101133463A TW101133463A TWI484343B TW I484343 B TWI484343 B TW I484343B TW 101133463 A TW101133463 A TW 101133463A TW 101133463 A TW101133463 A TW 101133463A TW I484343 B TWI484343 B TW I484343B
Authority
TW
Taiwan
Prior art keywords
node
cpu
unit
abnormality
data
Prior art date
Application number
TW101133463A
Other languages
English (en)
Other versions
TW201327184A (zh
Inventor
鯉沼秀之
杉崎剛
植木俊和
Original Assignee
富士通股份有限公司
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 富士通股份有限公司 filed Critical 富士通股份有限公司
Publication of TW201327184A publication Critical patent/TW201327184A/zh
Application granted granted Critical
Publication of TWI484343B publication Critical patent/TWI484343B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0706Error 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/0709Error 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 in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0706Error 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/0721Error 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/0724Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0706Error 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/0727Error 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 in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Description

資訊處理裝置以及控制方法 發明領域
此處討論之實施例係有關於一種資訊處理裝置、一種控制方法、及一種控制程式。
發明背景
過去已知對稱性多重處理器(SMP)技術,其中多個算術處理單元共用一個主儲存裝置。至於應用SMP技術的資訊處理系統的一個實例,有一種資訊處理系統其中多個節點各自包括一算術處理單元及一主儲存裝置彼此透過同一個匯流排相連結,及各個算術處理單元透過該匯流排共用各個主儲存裝置。
此種資訊處理系統藉由使用例如監聽方案而保有藉各個節點的算術處理單元所快取的資料同調。
又於使用共用記憶體作為節點間的一資料通訊單元的系統中,有一種技術其中當檢測得節點異常時,欲傳輸的資料係轉換成表示該異常的資料,及傳輸所轉換的資料。此種技術中,接收表示該異常的資料之一節點拋棄所接收的資料。
又於一系統其中多個節點係藉一縱橫式開關連結,有一種技術其中當出現封包通訊的保留時,藉改變通訊路徑而繼續處理。於此項技術中,由一節點所發送的一要求係從該縱橫式開關傳輸給其本身的節點及其它節點。於此項 技術中,發送要求的該節點測量從該要求的發送至該要求的接收之時間,檢測逾時,決定已出現封包通訊的保留。
又於一系統其中多個節點係藉一縱橫式開關連結,有一種技術其中於從一節點發送的資料中斷的情況下,當中斷時間係等於或大於一預定時間時,含括表示異常的資料之虛設資料係傳送給一接收端的節點。
專利文獻1:日本公開專利案第2004-013723號
專利文獻2:日本公開專利案第2002-366451號
專利文獻3:日本公開專利案第11-168502號
但當發生與節點間之資料傳輸相關的異常時,前述技術的問題為無法遏止錯誤影響。
舉例言之,於藉使用監聽方案而保有快取資料之同調的資訊處理系統中,可考慮下列影響。換言之,當某個節點出現故障(節點關閉)且節點間發生通訊異常時,可考慮將全部節點調整關閉來保有快取資料的同調。於此種情況下,錯誤的影響範圍達到全部節點。
據此,於一個面向中,本發明之一實施例的目的係當出現節點間的資料傳輸異常時遏止錯誤的影響範圍。
發明概要
依據一實施例之一面向,一種資訊處理裝置包括各自包括一儲存單元的多個節點;及連結該等多個節點之一互連體,其中該等多個節點中之至少一個節點係包含一異常檢測單元其係使用在該一個節點與另一個節點中可共用的 一共用記憶體區,檢測於資料傳輸之一資料傳輸路徑的異常,該共用記憶體區係設在該一個節點或另一個節點中的一儲存單元內;或使用在該一個節點與另一個節點中可共用的一共用記憶體區,檢測含括於資料傳輸之一資料傳輸路徑中的某個節點的異常,該共用記憶體區係設在該一個節點或另一個節點中的一儲存單元內;一錯誤資訊產生單元其係基於由該異常檢測單元所檢測的該異常而產生錯誤資訊,及關於在一自我節點內部之一處理器產生一中斷;及一處理器其係基於依據該中斷的該錯誤資訊而執行復原處理。
圖式簡單說明
圖1為略圖描述依據第一實施例一資訊處理系統之一實例;圖2為略圖描述依據第一實施例一建構區塊的功能組態;圖3為略圖描述當其它節點係附接至一共用記憶體所被分配的一節點時一記憶體對映圖之一實例;圖4為略圖描述依據第一實施例一CPU的功能組態;圖5為略圖描述依據第一實施例一節點對映圖之資料格式之一實例;圖6為略圖描述一目錄之資料格式之一實例;圖7為略圖描述依據第一實施例藉一CPU傳輸的一封包;圖8為略圖例示說明一傳輸封包之一實例; 圖9為略圖例示說明一異常檢測單元的另一組態之一實例;圖10為略圖例示說明一「TLP標頭」之資料格式之一實例;圖11為略圖描述接收一「中毒TLP」封包之一PCIe控制單元之操作;圖12為略圖描述依據第一實施例造成一CPU發送一要求的處理實例;圖13為略圖描述依據第一實施例當一CPU接收一封包時所執行的處理實例;圖14為略圖描述依據第一實施例使得一I/O裝置傳輸一要求的處理實例;圖15為略圖描述依據第一實施例使得一I/O裝置接收一回應的處理實例;圖16為略圖描述當一節點與含括該相對應節點的一存取目標之一記憶體的一節點間出現資料傳輸異常時所執行的處理實例;圖17為略圖描述當一節點與含括該相對應節點的一存取目標之一記憶體的一節點間出現資料傳輸異常時所執行的處理實例;圖18為流程圖描述控制一共用區之一處理流程;圖19為流程圖描述共用記憶體區之分配處理;圖20為流程圖描述共用記憶體區之附接處理;圖21為流程圖描述使得一應用程式運用一共用記憶體 的處理;圖22為流程圖描述節點間之共用記憶體之分離處理;圖23為流程圖描述節點間之共用記憶體之釋放處理;圖24為流程圖描述簽發一要求之一處理流程;圖25為流程圖描述當接收到一要求時所執行的處理流程;圖26為流程圖描述當一CPU接收到一回應時所執行的處理流程;圖27為流程圖描述當一CPU發送一要求時所執行的處理流程;圖28為流程圖描述當一PCIe控制單元發送一讀要求時所執行的處理流程;圖29為流程圖描述當一PCIe控制單元發送一寫要求時所執行的處理流程;圖30為流程圖描述藉產生該捕集OS執行捕集處理的流程;圖31為略圖例示說明一處置器表的資料格式之一實例;圖32為流程圖描述藉對其宣告一信號之該信號處置器所執行的一處理流程;圖33為流程圖描述藉對其宣告一信號之該信號處置器所執行的另一處理流程;圖34為資訊處理系統之一示意圖,描述用以檢測節點異常之一方法實例; 圖35為流程圖描述當使用與第一實施例的異常檢測方法相異的方法時之一處理流程;圖36為流程圖描述於一叢集管理管理器檢測得異常之情況下的一處理流程;圖37為略圖描述一資訊處理系統之一實例;圖38為略圖描述一區劃之一實例;圖39A為略圖描述由區劃#A之CPU所儲存的一節點對映圖之一實例;圖39B為略圖描述表示區劃#A之一節點對映圖之一實例;及圖39C為略圖描述表示區劃#B之一節點對映圖之一實例。
較佳實施例之詳細說明
將參考附圖解說本發明之較佳實施例。
[a]第一實施例
於如下第一實施例中,將參考圖1描述含括多個節點之一種資訊處理系統實例。圖1為略圖描述依據第一實施例一資訊處理系統之一實例。於圖1例示說明之實例中,資訊處理系統1包括一縱橫式開關(XB)2及多個建構區塊10至10e。該XB 2為一縱橫式開關,其係交互連結個別建構區塊10至10e。又,XB 2包括一服務處理器(圖中未顯示),該服務處理器為含括在各個建構區塊10至10e的各個服務處理器之一主機,容後詳述。又,於其中少數節點連結的小規 模組態之情況下,該等建構區塊可不透過XB 2而直接地連結在一起。
又,建構區塊10包括多個中央處理單元(CPU)21至21c及多個記憶體22至22c。又復,其它建構區塊10a至10e也具有與建構區塊10相同組態且將不做描述。又,於圖1例示說明之實例中,未提出有關CPU 21至21c及多個記憶體22至22c的說明。此外,輸出入(I/O)裝置(圖中未顯示)係設在各個建構區塊內部。於本實施例中,在一目錄方案實現CPU間的快取同調控制,具有用以儲存資料的一記憶體之原位CPU(容後詳述)管理一相對應的目錄。
個別建構區塊10至10e獨立地操作OS。換言之,個別CPU 21至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包括多個CPU 21至21c、多個記憶體22至22c、及一通訊單元23。
服務處理器24包括一控制單元25及一通訊單元26。又於圖2例示說明之實例中,個別CPU 21至21c係彼此連結且係連結至通訊單元23。又,個別記憶體22至22c係連結至個別CPU 21至21c。服務處理器24係透過一網路線諸如區域網路(LAN)(圖中未顯示)連結至一伺服管理器終端,接收來自該管理器終端之一指令,及執行控制,諸如於節點或建構區塊10內部的各項設定變化。
又,CPU 21至21c係連結至XB連結單元27或XB連結單元27a。此外,XB連結單元27及27a可為相同XB連結單元。又復,個別CPU 21至21c係連結至PCIe連結單元28。又,通訊單元23係連結至含括在服務處理器24內的通訊單元26。此外,例如控制單元25、通訊單元26、通訊單元23、及個別CPU 21至21c係藉內置積體電路(I2 C)連結。
CPU 21至21c為執行應用程式的算術處理單元。又,個別CPU 21至21c係個別地連結至記憶體22至22c。此外,於執行應用程式做要求來分配一共用記憶體之情況下,個別CPU 21至21c彼此執行通訊且執行其中使用該應用程式的共用記憶體區之分配。此外,個別CPU 21至21c使用個別22或含括在其它建構區塊10a至10e的若干記憶體作為共用記憶體。
圖3為略圖描述當其它節點係附接至一共用記憶體所 被分配的一節點時一記憶體對映圖之一實例。於圖3之實例中,當共用記憶體係分配給擁有該記憶體實體的一節點(此係稱作原位節點)時,原位節點將共用記憶體區劃成為恆定區大小。區劃的單位係稱作為一節段,但區劃成為多個節段並非必要。當其它節點做要求分配由該相對應原位節點所擁有的共用記憶體時,此項處理於後文中稱作為「附接」要求,節點可開始使用相對應原位節點的共用記憶體。由此遠端節點所使用的記憶體區稱作為一共用記憶體影像區。單一遠端節點可附接至該共用記憶體影像區,及多個遠端節點可附接至該共用記憶體影像區。
回頭參考圖2,個別CPU 21至21c具有一節點對映圖,該節點對映圖匹配一實體位址與一CPUID(識別身分),該CPUID為連結至該實體位址所被分配的一記憶體之一CPU的識別符。又,CPUID係在系統1獨特地決定而不重疊。
個別CPU 21至21c藉使用該節點對映圖而從事與其它CPU的通訊。舉例言之,於匹配該實體位址的CPUID係為表示與該CPU 21至21c不同的一CPU的存取目標之情況下,CPU 21透過XB連結單元27或XB連結單元27a及XB 2而發送一記憶體存取要求給其它節點。又,當CPU 21接收到來自其它節點的一記憶體連結至其本身的要求時,CPU 21從與其自身連結的記憶體22讀取所要求的目標資料,及傳輸所讀取的資料給一要求源。其它CPU 21a至21c執行相同處理。
又,個別CPU 21至21c具有藉使用一轉譯後備緩衝器 (TLB)而從事一位址轉譯的功能,且當發生TLB遺漏時,執行習知CPU的相同處理,諸如捕集處理。
此外,個別CPU 21至21c檢測節點間之資料傳輸的異常(錯誤)。將描述檢測節點間之資料傳輸的異常之實例。舉例言之,個別CPU 21至21c測量於要求傳送後的時間。然後,在要求發送後而接收到一回應前,若在要求發送後的時間係超過一預定時間則為逾時。因此,個別CPU 21至21c檢測節點間之資料傳輸的異常。又,當就該要求從其它節點接收到否定回應時,個別CPU 21至21c也檢測該異常。
當檢測得異常時,個別CPU 21至21c從事多項處理。舉例言之,於回寫至個別記憶體22至22c的共用記憶體之髒快取資料係不藉造成異常發生(例如節點故障)的一節點回寫之情況下,個別CPU 21至21c從事如下處理。換言之,個別CPU 21至21c寫一特定值至表示該快取記憶體狀態的該目錄,該特定值表示欲藉該故障節點回寫至個別記憶體22至22c的共用記憶體之髒快取資料係不被寫回。此外,於檢測得異常且回寫至個別記憶體22至22c的共用記憶體之髒快取資料係不藉造成異常發生的一節點回寫之情況下,個別CPU 21至21c從事如下處理。換言之,其中快取資料係藉故障節點回寫的個別記憶體22至22c之該共用記憶體之該區,個別CPU 21至21c可將表示一錯誤態的特定資料寫至該區。藉此處理,許可表示不被回寫的該共用記憶體之資料乃不正常。
又,當一回寫要求不到達一原位CPU(容後詳述)時,一 本地CPU(容後詳述)藉從該原位CPU檢測得一逾時(容後詳述)而認知一異動處理失敗。於此種情況下,本地CPU拋棄該相對應資料。由原位CPU所管理的目錄係在本地CPU擁有資料在其快取記憶體的狀態。因此,「移出」要求係從原位CPU產生。「移出」要求造成在本地CPU發生快取遺漏。但就該「移出」要求而言,回送一錯誤回應,存在於該原位CPU的一目錄狀態係經異常更新,換言之,表示前述錯誤狀態的資料被寫入。
又,於故障節點的該共用記憶體之實體位址(PA)係被寫入一錯誤發生位址暫存器之情況下,發生捕集(中斷)。換言之,於該實體位址被寫入該錯誤發生位址暫存器之情況下,個別CPU 21至21c執行捕集處理。例如,於捕集處理中,一信號係發送給一信號處置器。
此處,當接收到一信號時,信號處置器被啟動。於藉信號處置器處理中,從事多項處理。舉例言之,於藉信號處置器處理中,當「共用記憶體實體」存在於該故障節點時,「共用記憶體影像」分離。換言之,含括在該故障節點的該共用記憶體被解除分配。又,於藉信號處置器處理中,執行檢測得其它節點故障的該節點之該記憶體的共用記憶體之復原處理。至於復原處理的一個實例,可有從該目錄清除該值的處理,該值係表示回寫至該共用記憶體的該快取資料不被回寫的異常。此外,至於復原處理的另一個實例,可有從該共用記憶體清除該資料的處理,該資料係表示錯誤狀態。
記憶體22至22c係由含括在資訊處理系統1的全部CPU所共用的記憶體。又,於資訊處理系統1中,有關含括在全部建構區塊10至10e中的記憶體,個別建構區塊10至10e的服務處理器分配對映至相同實體位址空間的實體位址。換言之,具有不相重疊值的實體位址係分配給含括在資訊處理系統1中的全部記憶體中用作為該共用記憶體的至少該等記憶體。
又,記憶體22至22c設定部分儲存區作為由含括在該資訊處理系統1中的全部CPU所共用的一共用區,且設定其它部分作為一本地區,儲存由CPU 21至21c存取給自身的核心資料或使用者資料;及由I/O裝置所使用的一I/O區,其無關係可透過該共用記憶體而與其它節點交換。
控制單元25執行建構區塊10的控制。舉例言之,控制單元25從事建構區塊10的電力管理、建構區塊10內部異常的監視或控制等。又,控制單元25係藉網路(圖中未顯示)連結至含括在其它建構區塊10a至10e的服務處理器,及從事個別建構區塊10a至10e間相聯結的控制。又,控制單元25可從事與由個別CPU 21至21c所執行的OS之通訊。
又,控制單元25透過通訊單元26及通訊單元23存取個別CPU 21至21c。控制單元25藉更新含括於個別建構區塊10至10e中之節點對映圖等而從事控制建構區塊裡的CPU。
又,通訊單元23從控制單元25,透過含括在服務處理器24的通訊單元26,傳輸一控制信號給個別CPU 21至21c。此外,通訊單元26從控制單元25發送一控制信號給含括在 該節點20的該通訊單元23。又復,XB連結單元27及27a連結個別CPU 21至21c至XB 2,中繼含括在個別建構區塊10至10e中的CPU間之通訊。又,PCIe連結單元28中繼藉個別CPU 21至21c存取至I/O裝置。
其次,將參考圖4說明個別CPU 21至21c的功能組態。圖4為略圖描述依據第一實施例一CPU的功能組態。又因CPU 21a至21c具有與CPU 21之相同功能,故將不再提供說明。此外,於圖4例示說明之實例中,不提供有關通訊單元23及26連結服務處理器24至CPU 21之說明。
於圖4例示說明之實例中,CPU 21包括一算術處理單元30、一路由器40、一記憶體存取單元41、及一PCIe控制單元42。又,算術處理單元30包括一算術單元31、一層級1(L1)快取記憶體32、一層級2(L2)快取記憶體33、一節點對映圖34、一位址轉譯單元35、一快取目錄管理單元36、一封包控制單元37、一錯誤出現位址暫存器96、及一捕集產生單元97。又,個別單元諸如路由器40、記憶體存取單元41、及PCIe控制單元42並非必要含括於同一個CPU 21內部。
此外,封包控制單元37包括一封包產生單元37a、一封包接收單元37b、及一異常檢測單元37c。又,PCIe控制單元42包括一要求產生單元42a、一PCIe匯流排控制單元42b、及一異常檢測單元42c。
首先,將描述含括於算術處理單元30的節點對映圖34。節點對映圖34乃一表,其中連結至具有由該實體位址所指示的一儲存區的一記憶體之一CPU的實體位址及 CPUID係彼此相聯結地登錄。後文中,將參考附圖描述登錄在節點對映圖34中的資訊之一實例。
圖5為略圖描述依據第一實施例一節點對映圖之資料格式之一實例。於圖5例示說明之實例中,節點對映圖34具有分錄匹配個別項目「位址」、「有效」、「節點ID」、及「CPUID」的登錄內容。此處,各個分錄的「位址」項目儲存表示含括多個接續實體位址的一位址區的資訊。
舉例言之,資訊處理系統1將分配給全部記憶體的實體位址空間區劃成為相等大小的多個位址區,且分派識別符諸如#0、#1、及#2給個別位址區。資訊處理系統1將表示個別位址區的該等識別符登錄在含括於節點對映圖34的各個分錄的「位址」。圖5之實例例示說明識別符#0係登錄在第一分錄的「位址」項之情況。又,圖5之實例例示說明識別符#1係登錄在第二分錄的「位址」項之情況。此外,圖5之實例例示說明識別符#2係登錄在第三分錄的「位址」項之情況。
又,在各個分錄的「有效」項中,登錄一有效位元,該有效位元表示是否致能由該實體位址所指示的一儲存區之存取。舉例言之,於由該實體位址所指示的該儲存區為由個別CPU所共用的該共用區之情況下,登錄表示該項存取被致能的有效位元(例如「1」)。圖5之實例例示說明「1」的有效位元係登錄在第一分錄的「有效」項中。又,圖5之實例例示說明「1」的有效位元係登錄在第二分錄的「有效」項中。又復,圖5之實例例示說明「0」的有效位元係登錄 在第三分錄的「有效」項中,表示存取由該實體位址所指示的儲存區被去能。
又復,於各個分錄之「節點ID」項中,登錄一識別符,該識別符表示其中存在有被分配該實體位址之一記憶體的一節點。圖5之實例例示說明表示該節點的「1」之識別符係登錄在第一分錄的「節點ID」項中。又,圖5之實例例示說明表示該節點的「1」之識別符係登錄在第二分錄的「節點ID」項中。
又,於各個分錄之「CPUID」項中,登錄一識別符,該識別符表示連結至被分配有一實的一記憶體之一CPU。換言之,節點對映圖34表示哪個CPU係連結至該作為存取目標的該實體位址的記憶體。圖5之實例例示說明表示該CPU的「4」之識別符係登錄在第一分錄的「CPUID」項中。此外,圖5之實例例示說明表示該CPU的「5」之識別符係登錄在第二分錄的「CPUID」項中。
又復,當可能表示哪個CPU係連結至該作為存取目標的該實體位址時,可以本實施例以外的任意格式將資訊登錄在節點對映圖34。
回頭參考圖4,算術單元31乃執行算術處理及執行作業系統(OS)或應用程式的一算術單元的核心。又,當執行資料的讀或寫時,算術單元31輸出一儲存區的邏輯位址(虛擬位址:VA)給該位址轉譯單元35,作為讀取目標或寫入目標的資料係儲存在該儲存區的邏輯位址。
L1快取記憶體32為一快取記憶體,將常用的資料暫時 儲存在算術單元31。如同L1快取記憶體32,L2快取記憶體33暫時地儲存常用資料。但L2快取記憶體33是個低速快取記憶體,其儲存容量係小於L1快取記憶體32,及其資料讀寫速度低。此處,目錄資訊係儲存在快取目錄管理單元36,且係為表示儲存在記憶體22的各個儲存區的CPU快取資料或該快取資料的更新態之資訊。又,於後文說明中,「目錄資訊」也簡稱作「目錄」。藉目錄管理快取記憶體的方法為常用在快取同調非一致記憶體(ccNUMA)系統的技術。但因ccNUMA技術及目錄技術二者皆為已知技術,故此處將不再提供詳細說明。又於圖4中,目錄36a係嵌置於快取目錄管理單元36,但目錄資訊也可記錄在記憶體22之儲存區部分。
位址轉譯單元35包括一TLB 35a。於TLB 35a中暫存其邏輯位址與實體位址彼此匹配的一分錄。位址轉譯單元35藉運用該TLB 35a而將由算術單元31所輸出的邏輯位址轉譯成實體位址。舉例言之,位址轉譯單元35從TLB 35a搜尋該實體位址,該實體位址係相對應於得自算術單元31的該邏輯位址。至於搜尋結果,當獲得實體位址時,位址轉譯單元35輸出所得實體位址給快取目錄管理單元36。又,當發生TLB遺漏時,位址轉譯單元35執行捕集處理。此處,系統軟體諸如OS將發生TLB遺漏該處的該實體位址與邏輯位址之一集合登錄在TLB 35a。但有關此集合的登錄受阻止的該實體位址,即使當發生TLB遺漏時,也不藉系統軟體諸如OS將發生TLB遺漏該處的該實體位址與邏輯位址之一 集合登錄在TLB 35a。
此處,OS、位址轉譯單元35等當從由算術單元31所執行的應用程式,接收到要求分配該共用記憶體時執行下述操作。換言之,當發生TLB遺漏時,系統軟體諸如OS將該分錄登錄在TLB 35a。又,當不發生TLB遺漏時,因該分錄的登錄在TLB 35a已經完成,位址轉譯單元35執行從邏輯位址至實體位址的轉換。
又,當從該應用程式或OS接收到要求分配該邏輯區時,位址轉譯單元35執行下述處理。換言之,當發生TLB遺漏時,系統軟體諸如OS將該分錄登錄在TLB 35a,於該分錄中,存取專用給該CPU 21的本地區的邏輯位址與分配給該本地區之一範圍的實體位址彼此匹配。
又,OS等從TLB 35a刪除該分錄,該分錄包括淦生異常的該節點之共用記憶體的實體位址。
快取目錄管理單元36包括目錄36a。快取目錄管理單元36執行快取資料及目錄的管理。快取目錄管理單元36從位址轉譯單元35獲得實體位址,該實體位址係藉轉換由算術單元31所輸出的邏輯位址而產生。
當從位址轉譯單元35獲得實體位址時,快取目錄管理單元36執行如下處理。換言之,藉由使用目錄36a,快取目錄管理單元36決定儲存在所得實體位址的資料是否快取於L1快取記憶體32及L2快取記憶體33。
當決定快取儲存在所得實體位址的資料時,快取目錄管理單元36輸出快取的資料給算術單元31。此外,當儲存 在所得實體位址的資料係不快取於L1快取記憶體32及L2快取記憶體33時,快取目錄管理單元36執行下述處理。首先,快取目錄管理單元36參考節點對映圖34,識別含括該所得實體位址的該範圍分錄。快取目錄管理單元36決定該經識別的分錄的CPUID是否為該CPU 21的CPUID。然後,當該經識別的分錄的CPUID係為該CPU 21的CPUID時,快取目錄管理單元36輸出該實體位址給記憶體存取單元41。
又,當該經識別的分錄的CPUID非為該CPU 21的CPUID時,快取目錄管理單元36執行下列處理。換言之,快取目錄管理單元36獲得經識別的分錄之CPUID及節點ID。快取目錄管理單元36將所得的CPUID及實體位址輸出給封包控制單元37。
又復,當儲存在由該輸出實體位址指示的儲存區內的資料係得自記憶體存取單元41或封包控制單元37時,快取目錄管理單元36儲存所得資料於L1快取記憶體32及L2快取記憶體33。快取目錄管理單元36將快取在L1快取記憶體32的資料輸出給算術單元31。
又,當從封包控制單元37獲得實體位址時,亦即當獲得實體位址係為來自其它CPU或I/O裝置的記憶體存取要求之目標時,快取目錄管理單元36從事下列處理。換言之,快取目錄管理單元36決定所得實體位址是否為參考節點對映圖34而分配給該本地區的實體位址。
當該所得實體位址係為分配給該本地區的實體位址時,快取目錄管理單元36指示封包控制單元37發送否定回 應(存取錯誤)給一要求源。
又,當該所得實體位址係為分配給該共用區的實體位址時,快取目錄管理單元36指示該所得資料儲存在由該輸出實體位址指示的儲存區,輸出所得資料給封包控制單元37,及傳輸所得資料給要求源。
此外,快取目錄管理單元36也藉由運用該目錄方案而執行保有該快取資料之同調的處理。舉例言之,當傳輸儲存在記憶體22的資料給該要求傳輸源的CPU時,快取目錄管理單元36決定該要求傳輸源的CPU以外的一CPU是否快取相對應的資料。
當其它CPU不快取作為要求目標的資料時,快取目錄管理單元36從L1快取記憶體32、L2快取記憶體33、及記憶體22獲得作為要求目標的資料。然後,快取目錄管理單元36輸出所得資料給封包控制單元37。
另一方面,當其它CPU快取作為要求目標的資料時,快取目錄管理單元36藉使用伊利諾協定等而執行保有快取同調的處理。舉例言之,快取目錄管理單元36決定快取資料狀態係為修正/互斥/共用/無效(MESI)中之一者。
快取目錄管理單元36依據決定結果,執行用以保有與含括在其它CPU的快取目錄管理單元同調之一要求或一命令(指令)之發送及接收,且依據快取的資料狀態而執行處理。此處,「修正」表示任一個且只有一個CPU快取資料及所快取的資料係在更新態。此外,當所快取的資料的狀態係為「修正」時執行回寫。
又,「互斥」表示任一個且只有一個CPU快取資料及所快取的資料係在非更新態。此外,「共用」表示多個CPU快取資料及所快取的資料係在非更新態。又,「無效」表示快取態係未經登錄。
至於特例,快取目錄管理單元36指示封包產生單元37a發送一命令來指示回寫至CPU快取M(修正)態的資料。快取目錄管理單元36更新資料之狀態,且於更新後依據該狀態來從事處理。又,由快取目錄管理單元36所發送與接收的要求或命令型別容後詳述。
又復,於檢測得節點間的資料傳輸異常之情況下,當回寫至記憶體22的共用記憶體之快取資料係不藉造成異常發生的該節點回寫時,快取目錄管理單元36執行下列處理。換言之,快取目錄管理單元36記錄一值在目錄36a的一預定區,該值係表示回寫至記憶體22的共用記憶體之快取資料係不藉故障的該節點回寫。
圖6為略圖描述一目錄之資料格式之一實例。如圖6之例示說明,目錄36a包括從第零位元至第三位元的4位元之一「UE」項。又,目錄36a包括從第四位元至第66位元的63位元之一「PRC」項。又,目錄36a包括從第67位元至第68位元的2位元之一「CKBIT」項。於「CKBIT」項中,登錄藉編碼該快取狀態所得的資料。於「PRC」項中,登錄其中保有該快取的CPU位置係藉該節點對映圖表示之資料。於「UE」項中,登錄表示該目錄之異常及該異常起因的資料。
此處,將敘述圖6實例中例示說明的快取目錄管理單元36包括目錄36a的情況。於此種情況下,當檢測得異常且回寫至記憶體22的共用記憶體之該快取資料係不回寫至引發異常出現的該節點時,快取目錄管理單元36執行下列處理。換言之,快取目錄管理單元36記錄4位元或以下之一值於目錄36a的「UE」項中,該值表示快取資料回寫至記憶體22的共用記憶體之該異常係不藉故障節點寫回。藉此方式,許可表示不寫回的共用記憶體資料係不正常。
又,當檢測得節點間之資料傳輸異常,且回寫至記憶體22的共用記憶體之該快取資料係不藉引發異常出現的該節點回寫時,快取目錄管理單元36可執行下列處理。換言之,快取目錄管理單元36可記錄表示錯誤狀態的資料於該記憶體22的共用記憶體之其中快取資料係藉故障節點回寫的該區。此處,將說明表示錯誤狀態的資料被記錄在共用記憶體區之一實例。舉例言之,於錯誤檢查及校正(ECC)資料係含括在儲存於記憶體22的資料在每個預定位元號碼之情況下,依據ECC產生多項式,可進行2位元或以上的錯誤校正。於此種情況下,比較其它錯誤,具有低的錯誤發生機率之表示n(n2)位元或以上的一錯誤之一特定值的校驗位,可為表示記錄在該共用記憶體區之錯誤態之資料。又當記錄在一資料體時,該校驗位具有特定值的一值可為表示記錄在該共用記憶體區之錯誤態之資料。藉此方式,許可表示不被寫回的共用記憶體之資料係為不正常。
此外,快取目錄管理單元36對記憶體22的共用記憶體 執行復原處理。作為復原處理之一個實例,可有從該目錄36a清除該值的處理,該值係表示回寫至該共用記憶體的快取資料係不寫回的異常。又,作為復原處理之另一個實例,可有從該共用記憶體清除表示錯誤態的資料之處理。容後詳述,復原處理係藉OS或應用程式軟體的指令執行。
當封包產生單元37a從快取目錄管理單元36獲得實體位址及CPUID時,封包產生單元37a產生儲存所得實體位址及CPUID的封包,換言之,該封包係為記憶體存取要求。封包產生單元37a發送所產生的封包給路由器40。
圖7為略圖描述依據第一實施例藉一CPU傳輸的一封包。於圖7例示說明之實例中,封包產生單元37a產生包括該CPUID、該實體位址、及表示該要求內容的資料之一要求,且將所產生的要求輸出給路由器40。於此種情況下,路由器40透過XB連結單元27將由封包產生單元37a所產生的要求輸出給XB 2。XB 2將該要求發送給由含括在該要求的CPUID所指示的CPU。
又,當封包產生單元37a從快取目錄管理單元36接收到指令簽發保有同調的要求或命令時,封包產生單元37a產生指令的要求或命令。封包產生單元37a將該所產生的要求或命令經由路由器40、XB連結單元27、及XB 2而發送給指定的CPU。又,當封包產生單元37a從I/O裝置獲得資料時,封包產生單元37a輸出存取I/O的要求給路由器40。
此外,當封包產生單元37a發送該要求時,封包產生單元37a輸出資料指示該要求傳輸給異常檢測單元37c。此一 資料包括要求上的資訊,諸如發送的要求型別,或作為存取目標的該記憶體之實體位址。
當封包接收單元37b透過XB 2、XB連結單元27、及路由器40,接收到由其它CPU或其它I/O(其本身節點除外)所輸出的封包時,封包接收單元37b獲得含括在該所接收封包裡的一實體位址。封包接收單元37b將該所得實體位址輸出給快取目錄管理單元36。又,當封包接收單元37b接收到由其它CPU所傳輸的資料時,封包接收單元37b將所接收的資料輸出給快取目錄管理單元36。
又,當封包接收單元37b接收到保持同調的要求或命令時,封包接收單元37b將所接收的要求或命令輸出給快取目錄管理單元36。又,當就該I/O裝置,封包接收單元37b從路由器40接收到對存取要求或命令的一回應時,封包接收單元37b將所接收的要求或命令輸出給快取目錄管理單元36。於此種情況下,例如快取目錄管理單元36執行將所得資料輸出給記憶體存取單元41及將所得資料儲存在記憶體22的處理。
此外,當封包接收單元37b接收到由封包產生單元37a所發送的該要求之一回應時,封包接收單元37b輸出指示接收到回應的資料給異常檢測單元37c。此一資料含括回應上的資訊,諸如所接收的回應型別。
異常檢測單元37c包括一指標器80、一計時器81、一傳輸封包82、一實體位址(PA)83、一要求84、及一檢測單元85。
每當異常檢測單元37c從封包產生單元37a接收到資料指示發送要求時,異常檢測單元37c啟動計時器81來計算時間。又,每當異常檢測單元37c從封包接收單元37b接收到指料指示該回應的接收時,異常檢測單元37c啟動計時器81。又,當異常檢測單元37c從所接收的資料接收到資料指示來自封包產生單元37a發送要求時,異常檢測單元37c將含括在該所傳輸要求中的存取目標之該記憶體的實體位址儲存在實體位址83。又,當異常檢測單元37c從所接收的資料接收到資料指示來自封包產生單元37a發送要求時,異常檢測單元37c將該所傳輸要求儲存在要求84。
又,當異常檢測單元37c從所接收的資料接收到資料指示來自封包產生單元37a發送要求時,異常檢測單元37c將該所傳輸要求之識別符登錄在傳輸封包82。
又,當異常檢測單元37c從所接收的資料接收到資料指示接收到來自封包接收單元37b的回應時,異常檢測單元37c從實體位址83中刪除含括在相對應於該所接收的回應之該要求內的存取目標記憶體的該實體位址。又,當異常檢測單元37c從所接收的資料接收到資料指示接收到來自封包接收單元37b的回應時,異常檢測單元37c從要求84中刪除相對應於所接收的回應之要求。又,當異常檢測單元37c從所接收的資料接收到資料指示接收到來自封包接收單元37b的回應時,異常檢測單元37c從傳輸封包82中刪除相對應於所接收的回應之該要求的識別符。圖8為略圖例示說明一傳輸封包之一實例。例如,於圖8例示說明之傳輸封 包82中,於其回應不回送的要求數目為N之情況下,N個要求之識別符係登錄在個別分錄,個別地從封包1管理分錄至封包N管理分錄。
又,指標器80指示在由登錄在傳輸封包82中的個別識別符所表示的個別要求中具有最老的傳輸時間之該要求。舉例言之,於圖8之實例中,指標器80指出由登錄在封包1管理分錄中之該識別符所表示的要求。
檢測單元85決定計時器81的時間是否已經通過預定時間。當已經經過預定時間之情況下,在預定時間以內不會接收到由指標器80所指示的該要求之相對應回應。因此,檢測單元85檢測得節點20與含括該存取目標記憶體之該節點間發生資料傳輸異常。檢測單元85從實體位址83獲得該存取目標記憶體之一實體位址,係含括在由指標器80所指示的該要求內,且將所得實體位址記錄在錯誤出現位址暫存器96。
當該實體位址係記錄在錯誤出現位址暫存器96時,捕集產生單元97產生一捕集。又,當要求/命令為「資料儲存至記憶體」或「快取置換之回寫」時,只可執行表示前述異常的資料之記錄,而未產生捕集,而當資料載荷至CPU時可檢測得異常。此處,前述「表示異常的資料之記錄」代表記錄4位元或以下之值,表示在目錄36a的「UE」項的異常及起因,或記錄資料表示在記憶體22的共用記憶體區中之錯誤狀態。
如此,於異常檢測單元37c中,時間係藉單一計時器計 數。因此,比較每個要求提供計時器的情況,當其回應不回送的要求數目為多數時,時間可藉更少個計時器計數。
又,異常檢測單元37c的組態並不限於前述組態。舉例言之,除了要求的識別符之外,要求的傳輸時間間隔可登錄在異常檢測單元37c的傳輸封包82,及計時器81可加至該間隔來執行重新軟體啟動。
圖9為略圖例示說明一異常檢測單元的另一組態之一實例。於圖9之實例中,除了前述封包K管理(K為自然數)的前述分錄外,某個要求發送後直至發送另一個要求的時間係登錄在傳輸封包82。此處,將對有關下述情況做說明,距要求1發送後100奈秒發送要求2,而要求3係在距要求1發送後300奈秒發送。於此種情況下,要求1至3的個別識別符係登錄在封包1管理分錄至封包3管理分錄。此時,就要求1而言,0奈秒、100奈秒、及300奈秒係分別地登錄在間隔1、間隔2、及間隔3。此處,因封包接收單元37b接收到對要求1的回應,指標器80指示的要求係從要求1切換至要求2。此時,雖然計時器81係重新軟體啟動,但時間的初值並非0奈秒,計時器81係從相對應於要求2的100奈秒間隔開始時間計數。又,同理,當指標器80指示的要求係從要求2切換至要求3,計時器81係從相對應於要求3的300奈秒間隔開始時間計數。又,當接收到對全部發送要求的回應時,下次欲發送的要求間隔再度變0奈秒。
如前述,於異常檢測單元37c的另一個實例中,時間係藉單一計時器81計數。因此,時間可以高準確度藉更少數 個計時器計數。又,於異常檢測單元37c的另一個實例中,因計時器81係考慮每個要求的間隔計數時間,故可以更高準確度計數時間。
又,於異常檢測單元37c中,未設置指標器80,計時器係在每次要求時提供。各個計時器可計數於要求傳輸後的時間。
當路由器40接收到由含括在封包控制單元37的異常檢測單元37c輸出的封包時,路由器40將接收的要求輸出給XB連結單元27。又,路由器40透過XB連結單元27輸出由其它CPU所傳輸的封包或資料給封包接收單元37b。此外,路由器40輸出由封包控制單元37相對於I/O裝置等而輸出的封包給PCIe控制單元42。又,當路由器40從PCIe控制單元42接收到I/O裝置等的要求時,路由器40輸出所接收的要求等給封包控制單元37。又,當路由器40從PCIe控制單元42接收到I/O裝置等的要求時,路由器40輸出所接收的要求等給XB連結單元27。又復,當路由器40透過XB連結單元27接收到對I/O裝置的回應時,路由器40輸出所接收的回應給PCIe匯流排控制單元42b。
記憶體存取單元41乃所謂記憶體存取控制器(MAC)且執行對記憶體22的存取控制。舉例言之,當記憶體存取單元41從快取目錄管理單元36接收到一實體位址時,記憶體存取單元41獲得儲存在由所接收的實體位址指示的記憶體22區內的資料,且輸出所得資料給快取目錄管理單元36。又,記憶體存取單元41藉使用記憶體鏡射功能而使得共用 區變冗餘。
當要求產生單元42a透過路由器40獲得對I/O裝置的存取要求時,要求產生單元42a產生一要求,該要求係欲發送給作為該存取要求之目標的該I/O裝置,且輸出所產生的要求給PCIe匯流排控制單元42b。又,當要求產生單元42a從I/O裝置獲得該實體位址及CPUID時,要求產生單元42a產生一封包儲存該所得實體位址及CPUID,換言之,一封包係為記憶體存取之要求。至於要求型別,針對I/O裝置有個要求讀取連結至其它CPU的記憶體。又,當要求產生單元42a從I/O裝置獲得該實體位址、CPUID、及所記錄的資料時,要求產生單元42a產生一封包儲存該所得實體位址、CPUID、及所記錄的資料,換言之,一封包係為記憶體存取之要求。至於要求型別,針對I/O裝置有個要求將資料寫至連結至其它CPU的記憶體。然後,要求產生單元42a發送所產生的封包給路由器40。
又,要求產生單元42a包括錯誤出現位址暫存器98及捕集產生單元99。
當PCIe匯流排控制單元42b獲得由要求產生單元42a所產生的要求時,PCIe匯流排控制單元42b透過PCIe連結單元28發送要求給I/O裝置。又,當PCIe匯流排控制單元42b透過PCIe連結單元28從I/O裝置獲得該實體位址及CPUID時,PCIe匯流排控制單元42b傳輸所得的實體位址及CPUID給要求產生單元42a。又,當PCIe匯流排控制單元42b透過PCIe連結單元28從I/O裝置獲得該實體位址、CPUID、及所 記錄的資料時,PCIe匯流排控制單元42b傳輸所得的實體位址、CPUID、及所記錄的資料給要求產生單元42a。
又,因對I/O裝置讀取連結至其它CPU的記憶體之該要求的回應係不在該要求發送後的預定時間內接收,故當檢測得異常時,PCIe匯流排控制單元42b執行下列處理。換言之,PCIe匯流排控制單元42b傳輸一「中毒TLP」封包給PCIe連結單元28。於此種情況下,當PCIe連結單元28接收到該「中毒TLP」封包時,PCIe連結單元28將所接收的「中毒TLP」封包傳輸給I/O裝置。因此,I/O裝置可檢測異常的出現。又,當檢測得異常出現時,因PCIe連結單元28宣告異常出現在一裝置驅動程式軟體,故執行復原處理。至於復原處理的實例,當異常發生在LAN時,一旦接受處理的發送/接收資料被拋棄時,LAN晶片之狀態經初始化,且在初始化後,資料的發送/接收係如常進行。
將參考圖10說明「中毒TLP」。圖10為略圖例示說明一「TLP標頭」之資料格式之一實例。「中毒TLP」乃由「PCI快速」規格所定義的一封包。當圖10實例例示說明的「TLP標頭」之EP位元為導通on時,被識別為「中毒TLP」。
圖11為略圖描述接收一「中毒TLP」封包之一PCIe控制單元之操作。圖11之實例例示說明當PCIe控制單元42係相對應於「根複合體」,及PCIe連結單元28係相對應於「PCI快速」卡。本實例例示說明SAS的「PCI快速」卡安裝作為「PCI快速」卡的情況。諸如在「PCI快速」卡上產生「中毒TLP」的事件之檢測或匯流排上處置常見,而與「PCI快 速」卡的型別無關。因此,事件之檢測或匯流排上處置不藉個別裝置驅動程式,諸如SAS裝置驅動程式執行,反而係藉「根複合體」驅動程式執行。
另一方面,當在匯流排上的某個事件例如錯誤相關事件發生時,對該SAS裝置驅動程式為獨特的一復原處理經常係在該SAS裝置驅動程式端執行,在出現錯誤的匯流排上操作。此處,作為該SAS裝置驅動程式為獨特的該復原處理之一實例,可有結束處理或傳輸處理的重新嘗試。當出現「中毒TLP」時,「根複合體」驅動程式執行錯誤現象(細節資訊的讀取、狀態位元的清除等)的收成,及然後通知錯誤的出現給匯流排上的SAS裝置驅動程式。藉此通知,SAS裝置驅動程式起始該SAS裝置驅動程式所獨一無二的復原處理。又,替代通知SAS裝置驅動程式錯誤的出現,錯誤的出現可運用I/O裝置通知應用程式處理,可執行I/O裝置從應用程式處理之重新軟體啟動處理。
又,因對該I/O裝置要求將資料寫至連結至其它CPU的該記憶體之回應係不在該要求發送後的預定時間內接收,當檢測得異常時,PCIe匯流排控制單元42b執行下列處理。換言之,在檢測得異常後,PCIe匯流排控制單元42b捨棄有關該異常,接收自PCIe連結單元28的「要求將該資料寫至記憶體」。容後詳述,錯誤出現位址係設定至錯誤出現位址暫存器98,及藉使用捕集產生單元97而產生捕集。由於此一捕集宣告異常係發生在裝置驅動程式軟體,故執行復原處理。至於復原處理之實例,當異常係出現在LAN時,一 旦接受處理的發送/接收資料被拋棄時,LAN晶片之狀態經初始化,且在初始化後,資料的發送/接收係如常進行。
異常檢測單元42c包括一指標器90、一計時器91、一傳輸封包92、一實體位址(PA)93、一要求94、及一檢測單元95。該指標器90、計時器91、傳輸封包92、實體位址(PA)93、要求94、及檢測單元95係與如上描述的指標器80、計時器81、傳輸封包82、實體位址(PA)83、要求84、及檢測單元85相同。又,錯誤出現位址暫存器98及捕集產生單元99係與前述錯誤出現位址暫存器96及捕集產生單元97相同。換言之,在封包控制單元37發送要求後而在接收到回應前,已經經歷預定時間時,異常檢測單元37c檢測得節點間的資料傳輸之異常。如同異常檢測單元37c的情況,有關從要求產生單元42a通過路由器40傳輸給其它CPU的讀取要求及寫入要求,異常檢測單元42c檢測得節點間的資料傳輸之異常。當檢測得異常時,類似異常檢測單元37c的檢測單元85之情況下,檢測單元95從實體位址93獲得含括在由指標器90指示的該要求內的存取目標之該記憶體的實體位址,且將所得實體位址記錄在錯誤出現位址暫存器98。
當該實體位址係記錄在錯誤出現位址暫存器98時,捕集產生單元99產生捕集。
其次,將參考圖12描述造成CPU 21發送該要求給其它CPU的處理實例。圖12為略圖描述依據第一實施例造成一CPU發送一要求的處理實例。例如,如圖12以(A)指示,有關得自服務處理器24的節點對映圖34,執行分錄的設定其 中存取至以該實體位址分配的該記憶體之該CPU的CPUID與該實體位址係彼此匹配。
又,算術單元31執行算術處理,輸出邏輯位址為該位址轉譯單元35的存取目標,如圖12以(B)指示。位址轉譯單元35將該邏輯位址轉譯成實體位址,及將該轉譯後的實體位址輸出給快取目錄管理單元36,如圖12以(C)指示。
此處,當快取目錄管理單元36從位址轉譯單元35獲得實體位址時,參考節點對映圖34,快取目錄管理單元36獲得匹配所得實體位址的CPUID,如圖12以(D)指示。當該所得CPUID並非CPU 21的CPUID時,快取目錄管理單元36輸出所得CPUID及實體位址給封包控制單元37,如圖12以(E)指示。
於此種情況下,封包產生單元37a產生一封包儲存得自該快取目錄管理單元36的實體位址及CPUID,且輸出所生成的封包給路由器40,如圖12以(F)指示。又,封包產生單元37a輸出表示封包的傳輸作為該要求之資料給異常檢測單元37c,如圖12以(G)指示。隨後,如圖12以(H)指示,路由器40輸出得自封包產生單元37a的封包給XB連結單元27。然後,如圖12以(I)指示,XB連結單元27輸出所得封包給XB 2。XB 2將該封包傳送給由儲存在該封包的CPUID所指示的CPU。
其次,將參考圖13描述當CPU 21從其它CPU接收一封包時所執行的處理實例。圖13為略圖描述依據第一實施例當一CPU接收一封包時所執行的處理實例。例如,如圖13 以(J)指示,封包接收單元37b從其它CPU接收一封包儲存CPU 21的CPUID及分配給記憶體22的實體位址或一回應之一封包。
於此種情況下,當所接收的封包為該回應的封包時,封包接收單元37b輸出資料給異常檢測單元37c,該資料表示接收該封包作為回應,如圖13以(K)指示。封包接收單元37b從所接收的封包獲得該實體位址,且輸出所得實體位址給快取目錄管理單元36,如圖13以(L)指示。快取目錄管理單元36決定由該實體位址指示的儲存區是否為共用區或本地區。
於存取至共用區之情況下,快取目錄管理單元36決定由該實體位址所指示的儲存區之資料是否係快取在L1快取記憶體32或L2快取記憶體33,如圖13以(M)指示。
又,當判定該資料係非經快取時,快取目錄管理單元36輸出該實體位址給記憶體存取單元41,如圖13以(N)指示。如圖13以(O)指示,記憶體存取單元41從記憶體22獲得由該實體位址所指示的儲存區之資料,且將該資料輸出給快取目錄管理單元36。
當快取目錄管理單元36從L1快取記憶體32、L2快取記憶體33、或記憶體存取單元41獲得資料時,快取目錄管理單元36指示所得資料輸出給封包控制單元37,及所得資料發送給該要求源的該CPU。
其次,將參考圖14描述使得I/O裝置發送一讀或寫要求給CPU 21以外的CPU之處理實例。圖14為略圖描述依據第 一實施例使得一I/O裝置傳輸一要求的處理實例。舉例言之,當PCIe連結單元28從該I/O裝置獲得實體位址及CPUID時,PCIe連結單元28將所得實體位址及CPUID輸出給PCIe匯流排控制單元42b,如圖14以(P)指示。又,當PCIe連結單元28從I/O裝置獲得實體位址、CPUID、及所記錄的資料時,PCIe連結單元28將所得實體位址、CPUID、及所記錄的資料輸出給PCIe匯流排控制單元42b,如圖14以(P)指示。
當PCIe匯流排控制單元42b從PCIe連結單元28獲得實體位址及CPUID時,PCIe匯流排控制單元42b將該所得實體位址及CPUID輸出給要求產生單元42a,如圖14以(Q)指示。又,當PCIe匯流排控制單元42b從PCIe連結單元28獲得實體位址、CPUID、及所記錄的資料時,PCIe匯流排控制單元42b將所得實體位址、CPUID、及所記錄的資料輸出給要求產生單元42a,如圖14以(Q)指示。
又,當要求產生單元42a從PCIe匯流排控制單元42b獲得實體位址及CPUID時,要求產生單元42a產生一封包作為一讀要求,包括所得實體位址及CPUID。又,當要求產生單元42a從PCIe匯流排控制單元42b獲得實體位址、CPUID、及所記錄的資料時,要求產生單元42a產生一封包作為一寫要求,包括所得實體位址、CPUID、及所記錄的資料。然後,要求產生單元42a將該所產生的封包輸出給路由器40,如圖14以(R)指示。
又,要求產生單元42a將表示讀要求及寫要傳輸的資料輸出給異常檢測單元42c,如圖14以(S)指示。接著,如圖14 以(T)指示,路由器40將得自要求產生單元42a的要求輸出給XB連結單元27。然後,如圖14以(U)指示,XB連結單元27將所得要求輸出給XB 2。XB 2將該封包移轉給由儲存在要求的CPUID所指示的該CPU。
其次,將參考圖15描述使得I/O裝置從CPU 21以外的CPU接收一回應之處理實例。圖15為略圖描述依據第一實施例使得一I/O裝置接收一回應的處理實例。例如,如圖15以(V)指示。XB連結單元27從CPU 21以外的一CPU接收一回應給I/O裝置。
當XB連結單元27接收到回應時,XB連結單元27將所接收的回應輸出給路由器40,如圖15以(W)指示。當路由器40接收到該回應時,路由器40將所接收的回應輸出給要求產生單元42a,如圖15以(X)指示。當要求產生單元42a接收到該回應時,要求產生單元42a將表示該回應之接收的資料輸出給異常檢測單元42c,如圖15以(Y)指示。又,要求產生單元42a將該回應輸出給PCIe匯流排控制單元42b,如圖15以(Z)指示。當PCIe匯流排控制單元42b接收到該回應時,PCIe匯流排控制單元42b將所接收的回應輸出給PCIe連結單元28,如圖15以(AA)指示。藉此方式,該回應係從PCIe連結單元28傳輸至I/O裝置。
其次,將參考圖16及圖17說明當一節點20與含括該節點20之一存取目標之記憶體的一節點間出現資料傳輸異常時所執行的處理實例。圖16為略圖描述當一節點與含括該相對應節點的一存取目標之一記憶體的一節點間出現資料 傳輸異常時所執行的處理實例。舉例言之,異常檢測單元37c決定計時器81的時間是否已經通過達預定時間。當該預定時間已經經過,而在該預定時間以內並未接收到對由指標器80指示的要求的回應。因此,異常檢測單元37c檢知在該節點20與含括該存取目標之該記憶體的該節點間出現資料傳輸異常。異常檢測單元37c從實體位址83獲得該存取目標之該記憶體的實體位址,係含括在由指標器80所指示的要求,及記錄所得實體位址於錯誤出現位址暫存器96,如圖16以(AB)指示。當該實體位址係記錄在錯誤出現位址暫存器96時,捕集產生單元97產生捕集,如圖16以(AC)指示。
圖17為略圖描述當一節點與含括該相對應節點的一存取目標之一記憶體的一節點間出現資料傳輸異常時所執行的處理實例。舉例言之,異常檢測單元42c決定計時器91的時間是否已經經過一預定時間。當該預定時間已經經過,而在該預定時間以內並未接收到對由指標器90指示的要求的回應。因此,異常檢測單元42c檢知在該節點20與含括該存取目標之該記憶體的該節點間出現資料傳輸異常。異常檢測單元42c從實體位址93獲得該存取目標之該記憶體的實體位址,係含括在由指標器90所指示的要求,及記錄所得實體位址於錯誤出現位址暫存器98,如圖17以(AD)指示。當該實體位址係記錄在錯誤出現位址暫存器98時,捕集產生單元99產生捕集,如圖17以(AE)指示。
通訊單元23、服務處理器24、XB連結單元27、XB連結單元27a、及PCIe連結單元28為電子電路。此處,作為電子 電路之實例,可應用積體電路諸如特定應用積體電路(ASIC)、可現場程式規劃閘陣列(FPGA)等或微處理單元(MPU)。又,替代CPU 21至21c,可應用積體電路諸如ASIC、FPGA等、MPU或其類。
又,記憶體22至22a為半導體記憶體裝置諸如隨機存取記憶體(RAM)、唯讀記憶體(ROM)、或快閃記憶體。又,L1快取記憶體32及L2快取記憶體33為高速半導體記憶體裝置,諸如靜態隨機存取記憶體(SRAM)。
其次,將說明使得個別CPU 21至21c保有快取同調的處理。又,於後文說明中,假設資訊處理系統1的個別CPU藉使用伊利諾協定而保有快取同調。
又,於後文描述中,假設含括在資訊處理系統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或遠端CPU執行由該命令所指示之一處理,及改變由該本地CPU或遠端CPU本身所快取的資料狀態。
隨後,本地CPU或遠端CPU發送一命令完成的回應或資料附接完成的回應給原位CPU。此外,於原位CPU或遠端CPU執行命令處理後,原位CPU或遠端CPU發送一資料附接要求回應給本地CPU。
[處理流程]
其次,將參考圖18說明使得資訊處理系統1控制共用區的處理流程。圖18為流程圖描述控制一共用區之一處理流程。首先,資訊處理系統1依據來自一應用程式的要求而執行在節點間分配一共用記憶體的處理(步驟S101)。然後,資訊處理系統1執行附接在節點間共用的該共用記憶體之處理(步驟S102)。
然後,由含括在資訊處理系統1的個別CPU所執行的應用程式使用個別記憶體(步驟S103)。然後,資訊處理系統1執行分離該共用記憶體之處理(步驟S104)。然後,資訊處理系統1執行釋放該共用記憶體之處理(步驟S105),及結束該處理程序。又,步驟S101及步驟S105可只藉在共用記憶體的原位節點上的應用程式執行。實際處理為nop,但步驟S101及步驟S105也可藉在共用記憶體的原位節點以外的節點上的應用程式執行。
其次,將參考圖19說明分配該共用記憶體之處理流程,係藉圖18之步驟S101表示。圖19為流程圖描述共用記憶體區之分配處理。於圖19例示說明之實例中,例如由CPU 21所執行的應用程式要求OS執行在節點間分配共用記憶體的處理(步驟S201)。
由CPU 21所執行的OS從事由來自針對一共用區的一實體位址的一區所要求的一定大小的記憶體分配(步驟S202)。其次,由該OS所分配的共用記憶體之管理ID係遞送給該應用程式(步驟S203),及結束分配該共用記憶體的處 理。
其次,參考圖20說明附接節點間的該共用記憶體之處理流程,以圖18之步驟S102表示。圖20為流程圖描述共用記憶體區之附接處理。首先,應用程式遞送管理ID給OS,及要求附接節點間之該共用記憶體的處理(步驟S301)。於此種情況下,OS與在另一個節點執行的OS通訊,且獲得與該管理ID相對應的一實體位址(步驟S302)。
此處,當該OS係與在其它節點執行的OS通訊時,係使用藉LAN等通訊、透過服務處理器24個別節點間的通訊等。又,在各個節點執行的OS可設定一特定共用區作為用於節點間通訊之一區,及藉儲存或讀取在該設定區上的資訊執行通訊。
然後,OS決定相對應於該實體位址之一邏輯位址且執行分配(步驟S303)。舉例言之,在CPU 21執行的OS設定該實體位址與邏輯位址之一TLB 35a給位址轉譯單元35。
又,由個別CPU 21至21c使用的邏輯位址可在重疊範圍,也可在各個CPU的不同範圍。又,由個別CPU 21至21c所使用的邏輯位址可藉該應用程式指定給該OS。然後,OS傳遞該邏輯位址值給該應用程式(步驟S304),及結束處理。
其次,將參考圖21說明附接節點間的該共用記憶體之處理流程,以圖18之步驟S103表示。圖21為流程圖描述使得一應用程式運用一共用記憶體的處理。舉例言之,由CPU 21所執行的應用程式簽發該邏輯位址,及執行對由該邏輯位址所指示的儲存區之存取(步驟S401)。
CPU 21決定是否發生TLB遺漏(步驟S402)。當發生TLB遺漏時(步驟S402為是),CPU 21執行捕集處理,及設定邏輯位址與實體位址之一集合的分錄給TLB(步驟S403)。
然後,應用程式再度簽發邏輯位址,及通常透過藉TLB轉譯成實體位址而執行存取共用記憶體(步驟S404),及然後結束處理。另一方面,當未發生TLB遺漏時(步驟S402為否),正常執行存取共用記憶體(步驟S405),及處理結束。
其次,將參考圖22說明分離節點間的共用記憶體之處理流程,以圖18之步驟S104表示。圖22為流程圖描述節點間之共用記憶體之分離處理。舉例言之,藉CPU 21執行的應用程式指定節點間的共用記憶體之邏輯位址或管理ID給OS,及要求分離處理(步驟S501)。
由CPU 21執行的OS從事快取記憶體的刷新(步驟S502)。換言之,於共用記憶體的解除分配後OS再度執行分配作為共用記憶體之情況下,當不執行分配作為共用記憶體時,若該共用記憶體的原位節點係經重新軟體啟動,則快取記憶體狀態與實際記憶體狀態彼此不匹配。因此理由故,OS從事快取記憶體的刷新來防止其中快取記憶體狀態與實際記憶體狀態彼此不匹配的狀態。
OS解除分配節點間的共用記憶體的邏輯位址,亦即由該應用程式所使用的範圍,及刪除與該被解除分配的邏輯位址相關的TLB 35a之分錄(步驟S503)。又,其中,在目前節點上,即便就分離完成記憶體位址發生TLB遺漏(步驟S402為是),OS不設定與分離完成邏輯位址相對應的實體位 址給TLB 35a。因此步驟S404通常未完成,及發生存取錯誤。與步驟S302相反,在分離完成後,OS在節點間通訊,及本應用程式通知存取完成給共用記憶體的實體位址(步驟S504)。當該共用記憶體的釋放在該原位節點上完成且該應用程式為該共用記憶體的最末使用者時,對該原位節點要求釋放處理(步驟S505),及處理結束。
其次,將參考圖23說明釋放節點間的共用記憶體之處理流程,以圖18之步驟S105表示。圖23為流程圖描述節點間之共用記憶體之釋放處理。舉例言之,藉CPU 21執行的應用程式對OS要求節點間的共用記憶體之釋放處理(步驟S601)。當指定的共用區之全部使用者皆分離時,OS釋放分配(步驟S602)及結束處理。當分離未完成時,不執行釋放分配的處理,及處理完成(實際分配完成處理係在步驟S505執行)。
其次,將參考圖24說明使用CPU 21發送記憶體存取要求給另一個CPU的處理流程。圖24為流程圖描述簽發一要求之一處理流程。例如,CPU 21的算術單元31簽發邏輯位址(步驟S701)。
位址轉譯單元35執行從邏輯位址轉譯成實體位址(步驟S702)。然後,快取目錄管理單元36獲得實體位址且執行快取目錄管理(步驟S703)。換言之,有關由所得實體位址指示的儲存區,快取目錄管理單元36改變快取狀態。
然後,參考節點對映圖34,快取目錄管理單元36決定該所得實體位址是否為分配給另一個節點的記憶體的實體 位址(步驟S704)。當決定該所得實體位址非為分配給另一個節點的記憶體的實體位址(步驟S704為否)時,快取目錄管理單元36藉使用所得實體位址執行記憶體存取(步驟S705)。然後處理結束。
另一方面,當所得實體位址為分配給另一個節點的記憶體的實體位址(步驟S704為是)時,快取目錄管理單元36從節點對映圖34獲得匹配實體位址的CPUID(步驟S706)。封包傳輸單元產生一封包儲存CPUID及實體位址,亦即一記憶體存取要求,且傳輸該封包給XB 2(步驟S707)及結束處理。
其次,將參考圖25描述當CPU 21接收來自另一個CPU的記憶體存取要求時所執行的處理流程。圖25為流程圖描述當接收到一要求時所執行的處理流程。又,於圖25例示說明之實例中,將參考圖25描述當CPU 21接收來自另一個CPU的「移進共用」或「移進互斥」時所執行的處理流程。舉例言之,CPU 21透過XB 2接收來自另一個CPU的要求(步驟S801)。
於此種情況下,藉使用節點對映圖34,CPU 21決定作為要求目標的該實體位址是否為該本地區(步驟S802)。當作為要求目標的該實體位址係為該本地區(步驟S802為是)時,CPU發送否定回應給要求源的CPU(步驟S803),及結束處理。
又,當作為要求目標的該實體位址非為該本地區(步驟S802為否)時,CPU 21執行快取目錄管理來保有同調(步驟 S804)。又,CPU 21決定由該實體位址所指示的儲存區之狀態(步驟S805)。
CPU 21基於所決定的狀態簽發命令給另一個CPU(步驟S806)及改變狀態(步驟S807)。然後,CPU 21執行回應,發送由該實體位址所指示的儲存區資料給要求源的CPU(步驟S808),及結束處理。
其次,將參考圖26說明當CPU 21接收回應時所從事的處理流程。圖26為流程圖描述當一CPU接收到一回應時所執行的處理流程。舉例言之,CPU 21接收回應(步驟S901)。於此種情況下,CPU 21決定回應內容是否為正常回應(步驟S902)。
當回應之內容為正常時,亦即當CPU 21接收要求目標之資料(步驟S902為是)時,CPU 21藉運用該資料執行正常處理(步驟S903),及結束處理。另一方面,當CPU 21接收到否定回應(步驟S902為否)時,CPU 21決定否定回應的理由是否為存取錯誤(步驟S904)。
當否定回應的理由非為存取錯誤(步驟S904為否)時,CPU 21執行典型錯誤處理(步驟S905)及結束處理。另一方面,當否定回應的理由係為存取錯誤(步驟S904為是)時,CPU 21設定發生錯誤之處的實體位址給一錯誤暫存器,及執行捕集處理(步驟S906),及結束處理。
其次,將參考圖27說明當CPU 21發送要求時所從事的處理流程。圖27為流程圖描述當一CPU發送一要求時所執行的處理流程。舉例言之,CPU 21儲存含括在該要求的存 取目的地之實體位址於實體位址83,及儲存要求的型別於要求84(步驟S1001)。CPU 21發送要求給另一個節點的CPU(步驟S1002)。然後,CPU 21起始計時器81(步驟S1003)。
然後,CPU 21決定對該要求的回應是否在逾時之前接收,換言之,在該要求發送之後而預定時間已經經過之前接收(步驟S1004)。當該回應係在逾時之前接收(步驟S1004為是),則CPU 21停止計時器81(步驟S1005)。然後CPU 21處理該回應(步驟S1006)及結束處理。
另一方面,當對該要求的回應係非在逾時之前接收(步驟S1004為否),則CPU 21執行下列處理。換言之,CPU 21載明與該要求相對應的儲存在實體位址83的實體位址,設定所載明的實體位址至錯誤出現位址暫存器96,及產生捕集(步驟S1007)。然後,有關連結至記憶體的CPU,該記憶體具有由所載明的實體位址指示的儲存區,CPU 21決定CPU 21是否為原位CPU,及欲回寫髒快取資料至記憶體22的指令是否含括於該要求(步驟S1008)。
當該CPU 21係為該原位CPU,及欲回寫髒快取資料至記憶體22的指令係含括於該要求(步驟S1008為是)時,CPU 21執行下列處理。換言之,CPU 21產生一值表示異常,回寫至記憶體22的共用記憶體之快取資料不被寫回,及記錄所產生之值在目錄36a的一預定區。另外,CPU 21在記憶體22至22c之共用區藉故障節點回寫該快取資料的該區產生表示錯誤態的資料,及記錄所產生的資料(步驟S1009)。然後,處理結束。又,當該CPU 21非為該原位CPU時,或當 欲回寫髒快取資料至記憶體22的指令係不含括於該要求(步驟S1008為否)時,處理結束。
其次,將參考圖28說明當PCIe控制單元42發送一讀要求時所從事的處理流程。圖28為流程圖描述當一PCIe控制單元發送一讀要求時所執行的處理流程。例如,PCIe控制單元42將含括在該要求裡的該存取目的地之實體位址儲存在實體位址83且將要求的型別儲存在要求84(步驟S1101)。PCIe控制單元42將該要求發送給另一個節點的CPU(步驟S1102)。然後,PCIe控制單元42起始計時器91(步驟S1103)。
然後,PCIe控制單元42決定對該要求的回應是否在逾時之前接收(步驟S1104)。當對該要求的回應係在逾時之前接收(步驟S1104為是)時,PCIe控制單元42停止計時器91(步驟S1105)。然後,PCIe控制單元42處理該回應(步驟S1106)及結束處理。
另一方面,當對該要求的回應係不在逾時之前接收(步驟S1104為否)時,PCIe控制單元42執行下列處理。換言之,PCIe控制單元42載明儲存在實體位址83的實體位址相對應於該要求,設定所載明的實體位址至錯誤出現位址暫存器98,及產生捕集(步驟S1107)。然後,PCIe控制單元42產生一「中毒TLP」封包且發送所產生的「中毒TLP」封包給PCIe連結單元28(步驟S1108)及結束處理。
其次,將參考圖29說明當PCIe控制單元42發送一寫要求時所從事的處理流程。圖29為流程圖描述當一PCIe控制單元發送一寫要求時所執行的處理流程。例如,PCIe控制 單元42將含括在該要求裡的該存取目的地之實體位址儲存在實體位址83且將要求的型別儲存在要求84(步驟S1201)。PCIe控制單元42將該要求發送給另一個節點的CPU(步驟S1202)。然後,PCIe控制單元42起始計時器91(步驟S1203)。
然後,PCIe控制單元42決定對該要求的回應是否在逾時之前接收(步驟S1204)。當對該要求的回應係在逾時之前接收(步驟S1204為是)時,PCIe控制單元42停止計時器91(步驟S1205)。然後,PCIe控制單元42處理該回應(步驟S1206)及結束處理。
另一方面,當對該要求的回應係不在逾時之前接收(步驟S1204為否)時,PCIe控制單元42執行下列處理。換言之,PCIe控制單元42載明儲存在實體位址83的實體位址相對應於該要求,設定所載明的實體位址至錯誤出現位址暫存器98,及產生捕集(步驟S1207),及結束處理。
其次,將參考圖30說明藉產生該捕集OS執行捕集處理的流程。圖30為流程圖描述藉產生該捕集OS執行捕集處理的流程。舉例言之,藉產生該捕集,由CPU 21所執行的OS起始一中斷處置器(步驟S1301)。該中斷處置器載明捕集的型別(步驟S1302)。中斷處置器決定捕集的型別是否表示與藉CPU 21檢知的另一個節點的CPU因通訊錯誤而導致讀處理係正在進行中。當該捕集的型別係表示與藉CPU 21檢知的另一個節點的CPU因通訊錯誤而導致讀處理係正在進行中(步驟S1303為是)時,中斷處置器執行下列處理。換言之,當中斷發生時,中斷處置器設定由一程式計數器所指示之 一處理的信號處置器作為信號傳輸目的地(步驟S1304)。然後,中斷處置器傳輸一信號給信號傳輸目的地(步驟S1305),及結束處理。
又,當該捕集的型別並非表示與藉CPU 21檢知的另一個節點的CPU因通訊錯誤而導致讀處理係正在進行中(步驟S1303為否)時,中斷處置器執行下列處理。換言之,中斷處置器決定捕集的型別是否表示與藉CPU 21檢知的另一個節點的CPU因通訊錯誤而導致寫處理係正在進行中(步驟S1306)。當該捕集的型別係表示與藉CPU 21檢知的另一個節點的CPU因通訊錯誤而導致寫處理係正在進行中(步驟S1306為是)時,中斷處置器讀取錯誤出現位址暫存器96且獲得實體位址(步驟S1307)。中斷處置器搜尋處置器表中之與該所得實體位址相對應的一信號處置器(步驟S1308)。
又,處置器表係如下述而形成。首先,當從針對一共用區的一實體位址的一區,由藉該CPU 21執行的應用程式要求的一尺寸之記憶體分配係藉該應用程式的要求執行時,獲得信號處置器,及該所得信號處置器之一功能的分錄位址係登錄在該處置器表。當該信號處置器的該功能的分錄位址係登錄在該處置器表時,OS執行下列處理。換言之,在處置器表中,由CPU 21執行的OS登錄共用記憶體之位址及處理之識別符,其係匹配該信號處置器的該功能的分錄位址。
圖31為略圖例示說明一處置器表的資料格式之一實例。圖31例示說明之處置器表包括一「共用記憶體位址」 項、一「pid」項、及一「信號處置器之功能之分錄位址」項。於該「共用記憶體位址」項中係登錄相對應於該信號處置器的共用記憶體位址,該信號處置器之分錄位址係登錄在該「信號處置器之功能之分錄位址」項。又,於該「pid」項中係登錄相對應於該信號處置器的處理識別符,該信號處置器之分錄位址係登錄在該「信號處置器之功能之分錄位址」項。於該「信號處置器之功能之分錄位址」項中係登錄該信號處置器之功能的分錄位址。
回頭參考圖30,作為搜尋結果,中斷處置器決定是否可得信號處置器(步驟S1309)。當信號處置器為可得時(步驟S1309為是),中斷處置器設定所得信號處置器為信號傳輸目的地(步驟S1310),及前進至步驟S1305。另一方面,當信號處置器為不可得時(步驟S1309為否),中斷處置器運用於步驟S1307所得的該實體位址指示的共用區之共用記憶體而停止全部處理(步驟S1311),及結束處理。
又,當該捕集的型別係表示與藉CPU 21檢知的另一個節點的CPU因通訊錯誤而導致寫處理係非正在進行中(步驟S1306為否)時,中斷處置器可做下述決定。亦即,中斷處置器可決定捕集的型別為與藉PCIe控制單元42檢測得的其它節點的CPU通訊錯誤。因此,中斷處置器啟動PCIe控制單元42的中斷處理常式(步驟S1312)。於藉CPU 21執行的中斷處理中,讀取PCIe控制單元42之錯誤出現位址暫存器98,及獲得實體位址(步驟S1313)。
然後,中斷處置器決定由所得實體位址指示的儲存區 是否為共用記憶體的共用區(步驟S1314)。當由所得實體位址指示的儲存區係為共用記憶體的共用區(步驟S1314為是)時,處理返回步驟S1308。另一方面,當由所得實體位址指示的儲存區非為共用記憶體的共用區(步驟S1314為否)時,執行一預定相關處理(步驟S1315),及處理結束。
其次,將參考圖32說明藉該信號所宣告的該信號處置器執行的處理流程。圖32為流程圖描述藉對其宣告一信號之該信號處置器所執行的一處理流程。舉例言之,中斷處置器宣告該信號給信號處置器且啟動該信號處置器(步驟S1401)。被啟動的信號處置器從被宣告給該信號處置器的該實體位址而載明出現異常的該共用記憶體(步驟S1402)。從發生宣告給該信號處置器的異常的該節點之資訊,信號處置器分離存在於該節點中發生異常的全部共用記憶體(步驟S1403)。
然後,在與出現異常的該節點共用節點20的全部共用記憶體上,信號處置器執行復原處理(步驟S1404)。然後,信號處置器執行該應用程式所特有的復原處理(步驟S1405)。
將描述該應用程式所特有的復原處理之一實例。舉例言之,當CPU 21執行應用程式,在外部儲存單元諸如碟片上以規則間隔產生「檢查點」時,可執行復原處理來讀取由「檢查點」所表示的資料,且重新開始處理。又,當CPU 21執行不產生「檢查點」的應用程式時,可執行復原處理,諸如復置或重新軟體開機處理。
又,藉對其宣告該信號之該信號處置器所執行的處理並不限於前述處理。如此,將參考圖33說明藉該信號所宣告的該信號處置器執行的處理流程。圖33為流程圖描述藉對其宣告一信號之該信號處置器所執行的另一處理流程。舉例言之,中斷處置器宣告該信號給信號處置器且啟動該信號處置器(步驟S1501)。被啟動的信號處置器從被宣告給該信號處置器的該實體位址而載明出現異常的該共用記憶體(步驟S1502)。信號處置器決定包括執行該信號處置器的CPU 21之該節點20(自我節點)是否附接該出現異常的節點的記憶體作為共用記憶體(步驟S1503)。當自我節點不附接該出現異常的節點的記憶體作為共用記憶體(步驟S1503為否)時,信號處置器前進至步驟S1508。
另一方面,當自我節點附接該出現異常的節點的記憶體作為共用記憶體(步驟S1503為是)時,信號處置器執行下述處理。換言之,信號處置器從出現異常宣告給信號處置器之該節點資訊中,分離存在於發生異常的該節點的全部共用記憶體(步驟S1504)。
然後,信號處置器從L1快取記憶體及L2快取記憶體中刪除存在於發生異常的該節點的共用記憶體位址(步驟S1505)。然後,信號處置器從TLB 35a中刪除含括存在於發生異常的該節點的共用記憶體位址之該分錄(步驟S1506)。即便當發生TLB遺漏時,信號處置器設定宣告給該信號處置器的該實體位址作為阻止登錄在TLB 35a的實體位址(步驟S1507)。
然後,信號處置器決定發生異常的該節點是否附接該自我節點的記憶體作為共用記憶體(步驟S1508)。當發生異常的該節點係附接該自我節點的記憶體作為共用記憶體(步驟S1508為是)時,在與發生異常的該節點共用的節點20之全部共用記憶體上,該信號處置器執行復原處理(步驟S1509)。然後,信號處置器執行該應用程式所特有的復原處理(步驟S1510),及結束處理。又,當發生異常的該節點係不附接該自我節點的記憶體作為共用記憶體(步驟S1508為否)時結束處理。
[第一實施例之效果]
如前述,資訊處理系統1包括多個節點,其各自包括記憶體22至22c,其部分可設定為共用記憶體區,及連結多個節點的XB 2。該等多個節點各自包括異常檢測單元37c及42c,其檢測多個節點間之資料傳輸異常或其它節點間之異常。又,基於由異常檢測單元37c及42c檢測得的異常,該等多個節點各自產生表示登錄在目錄36a的「UE」項中的異常。又,就在資料傳輸要求簽發源的節點內部的處理器,該等多個節點各自產生一中斷。又,當接收到中斷時,由多個節點各自的CPU所執行的OS從事復原處理。
換言之,該等多個節點中之至少一個節點包括異常檢測單元。使用在相對應單一節點及另一節點中共享的共用記憶體區,其係含括在設在相對應單一節點或相對應的另一節點中的儲存區內,異常檢測單元檢測資料傳輸之資料傳輸路徑中的異常。又,使用在相對應單一節點及另一節 點中共享的共用記憶體區,其係含括在設在相對應單一節點或相對應的另一節點中的儲存區內,異常檢測單元檢測可含括在資料傳輸之資料傳輸路徑中的某個節點的異常。又,該等多個節點中之至少一個節點包括一錯誤資訊產生單元,該單元係基於由異常檢測單元檢測得的異常而產生錯誤資訊,且就自我節點內部的處理器產生中斷。又,該等多個節點中之至少一個節點依據該中斷,基於該錯誤資訊而執行復原處理。
如前文描述,於資訊處理系統1中,即便在資料傳輸期間,通訊伙伴的節點故障,在對其宣告中斷的該CPU 21中執行的OS在自我節點的曾經由該故障節點所共享的共用記憶體上執行復原處理。因此理由故,即便通訊伙伴的節點故障因而伙伴節點毀了該共用記憶體的資料,該自我節點不會故障。因此,依據資訊處理系統1,即便在資料傳輸期間節點間出現通訊異常,不似相關技術,全部節點不會經常性故障。因此,依據資訊處理系統1,當發生節點間的資料傳輸相關的異常時,可遏止錯誤影響範圍。
又,依據資訊處理系統1,目標計數時間的要求係藉指標器80及90交換。因此,於要求傳輸後的逾時可藉單一計時器81或91檢測。
又,因資訊處理系統1係基於所接收的實體位址而決定存取目標是否為共用區或本地區,資訊處理系統1可維持核心資料或儲存在本地區的使用者資料之高度安全度。又,因資訊處理系統1新全部記憶體為可存取,故資訊處理系統 1容易隱藏記憶體存取延遲。
又,CPU 21存取在相同存取記憶體22的情況中由其它CPU所存取的記憶體的共用區。換言之,當作為存取目標的該儲存區係存在於記憶體22或其它記憶體上時,含括在CPU 21的算術單元31只須輸出該邏輯位址。
因此理由故,即便當不執行處理或程式規劃諸如I/O互斥控制時,CPU 21可容易地存取該共用區。因而可改良記憶體存取效能。又,CPU 21可妥適地運用共用記憶體,而無需修正欲執行的程式或OS,如此,CPU 21可以相關技藝之相同方式執行預提取處理。因而可改良記憶體存取效能。
又,當決定來自其它CPU的記憶體存取目標係為存取該本地區時,CPU 21發送否定回應。因此資訊處理系統1阻止存取共用區以外的其它區。結果,可防止錯誤。
又,藉使用節點對映圖34,快取目錄管理單元36將該實體位址轉譯成儲存在節點對映圖34中的相對應CPUID。因此,CPU 21可識別CPU,該CPU係存取被分配以作為存取目標之該實體位址的該記憶體。
又,CPU 21藉使用下述目錄執行快取同調控制,該目錄係管理快取儲存在該記憶體22的資料之該CPU。因此,即便含括在資訊處理系統1的CPU數目增加,資訊處理系統1仍可有效地保有快取同調,而不增加XB 2的資料通量。
更明確言之,於資訊處理系統1中,個別CPU間之通訊係限於遠端CPU與原位CPU間之通訊,或遠端CPU、原位CPU、與快取該已更新資料的本地CPU間之通訊。因此, 資訊處理系統1可有效地保有快取同調。
[b]第二實施例
雖然前文已經說明本發明之實施例,實施例可以前述實施例以外的各種形式體現。因此含括作為本發明之第二實施例之另一個實施例將說明如後。
(1)有關用以檢測節點之異常之方法
雖然前述第一實施例舉例說明下述情況,資訊處理系統1係藉檢測要求的逾時而來檢知節點的異常,但本文揭示系統並非囿限於此。舉例言之,本揭示系統可藉於預定時間間隔,藉檢查彼此連結的服務處理器間之該服務處理器狀態而來檢知節點的異常。又,本揭示系統可藉於預定時間間隔,藉透過LAN執行節點間的「帶電檢查」而來檢知節點的異常。以要求傳輸的時程,可以異步方式檢測得節點的異常。
圖34為資訊處理系統之一示意圖,描述用以檢測節點異常之一方法實例。圖34之實例例示說明建構區塊箱以「BB」表示的情況。於圖34之實例中,各個BB的CPU含括一異常檢測電路72、自我節點數目資訊73、一節點故障通知單元61、一中斷產生電路75、一節點故障接收單元62、及一節點故障資訊暫存器74。
異常檢測電路72檢測得自我節點的異常。自我節點數目資訊73乃表示自我節點的識別身分數目之資訊。當在異常檢測電路72檢測得自我節點的異常時,節點故障通知單元61發送一節點故障通知封包給XB,該節點故障通知封包 包括該異常的型別及由自我節點數目資訊73所表示的自我節點的識別身分數目。又,至於異常的型別,可有節點關閉、懸置、以及表示在哪個CPU發生異常的資訊。又,自我節點數目資訊73表示的資訊可為可識別該節點的任何資訊。舉例言之,於該節點與安裝在該節點上的CPU間之關係為經預先界定之情況下,節點數可從CPUID為已知。因此,由自我節點數目資訊73表示的資訊可為CPUID。
當節點故障接收單元62接收到從XB發送的節點故障通知封包時,節點故障接收單元62設定含括在該節點故障通知封包裡的異常型別及自我節點的識別數目給節點故障資訊暫存器74。當異常型別及自我節點的識別數目設定給節點故障資訊暫存器74時,軟體可藉使用設定資訊來因應該異常。又,當節點故障接收單元62接收到節點故障通知封包時,節點故障接收單元62輸出用以在中斷產生電路75產生中斷的一控制信號。當中斷產生電路75從節點故障接收單元62接收到該控制信號時,如同第一實施例之情況中斷產生電路75裂生中斷。因此,由於中斷,有關於中斷產生後的處理,執行如同第一實施例之相同處理。
於圖34之實例中,各個BB的ASIC包括一異常檢測電路70、自我節點數目資訊71、及一節點故障通知單元60。
異常檢測電路70檢測該自我節點的異常。自我節點數目資訊71乃表示自我節點的識別身分數目之資訊。當在異常檢測電路70檢測得該自我節點的異常時,節點故障通知單元60發送一節點故障通知封包給該XB,該節點故障通知 封包係含括異常型別及自我節點的識別數目,係藉自我節點數目資訊71表示。
節點故障通知單元60及61可藉傳輸多個節點故障通知封包給該XB而發送節點故障通知封包給多個CPU。又,節點故障通知單元60及61可傳輸單一節點故障通知封包給該XB,而該XB發送該節點故障通知封包給該等多個CPU。又,節點故障通知單元60及61可發送一個節點故障通知封包給在各個節點的單一CPU。
將參考圖35描述當使用與第一實施例的異常檢測方法不同的一方法時的處理流程。圖35為流程圖描述當使用與第一實施例的異常檢測方法相異的方法時之一處理流程。舉例言之,藉使用第二實施例所述的異常檢測方法中之任一者,CPU 21決定是否檢測得節點的異常(步驟S1601)。當未檢測得節點的異常(步驟S1601為否)時,CPU 21再度執行於步驟S1601的決定。另一方面,當檢測得節點的異常(步驟S1601為是)時,CPU 21決定檢測得異常的該節點是否為一遠端節點(步驟S1602)。
當檢測得異常的該節點係為遠端節點(步驟S1602為是)時,藉CPU 21執行的OS實施下列處理。換言之,在自我節點20的目錄36a上,當保有發生異常的節點資訊時,OS取得目錄36a的一致性(步驟S1603),及結束處理。此處,將描述取得目錄的一致性之方法實例。舉例言之,當故障節點快取資訊但快取記憶體的狀態為「乾淨」時,CPU 21執行下列處理。換言之,CPU 21執行復原處理,將「乾淨」快取 記憶體的目錄36a之資訊改變成其中「故障節點不被快取」的狀態。又,當故障節點快取資料而快取記憶體的軟態為「骯髒」時,CPU 21執行下列處理。換言之,CPU 21執行復原處理,將「骯髒」快取行改變成錯誤態。
另一方面,當檢測得異常的該節點係非為遠端節點(步驟S1602為否)時,藉CPU 21執行的OS實施下列處理。換言之,在自我節點的快取記憶體上,當保有發生異常的節點資訊時,OS刪除該快取節點的資訊(步驟S1604)。當發生異常的該節點之實體位址係登錄在該自我節點的TLB 35a時,OS刪除含括發生異常的該節點之實體位址的全部分錄(步驟S1605),及結束處理。
然後,於資訊處理系統1中,於應用程式執行一叢集操作之情況下,一叢集管理管理器可檢測得在一叢集軟體的節點故障。因此將參考圖36說明當叢集管理管理器檢測得異常時的處理流程。圖36為流程圖描述於一叢集管理管理器檢測得異常之情況下的一處理流程。舉例言之,叢集管理管理器決定是否檢測得節點的異常(步驟S1701)。當未檢測得節點的異常(步驟S1701為否)時,叢集管理管理器再度執行步驟S1701的處理。
另一方面,當檢測得節點的異常(步驟S1701為是)時,叢集管理管理器藉該節點的故障要求正在自我節點上跑的該應用程式開始重新組配處理(步驟S1702)。然後,應用程式要求OS釋放存在於發生異常的該節點中之該共用記憶體(步驟S1703)。然後,OS刪除被釋放的共用記憶體之資料, 且刪除該TLB的分錄(步驟S1704)。應用程式執行獨特的復原處理(步驟S1705),及結束處理。
(2)有關建構區塊
前述資訊處理系統1包括具有四個CPU的建構區塊10至10e。但實施例並非囿限於此,建構區塊10至10e可具有任意數目的CPU及由個別CPU所存取的記憶體。又,CPU與記憶體無需為1:1對應關係,直接存取記憶體的CPU可為整體的一部分。
(3)有關藉CPU傳輸的封包
前述CPU 21傳輸包括該CPUID及PA的封包括作為該記憶體存取的要求。但實施例並非囿限於此。換言之,CPU 21可輸出一儲存任意資訊的封包,只要該封包可獨一無二地識別該CPU存取作為存取目標的該記憶體即可。
又,例如,CPU 21可將CPUID轉換成虛擬連結(VC)ID及儲存該VCID。又,CPU 21可將資訊諸如表示資料長度的長度儲存在封包。
(4)有關由CPU簽發的命令(指令)
如前述,個別CPU 21至21c簽發要求或命令,且保有快取同調。但前述要求或命令僅為舉例說明。舉例言之,CPU 21至21c可簽發一比較與對調(CAS)指令。
如此,當CPU 21至21c簽發CAS指令時,處理係在個別CPU的各個快取記憶體上執行,即便在多個CPU間頻繁出現互斥控制的競爭亦復如此。結果,CPU 21至21c可防止因記憶體存取的發生所造成的延遲,且可防止在個別CPU間 之異動處理變複雜化。
(5)有關透過超級管理器之控制
於前述資訊處理系統1中,已經描述其中存取作為硬體的位址轉譯單元35係藉OS執行之實例。但實施例並非囿限於此。舉例言之,操作虛擬機器的超級管理器(HPV)可執行存取位址轉譯單元35。
換言之,於超級管理器操作的該節點中,OS對超級管理器要求操作,而不直接在CPU 21至21c的硬體資源諸如快取記憶體或MMU上執行操作。如此,當個別CPU 21至21c透過超級管理器接收控制時,個別CPU 21至21c將該虛擬位址轉譯成一實際位址(RA),及然後將該實際位址轉譯成一實體位址。
又,於超級管理器操作的節點中,中斷處理並不直接中斷OS,係在超級管理器上執行中斷。於此種情況下,超級管理器藉讀取OS的中斷處理處置器而執行中斷。又,藉前述超級管理器執行的處理為已知處理,該處理係執行來操作虛擬機器。
(6)有關使用區劃的處理
在前述資訊處理系統1中個別CPU 21至21c藉使用單一節點對映圖來傳輸記憶體存取。但實施例並非囿限於此。舉例言之,個別建構區塊10至10e操作為多個節點群組,單一邏輯區劃操作相同韌體(超級管理器)可被組配在各個節點群組。
於此種情況下,個別CPU 21至21c包括表示該存取目的 地之CPU之一節點對映圖,及表示在同一個邏輯區劃內部的該CPU之一節點對映圖。如此,因個別CPU 21至21c包括表示在同一個邏輯區劃內部的該CPU之一節點對映圖可識別不傳送超過該邏輯區劃的一特定封包的傳輸範圍,諸如一錯誤出現通知封包、一關閉要求封包、或一復置要求封包。
後文中,將說明包括表示含括在同一個邏輯區劃內部的該CPU之一節點對映圖的該CPU。圖37為略圖描述一資訊處理系統之一實例。如圖37之例示說明,建構區塊10及10a操作一邏輯區劃#A,建構區塊10b至10d操作一邏輯區劃#B。
此處,於邏輯區劃#A中,多個定義域#A至#C及韌體#A操作。此外,於邏輯區劃#B中,多個定義域#D至#G及韌體#B操作。又,韌體#A及韌體#B例如為超級管理器。此外,於邏輯區劃#A中,應用程式及作業系統(OS)操作。如同於定義域#A之情況,應用程式及OS係於其它定義域#B至#G操作。
換言之,個別定義域#A至#G為虛擬機器,其中應用程式及OS係分別地獨立地操作。此處,雖然含括於建構區塊10的CPU 21至21c可傳輸前述特別封包給含括於區劃#A的CPU,但CPU 21至21c不會傳輸前述特別封包給含括於區劃#B的CPU。
因此理由故,個別建構區塊10至10d的CPU具有一節點對映圖表示含括在同一個邏輯區劃內的CPU的CPUID。舉 例言之,CPU 21具有一節點對映圖34,其中一實體位址及連結至一記憶體含括由該實體位址所表示之一儲存區的一CPU的該CPUID係關聯彼此儲存。此外,CPU 21具有一節點對映圖34a,其中儲存含括在與CPU 21同一個邏輯區劃亦即區劃#A內的CPU的CPUID。類似節點對映圖34,節點對映圖34a假設係由服務處理器24設定。
後文中,將參考附圖描述含括在相同邏輯區劃內的CPU的CPUID的節點對映圖之一個實例。圖38為略圖描述一區劃之實例。舉例言之,於圖38例示說明之實例中,區劃#A包括建構區塊#0。此外,建構區塊#0包括一CPU #0及位址區「#0」具有所分配的記憶體。
此外,區劃#B包括建構區塊#1及建構區塊#2。又,建構區塊#1包括CPU #4、CPU #5、及分配位址區「#1」的記憶體,及分配位址區「#2」的記憶體。此外,CPU #4存取被分配位址區「#1」的記憶體,及CPU #5存取被分配位址區「#2」之記憶體。又復,建構區塊#2包括CPU #8及被分配以位址區「#3」的記憶體。
其次,將參考圖39A至39C描述圖38例示說明的含括於CPU #0之節點對映圖及含括於CPU #4之節點對映圖。首先,將參考圖39A及39B描述由區劃#A的CPU所儲存的節點對映圖。圖39A為略圖例示說明由區劃#A的CPU所儲存之節點對映圖之一實例。圖39B為略圖例示說明表示區劃#A的節點對映圖之一實例。
於後文呈示之說明中,節點ID「0」表示建構區塊#0, 節點ID「1」表示建構區塊#1,節點ID「2」表示建構區塊#2。此外,CPUID「0」為CPU #0的CPUID,CPUID「4」為CPU #4的CPUID,CPUID「5」為CPU #5的CPUID,及CPUID「8」為CPU #8的CPUID。
舉例言之,於圖39A例示說明之實例中,節點對映圖34例示說明位址區「#0」係存在於建構區塊#0且係藉CPU #0存取。此外,節點對映圖34例示說明位址區「#1」係存在於建構區塊#1且係藉CPU #4存取。又復,節點對映圖34例示說明位址區「#2」係存在於建構區塊#2且係藉CPU #5存取。此外,節點對映圖34例示說明位址區「#3」係存在於建構區塊#3且係藉CPU #8存取。
又,圖39B例示說明表示區劃#A的一個節點對映圖。如圖39B之例示說明表示區劃#A的該節點對映圖包括有效性、節點ID、及CPUID於各個分錄。舉例言之,於圖39B例示說明之實例中,該節點對映圖表示建構區塊#0的CPU #0係含括於區劃#A。
舉例言之,於圖38例示說明之實例中,CPU #0包括圖39A及39B例示說明的節點對映圖。當欲做記憶體存取時,CPU #0識別藉使用圖39A表示的節點對映圖之該存取目的地的CPU。另一方面,於特定封包只欲傳輸給位在相同區劃內部的CPU之情況下,CPU #0識別藉使用圖39B表示的節點對映圖之該傳輸目的地的CPU。換言之,CPU #0傳輸特定封包給位在於由圖39B例示說明的節點對映圖所表示的區劃#A內部之CPU作為一例。
另一方面,為了做記憶體存取,CPU #4包括圖39A及39C例示說明的節點對映圖。此處,圖39C為略圖例示說明表示區劃#B的一節點對映圖實例。於圖39C例示說明之實例中,表示區劃#B之一節點對映圖表示建構區塊#1的CPU #4及#5及建構區塊#2的CPU #8係存在於區劃#B。CPU #4傳輸特定封包給位在於由圖39C例示說明的節點對映圖所表示的區劃#B內部之CPU作為一例。
如前述,CPU #1及CPU#4儲存其中一位址區及一CPUID係彼此相聯結的該節點對映圖及表示一區劃的該節點對映圖。然後,CPU #1及CPU#4藉使用其中一位址區及一CPUID係彼此相聯結的該節點對映圖而直接地存取含括在其它節點的記憶體。此外,CPU #1藉使用表示區劃#A之一節點對映圖而傳輸特定封包。又復,CPU #4藉使用表示區劃#B之一節點對映圖而傳輸特定封包。
如此,各個CPU可包括一節點對映圖,其針對含括該CPU本身的各個區劃具有不同值。又,於各個CPU具有該節點對映圖具有針對含括該CPU本身的各個區劃的不同值之情況下,個別CPU可防止特定封包係傳輸超出該區劃。
此外,類似前述實施例之情況,個別CPU可藉起始位址及位址罩,或藉起始位址及長度表示該作為存取目標的位址區。換言之,CPU #1及CPU #4使用表示一位址區的該節點對映圖作為存取目標,該位址區係為藉使用起始位址及位址罩或起始位址與長度表示一存取目標。此外,CPU #1及CPU #4藉使用表示互異區劃的節點對映圖來傳送特定封 包。
(7)有關透過服務處理器的控制
於前述資訊處理系統1中,已經敘述其中存取至節點對映圖34為硬體係藉服務處理器24執行的實例。但實施例並非囿限於此,服務處理器24以外的組件可經組配來存取節點對映圖34。舉例言之,在CPU 21至21c中之一者或全部上操作的基本韌體(基本輸出入系統:BIOS)或超級管理器(HPV)可經組配來對節點對映圖34執行存取。
依據本發明之一實施例,當有關節點間的資料傳輸發生異常時,可遏止錯誤影響範圍。
1‧‧‧資訊處理系統
2‧‧‧縱橫式開關(XB)
10、10a-e‧‧‧建構區塊
21、21a-c‧‧‧中央處理單元(CPU)
22、22a-c‧‧‧記憶體
23、26‧‧‧通訊單元
24‧‧‧服務處理器
25‧‧‧控制單元
27、27a‧‧‧XB連結單元
28‧‧‧PCIe連結單元
30‧‧‧算術處理單元
31‧‧‧算術單元
32‧‧‧L1快取記憶體
33‧‧‧L2快取記憶體
34、34a‧‧‧節點對映圖
35‧‧‧位址轉譯單元
35a‧‧‧轉譯後備緩衝器(TLB)
36‧‧‧快取目錄管理單元
36a‧‧‧目錄
37‧‧‧封包控制單元
37a‧‧‧封包產生單元
37b‧‧‧封包接收單元
37c、42c‧‧‧異常檢測單元
40‧‧‧路由器
41‧‧‧記憶體存取單元
42a‧‧‧要求產生單元
42b‧‧‧PCIe匯流排控制單元
60、61‧‧‧節點故障通知單元
62‧‧‧節點故障接收單元
70、72‧‧‧異常檢測電路
71、73‧‧‧自我節點數目資訊
74‧‧‧節點故障資訊暫存器
75‧‧‧中斷產生電路
80、90‧‧‧指標器
81、91‧‧‧計時器
82、92‧‧‧傳輸封包
83、93‧‧‧實體位址(PA)
84、94‧‧‧要求
85、95‧‧‧檢測單元
96、98‧‧‧錯誤出現位址暫存器
97、99‧‧‧捕集產生單元
S101-105、S201-203、S301-304、S401-405、S501-505、S601-602、S701-707、S801-808、S901-906、S1001-1009、S1101-1108、S1201-1207、S1301-1315、S1401-1405、S1501-1510、S1601-1605、S1701-1705‧‧‧步驟
圖1為略圖描述依據第一實施例一資訊處理系統之一實例;圖2為略圖描述依據第一實施例一建構區塊的功能組態;圖3為略圖描述當其它節點係附接至一共用記憶體所被分配的一節點時一記憶體對映圖之一實例;圖4為略圖描述依據第一實施例一CPU的功能組態;圖5為略圖描述依據第一實施例一節點對映圖之資料格式之一實例;圖6為略圖描述一目錄之資料格式之一實例;圖7為略圖描述依據第一實施例藉一CPU傳輸的一封包;圖8為略圖例示說明一傳輸封包之一實例; 圖9為略圖例示說明一異常檢測單元的另一組態之一實例;圖10為略圖例示說明一「TLP標頭」之資料格式之一實例;圖11為略圖描述接收一「中毒TLP」封包之一PCIe控制單元之操作;圖12為略圖描述依據第一實施例造成一CPU發送一要求的處理實例;圖13為略圖描述依據第一實施例當一CPU接收一封包時所執行的處理實例;圖14為略圖描述依據第一實施例使得一I/O裝置傳輸一要求的處理實例;圖15為略圖描述依據第一實施例使得一I/O裝置接收一回應的處理實例;圖16為略圖描述當一節點與含括該相對應節點的一存取目標之一記憶體的一節點間出現資料傳輸異常時所執行的處理實例;圖17為略圖描述當一節點與含括該相對應節點的一存取目標之一記憶體的一節點間出現資料傳輸異常時所執行的處理實例;圖18為流程圖描述控制一共用區之一處理流程;圖19為流程圖描述共用記憶體區之分配處理;圖20為流程圖描述共用記憶體區之附接處理;圖21為流程圖描述使得一應用程式運用一共用記憶體 的處理;圖22為流程圖描述節點間之共用記憶體之分離處理;圖23為流程圖描述節點間之共用記憶體之釋放處理;圖24為流程圖描述簽發一要求之一處理流程;圖25為流程圖描述當接收到一要求時所執行的處理流程;圖26為流程圖描述當一CPU接收到一回應時所執行的處理流程;圖27為流程圖描述當一CPU發送一要求時所執行的處理流程;圖28為流程圖描述當一PCIe控制單元發送一讀要求時所執行的處理流程;圖29為流程圖描述當一PCIe控制單元發送一寫要求時所執行的處理流程;圖30為流程圖描述藉產生該捕集OS執行捕集處理的流程;圖31為略圖例示說明一處置器表的資料格式之一實例;圖32為流程圖描述藉對其宣告一信號之該信號處置器所執行的一處理流程;圖33為流程圖描述藉對其宣告一信號之該信號處置器所執行的另一處理流程;圖34為資訊處理系統之一示意圖,描述用以檢測節點異常之一方法實例; 圖35為流程圖描述當使用與第一實施例的異常檢測方法相異的方法時之一處理流程;圖36為流程圖描述於一叢集管理管理器檢測得異常之情況下的一處理流程;圖37為略圖描述一資訊處理系統之一實例;圖38為略圖描述一區劃之一實例;圖39A為略圖描述由區劃#A之CPU所儲存的一節點對映圖之一實例;圖39B為略圖描述表示區劃#A之一節點對映圖之一實例;及圖39C為略圖描述表示區劃#B之一節點對映圖之一實例。
1‧‧‧資訊處理系統
2‧‧‧縱橫式開關(XB)
10、10a-e‧‧‧建構區塊
21、21a‧‧‧中央處理單元(CPU)
22、22a‧‧‧記憶體

Claims (12)

  1. 一種資訊處理裝置,其係包含:各自包括一儲存單元的多個節點;及連結該等多個節點之一互連體,其中該等多個節點中之至少一個節點係包括一快取記憶體,其快取自設在一個節點或另一個節點中的該儲存單元內所讀取之資料;一異常檢測單元,使用在該一個節點與該另一個節點中可共用的一共用記憶體區,檢測於資料傳輸之一資料傳輸路徑的異常,該共用記憶體區係設在該一個節點或該另一個節點中的該儲存單元內;或使用在該一個節點與另一個節點中可共用的一共用記憶體區,檢測含括於資料傳輸之一資料傳輸路徑中的某個節點的異常,該共用記憶體區係設在該一個節點或該另一個節點中的該儲存單元內;一錯誤資訊產生單元,係基於由該異常檢測單元所檢測的該異常而產生錯誤資訊,及關於在一自我節點內部之一處理器產生一中斷;及一處理器,係基於依據該中斷的該錯誤資訊而執行復原處理,其中,當於其中該異常係藉該異常檢測單元所檢測得的該某個節點為該另一個節點,其係為包括該儲存單元之一原位節點,該儲存單元係為經快取在該快取記憶體中的該資料之一讀取源,該處理器將在 執行該復原處理時清除該資料,藉由該處理器所清除的該資料係讀取自設在該另一個節點中的該儲存單元,於該另一個節點中該異常係經檢測且係快取在該自我節點內部之該快取記憶體中。
  2. 如申請專利範圍第1項之資訊處理裝置,其中該異常檢測單元係包含一指標器,其指示在表示多個資料傳輸要求的資訊中表示一資料傳輸要求的資訊,其中係相對應於一資料傳輸要求給一資料傳輸要求簽發源之一節點的資料係不傳輸;一計時器,其計數於簽發由該指標器所指示的資訊所表示的一資料傳輸要求後的一時間;及一檢測單元,當藉該計時器所計數的時間已經通過一預定時間時,在該資料傳輸要求簽發源的該節點接收與該資料傳輸要求相對應的資料前,其檢測該等節點間的資料傳輸之異常。
  3. 如申請專利範圍第2項之資訊處理裝置,其中該一個節點係進一步包括一通訊控制單元,其係控制於該處理器與另一節點間的通訊,該通訊控制單元包括一第一傳輸單元,其係依據來自該處理器之一指令而發送該資料傳輸要求給該資料傳輸之一存取目的地的一節點,及該異常檢測單元,該計時器計數在該第一傳輸單元發送該資料傳輸要求後的一時間,及 當藉該計時器計數的時間已經通過一預定時間時,在該資料傳輸要求簽發源的節點接收與該資料傳輸要求相對應的資料前,該檢測單元檢測該等節點間的資料傳輸之異常。
  4. 如申請專利範圍第1項之資訊處理裝置,其中該異常檢測單元在接收到一否定回應時,檢測該等節點間之資料傳輸的異常。
  5. 如申請專利範圍第2項之資訊處理裝置,其中該一個節點係包括控制一I/O裝置之一控制單元,該控制單元包括一第二傳輸單元,其係依據來自該I/O裝置之一指令而發送該資料傳輸要求給該資料傳輸之一存取目的地的一節點,及該異常檢測單元,該計時器計數在該第二傳輸單元發送該資料傳輸要求後的一時間,及當藉該計時器計數的時間已經通過一預定時間時,在該資料傳輸要求簽發源的節點接收與該資料傳輸要求相對應的資料前,該檢測單元檢測該等節點間的資料傳輸之異常。
  6. 如申請專利範圍第1至5項中任一項之資訊處理裝置,其中該一個節點係包括快取資料的一快取記憶體,及該錯誤資訊產生單元產生該錯誤資訊,及將該錯誤資訊寫在一含括快取在該快取記憶體中的該資料上的資訊之快取目錄中。
  7. 如申請專利範圍第1至5項中任一項之資訊處理裝置,其 中該一個節點係包括快取資料的一快取記憶體,及該錯誤資訊產生單元基於藉該異常檢測單元所檢測的其它節點的異常而產生錯誤資訊,及將該錯誤資訊寫在由該其它節點所存取的一共用記憶體內。
  8. 如申請專利範圍第5項之資訊處理裝置,其中該一個節點係包括快取資料的一快取記憶體,及該錯誤資訊產生單元產生該錯誤資訊,及控制該I/O裝置來藉發送該錯誤資訊給該I/O裝置而檢測錯誤。
  9. 如申請專利範圍第1項之資訊處理裝置,其中係藉使用一表,於該表中一邏輯位址及一實體位址係彼此相聯結的登錄,該處理器轉譯由一應用程式所存取的該儲存單元的由該應用程式所產生的一邏輯位址成為該儲存單元之一實體位址,及當藉該異常檢測單元檢測得異常時,該處理器取消含括在與該異常相對應之一節點中的該儲存單元之一實體位址與該表中相對應於該實體位址之一邏輯位址的匹配。
  10. 如申請專利範圍第6項之資訊處理裝置,其中當藉該異常檢測單元所檢測得異常的一節點係為一遠端節點時,該處理器取得該快取目錄的資訊之一致性。
  11. 如申請專利範圍第1項之資訊處理裝置,其中該處理器通知一信號給與一節點的一共用記憶體相對應的一單一處置器,該節點的異常係藉該異常檢測單元所檢測。
  12. 一種於一資訊處理裝置中之多個節點中之至少一個節 點的控制方法,該資訊處理裝置係包含:該等多個節點各自包括一儲存裝置;及連結於該等多個節點間之一互連體,該控制方法係執行下列處理:在一快取記憶體中快取自設在一個節點或另一個節點中的該儲存裝置內所讀取之資料;使用在該一個節點與另一個節點中可共用的一共用記憶體區,檢測於資料傳輸之一資料傳輸路徑的異常,該共用記憶體區係設在該一個節點或另一個節點中的該儲存裝置內;或使用在該一個節點與另一個節點中可共用的一共用記憶體區,檢測含括於資料傳輸之一資料傳輸路徑中的某個節點的異常,該共用記憶體區係設在該一個節點或另一個節點中的該儲存裝置內;基於該檢測得的異常而產生錯誤資訊,及關於在一自我節點內部之一處理器產生一中斷;及基於依據該中斷的該錯誤資訊,執行復原處理,其中,當於其中該異常係經檢測的該某個節點係為該另一個節點,其係為包括該儲存裝置之一原位節點,該儲存裝置係為經快取在該快取記憶體中的該資料之一讀取源,在執行該復原處理時清除該資料,該經清除的資料係讀取自設在該另一個節點中的該儲存裝置,於該另一個節點中該異常係經檢測且係快取在該自我節點內部之該快取記憶體中。
TW101133463A 2011-12-28 2012-09-13 資訊處理裝置以及控制方法 TWI484343B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011290024A JP5590022B2 (ja) 2011-12-28 2011-12-28 情報処理装置、制御方法および制御プログラム

Publications (2)

Publication Number Publication Date
TW201327184A TW201327184A (zh) 2013-07-01
TWI484343B true TWI484343B (zh) 2015-05-11

Family

ID=47044864

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101133463A TWI484343B (zh) 2011-12-28 2012-09-13 資訊處理裝置以及控制方法

Country Status (6)

Country Link
US (1) US9065706B2 (zh)
EP (1) EP2610748A1 (zh)
JP (1) JP5590022B2 (zh)
KR (1) KR101442913B1 (zh)
CN (1) CN103198046B (zh)
TW (1) TWI484343B (zh)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
JP5906881B2 (ja) * 2012-03-27 2016-04-20 富士通株式会社 情報処理装置及び情報処理装置の制御方法
US9223645B2 (en) * 2012-05-08 2015-12-29 Hitachi, Ltd. Storage apparatus and method for controlling storage apparatus
US9063721B2 (en) 2012-09-14 2015-06-23 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
US9069782B2 (en) 2012-10-01 2015-06-30 The Research Foundation For The State University Of New York System and method for security and privacy aware virtual machine checkpointing
US9274971B2 (en) * 2012-11-27 2016-03-01 International Business Machines Corporation Low latency data exchange
US10496775B2 (en) * 2013-01-31 2019-12-03 General Electric Company Method and system for use in dynamically configuring data acquisition systems
US9632934B2 (en) * 2013-03-14 2017-04-25 Silicon Graphics International Corp. Maintaining coherence when removing nodes from a directory-based shared memory system
JP6135403B2 (ja) * 2013-08-27 2017-05-31 富士通株式会社 情報処理システム、情報処理システムの障害処理方法
CN103475716B (zh) * 2013-09-11 2016-10-05 北京京东尚科信息技术有限公司 通过共享存储实现数据共享的方法和系统
US9372752B2 (en) 2013-12-27 2016-06-21 Intel Corporation Assisted coherent shared memory
JP6334969B2 (ja) * 2014-03-14 2018-05-30 Necプラットフォームズ株式会社 演算処理装置、制御方法、及び、プログラム
JP6364872B2 (ja) 2014-03-28 2018-08-01 セイコーエプソン株式会社 情報処理装置、プロジェクター、情報処理方法及びプログラム
CN103957437A (zh) * 2014-04-26 2014-07-30 吉安英佳电子科技有限公司 无线伺服便携式高集成数字多媒体一体机
US9396142B2 (en) * 2014-06-10 2016-07-19 Oracle International Corporation Virtualizing input/output interrupts
CN104077375B (zh) * 2014-06-24 2017-09-12 华为技术有限公司 一种cc‑numa系统中节点的错误目录的处理方法和节点
US10002044B2 (en) 2014-08-19 2018-06-19 Samsung Electronics Co., Ltd. Memory devices and modules
US10761925B2 (en) * 2015-03-24 2020-09-01 Nxp Usa, Inc. Multi-channel network-on-a-chip
US9916091B2 (en) * 2015-07-13 2018-03-13 Samsung Electronics Co., Ltd. Memory system architecture
JP6540309B2 (ja) 2015-07-16 2019-07-10 富士通株式会社 共有メモリシステム、演算処理装置、及び方法
JP6551024B2 (ja) 2015-08-04 2019-07-31 富士通株式会社 情報処理システム、情報処理方法、情報処理プログラムおよび情報処理装置
US10853266B2 (en) * 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
JP6493187B2 (ja) * 2015-12-08 2019-04-03 富士通株式会社 情報処理装置、演算処理装置および情報処理装置の制御方法
JP6493193B2 (ja) * 2015-12-15 2019-04-03 富士通株式会社 情報処理装置、演算処理装置、および情報処理装置の制御方法
JP6520733B2 (ja) * 2016-01-26 2019-05-29 富士通株式会社 情報処理装置および制御方法
US11444866B2 (en) * 2016-07-22 2022-09-13 Intel Corporation Methods and apparatus for composite node creation and management through SDI partitions
CN108196945B (zh) * 2016-12-08 2022-06-07 阿里巴巴集团控股有限公司 一种核间通信方法、装置和虚拟化设备
CN109474573B (zh) * 2017-12-30 2021-05-25 北京安天网络安全技术有限公司 一种识别失活木马程序的方法、装置和存储介质
JP6700564B1 (ja) * 2018-12-28 2020-05-27 富士通クライアントコンピューティング株式会社 情報処理システム
CN110505039B (zh) * 2019-09-26 2022-04-01 北京达佳互联信息技术有限公司 一种数据传输控制方法、装置、设备及介质
JP2022014963A (ja) 2020-07-08 2022-01-21 富士通株式会社 キャッシュ制御装置及びキャッシュシステムの制御方法
CN114967634A (zh) * 2021-09-16 2022-08-30 长城汽车股份有限公司 处理器诊断装置、处理器诊断方法和电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200401202A (en) * 2002-05-30 2004-01-16 Ibm Direct addressed shared compressed memory system
US20050005200A1 (en) * 2003-03-12 2005-01-06 Vladimir Matena Method and apparatus for executing applications on a distributed computer system
TW201102929A (en) * 2009-06-19 2011-01-16 Advanced Risc Mach Ltd Data processing apparatus and method

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3872118B2 (ja) * 1995-03-20 2007-01-24 富士通株式会社 キャッシュコヒーレンス装置
JP3875749B2 (ja) * 1996-08-08 2007-01-31 富士通株式会社 マルチプロセッサ装置及びそのメモリアクセス方法
JP3620173B2 (ja) * 1996-10-14 2005-02-16 株式会社日立製作所 アドレス変換回路及びマルチプロセッサシステム
JP3849951B2 (ja) * 1997-02-27 2006-11-22 株式会社日立製作所 主記憶共有型マルチプロセッサ
JPH11168502A (ja) 1997-12-04 1999-06-22 Nec Kofu Ltd 通信障害処理装置及び方法
JP3313667B2 (ja) * 1999-06-21 2002-08-12 日本電気通信システム株式会社 二重化システムの障害検出方式及びその方法
JP2001331470A (ja) * 2000-05-19 2001-11-30 Mitsubishi Electric Corp 多重伝送装置
JP2002149622A (ja) * 2000-11-16 2002-05-24 Nec Eng Ltd 情報処理システム
JP2002366451A (ja) 2001-06-13 2002-12-20 Hitachi Ltd マルチプロセッサシステム
JP2003330905A (ja) * 2002-05-14 2003-11-21 Nec Corp コンピュータシステム
JP2004013723A (ja) * 2002-06-10 2004-01-15 Nec Computertechno Ltd 共有メモリを使ったクラスタ構成を採用した情報処理システムの障害処理装置と方法
JP2004341595A (ja) * 2003-05-13 2004-12-02 Oki Electric Ind Co Ltd 信号転送方法及び信号処理システム
JP4339763B2 (ja) 2004-09-07 2009-10-07 株式会社日立製作所 フェイルオーバ方法及び計算機システム
JP2006285384A (ja) 2005-03-31 2006-10-19 Nec Corp プロセッサ障害処理方式、管理プロセッサ及びプロセッサ障害処理方法
US20060248283A1 (en) * 2005-04-29 2006-11-02 Galin Galchev System and method for monitoring threads in a clustered server architecture
JP5035176B2 (ja) * 2008-08-21 2012-09-26 富士通株式会社 伝送システム、伝送装置および伝送方法
JP5573829B2 (ja) * 2011-12-20 2014-08-20 富士通株式会社 情報処理装置およびメモリアクセス方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200401202A (en) * 2002-05-30 2004-01-16 Ibm Direct addressed shared compressed memory system
US20050005200A1 (en) * 2003-03-12 2005-01-06 Vladimir Matena Method and apparatus for executing applications on a distributed computer system
TW201102929A (en) * 2009-06-19 2011-01-16 Advanced Risc Mach Ltd Data processing apparatus and method

Also Published As

Publication number Publication date
KR20130076695A (ko) 2013-07-08
JP2013140445A (ja) 2013-07-18
US20130170334A1 (en) 2013-07-04
US9065706B2 (en) 2015-06-23
CN103198046A (zh) 2013-07-10
EP2610748A1 (en) 2013-07-03
TW201327184A (zh) 2013-07-01
KR101442913B1 (ko) 2014-09-23
JP5590022B2 (ja) 2014-09-17
CN103198046B (zh) 2015-10-28

Similar Documents

Publication Publication Date Title
TWI484343B (zh) 資訊處理裝置以及控制方法
TWI480883B (zh) 資訊處理裝置及控制方法
CN106776159B (zh) 具有故障转移的快速外围元件互连网络系统与操作方法
EP2608044B1 (en) Information processing apparatus and memory access method
JP5931196B2 (ja) I/oノード及び複数の計算ノードに備えられたキャッシュメモリの制御方法
TWI431475B (zh) 用於在本地代理者之記憶體鏡像及遷移之裝置、系統及方法
JP5094460B2 (ja) 計算機システム、データ一致化方法およびデータ一致化処理プログラム
US6192452B1 (en) Method and system for avoiding data loss due to cancelled transactions within a non-uniform memory access system
US10152417B2 (en) Early freeing of a snoop machine of a data processing system prior to completion of snoop processing for an interconnect operation
WO2020087930A1 (zh) 一种数据保护方法、装置及系统
JP5800058B2 (ja) 情報処理装置、制御方法および制御プログラム
JP2014160502A (ja) 情報処理装置およびメモリアクセス方法
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
CN107515723B (zh) 用于管理存储系统中的存储器的方法和系统
JP2012208964A (ja) 計算機システム、データ一致化方法およびデータ一致化処理プログラム
US9952805B2 (en) Storage system and data write method using a logical volume to either store data successfully onto a first memory or send a failure response to a server computer if the storage attempt fails
JP6094317B2 (ja) ストレージシステム、ファイルサーバ、キャッシュ管理方法およびキャッシュ管理プログラム

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees