前言

分析软件安全的时候必然需要详细理解软件执行的环境,也就是x86。如果很熟悉的大佬可以回避。。。。为了能活着写完,我在这里忽略英特尔的其他处理器。以下提到的都是英特尔核心处理器。

概览

一个计算机主要资源是内存和处理器。在装有英特尔处理器的电脑里DRAM芯片作为内存,一个或多个CPU芯片用作逻辑处理器。这些资源都被系统软件管理。一般来说,一台机器里面有两个系统软件,操作系统,内核系统。英特尔架构被设计来支持多线程。一个操作系统分配资源来完成多线程。云服务器上的机器还可能会同时运行多个操作系统。系统程序用虚拟化技术把各个操作系统隔离开运行。
而虚拟化主要技术就是地址转换(用来给软件在内存上映射可用空间)这样的隔离可以避免其他软件的崩溃,或者是恶意软件威胁到其他软件或修改软件的内存。
另一个虚拟化关键技术是CUP可执行的软件特权级别。硬件特权分离通过干扰管理它的系统软件,确保崩溃或恶意程序可以威胁到其他软件。进程通过创建执行线程说明自己的需求计算能力大小,线程的执行有操作系统分配逻辑处理器完成。操作系统给每一个进程表示自己有无限多的逻辑处理器可以完成它们的线程。现在的操作系统是抢占式多线程,逻辑处理器每隔几毫秒在所有的线程之间改变一下运行状态。这一过程通过切换上下文来完成的。这些都是由虚拟机管理器来完成的。
一般逻辑处理器的处理速度都大大的超过了DRAM的吞吐速率。现在的计算机体系结构中许都复杂性都源于弥补这种速度差距,最近的英特尔CPU依赖超线程,无序执行和缓存等等都是产生隐患的原因。
英特尔处理器包含许多级别的中间存储器,它们比DRAM快得多,但也小了几个数量级。最快的缓存器是逻辑处理器中的寄存器。其他的中间缓冲器被称为caches。英特尔架构要求应用软件各自明确分工管理寄存器。与此同时,缓存透明地加速了DRAM请求,而且大多数情况下对软件是不可见的。计算机有多个逻辑处理器,所以也就有多个缓存分布在CPU芯片。在多套接字系统上,缓存分布在多个CPU芯片上。因此,Intel系统使用缓存一致性机制确保所有缓存具有相同的上下文。由于缓存一致性,程序员可以构建对软件透明的缓存,并且分布式在缓存存在的情况下仍然正确运行。然而缓存一致性并不包括地址转换使用的专用缓存,系统软件必须采取特殊措施来保持这些缓存的一致性。
说到外设,CPU通过I/O设备与外界通信,CPU通过连接所有这些组建的系统总线与DRAM芯片和I/O设备通信。编写Intel架构编写的软件通过I/O地址空间和内存地址空间与I/O设备通信。系统软件必须配置CPU的缓存来识别I/O设备使用的内存地址范围。CPU请求设备可以通过调度中断完成,终端会导致逻辑处理器停止执行当前线程,并调用软件中一个特殊处理程序。
Intel系统有十分复杂的计算初始化序列,这是因为需要支持大量的不同种类的外设和不同版本的操作系统。对于任何保护Intel架构计算机的行为是一个挑战。
Intel工程师用处理器微指代码备来完成较为复杂行为,这极大的帮助管理复杂的硬件。微代码对软件开发人员来说是完全不可见的,而且它的设计大部分都没有文档。然而,为了评估任何架构更改建议的可行性,必须能够区分用微代码实现的更改和能通过修改硬件实现的更改。

计算模型

首先根据一张图讲一下Intel架构的简单运行模型。主要是为了便于让大家容易理解后面要讲的概念。

这上面的图给出几个关键部分,内存是一列存储单元,地址用自然数从0开始。其显着特征是在地址处读取存储器单元的结果必须等于写入该存储器单元最近写入。

处理器有自己内部的存储—寄存器。寄存器由SRAM单元组成,读写速度比DRAM更快,但单位面积价格更贵。指令明确输入执行简单的计算,并将结果存储在输出位置。处理器内部寄存器为大多数指令存储输入和输出数据。(ADD,RDX,RAX,RBX)就像上图提到的两个寄存器,RIP就不用说了,RSP是处理器运行程序时使用调用堆栈中顶层元素的内存地址。
在正常情况下,处理器反复从RIP中存储的内存地址读取一条指令,执行该指令,并更新RIP以指向下面的指令。与许多RISC体系结构不同,Intel体系结构使用可变大小的指令编码,因此直到从内存中读取指令时才知道指令的大小。在执行命令时,处理器可能会遇到不满足指令先决条件的异常。当这种异常发生的时候这条指令不会把结果存储。
当指令导致错误时,处理器停止正常的执行流程,执行记录错误处理程序流程。简而言之,处理器首先根据错误的性质查找处理错误的代码的地址,并设置执行环境,为执行错误处理程序做好准备。
在每一个时钟周期,至多有一个设备连接到系统总线并发送了一条消息被其他连接到总线上的设备接收。连接到总线的每个设备解码总线上发送的所有消息的操作代码和地址,并忽略不需要它参与的消息。计算机通过连接到系统总线的键盘、显示器和网卡等I/O设备与外部世界通信。设备主要响应处理器发出的请求。然而,设备也有能力发出中断请求,将外部事件通知处理器,比如用户按下键盘上的一个键。

