明天要进行二模考试了,沉住气,加油,能过

内存是学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——内存的更多相关文章

  1. 小白的CTF学习之路7——内存与硬盘

    前天去网吧跟朋友包宿,导致昨天一整天都报废,今天早上研究了一下nethunter导致手机成功变砖,感冒不停地咳嗽,这些理由应该足够我前两天拖更了吧,下面开始正题 磁盘学习路线 虚拟缓存 虚拟内存 节约 ...

  2. 小白的CTF学习之路5——内存的逻辑结构

    很衰的一天,各种意料之外的问题,但都挡不住我每日一更的步伐 内存的逻辑结构大致分为以下几种: 数组 栈与队列 链表 二叉树 以上,数组,栈,链表是我这章要说明的 在学习前需要了解的两个问题: 1.内存 ...

  3. 小白的CTF学习之路2——二进制数据基础与运算(上)

    今天的第二更,被我拖到了傍晚,嘿嘿,二进制这方面让本就数学不好的我很头疼,所以研究了一段时间 在学习之前我们先了解几个问题: 32位是几个字节? 01011100对于十进制是多少? 00001111向 ...

  4. 小白的CTF学习之路8——节约内存的编程方式

    今天第二更,废话不说上干货 上一章我们学习了内存和cpu间的互动方式,了解到内存的空间非常有限,所以这样就需要我们在编程的时候尽可能的节省内存空间,用最少的空间发挥最大的效果,以下是几种节约内存的方法 ...

  5. 小白的CTF学习之路1——程序与CPU

    刚刚注册了这个博客园,尽量保持每日一更(*/ω\*) 今天看了po学院的教学视频,了解了程序是什么,如何在CPU当中工作的等各种之前未曾想过的问题,特此记录,以防忘记 首先我们学习程序与CPU之前需要 ...

  6. 小白的CTF学习之路6——阶段测评

    刚才考了自己一次,下面我把题和答案放到下面 CPU中不含有以下选项中的  C A:     运算器 B:      寄存器 C:     内存 D:     时钟 这是一道送分题,CPU包含以下几种原 ...

  7. 小白的CTF学习之路3——二进制数据基础与运算(下)

    处理了二进制的整数运算,下面我们来进行令人绝望的浮点数运算 我们先来看一下float事列程序: #include<"stdio.sh"> int main() { fl ...

  8. 新手小白的Linux学习之路

    大家好,我是一个零基础的新手小白,在此和大家分享一下新手小白的学习之路.欢迎各位大神指教!谢谢 Linux简介: Linux操作系统诞生于1991年10月,由芬兰赫尔辛基大学的在校生Linus Tor ...

  9. 小白的mapbox学习之路-显示地图

    刚接触mapbox,只是简单记下自己的学习之路,如有错误,欢迎大神指正 1-头部引入链接 2-body中定义一个div块,用来显示地图 3-在script中创建一个map对象,并设置相关参数 mapb ...

随机推荐

  1. Linux命令:内建命令

    本文对内建命令进行归类,便于学习和记忆. 分类 内建命令 同义词 功能相反命令 定义&声明类 alias   unalias declare typeset   local     reado ...

  2. U3D学习资料收集

    1,风宇冲的博客 2,gkEngine 3,@浅墨_毛星云 4,聊聊引擎底层如何实现BRDF渲染算法

  3. java 将mysql中Blob类型转为字符串或数字

    引入Blob类型貌似不行,不知道是版本问题还是java中的Blob类型为oracle,后来使用byte[]转换成功. public float byte2float(byte[] b) { if(b! ...

  4. shardingsphere多数据源(springboot + mybatis+shardingsphere+druid)

    org.springframeword.boot:spring-boot-starer-web: 2.0.4release io.shardingsphere:sharding-jdbc-spring ...

  5. unittest框架(惨不忍睹低配版)

    根据我上个随笔的unittest框架优化得来,虽然对于smtp模块还是有点迷糊,不过还是勉强搭建运行成功了,还是先上代码: #login_test.py import requests class L ...

  6. Win10 for Docker 安装 K8S

    win 10 docker安装K8S中遇见的一些问题,记录下来方便自己以后避免采坑. 安装步骤: 1.安装Docker for windows.在docker官方下载,然后傻瓜式安装. 安装成功以后再 ...

  7. pyparsing自定义解析规则

    1.Word(token) 用于匹配由允许的字符集组成的单词,常见的错误是使用特定字符串Word("expr")匹配"expr" - L {alphas}  字 ...

  8. yii2-redis 扩展详解

    安装yii2-redis composer require yiisoft/yii2-redis 修改config/web.php 的  components 配置 'cache' => [ / ...

  9. BigDecimal 类型转换、运算、比较

    序:Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算.双精度浮点型变量double可以处理16位有效数.在实际应用中,需要对更大或者更小的数 ...

  10. docker 容器 详解

    docker run  ## 创建一个新容器 [root@localhost ~]# docker run --help Usage: docker run [OPTIONS] IMAGE [COMM ...