相关资料:

官网链接

硬件架构部分
10th Generation Intel® Core™ Processors, Datasheet Volume 1 of 2
10th Generation Intel® Core™ Processors Datasheet Volume 2 of 2

软件编程
Intel® 64 and IA-32 architectures software developer’s manual

相关资料下载:
链接: https://pan.baidu.com/s/1G81vQsEp0WiPehaqKCE3HQ 提取码: jt26

硬件架构导读

注:本文的目的是 为了便于后期使用时快速找到 资源 的相关位置以及概述;

Volt1

Chapter 1: Introduction

关键点:

10th Gen Intel ® CoreTM Processor U/S/H is built on 14-nanometer(14 nm工艺) process technology.

问题:
i7处理器天梯图2020 电脑cpu天梯图实时排名Intel处理器代号名称intel 芯片 后缀 HK,K,T,S,HQ,R,U
Intel CPU命名规则,以及U/S/H系列分别是? 如何看处理器基于哪个系列.
Processor Line 1:
Package: 插槽类型
Base TDP:

H/S Line Platforms结构图

image.png
H/S-Processor Line Platforms

Chapter 2:Interface接口

基础扫盲: FSB总线、HT总线、QPI总线、DMI总线介绍
这里因为研究Intel架构,所以重点关注QPI和DMI总线
image.png

DMI是指Direct Media Interface(直接媒体接口)。它基于PCI-Express总线,跟随PCI-E总线的换代而换代。DMI采用点对点的连接方式,时钟频率为100MHz

2.2 PEG接口(PCIE显卡接口)

2.2.1 PCI+E 支持

处理器支持以下功能:

  • 适用于下游设备的分层PCI兼容配置机制
  • 传统的PCI样式流量(异步监听,PCI排序)
  • PCI Express *扩展的配置空间。配置空间的前256个字节直接别名为PCI兼容性配置空间。固定的4 KB内存映射空间块之上(从100h开始)的其余部分称为扩展配置空间。
  • PCI Express *增强访问机制。以平面内存映射方式访问设备配置空间
  • 自动发现,协商和培训重置外的链接。
  • 虚拟通道0中的对等网段目标发布的写流量(无对等读流量):DMI-> PCI Express *端口0
  • 64位下游地址格式,但处理器永远不会生成大于512 GB的地址(位63:39始终为零)
  • 64位上游地址格式,但是处理器以不支持的请求响应来响应上游读取事务到512 GB以上的地址(位63:39中的任何一个都不为零的地址)。到512 GB以上地址的上游写事务将被丢弃。
  • 重新发出以前以“配置重试”状态完成的配置周期
  • PCI Express *参考时钟为100MHz差分时钟
  • 电源管理事件(PME)功能
  • Dynamic width capability
  • 消息信号中断(MSI和MSI-X)
  • Lane reversal
  • 仅服务器SKU支持完全高级错误报告(AER)和控制功能。

2.2.2 PCIE架构

当前版本最多支持PCIE GEN3.0,采用128/130b编码,基于PCI Express Base Specification 3.0
image.png

2.2.3 PCIE配置空间访问机制

image.png
PCI Express *将配置空间扩展到每个设备/功能4K字节。

PCI Express 配置空间分为一个PCI兼容区域(就是前256个字节组成)和 一个扩展的PCI Express 区域(就是 0x100-0xFFF)。

PCI前256字节配置空间:可以通过 PCI规范中定义的机制(就是 通过 0cf8-0cff : PCI conf1 两个ioport通过BDF来寻址访问 ) 或 使用PCI Express *增强配置机制(ECAM- PCI Express Enhanced Configuration Access Mechanism)访问机制来访问PCI兼容区域。

PCI Express 主机桥,将内存映射的PCI Express 配置空间访问从主机处理器转换为PCI Express 配置周期。为了保持与PCI配置寻址机制的兼容性,建议系统软件仅使用32位操作(32位对齐)访问增强的配置空间。有关PCI兼容和PCI Express 增强配置机制和事务规则的详细信息,请参阅《 PCI Express基本规范》。

可以参考:PCIE ECAM机制

2.2.4 PCIE的均衡机制

链路均衡要求对处理器和端点设备的TX和RX端进行均衡。
调整通道的发送器和接收器是为了改善信号接收质量并改善链路的鲁棒性和电气裕度。
链路时序和电压 余量(margins)在很大程度上取决于链路的均衡性。

处理器支持以下功能:
•完全TX均衡:三个抽头线性均衡(Pre,Current和Post光标),分别具有FS / LF(全摆幅/低频)24/8值。
全面的RX均衡和采集:AGC(自适应增益控制),CDR(时钟和数据恢复),自适应DFE(决策反馈均衡器)和自适应CTLE峰值(连续时间线性均衡器)。

