相关资料:
硬件架构部分
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
关键点:
- 1.2 Supported Technologies 支持技术
- 1.8 terminology术语
- 1.9 相关文档链接(这里关注ACPI,PCIE 和 Intel® 64 and IA-32 architectures software developer’s manual)
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结构图
H/S-Processor Line Platforms
Chapter 2:Interface接口
基础扫盲: FSB总线、HT总线、QPI总线、DMI总线介绍
这里因为研究Intel架构,所以重点关注QPI和DMI总线
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 ;
2.2.3 PCIE配置空间访问机制
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):有的处理器可能会缺少其中几个;
00:00.0 Host bridge: Intel Corporation Device 3ecc (rev 08)
00:02.0 VGA compatible controller: Intel Corporation Device 3ea5 (rev 01)
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;
参考:内存分布之MMIO
其中:TOLUD,TSEGMB, TOULUD等参数 查看 Chapter3 Host Bridge/DRAM Registers 寄存器,在BIOS中会初始化一些地址分布信息;
# memory信息
baiy@baiy-ThinkPad-E470c:x86_64$ sudo cat /proc/iomem
[sudo] password for baiy:
00000000-00000fff : Reserved
00001000-00057fff : System RAM
00058000-00058fff : Reserved
00059000-0008bfff : System RAM
0008c000-000fffff : Reserved
000a0000-000bffff : PCI Bus 0000:00
000c0000-000cffff : Video ROM
000f0000-000fffff : System ROM
00100000-aecee017 : System RAM
aecee018-aecfc057 : System RAM
aecfc058-aecfd017 : System RAM
aecfd018-aed0d057 : System RAM
aed0d058-b0dfbfff : System RAM
b0dfc000-b0dfcfff : ACPI Non-volatile Storage
b0dfd000-b0dfdfff : Reserved
b0dfe000-ba763fff : System RAM
ba764000-bbe48fff : Reserved
bbe49000-bbe4afff : ACPI Non-volatile Storage
bbe4b000-bbe4bfff : Reserved
bbe4c000-bbe99fff : ACPI Non-volatile Storage
bbe9a000-bbefefff : ACPI Tables
bbeff000-bbefffff : System RAM
bbf00000-bf7fffff : Reserved
bd800000-bf7fffff : Graphics Stolen Memory
bf800000-feafffff : PCI Bus 0000:00
bf800000-bf9fffff : PCI Bus 0000:03
bfa00000-bfbfffff : PCI Bus 0000:03
d0000000-dfffffff : 0000:00:02.0
e0000000-f1ffffff : PCI Bus 0000:01
e0000000-efffffff : 0000:01:00.0
f0000000-f1ffffff : 0000:01:00.0
f2000000-f2ffffff : 0000:00:02.0
f3000000-f3ffffff : PCI Bus 0000:01
f3000000-f3ffffff : 0000:01:00.0
f4000000-f41fffff : PCI Bus 0000:05
f4000000-f41fffff : 0000:05:00.0
f4000000-f41fffff : ath
f4200000-f42fffff : PCI Bus 0000:04
f4200000-f4203fff : 0000:04:00.0
f4200000-f4203fff : r8169
f4204000-f4204fff : 0000:04:00.0
f4204000-f4204fff : r8169
f4300000-f43fffff : PCI Bus 0000:02
f4300000-f43007ff : 0000:02:00.0
f4301000-f4301fff : 0000:02:00.0
f4301000-f4301fff : mmc0
f4400000-f440ffff : 0000:00:14.0
f4400000-f440ffff : xhci-hcd
f4410000-f441ffff : 0000:00:1f.3
f4410000-f441ffff : ICH HD audio
f4420000-f4423fff : 0000:00:1f.3
f4420000-f4423fff : ICH HD audio
f4424000-f4427fff : 0000:00:1f.2
f4428000-f4429fff : 0000:00:17.0
f4428000-f4429fff : ahci
f442a000-f442afff : 0000:00:14.2
f442a000-f442afff : Intel PCH thermal driver
f442b000-f442bfff : 0000:00:16.0
f442b000-f442bfff : mei_me
f442c000-f442c7ff : 0000:00:17.0
f442c000-f442c7ff : ahci
f442d000-f442d0ff : 0000:00:1f.4
f442e000-f442e0ff : 0000:00:17.0
f442e000-f442e0ff : ahci
f7fe0000-f7ffffff : pnp 00:01
f8000000-fbffffff : PCI MMCONFIG 0000 [bus 00-3f]
f80fa000-f80fafff : Reserved
f80fd000-f80fdfff : Reserved
fd000000-fdabffff : pnp 00:06
fdad0000-fdadffff : pnp 00:06
fdb00000-fdffffff : pnp 00:06
fe000000-fe010fff : Reserved
fe036000-fe03bfff : pnp 00:06
fe03d000-fe3fffff : pnp 00:06
fe410000-fe7fffff : pnp 00:06
feb00000-febfffff : pnp 00:01
fec00000-fec003ff : IOAPIC 0
fed00000-fed003ff : HPET 0
fed00000-fed003ff : PNP0103:00
fed10000-fed17fff : pnp 00:01
fed18000-fed18fff : pnp 00:01
fed19000-fed19fff : pnp 00:01
fed20000-fed3ffff : pnp 00:01
fed90000-fed90fff : dmar0
fed91000-fed91fff : dmar1
fee00000-fee00fff : Local APIC
100000000-23f7fffff : System RAM
12ee00000-12fa031d0 : Kernel code
12fa031d1-13046c83f : Kernel data
1306ec000-130994fff : Kernel bss
23f800000-23fffffff : RAM buffer