计算机原理 (2) CPU的诞生 输入 输出 PC指针

文章目录

  • 计算机的前世今生
  • 计算机的三个根本性基础
    • 1. 计算机是执行输入、运算、输出的机器;
    • 2.程序是指令和数据的集合;
    • 3.计算机的处理方式有时与人们的思维习惯不同
  • 二、结论
  • 三、参考资料
  • 交个朋友


计算机的前世今生

上一篇文章最终结束的时候谈到希望给大家带来有体系结构的计算机原理的知识,最近翻阅了一些书籍总感觉大家介绍CPU大体上都是按照CPU的组成部分挨个突破,但是又总感觉少了连接的部分,比如DMA这个技术叫直接存储器访问,我们会意识到就是IO与内存之间直接进行数据交换呗,如果直接学习这个概念博主当时没有特别深刻的理解,如果在学DMA之前我们学习CPU是怎么制作的,比如CPU通过读取汇编指令去实现内存与外设之间的数据交换,在这个基础上我们会不会更好的理解DMA呢?
第一篇文章就介绍CPU的诞生,理解一下CPU怎么来的?
在这里插入图片描述

计算机的三个根本性基础

理解一个事物的最好方法就是了解它的原则,什么东西只要找到根子了,就好说了,原则就是根子,理解原则在此基础上我们一点一点的构建一台计算机,这样也可以感觉到计算机的神奇!
计算机的三大原则:

1. 计算机是执行输入、运算、输出的机器;

计算机可以做各种各样的事情,比如:打游戏啦,处理文字啦,绘图啦,浏览网页啦,无论多么复杂的功能,都是以输入、运算、输出这个流程为单位的组合,输入必须有,没有输入计算机又不会自主思考,无法给出输出,运算必须有,没有运算这就是一根导线啊!相当于verilog中的wire a; wire b; assign b = a;这就是直接连线没有任何逻辑的参与,输出也是必要的啊!没有输出咱们用这个计算机也没有任何的意义啦!所有信息就都堆在计算机中了,我们又不能拿来用!从这个角度看自动炒菜机、自动糖葫芦机也符合计算机原则的第一点啊,更宏观的我们与学校结合在一起也可以看成计算机啊,我们是输入,学校有自己的培养流程,最终我们从学校毕业成为了不同的输出!

我们就是最智能的计算机,我们每天通过感官接触海量的信息,经过大脑的思考以后,输出成不同的内容,或者说出来,或者表现在行动上,或者以文章形式记录下来!只有这样我们才可以将自己处理的信息传递给外界!

2.程序是指令和数据的集合;

指令和数据这里涉及到以下几个问题!
1、指令和数据都是二进制数,指令与数据是针对于哪个视角区分的?
指令和数据这两个概念是针对CPU视角阐述的,内存并不区分指令与数据,指令与数据在内存眼里都是二进制数值,正常内存的结构如下:
在这里插入图片描述

正常存储器包括三部分:地址总线、数据总线、读写使能,内存就是给地址,例如给一个读使能,内存就吐出数据,给一个写使能,内存就在相应位置写入数据,内存不在意这个数据是什么,就是一个存数读数,有一个前提条件,这个数据必须是二进制的数据,内存就是一个没有感情的杀手;就好像在我们东北万物皆可冰糖,比如冰糖葫芦,冰糖辣条,冰糖辣椒,不管冰糖啥,反正熬糖浆,包糖,最后冷冻都是这个流程,这就像是内存,就是走这个流程,并不关心走流程的对象是谁!
在这里插入图片描述

指令和数据是针对CPU视角说的,CPU可以从时间和空间上区分指令与数据,CPU之所以区分指令和数据,是因为CPU不能对指令和数据一视同仁,需要对指令与数据进行不同的操作!还是糖葫芦那个例子,冰糖不在乎它包裹了谁,但是咱们在乎啊,吃山楂腹泻的吃冰糖葫芦,那肯定是不行的,可以吃冰糖橘子,冰糖葡萄,就是因为冰糖的对象不同会引发身体不同的感受和反应!下一个问题就是CPU既然区分指令和数据,那它是怎么区分的,区分的依据是什么呢?

