CN117640132A - 经由标准互连件的端到端事务完整性 - Google Patents
经由标准互连件的端到端事务完整性 Download PDFInfo
- Publication number
- CN117640132A CN117640132A CN202311104667.1A CN202311104667A CN117640132A CN 117640132 A CN117640132 A CN 117640132A CN 202311104667 A CN202311104667 A CN 202311104667A CN 117640132 A CN117640132 A CN 117640132A
- Authority
- CN
- China
- Prior art keywords
- integrity
- transaction
- message
- regular
- subsystem
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
- 230000004044 response Effects 0.000 claims abstract description 224
- 239000003999 initiator Substances 0.000 claims abstract description 71
- 238000000034 method Methods 0.000 claims abstract description 50
- 238000004891 communication Methods 0.000 claims abstract description 25
- 230000015654 memory Effects 0.000 claims description 61
- 238000012545 processing Methods 0.000 claims description 10
- 125000004122 cyclic group Chemical group 0.000 claims description 6
- 230000008569 process Effects 0.000 description 30
- 230000005540 biological transmission Effects 0.000 description 21
- 230000001360 synchronised effect Effects 0.000 description 13
- 230000008901 benefit Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 7
- 230000000977 initiatory effect Effects 0.000 description 7
- 238000001514 detection method Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000005291 magnetic effect Effects 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 101100498823 Caenorhabditis elegans ddr-2 gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System 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
- G06F15/7825—Globally asynchronous, locally synchronous, e.g. network on chip
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Hardware Redundancy (AREA)
Abstract
公开一种用于检查经由网络互连件的通信的端到端完整性的芯片上系统(SoC)方法和设备,其中所述SoC包括经由所述网络互连件连接到目标子系统的发起者子系统,其中第一完整性模块被配置成基于由所述发起者子系统发送或接收的常规事务消息计算第一完整性值,且经由所述网络互连件将保护信息事务(PIT)消息发送到所述目标子系统,其中第二完整性模块被配置成基于由目的地子系统发送或接收的常规事务消息计算第二完整性值,且经由所述网络互连件将PIT响应消息发送到所述发起者子系统,且其中兼容性模块比较所述第一完整性值与所述第二完整性值,以验证经由所述网络互连件发送或接收的所述常规事务消息的所述端到端完整性。
Description
技术领域
本发明大体上涉及信息处置系统领域。在一个方面中,本发明涉及在与信息处置系统一起使用的标准互连件中提供数据事务完整性检查和恢复。
背景技术
信息处置系统为基于计算机的工具,主要经设计以计算、分类、处理、发射、接收、检索、发起、切换、存储、显示、显现、测量、检测、记录、再现、处置或利用任何形式的信息、智能或数据以用于商业、科学、控制或其它目的。在汽车市场应用中,信息处置系统越来越多地以具有一个或多个微处理器或微控制器的任何合适配置的集成电路形式实施,但不同集成电路配置提供用于实施所需信息处置系统功能性的不同挑战。举例来说,多处理器芯片上系统(SoC)为包括多个CPU处理器或核心的单个集成电路管芯、基板或微芯片,所述CPU处理器或核心经由互连件网络或总线与单个集成电路管芯、基板或微芯片上的计算机或其它电子系统的额外组件的组合进行通信。归因于随机硬件故障的增加的威胁,有效地实现高可靠性和可信性需要对芯片上SoC通信的端到端事务完整性和可预测性。这些数据完整性挑战通过基于SoC的信息处置系统放大,所述基于SoC的信息处置系统并不仅仅依赖于本地嵌入式紧密耦合存储器(TCM),而且还执行来自外部DRAM的代码,此举在确保与CPU处理器/核心交换的代码/数据的完整性方面存在挑战。虽然DRAM控制器通常包括直插式错误校正编码(ECC)特征以保护DRAM中的数据完整性,但CPU处理器/核心与DRAM控制器之间的通信链路仍然容易发生数据错误或故障。
为了消除、控制或抑制数据故障的影响,已开发芯片上网络(NoC)互连件,所述互连件包括实现目标ASIL层级的端到端保护的数据完整性保护特征,但此类解决方案实施起来复杂且昂贵。已开发其它解决方案以构建具有在事务传播通过NoC的方式上检测差异的逻辑的步调一致式(lock-step)NoC互连件。然而,此方法也是在区域上昂贵的,因为其基本上使NoC的区域加倍。
如从上文中所见,用于操作和控制基于SoC的信息处置系统的现有解决方案由于提供端到端数据完整性保护的挑战而在实际水平下极其困难。在参考随附图式和详细描述审阅本申请的其余部分之后,常规过程和技术的其它限制和缺点对于本领域的技术人员来说将变得显而易见。
发明内容
到现在,应了解,本文中已提供用于检查经由网络互连件的通信的端到端完整性的多处理器系统(SoC)设备、方法和系统。在所选实施例中,所述网络互连件可为芯片上网络(NoC)总线。在所选实施例中,所述网络互连件为不包括内置完整性保护结构的非安全感知芯片上网络(NoC)总线。在其它实施例中,所述网络互连件可为计算高速链路(CXL)互连件。如所公开,SoC设备包括发起者SoC子系统(例如,处理器核心子系统),所述发起者SoC子系统经配置以经由网络互连件发送常规事务消息且从网络互连件接收常规事务响应消息,其中常规事务消息和常规事务响应消息并不包括完整性值。另外,SoC设备包括目标SoC子系统(例如,存储器控制器子系统),所述目标SoC子系统经配置以从网络互连件接收常规事务消息且经由网络互连件将常规事务响应消息发送到发起者SoC子系统。SoC设备还包括第一完整性模块,所述第一完整性模块连接在所述发起者SoC子系统与网络互连件之间,其中所述第一完整性模块经配置以基于所述常规事务消息或所述常规事务响应消息计算第一完整性值,且经由所述网络互连件将保护信息事务(PIT)消息发送到所述目标SoC子系统。在所选实施例中,所述常规事务消息和所述PIT消息各自包括存储器地址字段、事务ID字段和具有用于所述常规事务消息的第一值或用于所述PIT消息的第二值的用户位字段。另外,所述SoC设备包括第二完整性模块,所述第二完整性模块连接在所述网络互连件与所述目标Soc子系统之间,其中所述第二完整性模块经配置以基于所述常规事务消息或所述常规事务响应消息计算第二完整性值,且经由所述网络互连件将PIT响应消息发送到所述发起者SoC子系统。在所选实施例中,所述第一完整性值和第二完整性值各自为依据包含在所述存储器地址字段和事务ID字段中的信息以及包含在所述常规事务消息或常规事务响应消息中的信息计算的循环冗余检查(CRC)值。所述SoC设备还包括兼容性模块,所述兼容性模块经配置以比较所述第一完整性值与所述第二完整性值,以验证经由所述网络互连件发送的所述常规事务消息或所述常规事务响应消息的所述端到端完整性。在其中所述发起者SoC子系统被配置成经由所述网络互连件将常规写入事务消息发送到所述目标SoC子系统的所选实施例中,所述第一完整性模块被配置成将经由所述网络互连件发送的所述PIT消息中的所述第一完整性值发送到所述目标SoC子系统;所述第二完整性模块被配置成基于来自所述常规写入事务消息的写入地址、事务ID和写入数据计算所述第二完整性值;且所述兼容性模块包括于所述第二完整性模块中,且被配置成比较所述第一完整性值与所述第二完整性值以验证经由所述网络互连件发送的所述常规写入事务消息的所述端到端完整性。在其中所述发起者SoC子系统被配置成经由所述网络互连件将常规读取事务消息发送到所述目标SoC子系统的其它实施例中,所述第二完整性模块被配置成经由所述网络互连件将常规读取事务响应消息中的读取数据发送到所述发起者SoC子系统,且将所述第二完整性值包括在经由所述网络互连件发送到所述发起者SoC子系统的所述PIT响应消息中;所述第一完整性模块被配置成基于来自所述常规读取事务响应消息的读取地址、事务ID和读取数据计算所述第一完整性值;且所述兼容性模块包括于所述第一完整性模块中,且被配置成比较所述第一完整性值与所述第二完整性值以验证经由所述网络互连件发送的所述常规读取事务消息的所述端到端完整性。
在另一形式中,提供一种用于经由网络互连件(例如芯片上网络(NoC)总线)的通信的端到端完整性保护的多处理器芯片上系统(SoC)设备、方法和系统。在所公开的方法中,第一完整性模块接收由发起者SoC子系统(例如,处理器核心子系统)生成常规写入事务消息,其中所述常规写入事务消息包括用于目标SoC子系统(例如,存储器控制器子系统)的写入地址和数据,且不包括完整性值。另外,所述第一完整性模块经由所述SoC网络互连件将所述常规写入事务消息转发到第二完整性模块,所述第二完整性模块连接在所述SoC网络互连件与所述目标Soc子系统之间,其中所述第二完整性模块转发所述常规写入事务消息以供所述目标SoC子系统进行写入处理以将写入响应消息传回到所述第二完整性模块。在所述第一完整性模块处,基于由所述第一完整性模块在所述常规写入事务消息中接收的所述写入地址和数据计算第一完整性值。另外,第一完整性模块生成包括第一完整性值的写入保护信息事务(PIT)消息,且接着经由SoC网络互连件将写入PIT消息发送到第二完整性模块。在所选实施例中,所述常规写入事务消息和所述写入PIT消息各自包括存储器地址字段、写入数据字段、事务ID字段和具有用于所述常规写入事务消息的第一值或用于所述写入PIT消息的第二值的用户位字段。在所述第二完整性模块处,基于包括在经由所述SoC网络互连件接收的所述常规写入事务消息中的所述写入地址和数据计算第二完整性值。在所选实施例中,所述第一完整性值和第二完整性值各自为依据包含在所述存储器地址字段、写入数据字段和事务ID字段中的信息所计算的循环冗余检查(CRC)值。另外,所述第二完整性模块比较所述第一完整性值与所述第二完整性值,以检测所述第一完整性值与所述第二完整性值之间是否存在匹配。如果第一完整性值与第二完整性值之间存在匹配,则第二完整性模块生成具有第一值的PIT响应消息,所述第一值指示经由SoC网络互连件的通信存在端到端完整性。并且,如果第一完整性值与第二完整性值之间不存在匹配,则第二完整性模块生成具有第二值的PIT响应消息,所述第二值指示经由SoC网络互连件的通信不存在端到端完整性。随后,第二完整性模块经由SoC网络互连件将写入响应消息转发到第一完整性模块,并且还经由SoC网络互连件将PIT响应消息发送到第一完整性模块。在所述第一完整性模块处,生成发送到所述发起者SoC子系统的常规写入事务响应消息。在所选实施例中,至少响应于PIT响应消息和写入响应消息而生成常规写入事务响应消息。在其它实施例中,在从第二完整性模块接收PIT响应消息之前生成常规写入事务响应消息,且第一完整性模块随后响应于PIT响应消息具有第二值而生成发送到发起者SoC子系统的中断消息。
在另一形式中,提供一种用于经由网络互连件(例如芯片上网络(NoC)总线)的通信的端到端完整性保护的多处理器系统芯片上系统(SoC)设备、方法和系统。在所公开的方法中,第一完整性模块接收由发起者SoC子系统生成的常规读取事务消息,其中所述常规读取事务消息包括目标SoC子系统的读取地址,但不包括完整性值。作为响应,所述第一完整性模块经由所述SoC网络互连件将所述常规读取事务消息转发到第二完整性模块,所述第二完整性模块连接在所述SoC网络互连件与所述目标Soc子系统之间,其中所述第二完整性模块转发所述常规读取事务消息以供所述目标SoC子系统进行读取处理以将包括读取数据的读取响应消息传回到所述第二完整性模块。在第一完整性模块处,存储来自常规读取事务消息的读取地址。另外,第一完整性模块生成读取保护信息事务(PIT)消息,并经由SoC网络互连件将其发送到第二完整性模块。在所选择的实施例中,常规读取事务消息和读取PIT消息各自包括存储器地址字段、事务ID字段和具有用于常规读取事务消息的第一值或用于读取PIT消息的第二值的用户位字段。在第二完整性模块处,基于从目标SoC子系统接收的读取响应消息中包括的读取地址和读取数据来计算第一完整性值。在所选实施例中,第一完整性值依据包含在常规读取事务消息的存储器地址字段和事务ID字段中的信息和来自包括于从目标SoC子系统接收的读取响应消息中的读取数据而被计算为第一循环冗余检查(CRC)值。另外,第二完整性模块生成包括第一完整性值的PIT响应消息,且接着经由SoC网络互连件将PIT响应消息(和第一完整性值)发送到第一完整性模块。第二完整性模块还经由SoC网络互连件将读取响应消息转发到第一完整性模块。基于存储在第一完整性模块处的读取地址和由第一完整性模块接收的读取响应消息中的读取数据,第一完整性模块计算第二完整性值。在所选实施例中,第二完整性值依据包含在常规读取事务消息的存储器地址字段和事务ID字段中的信息和来自包括于从第二完整性模块接收的PIT响应消息中的读取数据而被计算为第二循环冗余检查(CRC)值。所述第一完整性模块还比较所述第一完整性值与所述第二完整性值,以检测所述第一完整性值与所述第二完整性值之间是否存在匹配。如果第一完整性值与第二完整性值之间存在匹配,则第一完整性模块生成具有第一值的常规读取事务响应消息,所述第一值指示经由SoC网络互连件的通信存在端到端完整性。但如果第一完整性值与第二完整性值之间不存在匹配,则第一完整性模块生成具有第二值的常规读取事务响应消息,所述第二值指示经由SoC网络互连件的通信不存在端到端完整性。在所选实施例中,至少响应于在第一完整性模块处接收的PIT响应消息和读取响应消息而生成常规读取事务响应消息。在其它实施例中,在从第二完整性模块接收PIT响应消息之前生成常规读取事务响应消息,且第一完整性模块随后响应于PIT响应消息具有第二值而生成发送到发起者SoC子系统的中断消息。
附图说明
当结合以下附图考虑以下详细描述时,可理解本发明和其实现的许多目标、特征和优点,在图中:
图1为根据本公开的所选实施例的芯片上系统(SOC)的示意性框图,所述芯片上系统包括可用以经由标准互连件提供端到端完整性保护的事务检查器生成器和事务检查器端点。
图2为根据本公开的所选实施例的通过SOC子系统提供同步端到端完整性的事务处置的图解说明。
图3为根据本公开的所选实施例的通过SOC子系统提供异步端到端完整性的事务处置的图解说明。
图4为根据本公开的所选实施例的使用一个或多个寄存器来实施协议转换器的事务检查器生成器的简化示意性框图。
图5为根据本公开的所选实施例的使用一个或多个寄存器来实施协议转换器的事务检查器端点的简化示意性框图。
图6为展示根据本公开的所选实施例的示出由事务检查器生成器和事务检查器端点在同步完整性模式中处置写入事务时执行的步骤序列的简化流程图。
图7为根据本公开的所选实施例的示出由事务检查器生成器和事务检查器端点在同步完整性模式中处置读取事务时执行的步骤序列的简化流程图。
图8为根据本公开的所选实施例的具有多个SOC子系统的SOC芯片的简化示意图,所述SOC子系统包括用于经由标准互连件提供端到端完整性保护的事务检查器生成器和/或事务检查器端点。
具体实施方式
描述用于提供经由互连件发送的常规事务的端到端事务完整性的事务完整性保护系统、设备和操作方法,具体是通过经由互连件发送针对待保护的每个常规事务的额外保护信息事务(PIT)消息。在所选实施例中,每个PIT消息包括完整性信息(例如,具有循环冗余检查(CRC)数据或其它合适的错误检测编码技术),所述完整性信息可经处理以检测当经由互连件发送常规事务时可能产生的错误。所公开的事务完整性系统可通过位于互连路径的相对端上的事务检查器生成器(TCG)硬件电路和事务检查器端点(TCEP)硬件电路来实施。在操作中,TCG硬件电路发送常规事务,并且还生成用于发射的PIT消息,所述PIT消息将用于保护经由互连路径的常规事务。在所选实施例中,PIT消息可为由受保护的常规事务生成且包括用户位和CRC值连同共享目的地地址和事务ID的小(例如,32位)消息。TCG硬件电路还检查对每个常规事务和PIT消息的响应,以检测经由互连路径传送期间可能发生的任何故障。另外,TCEP硬件电路可连接且经配置以接收常规事务和PIT消息,且取决于常规事务类型而基于PIT消息评估常规事务的完整性。举例来说,接收常规写入事务的TCEP硬件电路可基于所接收的请求信息及在常规写入事务中的写入数据而计算保护信息(例如,CRC数据),且接着将所计算的CRC数据与在PIT消息中接收的CRC数据进行比较。可替换的是,接收常规读取事务的TCEP硬件电路可基于用于常规读取事务的所接收数据而计算保护信息(例如,CRC数据),且接着将保护信息在PIT消息的读取数据中发送回到发起TCG硬件电路。TCEP硬件电路还经配置以生成且检查连同常规事务一起去往其最终目的地的奇偶检查信息。如从上文所见,存在位于互连路径的每个端点处的TCEP硬件电路,具有TCG硬件电路的子系统可到达所述端点。可能发生的故障的一个类别是整个包的丢失或误定向。这可由基于包ID具有预期包顺序的TCEP和TCG两者来管理。类似于通过CRC错误检测到的损坏,可通过查看顺序上的不一致或通过使用未接收到合适包时的逾时来检测丢失(或误定向包)。
如从前文可见,所公开的事务完整性保护机构存在数个优点。首先,通过提供其中通过互连事务而不是底层互连硬件提供数据完整性的事务完整性系统,可以经由任何互连件保护互连事务的内容,由此消除具有集成的数据完整性保护特征的互连件的费用、复杂性和硅额外开销。在所选实施例中,所公开的事务完整性保护机构可与任意的非安全感知互连件或类似网络一起使用,无论完全体现在SOC上还是使用一般网络体现在多个SOC之间。如本文所使用,非安全感知互连件可理解为指代不具有用于错误隐藏/恢复的内置机构或满足功能安全性要求的任何合适的传输机构(互连件/网络),包括但不限于不包括内置完整性保护结构的芯片上网络(NoC)总线。并且,通过支持流动穿过互连路径的不受保护和受保护的事务两者,不需要额外开销来支持非安全相关发起者。结果,不需要修改互连件以将安全能力添加到业务的子集。另外,所公开的事务完整性保护机构使得能够使用独立于功能包路由且不具有固定计时关系的标准信息包传送安全信息。通过此方法,硅上存在低额外负荷,与互连件相关联的设计成本降低,且不需要购买昂贵IP。另外,PIT消息的小的大小通过将单个32位PIT消息添加到每个常规事务和响应而对互连路径的带宽强加最小影响。
现将参考示出功能和/或逻辑块组件和各种处理步骤的附图详细地描述本发明的各种说明性实施例。虽然在以下描述中阐述了各种细节,但应了解,可以在没有这些具体细节的情况下实践本发明,并且可以对本文中描述的本发明作出许多特定于实施方案的决策以实现装置设计者的特定目标,例如与工艺技术或相关设计约束条件的符合性,这些约束条件随实施方案的不同而不同。虽然此类研发的工作可能是复杂且耗时的,然而它对于受益于本公开的本领域的普通技术人员来说不过是常规的任务日常工作。举例来说,在最大程度上通过本领域的技术人员已知的电子组件和电路实施本发明的所选实施例,且因此,未在任何更大程度上解释电路细节,因为此类细节是众所周知的,且不认为对于教示本领域的技术人员如何制备或使用本发明来说係必要的。另外,为了避免限制或混淆本发明,参考简化电路示意图、逻辑图和流程图来描绘所选方面,而不包括每个电路细节或特征。此类描述和表示由本领域的技术人员使用,以将他们的工作的实质描述和传达给本领域的其它技术人员。一般来说,“算法”是指产生所要结果的步骤的自相一致序列,其中“步骤”是指对物理量的操控,其可以但不需要一定呈能够被存储、传送、组合、比较和以其它方式操控的电或磁信号的形式。通常将这些信号称为位、值、元素、符号、字符、项、数等。这些和类似术语可与适当的物理量相关联,并且仅仅是应用于这些量的方便标签。除非另外确切地陈述为如从以下论述显而易见,否则应了解,在整个描述中,使用如“处理(processing)”或“计算(computing/calculating)”或“确定(determining)”或“显示(displaying)”等的术语的论述是指将表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操纵和变换为类似地表示为计算机系统存储器或寄存器或其它此类信息储存、传输或显示装置内的物理量的其它数据的计算机系统或类似电子计算装置的动作和处理。
现参考图1,描绘芯片上系统(SOC)的示意性框图100,所述芯片上系统包括经由互连子系统20连接在一起的多个SoC子系统10、30、40、50、60。如所描绘,一个或多个SoC子系统10、60为经由互连子系统20发布或发送事务到接收并处理事务的一个或多个目标SoC子系统30、40、50的事务发起者。虽然互连子系统20示出为是以不包括事务完整性保护的芯片上网络(NoC)21实施,但应了解,可使用任何合适的互连或纵横接线器(例如,DMB/DBS/AXI/SSI)。
对于发布具有完整性要求的事务的任何发起SoC子系统(例如,SoC子系统核心10),发起者模块11(例如,Cortex-M4 CPU或其它系统控制器单元(SCU))经由受奇偶检查保护的路径(例如,高级高性能总线)连接到事务检查器生成器(TCG)12,所述事务检查器生成器12连接且经配置以经由互连子系统20发送常规事务(未图示)连同伴随的PIT消息。如所公开,每个PIT消息包括经设置以将事务识别为PIT消息的一个或多个用户位字段,且还包括与正受保护的常规事务相同的目的地地址和事务ID,使得其被引导到与常规事务相同的目标SoC子系统。另外,每个TCG(例如,12)连接且经配置以接收常规事务响应(未图示)以及由目标SoC子系统经由互连子系统20传回的伴随PIT响应(PITR)消息。然而,对于发布不具有完整性要求的事务的发起SoC子系统(例如,SoC子系统60),发起者模块61连接且经配置以直接经由互连子系统20发送事务。
以类似方式,对于处理具有完整性要求的事务的任何目标SoC子系统,事务检查器端点(TCEP)经连接以从互连子系统20接收并处理事务,且经由受奇偶检查保护的路径(例如,AXI/SSI总线)传达到目标模块。另外,每个TCEP连接且经配置以连同随附PIT响应(PITR)消息生成常规事务响应(未图示),所述消息经由互连子系统20传回到发起SoC子系统。举例来说,DRAM SoC子系统30包括TCEP 31,所述TCEP 31经连接以通过经由受奇偶检查保护的路径传达到DRAM控制器32(其经由内嵌ECC路径与DRAM存储器33通信)且通过生成常规事务响应(未图示)连同用于传回到发起SoC子系统的随附PIT响应(PITR)消息而从互连子系统20接收和处理存储器存取事务。以类似方式,SoC子系统40包括TCEP 41,所述TCEP41经连接以从互连子系统20接收并处理事务,且经由受奇偶检查保护的路径传达到目标模块42。然而,对于不具有完整性要求的任何目标SoC子系统50,目标模块51可直接连接以从互连子系统20接收并处理事务。
在所选实施例中,TCEP功能性并不并入于每个目标SoC子系统中,而是可改为集成于互连子系统20内。举例来说,互连子系统20可包括TCEP 23,所述TCEP 23经连接以接收和处理来自NoC 21的事务且在互连子系统20处与本地外围模块24通信。以类似方式,互连子系统20包括TCEP 22,所述TCEP 22经连接以从NoC21接收并处理事务且传达到目标模块51。
通过将TCG 12定位在每个发起SoC子系统处并且将一个或多个TCEP 22、23、31、41定位在目标SoC子系统处,可通过生成PIT和PTIR消息来保护经由标准互连件20发送的来自安全相关发起者SoC子系统的事务,所述PIT和PTIR消息经交换以实现互连路径上的事务完整性。系统层级处的实施方案在发布具有完整性要求的事务的每个发起者SoC子系统处需要一个TCG。对于由需要完整性保护的发起者发布的每个事务(也称为常规事务),TCG生成经由互连件20连同常规事务一起传输的PIT(保护信息事务),并且还处置对PIT的响应(PITR)。系统层级实施方案还针对每个目的地SoC子系统包括可由受保护事务到达的一个TCEP,其中每个TCEP经配置以计算对PIT事务的响应以用于经由互连件20传输到发起者SoC子系统。
在生成PIT或PITR消息时,TCG或TCEP可生成每个PIT或PITR消息以看起来类似于常规事务而格式化,但还包括保护信息。举例来说,PIT消息的所选实施例可包括与常规事务相同的目的地地址(在32位边界上对准)和与常规事务相同的事务ID。另外,PIT消息可包括设定为第一值(例如,0b1)以将事务识别为PIT消息,或设定为第二值(例如,0b0)以将事务识别为常规事务的一个或多个用户位字段。在所选实施例中,可使用户位字段一式三份以对位翻转具有抗性。另外,所生成的PIT消息可包括通过使用CRC-32总和检查码算法从ITUT V.42协议计算的保护信息以检测受保护常规事务中的数据损坏,但可使用任何合适的错误检测/校正协议。如将了解,PITR消息可经格式化以包括与常规事务响应消息相同的信息,例如目的地地址,且还可包括在TCEP处计算的保护信息。
通过如图所示在互连子系统20的外围处定位TCG和TCEP电路,可以同步完整性模式或异步完整性模式实施用于经由互连子系统20发送的常规事务的数据完整性保护。通过同步完整性模式,TCG电路仅在PIT响应回到TCG之后才生成对由发起者SoC子系统发布的常规事务的响应。而对于同步保护模式,完整性保护机构外加时延要求,因为发起SoC子系统经历足够长以允许常规事务和响应经由互连子系统20完全巡览的事务持续时间。然而,对于异步完整性模式,TCG电路生成对由发起者SoC子系统发布的常规事务的立即响应,且如果当PIT响应回到TCG时检测到错误,则TCG生成中断用信号表示存在PIT错误。因此,由于事务响应更快速地提供,因此在异步保护模式中提供的保护机构对由发起者看到的时延没有影响。在发起处理器核心子系统的情况下,此可导致损坏的代码或数据的执行或消耗,但中断的发布可随后用于删除损坏的代码/数据操作。
为了改进对本公开的所选实施例的理解,现在参考图2,图2描绘通过包括TCG单元220和TCEP单元240以提供用于经由NoC子系统230进行的通信的同步端到端完整性的SoC子系统210、250进行的事务处置的简化图解说明。作为第一步骤(1),发起者子系统210发布被发送到TCG单元220的常规事务211。如将了解,常规事务211可为存储器存取请求,例如存储器写入请求或存储器读取请求。常规事务可具有任何合适的消息格式。举例来说,所描绘的常规事务201示出为包括设定成第一值(例如,0)的用户位字段、目的地地址字段、事务ID字段和数据字段的n位消息。
在第二步骤(2)处,TCG单元220将常规事务221转发到NoC子系统230。另外,TCG单元220在转发常规事务221不久之后生成PIT事务222并将PIT事务222转发到NoC子系统230。PIT事务可具有任何合适的消息格式。举例来说,所描绘的PIT事务202示出为包括设定成第二值(例如,1)的用户位字段、目的地地址字段、事务ID字段和CRC数据字段的32位消息。如本文所公开,PIT事务字段的内容将取决于受保护的常规事务的类型。举例来说,TCG单元220可通过使用写入地址和数据字段计算CRC值来计算常规写入事务的完整性信息,且接着生成32位不可修改写入携载PIT事务222。可替换的是,TCG单元220可开始通过存储常规事务的读取地址以用于后续检索来计算常规读取事务的完整性信息,且接着生成32位不可修改读取PIT事务222。
在NoC子系统230处,作为常规事务231和PIT事务232,相应地接收和转发常规事务221和PIT事务222到TCEP单元240。在其中NoC子系统230为不包括内置完整性保护结构的标准互连件的实施例中,由于不存在由复杂的事务处理引起的时延,因此以极少或没有延迟转发事务221、222。
在第三步骤(3)处,TCEP单元240通过将常规事务241转发到目标SoC子系统250而对常规事务231作出响应。另外,TCEP单元240在计算响应消息242和PIT响应消息243之前接收转发的PIT事务232,且接着等待从目标SoC子系统250接收响应消息251。在从目标SoC子系统250接收到响应消息251之后,TCEP单元240将其作为响应消息242转发到NoC子系统230。另外,TCEP单元240计算PIT响应消息243。响应消息242和PIT响应消息243可具有任何合适的消息格式,且可包括例如用户位字段、目的地地址字段、事务ID字段和有效载荷字段。如本文所公开,PIT响应消息字段的内容将取决于受保护的常规事务的类型。
举例来说,TCEP单元240可通过使用包含在常规事务231中的写入地址和数据计算本地完整性信息(例如,本地CRC值)来计算常规写入事务的预期完整性保护信息。为了考虑由NoC子系统230拆分的常规写入事务,TCEP单元240可经配置以仅使用来自第一常规事务231的写入地址,且只要其接收到常规事务,就保持用来自额外常规事务231的数据计算完整性信息,直到接收到对应于常规事务(例如231)的PIT事务(例如232)为止。在接收到PIT事务232之后,TCEP 240检查随PIT事务232接收到的完整性信息(例如,CRC值)对应于本地完整性信息,并且还比较来自PIT事务232的写入地址与第一常规事务231的写入地址。如果所接收的完整性信息匹配本地完整性信息,且如果PIT事务232的写入地址与第一常规事务231之间存在匹配,则TCEP单元240生成“正常”PIT响应消息243,但如果其不匹配,则TCEP单元240生成“错误”PIT响应消息243。
可替换的是,TCEP单元240可通过使用常规事务231的读取地址开始计算本地完整性信息(例如,本地CRC值),且接着用从目标SoC子系统250在读取数据响应消息251中传回的读取数据来更新本地完整性信息的计算来计算常规读取事务的预期完整性信息。为了考虑由NoC子系统230拆分的常规读取事务,TCEP单元240可经配置以仅使用来自第一常规事务231的读取地址。TCEP单元240还将读取数据响应消息251作为转发的响应消息242连同PIT响应消息243一起转发到NoC子系统230。如果对常规事务241的读取数据响应消息251为错误,则完整性信息在发送到NoC子系统230之前损坏,在此情况下,TCEP单元240生成“错误”PIT响应消息243。否则,TCEP单元240生成包括本地完整性信息(例如,本地CRC值)的“正常”PIT响应消息243。
在NoC子系统230处,相应地接收常规响应消息242和PIT响应消息243并将其转发到TCG单元220,作为常规响应消息233和PIT响应消息234。在其中NoC子系统230为不包括内置完整性保护结构的标准互连件的实施例中,由于不存在由复杂的事务处理引起的时延,因此以极少或没有延迟转发响应消息233、234。
在第四步骤(4)处,TCG单元220检查从NoC子系统230接收的常规响应消息233和PIT响应消息234,且生成取决于正受保护的常规事务的类型的用于发起者子系统210的最终响应消息223。对于写入事务,如果常规响应消息233和PIT响应消息234两者皆为正常消息,则TCG单元220生成“正常”最终写入响应消息223,否则生成“错误”最终写入响应消息223。对于读取事务,TCG单元220可通过从存储器检索先前存储的读取地址(在步骤(2)处存储)来完成或更新预期完整性信息的计算,且接着根据所检索的读取地址和包含在常规响应消息233中的读取数据来计算常规读取事务的本地完整性保护信息(例如,本地CRC值)。如果PIT响应消息234中的所接收的完整性信息匹配本地完整性保护信息,且如果常规响应消息233和PIT响应消息234两者皆是“正常”消息,则TCG单元220生成最终读取响应消息223以包括“正常”响应消息243,否则生成“错误”最终读取响应消息223。此实施方案增加读取事务提供带内总线错误响应的时延,这是由于发起者子系统210随着最终响应消息223的递送而在带内获得其事务的状态,且来自发起者视点的事务的总持续时间在生成最终响应消息223之前提供待确认的同步端到端事务完整性的足够时间。
为了改进对本公开的所选实施例的理解,现在参考图3,图3描绘通过包括TCG单元320和TCEP单元340以提供用于经由NoC子系统330进行的通信的异步端到端完整性的SoC子系统310、350进行的事务处置的简化图解说明。在所描绘的异步完整性模式中,当发起者子系统310发布常规事务311时,在接收到PIT响应消息334之前不保持对发起者子系统310的最终响应消息323,而是实际上不延迟地发布,且接着仅在PIT响应消息334指示在经由NoC子系统330递送常规事务期间存在数据错误的情况下发布中断消息324之后才再调用或中止。举例来说,存在支持具有早期响应能力的发布写入操作的协议,例如AHB,其中最终响应消息323传回到发起者子系统310以用于写入事务。对于异步完整性操作模式,在未损坏常规事务的事务的持续时间内存在减少的时延,因为最终响应消息323仅在短延迟之后传回到发起者子系统310。
如所指示,用于提供异步端到端完整性的步骤极类似于用于提供同步端到端完整性的步骤,从第一步骤(1)开始,其中发起者子系统310将常规事务311(例如存储器存取请求)发送到TCG单元320。常规事务可具有任何合适的消息格式,例如所描绘的常规事务301,其为包括设定成第一值(例如,0)的用户位字段、目的地地址字段、事务ID字段和数据字段的n位消息。
在第二步骤(2)处,TCG单元320将常规事务321转发到NoC子系统330。另外,TCG单元320将“正常”最终响应消息323发送到发起者子系统310,而不等待确定在经由NoC子系统330递送常规事务期间是否存在数据错误。TCG单元320还在转发常规事务321不久之后生成PIT事务322并将PIT事务322转发到NoC子系统330。PIT事务也可具有任何合适的消息格式,例如所描绘的PIT事务302,其为包括设定成第二值(例如,1)的用户位字段、目的地地址字段、事务ID字段和CRC数据字段的32位消息。对于写入事务,TCG单元320通过从写入地址和数据字段计算完整性信息(例如,CRC值)而生成PIT事务322,且接着生成32位不可修改写入携载PIT事务322以包括所计算的完整性信息。对于读取事务,TCG单元320通过存储常规事务的读取地址以用于后续检索而开始计算完整性信息,且接着生成32位不可修改读取PIT事务322。为了支持异步完整性操作,TCG单元320可包括计时器功能,所述计时器功能测量从将常规事务321发布到NoC子系统330直到从NoC子系统330接收到PIT响应332的时间。如果计时器到期,则事务被视为丢失,且TCG单元320触发中断消息324。
在NoC子系统330分别接收常规事务321和PIT事务322并将其转发到TCEP单元340作为常规事务331和PIT事务332之后,TCEP单元340通过将常规事务341转发到目标SoC子系统350而执行第三步骤(3)。另外,TCEP单元340在计算响应消息342和PIT响应消息343之前接收转发的PIT事务332,且接着等待从目标SoC子系统350接收响应消息351。具体来说,在从目标SoC子系统350接收到响应消息351之后,TCEP单元340将其作为响应消息342转发到NoC子系统330。另外,TCEP单元340计算PIT响应消息343,其中响应消息342和PIT响应消息343可具有任何合适的消息格式,包括例如用户位字段、目的地地址字段、事务ID字段和有效载荷字段。如本文所公开,PIT响应消息字段的内容将取决于受保护的常规事务的类型。
对于写入事务,TCEP单元340可从第一常规事务331中的写入地址且从包含在常规事务331中的数据计算预期完整性保护信息(例如,本地CRC值)。为了考虑由NoC子系统330拆分的常规写入事务,TCEP单元340可经配置以继续用来自额外常规事务331的数据计算完整性信息,直到接收到对应于常规事务(例如,331)的PIT事务(例如,332)为止。在接收到PIT事务332之后,TCEP 340检查随PIT事务332接收到的完整性信息(例如,CRC值)对应于本地完整性信息,并且还比较来自PIT事务332的写入地址与第一常规事务331的写入地址。如果所接收的完整性信息匹配本地完整性信息且如果PIT事务332的写入地址与第一常规事务331之间存在匹配,则TCEP单元340生成“正常”PIT响应消息343。然而,如果它们不匹配,则TCEP单元340生成“错误”PIT响应消息343。
对于读取事务,TCEP单元340可通过使用常规事务331的读取地址开始计算本地完整性信息(例如,本地CRC值),且接着用从目标SoC子系统350在读取数据响应消息351中传回的读取数据来更新本地完整性信息的计算来计算预期完整性信息。为了考虑由NoC子系统330拆分的常规读取事务,TCEP单元340可经配置以仅使用来自第一常规事务331的读取地址。TCEP单元340还将读取数据响应消息351作为转发的响应消息342连同PIT响应消息343一起转发到NoC子系统330。如果对常规事务341的读取数据响应消息351为错误,则完整性信息在发送到NoC子系统330之前损坏,在此情况下,TCEP单元340生成“错误”PIT响应消息343。否则,TCEP单元340生成包括本地完整性信息(例如,本地CRC值)的“正常”PIT响应消息343。
在NoC子系统330接收到常规响应消息333和PIT响应消息334并将其转发到TCG单元320之后,TCG单元320通过检查从NoC子系统330接收到的常规响应消息333和PIT响应消息334以检测在经由NoC子系统330递送常规事务期间是否存在数据错误而执行第四步(4)。如果未检测到数据错误,则TCG单元320不将任何额外响应消息发送到发起者子系统310,因为先前发送“正常”最终响应消息323以指示常规事务成功地传输。然而,如果检测到数据错误,则TCG单元320将中断消息324发送到发起者子系统310。对于写入事务,如果常规响应消息333和/或PIT响应消息334是错误消息,则TCG单元320检测数据错误,且接着发布中断消息324。对于读取事务,TCG单元320通过从存储器检索先前存储的读取地址(在步骤(2)处存储)来完成或更新预期完整性信息的计算,且接着根据所检索的读取地址和包含在常规响应消息333中的读取数据来计算常规读取事务的本地完整性保护信息(例如,本地CRC值)来检测数据错误。如果PIT响应消息334中所接收的完整性信息并不匹配本地完整性保护信息,或如果常规响应消息333和/或PIT响应消息334是“错误”消息,则TCG单元320发布中断消息324。以此方式,发起者子系统310经由带外中断消息324获得其事务的真实状态。
如上文所描述,完整性信息可从存储器存取地址和与常规事务相关联的数据计算。然而,完整性信息还可从在经由NoC子系统传输期间应该保持不变的任何合适的边带信息计算。由于生成经由互连件发送的额外保护信息事务(PIT)消息,可以检测到数个不同的数据错误。
举例来说,作为最简单情况,可检测读取或写入数据中的错误,因为此错误将导致本地计算的完整性信息与PIT消息所携载的完整性信息之间的不匹配。当此类不匹配发生时,在同步完整性操作的情况下,TCG单元生成从TCG单元到发起者的“错误”最终写入响应消息(例如223)。可替换的是,在异步完整性操作的情况下,TCG单元生成由TCG单元触发的中断(例如324)。
另外,当TCEP单元无法调和所接收到的常规事务与所接收到的PIT事务时,可检测在经由NoC子系统传输期间产生的事务ID中的错误。当此发生时,TCEP单元生成“错误”PIT响应消息(例如,243、343)。
另外,由于常规事务和PIT消息将不到达相同的TCEP单元,因此可检测在经由NoC子系统传输期间产生的地址中的错误。举例来说,如果常规事务以指定地址递送到第一TCEP单元且获得响应消息,则如果存在地址错误,则第一TCEP单元永远不会接收到相关联PIT消息。并且,如果第一TCEP单元接收到新常规事务和与其相关联的PIT消息,则第一TCEP单元将保持更新完整性信息,由此触发此第二事务的不匹配和错误。同样,如果第二TCEP单元接收既定保护常规事务但也不接收常规事务的PIT消息,则第二TCEP单元通过生成“错误”PIT响应消息(例如,243、343)而对PIT消息作出响应。
另外,可检测或至少忽略在经由NoC子系统传输期间产生的用户位字段中的错误。举例来说,如果用户位字段中的错误将常规事务变成(错误识别的)PIT消息,则TCEP单元可经配置以通过将其转发到目的地地址而将不是32位长的任何(错误识别的)PIT消息视为常规事务,从而得出安全或无害的错误。然而,如果(错误识别的)PIT消息为32位长,则TCEP单元可经配置以将(错误识别的)PIT消息视为PIT消息。如果存在对保护信息的继续计算,则由TCEP单元生成的PIT响应将基于所述计算的状态。
如果在经由NoC子系统的传输期间产生的用户位字段中的错误将PIT消息改变为(错误识别的)常规事务,则TCEP单元将会将(错误识别的)常规事务转发到其目标目的地,其中任何写入事务将破坏目标地址,且其中任何读取事务将极有可能触发TCG单元处的不匹配。即使不发生这些事件,由TCEP单元接收的下一常规事务也将生成错误。举例来说,如果下一常规事务与(错误识别的)常规事务不为相同类型(读取或写入),则TCEP单元将检测到(错误识别的)常规事务的PIT消息遗失。并且,即使下一常规事务与(错误识别的)常规事务是相同类型(读取或写入),TCEP单元也将继续更新保护信息,同时等待PIT消息,直到计时器将被触发以指示数据错误为止。
在常规事务和PIT消息可经格式化以提供具有冗余位值的用户位字段的程度(例如,使用户位值一式三份),由此可避免用户位字段错误。
为了改进对本公开的所选实施例的理解,现在参考图4,图4描绘使用一个或多个控制寄存器402和Input2NoC协议转换器406将输入总线405上的受奇偶检查保护的事务转换成NoC总线407上的事务的事务检查器生成器(TCG)硬件电路401的简化示意性框图400。如所描绘,控制寄存器402包括TCG输入侧控制逻辑403和TCG NoC侧控制逻辑404以调度和检查在输入总线405上接收到的常规事务和PIT消息以用于经由NoC总线407传输。在由配置总线配置的控制寄存器402的控制下,TCG输入侧403在接收到常规事务时开始计算保护信息,且接着向TCG NoC侧404通知存在待发送的PIT消息。对于写入存取常规事务,TCG输入侧403更新保护信息,直到写入常规事务完成为止,且接着向TCG NoC侧404通知可经由NoC总线407发送PIT写入消息的数据相位。对于读取存取常规事务,TCG输入侧403完成用从NoC总线407接收的读取数据对保护信息的更新,且接着比较经更新的保护信息与在NoC总线407上从PIT响应消息接收到的保护信息,以确定在经由NoC总线407递送读取存取常规事务期间是否存在数据错误。控制寄存器402还由配置总线配置以控制TCG NoC侧404通过使用相同的事务ID和地址检测并发送对应于常规事务且为不可修改的事务的新PIT消息。因此,TCG硬件电路401并不对流经Input2NoC协议转换器406的常规事务的地址和数据相位添加额外循环。唯一的影响是对延迟直到接收到PIT响应消息为止的响应。
为了改进对本公开的所选实施例的理解,现在参考图5,图5描绘使用一个或多个控制寄存器502和NoC2Input协议转换器506将NoC总线505上的事务转换成输出总线507上的受奇偶检查保护事务的事务检查器端点(TCEP)硬件电路501的简化示意性框图500。如所描绘,控制寄存器502包括TCEP NoC输入侧控制逻辑503和TCEP输出侧控制逻辑504以调度和检查在NoC总线505上接收到的常规事务和PIT消息以用于经由输出总线507传输。在由配置总线配置的控制寄存器502的控制下,TCEP硬件电路501是PIT消息的端点。对于每个常规写入事务,TCEP硬件电路501的TCEP NoC输入侧503在向TCEP输出侧504通知常规写入事务可经由输出总线507发送到目的地或目标子系统之前基于从常规写入事务接收到的写入请求和写入数据而计算保护信息,且接着比较本地计算出的保护信息与在PIT消息中接收到的对应于在NoC输入总线505上接收的常规写入事务的保护信息。对于每个常规读取事务,TCEP硬件电路501的TCEP输出侧504基于所接收的读取请求(从常规读取事务接收)和读取数据(从目的地或目标子系统接收)计算保护信息,且接着将保护信息在PIT响应消息中发送回到TCG硬件电路。TCEP硬件电路501还生成和检查连同常规事务一起去往其最终目的地的奇偶检查信息。
为了改进对本公开的所选实施例的理解,现在参考图6,图6描绘示出当在同步完整性模式中处置经由互连件602的写入事务以经由互连件602提供端到端事务完整性时由事务检查器生成器601和事务检查器端点603执行的步骤的通信序列的简化流程图600。如上文所论述,事务检查器生成器601可为SoC系统的部分,其中发起者子系统(未示出)(例如,Cortex-M4子系统)产生经由互连件602传输的一个或多个写入事务。另外,事务检查器端点603还可为SoC系统的部分作为目的地或目标子系统(未示出)的部分,例如经连接以接收并处理写入事务的DRAM存储器控制器子系统。在此类实施例中,互连件602可体现为标准互连件,例如快速路径互连(QM)互连件,但可使用任何合适的互连总线602,例如纵横接线器构造,其允许发起者子系统存取任何目的地或目标子系统,且相反地允许数据和/或响应消息从任何目的地或目标子系统传回到任何发起者子系统。
在步骤610处,事务检查器生成器(TCG)601从发起者子系统(未示出)接收写入事务。在所选实施例中,写入事务包括待写入到目的地或目标子系统(例如,SoC系统上的DRAM存储器)的写入地址、事务ID和写入数据。
在步骤611处,TCG 601经由互连件602将写入事务转发到事务检查器端点(TCEP)603。在所选实施例中,TCG将写入事务格式化为包括目的地或目标子系统的目的地地址、事务ID、被设置成第一值(例如,0b1)以将写入事务识别为常规事务的一个或多个用户位字段以及待存储或写入到目的地或目标子系统的写入数据的常规写入事务。
在步骤620处,TCEP 603经由互连件602从TCG 601接收写入事务。在互连件602为标准互连件(例如,不包括完整性保护逻辑或电路系统的互连件)的实施例中,在TCEP 603处接收到的常规写入事务可包括在经由互连件602传输期间出现的数据错误或故障。然而,在通信序列中的此时点,未检测到任何此类错误,且TCEP 603将写入事务作为不可修改的事务转发到目的地或目标子系统(步骤621)。
为了检测在经由互连件602传输期间出现的常规写入事务中的潜在数据错误,在步骤612处,TCG 601通过从传输的常规写入事务计算写入完整性信息而发起错误检测序列。在所选实施例中,可通过使用来自ITU-T V.42协议的CRC-32总和检查码算法依据写入目的地地址和事务ID计算CRC值来计算写入完整性信息。
以类似方式,TCEP 603在步骤622处通过从所接收的常规写入事务计算本地完整性信息而发起错误检测序列。在所选实施例中,可通过使用来自ITU-T V.42协议的CRC-32总和检查码算法依据写入目的地地址和事务ID计算CRC值来计算本地完整性信息。
为了实现写入和本地完整性信息的比较,TCG 601在步骤613处生成写入保护信息事务(PIT)消息并经由互连件602将其转发到TCEP 603。在所选实施例中,由TCG 601发送的写入PIT消息可经格式化以包括写入完整性信息(CRC)连同与常规写入事务相同的目的地地址和事务ID,且还包括设定成第二值(例如,0b0)以将消息识别为PIT消息的一个或多个用户位字段。
在步骤623处,TCEP 603经由互连件602从TCG 601接收写入PIT消息(包括写入完整性信息(CRC))。在步骤624处,TCEP 603可将写入完整性信息(由TCG 601计算)与本地完整性信息(由TCEP 603计算)相比较以查看是否存在匹配,且接着基于匹配比较的结果生成PIT响应消息。如果写入与本地完整性信息匹配,则不存在从经由互连件602传输常规写入事务检测到的错误,且TCEP 603生成PIT响应消息以包括传输“正常”指示。然而,如果写入与本地完整性信息不匹配,则这指示在经由互连件602传输常规写入事务期间发生错误,在此情况下,TCEP 603生成PIT响应消息以包括传输“错误”指示。
在步骤625处,TCEP 603从目的地或目标子系统接收响应于在步骤621处转发的写入事务而生成的写入响应消息。如将了解,来自目的地/目标子系统的写入响应消息可在接收到写入完整性信息且与本地完整性信息相比较之前或之后接收。
在步骤626处,TCEP 603经由互连件602将写入响应消息转发到TCG 601。如果来自目的地/目标子系统的写入响应消息指示写入操作期间不存在错误,则TCEP 603生成写入响应消息以包括写入“正常”指示。然而,如果来自目的地/目标子系统的写入响应消息指示写入操作期间存在错误,则TCEP 603生成写入响应消息以包括写入“错误”指示。
在步骤627处,TCEP 603经由互连件602将PIT响应消息转发到TCG 601。如上文所指示,PIT响应消息在比较步骤624指示写入与本地完整性信息匹配的情况下包括传输“正常”指示,且在比较步骤624指示写入与本地完整性信息不匹配的情况下包括传输“错误”指示。如将了解,可在发送PIT响应消息之前或之后发送写入响应消息。
在步骤614处,TCG 601经由互连件602从TCEP 603接收写入响应消息。并且,在步骤615处,TCG 601经由互连件602从TCEP 603接收PIT响应消息。再次,可以反转步骤614与615的次序。
在步骤616处,如果写入响应和PIT响应消息两者皆包括“正常”指示,则TCG 601生成“正常”响应消息且将其发送到发起者子系统。然而,如果写入响应和PIT响应消息中的任一者或两者包括“错误”指示,则TCG 601生成“错误”响应消息且将其发送到发起者子系统。
为了改进对本公开的所选实施例的理解,现在参考图7,图7描绘示出当在同步完整性模式中处置经由互连件702的读取事务以经由互连件702提供端到端事务完整性时由事务检查器生成器701和事务检查器端点703执行的步骤的通信序列的简化流程图700。如上文所论述,事务检查器生成器701可为SoC系统的部分,其中发起者子系统(未示出)(例如,Cortex-M4子系统)产生经由互连件702传输的一个或多个读取事务。另外,事务检查器端点703还可为SoC系统的部分作为目的地或目标子系统(未示出)的部分,例如经连接以接收并处理读取事务的DRAM存储器控制器子系统。在此类实施例中,互连件702可体现为标准互连件,例如快速路径互连(QM)互连件,但可使用任何合适的互连总线702,例如纵横接线器构造,其允许发起者子系统存取任何目的地或目标子系统,且相反地允许数据和/或响应消息从任何目的地或目标子系统传回到任何发起者子系统。
在步骤710处,事务检查器生成器(TCG)701从发起者子系统(未示出)接收读取事务。在所选实施例中,读取事务包括用于存储器位置的事务ID和读取地址以用于读取或检索目的地或目标子系统(例如,SoC系统上的DRAM存储器)处的数据。
在步骤711处,TCG 701经由互连件702将读取事务转发到事务检查器端点(TCEP)703。在所选实施例中,TCG 701将读取事务格式化为包括目的地或目标子系统的目的地地址、事务ID和被设置成第一值(例如,0b1)以将读取事务识别为常规读取事务的一个或多个用户位字段的常规读取事务。
在步骤720处,TCEP 703经由互连件702从TCG 701接收读取事务。在互连件702为标准互连件(例如,不包括完整性保护逻辑或电路系统的互连件)的实施例中,在TCEP 703处接收到的常规读取事务可包括在经由互连件702传输期间出现的数据错误或故障。然而,在通信序列中的此时点,未检测到任何此类错误,且TCEP 703将读取事务作为不可修改的事务转发到目的地或目标子系统(步骤721)。
为了检测在经由互连件702传输期间出现的常规读取事务中的潜在数据错误,在步骤712处,TCG 701通过在TCG 701处存储读取事务地址而发起错误检测序列,所述读取事务地址将在从目的地或目标子系统检索到读取数据之后随后用于计算本地读取完整性信息。另外,在步骤713处,TCG 701生成读取保护信息事务(PIT)消息,并经由互连件702将其转发到TCEP 703。如所生成,由TCG 701发送的读取PIT消息不包括任何读取完整性信息,但可经格式化以包括与常规读取事务相同的读取事务地址和事务ID,且还包括设定成第二值(例如,0b0)以将消息识别为PIT消息的一个或多个用户位字段。
以类似方式,TCEP 703在步骤722处通过从读取事务地址开始读取完整性信息的计算而发起错误检测序列。在所选实施例中,读取完整性信息可通过使用来自ITU-T V.42协议的CRC-32总和检查码算法计算来自读取目的地地址和事务ID的CRC值而计算,但此时,读取完整性信息不是完整的,因为读取数据尚未并入到CRC计算中。
在步骤723处,TCEP 703经由互连件702从TCG 701接收读取PIT消息(其不包括读取完整性信息)。
在步骤724处,TCEP 703从目的地或目标子系统(未示出)接收响应于在步骤721处转发的读取事务而生成的读取响应消息。如将了解,来自目的地/目标子系统的读取响应消息将含有由发起者子系统请求的读取数据。另外,在步骤723处,可在从TCG 701接收读取PIT消息之前或之后接收读取响应消息。
在步骤725处,TCEP 703使用从目的地/目标子系统传回的读取数据更新读取完整性信息。在所选实施例中,可通过使用来自ITU-T V.42协议的CRC-32总和检查码算法依据读取目的地地址、事务ID和读取数据计算CRC值来更新读取完整性信息。
在步骤726处,TCEP 703经由互连件702将读取响应消息转发到TCG 701。如果来自目的地/目标子系统的读取响应消息指示读取操作期间不存在错误,则TCEP 703生成读取响应消息以包括读取“正常”指示。然而,如果来自目的地/目标子系统的读取响应消息指示读取操作期间存在错误,则TCEP 703生成读取响应消息以包括读取“错误”指示。
在步骤727处,TCEP 703生成PIT响应消息且经由互连件702将PIT响应消息转发到TCG 701。如上文所指示,PIT响应消息包括读取完整性信息,所述读取完整性信息可依据读取目的地地址、事务ID和读取数据被计算为CRC值。如将了解,可在发送PIT响应消息之前或之后发送读取响应消息。
在步骤714处,TCG 701从TCEP 703接收读取响应消息,所述读取响应消息包括由目的地/目标子系统提供的读取数据。并且,在步骤715处,TCG 701从TCEP 703接收PIT响应消息,所述PIT响应消息包括由TCEP 703计算的读取完整性信息。
在步骤716处,TCG 701依据所存储的读取事务地址和所接收的读取数据计算本地完整性信息。在所选实施例中,可通过使用来自ITU-TV.42协议的CRC-32总和检查码算法依据读取事务地址、事务ID和读取数据(在读取响应消息中传回)计算CRC值来计算本地完整性信息。
在步骤724处,TCG 701比较读取完整性信息(通过TCEP 703计算)与本地读取完整性信息(通过TCG 701计算)以查看是否存在匹配。如果读取完整性信息(由TCEP 703计算)与本地读取完整性信息(由TCG 701计算)两者彼此匹配,则TCG 701生成去往发起者子系统的“正常”响应消息。然而,如果读取完整性信息(由TCEP 703计算)与本地读取完整性信息(由TCG 701计算)之间不存在匹配,则TCG 701生成“错误”响应消息且将其发生到发起者子系统。
现参考图8,示出根据本公开的所选实施例的具有多个SoC子系统的多核心系统单晶片(SoC)800的简化示意图,所述SoC子系统经连接以通过使用事务检查器生成器单元(例如,814到816)和事务检查器端点单元(例如,817到819)经由互连件总线850进行通信,以经由互连件总线850提供端到端完整性保护。如所描绘,SoC子系统包括一个或多个处理器核心810、820、830、840,其中的每个可经配置以发起经由互连总线850发送到其它SoC子系统中的一个的事务请求,所述其它SoC子系统例如为多媒体加速器单元821、直接存储器存取(DMA)引擎831、以太网/SPI接口引擎841、高速串行接口851、显示器和相机I/O单元861、安全模块862、DRAM控制器863、芯片上M3存储器864,和/或其他硬件装置或模块871到879。
处理器核心810、820、830、840中的每个可经配置以执行指令,且根据例如x86、PowerPC、SPARC、MIPS和ARM等特定指令集架构(ISA)处理数据。在所选实施例中,处理器核心的处理器设计的高度合适的实例为Cortex-M4处理器核心。然而,本领域的技术人员将理解,处理器核心810、820、830、840不限于任何特定制造商的微处理器设计。可以许多形式发现处理器核心,包括例如由Freescale、Motorola、Intel、AMD、Sun或IBM制造的任何32位或64位微处理器。然而,可利用任何其它合适的单一个或多个微处理器、微控制器或微型计算机。在所示出的实施例中,处理器核心810、820、830、840中的每个可经配置以独立于其它核心而操作,使得所有核心可并行地执行。在一些实施例中,核心中的每个可经配置以同时执行多个线程,其中给定线程可包括可独立于来自另一线程的指令而执行的指令集。此类核心还可被称作多线程(MT)核心。因此,具有四个核心的单个多核心SoC 800将能够在此配置中执行四个线程中的多个。然而,应了解,本发明不限于四个处理器核心,且可包括更多或更少核心。另外,术语“核心”是指硬件、软件和固件的任何组合,所述硬件、软件和固件通常经配置以相对于从相关联电路系统和/或模块(例如,如下文所描述的一个或多个外围设备)获得或提供到相关联电路系统和/或模块的信息提供处理功能性。此些核心包括例如数字信号处理器(DSP)、中央处理单元(CPU)、微处理器,等等。这些核心通常也被称作主控器,因为它们通常充当关于任何相关联外围设备的总线主控器。此外,术语多核心(或多主控器)是指包括两个或更多个此类核心(例如,核心810和820)的硬件、软件和固件的任何组合,而不管个别核心是单片制造(即,在同一芯片上)还是单独制造。因此,第二核心可为与第一核心相同的物理核心,但具有多个操作模式(即,核心可虚拟化)。
如所描绘,每个处理器核心(例如,810)可包括第一层级(L1)高速缓存,所述第一层级高速缓存包括指令高速缓存(icache)811和数据高速缓存(dcache)812。另外,第二层级高速缓存存储器(L2)813也可提供于每个核心处,但L2高速缓存存储器也可为由一个或多个处理器核心共享的外部L2高速缓存存储器。处理器核心810执行指令,且在操作系统(OS)的控制下处理数据,所述操作系统(OS)可指定或选择处理器核心810作为控制或主节点以用于控制处理器核心810、820、830、840之间的工作负荷分配。核心810、820、830、840之间的通信可例如根据例如超传输(HT)协议(未示出)的拆分事务总线协议经由互连总线850或经由纵横接线器和适当的双点对点链路进行。
虽然处理器核心810、820、830、840可相同地设计或为同构的,但可使用不同的处理核心设计。另外或在替代方案中,多核心SoC 800可包括具有不同设计的一个或多个额外核心。举例来说,所描绘的多核心SoC 800还包括一个或多个多媒体加速器单元821,所述多媒体加速器单元821包括一个或多个图形处理器单元(GPU)822、向量处理器单元(VPU)823和/或音频数字信号处理器核心824。每个处理器核心跨越互连总线850耦合以与SoC子系统821、831、841、851、861到864、871到879通信。
处理器核心810、820、830、840中的每个经由互连总线850与SoC子系统821、831、841、851、861到864、871到879通信。互连总线850可经配置以同时适应在每个时钟循环上处理的大量独立存取,且实现从处理器核心810、820、830、840到SoC子系统821、831、841、851、861到864、871-879通信数据请求以及来自其的数据响应。在所选实施例中,互连总线850可包括允许任何核心以读取或写入事务存取存储器的任何存储体的逻辑(例如,多路复用器或开关结构),且相反地允许数据从任何存储器存储体传回到任何核心。互连总线850还可包括对数据请求和/或响应进行排队的逻辑,使得在等待服务时请求和响应可能不阻挡其它活动。另外,互连总线850可被配置为芯片层级仲裁和交换系统(CLASS)以仲裁当多个核心试图存取存储器时可能发生的冲突,或反之亦然。
举例来说,互连总线850与主存储器控制器863通信以提供对M3存储器864或主存储器(未示出)的存取。存储器控制器863可经配置以管理例如多核心SoC 800与系统存储器之间的数据的传送。在一些实施例中,可实施存储器控制器863的多个个例,其中每个个例经配置以控制系统存储器的相应存储体。存储器控制器863可经配置以例如介接到任何合适类型的系统存储器,例如双数据速率或双数据速率2或双数据速率3同步动态随机存取存储器(DDR/DDR2/DDR3 SDRAM)或Rambus DRAM(RDRAM)。在一些实施例中,存储器控制器863可经配置以支持介接到多个不同类型的系统存储器。另外,可提供直接存储器存取(DMA)控制器831,所述直接存储器存取控制器831经由存储器控制器863控制进出系统存储器的直接数据传送。
如将了解,多核心SoC 800可经配置以从除系统存储器外的源接收数据。为此目的,网络接口引擎841可被配置成提供用于处置以太网和SPI接口的中央接口,因此从核心卸载任务。另外,高速串行接口851可经配置以支持一个或多个串行RapidIO端口、PCI高速控制器和/或串行千兆位介质独立接口(SGMII)。另外,可提供经配置以将核心耦合到外部启动和/或服务装置的一个或多个接口870,例如I/O中断集中器871、UART装置872、时钟873、计时器874、复位875、硬件信标876、虚拟中断877、启动ROM 878、I2C接口879、GPIO端口和/或其它模块。
对于经由互连总线850的任何子系统到子系统通信(其中正交换的代码/数据的完整性应受保护以免数据传输错误或故障),发起子系统(例如,处理核心810)包括事务检查器生成器(TCG)电路(例如,814),所述事务检查器生成器(TCG)电路被配置成经由互连总线850发送常规事务消息以及额外的保护信息事务(PIT)消息以用于保护常规事务消息的完整性。尽管未展示,但多媒体加速器单元821中的每个可具有其自身的专用TCG电路。另外,其它发起子系统,例如DMA引擎831或高速串行接口851,可具有其自身的专用TCG电路815、816。在经由互连总线850的任何子系统到子系统通信(其中应保护正交换的代码/数据的完整性)的接收端处,任何目标或目的地子系统可包括事务检查器端点(TCEP)电路,所述事务检查器端点连接且经配置以接收常规事务消息和PIT消息且基于PIT消息评估常规事务消息的完整性。举例来说,DRAM控制器863包括TCEP电路818,M3存储器864包括TCEP电路819,且高速串行接口861包括TCEP电路817。
通过将TCG电路(例如,813)定位在每个发起SoC子系统(例如,处理器核心810)处且将一个或多个TCEP电路(例如,817、818、819)定位在目标SoC子系统(例如,851、863、864)处,可通过生成经由互连路径交换以实现事务完整性的PIT和PTIR消息来保护经由标准互连件850发送的来自安全相关发起者SoC子系统的事务。对于由需要完整性保护的发起者发布的每个事务(也称为常规事务),TCG电路(例如,814)生成经由互连总线850传输的常规事务,并且还生成经由互连总线850连同常规事务一起传输的PIT消息。对于写入事务,TCG电路计算包括于PIT消息中且经由互连总线850发送到目的地子系统的保护信息。对于读取事务,TCG电路基于用于常规读取事务的读取地址和事务ID且基于由目的地子系统经由互连总线850传回到TCG电路的读取数据计算本地保护信息。TCG电路还处置对常规事务的响应和PIT响应(PITR)。
在可由受保护的事务到达的每个目的地SoC子系统处,TCEP电路(例如,818)经配置以处理经由互连总线850接收的常规事务,且计算对PIT事务的响应以用于经由互连件850传输到发起者SoC子系统。举例来说,接收常规写入事务的TCEP电路(例如,818)可基于所接收的写入地址、事务ID和常规写入事务中的写入数据计算本地保护信息(例如,CRC数据),且接着比较所计算的本地保护信息与在PIT消息中从TCG电路接收到的保护信息。替代地,接收常规读取事务的TCEP电路可基于所接收的读取地址、事务ID和所接收的读取数据来计算保护信息(例如,CRC数据),且接着将保护信息发送回到发起TCG电路,在发起TCG电路中将保护信息与本地计算的保护信息进行比较。
在适当时,以上实施例中的一些可使用多种不同信息处理系统实施。举例来说,虽然图1及其论述描述了其中不同SoC子系统包括事务检查器生成器或事务检查器端点电路以提供经由互连子系统的端到端完整性保护的示例性SoC架构,但此示例性架构仅经呈现以在论述本发明的各种方面时提供有用参考。出于论述的目的,架构的描述已被简化,并且其只是可根据本公开使用的适当架构的许多不同类型中的一种。本领域的技术人员应认识到,逻辑块之间的边界仅为说明性的,且替代实施例可合并逻辑块或电路元件,或在各种逻辑块或电路元件上强加功能性的替代分解。因此,应理解,在本文中描绘的架构仅仅是示例性的,并且实际上,可以实施实现相同功能性的许多其它架构。从抽象角度但仍具有明确意义来说,实现相同功能的任何组件布置实际上“相关联”,使得所希望的功能得以实现。因此,本文中组合以实现特定功能的任何两个组件都可以被视为彼此“相关联”,使得实现期望功能,而不论架构或中间组件如何。同样,如此相关联的任何两个组件还可以被视为彼此“可操作地连接”或“可操作地耦合”来实现所期望的功能。
另外,图1和图8中所示出的示例SoC系统实施例可被实施为位于单个集成电路上或同一装置内的电路系统。可替换的是,SoC系统实施例可包括任何数目个单独集成电路或彼此互连的单独装置。举例来说,主存储器864可整体地或部分地位于与SoC控制CPU 810相同的集成电路上,或位于单独集成电路上,或位于与SoC系统800的其它元件离散地分离的另一外围或从属装置内。外围设备871到879还可整体或部分地位于单独集成电路或装置上。在又其它实施例中,本文中所公开的事务完整性系统可与分散在若干SoC上的系统一起使用。举例来说,计算高速链路(CXL)为与CPU到装置和CPU到存储器设计一起使用的互连规范,其不必为端到端的,简单地看起来像芯片上NOC。在此类CXL互连件中,第一完整性模块(TCG)可连接在CXL互连件的一端上,且第二完整性模块(TCEP)可连接在另一端上。
公开一种用以检查经由网络互连件的通信的端到端完整性的芯片上系统(SoC)方法和设备,其中所述SoC包括经由所述网络互连件连接到目标子系统的发起者子系统,其中第一完整性模块被配置成基于由所述发起者子系统发送或接收的常规事务消息计算第一完整性值,且经由所述网络互连件将保护信息事务(PIT)消息发送到所述目标子系统,其中第二完整性模块被配置成基于由目的地子系统发送或接收的常规事务消息计算第二完整性值,且经由所述网络互连件将PIT响应消息发送到所述发起者子系统,且其中兼容性模块比较所述第一完整性值与所述第二完整性值,以验证经由所述网络互连件发送或接收的所述常规事务消息的所述端到端完整性。
此外,本领域的技术人员应认识到,上文所描述的操作的功能之间的界限仅仅是说明性的。多个操作的功能可以组合成单一操作,或单一操作的功能可分布在另外的操作中。此外,替代实施例可包括特定操作的多个实例,且操作的次序可在不同其它实施例中改变。
本文中所描述的软件中的全部或一些可从SoC系统的元件(例如,从例如存储器864或其它计算机系统上的其它介质等计算机可读介质)接收。此类计算机可读介质可永久地、可移除地或远程地耦合到信息处理系统,例如SoC系统800。举例来说而非限制性地,计算机可读介质可包括以下各项中的任何数目个(仅举几例):磁性存储介质,包括磁盘和带存储介质;光学存储介质,诸如光盘介质(例如,CD-ROM、CD-R等)和数字影碟存储介质;非易失性存储器存储介质,包括基于半导体的存储器单元,例如快闪存储器、EEPROM、EPROM、ROM;铁磁性数字存储器;MRAM;易失性存储介质,包括寄存器、缓存器或高速缓冲存储器、主存储器、RAM等;以及数据传输介质,包括计算机网络、点对点电信装备和载波传输介质。
在所选实施例中,本文中所公开的SoC系统为例如嵌入式微控制器等计算机系统的部分。其它实施例可包括不同类型的计算机系统。计算机系统为可以被设计成使一个或多个用户获得独立计算能力的信息处置系统。计算机系统可见于许多形式。典型的计算机系统包括至少一个处理单元、关联存储器以及多个输入/输出(I/O)装置。
计算机系统根据程序处理信息并且经由I/O装置产生所得输出信息。程序是一系列指令,例如特定应用程序和/或操作系统。计算机程序通常在内部存储于计算机可读存储介质上或经由计算机可读发送介质发送到计算机系统。计算机过程通常包括执行程序或程序的部分、当前程序值和状态信息,和供操作系统用于管理过程的执行的资源。父进程可引发其它子进程以帮助执行父进程的总体功能。由于父进程特定地引发子进程以执行父进程的总体功能的一部分,因此由子进程(以及孙进程等)执行的功能有时可被描述为由父进程执行。
如本文中所使用的术语“程序”被定义为设计成在计算机系统上执行的指令序列。程序或计算机程序可以包括子例程、函数、过程、目标方法、目标实施方案、可执行应用程序、小程序、服务器小程序、源代码、目标代码、共享库/动载库和/或设计成用于在计算机系统上执行的其它指令序列。
上文关于具体实施例描述了益处、其它优势和对问题的解决方案。然而,可造成任何益处、优点或解决方案发生,或者变得更显著的那些益处、优点、对问题的解决方案和任何元件,均不得理解为任何权利要求或所有权利要求的关键的、要求的、或者必需的特征或元件。如本文中所使用,术语“耦合”并不意图局限于直接耦合或机械耦合。如本文所使用,术语“包括”或其任何其它变化意图涵盖非排他性的包括物,使得包括一列元件的过程、方法、制品或设备不仅包括那些元件,而是可以包括并未明确地列出的或并非此类过程、方法、制品或设备固有的其它元件。此外,如本文中所使用,术语“一”被定义为一个或一个以上。另外,权利要求书中对例如“至少一个”和“一个或多个”等引导性短语的使用不应被理解为暗示由不定冠词“一”引导的另一权利要求要素将含有如此引导的权利要求要素的任何特定权利要求限制于仅含有一个此类要素的发明,即使是当同一权利要求包括引导性短语“一个或多个”或“至少一个”和例如“一”等不定冠词时也如此。上述适用于定冠词的使用。并且,除非另外说明,否则例如“第一”和“第二”的术语用于任意地区分此类术语所描述的元件。因此,这些术语未必意图指示此类元件的时间或其它优先级排序。
尽管本文中所公开的所描述示例性实施例是针对各种实施例,但本发明不一定限于说明适用于广泛多种SoC系统和操作方法的本发明的发明性方面的示例实施例。因此,上文公开的具体实施例仅仅是示意性的并且不应该视为对本发明的限制,这是因为本发明可以不同但等效的方式来修改和实施,所述方式对于得益于在此的教导的本领域技术人员来说是显而易见的。相应地,上述描述并非意图将本发明限制于所阐述的具体形式,而是相反其意图涵盖如可以包括在如由所附权利要求书限定的本发明的精神和范围内的此类替代方案、修改和等效物,使得本领域的技术人员应该理解在不脱离本发明的精神和范围的情况下,它们可以其最广泛形式做出各种改变、替代和更改。
Claims (10)
1.一种用以检查经由网络互连件的通信的端到端完整性的芯片上系统SoC设备,其特征在于,包括:
发起者SoC子系统,所述发起者SoC子系统被配置成经由所述网络互连件发送常规事务消息和从所述网络互连件接收常规事务响应消息,其中所述常规事务消息和常规事务响应消息不包括完整性值;
目标SoC子系统,所述目标SoC子系统被配置成从所述网络互连件接收所述常规事务消息,及经由所述网络互连件将所述常规事务响应消息发送到所述发起者SoC子系统;
第一完整性模块,所述第一完整性模块连接在所述发起者SoC子系统与网络互连件之间,其中所述第一完整性模块被配置成基于所述常规事务消息或所述常规事务响应消息计算第一完整性值,及经由所述网络互连件将保护信息事务(PIT)消息发送到所述目标SoC子系统;
第二完整性模块,所述第二完整性模块连接在所述网络互连件与所述目标Soc子系统之间,其中所述第二完整性模块被配置成基于所述常规事务消息或所述常规事务响应消息计算第二完整性值,及经由所述网络互连件将PIT响应消息发送到所述发起者SoC子系统;以及
兼容性模块,所述兼容性模块被配置成比较所述第一完整性值与所述第二完整性值,以验证经由所述网络互连件发送的所述常规事务消息或所述常规事务响应消息的所述端到端完整性。
2.根据权利要求1所述的SoC设备,其特征在于,所述常规事务消息和所述PIT消息各包括存储器地址字段、事务ID字段和具有用于所述常规事务消息的第一值或用于所述PIT消息的第二值的用户位字段。
3.根据权利要求2所述的SoC设备,其特征在于,所述第一完整性值和第二完整性值各为依据包含在所述存储器地址字段和事务ID字段中的信息以及包含在所述常规事务消息或常规事务响应消息中的信息计算的循环冗余检查CRC值。
4.根据在前的任一项权利要求所述的SoC设备,其特征在于,所述发起者SoC子系统被配置成经由所述网络互连件将常规写入事务消息发送到所述目标SoC子系统,其中所述第一完整性模块被配置成将经由所述网络互连件发送的所述PIT消息中的所述第一完整性值发送到所述目标SoC子系统,其中所述第二完整性模块被配置成基于来自所述常规写入事务消息的写入地址、事务ID和写入数据计算所述第二完整性值,且其中所述兼容性模块包括于所述第二完整性模块中,且被配置成比较所述第一完整性值与所述第二完整性值以验证经由所述网络互连件发送的所述常规写入事务消息的所述端到端完整性。
5.根据在前的任一项权利要求所述的SoC设备,其特征在于,所述发起者SoC子系统被配置成经由所述网络互连件将常规读取事务消息发送到所述目标SoC子系统,其中所述第二完整性模块被配置成经由所述网络互连件将常规读取事务响应消息中的读取数据发送到所述发起者SoC子系统,且将所述第二完整性值包括在经由所述网络互连件发送到所述发起者SoC子系统的所述PIT响应消息中,其中所述第一完整性模块被配置成基于来自所述常规读取事务响应消息的读取地址、事务ID和读取数据计算所述第一完整性值,且其中所述兼容性模块包括于所述第一完整性模块中,且被配置成比较所述第一完整性值与所述第二完整性值以验证经由所述网络互连件发送的所述常规读取事务消息的所述端到端完整性。
6.一种用于经由芯片上系统SoC网络互连件的通信的端到端完整性保护的方法,其特征在于,包括:
在第一完整性模块处接收由发起者SoC子系统生成且包括目标SoC子系统的写入地址和数据的常规写入事务消息,其中所述常规写入事务消息不包括完整性值;
通过所述第一完整性模块经由所述SoC网络互连件将所述常规写入事务消息转发到第二完整性模块,所述第二完整性模块连接在所述SoC网络互连件与所述目标Soc子系统之间,且转发所述常规写入事务消息以供所述目标SoC子系统进行写入处理以将写入响应消息传回所述第二完整性模块;
在所述第一完整性模块处基于由所述第一完整性模块接收的在所述常规写入事务消息中所述写入地址和数据计算第一完整性值;
在所述第一完整性模块处生成写入保护信息事务PIT消息,所述PIT消息包括所述第一完整性值;
通过所述第一完整性模块经由所述SoC网络互连件将所述写入PIT消息发送到所述第二完整性模块;
在所述第二完整性模块处基于包括在经由所述SoC网络互连件接收的所述常规写入事务消息中的所述写入地址和数据计算第二完整性值;
在所述第二完整性模块处比较所述第一完整性值与所述第二完整性值,以检测所述第一完整性值与所述第二完整性值之间是否存在匹配;
在所述第二完整性模块处,生成PIT响应消息,所述PIT响应消息在所述第一完整性值与所述第二完整性值之间存在匹配的情况下具有指示经由所述SoC网络互连件的通信存在端到端完整性的第一值,且在所述第一完整性值与所述第二完整性值之间不存在匹配的情况下具有指示经由所述SoC网络互连件的通信不存在端到端完整性的第二值;
通过所述第二完整性模块经由所述SoC网络互连件将所述写入响应消息发送到第一完整性模块;
通过所述第二完整性模块经由所述SoC网络互连件将所述PIT响应消息发送到所述第一完整性模块;以及
在所述第一完整性模块处生成发送到所述发起者SoC子系统的常规写入事务响应消息。
7.根据权利要求6所述的方法,其特征在于,生成所述常规写入事务响应消息包括响应于至少所述PIT响应消息和所述写入响应消息而生成所述常规写入事务消息。
8.根据权利要求6或7中任一项所述的方法,其特征在于,生成所述常规写入事务响应消息包括在从所述第二完整性模块接收所述PIT响应消息之前生成所述常规写入事务消息,且进一步包括在所述第一完整性模块处响应于具有所述第二值的所述PIT响应消息而生成发送到所述发起者SoC子系统的中断消息。
9.根据权利要求6到8中任一项所述的方法,其特征在于,所述常规写入事务消息和所述写入PIT消息各包括存储器地址字段、写入数据字段、事务ID字段和具有用于所述常规写入事务消息的第一值或用于所述写入PIT消息的第二值的用户位字段。
10.根据权利要求6到9中任一项所述的方法,其特征在于,所述发起者SoC子系统包括处理器核心子系统,且其中所述目标SoC子系统包括存储器控制器子系统。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP22306293.6A EP4332809A1 (en) | 2022-08-31 | 2022-08-31 | End-to-end transaction integrity through standard interconnect |
EP22306293.6 | 2022-08-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117640132A true CN117640132A (zh) | 2024-03-01 |
Family
ID=84331291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311104667.1A Pending CN117640132A (zh) | 2022-08-31 | 2023-08-30 | 经由标准互连件的端到端事务完整性 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240070018A1 (zh) |
EP (1) | EP4332809A1 (zh) |
CN (1) | CN117640132A (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200328879A1 (en) * | 2019-08-13 | 2020-10-15 | Intel Corporation | Secure communications over computer buses |
US20210089388A1 (en) * | 2020-07-14 | 2021-03-25 | Intel Corporation | System, Apparatus And Method For Providing Protection Against Silent Data Corruption In A Link |
US20210336767A1 (en) * | 2021-06-25 | 2021-10-28 | Intel Corporation | Memory bus integrity and data encryption (ide) |
-
2022
- 2022-08-31 EP EP22306293.6A patent/EP4332809A1/en active Pending
-
2023
- 2023-05-15 US US18/317,494 patent/US20240070018A1/en active Pending
- 2023-08-30 CN CN202311104667.1A patent/CN117640132A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4332809A1 (en) | 2024-03-06 |
US20240070018A1 (en) | 2024-02-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI566088B (zh) | 標頭同位錯誤處置技術 | |
US9823983B2 (en) | Electronic fault detection unit | |
TWI596544B (zh) | 內含目錄狀態之更新技術 | |
EP3274861B1 (en) | Reliability, availability, and serviceability in multi-node systems with disaggregated memory | |
CN109614256B (zh) | 现场错误恢复 | |
CN107045479B (zh) | 高性能互连物理层 | |
US8090984B2 (en) | Error detection and communication of an error location in multi-processor data processing system having processors operating in Lockstep | |
US5640508A (en) | Fault detecting apparatus for a microprocessor system | |
CN111930664A (zh) | 用于高速互连的有序集 | |
US10514990B2 (en) | Mission-critical computing architecture | |
Feehrer et al. | The Oracle Sparc T5 16-core processor scales to eight sockets | |
KR102413593B1 (ko) | 교착상태 방지를 위한 방법들 및 회로들 | |
JP7351933B2 (ja) | エラーリカバリ方法及び装置 | |
CN108132910B (zh) | 系统互连以及具有系统互连的片上系统 | |
US20090271536A1 (en) | Descriptor integrity checking in a dma controller | |
CN105760339B (zh) | 实现线减少和物理拥堵最小化的多核总线架构 | |
KR20160022242A (ko) | 메모리 시스템 아키텍처 | |
EP4278270A1 (en) | Logical physical layer interface specification support for pcie 6.0, cxl 3.0, and upi 3.0 protocols | |
US20240160570A1 (en) | Mechanism to identify key sections of io packets and its use for efficient io caching | |
WO2023121775A1 (en) | System, method, apparatus and architecture for dynamically configuring device fabrics | |
JP2011175641A (ja) | 時間的に分離した冗長プロセッサの実行を使用しての周辺機器への読み書き | |
US6594739B1 (en) | Memory system and method of using same | |
US9231618B2 (en) | Early data tag to allow data CRC bypass via a speculative memory data return protocol | |
CN117640132A (zh) | 经由标准互连件的端到端事务完整性 | |
US6785847B1 (en) | Soft error detection in high speed microprocessors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |