一、计算机硬件(考点篇)

书中自有黄金屋,书中自有颜如玉。

一、计算机体系结构

1.冯·诺依曼体系结构

在冯诺依曼体系下,由于 CPU 的运算速度远远高于存储器的存储速度,因此 CPU 的大部分时间都处于空闲状态,等待数据的传输或指令的到来,造成资源的浪费,这种现象被叫作冯诺依曼瓶颈。

2.现代计算机体系结构

现代计算机在冯诺依曼体系结构的基础上进行了修改,增加了寄存器,同时也将存储器分为内存储器(主存储器)和外存储器(辅助存储器), 主要是为了解决 CPU 与存储设备之间的性能差异问题。

寄存器(寄存器组): cpu准确来说是由运算器、控制器、寄存器组和内部总线等子部件组成, 其中的寄存器组分为专用寄存器和通用寄存器, 运算器和控制器中的寄存器起作用是固定的,属于专用寄存器。寄存器组中的通用寄存器由程序员规定其用途。

3.冯诺依曼体系VS哈佛体系

    冯·诺依曼结构也称普林斯顿结构,是一种将指令存储器和数据存储器合并在一起的存储器结构。

    冯·诺依曼结构的特点:

    (1)一般用于PC处理器,如i3/i5/i7处理器

    (2)指令与数据存储器合并在一起

    (3)指令与数据都通过相同的数据总线传输

    哈佛结构是一种将指令和数据分开的存储的计算机体系结构。

    哈佛结构是一种并行体系结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问。

    哈佛结构的特点:

    (1)一般用于嵌入式系统处理器, 数字信号处理(Digital Signal Processing, DSP)

    (2)指令与数据分开存储,可以并行读取指令和数据,提高了数据的读取效率以及指令的执行效率

    (3)总线数量多,有4条总线:指令的数据总线与地址总线,数据的数据总线与地址总线

二、计算机硬件组成

1.五大部件:

计算机的基本硬件系统由运算器、控制器、存储器、输入设备、输出设备5大部件组成。

运算器+控制器等部件 =  中央处理单元(CPU)。CPU是硬件系统的核心,用于数据的加工处理,完成各种算术、逻辑运算及控制功能。

存储器是计算机系统中的记忆设备,分为内部存储器和外部存储器。前者速度高、容量小,一般用于临时存放程序、数据及中间结果。而后者容量大、速度慢,可以长期保存程序和数据。

输入设备和输出设备合称为外部设备(简称外设),输入设备用于输入原始数据及各种命令,而输出设备则用于输出计算机运行的结果。

2.CPU介绍:

CPU组成:

运算器:

由算术逻辑单元、累加寄存器、数据缓冲寄存器、状态条件寄存器组成。

算术逻辑单元,Arithmetic logic unit,ALU, 主要完成数据的算术运算(如加减乘除)逻辑运算(如与或非)

累加寄存器: accumulator,AC,主要是为ALU提供工作区,比如在计算a+b时,先将a从内存中取出,放入到AC中,然后再将b从内存中取出,然后计算a+b的和,最后将结果送回到AC中。

数据缓冲寄存器: Data Register, DR作为CPU和内存之间数据传送的中转站,可以提供CPU和内存之间操作数据的缓冲,DR主要是存放提供内存读写的一个数据字或一条指令。

状态条件寄存器: Program Status Word,PSW保存指令执行之后的状态, 一个算术运算产生一个运算结果,一个逻辑运算产生一个判决,PSW就是保存这些运行结果或者判决。如运算结果进位标志(C)、运算结果溢出标志(V)、运算结果为0标志(Z)、中断标志(I)等。

控制器:

运算器只能完成运算,而控制器用于控制整个CPU的工作,它决定了计算机运行过程的自动化。它不仅要保证程序的正确执行,而且要能够处理异常事件。

指令寄存器,Instruction register,IR:当CPU执行一条指令时,先把指令从内存读取到数据缓冲寄存器再送入IR中暂存,指令译码器(ID)根据IR中的的内容产生各种徽操作指令,控制其他的组成部件工作,完成指令的执行。---暂存CPU执行指令

