CN117707995B - 一种数据预读取的优化装置及操作方法 - Google Patents
一种数据预读取的优化装置及操作方法 Download PDFInfo
- Publication number
- CN117707995B CN117707995B CN202410145958.3A CN202410145958A CN117707995B CN 117707995 B CN117707995 B CN 117707995B CN 202410145958 A CN202410145958 A CN 202410145958A CN 117707995 B CN117707995 B CN 117707995B
- Authority
- CN
- China
- Prior art keywords
- instruction
- sequence table
- execution
- instructions
- instruction execution
- 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
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000005457 optimization Methods 0.000 title abstract description 11
- 238000012790 confirmation Methods 0.000 claims abstract description 33
- 238000004458 analytical method Methods 0.000 claims description 27
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 description 9
- 230000009471 action Effects 0.000 description 6
- 238000013139 quantization Methods 0.000 description 5
- 230000001419 dependent effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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 Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Advance Control (AREA)
Abstract
本发明公开了一种数据预读取的优化装置及操作方法,涉及数据预读取的优化技术领域,包括处理器、存储器和服务器;服务器和处理器电性连接,处理器和存储器电性连接;解决了无法相确定哪些指令之间存在依赖关系,并根据指令之间存在数据依赖关系,对数据的预读取顺序进行确定,使得预读取指令无法处于最佳位置,无法提升数据读取速率的技术问题:通过对循环内各个指令的需求执行次数进行获取并分析获得各个指令对应的指令执行指数,对各个指令与其他指令之间的数据依赖关系和指令控制关系进行分析生成指令执行确认序列表,对各个指令对应数据的预读取顺序进行确定,使得指令的位置处于最佳,优化指令的位置。
Description
技术领域
本发明涉及数据预读取的优化技术领域,具体涉及一种数据预读取的优化装置及操作方法。
背景技术
数据预读取的优化装置采用先进的数据预读取技术,通过分析数据的特征和访问模式,自动预测未来可能需要的数据,并将其提前加载到缓存中。在数据访问时,装置可以根据预测的数据进行快速响应,无需等待磁盘或网络读取,这样可以大大减少数据访问的延迟,提高数据读取的效率和速度。
专利公开号为CN111858400A的专利中公开了一种数据预读取的优化方法和装置,方法包括:在CFD程序运行期间采集CFD程序中各函数的运行特征信息,并分析运行特征信息以确定待优化函数并写入分析日志;针对分析日志中的每个待优化函数,将其预读取调度距离和预读取调度位置作为状态、将其优化结果变化作为动作构建动作价值函数;针对每个动作价值函数,使用强化学习算法以CFD求解器的单步速度作为奖励进行迭代训练,直到动作价值函数收敛;根据对应的状态、动作、和收敛的动作价值函数确定最优的预读取调度距离和预读取调度位置以在缓存中执行数据预读取。
但是,上述方案在程序循环时根据指令对数据进行预读取上,无法确定哪些指令之间存在数据依赖关系,并根据指令之间存在的数据依赖关系,对数据的预读取顺序进行确定,使得预读取指令无法处于最佳位置,无法在进行数据预读取时保证预读取的数据能够在需要时被使用,无法充分利用预读取的数据,提升数据读取速率。
发明内容
本发明的目的在于提供一种数据预读取的优化装置及操作方法,解决了无法相确定哪些指令之间存在依赖关系,并根据指令之间存在数据依赖关系,对数据的预读取顺序进行确定,使得预读取指令无法处于最佳位置,无法提升数据读取速率的技术问题。
本发明的目的可以通过以下技术方案实现:
一种数据预读取的优化装置,包括:
处理器、存储器和服务器;服务器和处理器电性连接,处理器和存储器电性连接,服务器可运行循环内的程序代码,处理器对代码指令进行处理,存储器用于对数据进行存储;
指令执行指数生成模块,设置在服务器内,用于对循环内各个指令的需求执行次数进行获取并分析,根据分析结果获得各个指令对应的指令执行指数,并将其发送至初始指令执行序列表生成模块,各个指令的需求执行次数指的是循环内的各个指令在循环内需要被执行的次数,指令的需求执行次数可以通过采样器进行获取;
初始指令执行序列表生成模块,设置在服务器内,用于根据各个指令对应的指令执行指数生成初始指令执行序列表,将其发送至指令执行确认序列表生成模块;
指令执行确认序列表生成模块,设置在处理器内,用于对各个指令与其他指令之间的数据依赖关系和指令控制关系进行分析,并生成各个指令与其他指令之间对应的判断结果值,通过对各个指令与其他指令之间的判断分析生成指令执行确认序列表,并将指令执行确认序列表发送至执行模块;
数据依赖关系,指的是在循环内部各个指令与其他指令之间存在的数据依赖关系,即后续指令需要使用先前指令的计算结果这一关系;
指令控制关系,指的是在循环内部各个指令与其他指令之间存在的指令控制关系,即后续指令需要通过先前指令进行控制实施这一关系,指令控制关系包括正向控制和反向控制,正向控制关系是指后续指令需要通过先前指令的执行结果来控制是否执行,而反向控制关系是指先前指令的执行需要通过后续指令的执行结果来控制是否执行;
执行模块,设置在服务器内,用于根据指令执行确认序列表各个指令的顺序,对各个指令对应数据的预读取顺序进行确定。
作为本发明进一步的方案,获得各个指令对应的指令执行指数的具体方式为:
将循环内各个指令的需求执行次数分别标记为F1、F2、……、Fi,其中i指代为循环内指令的个数,i≥2;
通过公式,计算获得各个指令对应的指令执行指数Zi。
作为本发明进一步的方案,初始指令执行序列表生成具体方式为:
根据各个指令对应的指令执行指数Zi数值的大小,将各个指令按照从大到小进行排序,进而生成初始指令执行序列表。
作为本发明进一步的方案,生成指令执行确认序列表的具体方式为:
S1:选取初始指令执行序列表中的第一个指令作为第一指定指令;
S2:将第一指定指令与在指令执行序列表中位于第一指定指令之后的其他指令之间的数据依赖关系定义为指令对应的特征值,定义特征值的具体方式为:
对于数据依赖关系特征值的定义为:通过“00”表示第一指定指令与对应指令之间无数据依赖关系,通过“11”表示第一指定指令与对应指令之间有数据依赖关系;
S3:对特征值为“00”的对应指令不做任何处理,将特制值为“11”的对应指令与第一指定指令之间的控制关系进行判断,控制关系具体的判断方式为:
当特制值为“11”的对应指令和第一指定指令为反向控制关系时,将对应指令的特征值“11”乘-1,得到对应指令的判断结果值“-11”;
当特制值为“11”的对应指令和第一指定指令为正向控制关系时,将对应指令的特征值“11”乘+1,得到对应指令的判断结果值“+11”;
S4:根据各个指令的判断结果值的正负性,以及第一指定指令与各个指令在初始指令执行序列表中的位置关系,对各个指令和第一指定指令之间的位置关系进行重新确定,进而得到第一指令执行判断序列表;
S5:将初始指令执行序列表中第二个指令作为第二指定指令,重复步骤S1-S4,将第二指定指令与在指令执行序列表中位于第二指定指令之后的其他指令之间的数据依赖关系和指令控制关系进行分析判断,进而得到第二指令执行判断序列表;
依此类推,对后续其余指令进行逐个分析判定,直至完成对执行序列表中倒数第二个指令的分析判断后即可停止判断分析,并将最后得到的指令执行判断序列表作为指令执行确认序列表。
作为本发明进一步的方案,获得第一指令执行判断序列表的具体方式为:
当指令对应的判断结果值为正数时,如果对应指令在初始指令执行序列表中的位置位于第一指定指令之后,则不需要进行重新排序,如果对应指令在初始指令执行序列表中的位置位于第一指定指令之前,则将对应指令的位置插入至第一指定指令的位置之后;
当指令对应的判断结果值为负数时,如果对应指令在初始指令执行序列表中的位置位于第一指定指令之前,则不需要进行重新排序,如果对应指令在初始指令执行序列表中的位置位于第一指定指令之后,则将对应指令的位置插入至第一指定指令的位置之前,进而得到第一指令执行判断序列。
作为本发明进一步的方案,在步骤S2中对各个指定指令进行分析时,仅对在初始指令执行序列表中位于各个指定指令之后的其他指令与对应指定指令之间的数据依赖关系和控制关系进行分析判断,对在初始指令执行序列表中位于对应指定指令之前的其他指令对应指定指令之间的数据依赖关系和控制关系不再进行分析。
作为本发明进一步的方案,在步骤S4中对各个指令的位置进行重新确定时,均将上一个指令进行分析获得的对应指令执行判断序列表作为对应指定指令与其他各个指令对应之间位置关系分析判定的依据,此处排除第一指定指令进行分析时的情况。
一种数据预读取的优化装置的操作方法,包括以下步骤:
步骤一:对循环内各个指令的需求执行次数进行获取并分析,根据分析结果获得各个指令对应的指令执行指数;
步骤二:根据各个指令对应的指令执行指数生成初始指令执行序列表;
步骤三:对各个指令与其他指令之间的数据依赖关系和指令控制关系进行分析,并生成各个指令与其他指令之间对应的判断结果值,通过对各个指令与其他指令之间的判断分析生成指令执行确认序列表;
步骤四:根据指令执行确认序列表各个指令的顺序,对各个指令对应数据的预读取顺序进行确定。
本发明的有益效果:
本发明,通过对循环内各个指令的需求执行次数进行获取并分析获得各个指令对应的指令执行指数,对各个指令与其他指令之间的数据依赖关系和指令控制关系进行分析,生成指令执行确认序列表,根据指令执行确认序列表中各个指令的顺序,对各个指令对应数据的预读取顺序进行确定,使得指令的位置处于最佳,优化指令的位置,优化程序的性能,在进行数据预读取时保证依赖的数据是可用的,保证预读取的数据能够在需要时被使用,提前将可能会使用的数据从内存中读取到高速缓存中,可以充分利用预读取的数据,以减少数据访问时间,优化程序的性能,提升数据读取速率。
附图说明
下面结合附图对本发明作进一步的说明。
图1是本发明一种数据预读取的优化装置的框架结构示意图;
图2是本发明一种数据预读取的优化装置的操作方法的方法框架结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例一
请参阅图1-图2所示,本发明为一种数据预读取的优化装置包括处理器、存储器和服务器;服务器和处理器电性连接,处理器和存储器电性连接;
服务器用于运行循环内的程序代码,处理器对代码指令进行处理,存储器用于对数据进行存储,循环内指的是指令执行的一个循环体或循环块,其中包含多条指令按照一定的次序执行,属于现有技术,在此不过多赘述;
指令执行指数生成模块,设置在服务器内,用于对循环内各个指令的需求执行次数进行获取并分析,根据分析结果获得各个指令对应的指令执行指数,并将其发送至初始指令执行序列表生成模块,各个指令的需求执行次数指的是循环内的各个指令在循环内需要被执行的次数,指令的需求执行次数可以通过采样器进行获取,各个指令对应的指令执行指数具体的生成步骤为:
将循环内各个指令的需求执行次数分别标记为F1、F2、……、Fi,其中i指代为循环内指令的个数,i≥2;
通过公式,计算获得各个指令对应的指令执行指数Zi;
初始指令执行序列表生成模块,设置在服务器内,用于根据各个指令对应的指令执行指数生成初始指令执行序列表,将其发送至指令执行确认序列表生成模块,初始指令执行序列表生成具体方式为:
根据各个指令对应的指令执行指数Zi数值的大小,将各个指令按照从大到小进行排序,进而生成初始指令执行序列表;
初始指令执行序列表根据指令执行指数Zi对各个指令进行初始排序,使具有较高指令执行指数的指令优先进行数据预读取,以提高数据的访问效率;
指令执行确认序列表生成模块,设置在处理器内,用于对各个指令与其他指令之间的数据依赖关系和指令控制关系进行分析,并生成各个指令与其他指令之间对应的判断结果值,通过对各个指令与其他指令之间的判断分析生成指令执行确认序列表,并将指令执行确认序列表发送至执行模块,生成指令执行确认序列表的具体方式为:
数据依赖关系,指的是在循环内部各个指令与其他指令之间存在的数据依赖关系,即后续指令需要使用先前指令的计算结果这一关系,通过数据依赖关系有助于确定哪些数据需要被预读取,并确保数据在需要时的可用度;
指令控制关系,指的是在循环内部各个指令与其他指令之间存在的指令控制关系,即后续指令需要通过先前指令进行控制实施这一关系,指令控制关系包括正向控制和反向控制,正向控制关系是指后续指令需要通过先前指令的执行结果来控制是否执行,而反向控制关系是指先前指令的执行需要通过后续指令的执行结果来控制是否执行;
需要说明的是,数据依赖关系和指令控制关系是通过指令分析和静态代码分析来获取的,属于现有技术因此不做赘述;
S1:选取初始指令执行序列表中的第一个指令作为第一指定指令;
S2:将第一指定指令与在指令执行序列表中位于第一指定指令之后的其他指令之间的数据依赖关系定义为指令对应的特征值,定义特征值的具体方式为:
对于数据依赖关系特征值的定义为:通过“00”表示第一指定指令与对应指令之间无数据依赖关系,通过“11”表示第一指定指令与对应指令之间有数据依赖关系;
S3:对特征值为“00”的对应指令不做任何处理,将特制值为“11”的对应指令与第一指定指令之间的控制关系进行判断,控制关系具体的判断方式为:
当特制值为“11”的对应指令和第一指定指令为反向控制关系时,将对应指令的特征值“11”乘-1,得到对应指令的判断结果值“-11”;
当特制值为“11”的对应指令和第一指定指令为正向控制关系时,将对应指令的特征值“11”乘+1,得到对应指令的判断结果值“+11”;
S4:根据各个指令的判断结果值的正负性,以及第一指定指令与各个指令在初始指令执行序列表中的位置关系,对各个指令和第一指定指令之间的位置关系进行重新确定,进而得到第一指令执行判断序列表,获得第一指令执行判断序列表的具体方式为:
当指令对应的判断结果值为正数时,如果对应指令在初始指令执行序列表中的位置位于第一指定指令之后,则不需要进行重新排序,如果对应指令在初始指令执行序列表中的位置位于第一指定指令之前,则将对应指令的位置插入至第一指定指令的位置之后;
当指令对应的判断结果值为负数时,如果对应指令在初始指令执行序列表中的位置位于第一指定指令之前,则不需要进行重新排序,如果对应指令在初始指令执行序列表中的位置位于第一指定指令之后,则将对应指令的位置插入至第一指定指令的位置之前,进而得到第一指令执行判断序列表;
S5:将初始指令执行序列表中第二个指令作为第二指定指令,重复步骤S1-S4,将第二指定指令与在指令执行序列表中位于第二指定指令之后的其他指令之间的数据依赖关系和指令控制关系进行分析判断,进而得到第二指令执行判断序列表;
依此类推,对后续其余指令进行逐个分析判定,直至完成对执行序列表中倒数第二个指令的分析判断后即可停止判断分析,并将最后得到的指令执行判断序列表作为指令执行确认序列表;
此处需要注意的是,在步骤S2中对各个指定指令进行分析时,仅对在初始指令执行序列表中位于各个指定指令之后的其他指令与对应指定指令之间的数据依赖关系和控制关系进行分析判断,对在初始指令执行序列表中位于对应指定指令之前的其他指令对应指定指令之间的数据依赖关系和控制关系不再进行分析;
在步骤S4中对各个指令的位置进行重新确定时,均将上一个指令进行分析获得的对应指令执行判断序列表作为对应指定指令与其他各个指令对应之间位置关系分析判定的依据,此处排除第一指定指令进行分析时的情况;
执行模块,设置在服务器内,用于根据指令执行确认序列表各个指令的顺序,对各个指令对应数据的预读取顺序进行确定,便于根据各个指令之间的依赖关系令提前将会使用的数据从内存中预读取到高速缓存中,以减少后续数据访问时间,提升后续数据读取速率;
对以上步骤S1-S5进行举例说明:当初始指令执行序列表中的指令排序为指令1、指令2、指令3、指令4时,优先选取指令1作为第一指定指令,指令2与第一指定指令之间无数据依赖关系生成对应的特征值量化结果为“00”,指令3与第一指定指令之间有数据依赖关系生成对应的特征值量化结果为“11”;指令4与第一指定指令之间有数据依赖关系生成对应的特征值量化结果为“11”;
判定指令3和指令4分别与第一指定指令之间的控制关系:
当指令3与第一指定指令之间为反向控制关系时,则将特征值量化结果“11”乘-1,得到指令3的判断结果值“-11”;当指令4与第一指定指令之间正向控制关系时,则将特征值量化结果“11”乘+1,得到指令4的判断结果值“+11”;
由于指令4的判断结果值为正数且在初始指令执行序列表中的位置位于第一指定指令之后,则不需要进行重新排序;
由于指令3的判断结果值为负数的,且在初始指令执行序列表中的位置位于第一指定指令之后,则将指令3的位置插入至第一指定指令之前的位置上,最后得到的第一指令执行判断序列表为:指令3、指令1、指令2、指令4;
然后接下来根据初始指令执行序列表中的顺序,将指令2作为第二指定指令,将第二指定指令与指令3和指令4之间的依赖关系和控制关系进行判断,得到指令3的判断结果值“-11”,指令4的判断结果值“+11”;
由于指令4的判断结果值为正数且在第一指令执行判断序列表中的位置位于第二指定指令之后,则不需要进行重新排序;
由于指令3的判断结果值为负数的,在第一指令执行判断序列表中的位置位于第二指定指令之前,则不需要进行重新排序,最后得到第二指令执行判断序列表为:指令3、指令1、指令2、指令4;
然后接下来根据初始指令执行序列表中的顺序,将指令3作为第三指定指令,将第三指定指令与指令4之间的依赖关系和控制关系进行判断,得到指令4的判断结果值“+11”;
由于指令4的判断结果值为正数且在第二指令执行判断序列表中的位置位于第二指定指令之后,则不需要进行重新排序,最后得到第三指令执行判断序列表为:指令3、指令1、指令2、指令4,进而将第三指令执行判断序列表导出标记为指令执行确认序列表;
一种数据预读取的优化装置的操作方法,包括以下步骤:
步骤一:对循环内各个指令的需求执行次数进行获取并分析,根据分析结果获得各个指令对应的指令执行指数;
步骤二:根据各个指令对应的指令执行指数生成初始指令执行序列表;
步骤三:对各个指令与其他指令之间的数据依赖关系和指令控制关系进行分析,并生成各个指令与其他指令之间对应的判断结果值,通过对各个指令与其他指令之间的判断分析生成指令执行确认序列表;
步骤四:根据指令执行确认序列表各个指令的顺序,对各个指令对应数据的预读取顺序进行确定。
实施例二
作为本发明的实施例二,本申请在具体实施时,相较于实施例一,本实施例的技术方案与实施例一的区别仅在于本实施例中将内存区域内每个数据在循环内部的被读写次数和被写入次数进行量化分析,计算获得各个数据的预读取指数,根据各个数据的预读取指数,对内存区域内的优先读取数据进行判定,对内存区域内的优先读取数据进行判定的具体方式为:
内存区域设置在存储器内,用于对数据进行存储;
将每个数据在内存区域内的被读取次数和被写入次数分别标记为Di和Xi,其中i指代为循环内指令的个数,i≥1;
需要注意的是,获取每个数据在内存区域内的被读取次数和被写入次数时,对应的时间段为从获取数据当下起算,往前推15天这一时间段,获取数据的当下数据不计入在内;
每个数据的被读取次数、被写入次数均可以通过计数器或者采样器来进行记录;
通过公式Di×β1+Xi×β2=Qi,计算获得各个数据的预读取指数Qi,将各个数据按照对应的读取指数的数值从大到小进行排序,将预读取指数最大值对应的数据标记为优先读取数据,其中β1和β2均为固定系数,具体数值均由相关人员根据经验进行拟定;
当同时接收到多个预读取指令时,首先对优先读取数据对应的预读取指令进行执行判定,使得其可以在循环内部进行数据的预读取和优化操作,以提高程序的执行效率;
通过对各个数据的被读取次数和被写入次数的分析,对内存区域内的数据进行排序和标记,将预读取指数最大值对应的数据标记为优先读取数据,以实现对优先读取数据进行优先读取的目的,从而提高程序的执行效率。
实施例三
作为本发明的实施例三,本申请在具体实施时,相较于实施例一和实施例二,本实施例的技术方案是在于将施例一和实施例二进行结合实施。
本发明的工作原理:通过对循环内各个指令的需求执行次数进行获取并分析获得各个指令对应的指令执行指数,根据各个指令对应的指令执行指数生成初始指令执行序列表,对各个指令与其他指令之间的数据依赖关系和指令控制关系进行分析,并生成各个指令与其他指令之间对应的判断结果值,通过对各个指令与其他指令之间的判断分析生成指令执行确认序列表,根据指令执行确认序列表中各个指令的顺序,对各个指令对应数据的预读取顺序进行确定,使得指令的位置处于最佳,优化指令的位置,优化程序的性能,在进行数据预读取时保证依赖的数据是可用的,保证预读取的数据能够在需要时被使用,提前将可能会使用的数据从内存中读取到高速缓存中。
上述公式均是去量纲取其数值计算,公式是由采集大量数据进行软件模拟得到最近真实情况的一个公式,公式中的预设参数以及阈值选取由本领域的技术人员根据实际情况进行设置。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (5)
1.一种数据预读取的优化装置,其特征在于,包括:
处理器、存储器和服务器;服务器和处理器电性连接,处理器和存储器电性连接,服务器可运行循环内的程序代码,处理器对代码指令进行处理,存储器用于对数据进行存储;
指令执行指数生成模块,设置在服务器内,用于对循环内各个指令的需求执行次数进行获取并分析,根据分析结果获得各个指令对应的指令执行指数,并将其发送至初始指令执行序列表生成模块,各个指令的需求执行次数指的是循环内的各个指令在循环内需要被执行的次数,指令的需求执行次数可以通过采样器进行获取;
初始指令执行序列表生成模块,设置在服务器内,用于根据各个指令对应的指令执行指数生成初始指令执行序列表,将其发送至指令执行确认序列表生成模块;
指令执行确认序列表生成模块,设置在处理器内,用于对各个指令与其他指令之间的数据依赖关系和指令控制关系进行分析,并生成各个指令与其他指令之间对应的判断结果值,通过对各个指令与其他指令之间的判断分析生成指令执行确认序列表,并将指令执行确认序列表发送至执行模块;
数据依赖关系,指的是在循环内部各个指令与其他指令之间存在的数据依赖关系,即后续指令需要使用先前指令的计算结果这一关系;
指令控制关系,指的是在循环内部各个指令与其他指令之间存在的指令控制关系,即后续指令需要通过先前指令进行控制实施这一关系,指令控制关系包括正向控制和反向控制;
执行模块,设置在服务器内,用于根据指令执行确认序列表各个指令的顺序,对各个指令对应数据的预读取顺序进行确定;
获得各个指令对应的指令执行指数的具体方式为:
将循环内各个指令的需求执行次数别标记为F1、F2、……、Fi,其中i指代为循环内指令的个数,i≥2;
通过公式,计算获得各个指令对应的指令执行指数Zi;
初始指令执行序列表生成具体方式为:
根据各个指令对应的指令执行指数Zi数值的大小,将各个指令按照从大到小进行排序,进而生成初始指令执行序列表;
生成指令执行确认序列表的具体方式为:
S1:选取初始指令执行序列表中的第一个指令作为第一指定指令;
S2:将第一指定指令与在指令执行序列表中位于第一指定指令之后的其他指令之间的数据依赖关系定义为指令对应的特征值,定义特征值的具体方式为:
对于数据依赖关系特征值的定义为:通过“00”表示第一指定指令与对应指令之间无数据依赖关系,通过“11”表示第一指定指令与对应指令之间有数据依赖关系;
S3:对特征值为“00”的对应指令不做任何处理,将特制值为“11”的对应指令与第一指定指令之间的控制关系进行判断,控制关系具体的判断方式为:
当特制值为“11”的对应指令和第一指定指令为反向控制关系时,将对应指令的特征值“11”乘-1,得到对应指令的判断结果值“-11”;
当特制值为“11”的对应指令和第一指定指令为正向控制关系时,将对应指令的特征值“11”乘+1,得到对应指令的判断结果值“+11”;
S4:根据各个指令的判断结果值的正负性,以及第一指定指令与各个指令在初始指令执行序列表中的位置关系,对各个指令和第一指定指令之间的位置关系进行重新确定,进而得到第一指令执行判断序列表;
S5:将初始指令执行序列表中第二个指令作为第二指定指令,重复步骤S1-S4,将第二指定指令与在指令执行序列表中位于第二指定指令之后的其他指令之间的数据依赖关系和指令控制关系进行分析判断,进而得到第二指令执行判断序列表;
依此类推,对后续其余指令进行逐个分析判定,直至完成对执行序列表中倒数第二个指令的分析判断后即可停止判断分析,并将最后得到的指令执行判断序列表作为指令执行确认序列表。
2.根据权利要求1所述的一种数据预读取的优化装置,其特征在于,获得第一指令执行判断序列表的具体方式为:
当指令对应的判断结果值为正数时,如果对应指令在初始指令执行序列表中的位置位于第一指定指令之后,则不需要进行重新排序,如果对应指令在初始指令执行序列表中的位置位于第一指定指令之前,则将对应指令的位置插入至第一指定指令的位置之后;
当指令对应的判断结果值为负数时,如果对应指令在初始指令执行序列表中的位置位于第一指定指令之前,则不需要进行重新排序,如果对应指令在初始指令执行序列表中的位置位于第一指定指令之后,则将对应指令的位置插入至第一指定指令的位置之前,进而得到第一指令执行判断序列。
3.根据权利要求2所述的一种数据预读取的优化装置,其特征在于,在步骤S2中对各个指定指令进行分析时,仅对在初始指令执行序列表中位于各个指定指令之后的其他指令与对应指定指令之间的数据依赖关系和控制关系进行分析判断,对在初始指令执行序列表中位于对应指定指令之前的其他指令对应指定指令之间的数据依赖关系和控制关系不再进行分析。
4.根据权利要求3所述的一种数据预读取的优化装置,其特征在于,在步骤S4中对各个指令的位置进行重新确定时,均将上一个指令进行分析获得的对应指令执行判断序列表作为对应指定指令与其他各个指令对应之间位置关系分析判定的依据,此处排除第一指定指令进行分析时的情况。
5.一种根据权利要求1-4中任一项所述的数据预读取的优化装置的操作方法,其特征在于:包括以下步骤:
步骤一:对循环内各个指令的需求执行次数进行获取并分析,根据分析结果获得各个指令对应的指令执行指数;
步骤二:根据各个指令对应的指令执行指数生成初始指令执行序列表;
步骤三:对各个指令与其他指令之间的数据依赖关系和指令控制关系进行分析,并生成各个指令与其他指令之间对应的判断结果值,通过对各个指令与其他指令之间的判断分析生成指令执行确认序列表;
步骤四:根据指令执行确认序列表各个指令的顺序,对各个指令对应数据的预读取顺序进行确定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410145958.3A CN117707995B (zh) | 2024-02-02 | 2024-02-02 | 一种数据预读取的优化装置及操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410145958.3A CN117707995B (zh) | 2024-02-02 | 2024-02-02 | 一种数据预读取的优化装置及操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117707995A CN117707995A (zh) | 2024-03-15 |
CN117707995B true CN117707995B (zh) | 2024-04-26 |
Family
ID=90153768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410145958.3A Active CN117707995B (zh) | 2024-02-02 | 2024-02-02 | 一种数据预读取的优化装置及操作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117707995B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5704053A (en) * | 1995-05-18 | 1997-12-30 | Hewlett-Packard Company | Efficient explicit data prefetching analysis and code generation in a low-level optimizer for inserting prefetch instructions into loops of applications |
US6981129B1 (en) * | 2000-11-02 | 2005-12-27 | Intel Corporation | Breaking replay dependency loops in a processor using a rescheduled replay queue |
CN108027767A (zh) * | 2015-09-19 | 2018-05-11 | 微软技术许可有限责任公司 | 寄存器读取/写入排序 |
CN111796869A (zh) * | 2020-09-07 | 2020-10-20 | 华夏芯(北京)通用处理器技术有限公司 | 程序指令块处理方法及装置 |
CN117348935A (zh) * | 2023-10-11 | 2024-01-05 | 腾讯科技(深圳)有限公司 | 指令处理方法、装置、计算机设备和存储介质 |
-
2024
- 2024-02-02 CN CN202410145958.3A patent/CN117707995B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5704053A (en) * | 1995-05-18 | 1997-12-30 | Hewlett-Packard Company | Efficient explicit data prefetching analysis and code generation in a low-level optimizer for inserting prefetch instructions into loops of applications |
US6981129B1 (en) * | 2000-11-02 | 2005-12-27 | Intel Corporation | Breaking replay dependency loops in a processor using a rescheduled replay queue |
CN108027767A (zh) * | 2015-09-19 | 2018-05-11 | 微软技术许可有限责任公司 | 寄存器读取/写入排序 |
CN111796869A (zh) * | 2020-09-07 | 2020-10-20 | 华夏芯(北京)通用处理器技术有限公司 | 程序指令块处理方法及装置 |
CN117348935A (zh) * | 2023-10-11 | 2024-01-05 | 腾讯科技(深圳)有限公司 | 指令处理方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117707995A (zh) | 2024-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109242105B (zh) | 代码优化方法、装置、设备及介质 | |
JP2024023651A5 (ja) | 機械学習のための計算機システム及びコンピュータプログラム | |
CN108595815B (zh) | 人工智能体训练系统及无源电路优化设计系统及方法 | |
CN110704336A (zh) | 一种数据缓存方法及装置 | |
CN117195568B (zh) | 一种基于离散事件的仿真引擎性能分析方法及装置 | |
US20230394330A1 (en) | A method and system for designing ai modeling processes based on graph algorithms | |
CN117707995B (zh) | 一种数据预读取的优化装置及操作方法 | |
CN112200310B (zh) | 智能处理器、数据处理方法及存储介质 | |
CN112699046A (zh) | 应用程序测试方法及装置、电子设备和存储介质 | |
CN110888909B (zh) | 一种评估内容的数据统计处理方法及装置 | |
CN110298742B (zh) | 数据处理方法和装置 | |
CN115222123A (zh) | 客户数量预测方法、装置、设备、介质和程序产品 | |
CN119166948B (zh) | 一种众核环境下自适应的dw类型算子数据分布方法和装置 | |
CN118195707B (zh) | 用户行为分析方法、系统、装置及计算机可读存储介质 | |
CN115098408B (zh) | 一种数据预存取方法及装置 | |
CN116185940B (zh) | 一种原子计数器的操作方法、装置、设备及存储介质 | |
CN118331713B (zh) | 一种微控制器低功耗模式进入方法和系统 | |
CN118245227B (zh) | 一种基于时间窗内决策树的计算集群任务调度与负载均衡方法 | |
CN118860693B (zh) | 人工智能算子中的广播运算方法、装置、设备及介质 | |
CN118036697B (zh) | 模型数据处理方法、设备和存储介质 | |
CN118282894B (zh) | 网络性能评估方法及装置 | |
CN119148993A (zh) | 基于问题导向的代码优化方法及系统、电子设备 | |
CN119670759A (zh) | 信息处理方法、装置、产品和设备 | |
CN120162602A (zh) | 注意力数据的处理方法、设备、介质及程序产品 | |
CN117992325A (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 |