计算机组成原理(2)-----存储芯片与CPU的连接

news2024/11/26 23:17:12

目录

一.单块存储芯片与CPU的连接

二.多块存储芯片与CPU的连接

1.位扩展

2.字扩展

(1)线选法

(2)译码器片选法

3.字位同时扩展

三.译码器相关


一.单块存储芯片与CPU的连接

如图所示是8*8位的芯片,总共8个存储字,每个存储字有8位

回忆一下存储器芯片的输入输出信号:

 注:现在的计算机MAR、MDR通常集成在CPU内部。存储芯片内只需一个普通的寄存器(暂存输入、输出数据)

二.多块存储芯片与CPU的连接

1.位扩展

只有存储字长与数据总线的宽度一致,才能尽可能地发挥数据总线的性能,若单块存储芯片字长小于数据总线的宽度,就可以使用位扩展

如下图所示,8K表示2^13次方,所以需要13根地址线A0~A12,CPU会把想要访问的地址通过地址线送到存储器中

WE则表示当这个信号是高电平时,CPU需要往存储器写数据,低电平时,表示CPU需要往其中读数据。

由于存储芯片位8K*1位,所以每次只能通过数据总线传送一个bit,数据总线没有被充分利用

CS为片选信号,高电平有效

为了解决数据总线没有被充分利用的问题,我们可以给主存加上一块相同型号的存储芯片。因为两个存储芯片都有8K个存储单元,若将CPU将13位的地址信息同时送给两个芯片,则这个地址数据会对应两个芯片相同位置的存储单元。

与第一块芯片不同的是,右边这一芯片读出的数据,可以作为CPU的D1读入的数据,如图所示,给CS都加上高电平,两块芯片就能同时工作:

使用同样的方法,可以增至8块存储芯片,如图所示:

数据总线可以同时把8位的数据信息,送至CPU,所以整个主存的存储字长被拓展为8bit

8片8Kx1位的存储芯片---->1个8Kx8位的存储器,总容量8KB,这就是位拓展

2.字扩展

若想要扩展主存字数,可以使用字扩展,如图所示的存储芯片,由于其字长已经是8位,数据总线宽度=存储字长,所以不需要进行位扩展了

但是我们会发现另一个问题,如图所示的CPU中MAR有16位,即2^16的寻址能力,但是我们只用了A0~A13这13根地址线,若依然使用第1节中位扩展的方法,这两个存储单元的8位的信息,会通过数据总线传给CPU,都会导致数据总线的冲突。

(1)线选法

对这一芯片的第一种改造方法为线选法我们将A13地址线连接到第一个芯片,将A14地址线连接到第二个芯片,当A13和A14两个信号分别为1,0时,第一个芯片CS为1,会工作,第二个芯片CS为0,不会工作。同理,若第二个存储器CS信号为1,第一个存储器CS信号为0。那么第二个存储器会工作。

所以A13,A14为01或10

A14,A13为01,第一个芯片工作,A14,A13为10,第二个芯片工作

总结:

可以看到线选法中A14,A13只能为01或10,n个存储体,就需要n条专门的地址线来表示n个选片信号。

(2)译码器片选法

其实只需要一根专门的地址线就可以表示片选信号。如图所示用A13传送片选信号。如图所示,若A13为1,那么第一个存储芯片的片选信号为1,第二个存储芯片的片选信号为0,若A13为0,则反过来即可。

所以A13为1,第一个芯片工作,A13为0,第二个芯片工作。

这里的电路我们可以将其看作1-2译码器,即输入一位地址信息,可能呈现2^1两种状态

总结:

我们可以使用译码器处理CPU的高位地址部分,对于专门用来表示片选信号的地址线,n条线就可以表示2^n个选片信号,如图所示3位译码器就对应8(2^3)根地址线

注:译码器的编号也可以逆过来

举个例子,如图所示,使用的是2-4译码器,这里各存储器的地址线是都是一端连接CPU,一段连接存储器的,这里只是为了看起来比较简洁

例如A13,A14为00,那么0号线会被选通,对应的存储芯片会工作,所以其地址范围为00 0....0~00 1.....1(00跟上13位地址) 

注:若为\overline{CS},则存储芯片\overline{CS}信号端,要画一个小圆圈

与此同理,其他存储器的地址范围如图所示:

若将A13,A15作为译码器的输入信号,无论A14这一位取0还是1,都影响不到选片操作,如图所示,对于第一个存储芯片,当A14为0时,有8K个合法地址,当A14为1时,也有8K个合法地址。

本来芯片只有8K个存储单元,然而有16个合法地址对应8K个存储单元,其他存储芯片也是类似,所以实际应用中,这种设计是不合理的。

总结:

对于字扩展,有线选法和译码片选法两种方法:

实际应用时都用译码片选法

3.字位同时扩展