程序计数器,Program Counter,PC, 程序的执行分两种情况,一是顺序执行,二是跳转执行(比如goto语句)。在程序开始执行前,将程序的起始地址送入PC, 该地址在程序加载到内存时确定,因此PC的内容即是程序第一条指令的地址。执行指令时, CPU将自动修改PC的内容,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单地对PC加1。 当遇到跳转的指令时,后继指令的地址根据当前指令的地址加上一个向前或向后转移的位移量得到,或者根据转移指令给出的直接转移的地址得到。----存放指令执行地址

地址寄存器,Address Register,AR,保存当前CPU所访问的当前内存单元的地址。由于内存和CPU存在着操作速度上的差异,所以需要使用AR保存地址信息,直到内存的读或写操作完成为止。这就是现代计算机在冯诺依曼体系之上增加寄存器解决的冯诺依曼体系瓶颈的体现。----保存当前CPU所访问的地址

指令译码器,Instruction Decoder,ID,指令分为操作码和地址码两部分,为了能执行任何给定的指令,必须对操作码进行分析,以便识别所需要的操作。指令译码器对指令中的操作码字段进行分析解释,识别该指令所要完成的操作,向控制器发出具体的控制信号,控制各部件工作,完成指令所要完成的功能。----分析指令

寄存器组:

cpu准确来说是由运算器、控制器、寄存器组和内部总线等子部件组成, 其中的寄存器组分为专用寄存器和通用寄存器, 运算器和控制器中的寄存器起作用是固定的。通用寄存器由程序员规定其用途。

CPU依据指令周期的不同阶段来区分二进制的指令和数据,因为在指令周期的不同阶段,指令会命令CPU分别去取指令或者数据。

计算机执行指令过程:可分为取指令——分析指令——执行指令三个步骤,首先将程序计数器PC中的指令地址取出,送入地址总线,CPU依据指令地址去内存中取出指令内容存入指令寄存器IR;而后由指令译码器进行分析,分析指令操作码;最后执行指令,取出指令执行所需的源操作数。

比如执行3+5指令,PC中找到这条指令的地址,然后送入地址总线,CPU根据指令地址去内存中取出指令,并放入IR中,ID分析这条指令发现是加法指令,然后再取操作数执行。AR保存CPU访问过的内存地址,因为内存和CPU速度差异大,所以,再有访问相同地址直接从AR中读取。

三、校验码

1.码距:

就单个编码A:00而言,其码距为1,因为其只需要改变一位就变成另一个编码。在两个编码中,从A码到B码转换所需要改变的位数称为码距,如A:00要转换为B:11,码距为2。一般来说,码距越大,越利于纠错和检错。码距:就单个编码A:00而言,其码距为1,因为其只需要改变一位就变成另一个编码。在两个编码中,从A码到B码转换所需要改变的位数称为码距,如A:00要转换为B:11,码距为2。一般来说,码距越大,越利于纠错和检错。

2.奇偶校验

在编码中增加1位校验位来使编码中1的个数为奇数(奇校验)或者偶数(偶校验),从而使码距变为2。奇校验可以检测编码中奇数个数据位出错,即当合法编码中的奇数位发生了错误时,即编码中的1变成0或者0变成1,则该编码中1的个数的奇偶性就发生了变化,从而检查出错误。但无法纠错。

3.循环冗余校验

CRC只能检错,不能纠错,其原理是找出一个能整除多项式的编码,因此首先要将原始报文除以多项式,将所得的余数作为校验位加在原始报文之后,作为发送数据发给接收方。
使用CRC编码,需要先约定一个生成多项式G(x)。生成多项式的最高位和最低位必须是1。假设
原始信息有m位,则对应多项式M(x)。生成校验码思想就是在原始信息位后追加若干校验位,使得追加的信息能被G(x)整除。接收方接收到带校验位的信息,然后用G(x)整除。余数为0,则没有错误;反之则发生错误。


例:假设原始信息串为10110,CRC的生成多项式为G(x)=x^4+x+1,求CRC校验码。
(1)在原始信息位后面添0,假设生成多项式的为r,则在原始信息位后添加r个0,本题中,
G(x)阶为4,则在原始信息串后加4个0,得到的新串为101100000,作为被除数。
(2)由多项式得到除数,多项中x的幂指数存在的位置1,不存在的位置0。本题中,x的幂指
数为0,1,4的变量都存在,而幂指数为2,3的不存在,因此得到串10011。


