写给外行的计算机原理(三)内存

  你一定听说过内存这个概念,而且知道在机器中内存容量越大越好。不过,由于现代科学技术的普及程度如此之高,一方面它影响了普通人的生活,另一方面,它也受到了人们的影响。内存这个名词的混淆,就是一个例子。人们把手机等移动设备的存储卡叫做内存卡,把手机的内部存储体也叫做内存。其实,这两种设备严格来说相当于台式计算机中的硬盘,它们并不被 CPU 直接访问。当然,手机自然也是有相当于计算机内存的部件的,它们被称之为运行内存。我们要说的就是运行内存,也就是“内存”这个名字本来所指的事物。一般来说,能够直接被 CPU 访问的部件可能名为“内”,而其余类似硬盘,打印机,显示器之类的设备叫做外设。内存在功能上是由 CPU 直接访问的,简单来说就是这样。

内存和硬盘有一个重要的区别,就是内存在断电之后就会复位,里面保存的信息也会丢失,而硬盘不会。下面,我们要制造一个简单的内存装置。

如图所示,左边比较粗的部分是一个电磁铁,由导线缠绕在一个圆柱形的铁芯上构成。和电磁铁相对的是一个铁块,铁块右端有两个金属触点,并且和一根导线连接起来。标记为“设一”和“设零”的装置是两个按钮,这两个按钮有所不同。其中的“设一”按钮叫做常开按钮,意思是正常状态下按钮连接的电路保持断开,当它被按下的时候电路会接通;而“清零”按钮则被叫做常闭按钮,顾名思义,它在正常状态下是闭合的,所以电路是接通的,当我们按下它的时候,电路就会断开。

当我们按下“设一”按钮的时候,电磁铁线圈中就有了电流通过,所以右边的铁块就会被吸合到左边,同时它上面的两个触点也会与左边对应的触点接触。接触之后,由于灯泡部分的电路中有电流通过,所以灯泡就会亮起来。接着,我们松开按钮,此时按钮部分的电路断开,但是电磁铁并不会复位,所以灯泡也就不会随之熄灭。为什么呢?因为按钮上部的导线保持了电磁铁线圈的接通,线圈中依然有电流通过,所以,电磁铁不会复位。此时,虽然我们已经松开了按钮,但是整个电路的状态较之先前却发生了改变。如果我们再次按下“设一”按钮,对电路的状态没有任何影响,灯泡会一直亮下去。那我们怎么让灯泡熄灭呢?答案就是按下右边的“清零”按钮。此时,线圈电路被切断,所以电磁铁会失去磁性,右边的铁块也会由于弹簧的作用而复位,这样,两组触点就会断开,灯泡也就熄灭了,原先保持电磁铁线圈接通的上部电路也断开了。电路又恢复到最开始的状态了。

如你所见,我们的电路有两种状态,灯泡亮和灭,也就是说我们标记为OUT的导线上面有电和没电。如果用有电和没电分别表示10,我们的整个装置就可以保存一个bit的信息,也就是一位。这个装置也简单地解释了现代内存(其实是高速缓存)的工作原理。当我们按下“设一”按钮的时候,我们就将“1”保存到了内存中,然后松开按钮,内存中的数据仍然会保持不变,当然,前提是不能停电,这和计算机内存的功能是一致的。当我们用手指去接触OUT端的时候,如果感觉麻麻的,那你读到的内存数据就是1,如果没有感觉的话,那就是0。当然OUT端可以接其他任何种类的控制电路,去控制电灯,冰箱,火箭……但是,我们只能发送两种信号:01

我们可以将多个这样的基本装置排列在一起,如下图所示,我们将8个这样的装置依次排列起来,为了简单,我们在图中只保留了两个按钮和输出端OUT,其中S代表“设一”按钮,而R代表“清零”按钮。

现在,我们就可以将八位信息保存进这个内存芯片了。比如,我们要将10110011保存进去,只要依次将是1的位对应的装置的S按钮按下就可以了。当CPUOUT端读取数据的时候,就能够读到10110011这个特殊的数字了,不过,它不是一千零一十一万零一十一。

我们可以把更多的基本装置组合在一起,构成更大容量的内存,比如,如果要制造1MB的内存,我们就需要大概八百万个基本装置,这是非常惊人的,好在真正的内存并不是用电磁铁制作的。但是,它的工作原理是类似的。


  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSDN IT狂飙上传的代码均可运行,功能ok的情况下才上传的,直接替换数据即可使用,小白也能轻松上手 【资源说明】 基于MATLAB实现的对格子Boltzmann方法中经典的D2Q9模型进行编程求解该程序模拟了单相流体在单通道中的流动情况,在流动通道中可以添加不渗透固体,从而用于模拟流体扰流的情况进一步可以增加不渗透固体的数量,达到模拟流体在多孔介质中的二维流动该程序适用于初学者对LBM方法编程求解的理解,经二次开发后可以用于油气勘探开发领域+使用说明文档 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2020b;若运行有误,根据提示GPT修改;若不会,私信博主(问题描述要详细); 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可后台私信博主; 4.1 期刊或参考文献复现 4.2 Matlab程序定制 4.3 科研合作 功率谱估计: 故障诊断分析: 雷达通信:雷达LFM、MIMO、成像、定位、干扰、检测、信号分析、脉冲压缩 滤波估计:SOC估计 目标定位:WSN定位、滤波跟踪、目标定位 生物电信号:肌电信号EMG、脑电信号EEG、心电信号ECG 通信系统:DOA估计、编码译码、变分模态分解、管道泄漏、滤波器、数字信号处理+传输+分析+去噪、数字信号调制、误码率、信号估计、DTMF、信号检测识别融合、LEACH协议、信号检测、水声通信 5、欢迎下载,沟通交流,互相学习,共同进步!
CSDN IT狂飙上传的代码均可运行,功能ok的情况下才上传的,直接替换数据即可使用,小白也能轻松上手 【资源说明】 基于MATLAB实现的单级倒立摆的 T-S 模型 包括 LMI 程序源码 ex6.m 模糊控制器S 函数ctrl ex6.m 被控对象S 函数plant+使用说明文档 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2020b;若运行有误,根据提示GPT修改;若不会,私信博主(问题描述要详细); 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可后台私信博主; 4.1 期刊或参考文献复现 4.2 Matlab程序定制 4.3 科研合作 功率谱估计: 故障诊断分析: 雷达通信:雷达LFM、MIMO、成像、定位、干扰、检测、信号分析、脉冲压缩 滤波估计:SOC估计 目标定位:WSN定位、滤波跟踪、目标定位 生物电信号:肌电信号EMG、脑电信号EEG、心电信号ECG 通信系统:DOA估计、编码译码、变分模态分解、管道泄漏、滤波器、数字信号处理+传输+分析+去噪、数字信号调制、误码率、信号估计、DTMF、信号检测识别融合、LEACH协议、信号检测、水声通信 5、欢迎下载,沟通交流,互相学习,共同进步!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值