计算机组成原理——CPU与存储器连接例题

计算机组成原理——CPU与存储器连接例题

设CPU共有16根地址线和8根数据线,并用(MREQ) ̅作为访存控制信号(低电平有效),(WR) ̅作为读/写命令信号(高电平读,低电平写)。现有下列存储芯片:1K4位RAM,4K8位RAM,2K*8位ROM,以及74138译码器和各种门电路,如下图所示。画出CPU和存储芯片的连接图。要求

在这里插入图片描述

(1) 主存地址空间分配:A000H ~ A7FFH为系统程序区;A800H ~ AFFFH为用户程序区
(2) 合理选用上述存储芯片,说明各选几片
(3) 详细画出存储芯片的片选逻辑

题目分析

1. CPU 和控制信号
  • CPU
    • 16 根地址线 (A0~A15),寻址范围 0000H~FFFFH(64KB)。
    • 8 根数据线 (D0~D7)。
    • 控制信号:
      • (MREQ)̅:访存控制信号,低电平有效。
      • (WR)̅:读/写控制信号,高电平为读,低电平为写。
2. 存储芯片
  • 可选芯片:
    • 1K×4 位 RAM(1024×4 位)。
    • 4K×8 位 RAM(4096×8 位)。
    • 2K×8 位 ROM(2048×8 位)。
  • 工具:74138 译码器和各种门电路。
3. 地址空间分配
  • 系统程序区:A000H~A7FFH(2KB)。
  • 用户程序区:A800H~AFFFH(2KB)。
4. 要求
  • 合理选择存储芯片,说明选用几片。
  • 写出每片存储芯片的二进制地址范围。
  • 详细画出片选逻辑。

存储芯片选择与地址范围

1. 地址空间分析
  • 系统程序区 (A000H~A7FFH)
    • A000H = 1010 0000 0000 0000。
    • A7FFH = 1010 0111 1111 1111。
    • 容量:A7FFH - A000H + 1 = 2KB(2048 字节)。
    • A15~A11 = 10100,A10~A0 变化。
  • 用户程序区 (A800H~AFFFH)
    • A800H = 1010 1000 0000 0000。
    • AFFFH = 1010 1111 1111 1111。
    • 容量:AFFFH - A800H + 1 = 2KB(2048 字节)。
    • A15~A11 = 10101,A10~A0 变化。
2. 存储芯片选择
  • 系统程序区 (2KB,ROM)
    • 需要 2K×8 位 ROM,正好匹配。
    • 选用 1 片 2K×8 位 ROM
    • 地址线:2K = 2048 = 2^11,需 A0~A10。
  • 用户程序区 (2KB,RAM)
    • 需要 2KB,但没有直接的 2K×8 位 RAM。
    • 可选:
      • 1K×4 位 RAM × 4 片,组合成 2K×8 位。
        • 两个 1K×4 位 RAM 组成 1K×8 位,两个 1K×8 位再组成 2K×8 位。
      • 4K×8 位 RAM × 1 片,仅用 2KB。
        • 但浪费 2KB 容量,不够经济。
    • 选用 4 片 1K×4 位 RAM,组合成 2K×8 位。
    • 地址线:1K = 1024 = 2^10,单个 1K×4 位 RAM 需 A0~A9;两组 1K×8 位共用 A10 区分。
3. 存储芯片数量
  • 1 片 2K×8 位 ROM。
  • 4 片 1K×4 位 RAM。
4. 存储芯片地址范围
  • 2K×8 位 ROM
    • A000H~A7FFH。
    • 二进制:1010 0000 0000 0000 ~ 1010 0111 1111 1111。
  • 1K×4 位 RAM × 4(组合成 2K×8 位)
    • A800H~AFFFH。
    • 分为两组 1K×8 位:
      • RAM1 和 RAM2 (A10 = 0):A800H~ABFFH。
        • 二进制:1010 1000 0000 0000 ~ 1010 1011 1111 1111。
      • RAM3 和 RAM4 (A10 = 1):AC00H~AFFFH。
        • 二进制:1010 1100 0000 0000 ~ 1010 1111 1111 1111。

片选逻辑设计