(3)生成CRC校验码,将前两步得出的被除数和除数进行模2除法运算(即不进位也不借位的除法运算,同0非1)。除法过程如下图所示。

得到余数1111。
注意:余数不足r,则余数左边用若干个0补齐如求得余数为11,r=4,则补两个0得到0011
(4)生成最终发送信息串,将余数添加到原始信息后。上例中,原始信息为10110,添加余数1111后,结果为101101111。发送方将此数据发送给接收方

发送数据为:原始信息+余数
(5)接收方进行校验。接收方的CRC校验过程与生成过程类似,接收方接收了带校验和的帧后,用多项式G(x)来除。余数为0,则表示信息无错;否则要求发送方进行重传。注意:收发信息双方需使用相同的生成多项式。

接收方也是用这个信息除以除数正好能被整除就是没问题的,如101101111➗10011=0

4.海明码校验

海明码比较复杂,暂时不考

5.比较

6.题目

四、指令系统

1.指令的组成

一条指令由操作码操作数两部分组成,操作码决定要完成的操作,操作数指参加运算的数据及其所在的单元地址。
在计算机中,操作要求和操作数地址都由二进制数码表示,分别称作操作码地址码整条指令以二进制编码的形式存放在存储器中

2.指令执行过程

可分为取指令——分析指令——执行指令三个步骤,首先将程序计数器PC中的指令地址取出,送入地址总线,CPU依据指令地址去内存中取出指令内容存入指令寄存器IR;而后由指令译码器进行分析,分析指令操作码;最后执行指令,取出指令执行所需的源操作数。

3.指令的寻址方式

  1. 顺序寻址方式:由于指令地址在主存中顺序排列,当执行一段程序时,通常是一条指令接着一条指令地顺序执行。从存储器取出第一条指令,然后执行这条指令;接着从存储器取出第二条指令,再执行第二条指令;……,以此类推。这种程序顺序执行的过程称为指令的顺序寻址方式。这种都是PC给出下一条指令地址。
  2. 跳跃寻址方式:所谓指令的跳跃寻址,是指下一条指令的地址码不是由程序计数器给出而是由本条指令直接给出。程序跳跃后,按新的指令地址开始顺序执行。因此,指令计数器的内容也必须相应改变,以便及时跟踪新的指令地址。
     

4.操作数的寻址方式

  1. 立即寻址方式指令的地址码字段指出的不是地址,而是操作数本身
  2. 直接寻址方式:在指令的地址字段中直接指出操作数在主存中的地址
  3. 间接寻址方式:与直接寻址方式相比,间接寻址中指令地址码字段所指向的存储单元中存储的不是操作数本身,而是操作数的地址。---地址字段中给出的是一个主存地址,这个主存地址指向另一个主存地址,而后面的这个主存地址里才是操作数。
  4. 寄存器寻址方式:指令中的地址码是寄存器的编号,而不是操作数地址或操作数本身。寄存器的寻址方式也可以分为直接寻址间接寻址,两者的区别在于:前者的指令地址码给出寄存器编号,寄存器的内容就是操作数本身;而后者的指令地址码给出寄存器编号,寄存器的内容是操作数的地址,根据该地址访问主存后才能得到真正的操作数。
  5. 基址寻址方式:将基址寄存器的内容加上指令中的形式地址而形成操作数的有效地址,其优点是可以扩大寻址能力
  6. 变址寻址方式:变址寻址方式计算有效地址的方法与基址寻址方式很相似,它是将变址寄存器的内容加上指令中的形式地址而形成操作数的有效地址
  7. 相对寻址方式:相对于当前的指令地址而言的寻址方式。相对寻址是把程序计数器PC的内容加上指令中的形式地址而形成操作数的有效地址,而程序计数器的内容就是当前指令的地址,所以相对寻址是相对于当前的指令地址而言的。

5.精简指令集和复杂指令集

CISC是复杂指令系统,兼容性强,指令繁多、长度可变,由微程序实现

RISC是精简指令系统,指令少,使用频率接近,主要依靠硬件实现(通用寄存器、硬布线逻辑控

制)。

