当前位置: 首页 > news >正文

各类存储器类型(RAM、ROM、FLASH、DRAM、SRAM)

1 计算机存储类型构成

在计算机中,各类存储器构成了计算机能高速高效运转程序的基石。

计算机的存储体系中,从速度慢到速度快对应着容量大到小,也就是说,速度越快容量越小;容量越大的,速度越慢。两者互相关联但不互相制约。

  • 寄存器:寄存器作为计算机的读写最重要的单元,速度也自然是极快的。寄存器的容量非常小,一般只有8位~64位。这里的位指的是一个bit,一个字节有8个bit。我们计算机一般有说是多少位字长的,例如我的电脑是64位win10系统,那么这里的64位意义就是CPU寄存器有64位。
  • L1高速缓存:如SRAM。L1高速缓存是在芯片内的cache,它的速度飞快,比L2高速缓存快,跟寄存器差不多速度,所以它负责衔接L2和寄存器之间。它保存的是外部cache。
  • L2高速缓存:如SRAM、DRAM、DDRAM。L2高速缓存是芯片外的cache,它把数据丢给L1,才能通过L1丢给CPU寄存器。L2的数据来自于主存储器。
  • 主存储器:例如Flash、PROM、EPROM、EEPROM都属于主存储器。主存储器掉电不丢失,用于存储来自外部存储器的数据。
  • 外部存储器:如磁盘、SD卡、FT卡、CD等。
  • 远程二级存储:通过网络进行传输的远端存储器,例如分布式文件系统。

2 RAM和ROM

最重要的部分了,RAM就是随机存储器,它的全名叫做Random Access Memory。ROM是只读存储器,全名是Read Only Memory。

ROM和RAM虽然都是R开头,但是此“R”非彼“R”。RAM的R代表的是随机的意思,ROM的R代表的是读数据的意思。

总体来看,RAM是随机存储器,可以读可以写,能擦除数据,不过掉电就丢失数据了。这也导致为什么RAM一般都作为临时的高速缓存存储器使用,而不用于存储数据的原因。

ROM是只读存储器,它的特点是只可以读。什么叫只可以读,就是写、擦除这两个步骤都做不到。没错,ROM只能写入一次,之后便无法擦除无法修改,同时掉电肯定也就不会丢失。数据稳定固定。虽然说ROM无法修改,但有些从ROM变种的存储类型是可以擦除的,例如EEPROM。

RAM分类

RAM又可以分成SRAM和DRAM

  • SRAM:静态随机存储器,速度超快。所以一般都是缓存主要使用。
  • DRAM:动态随机存储器,速度比SRAM慢一点,一般电脑内存条就是使用DRAM。
ROM分类

可分为PROM、EPROM、EEPROM

  • PROM:可编程只读存储器(Programmable ROM)
  • EPROM:可抹除可编程只读存储器(Erasable Programmable ROM)
  • EEPROM:电子式可抹除可编程只读存储器(Electrically Erasable Programmable ROM)

3 Flash

Flash称为快闪存储器,简称闪存,因其擦除和写入速度比较快而得名。

Flash是EEPROM的变种,不同的是EEPROM能在字节水平上进行擦除重新,而Flash需要在块的水平上进行擦除。

NOR Flash:它带有SRAM接口,有足够的地址引脚来寻址,可以方便地存取其内部的每一个字节,因此可直接连接总线系统,构成内存储器
NAND Flash:它使用复杂的I/O口来串行地存取数据,采用串行接口,不能直接构成内存,只能用来构成外部存储器


两者的一些特点对比:

NOR的读速度比NAND稍快
NAND的写速度比NOR快很多
NAND的擦除速度也比NOR快很多
NAND的擦除单元更小
NOR上可直接运行程序,NAND只能存储信息



原文链接:https://blog.csdn.net/hbsyaaa/article/details/132031760

相关文章:

  • Kafka之ISR机制的理解
  • Java程序设计语言的特点
  • 【Quartus 13.0】NIOS II 部署UART 和 PWM
  • phpStudy里面的MySQL启动不了
  • 这些已经死去的软件,依旧无可替代
  • 深度学习 - CNN
  • 基于Wireshark实现对FTP的抓包分析
  • 多目标跟踪中检测器和跟踪器如何协同工作的
  • JavaScript------const
  • kali系统几个开机启动项的区别
  • 【网络编程】多进程服务器端
  • mybatis使用注解形式实现一对多、多对多查询(转载)
  • Unity 6预览版即将增加对visionOS 2的支持
  • 【向量检索】之向量数据库Milvus,Faiss详解及应用案例
  • 0-1 构建用户画像数仓
  • php的引用
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 11111111
  • ES6 学习笔记(一)let,const和解构赋值
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • isset在php5.6-和php7.0+的一些差异
  • JavaScript-Array类型
  • JavaScript实现分页效果
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • MySQL用户中的%到底包不包括localhost?
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • Travix是如何部署应用程序到Kubernetes上的
  • uni-app项目数字滚动
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • windows下使用nginx调试简介
  • 第2章 网络文档
  • 给github项目添加CI badge
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 算法之不定期更新(一)(2018-04-12)
  • 硬币翻转问题,区间操作
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (动态规划)5. 最长回文子串 java解决
  • (回溯) LeetCode 40. 组合总和II
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (十三)MipMap
  • (贪心 + 双指针) LeetCode 455. 分发饼干
  • (轉貼) UML中文FAQ (OO) (UML)
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .Net 6.0 Windows平台如何判断当前电脑是否联网
  • .net core webapi 大文件上传到wwwroot文件夹
  • .net web项目 调用webService
  • // an array of int
  • @autowired注解作用_Spring Boot进阶教程——注解大全(建议收藏!)
  • @staticmethod和@classmethod的作用与区别