标签:指令集 unit 简单操作 class RoCE inline 移动 定位 二级缓存
输入设备:用来将人们熟悉的信息形式转换为机器能识别的信息形式。
常见的键盘、鼠标等。
输出设备:用来将机器运算的结果转换为人们熟悉的信息形式。
如打印机输出、显示器输出等。
冯·诺依曼结构:指令和数据存放在同一个存储器
哈佛结构:指令和数据分别放在两个存储器。
哈佛结构的计算机比冯·诺依曼结构的计算机速度更快。
平均执行周期数(Clock cycle Per Instruction, CPI):表示每条指令的时钟周期数,即 执行一条指令所需的平均始终周期数。
单字长定点指令平均执行速度(Million Instructions Per Second, MIPS):表示平均每秒执行多少百万条定点指令数。
\[MIPS=指令数÷(程序执行时间*10^6)\]
理解:Million百万,当然是\(10^6\)
主频/时钟周期:CPU的工作节拍受主时钟控制,主时钟不断产生固定频率的时钟,主时钟的频率叫CPU的主频。
主频即 CPU的时钟频率,计算机的操作在时钟信号的控制下分步执行,每个时钟信号周期完成一步操作,时钟频率的高低在很大程度上反映了CPU速度的快慢。
外频:通常为系统总线的工作频率(系统时钟频率),CPU与周边设备传输数据的频率,具体是指CPU到芯片组之间的总线速度。外频是CPU与主板之间同步运行的速度。
内存:内存(Memory)也被称为内存储器或主存储器,是CPU能直接寻址的存储空间,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。
内存是计算机中重要的部件之一,它是外存与CPU进行沟通的桥梁。
计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。只要计算机在运行中,操作系统就会把需要运算的数据从内存调到CPU中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。
例如:计算机中的内存条,内存条是由内存芯片、电路板、金手指等部分组成的。
随机存取存储器(Random Access Memory, RAM):我们不仅可以从中读取数据,而且还可以写入数据。但是机器电源关闭时,它中数据就会丢失。
内存条(SIMM)就是把RAM集成块集中在一小块电路板上。
只读存储器(Read Only Memory, ROM):它是把数据或程序永久保存在其中,不能更改,只能读取。即使机器断电,数据也不会丢失。
高级缓存(Cache):它是介于CPU与内存之间,常用有一级缓存(L1)、二级缓存(L2)、三级缓存(L3)(一般存在于Intel系列)。它的读写速度比内存还快,当CPU在内存中读取或写入数据时,数据会被保存在高级缓冲存储器中,当下次访问该数据时,CPU直接读取高级缓冲存储器,而不是更慢的内存。
外存:外储存器是指除计算机内存及CPU缓存以外的储存器,此类储存器一般断电后仍然能保存数据。
例如:常见的外存储器有硬盘、软盘、光盘、U盘等。
主存:就是内存,主存储器(Main memory),简称主存。是计算机硬件的一个重要部件,其作用是存放指令和数据,并能由中央处理器(CPU)直接随机存取。现代计算机是为了提高性能,又能兼顾合理的造价,往往采用多级存储体系。即由存储容量小,存取速度高的高速缓冲存储器,存储容量和存取速度适中的主存储器是必不可少的。
辅存:就是外存,辅存狭义上是我们平时讲的硬盘。科学地说是外部存储器(需要通过I/O系统与之交换数据,又称为辅助存储器)。
边界对齐方式
字节不论在哪个CPU上都是8bit。
字是根据处理器的特性决定的。例如:ARM是32bit处理器,所以它的字是32bit的,半字就是16bit。
假设存储字长为32位,可以按照字节、半字、字寻址。在对准边界的32位字长的计算机中,半字地址是2的整数倍,字地址是4的整数倍,当所存数据不能满足此要求时,可以填充空白字节。
这样保证对齐以后,可以使得每次取数据都是一次访存取出。
cache:是一种高速缓冲存储器,是为了解决CPU和主存之间速度不匹配而采用的一项重要技术。
是位于CPU与内存间的一种容量较小但速度很高的存储器。
CPU的速度远高于内存,当CPU直接从内存中存取数据时要等待一定时间周期,而Cache则可以保存CPU刚用过或循环使用的一部分数据。
如果CPU需要再次使用该部分数据时可从Cache中直接调用,这样就避免了重复存取数据,减少了CPU的等待时间,因而提高了系统的效率。
cache存储速度比主存快,通过向CPU高速提供指令和数据,加快了程序的执行速度。
在一个程序执行期间,设\(N_c\)表示cache完成存取的总次数,\(N_m\)表示主存(memory)完成存取的总次数,h定义为命中率(hit),则有
若\(t_c\)表示命中时的cache访问时间,\(t_m\)表示未命中时的主存(memory)访问时间,1-h表示未命中率,则cache/主存系统的平均访问时间\(t_a\)为:
设\(r=t_m/t_c\)表示主存慢于cache的倍率,e表示访问效率(efficiency),则有
(主存→cache)为了把主存块放到cache中,必须应用某种方法把主存地址定位到cache中,称作地址映射。
当中央处理器存取主存某一单元时,计算机硬件就自动地将包括该单元在内的那一组单元内容调入高速缓存。
cache与主存之间的数据交换是以“块”为单位进行的。
一个“块”中包含若干个“字”,字长由实际情况确定。
注意:习惯上,cache中的“块”称为“行”,主存中称为“块”。
cache的“行”与主存的“块”存储容量相同。
cache中的标记tag与cache的“行”一一对应的。
如果某一块主存数据块拷贝到cache中的某一行,该cache行就会形成相应的标记tag。
地址映射的方式有直接映射方式、全相联映射方式、组相联映射方式。
直接映射方式:直接映射是一种多对一的映射关系,但一个主存块只能拷贝到cache的一个特定行位置上去。
cache的行号i和主存的块号j有如下函数关系:
\[i=j\ mod\ m\]
式中:i为cache的行号,j为主存的块号,m为cache中的总行数
cache共4行
组内编号为b0的主存块如果需要拷贝至cache,只能放置到L0;
b1只能拷贝到L1;b2只能拷贝到L2;b3只能拷贝到L3。
如上图所示,相同颜色的说明可以进行拷贝。
因为它块地址和块内容一起保存,所以叫全相联,它可使主存的一个块直接拷贝到cache中的任意一行上,非常灵活。
全相联cache中,全部标记用相联存储器来实现,全部数据用一个RAM来实现。
组相联映射方式:将cache分成u组,每组v行。主存块存放到哪个组是固定的,至于存到该组哪一行是灵活的。
有如下函数关系:
\[m=u*v\]
\[组号q=j\ mod\ u\]
式中:m为cache中的总行数,u为总组数,v为每组总行数;
q为组号,j为主存的块号,u为总组数。
cache共4行,分为2组
凡是组内编号为b0的主存块,可以拷贝至cache的G0组,至于是2行中的哪一行,是随机的无硬性规定的。
依次类推,组内编号b1的主存块可以拷贝至G1组。
随机存取存储器(Random Access Memory, RAM):我们不仅可以从中读取数据,而且还可以写入数据。但是机器电源关闭时,它中数据就会丢失。
RAM是一种可读/写存储器,其特点是存储器的任何一个存储单元的内容都可以随机存取,而且存取时间与存取单元的物理位置无关。
计算机系统中的主存都采用这种随机存储器。
只读存储器(Read Only Memory, ROM):它是把数据或程序永久保存在其中,不能更改,只能读取。即使机器断电,数据也不会丢失。
只读存储器是能读出其存储的内容,而不能对其重新写入的存储器。
这种存储器一旦存入了原始信息后,在程序执行过程中,只能将内部信息读出,而不能随意重新写入新的信息去改变原始信息。
用途:通常它存放固定不变的程序、常数和汉字字库,甚至用于操作系统的固化。
它与随机存储器可共同作为主存的一部分,统一构成主存的地址域。
一条指令分为操作码字段和地址码字段。
根据一条指令中有几个操作数地址,可将该指令称为几操作数指令 或 几地址指令。
顺序寻址:由于指令地址在内存中按顺序安排,当执行一段程序时,通常是一条指令接一条指令地顺序进行。也就是说,从存储器取出第1条指令,然后执行这条指令;接着从存储器取出第2条指令,再执行第二条指令;接着再取出第3条指令。 [2]
这种程序顺序执行的过程,称为指令的顺序寻址方式。为此,必须使用程序计数器(又称指令计数器)PC来计数指令的顺序号,该顺序号就是指令在内存中的地址。
程序计数器(Program Counter, PC):用来存放当前欲执行指令的地址,它与主存的MAR之间有一条直接通路,且具有自加1的功能,即可形成下一条指令的地址。
跳跃寻址:当程序转移执行的顺序时,指令的寻址就采取跳跃寻址方式。所谓跳跃,是指下条指令的地址码不是由程序计数器给出,而是由本条指令给出。
注意:程序跳跃后,按新的指令地址开始顺序执行。
因此,程序计数器的内容也必须相应改变,以便及时跟踪新的指令地址。用途:可以实现程序转移或构成循环程序,从而能缩短程序长度,或将某些程序作为公共程序引用。指令系统中的各种条件转移或无条件转移指令,就是为了实现指令的跳跃寻址而设置的。
隐含寻址:在指令中不是明显的给出操作数的地址,而是在指令中隐含着操作数的地址。
例如:单地址的指令格式,就不明显地在地址字段中指出第2操作数的地址,而是规定累加寄存器AC作为第2操作数地址。
指令格式明显指出的仅是第1操作数的地址D。
因此,累加寄存器AC对单地址指令格式来说是隐含地址。如:DAA(涉及到汇编语言)(加法指令中隐含着操作数的地址)
间接寻址:指令地址字段中的形式地址不是操作数的真正地址,而是操作数地址的指示器。
指示器:其实就是指针,是一个始终指示某单元位置的地址寄存器。
堆栈寻址:数据存储与栈顶地址有关,需要一个栈顶指示器。
相对寻址方式:相对寻址是把程序计数器PC的内容加上指令格式中的形式地址D而形成操作数的有效地址。程序计数器的内容就是当前指令的地址。“相对”寻址,就是相对于当前的指令地址而言。采用相对寻址方式的好处是程序员无须用指令的绝对地址编程,因而所编程序可以放在内存的任何地方。
指令格式:MOV AX,[BX+1200H] 操作数物理地址PA=(DS/SS)*16H+EA EA=(BX/BP/SI/DI)+(6/8)位偏移量Disp 对于BX,SI,DI寄存器来说段寄存器默认为DS,对于BP来说,段寄存器默认为SS
块寻址方式:
块寻址方式经常用在输入输出指令中,以实现外存储器或外围设备同内存之间的数据块传送。块寻址方式在内存中还可用于数据块移动。
中央处理器(central processing unit, CPU)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。
CPU由控制器、运算器、cache组成。
组合逻辑控制器:采用组合逻辑技术实现,其微操作信号发生器是由门电路组成的复杂树形网络构成的。
微指令:在机器的一个CPU周期中,一组实现一定操作功能的微命令的组合。
微地址:微指令的地址。
微程序:实现一条机器指令功能的许多条微指令组成的序列。
微程序控制器:是一种控制器,同组合逻辑控制器相比较,具有规整性、灵活性、可维护性等一系列优点,因而在计算机设计中逐渐取代了早期采用的组合逻辑控制器,并已被广泛地应用。
在计算机系统中,微程序设计技术是利用软件方法来设计硬件的一门技术。微程序控制器:采用微程序控制方式的控制器。
微程序控制方式:是指微命令不是由组合逻辑电路产生的,而是由微指令译码产生。
一条机器指令往往分成几步执行,将每一步操作所需的若干位命令以代码形式编写在一条微指令中,若干条微指令组成一段微程序,对应一条机器指令。
在设计CPU时,根据指令系统的需要,事先编制好各段微程序,且将它们存入一个专用存储器(称为控制存储器)中。
微程序控制器主要由控制存储器、微指令存储器和地址转移逻辑三大部分组成。
每读出一条微指令,则执行这条微指令;
接着又读出下一条微指令,又执行这一条微指令……。
读出一条微指令并执行微指令的时间总和称为一个微指令周期。
注意:通常,在串行方式的微程序控制器中,微指令周期就是只读存储器的工作周期。
控制存储器的字长就是微指令字的长度,其存储容量视机器指令系统而定,即 取决于微程序的数量。
对控制存储器的要求是速度快,读出周期要短。
微程序控制器采用存储逻辑实现,将微操作控制信号以编码字(即 微指令)的形式存放在控制存储器中。执行指令时,通过依次读取一条条微指令,产生一组组操作控制信号,控制有关功能部件完成一组组微操作。
微程序控制器的设计思想和组合逻辑设计思想截然不同。
它具有设计规整,调试、维修以及更改、扩充指令方便的优点,易于实现自动化设计。但是,由于它增加了一级控制存储器,所以指令的执行速度比组合逻辑控制器慢。
其实微程序控制器其实就是将组合逻辑控制器的操作控制信号分解成更小的步骤。
类比:如果我们需要将桌子上的咖喱放入冰箱。(别问为什么是咖喱,因为我喜欢。。)
组合逻辑控制器:操作控制信号——将桌子上的咖喱放入冰箱。
微程序控制器:微指令——拿起来、走过去、放进去。
这两者都能使我们将桌子上的咖喱放入冰箱,但是组合逻辑控制器一步完成,更加连贯快捷;
而微程序控制器虽然慢一些,但是易于扩展,比如我们要把火锅放进冰箱,微程序控制器就更容易扩展做到,而组合逻辑控制器要从头设计。
指令执行过程分为多个阶段,每个阶段需要的资源不一样,因此可以采用流水线技术,同时执行多条指令的不同阶段。
CPU指令流水线:将一个重复的时序过程分解成多个子过程Subprocess。每个子过程都可有效地在其专用功能段上与其他子过程同时执行。
例如:分成四个功能段
控制相关:控制相关冲突是由转移指令引起的。当执行转移指令时,依据条件的产生结果,可能为顺序取下条指令,也可能转移到新的目标地址取指令,从而使流水线发生断流。
采用以下方法来减少转移指令对流水线性能的影响:
控制器的控制方法:控制不同操作序列时序信号的方法。
常见的有同步控制、异步控制、联合控制三种方式,其实质反映了时序信号的定时方式。
采用完全统一的机器周期执行各种不同的指令:这意味着所有指令周期具有相同的节拍电位数和相同的节拍脉冲数。
显然,对简单指令和简单操作来说,将造成时间浪费。
异步控制方式:每条指令、每个操作控制信号需要多少时间就占用多少时间。
用这种方式形成的操作序列没有固定的CPU周期数(节拍电位)或者严格的时钟周期(节拍脉冲)与之同步。
注意:这意味着每条指令的指令周期可由多少不等的机器周期数组成;
也可以是当控制器发出某一操作控制信号后,等待执行播讲完成操作后发回“回答”信号,再开始新的操作。
联合控制方式:同步控制方式和异步控制方式结合。
一种情况是,大部分操作序列安排在固定的机器周期中;
对某些时间难以确定的操作,则以执行部件的“回答”信号作为本次操作的结束。
注意:同步控制方式要求了每个指令只能是固定的机器周期数,即 指令的时间是机器周期的倍数,经过对应的时间周期就意味着指令执行完了。
异步则没有这个要求,每个指令需要多少时间就占用多少时间,发出对应信号才意味着执行完毕。
总线(bus):是构成计算机系统的互联机构,是多个系统功能部件之间进行数据传送的公共通路。
总线分为如下三类:
磁盘操作时间:包括寻道时间、延迟时间和传输时间。
中断响应过程包括保护现场、获取入口地址、中断返回恢复现场这样三个步骤。
DMA(Direct Memory Access,直接内存存取):是指外部设备不通过CPU,而直接与系统内存交换数据的接口技术。
DMA是所有现代电脑的重要特色,它允许不同速度的硬件装置来沟通,而不需要依赖于CPU的大量中断负载;
否则,CPU需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方。在这个时间中,CPU对于其他的工作来说就无法使用。
DMA方式基本流程:
DMA和CPU分时使用内存采用如下方式:
标签:指令集 unit 简单操作 class RoCE inline 移动 定位 二级缓存
原文地址:https://www.cnblogs.com/blknemo/p/12332395.html