小白的CTF学习之路4——内存
明天要进行二模考试了,沉住气,加油,能过
内存是学C路上必不可少的一环,一定要非常认真的去学
内存的物理结构:
- ROM:只读内存——早期的手机
- RAM:读写(数据断点既消)
- DRAM:经常更新
- SRAM:不常更新
以上内容了解便可
顾名思义,内存就是我们电脑存放数据的地方,那么他是怎么实现能够存放数据的呢?下面我们来一探究竟
内存同样是有许多集成电路(IC)组成的IC具体是怎么运作的呢?可以看下我下面放出的图片

emmmm,这是我画的一张非常简易的集成电路,大致就是我们电脑内存条的这个部分

看不出来?没关系,我们放大看

网图,大致就长这个鸟样,我们日后的C语言之路大部分都伴随着这么个东西,当然真正的内存条IC肯定是比这个的银角多出好几倍,那么现在我们就来解释一下我写的那些文字都是些什么意思吧
银角:就是IC中电流经过的部分,也是我们二进制值存储的部分

5V和0V分别代表1和0,有不了解的去看我前面有关二进制的博客
我们的内存IC上半部分银角一般由地址信号组成,地址信号是用来作为CPU寻址用的,比如你想把数据存储到10110内,那就从左到右依次把带1的过上电,这样就完成了我们的寻址操作
内存IC的下半部分一般是由控制,数据信号组成的,控制信号和数据信号用来作为数据读写而存在的
剩下的电源银角控制着内存IC的开关
好了,这是我们简单理解,接下来我画一个更复杂点的图