1. 片选信号需求
  • ROM
    • 地址范围:A15~A11 = 10100。
    • 片选条件:A15 = 1, A14 = 0, A13 = 1, A12 = 0, A11 = 0。
  • RAM
    • 地址范围:A15~A11 = 10101。
    • 片选条件:A15 = 1, A14 = 0, A13 = 1, A12 = 0, A11 = 1。
    • 细分:
      • RAM1 和 RAM2:A10 = 0。
      • RAM3 和 RAM4:A10 = 1。
2. 74138 译码器连接
  • 输入
    • A = A11。
    • B = A12。
    • C = A13。
  • 使能
    • G1 = A15(高电平有效)。
    • G2A = (A14)̅(低电平有效,需反相器)。
    • G2B = (MREQ)̅(低电平有效)。
  • 输出
    • Y4 (A13 A12 A11 = 100):A000H~A7FFH,接 ROM 的 CS̅。
    • Y5 (A13 A12 A11 = 101):A800H~AFFFH,接 RAM 的片选控制。
3. RAM 片选细分
  • Y5 控制 A800H~AFFFH,需用 A10 进一步区分:
    • RAM1 和 RAM2 的 CS̅:Y5 AND (A10)̅。
    • RAM3 和 RAM4 的 CS̅:Y5 AND A10。
4. RAM 读写控制
  • RAM 写使能 (WE)̅:(MREQ)̅ AND (WR)̅(需与门)。
  • 读操作:(WR)̅ = 1 时,RAM 输出数据。

CPU 与存储器连接图设计

1. 地址线连接
  • ROM
    • A0~A10 接 ROM 的地址引脚。
  • RAM
    • RAM1RAM4:A0A9 接地址引脚。
    • A10 用于片选区分。
2. 数据线连接
  • ROM
    • D0~D7 接 ROM 的数据引脚。
  • RAM
    • RAM1 和 RAM3:D0~D3。
    • RAM2 和 RAM4:D4~D7。
3. 片选逻辑
  • 74138 译码器
    • 输入:A = A11, B = A12, C = A13。
    • 使能:G1 = A15, G2A = (A14)̅, G2B = (MREQ)̅。
    • 输出:Y4 接 ROM CS̅,Y5 接 RAM 片选。
  • RAM 片选
    • RAM1 和 RAM2:Y5 AND (A10)̅。
    • RAM3 和 RAM4:Y5 AND A10。
4. 控制信号
  • RAM (WE)̅:(MREQ)̅ AND (WR)̅。

连接图描述

作图如下:
在这里插入图片描述

以下是连接图的文字描述:

  1. CPU

    • A0~A15:地址线。
    • D0~D7:数据线。
    • (MREQ)̅ 和 (WR)̅:控制信号。
  2. 2K×8 位 ROM

    • 地址:A0~A10。
    • 数据:D0~D7。
    • CS̅:接 74138 的 Y4。
  3. 1K×4 位 RAM × 4

    • RAM1 和 RAM2(组成 1K×8 位):
      • 地址:A0~A9。
      • 数据:RAM1 (D0~D3),RAM2 (D4~D7)。
      • CS̅:Y5 AND (A10)̅。
    • RAM3 和 RAM4(组成 1K×8 位):
      • 地址:A0~A9。
      • 数据:RAM3 (D0~D3),RAM4 (D4~D7)。
      • CS̅:Y5 AND A10。
    • WE̅:(MREQ)̅ AND (WR)̅。
  4. 74138 译码器

    • A = A11, B = A12, C = A13。
    • G1 = A15, G2A = (A14)̅(加反相器),G2B = (MREQ)̅。
    • Y4 接 ROM CS̅。
    • Y5 接两个与门:
      • 与门 1:Y5 AND (A10)̅ → RAM1 和 RAM2 的 CS̅。
      • 与门 2:Y5 AND A10 → RAM3 和 RAM4 的 CS̅。
  5. 与门(RAM 写控制)

    • 输入:(MREQ)̅ 和 (WR)̅。
    • 输出:接 RAM1~RAM4 的 WE̅。

