CN106469127A - 一种数据访问装置及方法 - Google Patents
一种数据访问装置及方法 Download PDFInfo
- Publication number
- CN106469127A CN106469127A CN201510521951.8A CN201510521951A CN106469127A CN 106469127 A CN106469127 A CN 106469127A CN 201510521951 A CN201510521951 A CN 201510521951A CN 106469127 A CN106469127 A CN 106469127A
- Authority
- CN
- China
- Prior art keywords
- port
- module
- effective address
- access
- arbitration modules
- 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.)
- Granted
Links
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
-
- 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4031—Coupling between buses using bus bridges with arbitration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/36—Arbitration
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Bus Control (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明实施例公开了一种数据访问装置,包括:主端口接口模块,用于传输第一主端口发送的访问请求至仲裁模块,该访问请求中携带访问地址、访问命令和访问数据;仲裁模块,用于根据预设表格,通过从端口接口模块确定与访问地址对应的第一从端口及该第一从端口的有效地址,并发送该第一从端口的有效地址、该访问命令和该访问数据至从端口接口,其中,仲裁模块是根据该预设表格生成的,该预设表格包括总线参数;从端口接口模块,用于传输仲裁模块发送的第一从端口的有效地址、访问命令和访问数据至第一从端口,以供该第一从端口根据该第一从端口的有效地址和访问命令,对访问数据进行访问操作。
Description
技术领域
本发明涉及集成电路领域中的嵌入式设计,尤其涉及一种数据访问装置及方法。
背景技术
随着片上***(SoC,System On Chip)技术的发展,一个芯片内集成的功能模块也越来越多,而各个模块对于存储器的访问要求也越来越高,因此,片上总线在芯片架构中显得非常重要,片上总线实现片上主机(主模块)对各个从机(从模块)的控制是片上***不可缺少的一部分。目前很多芯片设计采用数据突发传输(AMBA,Advanced Microcontroller Bus Architecture)芯片内总线协议中的高级高性能总线(AHB,Advanced High Performance Bus)协议。
现有技术中,在集成电路(IC,Integrated Circuit)设计中,需要用户掌握总线协议,通过编写寄存器传输级(RTL,Register-Transfer Level)代码由AHB中的仲裁模块决定的AHB总线的访问路径。
然而,采用上述现有技术的实现方案,通过用户掌握总线协议,编写RTL代码的方式会浪费访问时间,且可靠性也不高,而且对于规模比较大的芯片,可能需要几百上千个从模块,若是手动编写每个从模块的RTL代码,将是一个非常巨大的工作量。
发明内容
为解决上述技术问题,本发明实施例期望提供一种数据访问装置及方法,能够快速简洁有效地实现数据访问装置,且提高了数据访问装置的可靠性。
本发明的技术方案是这样实现的:
本发明实施例提供一种数据访问装置,所述数据访问装置包括:
主端口接口模块,用于传输第一主端口发送的访问请求至仲裁模块,所述访问请求中携带访问地址、访问命令和访问数据;
所述仲裁模块,用于根据预设表格,通过从端口接口模块确定与所述访问地址对应的第一从端口及所述第一从端口的有效地址,并发送所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第一从端口,其中,所述仲裁模块是根据所述预设表格生成的,所述预设表格包括总线参数;
所述从端口接口模块,用于传输所述仲裁模块发送的所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第一从端口,以供所述第一从端口根据所述第一从端口的有效地址和所述访问命令,对所述访问数据进行访问操作。
在上述数据访问装置中,所述数据访问装置还包括:第一跨时钟模块;所述仲裁模块通过所述第一跨时钟模块与所述从端口接口模块进行通信;
所述仲裁模块,还用于发送所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第一跨时钟模块;
所述第一跨时钟模块,用于根据所述预设表格,将所述仲裁模块发送的所述第一从端口的有效地址、所述访问命令和所述访问数据所在的时钟域切换至所述第一从端口所在的时钟域,以实现与处于不同时钟域的所述第一从端口的对接,并发送切换时钟域后的所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第一从端口;
所述从端口接口模块,还用于传输所述第一跨时钟模块发送的切换时钟域后的所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第一从端口,以供所述第一从端口根据切换时钟域后的所述第一从端口的有效地址和所述访问命令,对切换时钟域后的所述访问数据进行访问操作。
在上述数据访问装置中,所述数据访问装置还包括:第一流水线模块;所述仲裁模块通过所述第一流水线模块与所述从端口接口模块通信;
所述仲裁模块,还用于发送所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第一流水线模块;
所述第一流水线模块,用于将所述第一从端口的有效地址、所述访问命令和所述访问数据按照时序输出至所述第一从端口;
所述从端口接口模块,还用于传输所述第一流水线模块按照时序输出的所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第一从端口,以供所述第一从端口根据时序正确的所述第一从端口的有效地址和所述访问命令,对所述访问数据进行访问操作。
在上述数据访问装置中,所述数据访问装置还包括:下一级仲裁模块;所述仲裁模块通过所述下一级仲裁模块与所述从端口接口模块通信;
所述仲裁模块,用于根据所述预设表格,通过所述下一级仲裁模块及所述从端口接口模块确定与所述访问地址对应的第一从端口及所述第一从端口的有效地址,并通过所述下一级仲裁模块发送所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第一从端口。
在上述数据访问装置中,所述AHB主线还包括:第二跨时钟模块;所述下一级仲裁模块通过所述第二跨时钟模块与所述从端口接口模块通信;
所述仲裁模块,还用于根据所述预设表格,通过所述下一级仲裁模块及所述从端口接口模块中确定与所述访问地址对应的第一从端口及所述第一从端口的有效地址,并通过所述下一级仲裁模块发送所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第二跨时钟模块;
所述第二跨时钟模块,用于根据所述预设表格,将通过所述下一级仲裁模块发送的所述第一从端口的有效地址、所述访问命令和所述访问数据所在的时钟域切换至所述第一从端口所在的时钟域,以实现与处于不同时钟域的所述第一从端口的对接,并发送切换时钟域后的所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第一从端口;
所述从端口接口模块,还用于传输第二跨时钟模块发送的切换时钟域后的所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第一从端口,以供所述第一从端口根据切换时钟域后的所述第一从端口的有效地址和所述访问命令,对切换时钟域后的所述访问数据进行访问操作。
在上述数据访问装置中,所述AHB主线还包括:第二流水线模块;所述下一级仲裁模块通过所述第二流水线模块与所述从端口接口模块通信;
所述仲裁模块,用于根据所述预设表格,通过所述下一级仲裁模块及所述从端口接口模块确定与所述访问地址对应的第一从端口及所述第一从端口的有效地址,并通过所述下一级仲裁模块发送所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第二跨时钟模块;
所述第二流水线模块,用于将所述第一从端口的有效地址、所述访问命令和所述访问数据按照时序输出至所述第一从端口。
所述从端口接口模块,还用于传输所述第二流水线模块按照时序输出的所述第一从端口的有效地址、所述访问命令和所述访问数据按照时序输出至所述第一从端口,以供所述第一从端口根据时序正确的所述第一从端口的有效地址和所述访问命令,对所述访问数据进行访问操作。
在上述数据访问装置中,所述数据访问装置还包括:高级高性能总线AHB转换模块;所述AHB转换模块与所述从端口接口模块通信;
所述AHB转换模块,用于解析通过所述从端口接口模块接收的所述访问命令和所述访问数据。
在上述数据访问装置中,所述数据访问装置还包括:主端口选择模块;所述主端口接口模块与所述主端口选择模块通信;
所述主端口选择模块,用于从多个主端口中确定与所述仲裁模块通信的所述第一主端口,以实现所述第一主端口与所述仲裁模块的AHB数据传输。
在上述数据访问装置中,所述从端口接口模块,具体用于传输对所述访问数据进行所述访问命令对应的访问操作至所述仲裁模块;
所述仲裁模块,还用于通过所述主端口接口模块传输所述访问命令的响应至所述第一主端口。
在上述数据访问装置中,所述从端口接口模块,还用于传输不响应所述访问命令的访问操作;
所述仲裁模块,还用于在未通过所述从端口接口模块接收到对所述访问命令的响应之后,接收通过所述主端口接口模块发送的下一次访问请求,并根据所述下一次访问请求进行通过主端口接口模块与所述从端口接口模块传输的下一次访问操作。
本发明实施例提供一种数据访问方法,所述数据访问方法包括:
接收第一主端口发送的访问请求,所述访问请求中携带访问地址、访问命令和访问数据;
根据预设表格,确定与所述访问地址对应的第一从端口及所述第一从端口的有效地址;
发送所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第一从端口,以供所述第一从端口根据所述第一从端口的有效地址和所述访问命令,对所述访问数据进行访问操作。
在上述数据访问方法中,所述发送所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第一从端口之前,所述方法还包括:
根据所述预设表格,将所述第一从端口的有效地址、所述访问命令和所述访问数据所在的时钟域切换至所述第一从端口所在的时钟域,以实现与处于不同时钟域的所述第一从端口的对接;
相应的,所述发送所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第一从端口,包括:
发送切换时钟域后的所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第一从端口。
在上述数据访问方法中,所述发送所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第一从端口,包括:
将所述第一从端口的有效地址、所述访问命令和所述访问数据按照时序输出至所述第一从端口,以供所述第一从端口根据时序正确的所述第一从端口的有效地址和所述访问命令,对所述访问数据进行访问操作。
在上述数据访问方法中,所述接收第一主端口发送的访问请求之前,所述方法还包括:
从多个主端口中确定所述第一主端口。
在上述数据访问方法中,所述根据预设表格,确定与所述访问地址对应的第一从端口及所述第一从端口的有效地址之后,所述发送所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第一从端口之前,所述方法还包括:
解析所述访问命令和所述访问数据。
本发明实施例提供了一种数据访问装置及方法,包括:主端口接口模块,用于传输第一主端口发送的访问请求至仲裁模块,该访问请求中携带访问地址、访问命令和访问数据;仲裁模块,用于根据预设表格,通过从端口接口模块确定与访问地址对应的第一从端口及该第一从端口的有效地址,并发送该第一从端口的有效地址、该访问命令和该访问数据至第一从端口,其中,仲裁模块是根据预设表格生成的,该预设表格包括总线参数;从端口接口模块,用于传输仲裁模块发送的第一从端口的有效地址、访问命令和访问数据至第一从端口,以供该第一从端口根据该第一从端口的有效地址和访问命令,对访问数据进行访问操作。采用上述数据访问装置进行数据传输时,由于仲裁模块是由预设表格生成的,不再通过用户手工编码进行仲裁模块的改写,因此,解决大规模芯片项目中由于数据访问装置端口多、改动频繁造成的代码维护工作量大、手工编码易出错的问题,从而可以简洁有效地实现数据访问装置,提高了数据访问装置的可靠性。
附图说明
图1为本发明实施例提供的一种数据访问装置的结构示意图一;
图2为本发明实施例中的全地址示意图一;
图3为本发明实施例中的全地址示意图二;
图4为本发明实施例中实现仲裁模块传输数据的流程图;
图5为本发明实施例中的一种数据访问装置的结构示意图二;
图6为本发明实施例提供的第一跨时钟模块的设计框图;
图7为本发明实施例中的一种数据访问装置的结构示意图三;
图8为现有技术中提供的普通流水线模块的设计框图;
图9为本发明实施例提供的第一流水线模块的设计框图;
图10为本发明实施例中的一种数据访问装置的结构示意图四;
图11为本发明实施例中的一种数据访问装置的结构示意图五;
图12为本发明实施例中的一种数据访问装置的结构示意图六;
图13为本发明实施例中的一种数据访问装置的结构示意图七;
图14为本发明实施例提供的AHB转换模块的设计框图;
图15为本发明实施例中的一种数据访问装置的结构示意图八;
图16为本发明实施例提供的主端口接口模块的结构示意图;
图17为本发明实施例中的一种示例性的数据访问装置的结构示意图;
图18为本发明实施例提供的一种数据访问方法的流程图一;
图19为本发明实施例提供的一种数据访问方法的流程图二;
图20为本发明实施例提供的一种数据访问方法的流程图三;
图21为本发明实施例提供的一种数据访问方法的流程图四。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
实施例一
如图1所示,本发明实施例提供一种数据访问装置1,该数据访问装置1可以包括:
主端口接口模块10,用于传输第一主端口发送的访问请求至仲裁模块11,该访问请求中携带访问地址、访问命令和访问数据。
仲裁模块11,用于根据预设表格,通过从端口接口模块12确定与访问地址对应的第一从端口接口及该第一从端口的有效地址,并发送该第一从端口的有效地址、访问命令和访问数据至该第一从端口,该仲裁模块11是根据预设表格生成的,该预设表格包括总线参数。
从端口接口模块12,用于传输仲裁模块11发送的第一从端口的有效地址、访问命令和访问数据至从端口,以供该第一从端口根据该第一从端口的有效地址和访问命令,对访问数据进行访问操作。
其中,仲裁模块11与主端口接口模块10通信,以及从端口接口模块12与该仲裁模块11通信。
需要说明的是,本发明是实施例中的数据访问装置可以为高级高性能总线(AHB,Advanced High Performance Bus)。
需要说明的是,仲裁模块11的功能是完成主端口和任意个从端口之间的任意地址仲裁及多路选择功能,即仲裁主端口进行访问请求的从端口的地址和路径。本发明实施例中的仲裁模块是通过预设表格生成的代码实现的模块。该预设表格包括总线参数,示例性的,预设表格中总线参数可以包括:从端口名称、从端口的地址位宽、从端口的地址范围等参数。具体的,利用预设表格中的VB脚本,检测预设表格中的总线参数,根据总线参数生成仲裁模块代码,实现仲裁模块的功能。
进一步地,本发明实施例中的仲裁模块11采用高地址选择设计方式,由于仲裁模块11通过主端口接口模块10接收到的访问请求中携带的访问地址为某个要访问的从端口的全地址,但是从端口的有效地址不一定占满该全地址位宽,因此,本发明实施例中,通过判别访问地址的高位地址的值来通过从端口接口模块确定从端口中的第一从端口,该第一从端口为第一主端口想要进行访问的从端口。
需要说明的是,本发明实施例中的主端口接口模块10与主机的主端口连接,从端口接口模块12与从机的从端口连接,通过主端口接口模块10对从端口接口模块12的访问就是主机对从机进行的访问。
具体的,以全地址位宽是20bit地址的主机,访问10bit从机为例,本发明实施例中采用高位选择设计仅需要判断11bit逻辑。如图2所示,为全地址示意图,从图2中可知:片选比特位的数值的每一比特可以为0、1或Z。其中,片选比特位是指地址中超出最小从端口地址位宽的部分。本发明实施例中的整个地址分配过程可以为:仲裁模块11根据最小从端口地址大小,将全地址划分为2n份(n为片选比特位的个数),每个从端口也根据自身地址大小占用2k个(k为片选比特位中Z的个数)最小从端口模块地址位宽。如果片选比特位中没有Z,则只占用一个最小从端口模块地址位宽,如果片选比特位最低位为Z,则占用2个最小从端口模块地址位宽,如果片选比特位最低两位为Z,则占用4个最小从端口模块地址位宽,如果片选比特位最低三位为Z,则占用8个最小从端口模块地址位宽,依次类推。这样,仲裁模块11就可以通过判断高地址位(片选比特位)的比特值来确定要访问的第一从端口了。
其中,片选比特位中的某一比特位为Z,表示占用了该比特位为0和1的地址,同时比该比特位低的比特位都必须为Z;每个从端口只能占用2k个最小空间。如果不满足这两个条件,则说明仲裁模块11获取的访问地址不是任何一个从端口的地址,因此,将该访问地址空闲,同时该访问地址对应的模块为空。
示例性的,假设仲裁模块11的总地址空间大小是1MB,最小从端口pcie_brg_csr是4KB,最大从端口pcie_ep_bkend是64KB。因此,“总线字节地址位宽”为20;“最小从模块字节地址位宽”为12;“最大从模块字节地址位宽”为16。对于从端口pcie_brg_csr,地址空间大小为4KB,“字节地址位宽”填12,仅占用一个最小地址空间,指定“字节片选地址范围”为8’b0000_0000。从端口在仲裁模块11实际分到的地址如图3所示,“Z”表示可以为0也可以为1,即高8bit为8’b0000_0000的地址都会寻址到该从端口。
进一步地,仲裁模块11判断出访问地址对应第一从端口的地址后,仲裁模块11将除高地址位外的第一从端口的有效地址通过从端口接口模块12发送至从端口。
可以理解的是,本发明实施例中的仲裁模块11采用高地址选择设计,大大降低了仲裁和多路选择时的组合逻辑量,而仲裁模块11采用被动响应方式,则保证数据访问装置1不会因为某个从端口异常没有响应而挂死。
可选的,本发明实施例提出的访问命令可以包括读命令和写命令。
可选的,从端口接口模块12,还具体用于传输对访问数据进行访问命令对应的访问操作至仲裁模块11,以及仲裁模块11通过主端口接口模块10传输该访问命令的响应至第一主端口。
可以理解的是,主机向一个从机发送读命令时,该从机需向主机发送该读命令的响应,以完成主机对一个从机的读操作。
可选的,从端口接口模块12,还用于传输不响应访问命令的访问操作。
仲裁模块11,还用于在未通过从端口接口模块12接收到对访问命令的响应之后,接收通过主端口接口模块10发送的下一次访问请求,并根据该下一次访问请求进行通过该主端口接口模块10与该从端口接口模块12传输的下一次访问操作。
可以理解的是,示例性的,当主机向一个从机发送读命令时,该从机回存在不响应该读命令的情况,这时就出现了数据访问装置1挂死的情况,此时,由于本发明实施例中的仲裁模块11采用被动响应方式,因此,若仲裁模块11在通过主端口接口模块10接收到发送的下一次访问请求时,仲裁模块11放弃本次访问请求,开始处理下一次访问请求。这样处理,避免了仲裁模块一直为了等待通过从端口接口模块12传输的响应,而使得数据访问装置1出现挂死的情况的发生。
具体的,仲裁模块11可以通过状态机实现上述被动响应方式可以规避数据访问装置1挂死的问题。如图4所示,为状态机流程图。一个正常的AHB的访问命令的响应流程为:仲裁模块11的初始处于空闲状态,当收到访问请求(访问命令)后,可以向命令状态切换,该访问命令被响应后,该仲裁模块11由空闲状态切换到数据状态,访问数据被响应后再切换到完成状态,最后回到空闲状态,实现了一次AHB的仲裁传送。当从机出现异常时,访问命令和访问数据可能不会被响应,如果此时主机一直在等待从机的响应,AHB协议中也没有给出最大的等待时间,那总线将处于挂死状态。为了不违背AHB协议,同时又能解决这个问题,本发明实施例中的仲裁模块11增加一个是否有下一次访问请求的判断,如果主机能够等待,可以无限长时间的等待,如果主机不想等待,则可以再发起下一次访问请求,状态机会根据下一次访问请求切换到空闲状态并启动新的访问操作。这样既可以不违背AHB协议,同时又能解决挂死风险问题。
可选的,如图5所示,数据访问装置1还包括:第一跨时钟模块13;仲裁模块11通过该第一跨时钟模块13与从端口接口模块12通信。
仲裁模块11,还用于发送第一从端口的有效地址、访问命令和访问数据至第一跨时钟模块13。
第一跨时钟模块13,用于根据预设表格,将仲裁模块11发送的第一从端口的有效地址、访问命令和访问数据所在的时钟域切换至该第一从端口所在的时钟域,以实现与处于不同时钟域的该第一从端口的对接,并发送切换时钟域后的该第一从端口的有效地址、该访问命令和该访问数据至第一从端口。
从端口接口模块12,还用于传输第一跨时钟模块13发送的切换时钟域后的第一从端口的有效地址、访问命令和述访问数据至第一从端口,以供该第一从端口根据切换时钟域后的第一从端口的有效地址和访问命令,对切换时钟域后的访问数据进行访问操作。
需要说明的是,仲裁模块11通过第一跨时钟模块13与从端口接口模块12通信的情况,包括:仲裁模块11与第一跨时钟模块13通信,该第一跨时钟模块13又与从端口接口模块12通信的情况,还包括:仲裁模块11与第一跨时钟模块13通信,该第一跨时钟模块13又通过新的模块(例如:第一流水线模块14)与从端口接口模块12通信的情况,还可以包括:仲裁模块11与新的功能模块(例如:第一流水线模块14)通信后,通过第一跨时钟模块13与从端口接口模块12通信的情况。具体的三者之间的通信关系由实际应用中的需要的功能模块来决定,本发明实施例不作限制。
特别的,本发明实施例中的第一跨时钟模块13可以为至少一个,具体的数量也由实际应用的情况决定,本发明实施例不作限制。
可以理解的是,第一跨时钟模块13完成时钟域切换功能,可以支持AHB接口的任意位地址、任意时钟域间的转换。
可选的,第一跨时钟模块13模块可以采用两种实现方式:先入先出队列(FIFO,First Input First Output)方式和异步握手方式。
具体的,本发明实施例中的第一跨时钟模块13的设计框图示例性的可以为图6所示,源时钟(访问请求所在的时钟域)发起读写请求,被存如读写FIFO,选择模块根据FIFO的空满来读取FIFO的请求,并转换为AHB协议输出到目的时钟域(从端口接口模块12),将目的时钟域的响应返回到完成响应FIFO,并返回给源时钟域的AHB。
进一步地,本发明实施例中的第一跨时钟模块13内部设置超时保护机制,该超时保护机制用来监控响应时间,不会因为没有响应而挂住总线;设置主从端口传输类型分离机制,对不支持突发的从端口,仍然可以允许主端口以突发方式配置,提高了总线的配置速率。其保护方式具体为,如果超过预设时间操作仍没有完成,则将一个特定数据的完成发给完成响应FIFO,保证源时钟域的AHB不会被挂死。
可选的,预设时间可以为1分钟,具体的预设时间的选择可以根据实际的响应完成时间来决定,本发明实施例不作限制。
需要说明的是,本发明实施例中的模块间都通过AHB接口进行连接,而通过从端口接口模块12接收的访问数据必须是与该从端口接口模块12对应的要接收的从端口的时钟域一致,才能与该从端口连接的AHB接口(从端口接口)对接上。
可选的,如图7所示,数据访问装置1还包括:第一流水线模块14;仲裁模块11通过该第一流水线模块14与从端口接口模块12通信。
仲裁模块11,还用于发送第一从端口的有效地址、访问命令和访问数据至第一流水线模块14。
第一流水线模块14,用于将第一从端口的有效地址、访问命令和访问数据按照时序输出至第一从端口。
从端口接口模块12,还用于传输第一流水线模块14按照时序输出的第一从端口的有效地址、访问命令和访问数据至第一从端口,以供该第一从端口根据时序正确的第一从端口的有效地址和访问命令,对访问数据进行访问操作。
需要说明的是,仲裁模块11通过第一流水线模块14与从端口接口模块12通信的情况,包括:仲裁模块11与第一流水线模块14通信,该第一流水线模块14又与从端口接口模块12通信的情况,还包括:仲裁模块11与第一流水线模块14通信,该第一流水线模块14又通过新的模块(例如:第一跨时钟模块14)与从端口接口模块12通信的情况,还可以包括:仲裁模块11与新的功能模块(例如:第一跨时钟模块13)通信后,通过第一流水线模块14与从端口接口模块12通信的情况。具体的三者之间的通信关系由实际应用中的需要的功能模块来决定,本发明实施例不作限制。
特别的,本发明实施例中的第一流水线模块14可以为至少一个,具体的数量也由实际应用的情况决定,本发明实施例不作限制。
需要说明的是,第一流水线模块14的功能是完成AHB接口的流水线功能,透传流水线两侧接口传输类型,当芯片后端综合时序达不到时,采用第一流水线模块14用来优化时序,使用时只需设定地址位宽参数,就可避免数据传输过程中出现时序逻辑错误的情况。
具体的,设计思路为:通常流水线模块的思路是直接***一级寄存器,如图8所示,但对于AHB协议来说,通常的流水线模块的方式会造成数据错误,所以我们提出了采用数据锁存的流水线模块的方式。示例性的如图9所示,为第一流水线模块的设计框图。根据AHB协议,AHB的每个操作都是需要握手反馈的,普通流水线模块的方式无法握手,会造成时序错乱。而本发明实施例提出的AHB流水线模块的方式具体的以A向B发读请求为例,对经过该第一流水线模块14的数据传输进行说明:数据锁存模块始终锁存最新的有效数据A;第一流水线模块14给数据A的响应默认为有效响应;当A发出新的访问命令后,控制选择A输出给B为数据A信号,控制选择B输出给A为不响应信号;如果数据B没有响应则控制选择A输出给B为数据A锁存数据;等待数据B响应后控制选择A输出给B为数据A;再次等待数据B响应后控制选择B输出给A为响应信号。
可选的,如图10所示,数据访问装置1还包括:下一级仲裁模块15;仲裁模块11通过该下一级仲裁模块15与从端口接口模块12通信。
仲裁模块11,用于根据预设表格,通过下一级仲裁模块15及从端口接口模块12中确定与该访问地址对应的第一从端口及该第一从端口的有效地址,并通过该下一级仲裁模块15发送该第一从端口的有效地址、访问命令和访问数据至第一从端口。
需要说明的是,由于有时仲裁模块11的工作量大的问题,会有仲裁模块11处理不过来的情况,因此,本发明实施例中还提出数据访问装置1中设置下一级仲裁模块15,该下一级仲裁模块15与仲裁模块11共同完成仲裁功能。
特别的,本发明实施例中的下一级仲裁模块15可以为至少一个,具体的数量也由实际应用的情况决定,本发明实施例不作限制。
可选的,如图11所示,AHB主线还包括:第二跨时钟模块16;下一级仲裁模块15通过该第二跨时钟模块16与从端口接口模块12通信。
仲裁模块11,还用于根据预设表格,通过下一级仲裁模块15及从端口接口模块12中确定与访问地址对应的第一从端口及该第一从端口的有效地址,并通过该下一级仲裁模块15发送该第一从端口的有效地址、访问命令和访问数据至该第二跨时钟模块16。
第二跨时钟模块16,用于根据预设表格,将通过下一级仲裁模块15发送的第一从端口的有效地址、访问命令和访问数据所在的时钟域切换至第一从端口所在的时钟域,以实现与处于不同时钟域的该第一从端口的对接,并发送切换时钟域后的该第一从端口的有效地址、该访问命令和该访问数据至第一从端口。
从端口接口模块12,还用于传输第二跨时钟模块16发送的切换时钟域后的第一从端口的有效地址、访问命令和访问数据至第一从端口,以供该第一从端口根据切换时钟域后的第一从端口的有效地址和访问命令,对切换时钟域后的访问数据进行访问操作。
需要说明的是,下一级仲裁模块15通过第二跨时钟模块16与从端口接口模块12通信的情况,包括:下一级仲裁模块15与第二跨时钟模块16通信,该第二跨时钟模块16又与从端口接口模块12通信的情况,还包括:下一级仲裁模块15与第二跨时钟模块16通信,该第二跨时钟模块16又通过新的模块(例如:第二流水线模块17)与从端口接口模块12通信的情况,还可以包括:下一级仲裁模块15与新的功能模块(例如:第二流水线模块17)通信后,通过第二跨时钟模块16与从端口接口模块12通信的情况。具体的三者之间的通信关系由实际应用中的需要的功能模块来决定,本发明实施例不作限制。
特别的,本发明实施例中的第二跨时钟模块16可以为至少一个,具体的数量也由实际应用的情况决定,本发明实施例不作限制。
需要说明的是,第二跨时钟模块16的功能与实现方式与第一跨时钟模块13的功能与实现方式原理相同,此处不再赘述。
可选的,如图12所示,AHB主线还包括:第二流水线模块17;下一级仲裁模块15通过该第二流水线模块17与从端口接口模块12通信。
仲裁模块11,用于根据预设表格,通过下一级仲裁模块15及从端口接口模块12确定与该访问地址对应的第一从端口及该第一从端口的有效地址,并通过该下一级仲裁模块15发送该第一从端口的有效地址、访问命令和访问数据至该第二跨时钟模块16。
第二流水线模块17,用于将第一从端口的有效地址、访问命令和访问数据按照时序输出至第一从端口。
从端口接口模块12,还用于传输第二流水线模块17按照时序输出的第一从端口的有效地址、访问命令和访问数据按照时序输出至第一从端口,以供该第一从端口根据时序正确的第一从端口的有效地址和访问命令,对访问数据进行访问操作。
需要说明的是,下一级仲裁模块15通过第二流水线模块17与从端口接口模块12通信的情况,包括:下一级仲裁模块15与第二流水线模块17通信,该第二流水线模块17又与从端口接口模块12通信的情况,还包括:下一级仲裁模块15与第二流水线模块17通信,该第二流水线模块17又通过新的模块(例如:第二跨时钟模块16)与从端口接口模块12通信的情况,还可以包括:下一级仲裁模块15与新的功能模块(例如:第二跨时钟模块16)通信后,通过第二流水线模块17与从端口接口模块12通信的情况。具体的三者之间的通信关系由实际应用中的需要的功能模块来决定,本发明实施例不作限制。
特别的,本发明实施例中的第二流水线模块17可以为至少一个,具体的数量也由实际应用的情况决定,本发明实施例不作限制。
需要说明的是,第二流水线模块17的功能与实现方式与第一流水线模块14的功能与实现方式原理相同,此处不再赘述。
可选的,示例性的如图13所示,数据访问装置1还包括:AHB转换模块18;该AHB转换模块18与从端口接口模块12通信。
AHB转换模块18,用于解析通过从端口接口模块12接收的访问命令和访问数据。
如图14所示,以AHB协议中的信号为例,说明AHB转换模块18的控制实现流程:控制延迟寄存器始终存储最新的控制信号,即图13中连接的信号;解析输出的读写信号是经过控制信号做逻辑判断后输出的,比如write信号是HSEL为1,HTRANS为10,HWRITE为1时输出为1,否则输出为0;如果是写操作没有返回过程就可以结束了;如果是读操作,数据返回时通过选择控HREADY,仅当收到读命令且没有返回时HREADY信号为0。
需要说明的是,上述信号均为AHB协议中定义的信号,此处不再详细地进行说明。
可以理解的是,AHB转换模块18将AHB接口转换为存储器接口功能,有效解决了从端口对AHB信号的解析问题。具体的AHB转换模块18实现了两种转换方式,一种为AHB转换模块18将AHB接口转换为不带流控的存储器接口,这种方式不允许从端口反压,保证读写操作都能正确接收,多用于芯片内部寄存器配置;另一种为AHB转换模块18将AHB接口转换为带流控的存储器接口,这种方式允许从端口不能接收读写操作时发起流控,配置流便会保持到流控消除,多用于芯片外部访问,比如DDR 3等。用户使用时根据项目需要选择这两种方式之一,本发明实施例不作限制。
可选的,示例性的如图15所示,数据访问装置1还包括:主端口选择模块19;主端口接口模块10与该主端口选择模块19通信。
主端口选择模块19,用于从多个主端口中确定与仲裁模块11通信的第一主端口,以实现该第一主端口与该仲裁模块11的AHB数据传输。
具体的,主端口选择模块19用于有多主端口的情况,该主端口选择模块19可以用来实现上述多个主端口的仲裁,最终判决一个主端口来控制数据访问装置。
示例性的,本发明实施例可以采用select信号的方式实现多个主端口的选择,这种方式相对简单可靠,可以任意扩展,如图16所示,为主端口选择模块19的结构示意图,以4个主机方式为例,结社当select为2时,主端口选择模块19就选通主机2,使得主机2对应的主端口与AHB接口连通。
可以理解的是,示例性的如图17所示,为数据访问装置1的可以实现的一种整体架构框图,本发明实施例中的各个模块通过顶层互联,就可以实现任意数据访问装置1的连接方式。具体的本发明实施例提出的数据访问装置1的搭建方式,将上面实施例中提出的模块按照图1的方式连接起来,就可以实现任意多个主端口、任意多个从端口、任意总线层数、任意跨时钟的数据访问装置,且不需要写新的代码。用户可以根据自己的实际需求任意裁剪,解决端口和层数受限制的问题。
本发明实施例所提供的一种数据访问装置,该数据访问装置可以包括:主端口接口模块,用于传输第一主端口发送的访问请求至仲裁模块,该访问请求中携带访问地址、访问命令和访问数据;仲裁模块,用于根据预设表格,通过从端口接口模块确定与访问地址对应的第一从端口及该第一从端口的有效地址,并发送该第一从端口的有效地址、该访问命令和该访问数据至从端口,其中,仲裁模块是根据预设表格生成的,该预设表格包括总线参数;从端口接口模块,用于传输仲裁模块发送的第一从端口的有效地址、访问命令和访问数据至第一从端口,以供该第一从端口根据该第一从端口的有效地址和访问命令,对访问数据进行访问操作。采用上述数据访问装置进行数据传输时,由于仲裁模块是由预设表格生成的,不再通过用户手工编码进行仲裁模块的改写,因此,解决大规模芯片项目中由于数据访问装置端口多、改动频繁造成的代码维护工作量大、手工编码易出错的问题,从而可以简洁有效地实现数据访问装置,提高了数据访问装置的可靠性。
实施例二
本发明实施例提供一种数据访问方法,如图18所示,该方法可以包括:
S101、数据访问装置接收第一主端口发送的访问请求,该访问请求中携带访问地址、访问命令和访问数据。
需要说明的是,本发明实施例中的数据访问装置可以为AHB总线。
S102、数据访问装置根据预设表格,确定与访问地址对应的第一从端口及第一从端口的有效地址。
S103、数据访问装置发送第一从端口的有效地址、访问命令和访问数据至第一从端口,以供该第一从端口根据第一从端口的有效地址和所述访问命令,对访问数据进行访问操作。
需要说明的是,数据访问装置可以完成主端口和任意个从端口之间的任意地址仲裁及多路选择功能,即仲裁主端口进行访问请求的从端口的地址和路径。本发明实施例中的仲裁模块是通过预设表格生成的代码实现的模块。该预设表格包括总线参数,示例性的,预设表格中总线参数可以包括:从端口名称、从端口的地址位宽、从端口的地址范围等参数。具体的,利用预设表格中的VB脚本,检测预设表格中的总线参数,根据总线参数生成仲裁模块代码,实现仲裁模块的功能。
进一步地,本发明实施例中的数据访问装置采用高地址选择设计方式,由于数据访问装置接收到的访问请求中携带的访问地址为某个要访问的从端口的全地址,但是从端口的有效地址不一定占满该全地址位宽,因此,本发明实施例中,通过判别访问地址的高位地址的值来通过从端口接口模块确定从端口中的第一从端口,该第一从端口为第一主端口想要进行访问的从端口。
需要说明的是,本发明实施例中的数据访问装置与主机的主端口连接,以及从机的从端口连接,通过数据访问装置的访问就是主机对从机进行的访问。
具体的,以全地址位宽是20bit地址的主机,访问10bit从机为例,本发明实施例中采用高位选择设计仅需要判断11bit逻辑。如图2所示,为全地址示意图,从图2中可知:片选比特位的数值的每一比特可以为0、1或Z。其中,片选比特位是指地址中超出最小从端口地址位宽的部分。本发明实施例中的整个地址分配过程可以为:数据访问装置根据最小从端口地址大小,将全地址划分为2n份(n为片选比特位的个数),每个从端口也根据自身地址大小占用2k个(k为片选比特位中Z的个数)最小从端口模块地址位宽。如果片选比特位中没有Z,则只占用一个最小从端口模块地址位宽,如果片选比特位最低位为Z,则占用2个最小从端口模块地址位宽,如果片选比特位最低两位为Z,则占用4个最小从端口模块地址位宽,如果片选比特位最低三位为Z,则占用8个最小从端口模块地址位宽,依次类推。这样,数据访问装置就可以通过判断高地址位(片选比特位)的比特值来确定要访问的第一从端口了。
其中,片选比特位中的某一比特位为Z,表示占用了该比特位为0和1的地址,同时比该比特位低的比特位都必须为Z;每个从端口只能占用2k个最小空间。如果不满足这两个条件,则说明数据访问装置获取的访问地址不是任何一个从端口的地址,因此,将该访问地址空闲,同时该访问地址对应的模块为空。
示例性的,假设数据访问装置的总地址空间大小是1MB,最小从端口pcie_brg_csr是4KB,最大从端口pcie_ep_bkend是64KB。因此,“总线字节地址位宽”为20;“最小从模块字节地址位宽”为12;“最大从模块字节地址位宽”为16。对于从端口pcie_brg_csr,地址空间大小为4KB,“字节地址位宽”填12,仅占用一个最小地址空间,指定“字节片选地址范围”为8’b0000_0000。从端口在数据访问装置实际分到的地址如图3所示,“Z”表示可以为0也可以为1,即高8bit为8’b0000_0000的地址都会寻址到该从端口。
进一步地,数据访问装置判断出访问地址对应第一从端口的地址后,该数据访问装置将除高地址位外的第一从端口的有效地址发送至从端口。
可以理解的是,本发明实施例中的数据访问装置采用高地址选择设计,大大降低了仲裁和多路选择时的组合逻辑量,而数据访问装置采用被动响应方式,则保证该数据访问装置不会因为某个从端口异常没有响应而挂死。
具体的,数据访问装置将第一从端口的有效地址、访问命令和访问数据按照时序输出至所述第一从端口,以供第一从端口根据时序正确的第一从端口的有效地址和访问命令,对访问数据进行访问操作。
需要说明的是,数据访问装置还可以完成AHB接口的流水线功能,透传流水线两侧接口传输类型,当芯片后端综合时序达不到时,采用数据访问装置来优化时序,使用时只需设定地址位宽参数,就可避免数据传输过程中出现时序逻辑错误的情况。
具体的,设计思路为:通常流水线模块的思路是直接***一级寄存器,如图8所示,但对于AHB协议来说,通常的流水线模块的方式会造成数据错误,所以我们提出了采用数据锁存的流水线模块的方式。示例性的如图9所示,为第一流水线模块的设计框图。根据AHB协议,AHB的每个操作都是需要握手反馈的,普通流水线模块的方式无法握手,会造成时序错乱。而本发明实施例提出的AHB流水线模块的方式具体的以A向B发读请求为例,对经过该第一流水线模块的数据传输进行说明:数据锁存模块始终锁存最新的有效数据A;第一流水线模块给数据A的响应默认为有效响应;当A发出新的访问命令后,控制选择A输出给B为数据A信号,控制选择B输出给A为不响应信号;如果数据B没有响应则控制选择A输出给B为数据A锁存数据;等待数据B响应后控制选择A输出给B为数据A;再次等待数据B响应后控制选择B输出给A为响应信号。
可选的,本发明实施例提出的访问命令可以包括读命令和写命令。
进一步地,如图19所示,S103之前,即数据访问装置发送第一从端口的有效地址、访问命令和访问数据至第一从端口之前,本发明实施例提供的一种数据访问方法还包括:S104。具体如下:
S104、数据访问装置根据预设表格,将第一从端口的有效地址、访问命令和访问数据所在的时钟域切换至第一从端口所在的时钟域,以实现与处于不同时钟域的第一从端口的对接。
可以理解的是,数据访问装置还可以完成时钟域切换功能,可以支持AHB接口的任意位地址、任意时钟域间的转换。
可选的,数据访问装置的跨时钟模块功能可以采用两种实现方式:FIFO,方式和异步握手方式。
具体的,本发明实施例中的数据访问装置采用第一跨时钟模块跨时钟功能,该第一跨时钟模块的设计框图示例性的可以为图6所示,源时钟(访问请求所在的时钟域)发起读写请求,被存如读写FIFO,选择模块根据FIFO的空满来读取FIFO的请求,并转换为AHB协议输出到目的时钟域,将目的时钟域的响应返回到完成响应FIFO,并返回给源时钟域的AHB。
进一步地,本发明实施例中的数据访问装置的第一跨时钟模块内部设置超时保护机制,该超时保护机制用来监控响应时间,不会因为没有响应而挂住总线;设置主从端口传输类型分离机制,对不支持突发的从端口,仍然可以允许主端口以突发方式配置,提高了总线的配置速率。其保护方式具体为,如果超过预设时间操作仍没有完成,则将一个特定数据的完成发给完成响应FIFO,保证源时钟域的AHB不会被挂死。
可选的,预设时间可以为1分钟,具体的预设时间的选择可以根据实际的响应完成时间来决定,本发明实施例不作限制。
需要说明的是,本发明实施例中的模块间都通过AHB接口进行连接,而数据访问装置接收的访问数据必须是与要接收的从端口的时钟域一致,才能与该从端口连接的AHB接口(从端口接口)对接上。
相应的,S103可以与S104对应,具体如下:
S103、数据访问装置发送切换时钟域后的第一从端口的有效地址、访问命令和访问数据至第一从端口。
进一步地,如图20所示,S101之前,即数据访问装置接收第一主端口发送的访问请求之前,本发明实施例提供的一种数据访问方法还包括:S105。具体如下:
S105、数据访问装置从多个主端口中确定第一主端口。
数据访问装置可以通过主端口选择模块19实现从多个主端口中确定第一主端口。
示例性的,本发明实施例可以采用select信号的方式实现多个主端口的选择,这种方式相对简单可靠,可以任意扩展,如图16所示,为主端口选择模块19的结构示意图,以4个主机方式为例,结社当select为2时,主端口选择模块19就选通主机2,使得主机2对应的主端口与AHB接口连通。
可以理解的是,示例性的如图17所示,为数据访问装置的可以实现的一种整体架构框图,本发明实施例中的各个模块通过顶层互联,就可以实现任意数据访问装置的连接方式。具体的本发明实施例提出的数据访问装置的搭建方式,将上面实施例中提出的模块按照图的方式连接起来,就可以实现任意多个主端口、任意多个从端口、任意总线层数、任意跨时钟的数据访问装置,且不需要写新的代码。用户可以根据自己的实际需求任意裁剪,解决端口和层数受限制的问题。
进一步地,如图21所示,S102之后,S103之前,即数据访问装置根据预设表格,确定与访问地址对应的第一从端口及第一从端口的有效地址之后,数据访问装置发送第一从端口的有效地址、访问命令和访问数据至所述第一从端口之前,本发明实施例提供的一种数据访问方法还包括:S106。具体如下:
S106、数据访问装置解析访问命令和访问数据。
数据访问装置采用AHB转换模块18解析访问命令和访问数据。
如图14所示,以AHB协议中的信号为例,说明AHB转换模块18的控制实现流程:控制延迟寄存器始终存储最新的控制信号,即图13中连接的信号;解析输出的读写信号是经过控制信号做逻辑判断后输出的,比如write信号是HSEL为1,HTRANS为10,HWRITE为1时输出为1,否则输出为0;如果是写操作没有返回过程就可以结束了;如果是读操作,数据返回时通过选择控HREADY,仅当收到读命令且没有返回时HREADY信号为0。
需要说明的是,上述信号均为AHB协议中定义的信号,此处不再详细地进行说明。
可以理解的是,AHB转换模块将AHB接口转换为存储器接口功能,有效解决了从端口对AHB信号的解析问题。具体的AHB转换模块实现了两种转换方式,一种为AHB转换模块将AHB接口转换为不带流控的存储器接口,这种方式不允许从端口反压,保证读写操作都能正确接收,多用于芯片内部寄存器配置;另一种为AHB转换模块将AHB接口转换为带流控的存储器接口,这种方式允许从端口不能接收读写操作时发起流控,配置流便会保持到流控消除,多用于芯片外部访问,比如DDR 3等。用户使用时根据项目需要选择这两种方式之一,本发明实施例不作限制。
进一步地,数据访问装置传输对访问数据进行访问命令对应的访问操作,并传输该访问命令的响应至第一主端口。
可以理解的是,主机向一个从机发送读命令时,该从机需向主机发送该读命令的响应,以完成主机对一个从机的读操作。
进一步地,数据访问装置传输不响应访问命令的访问操作。
进一步地,数据访问装置未接收到对访问命令的响应之后,该数据访问装置接收下一次访问请求,并根据该下一次访问请求进行下一次访问操作。
可以理解的是,示例性的,当主机向一个从机发送读命令时,该从机回存在不响应该读命令的情况,这时就出现了数据访问装置挂死的情况,此时,由于本发明实施例中的数据访问装置的仲裁模块采用被动响应方式,因此,若数据访问装置的仲裁模块在通过主端口接口模块接收到发送的下一次访问请求时,仲裁模块放弃本次访问请求,开始处理下一次访问请求。这样处理,避免了仲裁模块一直为了等待通过从端口接口模块传输的响应,而使得数据访问装置出现挂死的情况的发生。
具体的,仲裁模块可以通过状态机实现上述被动响应方式可以规避数据访问装置挂死的问题。如图4所示,为状态机流程图。一个正常的AHB的访问命令的响应流程为:数据访问装置的仲裁模块的初始处于空闲状态,当收到访问请求(访问命令)后,可以向命令状态切换,该访问命令被响应后,该仲裁模块由空闲状态切换到数据状态,访问数据被响应后再切换到完成状态,最后回到空闲状态,实现了一次AHB的仲裁传送。当从机出现异常时,访问命令和访问数据可能不会被响应,如果此时主机一直在等待从机的响应,AHB协议中也没有给出最大的等待时间,那总线将处于挂死状态。为了不违背AHB协议,同时又能解决这个问题,本发明实施例中的仲裁模块增加一个是否有下一次访问请求的判断,如果主机能够等待,可以无限长时间的等待,如果主机不想等待,则可以再发起下一次访问请求,状态机会根据下一次访问请求切换到空闲状态并启动新的访问操作。这样既可以不违背AHB协议,同时又能解决挂死风险问题。
本发明实施例所提供的一种数据访问方法,通过接收第一主端口发送的访问请求,该访问请求中携带访问地址、访问命令和访问数据;根据预设表格,确定与访问地址对应的第一从端口及该第一从端口的有效地址;发送第一从端口的有效地址、访问命令和访问数据至第一从端口,以供该第一从端口根据第一从端口的有效地址和访问命令,对访问数据进行访问操作。采用上述数据访问装置进行数据传输时,由于仲裁模块是由预设表格生成的,不再通过用户手工编码进行仲裁模块的改写,因此,解决大规模芯片项目中由于数据访问装置端口多、改动频繁造成的代码维护工作量大、手工编码易出错的问题,从而可以简洁有效地实现数据访问装置,提高了数据访问装置的可靠性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (15)
1.一种数据访问装置,其特征在于,所述数据访问装置包括:
主端口接口模块,用于传输第一主端口发送的访问请求至仲裁模块,所述访问请求中携带访问地址、访问命令和访问数据;
所述仲裁模块,用于根据预设表格,通过从端口接口模块确定与所述访问地址对应的第一从端口及所述第一从端口的有效地址,并发送所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第一从端口,其中,所述仲裁模块是根据所述预设表格生成的,所述预设表格包括总线参数;
所述从端口接口模块,用于传输所述仲裁模块发送的所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第一从端口,以供所述第一从端口根据所述第一从端口的有效地址和所述访问命令,对所述访问数据进行访问操作。
2.根据权利要求1所述的数据访问装置,其特征在于,所述数据访问装置还包括:第一跨时钟模块;所述仲裁模块通过所述第一跨时钟模块与所述从端口接口模块进行通信;
所述仲裁模块,还用于发送所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第一跨时钟模块;
所述第一跨时钟模块,用于根据所述预设表格,将所述仲裁模块发送的所述第一从端口的有效地址、所述访问命令和所述访问数据所在的时钟域切换至所述第一从端口所在的时钟域,以实现与处于不同时钟域的所述第一从端口的对接,并发送切换时钟域后的所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第一从端口;
所述从端口接口模块,还用于传输所述第一跨时钟模块发送的切换时钟域后的所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第一从端口,以供所述第一从端口根据切换时钟域后的所述第一从端口的有效地址和所述访问命令,对切换时钟域后的所述访问数据进行访问操作。
3.根据权利要求1所述的数据访问装置,其特征在于,所述数据访问装置还包括:第一流水线模块;所述仲裁模块通过所述第一流水线模块与所述从端口接口模块通信;
所述仲裁模块,还用于发送所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第一流水线模块;
所述第一流水线模块,用于将所述第一从端口的有效地址、所述访问命令和所述访问数据按照时序输出至所述第一从端口;
所述从端口接口模块,还用于传输所述第一流水线模块按照时序输出的所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第一从端口,以供所述第一从端口根据时序正确的所述第一从端口的有效地址和所述访问命令,对所述访问数据进行访问操作。
4.根据权利要求1所述的数据访问装置,其特征在于,所述数据访问装置还包括:下一级仲裁模块;所述仲裁模块通过所述下一级仲裁模块与所述从端口接口模块通信;
所述仲裁模块,用于根据所述预设表格,通过所述下一级仲裁模块及所述从端口接口模块确定与所述访问地址对应的第一从端口及所述第一从端口的有效地址,并通过所述下一级仲裁模块发送所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第一从端口。
5.根据权利要求4所述的数据访问装置,其特征在于,所述AHB主线还包括:第二跨时钟模块;所述下一级仲裁模块通过所述第二跨时钟模块与所述从端口接口模块通信;
所述仲裁模块,还用于根据所述预设表格,通过所述下一级仲裁模块及所述从端口接口模块中确定与所述访问地址对应的第一从端口及所述第一从端口的有效地址,并通过所述下一级仲裁模块发送所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第二跨时钟模块;
所述第二跨时钟模块,用于根据所述预设表格,将通过所述下一级仲裁模块发送的所述第一从端口的有效地址、所述访问命令和所述访问数据所在的时钟域切换至所述第一从端口所在的时钟域,以实现与处于不同时钟域的所述第一从端口的对接,并发送切换时钟域后的所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第一从端口;
所述从端口接口模块,还用于传输第二跨时钟模块发送的切换时钟域后的所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第一从端口,以供所述第一从端口根据切换时钟域后的所述第一从端口的有效地址和所述访问命令,对切换时钟域后的所述访问数据进行访问操作。
6.根据权利要求4所述的数据访问装置,其特征在于,所述AHB主线还包括:第二流水线模块;所述下一级仲裁模块通过所述第二流水线模块与所述从端口接口模块通信;
所述仲裁模块,用于根据所述预设表格,通过所述下一级仲裁模块及所述从端口接口模块确定与所述访问地址对应的第一从端口及所述第一从端口的有效地址,并通过所述下一级仲裁模块发送所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第二跨时钟模块;
所述第二流水线模块,用于将所述第一从端口的有效地址、所述访问命令和所述访问数据按照时序输出至所述第一从端口。
所述从端口接口模块,还用于传输所述第二流水线模块按照时序输出的所述第一从端口的有效地址、所述访问命令和所述访问数据按照时序输出至所述第一从端口,以供所述第一从端口根据时序正确的所述第一从端口的有效地址和所述访问命令,对所述访问数据进行访问操作。
7.根据权利要求1至6任一项所述的数据访问装置,其特征在于,所述数据访问装置还包括:高级高性能总线AHB转换模块;所述AHB转换模块与所述从端口接口模块通信;
所述AHB转换模块,用于解析通过所述从端口接口模块接收的所述访问命令和所述访问数据。
8.根据权利要求7所述的数据访问装置,其特征在于,所述数据访问装置还包括:主端口选择模块;所述主端口接口模块与所述主端口选择模块通信;
所述主端口选择模块,用于从多个主端口中确定与所述仲裁模块通信的所述第一主端口,以实现所述第一主端口与所述仲裁模块的AHB数据传输。
9.根据权利要求1所述的数据访问装置,其特征在于,
所述从端口接口模块,具体用于传输对所述访问数据进行所述访问命令对应的访问操作至所述仲裁模块;
所述仲裁模块,还用于通过所述主端口接口模块传输所述访问命令的响应至所述第一主端口。
10.根据权利要求9所述的数据访问装置,其特征在于,
所述从端口接口模块,还用于传输不响应所述访问命令的访问操作;
所述仲裁模块,还用于在未通过所述从端口接口模块接收到对所述访问命令的响应之后,接收通过所述主端口接口模块发送的下一次访问请求,并根据所述下一次访问请求进行通过主端口接口模块与所述从端口接口模块传输的下一次访问操作。
11.一种数据访问方法,其特征在于,所述数据访问方法包括:
接收第一主端口发送的访问请求,所述访问请求中携带访问地址、访问命令和访问数据;
根据预设表格,确定与所述访问地址对应的第一从端口及所述第一从端口的有效地址;
发送所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第一从端口,以供所述第一从端口根据所述第一从端口的有效地址和所述访问命令,对所述访问数据进行访问操作。
12.根据权利要求11所述的数据访问方法,其特征在于,所述发送所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第一从端口之前,所述方法还包括:
根据所述预设表格,将所述第一从端口的有效地址、所述访问命令和所述访问数据所在的时钟域切换至所述第一从端口所在的时钟域,以实现与处于不同时钟域的所述第一从端口的对接;
相应的,所述发送所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第一从端口,包括:
发送切换时钟域后的所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第一从端口。
13.根据权利要求11所述的数据访问方法,其特征在于,所述发送所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第一从端口,包括:
将所述第一从端口的有效地址、所述访问命令和所述访问数据按照时序输出至所述第一从端口,以供所述第一从端口根据时序正确的所述第一从端口的有效地址和所述访问命令,对所述访问数据进行访问操作。
14.根据权利要求11至13任一项所述的数据访问方法,其特征在于,所述接收第一主端口发送的访问请求之前,所述方法还包括:
从多个主端口中确定所述第一主端口。
15.根据权利要求14所述的数据访问方法,其特征在于,所述根据预设表格,确定与所述访问地址对应的第一从端口及所述第一从端口的有效地址之后,所述发送所述第一从端口的有效地址、所述访问命令和所述访问数据至所述第一从端口之前,所述方法还包括:
解析所述访问命令和所述访问数据。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510521951.8A CN106469127B (zh) | 2015-08-21 | 2015-08-21 | 一种数据访问装置及方法 |
PCT/CN2016/085500 WO2017032137A1 (zh) | 2015-08-21 | 2016-06-12 | 一种数据访问装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510521951.8A CN106469127B (zh) | 2015-08-21 | 2015-08-21 | 一种数据访问装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106469127A true CN106469127A (zh) | 2017-03-01 |
CN106469127B CN106469127B (zh) | 2019-11-15 |
Family
ID=58099487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510521951.8A Active CN106469127B (zh) | 2015-08-21 | 2015-08-21 | 一种数据访问装置及方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106469127B (zh) |
WO (1) | WO2017032137A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109445855A (zh) * | 2018-10-30 | 2019-03-08 | 天津津航计算技术研究所 | 一种用于多路低速外设集成的桥接装置 |
CN110875867A (zh) * | 2020-01-20 | 2020-03-10 | 南京凌鸥创芯电子有限公司 | 一种总线访问仲裁装置及方法 |
CN111159070A (zh) * | 2019-12-31 | 2020-05-15 | 江苏科大亨芯半导体技术有限公司 | 基于ahb总线的标记压缩***和片上*** |
CN111930677A (zh) * | 2020-08-14 | 2020-11-13 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据传输方法、装置及电子设备和存储介质 |
CN113032307A (zh) * | 2021-03-26 | 2021-06-25 | 山东英信计算机技术有限公司 | 一种集成器件访问请求处理方法及相关组件 |
CN114168503A (zh) * | 2021-11-25 | 2022-03-11 | 山东云海国创云计算装备产业创新中心有限公司 | 一种接口ip核控制方法、接口ip核、装置及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1731383A (zh) * | 2005-08-29 | 2006-02-08 | 杭州华为三康技术有限公司 | 一种设备管理***及方法 |
CN101132336A (zh) * | 2007-10-17 | 2008-02-27 | 中国人民解放军国防科学技术大学 | 异构多核处理器高速异步互连通信网络 |
CN102063396A (zh) * | 2009-11-18 | 2011-05-18 | 意法-爱立信公司 | 芯片上的“主-主”数据传送的方法和装置及片上*** |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4839155B2 (ja) * | 2006-08-31 | 2011-12-21 | 富士通セミコンダクター株式会社 | アクセス調停装置およびアクセス調停方法 |
CN101482853B (zh) * | 2008-01-10 | 2010-10-27 | 松翰科技股份有限公司 | 直接存储器访问***及方法 |
US8775754B2 (en) * | 2011-06-24 | 2014-07-08 | Arm Limited | Memory controller and method of selecting a transaction using a plurality of ordered lists |
-
2015
- 2015-08-21 CN CN201510521951.8A patent/CN106469127B/zh active Active
-
2016
- 2016-06-12 WO PCT/CN2016/085500 patent/WO2017032137A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1731383A (zh) * | 2005-08-29 | 2006-02-08 | 杭州华为三康技术有限公司 | 一种设备管理***及方法 |
CN101132336A (zh) * | 2007-10-17 | 2008-02-27 | 中国人民解放军国防科学技术大学 | 异构多核处理器高速异步互连通信网络 |
CN102063396A (zh) * | 2009-11-18 | 2011-05-18 | 意法-爱立信公司 | 芯片上的“主-主”数据传送的方法和装置及片上*** |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109445855A (zh) * | 2018-10-30 | 2019-03-08 | 天津津航计算技术研究所 | 一种用于多路低速外设集成的桥接装置 |
CN109445855B (zh) * | 2018-10-30 | 2021-11-16 | 天津津航计算技术研究所 | 一种用于多路低速外设集成的桥接装置 |
CN111159070A (zh) * | 2019-12-31 | 2020-05-15 | 江苏科大亨芯半导体技术有限公司 | 基于ahb总线的标记压缩***和片上*** |
CN111159070B (zh) * | 2019-12-31 | 2023-09-19 | 江苏科大亨芯半导体技术有限公司 | 基于ahb总线的标记压缩***和片上*** |
CN110875867A (zh) * | 2020-01-20 | 2020-03-10 | 南京凌鸥创芯电子有限公司 | 一种总线访问仲裁装置及方法 |
CN111930677A (zh) * | 2020-08-14 | 2020-11-13 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据传输方法、装置及电子设备和存储介质 |
CN113032307A (zh) * | 2021-03-26 | 2021-06-25 | 山东英信计算机技术有限公司 | 一种集成器件访问请求处理方法及相关组件 |
CN114168503A (zh) * | 2021-11-25 | 2022-03-11 | 山东云海国创云计算装备产业创新中心有限公司 | 一种接口ip核控制方法、接口ip核、装置及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2017032137A1 (zh) | 2017-03-02 |
CN106469127B (zh) | 2019-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106469127A (zh) | 一种数据访问装置及方法 | |
CN102231142B (zh) | 一种带有仲裁器的多通道dma控制器 | |
KR101034494B1 (ko) | 개방형 코어 프로토콜을 기반으로 하는 버스 시스템 | |
JP4785112B2 (ja) | 複数のマスタを含むサブシステムをオープンコアプロトコルを基盤とするバスに連結するためのバスシステム | |
CN103543954B (zh) | 一种数据存储管理方法和装置 | |
CN107707491A (zh) | 一种实现多级片上互连的装置及方法 | |
CN105224488B (zh) | 一种pci总线控制器及其控制方法 | |
CN106951379A (zh) | 一种基于axi协议的高性能ddr控制器及数据传输方法 | |
CN110347635A (zh) | 一种基于多层总线的异构多核微处理器 | |
CN103345461A (zh) | 基于fpga的带有加速器的多核处理器片上网络*** | |
CN102262604B (zh) | 一种并发访问方法、***及接口装置 | |
CN110109847A (zh) | Apb总线多个主设备的仲裁方法、***及存储介质 | |
WO2016078307A1 (zh) | 可配置片上互联***及其实现方法、装置和存储介质 | |
CN104765701B (zh) | 数据访问方法及设备 | |
CN105573951A (zh) | 一种针对数据流传输的ahb总线接口*** | |
CN107562672A (zh) | 一种提高矢量网络分析仪数据传输速率的***及方法 | |
CN104699654A (zh) | 一种基于chi片内互联总线与qpi片间互联总线互联适配***和方法 | |
CN105515673B (zh) | 一种光纤通道节点卡 | |
CN110188059A (zh) | 数据有效位统一配置的流控式fifo缓存结构及方法 | |
CN114741341A (zh) | 一种实现Crossbar结构仲裁的方法、***及存储介质 | |
Ahmed et al. | Design and implementation of a direct memory access controller for embedded applications | |
CN110532140B (zh) | 一种1553b总线的仿真测试*** | |
CN107562657A (zh) | 全交织sram控制器 | |
CN111679935A (zh) | 一种基于dma与中断融合的组态监控容错通信方法 | |
CN100517283C (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 |