学习编程需了解的计算机组成原理基础知识

本人简单总结了一点计算机组成原理方面的知识,对于编程来讲,了解这些基础知识,可以更加轻易的掌握内存管理,线程技术等方面的知识。

1.电子数字计算机和电子模拟计算机的区别:电子数字计算机处理的信息是在时间上离散的数字量,运算的过程是不连续的,电子模拟计算机中处理的信息是连续变换的物理量,运算的过程是连续的。

2.冯·诺依曼计算机的特点是什么?其中最主要的一点是什么?:计算机(指硬件)应由运算器,存储器,控制器,输入设备,输出设备五大部件组成;计算机内部采用二进制来表示指令和数据;将编好的程序和原始数据事先存入存储器中,然后再启动计算机工作。

3.计算机的硬件组成及功能:输入设备:把人们编好的程序和原始数据送到计算机中去,并且将他们转成计算机内部所能识别和接受的信息方式;输出设备:将计算机的处理结果以人或其他设备所能接受的信息方式;存储器:用来存放程序和数据;运算器:对信息进行处理和运算;控制器:按照人们预先确定的操作步骤,控制整个计算机的各部件有条不紊地自动工作。

4.什么叫总线?总线是一组能为多个部件服务的公共信息传递线路,它能分时地发送与接收各部件的信息。单总线结构及各部件都连接在单一的一组总线上,这个总线被称为系统总线。CPU与主存,CPU与外设之间可以直接进行信息交换,主存与外设,外设与外设之间也可以直接进行信息交互,而无须经过cpu的干预。

5.计算机的层次结构:多层次结构; 0:硬件组成的实体 1:微程序级(机器语言是微指令集)2:传统机器几(机器语言是该机的指令集--程序员用机器指令编写的程序可以由微程序进行解释)3:操作系统级(功能看:1直接管理传统机器的软硬件资源,2传统机器的延伸) 4:汇编语言级数(完成汇编语言编译的程序叫汇编语言)5:高级语言(由编译程序来完成高级语言的翻译工作)6:应用语言(满足计算机用提--面向问题的应用语言)

6.计算机的主要指标:机器字长,数据同理宽度,主存容量,运算速度等:机器字长:指参与运算的数的基本位数它是由加法器,寄存器的位数决定的,数据通路宽度:是指数据总线第一次所能并行传送信息的位数,主存容量是指主存储器的全部信息量,运算速度与机器的主频,执行什么样的操作,主存本身的速度等许多因数有关。

指令长度,双操作数运算类指令的执行,地址个数对程序长度和指令长度的影响,不同地址数指令,非规整性编码----扩展操作码法,地址码位数与主存容量和最小寻址单位的关系,指令寻址和数据寻址,常见数据寻址方式(CPU 根据指令约定的寻址方式对地址字段的有关信息作出解释 ,以找到操作数 。 有 的指令设置专门的寻址方式字段 ,以说明采用何种寻址方式 ,有的指令则通过操作码的含 义 ,隐含约定采用何种寻址方式 。 对于涉及多个地址的指令 ,各个地址可以有自己的寻址 方式 ,也就是说 ,一条指令中可以有多种寻址方式 。

一个指令系统具有哪几种寻址方式 ,这是设计指令系统的关键 ,也是初学者理解一个 指令系统的难点所在 。 因此 ,在这部分内容的教学过程中 ,应帮助学生从众多的寻址方式 中归纳出一条清晰的思路来 。

首先看指令要调用的操作数可能存放在什么地方 ? 经过分析发现 ,操作数所在的位 置无非有下列 5 种情况 :

1 操作数就包含在某指令中或紧跟着某指令 ,相应地需要由指令直接给出操作数 。 2 操作数在 CPU 的某个寄存器中 ,相应地需要指令中给出寄存器编号 。

3 操作数在主存中 ,则指令应以某种方式给出主存单元的地址码 。 这里还可分为几

种情况 :有的是对单个操作数进行处理 ;有的是对一个连续的数组或对数组中的某个元素 进行处理 ;有的是对一个表格或对表格中的某个元素进行处理等 。 需要相应地采取不同 的寻址方式 。

4 操作数在堆栈区中 ,可以隐含约定由堆栈指针 SP 提供地址 。

5 操作数在某个 I/O 接口的寄存器中 ,指令中需要提供 I/O 端口地址(独立编址)或 总线地址(统一编址)。

接下来 ,沿着从简到繁的思路 ,大致可将众多的寻址方式归纳为以下 4 大类 :

1 立即寻址———在读取指令时从指令中获得操作数。

2 直接寻址类 ——— 直接给出寄存器编号或主存单元地址 ,以获取操作数(如寄存器

寻 址 、直 接 寻 址 ) 。

3 间接寻址类 ——— 先从某寄存器或主存中读取地址 ,再按这个地址访问主存 ,读取 操 作 数 ( 如 寄 存 器 间 接 寻 址 、间 接 寻 址 ) 。

4 变址类———指令给出的是形式地址,经过某种计算(例如相加、相减、高低位地址 拼接等) ,才获得有效地址 ,据此访问主存以读取操作数 (如变址寻址 、基址寻址 、相对寻 址 、页 面 寻 址 ) 。

尽管各种计算机的寻址方式种类甚多 ,尤其是不同系列的计算机之间更是既有大体 相同之处 ,也有各具特色之处 。 不同的计算机对寻址方式的分类和命名也有各自的规定 , 但几乎都是以上述 4 类为最基本的寻址方式 ,其他的则是它们的变型或组合 。 沿着上述 思路去学习 ,可以更好地理解各种寻址方式的含义 。)

