Computer Abstractions
计算机系统结构的概述
(MOOC:计算机系统设计)
组成:
硬件:CPU +MM(主存)+I/O(输入/输出)
软件:系统软件+应用软件
层次结构:
发展简史:
第一代:真空管
·ENIAC
·冯诺依曼机:
存储程序、程序控制
存储程序:将事先编号的程序、原始数据送入主存中,启动执行。计算机能自动逐条取出并且执行指令。
冯诺依曼:存储程序通用电子计算机方案(电子离散自动计算机)
构想: 计算机应由:运算器、控制器、存储器、输入设备、输出设备 五基本部件构成。
·各部件功能: 存(数据、指令,形式上无区别,但机器能区分)
控制器:自动执行指令
运算器: 能进行基本算术运算,也能进行一些逻辑运算、附加运算。
操作人员通过I/O 和主机进行通讯
·内部以二进制表示指令和数据
·采用“存储程序”工作方式
存储程序通用电子计算机方案(电子离散自动计算机)
第二代:晶体管
元器件:逻辑元件采用晶体管,内存由磁芯构成,外存为磁鼓与磁带),
软件(使用高级语言)
三代:SSI/MSI
元器件:
四代:
计算机系统概述:
计算机:分而治之
分界——
晶体管
兼容机
总线结构
好处:可扩充性等
四代——特点
70年代开始计算机小型化
基本组成与基本功能:
计算机实现所有任务都是通过执行一条一条指令完成的。
解剖一台计算机(分而治之)
芯片功能模块:
处理器内部布局
Cache:指令
普林斯顿高等研究院——>IOS :ias计算机
EDSAC
你认为冯诺依曼结构式怎样的?
GPRs:是什么
MDR 、IR
Cache:高速缓冲器。快于储存。
GP:
General packet:压缩包
perpose : GP
指令集合:ISA
计算机是如何工作的?
程序执行前:
执行程序:
第一步:根据PC取指令 ————>IR计算器
第二部
第三步
第四步
第五步:送回计算器或者主存里
第六步:修改下一个指令的值(根据PC取指令)(连接第一步)
指令数据
启动前:存储程序
指令执行过程: DIS ->MM(主存) -(PC计算器)> CPU(IR、GPR)
操作性质(操作码):二哥
源操作数1 或/和 源操作数2
目的操作数地址 (只能是:。。。)
Compiler :编译
Hardware/Software Interface
右侧: 高级语言程序->汇编语言程序(Linux指令) (架构<体系结构>:MIPS)【lw(load word)从内存装载】 ->机器语言指令(前八个:操作符,后面操作数: 1111:15,0100:$)->控制信号
机器语言:指令代码构成,能被硬件直接地执行(产生控制信号)
Software:
系统软件:
翻译程序:
汇编程序:汇编语言源程序 ->机器目标指令(程序)
编译程序(先编译,生成目标文件,额外占用内存):
解释程序:将高级语句逐条翻译成机器指令并执行,不生成目标文件。
其他程序:磁盘整理程序、备份程序等。
应用软件:解决具体应用问题
体系结构
计算机系统层次
ISA(指令集)是软/硬件的交界面 :最核心部分!
不同用户不一样:虚拟
典型系统硬件组成
I/O bridge:芯片组
chipset
南桥(I/O -I/O bus)(慢一些)、北桥(作用大一些)(I/O Memory bus、system bus):
CPU:
MIPS :运算器用的数来源于计算器
LW、ld :访问主存
计算器访问速度快,
典型程序转换过程:
例:hello.c:
功能:输出:hello,world
hello.c 的ASCII :文本表示 十进制数
例 : ‘#’ :35 = 32+2 +1 : 100000 + 10 +01 = 00100011(二进制) = 23H(16进制)
老师,16进制H咋化出来的
pre(预编译)->compiler(编译器 )->assem(汇编)->linker(链接):最后得到可执行文件(二进制机器指令)
Red:shell命令行处理
cache:缓存
1级缓存.cpu内部
2级缓存.l1 :cpu、主存之间
Course Outline
·性能评价方法
·计算机算术
·数据的表示、运算
存储器层次结构
指令集体系结构
CPU设计
·数据通路(Data path)和控制器(Control Unit)
流水线技术
系统总线
输入/输出系统
不同层次语言之间的等价变换
·下是对上的实现,上是对下的虚拟。
ALUop = add
IorD =1 (指令D、数I能区分开)
汇编语言:Linux,指令集?
违
开发和运行程序需要什么支撑:
·最早:直接输入指令、数据
·高级语言:编辑器、编译器 (java:jre)
·执行程序界面(环境):GUI方式(图形用户界面)、CUI方式(命令行用户界面)
目的操作数地址(只能是内存地址等)不能是立即数:立即数:直接拿过来运算、内存中的。
早期计算机系统层次
最早的计算机用机器语言编程
机器语言:第一发i程序设计语言 :1GL
后来:汇编语言(符号语言)编程
第二代程序设计语言 : 2GL
现代~~
第三代:过程式:3GL(代码需要描述实现过程)
第四代:非过程式:4GL(代码只需说明做什么)
计算机语言发展:不断“抽象”的过程,因为,相应的计算机系统也不断有新的层次出现
系统抽象层的转换:
指令集体系结构ISA:将软硬件分割开来 -------
功能转换:上层是对下层的抽象,下层是对上层的是实现
ISA:对硬件的抽象,所有的软件功能都建立在ISA之上
ISA:
ISA指:指令集体系结构
是一种规约,规定了如何使用硬件
·可执行的指令集和,包括指令格式、操作种类、每种操作对应的操作数的相应规定。
·指令可接受的操作数的类型。
·操作数能存放的寄存器组的结构:包含每个寄存器的名称、编号、长度、和用途。
·操作数所能存放的存储空间的大小和编址方式。
·操作数
· 作业:查存储器的组织形式:大端、小端。
·指令执行过程的控制方式:程序计数器、条件码定义等。
ISA是在计算机系统中必不可少的一个抽象层,WHy?:对上、对下,承上启下。
计算机体系结构:
计算机体系结构(有没有该属性):程序员(机器指令程序员)所能看到的计算机系统的属性:
概念性的结构与功能特性(指令系统、数据类型、寻址技术、I/O机理)
计算机组成(有该属性,如何去实现): 实现计算机体系结构所体现的属性,即逻辑实现(具体指令的实现)
计算机实现: 计算机组成的物理实现,着眼于器件技术(如CPU的物理结构)
computer architecture
computer organization
computer implemention
ISA和计算机组成(微机构)关系:
ISA 是计算机组成的抽像
MIPS
ARM :手机处理器 (华为:ARM 8)
IA-32(64) :intel的32位(64位)的架构
计算机体系结构的简述:
·第一台通用电子计算机诞生于1946
·计算机技术飞速发展得益:
·制造技术发展、系统结构创新
发展过程(4个):
计算机系统结构的经典定义:程序员(机器语言)所看到的计算机属性,即概念性结构与功能特性
Amdahl提出的系统结构
传统机器语言级程序员索卡到的计算机属性
广义系统体系结构
指令集结构、组成、硬件(计算机设计的3个方面)
对于GPRs(通用寄存器型的)机器,属性是指:
指令系统(机器指令的操作类型和格式、指令间的排序和控制机构等)、数据表示(硬件能直接识别和处理的数据类型)、寻址规则(最小寻址单元、寻址方式及其表示)、寄存器定义、终端系统(中断的类型和中断相应硬件的功能等)、机器工作状态的定义和切换(管态和目态)、存储系统(主存容量、可用最大存储容量等)、信息保护(信息保护方式、硬件对信息保护的支持)、I/O结构(I/O连接方式、处理机/存储器等)
计算机系统结构概念的实质:
确定计算机系统中软、硬件的界面(ISA),界面之上时软件实现的功能,界面之下是硬件和固件实现的功能。
常见计算机系统结构分类方法:
FLynn分类法、冯氏分类法(系统最大并行度对计算机进行分类)
FLynn:指令流、数据流、多倍性
第一章节:
计算机系统结构的概念
定量分析技术
计算机系统结构的发展
计算机系统结构中并行性的发展
理解计算机系统的层次结构、计算机组成、计算机系统结构、计算机实现的含义以及之间的关系,理解定量分析技术,计算机系统结构的并行性,了解计算机结构的发展以及其中的并行性发展。
重点: 计算机系统的层次结构,定量分析技术,计算机系统结构的并行性。
难点:计算机层次的概念和计算机体系结构的内涵,定量分析技术的方法。
思考: ·计算机系统层次结构的具体结构。
·计算机性能提高的计算。
·掌握冯诺依曼计算机的结构和工作原理。
Computer Abstractions的更多相关文章
- [CSAPP] Chapter 1 Overview of Computer
1.1 information is bits + context All computer programs are just a sequence of bits, each with a val ...
- Important Abstractions and Data Structures
For Developers > Coding Style > Important Abstractions and Data Structures 目录 1 TaskRunne ...
- Uniform synchronization between multiple kernels running on single computer systems
The present invention allocates resources in a multi-operating system computing system, thereby avoi ...
- 共享文件夹:The user has not been granted the requested logon type at this computer
场景重现 今天做一个项目测试,要用到虚拟机,于是在虚拟机(XP 32)上新建了一个共享的文件夹.然后我在Win7 机器上访问它得到如下的error 消息:
- Computer assisted surgery
Computer assisted surgery (CAS) represents a surgical concept and set of methods, that use computer ...
- Computer vision labs
积累记录一些视觉实验室,方便查找 1. 多伦多大学计算机科学系 2. 普林斯顿大学计算机视觉和机器人实验室 3. 牛津大学Torr Vision Group 4. 伯克利视觉和学习中心 Pro ...
- Computer Vision: OpenCV, Feature Tracking, and Beyond--From <<Make Things See>> by Greg
In the 1960s, the legendary Stanford artificial intelligence pioneer, John McCarthy, famously gave a ...
- 数论 - Vanya and Computer Game
Vanya and his friend Vova play a computer game where they need to destroy n monsters to pass a level ...
- A Taxonomy of Computer Organizations
COMPUTER OR GANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCE NINTH EDITION
随机推荐
- 吴裕雄--天生自然HADOOP操作实验学习笔记:hdfs简单的shell命令
实验目的 了解bin/hadoop脚本的原理 学会使用fs shell脚本进行基本操作 学习使用hadoop shell进行简单的统计计算 实验原理 1.hadoop的shell脚本 当hadoop集 ...
- 本地连接mysql的url写法
一.jdbc:mysql:///中三条斜杠(///) 第三个/代表什么? jdbc:mysql:///testdatabase等同于 jdbc:mysql://localhost:3306/testd ...
- Dom中的一些接口
节点都是单个对象,有时需要一种数据结构,能够容纳多个节点.DOM 提供两种节点集合,用于容纳多个节点:NodeList和HTMLCollection.这两种集合都属于接口规范.许多 DOM 属性和方法 ...
- 剑指offer-面试题23-链表中环的入口节点-双指针
/* 题目: 如果链表中包含环,如何找出环的入口? */ /* 思路: 双指针: 1.判断是否有环. fast指针一次2步,slow指针一次1步,当fast与slow相遇时,说明有环. 2.判断环路中 ...
- CF840D[Destiny] [主席树板子]
模板题,提供两种思路. 1.考虑它求得是 出现个数\(>\lfloor \frac{r-l+1}{k}\rfloor\) 的最小值 那么我们可以根据如果大于这个数那么你把这个区间数列排好序然后分 ...
- javascript 权威指南二
1.JavaScript程序是用Unicode字符集编写的.Unicode 是ASCII和Latin-1的超级,并支持地球上几乎所有在用的语言. 2.JavaScript是区分大小写的语言.HTML并 ...
- java课后动手动脑作业
public class Suiji { public long a=12345L;//定义long类型的a,b,c变量 public long c=12345L; public long m=456 ...
- exe 发布为服务
参考连接: https://www.cnblogs.com/liuxiaoji/p/8016261.html 1.有两个文件 srvany.exe,instsrv.exe 然后放到指定的文件下下: 2 ...
- Electron+React+七牛云 实战跨平台桌面应用(最新更新)
课程资料获取链接:点击这里 前市场上对 Electron 的呼声很高,它几乎是 Web 开发人员开发桌面客户端的唯一途径,很多大厂都使用 Electron 开发自己的原生应用.Electron 天生适 ...
- asp.net core 配置文件动态更新
IOptions<T> //站点启动后,获取到的值永远不变 IOptionsSnapshot<T> //站点启动后,每次获取到的值都是配置文件里的最新值 (reloadOnCh ...