CN112581349A - 周期性重置 - Google Patents

周期性重置 Download PDF

Info

Publication number
CN112581349A
CN112581349A CN202011026552.1A CN202011026552A CN112581349A CN 112581349 A CN112581349 A CN 112581349A CN 202011026552 A CN202011026552 A CN 202011026552A CN 112581349 A CN112581349 A CN 112581349A
Authority
CN
China
Prior art keywords
graphics processing
processing unit
reset
graphics
resets
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
Application number
CN202011026552.1A
Other languages
English (en)
Inventor
P·莫里斯
M·索佩纳·诺瓦莱斯
J·布鲁姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Imagination Technologies Ltd
Original Assignee
Imagination Technologies Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Imagination Technologies Ltd filed Critical Imagination Technologies Ltd
Publication of CN112581349A publication Critical patent/CN112581349A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • G06F11/0739Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0796Safety measures, i.e. ensuring safe condition in the event of error, e.g. for controlling element
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Evolutionary Computation (AREA)
  • Architecture (AREA)
  • Image Generation (AREA)
  • Instrument Panels (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

周期性重置。本发明提供了一种在图形处理系统内的图形处理单元处执行安全关键渲染的方法,所述方法包括:在所述图形处理系统处接收用于在所述图形处理单元处进行安全关键渲染的图形数据;根据重置频率在安全控制器处调度所述图形处理单元的多个重置;在所述图形处理单元处渲染所述图形数据;以及所述安全控制器使所述图形处理单元的所述多个重置与所述重置频率相匹配地执行。

Description

周期性重置
技术领域
本公开涉及用于执行安全关键渲染的方法和图形处理系统。
背景技术
在安全关键系统中,系统的至少一些组件必须满足足以使系统整体能够满足被认为是系统所必要的安全等级的安全目标。例如,在大多数管辖区域内,车辆中的安全带收缩器必须满足特定安全标准,以便使具备此类装置的车辆通过安全测试。同样,车辆轮胎必须满足特定标准,以便使配备有此类轮胎的车辆通过适于特定管辖区域的安全测试。安全关键系统通常是其失效会造成人员安全或环境的风险显著增加的那些系统。
数据处理装置常常形成安全关键系统的一体式部分,作为专用硬件或作为用于运行安全关键软件的处理器。例如,飞机用电传飞行系统、驾驶员辅助系统、铁路信号发送系统和医疗装置用控制系统通常都是在数据处理装置上运行的安全关键系统。在数据处理装置形成安全关键系统的一体式部分的情况下,有必要使数据处理装置自身满足安全目标,使得系统整体可以满足适当安全等级。在汽车行业中,安全等级通常是功能安全标准ISO26262中所定义的汽车安全完整性等级(Automotive Safety Integrity Level,ASIL)。
越来越多地,用于安全关键系统的数据处理装置包括运行软件的处理器。硬件和软件元件两者都必须满足特定安全目标。一些软件失效可能是编程错误或不良错误处理造成的系统性失效。这些问题通常可以通过严格的开发实践、代码审核和测试协议来解决。即使安全关键系统可能完全不包括系统性错误,但是也可能例如因为瞬时事件(例如,由电离辐射、电压尖峰或电磁脉冲造成)而将随机错误引入到硬件。在二进制系统中,瞬时事件可能会在存储器中并沿着处理器的数据路径造成随机位翻转。硬件还可能具有永久性故障。
数据处理装置的安全目标可表达为一组度量,例如在给定时间段内的最大失效次数(通常表达为单位时间失效性或FIT),以及用于检测单点失效的机制(单点失效机制或SPFM)和用于检测潜在失效(潜在失效机制或LFM)的有效性。存在用于实现针对数据处理装置设置的安全目标的各种方法:例如,通过提供硬件冗余,使得在一个组件失效时,另一组件可用于执行相同任务,或者通过使用检查数据(例如,奇偶校验位或错误校正码),使得硬件能够检测和/或校正轻微的数据损坏。
例如,数据处理器可以设置为双锁步布置100,如图1所示,其中一对相同的处理核心101和102配置成并行处理一连串指令103。任一个处理核心(101)的输出可以用作锁步处理器的输出104。当处理核心101和102的输出不匹配时,故障可以被引发到安全关键系统。可以将延迟105引入到一个核心的输入上,以便改进由例如电离辐射和电压尖峰的外来因素引起的错误的检测概率(其中通常在另一个核心的输出上提供对应延迟106)。但是,因为需要第二处理核心,所以双锁步处理器很昂贵,因为与常规处理器相比,它们必须消耗双倍的芯片面积,并且会消耗大约两倍的功率。
高级驾驶员辅助系统和自主车辆可以结合适合于具有显著图形和/或向量处理能力的此类安全关键应用的数据处理系统,但实施双锁步处理器的面积和功率消耗(且因此为成本)的增加可能不是可接受的或期望的。例如,驾驶员辅助系统常常提供计算机生成的图形,所述图形向驾驶员示出危险、车道位置和其它信息。通常,这将导致车辆制造商用计算机生成的仪表盘代替常规的仪表盘,这也意味着安全关键信息(诸如速度和车辆故障信息)的显示变为由计算机生成。此类处理需求可以由图形处理单元(GPU)满足。然而,在汽车背景中,高级驾驶员辅助系统通常需要满足ISO26262的ASIL等级B的数据处理系统。
例如,在汽车环境中,图形处理系统可用于渲染仪表组以在仪表板显示屏上显示。仪表组向驾驶员提供关键信息,例如车速和任何车辆故障的详细信息。重要的是,要将此类关键信息可靠地呈现给驾驶员,并且车辆法规通常会要求以符合预定义安全等级的方式渲染关键信息,预定义安全等级例如是ISO 26262标准的ASIL B。
图2示出了仪表组200。仪表组包括传统表盘形式的速度表202,其具有围绕表盘边缘的速度值208和指针207,指针的角度方向指出车辆的当前速度。仪表组还包括油温计203、信息图标204(例如,指示所选的无线电台)、非严重警告图标205(例如指示空调系统的故障)和严重警告图标206(例如指示严重的发动机问题)。可能有必要以满足强制性安全等级(例如ISO 26262标准的ASIL B)的方式渲染仪表组200。
另外,自主车辆还必须实时处理大量的数据(例如来自雷达、激光雷达的数据、地图数据和车辆信息),以便作出安全关键性的决策。图形处理单元还可以帮助满足此类处理需求,但自主车辆中的安全关键系统通常被要求满足ISO 26262的最严格的ASIL等级D。
发明内容
提供本发明内容是为了介绍在以下详细描述中进一步描述的一些概念。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
根据本发明的第一方面,提供了一种在图形处理系统内的图形处理单元处执行安全关键渲染的方法,所述方法包括:在所述图形处理系统处接收用于在所述图形处理单元处进行安全关键渲染的图形数据;根据重置频率在安全控制器处调度所述图形处理单元的多个重置;在所述图形处理单元处渲染所述图形数据;以及所述安全控制器使所述图形处理单元的所述多个重置与所述重置频率相匹配地执行。
调度可包括生成指令,所述指令包括指示所述图形处理单元的一个或多个调度的重置的命令;以及使所述指令传递给所述图形处理单元。
响应于在所述图形处理单元处接收包括所述命令的所述指令,所述方法还可包括:在读取所述指令之前,完成对已经在所述图形处理单元上开始处理的任何任务的处理;以及重置所述图形处理单元的至少一部分。
指示所述图形处理单元的所述调度的重置的所述命令可被提供有图形处理指令。
所述重置频率可以根据帧数限定要执行的重置次数。
所述重置频率可以在设计时间设置、是用户可配置的或由在所述图形处理单元外部的设备上运行的应用程序确定。
所述方法还可包括监测所述图形处理单元的安全度量、电离辐射水平、电压尖峰的发生和电磁脉冲的发生中的一项或多项;以及根据所述监测来调适所述重置频率。
所述图形处理单元可包括一个或多个处理单元、固件以及高速缓存、寄存器或缓冲器中的至少一个,并且至少一个重置可以是包括以下各项的软重置:重新初始化所述一个或多个处理元件并使在所述图形处理单元处的所述高速缓存、所述寄存器或所述缓冲器内的至少一个条目无效;以及不重新初始化所述图形处理单元的所述固件。
所述图形处理单元看包括一个或多个处理单元、固件以及高速缓存、寄存器或缓冲器中的至少一个,并且至少一个重置可以是包括以下各项的硬重置:重新初始化所述一个或多个处理元件;重新初始化所述图形处理单元的所述固件;以及使在所述图形处理单元处的所述高速缓存、所述寄存器或所述缓冲器内的至少一个条目无效。
可以根据软重置频率来调度多个软重置,并且可以根据硬重置频率来调度多个硬重置。所述软重置频率可能高于所述硬重置频率。
根据本发明的第二方面,提供了一种图形处理系统,所述图形处理系统包括被配置为执行安全关键渲染的图形处理单元和用于所述图形处理系统的安全控制器,其中:所述图形处理系统被配置为在所述图形处理单元处接收用于安全关键渲染的图形数据;所述安全控制器被配置为根据重置频率来调度所述图形处理单元的多个重置;所述图形处理单元被配置为渲染所述图形数据;并且所述安全控制器被配置为使所述图形处理单元的所述多个重置与所述重置频率相匹配地执行。
所述重置频率可以根据帧数限定要执行的重置次数。
所述安全控制器可包括监测器,所述监测器被配置为监测所述图形处理单元的安全度量、电离辐射水平、电压尖峰的发生和电磁脉冲的发生中的一项或多项,并且所述安全控制器可被配置为根据所述监测来调适所述重置频率。
所述图形处理单元可包括一个或多个处理单元、固件以及高速缓存、寄存器或缓冲器中的至少一个,并且至少一个重置可以是包括以下各项的软重置:重新初始化所述一个或多个处理元件并使在所述图形处理单元处的所述高速缓存、所述寄存器或所述缓冲器内的至少一个条目无效;以及不重新初始化所述图形处理单元的所述固件。
所述图形处理单元看包括一个或多个处理单元、固件以及高速缓存、寄存器或缓冲器中的至少一个,并且至少一个重置可以是包括以下各项的硬重置:重新初始化所述一个或多个处理元件;重新初始化所述图形处理单元的所述固件;以及使在所述图形处理单元处的所述高速缓存、所述寄存器或所述缓冲器内的至少一个条目无效。
所述安全控制器可被配置为根据软重置频率来调度多个软重置,并且根据硬重置频率来调度多个硬重置。所述软重置频率可能高于所述硬重置频率。
在一些实例中,提供了一种图形处理系统,包括:用于处理安全关键数据的图形处理单元;以及被配置为实施用于所述图形处理单元的安全机制的安全控制器,其中所述安全控制器包括被配置为监测电离辐射的水平的监测器,并且其中所述安全控制器被配置为根据电离辐射的水平来调适所述安全机制。
特别地,实施所述安全机制可以涉及调度所述图形处理单元的周期性重置。这样,可以提供一种图形处理系统,包括:用于处理安全关键数据的图形处理单元;以及被配置为根据重置频率来调度所述图形处理单元的重置的安全控制器,其中所述安全控制器包括被配置为监测电离辐射的水平的监测器,并且其中所述安全控制器被配置为根据电离辐射的水平来调适所述重置频率。
所述图形处理系统可以用集成电路上的硬件来体现。可以提供一种在集成电路制造系统处制造所述图形处理系统的方法。可以提供一种集成电路定义数据集,所述集成电路定义数据集在集成电路制造系统中被处理时配置所述系统以制造所述图形处理系统。可以提供一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质上存储有集成电路的计算机可读描述,所述计算机可读描述在集成电路制造系统中被处理时使所述集成电路制造系统制造所述图形处理系统。
可以提供一种集成电路制造系统,所述集成电路制造系统包括:非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质上存储有描述所述图形处理系统的计算机可读集成电路描述;布局处理系统,所述布局处理系统被配置成处理所述集成电路描述,以便生成体现所述图形处理系统的集成电路的电路布局描述;以及集成电路生成系统,所述集成电路生成系统被配置成根据所述电路布局描述来制造所述图形处理系统。
可以提供用于执行如本文所述的方法的计算机程序代码。可以提供其上存储有计算机可读指令的非暂态计算机可读存储介质,当在计算机系统处执行时,所述计算机可读指令使计算机系统执行如本文所述的方法。
附图说明
参考附图通过示例的方式描述本发明。在附图中:
图1是常规的双锁步处理器的示意图。
图2示出了计算机生成的车辆仪表组。
图3是根据本文所述原理进行操作的图形处理系统的示意图。
图4是示出根据本文所述原理的图形处理单元重置的示意性时间线。
图5是根据本文所述原理的在图形处理单元处执行安全关键渲染的方法的流程图。
图6是集成电路制造系统的示意图。
具体实施方式
通过示例的方式给出以下描述,以使本领域的技术人员能够制造和使用本发明。本发明不限于本文中描述的实施方案,并且对所公开的实施方案的各种修改对于所属领域的技术人员而言将是显而易见的。仅通过示例的方式描述实施方案。
本公开涉及用于执行安全关键渲染的方法和图形处理系统。
图形处理系统300在图3中示出。图形处理系统300包括至少一个图形处理单元(GPU)312。GPU 312可能适合于渲染图2所示的仪表组200。GPU 312可包括硬件部件(例如,硬件处理单元)和软件部件(例如,固件,以及在硬件处理单元处执行的程序和任务)。GPU单元的操作和布置将依据GPU的特定体系结构而变化。
GPU 312可包括一个或多个处理单元339,在图中标记为PU0 340、PU1 341至PU(n)342。可以存在任何数目的处理单元。GPU 312也可包括存储器309。存储器309可包括任何种类的数据存储,包括例如一个或多个处理单元339可访问的一个或多个高速缓存、缓冲器和/或寄存器。GPU 312还包括用于执行固件314的处理逻辑,该处理逻辑可以例如执行对GPU的低级管理并且提供用于指向GPU的指令的接口。在一些布置中,GPU 312可被配置为以功能、例程和布置为在GPU的单元(例如,其处理单元339和/或固件314)处执行的其他代码的形式执行软件。GPU 312可包括例如用于处理数据、与外部设备诸如主机数据处理系统302通信并支持在一个或多个处理单元339处执行的处理的各种其他功能元件。
图形处理系统300还可包括用于GPU 312的驱动器304。例如,驱动器304可以是在提供有GPU 312的数据处理系统上支持的软件驱动器。驱动器304可以为在数据处理系统处运行的进程(例如,软件应用程序)提供到GPU的接口。在图3所示的实例中,图形处理系统300包括主机数据处理系统302。一个或多个进程301可以在主机数据处理系统302上运行。这些进程在图3中标记为A0、A1、A(n)。主机数据处理系统上可以运行任何数量的进程301。一个或多个进程301可以借助于驱动器304与GPU 312交互330。主机数据处理系统302可包括一个或多个处理器(例如,CPU–未示出),在该一个或多个处理器处执行进程和驱动器。可以在驱动器处提供图形应用程序编程接口(API)303(例如OpenGL),进程可以借助于该图形应用程序编程接口来提交渲染调用。驱动器304可以是主机数据处理系统302的软件部件。
图5是根据本文所述原理的在图形处理系统处执行安全关键渲染的方法的流程图。用于安全关键渲染的图形数据在图形处理系统处接收501。API 303可被布置为从进程301接收绘制调用,以使GPU 312渲染场景。例如,API可以是OpenGL API,并且进程可以是被布置为发出OpenGL绘制调用以使GPU将图2所示的仪表组渲染到车辆的仪表板上的显示屏的应用程序。驱动器304还包括安全控制器311,其在本文中将进一步详细讨论。
在图3所描绘的实例中,驱动器304生成命令和/或控制指令,以使GPU 312通过进程来实现提交给API的绘制调用。指令可以以任何合适的方式将定义要渲染的场景的数据传递到GPU 312,例如作为对存储器中的数据的引用。如图3所示,可以将所述指令发送332到存储器307中的一个或多个缓冲器308。GPU 312可以从存储器309读取333指令。存储器307可以设置在主机数据处理系统302处。存储器307还可包括用于接收334从GPU 312返回的指令的缓冲器310。缓冲器可以是循环缓冲器。
图形处理单元312可以是例如任何种类的图形和/或矢量和/或流处理单元。图形处理单元312都可以包括用于对场景的图元执行几何形状处理和/或片段处理的渲染流水线。每个处理单元339可以是GPU的不同物理核。
参考基于图块的渲染技术描述了以下实例,然而应当理解,图形处理系统可替代地或另外地能够具有其他渲染技术,诸如即时模式渲染或组合了基于图块的渲染与即时模式渲染两者的元素的混合技术。
根据本文原理配置的图形处理系统可以具有任何基于图块的体系结构——例如,该系统可用于执行基于图块的延迟渲染。图3中描绘的每个处理单元339可以能够独立于任何其他处理单元并且独立于任何其他图块来处理图块。
基于图块的渲染系统使用细分成多个图块的渲染空间。如本领域中所知,图块可以具有任何合适的形状和大小,例如,矩形(包含方形)或六边形。渲染空间的图块可以与渲染目标的一部分相关,例如,表示要在图形处理系统处渲染的帧。帧可以是图像或视频帧的全部或一部分。在一些实例中,渲染输出不是要显示的最终图像,而是可以表示其它事物,例如纹理,所述纹理随后在渲染包含所述纹理的图像时应用于表面。在下文描述的实例中,渲染输出是表示要显示的图像的帧,但是应理解,在其它实例中,渲染输出可以表示其它表面,例如纹理或环境地图等。
基于图块的渲染系统一般执行两个明确划分的操作阶段:(i)几何形状处理阶段,其中处理几何形状(例如,图元)以针对渲染空间的每个图块,确定哪些几何形状项目可能与渲染所述图块相关(例如,哪些图元至少部分地与所述图块重叠);以及(ii)渲染阶段(或“片段处理阶段”),其中处理与渲染特定图块相关的几何形状以便渲染所述图块——例如,以产生所述图块中的像素位置的像素值,这些像素值接着可以从渲染系统输出,例如,以便存储在缓冲器(例如帧缓冲器)中和/或以供显示。处理与图块相关的几何形状可以包括例如通过在所述图块的样本位置处对图元采样来生成图元片段,以及确定哪些片段是可见的,并确定片段如何影响像素外观。样本位置和像素之间可以存在一对一关系。或者,超过一个样本位置可以与每个像素位置相关,使得最终像素值可以通过组合针对多个样本位置确定的已渲染值被产生。这可以用于实施抗混叠。
图形处理单元(诸如GPU 312)可以被配置为在几何形状处理阶段和渲染阶段执行图形处理的任何方面的一部分或全部,包括例如分块、几何形状处理、纹理映射、着色、深度处理、顶点处理、图块加速、裁剪、剔除、图元组装、颜色处理、模板处理、抗锯齿、光线追踪、像素化和曲面细分。
几何形状处理逻辑和片段处理逻辑可以共享图形处理单元(诸如GPU 312)的资源。例如,图形处理单元的处理单元(诸如GPU 312的处理单元339)可用于例如通过在处理单元的执行单元上执行不同软件指令来实现几何形状处理逻辑和片段处理逻辑两者的一部分。处理单元(诸如处理单元339)可被配置为执行SIMD处理。
根据本文描述的原理配置的图形处理系统可以布置成渲染任何种类的场景。
几何形状处理
几何形状处理可以在图形处理单元(诸如GPU 312)处执行,以便处理提交给它的几何形状数据。几何形状数据可以表示要渲染的场景的元素。几何形状数据可以表示场景中的多个几何形状项目,包含例如以下中的一个或多个:要渲染(例如,由描述场景中的图元顶点的顶点数据描述)的图元、要镶嵌的块片,以及要渲染的其它对象。例如,几何形状数据可以包括表示图2中示出的仪表组的相应显示要素的多组一个或多个图元。每组图元可以通过来自软件应用程序301的合适的绘制调用来创建。图元可以是基本的几何形状,可以从它们构造出场景的对象或其它部分。图元可以是例如三角形、直线或点。
几何形状处理可以在GPU的任何合适的单元处执行,例如,在一个或多个分块引擎(图3中未示出)和/或在处理单元(诸如处理单元339)上执行的一个或多个处理模块处。分块引擎可以用固定功能的硬件、软件或其任何组合来实现。
几何形状数据(例如,如响应于来自应用程序301的绘制调用而生成的)可以被保存在存储器(诸如存储器307)中,并且被读入GPU的存储器(诸如GPU 312的存储器309)中以由该GPU进行处理。几何形状阶段变换描述场景的要素(例如,图元)的几何形状数据,以便形成从要渲染的帧的视角表示场景的已处理几何形状数据。几何形状阶段处理可以对几何形状数据执行任何合适的处理,包含例如顶点处理(例如,顶点着色)、裁剪、投影、剔除和分块。
在图形处理单元(诸如GPU 312)处接收用于处理的几何形状数据可以包括安全关键性元素(例如,对象、图元或要渲染的场景的其他部分)。向GPU提交几何形状的应用程序(诸如应用程序301)可以提交几批要渲染的几何形状,其中每批都包括或不包括安全关键元素。GPU的固件(诸如固件314)可以知道什么几何形状是安全关键的以及什么几何形状不是安全关键的,但是硬件不需要知道哪个几何形状是安全关键的。
几何形状处理通常包括处理几何形状数据(例如,如由在处理单元339处执行的指令执行的),以便将所提交的用于处理的几何形状项目(例如,由顶点形成的图元)变换到屏幕空间中,并对几何形状进行任何必要的着色,诸如顶点阴影,以及基于所变换的图元是否位于视点内场景内的视锥内而裁剪和/或剔除。可以在这个阶段中执行棋盘形布置以确定来自输入块片的经镶嵌图元,例如,通过执行顶点着色、外壳着色,确定镶嵌因子、域着色和几何形状着色。
在本文所述的实例中,对于要渲染的完整帧执行几何形状处理,而不是逐个图块地执行。这是因为,例如在处理几何形状图形之前,尚不知道场景的要素相对于要渲染的帧的图块所处的位置、要素的外观大小以及这些要素是否可见。
可以对所处理的几何形状数据执行分块,以便为每个图块确定哪些图元与渲染该图块有关,并将图元与图块之间的关联存储在存储器中,以便识别与渲染每个给定图块有关的图元。分块可以包括为每个图块生成落入该图块内的元素(例如,图元)的列表(图块列表)。此类图块列表可以包括以任何合适的形式组织的任何数据,所述数据指示哪些要素包含在哪些图块中。例如,每个图块都可具有一个图块列表,此图块列表指示与渲染所述图块相关的所有图元(即,与所述图块重叠的那些图元)。几何形状处理阶段的输出(例如,图块列表以及所变换的和/或以其他方式操纵的几何形状)可以存储在存储器309中,以用于片段处理阶段。几何形状处理阶段的输出可以称为参数数据。
分块可以在一个或多个分块引擎(未示出)处执行。每个分块引擎可被配置为对从在处理单元(诸如处理单元339)处执行的模块接收的经处理的几何形状数据进行操作。在一些实例中,可以在处理单元处将经处理的几何形状数据分块为图块。可以根据任何合适的算法执行分块,例如,使用完美分块、包围盒方法或分层分块方法。许多这样的算法是已知的,并且将不在本文中进行进一步的讨论。当通过分块算法计算出某个要素的任何部分与图块区域的任何部分重叠时,例如,当某个要素与图块的所有或部分像素重叠时,该图块可被视为包含场景的要素。
在一些实例中,用于场景的一些或所有经处理的几何形状数据(例如,经变换的顶点数据)可以被存储在存储器(例如,系统存储器,其可以相对于实施GPU 312的芯片位于“芯片外”)中。系统存储器可以是图3中所示的存储器307,或者可以是图3中未示出的不同的存储器。在一些实例中,用于场景的一些或所有经处理的几何形状数据可以局部存储在GPU 312中,例如在存储器309中。对于要渲染的帧的每个图块,与所述图块重叠的要素(例如,图元)的列表可以存储为图块列表。图块列表可以指场景的已处理几何形状数据中的已变换要素,以免重复存储此类要素的已处理几何形状数据(例如,由于场景的要素与超过一个图块重叠)。在其它实例中,可以为每个图块分别存储执行每个图块的片段处理所需的一些或全部已处理几何形状数据。
来自几何形状阶段的已处理数据可以存储在任何合适的位置处,以供后续在片段处理阶段中使用。例如,参考图3,可以将几何形状处理的输出(诸如经变换的顶点数据和图块列表)存储在系统存储器中(例如,在参数缓冲器处),并且可以通过存储器309中的高速缓存由被布置为执行片段处理的GPU 312的处理单元339访问。在一些实例中,来自几何形状阶段的经处理的数据可以被保存在处理单元339和/或存储器309中包括的高速缓存中,而不是将来自几何形状阶段的经处理的数据存储在系统存储器中(或除此以外)。
片段处理
对几何形状处理阶段的输出(例如,图块列表和经过变换的几何形状数据)执行片段处理。片段处理可以在GPU的任何合适的单元上执行,例如,在光栅化器、隐藏表面去除(HSR)单元、纹理过滤单元和一个或多个着色器单元中的一个或多个上。这些单元未在图3中示出。单元中的一个或多个可以被实现为在处理单元上执行的软件。在一些实例中,光栅化器、隐藏表面去除(HSR)单元、着色器单元和纹理过滤单元中的一个或多个可以在固定功能的硬件中实现。更一般地,任何功能单元可以以硬件、软件或其任何组合来实现。以硬件(例如,固定功能电路系统)实施功能模块在处理功率和时延方面一般是更高效的,但是不太灵活,而以软件实施功能模块在处理功率和时延方面更低效,但是在能够在硬件设计过程之后改变模块操作方面更为灵活。
在一些实例中,获取要渲染的每个给定图块的图块列表,并且获取由所述图块列表指示为与所述图块的片段处理相关的已变换图元数据。片段处理可以包括以下中的一个或多个:纹理处理、着色器处理、光栅化、隐藏表面去除和α处理。可以在一个或多个单元(例如,布置在管线中)处执行片段处理,以执行片段处理的不同方面。
可以执行光栅化(例如扫描转换)以便识别每个图元覆盖哪些样本位置并在那些样本位置处生成图元片段。图元片段表示在特定样本位置处的图元的值(例如,深度、纹理坐标等)。通常,在执行光栅化之前,图元在它们的顶点方面受到限定。
可在片段处理期间执行隐藏表面去除(HSR),其中在每个样本位置处进行深度比较以确定在每个样本位置处可见的图元片段。
可在片段处理期间执行着色和/或纹理化。可以针对已标识为在样本位置处可见的图元片段的所述样本位置确定颜色值,例如,通过运行图元片段的着色器程序,这可涉及基于纹理坐标获取纹理样本。可以执行纹理过滤。获取纹理样本可涉及纹理过滤单元执行过滤(例如,所存储纹理的一组纹素上的双线性过滤、三线性过滤或各向异性过滤)——例如,在所要纹理坐标位于纹理的纹素之间的情况下。
上述段落描述“延迟式”渲染方法,因为隐藏表面去除是在着色/纹理化之前执行。在其它实例中,可以执行不延迟的渲染。
在片段处理期间执行的计算输出可以写入存储器中的一个或多个缓冲器,例如,以下各项中的一项或多项:用于存储颜色值(例如像素的颜色值)的颜色缓冲器,用于存储深度值(例如像素的深度值)的深度缓冲器,模板缓冲器,用于存储关于要渲染图块的哪些部分(例如像素)的指示。可以以适合于GPU体系架构的任何方式来维护这样的缓冲器,包括在系统存储器和/或存储器(诸如存储器309)中的GPU高速缓存中的一个或多个处。此类缓冲器的使用在本领域中是众所周知的,这里将不详细讨论。
根据本公开的原理配置的图形处理系统可用于渲染包含安全关键显示要素的帧,例如图2的仪表组。
周期性重置
随机错误可通过瞬时事件诸如电离辐射、电压尖峰和电磁脉冲而引入硬件中。在二进制系统中,瞬时事件可能会在存储器中并沿着处理器的数据路径造成随机位翻转。瞬式错误可能导致安全关键性故障。例如,位翻转可能损坏存储器中的数据,从而导致一个或多个像素值被反转。参考图2所示的仪表组,经反转的像素值可能导致严重警告图标(例如206)显示不正确。在另一个实例中,瞬时错误可能损坏GPU的配置数据。GPU配置数据的损坏可能会影响随后提供给该GPU的任何或所有数据的渲染。瞬时错误在影响安全关键性图形的渲染时会产生危险的后果,例如,通过使安全关键警告图标向车辆使用者提供不正确或不完整的信息。
为了减轻瞬时故障对安全关键渲染的影响,根据本文所述的原理,图形处理系统被配置为周期性地重置被配置为执行安全关键渲染的图形处理单元。
返回图3,根据本文所述原理的图形处理系统300包括至少一个图形处理单元(GPU)312。图形处理系统300还包括安全控制器311。安全控制器311可以用硬件(例如,固定功能的硬件)、软件或其任何组合(例如,作为在通用硬件上运行的软件进程)来体现。安全控制器311可以与GPU 312通信。安全控制器311可以以任何合适的方式与GPU 312通信。安全控制器311可以存在于任何合适的位置。在一个实例中,安全控制器311和GPU 312可以是在芯片体系架构上的同一系统的一部分。在图3中,安全控制器311被示出为包括在主机数据处理系统302中。安全控制器311可以是驱动器304的部件,该驱动器为在主机数据处理系统302上运行的进程(例如,软件应用程序)提供到GPU 312的接口。安全控制器311被配置为调度图形处理单元312的周期性重置。
图5是根据本文所述原理的在图形处理单元处执行安全关键渲染的方法的流程图。安全控制器311根据重置频率来调度502GPU 312的多个重置。所述重置在本文中称为周期性重置。周期性重置可以独立于检测到的任何故障来调度和执行。即,周期性重置可以在要执行时提前调度。
重置GPU可能会通过使GPU返回到已知的安全状态来限制该GPU上存在的某些故障的持久性。重置可以涉及使一些或所有GPU触发器返回到已知的安全状态,和/或使存储在GPU内的存储器中的一些或所有数据无效。因此,重置可以减少(即,限制持久性)瞬时错误,诸如由存储器中的随机位翻转引起的那些。
该方法优于仅响应于检测到故障而执行重置。有些故障可能难以检测或无法检测。例如,检测瞬时故障可能需要实施双锁步类型的布置,如参考图1所描述的。在这样的布置中,一对相同的处理核心101和102被配置为并行处理指令流103。可以比较处理核心101和102的输出。当处理核心101和102的输出不匹配时,故障可以被引发到安全关键系统。但是,因为需要第二处理核心,所以双锁步处理器很昂贵,因为与常规处理器相比,它们必须消耗双倍的芯片面积,并且会消耗大约两倍的功率。就是说,应当理解,根据本文所述原理在图形处理单元处执行安全关键渲染的方法可以与这样的方法结合使用。这可能适用于对安全性有严格要求的图形处理系统。例如,可以根据本文所述原理为双锁步布置中的处理核心101和102中的一个或两个来调度周期性重置。
如本文所述,安全控制器(诸如安全控制器311)根据重置频率来调度502图形处理单元(诸如GPU 312)的多个重置。在一个实例中,通过根据待处理的帧数而要执行的重置次数或根据待处理的图块数而要执行的重置次数来限定重置频率。例如,重置频率可以是每20帧一次重置。重置频率可以是任何值,在极端情况下,重置可以在每帧之后调度一次。参考图3,安全控制器311可以包括帧计数器(未示出)。每当驱动器304指示渲染帧时,帧计数器可以增加。每当帧计数器达到预定帧数时,安全控制器可以调度一次重置。然后帧计数器可以重置(即设置为零)。
在另一个实例中,重置频率可以是时间频率。也就是说,重置频率可以限定每单位时间执行的重置次数。例如,人的平均反应时间通常在200至215ms之间,因此重置频率可以是每200ms重置一次。也就是说,重置频率可以根据人的平均反应时间来设置,从而可以在人类用户能够对此做出反应之前校正瞬时错误。重置频率不需要取决于人的平均反应时间,并且实际上可以是任何值。参考图3,安全控制器311可以包括循环计时器(未示出)。每当循环计时器终止时,安全控制器可以调度一次重置。
性能成本与重置GPU相关。也就是说,在重置期间,GPU可能无法执行任何处理任务。重置的持续时间可以是(i)启动重置与(ii)重置完成后读取下一条处理指令之间的时间。即,执行重置本身的时间。另外,在重置完成之后,存储在GPU的局部存储器(诸如存储器309)中的数据无效,这意味着GPU必须从主系统存储器(例如,主机数据处理系统302中的存储器307)访问其所需的任何数据,直到所述数据已被重新写入其局部存储器中。从主系统存储器(例如存储器307)读取数据通常比访问局部(例如在存储器309中)存储的数据慢。由重置GPU引起的时间延迟可能导致该GPU的吞吐量降低和/或GPU要处理的图形数据经历的等待时间增加。在设置重置频率时需要折衷,以使重置频率足够高以防止瞬时错误持续一定的时间(不利地被查看渲染的帧的用户感觉到),而且使得重置不会如此频繁以致于对图形处理系统的感知性能产生负面影响(例如,通过增加GPU执行渲染的延迟)。可以在不同的实施方式中对该折衷方案进行不同的评估,并且可以对其进行相应地调整。例如,如果图形处理系统正在为汽车仪表板渲染图像,则可以将重置频率设置为相对较高,因为减少错误的持久性比提高渲染性能更重要;然而,如果图形处理系统正在为例如快速移动的高分辨率视频游戏渲染图像,则可以将重置频率设置为相对较低,因为可以认为渲染性能比减少错误的持久性更重要。
重置频率可以预先确定。例如,可以在设计时间设置重置频率。可以在设计时为图形处理系统或为图形处理系统中包括的各个图形处理单元设置重置频率。替代地,重置频率可以是用户可配置的。用户可以在设置用于在主机数据处理系统302上运行的应用程序301时设置所需的重置频率。在另一个实例中,期望的重置频率可以由在主机数据处理系统302上运行的应用程序301确定。应用程序可以将所述期望的重置频率传达给安全控制器(例如,在图3所示的实例中,经由驱动器304中的API 303)。
返回图3,多个应用程序301(例如A0、A1至A(n))可以在主机数据处理系统302上运行。每个应用程序301可以传达期望的重置频率(例如,如由其用户指定的或由应用程序本身确定的)。每个应用程序传达的期望重置频率可能不一定相同。安全控制器可以根据由应用程序301传达的期望重置频率中的任何一个或多个来确定用于调度周期性重置的重置频率。例如,安全控制器311可以根据由应用程序期望的最高重置频率来调度周期性重置。这是因为最高重置频率通常允许瞬时错误持续最短的时间,并且对安全性要求最严格的应用程序可能会要求。在另一个实例中,由应用程序301提供的多个重置频率可以被数学地组合(例如,通过平均),其中安全控制器根据所组合的重置频率来调度周期性重置。
重置频率可以是自适应的。例如,初始重置频率可以预先确定,或者可以由应用程序确定,如本文所述。可以根据在其上执行安全关键渲染的GPU中的置信度来实时地调适初始重置频率。
例如,数据处理设备的安全性能可以由一组安全度量来表达。某些安全度量可以提供对服务可靠性(例如,使用中的数据处理设备的可靠性)的测量。这样的安全度量的一个实例是对系统检测错误的速率的测量。测量这样的安全度量的方法对于本领域技术人员是众所周知的,并且在本文中将不再进一步讨论。安全控制器311可以监测GPU 312的安全度量并且根据该安全度量来调适重置频率。例如,安全控制器可以监测检测到错误的速率。在一个实例中,安全控制器可以响应于检测到错误的速率的增加而增加重置频率,反之亦然。
如本文所述,随机错误可例如通过瞬时事件(例如,由于电离辐射、电压尖峰或电磁脉冲)而引入硬件中。在一个实例中,安全控制器311可以测量这些瞬时事件中的一个或多个瞬时事件的发生,并根据该监测来调适重置频率。例如,已知电离辐射的水平在更高的高度处更高,并且可以使用诸如盖革-米勒计数器的设备来测量。安全控制器可以监测电离辐射的水平,并根据该水平来调适重置频率。例如,某些交通工具诸如飞机经常在变化的高度下运行。在可操作以渲染飞机的仪表组(类似于图2中所示的仪表组)的图形处理系统中,由于在增加的高度处的可测量电离辐射的水平较高,安全控制器311可在飞行期间增加GPU312的重置频率。
在另一个实例中,如果响应于检测到的故障(例如,使用双锁步类型布置检测到的故障),最近已经执行了额外的GPU重置,则安全控制器311可以延迟或取消下一个调度的周期性重置。
图形处理单元(诸如GPU 312)可包括硬件部件(例如,硬件处理单元339和存储器309)和软件部件(例如,固件314,以及在硬件处理单元处执行的程序和任务)。多个调度的重置可包括一种或多种不同类型的重置。例如,重置可以是软重置。软重置可包括重置GPU312的硬件部件。例如,在软重置期间,处理单元339可以被重新初始化并返回到已知状态,并且存储器309中包括的任何高速缓存、存器或缓冲器条目可以无效。在软重置期间,GPU312的软件部件诸如固件314可以继续运行。相反,重置可以是硬重置。硬重置可包括重置GPU 312的硬件部件和软件部件两者。例如,在硬重置期间,处理单元339和固件314可以被重新初始化并且返回到已知状态,并且存储器309中的所有条目(包括任何高速缓存、寄存器或缓冲器中的条目)可以被无效或清除。包括重置图形处理单元(诸如GPU 312)的部件的任何组合的任何其他类型的重置也是可能的。
在一个实例中,多个重置可包括软重置和硬重置两者。在该实例中,可以根据不同的重置频率来调度软重置和硬重置。例如,可以根据软重置频率来调度软重置。可以根据硬重置频率来调度硬重置。软重置频率可能高于硬重置频率。软重置频率可以是每20帧一次重置。硬重置频率可以是每100帧一次重置。软重置频率和硬重置频率可以是任何值。在主机数据处理系统301处运行的应用程序301可以确定要执行的重置的类型和频率。
要执行的重置类型可以预先确定(例如,对于在设计时的图形处理系统或在应用程序中用户可配置的)、确定(例如,由应用程序),并且可以以与如本文所述的重置频率类似的方式自适应。例如,如果GPU中的置信度降低,则可以增加该GPU的硬重置频率。
为了在GPU上声明调度的重置,安全控制器可以生成包括定义GPU的一个或多个调度的重置的命令的指令。可以以任何合适的方式将重置命令提供给GPU,例如,作为包括一个或多个命令的控制流中的指令。重置命令可以是离散指令。在一些实例中,重置命令可以被嵌入在图形处理指令内。重置命令可以作为标志嵌入在图形处理指令中。例如,标志可以存在于指令头中。所述指令头可以在指令的启动命令中。在图3所示的实例中,可以由驱动器304将定义GPU 312的调度重置的重置命令发送332到指令缓冲器308中。所述指令可以在缓冲器308中排队,直到其被读取333到GPU 312中为止。
响应于接收到重置命令,GPU可以在接收到重置命令之前完成对已经开始处理的任何任务的处理。然后可以执行调度的重置。这样做的优点是不会浪费部分完成的处理工作。也就是说,不是在读取重置命令时立即执行重置,而是可以更有效地推迟重置直到已经完成任何部分完成的处理任务。这是因为在GPU完成部分完成的处理任务之前重置GPU可能导致在重置之后必须重新开始整个所述处理任务,例如,因为完成所述任务的处理所需且在处理期间存储在存储器(例如,存储器309中的高速缓冲存储器、寄存器或缓冲器)中的任何中间处理结果可通过重置而无效。
在接收到重置命令之后,GPU可推迟开始处理在接收到重置命令之前尚未开始处理的任何新任务,直到完成GPU重置为止。
在响应于检测到故障而执行重置的系统中,因为已知GPU中存在故障,所以在检测到故障之后尽快执行重置,因此GPU当前正在工作的处理工作可能是有故障的,并且因此没有理由继续该工作。相反,无论是否检测到故障,都调度本文描述的周期性重置。这样,当调度周期性重置时,GPU可以继续其当前正在处理的工作,直到可以执行重置的方便时间为止。这意味着可以减少或最小化由重置引起的对GPU性能的不利影响。
图4是示出根据本文所述原理的图形处理单元重置的示意性时间线400。如本文所述,基于图块的渲染系统一般执行两个明确划分的操作阶段:(i)几何形状处理阶段,其中处理几何形状(例如,图元)以针对渲染空间的每个图块,确定哪些几何形状项目可能与渲染所述图块相关(例如,哪些图元至少部分地与所述图块重叠);以及(ii)片段处理阶段(或“渲染阶段”),其中处理与渲染特定图块相关的几何形状以便渲染所述图块——例如,以产生所述图块中的像素位置的像素值,这些像素值接着可以从渲染系统输出,例如,以便存储在缓冲器(例如帧缓冲器)中和/或以供显示。
图4示意性地表示了在时间轴线412上方的几何形状处理410,以及在时间轴线412下方的片段处理411。在t=0处,第一帧的几何形状处理401开始。可以根据本文描述的几何形状处理原理来执行第一帧的几何形状处理。一旦完成了第一帧的几何形状处理401,就可以开始第一帧的片段处理402。当第一帧的片段处理402仍在进行时,第二帧的几何形状处理403也可以开始。GPU可能能够同时执行不同帧的几何形状处理和片段处理。即,第二帧的几何形状处理和第一帧的片段处理可以重叠409。在一些实例中,一帧的几何形状处理和另一帧的片段处理可以完全重叠。一旦完成了第而帧的几何形状处理403,就可以开始第二帧的片段处理404。即,如图5所示,渲染503在图形处理单元处接收的数据。在执行第二帧的片段处理404的同时,可以读取用于第三帧的处理的指令,该第三帧包括指示GPU的调度的重置的标志405。响应于读取包括重置命令的指令,GPU可以在执行重置406之前完成第二帧的片段处理404,并推迟第三帧的几何形状处理(否则将如407所示发生)。一旦完成了重置406,GPU就可以开始处理第三帧的几何形状处理408。每个接收到的重置命令可以以相同的方式处理。以这种方式,如图5所示,安全控制器执行504与重置频率相匹配的多个重置。即,安全控制器使得基于重置频率执行图形处理单元的多次重置,尽管执行图形处理的重置的频率可能不与根据其调度重置的重置频率精确匹配,例如,由于允许完成如参考图4所描述的部分处理的任务的处理的延迟。换句话说,安全控制器使得图形处理单元的多个重置与重置频率相匹配地执行,使得执行图形处理的重置的频率基于重置频率。换言之,安全控制器使得图形处理单元的多次重置与重置频率相匹配地执行,使得重置频率指示执行图形处理的重置的频率。
通过同时执行几何形状处理和片段处理,可以提高GPU的效率。这是因为,如本文所述,几何形状处理阶段和片段处理阶段可以由GPU的不同单元执行。因此,重叠两个不同帧的几何形状处理和片段处理可以确保在任何时间都使用GPU的更多处理单元。如图4所示,将帧的几何形状处理推迟到调度的重置之后意味着这样的GPU无法利用其同时执行该帧的几何形状处理和另一帧(例如,先前帧)的片段处理的能力。这可以被认为是与以这种方式执行重置相关联的进一步的性能成本。
图4仅是示意性的,并且应当理解,其他类型的处理(几何形状处理和片段处理的附加或替代)可以由图形处理单元执行,诸如由计算数据主设备(CDM)处理的计算处理,或者由二维数据主设备(TDM)处理的二维场景中的渲染几何形状。
如本文所述,重置标志可以存在于指令头中。指令可包括帧的几何形状处理阶段和片段处理阶段中的每个的启动命令。如图4所示,GPU(例如,在GPU上运行的固件)可以在开始几何形状处理阶段之前(即在执行用于几何形状处理阶段的启动命令之前)检查指令头中的重置标志。这可能是有利的,因为在此阶段检查重置标志会导致在帧之间执行调度的重置。应当理解,也可以使GPU在开始片段处理阶段之前代替检查指令头中的重置标志。如本文所述,几何形状处理阶段的一些或全部输出可以被存储在GPU外部的存储器中,并且因此,在这种情况下,所述输出在重置期间可能不会无效。在某些情况下,几何形状阶段的输出可以作为从每个帧导出的一组独立图块存储在外部存储器中。片段处理可以独立地在每个图块上执行。在帧的片段处理期间,GPU可以顺序地访问这些图块中的每一个。在这些情况下,有可能在两个图块的片段处理之间执行重置。在这样的实例中,重置频率可以由根据待处理的图块数而要执行的重置次数来限定。
再次参考图3,GPU 312包括一个或多个处理单元339,在图中标记为PU0 340、PU1341至PU(n)342。可以存在任何数目的处理单元。安全控制器311可能能够为GPU 312的各个处理单元339选择性地调度周期性重置。安全控制器311可以仅针对执行安全关键渲染的各个处理单元339选择性地调度重置。在另一个实例中,尽管在图3中仅示出了一个GPU 312,但是可以存在与主机数据处理系统302相关联的多个GPU。安全控制器311可能能够为所述多个GPU中的各个GPU选择性地调度周期性重置。安全控制器311可以仅针对执行安全关键渲染的GPU选择性地调度重置。通过将包括重置命令的每个图形处理指令寻址到特定处理单元339或GPU,可以为不同的处理单元339或GPU选择性地调度重置。
例如,图2所示的仪表组200包括传统表盘形式的速度表202,其具有围绕表盘边缘的速度值208和指针207,指针的角度方向指出车辆的当前速度。仪表组还包括油温计203、信息图标204(例如,指示所选的无线电台)、非严重警告图标205(例如指示空调系统的故障)和严重警告图标206(例如指示严重的发动机问题)。只有显示要素的速度表202和严重警告图标206对车辆及其乘员的安全至关重要。可能有必要以满足强制性安全等级(例如ISO 26262标准的ASIL B)的方式渲染这些显示要素。油温计203、信息图标204和非严重警告图标205无需呈现为该安全等级。用于渲染表示所渲染的仪表组的帧的渲染空间被划分为多个图块201,每个图块都包括多个像素。只有突出显示的图块209包含关键显示要素,因为关键显示要素的至少部分与每一个突出显示的图块重叠。安全控制器311可以仅针对被配置为执行突出显示的图块的渲染的处理单元339或GPU来调度周期性重置。
图3的图形处理系统被示出为包括多个功能块。这仅是示意性的,并不旨在限定此类实体的不同逻辑元件之间的严格划分。每个功能块可以任何合适的方式提供。应当理解,由图形处理系统形成的本文描述的中间值不需要由图形处理系统在任何时间点物理地生成,并且可以仅仅表示方便地描述由图形处理系统在其输入与输出之间执行的处理的逻辑值。
本文描述的图形处理系统可以用一个或多个集成电路上的硬件来体现。本文所述图形处理系统可以被配置成执行本文所述任何方法。
如本文中所使用的术语计算机程序代码和计算机可读指令是指供处理器执行的任何种类的可执行代码,包含以机器语言、解释语言或脚本语言表达的代码。可执行代码包含二进制代码、机器代码、字节代码、定义集成电路的代码(例如硬件描述语言或网表),以及用例如C、Java或OpenCL等编程语言代码表达的代码。可执行代码可以是例如任何种类的软件、固件、脚本、模块或库,当在虚拟机或其他软件环境中被适当地执行、处理、解释、编译、运行时,这些软件、固件、脚本、模块或库使支持可执行代码的计算机系统的处理器执行由所述代码指定的任务。计算机可读存储介质的示例包含随机存取存储器(RAM)、只读存储器(ROM)、光盘、闪存、硬盘存储器以及可以使用磁性、光学和其他技术来存储指令或其他数据并可以由机器存取的其他存储器设备。
处理器、计算机或计算机系统可以是任何种类的设备、机器或专用电路,或其集合或一部分,它具有处理能力使得可以执行指令。处理器可以是任何种类的通用或专用处理器,例如CPU、GPU、向量处理器、张量处理器、芯片上系统、状态机、介质处理器、专用集成电路(ASIC)、可编程逻辑阵列、现场可编程门阵列(FPGA)等。计算机或计算机系统可以包括一个或多个处理器。
本发明还意图涵盖限定如本文中所描述的硬件的配置的软件,例如硬件描述语言(HDL)软件,用于设计集成电路或用于配置可编程芯片以执行所要功能。也就是说,可以提供一种计算机可读存储介质,其上编码有集成电路定义数据集形式的计算机可读程序代码,当在集成电路制造系统中处理时,该集成电路定义数据集将该系统配置为制造被配置为执行本文所述的任何方法的图形处理系统,或者制造包括本文所述的任何装置的图形处理系统。集成电路定义数据集可以是例如集成电路描述。
可以提供一种在集成电路制造系统中制造如本文所述的图形处理系统的方法。可以提供一种集成电路定义数据集,当在集成电路制造系统中处理时,该数据集导致制造图形处理系统的方法得以执行。
集成电路定义数据集可呈计算机代码形式,例如作为网表、用于配置可编程芯片的代码,作为在任何层级定义集成电路的硬件描述语言,包含作为寄存器传送级(RTL)代码、作为例如Verilog或VHDL的高级电路表示,和作为例如OASIS(RTM)和GDSII的低级电路表示。在逻辑上定义集成电路的更高级表示法(例如RTL)可以在配置成在软件环境的上下文中生成集成电路的制造定义的计算机系统处处理,所述软件环境包括电路元件的定义和用于组合那些元件以便生成由所述表示法定义的集成电路的制造定义的规则。如通常软件在计算机系统处执行以便定义机器的情况一样,可能需要一个或多个中间用户步骤(例如,提供命令、变量等),以便将计算机系统配置成生成集成电路的制造定义,以执行定义集成电路以便生成所述集成电路的制造定义的代码。
现在将参照图6描述在集成电路制造系统处处理集成电路定义数据集以便将该系统配置为制造图形处理系统的示例。
图6示出了集成电路(IC)制造系统1002的示例,该集成电路制造系统被配置为制造如本文任何示例中描述的图形处理系统。特别地,IC制造系统1002包括布局处理系统1004和集成电路生成系统1006。IC制造系统1002被配置为接收IC定义数据集(例如,定义如本文任何示例中描述的图形处理系统)、处理IC定义数据集以及根据IC定义数据集来生成IC(例如,其体现如本文任何示例中所述的图形处理系统)。通过对IC定义数据集的处理,将IC制造系统1002配置为制造体现如本文任何示例中描述的图形处理系统的集成电路。
布局处理系统1004被配置为接收和处理IC定义数据集以确定电路布局。根据IC定义数据集确定电路布局的方法在本领域中是已知的,并且例如可以涉及合成RTL代码以确定要生成的电路的门级表示,例如就逻辑部件(例如NAND、NOR、AND、OR、MUX和FLIP-FLOP部件)而言。通过确定逻辑部件的位置信息,可以根据电路的门级表示来确定电路布局。这可以自动完成或者在用户参与下完成,以便优化电路布局。当布局处理系统1004确定了电路布局时,它可以将电路布局定义输出到IC生成系统1006。电路布局定义可以是例如电路布局描述。
如本领域已知的,IC生成系统1006根据电路布局定义来生成IC。例如,IC生成系统1006可以实现生成IC的半导体器件制造工艺,其可以涉及光刻和化学处理步骤的多步骤序列,在此期间,在由半导体材料制成的晶片上逐渐形成电子电路。电路布局定义可呈掩模的形式,其可以在光刻工艺中用于根据电路定义来生成IC。替代性地,提供给IC生成系统1006的电路布局定义可以是计算机可读代码的形式,IC生成系统1006可以使用该计算机可读代码来形成用于生成IC的合适掩模。
由IC制造系统1002执行的不同过程可以全部在一个位置例如由一方来实现。替代性地,IC制造系统1002可以是分布式系统,使得一些过程可以在不同位置执行,并且可以由不同的方来执行。例如,以下阶段中的一些可以在不同位置和/或由不同方来执行:(i)合成表示IC定义数据集的RTL代码,以形成要生成的电路的门级表示;(ii)基于门级表示来生成电路布局;(iii)根据电路布局来形成掩模;以及(iv)使用掩模来制造集成电路。
在其他示例中,在集成电路制造系统中对集成电路定义数据集的处理可以将该系统配置成在不处理IC定义数据集以确定电路布局的情况下制造图形处理系统。举例来说,集成电路定义数据集可以定义例如FPGA的可重新配置的处理器的配置,并且对所述数据集进行的处理可以将IC制造系统配置成(例如,通过将配置数据加载到FPGA)生成具有所述定义的配置的可重新配置的处理器。
在一些实施方案中,当在集成电路制造系统中处理时,集成电路制造定义数据集可以使集成电路制造系统生成如本文中描述的设备。例如,通过集成电路制造定义数据集,以上面参考图6描述的方式对集成电路制造系统进行配置,可以制造出如本文所述的设备。
在一些示例中,集成电路定义数据集可以包含在数据集处定义的硬件上运行的软件,或者与在数据集处定义的硬件组合运行的软件。在图6所示的示例中,IC生成系统还可以由集成电路定义数据集进一步配置,以在制造集成电路时根据在集成电路定义数据集中定义的程序代码将固件加载到该集成电路上,或者以其他方式向集成电路提供与集成电路一起使用的程序代码。
与已知的实施方式相比,在本申请中阐述的概念在设备、装置、模块和/或系统中(以及在本文中实施的方法中)的实施方式可以引起性能改进。性能改进可以包含计算性能提高、等待时间缩短、处理量增大和/或功耗降低中的一个或多个。在制造此类设备、装置、模块和系统(例如在集成电路中)期间,可以在性能改进与物理实施方案之间进行权衡,从而改进制造方法。例如,可以在性能改进与布局面积之间进行权衡,从而匹配已知实施方式的性能,但使用更少的硅。例如,这可以通过以串行方式重复使用功能块或在设备、装置、模块和/或系统的元件之间共享功能块来完成。相反,在本申请中阐述的引起设备、装置、模块和系统的物理实施方式的改进(例如硅面积减小)的概念可以针对性能提高进行权衡。例如,这可以通过在预定义面积预算内制造模块的多个实例来完成。
申请人据此独立地公开了本文中所描述的每个单独的特征以及两个或更多个此类特征的任意组合,到达的程度使得此类特征或组合能够根据本领域的技术人员的普通常识基于本说明书整体来实行,而不管此类特征或特征的组合是否解决本文中所公开的任何问题。鉴于前文描述,本领域的技术人员将清楚,可以在本发明的范围内进行各种修改。

Claims (20)

1.一种在图形处理系统内的图形处理单元处执行安全关键渲染的方法,所述方法包括:
在所述图形处理系统处接收用于在所述图形处理单元处进行安全关键渲染的图形数据;
根据重置频率在安全控制器处调度所述图形处理单元的多个重置;
在所述图形处理单元处渲染所述图形数据;以及
所述安全控制器使所述图形处理单元的所述多个重置与所述重置频率相匹配地执行。
2.如权利要求1所述的方法,所述调度包括生成指令,所述指令包括指示所述图形处理单元的一个或多个调度的重置的命令;以及使所述指令传递给所述图形处理单元。
3.如权利要求2所述的方法,所述方法还包括响应于在所述图形处理单元处读取包括所述命令的所述指令:
在读取所述指令之前,完成对已经在所述图形处理单元上开始处理的任何任务的处理;以及
重置所述图形处理单元的至少一部分。
4.如权利要求2或3所述的方法,其中指示所述图形处理单元的所述调度的重置的所述命令被提供有图形处理指令。
5.如权利要求1至3中任一项所述的方法,其中所述重置频率根据帧数限定要执行的重置次数。
6.如权利要求1至3中任一项所述的方法,其中所述重置频率在设计时间设置、是用户可配置的或由在所述图形处理单元外部的设备上运行的应用程序确定。
7.如权利要求1至3中任一项所述的方法,所述方法还包括:
监测所述图形处理单元的安全度量、电离辐射水平、电压尖峰的发生和电磁脉冲的发生中的一项或多项;以及
根据所述监测来调适所述重置频率。
8.如权利要求1至3中任一项所述的方法,其中所述图形处理单元包括一个或多个处理单元、固件以及高速缓存、寄存器或缓冲器中的至少一个,并且其中至少一个重置是包括以下各项的软重置:重新初始化所述一个或多个处理元件并使在所述图形处理单元处的所述高速缓存、所述寄存器或所述缓冲器内的至少一个条目无效;以及不重新初始化所述图形处理单元的所述固件。
9.如权利要求1至3中任一项所述的方法,其中所述图形处理单元包括一个或多个处理单元、固件以及高速缓存、寄存器或缓冲器中的至少一个,并且其中至少一个重置是包括以下各项的硬重置:重新初始化所述一个或多个处理元件;重新初始化所述图形处理单元的所述固件;以及使在所述图形处理单元处的所述高速缓存、所述寄存器或所述缓冲器内的至少一个条目无效。
10.如权利要求9所述的方法,其中所述图形处理单元包括一个或多个处理单元、固件以及高速缓存、寄存器或缓冲器中的至少一个,并且其中至少一个重置是包括以下各项的软重置:重新初始化所述一个或多个处理元件并使在所述图形处理单元处的所述高速缓存、所述寄存器或所述缓冲器内的至少一个条目无效;以及不重新初始化所述图形处理单元的所述固件,并且其中根据软重置频率来调度多个软重置,并且根据硬重置频率来调度多个硬重置。
11.如权利要求10所述的方法,其中所述软重置频率高于所述硬重置频率。
12.一种图形处理系统,包括被配置为执行安全关键渲染的图形处理单元和用于所述图形处理系统的安全控制器,其中:
所述图形处理系统被配置为在所述图形处理单元处接收用于安全关键渲染的图形数据;
所述安全控制器被配置为根据重置频率来调度所述图形处理单元的多个重置;
所述图形处理单元被配置为渲染所述图形数据;并且
所述安全控制器被配置为使所述图形处理单元的所述多个重置与所述重置频率相匹配地执行。
13.如权利要求12所述的图形处理系统,其中所述重置频率根据帧数限定要执行的重置次数。
14.如权利要求12或13所述的图形处理系统,其中所述安全控制器包括监测器,所述监测器被配置为监测所述图形处理单元的安全度量、电离辐射水平、电压尖峰的发生和电磁脉冲的发生中的一项或多项,并且其中所述安全控制器被配置为根据所述监测来调适所述重置频率。
15.如权利要求12至13中任一项所述的图形处理系统,其中所述图形处理单元包括一个或多个处理单元、固件以及高速缓存、寄存器或缓冲器中的至少一个,并且其中至少一个重置是包括以下各项的软重置:重新初始化所述一个或多个处理元件并使在所述图形处理单元处的所述高速缓存、所述寄存器或所述缓冲器内的至少一个条目无效;以及不重新初始化所述图形处理单元的所述固件。
16.如权利要求12至13中任一项所述的图形处理系统,其中所述图形处理单元包括一个或多个处理单元、固件以及高速缓存、寄存器或缓冲器中的至少一个,并且其中至少一个重置是包括以下各项的硬重置:重新初始化所述一个或多个处理元件;重新初始化所述图形处理单元的所述固件;以及使在所述图形处理单元处的所述高速缓存、所述寄存器或所述缓冲器内的至少一个条目无效。
17.如权利要求16所述的图形处理系统,其中所述图形处理单元包括一个或多个处理单元、固件以及高速缓存、寄存器或缓冲器中的至少一个,并且其中至少一个重置是包括以下各项的软重置:重新初始化所述一个或多个处理元件并使在所述图形处理单元处的所述高速缓存、所述寄存器或所述缓冲器内的至少一个条目无效;以及不重新初始化所述图形处理单元的所述固件,并且其中所述安全控制器被配置为根据软重置频率来调度多个软重置,并且根据硬重置频率来调度多个硬重置。
18.如权利要求17所述的图形处理系统,其中所述软重置频率高于所述硬重置频率。
19.一种非暂时性计算机可读存储介质,其上存储有集成电路的计算机可读描述,当在集成电路制造系统中被处理时,所述计算机可读描述使所述集成电路制造系统制造图形处理系统,所述图形处理系统包括被配置为执行安全关键渲染的图形处理单元和用于所述图形处理系统的安全控制器,其中:
所述图形处理系统被配置为在所述图形处理单元处接收用于安全关键渲染的图形数据;
所述安全控制器被配置为根据重置频率来调度所述图形处理单元的多个重置;
所述图形处理单元被配置为渲染所述图形数据;并且
所述安全控制器被配置为使所述图形处理单元的所述多个重置与所述重置频率相匹配地执行。
20.如权利要求19所述的非暂时性计算机可读存储介质,其中所述重置频率根据帧数限定要执行的重置次数。
CN202011026552.1A 2019-09-30 2020-09-25 周期性重置 Pending CN112581349A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1914056.5A GB2583001B (en) 2019-09-30 2019-09-30 Periodic reset
GB1914056.5 2019-09-30

Publications (1)

Publication Number Publication Date
CN112581349A true CN112581349A (zh) 2021-03-30

Family

ID=68538866

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011026552.1A Pending CN112581349A (zh) 2019-09-30 2020-09-25 周期性重置

Country Status (5)

Country Link
US (3) US11379309B2 (zh)
EP (1) EP3798837B1 (zh)
JP (2) JP2021054402A (zh)
CN (1) CN112581349A (zh)
GB (1) GB2583001B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11625808B2 (en) 2020-07-30 2023-04-11 Arm Limited Graphics processing systems
GB2605467B (en) * 2021-06-29 2023-12-06 Imagination Tech Ltd Verifying processing logic of a graphics processing unit
CN113500913B (zh) * 2021-08-30 2022-09-09 电装光庭汽车电子(武汉)有限公司 全液晶仪表的描画组件
GB2610659B (en) * 2021-09-08 2024-01-03 Advanced Risc Mach Ltd Graphics processing systems
US20230127793A1 (en) * 2021-10-27 2023-04-27 SambaNova Systems, Inc. Force Quit of Reconfigurable Processor
CN114637624B (zh) * 2022-05-19 2022-08-12 武汉凌久微电子有限公司 一种主动错误探测的gpu显存访问修复方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080098205A1 (en) * 2006-10-24 2008-04-24 Shlomi Dolve Apparatus and methods for stabilization of processors, operating systems and other hardware and/or software configurations
US20120243517A1 (en) * 2011-03-22 2012-09-27 Verizon Patent And Licensing Inc. Wide area network (wan) and local area network (lan) communications for a fixed wireless cpe
US20140325274A1 (en) * 2013-04-24 2014-10-30 Nintendo Co., Ltd. Graphics processing watchdog active reset
US20150235338A1 (en) * 2014-02-17 2015-08-20 Qualcomm Incorporated Device hang detection and recovery
US20180285191A1 (en) * 2017-04-01 2018-10-04 Sanjeev S. Jahagirdar Reference voltage control based on error detection
US20190005269A1 (en) * 2017-07-03 2019-01-03 Nxp B.V. Automatic Reset Filter Deactivation During Critical Security Processes
CN109978751A (zh) * 2017-12-28 2019-07-05 辉达公司 多gpu帧渲染

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012198728A (ja) * 2011-03-21 2012-10-18 Mitsubishi Electric Corp プログラム実行装置及び情報保管装置及び情報処理方法及びコンピュータプログラム
US8732523B2 (en) * 2011-10-24 2014-05-20 Arm Limited Data processing apparatus and method for analysing transient faults occurring within storage elements of the data processing apparatus
JP2015035666A (ja) * 2013-08-07 2015-02-19 株式会社東芝 無線通信装置
JP6416476B2 (ja) * 2013-12-27 2018-10-31 株式会社三共 遊技機
US10452561B2 (en) * 2016-08-08 2019-10-22 Raytheon Company Central processing unit architecture and methods for high availability systems
US10521321B2 (en) * 2017-12-21 2019-12-31 Qualcomm Incorporated Diverse redundancy approach for safety critical applications

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080098205A1 (en) * 2006-10-24 2008-04-24 Shlomi Dolve Apparatus and methods for stabilization of processors, operating systems and other hardware and/or software configurations
US20120243517A1 (en) * 2011-03-22 2012-09-27 Verizon Patent And Licensing Inc. Wide area network (wan) and local area network (lan) communications for a fixed wireless cpe
US20140325274A1 (en) * 2013-04-24 2014-10-30 Nintendo Co., Ltd. Graphics processing watchdog active reset
US20150235338A1 (en) * 2014-02-17 2015-08-20 Qualcomm Incorporated Device hang detection and recovery
US20180285191A1 (en) * 2017-04-01 2018-10-04 Sanjeev S. Jahagirdar Reference voltage control based on error detection
US20190005269A1 (en) * 2017-07-03 2019-01-03 Nxp B.V. Automatic Reset Filter Deactivation During Critical Security Processes
CN109978751A (zh) * 2017-12-28 2019-07-05 辉达公司 多gpu帧渲染

Also Published As

Publication number Publication date
US11379309B2 (en) 2022-07-05
EP3798837B1 (en) 2023-04-05
JP2022126661A (ja) 2022-08-30
US20210109813A1 (en) 2021-04-15
JP2021054402A (ja) 2021-04-08
US11748200B2 (en) 2023-09-05
GB2583001A (en) 2020-10-14
GB201914056D0 (en) 2019-11-13
GB2583001B (en) 2021-08-11
US20220300379A1 (en) 2022-09-22
EP3798837A1 (en) 2021-03-31
US20230409432A1 (en) 2023-12-21

Similar Documents

Publication Publication Date Title
EP3745268B1 (en) Functional safety in graphics processing systems
US11379309B2 (en) Periodic reset of graphics processor unit in safety-critical graphics processing system
EP3663918B1 (en) Tile region protection
US10467723B2 (en) Tile-based check values for data content integrity in a GPU subsystem
US11880907B2 (en) Configuration check for safety-critical GPU
GB2579699A (en) Tile region protection
CN113327188B (zh) 关键工作负载检查
JP7512032B2 (ja) タイル領域保護
CN114898024B (zh) 用于帧的安全关键渲染的方法和系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination