CN103365821A - 一种异构多核处理器的地址生成器 - Google Patents
一种异构多核处理器的地址生成器 Download PDFInfo
- Publication number
- CN103365821A CN103365821A CN2013102234019A CN201310223401A CN103365821A CN 103365821 A CN103365821 A CN 103365821A CN 2013102234019 A CN2013102234019 A CN 2013102234019A CN 201310223401 A CN201310223401 A CN 201310223401A CN 103365821 A CN103365821 A CN 103365821A
- Authority
- CN
- China
- Prior art keywords
- address
- output
- information
- configuration information
- selector switch
- 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
Images
Landscapes
- Logic Circuits (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明涉及一种异构多核处理器的地址生成器,包括位翻转寻址模块、循环寻址模块、顺序寻址模块、三层循环寻址模块、可配置寄存器组、控制逻辑模块和数据选择器,可按位翻转寻址、循环寻址、顺序寻址、三层循环的地址生成方式寻址,可按配置的时钟间隔周期生成地址,能满足常规fft运算的数据和旋转因子的寻址,也能实现递增的顺序寻址和有限长度的循环寻址,扩展了地址生成器的应用范围,有效的提高了复杂算法处理的能力,大幅度提高了多核系统芯片的性能。
Description
技术领域
本发明涉及一种异构多核处理器的地址生成器,属于多核处理器技术领域。
背景技术
随着微电子技术的发展,多核处理器已成为主流发展方向。多核处理器又称为单芯片多处理器,通过在单一芯片内部集成多个微内核来提高处理器的性能。
多核处理器有多种架构,其中主要是采用单一总线架构和网格架构。采用总线结构的多核,当核数增加到一定数量时,性能往往不能相应增加,这阻碍了芯片中核数的增长。而采用网格架构多核的特点是核之间通过可编程开关相连,可扩展,大大提高了核间互联效率,降低了功耗,节省了散热成本,而且模块易于布局和验证。
不同的多核处理器通常使用不同的存储机制,但地址生成单元都是计算有效地址的重要部件,快速的生成访存地址对提升系统效率是至关重要的。
在多核系统芯片结构中,根据存储组织方式和互连策略,可以分为集中式共享存储结构和分布式共享存储结构。
集中式共享存储结构适合数目较少的多处理器,各个处理器通过一根总线将处理器和存储器互联起来。在使用大容量高速缓存的情况下,总线和单一存储器能够确保小数目处理器的存储访问得到及时响应。但随着处理器数目的增多使得总线竞争加剧,效率降低。
分布式共享存储结构支持大数量的处理器,存储系统分布于各个处理器。这样设计具有两个主要好处:如果大多数访问是在节点内的本地存储器中进行,能增大存储器带宽;缩短了本地存储器访问的延迟。但其缺点是访问其他节点的存储器需要花费更多时间。
而对用于数字信号处理的多核系统,读写存储器占用了大部分时间,处理复杂数字信号算法时,例如FFT、数字滤波、卷积、相关等算法,需要频繁地改变数据地址,而一般处理器需要几个指令周期才能改变数据地址,远远不能满足数字信号处理的实时性要求。因此要求多核系统芯片内有地址运算单元,能实现连续的单周期或需要的时钟间隔周期提供地址。
传统的地址生成器只能完成地址简单的加、减操作,其计算地址方式单一,一些DSP处理器带有的地址生成器会具有位翻转寻址、循环寻址功能,但也不能够满足复杂的算法处理要求,另外也缺乏灵活性的地址生成方式。
发明内容
本发明的目的在于克服现有技术的上述缺陷,提供一种异构多核处理器的地址生成器,能满足常规fft运算的数据和旋转因子的寻址,也能实现递增的顺序寻址和有限长度的循环寻址,扩展了地址生成器的应用范围,有效的提高了复杂算法处理的能力,大幅度提高了多核系统芯片的性能。
本发明的上述目的主要是通过如下技术方案予以实现的:
一种异构多核处理器的地址生成器,包括位翻转寻址模块、循环寻址模块、顺序寻址模块、三层循环寻址模块、可配置寄存器组、控制逻辑模块和数据选择器,其中:
位翻转寻址模块:接收控制逻辑模块输出的控制信号和可配置寄存器组输出的配置信息,产生顺序地址,并对顺序地址进行位翻转,将位翻转之后的顺序地址与配置信息中的基地址求和,并将和值输出给数据选择器;
循环寻址模块:接收控制逻辑模块输出的控制信号和可配置寄存器组输出的配置信息,根据配置信息中的基地址与循环缓冲区长度计算循环寻址的首地址和尾地址,并将首地址与配置信息中的步长信息求和,若所述和值小于所述尾地址,则直接将和值输出给数据选择器;若所述和值大于所述尾地址,则和值减去循环缓冲区长度后输出给数据选择器;
顺序寻址模块:接收可配置寄存器组输出的配置信息和控制逻辑模块输出的控制信号,将配置信息中的基地址与配置信息中的步长信息求和或求差,并将所述和值或差值输出;
三层循环寻址模块:接收可配置寄存器组输出的配置信息和控制逻辑模块输出的控制信号,进行三层循环,第一层循环为在配置信息中基地址的基础上按照配置信息中的步长信息T4增加,增加数目按照配置信息中的计数信息N1确定,第二层循环为按照配置信息中的计数信息N2控制第一层循环的循环次数;第三层循环在配置信息中基地址的基础上按照配置信息中的步长信息T5增加,且第三层循环按照配置信息中的计数信息N3控制第二层循环的循环次数。
可配置寄存器组:包括六个配置寄存器,其中地址总数控制寄存器提供地址总数信息,地址总数信息中包括循环缓冲区长度信息;基地址寄存器提供基地址信息;步长寄存器提供步长信息;地址输出间隔控制寄存器提供地址间隔信息;循环控制寄存器提供循环次数信息;地址模式及位翻转控制寄存器提供地址类型信息;
控制逻辑模块:接收可配置缓存器输入的配置信息和配置启动信号,产生控制信号,控制位翻转寻址模块、循环寻址模块、顺序寻址模块和三层循环寻址模块的运行,以及数据选择器的地址输出使能。
数据选择器:接收控制逻辑模块输入的控制信号和可配置寄存器组输出的配置信息,根据配置信息中的地址间隔信息,从位翻转寻址模块、循环寻址模块、顺序寻址模块和三层循环寻址模块输出的地址信息中选择一路输出。
在上述异构多核处理器的地址生成器中,位翻转寻址模块包括顺序地址产生单元、位翻转逻辑单元、第一加法器和第一二选一选择器,其中:
顺序地址产生单元:接收控制逻辑模块输出的控制信号,产生顺序地址,并将顺序地址输出给位翻转逻辑单元;
位翻转逻辑单元:接收顺序地址和可配置寄存器组输出的配置信息,所述配置信息为位翻转地址位数,根据配置信息对顺序地址做位翻转,并将位翻转之后的顺序地址输出给第一加法器;
第一加法器:接收位翻转逻辑单元输出的位翻转之后的顺序地址和可配置寄存器组输出的配置信息,所述配置信息为基地址,将位翻转之后的顺序地址与基地址求和,并将和值输出给第一二选一选择器;
第一二选一选择器:接收第一加法器输出的和值和可配置寄存器组输出的配置信息,所述配置信息为地址类型,根据地址类型选择对和值输出或不输出。
在上述异构多核处理器的地址生成器中,循环寻址模块包括首尾地址逻辑模块、第一三选一选择器、第一触发器、第二加法器和比较修改逻辑模块,其中:
首尾地址逻辑模块:接收可配置寄存器组输出的配置信息,所述配置信息为基地址和循环缓冲区长度信息,根据配置信息计算循环寻址的首地址和尾地址,首地址输出给第一三选一选择器,将尾地址输出给比较修改逻辑模块;
第一三选一选择器:接收首尾地址逻辑模块输出的首地址、第一触发器返回的地址信息、比较修改逻辑模块输出的地址信息及控制逻辑模块输出的控制信号,根据控制信号从所述首地址、第一触发器输出的地址信息和比较修改逻辑模块输出的地址信息中选择一路输出;
第一触发器:将从三选一选择器接收的地址信息进行寄存,同时返回给第一三选一选择器,并将接收的地址信息输出给第二加法器;
第二加法器:接收来自第一触发器输出的地址信息和可配置寄存器组输出的配置信息,所述配置信息为步长信息,将所述地址信息与步长信息求和,并将和值输出给较修改逻辑模块;
比较修改逻辑模块:接收第二加法器输出的和值、可配置寄存器组输出的配置信息、首尾地址逻辑模块输出的尾地址和控制逻辑模块输出的控制信号,若第二加法器输出的和值小于所述尾地址,则直接输出和值;若第二加法器输出的和值大于所述尾地址,则和值减去循环缓冲区的长度后输出。
在上述异构多核处理器的地址生成器中,顺序寻址模块包括第二三选一选择器、第二触发器、第三加法器、减法器和第二二选一选择器,其中:
第二三选一选择器:接收可配置寄存器组输出的配置信息、控制逻辑模块输出的控制信号、第二二选一选择器输出的地址信息和第二触发器输出的地址信息,所述配置信息包括基地址和地址类型,从所述基地址、第二二选一选择器输出的地址信息和第二触发器输出的地址信息中选择一路信息输出给第二触发器;
第二触发器:接收第二三选一选择器输出的地址信息,寄存后分别输出给第二三选一的选择器、第三加法器和减法器;
第三加法器:接收可配置寄存器组输出的配置信息、控制逻辑模块输出的控制信号和第二触发器输出的地址信息,所述配置信息包括步长信息,将步长信息与地址信息求和后输出给第二二选一选择器;
减法器:接收可配置寄存器组输出的配置信息、控制逻辑模块输出的控制信号和第二触发器输出的地址信息,所述配置信息包括步长信息,将地址信息与步长信息的差值输出给第二二选一选择器;
第二二选一选择器:接收控制逻辑模块输出的控制信号,根据控制信号,将从减法器接收的差值和从第三加法器接收的和值中选择一路输出给第二三选一的选择器。
在上述异构多核处理器的地址生成器中,三层循环寻址模块包括第三二选一选择器、第三触发器、第四加法器、第三三选一选择器、第四二选一选择器、第四触发器和第五加法器,其中:
第三二选一选择器:接收可配置寄存器组输出的配置信息、控制逻辑模块输出的控制信号、第三三选一选择器输出的地址信息,所述配置信息包括基地址,从基地址与所述地址信息中选择一路信息输出给第三触发器;
第三触发器:接收第三二选一选择器输出的地址信息,寄存后分别输出给第四加法器和第三三选一选择器;
第四加法器:接收可配置寄存器组输出的配置信息和第三触发器输出的地址信息,所述配置信息包括步长信息T4,将步长信息T4与所述地址信息求和后输出给第三三选一选择器;
第三三选一选择器:接收可配置寄存器组输出的配置信息、控制逻辑模块输出的控制信号、第四加法器输出的和值、第三触发器输出的地址信息,所述配置信息包括基地址,从所述基地址、第四加法器输出的和值、第三触发器输出的地址信息中选择一路输出给第四二选一选择器;
第四二选一选择器:根据控制逻辑模块输出的控制信号,从第五加法器输出的地址信息和第三三选一选择器输出的地址信息中选择一路输出给第四触发器;
第四触发器:接收第四二选一选择器输出的地址信息,寄存后一路输出给第五加法器,另一路向外输出;
第五加法器:接收可配置寄存器组输出的配置信息和第四触发器输出的地址信息,根据配置信息中的步长信息T5与所述地址信息求和,并将和值输出给第四二选一选择器。
在上述异构多核处理器的地址生成器中,可配置寄存器组还包括多组配置缓存器,每组包括六个配置缓存器,将从外部输入的信号配置可配置寄存器组内部的配置缓存器;启动地址生成器时,根据外部输入的配置指令将其中一组配置缓存器中的值分别打入6个配置寄存器中。
本发明与现有技术相比具有如下有益效果:
(1)本发明对异构多核处理器的地址生成器进行了创新设计,支持顺序寻址、位翻转寻址、循环寻址、三层循环模式的地址寻址,能满足常规fft运算的数据和旋转因子的寻址,也能实现递增的顺序寻址和有限长度的循环寻址,扩展了地址生成器的应用范围,有效的提高了复杂算法处理的能力,大幅度提高了多核系统芯片的性能;
(2)本发明地址生成器采用全新设计的三层循环寻址模块,三层循环模式的地址寻址:第一层循环是在基地址的基础上按配置的固定步长1增加,生成配置数量的地址;第二层循环是控制第一层循环的循环次数(即同样的地址生成多次);第三层循环是基地址加配置的固定步长2,改变后的基地址反馈到第一层循环,第三层循环控制第二层循环的循环次数。生成配置数量的地址,可以单周期生成地址,大大提高了生成速度,从而提高了地址生成效率;
(3)本发明地址生成器采用的可配置寄存器组,能够为地址生成提供各种所需配置信息,并可以按配置的时钟间隔周期生成地址,按配置的地址总数自动生成所需地址,提高了自动化处理能力,扩展了地址生成器的应用范围,有效的提高了复杂算法处理的能力;
(4)本发明地址生成器包括位翻转寻址模块、循环寻址模块、顺序寻址模块和三层循环寻址模块的组合,实际使用时,可以根据需要配置其中一个模块的运行,输出所需地址,大大提高了地址生成的灵活性,可以满足不同算法需要,显著提高了地址生成器的实用性。
附图说明
图1为本发明异构多核处理器的地址生成器结构框图;
图2为本发明地址生成器内部的位翻转寻址模块结构框图;
图3为本发明地址生成器内部的循环寻址模块结构框图;
图4为本发明地址生成器内部的顺序寻址模块结构框图;
图5为本发明地址生成器内部的三层循环寻址模块结构框图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细的描述:
当异构多核用于实时性的数字信号处理时,数字信号处理中不同的算法需要的读写地址规则不同,故需要地址生成器能支持某些复杂的地址生成方式,如fft运算。本发明设计了一个三层循环的地址生成方式能满足常规fft运算的数据和旋转因子的寻址,也能实现递增的顺序寻址和有限次数的循环寻址。三层循环模式的地址寻址是指第一层循环是在基地址的基础上按配置的固定步长1增加,生成配置数量的地址;第二层循环是控制第一层循环的循环次数;第三层循环是基地址加配置的固定步长2,改变后的基地址反馈到第一层循环,第三层循环控制第二层循环的循环次数。生成配置数量的地址。
异构多核在做数字信号处理时,如果使用处理单元读写存储器需要多个时钟周期,不能满足实时性数字信号处理的要求,所以需要能单周期提供地址的地址生成器;而系统中某些算法实现时也需要按一定间隔周期输出地址,故也需要使地址生成器的地址输出间隔周期可配置;当地址生成器生成地址的性能超过算法需求时,就需要临时停止地址生成器的运行,此设计的模块提供了外部反馈信号,可以控制地址生成器的暂停或继续运行。
为了能灵活使用地址生成器,需要设计为可配置的,而配置寄存器需要比较多的时钟周期开销,所以设计为可存储多组配置信息,来节省重新配置的周期开销。配置完成启动后地址生成器就可以按配置的要求自动连续的生成所需要的地址,满足配置的地址长度后自动停止运行。
本发明设计的地址生成器可以按配置的时钟间隔周期生成地址;按配置的地址总数自动生成所需地址;具有外部反馈信号,能暂停地址生成器的运行;支持顺序寻址、位翻转寻址、循环寻址、三层循环模式的地址寻址。能满足异构多核对复杂数字信号的实时性处理。
如图1所示为本发明异构多核处理器的地址生成器结构框图,本发明异构多核处理器的地址生成器,包括位翻转寻址模块、循环寻址模块、顺序寻址模块、三层循环寻址模块、可配置寄存器组、控制逻辑模块和数据选择器。
可配置寄存器组包括六个配置寄存器和多组配置缓存器。多组配置缓存器中的每组包括六个配置缓存器。六个配置寄存器分别为地址总数控制寄存器、基地址寄存器、步长寄存器、地址输出间隔控制寄存器、循环控制寄存器和地址模式及位翻转控制寄存器。其中地址总数控制寄存器提供地址总数信息,地址总数信息中包括循环缓冲区长度信息;基地址寄存器提供基地址信息;步长寄存器提供步长信息;地址输出间隔控制寄存器提供地址间隔信息;循环控制寄存器提供循环次数信息;地址模式及位翻转控制寄存器提供地址类型信息。
输入可配置寄存器组的信号包括配置启动信号和配置信号,配置信号包括寄存器配置地址信号、寄存器配置数据信号、寄存器读使能信号和寄存器写使能信号,配置时根据寄存器配置地址信号、寄存器配置数据信号和寄存器写使能信号配置可配置寄存器组内部的配置缓存器;启动地址生成器时,根据配置启动信号将其中一组配置缓存器中的值分别打入6个配置寄存器中,例如:一组配置缓存器包括:a1、a2、a3、a4、a5、a6这6个缓存,6个配置寄存器是:b1、b2、b3、b4、b5、b6,一个配置命令来后,a1->b1,a2->b2,a3->b3,a4->b4,a5->b5,a6->b6,同时一拍打入配置寄存器。调试时根据寄存器配置地址信号、寄存器配置数据信号、寄存器读使能信号的值输出配置寄存器的值。
由输入配置启动信号可选择把可配置寄存器组中的多组配置缓存器中的某一组配置给配置寄存器。同时由此信号来启动地址生成器的运行。
控制逻辑模块接收可配置缓存器输入的配置信息和配置启动信号,产生控制信号,控制位翻转寻址模块、循环寻址模块、顺序寻址模块和三层循环寻址模块的运行,以及数据选择器的地址输出使能。输入控制逻辑模块的反馈信号,是外部模块给出停止发送地址的信号,地址生成器接收到此信号有效时会暂停地址的生成。
数据选择器接收控制逻辑模块输入的控制信号和可配置寄存器组输出的配置信息,根据配置信息中的地址间隔信息,从位翻转寻址模块、循环寻址模块、顺序寻址模块和三层循环寻址模块输出的地址信息中选择一路输出。
位翻转寻址模块接收控制逻辑模块输出的控制信号和可配置寄存器组输出的配置信息,产生顺序地址,并对顺序地址进行位翻转,将位翻转之后的顺序地址与配置信息中的基地址求和,并将和值输出给数据选择器。
循环寻址模块接收控制逻辑模块输出的控制信号和可配置寄存器组输出的配置信息,根据配置信息中的基地址和循环缓冲区长度计算循环寻址的首地址和尾地址,并将首地址与配置信息中的步长信息求和,若该和值小于尾地址,则直接将和值输出给数据选择器;若和值大于尾地址,则和值减去配置信息中的循环缓冲区长度后输出给数据选择器。
顺序寻址模块接收可配置寄存器组输出的配置信息和控制逻辑模块输出的控制信号,将配置信息中的基地址与配置信息中的步长信息求和或求差,并将和值或差值输出。
三层循环寻址模块接收可配置寄存器组输出的配置信息和控制逻辑模块输出的控制信号,进行三层循环,第一层循环为在配置信息中基地址的基础上按照配置信息中的步长信息T4增加,增加数目按照配置信息中的计数信息N1确定,第二层循环为按照配置信息中的计数信息N2控制第一层循环的循环次数;第三层循环在配置信息中基地址的基础上按照配置信息中的步长信息T5增加,且第三层循环按照配置信息中的计数信息N3控制第二层循环的循环次数。
下面详细描述位翻转寻址模块、循环寻址模块、顺序寻址模块、三层循环寻址模块的工作原理:
如图2所示为本发明地址生成器内部的位翻转寻址模块结构框图,由图可知位翻转寻址模块包括顺序地址产生单元、位翻转逻辑单元、第一加法器和第一二选一选择器。位翻转寻址模块的寻址址范围是8至32768个地址。
顺序地址产生单元由一个初始值为0的自加1加法器构成,接收控制逻辑模块输出的控制信号,产生顺序地址,并将顺序地址输出给位翻转逻辑单元。
位翻转逻辑单元接收顺序地址和可配置寄存器组输出的配置信息,该配置信息为位翻转地址位数,根据配置信息对顺序地址做位翻转,并将位翻转之后的顺序地址输出给第一加法器。
第一加法器为32位加法器,接收位翻转逻辑单元输出的位翻转之后的顺序地址和可配置寄存器组输出的配置信息,该配置信息为基地址,将位翻转之后的顺序地址与基地址求和,并将和值输出给第一二选一选择器。
第一二选一选择器接收第一加法器输出的和值和可配置寄存器组输出的配置信息,该配置信息为地址类型,根据地址类型选择对和值输出或不输出。
如图3所示为本发明地址生成器内部的循环寻址模块结构框图,由图可知循环寻址模块包括首尾地址逻辑模块、第一三选一选择器、第一触发器、第二加法器和比较修改逻辑模块。循环寻址模块输出是一个32位的地址,循环寻址模块最大的循环缓冲区的长度为65536。
首尾地址逻辑模块接收可配置寄存器组输出的配置信息,该配置信息为基地址和循环缓冲区长度信息,根据配置信息计算循环寻址的首地址和尾地址,首地址输出给第一三选一选择器,将尾地址输出给比较修改逻辑模块。
第一三选一选择器接收首尾地址逻辑模块输出的首地址、第一触发器返回的地址信息、比较修改逻辑模块输出的地址信息及控制逻辑模块输出的控制信号,根据控制信号从首地址、第一触发器输出的地址信息和比较修改逻辑模块输出的地址信息中选择一路输出。
第一触发器将从三选一选择器接收的地址信息进行寄存,同时返回给第一三选一选择器,并将接收的地址信息输出给第二加法器。
第二加法器接收来自第一触发器输出的地址信息和可配置寄存器组输出的配置信息,该配置信息为步长信息,将地址信息与步长信息求和,并将和值输出给较修改逻辑模块。
比较修改逻辑模块接收第二加法器输出的和值、可配置寄存器组输出的配置信息、首尾地址逻辑模块输出的尾地址和控制逻辑模块输出的控制信号,若第二加法器输出的和值小于上述尾地址,则直接输出和值;若第二加法器输出的和值大于上述尾地址,则和值减去循环缓冲区的长度后输出。
如图4所示为本发明地址生成器内部的顺序寻址模块结构框图,由图可知顺序寻址模块包括第二三选一选择器、第二触发器、第三加法器、减法器和第二二选一选择器。顺序寻址模块输出是一个32位的地址,根据可配置寄存器,基地址以一定的步长顺序递增或者递减生成地址。
第二三选一选择器接收可配置寄存器组输出的配置信息、控制逻辑模块输出的控制信号、第二二选一选择器输出的地址信息和第二触发器输出的地址信息,该配置信息包括基地址和地址类型,从基地址、第二二选一选择器输出的地址信息和第二触发器输出的地址信息中选择一路信息输出给第二触发器。
第二触发器接收第二三选一选择器输出的地址信息,寄存后分别输出给第二三选一的选择器、第三加法器和减法器。
第三加法器接收可配置寄存器组输出的配置信息、控制逻辑模块输出的控制信号和第二触发器输出的地址信息,该配置信息包括步长信息,将步长信息与地址信息求和后输出给第二二选一选择器。
减法器接收可配置寄存器组输出的配置信息、控制逻辑模块输出的控制信号和第二触发器输出的地址信息,该配置信息包括步长信息,将地址信息与步长信息的差值输出给第二二选一选择器。
第二二选一选择器接收控制逻辑模块输出的控制信号,根据控制信号,将从减法器接收的差值和从第三加法器接收的和值中选择一路输出给第二三选一的选择器。
如图5所示为本发明地址生成器内部的三层循环寻址模块结构框图,由图可知三层循环寻址模块包括第三二选一选择器、第三触发器、第四加法器、第三三选一选择器、第四二选一选择器、第四触发器和第五加法器。三层循环寻址模块输出是一个32位的地址。三层循环寻址模块最多可以按3层循环的方式生成地址。
第三二选一选择器接收可配置寄存器组输出的配置信息、控制逻辑模块输出的控制信号、第三三选一选择器输出的地址信息,该配置信息包括基地址,从基地址与所述地址信息中选择一路信息输出给第三触发器。
第三触发器接收第三二选一选择器输出的地址信息,寄存后分别输出给第四加法器和第三三选一选择器。
第四加法器接收可配置寄存器组输出的配置信息和第三触发器输出的地址信息,该配置信息包括步长信息T4,将步长信息T4与所述地址信息求和后输出给第三三选一选择器。
第三三选一选择器接收可配置寄存器组输出的配置信息、控制逻辑模块输出的控制信号、第四加法器输出的和值、第三触发器输出的地址信息,该配置信息包括基地址,从基地址、第四加法器输出的和值、第三触发器输出的地址信息中选择一路输出给第四二选一选择器。
第四二选一选择器根据控制逻辑模块输出的控制信号,从第五加法器输出的地址信息和第三三选一选择器输出的地址信息中选择一路输出给第四触发器。
第四触发器接收第四二选一选择器输出的地址信息,寄存后一路输出给第五加法器,另一路向外输出。
第五加法器接收可配置寄存器组输出的配置信息和第四触发器输出的地址信息,根据配置信息中的步长信息T5与地址信息求和,并将和值输出给第四二选一选择器。
本发明的异构多核处理器片内地址生成器,可按位翻转寻址、循环寻址、顺序寻址、三层循环的地址生成方式寻址(能满足基二FFT的数据和旋转因子寻址要求,也能实现递增的顺序寻址和有限长度的循环寻址),可按配置的时钟间隔周期生成地址。
以上所述,仅为本发明最佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。
Claims (6)
1.一种异构多核处理器的地址生成器,其特征在于:包括位翻转寻址模块、循环寻址模块、顺序寻址模块、三层循环寻址模块、可配置寄存器组、控制逻辑模块和数据选择器,其中:
位翻转寻址模块:接收控制逻辑模块输出的控制信号和可配置寄存器组输出的配置信息,产生顺序地址,并对顺序地址进行位翻转,将位翻转之后的顺序地址与配置信息中的基地址求和,并将和值输出给数据选择器;
循环寻址模块:接收控制逻辑模块输出的控制信号和可配置寄存器组输出的配置信息,根据配置信息中的基地址与循环缓冲区长度计算循环寻址的首地址和尾地址,并将首地址与配置信息中的步长信息求和,若所述和值小于所述尾地址,则直接将和值输出给数据选择器;若所述和值大于所述尾地址,则和值减去循环缓冲区长度后输出给数据选择器;
顺序寻址模块:接收可配置寄存器组输出的配置信息和控制逻辑模块输出的控制信号,将配置信息中的基地址与配置信息中的步长信息求和或求差,并将所述和值或差值输出;
三层循环寻址模块:接收可配置寄存器组输出的配置信息和控制逻辑模块输出的控制信号,进行三层循环,第一层循环为在配置信息中基地址的基础上按照配置信息中的步长信息T4增加,增加数目按照配置信息中的计数信息N1确定,第二层循环为按照配置信息中的计数信息N2控制第一层循环的循环次数;第三层循环在配置信息中基地址的基础上按照配置信息中的步长信息T5增加,且第三层循环按照配置信息中的计数信息N3控制第二层循环的循环次数。
可配置寄存器组:包括六个配置寄存器,其中地址总数控制寄存器提供地址总数信息,地址总数信息中包括循环缓冲区长度信息;基地址寄存器提供基地址信息;步长寄存器提供步长信息;地址输出间隔控制寄存器提供地 址间隔信息;循环控制寄存器提供循环次数信息;地址模式及位翻转控制寄存器提供地址类型信息;
控制逻辑模块:接收可配置缓存器输入的配置信息和配置启动信号,产生控制信号,控制位翻转寻址模块、循环寻址模块、顺序寻址模块和三层循环寻址模块的运行,以及数据选择器的地址输出使能。
数据选择器:接收控制逻辑模块输入的控制信号和可配置寄存器组输出的配置信息,根据配置信息中的地址间隔信息,从位翻转寻址模块、循环寻址模块、顺序寻址模块和三层循环寻址模块输出的地址信息中选择一路输出。
2.根据权利要求1所述的一种异构多核处理器的地址生成器,其特征在于:所述位翻转寻址模块包括顺序地址产生单元、位翻转逻辑单元、第一加法器和第一二选一选择器,其中:
顺序地址产生单元:接收控制逻辑模块输出的控制信号,产生顺序地址,并将顺序地址输出给位翻转逻辑单元;
位翻转逻辑单元:接收顺序地址和可配置寄存器组输出的配置信息,所述配置信息为位翻转地址位数,根据配置信息对顺序地址做位翻转,并将位翻转之后的顺序地址输出给第一加法器;
第一加法器:接收位翻转逻辑单元输出的位翻转之后的顺序地址和可配置寄存器组输出的配置信息,所述配置信息为基地址,将位翻转之后的顺序地址与基地址求和,并将和值输出给第一二选一选择器;
第一二选一选择器:接收第一加法器输出的和值和可配置寄存器组输出的配置信息,所述配置信息为地址类型,根据地址类型选择对和值输出或不输出。
3.根据权利要求1所述的一种异构多核处理器的地址生成器,其特征在于:所述循环寻址模块包括首尾地址逻辑模块、第一三选一选择器、第一触发器、第二加法器和比较修改逻辑模块,其中:
首尾地址逻辑模块:接收可配置寄存器组输出的配置信息,所述配置信息为基地址和循环缓冲区长度信息,根据配置信息计算循环寻址的首地址和尾地址,首地址输出给第一三选一选择器,将尾地址输出给比较修改逻辑模块;
第一三选一选择器:接收首尾地址逻辑模块输出的首地址、第一触发器返回的地址信息、比较修改逻辑模块输出的地址信息及控制逻辑模块输出的控制信号,根据控制信号从所述首地址、第一触发器输出的地址信息和比较修改逻辑模块输出的地址信息中选择一路输出;
第一触发器:将从三选一选择器接收的地址信息进行寄存,同时返回给第一三选一选择器,并将接收的地址信息输出给第二加法器;
第二加法器:接收来自第一触发器输出的地址信息和可配置寄存器组输出的配置信息,所述配置信息为步长信息,将所述地址信息与步长信息求和,并将和值输出给较修改逻辑模块;
比较修改逻辑模块:接收第二加法器输出的和值、可配置寄存器组输出的配置信息、首尾地址逻辑模块输出的尾地址和控制逻辑模块输出的控制信号,若第二加法器输出的和值小于所述尾地址,则直接输出和值;若第二加法器输出的和值大于所述尾地址,则和值减去循环缓冲区的长度后输出。
4.根据权利要求1所述的一种异构多核处理器的地址生成器,其特征在于:所述顺序寻址模块包括第二三选一选择器、第二触发器、第三加法器、减法器和第二二选一选择器,其中:
第二三选一选择器:接收可配置寄存器组输出的配置信息、控制逻辑模块输出的控制信号、第二二选一选择器输出的地址信息和第二触发器输出的地址信息,所述配置信息包括基地址和地址类型,从所述基地址、第二二选一选择器输出的地址信息和第二触发器输出的地址信息中选择一路信息输出给第二触发器;
第二触发器:接收第二三选一选择器输出的地址信息,寄存后分别输出 给第二三选一的选择器、第三加法器和减法器;
第三加法器:接收可配置寄存器组输出的配置信息、控制逻辑模块输出的控制信号和第二触发器输出的地址信息,所述配置信息包括步长信息,将步长信息与地址信息求和后输出给第二二选一选择器;
减法器:接收可配置寄存器组输出的配置信息、控制逻辑模块输出的控制信号和第二触发器输出的地址信息,所述配置信息包括步长信息,将地址信息与步长信息的差值输出给第二二选一选择器;
第二二选一选择器:接收控制逻辑模块输出的控制信号,根据控制信号,将从减法器接收的差值和从第三加法器接收的和值中选择一路输出给第二三选一的选择器。
5.根据权利要求1所述的一种异构多核处理器的地址生成器,其特征在于:所述三层循环寻址模块包括第三二选一选择器、第三触发器、第四加法器、第三三选一选择器、第四二选一选择器、第四触发器和第五加法器,其中:
第三二选一选择器:接收可配置寄存器组输出的配置信息、控制逻辑模块输出的控制信号、第三三选一选择器输出的地址信息,所述配置信息包括基地址,从基地址与所述地址信息中选择一路信息输出给第三触发器;
第三触发器:接收第三二选一选择器输出的地址信息,寄存后分别输出给第四加法器和第三三选一选择器;
第四加法器:接收可配置寄存器组输出的配置信息和第三触发器输出的地址信息,所述配置信息包括步长信息T4,将步长信息T4与所述地址信息求和后输出给第三三选一选择器;
第三三选一选择器:接收可配置寄存器组输出的配置信息、控制逻辑模块输出的控制信号、第四加法器输出的和值、第三触发器输出的地址信息,所述配置信息包括基地址,从所述基地址、第四加法器输出的和值、第三触发器输出的地址信息中选择一路输出给第四二选一选择器;
第四二选一选择器:根据控制逻辑模块输出的控制信号,从第五加法器输出的地址信息和第三三选一选择器输出的地址信息中选择一路输出给第四触发器;
第四触发器:接收第四二选一选择器输出的地址信息,寄存后一路输出给第五加法器,另一路向外输出;
第五加法器:接收可配置寄存器组输出的配置信息和第四触发器输出的地址信息,根据配置信息中的步长信息T5与所述地址信息求和,并将和值输出给第四二选一选择器。
6.根据权利要求1-5任一权利要求所述的一种异构多核处理器的地址生成器,其特征在于:所述可配置寄存器组还包括多组配置缓存器,每组包括六个配置缓存器,将从外部输入的信号配置可配置寄存器组内部的配置缓存器;启动地址生成器时,根据外部输入的配置指令将其中一组配置缓存器中的值分别打入6个配置寄存器中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310223401.9A CN103365821B (zh) | 2013-06-06 | 2013-06-06 | 一种异构多核处理器的地址生成器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310223401.9A CN103365821B (zh) | 2013-06-06 | 2013-06-06 | 一种异构多核处理器的地址生成器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103365821A true CN103365821A (zh) | 2013-10-23 |
CN103365821B CN103365821B (zh) | 2016-02-10 |
Family
ID=49367210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310223401.9A Active CN103365821B (zh) | 2013-06-06 | 2013-06-06 | 一种异构多核处理器的地址生成器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103365821B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105893319A (zh) * | 2014-12-12 | 2016-08-24 | 上海芯豪微电子有限公司 | 一种多车道/多核系统和方法 |
WO2017054132A1 (zh) * | 2015-09-29 | 2017-04-06 | 华为技术有限公司 | 一种生成地址的方法及数据处理设备 |
CN109324984A (zh) * | 2018-09-14 | 2019-02-12 | 北京地平线机器人技术研发有限公司 | 在卷积运算中使用循环寻址的方法和装置 |
CN113704142A (zh) * | 2021-09-02 | 2021-11-26 | 海飞科(南京)信息技术有限公司 | 片上存储的地址重映射电路 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020178195A1 (en) * | 2001-05-23 | 2002-11-28 | Lg Electronics Inc. | Memory address generating apparatus and method |
CA2451167A1 (en) * | 2003-11-26 | 2005-05-26 | Siworks Inc. | Pipelined fft processor with memory address interleaving |
CN102629191A (zh) * | 2011-04-25 | 2012-08-08 | 中国电子科技集团公司第三十八研究所 | 数字信号处理器寻址方法 |
CN102955737A (zh) * | 2012-11-06 | 2013-03-06 | 无锡江南计算技术研究所 | 异构处理器体系的程序调试方法和系统 |
-
2013
- 2013-06-06 CN CN201310223401.9A patent/CN103365821B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020178195A1 (en) * | 2001-05-23 | 2002-11-28 | Lg Electronics Inc. | Memory address generating apparatus and method |
CA2451167A1 (en) * | 2003-11-26 | 2005-05-26 | Siworks Inc. | Pipelined fft processor with memory address interleaving |
CN102629191A (zh) * | 2011-04-25 | 2012-08-08 | 中国电子科技集团公司第三十八研究所 | 数字信号处理器寻址方法 |
CN102955737A (zh) * | 2012-11-06 | 2013-03-06 | 无锡江南计算技术研究所 | 异构处理器体系的程序调试方法和系统 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105893319A (zh) * | 2014-12-12 | 2016-08-24 | 上海芯豪微电子有限公司 | 一种多车道/多核系统和方法 |
WO2017054132A1 (zh) * | 2015-09-29 | 2017-04-06 | 华为技术有限公司 | 一种生成地址的方法及数据处理设备 |
CN107580700A (zh) * | 2015-09-29 | 2018-01-12 | 华为技术有限公司 | 一种生成地址的方法及数据处理设备 |
CN109324984A (zh) * | 2018-09-14 | 2019-02-12 | 北京地平线机器人技术研发有限公司 | 在卷积运算中使用循环寻址的方法和装置 |
CN109324984B (zh) * | 2018-09-14 | 2020-06-26 | 北京地平线机器人技术研发有限公司 | 在卷积运算中使用循环寻址的方法和装置 |
CN113704142A (zh) * | 2021-09-02 | 2021-11-26 | 海飞科(南京)信息技术有限公司 | 片上存储的地址重映射电路 |
CN113704142B (zh) * | 2021-09-02 | 2022-06-14 | 海飞科(南京)信息技术有限公司 | 片上存储的地址重映射电路 |
Also Published As
Publication number | Publication date |
---|---|
CN103365821B (zh) | 2016-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107590085B (zh) | 一种具有多级缓存的动态可重构阵列数据通路及其控制方法 | |
Demmel et al. | Avoiding communication in sparse matrix computations | |
CN103218208B (zh) | 用于实施成形的存储器访问操作的系统和方法 | |
CN108537331A (zh) | 一种基于异步逻辑的可重构卷积神经网络加速电路 | |
CN111433758A (zh) | 可编程运算与控制芯片、设计方法及其装置 | |
CN102402415B (zh) | 一种动态可重构阵列内数据缓存的装置及方法 | |
CN102279818B (zh) | 支持有限共享的向量数据访存控制方法及向量存储器 | |
US20190057060A1 (en) | Reconfigurable fabric data routing | |
CN103744644A (zh) | 采用四核结构搭建的四核处理器系统及数据交换方法 | |
CN101833441A (zh) | 并行向量处理引擎结构 | |
CN103970720A (zh) | 基于大规模粗粒度嵌入式可重构系统及其处理方法 | |
CN103365821B (zh) | 一种异构多核处理器的地址生成器 | |
CN102508803A (zh) | 一种矩阵转置存储控制器 | |
US10659396B2 (en) | Joining data within a reconfigurable fabric | |
CN104317770A (zh) | 用于众核处理系统的数据存储结构及数据访问方法 | |
CN105393210A (zh) | 用于模拟共享存储器结构的存储器单元 | |
CN106326184A (zh) | 基于cpu、gpu和dsp的异构计算框架 | |
CN110059797A (zh) | 一种计算装置及相关产品 | |
US20180212894A1 (en) | Fork transfer of data between multiple agents within a reconfigurable fabric | |
CN103761072A (zh) | 一种粗粒度可重构层次化的阵列寄存器文件结构 | |
KR100863080B1 (ko) | 저전력형 컨피규레이션 캐시와 이를 포함하는 재구성형프로세싱 시스템 | |
CN105373492A (zh) | 一种面向任务流的基于寄存器文件的快速数据交换结构 | |
Waidyasooriya et al. | FPGA implementation of heterogeneous multicore platform with SIMD/MIMD custom accelerators | |
EP4268088A1 (en) | A network on chip processing system | |
CN103678202A (zh) | 一种多核处理器的dma控制器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |