CPU的相关知识

目录

Intel

IntelCPU分为32位和64位,32位CPU称为IA32,64位CPU称为IA64。

基本执行环境

IA32的基本执行环境

基本寄存器:

8个32位的通用寄存器,EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP
6个16位的段寄存器,CS、DS、SS、ES、FS、GS
1个32位的EFLAGS寄存器,EFLAGS
1个32位的指令指针寄存器,EIP

FPU寄存器:

8个80位的浮点数寄存器,ST0~ST7
1个16位的控制寄存器
1个16位的状态寄存器
1个16位的标签寄存器
1个11位的操作码寄存器
1个48位的FPU指令指针寄存器
1个48位的FPU数据指针寄存器

MMX寄存器:

8个64位的MMX寄存器,MM0~MM7
XMM寄存器:8个128位的XMM寄存器,XMM0~XMM71个32位的MXCSR寄存器

寻址空间:

0~2^32-1

除此之外,还有其它的寄存器。

控制寄存器

CR0~CR4

系统表指针寄存器

GDTR
LDTR
IDTR

任务寄存器

调试寄存器

MSR寄存器

IA64的基本执行环境

基本寄存器:

16个64位的通用寄存器,RAX、RBX、RCX、RDX、RSI、RDI、RBP、RSP、R8~R15
6个16位的段寄存器,CS、DS、SS、ES、FS、GS
1个64位的RFLAGS寄存器,RFLAGS(高32位保留,第32位同FLAGS)
1个64位的指令指针寄存器

FPU寄存器:

8个80位的浮点数寄存器
1个16位的控制寄存器
1个16位的状态寄存器
1个16位的标签寄存器
1个11位的操作码寄存器
1个64位的FPU指令指针寄存器
1个64位的FPU数据指针寄存器

MMX寄存器:

8个64位的MMX寄存器

XMM寄存器:

16个128位的XMM寄存器
1个32位的MXCSR寄存器

地址空间:

0~2^64-1

除此之外,还有其它的寄存器。

控制寄存器

CR0~CR4

系统表指针寄存器

GDTR
LDTR
IDTR

任务寄存器

调试寄存器

MSR寄存器

寄存器用法约定

Intel的CPU指令集中,对寄存器的用途有一套约定用法,大多数指令都遵守这套约定。

段寄存器:

CS: Code Segment     
DS: Data Segment     
SS: Stack Segment  
ES: Data Segment
FS: Data Segment
GS: Data Segment

堆栈:

ESP/RSP: Stack pointer (in the SS segment)
EBP/RBP: Pointer to data on the stack(in the SS segment)

通用寄存器:

EAX/RAX: Accumulator for operands and reulst data
EBX/RBX: Pointer to data in the DS segment
ECX/RCX: Counter for string and loop operations
EDX/RDX: I/O pointer
ESI/RSI: Pointer to data in the segment pointed to by the DS register; source pointer for string operations
EDI/RDI: Pointer to data (or destination) in the segment pointed to by the ES register; destination pointr for string operations

参考

  1. intel architectures-software-developer-manuals

系统设计

  1. 各大云厂商的 API 设计风格
  2. Google 是如何实践 RESTful API 设计的?
  3. Netflix 的异地多活设计: Active-Active for Multi-Regional Resiliency
  4. Facebook 的缓存系统实践经验《Scaling Memcache at Facebook》
  5. 多机数据系统的正确性与一致性
  6. 《大型网站技术架构: 核心原理与案例分析》阅读摘录
  7. 《分布式金融架构课》阅读笔记2: 线性一致的分布式数据系统的实现过程
  8. 《分布式金融架构课》阅读笔记1: 单机&多机并发/多副本读写正确性和一致性
  9. 《消息队列高手课》阅读笔记: Rabbit/Rocket/Kafka/模型/消息事务/保序等
  10. 《消息队列高手课》阅读笔记: Rabbit/Rocket/Kafka/模型/消息事务/保序等
  11. 《Redis核心技术与实践》阅读笔记: 数据类型/存储开销/Rehash/案例等
  12. 《Redis核心技术与实践》阅读笔记: 数据类型/存储开销/Rehash/案例等
  13. 《高并发系统设计40问》阅读笔记: 数据库/缓存/消息队列/分布式服务
  14. 《高并发系统设计40问》阅读笔记: 数据库/缓存/消息队列/分布式服务
  15. 《MySQL实战45讲》阅读笔记: 索引类型/数据可靠性/事务/间隙锁/临时表等
  16. 系统性能分析方法论: 统计图谱工具
  17. 张磊《深入剖析Kubernetes》专栏的阅读笔记
  18. 代理服务软件haproxy、nginx、envoy对比,以及开源的API网关项目对比
  19. 蓝绿部署、金丝雀发布(灰度发布)、A/B测试的准确定义
  20. 阿里巴巴的应用限流和服务降级是怎样实现的?|如何打造平台稳定能力
  21. 陈皓《左耳听风》专栏的阅读笔记(持续更新)
  22. 好雨云帮,一款不错的国产开源PaaS
  23. 怎样为软件的不同版本命名?
  24. 怎样选择开源项目的license?
  25. Glusterfs的架构
  26. 怎样设计一个企业级的PaaS平台?
  27. 几种常见的LDAP系统
  28. DNS SRV介绍(一种用DNS做服务发现的方法)
  29. DNS,DNS-Domain Name System
  30. 思科的网络设备
  31. 虚拟化技术汇总
  32. 认证与授权系统的汇总
  33. 高可用实现方法汇总
  34. 编译器汇总
  35. Linux系统的优化方法
  36. CentOS7的一些变化
  37. 分布式系统的一些知识
  38. 计算机编程语言的特性汇总
  39. 网络通信的一些基础知识
  40. PCIE总线的一些知识
  41. 操作系统的API
  42. 网卡的一些知识
  43. Linux系统的构建过程
  44. 数据结构与算法
  45. CPU的相关知识

推荐阅读

Copyright @2011-2019 All rights reserved. 转载请添加原文连接,合作请加微信lijiaocn或者发送邮件: [email protected],备注网站合作

友情链接:  系统软件  程序语言  运营经验  水库文集  网络课程  微信网文  发现知识星球