计算机标准体系结构知识点汇总.docx

上传人:b****7 文档编号:10092792 上传时间:2023-02-08 格式:DOCX 页数:16 大小:108.25KB
下载 相关 举报
计算机标准体系结构知识点汇总.docx_第1页
第1页 / 共16页
计算机标准体系结构知识点汇总.docx_第2页
第2页 / 共16页
计算机标准体系结构知识点汇总.docx_第3页
第3页 / 共16页
计算机标准体系结构知识点汇总.docx_第4页
第4页 / 共16页
计算机标准体系结构知识点汇总.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

计算机标准体系结构知识点汇总.docx

《计算机标准体系结构知识点汇总.docx》由会员分享,可在线阅读,更多相关《计算机标准体系结构知识点汇总.docx(16页珍藏版)》请在冰豆网上搜索。

计算机标准体系结构知识点汇总.docx

计算机标准体系结构知识点汇总

第一章计算机体系结构基础概念

1.计算机系统结构经典定义

程序员所看到计算机属性,即概念性结构和功效特征。

2.透明性

在计算机技术中,把这种原来存在事物或属性,但从某种角度看又仿佛不存在概念称为透明性。

3.系列机

由同一厂家生产含有相同系统结构、但含有不一样组成和实现一系列不一样型号计算机。

4.常见计算机系统结构分类法有两种:

Flynn分类法、冯氏分类法

Flynn分类法把计算机系统结构分为4类:

单指令流单数据流(SISD)

单指令流多数据流(SIMD)

多指令流单数据流(MISD)

多指令流多数据流(MIMD)

5.

改善后程序总实施时间

系统加速比为改善前和改善后总实施时间之比

6.CPI(CyclesPerInstruction):

每条指令实施平均时钟周期数

CPI=实施程序所需时钟周期数/IC

7.存放程序原理基础点:

指令驱动

8.冯·诺依曼结构关键特点

1.以运算器为中心。

2.在存放器中,指令和数据相同对待。

指令和数据一样能够进行运算,即由指令组成程序是能够修改。

3.存放器是按地址访问、按次序线性编址一维结构,每个单元位数是固定。

4.指令实施是次序

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

6.指令和数据均以二进制编码表示,采取二进制运算。

9.软件可移植性

一个软件能够不经修改或只需少许修改就能够由一台计算机移植到另一台计算机上正确地运行。

差异只是实施时间不一样。

我们称这两台计算机是软件兼容。

实现可移植性常见方法:

采取系列机、模拟和仿真、统一高级语言。

软件兼容:

向上(下)兼容:

按某档机器编制程序,不加修改就能运行于比它高(低)档机器。

向前(后)兼容:

按某个时期投入市场某种型号机器编制程序,不加修改地就能运行于在它之前(后)投入市场机器。

向后兼容是系列机根本特征。

兼容机:

由不一样企业厂家生产含有相同系统结构计算机。

10.并行性:

计算机系统在同一时刻或同一时间间隔内进行多个运算或操作。

同时性:

两个或两个以上事件在同一时刻发生。

并发性:

两个或两个以上事件在同一时间间隔内发生。

从处理数据角度来看,并行性等级从低到高可分为:

1.字串位串:

每次只对一个字一位进行处理。

最基础串行处理方法,不存在并行性。

2.字串位并:

同时对一个字全部位进行处理,不一样字之间是串行。

开始出现并行性。

3.字并位串:

同时对很多字同一位(称为位片)进行处理。

含有较高并行性。

4.全并行:

同时对很多字全部位或部分位进行处理。

最高一级并行。

从实施程序角度来看,并行性等级从低到高可分为:

1.指令内部并行:

单条指令中各微操作之间并行。

2.指令级并行:

并行实施两条或两条以上指令。

3.线程级并行:

并行实施两个或两个以上线程。

通常是以一个进程内派生多个线程为调度单位。

4.任务级或过程级并行:

并行实施两个或两个以上过程或任务(程序段)

以子程序或进程为调度单元。

5.作业或程序级并行:

并行实施两个或两个以上作业或程序。

提升并行性技术路径:

1.时间重合

引入时间原因,让多个处理过程在时间上相互错开,轮番重合地使用同一套硬件设备各个部分,以加紧硬件周转而赢得速度。

2.资源反复

引入空间原因,以数量取胜。

经过反复设置硬件资源,大幅度地提升计算机系统性能。

3.资源共享

这是一个软件方法,它使多个任务按一定时间次序轮番使用同一套硬件设备。

 

第二章计算机指令集结构

1.CPU中用来存放操作数存放单元关键类型:

堆栈、累加器、通用寄存器组

2.通用寄存器型指令集结构深入细分为3种类型

寄存器-寄存器型(RR型)

寄存器-存放器型(RM型)

存放器-存放器型(MM型)

3.指令集结构设计

关键考虑3个原因:

速度、成本、灵活性

对指令集基础要求:

完整性、规整性、高效率、兼容性

4.设计RISC机器遵照标准

1.指令条数少而简单。

只选择使用频度很高指令,在此基础上补充部分最有用指令。

2.采取简单而又统一指令格式,并降低寻址方法;指令字长全部为32位或64位。

3.指令实施在单个机器周期内完成。

(采取流水线机制)

4.只有load和store指令才能访问存放器,其它指令操作全部是在寄存器之间进行。

(即采取load-store结构)

5.大多数指令全部采取硬连逻辑来实现。

6.强调优化编译器作用,为高级语言程序生成优化代码。

7.充足利用流水技术来提升性能。

5.指令由两部分组成:

操作码、地址码

指令集3种编码格式:

变长编码格式、定长编码格式、混合型编码格式

第三章流水线技术

1.流水线技术:

把一个反复过程分解为若干个子过程,每个子过程由专门功效部件来实现。

把多个处理过程在时间上错开,依次经过各功效段,这么,每个子过程就能够和其它子过程并行进行。

流水线中每个子过程及其功效部件称为流水线级或段,段和段相互连接形成流水线。

流水线段数称为流水线深度。

经过时间:

第一个任务从进入流水线到流出结果所需时间。

排空时间:

最终一个任务从进入流水线到流出结果所需时间。

2.分类

1.单功效流水线和多功效流水线

单功效流水线:

只能完成一个固定功效流水线。

多功效流水线:

流水线各段能够进行不一样连接,以实现不一样功效。

2.静态流水线和动态流水线

静态流水线:

在同一时间内,多功效流水线中各段只能按同一个功效连接方法工作。

动态流水线:

在同一时间内,多功效流水线中各段能够根据不一样方法连接,同时实施多个功效。

3.部件级、处理机级及处理机间流水线

部件级流水线(运算操作流水线):

把处理机算术逻辑运算部件分段,使得多种类型运算操作能够按流水方法进行。

处理机级流水线(指令流水线):

把指令解释实施过程根据流水方法处理。

把一条指令实施过程分解为若干个子过程,每个子过程在独立功效部件中实施。

处理机间流水线(宏流水线):

它是由两个或两个以上处理机串行连接起来,对同一数据流进行处理,每个处理机完成整个任务中一部分。

4.线性流水线和非线性流水线

线性流水线:

流水线各段串行连接,没有反馈回路。

数据经过流水线中各段时,每一个段最多只流过一次。

非线性流水线:

流水线中除了有串行连接外,还有反馈回路。

5.次序流水线和乱序流水线

次序流水线:

流水线输出端任务流出次序和输入端任务流入次序完全相同。

每一个任务在流水线各段中是一个跟着一个次序流动。

乱序流水线:

流水线输出端任务流出次序和输入端任务流入次序能够不一样,许可后进入流水线任务先完成(从输出端流出)。

6.标量处理机和向量流水处理机

标量处理机:

处理机不含有向量数据表示和向量指令,仅对标量数据进行流水处理。

向量流水处理机:

含有向量数据表示和向量指令处理机。

3.吞吐率:

在单位时间内流水线所完成任务数量或输出结果数量。

处理流水线瓶颈问题常见方法:

细分瓶颈段、反复设置瓶颈段。

加速比:

完成一样一批任务,不使用流水线所用时间和使用流水线所用时间之比。

效率:

流水线中设备实际使用时间和整个运行时间比值,即流水线设备利用率。

当流水线各段时间相等时,流水线效率和吞吐率成正比。

Tk=(k+n-1)△t

E=TP△t△t=T经过/m(m表示段数)

流水线效率是流水线实际加速比S和它最大加速比k比值。

从时空图上看,效率就是n个任务占用时空面积和k个段总时空面积之比。

4.一条指令实施过程分为以下5个周期:

1.取指令周期(IF)

IR←Mem[PC]。

  

PC值加4。

(假设每条指令占4个字节)

2.指令译码/读寄存器周期(ID)

译码。

用IR中寄存器编号去访问通用寄存器组,读出所需操作数。

3.实施/有效地址计算周期(EX)不一样指令所进行操作不一样:

存放器访问指令:

ALU把所指定寄存器内容和偏移量相加,形成用于访存有效地址。

寄存器-寄存器ALU指令:

ALU根据操作码指定操作对从通用寄存器组中读取数据进行运算。

寄存器-立即数ALU指令:

ALU根据操作码指定操作对从通用寄存器组中读取第一操作数和立即数进行运算。

分支指令:

ALU把偏移量和PC值相加,形成转移目标地址。

同时,对在前一个周期读出操作数进行判定,确定分支是否成功。

4存放器访问/分支完成周期(MEM)

