发明内容
本发明所要解决的技术问题是提供一种芯片的命令译码方法,用以简化芯片中逻辑译码电路的设计,增强译码操作的可修改性和可扩展性。
为了解决上述技术问题,本发明实施例公开了一种芯片的命令译码方法,包括:
从芯片接口接收控制命令;所述控制命令为包括若干条微指令的微程序,并具有对应的芯片内存入口地址;
从所述芯片内存入口地址逐条提取并执行所述控制命令微程序中的微指令,直至所述控制命令微程序结束。
优选的,所述控制命令微程序在芯片未上电时,存储在外部存储器中;当芯片上电时,所述控制命令微程序从外部存储器被读至芯片内存中,并形成对应的入口地址。
优选的,所述微指令包括操作码信息及操作数信息,所述逐条提取并执行所述控制命令微程序中的微指令的步骤包括:
预取指子步骤:确定当前需要执行的微指令在所述芯片内存入口地址中的指针位置,并产生存储器读操作;
取指子步骤:从所述指针位置读取出当前执行的微指令;
译码子步骤:解析所述微指令获得操作码信息及操作数信息,并依据所述操作码信息及操作数信息,产生具体操作的特定信号;
执行子步骤:按照所述具体操作信号执行对应操作。
优选的,所述操作码信息为针对芯片内部或外部的功能部件发出的功能启动请求或功能配置请求;所述操作数信息包括所述功能部件对应的功能配置寄存器地址;所述译码子步骤产生的具体操作信号为功能配置寄存器的写入信号;
所述执行子步骤为,按照所述功能配置寄存器的写入信号进行相应功能配置寄存器的写入操作。
优选的,所述操作码信息为针对芯片内部或外部的功能部件发出的功能状态校验请求;所述操作数信息包括所述功能部件对应的功能配置寄存器地址;所述译码子步骤产生的具体操作信号为功能配置寄存器读取信号;
所述执行子步骤为,按照所述功能配置寄存器的读取信号进行相应功能配置寄存器的读取操作。
优选的,所述芯片中包括微指令寄存器;所述功能配置寄存器中写入的内容为微指令寄存器的当前内容。
优选的,所述操作数信息还包括,立即数;
所述微指令寄存器的内容为立即数;
或者,所述的方法还包括:
从芯片接口接收控制命令附带的功能模块参数配置信息,并写至缓存中;
所述微指令寄存器的内容为从缓存中读出的功能模块配置参数。
优选的,所述芯片中包括微指令寄存器;所述微指令寄存器的内容为从功能配置寄存器中读出的内容。
优选的,所述芯片中包括微指令寄存器,所述操作码信息为逻辑运算信息,所述操作数包括立即数;所述译码子步骤产生的具体操作信号为指定数据的逻辑运算信息;
所述执行子步骤为,对立即数及所述微指令寄存器中的数据进行相应的逻辑运算,并将运算结果保存至当前微指令寄存器中。
优选的,所述操作码信息还包括程序运行控制信息,
所述执行子步骤为,依据所述程序运行控制信息控制当前微指令的执行逻辑。
优选的,所述微指令按照预置时钟连续提取;
所述预取指子步骤、取指子步骤、译码子步骤、执行子步骤按照至少间隔一个时钟周期的时序执行。
优选的,所述提取并执行一条微指令占用6个时钟周期,其中,预取指子步骤占用第1-4个时钟周期;取指子步骤占用第3-6个时钟周期;所述译码子步骤占用第4个时钟周期;所述执行子步骤占用第5-6个时钟周期;并且,所述取指子步骤及执行子步骤所占用的第5-6个时钟周期对应于,下一条微指令的预取指子步骤的第1-2个时钟周期。
为解决上述技术问题,本发明还提供了一种芯片的命令译码系统,包括:
接口模块,用于从芯片接口接收控制命令;所述控制命令为包括若干条微指令的微程序,并具有对应的芯片内存入口地址;
译码执行模块,用于从所述芯片内存入口地址逐条提取并执行所述控制命令微程序中的微指令,直至所述控制命令微程序结束。
优选的,所述控制命令微程序在芯片未上电时,存储在外部存储器中;当芯片上电时,所述控制命令微程序从外部存储器被读至芯片内存中,并形成对应的入口地址。
优选的,所述微指令包括操作码信息及操作数信息,所述译码执行模块包括:
预取指子模块:用于确定当前需要执行的微指令在所述芯片内存入口地址中的指针位置,并产生存储器读操作;
取指子模块:用于从所述指针位置读取出当前执行的微指令;
译码子模块:用于解析所述微指令获得操作码信息及操作数信息,并依据所述操作码信息及操作数信息,产生具体操作的特定信号;
执行子模块:用于按照所述具体操作信号执行对应操作。
优选的,所述操作码信息为针对芯片内部或外部的功能部件发出的功能启动请求或功能配置请求;所述操作数信息包括所述功能部件对应的功能配置寄存器地址;所述译码子模块产生的具体操作信号为功能配置寄存器的写入信号;所述执行子模块执行的操作为,按照所述功能配置寄存器的写入信号进行相应功能配置寄存器的写入操作。
优选的,所述操作码信息为针对芯片内部或外部的功能部件发出的功能状态校验请求;所述操作数信息包括所述功能部件对应的功能配置寄存器地址;所述译码子模块产生的具体操作信号为功能配置寄存器读取信号;所述执行子模块执行的操作为,按照所述功能配置寄存器的读取信号进行相应功能配置寄存器的读取操作。
优选的,所述芯片中包括微指令寄存器;所述功能配置寄存器中写入的内容为微指令寄存器的当前内容。
优选的,所述操作数信息还包括,立即数;所述微指令寄存器的内容为立即数;
或者,所述的系统还包括:
参数缓存,用于保存从芯片接口接收的控制命令附带的功能模块参数配置信息;
所述微指令寄存器的内容为从缓存中读出的功能模块配置参数。
优选的,所述芯片中包括微指令寄存器;所述功能配置寄存器中的内容被读取至微指令寄存器。
优选的,所述芯片中包括微指令寄存器,所述操作码信息为逻辑运算信息,所述操作数包括立即数;所述译码子模块产生的具体操作信号为指定数据的逻辑运算信息;所述执行子模块执行的操作为,对立即数及所述微指令寄存器中的数据进行相应的逻辑运算,并将运算结果保存至当前微指令寄存器中。
优选的,所述操作码信息还包括程序运行控制信息,
所述执行子模块执行的操作为,依据所述程序运行控制信息控制当前微指令的执行逻辑。
优选的,所述微指令按照预置时钟连续提取;所述预取指子步骤、取指子步骤、译码子步骤、执行子步骤按照至少间隔一个时钟周期的时序执行。
优选的,所述提取并执行一条微指令占用6个时钟周期,其中,预取指子步骤占用第1-4个时钟周期;取指子步骤占用第3-6个时钟周期;所述译码子步骤占用第4个时钟周期;所述执行子步骤占用第5-6个时钟周期;并且,所述取指子步骤及执行子步骤所占用的第5-6个时钟周期对应于,下一条微指令的预取指子步骤的第1-2个时钟周期。
为解决上述技术问题,本发明还提供了一种芯片的命令译码装置,包括:
微指令存储器,用于保存控制命令对应的微程序,所述微程序包括若干条微指令;
接口模块,用于从芯片接口接收控制命令,并将控制命令发送至命令译码逻辑模块,将控制命令附带的参数配置信息发送至参数缓存;
命令译码逻辑模块,用于解析所述控制命令,获得所述控制命令对应的微程序信息,并获得该微程序的微指令存储器的入口地址信息;
参数缓存,用于保存所述控制命令附带的参数配置信息;
微指令译码模块,用于从所述微指令存储器的入口地址逐条提取控制命令微程序中的微指令,并将当前的微指令进行译码以分解成一个或多个微操作,并以产生寄存器读操作信号或寄存器写操作信息的方式通知其它功能部件完成所述微操作。
与现有技术相比,本发明具有以下优点:
本发明通过采用软硬件协同译码的方式,对从芯片接口接收的控制命令进行解析。具体而言,在芯片开发、设计或调试过程中,针对芯片功能和硬件设计的要求会生成相应的控制命令,对于每个控制命令将编写成一段微程序,每一段微程序包含若干条微指令。当芯片从接口接收到一条控制命令,就从对应的芯片内部存储器入口地址找到相应的微程序,依次取出该微程序中的微指令并且执行,从而产生操作控制信号,使相应部件执行所规定的操作,直至执行到一条标志微程序结束的微指令。
本发明所采用的这种微程序控制方式省去了逻辑设计过程中对逻辑表达式的化简步骤,无需过多考虑逻辑门级数和门的扇入系数,使逻辑设计更简便。而且该设计方式灵活,子模块划分更简单清晰,使得项目模块级的可复用性增强;再者,由于微指令是以二进制代码的形式存储在外部存储器里的,因此只要修改微指令的代码,就可改变微操作内容,便于调试、修改,甚至增加或者删减控制命令,有利于芯片生命周期的延续。此外,这种控制命令的可更改/可扩展性,使得芯片在后续的系统级开发上,变得更加灵活,简单。
本发明在具体应用中,还可以将微指令的执行所涉及的预取指、取指、译码、和执行四个子步骤,在时序上采用非单周期流水线的方式执行,从而更加提高微指令的执行效率。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参考图1,示出了本发明的一种芯片的命令译码方法实施例的流程图,具体可以包括以下步骤:
步骤101、从芯片接口接收控制命令;所述控制命令为包括若干条微指令的微程序,并具有对应的芯片内存入口地址;
步骤102、从所述芯片内存入口地址逐条提取并执行所述控制命令微程序中的微指令,直至所述控制命令微程序结束。
本发明采用软硬件协同译码的方式,对从芯片接口接收的控制命令进行解析。具体而言,在芯片开发、设计或调试过程中,针对芯片功能和硬件设计的要求会生成相应的控制命令,例如,将某个数据从外存读入芯片内存。在实际中,控制命令可以从芯片与芯片之间的接口获得;也可以从芯片的内部器件中、用作各功能模块之间通信的接口中读出。
在本发明的具体实现中,对于每个控制命令将编写成一段微程序,每一段微程序包含若干条微指令,每一条微指令对应一个或几个微操作。即采用微指令产生微操作命令,用若干条微指令组成一段微程序实现一条控制命令的功能。
当芯片未上电时,这些控制命令微程序可以存储在外部非易失性存储器(比如SPI接口NOR FLASH)中;当芯片上电时,系统自动从外部非易失性存储器中将这些微程序读入到芯片内部存储器(比如SRAM)中,并形成相应的入口地址。即每个微程序控制命令对应芯片内部存储器中的一个入口地址。
当芯片从接口接收到一条控制命令,就从对应的芯片内部存储器入口地址找到相应的微程序,依次取出该微程序中的微指令并且执行,从而产生操作控制信号,使相应部件执行所规定的操作,直至执行到一条标志微程序结束的微指令。
所述微指令可以包括操作码信息及操作数信息。操作码信息表示要执行的操作类型,即执行什么操作,或做什么;操作数信息是操作码执行时的操作对象,即对什么数进行操作,或对什么地址进行操作。在执行一条指定的微指令时,必须首先解析这条指令的操作码是什么,以决定操作的类型和方法,然后才能控制芯片其它各部件协同完成指令表达的功能。
以下提供一种微指令的构成示例。参考下表,一条微指令可包含4个字节,每个字节的含义为:
byte3 |
byte2 |
byte1 |
byte0 |
其它位 |
数据/地址的高8位 |
数据/地址的低8位 |
微指令操作码 |
其中,byte0即对应该条微指令的操作码信息;如读取参数到微指令寄存器A或微指令寄存器B中、读取某地址寄存器的值到微指令寄存器A或微指令寄存器B中、将立即数写入微指令寄存器A/B中、将微指令寄存器A或微指令寄存器B的内容写入到某地址的寄存器中、与操作、或操作、立即数与微指令寄存器A或微指令寄存器B相与后条件跳转、无条件跳转、指令调用、延时操作等。
byte1、byte2和byte3即对应该条微指令的操作数信息。具体而言,byte1可以为立即数或者寄存器地址的低8位;byte2可以为立即数或者寄存器地址的高8位;byte3作为其它位,可以用作跳转方式(向前跳转或者向后跳转),被调用微指令的入口地址,或者微指令寄存器A或微指令寄存器B等的指示位。
在本发明的一种优选实施例中,一条微指令的执行可以包括以下四个子步骤:
预取指子步骤:确定当前需要执行的微指令在所述芯片内存入口地址中的指针位置,并产生存储器读操作;
取指子步骤:从所述指针位置读取出当前执行的微指令;
译码子步骤:解析所述微指令获得操作码信息及操作数信息,并依据所述操作码信息及操作数信息,产生具体操作的特定信号;
执行子步骤:按照所述具体操作信号执行对应操作。
通过微指令的执行,芯片将以寄存器值写入的方式,完成对其它各功能部件的功能启动或功能配置的任务;以及,通过寄存器值读取的方式,完成对功能执行状态校验任务。即在这种情况下,若微指令的操作码信息为针对芯片内部或外部的功能部件发出的功能启动请求或功能配置请求;操作数信息包括所述功能部件对应的功能配置寄存器地址;则所述译码子步骤产生的具体操作信号为功能配置寄存器的写入信号;并且所述执行子步骤为,按照所述功能配置寄存器的写入信号进行相应功能配置寄存器的写入操作。
若微指令的操作码信息为针对芯片内部或外部的功能部件发出的功能状态校验请求;操作数信息包括所述功能部件对应的功能配置寄存器地址;则所述译码子步骤产生的具体操作信号为功能配置寄存器读取信号;并且所述执行子步骤为,按照所述功能配置寄存器读取信号进行相应功能配置寄存器的读取操作。
在具体实现中,所述芯片中可以包括微指令寄存器、功能配置寄存器,以及,用于接收控制命令附带的功能模块参数配置信息的缓存;在芯片以寄存器值写入的方式完成对其它各功能部件的功能启动或功能配置的任务时,所述功能配置寄存器中写入的内容可以为微指令寄存器的当前内容,在实际中,所述微指令寄存器的内容可以为立即数或从缓存中读出的功能模块配置参数;在芯片以寄存器值读取的方式完成对功能执行状态校验任务时,所述功能配置寄存器中的内容被读取至微指令寄存器中。
作为另一种应用示例,所述微指令的操作码信息可以为逻辑运算信息,所述操作数可以包括立即数;在这种情况下,所述译码子步骤产生的具体操作信号为指定数据的逻辑运算信息;所述执行子步骤可以为,对立即数及所述微指令寄存器中的数据进行相应的逻辑运算,并将运算结果保存至当前微指令寄存器中。
或者,所述操作码信息还可以包括程序运行控制信息,在这种情况下,所述执行子步骤可以为,依据所述程序运行控制信息控制当前微指令的执行逻辑;如立即数与微指令寄存器A或微指令寄存器B相与后条件跳转、无条件跳转、指令调用、延时操作等。
为使本领域技术人员更好地理解本发明,以下通过一个具体示例,详细说明本发明一段控制命令微程序中各条微指令的执行过程。
电子书显示控制波形(Waveform)一般都存储在外部SPI Flash里,对应不同的温度,可以将不同的波形读入到芯片内部,以供显示时使用。相应地,主机接口有一条控制命令就是指示芯片从外部Flash某个地址读入波形,该命令为0x30,这个命令带两个16位的参数,这两个参数用于指定波形存储在Flash里的开始地址,那么在芯片内部SRAM相应区域就会存储一段与0x30命令功能相符合的微程序。
芯片执行0x30命令对应的微程序的过程为:
1)读取第一条微指令:80000103;经译码后,执行如下操作:将立即数0001h写入到微指令寄存器A中;
2)读取第二条微指令:80021404;经译码后,执行如下操作:将微指令寄存器A的内容写入到地址为0214h的寄存器(功能配置寄存器)中;
从功能上来说,这条微指令的执行也就对应着微操作:触发I2C接口去读取外部温度采集器采集的温度。
3)读取第三条微指令:80000A02;经译码后,执行如下操作:读取地址为000A h的寄存器(功能配置寄存器)的内容到微指令寄存器A中;
上述地址为000A h的寄存器为状态标志寄存器,可以用于适时读取查询,以判断功能是否完成。
4)读取第四条微指令:02008007;经译码后,执行如下操作:将立即数0080h与微指令寄存器A相与;
如果相与操作结果中有一位非0则程序跳转到前一条指令(80000A02);即继续读取地址为000A h的寄存器的内容到微指令寄存器A中;
如果相与操作结果中每位都为0,则表示I2C接口读取温度完成,微程序继续往下执行。
5)读取第五条微指令:80021602;经译码后,执行如下操作:读取地址为0216h的寄存器的内容到微指令寄存器A中;
该寄存器为I2C接口的温度值寄存器。
6)读取第六条微指令:80032204;经译码后,执行如下操作:将微指令寄存器A的内容写入到地址为0322h的寄存器(功能配置寄存器)中;
上述地址为0322h的寄存器是在读取显示波形时使用的。
7)读取第七条微指令:00000001;经译码后,执行如下操作:读取主机接口参数1到微指令寄存器B中;
上述主机接口参数是从缓存(FIFO)中读出的。
8)读取第八条微指令:00035004;经译码后,执行如下操作:将微指令寄存器B的内容写入到地址为0350h的寄存器(功能配置寄存器)中;
9)读取第九条微指令:00000001;经译码后,执行如下操作:读取主机接口参数2到微指令寄存器B中;
10)读取第十条微指令:00035204;经译码后,执行如下操作:将微指令寄存器B的内容写入到地址为0352h的寄存器(功能配置寄存器)中。
上述地址为0350h和0352h的寄存器定义了外部Flash存取波形的开始地址。
11)读取第十一条微指令:80000403;经译码后,执行如下操作:将立即数0004h写入到微指令寄存器A中;
12)读取第十二条微指令:80035804;经译码后,执行如下操作:将微指令寄存器A的内容写入到地址为0358h的寄存器(功能配置寄存器)中;
从功能上来说,这条微指令的执行对应着微操作:触发SPI接口去读取温度-波形对应表,为后续指令读取波形操作准备正确的Flash入口地址。
13)读取第十三条微指令:80000A02;经译码后,执行如下操作:读取地址为000A h的寄存器(功能配置寄存器)的内容到微指令寄存器A中;
上述地址为000A h的寄存器为状态标志寄存器。
14)读取第十四条微指令:02004007;经译码后,执行如下操作:将立即数0040h与微指令寄存器A相与;
如果相与操作结果中有一位非0则程序跳转到前一条指令(80000A02),即继续读取地址为000A h的寄存器的内容到微指令寄存器A中;
如果相与操作结果每位都为0,则表示SPI接口读取温度-波形对应表完成,微程序继续往下执行。
15)读取第十五条微指令:80033402;经译码后,执行如下操作:读取地址为0334h的寄存器(功能配置寄存器)的内容到微指令寄存器A中;
16)读取第十六条微指令:80fff105;经译码后,执行如下操作:将立即数fff1h与微指令寄存器A相与,并将相与操作的结果保存在微指令寄存器A中;
17)读取第十七条微指令:80000106;经译码后,执行如下操作:将立即数0001h与微指令寄存器A相或,并将相或操作的结果保存在微指令寄存器A中;
18)读取第十八条微指令:80033404;经译码后,执行如下操作:将微指令寄存器A的内容写入到地址为0334h的寄存器(功能配置寄存器)中;
从功能上来说,这条微指令的执行对应着微操作:触发SPI接口去读取波形。
19)读取第十九条微指令:80033802;经译码后,执行如下操作:读取地址为0338h的寄存器(功能配置寄存器)的内容到微指令寄存器A中;
上述地址为0338h的寄存器为状态标志寄存器。
20)读取第二十条微指令:02000107;经译码后,执行如下操作:将立即数0001h与微指令寄存器A相与;
如果相与操作结果有一位非0则程序跳转到前一条指令(80033802),即继续读取地址为0338h的寄存器的内容到微指令寄存器A中;
如果相与操作结果每位都为0,则表示SPI接口读取波形完成,微程序继续往下执行。
21)读取第二十一条微指令:000000ff;经译码后,执行如下操作:微程序结束。
即当前微指令为标志微程序结束的微指令。
可以理解,本发明所采用的这种微程序控制方式是在存放微程序存储器和存放当前正在执行的微指令的寄存器直接控制下实现的,其电路设计比较规整,各条指令信号的差别集中在控制存储器内容上,因此,无论是增加、减少或修改某个主机接口命令的功能,都只要增加或修改控制存储器内容即可,而不必改动硬件。
例如,如果将来随着显示材料的发展,以至于波形对温度的变化不那么敏感,或者系统出于成本考虑,没有外接温度采集器,那上述的微程序可以将第1条至第6条微指令删除,则芯片执行命令时将不会有读取温度这个步骤。
在具体应用中,为提高微指令的执行效率,所述微指令的执行所涉及的预取指、取指、译码、和执行四个子步骤,在时序上可以采用非单周期流水线的方式执行,即微指令按照预置时钟连续提取(如每4个时钟周期提取一次);所述预取指子步骤、取指子步骤、译码子步骤、执行子步骤则按照至少间隔一个时钟周期的时序执行。
一种优选的微指令指令时序配置的示例可以参考图2,所述提取并执行一条微指令占用6个时钟周期,其中,对应4字节的微指令,预取指子步骤占用第1-4个时钟周期;取指子步骤占用第3-6个时钟周期;译码子步骤占用第4个时钟周期;执行子步骤占用第5-6个时钟周期以流水线的方式进行操作;在执行子步骤中包括两个周期,第一个周期产生寄存器读取或者参数的读取操作信号,第二周期产生寄存器的写操作信号。这些操作将在随后的一个周期结束完成,因为采用非单周期流水线的方式执行微指令,所以寄存器的实际读写操作完成不将影响下一条指令的取指执行。因此,所述取指子步骤及执行子步骤所占用的第5-6个时钟周期对应于,下一条微指令的预取指子步骤的第1-2个时钟周期,如此连续逐条执行。
当然,上述时序配置的方式仅仅用作一种示例,本发明对此不作限制,本领域技术人员根据实际情况任意设置均是可行的。例如,如果当前微指令为跳转指令或者调用指令,参考图3所示的另一种微指令时序配置示意图,则可以将预取指子步骤将停止两个周期,即预取指子步骤占用第1-4个时钟周期;取指子步骤占用第3-6个时钟周期;译码子步骤占用第4个时钟周期;所述执行子步骤占用第5-6个时钟周期;即在本例中,下一条微指令的预取指子步骤并不从第5-6个时钟周期开始,而是从第7个时钟周期开始;或如,如果当前微指令是延时指令,则预取指子步骤将停止直到延时结束。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
参考图4,示出了本发明的一种芯片的命令译码系统实施例的结构框图,具体可以包括以下模块:
接口模块401,用于从芯片接口接收控制命令;所述控制命令为包括若干条微指令的微程序,并具有对应的芯片内存入口地址;
译码执行模块402,用于从所述芯片内存入口地址逐条提取并执行所述控制命令微程序中的微指令,直至所述控制命令微程序结束。
在具体实现中,所述控制命令微程序在芯片未上电时,可以存储在外部存储器中;当芯片上电时,所述控制命令微程序则从外部存储器被读至芯片内存中,并形成对应的入口地址。
在本发明一种优选实施例中,所述微指令包括操作码信息及操作数信息,所述译码执行模块可以包括以下子模块:
预取指子模块:用于确定当前需要执行的微指令在所述芯片内存入口地址中的指针位置,并产生存储器读操作;
取指子模块:用于从所述指针位置读取出当前执行的微指令;
译码子模块:用于解析所述微指令获得操作码信息及操作数信息,并依据所述操作码信息及操作数信息,产生具体操作的特定信号;
执行子模块:用于按照所述具体操作信号执行对应操作。
作为一种应用示例,所述操作码信息可以为针对芯片内部或外部的功能部件发出的功能启动请求或功能配置请求;所述操作数信息可以包括所述功能部件对应的功能配置寄存器地址;在这种情况下,所述译码子模块产生的具体操作信号为功能配置寄存器的写入信号;所述执行子模块执行的操作为,按照所述功能配置寄存器的写入信号进行相应功能配置寄存器的写入操作。
作为另一种应用示例,所述操作码信息可以为针对芯片内部或外部的功能部件发出的功能状态校验请求;所述操作数信息可以包括所述功能部件对应的功能配置寄存器地址;在这种情况下,所述译码子模块产生的具体操作信号可以为功能配置寄存器读取信号;所述执行子模块执行的操作可以为,按照所述功能配置寄存器的读取信号进行相应功能配置寄存器的读取操作。
在实际中,所述芯片中还可以设置微指令寄存器;则所述功能配置寄存器中写入的内容可以为微指令寄存器的当前内容。
作为一种应用示例,所述微指令中的操作数信息还可以包括立即数;则所述微指令寄存器的内容可以为立即数;
作为另一种应用示例,本发明实施例还可以包括:
参数缓存,用于保存从芯片接口接收的控制命令附带的功能模块参数配置信息;
在这种情况下,所述微指令寄存器的内容可以为从缓存中读出的功能模块配置参数。
在实际中,所述芯片中还可以设置微指令寄存器;则所述微指令寄存器中的内容可以为从功能配置寄存器中读出的内容。
根据实际需要,所述芯片中还可以设置微指令寄存器,所述微指令中的操作码信息还可以为逻辑运算信息,所述操作数可以包括立即数;在这种情况下,所述译码子模块产生的具体操作信号可以为指定数据的逻辑运算信息;所述执行子模块执行的操作可以为,对立即数及所述微指令寄存器中的数据进行相应的逻辑运算,并将运算结果保存至当前微指令寄存器中。
根据实际需要,所述操作码信息还可以包括程序运行控制信息,则所述执行子模块执行的操作还可以为,依据所述程序运行控制信息控制当前微指令的执行逻辑。
在具体实现中,所述微指令可以按照预置时钟连续提取;所述预取指子步骤、取指子步骤、译码子步骤、执行子步骤按照至少间隔一个时钟周期的时序执行。
例如,所述提取并执行一条微指令占用6个时钟周期,其中,预取指子步骤占用第1-4个时钟周期;取指子步骤占用第3-6个时钟周期;所述译码子步骤占用第4个时钟周期;所述执行子步骤占用第5-6个时钟周期;并且,所述取指子步骤及执行子步骤所占用的第5-6个时钟周期对应于,下一条微指令的预取指子步骤的第1-2个时钟周期。
对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
参考图5,示出了本发明的一种芯片的命令译码装置实施例的结构图,具体可以包括以下部件:
微指令存储器501,用于保存控制命令对应的微程序,所述微程序包括若干条微指令;
接口模块502,用于从芯片接口接收控制命令,并将控制命令发送至命令译码逻辑模块503,将控制命令附带的参数配置信息发送至参数缓存504;
命令译码逻辑模块503,用于解析所述控制命令,获得所述控制命令对应的微程序信息,并获得该微程序的微指令存储器的入口地址信息;
参数缓存504,用于保存所述控制命令附带的参数配置信息;
微指令译码模块505,用于从所述微指令存储器的入口地址逐条提取控制命令微程序中的微指令,并将当前的微指令进行译码以分解成一个或多个微操作,并以产生寄存器读操作信号或寄存器写操作信息的方式通知其它功能部件完成所述微操作。
应用本发明实施例,当芯片从接口接收到一条控制命令,就从对应的芯片内部存储器入口地址找到相应的微程序,依次取出该微程序中的微指令并且执行,从而产生操作控制信号,使相应部件执行所规定的操作,直至执行到一条标志微程序结束的微指令。
通过微指令的执行,芯片将以产生寄存器写入信号的方式,完成对其它各功能部件的功能启动或功能配置的任务;以及,通过产生寄存器读取信号的方式,完成对功能执行状态校验任务。例如,接口模块将接收到的控制命令送入到命令译码逻辑模块,而参数配置信息存储至参数缓存(可以为FIFO),等待微指令执行时,由微指令译码模块以读取寄存器值的方式来从FIFO里取出参数,临时存放在预置的数据寄存器A或数据寄存器B中;然后再以寄存器值写入的方式写入其它各功能模块的配置寄存器中。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本发明所提供的一种芯片的命令译码方法、一种芯片的命令译码系统以及一种芯片的命令译码装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。