回答总结

  1. 存储芯片选择

    • 1 片 2K×8 位 ROM。
    • 4 片 1K×4 位 RAM。
  2. 二进制地址范围

    • ROM:1010 0000 0000 0000 ~ 1010 0111 1111 1111 (A000H~A7FFH)。
    • RAM1 和 RAM2:1010 1000 0000 0000 ~ 1010 1011 1111 1111 (A800H~ABFFH)。
    • RAM3 和 RAM4:1010 1100 0000 0000 ~ 1010 1111 1111 1111 (AC00H~AFFFH)。
  3. 片选逻辑

    • 74138 译码器:
      • 输入:A11, A12, A13。
      • 使能:A15, (A14)̅, (MREQ)̅。
      • Y4 控制 ROM。
      • Y5 结合 A10 控制 RAM:
        • Y5 AND (A10)̅ → RAM1 和 RAM2。
        • Y5 AND A10 → RAM3 和 RAM4。

拓展知识:片选原理

什么是片选?

片选(Chip Select, 简称 CS)是存储器系统中用来选择某个存储芯片的控制信号。CPU 通常会连接多个存储芯片(如 ROM 和 RAM),但在某一时刻,CPU 只会与一个存储芯片进行通信(读或写数据)。片选信号的作用就是“激活”某个存储芯片,让它与 CPU 通信,而其他芯片保持“未选中”状态。

  • 片选信号:通常用 CS 或 CE(Chip Enable)表示,低电平有效时(CS̅ = 0),芯片被选中;高电平(CS̅ = 1)时,芯片未被选中。
  • 片选的本质:通过地址线和控制信号,判断当前 CPU 访问的地址属于哪个存储芯片的范围,从而激活对应的芯片。

片选的原理

1. 为什么需要片选?
  • CPU 有 16 根地址线,可以寻址 64KB 的地址空间(0000H~FFFFH)。
  • 但存储器系统由多个芯片组成,每个芯片只占用一部分地址空间。例如:
    • ROM:A000H~A7FFH(2KB)。
    • RAM:A800H~AFFFH(2KB)。
  • 当 CPU 访问某个地址时(比如 A500H),需要判断这个地址属于哪个芯片的范围:
    • A500H 属于 ROM(A000H~A7FFH),所以选中 ROM。
    • 如果访问 AC00H,属于 RAM(A800H~AFFFH),则选中 RAM。
  • 片选信号通过地址线的高位部分来判断地址范围,并生成对应的控制信号。
2. 片选信号如何生成?
  • 地址解码:通过地址线的高位部分,判断当前地址属于哪个芯片的范围。
    • 例如,A000H~A7FFH 的高位 A15~A11 = 10100,A800H~AFFFH 的高位 A15~A11 = 10101。
  • 译码器:使用译码器(如 74138)将高位地址解码,生成片选信号。
  • 控制信号:结合 CPU 的控制信号(如 (MREQ)̅),确保只有在访存时才激活片选。
3. 片选的实现
  • 硬件实现:通过译码器(如 74138)和逻辑门(如与门、或门)生成片选信号。
  • 逻辑条件
    • 某个芯片被选中时,其 CS̅ = 0。
    • 条件:当前地址在该芯片的范围内,且 CPU 正在访问存储器((MREQ)̅ = 0)。

结合题目解释片选原理

1. 存储芯片和地址范围
  • ROM:2K×8 位,A000H~A7FFH。
    • 2KB = 2048 字节,地址线 A0~A10(2^11 = 2048)。
    • 高位:A15~A11 = 10100。
  • RAM:4 片 1K×4 位 RAM,组合成 2K×8 位,A800H~AFFFH。
    • 2KB,地址线 A0~A10。
    • 高位:A15~A11 = 10101。
    • 细分:
      • RAM1 和 RAM2(1K×8 位):A800H~ABFFH,A10 = 0。
      • RAM3 和 RAM4(1K×8 位):AC00H~AFFFH,A10 = 1。
2. 片选信号的生成
(1) 判断地址范围
  • ROM
    • A15~A11 = 10100。
    • 条件:A15 = 1, A14 = 0, A13 = 1, A12 = 0, A11 = 0。
  • RAM
    • A15~A11 = 10101。
    • 条件:A15 = 1, A14 = 0, A13 = 1, A12 = 0, A11 = 1。
    • 细分:
      • RAM1 和 RAM2:A10 = 0。
      • RAM3 和 RAM4:A10 = 1。
