展望 芯片技术

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

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

节选如下 :

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

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

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

芯片 在 计算机层面 的 设计 和 发展方向,   我写了一篇   《CPU 应该 搞 0 级 Cache , 而不是 大寄存器》  。    其实 归纳下来 很简单, 就是 一句话 :  把 成本 都 花在 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://www.cnblogs.com/KSongKing/p/14584657.html    的 结尾 说 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

我们 再来 计算看看  。

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

光子计算机

量子计算机

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

光刻机

原文地址:https://www.cnblogs.com/KSongKing/p/15769531.html