2、指令和数据都是二进制数,如何区分指令与数据?
CPU可以从时间和空间上区分数据与指令:
时间上:
在时间上,在取指周期取出的是指令,正常三级流水线的CPU包括三个阶段:取指、译码、执行,在取指周期,CPU会将PC指针的数值作为地址去内存中取出所谓的“指令”,指令经过译码处理以后到达执行阶段,执行周期从内存取出或者往内存中写入的是数据,例如:RISC-V中的数据传输指令lb rd,offset(rs1),从地址为寄存器rs1的值加offset的主存中读一个字节,这个在取指的时候从内存中取出的就是这个数据传输指令,指令经过译码处理以后,进行执行阶段,执行寄存器rs1数值与offset的相加操作得到内存地址,内存地址线得到这个地址,吐出所谓的“数据”。
空间上:
在空间上CPU是如何区分指令和数据的呢?
通过地址来源区分,由PC提供存储单元地址的取出的是指令,指令地址码部分提供存储单元地址的取出的是操作数;
以RISC-V的LW指令为例:
在这里插入图片描述LW(load word)指令格LW rd,offset(rs1) ;
x[rd] = sext ( M [x[rs1] + sext(offset) ] [31:0] )
举个在这里插入图片描述
LW x13,4(x12)
在x12寄存器中的数加上4的偏移量对应的内存地址中,读出四个字节,存到x13寄存器中,其中4(x12)就是LW指令的指令地址码部分,从地址码部分提供的存储单元中取出的就是数据;
在这里插入图片描述
以8086CPU为例,如上图所示,8086中有4个段寄存器:CS、DS、ES、SS,8
086CPU中指令地址是由CS和IP共同提供的
,CS提供段地址,IP提供偏移地址,用它们合成指令的物理地址,去内存中取指令;摘抄王爽老师的汇编语言中的一段话:
如果说,内存中的一段信息曾被CPU执行过的话,那么,它所在的内存单元必然被CS:IP指向过!!!
8086CPU中有一个DS寄存器,通常用来存放要访问数据的段地址;

3.计算机的处理方式有时与人们的思维习惯不同

对计算机什么说什么都是数字!例如我们理解的红色就是一个色彩,但是计算机可能就用"255,0"表示红色;
不论是颜色,还是文字,计算机都是用数字进行表示;

在这里插入图片描述
例如:这张图片我们看到的是天空中有一轮明月,计算机看到的就是一串串数字;
举个例子:Perl脚本中$美元符号就是一个标识符,这个符号的意思就是后面所跟的是一个变量,好比C语言中的int,这就是因为Perl解释器看到美元符号就会把它后面跟的字符当成变量处理,看见C语言中的int则当成普通字符处理,这就是因为Perl解释器和C语言编译器对一个事物的理解不同,当然这种理解是我们人类赋予的!

二、结论

之前说了介绍有体系的计算机原理的文章,这一节介绍了计算机的三大根本性基础,包括以下3点:第1点是计算机是输入、运算、输出的机器,这就好像房子包括房梁、墙、门窗等构成,第2点是程序是由指令和数据组成的,程序是计算机运行的内容,好比房子的用途,比如幼儿园是小孩上学的,菜市场是买菜的地方,第3点是计算机的处理方式与人的思维习惯不同,就好像房子在地产商看来就是钢筋水泥,在我们看来那就是家!

三、参考资料

1.计算机如何区分指令和数据
2.王爽老师:汇编语言
3.计算机是怎样跑起来的

交个朋友

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/329697.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Robot Operating System 2: Design, Architecture, and Uses In The Wild

