TWI715294B - 基於系統管理匯流排界面對i2c記憶體進行讀寫的方法 - Google Patents
基於系統管理匯流排界面對i2c記憶體進行讀寫的方法 Download PDFInfo
- Publication number
- TWI715294B TWI715294B TW108141946A TW108141946A TWI715294B TW I715294 B TWI715294 B TW I715294B TW 108141946 A TW108141946 A TW 108141946A TW 108141946 A TW108141946 A TW 108141946A TW I715294 B TWI715294 B TW I715294B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- master node
- management bus
- node
- system management
- Prior art date
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本發明提供一種基於系統管理匯流排界面對I2C記憶體進行讀寫的方法,包括:對I2C記憶體進行寫入操作時,將系統管理匯流排寫命令的命令寄存器中寫入I2C記憶體的高八位元位址,將系統管理匯流排寫命令的第一資料寄存器中寫入I2C記憶體的低八位元位址,將系統管理匯流排寫命令的第二資料寄存器中寫入待寫入I2C記憶體的位元組資料,對I2C記憶體進行讀取操作時,發送系統管理匯流排接收位元組命令至I2C記憶體,並將從I2C記憶體讀取的資料寫入在系統管理匯流排接收位元組命令的資料寄存器中。
Description
本發明涉及資料讀寫方法,特別是涉及一種基於系統管理匯流排界面對I2C記憶體進行讀寫的方法。
現有技術中,基本輸入輸出系統(Basic Input Output System,BIOS)在系統啟動過程中具有主控權,現有UEFI BIOS允許在上電自檢(Power On Self Test,POST)過程和運行時(Runtime)往BIOS的記憶體NVRAM中讀取或寫入UEFI變數來保存記錄BIOS運行過程中的變數或是需要與作業系統(Operating System,OS)進行交互的變數。
另外,由於BIOS在啟動結束後會將由控制權交由OS處理,故當系統發生錯誤如記憶體錯誤檢查和糾正(Error Checking and Correcting,ECC)時,會觸發系統進入系統管理模式(System Management Mode,SMM)。此時,BIOS會短暫重新獲得控制權,檢視系統中相關的寄存器來定位發生錯誤的元件及位置,並經由智慧平臺管理介面(Intelligent Platform Management Interface,IPMI)命令將相關資訊發送給BMC來記錄保存,以便於使用者後續可通過IPMI命令查詢相應的錯誤記錄。
然而,上述做法存在著以下缺點:
(1)BIOS的記憶體NVRAM空間是在BIOS ROM晶片中預留的一部分空間,由於BIOS本身的代碼部分已經相當大,導致記憶體NVRAM的空間容量有限;
(2)當BIOS在進行升降級的時候,往往將整個BIOS ROM全部擦除後進行燒寫,之前保存的所有變數將會被全部清除;
(3)通過發送IPMI命令給BMC時,嚴重依賴BMC的運行狀態,若此時BMC運行出錯,則會出現無法記錄發生的事件和錯誤情況,將直接導致伺服器的可靠性下降。
鑒於以上所述現有技術的缺點,本發明的目的在於提供一種基於系統管理匯流排界面對I2C記憶體進行讀寫的方法,在主從架構伺服器中採用記憶體來記錄啟動事件資訊和系統錯誤資訊,保證了資料的完整性和伺服器的穩定性。
為實現上述目的及其他相關目的,本發明提供一種基於系統管理匯流排界面對I2C記憶體進行讀寫的方法,包括:對所述I2C記憶體進行寫入操作時,將所述系統管理匯流排寫命令的命令寄存器中寫入所述I2C記憶體的高八位元位址,將系統管理匯流排寫命令的第一資料寄存器中寫入所述I2C記憶體的低八位元位址,將系統管理匯流排寫命令的第二資料寄存器中寫入待寫入所述I2C記憶體的位元組資料;對所述I2C記憶體進行讀取操作時,發送系統管理匯流排接收位元組命令至所述I2C記憶體,並將從所述I2C記憶體讀取的資料寫入在所述系統管理匯流排接收位元組命令的資料寄存器中。
於本發明一實施例中,應用於主從架構伺服器中,所述主從架構伺服器包括主節點、多路選擇器和至少兩個從節點;每個從節點均通過所述多路選擇器與所述主節點相連;所述從節點包括從節點基本輸入輸出系統、從節點南橋晶片和從節點I2C記憶體,所述主節點包括主節點基本輸入輸出系統、主節點南橋晶片、主節點I2C記憶體和基板管理控制器;所述從節點南橋晶片通過系統管理匯流排界面與所述從節點I2C記憶體相連;所述主節點南橋晶片通過系統管理匯流排界面與所述主節點I2C記憶體相連。
於本發明一實施例中,所述從節點基本輸入輸出系統通過所述從節點南橋晶片將從節點資訊記錄在所述從節點I2C記憶體中;所述主節點基本輸入輸出系統通過所述主節點南橋晶片將主節點資訊通過記錄在所述主節點I2C記憶體中。
於本發明一實施例中,所述從節點資訊包括啟動事件資訊和系統錯誤資訊中的一種或多種組合。
於本發明一實施例中,所述主節點資訊包括啟動事件資訊和系統錯誤資訊中的一種或多種組合。
於本發明一實施例中,所述基板管理控制器通過所述多路選擇器選擇訪問某一從節點的從節點I2C記憶體。
於本發明一實施例中,所述主節點南橋晶片的通用輸入輸出埠與所述基板控制器的通用輸入輸出埠相連。
於本發明一實施例中,當通用輸入輸出埠信號為第一值時,所述主節點基本輸入輸出系統訪問所述主節點I2C記憶體;當所述通用輸入輸出埠信號為第二值時,所述基板管理控制器訪問所述主節點I2C記憶體。
於本發明一實施例中,所述基板管理控制器通過I2C匯流排與所述多路選擇器相連。
於本發明一實施例中,所述多路選擇器通過I2C匯流排與所述從節點I2C記憶體相連。
如上所述,本發明的基於系統管理匯流排界面對I2C記憶體進行讀寫的方法,具有以下有益效果:
(1)在主從架構伺服器中採用記憶體來記錄啟動事件資訊和系統錯誤資訊;
(2)擴充了BIOS中記憶體NVRAM中變數的保存容量;
(3)在BIOS升級燒寫過程中保證了資料的完整;
(4)無需依賴BMC的存在,即可自行記錄運行過程中的事件和錯誤資訊,提高了伺服器的可靠性。
以下通過特定的具體實例說明本發明的實施方式,本領域技術人員可由本說明書所揭露的內容輕易地瞭解本發明的其他優點與功效。本發明還可以通過另外不同的具體實施方式加以實施或應用,本說明書中的各項細節也可以基於不同觀點與應用,在沒有背離本發明的精神下進行各種修飾或改變。需說明的是,在不衝突的情況下,以下實施例及實施例中的特徵可以相互組合。
需要說明的是,以下實施例中所提供的圖示僅以示意方式說明本發明的基本構想,遂圖式中僅顯示與本發明中有關的組件而非按照實際實施時的元件數目、形狀及尺寸繪製,其實際實施時各元件的型態、數量及比例可為一種隨意的改變,且其元件佈局型態也可能更為複雜。
本發明的基於系統管理匯流排(System Management Bus,SMBus)介面對I2C記憶體進行讀寫的方法在主從架構伺服器中採用記憶體來記錄啟動事件資訊和系統錯誤資訊,其中通過SMBus介面對I2C記憶體進行資料讀寫,有效保證了資料的完整性和伺服器的穩定性,實用性強。
根據SMBus spec和I2C spec的協定規範,SMBus在實體層上是完全相容I2C信號的(二者均只有SDA和SCLK兩根信號)。由於SMBus在網路通訊協定層對I2C的命令進行了升級和規範定義,通過SMBus介面訪問I2C 記憶體時必須按照記憶體的讀寫時序進行訪問,否則會導致記憶體接收到的信號解析錯誤而無法進行讀寫。
如圖1所示,於一實施例中,本發明的基於系統管理匯流排界面對I2C記憶體進行讀寫的方法,包括:
步驟S1、對所述I2C記憶體進行寫入操作時,將所述系統管理匯流排寫命令的命令寄存器中寫入所述I2C記憶體的高八位元位址,將系統管理匯流排寫命令的第一資料寄存器中寫入所述I2C記憶體的低八位元位址,將系統管理匯流排寫命令的第二資料寄存器中寫入待寫入所述I2C記憶體的位元組資料。
如圖2和圖3所示,將I2C寫時序與SMBus介面支援的協定寫命令時序進行對比,可以發現使用SMBus協議的寫命令時序來模擬對I2C記憶體EEPROM的比特寫命令時序。因此,根據上述操作時序和SMBus Host Controller Protocol的定義,對所述I2C記憶體進行寫入操作時,將所述SMBus匯流排寫命令的命令寄存器(Command Code)中寫入所述I2C記憶體的高八位元位址,將所述SMBus匯流排寫命令的第一資料寄存器(Data Byte Low)中寫入所述I2C記憶體的低八位元位址,將所述SMBus匯流排寫命令的第二資料寄存器(Data Byte High)中寫入待寫入所述I2C記憶體的位元組資料。故當所述I2C記憶體接收到上述SMBus匯流排寫命令時,即可將所述第二資料寄存器的位元組輸入寫入所述I2C記憶體。
步驟S2、對所述I2C記憶體進行讀取操作時,發送系統管理匯流排接收位元組命令至所述I2C記憶體,並將從所述I2C記憶體讀取的資料寫入在所述系統管理匯流排接收位元組命令的資料寄存器中。
如圖4和5所示,將I2C寫時序與SMBus介面支援的協定寫命令時序進行對比,可以發現使用SMBus協議的接收比特命令時序來模擬對I2C記憶體EEPROM的當前位址讀命令命令時序。因此,根據上述操作時序和SMBus Host Controller Protocol的定義,對所述I2C記憶體進行讀取操作時,發送所述SMBus匯流排接收位元組命令至所述I2C記憶體,所述I2C記憶體將需要讀取的資料寫入所述所述SMBus匯流排接收位元組命令的資料寄存器(Data Byte from Slave)中,同時無需填寫命令寄存器(Command Code)。
於本發明一實施例中,上述基於系統管理匯流排界面對I2C記憶體進行讀寫的方法應用於如圖6所示的主從架構伺服器中。所述主從架構伺服器包括主節點1、多路選擇器2和至少兩個從節點3(即從節點1、從節點2…..從節點n-1和從節點n)。其中,所述主節點1通過所述多路選擇器2與每個所述從節點3相連。
如圖8所示,所述從節點3包括從節點BIOS31、從節點南橋晶片(PCH)33和從節點I2C記憶體32(如EEPROM)。所述從節點BIOS31通過從節點南橋晶片33訪問所述從節點記憶體32。所述從節點南橋晶片33通過SMBus介面與所述從節點記憶體32相連。
如圖7所示,所述主節點1包括主節點BIOS11、主節點南橋晶片13、主節點I2C記憶體12(如EEPROM)和BMC14。所述主節點南橋晶片13通過SMBus介面與所述主節點I2C記憶體12相連。
於本發明一實施例中,所述從節點BIOS31通過所述從節點南橋晶片33將從節點資訊記錄在所述從節點I2C記憶體32中。其中,所述從節點資訊包括從節點啟動事件資訊和從節點系統錯誤資訊中的一種或多種組合。
於本發明一實施例中,所述主節點BIOS11通過所述主節點南橋晶片13將主節點資訊通過記錄在所述主節點I2C記憶體12中。其中,所述主節點資訊包括主節點啟動事件資訊和主節點系統錯誤資訊中的一種或多種組合。所述BMC14通過所述多路選擇器2選擇訪問某一從節點的從節點I2C記憶體。
所述多路選擇器2通過I2C匯流排所述BMC14相連,通過I2C匯流排與所述從節點記憶體相連。
在訪問I2C記憶體時,BIOS和BMC必須是master身份才具有存取權限,而在I2C信號上是不存在master仲裁機制的。因此,在本發明中通過所述主節點南橋晶片與所述BMC之間連接的通用輸入輸出埠(General Purpose Input Output,GPIO)對BIOS和BMC的訪問進行切換控制。於本發明一實施例中,當GPIO信號為第一值時,所述主節點BIOS訪問所述主節點記憶體;當所述GPIO信號為第二值時,所述BMC訪問所述主節點記憶體。具體地,使用主節點南橋晶片上預留的GPIO與BMC上的GPIO相連;當GPIO信號為低電平時,BIOS可以訪問所述主節點記憶體進行事件和錯誤記錄,此時BMC處於等待輪循進程;待BIOS訪問結束後,將GPIO信號拉高,BMC檢測到GPIO信號為高電平時,具有存取權限,即可從所述主節點記憶體中讀取相應的事件和錯誤記錄。
綜上所述,本發明的基於系統管理匯流排界面對I2C記憶體進行讀寫的方法在主從架構伺服器中採用記憶體來記錄啟動事件資訊和系統錯誤資訊;擴充了BIOS中記憶體NVRAM中變數的保存容量;在BIOS升級燒寫過程中保證了資料的完整;無需依賴BMC的存在,即可自行記錄運行過程中的事件和錯誤資訊,提高了伺服器的可靠性。所以,本發明有效克服了現有技術中的種種缺點而具高度產業利用價值。
上述實施例僅例示性說明本發明的原理及其功效,而非用於限制本發明。任何熟悉此技術的人士皆可在不違背本發明的精神及範疇下,對上述實施例進行修飾或改變。因此,舉凡所屬技術領域中具有通常知識者在未脫離本發明所揭示的精神與技術思想下所完成的一切等效修飾或改變,仍應由本發明的申請專利範圍所涵蓋。
1:主節點
11:主節點BIOS
12:主節點記憶體
13:主節點南橋晶片
14:BMC
2:多路選擇器
3:從節點
31:從節點BIOS
32:從節點記憶體
33:從節點南橋晶片
圖1顯示為本發明的基於系統管理匯流排界面對I2C記憶體進行讀寫的方法於一實施例中流程圖;
圖2顯示為I2C記憶體的比特寫時序示意圖;
圖3顯示為SMBus介面的寫命令的時序示意圖;
圖4顯示為I2C記憶體的當前位址讀命令的時序示意圖;
圖5顯示為SMBus介面的接收比特命令的時序示意圖;
圖6顯示為本發明的主從架構伺服器於一實施例中的結構示意圖;
圖7顯示為本發明的主節點於一實施例中的結構示意圖;
圖8顯示為本發明的從節點於一實施例中的結構示意圖。
Claims (9)
- 一種基於系統管理匯流排界面對I2C記憶體進行讀寫的方法,應用於主從架構伺服器中,該方法包括:對所述I2C記憶體進行寫入操作時,將所述系統管理匯流排寫命令的命令寄存器中寫入所述I2C記憶體的高八位元位址,將系統管理匯流排寫命令的第一資料寄存器中寫入所述I2C記憶體的低八位元位址,將系統管理匯流排寫命令的第二資料寄存器中寫入待寫入所述I2C記憶體的位元組資料;以及對所述I2C記憶體進行讀取操作時,發送系統管理匯流排接收位元組命令至所述I2C記憶體,並將從所述I2C記憶體讀取的資料寫入在所述系統管理匯流排接收位元組命令的資料寄存器中,其中,所述主從架構伺服器包括主節點、多路選擇器和至少兩個從節點;每個從節點均通過所述多路選擇器與所述主節點相連;所述從節點包括從節點基本輸入輸出系統、從節點南橋晶片和從節點I2C記憶體,所述主節點包括主節點基本輸入輸出系統、主節點南橋晶片、主節點I2C記憶體和基板管理控制器;所述從節點南橋晶片通過系統管理匯流排界面與所述從節點I2C記憶體相連;所述主節點南橋晶片通過系統管理匯流排界面與所述主節點I2C記憶體相連。
- 如請求項1所述的基於系統管理匯流排界面對I2C記憶體進行讀寫的方法,其中所述從節點基本輸入輸出系統通過所述從節點南橋晶片將從節點資訊記錄在所述從節點I2C記憶體中;所述主節點基本輸入輸 出系統通過所述主節點南橋晶片將主節點資訊通過記錄在所述主節點I2C記憶體中。
- 如請求項2所述的基於系統管理匯流排界面對I2C記憶體進行讀寫的方法,其中所述從節點資訊包括啟動事件資訊和系統錯誤資訊中的一種或多種組合。
- 如請求項2所述的基於系統管理匯流排界面對I2C記憶體進行讀寫的方法,其中所述主節點資訊包括啟動事件資訊和系統錯誤資訊中的一種或多種組合。
- 如請求項1所述的基於系統管理匯流排界面對I2C記憶體進行讀寫的方法,其中所述基板管理控制器通過所述多路選擇器選擇訪問某一從節點的從節點I2C記憶體。
- 如請求項1所述的基於系統管理匯流排界面對I2C記憶體進行讀寫的方法,其中所述主節點南橋晶片的通用輸入輸出埠與所述基板控制器的通用輸入輸出埠相連。
- 如請求項6所述的基於系統管理匯流排界面對I2C記憶體進行讀寫的方法,其中當通用輸入輸出埠信號為第一值時,所述主節點基本輸入輸出系統訪問所述主節點I2C記憶體;當所述通用輸入輸出埠信號為第二值時,所述基板管理控制器訪問所述主節點I2C記憶體。
- 如請求項1所述的基於系統管理匯流排界面對I2C記憶體進行讀寫的方法,其中所述基板管理控制器通過I2C匯流排與所述多路選擇器相連。
- 如請求項1所述的基於系統管理匯流排界面對I2C記憶體進行讀寫的方法,其中所述多路選擇器通過I2C匯流排與所述從節點I2C記憶體相連。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108141946A TWI715294B (zh) | 2019-11-19 | 2019-11-19 | 基於系統管理匯流排界面對i2c記憶體進行讀寫的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108141946A TWI715294B (zh) | 2019-11-19 | 2019-11-19 | 基於系統管理匯流排界面對i2c記憶體進行讀寫的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI715294B true TWI715294B (zh) | 2021-01-01 |
TW202121175A TW202121175A (zh) | 2021-06-01 |
Family
ID=75237349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108141946A TWI715294B (zh) | 2019-11-19 | 2019-11-19 | 基於系統管理匯流排界面對i2c記憶體進行讀寫的方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI715294B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200847183A (en) * | 2007-05-16 | 2008-12-01 | Inventec Corp | Method for controlling clock of memory slots |
TW201732560A (zh) * | 2015-12-23 | 2017-09-16 | 英特爾股份有限公司 | 用於位元欄位位址和插入之指令及邏輯 |
US10198382B2 (en) * | 2012-12-13 | 2019-02-05 | Texas Instruments Incorporated | 12C bus controller slave address register and command FIFO buffer |
-
2019
- 2019-11-19 TW TW108141946A patent/TWI715294B/zh active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200847183A (en) * | 2007-05-16 | 2008-12-01 | Inventec Corp | Method for controlling clock of memory slots |
US10198382B2 (en) * | 2012-12-13 | 2019-02-05 | Texas Instruments Incorporated | 12C bus controller slave address register and command FIFO buffer |
TW201732560A (zh) * | 2015-12-23 | 2017-09-16 | 英特爾股份有限公司 | 用於位元欄位位址和插入之指令及邏輯 |
Also Published As
Publication number | Publication date |
---|---|
TW202121175A (zh) | 2021-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI553650B (zh) | 以記憶體控制器來處理資料錯誤事件之方法、設備及系統 | |
US6463550B1 (en) | Computer system implementing fault detection and isolation using unique identification codes stored in non-volatile memory | |
US20180129553A1 (en) | Memory devices and modules | |
CN110765032A (zh) | 基于系统管理总线接口对i2c存储器进行读写的方法 | |
US11507718B1 (en) | Chip verification system and verification method therefor | |
WO2016106935A1 (zh) | 一种闪存控制器和闪存控制器的控制方法 | |
US6643714B1 (en) | Modification and use of configuration memory used during operation of a serial bus | |
JPH11167544A (ja) | Pcmciaカード及びそのプログラミング方法 | |
JP2006302287A (ja) | 冗長i/oインターフェース管理 | |
TWI838563B (zh) | 串列記憶體設備i/o模式選擇 | |
US9542251B2 (en) | Error detection on a low pin count bus | |
US7552249B2 (en) | Direct memory access circuit and disk array device using same | |
US10911259B1 (en) | Server with master-slave architecture and method for reading and writing information thereof | |
CN110765060B (zh) | Mdio总线到并行总线转换方法及装置、设备、介质 | |
TWI715294B (zh) | 基於系統管理匯流排界面對i2c記憶體進行讀寫的方法 | |
CN114902186A (zh) | 非易失性存储器模块的错误报告 | |
US7424580B2 (en) | Data transfer control device, electronic instrument, program and method of fabricating electronic instrument | |
TWI740276B (zh) | 一種主從架構伺服器及其資訊讀寫方法 | |
CN109753239B (zh) | 半导体存储模块、半导体存储系统和访问其的方法 | |
JP2009252294A (ja) | メモリコントローラ、メモリシステム、及びメモリデバイスへのデータの書込方法 | |
CN110750476A (zh) | 一种spi总线与并行总线的桥接方法、设备、系统及介质 | |
TWI814655B (zh) | 記憶裝置、快閃記憶體控制器及其控制方法 | |
US10229057B2 (en) | Method and apparatus for avoiding bus contention after initialization failure | |
TW594478B (en) | Device to extend an address space by inserting a waiting state and operation method for the device | |
JPS62250563A (ja) | 磁気デイスク記憶装置 |