CN101604302A - 高级外围总线桥及其控制方法 - Google Patents
高级外围总线桥及其控制方法 Download PDFInfo
- Publication number
- CN101604302A CN101604302A CNA2009101597748A CN200910159774A CN101604302A CN 101604302 A CN101604302 A CN 101604302A CN A2009101597748 A CNA2009101597748 A CN A2009101597748A CN 200910159774 A CN200910159774 A CN 200910159774A CN 101604302 A CN101604302 A CN 101604302A
- Authority
- CN
- China
- Prior art keywords
- request
- apb
- ahb
- main equipment
- bus
- 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
Images
Classifications
-
- 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
本发明提供了一种APB桥及其控制方法以及APB总线时钟控制方法。该APB桥包括:AHB总线接口,其连接到高级高性能总线AHB总线以便与AHB主设备通信;仲裁控制单元,与所述AHB总线接口连接,用于通过所述AHB总线接口接收由所述AHB主设备发送的请求,并判断该请求能否被执行,当该请求可被执行时,向所述AHB主设备发送第一响应,使得释放所述AHB主设备对AHB总线的使用权;以及APB总线接口,与该仲裁控制单元连接,并连接到APB总线以便与APB总线上的APB从设备通信。所述APB桥及其控制方法缩短了执行单个请求的时间,提高了系统性能;而时钟控制方法根据对于APB总线的待执行请求的数目而控制该APB总线的时钟频率,可降低系统的功耗。
Description
技术领域
本发明涉及一种高级外围总线(Advanced Peripheral Bus,APB)桥及其控制方法,具体而言,涉及一种可缩短高级高性能总线(Advanced Highperformance Bus,AHB)主设备请求的执行时间,降低APB总线时钟频率的APB桥及其控制方法。
背景技术
在片上系统(SOC)设计中,片上总线设计是关键问题之一。目前,已经提出了多种片上总线标准,例如由ARM公司推出的AMBA(AdvancedMicrocontroller Bus Architecture)片上总线标准。AMBA片上总线系统包括高级高性能总线(Advanced High Performance Bus,AHB)和高级外围总线(Advanced Peripheral Bus,APB),AHB总线用于诸如CPU等的高速设备的互连,APB总线用于诸如存储器等的低速设备的互连,APB桥(Bridge)连接在AHB总线和APB总线之间,一般用于提供AHB主设备(master device)和APB从设备(slave device)之间的访问代理。
图1示意性地示出了AMBA片上总线系统的局部架构。如图1所示,APB桥10连接在AHB总线和APB总线之间,在AHB总线上充当AHB从设备,并且在APB总线上充当APB主设备。传统上,APB桥10简单地将来自AHB主设备21的请求/命令/写入数据转发给对应的APB从设备23,并且将来自对应的APB从设备23的响应/读出数据转发给AHB主设备21。在当前的AMBA协议中,当AHB主设备21访问AHB总线上的AHB从设备22时,AHB主设备21仅需占用AHB总线一个时钟周期来执行向AHB从设备22发出单个AHB请求/命令。但当AHB主设备21通过APB桥访问APB总线上对应的APB从设备23时,根据APB协议本身的规定,AHB主设备21需要占用AHB总线两个时钟周期来执行通过APB桥向对应的APB从设备23发出单个AHB请求/命令。因此,传统的APB桥10并不是一个“真正的”AHB从设备。另外,由于目前APB桥10的单纯设计,无论是否存在对于APB从设备23的请求,APB总线都始终以与AHB总线相同的时钟频率工作,也就是说,APB总线也工作在较高的时钟频率。而实际挂在APB总线上的APB从设备23通常是工作在低频的设备,因此对于整个总线系统而言,APB总线始终工作在高频是一种资源的浪费,不但使得系统的功耗高于预期功耗,也降低了系统的性能。
因此,需要一种改进的APB桥及其控制方法,以提高系统的整体效能。
发明内容
鉴于以上问题而提出了本发明。本发明的一个目的是提供一种APB桥和APB桥的控制方法,其能够缩短执行单个AHB请求/命令所需的时间,从而提高系统效率。本发明的另一个目的是提供一种由APB桥执行的APB总线时钟控制方法,其能够根据对APB从设备的请求的数目而控制相应的APB总线的时钟,从而改善系统功耗。
根据本发明的一个方面,提供了一种APB桥,包括:AHB总线接口,其连接到AHB总线以便与AHB主设备通信;仲裁控制单元,与所述AHB总线接口连接,用于通过所述AHB总线接口接收由所述AHB主设备发送的请求,并判断该请求能否被执行,当该请求可被执行时,向所述AHB主设备发送第一响应,使得释放所述AHB主设备对AHB总线的使用权;以及APB总线接口,与该仲裁控制单元连接,并连接到APB总线以便与APB总线上的APB从设备通信。
根据本发明的另一方面,提供了一种APB桥的控制方法,所述APB桥连接在AHB总线和APB总线之间,所述方法包括:经由AHB总线接收从AHB主设备发送的请求;确定该请求是否能够被执行;以及当该请求能够被执行时,向AHB主设备发送第一响应,使得释放AHB主设备对AHB总线的使用权。
根据本发明的另一方面,提供了一种由APB桥执行的APB总线时钟控制方法,所述APB桥在确定由AHB总线上的AHB主设备向APB总线上的APB从设备第一次发送的请求能够被执行时,向所述AHB主设备发送第一响应,使得释放所述AHB主设备对AHB总线的使用权,并且在确定所述请求不能被执行时,将该请求存储在APB桥的存储器中,所述时钟控制方法包括:检查存储器中对于APB从设备的请求的数目;以及当所述数目低于第一阈值时,降低APB总线的时钟频率。
如上所述,当确定从AHB主设备第一次发送的请求能够被执行时,根据本发明上述方面的APB桥及其控制方法向该AHB主设备发送OK响应。尽管此时尚未真正地对目的地APB从设备执行所述请求,但是接收到该OK响应的AHB主设备仍然可以立即结束当前事务(transaction)并且放弃对AHB总线的使用权,使得该使用权能够被赋予其它AHB主设备,而不必像传统技术那样对目的地APB从设备执行了所述请求之后才结束当前事务并且放弃对AHB总线的使用权,因而减小了执行单个请求所需的时间,提高了AHB总线的使用效率。此外,由于在对APB从设备的请求的数目低于某一阈值时降低APB总线的时钟频率,因此根据本发明上述方面的APB总线时钟控制方法能够降低系统功耗。
附图说明
通过结合附图对本发明的实施例进行详细描述,本发明的上述和其它目的、特征、优点将会变得更加清楚,其中:
图1示意性地示出了AMBA片上总线系统的局部架构;
图2是示出根据本发明实施例的APB桥的框图;
图3是示出根据本发明实施例的APB桥的控制方法的流程图;
图4A和图4B是示出根据本发明实施例的APB桥的控制方法的一种示例实现方式的流程图;
图5是用于说明根据本发明实施例的后期写入(POST-WRITE)机制的时序图;
图6是用于说明根据本发明实施例的暂停-继续(SPLIT-UNSPLIT)机制的示意图。
图7是用于说明根据本发明实施例的SPLIT-UNSPLIT机制的时序图。
图8是示出图2所示的APB桥的一种变型的框图。
具体实施方式
下面将参照附图来描述根据本发明的实施例。在附图中,相同的参考标号自始至终表示相同的元件。应当理解:这里描述的实施例仅仅是说明性的,而不应被解释为限制本发明的范围。此外,在下文中使用针对“请求”描述了本发明的实施例,但是应当认识到,“命令”也同样适用于本发明。
本发明将POST-WRITE机制和SPLIT-UNSPLIT机制引入APB桥,以便缩短执行单个请求所需的时间并且提高系统效率。
首先,参照图2来描述根据本发明实施例的APB桥。图2示出了根据本发明实施例的APB桥的框图。如图2所示,根据本发明实施例的APB桥100包括:AHB总线接口101、APB桥寄存器102、业务仲裁和控制模块103、APB0接口104、APB1接口105。
AHB总线接口101连接到AHB总线,使得APB桥能够通过AHB总线接口101与AHB总线上的AHB主设备201通信。APB桥寄存器102存储用于配置APB桥100的内部工作机制所必需的程序等。APB0接口104和APB1接口105分别连接到APB总线0和APB总线1,使得APB桥100能够分别通过这两个接口与APB总线0和APB总线1上的APB从设备203、204通信。应当注意,图2所示的AHB主设备201和APB从设备203、204的数目是示例性的,实际上,可以有更多数目的AHB主设备201和APB从设备203、204。
业务仲裁和控制模块103包括仲裁控制单元1031、普通请求队列存储器1032、第一处理队列缓冲器1033、第二处理队列缓冲器1034、锁定请求队列缓冲器1035、以及主设备ID寄存器1036。这些存储器、缓冲器和寄存器可以位于一个或多个物理存储设备中。
本发明将POST-WRITE机制和SPLIT-UNSPLIT机制应用于仲裁控制单元1031。简单地说,POST-WRITE机制,是对于从AHB主设备201发送的写入请求,仲裁控制单元1031确定其是否能够被执行,若能够被执行,则将该写入请求要写入的数据存储在APB桥100的对应存储器中,并且向AHB主设备201发送OK响应,使得接收到该OK响应的AHB主设备201结束当前事务(Transaction)并且放弃对AHB总线的使用权,而APB桥100会在以后将存储器中的要写入的数据写入到对应的APB从设备203或204中,如此一来,对于AHB主设备201而言,其在接收到OK响应时就放弃对AHB总线的占用,而不必如传统技术那样,必须等到APB桥100将要写入的数据实际写入到APB从设备203或204中,才放弃对AHB总线的占用,因而将POST-WRITE机制应用于APB桥提高了对AHB主设备201发出的写入请求的处理效率。另一方面,SPLIT-UNSPLIT机制,是对于仲裁控制单元1031确定暂时不能被执行的请求(写入请求/读出请求),仲裁控制单元1031向AHB主设备201发送SPLIT响应以使其暂时放弃对AHB总线的使用权,然后在该请求能够被执行时向该AHB主设备201发送UNSPLIT响应以使其重发所述请求,进而执行所述请求,因此,将SPLIT-UNSPLIT机制应用到APB桥100,提高了对暂时不能执行的请求的处理效率,优化了对AHB总线使用权的分配。稍后将结合根据本发明实施例的APB桥的控制方法来详细描述仲裁控制单元1031的操作。
普通请求队列存储器1032用于存储由仲裁控制单元1031确定的暂时不能被执行的、由AHB主设备201发出的请求(即,待执行请求)。如本领域公知的,在发送所述AHB请求时,可以给每个AHB请求分配优先级。因此,在普通请求队列存储器1032中可以存储具有不同优先级的AHB请求。
锁定请求队列缓冲器1035用于存储当前正在对APB总线0或APB总线1上的APB从设备203或204执行的、由AHB主设备201发送的锁定请求及相关联的数据。如本领域公知的,AHB主设备201(例如,CPU)可以发送带有锁定信号的请求(即,锁定请求),以锁定对AHB总线的使用权来处理该请求。当APB桥100接收到锁定请求时,如果仲裁控制单元1031确定该锁定请求能够被执行,则仲裁控制单元1031将该锁定请求存储在锁定请求队列缓冲器1035中以供执行。锁定请求包括锁定读出请求和锁定写入请求。当执行锁定读出请求时,锁定请求队列缓冲器1035还可以存储根据该锁定读出请求而从目的地APB从设备203或204读取的数据;当执行锁定写入请求时,锁定请求队列缓冲器1035还可以存储该锁定写入请求要写入目的地APB从设备203或204的数据。
第一处理队列缓冲器1033和第二处理队列缓冲器1034用于存储当前正在对APB总线0或APB总线1上的APB从设备203或204执行的普通请求(即,非锁定请求)。当该请求是普通读出请求时,第一处理队列缓冲器1033和第二处理队列缓冲器1034还可以存储通过执行该普通读出请求而从目的地APB从设备203或204读取的数据,当该请求是普通写入请求时,第一处理队列缓冲器1033和第二处理队列缓冲器1034还可以存储该普通写入请求要写入目的地APB从设备203或204的数据。
优选地,第一处理队列缓冲器1033、第二处理队列缓冲器1034以及锁定请求队列缓冲器1035中的每个缓冲器一次仅存储一个请求和相关联的数据。然而,每个缓冲器也可以一次存储多个请求和相关联的数据。
此外,为了控制APB总线的时钟频率,APB桥100还可以包括时钟控制单元106,其可以根据存储在普通请求队列存储器1032中的对于各APB从设备203或204的待执行请求的数目而控制相应的APB总线0或APB总线1的时钟频率。具体地,时钟控制单元106可以定期或不定期地检查普通请求队列存储器1032中对于各条APB总线(APB总线0/APB总线1)上的APB从设备203或204的待执行请求的数目。当对于APB总线0上的APB从设备203的请求的数目低于第一阈值时,时钟控制单元106可以降低APB总线0的时钟频率;当对于APB总线1上的APB从设备204的请求的数目低于第二阈值时,时钟控制单元106可以降低APB总线1的时钟频率;当所述数目为0时,时钟控制单元106可以关闭相应的APB总线(APB总线0/APB总线1)的时钟。此外,当对于APB总线0上的APB从设备203的请求的数目高于第三阈值时,时钟控制单元106可以提高APB总线0的时钟频率;当对于APB总线1上的APB从设备204的请求的数目高于第四阈值时,时钟控制单元106可以提高APB总线1的时钟频率。第一至第四阈值可以根据需要适当地确定,其中,第一阈值和第二阈值可以相同或不同,第三阈值和第四阈值可以相同或不同,但是第一阈值和第二阈值分别应当小于第三阈值和第四阈值。此外,降低各条APB总线时钟频率的幅度也可以根据需要选择,因此各条APB总线能够以不同的时钟频率工作。由此,通过在对于APB总线的待执行请求的数目较小或者为0时,降低APB总线的时钟频率或关闭该APB总线的时钟,可以减小系统功耗;通过在所述请求的数目较大时提高APB总线的时钟频率,可以提高对于请求的处理速度。
下面,将参照图2和图3来描述仲裁控制单元1031的操作。图3是示出根据本发明实施例的APB桥的控制方法的流程图。如图3所示,在步骤S301,仲裁控制单元1031检查是否从AHB主设备(假设为AHB主设备201)接收到AHB请求。如果没有,则仲裁控制单元1031返回步骤S301。如果接收到AHB请求,则在步骤S302,仲裁控制单元1031确定该请求是否第一次被发送。如下文所述,在SPLIT-UNSPLIT机制中,当一个请求不能被执行时,可以将该请求或者与该请求有关的信息(例如,发送该请求的AHB主设备ID、该请求的目的地APB从设备ID等)存储在普通请求队列存储器或锁定请求队列缓冲器中。因此,当接收到一个请求时,可以通过将该请求或其相关信息与存储在普通请求队列存储器或锁定请求队列缓冲器中的请求或信息进行比较来确定该请求是否是第一次被发送的请求。
如果在步骤S302确定所接收的请求是第一次被发送的请求,则在步骤S303,仲裁控制单元1031确定当前该请求是否能够被执行。如果该请求能够被执行,则在步骤S304,仲裁控制单元1031向AHB主设备201和AHB仲裁器200发送OK响应以释放该AHB设备201对AHB总线的使用权。对于第一次被发送的请求,如果其能够被执行,则该请求必然是写入请求,并且此时至少一个处理队列缓冲器(普通写入请求的情况)或锁定请求队列缓冲器(锁定写入请求的情况)是空的;因此,仲裁控制单元1031在发送OK响应的同时还根据写入请求的类型而将该写入请求要写入的数据存储在所述空缓冲器中。当AHB主设备201接收到OK响应时,其结束当前事务并且放弃对AHB总线的使用权,AHB仲裁器200将该使用权赋予其它请求使用AHB总线的AHB主设备。对于写入请求,在发送了OK响应之后,仲裁控制单元1031在目的地APB总线空闲时将要写入的数据写入目的地APB从设备,然后从缓冲器中清除该数据。
另一方面,如果所述请求不能被执行,则在步骤S305,仲裁控制单元1031向AHB主设备201和AHB仲裁器200发送SPLIT响应以便暂时释放该AHB主设备201对AHB总线的使用权,并且根据该请求的类型而将该请求或者与该请求有关的信息存储在普通请求队列存储器1032或锁定请求队列缓冲器1035中。接收到该SPLIT响应的AHB主设备201获知自己先前发送的请求当前不能被执行,因此暂时停止发送该请求并且放弃对AHB总线的使用权,接收到该SPLIT响应的AHB仲裁器200将该使用权赋予其它请求使用AHB总线的AHB主设备。接下来,在步骤S306,仲裁控制单元1031确定所述请求是否能够被执行。如果仍然不能执行,则仲裁控制单元1031返回步骤S306。反之,如果所述请求能够被执行,则在步骤S307,仲裁控制单元1031向AHB主设备201和AHB仲裁器200发送UNSPLIT响应以便通知该AHB主设备重发其先前发送的请求。应当注意,当所述请求是读出请求时,在步骤S307,仲裁控制单元1031还执行该读出请求以将其要读取的数据读入处理队列缓冲器或锁定请求队列缓冲器中。响应于该UNSPLIT响应,AHB仲裁器200将对AHB总线的使用权重新赋予AHB主设备201,并且AHB主设备201经由AHB总线而向APB桥100重发所述请求。
另一方面,当在步骤S302确定所述请求不是第一次被发送的请求时,所述请求必然是由AHB主设备重发的请求,根据对步骤S306的描述可知,此时该请求是能够被执行的。因此,仲裁控制单元1031进行到步骤S304并且向AHB主设备201和AHB仲裁器200发送OK响应。不是第一次被发送的请求可以是读出请求或写入请求。对于读出请求,仲裁控制单元1031还将为其读取的数据与OK响应一起发送给AHB主设备201;相应地,在接收到该OK响应时,该AHB主设备201接收所述数据,在接收完成之后结束当前事务并放弃对AHB总线的使用权,并且AHB仲裁器200将该使用权赋予其它AHB主设备。对于写入请求,除了发送OK响应以外,仲裁控制单元1031还根据该请求的类型而将该请求要写入的数据存储到可用的处理队列缓冲器或锁定请求队列缓冲器中,然后在目的地总线空闲时将该数据写入目的地APB从设备;而该AHB主设备201在接收到OK响应时结束当前事务并放弃对AHB总线的使用权,并且AHB仲裁器200将该使用权赋予其它AHB主设备。
可以看到,在本发明的实施例中,对于由AHB主设备201第一次发送且能够被执行的写入请求,APB桥100并没有像传统技术中那样将要写入的数据写入目的地APB从设备203或204之后才通知AHB主设备201结束当前事务,而是采用了POST-WRITE机制,即,在接收到要写入的数据时就向AHB主设备201发送OK响应以通知其结束当前事务并且释放对AHB总线的使用权,然后再伺机将所述数据写入目的地APB从设备203或204,使得可以将执行单个写入请求的时间从两个时钟周期缩短为一个时钟周期,提高了AHB总线的使用效率。
此外,对于不能被执行的请求,APB桥100采用了SPLIT-UNSPLIT机制,即,在该请求不能被执行时向AHB主设备201发送SPLIT响应,然后在该请求变得能够执行时向AHB主设备201发送UNSPLIT响应,使得所发送的请求不能被执行的AHB主设备201暂时将对AHB总线的使用权让给其它AHB主设备,从而进一步提高了AHB总线的使用效率。
下面,将参照图4A和图4B来描述根据本发明实施例的APB桥的控制方法的一种示例实现方式。
首先参照图4A,在步骤S401,仲裁控制单元1031检查是否从AHB主设备(假设为AHB主设备201)接收到AHB请求。如果没有接收到AHB请求,则仲裁控制单元1031返回步骤S401。反之,如果接收到AHB请求,则在步骤S402,仲裁控制单元1031确定该请求是否是锁定请求。
如果在步骤S402确定该请求是锁定请求(即,锁定读出请求或锁定写入请求),则转到图4B,在步骤S403,仲裁控制单元1031确定该锁定请求是否第一次被发送,即,确定该锁定请求是否先前已经被发送过一次。如上文所述,仲裁控制单元1031可以通过将所接收的请求或其相关信息与存储在锁定请求队列缓冲器1035中的锁定请求或相关信息进行比较来确定该锁定请求是否是第一次被发送的锁定请求。
如果在步骤S403确定所述锁定请求先前已经被发送过一次,这说明使先前发送的相同锁定请求不能执行的障碍已经消除,当前接收的锁定请求是AHB主设备201接收到UNSPLIT响应之后重发的请求。根据下面所述可知,该重发的锁定请求必然是锁定读出请求,并且此时该锁定读出请求要读取的数据已经被存储在锁定请求队列缓冲器1035中。因此,在步骤S404,仲裁控制单元1031读取存储在锁定请求队列缓冲器1035中的数据,并且将OK响应和所读取的数据一起发送给AHB主设备201以及AHB仲裁器200,然后结束当前事务。该OK响应向AHB主设备201通知已经读取到其请求的数据,因此在接收到OK响应时,AHB主设备201接收与该OK响应一起发送的数据。当接收完成时,AHB主设备201结束当前事务,放弃对AHB总线的使用权,使得AHB仲裁器200能够将该使用权赋予其它请求使用AHB总线的AHB主设备。
如果在步骤S403确定所接收的锁定请求是第一次被发送的请求,则在步骤S405,仲裁控制单元1031确定锁定请求队列缓冲器1035是否为空。由于如上所述锁定请求队列缓冲器1035优选地一次仅存储一个锁定请求和相关联的数据,因此如果在步骤S405确定锁定请求队列缓冲器1035不为空,则这说明在锁定请求队列缓冲器1035中已经存在一个正在执行的锁定请求和与其相关联的数据,因而当前接收的锁定请求不能被执行。因此,在步骤S406,仲裁控制单元1031向AHB主设备201和AHB仲裁器200发送SPLIT响应,并且将发送该锁定请求的AHB主设备201的ID存储在主设备ID寄存器1036中。接收到该SPLIT响应的AHB主设备201获知其发出的锁定请求不能被执行,因此暂时放弃对AHB总线的使用权,使得AHB仲裁器200能够将该使用权赋予其它AHB主设备。接下来,在步骤S407,仲裁控制单元1031检查锁定请求队列缓冲器1035是否为空。如果答案为否,则仲裁控制单元1031返回步骤S407。反之,如果在步骤S407发现锁定请求队列缓冲器1035为空,则在步骤S408,仲裁控制单元1031根据主设备ID寄存器1036存储的AHB主设备201的ID向AHB主设备201和AHB仲裁器200发送UNSPLIT响应,以通知AHB主设备201重发所述锁定请求。AHB仲裁器200基于该UNSPLIT响应而将对AHB总线的使用权赋予AHB主设备201,并且AHB主设备201经由AHB总线而向APB桥100重发其先前发送的锁定请求。APB桥100接收到该重发的请求之后,将执行前述步骤S403和S404。应当注意,这里响应于步骤S408处的UNSPLIT响应而重发的请求在步骤S403不会被确定为非首次发送的请求,这是因为对于所接收的锁定请求,仲裁控制单元1031仅将存储在锁定请求队列缓冲器1035中的内容与该锁定请求进行比较,而与响应于步骤S408处的UNSPLIT响应而重发的请求相对应的先前发送的请求的信息(即,主设备201的ID)是存储在主设备ID寄存器1036中的。
另一方面,如果在步骤S405确定锁定请求队列缓冲器1035为空,则在步骤S409,仲裁控制单元1031确定所接收的锁定请求是否是锁定写入请求。如果该锁定请求是锁定读出请求(步骤S409处的否),则由于此时锁定请求队列缓冲器1035为空,即要读取的数据不存在,因此该锁定读出请求不能被执行,因而,在步骤S410,仲裁控制单元1031向AHB主设备201和AHB仲裁器200发送SPLIT响应,并且将该锁定读出请求存储在锁定请求队列缓冲器1035中。接下来,在步骤S411,仲裁控制单元1031根据包含在该锁定读出请求中的目的地APB从设备203或204的地址确定该目的地APB从设备所对应的APB总线(APB总线0或APB总线1)是否空闲。如果答案为否,则仲裁控制单元1031返回步骤S411。反之,如果目的地APB总线空闲,则仲裁控制单元1031根据所述地址而从目的地APB从设备203或204中读取所述锁定读出请求要读取的数据,并且将该数据存储到锁定请求队列缓冲器1035中。然后,在步骤S413,仲裁控制单元1031向AHB主设备201和AHB仲裁器200发送UNSPLIT响应。响应于该UNSPLIT响应,AHB仲裁器200将对AHB总线的使用权赋予AHB主设备201,并且AHB主设备201重发所述锁定读出请求。当接收到该重发的锁定读出请求时,APB桥100(具体地,仲裁控制单元1031)执行前述步骤S403和S404,从而将所读取的数据发送给AHB主设备201并且结束当前事务。
然而,如果在步骤S409确定所述锁定请求为锁定写入请求,则在步骤S414,仲裁控制单元1031将该锁定写入请求要写入目的地APB从设备203或204的数据存储在锁定请求队列缓冲器1035中,并且向AHB主设备201和AHB仲裁器200发送OK响应。接收到该OK响应的AHB主设备201结束当前事务,并且放弃对AHB总线的使用权,AHB仲裁器将该使用权赋予其它AHB主设备。接下来,在步骤S415,仲裁控制单元1031检查目的地APB从设备所对应的APB总线是否空闲。如果对应的APB总线不空闲,则仲裁控制单元1031返回步骤S415。反之,如果对应的APB总线空闲,则仲裁控制单元1031经由该目的地APB总线而将存储在锁定请求队列缓冲器1035中的数据写入目的地APB从设备。
回到图4A,当在步骤S402确定所接收的请求不是锁定请求而是普通请求时,在步骤S417,仲裁控制单元1031确定该普通请求是否第一次被发送。如果该普通请求是第一次被发送,则在步骤S418,仲裁控制单元1031确定是否第一处理队列缓冲器1033和第二处理队列缓冲器1034中的至少一个为空并且普通请求队列存储器1032为空。如果是这样,则在步骤S419,仲裁控制单元1031确定该请求是否是普通写入请求。如果该请求是普通读出请求,则由于此时在第一和第二处理队列缓冲器1033和1034中不存在要读取的数据,因此该普通读出请求不能被执行。相应地,在步骤S420,仲裁控制单元1031将该普通读出请求保存在第一或第二处理队列缓冲器1033和1034中的空缓冲器中,并且经由AHB总线向AHB主设备201和AHB仲裁器200发送SPLIT响应。如上所述,接收到SPLIT响应之后,AHB主设备201暂时放弃对AHB总线的使用权,AHB仲裁器200将该使用权赋予其它AHB主设备。接下来,在步骤S421,仲裁控制单元1031根据包含在该普通读出请求中的目的地APB从设备的地址确定该目的地APB从设备所对应的APB总线是否空闲。如果对应的APB总线不空闲,则仲裁控制单元1031返回步骤S421。反之,如果对应的APB总线空闲,则在步骤S422,仲裁控制单元1031经由该APB总线从目的地APB从设备读取所请求的数据,并且将该数据存储在保存所述请求的处理队列缓冲器中。然后,在步骤S423,仲裁控制单元1031向AHB主设备201和AHB仲裁器200发送UNSPLIT响应。根据该UNSPLIT响应,AHB仲裁器200将对AHB总线的使用权重新赋予AHB主设备201,并且AHB主设备201重发先前发送的普通读出请求。当接收到重发的普通读出请求时,APB桥100重新执行图4A所示的流程。
另一方面,如果在步骤S419确定所述请求为普通写入请求,则在步骤S424,仲裁控制单元1031将该写入请求要写入的数据存储到第一和第二处理队列缓冲器1033和1034中的空缓冲器中,并且经由AHB总线将OK响应发送给AHB主设备201和AHB仲裁器200。接收到该OK响应的AHB主设备201结束当前事务,并且放弃对AHB总线的使用权,AHB仲裁器200将该使用权赋予其它AHB主设备。接下来,在步骤S425中,仲裁控制单元1031根据该普通写入请求中的目的地APB从设备的地址确定对应的APB总线是否空闲。如果对应的APB总线处于忙碌状态,则仲裁控制单元1031返回步骤S425。反之,如果对应的APB总线空闲,则在步骤S426,仲裁控制单元131将存储在所述空缓冲器中的数据写入目的地APB从设备。
另一方面,如果在步骤S418得到的答案为否,则在步骤S427,仲裁控制单元1031确定是否至少一个处理队列缓冲器为空且普通请求队列存储器1032不为空。如果是这样,则此时需要选择一个接下来要执行的请求并且将其置于该空缓冲器中以供执行,因此,在步骤S428,仲裁控制单元1031将所接收的新请求的优先级与存储在普通请求队列存储器1032中的待执行请求的优先级进行比较以确定所接收的请求的优先级是否最高。如果该新请求的优先级最高,则仲裁控制单元1031进行到步骤S419,并且按照上面所述执行步骤S419以及其后的步骤。反之,如果在步骤428确定所接收的新请求的优先级不是最高的,或者如果在步骤S427的确定结果为否,则在步骤S429,仲裁控制单元1031确定普通请求队列存储器1032是否已满,即,确定普通请求队列存储器1032是否充满了待执行请求。如果在步骤S429确定普通请求队列存储器1032未满,则在步骤S430,仲裁控制单元1031将当前接收的请求存储在普通请求队列存储器1032中,并且向AHB主设备201和AHB仲裁器200发送SPLIT响应。
应当注意,在APB桥100工作期间,除了图4A和图4B所示的操作以外,仲裁控制单元1031还执行以下操作,即:当第一和第二处理队列缓冲器1033和1034之一中的请求执行完毕时,该缓冲器被清空,并且仲裁控制单元1031从请求队列缓冲器1032中选择一个待执行请求并且将所述请求移动到空的处理队列缓冲器中以供执行。这一选择过程就是所谓的“仲裁”。根据本发明的实施例的仲裁采用了循环(round robin)机制。具体地说,如果第一或第二处理队列缓冲器之一为空,为了便于说明,假设第一处理队列缓冲器1033为空,则仲裁控制单元1031在普通请求队列存储器1032中搜索优先级最高的待执行请求,并且判断该请求是否指向与第二处理队列缓冲器1034中正在执行的请求相同的目的地APB总线。如果不是,则仲裁控制单元1031将该请求从普通请求队列存储器1032移动到第一处理队列缓冲器1033以供执行,并且从普通请求队列存储器1032中清除该请求,即,该请求赢得仲裁,从而能够被执行。反之,如果该请求指向与第二处理队列缓冲器1034中正在执行的请求相同的目的地APB总线,这意味着目的地APB总线正处于忙碌状态,因此,仲裁控制单元1031放弃先前选择的待执行请求,并且从普通请求队列存储器1032中选择具有第二高优先级的请求,并且重复上述判断过程,直到找到指向与第二处理队列缓冲器1034中正在执行的请求不同的APB总线的待执行请求为止。然而,如果普通请求队列存储器1032中的所有待执行请求均指向与第二处理队列缓冲器1034中正在执行的请求相同的目的地APB总线,则仲裁控制单元1031不选择普通请求队列存储器1032中的待执行请求,而是等待来自AHB主设备201的新请求,直到发现指向与第二处理队列缓冲器1034中正在执行的请求不同的APB总线的待执行请求为止。在两个处理队列缓冲器同时变空的情况下,仲裁控制单元1031只需将具有最高优先级的待执行请求移动到一个空缓冲器中,然后通过上述过程选择第二个待执行请求并且将其移动到另一个空缓冲器中即可。
在步骤S431,仲裁控制单元1031判断在步骤S430存储的请求是否赢得了仲裁。如果该请求没有赢得仲裁,则仲裁控制单元1031返回步骤S431。如果所述请求赢得了仲裁,则在步骤S432,仲裁控制单元1031确定该请求是否是普通写入请求。如果该请求不是普通写入请求而是普通读出请求(步骤S432处的否),则仲裁控制单元1031返回步骤S421,并且如上面所述地执行步骤S421及后续步骤。另一方面,如果所述请求是普通写入请求(步骤S432处的是),则在步骤S433,仲裁控制单元1031向AHB主设备201和AHB仲裁器200发送UNSPLIT响应。基于该UNSPLIT响应,AHB仲裁器200将对AHB总线的使用权重新赋予AHB主设备201,AHB主设备201重发其先前发送的写入请求。接收到该重发的写入请求之后,仲裁控制单元1031将执行稍后描述的步骤S437等。
另一方面,如果在步骤S429确定普通请求队列存储器1032已满,则在步骤S434,仲裁控制单元1031向AHB主设备201和AHB仲裁器200发送SPLIT响应,并且将AHB主设备201的ID记录在主设备ID寄存器1036中。同样,AHB仲裁器200将根据该SPLIT响应而将对AHB总线的使用权赋予其它AHB主设备。接下来,在步骤S435,仲裁控制单元1031检查普通请求队列存储器1032是否未满。如果普通请求队列存储器1032仍然是满的,则仲裁控制单元1031返回步骤S435。反之,如果在步骤S435发现普通请求队列存储器1032未满,则仲裁控制单元1031根据存储在主设备ID寄存器中的AHB主设备201的ID而向AHB主设备201和AHB仲裁器200发送UNSPLIT响应以通知AHB主设备201重发先前发送的请求,并且清除主设备ID寄存器中的相应记录。应当注意,响应于在步骤S436处发送的UNSPLIT响应而重发的请求在步骤S417也不会被确定为非首次发送的请求,这是因为对于所接收的普通请求,仲裁控制单元1031仅将存储在普通请求队列存储器1032中的内容与该请求进行比较,而与响应于在步骤S436处发送的UNSPLIT响应而重发的请求相对应的先前发送的请求的信息(主设备201的ID)是存储在主设备ID寄存器1036中的。
回到步骤S417,如果在步骤S417确定所接收的请求不是第一次被发送,这说明所接收的请求是AHB主设备201响应于UNSPLIT响应而发送的,则在步骤S437,仲裁控制单元1031确定该请求是否是写入请求。如果该请求是读出请求,则在步骤S438,仲裁控制单元1031将OK响应与已经如上文所述被预先读取和存储在第一或第二处理队列缓冲器中的、该请求要读取的数据一起发送给AHB主设备201。该OK响应还被发送给AHB仲裁器200。当接收到OK响应以及所述数据之后,AHB主设备201结束当前事务,并且放弃对AHB总线的使用权,AHB仲裁器200将该使用权赋予其它AHB设备。反之,如果所述请求是写入请求,则仲裁控制单元1031返回步骤S424,并且按照上面所述执行步骤S424及后续步骤。
如上所述,通过对写入请求应用POST-WRITE机制,可以缩短执行单个写入请求所需的时钟周期数,使得根据本发明实施例的APB桥像真正的AHB从设备一样工作,提高了系统性能。此外,通过对当前不能执行的请求应用SPLIT-UNSPLIT机制,使得所发送的请求当前不能被执行的AHB主设备将总线使用权暂时让给其它AHB主设备,提高了AHB总线的使用效率。
应当认识到,除了图4A和图4B所示的步骤以外,根据本发明实施例的APB桥的控制方法还可以包括在上文中针对时钟控制单元106描述的时钟控制步骤,即,仲裁控制单元1031根据普通请求队列存储器1032中对于各总线的待执行请求的数目而控制相应APB总线的时钟频率,尽管这些步骤没有在图中示出。
下面参照图5来示例性地说明根据本发明实施例的POST-WRITE机制。
如图5所示,在时刻T1,AHB主设备201发送对目的地APB从设备203或204的写入请求“NESQ”(见“htrans”),并且发送目的地APB从设备203或204的地址“0x20”(见“haddr”),并且在时刻T2发送要写入目的地APB从设备203或204的数据“0x5a5a”(见“hwdata”)。当接收到所述请求时,根据本发明实施例的APB桥100如上面所述检查该写入请求是否能够执行,如果能够执行,则在时刻T2接收并存储所述要写入的数据,并且向AHB主设备201和AHB仲裁器200发送OK响应“OKEY”(见“hresp”),使得AHB主设备201结束当前事务并放弃对AHB总线的使用权,并且AHB仲裁器200将该使用权赋予其它AHB主设备。此后,在时刻T3,在目的地APB总线空闲时,APB桥100将所存储的数据写入目的地APB从设备203或204,并且结束当前事务。可见,尽管所述数据在时刻T3才被真正地写入目的地APB从设备203或204,但是通过OK响应,AHB主设备201已经时刻T3之前结束当前事务并且放弃了对AHB总线的使用权,从而缩短了执行该写入请求的时间,提高了系统的效率。
下面,将参照图6和图7来示例性地说明根据本发明实施例的SPLIT-UNSPLIT机制。
图6是用于说明根据本发明实施例的SPLIT-UNSPLIT机制的示意图。如图6所示,在时刻T1,作为AHB主设备201的CPU发出读出请求。在时刻T2,AHB仲裁器200将对AHB总线的使用权赋予该CPU,因此所述读出请求经由AHB总线传送到APB桥100。在时刻T3,APB桥100发现该读出请求不能被执行,因此向CPU和AHB仲裁器200发送SPLIT响应。当CPU接收到该SPLIT响应时,其暂时放弃对AHB总线的使用权,AHB仲裁器200将该使用权赋予其它AHB主设备。当所述读出请求变得能够执行时,APB桥100在时刻T4将该读出请求要读取的数据读入自己的缓冲器中,并且在时刻T5向CPU和AHB仲裁器200发送UNSPLIT响应。当接收到UNSPLIT响应时,在时刻T6,AHB仲裁器200通过例如GRANT(授权)信号将对AHB总线的使用权赋予所述CPU,并且CPU重发先前发送的读出请求。在时刻T7,APB桥100响应于重发的读出请求而将OK响应和所读取的数据一起发送给CPU。在时刻T8,在接收到所述OK响应和数据之后,CPU结束当前事务。
图7是用于说明根据本发明实施例的SPLIT-UNSPLIT机制的时序图。如图7所示,在时刻T1,AHB主设备201发送对于目的地APB从设备203或204的读出请求“NSEQ”(见“htrans”),并且发送目的地APB从设备203或204的地址“0x20”(见“haddr”)。在时刻T2,接收到该请求的APB桥100发现该请求不能被执行,因此向AHB主设备201和AHB仲裁器200发送SPLIT响应(见“hresp”)。当所述读出请求变得能够被执行时,在时刻T3,APB桥100将该请求要读取的数据“0x5a5a”读取到自己的缓冲器中(见“prdata”,然后在时刻T4,向AHB主设备201和AHB仲裁器200发送UNSPLIT响应(见“hsplitx”)。基于该UNSPLIT响应,在时刻T5,AHB仲裁器200将对AHB总线的使用权赋予AHB主设备201,并且AHB主设备201重发所述读出请求“NSEQ”(见“htrans”)。当接收到该读出请求时,在时刻T6,APB桥100将所读取的数据“0x5a5a”(见“hrdata”)和OK响应(见“hresp”)一起传送给AHB主设备201。
可以看到,如图6的阴影部分所示,当AHB主设备发送的请求暂时不能被执行时,通过发送SPLIT响应而将对AHB总线的使用权暂时赋予其它AHB主设备,从而提高了总线的使用效率。
在上文中,OK响应、SPLIT响应和UNSPLIT响应不仅被APB桥100发送给AHB主设备201,还被发送给AHB仲裁器200。然而,这不是限制性的。APB桥100也可以只向AHB主设备201发送所述响应,然后,AHB主设备201将该响应转发给AHB仲裁器200或者根据该响应而向AHB仲裁器200做出相应的通知。或者,APB桥100也可以只向AHB主设备201发送所述响应,并且AHB仲裁器200可以通过例如监听AHB总线来主动拦截和接收所述响应。
在图2所示的根据本发明实施例的APB桥100中,示出了分别连接到两条APB总线的两个APB总线接口,相应地,为这两条总线提供了两个处理队列缓冲器1033和1034。这样,根据本发明实施例的APB桥可以同时为两条APB总线上的APB从设备服务,提高了系统的效率。然而,这不是限制性的,根据本发明实施例的APB桥可以与更多或更少的总线连接,相应地,APB总线接口和处理队列缓冲器的数目也可以根据需要而变化。例如,图8示出了图2所示的APB桥100的一种变型,其中,APB桥仅连接到一条APB总线。
如图8所示,APB桥800包括AHB总线接口801、APB桥寄存器802、业务仲裁和控制模块803、APB总线接口804。优选地,为了控制APB总线的时钟频率以减小系统功耗,APB桥800还可以包括时钟控制单元805。业务仲裁和控制模块800包括仲裁控制单元8031、普通请求队列存储器8032、处理队列缓冲器8033、锁定请求队列缓冲器8034和主设备ID寄存器8035。与APB桥100不同,由于APB桥800仅连接到一条APB总线,因此,只需一个处理队列缓冲器。AHB总线接口801、APB桥寄存器802、APB总线接口804、普通请求队列存储器8032、处理队列缓冲器8033、锁定请求队列缓冲器8034和主设备ID寄存器8035分别与图2所示的对应部件相同,因此为简单起见而省略其描述。
仲裁控制单元8031与仲裁控制单元1031的操作基本相同。图3所示的根据本发明实施例的控制方法也适用于APB桥800。此外,只需进行以下改动,就可以将图4A和图4B所示的根据本发明实施例的APB桥的控制方法的示例实现方式应用于APB桥800:由于APB桥800只有一个处理队列缓冲器并且只连接到一条APB总线,因此不执行步骤S421和S425;此外,在步骤S418处确定是否处理队列缓冲器为空并且普通请求队列存储器为空,并且在步骤S427处确定是否处理队列缓冲器为空且普通请求队列存储器不为空。另外,当处理队列缓冲器8033变空时,仲裁控制单元8031只需从普通请求队列存储器8022中选择具有最高优先级的待执行请求并且将其移动到该缓冲器8033中即可。
时钟控制单元805与时钟控制单元106的操作基本相同,区别在于:由于只有一条APB总线,因此存储在普通请求队列存储器8032中的待执行请求均用于该APB总线,因此,时钟控制单元805只需根据第一阈值和第三阈值调整APB总线的时钟频率即可。
如上所述,根据本发明实施例的APB桥及其控制方法通过应用POST-WRITE机制,缩短了执行单个写入请求的时间,提高了总线的使用效率;此外,通过应用SPLIT-UNSPLIT机制,使得所发送的请求不能被执行的AHB主设备将对AHB总线的使用权暂时让给其它AHB主设备,从而进一步提高了AHB总线的使用效率,使得系统具有更好的性能。
此外,根据本发明实施例的APB总线时钟控制方法能够根据存储在普通请求队列存储器中的针对各总线的待执行请求的数目而控制相应的APB总线的时钟频率,使得在所述数目较小时降低APB总线的频率,从而降低系统的功耗。
尽管已经示出和描述了本发明的特定实施例,本领域技术人员应当理解,在不背离权利要求及其等价物中限定的本发明的范围和精神的情况下,可以对这些实施例做出各种形式和细节上的变化。
Claims (31)
1.一种APB桥,包括:
AHB总线接口,其连接到AHB总线以便与AHB主设备通信;
仲裁控制单元,与所述AHB总线接口连接,用于通过所述AHB总线接口接收由所述AHB主设备发送的请求,并判断该请求能否被执行,当该请求可被执行时,向所述AHB主设备发送第一响应,使得释放所述AHB主设备对AHB总线的使用权;以及
APB总线接口,与该仲裁控制单元连接,并连接到APB总线以便与APB总线上的APB从设备通信。
2.如权利要求1所述的APB桥,其中,当确定所述请求不能被执行时,仲裁控制单元向所述AHB主设备发送第二响应,使得暂时释放所述AHB主设备对AHB总线的使用权,并且在确定所述请求变得能够被执行时向所述AHB主设备发送第三响应,使得将所述使用权重新赋予该AHB主设备并且该AHB主设备重发所述请求。
3.如权利要求1所述的APB桥,其中,所述请求为对目的地APB从设备的普通读出请求、普通写入请求、锁定读出请求和锁定写入请求之一。
4.如权利要求3所述的APB桥,还包括:存储器,
其中,当确定从AHB主设备第一次发送的普通写入请求或锁定写入请求能够被执行时,除了发送第一响应以外,仲裁控制单元还将该请求要写入的数据存储到该存储器中,并且在发送第一响应之后将所述数据从该存储器写入目的地APB从设备。
5.如权利要求3所述的APB桥,其中,该仲裁控制单元还判断该请求是否为所述AHB主设备第一次发送,当该请求是第一次被发送并可被执行时,向所述AHB主设备发送第一响应,使得释放所述AHB主设备对AHB总线的使用权。
6.如权利要求5所述的APB桥,还包括:
锁定请求队列缓冲器,用于存储正对APB从设备执行的锁定读出请求和根据该锁定读出请求读取的数据、或者锁定写入请求和该锁定请求要写入的数据。
7.如权利要求6所述的APB桥,其中,仲裁控制单元根据接收到的锁定读出请求或锁定写入请求与锁定请求队列缓冲器内存储的锁定读出请求或锁定写入请求是否相同,来确定该锁定读出请求或锁定写入请求是否为所述AHB主设备第一次发送的请求。
8.如权利要求6所述的APB桥,其中,仲裁控制单元根据锁定请求队列缓冲器是否为空来确定第一次接收的锁定写入请求是否能够被执行。
9.如权利要求6所述的APB桥,其中,仲裁控制单元根据在锁定请求队列缓冲器中是否存储了第一次发送的锁定读出请求要读取的数据来确定该锁定读出请求是否能够被执行。
10.如权利要求5所述的APB桥,还包括:
普通请求队列存储器,用于存储待执行的普通读出请求、以及普通写入请求和该普通写入请求要写入的数据;和
处理队列缓冲器,用于存储正对APB从设备执行的普通读出请求和根据该普通读出请求读取的数据、或者正对APB从设备执行的普通写入请求和该普通写入请求要写入的数据。
11.如权利要求10所述的APB桥,其中,当处理队列缓冲器变空时,仲裁控制单元根据普通请求队列存储器中待执行的请求的优先级和对应APB总线是否忙碌来从所述待执行的请求中选择接下来要执行的请求,并将其移动到处理队列缓冲器中。
12.如权利要求10所述的APB桥,还包括:
时钟控制单元,其在普通请求队列存储器中的待执行的请求的数目低于第一阈值时降低APB总线的时钟频率,而在所述数目高于第二阈值时提高APB总线的时钟频率。
13.如权利要求12所述的APB桥,其中,当所述数目为0时,时钟控制单元关闭APB总线的时钟。
14.如权利要求10所述的APB桥,其中,仲裁控制单元根据接收到的普通读出请求或普通写入请求与普通请求队列存储器或处理队列缓冲器内存储的普通读出请求或普通写入请求是否相同,来确定该普通读出请求或普通写入请求是否为所述AHB主设备第一次发送的请求。
15.如权利要求10所述的APB桥,其中,仲裁控制单元根据普通请求队列存储器和处理队列缓冲器的存储状态来确定是否能够执行普通写入请求。
16.如权利要求10所述的APB桥,其中,仲裁控制单元根据在处理队列缓冲器中是否存储了第一次发送的普通读出请求要读取的数据来确定该普通读出请求是否能够被执行。
17.如权利要求2所述的APB桥,还包括:主设备ID寄存器,用于当确定所述请求不能被执行时,存储发出所述请求的AHB主设备的ID,其中所述仲裁控制单元依据该AHB主设备的ID来向所述AHB主设备发送第三响应。
18.一种APB桥的控制方法,所述APB桥连接在AHB总线和APB总线之间,所述方法包括:
经由AHB总线接收从AHB主设备发送的请求;
确定该请求是否能够被执行;以及
当该请求能够被执行时,向AHB主设备发送第一响应,使得释放AHB主设备对AHB总线的使用权。
19.如权利要求18所述的控制方法,还包括:
当确定所述请求不能被执行时,向所述AHB主设备发送第二响应,使得暂时释放所述AHB主设备对AHB总线的使用权,并且在确定所述请求变得能够被执行时,向所述AHB主设备发送第三响应,使得将对所述AHB总线的使用权重新赋予该AHB主设备,并且该AHB主设备重发所述请求。
20.如权利要求19所述的控制方法,还包括:当确定所述请求不能被执行时,存储发出所述请求的AHB主设备的ID,并且在确定所述请求变得能够被执行时,依据该AHB主设备的ID来向所述AHB主设备发送第三响应。
21.如权利要求18所述的控制方法,其中,所述请求为对目的地APB从设备的普通读出请求、普通写入请求、锁定读出请求和锁定写入请求之一。
22.如权利要求21所述的控制方法,其中,当确定从AHB主设备第一次发送的普通写入请求或锁定写入请求能够被执行时,除了发送第一响应以外,还将该请求要写入的数据存储到APB桥的存储器中,并且在发送第一响应之后将所述数据从该存储器写入目的地APB从设备。
23.如权利要求21所述的控制方法,其中,所述APB桥包括:
普通请求队列存储器,用于存储待执行的普通读出请求、以及普通写入请求和该普通写入请求要写入的数据;和
处理队列缓冲器,用于存储正对APB从设备执行的普通读出请求和根据该普通读出请求读取的数据、或者正对APB从设备执行的普通写入请求和该普通写入请求要写入的数据;
其中,当处理队列缓冲器变空时,根据普通请求队列存储器中待执行的请求的优先级和对应APB总线是否忙碌来从所述待执行的请求中选择接下来要执行的请求,并将其移动到处理队列缓冲器中。
24.如权利要求23所述的控制方法,其中,当普通请求队列存储器中的待执行的请求的数目低于第一阈值时,降低APB总线的时钟频率,当所述数目高于第二阈值时,提高APB总线的时钟频率,当所述数目为0时,关闭该APB的时钟。
25.如权利要求23所述的控制方法,还包括:确定该请求是否为该AHB主设备第一次发送的请求,当该请求为该AHB主设备第一次发送的请求且能够被执行时,向AHB主设备发送第一响应,使得释放AHB主设备对AHB总线的使用权。
26.如权利要求25所述的控制方法,还包括:将接收到的普通读出请求或普通写入请求与普通请求队列存储器或处理队列缓冲器内存储的普通读出请求或普通写入请求进行比较,以确定该普通读出请求或普通写入请求是否为该AHB主设备第一次发送的请求。
27.如权利要求23所述的控制方法,还包括:根据普通请求队列存储器和处理队列缓冲器的存储状态来确定是否能够执行普通写入请求。
28.如权利要求23所述的控制方法,还包括:根据在处理队列缓冲器中是否存储了第一次发送的普通读出请求要读取的数据来确定该普通读出请求是否能够被执行。
29.一种由APB桥执行的APB总线时钟控制方法,所述APB桥在确定由AHB总线上的AHB主设备向APB总线上的APB从设备第一次发送的请求能够被执行时,向所述AHB主设备发送第一响应,使得释放所述AHB主设备对AHB总线的使用权,并且在确定所述请求不能被执行时,将该请求存储在APB桥的存储器中,所述时钟控制方法包括:
检查存储器中对于APB从设备的请求的数目;以及
当所述数目低于第一阈值时,降低APB总线的时钟频率。
30.如权利要求29所述的时钟控制方法,其中,当所述数目为0时,关闭APB总线的时钟。
31.如权利要求29所述的时钟控制方法,还包括:
当所述数目高于第二阈值时,提高APB总线的时钟频率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101597748A CN101604302B (zh) | 2009-07-20 | 2009-07-20 | 高级外围总线桥及其控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101597748A CN101604302B (zh) | 2009-07-20 | 2009-07-20 | 高级外围总线桥及其控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101604302A true CN101604302A (zh) | 2009-12-16 |
CN101604302B CN101604302B (zh) | 2012-04-25 |
Family
ID=41470037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101597748A Active CN101604302B (zh) | 2009-07-20 | 2009-07-20 | 高级外围总线桥及其控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101604302B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101901202A (zh) * | 2010-07-29 | 2010-12-01 | 东莞市泰斗微电子科技有限公司 | 一种ahb总线设备跨时钟域访问apb总线设备的电路及方法 |
CN102193887A (zh) * | 2010-03-11 | 2011-09-21 | 炬力集成电路设计有限公司 | 多通道桥接器及总线系统 |
CN102301357A (zh) * | 2011-07-08 | 2011-12-28 | 华为技术有限公司 | 一种工作时钟切换方法、智能门控电路及系统 |
CN101876960B (zh) * | 2009-12-21 | 2012-10-03 | 无锡中星微电子有限公司 | 一种apb总线系统及一种芯片 |
CN102710890A (zh) * | 2012-04-06 | 2012-10-03 | 东莞中山大学研究院 | 双ahb总线的视频处理片上系统 |
CN102752084A (zh) * | 2012-07-27 | 2012-10-24 | 湖南先步信息股份有限公司 | 一种多设备can通讯智能重发方法 |
CN102804158A (zh) * | 2010-03-19 | 2012-11-28 | 想象技术有限公司 | 总线架构中的请求和数据处理 |
CN103198043A (zh) * | 2013-01-24 | 2013-07-10 | 杭州中科微电子有限公司 | 一种改进的AHB to APB总线桥及其控制方法 |
CN103226344A (zh) * | 2013-03-19 | 2013-07-31 | 浙江中控研究院有限公司 | 一种运动控制片上系统 |
CN106383793A (zh) * | 2016-09-05 | 2017-02-08 | 邦彦技术股份有限公司 | 外部设备的访问方法及片上系统 |
CN106649967A (zh) * | 2016-10-20 | 2017-05-10 | 浙江大华技术股份有限公司 | 一种SoC系统及重发控制套接电路 |
CN108304333A (zh) * | 2017-12-26 | 2018-07-20 | 中国科学院长春光学精密机械与物理研究所 | 一种一主多从式总线 |
CN109002408A (zh) * | 2018-07-18 | 2018-12-14 | 北京忆芯科技有限公司 | 总线仲裁方法和系统 |
CN110069425A (zh) * | 2019-04-24 | 2019-07-30 | 苏州浪潮智能科技有限公司 | 一种基于服务器多处理机板卡设备之间的数据处理方法 |
CN111143264A (zh) * | 2019-12-30 | 2020-05-12 | 山东方寸微电子科技有限公司 | 实现同步模式的apb桥、实现异步模式的apb桥及其控制方法 |
-
2009
- 2009-07-20 CN CN2009101597748A patent/CN101604302B/zh active Active
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101876960B (zh) * | 2009-12-21 | 2012-10-03 | 无锡中星微电子有限公司 | 一种apb总线系统及一种芯片 |
CN102193887B (zh) * | 2010-03-11 | 2013-08-21 | 炬力集成电路设计有限公司 | 多通道桥接器及总线系统 |
CN102193887A (zh) * | 2010-03-11 | 2011-09-21 | 炬力集成电路设计有限公司 | 多通道桥接器及总线系统 |
CN102804158B (zh) * | 2010-03-19 | 2016-05-04 | 想象技术有限公司 | 总线架构及从至少一从设备向多个主路径发送数据的方法 |
CN102804158A (zh) * | 2010-03-19 | 2012-11-28 | 想象技术有限公司 | 总线架构中的请求和数据处理 |
CN104794076A (zh) * | 2010-03-19 | 2015-07-22 | 想象技术有限公司 | 处理总线架构中的请求的方法及总线架构 |
US9529751B2 (en) | 2010-03-19 | 2016-12-27 | Imagination Technologies Limited | Requests and data handling in a bus architecture |
CN104794076B (zh) * | 2010-03-19 | 2018-01-26 | 想象技术有限公司 | 处理总线架构中的请求的方法及总线架构 |
CN101901202B (zh) * | 2010-07-29 | 2012-08-15 | 东莞市泰斗微电子科技有限公司 | 一种ahb总线设备跨时钟域访问apb总线设备的电路 |
CN101901202A (zh) * | 2010-07-29 | 2010-12-01 | 东莞市泰斗微电子科技有限公司 | 一种ahb总线设备跨时钟域访问apb总线设备的电路及方法 |
CN102301357A (zh) * | 2011-07-08 | 2011-12-28 | 华为技术有限公司 | 一种工作时钟切换方法、智能门控电路及系统 |
CN102710890B (zh) * | 2012-04-06 | 2014-11-05 | 东莞中山大学研究院 | 双ahb总线的视频处理片上系统 |
CN102710890A (zh) * | 2012-04-06 | 2012-10-03 | 东莞中山大学研究院 | 双ahb总线的视频处理片上系统 |
CN102752084B (zh) * | 2012-07-27 | 2013-05-29 | 湖南先步信息股份有限公司 | 一种多设备can通讯智能重发方法 |
CN102752084A (zh) * | 2012-07-27 | 2012-10-24 | 湖南先步信息股份有限公司 | 一种多设备can通讯智能重发方法 |
CN103198043A (zh) * | 2013-01-24 | 2013-07-10 | 杭州中科微电子有限公司 | 一种改进的AHB to APB总线桥及其控制方法 |
CN103198043B (zh) * | 2013-01-24 | 2016-05-11 | 杭州中科微电子有限公司 | 一种改进的AHB to APB总线桥及其控制方法 |
CN103226344B (zh) * | 2013-03-19 | 2015-10-28 | 浙江中控研究院有限公司 | 一种运动控制片上系统 |
CN103226344A (zh) * | 2013-03-19 | 2013-07-31 | 浙江中控研究院有限公司 | 一种运动控制片上系统 |
CN106383793A (zh) * | 2016-09-05 | 2017-02-08 | 邦彦技术股份有限公司 | 外部设备的访问方法及片上系统 |
CN106383793B (zh) * | 2016-09-05 | 2019-10-18 | 邦彦技术股份有限公司 | 外部设备的访问方法及片上系统 |
CN106649967A (zh) * | 2016-10-20 | 2017-05-10 | 浙江大华技术股份有限公司 | 一种SoC系统及重发控制套接电路 |
CN106649967B (zh) * | 2016-10-20 | 2019-12-24 | 浙江大华技术股份有限公司 | 一种SoC系统及重发控制套接电路 |
CN108304333A (zh) * | 2017-12-26 | 2018-07-20 | 中国科学院长春光学精密机械与物理研究所 | 一种一主多从式总线 |
CN108304333B (zh) * | 2017-12-26 | 2021-04-13 | 中国科学院长春光学精密机械与物理研究所 | 一种一主多从式总线 |
CN109002408A (zh) * | 2018-07-18 | 2018-12-14 | 北京忆芯科技有限公司 | 总线仲裁方法和系统 |
CN109002408B (zh) * | 2018-07-18 | 2022-09-09 | 北京忆芯科技有限公司 | 总线仲裁方法和系统 |
CN110069425A (zh) * | 2019-04-24 | 2019-07-30 | 苏州浪潮智能科技有限公司 | 一种基于服务器多处理机板卡设备之间的数据处理方法 |
CN111143264A (zh) * | 2019-12-30 | 2020-05-12 | 山东方寸微电子科技有限公司 | 实现同步模式的apb桥、实现异步模式的apb桥及其控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101604302B (zh) | 2012-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101604302B (zh) | 高级外围总线桥及其控制方法 | |
CN100458757C (zh) | 嵌入式实时操作系统中多核处理器的核间通信方法及装置 | |
CN100524252C (zh) | 一种嵌入式系统芯片及数据读写处理方法 | |
CN100595744C (zh) | 芯片上系统集成电路、电子系统及在其内传送数据的方法 | |
CN101430651B (zh) | 一种异构多核体系中外设的访问方法 | |
JPS61109164A (ja) | バス制御方法 | |
US6996659B2 (en) | Generic bridge core | |
CN101258476B (zh) | 延迟的存储器访问请求仲裁 | |
CN101446931B (zh) | 一种实现输入输出数据一致性的系统及方法 | |
JPH02500784A (ja) | 保留バスにおいて割り込み要求メッセージを処理するノード | |
CN104346317A (zh) | 共享资源访问方法和装置 | |
JP2002342299A (ja) | クラスタシステム、コンピュータ及びプログラム | |
CN104854845B (zh) | 使用高效的原子操作的方法和装置 | |
CN101308477A (zh) | 系统总线的防死锁方法、装置及片上系统 | |
CN103999063A (zh) | 处理器的存储器共享 | |
CN112256624B (zh) | 用于高速互连网络接口芯片的dma通信装置、芯片、设备及方法 | |
US20110107065A1 (en) | Interconnect controller for a data processing device and method therefor | |
JP3844933B2 (ja) | データベースサーバ処理方法 | |
CN109992539B (zh) | 双主机协同工作装置 | |
CN101017450A (zh) | 管理资源请求的设备、系统和方法 | |
US5594875A (en) | Method and apparatus to provide pended transaction on a non-pended system bus | |
CN101894084B (zh) | 一种clb总线内用于写操作的装置 | |
CN109145397A (zh) | 一种支持并行流水访问的外存仲裁结构 | |
US7007122B2 (en) | Method for pre-emptive arbitration | |
US20050120169A1 (en) | Storage device control apparatus and a method of controlling the same |
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 |