X86基础知识
文章平均质量分 80
X86构架 Soc基础知识
Alix_sz
这个作者很懒,什么都没留下…
展开
-
Intel CPU 地址空间总结
一、地址空间映射 这里要说的是Intel构架下的CPU地址空间布局,注意这里没有说是内存地址空间布局。 我们说的内存通常是指DRAM,DRAM相对于CPU也可以算是外部设备,CPU地址空间是CPU访问外部设备过程中的一个概念,CPU除了访问DRAM外还会访问许多其他的设备。可以粗略的认为CPU地址空间包含DRAM地址空间,但两者却是不同的概念。而且DRAM地原创 2023-04-27 11:26:46 · 1126 阅读 · 0 评论 -
实模式和保护模式
实模式:(即实地址访问模式)它是Intel公司80286及以后的x86(80386,80486和80586等)兼容处理器(CPU)的一种操作模式。实模式被特殊定义为20位地址内存可访问空间上,这就意味着它的容量是2的20次幂(1M)的可访问内存空间(物理内存和BIOS-ROM),软件可通过这些地址直接访问BIOS程序和外围硬件。实模式下处理器没有硬件级的内存保护概念和多道任务的工作模式。但是为了向转载 2016-12-23 21:52:12 · 1024 阅读 · 0 评论 -
【x86构架】PCI& PCIE---基础(一)
导入:自PC在1981年被IBM发明以来,主板上都有扩展槽用于扩充计算机功能。现在最常见的扩展槽是PCIe插槽,实际上在你看不见的计算机主板芯片内部,各种硬件控制模块大部分也是以PCIe设备的形式挂载到了一颗或者几颗PCI/PCIe设备树上。固件和操作系统正是通过枚举设备树们才能发现绝大多数即插即用(PNP)设备的。那究竟什么是PCI呢?PCI/PCIe的历史在我们看PCIe是什么之前,我们应该要了解一下PCIe的祖先们,这样我们才能对PCIe的一些设计有了更深刻的理解,并感叹计算机技术的飞速发展和工转载 2021-12-06 10:30:59 · 2712 阅读 · 0 评论 -
【x86构架】PCI &PCIE--基础(二)
转载 2021-12-03 13:47:47 · 1772 阅读 · 0 评论 -
【x86架构】SMM
SMM是什么SMM全称System Manage Mode。从名字也可以大致看出,它是x86平台CPU的一种模式,该模式用来做系统管理的操作,具体来说,可以参考《64-ia-32-architectures-software-developer-system-programming-manual.pdf》中的说明:以上也只是Intel建议的在SMM下应该做的事情,而实际用来做什么,就只能看你写的具体代码了。总览下面简单说明SMM的基本特性:通常只在BIOS下实现,OS基本不需要特别关注SM转载 2021-12-03 09:30:37 · 3185 阅读 · 0 评论 -
【x86架构】Intel VT-d(4)- Interrupt Posting
Interrupt-posting是VT-d中中断重映射功能的一个扩展功能,该功能也是针对可重映射的中断请求。Interrupt-posting功能让一个可重映射的中断请求能够被暂时以一定的数据形式post(记录)到物理内存中,并且可选择性地主动告知CPU物理内存中暂时记录着pending的中断请求。在x86处理器的虚拟化中,Interrupt-posting再加上APIC Virtualization让VMM能够更加高效地处理分配各虚拟机的设备产生的中断请求。VT-d重映射硬件是否支持Interrupt转载 2021-09-15 17:13:16 · 270 阅读 · 0 评论 -
【x86架构】Intel 处理器 VT-d 架构 Kernel DMA 保护机制研究
这篇文章是对Intel VT-d入门研究的总结,主要是关于DMA重映射编程以及Windows上使用的内容,希望本文可以帮助你对它有一个基本的了解,并在感兴趣的基础上开始研究更多细节。英特尔VT-d英特尔VT-d(正式名称是定向I / O的英特尔VT)具有以下三个功能:· DMA Remapping· Interrupt Remapping· Interrupt PostingDMA重映射是其中最常讨论的功能,也是本文的重点。DMA重映射DMA重映射是一项重要功能,因为它允许软件通过为每个物理转载 2021-09-15 16:52:13 · 2262 阅读 · 0 评论 -
【x86架构】Intel VT-d(1)- 简介
Intel VT-d的全称是Intel Virtualization Technology for Direct I/O,它是Intel虚拟化技术的一部分,主要针对的是I/O子系统,它的实现主要是通过在硬件上引入重定向单元,该硬件重定向单元用于对I/O子系统的DMA操作和中断传递进行重定向,从而辅助VMM(Virtual Machine Monitor)实现I/O子系统的虚拟化。一般情况下VMM支持I/O虚拟化可以通过以下四种方式实现:纯软件模拟。即VMM的软件模拟一个现有的I/O设备,这种方式具有较好转载 2021-09-15 17:09:59 · 1282 阅读 · 0 评论 -
【x86架构】Intel VT-d(3)- 中断重映射
VT-d硬件中除了包含DMA重映射硬件外,也会包含中断重映射硬件,该中断重映射单元让系统软件能够对I/O设备产生的中断(包括从I/O APIC发送过来的中断,I/O设备产生的以MSI、MSI-X形式传递的中断,不包含中断重映射硬件本身产生的中断)的传输进行控制,而不仅仅取决于硬件的连接。对于VT-d硬件而言,中断请求就是从外面发送进来对物理地址范围0xFEEX_XXXXh的写请求。VT-d中,中断重映射功能由Extended Capability Register寄存器来决定,该寄存器的bit3表示Int转载 2021-09-15 17:12:26 · 499 阅读 · 0 评论 -
【x86架构】Intel VT-d(5)- DMAR表组织结构
在系统上电的时候,BIOS/UEFI负责检测并初始化重定向硬件(即VT-d硬件),为其分配相应的物理地址,并且以ACPI表中的DMAR(DMA Remapping Reporting)表的形式告知VT-d硬件的存在。DMAR的格式如下所示,先是标准的APCI表的表头,然后是Host Address Width表示该系统中支持的物理地址宽度;标志字节Flag表示VT-d硬件支持的一些功能,最后是Remapping Structures,即一堆有组织的结构体用来描述VT-d硬件的功能。Remapping S转载 2021-09-15 17:14:43 · 624 阅读 · 0 评论 -
【x86架构】Intel VT-d(2)- DMA重定向
DMA重定向硬件一般位于Root Complex中,Root-Complex是PCIe系统中引入的概念,它将CPU、内存子系统和PCIe子系连接起来。如下图所示:而Root Complex则经常被集成到CPU芯片上、MCH(Memory Controller Hub)上或者是IOH(I/O hub)上。DMA重定向硬件将来自于I/O子系统的内存访问请求分为两类:不带地址空间ID的请求(Request without Process Address Space Identifier,即Request-w转载 2021-09-15 17:11:09 · 415 阅读 · 0 评论 -
【x86架构】PCI&PCIE MSI中断
1、什么是MSI?(Message Signaled Interrupts)用简单的一句话就可以说明msi的原理:cpu有一段特殊的寄存器空间,往这个寄存器里面写数据,就会触发cpu的中断。pci设备经过配置以后,一旦需要上报中断就会往cpu这种寄存器里面写一个值,触发cpu的中断。2、PCI/PCIE Device侧关于MSI的配置:关于MSI特性,PCI提供了一组Capability Struct,其Capability ID = 5。软件需要根据Capabilities List在40-FF转载 2021-12-02 15:28:43 · 1369 阅读 · 0 评论 -
【x86架构】PCI IRQ
简述在【x86架构】8259A中断控制器中我们有介绍到,通过8259A中断控制器,系统最多可以连接64个中断源,但是在实际的使用中,如果真的用到8片的8259A,那么系统设计将会非常的困难。因此在实际的使用中,我们一般就使用1片或者2片的8259A芯片,这样就构成最多16个中断(其中一个还是级联用的,所以实际就15个)。但是,随着计算机系统的发展,需要接入的设备越来越到,尤其是PCI设备的引入,导致中断的个数实在是不够用了,为了解决这个问题,就引入了中断共享的概念,而为了更好的支持PCI设备,又引入了P转载 2021-12-02 15:04:29 · 810 阅读 · 0 评论 -
【x86架构】8254定时器
简介以下的简介主要来自WIKI(https://en.wikipedia.org/wiki/Intel_8253)。需要注意的是网站中将8253和8254一起说明了,因为时间上两者都来自825x系列的芯片。8254是一个PIT(Programmable Interval Timer),它利用若干个寄存器来进行定时和计时的操作。8254芯片的引脚如下图所示(8253和8254具有相同的引脚):在x86架构中,8254通常已经不是一个独立的芯片了,而是集成到了PCH(一个芯片组)中。8254在PCH转载 2021-12-02 14:44:23 · 1834 阅读 · 0 评论 -
【x86架构】APIC -- 高级可编程中断控制器
APIC – 高级可编程中断控制器x86架构的中断类型以及实现方式上有很多种。从中断控制器模块上分,x86中有8259中断控制器、Local APIC 以及 I/O APIC ,另外在PCI/PCIE中的存在MSI中断。从类型上来分,有硬件中断和软件中断之分,有可屏蔽中断和不可屏蔽中断之分。这部分的分类,前者是按照中断源来分的,可以是软件主动触发(通过INT等指令),也可以是模块内部或者外部硬件触发的;后者主要根据针对中断是否要被处理(大部分中断都可以通过设置来配置成可屏蔽或不可屏蔽)。从实现上来分,有I转载 2021-12-02 11:42:38 · 5969 阅读 · 0 评论 -
【x86架构】8259A中断控制器
Plan to write转载 2021-12-01 11:07:43 · 1547 阅读 · 0 评论 -
【x86架构】8254定时器
Plan to write原创 2021-12-01 11:06:47 · 839 阅读 · 0 评论 -
【x86架构】中断基础介绍
转载 2021-12-01 11:05:37 · 780 阅读 · 0 评论