扫码订阅《 》或入驻星球,即可阅读文章!

GOLANG ROADMAP

阅读模式

  • 沉浸
  • 自动
  • 日常
首页
Go学习
  • Go学院

    • Go小课
    • Go视界
    • Go小考
    • Go实战
  • Go资源

    • 优质课程
    • 在线宝典
    • 资源下载
    • 帮找资源
训练营 🔥
  • Go体系课&实战训练营
  • 升值加薪陪跑训练营
Go求职
  • 求职刷题

    • 企业题库
    • 面试宝典
    • 求职面经
  • 求职服务

    • 内推互助
    • 求职助力
    • 内推公司
Go友会
  • 城市
  • 校园
推广返佣
  • 返佣排行
  • 返佣规则
  • 推广学院
实验区
  • Go周边
  • Go宝典

    • 推荐图书
    • 精品博文
  • Go开源

    • Go仓库
    • Go月刊
更多
  • 用户中心

    • 我的信息
    • 我的返佣
    • 我的消息
  • 玩转星球

    • 星球介绍
    • 星主权益
    • 吐槽专区
    • 成长记录
  • 合作交流

    • 商务合作
    • 讲师招募
    • 生态伙伴
author-avatar

GOLANG ROADMAP


首页
Go学习
  • Go学院

    • Go小课
    • Go视界
    • Go小考
    • Go实战
  • Go资源

    • 优质课程
    • 在线宝典
    • 资源下载
    • 帮找资源
训练营 🔥
  • Go体系课&实战训练营
  • 升值加薪陪跑训练营
Go求职
  • 求职刷题

    • 企业题库
    • 面试宝典
    • 求职面经
  • 求职服务

    • 内推互助
    • 求职助力
    • 内推公司
Go友会
  • 城市
  • 校园
推广返佣
  • 返佣排行
  • 返佣规则
  • 推广学院
实验区
  • Go周边
  • Go宝典

    • 推荐图书
    • 精品博文
  • Go开源

    • Go仓库
    • Go月刊
更多
  • 用户中心

    • 我的信息
    • 我的返佣
    • 我的消息
  • 玩转星球

    • 星球介绍
    • 星主权益
    • 吐槽专区
    • 成长记录
  • 合作交流

    • 商务合作
    • 讲师招募
    • 生态伙伴
  • 计算机基础系列

    • 《计算机组成原理》
  • 第一章 概论

    • 1.0 章节概要
    • 1.1 电子计算机与存储程序控制
    • 1.2 计算机的硬件组成
    • 1.3 计算机系统
    • 1.4 计算机的工作过程
  • 第二章 数据的机器层次表示

    • 2.0 章节概要
    • 2.1 数值数据的表示
    • 2.2 机器数的定点表示与浮点表示
    • 2.3 非数值数据的表示
    • 2.4 十进制数和数串的表示
    • 2.5 数据校验码
  • 第三章 指令系统

    • 3.0 章节概要
    • 3.1 指令格式
    • 3.2 寻址技术
    • 3.3 堆栈与堆栈操作
    • 3.4 指令类型
    • 3.5 指令系统的发展
  • 第四章 数值的机器运算

    • 4.0 章节概要
    • 4.1 基本算数运算的实现
    • 4.2 定点加减运算
    • 4.3 带符号数的移位和舍入操作
    • 4.4 定点乘法运算
    • 4.5 定点除法运算
    • 4.6 规格化浮点运算
    • 4.7 十进制整数的加法运算
    • 4.8 逻辑运算与实现
    • 4.9 运算器的基本组成与实例
  • 第五章 存储系统和结构

    • 5.0 章节概要
    • 5.1 存储系统的组成
    • 5.2 主存储器的组织
    • 5.3 半导体随机存储器和只读存储器
    • 5.4 主存储器的连接与控制
    • 5.5 多体交叉存储技术
    • 5.6 高速缓冲存储器
  • 第六章 中央处理器

    • 6.0 章节概要
    • 6.1 中央处理器的功能和组成
    • 6.2 控制器的组成和实现方法
    • 6.3 时序系统与控制方式
    • 6.4 微程序控制器
  • 第六章 中央处理器

    • 6.0 章节概要
    • 6.1 中央处理器的功能和组成
    • 6.2 控制器的组成和实现方法
    • 6.3 时序系统与控制方式
    • 6.4 微程序控制器
  • 第八章 外部设备

    • 8.0 章节概要
    • 8.1 外部设备概述
    • 8.2 磁介质存储器的性能和原理
    • 8.3 磁介质存储设备
    • 8.4 磁盘阵列
    • 8.5 光盘存储器
    • 8.6 键盘输入设备
    • 8.7 打印输出设备
    • 8.8 显示设备
  • 第九章 输入输出系统

    • 9.0 章节概要
    • 9.1 主机与外设的连接
    • 9.2 程序查询方式及其接口
    • 9.3 中断系统和程序中断方式
    • 9.4 DMA方式及其接口
    • 9.5 通道控制方式

扫码订阅《 》或入驻星球,即可阅读文章!

5.4 主存储器的连接与控制


GOLANG ROADMAP

# 5.4.1 主存容量的扩展

要组成一个主存,首先要考虑选片的问题,然后就是如何把芯片连接起来的问题。根据存储器所要求的容量和选定的存储芯片的容量,就可以计算出总的芯片数,即

image-20220910120105516

1.位扩展

  • 位扩展指只在位数方向扩展(加大字长),而芯片的字数和存储器的字数是一致的。

  • 如用64K×1的SRAM芯片组成64K×8的存储器,需要8个芯片。

2.字扩展

  • 字扩展是指仅在字数方向扩展,而位数丌变。
  • 如用16K×8的SRAM组成64K×8的存储器,需要4个芯片。

在同一时间内四个芯片中只能有一个芯片被选中。四个芯片的地址分配如下:

第一片 : 最低地址 0000H; 最高地址 3FFFH

第二片 : 最低地址 4000H; 最高地址 7FFFH

第三片 : 最低地址 8000H; 最高地址 BFFFH

第四片 : 最低地址 C000H; 最高地址 FFFFH

3.字和位同时扩展

  • 当构成一个容量较大的存储器时,往往需要在字数方向和位数方向上同时扩展。
  • 如用16K×4的SRAM组成64K×8的存储器,需要8个芯片。

# 5.4.2 存储芯片的地址分配和片选

片内的字选是由CPU送出的N条低位地址线完成的,地址线直接接到所有存储芯片的地址输入端(N由片内存储容量2的N次方 决定),而片选信号则是通过高位地址得到的。

实现片选的方法:− 线选法; 全译码法; 部分译码法

1.线选法

线选法就是用除片内寻址外的高位地址线直接分别接至各个存储芯片的片选端,当某地址线信息为“0”时,就选中不之对应的存储芯片。

假设4片2K×8的芯片,构成8K×8的存储器

image-20220910135251185

2.全译码法

全译码法将片内寻址外的全部高位地址线作为地址译码器的输入,把经译码器译码后的输出作为各芯片的片选信号,将它们分别接到存储芯片的片选端,以实现对存储芯片的选择。

假设4片2K×8的芯片,构成8K×8的存储器,若CPU地址总线20位。

image-20220910135334273

3.部分译码

所谓部分译码即用片内寻址外的高位地址的一部分来译码产生片选信号。

如用4片2K×8的存储芯片组成8K×8存储器,需要四个片选信号,因此只要用两位地址线来译码产生。

设地址总线有20位(A19~A0),则寻址8K×8存储器时,无论A19 ~A13取何值,只要A12 =A11 =0,而均选中第一片,只要A12 =0,A11 =1,均选中第二片,……。

也就是说,8K RAM中的任一个存储单元,都对应有2 (20-13) =27 个地址,这种一个存储单元出现多个地址的现象称地址重叠。从地址分布来看,这8KB存储器实际上占用了CPU全部的空间(1MB)。每片2K×8的存储芯片有1/4M=256K的地址重叠区。

image-20220910135443845

# 5.4.3 主存储器和CPU的连接

1.主存和CPU之间的硬连接

主存不CPU的硬连接有三组连线:地址总线(AB)、数据总线(DB)和控制总线(CB)。

image-20220910135536775

2.CPU对主存的基本操作

CPU不主存的硬连接是两个部件之间联系的物理基础,而两个部件之间还有软连接,即CPU向主存发出的读或写命令,这才是两个部件之间有效工作的关键。

(1) 读

读操作是指从CPU送来的地址所指定的存储单元中取出信息,再送给CPU,其操作过程是:

  • 地址→MAR→AB : CPU将地址信号送至地址总线
  • Read : CPU发读命令
  • Wait for MFC : 等待存储器工作完成信号
  • ((MAR))→DB→MDR : 读出信息经数据总线送至CPU

(2) 写

写操作是指将要写入的信息存入CPU所指定的存储单元中,操作过程是:

  • 地址→MAR→AB : CPU将地址信号送至地址总线
  • 数据→MDR→DB : CPU将要写入的数据送至数据总线
  • Write : CPU发写命令
  • Wait for MFC : 等待存储器工作完成信号

# 5.4.4 PC系列微机的存储器接口

数据总线一次能并行传送的位数,称为总线的数据通路宽度,常见的有8位、16位、32位、64位几种。但大多数主存储器常采取字节编址,每次访存允许读/写8位,以适应对字符类信息的处理。

1.8位存储器接口

如果数据总线为8位(如微机系统中的PC总线),而主存按字节编址,则匹配关系比较简单。一个总线周期中读/写8位

2.16位存储器接口

对于16位的微处理器8086(或80286),在一个总线周期内可读/写两个字节,即先送出偶地址,然后同时读/写这个偶地址单元和随后的奇地址单元,用低8位数据总线传送偶地址单元的数据,用高8位数据总线传送奇地址单元的数据,这样读/写的字(16位)被称为规则字。

如果读/写的是非规则字,即是从奇地址开始的字,这时需要安排两个总线周期才能实现。

8086微处理器的地址线A19 ~A1同时送至两个存储体,BHE(高位存储体)和最低位地址线A0用来选择一个或两个存储体进行数据传送。

image-20220910151529499

8086微处理器的地址线A19~A1同时送至两个存储体,BHE(高位存储体)和最低位地址线A0用来选择一个或两个存储体进行数据传送。

image-20220910151559503

  • 5.4.1 主存容量的扩展
  • 5.4.2 存储芯片的地址分配和片选
  • 5.4.3 主存储器和CPU的连接
  • 5.4.4 PC系列微机的存储器接口