通过编译器对程序优化来改进Cache性能的方法有哪几种?简述其基本思想。

题目

通过编译器对程序优化来改进Cache性能的方法有哪几种?简述其基本思想。

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

降低Cache失效率有哪几种方法?简述其基本思想。


正确答案: 常用的降低Cache失效率的方法有下面几种:
(1)增加Cache块大小。增加块大小利用了程序的空间局部性。
(2)增加Cache的容量。
(3)提高相联度,降低冲突失效。
(4)伪相联Cache,降低冲突失效。当对伪相联Cache进行访问时,首先是按与直接映象相同的方式进行访问。如果命中,则从相应的块中取出所访问的数据,送给CPU,访问结束。如果不命中,就将索引字段的最高位取反,然后按照新索引去寻找“伪相联组”中的对应块。如果这一块的标识匹配,则称发生了“伪命中”。否则,就访问下一级存储器。
(5)硬件预取技术。在处理器提出访问请求前预取指令和数据。
(6)由编译器控制的预取,硬件预取的替代方法,在编译时加入预取的指令,在数据被用到之前发出预取请求。
(7)编译器优化,通过对软件的优化来降低失效率。
(8)“牺牲”Cache。在Cache和其下一级存储器的数据通路之间增设一个全相联的小Cache,存放因冲突而被替换出去的那些块。每当发生不命中时,在访问下一级存储器之前,先检查“牺牲”Cache中是否含有所需的块。如果有,就将该块与Cache中某个块做交换,把所需的块从“牺牲”Cache调入Cache。

第2题:

利用ICC实现的优化属于()

  • A、由编译器自动完成优化
  • B、工具辅助的优化
  • C、使用高性能库
  • D、人工优化

正确答案:A

第3题:

编译器对程序进行一定的优化是非常有必要的,高级语言的程序可以被转化为汇编语言的指令形式。通常优化的方法有(1)、循环优化、废代码的清除等。

对嵌入式系统进行性能测试可以衡量系统的实时性,分析嵌入式软件的优劣,同时分析程序的执行时间可以帮助分析CPU功耗等特性。最坏执行时间是指(2)。


正确答案:简化算术表达式 (2)程序的大量输入序列所产生的最长的程序执行时间 这是一道要求读者掌握嵌入式系统程序优化技术和程序执行时间的基本概念题。本题所涉及的知识点如下; 编译器对程序进行一定的优化是非常有必要的高级语言的程序可以被转化为汇编语言的指令形式。优化技术是全面而非片面的。通常优化的方法有简化算术表达式、循环优化和废代码的清除等。 对嵌入式系统进行性能测试可以衡量系统的实时性分析嵌入式软件的优劣同时分析程序的执行时间以帮助分析CPU功耗等特性。精确地测量程序的执行时间意义不大可以通过以下三个概念来分析程序的执行时间。 ①平均执行时间:多次测量程序的执行时间取平均值。 ②最佳执行时间:大量输入序列的测试中记录嵌入式程序运行最短的那一个时间。 ③最坏执行时间:程序的大量输入序列所产生的最长的程序执行时间。有些情况下产生最坏执行时间的输入数值并不容易确定需要对程序的代码进行分析产生特殊的测试用例。
简化算术表达式 (2)程序的大量输入序列所产生的最长的程序执行时间 这是一道要求读者掌握嵌入式系统程序优化技术和程序执行时间的基本概念题。本题所涉及的知识点如下; 编译器对程序进行一定的优化是非常有必要的,高级语言的程序可以被转化为汇编语言的指令形式。优化技术是全面而非片面的。通常优化的方法有简化算术表达式、循环优化和废代码的清除等。 对嵌入式系统进行性能测试可以衡量系统的实时性,分析嵌入式软件的优劣,同时分析程序的执行时间,以帮助分析CPU功耗等特性。精确地测量程序的执行时间意义不大,可以通过以下三个概念来分析程序的执行时间。 ①平均执行时间:多次测量程序的执行时间取平均值。 ②最佳执行时间:大量输入序列的测试中记录嵌入式程序运行最短的那一个时间。 ③最坏执行时间:程序的大量输入序列所产生的最长的程序执行时间。有些情况下,产生最坏执行时间的输入数值并不容易确定,需要对程序的代码进行分析产生特殊的测试用例。

第4题:

降低Cache失效率有哪几种方法?(至少写出5种)(简述其基本思想。)


正确答案: 常用的降低Cache失效率的方法有下面几种:
(1)增加Cache块大小。增加块大小利用了程序的空间局部性。
(2)增加Cache的容量。
(3)提高相联度,降低冲突失效。
(4)伪相联Cache,降低冲突失效。当对伪相联Cache进行访问时,首先是按与直接映象相同的方式进行访问。如果命中,则从相应的块中取出所访问的数据,送给CPU,访问结束。如果不命中,就将索引字段的最高位取反,然后按照新索引去寻找“伪相联组”中的对应块。如果这一块的标识匹配,则称发生了“伪命中”。否则,就访问下一级存储器。
(5)硬件预取技术。在处理器提出访问请求前预取指令和数据。
(6)由编译器控制的预取,硬件预取的替代方法,在编译时加入预取的指令,在数据被用到之前发出预取请求。
(7)编译器优化,通过对软件的优化来降低失效率。
(8)“牺牲”Cache。在Cache和其下一级存储器的数据通路之间增设一个全相联的小Cache,存放因冲突而被替换出去的那些块。每当发生不命中时,在访问下一级存储器之前,先检查“牺牲”Cache中是否含有所需的块。如果有,就将该块与Cache中某个块做交换,把所需的块从“牺牲”Cache调入Cache。

第5题:

简述在cache失效率的策略中,编译优化分块策略的基本思想。


正确答案: 编译器把对数组的整行或整列访问改为按块进行,使得块内的访问具有较好的局部性,从而降低失效率。

第6题:

PGO优化属于()

  • A、由编译器自动完成优化
  • B、工具辅助的优化
  • C、使用高性能库
  • D、人工优化

正确答案:B

第7题:

简述通过编译优化降低cache失效率的基本思想。


正确答案: 在编译时,对程序中的指令和数据进行重新组织,是连续访问的指令或数据能够具有根号的时间和空间局部性,以降低Cache失效率。

第8题:

下列关于编程优化的说法正确的是()

  • A、使用编译器的优化选项后程序性能一定会获得提高
  • B、循环展开得越多越彻底,程序的性能越好
  • C、寄存器分配能够解决程序中的数据依赖问题
  • D、现代主流C/C++编译器可以对简单的小函数进行自动Iinline

正确答案:D

第9题:

改进Cache的性能的三种途径是()。


正确答案:降低失效率、减少失效开销、减少Cache命中时间

第10题:

借助IntelIPP实现属于()

  • A、由编译器自动完成优化
  • B、工具辅助的优化
  • C、使用高性能库
  • D、人工优化

正确答案:C

更多相关问题