CN114443528A - 一种dma二维数据传输/清零参数配置方法 - Google Patents

一种dma二维数据传输/清零参数配置方法 Download PDF

Info

Publication number
CN114443528A
CN114443528A CN202210101772.9A CN202210101772A CN114443528A CN 114443528 A CN114443528 A CN 114443528A CN 202210101772 A CN202210101772 A CN 202210101772A CN 114443528 A CN114443528 A CN 114443528A
Authority
CN
China
Prior art keywords
dma
instruction
control register
dimensional data
zero clearing
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
CN202210101772.9A
Other languages
English (en)
Other versions
CN114443528B (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.)
Anhui Core Century Technology Co ltd
Original Assignee
Anhui Core Century Technology 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 Anhui Core Century Technology Co ltd filed Critical Anhui Core Century Technology Co ltd
Priority to CN202210101772.9A priority Critical patent/CN114443528B/zh
Publication of CN114443528A publication Critical patent/CN114443528A/zh
Application granted granted Critical
Publication of CN114443528B publication Critical patent/CN114443528B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/30098Register arrangements
    • 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
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

本发明公开了一种DMA二维数据传输/清零参数配置方法,DMA二维数据传输/清零指令的指令机器码采用64位双字指令,内部包含或者隐含所有DMA传输/清零参数。本发明从指令形式设计、指令机器码设计层面,提出一种DMA二维数据传输/清零参数配置方法,通过采用单条指令在单个时钟周期完成DMA传输/清零参数配置;与“魂芯”处理器现有的DMA传输参数配置方式以及其他处理器目前采用多条指令完成DMA传输参数配置相比,本发明大大提高了DMA传输参数的配置效率,减少了汇编代码体积,缩短了DMA控制器启动DMA二维数据传输的时间。

Description

