CN114780146A - 资源地址查询方法、装置、系统 - Google Patents

资源地址查询方法、装置、系统 Download PDF

Info

Publication number
CN114780146A
CN114780146A CN202210689194.5A CN202210689194A CN114780146A CN 114780146 A CN114780146 A CN 114780146A CN 202210689194 A CN202210689194 A CN 202210689194A CN 114780146 A CN114780146 A CN 114780146A
Authority
CN
China
Prior art keywords
address
resource
group
addresses
target
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
Application number
CN202210689194.5A
Other languages
English (en)
Other versions
CN114780146B (zh
Inventor
江靖华
曹奇中
张坚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenliu Micro Intelligent Technology Shenzhen Co ltd
Original Assignee
Shenliu Micro Intelligent Technology Shenzhen Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenliu Micro Intelligent Technology Shenzhen Co ltd filed Critical Shenliu Micro Intelligent Technology Shenzhen Co ltd
Priority to CN202210689194.5A priority Critical patent/CN114780146B/zh
Publication of CN114780146A publication Critical patent/CN114780146A/zh
Application granted granted Critical
Publication of CN114780146B publication Critical patent/CN114780146B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明实施例公开了一种资源地址查询方法、装置、电子设备和计算机可读存储介质。该方法包括:获取当前指令中的相对地址和指向资源地址库的索引,其中,该索引指向该资源地址库的一行条目,该条目包括获取该资源地址库中资源地址的信息;根据该相对地址和该索引,计算出群地址集合,其中,该群地址集合中包括多个群地址,每个运算单元对应一个群地址;将该群地址集合转换为目标地址集合,其中,该目标地址集合中包括的目标地址为算数逻辑单元ALU可直接使用的地址。通过本发明实施例,解决了相关技术中地址分配系统架构复杂的技术问题,达到了简化地址分配系统架构的技术效果。

Description

资源地址查询方法、装置、系统
技术领域
本发明涉及资源访问领域,尤其涉及一种资源地址查询方法、装置、系统、电子设备和计算机可读存储介质。
背景技术
在向量,超长指令字(Very Long Instruction Word,简称为VLIW),单指令多数据流(Single Instruction Multiple Data,简称为SIMD)及单指令多线程(SingleInstruction Multiple Threads,简称为SIMT)并行、多线程计算应用中,指令中数据源是限制在连续或固定格式的储存上。这是因为一个资源“地址”要为多个线程提供数据,指令调度单元必须能够为每个运算单元提供数据源地址。在复杂数据结构通过处理器网络时,也面临同一问题:要么传送大量数据,要么传送一系列指针,这要求有全局的内存资源设计,增加了系统的复杂性和可操作性。因此,相关技术存在以下不足:
不足1:占用大量码空间,受指令大小的限制。
不足2:在处理器之间传送复杂数据结构时,占用储存及通道带宽。
不足3:灵活度小,在同一位置上的操作数必须是连续的,数据结构和储存复杂。
不足4:需要全局地址管理,使加嵌异构模块困难。
不足5:不能应对现代复杂异构计算需要来自非连续地址的操作数源。
针对相关技术中,地址分配系统架构复杂的问题,尚未提出有效地解决方案。
发明内容
本发明实施例提供了一种资源地址查询方法、装置、系统、电子设备和计算机可读存储介质,以至少解决相关技术中地址分配系统架构复杂的技术问题。
根据本发明实施例的一个方面,提供了一种资源地址查询方法,包括:获取当前指令中的相对地址和指向资源地址库的索引,其中,所述索引指向所述资源地址库的一行条目,所述条目包括用于获取所述资源地址库中资源地址的信息;根据所述相对地址和所述索引,计算出群地址集合,其中,所述群地址集合中包括多个群地址,每个运算单元对应一个群地址;将所述群地址集合转换为目标地址集合,其中,所述目标地址集合中包括的目标地址为算数逻辑单元ALU可直接使用的地址。
可选地,所述根据所述相对地址和所述索引,计算出群地址集合包括:获取所述信息中的目标信息,其中,所述目标信息包括以下至少之一:用于计算资源地址的算法、格式以及基址;根据所述相对地址和所述目标信息,计算出所述群地址集合。
可选地,所述方法还包括:修改所述资源地址库,其中,所述修改所述资源地址库包括:设置目标指令,通过所述目标指令指示地址查询器修改所述资源地址库,其中,所述目标指令包括要修改的资源地址一行的索引和要修改的数据;或者,通过总线修改所述资源地址库。
可选地,所述方法还包括:设置主备资源地址库,其中,所述主备资源地址库的个数至少包括两个。
可选地,所述方法还包括:设置root级用户具备所述资源地址库的处理权限。
根据本发明实施例的另一个方面,还提供了一种资源地址查询装置,包括:获取模块,用于获取当前指令中的相对地址和指向资源地址库的索引,其中,所述索引指向所述资源地址库的一行条目,所述条目包括获取所述资源地址库中资源地址的信息;计算模块,用于根据所述相对地址和所述索引,计算出群地址集合,其中,所述群地址集合中包括多个群地址,每个运算单元对应一个群地址;转换模块,用于将所述群地址集合转换为目标地址集合,其中,所述目标地址集合中包括的目标地址为算数逻辑单元ALU可直接使用的地址。
根据本发明实施例的又一个方面,还提供了一种资源地址查询系统,包括:解码器,用于获取当前指令中的相对地址和指向资源地址库的索引,其中,所述索引指向所述资源地址库的一行条目,所述条目包括获取所述资源地址库中资源地址的信息;地址查询器,用于根据所述相对地址和所述索引,计算出群地址集合,其中,所述群地址集合中包括多个群地址,每个运算单元对应一个群地址;子命令生成器,用于将所述群地址集合与指定信息组成目标子运算命令;任务调度器,用于将所述目标子运算命令分发至对应的运算单元;多个运算单元,用于将运算结果写入到所述群地址。
可选地,所述资源地址查询系统包括多个,多个所述资源地址查询系统被设置在多个处理器中。
本发明实施例提供一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行上述任一项方法的步骤。
本发明实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有指令,指令被处理器执行时实现上述任一项方法的步骤。
本发明实施例中,获取当前指令中的相对地址和指向资源地址库的索引,其中,该索引指向该资源地址库的一行条目,该条目包括获取该资源地址库中资源地址的信息;根据该相对地址和该索引,计算出群地址集合,其中,该群地址集合中包括多个群地址,每个运算单元对应一个群地址;将该群地址集合转换为目标地址集合,其中,该目标地址集合中包括的目标地址为算数逻辑单元ALU可直接使用的地址。也就是说,本发明实施例,可以动态计算出资源地址,不要求指令直接编入复杂结构资源地址,也不要求寄存器传入复杂结构资源地址,简化了指令结构以及系统架构,进而解决了相关技术中地址分配系统架构复杂的问题,达到了简化地址分配系统架构的技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例提供的一种资源地址查询方法的流程示意图;
图2为本发明实施例提供的一种群地址示意图;
图3为本发明实施例提供的一种资源地址查询系统的示意图一;
图4为本发明实施例提供的一种资源地址查询系统的示意图二;
图5为本发明实施例提供的一种资源地址查询系统的示意图三;
图6为本发明实施例提供的一种资源地址查询装置的示意图一;
图7为本发明实施例提供的一种资源地址查询装置的示意图二;
图8为本发明实施例提供的一种资源地址查询装置的示意图三;
图9为本发明实施例提供的一种资源地址查询装置的示意图四;
图10为本发明实施例提供的一种资源地址查询装置的示意图五;
图11为本发明实施例提供的一种资源地址查询装置的示意图六。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于限定特定顺序。
本发明实施例提供了一种资源地址查询方法,图1为本发明实施例提供的一种资源地址查询方法的流程示意图。
可选地,本发明实施例的应用场景包括但并不限于:中央处理器、图形处理器、数字处理器,网络处理器。也可以应用于多核多处理器大系统,包括超算,运营商级路由器交换机,堡垒机,云计算,大数据中心。
如图1所示,本申请实施例提供的资源地址查询方法包括以下步骤:
S102,获取当前指令中的相对地址和指向资源地址库的索引,其中,该索引指向该资源地址库的一行条目,该条目包括用于获取该资源地址库中资源地址的信息;
需要说明的是,资源地址可以是编入指令的资源的统一地址。一个指令可以使用一个或多个资源地址,比如源地址和目标地址。
群地址为一个代表一组变量的基地址。比如一个四维向量的基址,一个二维圆形的中心。在知道这个群地址和变量的储存架构后,用户就可以获取变量组的所有分量的地址。群地址可以是物理地址,也可以是虚拟地址。群地址可以根据场景定义。如图2所示的两个群地址例子。
S104,根据该相对地址和该索引,计算出群地址集合,其中,该群地址集合中包括多个群地址,每个运算单元对应一个群地址;
可选地,该根据该相对地址和该索引,计算出群地址集合包括:
S11,获取该信息中的目标信息,其中,该目标信息包括以下至少之一:用于计算资源地址的算法、格式以及基址;
S12,根据该相对地址和该目标信息,计算出该群地址集合。
需要说明的是,上述运算单元为最后使用地址的运算子系统,例如ALU。运算单元看到的是群地址。
S106,将该群地址集合转换为目标地址集合,其中,该目标地址集合中包括的目标地址为算数逻辑单元ALU可直接使用的地址。
通过上述步骤S102~S106,获取当前指令中的相对地址和指向资源地址库的索引,其中,该索引指向该资源地址库的一行条目,该条目包括获取该资源地址库中资源地址的信息;根据该相对地址和该索引,计算出群地址集合,其中,该群地址集合中包括多个群地址,每个运算单元对应一个群地址;将该群地址集合转换为目标地址集合,其中,该目标地址集合中包括的目标地址为算数逻辑单元ALU可直接使用的地址。也就是说,本发明实施例,可以动态计算出资源地址,不要求指令直接编入复杂结构资源地址,也不要求寄存器传入复杂结构资源地址,简化了指令结构以及系统架构,进而解决了相关技术中地址分配系统架构复杂的问题,达到了简化地址分配系统架构的技术效果。
在一个可选地实施方式中,上述方法还包括:
S21,修改该资源地址库,其中,该修改该资源地址库包括:
S211,设置目标指令,通过该目标指令指示地址查询器修改该资源地址库,其中,该目标指令包括要修改的资源地址一行的索引和要修改的数据;
或者,S212,通过总线修改该资源地址库。
通过上述步骤S21以及S211~S212,可以修改该资源地址库,在不停机情况下对运行码进行改动从而实现改变系统执行流程,这可以用于实现不停机加载修补程序(hotfix)。
可选地,上述方法还包括:
S31,设置主备资源地址库,其中,该主备资源地址库的个数至少包括两个。
通过上述步骤S31,进一步提高了资源地址查询系统的灵活性。
可选地,上述方法还包括:
S41,设置root级用户具备该资源地址库的处理权限。
通过上述步骤S41,进一步提高了资源地址查询系统的安全性。
本发明实施例还提供了一种资源地址查询系统。
大部分资源访问模式都是有规律的,变化是有限并可描述的。因此,可以创建一个具有可预测,可管理的地址查询系统。这个系统包括逻辑执行单元和必须的存储单元,可以通过软件实现,也可以直接在集成电路上实现。可以根据具体需要,把这个系统做多个拷贝,预置于需要使用资源的子系统附近或内部,从而实现低延迟访问和所需带宽。对每个拷贝的具体物理实现方式无要求,只要做到功能上等同即可。
如图3所示,本申请实施例提供的资源地址查询系统包括:
解码器32,用于获取当前指令中的相对地址和指向资源地址库的索引,其中,该索引指向该资源地址库的一行条目,该条目包括获取该资源地址库中资源地址的信息;
地址查询器34,用于根据该相对地址和该索引,计算出群地址集合,其中,该群地址集合中包括多个群地址,每个运算单元对应一个群地址;
子命令生成器36,用于将该群地址集合与指定信息组成目标子运算命令;
任务调度器38,用于将该目标子运算命令分发至对应的运算单元;
多个运算单元40,用于将运算结果写入到该群地址。
在一个可选地实施方式中,资源地址查询系统可以包括多个,多个该资源地址查询系统被设置在多个处理器中。
下面结合具体示例,对本实施例进行举例说明。
关于统一地址:对一个多元系统,像多处理器、异构系统、多IO系统,进行地址空间统一管理,进而实现连续单一地址空间。每一单元可以有自己的物理地址,通过内存管理单元(Memory Management Unit,简称为MMU)和本实施例的地址查询系统做到单一地址空间。图4描述了这样一个系统。在以下描述中,假设所有应用层软件都用这个地址。
如图5所示的地址查询系统(对应资源地址查询系统),该系统是两个两级系统。
第一级,命令处理器在执行任务指令时,需要向每个运算单元发送所需资源地址。在分布式或异构式计算模式下,每个运算单元的资源地址需要通过计算才能得到。调度器将任务指令解码,提取资源的相对地址和指向资源地址库的索引。这个索引指向资源地址库的一行条目。这一条目包含获取资源地址的所有信息:算法,格式,基址。资源查询系统用这些信息和相对地址算出每个运算单元的群地址。子命令生成器把这些群地址在和其它信息编码组成新的子运算命令,由任务调动器分发到各个运算单元。这就完成了第一级地址的获取。
第二级地址系统设在每个运算单元中。这第二级地址系统把第一级传下来的群地址转为算术逻辑单元(ALU)可直接使用地址(可以是虚拟地址,也可以是物理地址),可同时使用多个数据,比如图像使用的四维向量,纹理(texture)等。运算单元可以在这些地址上读和写,进行各类运算,包括图像渲染,机器学习等等。这些地址可以是直接物理地址,也可以是虚拟地址。
地址查询系统可以放入多处理器包括异构计算中,实现全局同一地址空间系统。
下面将详细描述每个组成部分细节,和运作方式。
地址查询系统描述:
地址查询系统包括两大部分:1)可编程资源地址查询器;2)资源地址库。图5描述此系统流程和模块。下面具体描述这两个模块。
地址查询器:
各类指令进入命令处理器后,第一站是解码器。解码器将指令中得相对地址和地址索引取出,送入地址查询器。地址索引指向资源地址库得一“行”。地址查询器发出读命令,把这行信息读回,并进行解读,最终形成一个群地址模板(template)。这个模板被送到下一级子命令生成器。子命令生成器将群地址模板和解码器直接送来的其它信息结合,产生一系列子命令。每个子命令对应一个运算单元。这些子命令被发送到任务调动器的输入队列里。任务调动器将子命令逐一送到对应的运算单元。任务调动器必须根据每个运算单元的工作量,或者事先程控的方法发送子命令。如果对应运算单元有当前无法接受子命令,任务调动器将重新排队把子命令送入空闲的运算单元。子命令发送次序可以是任意的,也可以是根据单个运算单元的能力或者地址和任务分配。所有这些都是可以程控的。
地址查询器还可以用来修改资源地址库。修改指令可以将资源地址库内容改变。这种修改方式降低读和写的可能冲突,保证库数据和正运行中的操作的一致性,降低软件的复杂度。不用地址查询器的改写资源地址库的方法在下面描述。
资源地址库框架结构:
资源地址库是个的动态数据库。我们这里描述一个单级复合型库结构。这里复合是说库内可以存指针,并右指针去获得所需内容。
表1描述了一个资源地址库结构。库可以用二维表实现。每一行(栏目)可以通过地址索引读写。地址查询器将解码器送来的地址索引换成地址从资源地址库去读写内容。这个库可以是在主存或者命令处理器的内存或者缓存。
Figure 32849DEST_PATH_IMAGE001
I是索引。每一行代表库的一个条目。这个条目存着所需的运行规则字段。地址查询系统使用这些规则进行地址查找。每个字段在下面解释。
库中每一条目字段为:V这一条目有无效;1=有效,0=无效;T地址类型(AddressType)。
有以下三种获取类型:D,L,F。最终算的地址可以是虚拟地址也可以是物理地址,具体要看整个系统配置。这个地址也可以是群地址,比如图像向量计算用的多组四维数。以下p是运算单元的序号,AR是相对地址。
直接地址(D)
AG = AR;相对地址直接作为运算单元可以使用的群地址AG
简单线性方程(L)
AG = (AB << SB) + (AZ[p] << SZ) + (AR << SW);
方程里:(AB << SB)是基址;(AZ[p] << SZ)是子基址;(AR << SW)是在最终基址的相对地址。
可编程动态计算函数(F)
AG = f(p, AR);基址(AB << SB)和子基址(AZ[p] << SZ)作为全程变量。这些函数f(p, AR)可以是软件、固件、或硬件实现。尽管这一选项给地址计算带来很大灵活性,但有可能增加获取地址时间。因此硬化实现常用函数是最佳选项。
SB基址左移量
(AB << SB)是全局内存地址的基址。
SZ子基址左移量
(AB << SB) + (AZ[p] << SZ) 是子基址。
SW相对地址左移量
这是运算系统一次可读写的数据宽度。
(AB << SB) + (AZ[p] << SZ) + (AR << SW)是计算出的群地址AG
X数值转变模式(Transformation)
下面的选项是支持运算单元选择数值转变模式:1)数据读出后不能直接使用,必须转换格式,精度,宽度,或解压缩;2)数据写出之前必须执行和1)相反的操作;3)多元数据要交换位置,比如图像处理中向量的分量需要换位。数值转变模式直接传入运算单元。
直接使用,Mask(M)和Shift(S),格式和精度转换(F),各类格式和精度转换。包括所有AI和GPU运算所需的格式转换,国际/国家标准模式/IEEE等模式。比如:
a.Float→integer
b.b16→integer
压缩及解压缩(C)
各种算法包括各类常用和工业标准方法
M Mask,把读出的数据有这个mask屏蔽掉。
S位移(shift),读出的数值(D)经过左移和屏蔽得到使用的数值D’,D’= D<<S &M。
f地址函数,用于计算地址的函数。看上述“可编程动态计算函数”。
F精度格式转换模式,读出或写入的转换精度格式转换模式。
L群地址调换(运算单元地址子系统),运算单元通过地址调配表决定怎么使用群地址AG去得到最终使用地址Af[i]。这里i是多维地址的维度数i = 0→v。
线性 Af[i] = AG + SG×i for i = 0→v;
正转 Af[i] = AG + ((i + SR) % v) for i = 0→v;
反旋 Af[i] = AG + ((i + v - SR) % v) for i = 0→v;
地址调配(Swizzle),根据地址调配表(TAS)进行地址交换。SL决定使用哪一行地址交换。具体使用的地址是:
Af[i] = AG + Af[TAS[SL][i]] for i = 0→v。
Figure 277885DEST_PATH_IMAGE002
地址调配表可以通过总线去设置或初始化,也可以通过设置指令去设置或初始化。请参阅资源地址库设置一节。
E纠错码(Error Correction Code),纠错码起到保护每一条目的目的。每次改变一个字节都要重新计算。
Figure 526464DEST_PATH_IMAGE003
通常在一应用中,地址结构变化有限。上述库表不会太大,可以将其放入就近的最佳储存,像L0缓存或共享内存。如果不需改写,可放入只读的内存。
系统指令集编码,这里我们用汇编语言解释指令结构。本发明不限于集成电路,可以用于各类软件及系统。这里的编码只强调涉及于地址的部分。
Figure 764416DEST_PATH_IMAGE004
Op指令码,代表具体命令,比如做一MAC(乘积)或MAD(乘加)。
Tc:Type 1:Tc = 0;I1 ... In是地址索引(I);Type 2:Tc = 1;R1 ... Rn是寄存器。他们的内容是要读写地址在地址查询系统的索引(I)。
TRW读还是写。写用于初始化或改变资源地址库。读是用于正常计算群地址。
Type 1:TRW = 0;
读:用于正常地址运算。
Type 2:TRW = 1;
写:用于改写资源数据库和初始化。
V这个条目有效可用。
V=0:这个条目不能用。在改写很多字段或初始化时,除了最后一个字段都用V=0。
V=1:这个条目可以用。在改写最后一个字段时用V=1,这样这个条目就可以用了。
F要写入的字段。下面是选择:V、T、X、SB、SZ、SW、M、S、F、L、f,看资源地址库框架结构。
C要写入的字段的内容。具体内容根据以上选项一致。
资源地址库设置及初始化。资源地址库必须在初始化以后才能使用。有两个方式去改写资源地址库内容。
第一个方式是用设置指令让地址查询器去修改。这些特设的指令有含有要改写的资源地址库一行的索引和要改入的数据。和查找地址一样,地址查询器用这个索引算出地址,把要改些的字段按此地址写入。第一方式的好处是读写库指令被序列化了,从而不会出现读写冲突。在整个系统运营过程中,这是最佳改库方式。设置指令的格式在系统指令集编码中描述。
第二个方式是直接通过总线对资源地址库改动。这种方式效率高,可以用驱动软件直接对资源地址库写入。初始化时这是最佳方式。
资源地址库在无内容时必须初始成无效,即V=0。
资源实时调送系统软件调配。当系统需要改变执行流程时,可以通过改写资源地址库来实现。这大大提高可编程范围和系统灵活性。为了保证各个子系统同步,需要一个用户参考计数,并主备两份(或更多)的资源地址库的机制来进行实时更改。当把任务发到运算单元时,用户参考计数要相应增加。当任务结束时,用户参考计数要相应减少。先在备份上改动,当用户参考计数为零时,主备资源地址储存库交换。参看资源地址库设置及初始化。
多处理器和异构系统(如图6所示)。在多处理器和异构系统,可以把地址查询系统放入每个处理器里。通过设置资源地址库去分配整个地址空间,实现统一的全局地址使上层软件看到一个连续的地址空间,从而简化软件复杂程度。
具体实现方式:地址查询系统不需要太多储存空间,这是因为大部分系统及应用的地址结构变化有限。同时,地址是通过索引和相对地址,降低了对总线宽度的要求。这样可以容易地将其放置在离用户最近的地方,例如ALU的L0缓存,共享内存等,整个系统从而可以以最低功耗,最小访问延迟,获取所需资源地址。
地址查询系统也可以通过软件实现。算法和上面描述的一样。
运做流程,地址查询系统运作流程用图5来解释:
①执行开始;
命令处理器将系统指令(含有资源地址索引和相对地址)读入,开始运算。
②解码;
根据具体指令集编码模式,解码器取出资源地址索引、相对地址、及其它字段。
③地址查询运算;
在对指令解码后,地址查询器用地址索引在资源地址库中找出相应条目,并根据设置的相应运算规则计算出群地址。资源地址库框架结构讲述了运算规则。
④产生子命令;
子命令生成器根据群地址,和解码器传下来的其它字段,对每个下一级运算单元产生一个子命令。每个子命令被发送到任务调度器去。
⑤任务分发;
任务调度器得到这些子命令后,根据具体调动算法把命令逐一发到运算单元上去。这些地址群包括读和写所需的向量化的地址,相应参数,操作模式。
⑥任务执行;
在每个运算单元拿到子命令后,解码取出读所需的群地址后,读取所需数据组,按照具体数值转变模式进行转换,然后按运算指令进行运算,再按数值转变模式进行转换,最终会把结果写入到指定写群地址。图2给出群地址两个例子,使用方式根据具体计算要求。
异常处理如下:
无效错误栏目:条目没有初始化,或被软件设为不能用;
超出范围的访问:索引超出范围;
转换计算失败;
地址转换结构不存在,所以失败;
算出地址超出地址空间;
命令超时;
系统无资源;
系统安全。
因为此系统读写地址可以被改变,恶意攻击可以改变数据达到改变流程流向,从而达到控制系统,注入malware及更多。所以只有root级用户可以设置修改资源地址储存库权限。
通过上述示例,通过检索到地址表查找或动态计算出地址,不要求指令直接编入地址,也不要求寄存器传入地址;灵活获取地址,可以是离散型,也可以是动态计算结果。可以通过改动资源系统数据,在不停机情况下对运行码进行改动从而实现改变系统执行流程。这可以用于实现不停机加载修补程序(hotfix),进而简化地址分配系统软件架构,降低实现统一的全局地址系统的难度。降低系统架构复杂程度,减低集成多模块的难度,实现大规模复杂异体架构计算。即可横向也可纵向扩展系统。缩短研发时间和简化随属工序。简化指令结构,降低对模块之间传递带宽和储存要求。从而加快系统运行速度,同时减少整体能耗。减少停机时间和对用户运营负面影响。
本发明实施例还提供了一种资源地址查询装置,如图7所示,该装置包括:
获取模块72,用于获取当前指令中的相对地址和指向资源地址库的索引,其中,该索引指向该资源地址库的一行条目,该条目包括获取该资源地址库中资源地址的信息;
需要说明的是,资源地址可以是编入指令的资源的统一地址。一个指令可以使用一个或多个资源地址,比如源地址和目标地址。
群地址为一个代表一组变量的基地址。比如一个四维向量的基址,一个二维圆形的中心。在知道这个群地址和变量的储存架构后,用户就可以获取变量组的所有分量的地址。群地址可以是物理地址,也可以是虚拟地址。群地址可以根据场景定义。如图2所示的两个群地址例子。
计算模块74,用于根据该相对地址和该索引,计算出群地址集合,其中,该群地址集合中包括多个群地址,每个运算单元对应一个群地址;
需要说明的是,上述运算单元为最后使用地址的运算子系统,例如ALU。运算单元看到的是群地址。
转换模块76,用于将该群地址集合转换为目标地址集合,其中,该目标地址集合中包括的目标地址为算数逻辑单元ALU可直接使用的地址。
通过图7所示装置,获取当前指令中的相对地址和指向资源地址库的索引,其中,该索引指向该资源地址库的一行条目,该条目包括获取该资源地址库中资源地址的信息;根据该相对地址和该索引,计算出群地址集合,其中,该群地址集合中包括多个群地址,每个运算单元对应一个群地址;将该群地址集合转换为目标地址集合,其中,该目标地址集合中包括的目标地址为算数逻辑单元ALU可直接使用的地址。也就是说,本发明实施例,可以动态计算出资源地址,不要求指令直接编入复杂结构资源地址,也不要求寄存器传入复杂结构资源地址,简化了指令结构以及系统架构,进而解决了相关技术中地址分配系统架构复杂的问题,达到了简化地址分配系统架构的技术效果。
可选地,如图8所示,上述计算模块74包括:
获取单元82,用于获取该信息中的目标信息,其中,该目标信息包括以下至少之一:用于计算资源地址的算法、格式以及基址;
计算单元84,用于根据该相对地址和该目标信息,计算出该群地址集合。
可选地,如图9所示,上述装置还包括:
修改模块92,用于修改该资源地址库,其中,该修改模块还用于设置目标指令,通过该目标指令指示地址查询器修改该资源地址库,其中,该目标指令包括要修改的该资源地址一行的索引和要修改的数据;或者,通过总线修改该资源地址库。
通过图9所示装置,可以修改该资源地址库,在不停机情况下对运行码进行改动从而实现改变系统执行流程,这可以用于实现不停机加载修补程序(hotfix)。
在一个可选地实施方式中,如图10所示,上述装置还包括:
第一设置模块102,用于设置主备资源地址库,其中,该主备资源地址库的个数至少包括两个。
通过图10所示装置,进一步提高了资源地址查询系统的灵活性。
在一个可选地实施方式中,如图11所示,上述装置还包括:
第二设置模块1102,用于设置root级用户具备该资源地址库的处理权限。
通过图11所示装置,进一步提高了资源地址查询系统的安全性。
根据本发明实施例的另一个方面,还提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,该处理器被配置为执行上述中任意一项的处理方法的步骤。
可选地,本发明实施例提供了一种电子设备,该电子设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,该处理器执行程序时实现以下步骤:
获取当前指令中的相对地址和指向资源地址库的索引,其中,所述索引指向所述资源地址库的一行条目,所述条目包括用于获取所述资源地址库中资源地址的信息;根据所述相对地址和所述索引,计算出群地址集合,其中,所述群地址集合中包括多个群地址,每个运算单元对应一个群地址;将所述群地址集合转换为目标地址集合,其中,所述目标地址集合中包括的目标地址为算数逻辑单元ALU可直接使用的地址。
可选地,所述根据所述相对地址和所述索引,计算出群地址集合包括:获取所述信息中的目标信息,其中,所述目标信息包括以下至少之一:用于计算资源地址的算法、格式以及基址;根据所述相对地址和所述目标信息,计算出所述群地址集合。
可选地,上述步骤还包括:修改所述资源地址库,其中,所述修改所述资源地址库包括:设置目标指令,通过所述目标指令指示地址查询器修改所述资源地址库,其中,所述目标指令包括要修改的所述资源地址一行的索引和要修改的数据;或者,通过总线修改所述资源地址库。
可选地,上述步骤还包括:设置主备资源地址库,其中,所述主备资源地址库的个数至少包括两个。
可选地,上述步骤还包括:设置root级用户具备所述资源地址库的处理权限。
根据本发明实施例的另一个方面,还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有指令,指令被处理器执行时实现上述中任意一项的处理方法的步骤。
可选地,在本发明实施例中,上述计算机可读存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,和/或位于移动终端群中的任意一个移动终端中,上述计算机可读存储介质包括存储的程序。
可选地,在程序运行时控制计算机可读存储介质所在设备执行以下功能:
获取当前指令中的相对地址和指向资源地址库的索引,其中,所述索引指向所述资源地址库的一行条目,所述条目包括用于获取所述资源地址库中资源地址的信息;根据所述相对地址和所述索引,计算出群地址集合,其中,所述群地址集合中包括多个群地址,每个运算单元对应一个群地址;将所述群地址集合转换为目标地址集合,其中,所述目标地址集合中包括的目标地址为算数逻辑单元ALU可直接使用的地址。
可选地,所述根据所述相对地址和所述索引,计算出群地址集合包括:获取所述信息中的目标信息,其中,所述目标信息包括以下至少之一:用于计算资源地址的算法、格式以及基址;根据所述相对地址和所述目标信息,计算出所述群地址集合。
可选地,上述功能还包括:修改所述资源地址库,其中,所述修改所述资源地址库包括:设置目标指令,通过所述目标指令指示地址查询器修改所述资源地址库,其中,所述目标指令包括要修改的所述资源地址一行的索引和要修改的数据;或者,通过总线修改所述资源地址库。
可选地,上述功能还包括:设置主备资源地址库,其中,所述主备资源地址库的个数至少包括两个。
可选地,上述功能还包括:设置root级用户具备所述资源地址库的处理权限。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (10)

