CN115953286A - 一种图形处理器预取单元及指令与顶点的预取方法 - Google Patents
一种图形处理器预取单元及指令与顶点的预取方法 Download PDFInfo
- Publication number
- CN115953286A CN115953286A CN202211522426.4A CN202211522426A CN115953286A CN 115953286 A CN115953286 A CN 115953286A CN 202211522426 A CN202211522426 A CN 202211522426A CN 115953286 A CN115953286 A CN 115953286A
- Authority
- CN
- China
- Prior art keywords
- data
- vertex
- cache
- instruction
- level
- 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
Links
Images
Classifications
-
- 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
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明适用于图形处理技术领域,提供一种图形处理器预取单元及指令与顶点预取方法,所述图形处理器预取单元包括外存接口模块、状态机控制模块、一级缓存模块、二级缓存模块和输出模块。通过将图形处理器预取的指令、顶点和索引进行状态机控制和两级缓存,将指令、顶点和索引三类数据分时进行传输,由于指令和顶点的传输长度不同以及顶点的重复使用,在两段传输段之间通过比对指令和顶点的指针,仲裁下一段读写的数据类型,实现了根据不同类型数据的预取和输出状态动态调整指令和顶点的传输先后顺序,减少了缓存中由于出现指令、顶点、索引的数据空或者满状态的情况和等待时间,优化了数据传输效率,提高了图形处理器预取数据带宽。
Description
技术领域
本发明属于图形处理技术领域,尤其涉及一种图形处理器预取单元及指令与顶点的预取方法。
背景技术
在图形处理器中,指令和顶点是图形处理的前端数据入口,指令是着色语言程序通过图形编译器编译后生成的,顶点是组成图元的基本单元,顶点在着色器中进行空间变换和光照后送入到图元装配、图元处理组装成图元,图元进行光栅化之后生成片段,片段像素数量远远大于顶点数量。顶点和片段像素数据主要包含空间坐标、颜色值、纹理坐标、法向向量等,每个属性最多包含四个分量,每个分量可能是一个单精度浮点类型。指令和顶点数据在图形处理前存储在外存中。
在图形管线中,片段像素的带宽需求大于指令和顶点的带宽需求。在同一个图形处理器中,指令、顶点和片段像素的传输速率应该尽量匹配,一方面避免硬件资源浪费,另一方面保证图形处理性能。
图形管线中,对外存中相关联的指令、顶点、索引的原始数据依次进行小段传输的方法,缓存中依次轮流写入一段指令、顶点、索引,然后依次读取到着色器。当缓存中的指令、顶点、索引的数据处于空或者满状态时会导致读或写数据的等待,传输效率不高。
发明内容
鉴于上述问题,本发明的目的在于提供一种图形处理器预取单元及指令与顶点的预取方法,旨在解决现有图形处理器的数据传输效率不高的技术问题。
一方面,所述图形处理器预取单元包括:
外存接口模块,用于将状态机控制模块在缓存写地址状态时计算出来的外存读地址和传输长度发送给外存的控制器,并将外存返回的数据传输到一级缓存模块;
状态机控制模块,具有读状态机和写状态机,分别用于控制缓存的读状态和写状态;
一级缓存模块,用于将外存接口模块通过状态机控制模块传输过来的指令、顶点、索引数据分区存储,并读出到二级缓存模块或输出模块;
二级缓存模块,包括二级顶点缓存和二级索引缓存,用于当状态机控制模块仲裁选择从一级缓存模块读出顶点、索引数据时,首先写入索引,然后对重复的索引序号进行标记,在写入顶点时跳过重复顶点属性数据;
输出模块,用于将从一级缓存模块和二级缓存模块读取的指令、索引及顶点数据进行格式拆分整合后输出给统一渲染架构着色器。
另一方面,图形处理器中的指令与顶点预取方法,包括一级缓存写入数据和一级缓存读出数据;
S11、当状态机控制模块在接收到图形处理启动工作命令后,缓存写状态机从空闲状态跳转到仲裁状态;
S12、仲裁状态下,当一级缓存数据未满时,缓存写状态机主动发起外存读取请求,从配置好的外存地址读取一笔数据;
S13、缓存写状态机对数据段的头数据进行配置特征位解析;
S14、如果配置特征位为配置,则进入配置状态,配置外存指令、顶点、索引的地址和传输长度;
S15、如果配置特征位为不配置,则按照外存指令、顶点、索引的地址和传输长度的寄存器当前值跳转到地址状态;
S16、在地址状态下,缓存写状态机在得到外存接口模块的应答信号后进入数据状态,每当接收到一笔外存的数据,将数据写入一级缓存对应区域,计数值从传输长度减1,直至计数值为0结束本次缓存写操作,同时将外存地址修改为外存地址加上传输长度;
所述一级缓存读出数据的具体过程如下:
S21、当一级缓存不为空时,缓存读状态机从空闲状态跳转到仲裁状态;
S22、仲裁状态下,查询一级缓存中指令和顶点对应的指针并进行大小比较;
S23、若指令指针小于顶点指针时,仲裁选择指令数据,在输出模块接收准备好时,直接从一级缓存读出指令数据传给输出模块,当指令计数值减少到0时,重新进行仲裁选择;
S24、若顶点指针大于或等于指令指针时,仲裁选择顶点数据,将待读出顶点数据对应的索引从一级缓存读出写入到二级索引缓存中,当索引计数值减少到0时,开始从一级缓存读出未命中序号的顶点数据写入到二级顶点缓存直到顶点计数值减少到0时,重新进行仲裁选择;
S25、当二级顶点缓存和二级索引缓存数据满时,在输出模块接收准备好时,从二级缓存读出数据传给输出模块。
本发明的有益效果是:本发明提供的图形处理器预取单元,通过将图形处理器预取的指令、顶点和索引进行状态机控制和两级缓存,将指令、顶点和索引三类数据分时进行传输,由于指令和顶点的传输长度不同以及顶点的重复使用,在两段传输段之间通过比对指令和顶点的指针,仲裁下一段读写的数据类型,实现了根据不同类型数据的预取和输出状态动态调整指令和顶点的传输先后顺序,减少了缓存中由于出现指令、顶点、索引的数据空或者满状态的情况和等待时间,优化了数据传输效率,提高了图形处理器预取数据带宽。
附图说明
图1是本发明实施例提供的图形处理器预取单元的结构图;
图2是本发明实施例提供的预取单元一级缓存写数据流程图;
图3是本发明实施例提供的预取单元一级缓存读数据流程图;
图4是本发明实施例提供的缓存数据分布图;
图5是本发明实施例提供的传输数据示例图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
图1示出了本发明实施例提供的图形处理器预取单元的结构,为了便于说明仅示出了与本发明实施例相关的部分。
如图1所示,本实施例提供的图形处理器预取单元包括:
外存接口模块,用于将状态机控制模块在缓存写地址状态时计算出来的外存读地址和传输长度发送给外存的控制器,并将外存返回的数据传输到一级缓存模块;
状态机控制模块,具有读状态机和写状态机,分别用于控制缓存的读状态和写状态,其中缓存读状态包含空闲、仲裁、命中判断、地址、数据的子状态,缓存写状态空闲、仲裁、配置、地址、数据的子状态;
一级缓存模块,用于将外存接口模块通过状态机控制模块传输过来的指令、顶点、索引数据分区存储,并读出到二级缓存模块或输出模块;
二级缓存模块,包括二级顶点缓存和二级索引缓存,用于当状态机控制模块仲裁选择从一级缓存模块读出顶点、索引数据时,首先写入索引,然后对重复的索引序号进行标记,在写入顶点时跳过重复顶点属性数据;
输出模块,用于将从一级缓存模块和二级缓存模块读取的指令、索引及顶点数据进行格式拆分整合后输出给统一渲染架构着色器。
本实施例图形处理器预取单元通过设置状态机控制模块分别进行缓存的读写控制,且设计了两级缓存,将指令、顶点和索引三类数据分时进行传输。对于图形处理器预取单元的指令与顶点预取包括一级缓存写入数据和一级缓存读出数据两个过程。
结合图2所示,一级缓存写入数据具体包括下述步骤:
S11、当状态机控制模块在接收到图形处理启动工作命令后,缓存写状态机从空闲状态跳转到仲裁状态。
S12、仲裁状态下,当一级缓存数据未满时,缓存写状态机主动发起外存读取请求,从配置好的外存地址读取一笔数据;
S13、缓存写状态机对数据段的头数据进行配置特征位解析;
S14、如果配置特征位为配置,则进入配置状态,配置外存指令、顶点、索引的地址和传输长度;
S15、如果配置特征位为不配置,则按照外存指令、顶点、索引的地址和传输长度的寄存器当前值跳转到地址状态;
S16、在地址状态下,缓存写状态机在得到外存接口模块的应答信号后进入数据状态,每当接收到一笔外存的数据,将数据写入一级缓存对应区域,计数值从传输长度减1,直至计数值为0结束本次缓存写操作,同时将外存地址修改为外存地址加上传输长度。
本实施例中,缓存写操作时,当一级缓存中指令或者顶点完成一段数据传输时,写状态机跳转到一级缓存读写指针较小的数据类型进行下一段数据传输,从外存读取数据写入一级缓存。
结合图3所示,一级缓存读出数据的具体过程如下:
S21、当一级缓存不为空时,缓存读状态机从空闲状态跳转到仲裁状态;
S22、仲裁状态下,查询一级缓存中指令和顶点对应的指针并进行大小比较;
S23、若指令指针小于顶点指针时,仲裁选择指令数据,在输出模块接收准备好时,直接从一级缓存读出指令数据传给输出模块,当指令计数值减少到0时,重新进行仲裁选择;
S24、若顶点指针大于或等于指令指针时,仲裁选择顶点数据,将待读出顶点数据对应的索引从一级缓存读出写入到二级索引缓存中,当索引计数值减少到0时,开始从一级缓存读出未命中序号的顶点数据写入到二级顶点缓存直到顶点计数值减少到0时,重新进行仲裁选择;
S25、当二级顶点缓存和二级索引缓存数据满时,在输出模块接收准备好时,从二级缓存读出数据传给输出模块。
上述步骤S22是将指令指针和顶点指针大小比较。在指令和顶点写入和读出一级缓存时,指针分别增加和减小1,选择指针值大的数据类型发起读缓存请求,指针值相同时按照默认的顶点、指令优先级顺序。
步骤S23、S24分是根据指针值大小冲裁选择相应的数量类型。仲裁选择指令数据时,输出模块接收准备好时,直接从一级缓存读出传给输出模块。当仲裁选择顶点数据时,先将索引从一级缓存读出写入到二级索引缓存中,然后一级缓存读出的未命中序号的顶点数据写入到二级顶点缓存,具体过程根据索引计数值和顶点计数值执行。
索引计数值和顶点计数值均根据二级缓存大小配置,当进行二级索引缓存写入时计数值减少1,当进行二级顶点缓存写入时计数值减少1,当顶点序号命中时,一级缓存读地址跳过该顶点,计数值也要减少1。缓存读状态当顶点从一级缓存读出时,如果顶点序号命中,一级缓存读地址跳过该顶点,对应的一级缓存仲裁的顶点指针也要进行自减1。缓存读状态当二级顶点缓存和二级索引缓存数据满时,在输出模块接收准备好时,从二级缓存读出数据传给输出模块。
如图4所示,一级缓存在渲染启动前配置成指令、索引、顶点三块分区,读写一级缓存数据时根据传输数据类型分别在对应基地址上计算偏移地址即可访问。二级缓存只包含索引和顶点,不包含指令。一级缓存写数据流启动传输时根据外存中的原始数据量进行排序,由于顶点传输过程中重复顶点跳过多个地址,一个顶点最多4个属性数据量,索引的数据量较小,一级缓存中顶点及索引的读出速度提高,在一段数据传输完成读写状态机跳转时根据一级缓存的指令和顶点读写标记值动态选择下一段一级缓存的读写数据类型。
图5示出了一种传输数据示例,按照指令、索引、顶点的顺序每次写入一定量数据流,循环写入一级缓存。在一级缓存读数据流时,根据指针大小,按照指令、索引、顶点、索引、顶点、索引、顶点、指令的顺序读取数据流。
在图形流水线前端,图形指令、顶点属性、索引分别存放在外存中不同区域,图形处理器访问外存和着色器核的频率不同且分别存在不同延时和带宽限制,因此需要缓存来进行异步对接。常见方案是外存中相关联的指令、顶点、索引的原始数据依次进行小段传输的方法,缓存中依次轮流写入一段指令、顶点、索引,然后依次读取到着色器。当缓存中的指令、顶点、索引的数据处于空或者满状态时会导致读或写数据的等待,传输效率不高。本发明通过两级缓存的方法对索引进行比对同时标记顶点序号,快速剔除重复顶点属性数据的传输,同时通过读写过程中比对指令和顶点的指针仲裁下一段读写的数据类型,减少了缓存中由于出现指令、顶点、索引的数据空或者满状态的情况和等待时间,提高了数据传输效率。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种图形处理器预取单元,其特征在于,所述图形处理器预取单元包括:
外存接口模块,用于将状态机控制模块在缓存写地址状态时计算出来的外存读地址和传输长度发送给外存的控制器,并将外存返回的数据传输到一级缓存模块;
状态机控制模块,具有读状态机和写状态机,分别用于控制缓存的读状态和写状态;
一级缓存模块,用于将外存接口模块通过状态机控制模块传输过来的指令、顶点、索引数据分区存储,并读出到二级缓存模块或输出模块;
二级缓存模块,包括二级顶点缓存和二级索引缓存,用于当状态机控制模块仲裁选择从一级缓存模块读出顶点、索引数据时,首先写入索引,然后对重复的索引序号进行标记,在写入顶点时跳过重复顶点属性数据;
输出模块,用于将从一级缓存模块和二级缓存模块读取的指令、索引及顶点数据进行格式拆分整合后输出给统一渲染架构着色器。
2.一种图形处理器中的指令与顶点预取方法,其特征在于,所述预取方法包括一级缓存写入数据和一级缓存读出数据;
所述一级缓存写入数据具体包括下述步骤:
S11、当状态机控制模块在接收到图形处理启动工作命令后,缓存写状态机从空闲状态跳转到仲裁状态;
S12、仲裁状态下,当一级缓存数据未满时,缓存写状态机主动发起外存读取请求,从配置好的外存地址读取一笔数据;
S13、缓存写状态机对数据段的头数据进行配置特征位解析;
S14、如果配置特征位为配置,则进入配置状态,配置外存指令、顶点、索引的地址和传输长度;
S15、如果配置特征位为不配置,则按照外存指令、顶点、索引的地址和传输长度的寄存器当前值跳转到地址状态;
S16、在地址状态下,缓存写状态机在得到外存接口模块的应答信号后进入数据状态,每当接收到一笔外存的数据,将数据写入一级缓存对应区域,计数值从传输长度减1,直至计数值为0结束本次缓存写操作,同时将外存地址修改为外存地址加上传输长度;
所述一级缓存读出数据的具体过程如下:
S21、当一级缓存不为空时,缓存读状态机从空闲状态跳转到仲裁状态;
S22、仲裁状态下,查询一级缓存中指令和顶点对应的指针并进行大小比较;
S23、若指令指针小于顶点指针时,仲裁选择指令数据,在输出模块接收准备好时,直接从一级缓存读出指令数据传给输出模块,当指令计数值减少到0时,重新进行仲裁选择;
S24、若顶点指针大于或等于指令指针时,仲裁选择顶点数据,将待读出顶点数据对应的索引从一级缓存读出写入到二级索引缓存中,当索引计数值减少到0时,开始从一级缓存读出未命中序号的顶点数据写入到二级顶点缓存直到顶点计数值减少到0时,重新进行仲裁选择;
S25、当二级顶点缓存和二级索引缓存数据满时,在输出模块接收准备好时,从二级缓存读出数据传给输出模块。
3.如权利要求2所述图形处理器中的指令与顶点预取方法,其特征在于,步骤S17中,缓存写操作时,当一级缓存中指令或者顶点完成一段数据传输时,写状态机跳转到一级缓存读写指针小的数据类型进行下一段数据传输,从外存读取数据写入一级缓存。
4.如权利要求3所述图形处理器中的指令与顶点预取方法,其特征在于,指令和顶点写入一级缓存时指针增加1,读出时指针减小1,选择指针值大的数据类型发起读缓存请求,指针值相同时按照默认优先级顺序。
5.如权利要求4所述图形处理器中的指令与顶点预取方法,其特征在于,索引计数值和顶点计数值均根据二级缓存大小配置,当进行二级索引缓存写入时索引计数值减少1,当进行二级顶点缓存写入时顶点计数值减少1,如果顶点序号命中,一级缓存读地址跳过该顶点,顶点计数值也要减少1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211522426.4A CN115953286A (zh) | 2022-11-30 | 2022-11-30 | 一种图形处理器预取单元及指令与顶点的预取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211522426.4A CN115953286A (zh) | 2022-11-30 | 2022-11-30 | 一种图形处理器预取单元及指令与顶点的预取方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115953286A true CN115953286A (zh) | 2023-04-11 |
Family
ID=87288151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211522426.4A Pending CN115953286A (zh) | 2022-11-30 | 2022-11-30 | 一种图形处理器预取单元及指令与顶点的预取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115953286A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116308999A (zh) * | 2023-05-18 | 2023-06-23 | 南京砺算科技有限公司 | 图形处理器的数据处理方法及图形处理器、存储介质 |
CN116993574A (zh) * | 2023-09-25 | 2023-11-03 | 苏州元脑智能科技有限公司 | 一种图形处理器架构、数据处理方法、设备和存储介质 |
-
2022
- 2022-11-30 CN CN202211522426.4A patent/CN115953286A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116308999A (zh) * | 2023-05-18 | 2023-06-23 | 南京砺算科技有限公司 | 图形处理器的数据处理方法及图形处理器、存储介质 |
CN116308999B (zh) * | 2023-05-18 | 2023-08-08 | 南京砺算科技有限公司 | 图形处理器的数据处理方法及图形处理器、存储介质 |
CN116993574A (zh) * | 2023-09-25 | 2023-11-03 | 苏州元脑智能科技有限公司 | 一种图形处理器架构、数据处理方法、设备和存储介质 |
CN116993574B (zh) * | 2023-09-25 | 2024-01-26 | 苏州元脑智能科技有限公司 | 一种图形处理器架构、数据处理方法、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115953286A (zh) | 一种图形处理器预取单元及指令与顶点的预取方法 | |
US7533237B1 (en) | Off-chip memory allocation for a unified shader | |
JP3096431B2 (ja) | コンピュータシステム、グラフィックスプロセッサ、インストラクションプリフェッチユニットおよびオペコードインストラクションをプリフェッチする方法 | |
US7533236B1 (en) | Off-chip out of order memory allocation for a unified shader | |
CN108595350B (zh) | 一种基于axi的数据传输方法和装置 | |
US6578065B1 (en) | Multi-threaded processing system and method for scheduling the execution of threads based on data received from a cache memory | |
US6418489B1 (en) | Direct memory access controller and method therefor | |
US20040199732A1 (en) | System and method for processing high priority data elements | |
US7808507B1 (en) | Compression tag state interlock | |
WO2005086096A2 (en) | Embedded system with 3d graphics core and local pixel buffer | |
JP3729545B2 (ja) | キャッシュメモリへのアクセス | |
US20080036764A1 (en) | Method and apparatus for processing computer graphics data | |
US7769954B2 (en) | Data processing system and method for processing data | |
CN115640052A (zh) | 用于图形处理器中多核多流水线并行执行优化方法 | |
US20220365892A1 (en) | Accelerating Method of Executing Comparison Functions and Accelerating System of Executing Comparison Functions | |
US20090235026A1 (en) | Data transfer control device and data transfer control method | |
JP4210024B2 (ja) | 記憶装置を動作する方法および記憶装置 | |
US5761718A (en) | Conditional data pre-fetching in a device controller | |
US6563505B1 (en) | Method and apparatus for executing commands in a graphics controller chip | |
KR100840011B1 (ko) | 3차원 그래픽 연산을 위한 캐쉬 메모리 장치 및 3차원그래픽 연산 처리 방법 | |
US6789140B2 (en) | Data processor and data transfer method | |
JP2006251923A (ja) | 先読み制御方法 | |
KR20100048597A (ko) | 프로세서 및 메모리 제어 방법 | |
US5765212A (en) | Memory control circuit that selectively performs address translation based on the value of a road start address | |
CN107807888B (zh) | 一种用于soc架构的数据预取系统及其方法 |
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 |