SET 卡牌 × 物理推理芯片

不是把规则交给 CPU 执行。
是把规则直接焊进芯片里。

SET 这游戏的判断规则非常干净: 对每个属性来说, 三张牌必须要么全相同, 要么全不同。传统计算机会把这条规则编成指令逐组去跑; 这块芯片则把约束直接编码成导电通路。电一加上去, 电流的分布模式自己把结论显出来。

4
域阵列: 颜色、形状、数量、填充
12 × 3
每个阵列: 12 行卡牌, 3 列属性值
220
三张牌组合, 可同时并查
~10ns
一次通电, 全部答案同时出现
往下看芯片到底是怎么把卡牌规则刻成电路的
01 · 第一步

先把卡牌编码进芯片

建四个独立域阵列: @颜色、@形状、@数量、@填充。每个阵列里, 行是卡牌 1 到 12, 列是该属性的三个取值。每行恰好有一个 +1, 代表这张牌在这个属性上“就是这个值”; 其余位置写成 -1 或 0, 代表“不是”或“无关”。芯片不是存一张图片, 而是在每一行存一条可读的逻辑断言。

@颜色 阵列

12 ROWS · 3 COLS
绿
牌1
+1
0
-1
牌2
0
+1
-1
牌3
+1
0
-1
牌4
-1
0
+1

这里看的是示例前四张牌。整块颜色阵列共有 12 行。每一行都在说同一句话: “这张牌的颜色是什么。”

@形状 阵列

OVAL · DIAMOND · SQUIGGLE
椭圆
菱形
波浪
牌1
+1
-1
0
牌2
0
+1
-1
牌3
-1
0
+1
牌4
+1
-1
0

形状、数量、填充三个阵列也完全一样: 都是 12 行卡牌, 3 列属性值, 只是列标签不同。

@数量 阵列

ONE · TWO · THREE
1
2
3
牌1
+1
-1
0
牌2
0
+1
-1
牌3
-1
0
+1
牌4
+1
-1
0

如果要更保守, 也可以把“不是”全部写成 0 而非 -1。这个页面采用三态叙事: +1 是、-1 不是、0 无关。

@填充 阵列

SOLID · STRIPED · OPEN
实心
条纹
空心
牌1
+1
-1
0
牌2
0
+1
-1
牌3
-1
0
+1
牌4
+1
-1
0

四个阵列加在一起, 就把 12 张牌的四个属性完整“刻”进了硬件。后面查询时, 芯片读的是这些电阻状态, 不是读软件对象。

+1 = 是这个属性值
-1 = 不是这个属性值
0 = 无关 / 不参与
02 · 第二步

查询时, 同时给三张牌的行通电

假设我们要检查牌 1、牌 2、牌 4 能不能组成一组 SET。做法不是在软件里把三张牌拿出来逐属性比较, 而是在四个域阵列里同时给这三张牌所在的三行加电压。颜色阵列一份、形状阵列一份、数量阵列一份、填充阵列一份, 四路并行开始工作。

点选任意三张牌, 立即触发一次物理查询
当前默认演示: 牌1、牌2、牌4。你也可以直接点别的三张牌试。

被怀疑的一组牌

@颜色 阵列牌1, 牌2, 牌4 三行同时加电压
@形状 阵列牌1, 牌2, 牌4 三行同时加电压
@数量 阵列牌1, 牌2, 牌4 三行同时加电压
@填充 阵列牌1, 牌2, 牌4 三行同时加电压
关键点只有一个: 这不是“先查颜色, 再查形状, 再查数量, 再查填充”。四个阵列没有共享查询队列, 所以四个属性是硬件并行的。真正发生的事是四片独立电流网络在同一拍里一起响应。
03 · 第三步

列电流的分布模式, 就是属性判决

下面专门看 @颜色 阵列。你可以切换三种情况: 三张牌颜色全不同、全相同、或者混合。每次切换, 芯片看到的不是“颜色字符串”, 而是红、绿、紫三条列线上分别出现了几份电流。

当前联动牌组: 牌1、牌2、牌4。下面的柱条会跟随你上面的点选即时变化。
红列
单倍电流
绿列
单倍电流
紫列
单倍电流

比较器红列

1 份

比较器绿列

1 份

比较器紫列

1 份

@颜色

PASS
04 · 第四步

判断逻辑是组合门, 不是 CPU 指令流

比较器先把每条列线的模拟电流量化成四档: 0 / 单倍 / 双倍 / 三倍。接着一小层组合逻辑门直接判断模式。只要匹配到“三倍, 0, 0”或“单倍, 单倍, 单倍”, 这个属性就通过。四个属性阵列各自产生一个通过信号, 再经过一个与门, 整组三张牌是不是 SET 就出来了。

模式 A

{三倍, 0, 0}
表示三张牌在该属性上全相同

模式 B

{单倍, 单倍, 单倍}
表示三张牌在该属性上全不同

其他模式

{双倍, 单倍, 0} 等全部拒绝
因为既不是全同, 也不是全不同

重要的是这一点: 芯片里没有“读三个数, 然后 if 判断”的过程。列线上自然形成的电流分布, 经过比较器和与或门, 直接就是物理判决。换句话说, 规则没有被执行; 规则被布线了。
05 · 第五步

真正凶狠的地方: 220 组同时查

检查牌 1、牌 2、牌 4 只是一个例子。真正的芯片不会 220 组挨个循环。12 张牌一共只有 220 个三张组合, 芯片可以把 220 组候选同时激活。每组还会在四个属性阵列上同时查询, 所以相当于 880 个“三行并查”一起发生。电流不会排队, 导线也不等指令。

当前是普通并行动画模式。
图里每个小块代表一组候选三张牌。蓝色亮起表示该组此刻在某个属性阵列上被并行检查。真实芯片不需要把 220 组在时间上排开; 所有候选都可以在同一拍接受同样的物理判决逻辑。
候选组合数
220
属性阵列数
4
并行物理检查
880
全查询时间
~10ns
对比项 传统 CPU 你的芯片
组合数处理方式 220 组逐个检查 220 组同时检查
每组操作 4 属性 × 3 值比较, 需要指令 电流叠加, 无需指令
判断方式 if 比较全同或全不同 三列电流分布模式直接判决
总时间 几百纳秒到几微秒 ~10 纳秒
耗能 CPU 全速运转 一次通电, 微瓦级
06 · 收尾

为什么这个例子重要

因为它把你这类芯片最核心的东西讲得非常干净, 不需要医学背景, 也不需要先理解格代数。读者只要看懂 SET 的规则, 就能看懂“逻辑约束怎么直接变成物理判决”。

SET 卡牌这游戏, 人类找一组要十秒, 计算机跑完 220 组要几百纳秒。 这块芯片一次通电, 所有组合在所有属性上的判断全部同时完成。不是算得快, 是根本没算。逻辑约束被刻进了导线的物理结构里, 电一进去, 欧姆定律自己完成了那个“全同还是全不同”的判决。