CN116185497A - 命令解析方法、装置、计算机设备和存储介质 - Google Patents
命令解析方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN116185497A CN116185497A CN202310016022.6A CN202310016022A CN116185497A CN 116185497 A CN116185497 A CN 116185497A CN 202310016022 A CN202310016022 A CN 202310016022A CN 116185497 A CN116185497 A CN 116185497A
- Authority
- CN
- China
- Prior art keywords
- command
- cache
- analyzed
- parsed
- commands
- 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.)
- Granted
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 24
- 238000000034 method Methods 0.000 claims abstract description 53
- 238000004590 computer program Methods 0.000 claims abstract description 19
- 239000000872 buffer Substances 0.000 claims description 82
- 230000015654 memory Effects 0.000 claims description 81
- 230000008569 process Effects 0.000 claims description 17
- 230000000875 corresponding effect Effects 0.000 description 67
- 238000013500 data storage Methods 0.000 description 25
- 239000012536 storage buffer Substances 0.000 description 19
- 239000000284 extract Substances 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000009877 rendering Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- 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/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/37—Compiler construction; Parser generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
-
- 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)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请涉及数据处理技术领域,涉及一种命令解析方法、装置、计算机设备、存储介质和计算机程序产品。命令解析方法包括:确定缓存的状态;若缓存为非空状态,则采用解析器中包含的至少一个预解析器,从缓存中读取待解析命令包,并对待解析命令包进行处理;以及采用解析器中包含的至少一个主解析器,从缓存中读取已经预解析器处理过的候选命令包,并对候选命令包进行解析处理。采用本方法能够实现同一待解析命令包中多个待解析命令的命令解析或缓存数据读取的并行处理、不同待解析命令包中待解析命令的命令解析和缓存数据读取的并行处理,节约了命令解析耗时,大大提高了解析器的命令解析效率。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种命令解析方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
传统的命令流解析器在接收到软件驱动层送来的命令时,会按照接收到命令的时间点,对各个命令进行依次执行:而对于每一个命令,传统的命令流解析器会先根据需求从外部的存储器中抓取间接数据,然后再解析该命令,并在等当前命令解析完后,再去处理后续的其余命令。
可以看到,在传统的逐命令的命令流解析器中,即使是相互之间无依赖关系的命令,也必须完全按照收到命令的顺序进行依次解析,硬件资源的使用效率低下,命令的解析耗时较长,解析效率低下。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高命令解析效率的缓存数据读取方法、装置、计算机设备、存储介质和计算机程序产品。
第一方面,本申请提供了一种命令解析方法,包括:
确定缓存的状态;
若所述缓存为非空状态,则采用解析器中包含的至少一个预解析器,从缓存中读取待解析命令包,并对所述待解析命令包进行处理;以及
采用所述解析器中包含的至少一个主解析器,从所述缓存中读取已经所述预解析器处理过的候选命令包,并对所述候选命令包进行解析处理
在其中一个实施例中,所述待解析命令包中包括依次排列的至少一个待解析命令;
所述采用解析器中包含的至少一个预解析器,从缓存中读取待解析命令包,并对所述待解析命令包进行处理,包括:
采用至少一个所述预解析器,按照所述待解析命令的排列顺序分别从所述缓存中读取各个所述待解析命令;
采用至少一个所述预解析器,按照所述待解析命令的排列顺序分别将外部存储器中存储的每个所述待解析命令对应的缓存数据存储至所述缓存中。
在其中一个实施例中,所述采用至少一个所述预解析器,按照所述待解析命令的排列顺序分别将外部存储器中存储的每个所述待解析命令对应的缓存数据存储至所述缓存中,包括:
当所述待解析命令携带有预设标识时,采用所述预解析器,将外部存储器中存储的当前待解析命令对应的缓存数据存储至所述缓存中。
在其中一个实施例中,所述采用至少一个所述预解析器,按照所述待解析命令的排列顺序分别将外部存储器中存储的每个所述待解析命令对应的缓存数据存储至所述缓存中,包括:
按照所述待解析命令的排列顺序,当首个所述待解析命令为等待命令时,采用所述预解析器处理所述等待命令;
当所述等待命令处理完毕时,按照所述待解析命令的排列顺序,采用至少一个所述预解析器,将外部存储器中存储的除所述等待命令外的待解析命令对应的缓存数据存储至所述缓存中。
在其中一个实施例中,所述采用所述解析器中包含的至少一个主解析器,从所述缓存中读取已经所述预解析器处理过的候选命令包,并对所述候选命令包进行解析处理,包括:
采用至少一个所述主解析器,按照所述待解析命令的排列顺序以及各个所述待解析命令包中待解析命令的排列顺序,分别从所述缓存中读取各个所述候选命令包以及各个所述候选命令包对应的缓存数据;
采用至少一个所述主解析器,按照所述待解析命令的排列顺序以及各个所述待解析命令包中待解析命令的排列顺序,对所述候选命令包以及对应的缓存数据进行解析处理。
在其中一个实施例中,所述缓存中缓存有至少两个所述待解析命令包;
所述采用解析器中包含的至少一个预解析器,从缓存中读取待解析命令包,包括:
采用至少一个所述预解析器,按照至少两个所述待解析命令包的排列顺序分别从所述缓存中读取各个所述待解析命令包;
所述采用所述解析器中包含的至少一个主解析器,从所述缓存中读取已经所述预解析器处理过的候选命令包,包括:
采用至少一个所述主解析器,按照至少两个所述待解析命令包的排列顺序分别从所述缓存中读取所述候选命令包。
第二方面,本申请还提供了一种命令解析装置,包括:
确定模块,用于确定缓存的状态;
读取模块,用于在缓存为非空状态时,采用解析器中包含的至少一个预解析器,从缓存中读取待解析命令包,并对所述待解析命令包进行处理;
解析模块,用于在缓存为非空状态时,采用所述解析器中包含的至少一个主解析器,从所述缓存中读取已经所述预解析器处理过的候选命令包,并对所述候选命令包进行解析处理。
第三方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例中所述的命令解析方法的步骤。
第四方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序产品被处理器执行时实现上述任一实施例中所述的命令解析方法的步骤。
上述命令解析方法、装置、计算机设备、存储介质和计算机程序产品能够实现同一个待解析命令包中多个待解析命令的命令解析或缓存数据读取的并行处理、不同待解析命令包中待解析命令的命令解析和缓存数据读取的并行处理,大大提高了解析器的命令解析效率,并且,预解析器将读取的缓存数据直接存储在缓存中,主解析器在进行待解析命令的解析时,无需再从外部存储器中读取缓存数据,节约了命令解析耗时,预解析器和主解析器的数量能够根据实际需求进行动态调整,能够最大程度的满足用户需求,节约解析资源。
附图说明
图1为一个实施例中命令解析方法的流程示意图;
图2为一个实施例中并行命令流解析器的结构框图;
图3为一个实施例中命令解析方法的流程示意图;
图4为一个实施例中待解析命令包的组成结构图;
图5为一个实施例中并行命令流解析器中数据存储缓存的流程示意图;
图6为一个实施例中并行命令流解析器中数据存储缓存与并行命令预解析器的交互示意图;
图7为一个实施例中并行命令流解析器中并行命令预解析器分发预解析命令的流程示意图;
图8为一个实施例中命令解析方法的流程示意图;
图9为一个实施例中并行命令流解析器中并行命令主解析器分发预解析命令的流程示意图;
图10为一个实施例中并行命令流解析器中数据存储缓存与并行命令主解析器的交互示意图;
图11为一个实施例中命令解析装置的结构框图;
图12为一个实施例中命令解析装置中读取模块的结构框图;
图13为一个实施例中命令解析装置中解析模块的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,提供了一种命令解析方法,本实施例以该命令解析方法应用于处理器进行举例说明,可以理解的是,该处理器可位于终端或服务器上。
如图1所示,该命令解析方法包括:
步骤202、确定缓存的状态。
缓存指的是用于存储处理器从外部存储器中提取到的数据。
缓存的状态可以用于指示缓存中缓存的数据量。
作为示例,处理器可以按照预先设置的确定频率确定缓存的状态,也可以在接收到用户通过终端的交互界面发出的指令时确定缓存的状态,从而确定缓存中实际缓存的数据情况。
如图2所示,作为示例,本实施例中的解析器可以采用并行命令流解析器,本实施例中的缓存可以是并行命令流解析器中的数据存储缓存P3,处理器在接收到用户通过终端的人机交互界面输入的指令时,将该指令转换为相应的待解析命令包,并将转换后的待解析命令包存入外部存储器中,随后更新并行命令流解析器中的寄存器池P1,并行命令流解析器中还存在命令抓取器P2,该命令抓取器用于监视寄存器池P1中的寄存器信息,当处理器更新寄存器池P1中的寄存器信息时,命令抓取器P2被触发,从而根据寄存器池P1中保存的寄存器信息从外部存储器中抓取对应的待解析命令包写入并行命令流解析器中的数据存储缓存P3中,本实施例中的数据存储缓存P3通过该种方式实现状态的更新。
其中,寄存器池P1记录了本实施例中的解析器需要的所有寄存器信息,包括触发命令抓取器P2开始抓取新存入寄存器池P1中的待解析命令包的相关寄存器,称为RingBuffer寄存器,Ring Buffer寄存器主要包括address信息、header信息、tail信息以及size信息。处理器在将命令流填入到外部存储器后,会更新Ring Buffer寄存器中的tail信息;而本实施例中的并行命令流解析器在完成一个命令包的解析后,都会相应更新该RingBuffer寄存器中的header信息。
命令抓取器P2用于检测寄存器池P1中的Ring Buffer寄存器内容,处理器判断寄存器池P1中的寄存器信息是否更新。若更新,则控制命令抓取器P2根据寄存器池P1中的Ring Buffer寄存器包含的address信息和header信息,从外部存储器中读取相应的待解析命令包放到数据存储缓存P3中。基于上述寄存器池P1更新寄存器信息的特征,处理器判断寄存器池P1中的寄存器信息是否更新的过程可以包括:将Ring Buffer寄存器中的header信息与tail信息进行比对,若相等,则认为寄存器信息没有更新,若不相等,则认为寄存器信息更新。
本实施例中,处理器可以监控缓存中存储的数据状态。
步骤204a、若缓存为非空状态,则采用解析器中包含的至少一个预解析器,从缓存中读取待解析命令包,并对待解析命令包进行处理,以及步骤204b、若缓存为非空状态,则采用解析器中包含的至少一个主解析器,从缓存中读取已经预解析器处理过的候选命令包,并对候选命令包进行解析处理。
预解析器用于对命令包进行预解析。
待解析命令包指的是用户通过终端的人机交互界面输入的指令相关的待解析数据包。作为示例,待解析命令包可以是抓取器P2根据寄存器池P1中保存的寄存器信息从外部存储器中抓取的命令包。
作为示例,待解析命令包可以包括普通命令包、嵌套命令包、数据同步命令包等类型。
主解析器用于解析命令包。
候选命令包指的是经过预解析器处理后的待解析命令包。
作为示例,在经主解析器进行解析处理后,处理器将缓存中的待解析命令包删除,即可认为,缓存中只存储未被解析完成的命令包,且缓存在处理器未接收到用户通过终端的人机交互界面输入的指令时,始终保持空状态。
上述命令解析方法中,处理器能够监控缓存中缓存的数据的状态,当缓存非空时,预解析器和主解析器同时启动,预解析器从缓存中读取待解析命令包,并对待解析命令包进行处理,处理完成后得到候选命令包,预解析器将候选命令包重新存入缓存中,同时,主解析器从缓冲读取预解析器处理过的候选命令包进行解析。通过该种设置,解析器中的至少一个预解析器可以同时进行待解析命令包的预解析处理,至少一个主解析器可以同时进行候选命令包的解析处理,且主解析器和预解析器能够实现并行处理,从而能够提升命令流解析器的工作效率,更快的为后续模块提供所需的相关数据。
如图3所示,在一些可能的实施例中,待解析命令包中包括依次排列的至少一个待解析命令;步骤204a包括:步骤204a2、采用至少一个预解析器,按照待解析命令的排列顺序分别从缓存中读取各个待解析命令;步骤204a4、采用至少一个预解析器,按照待解析命令的排列顺序分别将外部存储器中存储的每个待解析命令对应的缓存数据存储至缓存中。
如图2所示,作为示例,待解析命令包用于将若干个待解析命令打包在一起构成一个整体,每个待解析命令包中包含的待解析命令的数量是根据硬件实现复杂度以及性能需求事先确定的,命令抓取器P2根据寄存器池P1中保存的寄存器信息从外部存储器中抓取对应的待解析命令包写入并行命令流解析器中的数据存储缓存P3中,随后处理器控制并行命令流解析器中并行命令预解析器P4包含的预解析缓存从数据存储缓存P3中提取待解析命令包,预解析缓存将每个待解析命令包中的待解析命令拆解开,并将拆解后的待解析命令分别发送给并行命令预解析器P4中的至少一个预解析器,以对待解析命令进行预解析处理。
为了提高预解析器的资源利用率,本实施例的并行命令流解析器中包含的预解析器的数量可以不大于待解析命令包中包含的待解析命令的数量,作为示例,当一个待解析命令包中包含P个待解析命令时,并行命令流解析器中设置的预解析器的数量N可以小于等于P。对于N=P的设计,待解析命令包中的待解析命令与预解析器能够一一对应,即预解析缓存可以一次性将所有待解析命令分别分给预解析器;对于N<P的设计,某一个预解析器可能会执行一个待解析命令包中的多个待解析命令,此时需要根据每个预解析器的状态信息,进行待解析命令的分发,当预解析器状态正在处理预解析命令时,其状态为忙碌,当预解析器未接收到待解析命令或将接收到的待解析命令处理完毕时,其状态由忙碌变为空闲,此时预解析缓存可以按照待解析命令的排列顺序进行分发。
作为示例,当本实施例中的命令解析方法应用于图形绘制流水线时,命令抓取器P2从外部存储器中抓取的待解析命令包可能会包含如下几种常见的待解析命令:①寄存器配置命令(set register command),在图形绘制的过程中,所有相应功能的控制都需要通过对应寄存器中存储的数据来实现,这些寄存器中的每一个比特都有相应的含义和作用,寄存器配置命令用于在图形绘制流水线工作之前,完成指定功能对应的寄存器的配置。一般情况下,寄存器配置命令中的寄存器数值摆放方式有两种:跟在寄存器配置命令后的立即数方式(Immediate),或者是放在外部存储器中的间接方式(Indirect)。对于选用间接方式的存储器数值,一般会将外部存储器对应的存储地址附加在寄存器配置命令上。②数据同步命令(sync command):在图形绘制过程中,通常会遇到需要同步工作进程的场景。例如:当有一个应用程序编程接口(Application Programming Interface,API)需要修改某个只读硬件资源时,处理器需要发送一个数据同步命令到图形绘制相关硬件中,以确保被修改的只读硬件资源已经被图形绘制相关硬件使用完(WAR,Write After Read check);另外,对于同一张硬件资源,如果在第一帧时需要被更新,而在第二帧时需要被作为只读资源使用,那么需要在第二帧使用前加上数据同步命令,以保证图形绘制相关硬件能拿到最新的数据(RAW,Read After Write check)。作为示例,数据同步命令包括Fence Command和Wait Command。③模块命令(block command):在图形绘制流水线中,根据控制功能不同,处理器会划分出多个功能模块,模块命令用于控制对应的模块执行相应动作。④资源初始化/拷贝命令(resource initialize/copy command):用于初始化资源数据或拷贝资源数据,以保证资源数据的实时可靠性。⑤绘图命令(draw command):绘图命令用于控制相应的API进行绘图动作,包括D3D、OGL、vulkan等对应的绘图API。⑥调度命令(dispatch command):为了提高图形绘制相关硬件的通用性和计算性能,处理器一般会加入计算着色器(CS,Computer Shader)来进行大规模并行计算,调度命令用于触发该着色器进行计算。⑦嵌套命令(nested command):为了防止CPU、GPU之间不必要的相互等待导致性能损失,D3D会允许不同命令列表之间的相互嵌套,即一个命令列表中可能有若干嵌套命令(Command Queueand Command List)。
作为示例,命令抓取器P2从外部存储器中抓取的待解析命令包还可能包含如下几种常见的待解析命令:⑧预解析器等待命令(preparser wait command):用来保证预解析器从数据存储缓存P3中读取的数据的正确性。
如图4所示,作为示例,命令抓取器P2从外部存储器中抓取的待解析命令包可以包含如下几种命令包:①Command package(a):普通的命令包,该命令包中包含的几个命令彼此之间没有相互依赖关系;②Command package(b):该命令包中包含嵌套命令,由于嵌套命令中还包含若干命令包,在未将嵌套命令中的所有命令拿到前,本实施例中的并行命令流解析器无法判断嵌套命令和后续命令之间的依赖关系,所以处理器将该命令包中处在嵌套命令后的命令都置为跳过命令Skip,从而解决数据同步上可能会出现的问题,并且,当命令包中包含嵌套命令时,并行命令预解析器P4中的预解析器需要从外部存储器中获取该嵌套命令包含的所有命令;③Command package(c)+(d):该命令包中包含了需要进行数据同步的情形,并行命令流解析器需要保证command的执行顺序,Command package(c)中的Resource Copy Command为后续(d)中Draw command准备shader resource着色资源,为了保证Resource Copy command做完后再开始后面的Draw,需要在Resource Copy Command之后加上Fence Command、并且在Draw Command之前插上Wait Command。为了在保证数据正确性的前提下实现并行,处理器将相对应的fence、wait command pair拆分在两个命令包中,且将wait command放在其中一个命令包的第一个command位置;④Command package(e)+(f):里面包含了预解析器和主解析器需要进行数据同步的情形。在command package(e)中,save command用来将GPU上当前的所有寄存器信息存储到外部存储器中,而在后面的command package(f)中,restore command将之前保存到外部存储器的寄存器信息重新恢复到GPU中。如果这里的save command和restore command的外部存储器的存储地址相同,那么为了保证预解析器在执行“restore command”时能够从外部存储器中读取正确的寄存器数据,必须保证主解析器率先完成“save command”。
本实施例中的缓存可以是数据存储缓存P3,用于缓存命令抓取器P2从外部存储器中抓取的待解析命令包、并行命令预解析器P4中的预解析器从外部存储器中抓取的嵌套命令包含的所有待解析命令以及并行命令预解析器P4中的预解析器控制外部存储器写入的待解析命令对应的缓存数据。
如图5所示,作为示例,为了本实施例中的并行命令预解析器P4中的预解析器和并行命令解析器P5中的主解析器能够同时并行处理同一个待解析命令包中的待解析命令,数据存储缓存P3可以被分为两个部分,包括命令包缓存P3.1和数据缓存P3.2,命令包缓存P3.1用于存储待解析命令包,数据缓存P3.2用于存储待解析命令对应的缓存数据。当命令抓取器P2从外部存储器中抓取的待解析命令包中包括P个待解析命令时,命令包缓存P3.1可以分为P行,用于存储不同的待解析命令,数据缓存P3.2可以同样分为P个部分,用于存储不同的待解析命令对应的缓存数据。
在一些可能的实施例中,步骤204a4包括:当待解析命令携带有预设标识时,采用预解析器,将外部存储器中存储的当前待解析命令对应的缓存数据存储至缓存中。
作为示例,寄存器配置命令、绘图命令、调度命令、嵌套命令等都会带有间接数据(Indirect Data),在对这些命令进行解析前需要先从外部存储器中读取对应的缓存数据。
对于需要缓存数据的待解析命令,处理器可以在生成转换后的待解析命令包时,预先在待解析命令上标记预设标识,并行命令预解析器P4中的预解析器在预解析待解析命令时,若待解析命令携带有预设标识,则将外部存储器中当前待解析命令相应的缓存数据写入数据存储缓存P3,若待解析命令未携带有预设标识,则认为当前待解析命令不存在相应的缓存数据,此时将空指令作为待解析命令对应的缓存数据,并直接认为当前待解析命令已经处理完毕。空指令也可以直接理解为预解析器不对当前待解析命令做任何处理。
如图6所示,作为示例,当并行命令预解析器P4中的预解析缓存从数据存储缓存P3中提取待解析命令时,可以向数据存储缓存P3发送读指令,该读指令中包括针对命令包缓存P3.1中具体位置的预解析读指针,随后预解析缓存根据预解析读指针读取到待解析命令以及该待解析命令对应的写指针,并将待解析命令以及该待解析命令对应的写指针分别发送给预解析器,写指针用于唯一指示数据缓存P3.2中的具体位置,并行命令预解析器P4中的预解析器根据读取到的待解析命令向外部存储器发送缓存数据读指令以及该待解析命令对应的写指针,缓存数据读指令用于从外部存储器中读取待解析命令对应的缓存数据。外部存储器根据接收到的缓存数据读指令,读取相应的缓存数据,并按照同时接收到的写指针,将读取到的缓存数据存入数据缓存P3.2中的具体位置。
作为示例,处理器可以根据命令包缓存P3.1中存储的待解析命令是否携带有预设标识,预先为命令包缓存P3.1中的每个行中存储的待解析命令分配对应的写指针。例如,当命令包缓存P3.1中编号为0的行存储的待解析命令携带有预设标识,则处理器为其分配指向数据缓存P3.2中part0的写指针,当命令包缓存P3.1中编号为1的行存储的待解析命令未携带有预设标识,则处理器跳过当前行,并在编号为2的行存储的待解析命令携带有预设标识时,为编号为2的行中存储的待解析命令分配指向数据缓存P3.2中part1的写指针。
作为示例,命令包缓存P3.1和数据缓存P3.2相当于一个环形结构,假设命令包缓存P3.1分为8行,每一行对应的编号为0~7,分别存储有待解析命令包拆分出的8个待解析命令;数据缓存P3.2分为8个part,每一part对应的编号也为0~7,且默认数据缓存P3.2的8个part均为空置。
按照待解析命令的排列顺序,并行命令预解析器P4中的预解析缓存首先从数据存储缓存P3中提取位于命令包缓存P3.1第1行的待解析命令,预解析缓存向数据存储缓存P3发送读指令,该读指令指向命令包缓存P3.1编号为0的行。并行命令预解析器P4中的预解析缓存从编号为0的行中提取到相应的待解析命令以及该待解析命令对应的写指针,该写指针指向数据缓存P3.2中的part0,并行命令预解析器P4向外部存储器发送缓存数据读取指令和该待解析命令对应的写指针,外部存储器在匹配到对应的缓存数据后,按照写指针将匹配到的缓存数据写入数据缓存P3.2的part0中。
同样可以理解成,当预解析缓存从数据存储缓存P3中提取位于命令包缓存P3.1第2行的待解析命令时,触发外部存储器进行缓存数据的匹配和写入动作。
又比如,当按照待解析命令的排列顺序,并行命令预解析器P4中的预解析缓存从数据存储缓存P3中提取位于第2行的待解析命令,预解析缓存向数据存储缓存P3发送读指令,该读指令指向命令包缓存P3.1中编号为1的行。并行命令预解析器P4中的预解析缓存从编号为1的行中提取到相应的待解析命令,但该待解析命令不存在对应的写指针,因此并行命令预解析器P4可以直接认为当前待解析命令已经预解析完毕,随后并行命令预解析器P4中的预解析缓存从数据存储缓存P3中提取位于第3行的待解析命令,预解析缓存向数据存储缓存P3发送读指令,该读指令指向命令包缓存P3.1中编号为2的行,并行命令预解析器P4中的预解析缓存从编号为2的行中提取到相应的待解析命令以及该待解析命令对应的写指针,该写指针指向数据缓存P3.2中的part1,并向外部存储器发送缓存数据读取指令和写指令,外部存储器匹配到对应的缓存数据后,按照写指令将匹配到的缓存数据写入数据缓存P3.2中的part1中。
在一些可能的实施例中,步骤204a4包括:按照待解析命令的排列顺序,当首个待解析命令为等待命令时,采用预解析器处理等待命令;当等待命令处理完毕时,按照待解析命令的排列顺序,采用至少一个预解析器将外部存储器中存储的除等待命令外的待解析命令对应的缓存数据存储至缓存中。
如图3所示,作为示例,在Command package(e)+(f)的命令包中,存在waitcommand,处理器在生成转换后的待解析命令包时,可以预先在携带有wait command的命令包上标记上等待标识,并行命令预解析器P4中的预解析缓存在拆分待解析命令包时,若拆分出的第一个待解析命令携带有等待标识,则将拆分出的第一个待解析命令、即waitcommand先发送给预解析器进行处理,等到wait command预解析完成后,再将拆分得到的其余待解析命令依次发送给预解析器进行预解析处理。
如图7所示,作为示例,若并行命令预解析器P4中的预解析缓存正在拆分的待解析命令包携带有1bit信号“bPreWait”,则可以认为当前待解析命令包的预解析过程包含了需要进行数据同步的情形,若“bPreWait”=1,则处理器将拆分出的第一个待解析命令发送给并行命令预解析器P4中的第一个预解析器,当且仅当第一个预解析器返回wait finished信号后,预解析缓存再将拆分出的其余待解析命令发送到空闲的预解析器中。在该种情形中,“bPreWait”=1即可以当做是等待标识。若“bPreWait”=0,则预解析缓存直接按照待解析命令的排列顺序,拆分出的待解析命令依次发送给并行命令预解析器P4中的预解析器。
如图8所示,在一些可能的实施例中,步骤204b包括:步骤204b2、采用至少一个主解析器,按照待解析命令的排列顺序以及各个待解析命令包中待解析命令的排列顺序,分别从缓存中读取各个待解析命令以及各个待解析命令对应的缓存数据;步骤204b4、采用至少一个主解析器,按照待解析命令的排列顺序以及各个待解析命令包中待解析命令的排列顺序,对候选命令包以及对应的缓存数据进行解析处理。
当命令抓取器P2根据寄存器池P1中保存的寄存器信息从外部存储器中抓取对应的待解析命令包写入并行命令流解析器中的数据存储缓存P3后,并行命令流解析器中的并行命令预解析器P4和并行命令主解析器P5同时被触发,当并行命令流解析器用于解析一个待解析命令包时,若并行命令预解析器P4和并行命令主解析器P5的解析速度相同,则并行命令主解析器P5中正在解析的命令的排列顺序一般会在并行命令预解析器P4正在预解析的命令的排列顺序之后。
在本实施例中,处理器控制并行命令流解析器中并行命令主解析器P5包含的主解析缓存从数据存储缓存P3中提取待解析命令包以及对应的所有缓存数据,随后主解析缓存将每个待解析命令包中的待解析命令拆解开,并将拆解后的待解析命令以及对应的缓存数据分别发送给并行命令主解析器P5中的至少一个主解析器,以对待解析命令进行解析处理。
为了提高主解析器的资源利用率,本实施例的并行命令流解析器中包含的主解析器的数量可以不大于待解析命令包中包含的待解析命令的数量,作为示例,当一个待解析命令包中包含P个待解析命令时,并行命令流解析器中设置的主解析器的数量M可以小于等于P。对于M=P的设计,待解析命令包中的待解析命令与主解析器能够一一对应,即主解析缓存可以一次性将所有待解析命令分别分给主解析器;对于M<P的设计,某一个主解析器可能会执行一个待解析命令包中的多个待解析命令,此时需要根据每个主解析器的状态信息,进行待解析命令的分发,当主解析器状态正在处理预解析命令时,其状态为忙碌,当主解析器未接收到待解析命令或将接收到的待解析命令处理完毕时,其状态由忙碌变为空闲,此时主解析缓存可以按照待解析命令的排列顺序进行分发。
由于预解析器的作用一致、工作内容单一,不受待解析命令的内容影响,而主解析器需要针对不同的待解析命令进行不同的解析响应,主解析器的工作难度较大,处理速度也相对较慢,因此也可以将主解析器的数量M设置为大于预解析器的数量N。
并且,由于处理器在生成待解析命令包的过程中已经保证了一个待解析命令包之中的待解析命令彼此之间不存在影响,因此主解析器可以按照先进先出的方式输出待解析命令对应的解析结果。作为示例,面对Command package(c)+(d)的组合命令包时,我们也可以通过将fence command和wait command拆分在两个命令包中的方式防止commandpackage(d)中的命令超车,从而保证解析结果的正确性。
作为示例,命令抓取器P2从外部存储器中抓取的待解析命令包还可能包含如下待解析命令:⑨主解析器等待命令(mainparser wait command):用来保证助解析缓存分发顺序、主解析器解析顺序的正确性,从而解决Command package(c)+(d)中类似的同步问题。
如图5所示,作为示例,处理器可以根据待解析命令携带的写指针,预先为待解析命令分配对应的缓存数据读指针,例如,命令包缓存P3.1中编号为0的行存储的待解析命令存在对应的写指针,且该写指针指向数据缓存P3.2中part0,则处理器为该待解析命令分配指向数据缓存P3.2中part0的缓存数据读指针。即存在写指针的待解析命令也将存在指向同一位置的缓存数据读指针。
当并行命令主解析器P5中的主解析缓存从数据存储缓存P3中提取待解析命令时,可以向数据存储缓存P3发送读指令,该读指令中包括针对命令包缓存P3.1中具体位置的解析读指针,随后主解析缓存根据解析读指针读取到待解析命令以及该待解析命令对应的缓存数据读指针,并将待解析命令以及该待解析命令对应的缓存数据读指针分别发送给主解析器,缓存数据读指针用于唯一指示数据缓存P3.2中的具体位置,并行命令主解析器P5中的主解析器在接收到的待解析命令携带有缓存数据读指针时,根据该缓存数据读指针从数据缓存P3.2的对应位置中读取缓存数据,在读取完毕后对当前待解析命令及缓存数据进行解析。
作为示例,假设命令包缓存P3.1分为8行,每一行对应的编号为0~7,分别存储有待解析命令包拆分出的8个待解析命令;数据缓存P3.2分为8个part,每一part对应的编号也为0~7,且默认数据缓存P3.2的8个part均为空置。
按照待解析命令的排列顺序,并行命令主解析器P5中的主解析缓存首先从数据存储缓存P3中提取位于命令包缓存P3.1第1行的待解析命令,主解析缓存向数据存储缓存P3发送读指令,该读指令指向命令包缓存P3.1编号为0的行。主解析缓存从编号为0的行中提取到相应的待解析命令以及该待解析命令对应的缓存数据读指针,该缓存数据读指针指向数据缓存P3.2中的part0,主解析器根据该缓存数据读指针,从数据缓存P3.2的part0中读取出当前待解析命令的缓存数据,随后解析当前待解析命令和缓存数据。
如图9所示,作为示例,若并行命令主解析器P5中的主解析缓存正在拆分的待解析命令包携带有1bit信号“bMainWait”,则可以认为当前待解析命令包的解析过程包含了需要进行数据同步的情形,若“bMainWait”=1,则处理器将拆分出的第一个待解析命令发送给并行命令主解析器P5中的第一个主解析器,当且仅当第一个主解析器返回waitfinished信号后,主解析缓存再将拆分出的其余待解析命令发送到空闲的主解析器中。在该种情形中,“bMainWait”=1可以当做是等待标识。若“bMainWait”=0,则主解析缓存直接按照待解析命令的排列顺序,将拆分出的待解析命令依次发送给并行命令主解析器P5中的主解析器。
如图10所示,作为示例,并行命令主解析器P5中还包括汇总模块P5.1,用于最新寄存器信息的汇总,汇总模块P5.1能够在主解析器输出Draw命令、Gp命令、或2D命令的解析结果之前,预先输出新的寄存器信息,使得在后续处理过程中,相关的处理模块能够保证拿到的寄存器信息是最新结果。
在一些可能的实施例中,缓存中缓存有至少两个待解析命令包;步骤204a包括:采用至少一个预解析器,按照至少两个待解析命令包的排列顺序分别从缓存中读取各个待解析命令包;采用解析器中包含的至少一个主解析器,从缓存中读取已经预解析器处理过的候选命令包,包括:采用至少一个主解析器,按照至少两个待解析命令包的排列顺序分别从缓存中读取候选命令包。
在本实施例中,按照待解析命令包的排列顺序,当并行命令预解析器P4预解析完前一个待解析命令包中包含的所有待解析命令包,而并行命令主解析器P5还未解析完前一个待解析命令包中包含的所有待解析命令包时,并行命令预解析器P4可以直接进行后一个待解析命令包的预解析处理,通过该种方式,能够实现前一个待解析命令包的命令解析和后一个待解析命令包缓存数据的读取的并行处理。
上述命令解析方法,通过将缓存中存储的待解析命令和缓存数据分开存放、以及设置至少一个预解析器和至少一个主解析器的方案,实现了同一个待解析命令包中多个待解析命令的命令解析或缓存数据读取的并行处理、不同待解析命令包中待解析命令的命令解析和缓存数据读取的并行处理,大大提高了解析器的命令解析效率,并且,预解析器将读取的缓存数据直接存储在缓存中,主解析器在进行待解析命令的解析时,无需再从外部存储器中读取缓存数据,节约了命令解析耗时,预解析器和主解析器的数量能够根据实际需求进行动态调整,能够最大程度的满足用户需求,节约解析资源。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的命令解析方法的命令解析装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个命令解析装置实施例中的具体限定可以参见上文中对于命令解析方法的限定,在此不再赘述。
如图11所示,本申请实施例还提供了一种命令解析装置1100,包括确定模块1102、读取模块1104a和解析模块1104b;确定模块1102用于接收解析指令;读取模块1104a用于在缓存为非空状态时,采用解析器中包含的至少一个预解析器,从缓存中读取待解析命令包,并对待解析命令包进行处理;解析模块1104b用于在缓存为非空状态时,采用解析器中包含的至少一个主解析器,从缓存中读取已经预解析器处理过的候选命令包,并对候选命令包进行解析处理。
如图12所示,在一些可能的实施例中,待解析命令包中包括依次排列的至少一个待解析命令;读取模块1104a包括:第一读取单元1104a2、采用至少一个预解析器,按照待解析命令的排列顺序分别从缓存中读取各个待解析命令;存储单元1104a4、采用至少一个预解析器,按照待解析命令的排列顺序分别将外部存储器中存储的每个待解析命令对应的缓存数据存储至缓存中。
在一些可能的实施例中,存储单元1104a4还被配置为:当待解析命令携带有预设标识时,采用预解析器,将外部存储器中存储的当前待解析命令对应的缓存数据存储至缓存中。
在一些可能的实施例中,存储单元1104a4还被配置为:按照待解析命令的排列顺序,当首个待解析命令为等待命令时,采用预解析器处理等待命令;当等待命令处理完毕时,按照待解析命令的排列顺序,采用至少一个预解析器,将外部存储器中存储的除等待命令外的待解析命令对应的缓存数据存储至缓存中。
如图13所示,在一些可能的实施例中,解析模块1104b包括:第二读取单元1104b2、采用至少一个主解析器,按照待解析命令的排列顺序以及各个待解析命令包中待解析命令的排列顺序,分别从缓存中读取各个候选命令包以及各个候选命令包对应的缓存数据;解析单元1104b4、采用至少一个主解析器,按照待解析命令的排列顺序以及各个待解析命令包中待解析命令的排列顺序,对候选命令包以及对应的缓存数据进行解析处理。
在一些可能的实施例中,缓存中缓存有至少两个待解析命令包;读取模块1104a还被配置为:采用至少一个预解析器,按照至少两个待解析命令包的排列顺序分别从缓存中读取各个待解析命令包;解析模块1104b还被配置为:采用至少一个主解析器,按照至少两个待解析命令包的排列顺序分别从缓存中读取候选命令包。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上任一实施例所述的命令解析方法的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序产品被处理器执行时实现如上任一实施例所述的命令解析方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述命令解析方法方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种命令解析方法,其特征在于,包括:
确定缓存的状态;
若所述缓存为非空状态,则采用解析器中包含的至少一个预解析器,从缓存中读取待解析命令包,并对所述待解析命令包进行处理;以及
采用所述解析器中包含的至少一个主解析器,从所述缓存中读取已经所述预解析器处理过的候选命令包,并对所述候选命令包进行解析处理。
2.根据权利要求1所述的方法,其特征在于,所述待解析命令包中包括依次排列的至少一个待解析命令;
所述采用解析器中包含的至少一个预解析器,从缓存中读取待解析命令包,并对所述待解析命令包进行处理,包括:
采用至少一个所述预解析器,按照所述待解析命令的排列顺序分别从所述缓存中读取各个所述待解析命令;
采用至少一个所述预解析器,按照所述待解析命令的排列顺序分别将外部存储器中存储的每个所述待解析命令对应的缓存数据存储至所述缓存中。
3.根据权利要求2所述的方法,其特征在于,所述采用至少一个所述预解析器,按照所述待解析命令的排列顺序分别将外部存储器中存储的每个所述待解析命令对应的缓存数据存储至所述缓存中,包括:
当所述待解析命令携带有预设标识时,采用所述预解析器,将外部存储器中存储的当前待解析命令对应的缓存数据存储至所述缓存中。
4.根据权利要求2所述的方法,其特征在于,所述采用至少一个所述预解析器,按照所述待解析命令的排列顺序分别将外部存储器中存储的每个所述待解析命令对应的缓存数据存储至所述缓存中,包括:
按照所述待解析命令的排列顺序,当首个所述待解析命令为等待命令时,采用所述预解析器处理所述等待命令;
当所述等待命令处理完毕时,按照所述待解析命令的排列顺序,采用至少一个所述预解析器,将外部存储器中存储的除所述等待命令外的待解析命令对应的缓存数据存储至所述缓存中。
5.根据权利要求2所述的方法,其特征在于,所述采用所述解析器中包含的至少一个主解析器,从所述缓存中读取已经所述预解析器处理过的候选命令包,并对所述候选命令包进行解析处理,包括:
采用至少一个所述主解析器,按照所述待解析命令的排列顺序以及各个所述待解析命令包中待解析命令的排列顺序,分别从所述缓存中读取各个所述候选命令包以及各个所述候选命令包对应的缓存数据;
采用至少一个所述主解析器,按照所述待解析命令的排列顺序以及各个所述待解析命令包中待解析命令的排列顺序,对所述候选命令包以及对应的缓存数据进行解析处理。
6.根据权利要求1所述的方法,其特征在于,所述缓存中缓存有至少两个所述待解析命令包;
所述采用解析器中包含的至少一个预解析器,从缓存中读取待解析命令包,包括:
采用至少一个所述预解析器,按照至少两个所述待解析命令包的排列顺序分别从所述缓存中读取各个所述待解析命令包;
所述采用所述解析器中包含的至少一个主解析器,从所述缓存中读取已经所述预解析器处理过的候选命令包,包括:
采用至少一个所述主解析器,按照至少两个所述待解析命令包的排列顺序分别从所述缓存中读取所述候选命令包。
7.一种命令解析装置,其特征在于,包括:
确定模块,用于确定缓存的状态;
读取模块,用于在缓存为非空状态时,采用解析器中包含的至少一个预解析器,从缓存中读取待解析命令包,并对所述待解析命令包进行处理;
解析模块,用于在缓存为非空状态时,采用所述解析器中包含的至少一个主解析器,从所述缓存中读取已经所述预解析器处理过的候选命令包,并对所述候选命令包进行解析处理。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的命令解析方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的命令解析方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的命令解析方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310016022.6A CN116185497B (zh) | 2023-01-06 | 2023-01-06 | 命令解析方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310016022.6A CN116185497B (zh) | 2023-01-06 | 2023-01-06 | 命令解析方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116185497A true CN116185497A (zh) | 2023-05-30 |
CN116185497B CN116185497B (zh) | 2024-05-07 |
Family
ID=86443697
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310016022.6A Active CN116185497B (zh) | 2023-01-06 | 2023-01-06 | 命令解析方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116185497B (zh) |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5325493A (en) * | 1990-03-12 | 1994-06-28 | Hewlett-Packard Company | System for distributing command/data packets tagged by their unit identifier for parallel processing by a ready processing unit and recombination |
CN101078979A (zh) * | 2007-06-29 | 2007-11-28 | 东南大学 | 具有多通道指令预取功能的存储控制电路 |
CN102426516A (zh) * | 2011-09-29 | 2012-04-25 | 杭州中天微系统有限公司 | 基于两级片上缓存的可变长度指令集的预解码装置 |
CN103685604A (zh) * | 2013-12-20 | 2014-03-26 | 北京奇虎科技有限公司 | 一种域名预解析方法及装置 |
US20150200994A1 (en) * | 2012-05-29 | 2015-07-16 | Google Inc. | Preloading resources of a web page |
CN106294848A (zh) * | 2016-08-22 | 2017-01-04 | 深圳市茁壮网络股份有限公司 | 一种网页解析、获取方法及装置 |
CN107408293A (zh) * | 2015-04-14 | 2017-11-28 | 英特尔公司 | 支持计算装置处的图形命令流中对命令缓冲器的多级嵌套 |
CN107426041A (zh) * | 2017-09-21 | 2017-12-01 | 杭州迪普科技股份有限公司 | 一种解析命令的方法和装置 |
US20180012328A1 (en) * | 2016-07-07 | 2018-01-11 | Intel Corporation | Graphics command parsing mechanism |
CN108520489A (zh) * | 2018-04-12 | 2018-09-11 | 长沙景美集成电路设计有限公司 | Gpu中一种实现命令解析和顶点获取并行的装置和方法 |
US20190066255A1 (en) * | 2017-08-29 | 2019-02-28 | Hema Chand Nalluri | Method and apparatus for efficient loop processing in a graphics hardware front end |
US20200082492A1 (en) * | 2018-09-07 | 2020-03-12 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Computer system, graphics processing unit, and graphics processing method thereof |
CN112328509A (zh) * | 2020-11-26 | 2021-02-05 | 北京泽石科技有限公司 | 一种基于硬件实现的用于闪存控制器的快速控制方法 |
CN114201266A (zh) * | 2021-12-13 | 2022-03-18 | 北京字节跳动网络技术有限公司 | 一种文件执行方法及装置 |
CN115222015A (zh) * | 2021-04-21 | 2022-10-21 | 阿里巴巴新加坡控股有限公司 | 指令处理装置、加速单元和服务器 |
-
2023
- 2023-01-06 CN CN202310016022.6A patent/CN116185497B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5325493A (en) * | 1990-03-12 | 1994-06-28 | Hewlett-Packard Company | System for distributing command/data packets tagged by their unit identifier for parallel processing by a ready processing unit and recombination |
CN101078979A (zh) * | 2007-06-29 | 2007-11-28 | 东南大学 | 具有多通道指令预取功能的存储控制电路 |
CN102426516A (zh) * | 2011-09-29 | 2012-04-25 | 杭州中天微系统有限公司 | 基于两级片上缓存的可变长度指令集的预解码装置 |
US20150200994A1 (en) * | 2012-05-29 | 2015-07-16 | Google Inc. | Preloading resources of a web page |
CN103685604A (zh) * | 2013-12-20 | 2014-03-26 | 北京奇虎科技有限公司 | 一种域名预解析方法及装置 |
CN107408293A (zh) * | 2015-04-14 | 2017-11-28 | 英特尔公司 | 支持计算装置处的图形命令流中对命令缓冲器的多级嵌套 |
US20180012328A1 (en) * | 2016-07-07 | 2018-01-11 | Intel Corporation | Graphics command parsing mechanism |
CN106294848A (zh) * | 2016-08-22 | 2017-01-04 | 深圳市茁壮网络股份有限公司 | 一种网页解析、获取方法及装置 |
US20190066255A1 (en) * | 2017-08-29 | 2019-02-28 | Hema Chand Nalluri | Method and apparatus for efficient loop processing in a graphics hardware front end |
CN107426041A (zh) * | 2017-09-21 | 2017-12-01 | 杭州迪普科技股份有限公司 | 一种解析命令的方法和装置 |
CN108520489A (zh) * | 2018-04-12 | 2018-09-11 | 长沙景美集成电路设计有限公司 | Gpu中一种实现命令解析和顶点获取并行的装置和方法 |
US20200082492A1 (en) * | 2018-09-07 | 2020-03-12 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Computer system, graphics processing unit, and graphics processing method thereof |
CN112328509A (zh) * | 2020-11-26 | 2021-02-05 | 北京泽石科技有限公司 | 一种基于硬件实现的用于闪存控制器的快速控制方法 |
CN115222015A (zh) * | 2021-04-21 | 2022-10-21 | 阿里巴巴新加坡控股有限公司 | 指令处理装置、加速单元和服务器 |
CN114201266A (zh) * | 2021-12-13 | 2022-03-18 | 北京字节跳动网络技术有限公司 | 一种文件执行方法及装置 |
Non-Patent Citations (2)
Title |
---|
SEGMENTFAULT 思否: "浏览器解析渲染HTML文档的过程", pages 1 - 8, Retrieved from the Internet <URL:https://segmentfault.com/a/1190000018652029> * |
郭宪勇;陈性元;邓亚丹;: "基于多核处理器的VTD-XML解析性能优化", 计算机科学与探索, 14 June 2013 (2013-06-14), pages 736 - 746 * |
Also Published As
Publication number | Publication date |
---|---|
CN116185497B (zh) | 2024-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11010681B2 (en) | Distributed computing system, and data transmission method and apparatus in distributed computing system | |
KR102333341B1 (ko) | 마이크로프로세서 시스템에서의 예외 처리 | |
JP4292198B2 (ja) | 実行スレッドをグループ化するための方法 | |
EP3846040A1 (en) | Neural network data processing apparatus, method and electronic device | |
CN105808219B (zh) | 一种内存空间分配方法及装置 | |
US9563466B2 (en) | Method and apparatus for supporting programmable software context state execution during hardware context restore flow | |
JP5309703B2 (ja) | 共有メモリの制御回路、制御方法及び制御プログラム | |
CN110888727A (zh) | 并发无锁队列实现方法、装置及存储介质 | |
US8806168B2 (en) | Producer-consumer data transfer using piecewise circular queue | |
CN110223216B (zh) | 一种基于并行plb的数据处理方法、装置及计算机存储介质 | |
CN115237599B (zh) | 一种渲染任务处理方法和装置 | |
CN114880259B (zh) | 数据处理方法、装置、系统、电子设备及存储介质 | |
CN110245024B (zh) | 静态存储块的动态分配系统及其方法 | |
CN116185497B (zh) | 命令解析方法、装置、计算机设备和存储介质 | |
CN117472568A (zh) | 一种多线程任务处理方法及终端 | |
US10580106B2 (en) | Graphics processing method utilizing predefined render chunks | |
CN111310638A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN111126619A (zh) | 一种机器学习方法与装置 | |
CN114371920A (zh) | 一种基于图形处理器加速优化的网络功能虚拟化系统 | |
WO2022134426A1 (zh) | 可重构处理器中的指令分发方法、系统以及存储介质 | |
WO2021057759A1 (zh) | 内存迁移方法、装置及计算设备 | |
JP5238876B2 (ja) | 情報処理装置及び情報処理方法 | |
CN116804915B (zh) | 基于存储器的数据交互方法、处理器、设备以及介质 | |
CN117931729B (zh) | 向量处理器访存指令处理方法和系统 | |
CN116188247B (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 |