小白的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 ...
随机推荐
- Linux命令:内建命令
本文对内建命令进行归类,便于学习和记忆. 分类 内建命令 同义词 功能相反命令 定义&声明类 alias unalias declare typeset local reado ...
- U3D学习资料收集
1,风宇冲的博客 2,gkEngine 3,@浅墨_毛星云 4,聊聊引擎底层如何实现BRDF渲染算法
- java 将mysql中Blob类型转为字符串或数字
引入Blob类型貌似不行,不知道是版本问题还是java中的Blob类型为oracle,后来使用byte[]转换成功. public float byte2float(byte[] b) { if(b! ...
- shardingsphere多数据源(springboot + mybatis+shardingsphere+druid)
org.springframeword.boot:spring-boot-starer-web: 2.0.4release io.shardingsphere:sharding-jdbc-spring ...
- unittest框架(惨不忍睹低配版)
根据我上个随笔的unittest框架优化得来,虽然对于smtp模块还是有点迷糊,不过还是勉强搭建运行成功了,还是先上代码: #login_test.py import requests class L ...
- Win10 for Docker 安装 K8S
win 10 docker安装K8S中遇见的一些问题,记录下来方便自己以后避免采坑. 安装步骤: 1.安装Docker for windows.在docker官方下载,然后傻瓜式安装. 安装成功以后再 ...
- pyparsing自定义解析规则
1.Word(token) 用于匹配由允许的字符集组成的单词,常见的错误是使用特定字符串Word("expr")匹配"expr" - L {alphas} 字 ...
- yii2-redis 扩展详解
安装yii2-redis composer require yiisoft/yii2-redis 修改config/web.php 的 components 配置 'cache' => [ / ...
- BigDecimal 类型转换、运算、比较
序:Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算.双精度浮点型变量double可以处理16位有效数.在实际应用中,需要对更大或者更小的数 ...
- docker 容器 详解
docker run ## 创建一个新容器 [root@localhost ~]# docker run --help Usage: docker run [OPTIONS] IMAGE [COMM ...