发明名称 |
用于多处理系统的软件管理的高速缓存优化系统和方法 |
摘要 |
本发明提供一种用于对单处理器或多处理器系统内的软件管理的高速缓存进行计算机程序代码优化的方法。接收包括多个数组引用的单个源文件。分析多个数组引用以识别可预测的访问。分析该多个数组引用以识别次级可预测的访问。根据识别出的可预测的访问和识别出的次级可预测的访问聚集多个数组引用中的一个或多个,以生成聚集的引用。根据聚集的引用重构该单个源文件以生成重构的代码。根据聚集的引用在重构的代码内插入预取代码。根据聚集的引用在重构的代码内插入软件高速缓存更新代码。插入对于其余不可预测访问的显式高速缓存查找代码。在显式高速缓存查找代码内插入对用于未命中的未命中处理器的调用。将未命中处理器包括在为程序生成的代码内。 |
申请公布号 |
CN100356327C |
申请公布日期 |
2007.12.19 |
申请号 |
CN200510123670.3 |
申请日期 |
2005.11.18 |
申请人 |
国际商业机器公司 |
发明人 |
J·K·P·奥布赖恩;K·M·奥布赖恩 |
分类号 |
G06F9/45(2006.01);G06F12/08(2006.01) |
主分类号 |
G06F9/45(2006.01) |
代理机构 |
北京市中咨律师事务所 |
代理人 |
于静;李峥 |
主权项 |
1.一种用于单处理器或多处理器系统内的软件管理的高速缓存的计算机程序代码优化的方法,包括:接收包括多个数组引用的单个源文件;分析该多个数组引用以识别可预测的访问;利用上述分析的结果进一步分析该多个数组引用以识别附加的可预测的访问;根据识别出的可预测的访问和识别出的附加的可预测的访问,聚集该多个数组引用中的一个或多个,以生成聚集的数组引用;根据该聚集的数组引用,重构上述单个源文件以生成重构的代码;根据该聚集的数组引用,在上述重构的代码内插入用于该聚集的数组引用的数据预取代码;根据该聚集的数组引用,在上述重构的代码内插入软件高速缓存更新代码;在上述重构的代码内插入对于其余不可预测的访问的显式高速缓存查找代码;在该显式高速缓存查找代码内插入调用用于未命中的未命中处理程序的代码;将来命中处理程序包括在为该源文件生成的代码内;在该未命中处理程序内,根据各行的最近的使用和其执行的可预测性选择要逐出的行;以及在该未命中处理程序内,对于该要逐出的行和未命中的行发出适合的DMA命令。 |
地址 |
美国纽约 |