第1章 计算机系统概论

合集下载

第1章 计算机系统概论

第1章 计算机系统概论
看不见、摸不着
2
1.1
用来管理整个计算机系统, 系统软件 监视服务,使系统资源得到 (系统程序) 合理调度,高效运行。
语言处理程序(编译程序)
软 件
操作系统 数据库管理系统
服务性程序(诊断、调试、连接)
网络软件
应用软件 按任务需要编制成的各种程序 3 (应用程序)
二、计算机系统的层次结构 1. 计算机的解题过程
35
例:微机A和B是采用不同主频的CPU芯片,片内逻辑电 路完全相同。 (3) B机的平均指令执行速度为多少? 解答: (3) A机平均每条指令的时钟周期数=2.5μs/0.125μs=20。 因微机A和B片内逻辑电路完全相同,所以B机平均每 条指令的时钟周期数也为20。 由于B机的CPU主频为12MHz.所以B机的CPU时钟 周期=1/12MHz= 1/12μs。 B机的平均指令周期=20×(1/12)=5/3μs。 B机的平均指令执行速度=1/(5/3)μs=0.6MIPS。 另解:B机的平均指令执行速度=A机的平均指令执行 速度0.4MIPS×(12/8)=0.6MIPS。
计算机 组成
如何实现计算机体系结构所体现的属性
(具体指令的实现)(对程序员透明—不知道)
如何实现乘法指令
7
1.2 计算机的基本组成
电子计算机是一种自动计算工具,而算盘是手动计 算工具。 计算机有存储程序的功能,即能把由操作步骤编制 成的程序(program)记住,然后按程序的要求,逐 一完成程序规定的操作任务——程序存储控制原理
1.1
高级语 言程序 (源程序)
翻译
目标 程序
运行
结果
计算机
4
2、计算机系统的层次结构
高级语言
虚拟机器 M4 虚拟机器 M3

第1章 计算机系统概论

第1章 计算机系统概论

第1章计算机系统概论第1章计算机系统概论第一章计算机系统概论计算机系统是由硬件和软件两大部分组成的,其功能是完成数据的输入、传送、存储、处理和输出。

本章介绍计算机系统的基本组成、层次结构和体系结构,认识计算机体系结构、组成和实现三者之间的关系。

1.1计算机系统的基本组成计算机系统的基本组成可以分为硬件和软件两部分。

硬件是其物质基础,是软件的载体;软件则是计算机系统的灵魂。

没有硬件,软件就不能运行;没有软件,硬件就发挥不了作用,从而失去存在的价值。

因此二者紧密相关,缺一不可。

1.1.1硬件组成一般来说,计算机的硬件组成可以用图1-1来表示。

对微型机来说,运算器和控制器集成在一块芯片上,称为中央处理部件(cpu)。

cpu和内存储器统称为主机。

输入设备和输出设备统称为外围设备。

所谓输入与输出,是相对于主机系统而言的。

磁盘系统既是输入设备,也是输出设备。

当保存一个文档时,磁盘就是一个输出设备;当打开一个文档时,磁盘就作为输入设备使用。

主机和外围设备组成了计算机的硬件系统。

各部件之间使用三条总线连接,各部件之间就通过这三条总线实现信息传送。

注意,所有外围设备都是通过接口线路和总线连接的。

通常,cpu只与接口打交道(传递信息),而不与外围设备直接打交道。

数据总线(dbus)是双向总线,在不同时刻可以在不同方向上传递数据,但同一时刻只能在一个方向传递数据。

地址总线(abus)用来选择发送数据或接收数据的地址。

地址总线上的信息通常是由cpu提供的。

当cpu将总线控制权转交给dma控制器时,地址总线上的信息便由dma控制器提供,这时cpu对外表现为高阻态。

dma控制器通常用于控制主机(内存)和高速外围设备(如磁盘)之间的数据传送。

控制总线(cbus)中的大部分信息由cpu提供,也有一些由内存或外围设备提供,但它不是双向总线;在大多数情况下,任何一条控制总线上的信息总是向着一个方向传递。

计算机的主要功能是处理数据。

第1章-计算机系统的基本构成-完整版

