❶ 微服务优点
微服务是一种软件架构风格,它是以专注于单一责任与功能的小型功能区块为基础,利用模组化的方式组合出复杂的大型应用程序,各功能区块使用与语言无关的 API(例如 REST)集相互通讯,且每个服务可以被单独部署,在微服务软件架构风格概念被提出来的初期,它具备以下三个核心特点:
1. 微服务为大型系统而生。 通常我们在系统架构设计上面临的问题都与系统的大小相关,随着业务的快速增长,会带来系统流量压力和复杂度的上升,系统的可维护性和可扩展性成为架构设计的主要考虑因素,微服务架构设计理念通过小而美的业务拆分,通过分而自治来实现复杂系统的优雅设计实现。
2. 微服务架构是面向结果的。 微服务架构设计风格的产生并非是出于学术或为标准而标准的设计,而是在软件架构设计领域不断演进过程中,面对实际工业界所遇到问题,而出现的面向解决实际问题的架构设计风格。
3. 专注于服务的可替代性来设计。 微服务架构设计风格核心要解决的问题之一便是如何便利地在大型系统中进行系统组件的维护和替换,且不影响整体系统稳定性。微服务带来的好处
独立的可扩展性,每个微服务都可以独立进行横向或纵向扩展,根据业务实际增长情况来进行快速扩展;
独立的可升级性,每个微服务都可以独立进行服务升级、更新,不用依赖于其它服务,结合持续集成工具可以进行持续发布,开发人员就可以独立快速完成服务升级发布流程;
易维护性,每个微服务的代码均只专注于完成该单个业务范畴的事情,因此微服务项目代码数量将减少至IDE可以快速加载的大小,这样可以提高了代码的可读性,进而可以提高研发人员的生产效率;
语言无关性,研发人员可以选用自己最为熟悉的语言和框架来完成他们的微服务项目(当然,一般根据每个公司的实际技术栈需要来了),这样在面对新技术或新框架的选用时,微服务能够更好地进行快速响应;
故障和资源的隔离性,在系统中出现不好的资源操作行为时,例如内存泄露、数据库连接未关闭等情况,将仅仅只会影响单个微服务;
优化跨团队沟通,如果要完全实践微服务架构设计风格,研发团队势必会按照新的原则来进行划分,由之前的按照技能、职能划分的方式变为按照业务(单个微服务)来进行划分,如此这般团队里将有各个方向技能的研发人员,沟通效率上来说要优于之前按照技能进行划分的组织架构;
原生基于“云”的系统架构设计,基于微服务架构设计风格,我们能构建出来原生对于“云”具备超高友好度的系统,与常用容器工具如Docker能够很方便地结合,构建持续发布系统与IaaS、PaaS平台对接,使其能够方便的部署于各类“云”上,如公用云、私有云以及混合云。
❷ 微程序控制器如何产生微操作控制信号这种控制器有何优缺点
第二个问题,问这种控制器有何特点倒是好说。
简单讲,相比于 硬连线控制器(也就是组合逻辑控制器),微程序控制器是采用存储微程序的方式实现控制信号的输出的(而硬连线控制器是采用的物理布线方式)。这一点让它更容易扩充指令,调试等。(硬连线控制器则不然,因为其内部结构已定,不便于再改变)。
但它的缺点是运算速度不及硬连线控制器。
至于说具体如何产生控制信号,教材我看了两遍,还是觉得讲的云里雾里的不是太明白。
❸ 微程序微命令微指令概念区别
区别如下:
1、概念不同。
微程序(microprogram)是实现程序的一种手段,具体就是将一条机器指令编写成一段微程序。在有微程序的系统中,当CPU执行机器指令时,会在控制存储器里寻找与该机器指令对应的微程序,取出相应的微指令来控制执行各个微操作,从而完成该程序语句的功能。
微指令是指在微程序控制的计算机中,同时发出的控制信号所执行的一组微操作。
微命令即控制部件通过控制线向执行部件发出各种控制命令。在微指令的控制字段中,每一位代表一个微命令。
2、包含内容不同。
每一个微程序包含若干条微指令,在微指令的控制字段中,每一位代表一个微命令。
3、功能不同。
微程序用于实现机器指令的功能。微指令用于完成一个功能相对完整的操作。微命令一般用于控制数据通路上门的打开/关闭,或者功能选择。
❹ 影响多处理器计算性能的因素主要有哪些 大数据
CPU的性能和速度取决于时钟频率(一般以赫兹或千兆赫兹计算,即与Ghz)和每周期可处理的指令(IPC),两者合并起来就是每秒可处理的指令(IPS)。
IPS值代表了CPU在几种人工指令序列下“高峰期”的运行率,指示和应用。而现实中CPU组成的混合指令和应用,可能需要比IPS值显示的,用更长的时间来完成。而内存层次结构的性能也大大影响中央处理器的性能。
通常工程师便用各种已标准化的测试去测试CPU的性能,已标准化的测试通常被称为“基准”(Benchmarks)。如SPECint,此软仵试图模拟现实中的环境。测量各常用的应用程序,试图得出现实中CPU的绩效。
提高电脑的处理性能,亦使用多核心处理器。原理基本上是一个集成电路插入两个以上的个别处理器(意义上称为核心)。在理想的情况下,双核心处理器性能将是宏内核处理器的两倍。
然而,在现实中,因不完善的软件算法,多核心处理器性能增益远远低于理论,增益只有50%左右。但增加核心数量的处理器,依然可增加一台计算机可以处理的工作量。
这意味着该处理器可以处理大量的不同步的指令和事件,可分担第一核心不堪重负的工作。有时,第二核心将和相邻核心同时处理相同的任务,以防止崩溃。
(4)微程序为什么容易变更扩展阅读:
中央处理器工作原理
CPU的主要工作原理,不管它的外观如何,都是执行存储在一个叫做程序的程序中的一系列指令。这里讨论的设备遵循常用的vonNeumannarchitecture。程序以一系列数字的形式存储在计算机内存中。几乎所有冯·诺伊曼的cpu都要分四个阶段工作:提取、解码、执行和回写。
在第一阶段,从程序存储器中提取和检索指令(用于一个数字或一系列数字)。程序内存的位置由一个程序计数器指定,该程序计数器保存一个标识当前程序位置的数值。
换句话说,程序计数器在当前程序中跟踪CPU。指令被提取后,PC机根据指令的长度增加存储单元。指令提取常常需要从相对较慢的内存中查找,这导致CPU等待指令被发送进来。这个问题主要在现代处理器的缓存和流水线架构中得到解决(见下文)。
CPU根据从内存中提取的指令来决定它的执行行为。在解码阶段,指令被分解成有意义的片段。根据CPU的指令集架构(ISA)的定义将数值解释为指令。
指令值的一部分是指示要执行哪些操作的操作数。其他值通常为指令提供必要的信息,比如加法操作的目标。这种操作的目标可以提供一个常数值(即一个立即值),或者一个空间的可寻址值:一个寄存器或一个内存地址,由寻址模式决定。
在旧的设计中,CPU的指令译码部分是一个不可变的硬件设备。然而,在许多抽象而复杂的cpu和ISAs中,一个微程序经常被用来帮助将指令转换成各种形式的信号。这些微程序通常可以在已完成的CPU中重写,以便更容易地更改译码指令。
在提取和解码阶段之后,接下来是执行阶段。在此阶段,您将连接到能够执行所需计算的各种CPU部件。例如,如果需要一个加法操作,算术逻辑单元将连接到一组输入和一组输出。输入提供要添加的值,输出将包含和结果。
ALU包含一个电路系统,在输出端执行简单的通用和逻辑操作(如加法和位操作)。如果加法操作产生的结果太大,CPU无法处理,则可以在标志寄存器中设置溢出标志(请参阅下面的数值精度讨论)。
最后一个阶段,写回,只是以一种格式写回执行阶段的结果。结果通常被写入到CPU内的寄存器中,以便后续指令快速访问。在其他情况下,结果可能写得更慢,比如在更大更便宜的主存中。某些类型的指令操作程序计数器而不直接产生结果数据。
这些通常被称为“跳转”,并带来循环行为、条件执行(通过跳过条件)和函数[跳转]到您的程序。许多指令也改变标志寄存器的状态位。这些标志可以用来影响程序行为,因为它们通常显示各种结果。
例如,使用“比较”指令确定两个值的大小,并根据比较结果在标志寄存器中设置一个值。这个标志可以被随后的跳转指令用来确定程序的方向。
在执行指令并写回结果数据后,程序计数器的值将递增,重复整个过程,下一个指令周期将正常提取下一条顺序指令。
如果跳转指令完成,程序计数器被修改为跳转指令的地址,程序继续正常执行。许多复杂的cpu可以同时提取多条指令,对其进行解码并同时执行。本节通常指的是“经典RISC管道”,它实际上在使用简单cpu(通常称为微控制器)的许多电子设备中迅速流行起来。
❺ 微程序运行的依据是什么
微程序(microprogram)是英国剑桥大学教授M.V.Wilkes在1951年首先提出的,它是实现程序的一种手段,具体就是将一条机器指令编写成一段微程序。每一个微程序包含若干条微指令,每一条微指令对应一条或多条微操作。在有微程序的系统中,CPU内部有一个控制存储器,用于存放各种机器指令对应的微程序段。当CPU执行机器指令时,会在控制存储器里寻找与该机器指令对应的微程序,取出相应的微指令来控制执行各个微操作,从而完成该程序语句的功能。微程序设计技术,指的是利用软件技术来实现硬件设计的一门技术。
微程序控制方法由于规整性好,灵活方便,通用性强,因此在包括计算机在内的各种复杂数字系统控制器的设计中得到了广泛应用,成为控制器的主流设计方法之一。
程序控制的基本思想,就是仿照通常的解题程序的方法,把所有的控制命令信号汇集在一起编码成所谓的微指令,存放在一个EPROM里。系统运行时,一条又一条地读出这些微指令,从而产生执行部件所需要的各种控制信号,以控制各逻辑部件执行所规定的操作。
一个数字系统基本上可以划分成两大部分——控制部件和执行部件,如图6.26所示。控制器就是控制部件。而ALU、寄存器组、存储器RAM等,相对控制器来讲,就是执行部件。那么两者之间是如何进行联系的呢?
控制部件与执行部件的联系之一,是通过控制线。控制部件通过控制线向执行部件发出各种控制命令,我们把这种控制命令称为微命令,而执行部件接受微命令所执行的操作叫作微操作。
控制部件与执行部件之间的另一联系是反馈信息。例如由于运算处理中正在处理的数据因其结果特征(正、负、进位、溢出等)而影响下一个操作的执行,因此就需要规定条件测试或状态测试。执行部件通过反馈线向控制部件反映当前操作的结果情况,以便使控制部件根据执行部件的“状态”标志下达新的微命令。
在系统的一个基本周期(又称机器周期,一般由几个时钟周期组成)中,一组实现一定操作功能的微命令的组合,构成一条微指令。
这里要强调两点:
第一,一条微指令的有效持续时间为一个系统基本周期,它表示从R0M中读出微指令与执行这条微指令的时间总和。当从ROM中读出下一条微指令后,当前的这条微指令即失效。
第二,一条微指令中包含若干个微命令,它们分头并行地控制执行部件进行相应的微操作。
微指令除给出微命令信息外,还应给出测试判别信息。一旦出现此信息,执行这条微指令时要对系统的有关“状态标志”进行测试,从而实现控制算法流程图的条件分支。微指令中还包含一个下址字段,该字段将指明ROM中下一条微指令的地址。
图6.27 微指令的典型结构
图6.27示出了微指令的典型结构,长条框内的符号X表示一个二进制位(bit)。其中微命令字段给出执行部件的控制信号:X编码为1,表示有微命令,X编码为0表示无微命令。测试判别字段和下一地址字段一起实现顺序控制:当测试判别字段无效时(X编码为0),下址字段信息即是下条微指令的地址;当判别测试字段有效时(其中一个X编码为1),根据执行部件反馈线上的标志信息对下址字段信息进行修改,修改好的地址即为下条微指令的地址。
微程序是由若干条微指令组成的序列。在计算机中,一条机器指令的功能可由若干条微指令组成的序列来解释和执行,因此机器执行一条指令的过程,也就是执行一个相应的微程序的过程。就一般数字系统而言,按照我们在第6.5节中使用的概念,微程序实质上就是将控制算法流程图用EPROM等来实现。
微程序概念的引入使大型复杂数字系统控制器的设计发生了革命性的变化。因为微程序技术可代替硬件布线的控制技术,即由门电路和触发器等组成的硬件网络可被存有控制代码的EPROM存储器所取代[1]
。
❻ 电脑知识
中央处理器(英文Central Processing Unit,CPU)是一台计算机的运算核心和控制核心。CPU、内部存储器和输入/输出设备是电子计算机三大核心部件。其功能主要是解释计算机指令以及处理计算机软件中的数据。CPU由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。差不多所有的CPU的运作原理可分为四个阶段:提取(Fetch)、解码(Decode)、执行(Execute)和写回(Writeback)。 CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码,并执行指令。所谓的计算机的可编程性主要是指对CPU的编程。
工作原理
CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码。它把指令分解成一系列的微操作,然后发出各种控制命令,执行微操作系列,从而完成一条指令的执行。 指令是计算机规定执行操作的类型和操作数的基本命令。指令是由一个字节或者多个字节组成,其中包括操作码字段、一个或多个有关操作数地址的字段以及一些表征机器状态的状态字以及特征码。有的指令中也直接包含操作数本身。
提取
第一阶段,提取,从存储器或高速缓冲存储器中检索指令(为数值或一系列数值)。由程序计数器(Program Counter)指定存储器的位置,程序计数器保存供识别目前程序位置的数值。换言之,程序计数器记录了CPU在目前程序里的踪迹。 提取指令之后,程序计数器根据指令长度增加存储器单元。指令的提取必须常常从相对较慢的存储器寻找,因此导致CPU等候指令的送入。这个问题主要被论及在现代处理器的快取和管线化架构。
解码
CPU根据存储器提取到的指令来决定其执行行为。在解码阶段,指令被拆解为有意义的片断。根据CPU的指令集架构(ISA)定义将数值解译为指令。 一部分的指令数值为运算码(Opcode),其指示要进行哪些运算。其它的数值通常供给指令必要的信息,诸如一个加法(Addition)运算的运算目标。这样的运算目标也许提供一个常数值(即立即值),或是一个空间的寻址值:暂存器或存储器位址,以寻址模式决定。 在旧的设计中,CPU里的指令解码部分是无法改变的硬件设备。不过在众多抽象且复杂的CPU和指令集架构中,一个微程序时常用来帮助转换指令为各种形态的讯号。这些微程序在已成品的CPU中往往可以重写,方便变更解码指令。
执行
在提取和解码阶段之后,接着进入执行阶段。该阶段中,连接到各种能够进行所需运算的CPU部件。 例如,要求一个加法运算,算数逻辑单元(ALU,Arithmetic Logic Unit)将会连接到一组输入和一组输出。输入提供了要相加的数值,而输出将含有总和的结果。ALU内含电路系统,易于输出端完成简单的普通运算和逻辑运算(比如加法和位元运算)。如果加法运算产生一个对该CPU处理而言过大的结果,在标志暂存器里,运算溢出(Arithmetic Overflow)标志可能会被设置。
写回
最终阶段,写回,以一定格式将执行阶段的结果简单的写回。运算结果经常被写进CPU内部的暂存器,以供随后指令快速存取。在其它案例中,运算结果可能写进速度较慢,但容量较大且较便宜的主记忆体中。某些类型的指令会操作程序计数器,而不直接产生结果。这些一般称作“跳转”(Jumps),并在程式中带来循环行为、条件性执行(透过条件跳转)和函式。 许多指令也会改变标志暂存器的状态位元。这些标志可用来影响程式行为,缘由于它们时常显出各种运算结果。 例如,以一个“比较”指令判断两个值的大小,根据比较结果在标志暂存器上设置一个数值。这个标志可借由随后的跳转指令来决定程式动向。 在执行指令并写回结果之后,程序计数器的值会递增,反复整个过程,下一个指令周期正常的提取下一个顺序指令。如果完成的是跳转指令,程序计数器将会修改成跳转到的指令位址,且程序继续正常执行。许多复杂的CPU可以一次提取多个指令、解码,并且同时执行。这个部分一般涉及“经典RISC管线”,那些实际上是在众多使用简单CPU的电子装置中快速普及(常称为微控制(Microcontrollers))。
编辑本段基本结构
CPU包括运算逻辑部件、寄存器部件和控制部件等。
运算逻辑部件
运算逻辑部件,可以执行定点或浮点的算术运算操作、移位操作以及逻辑操作,也可执行地址的运算和转换。
寄存器部件
寄存器部件,包括通用寄存器、专用寄存器和控制寄存器。 32位CPU的寄存器
通用寄存器又可分定点数和浮点数两类,它们用来保存指令中的寄存器操作数和操作结果。 通用寄存器是中央处理器的重要组成部分,大多数指令都要访问到通用寄存器。通用寄存器的宽度决定计算机内部的数据通路宽度,其端口数目往往可影响内部操作的并行性。 专用寄存器是为了执行一些特殊操作所需用的寄存器。 控制寄存器通常用来指示机器执行的状态,或者保持某些指针,有处理状态寄存器、地址转换目录的基地址寄存器、特权状态寄存器、条件码寄存器、处理异常事故寄存器以及检错寄存器等。 有的时候,中央处理器中还有一些缓存,用来暂时存放一些数据指令,缓存越大,说明CPU的运算速度越快,目前市场上的中高端中央处理器都有2M左右的二级缓存,高端中央处理器有4M左右的二级缓存。
控制部件
控制部件,主要负责对指令译码,并且发出为完成每条指令所要执行的各个操作的控制信号。 其结构有两种:一种是以微存储为核心的微程序控制方式;一种是以逻辑硬布线结构为主的控制方式。 微存储中保持微码,每一个微码对应于一个最基本的微操作,又称微指令;各条指令是由不同序列的微码组成,这种微码序列构成微程序。中央处理器在对指令译码以后,即发出一定时序的控制信号,按给定序列的顺序以微周期为节拍执行由这些微码确定的若干个微操作,即可完成某条指令的执行。 简单指令是由(3~5)个微操作组成,复杂指令则要由几十个微操作甚至几百个微操作组成。 逻辑硬布线控制器则完全是由随机逻辑组成。指令译码后,控制器通过不同的逻辑门的组合,发出不同序列的控制时序信号,直接去执行一条指令中的各个操作。
❼ 程序与微程序的区别
程序是一系列机器指令的有序集合,用于解决实际问题,有子程序、分支、循环等结构,存放在主存中,可以更新修改;
微程序是一系列微指令的有序集合,微程序设计是将传统的程序设计方法运用到控制逻辑的设计中,因此在微程序中也可以有微子程序、分支、循环等结构;微程序存储在控制存储器CM中,只能读出,不能更改,CM中的所有微程序解释执行整个指令系统中的所有机器指令;
❽ 微服务的主要优势有哪些
1.将复杂的业务拆分成多个小的业务,每个业务拆分成一个服务,将复杂的问题简单化。利于分工,降低新人的学习成本。
2.微服务应用的一个最大的优点是,它们往往比传统的应用程序更有效地利用计算资源。这是因为它们通过扩展组件来处理功能瓶颈问题。这样一来,开发人员只需要为额外的组件部署计算资源,而不需要部署一个完整的应用程序的全新迭代。最终的结果是有更多的资源可以提供给其它任务。
3.微服务应用程序的另一个好处是,它们更快且更容易更新。当开发者对一个传统的单体应用程序进行变更时,他们必须做详细的QA测试,以确保变更不会影响其他特性或功能。但有了微服务,开发者可以更新应用程序的单个组件,而不会影响其他的部分。测试微服务应用程序仍然是必需的,但它更容易识别和隔离问题,从而加快开发速度并支持DevOps和持续应用程序开发。
4.微服务架构有助于新兴的云服务,如事件驱动计算。类似AWS Lambda这样的功能让开发人员能够编写代码处于休眠状态,直到应用程序事件触发。事件处理时才需要使用计算资源,而企业只需要为每次事件,而不是固定数目的计算实例支付。
缺点1.整体复杂度更高,微服务根本上说是一个分布式系统。开发者需要选择和实现基于消息或者 RPC 的进程间通信机制。虽然这个有很多框架可供选择,并不需要从头实现。但是整体上的代码复杂度是提高了。
2.微服务架构上每个业务有自己的数据库。以前在单体应用中很好解决的事务问题,现在变得很困难。在基于微服务的应用程序中,需要更新不同服务所用的数据库,通常不会选择分布式事务,不仅仅是因为 CAP 定理。他们根本不支持如今高度可扩展的 NoSQL 数据库和消息代理,最后不得不使用基于最终一致性的方法,这对于开发人员来说更具挑战性。
3.测试微服务应用程序也很复杂。例如,使用 Spring Boot,我只需要编写一个测试类来启动一个单体 web 应用程序并测试其 REST API。相比之下,一个类似的测试类对于微服务来说需要启动该服务及其所依赖的所有服务,或者至少要做服务mock,虽然这不是一件高深的事情,但不要低估了这多出来的工作量和复杂度。
❾ 微程序设计的基本原理是什么
在微指令的控制字段中,每一位代表一个微命令,在设计微指令时,是否发出某个微命令,只要将控制字段中相应位置成"1"或"0",这样就可打开或关闭某个控制门,这就是直接控制法.
在6.3节中所讲的就是这种方法.但在某些复杂的计算机中,微命令甚至可多达三四百个,这使微指令字长达到难以接受的地步,并要求机器有大容量控制存储器,为了改进设计出现了以下各种编译法.
6.4.1 微指令的编译法(编码译码方法)(2)
2.字段直接编译法
在计算机中的各个控制门,在任一微周期内,不可能同时被打开,而且大部分是关闭的(相应的控制位为"0").所谓微周期,指的是一条微指令所需的执行时间.如果有若干个(一组)微命令,在每次选择使用它们的微周期内,只有一个微命令起作用,那么这若干个微命令是互斥的.
例如,向主存储器发出的读命令和写命令是互斥的;又如在ALU部件中,送往ALU两个输入端的数据来源往往不是唯一的,而每个输入端在任一微周期中只能输入一个数据,因此控制该输人门的微命令是互斥的.
选出互斥的微命令,并将这些微命令编成一组,成为微指令字的一个字段,用二进制编码来表示, 就是字段直接编译法.
6.4.1 微指令的编译法(编码译码方法)(3)
例如,将7个互斥的微命令编成一组,用三位二进制码分别表示每个微命令,那么在微指令中,该字段就从7位减成3位,缩短了微指令长度.而在微指令寄存器的输出端,为该字段增加一个译码器,该译码器的输出即为原来的微命令.
6.4.1 微指令的编译法(编码译码方法)(4)
字段长度与所能表示的微命令数的关系如下:
字段长度 微命令数
2位 2~3
3位 4~7
4位 8~15
一般每个字段要留出一个代码,表示本段不发出任何微命令,因此当字段长度为3位时,最多只能表示7个互斥的微命令,通常代码000表示不发微命令.
6.4.1 微指令的编译法(编码译码方法)(5)
3.字段间接编译法
字段间接编译法是在字段直接编译法的基础上,进一步缩短微指令字长的一种编译法.
如果在字段直接编译法中,还规定一个字段的某些微命令,要兼由另一字段中的某些微命令来解释,称为字段间接编译法.
本方法进一步减少了指令长度,但很可能会削弱微指令的并行控制能力,因此通常只作为直接编译法的一种辅助手段.
6.4.1 微指令的编译法(编码译码方法)(6)
字段A(3位)的微命令还受字段B控制,当字段B发出b1微命令时,字段A发出a1,1,a1,2,…,a1,7中的一个微命令;而当字段B发出b2微命令时,字段A发出a2,1,a2,2,…,a2,7中的一个微命令,仅当A为000时例外,此时什么控制命令都不产生.
6.4.1 微指令的编译法(编码译码方法)(7)
4.常数源字段E
在微指令中,一般设有一个常数源字段E就如指令中的直接操作数一样.E字段一般仅有几位,用来给某些部件发送常数,故有时称为发射字段.
该常数有时作为操作数送入ALU运算;有时作为计算器初值,用来控制微程序的循环次数等.
6.4.2 微程序流的控制 (1)
当前正在执行的微指令,称为现行微指令,现行微指令所在的控制存储器单元的地址称现行微地址,现行微指令执行完毕后,下一条要执行的微指令称为后继微指令,后继微指令所在的控存单元地址称为后继微地址.
所谓微程序流的控制是指当前微指令执行完毕后,怎样控制产生后继微指令的微地址.
与程序设计相似,在微程序设计中除了顺序执行微程序外还存在转移功能和微循环程和微子程序等,这将影响下址的形成.
下面介绍几种常见的产生后继微指令地址的方法.
6.4.2 微程序流的控制 (2)
(1)以增量方式产生后继微地址.
在顺序执行微指令时,后继微地址由现行微地址加上一个增量(通常为1)形成的;而在非顺序执行时则要产生一个转移微地址.
机器加电后执行的第一条微指令地址(微程序入口)来自专门的硬件电路,控制实现取令操作,然后由指令操作码产生后继微地址.接下去,若顺序执行微指令,则将现行微地址主微程序计数器( PC中)+1产生后继微地址;若遇到转移类微指令,则由 PC与形成转移微地址的逻辑电路组合成后继微地址.
6.4.2 微程序流的控制 (3)
6.4.2 微程序流的控制 (4)
(2)增量与下址字段结合产生后继微地址
将微指令的下址字段分成两部分:转移控制字段BCF和转移地址字段BAF,当微程序实现转移时,将BAF送 PC,否则顺序执行下一条微指令( PC+1).
执行微程序条件转移时,决定转移与否的硬件条件有好几种.例如,"运算结果为零","溢出","已完成指定的循环次数"等.
我们假设有八种转移情况,定义了八个微命令(BCF取3位),在图中设置计数器CT用来控制循环次数.如在执行乘(或除)法指令时,经常采用循环执行"加,移位"(或减,移位)的方法,指令开始执行时,在CT中置循环次数)每执行一次循环,计数器减1,当计数器为零时结束循环.又考虑到执行微子程序时,要保留返回微地址,因此图中设置了一个返回寄存器RR.
❿ 微程序控制器通常运用于什么场合 为什么
复杂指令集CPU内部为将较复杂的指令译码,也就是指令较长,分成几个微指令去执行,正是如此开发程序比较容易(指令多的缘故),但是由于指令复杂,执行工作效率较差,处理数据速度较慢,PC 中 Pentium的结构都为CISC CPU。
RISC是精简指令集CPU,指令位数较短,内部还有快速处理指令的电路,使得指令的译码与数据的处理较快,所以执行效率比CISC高,不过,必须经过编译程序的处理,才能发挥它的效率,我所知道的IBM的 Power PC为RISC CPU的结构,CISCO 的CPU也是RISC的结构。
咱们经常见到的PC中的CPU,Pentium-Pro(P6)、Pentium-II,Cyrix的M1、M2、AMD的K5、K6实际上是改进了的CISC,也可以说是结合了CISC和RISC的部分优点。
RISC与CISC的主要特征对比
比较内容 CISC RISC
指令系统 复杂,庞大 简单,精简
指令数目 一般大于200 一般小于100
指令格式 一般大于4 一般小于4
寻址方式 一般大于4 一般小于4
指令字长 不固定 等长
可访存指令 不加限制 只有LOAD/STORE指令
各种指令使用频率 相差很大 相差不大
各种指令执行时间 相差很大 绝大多数在一个周期内完成
优化编译实现 很难 较容易
程序源代码长度 较短 较长
控制器实现方式 绝大多数为微程序控制 绝大多数为硬布线控制
软件系统开发时间 较短 较长