二者各方面区分如下图:

6.流水线技术

指令流水线原理

将指令分成不同段,每段由不同的部分去处理,因此可以产生叠加的效果,所有的部件去处理指令的不同段

流水线技术:

  • (1)超流水线(Super Pipe Line)技术。它通过细化流水、增加级数和提高主频,使得在每个机器周期内能完成一个甚至两个浮点操作。其实质是以时间换取空间流水线分的更细。
  • (2)超标量(Super Scalar)技术。它通过内装多条流水线来同时执行多个处理,其时钟频率虽然与一般流水接近,却有更小的CPI。其实质是以空间换取时间增加硬件超标量硬件。
  • (3)超长指令字(Very Long Instruction Word,VLIW)技术。VLW和超标量都是20世纪80年代出现的概念,其共同点是要同时执行多条指令,其不同在于超标量依靠硬件来实现并行处理的调度,VLIW则充分发挥软件的作用,而使硬件简化,性能提高。跟超标量一样,不过是用软件

流水线计算

流水线周期:指令分成不同执行段,其中执行时间最长的段为流水线周期。
流水线执行时间1条指令总执行时间+(总指令条数-1)*流水线周期。

单缓冲区和双缓冲区:此类题型不给出具体流水线执行阶段,需要考生自己区分出流水线阶段。
一般来说,能够同时执行的阶段就是流水线的独立执行阶段只能独立执行的阶段应该合并为流水线中的一个独立执行阶段

例如有三个阶段即读入缓冲区+送入用户区+数据处理,在单缓冲区中,缓冲区和用户区都只有一个,一个盘块必须执行完前两个阶段,下一个盘块才能开始,因此前两个阶段应该合并,整个流水线为送入用户区+数据处理;
而在双缓冲区中,盘块可以交替读入缓冲区,但用户区只有一个,因为缓冲区阶段可以同时进行,流水线前两个阶段不能合并,就是读入缓冲区+送入用户区+数据处理三段。
划分出真正的流水线阶段后,套用流水线时间计算公式可以轻易得出答案。


流水线吞吐率计算:吞吐率即单位时间内执行的指令条数。公式:指令条数/流水线执行时间
流水线的加速比计算:加速比即使用流水线后的效率提升度,即比不使用流水线快了多少倍,越
高表明流水线效率越高,公式:不使用流水线执行时间/使用流水线执行时间

真题

计算题,一定要注意单位
1s=10^3ms   1ms=10^6us   1us=10^9ns

流水线周期:2
流水线执行时间:(2+4)+(100-1)*2=204
吞吐率:100/204 个/ns
100/204*10幂9 ≈ 0.5*10幂9 = 500*10幂6
以上是错误的,因为100/204大约是490,500是极限的情况下。


单缓冲区:
盘块读入缓冲区15,然后从缓冲区送入用户区后5,缓冲区才空闲,所以它两步合并为一个20,用户区处理1,所以流水线周期20.
流水线执行时间 = (20+1)+(10-1)*20=201(us)
吞吐率=10/201(us)

双缓冲区:
盘块1读入缓冲区A,15,然后从缓冲区A送入用户区5,同时另一个盘块2读入另一个缓冲区B,15,不能合并,所以流水线周期为15.
流水线执行时间 = (15+5+1)+(10-1)*15=156(us)
吞吐率 = 10/156(us)
 


流水线周期= t
流水线执行时间 = kt+(n-1)*t = kt+nt-t=(k+n-1)t
流水线吞吐率 = n/(k+n-1)t 

分5段:6/7/8/9/6 (ns)
流水线周期 = 9ns
n条流水线执行时间 = 6+7+8+9+6+(n-1)*9=9n+27
n条吞吐率 = n/(9n+27)
不使用流水线时间 = (6+7+8+9+6)*n=36n
加速比 = 36n / (9n+27)= 4/(1+3/n)= n无限大趋近于4/1=4

五、存储系统

1.存储结构层次

计算机采用分级存储体系的主要目的是为了解决存储容量、成本和速度之间的矛盾问题。