(2) 使用 74138 译码器
  • 74138 是一个 3-8 译码器:
    • 输入:A, B, C(3 位输入)。
    • 输出:Y0~Y7(8 个输出,低电平有效)。
    • 使能:G1(高电平有效),G2A 和 G2B(低电平有效)。
  • 连接方式
    • 输入:A = A11, B = A12, C = A13。
    • 使能:
      • G1 = A15(A15 = 1 时,地址在 8000H~FFFFH)。
      • G2A = (A14)̅(A14 = 0 时,地址在 8000H~BFFFH)。
      • G2B = (MREQ)̅(访存时有效)。
  • 输出
    • 当 A15 = 1, A14 = 0, (MREQ)̅ = 0 时,74138 工作。
    • Y4 (A13 A12 A11 = 100):对应 A000H~A7FFH,接 ROM 的 CS̅。
    • Y5 (A13 A12 A11 = 101):对应 A800H~AFFFH,接 RAM 的片选控制。
(3) RAM 的片选细分
  • Y5 控制整个 A800H~AFFFH(2KB),但 RAM 分为两组(每组 1K×8 位),需要用 A10 进一步区分:
    • RAM1 和 RAM2(A800H~ABFFH):A10 = 0。
      • CS̅ = Y5 AND (A10)̅。
    • RAM3 和 RAM4(AC00H~AFFFH):A10 = 1。
      • CS̅ = Y5 AND A10。
  • 这里需要两个与门:
    • 与门 1:输入 Y5 和 (A10)̅,输出接 RAM1 和 RAM2 的 CS̅。
    • 与门 2:输入 Y5 和 A10,输出接 RAM3 和 RAM4 的 CS̅。
3. 片选的工作过程
  • 例子 1:CPU 访问地址 A500H

    • A500H = 1010 0101 0000 0000。
    • A15~A11 = 10100,符合 ROM 范围。
    • 74138:
      • A15 = 1, A14 = 0, (MREQ)̅ = 0,译码器使能。
      • A13 A12 A11 = 100,Y4 = 0。
    • ROM 的 CS̅ = 0,ROM 被选中。
    • Y5 = 1,RAM 未选中。
    • CPU 通过 A0~A10(0101 0000 0000)访问 ROM 内的具体地址。
  • 例子 2:CPU 访问地址 A900H

    • A900H = 1010 1001 0000 0000。
    • A15~A11 = 10101,符合 RAM 范围。
    • 74138:
      • A15 = 1, A14 = 0, (MREQ)̅ = 0,译码器使能。
      • A13 A12 A11 = 101,Y5 = 0。
    • Y4 = 1,ROM 未选中。
    • Y5 = 0:
      • A10 = 0,Y5 AND (A10)̅ = 0,RAM1 和 RAM2 的 CS̅ = 0,被选中。
      • A10 = 0,Y5 AND A10 = 1,RAM3 和 RAM4 未选中。
    • CPU 通过 A0~A9(001 0000 0000)访问 RAM1 和 RAM2 内的具体地址。

片选的硬件实现

1. 74138 译码器
  • 作用:将高位地址(A13~A11)解码,生成 ROM 和 RAM 的片选信号。
  • 连接:
    • A = A11, B = A12, C = A13。
    • G1 = A15, G2A = (A14)̅, G2B = (MREQ)̅。
    • Y4 接 ROM 的 CS̅。
    • Y5 用于 RAM 的片选。
2. 逻辑门
  • RAM 的片选需要细分:
    • 用两个与门结合 Y5 和 A10:
      • Y5 AND (A10)̅ → RAM1 和 RAM2。
      • Y5 AND A10 → RAM3 和 RAM4。
  • (A10)̅ 需要一个反相器生成。
3. 读写控制
  • RAM 还需要读写控制:
    • 写使能 (WE)̅:(MREQ)̅ AND (WR)̅(用一个与门生成)。
    • 读操作:(WR)̅ = 1 时,RAM 输出数据。

总结:片选的要点

  1. 片选的核心:通过地址解码,判断当前地址属于哪个芯片的范围,生成对应的 CS̅ 信号。
  2. 地址解码:用高位地址(A15~A11)区分 ROM 和 RAM,A10 进一步细分 RAM。
  3. 译码器作用:74138 译码器将高位地址解码为片选信号。
  4. 控制信号:结合 (MREQ)̅ 确保只有访存时才激活片选。

