问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

什么是异常/中断,在ia32中,两者的关系如何

发布网友 发布时间:2022-03-28 15:37

我来回答

3个回答

懂视网 时间:2022-03-28 19:58

ia32处理器有:代码段即存放指令代码;数据段即存放数据(数据默认存放在数据段,也可放在其他段);堆栈段即堆栈区域。

  中央处理器(CPU,英语:Central Processing Unit / Processor),是电子计算机的主要设备之一,电脑中的核心配件。其功能主要是解释计算机指令以及处理计算机软件中的数据。电脑中所有操作都由CPU负责读取指令,对指令译码并执行指令的核心部件。

  程序是由指令构成的序列,执行程序就是按指令序列逐条执行指令。一旦把程序装入主存储器中(简称主存),就可以由CPU自动地完成从主存取指令和执行指令的任务。

  

热心网友 时间:2022-03-28 17:06


先简单描述一下中断和异常相关的基本概念:
中断是一种机制,这种机制使I/O设备能够打断cpu当前正在进行的计算,这种机制使cpu能够同时进行计算和I/O操作。

异常,当cpu在执行指令的时候探测到一个错误条件,就会产生一个异常,比如被零除,访问的数据当前不在内存中等。

不管是中断还是异常,内核是通过中断向量号来识别的,cpu将中断向量号做为中断描述表的索引,相应的表项中包含了
中断处理程序或者异常处理程序的地址。

这里将不讨论I/O设备产生的中断,因为其牵扯的内容多且有点复杂,留作以后分析。

因为异常是cpu内部识别的,所以其对应的中断向量号是固定的,处理期间中断对应的中断向量号也是固定的,将从这些
中断和异常里面摘取几个典型简要分析一下,看看在能处理异常和中断前,freebsd9.2所完成的初始化工作以及
IA32提供的中断处理机制。



[IA32:高级可编程中断控制器(APIC)]-对于APIC,下面简单介绍一下相关概念以及用来发送处理器间中断的寄存器,详细信息
可以参考"Intel 64 and IA-32 ArchitecturesSoftware Developer’s Manual Volume 3A"第十章,将处理器间中断简称为IPI。

在IA32中,APIC分为local APIC和I/O APIC两种:
local APIC,主要用来完成:
1:从cpu的处理器引脚,或者外部中断源,或者外部的I/O APIC接收中断,并将中断发送给处理器核心进行处理。
2:在SMP系统中,local APIC从系统总线上接收其它cpu发送的IPI消息或者将IPI消息通过系统总线发送给其它cpu,IPI消息
   也可以用来在系统中的cpu间分发中断。

I/O APIC:主要用来接收I/O设备产生的中断,并且将中断转换为中断消息发送给local APIC,关于I/O 1PIC将不会去深入分析,
          知道其作用就行;作为一个实例,大家可以参考82093AA I/O APIC这个中断控制器芯片的详细说明。

local APIC和I/O APIC的关系图如下所示:

  
local APIC包含了一组寄存器,在local APIC能正确工作之前,要初始化这些寄存器,其中有些寄存器是只读的,在SMP系统的配置
中,这组寄存器被映射到一个大小为4KB的连续物理地址空间中,起始物理地址为FEE00000H,当然也可以通过修改IA32_APIC_BASE MSR
这个寄存器来更改起始物理地址。

下面简单描述一下两个local APIC寄存器:Local APIC ID Register和Interrupt Command Register。

[Local APIC ID Register]:
在加电时,系统硬件会给每个local APIC分配一个唯一的APIC ID,系统硬件基于系统拓扑以及编码插槽位置信息等获取一个APIC ID。
在SMP系统中,BIOS和操作系统使用local APIC ID 作为cpu的id,和前面描述的logical cpu id不同,该寄存器如下图所示。    