一种DMA二维数据传输/清零参数配置方法
技术领域
本发明涉及DMA二维数据传输技术领域,尤其是一种DMA二维数据传输/清零参数配置方法。
背景技术
魂芯,是由中国电子科技集团公司第三十八研究所设计,在一秒钟内能完成千亿次浮点操作运算的高性能通用数字信号处理器。2012年,该所推出高性能浮点通用DSP芯片——“魂芯一号”,性能相当于同期市场同类DSP芯片的4-6倍,可应用于高性能计算的信号处理领域,已经在多款重大装备中成功应用。魂芯二号A,发布于2018年,是中国电子科技集团公司第三十八研究所在信号处理器领域的新突破。DMA数据传输可分成一维DMA数据传输和DMA二维数据传输。针对DMA二维数据传输来说,在DMA数据传输启动前,需配置DMA传输参数,参数包括源端地址、目标端地址、优先级、源端递增/递减步长,目标端递增/递减步长、传输数据长度、传输模式控制等。
在现有的“魂芯一号”或“魂芯二号”的处理器设计中,DMA传输参数是逐条配置的,每条指令占用一个指令执行行,每个指令执行行耗费1个时钟周期,因此DMA参数配置需要多个时钟周期来完成。以如下11行的代码段为例,二维DMA参数配置共需11个时钟周期。
L1 目标端起始地址:DMA0_DSAH=0x00000000
L2 目标端起始地址:DMA0_DSAL=xr10
L3 目标端X维长度:DMA0_DLX=xr16
L4 目标端X维步长:DMA0_DAS=xr21
L5 目标端Y维长度:DMA0_DLY=xr26
L6 源端起始地址:DMA0_SSA=xr12
L7 源端X维长度:DMA0_SLX=xr16
L8 源端X维步长:DMA0_SAS=xr21
L9 源端Y维长度:DMA0_SLY=xr26
L10 DMA传输模式控制:DMA0_CTL=0x00010203
L11 DMA传输启动:DMA0_START=0x00000001
发明内容
针对现有DMA二维数据传输前DMA传输参数配置耗费多个时间周期的技术问题,本发明提供了一种DMA二维数据传输/清零参数配置方法,可在单周期内完成DMA传输参数的配置,大大缩短DMA启动时间。
本发明保护一种DMA二维数据传输/清零参数配置方法,DMA二维数据传输/清零指令的指令机器码采用64位双字指令,内部包含或者隐含所有DMA传输/清零参数;
寄存器参数配置方法具体包括以下步骤:
步骤1,指令通道分配单元根据输入的指令进行通道分配,DMA二维数据传输/清零指令占用8/5个控制寄存器写通道,分别为4/2个通用寄存器访问控制寄存器通道和4/3个立即数访问控制寄存器通道;
步骤2,指令识别单元识别指令行中的DMA二维数据传输/清零指令,当指令行中含有DMA二维数据传输/清零指令时,识别其中的操作码,并输出DMA二维传输/清零的标志信息;指令输出单元监测到DMA二维传输/清零的标志信息,通过选择器选出对应的DMA二维数据传输/清零指令,输出至DMA译码单元;
步骤4,条件受控单元根据谓词条件判断的输入,通过逻辑判断得到DMA二维数据传输/清零指令的条件受控使能结果,输出至DMA译码单元;
步骤5,DMA译码单元通过DMA二维数据传输/清零指令,结合谓词条件受控使能输入,译出DMA控制寄存器配置信息;
步骤6,控制信号合成单元对DMA二维数据传输/清零指令的译出信息与其他控制寄存器通道的译出信息进行合成,输出DMA控制寄存器的全部配置信息;
步骤7,根据控制信号合成单元输出的DMA控制寄存器的全部配置信息,对DMA控制寄存器进行写入操作,完成DMA传输/清零参数的配置。
进一步的,将DMA传输模式控制寄存器中的2个位段分别设置为完成一条指令完成二维数据传输/清零的DMA设置位,当二维数据传输/清零DMA设置位=1(即有效),自动启动DMA二维数据传输/清零,处理器流水线执行时,该条指令对DMA配置的8/5个控制寄存器的写操作在同一周期内执行完成。
进一步的,DMA二维数据传输指令占用的4个通用寄存器访问控制寄存器通道传输的数据分别为:
控制寄存器与通用寄存器通道x,传输“目标端起始地址”控制寄存器的地址、使能及数据;
控制寄存器与通用寄存器通道y,传输“目标端步长”控制寄存器的地址、使能及数据;
控制寄存器与通用寄存器通道z,传输“源端起始地址”控制寄存器的地址、使能及数据;
控制寄存器与通用寄存器通道t,传输“源端步长”控制寄存器的地址、使能及数据;
DMA二维数据传输指令占用的4个立即数访问控制寄存器通道传输的数据分别为:
控制寄存器立即数通道0,传输“模式”控制寄存器的地址、使能及数据;
控制寄存器立即数通道1,传输“源端X维长度”控制寄存器的地址、使能及数据;
控制寄存器立即数通道2,传输“源端Y维长度”控制寄存器的地址、使能及数据;
控制寄存器立即数通道3,传输“目标端X维长度”控制寄存器的地址、使能及数据。
DMA二维数据传输指令的指令形式为[xRd,yRd,p]=[zRs,tRs,n,m]:
①zRs表示存储DMA的源地址;
②xRd表示存储DMA的目标地址,源地址和目标地址均支持片内或片外地址;
③tRs表示存储源端二维数据的宽度,即DMA传输中源端Y维步长;
④yRd表示存储目标二维数据的宽度,即DMA传输中目标端Y维步长。
⑤n表示待传输数据在源图像中的列数,即DMA传输中源端X维长度,其中X维步长固定为1;
⑥m表示待传输数据在源图像中的行数,即DMA传输中源端Y维长度,其中Y维步长为tRs;
⑦p为待传输数据在目标图像中的列数,即DMA传输中目标端X维长度,其中X维步长固定为1;
⑧目标端Y维长度为n*m/p,其中Y维步长为yRd。
DMA二维数据清零指令占用的2个通用寄存器访问控制寄存器通道传输的数据分别为:
控制寄存器与通用寄存器通道x,传输“目标端起始地址”控制寄存器的地址、使能及数据;
控制寄存器与通用寄存器通道y,传输“目标端步长”控制寄存器的地址、使能及数据;
DMA二维数据清零指令占用的3个立即数访问控制寄存器通道传输的数据分别为:
控制寄存器立即数通道0,传输“模式”控制寄存器的的地址、使能及数据;
控制寄存器立即数通道1,传输“目标端Y维长度”控制寄存器的地址、使能及数据;
控制寄存器立即数通道2,传输“目标端X维长度”控制寄存器的地址、使能及数据。
DMA二维数据清零指令的指令形式为[xRd,yRd,p,w]=0:
①xRd表示存储DMA的目标地址,目标地址均支持片内或片外地址;
②yRd表示存储目标二维数据的宽度,即DMA传输中目标端Y维步长;
③p为待清零数据在目标图像中的列数,即DMA传输中目标端X维长度;
④w为待清零数据在目标图像中的行数,即DMA传输中目标端Y维长度。
n、m、p、w均为无符号数,n、m各占8位,p、w各占16位。
本发明还保护一种基于上述DMA二维数据传输/清零参数配置方法的DMA二维数据传输/清零方法,核内DMA控制器识别DMA传输模式控制寄存器的二维数据传输DMA设置位和二维数据清零DMA设置位,当值为2’b10或者2’b01时,自动启动DMA二维数据传输/清零,直至数据传输/清零结束。
本发明还保护一种DMA二维数据传输/清零指令译码器,由指令通道分配单元、指令识别单元、指令输出单元、条件受控单元、DMA译码单元、控制信号合成单元组成,
所述指令通道分配单元,用于根据输入的指令进行通道分配,DMA二维数据传输/清零指令占用8/5个控制寄存器写通道,分别为4/2个通用寄存器访问控制寄存器通道和4/3个立即数访问控制寄存器通道;
所述指令识别单元,用于识别指令行中的DMA二维数据传输/清零指令,当指令行中含有DMA二维数据传输/清零指令时,识别其中的操作码,并输出DMA二维传输/清零的标志信息;
所述指令输出单元,用于监测到DMA二维传输/清零的标志信息,通过选择器选出对应的DMA二维数据传输/清零指令,输出至DMA译码单元;
所述条件受控单元,用于根据谓词条件判断的输入,通过逻辑判断得到DMA二维数据传输/清零指令的条件受控使能结果,输出至DMA译码单元;
所述DMA译码单元,用于通过DMA二维数据传输/清零指令,结合谓词条件受控使能输入,译出DMA控制寄存器配置信息;
所述控制信号合成单元,用于对DMA二维数据传输/清零指令的译出信息与其他控制寄存器通道的译出信息进行合成,输出DMA控制寄存器的全部配置信息。
本发明从指令形式设计、指令机器码设计层面,提出一种DMA二维数据传输/清零参数配置方法,通过采用单条指令在单个时钟周期完成DMA传输/清零参数配置;与“魂芯”处理器现有的DMA传输参数配置方式以及其他处理器目前采用多条指令完成DMA传输参数配置相比,本发明大大提高了DMA传输参数的配置效率,减少了汇编代码体积,缩短了DMA控制器启动DMA二维数据传输的时间。
附图说明
图1是DMA二维数据传输/清零指令译码器的结构框图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细的说明。本发明的实施例是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显而易见的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
实施例1
本发明基于我国自主研发的“魂芯”高性能通用数字信号处理器架构,从指令形式设计、指令机器码设计层面,提出一种DMA二维数据传输/清零参数配置方法,通过软硬件相互配合,实现单条指令对DMA二维数据传输/清零参数的单周期配置。表1为“魂芯”DSP芯片既有的DMA传输模式控制寄存器字段定义表;表2为“魂芯”DSP芯片既有的DMA标志寄存器字段定义表,DMA标志寄存器在实现DMA功能时无需提前配置,属于只读寄存器,用于DMA传输配置或者传输过程出错时,对硬件内部装态进行标识。DMA运行过程中可以对DMA标志寄存器进行读操作,查看DMA数据传输的状态信息。
Figure BDA0003492489000000041
Figure BDA0003492489000000051
表1
Figure BDA0003492489000000052
表2
DMA二维数据传输/清零需要配置的参数较多,本发明中对应的指令机器码采用64位双字指令,内部包含或者隐含所有DMA传输/清零参数。
隐含的含义有两种:
1、将地址存放在通用寄存器中,指令机器码中仅包含该通用寄存器的索引号;
2、通过指令机器码中的操作op-code和模式位(参见表3、表4),指令译码器可以直接得到DMA传输模式控制寄存器中对应自动启动DMA二维数据传输/清零的配置数据。
表3、表4分别为本实施例给出的DMA二维数据传输指令机器码字段表和DMA二维数据清零指令机器码字段表,从中可以看到指令机器码中保存的用于查询地址的通用寄存器索引。与此相对应的,DMA二维数据传输/清零参数配置时,需要占用从寄存器堆到控制寄存器的数据传输通道,实现32位地址的数据传输。
位段 含义描述
63 行结束标志
62:59 保留
58:56 3’b110
55:51 操作码op-code
50:49 保留
48 模式0
47:44 P[15:12]
43:38 通用寄存器索引Rd
37:32 通用寄存器索引Rs
31 行结束标志
30:27 参数P[11:8]
26:24 3’b111
23:16 参数P[7:0]
15:8 参数n
7:0 参数m
表3
位段 含义描述
63 行结束标志
62:59 保留
58:56 3’b110
55:51 操作码op-code
50:49 保留
48 模式1
47:44 参数P[15:12]
43:38 通用寄存器索引Rd
37:32 通用寄存器索引Rs
31 行结束标志
30:27 参数p[11:8]
26:24 3’b111
23:16 参数p[7:0]
15:0 参数w
表4
本实施例为DMA二维数据传输指令设计的指令形式为[xRd,yRd,p]=[zRs,tRs,n,m]:
①zRs表示存储DMA的源地址;
②xRd表示存储DMA的目标地址,源地址和目标地址均支持片内或片外地址;
③tRs表示存储源端二维数据的宽度,即DMA传输中源端Y维步长;
④yRd表示存储目标二维数据的宽度,即DMA传输中目标端Y维步长。
⑤n表示待传输数据在源图像中的列数,即DMA传输中源端X维长度,其中X维步长固定为1;
⑥m表示待传输数据在源图像中的行数,即DMA传输中源端Y维长度,其中Y维步长为tRs;
⑦p为待传输数据在目标图像中的列数,即DMA传输中目标端X维长度,其中X维步长固定为1;
⑧目标端Y维长度为n*m/p,其中Y维步长为yRd。
本实施例为DMA二维数据清零指令的指令形式为[xRd,yRd,p,w]=0:
①xRd表示存储DMA的目标地址,目标地址均支持片内或片外地址;
②yRd表示存储目标二维数据的宽度,即DMA传输中目标端Y维步长;
③p为待清零数据在目标图像中的列数,即DMA传输中目标端X维长度;
④w为待清零数据在目标图像中的行数,即DMA传输中目标端Y维长度。
n、m、p、w均为无符号数,n、m各占8位,p、w各占16位。
从本实施例设计的DMA二维数据传输/清零指令形式,可以得出通道需求数量,如下表5所示。根据图像处理领域中数据传输特点,本实施例将源端和目标端的X维步长固定为1,源端和目标端的Y维步长为变量,来源于通用寄存器文件。数据传输长度采用立即数的方式进行配置,直接存放在指令机器码中。
DMA二维数据传输指令中,x、y、z、t这4个运算宏分别占用1个通用寄存器访问控制寄存器通道。通用寄存器索引Rd,分别被x宏、y宏使用,可以查询到2个不同的地址xRd、yRd;通用寄存器索引Rs,分别被z宏、t宏使用,也可以查询到2个不同的地址zRs和tRs。
DMA二维数据清零指令中,x、y这2个宏运算分别占用1个通用寄存器访问控制寄存器通道。通用寄存器索引Rd,分别被x宏、y宏使用,可以查询到2个不同的地址xRd、yRd。
Figure BDA0003492489000000071
表5
据此,开始寄存器参数配置,具体包括以下步骤:
步骤1,指令通道分配单元根据输入的指令进行通道分配,DMA二维数据传输/清零指令占用8/5个控制寄存器写通道,分别为4/2个通用寄存器访问控制寄存器通道和4/3个立即数访问控制寄存器通道(参照表5);
步骤2,指令识别单元识别指令行中的DMA二维数据传输/清零指令,当指令行中含有DMA二维数据传输/清零指令时,识别其中的操作码op-code(参照表3、表4),并输出DMA二维传输/清零的标志信息;指令输出单元监测到DMA二维传输/清零的标志信息,通过选择器选出对应的DMA二维数据传输/清零指令,输出至DMA译码单元;
步骤4,条件受控单元根据谓词条件判断的输入,通过逻辑判断得到DMA二维数据传输/清零指令的条件受控使能结果,输出至DMA译码单元;
步骤5,DMA译码单元通过DMA二维数据传输/清零指令,结合谓词条件受控使能输入,译出DMA控制寄存器配置信息;
步骤6,控制信号合成单元对DMA二维数据传输/清零指令的译出信息(参照表5第三列)与其他控制寄存器通道的译出信息进行合成,输出DMA控制寄存器的全部配置信息;
步骤7,根据控制信号合成单元输出的DMA控制寄存器的全部配置信息,对DMA控制寄存器进行写入操作,完成DMA传输/清零参数的配置。
每款处理器都包含众多控制寄存器和标志寄存器的读写通道,不同厂家处理器的读写通道设置也不同。此处的控制信号合成,是指将DMA二维传输/清零指令占用的通道控制信号与其他非该指令占用的控制信号合成。
“魂芯”处理器中共有x、y、z、t 4个运算宏,每个运算宏含有2条通用寄存器写控制寄存器通道,宏外4个立即数写控制寄存器通道,因此一共有12个写通道。本实施例中,DMA二维传输指令占用8个写通道,剩余4个写通道也可以被占用,还可以有其他非DMA类的控制寄存器写入。因此,有必要合成其他控制寄存器通道的译出信息。
“魂芯”处理器的统一地址空间中设置有32位DMA传输模式控制寄存器(参照表1),本实施例采用连续的2个保留位(第15和第14位),分别作为一条指令完成二维数据传输DMA设置位和一条指令完成二维数据清零DMA设置位,如表6所示。
15 采用一条指令完成二维数据传输的DMA设置位 1’b1:有效,1’b0:无效
14 采用一条指令完成二维数据清零的DMA设置位 1’b1:有效,1’b0:无效
表6
“魂芯”处理器采用多级流水线同步时钟设计,在流水线执行时,每个指令行的指令都是在1个时钟周期内执行完成的。由于DMA二维传输/清零指令所涉及的8/5个控制寄存器的已经在同一条指令中,因此,处理器流水线执行时,该条指令对DMA配置的8/5个控制寄存器的写操作在同一周期内执行完成。
实施例2
一种基于实施例1所述的DMA二维数据传输/清零参数配置方法的DMA二维数据传输/清零方法,核内DMA控制器识别DMA传输模式控制寄存器的二维数据传输DMA设置位和二维数据清零DMA设置位。
实施例1中,将DMA传输模式控制寄存器的第15位作为一条指令完成二维数据传输DMA设置位,第14位作为一条指令完成二维数据清零DMA设置位。因此,当两个位段的值为2’b10,即第15位值为1,第14位值为0,则自动启动DMA二维数据传输,直至数据传输结束;当两个位段的值为2’b01,即第15位值为0,第14位值为1,则自动启动DMA二维数据清零,直至数据清零结束。
结合实施例1中,隐含的第2种含义,当指令机器码中的操作op-code和模式位均对应DMA二维数据传输指令,则配置DMA传输模式控制寄存器的第15位为1,第14位为0,继而自动启动DMA二维数据传输;当指令机器码中的操作op-code和模式位均对应DMA二维数据清零指令,则配置DMA传输模式控制寄存器的第15位为0,第14位为1,继而自动启动DMA二维数据清零。因此,此处的DMA二维数据传输/清零都是自动启动,无需如背景技术L11,需要单独设置DMA传输启动控制寄存器。
实施例3
用户采用“魂芯”指令集编写汇编程序,其中二维DMA数据传输/清零指令采用实施例1公开的指令形式进行编写,每个指令行512位,可以并行多条32/64位指令。
汇编程序通过软件汇编工具链及软件规则检查器,检查指令编写是否符合汇编指令书写规则要求。二维DMA数据传输/清零指令的检查项目为:1、参数p,n,m,w是否符合位宽要求;2、控制寄存器占用通道总数是否符合要求;3、针对二维DMA数据传输指令,检查n*m能否被p整除,若不能整除,则报错。汇编程序经过汇编工具链得到硬件输入机器码。
二维DMA数据传输/清零指令功能涉及到的硬件电路主要包括程序存储、指令catch、指令取指、指令译码、指令执行多个流水线处理模块,其中程序存储模块、指令catch模块、指令取指模块与其他双字指令处理方式相同,不在本发明核心创新点之列,在此不再赘述,本发明主要涉及指令译码模块和指令执行模块。
一种DMA二维数据传输/清零指令译码器,由指令通道分配单元、指令识别单元、指令输出单元、条件受控单元、DMA译码单元、控制信号合成单元组成,如图1所示。
所述指令通道分配单元,用于根据输入的指令进行通道分配,DMA二维数据传输/清零指令占用8/5个控制寄存器写通道,分别为4/2个通用寄存器访问控制寄存器通道和4/3个立即数访问控制寄存器通道。
所述指令识别单元,用于识别指令行中的DMA二维数据传输/清零指令,当指令行中含有DMA二维数据传输/清零指令时,识别其中的操作码,并输出DMA二维传输/清零的标志信息。
所述指令输出单元,用于监测到DMA二维传输/清零的标志信息,通过选择器选出对应的DMA二维数据传输/清零指令,输出至DMA译码单元。
所述条件受控单元,用于根据谓词条件判断的输入,通过逻辑判断得到DMA二维数据传输/清零指令的条件受控使能结果,输出至DMA译码单元。
所述DMA译码单元,用于通过DMA二维数据传输/清零指令,结合谓词条件受控使能输入,译出DMA控制寄存器配置信息。
所述控制信号合成单元,用于对DMA二维数据传输/清零指令的译出信息与其他控制寄存器通道的译出信息进行合成,输出DMA控制寄存器的全部配置信息,完成DMA二维数据传输/清零指令译码。
显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域及相关领域的普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。

