论文部分内容阅读
针对计算机系统中存在的存储墙问题,现代处理器采用预取技术,利用应用程序中存在的规律性地址访问模式,来对存储访问行为进行预测,以减少高速缓存缺失次数。然而目前工业和学术界的各种预取技术存在以下问题:1)应用程序中存在大量的链表指针模式,而主流商业处理器上的预取引擎只针对线性地址模式进行预测;2)现有的指针预取方法对返回值进行类地址判断,其预取准确率较低,通常在10%以下;3)在多核处理器上数据预取引擎会加剧对共享资源的冲突,进而导致系统总体性能降低。本文开发了一款兼容MIPS32指令集的周期级软件模拟器,来对嵌入式单核/多核处理器的功能、时序和成本三方面进行建模。在该平台上针对上述现有预取技术中存在的问题探索解决方案。根据对应用特性的分析和优化空间探索,提出了用于嵌入式单核处理器的多模式自调数据预取方案。该解决方案根据硬件统计的运行时信息,通过特殊预取指令对两种预取模式的激进度进行自适应调节,通过链式和线性模式判断提高了预取的准确率。在单核软件模拟器上执行EEMBC、 SPEC CPU2006和OLDEN评测程序,结果表明,多模式预取引擎的准确率分别平均为36%,40%和56%,而内容指导(Content direct prefetching, CDP)的指针预取准确率分别为8%,9%和24%,相对流预取、CDP指针预取和GHB预取性能分别提升7%、6%和9%。本文针对多核多线程的应用环境,提出一种线程分类的预取机制,来降低数据预取导致的存储系统资源竞争。提出的多核数据预取机制包括:(1)采用过滤方式通知硬件单元,丢弃预取请求会导致线程间数据无效化的预取。(2)根据运行时信息对线程进行分类,调整各线程数据预取引擎的开关状态和激进程度,从而降低了线程间的资源冲突。在16核系统进行建模,采用PARSEC、SPLASH-2和科学计算程序进行评估,结果表明:相比于基准预取引擎,采用过滤机制和线程分类调整预取策略,系统性能分别可以提升2%和6%。相比将反馈指导预取(Feedback direct prefetching, FDP)技术应用于基准预取引擎上的结果,本文提出的预取机制提升了4%的系统性能,并减少了4%的能量时间积。