微码控制器,是指一个CPU的指令集作为一微码指令的序列,其中每个典型地由很多位域和下一个微指令执行的地址组成,按照预定顺序改变主电路或控制电路的接线和改变电路中电阻值来控制电动机的启动、调速、制动和反向的主令装置。
GF一10一12高速多功能运算部件微码控制器介绍GF一10一12微码控制器的工作原理、主要特点和几个技术难点。GF一10一12采用微程序设计技术,简化了加法部件和乘法部件的逻辑设计,给用户提供许多性质不同的指令,从而增强了系统的功能。1
微码控制器工作原理GF一10一12系统存在着三级不同类型的指令系统,一 种是MC68000微机指令系统,二是参数部件的指令系统,三是运算部件的微指令系统。
这三种指令之间的关系以矩阵乘运算是一个三重循环的计算公式,除了需要一些加法和乘法指令外,还要给一些参数,如:第一操作数开始地址,第一操作数开始地址增量,第一操作数地址增量 ; 第二操作数开始地址,第二操作数开始地址增量,第二操作数地址增量 ; 运算结果开始地址,运算结果开始地址增量,运算结果地址增量,还有k、i、j 循环次数。
MC68000指令好比主程序,当发现有调AP宏指令时,就发一条命令到参数部件,之后68000又继续执行它的程序。当参数部件接到AP命令后,就到存储器取参数指令,并执行之。参数部件取完一组参数指令后,就发一条AP宏指令到微码控制器。微码控制器设有宏指令缓冲站,共四个单元。一条宏指令的功能, 是用一组微程序来实现的。所有宏指令对应的微程序均放在用PROM组成的存储器里(又称算术库)。 微码控制器的第一个功能,是从宏指令缓冲站提取宏指令,然后到算术库里取出微指令,第二个功能是解释和执行微指令。
微码控制器所看到的逻辑实体,有加法部件AU,乘法部件MU,寄存器组XR和YR,取数缓冲寄存器XS和YS,送数缓冲寄存器ZDR,微程序存储器拼μPM和表格存储器TPM等。高速阵列运算器微码控制器微指令长度为64位,分为三大信息段。 第一段是加法指令及有关信息,第二段是乘法指令及有关信息,第三段是转移类指令。这三大部分同时并行工作。加法指令分为两大类,一类是运算型指令 ,一类是控制型指令,共有三十二种,取数特征有三位,共译出八种寻址方式。
微指令控制器取出微指令后,通过译码,判断出是加法或乘法运算型指令时,根据取数特征,给加法器和乘法器分别提供两个操作数,分别送到加法器和乘法器各自的两个操作数寄存器里。至于加法器和乘法器本身的操作运算,是由硬件来完成。微码控制器还根据发送特征码和目标地址,负责传送加法器和乘法器的运算结果。当译码判断是控制型指令时(如数据传送、 查表、取表常数和各种转移类指令等),微码控制器负责执行这些指令。 有的需要一个时钟周期就可完成,如传送数据、 转移类指令等,有的需要二个时钟周期才能完成。1
GF一10一12微码控制器的主要特点在通用机中,为了避免取指令占用操作时间,往往采用了先行取指令技术。如果假设取指令时间等于操作时间,取指令和操作可以并行执行,那么取指令所需的时间就会被吸收掉。
GF一10一12微码控制器也是采用先行取指令技术。在阵列处理机中,时钟周期为125ns。由于只读存储器的速度不是很快,取微指令、解释微指令和执行微指令,在一个时钟周期是完不成的,所以分为二个时钟周期。两者可以流水、并行工作。
先行取指令控制技术有一个弱者,当它遇到全局性相关时(如根据条件码进行转移),系统的吞吐率将受到严重的影响。为了解决这个问题,GF一10一12微指令中,设置一位NB(控制操作特征),它的含义是,若本条微指令转移成功(条件成立转),则建立一个控制位,它控制下条微指令,若有转移操作,则不执行该转移操作。若本条微指令不成功转移(条件不成立转)、则该特征对下条无控制作用。
这样微程序的效率就很高,它能很好地保证流水线的畅通,这是微码控制器的一个特点。它的另 一个特点是微程序的链接技术。可以通过高速阵列运算器微码控制器,将加法器和乘法器直接链结起来,构成一个高效闭环链结的有机整体,也可以将乘法器和加法器,通过中间的寄存器组间接链结起来,构成一个开环链结的有机整体,以便提供许多不同运算功能的指令,这些指令可以是通常的加、减、乘、除、逻辑操作等,也可以是函数指令。1
流水线的堵塞和数据相关问题在阵列处理机中,由于各功能部件都是并行,流水作业,如果指令流或数据流在某一时刻供不应求,机器就不能连续运转,这种情况叫做流水线的堵塞。微码控制器处理方法是,一旦遇到宏指令供不应求,或者是一个操作数或两个操作数没有取到,或者是送数缓冲站已满等情况,就立即封锁运算器的时钟脉冲,让各条流水线都停止工作,原地等待,封锁一解除,运算器又重新有序不乱地继续工作起来。
关于数据相关问题,在微码控制器里是比较严重的。由高速阵列运算器微码控制器可以看出,两个运算部件 和寄存器组数据通路都很多,彼此之间又可以互相链结,因而存在多种数据相关。1
微码控制器的NoC网络接口设计提出了一种适用于双通道路由器构建的片上网络系统的网络接口。该网络接口集成IP核一侧采用AMBA协议,网络一侧同时兼容3种片上通信协议以适应不同的NoC应用环境。在该设计中微码控制器通过加载并执行微程序控制整个接口的工作流程,这种可编程的设计使得该网络接口具有一定的灵活性。独立双通道的设计可以同时进行网络包的发送和接收,保证了片上通信效率。实验结果表明,该网络接口资源消耗少,响应延迟低。2
微码控制器的设计微码控制是设计CISC处理器控制器的流行技术,采用微程序语言实现,设计简单灵活。在设计中,微码控制器取代了传统的FSM,负责整个通道所有部件的控制。它具有可编程性,可以通过编写不同的微程序来支持多种协议。每段微程序都是由多条微指令组成,而每条微指令又由多个域组成。设计中的微指令按照水平微指令结构进行定义:
其中指令类型位宽是4bit,该域定义微指令的类型;条件码位宽8bit,用于条件跳转指令,该域的值经过特定的编码解码能完整反映外部组件的工作状态;下一个地址位宽8bit,用于跳转指令;控制码位宽8bit,用于对外部组件的控制,经过特定的编码解码,该域能够对外部的每个组件生成控制信号。由于指令类型位宽为4bit,最多可以定义出16种不同的微指令,已定义的有5条,其编码及功能为微指令定义。
设计中两个通道的微码控制器都采用了微码控制器的结构。控制存储器根据当前地址译码器的结果输出一条水平微指令。该指令的控制码域经过解码生成一组控制信号输出,其余的各个域发送到地址生成逻辑单元,该单元根据指令的类型与外部输入的状态信号计算出下一条微指令的地址,并写入地址寄存器中,地址寄存器中的值经过地址译码后输入控制存储器,读取出下一条微指令。
PCC、CBFC和4PHFC三种协议各对应于一段微程序,存放在控制存储器中。不同协议之间的切换通过方式实现:在寄存器组中,有一个寄存器专门用于表征所选择的协议,该寄存器的值作为状态信号的组成部分,通过条件码编码被地址生成逻辑识别,从而选择出对应于当前协议的微程序。2
实验结果使用 VerilogHDL语言描述,采用ISE12。2综合工具,基于Xilinx VC5VLX30FPGA器件,同时设计实现了以下5种类型NoC网络接口:
(1)NI_FSM_PCC,基于有限状态机实现仅支持PCC协议的网络接口;
(2)NI_MC_PCC,基于微码控制器实现仅支持PCC协议的网络接口;
(3)NI_MC_CBFC,基于微码控制器实现仅支持CBFC协议的网络接口;
(4)NI_MC_4PHFC,基于微码控制器实现仅支持4PHFC协议的网络接口;
(5)NI_MC_3PRO,基于微码控制器实现同时兼容3种协议的网络接口。
在所有设计中,网络包的数据位宽为32bit,DMA接口数据位宽为32bit,AHB接口数据位宽为32bit。网络包的数据微片位宽为34bit,其中2bit作为类型标识。在此将给出设计实现结果,并从响应延迟和资源消耗两个方面评估所提出的网络接口性能。2
片内存储的消耗统计片内存储的消耗由两部分组成:数据缓冲Buff-er内的存储和微码控制器内的存储。其中数据缓冲Buffer内的存储深度固定为16,位宽为32bit;微码控制器内的存储深度等于微程序的长度,位宽为28bit。影响微程序长度的主要因素包括所实现的协议和微指令集。对于相同的微指令集,一般协议越复杂,需要的微程序也就越长;而实现相同协议时,微指令集越复杂,需要的微程序也就越短。不同设计消耗的片上存储统计中给出了5种不同设计对片内存储资源的需求。2
响应延迟统计网络接口的响应延迟是网络通信延迟的组成部分,是衡量网络接口服务质量的重要参量。响应延迟越大,则意味着包传输的网络延迟越大,同时链路的使用率越低。设计将发包的响应延迟定义为从IP核发起请求到包的第一个微片出现于输出端口的周期数,收包的响应延迟定义为从包的第一个微片出现于输入端口到IP核接收到收包请求的周期数。
在基于微码控制器的设计中,不同协议的响应延迟统计的最后两行是文献中的实验结果,它所提出的两种设计具有不同的响应延迟,取其平均值作为参考。可以看到,提出的设计平均响应延迟为2.5,相比于文献有很大改进。在包长1000以上时,响应延迟的影响几乎可以忽略不计,链路带宽的利用率达到99%以上。2
本词条内容贡献者为:
何星 - 副教授 - 上海交通大学