TWI774089B - PCIe之自動分支的方法及系統 - Google Patents

PCIe之自動分支的方法及系統 Download PDF

Info

Publication number
TWI774089B
TWI774089B TW109136057A TW109136057A TWI774089B TW I774089 B TWI774089 B TW I774089B TW 109136057 A TW109136057 A TW 109136057A TW 109136057 A TW109136057 A TW 109136057A TW I774089 B TWI774089 B TW I774089B
Authority
TW
Taiwan
Prior art keywords
pcie
port
unit
branch
detected
Prior art date
Application number
TW109136057A
Other languages
English (en)
Other versions
TW202132997A (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 TW202132997A publication Critical patent/TW202132997A/zh
Application granted granted Critical
Publication of TWI774089B publication Critical patent/TWI774089B/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/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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/4027Coupling between buses using bus bridges
    • G06F13/4045Coupling between buses using bus bridges where the bus bridge performs an extender function
    • 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/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • 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/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • 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
    • 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
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Bus Control (AREA)
  • Processing Of Solid Wastes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一種用於自動產生控制分支訊號以設置計算裝置上的PCIe IO單元之埠的系統及方法。PCIe IO單元之通道被分為最低粒度的初始埠。判斷PCIe裝置是否被連接至每個初始埠。PCIe IO單元之分支埠設置,係基於具有已連接的PCIe裝置而判斷。PCIe IO單元之埠,係基於分支埠設置而設置。

Description

PCIe之自動分支的方法及系統
本揭露主要涉及計算系統中,快速周邊元件互連(peripheral component interconnect express;PCIe)裝置之動態分支(dynamic bifurcation)控制。更具體而言,本揭露之面向涉及確保基本輸入輸出系統(basic input output system;BIOS)對PCIe輸入/輸出單元所作的有效率且自動的分支控制。
快速周邊元件互連(peripheral component interconnect express;PCIe)標準已被採用於計算裝置中的高速元件之連接。裝置具備含有多個通訊資料用的通道之PCIe輸入/輸出(input output;IO)單元。這種IO單元可包含4、8、16條通道(lane),該等通道可被切分成不同的通訊管道,以連接至不同的PCIe裝置。來自基本輸入輸出系統(basic input output system;BIOS)的分支控制機制允許將一匯流排IO單元(例如一PCIe匯流排IO單元)切分成較小的匯流排,以供不同的PCIe裝置。舉例來說,藉由對裝置的分支設定,一個16通道的PCIe Gen 3匯流排IO單元可被切分成兩個x8通道寬度的PCIe Gen 3介面。支援PCIe分支的伺服器中的處理器具有一BIOS設定,來對他們分別的PCIe IO單元啟用分支功能。
根據PCIe規格,分支為帶有PCIe IO單元的裝置提供了彈性,以配合連接器的通道寬度,來與安裝它們的系統之元件通訊。較寬的通道寬度需要更多實際的硬體連接接腳,但提供了較高的通訊速度。在帶有支援容量的PCIe裝置的計算機系統中,PCIe根埠(root port)通常係由CPU或晶片組(chipset)提供,以連接至PCIe裝置。CPU/晶片組廠商通常提供彈性的方法,來允許計算機系統設計者動態地設置PCIe通道分支,因為CPU/晶片組具有固定數目的接腳供PCIe通訊。舉例來說,被CPU支援的一個16 PCIe通道群組可以被設置為一個x16通道寬度的PCIe埠來支援一個PCIe裝置、兩個x8寬度的PCIe埠來支援兩個PCIe裝置、一個x8與兩個x4寬度的PCIe埠來支援三個PCIe裝置,或者四個x4寬度的PCIe埠來支援四個裝置。
較寬的寬度(例如一個x16寬度的埠)提供與PCIe裝置之間較高的通訊速度,但減少了系統的被支援PCIe裝置的總數。相反地,較窄的寬度(例如四個x4寬度的埠)提供較低的速度,但提供更多的埠供PCIe裝置連接。這種在每個埠的通道數上的彈性,讓計算機系統設計者有能力提供不同的系統,以相同的CPU/晶片組支援不同數目及類型的PCIe裝置。對於計算機系統製造商而言,使用單一的BIOS韌體映像檔來支援這些不同的計算機系統,是很普遍的。單一的BIOS映像檔必須儲存每個系統所使用的PCIe分支設置,以適應關聯於每個系統的硬體裝置。通常的方法係在BIOS中提供一對映表(mapping table)來使PCIe分支設置關聯於被CPU/晶片組所支援的不同的系統。
當BIOS被啟動,系統類型被偵測,且BIOS能基於映射表來設定CPU/晶片組中正確的PCIe分支。然而,若BIOS設定了錯誤的分支,系統可能無法使用安裝在系統上的某些PCIe裝置,或者某些PCIe裝置可能會以下降的降速執行。
伺服器系統中的系統設計,通常係複雜的。一個CPU/晶片組可具有許多個PCIe通道群組,而每個群組能具有一個別的分支設定。識別需要不同分支設置的不同系統,是個挑戰。舉例來說,兩個系統可具有相同的主機板、不同的PCIe轉接卡(riser card)。轉接卡係能被安裝在主機板上的擴充版(extension board),以將PCIe訊號從主機板路由至安裝在轉接卡上的PCIe卡。因此,不同的PCIe轉接卡可能需要不同的PCIe分支設置。舉例來說,第一轉接卡可將16 PCIe通道全部路由至一個單一的x16寬度的PCIe插槽,而第二轉接卡可將16 PCIe通道路由至兩個x8寬度的PCIe插槽。BIOS必須知道哪個PCIe轉接卡係被安裝來提供正確的PCIe分支設定。要更複雜的話,第三系統可具有完全不同的主機板。在此範例中,BIOS可能需要不同的方法來識別這三種系統,以正確地設定PCIe分支。
這種複雜度,有時造成BIOS設計者為某些系統寫入了錯誤的PCIe分支設定。而且,當系統的PCIe設計改變,或者新增了一個被相同BIOS所支援的新系統,就會需要釋出一個新的BIOS版本以支援這種PCIe分支設計改變。這些潛在的改變,增加了系統及BIOS本身的維護難度。
第1圖係先前技術廠商的CPU設計10的方塊圖,CPU設計10具有一個群組的可設置的PCIe IO單元。CPU設計10包含第一IO單元12(埠0,直接媒體界面(Direct Media Interface;DMI))、第二IO單元14(埠1,IOU2)、第三IO單元16(埠2,IOU0),及第四IO單元18(埠3,IOU1)。每個IO單元12、14、16及18具有IO單元之接腳的不同潛在設置,以供個別的PCIe通道。每一組IO單元,例如IO單元14,具有交易層(transaction layer)20、連結層(link layer)22,及帶有一組實體通道(physical lane)24的實體層。實體通道係與對應的PCIe連接器配對的接腳,該等接腳被用於安裝PCIe卡。取決於系統設計,這些接腳亦可在沒有PCIe連接器的情況下連接至PCIe裝置,而並非係與連接器配對。在此範例中,IO單元14具有實體通道0-7,且可被設置給一個或兩個埠(埠1a及埠1b)。IO單元16及IO單元18具有多組對應的實體通道34及實體通道44(通道0-15),且可被設置給至多四個埠。每個埠能被連接至一PCIe裝置,無論係經由PCIe連接器抑或係直接連接。
舉例來說,IO單元(埠2,IOU0)16具有數個不同可能的分支設定及對應的至多四個埠之組合(埠2a、埠2b、埠2c及埠2d)。PCIe分支可因此被設定為四個埠,每個埠具有x4寬度的通道—例如埠2a(x4)、埠2b(x4)、埠2c(x4),及埠2d(x4);三個埠—兩個埠具有x4寬度的通道,一個埠具有x8寬度的通道(埠2a(x4)、埠2b(x4),及埠2c(x8));三個埠—一個埠具有x8寬度的通道,兩個埠具有x4寬度的通道(埠2a(x8)、埠2c(x4)、埠2d(x4));兩個埠,每個埠具有x8寬度的通道(埠2a(x8)、埠2c(x8));以及一個具有x16寬度的通道的埠(埠2a(x16))。
廠商CPU設計10的範例,提供彈性給系統設計者在使用CPU設計10時,在不同的系統上支援不同的PCIe裝置。然而,PCIe分支必須被正確地設置給CPU設計10。否則,已連接的PCIe裝置可能無法被偵測到。舉例來說,若一個x4連結寬度的PCIe裝置被連接至IO單元16的實體連結4~7上,但PCIe分支控制將埠2a設定為一個x16連結寬度的埠,而沒有埠2b、埠2c及埠2d,則該PCIe裝置無法被偵測到。這係因為對於PCIe埠而言,第一個實體連結或最後一個實體連結(在此案例中,為埠2a的連結0或連結15,因為埠2a被設置為一個x16寬度的埠)必須被連接至PCIe裝置以供偵測。為了偵測此案例中的PCIe裝置之第一個實體連結,PCIe分支必須被設定為具有埠2b作為一個x4寬度的埠,或者埠2a作為一個x8寬度的埠。
另一個問題可能係,PCIe裝置可被PCIe根埠偵測到,但係以下降的速度執行,造成PCIe裝置可能的效能驟降。舉例來說,若一個x8連結寬度的PCIe裝置被連接至IO單元16的實體連結0~7上,但PCIe分支控制將連結0~7設定為具有x4連結寬度的埠2a,及具有x4連結寬度的埠2b,該x8寬度的PCIe裝置能藉由埠2a通訊,但僅能以x4連結寬度來執行。為了允許PCIe裝置以全滿的連結寬度(x8)運行,PCIe分支控制必須將通道0~7設置為埠2a(x8),或將通道0~15設置為埠2a(x16)。
目前,BIOS會在啟動期間偵測系統,以設定正確的PCIe分支。PCIe分支係根據BIOS中的一個預先定義的表來設定,該預先定義的表敘述從每個系統到其正確的PCIe分支設定的映射。如上述所解釋,出於系統設計的複雜度,BIOS設計者可能對每個系統寫入錯誤的PCIe分支設定。而且,當系統的PCIe設計改變,或者新增了一個使用相同BIOS的新系統,就會需要釋出一個新的BIOS版本以支援這種PCIe分支設計改變。這增加了系統及BIOS本身的維護難度。
因此,需要一計算裝置,使用例如為BIOS的系統韌體,以自動地辨識出IO單元上正確的PCIe分支設定。另外需要去除為了檢查每個系統的設置,而去維護BIOS中的PCIe分支表的必要。另外需要一道程序,允許在被相同的BIOS所支援的同時,PCIe分支設定被改變,藉此去除為新的PCIe分支需求而釋出的新的BIOS。
一個被揭露的範例係一種用於PCIe IO單元之自動分支偵測及設置的系統。該系統具有一計算裝置,計算裝置包含PCIe IO單元,PCIe IO單元具有可設置的通道。PCIe裝置被連接至PCIe IO單元的至少一些通道。該系統包含分支設置裝置,可運作以將PCIe IO單元之通道分為複數個初始埠。每個初始埠具有最低粒度的通道。分支設置裝置偵測PCIe裝置是否被連接至每個初始埠。分支設置裝置基於已連接至初始埠的PCIe裝置之偵測,判斷PCIe IO單元之分支埠設置。分支設置裝置儲存PCIe IO單元之分支埠設置。
在被揭露的範例系統之另一實施中,分支設置裝置可運作,以將沒有已偵測到的PCIe裝置的初始埠與另一初始埠合併。在另一實施中,分支設置裝置包含基本輸入輸出系統(basic input output system;BIOS)。在另一實施中,PCIe裝置係選自由網路介面卡(network interface card;NIC)、非揮發性快速記憶體儲存(non-volatile memory express;NVMe)裝置、磁碟陣列(redundant array of independent disks;RAID)卡、主機匯流排配接器(host bus adapter;HBA)卡、顯示卡(video card)、音效卡(sound card)、圖像處理器(graphics processing unit;GPU)卡、場域可程式邏輯陣列(field programmable gate array;FPGA)卡及PCIe交換器(switch)所組成之群組。在另一實施中,分支設置裝置包含PCIe IO單元與PCIe裝置之間的通道連接之通道反轉規則。分支設置裝置為通道反轉調整分支埠設置。在另一實施中,PCIe IO單元具有可設置的十六個通道,且有最低粒度的四個初始埠。在另一實施中,計算裝置係CPU。在另一實施中,計算裝置包含多個PCIe IO單元。每個PCIe IO單元被分支設置裝置所設置。在另一實施中,分支設置裝置在設置PCIe IO單元後,重啟系統。分支設置裝置於是判斷任何先前所偵測到的PCIe裝置是否沒被偵測到。若任何先前所偵測到的PCIe裝置沒被偵測到,分支設置裝置於是重設PCIe IO單元之埠。在另一實施中,PCIe裝置係被連接至PCIe IO單元之通道的複數個PCIe裝置的其中之一。
另一個被揭露的範例係一種自動提供分支控制訊號的方法,以設置在計算裝置上的PCIe IO單元。PCIe IO單元之通道被分為最低粒度的複數個初始埠。分支設置裝置判斷PCIe裝置是否被連接至每個初始埠。PCIe IO單元之分支埠設置係基於具有已連接的PCIe裝置的初始埠,經由分支設置裝置所判斷。PCIe IO單元之埠,係基於分支埠設置而被設置。
在被揭露的範例方法之另一實施中,沒有已偵測到的PCIe裝置的初始埠與另一初始埠被合併。在另一實施中,分支設置裝置包含基本輸入輸出系統(basic input output system;BIOS)。在另一實施中,PCIe裝置係選自由網路介面卡(network interface card;NIC)、非揮發性快速記憶體儲存(non-volatile memory express;NVMe)裝置、磁碟陣列(redundant array of independent disks;RAID)卡、主機匯流排配接器(host bus adapter;HBA)卡、顯示卡(video card)、音效卡(sound card)、圖像處理器(graphics processing unit;GPU)卡、場域可程式邏輯陣列(field programmable gate array;FPGA)卡及PCIe交換器(switch)所組成之群組。在另一實施中,該方法包含判斷PCIe IO單元與PCIe裝置之間的通道連接之通道反轉。該方法亦包含為通道反轉調整分支埠設置。在另一實施中,PCIe IO單元具有可設置的十六個通道,且有最低粒度的四個初始埠。在另一實施中,計算裝置係CPU。在另一實施中,計算裝置包含複數個PCIe IO單元,每個PCIe IO單元之埠被分支設置裝置所自動地設置。在被揭露的範例方法之另一實施中,在設置PCIe IO單元後,系統被重啟。任何先前所偵測到的PCIe裝置是否沒被偵測到被判斷。若任何先前所偵測到的PCIe裝置沒被偵測到,PCIe IO單元之埠被重設。
另一個被揭露的案例係可在一控制器上執行的基本輸入輸出系統韌體。該韌體包含將PCIe IO單元之通道分為最低粒度的複數個初始埠的指令。該韌體亦包含偵測PCIe裝置是否被連接至每個初始埠的指令。該韌體亦包含基於具有已連接的PCIe裝置的初始埠,判斷PCIe IO單元之分支埠設置的指令。該韌體包含基於分支埠設置,設置PCIe IO單元之埠的指令。
以上發明內容並非意圖代表本揭露的每個實施例或每個面向。相反地,前述的發明內容僅提供在此列舉的某些新穎的觀念及特徵之範例。以上特徵及優點,以及本揭露的其他特徵及優點,當關聯於搭配的圖式及附加的請求項,從以下用來實行本發明的代表性實施例及模式的詳細敘述中,將會輕易地清晰可見。
本發明能以許多不同的形式實施。代表性的實施例被顯示在圖式中,並將在此被詳細敘述。本揭露係本發明的原則之範例或圖解,且並非意圖將本揭露之廣泛的面向限制於繪式的實施例。在此基礎上,例如在摘要、發明內容及實施方式等段落中被揭露,但並未明確地在請求項中列舉的元件及限制,不應被單獨地、集體地、暗示地、推論地或其他方式地併入至請求項中。為了本詳細敘述之目的,除非被具體地否認,否則單數形包含複數形,反之亦然;且「包含」一詞意指「無限制地包含」。此外,表近似的詞彙,例如「約」、「幾乎」、「大體上」、「大概」及類似的詞彙,可在此用於意指「在」、「近」、「近於」、「3-5%的範圍內」或「可接受的製造公差內」,或者其任何的邏輯組合。
本揭露提供一種方法,允許例如為BIOS的系統韌體自動地為PCIe輸入/輸出(IO)單元辨識出正確的PCIe分支設定,取代仰賴於手動、預先程式化PCIe分支設置表。有了自動的設置辨識,BIOS不需要為每種系統類型依入口維護一個PCIe分支設置表。此外,當新系統被引進於PCIe分支已改變之處,相同的BIOS可直接支援新系統及新的分支設置。這去除了為新的PCIe分支需求釋出新的BIOS之需要。
被揭露的方法為給定的PCIe IO單元預設將PCIe分支設定為最小粒度的埠。舉例來說,一個16通道的PCIe IO單元管道被設定為四個x4寬度的起始埠(initial port)。對於每個最小粒度的埠,偵測任何已連接的PCIe裝置。當被設定為最小粒度時,根據PCIe裝置偵測狀態,PCIe分支被正確地設定。例行程序(routine)將沒有偵測到PCIe裝置的最低粒度的任何PCIe初始埠合併至它們鄰接的初始埠,以確保正確的通道利用。
第2圖係允許PCIe IO單元設置之自動偵測的範例系統200的方塊圖。範例系統200包含一計算裝置,例如為帶有PCIe IO單元220及PCIe IO單元230的CPU 210。應被理解的係,CPU 210可包含比範例的兩個PCIe IO單元(PCIe IO單元220及PCIe IO單元230)更多的PCIe IO單元。PCIe IO單元220或PCIe IO單元230可被連接至轉接卡,轉接卡提供連接器至不同類型的PCIe裝置。
經由來自BIOS 240的分支控制,每個PCIe IO單元220及PCIe IO單元230可被設置為不同的通道設置。類似於第1圖中的範例埠16,每個PCIe IO單元220及PCIe IO單元230具有交易層、連接層,及帶有16個實體通道(0-15)的實體層。PCIe IO單元220及PCIe IO單元230可個別被設置至多四個分離的埠。在此範例中,PCIe IO單元220被連接至兩個PCIe裝置(PCIe裝置250及PCIe裝置252)。PCIe裝置250及PCIe裝置252可以係網路介面控制器(network interface controller;NIC)卡、非揮發性快速記憶體儲存(non-volatile memory express;NVMe)裝置、磁碟陣列(redundant array of independent disks;RAID)卡、主機匯流排配接器(host bus adapter;HBA)卡、顯示卡(video card)、音效卡(sound card)、圖像處理器(graphics processing unit;GPU)卡、場域可程式邏輯陣列(field programmable gate array;FPGA)卡,或PCIe交換器(switch)。PCIe IO單元220因此必須以適當的分支控制訊號來設置,以分配正確的通道至兩個PCIe裝置(PCIe裝置250及PCIe裝置252)。舉例來說,PCIe IO單元220之實體通道0-7可被連接至PCIe裝置250,而實體通道8-15則可被連接至PCIe裝置252。為了讓PCIe裝置250及PCIe裝置252運作於最大的傳輸,PCIe IO單元220必須被設置兩個帶有x8寬度的埠。
分配通道至PCIe裝置250及PCIe裝置252的適當的分支控制設定,係由BIOS 240自動地判斷。如在此所解釋,需要不同分支控制訊號的不同數目的PCIe裝置,可搭配範例系統200作使用,因為這種設置係被BIOS 240自動地偵測。舉例來說,單一的PCIe裝置260被連接至PCIe IO單元230之實體通道,且因此PCIe IO單元230之設置不同於PCIe IO單元220之設置。
因此,BIOS 240之範例分支控制設定例行程序允許將一PCIe IO單元之通道設置為多個不同尺寸的埠。在此範例中,作為PCIe IO單元設置的CPU 210之分支設定,可在範例系統200啟動的期間,被BIOS 240經由一CPU設置暫存器所設定。替代地,設置可經由平台路徑控制器(platform controller hub;PCH)242所設定。
在此範例中,根據在此所敘述的原則,PCIe單元220可被BIOS 240設置為適當地與PCIe裝置250及PCIe裝置252通訊。在系統啟動之後,BIOS 240被設置為將PCIe IO單元220之分支設定為最小粒度的初始埠。在此範例中,IO單元具有16個通道,而最小粒度因此為四個通道的四個初始埠—例如埠2a(x4)、埠2b(x4)、埠2c(x4)及埠2d(x4)。例行程序偵測是否有任何PCIe裝置被連接至任一初始埠。由於埠係分支的最小粒度,能被正確的PCIe分支所偵測到的所有連接至PCIe IO單元220的PCIe裝置,在此條件下也預期能被偵測到。在此範例中,第一埠(埠2a,通道0-3)及第三埠(埠2c,通道8-11)分別與PCIe裝置250及PCIe裝置252連接。例行程序於是在沒有偵測到PCIe裝置的情況下,將初始埠合併至鄰接的初始埠,以利用額外的閒置通道。在此範例中,兩個未連接的埠(埠2b及埠2d)與另外兩個連接PCIe裝置的埠(埠2a及埠2c)合併。BIOS 240於是重啟系統,並根據來自先前偵測程序的偵測狀態,正確地設定PCIe分支。在此範例中,BIOS 240為偵測到的PCIe裝置250及PCIe裝置252正確地將PCIe IO單元220設置為兩個x8寬度的連結。
用於分支偵測及控制的BIOS例行程序,係根據提供基於被偵測到的PCIe裝置的分支設置的規則,而自動地執行。用於上述的範例BIOS 240的一個範例規則可為,若埠2a上有一個被偵測到的PCIe裝置,且埠2b、埠2c及埠2d上沒有PCIe裝置被偵測到,則埠2a之分支控制被設定為x16寬度,而沒有埠2b、埠2c及埠2d。若埠2b沒有被偵測到的PCIe裝置,但一裝置埠2c或埠2d上被偵測到,則埠2a之分支控制被設定為x8寬度,而沒有埠2b。
若一裝置在埠2c上被偵測到,且若埠2d上沒有被偵測到的裝置,則埠2c的分支被設定為x8,而沒有埠2d。該規則的其他範例可包含,若裝置在埠2a及埠2d上被偵測到,則分支被設定為埠2a(x8寬度)、埠2c(x4寬度)及埠2d(x4寬度)。在此範例中,若埠2a上的PCIe裝置係x8連結寬度的裝置,則該裝置此刻能以全滿的連結寬度(x8)運行。基於該規則,埠2a上的裝置並非係x16連結寬度的裝置,因為有另一個裝置在埠2d上(通道12-15)被偵測到。該規則亦可判斷在埠2d上所偵測到的裝置也並非係x8連結寬度的裝置。在此案例中,這種裝置應該係在埠2c上被偵測到,而並非係在埠2d上。
另一個範例為,若被偵測到的裝置係被連接至埠2a、埠2c及埠2d,則分支被設定為埠2a(x8)、埠2c(x4)及埠2d(x4)。此範例類似於之前的範例,因為裝置都係在埠2a及埠2d。埠2c上的裝置不能係x8連結寬度的裝置,因為有另一個裝置被連接至在埠2d(通道12-15)。
若裝置在埠2a及埠2c上被偵測到,則分支被設定為埠2a(x8)及埠2c(x8)。若埠2a上的PCIe裝置係x8連結寬度的裝置,則該裝置此刻能以全滿的連結寬度(x8)運行。埠2a上的裝置並非係一x16連結寬度的裝置,因為埠2c上(通道8-11)有另一個裝置。因此,若埠2c上的PCIe裝置係x8連結寬度的裝置,則該裝置此刻能以全滿的連結寬度(x8)運行。
若埠2a上僅偵測到一個裝置,則分支被設定為單一的埠2a(x16)。無論埠2a上的PCIe裝置係x8連結寬度的裝置或x16連結寬度的裝置,該裝置此刻能以全滿的連結寬度運行。
第3A圖係顯示用於偵測及合併埠的規則之不同排列的表300。第一組的欄310顯示PCIe IO單元220之每個最小粒度的埠。在此範例中,有四個欄310代表每個最小粒度的埠。欄310中的每個埠之下的陰影項目,代表一裝置被偵測到連接至該埠。第二組的欄320代表基於對應的被偵測到的裝置,每個最小粒度的埠之設置。在上述被解釋的範例中,若只有第一個埠有偵測到裝置(例如行332),該等埠被合併為一個單一的x16寬度的埠。如上述所解釋,當埠2b上沒有偵測到裝置,但一裝置在埠2c上被單獨地偵測到,則該等埠被設定為兩個x8寬度的埠,如行334所示。當裝置在埠2a及埠2d上被偵測到,則埠2a被設定為x8寬度,而埠2c及埠2d被各自設定為x4寬度,如行336所示。當裝置在埠2a、2b及2c上被偵測到,則該等埠被設置為兩個x4寬度的埠及一個x8埠,如行338所示。當裝置在埠2a、埠2b及埠2d上被偵測到,則該等埠被設置為四個x4寬度的埠,如行340所示。
一個需要不同於上述規則的替代案例,可為PCIe通道反轉(lane reversal)。PCIe通道反轉,係PCIe IO單元之通道與PCIe裝置之間的連接處於反轉的順序的一種狀況。因此,在正常情況下,PCIe IO單元通道0-15慣常地連接至PCIe裝置通道0-15。在通道反轉的案例中,PCIe IO單元通道0-15分別連接至PCIe裝置15-0。
若上述案例係落於PCIe通道反轉的狀況,則分支設定係不同的。在PCIe通道反轉規則的案例中,若裝置在埠2b上被偵測到,但埠2a上沒有裝置被偵測到,則埠2a之分支被設定為x8寬度,而沒有埠2b。若一裝置在埠2d上被偵測到,且埠2a、埠2b及埠2c上沒有裝置被偵測到,則分支控制被設定為埠2a享有x16寬度,而沒有埠2b、埠2c及埠2d。若埠2c上沒有被偵測到的裝置,但在埠2a或埠2b上有被偵測到的裝置,則埠2c之分支被設定為x8寬度,而沒有埠2d。
若裝置在埠2a及埠2d上被偵測到,則分支被設定為埠2a(x4)、埠2b(x4)及埠2c(x8)。埠2a上的PCIe裝置僅為x4連結寬度,或者更低。在通道反轉的狀況中,裝置的第一條PCIe通道必須被連接至通道3,以讓埠2a所偵測到。因此PCIe裝置只能係x4寬度(被連接至埠2a通道3-0)、x2寬度(被連接至埠2a通道3-2)或x1寬度(被連接至埠2a通道3)。因此,對此裝置而言,將埠2a設置為一x4寬度的埠,係可接受的。
埠2d上所偵測到的裝置之最大可能的連接寬度為x8寬度,因為在埠2c上沒有被偵測到的裝置。但埠2a上(通道3-0)有偵測到一裝置。因此,被偵測到的裝置可為x8寬度(被連接至通道15-8)、x4寬度(被連接至通道15-12)、x2寬度(被連接至通道15-14),或x1寬度(被連接至通道15)。因此,埠2c被設置為x8寬度的埠,以涵蓋所有的這些可能。
若裝置在埠2a、埠2c及埠2d上被偵測到,分支被設定為埠2a(x4)、埠2b(x4)、埠2c(x4)及埠2d(x4)。在通道反轉的狀況中,通道7-0無法被設定為單一的埠2a(x8),因為一裝置被偵測到連接至埠2a。這指示PCIe裝置之通道0被連接至PCIe IO單元之通道3。將通道7-0設定為單一的埠,由於裝置之通道0未被連接至IO單元通道7或通道0,將造成PCIe裝置未被偵測到。與IO單元連接的最大實體連結,為x4連結寬度。因此,將埠2a設定為x4連結寬度,將不會限制連接的實體連結。
若裝置在埠2a及埠2c上被偵測到,則分支被設定為埠2a(x4)、埠2b(x4)、埠2c(x4)及埠2d(x4)。在通道反轉的狀況中,埠2a及埠2c被維持為x4寬度的連結,因為這些埠僅能為x4連結寬度。若埠2a上僅偵測到一個裝置,則出於相同的原因,分支仍將設定埠2a(x4)、埠2b(x4)、埠2c(x4)及埠2d(x4)。
第3B圖係顯示取決於被偵測到的裝置來設置埠之分支的通道反轉規則的表350。第一組的欄360顯示在通道反轉的案例中,PCIe IO單元220(第2圖中)之每個最小粒度的埠。在此範例中,有四個欄360代表每個最小粒度的埠。欄360中的每個埠之下的陰影項目,代表一裝置於該埠上被偵測到。第二組的欄320代表每個埠之最終設置,基於對應的被偵測到的裝置。
如上述所解釋,通道反轉的案例導致不同於第3A圖所顯示的正常設置的埠設置。在表350中,行380代表若僅埠2d上偵測到裝置,x16的單一的埠設置(2a)。行382代表若僅埠2b及埠2d上偵測到裝置,兩個x8寬度的埠設置。行384代表當埠2a、埠2c及埠2d上偵測到裝置時,四個x4寬度的埠。同樣地,行386代表當埠2b、埠2c及埠2d上偵測到裝置時,一個x8寬度的埠及兩個x4寬度的埠。
第4圖及第5圖的流程圖代表在例如為CPU的裝置上的PCIe IO單元之動態分支設置程序的範例機器可讀指令(machine readable instructions)。在此範例中,機器可讀指令包括供(a)處理器;(b)控制器;及/或(c)一種或更多種其他合適的處理裝置執行的一種演算法。該演算法可被實施於儲存在有形媒體(例如快閃記憶體、CD-ROM、軟碟、硬碟、數位多功能影音光碟(DVD),或其他記憶體裝置)上的軟體中。然而,所屬技術領域之普通技能者將輕易地理解,整個演算法及/或其部分,可被除了處理器之外的裝置執行,及/或以熟知的方式被實施於韌體或專用的硬體中(例如可被特殊應用積體電路(application specific integrated circuit;ASIC)、可程式邏輯裝置(programmable logic device;PLD)、場域可程式邏輯裝置(field programmable logic device;FPLD)、場域可程式邏輯陣列(field programmable gate array;FPGA)、離散邏輯(discrete logic)等實施)。舉例來說,介面之任何或所有的元件可被軟體、硬體及/或韌體實施。並且,流程圖所代表的某些或所有的機器可讀指令可被手動地實施。此外,雖然範例演算法係參考第4圖及第5圖中所繪示的流程圖所敘述,所屬技術領域之普通技能者將輕易地理解,實施範例機器可讀指令的許多其他方法可被替代地使用。舉例來說,方塊的執行順序可被改變,且/或某些被敘述的方塊可被改變、刪減或合併。
第4圖係假設通道反轉設計被預先定義,第2圖中的範例PCIe IO單元220或PCIe IO單元230的其中之一的自動設置程序的流程圖400。於步驟410,系統被啟動。於步驟412,例行程序將PCIe通道之分支設定至最小粒度的初始埠。於步驟414,系統韌體於是偵測及記錄在最小粒度之下,被連接至任何初始埠的任何PCIe裝置。在此範例中,PCIe IO單元220具有最小粒度的分支中的四個埠(埠2a、埠2b、埠2c及埠2d)。由於該等埠係最小粒度的分支,連接至以正確的PCIe分支可偵測到的PCIe IO單元220的所有PCIe裝置,在此條件下也預期能被偵測到。在最小粒度的分支之下,已連接的裝置可能無法以它們全滿的連接寬度運行。舉例來說,具有八個通道的PCIe裝置,由於四個通道的四個埠之最小粒度,在此階段僅能每個被例行程序以四個通道運行。
為了提供全滿的連結寬度給較大寬度的裝置,例行程序於是將沒有偵測到PCIe裝置的初始埠合併至有連接PCIe裝置的鄰接的初始埠。此程序因此在需要時利用了額外的閒置PCIe通道。於步驟416,例行程序於是根據在偵測期間所判斷的狀態,重啟系統並設定PCIe IO單元220的埠之PCIe分支。於步驟418,系統於是以修正後的PCIe分支設定運行,修正後的PCIe分支設定辨識所有已連接的PCIe裝置,並且基於偵測到的狀態,將正確的通道寬度分配至每個裝置。
在上述的例行程序400中,PCIe通道反轉設計需要被預先定義,使正確的規則可被使用於正確的埠之合併中。因此,第5圖中的另一個例行程序500允許PCIe分支自動地被BIOS韌體正確地設定,而毋須系統中的PCIe通道反轉設置之資訊。
在例行程序500中,於步驟510,系統被啟動。於步驟512,例行程序將IO單元(例如第2圖中的PCIe IO單元220)的PCIe通道之分支設定至最小粒度的初始埠。於步驟514,系統韌體於是偵測及記錄在最小粒度之下,被連接至任何初始埠的任何PCIe裝置。在此範例中,PCIe IO單元220具有最小粒度的分支中的四個初始埠(埠2a、埠2b、埠2c及埠2d)。由於該等埠係最小粒度的分支,連接至以正確的PCIe分支可偵測到的PCIe IO單元220的所有PCIe裝置,在此條件下也預期能被偵測到。在最小粒度的分支之下,已連接的裝置可能無法以它們全滿的連接寬度運行,且偵測並沒有將通道反轉列入考慮。
為了提供全滿的連結寬度給較大寬度的裝置,例行程序於是將沒有偵測到PCIe裝置的初始埠合併至有連接PCIe裝置的鄰接的初始埠。此程序在需要時利用了額外的閒置PCIe通道。於步驟516,例行程序於是根據在偵測期間所判斷的狀態,重啟系統並設定PCIe IO單元220的埠之PCIe分支。於步驟518,例行程序於是檢查在新的設置下,先前所偵測到的裝置是否仍被偵測到。若先前所偵測到的所有裝置均仍被偵測到,則系統於是以修正後的PCIe分支設定運行,修正後的PCIe分支設定辨識所有已連接的PCIe裝置,並且基於偵測到的狀態,將正確的通道寬度分配至每個裝置。
於步驟518,若沒偵測到任何先前有偵測到的裝置,這指示了一種沒有假設通道反轉但實際上有通道反轉狀況的案例,否則就是一種假設了通道反轉但實際上並沒有通道反轉狀況的案例。在此狀況中,於步驟520,系統韌體再次重啟系統並將失去偵測到的PCIe裝置的已合併的PCIe埠切分。於步驟522,系統於是以修正後的PCIe分支設定運行,修正後的PCIe分支設定辨識所有已連接的PCIe裝置,並且基於偵測到的狀態,將正確的通道寬度分配至每個裝置。
在假設與實際狀況之間的通道反轉設計差異之可能性,導致在初始分支設置被套用於第5圖中的例行程序之後,某些已連接的PCIe裝置可能未被偵測到的可能性。舉例來說,若僅埠2a上偵測到一個裝置,而埠2b、埠2c及埠2d上沒有偵測到裝置,則基於沒有通道反轉的假設之上的規則,將會把分支設定為單一的x16連結寬度的埠(2a)。然而,若系統包含通道反轉,則在分支設置將埠2a設定為x16連結寬度之後,PCIe裝置將不會被偵測到,因為PCIe裝置之通道0實際上係被連接至IO單元通道3,而非通道0或通道15。在此狀況下,例行程序將返回至重啟系統並改變分支設置,以基於通道反轉之規則將分支設置設定回埠2a(x4)、埠2b(x4)、埠2c(x4)及埠2d(x4),如第3B圖中的表350所綜整。因此,若在對應的埠上所偵測到的任何裝置,以正常規則下的設置未被偵測到,則修改後的例行程序500供通道反轉之規則將復原正常規則所作的改變。
第6圖係顯示在新的設置之後,裝置偵測及偵測裝置失敗的所有可能性的表600。表600因此包含全面的規則,涵蓋第5圖中的例行程序500中的正常案例及通道反轉案例。表600包含第一組的欄610,第一組的欄610顯示在以陰影項目代表的最低粒度埠上的PCIe裝置之初始偵測的不同可能性。第二欄620顯示對於每個偵測到的埠,每個對應的埠之對應的初始分支設置設定。第三欄630顯示對於在欄610中的每個被偵測到的埠,被連接至在初始分支設置被根據欄620而設定之後可能不被偵測到的埠的裝置。第四欄640顯示基於沒有偵測先前在一個或複數個埠上所偵測到的裝置,修改後的分支設置設定。欄640中的交叉線項目,代表初始偵測到的裝置與後來偵測到的裝置相符的情況。
以上方法之優點,允許BIOS為裝置之PCIe IO單元自動地辨識正確的PCIe分支設定。這去除了BIOS對每個系統仰賴PCIe分支設置表之需要。此程序允許使用BIOS的同時,PCIe分支設定被改變,因此去除了為新的PCIe分支需求釋出新的BIOS之需要。
如本申請中所使用的「元件」、「模組」、「系統」或類似的詞彙,通常係指與電腦相關的實體,可以是硬體(例如電路)、硬體與軟體之組合、軟體,或者與運作機器相關、具有一種或更多種特定功能的實體。舉例而言,元件可以是但不限於在處理器(例如數位信號處理器)上執行的程序、處理器、物件、可執行檔、執行緒(thread of execution)、程式,及/或電腦。作為示例,在控制器上執行的應用,以及控制器本身,皆可為元件。一個或更多個元件可常駐於程序及/或執行緒之內,且一個元件可被侷限在一台電腦上及/或分散在兩台或更多台電腦之間。此外,「裝置」可出自於特殊設計的硬體之形式;藉由執行其上使硬體能執行特定功能的軟體所特製出的通用硬體;儲存在電腦可讀取媒體上的軟體;或者其組合。
在此所使用的術語僅以敘述特定的實施例為目的,而並非意圖限制本發明。如在此所使用的,單數形「一」及「該」意圖亦包含複數形,除非文意明顯另有所指。此外,倘若「包含」、「具有」一詞或者其變形,被使用在詳細敘述及/或請求項中,這類詞彙意圖被包含在類似於「包括」一詞的方式中。
除非另有定義,在此所使用的所有詞彙(包含技術性及科學性的詞彙),與本技術領域之普通技術之人一般所理解的,具有相同的含意。此外,像是被定義在一般所使用的字典中的詞彙,應被解讀為具有與它們在相關技術的文意中一致的含意,且除非在此被明確地如此定義,否則該等詞彙不會被解讀為理想化或過度正式的概念。
雖然本發明之各種實施例已被敘述如上,應被理解的是,該等實施例僅被呈現來作為範例,而非限制。即使本發明已參考一種或更多種實施方式所繪示及敘述,當閱讀及理解本說明書及附加的圖式時,均等的替換及修改將可被其他熟習此項技術者想到或知曉。此外,雖然本發明之特定的特徵可僅被數個實施例的其中之一所揭露,這種特徵可與其他實施例的一個或更多個其他特徵組合,而此其他特徵對於任何給定的或特定的應用可能是期望的或有利的。因此,本發明之廣度及範圍不應受限於任何以上敘述的實施例。反之,本發明之範圍應根據以下的請求項及其均等物所定義。
10:CPU設計 12,14,16,18:IO單元(IOU) 20:交易層 22:連結層 24,34,44:實體通道 200:系統 210:CPU 220,230:PCIe IO單元(IOU) 240:BIOS 242:平台路徑控制器(PCH) 250,252,260:PCIe裝置 300:表 310,320:欄 332,334,336,338,340:行 350:表 360,370:欄 380,382,384,386:行 400:例行程序 410,412,414,416,418:步驟 500:例行程序 510,512,514,516,518,520,522:步驟 600:表 610,620,630,640:欄
本揭露將可從以下示範的實施例之敘述,參考附帶的圖式,而更佳地理解,其中: 第1圖係先前技術具有可設置的PCIe IO單元的處理器設計的方塊圖。 第2圖係根據本揭露之某些面向,使用BIOS以自動偵測PCIe IO單元之分支設置的範例系統的方塊圖。 第3A圖係根據本揭露之某些面向,第2圖中的範例系統的PCIe裝置之偵測及合併未連接的埠之規則的範例表。 第3B圖係根據本揭露之某些面向,第2圖中的範例系統的PCIe裝置之偵測及合併未連接的埠之PCIe通道反轉規則的範例表。 第4圖係根據本揭露之某些面向,被BIOS所執行以自動偵測及設置第2圖中的PCIe IO單元之分支確認的例行程序的流程圖。 第5圖係根據本揭露之某些面向,提供一種替代的分支控制方法以考慮BIOS未知的PCIe通道反轉狀態的例行程序的流程圖。 第6圖係PCIe IO單元之正常的自動設置以及基於偵測到的通道反轉的設置之不同規則的表。
本揭露容許各式各樣的修改及替代的形式。某些代表性的實施例已藉由圖式中的範例所顯示,並將在此被詳細敘述。然而應被理解的是,本發明並非意圖受限於被揭露的特定形式。相反地,本揭露欲涵蓋落在如附加的請求項所定義本發明之精神與範圍內的所有修改、均等物及替代選項。
300:表
310,320:欄
332,334,336,338,340:行

Claims (8)

  1. 一種提供快速周邊元件互連(peripheral component interconnect express;PCIe)輸入/輸出(input output;IO)單元之自動分支偵測及設置的系統,該系統包括:一計算裝置,包含一PCIe IO單元,該PCIe IO單元具有可設置的複數個通道;一PCIe裝置,被連接至該PCIe IO單元的至少一些該等通道;及一分支設置裝置,可運作以執行以下步驟:將該PCIe IO單元之該等通道分為複數個初始埠,每個該等初始埠具有最低粒度的該等通道;偵測該PCIe裝置是否被連接至每個該等初始埠;基於已連接至該等初始埠的PCIe裝置之偵測,判斷該PCIe IO單元之一分支埠設置;及儲存該PCIe IO單元之該分支埠設置;其中該分支設置裝置包含該PCIe IO單元與該PCIe裝置之間的複數個通道連接之複數個通道反轉規則,且其中該分支設置裝置為通道反轉調整該分支埠設置。
  2. 如請求項1之系統,其中該分支設置裝置可運作以將沒有已偵測到的PCIe裝置的該初始埠與另一初始埠合併。
  3. 如請求項1之系統,其中該計算裝置係一CPU,且包含複數個PCIe IO單元,每個該等PCIe IO單元之埠被該分支設置裝置所設置。
  4. 如請求項1之系統,其中該分支設置裝置更能運行以執行以下步驟:在設置該PCIe IO單元後,重啟該系統;判斷任何先前所偵測到的PCIe裝置是否沒被偵測到;及若任何先前所偵測到的PCIe裝置沒被偵測到,重設該PCIe IO單元之複數個埠。
  5. 一種自動提供分支控制訊號的方法,以設置在一計算裝置上的一快速周邊元件互連(peripheral component interconnect express;PCIe)輸入/輸出(input output;IO)單元,包括:將該PCIe IO單元之複數個通道分為最低粒度的複數個初始埠;偵測一PCIe裝置是否經由一分支設置裝置而被連接至每個該等初始埠;基於具有一已連接的PCIe裝置的該等初始埠,經由該分支設置裝置,判斷該PCIe IO單元之一分支埠設置;及基於該分支埠設置,設置該PCIe IO單元之複數個埠;判斷該PCIe IO單元與該PCIe裝置之間的複數個通道連接之通道反轉;以及為通道反轉調整該分支埠設置。
  6. 如請求項5之方法,更包括將沒有已偵測到的PCIe裝置的該初始埠與另一初始埠合併。
  7. 如請求項5之方法,其中該計算裝置係一CPU,且 包含複數個PCIe IO單元,每個該等PCIe IO單元之埠被該分支設置裝置所設置。
  8. 如請求項5之方法,更包括:在設置該PCIe IO單元後,重啟一系統;判斷任何先前所偵測到的PCIe裝置是否沒被偵測到;及若任何先前所偵測到的PCIe裝置沒被偵測到,重設該PCIe IO單元之該等埠。
TW109136057A 2020-02-26 2020-10-19 PCIe之自動分支的方法及系統 TWI774089B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/802,161 US11132321B2 (en) 2020-02-26 2020-02-26 Method and system for automatic bifurcation of PCIe in BIOS
US16/802,161 2020-02-26

Publications (2)

Publication Number Publication Date
TW202132997A TW202132997A (zh) 2021-09-01
TWI774089B true TWI774089B (zh) 2022-08-11

Family

ID=77366090

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109136057A TWI774089B (zh) 2020-02-26 2020-10-19 PCIe之自動分支的方法及系統

Country Status (3)

Country Link
US (1) US11132321B2 (zh)
CN (1) CN113312287B (zh)
TW (1) TWI774089B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111752871A (zh) * 2020-05-29 2020-10-09 苏州浪潮智能科技有限公司 一种同一pcie槽位兼容不同pcie带宽的pcie设备、装置及方法
US11436020B2 (en) * 2020-07-21 2022-09-06 Dell Products L.P. Systems and methods to bifurcate at least one peripheral component interconnect express (PCIE) port in accordance with a user-selectable PCIE bifurcation setting
JP2023044478A (ja) 2021-09-17 2023-03-30 キオクシア株式会社 コントローラおよびメモリシステム
US20240303086A1 (en) * 2023-03-06 2024-09-12 Dell Products L.P. Boot time reduction for an information handling system with a data processing unit

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8751714B2 (en) * 2010-09-24 2014-06-10 Intel Corporation Implementing quickpath interconnect protocol over a PCIe interface
CN104391816A (zh) * 2012-10-22 2015-03-04 英特尔公司 高性能互连物理层
JP6150886B2 (ja) * 2012-06-13 2017-06-21 ラティス セミコンダクタ コーポレーションLattice Semiconductor Corporation 時分割動作を用いたマルチプロトコルトンネリング
TW201732620A (zh) * 2016-03-04 2017-09-16 英特爾公司 扁平化入口橋接器
US20180246833A1 (en) * 2017-02-28 2018-08-30 Cisco Technology, Inc. DYNAMIC PARTITION OF PCIe DISK ARRAYS BASED ON SOFTWARE CONFIGURATION / POLICY DISTRIBUTION
US10120809B2 (en) * 2015-09-26 2018-11-06 Intel Corporation Method, apparatus, and system for allocating cache using traffic class
US20180341497A1 (en) * 2017-05-25 2018-11-29 Dell Products, Lp System and Method to Configure Communication Lanes of a Central Processing Unit
US20190340148A1 (en) * 2019-07-17 2019-11-07 Intel Corporation Dynamic presentation of interconnect protocol capability structures
CN110442446A (zh) * 2019-06-29 2019-11-12 西南电子技术研究所(中国电子科技集团公司第十研究所) 实时处理高速数字信号数据流的方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150301964A1 (en) * 2014-02-18 2015-10-22 Alistair Mark Brinicombe Methods and systems of multi-memory, control and data plane architecture
US10191877B2 (en) 2015-12-22 2019-01-29 Intel Corporation Architecture for software defined interconnect switch
US10756816B1 (en) * 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US10503427B2 (en) * 2017-03-10 2019-12-10 Pure Storage, Inc. Synchronously replicating datasets and other managed objects to cloud-based storage systems
US10474612B1 (en) * 2018-10-30 2019-11-12 Dell Products L.P. Lane reversal detection and bifurcation system

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8751714B2 (en) * 2010-09-24 2014-06-10 Intel Corporation Implementing quickpath interconnect protocol over a PCIe interface
JP6150886B2 (ja) * 2012-06-13 2017-06-21 ラティス セミコンダクタ コーポレーションLattice Semiconductor Corporation 時分割動作を用いたマルチプロトコルトンネリング
CN104391816A (zh) * 2012-10-22 2015-03-04 英特尔公司 高性能互连物理层
US10120809B2 (en) * 2015-09-26 2018-11-06 Intel Corporation Method, apparatus, and system for allocating cache using traffic class
TW201732620A (zh) * 2016-03-04 2017-09-16 英特爾公司 扁平化入口橋接器
US20180246833A1 (en) * 2017-02-28 2018-08-30 Cisco Technology, Inc. DYNAMIC PARTITION OF PCIe DISK ARRAYS BASED ON SOFTWARE CONFIGURATION / POLICY DISTRIBUTION
US20180341497A1 (en) * 2017-05-25 2018-11-29 Dell Products, Lp System and Method to Configure Communication Lanes of a Central Processing Unit
CN110442446A (zh) * 2019-06-29 2019-11-12 西南电子技术研究所(中国电子科技集团公司第十研究所) 实时处理高速数字信号数据流的方法
US20190340148A1 (en) * 2019-07-17 2019-11-07 Intel Corporation Dynamic presentation of interconnect protocol capability structures

Also Published As

Publication number Publication date
US11132321B2 (en) 2021-09-28
CN113312287B (zh) 2024-08-30
CN113312287A (zh) 2021-08-27
US20210263875A1 (en) 2021-08-26
TW202132997A (zh) 2021-09-01

Similar Documents

Publication Publication Date Title
TWI774089B (zh) PCIe之自動分支的方法及系統
TWI631470B (zh) 透過一管理控制器動態重新配置一系統之至少一週邊匯流排交換器之方法及系統
US11507421B2 (en) Information handling system and method to allocate peripheral component interconnect express (PCIe) bus resources
KR100339442B1 (ko) 주변장치를 컴퓨터에 등록하는 방법 및 컴퓨터 시스템
US9372702B2 (en) Non-disruptive code update of a single processor in a multi-processor computing system
CN114579500B (zh) 用于高速数据通讯的系统、中介件及方法
US20070233930A1 (en) System and method of resizing PCI Express bus widths on-demand
US20150205740A1 (en) Flexible port configuration based on interface coupling
US8713230B2 (en) Method for adjusting link speed and computer system using the same
US10853213B2 (en) Validation of installation of removeable computer hardware components
US12013946B2 (en) Baseboard memory controller (BMC) reliability availability and serviceability (RAS) driver firmware update via basic input/output system (BIOS) update release
TW202343237A (zh) 資料中心安全控制模組及其控制方法
US20180081550A1 (en) System and method for detecting redundant array of independent disks (raid) controller state from baseboard management controller (bmc)
US7725761B2 (en) Computer system, fault tolerant system using the same and operation control method and program thereof
US10534734B1 (en) Processor/endpoint communication coupling configuration system
TWI772024B (zh) 減少停機時間的方法及系統
US6970986B1 (en) Software based system and method for I/O chip hiding of processor based controllers from operating system
TWI834147B (zh) 熱插拔方法、伺服器系統及電腦可讀存儲介質
TWI851403B (zh) 計算系統、多節點伺服器及電腦實施方法
TWI839116B (zh) 硬碟背板點燈方法及伺服系統
US11966750B2 (en) System-on-chip management controller
US20230409505A1 (en) Dynamic allocation of peripheral component interconnect express bus numbers
US20240103847A1 (en) Systems and methods for multi-channel rebootless firmware updates
CN113342257A (zh) 伺服器及相关的控制方法