TWI482084B - 提供平台獨立記憶體邏輯之裝置、方法及系統 - Google Patents

提供平台獨立記憶體邏輯之裝置、方法及系統 Download PDF

Info

Publication number
TWI482084B
TWI482084B TW100124965A TW100124965A TWI482084B TW I482084 B TWI482084 B TW I482084B TW 100124965 A TW100124965 A TW 100124965A TW 100124965 A TW100124965 A TW 100124965A TW I482084 B TWI482084 B TW I482084B
Authority
TW
Taiwan
Prior art keywords
memory
odt
sic
processor
snapshot
Prior art date
Application number
TW100124965A
Other languages
English (en)
Other versions
TW201224918A (en
Inventor
Bin C Xing
Vincent J Zimmer
Krystof C Zmudzinski
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of TW201224918A publication Critical patent/TW201224918A/zh
Application granted granted Critical
Publication of TWI482084B publication Critical patent/TWI482084B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Stored Programmes (AREA)
  • Retry When Errors Occur (AREA)
  • Logic Circuits (AREA)
  • Static Random-Access Memory (AREA)

Description

提供平台獨立記憶體邏輯之裝置、方法及系統
本發明關於提供平台獨立記憶體邏輯。
從歷史來看,在電腦系統中,基本輸入/輸出系統(BIOS)軟體係用來啟動及執行低階操作的軟體,典型上,所謂的生產代工廠商(OEM),即電腦製造商已將其結合到電腦內。為使BIOS支援處理器,處理器製造商(所謂的半導體製造商)提供詳細的資訊給OEM。典型上,此資訊為原始碼的形式。不過,有關硬體智財權(IP)方面,諸如如何程式該處理器及基本的硬體細節等,經由提供此碼,都要揭露給第三方。此外,經由提供原始碼,OEM可修改此碼,以非標準的方式整合該碼,或微調該碼以支援非標準的硬體,非標準的硬體會產生複雜度與操作上的顧慮,導致半導體製造商額外的支援成本。
典型上,提供用來初始化系統之資訊的例子,包括關於處理器、互連連結、記憶體組構(memory fabric)等的細節。這些細節可包括了暫存器定義與對此硬體的介面。此資訊除了分發給OEM之外,也要分發給獨立的BIOS供應商(IBV)。雖然x86電腦系統之IBV與OEM的領域較小,但隨著處理器與其它先進的半導體控制器被結合到不同類型的系統與裝置,預期此領域會大幅地擴展,發生更多的IP顧慮及支援挑戰。
【發明內容及實施方式】
在各實施例中,早期的初始化軟體具有與底層處理器硬體結合的緊密連結,致使半導體製造商控制並提供早期的初始化軟體,而非由OEM BIOS來實施。
此半導體整合碼(silicon integrated code;SIC)係在載入碼的環境中使用,保證其來源地,且在SIC執行之後,以無縫的方式將控制轉手給OEM BIOS。SIC用來執行低階方面的記憶體初始化,諸如訓練,在訓練中類比鏈結被建立,偵錯及設計測試鉤(test hook)。然而本發明的範圍並不限於此方面,用於記憶體控制器及互連鏈結的關鍵初始化碼,以及支援各不同處理器之潛在的運轉時間及系統特徵,這些都可以是以SIC的形式。在某些實施例中,經由處理器微碼中的鉤(hook)來實施SIC載入器加以確認而提供對此碼的可信任基礎(root of trust),並接著載入SIC,此SIC可以是半導體製造商之BIOS的形式,並接著將控制傳遞給OEM BIOS。升級到OEM BIOS所帶來的挑戰,用來儲存BIOS的記憶體,諸如結合到快閃記憶體中的韌體卷(firm ware volume)可能會是不利的,因此,對處理器封裝內用來開始SIC載入器之核心微碼的基礎信任,可用來保證這些包括SIC之OEM BIOS之附帶區塊為有效。
在執行SIC之後,控制可傳遞給OEM BIOS,其可依統一可延伸韌體介面(Unified Extensible Firmware Interface;(UEFI))開放式原始碼(例如UEFI規格Version 2.0(2006年2月21日)來實施,或以電機及電子工程師學會(IEEE)開放式韌體1275-1994來實施,或以傳統的BIOS或專屬的OEM啟動碼來實施,以上每一項都啟動一或多個作業系統(OS)。在某些實施中,SIC可用來施行修補,例如,用來解決錯誤或用來施行二進制譯碼。此外,SIC能夠為某些記憶體區塊設定保護,例如,隱藏供二進制轉譯、錯誤處理、或在運轉時間期間所要執行之半導體製造商之其它碼所用的記憶體區塊,且對OS為隱藏。按此方式,處理器使用具有SIC的保留碼,諸如用於微碼唯讀記憶體(uROM)卸載、協同處理器支援等,在揭露給機器之前,提供此記憶體給第三方的OEM碼,以允許記憶體的子集可供處理器使用。
在各實施例中,SIC可提供為二進制碼,以結合到OEM BIOS內,例如,如快閃或其它非揮發性記憶體,或者,SIC可在處理器封裝的非揮發性儲存器內實施。因此,實施例使處理器或其它半導體製造商能夠運送二進制模組給客戶,而非原始碼,提供較大的IP保護。此外,隨著客戶數量的成長,可藉由BIOS構建單元連同矽晶片一起運送而降低技術支援成本。
圖1係按照本發明之實施例,可結合到SIC內之平台獨立BIOS之組件的方塊圖。經由平台獨立,其表示其所包括的組件可在任何指定的平台上執行,無論機器的規格為何(例如記憶體類型、鏈結速度、可用電壓等)。或者,如下所述,與平台相依的任何事項,都可經由平台製造商資料檔案來編碼。例如,平台供應商可將某些資訊參數化,諸如關於系統主機板等資訊。某些要做基本初始化(例如鏈結初始化建立可信任基礎)的組件,可在將控制傳遞給第三方碼之前,藉由SIC來完成。此類的SIC暫時隔離,可保證處理器在開啟電源重置時擁有硬體且僅執行SIC碼,直到控制被交給第三方碼。
如圖1所示,SIC組件可包括初始程式載入器(initial program loader;IPL)20,其負責在第三方碼之前,定位及載入其餘的SIC。須注意,此載入器不必考慮成是SIC的組件。SIC的組件可以是暫時或持續的。關於持續的組件,其可以是主動的(其作用如同平台初始化(PI)模組)的或被動的(經由新的指令,其作用如同程式庫)。
在圖1的實施例中,SIC 10包括內嵌式中央處理單元(CPU)邏輯(ECL)30,其初始化中間處理器邏輯,諸如主機板上的互連。鏈結與記憶體兩者初始化的訓練,可包括鏈結兩端之間的通訊。在鏈結的情況中,處理器可耦合到其它處理器或輸入/輸出(IO)集線器,並可決定它們可以處理資料的最佳頻率及鏈結寬度。此ECL模組典型上可以是暫時的。在某些實施例中,在從低電力狀態(例如先進架構及電源介面(ACPI)低電力狀態,例如ACPI規格Version 4.0的S3(2009年6月16日))回復的操作中,可重做鏈結初始化而不損及記憶體的內容。
SIC 10可進一步包括用來初始化記憶體的內嵌式記憶體邏輯(embedded memory logic;EML)40。在運轉時間期間,此組件可以是部分暫時的及部分持久的(例如用於處理溫度調節或錯誤處置)。由於不同的組件具有不同的記憶體視圖,因此,記憶體初始化可進一步包括建立定址。例如,CPU具有其自己之實體位址空間的視圖,稱之為系統位址。耦接到系統記憶體(例如動態隨機存取記憶體(DRAM))的記憶體控制器將位址映射到藉由通道、排以及排之偏置所識別的特定記憶體格。任何的記憶體存取都會被路由到處理器節點將其解碼,並轉換成通道編號、排編號、及排內的偏置。因此,端視如何來編程鏈結位址解碼器而有不同的記憶體視圖。可為處理器來編程位址解碼器的子集及記憶體解碼器,以便替處理器致能一定量之被隔離的記憶體。在系統操作期間,此被隔離的記憶體專供處理器使用,且可儲存微碼卸載、二進制轉譯器、授權資訊、可管理性資訊等等。此外,保留邏輯50可用來支援平台獨立邏輯的其它特徵。雖然顯示於圖1的實施例,但須瞭解,本發明的範圍並不限於此方面。
現參閱圖2,圖中顯示按照本發明之實施例之系統的方塊圖。圖2中所顯示的系統100包括硬體及各不同的軟體層。亦須注意,所顯示的硬體實施係以高階來表達,在給定的系統中還會出現更多的組件。此外,雖然所顯示的軟體部分在不同位置為不同的組件,但須瞭解,在不同的實施例中,特定的SIC部分可出現在不同的位置。
關於系統的底層硬體,硬體110可包括各樣不同的組件,包括一或多個處理器、記憶體、輸入/輸出裝置等。不過,為便於說明,圖2的實施例中僅顯示少數幾個組件。特別是,所顯示的是處理器核心115及在核心上執行的對應微碼120。在不同的實施例中,核心115可代表多核心處理器的複數個核心,每一個核心都可包括自己的微碼儲存器。此外,在很多實施中,處理器封裝可進一步包括非核心118,其包括位於處理器核心外部的各種邏輯。在不同的實施例中,非核心118可經由IntelTM 的快速路徑互運(Quick Path Interconnect;QPI)鏈結與核心115、整合記憶體控制器(integrated memory controller;IMC)125、輸入/輸出控制器集線器(input/output controller hub;IOH)128耦接。IMC 125依次可與系統記憶體130耦接,在一實施例中,該記憶體可以是由複數個雙直列記憶體模組(DIMM)構成,諸如雙資料率(DDR)-3 DIMM。如進一步可看到,IOH 128例如經由直接媒體介面(direct media interface;DMI)互連可耦接到周邊控制器集線器(peripheral controller hub;PCH)135,其依次可耦接到其它裝置,諸如可信賴平台模組(trusted platform module;TPM)140、及周邊模組145。然而本發明的範圍並不限於此,各不同裝置可經由低腳位數(low pin count;LPC)匯流排與PCH 135互連。雖然僅顯示這幾個有限的組件,但須瞭解,在不同的實施中,還會出現更多的組件。
SIC模組150與處理器硬體可緊密地耦合。在各實施中,SIC模組可在非揮發性儲存器中實施,諸如快閃記憶體,其可以存在於處理器封裝內。或者,SIC模組可是二進制形式,由處理器製造商提供給OEM,OEM再將其結合到它的BIOS內。因此,須注意,在不同的實施中,SIC的確實位置也各有不同。在一實施例中,SIC可以是OEM BIOS的一部分,例如,整合到固定在主機板上的快閃裝置內。不過,為便於說明,SIC模組150係以分離的碼方塊來顯示。特別是,所顯示的模組包括多個SIC碼修訂1521 -152n 。亦即,如下文中的進一步討論,SIC可在現場更新。除了碼之外,SIC模組內也可存在各式不同的資料區塊1541 -154n 。在一實施例中,矽製造商政策可結合到這類SIC資料區塊中,且這些區塊可以是根據庫存計量單位(stock keeping unit;SKU)。此資訊可包括電壓與溫度的額定值,用來指示零件的等級、支援的特徵、及/或熱-物理矽特性。為存取這些不同的碼與資料區塊,要提供韌體介面表(firmware interface table;FIT)155。須注意,這些碼與資料區塊可藉由金鑰對結構來保護。須注意,在不同的實施例中,SIC 150可以是密碼地結合到硬體,且是由核心微碼120調介開始。
另外的系統軟體可以是OEM BIOS的形式,包括按照UEFI標準的預啟動碼。此碼可儲存在不同的韌體卷中,且可包括安全初始化碼(security initialization code;SEC)、前EFI(pre-EFI;PEI)碼、以及驅動器執行環境(driver execution environment;DXE)與啟動裝置選擇(boot device select;BDS)碼。如圖示說明的邏輯,此碼可被分段到第一碼模組160與第二碼模組170。韌體卷係非揮發性記憶體的邏輯分割,其可包括BIOS及其它的低階軟體。一般來說,模組160與170每一個都可以是具有第三方可擴展碼的韌體卷。第一碼模組160用來施行OEM平台初始化,並從SIC碼得到記憶體孔徑(方塊162)。接著,控制傳遞到碼方塊164以施行實體存在分析及施行安全雜湊運算,在做任何主韌體卷之測量168之前,其依次致能要被施行的安全韌體更新機制166。如果所有這些確認檢查都通過,則控制傳遞給第二碼模組170,其可包括DXE核心,且可執行UEFI安全啟動模組174,例如使用儲存在ACPI記憶體中的測量記錄176。接著執行OS載入器與驅動器185,其依次載入OS 180,其可以是依從UEFI的OS。在其它實施中,可經由一或多個選用的ROM 195實施傳統的OS 190。
如前所描述,按照本發明之實施例的SIC包括內嵌式記憶體邏輯。此邏輯通常封裝一二進制形式的記憶體參考碼(memory reference code;MRC),此為處理器製造商以原始碼之形式提供給OEM的BIOS模組,用來教育OEM如何初始化記憶體等。不過,按照以上的討論,為了提供此碼給OEM而不洩露底層硬體IP,內嵌式記憶體邏輯可以是二進制形式。
由於EML係平台獨立,因此,用來識別及為平台相依問題而提供的各種資訊可藉由EML來存取。例如,存在有系統機板變異性。例如,各平台間的接線有所不同,此導致序列存在偵測(serial presence detect;SPD)/系統管理匯流排(system management bus;SMBUS)映像、信號映像、時序、晶片上終端(On-Die Termination;ODT)電阻等諸如此類有所差異。此外,不同的OEM對於客製化/除錯會有不同的要求,由於OEM沒有對應的原始碼,特別是諸如錯誤記錄/報告將成為問題。如以下進一步的討論,在某些實施例中會提供協助除錯的硬體。各平台間存在的另一變異性是供應商選擇非標準的DIMM或無定的零件,其可能必需重複地工作以理解這些限制。實施例可將EML實施到具有透明介面之組件的層級,以使OEM能夠將平台參數化,並因此致能EML的二進制供給。
通常,EML藉由剖析OEM所供應的平台組態資料來初始化記憶體。須注意,以下關於系統記憶體的討論是以DDR3-型記憶體來實施,但本發明的範圍並不限於此方面。
現請參考圖3,圖中顯示按照本發明之實施例執行EML碼的流程圖。在各實施例中,在系統重置時或從低電力狀態(例如S3狀態)回復時,會發生登入EML。如圖3所示,方法200可由初始化各暫存器(方塊210)而開始。在各實施例中,這些暫存器與匯流排可包括PCI ExpressTM 式的位址暫存器、系統管理匯流排、通用輸入/輸出(I/O)暫存器、及電力管理(power management;PM)暫存器。實施例也可使用I/O表(例如IO表列/要程式之記憶體映射IO(memory mapped IO;MMIO)埠及值)來實施此步驟,其中,在此情況中,IO表可由平台製造商供應,並由EML執行。隨著碼所使用的特定裝置,可能發生各樣的初始化,且是在EML執行之前被初始化。接下來,該方法將決定操作是從系統電力開啟開始,或是從低電力狀態(例如S3)回復(菱形215)。如果是從電力開啟開始,控制前進到方塊220,在此處偵測所附接的系統記憶體。在一實施例中,經由SM匯流排讀取SPD而發生偵測。須注意,DIMM所在的位址為平台相依。例如具有很多DIMM之較大的平台,可能會在SM匯流排上實施多工器以便在不同的段之間切換。
仍參閱圖3,接下來決定記憶體的時脈率(方塊240)。須注意,此項操作也是平台相依,如處理器也許不支援某特定的時脈率。亦即,由於記憶體控制器/平台設計群體及/或使用者設定,時脈率可能被限制住。在設定了時脈率之後,控制前進到方塊250,在此可能發生記憶體控制器的整體初始化。此整體的初始化將IMC重置到預設狀態,諸如設定IMC側的ODT電阻以及每一個信號所允許的最大抖動(參考電壓與取樣電壓間的最大差)。在各實施例中,記憶體控制器可以是整合的記憶體控制器,如前文參考圖2的討論。接著,控制前進到方塊260,在此,記憶體信號被映射到記憶體控制器信號。再次,可能發生平台相依信號選路。例如,記憶體控制器可能有8個晶片選擇(chip select;CS)信號,而DIMM可能至多使用4個此信號(用於四排DIMM)。因此,當發送命令給指定的排時,記憶體控制器被組構來決定它的晶片選擇腳中那些要下拉。例如,DIMM1的CS0可能被連接到IMC的CS2或CS4,視平台的接線而定。此資訊是由平台製造商來供應。
接著,控制前進到方塊270,在此施行靜態組態。靜態組態意指所有的設定都可從SPD推導出,諸如2個DDR命令之間所需要的延遲,相對於“動態設定”係使用訓練來決定。關於平台相依組態的例子,在方塊270決定的ODT電阻可以是平台相依。除了ODT啟動與電阻選擇之外,其它的靜態組態操作還可包括內部邏輯到實體排的映射。此選擇及啟動的細節將在下文進一步討論。在方塊280施行訓練,此又是平台相依,且在某些平台中,某些不訓練的延遲是指定一與預設值不同的值。在施行過訓練之後,在方塊290施行測試。接著,記憶體映射即告完成(方塊295)。須注意,記憶體映射稱為“系統位址”到“通道/排/偏置”的交插。亦即,IMC可支援數個“交插”模式。例如,兩個連續的“系統位址”可映射到兩個不同的通道以提高效能;且兩個具有相同通道的連續位址可進一步交插到兩個不同的排以散射熱。
須注意,如果不是初開電源而是從低電力狀態被喚醒而登入EML,則控制會從菱形215前進到方塊230,其為S3回復路徑,可得到先前儲存在非揮發性儲存器中的組態資訊,如下文中進一步的描述。亦即,在此路徑中,係從非揮發性記憶體原封不動地接收資訊而不測試,因為測試將會損壞記憶體內容。接著,控制直接前進到先前在方塊295產生的記憶體映射表。雖然是以圖3之實施例的此特定實施來顯示,但須瞭解,本發明的範圍並不限於此方面。
現請參閱圖4,圖中顯示按照本發明之實施例之EML各組件的方塊圖。如圖所示,EML300可包括各式邏輯,包括有一般記憶體邏輯310、處理器邏輯325、及平台邏輯330。一般來說,記憶體邏輯310可包括用來初始化及致能記憶體本身的各式碼,包括有排邏輯312、DIMM邏輯314、及通道邏輯315。這些邏輯可包括用於排的信號及MRS邏輯、用於DIMM及DIMM/排群體的SPD及信號邏輯、DDR3時序、ODT組態、及用於通道的訓練與測試序列。此外,該碼可進一步包括用來致能記憶體控制器之初始化、DIMM偵測及整體時序的記憶體控制器邏輯320。依次,處理器邏輯325可實施為驅動器,用來施行命令與狀態暫存器調處、內部時序及命令/訓練。平台邏輯330依次可經由拓撲/接線、時序/延遲、ODT規則及各不同裝置與平台交互作用。須注意,在不同的實施中,圖4中所示由處理器製造商所提供之不同數量的碼可用二進制來實施。例如,一般記憶體邏輯310與處理器驅動器325可用二進制碼來實施。在其它實施例中,處理器邏輯325可用二進制來實施,而其餘的碼則在OEM BIOS內實施。
如前所述,EML為平台獨立。為使此碼能夠以二進制的形式分發,做為平台特有之平台的各態樣(例如平台相依),以資料陳述於EML能夠存取的組態表中。如前文中關於圖3的描述,一部分的記憶體初始化係ODT組態,其包括電阻與啟動。電阻意指DIMM用來終結信號所使用的電阻,而啟動意指當發送讀取/寫入命令給記憶體通道中指定的排時,由記憶體控制器(MC)所控制的ODT信號。ODT組態視DIMM群體及DIMM槽接線兩者而定。在習知的BIOS中,這些組態係以平台相依的功能來計算,亦即要為每一個不同的平台改寫。對照來說,按照各實施例,所有平台關於初始化操作的客製化,可用資料來實施而非使用OEM碼。按此方式,處理器製造商(及EML的提供者)可維護到SIC的安全。
在各實施例中,ODT組態可用一般且緊密的方式來參數化,且有能力列舉例外。特別是,在本文中稱之為“ODT規則”的資料結構可用來為平台產生ODT組態。此資料結構或ODT規則可由平台製造商供應,例如,做為PMD的一部分。在不同的實施中,此ODT規則可以是一般的或特定的。須注意,給定的平台可以一般與特定的規則兩者兼具。EML按照出現的次序尋找匹配的規則,因此,在絕大部分的情況中,特定的規則在一般規則之前。一般的ODT規則可匹配多個群體樣式,且ODT電阻與啟動矩陣可由一般的演算法來計算。特定的ODT規則匹配單一個群體樣式。關於特定的ODT規則,ODT電阻會在規則中指定,而啟動矩陣則可藉由一般的演算法來產生。在兩者任一的情況中,啟動矩陣都可被ODT規則中的附加旗標所置換(override)。
在一實施例中,各種資訊都包含在ODT規則中。對於一般及特定規則兩者,可包括以下的資訊:應用該規則的記憶體通道組,其可當成位元遮罩來實施;排的標稱電阻值Rtt_Nom及排的寫入電阻值Rtt_Wr;以及用來置換啟動矩陣的旗標。按照JEDEC標準,當DRAM的ODT接腳被記憶體控制器斷言時,DRAM裝置啟動ODT。除非目前的命令是寫入命令,否則一直是使用Rtt_Nom,在命令為寫入的情況中,則使用Rtt_Wr來取代。在一實施例中,這些旗標可包括讀取本身開、讀取同級開、寫本身開、以及寫同級開。
至於一般的規則,ODT規則進一步包括:通道中應用該規則的DIMM組,例如位元遮罩或DIMM的最大索引;以及DIMM的標稱電阻值Rtt_Nom與寫入電阻值Rtt_Wr。須注意,在相同的DIMM內,橫過各排的此電阻值可能分開。
至於特定規則,ODT規則進一步包括:匹配特定群體的群體樣式;以及排電阻值為Rtt_Nom與Rtt_Wr。須注意,Rtt_Nom與Rtt_Wr可以是按逐排的方式指定。
為了匹配ODT規則,可為記憶體的每一通道計算群體樣式。一般來說,N個位元可用來描述支援達N個邏輯排的通道。可按如下來施行通道群體樣式之計算,在一實施例中,
因此,此項計算乃提供了能唯一地識別d-排通道之群體樣式的遮罩。
各個單排(SR)、雙排(DR)及4排(QR)記憶體組態之群體及它們編碼的例子如下:
SR-00000001b
DR/DR-00100010b
DR/QR-00101000b
DR/DR/DR/DR-10101010b
所計算出的樣式可用來與ODT規則的表列進行比較。須注意,有可能一個群體匹配多個規則,在此情況中,僅第一個規則為有效。一般來說,在資料結構中,OEM會將特定規則放置在一般規則之前,以確保特定的樣式首先匹配它的特定規則。
在一實施例中,可按以下的規則產生啟動矩陣:
1. ACT[R]←)
3. ACT[R]
4. ACT[W]|(1<<Rank[R].ODT)
其中,ACT[R]為讀取命令的ODT遮罩,且如果不連接到VDD,ACT[W]為寫入命令的ODT遮罩,否則,寫入遮罩與讀取遮罩相同。因此,可有兩個矩陣,其一用於讀取命令,而另一用於寫入命令。矩陣係一藉由邏輯排編號來索引的陣列。矩陣中的每一個登錄係為相同數量之位元的位元遮罩,如通道之IMC具有多少的ODT接腳。如果是讀取的命令,則IMC根據ACT[R][targeted_rank_#]來斷言ODT控制接腳,或者,如果是寫入的命令,則是根據ACT[W][targeted_rank_#]。在大多數的情況中,ACT[W][rank_#]=ACT[R][rank_#]|(1<<rank_#)。因此,如果沒有被ODT規則置換,則演算法會挑選其做為預設的行為。VDD是例外,在此情況中,IMC不會去控制目標排的ODT控制接腳。在計算之後,在將啟動矩陣應用到MC組態前,可以根據匹配之ODT規則中的附加旗標來修訂啟動矩陣。
標稱與寫入終端電阻(termination resistance)可根據以下的假設:無論DIMM上存在有多少排,在正常操作下之DIMM的總終端電阻保持相同;以及,通道內的所有DIMM都可使用相同的電阻。
這些假設在大多數的情況中都適用。在不適用的情況中,可以用特定的規則來置換預設的規則。對於一般的規則,Rtt_Nom在DIMM的層級被指定。亦即,如果存在有一個以上的排,則Rtt_Nom在所有具有連接到MC之ODT控制信號的排之間被分割。須注意,按照DDR3的規格,每個DIMM最多只有兩個ODT信號,且因此會有3個可能的情況:如果沒有為DIMM連接ODT控制信號,則Rtt_Nom被去能;如果僅連接一個ODT,則直接使用Rtt_Nom做為被連接之排的Rtt_Nom;以及如果連接有2個ODT控制信號,則將使用Rtt_Nom*2做為兩個被連接之排的Rtt_Nom值,除非Rtt_Nom*2在DDR3規格中不具有編碼,在此情況,第二個ODT被當成未連接來處理,且第一排將直接使用Rtt_Nom。須注意,對於特定的ODT規則,Rtt_Nom與Rtt_Wr在排的層級被指定,且直接使用。
現請參閱圖5,顯示按照本發明之實施例用於決定終端電阻之方法的流程圖。如圖5中所示,方法400從為指定的群體樣式尋找匹配的ODT規則開始(方塊410)。如前文中的討論,可為指定的通道計算群體樣式,並接著用此樣式與ODT規則的表列進行比較。接著,控制前進到菱形415,在此決定是否已為指定之DIMM上的所有排都施行了第一迴圈。若為否,控制前進到方塊420,在此處,為指定的排將標稱終端電阻(nominal termination resistance)設定到去能的值,並將寫入終端電阻設定成來自ODT規則的寫入終端電阻值。如所見,此迴圈會被通過,直到排中的所有迴圈的設定都被產生。
接著,控制前進到方塊425,在此決定與ODT控制信號連接之排的數量。在菱形430決定控制信號的數量是0、1、或2。如果是0,如前文的討論,標稱終端電阻被去能,且控制前進到下一個DIMM(方塊480)。如果僅有一個控制信號被連接,控制前進到方塊470,在此處,將指定之排的標稱終端電阻設定成得自ODT規則的終端電阻。接著,控制前進到方塊480,如前文中的討論。
如果這兩個控制信號都被連接,則控制前進到菱形435,在此處決定兩倍標稱終端電阻的值是否己編碼在指定的記憶體規格中(例如DDR3規格)。如果否,則控制回到方塊470,且第一排直接使用來自ODT規則的標稱終端電阻。否則,控制前進到方塊440,在此處,第一排的標稱終端電阻被設定成ODT規則之電阻的兩倍。接著,控制前進到菱形445,在此處,除了此第一排以外的所有排都被納入迴圈。在菱形450處決定指定的排是否具有連接到供應電壓(例如VDD)的ODT控制接腳,表示ODT全時為開。如果有,則控制回到菱形445。否則,控制前進到方塊460,在此處,指定之排的標稱終端電阻被設定為ODT規則兩倍的值。雖然圖5之實施例顯示此特定的實施,但本發明的範圍並不限於此方面。使用此方法可計算終端電阻,並接著如前表1中所見,可以從ODT規則中的資訊來計算ODT啟動矩陣,且因此各樣的記憶體組態,包括ODT組態都可被參數化成緊密的形式,使能做到EML的二進制碼分發。
因此,使用本發明的實施例,ODT組態可被參數化成緊密的形式,按照本發明的實施例,能做到EML的二進制碼分發。如此,OEM可提供資訊,使用純資料(ODT規則資料結構)來為記憶體通道施行記憶體初始化。
如前文中的討論,大部分的平台初始化都可使用SIC二進制碼完成,以使OEM無法對原始碼做任何存取。不過,第三方仍需要此碼的內部狀態以便做某些延伸,因為,當SIC失敗時,OEM可能希望檢查內部狀態,特別是當開發新平台時。此外,有時第三方也希望在某個階段(例如單步驟)停止SIC的執行,以允許診斷硬體,諸如藉由附加示波器來捕捉在線路上傳送的波形。此外,在某些電力狀態轉態中,諸如從S3恢復,某些初始化可被跳過,且晶片可使用進入S3之前所儲存的資訊來重組態。
實施例可提供一統一的方式來揭露SIC的內部狀態以符合上述第三方的操作。為此目的,SIC可被分段或定義到頂層階段內,在每一個頂層階段中有一或多個子階段。階段定義可用來識別何者為執行中之SIC組件正在進行的事。可提供一或多個階段暫存器,當讀取時,用來報告SIC的目前階段,以及當寫入時,在指定的階段編號停止SIC的執行。於是,在每一個階段內,SCI執行的每一個內部參數都能被分派一個獨有的索引。可使用一命令介面(諸如CSR對)來讀/寫被索引化的參數。須注意,在未來的矽晶片/硬體中可加入參數或從其移除,但如果參數仍保留在另一修訂中,則它的索引不會改變。
在本發明的一實施例中,EML之儲存定義的例子如下:1)DIMM偵測;2)靜態組態;3)訓練;以及4)測試。須注意,這些階段一般是按圖3之方法所說明的順序。亦須注意,一或多個階段可另包括一或多個子階段。例如,基於ODT組態之目的,可有一子階段2A。接著,可將關於此子階段的資訊寫入階段暫存器並取一快照。該快照可包含所有通道的ODT啟動矩陣,以及每一DIMM之每一排的電阻值。須注意,雖然此資訊是EML執行的內部資料,但它並未揭露底層MC硬體的任何實施細節,原因是這些參數是由DDR3的規格所定義。
在一實施例中,CSR內的特殊指令或某些控制位元可用來指示SIC取得其在某階段/子階段之內部狀態的快照並加以儲存。例如,儲存器可設在處理器的內部記憶體內,諸如快取記憶體做為RAM(cache-as-RAM;CAR)的位置。當除錯硬體問題或實施電力狀態轉態(諸如進入S3或從S3回復)時,所儲存的資訊就很有用處。須注意,在處理電源狀態轉態時要特別留意,因為啟動轉態的程式可能具有惡意,並故意地嘗試竄改所儲存的狀態,以便存取受保護的記憶體區域,諸如系統管理的RAM(system management RAM;SMRAM)或其它受保護的記憶體。不過,在一實施例中,金鑰式雜湊(keyed hash)足以擊敗這類攻擊。
現請參考圖6,圖中顯示按照本發明之實施例之處理器的方塊圖。如圖6所示,處理器500可以是多核心處理器,不過,為便於說明,僅顯示單核心505的組件。如所見,給定的核心包括執行邏輯510,在各實施例中,其包括用來施行前端單元所提供之操作的一或多個執行單元。在執行後,各個後端單元可接收執行的結果,並按順序退位。為對資料施行操作,執行邏輯510與暫存器檔案520通信,其在各實施例中可包括多個暫存器,包括純量及向量暫存器。
此外,按照本發明的實施例,可提供一或多個階段暫存器560,如在圖6之實施例所見,可存在有複數個階段暫存器5651 -565N 。每一個階段暫存器可與SIC之指定的階段相關。在某些實施例中,各自獨立之SIC邏輯(例如ECL與EML)的每一個別的組件可識別為頂層階段,每一個頂層階段可包括子階段。如所見,每一個階段暫存器565除了儲存給定的頂層階段之外,還可包括一或多個子階段。不過,在其它實施例中僅提供單個階段暫存器,其可被讀取以識別目前的執行階段,或被寫入以在指定的階段停止執行。
如進一步所見,在處理器內還可存在其它組件,包括電力管理單元(power management unit;PMU)550,其在各實施例中可控制進入或離開低電力狀態(諸如S3狀態)。在圖6的實施例中,處理器可進一步包括整合的記憶體控制器530,其與系統記憶體通信(圖6中未顯示)。如前文中的討論,此記憶體控制器的組態可使用EML來施行。此外,還可提供一或多個快取記憶體。在所顯示的實施例中,快取記憶體540可用做為暫時資料儲存器。在某些實施例中,此快取記憶體可包括儲存快照資料的位置。如所見,可存在有儲存快照資料的登錄545,此登錄可用包括索引與參數資料的形式來儲存。須注意,該等參數可包括IMC的組態資料,或由IMC所報告的狀態碼。它們在硬體的內部,且索引/資料CSR對在此做為供軟體存取那些參數的介面。快照係這些索引/資料對的傾印(dump),且可以不必耗盡,因為在電力狀態轉態中,狀態暫存器不需要恢復IMC狀態。在某些實施例中,SIC/EML可提供另一索引/資料暫存器對來協助軟體翻譯記憶體或處理器內部儲存器中的IMC快照(snapshot)。雖然圖6的實施例中顯示此特定的實施,但本發明的範圍並不限於此方面。
可以使用快照從低電力模式(例如S3)恢復可為使用快照的使用模型。不過,取得此快照的動作無法由軟體啟動,因為SIC是在平台BIOS之前執行。可用自動取得此快照來取代由軟體啟動,並由SIC儲存到記憶體內(例如在EML完成訓練與測試之後),以使得CAR可在開始BIOS之前被終止。在一實施例中,儲存快照的位址可預先定義,諸如通道0之排0的位址0。稍後,例如經由OEM碼,可將快照移動到非揮發性儲存器,並在FIT中寫入一指標符,以使EML可於事後找到此快照,諸如在S3回復的開始之時。在S3回復期間,SIC可接著使用儲存在FIT中的位址讀取非揮發性儲存器中的快照(諸如圖3中所示方法)。因此,在從低電力狀態(例如S3)回復期間即可存取此狀態,以避免計算各記憶體組態參數,本質上此為耗時的計算。基於安全考慮,此位址可為固定(例如,FIT可以被簽章保護),且BIOS可將快照儲存在平台之非揮發性儲存器內相同的位址。
現請參閱圖7,圖中顯示用來產生並接著使用快照之方法的流程圖,例如低電力狀態回復期間使用的快照。如圖7所示,方法600可從初始化記憶體開始(方塊610)。此記憶體在系統的最初開機時使用EML初始化。在此實施例中,SIC(更明確說是EML)可包括用來取得記憶體組態之快照的碼(方塊620)。此快照例如是前文中所討論的各種組態資訊,且一開始可能被儲存在處理器快取記憶體的CAR部分內。在SIC結束且控制行進到OEM BIOS之後,接著,BIOS將此快照儲存到非揮發性儲存器內(方塊630)。例如,快照可儲存在OEM快閃記憶體內。
現仍參閱圖7,假設在系統操作期間,低電力狀態被啟動。因此,包括處理器及系統記憶體的各系統組件都可能被置於低電力狀態。在從此低電力狀態回復時,例如按照SIC,例如藉由從儲存在FIT內的指標符存取快照的位置,而從非揮發性儲存器讀取快照(方塊640)。接著,使用快照可使記憶體控制器的組態恢復(方塊650)。此時,控制可傳遞給OEM碼(例如BIOS)或OS,例如經由識別S3的回復向量(方塊650)。雖然圖7的實施例顯示此特定的實施,但須瞭解,本發明的範圍並不限於此方面。
此快照除了用於從S3回復之外,實施例也可再用快照來加速EML的執行。亦即,如前文中的討論,記憶體訓練是耗時的處理,特別是由於記憶體技術使頻率增加,為了能正確地與記憶體模組通信,記憶體控制器使用更準確的時脈參數。不過,那些參數通常並非硬編碼(hard-coded),且代之以在運轉時間中決定。因此,記憶體訓練包括在某範圍內為指定的參數尋找適當的值。隨著頻率增加,需要更多的訓練,且因此需要較長的EML來完成。同樣地,S3回復牽涉將平台的狀態復原到它進入S3之前的狀態。假設如果沒有記憶體DIMM加入或從平台取走,就不需要訓練,且經由簡單地復原在S3操作中之正常的啟動期間所儲存的參數,MC的狀態就可回復功能性。
如前所述,為了支援S3,MC狀態的快照可儲存在平台的快閃記憶體中,以便在S3回復操作期間,EML可將其載入。不過,如果使用者沒有啟動S3,而是直接將平台關機,則快照會被抛棄,在正常啟動中,所有參數將會擦除開始決定。亦即,如果快照無效,或如果使用者要求完整的啟動,快照將被拋棄。例如,使用者可能在BIOS將快照成功地移動到非揮發性儲存器之前關閉平台,此會導致無效的快照。
使用本發明的實施例,EML會首先嘗試使用S3快照。由於DIMM可能會被加入/移走/替換,可施行記憶體測試以驗證該等參數。測試失敗代表DIMM群體已被改變,且因此EML可從擦除開始施行低效操作以訓練所有的排。須注意,此記憶體測試與訓練係以逐排的方式來施行。藉由僅訓練失敗的排,所耗用的時間仍會比訓練所有排來得短很多。不過,此增量訓練可能並非全時適用,特別是當邏輯-對-實體排映射改變時。在某些實施例中,平台使用者可能使用組態旗標來強迫以完整訓練來取代增量訓練。
在某些實施中,所儲存之從S3關機的硬體狀態可儲存到非揮發性儲存器內,並供系統下次正常啟動時再次使用。按此方式可實現較快速的啟動。此外,要執行某些測試以驗證這些安全設定。接著,為經此測試失敗之任何記憶體排施行增量訓練,以縮短訓練持續的時間。因此,在系統之再啟動間,如果記憶體群體只有少許或沒有改變,增量訓練可實現較快速的啟動時間。
在一實施例中,時序參數可按每-實體-排的方式儲存。每一個邏輯排都具有用來指示其存在於前次啟動中的“有效”位元,以及用來指示其存在於目前啟動中的“存在”位元。在載入了已儲存的組態之後,SPD可被讀取以偵測群體的改變,且存在旗標相應地更新。在邏輯-對-實體排映射改變的情況中,時序參數可按照新的群體樣式被轉移。例如,如果同一DIMM上有兩排被用來映射到不同的實體排,但現在被映射到相同的排,於是,可使用原始時序設定的平均做為兩邏輯排的新設定。
現請參閱圖8,圖中顯示按照本發明之實施例,對記憶體初始化施行增量訓練之方法的流程圖。如圖8所示,在EML執行的過程期間,當初始化先前已被啟動過之系統中的記憶體,且記憶體組態資訊或快照己於先前儲存在非揮發性儲存器中時,可施行的方法700。如圖8所示,方法700經由從非揮發性儲存器(例如OEM快閃記憶體)載入所儲存的狀態開始(方塊710)。此組態資訊可包括為先前啟動時所存在之每一排設定的有效旗標。接著,偵測目前的記憶體群體(population)(方塊720)。按此方法即可識別出加入/移走的DIMM。對於目前群體中任何非群體(unpopulated)的排,可根據該偵測清除存在旗標。
接著,控制前進到菱形730,在此處,為所有記憶體排施行迴圈。特別是,在菱形740決定是否為此排設定了有效旗標。亦即,檢查來自所儲存之狀態的有效旗標,以決定其是否被設定,該有效旗標用來指示該給定的排存在於先前的啟動中。如果是,則可跳過發生於方塊750的排訓練,且控制直接前進到方塊760以進行該排的測試。如果測試通過(如在菱形770的決定),控制即前進到方塊775,在此決定此是否為最後未決定的排。如果否,則迴圈從菱形740開始繼續執行。須注意,如果在菱形770處的決定為測試失敗,則控制前進到方塊780,在此清除該排的有效旗標。
仍請參閱圖8,當所有的排都通過從菱形740開始的迴圈,則控制可前進到菱形790,在此決定是否有任何排的有效旗標被清除,意指在最後的啟動中該排不存在。如果是,則控制回到從菱形730開始的方塊。否則,圖8的方法結束。
實施例可用碼來實施,且碼可能是儲存在其上已儲存有可用來程式系統以實施該等指令之指令的媒體上。儲存媒體可包括但不限於任何類型的碟片,包括軟性磁碟片、光碟、固態硬碟(SSD)、唯讀型光碟(CD-ROM)、可覆寫光碟(CD-RW)、及磁光碟,半導體裝置諸如唯讀記憶體(ROM)、隨機存取記憶體(RAM),諸如動態隨機存取記憶體(DRAM)、靜態隨機存取記憶體(SRAM)、可抹除可程式唯讀記憶體(EPROM)、快閃記憶體、電氣可抹除可程式唯讀記憶體(EEPROM)、磁或光學卡、或適合儲存電子指令的任何其它類型的媒體。
雖然已關於有限數量的實施例描述了本發明,但熟悉此方面技術的人士可明暸,從其可有諸多的修改與衍生。所附的專利申請範圍意欲涵蓋所有這些修改及衍生,都落於本發明的真正精神與範圍之中。
10...半導體整合碼
20...括初始程式載入器
30...內嵌式中央處理單元邏輯
40...內嵌式記憶體邏輯
50...保留邏輯
100...系統
110...硬體
115...處理器核心
120...微碼
118...非核心
125...積體的記憶體控制器
128...輸入/輸出控制器集線器
130...系統記憶體
135...周邊控制器集線器
140...可信賴平台模組
145...周邊模組
150...SIC模組
152...SIC碼修訂
154...資料區塊
160...第一碼模組
170...第二碼模組
155...韌體介面表
164...實體存在分析及施行安全湊雜運算
166...安全韌體更新機制
168...主韌體卷之測量
174...UEFI安啟動模組
176...ACPI記憶體中的測量記錄
185...作業系統載入器與驅動器
180...作業系統
195...唯讀記憶體
190...傳統的作業系統
300...內嵌式記憶體邏輯
310...一般記憶體邏輯
325...處理器邏輯
330...平台邏輯
312...排邏輯
314...DIMM邏輯
315...通道邏輯
320...記憶體控制器邏輯
325...處理器邏輯
500...處理器
505...單核心
510...執行邏輯
520...暫存器檔案
560...階段暫存器
565...階段暫存器
550...電源管理單元
530...記憶體控制器
540...快取記憶體
545...登錄
圖1係按照本發明之一實施例,平台獨立半導體整合碼(SIC)之組件的方塊圖。
圖2係按照本發明之實施例之系統的方塊圖。
圖3係按照本發明之實施例之內嵌式記憶體邏輯(EML)碼之執行的流程圖。
圖4係按照本發明之實施例之EML之各組件的方塊圖。
圖5係按照本發明之一實施例,用來決定終端電阻之方法的流程圖。
圖6係按照本發明之一實施例之處理器的方塊圖。
圖7係按照本發明之一實施例,用來產生及使用快照之方法的流程圖。
圖8係按照本發明之實施例,用來在記憶體初始化時施行增量訓練之方法的流程圖。
115...處理器核心
118...非核心
120...微碼
125...積體的記憶體控制器
128...輸入/輸出控制器集線器
130...系統記憶體
135...周邊控制器集線器
140...可信賴平台模組
145...周邊模組
152...SIC碼修訂
154...資料區塊
155...韌體介面表
160...第一碼模組
170...第二碼模組
162...方塊
164...實體存在分析及施行安全湊雜運算
166...安全韌體更新機制
168...主韌體卷之測量
174...UEFI安啟動模組
176...ACPI記憶體中的測量記錄
180...作業系統
185...作業系統載入器與驅動器
190...傳統的作業系統
195...唯讀記憶體