两级存储映像为:Cache-主存、主存-辅存(虚拟存储体系)。
存储器的分类:

  • 按存储器所处的位置:内存、外存。
  • 按存储器构成材料:磁存储器(磁带)、半导体存储器、光存储器(光盘)。
  • 按存储器的工作方式:可读可写存储器(RAM)、只读存储器(ROM只能读,PROM可写入一次,EPROM和EEPOM既可以读也可以写,只是修改方式不用)。
  • 按存储器访问方式:按地址访问、按内容访问(相联存储器)。
  • 寻址方式:随机存储器(访问任意存储单元所用时间相同)、顺序存储器(只能按顺序访问,如磁带)、直接存储器(二者结合,如磁盘,对于磁道的寻址是随机的,在一个磁道内则是顺序的)。

2.局部性原理

总的来说,在CPU运行时,所访问的数据会趋向于一个较小的局部空间地址内。(例如循环操作,循环体被反复执行)。
时间局部性原理:如果一个数据项正在被访问,那么在近期它很可能会被再次访问,即在相邻的时间里会访问同一个数据项
空间局部性原理:在最近的将来会用到的数据的地址和现在正在访问的数据地址很可能是相近的,即相邻的空间地址会被连续访问

3.高速缓存Cache

高速缓存Cache用来存储当前最活跃的程序和数据,直接与CPU交互,位于CPU和主存之间,容量小,速度为内存的5-10倍,由半导体材料构成。其内容是主存内存的副本拷贝,对于程序员来说是透明的。
Cache由控制部分存储器组成,存储器存储数据,控制部分判断CPU要访问的数据是否在Cache中,在则命中,不在则依据一定的算法从主存中替换

地址映射方法

在CPU工作时,送出的是主存单元的地址,而应从Cache存储器中读/写信息。这就需要将主存地址转换为Cache存储器地址,这种地址的转换称为地址映像,由硬件自动完成映射,分为下列三种方法:
直接映像:将Cache存储器等分成块,主存也等分成块并编号。主存中的块与Cache中的块的对应关系是固定的,也即二者块号相同才能命中。地址变换简单但不灵活,容易造成资源浪费

全相联映像:同样都等分成块并编号。主存中任意一块都与Cache中任意一块对应。因此可以随意调入Cache任意位置,但地址变换复杂,速度较慢。因为主存可以随意调入Cache任意块,只有当Cache满了才会发生块冲突,是最不容易发生块冲突的映像方式


组组相连映像前面两种方式的结合,将Cache存储器先分块再分组主存也同样先分块再分组,组间采用直接映像,即主存中组号与Cache中组号相同的组才能命中但是组内全相联映像,也即组号相同的两个组内的所有块可以任意调换

命中率及平均时间

Cache存储器的大小一般为K或者M单位,很小,但是最快,仅次于CPU中的寄存器,而寄存器一般不算作存储器,CPU与内存之间的数据交互,内存会先将数据拷贝到Cache里,这样,根据局部性原理,若Cache中的数据被循环执行,则不用每次都去内存中读取数据,会加快CPU工作效率。因此,Cache有一个命中率的概念,即当CPU所访问的数据在Cache中时,命中,直接从Cache中读取数据。

设读取一次Cache时间为1ns,若CPU访问的数据不在Cache中,则需要从内存中读取,设读取一次内存的时间为1000ns,若在CPU多次读取数据过程中,有90%命中Cache,则CPU读取一次的平均时间为(90%*1+10%*1000)ns,很容易理解。---实际情况是不命中已经访问了一次cache了,但是理论计算不考虑。

真题

4.虚拟存储器

虚拟存储器技术是将很大的数据分成许多较小的块,全部存储在外存中。运行时,将用到的数据调入主存中,马上要用到的数据置于缓存中,这样,一边运行一边进行所需数据块的调入/调出。对于应用程序员来说,就好像有一个比实际主存空间大得多的虚拟主存空间,基本层级为:主存——缓存——外存。与CPU——高速缓存Cache——主存的原理类似。但虚拟存储器中程序员无需考虑地址映像关系,由系统自动完成,因此对于程序来说是透明的。
其管理方式分为页式、段式、段页式,在后面存储管理中详细介绍。

补充编制及计算

内存按字节编址,利用 8K×4bit 的存储器芯片构成 84000H 到 8FFFFH 的内存,共需( )片。

A.6        B.8        C.12        D.24

