静态随机存储器SRAM存储数据原理

RAM主要的作用就是存储代码和数据供中央处理器在需要的时候进行调用。对于RAM等存储器来说仍是一样的,虽然存储的都是代表0和1的代码,但是不同的组合就是不同的数据。对于RAM存储器而言数据总线是用来传入数据或者传出数据的。因为存储器中的存储空间是如果前面提到的存放图书的书架一样通过一定的规则定义的,我们可以通过这个规则来把数据存放到存储器上相应的位置,而进行这种定位的工作就要依靠地址总线来实现了。

对于中央处理器来说,RAM就象是一条长长的有很多空格的细线,每个空格都有一个唯一的地址与之相对应。如果中央处理器想要从RAM中调用数据,它首先是需要给地址总线发送地址数据定位要存取的数据,然后等待若干个时钟周期之后,数据总线就会把数据传输给CPU。下面关于SRAM存储原理示意图可以帮助我们很好的理解这个过程。

图1
  
上面图1所列举的例子中CPU在一行数据中每次只是存取一个字节的数据,但是在现实世界中是不同的,通常CPU每次需要调用32bit或者是64bit的数据(这是根据不同计算机系统的数据总线的位宽所决定的)。如果数据总线是64字节的话,CPU就会在一个时间中存取8个字节的数据(想一想,如果每次还是存取1个字节的数据,64bit总线将不会显示出来任何的优势。)

上图中的小圆点代表RAM中的存储空间,每一个都有一个唯一的地址线同它相连。当地址解码器接收到地址总线传送来的地址数据之后,它会根据这个数据定位中央处理器想要调用的数据所在的位置,然后数据总线就会把其中的数据传送到中央处理器。

图2

如果RAM对于CPU来说仅仅是一条“线”的话,还不能体现实际的运行情况。因为如果实际情况真的是如此的话,在实际制造芯片的时候,会有很多实际的困难,特别是在需要设计大容量的RAM的时候。所以一种更好的能够降低成本的方法是让存储信息的“空格”排列为很多行--每个“空格”对应一个bit存储的位置。如果要存储1024bits(2^10)数据,那么你只要使用32x32(2^52^5=2^10)的矩阵就能够达到这个目的了。很明显一个32x32的矩阵比一个1024bit的行设备更紧凑,实现起来也更加容易。请看图2.

原文地址:https://blog.51cto.com/14618340/2472732

时间: 2024-11-02 02:27:46

静态随机存储器SRAM存储数据原理的相关文章

静态SRAM芯片工作原理

下面谈谈当存储字节的过程是怎样的:下面的示意图显示的也仅仅是最简单状态下的情况,当内存条上仅剩一个RAM芯片的情况.对于X86处理器,它通过地址总线发出一个具有22位二进制数字的地址编码--其中11位是行地址,11位是列地址,这是通过RAM地址接口进行分离的.行地址解码器(row decoder)将会首先确定行地址,然后列地址解码器(column decoder)将会确定列地址,这样就能确定唯一的存储数据的位置,然后该数据就会通过RAM数据接口将数据传到数据总线. 需要注意的是RAM内的部存储信

SRAM静态随机存储器芯片的读写周期

一.要保证正确地读/写,必须注意CPU时序与存储器读/写周期的配合.一般SRAM存储器芯片手册都会给出芯片读/写周期的时序图. Intel 2114芯片的读.写周期时序如图所示.二. 读周期 SRAM静态随机存储器芯片的读周期 读操作时,必须保证片选信号为低电平,读写信号为高电平.tRC (读周期时间):指对芯片连续两次读操作之间的最小间隔时间.tA (读出时间):从给出有效地址后,经过译码电路.驱动电路的延迟,到读出所选单元内容,并经I/O电路延迟,直到数据在外部数据总线上稳定出现所需的时间.

QString内部仍采用UTF-16存储数据且不会改变(一共9种不同情况下的编码)

出处:https://blog.qt.io/cn/2012/05/16/source-code-must-be-utf-8-and-qstring-wants-it/ 但是注意,这只是QT运行(RunTime)过程中采用的编码,并不代表源码文件里也是这样的.恰恰相反,源码文件必须是UTF8,带不带BOM都可以.我认为,虽然存储在源代码里的中文字是UTF8,但是QT在编译过程中,遇到中文会立即转换成UTF-16从而对源码里的中文字符进行编码,并存储在EXE文件里(这里对编译器来说,都是静态字符,必

GlusterFS存储结构原理介绍

一.分布式文件系统 分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源并不直接与本地节点相连,而是分布于计算网络中的一个或者多个节点的计算机上.目前意义上的分布式文件系统大多都是由多个节点计算机构成,结构上是典型的客户机/服务器模式.流行的模式是当客户机需要存储数据时,服务器指引其将数据分散的存储到多个存储节点上,以提供更快的速度,更大的容量及更好的冗余特性. 目前流行的分布式文件系统有许多,如MooseFS.OpenAFS.GoogleFS,具体实现

数据结构之第二章线性表之静态链式存储

1--特点:用一维数组来描述线性表,用游标代替指针指示节点在数组中的相对位置.不设“指针”类型的高级语言中适用链表结构. 2--线性表的静态链式存储结构 ////  静态单链表.h//  单链表的静态存储//// 6 //  Copyright (c) 2014年 dashuai. All rights reserved.// #ifndef SLIST_H#define SLIST_H#include <stdio.h>#include <stdlib.h> #define MA

NSUserDefaults轻量级本地存储数据

NSUserDefaults适合存储轻量级的本地数据,比如要保存一个登陆界面的数据,用户名.密码之类的,个人觉得使用NSUserDefaults是首选.下次再登陆的时候就可以直接从NSUserDefaults里面读取上次登陆的信息咯. 因为如果使用自己建立的plist文件什么的,还得自己显示创建文件,读取文件,很麻烦,而是用NSUserDefaults则不用管这些东西,就像读字符串一样,直接读取就可以了. NSUserDefaults支持的数据格式有:NSNumber(Integer.Float

使用嵌入式关系型SQLite数据库存储数据

除了可以使用文件或SharedPreferences存储数据,还可以选择使用SQLite数据库存储数据. 在Android平台上,集成了一个嵌入式关系型数据库—SQLite, 1.SQLite3支持 NULL.INTEGER.REAL(浮点数字).TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型虽然只有五种,但实际上sqlite3也接受varchar(n).char(n).decimal(p,s) 等数据类型,只不过在运算或保存时会转成对应的五种数据类型. 2.SQLit

静态资源云存储

前言 毫无目标的生活会导致自我的放纵,滋生懒惰. 只有被追赶着才能进步,谁在追赶着你?来自生活中的讽刺?还是自我的鞭挞? 工作之余,学点新东西还是不错的,七牛云存储一个很不错的云产品. 一.简介 七牛云存储:静态资源云端存储.产品主要面对的是开发者.企业用户,你可以把自己的项目.网站中的图片.文档.音频.视频等静态的资源存储在云端,还提供其他服务,比如视频音频转码,图片简单处理等. 点击七牛云存储注册,注册后首先是体验用户,身份认证后变成标准用户,区别如下: 功能特性 体验用户 标准用户 验证

android之存储数据的四大方式

下面详细解释这四大方式的特点 第一种:文件存储数据 核心原理: Context提供了两个方法来打开数据文件里的文件IO流 FileInputStream openFileInput(String name); FileOutputStream(String name , int mode),这两个方法第一个参数 用于指定文件名,第二个参数指定打开文件的模式.具体有以下值可选: MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的