一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

双等级管理的制作方法

2023-02-06 23:09:51 来源:中国专利 TAG:


1.本公开涉及接收电路,并且具体地涉及被配置为根据所存储的访问权限来处理读取或写入请求的接收电路。


背景技术:

2.诸如片上系统的处理设备包括具有不同功能的多个不同组件。例如,处理设备可以包括多个不同的处理元件,该处理元件被配置为执行计算机可读指令以对存储在存储器中的数据执行操作。
3.除了处理元件之外,处理设备可以包括使处理设备能够运行的附加元件,例如,复位寄存器、交换电路等。处理设备的许多不同元件可以由处理设备的其它元件经由在处理设备的不同元件之间交换控制信息的互连来访问。
4.在设计其中处理设备的元件可以读取或写入与处理设备的其它元件相关联的存储设备的处理设备时,重要的是考虑安全性方面。特别地,能够向处理设备的其它元件发出读取或写入请求的处理设备的某些元件可以执行或响应来自不受信任的第三方软件或固件的指令。因此,可能期望限制对处理设备的某些元件的访问。


技术实现要素:

5.当处理系统的元件从一个或多个实体接收访问请求时,出于安全性原因,可能期望限制对该元件的访问。这可以通过使受信任的实体为元件定义访问权限来执行,该访问权限规定是否由元件来服务传入的读取或写入请求。然而,如果访问权限的定义仅限于某个受信任的实体,则这可能会降低访问可被控制的灵活性。例如,这可能会将其他方的能力限制为其自己的控制访问,从而在设备中行使安全性利益。另一方面,如果允许不受信任的实体定义访问权限,则这可能会带来安全性风险。
6.根据第一方面,提供了一种接收电路,该接收电路包括:至少一个接口,其被配置为从可通过至少一个控制总线访问的多个请求电路接收多个读取或写入请求,该读取或写入请求中的每个是用于访问与接收电路相关联的至少一个存储设备的请求;至少一个寄存器,其被配置为存储多个权限设置,其中,多个权限设置中的每个指示是否允许由多个请求电路中的一个对至少一个存储设备进行访问;以及处理电路,其被配置为:响应于在至少一个接口处接收的用于访问至少一个存储设备的多个请求中的至少一个中的每个,响应于权限设置中的指示不允许发出相应请求的请求电路中的一个进行访问的指示来阻止相应读取或写入请求被服务;以及响应于从第一管理单元接收的对至少一个寄存器的一个或多个写入请求,更新权限设置以指示不允许请求电路中的一个或多个进行访问;以及随后,响应于从第二管理单元接收的用于更新权限设置以允许请求电路中的一个或多个进行访问的一个或多个写入请求,响应于确定第一管理单元已写入指示不允许请求电路中的一个或多个进行访问的权限设置,阻止为允许请求电路中的一个或多个进行访问而对权限设置进行的更新。
7.通过允许两个实体(即,第一管理单元和第二管理单元)控制对与接收电路相关联的存储设备的访问,这两个不同的实体可以在设备中行使安全性利益。然而,阻止第二管理单元(其可能不被第一管理单元信任)移除已经由第一管理单元施加的某些安全层。每个安全层可以用于对不同实体施加访问限制。因此,接收电路既是安全的又提供了允许不同实体添加其自己的安全性设置的灵活性。
8.在一些实施例中,处理电路被配置为:响应于从第二管理单元接收的用于更新权限设置来阻止请求电路中的一个或多个的访问的一个或多个进一步的写入请求,允许更新权限设置以指示访问被阻止。
9.在一些实施例中,权限设置包括多个第一权限设置和多个第二权限设置,其中,多个请求电路中的每个与第一权限设置中的一个及第二权限设置中的一个相关联。
10.在一些实施例中,处理电路被配置为:对于从第二管理单元接收的对至少一个存储设备的读取或写入请求中的至少一个中的每个,响应于确定从第二管理单元接收到相应请求,服务相应请求而不管多个第二权限设置。
11.在一些实施例中,处理电路被配置为:对于从第二管理单元接收的对至少一个存储设备的读取或写入请求中的至少一个中的每个,响应于第一权限设置中指示访问不被允许的指示来阻止服务相应请求。
12.在一些实施例中,响应于请求所源自的请求电路与第一权限设置或第二权限设置中的任一者或两者中的指示访问不被允许的至少一个设置相关联的确定,执行阻止服务相应读取或写入请求。
13.在一些实施例中,处理电路被配置为:对于从第一管理单元接收的对至少一个存储设备的读取或写入请求中的至少一个中的每个,响应于确定从第一管理单元接收到相应请求,服务相应请求而不管权限设置。
14.在一些实施例中,请求电路中的每个与至少一个处理器相关联,该至少一个处理器被配置为执行计算机可读指令以生成多个读取或写入请求中的至少一个。
15.在一些实施例中,请求电路中的每个与被配置为生成多个读取或写入请求中的至少一个的电路相关联,其中,电路包括现场可编程门阵列或专用集成电路中的至少一者。
16.在一些实施例中,多个请求电路中的至少一个属于第一管理单元或第二管理单元。
17.在一些实施例中,处理电路被配置为:在从第一管理单元和第二管理单元接收对至少一个寄存器的写入请求之前,从第三管理单元接收第一管理单元的标识符;以及将第一管理单元的标识符存储在至少一个寄存器中,其中,响应于从第一管理单元接收的对至少一个寄存器的一个或多个写入请求,响应于确定请求中的标识符与至少一个寄存器中的第一管理单元的标识符匹配而更新一个或多个权限设置的步骤。
18.在一些实施例中,第三管理单元将第一管理单元的标识符存储在一个或多个熔丝中。
19.在一些实施例中,处理电路被配置为:从第一管理单元接收第二管理单元的标识符;将第二管理单元的标识符存储在至少一个寄存器中;以及随后,响应于从第二管理单元接收的对至少一个寄存器的一个或多个进一步的写入请求,响应于确定请求中的标识符与至少一个寄存器中的第二管理单元的标识符匹配而更新一个或多个权限设置。
20.在一些实施例中,处理电路被配置为:响应于在至少一个接口处接收的用于对至少一个存储设备的访问的请求中的至少一个中的每个,使得在相应请求中指示的至少一个存储设备中的至少一个地址处执行读取或写入。
21.在一些实施例中,至少一个寄存器包括一个或多个访问权限对其不适用的至少一个地址的指示,其中,处理电路被配置为响应于确定接收到的请求中的一个指示与访问权限对其不适用的至少一个地址的指示匹配的地址而服务请求。
22.在一些实施例中,处理电路被配置为:响应于从第一管理单元和第二管理单元中的至少一个接收到的一个或多个写入请求,将一个或多个访问权限对其不适用的至少一个地址的指示写入到至少一个寄存器中。
23.在一些实施例中,响应于在至少一个接口处接收的用于对至少一个存储设备的访问的请求中的至少一个中的每个,响应于一个或多个权限设置中的任一者中指示访问不被允许的指示来将指示请求的失败的分组发送到相应请求所源自的请求电路。
24.在一些实施例中,接收电路适用于集成电路。
25.根据第二方面,提供了一种包括根据第一方面所述的接收电路的集成电路,该集成电路被配置为用作主机系统的加速器子系统。
26.在一些实施例中,第二管理单元与在主机系统上运行的管理程序相关联。
27.在一些实施例中,集成电路包括多个处理单元,其被配置为执行计算机可读指令以对数据执行操作,其中,多个处理单元中的每个包括控制寄存器,其中,至少一个存储设备包括处理单元的控制寄存器。
28.根据第三方面,提供了一种在接收电路中实现的方法,该方法包括:存储多个权限设置,其中,多个权限设置中的每个指示是否允许多个请求电路中的一个对与接收电路相关联的至少一个存储设备的访问;响应于从第一管理单元接收的对至少一个寄存器的一个或多个写入请求,更新权限设置以指示不允许请求电路中的一个或多个进行访问;以及随后,响应于从第二管理单元接收的用于更新权限设置以允许请求电路中的一个或多个进行访问的一个或多个写入请求,响应于确定第一管理单元已写入指示不允许请求电路中的一个或多个进行访问的权限设置,阻止为允许请求电路中的一个或多个进行访问而对权限设置进行的更新;从可通过至少一个控制总线访问的多个请求电路接收多个读取或写入请求,该读取或写入请求中的每个是用于访问与接收电路相关联的至少一个存储设备的请求;以及响应于用于访问与接收电路相关联的至少一个存储设备的多个请求中的至少一个中的每个,响应于权限设置中指示不允许发出相应请求的请求电路中的一个进行访问的指示来阻止相应读取或写入请求被服务。
29.根据第四方面,提供了一种计算机程序,当由接收电路的处理器执行时,该计算机程序使得根据第三方面所述的方法被执行。
30.根据第五方面,提供了一种存储根据第四方面所述的计算机程序的非暂时性计算机可读介质。
附图说明
31.为了更好地理解本发明并示出如何实现本发明,现在将通过示例的方式参考附图,其中:
32.图1示出了用于在发起者与目标之间分组的转换的控制总线;
33.图2示出了用于通过网络进行发送的数据分组的报头的字段;
34.图3示出了目标的示例;
35.图4示出了包括基于目标-发起者定义的两个等级的访问权限的集合的示例;
36.图5示出了具有指示等级1管理器是否已写入访问权限的标志的多个访问权限的集合的示例;
37.图6示出了具有指示等级1管理器是否已写入访问权限的标志的多个访问权限的集合的另一示例;
38.图7示出了使用控制总线实现的示例方法;以及
39.图8示出了在接收电路中实现的示例方法。
具体实施方式
40.本文所描述的技术可以在处理单元中实现。可以在其中实现该技术的示例处理单元是在我们早期的美国申请第15/885925号中描述的智能处理单元(ipu),该申请的内容通过引用并入。然而,本文所描述的技术也可以应用于其它类型的设备。
41.用于承载控制业务的控制总线在集成电路(即,芯片)中实现。参考图1,其示出了示例性控制总线700。控制总线700是用于在环中承载单字控制业务的数据路径。控制总线700是流水线式数据总线,数据分组经由该流水线式数据总线以由施加到控制总线700的时钟脉冲所确定的速率在流水线中逐级移动。环包括多个节点710,其中业务以沿围绕环的流动方向从一个节点710传递到下一个节点710。每个节点的输出端口750连接到环中的下一个节点710的输入端口760。
42.节点710中的一些包括到接收电路720(在本文被称为总线目标720)的连接,用于接收对与总线目标720相关联的存储设备的读取或写入请求。节点中的一些还包括到发出读取或写入请求的请求电路730(在本文被称为总线发起者730)的连接。在实施例中,控制总线700承载多达16个总线发起者与512个总线目标之间的业务。因此,节点710是控制总线700中的块,其将总线发起者730或总线目标720连接到控制总线700。
43.包含总线发起者730的片上组件/设备的示例包括:运行软件或固件的片上处理器、i/o端口(例如,从软件接收请求的pci express端点,该软件在通过pcie连接到ipu的外部处理器上运行)、使用控制总线与芯片上的另一硬件单元进行通信的硬件单元。这些组件中的每个能够经由它们的请求电路/总线发起者730发出读取或写入请求。所有的总线发起者730都在片上。包含总线发起者730的组件中的每个还包含经由总线发起者730发出读取或写入请求的请求块。
44.包括总线目标720的片上组件/设备的示例包括:具有控制寄存器的硬件单元,该控制寄存器存储有控制硬件单元的操作的参数;片上存储设备(例如,sram或非易失性存储器)、到片外存储设备的桥(诸如dram存储器控制器);用于将分组从所描述的控制总线通信协议转换为另一协议的电路。此类总线目标720中的每个与可从其进行读取或写入的存储设备相关联。所有的总线目标720都在芯片上。包含总线目标720的组件中的每个还包括接收块,该接收块包含响应于在总线目标720处接收到的请求而可以从其进行写入或读取的存储设备。
45.总线发起者730中的每个能够向总线目标720发出请求并从总线目标720接收完成。每个请求是用于从与总线目标720相关联的存储设备(例如,附加的可寻址实体或自动生成寄存器)读取的命令,或者是用于向与总线目标720相关联的这种存储设备写入的请求任一者。响应于接收这种请求,总线目标720通过发出完成来进行响应。完成提供指示读取或写入请求是否成功的状态更新。
46.控制总线节点710将总线发起者730和总线目标720连接到控制总线700。控制总线节点710处理控制总线700事务路由,并且管理控制总线700访问协议。每个控制总线节点710可以具有总线发起者接口或总线目标接口任一者。
47.总线发起者730向控制总线710发出请求并接收相关完成作为响应。一旦总线发起者730被其所连接的节点710准予总线访问,则总线发起者730可以经由其节点710向控制总线700发出其请求事务。总线发起者730还响应于其已经发出的读取或写入请求而从总线目标720接收完成。
48.还在环中发出请求和完成令牌。这些是围绕环循环并允许总线发起者730和总线目标720对访问控制总线700进行仲裁的分组。在任何时间点围绕环循环的令牌的数量由调节器740控制。调节器740最初发出令牌,并且如将理解的,当总线发起者730和总线目标720发送并接收请求和完成时,令牌被其添加和移除。令牌用于准予总线发起者730和总线目标720访问控制总线700。控制总线调节器740负责通过向总线710发出请求和完成令牌来控制控制总线710访问。在控制总线700上循环的请求和完成令牌(由调节器740设置)确定控制总线700支持多少未完成的事务。
49.令牌采用请求令牌和完成令牌的形式。请求令牌准予总线发起者730访问控制总线700。完成令牌准予总线目标720访问控制总线700。请求令牌沿控制总线700循环,直到具有待发出的未决请求的总线发起者730接收令牌并将其从控制总线700中移除。每个请求令牌包括标识符(被称为initid)。标识符initid标识环中的调节器740或者总线发起者730中的任一者。当请求令牌到达节点710时,该节点710的总线发起者730将响应于确定请求令牌中的标识符与该总线发起者730的标识符匹配或者请求令牌中的标识符与调节器740的标识符匹配中的任一者来从环中移除请求令牌。因此,当请求令牌到达节点710(该节点710包含到总线发起者730的接口,该总线发起者730具有待发出的未决请求)并因此包含匹配标识符,或者如果请求令牌包含调节器740的标识符,当请求令牌达到节点710(该节点710包含到任何总线发起者730的接口,该总线发起者730具有待发出的未决请求),则请求令牌在控制总线700上循环并且被移除。
50.当总线发起者730从控制总线700移除请求令牌时,总线发起者730向控制总线700发出请求。该请求可以是写入请求或读取请求。写入请求是对与总线目标720相关联的存储设备写入的请求。读取请求是从与总线目标720相关联的存储设备读取的请求。
51.写入请求包括报头和有效载荷。这些被无间隙地发送到控制总线700上。有效载荷包含将被写入总线目标/多个总线目标720的关联存储设备的数据。写入请求可以是单播或广播。向控制总线700上的所标识的单个总线目标720发出单播写入请求。向控制总线700上的所有总线目标720发出广播写入请求。
52.当总线目标720接收到单播写入请求时,其响应于写入请求的接收而发出写入完成。写入完成被返回到发出写入请求的总线发起者730。写入完成分组包括写入请求是否成
功的指示。对于广播写入请求,总线目标720不返回写入完成。
53.读取请求各自包括不具有有效载荷的报头。读取请求是单播的。接收读取请求的总线目标720通过发出读取完成来进行响应。读取完成包括报头和有效载荷,其中有效载荷包括从读取请求中所指示的地址读取的数据。读取完成还包括读取是否成功的指示。该指示被包含在读取完成分组的报头中。如果读取完成包括读取请求不成功的指示,则接收读取完成的总线发起者730将忽略被包含在有效载荷中的数据。
54.参考图2,其示出了向控制总线700发出的分组中的一个的报头800的示例。报头800可以是读取请求、写入请求、读取完成、写入完成、请求令牌或完成令牌的报头。其中的一些分组类型可以省略某些字段。例如,可以从请求和完成令牌中省略地址字段840。
55.在总线700上循环的分组中的一些还包括有效载荷(例如,写入请求或读取完成),但这些未在图2中示出。沿报头的编号指示报头800的比特。该示例报头800包括32个比特,其中在0:3比特处指示事务类型810、在比特4:7处的总线发起者730或调节器740的标识符820、在比特8:16处的总线目标标识符830,以及在比特17:31处的地址偏移840。这些数量仅是示例,并且报头800中的比特数量和不同字段的比特分配在其它示例中可能不同。
56.报头800包括事务类型的指示810。该指示810标识分组是读取请求、写入请求、读取完成、写入完成、请求令牌还是完成令牌。
57.报头800包括总线发起者730或调节器740任一者的标识符820。这是上面讨论的initid字段。在请求分组中,标识符820指示总线发起者730中的哪个将请求分组提供到控制总线700上。在完成分组中,标识符820指示目的地总线发起者730用于完成。对于请求令牌分组,标识符820是调节器740或总线发起者730中任一者的标识符。如果标识符820标识调节器740,则请求令牌可以被任何总线发起者730移除/消耗。如果标识符820标识总线发起者730中的一个,则请求令牌可以仅由标识符820所标识的总线发起者730移除/消耗。另一方面,完成令牌可以被任何总线目标720移除/消耗。在一些实施例中,标识符820可能不存在于完成令牌分组中。在其它实施例中,完成令牌分组中的标识符820可以标识调节器740。
58.报头800包括总线目标标识符字段830,其标识总线目标720中的一个。对于单播请求分组,所标识的总线目标720是请求的目的地。所标识的总线目标720将响应于请求。在广播请求分组的情况下,字段830包括指示分组是广播分组的指示。
59.在一些情况下,总线目标720与多个总线目标标识符相关联,其中不同的总线目标标识符与和总线目标相关联的不同存储设备相关联。例如,第一总线目标标识符可以与总线目标720的管理寄存器相关联,而第二总线目标标识符可以与和同一总线目标720相关联的另一存储设备相关联。在这种情况下,字段830可以标识与特定总线目标720相关联的存储设备中的一个。
60.对于完成分组,字段830标识完成分组所源自的总线目标720。该信息可以用于调试目的。当多个总线目标720将它们的状态聚合到单个完成分组中时(当完成响应广播请求而发出时执行),字段830不标识总线目标720。在这种情况下,字段830未被定义。
61.报头800包括地址字段840,其指示总线目标的关联存储设备中的地址。该地址可以是与总线目标720相关联的自动生成寄存器中的地址。地址可以是与总线目标720相关联的地址窗口中的地址。在请求分组中,该地址指示将针对其执行读取或写入的地址。在完成
分组中,地址字段840包含与存在于相应请求分组的地址字段840中的地址相同的地址,其中响应于该相应请求分组发出完成分组。
62.如上所描述,总线目标720和总线发起者730对控制总线700的访问由令牌系统控制。总线发起者730可以仅在其已消耗到达其所连接的节点710的请求令牌时向控制总线发出请求。总线目标720可以仅在其已消耗到达其所连接的节点710的完成令牌时向控制总线700发出完成。调节器740负责发出令牌,并且因此控制多个事务可以同时在控制总线上循环的程度。
63.控制总线700事务的生命周期被划分为两个主要阶段。这些阶段是请求和完成阶段。
64.在请求阶段期间,当总线发起者730具有未决请求时,其等待请求令牌到达其连接的节点710。当在连接节点710处接收到请求令牌时,如果请求的标识符820标识总线发起者730本身或调节器740任一者,则响应于这样的确定,总线发起者730消耗请求令牌并用未决请求替换令牌。控制总线700的节点710中的一些包含到所附接的总线发起者730的接口。此类节点710中的每个处的接口检查请求令牌中的发起者标识符820,并且当确定存在适当的标识符时将请求令牌提供给总线发起者730。作出确定的接口可以是总线发起者730本身的处理逻辑的一部分,或者可以是节点710的单独电路任一者。
65.控制总线700的节点710中的一些包含到所附接的总线目标720的接口。此类节点710中的每个处的接口检查请求分组中的目标标识符820,并且将请求分组提供给总线目标720,该请求分组包含与所附接的总线目标720的标识符相匹配的标识符。作出确定的接口可以是总线目标720本身的处理逻辑的一部分,或者可以是节点740的单独电路任一者。
66.总线目标720中的每个包含缓冲器,其中从控制总线700上的总线发起者730接收读取或写入请求。每个总线目标720中的缓冲器足够大以能够存储来自控制总线700上的每个总线发起者730的请求。例如,如果控制总线700支持16个发起者,则每个总线目标720中的缓冲器能够存储至少16个请求。总线目标720的处理逻辑将依次处理存储在缓冲器中的请求,并使相应的完成被发出到控制总线700上。通过为来自控制总线700上的所有总线发起者720的请求提供缓冲空间,一旦每个请求到达相应的总线目标720,每个请求将被移除。
67.总线目标720中的一些被配置为慢总线目标。在接收到指向慢总线目标的请求时,慢总线目标消耗该请求,对其进行操作,以及用控制总线700上的请求令牌替换该请求。
68.总线目标720中的一些被配置为快总线目标。快总线目标是总线目标720,其在接收到请求时对请求进行操作(即,通过读取或写入其标识的存储地址),但使请求在控制总线上循环。换句话说,处理请求的总线目标720不消耗该请求。相反,请求被发出它的总线发起者730消耗。该总线发起者730用随后在控制总线700上循环的请求令牌替换请求。将总线目标720配置为快总线目标具有至少两个优点。首先,这种操作模式对广播请求很有效,因为将由多个总线目标720处理的请求随后将不会被此类总线目标720中的第一个消耗。相反,请求将传播到多个总线目标720中的所有总线目标,而不被它遇到的第一个总线目标720消耗。其次,总线发起者730对请求令牌的再生意味着沿着环700的下一个总线发起者730对控制总线700具有最高优先级访问,从而产生更公平的总线访问方案。
69.在请求阶段之后,执行完成阶段。在完成阶段期间,在接收和处理请求之后,总线目标720向控制总线700发出完成分组,该完成分组被相应请求所源自的总线发起者730消
耗。如果完成令牌到达其所连接的节点710,则具有未决完成的总线目标720将发出其完成。
70.当总线目标720从控制总线700接收读取或写入请求时,读取或写入请求是否被服务取决于所存储的访问权限是否指示请求所源自的总线发起者730具有对该总线目标的访问。换句话说,访问权限是在总线发起者-总线目标的基础上定义的。这些访问权限是保存在总线目标720的管理寄存器中的管理状态的一部分。
71.总线目标720和总线发起者730中的每个包括用于执行所描述的操作的处理逻辑和存储设备。处理逻辑可以包括被配置为执行存储在目标720或发起者730的存储器中的计算机可读指令以执行操作的处理逻辑。处理逻辑可替代地或附加地包括现场可编程门阵列(fpga)或专用电路(asic)。
72.参考图3,其示出了示例总线目标720。总线目标720包括总线目标管理寄存器910,其可以响应于从控制总线700接收到的写入请求而被写入。这种对总线目标的管理寄存器910写入的请求可以被称为管理请求。总线目标管理寄存器910存储每个总线发起者730的访问权限。这些访问权限可以由被称为第一和第二管理单元(也可以被称为等级1管理器和等级2管理器)的选定单元写入管理寄存器910,这将稍后进行更详细的讨论。每个管理单元包括用于向目标管理状态发出写入请求以定义访问权限的总线发起者730。
73.另外,每个总线目标720包括至少一个节点管理寄存器940。节点管理寄存器940可以经由专用节点管理广播写入请求而被写入,该专用节点管理广播写入请求将公共状态集写入总线目标720中的所有节点管理寄存器940。该广播写入由另一管理单元(本文被称为等级0管理器)执行,这将稍后进行更详细的讨论。
74.除了至少一个总线目标管理寄存器910之外,总线目标720与作为总线目标720所属的组件的接收块950的一部分的附加存储设备920相关联。附加存储设备920可以包括自动生成寄存器和/或的存储设备。该附加存储设备920可以包括可通过另一总线寻址的芯片2的小片4上的控制寄存器。该附加存储设备920可以允许访问片外存储设备,诸如可通过pci链路访问的主机存储设备。在这种情况下,附加存储设备920是主机调度器的存储器,其将写入存储器的数据提供给主机存储器。
75.总线目标720经由包括请求端口和完成端口的接口而连接到控制总线710。请求端口从控制总线700接收读取和写入请求,这些请求在请求缓冲器960中缓冲并然后被传递到处理逻辑930。完成端口将来自完成缓冲器970的完成发送到控制总线700上。处理逻辑930可以执行以硬件或软件实现的功能。处理逻辑930可以包括被配置为执行存储在总线目标720的至少一个存储器中的计算机可读指令的asic、fpga或至少一个处理器中的一个或多个。
76.处理逻辑930通过检查存在于在总线目标720处接收的读取/写入请求中的总线发起者标识符以及在寄存器910中查找与读取/写入请求所标识的总线发起者730相关联的所存储的访问权限来确定是否将服务请求。如果访问权限指示在读取/写入请求中标识的总线发起者730根据所存储的访问权限而具有对与总线目标720相关联的存储设备920的访问,则总线目标720将确定通过允许执行读取/写入来服务请求。在此之后,处理逻辑930将使得完成分组被发送到控制总线700上。如果访问权限指示在读取/写入请求中标识的总线发起者730不具有对与总线目标720相关联的存储设备920的访问权限,则总线目标720将不服务请求。在这种情况下,总线目标720将返回完成分组,该完成分组向发送请求的总线发
起者730指示该请求没有被成功地执行。通过处理逻辑930经由完成端口发送该完成分组。在通过完成端口发送完成分组之前,在完成缓冲器970中缓冲该完成分组。
77.总线目标管理寄存器910存储管理状态信息。所有总线目标720都包含驻留在管理空间中的这种寄存器910。被包含在总线目标管理状态中的信息类型在总线目标720中的每个中是相同的。然而,总线目标管理状态可以被编程有在每总线目标的基础上的不同设置。总线目标管理状态包括在每个总线目标720中针对每个总线发起者730定义的访问权限。总线目标管理状态可以包括可经由总线目标720访问的、被列入白名单的存储设备的某些地址的指示,即,访问权限不适用于这些地址并且它们可以由总线发起者730中的任一者读取和写入。
78.进一步的管理状态(被称为节点管理状态)存储在总线目标720的寄存器940中。节点管理状态被编程有针对所有总线目标720的相同的设置。这可以通过向总线目标720发出一个或多个广播写入请求的总线发起者730中的一个或多个来实现。节点管理状态包括等级1管理器的标识。节点管理状态包括等级2管理器的标识。节点管理状态包括从系统熔丝盒分发的熔丝状态设置,包括等级1管理器的标识。
79.每个总线发起者730具有在不可编程的硬件中分配的唯一发起者id。每个总线目标720中的节点管理寄存器940定义等级2管理器的总线发起者730的发起者id。这可以可编程地设置,但仅通过由等级1管理器发出的写入请求来设置。由于等级2管理器的总线发起者730的id在每个目标720的每个寄存器940中必须相同,因此等级1管理器使用广播写入将该id写入总线700上的所有总线目标720。
80.每个总线目标720还与存储设备920相关联。与总线目标管理寄存器910不同,关联的存储设备920可以采用不同的形式并且根据总线目标720变化。因此,与总线目标管理寄存器910不同(该总线目标管理寄存器910对于每个总线目标相同(即使寄存器910中所保存的状态在总线目标720之间不同)),关联的存储设备920组件对于每个总线目标720是不同的。
81.当总线目标720接收读取/写入请求时,其基于请求中所包含的总线目标标识符830区分指向寄存器910的读取/写入请求和指向存储设备920的读取/写入请求。每个总线目标720与两个不同的标识符相关联。这些标识符中的第一个是与寄存器910相关联的标识符,而这些标识符中的第二个是与关联的存储设备920相关联的标识符。处理逻辑930检查总线目标标识符830并选择寄存器910和存储设备920中的一个,其中根据该总线目标标识符830处理存储设备920的读取/写入请求。
82.由处理逻辑930使用存储在寄存器910中的访问权限来确定如何处理至/来自存储设备920的所接收到的读取或写入请求。处理逻辑930接收读取或写入请求并检查包含在请求中的总线发起者标识符。处理逻辑930使用总线发起者标识符在总线目标管理寄存器910中查找该总线发起者730的访问权限。如果处理逻辑930基于其关联的权限设置确定总线发起者730具有对关联的存储设备920的访问,则处理逻辑930使请求得以实现。在这种情况下,执行对存储设备920的读取/写入。另一方面,如果处理逻辑930基于其关联的权限设置确定总线发起者730不具有对关联的存储设备920的访问,则处理逻辑930阻止写入或读取请求被服务。
83.在实施例中,存储在寄存器910中的访问权限设置集合包括访问权限的两个子集。
在它们之间,访问权限的子集由第一组件(本文被称为等级1管理单元)和第二组件(本文被称为等级2管理单元)定义。等级1管理单元或等级2管理单元中的任一者都可以写入访问权限的子集中的任一者。然而,等级2管理单元不能更新已由等级1管理器设置的阻止访问的访问权限设置。
84.访问权限设置的每个子集包括与每个总线发起者730相关联的设置。对于给定的总线发起者730,如果该总线发起者730的访问权限设置中的任一者包括不允许访问的指示,则从总线发起者730接收到读取或写入请求不被服务(该规则适用于等级1和等级2管理单元的例外情况)。然而,从等级1管理单元到存储设备920的读取或写入请求总是得到服务。除非等级1权限设置指示不允许等级2管理器进行访问,否则从等级2管理单元到存储设备920的读取或写入请求得到服务。因此,等级1设置优先于等级2设置,因为它们还可以阻止等级2管理器进行访问。
85.参考图4,其示出了访问权限的设置的不同可能性。如表1100中所示,每个总线发起者730与两个不同的设置相关联,一个用于每个等级的访问权限。对于总线发起者1,等级1和等级2访问权限均指示(通过0b)允许存储设置1100的特定总线目标720进行访问。因此,由总线发起者1发出并在总线目标720处接收的请求将由总线目标720服务,即,将执行读取或写入。
86.对于总线发起者2,等级1访问权限设置指示(通过0b)允许存储设置1100的特定总线目标720进行访问。然而,等级2访问权限设置指示(通过1b)不允许特定总线目标720进行访问。因此,由总线发起者2发出的请求(假设总线发起者2不属于等级1管理器或等级2管理器)并在总线目标720处接收到的请求将不会由总线目标720服务,即,不会进行读取或写入。
87.类似地,对于总线发起者3,等级2访问权限设置指示(通过0b)允许存储设置1100的特定总线目标720进行访问。然而,等级1访问权限设置指示(通过1b)不允许特定总线目标720进行访问。因此,由总线发起者3发出(假设总线发起者3不是等级1管理器的一部分)并在总线目标720处接收到的请求将不会由总线目标720服务,即,不会执行读取或写入。
88.对于总线发起者4,由于等级1和等级2访问权限设置指示不允许访问,因此来自总线发起者4的请求(假设总线发起者4不属于等级1管理器)将不会由总线目标720服务,即,不会进行读取或写入。
89.因此,支持了两层安全性,这允许等级2管理单元在适用于等级2管理单元本身的等级1安全性要求之上添加其自己的安全性要求。这意味着,对于任何总线发起者730作出的请求(除了等级1和等级2管理器的请求之外),可以通过从管理单元中的任一者分发的设置来阻止访问。
90.现在将描述等级1和等级2管理单元如何配置权限设置。再次参考图1和图3。如所指出,总线目标管理寄存器910存储相关总线目标720的管理状态,包括访问权限设置。可以通过向控制总线700发出写入请求的管理单元对该管理状态进行写入,该写入请求具有与相关总线目标720的总线目标管理寄存器910相关联的总线目标标识符。除管理单元的总线发起者730之外,其它总线发起者730不能对管理状态进行写入。
91.总线发起者730中的一个属于第三管理单元(被称为等级0管理器)。等级0管理器包含在制造期间设置且无法被更改的某一状态。等级0管理器是系统熔丝盒。等级0管理器
被配置为向控制总线700发出写入请求以将其状态分配给系统中的节点710和总线目标720。写入请求包括作为总线发起者标识符820的等级0管理器的标识符。每个总线目标720响应于确定到其总线目标管理寄存器910的接收到的写入请求中的总线发起者标识符820匹配等级0管理器的标识符而更新其在节点管理寄存器940中的状态。
92.由等级0管理器分发的状态包括等级1管理器的标识符,该标识符被存储在每个总线目标720的总线目标管理寄存器910中。等级1管理器然后可以发出写入请求以更新总线目标管理寄存器910中的某一状态,因为它将被总线目标720标识为等级1管理器。等级1管理器可以发出(经由其请求电路)写入请求以将等级2管理器的标识符写入目标720中的每个的总线目标管理寄存器910。在允许发生进一步的总线活动之前执行等级2管理器的标识到目标720的写入。一旦等级2管理器的标识被分发给目标720,等级2管理器然后可以发出(经由其请求电路)写入请求以更新总线目标管理寄存器910中的某一状态,因为它将被总线目标720标识为等级2管理器。
93.等级1管理器可以更新总线目标管理寄存器910中所保存的等级1权限设置或等级2权限设置。等级2管理器还可以更新总线目标管理寄存器910中所保存的等级1权限设置或等级2权限设置。当在总线目标720处接收到用于更新寄存器910中所保存的等级1权限设置或等级2权限设置的传入写入请求时,处理逻辑930标识包含在写入请求中的总线发起者标识符820。如果总线发起者标识符820与存储在寄存器910中的等级1管理器的标识符匹配,则处理逻辑930根据写入请求来使寄存器910中的等级1权限设置或等级2权限设置被更新。
94.假设尚未由等级1管理器写入这些权限设置来阻止访问,则等级2管理器还可以更新寄存器910中所保存的等级1和等级2权限设置。换句话说,等级2管理器可以添加安全层,但不能移除由等级1管理器添加的安全层。
95.在等级1管理器已移除访问权限的情况下(即,更改了权限设置以指示不允许给定总线发起者730进行访问),等级2管理器随后可能不会重新启用该访问。换句话说,等级2管理器不能改变已经由等级1管理器设置的指示不允许访问的访问权限设置以指示不允许访问。这可以通过以下方式实现:当在总线目标720处接收到用于更新寄存器910中所保存的等级1权限设置或等级2权限设置的传入写入请求时,处理逻辑930标识从写入请求中所包含的标识符820发送请求的总线发起者730,并且检查寄存器910中的所存储的指示以确定等级1管理器是否已写入目标访问权限设置来阻止访问。如果总线发起者标识符820与存储在寄存器910中的等级2管理器的总线发起者730的标识符匹配,并且等级1管理器没有设置权限设置来阻止访问,则处理逻辑930根据写入请求来使寄存器910中的权限设置被更新。如果总线发起者标识符820与存储在寄存器910中的等级2管理器或等级1管理器任一者的标识符不匹配,则处理逻辑930不会根据请求更新权限设置,并将完成返回到总线发起者730,该总线发起者730发送指示请求失败了的请求。如果总线发起者标识符820与存储在寄存器910中的等级2管理器的标识符匹配,但所存储的指示指示等级1管理器已经设置了权限设置来阻止访问,则处理逻辑930不会根据请求更新权限设置,并将完成返回到总线发起者730,该总线发起者730发送指示请求失败了的请求。
96.当系统启动时,等级1管理器首先向目标管理寄存器910发出写入,以定义等级1访问权限设置。随后,等级2管理器向目标管理寄存器910发出写入,以定义等级2访问权限。因此,等级1管理器首先定义第一层的访问权限。等级2管理器然后添加其自己的访问权限层。
如果访问权限层中的任一者阻止总线发起者730进行访问,则处理逻辑930阻止该总线发起者730对存储设备920进行读取或写入访问。
97.访问权限的设置对于防止系统1000的某些软件实体具有对与芯片2的总线目标相关联的存储设备920的读取或写入访问是有用的。该软件可以是不受信任的第三方软件,限制对该第三方软件的访问是有用的。
98.现在将给出双等级管理系统的示例应用。
99.在示例中,片上处理器是等级1管理器,并且在主机93上运行的管理程序是等级2管理器。可信任系统管理程序被提供有对与每个总线目标720相关联的存储设备920和每个总线目标720的总线目标管理寄存器910的访问。换句话说,等级1访问权限未被设置为阻止对等级2管理器的访问。然而,作为等级2管理器,管理程序可以自由添加等级2访问权限,以便限制在主机上运行的用户虚拟机的访问。这防止欺诈或恶意用户进程损害其它用户的系统可用性以及泄露属于其它用户的数据。片上处理器仍然为所需的情况(诸如运营商的政策)自由地设置等级1访问权限。例如,运营商可以决定将片上处理器排除在某些总线发起者730(例如,系统服务之外的那些)的访问之外。
100.已经描述了通过具有两组访问权限来实现由第一管理单元和第二管理单元执行的双等级控制。然而,实施例不限于使用两组访问权限,而是可以仅使用单组访问权限。参考图5,其示出了具有这种情况的一组访问权限设置1300。标志被存储作为访问权限设置的一部分以指示是否已通过第一管理单元来阻止访问。
101.在图5中,第一访问权限设置(针对发起者1)和第三访问权限设置(针对发起者3)两者均示出了其中第一管理单元未修改访问权限设置的情况。由于第一管理单元未修改相关的访问权限设置以指示不允许访问,因此标志指示可以由第二管理单元修改访问权限。在这种情况下,可以由第二管理单元修改设置。第二访问权限设置(针对发起者2)示出了其中第一管理单元已经修改访问权限设置以指示允许访问的情况。由于第一管理单元未修改相关的访问权限设置以指示不允许访问,因此标志指示可以由第二管理单元修改访问权限。在这种情况下,第二管理单元可以修改访问权限设置。第四访问权限设置(针对发起者4)示出了其中第一管理单元已经修改访问权限设置以指示不允许访问的情况。由于第一管理单元已经修改了相关的访问权限设置以指示不允许访问,因此标志指示不能由第二管理单元修改访问权限。在这种情况下,第二管理单元不能修改访问权限设置。
102.在图5所示的表中,第五列示出了是否允许相应发起者730(对设置应用于该发起者730)的访问。
103.参考图6,其示出了可以被存储在总线目标720中的一组权限设置1200的另一示例。该组权限设置1200包括针对总线发起者730的集合中的每个的等级1权限设置和等级2权限设置,以及与每个设置相关联的、指示该设置是否已由第一管理单元设置的标志。
104.在图6中,对于与发起者1和3相关联的等级1访问权限设置,等级1管理单元尚未写入这些设置以阻止访问。者对于与发起者4相关联的等级1访问权限设置,第一管理单元已写入该设置以阻止访问。因此,第二管理单元无法改变该设置。对于与发起者1、3和4相关联的等级2访问权限设置,第一管理单元尚未写入这些设置以阻止访问。因此,第二管理单元可以改变这些设置中的任一者。对于与发起者2相关联的等级2访问权限设置,第一管理单元已写入该设置以阻止访问。因此,第二管理单元无法改变该设置。
105.如上所述,可以在目标管理寄存器910中定义某些列入白名单的地址。列入白名单的地址的设置受限于与以上针对访问权限设置所讨论的类似的规则。第一管理单元和第二管理单元两者可以定义列入白名单的地址集合。然而,第二管理单元可以不将存储设备中的地址列入白名单,其中第一管理单元已经阻止了对该存储设备的访问。处理逻辑930响应于确定对包含该地址的存储设备920的访问已被第一管理单元阻止,阻止对用于写入列入白名单的地址的写入请求进行服务。
106.参考图7,其示出了根据本技术的实施例的方法700。应当理解,虽然方法700的步骤被顺序地示出,但是执行步骤的时间周期可以重叠。
107.在s710,多个请求电路中的每个将读取或写入请求中的至少一个分派到控制总线上,以用于传送到多个接收电路中的至少一个。
108.在s720,控制总线传播请求中的至少一些中的每个请求,至少直到那些请求已经被接收电路中的至少一个服务。
109.在s730,多个接收电路中的每个接收由请求电路分派的读取或写入请求中的一个或多个。
110.在s740,接收电路中的每个通过提供对与相应接收电路相关联的存储设备的读取或写入访问中的至少一个来服务请求中的相应的一个或多个。
111.参考图8,其示出了根据本技术的实施例的方法800。应当理解,根据实施例,这些步骤的顺序可以根据图8中所示的顺序改变。
112.在s810,将多个权限设置存储在接收电路的至少一个寄存器中。
113.在s820,接收电路的接口从第一管理单元接收一个或多个写入请求,并且响应于这些一个或多个写入请求,更新权限设置以指示不允许请求电路中的一个或多个进行访问。
114.在s830,接收电路的接口从第二管理单元接收一个或多个写入请求,该写入请求是允许请求电路中的一个或多个进行访问的请求。响应于确定第一管理单元已写入指示不允许请求电路中的那些一个或多个进行访问的权限设置(如在s820中执行的),阻止用以允许请求电路中的一个或多个进行访问的权限设置的更新。
115.在s840,接收电路的接口从可通过至少一个控制总线访问的多个请求电路接收多个读取或写入请求。读取或写入请求中的每个是用于访问与接收电路相关联的至少一个存储设备的请求。
116.在s850,响应于权限这之中的指示不允许发出相应请求的请求电路中的至少一个进行访问的指示来阻止服务读取或写入请求。
117.应当理解,以上实施例仅通过示例的方式被描述。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献