0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于内存的基本知识

jf_78858299 来源:硬件底裤 作者:酸奶盖子 2023-02-17 15:39 次阅读

1、内存电路结构

首先,从电路结构上看来,内存分为DRAM和SRAM,DRAM由线阵列MOS管和电容组成,其组合方式如下图:

图片

当需要存储信息时,给G极高电平,MOS管导通,若S极是高电平,电容充电,此时便存储1;若S极是低电平,电容放电,此时便存储0;

当需要读取信息时,给G极高电平,三极管导通,在D极处集成放大器电路就能判断电容存储电荷状态,进而翻译为0/1数据。

电路分析这门课中我们知道,在该电路中电容漏电流恒大于零,所以为了保持信息不会丢失,电路需要不停刷新给电容充电,加之电容充电时间共同造成了DRAM反应速度滞后。

SRAM正好可以弥补DRAM缺点,同样的先从其电路结构入手。

图片

从上图注意到,一个SRAM单元由一个RS触发器,一对与门连接触发器R端和S端。

RS触发器当R=0,S=1,则Q=1;当R=1,S=0,则Q=0。

RS触发器后面紧接两个与门,且其中一个管脚相连并引出,此为保持位线;其他两个管脚一个连接非门接输入,另一个直接接输入,它们的输出分别连接到RS触发器R口和S口,此时输入称为数据线。

此时若储存数据则保持位置1,数据线置1/0,此时Q=1/0,写入结束后将保持位置0;数据便被锁存到电路中。

由于SRAM没有DRAM的电容结构,数据写入擦除都能瞬间完成;同时也可以看到SRAM的电路元件比DRAM多,成本也必然比DRAM高,这就是SRAM并没有以内存条商品形式流通市场的原因;SRAM主要应用于CPU L1与L2缓存中。得益于DRAM/SRAM简单的电路结构,使得内存条十分耐用,它的寿命只取决于内存条的MCU,一些对自己MCU自信的厂商甚至于终身保修内存条。

2、内存的作用及使用

在学习微机原理时我们知道,CPU每执行一个操作都需要数据和指令的加入,数据指令在电脑中以二进制形式存在并存储在内存中,当CPU处理时就会发送请求指令给内存MCU,MCU将内存芯片中数据读取出来通过总线发送到CPU,如下图。

图片

为访问内存,CPU需要向MCU提供一个内存地址,还要说明是读还是写操作,根据CPU需求还要满足数据字长要求(字节Bit,字word,双字dword,四字qword),MCU将根据CPU对数据要求进行操作。

图片

3、栈与堆

** 栈**(stack)就是程序在内存中开辟出来的一片,供程序自己使用的连续内存空间,其特点是连续,固定且私有。

可以将栈比喻为弹匣,数据比喻为子弹,数据入栈如同往弹匣压子弹,于是用PUSH形容压栈动作;出栈如同发生子弹,用POP形容出栈动作。

枪战游戏中我们需要知道弹匣里面还有多少子弹,工程师也需要了解栈的使用情况,所以,在栈中有两个指针,一个叫栈指针用ESP表示;另一个叫栈底用EBP指针表示。

如果栈指针值等于栈底值,栈为空;栈指针值大于栈底值栈中有数据。

图片

数据多少可以通过:(ESP-EBP)/字长获知,字长取值通常有4位、8位、16位和32位,64位。

栈数据遵从先进后出原则,如压子弹一样,弹匣满的情况下第一发子弹肯定是最后装进去的。

栈有大小,当栈指针值等于栈顶值时栈满,若继续往栈中填充数据便会产生溢出(Overflow),栈溢出会产生意料之外的错误,在后续的编写操作系统能有更加深刻的体会,而现在脑中保留着栈不能溢出即可。

如同其名,就是存放数据的形式,形象的比喻就是空地上的沙堆,沙堆所有人都可以上去踩两脚,甚至拿一捧回去也没有关系。

同样的,堆是公用的数据存放空间,任何程序都可以存取数据,堆大小根据使用要求动态变化,使用完成后一般由系统回收。

堆栈两种数据结构在汇编学习过程中相当重要,作为开发者要时刻牢记堆栈的使用情况,并在合适时对堆栈回收,合理的利用堆栈有利于程序的简洁与高效。

在以后汇编学习中我们必然会直接面对内存获得最大自由度,以往使用的JAVAPython由于对函数进行了多次封装,虽然说提高了代码的易读性,但同时不可否认牺牲程序的运行的效率。

学习汇编语言必须要牢记,尽可能使用合适的算法完成需求,既最小必要原理。日后写操作系统时我们也会发现,在执行的高效性和可读性中选择时,必然是高效性更加重要。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • DRAM
    +关注

    关注

    40

    文章

    2303

    浏览量

    183288
  • MOS管
    +关注

    关注

    108

    文章

    2392

    浏览量

    66557
  • sram
    +关注

    关注

    6

    文章

    763

    浏览量

    114629
  • 内存
    +关注

    关注

    8

    文章

    2996

    浏览量

    73870
收藏 人收藏

    评论

    相关推荐

    关于电源的基本知识

    关于电源的基本知识
    发表于 05-29 16:18

    关于ARM的基本知识

    本帖最后由 eehome 于 2013-1-5 09:52 编辑 关于ARM的基本知识
    发表于 05-30 08:52

    电工基本知识

    电工基本知识
    发表于 09-21 16:34 0次下载
    电工<b class='flag-5'>基本知识</b>

    LDO基本知识

    LDO基本知识
    发表于 02-09 10:26 103次下载
    LDO<b class='flag-5'>基本知识</b>

    功率MOSFET的基本知识

    功率MOSFET的基本知识
    发表于 04-16 23:34 2333次阅读
    功率MOSFET的<b class='flag-5'>基本知识</b>

    继电器基本知识

    继电器基本知识
    发表于 06-30 19:28 1827次阅读

    网络基本知识教程

    网络基本知识教程
    发表于 01-13 12:55 1570次阅读

    线性代数相关的基本知识

    线性代数包含了关于矩阵的所有相关的基本知识,可以快速学习,适合自学。
    发表于 12-22 17:58 0次下载

    滤波器基本知识

    教学用ppt介绍关于滤波器的基本知识以及常用滤波器!
    发表于 12-31 10:54 0次下载

    安全用电基本知识

    安全用电基本知识安全用电基本知识安全用电基本知识
    发表于 01-14 15:54 0次下载

    光纤基本知识

    光纤基本知识
    发表于 12-15 22:26 0次下载

    温度测量之基本知识详解

    本文主要介绍了关于温度测量的一些基本知识详细。
    发表于 06-21 09:00 4次下载
    温度测量之<b class='flag-5'>基本知识</b>详解

    CPLD/FPGA的基本知识

    CPLD/FPGA的基本知识讲解。
    发表于 03-30 09:55 31次下载
    CPLD/FPGA的<b class='flag-5'>基本知识</b>

    电气基本知识科普

    电气基本知识科普
    的头像 发表于 09-09 10:23 6046次阅读
    电气<b class='flag-5'>基本知识</b>科普

    堆栈和内存基本知识

    本文主要聊聊关于堆栈的内容。包括堆栈和内存基本知识。常见和堆栈相关的 bug,如栈溢出,内存泄漏,堆内存分配失败等。后面介绍软件中堆栈统计
    的头像 发表于 08-29 14:10 380次阅读
    堆栈和<b class='flag-5'>内存</b>的<b class='flag-5'>基本知识</b>