当前位置: 首页 > news >正文

计算机组成原理网课笔记2

存储系统基本概念

CPU:运算器+控制器。​ 作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。

主存储器的基本组成

半导体元件的原理

在电容上面的金属板加一个5V的高电平,产生电压差,电容里面的电荷就会开始移动,就是所谓的给电容充电的过程,电容里面就会保存一定量的电荷。

在电容上面的金属板加一个0V/1V的低电平,电压差非常小,电容不会充电。

保存电荷-1    不保存电荷-0。

让MOS管断开,电荷就跑不出去。

红线连接了所有存储元的MOS管,如果给红线加一个5V的高电平,所有存储元的MOS管都可以被导通。

如果有电流-产生的是二进制的1,没有电流-产生的是二进制的0

一行存储元-存储单元   多个存储单元-存储体

一行n个存储元-存储字长n bit

字节 Byte  1Byte = 8bit

存储芯片的基本原理

译码器根据地址寄存器MAR里给出的几位地址转变成某一条选通线的高电平信号

比如CPU给的地址是000-翻译成十进制-第0根字选线

每一个地址会对应译码器的一条输出线

如何实现不同的寻址方式

DRAM和SRAM

只读存储器ROM

双端口RAM和多模块存储器

多模块存储器是一种空间并行技术,利用多个结构完全相同的存储器芯片(宏观上并行,微观上交替)并行工作来提高存储器的吞吐率,常用的有单体多字存储器,和多体低位交叉存储器。(多体高位交叉存储器也是多模块存储器,但是其比较难完成宏观上并行,因为地址是在一个存储器芯片内连续存放的)。

多体并行存储器分为低位交叉编址和高位交叉编址:
在多体并行存储器中,每个存储器芯片具有相同的容量和存取速度(其实就是相同的存储器芯片),每个存储器芯片都有独立的读写电路,数据寄存器,地址寄存器,能够做到并行工作(宏观上),交叉工作,既宏观上每次访存可以选择不同位置的芯片。

即使是单核的CPU,读写速度也比内存快得多。内存每一次读写后需要一定的恢复时间,当CPU想要连续读取一些数据的时候,就必须等待他的恢复时间。

高位交叉编址:采用内存地址的更高几位来区分我们要访问的是哪个存储体

因为在同一个存储体里,存取时间为r,等待时间为3r,高位交叉编址就花费很多时间

主存储器与CPU的连接

MAR(Memory Address Register) 存储器地址寄存器

MDR(Memory Date Register) 存储器数据寄存器

WE: Write Enable 

位扩展

芯片有8K个存储单元,8K对应二进制的2^13,所以我们需要13根地址线来表示这8K个地址,因此这块存储芯片对外暴露出去的引脚是A0-A12,总共有13条。CPU会把他想要访问的地址通过地址总线给送过来,这样就完成了地址线的连接

在计算机中,K通常指的是Kibibyte,即1K = 2^10 = 1024。因此,8K实际上指的是8 * 1024 = 8192

8192转二进制 ->10000000000000  2^13

每块芯片都有2K个存储单元,A0-A12的这13位的地址信息会同时送给8片存储芯片,由于每片芯片的存储单元只有1bit的数据,所以我们会把这8块芯片的1位数据分别送到数据总线的不同位上,接下来数据总线可以同时把这8位的信息送给CPU,这样的话我们就把整个主存的存储字长扩展为了8bit,这种连接方式称为位扩展的方式

字扩展

假设我们买了一个8K*8位的存储芯片,CPU可以同时读/写8位的信息,完美匹配。

由于有8K个存储单元,因此我们需要有13位的地址信息。接下来再给片选信号加一个高电平,这块存储芯片就可以正常工作了。

CPU还有3个地址位的信息没有被利用到 (A13-A15).

这个CPU的MAR本来是有16位,也就是说这个CPU,他有2^16寻址能力,没有完全发挥出寻址能力。

买一块同型号的芯片,试一试原来的位扩展,把A0-A12也都连接到新芯片上,给新芯片一个高电平的片选信号,当CPU给出一个全0的地址之后,这个地址会传给两个芯片,此时这两个芯片的片选信号都是1,他们都在工作。因此这两块芯片的0号存储单元的8个bit的信息都会顺着数据总线传给CPU,两边同时传会导致数据总线的冲突。

现在把A13连到左边芯片,A14连到右边芯片,由于片选信号是高电平有效,因此当A13和A14分别为1和0的时候,就意味着左边的片选信号有效,他被选中,右边的芯片不会工作,没有被选中。

这种情况下CPU提供的低13位的地址其实只会读取出左面这块芯片对应的存储单元的8bit的数据。

现在换种情况,让A13和A14分别为0和1,这时左面芯片不工作,右面芯片工作。此时CPU提供的低13位的地址其实指明的是右面这块存储芯片的一个存储单元。

如果两个都是1,两个芯片都会被选中,两边会同时读/写数据,数据总线又会冲突,所以A13和A14只能一个为1,一个为0。

然后开始不理解。

磁盘存储器

Cache

相关文章:

  • 【刷力扣】23. 合并 K 个升序链表(dummy节点技巧 + 分治思维 + 优先队列)
  • 番外篇 | YOLOv8算法解析和实战应用:车辆检测 + 车辆追踪 + 行驶速度计算
  • 【shell脚本速成】函数
  • 五十三、openlayers官网示例Layer Spy解析——跟随鼠标透视望远镜效果、图层剪裁
  • LeetCode 3186 最大施法伤害
  • 如何选择适合的LabVIEW版本进行开发
  • 注解详解系列 - @ResponseStatus
  • Java中将文件转换为Base64编码的字节码
  • LabVIEW的热门应用
  • JAVA学习笔记DAY6——SSM_Spring
  • 在Linux上为Windows目标配置Qt交叉编译
  • 鸿蒙开发网络管理:【@ohos.request (上传下载)】
  • 48-4 内网渗透 - Rotten Potato(烂土豆) 提权
  • StableSwarmUI 安装教程(详细)
  • 【朝花夕拾】RT1170 CSI 如何使能摄像头Y8功能
  • [NodeJS] 关于Buffer
  • docker容器内的网络抓包
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • github从入门到放弃(1)
  • happypack两次报错的问题
  • HTTP那些事
  • Java编程基础24——递归练习
  • PHP的Ev教程三(Periodic watcher)
  • Spring Boot MyBatis配置多种数据库
  • 动态魔术使用DBMS_SQL
  • 对象管理器(defineProperty)学习笔记
  • 记一次删除Git记录中的大文件的过程
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 简析gRPC client 连接管理
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 力扣(LeetCode)965
  • 扑朔迷离的属性和特性【彻底弄清】
  • 前端攻城师
  • 设计模式 开闭原则
  • 数组的操作
  • ​520就是要宠粉,你的心头书我买单
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • ###项目技术发展史
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (6)设计一个TimeMap
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (C语言)共用体union的用法举例
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (搬运以学习)flask 上下文的实现
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (一) storm的集群安装与配置
  • (转) 深度模型优化性能 调参
  • (转)可以带来幸福的一本书
  • .NET Project Open Day(2011.11.13)
  • .net 生成二级域名
  • .net反编译工具
  • ??javascript里的变量问题
  • @AliasFor 使用
  • @Value读取properties中文乱码解决方案
  • [AHK V2]鼠标悬停展开窗口,鼠标离开折叠窗口