冯·诺依曼体系结构

数学家冯·诺依曼提出了计算机制造的三个基本原则,即采用二进制逻辑、程序存储执行以及计算机由五个部分组成(运算器、控制器、存储器、输入设备、输出设备),这套理论被称为冯·诺依曼体系结构。

计算机5大组成部分

控制器(Control)

控制器是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。

运算器(Datapath)

运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。

存储器(Memory)

存储器的功能是存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息。

存储器包括:寄存器 缓存 内存 闪存(固态硬盘) 磁盘(机械硬盘) 虚拟内存。从左到右,速度变慢,容量变大。

输入(Input system)

输入设备是计算机的重要组成部分,输入设备与输出设备合称为外部设备,简称外设,输入设备的作用是将程序、原始数据、文字、字符、控制命令或现场采集的数据等信息输入到计算机。

常见的输入设备有键盘、鼠标器、光电输入机、磁带机、磁盘机、光盘机等。

输出(Output system)

输出设备与输入设备同样是计算机的重要组成部分,它把计算机的中间结果或最后结果、机内的各种数据符号及文字或各种控制信号等信息输出出来。

常用的输出设备有显示打印机、激光印字机、绘图仪及磁带、光盘机等。

二进制和程序存储执行

冯·诺依曼计算机将数据和程序都以二进制形式(0或1)存储在存储器中。其程序由一组数量有限的指令(控制计算机操作的命令)组成。控制单元从存储器中取出一条指令,解释并执行指令。一条指令执行完毕后,计算机将按照程序所规定的顺序自动取出下一条指令来执行。基本思想如下:

1、采用二进制形式表示数据和指令。

2、指令和数据都以二进制的形式顺序存放在存储器中

3、机器自动顺序取出每条指令,进行分析,执行其规定的操作

对内存存储来讲,每个存储单元都有地址编号,这样按一定顺序把程序和数据存起来,而且还把内存分为若干个区域,如文本区、数据区、堆区、栈区。一般情况下按存放地址号的顺序,由小到大依次执行,当遇到条件转移指令时,才改变执行的顺序。每执行一条指令,都要经过三个步骤:第一步,把指令从内存中送往译码器,称为取指;第二步,译码器把指令分解成操作码和操作数,产生相应的各种控制信号送往各电器部件;第三步,执行相应的操作。这一过程是由电子路线来控制,从而实现自动连续的工作。

CPU

中央处理器(CPU),是一种超大规模集成电路,是计算机的计算核心和控制核心。其功能主要是解释计算机指令以及处理计算机软件中的数据。CPU是计算机中负责读取指令,对指令译码并执行指令的核心部件。中央处理器主要包括两个部分,即控制器、运算器,其中还包括高速缓冲存储器及实现它们之间联系的数据、控制的总线。电子计算机三大核心部件就是CPU、内部存储器、输入/输出设备。中央处理器的功效主要为处理指令、执行操作、控制时间、处理数据。在计算机体系结构中,CPU 是对计算机的所有硬件资源(如存储器、输入输出单元) 进行控制调配、执行通用运算的核心硬件单元。CPU 是计算机的运算和控制核心。计算机系统中所有软件层的操作,最终都将通过指令集映射为CPU的操作。

工作原理

冯诺依曼体系结构是现代计算机的基础。在该体系结构下,程序和数据统一存储,指令和数据需要从同一存储空间存取,经由同一总线传输,无法重叠执行。根据冯诺依曼体系,CPU的工作分为以下 5 个阶段:取指令阶段、指令译码阶段、执行指令阶段、访存取数和结果写回。 
取指令(IF,instruction fetch),即将一条指令从主存储器中取到指令寄存器的过程。程序计数器中的数值,用来指示当前指令在主存中的位置。当 一条指令被取出后,PC中的数值将根据指令字长度自动递增。
指令译码阶段(ID,instruction decode),取出指令后,指令译码器按照预定的指令格式,对取回的指令进行拆分和解释,识别区分出不同的指令类 别以及各种获取操作数的方法。  
执行指令阶段(EX,execute),具体实现指令的功能。CPU的不同部分被连接起来,以执行所需的操作。
访存取数阶段(MEM,memory),根据指令需要访问主存、读取操作数,CPU得到操作数在主存中的地址,并从主存中读取该操作数用于运算。部分指令不需要访问主存,则可以跳过该阶段。 
结果写回阶段(WB,write back),作为最后一个阶段,结果写回阶段把执行指令阶段的运行结果数据“写回”到某种存储形式。结果数据一般会被写到CPU的内部寄存器中,以便被后续的指令快速地存取;许多指令还会改变程序状态字寄存器中标志位的状态,这些标志位标识着不同的操作结果,可被用来影响程序的动作。 
在指令执行完毕、结果数据写回之后,若无意外事件(如结果溢出等)发生,计算机就从程序计数器中取得下一条指令地址,开始新一轮的循环,下一个指令周期将顺序取出下一条指令。
RAM是构成内存的主要部分,其内容可以根据需要随时按地址读出或写入,以某种电触发器的状态存储,断电后信息无法保存,用于暂存数据,又可分为DRAM和SRAM两种。RAM一般使用动态半导体存储器件(DRAM)。因为CPU工作的速度比RAM的读写速度快,所以CPU读写RAM时需要花费时间等待,这样就使CPU的工作速度下降。人们为了提高CPU读写程序和数据的速度,在RAM和CPU之间增加了高速缓存(Cache)部件。Cache的内容是随机存储器(RAM)中部分存储单元内容的副本。

主板

主板是连接电脑中所有硬件的载体,是电脑工作的核心。主板里有各种电路(IO总线),通过这些电路完成各个组件之间的信号交换。所以主板相当于大脑的角色,其他硬件就是不同的功能区域,在工作时,主板对功率进行分配,协调组件通信,集合所有效果展现出来的就是一台正常运行的电脑

在组装电脑时,一般都是先选择主板,通过检查主板所提供的硬件端口、数量、级别、类型、兼容性来选择对应的硬件组件,比如USB端口级别(USB 2.0、3.0、3.1)、显示端口类型(HDMI、DVI、RGB)、显卡、内存槽数量和类型等等。另外另一个核心组件CPU的选取也是要看主板支持的插槽和功率,相互匹配才能正常运行。

RAM内存

RAM(随机存取存储器)也就是内存, 是主板内存插槽中的硬件。RAM是与CPU直接交换数据的内部存储器,也就是说内存的作用是临时存储程序所产生的动态信息,这样CPU就可以立即访问此数据。比如为图形设计渲染图像、编辑视频或照片,打开多个应用程序(比如玩游戏的同时还打开了聊天软件,来回切换),这些正在运行的程序都是在内存中进行。 内存容量的选择,要取决于所运行的程序。举例说明,中等强度的游戏通常使用 8GB 内存条就足够,但视频/图形处理软件可能使用高达 16GB 的内存。

硬盘

硬盘的作用是负责储存数据,打个比方的话,硬盘就是一个仓库,而计算机的系统、程序、文件等都是数据,只不过有不同的逻辑形式而已。传统的机械硬盘HDD的储存介质是磁盘(碟片),硬盘驱动器将二级制数据写入高速运转的磁盘中或是从对应的区域读取上面的数据。

如何计算容量

硬盘的存储容量=磁头数 * 磁道(柱面)数 * 每道扇区数 * 每扇区字节数

如何存储数据

假设,你用显微镜把盘片放大,会看见盘片表面凹凸不平,凸起的地方被磁化,凹的地方是没有被磁化;

凸起的地方代表数字1(磁化为1),凹的地方代表数字0。因此硬盘可以以二进制来存储表示文字、图片等信息。

注意

强磁场或者高温可能会使硬盘消磁。

局部性原理与磁盘预读

由于存储介质的特性,磁盘本身存取就比主存慢很多,再加上机械运动耗费,磁盘的存取速度往往是主存的几百分分之一,因此为了提高效率,要尽量减少磁 盘I/O。为了达到这个目的,磁盘往往不是严格按需读取,而是每次都会预读,即使只需要一个字节,磁盘也会从这个位置开始,顺序向后读取一定长度的数据放 入内存。这样做的理论依据是计算机科学中著名的局部性原理:

当一个数据被用到时,其附近的数据也通常会马上被使用。

程序运行期间所需要的数据通常比较集中。由于磁盘顺序读取的效率很高(不需要寻道时间,只需很少的旋转时间),因此对于具有局部性的程序来说,预读可以提高I/O效率。预读的长度一般为页(page)的整倍数。页是计算机管理存储器的逻辑块,硬件及操作系统往往将主存和磁盘存储区分割为连续的大小相等的块,每个存 储块称为一页(在许多操作系统中,页得大小通常为4k),主存和磁盘以页为单位交换数据。当程序要读取的数据不在主存中时,会触发一个缺页异常,此时系统 会向磁盘发出读盘信号,磁盘会找到数据的起始位置并向后连续读取一页或几页载入内存中,然后异常返回,程序继续运行。