第1章-计算机系统的基本构成-完整版

运算器
运算器是完成运算功能的部件。
运算器中有一个算术逻辑单元(ALU), 它执行各种数据运算操作。
算术运算:加、减、乘、除、数据格式转 换。
ALU
逻辑运算:按位对数据进行与、或、非、
控制信号
移位等运算。
ALU是一个多功能的运算电路,进行何种
运算取决于由控制器发出的控制信号。
运算结果
缺点:所有设备都连在一组总线上,总线 只能分时工作,使数据传输量受限。
AB
CPU
RAM
ROM
I/O接口 IO设备
IO设备
DB CB
面向CPU的双总线结构
输入输出(I/O)总线
CPU
I/O接口 I/O接口
存储总线
I/O接口
主存
IO设备
IO设备
IO设备
通过存储总线使CPU对主存进行读/写操作。通过I/O总线让CPU与I/O设备 进行数据交换。
(1) DMA (Direct Memory Access)方式的提出
中断方式仍很费时,无法实现大容量的快速数据交换。
每进行一次传送,CPU都要执行一次中断服务程序,且都要保 护和恢复断点,及保护现场等。这些操作与数据传送并无直 接联系,但很费时。
1.3 计算机系统的历史与发展
1.1 计算机的基本构成
输入
存储器 运算器
控制器
数据线路 控制信号
输出
微型计算机
以微处理器为核心 配上由大规模集成电路的存储器
(ROM/RAM)、输入/输出接口(I/O)电 路及系统总线(BUS)等所组成的计算机。 将这些组成部分集成在一片超大规模集成电 路芯片上则构成单片微型计算机
第1章 计算机系统概论

第一章计算机系统概论(含练习题)2010

第一章计算机系统概论(含练习题)2010

1.4 (评价)计算机系统的性能指标
对各种机器指令平均执行时间及对应 指令使用频度综合计算后,得出单 位时间执行基本指令条数,为等效 速度。 • 常以MIPS和MFLOPS作为计量单位来 衡量运算速度: MIPS(Million Instructions Per Second),即每秒百万条指令; MFLOPS表示每秒百万次浮点运算。
第一章 计算机系统概论
主要内容: • 计算机发展概况; • 计算机系统简介(层次结构); • 计算机硬件组成及工作过程; • 计算机系统的主要性能指标; • 计算机分类、应用及展望。
第一章 计算机系统概论
1.1 计算机发展概况 一、计算技术的发展及计算机的产生 • 人类社会信息化的产物。 • 解决社会和自然界各种问题的一种 工具。 二、计算机发展史 1.计算机“代”(generation)的划分 ——一般用表格表示如下:
1.1 计算机发展概况
• 指令在存储器内按顺序存放,通常指 令是顺序执行的,在特定情况下,可 根据运算结果或按设定条件改变执行 顺序; • 机器以运算器为中心,输入输出设备 与存储器的数据传送经过运算器。 (4)典型的冯·诺依曼计算机结构 见下图--
1.1 计算机发展概况
存储器
输入设备
运算器
输出设备
1.1 计算机发展概况
课后可作的练习 :
1-1 查阅资料,比较各代计算机主要 软、硬件方面的变化(新出现的技 术)。 1-2 微型计算机也划分了各个“代”, 一般是以Intel微处理器型号作为划 分依据。请查阅资料,用表格的形式 简要描述以Intel微处理器为CPU的微 型计算机的主要发展阶段 。
计算机组成原理
2010—2011学年第一学期 课堂教学:56学时 计算机0801-0803班

第1章 计算机系统概论第二版课后习题详细讲解

第1章 计算机系统概论第二版课后习题详细讲解

第1章计算机系统概论1. 什么是计算机系统、计算机硬件和计算机软件?硬件和软件哪个更重要?解:P3计算机系统:由计算机硬件系统和软件系统组成的综合体。

计算机硬件:指计算机中的电子线路和物理装置。

计算机软件:计算机运行所需的程序及相关资料。

硬件和软件在计算机系统中相互依存,缺一不可,因此同样重要。

2. 如何理解计算机的层次结构?答:计算机硬件、系统软件和应用软件构成了计算机系统的三个层次结构。

(1)硬件系统是最内层的,它是整个计算机系统的基础和核心。

(2)系统软件在硬件之外,为用户提供一个基本操作界面。

(3)应用软件在最外层,为用户提供解决具体问题的应用系统界面。

通常将硬件系统之外的其余层称为虚拟机。

各层次之间关系密切,上层是下层的扩展,下层是上层的基础,各层次的划分不是绝对的。

3. 说明高级语言、汇编语言和机器语言的差别及其联系。

答:机器语言是计算机硬件能够直接识别的语言,汇编语言是机器语言的符号表示,高级语言是面向算法的语言。

高级语言编写的程序(源程序)处于最高层,必须翻译成汇编语言,再由汇编程序汇编成机器语言(目标程序)之后才能被执行。

4. 如何理解计算机组成和计算机体系结构?答:计算机体系结构是指那些能够被程序员所见到的计算机系统的属性,如指令系统、数据类型、寻址技术组成及I/O 机理等。

计算机组成是指如何实现计算机体系结构所体现的属性,包含对程序员透明的硬件细节,如组成计算机系统的各个功能部件的结构和功能,及相互连接方法等。

5. 冯•诺依曼计算机的特点是什么?解:冯•诺依曼计算机的特点是:P8●计算机由运算器、控制器、存储器、输入设备、输出设备五大部件组成;●指令和数据以同同等地位存放于存储器内,并可以按地址访问;●指令和数据均用二进制表示;●指令由操作码、地址码两大部分组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置;●指令在存储器中顺序存放,通常自动顺序取出执行;●机器以运算器为中心(原始冯•诺依曼机)。

计算机系统基础第一章计算机系统概论

计算机系统基础第一章计算机系统概论
方面有关
一点不错!理解程序的执行结果要从系统层面考虑!
– 本来以为学学编程和计算机基本原理就能当程序员,没想到还 挺复杂的,并不是那么简单
学完“计算机系统基础”就会对计算机系统有清晰的认识 ,以后再学其他相关课程就容易多了。
– 感觉要把很多概念和知识联系起来才能理解程序的执行结果
你说对了!把许多概念和知识联系起来就是李国杰院士所提出的 “系统思维”。 即:站在“计算机系统”的角度考虑问题!
Why?
3.14 3.14 3.1399998664856 2.00000061035156 3.14, 然后存储保护错
理解该问题需要知道: 机器级数据的表示 过程调用机制 栈帧中数据的布局 ……
用“系统思维”分析问题
void copyij (int src[2048][2048], int dst[2048][2048])
/*---main.c---*/ int main() {
int a[1]={100}; int sum; sum=sum(a,0); printf(“%d”,sum); }
数据的表示 数据的运算 各类语句的转换与表示(指令) 各类复杂数据类型的转换表示 过程(函数)调用的转换表示
链接(linker)和加载 程序执行(存储器访问) 异常和中断处理 输入输出(I/O)
理解该问题需要知道: 编译器如何处理字面量 高级语言中运算规则 高级语言与指令之间的对应 机器指令的执行过程 机器级数据的表示和运算 ……
-2147483647-1 < 2147483647,结果怎样?
用“系统思维”分析问题
sum(int a[ ], unsigned len) {
int i,sum = 0; for (i = 0; i <= len–1; i++)

第一章 计算机系统概论

5
1.2.1 计算机硬件 . .
1.运算器 . 用于信息加工的部件,又称执行部件。它对数据信息进行算术运算 和逻辑运算。它由算术逻辑部件 ALU 和一系列寄存器组成。 算术运算指加、减、乘、除和其他复合运算,逻辑运算指与、或、 非、异或、比较、移位。 运算器包含多个寄存器,称为通用寄存器组,使用它们可减少访问 存储器的次数,提高运算速度。寄存器用于存放运行指令和运算操作 数,累加器除了存放运算操作数外,还存放中间结果和最终结果。 计算机采用二进制计数。二进制 二进制的运算规律非常简单,易于用物 二进制 易于用物 理的方式实现。 理的方式实现 二进制数的位数越多,计算精度就越高,但是位数越多,所需的电 子器件也越多。计算机运算器的运算宽度( 机器字长 ) 通常为 8×2n 计算机运算器的运算宽度(机器字长) 计算机运算器的运算宽度 × (n 为自然数,目前最大为 3),即 8 位、16 位、32 位或 64 位。 即
9
1.2.1 计算机硬件 . .
指令和数据均以二进制信息形式存放在内存,按读取时间和存放 空间区分。取指周期中从内存中读出的信息流是指令流,它流向控制 取指周期中从内存中读出的信息流是指令流, 取指周期中从内存中读出的信息流是指令流 执行周期中从内存中读出的信息流是数据流 它流向运算器。 数据流, 器;执行周期中从内存中读出的信息流是数据流,它流向运算器 3.存储器 . 存放程序和数据。分为若干个带地址的存储单元,数据以二进制 方式按地址存储。 读写过程:传送存储单元地址 → 地址译码器译码 → 选中存储单 元 → 从存储单元读出数据或向存储单元写入数据。 主板上的存储器为半导体触发器,每一个存储元(触发器)可存 储一位二进制信息。一个半导体触发器的 Q 输出端有两种电平状态, 输出高电平为 “1”,输出低电平为 “0”,通过输入端电平和时钟的控 制可改变触发器的输出状态,分别输出 “1” 或 “0”。

第1章计算机系统概论


▪ 上海超级计算中心的“曙光”5000A位列第15名。
2020/4/5
18
超级计算机世界500强 排行榜前十名榜单(2010.6)
1.美国克雷公司 美洲豹 1.75 petaflop/s
2.中国曙光公司 星云 1.27 petaflop/s
3.美国IBM公司 走鹊
1.105 petaflop/s
4.美国克雷公司 克拉肯
▪ 这是自2004年以来,日本制造的超级计算机第一 次成为全球速度最快的超级计算机。据悉,K Computer的计算性能高达10petaflop/s(千万亿 次/秒),远超去年11月时位于榜首的超级计算机。 去年11月时排在计算性能排行榜第一位的是中国 天津国家超级计算中心的天河-1A,它的计算性 能为2.6petaflop/s。
▪ –内存总容量98TB ;
▪ –点点通信带宽40Gbps ;
▪ –共享磁盘总容量为1PB
▪ 天河一号A
▪ –2048颗我国仿制sun公司的UltraSparc T2 处理器(飞腾FT-1000)八核心处理器
▪ –14336颗Intel Xeon X5670 2.93GHz六核心 处理器
▪ –7168块NVIDIA Tesla M2050高性能计算卡
27
▪ 差距不容忽视——
▪ 核心差距在软件和应用,任务长期而艰巨
▪ 在硬件方面,不论是“天河一号”A,还是 “曙光星云”,其主要核心芯片都采用的 是美国的产品。在专家眼里,这个差距虽 然明显,但不是核心差距,更大的差距在 软件和应用方面,欠缺更多的是“软实 力”。
2020/4/5
28
▪ 北京时间2011年6月20日消息,据国外媒体报道, 国际超级计算机组织在德国汉堡召开2011年年会 并公布今年6月份的全球超级计算机500强名单。 今年排在超级计算机500强名单首位的超级计算 机是日本RIKEN高级计算机科学研究所的K Computer。

《微机原理》教学课件 第1章 计算机系统概述


0.09μm / 315万
执行速度 (MIPS)
0.06 0.75
1. 5
112
时钟频率 (MHz)
代表产品
<1
MCS-4,MCS-8 4004,8008
<4
Intel8080,8085 M6800,Z80
4~10
Intel8086,80286 M68000,Z8000
16~3G
Intel8386,80486 Pentium ,Ⅱ, Ⅲ,4
(3)知识库管理功能。要求能完成知识获取、检 索和更新等功能。
第一章 计算机系统概论
1.1.2 微型计算机的发展
微型计算机指采用超大规模集成电路,形成体积 小、重量轻、功能强、耗电少的计算机系统。
电子计算机技术 微型计算机
超大规模集成电路工艺技术
结 晶
微型机的发展是以微处理器的发展为表征的,以 微处理器为中心的微型机是电子计算机的第四代产 品。微处理器自1971年诞生以来,发展迅猛,每 2~3年就更换一代。
第一章 计算机系统概论
第五代计算机设想:
1981年日本提出实现智能计算机,但没有取得预 期的结果。美国也有多家公司推出智能计算机。一 般要求智能计算机具有下列功能:
(1)智能接口功能。能自动识别自然语言、图形、 图象。即有语音识别、视觉、感知、理解功能。
(2)解题推理功能。根据自身存储的知识进行推 理,具有问题求解和学习的功能。
第一章 计算机系统概论
2. 电子数字计算机的发展的四个阶段
时间
46-5 8
器件
电子管
58-6 4
晶体管
64-7 1
集成电路
71-今
大规模集 成电路

(完整版)第一章计算机系统概论习题参考答案

1.比较数字计算机和模拟计算机的特点。

解:模拟计算机的特点:数值由连续量来表示,运算过程是连续的;数字计算机的特点:数值由数字量(离散量)来表示,运算按位进行。

两者主要区别见P1 表1.1。

2.数字计算机如何分类?分类的依据是什么?解:分类:数字计算机分为专用计算机和通用计算机。

通用计算机又分为巨型机、大型机、中型机、小型机、微型机和单片机六类。

分类依据:专用和通用是根据计算机的效率、速度、价格、运行的经济性和适应性来划分的。

通用机的分类依据主要是体积、简易性、功率损耗、性能指标、数据存储容量、指令系统规模和机器价格等因素。

3.数字计算机有那些主要应用?(略)4.冯. 诺依曼型计算机的主要设计思想是什么?它包括哪些主要组成部分?解:冯. 诺依曼型计算机的主要设计思想是:存储程序和程序控制。

存储程序:将解题的程序(指令序列)存放到存储器中;程序控制:控制器顺序执行存储的程序,按指令功能控制全机协调地完成运算任务。

主要组成部分有:控制器、运算器、存储器、输入设备、输出设备。

5.什么是存储容量?什么是单元地址?什么是数据字?什么是指令字?解:存储容量:指存储器可以容纳的二进制信息的数量,通常用单位KB、MB、GB来度量,存储容量越大,表示计算机所能存储的信息量越多,反映了计算机存储空间的大小。

单元地址:单元地址简称地址,在存储器中每个存储单元都有唯一的地址编号,称为单元地址。

数据字:若某计算机字是运算操作的对象即代表要处理的数据,则称数据字。

指令字:若某计算机字代表一条指令或指令的一部分,则称指令字。

6.什么是指令?什么是程序?解:指令:计算机所执行的每一个基本的操作。

程序:解算某一问题的一串指令序列称为该问题的计算程序,简称程序。

7.指令和数据均存放在内存中,计算机如何区分它们是指令还是数据?解:一般来讲,在取指周期中从存储器读出的信息即指令信息;而在执行周期中从存储器中读出的信息即为数据信息。

8.什么是内存?什么是外存?什么是CPU?什么是适配器?简述其功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• 运算器不知道参加运算的是带符号数还是无符号数 • 在计算机世界,x*x可能小于0,(x+y)+z不一定等于x+(y+z) • 访问内存需几十到几百个时钟,而访问磁盘要几百万个时钟 • 进程具有独立的逻辑控制流和独立的地址空间 • 过程调用使用栈存放参数和局部变量等,递归过程有大量额外指 令,增加时间开销,并可能发生栈溢出 • …….
一点不错!理解程序的执行结果要从系统层面考虑!
– 本来以为学学编程和计算机基本原理就能当程序员,没想到还 挺复杂的,并不是那么简单
学完“计算机系统基础”就会对计算机系统有清晰的认识 ,以后再学其他相关课程就容易多了。
– 感觉要把很多概念和知识联系起来才能理解程序的执行结果
你说对了!把许多概念和知识联系起来就是李国杰院士所提出的 “系统思维”。 即:站在“计算机系统”的角度考虑问题!
系统能力基于“系统思维”
• 系统思维
– 从计算机系统角度出发分析问题和解决问题 – 首先取决于对计算机系统有多了解,“知其然并知其所以然” • 高级语言语句都要转换为机器指令才能在计算机上执行 • 机器指令是一串0/1序列,能被机器直接理解并执行 • 计算机系统是模运算系统,字长有限,高位被丢弃
基 本 认 识
3. 内部以二进制表示指令和数据。每条指令由操作码和地址码 两部分组成。操作码指出操作类型,地址码指出操作数的地 址。由一串指令组成程序。 4. 采用“存储程序”工作方式。
现代计算机结构模型
你还记得冯.诺依曼计算机结构的特点吗? CPU 控制器
标 志 寄 存 器 地址
PC MAR
存储器
0 1 2 3 4 5
l
冯·诺依曼结构计算机采用存储程 序 工作方式: 任何要计算机完成的工作都要先 被编写成程序,然后将程序和原 始数据送入主存并启动执行。一 旦程序被启动,计算机应能在不 需操作人员干预下,自动完成逐 条取出指令和执行指令的任务。
l
l l
l
l
IAS计算机结构
冯.诺依曼结构计算机模型
早期,部件之间用分散方式相连 现在,部件之间大多用总线方式相连 趋势,点对点(分散方式)高速连接
数据的表示 数据的运算 各类语句的转换与表示(指令) 各类复杂数据类型的转换表示 过程(函数)调用的转换表示
链接(linker)和加载 程序执行(存储器访问) 异常和中断处理 输入输出(I/O)
本学期课程内容概要
两个主题:
• 表示(Representation) – 不同数据类型(包括带符号整数、无符号整数、浮点数、数组、结 构等)在寄存器或存储器中如何表示和存储? – 指令如何表示和编码(译码)? – 存储地址(指针)如何表示以及如何生成复杂数据结构中数据元素 的地址? • 转换(Translation) – 高级语言程序对应的机器级代码是怎样的?
主要内容
• 课程的由来 • 课程内容概要 • 课程教学安排及考试安排 • 硬件和软件的基本组成 • 程序的开发和执行过程 • 计算机系统层次结构 • 计算机性能评价
用“系统思维”分析问题
ISO C90标准下,在32位系统上 以下C表达式的结果是什么? -2147483648 < 2147483647 false(与事实不符)!Why? ISO C99标准下为true,Why? 以下关系表达式结果呢? int i = -2147483648; i < 2147483647 true!Why? -2147483647-1 < 2147483647,结果怎样? 理解该问题需要知道: 编译器如何处理字面量 高级语言中运算规则 高级语言与指令之间的对应 机器指令的执行过程 机器级数据的表示和运算 ……
主要内容
• 课程的由来 • 课程内容概要 • 课程教学安排及考试安排 • 硬件和软件的基本组成 • 程序的开发和执行过程 • 计算机系统层次结构 • 计算机性能评价
什么是计算机系统?
程序执行结果 不仅取决于 算法、程序编写 而且取决于 语言处理系统 操作系统 ISA 微体系结构 不同计算机课程 处于不同层次 必须将各层次关 联起来解决问题
GPRs ALU
0 1 2 3 MDR
控制
输入 设备 输出 设备
IR
数据
6 7
你能想到计算机相当于现实生活中的什么呢? 计算机是如何工作的呢?
工厂、饭店?
认识计算机中最基本的部件
CPU:中央处理器;PC:程序计数器;MAR:存储器地址寄存器 ALU:算术逻辑部件;IR:指令寄存器;MDR:存储器数据寄存器 GPRs:通用寄存器组(由若干通用寄存器组成,早期就是累加器)
第一章 计算机系统概论
“计算机系统基础”课程的由来 “计算机系统基础”课程内容概要 计算机系统概述 计算机性能评价
考核方式
• 平时成绩:40% • 其中考勤+作业共16分,少一次扣4分,总计少4次包括以上 取消期末考试资格。 • 小测试4次,每次6分,共24分。考试作弊第一次记0分,再 次作弊将得-5分。 • 实验成绩:20% 每次实验5分,共4次实验。 • 可以通过多种方式获取平时分,包括但不限于: • 上课回答问题,作业特别工整且全对,能够提出有意义的问 题等。 • 期末考试(开卷):40% • 考勤方式:手机下载APP《蓝墨云班课》,加入396541
Why?
用“系统思维”Βιβλιοθήκη 析问题理解该问题需要知道: 数据的表示 编译(程序的转换) 局部变量在栈中的位置 ……
关键差别在于一条指令: fldl 和 fildl
你在想什么?
• 看了前面的举例,你的感觉是什么呢?
– 计算机好像不可靠
从机器角度来说,它永远对!你的感觉不可靠!
– 程序执行结果不仅依赖于高级语言语法和语义,还与其他好多 方面有关
冯·诺依曼结构的主要思想是什么呢?
你认为冯·诺依曼结构是怎样的?
l
应该有个主存,用来存 放程序和数据 应该有一个自动逐条取 出指令的部件 还应该有具体执行指令 (即运算)的部件 程序由指令构成 指令描述如何对数据进 行处理 应该有将程序和原始数 据输入计算机的部件 应该有将运算结果输出 计算机的部件 你还能想出更多吗? 你猜得八九不离十了
用“系统思维”分析问题
sum(int a[ ], unsigned len) 当参数len为0时,返回值应该是 { 0,但是在机器上执行时,却发 int i,sum = 0; 生访存异常。但当len为int型时 for (i = 0; i <= len–1; i++) 则正常。Why? sum += a[i]; return sum; 访问违例地址为何是0xC0000005? }
理解该问题需要知道: 编译器如何优化 机器级数据的表示 机器指令的含义和执行 计算机内部的运算电路 除法错异常的处理 ……
a/b用除法指令IDIV实现,但它不生成OF 标志,那么如何判断溢出异常的呢? 实际上是“除法错”异常#DE(类型0) Linux中,对#DE类型发SIGFPE信号
运行结果为“Floating point exception”,显然CPU检测到了溢出异常
为什么两者结果不同!
用“系统思维”分析问题
double fun(int i) { volatile double d[1] = {3.14}; volatile long int a[2]; a[i] = 1073741824; /* Possibly out of bounds */ return d[0]; }
对于上述C语言函数,i=0~4时,fun(i)分别返回什么值?
fun(0) fun(1) fun(2) fun(3) fun(4) 3.14 3.14 3.1399998664856 2.00000061035156 3.14, 然后存储保护错 理解该问题需要知道: 机器级数据的表示 过程调用机制 栈帧中数据的布局 ……
只有先理解系统,才能改革系统,并应用好系统!
为什么要学习“计算机系统基础”?
• 为什么要学习“计算机系统基础”呢?
– 强化“系统思维” – 更好地理解计算机系统,从而编写出更好的程序 – 编程序时少出错 – 在程序出错时很快找到出错的地方 – 编写出更快的程序 – 明白程序是怎样在计算机上执行的 – 为后续课程的学习打下良好基础 – …….
用“系统思维”分析问题
objdump 反汇编代码, int a = 0x80000000; 得知除以 -1 int b = a / -1; 被优化成取 printf("%d\n", b); 负指令neg, 运行结果为-2147483648 故未发生除 法溢出 代码段二:
代码段一: int a = 0x80000000; int b = -1; int c = a / b; printf("%d\n", c);
计算机系统抽象层的转换
“计算机系统基础”内容提要
课程目标:清楚理解计算机是如何生成和运行 可执行文件的! 重点在高级语言以下各抽象层 – C语言程序设计层 • 数据的机器级表示、运算 • 语句和过程调用的机器级表示 – 操作系统、编译和链接的部分内容 – 指令集体系结构(ISA)和汇编层 • 指令系统、机器代码、汇编语言 – 微体系结构及硬件层 • CPU的通用结构 • 层次结构存储系统
冯·诺依曼结构的主要思想
1. 计算机应由运算器、控制器、存储器、输入设备和输出设备 五个基本部件组成。 2. 各基本部件的功能是:
• • • •
存储器不仅能存放数据,而且也能存放指令,形式上两者 没有区别,但计算机应能区分数据还是指令; 控制器应能自动取出指令来执行; 运算器应能进行加/减/乘/除四种基本算术运算,并且也 能进行一些逻辑运算和附加运算; 操作人员可以通过输入设备、输出设备和主机进行通信。
主要内容
相关文档
最新文档