各种数据寻址方式的速度比较:操作数可以在主存中 ,也可以在寄存器中 ,甚至可以在堆栈中 。 各种不同的 寻址方式获取操作数的速度是不相同的 。 9 种基本的数据寻址方式获取操作数的顺序依 次是 :

立即寻址

寄存器寻址 EA = Ri

直接寻址 EA = A

寄存器间接寻址 EA = (Ri )

页面寻址 EA = PC//A

变址寻址 EA = (Rx )+ A

基址寻址 EA = (Rb )+ A

相对寻址 EA = (PC)+ A

间接寻址 EA = (A)

其中变址寻址 、基址寻址和相对寻址又可以统称为偏移寻址 ,这几种寻址方式形成有

效地址 EA 的机制相同 ,都是将指定寄存器的内容与指令中的地址码字段相加 ,所以获取 操作数的速度相同 。

直接寻址 、寄存器间接寻址 、页面寻址 、变址寻址 、基址寻址 、相对寻址等获取操作数 都只需要访问一次主存(不含取指令本身) ,根据有效地址 EA 得到的难易程度 ,速度上稍 有差别 。 寄存器间接寻址由于要先到寄存器中取出操作数的地址 ,所以获取操作数的速 度要稍慢于直接寻址 ,而页面寻址的有效地址 EA 通过简单的拼接得到 ,将稍快于变址寻 址 、基址寻址和相对寻址 。

间接寻址指令中给出的地址 A 不是操作数的地址而是操作数地址的地址 。 这就意 味着为获取一个操作数 ,至少需要两次访问主存(不含取指令本身)。

面向堆栈的操作指令:

进栈指令(PUSH) 在栈顶增加一个新元素

出栈指令 (PO P ) 一元操作 二元操作

从栈顶取走一个元素

对栈顶元素进行操作以后 ,用结果替换栈顶元素 对栈顶的两个元素进行操作以后 ,用结果替换栈顶元素。

存储器堆栈组织

目前多数计算机的堆栈是在主存中开辟一个堆栈区 ,为了避免堆栈区与其他存储区 混淆 ,堆栈除需要有栈顶指针寄存器 SP 以外 ,还应当设置堆栈上下界标志寄存器 。 图 3唱7(a)表示存储器堆栈的组织结构 ,其中 B(Bottom)寄存器为堆栈下界(栈底)指针 , L(Limit)寄存器为堆栈上界(栈顶)指针 。 对于自底向上生成的堆栈 ,在进栈时 ,SP > L 称为堆栈“上溢” ,这是不允许的 ;在出栈时 ,SP < B 称为堆栈“下溢” ,也是不允许的 。 因 此 ,堆栈操作时 ,不但 SP 要修改 ,还需要判界 。 若采用硬件方法实现修改栈指针 SP ← SP ± 1 ,以及判界操作 ,将会大大加速堆栈操作速度 。

为了进一步提高堆栈操作速度 ,还可以将栈顶部的两个元素取到寄存器中 ,如图 3唱7(b) 所示 。 指令对栈顶和次栈顶的数据操作可直接在寄存器中进行 ,此时 ,栈顶指针 SP 指向 第三个栈元素 。 有的堆栈计算机 ,如 HP3000 ,将堆栈的头 4 个元素存于寄存器中 。 这种设置栈顶元素寄存器的硬件结构在面向堆栈运算的计算机中是普遍采用的 。

综 合 起 来 ,硬 件 对 堆 栈 提 供 的 支 持 有 :栈 顶 指 针 S P 及 其 操 作 时 的 修 改 ,堆 栈 的 上 、下

