`

CPU的内部架构和工作原理

 
阅读更多

一直以来,总以CPU内部真是如当年学习《计算机组成原理》时书上所介绍的那样,是各种逻辑门器件的组合。当看到纳米技术时就想,真的可以把那些器件做的那么小么?直到看了Intel CPU制作流程AMD芯片的制作流程的介绍不禁感慨,原来科技是如此的发达。

本文我们以Intel为例对CPU的工作原理做简单介绍,仅仅是简单介绍,那么AMDARMMIPS甚至PowerPC你应该会触类旁通才对。

还记得那是1968718,鲍勃-诺斯和戈登-摩尔的新公司在美国加利福尼亚州,美丽的圣弗朗西斯科湾畔芒延维尤城的梅多费大街365号开张了。并在成立不久斥资15000美元从一家叫INTELCO的公司手中买下了Intel名称的使用权。由此Intel这位半导体巨人开始了他在IT行业传奇般的历史。
   1971年11月15日,这一天被当作全球IT界具有里程碑意义的日子而被写入许多计算机专业教科书。Intel公司的工程师特德·霍夫发明了世界上第一个微处理器—4004,这款4位微处理器虽然只有45条指令,而且每秒只能执行5万条指令。甚至比不上1946年由美国陆军宾夕法尼亚大学研制的世界第一台计算机ENIAC。但它的集成度却要高很多,一块4004的重量还不到一盅司。 他因发明了微处理器,被英国《经济学家》杂志称为“第二次世界大战以来最有影响的科学家之一”。Intel公司的CPU发展历程如下表所示:


   以及后面的Pentium 1,2,34,再到酷睿、酷睿2,这里就不再一一列举。Intel8086开始,就进入了我们所谓的x86时代。而80386的诞生则标志着Intel正是进入了32位微处理器的时代。从80386Pentium 4这个年代的CPU,就是传说中的IA-32时代。
   我们都知道CPU的根本任务就是执行指令,对计算机来说最终都是一串由“0”和“1”组成的序列。CPU从逻辑上可以划分成3个模块,分别是控制单元运算单元存储单元,这三部分由CPU内部总线连接起来。如下所示:

 

控制单元:控制单元是整个CPU的指挥控制中心,由指令寄存器IR(Instruction Register)、指令译码器ID(Instruction Decoder)和操作控制器OC(Operation Controller)等,对协调整个电脑有序工作极为重要。它根据用户预先编好的程序,依次从存储器中取出各条指令,放在指令寄存器IR中,通过指令译码(分析)确定应该进行什么操作,然后通过操作控制器OC,按确定的时序,向相应的部件发出微操作控制信号。操作控制器OC中主要包括节拍脉冲发生器、控制矩阵、时钟脉冲发生器、复位电路和启停电路等控制逻辑。

运算单元:是运算器的核心。可以执行算术运算(包括加减乘数等基本运算及其附加运算)和逻辑运算(包括移位、逻辑测试或两个值比较)。相对控制单元而言,运算器接受控制单元的命令而进行动作,即运算单元所进行的全部操作都是由控制单元发出的控制信号来指挥的,所以它是执行部件。

存储单元:包括CPU片内缓存和寄存器组,是CPU中暂时存放数据的地方,里面保存着那些等待处理的数据,或已经处理过的数据,CPU访问寄存器所用的时间要比访问内存的时间短。采用寄存器,可以减少CPU访问内存的次数,从而提高了CPU的工作速度。但因为受到芯片面积和集成度所限,寄存器组的容量不可能很大。寄存器组可分为专用寄存器和通用寄存器。专用寄存器的作用是固定的,分别寄存相应的数据。而通用寄存器用途广泛并可由程序员规定其用途,通用寄存器的数目因微处理器而异。这个是我们以后要介绍这个重点,这里先提一下。

我们将上图细化一下,可以得出CPU的工作原理概括如下:

总的来说,CPU从内存中一条一条地取出指令和相应的数据,按指令操作码的规定,对数据进行运算处理,直到程序执行完毕为止。
   
上图中我没有画总线,只是用逻辑方式对其进行呈现。原因早期Intel的微处理器,诸如80858086/8088CPU,普遍采用了地址总线和数据总线复用技术,即将部分(或全部)地址总线与数据总线共用CPU的一些引脚。例如8086外部地址总线有20根,数据总线复用了地址总线的前16根引脚。复用的数据总线和地址总线虽然可以少CPU的引脚数,但却引入了控制逻辑及操作序列上的复杂性。所以,自80286开始,IntelCPU才采用分开的地址总线和数据总线。
   
不管是复用还是分开,对我们理解CPU的运行原理没啥影响,上图没画总线的目的就是怕有些人太过于追求细节,一头扎下去,浮不起来,不能从宏观上藐视敌人。
   
OK,总结一下,CPU的运行原理就是控制单元在时序脉冲的作用下,将指令计数器里所指向的指令地址(这个地址是在内存里的)送到地址总线上去,然后CPU将这个地址里的指令读到指令寄存器进行译码。对于执行指令过程中所需要用到的数据,会将数据地址也送到地址总线,然后CPU把数据读到CPU的内部存储单元(就是内部寄存器)暂存起来,最后命令运算单元对数据进行处理加工。周而复始,一直这样执行下去,天荒地老,海枯枝烂,直到停电。
   
如果你对这段话还是觉得比较晕乎,那么就看我们老师是怎么讲的:
   
1、取指令:CPU的控制器从内存读取一条指令并放入指令寄存器。指令的格式一般是这个样子滴:


        操作码就是汇编语言里的mov,add,jmp等符号码;操作数地址说明该指令需要的操作数所在的地方,是在内存里还是在CPU的内部寄存器里。
   
2、指令译码:指令寄存器中的指令经过译码,决定该指令应进行何种操作(就是指令里的操作码)、操作数在哪里(操作数的地址)。
   
3、 执行指令,分两个阶段“取操作数”和“进行运算”。
   
4、 修改指令计数器,决定下一条指令的地址。

关于CPU我们从宏观上把握到这个程度就OK了,后面我们会逐步进入微观阶段,依次介绍80X86寄存器及其用途,NASM汇编和AT&T的区别,以及C代码中嵌入的汇编语言的写法。之所以介绍汇编语言目的不是说用汇编去写代码,那是相当的不现实,除非你是硬件驱动工程师。稍微偏上层一点的开发人员懂点低等的东西,对自己理解整个系统的架构和原理是相当有好处的。
    
未完,待续…

 

 
分享到:
评论

相关推荐

    微机原理自学

    主要讲述计算机核心部件的工作方式 主要就是典型CPU的架构和工作方式、存储系统(硬盘不是存储系统是输出系统,存储是指内存)、总线和输入输出。每一样内部有很多内容,不同教材侧重点不同,有人用x86,有人用MIPS...

    CPU和GPU的区别、工作原理、及如何tensorflow-GPU安装等操作

    WhileGPU面对的是类型高度统一的、互相无依赖的大规模数据和不需要被打断的纯净的计算环境于是乎:CPU和GPU就呈现出非常不同的架构(看图)鲜绿色:计算单元ALU(ArithmeticLogicUnit)橙红色:存储单元(cache)橙黄...

    基于proteus搭建的数字电路的CPU(简易)仿真图、源代码

    整体功能并不完善,设计原则是尽量简单,这样对于初学者理解CPU内部结构是有很大好处的。如果你想要深入研究,最好多花点时间学学数字电路。 如果你想要理解CPU是如何工作的却又被其他单片机的复杂架构给难住了,...

    自己动手写CPU

    《自己动手写CPU(含CD光盘1张)》适合计算机专业的学生、FPGA开发人员、处理器设计者、嵌入式系统应用开发工程师、MIPS平台开发人员以及对处理器内部的实现感兴趣的读者阅读,也可以作为高等院校计算机原理、计算机...

    国产服务器和处理器架构.doc

    CPU作为服务器的运算和控制核心,其指令集架构有CISC和RISC两种。从性能角度来 说,CISC与RISC并无绝对的孰优孰劣之分。目前看来,CISC与RISC已逐步走向融合,两 方处理器互相借鉴互相优化。目前X86架构CPU占整体...

    论文研究-基于JTAG的片上调试器与调试系统的设计实现.pdf

    调试系统可以实现微指令级和机器指令级的单步、断点以及CPU内部寄存器值的查看和PC(程序计数器)写入,还有CPU的运行停止和复位这些常用的调试功能。分别介绍了系统的各个组成部分以及它们的原理,进行了系统测试,...

    计算机组成原理的一些介绍

    计算机组成原理涉及计算机硬件系统的逻辑实现和基本工作原理。它通常包含以下几个核心部分: 硬件系统:计算机硬件系统是计算机物理结构的组成部分,包括运算器、存储器、控制器以及输入输出设备等。这些硬件组件...

    服务器基础知识培训内部版本

    服务器按体系架构分类 PC服务器按外形分类 服务器按体系架构分类 机架式服务器关键组件示意图 CPU—英特尔处理器命名规则 CPU-主频 CPU-外频 CPU-高速缓存(Cache)...内存-ECC工作原理 内存- 服务器内存容量 内存-DDR

    嵌入式系统-硬件与软件架构(正版)

    硬件与软件架构 正版经典,新手知会老鸟温故!! 目录 第一部分 嵌入式系统导论  第1章 嵌入式系统设计的系统工程方法   1.1 什么是嵌入式系统   1.2 嵌入式系统设计   1.3 嵌入式系统体系结构简介   1.4 ...

    RDMA原理分析、对比和技术实现解析.rar

    第10章 RDMA over TCP(iWARP)协议和工作原理 ..................... 56 10.1 RDMA相关简介........................................... 57 10.2 RDMA工作原理........................................... 59 10.3 ...

    Neural-Net-Experiments:前馈神经网络的 GPU CPU 实现

    以前,我一直在使用由 Olin 的另一位学生 Alec Radford 编写的出色实现,但遗憾的是,它不够快,而且我不了解其内部工作原理。 为了解决这两个问题,我转向了 Cuda 和 C++。 ##Build:所需软件:CMake、Cuda、...

    基于52单片机的数字电子钟(数码管,调时,闹钟,整点报时)

    52单片机的工作原理可以分为四个主要部分:CPU、存储器、输入/输出和时钟。CPU部分即中央处理器,负责执行各种指令,包括算术、逻辑、移位和跳转指令等。这些指令通过存储器中的程序存储器来控制。存储器则包括内部...

    51单片机概述、原理及应用.pdf

    51单片机内部集成了CPU、存储器、I/O接口以及定时/计数器等功能模块,使其能够完成各种控制任务。 51单片机的设计架构简洁明了,采用哈佛结构,将程序存储器和数据存储器分开,这样可以避免指令和数据冲突,提高...

    2017最新老男孩MySQL高级专业DBA实战课程全套【清晰不加密】,看完教程月入40万没毛病

    03-大规模集群架构中MySQL高可用的位置和架构mp4 04-MySQL高可用实战模拟环境描述mp4 05-MySQL高可用生产场景配置及网络地址规划mp4 06-MySQL高可用实施正式环境准备与裂脑注意mp4 07-快速安装双机Centos6.4下...

    GPU的介绍以及原理的分析

    如图1所示,这台PC机与普通PC机...其中Control是控制器、ALU算术逻辑单元、Cache是cpu内部缓存、DRAM就是内存。可以看到GPU设计者将更多的晶体管用作执行单元,而不是像CPU那样用作复杂的控制单元和缓存。从实际来看,

Global site tag (gtag.js) - Google Analytics