Robot Operating System 2: Design, Architecture, and Uses In The Wild (机器人操作系统 2:设计、架构和实际应用) 摘要:随着机器人在广泛的商业用例中的部署,机器人革命的下一章正在顺利进行。即使在无数的应用程序和环境中,也…

vue下载阿里OSS上的图片与视频,纯前端实现,以及纯JS下载图片案例

vue下载阿里OSS上的图片与视频,以及纯JS下载图片案例 1. 简介与日常使用2. Vue下载阿里OSS上的图片与视频3. 调用(单个与批量下载均可使用)4. 纯JS下载图片案例,Vue里面也可以用 1. 简介与日常使用 参考这篇文章即可:…

【算法Hot100系列】合并 K 个升序链表

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

1018:奇数偶数和1028:I love 闰年!和1029:三角形判定

1018:奇数偶数 要求:输入一个整数,判断该数是奇数还是偶数。如果该数是奇数就输出“odd”,偶数就输出“even”(输出不含双引号)。 输入样例:8 输出样例:even 程序流程图&#xff1a…

Java SE入门及基础(4)

Java 中的数据类型 1.数据的概念 数据就是信息的符号表示。 比如: 小米手机 红米 10 元 5 年 刘德华 帅 50 188 富豪 2.数据类型 生活中我们常见的数据类型: Java中的数据类型分为 基本数据类型 和 引用数据类型 两大类 Java 中…

腾讯云代金券介绍及领取教程分享

腾讯云为了吸引用户经常推出各种优惠活动,其中就包括腾讯云代金券,领取之后可用于抵扣腾讯云平台上购买的部分产品或服务的费用。以下是腾讯云代金券的详细介绍及领取教程。 一、腾讯云代金券介绍 腾讯云代金券是腾讯云优惠券的一种,代金券是…

爬虫实战 - 微博评论数据可视化

简介: 我们都知道在数据比较少的情况下,我们是可以很轻易的获取到数据中的信息。但是当数据比较庞大的时候呢,我们就很难看出来了。尤其是面对现如今数以万计的数据,就更了。 不过好在我们可以通过计算机来帮我们进行分析&#…

【AI视野·今日CV 计算机视觉论文速览 第283期】Thu, 4 Jan 2024

AI视野今日CS.CV 计算机视觉论文速览 Thu, 4 Jan 2024 Totally 85 papers 👉上期速览✈更多精彩请移步主页 Daily Computer Vision Papers LEAP-VO: Long-term Effective Any Point Tracking for Visual Odometry Authors Weirong Chen, Le Chen, Rui Wang, Marc P…

MySQL数据库进阶-事务

事务 事务由单独单元的一个或多个SQL语句组成,在这 个单元中,每个MySQL语句是相互依赖的。而整个单独单 元作为一个不可分割的整体,如果单元中某条SQL语句一 旦执行失败或产生错误,整个单元将会回滚。所有受到影 响的数据将返回到…

【软件测试】黑盒测试

《等价类划分法》 有效等价类无效等价类 &#xff08;输入条件&#xff09;10 < x < 100&#xff08;有效等价类&#xff09;10 < x < 100&#xff08;无效等价类&#xff09;x < 10 和 x >100 《边界值分析法》 基本原则 如果输入条件规定了取值范围&…

web前端开发技术复习问答题

目录 1.简述常见单标签和双标签有哪些&#xff1f; 2.常见块级元素和行级元素有哪些&#xff1f; 3.简述常见的列表有哪些&#xff1f;他们有什么区别&#xff1f; 4.简述超链接的href属性值如何设置&#xff1f;有什么区别 5.CSS基本语法 6. css中常见的引入方式有几种&…

前端性能优化之图像优化

图像优化问题主要可以分为两方面&#xff1a;图像的选取和使用&#xff0c;图像的加载和显示。 图像基础 HTTP Archive上的数据显示&#xff0c;网站传输的数据中&#xff0c;60%的资源都是由各种图像文件组成的&#xff0c;当然这些是将各类型网站平均的结果&#xff0c;单独…