CN105703765B - 基于dram的可重构装置 - Google Patents
基于dram的可重构装置 Download PDFInfo
- Publication number
- CN105703765B CN105703765B CN201510944660.XA CN201510944660A CN105703765B CN 105703765 B CN105703765 B CN 105703765B CN 201510944660 A CN201510944660 A CN 201510944660A CN 105703765 B CN105703765 B CN 105703765B
- Authority
- CN
- China
- Prior art keywords
- reconfigurable
- lookup table
- reconfigurable lookup
- memory
- processor
- 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.)
- Active
Links
Images
Classifications
-
- 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
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L25/00—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof
- H01L25/18—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof the devices being of types provided for in two or more different subgroups of the same main group of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L25/00—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof
- H01L25/50—Multistep manufacturing processes of assemblies consisting of devices, each device being of a type provided for in group H01L27/00 or H01L29/00
-
- 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/17724—Structural details of logic blocks
- H03K19/17728—Reconfigurable logic blocks, e.g. lookup tables
-
- 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/17736—Structural details of routing resources
-
- 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/17758—Structural details of configuration resources for speeding up configuration or reconfiguration
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L2924/00—Indexing scheme for arrangements or methods for connecting or disconnecting semiconductor or solid-state bodies as covered by H01L24/00
- H01L2924/0001—Technical content checked by a classifier
- H01L2924/0002—Not covered by any one of groups H01L24/00, H01L24/00 and H01L2224/00
Abstract
一种基于DRAM的可重构逻辑。根据一个一般方面,一种装置可以包括存储阵列,该存储阵列包括多个存储子阵列。子阵列中的至少一个可以被布置为可重构查找表。该可重构查找表可以包括:被配置为存储数据的多个存储单元;局部行译码器,被配置为基于输入信号的集合来激活存储单元的一个行或多个行;局部线选择器,被配置为基于至少一个输入信号来选择存储单元的行的子集。
Description
对相关申请的交叉引用
本申请要求在2014年12月16日提交的题目为“DRAM-BASED RECONFIGURABLELOGIC”、序列号为62/092,819的美国临时专利申请的优先权。通过引用将该早先提交的申请的主题合并于此。
本申请要求在2014年12月16日提交的题目为“HBM WITH DRAM-BASEDRECONFIGURABLE LOGIC ARCHITECTURE”、序列号为62/092,822的美国临时专利申请的优先权。通过引用将该早先提交的申请的主题合并于此。
本申请要求在2014年12月16日提交的题目为“SPACE-MULTIPLEXINGDRAM-BASEDRECONFIGURABLE LOGIC”、序列号为62/092,825的美国临时专利申请的优先权。通过引用将该早先提交的申请的主题合并于此。
技术领域
该说明书涉及计算技术,并且更具体地涉及可重构的处理单元。
背景技术
通常,可编程逻辑设备(PLD)是用于构建可重构的数字电路的电子组件。与通常具有固定功能的逻辑门或逻辑电路不同,传统地PLD在制造的时候具有未定义的功能。往往,在能够在电路中使用PLD之前,必须将其编程,即,重新配置以执行期望的功能。
传统地,PLD可以包括逻辑设备和存储设备的组合。通常,存储器用于存储在编程期间对芯片给出的模式。用于将数据存储在集成电路中的大多数方法已经适用于PLD。这些方法通常包括硅反熔丝、静态随机存取存储器(SRAM)、可擦除可编程序只读存储器(EPROM)、电EPROM(EEPROM)、非易失性RAM,等等。通常,大多数PLD包括通过在芯片内部的硅的修改区域上施加异常水平的电压而被编程的组件。该高电平的电压破坏或设置(取决于技术)电气连接并且改变电子电路的布局。
PLD的最常见类型之一是现场可编程门阵列(FPGA)。FPGA是被设计为在制造之后由顾客或设计者配置的集成电路——因此是“现场可编程的”。通常使用与用于专用集成电路(ASIC)的语言类似的硬件描述语言(HDL)来规定FPGA配置。
FPGA包括可编程逻辑块的阵列和允许块“被用布线连接在一起”的可重构的互连的分级体系。FPGA的逻辑块能够被配置为执行复杂的组合功能,或者仅仅执行简单的逻辑门,像AND、XOR等等。
发明内容
根据一个一般方面,一种装置可以包括存储阵列,该存储阵列包括多个存储子阵列。子阵列中的至少一个可以被布置为可重构查找表。该可重构查找表可以包括:被配置为存储数据的多个存储单元;局部行译码器,被配置为基于输入信号的集合来激活存储单元的一个行或多个行;局部线选择器,被配置为基于至少一个输入信号来选择存储单元的行的子集。
根据另一个一般方面,一种装置可以包括处理器,该处理器包括被配置为执行逻辑功能的固定的逻辑电路。处理器可以被配置为:将数据存储在动态随机存取存储阵列的存储单元中;将被配置为执行逻辑功能的查找表存储在动态随机存取存储阵列的可重构查找表中;以及将逻辑功能的执行卸载到通过动态随机存取存储阵列所包括的可重构查找表。
根据另一个一般方面,一种方法可以包括:由处理器经由第一存储器存取将第一查找表写入到动态随机存取存储阵列的可重构查找表的子阵列。该方法也可以包括:由可重构查找表并且响应于由处理器进行的第二存储器存取来执行第一逻辑操作。该方法可以包括:由处理器经由第三存储器存取将第二查找表写入到动态随机存取存储阵列的可重构查找表的子阵列。该方法可以另外包括:由可重构查找表并且响应于由处理器进行的第四存储器存取来执行第二逻辑操作。
在附图和以下描述中阐述一个或更多个实施方式的详情。根据描述和附图并且根据权利要求,其他特征将是明显的。
本方面涉及一种用于计算技术的系统和/或方法,并且更具体地涉及可重构的处理单元,基本上如至少一个图中所示的和/或与至少一个图结合所描述的,如在权利要求中更完全地阐述的。
附图说明
图1是根据所公开的主题的系统的示例实施例的框图。
图2a是根据所公开的主题的装置的示例实施例的框图。
图2b是根据所公开的主题的装置的示例实施例的框图。
图2c是根据所公开的主题的装置的示例实施例的框图。
图3是根据所公开的主题的装置的示例实施例的框图。
图4是可以包括根据所公开的主题的原理所形成的设备的信息处理系统的示意性框图。
在各个图中的相同附图标记指示相同的要素。
具体实施方式
将参考示出一些示例实施例的附图来在下文中更充分地描述各种示例实施例。然而,可以以许多不同的形式来体现目前所公开的主题,并且目前所公开的主题不应当被理解为限于在本文阐述的示例实施例。确切地讲,提供这些示例实施例使得本公开将是彻底的和完备的,并且将向本领域技术人员全面传达目前所公开的主题的范围。在附图中,可能为了清楚而夸大层和区域的尺寸和相对尺寸。
将理解的是,当要素或层被称为是“在另一个要素或层上”、“连接到”或“耦合到”另一个要素或层时,其能够直接地在另一个要素或层上、连接或耦合到其他要素或层,或者可以存在居间要素或层。相反,当要素被称为“直接在另一个要素或层上”、“直接连接到另一个要素或层”或“直接耦合到另一个要素或层”,则不存在居间要素或层。贯穿本文,类似的数字指代类似要素。如在这里所使用的,术语“和/或”包括一个或多个相关所列项的任何一个或所有组合。
应当理解,尽管术语第一、第二等等在本文可以用于描述各个要素、组件、区域、层和/或部分,但这些要素、组件、区域、层和/或部分不应该受这些术语的限制。这些术语仅用于将一个要素、组件、区域、层或者部分与另一个区域、层或部分相区别。因此,以下讨论的第一要素、组件、区域、层或部分可以被称为第二要素、组件、区域、层或部分,而不会背离目前所公开的主题的教导。
在本文为了便于描述可以使用诸如“在...之下”、“低于”、“低”、“在...上方”、“上”等等的空间相对术语,来描述一个要素或者特征与另一个要素(多个)或者特征(多个)的关系,如图中所图示的。将理解的是,空间相对术语意图包括除图中描绘的定位之外的、在使用或操作中的设备的不同的定位。例如,如果图中的设备被翻过来,则描述为“低于其他要素”或“在其他要素之下”的要素将被定位为“在其他要素或者特征上方”。因此,示例性术语“低于”能够包括在...上方和低于的定位两者。设备可以以另外方式被定位(旋转90度或者处于其他定位)并且在本文使用的空间相对描述符相应地进行解释。
在本文使用的术语仅用于描述特定实施例的目的,并且不意图限制目前所公开的主题。如在这里所使用的,单数形式“一”、“一个”和“该”也意图包括复数形式,除非上下文清楚地另外指出其他。应当进一步理解,当术语“包括”和/或“包括在内”在本说明书中使用时,指定所陈述的特征、整数、步骤、操作、要素和/或组件的存在,但不排除存在或另外有一个或多个其他的特征、整数、步骤、操作、要素、组件和/或其的分组。
在本文参考作为理想化示例实施例(和中间结构)的示意图示的截面图示来描述示例实施例。照此,将预计作为例如生产工艺和/或公差的结果所引起的从图示的形状所发生的变化。因而,示例实施例不应当被理解为受限于在本文所图示的区域的特定形状,而是包括例如由制造引起的形状的偏差。例如,图示为长方形的植入区域典型地将在其边缘具有圆形的或弯曲的特征和/或植入浓度的梯度,而不是具有从植入区域到非植入区域的二元改变。同样地,通过植入所形成的隐埋区可能引起隐埋区和通过其植入发生的表面之间的区域中的一些植入。因而,在图中图示出的区域实际上是示意的并且它们的形状并不意图图示出设备的区域的实际的形状并且并不意图限制目前所公开的主题的范围。
除非另外定义,在本文使用的所有术语(包括技术和科学术语)具有所公开的主题所属于的本领域普通技术人员所共同理解的意义。应当进一步理解,诸如那些在通用词典中定义的术语应该被解释为具有与它们在相关技术的上下文中的意义相一致的意义,并且将不会以理想或过于正式的意义被解释,除非在本文明确地如此定义。
在下文中,将参考附图详细地解释示例实施例。
图1是根据所公开的主题的系统100的示例实施例的框图。在各个实施例中,系统100可以包括处理器104、存储器106和可重构存储逻辑102。在各个实施例中,系统108也可以包括一个或多个其他组件108(例如,网络接口、存储控制器,等等)。
在各个实施例中,系统100可以包括片上系统(SoC)。在另一个实施例中,系统100可以包括一系列分立的或独立的组件。在又一个实施例中,系统100可以包括集成的和分立的组件的组合。在各个实施例中,系统100可以包括计算设备,诸如膝上型计算机、台式机、工作站、个人数字助理、智能电话、平板机以及其他适当的计算机等等,或者虚拟机或其虚拟计算设备。在各个实施例中,可以由用户(未示出)来使用系统100。
在所图示的实施例中,处理器104可以被配置为执行软件、固件或其组合的一个或多个机器可执行指令或片断。在这样的实施例中,处理器104可以包括在处理器104的制造(或此后不久,例如,熔丝等等)期间设置并且在制造之后基本上可能不改变的固定的逻辑电路(例如,AND(与)门、触发器,等等)。
在各个实施例中,存储器106可以包括多个存储单元,每个存储单元被配置为暂时地、永久地、半永久地或其组合来存储一则或多则数据。可以通过处理器104来存取存储器106中的数据。此外,存储器106可以包括易失性存储器、非易失性存储器或其组合。
在所图示的实施例中,系统100可以包括可重构存储逻辑102。可重构存储逻辑102可能类似于存储器106,类似之处在于它们两者都可以包括以子阵列(图示为元件112和114)布置的许多存储单元(未明确地示出)。典型地,存储器(例如,SRAM、动态RAM(DRAM)等等)包括布置到行和列的阵列中的存储单元的阵列。往往,为了使更大的阵列更易管理,可以将阵列划分为存储单元的子阵列(例如,256行乘256列,等等)。传统地,将存储阵列划分为子阵列可以是有利的,这是因为通常一次仅仅对一个子阵列进行存取,因而降低电力和计算复杂性。
在所图示的实施例中,存储阵列(以可重构存储逻辑102所图示出)可以不同于存储器106,不同之处在于可以将子阵列重新配置为充当查找表(LUT)而不是传统的存储子阵列。在这样的实施例中,可以在LUT中实施逻辑功能。例如,LUT可以执行算术逻辑功能,诸如加法器、乘法器等等的算术逻辑功能。应当理解,以上仅仅是一个说明性示例,所公开的主题并不受限于此。在所图示的实施例中,这样的LUT可以被称为处理元件或可重构LUT(RLUT)112。
在这样的实施例中,可以通过仅仅执行存储器写入操作来更改RLUT 112和在其中实施的逻辑功能。这可以允许在系统100的操作期间动态地重新配置或更改逻辑功能。使用传统的写入操作(或类似的)可以允许进行重新编程,而不需要诸如用于编程EEPROM的那些电压之类的异常(即,非操作或高)电压。
在这样的实施例中,可重构存储逻辑102可以包括配置接口116。在各个实施例中,当处理器104(或其他组件)希望改变或更改RLUT 112中存储的逻辑功能时,可以执行写入操作或特殊的写入操作(例如,包括关于涉及RLUT 112的指示符的写入操作,等等)。
在一些实施例中,所有存储器存取或操作可以通过可重构存储逻辑102的输入/输出(I/O)接口118。在这样的实施例中,如果存储器存取针对存储数据以供调取(revival)的子阵列(例如,RAM子阵列114,等等),则I/O接口118可以简单地将读取/写入请求作为存储阵列传统地将进行的那样来处理。然而,在一些实施例中,如果存储器存取针对被采用为RLUT 112(或者,将作为RLUT 112被采用)的子阵列,则I/O接口118可以将存储器存取传递到配置接口116以进行处理。
在又一个实施例中,I/O接口118可以被配置为对RLUT 112进行读取或写入。在这样的实施例中,写入访问可以涉及对RLUT 112进行写入以定义其逻辑功能。在这样的实施例中,配置接口116可以被配置为调整RLUT 112内的信号的路径选择(routing)或作为整体调整可重构存储逻辑102。例如,配置接口116可以被配置为调整多个RLUT 112和/或RAM114之间的信号的路径选择。在这样的实施例中,I/O接口118可以被配置为管理对RLUT 112和RAM 114的数据存取,并且配置接口116可以被配置为管理子阵列112和114的互连和路径选择。应当理解,以上仅仅是一些说明性示例,所公开的主题并不受限于此。在各个实施例中,I/O接口118可以包括配置接口116。
此外,在所图示出的实施例中,每个子阵列可以被用作RLUT 112或用作传统的RAM114存储子阵列。如上所述,传统的RAM 114子阵列可以被配置为存储数据和信息。在这样的实施例中,可以按所希望的在可重构存储逻辑102内动态地调整RLUT 112和RAM子阵列114之间的数量或平衡。在另一个实施例中,可以在制造期间固定RLUT 112和RAM子阵列114的数量。在又一个实施例中,可以在制造期间固定RLUT 112的最大数量,但是RLUT112可以是可配置为RAM子阵列114来操作。应当理解,以上仅仅是一些说明性示例,所公开的主题并不受限于此。
在各个实施例中,处理器104(或其他组件)可能希望将子阵列配置为RLUT 112。在这样的实施例中,处理器104可以对可重构存储逻辑102做出存储器存取。存储器存取可以包括将查找表存储在特定RLUT 112中的写入操作。取决于LUT的尺寸,存储器存取可以包括一系列存储器存取。在一些实施例中,特定存储器存取可以指示对于LUT的输入数量和来自LUT的输出数量。此外,另外的存储器存取可以指示关于RLUT 112的信号路径选择信息。例如,如下所述,多个RLUT 112可以被级联或以另外方式通过路径选择在一起以执行逻辑功能(例如,加法器,等等)。
相反地,处理器104(或其他组件)可能希望将子阵列配置为RAM 114。在这种情况下,存储器存取可以指示配置接口116将RLUT 112重新配置回标准RAM 114。在一些实施例中,预先定义的存储单元可以被配置为存储指示子阵列当前充当RLUT 112还是RAM 114的比特。在各个实施例中,该指示比特可以被包括在子阵列或配置接口116中。应当理解,以上仅仅是一些说明性示例,所公开的主题并不受限于此。
在各个实施例中,可重构存储逻辑102可以包括动态RAM(DRAM)。这可能不同于传统的FPGA或PLD技术,不同之处在于可以通过正常存储器存取操作并且不需要凭借特殊电压(例如,用于灼烧熔丝或者设置晶体管等等)即可将RLUT 112重新编程。
在这样的实施例中,与基于SRAM的FPGA相比,通过在DRAM子阵列的基础上部署RLUT 112,可以实现更高的密度。例如,与SRAM需要六个晶体管(6T)相比,DRAM RLUT 112可以每存储单元或每信息比特仅仅需要一个晶体管和一个电容器(1T1C)。在另一个实施例中,与基于SRAM或闪存的FPGA相比,DRAM RLUT 112可以导致更低的成本。
由于可以通过传统的存储器存取(或其变体)来修改RLUT 112,所以RLUT 112可以是自修改的。例如,一个时钟-循环的RLUT 112计算的输出可以导致将RLUT 112重新配置或更新为执行第二计算功能的存储器存取。在另一个实施例中,可以以修改RLUT 112的行为的方式将RLUT 112的输出反馈为对同一RLUT 112的输入。
此外,在各个实施例中,DRAM RLUT 112和RAM 114的共同混合可以提供优点。例如,对存储在RAM 114中的数据的紧密接近可以加快由RLUT112执行的计算,并且降低电力要求,这是因为不必跨总线移动数据。在一些实施例中,通过在与用于创建处理器104和存储器106的技术类似的DRAM技术的基础上部署RLUT 112,RLUT 112可以存在于与处理器104和/或存储器106相同的管芯或封装内。照此,由DRAM RLUT 112提供的接近数据计算可以更快并且更有效。此外,相同的制造过程可以降低系统100的生产成本。应当理解,以上仅仅是一些说明性示例,所公开的主题并不受限于此。
图2a是根据所公开的主题的装置或RLUT 200的示例实施例的框图。在所图示出的实施例中,RLUT 200可以包括被配置为存储数据的子阵列或多个存储单元202。在所图示出的实施例中,存储单元202可以存储执行逻辑功能(例如,4比特加法器,等等)的查找表。
在各个实施例中,RLUT 200可以接收N个信号作为输入212。在各个实施例中,N个输入信号212可以基于RLUT 200的逻辑功能的操作数被划分为组。例如,如果输入信号212包括8比特,则可以将它们分组为两个4比特操作数。应当理解,以上仅仅是一个说明性示例,所公开的主题并不受限于此。这里,N为自然数。
可以由局部行译码器204对输入212进行译码。在各个实施例中,局部行译码器204可以被配置为基于输入信号212的值来激活存储单元202的一个或多个行214。在各个实施例中,局部行译码器204可以使用输入信号212的值来作为对存储单元202的行的地址。
在所图示的实施例中,存储单元202的每个列可以与被配置为以预先定义的电压输出存储在所选择的行中的值的驱动器206耦合。在各个实施例中,驱动器206可以包括字线驱动器。
在一些实施例中,RLUT 200可以包括被配置为存储RLUT 200的输出信号的一个或多个寄存器207。例如,在一些实施例中,RLUT 200可以是其中通常期望输入和/或输出在时钟信号的边缘之间稳定的流水线体系结构的一部分。在这样的实施例中,当流水线体系结构需要时,可以采用寄存器207来稳定或保持输出信号218的值。在所图示出的实施例中,寄存器207被示出在驱动器206和局部线选择器208之间。在另一个实施例中,寄存器207可以被放置在局部线选择器208之后。应当理解,以上仅仅是一个说明性示例,所公开的主题并不受限于此。
在一些实施例中,RLUT 200可以包括被配置为基于至少一个输入信号217来选择存储单元202的行的子集216的局部线选择器208。在这样的实施例中,局部线选择器208可以生成最终的输出信号218。在所图示出的实施例中,输出信号218可以包括M比特。这里,M为自然数
在一些实施例中,输入信号217的值可以动态地改变。例如,在加法器的情况下,输入信号217可以充当进位输入比特,并且随每个新的加法运算而改变。在另一个实施例中,输入信号217可以是相对一致的值。例如,RLUT200可以具有16比特的字线,但是期望的输出信号218可以仅仅包括5比特。在这样的实施例中,输入信号217可以被配置为仅仅选择16位字中的前5比特。应当理解,以上仅仅是一些说明性示例,所公开的主题并不受限于此。
在各个实施例中,基于DRAM的RLUT 200被限制为最小数量的输入212和最小数量的输出218可能是有好处的。例如,如果存储单元202包括整个子阵列,则行和列的数量可能相对较大。这样,采用利用子阵列中的大多数行(例如,输入信号212)和子阵列的大多数列(例如,输出信号218)中的LUT可能更有效。在这样的实施例中,预先定义的最小数量的输入/输出可能导致子阵列的有效利用率的最低量。
在各个实施例中,利用子阵列可以将RLUT 200借给包括相对大量输入/输出的算术计算功能(例如,加法器,等等)。相反地,尽管可以对于具有小数量的输入/输出的计算功能(例如,随机控制逻辑,等等)采用RLUT 200,但这可能不是RLUT 200的最有效使用。应当理解,以上仅仅是一个说明性示例,所公开的主题并不受限于此。
在一个示例实施例中,RLUT 200可以被配置为包括4比特的最小操作数宽度。在这样的实施例中,两个操作数逻辑功能可以包括8比特的总输入信号212的宽度。同样地,RLUT200可以被配置为包括9比特的最小输出信号218的宽度。在另一个实施例中,RLUT 200可以被配置为包括等于最小操作数宽度(例如,8比特,等等)的两倍最小输出信号218的宽度。应当理解,以上仅仅是一个说明性示例,所公开的主题并不受限于此。
在各个实施例中,RLUT 200可以被配置为使得输入信号212和/或输出信号218的数量可以被动态地更改。例如,由于由RLUT 200执行的逻辑功能从第一功能被动态地更改为第二功能,所以输入信号212的数量、操作数的数量、和/或输出信号218的数量也可以被动态地更改。在这样的实施例中,该更改可以涉及选择全部可能数量的信号212和/或218的子集为激活。
图2b是根据所公开的主题的装置或RLUT 250的示例实施例的框图。在所图示出的实施例中,示出了具有进位输入的简单的4比特加法器。在各个实施例中,可以经由具有最小操作数宽度为4的8至10LUT来实施这一点。应当理解,以上仅仅是一个说明性示例,所公开的主题并不受限于此。
如上所述,RLUT 250可以包括多个存储单元202、局部行译码器204、局部线选择器208和一系列驱动器206。在所图示出的实施例中,RLUT 250可以接收两个操作数251和252。第一操作数(A)251可以包括4比特。同样地,第二操作数(B)252可以包括4比特。存储单元202可以包括或存储本质上将两个操作数相加在一起以形成输出候选253和254的、充当加法器的查找表。
如上所述,局部行译码器可以使用输入信号或操作数251和252来作为地址比特以激活所选择的行214。在所图示出的实施例中,行可以产生两个可能的输出值253和254。在第一情况中,这些值可以等于253、即A+B,并且,在第二种情况中,这些值可以等于254、即A+B+1。在各个实施例中,查找表可以通过将多个候选值存储在每个行中来提高该表的效率。
RLUT 250可以接收第三操作数或输入信号256。在所图示的实施例中,第三操作数256可以起进位输入比特的作用。在所图示出的实施例中,进位输入比特可以使局部线选择器208在第一输出候选253(A+B)和第二输出候选254(A+B+1)之间做出选择。所选择的输出候选可以变为5比特输出信号258。在各个实施例中,5比特输出信号258可以包括4比特和以及1比特进位输出。
如上所述,应当理解,所图示出的仅仅是一个说明性示例,所公开的主题并不受限于此。在各个实施例中,可以经由RLUT来实施其他算术功能(例如,乘法、加密转换、矩阵操作,等等)。在另一个实施例中,可以经由RLUT来实施非算术功能(例如,密钥/值对、词典,等等)。应当理解,以上仅仅是一些说明性示例,所公开的主题并不受限于此。
图2c是根据所公开的主题的装置270的示例实施例的框图。在所图示出的实施例中,示出了具有进位输入的8比特加法器。在各个实施例中,这可以经由在两个RLUT 250和250B之间进行级联或路径选择来实施,其中每个RLUT被配置为4比特加法器。应当理解,以上仅仅是一个说明性示例,所公开的主题并不受限于此。
在所图示的实施例中,可以以与两个RLUT 250和250B分别地执行的任务相比执行更复杂的任务这样的方式将两个RLUT 250和250B耦合。在另一个实施例中,更大数量的RLUT可以如此被路径选择或耦合以执行其他任务或功能。此外,在各个实施例中,耦合的RLUT不必是同质的,而是可以包括被编程以执行各种任务或功能的各种RLUT。而且,RLUT可以被配置为形成处理流水线。应当理解,以上仅仅是一个说明性示例,所公开的主题并不受限于此。
在所图示出的实施例中,对装置270的输入可以包括两个8比特操作数251和252,以及1比特进位输入比特256。装置270可以包括两个RLUT 250和250B,每个被配置为4比特加法器,如图2b中所示。
第一RLUT 250可以被配置为处理8比特操作数251和252的4个最低有效位(LSB)以及进位输入比特256。第二RLUT 250B可以被配置为处理8比特操作数251和252的4个最高有效位(MSB)以及第一RLUT 250的进位输出比特。RLUT 250和250B的输出可以被级联以形成8比特输出或者和258。整体来看,第二RLUT 250B的进位输出比特可以被用作装置250的进位输出比特278。
图3是根据所公开的主题的装置300的示例实施例的框图。在各个实施例中,可以利用基于总线的互连和路径选择方案来实施存储阵列301。在所图示的实施例中,存储阵列301被示出为单独的管芯或装置300。在另一个实施例中,(利用基于总线的路径选择方案的)存储阵列301可以在(例如,作为系统芯片、处理器高速缓存,等等)的共享的管芯上与其他组件集成。
如上所述,存储阵列301可以包括多个子阵列302。在各个实施例中,子阵列302可以被配置为RLUT和/或RAM。如上所述,每个子阵列302可以包括许多输入和输出信号(在图2a中示出,等等)。在所图示出的实施例中,整体上对于存储阵列301来说,装置可以包括输入信号垫306和输出信号垫308。
在所图示出的实施例中,装置300可以包括通信总线304。在各个实施例中,通信总线304可以允许动态地更改子阵列302之间的路径选择方案,以在子阵列302之间对信号重新进行路径选择。例如,如果两个子阵列被配置为充当4比特加法器(在图2b和图2c中示出),则通信总线304可以在两个子阵列302之间有效地对I/O信号进行路径选择以充当单个8比特加法器(在图2c中示出)。当用户或处理器等等决定不再期望这样的8比特加法器时,通信总线304可以有效地对两个子阵列的I/O信号重新进行路径选择以解除8比特加法器。在这样的实施例中,通信总线304可以有效地对I/O信号进行路径选择以支持所期望的任何新的逻辑功能(例如,乘法器和词典,等等)。应当理解,以上仅仅是一个说明性示例,所公开的主题并不受限于此。
在一些实施例中,与点到点路径选择方案相比,通信总线304可以更有效。例如,与传统的点到点路径选择方案相比,基于总线的路径选择方案可以消耗更小的面积、更快,并且消耗较少电力。然而,在各个实施例中,一些存储阵列301可以采用其他路径选择方案(例如,点到点、基于地址的等等)或者两个或更多方案的组合。此外,在一些实施例中,路径选择可以处于的配置接口(在图1中示出)的控制或指导之下。
图4是可以包括根据所公开的主题的原理所形成的半导体设备的信息处理系统400的示意性框图。
参考图4,信息处理系统400可以包括根据所公开的主题的原理所构造的一个或多个设备。在另一个实施例中,信息处理系统400可以采用或执行根据所公开的主题的原理的一种或多种技术。
在各个实施例中,信息处理系统400可以包括计算设备,诸如像膝上型计算机、台式机、工作站、服务器、刀片式服务器、个人数字助理、智能电话、平板机的和其他适当的计算机等等,或者虚拟机或其虚拟计算设备。在各个实施例中,可以由用户(未示出)来使用信息处理系统400。
根据所公开的主题的信息处理系统400可以另外包括中央处理单元(CPU)、逻辑,或者处理器410。在一些实施例中,处理器410可以包括一个或多个功能单元块(FUB)或组合逻辑块(CLB)415。在这样的实施例中,组合逻辑块可以包括各种布尔逻辑运算(例如,NAND、NOR、NOT、XOR,等等),稳定逻辑设备(例如,触发器、锁存器等等),其他逻辑设备,或其组合。可以以简单的或复杂的方式配置这些组合逻辑操作以处理输入信号以便实现期望的结果。应当理解,尽管描述了同步组合逻辑操作的一些说明性示例,但所公开的主题并不如此受限并且可以包括异步操作,或其混合物。在一个实施例中,组合逻辑操作可以包括多个互补金属氧化物半导体(CMOS)晶体管。在各个实施例中,可以将这些CMOS晶体管布置到执行逻辑操作的门中;尽管应当理解的是,其他技术也可以被使用并且在所公开的主题的范围内。
根据所公开的主题的信息处理系统400可以另外包括易失性存储器420(例如,随机存取存储器(RAM),等等)。根据所公开的主题的信息处理系统400可以另外包括非易失性存储器430(例如,硬盘驱动器,光存储器、NAND或闪速存储器,等等)。在一些实施例中,易失性存储器420、非易失性存储器430,或者其组合或一部分可以被称为“存贮媒介”。在各个实施例中,易失性存储器420和/或非易失性存储器430可以被配置为以半永久的形式或基本上永久的形式来存储数据。
在各个实施例中,可以将如上所述的可重构查找表(RLUT)包括在易失性存储器420或者甚至非易失性存储器430中。如上所述,可以包括RLUT作为DRAM或其他存储器的一部分。如上所述,在一些实施例中,可以采用存储器420或430的一部分以存储数据并且可以采用第二部分来作为RLUT。在一些实施例中,也可以认为RLUT是处理器和/或逻辑410的一部分。如上所述,RLUT可以执行一个或多个逻辑功能,并且因此可以执行指令。应当理解,以上仅仅是一些说明性示例,所公开的主题并不受限于此。
在各个实施例中,信息处理系统400可以包括一个或多个网络接口440,其被配置为允许信息处理系统400是通信网络的一部分并且经由通信网络进行通信。Wi-Fi协议的示例可以包括但不限于电气和电子工程师学会(IEEE)802.11g、IEEE 802.11n,等等。蜂窝协议的示例可以包括但不限于:IEEE802.16m(亦称高级无线MAN(城域网))、高级长期演进(LTE))、GSM的增强型数据速率(全球移动通信系统)演进(EDGE)、演进高速分组接入(HSPA+),等等。有线的协议的示例可以包括但不限于IEEE 802.3(亦称以太网)、光纤信道、输电线通信(例如,HomePlug、IEEE 1901,等等),等等。应当理解,以上仅仅是一些说明性示例,所公开的主题并不受限于此。
根据所公开的主题的信息处理系统400可以另外包括用户接口单元450(例如,显示适配器、触觉接口、人类接口设备,等等)。在各个实施例中,该用户接口单元450可以被配置为从用户接收输入和/或向用户提供输出。其他种类的设备也能够用于为与用户的交互作准备;例如,向用户提供的反馈能够是任何形式的感测反馈,例如,视觉反馈、听觉的反馈,或者触觉反馈;并且能够以包括声学、讲话,或者触觉输入的任何形式接收来自用户的输入。
在各个实施例中,信息处理系统400可以包括一个或多个其他设备或硬件组件460(例如,显示器或监视器、键盘、鼠标、照相机、指纹阅读器、视频处理器,等等)。应当理解,以上仅仅是一些说明性示例,所公开的主题并不受限于此。
根据所公开的主题的信息处理系统400可以另外包括一个或多个系统总线405。在这样的实施例中,系统总线405可以被配置为将处理器410、易失性存储器420、非易失性存储器430、网络接口440、用户接口单元450和一个或多个硬件组件460通信地耦合。可以将由处理器410处理的数据或从非易失性存储器430的外面输入的数据存储在非易失性存储器430或易失性存储器420中。
在各个实施例中,信息处理系统400可以包括或执行一个或多个软件组件470。在一些实施例中,软件组件470可以包括操作系统(OS)和/或应用。在一些实施例中,OS可以被配置为向应用提供一个或多个服务并且管理或充当在应用和信息处理系统400的各种硬件组件(例如,处理器410、网络接口440,等等)之间的中间物。在这样的实施例中,信息处理系统400可以包括可以被局部地安装(例如,在非易失性存储器430内,等等)并且被配置为直接地由处理器410来执行并且直接地与OS交互的一个或多个本地应用。在这样的实施例中,本地应用可以包括预先编译的机器可执行代码。在一些实施例中,本地应用可以包括被配置为将源或目标代码转化为然后由处理器410执行的可执行代码的脚本解释器(例如,C壳(csh)、AppleScript、AutoHotkey,等等)或虚拟执行机器(VM)(例如,Java虚拟机、微软公司通用语言运行时,等等)。
可以使用各种封装技术来封装如上所述的半导体设备。例如,可以使用以下中的任何一种技术或者将为本领域技术人员所知的其他技术来封装根据所公开的主题的原理所构造的半导体设备:PoP(Package on Package,层叠封装)、球栅阵列(Ball grid array,BGA)、芯片尺寸封装(Chip scale package,CSP)、塑料带引线芯片载体(Plastic LeadedChip Carrier,PLCC)、塑料双列直插封装(Plastic Dual In Line Package,PDIP)、叠片内裸片封装(Die in Waffle Pack)、晶片内裸片形式(Die in Wafer Form)、板上芯片(ChipOn Board,COB)、陶瓷双列直插封装(Ceramic Dual In-Line Package,CERDIP)、塑料标准四边扁平封装(Metric Quad Flat Pack,MQFP)、薄型四边扁平封装(Thin Quad Flatpack,TQFP)、小外型IC(Small Outline IC,SOIC)、缩小型小外型封装(Shrink Small OutlinePackage,SSOP)、薄型小外型封装(Thin Small Outline,TSOP)、系统级封装(System InPackage,SIP)、多芯片封装(Multi Chip Package,MCP)、晶片级结构封装(Wafer-levelFabricated Package,WFP)、晶片级处理堆叠封装(Wafer-Level Processed StackPackage,WSP)技术。
可以由一个或多个可编程处理器通过对输入数据进行操作并且生成输出来执行计算机程序以执行功能,来执行方法步骤。方法步骤也可以由例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)的专用逻辑电路来执行,并且装置可以被实施为该专用逻辑电路。
在各个实施例中,计算机可读媒介可以包括当被执行时使设备执行方法步骤的至少一部分的指令。在一些实施例中,可以将计算机可读媒介包括在磁性媒介、光学媒介、其他媒介,或其组合(例如,CD-ROM、“硬盘驱动器”、只读存储器、闪盘驱动器,等等)中。在这样的实施例中,计算机可读媒介可以是有形地并且非短暂地体现的制品。
尽管已经参考示例实施例描述了所公开的主题的原理,但对那些本领域技术人员将明显的是,在不背离这些公开的概念的精神和范围的情况下,可以对其作出各种改变和修改。因此,应当理解,上述实施例不进行限制,而仅仅是说明性的。因而,通过所附权利要求和它们的等同物的最宽泛的容许的解释来确定所公开的概念的范围,并且所公开的概念的范围不应当由以上描述所限制或限定。因此,将理解的是,所附权利要求意图覆盖落入实施例的范围的所有此类修改和改变。
Claims (19)
1.一种可重构装置,包括:
存储阵列,包括多个存储子阵列;
其中,存储子阵列中的至少一个被布置为可重构查找表,其中可重构查找表被配置成在数据存储模式和查找表模式之间动态切换,并且其中不管模式如何,采用通信信号的相同集合来写入到可重构查找表中;
其中,可重构查找表包括:
多个存储单元,被配置为存储数据,
局部行译码器,被配置为当在查找表模式时基于输入信号的集合来激活存储单元的一个行或多个行,
局部线选择器,被配置为当在查找表模式时基于至少一个输入信号来选择存储在存储单元的被激活的一个行或多个行中的值的子集,并输出所选择的值作为可重构查找表的输出,其中输出时的值与存储时的值相同。
2.根据权利要求1所述的装置,其中,至少一个输入信号被划分为组,使得每个组与逻辑功能的操作数相关联。
3.根据权利要求1所述的装置,其中,存储阵列包括:
输入/输出(I/O)接口,被配置为执行对存储阵列的读取访问和写入访问;以及
配置接口,被配置为调整可重构查找表内的信号的路径选择。
4.根据权利要求3所述的装置,其中,存储阵列包括多个可重构查找表;并且
其中,配置接口还被配置为调整可重构查找表之间的信号的路径选择。
5.根据权利要求1所述的装置,其中,可重构查找表包括最少多个输入信号和最少多个输出信号;并且
其中,重新配置的查找表被配置为被动态地更改,使得更改激活的输入信号的数量和激活的输出信号的数量。
6.根据权利要求1所述的装置,其中,可重构查找表被配置为执行算术计算功能。
7.根据权利要求1所述的装置,其中,可重构查找表包括存储可重构查找表的输出信号的寄存器。
8.根据权利要求1所述的装置,其中,存储阵列包括两个或更多个可重构查找表;并且
其中,对两个或更多个可重构查找表进行路径选择,使得两个或更多个可重构查找表功能一致以执行单个算术计算功能。
9.根据权利要求1所述的装置,其中,存储阵列包括两个或更多个可重构查找表;
其中,两个或更多个可重构查找表经由基于总线的路径选择方案被电耦合;并且
其中,基于总线的路径选择方案被配置为被动态地更改以在两个或更多个可重构查找表之间对信号重新进行路径选择。
10.根据权利要求1所述的装置,其中,存储阵列包括:
多个处理元件,其中,多个处理元件包括可重构查找表;以及
至少一个随机存取存储子阵列,被配置为存储用于多个处理元件的数据。
11.根据权利要求1所述的装置,其中,可重构查找表包括被配置为存储可重构查找表的数据的动态随机存取存储器(DRAM)单元。
12.根据权利要求1所述的装置,其中,可重构查找表的数据被配置为经由对存储阵列的写入操作被动态地更改。
13.一种可重构装置,包括:
处理器,包括被配置为执行逻辑功能的固定的逻辑电路;以及
其中,处理器被配置为:
将数据存储在动态随机存取存储阵列的存储单元中,
将被配置为执行逻辑功能的查找表存储在动态随机存取存储阵列的可重构查找表中,其中,采用通信信号的相同集合来写入到可重构查找表和存储单元中,以及
将逻辑功能的执行卸载到通过动态随机存取存储阵列所包括的可重构查找表,
其中,逻辑功能的执行的结果包括被存储在可重构查找表中的值的一部分,其中结果的值与所存储的值相同。
14.根据权利要求13所述的装置,其中,处理器被配置为通过执行对可重构查找表的写入访问来卸载逻辑功能的执行,其中,写入访问包括输入与和可重构查找表相关联的逻辑功能相关联的操作数。
15.根据权利要求13所述的装置,其中,处理器被配置为通过执行对可重构查找表的读取访问来调取逻辑功能的执行的结果,其中,读取访问返回与和可重构查找表相关联的逻辑功能相关联的输出值。
16.根据权利要求13所述的装置,其中,处理器被配置为将逻辑功能存储在包括最少多个输入信号和最少多个输出信号的可重构查找表中。
17.根据权利要求13所述的装置,其中,处理器被配置为将两个或更多个可重构查找表存储在动态随机存取存储阵列中;并且
其中,对两个或更多个可重构查找表进行路径选择,使得两个或更多个可重构查找表功能一致以执行单个逻辑功能。
18.根据权利要求13所述的装置,其中,动态随机存取存储阵列包括存储单元的多个子阵列;并且
处理器被配置为将子阵列动态地布置为可重构存储器查找表或存贮存储器。
19.根据权利要求13所述的装置,其中,处理器被配置为通过执行对可重构查找表的写入访问来存储查找表,其中,写入访问包括指示与逻辑功能相关联的输入信号的数量的设置和指示与逻辑功能相关联的输出信号的数量的设置。
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462092819P | 2014-12-16 | 2014-12-16 | |
US201462092822P | 2014-12-16 | 2014-12-16 | |
US201462092825P | 2014-12-16 | 2014-12-16 | |
US62/092,822 | 2014-12-16 | ||
US62/092,825 | 2014-12-16 | ||
US62/092,819 | 2014-12-16 | ||
US14/814,503 US9954533B2 (en) | 2014-12-16 | 2015-07-30 | DRAM-based reconfigurable logic |
US14/814,503 | 2015-07-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105703765A CN105703765A (zh) | 2016-06-22 |
CN105703765B true CN105703765B (zh) | 2020-10-09 |
Family
ID=56112171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510944660.XA Active CN105703765B (zh) | 2014-12-16 | 2015-12-16 | 基于dram的可重构装置 |
Country Status (5)
Country | Link |
---|---|
US (3) | US9954533B2 (zh) |
JP (1) | JP6594762B2 (zh) |
KR (3) | KR102496680B1 (zh) |
CN (1) | CN105703765B (zh) |
TW (1) | TWI649970B (zh) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10013212B2 (en) * | 2015-11-30 | 2018-07-03 | Samsung Electronics Co., Ltd. | System architecture with memory channel DRAM FPGA module |
US10848158B2 (en) | 2016-02-13 | 2020-11-24 | HangZhou HaiCun Information Technology Co., Ltd. | Configurable processor |
US10075168B2 (en) * | 2016-03-05 | 2018-09-11 | XiaMen HaiCun IP Technology LLC | Configurable computing array comprising three-dimensional writable memory |
US20170322906A1 (en) * | 2016-05-04 | 2017-11-09 | Chengdu Haicun Ip Technology Llc | Processor with In-Package Look-Up Table |
JP2017169118A (ja) * | 2016-03-17 | 2017-09-21 | 株式会社東芝 | 集積回路および電子機器 |
CN107346352A (zh) * | 2016-05-04 | 2017-11-14 | 杭州海存信息技术有限公司 | 基于封装内查找表的仿真处理器 |
US9871020B1 (en) * | 2016-07-14 | 2018-01-16 | Globalfoundries Inc. | Through silicon via sharing in a 3D integrated circuit |
US10354716B2 (en) | 2016-09-16 | 2019-07-16 | Aspiring Sky Co. Limited | SRAM based memory structures and methods thereof |
US11361813B2 (en) | 2016-09-16 | 2022-06-14 | Aspiring Sky Co. Limited | Nonvolatile memory structures with DRAM |
US10402342B2 (en) * | 2016-10-20 | 2019-09-03 | Aspiring Sky Co., Limited | Re-configurable non-volatile memory structures and systems |
US10353715B2 (en) | 2016-10-20 | 2019-07-16 | Aspiring Sky Co. Limited | Low power non-volatile SRAM memory systems |
US10180808B2 (en) * | 2016-10-27 | 2019-01-15 | Samsung Electronics Co., Ltd. | Software stack and programming for DPU operations |
US10732866B2 (en) * | 2016-10-27 | 2020-08-04 | Samsung Electronics Co., Ltd. | Scaling out architecture for DRAM-based processing unit (DPU) |
US10242728B2 (en) * | 2016-10-27 | 2019-03-26 | Samsung Electronics Co., Ltd. | DPU architecture |
US9922696B1 (en) * | 2016-10-28 | 2018-03-20 | Samsung Electronics Co., Ltd. | Circuits and micro-architecture for a DRAM-based processing unit |
US10386410B2 (en) * | 2016-12-12 | 2019-08-20 | Samsung Electronics Co., Ltd. | Highly flexible performance counter and system debug module |
US11625523B2 (en) | 2016-12-14 | 2023-04-11 | iCometrue Company Ltd. | Logic drive based on standard commodity FPGA IC chips |
CN108288616B (zh) | 2016-12-14 | 2023-04-07 | 成真股份有限公司 | 芯片封装 |
KR102245385B1 (ko) * | 2017-03-28 | 2021-04-27 | 에스케이하이닉스 주식회사 | 자기 소자를 포함하는 lut, 이를 포함하는 fpga 및 기술 매핑 방법 |
US10447274B2 (en) | 2017-07-11 | 2019-10-15 | iCometrue Company Ltd. | Logic drive based on standard commodity FPGA IC chips using non-volatile memory cells |
US10957679B2 (en) | 2017-08-08 | 2021-03-23 | iCometrue Company Ltd. | Logic drive based on standardized commodity programmable logic semiconductor IC chips |
US10630296B2 (en) | 2017-09-12 | 2020-04-21 | iCometrue Company Ltd. | Logic drive with brain-like elasticity and integrality based on standard commodity FPGA IC chips using non-volatile memory cells |
US11119677B2 (en) | 2017-12-15 | 2021-09-14 | Samsung Electronics Co., Ltd. | HBM based memory lookup engine for deep learning accelerator |
US10628295B2 (en) | 2017-12-26 | 2020-04-21 | Samsung Electronics Co., Ltd. | Computing mechanisms using lookup tables stored on memory |
US10732929B2 (en) * | 2018-01-09 | 2020-08-04 | Samsung Electronics Co., Ltd. | Computing accelerator using a lookup table |
US11398453B2 (en) * | 2018-01-09 | 2022-07-26 | Samsung Electronics Co., Ltd. | HBM silicon photonic TSV architecture for lookup computing AI accelerator |
US10608642B2 (en) * | 2018-02-01 | 2020-03-31 | iCometrue Company Ltd. | Logic drive using standard commodity programmable logic IC chips comprising non-volatile radom access memory cells |
US10623000B2 (en) | 2018-02-14 | 2020-04-14 | iCometrue Company Ltd. | Logic drive using standard commodity programmable logic IC chips |
US10608638B2 (en) * | 2018-05-24 | 2020-03-31 | iCometrue Company Ltd. | Logic drive using standard commodity programmable logic IC chips |
US11309334B2 (en) | 2018-09-11 | 2022-04-19 | iCometrue Company Ltd. | Logic drive using standard commodity programmable logic IC chips comprising non-volatile random access memory cells |
US10892011B2 (en) | 2018-09-11 | 2021-01-12 | iCometrue Company Ltd. | Logic drive using standard commodity programmable logic IC chips comprising non-volatile random access memory cells |
US10937762B2 (en) | 2018-10-04 | 2021-03-02 | iCometrue Company Ltd. | Logic drive based on multichip package using interconnection bridge |
US11616046B2 (en) | 2018-11-02 | 2023-03-28 | iCometrue Company Ltd. | Logic drive based on chip scale package comprising standardized commodity programmable logic IC chip and memory IC chip |
US11211334B2 (en) | 2018-11-18 | 2021-12-28 | iCometrue Company Ltd. | Logic drive based on chip scale package comprising standardized commodity programmable logic IC chip and memory IC chip |
US11227838B2 (en) | 2019-07-02 | 2022-01-18 | iCometrue Company Ltd. | Logic drive based on multichip package comprising standard commodity FPGA IC chip with cooperating or supporting circuits |
US10985154B2 (en) | 2019-07-02 | 2021-04-20 | iCometrue Company Ltd. | Logic drive based on multichip package comprising standard commodity FPGA IC chip with cryptography circuits |
KR102322727B1 (ko) * | 2019-07-29 | 2021-11-05 | 에스케이하이닉스 주식회사 | 데이터 스왑을 위한 메모리 시스템 및 그 동작방법 |
US11887930B2 (en) | 2019-08-05 | 2024-01-30 | iCometrue Company Ltd. | Vertical interconnect elevator based on through silicon vias |
US11637056B2 (en) | 2019-09-20 | 2023-04-25 | iCometrue Company Ltd. | 3D chip package based on through-silicon-via interconnection elevator |
US11600526B2 (en) | 2020-01-22 | 2023-03-07 | iCometrue Company Ltd. | Chip package based on through-silicon-via connector and silicon interconnection bridge |
US11403111B2 (en) * | 2020-07-17 | 2022-08-02 | Micron Technology, Inc. | Reconfigurable processing-in-memory logic using look-up tables |
US11355170B1 (en) | 2020-12-16 | 2022-06-07 | Micron Technology, Inc. | Reconfigurable processing-in-memory logic |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5260610A (en) * | 1991-09-03 | 1993-11-09 | Altera Corporation | Programmable logic element interconnections for programmable logic array integrated circuits |
US5633830A (en) * | 1995-11-08 | 1997-05-27 | Altera Corporation | Random access memory block circuitry for programmable logic array integrated circuit devices |
GB9303084D0 (en) * | 1993-02-16 | 1993-03-31 | Inmos Ltd | Programmable logic circuit |
CA2158467A1 (en) * | 1993-03-17 | 1994-09-29 | Richard D. Freeman | Random access memory (ram) based configurable arrays |
US5689195A (en) * | 1995-05-17 | 1997-11-18 | Altera Corporation | Programmable logic array integrated circuit devices |
GB9604496D0 (en) * | 1996-03-01 | 1996-05-01 | Xilinx Inc | Embedded memory for field programmable gate array |
US6020759A (en) * | 1997-03-21 | 2000-02-01 | Altera Corporation | Programmable logic array device with random access memory configurable as product terms |
JP3106998B2 (ja) * | 1997-04-11 | 2000-11-06 | 日本電気株式会社 | メモリ付加型プログラマブルロジックlsi |
JPH11220382A (ja) * | 1997-11-03 | 1999-08-10 | Altera Corp | 内容アドレス可能埋め込みアレイ・ブロックを組み込んだプログラマブル論理アーキテクチャ |
EP0926600B1 (en) | 1997-12-24 | 2003-06-11 | Texas Instruments Inc. | Computer system with processor and memory hierarchy and its operating method |
US6150838A (en) * | 1999-02-25 | 2000-11-21 | Xilinx, Inc. | FPGA configurable logic block with multi-purpose logic/memory circuit |
US6184712B1 (en) * | 1999-02-25 | 2001-02-06 | Xilinx, Inc. | FPGA configurable logic block with multi-purpose logic/memory circuit |
JP3743487B2 (ja) * | 1999-07-14 | 2006-02-08 | 富士ゼロックス株式会社 | プログラマブル論理回路装置、情報処理システム、プログラマブル論理回路装置への回路の再構成方法、プログラマブル論理回路装置用の回路情報の圧縮方法 |
DE60228083D1 (de) * | 2001-05-16 | 2008-09-18 | Nxp Bv | Rekonfigurierbare logik-vorrichtung |
US6627985B2 (en) * | 2001-12-05 | 2003-09-30 | Arbor Company Llp | Reconfigurable processor module comprising hybrid stacked integrated circuit die elements |
CN1295879C (zh) * | 2002-03-18 | 2007-01-17 | 皇家飞利浦电子股份有限公司 | 在可重构逻辑中宽多路复用器的实现 |
CN100576355C (zh) * | 2003-02-19 | 2009-12-30 | 皇家飞利浦电子股份有限公司 | 具有可编程逻辑单元阵列的电子电路 |
US6934174B2 (en) * | 2003-09-03 | 2005-08-23 | Lsi Logic Corporation | Reconfigurable memory arrays |
US7129749B1 (en) * | 2004-10-27 | 2006-10-31 | Lattice Semiconductor Corporation | Programmable logic device having a configurable DRAM with transparent refresh |
US7468993B2 (en) | 2005-01-14 | 2008-12-23 | International Business Machines Corporation | Dynamic reconfiguration of solid state memory device to replicate and time multiplex data over multiple data interfaces |
JP4191219B2 (ja) * | 2006-10-30 | 2008-12-03 | エルピーダメモリ株式会社 | メモリ回路、半導体装置及びメモリ回路の制御方法 |
JP4215795B2 (ja) * | 2006-11-20 | 2009-01-28 | エルピーダメモリ株式会社 | ルックアップテーブルカスケード回路、ルックアップテーブルカスケードアレイ回路及びそのパイプライン制御方法 |
US20080162856A1 (en) | 2006-12-29 | 2008-07-03 | Motorola, Inc. | Method for dynamic memory allocation on reconfigurable logic |
US8112468B1 (en) * | 2007-03-22 | 2012-02-07 | Tabula, Inc. | Method and apparatus for performing an operation with a plurality of sub-operations in a configurable IC |
GB2455806B (en) * | 2007-12-21 | 2010-04-14 | Wolfson Microelectronics Plc | Filter |
US8254191B2 (en) * | 2008-10-30 | 2012-08-28 | Micron Technology, Inc. | Switched interface stacked-die memory architecture |
CN101847970A (zh) * | 2010-04-29 | 2010-09-29 | 复旦大学 | 一种功能可重构的数字系统 |
US9514259B2 (en) * | 2012-11-20 | 2016-12-06 | Taiyo Yuden Co., Ltd. | Logic configuration method for reconfigurable semiconductor device |
JP5994679B2 (ja) * | 2013-02-26 | 2016-09-21 | 株式会社ソシオネクスト | 処理装置、及び処理装置の制御方法 |
CN105191139B (zh) * | 2013-04-02 | 2018-12-07 | 太阳诱电株式会社 | 可重构逻辑器件 |
CN104575595B (zh) * | 2014-12-12 | 2017-07-07 | 杭州华澜微电子股份有限公司 | 非易失性随机存取的存储装置 |
-
2015
- 2015-07-30 US US14/814,503 patent/US9954533B2/en active Active
- 2015-08-27 US US14/838,348 patent/US9503095B2/en active Active
- 2015-08-27 US US14/838,347 patent/US9577644B2/en active Active
- 2015-12-15 KR KR1020150179353A patent/KR102496680B1/ko active IP Right Grant
- 2015-12-16 TW TW104142212A patent/TWI649970B/zh active
- 2015-12-16 KR KR1020150180209A patent/KR102438730B1/ko active IP Right Grant
- 2015-12-16 JP JP2015245493A patent/JP6594762B2/ja active Active
- 2015-12-16 KR KR1020150180208A patent/KR102440132B1/ko active IP Right Grant
- 2015-12-16 CN CN201510944660.XA patent/CN105703765B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
JP2016123092A (ja) | 2016-07-07 |
TW201633718A (zh) | 2016-09-16 |
US20160173102A1 (en) | 2016-06-16 |
US9954533B2 (en) | 2018-04-24 |
CN105703765A (zh) | 2016-06-22 |
US9577644B2 (en) | 2017-02-21 |
KR20160073335A (ko) | 2016-06-24 |
US20160173101A1 (en) | 2016-06-16 |
KR102438730B1 (ko) | 2022-08-31 |
KR102496680B1 (ko) | 2023-02-06 |
TWI649970B (zh) | 2019-02-01 |
US9503095B2 (en) | 2016-11-22 |
KR102440132B1 (ko) | 2022-09-05 |
KR20160073324A (ko) | 2016-06-24 |
KR20160073334A (ko) | 2016-06-24 |
JP6594762B2 (ja) | 2019-10-23 |
US20160173103A1 (en) | 2016-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105703765B (zh) | 基于dram的可重构装置 | |
KR102380776B1 (ko) | 가속기 컨트롤러 및 그것의 가속기 로직 로딩 방법 | |
US6803787B1 (en) | State machine in a programmable logic device | |
US11321096B2 (en) | Hardware unit for performing matrix multiplication with clock gating | |
US9852247B2 (en) | Area-efficient memory mapping techniques for programmable logic devices | |
US11163530B2 (en) | Programmable-logic-directed multiplier mapping | |
KR102500357B1 (ko) | 메모리 로드 및 산술 로드 유닛 융합 | |
US20200133632A1 (en) | Selecting an ith largest or a pth smallest number from a set of n m-bit numbers | |
US10564963B2 (en) | Bit-masked variable-precision barrel shifter | |
US9853644B2 (en) | Multiple-layer configuration storage for runtime reconfigurable systems | |
US20240028295A1 (en) | Efficient logic blocks architectures for dense mapping of multipliers | |
US11467804B2 (en) | Geometric synthesis | |
GB2576282A (en) | Hardware unit for performing matrix multiplication with clock gating | |
GB2592318A (en) | Selecting an ith largest or a pth smallest number from a set of n m-bit numbers | |
GB2584228A (en) | Hardware unit for performing matrix multiplication with clock gating | |
JP2006345349A (ja) | プログラマブルロジックデバイスを搭載する半導体集積回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |