TW202246993A - 快捷週邊組件互連介面裝置及其操作方法 - Google Patents

快捷週邊組件互連介面裝置及其操作方法 Download PDF

Info

Publication number
TW202246993A
TW202246993A TW111119073A TW111119073A TW202246993A TW 202246993 A TW202246993 A TW 202246993A TW 111119073 A TW111119073 A TW 111119073A TW 111119073 A TW111119073 A TW 111119073A TW 202246993 A TW202246993 A TW 202246993A
Authority
TW
Taiwan
Prior art keywords
coefficients
pcie
error
pcie interface
interface device
Prior art date
Application number
TW111119073A
Other languages
English (en)
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 TW202246993A publication Critical patent/TW202246993A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/141Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
    • 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
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0745Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in an input/output transactions management context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0781Error filtering or prioritizing based on a policy defined by the user or on a policy defined by a hardware/software module, e.g. according to a severity level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3027Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a 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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/126Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
    • 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
    • G06F13/4295Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/0264Arrangements for coupling to transmission lines
    • H04L25/0272Arrangements for coupling to multiple lines, e.g. for differential transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/03Shaping networks in transmitter or receiver, e.g. adaptive shaping networks
    • H04L25/03878Line equalisers; line build-out devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公開關於一種快捷週邊組件互連(Peripheral Component Interconnect Express, PCIe)介面裝置及其操作方法。PCIe介面裝置透過鏈路聯接到外部裝置,鏈路包括多個通路,該PCIe介面裝置包括:EQ控制器,控制PCIe介面裝置執行均衡操作,均衡操作用於確定多個通路中的每一個的發送器設置或接收器設置;以及EQ資訊儲存裝置,儲存日誌資訊和錯誤資訊,日誌資訊指示針對多個EQ係數中的每一個的均衡操作的嘗試數量,錯誤資訊是關於針對多個EQ係數中的每一個的在L0狀態中發生的錯誤,EQ係數包括發送器係數或接收器係數,其中,EQ控制器使用日誌資訊和錯誤資訊來確定最終EQ係數。

Description

快捷週邊組件互連介面裝置及其操作方法
各個實施例通常關於一種電子裝置,並且更特別地,關於一種快捷週邊組件互連(Peripheral Component Interconnect Express, PCIe)介面裝置及其操作方法。
快捷週邊組件互連(Peripheral Component Interconnect Express, PCIe)關於一種用於資料通信的具有串行配置的介面。基於PCIe的儲存裝置可以支援多埠和多功能。基於PCIe的儲存裝置可以是虛擬化的或非虛擬化的,並且透過至少一個PCIe功能來實現主機I/O命令的服務質量(Quality of Service, QoS)。
儲存裝置可以在諸如計算機或智慧型手機的主機裝置的控制下儲存資料。儲存裝置可以包括儲存資料的記憶體裝置和控制記憶體裝置的記憶體控制器。記憶體裝置可以被劃分爲揮發性記憶體裝置和非揮發性記憶體裝置。
揮發性記憶體裝置只要被供應電力就可以保留資料,並且在沒有電力的情况下可能丟失所儲存的資料。揮發性記憶體裝置的類型可以包括靜態隨機存取記憶體(Static Random Access Memory, SRAM)、動態隨機存取記憶體(Dynamic Random Access Memory, DRAM)等。
非揮發性記憶體裝置即使沒有電力供應也不會丟失資料。非揮發性記憶體裝置的類型可以包括唯讀記憶體(Read Only Memory, ROM)、可編程ROM(Programmable ROM, PROM)、電可編程ROM(Electrically Programmable ROM, EPROM)、電可擦除可編程ROM(Electrically Erasable and Programmable ROM, EEPROM)、快閃記憶體等。
相關申請的交叉引用 本申請要求於2021年5月25日向韓國智慧財產局提交的,申請號爲10-2021-0067203的韓國專利申請的優先權,該韓國專利申請的全部公開內容透過引用併入本文。
本公開的各個實施例針對一種能夠執行改進的PCIe均衡操作的PCIe介面裝置及其操作方法。
根據實施例,一種快捷週邊組件互連(PCIe)介面裝置透過鏈路聯接到外部裝置,鏈路包括多個通路,該PCIe介面裝置可以包括:均衡器控制器(EQ)控制器,控制PCIe介面裝置執行均衡操作,均衡操作用於確定多個通路中的每一個的發送器設置或接收器設置;以及EQ資訊儲存裝置,儲存日誌資訊和錯誤資訊,日誌資訊指示針對多個EQ係數中的每一個的均衡操作的嘗試數量,錯誤資訊是關於針對多個EQ係數中的每一個的在L0狀態中發生的錯誤,多個EQ係數包括發送器係數或接收器係數,其中,EQ控制器使用日誌資訊和錯誤資訊來確定最終EQ係數。
根據實施例,一種操作PCIe介面裝置的方法,PCIe介面裝置透過包括多個通路的鏈路聯接到外部裝置,該方法可以包括:確定是否存在日誌資訊,日誌資訊指示針對多個EQ係數中的每一個的對多個通路測試均衡操作的次數;當日誌資訊存在時,使用日誌資訊確定EQ係數來測試均衡操作;根據所確定的EQ係數來執行鏈路接通;並且儲存與所確定的EQ係數相對應的日誌資訊以及關於鏈路接通狀態下發生的錯誤的錯誤資訊。
根據本說明書中公開的構思的實施例的示例的具體結構或功能描述僅用於描述根據該構思的實施例的示例。根據該構思的實施例的示例可以以各種形式來執行。然而,實施方式不限於本說明書中描述的實施例的示例。
可以根據該構思對實施例的示例進行各種修改和改變,以使得在圖式中示出並在說明書中描述實施例的示例。然而,根據本公開的該構思的實施例不被解釋爲限於特定的公開,並且包括不脫離本公開的精神和技術範圍的所有改變方案、等效方案或替代方案。在描述那些實施例時,將省略對本公開所屬領域習知的並且與本公開不直接相關的技術的描述。這旨在透過省略不必要的描述來更清楚地公開本公開的要旨。
下文中,將參照圖式詳細描述本公開的示例性實施例。
圖1是示出根據本公開的實施例的PCIe計算系統的示圖。
參照圖1,PCIe計算系統100可以包括中央處理單元(CPU)110、根複合體(root complex)120、記憶體130、交換機140、PCIe端點150_1至150_3、傳統端點(legacy endpoint)160_1和160_2以及PCIe至PCI/PCI-X橋170。
PCIe計算系統100可以是支援使用PCIe介面進行通信的電子裝置。PCIe計算系統100可以是個人電腦(PC)、膝上型計算機或移動計算裝置。PCIe計算系統100可以包括擴展卡、擴展板、配接器卡、插卡或附屬卡。另外,PCIe計算系統100可以包括印刷電路板(Printed Circuit Board, PCB),印刷電路板可插入到PCIe計算系統100的主板上的電子連接器或擴展槽中以透過擴展匯流排向PCIe計算系統100提供附加功能。另外,PCIe計算系統100可以包括諸如固態硬碟(Solid State Drive, SSD)的儲存裝置,並且可以包括圖形卡、網卡或USB卡。
CPU 110可以電聯接到PCIe計算系統100的每個組件並且可以控制PCIe計算系統100的相應操作。更具體地,CPU 110可以驅動操作系統或應用程式以控制聯接到CPU 110的硬體或軟體的組件,並且可以執行各種類型的資料處理和操作。另外,CPU 110可以執行用於控制PCIe計算系統100的操作的軟體或應用。
根複合體120可以是PCIe互連架構中的根集線器、控制器集線器或根控制器。例如,根複合體120可以包括晶片組、記憶體控制器集線器(Memory Controller Hub, MCH)、北橋(northbridge)、互連控制器集線器(Interconnect Controller Hub, ICH)、南橋(southbrdige)和根控制器/集線器。另外,根複合體120可以將CPU 110和記憶體130連接到I/O層級。根複合體120可以支援點對點(peer-to-peer, P2P)路由。根複合體120可以包括至少一個主機橋和根埠。根複合體120可以支援至少一個PCIe埠。
記憶體130可以儲存PCIe計算系統100的操作所需的資料、命令或程式代碼。根據實施例,記憶體1030可以儲存可操作以運行一個或多個操作系統(Operating System, OS)與虛擬機(Virtual Machine, VM)的程式代碼以及運行用於管理虛擬機(Virtual Machine, VM)的虛擬化中介(Virtualization Intermediary, VI)的程式代碼。另外,記憶體130可以被實現爲諸如DRAM或SRAM的揮發性記憶體裝置。
交換機140可以向上游或下游路由封包或訊息。更具體地,交換機140可以將封包或訊息從PCIe端點(例如,150_1)向上一層級路由到根複合體120。然而,可選地,交換機140可以將封包或訊息從根複合體120向下一層級路由到PCIe端點(例如,150_2)。
交換機140可以被稱爲多個虛擬PCI至PCI橋接裝置的邏輯組件。連接到交換機140的裝置的示例可以包括聯接到電子系統的任意內部或外部裝置或者組件,諸如I/O裝置、網絡介面控制器(Network Interface Controller, NIC)、插卡、音頻處理器、網絡處理器、硬碟、儲存裝置、CD/DVD ROM、監視器、印表機、滑鼠、鍵盤、路由器、攜帶式儲存裝置、火線裝置、通用序列匯流排(Universal Serial Bus, USB)裝置、掃描儀和其他輸入/輸出裝置。
PCIe端點150_1至150_3以及傳統端點160_1和160_2中的每一個可以用作PCIe事務的請求器或完成器。由PCIe端點150_1至150_3和傳統端點160_1和160_2發送或接收的事務層封包(Transaction Layer Packet, TLP)可以提供配置空間報頭(header)。另外,PCIe端點150_1至150_3以及傳統端點160_1和160_2中的每一個作爲完成器可以提供配置請求。在特定條件下,由PCIe端點150_1至150_3和傳統端點160_1和160_2發送或接收的事務層封包(TLP)必須提供配置空間報頭。另外,PCIe端點150_1至150_3以及傳統端點160_1和160_2中的每一個作爲完成器必須提供配置請求。
PCIe端點150_1至150_3以及傳統端點160_1和160_2可以根據記憶體事務的可能的大小而被分類。例如,當記憶體事務可能超過4GB時,端點可以是PCIe端點(150_1至150_3)。另一方面,當記憶體事務不可能超過4GB時,端點可以是傳統端點(160_1和160_2)。雖然不允許PCIe端點150_1至150_3產生I/O請求,但是傳統端點160_1和160_2可以提供或產生I/O請求。另外,PCIe端點150_3可以向根複合體120發送TLP或者從根複合體120接收TLP。此外,PCI/PCI-X可以透過PCIe至PCI/PCI-X橋170向根複合體120發送TLP或從根複合體120接收TLP。另外,PCIe端點150_1和150_2以及傳統端點160_1和160_2可以向交換機140發送TLP或從交換機140接收TLP。
圖2是示出根據本發明的實施例的PCIe裝置的示圖。
參照圖2,PCIe裝置可以包括PCIe介面並且是支援使用PCIe介面來發送和接收的電子裝置。例如,第一PCIe裝置200-1或第二PCIe裝置200-2可以包括圖1所示的根複合體120、交換機140、PCIe端點150_1至150_3、傳統端點160_1和160_2以及PCIe至PCI/PCI-X橋170中的一個。
另外,第一PCIe裝置200-1或第二PCIe裝置200-2可以分別使用第一PCIe介面210-1或第二PCIe介面210-2執行通信。更具體地,第一PCIe裝置200-1可以透過使用第一PCIe介面210-1將待從第二PCIe裝置200-2發送的資料轉換爲適合通信的協議。另外,第一PCIe裝置200-1和第二PCIe裝置200-2可以形成鏈路。第一PCIe裝置200-1和第二PCIe裝置200-2可以透過鏈路執行通信。例如,第一PCIe裝置200-1或第二PCIe裝置200-2可以透過鏈路發送或接收封包。
圖3是示出根據本公開的實施例的PCIe介面的示圖。
圖3示出圖2的第一PCIe介面210-1和第二PCIe介面210-2。第一PCIe介面210-1和第二PCIe介面210-2可以具有相同的結構。因此,以下對第一PCIe介面210-1的描述可以同樣適用於第二PCIe介面210-2。
第一PCIe介面210-1中包括的PCIe層可以包括三個離散的邏輯層。例如,第一PCIe介面210-1可以包括PCIe核211、事務層212、資料鏈路層213和實體層214。每個層(212、213和214)可以包括兩個區段。更具體地,一個區段TX可以處理出站(outbound)資訊(或待發送的資訊),而另一區段RX可以處理入站(inbound)資訊(或接收到的資訊)。另外,第一PCIe介面210-1可以使用封包與其他PCIe介面進行資訊通信。
PCIe核211可以控制整個第一PCIe介面210-1。更具體地,PCIe核211可以包括用於操作介面的軟體層。另外,PCIe核211可以將位址、事務類型和資料傳送到事務層212,或者可以從事務層212接收位址、事務類型和資料。
事務層212可以是PCIe介面的架構中的上層。事務層212可以彙集(assemble)或分解(disassemble)事務層封包(TLP)。另外,事務層212可以實施拆分事務,即,在目標系統彙集針對回應的資料的同時,允許其他流量傳輸到鏈路的事務。例如,事務層212可以實施請求和回應暫時彼此分開的事務。根據實施例,四個事務位址空間可以由配置位址空間、記憶體位址空間、輸入/輸出位址空間和訊息位址空間組成。記憶體空間事務可以包括讀取請求和寫入請求中的至少一個,讀取請求用於從記憶體映射位置傳輸資料/寫入請求用於向記憶體映射位置傳輸資料。根據實施例,記憶體空間事務可以使用兩種不同的位址格式,例如,諸如32位元位址的短位址格式或諸如64位元位址的長位址格式。配置空間事務可以被用於訪問PCIe裝置的配置空間。針對配置空間的事務可以包括讀取請求和寫入請求。可以定義訊息空間事務(或訊息)以支援PCIe裝置之間的帶內通信。
事務層212可以儲存從PCIe核211接收的鏈路配置資訊。另外,事務層212可以產生PCIe核211請求的TLP,或者可以將所接收到的TLP轉換爲有效載荷或狀態資訊。
PCIe介面架構中的中間層可以是資料鏈路層213。資料鏈路層213可以用作事務層212與實體層214之間的中間級(intermediate stage)。資料鏈路層213的主要功能可以包括鏈路管理和資料完整性,包括錯誤檢測和錯誤校正。更具體地,資料鏈路層213的發送側可以接收由事務層212彙集的TLP,應用資料保護碼,或者計算TLP序列號。另外,資料鏈路層213的發送側可以將資料保護碼和TLP序列號發送到實體層214。資料鏈路層213的接收側可以檢查從實體層214接收的TLP的完整性,並且將TLP發送到事務層212以進行進一步處理。
實體層214可以包括用於介面操作的電路。實體層214可以包括硬碟、輸入緩衝器、串並轉換電路、並串轉換電路、鎖相環(Phase Locked Loop, PLL)和阻抗匹配電路。
另外,實體層214可以包括用於將封包實體地發送到外部PCIe裝置的邏輯子塊和電氣子塊。邏輯子塊可以用於執行實體層214的“數位”功能。更具體地,邏輯子塊可以包括:發送區段,透過實體子塊準備發送資訊;以及接收區段,在將所接收的資訊傳遞到資料鏈路層213之前識別和準備所接收的資訊。實體層214可以包括發送器Tx和接收器Rx。發送器Tx可以接收由發送器序列化並由邏輯子塊發送到外部裝置的符號。另外,接收器Rx可以從外部裝置接收序列化符號並將接收到的信號轉換爲位元流。位元流可以被反序列化並被供應到邏輯子塊。換句話說,實體層214可以將從資料鏈路層213接收到的TLP轉換爲序列化格式,並且將從外部裝置接收到的封包轉換爲反序列化格式。另外,實體層214可以包括與介面初始化和維護相關的邏輯功能。
圖3例示了第一PCIe介面210-1和第二PCIe介面210-2的架構。然而,其他實施例中的PCIe介面的架構可以包括諸如以下的任意架構:快速路徑互連架構、下一代高性能計算互連架構或其他分層架構。
圖4是示出根據本公開的實施例的發送器、接收器和通路的示圖。
圖4示出了第一發送器TX1、第二發送器TX2、第一接收器RX1和第二接收器RX2。通路可以包括路徑,路徑包括差分驅動信號對,例如被配置成用於發送的發送路徑對以及被配置成用於接收的接收路徑對。PCIe裝置可以包括用於向另一PCIe裝置發送資料的發送邏輯和用於從另一PCIe裝置接收資料的接收邏輯。例如,PCIe裝置可以包括聯接到第一發送器TX1的兩個發送路徑和聯接到第一接收器RX1的兩個接收路徑。
發送路徑可以指用於資料發送的任意路徑,諸如傳輸線、銅線、無線通信信道、紅外通信鏈路或一個或者更多個其他通信路徑。另外,接收路徑可以以與發送路徑相同的方式實現,並且接收路徑可以被設置成用於接收。
兩個PCIe裝置(例如,圖2所示的第一PCIe裝置200-1和第二PCIe裝置200-2)之間的連接可以被稱爲鏈路。鏈路可以支援至少一個通路。另外,每個通路可以由一組差分信號對(一對用於發送,另一對用於接收)來指示。差分信號對可以指具有相同頻率和幅度但相位相反的兩個信號。例如,當第一信號具有從0切換到電壓電平V+的上升沿時,第二信號可以具有從0切換到電壓電平V-的下降沿。例如,PCIe裝置可以使用信號完整性(諸如交叉聯接、電壓過沖/下沖、振鈴的電氣特性),並且可以透過利用差分信號來更快地控制傳輸頻率。另外,PCIe裝置可以包括多個通路來控制帶寬。例如,兩個PCIe裝置可以形成由1、2、4、8、12、16或64個通路組成的鏈路。
圖5是示出根據本公開的實施例的埠的示圖。
如圖5所示,下游埠215-1和上游埠215-2可以分別包括在第一PCIe裝置200-1和第二PCIe裝置200-2中。根據實施例,與第二PCIe裝置200-2相比,第一PCIe裝置200-1可以是上層。資料移動和傳送到上層可以被稱爲“上游”。另一方面,資料移動和傳送到下層可以被稱爲“下游”。例如,參照圖1,交換機140可以支援下游和上游路由。更具體地,上游可以指從PCIe端點(例如,150_1)向上一層級路由到根複合體120,並且下游可以指遠離根複合體120向下一層級路由到PCIe端點(例如,150_2)。
下游埠215-1和上游埠215-2中的每一個可以包括發送器Tx、接收器Rx和鎖相環(PLL)電路。PLL電路可以透過倍增(multiply)從時脈信號產生器CLK GEN提供的信號來產生待供應到發送器Tx或接收器Rx的時脈信號。PLL電路可以倍增從時脈信號產生器CLK GEN接收的信號以產生具有改變頻率的時脈信號。例如,PLL電路可以倍增具有100MHz頻率的參考時脈信號REFCLK以産生具有2.5GHz頻率的時脈信號。發送器Tx可以透過使用PLL電路的輸出信號來將並行資料信號轉換爲串行資料信號,並且可以將串行資料信號發送到例如外部PCIe裝置的外部裝置。接收器Rx可以接收從外部裝置發送的串行資料信號,以透過使用PLL電路的輸出信號來產生用於恢復所接收的串行資料信號的時脈信號和用於將所恢復的串行資料信號轉換爲並行資料信號的時脈信號。時脈信號產生器CLK GEN可以產生在PCIe介面的操作中使用的參考時脈信號REFCLK。PCIe介面的操作可以對應於與外部PCIe裝置的通信。
圖6是示出根據本公開的實施例的PCIe裝置的鏈路狀態的示圖。
如圖6所示,PCIe裝置的鏈路狀態可以包括檢測、輪詢、配置、熱重置、禁能和L0狀態。
檢測狀態可以指在通電或重置之後的初始狀態。檢測狀態可以從將在下面待描述的狀態進入。例如,檢測狀態可以從配置狀態、熱重置狀態、禁能狀態、L2狀態、回環(loopback)狀態和恢復狀態進入。在檢測狀態下,可以重置所有邏輯、埠和暫存器,並且可以檢測聯接到PCIe介面的鏈路。換句話說,處於檢測狀態的PCIe裝置可以搜尋實體地聯接的通路。
在輪詢狀態下,可以將啓用資料通信的通路與所檢測到的通路區分開。在輪詢狀態下,例如可以同步PCIe介面兩端的時脈並且可以確認通路的極性是D+還是D-。另外,可以檢查可用於通路的資料傳輸速度。換句話說,在輪詢狀態下,可以檢查極性反轉。另外,處於輪詢狀態的鏈路可以進入檢測狀態或配置狀態。
在配置狀態下,可以檢查通路的連接狀態。更具體地,在配置狀態下,可以確定啓用資料通信的通路寬度。另外,在配置狀態下,可以檢查通路反向。配置狀態可以從輪詢狀態進入。然而,可選地,在進入L0狀態之後,在通路减少或通路寬度增加的情况下可以進入配置狀態。
恢復狀態可以用於重新配置鏈路帶寬。在恢復狀態下,可以改變設置鏈路的鏈路帶寬,並且可以重置位元鎖定、符號鎖定以及通路對齊(lane-to-lane de-skew)。當L0狀態發生錯誤時,可以進入恢復狀態。之後,在恢復狀態中恢復錯誤之後,狀態可以改變爲L0狀態。另外,根據實施例,在恢復狀態下,可以執行鏈路的均衡操作。
L0狀態可以是透過鏈路發送和接收資料以及封包的正常操作狀態。更具體地,L0狀態可以是發送和接收資料和控制封包的實體匯流排介面的操作狀態。L0狀態可以是完全啟動狀態。
L0s狀態可以指實體匯流排介面可以快速從節電狀態進入並在不經恢復狀態的情况下從節電狀態中恢復的狀態。L0s狀態可以是省電狀態。L0s狀態可以指介面中的一些功能的空閒狀態或待機狀態。
L1狀態可以爲省電狀態。L1狀態可以指允許比L0s狀態更加省電的省電狀態。L1狀態可以是低功率待機狀態。
L2狀態可以是大力節省電力的省電狀態。大多數發送器和接收器都可以被關閉。雖然不保證提供主電源和時脈,但可以提供輔助電源。L2狀態可以是不向大多數功能供應電力的低功率睡眠狀態。
回環狀態可以旨在使用測試和故障隔離。回環狀態可以基於每個通路來進行操作,並且必須選擇和配置回環接收通路。
禁能狀態可以是允許禁能設置鏈路直到被指示的狀態。熱重置狀態僅可以由下游埠觸發。下游埠可以使用訓練序列(例如,TS1或TS2)來傳播熱重置。訓練序列TS可以由用於初始化位元對齊、符號對齊並且用於實體層參數交換的有序集組成。
圖7是示出根據本公開的實施例的均衡操作的示圖。
可以執行均衡操作來調整每個通路的發送器設置和接收器設置以提高所發送和所接收的信號的質量,並且滿足特定要求。換句話說,與鏈路訓練和狀態機(Link Training & Status State Machine, LTSSM)相關的每個通路都可以執行均衡操作。另外,均衡操作可以由PCIe介面自主執行,也可以由主機控制。均衡操作可以以較低資料速率完成,並且然後可以以較高資料速率執行。然而,可以在特定資料速率下跳過均衡操作,並且上游埠和下游埠可以透過使用TS1或TS2來通告跳過均衡操作的特定資料速率。
參照圖7,上游埠和下游埠可以執行由多達四個階段組成的均衡操作。均衡操作可以由第零階段Phase 0至第三階段Phase 3組成。另外,均衡操作可以由實體層執行。
第零階段Phase 0可以指在確定了執行均衡操作的資料速率時執行的階段。例如,當確定資料速率從2.5GT/s變爲8.0GT/s時,下游埠和上游埠可以發送和接收TS2有序集(Ordered Set, OS)。更具體地,下游埠可以透過使用Recovery.RcvrCfg中的TS2 OS將經8b/10b編碼或128b/130b編碼的每個通路的發送器預設值和接收器預設值傳送到上游埠。例如,當以8.0GT/s執行均衡操作時,TS2 OS中可以包括關於每個通路的上游埠的8.0GT/s發送器預設值和8.0GT/s接收器預設值的資訊。另外,上游埠可以發送具有接收到的預設值的TS1 OS。當執行均衡操作時,可以使用TS1 OS的均衡控制(Equalization Control, EC)字段來發送指示均衡的階段的階段資訊。例如,在第零階段Phase 0中,可以透過交換EC字段爲“00”的TS1 OS來交換階段資訊。
在第一階段Phase 1,下游埠和上游埠可以交換TS1 OS以執行發送器/接收器對的微調。換句話說,下游埠和上游埠可以交換TS1 OS以設置操作鏈路。更具體地,下游埠可以透過發送EC字段爲“01”的TS1 OS來初始化第一階段。在調整接收器之後,如果需要,則上游埠可以接收TS1 OS並過渡到第一階段。另外,上游埠可以發送EC字段爲“01”的TS1 OS。當下游埠在下游埠進入第二階段之前從上游埠接收到EC字段爲“01”的TS1 OS時,下游埠可以確保下游埠可以可靠地從上游埠接收位元流以繼續透過其餘階段。
在第二階段Phase 2,上游埠可以調整下游埠的發送器設置以及其接收器設置。換句話說,上游埠可以請求下游埠設置發送器的係數和預設設置,以確保上游埠可以可靠地接收符合特定要求的位元流。例如,上游埠可以調整上游埠的接收器設置並請求下游埠的發送器設置,以使每個通路的位元錯誤率(Bit Error Rate, BER)可以小於10 -12
下游埠可以透過向上游埠發送EC字段爲“10”的TS1 OS來初始化第二階段。下游埠可以向上游埠提供關於下游埠的發送器係數和預設設置的資訊。另外,上游埠可以從下游埠接收關於下游埠的發送器係數和預設設置的資訊,並可以請求改變下游埠的發送器係數或預設設置。另外,上游埠可以繼續評估每個設置,直到上游埠在有限的時間內達到操作下游通路的最佳設置。另外,在上游埠完成第二階段之後,上游埠可以透過向下游埠發送EC字段爲“11”的TS1 OS來進行到第三階段。
在第三階段Phase 3,下游埠可以調整上游埠的發送器設置。換句話說,下游埠可以請求上游埠來設置上游埠的發送器係數和預設設置,以便傳入鏈路符合特定要求。
下游埠可以從上游埠接收關於上游埠的發送器係數和預設設置的資訊,並可以請求上游埠的發送器係數或預設設置。另外,下游埠可以繼續評估每個設置,直到下游埠在有限的時間內達到操作上游通路的最佳設置。另外,在下游埠完成第三階段之後,下游埠可以向上游埠發送EC字段爲“00”的TS1 OS,以通知均衡操作終止。
在均衡操作完成之後,鏈路狀態可以從Recovery.RcvrLock、Recovery.RcvrCfg、Recovery.Idle轉變到L0狀態。將參照圖8對此進行詳細地描述。
圖8是示出根據本公開的實施例的在均衡操作期間的鏈路狀態改變的示圖。
圖8示出鏈路狀態從Gen1 L0狀態轉變到Gen3 L0狀態。Gen1和Gen3各自可以是在上游埠或下游埠中操作的單個模式並且可以包括不同的資料速率。如上面參照圖7所述,可以隨著資料速率的變化來執行均衡操作。上游埠和下游埠的鏈路狀態可以透過將TS1 OS從資料速率從Gen1 L0狀態改變爲Gen1 Recovery.Lock狀態的埠發送到對端埠來進入恢復狀態。Gen1 L0可以指正常發送或接收資料和控制封包的狀態。因此,接收處於Gen1 Recovery.Lock狀態的TS1 OS的埠可以被視爲在最終資料流結束之後獲得塊對齊(block alignment)。然後,可以進入Gen1 Recovery.CFG狀態。在Gen1 Recovery.CFG狀態下,配置鏈路的所有通路的接收器可以依次接收8個TS1 OS或TS2 OS。另外,當在Gen1 Recovery.CFG狀態下接收的TS1 OS或TS2 OS中設置指示資料速率改變的速度改變位元時,下游埠和上游埠可以在Recovery.Speed狀態下改變資料速率。圖8示出了從Gen1到Gen3的資料速率改變。然而,還可以適用於從Gen3改變爲Gen4或者從Gen1改變爲Gen5。另外,鏈路狀態可以進入Gen3 Recovery.Lock和Gen3 Recovery.EQ phase0,1。Gen3 Recovery.EQ phase0,1狀態可以與圖7所示的第零階段Phase 0和第一階段Phase 1相同。在Gen3 Recovery.EQ phase0,1狀態下,下游埠和上游埠可以交換全擺幅(Full Swing, FS)和低頻(Low Frequency, LF)。另外,下游埠和上游埠可以根據Gen3 Recovery.EQ Phase2狀態和Gen3 Recovery.EQ Phase3狀態下的FS和LF值掃描(sweep)EQ係數。Gen3 Recovery.EQ Phase2狀態最多可以保持24ms。24ms的有限時間可能不足以滿足具有10 -12以下的位元錯誤率的情形。
圖9是示出根據本公開的實施例的EQ係數的示圖。
圖9示出了包括前標(pre-cursor)、主標(cursor)和後標(post-cursor)的EQ係數的曲線圖。在圖9中,C-1和C+1可以是FIR方程式中使用的係數,並且分別表示前標和後標。在TS1 OS中通信的前標值和後標值可以表示其絕對值。另外,C0可以表示主標係數設置並且可以具有正值。另外,係數的絕對值的總和可以定義FS。換句話說,FS可以滿足下面的[方程式2]。另外,可以在第一階段將FS發送到鏈路夥伴(例如,對端埠)。此外,FS針對全擺幅模式可以具有從24到63的值,並且針對减小的擺幅模式可以具有從12到63的值。發送器可以在第一階段期間通告LF值。LF值可以與由發送器產生的最小差分電壓相對應,該最小差分電壓是將LF/FS乘以發送器的最大差分電壓而獲得的。發送器可以滿足V TX-EIEOS-FS和V TX-EIEOS-RS的特定要求。發送器必須確保當下面的[方程式3]等於LF時,發送器必須滿足V TX-EIEOS-FS和VT X-EIEOS-RS的特定要求。發送器可以請求鏈路夥伴(例如,對端埠)發送器的一組係數。另外,在向鏈路夥伴(例如,對端埠)發送器請求一組係數之前,可以滿足以下方程式。在接收到TX係數設置的更新請求時,埠可以驗證更新請求是否滿足以下方程式,並且如果不滿足任何方程式,則拒絕更新請求:
[方程式1] |C-1| ≤ Floor (FS/4)
[方程式2] |C-1|+C0+|C+1| = FS
[方程式3] C0 -|C-1|-|C+1| ≥ LF
根據實施例,透過將前標、主標和後標的值分別乘以前標係數、主標係數和後標係數可以得到圖9所示的EQ係數。在輸出時,透過聯接後標可以獲得如圖9所示的“去加重(de-emphasis)”效果,並且在差分信號中可以産生顯著的“去加重”效果。另外,在輸出時,透過聯接前標可以獲得如圖9所示的“預沖(pre-shoot)”效果,當降低電壓時可以表現顯著的電壓變化。
圖10是示出根據相關技術的操作執行均衡操作的PCIe介面的方法的示圖。
圖10示出了隨時間來執行的均衡操作。如上面參照圖7和圖8所述,在均衡操作中上游埠和下游埠的鏈路狀態可以包括Rcvr.Speed狀態、EQ Phase2狀態和EQ Phase3狀態。另外,因爲資料速率已經被改變,所以Rcvr.Speed狀態可能不穩定。因此,在Rcvr.Speed狀態下的均衡操作的可靠性可能降低。另外,在EQ Phase2狀態下,上游埠可以在長達24ms的持續時間內確定下游埠的TX係數。更具體地,上游埠可以是聯接到PCIe計算系統的PCIe端點。從PCIe端點的角度來看,包括信道長度的實體特性可以在平臺至所連接的平臺之間變化,或在插槽至插槽之間變化。另外,均衡操作可以經歷尋找合適的均衡操作的過程和確定EQ係數的過程。即使最佳EQ係數被確定,如果鏈路被重置(例如,熱重置、冷重置或溫重置),也仍可以再次搜尋和確定EQ係數。換句話說,每次執行的均衡操作可以與先前執行的均衡操作不連續地執行。因此,即使鏈路接通到先前EQ係數,在後續均衡操作中也仍可能無法確保最佳EQ係數。EQ係數可以包括TX係數和RX係數。
在EQ Phase3狀態下,可以設置PCIe計算系統中所連接的PCIe端點的TX係數。因爲PCIe計算系統知悉PCIe計算系統的實體特性,包括信道特性,所以Phase3狀態下的均衡操作可能不重要。
圖11是示出根據本公開的實施例的操作執行均衡操作的PCIe介面的方法的示圖。
圖11示出了隨時間來執行的均衡操作。PCIe介面可以將與多個通路中的每一個相對應的錯誤資訊和EQ係數儲存在EQ係數表中。當假設在第一時間t1第一次執行均衡操作時,可以不在第一時間t1將與多個通路中的每一個相對應的錯誤資訊和EQ係數儲存在EQ係數表中。另外,在第二時間t2,可以將關於在L0狀態或鏈路接通狀態中發生的錯誤的資訊或者關於在均衡操作期間發生的錯誤的資訊儲存在EQ係數表中。類似於第二時間t2,可以在第三時間t3和第四時間t4儲存錯誤資訊。
由於均衡操作被重複,因此PCIe介面可以識別最佳EQ係數資訊。更具體地,PCIe介面可以基於日誌資訊和錯誤資訊來確定最終的最佳EQ係數,日誌資訊指示嘗試均衡操作的數量,錯誤資訊是關於根據每個通路和EQ係數的在L0狀態或鏈路接通狀態下發生的錯誤。PCIe介面可以透過使用EQ係數表中與包括最小錯誤資訊的EQ係數相鄰的EQ係數來執行均衡,以確定有效的最終EQ係數。根據本公開的實施例,即使在執行鏈路重置時,PCIe介面也可以確定最終EQ係數並且保持所確定的最終EQ係數。
圖12是示出根據本公開的實施例的EQ係數表的示圖。
圖12示出了根據EQ係數來排列的EQ係數表。EQ係數表可以包括關於前標、主標和後標的值。更具體地,EQ係數可以由前標、主標和後標的組合組成。EQ係數表可以包括滿足[方程式1]、[方程式2]和[方程式3]的關於前標、主標和後標的值。圖12是示出全擺幅(FS)值爲32、低頻(LF)值爲10的示例的示圖。然而,FS值和LF值在實施時可以改變。
EQ係數表可以根據聯接到PCIe系統裝置的多個通路中的每一個來儲存錯誤資訊。更具體地,EQ係數表可以累積和儲存在L0狀態或鏈路接通狀態中發生的錯誤。錯誤可以包括訓練序列錯誤、有序集(OS)錯誤、接收器(Receiver, RX)錯誤、解碼錯誤、同步報頭錯誤和成幀錯誤中的至少一個。另外,EQ係數表可以儲存指示根據多個通路中的每一個計算的通路容限的容限資訊。更具體地,可以儲存關於接收器Rx的高度和寬度的容限。根據實施例,PCIe系統裝置可以透過錯誤採樣器來記錄接收器Rx的容限。
根據實施例,EQ係數表可以透過使用所儲存的錯誤資訊來有效地確定最終EQ係數。更具體地,PCIe介面裝置可以透過使用錯誤資訊,根據每個EQ係數來瞭解關於在L0狀態或鏈路接通狀態中發生的錯誤的資訊。另外,PCIe介面裝置可以透過使用在EQ係數表中的與包括最小錯誤資訊的EQ係數相鄰的EQ係數來執行均衡,以確定有效的最終EQ係數。
圖13是示出根據本公開的實施例的PCIe介面的配置的示圖。
圖13示出了PCIe介面裝置1000和外部裝置200。例如,外部裝置200可以是如圖1所示的根複合體10、交換機140、PCIe端點150_1至150_3、傳統端點160_1和160_2以及PCIe至PCI/PCI-X橋170中的一個。外部裝置200和PCIe介面裝置1000可以使用支援PCIe協議的PCIe介面來執行通信。更具體地,外部裝置200和PCIe介面裝置1000可以形成鏈路並透過所形成的鏈路來執行通信。例如,外部裝置200和PCIe介面裝置1000可以透過鏈路來發送或接收封包。鏈路可以包括多個通路。
PCIe介面裝置1000可以包括EQ資訊儲存裝置1100、EQ控制器1200和上游埠1300。
EQ資訊儲存裝置1100可以包括日誌資訊和錯誤資訊。日誌資訊可以指示針對包括發送器係數或接收器係數的EQ係數中的每一個的均衡操作的嘗試數量。根據實施例,EQ資訊儲存裝置1100可以儲存關於在多個通路中的每一個中發生的錯誤的錯誤資訊。錯誤可以包括訓練序列錯誤、有序集(OS)錯誤、接收器(RX)錯誤、解碼錯誤、同步報頭錯誤和成幀錯誤中的至少一個。
根據實施例,EQ資訊儲存裝置1100可以被實現爲在鏈路重置(例如,冷重置、暖重置或熱重置)的情况下儲存日誌資訊或錯誤資訊的非揮發性記憶體裝置。另外,根據實施例,EQ資訊儲存裝置1100可以儲存在EQ係數之中預先設置的預設組合。
根據實施例,EQ資訊儲存裝置1100可以儲存指示根據多個通路中的每一個計算的通路容限的容限資訊。根據實施例,EQ資訊儲存裝置1100可以儲存包括全擺幅(FS)值或低頻(LF)值的埠資訊。
EQ控制器1200可以控制PCIe介面裝置1000的一般操作以執行確定多個通路中的每一個的發送器設置或接收器設置的均衡操作。根據實施例,EQ控制器1200可以基於日誌資訊和錯誤資訊來確定最終EQ係數。根據實施例,當針對預先設置的預設組合的均衡操作的嘗試數量超過第一閾值數量時,EQ控制器1200可以將EQ係數之中的一個係數確定爲最終EQ係數。根據實施例,當針對預先設置的預設組合的均衡操作的嘗試數量超過第二閾值數量時,EQ控制器1200可以基於錯誤資訊來確定最終EQ係數。根據實施例,當與在L0狀態的單位時間內發生最少錯誤的三個EQ係數中的每一個相對應的均衡操作的嘗試數量超過第三閾值數量時,EQ控制器1200可以將三個EQ係數中的一個確定爲最終EQ係數。
根據實施例,當與PCIe介面裝置聯接的鏈路重置時,EQ控制器1200可以基於包括FS值或LF值的埠資訊來確定在重置鏈路之前是否已經執行針對外部裝置的均衡操作。根據實施例,當在L0狀態的單位時間內發生的錯誤數量超過閾值錯誤值時,EQ控制器1200可以控制PCIe介面裝置以執行用於重置多個通路中的每一個的發送器設置或接收器設置的重新均衡操作。
圖14是示出根據本公開的實施例的操作PCIe介面的方法的示圖。
在圖14中,依次示出了操作PCIe介面的方法。更具體地,PCIe介面可以透過包括多個通路的鏈路聯接到外部裝置。另外,PCIe介面可以執行均衡操作以確定多個通路中的每一個的發送器設置或接收器設置。當在步驟S1410進入均衡操作時,PCIe介面可以確定實體聯接的鏈路是否連接到新埠。換句話說,可以確定先前是否已經對聯接到PCIe介面的外部裝置執行均衡操作。PCIe介面可以基於包括配置讀取/寫入位址順序、全擺幅(FS)值、低頻(LF)值、重新計時器的存在、重新計時器的數量和匯流排編號的埠資訊來確定外部裝置是否是首先聯接到PCIe介面的新埠。
另外,當外部裝置是首先聯接到PCIe介面的新埠時(步驟S1410爲是),可以在步驟S1415中改變關於聯接到PCIe介面的埠的資訊。更具體地,PCIe介面可以基於埠資訊來管理日誌資訊或錯誤率(ER)。根據實施例,當聯接到PCIe介面的外部裝置被確定爲新埠時,可以删除現有記錄的埠資訊。
另外,當外部裝置不是聯接到PCIe介面的新埠時(步驟S1410爲否),PCIe介面可以在步驟S1420中基於埠資訊來確定是否儲存日誌資訊。另外,日誌資訊可以指示針對EQ係數中的每一個的對多個通路測試均衡操作的數量。
當PCIe介面中沒有儲存日誌資訊時(步驟S1420爲否),PCIe介面可以在步驟S1425中將EQ係數確定爲預設組合。EQ係數可以由前標、主標和後標的組合組成。另外,在步驟S1440中,PCIe介面可以根據預設組合來執行鏈路接通。
當將日誌資訊儲存在PCIe介面中時(步驟S1420中爲是),PCIe介面可以在步驟S1430中基於PCIe介面中儲存的日誌資訊來確定EQ係數或組合以測試均衡操作。下面參照圖15詳細描述確定EQ係數或組合的方法。
另外,在步驟S1440中,PCIe介面可以根據所確定的EQ係數或組合來執行鏈路接通。在步驟S1450中,PCIe介面可以儲存與所確定的EQ係數相對應的日誌資訊以及關於在鏈路接通狀態中發生的錯誤的資訊。錯誤可以包括訓練序列錯誤、有序集(OS)錯誤、接收器(RX)錯誤、解碼錯誤、同步報頭錯誤和成幀錯誤中的至少一個。另外,PCIe介面可以儲存關於多個通路中的每一個中發生的錯誤的錯誤資訊。
根據實施例,PCIe介面可以儲存指示根據多個通路中的每一個計算的通路容限的容限資訊。根據實施例,PCIe介面可以基於日誌資訊和錯誤資訊來確定最終EQ係數。根據實施例,當針對預先設置的預設組合的均衡操作的測試數量超過第一閾值數量時,PCIe介面可以將EQ係數之中的一個係數確定爲最終EQ係數。第一閾值數可以是10(十),並且透過重複實驗來恰當地計算。根據實施例,當針對所有EQ係數的均衡操作的測試數量超過第二閾值數量時,PCIe介面可以基於錯誤資訊來確定最終EQ係數。第二閾值數可以是10(十),並且透過重複實驗來恰當地計算。根據實施例,當與在鏈路接通狀態的單位時間內發生最少錯誤的三個EQ係數中的每一個相對應的均衡操作的測試數量超過第三閾值數量時,PCIe介面可以將三個EQ係數中的一個確定爲最終EQ係數。第三閾值數可以是20(二十)至30(三十),並且透過重複實驗來恰當地計算。
在步驟S1460中,PCIe介面可以確定在鏈路接通狀態下的單位時間內發生的錯誤的數量是否超過閾值錯誤值。另外,當在單位時間內發生的錯誤的數量超過閾值錯誤值時(步驟S1460中爲是),可以在步驟S1470中執行用於重置EQ係數的重新均衡操作。
圖15是示出根據本公開的實施例的如何基於所儲存的日誌資訊來確定EQ係數的示圖。
參照圖15,當將日誌資訊儲存在PCIe介面中時(圖14的步驟S1420中爲是),PCIe介面可以基於PCIe介面中儲存的日誌資訊來確定EQ係數或組合以測試均衡操作。
更具體地,當日誌資訊儲存在PCIe介面中時,PCIe介面可以在步驟S1421中,確定在EQ係數或組合之中對預先設置的預設組合的均衡操作的嘗試數量n preset是否超過第一閾值數量n th1
另外,當對預先設置的預設組合的均衡操作的嘗試數量未超過第一閾值數量時(步驟S1421中爲否),PCIe介面可以在步驟S1422中將EQ係數之中的預設組合確定爲用於嘗試均衡操作的組合。
此外,當對預先設定的預設組合的均衡操作的嘗試數量超過第一閾值數量時(步驟S1421爲是),PCIe介面可以在步驟S1423中確定針對所有EQ係數的均衡操作的嘗試數量n coef是否超過第二閾值數量n th2
當針對所有EQ係數的均衡操作的嘗試數量n coef未超過第二閾值數量n th2時(步驟S1423爲“否”),PCIe介面可以在步驟S1424中將所有EQ係數之中均衡操作的嘗試數量較少或頻率低的組合準備爲或確定爲用於執行均衡操作的EQ係數。
另外,當針對所有EQ係數的均衡操作的嘗試數量n coef超過第二閾值數量n th2時(步驟S1423中爲是),PCIe介面可以在步驟S1425中確定針對具有最小錯誤率的三個EQ係數中的每一個的均衡操作的嘗試數量n m_ER是否超過第三閾值數量n th3
當針對具有最小錯誤率的三個EQ係數中的每一個的均衡操作的嘗試數量n m_ER未超過第三閾值數量n th3時(步驟S1425爲“否”),PCIe介面可以在步驟S1426中準備包括具有最小錯誤率的三個EQ係數的組合以針對EQ係數和該組合執行均衡操作。
另一方面,當針對具有最小錯誤率的三個EQ係數中的每一個的均衡操作的嘗試數量n m_ER超過第三閾值數量n th3時(步驟S1425中爲是),PCIe介面可以在步驟S1427中將具有最小錯誤率的一個EQ係數準備爲組合以執行均衡操作。
根據實施例,PCIe介面可以將滿足所有步驟S1421、S1423和S1425的最佳EQ係數確定爲最終EQ係數。
根據本公開,可以提供一種執行改進的PCIe均衡操作的PCIe介面及其操作方法。
在上述實施例中,可以選擇性地執行或跳過所有步驟。另外,每個實施例中的步驟可能並不總是按規律的順序執行。此外,本說明書和圖式中公開的實施例旨在幫助本發明所屬技術領域中具有通常知識者更清楚地理解本公開,而非旨在限制本公開的範圍。換句話說,本發明所屬技術領域中具有通常知識者將能夠容易地理解的是,基於本公開的技術範圍,可以進行各種修改。對於本發明所屬技術領域中具有通常知識者將顯而易見的是,在不脫離本發明的精神或範圍的情况下,可以對本公開的上述示例性實施例進行各種修改。因此,本公開旨在涵蓋所有這些修改,只要它們落在所附申請專利範圍及其等同方案的範圍內即可。
100:系統 110:CPU 120:根複合體 130:記憶體 140:交換機 150_1:端點 150_2:端點 150_3:端點 160_1:端點 160_2:端點 170:橋 200:裝置 200_1:裝置 200_2:裝置 210_1:介面 210_2:介面 211:核 212:層 213:層 214:層 215_1:埠 215_2:埠 1000:裝置 1100:裝置 1200:控制器 1300:埠 CLK GEN:信號產生器 CPU:中央處理單元 EQ:係數 L0:狀態 L0s:狀態 L1:狀態 L2:狀態 PLL:鎖相環 Rx:接收器 RX1:接收器 RX2:接收器 S1410:步驟 S1415:步驟 S1420:步驟 S1421:步驟 S1422:步驟 S1423:步驟 S1424:步驟 S1425:步驟 S1426:步驟 S1427:步驟 S1430:步驟 S1440:步驟 S1450:步驟 S1460:步驟 S1470:步驟 t1:時間 t2:時間 t3:時間 t4:時間 t5:時間 Tx:發送器 TX1:發送器 TX2:發送器
[001]               圖1是示出根據本公開的實施例的PCIe計算系統的示圖。 [002]               圖2是示出根據本公開的實施例的PCIe裝置的示圖。 [003]               圖3是示出根據本公開的實施例的PCIe介面的示圖。 [004]               圖4是示出根據本公開的實施例的發送器、接收器和通路的示圖。 [005]               圖5是示出根據本公開的實施例的埠的示圖。 [006]               圖6是示出根據本公開的實施例的PCIe裝置的鏈路狀態的示圖。 [007]               圖7是示出根據本公開的實施例的均衡操作的示圖。 [008]               圖8是示出根據本公開的實施例的在均衡操作期間的鏈路狀態改變的示圖。 [009]               圖9是示出根據本公開的實施例的EQ係數的示圖。 [0010]           圖10是示出根據相關技術的操作執行均衡操作的PCIe介面的方法的示圖。 [0011]           圖11是示出根據本公開的實施例的操作執行均衡操作的PCIe介面的方法的示圖。 [0012]           圖12是示出根據本公開的實施例的EQ係數表的示圖。 [0013]           圖13是示出根據本公開的實施例的PCIe介面的配置的示圖。 [0014]           圖14是示出根據本公開的實施例的操作PCIe介面的方法的示圖。 [0015]           圖15是示出根據本公開的實施例的如何基於所儲存的日誌資訊來確定EQ係數的示圖。
EQ:係數
L0:狀態
t1:時間
t2:時間
t3:時間
t4:時間
t5:時間

