计算机组织与结构体系

本文详细介绍了计算机系统的基础知识,包括冯·诺依曼架构的硬件组成、存储器的层次结构、主存储器(RAM、ROM)的工作原理,以及系统总线的概念和分类。重点讨论了动态和静态RAM的差异,以及动态RAM的刷新机制。此外,还涵盖了存储器与CPU的连接和存储器的主要技术指标。
摘要由CSDN通过智能技术生成

前言(7月8)

参考链接、文档

计算机组成原理 - 随笔分类 - codevald - 博客园 (cnblogs.com)

笔记篇:计算机组成原理第四章 存储器_存取周期500ns,每个存取周期可访问16位_繁臻的博客-CSDN博客

一、计算机系统概论(7月9)

1. 计算机系统的层次结构

软件

​ 高级语言(用编译程序翻译成汇编语言程序)

​ 汇编语言(用汇编程序翻译成机器语言程序)

​ 操作系统(用机器语言解释操作系统)

硬件

​ 机器语言(用微指令解释机器指令)

​ 微指令系统(由硬件直接执行微指令)

2. 冯·诺依曼计算机硬件

​ 存储器(存放数据和程序)

​ 运算器(算术运算、逻辑运算)

​ 控制器(指挥控制程序的运行)

​ 输入设备(将信息转换成机器能识别的形式)

​ 输出设备(将结果转换成人能熟悉的形式)

3. 现代计算机硬件框图
现代计算机硬件框图
存储器的基本组成
存储器

存储体 - 存储单元 - 存储元件 (0/1)
大楼 - 房间 - 床位 (无人/有人)

存储单元 以8位二进制作为一个存储单元,也就是一个字节

存储字 存储单元中二进制代码的组合(01010101…)

存储字长 存储单元中二进制代码的位数

按地址寻访 每个存储单元赋予一个地址号

MAR 存储器地址寄存器 反映存储单元的个数

MDR 存储器数据寄存器 反映存储字长

MAR/MDR
运算器的基本组成及操作过程
基本组成 运算
  • 加法操作过程

  • 减法同上类似

  • 乘法操作过程

  • 除法操作过程

控制器的基本组成

控制器的功能:解释指令 保证指令的按序执行

PC1:程序计数器(PC,Program counter),用于存放指令的地址。

IR2:指令寄存器(IR,Instruction Register),用来保存当前正在执行的一条指令。

PC根据指令找地址,IR通过地址找数据

运算器、控制器、存储器构成了计算机的主机

硬件系统结构图
  • 取数指令为例

    1. 取指令

      ​ 1~4 PC -> MAR -> 存储体 -> MDR -> IR

    2. 分析指令

      ​ 5 IR -> CU

    3. 执行指令

      ​ 6~9 IR -> MAR -> 存储体 -> MDR -> ACC

      1-4是取指令。经IR分析指令后,经过5,让CU执行指令。6则是根据指令提供的地址取操作数

      数的地址在IR的取数指令中存着,然后CU告诉IR去取数,所以第二次从IR开始是取数并把数存到ACC中

      IR中包含操作码和地址码,操作码传给CU进行分析,地址码传给MAR,由MAR传给存储体进行查询操作数

  • 存数指令为例

    1. 取指令

      ​ 1~4 PC -> MAR -> 存储体 -> MDR -> IR

    2. 分析指令

      ​ 5 IR -> CU

    3. 执行指令

    ​ 6~7 IR -> MAR -> 存储体

    ​ 8~9 ACC -> MDR -> 存储体

    基本都是要在CU的控制下执行

a x 2 + b x + c ax^2+bx+c ax2+bx+c 程序的运行过程
  • 将程序通过输入设备送至计算机

  • 将程序首地址,送至PC中

  • 启动程序运行

    • 取指令

      PC -> MAR -> M -> MDR -> IR

      执行完上一条指令后,执行PC+1 -> PC

    • 分析指令

      OP (IR) -> CU

    • 执行指令(取数)

      Ad(IR) -> MAR -> M -> MDR ->ACC

      ⋮ \vdots

    M指存储体

    操作码用OP表示

    Ad表示地址码部分

  • 打印结果

  • 停机

4. 计算机硬件的主要技术指标
  1. 机器字长:CPU一次能处理数据的位数 与CPU中的寄存器位数有关

  2. 运算速度

    主频

    核数,每个核支持的线程数

    吉普森法: T M = ∑ i = 1 n f i t i T_M=\sum_{i=1}^{n}f_it_i TM=i=1nfiti

    CPI 执行一条指令所需时钟周期数

    MIPS 每秒执行百万条指令

    FLOPS 每秒浮点运算次数

  3. 存储容量

    存放二进制信息的总位数

二、系统总线

1. 总线的基本概念

​ 什么是总线

​ 总线是连接各个部件的信息传输线, 是各个部件共享的传输介质

​ 总线上信息的传输

​ 串行 发送方一位一位发送,接收方一位一位接收 - - - - - - - - - - - - -

​ 并行 多个一起传输,距离近 ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡

2. 总线结构的计算机举例
  • 单总线结构框图
  • 面向 CPU 的双总线结构框图
  • 以存储器为中心的双总线结构框图

3. 总线的分类
  1. 片内总线

    芯片内部的总线

  2. 系统总线

    计算机各部件之间的信息传输线

  3. 通信总线

    用于计算机系统之间计算机系统与其他系统(如控制仪表、移动通信等)之间的通信

    传输方式

    ​ 串行通信总线

    ​ 并行通信总线

