TWI774188B - 同時程式化多個記憶體裝置之方法與系統 - Google Patents

同時程式化多個記憶體裝置之方法與系統 Download PDF

Info

Publication number
TWI774188B
TWI774188B TW110101366A TW110101366A TWI774188B TW I774188 B TWI774188 B TW I774188B TW 110101366 A TW110101366 A TW 110101366A TW 110101366 A TW110101366 A TW 110101366A TW I774188 B TWI774188 B TW I774188B
Authority
TW
Taiwan
Prior art keywords
controller
memory devices
coupled
input
bus
Prior art date
Application number
TW110101366A
Other languages
English (en)
Other versions
TW202213087A (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 TW202213087A publication Critical patent/TW202213087A/zh
Application granted granted Critical
Publication of TWI774188B publication Critical patent/TWI774188B/zh

Links

Images

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
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Abstract

本揭露係關於同時程式化運算裝置中多個快閃記憶體裝置之系統與方法。該運算裝置包含交換單元,該交換單元包含一個輸入與多個輸出。該交換單元連接該輸入至該等輸出之一個或多個。其中,每一快閃記憶體裝置皆與該交換單元之一輸出耦接。控制匯流排與該交換裝置耦接。該控制匯流排傳遞控制訊號,以選擇該等輸出之一個或多個連接至該輸入。程式化介面匯流排與該交換單元之輸入耦接。控制器與該控制匯流排及該程式化介面匯流排耦接。該控制器選擇該等記憶體裝置,以經由該程式化介面匯流排提供程式予該等記憶體裝置。

Description

同時程式化多個記憶體裝置之方法與系統
總體而言,本揭露係關於將映像寫入運算裝置中之多個快閃記憶體。本揭露某些面向乃特別關於一個系統,該系統可有效率地更新儲存於多個快閃記憶體裝置中之資料。
伺服器 (server) 於高需求之應用中被大量採用,例如基於網路之系統 (network based system) 或資料中心 (data center)。用於計算應用之雲端 (cloud) 的出現,增加了對資料中心之需求。資料中心具有多個伺服器,該等伺服器儲存資料並運行應用程式,該等應用程式由遠端連結之電腦裝置使用者存取。一典型之資料中心具有實體機殼結構,伴隨電源與通訊連結。每一單獨之伺服器具有多個相同之硬體部件,例如處理器、儲存卡、網路介面控制器等。許多硬體部件,例如處理器核心, 需要相同之韌體常式 (firmware routines),例如由處理器核心執行之基本輸入/輸出系統 (Basic Input/Output System, BIOS),以進行例如資料輸入與輸出之功能。
用於硬體部件之韌體,例如 BIOS 韌體 (BIOS 映像 (image)),一般儲存於伺服器主機板上的一個序列周邊介面 (Serial Peripheral Interface, SPI) 的電子抹除式可複寫唯讀記憶體 (Electrically Erasable Programmable Read Only Memory, EEPROM) 之快閃記憶體 (flash memory) 裝置。儲存該 BIOS 映像之可用空間,取決於 EEPROM 之空間,依照該 EEPROM 之硬體設計而定。
為增加相同硬體部件之靈活性與同時操作數量,硬體設計可能使用多個 SPI EEPROM,以儲存相同硬體部件之相同映像。總體而言,於一電腦裝置 (例如伺服器或交換器系統 (switch system)) 中,有一個或多個 SPI 快閃記憶體,用於支援不同硬體部件。舉例而言,部件 (例如處理器核心) 需要韌體,例如開機程式碼、資料程式碼、初始化程式碼,以及其他程式碼。此韌體儲存於一對應之 SPI 快閃記憶體中。該韌體負責進行該中央處理器 (Central Processing Unit,  CPU) 或其他關鍵晶片之開機或初始化操作。
一般而言,現存韌體中可能發現程式錯誤 (bug),或新韌體版本中可能加入新功能。因此,SPI 快閃記憶體經常需要覆蓋寫入新程式碼。若運算裝置中有多個快閃記憶體,通常將花費冗長時間將新韌體寫入該等記憶體,因而造成該計算裝置過長之停機時間 (downtime)。將一新映像寫入運算裝置中所有 SPI 快閃記憶體所需之時間,乃基於該程式資料大小、時脈頻率、快閃記憶體數量,與其他因素。
快閃記憶體裝置之容量大小,通常由應用程式之記憶體需求、該快閃記憶體裝置之規格或供應商定義。此等裝置參數為不可變更。儘管 SPI 時脈頻率可提升,以提升記憶體運作速度,然而此等提升受印刷電路板布局 (PCB layout)、走線長度 (trace length) 與該快閃記憶體晶片寫入速度之限制。
第 1 圖顯示一種先前技術系統 10,該系統採用傳統 SPI 快閃記憶體程式常式(programming routine)。該系統 10 包含一個控制器 12、一個多工器 (multiplexer, MUX) 單元 14,及一系列 SPI 快閃記憶體 16。於此例中,有 1 至 n 個 SPI 快閃記憶體。該等 SPI 快閃記憶體 16 中,每一個皆儲存相同資料 (例如韌體映像),該等相同資料可由對應之相同硬體部件存取。該 MUX 單元 14 准許程式資料輸入、並寫入該 1 至 n 個 SPI 快閃記憶體 16 中之一選定記憶體。該控制器 12 以一個通用輸入/輸出 (General Purpose Input/Output, GPIO) 接腳,與一控制介面 20 (例如積體電路介接匯流排 (Inter-Integrated Circuit Bus, I2C) 介面) 耦接。該控制器 12 以一個 SPI 匯流排 22,與該 MUX 單元 14 耦接。該程式 (例如韌體映像) 由該控制器 12 經由該 SPI 匯流排 22 送出。一個由該控制器 12 傳送至該控制介面 20 之訊號,選擇該 MUX 單元 14 一系列輸出接腳 24 中之一。來自該 SPI 匯流排 22 之輸入程式,經由該選定之輸出接腳 24 傳送,隨後該韌體被傳輸至該等 SPI 快閃記憶體 16 中,與該選定之輸出接腳 24 相連者。
於此例中,該控制器 12 依序單獨程式化每一快閃記憶體 16。因此,該控制器 12 首先經由該控制介面 20,選擇該 MUX 單元 14 之一輸出接腳 24。選定後,該控制器 12 經由該 SPI 匯流排 22,傳送該程式至與該選定之輸出接腳 24 相連之快閃記憶體 16。於第一個快閃記憶體 16 被程式化時,其餘快閃記憶體 16 依序等待程式化。該韌體映像經由該 SPI 匯流排 22 傳送後,一個驗證訊號從該 MUX 14 選擇之快閃記憶體 16 被傳送,以驗證該韌體映像之一次成功寫入。於驗證後,該控制器 12 選擇次一記憶體裝置 16,並重複該等程式化及驗證動作,直至所有記憶體 16 皆接收該韌體映像為止。
由於所有快閃記憶體 16 皆以同一韌體映像程式化,故僅須驗證其一之韌體映像。於此例中,該等快閃記憶體 16 以每次一個之方式被程式化。該等快閃記憶體 16 中,每一快閃記憶體 16 於該程式碼完整寫入該快閃記憶體 16 之動作獲得驗證時,皆回傳一驗證訊號至該控制器 12。寫入所有記憶體裝置之開始至結束時間,包括將該程式碼寫入該等快閃記憶體 16 之一之時間,及於該等快閃記憶體 16 之一中驗證該程式碼之時間。因此,寫入所有該等快閃記憶體 16 所需之總時間,為程式化一個快閃記憶體之時間,加上驗證該程式之時間。此一加總結果之時間,尚須乘上快閃記憶體 16 之總數,並加上該 MUX 14 選擇該等輸出之總選擇時間。因此,該習知系統 10 之更新常式,於發布新韌體映像至一運算裝置上之多個快閃記憶體時,將造成可觀延遲。
因此,吾人亟需一常式,該常式可高效地程式化一運算裝置上之多個快閃記憶體。吾人亟需一系統,該系統具有一改良之 MUX,可處理多個快閃記憶體中之任何數量或全部,以供同時寫入韌體映像至該等記憶體之用。吾人亦亟需一系統,該系統可控制選定程式記憶體之驗證程序。
揭露之一例為包含一個交換單元 (switching unit) 之運算系統,該交換單元包含一個輸入與多個輸出。該交換系統連接該輸入至該等輸出中之一個或多個。於多個快閃記憶體裝置中,每一個皆與該交換單元之輸出中之一耦接。一控制匯流排與該交換單元耦接。該控制匯流排攜帶一控制訊號,以選擇該等輸出中之一個或多個,與該輸入連接。一程式介面匯流排與該交換單元之輸入耦接。該控制器經由該程式介面匯流排,提供程式予該等快閃記憶體裝置。
該範例系統之進一步實施,乃該控制器為一基板管理控制器 (Baseboard Management Controller, BMC)。另一實施乃該控制器選擇單一記憶體裝置,經由該程式介面匯流排傳遞驗證至該控制器。另一實施乃該交換單元包含一控制暫存器 (control register)。該控制暫存器包括數個位元,用於選擇欲與該輸入連結之輸出,及數個位元,用於選擇傳送驗證之單一記憶體裝置。另一實施乃該交換單元為現場可程式化邏輯閘陣列 (Field Programmable Gate Array, FPGA)、複雜可程式化邏輯裝置 (Complex Programmable Logic Device, CPLD)、可程式化邏輯裝置 (Programmable Logic Device, PLD) 或特定應用積體電路 (Application  Specific  Integrated  Circuit, ASIC) 中之一。另一實施乃該控制介面為一 I2C 匯流排。另一實施乃該程式介面匯流排為一 SPI 介面。另一實施乃該等記憶體裝置為 SPI 快閃記憶體。 另一實施乃該系統包括多個硬體部件。該等硬體部件中,每一個部件皆存取一對應之該等記憶體裝置之一。該程式為一韌體映像,供操作該等硬體部件中每一個部件之用。另一實施乃該系統包含一第二程式介面匯流排,該匯流排與該交換單元之輸入耦接。該系統包括一第二控制器,該第二控制器與該控制匯流排及該第二程式介面匯流排耦接。該第二控制器經由該第二程式介面匯流排提供程式予該等記憶體裝置。另一實施乃該系統包括一個與該控制匯流排耦接之第一擴充卡。該等記憶體裝置之第一集合位於該第一擴充卡上。該第一擴充卡包括一個第一交換裝置,該第一交換裝置具有一個與該交換單元輸出之一耦接之輸入。該交換裝置包括一組輸出,每一輸出皆與一對應之第一集合記憶體裝置耦接。另一實施乃該系統包含一個與該控制匯流排耦接之第二擴充卡。該等記憶體裝置之第二集合位於該第二擴充卡上。該第二擴充卡包括一個第二交換裝置,該第二交換裝置具有一個與該交換單元輸出之一耦接之輸入。該第二交換裝置包括一組輸出,每一輸出皆與一對應之第二集合記憶體裝置耦接。
揭露之另一例為一方法,該方法可同時程式化一運算系統中之多個記憶體裝置。一交換單元中之一個或多個輸出被選擇。該交換單元包括一輸入。一控制訊號由控制器經由一控制匯流排被傳遞至該交換單元,以連接該輸入與選定之輸出。程式由該控制器提供,經由一程式介面匯流排傳遞至該輸入。該程式被傳遞至多個快閃記憶體裝置。該等快閃記憶體裝置中,每一個皆與該交換單元之選定輸出中之一耦接。
該範例系統之進一步實施,乃該控制器為一 BMC。該交換單元為 FPGA、CPLD、PLD 或 ASIC 中之一。該控制介面為一 I2C 匯流排。該等記憶體裝置為 SPI 快閃記憶體。另一實施乃該方法包括於該等多個記憶體裝置中選擇單一記憶體裝置以傳送驗證。該程式經由該選定之記憶體裝置被驗證。該驗證經由該程式介面匯流排傳遞至該控制器。另一實施乃該驗證為該程式完整驗證之一,或該程式之校驗和 (checksum)。另一實施乃該交換單元包括一控制暫存器。該控制暫存器包括數個位元,用於選擇欲與該輸入連結之輸出,及數個位元,用於選擇傳送驗證之單一記憶體裝置。另一實施乃該方法包括多個硬體部件,其中每一部件皆存取一對應之該等記憶體裝置之一。該程式為一韌體映像,供操作該等硬體部件中每一個部件之用。另一實施乃該方法包括經由一個第二控制器,選擇該交換單元中之一個或多個輸出。一控制訊號自該第二控制器經由該控制匯流排傳遞至該交換單元,以連接該輸入與該等選定之輸出。該第二控制器經由該第二程式介面匯流排提供程式予該輸入。該程式被傳遞至該等多個快閃記憶體裝置。該等記憶體裝置中,每一個皆與該交換單元中之選定輸出之一耦接。
上述概要並非意圖表示每一實施例,或本揭露之所有面向。反之,前述之概要僅提供部分於此闡述之新穎面向與特徵之範例。下文詳述之代表性實施例與模式乃為實行本發明而列舉,若將該等實施例及模式與附隨之圖式及附錄之請求項連結,則上述特徵與優點,與本揭露之其他特徵與優點,將顯而易見。
本發明可以多種不同形式實施。代表性實施例顯示於圖式,並將於此詳述。本揭露係其原則之範例或圖示,而非意圖將本揭露之廣闊面向限制於該等圖示之實施例。進一步而言,若元件與限制於本說明書中揭露,但未明確闡述於請求項中,則該等元件與限制不應被併入請求項中,不論以單獨或集體之形式,或以隱含、推論或其他手段為之。就本詳述而言,除非另有否認,否則單數詞彙皆包含複數詞彙,反之亦然;「包含/包括」一詞意指「包括但不限於」。此外,表近似之詞彙,例如「大約」、「近乎」、「基本上」、「約略」等,可於此用以意指「於」、「接近」、「近於」、「於 3-5% 內」或「於可接受之製造容許誤差內」,或其中之邏輯組合等。
於此揭露之範例包含一系統與方法,該系統與方法可高效地程式化多個快閃記憶體裝置。該程式化動作經由一改良之多工器發生,該多工器准許同一韌體映像同時寫入多個快閃記憶體裝置。該程序因此可減少更新韌體映像至多個快閃記憶體裝置所需之時間。
第 2 圖顯示一範例運算系統 100,該運算系統 100 可高效地同時程式化數個 SPI 快閃記憶體裝置。該運算系統 100 可能為一伺服器、交換器系統或任何其他運算裝置。該系統 100 包括一控制器 112、一 MUX 單元 114,與一系列記憶體 116a, 116b, 116c 及 116n。於本範例中,該等記憶體 116a, 116b, 116c 及 116n 為 SPI 快閃記憶體裝置。然而,其他記憶體裝置,例如 micro SD卡、資料存取型快閃記憶體 (dataflash) 與較簡單之 25Cxx 系列 SPI EEPROM 亦可使用。於本範例中,共有 1 至 n 個 SPI 快閃記憶體,例如第一記憶體 116a 與最末之記憶體 116n,該等 SPI 快閃記憶體之編號為連續。於本範例中,該控制器 112 為任何合適之控制器裝置,例如中央處理器 (Central Processing Unit, CPU)、微控制器 (microcontroller unit, MCU)、基板管理控制器 (Baseboard Management Controller, BMC) 等。該控制器 112 包括不同介面,例如 SPI 介面、I2C 介面、PCIe (Peripheral Component Interconnect Express,高速外設組件互連標準) 介面或 LPC (low pin count,低引腳計數) 介面,該等介面使該控制器 112 可經由匯流排與其他位於該系統 100 上之硬體部件通訊。該控制器 112 包括至少一個通用輸入/輸出 (General Purpose Input/Output, GPIO) 接腳,該接腳使訊號可被該控制器 112 接收,或傳遞至該控制器 112。
於本範例中,該 MUX 單元 114 為一交換裝置,傳送一輸入至一個或多個輸出,其中每一輸出各連接至該等記憶體 116a, 116b, 116c 與 116n 之一。於本範例中,此等功能被程式化於一複雜可程式化邏輯裝置 (Complex Programmable Logic Device, CPLD) 中。然而,該 MUX 單元 114 可能為任何合適之裝置,例如現場可程式化邏輯閘陣列 (Field Programmable Gate Array, FPGA)、可程式化邏輯裝置 (Programmable Logic Device, PLD)、特定應用積體電路 (Application  Specific  Integrated  Circuit, ASIC) 或可程式化控制器等,該裝置使於此描述之功能可進行。該/該等由該 MUX 單元 114 傳送該輸入之輸出,乃由一控制暫存器所設定。於本範例中,該 MUX 單元 114 具有單一輸入 124 與八個可由該控制暫存器選擇之輸出 126。
該 MUX 單元 114 使程式 (例如韌體映像) 可傳遞至該 1 至 n 個 SPI 快閃記憶體中之一個或多個,例如該等記憶體 116a, 116b, 116c 與 116n。於本範例中,共有八個儲存相同資料之 SPI 快閃記憶體,包含該等記憶體 116a, 116b, 116c 與 116n。例如,可能有八個硬體部件,例如硬體部件 118a, 118b, 118c 與 118n,該等硬體部件皆使用對應之記憶體 116a, 116b, 116c 與 116n 中相同之程式化資料運作,並存取該對應記憶體中相同之程式化資料。例如,儲存於該等記憶體 116a, 116b, 116c 與 116n 中之資料可能包含作業韌體 (operating firmware)、其他映像、程式碼或參數資料。因此,該硬體部件 118a 於運作時存取儲存於該快閃記憶體 116a 中之韌體與參數資料。相應地,該硬體部件 118b 於運作時存取該快閃記憶體 116b 中之韌體與參數資料。
該控制器 112 與一控制介面 120 耦接,該控制介面 120 於本範例中為一 I2C 介面。該控制介面 120 經由一個該控制器 112 上之通用輸入/輸出 (General Purpose Input/Output, GPIO) 接腳連接。該控制介面 120 由該控制器 112 傳遞控制訊號至該 MUX 單元 114。該控制器 112 亦與該 MUX 之輸入 124 以一 SPI 匯流排 122 耦接。用於該等快閃記憶體 116a, 116b, 116c 與 116n 之該程式 (例如韌體映像),由該控制器 112 經由該 SPI 匯流排 122 傳遞。該控制介面 120 使該控制器 112 可設定該 MUX 單元 114 中之控制暫存器,以選擇該等輸出接腳 126 中之一個或多個。來自該 SPI 匯流排 122 之輸入,經由該/該等選定之輸出接腳 126 傳遞。依據該 MUX 單元 114 中控制暫存器之選擇,該韌體映像被傳輸至該等 SPI 快閃記憶體 116a, 116b, 116c 與 116n 中之一個或多個。
於本範例中,該控制器 112 可同時程式化該等快閃記憶體 116a, 116b, 116c 與 116n 中之多個。因此,該控制器 112 首先經由控制介面 120 設定該 MUX 單元 114 中之控制暫存器,以選擇該等輸出接腳 126 連接至該輸入 124。選定後,該控制器 112 經由該輸入 124 傳送該程式,以程式化多個快閃記憶體 116a, 116b, 116c 與 116n。該 MUX 單元 114 被設定為同時傳送該已接收之程式至該等選定之輸出接腳 126。該程式經由該 SPI 匯流排 122 傳送後,一驗證訊號由該等記憶體 116a, 116b, 116c 與 116n 中之第一快閃記憶體 (由該 MUX 單元 114 選擇,以進行驗證) 回傳。其他選定供驗證之記憶體將依序回傳其驗證訊號至該控制器 112。因此,該等記憶體 116a, 116b, 116c 與 116n 中選定記憶體之總程式化時間,為單一記憶體之程式化時間,加上所有驗證訊號皆被傳送所需之時間。
因此,若程式化一個快閃記憶體裝置之所需時間為 T,則以上述程序程式化 n 個快閃記憶體裝置所需之時間亦為 T。因此,若 n 個快閃記憶體裝置使用相同程式 (例如韌體映像),則可採用上述程序,以同時程式化所有快閃記憶體裝置。因此,程式化多個快閃記憶體所需之時間,即為程式化單一快閃記憶體所需之時間,而不論該系統 100 中快閃記憶體之數量為何。
相較於第 1 圖中之先前技術範例系統 10,第 2 圖中運算系統 100 之範例快閃記憶體程式可提供程式予該系統 100 之快閃記憶體中之單一、數個或全部。驗證可選擇性地對該等記憶體 116a, 116b, 116c 與 116n 中之單一或其他數量之快閃記憶體進行。程式可能被完整驗證,或以校驗和 (checksum) 驗證。程式化第 2 圖中運算系統 100 所有快閃記憶體所需之時間,為程式化單一快閃記憶體所需之時間,加上驗證時間與受驗證之快閃記憶體數量之乘積,再加上該 MUX 單元 114 之選擇時間與受驗證之快閃記憶體數量之乘積。
於本範例中,該 SPI 匯流排 122 具有四個訊號線,包含一個序列時脈線 (serial clock line, SCLK)、一個從機選擇線 (slave select line, SS)、一個主機輸出從機輸入訊號線 (master out slave in, MOSI) 與一個主機輸入從機輸出訊號線 (master in slave out, MISO)。該等 SPI 快閃記憶體 116a, 116b, 116c 與 116n 具有標準 (standard)、雙線 (dual) 與四線 (quad) 模式。該控制介面 120 為該控制器 112 所使用,以藉由設定該 MUX 之控制暫存器,控制該 MUX 單元 114 之狀態。
因此,該控制器 112 經由下列程序,將程式資料寫入該等記憶體 116a, 116b, 116c 與 116n 中之一個或多個。該控制器 112 首先設定該 MUX 控制暫存器,選擇欲程式化之快閃記憶體裝置 (例如 116a, 116b, 116c 與 116n) 之數量。該控制器 112 亦設定該 MUX 控制暫存器,選擇欲驗證之記憶體裝置。若於該程式化程序中選擇預設設定,則該等快閃記憶體之程式將全部被選擇,故不必設定該控制暫存器。該控制器 112 指定一檔案 (該檔案可能為韌體、映像、程式碼或參數資料),以開始該程式化程序,並選擇驗證模式。於本範例中,該驗證模式可能為完整韌體映像驗證,或較快速之校驗和程序。於本範例中,預設之驗證模式為完整韌體映像驗證。接著,該控制器 112 經由該 SPI 匯流排 122 傳輸該程式 (例如韌體映像) 至該 MUX 單元 114 之輸入 124。該 MUX 單元 114 同時傳送該程式化資料至所有選定之記憶體裝置,該等選定之記憶體裝置與該等選定之輸出 126 連接。
程式化所有該等選定之記憶體裝置完成後,該控制器 112 執行之常式將設定寫入該 MUX 單元 114 之控制暫存器,以選擇該等記憶體 116a, 116b, 116c 與 116n 中,欲驗證該程式之記憶體。每一欲驗證之記憶體依序被選擇,此時該控制器 112 等待由該選定之記憶體傳出之驗證訊號。接著,該控制器 112 更新一狀態欄 (status field),以顯示該必要韌體已被寫入該等記憶體 (例如記憶體 116a, 116b, 116c 與 116n),且對該等記憶體之驗證已完成。因此,該控制器 112 於程式化時更新該狀態欄之程式化狀態,並於程式化完成後產生一狀態報告。
第 3 圖顯示一表格 300,該表格乃該 MUX 控制暫存器之設定,此設定可能由第 2 圖中之該控制器 112 經由該控制介面 120 進行。於本範例中,該 MUX 控制暫存器為一個十六位元暫存器,然而較大或較小之暫存器亦可使用,與須程式化之快閃記憶體裝置數量相稱即可。
如該表格 300 所示,該暫存器之位元 12-15 (310) 預留一空間,以便將該 SPI 匯流排 122 設定為標準模式、雙線模式或四線模式。該標準模式乃該 SPI 匯流排 122 指明四個邏輯訊號 (SCLK, CS, MOSI 與 MISO)。該暫存器之位元 8-11 (320) 預留一空間,以便設定欲驗證之特定輸出及其對應之記憶體裝置。因此,設定 0000 乃選擇第 2 圖中第一個 SPI 快閃記憶體裝置 116a 進行驗證,而設定 0111 乃選擇第 2 圖中第八個 SPI 快閃記憶體裝置 116n 進行驗證。如上所述,該控制器 112 藉由開啟與須驗證之記憶體裝置對應之位元,啟動特定之記憶體裝置以供驗證。因此,若全部八個記憶體皆須驗證,則該控制器 112 將藉由設定該等位元 8-11 (320) 之值,依序逐一啟動該等記憶體裝置,並自每一記憶體裝置各接收一驗證訊號。若僅有部分記憶體裝置須驗證,則該控制器 112 將藉由設定該等位元 8-11,逐一於該等須驗證之記憶體裝置間循環切換。
列於該表格 300 中之該控制暫存器之位元 0-7 預留一空間,以便選擇一特定記憶體裝置,以自該 SPI 匯流排 122 接收程式。因此,位元 0 (330) 可開啟第一記憶體 116a 以供程式化。位元 1 (332) 可開啟第二記憶體裝置 116b 以供程式化。位元 2 (334) 可開啟第三記憶體裝置 116c 以供程式化。位元 3 (336) 可開啟第四記憶體裝置以供程式化。位元 4 (338) 可開啟第五記憶體裝置以供程式化。位元 5 (340) 可開啟第六記憶體裝置以供程式化。位元 6 (342) 可開啟第七記憶體裝置以供程式化。位元 7 (344) 可開啟第八記憶體裝置以供程式化。以此方式,該控制器 112 可藉由設定該控制暫存器之該/該等對應之位元 0-7,同時開啟該等八個記憶體裝置中之一個、數個或全部以供程式化。
第 4 圖為另一運算系統 400,該系統包含兩個控制器 410 與 412,並可同時程式化數個快閃記憶體裝置。該系統 400 包括一 MUX 單元 414。該等控制器 410 與 412 與一控制介面 420 耦接,該控制介面使該等控制器 410 與 412 可選擇該 MUX 單元 414 之輸出。於本範例中,該控制器 410 與一 SPI 匯流排 422 耦接。該控制器 412 與另一匯流排耦接,例如 PCIe 匯流排 424。一個匯流排轉換器單元 426 將該 PCIe 匯流排 424 之匯流排訊號,轉換至第二個與該 MUX 單元 414 耦接之 SPI 匯流排 428。
於本範例中,該 MUX 單元 414 為一個被程式化為交換器之 CPLD。該 MUX 單元 414 使程式可由該二輸入 430 與 432 中之一,傳遞至一個或多個輸出 436。該 SPI 匯流排 422 與該輸入 430 耦接。該第二 SPI 匯流排 428 與該輸入 432 耦接。於本範例中,該 MUX 單元 414 包括八個輸出 436。
該系統 400 包括擴充卡,例如擴充卡 440a, 440b, 440c 與 440n。任何數量之相同擴充卡皆可使用,該等相同之擴充卡與該擴充卡 440a 相似即可。該等擴充卡 (例如擴充卡 440a, 440b, 440c 與 440n) 皆包括相同之硬體部件,及其對應之快閃記憶體裝置,例如於該擴充卡 440a 上之記憶體 450a, 450b 與 450m。該等擴充卡上之相同硬體部件,為多個 SPI 快閃記憶體中之相同韌體所支援。每一擴充卡 (例如該等擴充卡 440a, 440b, 440c 與 440n) 皆連接至該 MUX 單元 414 之一輸出 436。
於本範例中,該擴充卡 440a 包括一 MUX 單元 442,該 MUX 單元 442 具有一輸入,該輸入與該 MUX 單元 414 之輸出 436 之一耦接。該擴充卡 440a 亦與該控制介面 420 耦接。該 MUX 單元 442 之輸出與額外之快閃記憶體裝置 450a, 450b 與 450m 耦接,該等額外之快閃記憶體裝置 450a, 450b 與 450m 分別與內建於該擴充卡 440a 上之硬體部件 (未顯示於圖中) 對應。
該等控制器 410 或 412 中之一,可程式化位於該等擴充卡 (440a, 440b, 440c 與 440n 中之任何或全部) 上之快閃記憶體裝置。於本範例中,來自該控制器 410 之程式經由該 SPI 匯流排 422 傳遞至該 MUX 單元 414。來自該控制器 412 之程式經由該 PCIe 匯流排 424 傳遞。該程式由該匯流排轉換器 426 轉換至該第二 SPI 匯流排 428,再傳遞至該 MUX 單元 414。或者,該第二控制器 412 亦可能具有一 SPI 介面,因而可直接經由 SPI 匯流排通訊。於該等控制器 410 與 412 上之其他種類匯流排與對應之介面亦可使用,搭配一匯流排轉換器 (例如該匯流排轉換器 426) 使用即可。例如,其他介面可能包括 USB (Universal Serial Bus,通用序列匯流排) 或 LPC 介面。
該系統 400 可同時程式化該等擴充卡 440a, 440b, 440c 與 440n上之記憶體裝置。由於該等擴充卡上之 MUX 單元(例如MUX 單元 442)皆與該 MUX 單元414串聯,故該 MUX 單元 414 可支援該等擴充卡 440a, 440b, 440c 與 440n 間之串接,且快閃記憶體之數量可藉由串聯額外之 MUX 單元而進一步增加。由一控制器 (例如該控制器 410) 送出之控制訊號,經由該控制介面 420,可選擇該等擴充卡 440a, 440b, 440c 與 440n 中之一個或多個,及其對應之記憶體,例如該等記憶體裝置 450a, 450b 與 450m 中之一個或多個。接著,來自該控制器之程式,可能被傳送至所有選定之記憶體裝置。或者,該控制器 412 可能傳送程式至所有選定之記憶體裝置。經由與上述程序類似之程序,驗證可能經由該 MUX (例如位於一選定之擴充卡 (例如擴充卡 440a) 上之 MUX 單元 442) 上之一控制暫存器,自選定之記憶體進行。
該系統 400 可於對所有該等記憶體裝置程式化之程序中,實現節省大量時間之目的。例如,一個逐一程式化各快閃記憶體之傳統系統 (例如第 1 圖之系統 10),其程式化程序所需時間為 T*n*m + S。其中 T 代表程式化與驗證單一快閃記憶體所需之時間。因此,T 為程式化單一快閃記憶體之時間 P 加上驗證時間 V 之和。n 代表擴充卡之數量。m 代表每一擴充卡上快閃記憶體之數量。S 代表選擇時間,可定義為s 1*(n-1) + n*s 2*(m-1),其中 s 1為該 MUX 單元 414 選擇一擴充卡之時間,s 2為該 MUX 單元 442 選擇一快閃記憶體之時間。因此,若 n = 8;m = 8;T = 1 分鐘;P = 0.5 分鐘;V = 0.5 分鐘;s 1= s 2= 0.05 秒,則程式化時間共為 T*n*m + S =1 分鐘*8*8 + 3.15 秒 = 64 分鐘 3.15 秒。
相較之下,若使用於此描述之程序,且 s = s 1= s 2,若未使用驗證,則程式化時間僅為 T 或 T + s,可於一分鐘或一分鐘又 0.05 秒內完成程式化。若該等快閃記憶體裝置進行驗證,則總時間為 T + s*n*(m-1) + V*n*(m-1) = 1 分鐘 + 0.05 秒*8*(8-1) + 0.5 分鐘*8*(8-1) = 29 分鐘 2.8 秒。 因此,揭露之範例程式化程序可縮短約一半之總程式化時間。
此改良之程序以下述方法進行,可參閱第 5 圖中所示之流程。第 5 圖為一範例常式之流程圖 500,該常式由第 2 圖中之控制器 112 執行,以根據本揭露之某些面向,同時提供程式 (例如韌體映像) 予記憶體裝置。第 5 圖中之流程圖,代表程式化多個 SPI 快閃記憶體裝置程序之範例機器可讀指令 (machine readable instructions)。於本範例中,該等機器可讀指令包含演算法,供下列裝置執行:(a) 處理器;(b) 控制器;及/或 (c) 一個或多個合適之其他處理裝置。該演算法可能以儲存於有形媒體 (例如快閃記憶體、唯讀記憶光碟 (Compact Disc Read-Only Memory, CD-ROM)、軟碟、硬碟、數位多功能影音光碟 (Digital Video (Versatile) Disk, DVD) 或其他記憶體裝置) 之軟體形式實施。然而,於本發明所屬領域具通常技術者,將可注意到:該演算法之全部或部分,亦可由處理器以外之裝置執行,及/或以韌體或專用硬體,以習知之方式實施 (例如可以特定應用積體電路 (Application Specific Integrated Circuit, ASIC)、可程式化邏輯裝置 (Programmable Logic Device, PLD)、現場可程式化邏輯裝置 (Field Programmable Logic Device, FPLD)、現場可程式化邏輯閘陣列 (Field Programmable Gate Array, FPGA) 或離散邏輯閘等方式實施)。例如,任何或全部該等介面部件可以軟體、硬體或韌體實施。此外,由該等流程圖代表之機器可讀指令之部分或全部,亦可手動實施。又,儘管該範例演算法乃參照第 5 圖所圖示之流程圖描述,於本發明所屬領域具通常技術者,將可注意到亦可使用多種其他方法實施該等範例機器可讀指令。例如,該等方塊之執行順序可能改變,及/或部分所述之方塊可能改變、刪去或合併。
第 2 圖中之控制器 112首先選擇欲程式化至該等快閃記憶體裝置之程式(步驟510)。該程式一般為一韌體映像,用以更新儲存於該等快閃記憶體中之韌體。該控制器 112 接著經由該控制介面 120 設定該 MUX 單元 114 之控制暫存器,以選擇欲程式化之快閃記憶體(步驟512)。該控制器 112 接著藉由從該 SPI 匯流排 122 傳送該程式至該 MUX 單元 114 之輸入,開始程式化(步驟514)。程式化完成後,該控制器 112 藉由設定該控制暫存器,選擇第一個欲驗證之記憶體裝置(步驟516)。該記憶體裝置傳送驗證訊號,接著該控制器接收該驗證訊號 (步驟518)。驗證完成後,該控制器 112 決定是否尚有記憶體裝置須驗證 (步驟520)。若尚有記憶體裝置須驗證,該控制器 112 將回至先前步驟,選擇下一個欲驗證之記憶體裝置 (步驟516)。所有記憶體裝置皆完成驗證後,該控制器 112 寫入一狀態報告 (步驟522)。於本範例中,該狀態報告包含該等快閃記憶體程式化結果之資訊 (並可能表列何等快閃記憶體被程式化)、何等快閃記憶體被驗證,及該等程式化與驗證是否成功。
於此應用中使用之「部件」、「模組」、「系統」等詞彙,總體而言指與電腦相關之實體,可能為硬體 (例如電路)、硬體與軟體之組合、軟體或一實體,該實體指一運作之機器,該機器具一個或多個特定功能。例如,一個部件可能為 (但不限於) 於處理器 (例如數位訊號處理器) 中運作之處理程序、處理器、物件、執行檔、執行緒、程式及/或電腦。舉例而言,一控制器中運行之應用程式,與該控制器皆可為一部件。一個或多個部件可能存在於一程序及/或一執行緒內,一部件亦可能局限於一電腦內及/或分布於兩個或更多電腦之間。又,一個「裝置」可能以特別設計之硬體、特定化之一般化硬體 (藉由執行該硬體上之軟體,使該硬體可進行特定功能)、儲存於電腦可讀媒體之軟體,或以上結合之形式呈現。
於此使用之詞彙,僅為描述特定實施例而使用,而非意圖限縮本發明之範圍。除非另有明示,否則於此使用之單數詞彙「一」、「一個」、「該」亦意圖包含複數形式。此外,於「實施方式」及/或請求項中所使用之「包含」、「包括」、「含有」、「具有」、「有」或其變體之詞彙,乃意圖表示開放性 (inclusive) 之意義,與「含」(comprising) 一詞相若。
除非另有定義,否則所有於此使用之詞彙 (包括技術與科學詞彙) 皆與於本發明所屬領域具通常技術者所習知之意義相同。此外,除非另有明確定義,否則詞彙 (例如常用辭典中已定義者) 應以其於相關技術脈絡中一致之意義詮釋,而不應以理想化或過度正式之形式詮釋。
以上描述本發明多個實施例,然而,應注意,該等實施例之呈現僅作為範例之用,而非限制。儘管已圖示與描述本發明一個或多個實施,於相關領域具技術之他人,於閱讀與理解本說明書與附錄之圖式後,將可知悉等價之改造與改良。 此外,儘管本發明之一特定特徵可能僅於數個實施之一中被揭露,該特徵亦可能因特徵之合併對任何給定或特定之應用為可預期且有利,而與一個或多個見於其他實施之其他特徵合併。因此,本發明之廣度及範圍實不應侷限於上述之任何實施例。反之,本發明之範圍定義,應與下列請求項及其等價敘述一致。
10:主機板 12:控制器 14:MUX單元 16:SPI快閃記憶體n 20:控制介面 (I2C/GPIO等) 22:SPI匯流排 (直接連結) 24:MUX選擇之SPI n100:主機板 112:控制器 114:MUX單元 116a:SPI快閃記憶體1 116b:SPI快閃記憶體2 116c:SPI快閃記憶體3 116n:SPI快閃記憶體n 118a、118b、118c、118n:硬體部件 120:控制介面 (I2C/GPIO等) 122:SPI匯流排 (直接連結) 124:MUX 126:MUX選擇之SPI n300:表格 310:位元12-15 320:位元8-11 330:位元0 332:位元1 334:位元2 336:位元3 338:位元4 340:位元5 342:位元6 344:位元7 400:主機板 410:控制器1 412:控制器2 414:MUX單元 420:控制介面 (I2C/GPIO等) 422:SPI匯流排 (直接連結) 424:PCIe/LPC/USB等 426:匯流排轉換器單元 428:SPI匯流排(經轉換) 430:MUX 436:MUX選擇之擴充卡n 440a:擴充卡1 440b:擴充卡2 440c:擴充卡3 440n:擴充卡n 442:MUX單元 450a:SPI快閃記憶體1 450b:SPI快閃記憶體2 450m:SPI快閃記憶體m 500:流程圖 510:選擇程式 512:選擇欲程式化之記憶體 514:開始程式化記憶體 516:選擇欲驗證之記憶體 518:接收驗證訊號 520:是否還有其他記憶體待驗證? 522:寫入記憶體狀態
為達對本揭露較佳之理解,建議將下述之代表性實施例,參照附隨之圖式一同閱讀。其中: 第 1 圖為一先前技術系統,該系統顯示一個提供韌體映像至多個快閃記憶體裝置之順序; 第 2 圖為一範例系統,該系統可更高效地同時提供韌體映像予多個快閃記憶體裝置; 第 3 圖為一列表,該列表顯示於第 2 圖之範例系統中,該改良 MUX 之控制暫存器之選擇; 第 4 圖為另一系統,根據本揭露之某些面向,該系統可程式化多張卡上之快閃記憶體;以及 第 5 圖為一範例常式之流程圖,該常式准許同時寫入多個快閃記憶體裝置。
本揭露可作多種改良與其他形式之詮釋。某些代表性實施例之範例於圖式中呈現,並將於此詳述。然而,應注意,本發明並非意圖限定於已揭露之特定形式。反之,本揭露之目的乃在涵蓋所有落於本發明之精神與範圍內之改良、等效及另類系統與方法,其中本發明為附錄之請求項所定義。
100:主機板
112:控制器
114:MUX單元
116a:SPI快閃記憶體1
116b:SPI快閃記憶體2
116c:SPI快閃記憶體3
116n:SPI快閃記憶體n
118a、118b、118c、118n:硬體部件
120:控制介面(I2C/GPIO等)
122:SPI匯流排(直接連結)
124:MUX
126:MUX選擇之SPIn

Claims (10)

  1. 一種運算系統,包括:一個交換單元,包括一個輸入與多個輸出,該交換單元可連接該輸入至該等輸出之一個或多個;多個快閃記憶體裝置,每個皆與該交換單元之該等輸出之一耦接;一個控制匯流排,與該交換單元耦接,該控制匯流排傳遞一控制訊號,以選擇該等輸出之一個或多個,連接至該輸入;一個程式化介面匯流排,與該交換單元之該輸入耦接;以及一個控制器,與該控制匯流排及該程式化介面匯流排耦接,該控制器可經由該程式化介面匯流排,同時提供相同的程式映像至透過該控制匯流排被選取的每一該等快閃記憶體裝置。
  2. 如請求項1之系統,其中該控制器可選擇該等記憶體裝置中之單一記憶體裝置,經由該程式化介面匯流排傳送驗證至該控制器。
  3. 如請求項2之系統,其中該交換單元包括控制暫存器,其中該控制暫存器包括第一數個位元,用於選擇欲連接至該輸入之該等輸出,及第二數個位元,用於選擇欲傳送驗證之該單一記憶體裝置。
  4. 如請求項1之系統,更包括多個硬體部件,該等硬體部件皆存取該等記憶體裝置之一對應者,其中該程式映像為韌體映像,供運作該等硬體部件之用。
  5. 如請求項1之系統,更包括:第二程式化介面匯流排,與該交換單元之輸入耦接;以及 第二控制器,與該控制匯流排及該第二程式化介面匯流排耦接,該第二控制器可選擇多個該等記憶體裝置,並經由該第二程式化介面匯流排,提供該程式映像至該等選定之快閃記憶體裝置。
  6. 如請求項1之系統,更包括一個第一擴充卡,與該控制匯流排耦接,其中該等記憶體裝置之第一集合位於該第一擴充卡上,該第一擴充卡包括一第一交換裝置,該第一交換裝置具有一個與該交換單元輸出之一耦接之輸入,及一組輸出,其中每一輸出皆與一對應之第一集合記憶體裝置耦接。
  7. 如請求項6之系統,更包括一個第二擴充卡,與該控制匯流排耦接,其中該等記憶體裝置之第二集合位於該第二擴充卡上,該第二擴充卡包括一第二交換裝置,該第二交換裝置具有一個與該交換單元輸出之一耦接之輸入,及一組輸出,其中每一輸出皆與一對應之第二集合記憶體裝置耦接。
  8. 一種於一運算系統中同時程式化多個記憶體裝置之方法,包括:選擇一交換單元之多個輸出中之一個或多個,該交換單元包含一輸入;自一控制器經由一控制匯流排傳送一控制訊號至該交換單元,以連接該輸入至該等選定之輸出;以及自該控制器經由程式化介面匯流排,提供一程式映像至該輸入,該程式映像被同時傳送至多個快閃記憶體裝置,其中每一該等快閃記憶體裝置皆與該交換單元之該等選定之輸出之一耦接。
  9. 如請求項8之方法,更包括:選擇該等記憶體裝置之單一記憶體裝置,傳送驗證;經由該選定之記憶體裝置,驗證該程式映像;以及 經由該程式化介面匯流排,傳送該驗證至該控制器。
  10. 如請求項8之方法,更包括:經由一第二控制器,選擇該交換單元之一個或多個輸出;自該第二控制器經由該控制匯流排傳送控制訊號至該交換單元,以連接該輸入至該等選定之輸出;以及自該第二控制器經由第二程式化介面匯流排,提供該程式映像至該輸入,該程式映像被傳送至該等快閃記憶體裝置,其中每一該等快閃記憶體裝置皆與該交換單元之該等選定之輸出之一耦接。
TW110101366A 2020-09-28 2021-01-14 同時程式化多個記憶體裝置之方法與系統 TWI774188B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/034,880 2020-09-28
US17/034,880 US11392325B2 (en) 2020-09-28 2020-09-28 Method and system for parallel flash memory programming

Publications (2)

Publication Number Publication Date
TW202213087A TW202213087A (zh) 2022-04-01
TWI774188B true TWI774188B (zh) 2022-08-11

Family

ID=80822470

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110101366A TWI774188B (zh) 2020-09-28 2021-01-14 同時程式化多個記憶體裝置之方法與系統

Country Status (3)

Country Link
US (1) US11392325B2 (zh)
CN (1) CN114281393A (zh)
TW (1) TWI774188B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11847082B2 (en) * 2020-10-13 2023-12-19 Dell Products L.P. System and method for secure management of non-registered components of an information handling system using a baseboard management controller

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201712588A (zh) * 2015-09-22 2017-04-01 廣達電腦股份有限公司 以電腦實施的方法與使用其的系統、以及電腦程式產品
US20180052793A1 (en) * 2016-01-13 2018-02-22 Huawei Technologies Co., Ltd. Switching Device, Peripheral Component Interconnect Express System, and Method for Initializing Peripheral Component Interconnect Express System
TWI653528B (zh) * 2016-12-14 2019-03-11 英業達股份有限公司 電腦系統及檢測方法
US20190278360A1 (en) * 2016-05-13 2019-09-12 Cypress Semiconductor Corporation Configurable and power-optimized integrated gate-driver for usb power-delivery and type-c socs
CN110515641A (zh) * 2019-08-30 2019-11-29 西安易朴通讯技术有限公司 服务器固件的更新方法、装置及系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4969134A (en) * 1988-10-24 1990-11-06 Balderson R Bruce Electro-optical signaling system
US20070258298A1 (en) * 2006-05-04 2007-11-08 Westell Technologies, Inc. Parallel programming of flash memory during in-circuit test
TWI349882B (en) * 2007-09-04 2011-10-01 Quanta Comp Inc Firmware update system and method for update the same
US8839007B2 (en) * 2011-06-17 2014-09-16 Dell Products Lp Shared non-volatile storage for digital power control
WO2013046463A1 (ja) * 2011-09-30 2013-04-04 株式会社日立製作所 不揮発半導体記憶システム
TWI540438B (zh) * 2011-10-13 2016-07-01 新唐科技股份有限公司 記憶體控制元件
US10466923B2 (en) * 2015-02-27 2019-11-05 Samsung Electronics Co., Ltd. Modular non-volatile flash memory blade
US20210124705A1 (en) * 2019-10-29 2021-04-29 Integrated Device Technology, Inc. Nand interface device to boost operation speed of a solid-state drive
US11621045B2 (en) * 2020-03-04 2023-04-04 Intel Corporation Non volatile flash memory with improved verification recovery and column seeding

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201712588A (zh) * 2015-09-22 2017-04-01 廣達電腦股份有限公司 以電腦實施的方法與使用其的系統、以及電腦程式產品
US20180052793A1 (en) * 2016-01-13 2018-02-22 Huawei Technologies Co., Ltd. Switching Device, Peripheral Component Interconnect Express System, and Method for Initializing Peripheral Component Interconnect Express System
US20190278360A1 (en) * 2016-05-13 2019-09-12 Cypress Semiconductor Corporation Configurable and power-optimized integrated gate-driver for usb power-delivery and type-c socs
TWI653528B (zh) * 2016-12-14 2019-03-11 英業達股份有限公司 電腦系統及檢測方法
CN110515641A (zh) * 2019-08-30 2019-11-29 西安易朴通讯技术有限公司 服务器固件的更新方法、装置及系统

Also Published As

Publication number Publication date
US20220100421A1 (en) 2022-03-31
US11392325B2 (en) 2022-07-19
TW202213087A (zh) 2022-04-01
CN114281393A (zh) 2022-04-05

Similar Documents

Publication Publication Date Title
US7890690B2 (en) System and method for dual-ported flash memory
US6119192A (en) Circuit and method for configuring a bus bridge using parameters from a supplemental parameter memory
US20090049222A1 (en) PCI Express-Compatible Controller And Interface For Flash Memory
US20050097255A1 (en) I2C device including bus switches and programmable address
JPH06348642A (ja) マルチプル・バス・ネットワークの初期化方法及びその装置
JPH05197582A (ja) 動的再構成が可能な多数決システムを有するフォールト・トレラント処理装置
WO2011029385A1 (zh) 在线加载逻辑器件的方法、系统和处理器
US11216284B2 (en) Multi-die and multi-core computing platform and booting method therefor
TWI774188B (zh) 同時程式化多個記憶體裝置之方法與系統
CN114174973A (zh) 串行存储器设备i/o模式选择
US9946552B2 (en) System and method for detecting redundant array of independent disks (RAID) controller state from baseboard management controller (BMC)
US20040064599A1 (en) Configurable memory controller for advanced high performance bus system
US7249253B2 (en) Booting from a re-programmable memory on an unconfigured bus
CN113204518B (zh) 用于配置子系统的装置、系统和方法
US6970986B1 (en) Software based system and method for I/O chip hiding of processor based controllers from operating system
CN113760800A (zh) 基于bmc的串口路径选择方法、系统、终端及存储介质
US11360782B2 (en) Processors to configure subsystems while other processors are held in reset
TWI815725B (zh) 電腦系統
TWI659295B (zh) 伺服器及伺服器開機初始化方法
JP6104065B2 (ja) 複数のブロックの書き込み制御を用いるメモリ・システム、装置、および方法
TWI838563B (zh) 串列記憶體設備i/o模式選擇
TWI818659B (zh) 微控制器、操作系統及控制方法
TWI678624B (zh) 模組化計算機系統及其運算核心板
TW202338593A (zh) 使用預設模板進行部分記憶體更新
CN116266168A (zh) 菊链spi集成电路及其操作方法