Claims (20)

  1. 一種快捷週邊組件互連介面裝置即PCIe介面裝置,所述PCIe介面裝置透過鏈路聯接到外部裝置,所述鏈路包括多個通路,所述PCIe介面裝置包括: 均衡器控制器即EQ控制器,控制所述PCIe介面裝置執行均衡操作,所述均衡操作用於確定所述多個通路中的每一個的發送器設置或接收器設置;以及 EQ資訊儲存裝置,儲存日誌資訊和錯誤資訊,所述日誌資訊指示針對多個EQ係數中的每一個的均衡操作的嘗試數量,所述錯誤資訊是關於針對所述多個EQ係數中的每一個的在L0狀態中發生的錯誤,所述多個EQ係數包括發送器係數或接收器係數, 其中所述EQ控制器使用所述日誌資訊和所述錯誤資訊來確定最終EQ係數。
  2. 如請求項1所述的PCIe介面裝置,其中所述錯誤包括訓練序列錯誤、有序集錯誤即OS錯誤、接收器錯誤即RX錯誤、解碼錯誤、同步報頭錯誤和成幀錯誤中的至少一個。
  3. 如請求項2所述的PCIe介面裝置,其中所述EQ資訊儲存裝置儲存關於在多個通路中的每一個中發生的錯誤的錯誤資訊。
  4. 如請求項1所述的PCIe介面裝置,其中所述EQ資訊儲存裝置儲存指示針對所述多個通路中的每一個計算的通路容限的容限資訊。
  5. 如請求項1所述的PCIe介面裝置,其中所述多個EQ係數中的每一個包括前標、主標和後標的組合。
  6. 如請求項1所述的PCIe介面裝置,其中當針對預設組合的均衡操作的嘗試數量超過針對所述多個EQ係數的第一閾值數量時,所述EQ控制器使用所述日誌資訊來確定所述最終EQ係數。
  7. 如請求項1所述的PCIe介面裝置,其中當針對所述多個EQ係數的均衡操作的嘗試數量超過第二閾值數量時,所述EQ控制器使用所述錯誤資訊來確定所述最終EQ係數。
  8. 如請求項1所述的PCIe介面裝置,其中當與三個EQ係數中的每一個相對應的均衡操作的嘗試數量超過第三閾值數量時,所述EQ控制器從在所述L0狀態的單位時間內發生最少錯誤的所述多個EQ係數之中確定所述三個EQ係數中的一個作爲所述最終EQ係數。
  9. 如請求項1所述的PCIe介面裝置,其中當聯接到所述PCIe介面裝置的所述鏈路重置時,所述EQ控制器使用埠資訊來確定在所述鏈路重置之前是否對所述外部裝置執行所述均衡操作,所述埠資訊包括全擺幅值即FS值或低頻值即LF值。
  10. 如請求項1所述的PCIe介面裝置,其中當在所述L0狀態的單位時間內發生的錯誤的數量超過閾值錯誤值時,所述EQ控制器控制所述PCIe介面裝置執行重新均衡操作,所述重新均衡操作用於重置所述多個通路中的每一個的所述發送器設置或所述接收器設置。
  11. 一種操作快捷週邊組件互連(PCIe)介面裝置的方法,所述PCIe介面裝置透過包括多個通路的鏈路聯接到外部裝置,所述方法包括: 確定是否存在日誌資訊,所述日誌資訊指示針對多個均衡器係數,即EQ係數中的每一個的對所述多個通路測試均衡操作的次數; 當存在所述日誌資訊時,使用所述日誌資訊確定EQ係數來測試所述均衡操作; 根據所確定的EQ係數來執行鏈路接通;並且 儲存與所確定的EQ係數相對應的日誌資訊以及關於鏈路接通狀態下發生的錯誤的錯誤資訊。
  12. 如請求項11所述的方法,其中所述錯誤包括訓練序列錯誤、有序集錯誤即OS錯誤、接收器錯誤即RX錯誤、解碼錯誤、同步報頭錯誤和成幀錯誤中的至少一個。
  13. 如請求項12所述的方法,其中儲存所述錯誤資訊包括:儲存關於在所述多個通路中的每一個中發生的錯誤的錯誤資訊。
  14. 如請求項11所述的方法,進一步包括:儲存指示針對所述多個通路中的每一個計算的通路容限的容限資訊。
  15. 如請求項11所述的方法,其中所述EQ係數包括前標、主標和後標的組合。
  16. 如請求項11所述的方法,進一步包括:使用所述日誌資訊和所述錯誤資訊來確定最終EQ係數。
  17. 如請求項16所述的方法,其中確定所述最終EQ係數包括:從所述日誌資訊指示針對預設組合測試所述均衡操作的次數超過第一閾值數量的所述多個EQ係數之中選擇至少一個。
  18. 如請求項16所述的方法,其中確定所述最終EQ係數包括:當針對所述多個EQ係數測試所述均衡操作的次數超過第二閾值數量時,使用所述錯誤資訊來選擇所述最終EQ係數。
  19. 如請求項16所述的方法,其中確定所述最終EQ係數包括:當與三個EQ係數中的每一個相對應的所述均衡操作的測試數量超過第三閾值數量時,從在所述鏈路接通狀態的單位時間內發生最少錯誤的所述多個EQ係數之中確定所述三個EQ係數中的一個作爲所述最終EQ係數。
  20. 如請求項11所述的方法,進一步包括:當在所述鏈路接通狀態的單位時間內發生的錯誤的數量超過閾值錯誤值時,重置所述多個EQ係數。
