软件设计师 第一章 计算机基本工作原理

一、计算机基本工作原理

海明码是一种多重(复式)奇偶检错编码。它将信息用逻辑形式编码,以便能够检和纠错。用在海明码中的全部传输码字是由原来的信息和附加的奇偶校验位组成的。每一个这种奇偶位被编在传输码字的特定位置上。推导并使用长度为n位的码字的海明码,所需步骤如下:
 				(1)确定最小的校验位数k,将它们记成D1、D2、…、Dk,每个校验位符合不同的奇偶测试规定。
 				(2)原有信息和k个校验位一起编成长为n+k位的新码字。选择k校验位(01)需满足必要的奇偶条件。
 				(3)对所接收的信息作所需的k个奇偶检查。
 				(4)如果所有的奇偶检查结果均正确,则认为信息无错误。如果发现有一个或多个错了,则错误的位由这些检查的结果来唯一地确定。求海明码时的一项基本考虑是确定所需最少的校验位数k。考虑长度为n位的信息,且附加了k个校验位,则所发送的总长度为n+k。在接收器中要进行k个奇偶检查,每个检查结果或是真或是假。这个奇偶检查的结果可以表示成一个k位的二进字,它可以确定最多2k种不同状态。这些状态中必有一个其所有奇偶测试都是真的,它便是判定信息确的条件。于是剩下的(2k-1)种状态,可以用来判定误码的位置。
 				于是导出以下关系:

2k-1≥n+k      
  1. 总线线路都可以被归为三类:即数据总线、地址总线和控制总线。
  2. 计算机系统运行时,各个部件之间要进行数据交换,为了确保数据在传送过程中正确无误,一是提高硬件电路的可靠性;二是提高代码的校验能力,包括查错和纠错。常用的三种校验码:奇偶校验码(Parity Codes)、海明码(Hamming Code)和循环冗余校验(Cyclic Redundancy Check,CRC)码。 循环冗余校验码广泛应用于数据通信领域和磁介质存储系统中。它利用生成多项式为k个数据位产生r个校验位来进行编码,其编码长度为k+r。CRC的代码格式为:
    在这里插入图片描述
  3. 计算机系统中的CPU内部对通用寄存器的存取操作是速度最快的,其次是Cache,内存的存取速度再次,选项中访问速度最慢的就是作为外存的硬盘。它们共同组成分级存储体系来解决存储容量、成本和速度之间的矛盾
  4. 对阶时,小数向大数看齐;对阶是通过较小数的尾数右移实现的。
  5. CPU接收到中断请求,会将自己正在执行的程序A的状态进行保存,即保存现场,然后转去处理提交中断申请的程序B,完成程序B之后,再回到程序A中断的断点接着完成程序A。保存现场的目的是为了能正确返回到被中断的程序A继续执行
  6. 使用补码表示数据时,可以将符号位和其他位统一处理,减法也可按加法来处理,从而简化运算部件的设计。
  7. 对于奇偶校验,是由若干位有效信息,再加上一个二进制位(校验位)组成校验码,其中奇校验“1”的个数为奇数,而偶校验“1”的个数为偶数,以此完整校验,如果其中传输过程中有偶数个数发生错误(即1变成0或0变成1),则“1”的个数,其奇偶就不会发生改变,也就无法发现错误了,只有奇数个数据位发生错误,才能发现错误。同时,奇偶校验只能查错不能纠错
  8. 采用模二除法运算的只有循环冗余检验CRC
  9. 寻址方式:
指令中的寻址方式就是如何对指令中的地址字段进行解释,以获得操作数的方法或 获得程序转移地址的方法。常用的寻址方式有:
  •立即寻址。操作数就包含在指令中。
  •直接寻址。操作数存放在内存单元中,指令中直接给出操作数所在存储单元的地址。 
  •寄存器寻址。操作数存放在某一寄存器中,指令中给出存放操作数的寄存器名。 
  •寄存器间接寻址。操作数存放在内存单元中,操作数所在存储单元的地址在某个寄存器中。 
  •间接寻址。指令中给出操作数地址的地址。
  •相对寻址。指令地址码给出的是一个偏移量(可正可负),操作数地址等于本条 指令的地址加上该偏移量。
  •变址寻址。操作数地址等于变址寄存器的内容加偏移量。 

二、指令系统和计算机体系结构

1、寄存器组

  • 指令寄存器(IR)用来保存当前正在执行的指令。当执行一条指令时,先把它从内存取到数据寄存器(DR)中,然后再传送至IR,对用户完全透明

  • 指令译码器(ID)为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作。指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后,即可向操作控制器发出具体操作的特定信号。

  • 地址寄存器(AR)用来保存当前CPU所访问的内存单元的地址。由于在内存和CPU之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到内存的读/写操作完成为止。

  • 程序计数器(PC)的内容即是从内存提取的第一条指令的地址。当执行指令时,CPU将自动修改PC的内容,即每执行一条指令PC增加一个量,这个量等于指令所含的字节数,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单的对PC加1。
    程序计数器是用于存放下一条指令所在单元的地址的地方。在程序执行前,必须将程序的起始地址,即程序的一条指令所在的内存单元地址送入程序计数器,当执行指令时,CPU将自动修改程序计数器的内容,即每执行一条指令程序计数器增加一个量,使其指向下一个待指向的指令。程序的转移等操作也是通过该寄存器来实现的。因此CPU中跟踪指令地址的是程序计数器(PC)

  • 数据寄存器主要是用来保存操作数和运算结果等信息的,其目的是为了节省读取操作数所需占用总线和访问存储器的时间。

  • 累加寄存器是专门存放算术或逻辑运算的一个操作数和运算结果的寄存器,能进行加、减、读出、移位、循环移位和求补等操作,是运算器的主要部分。

2.程序的局限性

表现在时间局部性和空间局部性:
1.时间局部性是指如果程序中的某条指令一旦被执行,则不久的将来该指令可能再次被执行;
2.空间局部性是指一旦程序访问了某个存储单元,则在不久的将来,其附近的存储单元也最有可能被访问。 题干描述的是空间局部性。

三、存储系统

  1. 常用的虚拟存储器由主存-辅存两级存储器组成。
  2. 在程序执行过程中,Cache与主存的地址映像由硬件自动完成
  3. 在CPU内外的高速缓存是用来解决CPU与内存之间速度、容量不匹配的问题,与外存无关,可以提高CPU访问主存数据或指令的效率。
    Cache不属于主存,与主存容量无关。
    Cache容量相对于其他存储层次,量级较小,不能扩大存储系统的存量。

四、输入输出系统

  1. 计算机在执行程序过程中,当遇到急需处理的事件时,暂停当前正在运行的程序, 转去执行有关服务程序,处理完后自动返回原程序,这个过程称为中断。 中断是一种非常重要的技术,输入输出设备和主机交换数据、分时操作、实时系统、计算机网络和分布式计算机系统中都要用到这种技术。为了提高响应中断的速度,通常把所有中断服务程序的入口地址(或称为中断向量)汇集为中断向量表
  2. BIOS(Basic Input Output System)(基本输入输出系统)是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。
  3. 直接主存存取(Direct Memory Access,DMA)是指数据在主存与I/O设备间(即主存与外设之间)直接成块传送。
  4. 按照是否可以被屏蔽,可将中断分为两大类:不可屏蔽中断(又叫非屏蔽中断)和可屏蔽中断。不可屏蔽中断源一旦提出请求,CPU必须无条件响应,而对可屏蔽中断源的请求,CPU可以响应,也可以不响应。典型的非屏蔽中断源的例子是电源掉电,一旦出现,必须立即无条件地响应,否则进行其他任何工作都是没有意义的。典型的可屏蔽中断源的例子是打印机中断,CPU对打印机中断请求的响应可以快一些,也可以慢一些, 因为让打印机等待是完全可以的。对于软中断,它不受中断允许标志位(IF位)的影响, 所以属于非屏蔽中断范畴。
  5. 当系统中有多个中断请求时,中断系统按优先级进行排队。若在处理低级中断过程中又有高级中断申请中断,则高级中断可以打断低级中断处理,转去处理高级中断,等处理完高级中断后再返回去处理原来的低级中断,称为中断嵌套。实现中断嵌套用后进先出的栈来保护断点和现场最有效。

五、总线系统

总线是一组能为多个部件分时共享的信息传送线,用来连接多个部件并为之提供信息交换通路,通过总线复用方式可以减少总线中信号线的数量,以较少的信号线传输更多的信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值