完全符合PCI Express * Gen 3规范的自适应3 EQ。 (硬件相关,描述可能有不到位的)

Chapter 3:Technologies

Intel ® Virtualization Technology (Intel ® VT)

相关参考:
Intel® Virtualization Technology Requirements # 虚拟化的技术需求:支持VT-x和VT-d
Intel® Desktop Boards require the following components to support Intel VT or Intel VT-d:

  • Intel Processor that supports Intel VT
  • BIOS with Intel VT or VT-d support (found on the Security menu in BIOS setup)
  • A third-party VMM (virtual machine manager) may also be required

Does My Processor Support Intel® Virtualization Technology? # windows下如何查看自己CPU是否支持虚拟化
Using Intel® Virtualization Technology (Intel® VT) with Intel® QuickAssist Technology : 如何开启Intel的虚拟化

Intel ® Virtualization Technology (Intel ® VT-X)

Intel® 64 and IA-32 architectures software developer’s manual :Chapter23-Chapter33
虚拟化作用:使一个系统表现为多个独立的系统,来充分利用硬件资源;

注:VT是IA-32,VT-X是IA-64,同样的东西,说法不同

吹牛逼:By using Intel VT-x, a VMM is : Robust, Enhanced, More Reliable, More Secure.

Intel VT-x Key Feature(重点): TBD
处理器支持以下新增的英特尔®VT-x新功能:

  • Extended Page Table (EPT) Accessed and Dirty Bits
  • EPTP (EPT pointer) switching
  • Pause loop exiting

处理器IA内核支持以下英特尔®VT-x基础功能:

  • Mode-based Execute Control for EPT (MBEC)
  • Extended Page Tables (EPT)
  • Virtual Processor IDs (VPID)
  • Guest Preemption Timer
  • Descriptor-Table Exiting

Intel ® Virtualization Technology (Intel ® VT) for DirectedI/O (Intel ® VT-d)

Intel® Virtualization Technology for Directed I/O :描述VT-d的虚拟化技术

  • I/O Device Assignment and Security
  • DMA Remapping
  • Interrupt Remapping
  • Reliability

Intel ® APIC Virtualization Technology (Intel ® APICv)

APIC虚拟化是功能的集合,可用于支持中断和高级可编程中断控制器的虚拟化
详情参考 Intel® 64 and IA-32 architectures software developer’s manual volt3 Chapter 29

  • Virtual-interrupt Delivery
  • Use TPR Shadow.
  • Virtualize APIC Accesses.
  • Virtualize x2APIC Mode.
  • APIC-register Virtualization.
  • Process Posted Interrupts.

Volt2

Chapter 2 : 处理器配置寄存器和地址域

2.2 PCI设备和功能

处理器包含多个PCI设备作为一个单独的组件;一般可能会有BUS0,DEVICE(00-主桥,02-Processor Graphics, 05-Image Unit, 08-GMM):有的处理器可能会缺少其中几个;

  1. 00:00.0 Host bridge: Intel Corporation Device 3ecc (rev 08)
  2. 00:02.0 VGA compatible controller: Intel Corporation Device 3ea5 (rev 01)
  3. 00:08.0 System peripheral: Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th Gen Core Processor Gaussian Mixture Model

2.3 System Address Map(重点)

CPU支持512G(39-bits)内存地址空间 和 64KB+3 IO空间;

本节重点介绍如何对内存空间进行分区以及如何使用单独的内存区域。I / O地址空间具有更简单的映射,并将在本章末尾进行说明。

CPU支持PEG(PCI Express* Graphics)upper prefetchable base/limit registers,这允许PEG单元进行32位(4G)以上的I / O地址访问; 在DMI接口或PCI Express接口上允许大于4 GB的地址。

处理器最多支持32 GB的DRAM。 超过32 GB不能访问DRAM内存。 DRAM的容量受可用地址引脚数的限制。 没有硬件锁可以防止插入比可寻址更多的内存。

DMI接口和PCI-E接口都可访问超过4G的地址空间。 CPU支持最大32G的DRAM;