程序猿理论系列整理:计算机基础硬件相关推荐

  1. 程序猿理论系列整理:高级语言、汇编语言、机器语言

    高级语言.汇编语言.机器语言 高级语言是高度封装了的编程语言,与低级语言相对.它是以人类的日常语言为基础的一种编程语言,使用一般人易于接受的文字来表示(例如汉字.不规则英文或其他外语),从而使程序编写 ...

  2. 计算机高职考理论知识,考计算机基础知识理论试题

    天水事业单位招考计算机基础知识理论试题 事业单位招考计算机基础知识理论试题 (一)单选题(选择最佳答案) 1.在Windows98 中,单击___ D _____按钮,可以使窗口缩小成图标,位于任务栏 ...

  3. 现代计算机模型要求程序在执行前,大学计算机基础考试考点

    大学计算机基础考试内容总结 第一章引论 1.现代计算机模型中,计算机五个组成部分:输入.运算器.存储器.控制器.输出 2.现代计算机模型要求程序在执行前存放在存储器中,还要求程序和数据采用相同的格式, ...

  4. 非科班的java程序员该如何补充计算机基础知识,需要看哪些书?

    java比较特殊,毕竟后端扛霸子,想要认真学好java,必须有好的计算机基础,可是为什么需要基础呢? 把这个问题弄明白,要学哪些基础知识就清楚多了. 第一个问题,10个用户使用的系统和1000000个 ...

  5. 程序猿有话说:计算机,学着挺有意思的,就是头冷

    程序猿,一个互联网高速发(cui)展(can)下的新生物种,不仅拥有较高的智商,还有无限的忍耐力,日常敲代码,加班已成为了常态,一个高薪与秃头并存的群体- 据说程序员的日常是这样的: 当然大家一提起程 ...

  6. 程序猿需要深入学习的基础课程

    程序猿在找工作面试时,总会被问到各种问题,或深或浅,但都脱离不了这些基础课程.如果可以参加一些项目,也可以提升编程技巧,并积累编程经验. 是骡子是马,面试官一问便知. 基础课程主要包括如下:(我做移动 ...

  7. android程序员手机壁纸,ASCII码壁纸-程序猿不务正业系列

    3岁酷龄未发表过文章,竟是瞻仰大神了.借着毕业,寝室的最后时光,做两张壁纸玩玩. 本人程序猿一只,大家就文明围观一下吧,壁纸上面放的是一些ASCII码(American Standard Code f ...

  8. 计算机基础 -- 硬件篇

    首先,经常提起得计算机硬件都有啥? CPU,内存条,影片,显卡,声卡,网卡,主板,机箱电源,键鼠,显示器,音响,摄像头等 本次介绍内容为台式机与笔记本电脑的内容混合. CPU CPU(中央处理器)包含 ...

  9. 计算机基础—硬件之主板与芯片组

    芯片组:芯片组上集中了主板几乎所有控制功能,是主板电路的核心,决定主板的级别和档次,芯片组提供主频. 一.芯片组=南桥芯片+北桥芯片 北桥芯片(存储控制中心):用于高速连接CPU,内存条,显卡,并与南 ...

最新文章

  1. Electron、QT和JAVA PC桌面开发技术比较
  2. 阿里程序员工作小技巧:理解CPU分支预测,提高代码效率
  3. 终于找到程序员无休止加班的原因了
  4. QT5 QT4--LNK2019 无法解析的外部符号
  5. activiti 5.21工作流规则引擎扩展(businessRuleTask)
  6. 爬虫 spider10——搭建elk平台,开发服务提供者
  7. Angular Observable数据类型的单元测试数据准备
  8. 一部后现代文学的“奇书”:《烟草经纪人》
  9. 交叉熵和mse_损失函数 - MSE
  10. 蘑菇街移动端混合开发体系的研发与实践
  11. VTK(二)---相机外参矩阵Tcw转VTK相机,构建VR虚拟相机
  12. 小米路由器r3d 安装vsftp 记事
  13. WebSphere水平集群集成IHS
  14. qemu运行xp虚拟机
  15. 仿射密码加密解密代码(java)
  16. 如何有效选毕业论文题目?
  17. 微软学术搜索使用体会 -- Binxing Jiao
  18. windows10 英文路径下文件显示中文名称
  19. 正版计算机软件识别方法,微软正版软件如何识别?
  20. Spark ALS recommendForAll源码解析实战之Spark1.x vs Spark2.x

热门文章

  1. kiel中bool类型的使用
  2. keil5MDK 及cubeMX安装教程
  3. 开源虚拟打印机ImagePrinter
  4. [2201]:熊猫阿波的故事
  5. jffs2制作与烧写
  6. 深圳云计算培训:怎么样学习云计算相关技术?
  7. 按值传递和按引用传递
  8. DL1. python入门
  9. 【Shell】20天学会shell脚本命令(3)IF条件语句
  10. 浅谈优秀程序员电脑环境配置