不要被我魔性的画风所迷惑,实际上依旧是非常简单的一个物理结构
首先我们来看A0~A9,前面我们说了,这一部分为地址信号,用来CPU做寻址用,我们这里简单画了10个银角,每个银角代表能储存一块空间,也就是说,我们这十个银角可以存储0000000000~1111111111=1024个地址,牛逼吧
D0~D7代表数据银角,8个数据银角代表一次可以输出8bit=1byte的数据
也就是说我们的这个芯片的容量=1024x1byte=1kb
才1kb,现在的内存条动辄1个G,所以说,地址银角代表着内存条的存储能力,地址银角越多,存储的数据就会越多,这些我在逻辑结构会讲到
了解了内存IC各部分之后,我们来还原一下内存IC的一次写入工作:
- 两边接入电压
- 通过CPU进行交互
- 列:00111000
- 在A0~A9寻找对应位置(从左至右)
- 再接入DATA信号
- 之后再WR处通电
- 下面写完数据存到上面对应位置
这就是内存IC的一次写入操作的基本流程
内存大小计算=寻址X1次写入的大小=总容量
未完待续....
小白的CTF学习之路4——内存的更多相关文章
- 小白的CTF学习之路7——内存与硬盘
前天去网吧跟朋友包宿,导致昨天一整天都报废,今天早上研究了一下nethunter导致手机成功变砖,感冒不停地咳嗽,这些理由应该足够我前两天拖更了吧,下面开始正题 磁盘学习路线 虚拟缓存 虚拟内存 节约 ...
- 小白的CTF学习之路5——内存的逻辑结构
很衰的一天,各种意料之外的问题,但都挡不住我每日一更的步伐 内存的逻辑结构大致分为以下几种: 数组 栈与队列 链表 二叉树 以上,数组,栈,链表是我这章要说明的 在学习前需要了解的两个问题: 1.内存 ...
- 小白的CTF学习之路2——二进制数据基础与运算(上)
今天的第二更,被我拖到了傍晚,嘿嘿,二进制这方面让本就数学不好的我很头疼,所以研究了一段时间 在学习之前我们先了解几个问题: 32位是几个字节? 01011100对于十进制是多少? 00001111向 ...
- 小白的CTF学习之路8——节约内存的编程方式
今天第二更,废话不说上干货 上一章我们学习了内存和cpu间的互动方式,了解到内存的空间非常有限,所以这样就需要我们在编程的时候尽可能的节省内存空间,用最少的空间发挥最大的效果,以下是几种节约内存的方法 ...
- 小白的CTF学习之路1——程序与CPU
刚刚注册了这个博客园,尽量保持每日一更(*/ω\*) 今天看了po学院的教学视频,了解了程序是什么,如何在CPU当中工作的等各种之前未曾想过的问题,特此记录,以防忘记 首先我们学习程序与CPU之前需要 ...
- 小白的CTF学习之路6——阶段测评
刚才考了自己一次,下面我把题和答案放到下面 CPU中不含有以下选项中的 C A: 运算器 B: 寄存器 C: 内存 D: 时钟 这是一道送分题,CPU包含以下几种原 ...
- 小白的CTF学习之路3——二进制数据基础与运算(下)
处理了二进制的整数运算,下面我们来进行令人绝望的浮点数运算 我们先来看一下float事列程序: #include<"stdio.sh"> int main() { fl ...
- 新手小白的Linux学习之路
大家好,我是一个零基础的新手小白,在此和大家分享一下新手小白的学习之路.欢迎各位大神指教!谢谢 Linux简介: Linux操作系统诞生于1991年10月,由芬兰赫尔辛基大学的在校生Linus Tor ...
- 小白的mapbox学习之路-显示地图
刚接触mapbox,只是简单记下自己的学习之路,如有错误,欢迎大神指正 1-头部引入链接 2-body中定义一个div块,用来显示地图 3-在script中创建一个map对象,并设置相关参数 mapb ...
随机推荐
- 基于MPI的大规模矩阵乘法问题
转载请注明出处. /* Function:C++实现并行矩阵乘法; Time: 19/03/25; Writer:ZhiHong Cc; */ 运行方法:切到工程文件x64\Debug文件下,打开命令 ...
- JavaScript:我总结的数组API
栈/队列 数组es3: pop删除最后一项(栈) shift删除第一项(队列) push增加到最后(栈) unshift增加到最前(队列) reverse翻转 join转字符串 slice截取(切片) ...
- TIMESTAMP类型字段在SQL Server和MySQL中的含义和使用
公众号上转的满天飞的一篇文章,MySQL优化相关的,无意中瞄到一句“尽量使用TIMESTAMP而非DATETIME”,之前对TIMESTAMP也不太熟悉,很少使用,于是查了一下两者的区别. 其实,不管 ...
- docker容器跑redis
命令行配置: $ docker search redis $ docker pull docker.io/redis $ mkdir -p /redis/etc/conf /redis/lib /r ...
- python_1_基础知识
数据类型: 整数 浮点数 字符串 布尔值:True/False 空值:None 变量 常量 int(整型):在Python3里不再有long类型了,全都是int -2**63-2**63-1即-922 ...
- [剑指Offer]60-n个骰子的点数
题意 输入骰子个数n,打印出所有骰子朝上的点的点数之和,及对应的概率. 题解 循环. n个骰子,点数之和在n~6n范围内.计算n个骰子扔出和为m的情况数,等于n-1个骰子扔出m-1,m-2...m-6 ...
- 【redis 学习系列】API的理解与使用(一)
Redis提供了5种数据结构,以下介绍一些预备知识以及Redis的5种数据结构 1.预备知识 1.1 全局命令 Redis的5种数据结构,它们是键值对中的值,对于键来说有一些通用的命令. (1)查看所 ...
- 毕设之iframe跳转子页面问题
我的Django项目中的index.html分为三个层次,head.body.footer.其中body细分为left和right两部分,right的地图是使用iframe嵌入的map.html页面, ...
- 关于.idea未上传导致不能显示项目文件结构的问题
方法一: 关闭IDEA, 然后删除项目文件夹下的.idea文件夹 重新用IDEA工具打开项目 方法二: 菜单:File -> Invalidate Caches / Restart 方法三: 配 ...
- java注解小随笔
注解分类 编码期间:SOURCE 编译期间:CLASS 运行期间:RUNTIME 自定义注解 //CLASS/RUNTIME/SOURCE 生效时机 @Retention(RetentionPolic ...