APP下载

图形处理器状态管理与故障管理方法研究

2020-08-12张宏伟

计算机技术与发展 2020年8期
关键词:速率处理器状态

刘 晖,田 泽,聂 曌,张宏伟

(1.中国航空工业西安航空计算技术研究所,陕西 西安 710119;2.集成电路与微系统设计航空科技重点实验室,陕西 西安 710119;3.西安翔腾微电子科技有限公司,陕西 西安 710119)

0 引 言

图形处理器经过二十多年的发展,架构经历了固定管线、分离架构可编程染色器、统一架构染色阵列的发展[1],随着图形处理功能、性能的不断提高,电路设计复杂度直线上升,内部状态寄存器容量不断增加。例如NVIDIA公司于2010年推出的Fermi架构GTX480图形处理器,采用40 nm制造工艺,片上集成30亿个晶体管,双精度浮点计算性能达到768GFLOPS,内部包含了32 678个32位寄存器[2]。复杂的设计对图形处理器的运行状态管理、调试手段、性能监测与分析、极端场景使用方式等提出了新的挑战。

1 图形处理器运行原理分析

图形处理器运行基本原理如图1所示。图形应用程序通过主机接口发送到命令处理器单元,命令处理器进行指令编码识别、解析及预处理,并将指令编码发送到3D处理引擎,经过各3D功能单元的处理,将绘制的像素信息存储在帧缓存中,并由显示控制模块输出到显示器上。

图1 图形处理器运行原理

无论采用哪种架构实现的图形处理器,其图形处理过程与图1的3D处理引擎流程相似,不同的是,在大规模统一染色阵列架构下,任务调度单元将顶点任务与像素任务分配给不同的染色阵列核心进行计算[3]。

2 图形处理器状态管理

图形处理器运行状态管理包括了图形处理器功能运行状态管理、图形处理器性能实时管理,覆盖了图形处理器全生命周期的状态。通过状态管理可以准确地掌握图形处理的运行状态,查询相关故障,分析性能瓶颈等。

2.1 图形处理器功能状态管理

图形处理器功能运行状态如图2所示,包括了关闭状态、上电状态、打开状态、自检状态、初始化状态、图形绘制状态、错误状态、复位状态。各状态之间的转换须符合图2。

(1)上电状态表示当前图形处理器处于运行准备状态,在此过程中需要检测主机端的运行空间。

(2)打开状态标志当前图形处理器处于可运行状态,在此过程中需要检测设备名称、配置运行空间。在运行空间满足图形处理器最小运行空间要求的基础上,用户可根据具体空间大小选择需要配置的运行句柄管理[4],包括设备信息管理、命令存储空间管理、GL句柄管理、GLU句柄管理、GLUT句柄管理、窗口句柄管理等。

图2 图形处理器状态

(3)自检状态用于检测图形处理器中的主要功能单元是否能够正常运行[5],包括了图形处理过程的关键路径:主机接口、3D绘制单元、显示存储、显示控制。

(4)初始化状态标志当前图形处理器已达到运行的初始状态,在此过程中需要配置图形处理各功能单元的寄存器及存储器状态,使其达到可运行状态。

(5)绘图状态标志当前图形处理器3D引擎处理工作状态,绘制的图形数据存储在帧缓冲区,并最终显示出来。针对3D处理引擎中流水的各功能单元,统计各单元的状态信息,查看是否死锁或阻塞。

(6)故障状态标志当前图形处理器运行过程中有非法状态产生,按照故障等级进行分类处理。按模块将故障分为5类:设备故障、GL故障、GLU故障、GLUT故障、MiniGUI故障,每一类的故障按等级分为3类:一般故障、非紧急故障、紧急故障。一般故障不会影响图形处理器的正常运行,对其只做故障错误记录,不进行处理;非紧急故障是指在运行过程中出现的可承受故障,虽然此类故障影响了部分功能,但仍满足运行的最小集;紧急故障属于严重故障,导致图形处理器无法运行。

(7)复位状态是图形处理器绘图完成或出错后可选择进入的状态,它将图形处理器恢复到初始化后的状态。

(8)关闭状态表示图形处理器处于下电关闭状态,当前图形处理器不运行。

图形处理器的状态跳转覆盖软件及硬件运行过程的全生命周期,每一种状态的转换必须符合状态迁移的前提条件,便于运行流程管理、状态监控,减少故障隐患。

2.2 图形处理器性能管理

