展望 芯片技术

写 这篇文章 的 原因 是 前几天 在 学帝 @XDDongfang  的  一个 帖 (暂时找不到是 哪个 帖 了) 里 和 @dons222 @思维机器 等 聊天, 也讲到 计算机语言 什么的, 学帝 鼓励  “也应该进军芯片” ,  我回复  “我随后写一篇 《展望 芯片技术》”   。

 

我 在 《偏微分方程 张量 矩阵 可以 归为 计算机 语言》   https://tieba.baidu.com/p/6655949347   的  18 楼 说  可以将 芯片 的 设计 分工,  这样 可以 简单易行  。

 

节选如下 :

 

大家可能会拿 GPU 说事, 说 设计 GPU 需要 图形学 知识, 这么说也对 。 但可以把 设计 GPU 的 工作 分成 2 部分, 打个比方, 小明 负责 设计 图形函数, 小刚 负责 设计 逻辑电路 。 小刚 只要 把 小明 提供 的 图形函数 用 逻辑电路 实现 就可以了 。

显然, 设计 图形函数 是 数学, 设计 逻辑电路 是 系统设计 。

当然, 还要一个 小红, 把 逻辑电路 变成 物理电路, 小红 和 小刚 的 不同 是, 小刚 不必过多关心 硬件工艺, 主要关心 逻辑设计, 小红 需要 关心 硬件工艺, 把 逻辑设计 转换为 硬件设计 。

 

芯片 在 计算机层面 的 设计 和 发展方向,   我写了一篇   《CPU 应该 搞 0 级 Cache , 而不是 大寄存器》   https://tieba.baidu.com/p/7764325871   。   其实 归纳下来 很简单, 就是 一句话 :  把 成本 都 花在 Cache 上,  比 什么都强  。

 

Cache 能造 快一点 的 就 造 快一点的,  能造 离 CPU 核  近一点 的 就 造 近一点的,  不能 再快 也 不能 再近,  就 多造一点,  增加 数量(容量), 也是好的  。

 

这样的话,   摩尔定律 还是 能 继续 有效 比较长 的 一段时期 的 。

 

在  QQ 群 里,   我 和 网友 争论过这个问题,   现在,  我想对他说 :   你 懂 底层, 会 玩 寄存器,  玩 10 个 就 差不多了,   再多 就 乱了(顾不过来),    而且 现在的 大寄存器 一个 顶 4 个,   你还要 按 位 (寻址)访问 (数据),    这不就是 要 管理 很多个 寄存器 ?     就像  耍杂技 同时 在 手里 抛接 三个球 、四个球,   球 太多 就 忙不过来 了 ,   也无暇 关心 其它 事  。  少玩 几个 寄存器,  把 底层 的 编译器  / 编译器 的 底层  写得 小而坚固,   我们 可以 关心 点 其它 事情 ,   比如 共商大计, 展望未来, 大展宏图,  喝酒品茶,  谈玄论道,  吟诗作赋,  陶冶情操,  增长课外知识,  培养业余爱好,  唱摇滚  什么的  。 

 

芯片 的 电路设计,   也不难,   我写过

 

《用 逻辑电路 实现一个 开平方 算法》   https://tieba.baidu.com/p/6865666198   

《设计 逻辑电路 的 开关元件》   https://tieba.baidu.com/p/6867831769

《设计 逻辑电路 的 开关元件 (2)》   https://tieba.baidu.com/p/6898604921

 

电路设计 一个 关键的技术 是  计算 和 控制 误差耦合,   这 有一定 难度  。  但 误差耦合 可以 等价 为  阻抗匹配 问题 来看,   这样 就 容易 理解 了 。  在 《设计 逻辑电路 的 开关元件 (2)》  里 讲到 这部分,   节选一段 如下 :

 

这似乎 引出 了 “输入阻抗” 和 “输出阻抗” 的 问题, 两个 元件 要 连在一起用, 输入阻抗 和 输出阻抗 要 匹配, 或者说 符合 彼此 给出 的 规格 , 大概 就是 输入阻抗 和 输出阻抗 问题 吧 。

