当前位置:网站首页>关于机组的部分知识点随笔
关于机组的部分知识点随笔
2022-08-02 14:14:00 【零雨z】
先写点概念,
计算机体系结构(Computer Architecture)主要研究硬件和软件功能的划分,确定硬件和软件的界面,哪部分功能由硬件系统来完成,哪部分功能由软件系统来完成。
计算机组成原理(Computer Organization)是依据计算机体系结构,在确定且分配了硬件子系统的概念结构和功能特性的基础上,设计计算机各部件的具体组成,以及它们之间的连接关系,实现机器指令级的各种功能和特性,这点上说计算机组成原理是计算机体系结构的逻辑实现。
计算机实现(Computer Implementation)是计算机组成的物理实现,包括中央处理器、主存储器、输入输出接口和设备的物理结构,所选用的半导体器件的集成度和速度,器件、模块、插件、底板的划分,电源、冷却、装配等技术,生产工艺和系统调试等各种问题。总之,就是将完成逻辑设计的计算机组成方案转换成真实的计算机,也就是将满足设计、运行、价格等各项要求的计算机系统真正地制作并调试出来。
首先先说说程序是什么。
程序=指令+数据
程序=算法(有特定意义地指令)+数据结构(有组织的数据)
我们把需要计算机做的事情写好,但是计算机看不懂,这时通过编译器,让我们“语言互通”,并且编译器还会自动进行优化,方便我们成功理解对方的意思。
只有指令是运行过程中CPU真正执行的。
各个阶段的主要负责人员
开发阶段->编译阶段–>链接阶段(构建阶段)->运行阶段
程序员 编译器 链接器 CPU
计算机系统层次结构
1. 计算机硬件的基本组成
计算机硬件主要指计算机的实体部分,通常有 运算器,控制器,存储器,输入设备和输出设备五部分.
运算器和控制器在后来被合并为处理器 所以可以简写为 CPU+内存+I/O
CPU是指将运算器和控制器集成到一个电路芯片中. 数据的交换是通过总线(BUS)
2. 计算机软件的分类
计算机软件按照面向对象的不同可分两类:
系统软件:用于管理整个计算机系统,合理分配系统资源,确保计算机正常高效地运行,这类软件面向系统.(包括:标准程序库,语言处理程序,OS,服务程序,数据库管理系统,网络软件)
应用软件:是面向用户根据用户的特殊要求编制的应用程序,这类软件通常实现用户的某类要求.
计算机的工作过程
(1)计算机的工作过程就是执行指令的过程
指令由操作码和地址码(操作数)组成:
操作码指明本指令完成的操作
地址码指明本指令的操作对象
(2)指令的存储 指令按照存储器的地址顺序连续的存放在存储器中.
(3)指令的读取 为了纪录程序的执行过程,需要一个记录读取指令地址的寄存器,称为指令地址寄存器,或者程序计数器.指令的读取就可以根据程序计数器所指出的指令地址来决定读取的指令,由于指令通常按照地址增加的顺序存放,故此,每次读取一条指令之后,程序计数器加一就为读取下一条指令做好准备.
(4)执行指令的过程 在控制器的控制下,完成以下三个阶段任务:
1)取指令阶段 按照程序计数器取出指令,程序计数器加一
2)指令译码阶段 分析操作码,决定操作内容,并准备操作数
3)指令执行阶段 执行操作码所指定内容
关于指令还有很多内容,就不展开了,比如寻址方式,指令执行过程等等。
数据的存储:大体分为两类,数和非数的数据,在存储时,会把非数的数据转换为数类型的数据via编码表,即所有非数的数据都有自己的一个数的形态。
这里讲一下ALU :是运算器中的主要组成部分,又称多功能函数发生器,主要用于完成各种算术运算和逻辑运算.
ALU (Arithmetic & Logic Unit)算术逻辑单元
算术:加法、减法、乘法、除法、取余
逻辑:与、或、非
如果说CPU是计算机的核心,那么ALU就是CPU的核心
所有程序的执行,本质上都是 计算+读取+录入 读取: memory -> register
存入: register -> memory

CPU基本工作流程:
具体流程可以分为 取码 解码 执行 并循环进行
1.取码阶段
CU根据PC寄存器的值,去内存的响应位置,把数据(指令)读取到IR寄存器中正常情况下,PC寄存器中的值自动+1
说简单点就是根据PC值去把指令寄存到IR(指令寄存器),然后PC+1
PC自动+1可以使我们的代码变成的指令顺序的向下执行。
2.解码阶段
CU按照预先设定的指令集解读指令数据(opcode +操作数)
也就是指令寄存器中的指令经过译码,觉得应进行那种操作,操作数在哪里
3.执行阶段
指令应该由CU执行,所以按照规定执行指令。
执行指令分为两步:取操作数和进行运算。
取操作数:CPU通过寻址操作从内存中读取操作数到寄存器中,暂时保存起来
进行运算:运算单元通过指令中的操作码,对寄存器中的数进行操作
我们在程序中的分支语句,本质上就是提供了修改PC值的指令,进而影响了执行流
CPU的中断模式(Interrupt Mode)
正常模式下,CPU可以顺序执行,可以分支执行。但总归只能按照既定顺序去执行。
但现实中,很多时候,需要暂时中断CPU的当前执行流,先让CPU去做点其他工作,再回过头来继续原来的执行流.
中断经常用作:
1.lO设备的处理
当有外部数据到达Input设备时,触发某个中断
让当前正在执行的执行流暂停,切换到Input驱动对应的执行流把Input设备中读取到的数据,放到内存的某个位置
恢复之前的执行流
2.操作系统中用来作进程调度(线程调度)
最后贴一下板书的观点总结。
好了,既然是随笔,就把最近用到的想到的记下来方便复习,关于Cache,总线,I/O之类的等需要用时复习我再写一篇吧。
边栏推荐
猜你喜欢

change the available bandwidth of tcp flow dynamically in mininet

类模板/赋值运算和加等运算

Unity-3D数学

饥荒联机版Mod开发——配置代码环境(二)

unity-shader(中级)

记一次 ThreadLocal 泄漏导致的 shardingsphere-jdbc-core 单元测试偶发失败的排查与修复

你的站点可能还没有准备好用于Site KitSite Kit 无法访问 WordPress REST API。请确保其已在您的站点上启用。

Vert.x web 接收请求时反序列化对象 Failed to decode 如何解决?

C语言函数调用过程-汇编分析

MySQL协议长什么样子
随机推荐
理解:野指针,空指针,失效指针。
【Solidity智能合约基础】-- 基础运算与底层位运算
Unity-3D数学
char array/string array|array pointer/pointer array/
The use of a semaphore/interprocess communication 】 【 Shared memory
"Array" look-up table method (leap year)
如何编辑VirtualLab Fusion结果的格式
HCIE学习记录——数据封装与常用协议(TCP/UDP)
三方对接接口数据安全问题
implement tcp bbr on ns3 (在ns3上实现TCP BBR)
项目管理模块-项目权限功能开发
Oauth2.0 custom response values and exception handling
关于推荐系统的随想
移动拷贝构造函数
golang内存相关文章-收集
Qt | 播放音频文件 QMediaplayer
关于分布式的一些知识点
饥荒联机版Mod开发——配置代码环境(二)
基类和派生类的关系【继承】/多态和虚函数/【继承和多态】抽象类和简单工厂
Oauth2.0 安全性(以微信授权登陆为例)