使用多线程处理的多核处理器设备制造技术

技术编号:17843840 阅读:42 留言:0更新日期:2018-05-03 22:35
提供配置成在某些计算情境中提高处理性能的多核处理器。多核处理器包括:多个处理核心,其实现桶式线程处理以在确保在处理器的性能被最小化时空闲指令或线程的效果的同时并行地执行多个指令线程。多个核心也可共享公共数据高速缓存,从而最小化对昂贵和复杂机构的需要以减轻高速缓存间一致性问题。桶式线程处理可最小化与共享的数据高速缓存相关联的时延影响。在一些例子中,多核处理器还可包括串行处理器,其配置成执行可以在采用桶式线程处理的处理环境中不产生令人满意的性能的单线程程序代码。

Multithreaded processor devices using multithreading

A multi-core processor configured to improve processing performance in certain computing situations is provided. Multi core processors include multiple processing cores, which are actually barrel threaded to ensure parallel execution of multiple instruction threads while ensuring that the performance of the processor is minimized by time and space instructions or threads. Multiple cores can also share common data cache, thereby minimizing the need for expensive and complex mechanisms to alleviate cache coherence. Bucket thread processing minimizes the delay impact associated with shared data buffers. In some examples, the multicore processor can also include a serial processor that is configured to perform single thread program code that does not produce satisfactory performance in a processing environment with barrel thread processing.

【技术实现步骤摘要】
【国外来华专利技术】使用多线程处理的多核处理器设备相关申请的交叉引用本申请要求下列专利的优先权:于2015年6月10日提交的美国临时专利序列号62/173,389;于2015年6月10日提交的美国临时专利序列号62/173,392;于2016年2月2日提交的美国临时专利序列号62/290,383;于2016年2月2日提交的美国临时专利序列号62/290,389;于2016年2月2日提交的美国临时专利序列号62/290,392;于2016年2月2日提交的美国临时专利序列号62/290,395;于2016年2月2日提交的美国临时专利序列号62/290,400;于2016年2月9日提交的美国临时专利序列号62/293,145;于2016年2月9日提交的美国临时专利序列号62/293,147;以及于2016年2月11日提交的美国临时专利62/293,908,其全部内容通过引用并入本文。本公开的背景许多类型的计算机体系结构都是可用的。处理器性能通常关于它的速度、效率、存储器消耗和功率消耗被评估。但是,根据这些因素,处理器的性能是高度依赖于上下文的。一个处理器在计算环境中可以具有优越的性能,其中在任何给定时间只有一个本文档来自技高网...
使用多线程处理的多核处理器设备

【技术保护点】
一种多核处理器设备,包括:多个处理核心,其配置成使用桶式线程处理来执行软件程序的多个线程;以及共享数据高速缓存,其配置成将数据发送到所述多个处理核心中的至少两个并从所述多个处理核心中的至少两个接收数据,所述共享数据高速缓存存储与在所述多个线程中的至少一个中的第一指令的执行相关联的数据,所述共享数据高速缓存和所述多个处理核心在不依赖于私有数据高速缓存的情况下进行交互。

【技术特征摘要】
【国外来华专利技术】2015.06.10 US 62/173,389;2015.06.10 US 62/173,392;1.一种多核处理器设备,包括:多个处理核心,其配置成使用桶式线程处理来执行软件程序的多个线程;以及共享数据高速缓存,其配置成将数据发送到所述多个处理核心中的至少两个并从所述多个处理核心中的至少两个接收数据,所述共享数据高速缓存存储与在所述多个线程中的至少一个中的第一指令的执行相关联的数据,所述共享数据高速缓存和所述多个处理核心在不依赖于私有数据高速缓存的情况下进行交互。2.根据权利要求1所述的设备,其中,所述多个处理核心包括:多个线程寄存器文件,其中所述多个线程寄存器文件中的至少一个与所述多个线程中的线程相关联;指令存储器,其中所述指令存储器存储与所述多个指令线程相关联的一个或更多个指令;一个或更多个算术逻辑单元以及桶式调度器,其中所述桶式调度器接收第一时钟信号,从所述指令存储器加载所述一个或更多个指令中的第一指令,并且通过以下操作来执行所述第一指令:从第一线程寄存器文件检索数据,其中所述第一线程寄存器文件与和所述第一指令相关联的线程相关联;以及将接收到的数据发送到所述一个或更多个算术逻辑单元用于处理。3.根据权利要求2所述的设备,其中,所述桶式调度器接收第二时钟信号,从所述指令存储器加载所述一个或更多个指令中的第二指令,并且通过以下操作来执行所述第二指令:从第二线程寄存器文件检索数据,其中所述第二线程寄存器文件与和所述第二指令相关联的线程相关联;以及将接收到的数据发送到所述一个或更多个算术逻辑单元用于处理。4.根据权利要求3所述的设备,其中,所述多个线程寄存器文件中的每个线程寄存器文件被配置为加载与和所述线程寄存器文件相关联的线程相关联的数据。5.根据权利要求3所述的设备,其中,所述多个处理核心同时执行所述多个指令线程。6.根据权利要求1所述的设备,其中,所述多个核心中的一个或更多个向所述共享数据高速缓存传输数据并从所述共享数据高速缓存接收数据,并且其中所述共享数据高速缓存被配置为存储用于执行所述多个线程的数据。7.根据权利要求1所述的设备,包括被配置为执行单线程程序代码的串行处理器。8.一种用于处理多个线程的方法,所述多个线程是指令程序线程,所述方法包括:使用多个处理核心执行所述多个线程,其中所述多个处理核心使用桶式线程处理来执行所述多个线程;以及,使用共享数据高速缓存将数据发送到所述多个处理核心中的至少两个并从所述多个处理核心中的至少两个接收数据,所述共享数据高速缓存存储与在所述多个线程中的至少一个中的第一指令的执行相关联的数据,所述共享数据高速缓存和所述多个处理核心在不依赖于私有数据高速缓存的情况下进行交互。9.根据权利要求8所述的方法,其中,所述方法包括:在所述多个处理核心的桶式调度器处接收第一时钟信号;从指令存储器加载第一指令,其中所述指令存储器存储与所述多个线程相关联的一个或更多个指令;并且通过以下操作来执行所述第一指令:从第一线程寄存器文件检索数据,其中所述第一线程寄存器文件与和所述第一指令相关联的指令线程相关联,并且将接收到的数据发送到一个或更多个算术逻辑单元用于处理。10.根据权利要求9所述的方法,其中,所述桶式调度器接收第二时钟信号,从所述指令存储器加载所述一个或更多个指令中的第二指令,并且通过以下操作来执行所述第二指令:从第二线程寄存器检索数据,其中第二线程寄存器文件与和所述第二指令相关联的线程相关联,并将接收到的数据发送到所述一个或更多个算术逻辑单元用于处理。11.根据权利要求10所述的方法,其中,所述多个线程寄存器文件中的每个线程寄存器文件加载与和所述线程寄存器文件相关联的线程相关联的数据。12.根据权利要求10所述的方法,其中,所述多个处理核心同时执行所述多个线程。13.根据权利要求8所述的方法,其中,所述多个核心中的一个或更多个向所述共享数据高速缓存传输数据并从所述共享数据高速缓存接收数据,并且其中所述共享数据高速缓存被配置为存储对所述多个指令线程的执行所必需的数据。14.根据权利要求8所述的方法,包括使用串行处理器执行一个或更多个单线程程序代码。15.一种非临时计算机可读存储介质,其上存储有用于处理软件程序的多个线程的指令集,所述指令集在由计算设备执行时使所述计算设备:使用多个处理核心执行所述多个指令线程,其中所述多个处理核心使用桶式线程处理来执行所述多个指令线程,并使用共享数据高速缓存将数据发送到所述多个处理核心中的至少两个并从所述多个处理核心中的至少两个接收数据,所述共享数据高速缓存存储与在所述多个线程中的至少一个中的第一指令的执行相关联的数据,所述共享数据高速缓存和所述多个处理核心在不依赖于私有数据高速缓存的情况下进行交互。16.根据权利要求15所述的非临时计算机可读存储介质,其中,所述计算设备被使得:在所述多个处理核心的所述桶式调度器处接收第一时钟信号,从指令存储器加载第一指令,其中所述指令存储器存储与所述多个指令线程相关联的一个或更多个指令,通过以下操作来执行所述第一指令:从第一线程寄存器检索数据,其中所述第一线程寄存器与和所述第一指令相关联的指令线程相关联,并且将接收到的数据发送到所述一个或更多个算术逻辑单元用于处理。17.根据权利要求16所述的非临时计算机可读存储介质,其中,所述桶式调度器接收第二时钟信号,从所述指令存储器加载所述一个或更多个指令中的第二指令,并且通过以下操作来执行所述第二指令:从第二线程寄存器检索数据,其中所述第二线程寄存器与和所述第二指令相关联的指令线程相关联,并将接收到的数据发送到所述一个或更多个算术逻辑单元用于处理。18.根据权利要求17所述的非临时计算机可读存储介质,其中,所述多个线程寄存器中的每个线程寄存器加载与和所述线程寄存器相关联的指令线程相关联的数据。19.根据权利要求17所述的非临时计算机可读存储介质,其中,所述多个处理核心同时执行所述多个指令线程。20.根据权利要求15所述的非临时计算机可读存储介质,其中,所述多个核心中的一个或更多个向所述共享数据高速缓存传输数据并从所述共享数据高速缓存接收数据,并且其中所述共享数据高速缓存被配置为存储用于执行所述多个指令线程的数据。21.根据权利要求15所述的非临时计算机可读存储介质,其中,所述计算设备被使得:使用串行处理器执行一个或更多个单线程程序代码。22.一种多核处理器设备,包括:多个处理核心,其配置成使用同时多线程处理来执行软件程序的多个线程;以及共享数据高速缓存,其配置成将数据发送到所述多个处理核心中的至少两个并从所述多个处理核心中的至少两个接收数据,所述共享数据高速缓存存储与在所述多个线程中的至少一个中的第一指令的执行相关联的数据,所述共享数据高速缓存和所述多个处理核心在不依赖于私有数据高速缓存的情况下进行交互。23.一种多核处理器设备,包括:多个处理核心,其被配置为使用桶式线程处理来执行软件程序的多个指令线程,其中多个处理核心被配置为通过下列操作来执行与所述多个指令线程的第一线程相关联的链式指令:在第一时间段期间将所述链式指令加载到第一指令存储器,其中所述链式指令包括独立指令部分和从属指令部分;在所述第一时间段期间将所述独立指令部分和与所述独立指令部分相关联的一个或更多个操作数传输到一个或更多个执行单元;在所述第一时间段期间将所述从属指令部分传输到链式指令寄存器;在所述第一时间段期间由所述一个或更多个执行单元执行所述独立指令部分;在所述第一时间段期间将所述独立指令部分的结果写入到第一中间寄存器;在第二时间段期间将所述从属指令部分、与所述从属指令部分相关联的一个或更多个操作数以及所述独立指令的结果传输到所述一个或更多个执行单元;以及在所述第二时间段期间执行所述从属指令部分。24.根据权利要求23所述的设备,其中,所述设备在所述第二时间段期间与所述链式指令的所述从属指令部分的执行并行地处理与所述多个线程中的第二线程相关联的指令。25.根据权利要求24所述的设备,其中,与所述从属指令部分相关联的一个或更多个操作数包括输入操作数,并且其中执行所述从属指令部分包括用所述从属指令部分的执行的结果覆写所述输入操作数。26.根据权利要求24所述的设备,包括复用器,所述复用器被配置为确定所述执行单元中的哪个将执行所述链式指令的所述从属指令部分,以及所述执行单元中的哪个将执行与所述第二线程相关联的所述指令。27.根据权利要求24所述的设备,包括共享数据高速缓存,所述共享数据高速缓存被配置为向所述多个处理核心中的至少两个发送数据并从所述多个处理核心中的至少两个接收数据,所述共享数据高速缓存存储与所述多个线程中的至少一个中的指令的执行相关联的数据,所述共享数据高速缓存和所述多个处理核心在不依赖于私有数据高速缓存的情况下进行交互。28.根据权利要求24所述的设备,其中,与所述从属指令部分相关联的所述一个或更多个操作数在所述第二时间段期间被存储在第一寄存器文件中,并且其中与所述第二线程相关联的所述指令包括在所述第二时间段期间存储在第二寄存器文件中的一个或更多个操作数。29.根据权利要求23所述的设备,包括寄存器文件、链式指令寄存器和与所述多个指令线程中的每个线程相关联的中间寄存器。30.根据权利要求23所述的设备,其中,所述设备在所述第二时间段期间与所述链式指令的所述从属指令部分的执行并行地处理与所述第一线程相关联的另一个独立指令部分。31.根据权利要求30所述的设备,其中,每个处理核心包括用于执行所述第一线程的独立指令部分的第一执行单元和用于执行所述第一线程的从属指令部分的第二执行单元。32.一种用于在被配置为执行多个指令线程的桶式线程化处理器中执行链式指令的方法,所述方法包括:在第一时间段期间将所述链式指令加载到第一指令存储器,其中所述链式指令包括独立指令部分和从属指令部分;在所述第一时间段期间将所述独立指令部分和与所述独立指令部分相关联的一个或更多个操作数传输到一个或更多个执行单元;在所述第一时间段期间将所述从属指令部分传输到链式指令寄存器;在所述第一时间段期间由所述一个或更多个执行单元执行所述独立指令部分;在所述第一时间段期间将所述独立指令部分的结果写到第一中间寄存器;在第二时间段期间将所述从属指令部分、与所述从属指令部分相关联的一个或更多个操作数以及所述独立指令的结果传输到所述一个或更多个执行单元;以及在所述第二时间段期间执行所述从属指令部分。33.根据权利要求32所述的方法,其中,所述链式指令与所述多个线程的第一线程相关联,以及其中所述方法包括在所述第二时间段期间与所述链式指令的所述从属指令部分的执行并行地处理与所述多个线程中的第二线程相关联的指令。34.根据权利要求33所述的方法,其中,与所述从属指令部分相关联的一个或更多个操作数包括输入操作数,并且其中执行所述从属指令部分包括用所述从属指令部分的执行的结果覆写所述输入操作数。35.根据权利要求33所述的方法,包括确定所述执行单元中的哪个将执行所述链式指令的所述从属指令部分以及与所述第二线程相关联的所述指令。36.根据权利要求33所述的方法,包括使用共享数据高速缓存向所述多个处理核心中的至少两个发送数据并从所述多个处理核心中的至少两个接收数据,所述共享数据高速缓存存储与所述多个线程中的至少一个中的第一指令的执行相关联的数据,所述共享数据高速缓存和所述多个处理核心在不依赖于私有数据高速缓存的情况下进行交互。37.根据权利要求33所述的方法,其中,与所述从属指令部分相关联的所述一个或更多个操作数在所述第二时间段期间被存储在第一寄存器文件中,并且其中与所述第二线程相关联的指令部分包括在所述第二时间段期间存储在第二寄存器文件中的一个或更多个操作数。38.根据权利要求37所述的方法,其中,所述多个指令线程中的每个线程具有它自己的寄存器文件、链式指令寄存器和与它相关联的中间寄存器。39.根据权利要求32所述的方法,包括在所述第二时间段期间与所述链式指令的所述从属指令部分的执行并行地处理与所述第一线程相关联的另一个独立指令部分。40.根据权利要求39所述的方法,其中,每个处理核心包括第一执行单元和第二执行单元,其中所述方法包括由所述第一执行单元执行所述第一线程的独立指令部分以及由所述第二执行单元执行所述第一线程的从属指令部分。41.一种非临时计算机可读存储介质,其上存储有用于处理软件程序的链式指令的指令集,所述指令集在由计算设备执行时使所述计算设备:在第一时间段期间将所述链式指令加载到第一指令存储器,其中所述链式指令包括独立指令部分和从属指令部分;在所述第一时间段期间将所述独立指令部分和与所述独立指令部分相关联的一个或更多个操作数传输到一个或更多个执行单元以用于执行;在所述第一时间段期间将所述从属指令部分传输到链式指令寄存器;在所述第一时间段期间由所述一个或更多个执行单元执行所述独立指令部分;在所述第一时间段期间将所述独立指令部分的结果写到第一中间寄存器;在第二时间段期间将所述从属指令部分、与所述从属指令部分相关联的一个或更多个操作数以及所述独立指令的结果传输到所述一个或更多个执行单元;以及在所述第二时间段期间执行所述从属指令部分。42.根据权利要求41所述的非临时计算机可读存储介质,其中,所述链式指令与所述多个线程的第一线程相关联,以及其中所述计算设备被使得在所述第二时间段期间与所述链式指令的所述从属指令部分的执行并行地处理与所述多个线程中的第二线程相关联的指令。43.根据权利要求42所述的非临时计算机可读存储介质,其中,与所述从属指令部分相关联的一个或更多个操作数包括输入操作数,并且其中执行所述从属指令部分包括用所述从属指令部分的执行的结果覆写所述输入操作数。44.根据权利要求42所述的非临时计算机可读存储介质,其中,所述设备被使得确定所述执行单元中的哪个将执行所述链式指令的所述从属指令部分以及与所述第二线程相关联的所述指令。45.根据权利要求42所述的非临时计算机可读存储介质,其中,所述设备被使得使用共享数据高速缓存向所述多个处理核心中的至少两个发送数据并从所述多个处理核心中的至少两个接收数据,所述共享数据高速缓存存储与所述多个线程中的至少一个中的第一指令的执行相关联的数据,所述共享数据高速缓存和所述多个处理核心在不依赖于私有数据高速缓存的情况下进行交互。46.根据权利要求42所述的非临时计算机可读存储介质,其中,与所述从属指令部分相关联的所述一个或更多个操作数在所述第二时间段期间被存储在第一寄存器文件中,并且其中与所述第二线程相关联的所述指令包括在所述第二时间段期间存储在第二寄存器文件中的一个或更多个操作数。47.根据权利要求41所述的非临时计算机可读存储介质,其中,所述多个线程中的每个线程具有它自己的寄存器文件、链式指令寄存器和与它相关联的中间寄存器。48.一种设备,包括:执行多个过程的多个处理器;与所述多个处理器相关联的多个高速缓存,所述多个高速缓存至少包括与第一处理器相关联的第一高速缓存;由所述多个处理器访问并存储多个变量的存储器,其中所述多个处理器通过下列操作来执行所述多个过程中的至少一个:通过将所述多个变量的子集存储到所述第一高速缓存来在所述第一处理器上发起所述多个过程的第一过程;通过将所述子集的更新副本写到所述存储器来终止所述第一过程;以及在所述第一过程的执行期间限制由除了所述第一过程以外的所述多个过程对所述子集的访问。49.根据权利要求48所述的设备,其中:所述多个过程包括第二过程,在所述第一处理器上的所述第一过程的执行由在第二处理器上执行的所述第二过程启动,终止所述执行包括所述第一过程使所述第一高速缓存无效并向所述第二过程用信号通知完成,并且在接收到所述信号时,所述第二过程访问所述子集。50.根据权利要求48所述的设备,其中,所述设备包括指示符,所述指示符提供至少第一状态和第二状态的指示,在所述第一状态中所述第一处理器未对在所述第一高速缓存中的数据的字节进行写入,以及在所述第二状态中所述第一处理器已经对在所述第一高速缓存中的数据的字节进行写入。51.根据权利要求50所述的设备,其中,所述指示符包括单个位。52.根据权利要求50所述的设备,其中,所述指示符被存储在所述第一高速缓存中。53.根据权利要求50所述的设备,其中,所述设备布置成通过下列操作通过写所述子集的更新副本来终止所述第一过程的执行:生成对包括在所述第一高速缓存中的数据的字节的所述第一高速缓存的行的请求,在所述第一状态期间,将所述行写到所述存储器使得与在所述第一高速缓存中的高速缓存数据的字节对应的在所述存储器中的高速缓存数据的字节实质上是不变的,以及在所述第二状态期间将所述行写到所述存储器以覆写对应于在所述第一高速缓存中的数据的字节的在所述存储器中的数据的字节。54.根据权利要求48所述的设备,其中:所述多个处理器包括多个核心,并且所述多个核心共享所述多个高速缓存。55.根据权利要求48所述的设备,其中,I/O一致性协议使所述设备能够与另一设备通过接口连接。56.一种用于在具有多个处理器和多个高速缓存的设备中执行多个过程的方法,所述多个高速缓存包括至少第一高速缓存,所述方法包括:将多个变量存储在由所述多个处理器访问的存储器中,通过将所述多个变量的子集存储到所述第一高速缓存来在第一处理器上发起所述多个过程的第一过程,通过将所述子集的更新副本写到所述存储器来终止所述第一过程,以及在所述第一过程的执行期间限制由除了所述第一过程以外的所述多个过程对所述子集的访问。57.根据权利要求56所述的方法,包括:在第二处理器上执行所述多个过程的第二过程,经由所述第二过程启动所述第一过程,通过使所述第一高速缓存无效并且向所述第二过程发信号通知完成以及在接收到所述信号时通过所述第二过程来访问所述子集来终止所述第一过程。58.根据权利要求56所述的方法,包括:提供指示符,所述指示符提供至少第一状态和第二状态的指示,在所述第一状态中所述第一处理器未对在所述第一高速缓存中的数据的字节进行写入,以及在所述第二状态中所述第一处理器已经对在所述第一高速缓存中的数据的字节进行写入。59.根据权利要求58所述的方法,其中,所述指示符包括单个位。60.根据权利要求58所述的方法,其中,通过写所述子集的更新副本来终止所述第一过程的执行包括:生成对包括在所述第一高速缓存中的数据的字节的所述第一高速缓存的行的请求,在所述第一状态期间,将所述行写到外部存储器使得与在所述第一高速缓存中的高速缓存数据的字节对应的在所述存储器中的高速缓存数据的字节实质上是不变的,并且在所述第二状态期间将所述行写到所述存储器以覆写对应于在所述第一高速缓存中的数据的字节的在所述存储器中的数据的字节。61.根据权利要求56所述的方法,所述方法包括在所述多个处理器的多个核心当中共享所述多个高速缓存。62.根据权利要求56所述的方法,包括使所述设备经由I/O一致性协议来与另一个设备通过接口连接。63.一种非临时计算机可读存储介质,其上存储有用于处理软件程序的指令的指令集,所述指令集在由具有多个处理器和多个高速缓存的设备执行时使所述设备:将多个变量存储在由所述多个处理器访问的存储器中,通过将所述多个变量的子集存储到第一高速缓存来在第一处理器上发起所述多个过程中的第一过程,所述第一高速缓存是所述设备中的多个高速缓存中的一个,通过将所述子集的更新副本写到所述存储器来终止所述第一过程,并且在所述第一过程的执行期间限制由除了所述第一过程以外的所述多个过程对所述子集的访问。64.根据权利要求63所述的非临时计算机可读存储介质,其中,所述指令使所述设备:在第二处理器上执行所述多个过程中的第二过程,由所述第二过程启动所述第一过程,通过使所述第一高速缓存无效并且向所述第二过程用信号通知完成,以及当接收到所述信号时通过所述第二过程来访问所述子集来终止所述第一过程。65.根据权利要求63所述的非临时计算机可读存储介质,其中,所述指令使所述设备:存储指示符,所述指示符提供至少第一状态和第二状态的指示,在所述第一状态中所述第一处理器未对在所述第一高速缓存中的数据的字节进行写入,以及在所述第二状态中所述第一处理器已经对在所述第一高速缓存中的数据的字节进行写入。66.根据权利要求65所述的非临时计算机可读存储介质,其中,所述指示符包括单个位。67.根据权利要求65所述的非临时计算机可读存储介质,其中,所述指示符被存储在所述第一高速缓存中。68.根据权利要求65所述的非临时计算机可读存储介质,其中,通过写所述子集的更新副本来终止所述第一过程的执行包括:生成对包括在所述第一高速缓存中的数据的字节的所述第一高速缓存的行的请求,在所述第一状态期间,将所述行写到所述存储器使得与在所述第一高速缓存中的高速缓存数据的字节对应的在所述存储器中的高速缓存数据的字节实质上是不变的,并且在所述第二状态期间将所述行写到所述存储器以覆写与在所述第一高速缓存中的数据的字节对应的在外部存储器中的数据的字节。69.根据权利要求63所述的非临时计算机可读存储介质,其中,所述指令使所述设备在所述多个处理器的多个核心当中共享所述多个高速缓存。70.根据权利要求63所述的非临时计算机可读存储介质,其中,所述指令使所述设备经由I/O一致性协议与另一个设备通过接口连接。71.一种设备,包括:一个或更多个存储器组、一个或更多个寄存器、将所述一个或更多个存储器组与所述一个或更多个寄存器连接的连接器、以及存储用于访问来自所述一个或更多个存储器组的数据的一组地址的一个或更多个队列,所述一组地址基于所选择的地址是否与在数据请求中的其他地址数据是几乎相同的来从所述数据请求进行选择。72.根据权利要求71所述的设备,其中:所述选择包括基于指示符矩阵的对角元素来选择所述一组地址,以及所述对角元素指示在所述数据请求中的地址是最低索引近邻还是没有近邻。73.根据权利要求72所述的设备,其中,所述选择包括选择下列项中的至少一个:与所述数据请求中的任何其他地址不是几乎相同的地址,或者与所述数据请求中的一组其他地址几乎相同并且具有在所述一组中的地址的最低索引的地址。74.根据权利要求72所述的设备,其中,所述选择包括确定所述请求中的所述地址中的任何地址是否对应于存储在所述一个或更多个存储器组中的同一个存储器组中的同一个字。75.根据权利要求72所述的设备,其中,所述连接器基于所述指示符矩阵向所述一个或更多个寄存器提供数据。76.根据权利要求75所述的设备,其中,基于所述指示符矩阵向所述一个或更多个寄存器提供数据包括:经由所述指示符矩阵确定与所述数据请求中的任何其它地址不几乎相同的或者与所述数据请求中的一组其它地址几乎相同并且具有在所述组中的地址的最低索引的在所述数据请求中的一个或更多个地址,以及将与所确定的一个或更多个地址相关联的数据提供给所述一个或更多个寄存器。77.根据权利要求76所述的设备,包括一个或更多个复用器,并且其中所述确定由所述一个或更多个复用器执行。78.一种用于处理数据的方法,包括:确定指示数据请求中的地址是否与在所述数据请求中的其他地址几乎相同的指示符矩阵,基于所述指示符矩阵来选择用于访问来自一个或更多个存储器组的数据的一组地址,将所选择的一组地址存储在一个或更多个队列中,以及基于所述一个或更多个队列从所述存储器组检索对应于所述选择的一组地址的数据。79.根据权利要求78所述的方法,其中,所述选择包括基于所述指示符矩阵的对角元素来选择所述一组地址,以及所述对角元素指示在所述数据请求中的地址是最低索引近邻还是没有近邻。80.根据权利要求78所述的方法,其中,所述选择包括选择下列项中的至少一个:与所述数据请求中的任何其他地址不几乎相同的地址,或者与所述数据请求中的一组地址几乎相同并且具有在所述组中的地址的最低索引的地址。81.根据权利要求78所述的方法,其中,所述选择包括确定所述请求中的所述地址中的任何地址是否对应于存储在所述一个或更多个存储器组中的同一个存储器组中的同一个字。82.根据权利要求78所述的方法,还包括经由连接器基于所述指示符矩阵向一个或更多个寄存器提供数据。83.根据权利要求82所述的方法,其中,基于所述指示符矩阵向所述一个或更多个寄存器提供数据包括:经由所述指示符矩阵确定与所述数据请求中的任何其它地址不几乎相同的或者与所述数据请求中的一组其它地址几乎相同并且具有在所述组中的所述地址的最低索引的在所述数据请求中的一个或更多个地址,以及将与所确定的一个或更多个地址相关联的数据提供给所述一个或更多个寄存器。84.根据权利要求83所述的方法,其中,所述确定由一个或更多个复用器执行。85.一种非临时计算机可读存储介质,其上存储有软件程序的指令集,所述指令集在由计算设备执行时使所述计算设备:确定指示数据请求中的地址是否与所述数据请求中的其他地址几乎相同的指示符矩阵,基于所述指示符矩阵来选择用于访问来自一个或更多个存储器组的数据的一组地址,将所选择的一组地址存储在一个或更多个队列中,以及基于所述一个或更多个队列来从所述存储器组检索相应于所述选择的一组地址的数据。86.根据权利要求85所述的非临时计算机可读存储介质,其中:所述选择包括基于所述指示符矩阵的对角元素来选择所述一组地址,以及所述对角元素指示所述数据请求中的地址是最低索引近邻还是没有近邻。87.根据权利要求85所述的非临时计算机可读存储介质,其中,所述指令集使所述计算设备选择下列项中的至少一个:与所述数据请求中的任何其它地址不几乎相同的地址,或者与所述数据请求中的一组地址几乎相同并且具有所述组中的地址的最低索引的地址。88.根据权利要求85所述的非临时计算机可读存储介质,其中,所述选择包括确定所述请求中的地址中的任何地址是否对应于存储在所述一个或更多个存储器组中的同一个存储器组中的同一个字。89.根据权利要求85所述的非临时计算机可读存储介质,其中,所述指令集使所述计算设备基于所述指示符矩阵经由连接器来向一个或更多个寄存器提供数据。90.根据权利要求89所述的非临时计算机可读存储介质,其中,基于所述指示符矩阵来向所述一个或更多个寄存器提供数据包括:经由所述指示符矩阵来确定与所述数据请求中的任何其它地址不几乎相同的或者与所述数据请求中的一组其它地址几乎相同并且具有所述组中的地址的最低索引的在所述数据请求中的一个或更多个地址,并且将与所确定的一个或更多个地址相关联的数据提供给所述一个或更多个寄存器。91.根据权利要求90所述的非临时计算机可读存储介质,其中,所述确定由一个或更多个复用器执行。92.一种设备,包括:存储器;数据处理子系统,其包括至少一个数据处理单元以及基于参数的第一集合来在所述存储器中生成地址的第一集合的至少一个地址生成单元;控制子系统,其将参数的所述第一集合和参数的第二集合提供给所述数据处理子系统;以及队列,其存储参数的所述第一集合和参数的所述第二集合并且在所述数据处理单元使用所述地址的第一集合来处理数据时向所述地址生成单元提供参数的所述第二集合。93.根据权利要求92所述的设备,其中:由所述数据处理单元处理的所述数据包括至少一个图像窗口,所述地址的第一集合中的至少一个对应于在所述存储器中的存储所述至少一个图像窗口的第一部分的位置,以及所述地址生成单元通过使用图像参数对所述至少一个图像窗口进行迭代来生成所述地址的第一集合,所述图像参数包括在所述存储器中的存储所述图像窗口的第二部分的地址。94.根据权利要求93所述的设备,其中,所述数据处理子系统包括将所述图像参数提供给所述地址生成单元的标量处理器。95.根据权利要求92所述的设备,其中,所述数据处理单元包括至少一个向量处理器,并且由所述数据处理单元处理的所述数据包括向量数据。96.根据权利要求92所述的设备,其中,所述数据处理子系统以增量的方式从所述存储器中检索数据,并且所述数据处理单元使用偏移量来串接在检索到的数据中的未对齐的向量数据,所述偏移量指示所述未对齐的向量数据在存储器中关于所述增量是如何未对齐的。97.根据权利要求96所述的设备,其中,所述地址生成单元计算由所述数据处理单元在所述串接中使用的所述偏移量。98.根据权利要求97所述的设备,其中:所述地址生成单元通过对所述至少一个图像窗口的部分进行迭代来生成所述地址的第一集合,并且所述偏移量包括迭代不变参数。99.一种用于处理数据的方法,包括:经由控制子系统将参数的第一集合和参数的第二集合提供到数据处理子系统,所述数据处理子系统包括至少一个数据处理单元和至少一个地址生成单元;将参数的所述第一集合和参数的所述第二集合存储在队列中;基于参数的所述第一集合经由所述地址生成单元来生成在存储器中的地址的第一集合;当由所述数据处理单元使用所述地址的第一集合来处理数据时,经由所述队列将参数的所述第二集合提供到所述地址生成单元。100.根据权利要求99所述的方法,其中,由所述数据处理单元处理的所述数据包括至少一...

【专利技术属性】
技术研发人员:约瑟夫·克雷宁尤斯·阿尔贝里吉尔·伊斯雷尔·多贡
申请(专利权)人:无比视视觉技术有限公司
类型:发明
国别省市:以色列,IL

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1