X86架构CPU的逻辑原理
本篇只是初略介绍X86的逻辑运行原理,并不涉及物理层面和汇编层面的知识。
一、冯洛伊曼体系的运作过程:
1、CPU的历史就不扯了,有兴趣的朋友可以网上搜一下。
2、X86CPU是基于冯洛伊曼架构体系,所以大致上无非就这几点:
①、指令集和数据都用二进制来表示,且混在一个存储器。
②、计算机由运算器、控制器、存储器(cache)、输入设备、输出设备所组成。PS:cache不同于寄存器,寄存器是分布在控制器和运算器里面的。
③、指令是一条接着一条顺序的执行。
如下图所示:
二、下面分别讨论几个主要组件:
寄存器:处于CPU存储金字塔的最顶层,容量最小,速度最快(1-10个指令周期)。主要作用是用来存储数据供运算器运算的。各自都有不同的功能。
控制器:数据寄存器,指令寄存器,程序计数器,指令译码器,时序产生器,操作控制器所组成。
运算器:运算器由算术逻辑单元(ALU)、累加寄存器、数据缓冲寄存器和状态条件寄存器组成。
三、执行过程:
当执行一条指令时,程序计数器先记录当前的地址,把他放到地址记录器,程序计数器再加一(指向下一条指令的地址),
然后就从内存读取指令放到指令寄存器(IR)。然后在传到指令译码器,具体功能如下:
指令译码器:
(1)译码分析。确定指令应完成的操作,产生相应操作的控制电位。去参与形成该指令功能所需要的全部控制命令(微操作控制信号)。
(2)根据寻址方式(8086是采用段地址+偏移地址合成一个20bit的寻址范围,从32bit开始淘汰)的分析和指令功能要求,形成操作数的有效地址,并按此地址取出操作数(运算型指令)或形成转移地址(转移类指令),以实现程序转移。
指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后,即可向操作控制器发出具体操作的特定信号。
时序发生器: 时序信号发生器是产生指令周期控制时序信号的部件,当CPU开始取指令并执行指令时,操作控制器利用时序信号发生器产生的定时脉冲的顺序和不同的脉冲间隔,提供计算机各部分工作时所需的各种微操作定时控制信号,有条理、有节奏地指挥机器各个部件按规定时间动作。(区分数据和指令的一种方法。详细可看我CPU架构的区别一文)
然后把指令传到运算器。寄存器得到译码后的结果,通过数据总线,去数据cache获取数据。然后根据需求进行逻辑运算(与或非)算术运算,然后在通过数据缓冲寄存器通往IO端口传输到外界。
操作控制器:常用的控制方式有同步控制、异步控制、联合控制。
1.同步控制方式:任何指令的运行或指令中各个微操作的执行,均由确定的,具有统一基准时标的时序信号所控制。即所有的操作均由统一的时钟控制,在标准时间内完成。(在同步控制下,每个时序信号的结束就意味着安排完成的工作已经完成,随即开始执行后续的微操作或自动转向下条指令的运行。)
2.异步控制方式:没有统一的同步信号,采用问答方式进行时序协调,将前一操作的回答作为下一操作的启动信号。
3.联合控制方式:将同步控制和异步控制相结合。其通常设计思想为:在功能部件内部采用同步方式或以同步方式为主的控制方式;在功能部件间采用异步方式。
而运算器又大致上分为逻辑运算(与或非)和数值运算(用加法的形式转变成加减乘除)。
如下图所示:
附上一个小动画: http://218.5.241.24:8018/C35/Course/ZCYL-HB/WLKJ/jy/Chap05/flash-htm/5.6.swf
X86架构CPU的逻辑原理的更多相关文章
- X86架构CPU常识(主频,外频,FSB,cpu位和字长,倍频系数,缓存,CPU扩展指令集,CPU内核和I/O工作电压,制造工艺,指令集,超流水线与超标量)
1.主频 主频也叫时钟频率,单位是MHz,用来表示CPU的运算速度. CPU的主频=外频×倍频系数.很多人认为主频就决定着CPU的运行速度,这不仅是个片面的,而且对于服务器来讲,这个认识也出现了偏差. ...
- 简单介绍 CPU 的工作原理
1.内部架构 CPU 的根本任务就是执行指令,对计算机来说最终都是一串由 0 和 1 组成的序列.CPU 从逻辑上可以划分成 3 个模块,分别是控制单元.运算单元和存储单元 .其内部架构如下: [1] ...
- X86架构
在接触BIOS的时候,都需要对PC架构有一定的认知.目前的PC架构绝大多数都是Intel的X86架构,貌似也是因为INTEL的这个X86架构早就了目前INTEL如日中天的地位. 废话不多说,X86架构 ...
- 测试那些事儿—简述CPU的工作原理
简单介绍CPU的工作原理 1.内部架构 CPU是由晶体管组成,其根本任务就是执行指令和数据处理,对计算机来说,就是由0和1组成的序列.CPU从逻辑上可分为3个模块,分别是控制单元,运算单元和存储单元. ...
- ARM和X86架构
重温下CPU是什么 中央处理单元(CPU)主要由运算器.控制器.寄存器三部分组成.运算器起着运算的作用,控制器负责发出CPU每条指令所需要的信息,寄存器保存运算或者指令的一些临时文件以保证更高的速度. ...
- CPU 的工作原理
内部架构 CPU 的根本任务就是执行指令,对计算机来说最终都是一串由 0 和 1 组成的序列.CPU 从逻辑上可以划分成 3 个模块,分别是控制单元.运算单元和存储单元 .其内部架构如下: [1]控制 ...
- x86架构手机跑安卓好吗?(脑补)
华硕低价位手机ZenFone一推出就掀起市场话题,许多人也对ZenFone所采用的Intel Atom处理器有所意见,深怕其相容性问题无法正确执行应用程式App,这究竟是怎么回事呢? Intel近几年 ...
- x86架构的android手机兼容性问题
x86架构的android手机兼容性问题 http://www.cnblogs.com/guoxiaoqian/p/3984934.html 自从CES2012上Intel发布了针对移动市场的Medf ...
- X86 架构和 ARM 架构
1.关于x86架构 X86是一个intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合,X86是由Intel推出的一种复杂指令集,用于控制芯片的运行的程序,现在X86已经广泛运用到了家 ...
随机推荐
- 在信号处理函数中调用longjmp
错误情况及原因分析 前两天看APUE的时候,有个程序要自己制作一个sleep程序,结果在这个程序中就出现了在信号处理函数中调用longjmp函数的情况,结果就出现了错误,具体错误是啥呢,请参见下面这段 ...
- 计算2的n次方的三种方法(C语言实现)
C代码如下: #include <stdio.h> int func1(int n) { <<n; } int func2(int n) { ) { ; } )*; } int ...
- ASP.NET中@Page指令中的AutoEventWireup
AutoEventWireup:指示控件的事件是否自动匹配 (Autowire).如果启用事件自动匹配,则为 true:否则为 false.默认值为 true.如果设为false,则事件不可用.有关更 ...
- Target Operator ID has No Access to Upgrade
If you are attempting to migrate a project between environments through application designer you mig ...
- float:left居中对齐
<div class="M1180"><div class="services"> <div class="serv_c ...
- LevelDB:一个快速轻量级的key-value存储库(译)
作者:Jeff Dean, Sanjay Ghemawat 原文:http://leveldb.googlecode.com/svn/trunk/doc/index.html 译者:phylips@b ...
- 实战Django:官方实例Part4
上一个part我们创建了投票的内容页,但这个页面仅仅局限于静态展示,投票的"投"字还无从体现.接下来,我们就来看一下,如何把票投起来. 19.创建表单 我们来更新模板文件pol ...
- 改用二进制启动Moses translation model提示Can't read ~/working/binarised-model/reordering-table
解决方案: 换成 /home/用户名/working 貌似就好使了...但是时间还是估计太长,明早挂机一天试试,顺便把manual 的详细部分看了
- Orcle 系统表
oracle系统表大全 一.管理员 1.用户: select username from dba_users; 改口令 alter user spgroup identified by spgtest ...
- 配置php5.6的运行环境
所需要的原材料:(提供链接) php-5.6.10-Win32-VC11-x86 (zip)(注意php版本分为了IIS版和Apache版) httpd-2.4.12-x86-r2(apache) ( ...