美文网首页
计算机基本原理

计算机基本原理

作者: 岁月不减深情 | 来源:发表于2019-02-21 09:33 被阅读0次

原文:https://blog.csdn.net/cc_net/article/details/10419645

一、 冯诺依曼体系和CPU工作原理

1. 计算机的发展

2. 计算机基本原理

现代计算机,大部分都是基于冯诺依曼体系结构,冯诺依曼的核心是:存储程序,顺序执行

2.1 冯诺依曼体系结构

对于我们现代计算机来说,最关键的2个部件就是CPU和内存。内存存储了要执行的程序指令,而CPU就是用来执行这些指令

2.2.1 CPU指令和编程语言

2.2.1.1 CPU指令

因为在计算机中指令和数据都用二进制来表示,也就是说它只认识0和1这样的数字。最早期的计算机程序通过在纸带上打洞来人工操操作的方式来模拟0和1,根据不同的组合来完成一些操作。后来直接通过直0和1编程程序,这种称之为机器语言。这里就会有一个疑问,计算机怎么知道你这些组合的意思

于是就出现了CPU指令,我们现在买CPU都会听到指令集这一说。CPU指令其实就对应了我们这里说的0和1的一些组合。每款CPU在设计时就规定了一系列与其硬件电路相配合的指令系统。有了CPU指令集的文档你就可以通过这个编写CPU认识的机器代码了。所以对于不同CPU来说可能会有不同的机器码。随着计算机的发展,CPU支持的指令也越来越多,功能也越来越强。

指令例子:

指令: 0001

格式:[addLable][regLab]

说明: 读取存储取值到寄存器

2.2.1.2 汇编语言

把汇编语言转换为机器语言需要一个叫做汇编器的工具。对于目前的CPU厂商,在推出的CPU指令时都会同时退出新的汇编器。如果你还在使用老版本的汇编器那么只能使用机器码来使用新的指令了。例:

指令     0001            

汇编指令 READ

格式 [addLable][regLab]

说明 读取存储取值到寄存器

2.2.1.3 高级语言

汇编语言的出现大大提高了编程效率,但是有一个问题就是不同CPU的指令集可能不同,这样就需要为不同的CPU编写不同的汇编程序。于是又出现了高级语言比如C,或者是后来的C++,JAVA,C#。 高级语言把多条汇编指令合成成为了一个表达式,并且去除了许多操作细节(比如堆栈操作,寄存器操作),而是以一种更直观的方式来编写程序,而面向对象的语言的出现使得程序编写更加符合我们的思维方式。我们不必把尽力放到低层的细节上,而更多的关注程序的本身的逻辑的实现。

对于高级语言来说需要一个编译器来完成高级语言到汇编语言的转换。所以对比不同的CPU结构,只需要有不同编译器和汇编器就能使得我们的程序在不同CPU上都能运行了。如下图在VS2010中,我们可以选择程序编译的目标平台,X86,X64,ARM等。当然除了这些编译类的语言之外还有解释类型的语言如JS。

到这里有一个疑问:当CPU的指令集更新后高级语言会有什么影响和变化?对于目前来说,一般出现了新的指令,会有对应的新的汇编器和编译器。所以编译器可以把一些高级语言的表达式编译成新的汇编指令,这样对于高级来说不会有任何变化; 当然还有一种情况就是高级语言会增加新的语法来对应一些新的汇编语言和指令。但是这种情况出现的几率很小。所以如果编译器不支持新的指令,那么只有只用汇编会来实现了。

2.2.1.4 小结

我们写的程序最终都将变成机器认识的二进制可执行程序,然后加载到内存顺序的执行。 从机器码到汇编到高级语言,我们可以看到计算机中无处不在的分层,抽象的思想。不光光是软件,硬件同样适用。最后留下一个问题在这里: C#和JAVA程序编译出来的文件不是二进制的机器码,而是中间语言,那么他们又是怎么运行的呢?

2.2.2 CPU工作原理

2.2.2.1 CPU功能

2.2.2.2 CPU基本组成

2.2.2.3 CPU工作流程

2.2.2.4 指令周期

二、存储器和I/O设备和总线

相关文章

  • 20160908全栈笔记第一期

    计算机工作原理 1.0 计算机工作原理组成部分:输入,输出,运算器,控制器,存储器; 1.1基本原理 计算机在运行...

  • fastaiv3-lesson3笔记-CamVid图片语义分割

    基本原理及实例 计算机视觉技术:图像语义分割,根据「图像内容」对「指定区域」进行标记」的「计算机视觉」任务。简言之...

  • (1)计算机系统概述

    本文借鉴自深入理解计算机系统和南京大学的计算机系统基础,只作为学习总结用。 一 计算机基本原理 1.信息就是位+上...

  • 科技体学观,可以沟通古今中外不同文化。我就沟通与计算机技术的对话

    科技体学观,运用计算机运算原理,也可以判断计算机运算是否正确。这取决于基本原理是否正确。目前计算机的运算由运算器完...

  • 计算机基本原理

    原文:https://blog.csdn.net/cc_net/article/details/10419645 ...

  • 计算机基本原理

    位(比特,BIT,Binary digit) 比特是信息量最小的单位,二进制数的一位即一比特 字节(Byte) 一...

  • 树小妞3月成长计划

    本月大致时间安排: 前半个月继续在家带娃,后半个月可能回爸妈那边住。 计算机: 目标:了解计算机的起源和基本原理,...

  • Java远程通讯可选技术及原理

    基本原理 要实现网络机器间的通讯,首先得来看看计算机系统网络通信的基本原理,在底层层面去看,网络通信需要做的就是将...

  • 课程内容

    Day 01 计算机组成基本原理 linux 环境简介 linux 基本命令介绍练习 linux vim编辑器使用...

  • [Coursera] nand2tetris WEEK 4 pr

    这门来自Coursera上的课中文名为依据基本原理构建现代计算机:从与非门到俄罗斯方块 非常推荐对计算机感兴趣的小...

网友评论

      本文标题:计算机基本原理

      本文链接:https://www.haomeiwen.com/subject/krrwdqtx.html