该周期处理指令只有load、store和分支指令。

其它类型指令在此周期不做任何操作。

load和store指令

load指令:

用上一个周期计算出有效地址从存放器中读出对应数据。

store指令:

把指定数据写入这个有效地址所指出存放器单元。

分支指令

分支“成功”,就把转移目标地址送入PC。

分支指令实施完成。

5.写回周期(WB)

ALU运算指令和load指令在这个周期把结果数据写入通用寄存器组。

ALU运算指令:

结果数据来自ALU。

load指令:

结果数据来自存放器系统。

5.相关:

两条指令之间存在某种依靠关系。

相关有3种类型:

数据相关(也称真数据相关)、名相关、控制相关

数据相关含有传输性,反应了数据流动关系

假如两条指令使用相同名,不过它们之间并没有数据流动,则称这两条指令存在名相关。

反相关:

假如指令j写名和指令i读名相同,则称指令i和j发生了反相关。

指令j写名=指令i读名

输出相关:

假如指令j和指令i写相同名,则称指令i和j发生了输出相关。

指令j写名=指令i写名

换名技术:

经过改变指令中操作数名来消除名相关。

前提:

寄存器足够。

控制相关是指由分支指令引发相关。

流水线冲突是指对于具体流水线来说,因为相关存在,使得指令流中下一条指令不能在指定时钟周期实施。

6.流水线冲突有3种类型:

结构冲突:

因硬件资源满足不了指令重合实施要求而发生冲突。

数据冲突:

当指令在流水线中重合实施时,因需要用到前面指令实施结果而发生冲突。

控制冲突:

流水线碰到分支指令和其它会改变PC值指令所引发冲突。

数据冲突有:

写后读冲突(RAW)

在i写入之前,j先去读。

j读出内容是错误。

对应于数据相关

写后写冲突(WAW)

在i写入之前,j先写。

最终写入结果是i。

错误!

对应于输出相关

读后写冲突(WAR)

在i读之前,j先写。

i读出内容是错误!

由反相关引发。

定向技术:

在某条指令产生计算结果之前,其它指令并不真正立即需要该计算结果,假如能够将该计算结果从其产生地方直接送到其它指令需要它地方,那么就能够避免停顿。

流水线互锁机制,插入“暂停”。

作用:

检测发觉数据冲突,并使流水线停顿,直至冲突消失。

依靠编译器处理数据冲突

让编译器重新组织指令次序来消除冲突,这种技术称为指令调度或流水线调度。

控制冲突

处理分支指令最简单方法:

“冻结”或“排空”流水线。

由分支指令引发延迟称为分支延迟。

降低分支延迟方法:

估计分支失败

许可分支指令后指令继续在流水线中流动,就好象什么全部没发生似。

若确定分支失败,将分支指令看作是一条一般指令,流水线正常流动。

若确定分支成功,流水线就把在分支指令以后取出全部指令转化为空操作,并按分支目地重新取指令实施。

要确保:

分支结果出来之前不会改变处理机状态,方便一旦猜错时,处理机能够回退到原先状态。

估计分支成功

假设分支转移成功,并从分支目标地址处取指令实施。

起作用前题:

先知道分支目标地址,后知道分支是否成功。

前述5段流水线中,这种方法没有任何好处。

延迟分支

关键思想:

从逻辑上“延长”分支指令实施时间。

把延迟分支看成是由原来分支指令和若干个延迟槽组成,不管分支是否成功,全部要按次序实施延迟槽中指令。

分支延迟指令调度

任务:

在延迟槽中放入有用指令。

由编译器完成。

能否带来好处取决于编译器能否把有用

指令调度到延迟槽中。

三种调度方法:

以前调度、从目标处调度、从失败处调度

MIPS

若检测到RAW冲突,流水线互锁机制必需在流水线中插入停顿,并使目前正处于IF段和ID段指令不再前进。

分支指令条件测试和分支目标地址计算在EX段完成,对PC修改在MEM段完成。

向量处理机

在流水线处理机中,设置向量数据表示和对应向量指令,称为向量处理机。

不含有向量数据表示和对应向量指令流水线处理机,称为标量处理机。

处理方法:

1.横向(水平)处理方法

向量计算是按行方法从左到右横向地进行。

组成循环程序进行处理。

i

数据相关:

N次功效切换:

2N次

不适合于向量处理机并行处理。

2.纵向(垂直)处理方法

向量计算是按列方法从上到下纵向地进行。

两条向量指令之间:

数据相关:

1次功效切换:

1次

对处理机结构要求:

存放器-存放器结构

3.纵横(分组)处理方法又称为分组处理方法。

把向量分成若干组,组内按纵向方法处理,依次处理各组。

对处理机结构要求:

寄存器-寄存器结构

提升向量处理机性能方法:

设置多个功效部件,使它们并行工作。

采取链接技术,加紧一串向量指令实施。

采取循环开采技术,加紧循环处理。

采取多处理机系统,深入提升性能。

链接技术

链接特征:

含有先写后读相关两条指令,在不出现功效部件冲突和源向量冲突情况下,能够把功效部件链接起来进行流水处理,以达成加紧实施目标。

链接特征实质:

把流水线定向思想引入到向量实施过程结果。

 

第4章指令级并行

这种指令之间存在潜在并行性称为指令级并行。

1.流水线处理机实际CPI

理想流水线CPI加上各类停顿时钟周期数:

CPI流水线=CPI理想+停顿结构冲突+停顿数据冲突+停顿控制冲突

理想CPI是衡量流水线最高性能一个指标。

2.基础程序块:

一段除了入口和出口以外不包含其它分支线性代码段。

3.循环级并行:

使一个循环中不一样循环体并行实施。

4.程序次序:

由源程序确定在完全串行方法下指令实施次序。

保持异常行为是指:

不管怎么改变指令实施次序,全部不能改变程序中异常发生情况。

数据流:

指数据值从其产生者指令到其消费者指令实际流动。

静态调度

依靠编译器对代码进行静态调度,以降低相关和冲突。

它不是在程序实施过程中、而是在编译期间进行代码调度和优化。

经过把相关指令拉开距离来降低可能产生停顿。

动态调度

在程序实施过程中,依靠专门硬件对代码进行调度,降低数据相关造成停顿

不正确异常:

当实施指令i造成发生异常时,处理机现场(状态)和严格按程序次序实施时指令i现场不一样。

正确异常:

假如发生异常时,处理机现场跟严格按程序次序实施时指令i现场相同。

记分牌算法和Tomasulo算法是两种比较经典动态调度算法。

Tomasulo算法基础思想

1.关键思想

统计和检测指令相关,操作数一旦就绪就立即实施,把发生RAW冲突可能性降低到最小;

经过寄存器换名来消除WAR冲突和WAW冲突。

更多地依靠于硬件

寄存器换名能够消除WAR冲突和WAW冲突。

寄存器换名是经过保留站和流出逻辑来共同完成。

Tomasulo算法含有以下两个特点:

冲突检测和指令实施控制是分布。

每个功效部件保留站中信息决定了什么时候

指令能够在该功效部件开始实施。

计算结果经过CDB直接从产生它保留站传送到全部需要它功效部件,而不用经过寄存器。

每个保留站有以下多个字段:

Op:

要对源操作数进行操作。

Qj,Qk:

将产生源操作数保留站号。

等于0表示操作数已经就绪且在Vj或Vk中,或不需要操作数。

Vj,Vk:

源操作数值。

对于每一个操作数来说,V或Q字段只有一个有效。

对于load来说,Vk字段用于保留偏移量。

Busy:

为“yes”表示本保留站或缓冲单元“忙”。

A:

仅load和store缓冲器有该字段。

开始是存放指令中立即数字段,地址计算后存放有效地址。

 

动态分支估计:

在程序运行时,依据分支指令过去表现来估计其未来行为。

分支历史表BHT(BranchHistoryTable)或分支估计缓冲器(BranchPredicitonBuffer)

最简单动态分支估计方法。

用BHT来统计分支指令最近一次或几次实施情况(成功或不成功),并据此进行估计。

BTB

目标:

将分支开销降为0

方法:

分支目标缓冲

将分支成功分支指令地址和它分支目标地址全部放到一个缓冲区中保留起来,缓冲区以分支指令地址作为标识。

这个缓冲区就是分支目标缓冲器(Branch-TargetBuffer,简记为BTB,或Branch-TargetCache)。

循环展开和指令调度

增加指令间并行性最简单和最常见方法

开发循环级并行性——循环不一样迭代之间存在并行性。

在把循环展开后,经过重命名和指令调度来开发更多并行性。

编译器完成这种指令调度能力受限于两个特征:

程序固有指令级并行性;

流水线功效部件实施延迟。

循环展开和指令调度时要注意以下多个方面:

确保正确性。

在循环展开和调度过程中尤其要注意两个地方正确性:

循环控制,操作数偏移量修改。

注意有效性。

只有能够找到不一样循环体之间无关性,才能有效地使用循环展开。

使用不一样寄存器。

(不然可能造成新冲突)

删除多出测试指令和分支指令,并对循环结束代码和新循环体代码进行对应修正。

注意对存放器数据相关性分析

比如:

对于load指令和store指令,假如它们在不一样循环迭代中访问存放器地址是不一样,它们就是相互独立,能够相互对调。

注意新相关性

因为原循环不一样次迭代在展开后全部到了同一次循环体中,所以可能带来新相关性。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 化学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1