Claims (21)

  1. 一種提供平台獨立記憶體邏輯之裝置,包含:非揮發性儲存器,用於儲存對應於處理器製造商之平台獨立碼的半導體整合碼(semiconductor integrated code;SIC),該SIC包括內嵌式記憶體邏輯(embedded rnemory logic;EML),用來經由記憶體控制器的初始化來初始化記憶體,以及使用經由該EML可存取之晶片上終端電阻(On-Die Termination,ODT)資料結構之記憶體信號的映像,該ODT資料結構係由生產代工廠商(OEM)所提供且對應於一ODT規則,該ODT規則為該記憶體之平台相依記憶體組態所用的一般參數化的規則組,其中,回應處理器的重置並在提供對OEM之預啟動碼(pre-boot code)的控制之前,該SIC被執行。
  2. 如申請專利範圍第1項的裝置,另包含用來載入該SIC的初始程式載入器(initial program loader;IPL),該IPL係從該處理器的微碼(microcode)開始,其中該IPL係用來鑑別該SIC,並接著開始該SIC。
  3. 如申請專利範圍第1項的裝置,其中,該EML係被用來使用該ODT資料結構為該記憶體計算ODT電阻。
  4. 如申請專利範圍第3項的裝置,其中,該EML係被用來使用該ODT資料結構為該記憶體計算啟動矩陣。
  5. 如申請專利範圍第4項的裝置,其中,該EML係被用來根據該ODT資料結構中的群體資訊為該記憶體的通道計算群體樣式。
  6. 如申請專利範圍第5項的裝置,其中,該EML係被用來對照ODT規則表來比較該群體樣式。
  7. 如申請專利範圍第6項的裝置,其中,該EML係被用來使用該ODT規則表中的資訊以計算標稱終端電阻與寫入終端電阻。
  8. 一種提供平台獨立記憶體邏輯之方法,包含:在系統第一次開啟電源期間,使用由處理器製造商所提供的內嵌式記憶體碼(embedded memory code;EMC)來初始化耦接於系統之處理器的記憶體,以初始化該記憶體及記憶體控制器,並使用經由EMC可存取的晶片上終端電阻(ODT)資料結構為該記憶體產生記憶體組態,該ODT資料結構係由該系統的生產代工廠商(OEM)所提供且對應於一ODT規則,該ODT規則為用於平台相依資訊的一般參數化的規則組;將記憶體組態的快照(snapshot)儲存到該處理器的至少一個階段暫存器中;以及在將控制傳送給OEM基本輸入輸出系統(BIOS)之前,先將該快照儲存到該系統的非揮發性儲存器中。
  9. 如申請專利範圍第8項的方法,另包含在離開該處理器的低電力模式時,存取儲存在該非揮發性儲存器中的該快照。
  10. 如申請專利範圍第9項的方法,另包含使用該快照來復原該記憶體控制器的組態,且之後提供一回復向量識別符,以將控制傳送給該OEM BIOS。
  11. 如申請專利範圍第8項的方法,另包含在該系統的第二次開啟電源期間,使用該EMC存取儲存在該非揮發性儲存器中的快照。
  12. 如申請專利範圍第11項的方法,另包含偵測該記憶體之目前的記憶體群體,並與所儲存之該快照的記憶體組態比較,並回應該比較而進行增量訓練。
  13. 如申請專利範圍第12項的方法,其中,該增量訓練包含決定是否為該記憶體的排設定了有效旗標,如果是,即略過該排的排訓練,否則進行該排訓練。
  14. 一種提供平台獨立記憶體邏輯之系統,包含:處理器,包括複數個核心及非揮發性記憶體,該非揮發性記憶體包括對應於該處理器之製造商之平台獨立碼的半導體整合碼(SIC),該SIC包括內嵌式處理器邏輯,用來初始化該處理器及將該處理器耦接到系統記憶體之至少一個鏈結,以及內嵌式記憶體邏輯(EML),其使用經由該EML可存取的晶片上終端電阻(ODT)資料結構來初始化該系統記憶體,該ODT資料結構係由生產代工廠商(OEM)所提供且對應於一ODT規則,該ODT規則為該系統記憶體之平台相依記憶體組態所用的一般參數化的規則組,其中,該SIC係被劃分成複數個第一層階段,在每一個第一層階段之下,都至少有一個第二層階段,且在每一個第一層階段內,都有一個指定給每一個內部參數的獨有索引,該處理器另包括至少一個階段暫存器,用於在該SIC的執行期間儲存目前的第一層階段; 快閃記憶體,用以儲存該OEM的韌體;以及該系統記憶體,耦接至該處理器。
  15. 如申請專利範圍第14項的系統,其中,該處理器被用來從該至少一個階段暫存器讀取該目前的第一層階段,並將該目前的第一層階段儲存到儲存器單元中。
  16. 如申請專利範圍第14項的系統,其中,當預先決定的第一層階段被寫入到該至少一個階段暫存器時,該處理器被用來停止該SIC在該預先決定的第一層階段的執行。
  17. 如申請專利範圍第16項的系統,其中,該處理器被用來儲存該SIC在該預先決定的第一層階段之執行之內部狀態的快照。
  18. 如申請專利範圍第17項的系統,其中,該OEM係使用該快照來對該系統除錯。
  19. 如申請專利範圍第18項的系統,其中,該快照係被儲存在非揮發性儲存器中,且在從低電力狀態恢復時,該快照被該SIC存取。
  20. 如申請專利範圍第19項的系統,其中,該SIC被用來存取一韌體介面表(firmware interface table;FIT),以決定該快照的位置。
  21. 如申請專利範圍第19項的系統,其中,該SIC被用來使用該快照來初始化該處理器的該系統記憶體及記憶體控制器,且無該鏈結的訓練。
