计组——搞懂主存储器芯片之地址线数据线及片选线和读写控制线

2023-11-16

一块存储芯片完整的构造图如下(内部进行了封装):
在这里插入图片描述
存储矩阵是由一个一个的存储元构成;

译码驱动电路分为译码器和驱动器,译码器会输出某一条线路的高电平信号,驱动器是为了保证译码器输出的高电平稳定可靠的,可以理解为将电信号放大的部件。

读写电路是连通存储元的电路

地址线:用来读取和写入数据,接收地址信息,通常是CPU通过地址总线传来的

数据线:实现数据的传输,其位数与芯片可读出或写入的数据位数有关

片选线:传输芯片选择信号或者芯片使能信号,用来选择存储芯片

读写控制线:可以一条,可能有两条
两条: W E ‾ \overline{WE} WE 表示允许写; O E ‾ \overline{OE} OE 表示允许读
一条: W E ‾ \overline{WE} WE 表示低电平写,高电平读

每个存储芯片都对外有金属引脚,用来接收地址信号,数据信号,片选信号,读写信号,每条地址线、数据线、片选线以及读写控制线都会对应一个金属的引脚

存储芯片有n位地址,代表地址线有n条,对应 2 n 2^{n} 2n个存储单元,那么,
该芯片的总存量=存储单元个数*存储字长
比如8*8位的存储芯片,第一个8代表有8个存储单元;第2个8反映存储字长,表示每个存储单元包含8位的信息,常见的描述:
8K * 8位,即 213 * 8bit,表示有 213 个存储单元,每个存储单元的存储字长有 8 位,包含8个存储元件

为了满足字符处理的需要,常用8位二进制数表示一个字节,因此存储字长都取8的倍数。通常计算机系统可按寻址,也可按字节寻址。

如,总容量为1KB(说明地址线有10根,地址空间从10个全0到10个全1),字长为4B,存储矩阵为:

0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
1020 1021 1022 1023

按字节寻址:1K个单元,每个单元1B;(按每个存储单元)
按字寻址:256个单元,每个单元4B;(按行)
按半字寻址:512个单元,每个单元2B;(按半行)
按双字寻址:128个单元,每个单元8B;(按两行)

字节寻址时,和数据线没有任何关系;只有当按寻址时,才考虑数据线,通过数据线来判断字长。

【例】cpu有20根地址线和32根数据线,按字节和字寻址,寻址范围分别是多少?
按字节寻址,寻址范围:220=1MB;
按字寻址,32根数据线可以看做存储字长有32位,那么一个存储字就有4个字节,这4个字节的区分,需要从20根地址线拿出两根作为字内寻址,这样剩下18根数据线来寻址,寻址范围:218=256KB

字地址和字节地址的关系
【例】地址线20根,数据线16根,按字节寻址:220=1MB;按字寻址:219=512KB;

a × \times × b的芯片,a是字线,连接的是地址线,b是位线,连接的是数据线。
2K × \times × 4位芯片:11根地址线,4根数据线