规格 是指 阻抗 的 范围 , 两个元件 要 连在一起用, 自己 的 输出端阻抗 要在 对方 给出 的 输入阻抗 范围 内 。 以及, 对方 的 输入端阻抗 要 在 自己 给出 的 输出阻抗 范围 内 。

 

想 知道 输入端阻抗 和 输出端阻抗,   就要 将 元件 的 内部电路 等效为 电阻电路,  来 计算出 等效 的 输入端电阻 和 输出端电阻  。  典型的, 把 三极管 这样 的 非线性元件 等效 为 电阻 ,  比如 

 

 

 

 

这 4 个 图 是否 都 正确 ,     在 正确 的 基础上,   哪一个 最 简化 而 最 接近 实际  ?

 

若干个 元件 连接 成 一个 电路,   把 元件 替换为 等效电阻 ,   就可以 画出 整个 电路 的 等效电阻图,   定义出 电路 的 输入端 和 输出端,  这样 就是一个 模块,  可以 计算出 输入端 的 等效电阻 和 输出端 的 等效电阻  。   进一步 可以 计算出 在 额定电压 下 ,   输入端 接入 的 电阻 的 范围,  即 输入阻抗,  和 输出端 接入 的 电阻 的 范围,  即 输出阻抗  。

 

在 额定电压 和  这些 电阻 范围 内,   电路 里 各个电阻 两端 的 电压 都 可以 获得 正常 的 工作电压  。    这样 就达到了  阻抗匹配 的 效果  。  即 这样 的 额定电压 和 输入输出模块 的 阻抗匹配,   使得 即使 有 误差耦合 ,   但  各个电阻 两端 的 电压 都 在 正常范围 内,  电路 可 正常工作  。

 

上面说,  “进一步 可以 计算出 在 额定电压 下 ”,   好像 这个 额定电压 是 一个 值,   那 如果 稍微 偏差一点,会不会 计算出的 输入阻抗 和 输出阻抗 范围 就 有误  ? 

 

好问题  。    实际中,   额定电压 也是一个 范围,    同理,    计算出 额定电压 在 某个范围 时 的 输入阻抗 范围 和 输出阻抗 范围,   就可以了   。

 

同学们,    以 我们 的 数学知识 、物理知识 、计算机知识,    计算 阻抗匹配 没问题 吧 ?    来,  给点信心,  给点掌声   ……  !?

 

计算 出了 阻抗匹配,   也就 掌握 和 解决了 误差耦合  。

 

 

《设计 逻辑电路 的 开关元件》   里  给出过 继电器 的 构造图 :

 

 

 

 

可知 继电器 的 等效电阻图

 

 

 

继电器 的 等效电阻 就是 两个 不相干 的 电阻,    因此,   可以说 继电器 没有 误差耦合,   是 一个 理想的 开关元件  。     全部 由 继电器 组成 的 电路 的 电路计算 很简单 。

 

 

我不知道 为什么要用  Verilog HDL  和  VHDL  这样 的 硬件设计 语言,   我觉得,  数字硬件设计 是 很简单 的  。    软件界 一直 流传着 一个 说法 :  软件界 很羡慕 硬件设计,  硬件设计只要 把 模块  一个个 凑起来 就行了,   一些 元件 凑成 模块,  一些 模块 凑成 更大的模块,   一些 更大 的 模块 凑成 更大更大 的 模块   ……   像 搭积木 一样  。

 

所以,  我们 按照 这样 把 模块 的 线路图 画出来,   把 每个 模块 的 输入输出 参数 定义好,    不就 设计出来 了  ? 

 

我一直 认为 设计电路 用 模块线路图 就可以,    我一直 提倡 这个 方法  。

 

我在  《CPU 应该 搞 0 级 Cache , 而不是 大寄存器》   https://tieba.baidu.com/p/7764325871     的 结尾 说 

我提倡 用 模块线路图 来 设计 硬件电路,     硬件电路 本来 就是 模块化 的 ,  用 模块线路图 设计 很适合 。   模块 的 规格,  包括 接口 和 电路参数 作为 模块 的 说明书 单独说明 就好   。

其实 设计 CPU 很简单,      主要 是  制造工艺  和   电路计算 比较难   。

 

