一种面向GPU硬件拷贝缓冲区算法的TLM微结构制造技术

技术编号:23893497 阅读:19 留言:0更新日期:2020-04-22 07:27
本发明专利技术涉及计算机硬件建模技术领域,尤其涉及一种面向GPU硬件拷贝缓冲区算法的TLM微结构。本发明专利技术提供了一种面向GPU硬件拷贝缓冲区算法的TLM微结构,包括计算拷贝参数模块1、缓冲区分派模块2、缓冲区下边界处理模块3、高度方向缓冲区内处理模块4、缓冲区上边界处理模块5和tile行像素拷贝模块6。本发明专利技术实现了基于TLM模型的拷贝缓冲区算法功能和实现结构,解决了面向GPU硬件拷贝缓冲区算法功能验证的问题,解决了拷贝的坐标位于缓冲区外,或者拷贝宽高大于缓冲区等情况,提升了GPU的硬件性能,而且降低了拷贝错误的情况,有效的加快了RTL设计开发。

A TLM architecture for GPU hardware copy buffer algorithm

【技术实现步骤摘要】
一种面向GPU硬件拷贝缓冲区算法的TLM微结构
本专利技术涉及计算机硬件建模
,尤其涉及一种面向GPU硬件拷贝缓冲区算法的TLM微结构。
技术介绍
在图形处理器芯片(下简称GPU)设计与开发中,算法的正确性和高效性是决定GPU功能和性能的重要因素。OpenGLAPI支持从缓冲区拷贝像素,但是并没有定义当拷贝坐标在缓冲区外时,拷贝的像素该如何处理。当拷贝的坐标位于缓冲区外,或者拷贝宽高大于缓冲区时,很容易处理读取越界或者拷贝错位,或者大量的无效拷贝行为,降低GPU的硬件性能,这都是需要解决的技术问题。GPU芯片硬件在调试上述算法细节时,很难在RTL阶段验证到并debug。因此需要在RTL设计之前,尽可能早的对算法进行验证,为RTL设计提供参考依据。
技术实现思路
基于
技术介绍
中存在的问题,本专利技术提供的一种面向GPU硬件拷贝缓冲区算法的TLM微结构,能够解决RTL仿真拷贝缓冲区算法的正确性以及高效性,能够协助RTL提前对拷贝缓冲区算法的硬件微结构在TLM模型上进行功能验证。本专利技术的技术解决方案是:一种面向GPU硬件拷贝缓冲区算法的TLM微结构,包括计算拷贝参数模块1、缓冲区分派模块2、缓冲区下边界处理模块3、高度方向缓冲区内处理模块4、缓冲区上边界处理模块5、tile行像素拷贝模块6;所述计算拷贝参数模块1、缓冲区分派模块2、缓冲区下边界处理模块3和tile行像素拷贝模块6依次连接;所述计算拷贝参数模块1、缓冲区分派模块2、高度方向缓冲区内处理模块4和tile行像素拷贝模块6依次连接;所述计算拷贝参数模块1、缓冲区分派模块2、缓冲区上边界处理模块5和tile行像素拷贝模块6依次连接;所述计算拷贝参数模块1用于计算y方向超过上界的距离,x和y方向正负的拷贝距离、x和y方向的拷贝起始坐标、拷贝起始tile坐标、x方向拷贝tile个数、y方向正负的拷贝tile个数;所述缓冲区分派模块2用于将y负方向的tile分派给缓冲区下边界处理模块3,将y正方向的tile分派给高度方向缓冲区内处理模块4,将超界的tile行分派给缓冲区上边界处理模块5;所述缓冲区下边界处理模块3用于处理y负方向的tile行拷贝像素;所述高度方向缓冲区内处理模块4用于处理y正方向的tile行拷贝像素;所述缓冲区上边界处理模块5用于处理超过显存上界的tile行拷贝像素;所述tile行像素拷贝模块6用于进行tile行像素的拷贝操作;所述高度方向缓冲区内处理模块4包括读取像素子模块41、x方向拷贝像素子模块42和tile行位置计算子模块43;其中,tile表示4x4像素块,最左下角像素的x,y坐标均为4的整数倍,tile行表示4个像素行,起始像素行的y坐标是4的整数倍,设定缓冲区的左下角坐标(x,y)为原点。进一步的,所述计算拷贝参数模块1接收拷贝坐标和拷贝宽高;计算y方向超过上界的距离,x和y方向正负的拷贝距离、x和y方向的拷贝起始坐标、拷贝起始tile坐标、x方向拷贝tile个数、y方向正负的拷贝tile个数;后将y方向超过上界的距离、x和y方向正负的拷贝距离、x和y方向的拷贝起始坐标、拷贝起始tile坐标、x方向拷贝tile个数、y方向正负的拷贝tile个数通过TLM接口发送给缓冲区分派模块2。进一步的,所述缓冲区分派模块2收到计算拷贝参数模块1发送的x和y方向正负的拷贝距离、x和y方向的拷贝起始坐标、拷贝起始tile坐标、x方向拷贝tile个数、y方向正负的拷贝tile个数,将y方向负的拷贝距离通过TLM接口发送给缓冲区下边界处理模块3;将y方向的拷贝起始坐标、y方向正的拷贝距离、拷贝起始tile坐标、x方向拷贝tile个数、x方向负的拷贝距离通过TLM接口发送给高度方向缓冲区内处理模块4;将y方向超过上界的距离通过TLM接口发送给缓冲区上边界处理模块5;将x方向的拷贝起始坐标通过TLM接口发送给tile行像素拷贝模块6。进一步的,所述缓冲区下边界处理模块3收到缓冲区分派模块2发送的y方向负的拷贝距离,计算y方向tile行的开始和结束位置,并将tile行像素全部设置为0,然后将拷贝像素tile行、tile行的起始和结束位置通过TLM接口发送给tile行像素拷贝模块6。进一步的,所述高度方向缓冲区内处理模块4收到缓冲区分派模块2发送的y方向的拷贝起始坐标、y方向正的拷贝距离、拷贝起始tile坐标、x方向拷贝tile个数、x方向负的拷贝距离,通过计算缓冲区tile坐标读取缓冲区像素,然后对x方向缓冲区外的像素进行补0处理,最后计算tile行的起始和结束位置,将拷贝像素tile行、tile行的起始和结束位置通过TLM接口发送给tile行像素拷贝模块6。进一步的,所述缓冲区上边界处理模块5收到缓冲区分派模块2发送的y方向超过上界的距离,计算y方向tile行的开始和结束位置,并将tile行像素全部设置为0,后将拷贝像素tile行、tile行的起始和结束位置通过TLM接口发送给tile行像素拷贝模块6。进一步的,所述tile行像素拷贝模块6收到缓冲区下边界处理模块3和高度方向缓冲区内处理模块4发送的拷贝像素tile行、tile行的起始和结束位置,以及缓冲区分派模块2发送的x方向起始坐标,根据x方向的拷贝起始坐标计算tile行的开始像素,再进行tile行像素的拷贝操作。进一步的,所述读取像素子模块41接收到缓冲区分派模块2发送的拷贝起始tile坐标、x方向拷贝tile个数计算读取每个tile的坐标,根据tile坐标读取缓冲区像素,并将读取到的缓冲区像素发送给x方向拷贝像素子模块42。进一步的,所述x方向拷贝像素子模块42收到缓冲区分派模块2发送的x方向负的拷贝距离和读取像素子模块41发送的缓冲区像素,在读取的像素行前保留x方向负的拷贝距离,这些像素全部用0填充,作为缓冲区外的像素,然后将处理后的拷贝像素行发送个tile行像素拷贝模块6。进一步的,所述tile行位置计算子模块43收到缓冲区分派模块2发送的y起始坐标、y方向正的拷贝距离计算每个tile行的起始和结束位置,将tile行的起始和结束位置发送给tile行像素拷贝模块6。本专利技术的有益效果:本专利技术实现了基于TLM模型的拷贝缓冲区算法功能和实现结构,解决了面向GPU硬件拷贝缓冲区算法功能验证的问题,解决了拷贝的坐标位于缓冲区外,或者拷贝宽高大于缓冲区等情况,提升了GPU的硬件性能,而且降低了拷贝错误的情况,有效的加快了RTL设计开发。附图说明图1为本专利技术拷贝缓冲区算法的硬件TLM微结构框图;具体实施方式下面结合附图和具体实施例,对本专利技术的技术方案进行清楚、完整地表述。显然,所表述的实施例仅是本专利技术一部分实施例,而不是全部的实施例,基于本发本文档来自技高网...

