计算机组成原理r型指令logisim实现_第一章 计算机体系结构

需要掌握的内容:

存储程序计算机

计算机系统的多级层级结构

计算机体系结构

计算机组成

计算机实现

计算机体系结构、组成与实现三者的关系

存储程序计算机

透明性

Amdahl定律

CPU 性能公式

程序局部性原理

计算机性能的若干定义

计算机体系结构分类

计算机体系结构的发展

影响计算机体系结构设计的成本和价格因素

对计算机系统性能进行定量分析的技术、方法

基本的可靠性模型

主要应用问题:

性能公式的计算

性能公式在具体应用问题中的使用

Amdahl定律的计算

系统可用性计算
  • 计算机体系结构的概念
    • 存储程序计算机
    • 计算机体系结果、组成和实现
    • 计算机系统中的层次概念
    • 系列机和兼容
  • 计算机体系结构的发展
    • 计算机分代、分型与分类
    • 软件的发展
    • 应用的发展
    • 集成电路的发展
    • 计算机体系结构的发展
    • 并行处理技术的发展
  • 计算机系统设计和分析
    • 成本与价格
    • 基准测试程序
    • 量化设计的基本原则
    • 程序的局部性原理
    • CPU的性能
  • 基本的可靠性模型
    • 可靠性的基本概念
    • 多部件系统的可靠性

计算机体系结构的概念

存储程序计算机

冯·诺依曼描述的存储程序计算机是一种计算机系统设计模型,实现了一种通用图灵机(Universal Turing Machine)。存储程序计算机又叫冯·诺依曼计算机。

存储程序计算机分为4个部分:

(1)运算器:用于完成数值运算

(2)存储器:用于存储数据和程序

(3)输入/输出设备:用于完成计算机和外部的信息交换

(4)控制器:根据程序形成控制(指令、命令)序列,完成对数据的运算

控制流:控制器根据程序指令序列,将其分解形成对计算机4个部分操作的控制信号序列。

数据/指令流:计算机在控制流的操作下,4个部分之间形成数据和指令的传送序列。

98c72761eac29a5e25396472088eae33.png

存储程序计算机在体系结构上的主要特点如下:

(1)机器以运算器为掌心

(2)采用存储程序原理。

(3)存储器是按地址访问的、线性编址的空间。

(4)控制流由指令流产生。

(5)指令由操作码和地址码组成。

(6)数据以二进制编码表示,采用二进制运算。

存储程序计算机中,程序执行的过程就是对程序指令进行分解,形成控制计算机4部分工作的控制流,对数据进行加工(运算),周而复始地产生数据/指令流,并最终得到数据结果的过程。

机器周期:计算机对每条指令从取指令到得到结果的工作周期。

一条指令的操作分为5个部分:取指令、指令译码、指令执行、访问存储部件、写结果

fc716df0b8f2e32403c6afd19b766675.png

计算机体系结果、组成和实现

计算机体系结构:程序员所看到的计算机的属性,即概念性结构与功能性特性。

程序员所看到的计算机的属性:程序(机器语言、汇编语言或者编译程序生成系统)设计者为其所设计(或生成)的程序在机器上正确运行,必须掌握和遵行的计算机属性,这些属性包括其概念结构和功能特性两个方面。

对于通用寄存器型机器,这些属性包括:

(1)数据表示;

(2)寻址规则;

(3)寄存器定义;

(4)指令系统;

(5)中断系统;

(6)机器工作状态的定义和切换

(7)存储系统;

(8)信息保护;

(9)I/O结构

经典计算机体系结构概念的实质是计算机系统中软硬件界面的确定,即指令系统的设计。

计算机体系结构包括计算机系统设计的3个方面:

计算机指令系统(Instruction Set Computer, ISC):程序员可见的实际指令系统,是计算机系统硬件和软件之间的一个分界面。

计算机组成(Computer Organization):又叫微体系结构(Microarchitectre),是计算机系统中各个功能部件及其连接的设计。

计算机硬件:指计算机具体的实现(Implementation)技术,宝库逻辑设计、集成电路工艺、封装等。

计算机系统中的层次概念

现代计算机系统如图所示,图中第1级与第2级由硬件或固件实现,第4级以上基本由软件实现(虚拟机)。

32f68256074cda62fb0c55a0cbba8b92.png

每个计算机语言的层次结构(每种虚拟机)包括3个部分:(1)语言;(2)执行机制;(3)程序

a20b6aa4b49f17e47233bc328e3174b3.png

翻译和解释是语言实现的两种基本技术。它们都是以执行一串

级指令来实现
级指令,但翻译技术是把
级程序全部变换成
级程序后,再去执行新产生的
级程序,在执行过程中
级程序不再被访问。而解释技术是每当一条
级指令被译码后,就直接去执行一串等效的
级指令,然后再去取下一条
级的指令,依次重复进行。再这个过程中不产生翻译出来的程序,因此解释过程是边变换边执行的过程。

一般来说,解释执行比翻译花的时间多,但存储空间占用较少。

高级语言的翻译过程就是编译(Compile),完成翻译的程序就是编译器(Compiler)或编译程序,个别的高级语言也采用解释的方法实现,如大多数BASIC语言系统。

透明性(Transparency):在计算机技术中,本来是存在的事物或属性,从某种角度看好像不存在的概念。

系列机和兼容

系列机(Family Machine):具有相同体系结构,但组成和实现不同的一系列不同型号的计算机系统。

一种体系结构可以有多种组织、多种物理实现,系列机具有相同的体系结构,软件可以在系列计算机的各档机器上云习惯,这种情况下各档机器是软件兼容的(Software Compatbility),即同一个软件可以不加修改地运行于体系结构相同的各档机器,而且他们所获得的结果是一样的,差别只在于由不同的运行时间。

兼容机(Compatible Machine):不同厂家生产的具有相同体系结构的计算机。

2f61448746f14fe37e86f00d7f1c0f0f.png

计算机体系结构的发展

一种成功的指令系统(Instruction Set Architecture,SIA,又称为指令集结构)必须能够适应硬件技术、软件技术及应用特性的变化。

计算机分代、分型与分类

90b07031082767d4420f3a5d67720d04.png

4e85efc1d1c6a6b6689140039bed419f.png

49a74bd2d393ec3ceec0971cd705b073.png

软件的发展

计算机语言和编译技术:计算机语言是由低级向高级发展的,高一级语言相对于低级语言功能更强,但以低级语言为基础。

操作系统:操作系统是计算机资源管理系统,包括CPU管理(进程管理)、存储管理和设备管理,同时提供用户界面(用户管理)。

b5719239a971a6f5129df7c39f3e16a9.png

软件工具和中间件:软件工具和中间件对体系结构的影响,更多地体现在对计算机信息处理能力的需求上,包括更快的反应速度、更多的信息存储、更快的网络服务等。

应用的发展

df9c63cea2167d676f26b9514d32c969.png

集成电路的发展

现代计算机实现技术的基础核心是以晶体管为基本单元的平面集成电路。

计算机系统技术4种实现技术:逻辑电路、半导体DRAM(动态随机访问存储器)、磁盘网络。

计算机体系结构的发展

(1)分布的I/O处理能力

aaf3f9e5f15b41a5313e88e6101e1f25.png

(2)保护的存储器空间

在执行的过程中不准修改程序,这需要通过存储管理硬件的支持,是由操作系统来实现的。

(3)存储器组织结构的发展

为了提高方寸速度,出现了按内容访问的相联存储器CAM(Content Addressed Memory);采用了通用寄存器的概念。为了进一步减少访问存储器的次数和提高存储系统的速度,提出了在CPU和主存中设置高速缓冲存储器Cache。

(4)并行处理技术

把一个作业(程序)划分成能并行执行的多个任务(程序段),把每个任务分配给一个处理机执行,则构成了多机并行处理系统。

(5)指令集的发展

RISC的技术思想已称为当代计算机设计的基础技术之一。

并行处理技术的发展

并行性概念

并行性(Parallelism):在同一时刻或同一时间间隔内完成两种或两种以上性质相同或不同的工作。只要时间上相互重叠,就存在并行性。严格来讲,把两个或多个事件在同一时刻发生的并行性叫做同时性(Simultaneity);把两个或多个事件在同一时间间隔内发生的并行性叫做并发性(Concurrency)。

执行程序的角度看,并行性等级从低到高可以分为指令内部并行、指令级并行(Instruction Level Parallel,ILP)、线程级比高兴(Thread Level Parallel,TLP)、任务级或过程级并行,以及作业或程序级并行等几类。

处理数据的角度看,比高兴等级从低到高可以分为字串位串、字串位并、字并位串以及全并行几类。

Flynn分类法:按照指令的数据的关系,将计算机从并行处理的角度划分为单指令流单数据流(Single Intruction Single Data stream,SISD)、单指令流多数据流(Single Intruction Multiple Data stream,SIMD)、多指令流单数据流(Multiple Intruction Single Data stream,MISD)、多指令流多数据流(Multiple Intruction Multiple Data stream,MIMD)

e769061839d604cda8a849890a6ab3ca.png

提高并行性的技术途径

时间重叠(Time-Interleavng):在并行性概念中引入时间因素,即多个处理过程在时间上相互错开,轮流重叠地使用同一套设备的各个部分,以加快硬件周转而赢得速度。流水线技术是时间重叠的典型实现。

资源重复(Resource-Replication):在并行性概念中引入空间因素,根据“以数量取胜”的原则,通过重复地设置资源,尤其是硬件资源,以大幅度提高计算机系统地性能。

资源共享(Resource-Sharing):一种软件方法,使多个任务按颐堤港时间顺序轮流使用同一套硬件设备。

多级系统地发展出现了同构型多处理机系统、分布处理系统、可重构系统(Reconfigurable System)。对称型(Symetrical)或同构型多处理机系统(Homogeneous Multiprocessor System)由多个同类型,至少同等功能地处理机组成,同时处理同一作业中能并行执行的多个任务。

分布处理系统(Distributed Processing System):计算机之间相互连接,分工合作的多机系统。

可重构系统(Reconfigurable System):平时机台计算机都正常工作,像通常的多处理机系统一样,但到故障阶段,就要系统重新组织,降低档次继续运行,直至故障排除为止。

0d31edbcdbfc8f8fd9f0fc60cbd94d46.png

多机系统的耦合度,可以分为:

最低耦合(Least Coupled):除通过某种中间存储介质之外,各计算机之间没有物理连接,也无共享的联机硬件资源。

松散耦合(LooselyCoupled):又称为简介耦合(Indirectly Coupled),一般是通过通道或通信线路实现计算机间互联,共享外围设备,机器间的相互作用是在文件或数据集一级进行。

紧密耦合(Tigtly Coupled):一般指机器间物理连接的频带较高,它们往往通过总线或高速开关实现互连,可以共享主存。

计算机系统设计和分析

成本与价格

计算机系统的成本和价格:构成价格的给因素可以通过占成本或价格的百分比来表示。

时间因素:对计算机系统成本产生影响的主要因素又时间、产量、商品化等因素。

d7077902d7e3f92b587c0107e50141ed.png

基准测试程序

按照测试可靠性由高到低:

(1)实际应用程序:运行实际应用程序了解计算机性能。

(2)修正的(或者脚本化)应用程序:通过修正实际应用程序的部分代码或者通过脚本描述来模拟实际应用,再用它们构成测试程序。

(3)核心测试程序:由从真是程序中提取的较短但关键的代码构成。核心测试程序可以根据需要评价机器的各种性能,从而解释在运行真实程序时机器性能不同的原因。

(4)小测试程序:指代码在几十到100行的具有特定目的的测试程序。

(5)合成测试程序:合成测试程序具备大量应用程序中操作和数据的统计特征。

影响计算机测试性能的因素:

(1)硬件系统:如CPU、内存类型和容量、外存的性能、加速器等。

(2)操作系统:如Windows和Linux等

(3)系统软件:主要包括编译器、运行库、数据库、中间件等。

(4)测试程序:由于计算机体系结构的不同,各种测试程序出现测试结果不一致的现象是正常的。

(5)运行环境:测试程序的运行环境对测试程序运行结果也有很大影响。

测试程序组件(benchmark Suites):最大的有限是避免了独立测试程序存在的片面性,尽可能全面地测试了一个计算机系统的性能。

量化设计的基本原则

大概率时间优先原则

对于大概率时间(最常见的事件),赋予它优先的处理权和资源使用权,以获得全局的最优结果。

Amdahl定律

加快某部件执行速度所获得的系统性能加速比,受限于该不见在系统中所占的重要性。

假设对机器进行某种改进,那么机器系统的加速比就是:

或者:

部件改进后,系统的总执行时间等于不可改进部分的执行时间加上可改进部分改进后的执行之间,即:

系统加速比为该金钱与改进后总执行时间之比,即:

Amdahl定律的一个推论:如果只怎对整个任务的一部分进行优化,那么所获得的加速比不大于

程序的局部性原理

程序总是趋向于使用最近使用过的数据和指令,也就是说程序执行时所访问存储器地址分布不是随机的,而是相对地簇聚,这种簇聚包括指令和数据两部分。

程序局部性包括: 时间局部性:程序即将使用到的信息很可能就是目前正在使用的信息。

空间局部性:程序即将用到的信息很可能与目前正在使用的信息在空间上相邻或临近。

程序的局部性原理是计算机体系结构设计的基础之一。

CPU的性能

CPU的性能可以通过时钟频率、执行程序使用的时钟周期数以及程序执行的指令数来刻画。

计算机工作的时钟频率单位是MHz或者GHz。

程序执行过程中所处理的指令数,记为IC,则“指令时钟数”CPI(Cycles Per Instruction):

程序执行的CPU时间可以写成(CPU性能公式):

时钟频率反映了计算机实现技术、生产工艺和计算机组织;CPI反映了计算机实现技术、计算机指令集的结构和计算机组织;IC反映了计算机指令集的结构和编译技术。

基本的可靠性模型

可靠性的基本概念

电子元器件及其构造的系统的可靠性采用概率模型来描述。一个系统(元件、部件、模块、子系统等)的可靠性是指它开始使用(运行)的时刻(

)到时刻
)这段时间内正常工作的频率

其中

,
是时间的减函数。

0c441527be96592b6532c9d30d613505.png

平均无故障时间(Mean ime To Failure, MTTF):一般以小时为单位,是用于度量系统可以正常提供服务的量化指标。

平均修复时间(Mean Time To Rapair, MTTR):一般也以小时为单位,这段时间内系统不可以提供正常服务,是用于度量系统中断服务的量化指标。

平均故障时间(Mean Time Between Failure, MTBF):衡量两次故障之间时间的量化指标。

由于电子元器件的

,所以MTBF与MTTF非常接近,经常呼唤两个概念。

就MTTF或者MTBF而言,FIT(Failure In Time)是电子元器件中一个更加常用的可靠性概念。FIT定义为10亿小时中系统的故障次数。

系统可靠性(avalivility):一般用来度量实际系统,指系统可以正常服务的时间比率:

多部件系统的可靠性

分析多部件系统的可靠性时,一般不考虑有两个或更多部件同时损坏的情况。

系统的可用性由MTTF最低的部件决定。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/559522.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智力问答选择题_经典智力问答题汇总

经典智力问答题汇总1、什么动物最没有方向感?答案:麋鹿(迷路)2、什么动物猜拳永远不会有输赢?答案:螃蟹3、什么动物最容易摔倒?答案:狡猾的狐狸(脚滑)4、什么鸡没有翅膀?答案:田鸡5、…

两个矩阵是否相交的算法_算法血拼:Google+百度+Alibaba+字节+Tencent+网易+360+拼夕夕...

最热的三伏天来了,相信有许多小伙伴们都已马不停蹄的在准备各大厂的秋招提前批了吧,不知算法与数据结构会不会成为你的坎?恰好,我这两天花了点时间,整理了些各大厂(Google百度Alibaba字节Tencent网易360拼夕夕美团小米…

神经网络 顾晓东_基于神经网络的图像边缘检测方法

!DJ1$0’’"0’"’/’&/)-%$(’"-%%’>,$2%’/5-,NYW;_K)1>L05%fPDb05>-51%MP;b01>81#/(--525(.P.(*V,71(W2155*12%/01,’1-1,23145*6178%K,2L0()A!%%!G%/01,$!(/,$&/(DV570(J(.5J25J57571(%O,65J(5)*,-57U(*R616S*(S(65J1705S,S5*:E05V570…

安装python缺少dll_Microsoft.PythonTools.dll

我该如何安装从金山毒霸下载的DLL文件? 一: 1、从金山毒霸下载压缩文件。 2、将DLL文件解压到电脑上的某个地方。 3、把该文件跟要求使用它的程序放在同一路径上。注意32位程序需要使用32位的DLL文件,64位程序需要使用64位的DLL文件。否则会出…

cp 过程流程图模板_程序流程图有什么用?简单实用的流程图模板大全

原标题:程序流程图有什么用?简单实用的流程图模板大全程序流程图是什么呢?程序流程图就是用规定的符号描述一个程序中所需的各种操作或者判断的图表。程序流程图的设计是在处理流程图的基础上,通过对数据的整理、计算和分析&#…

arduino esp8266_你还用Arduino?上PlatformIO开发Esp、AVR、STM32,十分钟亲测ESP8266

简介对单片机最早的认识是大一的时候刷到的C51单片机,那时候玩了一阵子感觉可玩性不高,后来有了解到Arduino,买了两Uno回来用Arduino开发感觉可玩性和快速开发都比C51强多了,再后来了解了NodeMCU这玩意,又入手了Esp826…

python中ndim是什么_Numpy中ndim、shape、dtype、astype的用法详解

本文介绍numpy数组中这四个方法的区别ndim、shape、dtype、astype。1.ndimndim返回的是数组的维度,返回的只有一个数,该数即表示数组的维度。2.shapeshape:表示各位维度大小的元组。返回的是一个元组。对于一维数组:有疑问的是为什…

python怎么引入os模块的函数_Python里的OS模块常用函数说明

Python的标准库中的os模块包含普遍的操作系统功能。如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的。即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux和Windows下运行。 下面列出了一些在os模块中比较…

java jpeg压缩解码_JPEG图像压缩原理简介

JPEG(发音:[ˈdʒeɪpɛg])是一种针对照片视频而广泛使用的有损压缩标准方法。这个名称代表 Joint Photographic Experts Group(联合图像专家小组)。联合图像专家小组1992年发布了JPEG的标准而在1994年获得了ISO 10918-1的认定。JPEG与视频音频压缩标准的MPEG(Movin…

bootstrap网页模板源码_Go Web 编程--超详细的模板库应用指南

如果你有过Web编程的经验,那么或多或少都听说过或者使用过模板。简而言之,模板是可用于创建动态内容的文本文件。例如,你有一个网站导航栏的模板,其中动态内容的一部分可能是根据当前用户是否登录显示登录还是退出按钮。Go提供了两…

python matpoltlib绘制动态图_使用Python、Geopandas和Matplotlib制作gif动态

原标题:使用Python、Geopandas和Matplotlib制作gif动态 不需要Photoshop:仅使用Python和命令行制作动画图表。作为一种编程语言,Python非常灵活。这使得有时可以在几行代码中进行大量不同的可视化成为可能。但是现在有了很多不同的图表网站和…

dst发育筛查有意义吗_儿童视力筛查,都筛些啥?

感谢眼科小伙伴们的早出晚归辛勤忙碌,感谢幼儿园、学校及小朋友们的积极配合,本学期的校园视力筛查也已进入尾声。相信爸爸妈妈们都已拿到了这样的筛查结果单:(学龄前儿童仅行电脑验光筛查,学龄儿童还需行视力检查&…

java 堆_JAVA学习笔记 07——堆、栈和垃圾回收机制

程序执行的内存分析过程:虚拟机栈(简称:栈)的特点如下:1. 栈描述的是方法执行的内存模型。每个方法被调用都会创建一个栈帧(存储局部变量、操作数、方法出口等)。2. JVM为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参…

dubbo 自定义路由_Dubbo分层架构概述

本节我们从整体上来看看 Dubbo 的分层架构设计,架构分层是一个比较经典的模式,比如网络中的7层协议,每层执行固定的功能,上层依赖下层提供的功能,下层对上层提供功能,下层的改变对上层不可见,并…

python类方法继承_python类的继承

一、概述 面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类…

添加编译宏_软件开发——编译链接

对于平常的应用程序开发,我们很少需要关注编译和链接过程。我们平常Xcode开发就是集成的的开发环境(IDE),这样的IDE一般都将编译和链接的过程一步完成,通常将这种编译和链接合并在一起的过程称为构建,即使使用命令行来编译一个源代码文件,简单…

人工智能只能用python吗_为什么人工智能用Python?

主要原因: 1.人工智能适应Python的编程语言。 2.人工智能需要利用Python的高层语言,实现可移植性、面向对象、可扩展性、可嵌入型等功能,来实现人机交流。 Python:是一种面向对象的解释型计算机程序设计语言。 Python的开发生态成…

shell打开wifi命令_远程执行命令的填坑记录

前言本文主要记录 bash 四种模式的细节,以便于遇到问题时查阅。远程执行出错了最近使用 ansible 比较多,在某次使用 shell 模块远程执行命令的时候老是报 ‘command not found’。但是手动登录到远端机器执行命令是成功的,于是开始思考里面的…

nodejs express use 传值_再也不怕面试官问你express和koa的区别了

前言用了那么多年的express.js,终于有时间来深入学习express,然后顺便再和koa2的实现方式对比一下。老实说,还没看express.js源码之前,一直觉得express.js还是很不错的,无论从api设计,还是使用上都是可以的…

linux 内网共享文件夹_局域网中实现linux文件共享

局域网中实现linux与Windows文件共享文件共享是重要的网络需求,特别在企业环境中这种需求显得非常迫切。我们知道Windows主机间的文件共享非常简单,可以通过网上邻居实现。但是企业环境中主机的操作系统比较复杂,其中不乏Linux、Unix这样的系…