计算机层次结构

系统结构

对于一台计算机,我们会对其输入原始数据,同时希望它输出计算结果。

于是我们有了以下的思考过程:

计算机无法直接获取我们希望输入的数据,所以计算机需要输入设备来获取我们的原始数据。

同理,计算机输出的东西我们不一定可以理解(或者我们不能直接看到),所以需要输出设备来显示输出的内容

我们的原始数据需要经过一定的操作才会变成我们的结果,所以我们需要运算器来帮助我们计算

运算器不清楚什么时候输出我们的计算内容,于是我们添加了控制器来告诉运算器什么时候输出计算结果

现在我们的计算机可以进行计算,输入和输出

但我们的计算机现在只可以进行单次的运算,并且无法对计算结果进行存储,我们加入存储器来解决这个问题

现在我们就得到了计算机的基本架构

但这样的结构还是存在问题,运算器接受数据的速度非常慢,并且存储数据的压力放在了运算器上,这和我们的初衷不同,于是我们将存储器放在中间,这样运算器就可以专注于数据的计算。

我们不难发现,我们输入的原始数据和计算步骤其实就是我们的软件系统/程序 ,后面蓝色方框中的部分为硬件系统

而软件和硬件在逻辑上是等效的

运算器和控制器的功能比较类似,通常被封装在一起,称为CPU

CPU和存储器(内存)我们统称为主机

输入和输出的地位和功能类似,我们统称为I/O设备

辅助存储器(硬盘)和I/O设备我们称为外设

硬件

运算器

运算器由MQ ACC ALU X PSW组成

MQ:乘商计算器

ACC:累加器

ALU:算数逻辑单元

X:通用计算器(表示为X是因为一个运算器中有多个通用计算器)

PSW:程序状态自检计算器

ALU由组合逻辑实现 根据计算规则来计算

控制器

控制器由CU IR PC组成

CU:控制单元

IR:指令计算器

PC:程序计数器

CU由时许逻辑实现 根据上一个结果判断下一步该如何做

I/O设备

I/O设备即为输入输出设备

我们常见的鼠标键盘,耳机或者屏幕都可以是输入或者输出设备

存储器

存储器分为主存储器和辅助存储器

存储器可以拆分为存储体,MAR(地址寄存器)和MDR(数据寄存器)三个部件

软件

分类

系统软件

管理整个计算机系统 让系统资源调度合理

操作系统(OS),数据库管理系统(DBMS),语言处理程序等都为系统软件

基本上带"管理"二字都为系统软件

应用软件

调用系统软件的接口来完成用户的特定任务

微信,QQ等都算

编程语言

机器语言

机器语言为二进制代码,即0100101这样的指令

计算机通过查询代码表来完成代码的运行

如令0000 为LOAD

令0001为STORE

计算机通过匹配你的指令来进行代码的运行

汇编语言

汇编语言本质上为助记符

即将类似0000的代码直接定义为LOAD代码,这样我们在写代码的时候就不需要写0000,而是写LOAD,计算机通过将LOAD的代码与0000匹配后进行执行

代码在汇编程序(汇编器)的帮助下转换成机器语言来运行

高级语言

C/C++,Java

高级语言即为汇编语言的二次封装

我们通过编译器(编译程序)将我们的代码转换成汇编语言,然后汇编语言再转换为机器语言进行运行(或者直接转为机器语言进行运行)

同时我们的代码有多行/多部分,便存在以下两种转换方式:

1.将整段代码一次性进行编译,速度非常快,一次性出编译结果(C/C++/Java)

2.逐行进行解释(通过解释程序进行),效率较低,可以按顺序运行(Python)

五层结构

计算机的五层结构是由软件和硬件共同协调完成的

其中软件和硬件的分界线不一定如上图所示,软件和硬件的分界线是非常模糊的

相关推荐
LiamTuc9 天前
计组ROM 家族分类笔记
计算机组成原理
裁冰剪雪10 天前
软硬件联通的“最后一公里”:从C代码到CPU取指的完整交接链
计算机组成原理
MarkXu10 天前
localhost 背后:一趟没有出门的网络旅行
计算机组成原理
-To be number.wan1 个月前
计算机组组成原理 | AT&T格式 和 Intel格式
学习·计算机组成原理
轻刀快马1 个月前
跨越软硬件的共鸣(二):从 Cache 写策略看 Redis 与 DB 的一致性博弈
java·开发语言·redis·计算机组成原理
雪度娃娃1 个月前
IO设备——总线系统
计算机组成原理
anew___1 个月前
计算机组成原理:深入理解运算方法与运算器设计
计算机组成原理·运算器
-To be number.wan1 个月前
计算机组成原理 | 指令格式全解析
学习·计算机组成原理
-To be number.wan1 个月前
计算机组成原理 | 指令寻址
学习·计算机组成原理