如图所示,总共8个存储芯片,每两个芯片为一组,因为每个芯片为4位,而CPU能同时读写8位地址,即数据总线有8根,所以可以用两块芯片为1组进行位扩展

每个芯片是16K,即2^14次方,所以CPU的A0~A13这14位的地址信息作为片内地址,由于CPU的A14,A15两个地址信息没有使用,所以可以接一个2-4译码器,进行字扩展,总共有4个片选信号,所以可以接4组,每组有两个存储芯片。

1组为16K*8位,4组为64K*8位,合法的地址:

第一组为00开头,第二组为01开头,第三组为10开头,第四组为11开头,地址范围如图所示:

三.译码器相关

 补充(译码器相关知识点):

译码器输出端只有1条线能输出高电平,这种译码器就能和片选信号CS高电平有效存储芯片配合使用

若译码器输出端画了个小圆圈,那么有效信号是0,无效信号是1,这种译码器就能和片选信号CS低电平有效存储芯片配合使用

 

实际的译码器还有使能端,高电平有效,若使能端为1,则译码器工作

还有的译码器会有多个使能端,只有以下使能端都有效,译码器才能工作

对于74LS138译码器,是最常见的。若使能信号是非法的状态,译码器输出的都是全1

CPU可使用译码器的使能端控制片选信号的生效时间,CPU地址的输出与数据的输入输出外,还有一个很重要的输出信号(\overline{}\overline{MREQ},memory request) ,当CPU访问主存时,CPU就会使这个信号有效,即置为低电平

如下图所示,我们把译码器的G1和\overline{G_{2A}}置为1和0,即合法的值,再把\overline{G_{2B}}接通\overline{MREQ}信号的输出端,当CPU没有发出主存请求信号时,\overline{G_{2B}}输出1,此时译码器不工作,所有片选信号都为1,当CPU发出主存请求信号时,\overline{G_{2B}}输出0,译码器才会工作,把输入的地址信号映射为某一位选通信号

所以CPU与译码器是这样配合工作的:

① CPU先通过地址线送出地址信号,包括传到存储器的低的13位和传到译码器的高3位

这些地址信息是通过电信号传输的,当CPU刚开始输出电信号时,电信号不稳定,因此CPU发出地址信息后,会等电流稳定才发出主存请求信号\overline{MREQ}

② 这样能保证译码器的某一根选通线有效时,这块选通线所对应存储芯片所接收的地址信号稳定。

 具体地看一下RAM的读周期:

从红色划线处开始,CPU送出了地址信息

但CPU会等地址信号稳定后,才会发出主存请求信号\overline{MREQ},这会导致译码器的某个输出端,输出一个有效的片选信号,使得某片存储芯片被选通。

通过一段时间后,这个芯片某个存储单元的数据就可以通过数据总线传出到CPU,即图中的D_{out}

等数据传出一段时间后,CPU就会撤回主存请求信号\overline{MREQ},即撤回片选信号

当CPU确定接收到主存发来的数据后,就会撤回刚刚发出的地址信号

注:这样往上往下的画法表示输出的信号有0也有1

\overline{CS}低电平有效,高电平无效

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

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

相关文章

命令执行讲解和函数

命令执行漏洞简介 命令执行漏洞产生原因 应用未对用户输入做严格得检查过滤,导致用户输入得参数被当成命令来执行 命令执行漏洞的危害 1.继承Web服务程序的权限去执行系统命会或读写文件 2.反弹shell,获得目标服务器的权限 3.进一步内网渗透 远程代…

Python二级考试笔记

Python二级考试笔记【源源老师】 01. 字符串 1. 常规功能合集 字符串本身有一些功能,有些之前运用过,这里总结如下: # 功能一:判断字符串类型 print(type("Hello")) print(str(123)) # 转换# 功能二:连…

【网络】传输层TCP协议 | 三次握手 | 四次挥手

目录 一、概述 2.1 运输层的作用引出 2.2 传输控制协议TCP 简介 2.3 TCP最主要的特点 2.4 TCP连接 二、TCP报文段的首部格式 三、TCP的运输连接管理 3.1 TCP的连接建立(三次握手) 3.2 为什么是三次握手? 3.3 为何两次握手不可以呢? 3.4 TCP的…

我的NPI项目之Android USB 系列(一) - USB的发展历史

设计目的 USB was designed to standardize the connection of peripherals to personal computers, both to exchange data and to supply electric power. 一个是为了标准化电脑连接外设的方法。 能够支持电脑和外设的数据交互和(对外)供电。 目前已…

最短路径与关键路径

目录 文章目录 前言 一.最短路径 1.基本概念 1.1什么是源点? 1.2什么是最短路径 2.作用 3.迪杰斯特拉算法 4. 弗洛伊德算法 4.1过程演示 二.拓扑排序 1.基本概念 1.1什么是有向无环图 1.2什么是活动 1.3什么是AOV网 1.4什么是拓扑序列 1.5什么是拓扑…

Go语言的100个错误使用场景(40-47)|字符串函数方法

