处理器局部总线到高级可扩展接口之间的总线桥及映射方法

文档序号:6580259阅读:195来源:国知局
专利名称:处理器局部总线到高级可扩展接口之间的总线桥及映射方法
技术领域
本发明一般涉及数据处理方法和系统,具体涉及一种片上系统的处理器局部总线 (PLB)到高级可扩展接口(AXI)之间的总线桥及映射方法。
背景技术
随着半导体工艺技术的飞速发展,片上系统(System-on-a-chip,SoC)正逐渐成 为集成电路设计中的主流发展趋势。片上系统指的是在单个芯片上集成一个完整的系统, 对所有或部分必要的电子电路进行包分组的技术。所谓完整的系统一般包括中央处理器 (CPU)、存储器、以及外围电路等。片上系统可以提供增强的时钟频率,从而降低芯片的功 耗。片上系统技术通常应用于小型的,日益复杂的客户电子设备。例如,一个声音检测设 备的片上系统是在单个芯片上为所有用户提供包括音频接收端、模数转换器(ADC)、微处理 器、必要的存储器以及输入输出逻辑控制等设备。SoC芯片需要集成一个复杂的系统,这导致了它具有比较复杂的结构,如果是从头 开始完成芯片设计,显然将花费大量的人力物力。此外,现在电子产品的生命期正在不断缩 短,这要求芯片的设计必须在更短的周期内完成。为了加快SoC芯片设计的速度,集成电路 设计人员将已有的IC电路以模块的形式,在SoC芯片设计中调用,从而简化芯片的设计,缩 短设计时间,提高设计效率。这些可以被重复使用的IC模块就叫做IP模块(或者系统宏 单元、IP核、芯核、虚拟器件等)。IP模块是具有知识产权(Intellectual Property)的集 成电路芯核的简称,其作用是把一组拥有知识产权的电路设计集合在一起,构成芯片的基 本单位,以供设计时搭积木之用。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. O 办议中最重要的部分,是一种面向高性能、 高带宽、低延迟的片上总线。它的地址/控制和数据传输阶段是分离的,使用字节选通支持 不对齐的数据传输,只需要为突发传输提供首地址。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) 0因此,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),读数据先进先出存储器(RD FIFO)。优选地,PLB到AXI总线桥还包括缓存器控制 器,用于控制缓存器202的数据缓存,其功能之一包括判断缓存器202是否已满;如果已 满,等待该缓存器202有空闲的位置后再缓存所述读写请求;如果未满,缓存器202缓存接 收的读写请求。缓存器控制器可以控制着写请求先进先出存储器,读请求先进先出存储器, 甚至也可以控制写数据先进先出存储器以及读数据先进先出存储器。具体来说,如果接收 到写请求,缓存器控制器就判别写请求先进先出存储器是否已满,如果已满,就等待直到写 请求先进先出存储器有空间才做缓存操作;如果是写数据,缓存器控制器就判别写数据先 进先出存储器的空间是否已满,如果已满,也需要等待。实际中,写请求和写数据是同时准 备好的,当接收到写请求成功执行的确认后,就接收写数据。另外,写数据先进先出存储器 的空间也可以足够大,以便支持最大的PLB写突发传输。所有的PLB写事务被处理成缓存 写(buffered write),S卩,如果在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,Wl,W2,W3,Rl,R2以及R3请求。当接收到RO时,执行冲突检测,发现没有冲突, PLB到AXI总线桥处理RO读请求;当接收到W0,ffl, W2, W3时,PLB到AXI总线桥处理写操 作同时,将写操作地址存储到WARF中;当接收到Rl时,执行冲突检测,发现WO和Rl之间存 在冲突,当WO写请求成功执行的确认返回时,冲突被清除,PLB到AXI总线桥处理Rl读请 求。通过冲突检测,全部的PLB写数据可以采用缓存写的方式,不会出现写后读的冲突,可 以提高通信性能。虽然这里参照附图描述了本发明的示例性实施例,但是应该理解本发明不限于这 些精确的实施例,并且在不背离本发明的范围和宗旨的情况下,本领域普通技术人员能对 实施例进行各种变化的修改。所有这些变化和修改意欲包含在所附权利要求中限定的本发 明的范围中。并且根据上述描述,所属技术领域的技术人员知道,本发明可以体现为装置、方法 或计算机程序产品。因此,本发明可以具体实现为以下形式,即,可以是完全的硬件、完全的 软件(包括固件、驻留软件、微代码等)、或者本文一般称为“电路”、“模块”或“系统”的软 件部分与硬件部分的组合。此外,本发明还可以采取体现在任何有形的表达介质(medium of expression)中的计算机程序产品的形式,该介质中包含计算机可用的程序码。可以使用一个或多个计算机可用的或计算机可读的介质的任何组合。计算机可 用的或计算机可读的介质例如可以是——但不限于——电的、磁的、光的、电磁的、红外线 的、或半导体的系统、装置、器件或传播介质。计算机可读介质的更具体的例子(非穷举的 列表)包括以下有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器 (RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑磁 盘只读存储器(CD-ROM)、光存储器件、诸如支持因特网或内部网的传输介质、或者磁存储器 件。注意计算机可用的或计算机可读的介质甚至可以是上面印有程序的纸张或者其它合适 的介质,这是因为,例如可以通过电扫描这种纸张或其它介质,以电子方式获得程序,然后 以适当的方式加以编译、解释或处理,并且必要的话在计算机存储器中存储。在本文件的语 境中,计算机可用的或计算机可读的介质可以是任何含有、存储、传达、传播、或传输供指令 执行系统、装置或器件使用的或与指令执行系统、装置或器件相联系的程序的介质。计算机 可用的介质可包括在基带中或者作为载波一部分传播的、由其体现计算机可用的程序码的 数据信号。计算机可用的程序码可以用任何适当的介质传输,包括——但不限于——无线、 电线、光缆、RF等等。用于执行本发明的操作的计算机程序码,可以以一种或多种程序设计语言的任何 组合来编写,所述程序设计语言包括面向对象的程序设计语言——诸如Java、Smalltalk, C++之类,还包括常规的过程式程序设计语言——诸如” C”程序设计语言或类似的程序设计 语言。程序码可以完全地在用户的计算上执行、部分地在用户的计算机上执行、作为一个独 立的软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算 机或服务器上执行。在后一种情形中,远程计算机可以通过任何种类的网络——包括局域 网(LAN)或广域网(WAN)——连接到用户的计算机,或者,可以(例如利用因特网服务提供商来通过因特网)连接到外部计算机。此外,本发明的流程图和/或框图的每个方框以及流程图和/或框图中各方框的 组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计 算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得通过计算机或其它 可编程数据处理装置执行的这些指令,产生实现流程图和/或框图中的方框中规定的功能 /操作的装置(means)。也可以把这些计算机程序指令存储在能指令计算机或其它可编程数据处理装置 以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令产生一个包 括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means) 的制造品,也可以把计算机程序指令加载到计算机或其它可编程数据处理装置上,使得在计 算机或其它可编程数据处理装置上执行一系列操作步骤,以产生计算机实现的过程,从而 在计算机或其它可编程装置上执行的指令就提供实现流程图和/或框图中的方框中规定 的功能/操作的过程。附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程 序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代 表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个 用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所 标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际 上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要 注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以 用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机 指令的组合来实现。
权利要求
1.一种处理符合PLB总线协议的读写请求的方法,包括接收符合PLB总线协议的读写请求,而无需等待前一符合PLB总线协议的读写请求成 功执行的确认;缓存所述符合PLB总线协议的读写请求;将缓存的符合PLB总线协议的读写请求映射为符合AXI总线协议的读写请求;以及 输出所述映射的符合AXI总线协议的读写请求。
2.根据权利要求1所述的方法,其中所述缓存所述符合PLB总线协议的读写请求还包括判断用于缓存所述符合PLB总线协议的读写请求的缓存器是否已满;以及 如果已满,等待该缓存器有空闲的位置后再缓存所述读写请求。
3.根据权利要求1或2所述的方法,其中所述将缓存的符合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设备接口模块还用于输出所述读到 的数据以及该读请求成功执行的确认。
全文摘要
本发明公开了一种处理符合PLB总线协议的读写请求的方法和PLB总线到AXI总线之间的总线桥,该方法包括接收符合PLB总线协议的读写请求,而无需等待前一符合PLB总线协议的读写请求成功执行的确认;缓存所述符合PLB总线协议的读写请求;将缓存的符合PLB总线协议的读写请求映射为符合AXI总线协议的读写请求;输出所述映射的符合AXI总线协议的读写请求。该方法和总线桥能够使符合PLB总线协议和AXI总线协议的IP模块相互通信,并在通信期间执行事务映射,确保所有的事务按照PLB设备期望的顺序执行,提高片上系统通信的效率。
文档编号G06F13/40GK102004709SQ200910171388
公开日2011年4月6日 申请日期2009年8月31日 优先权日2009年8月31日
发明者杨浩, 王宏伟, 陆泳, 陈亮 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1