静态随机存储器(SRAM)

目录

介绍

基本的 SRAM 存储单元阵列

1. SRAM 存储单元

2. SRAM 阵列

3. SRAM 阵列的读写操作

4. SRAM 阵列的扩展

5. SRAM 阵列的应用

6. SRAM 阵列的优缺点

基本的 SRAM 逻辑结构

1. 存储单元

2. 存储单元阵列

3. 译码器

4. 读写电路

5. 控制逻辑

6. SRAM 逻辑结构的优点

7. SRAM 逻辑结构的缺点

SRAM 读/写时序

1. 读操作

2. 写操作

3. 时序图

4. 关键信号

存储器容量的扩展

结论


介绍

        静态随机存储器(SRAM)是一种广泛用于计算机系统和嵌入式设备中的高速随机访问存储器。与动态随机存储器(DRAM)不同,SRAM 不需要定期刷新,因此可以实现更快的访问时间和更低的功耗。 SRAM通常用于缓存、高速缓冲器和存储器应用程序中,其中性能和可靠性至关重要。

基本的 SRAM 存储单元阵列

        静态随机存储器(SRAM)是计算机系统和嵌入式设备中常用的快速随机存取存储器。它由基本 SRAM 存储单元组成,这些单元被组织成矩阵或阵列。

1. SRAM 存储单元

每个 SRAM 存储单元由六个晶体管组成,通常被配置为跨耦合反相器。这种设计允许存储单元存储一个二进制位,0 或 1。

        在 SRAM 存储单元中,两个晶体管 M1 和 M2 形成一个反相器,用于存储数据。M3 和 M4 形成另一个反相器,用于保持存储状态。M5 和 M6 用于控制对存储单元的访问。

        当 M5 导通且 M6 截止时,数据可以通过 M1 和 M2 传输到存储单元。当 M6 导通且 M5 截止时,存储单元的状态被保持。

2. SRAM 阵列

        SRAM 阵列由行和列组成,每个存储单元由一个唯一地址指定。行和列由解码器地址,允许对特定存储单元进行访问。SRAM 阵列通常具有多个字节或字的宽度,允许并行存储和检索多个位。

        例如,一个 8x8 SRAM 阵列由 64 个存储单元组成,每个存储单元存储一个比特。该阵列有 8 行和 8 列,每个存储单元由一个 3 位地址(行地址和列地址)指定。 

3. SRAM 阵列的读写操作

SRAM 阵列的读写操作由控制逻辑控制。

读取操作:

  1. 地址信号被送到译码器,选择要读取的存储单元。
  2. 存储单元的状态通过读取放大器被放大并输出到数据线上。

写入操作:

  1. 地址信号被送到译码器,选择要写入的存储单元。
  2. 数据信号被加载到存储单元上。
  3. 写放大器将数据写入到存储单元中。

4. SRAM 阵列的扩展

SRAM 阵列的内存容量可以通过增加存储单元的数量或增加存储单元阵列的层数来扩展。

  • 增加存储单元数量: 这可以通过缩小存储单元的尺寸或使用更先进的制造工艺来实现。
  • 增加存储单元阵列的层数: 这可以通过将多个存储单元阵列堆叠在一起来实现。

5. SRAM 阵列的应用

SRAM 阵列广泛应用于计算机系统和嵌入式设备中,例如:

  • 缓存: 缓存用于存储最近访问的数据,以便处理器可以更快地访问它们。
  • 高速缓冲器: 高速缓冲器用于在不同速度的设备之间缓冲数据。
  • 存储器: SRAM 用于存储需要快速访问的数据,例如操作系统、应用程序和数据文件。

6. SRAM 阵列的优缺点

SRAM 阵列的优点包括:

  • 速度快: SRAM 阵列具有比 DRAM 更快的访问速度。
  • 功耗低: SRAM 阵列在空闲状态下不需要刷新,因此功耗更低。
  • 耐用性强: SRAM 阵列不容易受到辐射和其他环境因素的影响。

SRAM 阵列的缺点包括:

  • 成本高: SRAM 阵列的成本比 DRAM 更高。
  • 密度低: SRAM 阵列的存储密度比 DRAM 低。
  • 易失性: SRAM 阵列在断电后会丢失数据。

基本的 SRAM 逻辑结构

静态随机存储器(SRAM)的基本逻辑结构由存储单元阵列、译码器、读写电路和控制逻辑组成。

1. 存储单元

        SRAM 的存储单元是其核心部件,由六个晶体管组成,通常被配置为跨耦合反相器。这种设计允许存储单元存储一个二进制位,0 或 1。

        在 SRAM 存储单元中,两个晶体管 M1 和 M2 形成一个反相器,用于存储数据。M3 和 M4 形成另一个反相器,用于保持存储状态。M5 和 M6 用于控制对存储单元的访问。

 

        当 M5 导通且 M6 截止时,数据可以通过 M1 和 M2 传输到存储单元。当 M6 导通且 M5 截止时,存储单元的状态被保持。

2. 存储单元阵列

        SRAM 存储单元阵列由行和列组成,每个存储单元由一个唯一地址指定。行和列由解码器地址,允许对特定存储单元进行访问。SRAM 阵列通常具有多个字节或字的宽度,允许并行存储和检索多个位。

        例如,一个 8x8 SRAM 阵列由 64 个存储单元组成,每个存储单元存储一个比特。该阵列有 8 行和 8 列,每个存储单元由一个 3 位地址(行地址和列地址)指定。

3. 译码器

        译码器负责根据地址信号找到要访问的存储单元。它接收地址信号,并生成相应的行选择信号和列选择信号。这些信号用于控制存储单元阵列中相应存储单元的访问晶体管。

4. 读写电路

        读写电路负责执行读取和写入操作。

读取操作:

  1. 地址信号被送到译码器,选择要读取的存储单元。
  2. 存储单元的状态通过读取放大器被放大并输出到数据线上。

写入操作:

  1. 地址信号被送到译码器,选择要写入的存储单元。
  2. 数据信号被加载到存储单元上。
  3. 写放大器将数据写入到存储单元中。

5. 控制逻辑

        控制逻辑负责控制译码器、读写电路和其他组件的运行。它接收来自外部的控制信号,并根据这些信号生成相应的控制信号。

6. SRAM 逻辑结构的优点

SRAM 的基本逻辑结构具有以下优点:

  • 速度快: SRAM 的存储单元可以直接访问,因此具有比 DRAM 更快的访问速度。
  • 功耗低: SRAM 在空闲状态下不需要刷新,因此功耗更低。
  • 耐用性强: SRAM 不容易受到辐射和其他环境因素的影响。

7. SRAM 逻辑结构的缺点

SRAM 的基本逻辑结构也存在一些缺点:

  • 成本高: SRAM 的制造工艺比 DRAM 复杂,因此成本更高。
  • 密度低: SRAM 的存储单元体积较大,因此存储密度比 DRAM 低。
  • 易失性: SRAM 在断电后会丢失数据。

 

SRAM 读/写时序

        SRAM 的读写操作是通过控制字线 (WL) 和位线 (BL) 的电平变化来实现的。

1. 读操作

在读操作期间,以下步骤发生:

  1. 选择存储单元: 地址信号被送到译码器,选择要读取的存储单元。
  2. 激活存储单元: 字线 (WL) 被拉高电平,选择要读取的存储单元的行。这将打开该行的访问晶体管,使存储单元连接到位线 (BL)。
  3. 读取数据: 存储单元中的数据通过跨耦合反相器被放大并输出到位线 (BL)。
  4. 感知数据: 感知放大器检测位线 (BL) 上的数据电平,并将其转换为逻辑电平。
  5. 输出数据: 感知放大器的输出被送到数据线上,作为读操作的结果。
  6. 取消选择存储单元: 字线 (WL) 被拉低电平,断开存储单元与位线 (BL) 的连接。

2. 写操作

在写操作期间,以下步骤发生:

  1. 选择存储单元: 地址信号被送到译码器,选择要写入的存储单元。
  2. 激活存储单元: 字线 (WL) 被拉高电平,选择要写入的存储单元的行。这将打开该行的访问晶体管,使存储单元连接到位线 (BL)。
  3. 设置位线电平: 位线 (BL) 被设置为要写入的数据的电平(高电平表示 1,低电平表示 0)。
  4. 写入数据: 写驱动器向位线 (BL) 施加电压,以覆盖存储单元中当前存储的数据。
  5. 更新存储单元: 跨耦合反相器根据位线 (BL) 上的电压更新其输出,从而将新数据写入存储单元。
  6. 取消选择存储单元: 字线 (WL) 被拉低电平,断开存储单元与位线 (BL) 的连接。

3. 时序图

        上图显示了 SRAM 读写操作的时序图。在读操作中,字线 (WL) 在数据输出之前上升,然后下降。在写操作中,字线 (WL) 在数据写入之前上升,然后下降。位线 (BL) 在数据传输期间保持稳定。 

4. 关键信号

  • 字线 (WL): 用于选择要访问的存储单元的行。
  • 位线 (BL): 用于传输数据到或从存储单元。
  • 数据线: 用于传输读写操作的数据。
  • 地址信号: 用于指定要访问的存储单元的地址。
  • 读写控制信号: 用于控制读写操作的启动和停止。

存储器容量的扩展

        SRAM 的内存容量可以通过多种方式扩展。一种常见的方法是使用分页架构。在这种架构中,SRAM 阵列被分为多个页面,每个页面都有自己的地址解码器和控制逻辑。这允许对多个页面进行并行访问,从而增加内存带宽并提高性能。

        另一种扩展内存容量的方法是堆叠 SRAM 芯片。通过堆叠多个 SRAM 芯片并使用通过硅通孔(TSV)互连,可以实现更大的内存容量。这种 3D 堆叠技术允许在有限的物理空间内实现更高的内存密度。

        此外,可以通过使用多个 SRAM 阵列并行操作来扩展内存容量。这种方法通常用于高速缓存应用程序,其中多个阵列可以同时访问,从而实现更高的吞吐量。

结论

        静态随机存储器(SRAM)是一种可靠且高速的内存解决方案,广泛应用于各种应用程序中。其基本的 SRAM 存储单元阵列、逻辑结构和读/写时序使其成为高速缓存和存储应用程序的理想选择。通过扩展 SRAM 的内存容量,可以满足对更高内存需求的应用程序的要求。随着技术进步,SRAM 将继续在嵌入式系统和计算机系统中发挥关键作用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/841890.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【前端之ES6语法】

前端之ES6语法 1. ES6简介2. ES6新特性3.ES6不支持,使用babel3.1 参考文献 4.let和const命令5. 模版字符串6.函数之默认值、剩余参数7. 函数之扩展运算符、箭头函数8.箭头函数this指向和注意事项9.解构赋值10.对象扩展11.Symbol类型12.Set集合类型13.Map数据类型14.…

保存ssh的资讯,快速访问linux server的sshpass

安装 sudo apt-get install -y openssh-server sudo apt-get install -y sshpass 假设server的user和密码都是hao,然后server的ip是192.168.0.106 在.bashrc里写入 alias sshnano"sshpass -p hao ssh hao192.168.0.106" #第一次要先运行 ssh hao192…

React自定义Componment和State深层次理解-07

本节主要从底层原理上分析下React开发相关的内容和注意事项,本节会围绕使用展开,而非源码讲解。 Componment详解 什么是组件 在 MVVM架构出现之前,组件主要分为两种。 狭义上的组件,又称为 UI 组件,比如 Tabs 组件、…

Java计算日期相差天数的几种方法

Java计算日期相差天数的几种方法 🗓️ Java计算日期相差天数的几种方法摘要引言一、使用java.util.Date和java.util.Calendar📅1. 使用java.util.Date示例代码 2. 使用java.util.Calendar示例代码 二、使用java.time.LocalDate📆示例代码 三、…

微信小程序文本框输入显示已经输入的字数

我们遇到这样的需求,就是微信小程序的输入框下面需要显示输入的字数: 我们通常会使用bindinput事件,让显示的字数等于value的长度,看下面的图: 但在实践中,真机测试中,我们会发现以下问题: 这个…

Java Leyden可3倍提高JVM启动和预热时间

Leyden 存储库的目的是对 Java 程序的启动时间、达到峰值性能的时间和占用空间进行原型改进 。 Leyden 原型包含许多优化,将工作从运行时转移到早期阶段,这些阶段称为_训练运行_。在训练运行中,我们根据对应用程序实际行为的观察&#xff0c…

IP编址、进制转换、IP地址分类、变长子网掩码VLSM、无类域间路由CIDR

前言 网络层位于数据链路层与传输层之间。网络层中包含了许多协议,其中最为重要的协议就是IP协议。网络层提供了IP路由功能。理解IP路由除了要熟悉IP协议的工作机制之外,还必须理解IP编址以及如何合理地使用IP地址来设计网络。 IP编址 每个网段上都有两…

Java的类路径究竟是什么?

回答 问了chatgpt这个问题,首先类路径的定义是: 是指一组路径,这些路径告诉Java虚拟机(JVM)和类加载器在哪里可以找到应用程序所需的类和资源文件。说白了就是在运行java程序的时候需要先将java源代码编译成class文件…

网络七层模型与云计算中的网络服务

网络七层模型,也称为OSI(Open System Interconnection)模型,是由国际标准化组织(ISO)制定的一个概念性框架,用于描述网络通信过程中信息是如何被封装、传输和解封装的。这一模型将复杂的网络通信…

动态规划常见算法题讲解

爬楼梯问题 爬楼梯问题是经典的动态规划问题,通常问题描述如下: 问题描述:一个人站在楼梯的底部,需要到达楼梯的顶部。总共有 n 级台阶,每次可以向上走一阶或两阶。问有多少种不同的方法可以到达楼梯的顶部。 解决方…

基础IO用户缓冲区 、inode、硬软链接【Linux】

文章目录 用户缓冲区磁盘磁盘分区EXT2文件系统的存储方案 inode软链接硬链接 用户缓冲区 代码一&#xff1a; 1 #include<stdio.h>2 #include<unistd.h>3 #include<string.h> 4 int main()5 {6 const char * fstr &…

基于FIDO2和USBKEY硬件的SSH认证

在 8.2&#xff08;最新为 8.3&#xff09;版本中&#xff0c;OpenSSH 提供了对 FIDO 和 UAF 的支持。从此用户就可以用硬件 USBKEY 证书进行 SSH 原生认证。这样可以实现简捷、有效和安全的 SSH 认证。本文我们就就少一下 FIDO2 以及 OpenSSH 对其的支持&#xff0c;并尝试一下…

MySQL中创建触发器时,语法与创建存储过程或函数的语法有所不同注意

在MySQL中创建触发器时&#xff0c;语法与创建存储过程或函数的语法有所不同。触发器的创建语法需要遵循特定的结构&#xff0c;包括指定触发器的名称、触发时机&#xff08;如AFTER或BEFORE&#xff09;、触发事件&#xff08;如INSERT、UPDATE或DELETE&#xff09;以及触发器…

【调试笔记-20240521-Linux-编译 QEMU/x86_64 可运行的 OpenWrt 固件】

调试笔记-系列文章目录 调试笔记-20240521-Linux-编译 QEMU/x86_64 可运行的 OpenWrt 固件 文章目录 调试笔记-系列文章目录调试笔记-20240521-Linux-编译 QEMU/x86_64 可运行的 OpenWrt 固件 前言一、调试环境操作系统&#xff1a;Ubuntu 22.04.4 LTS编译环境调试目标 二、调…

TCP和UDP的区别及应用场景

区别 TCP是面向连接的传输协议&#xff0c;传输数据时必须建立好连接&#xff0c;UDP是无连接&#xff1b;TCP只支持一对一&#xff0c;UDP支持一对一、一对多、多对一、多对多等场景TCP是可靠的传输协议&#xff0c;传输时可保证无差错、不丢失、不重复、按序到达等&#xff…

XStream使用

简介 官网地址 http://x-stream.github.io 官网教程地址 http://x-stream.github.io/alias-tutorial.html XStream是一个简单的基于Java的类库&#xff0c;用来将Java对象序列化成XML(JSON) 或 反序列化为对象 (即&#xff1a;可以轻易的将Java对象和XML文档相互转换)。XStrea…

ES6 笔记04

01 异步函数的使用 es6推出了一种按照顺序执行的异步函数的方法 async 异步函数 async异步函数可以解决promise封装异步代码,调用时一直then链式编程时比较麻烦的问题 定义异步函数: async function 函数名(){ await 表达式1或者函数的调用1 await 表达式2或者函数的调用2 ...…

esp32-S3 使用自带的大模型,实现本地文字转语言tts

目录 CMakeLists.txt文件中: 初始化以及实际运用代码: 在partitions.csv 内存分配文件中,添加voice_data项

日志的介绍及简单实现

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 目录 日志是什么&#xff1f; 为什么需要日志&#xff1f; 实现一个简单日志 时间戳 clock_gettime time & localtime 可变模板参数(使用C语言)&#xff0c;va_start & va_end & vsprintf 宏 __LINE__…

从0入门FreeRTOS之第一节 什么是FreeRTOS?

简介与基本概念 什么是FreeRTOS&#xff1f; FreeRTOS&#xff08;Free Real-Time Operating System&#xff09;是一款开源的实时操作系统&#xff08;RTOS&#xff09;&#xff0c;专为嵌入式系统设计。由Real Time Engineers Ltd.开发和维护&#xff0c;FreeRTOS以其小巧、…