1.一种资源地址查询方法,其特征在于,包括:
获取当前指令中的相对地址和指向资源地址库的索引,其中,所述索引指向所述资源地址库的一行条目,所述条目包括用于获取所述资源地址库中资源地址的信息;
根据所述相对地址和所述索引,计算出群地址集合,其中,所述群地址集合中包括多个群地址,每个运算单元对应一个群地址;
将所述群地址集合转换为目标地址集合,其中,所述目标地址集合中包括的目标地址为算数逻辑单元ALU可直接使用的地址。
2.根据权利要求1所述的资源地址查询方法,其特征在于,所述根据所述相对地址和所述索引,计算出群地址集合包括:
获取所述信息中的目标信息,其中,所述目标信息包括以下至少之一:用于计算资源地址的算法、格式以及基址;
根据所述相对地址和所述目标信息,计算出所述群地址集合。
3.根据权利要求1所述的资源地址查询方法,其特征在于,所述方法还包括:
修改所述资源地址库,其中,所述修改所述资源地址库包括:
设置目标指令,通过所述目标指令指示地址查询器修改所述资源地址库,其中,所述目标指令包括要修改的资源地址一行的索引和要修改的数据;
或者,通过总线修改所述资源地址库。
4.根据权利要求1所述的资源地址查询方法,其特征在于,所述方法还包括:
设置主备资源地址库,其中,所述主备资源地址库的个数至少包括两个。
5.根据权利要求1所述的资源地址查询方法,其特征在于,所述方法还包括:
设置root级用户具备所述资源地址库的处理权限。
6.一种资源地址查询装置,其特征在于,包括:
获取模块,用于获取当前指令中的相对地址和指向资源地址库的索引,其中,所述索引指向所述资源地址库的一行条目,所述条目包括获取所述资源地址库中资源地址的信息;
计算模块,用于根据所述相对地址和所述索引,计算出群地址集合,其中,所述群地址集合中包括多个群地址,每个运算单元对应一个群地址;
转换模块,用于将所述群地址集合转换为目标地址集合,其中,所述目标地址集合中包括的目标地址为算数逻辑单元ALU可直接使用的地址。
7.一种资源地址查询系统,其特征在于,包括:
解码器,用于获取当前指令中的相对地址和指向资源地址库的索引,其中,所述索引指向所述资源地址库的一行条目,所述条目包括获取所述资源地址库中资源地址的信息;
地址查询器,用于根据所述相对地址和所述索引,计算出群地址集合,其中,所述群地址集合中包括多个群地址,每个运算单元对应一个群地址;
子命令生成器,用于将所述群地址集合与指定信息组成目标子运算命令;
任务调度器,用于将所述目标子运算命令分发至对应的运算单元;
多个运算单元,用于将运算结果写入到所述群地址。
8.根据权利要求7所述的资源地址查询系统,其特征在于,所述资源地址查询系统包括多个,多个所述资源地址查询系统被设置在多个处理器中。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-5所述的任一项方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现权利要求1-5所述的任一项方法的步骤。
CN202210689194.5A 2022-06-17 2022-06-17 资源地址查询方法、装置、系统 Active CN114780146B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210689194.5A CN114780146B (zh) 2022-06-17 2022-06-17 资源地址查询方法、装置、系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210689194.5A CN114780146B (zh) 2022-06-17 2022-06-17 资源地址查询方法、装置、系统