感谢你的认真阅读,如果你觉得这篇文章对你有用,欢迎点赞和加关注。
如果你在计算机408的学习过程中还有难懂的问题,欢迎在评论区留言,我会在空闲时间挨个整理更新出来~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计组——搞懂主存储器芯片之地址线数据线及片选线和读写控制线 的相关文章

  • 如何在 Cortex-M3 (STM32) 上从 RAM 执行函数?

    我正在尝试从 Cortex M3 处理器 STM32 上的 RAM 执行函数 该函数会擦除并重写内部闪存 所以我肯定需要在 RAM 中 但我该怎么做呢 我尝试过的是 使用 memcpy 将函数复制到 RAM 中的字节数组 检查它是否正确对齐
  • 处理器指令周期执行时间

    我的猜测是 no operation 内在 ARM 指令应花费 1 168 MHz 来执行 前提是每个NOP在一个时钟周期内执行 我想通过文档验证这一点 有关处理器指令周期执行时间的信息是否有标准位置 我试图确定 STM32f407IGh6
  • 在没有 IDE 的情况下如何使用 CMSIS?

    我正在使用 STM32F103C8T6 并想使用 CMSIS 这本质上只是寄存器定义 没有代码 让我的生活更轻松 同时仍保持在较低水平 问题是我不知道如何安装该库以便在命令行上使用 Makefile 使用 所有文档似乎都与特定于供应商的 I
  • 139-基于stm32单片机老人居家监护报警系统Proteus仿真+源程序

    资料编号 139 一 功能介绍 1 采用stm32单片机 LCD1602显示屏 独立按键 MQ4传感器 电位器模拟 MQ2传感器 电位器模拟 蜂鸣器 电机 制作一个基于stm32单片机老人居家监护报警系统Proteus仿真 2 通过MQ2传
  • 133-基于stm32单片机停车场车位管理系统Proteus仿真+源程序

    资料编号 133 一 功能介绍 1 采用stm32单片机 4位数码管 独立按键 制作一个基于stm32单片机停车场车位管理系统Proteus仿真 2 通过按键进行模拟车辆进出 并且通过程序计算出当前的剩余车位数量 3 将剩余的车位数量显示到
  • 135-基于stm32单片机超声波非接触式感应水龙头控制系统Proteus仿真+源程序

    资料编号 135 一 功能介绍 1 采用stm32单片机 LCD1602显示屏 独立按键 DHT11传感器 电机 超声波传感器 制作一个基于stm32单片机超声波非接触式感应水龙头控制系统Proteus仿真 2 通过DHT11传感器检测当前
  • rt-thread studio中新建5.0不能用

    文章目录 一 版本对比 二 文件和文件夹打斜杠 在使用RT Thread studio创建新工程5 0版本的时候 结果发现新建完成之后程序不能正常运行 但是创建4 10版本的时候却能运行 那肯定是新版本出现了BUG 一 版本对比 首先对比了
  • Push_back() 导致程序在进入 main() 之前停止

    我正在为我的 STM32F3 Discovery 板使用 C 进行开发 并使用 std deque 作为队列 在尝试调试我的代码 直接在带有 ST link 的设备上或在模拟器中 后 代码最终在 main 中输入我的代码之前在断点处停止 然
  • STM32超声波——HC_SR04

    文章目录 一 超声波图片 二 时序图 三 超声波流程 四 单位换算 五 取余计算 六 换算距离 七 超声波代码 一 超声波图片 测量距离 2cm 400cm 二 时序图 1 以下时序图要先提供一个至少10us的脉冲触发信号 告诉单片机我准备
  • STM32F103概要

    The STM32F103x4 STM32F103x6 STM32F103xC STM32F103xD and STM32F103xE are a drop in replacement for STM32F103x8 B medium d
  • 解决KEIL编译慢问题

    两种方案 使用v6版本的ARM Compiler 如果v6版本编译不过 必须使用v5版本的 则可以勾选掉Browse Information选项 提升很明显 1分多钟能优化到几秒 看代码量 但是这个有个弊端 在KEIL中会影响函数跳转 建议
  • 解决KEIL编译慢问题

    两种方案 使用v6版本的ARM Compiler 如果v6版本编译不过 必须使用v5版本的 则可以勾选掉Browse Information选项 提升很明显 1分多钟能优化到几秒 看代码量 但是这个有个弊端 在KEIL中会影响函数跳转 建议
  • VS Code 有没有办法导入 Makefile 项目?

    正如标题所说 我可以从现有的 Makefile 自动填充 c cpp properties json 吗 Edit 对于其他尝试导入 makefile 的人 我找到了一组脚本 它们完全可以实现我想要实现的目标 即通过 VS Code 管理
  • 在 Atollic TrueStudio、STM32CubeMX 中导入 C 库

    我目前正在开发 STM32F767ZI Nucleo 板和一个小安全芯片 microchip atecc508a 通过 i2c 连接进行连接 该芯片有一个可用的库加密验证库 https github com MicrochipTech cr
  • 无法使用 OpenOCD 找到脚本文件

    我正在尝试按照本教程将 OpenOCD 与我的 ST 发现板一起使用 https japaric github io discovery README html https japaric github io discovery READM
  • 嵌入式开发--STM32G4系列片上FLASH的读写

    这个玩意吧 说起来很简单 就是几行代码的事 但楞是折腾了我大半天时间才搞定 原因后面说 先看代码吧 读操作 读操作很简单 以32位方式读取的时候是这样的 data IO uint32 t 0x0800F000 需要注意的是 当以32位方式读
  • STM32 上的位置无关代码 - 指针

    我已成功在 STM32 上构建并运行位置无关的代码 向量表和 GOT 已修补 一切正常 但我对这样的代码有问题 double myAdd double x return x 0 1 double ptrmyAdd double myAdd
  • 在 Contiki 程序中使用 malloc

    考虑以下 Contiki 程序 include
  • 使用 STM32 USB 设备库将闪存作为大容量存储设备

    我的板上有这个闪存IC 它连接到我的STM32F04 ARM处理器 处理器的USB端口可供用户使用 我希望我的闪存在通过 USB 连接到 PC 时被检测为存储设备 作为第一步 我在程序中将 USB 类定义为 MSC 效果很好 因为当我将主板
  • 哪些变量类型/大小在 STM32 微控制器上是原子的?

    以下是 STM32 微控制器上的数据类型 http www keil com support man docs armcc armcc chr1359125009502 htm http www keil com support man d

