漫谈 计算机硬件 的 设计 和 实现
计算机硬件 的 基础 是 逻辑电路,
逻辑电路 可以说是 计算机硬件 的 基因 , 或者说 细胞 。
而 逻辑电路 的 基本单元 是 “指令开关”,
可以说, 指令开关 是 智能硬件(数字电路) 的 基因, 或者说 细胞 。
我们来看看一个 指令开关 是怎么 设计 和 实现 的 :
指令开关, 就是 在 输入端 输入 指令, 输出端 输出 控制信号 。
我们以 4 位指令 为例, 4 位指令 可以有 16 个 指令, 如: 0001 , 0010, 0011, 0100, …… 1111 。
0000 表示 没有输入任何指令 的 状态 。
控制信号 就是 0 和 1 。
通常 0 表示 无电压, 被控制的电路 不接通, 1 表示 正电压, 被控制的电路 接通 。 被控制的电路接通就是 执行 相应的 指令 。
指令开关 由 门电路 组成, 门电路 是 逻辑电路 的 基本单元 。
我们来看看 “1001” 这个 指令的 指令开关 的 逻辑电路 设计图 :
可以看到, 输入端有 4 个引脚, 输出端有 1 个引脚 ,
当 输入端 输入 “1001” 时, 输出端 输出 “1” , “1” 是 正电压, 所以此时会接通 1001 指令 对应的 执行电路, 也就是开始 执行 指令 。
当 输入端 输入 不是 “1001” 时, 输出端 输出 “0” 。
接下来说说 门电路 的 实现,
门电路 就是 开关 串联 或者 并联 起来 。
开关 可以是 继电器, 电子管, 晶体管, 都可以 。
开关 在这里的 意思是 用电流控制电流, 或者说, 用信号控制信号 。
如果要实现 一个脉冲触发后长时间保持开关状态, 可以使用 双稳态电路 。
双稳态电路 通常 使用 晶体管 实现, 但是用 继电器 和 电子管 好像也可以实现 双稳态电路 。
我们来设计一个 交换机,
这里的 交换机 不是 现在的 网络交换机, 而是 早期的电话交换机 。
用 指令开关 模拟实现 一个 早期的 电话交换机 。
早期的 电话 接线是这样的, A 用户 要 拨打 B 用户, 先拨打到总机, 告诉 接线员 要拨打 B 用户, 接线员 将 A 用户 的通话线路 和 B 用户 的通话线路 插到同一组插口里, 这样, A 用户 就可以和 B 用户 通话了 。
我们现在可以用 指令开关 来实现这个 “接线” 的 功能, 或者说 建造电路通路 的 功能 。
我们先 设定 电话号码, 简单起见, 就用上面的 4位二进制 的 编码, 从 0001 到 1111 可以有 16 个电话号码,
每个电话号码 对应一个 指令开关,
每个 指令开关 控制 该号码 的 用户 的 通话线路,
然后把 所有用户的 通话线路 连到一条 公共 的 导线 上,
当 0001 拨打 1111 时, 就触发 0001 和 1111 这两个 指令开关 开, 接通 0001 和 1111 的 通话线路, 这样 0001 和 1111 就可以通话了 。
当然这样 同一时间 只能有 一对用户 通话(一个通路) ,
如果要 同时 允许 多对用户 通话的话(多个通路), 需要 分时复用 。