一、计算存储器芯片的数量
1.如下例题:注意计算内存容量单位是KB,存储器芯片容量是bit
二、溢出的概念
1.如果计算机采用双符号位,两个同符号的数相加时,两个符号位经过逻辑异或运算得1时,则可判断这两个数相加的结果产生了溢出
2.结果的符号位是01时,称为上溢
3.结果的符号位为10时,称为下溢
三、机器数的表示
1.计算机中数据分为定点数和浮点数两种表示
(1)浮点数表示法用阶码和尾数来表示数,称为浮点数
(2)在总位数相同的情况下,浮点数可以表示更大的数
(3)定点数表示的数分为定点整数和定点小数
(4)定点数指在计算机中所有数的小数点位置人为约定固定不变,因此小数点不需要占用存储位
四、IR指令寄存器
1.指令寄存器(IR)的位数取决于指令字长
2.指令寄存器(IR)存放当前从主存储器独处的正在执行的一条指令
3.指令寄存器(IR)执行一条指令时,先从内存中取到数据寄存器(DR)中,然后再传送至IR
4.指令划分为操作码和地址码字段,由二进制数字组成,因此,指令寄存器(IR)的位数取决于指令字长
五、控制器
1.控制器作用:不仅要保证指令的正确执行,还要能够处理异常事件
2.中央控制器(CPU)是一台计算机的运算和控制核心,功能为解释计算机指令和处理计算机软件中的数据
3.中央控制器(CPU)由运算器、控制器和寄存器以及实现它们之间联系的数据、控制及状态的总线组成
4.运算器:完成算术运算、逻辑运算和移位操作
5.控制器:实现对之类的读入、寄存、译码和执行过程中有序地发出控制信号,主要负责对指令的译码,并且发出为完成每条指令所要执行的各个操作的控制信号
6.寄存器:用于暂存寻址和计算过程中的信息
六、虚拟存储器(Virtual Memory)
1.虚拟存储器(Virtual Memory):在具有层次结构存储器的计算机系统中,自动实现部分装入和部分替换功能,能从逻辑上为用户提供一个比物理贮存容量大得多,可寻址的“主存储器”。
2.虚拟存储区的容量与物理主存大小无关,而受限于计算机的地址结构和可用磁盘容量。
3.根据所用的存储器映像算法,虚拟存储器管理方式主要有段式、页式、和段页式三种。
4.常见的虚拟存储器(Virtual Memory)由主存--辅存两级存储器加上辅助软硬件组成
七、Cache(高速缓冲存储器)
1.关于cache:我们都知道CPU处理数据的速度非常快,虽然内存的读写速度也不慢,但是相对于CPU它的速度就显得太慢了,所以如果单纯地让CPU对内存进行读写,所消耗的时间绝大部分是在内存对数据的处理上,而这时候CPU就在空等,浪费了资源,因此就需要在CPU与内存之间连接一个Cache来作为缓冲。
2.基本特点:由于Cache是为了缓解内存处理数据太慢而出现的,因此Cache应该具备的一个基本特点就是读写数据的速度快,能够比较好地匹配CPU的速度,尽可能地让CPU忙起来,但是就是因为它处理速度快,所以就造成了它的容量比较小,如果能够既可以容量大又可以速度快的话直接把内存的速度提高到匹配到CPU的速度就好了,但是由于材料的价格,技术复杂度等等原因,Cache还是很必要的。
3.基本结构:Cache的存储体的基本存储单元为块,每一个块内有块内地址,Cache的地址通过块号与块内地址来表示。除了块之外还有标记,通过标记来识别此时Cache里有误想要的数据,如果标记里有则直接对Cache进行处理,如果在标记里没有找到,则再对主存进行数据传输。Cache里还有几个机构,替换机构与地址映射变换机构。
4.在程序执行过程中,Cache(高速缓冲存储器)与主存的地址映像由硬件自动完成
5.存储体系结构为:Cache(高速缓冲存储器)--主存--辅存,三个层次,地址映像的作用是将CPU送来的主存地址转换成Cache(高速缓冲存储器)的地址
6.地址映像:按照某种规则把主存的块复制到Cache(高速缓冲存储器)中,映像可分为:
(1)全相联映像
(2)直接映像
(3)组相联映像
7.Cache(高速缓冲存储器)有专门的替换算法,Cache(高速缓冲存储器)与主存地址的映像由硬件自动完成,主要存放部分主存数据的副本
八、相联存储器
1.相联存储器是一种按照内容寻址的存储器,工作原理:把数据和数据的一部分作为关键字,将该关键字与存储器中的每一单元进行比较,找出存储器中所有与关键字相同的设置
2.组成:比较寄存器,屏蔽寄存器,字选择寄存器,查找结果寄存器等。
CR比较寄存器:存放要比较的数(检索的内容)。
MR屏蔽寄存器:当按比较数的部分内容进行检索时,相应地把MR中要比较的位设置成“1”,不要比较的设置成“0”。置“1”的字段为关键字段。
SRR查找结果寄存器:若比较结果第i个字满足要求,则将第i位置为“1”,其余的均为“0”。
WSR字选择寄存器:确定哪些字参与检索,参与检索的则相应位为“1”。
九、主存
1.主存储器简称主存:用于存放指令和数据,由CPU直接随机存取
2.主存构成:
(1)存储体
(2)控制线路
(3)地址寄存器
(4)数据寄存器
(5)地址译码器
3.寻址系统:由地址寄存器、地址译码电路与驱动器共同组成寻址系统,将CPU确定的地址先送至地址寄存器中,然后根据译码电路找到应访问的存储单元,在存储体与译码器之间的驱动器的功能是减轻译码线路驱动负载能力
十、中断
1.中断的本质是处理器对外开放的实时受控接口。
一个没有中断的计算机体系是决定论的:得知某个时刻CPU和内存的全部数据状态,就可以推衍出未来的全部过程。这样的计算机无法交互,只是个加速器。添加中断后,计算机指定了会兼容哪些外部命令,并设定服务程序,这种服务可能打断当前任务。这使得CPU“正在执行的程序”与“随时可能发生的服务”,二者形成了异步关系,外界输入的引入使得计算机程序不再是决定论。由人实时控制的中断输入,是无法预测的。再将中断响应规则化,推广开,非计算机科学人群就能控制计算机,发挥创造力。电竞鼠标微操,数码板绘,音频输入合成,影像后期数值调整,键盘点评天下大势,这些都不是定势流程,是需要人实时创造参与其中的事件,就由中断作为载体,与计算机结合了起来。中断就是处理器的标准输入接口。至于硬件细节并不那么重要,取决于指令规范。可以直接拉外部引脚到CPU Retire单元;也可以内置一个中断控制器统筹接收外部信号,再做转发。x86上二者都有,后一项是由南桥发至IO APIC再发至核心APIC再发给Retire单元,而CPU也有一定的自由度,会在适当的时机响应。
2.中断向量可提供中断服务程序的入口地址,中断向量的位置存放一条跳转到中断服务程序入口地址的跳转指令
3.中断向量:由硬件产生的中断标识码(中断源的识别标志,可用来形成相应的中断服务程序的入口地址或存放中断服务程序的首地址)
十一、DMA
1.DMA概述:DMA的英文拼写是“Direct Memory Access”,汉语的意思就是直接内存访问。DMA既可以指内存和外设直接存取数据这种内存访问的计算机技术,又可以指实现该技术的硬件模块(对于通用计算机PC而言,DMA控制逻辑由CPU和DMA控制接口逻辑芯片共同组成,嵌入式系统的DMA控制器内建在处理器芯片内部,一般称为DMA控制器,DMAC)。
2.DMA内存访问技术:使用DMA的好处就是它不需要CPU的干预而直接服务外设,这样CPU就可以去处理别的事务,从而提高系统的效率,对于慢速设备,如UART,其作用只是降低CPU的使用率,但对于高速设备,如硬盘,它不只是降低CPU的使用率,而且能大大提高硬件设备的吞吐量。因为对于这种设备,CPU直接供应数据的速度太低。 因CPU只能一个总线周期最多存取一次总线,而且对于ARM,它不能把内存中A地址的值直接搬到B地址。它只能先把A地址的值搬到一个寄存器,然后再从这个寄存器搬到B地址。也就是说,对于ARM,要花费两个总线周期才能将A地址的值送到B地址。而DMA就不同了,一般系统中的DMA都有突发(Burst)传输的能力,在这种模式下,DMA能一次传输几个甚至几十个字节的数据,所以使用DMA能使设备的吞吐能力大为增强。
3.使用DMA时我们必须要注意如下事实:DMA使用物理地址,程序是使用虚拟地址的,所以配置DMA时必须将虚拟地址转化成物理地址。
因为程序使用虚拟地址,而且一般使用cache地址,所以Cache中的内容与其物理地址(内存)的内容不一定一致,所以在启动DMA传输前一定要将该地址的cache刷新,即写入内存。
OS并不能保证每次分配到的内存空间在物理上是连续的。尤其是在系统使用过一段时间而又分配了一块比较大的内存时。所以每次都需要判断地址是不是连续的,如果不连续就需要把这段内存分成几段让DMA完成传输
4.DMAC的基本配置:DMA用于无需CPU的介入而直接由专用控制器(DMA控制器)建立源与目的传输的应用,因此,在大量数据传输中解放了CPU。PIC32微控制器中的DMA可用于映射到内存空间中的不同外设,如从存储区到SPI,UART或I2C等设备。DMA特性详见器件参考手册,这里仅对一些基本原理与功能做一个简析。
地址寄存器 存放DMA传输时存储单元地址
字节计数器 存放DMA传输的字节数
控制寄存器 存放由CPU设定的DMA传输方式,控制命令等
状态寄存器 存放DMAC当前的状态,包括有无DMA请求,是否结束等
5.独立DMA控制芯片
在课程《微机原理》中,会讲到X86下一片独立的DMA控制芯片8237A。8237A控制芯片各通道在PC机内的任务:
CH0:用作动态存储器的刷新控制
CH1:为用户预留
CH2:软盘驱动器数据传输用的DMA控制
CH3:硬盘驱动器数据传输用的DMA控制
6.嵌入式设备中的DMA:直接存储器存取(DMA)控制器是一种在系统内部转移数据的独特外设,可以将其视为一种能够通过一组专用总线将内部和外部存储器与每个具有DMA能力的外设连接起来的控制器。它之所以属于外设,是因为它是在处理器的编程控制下来执行传输的。值得注意的是,通常只有数据流量较大(kBps或者更高)的外设才需要支持DMA能力,这些应用方面典型的例子包括视频、音频和网络接口。
7.DMA控制器将包括一条地址总线、一条数据总线和控制寄存器。高效率的DMA控制器将具有访问其所需要的任意资源的能力,而无须处理器本身的介入,它必须能产生中断。最后,它必须能在控制器内部计算出地址。
8.一个处理器可以包含多个DMA控制器。每个控制器有多个DMA通道,以及多条直接与存储器站(memory bank)和外设连接的总线,如图1所示。在很多高性能处理器中集成了两种类型的DMA控制器。第一类通常称为“系统DMA控制器”,可以实现对任何资源(外设和存储器)的访问,对于这种类型的控制器来说,信号周期数是以系统时钟(SCLK)来计数的,以ADI的Blackfin处理器为例,频率最高可达133MHz。第二类称为内部存储器DMA控制器(IMDMA),专门用于内部存储器所处位置之间的相互存取操作。因为存取都发生在内部(L1-L1、L1-L2,或者L2-L2),周期数的计数则以内核时钟(CCLK)为基准来进行,该时钟的速度可以超过600MHz。
9.每个DMA控制器有一组FIFO,起到DMA子系统和外设或存储器之间的缓冲器的作用。对于MemDMA(Memory DMA)来说,传输的源端和目标端都有一组FIFO存在。当资源紧张而不能完成数据传输的话,则FIFO可以提供数据的暂存区,从而提高性能。
10.因为通常会在代码初始化过程中对DMA控制器进行配置,内核就只需要在数据传输完成后对中断做出响应即可。你可以对DMA控制进行编程,让其与内核并行地移动数据,而同时让内核执行其基本的处理任务―那些应该让它专注完成的工作。
11.DMA的设置:目前有两类主要的DMA传输结构:寄存器模式和描述符模式。无论属于哪一类DMA,表1所描述的几类信息都会在DMA控制器中出现。当DMA以寄存器模式工作时,DMA控制器只是简单地利用寄存器中所存储的参数值。在描述符模式中,DMA控制器在存储器中查找自己的配置参数。
12.基于寄存器的DMA:在基于寄存器的DMA内部,处理器直接对DMA控制寄存器进行编程,来启动传输。基于寄存器的DMA提供了最佳的DMA控制器性能,因为寄存器并不需要不断地从存储器中的描述符上载入数据,而内核也不需要保持描述符。
13.基于寄存器的DMA由两种子模式组成:自动缓冲(Autobuffer)模式和停止模式。在自动缓冲DMA中,当一个传输块传输完毕,控制寄存器就自动重新载入其最初的设定值,同一个DMA进程重新启动,开销为零。
14.DMA工作模式下,在主存与外设之间建立直接的数据通道
十二、寄存器寻址和立即寻址
例题:
十三、类继承
1.通过类继承,在程序中可以复用基类的代码
2.在继承类中可以增加新代码
3.在继承类中可以定义与被继承类(基类)中的方法同名的方法
4.在继承类中可以覆盖被继承类(基类)中的方法
十四、软件开发模型
1.软件开发模型的优缺点。
瀑布模型的优点:
1)为项目提供了按阶段划分的检查点。
2)当前一阶段完成后,您只需要去关注后续阶段。
3)可在迭代模型中应用瀑布模型。
瀑布模型的缺点:
1)在项目各个阶段之间极少有反馈。
2)只有在项目生命周期的后期才能看到结果。
3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段。
瀑布模型的使用范围:
(1)用户的需求非常清楚全面,且在开发过程中没有或很少变化;(2)开发人员对软件的应用领域很熟悉;
(3)用户的使用环境非常稳定;
(4)开发工作对用户参与的要求很低。
快速原型模型的优点:
(1)可以得到比较良好的需求定义,容易适应需求的变化;
(2)有利于开发与培训的同步;
(3)开发费用低、开发周期短且对用户更友好。
快速原型模型的缺点:
(1)客户与开发者对原型理解不同;
(2) 准确的原型设计比较困难;
(3) 不利于开发人员的创新。
快速原型模型的使用范围:
(1)对所开发的领域比较熟悉而且有快速的原型开发工具;
(2)项目招投标时,可以以原型模型作为软件的开发模型;
(3)进行产品移植或升级时,或对已有产品原型进行客户化工作时,原型模型是非常适合的。
增量模型的优点:
(1)采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源;
(2)如果核心产品很受欢迎,则可增加人力实现下一个增量;
(3)可先发布部分功能给客户,对客户起到镇静剂的作用。
增量模型的缺点:
(1)并行开发构件有可能遇到不能集成的风险,软件必须具备开放式的体系结构;
(2)增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。
增量模型的使用范围:
(1)进行已有产品升级或新版本开发,增量模型是非常适合的;
(2)对完成期限严格要求的产品,可以使用增量模型;
(3)对所开发的领域比较熟悉而且已有原型系统,增量模型也是非常适合的。
螺旋模型的优点:
(1)设计上的灵活性,可以在项目的各个阶段进行变更;
(2)以小的分段来构建大型系统,使成本计算变得简单容易;
(3)客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性;
(4) 随着项目推进,客户始终掌握项目的最新信息 , 从而他或她能够和管理层有效地交互。
螺旋模型的缺点:
(1)采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失;(2)过多的迭代次数会增加开发成本,延迟提交时间。
螺旋模型的使用范围:螺旋模型只适合于大规模的软件项目。
十五、著作权
十六、专利权