CN102004709B - 处理器局部总线到高级可扩展接口之间的总线桥及映射方法 - Google Patents
处理器局部总线到高级可扩展接口之间的总线桥及映射方法 Download PDFInfo
- Publication number
- CN102004709B CN102004709B CN2009101713880A CN200910171388A CN102004709B CN 102004709 B CN102004709 B CN 102004709B CN 2009101713880 A CN2009101713880 A CN 2009101713880A CN 200910171388 A CN200910171388 A CN 200910171388A CN 102004709 B CN102004709 B CN 102004709B
- Authority
- CN
- China
- Prior art keywords
- read
- plb
- write
- request
- meets
- 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.)
- Expired - Fee Related
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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
本发明公开了一种处理符合PLB总线协议的读写请求的方法和PLB总线到AXI总线之间的总线桥,该方法包括:接收符合PLB总线协议的读写请求,而无需等待前一符合PLB总线协议的读写请求成功执行的确认;缓存所述符合PLB总线协议的读写请求;将缓存的符合PLB总线协议的读写请求映射为符合AXI总线协议的读写请求;输出所述映射的符合AXI总线协议的读写请求。该方法和总线桥能够使符合PLB总线协议和AXI总线协议的IP模块相互通信,并在通信期间执行事务映射,确保所有的事务按照PLB设备期望的顺序执行,提高片上系统通信的效率。
Description
技术领域
本发明一般涉及数据处理方法和系统,具体涉及一种片上系统的处理器局部总线(PLB)到高级可扩展接口(AXI)之间的总线桥及映射方法。
背景技术
随着半导体工艺技术的飞速发展,片上系统(System-on-a-chip,SoC)正逐渐成为集成电路设计中的主流发展趋势。片上系统指的是在单个芯片上集成一个完整的系统,对所有或部分必要的电子电路进行包分组的技术。所谓完整的系统一般包括中央处理器(CPU)、存储器、以及外围电路等。片上系统可以提供增强的时钟频率,从而降低芯片的功耗。片上系统技术通常应用于小型的,日益复杂的客户电子设备。例如,一个声音检测设备的片上系统是在单个芯片上为所有用户提供包括音频接收端、模数转换器(ADC)、微处理器、必要的存储器以及输入输出逻辑控制等设备。
SoC芯片需要集成一个复杂的系统,这导致了它具有比较复杂的结构,如果是从头开始完成芯片设计,显然将花费大量的人力物力。此外,现在电子产品的生命期正在不断缩短,这要求芯片的设计必须在更短的周期内完成。为了加快SoC芯片设计的速度,集成电路设计人员将已有的IC电路以模块的形式,在SoC芯片设计中调用,从而简化芯片的设计,缩短设计时间,提高设计效率。这些可以被重复使用的IC模块就叫做IP模块(或者系统宏单元、IP核、芯核、虚拟器件等)。IP模块是具有知识产权(IntellectualProperty)的集成电路芯核的简称,其作用是把一组拥有知识产权的电路设计集合在一起,构成芯片的基本单位,以供设计时搭积木之用。IP模块被预先设计好,经过验证,并且具有某种确定功能。
处理器局部总线(Processor Local Bus,PLB)和高级可扩展接口(Advanced eXtensible Interface,AXI)是片上系统流行的通信体系结构,许多IP模块的接口都和PLB或者AXI兼容。
PLB总线是应用于高度集成的Core+ASIC系统中的高性能片上总线,具有64位地址总线和128位的数据总线,其为处理器内核与集成总线控制器之间提供了标准接口,使得设计人员可针对Core+ASIC以及片上系统设计开发处理器内核库及总线控制器。PLB总线支持在配备了PLB总线接口的设备之间进行读写数据传输。
AXI是一种总线协议,该协议是ARM公司提出的高级微控制器总线架构(Advanced Microcontroller Bus Architecture,AMBA)3.0协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片上总线。它的地址/控制和数据传输阶段是分离的,使用字节选通支持不对齐的数据传输,只需要为突发传输提供首地址。AXI总线的分离的读写数据通道有效支持低成本的直接存储访问操作、能够同时发射多个地址,支持传输乱序完成,以及可增加寄存器以提供时序收敛。
为了无缝集成不同的IP模块,应用中需要引进总线桥的概念。总线桥能够使支持不同总线的IP模块相互通信。
发明内容
为了集成PLB和AXI支持的IP模块,应用中需要PLB到AXI的总线桥以及映射方法。
根据本发明的一个方面,公开了一种处理符合PLB总线协议的读写请求的方法,包括:接收符合PLB总线协议的读写请求,而无需等待前一符合PLB总线协议的读写请求成功执行的确认;缓存所述符合PLB总线协议的读写请求;将缓存的符合PLB总线协议的读写请求映射为符合AXI总线协议的读写请求;输出所述映射的符合AXI总线协议的读写请求。
根据本发明的另一个方面,公开了一种PLB总线到AXI总线之间的总线桥,包括:PLB设备接口模块,用于接收符合PLB总线协议的读写请求,而无需等待前一符合PLB总线协议的读写请求成功执行的确认;缓存器,用于缓存所述符合PLB总线协议的读写请求;映射模块,用于将缓存的符合PLB总线协议的读写请求映射为符合AXI总线协议的读写请求;AXI设备接口模块,用于输出所述映射的符合AXI总线协议的读写请求。
该处理方法和总线桥能够使符合PLB总线协议和AXI总线协议的IP模块相互通信,并在通信期间执行事务映射,确保所有的事务按照PLB设备期望的顺序执行,提高片上系统通信的效率。
附图说明
通过对附图中本发明示例实施例方式的更详细描述,本发明的上述、以及其它目的、特征和优势将变得更加明显,其中,相同的参考标号通常代表本发明示例实施例方式中的相同部件。
图1示出了本发明的PLB到AXI的总线桥与PLB设备以及AXI设备的通信关系;
图2示出了PLB到AXI总线桥的结构框图;
图3示意性地示出了PLB到AXI总线桥中嵌入的一种写地址寄存器堆和冲突检测器的实施方式;
图4示出了一种处理符合PLB总线协议的读写请求的方法的主要流程;
图5示出了图4方法的一种具体的实施方式;以及
图6给出了PLB到AXI总线桥处理的读写事务序列的一个例子。
具体实施方式
将参照附图更加详细地描述本发明的优选实施方式,在附图中显示了本发明的优选实施例。然而,本发明可以以各种形式实现而不应该理解为被这里阐述的实施例所限制。相反,提供这些实施例是为了使本发明更加透彻和完整,并且,完全将本发明的范围传达给本领域的技术人员。
本发明的总线桥可以用于将PLB设备的读写请求发送到AXI设备中,从而可以使片上系统的PLB兼容的IP模块与AXI兼容的IP模块无缝集成。
图1示出了本发明的PLB到AXI的总线桥与PLB设备以及AXI设备的通信关系。根据图1,PLB设备通过PLB总线协议向PLB到AXI的总线桥发送读写请求,PLB到AXI的总线桥将接收的符合PLB总线协议的读写请求映射为符合AXI总线协议的读写请求,并把映射后的符合AXI总线协议的读写请求通过AXI总线输出给AXI设备。本发明的PLB到AXI的总线桥是采用缓存写(Buffered write)的方式,具体来说,PLB设备发送读写请求。PLB到AXI的总线桥接收符合PLB总线协议的读写请求,并缓存接收到的读写请求,进行映射后,输出映射后的符合AXI总线协议的读写请求到AXI设备,并且接收AXI设备的读写请求处理结束的确认,并把该确认返回给PLB设备。这种缓存写的总线桥,能够保持所有事务的顺序,并且可以无需等待发出的读写请求成功执行的确认,就发出下一读写请求,而不象非缓存写,非缓存写必需等待发出的读写请求成功执行的确认,才能发出下一读写请求,因此,本发明的总线桥吞吐量高,性能好。
PLB总线只支持按序传输(in order transfer),AXI总线既支持按序传输也支持乱序传输(out-of-order transfer)。因此,PLB设备发出读写请求通过总线桥到AXI设备时,总线桥既可以是按序传输,也可以乱序传输。
图2示出了PLB到AXI总线桥200的结构框图。根据图2,该PLB到AXI总线桥200包括PLB设备接口模块201,用于接收符合PLB总线协议的读写请求,并且无需等待前一符合PLB总线协议的读写请求成功执行的确认,缓存器202,用于缓存所述符合PLB总线协议的读写请求,在一种实施方式中,缓存所述符合PLB总线协议的读写请求是采用先进先出存储器进行缓存的;本领域技术人员可以知道,也可以采用其他缓存方式,例如堆栈等;映射模块203,用于将缓存的符合PLB总线协议的读写请求映射为符合AXI总线协议的读写请求;AXI设备接口模块204,用于输出所述映射的符合AXI总线协议的读写请求。PLB设备接口模块201通过PLB总线从PLB设备接收读写请求,PLB总线上的地址、控制信号和数据被分别通过不同的总线,诸如地址总线、写数据总线和读数据总线发送;AXI设备接口模块204将所述映射的符合AXI总线协议的读写请求通过AXI总线输出到AXI设备,同样,AXI总线上的地址、控制信号和数据也被分别通过不同的通道,诸如地址通道、信号通道和数据通道发送。在本领域中,虽然PLB总线和AXI总线的控制信号和数据都被分别通过不同的通道发送,但是,本领域中,称为PLB总线的控制信号和数据被分别通过不同的总线(Bus)发送,而称为AXI总线的控制信号和数据被分别通过不同的通道(channel)发送。
映射模块203中,对于PLB写请求,PLB总线到AXI总线的总线桥首先将PLB写请求的控制信号(例如,表示传输的类型、大小的信号)转换为AXI写传输控制信号,并连同接收到的PLB写地址一起发送到AXI写地址通道上;将来自于PLB总线的写数据发送到AXI写数据通道上;并将来自AXI写响应通道的信号转换为符合PLB协议的控制信号,通过PLB总线传送给PLB相关设备。对于PLB读请求,PLB总线到AXI总线的总线桥的映射模块203首先将PLB读请求的控制信号(例如,表示传输的类型、大小的信号)转换为AXI读传输控制信号,并连同接收到的PLB读地址一起发送到AXI读地址通道上;在接收到来自AXI读数据通道的读数据和读响应之后,PLB总线到AXI总线的总线桥负责按照PLB协议的要求,将其转化为符合PLB协议的读数据及信号,通过PLB总线传送给PLB相关设备。PLB总线到AXI总线的总线桥使用缓存写可能带来读写冲突,即如果读请求要读的地址正在执行未完成的写操作,就会发生读写冲突,需要暂停与该写操作有冲突的读操作的执行。
在一种实施方式中,缓存器202采用先进先出存储器对接收的读写请求进行缓存。具体来说,缓存器202可以包括写请求先进先出存储器(WR FIFO),读请求先进先出存储器(RR FIFO),另外,对于数据操作,缓存器202优选地还包括写数据先进先出存储器(WD FIFO),读数据先进先出存储器(RDFIFO)。优选地,PLB到AXI总线桥还包括缓存器控制器,用于控制缓存器202的数据缓存,其功能之一包括:判断缓存器202是否已满;如果已满,等待该缓存器202有空闲的位置后再缓存所述读写请求;如果未满,缓存器202缓存接收的读写请求。缓存器控制器可以控制着写请求先进先出存储器,读请求先进先出存储器,甚至也可以控制写数据先进先出存储器以及读数据先进先出存储器。具体来说,如果接收到写请求,缓存器控制器就判别写请求先进先出存储器是否已满,如果已满,就等待直到写请求先进先出存储器有空间才做缓存操作;如果是写数据,缓存器控制器就判别写数据先进先出存储器的空间是否已满,如果已满,也需要等待。实际中,写请求和写数据是同时准备好的,当接收到写请求成功执行的确认后,就接收写数据。另外,写数据先进先出存储器的空间也可以足够大,以便支持最大的PLB写突发传输。所有的PLB写事务被处理成缓存写(buffered write),即,如果在PLB到AXI总线桥的写数据先进先出存储器中有空间,写数据确认可以被直接返回到PLB设备,这样就可以立即接收写数据。如果接收到的是读请求,就判别读请求先进先出存储器是否已满,如果已满需要等待;否则,缓存器就可以缓存该读请求。
在一种实施方式中,PLB到AXI总线桥200还包括判断器、写地址寄存器堆(WARF),以及写地址控制器。判断器用于判断接收的符合PLB总线协议的读写请求是读请求还是写请求。如果所述接收的符合PLB总线协议的读写请求是写请求,写地址寄存器堆就存储所述写请求的起始地址和结束地址。写地址寄存器堆存储所述写请求的起始地址和结束地址与缓存器缓存所述符合PLB总线协议的读写请求可以同时进行或者先后进行。写起始地址和结束地址是基于写请求的传输类型和大小计算获得的,在写地址寄存器堆中可以作为一个条目保存。每个条目都可以有一个标签,用于指示该条目当前是有效还是无效。写地址控制器可以用于控制条目的标签以表示其有效还是无效,当AXI写成功执行的确认返回时,写地址控制器更新对应条目的标签,以表示对应的写起始地址和结束地址无效;在另外一种实施方式中,写地址寄存器堆中的写起始地址和结束地址也可以不用标签标记,而只在写地址寄存器堆中保留有效的写起始地址和结束地址,如果接收到一写请求已经成功执行的确认,删除存储的该写请求的起始地址和结束地址。上述方式可以用于使用按序传输方式的AXI设备。
对于使用乱序传输方式的AXI设备,如果所述接收的符合PLB总线协议的读写请求是写请求,PLB到AXI总线桥200可以标记该写请求,并在写地址寄存器堆将该写请求的标记与有效的写请求的起始地址和结束地址一起存储;并且需要输出的符合AXI总线协议的写请求包含该写请求的标记。
写地址寄存器堆存储的有效写起始地址和结束地址主要是为了防止读操作冲突,因为总线桥操作中,写请求和读请求都被缓存器缓存,如果先前的写操作还没有执行完毕,而后面的读操作已经开始执行,就可能会发生冲突,造成读出的数据不正确。当PLB读请求到达时,PLB到AXI的总线桥通过比较读地址和在写地址寄存器堆中的所有有效项来做冲突检测。因此,在一种实施方式中,PLB到AXI总线桥200还包括冲突检测器,如果判断器判断接收的符合PLB总线协议的读写请求是读请求,冲突检测器就获得所述读请求的起始地址和结束地址;并且判断所述读请求的起始地址和结束地址是否在存储的有效写请求起始地址和结束地址范围内;如果是,等待直到该读请求的起始地址和结束地址不在存储的有效写请求起始地址和结束地址范围内。这样,与有效的写操作有冲突的读操作等待,直到该有冲突的写操作执行完毕后再执行该读操作,就可以解决读写冲突。
解决冲突或者判别不存在冲突后,映射模块203将该缓存的符合PLB总线协议的读请求映射为符合AXI总线协议的读请求,AXI设备接口模块204输出所述映射的符合AXI总线协议的读写请求。AXI设备接口模块204通过AXI总线协议输出映射的符合AXI总线协议的读写请求到AXI设备,当AXI设备执行完所述读写操作后,会返回确认,对于读操作,AXI总线会将读出的数据放到数据通道,并通过AXI设备接口模块204的数据通道缓存到读数据先进先出存储器,并通过PLB设备接口模块201的数据通道传输给PLB总线;同时还通过相同通路的信号通道将读取成功执行的确认信息发送给PLB设备。另外,写请求成功执行的信号也通过该通路的信号通道传输到PLB设备。
一种实施方式中,PLB到AXI的总线桥的AXI设备接口模块接收到AXI设备对有效的写请求已经成功执行的确认,可以根据该写请求的标记,在写地址寄存器堆更新存储的该有效写请求的起始地址和结束地址为无效,这样可以快速更新,使得发生读写冲突的概率更小;并且PLB设备接口模块根据该写请求的标记输出该已经成功执行的写请求成功执行的确认,这样就可以在总线桥中将AXI设备的乱序传输恢复为PLB设备要求的按序传输。
图3示意性地示出了PLB总线到AXI总线的总线桥中嵌入的一种写地址寄存器堆和冲突检测器的实施方式。根据图3,写地址寄存器堆包括N个条目,冲突检测器包括2N个比较器,N个与门,和1个或门。如果读地址不小于写起始地址并且不大于写结束地址,则存在冲突,读地址与所有的标志位为1的条目同时比较,比较结果通过或门产生冲突信号输出。
在同一个发明构思下,本发明还公开了一种处理符合PLB总线协议的读写请求的方法,图4示出了该方法的主要流程,根据图4,在步骤S401,接收符合PLB总线协议的读写请求,而无需等待前一符合PLB总线协议的读写请求成功执行的确认;在步骤S402,缓存所述符合PLB总线协议的读写请求;在步骤S403,PLB总线协议的读写请求映射为符合AXI总线协议的读写请求;在步骤S404,输出所述映射的符合AXI总线协议的读写请求。该方法中需要暂停与该写操作有冲突的读操作的执行。
图5示出了图4方法的一种具体的实施方式,根据图5,在步骤S500,接收符合PLB总线协议的读写请求,而无需等待前一符合PLB总线协议的读写请求成功执行的确认;在步骤S501,判断接收的符合PLB总线协议的读写请求是读请求还是写请求;如果是写请求,根据写请求包括写地址,写数据以及控制信号,这里写请求先进先出存储器WR FIFO用于缓存写地址和控制信号,写数据先进先出存储器WD FIFO用于缓存写数据,则在步骤S502,判断用于缓存所述符合PLB总线协议的写请求先进先出存储器WD FIFO是否已满;如果已满,等待该存储器有空闲的位置后再缓存所述写请求;否则,在步骤S503,缓存所述符合PLB总线协议的写请求;同时,或者在步骤S503前或者步骤S503之后,执行步骤S504,将所述写请求的起始地址和结束地址作为有效的写请求的起始地址和结束地址存储,作为有效的起始地址和结束地址的一种实施方式是采用标志位,通过置标志位为特定值,例如1时,表示该起始地址和结束地址为有效地址;当置标志位为另外的值,例如0时,表示该起始地址和结束地址为无效地址。另外一种实施方式为不使用标志位,其中,如果起始地址和结束地址被存储,就是有效的起始地址和结束地址,否则就会被删除。
另外,根据图5,在写地址和控制信号缓存的同时,还要在步骤S505,判断用于缓存所述符合PLB总线协议的写数据的存储器WD FIFO是否已满,如果已满,等待该存储器有空闲的位置后再缓存所述写数据。如果未满,则在步骤S506,缓存所述写数据。然后在步骤S507,判断写请求的写地址、写数据和控制信号是否都已经被缓存,只有都被缓存了,才说明写请求被完整接收,否则,WR FIFO和WD FIFO有任何一个没有缓存数据或地址等,就在此等待,直到写请求被完整缓存。然后在步骤S508,将缓存的符合PLB总线协议的写请求映射为符合AXI总线协议的写请求;然后在步骤S509,输出所述映射的符合AXI总线协议的写请求。与步骤S508和S509同时,在步骤510,输出写数据。这样符合AXI总线协议的写请求输出到AXI设备后被执行,当在步骤S511接收到来自AXI总线协议的写请求成功执行的确认,在该步骤中,由于接收的来自AXI总线协议的写请求与步骤S509、S510发出的写请求很可能不是同一写请求,可能是先前的写请求成功执行的确认,因此,在图5中,该步骤没有和步骤S509、S510相连,在步骤S512,清除有效的起始地址及结束地址,或者置标志位无效。然后在步骤S513,输出该写请求已经成功执行的确认。
在另外的实施方式中,如果所述接收的符合PLB总线协议的读写请求是写请求,该方法还包括:标记该写请求;将该写请求的标记与有效的写请求的起始地址和结束地址存储一起存储;其中,所述输出的符合AXI总线协议的写请求包含该写请求的标记。这样,如果接收到该有效的写请求已经成功执行的确认,确认中就会包含该写请求的标记,就可以根据该写请求的标记,更新存储的该有效写请求的起始地址和结束地址为无效,这样更新的速度更快,可以更有效避免读写冲突。然后根据该写请求的标记输出该已经成功执行的写请求成功执行的确认,这样就可以将AXI设备的乱序传输恢复为PLB设备要求的按序传输。
如果在步骤S501,判断接收的符合PLB总线协议的读写请求是读请求,则首先在步骤S514,判断用于缓存所述符合PLB总线协议的读请求先进先出存储器RR FIFO是否已满,RR FIFO用于缓存读请求的读地址和控制信号,如果已满,等待该存储器有空闲的位置后再缓存所述读请求。如果未满,在步骤S515,缓存所述符合PLB总线协议的读请求,并在步骤S516,获得该读请求的读地址,然后在步骤S517进行冲突检测,即判断所述读请求的起始地址和结束地址是否在存储的有效写请求起始地址和结束地址范围内;在步骤518判定冲突检测结果,如果有冲突,则需要等待,反复判断直到该读请求的起始地址和结束地址不在存储的有效写请求起始地址和结束地址范围内。如果没有冲突,则在步骤S519,将缓存的符合PLB总线协议的读请求映射为符合AXI总线的读请求;然后在步骤S520,输出所述映射的符合AXI总线的读请求。符合AXI总线的读请求输出到AXI设备后被执行,当在步骤S521接收到来自AXI总线的读请求成功执行的确认以及读出的数据,在该步骤中,由于接收的来自AXI总线协议的读请求与步骤S520发出的读请求很可能不是同一读请求,可能是先前的读请求成功执行的确认,因此,该步骤没有和步骤S520相连,在步骤S522,缓存所述读到的数据;然后在步骤S523,输出所述读到的数据以及该读请求成功执行的确认。
图6给出了PLB到AXI总线桥处理的读写事务序列的一个例子,这里PLB以流水的方式发送写请求(一个PLB传输分为地址阶段和数据阶段,如果当前传输的地址阶段与上一次传输的数据阶段在时间上是重叠的,那么就称传输为流水的),流水写或读操作的深度为4(就是可以同时有4个写或读操作,以流水的方式进行)。当然本领域技术人员可以知道,流水方式只是一种实施方式,也可以不采用流水的方式。PLB到AXI总线桥按顺序接收R0,W0,W1,W2,W3,R1,R2以及R3请求。当接收到R0时,执行冲突检测,发现没有冲突,PLB到AXI总线桥处理R0读请求;当接收到W0,W1,W2,W3时,PLB到AXI总线桥处理写操作同时,将写操作地址存储到WARF中;当接收到R1时,执行冲突检测,发现W0和R1之间存在冲突,当W0写请求成功执行的确认返回时,冲突被清除,PLB到AXI总线桥处理R1读请求。通过冲突检测,全部的PLB写数据可以采用缓存写的方式,不会出现写后读的冲突,可以提高通信性能。
虽然这里参照附图描述了本发明的示例性实施例,但是应该理解本发明不限于这些精确的实施例,并且在不背离本发明的范围和宗旨的情况下,本领域普通技术人员能对实施例进行各种变化的修改。所有这些变化和修改意欲包含在所附权利要求中限定的本发明的范围中。
并且根据上述描述,所属技术领域的技术人员知道,本发明可以体现为装置、方法或计算机程序产品。因此,本发明可以具体实现为以下形式,即,可以是完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、或者本文一般称为“电路”、“模块”或“系统”的软件部分与硬件部分的组合。此外,本发明还可以采取体现在任何有形的表达介质(medium of expression)中的计算机程序产品的形式,该介质中包含计算机可用的程序码。
可以使用一个或多个计算机可用的或计算机可读的介质的任何组合。计算机可用的或计算机可读的介质例如可以是——但不限于——电的、磁的、光的、电磁的、红外线的、或半导体的系统、装置、器件或传播介质。计算机可读介质的更具体的例子(非穷举的列表)包括以下:有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、诸如支持因特网或内部网的传输介质、或者磁存储器件。注意计算机可用的或计算机可读的介质甚至可以是上面印有程序的纸张或者其它合适的介质,这是因为,例如可以通过电扫描这种纸张或其它介质,以电子方式获得程序,然后以适当的方式加以编译、解释或处理,并且必要的话在计算机存储器中存储。在本文件的语境中,计算机可用的或计算机可读的介质可以是任何含有、存储、传达、传播、或传输供指令执行系统、装置或器件使用的或与指令执行系统、装置或器件相联系的程序的介质。计算机可用的介质可包括在基带中或者作为载波一部分传播的、由其体现计算机可用的程序码的数据信号。计算机可用的程序码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等。
用于执行本发明的操作的计算机程序码,可以以一种或多种程序设计语言的任何组合来编写,所述程序设计语言包括面向对象的程序设计语言——诸如Java、Smalltalk、C++之类,还包括常规的过程式程序设计语言——诸如”C”程序设计语言或类似的程序设计语言。程序码可以完全地在用户的计算上执行、部分地在用户的计算机上执行、作为一个独立的软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户的计算机,或者,可以(例如利用因特网服务提供商来通过因特网)连接到外部计算机。
此外,本发明的流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得通过计算机或其它可编程数据处理装置执行的这些指令,产生实现流程图和/或框图中的方框中规定的功能/操作的装置(means)。
也可以把这些计算机程序指令存储在能指令计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令产生一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品,
也可以把计算机程序指令加载到计算机或其它可编程数据处理装置上,使得在计算机或其它可编程数据处理装置上执行一系列操作步骤,以产生计算机实现的过程,从而在计算机或其它可编程装置上执行的指令就提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
Claims (16)
1.一种处理符合PLB总线协议的读写请求的方法,包括:
接收符合PLB总线协议的读写请求,而无需等待前一符合PLB总线协议的读写请求成功执行的确认;
缓存所述符合PLB总线协议的读写请求;
将缓存的符合PLB总线协议的读写请求映射为符合AXI总线协议的读写请求;以及
输出所述映射的符合AXI总线协议的读写请求。
2.根据权利要求1所述的方法,其中所述缓存所述符合PLB总线协议的读写请求还包括:
判断用于缓存所述符合PLB总线协议的读写请求的缓存器是否已满;以及
如果已满,等待该缓存器有空闲的位置后再缓存所述读写请求。
3.根据权利要求1所述的方法,其中所述将缓存的符合PLB总线协议的读写请求映射为符合AXI总线协议的读写请求前还包括:
判断接收的符合PLB总线协议的读写请求是读请求还是写请求;以及
如果所述接收的符合PLB总线协议的读写请求是写请求,将所述写请求的起始地址和结束地址作为有效的写请求的起始地址和结束地址存储。
4.根据权利要求3所述的方法,其中所述输出所述映射的符合AXI总线协议的读写请求后还包括:
如果接收到该有效的写请求已经成功执行的确认,更新存储的该有效写请求的起始地址和结束地址为无效;以及
输出该写请求成功执行的确认。
5.根据权利要求3所述的方法,其中如果所述接收的符合PLB总线协议的读写请求是写请求,该方法还包括:
标记该写请求;
将该写请求的标记与有效的写请求的起始地址和结束地址一起存储;
其中,所述输出的符合AXI总线协议的写请求包含该写请求的标记。
6.根据权利要求5所述的方法,其中所述输出所述映射的符合AXI总线协议的读写请求后还包括:
如果接收到该有效的写请求已经成功执行的确认,根据该写请求的标记,更新存储的该有效写请求的起始地址和结束地址为无效;以及
根据该写请求的标记输出该已经成功执行的写请求成功执行的确认。
7.根据权利要求3-6之一所述的方法,其中如果所述接收的符合PLB总线协议的读写请求是读请求,该方法还包括:
获得所述读请求的起始地址和结束地址;
判断所述读请求的起始地址和结束地址是否在存储的有效写请求起始地址和结束地址范围内;以及
如果是,反复判断直到该读请求的起始地址和结束地址不在存储的有效写请求起始地址和结束地址范围内。
8.根据权利要求7所述的方法,其中所述输出所述映射的符合AXI总线协议的读请求后还包括:
如果接收到所述输出的符合AXI总线协议的读请求读到的数据以及该读请求成功执行的确认;
缓存所述读到的数据;以及
输出所述读到的数据以及该读请求成功执行的确认。
9.一种PLB总线到AXI总线之间的总线桥,包括:
PLB设备接口模块,用于接收符合PLB总线协议的读写请求,而无需等待前一符合PLB总线协议的读写请求成功执行的确认;
缓存器,用于缓存所述符合PLB总线协议的读写请求;
映射模块,用于将缓存的符合PLB总线协议的读写请求映射为符合AXI总线协议的读写请求;以及
AXI设备接口模块,用于输出所述映射的符合AXI总线协议的读写请求。
10.根据权利要求9所述的总线桥,其中还包括缓存器控制器,用于:
判断用于缓存所述符合PLB总线协议的读写请求的缓存器是否已满;以及
如果已满,等待该缓存器有空闲的位置后再缓存所述读写请求。
11.根据权利要求9所述的总线桥,其中所述总线桥还包括:
判断器,用于判断接收的符合PLB总线协议的读写请求是读请求还是写请求;以及
写地址寄存器堆,用于如果判断器判断所述接收的符合PLB总线协议的读写请求是写请求,将所述写请求的起始地址和结束地址作为有效的写请求的起始地址和结束地址存储。
12.根据权利要求11所述的总线桥,其中如果所述AXI设备接口模块接收到一写请求已经成功执行的确认,
所述写地址寄存器堆更新存储的该有效写请求的起始地址和结束地址为无效;以及
所述PLB设备接口模块输出该写请求已经成功执行的确认。
13.根据权利要求11所述的总线桥,其中如果所述判断器判断所述接收的符合PLB总线协议的读写请求是写请求,该总线桥标记该写请求,并在所述写地址寄存器堆将该写请求的标记与有效的写请求的起始地址和结束地址一起存储;其中,所述输出的符合AXI总线协议的写请求包含该写请求的标记。
14.根据权利要求13所述的总线桥,其中如果所述AXI设备接口模块接收到该有效的写请求已经成功执行的确认,根据该写请求的标记,在所述写地址寄存器堆更新存储的该有效写请求的起始地址和结束地址为无效,并且所述PLB设备接口模块根据该写请求的标记输出该已经成功执行的写请求成功执行的确认。
15.根据权利要求11-14之一所述的总线桥,其中还包括冲突检测器,用于:
如果所述判断器判断所述接收的符合PLB总线协议的读写请求是读请求,所述缓存器缓存所述符合PLB总线协议的读请求后,获得所述读请求的起始地址和结束地址;
判断所述读请求的起始地址和结束地址是否在存储的有效写请求起始地址和结束地址范围内;以及
如果是,反复判断直到该读请求的起始地址和结束地址不在存储的有效写请求起始地址和结束地址范围内。
16.根据权利要求15所述的总线桥,其中所述AXI设备接口模块还用于接收所述AXI设备接口模块输出的符合AXI总线协议的读请求读到的数据以及该读请求成功执行的确认;所述缓存器还用于缓存所述读到的数据;所述PLB设备接口模块还用于输出所述读到的数据以及该读请求成功执行的确认。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101713880A CN102004709B (zh) | 2009-08-31 | 2009-08-31 | 处理器局部总线到高级可扩展接口之间的总线桥及映射方法 |
US12/825,624 US20110055439A1 (en) | 2009-08-31 | 2010-06-29 | Bus bridge from processor local bus to advanced extensible interface |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101713880A CN102004709B (zh) | 2009-08-31 | 2009-08-31 | 处理器局部总线到高级可扩展接口之间的总线桥及映射方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102004709A CN102004709A (zh) | 2011-04-06 |
CN102004709B true CN102004709B (zh) | 2013-09-25 |
Family
ID=43626512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101713880A Expired - Fee Related CN102004709B (zh) | 2009-08-31 | 2009-08-31 | 处理器局部总线到高级可扩展接口之间的总线桥及映射方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20110055439A1 (zh) |
CN (1) | CN102004709B (zh) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8489791B2 (en) * | 2010-03-12 | 2013-07-16 | Lsi Corporation | Processor bus bridge security feature for network processors or the like |
US8949500B2 (en) | 2011-08-08 | 2015-02-03 | Lsi Corporation | Non-blocking processor bus bridge for network processors or the like |
US9461930B2 (en) | 2009-04-27 | 2016-10-04 | Intel Corporation | Modifying data streams without reordering in a multi-thread, multi-flow network processor |
US9444757B2 (en) | 2009-04-27 | 2016-09-13 | Intel Corporation | Dynamic configuration of processing modules in a network communications processor architecture |
US8804734B2 (en) * | 2010-11-03 | 2014-08-12 | Broadcom Corporation | Unified vehicle network frame protocol |
US8533377B2 (en) * | 2011-05-28 | 2013-09-10 | Lsi Corporation | System and method for allocating transaction ID in a system with a plurality of processing modules |
US8504756B2 (en) * | 2011-05-30 | 2013-08-06 | Lsi Corporation | System, circuit and method for improving system-on-chip bandwidth performance for high latency peripheral read accesses |
US8583844B2 (en) * | 2011-05-31 | 2013-11-12 | Lsi Corporation | System and method for optimizing slave transaction ID width based on sparse connection in multilayer multilevel interconnect system-on-chip architecture |
US9135202B2 (en) * | 2013-02-06 | 2015-09-15 | Apple Inc. | Bridge circuit for bus protocol conversion and error handling |
US8793411B1 (en) | 2013-03-05 | 2014-07-29 | Apple Inc. | Bridge circuit reorder buffer for transaction modification and translation |
US20150199286A1 (en) * | 2014-01-10 | 2015-07-16 | Samsung Electronics Co., Ltd. | Network interconnect with reduced congestion |
GB2525577A (en) * | 2014-01-31 | 2015-11-04 | Ibm | Bridge and method for coupling a requesting interconnect and a serving interconnect in a computer system |
US9634667B2 (en) * | 2014-08-29 | 2017-04-25 | Cypress Semiconductor Corporation | Integrated circuit device with programmable analog subsystem |
US9594713B2 (en) * | 2014-09-12 | 2017-03-14 | Qualcomm Incorporated | Bridging strongly ordered write transactions to devices in weakly ordered domains, and related apparatuses, methods, and computer-readable media |
CN104935885B (zh) * | 2015-06-04 | 2018-02-09 | 电子科技大学 | 一种基于axi总线的可扩展多路图像采集装置 |
US9871674B2 (en) | 2015-09-30 | 2018-01-16 | International Business Machines Corporation | Bridging between differing communication buses |
CN105260331B (zh) * | 2015-10-09 | 2018-08-28 | 天津国芯科技有限公司 | 一种双总线内存控制器 |
US10216669B2 (en) | 2016-02-23 | 2019-02-26 | Honeywell International Inc. | Bus bridge for translating requests between a module bus and an axi bus |
CN106484521A (zh) * | 2016-10-21 | 2017-03-08 | 郑州云海信息技术有限公司 | 一种数据请求处理方法及装置 |
US10489323B2 (en) | 2016-12-20 | 2019-11-26 | Arm Limited | Data processing system for a home node to authorize a master to bypass the home node to directly send data to a slave |
US11232037B2 (en) | 2017-10-23 | 2022-01-25 | Seagate Technology Llc | Using a first-in-first-out (FIFO) wraparound address lookup table (ALT) to manage cached data |
CN108255769B (zh) * | 2017-12-06 | 2021-03-26 | 中国航空工业集团公司西安航空计算技术研究所 | 一种axi-plb桥 |
CN110196824B (zh) | 2018-05-31 | 2022-12-09 | 腾讯科技(深圳)有限公司 | 实现数据传输的方法及装置、电子设备 |
US10599598B1 (en) | 2018-09-18 | 2020-03-24 | Hewlett Packard Enterprise Development Lp | PCIe write request acknowledgment |
CN109726149B (zh) * | 2018-12-11 | 2022-05-27 | 中国航空工业集团公司西安航空计算技术研究所 | 一种axi总线访问nand flash的方法及装置 |
CN110321260B (zh) * | 2019-06-28 | 2023-03-24 | 西安紫光国芯半导体有限公司 | 一种基于uvm的axi总线接口读写数据比较方法和uvm验证平台 |
CN111555901B (zh) * | 2020-03-16 | 2022-08-12 | 中国人民解放军战略支援部队信息工程大学 | 灵活支持混合总线协议的芯片配置网络系统 |
US11113218B1 (en) | 2020-04-27 | 2021-09-07 | Renesas Electronics Corporation | Semiconductor device and method for protecting bus |
CN112363763B (zh) * | 2020-11-13 | 2022-12-23 | 山东云海国创云计算装备产业创新中心有限公司 | 数据处理方法、装置及计算机可读存储介质 |
GB202107393D0 (en) * | 2021-05-24 | 2021-07-07 | Nordic Semiconductor Asa | Data bus communications |
CN113254368B (zh) * | 2021-07-15 | 2021-10-15 | 苏州浪潮智能科技有限公司 | 从axi总线到opb总线的数据写入方法及读取方法 |
CN113419869B (zh) * | 2021-08-25 | 2021-12-03 | 苏州浪潮智能科技有限公司 | 一种乱序数据的产生方法、装置、设备及存储介质 |
CN113961494B (zh) * | 2021-10-21 | 2023-09-15 | 上海安路信息科技股份有限公司 | 一种pcie总线与axi总线的桥接系统 |
CN113886310B (zh) | 2021-11-02 | 2024-08-06 | 上海兆芯集成电路股份有限公司 | 桥接模块、数据传输系统和数据传输方法 |
CN114020662B (zh) * | 2021-11-02 | 2024-07-16 | 上海兆芯集成电路股份有限公司 | 桥接模块、数据传输系统和数据传输方法 |
CN115794703B (zh) * | 2022-11-18 | 2024-04-09 | 电子科技大学 | 一种基于分段确认的互连裸芯包传输方法 |
CN116627857B (zh) * | 2023-05-25 | 2023-11-24 | 合芯科技有限公司 | 一种处理器核外缓存模型及模拟方法 |
CN117632820B (zh) * | 2024-01-22 | 2024-05-14 | 北京开源芯片研究院 | 请求处理方法、装置、总线桥、电子设备及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1184973A (zh) * | 1996-12-10 | 1998-06-17 | 国际商业机器公司 | 对主装置和辅助装置的数据总线授权的均衡方法和设备 |
CN1371061A (zh) * | 2001-02-22 | 2002-09-25 | 矽统科技股份有限公司 | 多总线管线化数据处理系统及提升其总线效能的方法 |
US6732198B1 (en) * | 2001-07-20 | 2004-05-04 | Lsi Logic Corporation | Methods and apparatus for saving and restoring scatter/gather list processing context in intelligent controllers |
CN1529472A (zh) * | 2003-10-13 | 2004-09-15 | 中国科学院计算技术研究所 | 高性能机群互联网络适配器 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5881253A (en) * | 1996-12-31 | 1999-03-09 | Compaq Computer Corporation | Computer system using posted memory write buffers in a bridge to implement system management mode |
US6668291B1 (en) * | 1998-09-09 | 2003-12-23 | Microsoft Corporation | Non-blocking concurrent queues with direct node access by threads |
US7047372B2 (en) * | 2003-04-15 | 2006-05-16 | Newisys, Inc. | Managing I/O accesses in multiprocessor systems |
US7174410B2 (en) * | 2003-04-17 | 2007-02-06 | International Business Machines Corporation | Method, apparatus and computer program product for write data transfer |
CN100538691C (zh) * | 2004-04-26 | 2009-09-09 | 皇家飞利浦电子股份有限公司 | 用于发出事务的集成电路、数据处理系统和方法 |
US7155554B2 (en) * | 2004-11-02 | 2006-12-26 | Sonics, Inc. | Methods and apparatuses for generating a single request for block transactions over a communication fabric |
US7802032B2 (en) * | 2006-11-13 | 2010-09-21 | International Business Machines Corporation | Concurrent, non-blocking, lock-free queue and method, apparatus, and computer program product for implementing same |
US7877524B1 (en) * | 2007-11-23 | 2011-01-25 | Pmc-Sierra Us, Inc. | Logical address direct memory access with multiple concurrent physical ports and internal switching |
-
2009
- 2009-08-31 CN CN2009101713880A patent/CN102004709B/zh not_active Expired - Fee Related
-
2010
- 2010-06-29 US US12/825,624 patent/US20110055439A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1184973A (zh) * | 1996-12-10 | 1998-06-17 | 国际商业机器公司 | 对主装置和辅助装置的数据总线授权的均衡方法和设备 |
CN1371061A (zh) * | 2001-02-22 | 2002-09-25 | 矽统科技股份有限公司 | 多总线管线化数据处理系统及提升其总线效能的方法 |
US6732198B1 (en) * | 2001-07-20 | 2004-05-04 | Lsi Logic Corporation | Methods and apparatus for saving and restoring scatter/gather list processing context in intelligent controllers |
CN1529472A (zh) * | 2003-10-13 | 2004-09-15 | 中国科学院计算技术研究所 | 高性能机群互联网络适配器 |
Also Published As
Publication number | Publication date |
---|---|
US20110055439A1 (en) | 2011-03-03 |
CN102004709A (zh) | 2011-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102004709B (zh) | 处理器局部总线到高级可扩展接口之间的总线桥及映射方法 | |
KR101815180B1 (ko) | 고성능 인터커넥트 코히어런스 프로토콜 | |
WO2023284169A1 (zh) | 从axi总线到opb总线的数据写入方法及读取方法 | |
US20070180310A1 (en) | Multi-core architecture with hardware messaging | |
CN105814537B (zh) | 可扩展输入/输出系统和技术 | |
JP2004171209A (ja) | 共有メモリデータ転送装置 | |
CN103714026B (zh) | 一种支持原址数据交换的存储器访问方法及装置 | |
EP1535169B1 (en) | Improved inter-processor communication system for communication between processors | |
CN111414325B (zh) | 一种Avalon总线转Axi4总线的方法 | |
JP2010134627A (ja) | バス中継装置 | |
CN107003944B (zh) | 跨分布式存储器的指针追踪 | |
US9811467B2 (en) | Method and an apparatus for pre-fetching and processing work for procesor cores in a network processor | |
CN114327975A (zh) | 片上系统 | |
JP2009301101A (ja) | プロセッサ間通信システム、プロセッサ、プロセッサ間通信方法、および、通信方法 | |
JP2002149591A (ja) | プロセッサ・ローカル・バス・システムでのバス最適化の方法および装置 | |
JP2006293927A (ja) | ダイレクトメモリアクセス制御装置及びダイレクトメモリアクセス制御装置を含むシステムlsi | |
JP3667585B2 (ja) | 分散メモリ型並列計算機及びそのデータ転送終了確認方法 | |
CN107113252A (zh) | 用于片上网络的并行方向解码电路 | |
US6678749B2 (en) | System and method for efficiently performing data transfer operations | |
JP6570046B2 (ja) | Dmaコントローラ、実現方法及びコンピュータ記憶媒体 | |
KR20150057520A (ko) | 인터럽트 방식으로 터치 정보를 전송하는 방법 및 장치 | |
CN109558076A (zh) | 一种可配置的虚拟spi-flash | |
JP6217386B2 (ja) | マルチプロセッサ用プログラム生成方法 | |
TWI783742B (zh) | 存取記憶體的電子裝置及資料寫入方法 | |
CN101727426B (zh) | 基于高速串行总线的计算机系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130925 Termination date: 20150831 |
|
EXPY | Termination of patent right or utility model |