(一)学习英特尔处理器一般架构原则相关推荐

  1. 英特尔Nehalem微架构三级缓存原理学习

    英特尔Nehalem微架构包含式(Inclusive)三级缓存体系架构: 注释:包含式(inclusive)缓存指的是该缓存中包含低级缓存中的内容.包含式三级缓存即在三级缓存中有着二级缓存数据的副本. ...

  2. 绕开“死循环”:苹果不靠英特尔处理器也能主导市场

    全文共2393字,预计学习时长8分钟 图源:unsplash 在近期举办的年度开发者大会上,苹果宣布了一个爆炸性消息--Mac计划永久放弃英特尔处理器,改用自己设计的ARM处理器. 苹果将这次转型称为 ...

  3. 笔记本电脑处理器_苹果高管:我们都没有想到M1的性能有那么强|英特尔|处理器|iphone|ipad|笔记本电脑...

    苹果近日发布了自主研发处理器M1以及搭载新处理器的笔记本电脑,显示其速度和效率都有很大提升.发布会结束不久,苹果三位最资深的高管--营销总监格雷格·乔维亚克(Greg Joswiak).软件主管克雷格 ...

  4. 英特尔处理器曝出重大安全漏洞,迫使 Linux 和 Windows 更新设计

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 日前,英特尔处理器被曝存在重大底层设计缺陷,迫使 Linux 和 Windows 内核需要展 ...

  5. 【历史上的今天】6 月 4 日:微软收购 Github;MacOS Mojave 推出;英特尔发布第四代架构 Haswell

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2022 年 6 月 4 日,在 1998 年的今天,我国互联网用户突破一百万.自从中国科学技术网在国内首次实现了 ...

  6. Yonah是英特尔处理器酷睿core的开发代号

    Yonah是英特尔处理器酷睿core的开发代号 2009年12月08日 [b]Yonah[/b]是英特尔处理器[b]酷睿[/b][b]core[/b]的开发代号 采用Yonah核心CPU的有双核心的C ...

  7. 谷歌本月重启办公室上班;小米成中国第一大手机厂商;英特尔处理器被曝存关键漏洞 | EA周报

    EA周报 2021年4月2日 每个星期7分钟,元宝带你喝一杯IT人的浓缩咖啡,了解天下事.掌握IT核心技术. 周报看点 1.小米成中国第一大手机厂商 2.谷歌本月重启办公室上班 场地重新装修允许员工带 ...

  8. AMD笑了!英特尔处理器Spoiler漏洞真没法

    近日有研究机构发现,英特尔的处理器中还存在另一个令人讨厌的投机性执行漏洞,被命名为 Spoiler,此事令 AMD 更受到市场关注.麻塞诸州伍斯特理工学院及德国吕贝克大学的计算器科学家发表了一篇报告指 ...

  9. 苹果面向Mac发布英特尔处理器漏洞缓解措施

    2019独角兽企业重金招聘Python工程师标准>>> 去年苹果向Safari浏览器推出安全更新以修复基于ARM价格和英特尔的处理器存在的推测执行系列安全漏洞. 不过当时苹果并未发布 ...

最新文章

  1. TypeError: 'range' object doesn't support item deletion《机器学习实战》改进的随机梯度上升算法
  2. Http协议中Get和Post的浅谈
  3. Synchronized及其实现原理
  4. oracle解析select,oracle_select语句例子解析
  5. StringBuffer的存在的含义
  6. ES:记录curator+nfs进行索引备份、创建快照的一次实践
  7. PbootCMS制作个性分页条之单页/总页数效果教程
  8. ps提示没有足够的ram
  9. Axure AxureRP9 密钥
  10. windows2003+apache2.2+python2.7配置django mod_wsgi
  11. 使用devops的团队_跨职能DevOps团队的8个角色
  12. 计算机配置主要看哪些东西,买电脑主要看哪些配置
  13. 精通python自然语言处理pdf_学习NLP《自然语言处理综论第2版》中文PDF+英文PDF+对比分析...
  14. 个人网站—首页HTML+CSS(超级简单的那种)
  15. 微信小程序 | 基于云数据库的许愿墙
  16. 【CSS.DIV】HTMLli标签
  17. qq幻想水母球前缀属性对比
  18. VR虚拟现实技术行业应用范围
  19. python开发网页视频播放器_暴风影音没了,我们就用Python做个播放器吧
  20. python观察者模式

热门文章

  1. Vue3的watch属性
  2. 5.3 用户定义的完整性
  3. 机器人社社长事迹_【青春榜样】佳木斯大学十佳科技创新创新标兵事迹——黄鹏...
  4. PS怎么抠图?这篇文章教会你如何用PS抠图
  5. 软件测试 边界值分析法,[转] 软件测试方法_边界值分析法
  6. sqlyon社区版_SQLyog社区版(SQLyog Community)
  7. Linux挂载FAT32格式的U盘
  8. 【开发经验】redis排行榜功能(日榜、周榜、月榜)
  9. 寒风冷雨,东湖吹风记
  10. python输出学生信息_python实现学生信息系统