有人给我留言,问了一个特别较真的问题:CPU 型号里那一串 i3、i5、i7、i9,为什么清一色全是奇数,i4、i6、i8 到底去哪儿了?这问题乍一听像是抬杠,但你真去翻型号库、翻命名规则文档,会发现它其实是两个问题叠在一起:一个是“i 这个字母代表什么”,另一个是“这套数字是按什么规则编排的”。前者几乎没有权威答案,后者却有一套相当清晰的工程逻辑。我装机、写配置单、帮人挑本子这么些年,被问到型号的次数比被问到散热的还多,索性把这件事从头捋一遍。看完你会明白,这不是厂商偏爱奇数,也不是什么风水讲究,而是一套“留白”的产品分层方法。不管你是刚入门的装机新手,还是天天给人做选型的老手,这套思路都能直接迁移到你自己的产品命名、版本编号、套餐定价上去。
1. 先别急着找答案,“i”这个字母本身就没人给过正式定义
1.1 一个流传了十几年的“官方沉默”
很多人下意识觉得,i3/i5/i7 里的 i 一定是某个英文单词的缩写,最流行的说法是 intelligence(智能),也有人说是厂商名字的首字母,还有一种说法是“随手挑了一个视觉上好看的字母”。这三种说法在中文互联网上流传了十几年,但你去翻厂商的官方技术文档、白皮书、发布会通稿,会发现一个很有意思的现象:他们只讲“i 系列”,从不解释“i”是什么。
这不是疏忽。产品命名在绝大多数时候不追求语义精确,追求的是识别度、发音顺口、商标可注册、跨语言不出歧义。你想想,“智能处理器”这种全称印在包装盒上会是什么效果,又长又难念,翻译成几十种语言还得各注册一遍商标。而一个孤立的小写字母 i,短、好写、好念、在几乎任何语言里都不会产生负面联想,还能在视觉设计上做成一个漂亮的图标。
我个人的判断是,这个字母更像是“品牌标记”而不是“技术缩写”。这一点很关键,因为它直接决定了后面所有数字的性质:既然字母是营销层的符号,那么紧跟其后的数字,大概率也是营销层的分层工具,而不是技术参数。
1.2 把“命名层”和“参数层”分开看,问题就清楚一半
绝大多数人对 CPU 型号的困惑,根源都在于把两层东西混在一起了。一个完整型号其实分成两截:前半截是命名层,负责告诉你“这是哪个档位”;后半截是参数层,负责告诉你“这是第几代、同代里排第几、有什么特殊功能”。
举个例子,i5-12400 这个型号:
i5是命名层,它回答的是“这东西在整条产品线里处于什么位置”;12是代数,回答“用的是第几代架构”;400是同代内的细分编号,回答“同一代同一档里,它排第几”;- 没有后缀,说明是标准版。
你之所以觉得“没有偶数”是个怪事,是因为你默认这一整串都是参数。可 i5 里的 5 根本不是参数,它是标签。标签的编排逻辑和参数的编排逻辑,完全是两回事。参数讲究连续、精确、可比较;标签讲究区分度、可扩展、好记。
我见过太多人拿着 i7-10700 和 i5-13400 比大小,纠结“7 比 5 大,为什么 5 反而强”。这就是被命名层误导了。跨代比较必须先看代数,再看档位,最后才看细分编号。这个顺序搞反,配出来的机器要么性能过剩,要么瓶颈明显。
所以回到最初的问题:i4 为什么不存在?因为i4这个位置压根不属于“参数序列”,它是“档位序列”里一个被刻意空出来的格子。空着不代表不存在,空着本身就是设计。
2. 3、5、7、9 不是审美偏好,是给未来留的“插槽”
2.1 从“最高档位先出生”这件事说起
想搞清楚这套数字为什么这么排,最有说服力的证据是时间线。i 系列刚登场的那一年,第一个亮相的不是入门款,而是最高档位。中档位是第二年才补齐的,入门档位又晚了大半年。至于现在的顶级档位 i9,那是将近十年之后才加上去的。
这个出生顺序非常关键。它说明厂商一开始就没打算做“1、2、3、4”这种线性递增,而是先在最上面立了一个锚点,然后往下铺。先立锚点的好处是:锚点一旦被市场接受,往下加档位就是在“降价扩圈”,用户心理上会觉得“原来那个高端的现在便宜了”,而不是“这牌子越做越低端”。
反过来,如果当年定的是 1、2、3、4 这种连续编号,后面想加旗舰会极其难受。加个 5?用户会问“5 比 4 强多少,只强一档吗”。加个 10?中间 5 到 9 全空着,看着像断代。改整套命名?那等于把刚攒起来的品牌资产全部清零。
我做过一个小产品线的定价分层,当时吃过一次亏:四个套餐定成 99、129、159、189,后来想加一个更高端的,只能定 219,用户觉得“就多了 30 块,能高端到哪去”。如果当初定成 99、149、199、299,中间和上面都有空间,加档位会从容得多。数字之间的间距,本质上是在买“未来的自由度”。
2.2 差值为 2 的阶梯,好在哪
把档位定成 3、5、7、9,步长固定为 2,这个选择至少带来四个好处,我按重要性排一下。
第一是扩展余量。3 和 5 之间空着 4,5 和 7 之间空着 6,7 和 9 之间空着 8。这些空位现在不用,但它们随时可以被启用。启用一个空位的成本,远低于在已有编号末尾追加一个新数字。前者只是“填坑”,后者要重新教育市场。
第二是区分度。数字间隔越大,视觉和听觉上的辨识度越高。你念“三五七九”,节奏感很强;念“一二三四”,就容易糊在一起。在货架、电商列表页、客服对话这种信息密度极高的场景里,一眼能分清比什么都重要。我自己整理配置单时,i5 和 i7 从来不会看错,但如果编号是 5 和 6,密集排列下真的会扫错行。
第三是抗“序号误解”。如果编号是 1、2、3、4,绝大多数用户的第一反应是“这是第几代”或者“这是第几款产品”。而 3、5、7、9 这种跳跃感,天然在暗示“这是一组等级,不是一串序号”。这个心理暗示极其重要,它决定了用户会不会拿“i4 比 i3 新”这种逻辑去推理。
第四是产品线隔离。空出来的数字,可以留给未来的衍生系列。低功耗版、商用版、嵌入式版,都可以借用空位而不与主线打架。填满了就没有退路,不填随时可以加。
2.3 如果当年真的用了 1、2、3、4,会怎样
我们做个推演。假设当年定的是“1、2、3、4”四档。
第一个坎:数字 2 已经被占了。上一代主力产品线的名字里正好带了个 2,而且那一代口碑极好,是很多人心里的“神U”。你让新系列的第二档也叫 2,用户会直接懵:这俩是一个东西吗?这是升级还是降级?这种认知冲突,营销部门是绝对不愿意看到的。
第二个坎:起点是 1,太像“第一代”。数字 1 在所有电子产品里都有强烈的“初代”暗示。一个定位中端的芯片叫“1”,用户会觉得这是试验品。而叫“3”,听起来就像是“已经迭代过两轮了”,成熟度暗示完全不同。
第三个坎:往上加不动。四档占满之后,想加旗舰只能叫 5。但 5 距离 4 只有一步,用户感受不到“跨代式”的提升。而现实中从 7 跳到 9,中间隔着一个完整的 8,心理落差就出来了。
第四个坎:往下也加不动。想做个超低端走量款,总不能叫 0 吧。而用 3 起步,理论上还能往下做 1 或者 2(虽然实际没做,但空间在)。
所以 3、5、7、9 不是拍脑袋选的,它是在“起点不能太低、步长不能太小、上面要留位、下面也要留位”这四条约束下,最省事的解。你把它当成一道约束优化题,答案几乎是唯一的。
3. 型号后半截全是偶数,只是你没注意
3.1 拆开一个完整型号,四个字段各管一摊
前面说过型号分命名层和参数层,这里把字段拆细一点。以i5-12400KF为例,四个字段的职责完全不同。
| 字段 | 示例 | 回答什么问题 | 奇偶情况 |
|---|---|---|---|
| 档位 | i5 | 在整个产品线里属于哪一层 | 固定为 3/5/7/9 |
| 代数 | 12 | 用的是第几代架构 | 逐年递增,有奇有偶 |
| 细分编号 | 400 | 同代同档内排第几 | 有奇有偶,常见整百 |
| 后缀 | KF | 有什么特殊属性 | 字母,不涉及奇偶 |
你看,除了第一个字段,后面三个字段里偶数遍地都是。第 10 代、第 12 代、第 14 代,全是偶数;细分编号 400、600、800,也全是偶数。所谓“CPU 的 i 没有偶数”,严格来讲只说对了一个字段。
我经常跟人打这个比方:这就像小区的楼栋号。1 号楼、3 号楼、5 号楼是“档位”,每栋楼里的 101、102、103 是“细分编号”。你问“为什么没有 2 号楼”,答案是规划时就留了绿地;但你不会因此觉得“这个小区没有偶数门牌”。
3.2 同代内比大小,有一套固定读法
很多人配机器时最常犯的错,是跨代比数字。这里给一套我自己的读法,按优先级从高到低:
- 先看档位。i7 整体强于 i5,这是产品定位决定的,同代内基本不会例外。
- 再看代数。同为 i5,第 13 代强于第 12 代,即使细分编号一样。
- 最后看细分编号。同为 i5、同为第 12 代,600 强于 400。
- 后缀单独判断。带 K 的可超频,带 F 的无核显,这两个后缀会显著改变适用场景。
举个具体的:i5-12600K和i7-12700怎么选?前者档位低但有 K,后者档位高但锁频。如果你不打算折腾超频,后者更省心;如果你要压榨极限性能并且主板支持,前者的可玩性更高。这里没有绝对答案,取决于你整机的其他件配到什么程度。
还有一个坑:同代不同档位的细分编号会重叠。i5 可能有 600,i7 也可能有 600,但这两者完全不是一个东西。看型号时必须把档位和编号连起来读,不能只扫数字。
3.3 后缀字母才是真正容易踩坑的地方
比起奇偶这种趣味问题,后缀才是会让人真金白银损失的部分。我把常见的整理成表:
| 后缀 | 含义 | 实际影响 |
|---|---|---|
| 无后缀 | 标准版 | 锁频,带核显,最通用 |
| K | 可超频 | 需要搭配支持超频的芯片组,散热要跟上 |
| F | 无核显 | 必须配独立显卡,否则点不亮 |
| KF | 可超频且无核显 | 两个条件同时满足 |
| T | 低功耗版 | 频率低、发热小,适合小机箱,性能有妥协 |
| H / HX | 移动端高性能 | 笔记本专用,功耗释放看厂商调校 |
| U | 移动端低功耗 | 轻薄本常见,长时间负载会掉频 |
这里说两个我实际踩过的坑。
第一个是 F 后缀。早些年帮人配一台办公机,图便宜选了带 F 的型号,主板、内存、电源都装好了,开机黑屏,折腾了两个小时才想起来这玩意儿没核显。办公机又不需要独显,最后只能再加一张亮机卡,预算直接超了。
第二个是 T 后缀。小机箱用户很容易被“低功耗”三个字吸引,觉得发热小、安静。但 T 系列的频率压得很低,日常办公没问题,一旦跑稍微重一点的负载,性能落差会非常明显。如果你的机箱只是稍微紧凑一点,不是极限体积,标准版降压跑往往比 T 版更划算。
提示:后缀不是“附加功能”,而是“功能删减或改变”。看到后缀先问一句“它去掉了什么”,比问“它多了什么”更有用。
4. “避开 4 不吉利”这个说法,经不起型号库的检验
4.1 传言的来源与逻辑漏洞
关于 i4 缺席,中文互联网上流传最广的解释是谐音忌讳。这个说法传播力极强,因为它符合直觉,而且听起来很有“内幕感”。但只要你愿意动手查一下,就会发现它站不住。
漏洞一:这套命名从诞生起就是全球化产品,定名的时间点在十几年前,主要考量的是全球主要市场的接受度,而不是单一语言区的谐音。真要照顾谐音,那涉及的语言多了去了,照顾不过来。
漏洞二:如果真忌讳这个数字,整个型号体系都应该规避。但事实上,型号后半段里这个数字出现的频率高得惊人。第 4 代、第 14 代、细分编号里的 400、1400,全都是它。
漏洞三:同一时期的其他产品线并没有类似规避。如果这是集团级的命名禁忌,那所有产品线都该执行,但实际并没有。
我个人的看法是,这个说法属于典型的“事后归因”——先观察到 i4 不存在,再找一个听起来合理的文化解释。这类解释在硬件圈特别多,比如“某代因为发热大所以跳过”“某个编号因为不吉利所以不用”,绝大多数都没有任何一手依据。
4.2 反例密度有多高,看一眼天梯图就知道
翻一翻历代型号列表,带 4 的型号密度极高。第 4 代整个家族、第 14 代整个家族、各种 400/1400/4000 级别的细分编号,铺得到处都是。如果真有忌讳,这些编号本该出现明显的跳跃,但实际完全没有。
更有意思的是,某些带 4 的型号反而是当年的销量主力。这就彻底否定了“规避”的说法。一个真的被忌讳的数字,不可能被放在主力产品上。
我自己做选型时有个习惯:凡是看到“因为忌讳所以不用”这类解释,先去找反例。找到三个以上反例,基本就可以判定这个解释不成立。这个方法在处理各种硬件圈的“都市传说”时特别管用。
4.3 真正的动因排序
把各种因素按权重排一下,我的判断是这样的:
| 权重 | 因素 | 说明 |
|---|---|---|
| 最高 | 扩展余量 | 步长为 2 才能上下都留位 |
| 高 | 认知区分度 | 间隔大,不易看混、听混 |
| 中高 | 历史锚点 | 最高档先发,往下铺,起点不能是 1 |
| 中 | 产品线隔离 | 空位留给未来衍生系列 |
| 极低 | 文化偏好 | 缺乏证据,且有大量反例 |
这张表的价值不在于给出标准答案,而在于示范一种思考方式:面对一个“为什么没有 X”的问题,先列出所有可能的原因,再对每个原因找支持证据和反对证据,最后按权重排序。文化类解释往往排在最后,因为它最难验证,也最容易编。
5. 别家为什么敢用偶数:命名体系要看“编排维度”
5.1 不同体系的编号逻辑,根本不在一个维度上
有人会追问:既然留白这么好,为什么别的产品敢用偶数?手机芯片有 8 系,内存有 DDR4、DDR5,接口有 3.0、3.1、3.2。这不是自相矛盾吗?
不矛盾,因为它们在表达的东西压根不一样。
桌面 CPU 档位表达的是“分层”。分层需要留白,因为层级之间未来可能要插入新层级。所以用 3、5、7、9。
内存代际表达的是“第几代技术”。代际是线性推进的,第 4 代之后必然是第 5 代,不存在“在 4 和 5 之间插一个 4.5 代”的需求。所以连续编号完全合理。
手机芯片表达的是“档位”,但它用的是 4、6、7、8 这种编排。为什么 8 是旗舰?因为单数字里 8 已经是接近顶端的位置,再往上就得用两位数,视觉上不整齐。这是一种“顶到天花板”的编排法,和 CPU 的“留出天花板”正好相反。
接口版本则是反面教材。3.0 改成 3.1,再改成 3.2,然后又细分出 Gen 1、Gen 2、Gen 2x2。用户彻底懵了,同一个物理接口能对应三四种速率标识。这就是典型的“命名层反复重构”,把已经建立的认知全部推翻。
5.2 一张对照表看清编排维度
| 体系 | 编号方式 | 表达的维度 | 是否留白 | 结果评价 |
|---|---|---|---|---|
| 桌面 CPU 档位 | 3/5/7/9 | 分层 | 留白 | 稳定,沿用多年 |
| 内存代际 | 3/4/5 | 技术代际 | 不留白 | 清晰,无歧义 |
| 手机芯片档位 | 4/6/7/8 | 分层 | 部分留白 | 基本清晰 |
| 接口版本 | 3.0/3.1/3.2 + Gen | 速率分级 | 反复重构 | 混乱,反面案例 |
| 显卡系列 | 30/40/50 | 代际 | 按十位推进 | 清晰 |
这张表其实揭示了一个规律:只要编号表达的维度单一且稳定,就不会出问题;一旦命名层反复重构,用户认知就会崩。CPU 档位这套之所以能沿用这么多年,不是因为它多聪明,而是因为它十几年没改过。
我见过不少团队在做产品版本号时犯这个错:1.0 发布,1.1 加功能,1.2 修 bug,1.3 又加功能,1.4 变成大改版,1.5 又只是修修补补。版本号失去了表达力,用户完全无法从编号判断这次更新值不值得升级。正确的做法是把“功能版本”和“修订号”分开,大改版才动主版本号,小修补只动末位。这和 CPU 把“档位”和“细分编号”分开是同一个思路。
5.3 结论不是“奇数更高级”,而是“分档需要留白”
把这个问题彻底说透:奇偶本身没有任何技术含义。真正起作用的是编号之间的间隔。间隔越大,可插入的空间越多,体系的寿命越长。
同样四个档位,用 1/2/3/4 排,寿命可能只有五年;用 3/5/7/9 排,能撑十五年。差别不在于数字好不好看,而在于有没有给未来留位置。
这个思路可以迁移到很多地方。套餐定价用 99/199/299/499,比 99/129/159/189 更容易加档;会员等级用青铜/白银/黄金/铂金,比 1 级/2 级/3 级/4 级更有质感;甚至写文档的章节编号,用 1、3、5 也比 1、2、3 更容易在中间插入内容而不必全文重排。
留白不是浪费,是给变化买单。
6. 如果让你从零设计一套型号命名,我会这么排
6.1 先定档位间距,再定子型号区间
假设你要给一条产品线设计命名,我的建议顺序是这样的。
第一步,确定档位数量。四到五个最合适。少于四个,覆盖不了价格带;多于五个,用户记不住。人短期记忆的舒适区就在这个范围。
第二步,确定步长。至少为 2。步长为 1 等于没有留白,步长为 3 以上则跨度太大,中间空位太多会显得编号不连续。步长 2 是个甜点值。
第三步,确定起点。不要从 1 或 0 起步。1 有“初代”暗示,0 有“没有”的暗示。从 3 起步最稳妥,既显得成熟,又给下面留了位。
第四步,划分子型号区间。每个档位内部给一段编号范围,比如低档 100-399,中档 400-699,高档 700-899,顶档 900 以上。这样即使跨档,编号也不会撞车,用户扫一眼数字就能大致判断位置。
第五步,定义后缀。后缀数量控制在 5 个以内,每个后缀只表达一个维度(功能、功耗、形态,选一个)。后缀一旦定义就不要再改含义,改动一次,用户认知就崩一次。
6.2 一套可以直接抄的规则模板
把上面五步落成具体规则,大概是这个样子:
档位:[3, 5, 7, 9] # 步长 2,起点 3,留白 4/6/8 代数:两位数字,逐年递增 # 10, 11, 12, 13... 细分:三位数字 # 档位内编号,越大越强 后缀:K / F / T / H / U # 单一维度,不改含义 完整格式:档位-代数细分后缀 示例:5-12400K我写了个小脚本,用来解析任意一个型号字符串,把各字段拆出来。这类脚本在做批量配置表、爬电商价格、做比价工具时特别有用,直接拿去改改就能用。
import re PATTERN = re.compile( r"^i(?P<tier>[3579])-" r"(?P<gen>\d{1,2})" r"(?P<sku>\d{3})" r"(?P<suffix>[A-Z]{0,3})$" ) SUFFIX_MEANING = { "": "标准版:锁频,带核显", "K": "可超频:需配套芯片组与散热", "F": "无核显:必须配独显", "KF": "可超频且无核显", "T": "低功耗:频率低,适合小机箱", } def parse_model(model: str) -> dict: m = PATTERN.match(model.strip().upper().replace("I", "i", 1)) if not m: return {"ok": False, "reason": "格式不匹配", "raw": model} tier = int(m.group("tier")) gen = int(m.group("gen")) sku = int(m.group("sku")) suffix = m.group("suffix") return { "ok": True, "tier": tier, "generation": gen, "sku": sku, "suffix": suffix, "suffix_desc": SUFFIX_MEANING.get(suffix, "未知后缀"), # 粗略的相对性能权重,仅用于同代内排序 "rough_score": tier * 1000 + sku, } if __name__ == "__main__": for m in ["i5-12400", "i7-12700K", "i5-13400F", "i9-13900KF"]: print(parse_model(m))这个脚本里有几个细节值得说。正则里限定档位只能是 3、5、7、9,是因为这四个值覆盖了绝大多数情况,遇到异常值直接报错比猜一个更安全。rough_score只是个粗排用的权重,跨代比较时它是不准的,必须先把代数纳入计算。这一点在实际使用中很容易被忽略:拿它排序第十代和第十三代,结果会误导你。
6.3 三个最容易翻车的地方
做命名设计这些年,我见过太多团队在这三件事上栽跟头。
第一,后缀膨胀。一开始只定义了两三个后缀,后来业务需要,加一个、再加一个,每个后缀的含义还互相交叠。最后用户看到型号完全无法判断。接口版本命名就是活生生的教训,从 3.0 到 3.2 再到 Gen 2x2,一路加下去,最后不得不整体重构。我的建议是后缀总数硬性锁死在五个以内,要加新的必须先合并旧的。
第二,跨代同号。两代产品用完全相同的细分编号,用户会以为只是小改款。如果新一代确实是大幅升级,必须在编号上体现出来,哪怕只是把末位调一下。我在做产品版本时踩过这个坑:2.1.0 和 2.1.1 之间其实重构了整个底层,但版本号只动了末位,结果老用户根本没意识到要重新看文档,升级后一堆兼容问题。
第三,把营销标签当技术参数。这是最初那个问题的根源。标签就是标签,它不承担参数职责。一旦团队内部有人开始拿标签做性能比较,混乱就开始了。正确的做法是在内部文档里明确区分:哪些字段是给人看的,哪些字段是给机器算的。这两者混用,对外沟通迟早出事。
注意:命名体系一旦对外发布,修改成本远高于设计成本。宁可前期多花两周推演扩展性,也不要后期花两年做迁移。
最后分享一个我自己的小习惯。每当我设计一套编号、一套分层、一套套餐,我都会先做个思想实验:假设两年后我需要在这套体系里插进一个新档位,能不能不动已有编号就完成?如果答案是“不能”,说明留白不够,回头再改。这个实验花不了十分钟,但能省下后面无数次返工。