我在 《研究一下 CPU 除法》   https://tieba.baidu.com/p/7508676984    的 结尾  说

我 提倡 用 模块电路图 + 模块规格 来 做 硬件电路 设计, 真的很爽, 爽死了, 无敌 。

模块规格 包括 模块 定义 、接口 、参数 等 。

 

有人说,   模块线路图 给人看 可以,   但是 怎么把  模块线路图 展开 为  光刻机 能 读懂 的 Map  ?     这里 的 Map 指 硅片 上 微观元件 的 结构 和 布局,   光刻机 根据 Map 在 硅片 上 光刻  。

 

这好办,  我们不是 程序员 吗 ?    写一个 程序 把  模块线路图 递归 展开 为  Map 不就行了  ?

 

综上,     一个 开源团队 提供出 一套 芯片 设计方案 是 可能 的,   或者说,    一个 开源团队 主导负责  一款 芯片 的 设计 和  研发生产  是 可能 的  。

 

 

接下来,  我们 来 展望 未来 的 芯片技术   。   小时候,  看 科普读物 《明天的科学》,   讲到了 未来 的 光子计算机,  就是使用 光子芯片 的 计算机  。   光子芯片 由 光子开关 组成  。 文中说  光速 比 电信号速度 快很多,    因此,   光子开关 比 电子电路 快,   光子芯片 比 集成电路 快,   光子计算机 比 电子计算机 快  。

 

除了 光子计算机,   我还想到 量子计算机  。      这个  量子计算机 不是   “退火”  、塌缩 、 “平行宇宙”   的 那个 “量子计算机”,     这个 量子计算机 仍然 是 冯诺依曼 计算机,  只是 采用 量子开关  。

量子开关 类似 电子开关(三极管) 、 光子开关,     只不过 利用 量子间作用 来 实现 开关 效果  。

 

现在 芯片技术 已经达到了 几纳米 的 粒度,   其实 这么小 的 微观元件 间 的 作用 已经 可以是 量子作用 了,   当然,  目前 的 芯片运行 还是 依靠 和 宏观 一样 的 欧姆定律  。

 

蛋白质 的 分子 比 几纳米 大 ,   而 原子 分子 电子(共价键) 之间 的 作用 是 量子作用  。

 

目前 的 芯片 的 几纳米 的 粒度 在 分子水平,  也 差不多 在 原子水平,    当然,  目前 的 芯片运行 还是 依靠 和 宏观 一样 的 欧姆定律  。

 

那么,   能不能 利用 分子 原子 间 的 作用 (量子作用)  来 实现 开关 效果 呢  ?

 

分子 原子 间 的 作用,    我们 最熟悉 的,   最普遍 的 就是 化学反应  。

 

我 写过 一篇  《浅谈 生物体信号传递》   https://tieba.baidu.com/p/7743406689 ,     里面说  “神经信号 的 生化反应 在 分子级 的 反应速度 应该是  纳秒级  的,   就是说 跟 计算机 CPU 主频 差不多是一个  水平”    。

 

我们 再来 计算看看  。      设  人 的 手指 到 大脑 的 神经通路 长  1 米,   手指 的 感觉 传递到 大脑 的 时间 是  0.1 秒,    则 神经信号 传递 的 速度 = 1 米 / 0.1 秒 = 10 米 / 秒  。  传递 1 纳米 的 距离 需要的时间 =  1 纳米 /  ( 10 米 / 秒 )   =  0.1 纳秒    。

 

假设  CPU 的 一个 核 的 集成电路 的 面积 是  0.1 * 0.1 平方毫米,  相当于  边长 =  0.1 毫米 的 正方形 。  一个 时钟周期 里,  电信号 必须 从 核 的 这一端 传递到 核 的 另一端 ,  一端 到 另一端 的 距离 按 边长算,  也就是  0.1 毫米,    一个 时钟周期  按  1 纳秒 算, 也就是 主频 1 GHz,    则 电信号 传递速度 =  0.1 毫米 / 1 纳秒  =  10 万 米 / 秒  。

 

这里,  我们 计算出的 

 

神经信号 传递速度  = 10 米 / 秒,   

