CN111047504B - 一种基于SystemC的GPU子图像处理的TLM微结构 - Google Patents
一种基于SystemC的GPU子图像处理的TLM微结构 Download PDFInfo
- Publication number
- CN111047504B CN111047504B CN201911147159.5A CN201911147159A CN111047504B CN 111047504 B CN111047504 B CN 111047504B CN 201911147159 A CN201911147159 A CN 201911147159A CN 111047504 B CN111047504 B CN 111047504B
- Authority
- CN
- China
- Prior art keywords
- image
- skip
- module
- dma
- sub
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Image Processing (AREA)
Abstract
本发明涉及计算机硬件建模技术领域,尤其涉及一种基于SystemC的GPU子图像处理的TLM微结构,包括参数管理模块、DMA长度计算模块、图像参数计算模块、对齐操作模块、skip和DMA执行模块、下一行首地址计算模块;所述参数管理模块通过事务级接口同时与所述DMA长度计算模块、所述图像参数计算模块和所述对齐操作模块连接;所述skip和DMA执行模块通过事务级接口同时与所述DMA长度计算模块、所述图像参数计算模块、所述对齐操作模块和下一行首地址计算模块连接;所述对齐操作模块通过事务级接口与下一行首地址计算模块连接。本发明实现了基于DMA的子图像处理功能TLM模型,解决了基于DMA的GPU子图像处理TLM微结构的算法功能验证的问题,有效的加快RTL设计开发。
Description
技术领域
本发明涉及计算机硬件建模技术领域,尤其涉及一种基于SystemC的GPU子图像处理的TLM微结构。
背景技术
在图形处理器芯片(下简称GPU)设计与开发中,算法的正确性和高效性是决定GPU功能和性能的重要因素。但是,GPU芯片硬件逻辑规模巨大,尤其是对于细节算法,很难在RTL阶段验证到并debug。因此需要在RTL设计之前,尽可能早的对算法进行验证,为RTL设计提供参考依据。
发明内容
基于背景技术中存在的问题,本发明提供的一种基于DMA的GPU子图像处理的TLM微结构,能够解决RTL仿真基于DMA的GPU子图像处理的正确性问题以及高效性问题,能够解决在RTL开发之前对GPU子图像处理算法的硬件微结构在TLM模型上进行功能验证的问题。
本发明的具体技术解决方案为:
本发明提出一种基于SystemC的GPU子图像处理的TLM微结构,包括参数管理模块、DMA长度计算模块、图像参数计算模块、对齐操作模块、skip和DMA执行模块、下一行首地址计算模块;
优选的,所述参数管理模块通过事务级接口同时与所述DMA长度计算模块、所述图像参数计算模块和所述对齐操作模块连接;
所述skip和DMA执行模块通过事务级接口同时与所述DMA长度计算模块、所述图像参数计算模块、所述对齐操作模块和下一行首地址计算模块连接;
所述对齐操作模块通过事务级接口与下一行首地址计算模块连接;
优选的,所述参数管理模块用于接收和更新图像处理参数、子图像配置寄存器计算参数、子图像标记和bitmap标记;
所述DMA长度计算模块用于计算子图像处理DMA行长度;
所述图像参数计算模块用于计算图像参数和子图像skip参数,其中图像参数包括行长度row_length和图像高度image_height,子图像skip参数包括skip_pixels、skip_rows和skip_images;
所述对齐操作模块用于将像素行地址按照配置进行对齐操作;
所述skip和DMA执行模块用于将像素行地址按照skip参数跳过相应个数的像素、行和图像,并配置DMA描述符启动DMA操作;
所述下一行首地址计算模块用于计算子图像处理的下一行像素行地址。
优选的,所述参数管理模块、DMA长度计算模块、图像参数计算模块、对齐操作模块、skip和DMA执行模块和下一行首地址计算模块通过SystemC进行TLM建模。
优选的,所述基于SystemC的GPU子图像处理的TLM微结构的事务级执行方式具体包括控制参数计算、skip的执行和DMA的执行;
优选的,所述控制参数计算包括以下步骤:
1)所述DMA长度计算模块首先判断bitmap标记,OpenGL为非bitmap类命令时,根据每像素所占字节数pixelSize、图像处理宽度width计算出DMA字长度;OpenGL为bitmap类命令时,将图像处理宽度width加上配置寄存器中的SkipPixels中不足8的倍数的部分,计算出DMA字长度。
2)所述图像参数计算模块,首先判断RowLength和子图像标记的值,当配置寄存器中的RowLength为0或者子图像标记subgraphFlag为0时,行长度row_length设置为图像处理宽度width,否则,行长度row_length设置为配置寄存器中的RowLength;
然后判断配置寄存器中的ImageHeight和子图像标记的值,当ImageHeight为0或者子图像标记为0时,将图像高度image_height设置为图像处理高度height,否则,将图像高度image_height设置为配置寄存器中的ImageHeight;
当subgraphFlag为0时,将skip_pixels、skip_rows和skip_images都设置为0,否则将skip_pixels、skip_rows和skip_images分别设置为配置寄存器中的SkipPixels、SkipRows、SkipImages。
3)所述对齐操作模块首先判断行号和图像号是否都小于最大值,如果是,继续后续的操作,如果不是结束GPU子图像处理操作,其中行号的最大值为图像处理高度height与skip_rows之和,图像号的最大值为图像处理深度depth与skip_images之和;然后判断当前像素行地址是否能整除配置寄存器中的参数Alignment,如果是,将像素行地址保持不变,否则,将像素行地址后移至能整除Alignment的位置。
优选的,所述skip的执行和DMA的执行包括以下步骤:
A)所述skip和DMA执行模块首先判断bitmapFlag的值,当bitmapFlag为0时,将像素行地址后移pixelSize*skip_pixels个字节地址,当bitmapFlag不为0时,将像素行地址后移pixelSize*skip_pixels/8个字节地址;然后判断行号和图像号的值,当行号不小于skip_rows并且图像号不小于skip_images时,转入B);
B)配置DMA描述符并且启动DMA传输,转入C);
C)所述下一行首地址计算模块首先判断bitmapFlag的值,当bitmapFlag为0时,将像素行地址后移row_length*pixelSize个字节地址,当bitmapFlag不为0时,将像素行地址后移row_length*pixelSize/8个字节地址;然后将行号和图像号分别加1,转入步骤3)。
本发明的有益效果:
本发明实现了基于TLM模型和基于DMA的GPU子图像处理算法功能和实现结构,解决了面向GPU硬件子图像算法功能验证的问题,有效的加快RTL设计开发。
附图说明
图1为本发明一种基于SystemC的GPU子图像处理的TLM微结构框图;
具体实施方式
下面结合说明书附图和具体实施例,对本发明的技术方案进行清楚、完整地表述。显然,所表述的实施例仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提所获得的所有其他实施例,都属于本发明的保护范围。
在本发明的一个实施例中,如图1所示,提出一种基于SystemC的GPU子图像处理的TLM微结构,包括参数管理模块1、DMA长度计算模块2、图像参数计算模块3、对齐操作模块4、skip和DMA执行模块5、下一行首地址计算模块6;
在一个实施例中,如图1所示,所述参数管理模块1通过事务级接口同时与所述DMA长度计算模块2、所述图像参数计算模块3和所述对齐操作模块4连接;
所述skip和DMA执行模块5通过事务级接口同时与所述DMA长度计算模块2、所述图像参数计算模块3、所述对齐操作模块4和下一行首地址计算模块6连接;
所述对齐操作模块4通过事务级接口与下一行首地址计算模块6连接;
在一个实施例中,所述参数管理模块1用于接收和更新图像处理参数、子图像配置寄存器计算参数、子图像标记和bitmap标记;
所述DMA长度计算模块2用于计算子图像处理DMA行长度;
所述图像参数计算模块3用于计算图像参数和子图像skip参数,其中图像参数包括行长度row_length和图像高度image_height,子图像skip参数包括skip_pixels、skip_rows和skip_images;
所述对齐操作模块4用于将像素行地址按照配置进行对齐操作;
所述skip和DMA执行模块5用于将像素行地址按照skip参数跳过相应个数的像素、行和图像,并配置DMA描述符启动DMA操作;
所述下一行首地址计算模块6用于计算子图像处理的下一行像素行地址。
在一个实施例中,所述参数管理模块1、DMA长度计算模块2、图像参数计算模块3、对齐操作模块4、skip和DMA执行模块5和下一行首地址计算模块6通过SystemC进行TLM建模。
在一个实施例中,所述基于SystemC的GPU子图像处理的TLM微结构的事务级执行方式具体包括控制参数计算、skip的执行和DMA的执行;
在一个实施例中,所述控制参数计算包括以下步骤:
1)所述DMA长度计算模块2首先判断bitmap标记,OpenGL为非bitmap类命令时,根据每像素所占字节数pixelSize、图像处理宽度width计算出DMA字长度;OpenGL为bitmap类命令时,将图像处理宽度width加上配置寄存器中的SkipPixels中不足8的倍数的部分,计算出DMA字长度。
2)所述图像参数计算模块3,首先判断RowLength和子图像标记的值,当配置寄存器中的RowLength为0或者子图像标记subgraphFlag为0时,行长度row_length设置为图像处理宽度width,否则,行长度row_length设置为配置寄存器中的RowLength;
然后判断配置寄存器中的ImageHeight和子图像标记的值,当ImageHeight为0或者子图像标记为0时,将图像高度image_height设置为图像处理高度height,否则,将图像高度image_height设置为配置寄存器中的ImageHeight;
当subgraphFlag为0时,将skip_pixels、skip_rows和skip_images都设置为0,否则将skip_pixels、skip_rows和skip_images分别设置为配置寄存器中的SkipPixels、SkipRows、SkipImages。
3)所述对齐操作模块4首先判断行号和图像号是否都小于最大值,如果是,继续后续的操作,如果不是结束GPU子图像处理操作,其中行号的最大值为图像处理高度height与skip_rows之和,图像号的最大值为图像处理深度depth与skip_images之和;然后判断当前像素行地址是否能整除配置寄存器中的参数Alignment,如果是,将像素行地址保持不变,否则,将像素行地址后移至能整除Alignment的位置。
在一个实施例中,所述skip的执行和DMA的执行包括以下步骤:
A)所述skip和DMA执行模块5首先判断bitmapFlag的值,当bitmapFlag为0时,将像素行地址后移pixelSize*skip_pixels个字节地址,当bitmapFlag不为0时,将像素行地址后移pixelSize*skip_pixels/8个字节地址;然后判断行号和图像号的值,当行号不小于skip_rows并且图像号不小于skip_images时,转入B);
B)配置DMA描述符并且启动DMA传输,转入C);
C)所述下一行首地址计算模块6首先判断bitmapFlag的值,当bitmapFlag为0时,将像素行地址后移row_length*pixelSize个字节地址,当bitmapFlag不为0时,将像素行地址后移row_length*pixelSize/8个字节地址;然后将行号和图像号分别加1,转入步骤3)。
Claims (3)
1.一种基于SystemC的GPU子图像处理的TLM微结构,其特征在于:
包括参数管理模块(1)、DMA长度计算模块(2)、图像参数计算模块(3)、对齐操作模块(4)、skip和DMA执行模块(5)、下一行首地址计算模块(6);
所述参数管理模块(1)通过事务级接口同时与所述DMA长度计算模块(2)、所述图像参数计算模块(3)和所述对齐操作模块(4)连接;
所述skip和DMA执行模块(5)通过事务级接口同时与所述DMA长度计算模块(2)、所述图像参数计算模块(3)、所述对齐操作模块(4)和下一行首地址计算模块(6)连接;
所述对齐操作模块(4)通过事务级接口与下一行首地址计算模块(6)连接;
所述参数管理模块(1)用于接收和更新图像处理参数、子图像配置寄存器计算参数、子图像标记和bitmap标记;
所述DMA长度计算模块(2)用于计算子图像处理DMA行长度;
所述图像参数计算模块(3)用于计算图像参数和子图像skip参数,其中图像参数包括行长度row_length和图像高度image_height,子图像skip参数包括skip_pixels、skip_rows和skip_images;
所述对齐操作模块(4)用于将像素行地址按照配置进行对齐操作;
所述skip和DMA执行模块(5)用于将像素行地址按照skip参数跳过相应个数的像素、行和图像,并配置DMA描述符启动DMA操作;
所述下一行首地址计算模块(6)用于计算子图像处理的下一行像素行地址;
所述基于SystemC的GPU子图像处理的TLM微结构的事务级执行方式具体包括控制参数计算、skip的执行和DMA的执行。
2.根据权利要求书1所述的一种基于SystemC的GPU子图像处理的TLM微结构,其特征在于,所述控制参数计算包括以下步骤:
1)所述DMA长度计算模块(2)首先判断bitmap标记,OpenGL为非bitmap类命令时,根据每像素所占字节数pixelSize、图像处理宽度width计算出DMA字长度;OpenGL为bitmap类命令时,将图像处理宽度width加上配置寄存器中的SkipPixels中不足8的倍数的部分,计算出DMA字长度;
2)所述图像参数计算模块(3),首先判断RowLength和子图像标记的值,当配置寄存器中的RowLength为0或者子图像标记subgraphFlag为0时,行长度row_length设置为图像处理宽度width,否则,行长度row_length设置为配置寄存器中的RowLength;
然后判断配置寄存器中的ImageHeight和子图像标记的值,当ImageHeight为0或者子图像标记为0时,将图像高度image_height设置为图像处理高度height,否则,将图像高度image_height设置为配置寄存器中的ImageHeight;
当subgraphFlag为0时,将skip_pixels、skip_rows和skip_images都设置为0,否则将skip_pixels、skip_rows和skip_images分别设置为配置寄存器中的SkipPixels、SkipRows、SkipImages;
3)所述对齐操作模块(4)首先判断行号和图像号是否都小于最大值,如果是,继续后续的操作,如果不是结束GPU子图像处理操作,其中行号的最大值为图像处理高度height与skip_rows之和,图像号的最大值为图像处理深度depth与skip_images之和;然后判断当前像素行地址是否能整除配置寄存器中的参数Alignment,如果是,将像素行地址保持不变,否则,将像素行地址后移至能整除Alignment的位置。
3.根据权利要求书2所述的一种基于SystemC的GPU子图像处理的TLM微结构,其特征在于,所述skip的执行和DMA的执行包括以下步骤:
A)所述skip和DMA执行模块(5)首先判断bitmapFlag的值,当bitmapFlag为0时,将像素行地址后移pixelSize*skip_pixels个字节地址,当bitmapFlag不为0时,将像素行地址后移pixelSize*skip_pixels/8个字节地址;然后判断行号和图像号的值,当行号不小于skip_rows并且图像号不小于skip_images时,转入B);
B)配置DMA描述符并且启动DMA传输,转入C);
C)所述下一行首地址计算模块(6)首先判断bitmapFlag的值,当bitmapFlag为0时,将像素行地址后移row_length*pixelSize个字节地址,当bitmapFlag不为0时,将像素行地址后移row_length*pixelSize/8个字节地址;然后将行号和图像号分别加1,转入步骤3)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911147159.5A CN111047504B (zh) | 2019-11-21 | 2019-11-21 | 一种基于SystemC的GPU子图像处理的TLM微结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911147159.5A CN111047504B (zh) | 2019-11-21 | 2019-11-21 | 一种基于SystemC的GPU子图像处理的TLM微结构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111047504A CN111047504A (zh) | 2020-04-21 |
CN111047504B true CN111047504B (zh) | 2023-06-13 |
Family
ID=70233006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911147159.5A Active CN111047504B (zh) | 2019-11-21 | 2019-11-21 | 一种基于SystemC的GPU子图像处理的TLM微结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111047504B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559139B (zh) * | 2020-12-05 | 2022-12-13 | 西安翔腾微电子科技有限公司 | 一种基于SystemC的多GPU事务级模型装置及操作方法 |
CN117112474B (zh) * | 2023-10-23 | 2024-01-02 | 湖南博匠信息科技有限公司 | 一种通用可信的基板管理方法和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5854640A (en) * | 1996-01-02 | 1998-12-29 | Intel Corporation | Method and apparatus for byte alignment of video data in a memory of a host system |
CN109683877A (zh) * | 2018-12-11 | 2019-04-26 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于SystemC的GPU软硬件交互TLM系统 |
CN109840878A (zh) * | 2018-12-12 | 2019-06-04 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于SystemC的面向GPU参数管理方法 |
-
2019
- 2019-11-21 CN CN201911147159.5A patent/CN111047504B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5854640A (en) * | 1996-01-02 | 1998-12-29 | Intel Corporation | Method and apparatus for byte alignment of video data in a memory of a host system |
CN109683877A (zh) * | 2018-12-11 | 2019-04-26 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于SystemC的GPU软硬件交互TLM系统 |
CN109840878A (zh) * | 2018-12-12 | 2019-06-04 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于SystemC的面向GPU参数管理方法 |
Non-Patent Citations (2)
Title |
---|
Nadereh Hatami atl .An advanced method for synthesizing TLM2-based interfaces.《Proceedings of IEEE East-West Design & Test Symposium 》.2008,全文. * |
张彤;周芝梅;赵东艳;张海峰.即时加速非对齐数据传输的dma设计方法.电子测量技术.2017,(第12期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111047504A (zh) | 2020-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7765500B2 (en) | Automated generation of theoretical performance analysis based upon workload and design configuration | |
CN111047504B (zh) | 一种基于SystemC的GPU子图像处理的TLM微结构 | |
US9081925B1 (en) | Estimating system performance using an integrated circuit | |
CN114995782B (zh) | 数据处理方法、装置、设备和可读存储介质 | |
CN113486612A (zh) | 集成电路设计方法、装置、电子设备和可读存储介质 | |
AU2012227208B2 (en) | Global clock handler object for HDL environment | |
CN110147139B (zh) | 计算机执行方法、时脉数据处理系统以及计算机可读取储存媒体 | |
CN108520532B (zh) | 识别视频中物体运动方向的方法及装置 | |
CN111091487B (zh) | 面向gpu硬件线图元光栅化扫描算法的tlm微结构 | |
CN115983170B (zh) | 极大规模集成电路的超前后仿真方法、装置及设备 | |
CN111080508B (zh) | 一种基于dma的gpu子图像处理方法 | |
CN111028128A (zh) | 一种基于SystemC的面向GPU顶点输出控制方法及单元 | |
JP2002108958A (ja) | 回路設計システム、回路設計方法および回路設計プログラムを格納したコンピュータ読取り可能な記録媒体 | |
CN111047498B (zh) | 一种面向gpu硬件拷贝缓冲区算法的tlm微结构 | |
US10162913B2 (en) | Simulation device and simulation method therefor | |
CN109741235A (zh) | 一种基于gpu芯片的主机接口装置及建模方法 | |
CN112560386B (zh) | 一种大规模复杂版图电阻提取加速方法 | |
US7979814B1 (en) | Model implementation on GPU | |
CN111028132B (zh) | 一种基于SystemC的GPU命令处理器单元硬件TLM微结构 | |
US20200285793A1 (en) | Simulation apparatus, description conversion method and simulation method | |
CN111008515B (zh) | 一种面向gpu硬件子纹理替换存储算法的tlm微结构 | |
US8527923B1 (en) | System, method, and computer program product for hierarchical formal hardware verification of floating-point division and/or square root algorithmic designs using automatic sequential equivalence checking | |
CN106547720A (zh) | 一种基于fpga的服务器加速技术 | |
US20200004503A1 (en) | Information processing device, information processing method, and computer readable medium | |
CN112559139B (zh) | 一种基于SystemC的多GPU事务级模型装置及操作方法 |
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 |