图形处理器性能管理包括了图形命令生成速率、图形命令传输速率、命令处理器解析分发速率、顶点处理速率、图元处理速率、光栅化速率、像素处理速率、帧缓存数据刷新速率、帧缓存数据显示速率[6],如图3所示。图形处理器按照流水线形式逐级处理各单元的数据,每一级的数据输出都为下一级的数据输入,因此在典型场景下的性能只是实时性能统计信息,并不能作为分析图形处理器性能瓶颈的依据。

图形处理器的典型性能指标包括顶点处理速率、光栅化速率、像素处理速率[7],但其都受限于图形命令生成速率、图形命令传输速率、命令处理器解析分发速率。因此在极限性能测试时应在图形命令满带宽条件下,测试不同图元在不同处理通路下的处理速率。

图3 图形处理器性能分布

3 图形处理故障管理

图形处理器在运行过程中产生的故障按设计的复杂性成线性增长[8],文中只涉及图形处理模块功能的故障定义、分析及处理,不包括功能实现过程中的故障记录。由于图形处理器设计的复杂性,其故障类型千差万别,不同类型的故障不能一概而论,因此需要对故障进行分等级处理。

3.1 图形处理故障等级划分

图形处理故障按照其对整个系统的影响程度进行划分,因此识别图形处理系统的关键路径是故障等级划分的前提。

凡是影响关键路径数据处理的故障都为紧急故障[9],包括关键模块初始化状态、空间不满足系统运行的最小要求、关键计算单元自检错误等;非关键路上的故障错误按照其对绘图结果的影响和其是否可恢复分为非紧急故障和一般故障[10],非紧急故障是指软件句柄错误、软件记录错误或通过软件容错可恢复的错误等;一般故障是指图形处理标准接口定义的故障,此类故障属于标准接口故障,其处理结果与标准平台保持一致。

3.2 图形处理故障定义

图形处理器按照功能单元定义故障,如表1所示,故障代码按照功能模块分类。

3.3 图形处理故障分析与处理

故障代码按照类型可分为单元初始化故障、空间分配故障、句柄故障、功能单元超时故障、应用程序故障。

(1)功能单元故障影响图形处理执行流程,属于紧急故障,包括了主机接口、显示存储及显示控制[11]。主机接口是图形命令、像素数据传输的关键通路;显示存储区域可分为像素存储区,像素相关信息(如深度信息、模板信息等)存储区、视频存储区,若与当前应用匹配,则为紧急故障,否则为非紧急故障;显示控制通路可分为图像通路、视频通路,若与当前应用匹配,则为紧急故障,否则为非紧急故障。

(2)空间分配故障包括了句柄空间分配故障与运行空间分配故障,句柄空间用来记录图形处理状态,属于非关键空间,即为非紧急故障;运行空间可分为设备运行空间与最小运行空间,设备运行空间为用户设定的图形处理能够流畅处理的空间要求[12],最小空间为图形处理运行要求的最小空间,若小于该空间,则图形处理器无法运行,因此运行空间分配故障按照匹配关系可分为非紧急故障与紧急故障。

(3)句柄故障包括了设备句柄故障、GL句柄故障、GLU句柄故障、GLUT句柄故障、MiniGUI句柄故障,属于非紧急故障

(4)功能单元超时故障包括命令缓冲区超时和3D引擎功能单元超时。功能单元超时后可通过复位恢复正常状态,对于小概率的此类故障,且不影响整体功能时,属于非紧急故障,否则属于紧急故障[13]。

(5)应用程序故障包括非法参数、非法枚举值、非法操作、堆栈溢出、空间越界等,他们记录的是图形命令接口参数错误、调用错误,这些错误在驱动软件层做了规避操作,不会导致访问异常地址,除0等非法错误,属于一般故障[14]。

表1 图形处理器故障定义

4 结束语

图形处理器以其优越的图形处理能力,具有广泛的应用前景。文中介绍了一种通用的图形处理器状态管理及性能监测方法,能够严格控制状态间的转换,监控图形处理系统性能[15],在保证图形处理器正常运行的前提下,提出了一种分级的故障管理方法,保证在最小资源集合下满足不同的应用场景。

猜你喜欢

速率处理器状态
Dirac Live加持!让好效果来得更容易 ROTEL Rotel RAP-1580MKⅡ AV功放/RSP-1576MKⅡ环绕声处理器/RMB-1585五声道功放
智珠二则
生命的另一种状态
盘点高考化学反应速率与化学平衡三大考点
化学反应速率与化学平衡考点分析
“牛顿第一定律”练习
火线热讯
AItera推出Nios II系列软核处理器
通过提高心理速率改善记忆