电信号 传递速度 = 10 万 米 / 秒

 

显然,   电信号 远远 比 神经信号 快,   电信号 速度 是 神经信号 的   1 万 倍  。

 

神经信号 是 化学反应 实现,   化学反应 是 分子 原子 间 的 作用,  是 量子作用,  不过 从 上面 的 神经信号 传递速度  = 10 米 / 秒  来看,   这个 量子作用 的 速度 比 电信号 慢 1 万 倍,  如果 用  这个 量子作用 来 实现 量子开关,   那 速度 也比 电子开关 慢 1 万 倍,   用 这个 量子开关 制造 计算机,   速度 比 电子计算机 慢 1 万 倍  。

 

也就是说,    仿照 神经信号 传递 的 化学反应 来 制造 量子开关,   速度 比 电子开关 慢  1 万 倍,      这个 不是 我们要的效果,  我们 希望 量子开关 比 电子开关 快  。

 

但 其实 神经信号 传递速度  = 10 米 / 秒   这个 说法  也有点问题,    我们 是 按照 人 的 体型 和 反应时间 来 估算 这个 速度 的,   但 自然界 中 动物 有大有小,   如果 神经信号 传递速度  总是 10 米 / 秒,    那 动物 体型越大,  从 身体局部 到 大脑 的 神经通路 越长,   反应速度 越慢  ?     动物 体型越小,    反应速度 越快  ?       好像不是这样  。

 

刚 在 网上 查了一下 恐龙 的 第二大脑 的 资料,   看到 神经系统传导速度大概是 100 米 / 秒,    以前 的 科学家 认为 恐龙 在 屁股 那里 有一个 神经球, 也就是 第二大脑,  如果没有 第二大脑,     尾巴 的 感觉 传到 大脑 的 时间 太长,   “切掉 恐龙 的 尾巴,   等 烤熟 了, 它 的 大脑 也许才能 感觉到疼痛并做出反应  。”      但 现在 的 科学家 又 认为 这个 第二大脑 的 说法 是 错误 的  。 见   知乎 《为什么说有的恐龙有两个脑子,是真的吗?》   https://www.zhihu.com/question/302602677/answer/540057319    。

 

说起 恐龙 的 尾巴,   我就想起 《妖精的尾巴》 ……   虽然没看过  。

 

总之,   能不能 找到 比 电信号 更快 的 量子作用 ?

 

上文说到  继电器 没有 误差耦合,   是  理想的 开关元件,    能不能 做出来 一个 原子 、量子层面 的 继电器 ?

 

小时候 看 《明天的科学》,   书里 展望了   光子计算机,   神经网络 、模糊数学  。       要 实现 光子计算机,   就要 先 实现 光子开关  。

 

可以 用 光 的 干涉 来 实现 光子开关  。     一束光 和 另一束光 干涉 会 产生 条纹,   这意味着 它们 的 光子 的 运动方向 发生了 改变  。   也就是说,   通过干涉,  可以让 一束光 让 另一束光 的 光子 的 运动方向 改变,   这个 特性 可以 用来 实现 光子开关,    即  用 光信号 控制 光信号  。

 

我在 《谁能证明:标准波面的光若能汇集于一点,则它们的光程长度必然相等》   https://tieba.baidu.com/p/7692891691   的  11 楼 提出了 光子碰撞定理,   并且对  @dons222 说  “过两天我会在另一篇文章里让你看到 光子碰撞定理 的 实际应用”,    这个 实际应用 就是 光子开关  。   光子碰撞 就是 光子 对 光子 的 干涉,  就是 光的干涉  。

 

也可以说,  光子 和 光子 之间 不一定 总是 无视对方 和 可以穿过对方,  有时候会 发生 干涉,   可以 把 干涉 理解 为 光子 和 光子 之间 的 相互作用,  比如 碰撞  。

 

既然  找到了 光子 和 光子 之间 的 相互作用,     比如 可以让 一个 光子 去 碰撞 另一个 光子 使之 改变 运动方向,   顺理成章 的,   当然 可以 用 一个 光子 控制 另一个 光子 的 运动方向,  也就是  用 光信号 控制 光信号,    也就是 光子开关  。

 