界寄存器及其判界 ,以及栈顶元素寄存器 3 种 。

1 .指令长度和机器字长有什么关系 ? 半字长指令 、单字长指令 、双字长指令分别表 示什么意思 ?

解 :指令长度与机器字长没有固定的关系 ,指令长度可以等于机器字长 ,也可以大于 或小于机器字长 。 通常 ,把指令长度等于机器字长的指令称为单字长指令 ;指令长度等于 半个机器字长的指令称为半字长指令 ;指令长度等于两个机器字长的指令称为双字长 指令 。

2 .零地址指令的操作数来自哪里 ? 一地址指令中 ,另一个操作数的地址通常可采用 什么寻址方式获得 ? 各举一例说明 。

解 :双操作数的零地址指令的操作数来自堆栈的栈顶和次栈顶 。 双操作数的一地址 指令的另一个操作数通常可采用隐含寻址方式获得 ,即将另一操作数预先存放在累加器 中 。 例如 ,前述零地址和一地址的加法指令 。

3 .某机为定长指令字结构 ,指令长度 16 位 ;每个操作数的地址码长 6 位 ,指令分为 无操作数 、单操作数和双操作数三类 。 若双操作数指令已有 K 种 ,无操作数指令已有 L 种 ,问单操作数指令最多可能有多少种 ? 上述三类指令各自允许的最大指令条数是多少 ?解 : X = (2 - K ) × 2 - j 6 k 6 52 双操作数指令的最大指令数 :24- 1 。 单操作数指令的最大指令数 :15 × 26- 1 (假设双操作数指令仅 1 条 ,为无操作数指令留出 1 个扩展窗口) 。 无操作数指令的最大指令数 :216 - 212- 26 。 其中 212 为表示某条二地址指令占用的 编码数 ,26 为表示某条单地址指令占用的编码数 。 此时双操作数和单操作数指令各仅有1条。

1 .如何区别存储器和寄存器 ? 两者是一回事的说法对吗 ?

解 :存储器和寄存器不是一回事 。 存储器在 CPU 的外边 ,专门用来存放程序和数 据 ,访问存储器的速度较慢 。 寄存器属于 CPU 的一部分 ,访问寄存器的速度很快 。

2 .存储器的主要功能是什么 ? 为什么要把存储系统分成若干个不同层次 ? 主要有 哪些层次 ?

解 :存储器的主要功能是用来保存程序和数据 。 存储系统是由几个容量 、速度和价格各不相同的存储器用硬件 、软件 、硬件与软件相结合的方法连接起来的系统 。 把存储系 统分成若干个不同层次的目的是为了解决存储容量 、存取速度和价格之间的矛盾 。 由高 速缓冲存储器 、主存储器 、辅助存储器构成的三级存储系统可以分为两个层次 ,其中高速 缓存和主存间称为 Cache - 主存存储层次(Cache 存储系统) ;主存和辅存间称为主存 — 辅 存存储层次(虚拟存储系统)。

3 .什么是半导体存储器 ? 它有什么特点 ?

解 :采用半导体器件制造的存储器 ,主要有 M OS 型存储器和双极型存储器两大类 。 半导体存储器具有容量大 、速度快 、体积小 、可靠性高等特点 。 半导体随机存储器存储的 信息会因为断电而丢失 。

4 .SRAM 记忆单元电路的工作原理是什么 ? 它和 DRAM 记忆单元电路相比有何异 同点 ?

解 :SRAM 记忆单元由 6 个 MOS 管组成 ,利用双稳态触发器来存储信息 ,可以对其 进行读或写 ,只要电源不断电 ,信息将可保留 。 DRAM 记忆单元可以由 4 个和单个 MOS 管组成 ,利用栅极电容存储信息 ,需要定时刷新 。

5 .动态 RAM 为什么要刷新 ? 一般有几种刷新方式 ? 各有什么优缺点 ?

解 :DRAM 记忆单元是通过栅极电容上存储的电荷来暂存信息的 ,由于电容上的电 荷会随着时间的推移被逐渐泄放掉 ,因此每隔一定的时间必须向栅极电容补充一次电荷 , 这个过程就叫做刷新 。

常见的刷新方式有集中式 、分散式和异步式 3 种 。 集中方式的特点是读写操作时不 受刷新工作的影响 ,系统的存取速度比较高 ;但有死区 ,而且存储容量越大 ,死区就越长 。 分散方式的特点是没有死区 ;但它加长了系统的存取周期 ,降低了整机的速度 ,且刷新过 于频繁 ,没有充分利用所允许的最大刷新间隔 。 异步方式虽然也有死区 ,但比集中方式的 死区小得多 ,而且减少了刷新次数 ,是比较实用的一种刷新方式 。