image.png
参考:内存分布之MMIO
其中:TOLUD,TSEGMB, TOULUD等参数 查看 Chapter3 Host Bridge/DRAM Registers 寄存器,在BIOS中会初始化一些地址分布信息;

  1. # memory信息
  2. baiy@baiy-ThinkPad-E470c:x86_64$ sudo cat /proc/iomem
  3. [sudo] password for baiy:
  4. 00000000-00000fff : Reserved
  5. 00001000-00057fff : System RAM
  6. 00058000-00058fff : Reserved
  7. 00059000-0008bfff : System RAM
  8. 0008c000-000fffff : Reserved
  9. 000a0000-000bffff : PCI Bus 0000:00
  10. 000c0000-000cffff : Video ROM
  11. 000f0000-000fffff : System ROM
  12. 00100000-aecee017 : System RAM
  13. aecee018-aecfc057 : System RAM
  14. aecfc058-aecfd017 : System RAM
  15. aecfd018-aed0d057 : System RAM
  16. aed0d058-b0dfbfff : System RAM
  17. b0dfc000-b0dfcfff : ACPI Non-volatile Storage
  18. b0dfd000-b0dfdfff : Reserved
  19. b0dfe000-ba763fff : System RAM
  20. ba764000-bbe48fff : Reserved
  21. bbe49000-bbe4afff : ACPI Non-volatile Storage
  22. bbe4b000-bbe4bfff : Reserved
  23. bbe4c000-bbe99fff : ACPI Non-volatile Storage
  24. bbe9a000-bbefefff : ACPI Tables
  25. bbeff000-bbefffff : System RAM
  26. bbf00000-bf7fffff : Reserved
  27. bd800000-bf7fffff : Graphics Stolen Memory
  28. bf800000-feafffff : PCI Bus 0000:00
  29. bf800000-bf9fffff : PCI Bus 0000:03
  30. bfa00000-bfbfffff : PCI Bus 0000:03
  31. d0000000-dfffffff : 0000:00:02.0
  32. e0000000-f1ffffff : PCI Bus 0000:01
  33. e0000000-efffffff : 0000:01:00.0
  34. f0000000-f1ffffff : 0000:01:00.0
  35. f2000000-f2ffffff : 0000:00:02.0
  36. f3000000-f3ffffff : PCI Bus 0000:01
  37. f3000000-f3ffffff : 0000:01:00.0
  38. f4000000-f41fffff : PCI Bus 0000:05
  39. f4000000-f41fffff : 0000:05:00.0
  40. f4000000-f41fffff : ath
  41. f4200000-f42fffff : PCI Bus 0000:04
  42. f4200000-f4203fff : 0000:04:00.0
  43. f4200000-f4203fff : r8169
  44. f4204000-f4204fff : 0000:04:00.0
  45. f4204000-f4204fff : r8169
  46. f4300000-f43fffff : PCI Bus 0000:02
  47. f4300000-f43007ff : 0000:02:00.0
  48. f4301000-f4301fff : 0000:02:00.0
  49. f4301000-f4301fff : mmc0
  50. f4400000-f440ffff : 0000:00:14.0
  51. f4400000-f440ffff : xhci-hcd
  52. f4410000-f441ffff : 0000:00:1f.3
  53. f4410000-f441ffff : ICH HD audio
  54. f4420000-f4423fff : 0000:00:1f.3
  55. f4420000-f4423fff : ICH HD audio
  56. f4424000-f4427fff : 0000:00:1f.2
  57. f4428000-f4429fff : 0000:00:17.0
  58. f4428000-f4429fff : ahci
  59. f442a000-f442afff : 0000:00:14.2
  60. f442a000-f442afff : Intel PCH thermal driver
  61. f442b000-f442bfff : 0000:00:16.0
  62. f442b000-f442bfff : mei_me
  63. f442c000-f442c7ff : 0000:00:17.0
  64. f442c000-f442c7ff : ahci
  65. f442d000-f442d0ff : 0000:00:1f.4
  66. f442e000-f442e0ff : 0000:00:17.0
  67. f442e000-f442e0ff : ahci
  68. f7fe0000-f7ffffff : pnp 00:01
  69. f8000000-fbffffff : PCI MMCONFIG 0000 [bus 00-3f]
  70. f80fa000-f80fafff : Reserved
  71. f80fd000-f80fdfff : Reserved
  72. fd000000-fdabffff : pnp 00:06
  73. fdad0000-fdadffff : pnp 00:06
  74. fdb00000-fdffffff : pnp 00:06
  75. fe000000-fe010fff : Reserved
  76. fe036000-fe03bfff : pnp 00:06
  77. fe03d000-fe3fffff : pnp 00:06
  78. fe410000-fe7fffff : pnp 00:06
  79. feb00000-febfffff : pnp 00:01
  80. fec00000-fec003ff : IOAPIC 0
  81. fed00000-fed003ff : HPET 0
  82. fed00000-fed003ff : PNP0103:00
  83. fed10000-fed17fff : pnp 00:01
  84. fed18000-fed18fff : pnp 00:01
  85. fed19000-fed19fff : pnp 00:01
  86. fed20000-fed3ffff : pnp 00:01
  87. fed90000-fed90fff : dmar0
  88. fed91000-fed91fff : dmar1
  89. fee00000-fee00fff : Local APIC
  90. 100000000-23f7fffff : System RAM
  91. 12ee00000-12fa031d0 : Kernel code
  92. 12fa031d1-13046c83f : Kernel data
  93. 1306ec000-130994fff : Kernel bss
  94. 23f800000-23fffffff : RAM buffer

Chapter 3-14: 各模块寄存器介绍