TW201717018A - 用於在mochi空間中進行未知位址發現之系統及方法 - Google Patents

用於在mochi空間中進行未知位址發現之系統及方法 Download PDF

Info

Publication number
TW201717018A
TW201717018A TW105124514A TW105124514A TW201717018A TW 201717018 A TW201717018 A TW 201717018A TW 105124514 A TW105124514 A TW 105124514A TW 105124514 A TW105124514 A TW 105124514A TW 201717018 A TW201717018 A TW 201717018A
Authority
TW
Taiwan
Prior art keywords
soc
mochi
upstream
address
downstream
Prior art date
Application number
TW105124514A
Other languages
English (en)
Other versions
TWI703437B (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
Priority claimed from PCT/US2016/044358 external-priority patent/WO2017023659A1/en
Application filed by 馬維爾國際貿易有限公司 filed Critical 馬維爾國際貿易有限公司
Publication of TW201717018A publication Critical patent/TW201717018A/zh
Application granted granted Critical
Publication of TWI703437B publication Critical patent/TWI703437B/zh

Links

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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • 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/404Coupling between buses using bus bridges with address mapping
    • 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/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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0638Organizing or formatting or addressing of data
    • 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/0683Plurality of storage devices
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load
    • H04N21/64738Monitoring network characteristics, e.g. bandwidth, congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/566Grouping or aggregating service requests, e.g. for unified processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Bus Control (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Systems (AREA)
  • Executing Machine-Instructions (AREA)
  • Testing Or Measuring Of Semiconductors Or The Like (AREA)
  • Container, Conveyance, Adherence, Positioning, Of Wafer (AREA)
  • Small-Scale Networks (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

本文中揭示了用於發現一MoChi系統之未知晶片及晶片組件之系統、方法及設備。為此,一第一系統單晶片(「SoC」)可將一第一發現封包自該第一SoC之一下行MoChi埠傳輸至一第二SoC之一上行MoChi埠。該第一SoC可在該第一SoC之該下行MoChi埠處自該第二SoC之該上行MoChi埠接收一第一回覆封包。該第一SoC可判定是否該回覆封包指示該第二SoC為一已知SoC或一未知SoC。回應於判定該第二SoC為一未知SoC,該第一SoC可將一第一位址遮罩指派給該第一SoC,該第一位址遮罩識別出可藉助該第一SoC來到達該第二SoC。

Description

用於在MOCHI空間中進行未知位址發現之系統 及方法 【相關申請案之交叉引用】
本案要求2015年8月3日提交之美國臨時專利申請案No.62/200,436;62/200,462;62/200,444;及62/200,452的利益,且亦要求2015年9月14日提交之美國臨時專利申請案No.62/218,296的利益,及2016年7月27日提交之美國非臨時專利申請案No.15/220,898;15/220,916;15/220,546;15/220,923;及15/220,684的利益,以上各案特此以全文引用之方式併入本文中。
此處提供之背景描述係用於大體上呈現本揭示案之背景的目的。本案發明人之工作(就在背景部分中描述該工作而言)以及在申請日原本可能不夠資格成為先前技術的描述之各態樣不會被明確地或隱含地承認為本揭示案之先前技術。
已開發出用於最佳化系統單晶片(「SoC」)的晶片內及晶片間通信之效率的協定,被稱作跳頻匯流排協定或MoChi協定。關於跳頻匯流排協定如何實現離散SoC及其組件之間的晶片內及晶片間通信的背景描述於共同擁有之美國專利申請案No.14/564,499(被公佈為美國專利申請公佈No.2015/0169495)(本文中被稱作「跳頻匯流排參照案」)中,該案之內容特此以全文引用之方式併入本文中。對MoChi協定之進一步改良為本揭示案之標的。
在相關協定中,系統之大多數組件(即,該系統之各種SoC或晶片)的定址方案並非可組態的,而是在每一晶片之製造時被確定。此外,就定址方案為可組態而言,此僅適用於周邊組件快速互連(「PCIe」)組件, 且此等組件僅在作業系統啟動之後可組態。
習知積體電路通信協定,諸如AXI(AMBA可擴展介面,其中AMBA代表進階微控制器匯流排架構),方便了組件間之點對點通信。此等協定效率低下,因為,若兩個組件要相互通信,則必須要實現將該兩個組件互連的導線,如此佔據了晶片空間且為昂貴的。
本文中揭示了用於在一作業系統啟動之前識別一MoChi系統之拓撲的系統、方法及設備。為此,在一些態樣中,主控SoC可在使用該主控SoC之作業系統啟動之前偵測初始化命令,且回應於偵測到該初始化命令,該主控SoC可將第一晶片識別符指派給該主控SoC。該主控SoC可接著將發現通信自該主控SoC傳輸至距離該主控SoC一跳之從屬SoC。
在接收到該發現通信後,該從屬SoC可判定該從屬SoC是否為最後一跳之SoC。回應於判定該從屬SoC為最後一跳之SoC,該從屬SoC可將回覆通信傳輸至該主控SoC。該回覆通信可識別(1)該從屬SoC、(2)該從屬SoC之一跨晶片介面組件及(3)該從屬SoC之每一內部可共用組件。該主控SoC可基於該回覆通信將第二晶片識別符指派給該從屬SoC。
該主控SoC可識別複數個從屬SoC,其中,在識別出該等從屬SoC後,該主控SoC可將各別晶片識別符指派給該複數個從屬SoC中之每一各別從屬SoC。在該主控SoC將該第二晶片識別符指派給該從屬SoC及將該等各別晶片識別符指派給每一各別從屬SoC後,該主控SoC可將跨晶片介面組件識別符指派給該從屬SoC之該跨晶片介面組件。該主控SoC可隨後將各別內部可共用組件識別符指派給該從屬SoC之每一內部可共用組件。該主控SoC及該從屬SoC可禁止該主控SoC與該從屬SoC之間的任何其他相互通信(亦即,除了發現通信和回覆通信以外),直至每一各別內部可共用組件識別符已藉由該主控SoC指派給該從屬SoC之每一內部可共用組件為止。
該主控SoC可產生一資料結構,該資料結構對藉由該主控 SoC指派之晶片識別符、跨晶片介面組件識別符及可共用內部組件識別符編目錄,且可將該資料結構儲存至位於該主控SoC之記憶體中的一暫存器。該資料結構可對由藉由該等可共用組件識別符識別之每一可共用組件提供的功能性編目錄。
在一些實施例中,該主控SoC可偵測需要執行一特定功能性之一命令;可自該暫存器存取該資料結構;可自該資料結構中識別具有該特定功能性之一可共用內部組件;且可識別與該可共用內部組件對應之一位址。該主控SoC可接著使用此資訊基於該位址將該命令傳輸至該可共用內部組件。
在一些實施例中,藉由該主控SoC將該第二晶片識別符指派給該從屬SoC不會再發生,除非在該主控SoC處偵測到一額外初始化命令。在該指派之後可存取該暫存器。
在其中存在距離該主控SoC多跳之SoC的情形中,該從屬SoC可將該發現通信傳輸至下一個從屬SoC,其中該下一個從屬SoC處在距離該主控SoC兩跳之下一跳處。該下一個從屬SoC可判定該下一個從屬SoC為最後一跳之SoC,且,回應於判定該下一個從屬SoC為該最後一跳之SoC,該下一個從屬SoC可將該回覆通信傳輸至該主控SoC。該回覆通信在被該主控SoC接收到時可包括與該從屬SoC及該下一個從屬SoC有關的資訊。
本文中亦揭示了用於對封包進行聚集及將該等聚集封包傳輸至積體電路中之裝置的系統、方法及設備。在本揭示案之一些態樣中,一系統單晶片(「SoC」)之一緩衝器可接收供輸出之複數個封包。該SoC在接收該複數個輸出封包中之每一封包時可判定該緩衝器是否已達到預定容量。回應於判定該緩衝器已達到預定容量,該SoC可識別該複數個封包中共用共同特性的封包之子集,將該子集聚集成巨型封包,且將該巨型封包傳輸至目標SoC。
在一些實施例中,回應於判定該緩衝器尚未達到預定容量,該SoC可進一步在接收每一封包時在運作中傳輸該複數個封包中之每一封包。在接收每一封包時在運作中傳輸該複數個封包中之每一封包可包括首 先在該SoC處產生各別標頭,該標頭包括該複數個封包中之每一封包的位址;且接著判定該各別標頭加上給定封包之有效負載的大小的組合大小是否超過最大封包大小。回應於該SoC判定該組合大小不超過該最大封包大小,該SoC可在單條線中一起傳輸該標頭及該有效負載。回應於該SoC判定該組合大小超過該最大封包大小,該SoC可產生第二標頭,在第一線中一起傳輸該第一標頭與該有效負載之一部分,及在第二線中一起傳輸該第二標頭與該有效負載之其餘部分。
該SoC之緩衝器可包括各自與不同特性對應之複數個子緩衝器。在此類情況中,在判定該緩衝器是否已達到預定容量時,該SoC可判定該複數個子緩衝器中之一子緩衝器是否已達到預定容量。該子集可包括該子緩衝器之封包,且將該子集聚集成巨型封包可包括在傳輸不同子緩衝器之封包的同時進行該聚集。
在一些實施例中,該共同特性可為目標組件之位址。在此等情況中,將該子集聚集成巨型封包可包括產生該巨型封包之標頭,該標頭指示該目標組件之位址。在其他實施例中,該共同特性可為除了目標組件之位址以外之特性。在此等情況中,當識別該子集時,該SoC可首先判定該複數個封包中共用該共同特性之每一封包的各別目標位址,且可接著識別該等各別目標位址的最常見之目標位址。最後,該SoC可將該子集限於共用該最常見之目標位址的封包。
在將該子集聚集成該巨型封包時,該SoC可將該子集中之每一封包的各別有效負載聚集成一組合有效負載,可產生一標頭,且可將該組合有效負載與該標頭相組合以形成該巨型封包。另外,在產生該標頭時,該SoC可產生具有目標位址欄位、流控制欄位及循環冗餘檢查欄位之標頭,且其中將該巨型封包傳輸至該目標SoC包括將該巨型封包傳輸至與該目標位址欄位中指示之目標位址對應的SoC。
該巨型封包可為複數個大小中之任何大小。另外,該SoC可基於該緩衝器之充滿程度來判定該複數個大小中該巨型封包將採取之大小。
本文中亦描述了用於發現MoChi系統之未知晶片及晶片組 件的系統、方法及設備。為此,在本揭示案之一些態樣中,第一SoC可將第一發現封包自第一系統單晶片(「SoC」)之下行MoChi埠傳輸至第二SoC之上行MoChi埠。該第一SoC可在該第一SoC之下行MoChi埠處自該第二SoC之上行MoChi埠接收第一回覆封包。該第一SoC可接著判定是否該回覆封包指示該第二SoC為已知SoC或未知SoC。回應於判定該第二SoC為未知SoC,該第一SoC可將第一位址遮罩指派給該第一SoC,該第一位址遮罩識別出可藉助該第一SoC來到達該第二SoC。
回應於判定該回覆封包指示該第二SoC為已知SoC,該第一SoC可使該第二SoC將發現封包自該第二SoC之下行MoChi埠傳輸至第三SoC之上行MoChi埠。該第一SoC可接著在該第一SoC之下行MoChi埠處接收來自該第三SoC之第二回覆封包。該第一SoC可判定該第三SoC為未知SoC,且,回應於判定該第三SoC為未知SoC,該第一SoC可將第二位址遮罩指派給該第二SoC,該第二位址遮罩識別出可藉助該第二SoC來到達該第三SoC。
該第一SoC可為主控SoC,且該第二位址遮罩之指派可包括在儲存在該主控SoC處之位址暫存器中藉由該主控SoC將該所指派之位址遮罩與該第二SoC之晶片識別符相關聯。此外,該第一位址遮罩及該第二位址遮罩之指派可包括建立遮罩層次,其中該第二位址遮罩包括該第二SoC之上行Mochi埠將藉助該第一SoC之下行MoChi埠來接近的指示。
在一些實施例中,該第一SoC之下行MoChi埠可包括進入值,且該進入值可指示該下行MoChi埠之全域位址,該全域位址若包含於向上游傳遞之下游封包之位址欄位中,則向下游MoChi埠指示該封包將一直向上游傳遞至該第一SoC之下行MoChi埠。該第一SoC之下行MoChi埠可進一步包括退出值,其中該退出值可指示一系列位址,若在外寄封包中偵測到該等位址,則該等位址將傳輸通過該第一SoC之該下行MoChi埠,其與傳輸通過該第一SoC之不同下行MoChi埠相反。
該MoChi系統之每一上行MoChi埠及下行MoChi埠可包括各別進入值及各別退出值,且每一各別進入值可指示下游SoC與主控SoC相隔之一系列SoC躍點。此外,MoChi系統之每一上行MoChi埠及下行 MoChi埠進一步包括各別公用值,其中該各別公用值可為儲存於主隨機存取記憶體(「RAM」)之記憶體中的全域位址,該全域位址可用於到達該各別MoChi埠。
另外,該MoChi系統之每一上行MoChi埠可包括偏移值,該偏移值藉助層次方案來指示各別SoC上包括之組件的數目,各別上行MoChi埠嵌入於該各別SoC上。該第二SoC之上行MoChi埠可包括退出值,且該退出值可包括指示在該上行MoChi埠下游之所有MoChi晶片空間的前綴。
100、200、800、900‧‧‧MoChi系統
102、202‧‧‧主控SoC
104、106、204‧‧‧從屬SoC
108‧‧‧發現通信
110‧‧‧回覆通信
206‧‧‧CPU
208‧‧‧跨晶片介面組件
210‧‧‧內部可共用組件
300‧‧‧表
302‧‧‧晶片ID
304‧‧‧裝置ID
306、308、310、312、314、316‧‧‧行
400、402、404、406、408、410、412、700、702、704、706、708、710、712、1000、1002、1004、1006、1008、1010‧‧‧過程
510、520、540、550‧‧‧封包
511、521、531、541、551、611、612、621、622‧‧‧有效負載
512、522、532、542、552‧‧‧傳送層/連結層組件
513、523‧‧‧序號
514、524、534、544、554、614、624‧‧‧流控制組件
515、525、535、545、555、615、625‧‧‧錯誤檢查組件
546‧‧‧填充位元
553‧‧‧序列組件
610、620‧‧‧聚集封包
613、623‧‧‧填充位元組件
802、804、806、808、810、812、902、904、906、908、910、912‧‧‧晶片
814、816、820、822、824、914、916‧‧‧下行MoChi埠
818‧‧‧上行MoChi埠
918、920、922、924‧‧‧埠
圖1根據本揭示案之一些實施例描繪了MoChi系統之說明性拓撲,且描繪了基於拓撲之識別過程;圖2根據本揭示案之一些實施例描繪了MoChi系統中之SoC的內部組件之說明性實例;圖3根據本揭示案之一些實施例描繪了將各種晶片及其組件與輔助資訊相關聯之一資料結構的說明性實例;圖4為根據本揭示案之一些實施例的描繪了用於初始化MoChi系統之過程的說明性流程圖;圖5根據本揭示案之一些實施例描繪了可藉由MoChi系統之晶片處理的資料封包之若干說明性實例;圖6根據本揭示案之一些實施例描繪了可藉由MoChi系統之晶片處理的聚集封包之若干說明性實例;圖7為根據本揭示案之一些實施例的描繪了用於產生聚集封包之過程的說明性流程圖;圖8根據本揭示案之一些實施例描繪了MoChi系統中之SoC的說明性拓撲,包括該等SoC之上行埠的一些細節;圖9根據本揭示案之一些實施例描繪了MoChi系統中之SoC的說明性拓撲,包括該等SoC之上行埠及下行埠的一些細節;及圖10根據本揭示案之一些實施例描繪了一說明性流程圖, 該流程圖描繪了用於發現未知SoC之過程。
在本揭示案之一些態樣中,本文中提供了用於識別一系統中之每一晶片及一晶片之每一組件的過程的系統及方法,該識別過程係基於該系統之拓撲來進行。如本文中所使用,術語「SoC」與「晶片」可互換使用。此外,如本文中所使用,術語MoChi係指利用了本揭示案中描述之機制的系統或組件。
圖1根據本揭示案之一些實施例描繪了MoChi系統之拓撲,且描繪了基於拓撲之識別過程。如所描繪,MoChi系統100包括主控SoC 102與從屬SoC 104及106。從屬SoC 104距離主控SoC 102一跳,且從屬SoC 106距離主控SoC 102兩跳。主控SoC 102被指定為「主控」,因為主控SoC 102開始且引導對MoChi系統100之每一晶片及每一晶片組件的識別及位址指派。從屬SoC 104及從屬SoC 106被指定為「從屬」,因為為了進行識別過程,該兩個從屬SoC接收來自主控SoC 102之命令且對來自主控SoC 102之命令作出回覆。
當重置系統時,且因此,當接收到初始化命令時,主控SoC 102可開始識別過程以便識別MoChi系統100之每一晶片。首先,主控SoC 102可給自身指派全域識別符,諸如晶片識別符(「ID」)。如本文中所使用,術語「全域識別符」係指可由MoChi系統100之任何晶片用於識別MoChi系統100之任何其他晶片且可用於對既定被MoChi系統100之其他晶片接收的通信進行定址的識別符。主控SoC 102可接著將發現通信108傳輸至從屬SoC 104,該等從屬SoC距離主控SoC 102一跳。每一從屬SoC 104可接著判定其是否為最後一跳之SoC,即,其是否位於主控SoC 102與通信路徑上之另一晶片之間。若從屬SoC 104為最後一跳之SoC,則從屬SoC 104可產生回覆通信110且將回覆通信110往回傳輸至主控SoC,該回覆通信對從屬SoC 104自身進行了識別。回覆通信110亦可傳達額外資訊,諸如關於SoC 104內之跨晶片介面及內部可共用組件的資訊。將在下文就圖2及圖3來進一步論述此額外資訊。
若從屬SoC 104並非最後一跳之SoC,則從屬SoC 104可將發現通信108傳輸至下一跳之從屬SoC,且此過程可繼續,直至遇到最後一跳之SoC。在此過程期間,每一非最後之從屬SoC 104可將對自身進行識別之資訊以及上文提到之資訊增添至發現通信108。或者,每一非最後一跳之從屬SoC 104可能會禁止增添此資訊,且可簡單地將發現通信108轉發至最後一跳之從屬SoC 106。最後一跳之從屬SoC 106可接著產生回覆通信110且將回覆通信110往回傳輸至主控SoC 102。除了上文描述之資訊之外,回覆通信110亦可包括與非最後一跳之SoC 104有關的資訊,該資訊係在發現通信108正發往從屬SoC 106時添加。或者,在回覆通信110傳遞通過主控SoC 102與最後一跳之從屬SoC 106之間的每一從屬SoC 104時,回覆通信110在傳遞通過每一各別從屬SoC 104時被增添與每一各別從屬SoC 104有關之資訊。
當主控SoC 102接收到回覆通信110時,主控SoC 102可向藉由回覆通信110識別之給定從屬SoC的每一跨晶片組件指派區域識別符(「ID」)。如本文中所使用,術語「跨晶片組件」描述了在MoChi系統100所使用之協定(本文中有時被稱作MoChi協定)與給定從屬SoC所使用之區域協定之間進行轉變的介面。在上文提到之跳頻匯流排參照案中進一步描述此功能性。如本文中所使用,術語「區域ID」用於描述在給定晶片本地之組件的識別符。在給所有跨晶片組件指派了各別區域ID之後,主控SoC 102可向給定從屬SoC之其他內部可共用組件指派區域ID。
在較佳實施例中,上文描述的基於拓撲之識別過程將僅在MoChi系統100重置之後進行一次。然而,對藉由主控SoC 102指派之位址的暫存器存取可進行任意次。在此較佳實施例中,在MoChi系統100之所有晶片及組件被主控SoC 102識別出且因此確定MoChi系統100之拓撲之前,不會開始或允許晶片及/或組件間的相互通信。此外,雖然圖1描繪了固定之主控SoC 102,但MoChi系統100中具有中央處理單元(「CPU」)之任何晶片皆可將其自身指定為主控SoC,因此使MoChi系統100之其他晶片變成從屬SoC。此指定可為預編程的,可在接收到初始化命令之後被隨機指派,或可因為任何其他原因而發生。
圖2根據本揭示案之一些實施例描繪了MoChi系統中之SoC的內部組件。如圖2中所描繪,MoChi系統200含有兩個晶片,即,主控SoC 202及從屬SoC 204。主控SoC 202含有CPU 206及跨晶片介面組件208。CPU 206可能會影響前文或下文中描述的任何基於拓撲之識別過程。如上文所描述,主控SoC 202之跨晶片介面組件208可將來自CPU 206之通信轉變成MoChi系統200所理解之協定。類似地,從屬SoC 204之跨晶片介面組件208可將自主控SoC 202接收到之通信轉變成從屬SoC 204之組件所理解的協定。從屬SoC 204包括內部可共用組件210。內部可共用組件210之各種功能性及通信能力至少描述於跳頻匯流排參照案之第25段中,且此功能性在本揭示案之範疇內。
圖3根據本揭示案之一些實施例描繪了將各種晶片及其組件與輔助資訊相關聯之資料結構。表300呈現了一資料結構,該資料結構追蹤藉由主控SoC 102指派給從屬SoC 104及106的資訊,且追蹤其他輔助資訊。在表300中,晶片ID反映了藉由主控SoC指派給MoChi系統100之每一晶片的識別符。晶片ID 0被指派給主控SoC 102自身,且連續編號之晶片ID被指派給每一發現之從屬SoC 104及106。裝置ID 304可為藉由製造商指派給裝置之裝置識別符,且嵌入於單個裝置上之所有晶片將反映同一裝置ID 304。因為MoChi協定允許不同裝置之晶片相互通信,因此裝置ID 304在完全組態之系統中將不必一致。行306及308分別追蹤給定晶片內的跨晶片組件及內部可共用組件之數目。行310及312分別追蹤藉由主控SoC 102指派給給定晶片之每一跨晶片組件及內部可共用組件的區域ID。若回覆通信110反映了任何給定內部可共用組件之功能性,則行314可反映該功能性。可基於晶片間之任何其他相互通信在初始化之後更新該功能性。行316可包括與MoChi系統100之晶片或組件有關的任何其他資訊。
圖4為根據本揭示案之一些實施例的描繪了用於初始化MoChi系統之過程的說明性流程圖。過程400開始於402,其中主控SoC(例如,主控SoC 102)可在使用該主控SoC之作業系統啟動之前偵測初始化命令。過程400可繼續至404,其中,回應於偵測到該初始化命令,主控SoC 102可將第一晶片識別符指派給主控SoC(例如,如302中描繪之「0」指派)。
過程400可繼續至406,其中主控SoC可將發現通信(例如,來自主控SoC之發現通信108)傳輸至距離主控SoC一跳之從屬SoC(例如,從屬SoC 104或從屬SoC 106)。過程400接著可繼續至408,其中從屬SoC可判定其是否為最後一跳之SoC。在410處,從屬SoC可回應於判定從屬SoC為最後一跳之SoC而藉由該從屬SoC將回覆通信(例如回覆通信110)傳輸至主控SoC。在412處,主控SoC可基於該回覆通信而將第二晶片識別符指派給該從屬SoC(例如,如302中指示之晶片ID「1」)。
在上文就圖1至圖4描述之初始化過程之後,可跨越MoChi系統(例如,MoChi系統100)來發送資料封包。舉例來說,MoChi跨晶片介面組件(例如,跨晶片介面組件208)可使用串列化高速資料路徑,其中通信係在應用層、傳送層、資料連結層及實體層中之任一者上傳遞。前文描述之MoChi架構最佳化所有OSI(開放系統互連)層間之通信且確保最佳延遲。該等通信可發生在不同模式下,諸如線模式及聚集模式,將在下文更詳細地描述該兩種模式。
圖5根據本揭示案之一些實施例描繪了可藉由MoChi系統之晶片處理的資料封包之若干說明性實例。每一封包510、520、540及550係以線模式來傳輸。在線模式中,每一資料異動(例如,AXI異動)係在運作中(例如,即時地,在接收到命令時)分封化。示例性封包(例如,封包510、520、540及550)係按每條線中80個位元來傳輸,但封包可按比80個位元多或少之位元來傳輸。
封包510為具有單線標頭之封包。單線標頭例如可在傳輸讀取資料或應答時使用。有效負載511如所示具有69個位元。有效負載511可包括任何相關資料,包括命令資料、位址資料及其類似者。傳送層/連結層(「T/L」)組件512可包括控制資訊,且可包括1位元之資訊。序號513描述了封包510之序號,且可用於確保按順序地傳輸或接收封包。流控制組件514可包括3位元之資訊,且可用於判定封包510之流控制參數。錯誤檢查組件515可為循環冗餘檢查(CRC)欄位,且可包括3個位元。總言之,封包510具有80位元之資訊。
在一些情況中,諸如當傳輸讀取位址或寫入位址及資料封包時,並非所有標頭資訊均能夠裝入一條線中,通常為80位元線。因此,標頭可分散在兩條或兩條以上資料線上。封包520包括雙線標頭,其中142位元之有效負載分散在將分開進行傳輸之兩條線上。有效負載521及531具有與有效負載511類似之功能性。傳送層/連結層組件522及532具有與傳送層/連結層組件512類似之功能性。序號523決定封包520之兩條線之序號,即,無需在兩條線中皆包括序號,如此節省了第二線中之空間。流控制組件524及534具有與流控制組件514類似之功能性。錯誤檢查組件525及535具有與錯誤檢查組件515類似之功能性。封包520之每條線具有相同之位元數目,即,如所示,為80個位元。
封包540示出了可與MoChi系統之任何標頭一起傳輸的資料線,此類標頭示出於封包510及封包520中。有效負載541、傳送層/連結層組件542、流控制組件544及錯誤檢查組件545具有與就封包510進行描述的其相應組件類似之功能性。使用填充位元546來確保封包540具有與該系統中所使用之其他封包相同之封包數目以便進行一致之處理(即,在圖5之圖示中,為80個封包)。雖然封包540被示出為僅為一條線長,但封包可具有多個資料線,且因此,除了多個資料線540之外,單個封包亦可使用多線標頭或單線標頭(例如,分別為封包520及510)。
封包550示出了可用於暫存器存取、系統發現及其他控制功能之單線連結層控制封包。有效負載551、傳送層/連結層組件552、序列組件553、流控制組件554及錯誤檢查組件555具有與就封包510進行描述的其相應組件類似之功能性。
在一些實施例中,可採用塊模式(在本揭示案中與「聚集模式」可互換使用)來傳輸封包。線模式通常係在MoChi晶片或組件之傳輸緩衝器非常低時使用,且因此不存在頻寬問題或瓶頸。然而,在存在瓶頸或頻寬問題(例如,在跨晶片介面組件中,諸如跨晶片介面組件208)之情況下,藉由使用塊模式來聚集封包而緩解瓶頸可能為有利的。在塊模式中,可使用單個標頭來傳輸大量聚集封包,因此與按各自具有單獨標頭之線模式來傳輸封包所需之頻寬相比,塊模式可減少所需頻寬。此外,較小之封 包可聚集起來以確保封包之大部分或整個寬度用於單個資料傳輸中。
圖6根據本揭示案之一些實施例描繪了可藉由MoChi系統之晶片處理的聚集封包之若干說明性實例。圖6描繪了64位元組之聚集封包610及256位元組之聚集封包620,其各自以塊模式來聚集。估計當使用64位元組之聚集封包610來進行資料傳送時,傳輸效率提高了約百分之十,且當使用256位元組之聚集封包620來進行資料傳送時,傳輸效率提高了約百分之二十。
64位元組之聚集封包610包括六個10位元組之有效負載611以及一標頭,該標頭包括四位元組之有效負載612、三十三位元之填充位元組件613、三位元之流控制組件614及十二位元之錯誤檢查組件615。標頭有效負載612、填充位元組件613、流控制組件614及錯誤檢查組件615中之每一者具有與就上文參看圖5所描述的其各別相應組件而描述之功能性類似的功能性。十位元組之有效負載611中之每一者可具有與資料線540或有效負載541類似之功能性,且可各自涉及與類似通信有關之獨立資料傳輸,如將就圖7來進一步描述。
256位元組之聚集封包620包括三十一個10位元組之有效負載621以及一標頭,該標頭包括六位元組之有效負載622、九位元之填充位元組件623、三位元之流控制組件624及十二位元之錯誤檢查組件625。標頭有效負載622、填充位元組件623、流控制組件624及錯誤檢查組件625中之每一者具有與就上文參看圖5所描述的其各別相應組件而描述之功能性類似的功能性。十位元組之有效負載621中之每一者可具有與資料線540類似之功能性,且可各自涉及與類似通信有關之獨立資料傳輸,如將就圖7來進一步描述。
圖7為根據本揭示案之一些實施例的描繪了用於產生聚集封包之過程的說明性流程圖。過程700開始於702,其中SoC內(例如主控SoC 202之跨晶片介面組件208內)之緩衝器接收供輸出之複數個封包。在704處,(例如,主控SoC 202的)控制電路在接收該複數個輸出封包中之每一封包時判定該緩衝器是否已達到預定容量。
在706處,該SoC之控制電路作出關於緩衝器是否已達到 預定容量之判定,且若該緩衝器尚未達到預定容量,則過程700循環回至704來繼續監視在接收下一個封包時是否達到預定容量。然而,若緩衝器或子緩衝器已達到預定容量,則過程700繼續至708。
在708處,該SoC之控制電路可識別該複數個封包中共用共同特性的封包之子集。舉例而言,該子集可包括具有相同命令之封包或去往MoChi系統100之同一組件的封包。在710處,該SoC之控制電路可將該子集聚集成巨型封包(例如,64位元組之聚集封包610或256位元組之聚集封包620)。在712處,該SoC之控制電路可使該巨型封包傳輸至目標SoC(例如,從屬SoC 204,該從屬SoC 204可將該巨型封包路由至給定封包,或可分解該封包以便傳輸至從屬SoC 204之不同組件)。
在一些實施例中(例如,在初始化期間,或當向MoChi系統添加新組件時),SoC可能係MoChi系統之主控SoC未知的。為此,(例如,主控SoC的)控制電路可建立層次型或錐形拓撲(例如在初始化期間)以便高效地識別該未知SoC。在下文參看圖8至圖10對此進行論述。
圖8根據本揭示案之一些實施例描繪了MoChi系統中之SoC的說明性拓撲,包括該等SoC之上行埠的一些細節。晶片802為主控SoC,根據上文就圖3所描述之指派,該主控SoC已給自身指派了晶片ID「0」。如圖1中所示,晶片802具有十一個內部節點或組件(例如,跨晶片及可共用組件)。術語「節點」與「組件」在本揭示案中可互換使用。
晶片802包括兩個下行MoChi埠814及816。下行MoChi埠814及816延伸了MoChi系統800至MoChi系統800中之額外晶片(例如,晶片804、806、808、810及812)的連接性。上行MoChi埠為接收來自上級晶片之初始化命令的埠。晶片802不具有上行MoChi埠,因為晶片802為主控SoC且因此無需向上游傳輸資訊。就額外MoChi埠存在於晶片802上而言,此等晶片並未被連接且因此被稱作停用埠。
晶片804包括用於將資訊向上游傳輸至晶片802之上行MoChi埠818,且亦包括用於將資訊向下游傳輸至晶片806、808及810之下行MoChi埠820、822及824。與上文關於圖3之描述一致,晶片804已被指派了晶片ID「1」且包括總共十個節點。如本文中所使用,術語「偏 移」描述了在給定晶片之前被指派了位址之組件的數目。因此,晶片804具有偏移11,意謂著,晶片804之組件偏移了上游節點之總數(亦即,晶片802總共11個節點)。
晶片806、808、810及812各自分別具有2、3、4及2個節點。雖然未描繪,但以上晶片亦各自具有上行埠。其偏移及晶片ID描述於圖8中。如可看出,MoChi系統800使用「錐形」架構,其中建立層次,使得主控SoC(例如,晶片802)不會與大多數晶片(例如,晶片806、808及810)直接介接,而是經由中間晶片(例如,804)傳遞通信。使用術語「錐形」,原因在於MoChi系統終止於一個點,即,終止於主控SoC,且順著錐形往下而變寬,其中在自主控SoC更往下游時該錐形之任何給定層中晶片之數目增加。請注意,在MoChi錐形中間之晶片一般僅具有一個上行MoChi埠,但可具有許多下行MoChi埠(例如,晶片804之下行MoChi埠820、822及824)。
圖9根據本揭示案之一些實施例描繪了MoChi系統中之SoC的說明性拓撲,包括該等SoC之上行埠及下行埠的亡些細節。MoChi系統900包括晶片902、904、906、908、910及912,其中每一者對應於圖8所示之MoChi系統800中的其各別對應物。晶片902為主控SoC,包括進入位址,該進入位址包括進入前綴「10」及進入遮罩「00」。進入前綴及遮罩一起包括晶片之全域位址指派。若封包具有與給定MoChi埠之前綴及進入遮罩一致的位址,則該封包將被引導向與該給定MoChi埠對應之晶片。
進入前綴界定了相對於主控SoC之距離。因此,晶片902之下行MoChi埠914及916的進入前綴具有同一前綴「10」,因為該兩個埠與主控SoC相距相同距離,而晶片904之埠918、920、922及924的進入前綴為「1001」,該前綴界定了下一級距離。對於每一級距離,向進入前綴增添另外兩個位元。因此,晶片906、908及910之上行MoChi埠的進入前綴為距離1001xx,其中xx位元視每一晶片連接至哪個上行MoChil埠而改變。
進入遮罩為兩個位元且隨晶片而改變。舉例而言,遮罩「00」對應於上游晶片之下行MoChi埠,且遮罩01或10可對應於下游晶片之上 行MoChi埠(其中該遮罩視封包既定去往哪個下游晶片而改變)。
退出前綴及退出遮罩與進入遮罩及進入前綴同樣地起作用,即,自給定MoChi埠離開之封包將去往一位址,該位址對應於藉由退出前綴與退出遮罩所形成之退出位址指示的距離(亦即,前綴)及特定晶片(亦即,遮罩)。舉例而言,具有位址100111(亦即,具有退出前綴1001及遮罩11)之封包將自晶片902之埠914(具有退出位址1001)傳遞至晶片904之埠918(具有進入前綴1001),且將接著經由埠924(具有退出位址100111)來路由至910之上行埠(具有進入位址100111)。因此,封包將能夠藉由遵照進入/退出前綴及進入/退出遮罩之層次而容易地導航通過MoChi錐體,無論是向上游或向下游傳遞。請注意,自下游晶片(例如晶片910)向上游傳遞之封包僅需要去往上游埠自身之位址以外的任何埠,以便向上游傳輸至下一個中間節點以進行進一步處理,如藉由函數!(100111)所指示。
MoChi系統900之每一MoChi埠具有三組位址前綴及遮罩暫存器。第一組為進入前綴及遮罩,如上文所描述,該等進入前綴及遮罩一起形成用於晶片之全域位址指派。下一組為退出前綴及遮罩,該等退出前綴及遮罩一起界定了將自給定MoChi埠離開之位址範圍。用於退出位址之解碼視其是傳遞通過上行或下行MoChi埠而定。對於下行MoChi埠,若該下行MoChi埠之位址與一前綴及遮罩匹配,則封包將自該埠離開。對於上行埠,基於上文描述之MoChi錐體概念,若位址未與屬於該埠之位址匹配,則僅未匹配之位址將離開該埠而向上游通過該錐體,直至其找到埠位址與之匹配的晶片為止。
最後一組位址前綴及位址暫存器為公用之前綴及遮罩。總言之,此等組形成了主記憶體(例如,主雙資料速率隨機存取記憶體(「DDR」))之全域位址。擁有具有公用前綴及遮罩之位址的任何封包將僅被發送至與公用DDR全域暫存器中列出之位址對應的埠或晶片。
圖10根據本揭示案之一些實施例描繪了一說明性流程圖,該流程圖描繪了用於發現未知SoC之過程。過程1000開始於1002,其中(例如,主控SoC,諸如晶片902的)控制電路可將第一發現封包自下行MoChi埠(例如,下行MoChi埠914)傳輸至上行MoChi埠(例如,第二SoC(例如, 晶片904)之上行MoChi埠918)。舉例而言,如上文就圖9所描述,該發現封包(例如,控制封包550)可能已基於下行MoChi埠914之退出位址及上行MoChi埠918之進入位址來傳輸。
過程1000可繼續至1004,其中第一SoC(例如,晶片902)可在第一SoC之下行MoChi埠(例如,下行MoChi埠914)處自第二SoC之上行MoChi埠(例如,晶片904之上行MoChi埠918)接收第一回覆封包(例如,控制封包550)。在1006處,(例如,晶片902的)控制電路可判定該回覆封包指示該第二SoC(例如,晶片904)是已知SoC或未知SoC。若該SoC為未知的,則過程1000可前進至1008,其中控制電路可將第一位址遮罩指派給第一SoC,該第一位址遮罩識別出可藉助第一SoC來到達第二SoC(例如,指派退出遮罩01以便存取晶片904,或指派退出遮罩10以便存取晶片912)。若該SoC為已知的,則過程1000可前進至1010,其中控制電路可對下一個下游SoC重複過程1000以判定是否將退出遮罩指派給(例如)下游MoChi埠920、922及/或924。
前文描述了用於組態及實現MoChi系統之系統、方法及設備。呈現本揭示案之上述實施例係為了說明而非限制。此外,本揭示案不限於特定實現方式。舉例而言,上述方法之一或多個步驟可按不同次序(或同時地)來實現且仍達成所要結果,另外,本揭示案可用硬體來實現,諸如在特殊應用積體電路(ASIC)上或在現場可程式閘陣列(FPGA)上。本揭示案亦可藉由(例如)將用於執行上文論述之過程的暫時性或非暫時性指令編碼在一或多個暫時性或非暫時性電腦可讀介質中而用軟體來實現。
1000、1002、1004、1006、1008、1010‧‧‧過程

Claims (20)

  1. 一種用於發現一MoChi系統之未知晶片及晶片組件之方法,該方法包括:將一第一發現封包自一第一系統單晶片(「SoC」)之一下行MoChi埠傳輸至一第二SoC之一上行MoChi埠;在該第一SoC之該下行MoChi埠處,自該第二SoC之該上行MoChi埠接收一第一回覆封包;判定是否該回覆封包指示該第二SoC為一已知SoC或一未知SoC;以及回應於判定該第二SoC為一未知SoC,將一第一位址遮罩指派給該第一SoC,該第一位址遮罩識別出可藉助該第一SoC來到達該第二SoC。
  2. 如申請專利範圍第1項之方法,進一步包括,回應於判定該回覆封包指示該第二SoC為一已知SoC:將該發現封包自該第二SoC之一下行MoChi埠傳輸至一第三SoC之一上行MoChi埠;在該第一SoC之該下行MoChi埠處,接收來自該第三SoC之一第二回覆封包;判定該第三SoC為一未知SoC;回應於判定該第三SoC為一未知SoC,將一第二位址遮罩指派給該第二SoC,該第二位址遮罩識別出可藉助該第二SoC來到達該第三SoC。
  3. 如申請專利範圍第2項之方法,其中該第一SoC為一主控SoC,且其中該第二位址遮罩之指派包括在儲存在該主控SoC處之一位址暫存器中藉由該主控SoC將該所指派之位址遮罩與該第二SoC之一晶片識別符相關聯。
  4. 如申請專利範圍第3項之方法,其中該第一位址遮罩及該第二位址遮罩之指派包括建立遮罩之一層次,其中該第二位址遮罩包括該第二SoC之該上行Mochi埠將藉助該第一SoC之該下行MoChi埠來接近的指示。
  5. 如申請專利範圍第1項之方法,其中該第一SoC之該下行MoChi埠包括一進入值,且其中該進入值指示該下行MoChi埠之一全域位址,該全域位址若包含於向上游傳遞之一下游封包之一位址欄位中,則向下游MoChi埠指示該封包將一直向上游傳遞至該第一SoC之該下行MoChi埠。
  6. 如申請專利範圍第5項之方法,其中該第一SoC之該下行MoChi埠進一步包括一退出值,且其中該退出值指示一系列位址,若在一外寄封包中偵測到該等位址,則該等位址將傳輸通過該第一SoC之該下行MoChi埠,而與傳輸通過該第一SoC之一不同下行MoChi埠相反。
  7. 如申請專利範圍第5項之方法,其中該MoChi系統之每一上行MoChi埠及下行MoChi埠包括一各別進入值及一各別退出值,且其中每一各別進入值指示一下游SoC與一主控SoC相隔之一系列SoC躍點。
  8. 如申請專利範圍第7項之方法,其中該MoChi系統之每一上行MoChi埠及下行MoChi埠進一步包括一各別公用值,其中該各別公用值為儲存於主隨機存取記憶體(「RAM」)之記憶體中的一全域位址,該全域位址可用於到達該各別MoChi埠。
  9. 如申請專利範圍第5項之方法,其中該MoChi系統之每一上行MoChi埠包括一偏移值,該偏移值藉助一層次方案來指示一各別SoC上包括之組件的數目,一各別上行MoChi埠嵌入於該各別SoC上。
  10. 如申請專利範圍第1項之方法,其中該第二SoC之該上行MoChi埠包括一退出值,且其中該退出值包括一前綴,該前綴指示在該上行MoChi埠下游之所有MoChi晶片空間。
  11. 一種用於發現一MoChi系統之未知晶片及晶片組件之系統,該系統包括:一第一系統單晶片(「SoC」),該第一SoC包括一下行MoChi埠;以及一第二SoC,該第二SoC包括一上行MoChi埠,其中該第一SoC包括控制電路,該控制電路經組態以:將一第一發現封包自該第一SoC之該下行MoChi埠傳輸至一第二SoC之該上行MoChi埠; 在該第一SoC之該下行MoChi埠處,自該第二SoC之該上行MoChi埠接收一第一回覆封包;判定是否該回覆封包指示該第二SoC為一已知SoC或一未知SoC;以及回應於判定該第二SoC為一未知SoC,將一第一位址遮罩指派給該第一SoC,該第一位址遮罩識別出可藉助該第一SoC來到達該第二SoC。
  12. 如申請專利範圍第11項之系統,其中該第二SoC進一步包括第二控制電路及一下行MoChi埠,其中該系統進一步包括一第三SoC,該第三SoC包括一上行MoChi埠,其中該第二控制電路進一步經組態以,回應於判定該回覆封包指示該第二SoC為一已知SoC,將該發現封包自該第二SoC之該下行MoChi埠傳輸至該第三SoC之一上行MoChi埠,且其中該第一SoC之該控制電路進一步經組態以:在該第一SoC之該下行MoChi埠處,接收來自該第三SoC之一第二回覆封包;判定該第三SoC為一未知SoC;以及回應於判定該第三SoC為一未知SoC,將一第二位址遮罩指派給該第二SoC,該第二位址遮罩識別出可藉助該第二SoC來到達該第三SoC。
  13. 如申請專利範圍第12項之系統,其中該第一SoC為一主控SoC,且其中該第一SoC之該控制電路進一步經組態以在指派該第二位址遮罩時,在儲存在該主控SoC處之一位址暫存器中藉由該主控SoC將該所指派之位址遮罩與該第二SoC之一晶片識別符相關聯。
  14. 如申請專利範圍第13項之系統,其中該第一SoC之該控制電路進一步經組態以在指派該第一位址遮罩及該第二位址遮罩時建立遮罩之一層次,其中該第二位址遮罩包括該第二SoC之該上行Mochi埠將藉助該第一SoC之該下行MoChi埠來接近的指示。
  15. 如申請專利範圍第11項之系統,其中該第一SoC之該下行MoChi埠包括一進入值,且其中該進入值指示該下行MoChi埠之一全域位址,該全域位址若包含於向上游傳遞之一下游封包之一位址欄位中,則向 下游MoChi埠指示該封包將一直向上游傳遞至該第一SoC之該下行MoChi埠。
  16. 如申請專利範圍第15項之系統,其中該第一SoC之該下行MoChi埠進一步包括一退出值,且其中該退出值指示一系列位址,若在一外寄封包中偵測到該等位址,則該等位址將傳輸通過該第一SoC之下行MoChi埠,而與傳輸通過該第一SoC之一不同下行MoChi埠相反。
  17. 如申請專利範圍第15項之系統,其中該MoChi系統之每一上行MoChi埠及下行MoChi埠包括一各別進入值及一各別退出值,且其中每一各別進入值指示一下游SoC與一主控SoC相隔之一系列SoC躍點。
  18. 如申請專利範圍第17項之系統,其中該MoChi系統之每一上行MoChi埠及下行MoChi埠進一步包括一各別公用值,其中該各別公用值為儲存於主隨機存取記憶體(「RAM」)之記憶體中的一全域位址,該全域位址可用於到達該各別MoChi埠。
  19. 如申請專利範圍第15項之系統,其中該MoChi系統之每一上行MoChi埠包括一偏移值,該偏移值藉助一層次方案來指示一各別SoC上包括之組件的數目,一各別上行MoChi埠嵌入於該各別SoC上。
  20. 如申請專利範圍第11項之系統,其中該第二SoC之該上行MoChi埠包括一退出值,且其中該退出值包括一前綴,該前綴指示在該上行MoChi埠下游之所有MoChi晶片空間。
TW105124514A 2015-08-03 2016-08-02 用於在mochi空間中進行未知位址發現之系統及方法 TWI703437B (zh)

Applications Claiming Priority (30)

Application Number Priority Date Filing Date Title
US201562200436P 2015-08-03 2015-08-03
US201562200462P 2015-08-03 2015-08-03
US201562200452P 2015-08-03 2015-08-03
US201562200444P 2015-08-03 2015-08-03
US62/200,452 2015-08-03
US62/200,436 2015-08-03
US62/200,444 2015-08-03
US62/200,462 2015-08-03
US201562218296P 2015-09-14 2015-09-14
US62/218,296 2015-09-14
US15/220,923 2016-07-27
US15/220,684 2016-07-27
US15/220,546 2016-07-27
US15/220,898 US10339077B2 (en) 2015-08-03 2016-07-27 Systems and methods for implementing topology-based identification process in a MoChi environment
US15/220,898 2016-07-27
US15/220,916 US10552350B2 (en) 2015-08-03 2016-07-27 Systems and methods for aggregating data packets in a mochi system
US15/220,923 US10474597B2 (en) 2015-08-03 2016-07-27 Systems and methods for performing unknown address discovery in a MoChi space
US15/220,684 US10198376B2 (en) 2015-08-03 2016-07-27 Methods and apparatus for accelerating list comparison operations
US15/220,916 2016-07-27
US15/220,546 US10318453B2 (en) 2015-08-03 2016-07-27 Systems and methods for transmitting interrupts between nodes
WOPCT/US16/44428 2016-07-28
PCT/US2016/044358 WO2017023659A1 (en) 2015-08-03 2016-07-28 Method and apparatus for a processor with cache and main memory
PCT/US2016/044428 WO2017023681A1 (en) 2015-08-03 2016-07-28 Systems and methods for aggregating data packets in a mochi system
PCT/US2016/044360 WO2017023661A1 (en) 2015-08-03 2016-07-28 Systems and methods for transmitting interrupts between nodes
WOPCT/US16/44360 2016-07-28
WOPCT/US16/44425 2016-07-28
PCT/US2016/044425 WO2017023678A1 (en) 2015-08-03 2016-07-28 Systems and methods for implementing topoloby-based identification process in a mochi environment
PCT/US2016/044431 WO2017023682A1 (en) 2015-08-03 2016-07-28 Systems and methods for performing unknown address discovery in a mochi space
WOPCT/US16/44431 2016-07-28
WOPCT/US16/44358 2016-07-28

Publications (2)

Publication Number Publication Date
TW201717018A true TW201717018A (zh) 2017-05-16
TWI703437B TWI703437B (zh) 2020-09-01

Family

ID=58052541

Family Applications (5)

Application Number Title Priority Date Filing Date
TW105124514A TWI703437B (zh) 2015-08-03 2016-08-02 用於在mochi空間中進行未知位址發現之系統及方法
TW105124512A TWI703445B (zh) 2015-08-03 2016-08-02 用於在mochi系統中對資料封包進行聚集之系統及方法
TW105124513A TWI695268B (zh) 2015-08-03 2016-08-02 用於在節點之間傳輸中斷的系統及方法
TW105124510A TWI695262B (zh) 2015-08-03 2016-08-02 用於在mochi環境中實現基於拓撲之識別過程的系統及方法
TW105124515A TWI705327B (zh) 2015-08-03 2016-08-02 用於加速清單比較操作之方法及設備

Family Applications After (4)

Application Number Title Priority Date Filing Date
TW105124512A TWI703445B (zh) 2015-08-03 2016-08-02 用於在mochi系統中對資料封包進行聚集之系統及方法
TW105124513A TWI695268B (zh) 2015-08-03 2016-08-02 用於在節點之間傳輸中斷的系統及方法
TW105124510A TWI695262B (zh) 2015-08-03 2016-08-02 用於在mochi環境中實現基於拓撲之識別過程的系統及方法
TW105124515A TWI705327B (zh) 2015-08-03 2016-08-02 用於加速清單比較操作之方法及設備

Country Status (2)

Country Link
US (5) US10198376B2 (zh)
TW (5) TWI703437B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111506530A (zh) * 2019-01-30 2020-08-07 智原科技股份有限公司 中断管理系统及其管理方法
DE102019208678A1 (de) * 2019-06-14 2020-12-17 Robert Bosch Gmbh Kommunikationsverfahren
CN112131174A (zh) * 2019-06-25 2020-12-25 北京百度网讯科技有限公司 支持在多个芯片之间通信的方法、装置、电子设备和计算机存储介质
US20230102614A1 (en) * 2021-09-27 2023-03-30 Qualcomm Incorporated Grouping data packets at a modem

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3329228A1 (de) * 1983-08-12 1985-02-21 Siemens AG, 1000 Berlin und 8000 München Datenuebertragungsverfahren in einem digitalen uebertragungsnetzwerk und vorrichtung zur durchfuehrung des verfahrens
US5179704A (en) 1991-03-13 1993-01-12 Ncr Corporation Method and apparatus for generating disk array interrupt signals
US5412782A (en) * 1992-07-02 1995-05-02 3Com Corporation Programmed I/O ethernet adapter with early interrupts for accelerating data transfer
US5617559A (en) * 1994-08-31 1997-04-01 Motorola Inc. Modular chip select control circuit and method for performing pipelined memory accesses
US5845327A (en) 1995-05-03 1998-12-01 Apple Computer, Inc. Cache coherency where multiple processors may access the same data over independent access paths
KR0156173B1 (ko) * 1995-11-21 1998-11-16 문정환 인터럽트 발생회로
US5815733A (en) * 1996-02-01 1998-09-29 Apple Computer, Inc. System for handling interrupts in a computer system using asic reset input line coupled to set of status circuits for presetting values in the status circuits
US5862366A (en) * 1996-09-12 1999-01-19 Advanced Micro Devices, Inc. System and method for simulating a multiprocessor environment for testing a multiprocessing interrupt controller
DE69829539T2 (de) * 1997-11-26 2005-09-01 Texas Instruments Inc., Dallas Verbesserungen an oder bei Rechnerspeichern
US6412013B1 (en) * 1998-10-23 2002-06-25 Koninklijke Philips Electronics N.V. System for controlling data output to a network
US6263395B1 (en) * 1999-01-06 2001-07-17 Compaq Computer Corp. System and method for serial interrupt scanning
JP2000332817A (ja) * 1999-05-18 2000-11-30 Fujitsu Ltd パケット処理装置
EP1181792B1 (en) * 1999-05-21 2010-07-14 Broadcom Corporation Stacked network switch configuration
US7295552B1 (en) 1999-06-30 2007-11-13 Broadcom Corporation Cluster switching architecture
JP3543698B2 (ja) 1999-09-29 2004-07-14 日本電気株式会社 伝送方法およびネットワーク・システム
US6584550B1 (en) * 1999-11-29 2003-06-24 Apple Computer, Inc. System and method for updating a head entry from read-only to read-write and allowing a list to expand in a cache-coherence sharing list
US6751213B1 (en) * 1999-12-24 2004-06-15 Cypress Semiconductor Corporation Token over ethernet protocol
US7426179B1 (en) 2000-03-17 2008-09-16 Lucent Technologies Inc. Method and apparatus for signaling path restoration information in a mesh network
US6760792B1 (en) 2001-10-15 2004-07-06 Advanced Micro Devices, Inc. Buffer circuit for rotating outstanding transactions
US7024519B2 (en) * 2002-05-06 2006-04-04 Sony Computer Entertainment Inc. Methods and apparatus for controlling hierarchical cache memory
EP1387279B1 (en) * 2002-07-31 2008-05-14 Texas Instruments Inc. Cache coherency in a multi-processor system
KR100678223B1 (ko) 2003-03-13 2007-02-01 삼성전자주식회사 통신시스템의 패킷 전송 장치 및 방법
US7330467B2 (en) 2003-03-26 2008-02-12 Altera Corporation System and method for centralized, intelligent proxy driver for a switch fabric
US7336284B2 (en) 2004-04-08 2008-02-26 Ati Technologies Inc. Two level cache memory architecture
US7362764B2 (en) 2004-06-08 2008-04-22 Sun Microsystems, Inc. Method and apparatus for verifying service level in a communications network
TWI256591B (en) 2004-08-11 2006-06-11 Benq Corp Method of reducing interrupts
US20080126812A1 (en) * 2005-01-10 2008-05-29 Sherjil Ahmed Integrated Architecture for the Unified Processing of Visual Media
US7788434B2 (en) 2006-12-15 2010-08-31 Microchip Technology Incorporated Interrupt controller handling interrupts with and without coalescing
US8072999B1 (en) 2007-05-08 2011-12-06 Motion Engineering Inc. Method and system for removing and returning nodes in a synchronous network
US8588253B2 (en) 2008-06-26 2013-11-19 Qualcomm Incorporated Methods and apparatuses to reduce context switching during data transmission and reception in a multi-processor device
US9001654B2 (en) * 2009-08-28 2015-04-07 Telefonaktiebolaget L M Ericsson (Publ) Enhanced multiplexing for single RLC entity
US8725919B1 (en) 2011-06-20 2014-05-13 Netlogic Microsystems, Inc. Device configuration for multiprocessor systems
JP5916355B2 (ja) 2011-11-21 2016-05-11 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation プログラムの命令を実行する装置および命令をキャッシュするシステム
JP5791529B2 (ja) 2012-01-19 2015-10-07 ルネサスエレクトロニクス株式会社 メモリ制御装置及び制御方法並びに情報処理装置
US9036993B2 (en) * 2012-02-13 2015-05-19 Marvell World Trade Ltd. Method and apparatus for dynamically allocating bandwidth to a client in a passive optical network
US9170971B2 (en) 2012-12-26 2015-10-27 Iii Holdings 2, Llc Fabric discovery for a cluster of nodes
WO2015089058A1 (en) 2013-12-12 2015-06-18 Marvell World Trade Ltd. Method and apparatus for transferring information within and between system-on-chips via intra-chip and inter-chip hopping buses
US9959237B2 (en) 2013-12-12 2018-05-01 Marvell World Trade Ltd. Method and apparatus for transferring information within and between system-on-chips via intra-chip and inter-chip hopping buses
US9588893B2 (en) * 2014-11-10 2017-03-07 International Business Machines Corporation Store cache for transactional memory

Also Published As

Publication number Publication date
US20170039152A1 (en) 2017-02-09
TW201706860A (zh) 2017-02-16
TWI703437B (zh) 2020-09-01
TWI695262B (zh) 2020-06-01
TW201717044A (zh) 2017-05-16
US10318453B2 (en) 2019-06-11
US20170038996A1 (en) 2017-02-09
US10474597B2 (en) 2019-11-12
US10552350B2 (en) 2020-02-04
US20170039149A1 (en) 2017-02-09
US20170041225A1 (en) 2017-02-09
TWI703445B (zh) 2020-09-01
US20170039154A1 (en) 2017-02-09
TW201715402A (zh) 2017-05-01
TWI705327B (zh) 2020-09-21
TWI695268B (zh) 2020-06-01
US10339077B2 (en) 2019-07-02
US10198376B2 (en) 2019-02-05
TW201717019A (zh) 2017-05-16

Similar Documents

Publication Publication Date Title
JP6581277B2 (ja) データパケット転送
TWI543566B (zh) 基於軟體定義網路的資料中心網路系統及其封包傳送方法、位址解析方法與路由控制器
TWI703437B (zh) 用於在mochi空間中進行未知位址發現之系統及方法
JP5373625B2 (ja) マルチキャストルーティングのための方法および装置
US20190014034A1 (en) Optimized equal-cost multi-path (ecmp) forwarding decision in bit index explicit replication (bier)
CN109995654B (zh) 一种基于隧道传输数据的方法及装置
US10218581B2 (en) Generation of network-on-chip layout based on user specified topological constraints
TWI793361B (zh) 用於藍芽網路之獨立冗餘路徑探索
CN109698788A (zh) 流量转发方法和流量转发装置
US9565112B2 (en) Load balancing in a link aggregation
US20150200852A1 (en) Method and apparatus for establishing a virtual interface for a set of mutual-listener devices
WO2020062268A1 (zh) 在网络中的负载均衡和报文重排序方法及装置
US10257080B1 (en) Hardware resource allocation for equal-cost multi-path groups
JP5105096B2 (ja) 通信ネットワーク、情報処理装置およびアドレス割当方法
JP2024500548A (ja) パケット転送方法および装置、ならびにネットワークシステム
CN106789540B (zh) 一种网关部署方法和装置
US20240020261A1 (en) Peer-to-peer route through in a reconfigurable computing system
CN106209554A (zh) 跨虚拟可扩展局域网的报文转发方法和设备
JP2023511257A (ja) パケット送信方法および装置、ならびに記憶媒体
CN102299857B (zh) 一种组播报文处理方法、线卡及通信设备
WO2017023678A1 (en) Systems and methods for implementing topoloby-based identification process in a mochi environment
US10033625B2 (en) Loop avoidance in repeater networks
JP4613967B2 (ja) 通信経路設定方法、通信経路設定プログラム、通信端末、無線ネットワークシステム
WO2016115913A1 (zh) 一种数据处理方法及装置
WO2022001537A1 (zh) 网络拓扑发现方法、装置和计算机可读存储介质

Legal Events

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