题目中的片选逻辑(详细说明)

1. ROM 片选
  • 条件:A15 = 1, A14 = 0, A13 = 1, A12 = 0, A11 = 0, (MREQ)̅ = 0。
  • 74138 输出:Y4 = 0 时,ROM 被选中。
2. RAM 片选
  • 条件:A15 = 1, A14 = 0, A13 = 1, A12 = 0, A11 = 1, (MREQ)̅ = 0。
  • 74138 输出:Y5 = 0。
  • 细分:
    • RAM1 和 RAM2:Y5 AND (A10)̅ = 0 时选中。
    • RAM3 和 RAM4:Y5 AND A10 = 0 时选中。
3. 连接图中的片选部分
  • 74138 译码器:
    • 输入:A11, A12, A13。
    • 使能:A15, (A14)̅, (MREQ)̅。
    • 输出:Y4 → ROM,Y5 → RAM。
  • 与门:
    • Y5 AND (A10)̅ → RAM1 和 RAM2。
    • Y5 AND A10 → RAM3 和 RAM4。

再次结合题目总结

  • 片选逻辑
    • ROM:Y4 直接控制。
    • RAM:Y5 结合 A10 控制,分为两组。
  • A10 的作用:A10 用于区分 RAM 的两个 1K×8 位块(A800H~ABFFH 和 AC00H~AFFFH)。
  • 74138 的作用:将 A15~A11 解码,生成 ROM 和 RAM 的片选信号。

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

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

相关文章

GNSS静态数据处理

