赵子清技术文章
2019.04
  • 表达与设计
    • 用reST编写文档
      • 1. 简介
      • 2. 安装与基本使用
        • 2.1. 安装软件包
        • 2.2. 项目建立
        • 2.3. conf.py配置
        • 2.4. index页配置
        • 2.5. 参考
      • 3. reST语法介绍
        • 3.1. 章节标题
        • 3.2. 段落
        • 3.3. 行内标记
        • 3.4. 列表
        • 3.5. 代码
        • 3.6. 超链接
        • 3.7. 图片
        • 3.8. 表格
        • 3.9. 引用
        • 3.10. 脚注
        • 3.11. 提醒
        • 3.12. 替换
        • 3.13. 参考
      • 4. 修改样式
        • 4.1. Step1
        • 4.2. Step2
        • 4.3. Step3
      • 5. 生成PDF
        • 5.1. 方法一:使用xeTex(推荐)
        • 5.2. 方法二: 使用CJKutf8包 (默认)
        • 5.3. 终极解决办法
      • 6. 生成API文档
        • 6.1. Step1
        • 6.2. Step2
        • 6.3. Step3
        • 6.4. Step4
      • 7. 在Visual Studio Code中使用
        • 7.1. 安装步骤
        • 7.2. 配置
        • 7.3. 使用
        • 7.4. 问题记录
      • 8. 给github博客添加评论功能
        • 8.1. 1. 注册OAuth Application
        • 8.2. 2. 编辑博客页面, 引入gitment
        • 8.3. 3. 初始化评论
        • 8.4. 参考链接
    • LaTeX
      • 安装与配置
        • 1. 安装
        • 2. 卸载
      • 快速入门示例
      • 文本与段落
      • 程序代码
      • 图像与表格
      • 错误调试
      • 参考链接
    • 减少Word文件大小
      • 分析
      • 减小图片大小
      • 参考
    • 参考链接
  • 开发语言
    • C++ 11
      • 前言
        • C++的变化
        • 对C++程序员的建议
        • 对C程序员的建议
        • C++11主要特性
        • 参考
      • 基本功能
      • 面向对象
      • 标准库
      • boost库
    • Go
      • 环境配置
        • 使用代理以解决go get超时问题
        • 日常项目开发环境配置
        • IDE配置
      • JSON解析
        • 简单解析
        • 不确定JSON的解析
        • 复杂内容的解析
      • C语言适配
        • 调用C编写的动态库
      • 学习资料
    • lua基础
      • 预备知识
        • 获得lua
        • lua命令行
        • 保留关键字
        • 注释
        • Chunk
      • 数据类型
        • string
        • userdata
        • thread
      • 表达式
        • 算术运算符
        • 关系运算符
        • 逻辑运算符
        • 连接运算符
        • 运算符优先级
      • 语句
        • 赋值
        • 局部变量
        • 条件语句
        • 循环语句
      • 函数
    • Linux shell编程
    • 汇编语言
      • 计算机体系结构
        • CPU
        • 内存
        • 中断
      • 汇编语言简介
        • 汇编代码的两种记法
        • CentOS运行nasm
        • 操作数
        • 基本指令
        • 指示符
        • 输入输出
        • 代码模板
        • 第一个程序
      • 语言基础
        • 数据移动
        • 算术运算
        • 位操作
        • 控制流
        • 栈操作与函数调用
      • intel SIMD指令
      • 调试
        • Linux + gdb
      • 与C语言互操作
        • 调用约定
        • C调用汇编代码
        • 汇编调用C代码
        • 结构体
      • 参考链接
    • 编译与构建
      • 参考链接
    • TOML配置文件语言
      • 示例
      • 语法
        • 整体约定
        • 注释
        • 字符串
        • 整数
        • 浮点数
        • 布尔值
        • 时间日期
        • 数组
        • 表
        • 内联表
        • 表数组
      • 为什么我要用它呢?
      • 目前的实现
      • libtoml试用
        • 编译
        • 简单示例
      • 参考
    • 字节序与比特序
      • 字节序
      • 比特序
      • 编写可移植代码
  • 数据结构与算法
    • 链表,栈与队列
      • 单向链表
      • 双向链表
      • 侵入式数据结构
      • 栈
      • 队列
        • 基本实现
        • 下标的处理
        • 无锁队列
    • 树
      • 二叉查找树
      • AVL树
      • 红黑树
    • 哈希表
    • 图
    • 遍历
    • 排序
    • 查找
    • AC算法
  • 系统与库
    • Linux
    • Windows
    • macOS
  • 调试与逆向工程
    • Linux下段错误调试技巧
      • 生成core dump文件并用gdb调试
      • 使用dmesg和addr2line命令
      • 让程序段错误时自动输出堆栈信息并调试
      • 参考
    • 参考链接
  • TCP/IP网络
    • TCP/IP详解
    • 网络算法学
      • 9 Protocol Processing
        • 9.1 缓存管理
        • 9.2 CRC和Checksum
        • 9.3 通用协议处理
        • 9.4 重组
        • 9.5 结论
      • 14 Scheduling Packets
        • 14.1 概述
        • 14.2 拥塞控制
        • 14.3 带宽与突发限制
        • 14.4 多队列与优先级
        • 14.5 资源预留协议
        • 14.6 带宽保证
        • 14.7 时延保证
        • 14.8 Scalable Fair Queuing
        • 14.9 dpdk分层调度
        • 14.10 DiffServ架构介绍
        • 14.11 dpdk QoS框架
        • 附录
        • 参考
    • 参考链接
  • 安全
    • DPI
      • 参考链接
    • 参考链接
  • 性能优化
    • CPU知识
      • 理解微处理器
        • Introduction
        • Code and Data: a closer look
        • meet the “file clerk”
        • Refining the model
        • RAM: when the registers alone don’t cut it
        • A closer look at the code stream: the program
        • Excursus: Op codes and machine language
        • The programming model and the ISA
        • Branch instructions
        • Conclusion
      • 理解流水线与超标量执行
        • Introduction
        • Pipelining Explained
        • Superscalar execution
        • Combining pipelined and superscalar execution
        • Conclusions
      • 理解带宽与时延
      • NetBurst: The Microarchitecture of the Pentium 4 Processor
        • 引言
        • NetBurst微架构概述
        • 时钟频率
        • NetBurst微架构
        • 性能
        • 结论
        • 作者
      • CPU相关术语及缩略语
    • Intel优化手册
      • 2 INTEL 64 AND IA-32 PROCESSOR ARCHITECTURES
        • Skylake Server
        • Skylake
        • Haswell
        • Haswell-E
        • Broadwell
        • Sandy Bridge
        • Ivy Bridge
        • Core & Enhanced Core
        • Nehalem
        • 超线程技术
        • 64位架构
        • SIMD技术
      • 3 一般性优化原则
        • 3.1 性能工具
        • 3.2 处理器全景
        • 3.3 编程规则, 建议及调整提示
        • 3.4 优化前端
        • 3.5 优化Execution Core
        • 3.6 优化内存访问
        • 3.7 prefetch
        • 3.8 浮点数的考量
        • 3.9 最大化PCIe性能
      • 7 优化cache使用
        • 7.1 GENERAL PREFETCH CODING GUIDELINES
        • 7.2 PREFETCH AND CACHEABILITY INSTRUCTIONS
        • 7.3 PREFETCH
        • 7.4 CACHEABILITY CONTROL
        • 7.5 MEMORY OPTIMIZATION USING PREFETCH
        • 7.6 MEMORY OPTIMIZATION USING NON-TEMPORAL STORES
    • Intel VTune Amplifier
      • 介绍
        • 简介
        • 调优方法论
        • 安装
        • 一般使用
        • 参考资料
      • 教程: 优化热点
        • 编译示例程序
        • 创建vtune工程并运行分析
        • 分析代码
        • 优化代码
      • 教程: 优化硬件利用率
        • 编译示例程序
        • 创建vtune工程并运行分析
        • 分析代码
        • 优化代码
        • 进一步分析和优化
      • 教程: 优化伪共享
        • 编译示例程序
        • 创建vtune工程并运行分析
        • 分析代码
        • 优化代码
      • 调优指南: Xeon E5 v3
        • 1 Intel Xeon E5 v3 Family
        • 2 性能测量的复杂性
        • 3 发现性能问题
        • 4 调优Front-End Bound
        • 5 调优Back-End Bound
        • 6 调优Bad Speculation
        • 7 调优Retiring
        • 8 附加主题
    • CPU Cache Optimization
      • CPU Cache: the Need to Know
      • Our First Example
      • Cache Line and Fetch Utilization
      • More Examples
      • Conclusion
      • 参考
    • SIMD指令编程demo
      • 正常代码
      • 一次循环计算4次
      • 使用SSE指令
      • 使用AVX指令
      • 性能对比
      • 更多参考
    • 参考链接
  • 虚拟化
    • VMware
      • 参考链接
    • QEMU
      • 参考链接
    • 容器
      • 参考链接
  • AI
    • 学习资料
      • Pattern Recognition and Machine Learning
      • Convex Optimization
      • Deep Learning Fundamentals: An Introduction for Beginners
      • Optimization in Operations Research
      • Artificial Intelligence: A Modern Approach
      • Deep Learning in Natural Language Processing
      • 机器学习
      • Deep Learning
  • 开源
    • DPDK
      • 深入浅出DPDK
        • 引言
        • 深入浅出dpdk: cache与内存
        • 深入浅出dpdk: 并行计算
        • 深入浅出dpdk: 同步充斥机制
        • 深入浅出dpdk: 报文转发
        • 深入浅出dpdk: PCIe与包处理IO
        • 深入浅出dpdk: 网卡性能优化
        • 深入浅出dpdk: 流分类与多队列
        • 深入浅出dpdk: 硬件加速与功能卸载
      • DPDK
        • 源码分析: EAL
        • 源码分析: Memory
        • 源码分析: Memseg
        • 源码分析: Memzone
        • 源码分析: Malloc
        • 源码分析: Mempool
        • 源码分析: Mbuf
        • 源码分析: Ring
        • 编译系统
    • Tengine
      • 介绍
        • Tengine的由来
        • Tengine的改进
      • 架构
        • 高性能服务器设计
        • 进程模型
        • 事件处理模型
        • 模块化
        • 请求处理机制
        • 参考资料
      • 基本概念
        • 连接/connection
        • 请求/request
        • keepalive
        • pipeline
        • lingering_close
        • 参考资料
      • 基础设施
        • 日志
        • 内存管理
        • cycle
        • 字符串操作
        • 容器
        • 时间
        • 网络
        • 事件
        • 进程
        • 线程
        • 模块
        • 错误处理
      • HTTP
        • HTTP请求处理
    • wireshark
    • hyperscan
      • hyperscan介绍
        • 首席工程师: How we match regular expressions
        • 源码结构
        • 参考
      • hyperscan预备知识
        • C++ 11
        • 设计模式
        • 数据结构
        • Boost Library
        • Ragel
      • hyperscan调试环境与技巧
        • 编译
        • 生成dump信息
        • 加速编译过程
        • 生成源码文档
    • 参考链接
  • 工具与杂项
    • Vim
      • 简介与基本配置
        • 为什么要使用vim
        • 本系列文章的指导思想和一些约定
        • 学习之前的基本配置和几个需要了解的基本操作
    • Git
      • Git常用命令
        • 一、新建代码库
        • 二、配置
        • 三、增加/删除文件
        • 四、代码提交
        • 五、分支
        • 六、标签
        • 七、查看信息
        • 八、远程同步
        • 九、撤销
        • 十、其他
      • 小技巧
        • shell通过SSH连接github
        • 在命令提示符中显示当前分支
    • 虚拟机
      • 配置静态IP
      • 减少磁盘占用空间
        • 清理软件包
        • 清理不用的旧内核
        • 清理日志
        • 使用VMware磁盘工具回收磁盘空间
        • 参考
      • 杂项
        • 解决启动黑屏问题
    • CMake使用
      • Hello World
      • 清理编译后留下的文件
      • 处理多个目录
      • 处理第3方依赖库
      • 生成debug和release版的程序
      • 参考资料
    • 解决C/C++依赖库不兼容的问题
      • 问题引入与分析
      • 解决问题
      • 参考资料
    • VPS+Shadowsocks科学上网
      • 购买VPS
      • 安装,配置shadowsocks
        • 服务器端
        • 客户端
      • 其他技巧
        • 对不同网站使用不同的连接方式: 直接/代理
        • Window下令无法设置代理的应用程序使用代理
      • 参考链接
    • 补丁工具patch
      • 1 为单个文件生成补丁
      • 2 为多个文件生成补丁
      • 3 打补丁
      • 4 示例
    • libpcap使用
      • 创建句柄
        • pcap_open_offline
        • pcap_dump_open
      • 关闭句柄
        • pcap_close
        • pcap_dump_close
      • 读取packet
        • pcap_open/pcap_dispatch
      • 设置选项
        • pcap_set_promisc
      • 其他
        • pcap_breakloop
        • pcap_file
        • pcap_dump_file
      • 参考
    • CUnit
      • 编译安装CUnit-2.1-3
    • CentOS应用
      • CentOS7.3Minimal从零配置C/C++开发环境
      • 网络配置失败,显示Failed to start LSB: Bring up/down networking
      • 共享CentOS虚拟机上的文件给Windows本机访问
      • 安装pip
    • Ubuntu应用
      • 14.04更换阿里云源
      • 安装YouCompleteMe插件
      • 隔离某些cpu核心
      • VMware Workstation中的Ubuntu Server虚拟机重启后共享文件夹消失
      • Cannot set LC_CTYPE to default locale: No such file or directory
      • man文档不全
      • 修改系统对消息队列的默认限制
    • 小米路由器开发
      • 用ROM刷机
      • 开启SSH
      • 交叉编译环境搭建
      • 交叉编译库或工具
        • 编译libpcap
        • 编译helloworld
        • 编译gdb
      • 其他
        • 在小米路由器上部署静态网页
    • QEMU模拟器
      • 安装软件包
      • 用户模式
      • 系统模式
        • 一般使用
        • 配置网络
        • 远程gdb调试
    • 配置文件-参考链接
  • 兴趣爱好
    • 视频制作相关小技巧
      • 如何下载B站视频,或者用微博发的视频?
      • Mac系统下应该用什么软件做视频编辑?
      • Mac系统如何做动图(gif)?
      • 我有一些动图(gif),怎么将它们导入到fcpx?直接导入发现它们不动了啊!
      • Mac系统如何录制系统自己发出的声音,比如我正在听一首很好听的歌但是不方便下载它?
    • ffmpeg应用
      • 常用技巧
      • 参考
  • 友情链接
  • 关于我
赵子清技术文章
  • Docs »
  • 性能优化 »
  • CPU知识

CPU知识¶

参考:

  • http://archive.arstechnica.com/cpu/index.html
  • 理解微处理器
    • Introduction
    • Code and Data: a closer look
    • meet the “file clerk”
    • Refining the model
    • RAM: when the registers alone don’t cut it
    • A closer look at the code stream: the program
    • Excursus: Op codes and machine language
    • The programming model and the ISA
    • Branch instructions
    • Conclusion
  • 理解流水线与超标量执行
    • Introduction
    • Pipelining Explained
    • Superscalar execution
    • Combining pipelined and superscalar execution
    • Conclusions
  • 理解带宽与时延
  • NetBurst: The Microarchitecture of the Pentium 4 Processor
    • 引言
    • NetBurst微架构概述
    • 时钟频率
    • NetBurst微架构
    • 性能
    • 结论
    • 作者
  • CPU相关术语及缩略语
Next Previous

© Copyright 2019, 赵子清