编程必备基础知识|计算机组成原理篇(09):CPU的控制器和运算器
计算机基础方面的知识,对于一些非科班出身的同学来讲,一直是他们心中的痛,而对于科班出身的同学,很多同学在工作之后,也意识到自身所学知识的不足与欠缺,想回头补补基础知识。关于计算机基础的课程很多,内容繁杂,但无论是相关书籍还是大学课程,都有点脱离工作。特别地,计算机基础知识体系庞杂,想要从零学习或者复习都耗时耗力。
有鉴于此,本系列文章将带你更快的补足编程必备基础知识,涵盖计算机领域三大基础知识:计算机组成原理、操作系统、计算机网络,这些都是大学计算机课程里面最重要的内容。文章对这些内容做了提炼和总结,摒弃了作为程序员不需要掌握的知识。
目的是:
- 帮助大家形成计算机知识的结构体系
- 帮助大家理解计算机底层原理
- 帮助大家在工作实践中借鉴其中的优秀设计
本篇是计算机组成原理之cpu的控制器和运算器
欢迎关注、转发、收藏、评论
控制器
控制器是cpu的组成部分,用于协调和控制计算机的运行,它的构成如下图所示:
下面逐一简单介绍。
程序计数器(program counter)
简称pc,用来存储从内存提取的下一条指令的地址。当cpu执行一条指令时,首先需要根据pc中存放的指令地址,将指令由内存取到指令寄存器中,此过程称为“取指令”。与此同时,pc中的地址或自动加1或由转移指针给出下一条指令的地址,此后经过分析指令,执行指令,完成第一条指令的执行,而后根据pc取出第二条指令的地址,如此循环,执行每一条指令,保证程序能够连续地执行下去。
时序发生器
用于发送时序脉冲,cpu依据不同的时序脉冲有节奏地进行工作,类似于cpu的节拍器。
指令编译器
用于翻译指令及控制传输指令包含的数据。
指令寄存器
用于缓存从内存或高速缓存里取出的指令,cpu执行指令时,就可以从指令寄存器中取出相关指令来进行执行。
主存地址寄存器
保存当前cpu正要访问的内存单元的地址,通过总线跟主存通信。
主存数据寄存器
保存当前cpu正要读或写的主存数据,通过总线与主存通信。
通用寄存器
用于暂时存放或传送数据或指令。
运算器
运算器是用来进行数据运算加工的。
数据缓冲器
分为输入缓冲和输出缓冲,输入缓冲暂时存放外设送过来的数据,输出缓冲暂时存放送往外设的数据。
alu
算数逻辑单元,是运算器的主要部件,能完成常见的位运算(左移、右移、与、或、非等)和算术运算(加减乘除等)。
状态字寄存器
存放运算状态(条件码、进位、溢出、结果正负等)和运算控制信息。
通用寄存器
暂时存放或传送数据或指令,保存alu的运算中间结果。