TW100124965A 2010-07-22 2011-07-14 提供平台獨立記憶體邏輯之裝置、方法及系統 TWI482084B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/841,811 US8312258B2 (en) 2010-07-22 2010-07-22 Providing platform independent memory logic

Publications (2)

Publication Number Publication Date
TW201224918A TW201224918A (en) 2012-06-16
TWI482084B true TWI482084B (zh) 2015-04-21

Family

ID=45494512

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100124965A TWI482084B (zh) 2010-07-22 2011-07-14 提供平台獨立記憶體邏輯之裝置、方法及系統

Country Status (8)

Country Link
US (1) US8312258B2 (zh)
EP (1) EP2596423B1 (zh)
JP (1) JP5540155B2 (zh)
KR (1) KR101407835B1 (zh)
CN (1) CN103119554B (zh)
AU (1) AU2011279939B2 (zh)
TW (1) TWI482084B (zh)
WO (1) WO2012012218A2 (zh)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007143278A2 (en) 2006-04-12 2007-12-13 Soft Machines, Inc. Apparatus and method for processing an instruction matrix specifying parallel and dependent operations
CN101627365B (zh) 2006-11-14 2017-03-29 索夫特机械公司 多线程架构
WO2012037491A2 (en) 2010-09-17 2012-03-22 Soft Machines, Inc. Single cycle multi-branch prediction including shadow cache for early far branch prediction
WO2012135050A2 (en) 2011-03-25 2012-10-04 Soft Machines, Inc. Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines
KR101638225B1 (ko) 2011-03-25 2016-07-08 소프트 머신즈, 인크. 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 명령어 시퀀스 코드 블록의 실행
WO2012135041A2 (en) 2011-03-25 2012-10-04 Soft Machines, Inc. Register file segments for supporting code block execution by using virtual cores instantiated by partitionable engines
US9170878B2 (en) * 2011-04-11 2015-10-27 Inphi Corporation Memory buffer with data scrambling and error correction
KR101639854B1 (ko) 2011-05-20 2016-07-14 소프트 머신즈, 인크. 복수의 엔진에 의해 명령어 시퀀스들의 실행을 지원하기 위한 상호접속 구조
US9940134B2 (en) 2011-05-20 2018-04-10 Intel Corporation Decentralized allocation of resources and interconnect structures to support the execution of instruction sequences by a plurality of engines
US8996747B2 (en) * 2011-09-29 2015-03-31 Cypress Semiconductor Corporation Methods and physical computer-readable storage media for initiating re-enumeration of USB 3.0 compatible devices
US8843664B2 (en) 2011-09-29 2014-09-23 Cypress Semiconductor Corporation Re-enumeration of USB 3.0 compatible devices
CN108427574B (zh) 2011-11-22 2022-06-07 英特尔公司 微处理器加速的代码优化器
US10191746B2 (en) 2011-11-22 2019-01-29 Intel Corporation Accelerated code optimizer for a multiengine microprocessor
US20140089573A1 (en) * 2012-09-24 2014-03-27 Palsamy Sakthikumar Method for accessing memory devices prior to bus training
US9720703B2 (en) * 2012-11-26 2017-08-01 International Business Machines Corporation Data driven hardware chips initialization via hardware procedure framework
WO2014151043A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for emulating a guest centralized flag architecture by using a native distributed flag architecture
US9632825B2 (en) 2013-03-15 2017-04-25 Intel Corporation Method and apparatus for efficient scheduling for asymmetrical execution units
US9811342B2 (en) 2013-03-15 2017-11-07 Intel Corporation Method for performing dual dispatch of blocks and half blocks
CN105210040B (zh) 2013-03-15 2019-04-02 英特尔公司 用于执行分组成块的多线程指令的方法
US9891924B2 (en) 2013-03-15 2018-02-13 Intel Corporation Method for implementing a reduced size register view data structure in a microprocessor
WO2014150971A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for dependency broadcasting through a block organized source view data structure
US9886279B2 (en) 2013-03-15 2018-02-06 Intel Corporation Method for populating and instruction view data structure by using register template snapshots
WO2014150806A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for populating register view data structure by using register template snapshots
US9569216B2 (en) 2013-03-15 2017-02-14 Soft Machines, Inc. Method for populating a source view data structure by using register template snapshots
US9904625B2 (en) 2013-03-15 2018-02-27 Intel Corporation Methods, systems and apparatus for predicting the way of a set associative cache
US10140138B2 (en) 2013-03-15 2018-11-27 Intel Corporation Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation
WO2014150991A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for implementing a reduced size register view data structure in a microprocessor
US10275255B2 (en) 2013-03-15 2019-04-30 Intel Corporation Method for dependency broadcasting through a source organized source view data structure
US9304779B2 (en) 2013-06-04 2016-04-05 Avago Technologies General Ip (Singapore) Pte. Ltd. Optimizing boot time of a storage system
US9189631B2 (en) 2013-06-07 2015-11-17 Dell Inc. Firmware authentication
CN104239026B (zh) * 2013-06-21 2019-12-27 伊姆西公司 用于度量存储系统性能的方法和装置
WO2015048922A1 (en) * 2013-10-02 2015-04-09 Intel Corporation Trusted boot and runtime operation
CN104572166A (zh) * 2014-03-21 2015-04-29 中电科技(北京)有限公司 一种基于飞腾台式计算机的uefi固件实现方法
US9864861B2 (en) 2014-03-27 2018-01-09 Intel Corporation Object oriented marshaling scheme for calls to a secure region
US9594927B2 (en) 2014-09-10 2017-03-14 Intel Corporation Providing a trusted execution environment using a processor
US10372760B2 (en) * 2014-09-26 2019-08-06 Oracle International Corporation Building queries directed to objects hosted on clouds
CN105701019A (zh) * 2014-11-25 2016-06-22 阿里巴巴集团控股有限公司 一种内存管理方法以及装置
US10877530B2 (en) * 2014-12-23 2020-12-29 Intel Corporation Apparatus and method to provide a thermal parameter report for a multi-chip package
US10720195B2 (en) * 2015-09-25 2020-07-21 Intel Corporation Efficient memory activation at runtime
US10725677B2 (en) * 2016-02-19 2020-07-28 Sandisk Technologies Llc Systems and methods for efficient power state transitions
US10114952B2 (en) * 2016-03-30 2018-10-30 Mcafee, Llc System, apparatus and method for performing secure memory training and management in a trusted environment
EP3274896B1 (en) 2016-04-22 2019-08-21 Hewlett-Packard Enterprise Development LP Configuration of a memory controller for copy-on-write with a resource controller
TWI615705B (zh) * 2016-05-31 2018-02-21 瑞昱半導體股份有限公司 於電腦系統中重置記憶體的方法
US10262751B2 (en) * 2016-09-29 2019-04-16 Intel Corporation Multi-dimensional optimization of electrical parameters for memory training
US10546156B2 (en) * 2017-01-19 2020-01-28 Intel Corporation MRC training in FPGA-in-memory-controller
US10467028B2 (en) * 2017-03-21 2019-11-05 Intel Corporation Technologies for memory margin aware reliable software execution
KR102407439B1 (ko) 2017-12-05 2022-06-10 삼성전자주식회사 메모리 장치의 구동 강도, odt 트레이닝 방법, 이를 수행하는 컴퓨팅 시스템 및 시스템 온 칩
US10725912B2 (en) * 2018-12-19 2020-07-28 Micron Technology, Inc. Power loss protection in memory sub-systems
US11151256B2 (en) * 2019-05-13 2021-10-19 Dell Products, L.P. Detecting security threats by monitoring chains of configuration changes made to basic input/output system (BIOS) or unified extensible firmware interface (UEFI) attributes
CN111475207B (zh) * 2020-03-08 2022-05-13 苏州浪潮智能科技有限公司 Tpm与tcm通用服务器芯片初始化方法、系统、bios及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1799024A (zh) * 2003-05-12 2006-07-05 国际商业机器公司 处理消息摘要指令
US20080072027A1 (en) * 2006-09-19 2008-03-20 Zimmer Vincent J Methods and apparatus to self-initialize a processor
TW200825734A (en) * 2005-12-07 2008-06-16 Intel Corp Polarity driven dynamic on-die termination

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6996706B1 (en) * 2000-02-19 2006-02-07 Powerquest Corporation Booting an operating system or running other pre-boot code from a file stored under a different operating system
US7103529B2 (en) 2001-09-27 2006-09-05 Intel Corporation Method for providing system integrity and legacy environment emulation
US8805981B2 (en) * 2003-03-25 2014-08-12 Advanced Micro Devices, Inc. Computing system fabric and routing configuration and description
US20050027940A1 (en) * 2003-08-01 2005-02-03 Zimmer Vincent J. Methods and apparatus for migrating a temporary memory location to a main memory location
US7162626B2 (en) 2003-09-25 2007-01-09 Intel Corporation Use of common language infrastructure for sharing drivers and executable content across execution environments
US20060179308A1 (en) * 2005-02-07 2006-08-10 Andrew Morgan System and method for providing a secure boot architecture
US7493460B2 (en) * 2005-09-07 2009-02-17 Intel Corporation Preboot memory of a computer system
US20070088939A1 (en) 2005-10-17 2007-04-19 Dan Baumberger Automatic and dynamic loading of instruction set architecture extensions
GB0521465D0 (en) 2005-10-21 2005-11-30 Law Gregory E W System and method for debugging of computer programs
US7342411B2 (en) 2005-12-07 2008-03-11 Intel Corporation Dynamic on-die termination launch latency reduction
US8521969B2 (en) 2006-10-11 2013-08-27 Intel Corporation Apparatus and method for directing micro architectural memory region accesses
US7689817B2 (en) 2006-11-16 2010-03-30 Intel Corporation Methods and apparatus for defeating malware
US7827371B2 (en) 2007-08-30 2010-11-02 Intel Corporation Method for isolating third party pre-boot firmware from trusted pre-boot firmware
US8068614B2 (en) * 2007-09-28 2011-11-29 Intel Corporation Methods and apparatus for batch bound authentication
JP4675984B2 (ja) 2008-02-29 2011-04-27 株式会社東芝 メモリシステム
US20090249364A1 (en) 2008-03-28 2009-10-01 Intel Corporation Determining component accessibility using component descriptors
US8201239B2 (en) 2008-06-23 2012-06-12 Intel Corporation Extensible pre-boot authentication
US8522066B2 (en) * 2010-06-25 2013-08-27 Intel Corporation Providing silicon integrated code for a system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1799024A (zh) * 2003-05-12 2006-07-05 国际商业机器公司 处理消息摘要指令
TW200825734A (en) * 2005-12-07 2008-06-16 Intel Corp Polarity driven dynamic on-die termination
US20080072027A1 (en) * 2006-09-19 2008-03-20 Zimmer Vincent J Methods and apparatus to self-initialize a processor

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
INTEL(2003)," Intel® Platform Innovation Framework for EFI Pre-EFI Initialization Core Interface Specification (PEI CIS)" *

Also Published As

Publication number Publication date
AU2011279939B2 (en) 2015-05-28
AU2011279939A1 (en) 2013-06-06
KR20130070627A (ko) 2013-06-27
JP2013532864A (ja) 2013-08-19
EP2596423A4 (en) 2015-04-01
US8312258B2 (en) 2012-11-13
CN103119554A (zh) 2013-05-22
TW201224918A (en) 2012-06-16
US20120023318A1 (en) 2012-01-26
EP2596423B1 (en) 2017-03-22
JP5540155B2 (ja) 2014-07-02
WO2012012218A3 (en) 2012-04-12
KR101407835B1 (ko) 2014-06-16
EP2596423A2 (en) 2013-05-29
WO2012012218A2 (en) 2012-01-26
CN103119554B (zh) 2016-03-23

Similar Documents

Publication Publication Date Title
TWI482084B (zh) 提供平台獨立記憶體邏輯之裝置、方法及系統
US8341337B1 (en) Data storage device booting from system data loaded by host
US9037812B2 (en) Method, apparatus and system for memory validation
US8812828B2 (en) Methods and apparatuses for recovering usage of trusted platform module
US7945815B2 (en) System and method for managing memory errors in an information handling system
US9098300B2 (en) Providing silicon integrated code for a system
US8296528B2 (en) Methods and systems for microcode patching
US20100169750A1 (en) Firmware verification using system memory error check logic
US11379330B2 (en) Information handling systems and related methods for testing memory during boot and during operating system (OS) runtime
EP2883187A1 (en) Secure data protection with improved read-only memory locking during system pre-boot
CN113366576A (zh) 用于存储器系统上的功率损耗操作的保持自测试
US10698696B2 (en) Chipset fuse programming system
JP7332083B2 (ja) マルチモード保護メモリ
US10777296B2 (en) Information handling system and method to dynamically detect and recover from thermally induced memory failures
US11307785B2 (en) System and method for determining available post-package repair resources
US7533293B2 (en) Systems and methods for CPU repair
US20240104251A1 (en) Systems and methods for multi-modal firmware updates
US11798601B2 (en) Read only memory (ROM)-emulated memory (REM) profile mode of memory device
US20240135001A1 (en) Systems and methods for vulnerability proofing machine learning recommendations
CN117632280A (zh) 安全启动过程

Legal Events

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