[Interrupt Command Register]-该寄存器是64bit,主要用来发送IPI,为了发送一个IPI,必须要正确的构造这个寄存器,向低32位
执行一个写操作,将导致一个IPI被发送,寄存器详细格式如下图所示,正确构造这个寄存器就是用正确的值来初始化其中的字段:

  只关心下面的字段:
Vector:中断向量号。

Delivery Mode:指定了IPI发送类型,Fixed之外的类型大部分在多处理器启动阶段使用,用来启动AP等。

Delivery Status:指示IPI的发送状态。0:IPI已经成功发送出去;1:还没有完成IPI的发送。

Destination:IPI的目的地,只有当Destination Shorthand字段为00时,才使用,此时该字段的值为目的cpu的local APIC ID。

Destination Shorthand:使用速记符号指定IPI的目的地,编码如下:
00:IPI目的地在Destination字段中指定。
01:IPI的目的地仅包括发送此IPI的cpu。
10:IPI的目的地为系统中全部cpu,包括发送此IPI的cpu。
11:IPI的目的地为系统中除发送此IPI的cpu以外的cpu。

热心网友 时间:2022-03-28 18:24

异常是单个程序的代码,中断是系统的代码,异常是由中断呼叫的
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
交通事故致人死亡,该如何处理? 爱普生LQ1600KIIIH 断色带 爱普生针式打印机LQ1600KⅢH近两月来总频繁中断打印,同时电脑显示是通讯... ACQUA DI PARMA 帕尔玛之水 蓝色地中海系列 桃金娘加州桂中性淡香水 E... 女士香水推荐-ACQUA DI PARMA 帕尔玛之水 优雅木兰女士浓香水 EDP 50... ACQUA DI PARMA帕尔玛之水克罗尼亚系列中性香水套装-适用对象 帕尔玛 | 必须拥有的小众沙龙香 ACQUA DI PARMA/帕尔玛之水克罗尼亚系列黑调男士古龙水-适用对象 ACQUA DI PARMA 帕尔玛之水 克罗尼亚系列 风度中性古龙水 EDC 20ml... ACQUA DI PARMA/帕尔玛之水-绅士男士古龙水EDC 适合幼儿园小朋友听的睡前故事 IA32 IA64 X64 的区别 数据线厂家分析,HDMI高清线的接口可分为哪些类型 HDMI线最长能达到多少米? 有谁知道,HDMI高清线和DVI线有什么区别吗? HDMI高清线 连接电脑显示屏 会不会很清楚? hdmi高清线有什么用 如何正确使用HDMI线,HDMI高清线使用方法 HDMI2.1线有什么优势? HDMI高清线如何正常的使用? HDMI高清线2.1版分辨率可以达到几K呢? HDMI高清线接口有什么用? 什么是HDMI高清视频线? hdmi高清线的作用 什么是hdmi高清线 IA32架构的介绍 两个月的宝宝脸上长湿疹怎么护理 宝宝脸上湿疹该怎么护理?会自然消失吗?为什么? 我家宝宝脸上长了很多湿疹又很干燥,怎么护理呢? 2个月宝宝脸上长湿疹怎么护理 高手请进 卡西欧倒计时怎么弄? 电子手表怎么计时? 卡西欧电子表3135倒计时如何设置 我新买了一块迪士尼电子手表(粉色),该手表怎么... 电子表是怎样计时的 电子手表怎么调12时计时法? 电子手表怎么记算时间 电子手表如何使用 怎样调电子手表时间 带倒计时的电子表 电子手表的秒针怎么调? 请问PPT上面出现了这个数字,应该是时间,应用到了... 怎么样删除PPT中的日期/时间 ppt右上角的日期怎么去掉 wps做ppt怎么把新建幻灯片的日期去掉 幻灯片打印时总是自己出现打印日期,怎么去掉自动... WPS中怎么消除PPT下面的日期啊 PPT日期和页码怎么删除或更新? 使用Powerpoint2007直接以讲义保存为PDF,如何去掉...