SRAM即静态随机存取存储器。它是具有静止存取功能的内存,不需要刷新电路便能保存它内部存储的数据。在工业与科学用的很多子系统,汽车电子等等都用到了SRAM。现代设备中很多都嵌入了几千字节的SRAM。实际上几乎所有实现了电子用户界面的现代设备都可能用上了SRAM,如数码相机、手机、音响合成器等往往用了几兆字节的SRAM。 实时信号处理电路往往使用双口的SRAM。下面介绍一下关于静态存储SRAM芯片的设计
 
一个SRAM基本单元有0和1两个电平稳定状态。
 
SRAM基本单元主要由两个CMOS反相器组成。两个反相器的输入、输出交叉连接,即第一个反相器的输出连接第二个反相器的输入,第二个反相器的输出连接第一个反相器的输入。这实现了两个反相器的输出状态的锁定、保存,即存储了1个位元的状态。
 
除了6管的SRAM,其他SRAM还有8管、10管甚至每个位元使用更多的晶体管的实现。 这可用于实现多端口(port)的读写访问,如显存或者寄存器堆的多口SRAM电路的实现。
 
一般说来每个基本单元用的晶体管数量越少,其占用面积就越小。由于硅芯片的生产成本是相对固定的,因此SRAM基本单元的面积越小,在硅芯片上就可以制造更多的位元存储,每位元存储的成本就越低。
 
内存基本单元使用少于6个晶体管是可能的— 如3管甚至单管,但单管存储单元是DRAM,不是SRAM。
 
访问SRAM时,字线加高电平,使得每个基本单元的两个控制开关用的晶体管M5与M6开通,把基本单元与位线连通。位线用于读或写基本单元的保存的状态。虽然不是必须两条取反的位线,但是这种取反的位线有助于改善噪声容限。

静态存储SRAM设计的更多相关文章

  1. 【Java面试题】解释内存中的栈(stack)、堆(heap)和静态存储区的用法

    Java面试题:解释内存中的栈(stack).堆(heap)和静态存储区的用法 堆区: 专门用来保存对象的实例(new 创建的对象和数组),实际上也只是保存对象实例的属性值,属性的类型和对象本身的类型 ...

  2. kubernetes 静态存储与动态存储

    静态存储   Kubernetes 同样将操作系统和 Docker 的 Volume 概念延续了下来,并且对其进一步细化.Kubernetes 将 Volume 分为持久化的 PersistentVo ...

  3. C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区

    栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区.里面的变量通常是局部变量.函数参数等.在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用.和堆一样 ...

  4. C++静态存储,动态存储

    什么是静态存储,动态存储静态存储变量通常是在变量定义时就分定存储单元并一直保持不变, 直至整个程序结束. 动态存储变量是在程序执行过程中,使用它时才分配存储单元, 使用完毕立即释放.典型的例子是函数的 ...

  5. Java中的堆内存、栈内存、静态存储区

    一.栈 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用.但缺点是,存在栈中的数据大小与生存 ...

  6. C++内存分区:堆、栈、自由存储区、全局/静态存储区和常量存储区

    日志                                                                                                  ...

  7. 【校招面试 之 C/C++】第14题 C++ 内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区(堆栈的区别)

    栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区.里面的变量通常是局部变量.函数参数等.在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用.和堆一样 ...

  8. C++中的数据存储方式自动存储、静态存储和动态存储

    C++中变量存储方式有三种,自动存储,静态存储,动态存储 自动存储简单意义上就是在函数内不用任何关键字直接定义的变量,它在函数被调用时被创建,在函数退出时自动消失, 静态存储顾名思义就是在程序的整个运 ...

  9. [整理]C中的静态存储区

    静态存储区:即内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.它主要存放静态数据.全局数据和常量.栈区:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些 ...

随机推荐

  1. 【Docker】 windows10 docker 使用

    原文地址:https://www.aliyun.com/jiaocheng/872144.html 摘要:docker之前在Windows和MacOS上的版本都是通过Linux虚拟机的形式,而现在Do ...

  2. 彻底理解Future模式

    先上一个场景:假如你突然想做饭,但是没有厨具,也没有食材.网上购买厨具比较方便,食材去超市买更放心. 实现分析:在快递员送厨具的期间,我们肯定不会闲着,可以去超市买食材.所以,在主线程里面另起一个子线 ...

  3. 使用 CompletableFuture 异步组装数据

    使用 CompletableFuture 异步组装数据 一种快捷.优雅的异步组装数据方式 实际项目中经常遇到这种情况: 从多个表中查找到数据然后拼装成一个VO返回给前端. 这个过程有可能会非常耗时.因 ...

  4. vue3的打包及打包的坑

    1.vue3没有vue.config.js文件,在根目录下建一个vue.config.js文件 2.vue.config.js  3.vue3.3版本前的打包命令  vue3.3版本之后 我用3.3之 ...

  5. 安装pycharm后设置idle为默认打开方式(idle.bat)图标“变异”为未知bug

    这个虽不影响使用,但是对着一个白色的框框,这体验真的是不符合强迫症的风格啊~~~注册表,重装,......解决方案多多种,但是经过大神推荐,有一个很好用的小工具, 下载地址:Default Progr ...

  6. idea 2019.3 破解激活码

    idea激活码(亲测 idea 2019.3可用)有效期到2021年3月: QYYBAC9D3J-eyJsaWNlbnNlSWQiOiJRWVlCQUM5RDNKIiwibGljZW5zZWVOYW1 ...

  7. 通过openjdk源码分析ObjectMonitor底层实现

    通过openjdk源码分析ObjectMonitor底层实现 Hotspot JDK只是部分开源,将底层的调用C++的native方法的具体实现屏蔽了,而openjdk则将这部分也开源了,接下来我们通 ...

  8. Pileup 格式详细说明

    转自: https://blog.csdn.net/herokoking/article/details/79276939 Pileup 格式最初是由Sanger Institute的Tony Cox ...

  9. ARTS Week 8

    Dec 16, 2019 ~ Dec 22, 2019 Algorithm Problem 53 Maximum Subarray 最大子数组 题目链接 题目描述:给定一个数组,在所有连续的子数组中, ...

  10. Codeforces 1064D Labyrinth(双端队列BFS)

    题意: 给一个图,"*"不可以走,给你一个起点,限制向左走L次,向右走R次,上下不限制,问你最多可以走到多少个格子 思路: BFS,每次将上下走的策略加入队首,左右加入队尾,(相当 ...