学做网站论坛怎么样,wordpress多媒体上传,整站seo,wordpress采集发布接口存储系统的基础知识 微信打开的时候会有一个人站在地球上#xff0c;这个过程就是把程序从辅存转移到主存#xff0c;数据只有调入主存当中才可以被CPU访问
cache#xff1a;主存速度还是慢#xff0c;为了进一步缓解CPU和主存之间的速度矛盾
在微信打视频聊天的时候这个过程就是把程序从辅存转移到主存数据只有调入主存当中才可以被CPU访问
cache主存速度还是慢为了进一步缓解CPU和主存之间的速度矛盾
在微信打视频聊天的时候在这一段比较长的时间内可能会频繁地访问和打视频电话有关的代码和数据就可以把这部分数据放到cache当中
虚拟存储应用程序员可以看到的主存容量要比实际容量大得多的
其中主存和cache都可以和CPU直接数据交换
主存——辅存解决了主存容量不足的问题
主存——cache解决了主存和CPU的速度不匹配的问题 现在的辅存基本都采用的固态硬盘
m.2接口的SD读写速度可达4GB/s 各种存储器类型
光盘CD-ROM VCD DVD磁带》顺序存储
机械硬盘磁盘 磁带不支持随机访问当你读写某个存储单元当中的数据的时候显然是和这个存储单元所在的物理位置是有关的因此磁带只能顺序访问
随机访问指的是你随便指定一个地址它访问的速度是一样的
磁盘驱动器两种的结合体光盘貌似也是
其他三种是指定地址然后去访问该地址相联存储器是根据数据内容查找它的存储位置在哪 MAR反应的是存储字数MDR反应的是存储字长 主存储器的基本组成 MOS管电压达到一定条件成为导体否则不导电所以它是一个半导体元器件
电容下方接地当上面给了5V之后电荷移动给电容充电进而保存一个bit的电荷
电容带电荷表示的是一个二进制的1否则不带电就是0
mos管决定了电容的充/放电数据的写入/读出 一次读写都是以存储字为单位的
每个地址对应的是译码器的一条输出线一条输出线一次性读取/写入一整个存储字的内容
红色的线选通之后通过绿色的线把每一位的信息传送到MDR当中然后CPU通过数据总线从MDR当中取走一整个的数据
红色的线叫字选线绿色的叫数据线(位线)地址总线和数据总线都是连CPU的
控制电路检测当电信号稳定的时候才放入MAR或者取走MDR当中的数据 为了让译码器输出的电信号稳定可靠通常会在译码器的后面接一个驱动器来对电信号进行放大
读写电路红色、绿色的线控制电路
片选线有很多块小芯片应该选哪个使用呢 8×8位的芯片2^8个存储单元(8位地址)×每个存储单元的存储字长 按字节编址但是支持按字寻址 SRAM与DRAM的区别 只有行和列的选通线同时接通该存储单元才被选中
刷新一行先把对应行的MOS管置1让他接通然后进行读/写有硬件支持先读出一行的信息然后再重新写入 为了让DRAM的地址线更少地址线复用技术
地址线指的是传入译码器的当然DRAM内存里面还是(2^n)*(2^n)的布局以前是n/2位地址线同时传输行和列地址然后进行译码一共2^n根地址线现在是行地址译码器和列地址译码器共用n/2根地址线先翻译行再翻译列从而达到减少地址线的目的 DDR3 DDR4都是SDRAM芯片
重写需要消耗一定的时间使得CPU连续访问同一个内存的时间变长 只读存储器ROM 各种ROM都是支持随机访问的
因为需要先擦除再写入所以写比读要慢
固态硬盘flash闪存芯片控制单元组成 多体并行存储器 恢复时间你把电容里面的电荷都读走了不得再往里面重新写入电荷吗所以不得安排个恢复时间 双端口RAM双核的CPU通过RAM的两个端口来对内存进行并行的访问
总线设计(在电脑主板)就会更加复杂 CPU从存储单元当中读/写一个字实际只需要r的时间后面3r的时间由硬件自动处理剩下的3r的时间里CPU都是处于空闲的但是对于这个存储体却并不能进行操作
宏观上n-∞的时候采用低位交叉编址的内存CPU连续读写的时间接近r
低位交叉编址可以理解为四个内存条同时工作 当mT/r的时候有一个存储体就会偷懒所以设置mT/r就最好发挥最大的效率 双通道内存低位交叉的2体(多体)存储器
多体交叉存储器
不对称双通道更大的内存条那里无法低位交叉变址使得打游戏的时候性能不稳定所以需要两块主频、容量都相同的内存条插在颜色相同的卡槽上来组成双通道 主存与CPU的连接 多块存储芯片如何与CPU连接
1、增加主存的存储字长(位扩展)每个芯片地址线都连上数据线各引出一位
位扩展增加数据的位数 2、字扩展
字扩展增加存储单元的总数
存储芯片的字长已经有8位了所以不需要进行位扩展了数据总线的传输能力已经被使用到极致了但是CPU的寻址能力并没有被发挥到极致
线选法如果两块芯片的片选信号都置1的话两块芯片的数据都会从数据总线读出为了区分是哪块芯片可以让他们的片选线接CPU不同的地址引脚1代表第一块芯片0代表第2块芯片
如何避免11 00的情况译码器编码法 CPU的地址线和每个芯片都是相连的(A0-A12)
A13-A15片选线A0-A12地址线(每个芯片的地址线都要和CPU直接相连)但是整个字扩展的芯片对外暴露的地址引脚只有A0-A12(在芯片内部共接) 小结位扩展可以使存储字长更长从而更好地发挥数据总线的数据传输能力
字扩展可以增加存储器的存储字数可以更好地利用CPU的寻址能力(范围)
二者可以从不同维度扩展主存的总容量 每两块芯片为一组实现了位扩展(4位-8位) 3-8译码器的硬件组成
使能端类似于片选线使芯片激活
CPU确定收到稳定的数据信号之后才会撤销刚刚发出的地址信号 外存 格式化扇区A损坏了就用扇区B来顶替 固态硬盘 Cache的工作原理 局部性原理 命中率HCPU欲访问的信息已经在cache当中的比率
缺失(未命中)率M1-H Cache和主存的映射关系
解决的问题就是主存块应当放到cache的什么位置
最终的目的就是我给你一个物理地址怎样找到它在cache当中对应的位置
全相联映射、组相联映射、直接映射
组相联映射映射到特定的组之后就不管了(组内哪个空闲就把哪一块分配出去)
使用硬件实现cache块的标记用于记录存储的主存块号cache的有效位表示是否存储主存块号 根据主存地址的块号来匹配cache的标记位
有效位不能用标记为0来代表没有映射关系所以要加一位有效位
全相联映射
随意放到cache的任意位置 直接相联映射 什么是标记》标记就是主存的短号你标记匹配了主存块号也就匹配了
通过物理地址里面的行号直接找到cache对应的行然后只需要通过比较一次标记就可以访问对应的内容了 组相联映射
每2个cache块为一组总共8个cache块一共分成4组
2路组相联映射2块为一组一组有2块
组相联是组号直接映射是行号 Cache替换算法
颠簸现象刚换出的块又被换入 cache的总块数为2^n则只需要n位用于计数器即可
如果是组相连映射肯定是从组内淘汰一个cache块呀 LFU微信视频结束之后对应的块的计数器已经很大了在很长的时间内不会被淘汰
了解即可 cache的写策略CPU修改了cache当中的内容如何同步到主存当中
当cache行被淘汰的时候才会把修改后的整个cache行写回到主存减少了访存次数但是存在数据不一致的隐患(由于主存的数据没有及时和cache同步而导致主存《》磁盘交换错误的信息)
使用脏位来表示cache块的内容有没有被修改过没有修改的块就不需要写回了
回写 类似消息队列
直写 逻辑地址转换
程序员能看到的地址都是虚拟地址都是假的 快表和cache起作用的阶段也不一样快表TLB是在地址变换的过程中起到了加速的作用而cache是在最终得到物理地址并访问地址的时候起到了加速的作用 所有的程序只需要调用一部分数据就可以了
打游戏的时候loading比较慢需要将游戏地图等数据加载到内存当中 段表要添加一个段长度字段因为每个段的长度是不一样的。