CN105531932A - 可重配置指令单元阵列的串行配置 - Google Patents
可重配置指令单元阵列的串行配置 Download PDFInfo
- Publication number
- CN105531932A CN105531932A CN201480050587.5A CN201480050587A CN105531932A CN 105531932 A CN105531932 A CN 105531932A CN 201480050587 A CN201480050587 A CN 201480050587A CN 105531932 A CN105531932 A CN 105531932A
- Authority
- CN
- China
- Prior art keywords
- configuration
- load mode
- switch enclosure
- serial load
- rica
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/08—Clock generators with changeable or programmable clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/16—Constructional details or arrangements
- G06F1/1613—Constructional details or arrangements for portable computers
- G06F1/1615—Constructional details or arrangements for portable computers with several enclosures having relative motions, each enclosure supporting at least one I/O or computing function
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
- G06F12/125—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list being generated by decoding an array or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17748—Structural details of configuration resources
- H03K19/17756—Structural details of configuration resources for partial configuration or partial reconfiguration
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17748—Structural details of configuration resources
- H03K19/1776—Structural details of configuration resources for memories
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Human Computer Interaction (AREA)
- Logic Circuits (AREA)
- Microcomputers (AREA)
Abstract
一种可重配置指令单元阵列(RICA)包括多个开关盒。每个开关盒包括可根据存储在每个开关盒中的配置字来配置的指令单元以及开关织构。开关盒排列成串行加载集以使得每个串行加载集中的开关盒被配置成形成用于串行地移位相应配置字的多位移位寄存器链。
Description
相关申请的交叉引用
本申请要求于2013年9月12日提交的美国非临时申请No.14/025,646的优先权,其全部内容通过援引纳入于此。
技术领域
本申请涉及可重配置计算,且尤其涉及被配置成串行地接收其配置数据的指令单元阵列。
背景
尽管处理器速度已经逐渐提高,但对提高的计算能力的需求仍然未减弱。例如,智能电话现在使其处理器负担令人困惑的各种任务。但单核处理器在给定时间只能容适这么多的指令。因此,现在通常提供能并行地处理指令集的多核或多线程处理器。但此类基于指令的架构始终必须对抗由管芯空间、功耗、以及关于增加指令处理时间的复杂性所施加的限制。
与使用可编程处理核相比,存在能够在专用硬件中被更高效地处理的许多算法。例如,图像处理涉及显著并行性以及通过处理步骤的流水线的对像素的成群处理。如果算法随后被映射到硬件,则该实现利用该对称性和并行性。但设计专用硬件是昂贵的且也是麻烦的,因为如果算法被修改,则专用硬件必须被重新设计。
为了提供基于指令的架构与专用硬件办法之间的高效折衷,已经开发出可重配置指令单元阵列(RICA)架构。图1A解说了具有可重配置核1的示例RICA系统50。在RICA50中,多个指令单元2(诸如加法器(ADD)、乘法器(MUL)、寄存器(REG)、逻辑运算移位器(SHIFT)、除法器(DIV)、数据比较器(COMP)、逻辑门(LOGIC)、以及逻辑跳转单元(JUMP))通过可编程开关织构4来互连。指令单元2关于它们实现的其逻辑功能或指令的配置可以在必要时被重编程以实现给定算法或功能。开关织构4也将被相应地重编程。指令单元2包括存储器接口单元12,这些存储器接口单元12对接其余指令单元2的(如被检索或加载到数据存储器8中的)数据。指令单元2的结果所得的处理根据从配置RAM6获得的配置指令10来发生。解码模块11解码指令10以便不仅获取用于指令单元2的配置数据,而且还获取用于开关织构4的配置数据。RICA50通过I/O端口16以及专用指令单元寄存器14来与外部系统对接。图1A中所示的附加特征在于2006年4月28日提交的美国专利公开No.2010/0122105中描述,该公开的内容藉此通过援引整体纳入于此。
可重配置阵列中的指令单元可按行和列来布置。每个指令单元、任何相关联的寄存器、以及用于指令单元的相关联的输入和输出开关织构可被认为是驻留在开关盒内。图1B示出了按行和列排列的示例开关盒阵列。在所选开关盒之间形成的数据路径被承载在来自多个通道之中的所选通道上。该多个通道也按行和列排列以与开关盒的行和列相匹配。每个通道具有特定位宽。行方向可被认为是东西走向的,而列方向是南北走向的。开始于初始开关盒100中的指令单元的数据路径在向东行方向上的输出通道101上路由。该数据路径从后续开关盒的路由在恰适的向东/向西行方向或向北/向南列方向上,以使得到达在某个所选行和列位置处的最终开关盒105。在该示例数据路径中,两个指令单元被配置为算术逻辑单元(ALU)110。其余开关盒中的指令单元为了解说清楚而未示出。每个开关盒包括两个开关矩阵或织构:输入开关织构,用于选择去往其指令单元的通道输入;以及还有输出开关织构,用于选择从该开关盒离开的通道输出。用于指令单元的这些开关织构在图1A中被共同示为开关织构4。
与指令单元形成对比,现场可编程门阵列(FPGA)中的逻辑块使用查找表(LUT)。例如,设想在经配置FPGA中执行的逻辑运算中需要AND(与)门。相应LUT将以用于AND门逻辑功能的真值表来编程。但指令单元“粗粒度”得多,因为它包含专用逻辑门。例如,ALU指令单元将包括各色专用逻辑门。ALU指令单元的功能是可配置的——其原语逻辑门是专用门并因此是不可配置的。例如,常规CMOS反相器是一种类型的专用逻辑门。关于此种反相器是没什么可供配置的,该反相器不需要任何配置位。但FPGA可编程逻辑块中的反相器功能的实例化则改为通过LUT的真值表的相应编程来执行。因此,如本文所使用的,术语“指令单元”指的是包括专用逻辑门的可配置逻辑元件。
ALU指令单元对一个或多个操作数执行其逻辑功能。本上下文中的操作数是接收到的通道输入。取决于其配置位,ALU指令单元被配置成执行相应的逻辑运算。例如,第一开关盒可包括被配置成将对应于两个通道输入的两个操作数相加的ALU指令单元。但相同的ALU指令单元稍后可被更新为将这两个操作数相减。该指令单元内的逻辑运算所产生的操作数可能在另一指令单元中被需要。因此,第一开关盒中的输出开关织构将被配置成通过相应的通道输出将结果所得的操作数驱离第一开关盒。与之形成对比,FPGA的LUT产生位,这些LUT不生成字。因此FPGA中的开关结构根本上不同于RICA中的开关结构,因为FPGA的开关结构被配置成对来自FPGA的LUT的位进行路由。与之形成对比,RICA中的开关盒之间的路由被配置成作为输入通道和输出通道两者来路由字。例如,开关盒阵列可被配置成路由20个通道。这一实施例中的开关盒因此可以从所有四个方向接收20个输入通道并在这四个方向上驱动20个输出通道。
注意,RICA的优点在于:由于指令单元包括专用逻辑门,因此必需的配置数据量显著地少于用于相当的FPGA的配置数据。开关盒因此可以在相对较短的延迟上被容易地重配置,以使得重配置对于伴随处理器而言实际上是实时的。与之形成对比,用于FPGA的相对巨量的配置数据需要相当长的延迟以用于其重配置。与传统处理器中的基于软件的实现相比,RICA还具有处理速度优势。例如,算法(诸如涉及通过管线化处理方案处理多个像素的图像处理)能够以仿效专用硬件办法的方式被映射到指令单元。但无需设计专用硬件。取而代之,可以只在必要时配置指令单元以及开关织构。因此,如果必须重新设计算法,则无需重新设计硬件,而是用户可以仅改变配置数据。这相对于传统的基于指令的计算办法而言是相当有优势的。
尽管RICA因此提供了稳健的优点,但其实现中仍然有挑战。例如,对于每个开关盒内的可配置元件需要数个配置位,诸如用于指令单元和开关织构的配置。每个开关盒因此需要用于存储其配置位的存储元件或单元。在一个示例实施例中,二十行和二十列的阵列(结果有400个开关盒)需要77千位用于其配置。用于加载这么多配置位的电路系统消耗宝贵的管芯空间和功率。另外,RICA需要最小等待时间来加载配置位。就此,指令单元在RICA中不是被静态编程的——例如指令单元可以在正常操作期间被重配置若干次。可能不需要这样频繁的重编程,但应提供该能力。由于其他系统(诸如微处理器)可以与RICA对接,因此重配置的等待时间必须被最小化以防止停顿。
因此,本领域中需要用于可重配置指令单元阵列的面积高效且低等待时间的配置方案。
概述
为了提供面积高效且又低等待时间的配置方案,可重配置指令单元阵列(RICA)中的开关盒被组织成串行加载集。每个串行加载集形成多位移位寄存器,该多位移位寄存器通过串行加载集的开关盒来移位多位配置字。在一个实施例中,RICA的开关盒阵列被组织成行和列以使得每个串行加载集跨越列或行的全部或一部分。如果开关盒的行或列被拆分为两个串行加载集,则将期望配置字移位到每个串行加载集中所必需的配置时间减少。
附图简述
图1A是示例可重配置指令单元阵列(RICA)的框图。
图1B是图1A的RICA中的开关盒阵列的框图。
图2示出排列成串行加载集的开关盒阵列。
图3是开关盒串行加载集中的多位移位寄存器的示意图。
图4是包括当前状态锁存器阵列的示例串行加载集的示意图。
图5是用于将配置字串行地加载到开关盒串行加载集中的方法的流程图。
本发明的各实施例及其优势通过参考以下详细描述而被最好地理解。应当领会,在一个或多个附图中,相同的参考标记被用来标识相同的元件。
详细描述
提供了其中配置数据被串行地移位到开关盒链中的可重配置指令单元阵列(RICA)。用于配置开关盒中的指令单元以及输入和输出开关织构的配置数据形成配置字,该配置字包括范围从第一配置位到最后配置位的多个配置位。每个开关盒的输入和输出开关织构在本文被合称为单个开关织构。每个开关盒包括适配成存储n位配置字的n位寄存器,该n位配置字是复数正整数。在不做澄清的情况下,如本文所使用的术语“寄存器”是指一位寄存器。由此,n位寄存器包括n个寄存器。例如,用于开关盒的n位寄存器中的第一寄存器被配置成存储开关盒的配置字的第一配置位。类似地,n位寄存器中的第二寄存器被配置成存储配置字中的相应第二配置位,依此类推,以使得n位寄存器中的最后(或第n)寄存器被配置成存储配置字中的相应最后配置位。
在一个RICA实施例中,每个开关盒不仅存储用于其指令单元和开关织构的当前状态配置字,而且还存储下一状态配置字。这一实施例中的每个开关盒包括用于存储当前状态配置字的当前状态存储单元阵列以及用于存储下一状态配置字的下一状态n位寄存器。开关盒通过将下一状态配置字从其下一状态n位寄存器阵列加载到其当前状态存储单元阵列来响应于更新信号。本文关于将下一状态配置字加载到下一状态n位寄存器中来描述串行配置架构。然而,所公开的加载方案的实施例也广泛适用于仅加载当前配置字的可重配置指令单元阵列。就此,本文公开的下一状态n位寄存器为了简明起见被简称为“n位寄存器”,除非有其他要求。
RICA中的开关盒阵列可排列成行和列。将领会,什么被表示为“行”对照什么是“列”仅仅是视角问题。因此,术语行和列在本文中在不失一般性地被使用。为了允许配置字的有利的串行加载,开关盒串行加载集中的n位寄存器被配置为形成n位移位寄存器。n位移位寄存器包括与其配置位相对应的n个移位寄存器的并行排列。例如,被配置成存储来自开关盒串行加载集的相应配置字的第一配置位的寄存器排列成第一移位寄存器。类似地,被配置成存储用于开关盒串行加载集的第二配置位的寄存器排列成第二移位寄存器,依此类推,以使得被配置成存储串行加载集中的最后配置位的寄存器排列成最后移位寄存器。开关盒串行加载集中的寄存器如此排列成范围为从第一移位寄存器到最后移位寄存器的移位寄存器阵列以形成n位移位寄存器。更一般而言,这种n位移位寄存器可被表示为多位移位寄存器,因为其串行地移位多位配置字。在一个实施例中用于每个串行加载集的多位移位寄存器形成用于串行地移位配置字直到串行加载集中的每个开关盒存储其相应配置字的装置。
串行加载集中的开关盒排列成从第一开关盒到最后开关盒。第一开关盒中的n位寄存器的数据输入端子耦合至相应的配置总线,该配置总线包括与该多个配置位相对应的多个配置位导体。由此,就像每个开关盒中的寄存器一样,配置总线中的配置位导体中的第一配置位导体被配置成传播用于相应开关盒串行加载集的配置字的第一配置位。类似地,配置总线中的配置位导体中的第二配置位导体被配置成传播用于串行加载集的第二配置位,依此类推。为了更好地解说开关盒串行加载集的特征,现在将讨论一些示例实施例。
示例实施例
图2解说了其中开关盒阵列200包括二十行和二十列开关盒的实施例。每一列关于配置数据的串行加载被对半拆分,以使得开关盒阵列200包括上半阵列和下半阵列。每个半阵列中的每半列开关盒适配成形成串行加载集。例如,下半阵列中的一个串行加载集从开关盒210延伸到开关盒215。针对每个半阵列的配置存储器驱动该半阵列的串行加载集。北配置存储器210驱动上半阵列而南配置存储器205驱动下半阵列。每个配置存储器201和205被配置成将配置字驱动到其相应的半阵列的串行加载集中。例如,南存储器205被配置成将配置字驱动到从开关盒210延伸到开关盒215的串行加载集中以及驱动到下半阵列的其余串行加载集中。在一个实施例中,每个配置字宽是192位。这一实施例中的具有二十个开关盒的行的配置因此需要20×192位,等于3840位。由于阵列200中有二十行,因此用于阵列200的配置数据于是将包括20×3840位,等于约77千位。
在一替换性实施例中,单个配置存储器可存储所有配置字。每个串行加载集随后将跨阵列200中的相应的全列延伸。但如将在本文中进一步解释的,配置过程的加载时间在其中阵列排列成各自具有其自己的串行加载集的半阵列(诸如阵列200中那样)的实施例中减半。
图3解说了开关盒的示例串行加载集300。为了清楚地解说,每个开关盒由用于存储其配置字的其n位寄存器表示。例如,初始循环1开关盒由其n位寄存器305表示,毗邻的循环2开关盒由其n位寄存器310表示,依此类推,以使得最终循环10开关盒由其n位寄存器315表示。各个n位寄存器排列成形成从n位寄存器305开始并在n位寄存器315中结束的n位移位寄存器。
n位寄存器中的寄存器由它们对其相应配置字存储的位来命名。每个配置字是n位宽,其中n是表示配置字宽度中的位数的正整数。就此,每个配置字包括从第一位到最后的第n位的一系列位。每个n位寄存器中的寄存器由此排列成从存储第一配置位的第一寄存器R1、存储第二配置位的第二寄存器R2、依此类推到存储第n配置位的最后寄存器Rn。
n位移位寄存器包括包含来自每个开关盒的R1寄存器的第一移位寄存器320。由此,移位寄存器320作用于对用于编程串行加载集300的配置字的第一配置位进行移位。类似地,第二移位寄存器325包括来自每个开关盒的R2寄存器,依此类推,以使得最后移位寄存器330包括来自每个开关盒的Rn寄存器。每个寄存器R1到Rn被配置成响应于RICA时钟的循环来进行寄存。由此,当RICA时钟循环时,配置字从开关盒传递到串行加载集300中的后续开关盒。
再次参考图2,阵列200的开关盒210是循环1开关盒。使用命名“循环1”是因为循环1开关盒是使其n位寄存器在RICA配置过程的第一RICA时钟循环期间存储配置字的开关盒(为清楚说明,RICA时钟在图2中未示出)。循环1开关盒中的n位寄存器305在串行加载集300的配置期间在RICA时钟的第一循环中寄存第一配置字。第一配置字随后在n位寄存器305中的寄存器的Q输出处呈现。
来自n位寄存器305中的寄存器的Q输出驱动循环2开关盒中的n位寄存器310中的相应寄存器的数据输入(D)。使用命名“循环2”是因为循环2开关盒在RICA配置过程期间在第二RICA时钟循环中首先寄存配置字。n位寄存器310由此将在RICA时钟的循环2中寄存第一配置字。以此方式,通过串行加载集中的开关盒串行地移位配置字,直到最后的循环10开关盒在n位寄存器315中在第10个RICA时钟循环中寄存第一配置字。串行加载集300中的所有开关盒由此在第10个RICA时钟循环处寄存其相应的配置字。更一般而言,在具有任意数量x个开关盒串行加载集中,开关盒将在第x个RICA时钟循环中寄存其相应的配置字。
注意,与其中串行加载集跨越所有行的实施例相比,将图2的阵列200中的列拆分为半列减少了配置时间。例如,在具有未拆分为半阵列的20行的实施例中,该配置过程可能需要20个时钟RICA循环。但图2的串行加载集仅需要10个RICA时钟循环用于其配置。
图4示出了示例n位移位寄存器400以更好地解说串行加载过程。为了清楚地解说,在移位寄存器400中仅示出了3个n位寄存器R1、R2和R3。由此,包括n位移位寄存器400的开关盒(未解说)的串行加载集将仅包括三个开关盒。在此实施例中,移位到n位移位寄存器400中的配置字是下一状态配置字。n位寄存器R1在RICA时钟430的第一时钟循环中锁存下一状态配置字。因为n位寄存器R1是n位移位寄存器400中的初始n位寄存器,所以配置存储器420通过配置总线220将第一配置字驱动到n位寄存器R1的数据输入端子。配置存储器420被实现成响应于芯片选择(CS)信号440而检索配置字。当CS440被断言时,配置存储器420响应于地址信号(addr)445和存储器时钟(MCK)450来检索配置字。
每个n位寄存器R1到R3在RICA时钟430的每个循环期间寄存其数据输入。由此,在第二RICA时钟循环中,n位寄存器R2寄存初始寄存在n位寄存器R1中的第一个下一状态配置字。在第三RICA时钟循环中,此第一个下一状态配置字随后被n位寄存器R3寄存。以此方式,在第一RICA时钟循环中已存储在n位寄存器R1中的下一状态配置字在第三RICA时钟循环中被存储在n位寄存器R3中。此时,该下一状态配置字已被完全加载到n位移位寄存器400中。更新信号455随后可被断言以导致该下一状态配置字被并行地移位到当前状态锁存器阵列410。与下一状态移位寄存器400类似,当前状态锁存器阵列410包括分别与n位寄存器R1、R2和R3相对应的n位锁存器L1、L2和L3。与n位寄存器类似,n位锁存器对应于开关盒以使得n位锁存器L1对应于第一开关盒,n位锁存器L2对应于第二开关盒,且n位锁存器L3对应于第三开关盒。
更新信号455充当n位锁存器L1、L2和L3的置位(S)信号。如本文所使用的,“锁存器”是指被配置成响应于置位信号的电平(高或低)来锁存数据输入的存储单元。与之形成对比,如本文所使用的术语“寄存器”是指包括两个一位锁存器的存储单元,其中按位被存储从而所得到的结构对于时钟信号是边沿敏感的(上升沿或下降沿)。因为不需要移位能力,其由此节省了用于将开关盒串行加载集的当前状态配置字存储在锁存器中的面积。当前状态配置字随后可供用于配置相应开关盒中的指令单元和开关织构。然而,将领会,在替换实施例中,锁存器阵列410可被n位移位寄存器取代。现在将讨论一种示例操作方法。
示例操作方法
图5中示出了将配置字串行地加载到可重配置指令单元阵列的开关盒串行加载集的示例方法的流程图。该方法开始于动作500,将一系列配置字串行地移位到开关盒串行加载集中,直到该串行加载集中的每个开关盒存储这些配置字中的相应配置字。例如,假定开关盒串行加载集包括串行地排列为第一开关盒、第二开关盒和第三开关盒的三个开关盒。相应的一系列配置字由此将包括用于第一开关盒的第一配置字,用于第二开关盒的第二配置字以及用于第三开关盒的第三配置字。该方法随后继续动作505,响应于所存储的相应配置字来配置每个开关盒中的指令单元和开关织构。
如本领域普通技术人员至此将会领会并取决于手头的具体应用的,可以在本公开的设备的材料、装置、配置和使用方法上做出许多修改、替换和变动而不会脱离本公开的精神和范围。有鉴于此,本公开的范围不应当被限定于本文中所解说和描述的特定实施例(因为其仅是藉其一些示例来解说和描述的),而应当与所附权利要求及其功能等同方案完全相当。
Claims (20)
1.一种可重配置指令单元阵列(RICA),包括:
组织成多个串联加载集的开关盒阵列,其中对于每个串行加载集,相应开关盒被排列为从第一开关盒到最后开关盒,每个开关盒包括可编程指令单元和开关织构,所述可编程指令单元和开关织构两者能够根据相应的配置字来配置,每个开关盒包括被配置成存储相应配置字的n位寄存器,其中每个配置字包括多个n个配置位,n为复数整数;以及
其中用于每个串行加载集的n位寄存器排列为形成n位移位寄存器,所述n位移位寄存器被配置成响应于RICA时钟的循环而在所述串行加载集中串行地移位配置字。
2.如权利要求1所述的RICA,其特征在于,所述开关盒被排列成行和列,并且其中所述串行加载集中的第一多个串行加载集中的串行加载集包括每一列的上半部分,且其中所述串行加载集中的第二多个串行加载集中的串行加载集包括每一列的下半部分。
3.如权利要求2所述的RICA,其特征在于,进一步包括:
用于存储用于所述串行加载集中的所述第一多个串行加载集的配置字的第一存储器;以及
用于存储用于所述串行加载集中的所述第二多个串行加载集的配置字的第二存储器。
4.如权利要求3所述的RICA,其特征在于,所述第一存储器和所述第二存储器各自被配置成响应于所述RICA时钟的循环而将其存储的配置字驱动到相应的多个串行加载集中。
5.如权利要求1所述的RICA,其特征在于,进一步包括:
对应于所述多个串行加载集的多个配置总线,每个配置总线包括对应于多个配置位的多个配置位导体,每个配置位导体被配置成传导相应配置位,其中对于每个串行加载集,相应的配置总线被耦合至所述串行加载集的第一开关盒中的n位寄存器的数据输入端子。
6.如权利要求5所述的RICA,其特征在于,进一步包括被配置成响应于所述RICA时钟的循环而将所述配置字驱动到所述多个配置总线中的配置存储器。
7.如权利要求6所述的RICA,其特征在于,所述配置存储器被配置成响应于芯片选择信号和地址信号来驱动所述配置字。
8.如权利要求1所述的RICA,其特征在于,所述n位移位寄存器被配置成串行地移位下一状态配置字,每个开关盒进一步包括被配置成响应于更新信号的断言而将下一状态配置字存储为当前状态配置字的n位锁存器阵列。
9.如权利要求8所述的RICA,其特征在于,对于每个串行加载集,所述n位移位寄存器从第一n位寄存器延伸到最后n位寄存器,并且其中所述n位锁存器阵列从与所述第一n位寄存器相对应的第一n位锁存器延伸到与所述最后n位寄存器相对应的最后n位锁存器。
10.如权利要求9所述的RICA,其特征在于,对于每个串行加载集,每个n位锁存器被配置成响应于所述更新信号的断言而锁存来自相应的n位寄存器的当前状态配置字。
11.一种方法,包括:
将一系列配置字串行地移位到开关盒串行加载集中,直到所述串行加载集中的每个开关盒存储所述配置字中的相应配置字;以及
响应于所存储的相应配置字来配置每个开关盒中的指令单元和开关织构。
12.如权利要求11所述的方法,其特征在于,所述串行加载中的开关盒是排列成行和列的开关盒阵列的一部分,且其中将所述一系列配置字串行地移位到所述串行加载集中包括沿所述列中的一列串行地移位所述配置字。
13.如权利要求11所述的方法,其特征在于,串行地移位所述一系列配置字包括沿所述一列的一半串行地移位所述配置字。
14.如权利要求11所述的方法,其特征在于,串行地移位所述一系列配置字包括通过多位移位寄存器串行地移位所述一系列配置字,其中每个开关盒包括针对所述多位移位寄存器的相应的多位寄存器,直到每个多位寄存器存储所述一系列配置字中的相应配置字。
15.如权利要求14所述的方法,其特征在于,所述一系列配置字是一系列下一状态配置字,所述方法进一步包括:将相应的所存储的下一状态配置字从每个多位寄存器加载到相应的多位锁存器中,以使得每个多位锁存器存储当前状态配置字。
16.如权利要求15所述的方法,其特征在于,所述加载是响应于更新信号的断言。
17.如权利要求14所述的方法,其特征在于,进一步包括通过从编程存储器检索所述一系列配置字来用所述一系列配置字驱动所述多位移位寄存器。
18.一种可重配置的指令单元阵列(RICA),包括:
组织成开关盒串行加载集的开关盒阵列,每个开关盒包括可编程指令单元和开关织构,所述可编程指令单元和开关织构两者能根据相应的配置字来配置;以及
用于在每个开关盒串行加载集中串行地移位配置字直到每个开关盒存储其相应配置字的装置。
19.如权利要求18所述的RICA,其特征在于,所述开关盒阵列被组织成数行和数列,且其中每个开关盒串行加载集中的开关盒数目小于列数。
20.如权利要求19所述的RICA,其特征在于,每个串行加载集中的开关盒数目是列数的一半。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/025,646 US9330040B2 (en) | 2013-09-12 | 2013-09-12 | Serial configuration of a reconfigurable instruction cell array |
US14/025,646 | 2013-09-12 | ||
PCT/US2014/054769 WO2015038535A1 (en) | 2013-09-12 | 2014-09-09 | Serial configuration of a reconfigurable instruction cell array |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105531932A true CN105531932A (zh) | 2016-04-27 |
Family
ID=51619295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480050587.5A Pending CN105531932A (zh) | 2013-09-12 | 2014-09-09 | 可重配置指令单元阵列的串行配置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9330040B2 (zh) |
EP (1) | EP3044879B1 (zh) |
JP (1) | JP6046319B1 (zh) |
CN (1) | CN105531932A (zh) |
WO (1) | WO2015038535A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114174973A (zh) * | 2019-07-26 | 2022-03-11 | 高通股份有限公司 | 串行存储器设备i/o模式选择 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5498975A (en) * | 1992-11-19 | 1996-03-12 | Altera Corporation | Implementation of redundancy on a programmable logic device |
US6985989B2 (en) * | 2000-03-10 | 2006-01-10 | Hitachi, Ltd. | Storage apparatus having plural controller including interconnected memories |
CN1868124A (zh) * | 2003-10-13 | 2006-11-22 | 国际商业机器公司 | 用于在可编程逻辑阵列中动态执行功能的系统和方法 |
US20070279087A1 (en) * | 2006-05-30 | 2007-12-06 | Fujitsu Limited | Reconfigurable integrated circuit device to automatically configure an initialization circuit |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3546684A (en) * | 1968-08-20 | 1970-12-08 | Nasa | Programmable telemetry system |
IT1021004B (it) * | 1973-11-09 | 1978-01-30 | Honeywell Inf Systems | Apparecchiatura elettronica di co mando di periferica per il collega mento locale e remoto della stessa ad un sistema di elaborazione dati |
US5426378A (en) | 1994-04-20 | 1995-06-20 | Xilinx, Inc. | Programmable logic device which stores more than one configuration and means for switching configurations |
US5646545A (en) | 1995-08-18 | 1997-07-08 | Xilinx, Inc. | Time multiplexed programmable logic device |
GB9622684D0 (en) * | 1996-10-31 | 1997-01-08 | Sgs Thomson Microelectronics | An integrated circuit device and method of communication therwith |
US5995988A (en) | 1997-12-04 | 1999-11-30 | Xilinx, Inc. | Configurable parallel and bit serial load apparatus |
US6091263A (en) | 1997-12-12 | 2000-07-18 | Xilinx, Inc. | Rapidly reconfigurable FPGA having a multiple region architecture with reconfiguration caches useable as data RAM |
US5968196A (en) | 1998-04-21 | 1999-10-19 | Atmel Corporation | Configuration control in a programmable logic device using non-volatile elements |
GB9818377D0 (en) * | 1998-08-21 | 1998-10-21 | Sgs Thomson Microelectronics | An integrated circuit with multiple processing cores |
US6665816B1 (en) * | 1999-10-01 | 2003-12-16 | Stmicroelectronics Limited | Data shift register |
US6728799B1 (en) * | 2000-01-13 | 2004-04-27 | Hewlett-Packard Development Company, L.P. | Hybrid data I/O for memory applications |
US6801960B1 (en) * | 2000-09-28 | 2004-10-05 | Emc Corporation | Switch-based acceleration of computer data storage employing aggregations of disk arrays |
GB2370380B (en) * | 2000-12-19 | 2003-12-31 | Picochip Designs Ltd | Processor architecture |
US6901455B2 (en) * | 2001-06-29 | 2005-05-31 | Intel Corporation | Peripheral sharing device with unified clipboard memory |
EP1363132B1 (en) | 2002-05-13 | 2007-09-05 | STMicroelectronics Pvt. Ltd | A method and device for testing of configuration memory cells in programmable logic devices (PLDS) |
US6826663B2 (en) * | 2003-01-13 | 2004-11-30 | Rambus Inc. | Coded write masking |
JP2006127460A (ja) * | 2004-06-09 | 2006-05-18 | Renesas Technology Corp | 半導体装置、半導体信号処理装置、およびクロスバースイッチ |
ATE504043T1 (de) | 2005-04-28 | 2011-04-15 | Univ Edinburgh | Umkonfigurierbares anweisungs-zellen-array |
EP2188894B1 (en) | 2007-09-13 | 2017-10-18 | Friedrich-Alexander-Universität Erlangen-Nürnberg | Logic chip, logic system and method for designing a logic chip |
JP5360194B2 (ja) * | 2009-03-18 | 2013-12-04 | 日本電気株式会社 | 再構成可能な論理回路 |
-
2013
- 2013-09-12 US US14/025,646 patent/US9330040B2/en not_active Expired - Fee Related
-
2014
- 2014-09-09 CN CN201480050587.5A patent/CN105531932A/zh active Pending
- 2014-09-09 EP EP14772517.0A patent/EP3044879B1/en not_active Not-in-force
- 2014-09-09 WO PCT/US2014/054769 patent/WO2015038535A1/en active Application Filing
- 2014-09-09 JP JP2016541489A patent/JP6046319B1/ja not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5498975A (en) * | 1992-11-19 | 1996-03-12 | Altera Corporation | Implementation of redundancy on a programmable logic device |
US6985989B2 (en) * | 2000-03-10 | 2006-01-10 | Hitachi, Ltd. | Storage apparatus having plural controller including interconnected memories |
CN1868124A (zh) * | 2003-10-13 | 2006-11-22 | 国际商业机器公司 | 用于在可编程逻辑阵列中动态执行功能的系统和方法 |
US20070279087A1 (en) * | 2006-05-30 | 2007-12-06 | Fujitsu Limited | Reconfigurable integrated circuit device to automatically configure an initialization circuit |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114174973A (zh) * | 2019-07-26 | 2022-03-11 | 高通股份有限公司 | 串行存储器设备i/o模式选择 |
Also Published As
Publication number | Publication date |
---|---|
US20150074324A1 (en) | 2015-03-12 |
EP3044879B1 (en) | 2017-11-29 |
US9330040B2 (en) | 2016-05-03 |
WO2015038535A1 (en) | 2015-03-19 |
EP3044879A1 (en) | 2016-07-20 |
JP2017500812A (ja) | 2017-01-05 |
JP6046319B1 (ja) | 2016-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11995027B2 (en) | Neural processing accelerator | |
US9503095B2 (en) | Space-multiplexing DRAM-based reconfigurable logic | |
JP2562845B2 (ja) | メッシュプロセッサアレー | |
JP4594666B2 (ja) | 再構成可能な演算装置 | |
CN108182959B (zh) | 基于阻变器件交叉阵列结构实现逻辑计算的方法 | |
CN105814637A (zh) | 用于存储器的除法运算 | |
US9372665B2 (en) | Method and apparatus for multiplying binary operands | |
US9081060B2 (en) | Buffer testing for reconfigurable instruction cell arrays | |
US20230075069A1 (en) | Memory processing unit architectures and configurations | |
US20040111590A1 (en) | Self-configuring processing element | |
EP2027539B1 (en) | Memory architecture | |
US7486109B2 (en) | Programmable logic device | |
US11189345B2 (en) | Method for implementing logic calculation based on a crossbar array structure of resistive switching device | |
CN105009106A (zh) | 可重配置指令单元阵列的并行配置 | |
CN105531932A (zh) | 可重配置指令单元阵列的串行配置 | |
CN105247505A (zh) | 具有条件通道路由和就地功能性的可重配置指令单元阵列 | |
CN105009454A (zh) | 用于嵌入式可重配置计算的切换结构 | |
US9853644B2 (en) | Multiple-layer configuration storage for runtime reconfigurable systems | |
GB2521029A (en) | Data processing device and method for interleaved storage of data elements | |
US7007059B1 (en) | Fast pipelined adder/subtractor using increment/decrement function with reduced register utilization | |
JP5565456B2 (ja) | 集積回路及びその使用方法 | |
US20090198973A1 (en) | Processing circuit | |
CN112765536A (zh) | 一种可配置的fft架构系统 | |
JPH08212168A (ja) | アレイプロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160427 |
|
WD01 | Invention patent application deemed withdrawn after publication |