Claims (8)

1.一种DMA二维数据传输/清零参数配置方法,其特征在于,DMA二维数据传输/清零指令的指令机器码采用64位双字指令,内部包含或者隐含所有DMA传输/清零参数;
寄存器参数配置方法具体包括以下步骤:
步骤1,指令通道分配单元根据输入的指令进行通道分配,DMA二维数据传输/清零指令占用8/5个控制寄存器写通道,分别为4/2个通用寄存器访问控制寄存器通道和4/3个立即数访问控制寄存器通道;
步骤2,指令识别单元识别指令行中的DMA二维数据传输/清零指令,当指令行中含有DMA二维数据传输/清零指令时,识别其中的操作码,并输出DMA二维传输/清零的标志信息;指令输出单元监测到DMA二维传输/清零的标志信息,通过选择器选出对应的DMA二维数据传输/清零指令,输出至DMA译码单元;
步骤4,条件受控单元根据谓词条件判断的输入,通过逻辑判断得到DMA二维数据传输/清零指令的条件受控使能结果,输出至DMA译码单元;
步骤5,DMA译码单元通过DMA二维数据传输/清零指令,结合谓词条件受控使能输入,译出DMA控制寄存器配置信息;
步骤6,控制信号合成单元对DMA二维数据传输/清零指令的译出信息与其他控制寄存器通道的译出信息进行合成,输出DMA控制寄存器的全部配置信息;
步骤7,根据控制信号合成单元输出的DMA控制寄存器的全部配置信息,对DMA控制寄存器进行写入操作,完成DMA传输/清零参数的配置。
2.根据权利要求1所述的DMA二维数据传输/清零参数配置方法,其特征在于,将DMA传输模式控制寄存器中的2个保留位分别设置为采用一条指令完成二维数据传输/清零的DMA设置位,当二维数据传输/清零DMA设置位=1,自动启动DMA二维数据传输/清零,处理器流水线执行时,该条指令对DMA配置的8/5个控制寄存器的写操作在同一周期内执行完成。
3.根据权利要求1所述的DMA二维数据传输/清零参数配置方法,其特征在于,
DMA二维数据传输指令占用的4个通用寄存器访问控制寄存器通道传输的数据分别为:
控制寄存器与通用寄存器通道x,传输“目标端起始地址”控制寄存器的地址、使能及数据;
控制寄存器与通用寄存器通道y,传输“目标端步长”控制寄存器的地址、使能及数据;
控制寄存器与通用寄存器通道z,传输“源端起始地址”控制寄存器的地址、使能及数据;
控制寄存器与通用寄存器通道t,传输“源端步长”控制寄存器的地址、使能及数据;
DMA二维数据传输指令占用的4个立即数访问控制寄存器通道传输的数据分别为:
控制寄存器立即数通道0,传输“模式”控制寄存器的地址、使能及数据;
控制寄存器立即数通道1,传输“源端X维长度”控制寄存器的地址、使能及数据;
控制寄存器立即数通道2,传输“源端Y维长度”控制寄存器的地址、使能及数据;
控制寄存器立即数通道3,传输“目标端X维长度”控制寄存器的地址、使能及数据。
4.根据权利要求3所述的DMA二维数据传输/清零参数配置方法,其特征在于,DMA二维数据传输指令的指令形式为[xRd,yRd,p]=[zRs,tRs,n,m],
zRs表示存储DMA的源地址,xRd表示存储DMA的目标地址,源地址和目标地址均支持片内或片外地址;
tRs表示存储源端二维数据的宽度,即DMA传输中源端Y维步长;
yRd表示存储目标二维数据的宽度,即DMA传输中目标端Y维步长;
n表示待传输数据在源图像中的列数,即DMA传输中源端X维长度,其中X维步长固定为1;m表示待传输数据在源图像中的行数,即DMA传输中源端Y维长度,其中Y维步长为tRs;
p为待传输数据在目标图像中的列数,即DMA传输中目标端X维长度,其中X维步长固定为1;目标端Y维长度为n*m/p,其中Y维步长为yRd。
5.根据权利要求1所述的DMA二维数据传输/清零参数配置方法,其特征在于,
DMA二维数据传输指令占用的2个通用寄存器访问控制寄存器通道传输的数据分别为:
控制寄存器与通用寄存器通道x,传输“目标端起始地址”控制寄存器的地址、使能及数据;
控制寄存器与通用寄存器通道y,传输“目标端步长”控制寄存器的地址、使能及数据;
DMA二维数据传输指令占用的3个立即数访问控制寄存器通道传输的数据分别为:
控制寄存器立即数通道0,传输“模式”控制寄存器的的地址、使能及数据;
控制寄存器立即数通道1,传输“目标端Y维长度”控制寄存器的地址、使能及数据;
控制寄存器立即数通道2,传输“目标端X维长度”控制寄存器的地址、使能及数据。
6.根据权利要求5所述的DMA二维数据传输/清零参数配置方法,其特征在于,DMA二维数据清零指令的指令形式为[xRd,yRd,p,w]=0;
xRd表示存储DMA的目标地址,目标地址均支持片内或片外地址;yRd表示存储目标二维数据的宽度,即DMA传输中目标端Y维步长;p为待清零数据在目标图像中的列数,即DMA传输中目标端X维长度,w为待清零数据在目标图像中的行数,即DMA传输中目标端Y维长度。
7.一种基于权利要求1-6任意一项所述的DMA二维数据传输/清零参数配置方法的DMA二维数据传输/清零方法,其特征在于,核内DMA控制器识别DMA传输模式控制寄存器的二维数据传输DMA设置位和二维数据清零DMA设置位,当值为2’b10或者2’b01时,自动启动DMA二维数据传输/清零,直至数据传输/清零结束。
8.一种DMA二维数据传输/清零指令译码器,其特征在于,由指令通道分配单元、指令识别单元、指令输出单元、条件受控单元、DMA译码单元、控制信号合成单元组成,
所述指令通道分配单元,用于根据输入的指令进行通道分配,DMA二维数据传输/清零指令占用8/5个控制寄存器写通道,分别为4/2个通用寄存器访问控制寄存器通道和4/3个立即数访问控制寄存器通道;
所述指令识别单元,用于识别指令行中的DMA二维数据传输/清零指令,当指令行中含有DMA二维数据传输/清零指令时,识别其中的操作码,并输出DMA二维传输/清零的标志信息;
所述指令输出单元,用于监测到DMA二维传输/清零的标志信息,通过选择器选出对应的DMA二维数据传输/清零指令,输出至DMA译码单元;
所述条件受控单元,用于根据谓词条件判断的输入,通过逻辑判断得到DMA二维数据传输/清零指令的条件受控使能结果,输出至DMA译码单元;
所述DMA译码单元,用于通过DMA二维数据传输/清零指令,结合谓词条件受控使能输入,译出DMA控制寄存器配置信息;
所述控制信号合成单元,用于对DMA二维数据传输/清零指令的译出信息与其他控制寄存器通道的译出信息进行合成,输出DMA控制寄存器的全部配置信息。
CN202210101772.9A 2022-01-27 2022-01-27 一种dma二维数据传输/清零参数配置方法 Active CN114443528B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210101772.9A CN114443528B (zh) 2022-01-27 2022-01-27 一种dma二维数据传输/清零参数配置方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210101772.9A CN114443528B (zh) 2022-01-27 2022-01-27 一种dma二维数据传输/清零参数配置方法