4.总线特性及性能指标
  1. 总线物理实现

  2. 总线特性

    机械特性 尺寸、形状、管脚数排列顺序

    电气特性 传输方向和有效的电平范围

    功能特性 每根传输线的功能:地址 数据 控制

    时间特性 信号的时序关系

  3. 总线的性能指标

    总线宽度 数据线的根数

    标准传输率(又叫总线带宽) 每秒传输的最大字节数(MBps

    时钟同步/异步 同步不同步

    总线复用 地址线数据线的复用(参考8086)

    信号线数 地址线、数据线和控制线的总和

    总线控制方式 突发、自动、仲裁、逻辑、计数

    其他指标 负载能力

5. 总线结构(没用)
  • 双总线结构

  • 三总线结构

    1689129588621.png
  • 四总线结构

    1689129545272.png
6. 总线控制
  1. 总线判优控制

    1. 概念

      • 主设备(模块)

        对总线有控制权

      • 从设备(模块)

        响应从主设备发来的总线命令

      • 总线判优控制(总线仲裁)

        1689130449148.png
        • 链式查询

          1689130797511.png
        • 计数器定时查询

          1689142811578.png
        • 独立请求方式

          1689143427040.png
  2. 总线通信控制

    1. 目的

      解决通信双方协调配合问题

    2. 总线传输周期

      申请分配阶段 主模块申请,总线仲裁决定
      寻址阶段 主模块向从模块给出地址命令
      传数阶段 主模块和从模块交换数据
      结束阶段 主模块撤消有关信息

总线通信的四种方式

同步通信3统一时标控制数据传送
异步通信 采用应答方式,没有公共时钟标准
半同步通信 同步异步结合
分离式通信 充分挖掘系统总线每个瞬间潜力

  • 同步式数据输入

    1689145030519.png 1689218399055.png

    低电平有效意思是此时该命令占用总线

    先给地址,再给命令,再读数据?

  • 同步式数据输出

    1689165674300.png

    先给地址,再给数据,再写命令?

    写命令在T2上升沿变成了低电平,低电平有效,写命令就开启了,等到T4上升沿,写命令高电平,失效。

    就是按规定时间做事情,而且要抢时间,所以数据提前拿出来,收到写入命令的时候直接拿数据写。

  • 异步通信

    1689219289119.png

    异步定时的优点是总线周期长度可变,不把响应时间强加到功能模块上,因而允许快速和慢速的功能模块都能连接到同一总线上。但这以增加总线的复杂性和成本为代价。

  • 半同步通信(同步、异步结合)

    T 1 T_1 T1 主模块发地址

    T 2 T_2 T2 主模块发命令

    T w T_w Tw W A I T ‾ \overline{WAIT} WAIT为低电平时,等待一个 T T T

    T w T_w Tw W A I T ‾ \overline{WAIT} WAIT为低电平时,等待一个 T T T

    ⋮ \vdots

    T 3 T_3 T3 从模块提供数据

    T 4 T_4 T4 从模块撤销数据,主模块撤销命令

    以读数据为例

    1689220107254.png

    先给地址,给命令,如果从设备不能准备好数据,就通过 W A I T ‾ \overline{WAIT} WAIT信号发一个低电平,让主设备等待。主设备每次检测 W A I T ‾ \overline{WAIT} WAIT信号,如果是低电平,插入一个时钟周期 T w T_w Tw继续等待。

    说听不懂的其实是被这些线给迷惑了,你就记住4个时钟周期就是4门考试,每一门时间固定,要做完该做的题。

    W A I T ‾ \overline{WAIT} WAIT信号不占总线

以上三种通信共同点(以输入数据为例)

主模块发地址 、命令 占用总线

从模块准备数据 不占用总线 总线空闲(应该是浪费了,不能闲着,所以有了分离式通信)

从模块向主模块发数据 占用总线

  • 分离式通信

    1689234228460.png

    特点

    1. 各模块有权申请占用总线
    2. 采用同步方式通信,不等对方回答
    3. 各模块准备数据时,不占用总线
    4. 总线被占用时,无空闲

    充分提高了总线的有效占用

    总线:我的命不是命?😓

三、存储器

1. 概述
  1. 分类

    • 按存储介质分类

      半导体器件(半导体存储器) 磁极材料(磁表面存储器、磁芯存储器) 光存储器(光盘存储器)

    • 按存取方式分类

      • 存取时间与物理地址无关(随机访问)

        随机存储器 在程序的执行过程中可读可写

        只读存储器 在程序的执行过程中只读

      • 存取时间与物理地址有关(串行访问)

        顺序存取存储器 磁带

        直接存取存储器 磁盘

    • 按在计算机的作用中分类(读写功能)

      1689236597391.png
  2. 存储器层次结构

    • 存储器三个主要特性的关系
    1689237099474.png

    为什么要分这么多呢?

    大概是因为用户想要速度快、容量大、便宜的,但是没有。只能用这种层次结构,形成一个存储体系4

    • 缓存 - 主存层次和主存 - 辅存层次(两个存储层次)

      1689303612434.png
2.主存储器
1. 概述
  1. 主存的基本组成

    1689303949570.png
  2. 主存和CPU之间的联系

    1689306139352.png
  3. 主存中存储单元地址的分配

    1689324516977.png

    12345678H是8位十六进制(也就是8个16进制数),左边大端方式12所在的位置是低地址,1个十六进制数转化为二进制占4位,因为一个字节是8位二进制,因此一个格子里放2个十六进制数。

    大、小端序的由来5

    无论是大端还是小端,读数据都是先从低位开始的,但是小端在读取时,不用再转变顺序了,读数据先从低位开始放。大端读数据,先放在高位。

    1689671947940.png

    字地址 0 4 8,实际是因为1个字=4个字节, 也就是0123(0) 4567(4) 891011(8)

    假如地址线有24根,一共就有224位,也就是224个地址。转化之后就是16MB的地址。这些地址表示存储单元的位置,所以存储单元的个数也就是16MB。

    2 24 ∗ 8 b i t = 16 M ∗ 1 B = 16 M B 2^{24}*8bit=16M*1B=16MB 2248bit=16M1B=16MB

    W是word的简称,即一个字。

    如果是按字寻址,我们知道字长32位,那么总容量除以字长就是存储字的个数

    地址数不变的情况下,若字长为32位(bit),则存储字 = (16MB x 8bit)/ 32 = 4MW

    bit 比特位/位 一般简写为小写字母b

    byte/Byte 字节 一般简写为大写字母B

    其中K、M、G、T之类的换算(只是单纯的K/M/G/T,没有加上字节B或者位b),依次按 2 10 2^{10} 210倍增加

    1 T = 2 10 G = 2 20 M = 2 30 K 1T=2^{10}G=2^{20}M=2^{30}K 1T=210G=220M=230K

    1 B = 2 3 b 1B=2^3b 1B=23b

    存储器的容量=主存容量+辅存容量

    主存容量:主存中存放二进制代码的二进制的总位数

    存储容量=存储单元个数*存储字长( 2 M A R ∗ M D R 2^{MAR}*MDR 2MARMDR

    这里的存储容量是虚存的容量(寻址空间)

    MAR的位数反映了存储单元的个数,MDR的位数反映了存储字长。

    地址线的位数与存储单元的个数有关:如地址线为20根,存储单元个数为 2 20 2^{20} 220

    (所以MAR的位数与地址线的位数是相对应的)(应该吧)

  4. 主存的技术指标

    1689336409176.png

    存取周期:准备时间(前摇),读出/写入(技能释放),复原时间(后摇)

MDR,存储单元,存储字长什么关系(😵)

存储单元是计算机中用于存储数据或指令的最小单位,每个存储单元都有一个唯一的地址。存储字长是计算机中指令或数据的位数,通常以比特(bit)为单位进行表示。例如,一个 8 位的存储字长可以存储一个字节的数据,而一个 32 位的存储字长可以存储一个 4 字节的整数。

MDR 是一个用于暂存从存储单元中读取的数据或将数据写入存储单元的寄存器。MDR 的大小通常与存储字长相对应,即如果存储字长是 8 位(一个字节),那么 MDR 的大小通常也是 8 位;如果存储字长是 16 位或 32 位,那么 MDR 的大小也相应地是 16 位或 32 位。这是为了确保 MDR 可以正确地暂存从存储单元中读取的数据或将数据写入存储单元。

因此,MDR、存储单元和存储字长之间的关系可以总结如下:

  1. 存储单元是计算机中用于存储数据或指令的最小单位,每个存储单元都有一个唯一的地址。
  2. 存储字长是计算机中指令或数据的位数,通常以比特为单位进行表示。
  3. MDR 是一个用于暂存从存储单元中读取的数据或将数据写入存储单元的寄存器。
  4. MDR 的大小通常与存储字长相对应,以确保它可以正确地暂存从存储单元中读取的数据或将数据写入存储单元。
2. 半导体存储芯片简介
  1. 半导体存储芯片的基本结构

    1689347452771.png
    地址线(单向)数据线(双向)芯片容量
    由CPU指向存储器,或者由IO设备的控制器指向存储器读向外,写向内
    1041K×4位
    14116K×1为
    1388K×8位

    片选线:芯片选择信号,指出这次存/取操作给出的地址是不是这个存储芯片的地址

    C S ‾ ( 芯 片 选 择 信 号 ) C E ‾ ( 芯 片 使 能 信 号 ) 低 电 平 表 示 有 效 \overline{CS}(芯片选择信号)\overline{CE}(芯片使能信号)低电平表示有效 CSCE使

    读写控制线:表示这次对半导体芯片的操作是读操作还是写操作。可以用一根线或者两根线表示,用一根线表示的话是 W E ‾ \overline{WE} WE,用两根线表示的话是 W E ‾ \overline{WE} WE O E ‾ \overline{OE} OE

    存储芯片片选线的作用

    1689391470158.png

    65535 = 2 16 − 1 = 64 K − 1 65535=2^{16}-1=64K-1 65535=2161=64K1

  2. 半导体存储芯片的译码驱动方式

    • 线选法

      1689393707267.png

      地址译码器输入4根线,输出24根线。

      但是这就有个弊端,假设一个1M×8的存储器,输入就20根线,输出就有220根线,就是1,048,576。所以有了重合法

    • 重合法

      1689393642000.png

      将地址分为行地址和列地址

      一个1M×8的存储器,行地址和列地址输入都是10根线,输出有1K个线,即1024

3. 随机存取存储器(RAM)
1. 静态RAM(SRAM)

(Static Random Access Memory)静态随机存储器

1689394491009.png

核心是触发器

T 1 ∼ T 4 T_1 \sim T_4 T1T4,一段是1,另一端肯定是0,决定了用什么样的电路存放0/1

因为要存0或1,所以触发器要有两种稳定状态,mos管的两种稳态就是一边高电位一边低电位

  • 读操作

    1689395119691.png
  • 写操作

    1689410709336.png

    左侧的写放大器,要经过取非以后才输出

    静态 RAM 芯片举例:Intel 2114 外特性

    1689411092465.png

    Intel 2114 RAM 矩阵 (64 × 64)

    1689411315933.png

    行地址是000000,第0行被选中。

    列地址是0000,每一组的第0列被选中

    • 读操作
    1689561335245.png
    • 写操作

    类似读操作

    1689561833584.png
2. 动态 RAM(DRAM)

(Dynamic Random Access Memory)动态随机存取存储器

1689562649842.png

核心是电容 C g , C s C_g,C_s CgCs T 1 , T 2 , T 3 , T T_1,T_2,T_3,T T1,T2,T3T是控制管

左边叫三管动态RAM,右侧叫单管动态RAM。原理一样,信息都是保存在电容中,有电是1,没电是0

  • 读/写操作

    1689659974996.png

    两根竖线中较短的那根代表栅极(那有一块绝缘层。三极管中栅极那边有电流的时候,相当于形成通路,右边的两条线可以通电,但是电不会通过绝缘板到栅极)

    预充电信号使得T4开关导通,使得读数据线的信号为1,高电平,读选择线为高电平使得T2开关导通

    • 假设Cg中无电荷(存储的为0,低电平),则T1开关不导通,读数据线上的数据始终是1,与原存信息相反
    • 假设Cg中有电荷(存储的为1,高电平),则T1开关导通,由于T1接地,读数据线上的数据是0,与原存信息相反

    写选择线为高电平,激活T3,这个时候写数据线上的数据就会被传到到Cg里面(充电或放电),实现数据的写入,写入和输入信息相同。

    动态 RAM 芯片举例:

三管动态 RAM 芯片 (Intel 1103)

  • 读操作

    1689660827683.png

    芯片容量1K×1,每次读入写出只有1位数据

    行地址译码器中,译码的不止有地址,还有读写信号。

    刷新放大器:读一次之后电容中电荷减少,需要刷新充电补电荷。(电容会漏电,信号会消失,用这个补充)

  • 写操作

    类似读操作

单管动态 RAM 4116 (16K × 1位) 外特性

1689661532496.png

16K对应14条地址线,但是4116只有7条地址线?

因为这14位地址,分两次传送。先接收到7位行地址,放在行地址缓存器中,然后接收7位列地址,放在列地址缓存器中。行列地址经过译码后,选中给定的存储单元进行输入和输出。

  • 读操作

    1689662180925.png

    这个图中,竖着的是行,横的是列,别管为啥这样。

    63行和64行之间的读放大器6,是”跷跷板电路“,意思是读放大器一端强制成1的话,另一端就会变成0。

    行地址是011 1111,即63(26-1)行,列地址是000 0000,第0列被选中。

    读放大器左侧,有电是1,没电是0。读放大器右侧,有电是0,没电是1。

  • 写操作

    写入的是1的话,实际电容是没电的。刚好对应了读操作

3. 动态 RAM 刷新

因为动态RAM是利用电容存储电荷的方式保存信息,会漏电,信号会消失!

刷新只与行地址有关(存储单元和读写数据线按行分布的)

刷新的实质:先将原信息读出,再由刷新放大器形成原信息重新写入的再生成的过程

为什么要进行刷新:存储单元被访问是随机的,有些存储单元可能长时间的不被访问,不进行存储器的读写操作,其存储单元内的原信息就可能会丢失。

刷新是一行行进行的,必须在刷新周期内

刷新周期:对DRAM的所有存储单元恢复一次原状态的时间间隔

刷新间隔:两次刷新的起始时间差(某行从第一次刷新到第二次刷新的等待时间)

行刷新间隔:两行刷新的起始时间差

刷新时间:规定的一个周期内刷新的总时间

刷新一行的时间是等于存取周期的。因为刷新的过程与一次存取相同,只是没有在总线上输入输出。

动态RAM共有三种刷新方式:集中刷新分散刷新异步刷新

  • 集中刷新(存取周期 t C t_C tC 0.5 μ s 0.5\mu s 0.5μs)以128 × 128矩阵为例

    在规定的一个刷新周期内,对全部存储单元集中一段时间逐行进行刷新(用专门的时间进行全部刷新)

    1689664582474.png

    3872 = 2 m s ÷ 0.5 μ s = 4000 − 128 3872=2ms\div0.5\mu s=4000-128 3872=2ms÷0.5μs=4000128

    当用64μs进行集中刷新时,此时不能进行任何的读/写操作,故将这64μs称为“死区”或“死时间

    优点:速度高
    缺点:存在死区,死时间长

  • 分散刷新(存取周期 t C t_C tC 1 μ s 1\mu s 1μs)以128 × 128矩阵为例

    t C = t M + t R = 0.5 μ s + 0.5 μ s t M 指 原 来 的 读 写 周 期 t R 指 专 门 用 于 动 态 R A M 芯 片 某 一 行 的 刷 新 t_C=t_M+t_R=0.5\mu s+0.5\mu s\quad t_M指原来的读写周期\quad t_R指专门用于动态RAM芯片某一行的刷新 tC=tM+tR=0.5μs+0.5μstMtRRAM

    1689677400316.png

    此时比2ms小的多 在刷新到此处隔128μs

    优点:无死区
    缺点:存取周期长,整个系统的速度降低了,而且刷新太快了,没必要。

  • 异步刷新(分散刷新与集中刷新相结合)

    2ms内对每行刷新一遍, 2000 μ s ÷ 128 ≈ 15.6 μ s 2000μs÷128≈15.6μs 2000μs÷12815.6μs

    1689677572186.png

    即每隔15.6μs刷新一行,每行的刷新时间仍然为0.5μs。刷新一行就停一个存储周期,“死时间缩短为0.5μs”(15.6μs内刷新一行 其他全用来读写)

    这种方案克服了分散刷新许独占0.5μs用于刷新,使存取周期加长且降低系统速度的缺点,又不会出现集中刷新的访问“死区”问题,从根本上提高了工作效率。

4. 动态 RAM 和静态 RAM 的比较
1689678052006.png

引脚这里就是行地址和列地址线的多少,静态需要同时存放行列地址的消息,而动态行列用的是同一组地址线,只是不同时间传入不同消息,先传行再传列

4. 只读存储器(ROM)(感觉没用)
  1. 掩模ROM(MROM)

    行列选择线交叉处有 MOS 管为 1

    行列选择线交叉处无 MOS 管为 0

  2. PROM(一次性编程)

  3. EPROM(多次性编程)

  4. EEPROM(多次性编程)

  5. Flash Memory(闪速型存储器)

5. 存储器与 CPU 的连接
  1. 存储器容量的扩展

    • 位扩展(增加存储字长)

      用 2片 1K×4位 存储芯片组成 1K×8位 的存储器

      image-20230718191958544

      10根地址线,8根数据线。

    • 字扩展(增加存储字的数量)

      用 2片1K×8位 存储芯片组成 2K×8位 的存储器

      1689817047294.png

      11根地址线,8根数据线。其中 A 10 A_{10} A10是用来选择使用哪个芯片。

      片选线7是控制线的一种

    • 字、位扩展

      用 8片1K×4位 存储芯片组成 4K×8位 的存储器

      1689817627477.png

      11根地址线(4K),8根数据线(8位)。

      A 0 ∼ A 9 A_0\sim A_9 A0A9:将每个芯片连接(1K)。 A 10 ∼ A 11 A_{10}\sim A_{11} A10A11:片选出需要用到的芯片,将下面8个芯片分成4组,对应00 01 10 11(4K)。 D 0 ∼ D 7 D_0\sim D_7 D0D7:前面4组,每组都接上,两个4K等于8K。

  2. 存储器与 CPU 的连接

    1. 地址线的连接
    2. 数据线的连接
    3. 读/写命令线的连接
    4. 片选线的连接
    5. 合理选择存储芯片
    6. 其他 时序、负载

    例题:

    已知某64位机主存采用半导体存储器,其地址码为26位,若使用4MX8位的DRAM芯片组成该机所允许的最大主存空间,并选用内存条结构形式,问:
    (1)若每个内存条为 16MX64 位,共需几个内存条?
    (2)每个内存条内共有多少 DRAM芯片?
    (3)主存共需多少DRAM芯片?CPU如何选择各内存条?

    1689819825163.png
6. 存储器的校验
  1. 为什么要校验

    以内存为例,内存是电子设备,信息保存在电容当中,若采用静态RAM,则是保存在四管的触发器当中,若内存所处的电磁环境比较复杂,或在空间环境下受到带电粒子的打击,可能造成电容的充放电或触发器的翻转,存在在存储器的信息可能会出错。

  2. 纠错

    1689851331429.png

    {}里面是规定的合法代码串,不在{}里面的就说明是错的。

    以第4个为例,检错就是知道代码不在合法代码集合里,纠错就是可以将与合法代码相差位数个数最小的判定为该合法代码

注释


  1. 程序计数器(PC,Program counter),用于存放指令的地址。为了保证程序(在操作系统中理解为进程)能够连续地执行下去,CPU必须具有某些手段来确定下一条指令的地址。当执行一条指令时,首先需要根据PC中存放的指令地址,将指令由内存取到指令寄存器中,此过程称,为“取指令”。与此同时,PC中的地址或自动加1或由转移指针给出下一条指令的地址。此后经过分析指令,执行指令。完成第一条指令的执行,而后根据PC取出第二条指令的地址,如此循环,执行每一条指令。 ↩︎

  2. 指令寄存器(IR,Instruction Register),用来保存当前正在执行的一条指令。是临时放置从内存里面取得的程序指令的寄存器,用于存放当前从主存储器读出的正在执行的一条指令。当执行一条指令时,先把它从内存取到数据寄存器(DR,Data Register)中,然后再传送至IR。指令划分为操作码和地址码字段,由二进制数字组成。为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作。指令译码器就是做这项工作的。指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后,即可向操作控制器发出具体操作的特定信号。 ↩︎

  3. 同步定时方式是指系统采用一个统一的时钟信号来协调发送和接收双方的传送定时关系。若干个时钟产生相等的时间间隔,每个间隔构成一个总线周期。在一个总线周期中,发送方和接收方可进行一次数据传送。因为采用统一的时钟,每个部件或设备发送或接收信息都在固定的总线传送周期中,一个总线的传送周期结束,下一个总线传送周期开始。优点:传送速度快,具有较高的传输速率;总线控制逻辑简单。缺点:主从设备属于强制性同步;不能及时进行数据通信的有效性检验,可靠性较差。同步通信适用于总线长度较短8及总线所接部件的存取时间比较接近的系统。 ↩︎

  4. 它是指把两种或两种以上的存储介质构成的存储器,用软件、硬件、或者是软硬件相结合的方式,连接成一个整体,使得它从某一级程序员的角度来看,它拥有的是一个高速度、大容量、低价格的一个存储 ↩︎

  5. 术语“little endian(小端)”和“big endian(大端)”出自Jonathan Swift的《格列佛游 记》(Gulliver’s Trabels)一书,其中交战的两个派别无法就应该从哪一端(小端还是大端)打开一个半熟的鸡蛋达成一致。 ↩︎

  6. DRAM存储单元的电荷表示存储信息,由于DRAM存储单元的电荷电压非常低,如果没有进行合适的放大处理,读取的信号会非常微弱,而且容易受到干扰,从而导致误码率增加。 读放大器需要通过对比存储单元的电荷电压和参考电压之间的差异来放大信号。 ↩︎

  7. 地址线确实能够已经确定了存储芯片的位置,但存储器可不是理想中的一个芯片构成。片选线则为你选择那个芯片提供了一个选择。举个例子,某台机器需要你2K 内存,或许最好的办法就是找个2K的芯片来,然后直接把地址线相连,然后让片选线永远选通即可,这是最好的情况。但往往不是这样的。比如说你手头上没有2k的,只有1K的芯片2个,那你可以把这2个1K的芯片合并成一个2K的,但注意的是1K芯片有且只可能有10根地址线,而2K有11根地址线,如果没有片选线,仅凭11根地址线当然也可以把2个1K的合并起来,但可以试试,这样,你就会发现地址空间有点怪怪的,而且从设计上来说,感觉就更怪。多了个片选线后,就可以把最高位地址线连到片选信号上,然后就可以看到地址空间是连续的。主要是因为生产一个大芯片是不太可能的,因为一旦坏了就换正个芯片,小芯片换起来比较简单,2是因为,一条内存条上不是所有芯片都是同一种性质的,可能有的是ROM,有的是RAM,还可能是SRAM,等等。 ↩︎

  8. 同步方式对任何两个设备之间的通信都给予同样的时间安排。就总线长度来讲,必须按距离最长的两个设备的传输延迟来设计公共时钟。但是总线长了势必降低传输频率。 ↩︎ ↩︎

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值