用于存储和搜索任意范围段的模拟内容可寻址存储器的制作方法

文档序号:32336079发布日期:2022-11-26 00:28阅读:40来源:国知局
用于存储和搜索任意范围段的模拟内容可寻址存储器的制作方法
用于存储和搜索任意范围段的模拟内容可寻址存储器


背景技术:

1.各种应用场景依赖于如例如在特定范围之外搜索任意范围段的能力。例如,这种场 景包括访问控制列表、网络路由以及随机森林/决策树。例如,在因特网协议(ip)地址 映射的情况下,可能需要确定ip地址是否位于不可使用的ip地址空间段之外。
附图说明
2.参照以下附图根据一个或多个不同的实施例详细地描述本公开。附图仅被提供用于 说明性目的,并且仅描绘典型实施例或示例实施例。
3.图1描绘了根据一些实施例的模拟内容可寻址存储器(acam)电路实施方式,该实 施方式编码并实现在模拟值范围之外的搜索。
4.图2a是根据一些实施例的描绘图1的acam电路的非反相分压器电路对上限以上 的输入电压的匹配的电压图。
5.图2b是根据一些实施例的描绘图1的acam电路的反相分压器电路对下限以下的 输入电压的匹配的电压图。
6.图3描绘了根据一些实施例的混合and和or型acam单元,该单元编码并实现 对多个不相交的模拟值范围的搜索。
7.图4描绘了根据一些实施例的替代通栅(pass gate)acam电路实施方式,该实施方 式编码并实现在模拟值范围之外的搜索。
8.图5a是根据一些实施例的描绘图4的acam电路的非反相分压器电路对下限以下 的输入电压的匹配的电压图。
9.图5b是根据一些实施例的描绘图4的acam电路的反相分压器电路对上限以上的 输入电压的匹配的电压图。
10.图6描绘了根据一些实施例的混合and和or型acam单元的通栅实施方式,该 实施方式编码并实现对多个不相交的模拟值范围的搜索。
11.图7描绘了根据一些实施例的使用3端器件的acam电路实施方式,该实施方式编 码并实现在模拟值范围之外的搜索。
12.图8描绘了根据一些实施例的使用3端器件的acam电路实施方式,该实施方式编 码并实现对多个不相交的模拟值范围的搜索。
13.图9描绘了根据一些实施例的or型acam电路实施方式,该实施方式编码并实现 对多个独立输入的任意模拟值范围的搜索。
14.图10描绘了根据一些实施例的将图9的or型acam电路实施方式扩展为实现对与 电路可满足性问题相关的输入变量值的快速测试。
15.图11是根据一些实施例的用于使用acam电路实施方式来在模拟范围之外进行搜索 或搜索多个不相交的模拟范围的说明性方法的流程图。
16.图12是根据一些实施例的可以用于实施各种特征的示例计算部件。
17.附图并非是穷举的,并且不将本公开限制于所公开的精确形式。
具体实施方式
18.所公开技术的示例实施例涉及实现存储和搜索任意模拟值范围段的系统、设备、电 路、方法和非暂态计算机可读介质。具体地,所公开技术的一些实施例涉及一种具有存 储和搜索模拟值范围段的能力的模拟内容可寻址存储器(acam)电路。例如,本文公开 的acam电路实施方式可以用于确定输入值是否落在特定值范围之外、输入值是否落在 多个不相交范围中的任何一个之内、或者相反地是否落在多个范围之外,等等。这样, 根据所公开技术的实施例的acam电路实施方式使得对复杂输入特征的搜索更加灵活和 高效,并且因此产生对传统解决方案的技术改进。本文公开的acam电路实施方式适用 于广泛的应用背景,包括与访问控制列表、网络路由、决策树等相关的应用背景。另外, 在一些实施例中,支持acam电路实施方式的布尔逻辑允许使用acam电路高效地求解 k-sat问题,由此提供对传统解决方案的另一技术改进。
19.一般而言,cam接收输入的搜索词,然后将其与存储在cam中的词进行比较以识 别与搜索词匹配的任何(多个)存储词。如果cam定位到匹配的存储词,则cam可以 返回该存储词在cam中的地址。在典型的cam实施方式中,搜索词包括n位,每个位 作为输入沿对应的搜索线被提供给cam。然后,cam执行并行搜索,这包括将搜索词 与每个存储词进行并行比较。可以基于在对应的匹配线上观察到的电压来识别与搜索词 匹配的任何存储词。例如,每条匹配线可以被预充电到高电压,如果对应的存储词与搜 索词不匹配,则该匹配线然后被放电。任何保持高电压的匹配线都指示匹配。
20.一种特定类型的cam是三元cam,也称为tcam。tcam可以在易失性存储器(如 静态随机存取存储器(sram))中实施,并将三元信息存储在两个二元存储器单元中, 这两个二元存储器单元一起能够表示能够取以下三个值中的任何一个值的三元位:0、1 或“无关”值。在特定位位置包括“无关”值的存储词将在该位位置输出匹配,而无论 搜索词在该位置的值如何。类似地,搜索词的每个位都可以取0、1或“无关”值。在搜 索查询中的特定位位置处指定的“无关”值与tcam中可能存储在该位置的任何值相匹 配。因此,tcam通过允许存储和搜索“无关”值来实现灵活的搜索查询。
21.acam(如共同拥有的美国申请序列号16/274,379(现在是美国专利号10,847,238)、 16/744,136或16/526,455(现在是美国专利号10,896,731)中描述的那些中的任一种)可 以包括以具有行和列的阵列布置的一系列单元。在示例实施例中,acam的相应一个或 多个单元可以用于表示针对每个搜索参数/变量的存储值或存储值范围。现有acam电路 实施方式的示例(如共同拥有的美国申请序列号17/085,805中描述的那种)包括晶体管 的集合和2个忆阻器。忆阻器的相应电导率(conductance)被调整为表示acam单元的 匹配模拟电压范围的电压下限和电压上限。在acam单元处接收施加到数据线的电压, 并且如果数据线电压在由相应忆阻器电导率定义的模拟电压范围内,则输出匹配结果。 以此方式,acam单元能够存储/搜索特定模拟值范围,因为包含在该值范围内的任何值 将对应于落在由acam单元建立的对应模拟电压范围内的数据线电压。进一步地,因为 acam能实现灵活的搜索,因此它也是tcam。
22.上述acam电路实施方式本身映射(如美国申请序列号17/085,805中所述的)树结 构,并以接近恒定时间的操作实施随机森林算法或任何基于树的集成模型。这是通过以 下方式重新制定用于在acam内实施的决策树来实现的:1)将决策树中的每个根到叶路 径表
示为包含一系列节点的节点链,2)将与给定单独特征相关联的多个可评估条件组合 到单个节点中(例如,将评估是否f1》x1的第一节点与评估是否f1《x2的第二节点进行 组合),3)为节点链中未被评估的每个特征添加灵活的“无关”节点,以及4)旋转每 个经修改的节点链表示并且将其映射到acam阵列中的相应行,其中,acam阵列中的 每一列表示给定特征变量的特征向量。对应于acam行的分类结果可以存储在直接连接 的存储器(memory)阵列中。因为acam单元可以存储模拟值和范围,因此可以在单个 单元中实施给定特征节点的多个可评估条件。
23.现有acam电路实施方式(如上所述的那些)提供了高效地存储和搜索两个值之间 的范围(例如,确定输入值是否落在存储的模拟值范围之内)的能力。然而,它们不提 供高地效存储和搜索任意范围段(例如,针对输入特征值f1确定是否f1《x1或者是否f1》 x2,其中x2》x1)的能力。也就是说,使用现有的acam电路实施方式对任意模拟值范 围段进行编码将需要非常大的区域,以至于搜索这种结构将非常低效。具体地,实现在 范围之外的搜索需要在acam内对范围的补集进行编码。因为范围的补集包括落在范围 之外的所有潜在值的全集,所以对该潜在值全集进行编码所需的区域量(例如,acam 阵列大小)是相当大的。此外,使用传统的sram cam实施方式将需要更多的区域。
24.该技术问题通过所公开技术的实施例得到解决,这些实施例包括实现以高度灵活且 高效的方式搜索任意模拟值范围段的acam电路实施方式。例如,根据所公开技术的实 施例的acam电路实施方式能够实施在范围之外的搜索或在单个acam单元内搜索多个 范围段。因此,所公开技术的实施例提供了一种技术方案,该技术方案显著降低了电路 复杂度,并相应地显著提高了搜索任意模拟值范围段的效率。
25.现在参考图1,描绘了根据一些实施例的实现在模拟值范围之外的搜索的acam电 路实施方式。图1中描绘的acam单元100使用如可调电阻器件106、110等非易失性部 件来实施,而不是使用如sram等易失性存储器来实施。在一些实施例中,可调电阻器 件106、110是忆阻器,并且为了便于解释在下文中将如此描述。在图1中描绘的示例实 施方式中,acam单元100包括六个晶体管108、112、114、116、118、120和两个忆阻 器(m1 106和m2 110)。晶体管可以包括n型和p型晶体管(包括n型金属氧化物半 导体(mos)场效应晶体管(mosfet)、p型mosfet等)的各种组合。然而,应当 理解,可以采用其他类型/组合的晶体管/半导体材料。
26.acam单元100可以构成acam电路的单位元件,该电路可以包括以具有行和列的 阵列布置的多个这样的单元。acam单元100包括选择线124(sl
hi
和sl
lo
)、匹配线126 以及数据线122。acam单元100进一步包括包含串联连接的忆阻器106(m1)和晶体 管108的分压器电路102以及包含串联连接的忆阻器110(m2)和晶体管112的分压器 电路104。每个忆阻器106、110连接到选择线124之一(sl
hi
),并且每个晶体管108、 112连接到另一选择线124(sl
lo
)。分压器电路104与分压器电路102的不同之处在于, 前者还包括由串联连接的晶体管114和116形成的反相器。
27.acam单元另外包括串联连接的下拉(pull-down)晶体管118、120。电压g1对应 于晶体管118处的栅极电压,而电压g2对应于晶体管120处的栅极电压。在一些实施例 中,将相应的电压施加到选择线124以激活acam单元100,或更具体地,激活包含acam 单元100的acam行。选择线124提供跨分压器电路102两端的电压降。晶体管108上 的电阻至少部分地
决定了电压g1,该电压进而决定了下拉晶体管118处的栅极电压。沿 着类似的思路,晶体管112上的电阻至少部分地决定了晶体管120处的栅极电压g2。在 一些实施例中,匹配线126被预充电到高电压,并且仅当发生以下情况时才放电:下拉 晶体管118、120各自的栅极电压均大于它们各自的阈值电压以使得晶体管118、120都 转变到低电阻状态(即,导通)并使匹配线126放电。
28.在示例实施例中,acam单元100可以是acam的同一行中的若干个acam单元之 一。acam单元100和同一行中的每个其他acam单元可以连接到匹配线126。类似地, acam中的每个其他行都可以连接到相应的匹配线。acam的每一行可以对应于存储词, 针对该词来评估搜索词以确定是否存在匹配。在示例实施例中,搜索操作可以通过将每 个acam行的相应匹配线预充电到高逻辑电平(例如,高电压)来开始。匹配线(例如, 匹配线126)仅在连接到该匹配线的acam行中的所有acam单元产生与它们的对应输 入的匹配时才保持在高电压(这指示匹配)。也就是说,如果一个搜索输入值与存储在 对应acam单元中的数据不匹配,则该单元将使与其连接的匹配线放电并导致不匹配, 即使同一行中的每个其他单元都产生匹配也如此。
29.在一些实施例中,输入搜索变量被映射到施加在数据线122上的电压幅度v
dl
。数据 线122还可以与acam阵列中跟acam单元100同一列中的每个其他acam单元连接。 更具体地,acam中的每一列单元可以存储与相应输入搜索变量相关的数据,如果需要 更高的位精度,则一些搜索变量对应于多个acam列。数据线122上的电压v
dl
被分成 电压v
dl1
和v
dl2
并分别被馈送到分压器电路102、104。如本公开稍后将更详细描述的, 在一些实施例中,如果数据线122上的输入电压v
dl
对应于落在给定模拟值范围之外(例 如,高于范围的上限、或低于范围的下限)的输入值,则电压g1或g2中的一个将保持 为低,使得对应的下拉晶体管保持处于高电阻状态(截止)。结果是匹配线126保持为 高而不放电,从而产生匹配结果。
30.在一些实施例中,忆阻器106、110的相应程控电导率g
m1
和g
m2
可以被调整以分别 建立非匹配模拟值范围132的电压上限v
ub
和电压下限v
lb
。然后,基于其电路结构, acam单元100编码并实现在范围132之外的搜索。更具体地,由acam单元100强制 的电压上限v
ub
可以是忆阻器106的电导率g
m1
的函数(即,v
ub
=f(g
m1
)),并且电压 下限v
lb
可以是忆阻器110的电导率g
m2
的函数(即,v
lb
=f(g
m2
))。更具体地,在一 些实施例中,v
ub
可以是g
m1
和晶体管108的阈值电压的函数。类似地,v
lb
可以是g
m2
和晶体管112的阈值电压的函数。
31.应当理解,acam单元100的电压上限v
ub
是指充当非匹配模拟值范围132的上限 的电压阈值,使得v
dl
》v
ub
将落在非匹配范围132之外并导致匹配130。类似地,应当 理解,acam单元100的电压下限v
lb
是指充当非匹配模拟值范围132的下限的电压阈 值,使得v
dl
《v
lb
将同样落在非匹配范围132之外并导致匹配128。因此,如果以下布 尔or语句为真(true),则acam单元100产生匹配:v
dl
《v
lb or v
dl
》v
ub

32.现在更详细地参考acam单元100的操作,假设在数据线122上施加v
dl
《v
lb
。在 该示例场景中,特别感兴趣的是分压器电路104的操作。如前所述,v
dl
被分成v
dl1
和 v
dl2
,从而导致晶体管112处的栅极电压相对较低。因此,与忆阻器110相比,晶体管 112的有效电导率较低(即,高电阻状态),这导致跨晶体管112的电压降相对较大。结 果,晶体管112上方的节点132处于高电压。该高电压信号然后被反相以在下拉晶体管 120处产生低栅极电压g2。在该场景下,栅极电压g2不足以克服晶体管120的阈值电 压并且该晶体管保持截止。因此,匹配
线126的放电路径保持关闭,并且匹配线126不 放电,如前所述,这对应于匹配。
33.应当注意,在这种v
dl
小于v
lb
的场景中,无论电压g1是多少,匹配线126都不会 放电。更具体地,低v
dl1
(例如,v
dl
《v
lb
)导致晶体管108处的低栅极电压,这转化 为晶体管108与忆阻器106相比的低有效电导率以及跨晶体管108的大电压降。结果, 晶体管108上方的节点处的电压为高,并且相应地,下拉晶体管118处的栅极电压g1 为高,使得该下拉晶体管导通。然而,这不能使匹配线126放电,因为下拉晶体管120 保持截止。因此,基于分压器电路104的操作,无论分压器电路102发生什么,v
dl
小于 v
lb
都会导致与acam单元100的匹配。以此方式,分压器电路104的操作控制/强制执 行针对范围132的下限v
lb
的范围外搜索。
34.另一方面,现在假设在数据线122上施加v
dl
》v
ub
。在该示例场景中,特别感兴趣 的是分压器电路102的操作。如前所述,v
dl
被分成v
dl1
和v
dl2
,从而导致晶体管108 处的栅极电压相对较高。因此,与忆阻器106相比,晶体管108的有效电导率较高(即, 低电阻状态),这导致跨忆阻器106两端的电压降相对较大。结果,晶体管108上方且 忆阻器106下方的节点处的电压为低,从而在下拉晶体管118处产生对应低的栅极电压 g1。该低栅极电压不足以克服晶体管118的阈值电压,使得该晶体管保持截止。因此, 匹配线126的放电路径保持关闭,并且匹配线126不放电,如前所述,这对应于匹配。
35.应当注意,在这种v
dl
大于v
ub
的场景中,无论电压g2是多少,匹配线126都不会 放电。更具体地,高v
dl2
(例如,v
dl
》v
ub
)导致晶体管112处的高栅极电压,这转化 为晶体管112与忆阻器110相比的高有效电导率以及因此跨忆阻器110两端的大电压降。 结果,晶体管112上方且忆阻器110下方的节点132处的电压为低,该电压在被反相时 导致施加到晶体管120的高栅极电压g2从而使得该晶体管导通。然而,这不能使匹配线126放电,因为下拉晶体管118保持截止。因此,基于分压器电路102的操作,无论分压 器电路104发生什么,v
dl
大于v
ub
都会导致与acam单元100的匹配。以此方式,分 压器电路102的操作控制/强制执行针对范围132的上限v
ub
的范围外搜索。
36.现在假设在数据线122上施加在由v
lb
和v
ub
定义的非匹配模拟范围132之内的v
dl (即,v
lb
《v
dl
《v
ub
)。如前所述,v
dl
被分成v
dl1
和v
dl2
,其中,v
dl1
被供应给晶体 管108,而v
dl2
被供应给晶体管112。在该示例场景中,v
dl1
不足以克服晶体管108的阈 值电压,从而导致晶体管108与忆阻器106相比的低有效电导率(即,高电阻状态), 并导致跨晶体管108的大电压降。因此,在忆阻器106与晶体管108之间的节点处出现 高电压,该高电压对应于下拉晶体管118处的高栅极电压g1。这使得晶体管118导通。
37.另外,v
dl2
足以克服晶体管112的阈值电压,从而导致晶体管112与忆阻器110相 比的高有效电导率(即,低电阻状态),并且导致跨忆阻器110两端的大电压降并导致 节点132处的低电压。节点132处的低电压被反相,从而导致下拉晶体管120处的高栅 极电压g2。这使得晶体管120导通。在下拉晶体管118、120都导通的情况下,匹配线 126放电,并且检测到不匹配。因此,因为位于由v
lb
和v
ub
定义的范围132内的任何输 入电压v
dl
(即,v
lb
《v
dl
《v
ub
)导致不匹配,并且位于范围132之外的任何输入电压 v
dl
(即,v
dl
《v
lb
或v
dl
》v
ub
)导致匹配,所以acam单元100编码并实现在模拟值 范围(即,非匹配范围132)之外的搜索。
38.在一些实施例中,非匹配模拟范围132可以包含v
lb
和v
ub
,这意味着等于v
lb
或等 于v
ub
的输入数据线电压v
dl
落在非匹配范围132内并且导致非匹配。在这样的实施例 中,非匹配范围132将由v
lb
≤v
dl
≤v
ub
给出。在其他实施例中,v
lb
或v
ub
中的一者或 两者可以位于非
匹配范围132之外,使得v
dl
=v
lb
或v
dl
=v
ub
将导致匹配。更一般地, 应当理解,对于本文公开的任何匹配或非匹配模拟范围段,定义范围段的电压下限和/或 电压上限可以位于该范围段之内或之外,这取决于实施方式。
39.在一些实施例中,通过调整忆阻器106、110的相应电导率g
m1
和g
m2
以建立单元 100的匹配电压范围,来在acam单元100中编码“无关”值,该匹配电压范围由电压 下限v
lb
《v
dl,min
和电压上限v
ub
《v
dl,max
限定。以此方式,供应给acam单元100的任 何数据线电压——该电压必须在v
dl,min
与v
dl,max
之间——也必然落在电压下限与电压上 限之间。因此,任何输入搜索值都会导致匹配。除了能够存储无关值之外,acam单元 100还可以被配置为支持接收针对搜索输入值的无关值。例如,可以通过供应例如对应于 v
dl,min
或v
dl,max
的输入电压v
dl
来搜索无关值,该输入电压进而将导致下拉晶体管118、120之一保持处于截止状态,由此防止匹配线126放电。另外,在一些示例实施例中,acam 单元100可以被配置为通过调整忆阻器106、110的相应电导率g
m1
和g
m2
使得f(g
m1
)》 f(g
m2
)来强制与存储词的不匹配。在该示例场景中,无论在单元100处接收到的搜索输 入值是多少,acam单元100都会产生不匹配(由此导致与包括单元100的acam行中 的整个存储词的不匹配)。
40.图2a描绘了电压图200a,该电压图图示了图1中描绘的acam单元100的非反相 分压器电路102对上限以上的输入电压的匹配。如电压图200a中所示,假设忆阻器106 (m1)被调整到建立acam单元100的非匹配模拟范围的上限的给定电导率,高于虚线 指示的阈值的输入电压v
dl
将导致不足以导通下拉晶体管118的电压g1,从而防止匹配 线126放电并导致匹配。
41.图2b描绘了电压图200b,该电压图图示了图1中描绘的acam单元100的反相分 压器电路104对下限以下的输入电压的匹配。如电压图200b中所示,假设忆阻器110(m2) 被调整到建立非匹配模拟范围的下限的给定电导率,低于虚线指示的阈值的输入电压v
dl
将导致不足以导通下拉晶体管120的电压g2,从而防止匹配线126放电并导致匹配。应 当理解,电压图200a和200b分别单独图示了acam单元100的非反相分压器电路102 和反相分压器电路104的功能,但并不共同表示在非匹配范围132之外的搜索。为了表 示在图1中描绘的特定范围132之外的搜索,将修改电压下限和电压上限。
42.图3描绘了混合and和or型acam单元300,其实现对多个不相交的模拟范围的 搜索,或者换句话说,实现在多个不相交的范围之外的搜索。acam单元300包括各种 电路子单元302、304、306。在一些实施例中,子单元302可以具有与acam单元100 (图1)的分压器电路102相同的结构,并且子单元304可以具有与包括反相器的分压器 电路104相同的结构。子单元302、304分别连接到下拉晶体管318、320,这些下拉晶体 管进而串联连接到匹配线308。因此,子单元302和304以及下拉晶体管318、320的组 合在结构上类似于acam单元100。
43.子单元306可以是与子单元302结构相同的附加分压器电路。子单元306连接到下 拉晶体管322,该下拉晶体管进而与下拉晶体管318、320的组合并联地连接到匹配线308。 为了便于解释,子单元302、304、306在下文中将分别称为分压器电路302、304、306。 附加分压器电路306为acam单元300建立新的下限v3,该新的下限使得能够搜索多个 不相交的模拟范围段。具体地,如果输入电压v
dl
大于v1(在这种情况下,v
dl
落在匹 配模拟范围312内),或者如果输入电压v
dl
大于v3且小于v2(在这种情况下,v
dl
落 在匹配模拟范围310内),则acam单元300检测到匹配。
44.acam单元300也可以被认为能实现在多个不相交的非匹配模拟范围314、316之外 的搜索。也就是说,对于落在模拟范围314内的任何输入电压v
dl
(即,v
dl
《v3)或者 对于落在模拟范围316内的任何输入电压v
dl
(即,v2《v
dl
《v1),匹配线308将放电, 并且将检测到非匹配。相反,对于落在非匹配范围314、316之外的任何输入电压v
dl
, 匹配线308不会放电,并且将检测到匹配。更具体地,如果以下布尔表达式为真,则acam 单元300返回匹配,而如果该表达式为假(false),则不返回匹配:(g1为低or g2 为低)and g3为低。该表达式等价于以下表达式:(v
dl
》v
1 or v
dl
《v2)and v
dl
》v3。
45.现在更详细地参考acam单元300的操作,假设向单元300供应小于v3的输入电压 v
dl
。这对应于输入电压v
dl
落在非匹配模拟范围314内的场景。在这种场景中,下拉晶 体管318处的栅极电压g1为高,但下拉晶体管320处的栅极电压g2为低。因此,下拉 晶体管320保持截止,与下拉晶体管318、320相关联的放电路径未完成,并且匹配线308 不放电。然而,下拉晶体管322处的栅极电压g3类似于栅极电压g1也为高(因为分压 器电路306具有与分压器电路302相同的结构),并且因此,下拉晶体管322导通,使 得匹配线308放电,并且检测不到匹配。
46.具体地,在这种场景中,输入电压v
dl
不足以克服分压器电路306的晶体管108的 阈值电压。因此,晶体管108相对于忆阻器106具有低有效电导率(高电阻),从而导 致跨晶体管108的大电压降,并且因此,导致晶体管108上方(例如,在忆阻器106与 晶体管108之间)的高电压。该高电压对应于将下拉晶体管322导通的高栅极电压g3。 应当理解,该场景展示了分压器电路306和下拉晶体管322如何强制电压下限v3从而导 致匹配范围310,该匹配范围并没有一直延伸到能够被单元300存储/搜索的最小电压。 也就是说,在没有分压器电路306的情况下,任何输入电压v
dl
《v2都会导致匹配,类 似于acam单元100。
47.现在假设将大于v3但小于v2的输入电压v
dl
供应给acam单元300。这对应于输入 电压v
dl
落在匹配模拟范围310内的场景。在这种场景中,下拉晶体管320处的栅极电 压g2为低。因此,下拉晶体管320保持截止,与下拉晶体管318、320相关联的放电路 径未完成(无论栅极电压g1是否足以导通下拉晶体管318),并且匹配线308不放电。 进一步地,对于分压器电路306,输入电压v
dl
足以克服晶体管108的阈值电压,这导致 晶体管108相对于忆阻器106具有高有效电导率,并且因此导致忆阻器106与晶体管108 之间的节点处的低电压。该低电压对应于下拉晶体管322处的低栅极电压g3,该低栅极 电压不足以导通晶体管322。结果,下拉晶体管322不使匹配线308放电。因此,在这种 场景中,与串联的下拉晶体管318、320相关联的放电路径保持关闭,原因是晶体管320 保持截止;而与下拉晶体管322相关联的放电路径也保持关闭,原因是晶体管322保持 截止。结果,匹配线308没有通过任一并联放电路径放电,使得acam单元300返回匹 配。
48.现在假设将大于v2但小于v1的输入电压v
dl
供应给acam单元300。这对应于输入 电压v
dl
落在非匹配模拟范围316内的场景。在这种场景中,v
dl
不足以克服分压器电路 302的晶体管108的阈值电压,这导致晶体管108相对于忆阻器106具有低有效电导率, 并且因此导致忆阻器106与晶体管108之间的节点处的高电压。节点处的该高电压对应 于下拉晶体管318处的高栅极电压g1,从而使得晶体管318导通。此外,输入电压v
dl
足以克服分压器电路304的晶体管112的阈值电压,这导致晶体管112相对于忆阻器110 具有高有效电导率,并且因此导致忆阻器110与晶体管112之间的节点132处的低电压。 节点132处的该低电压然后
被反相以获得下拉晶体管320处的高栅极电压g2,从而使得 晶体管320导通。在串联的下拉晶体管318、320都导通的情况下,放电路径完成并且匹 配线308放电,从而导致不匹配。
49.应当理解,在上面刚刚描述的场景中,匹配线308放电,而无论与下拉晶体管322 相关联的并联放电路径发生什么。也就是说,匹配线308基于与串联的下拉晶体管318、 320相关联的放电路径打开而放电,而无论与下拉晶体管322相关联的并联放电路径是否 关闭。例如,输入电压v
dl
可能足以导通分压器电路306的晶体管108,从而导致忆阻器 106与晶体管108之间的节点处的低电压,并且因此导致下拉晶体管322处的低栅极电压 g3。低栅极电压g3使得晶体管322保持截止并且相关联的放电路径保持关闭。然而, 这在这种场景中是无关紧要的,因为只有这些并联放电路径中只有一个需要打开以使匹 配线308放电,并且生成不匹配结果。
50.现在假设将大于v1的输入电压v
dl
供应给acam单元300。这对应于输入电压v
dl
落在匹配模拟范围312内的场景。在这种场景中,v
dl
足以克服分压器电路302的晶体管 108的阈值电压,这导致晶体管108相对于忆阻器106具有高效电导率,并且因此导致跨 忆阻器106两端的大电压降以及在忆阻器106与晶体管108之间的节点处的低电压。节 点处的该低电压对应于下拉晶体管318处的低栅极电压g1,从而使得晶体管318保持截 止。因此,即使与分压器电路304相关联的下拉晶体管320导通,但因为该下拉晶体管 与下拉晶体管318(其保持截止)串联设置,所以放电路径未完成,并且匹配线308不放 电。另外,类似于分压器电路302,输入电压v
dl
足以克服分压器电路306的晶体管108 的阈值电压,这导致晶体管108相对于忆阻器106具有高效电导率,并且因此导致跨忆 阻器106两端的大电压降以及在分压器电路306的忆阻器106与晶体管108之间的节点 处的低电压。该低电压对应于下拉晶体管322处的低栅极电压g3,从而使得晶体管320 保持截止。结果,与下拉晶体管322相关联的放电路径保持关闭,并且匹配线308不放 电。因此,在这种场景中,两个并联放电路径均保持关闭并且匹配线308不放电,从而 导致检测到匹配。
51.应当理解,acam单元300是用于实现对多个模拟值段的搜索的说明性实施方式。 具体地,特定的acam单元300实施方式被配置为搜索两个不相交的模拟范围310、312。 然而,在acam单元300中体现的and和or逻辑的组合可以扩展为覆盖任意数量的 模拟范围段。例如,可以与分压器电路306串联地并且与分压器电路302和304的组合 并联地添加具有反相器104的附加分压器电路(类似于分压器电路304)和相关联的下拉 晶体管。该附加分压器电路和相关联的下拉晶体管可以强制新的上限,该新的上限大于 v1但小于单元300可存储/可搜索的最大电压。更一般地,可以与分压器电路302、304、 306串联地和/或并联地设置一个或多个附加分压器电路(例如,分压器电路102和/或分 压器电路104),以生成能够搜索任何期望的任意模拟范围段组合的acam单元。
52.图4描绘了根据一些实施例的替代通栅(pass gate)acam电路实施方式,该实施方 式编码并实现在模拟值范围之外的搜索。图4中描绘的acam单元400包括搜索线406、 数据线408以及匹配线410。acam单元400进一步包括不包含反相器的分压器电路402 以及包含反相器的分压器电路404。在一些实施例中,分压器电路402具有与分压器电路 102相同的电路结构,并且分压器电路404具有与分压器电路104相同的电路结构。也就 是说,在一些实施例中,分压器电路402包括串联连接的忆阻器106和晶体管108,其中, 忆阻器106连接到选择线406之一,而晶体管108连接到另一选择线406。进一步地,在 一些实施例中,分压
器电路404包括串联连接的忆阻器110和晶体管112,该忆阻器和晶 体管进而连接到由晶体管114和116形成的反相器,并且其中,忆阻器110连接到选择 线406之一,而晶体管112连接到另一选择线406。
53.acam单元400与acam单元100的不同之处至少在于用通栅晶体管412、414替代 了下拉晶体管118、120。类似于图1的acam单元100,可以将相应的电压施加到选择 线406以激活acam单元400,或更具体地,激活包含acam单元400的acam行。选 择线406提供跨分压器电路402两端的电压降。分压器电路402的晶体管108上的电阻 至少部分地决定了电压g1,该电压进而决定了施加到通栅414的电压。沿着类似的思路, 分压器电路404的晶体管112上的电阻至少部分地决定了通栅412处的电压g2。
54.然而,与acam单元100相比之下,匹配线410没有被预充电到高电压。而是,匹 配线410在通栅412、414的一侧(例如,左侧)被充电至vdd并且在通栅412、414的 另一侧被测量。仅当存在通过通栅412、414中的至少一个的开路时,测量才会在通栅412、 414的另一侧获得(pick up)vdd并且检测到匹配。因此,在acam单元400中,通栅 晶体管412、414中只有一个需要处于特定状态(即,导通)以存在开路,以便可在通栅 412、414的另一侧测量到匹配线电压,从而检测到匹配。虽然acam单元100的工作原 理不同(即,对匹配线进行预充电,并且只要被预充电的匹配线没有放电,就检测到匹 配;而不是对匹配线进行充电并基于测量沿匹配线的特定位置处的电压来检测匹配), 但其相似之处在于,下拉晶体管118、120中只有一个需要处于特定状态(即,截止)就 能使匹配线保持为高、并因此检测到匹配。
55.acam单元400与acam单元100之间的另一个区别在于哪个忆阻器建立了非匹配 模拟范围420的哪个界限。具体地,在acam单元400中,分压器电路402的忆阻器106 的电导率g
m1
可以被调整以建立非匹配模拟值范围420的电压下限v
lb
,并且分压器电 路404的忆阻器110的电导率g
m2
可以被调整以建立非匹配范围420的电压上限v
ub
。 更具体地,由acam单元400强制的电压上限v
ub
可以是忆阻器110的电导率g
m2
的函 数(即,v
ub
=f(g
m2
)),并且电压下限v
lb
可以是忆阻器106的电导率g
m1
的函数(即, v
lb
=f(g
m1
))。这与其中忆阻器110的电导率g
m2
设定v
lb
而忆阻器106的电导率g
m1
设定v
ub
的acam单元100颠倒。
56.现在更详细地参考其操作,如果搜索输入值落在非匹配模拟范围420之外,则acam 单元400检测匹配。也就是说,如果搜索输入值——表示为数据线408上的输入电压 v
dl
——满足以下布尔or语句,则单元400检测到匹配:v
dl
《v
lb or v
dl
》v
ub
。另一方 面,如果布尔表达式v
dl
《v
lb or v
dl
》v
ub
为假,则单元400不会检测到匹配,该布尔 表达式为假的情况仅在这两个条件都为假时发生,并且在这种情况下,输入电压v
dl
落 在非匹配范围420内(即,v
lb
《v
dl
《v
ub
)。
57.例如,假设在数据线408上施加映射到输入数据线电压v
dl
《v
lb
的输入搜索值。在 一些实施例中,输入数据线电压v
dl
被分成分别施加到分压器电路402的晶体管108和 分压器电路404的晶体管112的输入电压v
dl1
和v
dl2
。在该示例场景中,特别感兴趣的 是分压器电路402的操作。如先前关于acam单元100所描述的,当输入数据线电压v
dl1
为低时,晶体管108保持截止,并且晶体管108上的有效电导率较低。这导致跨晶体管 108的大电压降以及忆阻器106与晶体管108之间的节点处的高电压g1,这进而转化为 通栅晶体管414处的高电压g1。以此方式,通栅晶体管414导通,为匹配线电压通过通 栅提供了路径,并且检测到匹配。因此,在acam单元400中,分压器电路402控制/ 强制执行针对非匹配范围420的下限v
lb
的范
围外搜索。
58.如果输入数据线电压v
dl
小于v
lb
,则acam单元400检测到匹配,而无论施加到 通栅晶体管412的电压g2如何。具体地,在一些实施例中,当v
dl
小于v
lb
时,v
dl2
不足以克服晶体管112的阈值电压。这导致晶体管112的低有效电导率以及忆阻器110 与晶体管112之间的节点处的高电压。该高电压被反相以获得低g2电压,该低电压被提 供给通栅晶体管412、但不足以导通通栅晶体管412。然而,因为供应给通栅晶体管414 的电压g1足以导通晶体管414并为匹配线电压提供不间断的路径,所以通栅412保持截 止的事实无关紧要。
59.另一方面,现在假设在数据线408上施加v
dl
》v
ub
。在该示例场景中,特别感兴趣 的是分压器电路404的操作。如前所述,v
dl
被分成v
dl1
和v
dl2
,从而导致分压器电路 404的晶体管112处的高栅极电压,这转化为晶体管112与忆阻器110相比的高有效电导 率以及因此跨忆阻器110两端的大电压降。结果,晶体管112上方且忆阻器110下方的 节点处的电压为低,该电压在被反相时导致施加到通栅晶体管412的高电压g2从而使得 该通栅晶体管导通。以此方式,为匹配线电压通过通栅提供了不间断的路径,从而导致 在通栅之后匹配线410上的可测量电压,并因此导致检测到匹配。因此,在acam单元 400中,分压器电路404控制/强制执行针对非匹配范围420的上限v
ub
的范围外搜索。
60.应当注意,在这种v
dl
大于v
ub
的场景中,供应给通栅晶体管414的电压g1是无关 紧要的。具体地,供应给分压器电路402的晶体管108的高输入电压v
dl1
导致晶体管108 的高有效电导率以及跨忆阻器106两端的相对较大的电压降,并且因此导致不足以导通 通栅晶体管414的低电压g1。然而,由于仅需要导通一个通栅即可为匹配线电压提供路 径并检测到匹配,因此大于v
ub
的v
dl
——这导致通栅412导通——导致尽管通栅晶体管 414保持截止也检测到匹配。
61.现在假设在数据线408上施加在由v
lb
和v
ub
定义的非匹配模拟范围420内的v
dl (即,v
lb
《v
dl
《v
ub
)。如前所述,v
dl
被分成v
dl1
和v
dl2
,其中,v
dl1
被供应给分压 器电路402的晶体管108,而v
dl2
被供应给分压器电路404的晶体管112。在该示例场景 中,v
dl1
足以克服晶体管108的阈值电压,从而导致晶体管108与忆阻器106相比的高 有效电导率(即,低电阻状态),并导致跨忆阻器106两端的大电压降。因此,在忆阻 器106与晶体管108之间的节点处出现低电压,该低电压对应于通栅晶体管414处的低 电压g1并且不足以导通晶体管414。
62.另一方面,v
dl2
不足以克服晶体管112的阈值电压,从而导致晶体管112与忆阻器 110相比的低有效电导率(即,高电阻状态),并导致跨晶体管112的大电压降,这导致 忆阻器110与晶体管112之间的高电压。该高电压被反相,从而导致通栅晶体管412处 的低电压g2,该低电压不足以导通晶体管412。因此,对于位于由v
lb
和v
ub
定义的范 围420内的任何输入电压v
dl
(即,v
lb
《v
dl
《v
ub
),通栅晶体管412、414都保持截 止,并且没有为匹配线电压提供跨过通栅的路径。这导致非匹配。
63.图5a描绘了电压图500a,该电压图图示了图4的acam电路400的非反相分压器 电路对下限以下的输入电压的匹配。如电压图500a中所示,假设忆阻器106(m1)被 调整到建立acam单元400的非匹配模拟范围420的下限的给定电导率,低于虚线指示 的阈值的输入电压v
dl
将导致足以导通通栅晶体管414的电压g1,从而为匹配线电压提 供了不间断的路径并且导致匹配。
64.图5b描绘了电压图500b,该电压图图示了图4的acam电路400的反相分压器电 路
对上限以上的输入电压的匹配。如电压图500b中所示,假设忆阻器110(m2)被调 整到建立非匹配模拟范围的上限的给定电导率,高于虚线指示的阈值的输入电压v
dl
将 导致不足以导通通栅晶体管412的电压g2,从而为匹配线电压提供不间断的路径并且导 致匹配。应当理解,电压图500a和500b分别单独图示了acam单元400的非反相分压 器电路102和反相分压器电路104的功能,但并不一定共同表示非匹配范围420之外的 搜索。为了表示在图4中描绘的特定范围420之外的搜索,可以修改电压下限和电压上 限。
65.图6描绘了混合and和or型acam单元600的通栅实施方式,该实施方式编码 并实现对多个不相交的模拟值范围的搜索,或者换句话说,实现在多个不相交的范围之 外的搜索。acam单元600包括各种电路子单元602、604、606。在一些实施例中,子单 元602可以具有与acam单元400(图4)的分压器电路402相同的结构,并且子单元 604可以具有与包括反相器的分压器电路404相同的结构。子单元602、604分别连接到 通栅晶体管608、610,这些通栅晶体管进而连接到匹配线622。通栅晶体管608、610可 以分别是通栅晶体管414、412。因此,子单元602和604以及通栅晶体管608、610的组 合在结构上类似于acam单元400。
66.子单元606可以是具有反相器的附加分压器电路。例如,子单元606可以具有与子 单元604相同的结构。子单元606连接到通栅晶体管612,该通栅晶体管进而连接到匹配 线622。为了便于解释,子单元602、604、606在下文中将分别称为分压器电路602、604、 606。附加分压器电路606为acam单元600建立新的下限v3,该新的下限使得能够搜 索多个不相交的模拟范围段。具体地,如果输入电压v
dl
大于v2(在这种情况下,v
dl
落在匹配模拟范围616内),或者如果输入电压v
dl
大于v3且小于v1(在这种情况下, v
dl
落在匹配模拟范围614内),则acam单元600检测到匹配。acam单元600也可 以被认为能实现在多个不相交的非匹配模拟范围618、620之外的搜索。也就是说,对于 落在模拟范围618内的任何输入电压v
dl
(即,v
dl
《v3)或者对于落在模拟范围620内 的任何输入电压v
dl
(即,v1《v
dl
《v2),都检测不到匹配。
67.由于附加分压器电路606和连接到匹配线622的附加通栅晶体管612的引入,通栅 晶体管612需要导通以便acam单元600返回匹配。也就是说,类似于acam单元400, 通栅晶体管608、610中的至少一个需要导通以便为匹配线电压提供不间断的路径,但与 acam单元400相比,通栅晶体管612也需要导通以提供不间断的电压路径。更具体地, 如果以下布尔表达式为真,则acam单元600返回匹配,而如果该表达式为假,则不返 回匹配:(g1为高or g2为高)and g3为高。该表达式等价于以下表达式: (v
dl
>v
2 or v
dl
<v1)and v
dl
>v3。
68.现在更详细地参考acam单元600的操作,假设向单元600供应小于v3的输入电压 v
dl
。这对应于输入电压v
dl
落在非匹配模拟范围618内的场景。在这种场景中,通栅晶 体管610处的电压g2为低,但通栅晶体管608处的电压g1为高。因此,即使通栅晶体 管602保持截止,通栅晶体管610也被导通。然而,通栅晶体管612处的电压g3为低, 并且因此晶体管612保持截止,结果是,匹配线622上不存在用于电压跨过通栅的不间 断路径。因此,跨通栅未能测量到匹配线电压,并且检测不到匹配。
69.分压器电路606的工作方式类似于分压器电路604。更具体地,在这种场景中,输入 电压v
dl
不足以克服分压器电路606的晶体管112的阈值电压。因此,晶体管112相对 于忆阻器110具有低有效电导率(高电阻),从而导致跨晶体管112的大电压降,并且 因此,导致晶体管112上方(例如,在忆阻器110与晶体管112之间)的高电压。该高 电压被反相,从而导致足以导通通栅晶体管612的低电压g3。应当理解,该场景展示了 分压器电路606和通栅晶体
管612如何强制电压下限v3从而导致匹配范围614,该匹配 范围并没有一直延伸到能够被单元600存储/搜索的最小电压。也就是说,在没有分压器 电路606的情况下,任何输入电压v
dl
《v1都会导致匹配,类似于acam单元400。
70.现在假设将大于v3但小于v1的输入电压v
dl
供应给acam单元600。这对应于输入 电压v
dl
落在匹配模拟范围614内的场景。在这种场景中,输入电压v
dl
足以克服分压 器电路606的晶体管112的阈值电压,这导致晶体管112的高效电导率、跨忆阻器110 两端的大的电压降以及在忆阻器110与晶体管112之间的节点处的低电压。该低电压被 反相,以获得导通通栅晶体管612的高电压g3。另外,输入电压v
dl
不足以克服分压器 电路602的晶体管108的阈值电压,从而导致晶体管108的低有效电导率以及跨晶体管 108的相对较大的电压降。因此,忆阻器106与晶体管108之间的电压g1为高,并且该 高电压g1被施加到通栅晶体管608以将其导通。由于通栅晶体管612以及通栅晶体管 608、610中的至少一个(即,通栅晶体管609)是导通的,因此为匹配线电压提供了不 间断的路径,并且检测到匹配。
71.应当理解,在这种场景中,无论电压g2是多少、也无论通栅晶体管610的状态如何, 都检测到匹配。也就是说,输入电压v
dl
可能不足以克服晶体管112的阈值电压,从而 由于晶体管112的低有效电导率导致忆阻器110与晶体管112之间的节点处的高电压。 该高电压被反相,以获得施加到通栅晶体管610的低电压g2。电压g2不足以导通晶体 管610。然而,这在这种场景中是无关紧要的,因为通栅晶体管612是导通的,并且因此, 通栅晶体管608、610中只有一个需要被导通就能为匹配线电压通过通栅提供不间断的路 径。
72.现在假设将大于v1但小于v2的输入电压v
dl
供应给acam单元600。这对应于输入 电压v
dl
落在非匹配模拟范围620内的场景。在这种场景中,v
dl
不足以克服分压器电路 604的晶体管112的阈值电压,这导致晶体管112相对于忆阻器110具有低有效电导率, 并且因此导致忆阻器110与晶体管112之间的节点处的高电压。该高电压被反相,以产 生通栅晶体管604处的不足以导通晶体管604的低电压g2,从而使得该晶体管保持处于 截止状态。此外,输入电压v
dl
足以克服分压器电路602的晶体管108的阈值电压,这 导致晶体管108相对于忆阻器106具有高有效电导率,并且因此导致忆阻器106与晶体 管108之间的节点处的低电压。该低电压(其作为电压g1被供应给通栅晶体管608)不 足以导通晶体管608。由于通栅晶体管608、610都不导通,因此不存在用于匹配线电压 跨过通栅608、610的路径,并且因此没有检测到匹配。
73.应当理解,在上面刚刚所述的场景中,无论通栅晶体管612的状态如何,都检测不 到匹配。具体地,输入电压v
dl
可能足以导通分压器电路606的晶体管112,从而导致忆 阻器110与晶体管112之间的节点处的低电压,并且然后该低电压被反相以在通栅晶体 管612处产生高电压g3。高电压g3可能足以导通通栅晶体管612,但这在这种场景中 是无关紧要的,因为通栅608或通栅610都没有导通,并且因此,不会存在用于匹配线 电压跨过连接到匹配线622的所有通栅的完整不间断路径。
74.现在假设将大于v2的输入电压v
dl
供应给acam单元600。这对应于输入电压v
dl
落在匹配模拟范围616内的场景。在这种场景中,v
dl
足以克服分压器电路604的晶体管 112的阈值电压,这导致晶体管112相对于忆阻器110具有高效电导率,并且因此导致跨 忆阻器110两端的大的电压降以及在忆阻器110与晶体管112之间的节点处的低电压。 该低电压被反相以在晶体管604处产生高电压g2,从而使得该晶体管导通。电压g3类 似地为高且足以导
通通栅晶体管612。因此,经由通栅612和通栅610为匹配线电压提供 了跨过通栅的完整不间断路径,从而导致检测到匹配。类似于之前描述的其他场景,电 压g1太低而无法将通栅608导通是无关紧要的,因为通栅608、610中只有一个需要导 通就能为匹配线电压提供不间断的路径。
75.应当理解,acam单元600是用于实现对多个模拟值段的搜索的说明性通栅实施方 式。具体地,特定的acam单元600实施方式被配置为搜索两个不相交的模拟范围614、 616。在acam单元600中体现的and和or逻辑的组合可以扩展为覆盖任何任意数量 的模拟范围段。例如,可以向单元600添加没有反相器102的附加分压器电路以及相关 联的通栅晶体管。该附加分压器电路可以强制新的上限,该新的上限大于v2但小于单元 600可存储/可搜索的最大电压。更一般地,可以向单元600添加提供一个或多个附加分 压器电路(例如,分压器电路102和/或分压器电路104)以及相关联的通栅晶体管,以 获得能够搜索任何期望的任意模拟范围段组合的acam单元。
76.图7描绘了根据一些实施例的使用3端器件的acam电路实施方式,该实施方式编 码并实现在模拟值范围之外的搜索。acam单元700包括串联连接到匹配线706的第一3 端器件702和第二3端器件704。器件702可以是例如p型铁电场效应晶体管(fe fet) (一种fet,其包括夹在器件的栅极电极与源漏导电区之间的铁电材料);浮栅mosfet (例如,闪速存储器、离子浮栅等);等等。器件704可以是例如n型fe fet、浮栅 mosfet等。
77.在一些实施例中,p型3端器件702编码非匹配模拟范围710的上限v
ub
,而n型3 端器件704编码非匹配范围710的下限v
lb
。更具体地,在一些实施例中,v
ub
可以是p 型3端器件702的阈值电压,该器件在施加比器件702的阈值电压低的输入数据线电压 v
dl
时导通。类似地,v
lb
可以是n型3端器件704的阈值电压,该器件在施加比器件704 的阈值电压高的输入数据线电压v
dl
时导通。因此,对于施加到器件702、704的任何输 入数据线电压v
dl
(其中,v
dl
》v
ub
),p型器件702不导通,这是因为v
dl
不低于器件 702的阈值电压。结果,放电路径没有完成(即使n型器件704被导通),匹配线706 不放电,并且检测到匹配。相应地,任何输入数据线电压v
dl
》v
ub
都落在匹配模拟范围 712内。
78.进一步地,对于施加到器件702、704的任何输入数据线电压v
dl
(其中,v
dl
《v
lb
), n型器件704不导通,这是因为v
dl
不高于器件704的阈值电压。结果,放电路径没有完 成(即使p型器件702被导通),匹配线706不放电,并且检测到匹配。相应地,任何 输入数据线电压v
dl
》v
lb
都落在匹配模拟范围708内。最后,当输入数据线电压v
dl
(其 中,v
lb
《v
dl
《v
ub
)被施加到器件702、704时,器件702、704都被导通,这是因为 v
dl
既低于p型器件702的阈值电压又高于n型器件704的阈值电压。结果,放电路径完 成,匹配线706放电,并且检测不到匹配。以此方式,acam单元700使得能够在范围 之外(例如,在非匹配模拟范围710之外)进行存储和搜索。
79.图8描绘了根据一些实施例的使用3端器件的acam电路实施方式,该实施方式编 码并实现对多个不相交的模拟值范围的搜索。类似于acam单元700,acam单元800 包括串联连接到匹配线808的第一3端器件802和第二3端器件804。然而,与acam 单元700相比,acam单元800进一步包括与串联的器件802、804并联地连接到匹配线 808的第三3端器件806。在一些实施例中,器件802可以是类似于器件702的p型3端 器件,器件804可以是类似于器件704的n型3端器件,并且器件806可以是类似于器 件802的p型器件。器件802、804、806中的
每一个可以是前面提及的任何示例类型的3 端器件。
80.如前所述,acam单元800实现对多个不相交的模拟范围的搜索。类似于acam单 元700,p型3端器件802编码非匹配模拟范围816的上限v1,而n型3端器件804编码 非匹配范围816的下限v2。v1可以是p型器件802的阈值电压,而v2可以是n型器件 804的阈值电压。p型3端器件806以另一非匹配模拟范围814的上限v3的形式引入另 一界限,该界限可以是器件806的阈值电压。因此,将器件806与串联的器件802、804 并联地连接到匹配线808使得acam单元800能够存储/搜索多个不相交的匹配模拟范围 810、812,或者换句话说,能够在多个不相交的非匹配模拟范围814、816之外进行存储 /搜索。
81.具体地,类似于acam单元700,对于施加到器件802、804、806的任何输入数据 线电压v
dl
(其中v
dl
》v1),p型器件802不导通,这是因为v
dl
不低于器件802的阈 值电压。结果,放电路径没有完成(即使n型器件804被导通),匹配线706没有通过 串联的器件802、804放电。类似地,v
dl
也不低于p型器件806的阈值电压,并且因此, 器件806也不导通,并且匹配线808也不通过器件806放电。相应地,任何输入数据线 电压v
dl
》v1都落在匹配模拟范围812内。
82.进一步地,类似于acam单元700,对于施加到器件802、804的任何输入数据线电 压v
dl
(其中v
dl
《v3《v2),n型器件804不导通,这是因为v
dl
不高于器件804的阈 值电压(v2)。结果,关于串联的器件802、804的放电路径没有完成(即使p型器件802 被导通),并且匹配线808不放电。然而,与acam单元700相比,匹配线808通过器 件806放电。具体地,对于v
dl
《v3,p型器件806被导通,这是因为v
dl
低于器件806 的阈值电压(v3)。结果,匹配线808通过器件806放电,并且检测不到匹配。相应地, 任何输入数据线电压v
dl
《v3都落在非匹配模拟范围814内。
83.现在参考其他示例场景,当输入数据线电压v
dl
(其中,v3《v
dl
《v2)被施加到器 件802、804、806时,p型器件806保持截止,这是因为v
dl
不低于器件806的阈值电压 (v3)。因此,器件806不使匹配线808放电。进一步地,n型器件804也保持截止,因 为v
dl
低于器件804的阈值电压(v2)。因此,尽管器件802因为v
dl
低于p型器件802 的阈值电压v1而被导通,但因为器件804截止,所以与串联的器件802、804相关联的 放电路径保持关闭。因此,当输入数据线电压v
dl
在匹配模拟范围810内时,因为不存 在完整的放电路径,所以匹配线808不放电,并且检测到匹配。
84.最后,当输入数据线电压v
dl
(其中,v2《v
dl
《v1)被施加到器件802、804、806 时,p型器件806导通,这是因为v
dl
大于器件806的阈值电压(v3)。因此,p型器件 806不使匹配线808放电。然而,串联的器件802、804均导通,这是因为v
dl
既低于p 型器件802的阈值电压(v1)又高于n型器件的阈值电压(v2)。结果,对于落在非匹 配模拟范围816内的任何输入数据线电压v
dl
,通过器件802、804的放电路径完成,匹 配线808放电,并且检测不到匹配。
85.图9描绘了根据一些实施例的or型acam电路实施方式,该实施方式编码并实现 对多个独立输入的任意模拟值范围的搜索。图9中描绘的acam单元900包括第一分压 器电路906和第二分压器电路908。第一分压器电路906和第二分压器电路908中的每一 个具有与分压器电路102(图1)类似的电路结构。第一分压器电路906连接到下拉晶体 管910,而第二分压器电路908连接到下拉晶体管912。下拉晶体管910、912均串联连 接到匹配线914。进一步地,到acam单元900的数据线输入不像它们在先前描述的acam 实施方式中那样连在一起。具体地,并非将输入数据线电压拆分然后供应给多个子电路, 而是被提供给分压器电
y or z)。由于图9的acam单元900实施一串or运算,并且如上 所提及的,可以接受三个独立的输入(实际上是任意数量的输入),因此可以形成包含 连接到共享匹配线1002的这种单元的集合1004的行1000,以实施每个单元的or运算 的and。这提供了各种技术优势,包括例如快速测试任何变量值输入是否满足cnf表 达式的能力。进一步地,输入可以扩展到布尔值之外,以包括连续的而不是二进制的输 入,使得acam能够搜索和评估不等式组。这构成了布尔电路可满足性问题的模拟扩展。
91.图11是根据一些实施例的用于使用acam电路实施方式来在模拟范围之外进行搜索 或搜索多个不相交的模拟范围的说明性方法1100的流程图。在一些实施例中,方法1100 可以响应于一个或多个处理单元(例如,图12的(多个)处理器1204或硬件加速器1208) 执行存储在如(图12中的)主存储器1206、只读存储器(rom)1212和/或存储装置 1214等存储设备中的机器/计算机可执行指令而被执行。在一些实施例中,方法1100可 以至少部分地由在硬件加速器1208中体现的硬接线逻辑来执行。方法1100将在下文中 说明性地描述为由硬件加速器(例如,硬件加速器1208)执行,该硬件加速器包括在方 法1100被用于执行搜索功能的acam。
92.在方法1100的框1102处,硬件加速器接收输入搜索值。输入搜索值可以是离散值 (例如,布尔值)或模拟值。在框1104处,硬件加速器将输入搜索值映射到输入数据线 电压v
dl
。在框1106处,硬件加速器将预定电压施加到acam行的匹配线。在一些实施 例中(如正在使用acam单元100、acam单元300和/或acam单元700的那些实施例), 匹配线被预充电,并且基于匹配线是否放电来检测到/检测不到匹配。在其他实施例中(如 正在使用acam单元400、acam单元600和/或acam单元800的那些实施例),在多 个通栅的一侧将电压施加到匹配线,并且基于在通栅的另一侧是否可测量到匹配线电压 来检测到/检测不到匹配。
93.在框1108处,硬件加速器将输入数据线电压v
dl
分成输入电压v
dl1
和v
dl2
。在一些 实施例中,输入数据线电压v
dl
被分成多于两个的输入电压,这具体取决于acam单元 中包括的分压器电路的数量。进一步地,在一些其他实施例中,这些数据线输入可以彼 此独立。
94.在框1110处,硬件加速器将输入电压v
dl1
施加到acam单元的第一分压器电路, 并且将输入电压v
dl2
施加到acam单元的第二分压器电路。在一些实施例中,如果acam 单元中设置有附加分压器电路,则输入数据线电压v
dl
被分成多于两个的输入电压。可 替代地,在一些实施例中,该多个输入电压可以彼此独立。在一些实施例中,第一分压 器电路可以是没有反相器的电路102,而第二分压器电路可以是包括反相器的电路104。 进一步地,第一分压器电路可以驱动连接到匹配线的第一晶体管,而第二分压器电路可 以驱动连接到匹配线的第二晶体管。在一些实施例(例如,acam单元100)中,第一晶 体管和第二晶体管可以是串联连接到匹配线的下拉晶体管。在其他实施例(例如,acam 单元400)中,第一晶体管和第二晶体管可以是通栅晶体管。
95.在框1112处,硬件加速器可以可选地将输入数据线电压v
dl3
施加到第三分压器电路, 该第三分压器电路驱动连接到匹配线的第三晶体管。第三分压器电路可以是例如驱动与 串联的下拉晶体管并联地连接到匹配线的第三下拉晶体管的另一分压器电路102(例如, acam单元300)。可替代地,第三分压器电路可以是例如驱动与第一通栅晶体管和第二 通栅晶体管串联连接的第三通栅晶体管的另一分压器电路104(例如,acam单元600)。 应当理解,acam单元可以包括多于三个的分压器电路以及由这样的附加电路驱动的附 加的对
计算设备执行的可执行软件代码被存储在大容量存储设备中。通过举例的方式,此模块 和其他模块可以包括部件(比如软件部件、面向对象的软件部件、类部件和任务部件)、 进程、函数、属性、过程、子例程、程序代码段、驱动程序、固件、微代码、电路、数 据、数据库、数据结构、表格、数组和变量。
104.通常,如本文所使用的词语“部件”、“引擎”、“系统”、“数据库”、“数据 存储”等可以是指在硬件或固件中实施的逻辑,或者是指以如例如java、c或c++等编 程语言编写的、可能具有入口点和出口点的软件指令集。软件部件可以被编译并链接到 可执行程序,被安装在动态链接库中,或者可以用如例如basic、perl、或python等解 释性编程语言编写。应当理解的是,软件部件可从其他部件或从其本身调用,和/或可以 响应于检测到的事件或中断而被调用。被配置用于在计算设备上执行的软件部件可以被 提供在计算机可读介质中,如致密盘、数字视频盘、闪速存储器驱动器、磁盘、或任何 其他有形介质,或者可以被提供作为数字下载(并且可以原始地以需要在执行之前安装、 解压缩或解密的压缩格式或可安装格式来存储)。这样的软件代码可以部分或全部地存 储在执行计算设备的存储器设备上,以用于由计算设备执行。软件指令可以嵌入在如 eprom等固件中。将进一步理解的是,硬件部件可以包括如门和触发器等连接逻辑单元, 和/或可以包括如可编程门阵列或处理器等可编程单元。
105.计算机系统1200可以使用定制的硬接线逻辑、一个或多个asic或fpga、固件和/ 或程序逻辑来实施本文所描述的技术,该定制的硬接线逻辑、一个或多个asic或fpga、 固件和/或程序逻辑与计算机系统相结合使计算机系统1200成为专用机器或者将其编程 为专用机器。根据一个实施例,本文的技术由计算机系统1200响应于(多个)处理器1204 执行主存储器1206中包含的一个或多个指令的一个或多个序列而执行。这种指令可以从 另一个存储介质(如存储设备1210)读取到主存储器1206中。主存储器1206中包含的 指令序列的执行使(多个)处理器1204执行本文所描述的过程步骤。在替代实施例中, 可以使用硬接线电路来代替软件指令或者与软件指令相结合。
106.如本文所用的术语“非暂态介质”以及类似术语(如机器可读存储介质)是指存储 使机器以特定方式操作的数据和/或指令的任何介质。这种非暂态介质可以包括非易失性 介质和/或易失性介质。非易失性介质包括例如光盘或磁盘,如存储设备1210。易失性介 质包括动态存储器,如主存储器1206。非暂态介质的常见形式例如包括软盘、软磁盘、 硬盘、固态驱动器、磁带或者任何其他磁性数据存储介质、cd-rom、任何其他光学数 据存储介质、具有孔图案的任何物理介质、ram、prom和eprom、闪速eprom、 nvram、任何其他存储器芯片或者盒、以及这些介质的联网版本。
107.非暂态介质不同于传输介质但可以与传输介质结合使用。传输介质参与非暂态介质 之间的信息传递。例如,传输介质包括同轴电缆、铜线和光纤,包括包含总线1202的导 线。传输介质还可以采用声波或光波的形式,如在无线电波和红外数据通信期间生成的 声波或光波。
108.计算机系统1200还包括耦接到总线1202的通信接口1222。通信接口1222提供耦接 到一个或多个网络链路的双向数据通信,该一个或多个网络链路连接到一个或多个本地 网络。例如,通信接口1222可以是综合业务数字网(isdn)卡、电缆调制解调器、卫 星调制解调器或调制解调器,以向对应类型的电话线提供数据通信连接。作为另一个示 例,通信接
口1222可以是局域网(lan)卡,以提供到兼容lan(或与wan通信的 wan部件)的数据通信连接。还可以实施无线链路。在任何这种实施方式中,通信接口 1222发送和接收携带表示各种类型信息的数字数据流的电信号、电磁信号或光信号。
109.网络链路通常通过一个或多个网络向其他数据设备提供数据通信。例如,网络链路 可以提供通过本地网络到主计算机或到由因特网服务提供商(isp)操作的数据设备的连 接。isp进而通过现在通常称为“因特网”的全球包数据通信网络来提供数据通信服务。 本地网络和因特网两者都使用携带数字数据流的电信号、电磁信号或光学信号。通过各 种网络的信号以及网络链路上和通过通信接口1222的信号(其将数字数据携带到计算机 系统1200和从该计算机系统携带数字数据)是传输介质的示例形式。
110.计算机系统1200可以通过(多个)网络、网络链路和通信接口1222发送消息和接 收数据,包括程序代码。在因特网示例中,服务器可以通过因特网、isp、本地网络和通 信接口1222来传输应用程序的请求代码。
111.所接收的代码可以在被接收到时由处理器1204执行,和/或存储在存储设备1210、 或其他非易失性存储器中以供稍后执行。
112.在前面章节中所描述的每个过程、方法、和算法均可以在由包括计算机硬件的一个 或多个计算机系统或计算机处理器所执行的代码部件中实施并由这些代码部件全部或部 分地进行自动化。该一个或多个计算机系统或计算机处理器还可以操作以支持“云计算
”ꢀ
环境中相关操作的进行、或者操作作为“软件即服务”(saas)。这些过程和算法可以 在专用电路中部分地或全部地实施。上文所描述的各种特征和过程可以彼此独立地使用, 或者可以以各种方式进行组合。不同的组合和子组合旨在落入本公开的范围内,并且在 一些实施方式中可以省略某些方法框或过程框。本文描述的方法和过程也不限于任何特 定的顺序,并且与这些方法和过程相关的框或状态可以以适当的其他顺序进行、或者可 以并行进行、或者以某种其他方式进行。可以向所公开的示例实施例中添加框或状态或 从中移除框或状态。可以将某些操作或过程的进行分发到多个计算机系统或计算机处理 器之中,使其不是仅驻留在单个机器内,而是跨多个机器部署。
113.如本文所使用的,电路可以利用任何形式的硬件、软件或其组合来实施。例如,可 以实施一个或多个处理器、控制器、asic、pla、pal、cpld、fpga、逻辑部件、软 件例程或其他机制以构成电路。在实施方式中,本文描述的各种电路可以被实施为分立 电路,或者所描述的功能和特征可以在一个或多个电路之中部分地或全部地共享。即使 可以分别地描述或主张各种特征或功能元件作为单独的电路,这些特征和功能也可以在 一个或多个公共电路之间共享,并且这种描述不应要求或暗示需要单独的电路来实施这 样的特征或功能。在使用软件来全部或部分地实施电路的情况下,这样的软件可以被实 施以与能够执行关于该软件所描述的功能的计算系统或处理系统(如计算机系统1200) 一起操作。
114.如本文所使用的,术语“或”可以以包括性或排他性的意义来解释。而且,不应将 对单数形式的资源、操作或结构的描述理解为排除复数。除非另外具体规定,或在如所 使用的环境内以其他方式被理解,否则条件语言(除其他外,比如“可(can)”、“可 以(could)”、“可能(might)”、或“会(may)”)一般地旨在传达某些实施例包 括(而其他实施例不包括)某些特征、元素和/或步骤。
115.除非另外明确说明,否则本文档中使用的术语和短语及其变体应被解释为开放式
的 而不是限制性的。形容词(如“常规(conventional)”、“传统(traditional)”、“正 常(normal)”、“标准(standard)”、“已知(known)”和类似含义的术语)不应 被解释为将所描述的项限制为给定时间段或在给定时间可用的项,而是应该被理解为包 含可能现在或将来的任何时候都可用或已知的常规、传统、正常或标准技术。在某些情 况下,宽泛单词和短语(如“一个或多个”、“至少”、“但不限于”或其他类似的短 语)的存在不应被理解为是指在这类宽泛短语可能不存在的情况下意图或要求更窄的情 况。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1