Publications (2)

Publication Number Publication Date
CN114443528A true CN114443528A (zh) 2022-05-06
CN114443528B CN114443528B (zh) 2023-09-01

Family

ID=81369785

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210101772.9A Active CN114443528B (zh) 2022-01-27 2022-01-27 一种dma二维数据传输/清零参数配置方法

Country Status (1)

Country Link
CN (1) CN114443528B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050223136A1 (en) * 2003-03-05 2005-10-06 Fujitsu Limited System and method for controlling DMA data transfer
CN102184092A (zh) * 2011-05-04 2011-09-14 西安电子科技大学 基于流水线结构的专用指令集处理器
CN111538679A (zh) * 2020-05-12 2020-08-14 中国电子科技集团公司第十四研究所 一种基于内嵌dma的处理器数据预取设计

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050223136A1 (en) * 2003-03-05 2005-10-06 Fujitsu Limited System and method for controlling DMA data transfer
CN102184092A (zh) * 2011-05-04 2011-09-14 西安电子科技大学 基于流水线结构的专用指令集处理器
CN111538679A (zh) * 2020-05-12 2020-08-14 中国电子科技集团公司第十四研究所 一种基于内嵌dma的处理器数据预取设计

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
徐大鹏;: "实时图像采集系统的DMA通道设计", 计算机测量与控制, no. 05 *

Also Published As

Publication number Publication date
CN114443528B (zh) 2023-09-01

Similar Documents

Publication Publication Date Title
US8024553B2 (en) Data exchange and communication between execution units in a parallel processor
US7937559B1 (en) System and method for generating a configurable processor supporting a user-defined plurality of instruction sizes
CN112099852A (zh) 可变格式、可变稀疏矩阵乘法指令
US7346881B2 (en) Method and apparatus for adding advanced instructions in an extensible processor architecture
KR100236527B1 (ko) 벡터 레지스터의 복수 뱅크를 사용한 단일 명령복수 데이터 처 리
US6594713B1 (en) Hub interface unit and application unit interfaces for expanded direct memory access processor
EP3798823A1 (en) Apparatuses, methods, and systems for instructions of a matrix operations accelerator
KR101851439B1 (ko) 충돌 검출을 수행하고, 레지스터의 콘텐츠를 다른 레지스터의 데이터 구성요소 위치들로 브로드캐스트하기 위한 시스템들, 장치들 및 방법들
EP2725497A1 (en) Memory arbitration circuit and method
CN102150139A (zh) 数据处理装置及半导体集成电路装置
EP3757769B1 (en) Systems and methods to skip inconsequential matrix operations
JP2001256105A (ja) 非整列循環アドレス指定を用いるマイクロプロセッサ
KR20150138343A (ko) 다중 레지스터 메모리 액세스 명령어들, 프로세서들, 방법들 및 시스템들
EP0855648A2 (en) Data processing with parallel or sequential execution of program instructions
KR101624786B1 (ko) 기입마스크 레지스터의 트레일링 최하위 마스킹 비트를 결정하는 시스템, 장치, 및 방법
US5053986A (en) Circuit for preservation of sign information in operations for comparison of the absolute value of operands
EP4020169A1 (en) Apparatuses, methods, and systems for 8-bit floating-point matrix dot product instructions
CN112559037B (zh) 一种指令执行方法、单元、装置及系统
CN108733412B (zh) 一种运算装置和方法
KR100267089B1 (ko) 스칼라/벡터연산이조합된단일명령복수데이터처리
EP1122688A1 (en) Data processing apparatus and method
CN114443528A (zh) 一种dma二维数据传输/清零参数配置方法
KR100267092B1 (ko) 멀티미디어신호프로세서의단일명령다중데이터처리
JP2690406B2 (ja) プロセッサおよびデータ処理システム
GB2402759A (en) Transferring data files between a register file and a memory

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