在计算机中接收指令(二进制代码)时,什么会打开和关闭晶体管(门)
What turns on and Off the transistors(Gates) while getting feed by the instructions(binary code) in computers
我正在在线学习计算机体系结构课程,他们教授的内容包括计算机如何工作,从盖茨到构建 cpu 并使其运行。
我知道我们将指令集放在包含寄存器的内存中,这些寄存器使用控制总线 n 全部馈送到 cpu 中的每个单元,我们使用 PC、ALU、寄存器、数据存储器、程序存储器,并在这些单元的帮助下 [=16] =] works.I 了解所有这些,但我对门和晶体管以及它们的工作原理很好奇。
然后我阅读了晶体管、FET、TTL、CMOS 及其门电路等门的基础知识。在那里我看到晶体管或门接受高电压和低电压的输入并给我们输出 0s 和 1s。
但我的问题是我们如何首先将这些指令设为 0 和 1 place.In 为了制作二进制代码我们需要打开或关闭(高电平或低电平)输入以获得以二进制形式输出,稍后将存储在寄存器中,然后馈送到计算机单元。
我们首先如何创建输入,比如制作二进制代码将在输入端同时打开和关闭,谁来完成输入端同时打开和关闭电路的工作?
可能是 How does an assembly instruction turn into voltage changes on the CPU? 的副本。
或者既然你问的是 0/1 首先是如何进入计算机的,早期的计算机有前面板开关,可以将逻辑输入直接连接到电源轨或地,直接提供低电压或高压。这个retrocomputing question有图片
在更现代的机器上,我们的键盘通过建立或断开电气连接、将键盘控制器中的输入引脚拉高(例如通过上拉电阻)或拉低(接地)来工作。
我们还有计算机内存,它通过输出低电压或高电压作为数据来响应地址线上的信号。例如,最简单的一种 programmable ROM (PROM) 基本上是由芯片中的 "blowing fuses" 编程的。即熔化将该地址的位连接到电源电压的电线。因此,当您通过将地址线驱动为低电平或高电平来读取它时,您会在数据引脚上获得低电压或高电压输出。
更现代的内存技术只是其更高级的版本。例如电可擦除 PROM 或闪存。或 volatile SRAM / DRAM 将保存您存储的数据,但在电源故障时丢失。一个 SRAM 单元可以由几个晶体管构成。
在 bootup/reset 上,CPU 有一个硬编码地址,它从重置向量 ("jumps to") 读取代码。它将从此地址获取字节并将它们解码为指令。将复位向量硬编码到 CPU 只是一些布线(或硅路径)连接方式的函数。这和 ROM 中的一些代码,是计算机 bootstrap 本身并加载更多代码所需的全部,例如从磁盘或其他什么。 (CPU 使用 I/O 指令与磁盘控制器通信,或者磁盘控制器可以将数据 DMA 写入 RAM 以供 CPU 读取。)显然,数据总线的通信涉及低电压和高电压电平对应于逻辑 1 和 0 位,或一些更复杂的编码。
所有这些电子可编程的东西都很棒,但它是如何开始的?
您可以手动构建内存,而不是对其进行电子编程。例如,阿波罗计划的制导计算机使用绳索记忆。 https://en.wikipedia.org/wiki/Core_rope_memory。 我找到了一些关于他们的记忆是如何构建的视频,通过手工以一种或另一种方式缠绕电线来编码手写机器代码。
- Apollo Rope Memory Modules (Part 1 - Introduction)
- Apollo Rope Memory Modules (Part 2 - Construction)
其他早期计算机存储器包括穿孔卡或纸带,以及 https://en.wikipedia.org/wiki/Drum_memory。
打孔卡可以用手打孔,打孔卡reader会机械地将孔的图案变成低压和高压/位的图案, CPU 可以用 I/O 指令阅读。
我正在在线学习计算机体系结构课程,他们教授的内容包括计算机如何工作,从盖茨到构建 cpu 并使其运行。 我知道我们将指令集放在包含寄存器的内存中,这些寄存器使用控制总线 n 全部馈送到 cpu 中的每个单元,我们使用 PC、ALU、寄存器、数据存储器、程序存储器,并在这些单元的帮助下 [=16] =] works.I 了解所有这些,但我对门和晶体管以及它们的工作原理很好奇。 然后我阅读了晶体管、FET、TTL、CMOS 及其门电路等门的基础知识。在那里我看到晶体管或门接受高电压和低电压的输入并给我们输出 0s 和 1s。
但我的问题是我们如何首先将这些指令设为 0 和 1 place.In 为了制作二进制代码我们需要打开或关闭(高电平或低电平)输入以获得以二进制形式输出,稍后将存储在寄存器中,然后馈送到计算机单元。 我们首先如何创建输入,比如制作二进制代码将在输入端同时打开和关闭,谁来完成输入端同时打开和关闭电路的工作?
可能是 How does an assembly instruction turn into voltage changes on the CPU? 的副本。
或者既然你问的是 0/1 首先是如何进入计算机的,早期的计算机有前面板开关,可以将逻辑输入直接连接到电源轨或地,直接提供低电压或高压。这个retrocomputing question有图片
在更现代的机器上,我们的键盘通过建立或断开电气连接、将键盘控制器中的输入引脚拉高(例如通过上拉电阻)或拉低(接地)来工作。
我们还有计算机内存,它通过输出低电压或高电压作为数据来响应地址线上的信号。例如,最简单的一种 programmable ROM (PROM) 基本上是由芯片中的 "blowing fuses" 编程的。即熔化将该地址的位连接到电源电压的电线。因此,当您通过将地址线驱动为低电平或高电平来读取它时,您会在数据引脚上获得低电压或高电压输出。
更现代的内存技术只是其更高级的版本。例如电可擦除 PROM 或闪存。或 volatile SRAM / DRAM 将保存您存储的数据,但在电源故障时丢失。一个 SRAM 单元可以由几个晶体管构成。
在 bootup/reset 上,CPU 有一个硬编码地址,它从重置向量 ("jumps to") 读取代码。它将从此地址获取字节并将它们解码为指令。将复位向量硬编码到 CPU 只是一些布线(或硅路径)连接方式的函数。这和 ROM 中的一些代码,是计算机 bootstrap 本身并加载更多代码所需的全部,例如从磁盘或其他什么。 (CPU 使用 I/O 指令与磁盘控制器通信,或者磁盘控制器可以将数据 DMA 写入 RAM 以供 CPU 读取。)显然,数据总线的通信涉及低电压和高电压电平对应于逻辑 1 和 0 位,或一些更复杂的编码。
所有这些电子可编程的东西都很棒,但它是如何开始的?
您可以手动构建内存,而不是对其进行电子编程。例如,阿波罗计划的制导计算机使用绳索记忆。 https://en.wikipedia.org/wiki/Core_rope_memory。 我找到了一些关于他们的记忆是如何构建的视频,通过手工以一种或另一种方式缠绕电线来编码手写机器代码。
- Apollo Rope Memory Modules (Part 1 - Introduction)
- Apollo Rope Memory Modules (Part 2 - Construction)
其他早期计算机存储器包括穿孔卡或纸带,以及 https://en.wikipedia.org/wiki/Drum_memory。
打孔卡可以用手打孔,打孔卡reader会机械地将孔的图案变成低压和高压/位的图案, CPU 可以用 I/O 指令阅读。