思路:

1.按照字节编址,意味着最小单位是b;16进制最后一位H是标识16进制

2.计算编址个数

0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

8FFFF
  ➖84000
BFFF

BFFF  +  1  =   C000个内存地址空间。为啥要加1,举个简单的例子,6~10几个数?10-6=4+1=5个数,因为6,7,8,9,10嘛。

 C000个  X  8bit 得出的是这C000个空间需要多少bit位,而一块存储器芯片是8K*4bit大小。

C000H转换成十进制 

3210
C000
12*16 ^30*16 ^20*16 ^10*16 ^0

结果是:12*16 ^3 = 3 * 2 ^14  这个是多少个存储空间,并且每个存储空间是8位,再乘以8表示这些存储空间有多少位。

    3 * 2 ^14  *  8 = 3 * 2 ^17
            ➗8 * 2 ^ 10  *  4 = 2 ^15
3 * 2 ^ 2 = 12

所以需要12块这种存储器芯片。

注意点:

1.  K在不同的领域有不同的含义,一般来说,在存储领域 K = 1024,在其他的领域 K = 1000

2.存储单元个数=最大地址 - 最小地址 + 1

5.磁盘

磁盘结构和参数

磁盘有正反两个盘面,每个盘面有多个同心圆,每个同心圆是一个磁道每个同心圆又被划分为多个扇区,数据就被存放在一个个扇区中

存取时间计算

磁头首先要寻找到对应的磁道,然后等待磁盘进行周期旋转,旋转到指定的扇区,才能读取到对应的数据,因此,会产生寻道时间等待时间

公式为存取时间=寻道时间+等待时间(平均定位时间+转动延迟)。
注意寻道时间是指磁头移动到磁道所需的时间;等待时间为等待读写的扇区转到磁头下方所用的时间。

比如盘面从里到外由1---10号磁道

寻道时间:加入磁头再3号磁道,要访问的数据在9号磁道,从3号移到9号就是寻道时间。

等待时间:移动到9号磁道后,9号磁道由6个扇区(0-5),假设要访问的数据在5号磁道,从磁道移动过来的磁头在2号扇区上,等待时间就是从3号扇区移动到5号扇区的时间。

寻道时间和等待时间会有别的名字或者公式的其他变化,但是从原理上理解,花费时间的地方就2个,一个是把磁头转到对应的磁道,另一个是到了对应的磁道后,把磁头转到对应的扇区。

磁盘调度算法

之前已经说过,磁盘数据的读取时间分为寻道时间+旋转时间,也即先找到对应的磁道,而后再旋转到对应的扇区才能读取数据,其中寻道时间耗时最长,需要重点调度,有如下调度算法:

先来先服务FCFS:根据进程请求访问磁盘的先后顺序进行调度。

类似我们去银行排队办理业务,“先来后到”,谁先来先给谁提供服务,那么扫描的顺序为 82,170,43,140,24,16,190


最短寻道时间优先SSTF:请求访问的磁道与当前磁道最近的进程优先调度,使得每次的寻道时间最短。会产生“饥饿”现象,即远处进程可能永远无法访问。 比FCFS效率高,减少了寻道时间.

当前位置在50,要访问的磁道是82,170,43,140,24,16,190


扫描算法SCAN:又称“电梯算法”,磁头在磁盘上双向移动,其会选择离磁头当前所在磁道最近的请求访问的磁道,并且与磁头移动方向一致,磁头永远都是从里向外或者从外向里一直移动完才掉头,与电梯类似

当前位置在50,要访问的磁道是82,170,43,142,24,16,190


单向扫描调度算法CSCAN:与SCAN不同的是,其只做单向移动,即只能从里向外或者从外向里。

当前位置在50,要访问的磁道是82,170,43,142,24,16,190

真题

单缓冲区
一圈33ms,读取每个物理块就是33/11=3ms,每个块在缓冲区中处理也是3ms
1.处理这11个记录最长的肯定是一圈读一个,33*11,但是读第11个的时候,还要3ms的处理时间,33*11+3=366ms
2.单缓冲区,读一个然后3秒后才能读,第一圈只能读1、3、5、7、9、11号,6个物理块,第二圈的时候,11号处理完成,1号块正好过去,所以可读2、4、6、8、10号,5个物理块。
所以2圈读完并处理完成33*2=66ms