6 .一般存储芯片都设有片选端CS ,它有什么用途 ?

解 :片选线CS用来决定该芯片是否被选中 。 CS = 0 ,芯片被选中 ;CS = 1 ,芯片不 选中 。

7 .DRAM 芯片和 SRAM 芯片通常有何不同 ? 解 :主要区别有 :

1 DRAM 记忆单元是利用栅极电容存储信息 ;SRAM 记忆单元利用双稳态触发器 来存储信息 。

2 DRAM 集成度高 ,功耗小 ,但存取速度慢 ,一般用来组成大容量主存系统 ;SRAM 的存取速度快 ,但集成度低 ,功耗也较大 ,所以一般用来组成高速缓冲存储器和小容量主 存系统 。

3 SRAM 芯片需要有片选端CS ,DRAM 芯片可以不设CS ,而用行选通信号RAS 、列选通CAS兼作片选信号 。

4 SRAM 芯片的地址线直接与容量相关 ,而 DRAM 芯片常采用了地址复用技术 ,以

减少地址线的数量 。

8 .有哪几种只读存储器 ? 它们各自有何特点 ?

解 :MROM :可靠性高 ,集成度高 ,形成批量之后价格便宜 ,但用户对制造厂的依赖

性过大 ,灵活性差 。

PROM :允许用户利用专门的设备(编程器)写入自己的程序 ,但一旦写入后 ,其内容

将无法改变 。 写入都是不可逆的 ,所以只能进行一次性写入 。

EPROM :不仅可以由用户利用编程器写入信息 ,而且可以对其内容进行多次改写 。

EPROM 又可分为两种 :紫外线擦除(UVEPROM )和电擦除(EEPROM ) 。

闪速存储器 :既可在不加电的情况下长期保存信息 ,又能在线进行快速擦除与重写 ,

兼备了 EEPROM 和 RAM 的优点 。

9 .说明存取周期和存取时间的区别 。

解 :存取周期是指主存进行一次完整的读写操作所需的全部时间 ,即连续两次访问

存储器操作之间所需要的最短时间 。 存取时间是指从启动一次存储器操作到完成该操作 所经历的时间 。 存取周期一定大于存取时间 。

10 .一个 1K × 8 的存储芯片需要多少根地址线 、数据输入线和输出线 ?

解 :需要 10 根地址线 ,8 根数据输入和输出线 。

11 .某机字长为 32 位 ,其存储容量是 64KB ,按字编址的寻址范围是多少 ? 若主存以

字节编址 ,试画出主存字地址和字节地址的分配情况 。

解 :某机字长为 32 位 ,其存储容量是 64KB ,按字编址的寻址范围是 16KW 。 若主存

以字节编址 ,每一个存储字包含 4 个单独编址的存储字节 。 假设采用大端方案 ,即字地址 等于最高有效字节地址 ,且字地址总是等于 4 的整数倍 ,正好用地址码的最末两位来区分 同一个字中的 4 个字节 。 主存字地址和字节地址的分配情况如图 5唱19 所示 。

12 .一个容量为 16K × 32 位的存储器 ,其地址线和数据线的总和是多少 ? 当选用下 列不同规格的存储芯片时 ,各需要多少片 ?

解 :地址线14根 ,数据线32根 ,共46根。

若 选 用 不 同 规 格 的 存 储 芯 片 ,则 需 要 :1 K × 4 位 芯 片 1 2 8 片 ,2 K × 8 位 芯 片 3 2 片 ,4 K × 4 位 芯 片 3 2 片 ,1 6 K × 1 位 芯 片 3 2 片 ,4 K × 8 位 芯 片 1 6 片 ,8 K × 8 位 芯 片 8 片 。

35 .总线的同步通信和异步通信有何不同 ? 试举例说明一次全互锁异步应答的通信 情况 。

解 :总线的同步通信是指系统采用一个统一的时钟信号来协调发送和接收双方的传 送定时关系 。 时钟产生相等的时间间隔 ,每个间隔构成一个总线周期 。 总线的异步通信 没有公用的时钟 ,也没有固定的时间间隔 ,完全依靠传送双方相互制约的“握手”信号来实 现定时控制 。

全互锁异步应答的通信过程为 :“请求”信号的来到导致“回答”信号的来到 ,“请求”信 号的撤销取决于“回答”信号的来到 ,而“请求”信号的撤销又导致“回答”信号的撤销 。

你可能感兴趣的:(学习编程需了解的计算机组成原理基础知识)