IT外包网管小贴士,操作系统的CPU知识盲(2)

发布者:上海IT外包来源:http://www.lanmon.net点击数:772

CPU的执行原理
  CPU的主要操作原理是执行存储在程序中的一系列指令,而不管其外观如何。 本文讨论的是根据一般电话噪声曼结构( von Neumann architecture )设计的设备。 程序以一系列数字存储在计算机存储器中。 几乎所有的冯·诺伊曼CPU的工作原理分为提取、解码、执行和重写4个阶段。
  (1)提取
  从程序存储器中检索指令(数值或一系列数值)。 通过程序计数器指定程序存储器的位置,程序计数器保存用于识别当前程序位置的数值。 即,程序计数器记录当前程序中CPU的痕迹。 提取指令后,PC根据指令式的长度追加存储器单元[iwordlength]。 命令的提取通常需要从相对慢的存储器中进行搜索,并且CPU等待命令的传入。 这个问题主要论述了现代处理器的高速缓存和流水线化体系结构。
  (2)解码
  CPU根据从存储器中提取的命令,决定其执行行动。 在解码阶段,指令被分解成有意义的片段。 根据CPU指令集架构( ISA )的定义,将数值解释为指令[isa]。 有些指令值是运算代码,表示要进行哪个运算。 其他数字通常提供命令所需的信息
  (三)执行
  在提取和解码阶段之后,进入执行阶段。 在此阶段,与可进行必要运算的各种CPU单元连接。 例如,如果需要加法运算,则算术逻辑单元将连接到一组输入和一组输出。 输入指定要相加的数字,输出包含总结果。 ALU包含用于在输出侧进行单纯的通常运算和逻辑运算(例如加法和位运算)的电路系统。 如果通过相加而在该CPU处理中产生过大的结果,则有可能在标志寄存器设定溢出标志
  (4)重写
  在最后阶段,回写和执行阶段的结果以一定的格式轻松回写。 运算结果总是被写入CPU内部的寄存器,可以快速访问之后的命令。 在其他情况下,运算结果可能会被低速写入,例如容量大、价格便宜的主记忆体
  注意:这上面的4个阶段与我们写程序非常相关,但在编程语言中可能会变得简单,将2和3个阶段综合起来,分为加载、处理、重写。 在多线程编程中,理解这些概念是很重要的,从而可以扩展从何处加载数据、在何处执行数据以及将结果写入何处的过程。 一般从存储器加载命令数据,但对存储器的访问时间比cpu慢n倍以上,因此为了加速处理,cpu一般将命令加载到接近cpu的寄存器中,或者用L1、L2、L3的cache进行高速化,将最终计算出的结果写入存储器 由于cpu执行指令很复杂,因此包括很多问题。 例如,多个线程如何协作处理任务,如何确保程序数据的原子性、有序性和可见性。 这就是Java内存模型出现的意思。 应当注意,其他不同的编程语言实际上在操作系统上具有抽象的存储器模型,以适应不同cpu体系结构的差异。
IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部