CN113849433B - 一种总线控制器的执行方法、装置、总线控制器、计算机设备和存储介质 - Google Patents
一种总线控制器的执行方法、装置、总线控制器、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113849433B CN113849433B CN202111072398.6A CN202111072398A CN113849433B CN 113849433 B CN113849433 B CN 113849433B CN 202111072398 A CN202111072398 A CN 202111072398A CN 113849433 B CN113849433 B CN 113849433B
- Authority
- CN
- China
- Prior art keywords
- instruction
- bus
- memory
- execution
- bus controller
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30069—Instruction skipping instructions, e.g. SKIP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Programmable Controllers (AREA)
Abstract
本发明涉及一种总线控制器的执行方法、装置、总线控制器、计算机设备和存储介质,总线控制器通过目标总线与目标器件连接,总线控制器包括指令存储器,指令存储器用于储存一个或多个指令,指令与一个或多个总线子操作相对应,包括:当接收到指令执行命令时,获取指令存储器中的指令;针对指令进行解析,并执行对应的一个或多个总线子操作;通过一个或多个总线子操作针对目标器件执行相应的控制或数据操作,通过往指令存储器中写入不同的指令就可以产生各种总线时序,包括产生不常见的、差异性较大的总线时序。本发明可以根据目标器件的不同,灵活、快速配置相应的指令,快速产生与目标器件相匹配的总线时序,无需对总线控制器硬件进行任何修改。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种总线控制器的执行方法、一种总线控制器的执行装置、一种总线控制器、一种计算机设备和一种存储介质。
背景技术
现有的总线控制器,比如I2C、SPI、SWD、BDM等总线控制器,一般采用以下两种设计方法进行设计,一种是软件模拟设计方法,另外一种是逻辑电路设计方法。
软件模拟设计方法对硬件要求低,可以在最简单的嵌入式系统上利用GPIO来实现。比如,MCU通过控制一个或多个GPIO拉高或拉低、延时等方式来产生总线时序,从而与目标器件进行通讯。该方法通过MCU程序来模拟总线时序,所以总线控制器易于修改,具有一定的灵活性,但也存在以下明显缺点:
首先,总线时序难以得到精确控制。MCU程序的执行过程受到许多因素的影响,比如中断、编译器对程序的优化、系统的任务调度等,导致总线时序无法精确控制,从而导致总线数据采样错误等不稳定现象的发生。其次,由于总线的最高运行频率受限,无法做到高性能,难以实现较复杂的总线控制器。当被模拟的总线控制器有较多接口信号、且信号间的关系较为复杂时,MCU的模拟程序的复杂度和代码量将显著增加,使得被模拟总线控制器的复杂度受限。
而逻辑电路设计法是另外一种常见的总线控制器设计方法。所谓逻辑电路设计法就是采用数字逻辑电路来实现总线控制器。一般采用Verilog、VHDL等硬件描述语言进行总线控制器的设计,可在FPGA、ASIC、SOC等硬件上实现和运行。一般来说,采用此方法设计的总线控制器通过本地总线连接到系统,MCU可通过本地总线访问总线控制的寄存器集,来完成配置总线控制器、控制总线控制器运行、获取总线控制器运行状态、向总线控制器发送数据、从总线控制器获取数据等功能。该类总线控制器的最大缺点是缺乏灵活性,许多地方是硬编码,可配置性有限,无法产生各种差异性较大的总线时序。特别是对于一些非标准总线来说,各个厂家的器件差异性较大,这类总线控制器难以兼容大部份器件。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种总线控制器的执行方法、一种总线控制器的执行装置、一种总线控制器、一种计算机设备和一种存储介质。
为了解决上述问题,本发明公开了一种总线控制器的执行方法,所述总线控制器通过目标总线与目标器件连接,所述总线控制器包括指令存储器,所述指令存储器用于储存一个或多个指令,所述指令与一个或多个总线子操作相对应,包括:
当接收到指令执行命令时,获取指令存储器中的指令;
针对所述指令进行解析,并执行对应的一个或多个总线子操作;
通过所述一个或多个总线子操作针对目标器件执行相应的控制或数据操作。
优选地,所述总线控制器通过本地总线与主机连接。
优选地,所述总线子操作包括发送复位时序、发送操作开始时序、发送操作命令、发送读写标识位操作、发送地址操作、发送数据操作、发送操作结束时序、接收响应位操作、接收数据操作。
优选地,所述指令组成指令系统。
优选地,所述当接收到指令执行命令时,获取指令存储器中的指令,包括:
当接收到指令执行命令时,按顺序读取所述指令存储器中的指令;其中,所述指令包括指令识别码,所述指令识别码用于标识所述指令。
优选地,所述指令包括操作数索引,所述方法包括:
当获取到所述指令后,识别出所述指令中的操作数索引;
根据所述操作数索引调用对应的指令操作数寄存器。
优选地,所述指令包括跳转使能标识,所述方法包括:
当获取到所述指令后,识别出所述指令中的跳转使能标识;
根据所述跳转使能标识进行相应的跳转操作。
优选地,所述方法包括:
当获取到所述指令后,识别出所述指令中的操作数;
将所述操作数传输至数据通路控制模块。
优选地,所述方法包括:
当获取到所述指令后,识别出所述指令中的跳转值;
根据所述跳转值跳转到指定的指令存储器地址。
优选地,所述指令包括保留字段,所述保留字段用于对指令进行扩展。
优选地,所述方法还包括:
将总线子操作对应的指令写入指令存储器中。
优选地,所述方法还包括:
设置程序起始地址寄存器,初始化程序计数器,从指定指令存储器地址开始执行指令对应的总线子操作。
优选地,所述方法还包括:
设置程序执行次数寄存器,控制指令存储器中指令的执行次数。
优选地,所述方法包括:
在指令执行控制模块中设置程序计数器;
将程序计数器的输出连接到指令存储器的读地址端口,读取指令存储器地址中存储的指令。
优选地,所述总线控制器包括寄存器,所述寄存器包括控制寄存器、状态寄存器、总线配置寄存器、指令操作数寄存器、存储控制寄存器及中断寄存器。
本发明公开了一种采用上述的方法的总线控制器的执行装置,所述总线控制器通过目标总线与目标器件连接,所述总线控制器包括指令存储器,所述指令存储器用于储存一个或多个指令,所述指令与一个或多个总线子操作相对应,包括:
指令获取模块,用于当接收到指令执行命令时,获取指令存储器中的指令;
第一执行模块,用于针对所述指令进行解析,并执行对应的一个或多个总线子操作;
第二执行模块,用于通过所述一个或多个总线子操作针对目标器件执行相应的控制或数据操作。
本发明公开了一种总线控制器,包含上述的总线控制器的执行装置。
本发明公开了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的总线控制器的执行方法的步骤。
本发明公开了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述的总线控制器的执行方法的步骤。
本发明包括以下优点:
本发明,所述总线控制器通过目标总线与目标器件连接,所述总线控制器包括指令存储器,所述指令存储器用于储存一个或多个指令,所述指令与一个或多个总线子操作相对应,该总线控制器的执行方法,包括:当接收到指令执行命令时,获取指令存储器中的指令;针对所述指令进行解析,并执行对应的一个或多个总线子操作;通过所述一个或多个总线子操作针对目标器件执行相应的控制或数据操作;采用软件指令方式设计的可编程总线控制器,由于采用软件指令的方式来产生总线时序,所以具有灵活性高、兼容性好的突出优点。通过往指令存储器中写入不同的指令就可以产生各种总线时序,包括产生不常见的、差异性较大的总线时序。可以根据目标器件的不同,灵活、快速配置相应的指令,快速产生与目标器件相匹配的总线时序,无需对总线控制器硬件进行任何修改。此外,一个可编程总线控制器,通过配置不同的程序,可以与很多目标器件通讯,包括差异性较大的器件,从而可以做到只用一个总线控制器兼容绝大部分目标器件,兼容性高。
附图说明
为了更清楚地说明本发明中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的一种总线控制器的执行方法实施例的步骤流程图;
图2是本发明的一种总线控制器系统的示意图;
图3是本发明的一种指令获取步骤的流程示意图;
图4是本发明的一种指令获取步骤的流程示意图;
图5是本发明的一种指令获取步骤的流程示意图;
图6是本发明的一种操作数传输步骤的流程示意图;
图7是本发明的一种指令存储器地址跳转步骤的流程示意图;
图8是本发明的一种指令写入步骤的流程示意图;
图9是本发明的一种总线子操作执行步骤的流程示意图;
图10是本发明的一种执行次数控制步骤的流程示意图;
图11是本发明的一种指令存储器地址指令读取步骤的流程示意图;
图12是本发明的一种主机向发送数据存储器写入数据的流程示意图;
图13是本发明的一种主机从接收数据存储器读回数据的流程示意图;
图14是本发明的一种主机向指令存储器写入指令的流程示意图;
图15是本发明的一种总线控制器系统的工作流程示意图;
图16是本发明的一种总线控制器的执行装置实施例的结构框图;
图17是本发明的一种计算机设备的内部结构图。
具体实施方式
为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明的核心构思之一在于,与传统的总线操作固定不变的特性(即在传统的总线控制器中,一个总线操作是固定不变的,不会被拆分为可通过指令控制的、更小的过程,不存在指令系统,不可编程)相比,本发明建立一个或多个指令与一个或多个总线子操作之间的映射关系,通过指令集(即多个指令的组合)来实现总线子操作所组成的总线操作,其中,该总线操作可以为自定义或各种完整功能的总线操作,总线时序精确、稳定性高、运行速度快,也解决了传统逻辑电路设计的灵活性差、兼容性差的问题。
参照图1,示出了本发明的一种总线控制器的执行方法实施例的步骤流程图,所述总线控制器通过目标总线与目标器件连接,所述总线控制器包括指令存储器,所述指令存储器用于储存一个或多个指令,所述指令与一个或多个总线子操作相对应,具体可以包括如下步骤:
步骤101,当接收到指令执行命令时,获取指令存储器中的指令;
本发明中,该总线控制器可以通过本地总线与主机连接,另一方面其可以通过目标总线与目标器件连接;主机是用于控制总线控制器运行的计算机、嵌入式系统或任何其他具有本地总线的控制系统,本地总线可以为AXI、AXI-Lite、AHB、APB、Wishbone等类型的总线,而目标总线是指由总线控制器所控制的总线,其类型同样可以是多个不同类型的总线,目标器件可以包括芯片、电路板、外接设备等,本发明对此不作过多的限制。
参照图2,示出了本发明的一种总线控制器系统的示意图,如图2所示,总线控制器通过本地总线与主机相连,通过目标总线与目标器件相连。其中,该总线控制器可以包括寄存器模块,在本发明中,该总线控制器还可以划分为指令执行控制模块、指令存储模块、指令译码模块、指令执行模块、数据存储模块、数据通路控制模块等按照逻辑划分的模块组成,本发明对此不作过多的限制,需要说明的是,该寄存器模块分别与指令执行控制模块、指令存储模块、指令译码模块、指令执行模块、数据存储模块、数据通路控制模块连接(图2中未示出)。
实际应用到本发明中,主机通过本地总线控制总线控制器的运行,其中,所述总线控制器包括指令存储器等,该指令存储器是用于存储一个或多个指令,每个指令与一个或多个总线子操作相对应,当主机命令总线控制器开始执行某个操作时,总线控制器(在指令执行控制模块的控制之下)开始顺读取指令存储器器中的指令并译码执行。
总线子操作是指对总线操作进行进一步划分的操作,举例而言,该总线子操作可以包括发送复位时序、发送操作开始时序、发送操作命令、发送读写标识位操作、发送地址操作、发送数据操作、发送操作结束时序、接收响应位操作、接收数据操作,当然,还可以包括其他的总线子操作,本发明对此不作过多的限制;指令与总线子操作存在对应关系,指令集中的各条指令分别实现总线操作时序的各个不同的总线子操作,通过各个指令的不同组合来灵活组合总线时序的各个不同的总线子操作,从而实现各种完整功能的总线操作时序。
步骤102,针对所述指令进行解析,并执行对应的一个或多个总线子操作;
具体应用到本发明中,当获取指令后,针对指令进行译码,执行指令对应的一个或多个总线子操作;举例而言,上述的指令对应的总线子操作为发送复位时序、发送操作开始时序,则可以根据指令获取到两个总线子操作:发送复位时序、发送操作开始时序。
在本发明的一种优选实施例中,每个指令可以对应一个总线子操作,则可以通过多个指令完成一个完整的总线操作。
本发明中,指令执行模块根据总线配置寄存器的设置产生总线时钟频率、控制发送数据的建立保持时间、控制接收数据的采样时刻等总线静态参数。
进一步地,根据指令译码模块传递过来的指令识别码、操作数,数据通路控制模块传递过来的操作数,指令执行控制模块传递过来的控制信息等信息,来产生该指令对应的目标总线时序,即产生对应的一个或多个总线子操作。
步骤103,通过所述一个或多个总线子操作针对目标器件执行相应的控制或数据操作。
本发明中,当获取指令后,通过映射关系查到对应的总线子操作,根据总线子操作针对目标器件执行相应的控制或数据操作,如读数据或写数据等操作,本发明对此不作过多的限制。
本发明,所述总线控制器通过目标总线与目标器件连接,所述总线控制器包括指令存储器,所述指令存储器用于储存一个或多个指令,所述指令与一个或多个总线子操作相对应,该总线控制器的执行方法,包括:当接收到指令执行命令时,获取指令存储器中的指令;针对所述指令进行解析,并执行对应的一个或多个总线子操作;通过所述一个或多个总线子操作针对目标器件执行相应的控制或数据操作;采用软件指令方式设计的可编程总线控制器,由于采用软件指令的方式来产生总线时序,所以具有灵活性高、兼容性好的突出优点。通过往指令存储器中写入不同的指令就可以产生各种总线时序,包括产生不常见的、差异性较大的总线时序。可以根据目标器件的不同,灵活、快速配置相应的指令,快速产生与目标器件相匹配的总线时序,无需对总线控制器硬件进行任何修改。此外,一个可编程总线控制器,通过配置不同的程序,可以与很多目标器件通讯,包括差异性较大的器件,从而可以做到只用一个总线控制器兼容绝大部分目标器件,兼容性高。
本发明的一种优选实施例中,参照图3,示出了本发明的一种指令获取步骤的流程示意图,所述当接收到指令执行命令时,获取指令存储器中的指令,包括以下子步骤:
子步骤11,当接收到指令执行命令时,按顺序读取所述指令存储器中的指令;其中,所述指令包括指令识别码,所述指令识别码用于标识所述指令。
进一步应用到本发明中,该指令中可以包括指令识别码,指令识别码是每个指令的特有编号,用于标识区别不同的指令,当主机发出指令执行命令,而总线控制器接收到指令执行命令时,则可以按顺序读取所述指令存储器中的指令;指令存储器中的指令相应的内容包括了指令识别码,通过不同的指令识别码对指令进行区分,达到区分不同指令的技术效果。
本发明中,参照图4,示出了本发明的一种指令获取步骤的流程示意图,所述指令包括操作数索引,所述方法包括:
子步骤21,当获取到所述指令后,识别出所述指令中的操作数索引;
子步骤22,根据所述操作数索引调用对应的指令操作数寄存器。
进一步地,该指令还包括操作数索引,该操作数索引是用于调用指令操作数寄存器,决定调用的指令操作数寄存器的数量或者某一个或几个特定的指令操作数寄存器,其中,指令操作数寄存器存放与指令操作数相关的信息,包括目标总线操作命令、目标总线操作命令字节数、目标总线地址、目标总线地址字节数、发送数据来源、发送数据数量、接收数据存放位置、接收数据数量、程序起始地址、程序块执行次数等信息的寄存器。
进一步应用到本发明中,参照图5,示出了本发明的一种指令获取步骤的流程示意图,所述指令包括跳转使能标识,所述方法包括:
子步骤31,当获取到所述指令后,识别出所述指令中的跳转使能标识;
子步骤32,根据所述跳转使能标识进行相应的跳转操作。
实际应用到本发明中,该指令还包括跳转使能标识,该跳转使能标识用于指示是否需要跳转执行,进一步地,该指令还可以包括跳转值,用于指示跳转的位置;
具体应用到本发明中,指令执行控制模块通过其与指令执行模块相连的专用信号,获取当前指令执行状态信息。当一条指令执行完成时,指令执行控制模块会判断当前指令的跳转使能标识位,需要跳转时,跳转至跳转值相应的位置,如果不需要跳转,则指令执行控制模块会把程序计数器加1,读取下一条指令。
具体应用到本发明中,参照图6,示出了本发明的一种操作数传输步骤的流程示意图,所述方法还包括:
子步骤41,当获取到所述指令后,识别出所述指令中的操作数;
子步骤42,将所述操作数传输至数据通路控制模块。
在指令存储器的指令的格式中,除了操作数索引外,还可以包括操作数据字段,其指示了具体的操作数,在译码得到操作数,发送至数据通路控制模块,进行下一步的指令执行操作。
进一步应用到本发明中,参照图7,示出了本发明的一种指令存储器地址跳转步骤的流程示意图,所述方法还包括:
子步骤51,当获取到所述指令后,识别出所述指令中的跳转值;
子步骤52,根据所述跳转值跳转到指定的指令存储器地址。
另一方面,在本发明的指令格式下,除了跳转使能标识,还可以包括跳转值字段,跳转使能标识用于指令执行控制模块是否需要跳转执行,而跳转值用于指示指令执行控制模块需要跳转的具体数值,即可以根据跳转值跳转到指定的指令存储器地址,开始执行相应的操作。
值得注意的是,在一条指令中,跳转使能标识及跳转值的数值只是一个,指示明确,不容易导致程序混乱。
此外,所述指令包括保留字段,所述保留字段用于对指令进行扩展,即保留字段为当前没有定义的字段,可以让开发者根据后续的需求去添加扩展。
具体而言,所述指令的指令格式包括指令识别码、操作数索引、操作数、跳转使能标识、跳转值、保留字段。所述指令组成指令系统,将该指令系统应用于一个或多个总线子操作的组合,形成完整的指令集,实现无需更改指令存储器中存放的指令,指令存储器只需要在系统初始化的时候配置一次即可的技术效果。
在一种优选实施例中,参照图8,示出了本发明的一种指令写入步骤的流程示意图,所述方法还包括子步骤:
子步骤61,将总线子操作对应的指令写入指令存储器中。
本发明中,具体而言,主机通过本地总线控制总线控制器,通过总线控制器初始化指令存储器的写地址,把指令写入指令存储器的当前写地址,同时指令存储器当前写地址自动加一,指向存储器的下一个单元。可以重复往指令存储器的写数据寄存器中写入指令,直到写完所有指令或把指令存储器填满。
本发明的一种优选实施例中,参照图9,示出了本发明的一种总线子操作执行步骤的流程示意图,所述方法还包括:
子步骤71,设置程序起始地址寄存器,初始化程序计数器,从指定指令存储器地址开始执行指令对应的总线子操作。
另一方面,首先设置程序起始地址寄存器,然后初始化程序计数器,指令执行控制模块接收到控制寄存器送过来的开始执行信号后,开始执行指令存储器中所存储的指令,即执行该指令对应的总线子操作,其所执行的第一条指令的地址由操作数寄存器中的程序起始地址寄存器指定。
本发明中,参照图10,示出了本发明的一种执行次数控制步骤的流程示意图,所述方法还包括:
子步骤81,设置程序执行次数寄存器,控制指令存储器中指令的执行次数。
进一步地,还可以设置程序执行次数寄存器,如果程序执行次数寄存器大于0,则把程序执行次数寄存器的值减1,同时把程序计数器的值设置为程序起始地址寄存器的值,然后再次执行该程序。如此循环,直到程序执行次数寄存器的值减为0,直至所有指令执行结束。
本发明的一种优选实施例中,所述总线控制器包括寄存器,所述寄存器包括控制寄存器、状态寄存器、总线配置寄存器、指令操作数寄存器、存储控制寄存器及中断寄存器。
其中,存储控制寄存器可以包括发送数据存储器写地址寄存器、接收数据存储器读地址寄存器、发送数据寄存器写数据寄存器、接收数据存储器读数据寄存器、指令存储器写地址寄存器、指令存储器写数据寄存器等,本发明对此不作过多的限制。
进一步应用到本发明中,参照图11,示出了本发明的一种指令存储器地址指令读取步骤的流程示意图,所述方法包括:
子步骤91,在指令执行控制模块中设置程序计数器;
子步骤92,将程序计数器的输出连接到指令存储器的读地址端口,读取指令存储器地址中存储的指令。
实际应用中,指令执行控制模块可以设置有一个程序计数器,程序计数器的输出连接到指令存储器的读地址端口,读取相应地址中存储的指令;程序计数器主要用于计数,当读取下一条指令,则控制程序计算器加一。
为了使本领域技术人员更好了理解本发明,以下通过一个具体示例进行说明:
以下所描述的总线控制器,是为了披露尽可能多的细节、理解本发明,而描述的对本发明的一种具体实现,不应理解为本发明只有以下这一种实现方法。基于以下披露的实现细节所衍生出的其他明显类似的实现,也在本发明的涵盖范围之内。
以下的描述披露了大量实现细节,这些实现细节只是为了更方便的阐述本发明,本发明描述的是一种总线控制器的执行方法,这些实现细节这并不是本发明组成要素,本发明完全可以脱离这些实现细节而存在。
一、首先描述以下的术语,以供本领域技术人员参考:
主机:主机是指MCU、CPU等通过本地总线与本可编程控制器相连的、用于控制本可编程控制器运行的宿主机。
本地总线:本地总线是指AXI、AXI-Lite、AHB、APB、Wishbone等用于连接主机与本地外设的总线。连接主机与可编程控制器的本地总线可以是一条或多条。多条总线可以是相同类型的,也可以是不同类型的。
目标总线:目标总线是指由本总线控制器所控制的总线,可以是I2C(Inter-Integrated Circuit)、PMBusTM(Power Management Bus)、SPI(Serial PeripheralInterface)、BDM(Background Debug Mode)、SWD(Serial Wire Debug)、JTAG(Joint TestAction Group)、UART(Universal Asynchronous Receiver/Transmitter)、NAND(NANDFlash Interface)、HyperBusTM(HyperBusTM Memory Interface)、XccelaTM(XccelaTM FlashInterface)等常见外设总线和接口总线。
目标器件:目标器件是指通过目标总线与本总线控制器相连的器件,它可以是芯片、电路板、设备等。
指令存储器:指令存储器是指用于存储主机发送过来的指令的存储器,其实现可以是一组寄存器,也可以是SRAM(静态随机存取存储器),还可以是其他随机访问存储器件。
发送数据存储器:发送数据存储器是指用于存储主机发送过来的、需要发送给目标器件的数据的存储器,其实现一般采用SRAM(静态随机存取存储器)等随机访问存储器件。
接收数据存储器:接收数据存储器是指用于存储总线控制接收到的、目标器件发送过来的数据的存储器,其实现一般采用SRAM(静态随机存取存储器)等随机访问存储器件。
完整的总线操作:一个完整的总线操作是指某个相对独立的总线操作。比如,SPI总线向目标器件的某个地址写入数据的操作,包括送命令、送地址、送数据等过程。从总线信号上看,就是片选(CS)信号有效时的这个时间段。
程序块:程序块是指存储在指令存储器中的,以某个地址为起始,以结束执行指令为结束的一段程序。
二、总线控制器系统的整体结构
如图2所示,图中最大的方框(即图中的“总线控制器”方框)就是对本发明所描述的总线控制器的执行方法的一种具体实现。总线控制器通过本地总线与主机相连,通过目标总线与目标器件相连。
该总线控制器由寄存器模块、指令执行控制模块、指令存储模块、指令译码模块、指令执行模块、数据存储模块、数据通路控制模块等模块组成。图2所示的这些模块是逻辑上模块划分,具体实现是一个模块可能会对应多个实体模块,以下具体描述总线控制器的模块组成。
1、寄存器模块
寄存器模块如下表所示,
控制寄存器 |
状态寄存器 |
总线配置寄存器 |
指令操作数寄存器 |
存储控制寄存器 |
中断寄存器 |
表1:寄存器模块的种类表
主机可通过本地总线访问寄存器模块,寄存器模块与指令执行控制模块、指令译码模块、指令执行模块、数据通路控制模块等多个模块相连。寄存器模块包含控制寄存器、状态寄存器、总线配置寄存器、指令操作数寄存器、存储控制寄存器、中断寄存器等六大类寄存器。
(1)控制寄存器
主机通过读写控制寄存器控制整个可编程控制器的复位、运行、停止等状态。
(2)状态寄存器
指令执行控制模块、指令译码模块、指令执行模块和数据通路控制模块等模块,把系统的各种状态传递给状态寄存器。主机通过读取状态寄存器可获取当前可编程控制器的运行状态、指令执行状态、指令执行结果、错误类型、错误代码等状态等信息。
(3)总线配置寄存器
主机通过读写总线配置寄存器可配置目标总线的时钟频率、建立保持时间、数据采样时刻等与指令系统运行无关的总线静态参数。
(4)指令操作数寄存器
指令操作数寄存器存放与指令操作数相关的信息,包括目标总线操作命令、目标总线操作命令字节数、目标总线地址、目标总线地址字节数、发送数据来源、发送数据数量、接收数据存放位置、接收数据数量、程序起始地址、程序块执行次数等寄存器。
上述每一项指令操作数寄存器都可以设置多组,主机对控制器编程时,可在指令中指明具体使用那一组。比如,可以设置4组(第0到3组,总共4组)目标总线操作数寄存器,主机对控制器编程时,其某一条指令中可以指定使用第0组寄存器,另一条指令可以指定使用第1组寄存器。指令通过指令中所包含的操作数索引来确定其需要使用哪一组操作数寄存器。
(5)存储控制寄存器
存储控制寄存器用于向发送数据存储器中写入数据,或从接收数据存储器中读回数据。具体包括,发送数据存储器写地址寄存器、接收数据存储器读地址寄存器、发送数据寄存器写数据寄存器、接收数据存储器读数据寄存器、指令存储器写地址寄存器、指令存储器写数据寄存器等。
主机向发送数据存储器写入数据的流程,如图12所示,具体地,主机通过写发送数据存储器写地址寄存器,初始化发送数据存储器的写地址,然后主机通过写发送数据寄存器写数据寄存器,把数据写入发送数据存储器的当前地址,同时发送数据存储器当前写地址自动加1,指向存储器的下一个单元。这样主机就可以重复往发送数据存储器写数据寄存器中写入要发送的数据,直到把发送数据存储器填满或写完所有需要发送的数据。
主机从接收数据存储器读回数据的流程,如图13所示,类似的,主机通过写接收数据存储器读地址寄存器,初始化接收数据存储器的读地址,然后主机通过读取接收数据寄存器读数据寄存器,读取接收数据存储器当前读地址的数据,同时接收数据存储器当前读地址自动加1,指向存储器的下一个单元。这样主机就可以通过重复读取接收数据存储器读数据寄存器,把接收数据存储器中的所有数据读回。
主机向指令存储器写入指令的流程,如图14所示,其过程与主机向发送数据存储器写入数据的过程类似。主机通过写指令存储器写地址寄存器,初始化指令存储器的写地址,然后主机通过写指令寄存器写数据寄存器,把指令写入指令存储器的当前地址,同时指令存储器当前写地址自动加1,指向存储器的下一个单元。这样主机就可以重复往指令存储器写数据寄存器中写入指令,直到写完所有指令或把指令存储器填满。
(6)中断寄存器
本总线控制器可通过连接到主机的中断信号向主机发起中断请求。中断控制寄存器用于配置中断使能、配置中断类型、屏蔽/使能中断源、读取中断状态、清除中断等用途。
2、指令执行控制模块
指令执行控制模块控制指令从指令存储器的读取、指令的译码和指令的执行这整个过程,总线控制器系统的工作流程如图15所示。
指令执行控制模块接收到控制寄存器送过来的开始执行信号后,开始执行指令存储器中所存储的指令,其所执行的第一条指令的地址由操作数寄存器中的程序起始地址寄存器指定。
指令执行控制模块中设置一个程序计数器(PC),程序计数器的输出连接到指令存储器的读地址端口,读取相应地址中存储的指令。指令执行控制模块通过其与指令执行模块相连的专用信号,获取当前指令执行状态信息。当一条指令执行完成时,指令执行控制模块会判断当前指令的跳转使能标识位,如果不需要跳转,则指令执行控制模块会把程序计数器加1,读取下一条指令;如果需要跳转,则指令执行控制模块会把程序计数加上或减去当前指令中跳转值字段所指定的跳转值,读取下一条指令。当指令执行控制模块读取到结束执行指令后,当前程序块中的所有指令执行完成。此时,指令执行控制模块会判断指令操作数寄存器中的程序块执行次数寄存器的设置,如果程序块执行次数寄存器大于0,则指令执行控制模块会把程序块执行次数寄存器的值减1,同时把程序计数器的值设置为程序起始地址寄存器的值,然后再次执行该程序块。如此循环,直到程序块执行次数寄存器的值减为0,所有指令执行结束,指令执行控制模块进入空闲状态。
上述指令执行控制模块阐述了指令执行控制的基本原理和基本实现方法,根据目标总线的不同以及对总线控制器性能的不同要求,指令执行控制模块也可采用两级或多级流水线的方式来实现。
3、指令译码模块
指令译码模块接收从指令存储器读取的指令,并对指令进行译码。指令译码产生指令识别码、目标总线操作命令寄存器索引、目标总线操作命令字节数寄存器索引、目标总线地址寄存器索引、目标总线地址字节数寄存器索引、发送数据来源寄存器索引、发送数据数量寄存器索引、接收数据存放位置寄存器索引、接收数据数量寄存器索引等信息。这些指令译码得到的信息会传递给指令执行模块和数据通路控制模块。
4、指令执行模块
指令执行模块负责指令的具体执行,负责产生指令所指定的总线时序。指令执行模块根据总线配置寄存器的设置产生总线时钟频率、控制发送数据的建立保持时间、控制接收数据的采样时刻等总线静态参数。
指令执行模块根据指令译码模块传递过来的指令识别码、操作数,数据通路控制模块传递过来的操作数,指令执行控制模块传递过来的控制信息等信息,来产生该指令对应的目标总线时序。
5、指令存储模块
指令存储模块用于存储主机发送过来的指令,由指令存储器以及访问指令存储器的一些必要数字逻辑电路组成。指令存储器的具体实现可以是一组寄存器,也可以是SRAM(静态随机存取存储器),还可以是其他随机访问存储器件。
6、数据存储模块
数据存储模块由发送数据存储器、接收数据存储器、和一些访问它们的必要数字逻辑电路组成。发送数据存储器和接收数据存储器分别用于存储器主机送过来的发送数据和从目标器件读回的接收数据。发送数据存储器和接收数据存储器都可以是多个,比如可以使用两个发送数据存储器组成一个乒乓结构,提升数据传输效率。指令通过指定发送数据存储器或接收数据存储器的索引来指定使用哪一个存储器。
7、数据通路控制模块
数据通路控制模块根据指令译码模块提供的指令识别码、操作数索引等信息来产生具体的操作数,并发送给指令执行模块。数据通路控制模块根据指令译码得到的目标总线操作命令寄存器索引,来确定使用哪一组目标总线操作命令寄存器;根据目标总线地址寄存器索引,来确定使用哪一组目标总线地址寄存器;根据发送数据存储器索引,来确定使用哪一个发送数据存储器等等,并把这些数据传递给指令执行模块。
三、本发明的指令系统
总线控制器通过预先约定好的协议访问目标器件。一个完整的总线操作,往往由发送复位时序、发送操作开始时序、发送操作命令、发送读写标识位、发送地址、发送数据、发送操作结束时序、接收响应位、接收数据等过程(即总线子操作)组合而成。有些总线操作只有上述某一个总线子操作,有些总线操作包含其中某几个总线子操作,有些总线操作包含同样的几个总线子操作但组合顺序不同,有些总线操作会对某个总线子操作重复多次等等。
本总线控制器指令系统的核心设计思想,是把上述某个或某几个总线子操作的组合用一个指令来实现,把另外的某个或某几个总线子操作的组合用另外一条指令来实现,以此类推,根据需求的不同实现多条不同的指令,最终形成一个完整的指令集。一个完整的总线操作可通过一条指令或多条指令的组合来实现。
而在传统总线控制器的设计中,一个总线操作是固定不变的,不会被拆分为可通过指令控制的、更小的过程,不存在指令系统,不可编程。举个例子,假设目标总线写数据操作帧格式如表2所示,传统总线控制器会把该操作作为一个原子操作实现。先发送CMD,再发送DUMMY,然后发送ADDR,直到发送完DATAn,这个操作是固定的、不可改变的。
CMD | DUMMY | ADDR | DATA0 | DATA1 | … | DATAn |
表2:目标总线写数据操作帧格式
假设目标总线写数据操作帧格式表2所示。在指令设计时,可以把发送CMD、发送DUMMY、发送ADDR、发送DATA等过程的总线时序各自用一条指令来实现,分别称为SEND_CMD、SEND_DUMMY、SEND_ADDR、SEND_DATA指令,每条指令中都包含指令识别码,用于区分不同指令。当系统需要进行一个完整写数据总线操作时,可以把SEND_CMD、SEND_DUMMY、SEND_ADDR、SEND_DATA指令依次写入指令存储器,然后执行指令存储器中的指令,总线控制器就可以产生一个完整的写数据总线操作时序。
在上述指令的具体内容中,CMD的具体值、DUMMY的数量、ADDR的具体值、DATA的具体值可以包含在指令本身当中,也可以不包含在指令本身当中。这些值可以存放在指令操作数寄存器或者发送数据存储器中,指令只需要包含这些指令操作数寄存器或者发送数据存储器的索引即可。数据通路控制模块会根据这些索引信息读取相应的操作数寄存器的值,并把这些操作数传递给指令执行模块。这样设计的优点是当CMD、ADDR、DATA等值改变时,只需要更改相应的指令操作数寄存器即可,无需改变指令本身。因为指令并不需要改变,所以无需更改指令存储器中存放的指令,指令存储器只需要在系统初始化的时候配置一次即可。
采用上述方式,可以在系统初始化时,把所有或部分总线操作对应的指令组合写入指令存储器。当系统需要调用某个总线操作时,只需要从对应的指令存储器地址执行指令即可。
指令识别码 | 操作数索引 | 操作数 | 跳转使能字段 | 跳转值 | 保留字段 |
表3:本发明的指令格式
本发明中的指令的格式如表3所示。指令识别码是一条指令必须包含的字段,它用于区分不同的指令,其余字段是可选字段。如果指令包含操作数索引字段,那么操作数字段可以有一个或多个,用于确定指令所需要使用的操作数寄存器。如果指令包含操作数字段,那么操作数字段可以有一个或多个,这些字段在指令译码后直接提供给数据通路控制模块使用。如果指令包含跳转使能字段,那么跳转使能字段只有能有一个,用于指示指令执行控制模块是否需要跳转执行。如果指令包含跳转值字段,那么跳转值字段只能有一个,用于指示指令执行控制模块需要跳转的具体值。保留字段是当前没有定义的字段,将来可用于对指令的扩展。
本发明中,采用软件指令方式设计的可编程总线控制器,由于采用软件指令的方式来产生总线时序,所以具有灵活性高、兼容性好的突出优点。通过往指令存储器中写入不同的指令就可以产生各种总线时序,包括产生不常见的、差异性较大的总线时序。可以根据目标器件的不同,灵活、快速配置相应的操作指令,快速产生与目标器件相匹配的总线时序,无需对总线控制器硬件进行任何修改。一个可编程总线控制器,通过配置不同的程序,可以与很多目标器件通讯,包括差异性较大的器件,从而可以做到只用一个总线控制器兼容绝大部分目标器件。这是基于传统数字逻辑电路设计方法所设计的总线控制器所无法达到的优点。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必须的。
参照图16,示出了本发明的一种总线控制器的执行装置实施例的结构框图,所述总线控制器通过目标总线与目标器件连接,所述总线控制器包括指令存储器,所述指令存储器用于储存一个或多个指令,所述指令与一个或多个总线子操作相对应,具体可以包括如下模块:
指令获取模块301,用于当接收到指令执行命令时,获取指令存储器中的指令;
第一执行模块302,用于针对所述指令进行解析,并执行对应的一个或多个总线子操作;
第二执行模块303,用于通过所述一个或多个总线子操作针对目标器件执行相应的控制或数据操作。
优选地,所述总线子操作包括发送复位时序、发送操作开始时序、发送操作命令、发送读写标识位操作、发送地址操作、发送数据操作、发送操作结束时序、接收响应位操作、接收数据操作。
优选地,所述指令获取模块包括:
指令读取子模块,用于当接收到指令执行命令时,按顺序读取所述指令存储器中的指令;其中,所述指令包括指令识别码,所述指令识别码用于标识所述指令。
优选地,所述指令包括操作数索引,所述装置包括:
操作数索引识别模块,用于当获取到所述指令后,识别出所述指令中的操作数索引;
指令操作数寄存器调用模块,用于根据所述操作数索引调用对应的指令操作数寄存器。
优选地,所述指令包括跳转使能标识,所述装置包括:
跳转使能标识识别模块,用于当获取到所述指令后,识别出所述指令中的跳转使能标识;
跳转操作执行模块,用于根据所述跳转使能标识进行相应的跳转操作。
优选地,所述装置还包括:
指令写入模块,用于将总线子操作对应的指令写入指令存储器中。
优选地,所述装置还包括:
执行模块,用于设置程序起始地址寄存器,初始化程序计数器,从指定指令存储器地址开始执行指令对应的总线子操作。
优选地,所述装置还包括:
执行次数控制模块,用于设置程序执行次数寄存器,控制指令存储器中指令的执行次数。
优选地,所述总线控制器包括寄存器,所述寄存器包括控制寄存器、状态寄存器、总线配置寄存器、指令操作数寄存器、存储控制寄存器及中断寄存器。
优选地,所述总线控制器通过本地总线与主机连接。
优选地,所述装置包括:
操作数识别模块,用于当获取到所述指令后,识别出所述指令中的操作数;
操作数传输模块,用于将所述操作数传输至数据通路控制模块。
优选地,所述装置包括:
跳转值识别模块,用于当获取到所述指令后,识别出所述指令中的跳转值;
地址跳转模块,用于根据所述跳转值跳转到指定的指令存储器地址。
优选地,所述指令包括保留字段,所述保留字段用于对指令进行扩展。
优选地,所述指令组成指令系统。
优选地,所述装置包括:
程序计数器模块,用于设置在指令执行控制模块中设置程序计数器;
指令存储器地址指令读取模块,用于将程序计数器的输出连接到指令存储器的读地址端口,读取指令存储器地址中存储的指令。
上述总线控制器的执行装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
上述提供的总线控制器的执行装置可用于执行上述任意实施例提供的总线控制器的执行方法,具备相应的功能和有益效果。
在一个实施例中,提供了一种总线控制器,所述总线控制器通过目标总线与目标器件连接,所述总线控制器包括指令存储器,所述指令存储器用于储存一个或多个指令,所述指令与一个或多个总线子操作相对应,包括:
指令获取模块,用于当接收到指令执行命令时,获取指令存储器中的指令;
第一执行模块,用于针对所述指令进行解析,并执行对应的一个或多个总线子操作;
第二执行模块,用于通过所述一个或多个总线子操作针对目标器件执行相应的控制或数据操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图17所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种总线控制器的执行方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图17中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现图1至图17的实施例的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下图1至图17的实施例的步骤。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种总线控制器的执行方法、一种总线控制器的执行装置、一种计算机设备和一种存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (18)
1.一种总线控制器的执行方法,其特征在于,所述总线控制器通过目标总线与目标器件连接,所述总线控制器包括指令存储器,所述指令存储器用于储存一个或多个指令,所述指令与一个或多个总线子操作相对应,包括:
当接收到指令执行命令时,获取指令存储器中的指令;
针对所述指令进行解析,并执行对应的一个或多个总线子操作;
通过所述一个或多个总线子操作针对目标器件执行相应的控制或数据操作;
所述总线子操作包括发送复位时序、发送操作开始时序、发送操作命令、发送读写标识位操作、发送地址操作、发送数据操作、发送操作结束时序、接收响应位操作、接收数据操作。
2.根据权利要求1所述的执行方法,其特征在于,所述总线控制器通过本地总线与主机连接。
3.根据权利要求1所述的执行方法,其特征在于,所述指令组成指令系统。
4.根据权利要求1所述的执行方法,其特征在于,所述当接收到指令执行命令时,获取指令存储器中的指令,包括:
当接收到指令执行命令时,按顺序读取所述指令存储器中的指令;其中,所述指令包括指令识别码,所述指令识别码用于标识所述指令。
5.根据权利要求1所述的执行方法,其特征在于,所述指令包括操作数索引,所述方法包括:
当获取到所述指令后,识别出所述指令中的操作数索引;
根据所述操作数索引调用对应的指令操作数寄存器。
6.根据权利要求1所述的执行方法,其特征在于,所述指令包括跳转使能标识,所述方法包括:
当获取到所述指令后,识别出所述指令中的跳转使能标识;
根据所述跳转使能标识进行相应的跳转操作。
7.根据权利要求1所述的执行方法,其特征在于,所述方法包括:
当获取到所述指令后,识别出所述指令中的操作数;
将所述操作数传输至数据通路控制模块。
8.根据权利要求5所述的执行方法,其特征在于,所述方法包括:
当获取到所述指令后,识别出所述指令中的跳转值;
根据所述跳转值跳转到指定的指令存储器地址。
9.根据权利要求1所述的执行方法,其特征在于,所述指令还包括保留字段,所述保留字段用于对指令进行扩展。
10.根据权利要求1所述的执行方法,其特征在于,所述方法还包括:
将总线子操作对应的指令写入指令存储器中。
11.根据权利要求1所述的执行方法,其特征在于,所述方法还包括:
设置程序起始地址寄存器,初始化程序计数器,从指定指令存储器地址开始执行指令对应的总线子操作。
12.根据权利要求1所述的执行方法,其特征在于,所述方法还包括:
设置程序执行次数寄存器,控制指令存储器中指令的执行次数。
13.根据权利要求1所述的执行方法,其特征在于,所述方法包括:
在指令执行控制模块中设置程序计数器;
将程序计数器的输出连接到指令存储器的读地址端口,读取指令存储器地址中存储的指令。
14.根据权利要求1-13任一项所述的执行方法,其特征在于,所述总线控制器包括寄存器,所述寄存器包括控制寄存器、状态寄存器、总线配置寄存器、指令操作数寄存器、存储控制寄存器及中断寄存器。
15.一种采用权利要求14中所述的执行方法的总线控制器的执行装置,其特征在于,所述总线控制器通过目标总线与目标器件连接,所述总线控制器包括指令存储器,所述指令存储器用于储存一个或多个指令,所述指令与一个或多个总线子操作相对应,包括:
指令获取模块,用于当接收到指令执行命令时,获取指令存储器中的指令;
第一执行模块,用于针对所述指令进行解析,并执行对应的一个或多个总线子操作;
第二执行模块,用于通过所述一个或多个总线子操作针对目标器件执行相应的控制或数据操作。
16.一种总线控制器,其特征在于,包含权利要求15所述的总线控制器的执行装置。
17.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求14中所述的总线控制器的执行方法的步骤。
18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求14中所述的总线控制器的执行方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111072398.6A CN113849433B (zh) | 2021-09-14 | 2021-09-14 | 一种总线控制器的执行方法、装置、总线控制器、计算机设备和存储介质 |
PCT/CN2021/124816 WO2023039988A1 (zh) | 2021-09-14 | 2021-10-20 | 一种总线控制器的执行方法、装置、总线控制器、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111072398.6A CN113849433B (zh) | 2021-09-14 | 2021-09-14 | 一种总线控制器的执行方法、装置、总线控制器、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113849433A CN113849433A (zh) | 2021-12-28 |
CN113849433B true CN113849433B (zh) | 2023-05-23 |
Family
ID=78974093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111072398.6A Active CN113849433B (zh) | 2021-09-14 | 2021-09-14 | 一种总线控制器的执行方法、装置、总线控制器、计算机设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113849433B (zh) |
WO (1) | WO2023039988A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114968130B (zh) * | 2022-08-01 | 2022-09-30 | 深圳云豹智能有限公司 | 链表初始化装置、方法、系统、计算机设备和存储介质 |
CN115982067A (zh) * | 2023-03-21 | 2023-04-18 | 北京智芯微电子科技有限公司 | 总线控制装置、方法以及工控处理芯片和工业控制系统 |
CN117118828B (zh) * | 2023-10-23 | 2024-01-23 | 上海芯联芯智能科技有限公司 | 一种协议转换器、电子设备及一种配置方法 |
CN117709261B (zh) * | 2023-10-30 | 2024-09-27 | 中科驭数(北京)科技有限公司 | Fpga的电路设计方法、asic原型验证方法及设计装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4266281A (en) * | 1979-04-02 | 1981-05-05 | Allen-Bradley Company | Microprogrammed programmable controller |
US6490638B1 (en) * | 1999-08-23 | 2002-12-03 | Advanced Micro Devices, Inc. | General purpose bus with programmable timing |
CN103472748A (zh) * | 2013-09-04 | 2013-12-25 | 青岛海信信芯科技有限公司 | 时序控制电路的验证系统和验证方法 |
CN111656334A (zh) * | 2018-01-29 | 2020-09-11 | 美光科技公司 | 具有可编程原子操作的存储器控制器 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5179716A (en) * | 1986-07-02 | 1993-01-12 | Advanced Micro Devices, Inc. | Programmable expandable controller with flexible I/O |
JP2834837B2 (ja) * | 1990-03-30 | 1998-12-14 | 松下電工株式会社 | プログラマブルコントローラ |
US7698473B2 (en) * | 2005-01-05 | 2010-04-13 | Sony Computer Entertainment Inc. | Methods and apparatus for list transfers using DMA transfers in a multi-processor system |
CN1987699A (zh) * | 2005-12-23 | 2007-06-27 | 上海派恩科技有限公司 | Can总线可编程控制器 |
CN101221541B (zh) * | 2007-01-09 | 2011-04-20 | 张立军 | 用于soc的可编程通信控制器 |
CN100568211C (zh) * | 2007-09-11 | 2009-12-09 | 中兴通讯股份有限公司 | 用可编程器件实现访问多个i2c从器件的方法及装置 |
CN201716564U (zh) * | 2010-06-25 | 2011-01-19 | 中国科学院沈阳自动化研究所 | 高性能可编程控制器专用处理器体系结构 |
CN206133556U (zh) * | 2016-08-31 | 2017-04-26 | 于欣 | 用于教学实验的计算机中央处理器 |
CN108228493B (zh) * | 2016-12-21 | 2019-11-26 | 深圳市海思半导体有限公司 | 闪存接口控制器及操作命令处理方法 |
CN111444125B (zh) * | 2020-05-15 | 2024-03-29 | 小华半导体有限公司 | 一种扩展总线系统 |
CN112578755A (zh) * | 2020-12-17 | 2021-03-30 | 上海通群科技有限公司 | 可编程智能控制器及基于可编程智能控制器的应用系统 |
CN113326219B (zh) * | 2021-06-06 | 2022-06-07 | 深圳市昂科技术有限公司 | 基于烧录系统的烧录方法以及计算机存储介质 |
-
2021
- 2021-09-14 CN CN202111072398.6A patent/CN113849433B/zh active Active
- 2021-10-20 WO PCT/CN2021/124816 patent/WO2023039988A1/zh unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4266281A (en) * | 1979-04-02 | 1981-05-05 | Allen-Bradley Company | Microprogrammed programmable controller |
US6490638B1 (en) * | 1999-08-23 | 2002-12-03 | Advanced Micro Devices, Inc. | General purpose bus with programmable timing |
CN103472748A (zh) * | 2013-09-04 | 2013-12-25 | 青岛海信信芯科技有限公司 | 时序控制电路的验证系统和验证方法 |
CN111656334A (zh) * | 2018-01-29 | 2020-09-11 | 美光科技公司 | 具有可编程原子操作的存储器控制器 |
Also Published As
Publication number | Publication date |
---|---|
WO2023039988A1 (zh) | 2023-03-23 |
CN113849433A (zh) | 2021-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113849433B (zh) | 一种总线控制器的执行方法、装置、总线控制器、计算机设备和存储介质 | |
KR0168656B1 (ko) | 데이터 처리 시스템 | |
US6338109B1 (en) | Microcontroller development system and applications thereof for development of a universal serial bus microcontroller | |
US20110078350A1 (en) | Method for generating multiple serial bus chip selects using single chip select signal and modulation of clock signal frequency | |
US5771370A (en) | Method and apparatus for optimizing hardware and software co-simulation | |
US6701405B1 (en) | DMA handshake protocol | |
CN100565472C (zh) | 一种适用于多处理器核系统芯片的调试方法 | |
Walls | Embedded software: the works | |
CN116909639B (zh) | 一种挂载系统、方法、集群以及存储介质 | |
CN115033444B (zh) | 基于8051core在线调试电路控制装置 | |
CN105335548A (zh) | 一种用于ice的mcu仿真方法 | |
CN112579508A (zh) | 一种数据处理方法、数据处理装置、设备及存储介质 | |
CN103793263A (zh) | 一种基于PowerPC处理器的DMA事务级建模方法 | |
US10496422B2 (en) | Serial device emulator using two memory levels with dynamic and configurable response | |
EP1113281A2 (en) | A method and apparatus for circuit emulation | |
US7228513B2 (en) | Circuit operation verification device and method | |
US8886512B2 (en) | Simulation apparatus, computer-readable recording medium, and method | |
CN100474266C (zh) | 一种用于数字信号处理器的调试系统及其调试方法 | |
CN113672555B (zh) | 处理器核、处理器、片上系统和调试系统 | |
US20050071145A1 (en) | Simulation apparatus, simulation program, and recording medium | |
US11392406B1 (en) | Alternative interrupt reporting channels for microcontroller access devices | |
US7043565B1 (en) | System and method for transferring data over an external transmission medium | |
US20070038435A1 (en) | Emulation method, emulator, computer-attachable device, and emulator program | |
JP2004021907A (ja) | 性能評価用シミュレーションシステム | |
CN112306558A (zh) | 处理单元、处理器、处理系统、电子设备和处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |