CN114238177B - Axi总线通信方法、装置、设备和介质 - Google Patents
Axi总线通信方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN114238177B CN114238177B CN202111447008.9A CN202111447008A CN114238177B CN 114238177 B CN114238177 B CN 114238177B CN 202111447008 A CN202111447008 A CN 202111447008A CN 114238177 B CN114238177 B CN 114238177B
- Authority
- CN
- China
- Prior art keywords
- request
- target
- data information
- response
- data
- 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
- 238000000034 method Methods 0.000 title claims abstract description 93
- 238000004891 communication Methods 0.000 title claims abstract description 44
- 230000004044 response Effects 0.000 claims abstract description 120
- 230000005540 biological transmission Effects 0.000 claims abstract description 56
- 230000000977 initiatory effect Effects 0.000 claims abstract description 49
- 239000003999 initiator Substances 0.000 claims abstract description 42
- 238000013500 data storage Methods 0.000 claims abstract description 36
- 230000008569 process Effects 0.000 claims abstract description 19
- 238000001514 detection method Methods 0.000 claims abstract description 11
- 230000015654 memory Effects 0.000 claims description 38
- 238000012545 processing Methods 0.000 claims description 22
- 230000006399 behavior Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 11
- 230000000903 blocking effect Effects 0.000 claims description 9
- 238000011156 evaluation Methods 0.000 abstract description 4
- 230000007246 mechanism Effects 0.000 description 21
- 238000013461 design Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 9
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000005291 magnetic effect Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 108010076504 Protein Sorting Signals Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
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/10—Program control for peripheral devices
- G06F13/105—Program control for peripheral devices where the programme performs an input/output emulation function
- G06F13/107—Terminal emulation
-
- 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
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请公开了一种AXI总线通信方法、装置、设备和介质,涉及集成电路技术领域。包括:发起端向目标端发起请求;所述目标端将所述请求中的数据信息存储至请求数据存储队列;所述目标端根据所述数据信息计算得到第一时间,并将所述数据信息从所述请求数据存储队列存入请求响应队列;所述目标端响应于检测到等待第二时间后,所述目标端根据所述请求响应队列读取所述数据信息,将所述数据信息发送至所述发起端;发起端接收到所述数据信息,对所述数据信息进行处理,将处理后的数据信息返回至所述目标端。本申请将数据传输分为多个阶段,能够模拟总线的传输延时性、端口独占性、流量控制等特性,更逼近硬件行为,方便进行性能指标的建模和评估。
Description
技术领域
本申请涉及集成电路技术领域,具体涉及一种AXI总线通信方法、装置、设备和介质。
背景技术
SoC(System on Chip) 的设计之难源于其复杂性,复杂性催生SystemC和电子系统级设计(ESL)方法学,而事务处理级建模是电子系统级设计的关键。对于复杂的SoC,在进行RTL(Register Transfer Level,寄存器转换级电路)的设计前需要进行深入的系统级仿真,以确认设计的体系架构是否恰当、总线是否能够满足吞吐量、实时性要求以及存储器是否被浪费。
AXI(Advanced eXtensible Interface,高级可扩展接口)是一种面向高性能、高带宽、低延迟的片内总线,它支持不对齐的数据传输,在突发传输中,只需要首地址,同时分离的读写数据通道、并支持显著传输访问和乱序访问,并更加容易时序收敛。AXI满足超高性能和复杂的SoC设计的需求,是SoC设计中的一个关键片内总线。因此,对AXI总线性能的建模和评估十分有必要。
现有的开源模型虽然能够实现AXI总线的基本通信,但是存在以下问题:
(1)模块间采用硬连线直接连接,抽象层次较低,硬件信号连接繁琐;
(2)实现时将传输延时压缩为链路上一个点的延时,整个传输链路上其他地方认为无延时,这种方式不符合总线实际的硬件行为,也无法评估总线延时时间等性能指标;
(3)现有的模型访问memory(内存)的方式是阻塞访问,没有将memory的访问请求和访问响应阶段分开,如果memory此时被占用无法响应,则请求发起者也被挂起,无法执其操作。且访问memory的延时也被压缩为一个时间点,无法评估延时等性能参数;
(4)现有模型没有模拟流量控制机制,当目标存储满后,不能有效反压发起者的操作。
发明内容
为了解决上述背景技术中提到的至少一个问题,本申请提供了一种AXI总线通信方法、装置、设备和介质,能够将一次数据传输分为多个阶段,了解各个阶段的传输细节,能够模拟总线的端口上传输延时性、端口独占性、流量控制等特性,更逼近硬件行为,方便进行性能指标的建模和评估。
本申请实施例提供的具体技术方案如下:
第一方面,提供一种AXI总线通信方法,所述方法包括:
发起端向目标端发起请求;
所述目标端接收所述请求,并将所述请求中的数据信息存储至请求数据存储队列;
所述目标端根据所述数据信息计算得到第一时间,并将所述数据信息从所述请求数据存储队列存入请求响应队列,所述第一时间为所述数据信息的传输时间;
所述目标端响应于检测到等待第二时间后,所述目标端根据所述请求响应队列读取所述数据信息,将所述数据信息发送至所述发起端;
其中,所述第二时间为在所述目标端数据接收结束后的预设等待时间;
所述发起端接收到所述数据信息,对所述数据信息进行处理,将处理后的数据信息返回至所述目标端;
所述目标端接收所述处理后的数据信息。
进一步的,所述发起端向目标端发起请求,具体包括:
所述发起端响应于检测到存在访问所述目标端的请求,设置当前相位为开始请求相位,定义通用净核类的请求包,设置所述请求包的配置信息,所述配置信息至少包括所述请求包的数据长度,所述配置信息还包括以下至少一种:数据首地址、读写类型、地址信息;
所述发起端将所述请求中的数据信息发送至所述目标端;
所述数据信息包括所述请求包和所述配置信息。
进一步的,在所述目标端接收所述请求,并将所述请求中的数据信息存储至请求数据存储队列之前,所述方法还包括:
响应于检测到当前相位为开始请求相位,所述目标端判断当前端口状态,若所述当前端口状态为空闲,所述目标端继续执行处理所述请求;
响应于检测到存在多个所述请求,所述目标端根据每个所述请求的优先级进行仲裁,对仲裁通过的所述请求设置响应状态为响应通过,对未仲裁通过的所述请求设置响应状态为响应不通过。
进一步的,若所述当前端口状态为空闲,所述目标端根据所述数据信息计算得到第一时间,并将所述数据信息从所述请求数据存储队列存入请求响应队列,所述第一时间为所述数据信息的传输时间,包括:
响应于所述目标端接收到所述请求,将当前时刻记录为数据接收的起始时间;
所述目标端根据所述请求包的数据长度以及当前所述AXI总线的带宽,计算得到第一时间,所述第一时间为所述数据信息的传输时间;
响应于检测到等待所述第一时间后,向所述发起端返回接收完毕标识,将当前时刻记录为数据接收的结束时间。
进一步的,所述发起端向目标端发起请求,还包括:
所述目标端判断所述请求数据存储队列是否已满,若所述请求数据存储队列已满,设置请求响应状态为响应错误,并将所述请求响应状态发送至所述发起端。
进一步的,在所述目标端响应于检测到等待第二时间后,所述目标端根据所述请求响应队列读取所述数据信息,将所述数据信息发送至所述发起端之前,所述方法还包括:
所述目标端判断所述请求响应队列是否已满,若所述请求响应队列已满,设置所述请求响应队列为阻塞等待状态。
进一步的,所述目标端响应于检测到等待第二时间后,所述目标端根据所述请求响应队列读取所述数据信息,将所述数据信息发送至所述发起端,具体包括:
所述目标端设置当前相位为开始响应相位,读取所述请求响应队列的数据信息,将所述数据信息发送至所述发起端;
所述发起端接收到所述数据信息,对所述数据信息进行处理,将处理后的数据信息返回至所述目标端,具体包括:
所述发起端接收到所述数据信息,对所述数据信息进行处理,将所述请求数据存储队列中的数据信息删除,设置当前相位为结束响应相位,将所述结束响应相位和处理后的数据信息发送至所述目标端。
第二方面,提供一种实现所述的AXI总线通信方法的装置,包括发起端和目标端,所述发起端包括发起端口,所述目标端包括目标端口,所述发起端口和所述目标端口连接,通用净核类、相位和时间中的至少一种通过所述发起端口和所述目标端口进行通信;
所述发起端还包括第一调用响应模块,用于响应所述目标端口的调用行为,所述目标端还包括第二调用响应模块,用于响应所述发起端口的调用行为;
所述发起端还包括第一处理模块,用于处理来自所述目标端的请求,所述目标端还包括第二处理模块,用于处理来自所述发起端的请求;
所述发起端还包括第一请求数据存储模块,用于存储所述发起端的请求数据。
第三方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述AXI总线通信方法。
第四方面,提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行所述AXI总线通信方法。
本申请实施例具有如下有益效果:
本申请实施例提供的一种AXI总线通信方法、装置、设备和介质,能够在数据传输过程中模拟端口独占机制及仲裁机制,有效保证了端口在同一时刻不被重复占用;能够模拟端口传输数据延时机制,将TLM2.0 AT模型的瞬时数据传输由一个时间点改为模拟数据传输延时的一个时间段,更逼近硬件行为,方便进行延时时间等性能指标的建模和评估;还可以存储请求数据和响应数据,通过TLM2.0 AT设计,相比于LT模型来说,可以将一次传输将请求阶段和响应阶段分开,方便了解各个步骤的传输细节,且能够保证及时完成请求阶段的处理;通过TLM的函数调用通信方式事务级建模,避免了硬件电路模块之间繁琐的信号连接描述,更方便的模拟总线中的流量控制机制。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本申请实施例提供的AXI总线通信方法的总流程图;
图2示出根据本申请一个实施例的AXI总线通信方法的非阻塞通信流程及传送接口示意图;
图3示出本申请实施例提供的装置的结构示意图;
图4示出可被用于实施本申请中所述的各个实施例的示例性系统。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了缩短SoC关键IP的设计周期并辅助设计过程,同时为了缩短从系统架构设计到硬件RTL电路实现之间的鸿沟,需要采用一种建模方法学对整个电路系统的功能、架构进行描述,同时又不陷入硬件电路繁杂的信号时序、门电路之中。此时,可以采用一种事务级建模(Transaction Level Modeling,TLM)方法进行辅助设计。TLM比RTL的抽象级别更高,可以根据系统的初始功能规范快速建立硬件的可执行规范、快速创建系统模型。通过在其中加入时序细节,可以评估系统的性能指标、探索系统的结构。
由于不同模型设计的不同,通信中调用的函数也不同,使模型间的通信变得非常复杂,OSCI TLM2.0标准的提出,为各个模块间的通信提供了统一接口,使模型内部功能与通信分离开,同时为了提高不同模块之间的互可操作性和可重用性,TLM2.0设计了一套比较通用的传输数据结构和传输协议。TLM2.0通过接口和编码方式来对事务级建模进行层次划分,提出了Loosely-timed(LT,松散定时)和Approximately-timed(AT,近似定时)两种编码方式。
其中,LT模型使用阻塞传送接口,在建模中,阻塞的意义是一个调用请求发出后,直到请求被处理完成该调用才返回,因此在这种模型中,每一个事务处理对应了两个时间点,即事务处理的开始点和结束点。
而AT模型通过非阻塞传送接口支持,主要用于体系结构探索和性能分析。在一个非阻塞传送中存在多个定时点,不同传送相位可以分别用时间标注。在近似定时建模中,一个事务被划分为多个相位,由不同的时间点即兴分割。在基础协议汇总,基本的时间点包括请求的开始和结束、应答的开始和结束。特定的协议可以进一步包括更多的时间点。
针对AXI总线要模拟传输的握手协议,就需要将一次传输分为多步发送完成,通过简单使用LT编码方式无法进行实现,因此需要按照AT的编码方式将一次传输分为多个阶段,了解各个步骤的传输细节。
实施例一
本申请提供了一种AXI总线通信方法,参照图1,方法包括:
S1、发起端向目标端发起请求。
S3、目标端接收请求,并将请求中的数据信息存储至请求数据存储队列。
S4、目标端根据数据信息计算得到第一时间,并将数据信息从请求数据存储队列存入请求响应队列,第一时间为数据信息的传输时间。
S6、目标端响应于检测到等待第二时间后,目标端根据请求响应队列读取数据信息,将数据信息发送至发起端;其中,第二时间为在目标端数据接收结束后的预设等待时间。
S7、发起端接收到数据信息,对数据信息进行处理,将处理后的数据信息返回至目标端。
S8、目标端接收处理后的数据信息。
其中,方法可以实现以下机制:
模拟数据传输延时机制、模拟端口独占机制及仲裁机制、执行二级存储、模拟流量控制机制。
在一些实施例中,S1具体包括:
S11、发起端响应于检测到存在访问目标端的请求,设置当前相位为开始请求相位,定义通用净核类的请求包,设置请求包的配置信息,配置信息至少包括请求包的数据长度,配置信息还包括以下至少一种:数据首地址、读写类型、地址信息。
S12、发起端将请求中的数据信息发送至目标端。其中,数据信息包括请求包和配置信息。
具体的,进行事务处理级建模,核心是描述事务以及事务的传递过程。而通用净核用于提高存储器映射类型总线模型的互联互通性,通用净核提供了创建存储器映射类型总线模型所需要的基本属性,对于创建多数抽象总线模型已经足够。另一方面,它还提供了一个扩展机制以满足某些总线标准的特定需求。通用净核针对存储器映射类型总线模型而设计,包括了命令、地址、数据、时能、单字传输、突发传输等属性。它支持阻塞和非阻塞传送接口,也支持DMI和调试传送接口。在使用通用净核作为事务对象传递前,发起端需初始化数据指针和字节使能属性指针。数据指针可以指向静态、自动或者动态分配的存储空间。通用净核支持两种管理存储区的方法:引用计数和发起端随机管理。存储区管理器是一个用户定义的类,这样一个类的设计目的是提高一个从一个存储池分配通用净核事务对象的方法。
示例性的,发起端(initiator)在检测到有访问目标端请求后,进程SendRqeMemoryHandeling()被触发,设置当前相位为BEGIN_REQ(开始请求相位),定义通用净核类的类型包(请求包),设置请求包的数据长度,数据首地址,读写类型,地址信息等配置信息。将创建好的请求包放入request_memory_queue(请求数据存储队列)中存放;通过init_socket(发起端口)的nb_transport_fw()方法将请求包发送到target(目标端)。
在一些实施例中,在S3之前,方法还包括:
S21、响应于检测到当前相位为开始请求相位,目标端判断当前端口状态,若当前端口状态为空闲,目标端继续执行处理请求;
S22、响应于检测到存在多个请求,目标端根据每个请求的优先级进行仲裁,对仲裁通过的请求设置响应状态为响应通过,对未仲裁通过的请求设置响应状态为响应不通过。
具体的,通过对端口当前状态的设置和更新,在BEGIN_REQ(开始请求相位)阶段进行查询,判断当前端口状态。只有在当前端口空闲时,才会返回TLM_ACCEPTED,目标端开始处理该请求;否则目标端阻塞等待,发起端此时不能执行正常的请求操作。当有多个请求存在时,目标端会根据请求发起者的优先级进行仲裁,对仲裁到的发起者设置响应状态为TLM_OK_RESPONSE(正常执行命令),对未仲裁到的发起者设置响应状态为TLM_COMMAND_ERROR_RESPONSE(不能执行命令),通过socket接口通知各发起者。
在本实施例中,通过上述技术手段,能够在数据传输过程中模拟端口独占机制及仲裁机制,有效保证了端口在同一时刻不被重复占用。
在一些实施例中,若当前端口状态为空闲,S4还包括:
S41、响应于目标端接收到请求,将当前时刻记录为数据接收的起始时间;
S42、目标端根据请求包的数据长度以及当前AXI总线的带宽,计算得到第一时间,第一时间为数据信息的传输时间;
S43、响应于检测到等待第一时间后,向发起端返回接收完毕标识,将当前时刻记录为数据接收的结束时间。
下面结合图2对方案进行进一步的说明:
具体的,若当前端口空闲,且请求数据存储队列request_queue未满时,继续以下操作:模拟AXI master端(发起端)和AXI slave端(目标端)数据传输延时的机制,目标端在BEGIN_REQ(开始请求相位)阶段收到请求,将当前时刻记录为数据接收的起始时间(start_time_stamp),然后根据传输请求包的数据长度(data_length)和当前AXI的带宽(bandwidth) 计算出数据包的传输时间,并记为ACCESS_DELAY(第一时间,t1)。在等待了ACCESS_DELAY(第一时间,t1)之后,认为数据包接收完成,返回TLM_ACCEPTED(目标端接收此次调用),通知发起端请求接收完成,当前时刻即为数据接收结束(end_time_stame)时刻。
具体的,将数据信息从请求数据存储队列存入请求响应队列,可以在等待第二时间之前,也可以在等待第二时间之时。
在本实施例中,通过上述技术手段,能够模拟端口传输数据延时机制,将TLM2.0AT模型的瞬时数据传输由一个时间点改为模拟数据传输延时的一个时间段,更逼近硬件行为,方便进行延时时间等性能指标的建模和评估。
在一些实施例中,S1还包括:
目标端判断请求数据存储队列是否已满,若请求数据存储队列已满,设置请求响应状态为响应错误,并将请求响应状态发送至发起端。
具体的,内部设置了请求数据存储队列(request_queue)和请求响应队列(response_queue)两块存储空间。当在BEGIN_REQ相位接收到访问请求后,如果请求数据存储队列(request_queue)满了,则设置响应状态为TLM_COMMAND_ERROR_RESPONSE(响应错误),通过socket接口通知请求发起者。而请求数据存储队列未满,可以将访问请求存储到请求数据存储队列,目标端将相位设置为END_REQ,通过socket通知发起者请求阶段结束。在等待了第二时间RESPONSE_DELAY之后,依次将请求数据存储队列的数据元素出队,存入请求响应队列(response_queue),以开始BEGIN_RESP阶段处理。
在本实施例中,通过采用上述技术手段,可以存储请求数据和响应数据,通过TLM2.0 AT设计,相比于LT模型来说,可以将一次传输将请求阶段和响应阶段分开,方便了解各个步骤的传输细节,且能够保证及时完成请求阶段的处理。
在一些实施例中,在S6之前,方法还包括:
S5、目标端判断请求响应队列是否已满,若请求响应队列已满,设置请求响应队列为阻塞等待状态。
具体的,当目标端在等待一个RESPONSE_DELAY时间后,在需要将请求数据存储队列(request_queue)中的数据存入请求响应队列(response_queue)中时,如果此时请求响应队列已满,则继续阻塞等待,接收方不能进入响应阶段,通过这种方式,模拟总线中的流量控制机制。
在一些实施例中,S6具体包括:
S61、目标端设置当前相位为开始响应相位,读取请求响应队列的数据信息,将数据信息发送至发起端。
S7具体包括:
S71、发起端接收到数据信息,对数据信息进行处理,将请求数据存储队列中的数据信息删除,设置当前相位为结束响应相位,将结束响应相位和处理后的数据信息发送至目标端。
具体的,目标端在等待一个RESPONSE_DELAY(第二时间)之后,设置当前相位为BEGIN_RESP(开始响应相位),从请求响应队列response_queue中取出首元素进行解析,解析出读取memory请求,完成读取操作,将读出的数据信息例如地址,长度,类型信息存入transaction_type类型包中,将RESPONSE_DELAY记为t2,作为nb_transport_bw()方法的参数。通过target_socket(目标端口) 的nb_transport_bw()方法将数据发送到initiator端(发起端)。发起端接收到目标端返回的数据,内部触发end_response_method()方法对接收到的数据进行处理,处理完后将对应的request_memory_queue队列中的数据包删除。设置当前相位为 END_RESP(结束响应)阶段,通过init_socket(发起端口)的nb_transport_fw()方法将数据发送到目标端。此时,目标端的taget_socket(目标端口)注册的nb_transport_fw()方法被触发,判断当前相位是否是END_RESP(结束响应)阶段,若是,本次传输过程结束。
在本实施例中,能够在数据传输过程中模拟端口独占机制及仲裁机制,有效保证了端口在同一时刻不被重复占用;能够模拟端口传输数据延时机制,将TLM2.0 AT模型的瞬时数据传输由一个时间点改为模拟数据传输延时的一个时间段,更逼近硬件行为,方便进行延时时间等性能指标的建模和评估;还可以存储请求数据和响应数据,通过TLM2.0 AT设计,相比于LT模型来说,可以将一次传输将请求阶段和响应阶段分开,方便了解各个步骤的传输细节,且能够保证及时完成请求阶段的处理;通过TLM的函数调用通信方式事务级建模,避免了硬件电路模块之间繁琐的信号连接描述,更方便的模拟总线中的流量控制机制。
实施例二
对应上述实施例,本申请还提供了一种实现所述的AXI总线通信方法的装置,参照图3,包括发起端110和目标端120,所述发起端110包括发起端口111,所述目标端120包括目标端口121,所述发起端口111和所述目标端口121连接,其中,通用净核类、相位和时间中的至少一种通过所述发起端口111和所述目标端口121进行通信。
具体的,所述发起端110还包括第一调用响应模块112,用于响应所述目标端口121的调用行为,所述目标端120还包括第二调用响应模块122,用于响应所述发起端口111的调用行为。
具体的,第一调用响应模块112注册了register_nb_transport_bw_func()方法,用来响应目标端口121的调用行为。其中,nb_transport_bw()方法在上述实施例中已有详细阐述,此处不作赘述。同样的,第二调用响应模块122注册了register_nb_transport_fw_func()方法,用来响应发起端口111的调用行为。其中,nb_transport_fw()方法也在上述实施例中已有详细阐述,此处不作赘述。
具体的,所述发起端110还包括第一处理模块113,用于处理来自所述目标端120的请求,所述目标端120还包括第二处理模块123,用于处理来自所述发起端110的请求。其中,第一处理模块113包括内部进程SendRqeMemoryHandeling(),用于处理目标端120的请求;第一处理模块113还包括内部方法end_response_method(),用来处理END_RESP阶段的行为。同样的,第二处理模块123包括内部方法begin_response_method(),用来处理BEGIN_RESP阶段的行为。关于上述内部注册的方法、进程以及相位阶段,在上述实施例中均有解释,此处不作赘述。
具体的,所述发起端110还包括第一请求数据存储模块114,用于存储所述发起端110的请求数据,所述目标端120还包括第二请求数据存储模块124,用于存储所述目标端120接收到的请求数据,所述目标端120还包括第一响应数据存储模块125,用于存储所述目标端120接收到的响应数据。第一请求数据存储模块114可以包括队列request_memory_queue,用以存储发起端110的数据;第二请求数据存储模块124可以包括请求数据存储队列request_queue,用以存储目标端120接收到的请求数据;第一响应数据存储模块125可以包括请求响应队列response_queue,用以存储目标端120接收到的响应数据。
实施例三
对应上述实施例,本申请还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时可以实现上述AXI总线通信方法。
如图4所示,在一些实施例中,系统能够作为各所述实施例中的任意一个用于AXI总线通信方法的上述电子设备。在一些实施例中,系统可包括具有指令的一个或多个计算机可读介质(例如,系统存储器或NVM/存储设备)以及与该一个或多个计算机可读介质耦合并被配置为执行指令以实现模块从而执行本申请中所述的动作的一个或多个处理器(例如,(一个或多个)处理器)。
对于一个实施例,系统控制模块可包括任意适当的接口控制器,以向(一个或多个)处理器中的至少一个和/或与系统控制模块通信的任意适当的设备或组件提供任意适当的接口。
系统控制模块可包括存储器控制器模块,以向系统存储器提供接口。存储器控制器模块可以是硬件模块、软件模块和/或固件模块。
系统存储器可被用于例如为系统加载和存储数据和/或指令。对于一个实施例,系统存储器可包括任意适当的易失性存储器,例如,适当的DRAM。在一些实施例中,系统存储器可包括双倍数据速率类型四同步动态随机存取存储器(DDR4SDRAM)。
对于一个实施例,系统控制模块可包括一个或多个输入/输出(I/O)控制器,以向NVM/存储设备及(一个或多个)通信接口提供接口。
例如,NVM/存储设备可被用于存储数据和/或指令。NVM/存储设备可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(HDD)、一个或多个光盘(CD)驱动器和/或一个或多个数字通用光盘(DVD)驱动器)。
NVM/存储设备可包括在物理上作为系统被安装在其上的设备的一部分的存储资源,或者其可被该设备访问而不必作为该设备的一部分。例如,NVM/存储设备可通过网络经由(一个或多个)通信接口进行访问。
(一个或多个)通信接口可为系统提供接口以通过一个或多个网络和/或与任意其他适当的设备通信。系统可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信。
对于一个实施例,(一个或多个)处理器中的至少一个可与系统控制模块的一个或多个控制器(例如,存储器控制器模块)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器中的至少一个可与系统控制模块的一个或多个控制器的逻辑封装在一起以形成系统级封装(SiP)。对于一个实施例,(一个或多个)处理器中的至少一个可与系统控制模块的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多个)处理器中的至少一个可与系统控制模块的一个或多个控制器的逻辑集成在同一模具上以形成片上系统(SoC)。
在各个实施例中,系统可以但不限于是:服务器、工作站、台式计算设备或移动计算设备(例如,膝上型计算设备、手持计算设备、平板电脑、上网本等)。在各个实施例中,系统可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,系统包括一个或多个摄像机、键盘、液晶显示器(LCD)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(ASIC)和扬声器。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。本领域技术人员应能理解,计算机程序指令在计算机可读介质中的存在形式包括但不限于源文件、可执行文件、安装包文件等,相应地,计算机程序指令被计算机执行的方式包括但不限于:该计算机直接执行该指令,或者该计算机编译该指令后再执行对应的编译后程序,或者该计算机读取并执行该指令,或者该计算机读取并安装该指令后再执行对应的安装后程序。在此,计算机可读介质可以是可供计算机访问的任意可用的计算机可读存储介质或通信介质。
通信介质包括藉此包含例如计算机可读指令、数据结构、程序模块或其他数据的通信信号被从一个系统传送到另一系统的介质。通信介质可包括有导的传输介质(诸如电缆和线(例如,光纤、同轴等))和能传播能量波的无线(未有导的传输)介质,诸如声音、电磁、RF、微波和红外。计算机可读指令、数据结构、程序模块或其他数据可被体现为例如无线介质(诸如载波或诸如被体现为扩展频谱技术的一部分的类似机制)中的已调制数据信号。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被更改或设定的信号。调制可以是模拟的、数字的或混合调制技术。
在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
实施例四
对应上述实施例,本申请还提供了一种计算机可读存储介质,存储有计算机可执行指令,计算机可执行指令用于执行AXI总线通信方法。
在本实施例中,计算机可读存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动的介质。例如,计算机可读存储介质包括,但不限于,易失性存储器,诸如随机存储器(RAM,DRAM,SRAM);以及非易失性存储器,诸如闪存、各种只读存储器(ROM,PROM,EPROM,EEPROM)、磁性和铁磁/铁电存储器(MRAM,FeRAM);以及磁性和光学存储设备(硬盘、磁带、CD、DVD);或其它现在已知的介质或今后开发的能够存储供计算机系统使用的计算机可读信息/数据。
尽管已描述了本申请实施例中的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例中范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种AXI总线通信方法,基于TLM2.0AT模型,其特征在于,所述方法包括:
发起端向目标端发起请求;
所述目标端接收所述请求,并将所述请求中的数据信息存储至请求数据存储队列;
所述目标端根据所述数据信息计算得到第一时间,并将所述数据信息从所述请求数据存储队列存入请求响应队列,所述第一时间为所述数据信息的传输时间;
所述目标端响应于检测到等待第二时间后,所述目标端根据所述请求响应队列读取所述数据信息,将所述数据信息发送至所述发起端;
其中,所述第二时间为在所述目标端数据接收结束后的预设等待时间;
所述发起端接收到所述数据信息,对所述数据信息进行处理,将处理后的数据信息返回至所述目标端;
所述目标端接收所述处理后的数据信息。
2.根据权利要求1所述的AXI总线通信方法,其特征在于,所述发起端向目标端发起请求,具体包括:
所述发起端响应于检测到存在访问所述目标端的请求,设置当前相位为开始请求相位,定义通用净核类的请求包,设置所述请求包的配置信息,所述配置信息至少包括所述请求包的数据长度,所述配置信息还包括以下至少一种:数据首地址、读写类型、地址信息;
所述发起端将所述请求中的数据信息发送至所述目标端;
所述数据信息包括所述请求包和所述配置信息。
3.根据权利要求2所述的AXI总线通信方法,其特征在于,在所述目标端接收所述请求,并将所述请求中的数据信息存储至请求数据存储队列之前,所述方法还包括:
响应于检测到当前相位为开始请求相位,所述目标端判断当前端口状态,若所述当前端口状态为空闲,所述目标端继续执行处理所述请求;
响应于检测到存在多个所述请求,所述目标端根据每个所述请求的优先级进行仲裁,对仲裁通过的所述请求设置响应状态为响应通过,对未仲裁通过的所述请求设置响应状态为响应不通过。
4.根据权利要求3所述的AXI总线通信方法,其特征在于,若所述当前端口状态为空闲,所述目标端根据所述数据信息计算得到第一时间,并将所述数据信息从所述请求数据存储队列存入请求响应队列,所述第一时间为所述数据信息的传输时间,包括:
响应于所述目标端接收到所述请求,将当前时刻记录为数据接收的起始时间;
所述目标端根据所述请求包的数据长度以及当前所述AXI总线的带宽,计算得到第一时间,所述第一时间为所述数据信息的传输时间;
响应于检测到等待所述第一时间后,向所述发起端返回接收完毕标识,将当前时刻记录为数据接收的结束时间。
5.根据权利要求1所述的AXI总线通信方法,其特征在于,所述发起端向目标端发起请求,还包括:
所述目标端判断所述请求数据存储队列是否已满,若所述请求数据存储队列已满,设置请求响应状态为响应错误,并将所述请求响应状态发送至所述发起端。
6.根据权利要求5所述的AXI总线通信方法,其特征在于,在所述目标端响应于检测到等待第二时间后,所述目标端根据所述请求响应队列读取所述数据信息,将所述数据信息发送至所述发起端之前,所述方法还包括:
所述目标端判断所述请求响应队列是否已满,若所述请求响应队列已满,设置所述请求响应队列为阻塞等待状态。
7.根据权利要求5所述的AXI总线通信方法,其特征在于,所述目标端响应于检测到等待第二时间后,所述目标端根据所述请求响应队列读取所述数据信息,将所述数据信息发送至所述发起端,具体包括:
所述目标端设置当前相位为开始响应相位,读取所述请求响应队列的数据信息,将所述数据信息发送至所述发起端;
所述发起端接收到所述数据信息,对所述数据信息进行处理,将处理后的数据信息返回至所述目标端,具体包括:
所述发起端接收到所述数据信息,对所述数据信息进行处理,将所述请求数据存储队列中的数据信息删除,设置当前相位为结束响应相位,将所述结束响应相位和处理后的数据信息发送至所述目标端。
8.一种实现权利要求1~7中任一项所述的AXI总线通信方法的装置,包括发起端和目标端,其特征在于,所述发起端包括发起端口,所述目标端包括目标端口,所述发起端口和所述目标端口连接,通用净核类、相位和时间中的至少一种通过所述发起端口和所述目标端口进行通信;
所述发起端还包括第一调用响应模块,用于响应所述目标端口的调用行为,所述目标端还包括第二调用响应模块,用于响应所述发起端口的调用行为;
所述发起端还包括第一处理模块,用于处理来自所述目标端的请求,所述目标端还包括第二处理模块,用于处理来自所述发起端的请求;
所述发起端还包括第一请求数据存储模块,用于存储所述发起端的请求数据,所述目标端还包括第二请求数据存储模块,用于存储所述目标端接收到的请求数据,所述目标端还包括第一响应数据存储模块,用于存储所述目标端接收到的响应数据。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1~7中任意一项所述AXI总线通信方法。
10.一种计算机可读存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令用于执行权利要求1~7中任意一项所述AXI总线通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111447008.9A CN114238177B (zh) | 2021-12-01 | 2021-12-01 | Axi总线通信方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111447008.9A CN114238177B (zh) | 2021-12-01 | 2021-12-01 | Axi总线通信方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114238177A CN114238177A (zh) | 2022-03-25 |
CN114238177B true CN114238177B (zh) | 2022-05-31 |
Family
ID=80752299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111447008.9A Active CN114238177B (zh) | 2021-12-01 | 2021-12-01 | Axi总线通信方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114238177B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115129642B (zh) * | 2022-06-14 | 2023-09-08 | 沐曦集成电路(南京)有限公司 | 芯片总线延时调整方法、电子设备和介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6694400B1 (en) * | 1999-04-23 | 2004-02-17 | Via Technologies, Inc. | PCI system controller capable of delayed transaction |
CN102497514A (zh) * | 2011-12-15 | 2012-06-13 | 中国科学院自动化研究所 | 一种三通道视频转发设备和转发方法 |
CN103077136A (zh) * | 2011-10-25 | 2013-05-01 | 广东新岸线计算机系统芯片有限公司 | 一种axi总线内写入数据的方法和设备 |
CN112511636A (zh) * | 2020-12-04 | 2021-03-16 | 中国建设银行股份有限公司 | 数据传输系统、方法、装置、计算机设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105243033B (zh) * | 2015-09-28 | 2018-05-25 | 北京联想核芯科技有限公司 | 数据处理方法及电子设备 |
-
2021
- 2021-12-01 CN CN202111447008.9A patent/CN114238177B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6694400B1 (en) * | 1999-04-23 | 2004-02-17 | Via Technologies, Inc. | PCI system controller capable of delayed transaction |
CN103077136A (zh) * | 2011-10-25 | 2013-05-01 | 广东新岸线计算机系统芯片有限公司 | 一种axi总线内写入数据的方法和设备 |
CN102497514A (zh) * | 2011-12-15 | 2012-06-13 | 中国科学院自动化研究所 | 一种三通道视频转发设备和转发方法 |
CN112511636A (zh) * | 2020-12-04 | 2021-03-16 | 中国建设银行股份有限公司 | 数据传输系统、方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114238177A (zh) | 2022-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10489546B1 (en) | Modular system on chip configuration system | |
CN109522243A (zh) | 一种全闪存储中元数据缓存管理方法、装置及存储介质 | |
CN114238177B (zh) | Axi总线通信方法、装置、设备和介质 | |
WO2020233435A1 (zh) | 数据处理方法、装置和系统 | |
CN114330229B (zh) | 一种存储器的延时建模的方法、装置、设备及介质 | |
CN108197309A (zh) | 一种服务器资产信息存储的方法、系统及可读存储介质 | |
KR20170013269A (ko) | 플래시 메모리 기반의 저장 디바이스의 입/출력 가상화 (iov) 호스트 제어기 (hc) (iov-hc) 에서의 커맨드 트랩 | |
JP2015158910A (ja) | ラップ読出しから連続読出しを行うメモリサブシステム | |
US20180039518A1 (en) | Arbitrating access to a resource that is shared by multiple processors | |
CN105491082B (zh) | 远程资源访问方法和交换设备 | |
JP2024024607A (ja) | メモリーアクセスのための集積回路、処理方法、電子機器及び媒体 | |
WO2023124656A1 (zh) | 一种用于存储自定义数据信息的方法与设备 | |
KR101621841B1 (ko) | Hla/rti 기반 혼합회로 시뮬레이션 시스템 및 방법 | |
US20150227661A1 (en) | Computer product, simulation apparatus, simulation method, bus model, and bus circuit | |
JP2022510812A (ja) | 改良された速度モードによるデータ通信 | |
US20220342835A1 (en) | Method and apparatus for disaggregation of computing resources | |
CN108874387A (zh) | 一种数据序列化方法及其相关设备 | |
CN115309657A (zh) | 一种用于提供测试用例的方法、设备、介质及程序产品 | |
CN113098730B (zh) | 一种服务器的测试方法及设备 | |
CN114398214A (zh) | 性能验证方法、装置、存储介质及计算机设备 | |
KR20220113283A (ko) | 저장 장치 리소스 관리를 위한 시스템 및 방법 | |
US11178216B2 (en) | Generating client applications from service model descriptions | |
CN116711281A (zh) | 一种片上系统及相关方法 | |
CN116932151A (zh) | 一种事务处理方法、装置、设备及存储介质 | |
CN111181864A (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 |