虽然 我 在  《谁能证明:标准波面的光若能汇集于一点,则它们的光程长度必然相等》  的  12 楼 又说了,    光子碰撞定理 不一定 成立,    但是,   用 光的干涉 实现 光子开关  是 可以 的  。

 

光子开关 有多快 ?       光子开关 由 光 的 某些 介质 制造而成,    或者 刻在 “集成光路” 上  。  集成光路 的 底板 是 光 的 某种 介质,   就像 集成电路 的 底板 是 硅片  。

 

于是,    光子开关  的 速度 就和 光 在 介质 中 传播 的 速度 有关   。       光 在 真空 中 的 速度 是  30 万 千米 / 秒,   在 介质 中 的 速度 小于 真空 中 的 速度  。

 

假设 光 在 介质 中 的 速度 是  10 万 千米 / 秒,   可以认为,  光信号 的 传递速度 也是  10 万 千米 / 秒  。    上文 计算出的 电信号 传递速度 = 10 万 米 / 秒  ,    显然  光信号 的 速度 是 电信号  的   1000 倍,    即  光信号 比 电信号 快  1000 倍   。    这样的话,    光子 CPU 的 主频 比 电子 CPU 快  1000 倍,    我们现在 用的   CPU (电子 CPU)  主频 是  1 GHz  水平,   光子 CPU 的 主频 可以达到  1 THz 水平 。

 

也就是说,   以后 买 一台 光子计算机 的 笔记本,   相当于 买了 1000 台  电子计算机 的 笔记本  。   一台 光子计算机 PC,   相当于 1000 台 电子计算机 PC  。   一台  光子计算机  服务器,   相当于   1000 台 电子计算机 服务器   。

 

只是 CPU 快 还不够,  内存 和 CPU Cache 也要快,    用  光子开关 制作 双稳态光路,    双稳态光路 组成 的 光子 内存 和 CPU Cache  比  电子 内存 和 CPU Cache (我们现在用的) 快  1000 倍  。

 

 

上文 说到 做一个 量子层面 的 继电器,   由此想到 我 写过 《出题 : 请 计算 2 个 铁原子 之间 的 摩擦力 大小》   https://tieba.baidu.com/p/6564151919   。

 

我 在  《谁能证明:标准波面的光若能汇集于一点,则它们的光程长度必然相等》   里 也 展望了一下 光刻机  。

 

我还写过  《设计一个 硬件 实现的 Dictionary(字典)》    https://tieba.baidu.com/p/6429003216  ,  《用 CPU 计算 100 万 个 点 的 三维坐标 旋转》   https://tieba.baidu.com/p/7697407520    。

 

在  《左手坐标系坐标变换》   https://tieba.baidu.com/p/7668913258   里 提出了 用 CPU 多核计算 代替 FPGA / DSP / GPU  ,

在  《大自然的密码 : 色彩 的 起源》   https://tieba.baidu.com/p/7679825850    里 提出了  超 • 冯诺依曼 计算机   。

 

 

 

 

 

 

 

 

 

假设  光子 CPU 的 一个 核 的 集成光路 的 面积 是  0.1 * 0.1 平方毫米,  相当于  边长 =  0.1 毫米 的 正方形 。  一个 时钟周期 里,  光信号 必须 从 核 的 这一端 传递到 核 的 另一端 ,  一端 到 另一端 的 距离 按 边长算,  也就是  0.1 毫米,     则  一个时钟周期 =  0.1 毫米 / ( 10 万 千米 / 秒 )  =   

 

一个 时钟周期  按  1 纳秒 算, 也就是 主频 1 GHz,    则 电信号 传递速度 =  0.1 毫米 / 1 纳秒  =  10 万 米 / 秒  。

 

 

 

 

 

 

 

 

 

神经构造 简化为 由 某种 分子 组成,         

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

模块线路图设计  程序员 递归展开光刻线路图

 

 

 

光子计算机

量子计算机

在 原子 量子 的 层面  搞一个 继电器 ?

光刻机

 

posted on 2022-01-06 04:38  凯特琳  阅读(40)  评论(0编辑  收藏  举报

导航