CN116360798B - 一种针对异构芯片的异构可执行文件的反汇编方法 - Google Patents
一种针对异构芯片的异构可执行文件的反汇编方法 Download PDFInfo
- Publication number
- CN116360798B CN116360798B CN202310644672.5A CN202310644672A CN116360798B CN 116360798 B CN116360798 B CN 116360798B CN 202310644672 A CN202310644672 A CN 202310644672A CN 116360798 B CN116360798 B CN 116360798B
- Authority
- CN
- China
- Prior art keywords
- data
- heterogeneous
- executable
- slave core
- core
- 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 57
- 238000012545 processing Methods 0.000 claims abstract description 17
- 238000013500 data storage Methods 0.000 claims description 11
- 238000004458 analytical method Methods 0.000 claims description 3
- 239000000284 extract Substances 0.000 description 8
- 238000011161 development Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012038 vulnerability analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/53—Decompilation; Disassembly
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3624—Software debugging by performing operations on the source code, e.g. via a compiler
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/161—Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- 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/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- 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
Abstract
本申请公开了一种针对异构芯片的异构可执行文件的反汇编方法,涉及电数字数据处理技术领域,该反汇编方法不仅可以利用反汇编工具从异构可执行文件中提取得到异构芯片的主核对应的反汇编信息,通过解析异构可执行文件提取从核的可执行数据后进一步转换数据存储格式的数据预处理过程,还可以利用反汇编工具提取得到异构芯片的从核对应的反汇编信息,使得无需借助外部其他工具,就能利用现有的反汇编工具获取到异构芯片的主核和从核的反汇编信息,可以快速有效地完成对异构芯片的反汇编操作,弥补了行业空缺。
Description
技术领域
本申请涉及电数字数据处理技术领域,尤其是一种针对异构芯片的异构可执行文件的反汇编方法。
背景技术
随着新一代人工智能技术的快速发展和突破,AI算力需求呈指数级增长,单一架构的处理器芯片已经无法处理更复杂、更多样的数据。异构芯片将不同制程、不同架构的芯片集成到一块芯片上,通常采用CPU(Central Processing Unit,中央处理器)结合GPU(Graphics Processing Unit,图形处理器)的结构,CPU作为主核用于分派任务,GPU作为从核用于加速计算,能够充分发挥CPU和GPU在计算上的灵活性,且具备多任务处理能力,因此能够显著提高AI算力和性能,降低功耗和成本,所以异构芯片目前逐渐被广泛使用。
在芯片的设计和开发过程中,利用反汇编工具对芯片的可执行文件进行反汇编提取反汇编信息,对于软件调试和漏洞分析具有重要帮助。对芯片的可执行文件的反汇编方法与芯片的架构相关,实际操作中需要选用与芯片结构匹配的反汇编工具结合匹配的反汇编方法来完成,由于异构芯片结合了架构不同的多种处理器芯片,目前常用的反汇编工具难以完成对异构芯片的反汇编,无法准确有效的提取异构芯片中各个处理器芯片的反汇编信息,影响了异构芯片的设计和开发进程。
发明内容
本申请人针对上述问题及技术需求,提出了一种针对异构芯片的异构可执行文件的反汇编方法,本申请的技术方案如下:
一种针对异构芯片的异构可执行文件的反汇编方法,该反汇编方法包括:
获取异构芯片的异构可执行文件,异构芯片集成有主核和从核,且主核和从核的芯片架构不同;
利用反汇编工具处理异构可执行文件,提取得到主核对应的反汇编信息;
解析异构可执行文件提取从核的一组可执行数据或从核串行运行的多组可执行数据,分别将从核的各组可执行数据转换为反汇编工具支持的数据存储格式,得到从核的处理后的各组可执行数据,利用反汇编工具处理从核的处理后的各组可执行数据,提取得到从核的多组可执行数据分别对应的反汇编信息。
其进一步的技术方案为,解析异构可执行文件提取从核的各组可执行数据,包括:
解析异构可执行文件并提取从核属性数据段和从核数据段;
解析从核属性数据段得到多个数据起始地址;
根据解析得到的多个数据起始地址从从核数据段中提取从核的多组可执行数据。
其进一步的技术方案为,解析从核属性数据段得到多个数据起始地址,包括:
按照目标字节数将从核属性数据段划分为连续且不重合的若干个子数据段,每个子数据段包括从核属性数据段中连续的具有目标字节数的数据;
从每个子数据段中提取一个数据起始地址。
其进一步的技术方案为,从每个子数据段中提取一个数据起始地址,包括:
读取子数据段中预定字节的数据构成的二进制序列作为对应的一组可执行数据的数据起始地址,预定字节是根据每组可执行数据的属性数据的数据格式所确定的、可执行数据的数据起始地址在属性数据中所占用的字节。
其进一步的技术方案为,根据解析得到的多个数据起始地址从提取得到的从核数据段中提取从核的多组可执行数据,包括:
以各个数据起始地址作为分界点将从核数据段划分为若干个连续且不重合的数据段,对从核数据段划分得到的每个数据段形成为从核的一组可执行数据。
其进一步的技术方案为,异构可执行文件包括若干个数据段的段名及其对应的段内容;解析异构可执行文件并提取从核属性数据段和从核数据段,包括:
从异构可执行文件中提取属性段名对应的段内容得到从核属性数据段,从异构可执行文件中提取从核文件段名对应的段内容得到从核数据段。
其进一步的技术方案为,反汇编工具为llvm-objdump工具,得到从核的处理后的可执行数据的方法包括:
将从核的数据存储格式为StringRef类型的各组可执行数据转换成数据存储格式为ObjectFile类型的处理后的各组可执行数据。
其进一步的技术方案为,提取得到从核对应的反汇编信息的方法包括:
调用llvm-objdump工具中的dumpObject接口,将从核的ObjectFile类型的处理后的可执行数据作为dumpObject接口的输入;
调用llvm-objdump工具中的disassembleObject接口,将dumpObject接口的输出作为disassembleObject接口的输入;
调用llvm-objdump工具中的与从核的芯片架构对应的getInstruction接口,将disassembleObject接口的输出作为getInstruction接口的输入,提取得到getInstruction接口输出的从核对应的反汇编信息。
其进一步的技术方案为,该反汇编方法还包括:
获取针对异构可执行文件的反汇编请求,根据反汇编请求分别提取异构芯片的主核和从核的反汇编信息,或者,根据反汇编请求仅提取异构芯片的主核的反汇编信息,或者,根据反汇编请求仅提取异构芯片的从核的反汇编信息。
本申请的有益技术效果是:
本申请公开了一种针对异构芯片的异构可执行文件的反汇编方法,该反汇编方法不仅可以利用反汇编工具从异构可执行文件中提取得到异构芯片的主核对应的反汇编信息,通过增加对异构可执行文件的数据预处理过程,还可以提取得到异构芯片的从核对应的反汇编信息,使得无需借助外部其他工具,就能利用现有的反汇编工具获取到异构芯片的主核和从核的反汇编信息,可以快速有效地完成对异构芯片的反汇编操作,弥补了行业空缺。
当异构可执行文件包括从核串行运行的多组可执行数据时,本申请的反汇编方法还可以统一提取得到从核的各组可执行数据的反汇编信息,反汇编效率较高且具有重要的实际应用价值。
本申请的反汇编方法可以基于现有主流的诸如llvm-objdump工具之类的反汇编工具实现,无需使用特殊的反汇编工具,且根据实际应用需求的不同,还可以仅提取主核或从核的反汇编信息,使用灵活性较高。
附图说明
图1是本申请一个实施例的反汇编方法的方法流程图。
图2是本申请一个实施例中解析异构可执行文件提取从核的各组可执行数据的方法流程图。
图3是本申请另一个实施例中解析异构可执行文件提取从核的各组可执行数据的方法流程图。
图4是本申请一个实施例中使用llvm-objdump工具提取异构可执行文件的主核和从核的反汇编信息的方法流程图。
具体实施方式
下面结合附图对本申请的具体实施方式做进一步说明。
本申请公开了一种针对异构芯片的异构可执行文件的反汇编方法,请参考图1所示的流程图,该反汇编方法包括:
步骤1,获取异构芯片的异构可执行文件。
异构芯片集成有主核和从核,主核和从核均为处理器芯片,且主核和从核的芯片架构不同。比如主核的芯片架构为x86-64,从核的芯片架构为teco_64。异构可执行文件是对异构芯片全局的源代码编译后得到的、能够在异构芯片上运行的二进制文件,异构芯片全局的源代码包括主核的源代码和从核的源代码。
步骤2,利用反汇编工具处理异构可执行文件,提取得到主核对应的反汇编信息。
步骤3,解析异构可执行文件提取从核的可执行数据,将从核的可执行数据转换为反汇编工具支持的数据存储格式,得到从核的处理后的可执行数据,利用反汇编工具处理从核的处理后的可执行数据,提取得到从核对应的反汇编信息。
对于异构芯片来说,编译器首先编译异构芯片全局的源代码中对应于从核的源代码生成从核的可执行数据,然后将源代码中对应于主核的源代码与从核的可执行数据进行处理并编译,最终得到异构可执行文件,由于主核与从核的芯片架构不同,因此编译得到的异构可执行文件中包含至少两个芯片架构的二进制的可执行数据。异构可执行文件具有预先自定义的数据格式,但总体来说,异构可执行文件包括若干个数据段,且从核的可执行数据作为一个独立的从核数据段被装载在异构可执行文件中。而异构可执行文件中不同的数据段具有相应的段名及其对应的段内容,通过段名可以唯一的定位一个数据段,每个数据段的段名可以预先自定义好的,因此通过预先定义的从核文件段名就可以确定异构可执行文件中用于装载从核的可执行数据的数据段,提取相应的段内容就能提取得到从核的可执行数据。
另外在实际应用时,该反汇编方法还包括获取针对异构可执行文件的反汇编请求,该反汇编请求指示用于请求对异构可执行文件完成反汇编操作类型:(1)当反汇编请求指示用于请求对异构可执行文件完成主核和从核的反汇编时,根据反汇编请求分别通过步骤2提取异构芯片的主核以及通过步骤3提取从核的反汇编信息,在这种情况下,步骤2和步骤3没有特定的先后执行顺序,图1以两个步骤并列为例。(2)当反汇编请求指示用于请求仅对异构可执行文件完成主核的反汇编时,根据反汇编请求仅通过步骤2提取异构芯片的主核的反汇编信息,在该情况中无需执行步骤3。(3)当反汇编请求指示用于请求仅对异构可执行文件完成从核的反汇编时,根据反汇编请求仅通过步骤3提取异构芯片的从核的反汇编信息,在该情况中无需执行步骤2。也即本申请的反汇编方法可以实现对异构芯片中所有处理器芯片的反汇编,但实际应用时根据使用需求不同,也可以仅对主核或仅对从核进行反汇编。
本申请提供的反汇编方法,不仅可以利用反汇编工具提取得到主核对应的反汇编信息,通过增加对异构可执行文件的数据预处理过程,还可以利用反汇编工具提取得到从核对应的反汇编信息,使得无需借助外部其他工具,就能利用现有的反汇编工具获取到异构芯片的主核和从核的反汇编信息,可以快速有效地完成对异构芯片的反汇编操作,弥补了行业空缺。
在一个实施例中,异构可执行文件包括从核串行运行的多组可执行数据,也即在编译过程中,编译器编译从核的源代码生成从核的可执行数据,在编译多组源代码得到从核的多组可执行数据后,将主核的源代码和从核的多组可执行数据进行处理并编译,得到包含从核的多组可执行数据的异构可执行文件,异构芯片在运行该异构可执行文件时,从核串行运行多组可执行数据、以串行执行从核的多组源代码。则在该实施例中,上述步骤3提取得到从核对应的反汇编信息的方法包括:解析异构可执行文件提取从核的各组可执行数据,分别将从核的各组可执行数据转换为反汇编工具支持的数据存储格式,得到从核的处理后的各组可执行数据,利用反汇编工具处理从核的处理后的各组可执行数据,提取得到从核的多组可执行数据分别对应的反汇编信息。因此当异构可执行文件包括从核的多组可执行数据时,通过本实施例提供的反汇编方法可以提取得到从核的所有各组可执行数据的反汇编信息。
在一个实施例中,解析异构可执行文件提取从核的各组可执行数据的方法包括,请参考图2所示的流程图:
解析异构可执行文件并提取从核属性数据段和从核数据段。
如上所述,异构可执行文件包括若干个数据段,每个数据段具有相应的段名及其对应的段内容。当异构可执行文件包括从核的多组可执行数据时,从核的多组可执行数据整体作为一个从核数据段被装载在异构可执行文件中。另外异构可执行文件中还包括从核的各组可执行数据的属性数据,从核的各组可执行数据的属性数据整体作为一个从核属性数据段被装载在异构可执行文件中。从核的每组可执行数据的属性数据包括该组可执行数据的数据起始地址、该组可执行数据占用的字节数以及从核的芯片架构。
而如上所述,异构可执行文件在自定义好数据格式之后,各个数据段的段名就确定好了,则从异构可执行文件中提取属性段名对应的段内容即得到从核属性数据段,从异构可执行文件中提取从核文件段名对应的段内容即得到从核数据段。
比如在一个实例中,确定属性段名为.sdaaFatBinSegment,确定从核文件段名为.sdaa_fatbin,则提取.sdaaFatBinSegment对应的段内容即得到从核属性数据段,提取.sdaa_fatbin对应的段内容即得到从核数据段。
2、提取得到的从核属性数据段包括从核的多组可执行数据的属性数据,因此进一步解析提取得到的从核属性数据段得到各组可执行数据的数据起始地址。包括如下步骤,请参考图3所示的流程图:
(1)按照目标字节数将从核属性数据段划分为连续且不重合的若干个子数据段,每个子数据段包括从核属性数据段中连续的具有目标字节数的数据,且每个子数据段是从核的一组可执行数据的属性数据。
每组可执行数据的属性数据是一串二进制序列,多组可执行数据的属性数据依次连接形成从核属性数据段被装载在异构可执行文件中。而且每组可执行数据的属性数据所占用的字节数都是相同且固定的,即为该步骤中的目标字节数,因此按照目标字节数对从核属性数据段划分得到的每个子数据段即为一组可执行数据的属性数据。
对从核属性数据段划分得到的任意第n个子数据段包括从核属性数据段中的第(n-1)*k+1个字节至第n*k个字节,n是起始值为1的参数,k为目标字节数,比如在一个实例中k=24。
(2)划分得到的每个子数据段包含从核的一组可执行数据所有的属性数据,而一组可执行数据的属性数据不仅包括可执行数据的数据起始地址,还包括其他数据,因此还需要从划分得到的每个数据段中进一步提取可执行数据的数据起始地址。
每组可执行数据的属性数据占用的字节数是固定且已知的,且每组可执行数据的属性数据的数据格式也是固定且已知的,一组可执行数据的属性数据的数据格式指示各个属性在整个属性数据的二进制序列中所占用的字节,属性包括上述列举的数据起始地址、数据大小和芯片架构,则数据起始地址在整个属性数据的中所占用的字节也是固定且已知,所以在确定每组可执行数据的属性数据的数据格式后,即可读取子数据段中预定字节的数据构成的二进制序列作为对应的一组可执行数据的数据起始地址,这里的预定字节是根据每组可执行数据的属性数据的数据格式所确定的、可执行数据的数据起始地址在属性数据中所占用的字节。
比如在一个实例中,每组可执行数据的属性数据占用24个字节,根据每组可执行数据的属性数据的数据格式确定数据起始地址占用属性数据的全部24个字节的二进制序列中的第9个字节至第16个字节,则在划分得到各个子数据段后,从每个子数据段中提取第9个字节至第16个字节的数据构成的二进制序列,即为对应的一组可执行数据的数据起始地址。
3、根据各组可执行数据的数据起始地址从提取得到的从核数据段中提取从核的多组可执行数据。与从核属性数据段类似,从核的每组可执行数据是一串二进制序列,从核的多组可执行数据依次连接形成从核数据段被装载在异构可执行文件中。因此以各个数据起始地址作为分界点将从核数据段划分为若干个连续且不重合的数据段,对从核数据段划分得到的每个数据段即形成为从综合的一组可执行数据,每组可执行数据包括从一个数据起始地址开始的连续的二进制数据。
在一个实施例中,对异构芯片完成主核和从核的反汇编时所使用的反汇编工具为llvm-objdump工具,llvm-objdump工具是开源框架llvm提供的反汇编工具,是目前主流且常用的反汇编工具。则基于llvm-objdump工具实现的反汇编方法包括如下过程,请参考图4所示的流程图:
上述步骤2中利用llvm-objdump工具提取得到主核对应的反汇编信息的方法包括:(1)将异构可执行文件输入llvm-objdump工具,llvm-objdump工具将二进制的异构可执行文件转换成其支持的ObjectFile类型的数据存储格式。(2)调用llvm-objdump工具中的dumpObject接口,将ObjectFile类型的异构可执行文件作为dumpObject接口的输入。(3)调用llvm-objdump工具中的disassembleObject接口,将dumpObject接口的输出作为disassembleObject接口的输入。(4)调用llvm-objdump工具中的与主核的芯片架构对应的getInstruction接口,将disassembleObject接口的输出作为getInstruction接口的输入,提取得到getInstruction接口输出的主核对应的反汇编信息。
上述步骤3中利用llvm-objdump提取得到从核对应的反汇编信息的方法包括:(1)解析异构可执行文件提取从核的可执行数据。(2)将从核的数据存储格式为StringRef类型的可执行数据转换成数据存储格式为ObjectFile类型的处理后的可执行数据。(3)调用llvm-objdump工具中的dumpObject接口,将从核的ObjectFile类型的处理后的可执行数据作为dumpObject接口的输入。(4)调用llvm-objdump工具中的disassembleObject接口,将dumpObject接口的输出作为disassembleObject接口的输入。(5)调用llvm-objdump工具中的与从核的芯片架构对应的getInstruction接口,将disassembleObject接口的输出作为getInstruction接口的输入,提取得到getInstruction接口输出的从核对应的反汇编信息。当异构可执行文件包括从核的多组可执行数据时,步骤(1)提取得到从核的多组可执行数据,则对于提取得到的从核的每组可执行数据都按照步骤(2)~步骤(5)的方法提取得到对应一组可执行数据的反汇编信息。
以上所述的仅是本申请的优选实施方式,本申请不限于以上实施例。可以理解,本领域技术人员在不脱离本申请的精神和构思的前提下直接导出或联想到的其他改进和变化,均应认为包含在本申请的保护范围之内。
Claims (8)
1.一种针对异构芯片的异构可执行文件的反汇编方法,其特征在于,所述反汇编方法包括:
获取异构芯片的异构可执行文件,所述异构芯片集成有主核和从核,且所述主核和所述从核的芯片架构不同;
利用反汇编工具处理所述异构可执行文件,提取得到所述主核对应的反汇编信息;
解析所述异构可执行文件提取所述从核的一组可执行数据或所述从核串行运行的多组可执行数据,分别将所述从核的各组可执行数据转换为所述反汇编工具支持的数据存储格式,得到所述从核的处理后的各组可执行数据,利用所述反汇编工具处理所述从核的处理后的各组可执行数据,提取得到所述从核的多组可执行数据分别对应的反汇编信息;
其中,解析所述异构可执行文件提取所述从核串行运行的多组可执行数据包括:解析所述异构可执行文件并提取从核属性数据段和从核数据段,解析所述从核属性数据段得到多个数据起始地址,根据解析得到的多个数据起始地址从提取得到的所述从核数据段中提取所述从核的多组可执行数据。
2.根据权利要求1所述的针对异构芯片的异构可执行文件的反汇编方法,其特征在于,所述解析所述从核属性数据段得到多个数据起始地址,包括:
按照目标字节数将所述从核属性数据段划分为连续且不重合的若干个子数据段,每个子数据段包括所述从核属性数据段中连续的具有所述目标字节数的数据;
从每个子数据段中提取一个数据起始地址。
3.根据权利要求2所述的针对异构芯片的异构可执行文件的反汇编方法,其特征在于,所述从每个子数据段中提取一个数据起始地址,包括:
读取所述子数据段中预定字节的数据构成的二进制序列作为对应的一组可执行数据的数据起始地址,所述预定字节是根据每组可执行数据的属性数据的数据格式所确定的、所述可执行数据的数据起始地址在所述属性数据中所占用的字节。
4.根据权利要求1所述的针对异构芯片的异构可执行文件的反汇编方法,其特征在于,所述根据解析得到的多个数据起始地址从提取得到的所述从核数据段中提取所述从核的多组可执行数据,包括:
以各个数据起始地址作为分界点将所述从核数据段划分为若干个连续且不重合的数据段,对所述从核数据段划分得到的每个数据段形成为所述从核的一组可执行数据。
5.根据权利要求1所述的针对异构芯片的异构可执行文件的反汇编方法,其特征在于,所述异构可执行文件包括若干个数据段的段名及其对应的段内容;所述解析所述异构可执行文件并提取从核属性数据段和从核数据段,包括:
从所述异构可执行文件中提取属性段名对应的段内容得到所述从核属性数据段,从所述异构可执行文件中提取从核文件段名对应的段内容得到所述从核数据段。
6.根据权利要求1所述的针对异构芯片的异构可执行文件的反汇编方法,其特征在于,所述反汇编工具为llvm-objdump工具,得到所述从核的处理后的各组可执行数据的方法包括:
将所述从核的数据存储格式为StringRef类型的各组可执行数据转换成数据存储格式为ObjectFile类型的处理后的各组可执行数据。
7.根据权利要求6所述的针对异构芯片的异构可执行文件的反汇编方法,其特征在于,提取得到所述从核对应的反汇编信息的方法包括:
调用llvm-objdump工具中的dumpObject接口,将所述从核的ObjectFile类型的处理后的可执行数据作为dumpObject接口的输入;
调用llvm-objdump工具中的disassembleObject接口,将dumpObject接口的输出作为disassembleObject接口的输入;
调用llvm-objdump工具中的与所述从核的芯片架构对应的getInstruction接口,将disassembleObject接口的输出作为getInstruction接口的输入,提取得到getInstruction接口输出的所述从核对应的反汇编信息。
8.根据权利要求1所述的针对异构芯片的异构可执行文件的反汇编方法,其特征在于,所述反汇编方法还包括:
获取针对所述异构可执行文件的反汇编请求,根据所述反汇编请求分别提取所述异构芯片的主核和从核的反汇编信息,或者,根据所述反汇编请求仅提取所述异构芯片的主核的反汇编信息,或者,根据所述反汇编请求仅提取所述异构芯片的从核的反汇编信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310644672.5A CN116360798B (zh) | 2023-06-02 | 2023-06-02 | 一种针对异构芯片的异构可执行文件的反汇编方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310644672.5A CN116360798B (zh) | 2023-06-02 | 2023-06-02 | 一种针对异构芯片的异构可执行文件的反汇编方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116360798A CN116360798A (zh) | 2023-06-30 |
CN116360798B true CN116360798B (zh) | 2023-08-18 |
Family
ID=86913392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310644672.5A Active CN116360798B (zh) | 2023-06-02 | 2023-06-02 | 一种针对异构芯片的异构可执行文件的反汇编方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116360798B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112306678A (zh) * | 2020-10-22 | 2021-02-02 | 中国海洋大学 | 一种基于异构众核处理器的算法并行处理方法及系统 |
CN113626017A (zh) * | 2021-07-06 | 2021-11-09 | 曙光信息产业(北京)有限公司 | 异构程序的分析方法、装置、计算机设备和存储介质 |
CN114594962A (zh) * | 2022-03-07 | 2022-06-07 | 北京奕斯伟计算技术有限公司 | 机器码的反汇编系统、反汇编方法、计算机设备及存储介质 |
CN114942748A (zh) * | 2021-09-30 | 2022-08-26 | 太初(无锡)电子科技有限公司 | 一种异构编程模型并行方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110153982A1 (en) * | 2009-12-21 | 2011-06-23 | Bbn Technologies Corp. | Systems and methods for collecting data from multiple core processors |
US20190303159A1 (en) * | 2018-03-29 | 2019-10-03 | Intel Corporation | Instruction set architecture to facilitate energy-efficient computing for exascale architectures |
-
2023
- 2023-06-02 CN CN202310644672.5A patent/CN116360798B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112306678A (zh) * | 2020-10-22 | 2021-02-02 | 中国海洋大学 | 一种基于异构众核处理器的算法并行处理方法及系统 |
CN113626017A (zh) * | 2021-07-06 | 2021-11-09 | 曙光信息产业(北京)有限公司 | 异构程序的分析方法、装置、计算机设备和存储介质 |
CN114942748A (zh) * | 2021-09-30 | 2022-08-26 | 太初(无锡)电子科技有限公司 | 一种异构编程模型并行方法 |
CN114594962A (zh) * | 2022-03-07 | 2022-06-07 | 北京奕斯伟计算技术有限公司 | 机器码的反汇编系统、反汇编方法、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116360798A (zh) | 2023-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109710215B (zh) | 分布式流计算的可视化流程处理引擎及其使用方法 | |
US20100306750A1 (en) | Parallel program generation method | |
CA2997061C (en) | Method and system for parallelization of ingestion of large data sets | |
AU2015231828A1 (en) | Parallel decision tree processor architecture | |
US9753705B2 (en) | Conditional compilation of bytecode | |
CN106020920A (zh) | 一种jcvm解释器的预处理方法及系统 | |
CN113568836B (zh) | 多时间序列的样本特征提取方法以应用其的软件检测方法 | |
CN116360798B (zh) | 一种针对异构芯片的异构可执行文件的反汇编方法 | |
US20160371068A1 (en) | Computer that performs compiling, compiler program, and link program | |
CN109960590B (zh) | 一种优化嵌入式系统诊断打印的方法 | |
CN110941655A (zh) | 一种数据格式转换方法及装置 | |
CN114625376A (zh) | 数据传递方式转化方法、装置、电子设备及可读存储介质 | |
CN108153530A (zh) | 字节码的优化方法、装置、存储介质、处理器及终端 | |
CN109710419B (zh) | 基于文本分析的mpi代码通信过程解析方法 | |
CN114063943A (zh) | 数据传输系统、方法、装置、介质和设备 | |
CN111367937A (zh) | 一种数据处理方法和装置 | |
CN114127681A (zh) | 用于实现数据流ai应用的自主加速的方法和装置 | |
CN112416362B (zh) | 一种pdk编译功能的实现方法 | |
CN113031952A (zh) | 深度学习模型的执行代码的确定方法、装置及存储介质 | |
CN116560667B (zh) | 一种基于预编译延迟执行的拆分调度系统及方法 | |
CN114091111B (zh) | 一种区块链智能合约的存储方法及装置 | |
CN112114817B (zh) | 基于cobol语言的数据字典字段信息获取方法及装置 | |
CN116775135A (zh) | 一种基于流水线技术的并行架构设计与实现方法 | |
EP0348563A1 (en) | A system and method for generating program object modules | |
Meng et al. | Software and Hardware Integrated Accelerators for Hadoop Appliance |
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 |