1 安装数据处理软件:仪器之星(InStar )和 Trimble Business Center 做完控制点静态后,我们需要下载GNSS数据,对静态数据进行处理。在处理之前需要将相关软件在自己电脑上安装好: 仪器之星(InS…

Process Explorer 性能调优实战:精准定位资源泄漏与高负载进程

一、下载与安装 ‌下载地址‌ Process Explorer安装包下载:https://pan.quark.cn/s/950c36ba5364下载后解压压缩包,运行 procexp.exe(32 位系统)或 procexp64.exe(64 位系统)‌。 ‌界面概览‌ 主界面以树…

SVMSPro分布式综合安防管理平台-->以S3存储革新,开启智能安防新纪元

SVMSPro分布式综合安防管理平台–>以S3存储革新,开启智能安防新纪元 在数字化转型浪潮下,企业安防管理正面临海量数据存储、跨区域协同以及数据安全的严峻挑战。如何实现高效、弹性、低成本的存储扩容?如何确保关键录像数据万无一失&…

Python 装饰器(Decorator)

文章目录 代码解析1. 装饰器定义 timer(func)2. 应用装饰器 timer **执行流程****关键点****实际应用场景****改进版本(带 functools.wraps)** 这是一个 Python 装饰器(Decorator) 的示例,用于测量函数的执行时间。下…

git commit时自动生成Change-ID

创建全局钩子目录: 创建一个全局的Git hooks目录: mkdir -p ~/.githooks 下载并设置commit-msg钩子脚本: 下载Gerrit的commit-msg钩子脚本,并放置在全局钩子目录中(如下载不了,可从本页面附件中下载,“…

最新Ktransformers v0.24(Docker)并发部署DeepSeek-V3-0324模型

一、介绍 KTransformers v0.2.4 发布说明 我们非常高兴地宣布,期待已久的 KTransformers v0.2.4 现已正式发布!在这个版本中,我们对整 体架构进行了重大重构,更新了超过 1 万行代码,为社区带来了备受期待的多并发支…

飞牛私有云5大硬核功能实测!

📸 1. 智能相册:AI搜图原图自由 - 自动备份:手机照片/视频实时同步,支持RAW格式、实况照片无损备份,释放128G手机秒变256G。 - AI黑科技: - 人脸识别:自动归类人物相册,输入「妈妈…

webrtc pacer模块(一) 平滑处理的实现

Pacer起到平滑码率的作用,使发送到网络上的码率稳定。如下的这张创建Pacer的流程图,其中PacerSender就是Pacer,其中PacerSender就是Pacer。这篇文章介绍它的核心子类PacingController及Periodic模式下平滑处理的基本流程。平滑处理流程中还有…

【android bluetooth 协议分析 01】【HCI 层介绍 1】【hci_packets.pdl 介绍】

在 AOSP 的蓝牙协议栈 (Gabeldorsche) 中,hci_packets.pdl 是一个 协议描述语言文件,用于定义 HCI (Host Controller Interface) 层的数据包结构和通信协议。以下是详细解析: 1. 文件作用 system/gd/hci/hci_packets.pdl 协议自动化生成&…

操作系统 4.2-键盘

键盘中断初始化和处理 提取的代码如下: // con_init 函数,初始化控制台(包括键盘)的中断 void con_init(void) {set_trap_gate(0x21, &keyboard_interrupt); } ​ // 键盘中断处理函数 .globl _keyboard_interrupt _keyboard…

深入理解Softmax函数及其在PyTorch中的实现

Softmax函数简介 Softmax函数在机器学习和深度学习中,被广泛用于多分类问题的输出层。它将一个实数向量转换为概率分布,使得每个元素介于0和1之间,且所有元素之和为1。 Softmax函数的定义 给定一个长度为 K K K的输入向量 z [ z 1 , z 2 …

Vue 3 响应式更新问题解析

在 Vue 3 中,即使使用 reactive 或 ref 创建的响应式数据,当数据量很大时也可能出现更新不及时的情况。以下是原因和解决方案: 核心原因 ​​响应式系统优化机制​​: Vue 3 使用 Proxy 实现响应式,比 Vue 2 更高效但为…

异形遮罩之QML中的 `OpacityMask` 实战

文章目录 🌧️ 传统实现的问题👉 效果图 🌈 使用 OpacityMask 的理想方案👉代码如下🎯 最终效果: ✨ 延伸应用🧠 总结 在 UI 设计中,经常希望实现一些“异形区域”拥有统一透明度或颜…

数据可视化 —— 堆形图应用(大全)

一、案例一:温度堆积图 # 导入 matplotlib 库中的 pyplot 模块,这个模块提供了类似于 MATLAB 的绘图接口, # 方便我们创建各种类型的可视化图表,比如折线图、柱状图、散点图等 import matplotlib.pyplot as plt # 导入 numpy 库&…

python工程中的包管理(requirements.txt)

pip install -r requirements.txtpython工程通过requirements.txt来管理依赖库版本,上述命令,可以一把安装依赖库,类似java中maven的pom.xml文件。 参考 [](

操作系统 3.4-段页结合的实际内存管理

段与页结合的初步思路 虚拟内存的引入: 为了结合段和页的优势,操作系统引入了虚拟内存的概念。虚拟内存是一段地址空间,它映射到物理内存上,但对用户程序是透明的。 段到虚拟内存的映射: 用户程序中的段首先映射到虚…

【Amazon EC2】为何基于浏览器的EC2 Instance Connect 客户端连接不上EC2实例

文章目录 前言📖一、报错先知❌二、问题复现😯三、解决办法🎲四、验证结果👍五、参考链接🔗 前言📖 这篇文章将讲述我在 Amazon EC2 上使用 RHEL9 AMI 时无法连接到 EC2 实例时所遇到的麻烦😖 …

Python学习笔记(二)(字符串)

文章目录 编写简单的程序一、标识符 (Identifiers)及关键字命名规则:命名惯例:关键字 二、变量与赋值 (Variables & Assignment)变量定义:多重赋值:变量交换:(很方便哟) 三、输入与输出 (In…

Hydra Columnar:一个开源的PostgreSQL列式存储引擎

Hydra Columnar 是一个 PostgreSQL 列式存储插件,专为分析型(OLAP)工作负载设计,旨在提升大规模分析查询和批量更新的效率。 Hydra Columnar 以扩展插件的方式提供,主要特点包括: 采用列式存储&#xff0c…

es的告警信息

Elasticsearch(ES)是一个开源的分布式搜索和分析引擎,在运行过程中可能会产生多种告警信息,以提示用户系统中存在的潜在问题或异常情况。以下是一些常见的 ES 告警信息及其含义和处理方法: 集群健康状态告警 信息示例…