【技术保护点】
1.一种面向GPU硬件拷贝缓冲区算法的TLM微结构,其特征在于:包括计算拷贝参数模块1、缓冲区分派模块2、缓冲区下边界处理模块3、高度方向缓冲区内处理模块4、缓冲区上边界处理模块5和tile行像素拷贝模块6;/n所述计算拷贝参数模块1、缓冲区分派模块2、缓冲区下边界处理模块3和tile行像素拷贝模块6依次连接;/n所述计算拷贝参数模块1、缓冲区分派模块2、高度方向缓冲区内处理模块4和tile行像素拷贝模块6依次连接;/n所述计算拷贝参数模块1、缓冲区分派模块2、缓冲区上边界处理模块5和tile行像素拷贝模块6依次连接;/n所述计算拷贝参数模块1用于计算y方向超过上界的距离,x和y方向正负的拷贝距离、x和y方向的拷贝起始坐标、拷贝起始tile坐标、x方向拷贝tile个数、y方向正负的拷贝tile个数;/n所述缓冲区分派模块2用于将y负方向的tile分派给缓冲区下边界处理模块3,将y正方向的tile分派给高度方向缓冲区内处理模块4,将超界的tile行分派给缓冲区上边界处理模块5;/n所述缓冲区下边界处理模块3用于处理y负方向的tile行拷贝像素;/n所述高度方向缓冲区内处理模块4用于处理y正方向的tile行拷贝像素;/n所述缓冲区上边界处理模块5用于处理超过显存上界的tile行拷贝像素;/n所述tile行像素拷贝模块6用于进行tile行像素的拷贝操作;/n所述高度方向缓冲区内处理模块4包括读取像素子模块41、x方向拷贝像素子模块42和tile行位置计算子模块43;/n其中,tile表示4x4像素块,最左下角像素的x,y坐标均为4的整数倍,/ntile行表示4个像素行,起始像素行的y坐标是4的整数倍,/n设定缓冲区的左下角坐标(x,y)为原点。/n...