最短移臂算法--距离当前最短
当前21号,距离21最近的是23,23有3个(排除C),至于那个是根据④⑤还是④⑥,明显是④⑥,所以排除A,B从⑧到④不合理,23-17=6,23-32=9
所以选D

六、输入输出技术

计算机系统中存在多种内存与接口地址的编址方法,常见的是下面两种:内存与接口地址独立编址和内存与接口地址统一编址。

1)内存与接口地址独立编址方法

在内存与接口地址独立编址方法下,内存地址和接口地址是完全独立的两个地址空间,它们是完全独立的并且是相互隔离的。访问数据时所使用的指令也完全不同,用于接口的指令只用于接口的读/写,其余的指令全都是用于内存的。因此,在编程序或读程序时很易使用和辨认。这种编址方法的缺点是用于接口的指令太少、功能太弱。

2)内存与接口地址统一编址方法

在这种编址方法中,内存地址和接口地址统一在一个公共的地址空间里,即内存单元和接口共用地址空间。在这些地址空间里划分出一部分地址分配给接口使用,其余地址归内存单元使用。这种编址方法的优点是原则上用于内存的指令全都可以用于接口,这就大大地增强了对接口的操作功能,而且在指令上也不再区分内存或接口指令。该编址方法的缺点就在于整个地址空间被分成两部分,其中一部分分配给接口使用,剩余的为内存所用,这经常会导致内存地址不连续。

计算机与外设的交互方式:

  • 程序控制(查询)方式:CPU主动查询外设是否完成数据传输,效率极低。
  • 程序中断方式:外设完成数据传输后,向CPU发送中断,等待CPU处理数据,效率相对较高。中断响应时间指的是从发出中断请求到开始进入中断处理程序中断处理时间指的是从中断处理开始到中断处理结束中断向量提供中断服务程序的入口地址。多级中断嵌套,使用堆栈来保护断点和现场
  • DMA方式(直接主存存取):CPU只需完成必要的初始化等操作,数据传输的整个过程都由DMA控制器来完成,在主存和外设之间建立直接的数据通路,效率很高

在一个总线周期结束后,CPU会响应DMA请求开始读取数据;CPU响应程序中断方式请求是在一条指令执行结束时

区分指令执行结束和总线周期结束。

时钟频率,CPU如3.5GHZ

时钟频率倒数:时钟周期,最小时间单位
机器周期:包含多个时钟周期
指令周期:包含多个时钟周期,取值,分析,执行

中断不打断当前指令,会在指令执行完成后才打断
CPU响应DMA是总线周期结束,DMA建立的通道取数据是总线周期

七、总线结构

从广义上讲,任何连接两个以上电子元器件的导线都可以称为总线,通常分为以下三类:

  • 内部总线:内部芯片级别的总线,芯片与处理器之间通信的总线。
  • 系统总线:是板级总线,用于计算机内各部分之间的连接,具体分为数据总线(并行数据传输位数)、地址总线(系统可管理的内存空间的大小)、控制总线(传送控制命令)。代表的有ISA总线、EISA总线、PCI总线。
  • 外部总线:设备一级的总线,微机和外部设备的总线。代表的有RS232(串行总线)、SCSI(并行总线)、USB(通用串行总线,即插即用,支持热插拔)。并行总线适合近距离高速数据传输,串行总线适合长距离数据传输,专用总线在设计上可以与连接设备实现最佳匹配

书上的只有数据总线、地址总线、控制总线,其他的是扩展,答题只答书上有的

总线计算

总线的时钟周期=时钟频率的倒数;

总线的宽度(传输速率)=单位时间内传输的数据总量/单位时间大小。

真题:

串行总线:一次一条线,一次传1bit,因成本低,远距离

并行总线:多条线,如8条,每条1bit,因成本高,短距离

总线传输方式:

单工:一个方向上传输,A--->B

半双工:同一时刻只能一个方向,不同时刻可可,A--->B和,B--->A

全双工:同一时刻2个方向都行。

PCI总线:主要用于连接显示卡、网卡、声卡。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

辣香牛肉面

感谢有缘之人的馈赠

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值