前言 大家好,这里是白泽。 《Go语言的100个错误以及如何避免》 是最近朋友推荐我阅读的书籍,我初步浏览之后,大为惊喜。就像这书中第一章的标题说到的:“Go: Simple to learn but hard to master”,整本书通过分析100…

java8-重构、测试、调试

8.1.1 改善代码的可读性 改善代码的可读性到底意味着什么?我们很难定义什么是好的可读性,因为这可能非常主观。通常的理解是,“别人理解这段代码的难易程度”。改善可读性意味着你要确保你的代码能非常容易地被包括自己在内的所有人理解和维护。为了确保…

MySQL 基础知识(八)之用户权限管理

目录 1 MySQL 权限管理概念 2 用户管理 2.1 创建用户 2.2 查看当前登录用户 2.3 修改用户名 2.4 删除用户 3 授予权限 3.1 授予用户管理员权限 3.2 授予用户数据库权限 3.3 授予用户表权限 3.4 授予用户列权限 4 查询权限 5 回收权限 1 MySQL 权限管理概念 关于 M…

Java 和 JavaScript 的奇妙协同:语法结构的对比与探索(下)

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

2024 前端面试题(GPT回答 + 示例代码 + 解释)No.21 - No.40

本文题目来源于全网收集,答案来源于 ChatGPT 和 博主(的小部分……) 格式:题目 h3 回答 text 参考大佬博客补充 text 示例代码 code 解释 quote 补充 quote 上一篇链接:2024 前端面试题(GPT回答 示例…

【Java多线程】对进程与线程的理解

目录 1、进程/任务(Process/Task) 2、进程控制块抽象(PCB Process Control Block) 2.1、PCB重要属性 2.2、PCB中支持进程调度的一些属性 3、 内存分配 —— 内存管理(Memory Manage) 4、线程(Thread)…

【C++】:哈希和哈希桶

朋友们、伙计们,我们又见面了,本期来给大家解读一下有关哈希和哈希桶的知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从入门到精通…

前端网络安全笔记

本文主要涉及6个内容: HTTP与HTTPS同源策略(Same-origin policy,简称 SOP)/ 跨域资源共享(Cross-Origin Resource Sharing,简称 CORS)跨站脚本攻击(Cross-Site Scripting&#xff0…

Base64编码的优点与缺点

title: Base64编码的优点与缺点 date: 2024/2/16 14:06:37 updated: 2024/2/16 14:06:37 tags: Base64编码ASCII转换数据传输文本存储安全性数据膨胀字符串解码 Base64编码是一种将二进制数据转换为可打印ASCII字符的编码方式。它被广泛应用于数据传输和存储,以提升…

飞天使-k8s知识点18-kubernetes实操3-pod的生命周期

文章目录 探针的生命周期流程图prestop 探针的生命周期 docker 创建:在创建阶段,你需要选择一个镜像来运行你的应用。这个镜像可以是公开的,如 Docker Hub 上的镜像,也可以是你自己创建的自定义镜像。创建自己的镜像通常需要编写一…

基于Python实现的元宵节猜灯谜兑奖软件源码,输入灯谜序号,获取谜面及谜底

基于Python实现的元宵节猜灯谜兑奖软件源码,输入灯谜序号,获取谜面及谜底 核心代码: import sys from time import sleep import xlrd import os import tkintertable_listA "" table_listB ""filename os.getcwd()&…

重磅!谷歌宣布发布Gemini 1.5 Pro,距离Gemini发布仅仅一个半月!最高支持1000万上下文长度,GSM8K评测全球第一

本文原文来自DataLearnerAI官方网站: 重磅!谷歌宣布发布Gemini 1.5 Pro,距离Gemini发布仅仅一个半月!最高支持1000万上下文长度,GSM8K评测全球第一 | 数据学习者官方网站(Datalearner)https://www.datalearner.com/bl…

【题解】差分

差分其实就是前缀和的逆运算。 如果数组 A 是数组 B 的前缀和数组,则称 B 是 A 的差分数组。 思路 由题意得,应该求给定数组的差分数组。 差分加速的原理 对 L 到 R 区间内的数加上 c,时间复杂度是O(c) ,即O(n) 。 但是如果…

c++阶梯之类与对象(下)

前文: c阶梯之类与对象(上)-CSDN博客 c阶梯之类与对象(中)-CSDN博客 c阶梯之类与对象(中)< 续集 >-CSDN博客 1. 再谈构造函数 1.1 构造函数体赋值 在创建对象时&a…

C# VS2022+WinForm+Oracle19.3+Excel,根据数据库表定义书生成SQL

目标: 用Excel写数据库的表的定义书,用该工具生成SQL,在客户端执行,把表结构导入数据库,生成真正的表 Github代码下载 目录 0.完成下面开发环境的准备1 操作系统Win11 专业版 21H22 oracle 19.33 Visual Studio Commun…