【技术特征摘要】
1.一种面向GPU硬件拷贝缓冲区算法的TLM微结构,其特征在于:包括计算拷贝参数模块1、缓冲区分派模块2、缓冲区下边界处理模块3、高度方向缓冲区内处理模块4、缓冲区上边界处理模块5和tile行像素拷贝模块6;
所述计算拷贝参数模块1、缓冲区分派模块2、缓冲区下边界处理模块3和tile行像素拷贝模块6依次连接;
所述计算拷贝参数模块1、缓冲区分派模块2、高度方向缓冲区内处理模块4和tile行像素拷贝模块6依次连接;
所述计算拷贝参数模块1、缓冲区分派模块2、缓冲区上边界处理模块5和tile行像素拷贝模块6依次连接;
所述计算拷贝参数模块1用于计算y方向超过上界的距离,x和y方向正负的拷贝距离、x和y方向的拷贝起始坐标、拷贝起始tile坐标、x方向拷贝tile个数、y方向正负的拷贝tile个数;
所述缓冲区分派模块2用于将y负方向的tile分派给缓冲区下边界处理模块3,将y正方向的tile分派给高度方向缓冲区内处理模块4,将超界的tile行分派给缓冲区上边界处理模块5;
所述缓冲区下边界处理模块3用于处理y负方向的tile行拷贝像素;
所述高度方向缓冲区内处理模块4用于处理y正方向的tile行拷贝像素;
所述缓冲区上边界处理模块5用于处理超过显存上界的tile行拷贝像素;
所述tile行像素拷贝模块6用于进行tile行像素的拷贝操作;
所述高度方向缓冲区内处理模块4包括读取像素子模块41、x方向拷贝像素子模块42和tile行位置计算子模块43;
其中,tile表示4x4像素块,最左下角像素的x,y坐标均为4的整数倍,
tile行表示4个像素行,起始像素行的y坐标是4的整数倍,
设定缓冲区的左下角坐标(x,y)为原点。


2.根据权利要求1所述的面向GPU硬件拷贝缓冲区算法的TLM微结构,其特征在于:
所述计算拷贝参数模块1接收拷贝坐标和拷贝宽高;
计算y方向超过上界的距离,x和y方向正负的拷贝距离、x和y方向的拷贝起始坐标、拷贝起始tile坐标、x方向拷贝tile个数、y方向正负的拷贝tile个数;
后将y方向超过上界的距离、x和y方向正负的拷贝距离、x和y方向的拷贝起始坐标、拷贝起始tile坐标、x方向拷贝tile个数、y方向正负的拷贝tile个数通过TLM接口发送给缓冲区分派模块2。


3.根据权利要求1所述的面向GPU硬件拷贝缓冲区算法的TLM微结构,其特征在于:
所述缓冲区分派模块2收到计算拷贝参数模块1发送的x和y方向正负的拷贝距离、x和y方向的拷贝起始坐标、拷贝起始tile坐标、x方向拷贝tile个数、y方向正负的拷贝tile个数,
将y方向负的拷贝距离通过TLM接口发送给缓冲区下边界处理模块3;
将y方向的拷贝起始坐标、y方向正的拷贝距离、拷贝起始tile坐标、x方向拷贝tile个数、x方向负的拷贝距离通过TLM接口发送给高度方向缓冲区内处理模块4;
将y方向超过上界的距离通过TLM接口发送给缓冲区上边界处理模块5;
将x方向的拷贝起始坐标通过TLM接口发...

【专利技术属性】
技术研发人员:陈佳姜丽云张少锋吴晓成任向隆赵彬
申请(专利权)人:中国航空工业集团公司西安航空计算技术研究所
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1