TW111119073A 2021-05-25 2022-05-23 快捷週邊組件互連介面裝置及其操作方法 TW202246993A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210067203A KR102559387B1 (ko) 2021-05-25 2021-05-25 PCIe 인터페이스 장치 및 그 동작 방법
KR10-2021-0067203 2021-05-25

Publications (1)

Publication Number Publication Date
TW202246993A true TW202246993A (zh) 2022-12-01

Family

ID=83547307

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111119073A TW202246993A (zh) 2021-05-25 2022-05-23 快捷週邊組件互連介面裝置及其操作方法

Country Status (4)

Country Link
US (1) US11467909B1 (zh)
KR (1) KR102559387B1 (zh)
CN (1) CN115391262A (zh)
TW (1) TW202246993A (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102635457B1 (ko) 2021-05-24 2024-02-13 에스케이하이닉스 주식회사 PCIe 장치 및 이를 포함하는 컴퓨팅 시스템
US11960367B2 (en) 2021-05-24 2024-04-16 SK Hynix Inc. Peripheral component interconnect express device and operating method thereof
JP7381519B2 (ja) * 2021-06-09 2023-11-15 アンリツ株式会社 誤り率測定装置および誤り率測定方法
KR20230071479A (ko) * 2021-11-16 2023-05-23 에스케이하이닉스 주식회사 반도체 시스템 및 반도체 시스템의 동작 방법
CN116932450B (zh) * 2023-09-15 2023-11-24 厦门电科星拓科技有限公司 PCIe Retimer系统时钟架构及其工作方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8645746B2 (en) 2010-12-03 2014-02-04 International Business Machines Corporation Cable redundancy and failover for multi-lane PCI express IO interconnections
US9424226B1 (en) * 2012-10-25 2016-08-23 Qlogic, Corporation Method and system for signal equalization in communication between computing devices
US9645965B2 (en) * 2013-03-15 2017-05-09 Intel Corporation Apparatus, system, and method for improving equalization with a hardware driven algorithm
US20170346596A1 (en) * 2016-05-27 2017-11-30 Intel Corporation Method, apparatus, and system for signal equalization
KR102569761B1 (ko) 2016-10-05 2023-08-22 삼성전자주식회사 반도체 장치, 반도체 시스템 및 반도체 장치의 동작 방법
US10747688B2 (en) * 2016-12-22 2020-08-18 Intel Corporation Low latency retimer
CN107066417A (zh) * 2017-02-28 2017-08-18 郑州云海信息技术有限公司 一种链路参数在线调整的方法与装置
US10469291B2 (en) 2018-03-19 2019-11-05 Dell Products, Lp System and method to optimize equalization coefficients in a high-speed serial interface
US20200249275A1 (en) * 2019-01-31 2020-08-06 Tektronix, Inc. Systems, methods and devices for high-speed input/output margin testing
US11991025B2 (en) * 2019-12-04 2024-05-21 Intel Corporation Transceiver parameter determination
CN116802510A (zh) * 2020-11-24 2023-09-22 特克特朗尼克公司 用于高速输入/输出裕量测试的系统、方法和设备

Also Published As

Publication number Publication date
CN115391262A (zh) 2022-11-25
US11467909B1 (en) 2022-10-11
KR20220159175A (ko) 2022-12-02
KR102559387B1 (ko) 2023-07-26

Similar Documents

Publication Publication Date Title
TW202246993A (zh) 快捷週邊組件互連介面裝置及其操作方法
EP2619956B1 (en) Method and system of adapting communication links to link conditions on a platform
US9552269B2 (en) Test logic for a serial interconnect
WO2018118304A1 (en) Low latency retimer
TW202248869A (zh) 快捷週邊組件互連介面裝置及其操作方法
TW202241110A (zh) PCIe介面和介面系統
US11815941B2 (en) Peripheral component interconnect express device and operating method thereof
US11797468B2 (en) Peripheral component interconnect express device and computing system including the same
US11599495B2 (en) Device for performing communication and computing system including the same
US11960367B2 (en) Peripheral component interconnect express device and operating method thereof
WO2017012459A1 (zh) 系统总线设备响应超时的处理方法、装置及存储介质
US20230315672A1 (en) Interface device and computing system including the same
US20230315591A1 (en) PCIe DEVICE AND COMPUTING SYSTEM INCLUDING THE SAME
US11921657B2 (en) Peripheral component interconnect express (PCIE) device for supporting separate reference clock(s) operating between host and direct memory access (DMA) controller
US11726870B2 (en) Peripheral component interconnect express interface device and system including the same
US20240012770A1 (en) Interface device having plurality of ports and method of operating the same