计算机层次结构
系统结构对于一台计算机我们会对其输入原始数据同时希望它输出计算结果。于是我们有了以下的思考过程计算机无法直接获取我们希望输入的数据所以计算机需要输入设备来获取我们的原始数据。同理计算机输出的东西我们不一定可以理解或者我们不能直接看到所以需要输出设备来显示输出的内容我们的原始数据需要经过一定的操作才会变成我们的结果所以我们需要运算器来帮助我们计算运算器不清楚什么时候输出我们的计算内容于是我们添加了控制器来告诉运算器什么时候输出计算结果现在我们的计算机可以进行计算输入和输出但我们的计算机现在只可以进行单次的运算并且无法对计算结果进行存储我们加入存储器来解决这个问题现在我们就得到了计算机的基本架构但这样的结构还是存在问题运算器接受数据的速度非常慢并且存储数据的压力放在了运算器上这和我们的初衷不同于是我们将存储器放在中间这样运算器就可以专注于数据的计算。我们不难发现我们输入的原始数据和计算步骤其实就是我们的软件系统/程序后面蓝色方框中的部分为硬件系统而软件和硬件在逻辑上是等效的运算器和控制器的功能比较类似通常被封装在一起称为CPUCPU和存储器(内存)我们统称为主机输入和输出的地位和功能类似我们统称为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/CJava高级语言即为汇编语言的二次封装我们通过编译器编译程序将我们的代码转换成汇编语言然后汇编语言再转换为机器语言进行运行(或者直接转为机器语言进行运行)同时我们的代码有多行/多部分便存在以下两种转换方式1.将整段代码一次性进行编译速度非常快一次性出编译结果C/C/Java2.逐行进行解释通过解释程序进行效率较低可以按顺序运行Python五层结构计算机的五层结构是由软件和硬件共同协调完成的其中软件和硬件的分界线不一定如上图所示软件和硬件的分界线是非常模糊的

相关新闻