中国最大的手表网站,安徽网新科技有限公司网站开发,新能源东莞网站建设技术支持,无锡网页建站公司课程#xff1a;计算机系统基础
核心理念#xff1a;人类世界与计算机世界的异同
人类世界 直观感受数学 计算机世界 与数学不同#xff0c;存储首先#xff0c;各层次与现实世界不同
我们关注点是差异点#xff01;
一样的你就不用关心了#xff0c;关心差异#…课程计算机系统基础
核心理念人类世界与计算机世界的异同
人类世界 直观感受数学 计算机世界 与数学不同存储首先各层次与现实世界不同
我们关注点是差异点
一样的你就不用关心了关心差异差异在哪里呢
计算机存储是首先了编译器规则编码转换规则……
计算机这个工具最重要的就是将人类思维产物使用计算机实现。
因此说有很多地方是直接可以直观地去实现逻辑思维过程的语义上就能理解但是也有计算机的一些特点需要我们专门去把握从计算机本身处理方式和规则去理解
面向机器描述机器级语言机器语言和汇编语言
二者都是面向机器结构的语言与机器有关不同机器不同的系统结构就不一样了移植性不好。
面向算法描述高级语言
根据人的逻辑思维方式产生的产物来编程越来越接近人类思考方式。机器无关因为内些部分交给编译器处理了编译器来完成机器相关性的处理这也是一种封装。
执行hello world程序 这里值得注意的关键点是缓存技术我们将存储器进行分层设计从而 平衡了存储的容量、速度和价格等多方面因素
缓存1磁盘存储可执行程序的二进制信息速度慢容量大价格低缓存2执行程序的时候调入内存中速度比磁盘快的多缓存3内存中的二进制代码调入cache中速度更快缓存4cache内容调入到CPU寄存器中速度最快
我们可以体会到计算机通过多层次缓存完成了程序的一步步缓冲通过CPU控制它们从而有了我们现在看见的计算机系统。
使用高级语言开发程序需要的环境 早期原始程序开发方式 早期没有高级语言也没有那么多的复杂上层环境我们只需要直接使用汇编语言/机器语言输入到计算机中执行即可这个过程对于计算机来说很简单也不需要有太多复杂的处理但是对于人类来说编程是一件非常痛苦的事情啊……
现代高级语言程序开发方式
高级语言的但是解决了汇编语言开发时代的困难不过也因此计算机需要处理的工作复杂起来了也就是人类世界通往计算机世界的通道变复杂了。 那么这里都具体包括了什么呢我们依次说明一下
人类世界高级语言
我们发明高级语言其实是一种对计算机的权衡与妥协。
高级语言
相对来说比较符合人类思维虽然不是自然语言但是人类也容易接受计算机也容易接受高级语言如果是自然语言那计算机是接受不了的
权衡之下高级语言成了人类与计算机世界沟通的通行语言。就像英语是国际通行语言内样。
任何事务都有实体和抽象人类的是
实体人类的肉体抽象高级语言
桥梁/通道
桥梁和通道也可以叫翻译官它负责连接人类世界和计算机世界
传入和转换 传入键盘鼠标 通过键盘和鼠标还有文本编辑器我们就能够往计算机中输入高级语言并存储在磁盘中 完成源程序的编辑 转换人类世界传入的它给转换成计算机世界能够接受的 对于源程序我们需要进行一系列的转换最终将其转换为二进制源程序 –编译器– 汇编代码 –汇编器– 可重定位二进制 –链接– 二进制的可执行文件 传出和转换 传出显示器 计算机传出信息通过显示器转换为人类可以识别的信息 转换计算机世界传出的它给转换为人类世界能够接受的
它的实体和抽象是
实体键盘、鼠标、显示器、存储器…抽象转换逻辑逻辑的实现构成了编译器、汇编器等
计算机世界二进制的世界
计算机世界是最终处理二进制指令和数据的地方。
实体CPU抽象ISA指令集架构
大管家操作系统 操作系统负责接收CPU发出的控制信号负责管理计算机世界以及桥梁的各种控制方式。
操作系统也接收人类世界发出的命令让计算机执行也就是人机接口。
计算机的发展抽象层次不断提高
ISA是计算机硬件的抽象。
ISA与微架构
微架构就是指令集架构的实现形式是硬件实现。同一个ISA可以有不同的微架构来实现只要完成了ISA规范即可。 不同指令的组合实现了通用计算机否则如果只能是固定的程序那就是专用计算机了就像现在的量子计算机“九章”一样是专用量子计算机是不可编程的。
先设计再实现先抽象再具象
对于计算机的发展过程来说是自底向上一层层抽象和封装的。
但是对于程序员来说通常是先设计再实现也就是从人类思维出发先完成抽象再进行实现的是自上而下的。当然这不是绝对是人类的思维过程更多会受到整体性的、系统思维的影响。
计算机层次结构
ISA是最重要的层次它向下影响硬件结构向上影响操作系统等。
指令集架构是计算机硬件结构的抽象然后对于抽象出来是指令我们可以对其进行各种排列组合根据人类的抽象思维来编写程序让硬件运行起来指令是可以有各种排列组合的这也就是通用计算机。
我们编写的程序如果直接运行那就只有3层结构是最原始的通用计算机。 后来人类发明了助记符形成了汇编语言它与机器语言一一对应但是需要翻译因此需要汇编器人类需要编辑汇编指令也需要管理因此就初代的操作系统此时一个能够实现汇编语言程序设计的二代计算机就诞生了。 再后来操作系统演变更加复杂同时高级语言和编译器也有了这是现代经典计算机雏形。 计算机的发展实现了一层层的抽象和封装让人类成了会飞的汤姆猫。
这没什么不好的但是身为计算机专业人士我们需要足够了解底层机制如果哪一天帮助飞行的火箭不好用了我们也能分析原因并处理。
指令集架构ISA是对计算机硬件的抽象操作系统是对ISA的抽象和保护它对外仅提供API编译器汇编器以及编程语言调用了操作系统的接口也就是它提供的系统调用完成了高级语言的库函数对程序员进行了进一步封装程序员现在更多需要关注的是做什么而不是怎么做因为大多的功能都被足够的优化和封装了人类就应该更多思考人类该做的事情机器能做的让它自动做人类就不用思考了但是人类必须懂机器在做的事情这本身就是人类发明的不懂底层干啥啥不行。
ISA
ISA说白了就是规范人们都要按照这个规范去设计计算机硬件和软件从而让所有遵循规范的人能够互通有无提高沟通效率。编程语言是唯一全球化的通用语言这非常酷
微架构
至于微架构就是ISA的硬件实现只需要指定同样的ISA可以使用各种各样的微架构实现这很好理解不是吗就好比单周期CPU和流水线CPU内样或者一个乘法指令可以有很多具体实现方式。