随机推荐

  • Python 爬虫案例

    一 用cookie池模拟登录 在网络请求交互中 为了维持用户的登录状态 引入了cookie的概念 当用户第一次登录某个网站时 网站服务器会返回维持登录状态需要用到的信息 这些信息就称为cookie 浏览器会将cookie信息保存在本地计算机
  • Intellij IDEA快速实现Docker镜像部署

    1 Docker开启远程访问 root izwz9eftauv7x69f5jvi96z docker vim lib systemd system docker service 修改ExecStart这行 ExecStart usr bin
  • python中各种文件类型的读写

    本文汇总了在python中各种类型文件的读取和写入 包含文本 图像 表格 log文件 pickle文件 npy文件 npz文件等 文本类型 txt文件 json文件 yaml文件 图像类型 使用skimage PIL opencv imag
  • Java解决线程安全问题

    文章目录 背景 1 线程安全问题 1 1 什么是线程安全 1 2 产生的原因 1 3 实例 买票超卖问题 1 4 如何确定是否存在线程安全问题 2 如何解决线程安全问题 2 1 不可变 Immutable 2 2 变量私有化 2 2 1 栈
  • 数据库--商品 表的设计

    目录 商品分类表 商品品牌表 商品分类表 tb item cat 树状结构 CREATE TABLE tb item cat id bigint 20 NOT NULL AUTO INCREMENT COMMENT 类目ID parent
  • GBDT调库代码示例

    二 使用GBDT预测新能源汽车充电桩的故障检测问题 55分 请你用训练数据构建相应的模型 并将模型进行保存 import matplotlib pyplot as plt 正常显示中文及字符 plt rcParams font family
  • python中返回上一步操作_通过实例解析Python文件操作实现步骤

    当程序运行时 变量是保存数据的好方法 但变量 序列以及对象中存储的数据是暂时的 程序结束后就会丢失 如果希望程序结束后数据仍然保持 就需要将数据保存到文件中 Python 提供了内置的文件对象 以及对文件 目录进行操作的内置模块 通过这些技
  • Nginx启动只有master进程而没有worker进程

    大致按照下面文章的提示进行排查 https blog csdn net sinat 37729104 article details 102662475 https blog csdn net qt10086 article details
  • docker配置java环境和mysql数据库

    1 安装docker 1 安装命令 yum install docker 有提示直接y确认 2 设置开机自动启动 service docker start 3 查看版本 docker version 4 修改docker仓库地址 命令 vi
  • stm32定时器时钟源时钟选择,重点是外部时钟源1模式的理解

    stm32定时器时钟源时钟选择 stm32定时器时钟源时钟选择 有意义的参考 TI与ITRX的区别参考 https blog csdn net gtkknd article details 39292517 解析参考 https blog
  • Jenkins持续集成-实现自动向gitlab拉取代码并构建

    Jenkins服务操作 1 选择系统管理 gt 插件管理 gt 可选插件 gt 下载 gitlab 插件 2 选择新建任务 gt 构建 一个自由项目 2 填写相应的gitlab仓库地址和密钥信息 3 在 构建触发器 gt 选择 Buil w
  • [Java] 方法签名(method signature)

    方法头指定修饰符 例如static 返回值类型 方法名 和形式参数 方法头中定义的变量称为形参 形式参数 formal parameter 或 parameter 形参如同占位符 当方法被调用时 传递一个值给形参 此值称为实参 实际参数 a
  • python使用 pyinstaller -F -w file报PermissionError问题

    python使用 pyinstaller F w file报PermissionError问题 根据自己的情况 该报错重新安装pyinstaller 或者重启一下pycharm可以解决一次该问题 但是如果第二次打包就会报该问题 但是 经过验
  • 排序算法——比较类排序算法讲解以及c++实现

    首先我先抛一个老哥的博客 我是看着他的博客来学习理解 地址 https www cnblogs com onepixel p 7674659 html 首先说一下排序算法分为2类 一类是比较类排序算法 另一类是非比较类排序 这里主要讲常用的
  • 如何用数字化系统延长用户运营周期?如何建立数字化用户体系?

    如果说运营是进行用户引流 留存及转化的各个细分环节搭建 精细化运营便是针对各个细分环节 结合用户画像 人群定位 场景拆解及数据分析等细节 对用户展开有针对性的运营策略 要知道 运营需要以用户为中心 没有用户也就意味着没有收益 想要以用户为中
  • Java数字字符串的判断与转换

    文章目录 引言 一 判断字符串是否为数字 1 1 第三方包StringUtils isNumeric 1 2 Java自带方法Character isDigit 1 3 正则表达式 二 将字符串转化为数字 2 1 整数 2 2 小数 参考
  • PostgreSQL基础+部署

    什么是postgreSQL PostgreSQL是一个功能强大的开源对象关系型数据库系统 他使用和扩展了SQL语言 并结合了许多安全存储和扩展最复杂数据工作负载的功能 PostgreSQL的起源可以追溯到1986年 作为加州大学伯克利分校P
  • Gin 框架学习

    Gin 框架
  • python 异步共享变量问题记录

    draw boxes multiprocessing Manager list item name image name replace jpg logging info Working on format item name pool m
  • 计组——搞懂主存储器芯片之地址线数据线及片选线和读写控制线

    一块存储芯片完整的构造图如下 内部进行了封装 存储矩阵是由一个一个的存储元构成 译码驱动电路分为译码器和驱动器 译码器会输出某一条线路的高电平信号 驱动器是为了保证译码器输出的高电平稳定可靠的 可以理解为将电信号放大的部件 读写电路是连通存