Publications (2)

Publication Number Publication Date
CN114780146A true CN114780146A (zh) 2022-07-22
CN114780146B CN114780146B (zh) 2022-08-26

Family

ID=82420423

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210689194.5A Active CN114780146B (zh) 2022-06-17 2022-06-17 资源地址查询方法、装置、系统

Country Status (1)

Country Link
CN (1) CN114780146B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060218385A1 (en) * 2005-03-23 2006-09-28 Smith Rodney W Branch target address cache storing two or more branch target addresses per index
JP2011103608A (ja) * 2009-11-11 2011-05-26 Sii Network Systems Kk パケット転送装置およびパケット転送方法
US20130262506A1 (en) * 2011-09-30 2013-10-03 Architectural Forensics, LLC Address-based historical data research tool
CN104252528A (zh) * 2014-09-04 2014-12-31 国家电网公司 基于标识符空间映射的大数据二级索引构建方法
CN108430051A (zh) * 2018-02-09 2018-08-21 北京天元创新科技有限公司 一种业务开通方法和设备
CN110362509A (zh) * 2018-04-10 2019-10-22 北京忆恒创源科技有限公司 统一地址转换与统一地址空间
CN111133421A (zh) * 2017-10-06 2020-05-08 国际商业机器公司 在无地址转换的情况下操作的加载存储单元中处理有效地址同义词
CN112835899A (zh) * 2021-01-29 2021-05-25 上海寻梦信息技术有限公司 地址库索引方法、地址匹配方法以及相关设备
CN113760193A (zh) * 2021-08-26 2021-12-07 武汉天喻信息产业股份有限公司 用于资源受限制装置的数据读写方法、装置及指令集
CN113886288A (zh) * 2021-09-29 2022-01-04 南方科技大学 基于arm架构的资源访问控制方法、系统、设备及存储介质
CN114237812A (zh) * 2021-11-10 2022-03-25 上海浦东发展银行股份有限公司 容器网络管理系统

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060218385A1 (en) * 2005-03-23 2006-09-28 Smith Rodney W Branch target address cache storing two or more branch target addresses per index
JP2011103608A (ja) * 2009-11-11 2011-05-26 Sii Network Systems Kk パケット転送装置およびパケット転送方法
US20130262506A1 (en) * 2011-09-30 2013-10-03 Architectural Forensics, LLC Address-based historical data research tool
CN104252528A (zh) * 2014-09-04 2014-12-31 国家电网公司 基于标识符空间映射的大数据二级索引构建方法
CN111133421A (zh) * 2017-10-06 2020-05-08 国际商业机器公司 在无地址转换的情况下操作的加载存储单元中处理有效地址同义词
CN108430051A (zh) * 2018-02-09 2018-08-21 北京天元创新科技有限公司 一种业务开通方法和设备
CN110362509A (zh) * 2018-04-10 2019-10-22 北京忆恒创源科技有限公司 统一地址转换与统一地址空间
CN112835899A (zh) * 2021-01-29 2021-05-25 上海寻梦信息技术有限公司 地址库索引方法、地址匹配方法以及相关设备
CN113760193A (zh) * 2021-08-26 2021-12-07 武汉天喻信息产业股份有限公司 用于资源受限制装置的数据读写方法、装置及指令集
CN113886288A (zh) * 2021-09-29 2022-01-04 南方科技大学 基于arm架构的资源访问控制方法、系统、设备及存储介质
CN114237812A (zh) * 2021-11-10 2022-03-25 上海浦东发展银行股份有限公司 容器网络管理系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
周科: ""双倍速率同步动态随机存储器的地址映射方法"", 《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》 *

Also Published As

Publication number Publication date
CN114780146B (zh) 2022-08-26

Similar Documents

Publication Publication Date Title
US10963246B2 (en) Systems and methods for performing 16-bit floating-point matrix dot product instructions
US20220171627A1 (en) Systems and methods for performing matrix compress and decompress instructions
CN109690475B (zh) 用于转移操作的硬件加速器和方法
CN108351830B (zh) 用于存储器损坏检测的硬件装置和方法
US10942985B2 (en) Apparatuses, methods, and systems for fast fourier transform configuration and computation instructions
JP7419629B2 (ja) データ表現間の一貫性のある変換を加速するプロセッサ、方法、プログラム、コンピュータ可読記憶媒体、および装置
KR20200002604A (ko) 텐서 순열 엔진을 위한 장치 및 방법
CN112559051A (zh) 使用脉动阵列和融合操作的深度学习实现方式
US20210318874A1 (en) Systems for performing instructions to quickly convert and use tiles as 1d vectors
JP2024038122A (ja) 行列演算アクセラレータの命令のための装置、方法、およびシステム
US20190102196A1 (en) Systems and methods for performing instructions to transform matrices into row-interleaved format
US11138112B2 (en) Remote atomic operations in multi-socket systems
US20210406018A1 (en) Apparatuses, methods, and systems for instructions for moving data between tiles of a matrix operations accelerator and vector registers
JP2021057004A (ja) 行列演算アクセラレータの命令のための装置、方法、及びシステム
US20200210188A1 (en) Systems and methods for performing matrix row- and column-wise permute instructions
KR20150112779A (ko) 복수의 곱셈 연산들을 수행하는 방법 및 장치
CN112148251A (zh) 跳过无意义的矩阵运算的系统和方法
KR20170099855A (ko) 마스크 및 벡터 레지스터들 사이의 가변 확장을 위한 방법 및 장치
CN110909882A (zh) 用于执行水平铺块操作的系统和方法
US20220206801A1 (en) Apparatuses, methods, and systems for 8-bit floating-point matrix dot product instructions
CN114780146B (zh) 资源地址查询方法、装置、系统
Blanchet et al. Computer architecture
US20220206800A1 (en) Apparatuses, methods, and systems for instructions for aligning tiles of a matrix operations accelerator
US20220100502A1 (en) Apparatuses, methods, and systems for instructions for 16-bit floating-point matrix dot product instructions
CN111857824A (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