- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
深入理解CPU的读写及优化
系统运维部—彦军
CPU前端(In order pipeline)
• 1) 分支预测
• 2 )前端取指
• 3) 预解码
• 4 )预解码队列
(得到稳定的代码流)
x86 CPU decode
• 4-1-1-1 rules,micro fusion macro fusion,
MS-Rom(4 micro ops)
• Optimization rule
• a) avoid multiple micro ops if front-end or
instruction cache miss or branch prediction is not
bottle neck
• b) static arrange pipeline to avoid 4-4-1-1-1-1 =
4-1-1-4-1-1
• c) take full advantage of macro fusion
• d) take use of L0 cache decode queue ASP
x86 CPU Rename allocation
去掉 指令错误依赖(但是需要认为避免部
分寄存器读写)
分配相应的资源到每条指令.
N^2 –N 强烈约束着每的周期吐出的指令条
数
x86 CPU Scheduler(continue)
X86 Execution Unit
Avoid crossing domain(integer, SIMD integer and FP (both
scalar and SIMD)
Avoid Commit conflicts
Avoid resource pipeline compete
Avoid memory false dependence
memory intensifies aligned cases
memcpy
内存错误依赖
拷贝32个字节 假设rsi 为0xf004, rdi 为0xe008
1. Movq (%rsi), %rax 指令2 write 0xe008~0xe010
2. movq %rax, (%rdi) 指令3 read 0xf00c~ 0xf014,
3. movq 8(%rsi), %rax 如果%rsi 和rdi 在一个物理页面
4. movq %rax, 8(%rdi) 会产生真正的依赖关系
1. movq 8(%rsi), %rax
2. movq %rax, 8(%rdi) 调整之后
3. movq (%rsi), %rax 指令2 write 0xe010~0xe018
4. movq %rax, (%rdi) 指令3 read 0xf004~0xf00c
memcpy intensifies
correct branch prediction
memcpy intensifies (small size)
correct branch prediction
拷贝数据从32到64个字节
*比较需拷贝字节长度是否大于
*如果需拷贝字节长度小于32则离开下面将拷贝介于32~63个字节
*拷贝源地址(rsi) 16个字节到寄存器xmm0
*拷贝源地址(rsi +16 )16个字节到寄存器xmm1
*拷贝源地址(rsi +rdx - 32 )16个字节到寄存器xmm2
*拷贝源地址(rsi +rdx - 16)16个字节到寄存器xmm3
*拷贝存器xmm0数据拷贝到目的地址(rdi)
*拷贝存器xmm1数据拷贝到目的地址(rdi + 16)
*拷贝存器xmm2数据拷贝到目的地址(rdi + rdx - 32)
*拷贝存器xmm3数据拷贝到目的地址(rdi + rdx - 16)
*返回
memcpy inten
您可能关注的文档
最近下载
- 国家开放大学《建设法规》形考任务1-4答案(国开电大).docx
- 2020年系统集成项目管理工程师考试下午真题及答案.pdf VIP
- 基于LTE基站功放的模拟预失真器的研究与设计-电磁场与微波技术专业论文.docx VIP
- 儿科应急处置情况报告.docx VIP
- 无废单位培训.pptx
- 优选汽车维修工高级技师题库真题题库【突破训练】.docx VIP
- DL_T 5220-2021 10kV及以下架空配电线路设计规范(附条文说明).docx VIP
- 马工程教育学原理期末练习题(答案版).docx VIP
- 足球比赛记录表(标准版).doc VIP
- 餐饮企业税务筹划问题研究——以海底捞为例.docx
文档评论(0)