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

作业的安全分布式执行的制作方法

2022-03-19 21:00:52 来源:中国专利 TAG:

作业的安全分布式执行


背景技术:

1.高级驾驶员辅助系统(adas)和自主交通工具(av)系统使用相机和其他传感器以及对象分类器,对象分类器被设计用于检测在道路上行驶的交通工具的环境中的特定对象。对象分类器被设计用于检测预定义对象,并在adas和av系统中使用,以基于检测到其位置的对象的类型等控制交通工具或提醒驾驶员。
2.随着adas和av系统朝着完全自主操作发展,保护由这些系统生成的数据将是有益的。


技术实现要素:

3.下列具体实施方式参考了所附附图。只要有可能,在附图和接下来的说明书中使用相同的附图标记指代相同或相似的部分。虽然本文描述了若干说明性的实施例,但修改、改编和其他实施方式也是可能的。例如,可以对附图中图示出的组件进行替换、添加、或修改,并且可以通过对所公开的方法进行替换、重新排序、移除或添加步骤来修改本文所描述的说明性方法。因此,下面的具体实施方式并不限于所公开的实施例和示例。
4.所公开的实施例提供可作为自主导航/驾驶和/或驾驶员辅助技术功能的一部分使用或与之结合使用的系统和方法。驾驶员辅助技术是指辅助驾驶员导航和/或控制其交通工具的任何合适的技术,诸如前方碰撞警告(fcw)、车道偏离警告(ldw)和交通标志识别(tsr),而不是完全自主驾驶。在不同的实施例中,该系统可包括可安装在交通工具中的一个、两个或更多相机和相关联的处理器,这些相机和处理器监测交通工具的环境。在进一步的实施例中,附加类型的传感器可以被安装在交通工具中,并可在自主导航和/或驾驶员辅助系统中使用。在当前所公开的主题的一些示例中,该系统可以提供用于处理在道路上行驶的交通工具前方的环境的图像以用于训练神经网络或深度学习算法从而基于图像来估计交通工具的未来路径的技术。在当前所公开的主题的又进一步示例中,该系统可以提供用于使用经训练的神经网络处理在道路上行驶的交通工具前方的环境的图像以估计交通工具的未来路径的技术。
5.提供了如权利要求书和说明书中说明的系统、方法。
6.可以提供任何权利要求的任何主题的任何组合。
7.可以提供在任何附图和/或说明书中公开的任何方法和/或方法步骤的任何组合。
8.可以提供在任何附图和/或说明书中公开的任何单元、设备、和/或组件的任何组合。此类单元的非限制性示例包括聚集单元、图像处理器等。
附图说明
9.在说明书的结尾部分的权利要求书中特别地指出并明确地要求保护的被视为本发明的主题。然而,当与附图一起阅读时,通过参考以下具体实施方式可以最好地理解本发明的组织和操作方法及其目的、特征和优点,其中:
10.图1是符合所公开的实施例的系统的框图表示;
11.图2a是包括符合所公开的实施例的系统的示例性交通工具的示意性侧视图表示;
12.图2b是符合所公开的实施例的图2a中所示的交通工具和系统的示意性俯视图表示;
13.图2c是包括符合所公开的实施例的系统的交通工具的另一实施例的示意性俯视图表示;
14.图2d是包括符合所公开的实施例的系统的交通工具的又一实施例的示意性俯视图表示;
15.图2e是符合所公开的实施例的示例性交通工具控制系统的示意图;
16.图3是包括后视镜(rearview mirror)和用于符合所公开的实施例的交通工具成像系统的用户接口的交通工具的内部的示意图;
17.图4图示出系统的示例;
18.图5图示出系统的示例;
19.图6是由处理单元执行的控制固件的示例;
20.图7是由处理单元执行的控制固件的示例;
21.图8是由处理单元执行的控制固件的示例;
22.图9是由处理单元执行的控制固件的示例;
23.图10是由处理单元执行的控制固件的示例;
24.图11是由处理单元执行的控制固件的示例;
25.图12图示出方法的示例;
26.图13图示出方法的示例;以及
27.图14图示出方法的示例。
具体实施方式
28.在下面的详细描述中,阐述了众多具体细节以便提供对本发明的全面理解。然而,本领域技术人员将理解,可在没有这些具体细节的情况下实践本发明。在其他方面,未详细描述公知的方法、过程和组件,以免使本发明变得模糊。
29.在说明书的结尾部分中特别地指出并明确地要求保护被视为本发明的主题。然而,当与附图一起阅读时,通过参考以下具体实施方式,可以最好地理解本发明的组织和操作方法以及其目的、特征和优点。
30.将领会,出于说明简单和清楚起见,图中所示的要素不一定是按比例绘制的。例如,为了清楚起见,可将要素中的一些要素的尺寸相对于其他要素扩大。此外,在被认为合适的情况下,诸附图标记可在诸附图之间重复来指示对应或类似的要素。
31.因为本发明的图示出的实施例在大多数情况下可以使用本领域技术人员已知的电子组件和电路来实现,所以为了理解和了解本发明的基本概念,并且为了不混淆或偏离本发明的教导,将不在比如上所述认为必要的范围更大的范围内解释细节。
32.本说明书中对方法的任何引用加以必要修改应适用于能够执行该方法的系统,并且加以必要修改应适用于存储指令的非暂态计算机可读介质,该指令一旦被计算机执行就会导致该方法的执行。
33.本说明书中对系统和任何其他组件的任何引用加以必要修改应适用于可由存储
器设备执行的方法,并且加以必要修改应适用于存储可由存储器设备执行的指令的非暂态计算机可读介质。例如,可以提供示例中任何一项所述的由图像处理器执行的方法和/或方法步骤。例如,可以提供示例中任何一项所描述的由图像处理器执行的方法和/或方法步骤。
34.本说明书中对非暂态计算机可读介质的任何引用加以必要修改应适用于能够执行存储在非暂态计算机可读介质中的指令的系统,并且加以必要修改应适用于可由读取存储在非暂态计算机可读介质中的指令的计算机执行的方法。
35.可以提供在附图中的任何附图、说明书的任何部分和/或任何权利要求中列出的任何模块或单元的任何组合。特别是可以提供任何要求保护的特征的任何组合。
36.像素可以是由相机获得的图片元素。
37.在详细讨论对在道路上行驶的交通工具前方的环境的图像进行处理以用于训练神经网络或深度学习算法从而基于图像来估计交通工具的未来路径的特征或者使用经训练的神经网络处理在道路上行驶的交通工具前方的环境的图像以估计交通工具的未来路径的特征的示例之前,提供了对可用于执行和实现根据当前公开的主题的示例的方法的交通工具可安装系统的各种可能的实现方式和配置的描述。在一些实施例中,该系统的各个示例可以被安装在交通工具中,并且可以在交通工具运动的同时进行操作。在一些实施例中,该系统可以实现根据当前公开的主题的示例的方法。
38.然而,可以领会是,本公开的实施例并不限于可疑直立对象指示是由高等级道路引起的场景。可疑直立对象指示可以与各种其他情况相关联,可以由其他类型的图像数据产生,并且也可以由不基于图像或不完全基于图像的数据产生。
39.现在参考的图1是符合所公开的实施例的系统的框图表示。取决于特定实现方式的要求,系统100可以包括各种组件。在一些示例中,系统100可以包括处理单元110、图像采集单元120、和一个或多个存储器单元140、150。处理单元110可以包括一个或多个处理设备。在一些实施例中,处理单元110可以包括应用处理器180、图像处理器190或任何其他合适的处理设备。类似地,取决于特定应用的要求,图像采集单元120可以包括任何数量的图像采集单元和组件。在一些实施例中,图像采集单元120可以包括一个或多个图像捕获设备(例如,相机),诸如图像捕获设备122、图像捕获设备124、和图像捕获设备126。在一些实施例中,系统100还可以包括将处理单元110通信地连接到图像采集单元120的数据接口128。例如,数据接口128可以包括用于将由图像采集单元120采集的图像数据传送到处理单元110的任何一个或多个有线和/或无线链路。
40.应用处理器180和图像处理器190两者都可包括各种类型的处理设备。例如,应用处理器180和图像处理器190中的任一者或两者可以包括一个或多个微处理器、预处理器(诸如图像预处理器)、图形处理器、中央处理单元(cpu)、支持电路、数字信号处理器、集成电路、存储器,或适用于运行应用以及适用于图像处理和分析的任何其他类型的设备。在一些实施例中,应用处理器180和/或图像处理器190可以包括任何类型的单核或多核处理器、移动设备微控制器、中央处理单元等。可以使用各种处理设备,包括例如可从诸如等制造商获得的处理器,并且各种处理设备可以包括各种架构(例如x86处理器、等)。
41.在一些实施例中,应用处理器180和/或图像处理器190可以包括可从
获得的eyeq系列处理器芯片中的任何一个。这些处理器设计各自包括具有本地存储器和指令集的多个处理单元。此类处理器可包括用于从多个图像传感器接收图像数据的视频输入,并且还可包括视频输出能力。在一个示例中,使用在332mhz下操作的90纳米微米技术。架构具有两个浮点、超线程32位risc cpu(核)、五个视觉计算引擎(vce)、三个向量微码处理器denali 64位移动ddr控制器、128位内部声学互连、双16位视频输入和18位视频输出控制器、16个通道dma和若干外围设备。mips34k cpu管理五个vce、三个vmp.tm.和dma、另一个mips34k cpu和多通道dma以及其他外围设备。五个vce、三个和mips34k cpu可以执行多功能捆绑应用所需的密集的视觉计算。在另一个示例中,作为第三代处理器并且比强大六倍的可在所公开的示例中使用。在又一示例中,(第四代处理器)可在所公开的示例中使用。
42.虽然图1描绘了处理单元110中包括两个分开的处理设备,但可以使用更多或更少的处理设备。例如,在一些示例中,可以使用单个处理设备来完成应用处理器180和图像处理器190的任务。在其他实施例中,这些任务可以由多于两个的处理设备执行。
43.处理单元110可以包括各种类型的设备。例如,处理单元110可以包括各种设备,各种设备诸如,控制器、图像预处理器、中央处理单元(cpu)、支持电路、数字信号处理器、集成电路、存储器、或用于图像处理和分析的任何其他类型的设备。图像预处理器可以包括用于捕获、数字化和处理来自图像传感器的图像的视频处理器。cpu可以包括任何数量的微控制器或微处理器。支持电路可以是任何数量的本技术领域中一般公知的电路,包括高速缓存、电源、时钟和输入输出电路。存储器可以存储软件,当该软件由处理器执行时控制系统的操作。存储器可以包括数据库和图像处理软件,例如包括经训练的系统(诸如神经网络)存储器可以包括任何数量的随机存取存储器、只读存储器、闪存、磁盘驱动器、光存储、可移动存储和其他类型的存储。在一个实例中,存储器可以与处理单元110分开。在另一实例中,存储器可以被集成到处理单元110中。
44.每个存储器140、150可以包括软件指令,当该软件指令由处理器(例如,应用处理器180和/或图像处理器190)执行时可以控制系统100的各个方面的操作。这些存储器单元可以包括各种数据库和图像处理软件。存储器单元可以包括随机存取存储器、只读存储器、闪存、盘驱动器、光存储、磁带存储、可移动存储和/或任何其他类型的存储。在一些示例中,存储器单元140、150可以与应用处理器180和/或图像处理器190分开。在其他实施例中,这些存储器单元可以被集成到应用处理器180和/或图像处理器190中。
45.在一些实施例中,该系统可以包括位置传感器130。位置传感器130可以包括适于确定与系统100中的至少一个组件相关联的位置的任何类型的设备。在一些实施例中,位置传感器130可以包括gps接收器。此类接收器可以通过处理由全球定位系统卫星广播的信号来确定用户的位置和速度。来自位置传感器130的位置信息可以对于应用处理器180和/或图像处理器190可用。
46.在一些实施例中,系统100可以操作地连接到交通工具(系统100可安装在其中)上的各种系统、设备和单元,并且通过任何合适的接口(例如,通信总线),系统100可以与交通
工具的系统通信。系统100可与其合作的交通工具系统的示例包括:节流系统、制动系统、和转向系统。
47.在一些实施例中,该系统100可以包括用户接口170。用户接口170可以包括适于向系统100的一个或多个用户提供信息或适于从系统100的一个或多个用户接收输入的任何设备,包括例如触摸屏、麦克风、键盘、指点设备、轨迹轮、相机、旋钮、按钮等。信息可以由系统100通过用户接口170提供给用户。
48.在一些实施例中,该系统100可以包括地图数据库160。地图数据库160可以包括用于存储数字地图数据的任何类型的数据库。在一些示例中,地图数据库160可以包括与各种项目(包括道路、水体特征、地理特征、感兴趣的点等)在参考坐标系中的位置相关的数据。地图数据库160不仅可以存储此类项目的位置,还可以存储与这些项目相关的描述符,包括例如与存储的特征中的任何特征相关联的名称和与其有关的其他信息。例如,数据库中可以包括已知障碍物的位置和类型、与道路的地形或沿着道路的某些点的等级有关的信息,等等。在一些实施例中,地图数据库160在物理上可以与系统100的其他组件一起被定位。替代地或附加地,地图数据库160或其部分可以相对于系统100的其他组件(例如,处理单元110)远程地定位。在此类实施例中,来自地图数据库160的信息可以通过至网络的有线或无线数据连接(例如,通过蜂窝网络和/或互联网等)来下载。
49.图像捕获设备122、124和126可以各自包括适于从环境中捕获至少一个图像的任何类型的设备。此外,可以使用任何数量的图像捕获设备来采集用于输入到图像处理器的图像。当前公开的主题的一些示例可以包括仅单个图像捕获设备或可以利用仅单个图像捕获设备来实现,而其他示例可以包括两个、三个、或甚至四个或更多个图像捕获设备或可以利用两个、三个、或甚至四个或更多个图像捕获设备来实现。下面将参考图2b-图2e进一步描述图像捕获设备122、124和126。
50.应当领会,系统100可以包括其他类型的传感器或可以与其他类型的传感器操作地相关联,其他类型的传感器包括例如:声学传感器、rf传感器(例如,雷达收发器)、激光雷达传感器。此类传感器可以独立于图像采集单元120而使用或者可以与图像采集单元120协作地使用。例如,来自雷达系统(未示出)的数据可用于验证从处理由图像采集单元120采集的图像中接收的经处理的信息,例如以对从处理由图像采集单元120采集的图像得到的某些误报(false positive)进行过滤,或者来自雷达系统的数据可以与来自图像采集单元120的图像数据或来自图像采集单元120的图像数据的一些经处理的变体或衍生物组合或以其他方式互补。
51.系统100或其各个组件可以被并入到各种不同的平台中。在一些实施例中,系统100可以被包括在交通工具1200上,如图2a所示。例如,如上文相对于图1所述,交通工具1200可以配备有处理单元110和系统100中的任何其他组件。虽然在一些实施例中,交通工具1200可以仅配备有单个图像捕获设备(例如,相机),但在其他实施例中(诸如结合图2b-图2e所讨论的那些实施例中)可以使用多个图像捕获设备。例如,如图2a所示,交通工具1200的图像捕获设备122和124中的任一者可以是adas(高级驾驶员辅助系统)成像集合的一部分。
52.交通工具1200上包括的、作为图像采集单元120的一部分的图像捕获设备可以被定位在任何合适的位置。在一些实施例中,如图2a-图2e和图3所示,图像捕获设备122可以
位于后视镜(rearview mirror)附近区域中。该位置可以提供与交通工具1200的驾驶员的视线类似的视线,这可以帮助确定对驾驶员可见和不可见的事物。
53.针对图像采集单元120的图像捕获设备的其他位置也可以被使用。例如,图像捕获设备124可以位于交通工具1200的保险杠上或保险杠中。此类位置可能特别适于具有宽视场的图像捕获设备。位于保险杠的图像捕获设备的视线可以与驾驶员的视线不同。图像捕获设备(例如,图像捕获设备122、124和126)也可以位于其他位置。例如,图像捕获设备可以位于交通工具1200的一侧或两侧后视镜(side mirrors)上或一侧或两侧后视镜中、交通工具1200的车顶上、交通工具1200的引擎盖上、交通工具1200的后备箱上、交通工具1200的侧部上,被安装在交通工具1200的窗户中的任何窗户上,被定位在交通工具1200的窗户中的任何窗户的后面或前面,以及被安装在交通工具200的前部和/或后部的灯具中或附近,等等。图像捕获单元120或作为在图像捕获单元120中使用的多个图像捕获设备中的一者的图像捕获设备,可以具有与交通工具的驾驶员的视场(fov)不同的fov,并且不是总是看到相同的对象。在一个示例中,图像采集单元120的fov可以延伸超出典型驾驶员的fov,并且因此可以对驾驶员的fov之外的对象进行成像。在又一示例中,图像采集单元120的fov是驾驶员fov的某个部分。在一些实施例中,图像采集单元120的fov与覆盖交通工具前方的道路区域并且可能还覆盖该道路的周围环境的扇形相对应。
54.除了图像捕获设备之外,交通工具1200还可以包括系统100的各个其他组件。例如,处理单元110可以被包括在交通工具1200上,与交通工具的引擎控制单元(ecu)集成、或与交通工具的引擎控制单元(ecu)分开。交通工具1200还可以配备有位置传感器130(诸如,gps接收器),并且还可以包括地图数据库160以及存储器单元140和150。
55.图2a是根据当前公开的主题的示例的交通工具成像系统的示意性侧视图表示。图2b是图2a中所示的示例的示意性俯视图图示。如图2b所图示,所公开的示例可以包括交通工具1200,在交通工具1200的主体中包括系统100,该系统100具有被定位在交通工具1200的后视镜(rearview mirror)附近和/或靠近驾驶员的第一图像捕获设备122、被定位在交通工具1200的保险杠区域(例如,诸保险杠区域1210中的一个)上或在保险杠区域中的第二图像捕获设备124、以及处理单元110。
56.如图2c所图示,图像捕获设备122和124两者均可以被设置在交通工具1200的后视镜(rearview mirror)附近和/或靠近驾驶员。另外,虽然在图2b和图2c中示出了两个图像捕获设备122和124,但应当理解,其他实施例可以包括多于两个的图像捕获设备。例如,在图2d所示的实施例中,第一图像捕获设备122、第二图像捕获设备124、和第三图像捕获设备126被包括在交通工具200的系统100中。
57.如图2d所图示,图像捕获设备122、124和126可以被设置在交通工具1200的后视镜(rearview mirror)附近和/或靠近驾驶员座椅。所公开的示例不限于图像捕获设备的任何特定数量和配置,并且图像捕获设备可以被定位在交通工具1200内和/或交通工具1200上的任何适当位置。
58.还应当理解,所公开的实施例不限于特定类型的交通工具1200,并且可以适用于所有类型的交通工具,包括汽车、卡车、拖车、摩托车、自行车、自平衡运输设备和其他类型的交通工具。
59.第一图像捕获设备122可以包括任何合适类型的图像捕获设备。图像捕获设备122
可以包括光轴。在一个实例中,图像捕获设备122可以包括具有全局快门的aptina m9v024 wvga传感器。在另一个示例中,可以使用滚动快门传感器。图像采集单元120以及被实现为图像采集单元120的一部分的任何图像捕获设备可以具有任何所需的图像分辨率。例如,图像捕获设备122可以提供1280x960像素的分辨率,并且可以包括滚动快门。
60.图像采集单元120以及被实现为图像采集单元120的一部分的任何图像捕获设备可以包括各种光学元件。在一些实施例中,可以包括一个或多个透镜,以例如为图像采集单元120以及为被实现为图像采集单元120的一部分的任何图像捕获设备提供所需的焦距和视场。在一些示例中,被实现为图像采集单元120的一部分的图像捕获设备可以包括任何光学元件或与任何光学元件相关联,任何光学元件诸如,例如6mm透镜或12mm透镜。在一些示例中,图像捕获设备122可以被配置成用于捕获具有所需(和已知的)视场(fov)的图像。
61.第一图像捕获设备122可以具有与采集第一系列图像扫描线中的每个图像扫描线相关联的扫描速率。扫描速率可以指图像传感器可以采集与被包括在特定扫描线中的每个像素相关联的图像数据的速率。
62.图2e是根据当前公开的主题的示例的交通工具控制系统的示意性表示。如图2e所指示,交通工具1200可以包括节流系统1220、制动系统1230和转向系统1240。系统100可以通过一个或多个数据链路(例如,用于传送数据的任何有线和/或无线链路)向节流系统1220、制动系统1230、和转向系统1240中的一个或多个提供输入(例如,控制信号)。例如,基于对由图像捕获设备122、124和/或126采集的图像的分析,系统100可以向节流系统1220、制动系统1230、和转向系统1240中的一个或多个提供控制信号以(例如,通过引起加速、转弯、车道变换等)导航交通工具1200。进一步地,系统100可以从节流系统1220、制动系统1230和转向系统1240中的一者或多者接收指示交通工具1200的操作状况(例如,速度、交通工具1200是否正在制动和/或转向等)的输入。
63.如图3所示,交通工具1200还可以包括用于与交通工具1200的驾驶员或乘客交互的用户接口170。例如,交通工具应用中的用户接口170可以包括触摸屏1320、旋钮1330、按钮1340、以及麦克风1350。交通工具1200的驾驶员或乘客也可以使用手柄(例如,位于交通工具1200的转向柱上或转向柱附近的手柄,包括例如转向信号灯手柄)、按钮(例如,位于交通工具1200的方向盘上的按钮)等来与系统100交互。在一些实施例中,麦克风1350可以被设置成与后视镜(rearview mirror)1310相邻。类似地,在一些实施例中,图像捕获设备122可以位于后视镜1310附近。在一些实施例中,用户接口170还可以包括一个或多个扬声器1360(例如,交通工具音频系统的扬声器)。例如,系统100可以经由扬声器1360提供各种通知(例如,警报)。
64.如受益于本公开的本领域技术人员将领会的,可以对前述公开的实施例做出很多的变型和/或修改。例如,对于系统100的操作,并非所有组件都是必要的。进一步地,任何组件都可以位于系统100的任何适当部分中,并且组件可以被重新布置成各种配置,同时提供所公开的实施例的功能。因此,前述配置是示例并且无论上文所讨论的配置如何,系统100可以提供广泛的功能来分析交通工具1200的周围环境,并且响应于该分析而导航和/或以其他方式控制和/或操作交通工具1200。交通工具1200的导航、控制、和/或操作可以包括启用和/或禁用(直接地或经由中间控制器(诸如上文提到的控制器))与交通工具1200相关联的各种功能、组件、设备、模式、系统和/或子系统。导航、控制、和/或操作可以替代地或附加
地包括通过例如提供视觉、音频、触觉和/或其他感官警报和/或指示来与可位于交通工具1200内部或外部的用户、驾驶员、乘客、路人、和/或其他交通工具或其他用户进行互动。
65.如下面进一步详细讨论的并符合各个公开的实施例的,系统100可以提供与自主驾驶、半自主驾驶和/或驾驶员辅助技术相关的各种功能。例如,系统100可以分析图像数据、位置数据(例如,gps位置信息)、地图数据、速度数据和/或来自被包括在交通工具1200中的传感器的数据。系统100可以从例如图像采集单元120、位置传感器130、和其他传感器收集数据以用于分析。进一步地,系统100可以分析所收集的数据,以确定交通工具1200是否应该采取某种动作,并且随后在不需要人类干预的情况下自动地采取所确定的动作。将领会,在一些情况下,由交通工具自动地采取的动作是在人类监督下进行的,而人类干预、调整、中止或推翻机器动作的能力是在某些情况下被启用或在所有时刻都被启用的。例如,当交通工具1200在没有人类干预的情况下行驶时,系统100可以(例如,通过将控制信号发送到节流系统1220、制动系统1230、和转向系统1240中的一者或多者)自动地控制交通工具1200的制动、加速、和/或转向。进一步地,系统100可以分析所收集的数据,并基于对所收集的数据的分析向驾驶员、乘客、用户、或交通工具内部或外部的其他人(或向其他交通工具)发出警告、指示、推荐、警报或指令。下面提供关于由系统100提供的各种实施例的附加细节。
66.说明书中说明的任何值是多个值的非限制性示例。其他值可以被提供——可能低于本技术中提到的值和/或超过本技术中提到的值的值。
67.包括多个处理单元的系统通常执行多个进程,而每个进程可以包括多个作业。多个进程的有效执行需要在多个处理单元之间动态分配作业。
68.处理单元可以是硬件加速器、通用单元、中央处理单元(cpu)、片上系统(soc)、图像处理器、图形处理单元(gpu)、现场可编程门阵列(fpga)、专用集成电路(asic)、神经网络处理器等等。
69.处理单元可以共享存储器资源,但是执行某个进程的作业的处理单元可能通过向分配给另一进程的存储器资源写入而损坏与另一进程相关的数据。
70.为了防止数据损坏,在执行与进程相关的作业之前,与每个进程相关联的访问控制元数据必须被上传到每个处理单元。
71.多个处理单元的管理,并且特别是访问控制元数据的加载是一项繁重的任务,也可能是高度复杂的,并且可能需要专用控制器来调度由处理单元执行不同的作业。
72.专用控制器通常在处理单元完成作业时被中断,并且一旦被中断,专用控制器必须确定要由处理单元执行的下一个作业。一旦被确定,专用控制器必须设置与该作业相关联的访问控制元数据。
73.专用控制器可能成为可以减少系统的吞吐量的瓶颈——特别是当处理单元中的至少一些处理单元与专用控制器相对间隔开时。
74.可以提供一种分布式作业分配和执行方案,其中处理单元可以以自主方式或基本自主方式(在专用控制器不干预或基本不干预的意义上)执行作业并上传特定于进程的访问控制元数据。当在处理单元执行作业的至少大多数时间期间(专用控制器不被中断)时,专用控制器可被视为不干预或基本不干预。
75.处理单元可以访问作业队列并选择要执行的作业。处理单元可以在没有专用控制
器的干预的情况下(自动地或仅在需要时)上传特定于进程的访问控制元数据。
76.作业的选择可能涉及在没有专用控制器的干预的情况下更新作业元数据(例如,哪个作业被处理单元选择、作业是否被完成)。
77.处理单元可以通过更新作业元数据将作业分配给另一个处理单元。
78.作业元数据的更新和/或访问控制单元的更新应该以安全的方式来执行,以防止作业元数据的损坏。此外,作业元数据的更新应该以安全的方式来完成,以防止黑客攻击。
79.提供了一种使处理单元能够执行敏感操作的系统、方法和计算机可读介质。敏感操作包括影响作业的执行或状态的那些操作。敏感操作的示例包括创建或修改作业数据或元数据、创建或改变作业访问控制、或控制作业执行的那些操作。
80.敏感操作可包括选择作业。
81.敏感操作可包括更新作业元数据。
82.敏感操作可以包括更新处理单元的访问控制元数据(在执行作业之前)。
83.敏感操作可以包括将作业分配给另一个处理单元。
84.处理单元可以被配置成用于在处理单元在受信任模式下操作时执行一个或多个敏感操作。当处理单元处于不受信任模式时,敏感操作可以不被执行。
85.受信任模式是处理单元可以执行敏感操作的模式。当处于不受信任模式时,处理单元不被允许执行敏感操作。
86.处理单元可以被配置成用于在重置之后并且在引导进程期间进入受信任模式。
87.处理单元可以被配置成用于在完成一个或多个敏感操作的执行之后退出受信任模式。
88.处理单元可以在不受信任模式下执行作业,并且随后重置自身并返回到受信任模式。
89.更新诸如计数器和/或指针之类的一些作业元数据可以通过使用原子命令执行单元来完成。
90.原子命令执行单元可以实现锁定、计数器、屏障和中断聚合,该中断聚合可以实现多个处理单元的同步。原子命令执行单元可以支持其他功能。
91.由某个线程执行的原子命令被其他线程视为立即发生。原子命令可以包括彼此链接的若干个命令。例如,读取-修改-写入原子命令可以包括读取命令和修改/写入命令。
92.原子命令执行单元可以是存储器映射的,在该意义上,它可以使用地址空间内的一个或多个专用地址范围的地址进行访问。该一个或多个专用地址范围是处理单元可访问的。
93.原子命令执行单元可以包括(i)接口,该接口被配置成用于从多个处理单元接收多个存储器映射的原子命令;以及(ii)至少一个电路,该至少一个电路被配置成用于在没有来自多个处理单元的干预的情况下成功地执行原子命令并生成输出值,即使在原子命令的成功执行之前存在执行原子命令的失败。该接口可进一步被配置成用于向多个处理单元输出关于原子命令的完成的完成指示和/或返回值。
94.附加地或替代地,原子命令执行单元的至少又一个电路可以被配置成用于在没有来自多个处理单元的干预的情况下成功地执行原子命令并生成输出值;其中成功地执行原子命令可以包括重复执行至少一个原子命令直到成功地执行该至少一个原子命令。
95.术语“单元”、“组件”、和“模块”是以可互换的方式使用的。
96.图4图示出系统200的示例。
97.系统200可以是集成电路,可以包括多于一个集成电路(例如,两个、三个、...、n个),可以包括一个或多个集成电路以外的组件,等等。
98.在图4所示的示例中,系统200包括四种不同类型处理单元的八个集群201-208,其中同一集群的处理单元共享共享高速缓存。
99.集群的数量可以不同于八个。每个集群中可以存在少于四种类型的处理单元或多于四种类型的处理单元。附加地或替代地,集群的处理单元可以各自具有其自己的高速缓存设备。在另一个实施例中,共享高速缓存可以在比集群中的全部处理单元更少的处理单元之间使用。例如,集群中可以存在8个处理单元,其中每对处理单元共享高速缓存,得到集群中的四个高速缓存。高速缓存可以被存储在同一存储器设备上或者可以被存储在分开的存储器设备上。应该注意,处理单元可以包括或者可以不包括高速缓存。
100.在图4所示的示例中,集群201-208中的每一个集群包括八个处理单元,三个第一类型(pu_t1 211)、两个第二类型(pu_t2 212)、两个第三类型(pu_t3 213)和一个第四类型(pu_t4 214)。
101.应当注意,每个集群可以存在任何数量的处理单元、集群中可以存在任何类型的处理单元、以及集群中可以存在任何数量的任何类型的处理单元。
102.在图4中,集群被图示为每个集群包括相同数量和类型的处理单元。
103.应当注意,集群可以通过处理单元的数量、通过处理单元的类型和/或通过每个类型的处理单元的数量而彼此不同。
104.八个集群被耦合到互连230。该互连230可以被耦合到控制器232、易失性存储器234、和原子命令执行单元236。可以提供不同类型的集群和存储器单元的任何其他组合。可以存在任何数量的任何种类的存储器单元。
105.图4还图示出存储在系统中的各种数据结构。数据结构的诸部分可以以任何方式存储在图4中图示出的存储器单元的任何存储器单元中(或以任何其他方式存储)。
106.数据结构可以包括队列数据结构(队列ds)250、访问控制数据结构(“访问控制ds”)244、和指针数据结构(“指针ds”240)。
107.队列ds 250可以包括任何类型的队列,例如包括:1)按处理单元分配的队列(诸如64个处理单元队列pu1q-pu64q 268(1)-268(64)——每个处理单元一个)。2)按来自不同类型处理单元中的类型分配的队列(诸如四个类型队列t1q-t4q 261-264)。3)按集群分配的队列(诸如八个集群队列c1q-c8q 251-258)。
108.应当注意,可以提供队列的任何其他布置、处理单元队列的数量可以不同于64个(可以更多或更少)、类型队列的数量可以不同于4个、集群队列的数量可以不同于8个。
109.访问控制ds 244可以存储不同进程的访问控制元数据。访问控制元数据可以例如在执行进程的作业时定义哪个队列可以被处理单元访问,以及在执行与某个进程相关的作业时定义哪些其他存储器条目是可用的。
110.指针ds 240可以存储指向不同队列的指针。例如,指针ds 240可以对于每个队列
维持用于写入下一个作业描述符的写指针,以及用于从队列中读取下一个作业描述符的读指针。指针ds 240可以由原子命令执行单元236进行管理,但也可以以任何其他方式进行管理。
111.系统的处理单元可以被配置成用于执行至少一次迭代(在不中断属于该组的控制器的情况下),迭代包括以下操作:(a)进入受信任模式,(b)(从队列ds 250)选择所选择的作业,(c)从访问控制ds 244(自动地或仅当确定需要检取时)检取与所选择的作业相关的访问控制元数据,(d)进入不受信任模式,(e)执行所选择的作业,同时遵守与该作业相关的访问控制元数据,以及(e)重置。
112.关于步骤(b),处理单元可以在每个引导序列期间自动地检取与作业相关的访问控制元数据。
113.替代地,处理单元可以检查是否需要检取。这可以包括检查先前存储的访问控制元数据(来自先前的作业的访问控制元数据)是否与当前作业相关,并且如果是,则可以跳过访问控制元数据的检取。
114.例如,访问控制元数据可以是特定于进程的,并且当处理单元执行属于同一进程的作业序列时,处理单元可能不需要在该序列期间超过一次地检取访问控制元数据,并且可以因此跳过对被包括在同一进程中的任何一个或多个作业的检取操作。
115.迭代以自主方式或基本自主方式执行,以便至少大多数迭代可以在不中断控制器232的情况下执行。
116.对受信任模式的启动可在重置处理单元之后的引导进程期间被激活。
117.因此可以在没有控制器的干预的情况下由处理单元自主地执行多次迭代。控制器可以将其资源分配给除干预多次迭代之外的任务。
118.所选择的作业的执行之后可以报告所选择的作业的完成。这可以以各种方式执行,例如通过向完成队列“完成q 272(complete q 272)”写入完成标识符。
119.处理单元可以被配置成用于将经分配的作业分配给另一处理单元。该分配可以包括由处理单元并且当在受信任模式下时更新与所分配的作业的执行相关的元数据。例如,将作业描述符写入其他处理单元可访问的队列中。其他处理单元的选择可以以任何方式执行。
120.(与作业分配相关的)元数据的更新可以包括使用原子命令执行单元更新队列指针。这可能涉及执行原子读取修改写入命令。
121.(与作业分配相关的)元数据的更新可以在所选择的作业的执行期间或在所选择的作业的执行之后、但在第一处理单元的重置之前执行。
122.(与作业分配相关的)元数据的更新可以在所选择的作业的执行期间或在所选择的作业的执行之后、但在第一处理单元的下一次重置之后执行。
123.控制器232可以通过发送控制处理单元的操作模式的控制消息来控制处理单元。例如,分配一个或多个处理单元以用于执行以由处理单元标识的方式标记的罕见但紧急的作业,等等。控制器232可以被告知应被视为罕见和紧急的作业。替代地,控制器可以接收关于作业的紧急性的紧急信息,并且然后可以确定作业的罕见性。罕见任务可以是例如,相比于执行最频繁的任务,执行较不频繁(例如,几十到几百分之一,甚至更不频繁)的任务。由处理单元执行的控制固件可以包括搜索命令,并且如果存在此类命令,则执行该命令,即使
当该执行涉及进入空闲模式或以其他方式延迟或阻止执行一个或多个步骤(a)-(e)的进一步迭代时。
124.处理单元可以被配置成用于在受信任模式下时检取源自控制器的一个或多个命令(例如从命令队列(“(命令q)command q”)270检取)。检取之后是执行该命令。
125.图5图示出系统200’的示例。
126.系统200'与系统200的不同之处在于,在队列ds 250'中包括一组附加的队列,该队列存储优先级级别(集群优先级队列271-278、类型优先级队列281-284、处理单元优先级队列288(1)-288(64)和命令优先级队列290),其中优先级级别可以彼此不同。
127.可以存在多于一组的优先级队列以用于支持多于一个的优先级级别。
128.可以以其他方式支持优先级级别,例如通过使用单个队列来存储不同级别的作业并将优先级元数据与作业描述符相关联。这可以减少队列的数量,但是可能使作业的选择复杂化。
129.上述系统中的任何一个可以支持或主控用户应用、运行时代码、驱动程序等。
130.例如,用户应用可以经由运行时api与运行时进行交互,以提交在处理单元上执行的程序。运行时可以与用户模式驱动程序进行交互,以提交用于处理的作业图。运行时可以从用户模式驱动程序取得关于作业完成的通知。
131.用户模式驱动程序可以与处理单元内核模式驱动程序交互,以提交作业以供在处理单元上执行。
132.处理单元内核模式驱动程序可以与作业队列进行交互,以入列作业以供控制固件执行。
133.作业可与优先级、集群、处理单元和类型中的一个或多个属性相关联。仅与一个属性相关联的作业可被存储在与该属性相关联的单个队列中。与多个属性相关联的作业可以被复制并存储在与属性中的每一个属性相关的队列中。替代地,作业可以被存储在与属性中的一个属性相关联的某个队列中,并且系统可以维持链接元数据,该元数据可以将与其他属性相关联的其他队列链接到该某个队列。这些队列可以以任何方式进行管理。又对于另一示例而言,可以提供每一属性组合的队列。
134.图6-图11图示出由处理单元执行的控制固件(cf)的示例。
135.图6图示出以引导代码3001开始,随后是作业执行代码320,并以终止代码330结束的cf 300(1)的示例。
136.引导代码3001可以包括用于进入安全模式的代码302、用于选择作业的代码304、用于检取与所选择的作业相关的访问控制元数据的代码306、以及用于退出安全模式的代码308。
137.作业执行代码320包括用于在不受信任模式中时并且在遵守访问控制元数据时执行所选择代码的代码。
138.终止代码330可以包括用于重置处理单元的重置代码332。这将导致重新引导处理单元。
139.图7图示出以引导代码3002开始,随后是作业执行代码320,并以终止代码330结束的cf 300(2)的示例。
140.cf 300(2)的引导代码3002与cf 300(1)的引导代码3001不同。cf 300(2)的引导
代码包括用于检查是否检取与所选择的作业相关的访问控制元数据的代码305。
141.用于选择作业的代码304随后是用于检查是否需要检取与所选择的作业相关的访问控制元数据的代码305。如果是,那么代码305随后是用于检取与所选择的作业相关的访问控制元数据的代码306。如果不是,那么代码305随后是用于退出安全模式的代码308。
142.图8图示出以引导代码3003开始,随后是作业执行代码320,并以终止代码330结束的cf 300(3)的示例。
143.cf 300(3)的引导代码3003与cf 300(1)的引导代码3001不同之处在于:包括用于检查所选择的作业是否为最后进程(最后进程是与最后执行的作业相关的进程)的代码305'。
144.如果是,那么代码305'随后是用于检取与所选择的作业相关的访问控制元数据的代码306。
145.如果不是,那么代码305’随后是用于退出安全模式的代码308。
146.图9-图11图示出涉及用于将作业分配给另一处理单元的代码的cf300(4)-300(6)的示例。它们包括引导代码3004-3006。
147.图9图示出cf 300(4)和包括作业的进程的示例,其中作业中的一些作业(例如作业_d 404(job_d 404))可以在其他作业(例如作业a-c401-403)完成之后执行。假设作业_d 404需要与执行作业b和c的处理单元不同的处理单元,执行作业b和c的处理单元可以在完成作业b和c之后将作业d的执行分配给不同的处理单元。
148.cf300(4)可以以引导代码3004开始,随后是作业执行代码320,并以终止代码330结束。
149.引导代码3004可以包括用于进入安全模式的代码302、用于检取状态元数据的代码311、用于检查状态元数据是否指示对另一处理单元的作业分配应该被完成的代码315。
150.如果是,则代码315随后是完成对另一处理单元的作业分配的代码316(例如,将作业描述符写入与另一处理单元相关联的队列——可以是处理单元队列、集群队列、类型队列等)。
151.否则,代码315随后是用于选择作业的代码304、用于检查是否需要检取与所选择的作业相关的访问控制元数据的代码305。
152.如果是,则代码305随后可以是用于检取与所选择的作业相关的访问控制元数据的代码306。
153.如果不是,则代码305随后可以是用于退出安全模式的代码308。
154.图10图示出以引导代码3005开始,随后是作业执行代码320,并以终止代码330结束的cf 300(5)的示例。
155.引导代码3005可以包括用于进入安全模式的代码302、用于检取状态元数据的代码311、用于检查状态元数据是否指示对另一处理单元的作业分配应该被完成的代码315。
156.如果是,则代码315随后是完成对另一处理单元的作业分配的代码316(例如,将作业描述符写入与另一处理单元相关联的队列——可以是处理单元队列、集群队列、类型队列等)。
157.否则,代码315随后是选择作业的代码304、检取与所选择的作业相关的访问控制元数据的代码306、以及用于退出安全模式的代码308。
158.在图11中,通过在作业执行代码302之后并在重置处理单元之前进入安全模式来执行对另一处理单元的作业重新分配。
159.图11图示出以引导代码3006开始,随后是作业执行代码320,并以终止代码330结束的cf 300(6)的示例。
160.终止代码330包括用于重新进入安全模式的代码331,以及用于执行对另一处理单元的作业分配的代码333。
161.终止代码330还包括重置代码332。
162.可以提供代码的任何组合。
163.重置可以随后紧跟着终止代码,或者可以通过某个预定义延迟或可调整延迟来被延迟——取决于重置进程的定义。预定义延迟和/或可调整延迟可以以任何方式确定。
164.注意,使用图6-图11中图示出的相同编号的代码可以是图与图之间的相同代码,或者可以略微不同但具有相同或基本上相似的功能能力。例如,退出安全模式的代码308在图6和图7中可能具有相同的代码,或者可能在其内容上略微不同但具有相同的功能效果。
165.图12是用于作业执行的方法500的示例。
166.方法500可以由步骤510开始,步骤510为由系统的一组处理单元中的每个处理单元重复包括以下步骤的多次迭代:(a)进入受信任模式(520),(b)选择(530)要由处理单元执行的所选择的作业,(c)检取(540)与所选择的作业相关的访问控制元数据,(d)由处理单元进入(550)不受信任模式,(e)由处理单元执行(560)所选择的作业同时遵守与该作业相关的访问控制元数据,(e)重置(570)处理单元;以及(f)跳到步骤520。
167.该组处理单元可以是系统的全部处理单元(例如,系统200的全部64个处理单元),或者可以仅包括系统的处理单元中的一些处理单元。
168.步骤510可以在没有控制器的干预的情况下被执行。
169.步骤510的至少大多数迭代可以在不中断系统的控制器的情况下被执行,该控制器不属于该组处理单元。
170.步骤520可以在对处理单元进行重置之后的引导过程期间被执行。
171.步骤540可以包括从多个作业队列中选出所选择的作业。该组的处理单元可以是不同类型的,可以被布置在集群中。对作业的选择可以包括选择具有作业描述符的作业,该作业描述符被包括在按处理单元分配的队列、按不同类型处理单元的类型分配的队列、以及按诸集群中的集群分配的队列中的任何一者中。
172.步骤560可以包括报告所选择的作业的完成。
173.应当注意,步骤510可以包括由每个处理单元确定是否存在要执行的控制器定义的命令,并且如果是,则执行该控制器定义的命令。
174.图13是用于作业执行的方法501的示例。
175.方法501与方法500的不同之处在于包括检查是否需要步骤540的步骤535,并且如果不需要,则跳转到步骤550而不执行步骤540。否则,执行步骤540,并且然后再执行步骤550。
176.步骤560可以包括存储指示包括由处理单元先前执行的最后作业的进程的状态元数据。
177.步骤535可以包括确定所选择的作业是否属于该进程(该进程的访问控制元数据
是处理单元可访问的)。当所选择的作业属于该进程时,那么控制器可以被配置成用于跳过与所选择的作业相关的访问控制元数据的检取,并跳转到步骤550。
178.图14是用于作业执行的方法502的示例。
179.方法502与方法500的不同之处在于包括由处理单元将经分配的作业重新分配给该组中的另一处理单元的步骤580。
180.重新分配可以在步骤520和步骤550之间被执行、可以在步骤550和570之间被执行、可以在步骤520和550之间被部分地执行以及在步骤550和570之间被部分地执行。
181.步骤580可以包括执行控制固件,例如执行控制固件单元300(4)-300(6)中的任何一个。
182.步骤580可以包括生成或使用与作业的重新分配相关的元数据。
183.更新元数据可以包括使用原子命令执行单元更新队列指针。
184.步骤580可以包括存储指示包括由处理单元先前执行的最后作业的进程的状态元数据。对所选择的作业进行选择之后可以确定所选择的作业是否属于该进程;其中当所选择的作业属于该进程时,避免检取与所选择的作业相关的访问控制元数据。
185.在另一实施例中,一种方法包括由系统的一组处理单元中的处理单元执行包括以下步骤的一次或多次迭代:(a)进入受信任模式,(b)选择要由处理单元执行的所选择的作业,(c)检取与所选择的作业相关的访问控制元数据,(d)由处理单元进入不受信任模式,(e)由处理单元执行所选择的作业,同时遵守与该作业相关的访问控制元数据,以及(f)重置处理单元;以及在一次或多次迭代之后向控制器传送中断,该控制器与处理单元分开。
186.上述存储器或存储单元中的任一者可以使用任何已知的技术来实现,已知的技术诸如易失性或非易失性存储器,包括基于半导体的存储器单元(诸如闪存、eeprom、eprom、rom);铁磁数字存储器;mram;包括寄存器、缓冲器或高速缓存、主存储器、ram、dram、sram等的易失性存储介质。
187.对术语“包含(comprise)”、“包含(comprises)”、“包含(comprising)”、“包括(including)”“可包括(may include)”和“包括(includes)”中任一项的任何引用可应用于术语“由......组成(consists)”、“由......组成(consisting)”、“和基本上由......组成(and consisting essentially of)”中的任一项。例如,描述步骤的方法中的任何方法可以包括:比图中图示出的那些步骤更多的步骤、仅图中图示出的步骤、或基本上仅包括图中图示出的步骤。这同样适用于设备、处理器或系统的组件以及存储在任何非暂态计算机可读存储介质中的指令。
188.本发明也可以在用于在计算机系统上运行的计算机程序中实现,至少包括用于在诸如计算机系统之类的可编程装置上运行时执行根据本发明的方法的步骤的代码部分,或者使可编程装置执行根据本发明的装置或系统的功能。该计算机程序可以使存储系统将磁盘驱动器分配到磁盘驱动器组。
189.计算机程序是指令的列表,诸如特定的应用程序和/或操作系统。计算机程序可以例如包括以下各项中的一项或多项:子例程、函数、程序、对象方法、对象实现方式、可执行的应用、微应用、小型服务程序、源代码、对象代码、共享库/动态加载库和/或被设计用于在计算机系统上执行的其他指令序列。
190.计算机程序可以内部地被存储在非暂态计算机可读介质上。计算机程序中的全部
或一些可以被提供在永久地、可移动地或远程地耦合到信息处理系统的计算机可读介质上。计算机可读介质可以包括,例如但不限于,以下各项中的任一数量的介质:磁存储介质,包括磁盘和磁带存储介质;光学存储介质(诸如紧致盘介质(例如cd rom、cd r等))和数字视频磁盘存储介质;非易失性存储器存储介质,包括基于半导体的存储器单元(诸如闪存、eeprom、eprom、rom);铁磁性数字存储器;mram;易失性存储介质,包括寄存器、缓冲器或高速缓存、主存储器、ram等。
191.计算机进程通常包括正在执行(运行)的程序或程序的一部分、当前的程序值和状态信息、以及由操作系统用于管理进程的执行的资源。操作系统(os)是管理计算机资源共享的软件,并且为编程人员提供用于访问这些资源的接口。操作系统处理系统数据和用户输入,并通过分配和管理任务和内部系统资源作为对系统的用户和程序的服务来进行响应。
192.计算机系统例如可以包括至少一个处理单元、相关联的存储器和多个输入/输出(i/o)设备。当执行计算机程序时,计算机系统根据计算机程序处理信息并经由i/o设备产生结果输出信息。
193.在前述的说明书中,已经参考本发明的实施例的特定示例对本发明进行了描述。然而,将显而易见的是,可对这些实施例作出各种修改和改变,而不背离如所附权利要求所阐述的本发明的更宽泛的精神和范围。
194.此外,在说明书和权利要求书中的术语“前”、“后”、“顶”、“底”、“上”、“下”等(如果有)用于描述性目的,且不一定用于描述永久的相对位置。应当理解,如此使用的术语在适当情况下是可互换的,例如使得本文中所描述的本发明的实施例能够以不同于本文中所图示或以其他方式描述的那些取向的其他取向来操作。
195.本文讨论的连接可以是适于例如经由中间设备从相应的节点、单元或设备传输信号的任何类型的连接。因此,除非暗示或者另行指出,连接例如可以是直接连接或间接连接。连接可以参考是单个连接、多个连接、单向连接或双向连接来进行说明或描述。然而,不同的实施例可以改变连接的实现方式。例如,可以使用单独的单向连接而不是双向连接,反之亦然。另外,多个连接可以利用单个连接代替,以串行或时间复用的方式传输多个信号。同样,携带多个信号的单个连接可以被分离成携带这些信号子集的各种不同连接。因此,存在用于传输信号的许多选项。
196.尽管在示例中已经描述了特定电导率类型或电位的极性,但将领会的是,电导率类型和电位的极性可以是相反的。
197.本文所描述的每个信号可被设计为正逻辑或负逻辑。在负逻辑信号的情况下,该信号为活动低(电平),其中逻辑上的真实状态与逻辑电平0相对应。在正逻辑信号的情况下,该信号为活动高(电平),其中逻辑上的真实状态与逻辑电平1相对应。应注意,本文所描述的信号中的任何信号都可以被设计成负的或正的逻辑信号。因此,在替代的实施例中,被描述为正逻辑信号的那些信号可以被实现为负逻辑信号,而被描述为负逻辑信号的那些信号可以被实现为正逻辑信号。
198.此外,术语“断言”或“设置”和“取反”(或“解除断言”或“清除”)在本文中在指代将信号、状态位或类似装置分别呈现为其逻辑上的真实或逻辑上错误的状态时使用。如果逻辑上的真实状态是逻辑电平1,那么逻辑上的假状态就是逻辑电平0。并且如果逻辑上的真
实状态是逻辑电平0,那么逻辑上的假状态就是逻辑电平1。
199.本领域技术人员将认识到,逻辑块之间的界限仅仅是说明性的,并且替代的实施例可以合并逻辑块或电路元件,或者在各种逻辑块或电路元件上施加替代的功能分解。因此,应理解文本描绘的架构仅仅是示例性的,并且事实上许多其他架构可以被实现,以实现相同的功能。
200.实现相同功能的组件的任何布置均有效地“关联”,使得期望的功能被实现。因此,本文任何两个组件被组合以实现特定的功能可被视为彼此“关联”,以便实现期望的功能,无论架构或中间组件如何。同样,如此关联的任何两个组件也可被视为彼此“可操作地连接”或“可操作地耦合”以实现期望的功能。
201.此外,本领域技术人员将认识到,上述操作之间的界限仅仅是说明性的。多个操作可以被组合成单个操作,单个操作可以被分布在附加的操作中,并且操作可以在时间上至少部分地重叠执行。此外,替代实施例可以包括特定操作的多个实例,并且操作的顺序可以在各个其他实施例中被改变。
202.还例如,在一个实施例中,所图示出的实施例可被实现为位于单个集成电路上或同一设备内的电路。替代地,该示例可以被实现为任何数量的分开的集成电路或以适当方式彼此连接的分开的设备。
203.另外,示例或其部分可以诸如以任何适当类型的硬件描述语言被实现为物理电路或可转换为物理电路的逻辑表示的软表示或代码表示。
204.而且,本发明不限于在非可编程硬件中实现的物理设备或单元,并且还可以应用于能够通过按照合适的程序代码操作来执行所期望的设备功能的可编程设备或单元,诸如主机、小型计算机、服务器、工作站、个人计算机、笔记本计算机、个人数字助理、电子游戏、汽车和其他嵌入式系统、蜂窝电话和各种其他无线设备,在本技术中通常表示为“计算机系统”。
205.然而,其他修改、变型和替代方案也是可能的。因此,说明书和附图应被认为是说明性而非限制性意义。
206.在权利要求中,被放置在括号内的任何附图标记不应解释为对权利要求的限制。词语“包含”并不排除存在其他要素或步骤,除了权利要求中列出的那些。此外,本文使用的术语“一个(a)”或“一个(an)”被定义为一个或多于一个。另外,在权利要求中使用诸如“至少一个”和“一个或多个”之类的介绍性短语,不应被解释为暗指由不定冠词“一个(a)”或“一个(an)”对另一权利要求要素的引入将包含此类所引入权利要求要素的任何特定权利要求限制为仅包含一个此类要素的发明,即使当同一权利要求包括引入短语“一个或多个”或“至少一个”,以及诸如“一个(a)”或“一个(an)”之类的不定冠词。对于定冠词的使用也是如此。除非另有说明,诸如“第一”和“第二”之类的术语用来任意区分此类术语所描述的要素。因此,这些术语不一定旨在指示此类要素的时间或其他优先级。在相互不同的权利要求中记载了某些措施的事实并不表示不能有利地使用这些措施的组合。
207.虽然本文中已经图示和描述了本发明的某些特征,但是本领域技术人员现在将想到许多修改、替换、改变、以及等效方案。因此,应理解,所附权利要求旨在覆盖如落在本发明的真实精神内的所有此类修改和改变。
208.示例实施例
209.示例1是一种用于作业执行的方法,该方法包括:由系统的一组处理单元中的处理单元执行以下步骤的至少一次迭代,同时避免中断不属于该组的控制器:(a)进入受信任模式,(b)选择要由处理单元执行的所选择的作业,(c)检取与所选择的作业相关的访问控制元数据,(d)由处理单元进入不受信任模式,(e)由处理单元执行所选择的作业,同时遵守与该作业相关的访问控制元数据,以及(f)重置处理单元。
210.在示例2中,示例1的主题包括,执行步骤(a)-(f)的多次迭代,其中在不中断控制器的情况下执行至少大多数迭代。
211.在示例3中,示例1-2的主题包括,其中,进入受信任模式是在处理单元重置之后的引导进程期间被执行。
212.在示例4中,示例1-3的主题包括,由处理单元在没有控制器的干预的情况下执行多次迭代。
213.在示例5中,示例1-4的主题包括,报告所选择的作业的完成。
214.在示例6中,示例1-5的主题包括,由处理单元将经分配的作业分配给该组中的另一处理单元;其中,该分配包括由处理单元并且当处于受信任模式时,更新与经分配的作业的执行相关的元数据。
215.在示例7中,示例6的主题包括,其中更新元数据包括使用原子命令执行单元更新队列指针。
216.在示例8中,示例6-7的主题包括,其中,更新元数据在重置处理单元之前。
217.在示例9中,示例6-8的主题包括,其中,更新元数据在重置处理单元之后。
218.在示例10中,示例1-9的主题包括,其中,选择所选择的作业包括从多个作业队列中的一个作业队列选择所选择的作业。
219.在示例11中,示例10的主题包括,其中,该组处理单元包括不同类型的处理单元并且被布置在诸集群中;并且其中,多个作业队列包括按处理单元分配的队列、按处理单元的类型分配的队列、以及按集群分配的队列。
220.在示例12中,示例11的主题包括,其中诸集群中的集群的处理单元包括通用处理单元。
221.在示例13中,示例11-12的主题包括,其中诸集群中的集群的处理单元包括硬件加速器。
222.在示例14中,示例1-13的主题包括,由处理单元确定是否检取与所选择的作业相关的访问控制元数据,以及仅在确定检取与所选择的作业相关的访问控制元数据时检取与所选择的作业相关的访问控制元数据。
223.在示例15中,示例1-14的主题包括,存储指示包括由处理单元先前执行的最后作业的进程的状态元数据;以及其中选择所选择的作业随后是确定所选择的作业是否属于该进程;其中当所选择的作业属于该进程时,避免检取与所选择的作业相关的访问控制元数据。
224.在示例16中,示例1-15的主题包括,由处理单元并当处于受信任模式时,检取源自控制器的命令;以及由处理单元执行该命令。
225.示例17是一种处理单元,该处理单元是系统的一组处理单元中的一个处理单元,该处理单元包括:处理器;以及包括指令的存储器,该指令当由处理器执行同时避免中断不
属于该组处理单元的控制器时,使该处理器用于:执行以下步骤的至少一次迭代:(a)进入受信任模式,(b)选择要由处理单元执行的所选择的作业,(c)检取与所选择的作业相关的访问控制元数据,(d)由处理单元进入不受信任模式,(e)由处理单元执行所选择的作业,同时遵守与该作业相关的访问控制元数据,以及(f)重置处理单元。
226.在示例18中,示例17的主题包括,其中该指令使处理器:执行步骤(a)-(f)的多次迭代,其中在不中断控制器的情况下执行至少大多数迭代。
227.在示例19中,示例17-18的主题包括,其中,进入受信任模式是在处理单元重置之后的引导进程期间被执行。
228.在示例20中,示例17-19的主题包括,其中该指令使处理器:在没有控制器的干预的情况下由处理单元执行多次迭代。
229.在示例21中,示例17-20的主题包括,其中该指令使处理器:报告所选择的作业的完成。
230.在示例22中,示例17-21的主题包括,其中该指令使处理器:通过处理单元将经分配的作业分配给该组中的另一处理单元;其中,该分配包括由处理单元并且当处于受信任模式时,更新与经分配的作业的执行相关的元数据。
231.在示例23中,示例22的主题包括,其中更新元数据包括使用原子命令执行单元更新队列指针。
232.在示例24中,示例22-23的主题包括,其中,更新元数据在重置处理单元之前。
233.在示例25中,示例22-24的主题包括,其中,更新元数据在重置处理单元之后。
234.在示例26中,示例17-25的主题包括,其中,选择所选择的作业包括从多个作业队列中的一个作业队列选择所选择的作业。
235.在示例27中,示例26的主题包括,其中,该组处理单元包括不同类型的处理单元并且被布置在诸集群中;并且其中,多个作业队列包括按处理单元分配的队列、按处理单元的类型分配的队列、以及按集群分配的队列。
236.在示例28中,示例27的主题包括,其中诸集群中的集群的处理单元包括通用处理单元。
237.在示例29中,示例27-28的主题包括,其中诸集群中的集群的处理单元包括硬件加速器。
238.在示例30中,示例17-29的主题包括,其中该指令使处理器:由处理单元确定是否检取与所选择的作业相关的访问控制元数据,以及仅在确定检取与所选择的作业相关的访问控制元数据时检取与所选择的作业相关的访问控制元数据。
239.在示例31中,示例17-30的主题包括,其中该指令使处理器:存储指示包括由处理单元先前执行的最后作业的进程的状态元数据;以及其中选择所选择的作业随后是确定所选择的作业是否属于该进程;其中当所选择的作业属于该进程时,避免检取与所选择的作业相关的访问控制元数据。
240.在示例32中,示例17-31的主题包括,其中该指令使处理器通过处理单元并当处于受信任模式时,检取源自控制器的命令;以及由处理单元执行该命令。
241.示例33是一种机器可读介质,包括指令,该指令当由一组处理单元中的处理单元执行时使处理单元执行操作,同时避免中断不属于该组处理单元的控制器,使该处理器用
于:执行以下步骤的至少一次迭代:(a)进入受信任模式,(b)选择要由处理单元执行的所选择的作业,(c)检取与所选择的作业相关的访问控制元数据,(d)由处理单元进入不受信任模式,(e)由处理单元执行所选择的作业,同时遵守与该作业相关的访问控制元数据,以及(f)重置处理单元。
242.在示例34中,示例33的主题包括,执行步骤(a)-(f)的多次迭代,其中在不中断控制器的情况下执行至少大多数迭代。
243.在示例35中,示例33-34的主题包括,其中,进入受信任模式是在处理单元重置之后的引导进程期间被执行。
244.在示例36中,示例33-35的主题包括,由处理单元在没有控制器的干预的情况下执行多次迭代。
245.在示例37中,示例33-36的主题包括,报告所选择的作业的完成。
246.在示例38中,示例33-37的主题包括,由处理单元将经分配的作业分配给该组中的另一处理单元;其中,该分配包括由处理单元并且当处于受信任模式时,更新与经分配的作业的执行相关的元数据。
247.在示例39中,示例38的主题包括,其中更新元数据包括使用原子命令执行单元更新队列指针。
248.在示例40中,示例38-39的主题包括,其中,更新元数据在重置处理单元之前。
249.在示例41中,示例38-40的主题包括,其中,更新元数据在重置处理单元之后。
250.在示例42中,示例33-41的主题包括,其中,选择所选择的作业包括从多个作业队列中的一个作业队列选择所选择的作业。
251.在示例43中,示例42的主题包括,其中,该组处理单元包括不同类型的处理单元并且被布置在诸集群中;并且其中,多个作业队列包括按处理单元分配的队列、按处理单元的类型分配的队列、以及按集群分配的队列。
252.在示例44中,示例43的主题包括,其中诸集群中的集群的处理单元包括通用处理单元。
253.在示例45中,示例43-44的主题包括,其中诸集群中的集群的处理单元包括硬件加速器。
254.在示例46中,示例33-45的主题包括,由处理单元确定是否检取与所选择的作业相关的访问控制元数据,以及仅在确定检取与所选择的作业相关的访问控制元数据时检取与所选择的作业相关的访问控制元数据。
255.在示例47中,示例33-46的主题包括,存储指示包括由处理单元先前执行的最后作业的进程的状态元数据;以及其中选择所选择的作业随后是确定所选择的作业是否属于该进程;其中当所选择的作业属于该进程时,避免检取与所选择的作业相关的访问控制元数据。
256.在示例48中,示例33-47的主题包括,由处理单元并当处于受信任模式时,检取源自控制器的命令;以及由处理单元执行该命令。
257.示例49是一种用于作业执行的设备,该设备包括:用于由系统的一组处理单元中的处理单元执行以下步骤的至少一次迭代同时避免中断不属于该组的控制器的装置:(a)进入受信任模式,(b)选择要由处理单元执行的所选择的作业,(c)检取与所选择的作业相
关的访问控制元数据,(d)由处理单元进入不受信任模式,(e)由处理单元执行所选择的作业,同时遵守与该作业相关的访问控制元数据,以及(f)重置处理单元。
258.在示例50中,示例49的主题包括,用于执行步骤(a)-(f)的多次迭代的装置,其中至少大多数迭代在不中断控制器的情况下被执行。
259.在示例51中,示例49-50的主题包括,其中,用于进入受信任模式的装置在处理单元重置之后的引导进程期间被执行。
260.在示例52中,示例49-51的主题包括,用于在没有控制器的干预的情况下通过处理单元执行多次迭代的装置。
261.在示例53中,示例49-52的主题包括,用于报告所选择的作业的完成的装置。
262.在示例54中,示例49-53的主题包括,用于由处理单元将经分配的作业分配给该组中的另一处理单元的装置;其中,该分配包括由处理单元并且当处于受信任模式时,更新与经分配的作业的执行相关的元数据。
263.在示例55中,示例54的主题包括,用于通过使用原子命令执行单元更新队列指针来更新元数据的装置。
264.在示例56中,示例54-55的主题包括,用于在重置处理单元之前更新元数据的装置。
265.在示例57中,示例54-56的主题包括,用于在重置处理单元之后更新元数据的装置。
266.在示例58中,示例49-57的主题包括,用于通过从多个作业队列中的一个作业队列选择所选择的作业来选择所选择的作业的装置。
267.在示例59中,示例58的主题包括,其中,该组处理单元包括不同类型的处理单元并且被布置在诸集群中;并且其中,多个作业队列包括按处理单元分配的队列、按处理单元的类型分配的队列、以及按集群分配的队列。
268.在示例60中,示例59的主题包括,其中诸集群中的集群的处理单元包括通用处理单元。
269.在示例61中,示例59-60的主题包括,其中诸集群中的集群的处理单元包括硬件加速器。
270.在示例62中,示例49-61的主题包括,由处理单元确定是否检取与所选择的作业相关的访问控制元数据,以及仅在确定检取与所选择的作业相关的访问控制元数据时检取与所选择的作业相关的访问控制元数据。
271.在示例63中,示例49-62的主题包括,用于存储指示包括由处理单元先前执行的最后作业的进程的状态元数据的装置;以及其中选择所选择的作业随后是确定所选择的作业是否属于该进程;其中当所选择的作业属于该进程时,避免检取与所选择的作业相关的访问控制元数据。
272.在示例64中,示例49-63的主题包括,用于由处理单元并当处于受信任模式时检取源自控制器的命令的装置;以及用于由处理单元执行该命令的装置。
273.示例65是包括指令的至少一种机器可读介质,该指令在被处理电路系统执行时,使得该处理电路系统执行操作以实现示例1-64中的任一项。
274.示例66是一种设备,包括用于实现示例1-64中的任一项的装置。
275.示例67是一种用于实现示例1-64中的任一项的系统。
276.示例68是一种用于实现示例1-64中的任一项的方法。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献