CN111279411B - 用于确定gpu子系统中的数据内容完整性的存储器地址翻转 - Google Patents

用于确定gpu子系统中的数据内容完整性的存储器地址翻转 Download PDF

Info

Publication number
CN111279411B
CN111279411B CN201880069488.XA CN201880069488A CN111279411B CN 111279411 B CN111279411 B CN 111279411B CN 201880069488 A CN201880069488 A CN 201880069488A CN 111279411 B CN111279411 B CN 111279411B
Authority
CN
China
Prior art keywords
image
data
memory
integrity check
processors
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.)
Active
Application number
CN201880069488.XA
Other languages
English (en)
Other versions
CN111279411A (zh
Inventor
A·E·格鲁贝尔
R·古拉堤
B·L·约翰逊
J·C·云
A·K·H·容
金东炫
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN111279411A publication Critical patent/CN111279411A/zh
Application granted granted Critical
Publication of CN111279411B publication Critical patent/CN111279411B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/97Determining parameters from multiple pictures
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/147Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/16Anti-collision systems
    • G08G1/167Driving aids for lane monitoring, lane changing, e.g. blind spot detection
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R2300/00Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle
    • B60R2300/30Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the type of image processing
    • B60R2300/303Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the type of image processing using joined images, e.g. multiple camera images
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/10Special adaptations of display systems for operation with variable images
    • G09G2320/103Detection of image changes, e.g. determination of an index representative of the image change
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2358/00Arrangements for display data security
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2380/00Specific applications
    • G09G2380/10Automotive applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Processing (AREA)
  • Mechanical Engineering (AREA)

Abstract

本公开的技术可以包含:使用一或多个处理器来处理数据以产生第一图像,包含根据第一存储器存取模式将处理所述数据的中间第一结果存储在所述一或多个处理器的至少一个内部存储器中;使用所述一或多个处理器来处理所述数据以产生第二图像,包含根据第二存储器存取模式将处理所述数据的中间第二结果存储在所述一或多个处理器的所述至少一个内部存储器中,其中所述第二存储器存取模式与所述第一存储器存取模式不同;将所述第一图像与所述第二图像进行比较;和在所述比较指示所述第一图像与所述第二图像不同的情况下生成中断。

Description

用于确定GPU子系统中的数据内容完整性的存储器地址翻转
本专利申请要求于2017年11月6日提交的标题为“用于确定GPU子系统中的数据内容完整性的存储器地址翻转(MEMORY ADDRESS FLIPPING TO DETERMINE DATA CONTENTINTEGRITY IN GPU SUB-SYSTEM)”的非临时申请第15/804,707号的优先权,其转让给其受让人并且由此通过引用明确地并入本文。
技术领域
本公开涉及显示子系统的数据内容完整性的测试。
背景技术
图形处理单元(GPU)是被配置成并行执行多种操作并且对于生成用于显示的图像数据的图形操作很有用的处理电路。GPU在各种环境(包含汽车)中使用。例如,GPU生成图像内容,例如在方向盘后面的仪表板上显示的图像内容,用作警告指示的图像内容,与信息娱乐屏幕有关的图像内容,来自后视摄像头的图像内容以及其它汽车显示系统的其它图像内容。汽车中的显示装置可以是汽车高级驾驶员辅助系统(ADAS)的一部分,或可操作地耦合到其,使得所述显示装置还可以显示盲点警告,以警告驾驶员在驾驶员的盲点处有车辆。
可能需要安全关键性ADAS来满足功能安全要求,例如ISO 26262(道路车辆的功能安全标准)所规定的要求。一种功能安全要求是确保发送到显示器的图像数据的一或多个区域的数据内容完整性。无法显示正确的图像数据可能会导致违反汽车应用的限定安全目标。可以使用显示器的示范性汽车应用包含后视摄像头系统、前部碰撞警告系统、交通标志识别系统、停车辅助系统、提供所谓“报警(tell-tale)”标志信息的仪表组显示器等。
发明内容
通常,本公开的各个方面涉及用于测试显示子系统中的硬件、存储器和内容完整性的技术。在某些应用中,例如如果显示子系统包含在汽车高级驾驶员辅助系统(ADAS)或用于控制飞机的飞行控制系统中或可操作地耦合到其,则显示子系统显示的内容的完整性可能对于维护车辆驾驶员和乘客的安全至关重要。显示子系统可以在显示装置显示图像之前处理那些图像并对此些图像执行图像操作。如果显示子系统有故障并且在图像处理期间将错误引入图像中,则用户可能无法依赖显示装置显示的图像的准确性。在显示由后视摄像头捕捉的视频或显示警告或其它“报警”图标的显示装置的实例中,如果显示子系统发生故障,则显示子系统可能会以负面方式影响驾驶员和乘客以及行人和其它车辆的乘员的安全。
本公开的技术包含使用图形处理单元(GPU)或另一处理器来执行相同的数据处理两次以产生两个图像。GPU或其它处理器可以被配置成使用不同的存储器存取模式来将处理的结果(例如,中间结果)存储在一或多个存储器中。然后,可以将结果(例如,中间结果和/或最终图像)进行比较以确定两个图像的任何位是否不同。如果是这样,则图形处理子系统可以标识一或多个存储器(例如,图形子系统的内部存储器)中的错误,并发出警告(例如,中断)。
在本公开的一个实例中,一种用于图形处理的方法包括:使用一或多个处理器来处理数据以产生第一图像,包含根据第一存储器存取模式将处理数据的中间第一结果存储在一或多个处理器的至少一个内部存储器中;使用一或多个处理器来处理数据以产生第二图像,包含根据第二存储器存取模式将处理数据的中间第二结果存储在一或多个处理器的所述至少一个内部存储器中,其中第二存储器存取模式与第一存储器存取模式不同;将第一图像与第二图像进行比较;和在比较指示第一图像与第二图像不同的情况下生成中断。
在本公开的另一实例中,一种被配置成用于图形处理的设备包括:至少一个内部存储器;和一或多个处理器,其与所述至少一个内部存储器通信,一或多个处理器被配置成:处理数据以产生第一图像,包含根据第一存储器存取模式将处理数据的中间第一结果存储在所述至少一个内部存储器中;处理数据以产生第二图像,包含根据第二存储器存取模式将处理数据的中间第二结果存储在所述至少一个内部存储器中,其中第二存储器存取模式与第一存储器存取模式不同;将第一图像与第二图像进行比较;和在比较指示第一图像与第二图像不同的情况下生成中断。
在本公开的另一实例中,一种被配置成用于图形处理的设备包括:用于使用一或多个处理器来处理数据以产生第一图像的装置,包含根据第一存储器存取模式将处理数据的中间第一结果存储在一或多个处理器的至少一个内部存储器中;用于使用一或多个处理器来处理数据以产生第二图像的装置,包含根据第二存储器存取模式将处理数据的中间第二结果存储在一或多个处理器的所述至少一个内部存储器中,其中第二存储器存取模式与第一存储器存取模式不同;用于将第一图像与第二图像进行比较的装置;和用于在比较指示第一图像与第二图像不同的情况下生成中断的装置。
在另一实例中,本公开描述了一种存储指令的计算机可读存储媒体,所述指令在被执行时使一或多个处理器:处理数据以产生第一图像,包含根据第一存储器存取模式将处理数据的中间第一结果存储在一或多个处理器的至少一个内部存储器中;处理数据以产生第二图像,包含根据第二存储器存取模式将处理数据的中间第二结果存储在一或多个处理器的所述至少一个内部存储器中,其中第二存储器存取模式与第一存储器存取模式不同;将第一图像与第二图像进行比较;和在比较指示第一图像与第二图像不同的情况下生成中断。
在附图和以下描述中阐述了本公开的一或多个方面的细节。根据说明书和附图以及根据权利要求书,本公开的其它特征、目的和优点将是显而易见的。
附图说明
图1是示出了可以被配置成实施本公开的一或多个实例的示范性计算装置的框图。
图2是更详细地示出了图形处理单元的框图
图3A和3B是示出了根据本公开的实例的示范性存储器存取模式的概念图。
图4是示出了本公开的示范性方法的流程图。
具体实施方式
本公开的实例涉及用于测试硬件、存储器和/或数据内容完整性以及用于测试显示子系统(例如,用于安全关键性情况的显示子系统(例如,仪表组、后视摄像头应用等))中的硬件和存储器故障的技术、结构和装置。
为了确保显示子系统正确无故障地操作,可以包含图形处理单元(GPU)和/或其它处理器的显示子系统可以执行与待显示的内容的完整性有关的测试。此测试可以用于检测在显示子系统处理供显示装置显示的内容时可能发生的操作故障。本公开的技术具体地涉及用于显示的内容完整性的并发和/或在线测试。在本背景下,内容完整性的测试可以包含确认将要显示的内容与预期要显示的内容相同的测试。如果测试确定待显示的内容不正确,则此确定可能指示显示子系统中的硬件和/或存储器问题。
显示子系统的并发测试可以是在计算装置通电时的显示子系统的连续测试。显示子系统的在线测试可以包含在计算装置和子系统通电并执行其正常功能时的显示子系统的测试。换句话说,在计算装置通电并且被用户使用时,计算装置可以执行显示子系统的测试,而无需进入专用测试模式并且无需关闭显示装置。在一些实例中,包含显示子系统的计算装置是车辆的高级驾驶员辅助系统(ADAS)的一部分。车辆的操作员可以使用ADAS来例如查看从后视摄像头流传输到后视摄像头显示器的视频和/或查看仪表组中的警告或报警图标,同时ADAS执行显示子系统的并发和在线测试。
显示子系统的这种并发和在线测试可以检测显示子系统的操作故障,所述操作故障可能包含黑屏、定格或图像内容的不正确显示。操作故障可能包含永久性故障、间歇性故障和瞬时性故障。如果不采取纠正措施,则永久性故障可能是无限期存在的故障。此些故障可能是残留的设计或制造故障。间歇性故障可能会重复地出现、消失并再次出现。此些故障可能难以预测,但其影响可能高度相关。当出现此些间歇性故障时,显示子系统可能在大多数时间都能正常工作,但在非典型环境下可能会发生故障。瞬时性故障可能会迅速地出现和消失,并且此些故障可能不相关。此些瞬时性故障通常是由随机环境干扰引起的。
被配置成执行本公开的技术的计算系统可以执行显示内容完整性的并发和在线测试,以便检测显示子系统的硬件和/或存储器故障。本公开描述了用于确保显示子系统中的数据内容完整性的技术。本公开的示范性技术包含使用GPU或其它处理器来执行相同的数据处理两次(例如,用于渲染或通常产生图像的操作)。GPU或其它处理器可以被配置成使用不同的存储器存取模式来将处理的结果(例如,中间结果)存储在一或多个存储器(例如,GPU的内部存储器)中。然后,可以将结果(例如,中间结果和/或最终图像)进行比较以确定两个图像的任何位是否不同。如果是这样,则图形处理子系统可以标识一或多个存储器(例如,图形子系统的内部存储器)中的错误并发出警告。本公开的技术可以应用在汽车显示系统、航空电子显示系统或任何其它显示系统中,其有益于在这些显示系统中确保旨在显示的图像数据被实际地显示。
如将在下面更详细解释,本公开的技术可以包含:使用一或多个处理器来处理数据以产生第一图像,包含根据第一存储器存取模式将处理数据的中间第一结果存储在一或多个处理器的至少一个内部存储器中;使用一或多个处理器来处理数据以产生第二图像,包含根据第二存储器存取模式将处理数据的中间第二结果存储在一或多个处理器的所述至少一个内部存储器中,其中第二存储器存取模式与第一存储器存取模式不同;将第一图像与第二图像进行比较;和在比较指示第一图像与第二图像不同的情况下生成中断。在本实例中,一或多个处理器(例如,GPU、中央处理单元(CPU)、显示处理器或其它处理器)可以是计算装置(例如,ADAS等)的一部分,或者可以是独立模块,所述独立模块可以执行贯穿本公开描述的内容完整性测试。
图1是被配置成执行本公开中描述的一或多种示范性技术的装置的框图。装置10可以是位于汽车或其它车辆中的计算装置。为了便于说明和简洁,未示出或描述汽车的各个组件。而是,图1示出了用于执行本公开中描述的示范性技术的组件。
装置10不限于汽车。装置10的其它实例包含计算机(例如,个人计算机、台式计算机或膝上型计算机)、移动装置(例如,平板计算机)、无线通信装置(诸如例如移动电话、蜂窝电话、卫星电话和/或移动电话手机)、用于电话会议的固定电话、互联网电话、手持装置(例如,便携式视频游戏装置或个人数字助理(PDA))。装置10的另外的实例包含个人音乐播放器、视频播放器、显示装置、摄像头、电视机、机顶盒、广播接收器装置、服务器、中间网络装置、大型计算机或处理和/或显示图形数据的任何其它类型的装置。为了描述的目的,相对于装置10为汽车描述了实例,但应理解,实例可以扩展为装置10的其它实例。
如图1的实例中所示,装置10包含镜头12、摄像头处理器14、中央处理单元(CPU)16、图形处理单元(GPU)18和GPU 18的本地存储器20、用户界面22、提供对系统存储器30的存取的存储器控制器24、显示处理器11和输出使图形数据显示在一或多个显示器28上的信号的显示接口26。总线32提供各个组件的互连。
尽管将各个组件示出为单独的组件,但是在一些实例中,可以将这些组件组合以形成片上系统(SoC)。作为一个实例,摄像头处理器14、CPU 16、GPU 18、显示处理器11和显示接口26可以形成在公共集成电路(IC)芯片上。在一些实例中,摄像头处理器14、CPU 16、GPU 18、显示处理器11和显示接口26中的一或多个可以在单独的IC芯片中。各种其它排列和组合是可能的,并且技术不应被视为限于图1中示出的实例。
图1中示出的各个组件(无论是形成在一个装置上还是形成在不同装置上)可以形成为固定功能或可编程电路系统中的至少一种,例如在一或多个微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其它等效的集成或离散逻辑电路系统中。本地存储器20的实例包含一或多个易失性或非易失性存储器或存储装置,诸如例如随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、可擦除可编程ROM(EPROM)、电可擦可编程ROM(EEPROM)、闪速存储器、磁数据媒体或光存储媒体。
图1中示出的各个单元使用总线32来相互通信。总线32可以是多种总线结构中的任何一种,例如第三代总线(例如,超传输总线或无限带宽总线)、第二代总线(例如,高级图形端口总线、外围组件互连(PCI)快速总线或高级可扩展接口(AXI)总线)或另一种类型的总线或装置互连。应当注意,图1中示出的不同组件之间的总线和通信接口的具体配置仅是示范性的,并且可以使用具有相同或不同组件的计算装置和/或其它图像处理系统的其它配置来实施本公开的技术。
一或多个显示器28向驾驶员或乘客显示相关信息。一或多个显示器28的实例包含监视器、液晶显示器(LCD)、等离子显示面板、发光二极管(LED)阵列、触摸面板等。
在一些实例中,装置10中可能仅存在一个显示器28,例如一个大屏幕,其用作用户界面22以及显示诸如速度、温度、气体水平、电池电量等信息和其它此类信息的“仪表板”,并且输出由摄像头处理器14捕捉的图像。在一些实例中,可以有多个显示器28。例如,显示器28中的一个可以是方向盘后面的仪表板,显示器28中的另一个可以是显示诸如行进距离、温度设置等信息的屏幕。
可能存在与显示器28中的每一个相关联的一个GPU(例如,GPU 18)和一个显示接口(例如,显示接口26),或者可能针对显示器28中的每一个存在单个GPU 18和单个显示接口26。在本公开中描述的实例中,针对显示器28中的每一个,存在一个GPU 18和一个显示接口26。然而,示范性技术也适用于存在多个GPU 18和多个显示接口26的情况。
显示处理器11可以包含一或多个硬件单元,所述硬件单元检索存储在系统存储器30中的图像,对所检索的图像执行一或多个图像处理操作,并将处理后的图像输出到一或多个显示器28。换句话说,显示处理器11从系统存储器30中检索图像,并且可以输出使一或多个显示器28的像素发光的值以显示图像。在一些实例中,显示处理器11可以被配置成对从系统存储器30检索的图像执行图像处理操作,以由一或多个显示器28显示。此些图像处理操作可以包含格式转换、缩放、旋转、混合和合成、用另外的图形对图像进行的分层等。通常,显示处理器11可以在一些使用情况下执行通常不期望改变图像的内容的一些操作(例如,合成操作),并且可以在此些使用情况下执行通常期望改变图像的内容的其它操作(例如,通过调整色相、饱和度、亮度等)。
图1中的显示处理器11的配置是示范性的。在其它实例中,显示处理器11可以被配置成从任何源(例如,CPU 16、GPU 18、摄像头处理器14或任何数字信号处理(DSP))、视频处理单元、图像处理单元、像素处理单元、存储视觉内容的存储器或任何其它来源接收视觉内容。
如本文使用,术语“视觉内容”包含但不限于任何图形数据(graphics data/graphical data)、视频数据、图像数据、像素数据、图形内容(graphics content/graphical content)、视频内容、图像内容、像素内容和/或可以显示的任何其它类型的内容。
用户界面22在本公开中用于一般性地指驾驶员或乘客可以与装置10交互的方式。例如,用户界面22可以是方向盘的侧面上的开关,驾驶员可以使用所述开关来循环通过无线电台。用户界面22可以包含驾驶员用来将汽车换档或倒档的变速杆。在一些实例中,用户界面22可以是一或多个显示器28的一部分,例如在显示器28中的一个是触摸面板的实例中。
摄像头处理器14、CPU 16和GPU 18可以被配置成生成图像内容以供一或多个显示器28显示。例如,摄像头处理器14被配置成从镜头12的各个像素接收电流作为传感器信号并处理电流以生成图像的像素数据。镜头12的一个实例是汽车的倒车摄像头。摄像头处理器14可以被配置为单输入多数据(SIMD)架构。摄像头处理器14可以对从每个镜头12上的每个传感器接收的电流执行相同的操作。SIMD架构的每个通道可以包含图像管道。图像管道包含硬线电路系统和/或可编程电路系统(例如,固定功能或可编程电路系统中的至少一个)以处理传感器的输出,以生成将在显示图像中的像素的像素值。
例如,摄像头处理器14的每个图像管道可以包含用于将电流转换为电压的相应跨阻抗放大器(TIA)和将模拟电压输出转换为数字值的相应模数转换器(ADC)。每个像素输出的电流指示红色、绿色或蓝色分量的强度。
除了将模拟电流输出转换为数字值之外,摄像头处理器14还可以执行一些另外的后处理以提高最终图像的质量。例如,摄像头处理器14可以评估相邻图像像素的颜色和亮度数据,并且执行去马赛克以更新图像像素的颜色和亮度。作为另外的实例,摄像头处理器14还可以执行降噪和图像锐化。摄像头处理器14经由存储器控制器24将所得的图像(例如,每个图像像素的像素值)输出到系统存储器30。
CPU 16可以包括控制装置10的操作的通用或专用处理器。用户可以向装置10提供输入以使CPU 16执行一或多个软件应用。在CPU 16上执行的软件应用可以包含例如图形用户界面应用或另一程序。作为一个实例,CPU 16可以执行为一或多个显示器28上显示的图标生成图像内容的一或多个软件应用。作为另一实例,响应于用户将汽车置于倒挡,CPU 16可以执行使摄像头处理器14处理由镜头12捕捉的图像内容的应用。作为另一实例,CPU 16可以执行生成指示电池电量、燃料水平、温度等的图像内容的应用。
CPU 16执行的以上示范性应用是CPU 16生成用于显示的图像内容的实例。然而,可能存在CPU 16执行的不生成图像内容的其它示范性应用,例如操作系统。此外,代替执行应用以生成图像内容,CPU 16可以被硬连线以生成图像内容。例如,代替在可编程电路系统上执行应用以基于从燃料传感器接收的信息来确定燃料水平,CPU 16可以被硬连线以利用专用固定功能电路系统确定燃料水平,所述专用固定功能电路系统从燃料传感器接收信息并输出指示燃料水平的信息。在一些情况下,即使在此些实例中,CPU 16也可以执行从固定功能电路系统接收指示燃料水平的信息并生成图形命令的应用,使得GPU 18可以生成示出燃料水平的图像内容。
可以存在使用CPU 16的固定功能和可编程电路系统来生成待显示在一或多个显示器28上的信息的各种组合和排列。以上提供了一些实例,并且此些实例不应被认为是限制性的。
在CPU 16上执行的软件应用可以包含一或多个图形渲染指令,其指示GPU 18引起图形数据的渲染以存储在系统存储器30中和/或显示在显示器28上。在一些实例中,软件指令可以符合图形应用编程接口(API),诸如例如开放式图形库
Figure BDA0002465134780000081
API、开放式图形库嵌入式系统(OpenGL ES)API、OpenCL API、Direct3D API、X3D API、RenderMan API、WebGL API或任何其它公共或专有标准图形API。所述技术不应被视为仅限于需要特定的API。
作为一个实例,CPU 16可以确定汽车正在达到的每加仑英里数,并且生成图形渲染指令,所述图形渲染指令指示GPU 18生成示出每加仑英里数的图像内容。作为另一实例,驾驶员可能正在倒车,并且作为响应,CPU 16可以使一或多个显示器28显示由镜头12(例如,倒车摄像头)捕捉并由摄像头处理器14处理的图像内容。另外,CPU 16可以确定汽车的运动角度,并生成示出倒车路径的图形信息。CPU 16可以生成GPU 18的图形渲染指令,以绘制叠加在由摄像头处理器14处理的图像上的汽车的路径。因此,GPU 18可以被配置成在汽车在操作中时为汽车应用生成图像内容。
存储器控制器24促进了进出系统存储器30的数据的传送。例如,存储器控制器24可以接收存储器读取和写入命令,并且向此些相对于存储器30的命令提供服务,以便为计算装置10中的组件提供存储器服务。存储器控制器24通信地耦合到系统存储器30。尽管存储器控制器24在图1的装置10的实例中被示出为是与CPU 16和系统存储器30两者分开的处理电路,但是在其它实例中,可以在CPU 16和系统存储器30之一或两者上实施存储器控制器24的一些或全部功能。
系统存储器30可以存储可由摄像头处理器14、CPU 16和GPU 18存取的程序模块和/或指令和/或数据。例如,系统存储器30可以存储用户应用(例如,摄像头应用的指令)、从摄像头处理器14和GPU 18得到的图像等。系统存储器30可以另外存储供装置10的其它组件使用和/或由其生成的信息。例如,系统存储器30可以用作摄像头处理器14的装置存储器。系统存储器30可以包含一或多个易失性或非易失性存储器或存储装置,诸如例如随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、只读存储器(ROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、磁数据媒体或光存储媒体。
在一些实例中,系统存储器30可以包含使摄像头处理器14、CPU 16、GPU 18和显示接口26执行归属于本公开中的这些组件的功能的指令。因此,系统存储器30可以是其上存储有指令的计算机可读存储媒体,所述指令在被执行时使一或多个处理器(例如,摄像头处理器14、CPU 16、GPU 18和显示接口26)执行各种功能。
在一些实例中,系统存储器30是非暂时性存储媒体。术语“非暂时性”表示存储媒体不体现在载波或传播信号中。然而,术语“非暂时性”不应被解释为表示系统存储器30是不可移动的或者其内容是静态的。作为一个实例,系统存储器30可以从计算装置10去除,并且移动到另一装置。作为另一实例,可以将与系统存储器30基本上相似的存储器插入计算装置10中。在某些实例中,非暂时性存储媒体可以存储可以随时间变化的数据(例如,在RAM中)。
摄像头处理器14、CPU 16和GPU 18可以将图像数据等存储在系统存储器30内分配的相应缓冲器中。显示接口26可以从系统存储器30检索数据并且配置显示器28以显示由所生成的图像数据表示的图像。在一些实例中,显示接口26可以包含数模转换器(DAC),其被配置成将从系统存储器30检索的数字值转换为显示器28可消耗的模拟信号。在其它实例中,显示接口26可以将数字值直接传递到显示器28以进行处理。
汽车根据高水平安全合规性进行操作,并且ISO 26262是道路车辆的功能安全标准。GPU 18或被配置成生成视觉内容进行显示的其它处理器的部分操作可能归入安全关键性高级驾驶员辅助系统(ADAS)。针对ADAS的ISO 26262要求之一是确保安全关键性使用情况中所涉及的各个硬件组件(例如,GPU 18)的完整性,通常通过在线自测试(在操作期间)。
本公开描述了用于硬件处理核心(例如,GPU 18的处理核心)和存储器(例如,本地存储器20)的并发和在线现场测试的示范性技术。可以在装置10进行操作时(例如,在嵌入装置10的车辆正在行驶时)执行现场测试。通常,本公开的技术包含使用GPU 18或另一处理器来执行相同的数据处理两次(例如,用于渲染或通常产生图像的操作)。本公开的技术适用于执行以产生图像的任何类型的数据处理。在一个实例中,数据处理可以包含执行图形操作(例如,由GPU 18执行图形管道)。
如以下将更详细描述,GPU 18或其它处理器可以被配置成使用不同的存储器存取模式来将图形操作的结果(例如,中间结果)存储在一或多个存储器(例如,GPU的一或多个内部存储器)中。然后,可以将结果(例如,中间结果和/或最终图像)进行比较以确定存储器的任何位是否不同。如果是这样,则图形处理子系统可以标识一或多个存储器(例如,图形子系统的内部存储器)中的错误,并发出警告(例如,中断)。在本公开的背景下,中间结果可以是GPU 18或另一处理器在处理数据以产生图像期间产生的任何结果。例如,在图形处理管道的背景下,中间结果可以是图形管道的各个阶段所产生的任何结果。
在一个实例中,GPU 18可以被配置成处理数据以产生第一图像,包含根据第一存储器存取模式将处理数据的中间第一结果存储在GPU 18的至少一个内部存储器中。GPU 18可以进一步被配置成处理数据以产生第二图像,包含根据第二存储器存取模式将处理数据的中间第二结果存储在GPU 18的所述至少一个内部存储器中,其中第二存储器存取模式与第一存储器存取模式不同;GPU 18或另一电路可以被配置成将第一图像与第二图像进行比较,并在比较指示第一图像与第二图像不同的情况下生成中断。
针对安全关键性汽车应用(例如,ADAS)或诸如仪表组显示系统的应用以及使用GPU 18的环视系统,本公开的技术对于确保GPU 18和相关联的存储器(例如,本地存储器20或其它内部存储器)无故障地可操作是有用的。本公开中描述的技术可以提供一种用于确保GPU 18和本地存储器20的逻辑完整性的系统性方法。
图2更详细地示出了GPU 18的一个实例。尽管将参考GPU 18描述本公开的技术,但是应当理解,本公开的技术可以由被配置成生成用于显示的视觉内容的一或多个处理器或处理电路来执行。例如,本公开的用于使用存储器寻址和/或存储器翻转技术来确定数据内容完整性的技术可以由显示处理器11、摄像头处理器14、CPU 16、DSP、视频解码器或任何其它类型的处理器来实施。
如图2中所示,除了本地存储器20之外,GPU 18还可以包含一或多个内部存储器33。此些内部存储器33可以包含缓冲器、高速缓存和/或用于存储数据的任何其它存储器结构。内部存储器33可以用于存储在渲染或以其它方式处理数据以生成用于显示的图像或帧时产生的中间结果。例如,内部存储器33可以是用于存储由GPU 18执行的2D或3D图形管道(例如,渲染管道)的各个阶段所产生的中间结果的任何数量的高速缓存、缓冲器和/或其它存储器。中间结果可以包含可见性流、图元列表、顶点信息、镶嵌信息、像素信息、深度信息等。中间结果还可以包含任何图形处理阶段的输出(例如,顶点着色器、镶嵌、几何着色器、像素着色器、光栅化器等)。针对非图形操作(例如,针对由除GPU 18以外的处理器产生的图像),中间结果可以包含在输出最终图像之前产生并存储的任何数据。由GPU 18生成的用于显示的最终图像可以存储在本地存储器20中和/或输出到系统存储器30。在一个实例中,由GPU 18产生的最终图像可以包含待在一或多个显示器28上显示的整个帧。在另一实例中,GPU 18可以产生可以与其它图像合成和/或混合的最终图像,以最终显示在一或多个显示器28上。如上所讨论,图1的显示处理器11可以被配置成执行此些合成和混合功能。
根据本公开的技术,GPU 18(或另一类型的处理器)可以被配置成生成用于显示的图像。例如,CPU 16可以执行使GPU 18生成用于显示的图像的指令。为了确保由GPU 18生成的内容的完整性,并且为了检测GPU 18中的任何硬件或存储器是否正确地操作,GPU 18可以被配置成生成图像两次(例如,第一图像和第二图像)。GPU 18可以被配置成使用相同的输入数据来生成第一图像和第二图像中的每一个。因此,期望第一图像和第二图像将是相同的。
在生成第一图像时,GPU 18可以被配置成使用第一存储器存取模式来将由生成第一图像产生的结果(例如,中间结果或最终结果)存储到一或多个存储器中。同样地,在生成第二图像时,GPU 18可以被配置成使用第二存储器存取模式来将由生成第二图像产生的结果(例如,中间结果或最终结果)存储到一或多个存储器中。在一个实例中,第一存储器存取模式是指用于与生成第一图像有关的中间结果(例如,中间第一结果)的存储器存取模式,并且第二存储器存取模式涉及用于与生成第二图像有关的中间结果(例如,中间第二结果)的存储器存取模式。如将在以下所述,第一和第二存储器存取模式是不同的,使得第二图像的中间结果相较于第一图像的中间结果存储在一或多个存储器(例如,内部存储器33或本地存储器20)的不同物理地址中。GPU 18或另一处理器不限于将第一和第二存储器存取模式仅用于中间结果。在一些实例中,还可以在存储最终图像时使用第一和第二存储器存取模式。
通常,存储器存取模式可以定义内部地址位,所述内部地址位用于将数据(无论是生成图像的中间或最终结果)存储在GPU 18向其写入数据的一或多个存储器(例如,内部存储器33、本地存储器20等)中。存储器存取模式可以定义用于存储数据的存储器的位以及存储在存储器的位中的顺序数据。
图3A示出了不同的存储器存取模式的一个实例。如图3A中所示,GPU 18可以使用第一存储器存取模式100来将中间第一结果写入内部存储器33的存储器的第一部分。GPU18可以使用第二存储器存取模式102来将中间第二结果写入内部存储器33的存储器的第二部分。在本实例中,中间第一结果根据第一存储器存取模式100存储在内部存储器33的至少一个存储器中,并且中间第二结果根据第二存储器存取模式102存储在内部存储器33的所述至少一个存储器中。因此,相较于处理第二图像的中间结果,GPU18将处理第一图像的中间结果存储在本地存储器20的完全不同的位中。
如图3A的实例中所示,GPU 18可以被配置成将第一存储器存取模式和第二存储器存取模式用于内部存储器33的至少一个存储器。GPU 18可以被配置成将两种不同的存储器存取模式用于内部存储器33的子集或用于所有内部存储器33。GPU 18还可以被配置成使用本公开中描述的第一和第二存储器存取模式来将最终结果(例如,第一图像和第二图像)存储到本地存储器20和/或系统存储器30中。也就是说,本公开的技术不限于使用不同的存储器存取模式来将中间结果存储在处理器(例如,GPU 18)的内部存储器上,而且还可以用于存储最终图像的外部存储器。
在一个实例中,GPU 18可以被配置成根据存储器设置来使用第一存储器存取模式或第二存储器存取模式。在一个实例中,存储器设置可以是被称为“FLIP”的单个位。如果FLIP设置为零,则使用第一存储器存取模式。如果FLIP设置为一,则使用第二存储器存取模式,或反之亦然。通常,FLIP位的值可能会改变存储器存取模式。在一个实例中,FLIP值为1改变或翻转(例如,将0改变为1,或反之亦然)内部存储器33和/或本地存储器20内部的一个地址位,使得相对于FLIP设置为一时,数据在FLIP设置为零时存储在给定地址的不同物理位中。
在本公开的一些实例中,GPU 18可以被配置成响应于渲染图像/帧的指令而总是渲染两个图像/帧。GPU 18可以被配置成使用FLIP=0来自动渲染第一图像,并且使用FLIP=1来渲染第二图像。在其它实例中,可以通过从CPU 16接收的指令来设置FLIP位。例如,CPU 16可以执行控制FLIP设置的图形驱动程序。
在图3B的实例中,GPU 18被配置成将中间第一结果和中间第二结果存储在内部存储器33的存储器的相同位中。然而,GPU 18被配置成将中间第一结果和中间第二结果的像素值以不同顺序写入内部存储器33的至少一个存储器的位。例如,GPU 18可以根据第一存储器存取模式将中间第一结果的像素值(或其它中间结果,例如顶点信息)存储到内部存储器33的位中,所述第一存储器存取模式始于内部存储器33的地址0x000并以光栅扫描顺序继续进行。GPU 18可以根据第二存储器存取模式将中间第二结果的像素值(或其它中间结果,例如顶点信息)存储到内部存储器33的位中,所述第二存储器存取模式始于地址0xFFFF开始并以反向光栅扫描顺序继续进行。
因此,在图3B的实例中,中间第一结果和中间第二结果各自使用内部存储器33中的相同的位总数。然而,中间第一结果和中间第二结果中的每一个的相对应单独数据存储在内部存储器33的不同单独位中,因为中间第一结果和中间第二结果根据以不同顺序写入数据的不同存储器存取模式写入内部存储器33。例如,第一存储器存取模式可以具有光栅扫描顺序,而第二存储器存取模式具有反向光栅扫描顺序。
GPU 18可以将第一存储器存取模式和第二存储器存取模式用于GPU 18向其写入数据的任何存储器。在一些实例中,GPU 18可以根据第一和第二存储器存取模式在存储在内部存储器33和/或本地存储器20中的一或多个中的中间结果上写入数据。在其它实例中,GPU 18可以在生成存储在本地存储器20和/或系统存储器30中的最终图像的结果上使用第一和第二存储器存取模式。在其它实例中,GPU 18可以在中间结果和存储在任何内部存储器33、本地存储器20和/或系统存储器30上的最终图像的结果上使用第一和第二存储器存取模式。在以上每个实例中,GPU 18可以将第一和第二存储器存取模式应用于GPU 18向其写入数据的存储器的子集或GPU 18向其写入数据的所有存储器。
在处理数据以产生第一和第二图像(例如,渲染帧)并且根据两种不同的存储器存取模式存储结果之后,GPU 18可以被配置成将两个图像进行比较。如上所述,由于使用相同的输入数据来产生两个图像,所以期望两个输出图像(即,第一图像和第二图像)相同。
在一个实例中,GPU 18(或另一处理电路)可以被配置成逐像素地将第一图像和第二图像进行比较。如果两个图像的任何像素值不同,则可以检测到故障,并且GPU 18可以发出中断。
在另一实例中,GPU 18可以被配置成计算每个图像的数据完整性校验值,而不是逐像素地将每个图像进行比较。此数据完整性校验值可以是循环冗余校验(CRC)码、校验和、哈希值或生成的用于校验原始数据(例如,图像数据)的有效性的其它类型的值。CRC码是通常用于检测数据改变的错误检测码。使用周期码来生成CRC,所述周期码产生了随原始数据(例如,图像数据)的一或多个特性变化的值。哈希函数是将任意大小的数据映射到固定大小的数据的函数。哈希函数有时用在哈希表中,用于加速查找重复记录。哈希函数还可以用于在处理之前和之后为图像数据生成数据完整性校验值。校验和是通过对数据(例如,图像数据)进行运算的算法所产生的数据,以便在传输、处理或存储期间检测错误。在其它实例中,此校验值可以是多独立签名寄存器(MISR)、线性反馈移位寄存器(LFSR)等,但是也可以使用其它技术。
在一个实例中,GPU 18(或另一处理电路)可以简单地将第一图像和第二图像的数据校验完整性值进行比较,以确定它们是否不同。如果第一图像和第二图像的数据完整性校验值不同,则GPU 18可以被配置成生成中断。在其它实例中,GPU 18可以被配置成仅在一行中的阈值数量的连续比较(例如,连续帧的数据完整性校验值的比较)全部指示错误的情况下才发出中断。因此,在本实例中,阈值可以是在GPU 18生成指示错误的中断之前检测到的连续错误的数量。
响应于中断,计算装置10可以向用户发出听觉、视觉和/或触觉警告。在其它实例中,响应于中断,计算装置10还可以启动自恢复处理器,其中可以修复GPU 18产生的错误。
在以上实例中,将第一图像和第二图像的像素或数据完整性校验值进行比较,以确定是否已存在GPU 18的硬件组件引入的任何错误或内部存储器33、本地存储器20和/或系统存储器30中的一或多个引入的任何错误。在本公开的其它实例中,GPU 18还可以被配置成针对所生成的两个图像中的每一个在一或多个内部存储器33的每个处将中间结果(包含中间结果的数据完整性校验值)进行比较。
例如,GPU 18可以处理数据以产生第一图像,并且可以将每个中间结果(例如,中间第一结果)存储在系统存储器30中。如以上实例,使用第一存储器存取模式来将中间第一结果最初存储在一或多个内部存储器33中。然后,GPU 18可以处理数据以产生第二图像,从而使用第二存储器存取模式来将另一组中间结果(例如,中间第二结果)写入一或多个内部存储器33。中间第二结果可以保留在一或多个内部存储器33中,或者也可以写入系统存储器30。GPU 18可以将每个中间第一结果与每个相对应的中间第二结果进行比较,而不仅仅是将最终两个图像进行比较。也就是说,保存并比较了在每个图像的处理期间产生的中间结果。如上所述,比较可以直接对中间第一结果的数据(例如,顶点值、像素值、深度值等)执行,或者可以是从中间结果产生的数据完整性校验值的比较。
在本实例中,相对应的中间第一结果和相对应的第二结果是写入一或多个内部存储器33的相同特定存储器、缓冲器和/或高速缓存的中间结果。如果特定对的相对应中间第一结果和中间第二结果的比较指示错误(即,相对应的中间结果不相同),则GPU 18可以确定一或多个内部存储器33中的哪个产生了错误。另外,一或多个内部存储器33的特定存储器、高速缓存和缓冲器可以与GPU 18的特定硬件组件和/或图形处理管道相关联。因此,GPU18可以能够将错误定位到具体的硬件组件、管道和/或存储器。在本实例中,除了发出指示错误的中断之外,GPU 18还可以生成指示一或多个内部存储器33中的哪个产生了错误的数据。
GPU 18(或另一处理器)可以使用以上讨论的技术来执行并发在线测试。换句话说,GPU 18可以在GPU 18通电并渲染图像时执行内置的自测试。因为GPU 18并发且在线地执行内置的自测试,所以GPU 18并非通过进入专用测试模式来执行内置的自测试。如果GPU18在内置的自测试期间确定GPU 18已经以意外方式修改了图像(例如,第一图像的校验和与第二图像的校验和不匹配),则GPU 18可以确定GPU 18可存取的一或多个硬件单元或存储器未适当地操作,并且可以从而检测到GPU 18中的故障。
上述技术允许在不使用错误校正码(ECC)存储器的情况下确认数据完整性,所述ECC存储器通常不存在于显示子系统(包含GPU)中。另外,可以在正常系统操作期间使用本公开的技术而无需进入专用测试模式。此外,可以在对SoC的管芯区域的影响最小的情况下实施本公开的技术。而且,可以以GPU 18(或另一处理器)的全处理速度来实施和采用本公开的技术。也就是说,数据完整性校验可以与计算装置10的实际操作并发进行。由于数据完整性测试可以并发且在线地进行,因此本公开的数据完整性校验能够检测永久性故障和间歇性故障。另外,本公开的数据完整性校验可以使车辆制造商和车辆系统制造商能够根据ISO 26262功能安全标准(单点故障度量(SPFM)和潜在点故障度量(LPFM))实现硬件架构度量。
图4是示出了本公开的另一示范性方法的流程图。图4的技术可以由GPU 18和/或被配置成生成用于显示的图像数据的任何其它处理电路或处理器来执行。
在一个实例中,GPU 18可以被配置成处理数据以产生第一图像,包含根据第一存储器存取模式(例如,FLIP=0)将处理数据的中间第一结果存储在一或多个处理器的至少一个内部存储器中(202)。GPU 18可以进一步被配置成处理数据以产生第二图像,包含根据第二存储器存取模式(例如,FLIP=1)将处理数据的中间第二结果存储在一或多个处理器的至少一个内部存储器中(204)。在本实例中,第二存储器存取模式与第一存储器存取模式不同。GPU 18可以被配置成将第一图像和第二图像存储在存储器(例如,系统存储器30)中。如上所讨论,针对第一图像和第二图像中的每一个,由GPU 18处理的数据是相同的,因此期望第一图像和第二图像是相同的。例如,数据可以是用于渲染包括第一图像或第二图像的帧的图形数据。
然后,GPU 18可以被配置成确定第一图像和第二图像是否匹配(206)。如果是,则GPU 18可以确定图像的内容完整性被确定为待保持(208)。计算装置10可以进一步包含显示器,所述显示器被配置成在比较指示第一图像与第二图像相同的情况下显示第一图像或第二图像中的一个。如果GPU 18确定第一图像和第二图像不匹配,则GPU 18可以报告错误/中断(210),并且计算装置10可以向车辆操作者发出触觉/听觉/视觉/通知(212)。换句话说,GPU可以将第一图像与第二图像进行比较,并在比较指示第一图像与第二图像不同的情况下生成中断。
在本公开的一个实例中,第一存储器存取模式定义至少一个内部存储器的用于存储中间第一结果的第一内部地址位。第二存储器存取模式定义至少一个内部存储器的用于存储中间第二结果的第二内部地址位,其中第二内部地址位与第一内部地址位不同,使得中间第二结果相较于中间第一结果存储在至少一个内部存储器的不同物理地址中。
在本公开的另一实例中,GPU 18被配置成将第一图像的每个像素的值与第二图像的每个相对应像素的相对应值进行比较,并且在第一图像的至少一个像素的值与第二图像的相对应像素的相对应值不匹配的情况下生成中断。
在本公开的另一实例中,GPU 18被配置成为第一图像生成第一数据完整性校验值,并且为第二图像生成第二数据完整性校验值。GPU 18进一步被配置成将第一数据完整性校验值与第二数据完整性校验值进行比较,并且在比较指示第一数据完整性校验值和第二数据完整性校验值在预定误差界限内不匹配的情况下生成中断。在一个实例中,第一数据完整性校验值和第二数据完整性校验值是循环冗余校验(CRC)码、哈希函数、校验和或多独立签名寄存器(MISR)签名中的一种。
在本公开的另一实例中,GPU 18可以进一步被配置成为一或多个中间第一结果生成第一数据完整性校验值,为一或多个中间第二结果生成第二数据完整性校验值,将第一数据完整性校验值与第二数据完整性校验值进行比较,并且在比较指示第一数据完整性校验值和第二数据完整性校验值在预定误差界限内不匹配的情况下生成中断。
在一或多个实例中,所描述的功能可以在硬件、软件、固件或其任意组合中实施。如果在软件中实施,功能可以作为一或多个指令或代码存储在计算机可读媒体上或通过计算机可读媒体传输。计算机可读媒体可以包含计算机数据存储媒体或通信媒体,所述通信媒体包含促进计算机程序从一个地方转移到另一地方的任何媒体。数据存储媒体可以是可以由一或多个计算机或一或多个处理器存取以检索指令、代码和/或数据结构以实施本公开中描述的技术的任何可用媒体。作为实例而非限制,此计算机可读媒体可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储设备、磁盘存储装置或其它磁存储装置。本文使用的磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软磁盘和蓝光光盘,其中磁盘通常以磁性方式复制数据,而光盘通过激光以光学方式复制数据。上述的组合也应包含在计算机可读媒体的范围内。
所述代码可以由一或多个处理器(例如,一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等同的集成或离散逻辑电路系统)执行。因此,本文使用的术语“处理器”可以是指任何前述结构或适合于实施本文所述技术的任何其它结构。另外,在一些实例中,本文描述的功能可以提供在被配置用于编码和解码的专用硬件和/或软件模块中,或者并入在组合编解码器中。而且,所述技术可以完全实施在一或多个电路或逻辑元件中。
本公开的技术可以在多种装置或设备(包含无线手持机、集成电路(IC)或一组IC(即,芯片组))中实施。在本公开中描述了各个组件、模块或单元以强调被配置成执行所公开的技术的装置的功能方面,但不一定需要由不同硬件单元来实现。相反,如上所述,各个单元可以组合在编解码器硬件单元中,或者由互操作的硬件单元的集合(包含如上所述的一或多个处理器与合适的软件和/或固件的组合)来提供。
已经描述了本公开的各个方面。这些和其它方面在以下权利要求的范围内。

Claims (30)

1.一种用于确定数据内容完整性的方法,所述方法包括:
使用一或多个处理器来处理数据以产生第一图像,包含根据第一存储器存取模式将处理所述数据的中间第一结果存储在所述一或多个处理器的至少一个内部存储器中;
使用所述一或多个处理器来处理所述数据以产生第二图像,包含根据第二存储器存取模式将处理所述数据的中间第二结果存储在所述一或多个处理器的所述至少一个内部存储器中,其中所述第二存储器存取模式与所述第一存储器存取模式不同;
将所述第一图像和所述第二图像存储在存储器中;
将所述第一图像与所述第二图像进行比较;和
在所述比较指示所述第一图像与所述第二图像不同的情况下生成中断。
2.根据权利要求1所述的方法,其进一步包括:
在所述比较指示所述第一图像与所述第二图像相同的情况下显示所述第一图像或所述第二图像中的一个。
3.根据权利要求1所述的方法,其中所述一或多个处理器包括图形处理单元GPU,并且其中所述数据是用于渲染包括所述第一图像或所述第二图像的帧的图形数据。
4. 根据权利要求1所述的方法,其中所述第一存储器存取模式定义所述至少一个内部存储器的用于存储所述中间第一结果的第一内部地址位,并且其中所述第二存储器存取模式定义所述至少一个内部存储器的用于存储所述中间第二结果的第二内部地址位,其中所述第二内部地址位与所述第一内部地址位不同,使得所述中间第二结果相较于所述中间第一结果存储在所述至少一个内部存储器的不同物理地址中。
5.根据权利要求1所述的方法,其中将所述第一图像与所述第二图像进行比较包括将所述第一图像的每个像素的值与所述第二图像的每个相对应像素的相对应值进行比较,并且
其中生成所述中断包括在所述第一图像的至少一个像素的所述值与所述第二图像的所述相对应像素的所述相对应值不匹配的情况下生成所述中断。
6. 根据权利要求1所述的方法,其进一步包括:
为所述第一图像生成第一数据完整性校验值;和
为所述第二图像生成第二数据完整性校验值,
其中将所述第一图像与所述第二图像进行比较包括将所述第一数据完整性校验值与所述第二数据完整性校验值进行比较,并且
其中生成所述中断包括在所述比较指示所述第一数据完整性校验值和所述第二数据完整性校验值在预定误差界限内不匹配的情况下生成所述中断。
7.根据权利要求6所述的方法,其中所述第一数据完整性校验值和所述第二数据完整性校验值是循环冗余校验CRC码、哈希函数、校验和或多独立签名寄存器MISR签名中的一种。
8. 根据权利要求1所述的方法,其中所述存储器包含第一存储器和第二存储器,所述方法进一步包括:
根据所述第一存储器存取模式将所述第一图像存储在所述第一存储器中;和
根据所述第二存储器存取模式将所述第二图像存储在所述第二存储器中。
9. 根据权利要求1所述的方法,其进一步包括:
为所述中间第一结果中的一或多个生成第一数据完整性校验值;和
为所述中间第二结果中的一或多个生成第二数据完整性校验值,
其中将所述第一图像与所述第二图像进行比较包括将所述第一数据完整性校验值与所述第二数据完整性校验值进行比较,并且
其中生成所述中断包括在所述比较指示所述第一数据完整性校验值和所述第二数据完整性校验值在预定误差界限内不匹配的情况下生成所述中断。
10.根据权利要求1所述的方法,其进一步包括:
响应于生成所述中断而生成听觉、视觉或触觉警告中的一或多种。
11.根据权利要求1所述的方法,其进一步包括:
响应于生成所述中断而启动恢复过程。
12.根据权利要求1所述的方法,其中所述一或多个处理器是车辆的高级驾驶员辅助系统ADAS的一部分。
13. 一种被配置成用于确定数据内容完整性的设备,所述设备包括:
至少一个内部存储器;和
一或多个处理器,其与所述至少一个内部存储器通信,所述一或多个处理器被配置成:
处理数据以产生第一图像,包含根据第一存储器存取模式将处理所述数据的中间第一结果存储在所述至少一个内部存储器中;
处理所述数据以产生第二图像,包含根据第二存储器存取模式将处理所述数据的中间第二结果存储在所述至少一个内部存储器中,其中所述第二存储器存取模式与所述第一存储器存取模式不同;
将所述第一图像和所述第二图像存储在存储器中;
将所述第一图像与所述第二图像进行比较;和
在所述比较指示所述第一图像与所述第二图像不同的情况下生成中断。
14.根据权利要求13所述的设备,其进一步包括:
显示器,其被配置成在所述比较指示所述第一图像与所述第二图像相同的情况下显示所述第一图像或所述第二图像中的一个。
15.根据权利要求13所述的设备,其中所述一或多个处理器包括图形处理单元GPU,并且其中所述数据是用于渲染包括所述第一图像或所述第二图像的帧的图形数据。
16.根据权利要求13所述的设备,其中所述第一存储器存取模式定义所述至少一个内部存储器的用于存储所述中间第一结果的第一内部地址位,并且其中所述第二存储器存取模式定义所述至少一个内部存储器的用于存储所述中间第二结果的第二内部地址位,其中所述第二内部地址位与所述第一内部地址位不同,使得所述中间第二结果相较于所述中间第一结果存储在所述至少一个内部存储器的不同物理地址中。
17.根据权利要求13所述的设备,其中为了将所述第一图像与所述第二图像进行比较,所述一或多个处理器进一步被配置成将所述第一图像的每个像素的值与所述第二图像的每个相对应像素的相对应值进行比较,并且
其中为了生成所述中断,所述一或多个处理器进一步被配置成在所述第一图像的至少一个像素的所述值与所述第二图像的所述相对应像素的所述相对应值不匹配的情况下生成所述中断。
18. 根据权利要求13所述的设备,其中所述一或多个处理器进一步被配置成:
为所述第一图像生成第一数据完整性校验值;和
为所述第二图像生成第二数据完整性校验值,
其中为了将所述第一图像与所述第二图像进行比较,所述一或多个处理器进一步被配置成将所述第一数据完整性校验值与所述第二数据完整性校验值进行比较,并且
其中为了生成所述中断,所述一或多个处理器进一步被配置成在所述比较指示所述第一数据完整性校验值和所述第二数据完整性校验值在预定误差界限内不匹配的情况下生成所述中断。
19.根据权利要求18所述的设备,其中所述第一数据完整性校验值和所述第二数据完整性校验值是循环冗余校验CRC码、哈希函数、校验和或多独立签名寄存器MISR签名中的一种。
20. 根据权利要求13所述的设备,其中所述存储器包含第一存储器和第二存储器,并且其中所述一或多个处理器进一步被配置成:
根据所述第一存储器存取模式将所述第一图像存储在所述第一存储器中;和
根据所述第二存储器存取模式将所述第二图像存储在所述第二存储器中。
21. 根据权利要求13所述的设备,其中所述一或多个处理器进一步被配置成:
为所述中间第一结果中的一或多个生成第一数据完整性校验值;和
为所述中间第二结果中的一或多个生成第二数据完整性校验值,
其中为了将所述第一图像与所述第二图像进行比较,所述一或多个处理器进一步被配置成将所述第一数据完整性校验值与所述第二数据完整性校验值进行比较,并且
其中为了生成所述中断,所述一或多个处理器进一步被配置成在所述比较指示所述第一数据完整性校验值和所述第二数据完整性校验值在预定误差界限内不匹配的情况下生成所述中断。
22.根据权利要求13所述的设备,其中所述一或多个处理器进一步被配置成:
响应于生成所述中断而生成听觉、视觉或触觉警告中的一或多种。
23.根据权利要求13所述的设备,其中所述一或多个处理器进一步被配置成:
响应于生成所述中断而启动恢复过程。
24.根据权利要求13所述的设备,其中所述一或多个处理器是车辆的高级驾驶员辅助系统ADAS的一部分。
25.一种被配置成用于确定数据内容完整性的设备,所述设备包括:
用于使用一或多个处理器来处理数据以产生第一图像的装置,包含根据第一存储器存取模式将处理所述数据的中间第一结果存储在所述一或多个处理器的至少一个内部存储器中;
用于使用所述一或多个处理器来处理所述数据以产生第二图像的装置,包含根据第二存储器存取模式将处理所述数据的中间第二结果存储在所述一或多个处理器的所述至少一个内部存储器中,其中所述第二存储器存取模式与所述第一存储器存取模式不同;
用于将所述第一图像和所述第二图像存储在存储器中的装置;
用于将所述第一图像与所述第二图像进行比较的装置;和
用于在所述比较指示所述第一图像与所述第二图像不同的情况下生成中断的装置。
26.根据权利要求25所述的设备,其中用于将所述第一图像与所述第二图像进行比较的所述装置包括用于将所述第一图像的每个像素的值与所述第二图像的每个相对应像素的相对应值进行比较的装置,并且
其中用于生成所述中断的所述装置包括用于在所述第一图像的至少一个像素的所述值与所述第二图像的所述相对应像素的所述相对应值不匹配的情况下生成所述中断的装置。
27. 根据权利要求25所述的设备,其进一步包括:
用于为所述第一图像生成第一数据完整性校验值的装置;和
用于为所述第二图像生成第二数据完整性校验值的装置,
其中用于将所述第一图像与所述第二图像进行比较的所述装置包括用于将所述第一数据完整性校验值与所述第二数据完整性校验值进行比较的装置,并且
其中用于生成所述中断的所述装置包括用于在所述比较指示所述第一数据完整性校验值和所述第二数据完整性校验值在预定误差界限内不匹配的情况下生成所述中断的装置。
28.一种存储指令的计算机可读存储介质,所述指令在被执行时使一或多个处理器:
处理数据以产生第一图像,包含根据第一存储器存取模式将处理所述数据的中间第一结果存储在所述一或多个处理器的至少一个内部存储器中;
处理所述数据以产生第二图像,包含根据第二存储器存取模式将处理所述数据的中间第二结果存储在所述一或多个处理器的所述至少一个内部存储器中,其中所述第二存储器存取模式与所述第一存储器存取模式不同;
将所述第一图像和所述第二图像存储在存储器中;
将所述第一图像与所述第二图像进行比较;和
在所述比较指示所述第一图像与所述第二图像不同的情况下生成中断。
29.根据权利要求28所述的计算机可读存储介质,其中为了将所述第一图像与所述第二图像进行比较,所述指令进一步使所述一或多个处理器将所述第一图像的每个像素的值与所述第二图像的每个相对应像素的相对应值进行比较,并且
其中为了生成所述中断,所述指令进一步使所述一或多个处理器在所述第一图像的至少一个像素的所述值与所述第二图像的所述相对应像素的所述相对应值不匹配的情况下生成所述中断。
30. 根据权利要求28所述的计算机可读存储介质,其中所述指令进一步使所述一或多个处理器:
为所述第一图像生成第一数据完整性校验值;和
为所述第二图像生成第二数据完整性校验值,
其中为了将所述第一图像与所述第二图像进行比较,所述指令进一步使所述一或多个处理器将所述第一数据完整性校验值与所述第二数据完整性校验值进行比较,并且
其中为了生成所述中断,所述指令进一步使所述一或多个处理器在所述比较指示所述第一数据完整性校验值和所述第二数据完整性校验值在预定误差界限内不匹配的情况下生成所述中断。
CN201880069488.XA 2017-11-06 2018-11-05 用于确定gpu子系统中的数据内容完整性的存储器地址翻转 Active CN111279411B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/804,707 2017-11-06
US15/804,707 US10467774B2 (en) 2017-11-06 2017-11-06 Memory address flipping to determine data content integrity in GPU sub-system
PCT/US2018/059258 WO2019090254A1 (en) 2017-11-06 2018-11-05 Memory address flipping to determine data content integrity in gpu sub-system

Publications (2)

Publication Number Publication Date
CN111279411A CN111279411A (zh) 2020-06-12
CN111279411B true CN111279411B (zh) 2022-04-29

Family

ID=64362767

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880069488.XA Active CN111279411B (zh) 2017-11-06 2018-11-05 用于确定gpu子系统中的数据内容完整性的存储器地址翻转

Country Status (3)

Country Link
US (1) US10467774B2 (zh)
CN (1) CN111279411B (zh)
WO (1) WO2019090254A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2579111B (en) * 2019-05-30 2021-06-23 Imagination Tech Ltd Functional safety in graphics processing systems
GB2592437B (en) 2020-02-28 2022-03-02 Imagination Tech Ltd Critical workload check
GB2592436B (en) * 2020-02-28 2022-02-23 Imagination Tech Ltd Critical workload check
US11500711B1 (en) 2021-07-20 2022-11-15 Rockwell Collins, Inc. System and method for determining error occurrence in graphics memory of graphics processing unit

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105095011A (zh) * 2014-05-23 2015-11-25 群联电子股份有限公司 数据处理方法、存储器控制电路单元以及存储器存储装置
CN106502810A (zh) * 2016-09-09 2017-03-15 华为技术有限公司 一种高速缓冲存储器的故障检测方法及装置
CN106775442A (zh) * 2015-11-19 2017-05-31 爱思开海力士有限公司 存储器系统及其操作方法
CN107085547A (zh) * 2017-05-16 2017-08-22 合肥联宝信息技术有限公司 一种电子设备和bios数据处理方法
EP3217388A1 (en) * 2016-03-10 2017-09-13 Konica Minolta, Inc. Display device, screen display method, recording medium, and image processing apparatus
CN107211112A (zh) * 2015-02-05 2017-09-26 株式会社理光 图像处理设备、图像处理系统、图像处理方法和程序
CN107273263A (zh) * 2017-05-26 2017-10-20 努比亚技术有限公司 一种异常运行的分析方法、应用终端及监控服务器

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102053899A (zh) 2009-10-28 2011-05-11 鸿富锦精密工业(深圳)有限公司 显存测试方法和系统
EP2466506A1 (fr) * 2010-12-17 2012-06-20 Gemalto SA Procédé dynamique de contrôle de l'intégrité de l'exécution d'un code exécutable
US9047686B2 (en) * 2011-02-10 2015-06-02 Qualcomm Incorporated Data storage address assignment for graphics processing
JP6102215B2 (ja) * 2011-12-21 2017-03-29 株式会社リコー 画像処理装置、画像処理方法およびプログラム
US9047192B2 (en) 2012-12-21 2015-06-02 Advanced Micro Devices, Inc. Signature-based store checking buffer
CN103077095B (zh) * 2012-12-28 2015-05-27 华为技术有限公司 内存数据的纠错方法及装置及计算机系统
KR102170101B1 (ko) * 2014-02-24 2020-10-26 삼성전자주식회사 디스플레이 장치, 모바일 장치, 이를 포함하는 시스템 및 그 화질 매칭 방법
US9628787B2 (en) 2014-04-16 2017-04-18 Texas Instruments Incorporated Ensuring imaging subsystem integrity in camera based safety systems
GB2530025B (en) * 2014-09-05 2017-02-15 Ge Aviat Systems Ltd Methods of Integrity Checking Digitally Displayed Data And Display System
US10008182B2 (en) * 2014-09-12 2018-06-26 Samsung Electronics Co., Ltd. System-on-chip (SoC) devices, display drivers and SoC systems including the same
US9727185B2 (en) * 2015-03-06 2017-08-08 Apple Inc. Dynamic artifact compensation systems and methods
CN104991833B (zh) * 2015-06-15 2018-03-27 联想(北京)有限公司 一种错误检测方法及电子设备
US20160379331A1 (en) * 2015-06-23 2016-12-29 Freescale Semiconductor, Inc. Apparatus and method for verifying the integrity of transformed vertex data in graphics pipeline processing
US9955150B2 (en) * 2015-09-24 2018-04-24 Qualcomm Incorporated Testing of display subsystems
CA2951819A1 (en) * 2015-12-18 2017-06-18 Stephen Viggers Methods and systems for monitoring the integrity of a gpu
JP6906940B2 (ja) * 2015-12-28 2021-07-21 株式会社半導体エネルギー研究所 半導体装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105095011A (zh) * 2014-05-23 2015-11-25 群联电子股份有限公司 数据处理方法、存储器控制电路单元以及存储器存储装置
CN107211112A (zh) * 2015-02-05 2017-09-26 株式会社理光 图像处理设备、图像处理系统、图像处理方法和程序
CN106775442A (zh) * 2015-11-19 2017-05-31 爱思开海力士有限公司 存储器系统及其操作方法
EP3217388A1 (en) * 2016-03-10 2017-09-13 Konica Minolta, Inc. Display device, screen display method, recording medium, and image processing apparatus
CN106502810A (zh) * 2016-09-09 2017-03-15 华为技术有限公司 一种高速缓冲存储器的故障检测方法及装置
CN107085547A (zh) * 2017-05-16 2017-08-22 合肥联宝信息技术有限公司 一种电子设备和bios数据处理方法
CN107273263A (zh) * 2017-05-26 2017-10-20 努比亚技术有限公司 一种异常运行的分析方法、应用终端及监控服务器

Also Published As

Publication number Publication date
WO2019090254A1 (en) 2019-05-09
US10467774B2 (en) 2019-11-05
CN111279411A (zh) 2020-06-12
US20190139263A1 (en) 2019-05-09

Similar Documents

Publication Publication Date Title
US10521321B2 (en) Diverse redundancy approach for safety critical applications
US10467723B2 (en) Tile-based check values for data content integrity in a GPU subsystem
US10134139B2 (en) Data content integrity in display subsystem for safety critical use cases
CN111279411B (zh) 用于确定gpu子系统中的数据内容完整性的存储器地址翻转
CN111417932B (zh) 用于gpu的着色器核心的在空闲周期期间的自测试
US9955150B2 (en) Testing of display subsystems
US11545114B2 (en) Methods and apparatus for data content integrity
US20210064905A1 (en) Content integrity of animations
JP6664548B2 (ja) 異常検出装置及び異常検出方法
US11734787B2 (en) Foveated binned rendering associated with sample spaces
KR20170102704A (ko) 자동차의 클러스터가 헤드유닛의 sw컴포넌트를 공유하기 위한 방법
CN117689620A (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
GR01 Patent grant
GR01 Patent grant