典型的soc存储体系包括处理器内部的寄存器、高速缓存(cache)、片内rom、片外主存。其中,内部寄存器通常由十几个到几十个构成,用于缓存程序运行时频繁使用的数据(局部变量、函数参数等)。
cache是提升处理器性能的关键部件,以块为单位,通过fifo或lru替换算法,对指令或数据进行缓存,降低处理器与片外存储的交换频率。cache一般可分为1级、2级、3级cache。对于多核处理器而言,1级cache为每个核独享,2、3级cache为多核共享,容量逐级递增,速度逐级递减。
片内rom作为只读存储器,通常用来存放soc系统的启动程序,然后从外存中读取系统系统程序和应用程序,送到主存。
片外主存用于存放当前正在运行的系统程序、应用程序、数据及堆栈等关键信息。通常采用易失存储器,如sdram、ddr2、ddr3等,系统掉电后信息丢失。flash为soc的主要外存,可分为nor flash和nand flash。nor flash具有字节寻址能力,通常用来存放系统引导启动程序,可实现soc的片外启动。nand flash为块设备,存储容量大,非易失,用来存放系统程序,如操作系统等。
由典型的soc存储体系包括处理器内部的寄存器、高速缓存(cache)、片内rom、片外主存。其中,内部寄存器通常由十几个到几十个构成,用于缓存程序运行时频繁使用的数据(局部变量、函数参数等)。
cache是提升处理器性能的关键部件,以块为单位,通过fifo或lru替换算法,对指令或数据进行缓存,降低处理器与片外存储的交换频率。cache一般可分为1级、2级、3级cache。对于多核处理器而言,1级cache为每个核独享,2、3级cache为多核共享,容量逐级递增,速度逐级递减。
片内rom作为只读存储器,通常用来存放soc系统的启动程序,然后从外存中读取系统系统程序和应用程序,送到主存。
片外主存用于存放当前正在运行的系统程序、应用程序、数据及堆栈等关键信息。通常采用易失存储器,如sdram、ddr2、ddr3等,系统掉电后信息丢失。flash为soc的主要外存,可分为nor flash和nand flash。nor flash具有字节寻址能力,通常用来存放系统引导启动程序,可实现soc的片外启动。nand flash为块设备,存储容量大,非易失,用来存放系统程序,如操作系统等。
由soc存储体系中的歌存储器的特性,构成分层存储结构,如图所示,从内部寄存器到外部存储器,访问速度越来越慢,存储容量越来越大,成本越来越低,且上一层的存储内容是下一层的子集。采用分层存储设计可以在性能、容量和成本之间寻找平衡点。
01存储器分类
1、按照访问方式分类
随机存储器(ram,random access memory) ,访问顺序与存储位置无关,比如主存、cache等。顺序存储器(sam,sequential access memory) ,信息按照顺序存放和读取,容量大,速度慢。内容可寻址寄存器(cam,content addressable memory) ,不是通过地址访问,而是按内容检索到存储位置进行读写。2、按信息是否可更改分类
ram,断电后数据丢失,数据可写入更改rom,断电后数据不会丢失,信息一旦写入就不能更改3、按断电后信息的可保存性分类
非易失性存储器(nvm,non-volatile memory),断电后不会丢失数据,如rom、闪存flash、光盘等。易失性存储器(volatile memory),断电后会丢失数据,比如主存、cache。(关于ram和rom的细分,附上笔者整理的笔记,字丑勿怪)
02常用的存储器
1、静态随机存储器(sram)
sram不需要刷新顶啊路就能保持内部存储数据的状态,所以sram的访问速度非常快,可达到和处理器的时钟同步。但由于sram存储每一位都需要用到6个晶体管,因此功耗较高、面积较大,成本自然就很高。因此sram常常被用作cache这种对速度要求很高,但对存储容量要求不高的存储器。
2、动态随机存储器(dram)
dram相比于sram,结构更加简单,因此存储密度更高、体积更小、容量更大、价格更低,可用于存储大规模的程序和数据。但是需要定期对电容进行充电以使其保持原值不变,这一过程称为刷新。在刷新过程中,所有工作指令只能等待而无法执行,因此dram的性能要远低于sram。
dram的种类很多,如sdram、ddr、ddr2、ddr3等,但均以sdram(synchronous dynamic ram)为基本架构。ddr在时钟的上升沿和下降沿均采样数据,进而实现double data rate,最大带宽是sdram的两倍。ddr2和ddr3分别拥有4bit、8bit数据预取能力,因此速度也比前代成倍提升。
3、闪存flash
闪存flash是一种非易失性存储器,是eeprom的变种,但成本要远低于eeprom。nor flash 和 nand flash是市场上两种主流的flash存储器。
nor flash可以芯片内执行,采用随机访问,与sram相似,应用程序可以直接在flash内运行而不必把代码再读取到系统主存中。多用于存放系统启动程序。
nand flash的访问是以块为单位进行的,不能直接运行存储在里面的代码,更适用于存储大规模数据,如u盘、固态硬盘等。
SK海力士已经开发出了4个新的CMOS图像传感器
基于智慧校园系统设计和建设过程
山东首个基于端到端5G网络的专业无人机测试飞行
对于VR安全体验馆,它的优点和特性是什么
物联网时代会有哪一些新的挑战和机遇
存储器的分类有哪些 常用的存储器有哪些
麻省理工学院正在研究将RFID标签用于物联网的光敏传感器
美国海军将在未来30年内投入巨资来购买下一代战斗机和攻击机
孤岛箱是什么 孤岛运行和并网运行区别大吗
人工智能走到瓶颈期,人工智能技术已经被滥用
关于多晶硅生产工艺流程的简单介绍
多线路板设计中的接地连接和高速信号
Q1季度全球笔记本电脑出货量仅下滑2%,Q2季度将面临更大挑战
Microchip CEO博文《AI将如何重新定义数据中心?》
Blaize发布人工智能硬/软件产品,旨在克服AI应用程序未满足的要求
陶瓷天线是什么?陶瓷天线概述
2020年5G终端的发展情况预测分析
红外检测系统助力实现压铸工艺流程的优化
罗德与施瓦茨推出新款高性能通用阻抗测试仪
智能语音机器人有哪些类型,发展前景怎么样