2017年11月全国计算机技术与软件专业技术资格(水平)考试《软件设计师(中级)》复习全书【核心讲义+历年真题详解】(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-14 09:09:03

点击下载

作者:圣才电子书

出版社:圣才电子书

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

2017年11月全国计算机技术与软件专业技术资格(水平)考试《软件设计师(中级)》复习全书【核心讲义+历年真题详解】

2017年11月全国计算机技术与软件专业技术资格(水平)考试《软件设计师(中级)》复习全书【核心讲义+历年真题详解】试读:

第一部分 备考指南

第1章 计算机技术与软件专业技术资格(水平)考试概述(软件设计师篇)

一、考试简介

计算机技术与软件专业技术资格(水平)考试(以下简称计算机软件考试)是原中国计算机软件专业技术资格和水平考试(简称软件考试)的完善与发展。这是由国家人力资源和社会保障部、工业和信息化部领导下的国家级考试,其目的是,科学、公正地对全国计算机与软件专业技术人员进行职业资格、专业技术资格认定和专业技术水平测试。

原软件考试在全国范围内已经实施了二十年,截止2011年,累计参加考试的人数约有三百万人。该考试由于其权威性和严肃性,得到了社会及用人单位的广泛认同,并为推动我国信息产业特别是软件产业的发展和提高各类IT人才的素质做出了积极的贡献。

根据人事部、信息产业部文件(国人部发[2003]39号),计算机软件考试纳入全国专业技术人员职业资格证书制度的统一规划。通过考试获得证书的人员,表明其已具备从事相应专业岗位工作的水平和能力,用人单位可根据工作需要从获得证书的人员中择优聘任相应专业技术职务(技术员、助理工程师、工程师、高级工程师)。计算机专业技术资格(水平)实施全国统一考试后,不再进行计算机技术与软件相应专业和级别的专业技术职务任职资格评审工作。因此,这种考试既是职业资格考试,又是职称资格考试。

同时,这种考试还具有水平考试性质,报考任何级别不需要学历、资历条件,只要达到相应的技术水平就可以报考相应的级别。部分级别的考试已与日本、韩国相应级别的考试互认,以后还将进一步扩大考试互认的级别以及互认的国家。

考试合格者将颁发由中华人民共和国人力资源和社会保障部、工业和信息化部用印的计算机技术与软件专业技术资格(水平)证书。

二、考试专业与级别

根据《计算机技术与软件专业技术资格(水平)考试暂行规定》(以下简称《暂行规定》)第五条规定,计算机专业技术资格(水平)考试划分为计算机软件、计算机网络、计算机应用技术、信息系统和信息服务5个专业类别,并在各专业类别中分设了高、中、初级专业资格考试,详见《计算机技术与软件专业技术资格(水平)考试专业类别、资格名称和级别层次对应表》(见下)。人事部和信息产业部将根据发展需要适时调整专业类别和资格名称。

考生可根据本人情况选择相应专业类别、级别的专业资格(水平)参加考试。

三、报考条件

凡遵守中华人民共和国宪法和各项法律,恪守职业道德,具有一定计算机技术应用能力的人员,均可根据本人情况,报名参加相应专业类别、级别的考试。

因此,计算机软件资格考试报名条件不设学历与资历条件、年龄以及专业等限制,考生可根据自己的技术水平选择合适的级别合适的资格进行报考。

注:每次考试个人只允许报考一种资格。

四、报考方式

符合《暂行规定》(即《计算机技术与软件专业技术资格(水平)考试暂行规定》)第八条规定的人员,由本人提出申请,按规定携带身份证明到当地考试管理机构报名,领取准考证。凭准考证、身份证明在指定的时间、地点参加考试。

各地的报名办法由考生报考所在地的当地考试机构决定。考生相关报考费用标准由当地物价部门核准。

考生报名方式主要分为:网上报名与考生本人到指定地点报名两种。

注:报名时依据的身份证明包括:居民身份证、军人的证件、护照、户口本等。

五、报考时间

计算机专业技术资格(水平)考试原则上每年组织两次,在每年第二季度和第四季度举行。

注:各地的报名时间由考生报考所在地的当地考试机构决定。

六、考试形式与时间规定

除信息处理技术员和多媒体应用制作技术员采取笔试与上机操作考试相结合的形式外,其他各种考试都采用笔试形式。考试实行全国统一大纲、统一试题、统一时间、统一标准、统一证书的考试办法。

高级资格考试设综合知识、案例分析和论文3个科目;中级、初级资格考试设基础知识和应用技术2个科目。各级别考试均分2个半天进行。笔试安排在一天之内。上机考试将分期分批进行。

知识科目采用单项选择题,考试150分钟,考生需要用2B铅笔涂填答题卡;

应用技术科目采用问答题,考试时间150分钟;上机考试时间为150分钟;

案例分析科目采用问答题,考试时间为90分钟;论文科目考试时间为120分钟。各个科目的满分均为75分。

七、软件设计师考试科目设置(1)计算机与软件工程知识,考试时间为150分钟,笔试,选择题;(2)软件设计,考试时间为150分钟,笔试,问答题。

八、考试目标

通过本考试的合格人员能根据软件开发项目管理和软件工程的要求,按照系统总体设计规格说明书进行软件设计,编写程序设计规格说明书等相应的文档;组织和指导程序员编写、调试程序,并对软件进行优化和集成测试,开发出符合系统总体设计要求的高质量软件;具有工程师的实际工作能力和业务水平。

九、软件设计师考试要求(1)掌握数据表示、算术和逻辑运算;(2)掌握相关的应用数学、离散数学的基础知识;(3)掌握计算机体系结构以及各主要部件的性能和基本工作原理;(4)掌握操作系统、程序设计语言的基础知识,了解编译程序的基本知识;(5)熟练掌握常用数据结构和常用算法;(6)熟悉数据库、网络和多媒体的基础知识;(7)掌握C程序设计语言,以及C++、Java、Visual Basic、Visual C++中的一种程序设计语言;(8)熟悉软件工程、软件过程改进和软件开发项目管理的基础知识;(9)熟练掌握软件设计的方法和技术;(10)掌握常用信息技术标准、安全性,以及有关法律、法规的基本知识;(11)了解信息化、计算机应用的基础知识;(12)正确阅读和理解计算机领域的英文资料。

十、指定书目

考试大纲——《软件设计师考试大纲与培训指南(2009版)》 清华大学出版社

指定教材——《软件设计师教程(第四版)》 清华大学出版社

十一、考试内容

考试科目l:计算机与软件工程知识

一、计算机科学基础知识

1.1 数制及其转换

•二进制、八进制、十进制和十六进制等常用数制及其相互转换

1.2 计算机内数据的表示

•数的表示

•非数值表示(字符和汉字表示、声音表示、图像表示)

1.3 算术运算和逻辑运算

•计算机中的二进制数运算方法

•逻辑代数的基本运算

1.4 其他数学基础知识

•常用数值计算

•排列组合,概率论应用,应用统计(数据的统计分析)

•编码基础

•命题逻辑、谓词逻辑、形式逻辑的基础知识

•运筹基本方法

二、计算机系统知识

2.1 计算机硬件基础知识

2.1.1 计算机系统的组成、体系结构分类及特性

•CPU、存储器的组成、性能和基本工作原理

•常用I/O设备、通信设备的性能以及基本工作原理

•I/O接口的功能、类型和特性

•CISC/RISC,流水线操作,多处理机,并行处理

2.1.2 存储系统

•虚拟存储器基本工作原理,多级存储体系

•RAID类型和特性

2.1.3 可靠性与系统性能评测基础知识

•诊断与容错

•系统可靠性分析评价

•计算机系统性能评测方法

2.2 计算机软件知识

2.2.1 数据结构与算法知识

•数组

•链表

•队列、栈

•树

•图的定义、存储和基本操作

•杂凑(Hash表)

•常用的排序算法、查找算法、数值计算、字符串处理、数据压缩算法、递归算法、图的相关算法

•算法描述和分析

2.2.2 操作系统知识

•操作系统的内核

•处理机管理

•存储管理

•设备管理

•文件管理

•作业管理

•网络操作系统和嵌入式操作系统基础知识

•操作系统的配置

2.2.3 程序设计语言和语言处理程序知识

•汇编、编译、解释系统的基础知识和基本工作原理

•程序设计语言的基本成分(数据、运算、控制和传输),程序调用的实现机制

•各类程序设计语言的主要特点和适用情况

2.2.4 数据库知识

•数据库模型(概念模式、外模式、内模式)

•数据模型,ER图,规范化

•数据操作

•数据库语言

•数据库管理系统的功能和特征

•数据库的控制功能

•数据仓库和分布式数据库基础知识

2.3 计算机网络知识

•网络体系结构

•传输介质,传输技术,传输方法,传输控制

•常用网络设备和各类通信设备的特点

•Client.Server结构,Browser.Server结构

•LAN(拓扑,存取控制,组网,网间互连)

•Internet和Intranet基础知识以及应用

•网络软件

•网络管理,网络性能分析

2.4 多媒体基础知识

•多媒体系统基础知识

•简单图形的绘制,图像文件的处理方法

•音频和视频信息的应用

•多媒体应用开发过程

三、系统开发和运行知识

3.1 软件工程知识

•软件生存周期与软件生存周期模型

•软件开发方法

•软件开发项目管理

•软件工具与软件开发环境

3.2 系统分析基础知识

•系统分析的主要步骤

•结构化分析方法

3.3 系统设计基础知识

•概要设计与详细设计的基本任务

•系统设计的基本原理

•系统模块结构设计

•结构化设计方法

•面向数据结构的设计方法

•系统详细设计

3.4 系统实施基础知识

•系统实施的基本内容

•程序设计方法

•程序设计的基本模块

•系统测试

•系统转换

3.5 系统运行和维护基础知识

•系统可维护性的概念

•系统维护的类型

•系统评价的概念与类型

3.6 软件质量管理基础知识

•软件质量特性(IS0/IEC 9126软件质量模型)

•软件质量保证

•软件复杂性的概念及度量方法(MeCabe度量法)

•软件评审(设计质量评审、程序质量评审)

•软件容错技术

3.7 软件过程改进基础知识

•软件能力成熟度模型CMM

•统一过程(UP)与极限编程(XP)的基本概念

四、面向对象基础知识

•面向对象的基本概念

•面向对象分析与设计知识

•分析模式与设计模式知识

•面向对象程序设计知识

•面向对象数据库、分布式对象基础知识

五、信息安全知识

•信息系统安全基础知识

•信息系统安全管理

•保障完整性与可用性的措施

•加密与解密机制基础知识

•风险管理(风险分析、风险类型、抗风险措施和内部控制)

•计算机安全相关的法律、法规基础知识

六、标准化、信息化和知识产权基础知识

6.1 标准化基础知识

•标准化意识,标准化组织机构,标准的内容、分类、代号与编号规定,标准制订过程

•国际标准、国家标准、行业标准、企业标准

•代码标准、文件格式标准、安全标准、互联网相关标准、软件开发规范和文档标准、基于构件的软件标准

6.2 信息化基础知识

•全球信息化趋势、国家信息化战略、企业信息化战略和策略

•互联网相关的法律、法规知识

•个人信息保护规则

•远程教育、电子商务、电子政务等基础知识

•企业信息资源管理基础知识

6.3 知识产权基础知识

•保护知识产权有关的法律、法规

七、计算机专业英语

•具有工程师所要求的英语阅读水平

•理解本领域的英语术语

考试科目2:软件设计

一、外部设计

1.1 理解系统需求说明

1.2 准备进行系统开发

•选择开发方法、准备开发环境、制订开发计划

1.3 设计系统功能

•选择系统结构

•设计各子系统的功能和接口

•设计安全性策略、需求和实现方法

•制订详细的工作流和数据流

1.4 设计数据模型

•设计ER模型及其他数据模型

1.5 编写外部设计文档

•系统配置图、各子系统关系图

•系统流程图、系统功能说明书

•输入输出规格说明、数据规格说明、用户手册框架

•设计系统测试要求

1.6 外部设计的评审

二、内部设计

2.1 设计软件结构

•按构件分解,确定构件功能、规格以及构件之间的接口

•数据结构与算法设计

•采用中间件和工具

2.2 设计输入输出

2.3 设计物理数据

2.4 构件的创建和重用

•创建构件、重用构件

•使用子程序库或类库

2.5 编写内部设计文档

•构件划分图、构件间的接口、构件处理说明

•屏幕界面设计文档、报表设计文档、文件设计文档、数据库设计文档

2.6 内部设计的评审

三、数据库应用分析与设计

•设计关系模式

•数据库语言(SQL)

•数据库访问

四、程序设计

4.1 模块划分

4.2 编写程序设计文档

4.3 程序设计评审

五、系统实施

5.1 配置计算机系统及环境

5.2 选择合适的程序设计语言

5.3 用C程序设计语言以及C++、Java中的任一种程序设计语言进行程序设计

5.4 系统测试

•指导程序员进行模块测试,并进行验收

•准备系统集成测试环境和测试工具

•准备测试数据

•写出测试报告

六、软件工程应用

6.1 软件开发周期模型

6.2 需求分析

6.3 软件设计

•软件设计的基本原则

•软件设计方法

•程序设计(结构化程序设计、面向对象程序设计)

6.4 软件测试的原则与方法

6.5 软件质量(软件质量特性、软件质量控制)

6.6 软件过程评估基本方法、软件能力成熟度评估基本方法

6.7 软件开发环境和开发工具

6.8 面向对象技术

•面向构件技术

•统一建模语言(UML)

•软件过程改进模型和方法

6.9 网络环境软件技术

第2章 软件设计师考试复习技巧

一、解题的方法与技巧

1.勇往直前

进入下午的考试,会有些许疲劳的感觉,尤其当看到题干很长、算法较复杂的题时,就有想回避或焦虑、急躁的情绪。这是典型的“两军未战,兵先屈”的败兴思绪。要知道两对手相遇勇者胜,勇者相遇智者胜。抛开所有不必要的想法,相信自己的实力,做到心无旁鹜,勇往直前。

2.审清题干

题干包含了整个题目的条件和要求,但也有很多提示信息在程序的“注释”当中;若题干比较复杂,就要注意将题干“分段”来阅读,前后注意衔接,必要时在草稿纸上记录下关键数据。有时候题干很长,看似很复杂,让很多人望而却步。其实,这种题更好解,因为题干长了预示着题目的提示信息相应的多了,此时,主要是考你有没有勇气和耐心。

3.巧读程序

要从主函数开始,再到子函数(过程),整体阅读两遍,找出各部分功能,对照题干的算法要求,然后再定位填空。

二、总结

常言道“熟能生巧”、“打铁还得本身硬”,再好的方法与技巧若没有基础,是发挥不了作用的;如若有了一定的功底,再差的招式也会产生很大的威力,就像金庸小说中杨过的那柄钝剑。软件设计师考试的难度较大,下午试题要求对系统内部、外部设计,程序设计以及数据库设计比较熟练;如果只看不练,不会有提高。建议大家多做模拟试题和历年试题,锻炼解题的能力与节奏。

第二部分 核心讲义

第1章 计算机系统知识

1.1 计算机系统基础知识

一、计算机系统硬件基本组成

计算机的基本硬件系统由运算器、控制器、存储器、输入设备和输出设备五大部件组成。运算器、控制器等部件被集成在一起统称为中央处理单元(Central Processing Unit,CPU)。输入设备和输出设备合称为外部设备(简称外设)。

二、中央处理单元

1.CPU的功能(1)程序控制

CPU通过执行指令来控制程序的执行顺序,这是CPU的重要功能。(2)操作控制

CPU产生每条指令的操作信号控制相应部件按指令的功能要求进行操作。(3)时间控制

CPU对指令执行过程中操作信号的出现时间、持续时间及出现的时间顺序都需要进行严格控制。(4)数据处理

CPU通过对数据进行算术运算及逻辑运算等方式进行加工处理。

2.CPU的组成

CPU主要由运算器、控制器、寄存器组和内部总线等部件组成,如图1-1所示。

图1-1 CPU基本组成结构示意图(1)运算器

①运算器的组成

运算器由算术逻辑单元(Arithmetic and Logic Unit,ALU)、累加寄存器、数据缓冲寄存器和状态条件寄存器组成。

②运算器的功能

A.执行所有的算术运算,如加、减、乘、除等基本运算及附加运算。

B.执行所有的逻辑运算并进行逻辑测试,如与、或、非、零值测试或两个值的比较等。

③运算器中各组成部件的功能

A.算术逻辑单元(ALU)

ALU负责处理数据,实现对数据的算术运算和逻辑运算。

B.累加寄存器(AC)

AC通常简称为累加器,它是一个通用寄存器,其功能是当运算器的算术逻辑单元执行算术或逻辑运算时,为ALU提供一个工作区。运算的结果是放在累加器中的,运算器中至少要有一个累加寄存器。

C.数据缓冲寄存器(DR)

作为CPU和内存、外部设备之间数据传送的中转站;

作为CPU和内存、外围设备之间在操作速度上的缓冲;

在单累加器结构的运算器中,还可兼作为操作数寄存器。

D.状态条件寄存器(PSW)

PSW保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容。(2)控制器

①控制器的组成

控制器一般包括指令控制逻辑、时序控制逻辑、总线控制逻辑和中断控制逻辑等几个部分。

②指令控制逻辑

指令控制逻辑要完成取指令、分析指令和执行指令的操作,其过程分为取指令、指令译码、按指令操作码执行、形成下一条指令地址等步骤。

a.指令寄存器(IR)

当CPU执行一条指令时,先把它从内存储器取到缓冲寄存器中,再送入IR暂存,指令译码器根据IR的内容产生各种微操作指令,控制其他的组成部件工作,完成所需的功能。

B.程序计数器(PC)

PC具有寄存信息和计数两种功能,又称为指令计数器。

C.地址寄存器(AR)

AR保存当前CPU所访问的内存单元的地址。

D.指令译码器(ID)

指令分为操作码和地址码两部分。指令译码器就是对指令中的操作码字段进行分析解释,识别该指令规定的操作,向操作控制器发出具体的控制信号,控制各部件工作。

③时序控制逻辑

时序控制逻辑要为每条指令按时间顺序提供应有的控制信号。

④总线逻辑

总线逻辑是为多个功能部件服务的信息通路的控制电路。

⑤中断控制逻辑

中断控制逻辑用于控制各种中断请求,并根据优先级的高低对中断请求进行排队,逐个交给CPU处理。(3)寄存器组

运算器和控制器中的寄存器是 专用寄存器,其作用是固定的。

通用寄存器用途广泛并可由程序员规定其用途,其数目因处理器不同有所差异。

3.多核CPU(1)核心的作用

核心又称为内核。CPU中心那块隆起的芯片就是核心,是由单晶硅以一定的生产工艺制造出来的,CPU所有的计算、接收/存储命令、处理数据都由核心执行。(2)核心的逻辑结构

各种CPU核心都具有固定的逻辑结构,一级缓存、二级缓存、执行单元、指令级单元和总线接口等逻辑单元都会有合理的布局。(3)多核

多核即在一个单芯片上面集成两个甚至更多个处理器内核,其中,每个内核都有自己的逻辑单元、控制单元、中断处理器、运算单元,一级Cache、二级Cache共享或独有,其部件的完整性和单核处理器内核相比完全一致。

三、数据表示

1.机器数

各种数值在计算机中表示的形式称为机器数,其特点是采用二进制计数制,数的符号用0和1表示,小数点则隐含,表示不占位置。机器数对应的实际数值称为数的真值。(1)无符号数

无符号数表示正数,在机器数中没有符号位。若约定小数点的位置在机器数的最低位之后,则是纯整数;若约定小数点的位置在机器数的最高位之前,则是纯小数。(2)带符号数

机器数的最高位是表示正、负的符号位,其余位则表示数值。若约定小数点的位置在机器数的最低数值位之后,则是纯整数;若约定小数点的位置在机器数的最高数值位之前(符号位之后),则是纯小数。

2.带符号数的编码方式

机器数的编码方法称为码制。(1)原码、反码、补码和移码

①原码表示法

数值X的原码记为【X】,如果机器字长为n(即采用n个二进原制位表示数据),则原码的定义如下:

若X是纯整数,则

若X是纯小数,则

在原码表示法中,最高位是符号位,0表示正号,1表示负号,其余的,n-1位表示数值的绝对值。数值0的原码表示有两种形式:[0]=00000000,[-0]=10000000。原原

②反码表示法

数值x的反码记作[x],如果机器字长为n,则反码的定义如下:反

若X是纯整数,则

若X是纯小数,则

在反码表示中,最高位是符号位,0表示正号,1表示负号,正数的反码与原码相同,负数的反码则是其绝对值按位求反。

数值0的反码表示有两种形式:[+0]=00000000,[-0]反反=11111111。

③补码表示法

数值x的补码记作[X],如果机器字长为n,则补码的定义如下:补

若X是纯整数,则

若X是纯小数,则

在补码表示中,最高位为符号位,0表示正号,1表示负号,正数的补码与其原码和反码相同,负数的补码则等于其反码的末尾加1。在补码表示中,0有唯一的编码:[+0]=00000000,[-0]=00000000。补补

④移码表示法

移码表示法是在数X上增加一个偏移量来定义的,常用于表示浮n-1点数中的阶码。如果机器字长为n,规定偏移量为2,则移码的定义如下:n_1n_1n_1

若X是纯整数,则【X】=2+X(-2≤X<2);若X是纯小移数,则【X】=1+X(-1≤X<1)补n-1

实际上,在偏移2的情况下,只要将补码的符号位取反便可获得相应的移码表示。(2)定点数和浮点数

①定点数

定点数就是小数点的位置固定不变的数。小数点的位置通常有两种约定方式:定点整数(纯整数,小数点在最低有效数值位之后)和定点小数(纯小数,小数点在最高有效数值位之前)。

设机器字长为n,各种码制下带符号数的范围如表1-1所示。

表1-1 机器字长为n时各种码制表示的带符号数的范围

②浮点数

浮点数是小数点位置不固定的数,它能表示更大范围的数。E

一个二进制数N可以表示为更一般的形式N=2×F,其中E称为阶码,F称为尾数,用阶码和尾数表示的数称为浮点数,这种表示数的方法称为浮点表示法。

在浮点表示法中,阶码通常为带符号的纯整数,尾数为带符号的纯小数。浮点数的表示格式如下:阶符阶码数符尾数

一个数的浮点表示不是唯一的。当小数点的位置改变时,阶码也随着相应改变。

浮点数所能表示的数值范围主要由阶码决定,所表示数值的精度则由尾数决定。

规格化浮点数就是将尾数的绝对值限定在区间[0.5,1]。当尾数用补码表示时,需要注意如下问题。

A.若尾数M≥0,则其规格化的尾数形式为M=0.1×××…×,其中,×可为0,也可为1,即将尾数限定在区间[0.5,1]。

B.若尾数M<0,则其规格化的尾数形式为M=1.0×××…×,其中,×可为0,也可为1,即将尾数M的范围限定在区间[-1,-0.5]。

如果浮点数的阶码(包括1位阶符)用R位的移码表示,尾数(包括1位数符)用M位的补码表示,则这种浮点数所能表示的数值范围为:

最大的正数:

最小的负数:

③工业标准IEEE 754

IEEE 754是由IEEE制定的有关浮点数的工业标准,形式如下:S

其中,(-1)为该浮点数的数符,当S为0时表示正数,S为1时表示负数;E为指数(阶码),用移码表示;(b0b1b2b3…b)为尾P-1数,其长度为P位,用原码表示。

目前,计算机中主要使用3种形式的IEEE 754浮点数,如表1-2所示。

表1-2 3种形式的IEEE 754浮点数格式扩充精度浮点 参数单精度浮点数双精度浮点数数 浮点数字长326480 尾数长度P235264 符号位S111 指数长度E81115最大指数+127+1023+16383最小指数-126-1022-16382指数偏移量+127+1023+16383-4932~10-38-30838308可表示的实数范围~1010~1010493210

在IEEE 754标准中,约定小数点左边隐含有一位,通常这位数就是1,因此单精度浮点数尾数的有效位数为24位,即尾数为1.××…×。

④浮点数的运算jj

设有浮点数X=M×2,Y=N×2,求X±Y的运算过程如下:

a.对阶

使两个数的阶码相同。令K=|i-j|,把阶码小的数的尾数右移K位,使其阶码加上K。

B.求尾数和(差)

C.结果规格化并判溢出

若运算结果所得的尾数不是规格化的数,则需要进行规格化理。当尾数溢出时,需要调整阶码。

D.舍入处理

在对结果右规时,尾数的最低位将因移出而丢掉。在对阶过程中也会将尾数右移使最低位丢掉。

e.溢出判别

以阶码为准,若阶码溢出,则运算结果溢出;若阶码下溢(小于最小值),则结果为0;否则结果正确,无溢出。

浮点数相乘,其积的阶码等于两乘数的阶码相加,积的尾数等于两乘数的尾数相乘。

浮点数相除,其商的阶码等于被除数的阶码减去除数的阶码,商的尾数等于被除数的尾数除以除数的尾数。

乘除运算的结果都需要进行规格化处理并判断阶码是否溢出。

四、校验码

1.校验码的基本思想

通常使用校验码的方法来检测传送的数据是否出错。基本思想是把数据可能出现的编码分为两类:合法编码和错误编码。合法编码用于传送数据,错误编码是不允许在数据中出现的编码。

码距是指一个编码系统中任意两个合法编码之间至少有多少个二进制位不同。

2.奇偶校验码

奇偶校验(Parity Codes)通过在编码中增加一位校验位来使编码中1的个数为奇数(奇校验)或者为偶数(偶校验),从而使码距变为2。奇校验不能发现偶数位出错的情况。

3.海明码(1)海明码的构成方法

海明码(Hamming Code)也是利用奇偶性来检错和纠错的校验方法。在数据位之间的确定位置上插入k个校验位,通过扩大码距来实现检错和纠错。(2)海明码的编码规则

设数据位是n位,校验位是k位,则n和k必须满足以下关系:k

2-1≥n+k

海明码的编码规则如下:

设k个校验位为个数据位为对应的海明码为,那么:i-1i-1

①P在海明码的第2位置,即H=P,,且产j=2,数据位则依iji序从低到高占据海明码中剩下的位置。

②海明码中的任何一位都是由若干个校验位来校验的。

其对应关系如下:被校验的海明位的下标等于所有参与校验该位的校验位的下标之和,而校验位由自身校验。

4.循环冗余校验码

循环冗余校验码(Cyclic Redundancy Check,CRC)广泛应用于数据通信领域和磁介质存储系统中。它利用生成多项式为k个数据位产生k个校验位来进行编码,其编码长度为k+r。CRC的代码格式为:

循环冗余校验码是由两部分组成的,左边为信息码(数据),右边为校验码。若信息码占k位,n为CRC码的字长,又称为(n,k)码。校验码是由信息码产生的,校验码位数越长,该代码的校验能力就越强。在求CRC编码时,采用的是模2运算。模2加减运算的规则是按位运算,不发生借位和进位。

1.2 计算机体系结构

一、计算机体系结构的发展

1.计算机系统结构概述

计算机体系结构、计算机组织和计算机实现三者的关系如下。(1)计算机体系结构(computer architecture)是指计算机的概念性结构和功能属性。(2)计算机组织(computer organization)是指计算机体系结构的逻辑实现,包括机器内的数据流和控制流的组成以及逻辑设计等(常称为计算机组成原理)。(3)计算机实现(computer implementation)是指计算机组织的物理实现。

2.计算机体系结构分类(1)从宏观上按处理机的数量进行分类

①单处理系统(uniprocessing system),利用一个处理单元与其他外部设备结合起来。

②并行处理与多处理系统(parallel processing and multiprocessing system),将两个以上的处理机互连起来,彼此进行通信协调。

③分布式处理系统(distributed processing system),物理上远距离而松耦合的多计算机系统。(2)从微观上按并行程度分类

①Flynn分类法

指令流为机器执行的指令序列,数据流是由指令调用的数据序列。Flynn把计算机系统的结构分为:

A.单指令流、单数据流(SISD)

B.单指令流、多数据流(Single Instruction stream Multiple Data stream,SIMD)

C.多指令流、单数据流(Multiple Instruction stream Single Data stream,MISD)

D.多指令流、多数据流(Multiple Instruction stream Multiple Data stream,MIMD)

②冯泽云分类法

冯泽云把计算机系统分成:

A.字串行位串行(WSBS)计算机

B.字并行位串行(WPBS)计算机

C.字串行位并行(WSBP)计算机

D.字并行位并行(WPBP)计算机

③Handler分类法

把计算机的硬件结构分为3个层次:处理机级、每个处理机中的算逻单元级、每个算逻单元中的逻辑门电路级。分别计算这三级中可以并行或流水处理的程序,即可算出某系统的并行度。

④Kuck分类法

用指令流和执行流(execution stream)及其多重性来描述计算机系统控制结构的特征。Kuck把系统结构分为:

A.单指令流单执行流(SISE)

B.单指令流多执行流(SIME)

C.多指令流单执行流(MISE)

D.多指令流多执行流(MIME)

3.指令系统(1)指令集体系结构的分类

①从体系结构的观点对指令集进行分类

A.操作数在CPU中的存储方式,即操作数从主存中取出后保存在什么地方。

B.显式操作数的数量,即在典型的指令中有多少个显式命名的操作数。

C.操作数的位置,即任一个ALU指令的操作数能否放在主存中,如何定位。

D.指令的操作,即在指令集中提供哪些操作。

e.操作数的类型与大小。

②按暂存机制分类

根据在CPU内部存储操作数区别,分为堆栈(stack)、累加器(accumulator)和寄存器组(a set of registers)。(2)CISC和RISC

CISC和RISC是指令集发展的两个途径。

①CISC

CISC(Complex Instruction Set Computer,复杂指令集计算机)的基本思想:进一步增强原有指令的功能,用更为复杂的新指令取代原先由软件子程序完成的功能,实现软件功能的硬化,导致机器的指令系统越来越庞大、复杂。

②RISC

RISC(Reduced Instruction Set Computer,精简指令集计算机)的基本思想:通过减少指令总数和简化指令功能降低硬件设计的复杂度,使指令能单周期执行,并通过优化编译提高指令的执行速度,采用硬布线控制逻辑优化编译程序。

RISC的关键技术如下。

A.重叠寄存器窗口(overlappingregister windows)技术。

B.优化编译技术。

C.超流水及超标量技术。

D.在微程序技术中硬布线逻辑与微程序相结合。

③优化

A.面向目标代码优化

对程序中出现的各种指令以及指令串进行统计得到的百分比称为静态使用频度。在程序执行过程中,对出现的各种指令以及指令串进行统计得到的百分比称为动态使用频度。按静态使用频度来改进目标代码可减少目标程序所占的存储空间,按动态使用频度来改进目标代码可减少目标程序运行的执行时间。

B.面向高级语言的优化

尽可能缩小高级语言与机器语言之间的语义差距,以利于支持高级语言编译系统,缩短编译程序的长度和编译所需的时间。

C.面向操作系统的优化

进一步缩小操作系统与体系结构之间的语义差距。(3)指令的流水处理

①指令控制方式

A.顺序方式

顺序方式是指各条机器指令之间顺序串行地执行,而且每条机器指令内部的各个微操作也是顺序串行地执行。这种方式的优点是控制简单。缺点是速度慢,机器各部件的利用率低。

B.重叠方式

重叠方式是指在解释第K条指令的操作完成之前就可以开始解释第K+1条指令,如图1-2所示。

图1-2 一次重叠处理

C.流水方式

流水(pipelining)技术是把重复的顺序处理过程分解为若干子过程,每个子过程能在专用的独立模块上有效地并发工作,如图1-3所示。

图1-3 流水处理的时空图

②流水线的种类

A.从流水的级别上,可分为部件级、处理机级以及系统级的流水。

B.从流水的功能上,可分为单功能流水线和多功能流水线。

C.从流水的连接上,可分为静态流水线和动态流水线。

D.从流水是否有反馈回路,可分为线性流水线和非线性流水线。

e.从流水的流动顺序上,可分为同步流水线和异步流水线。

f.从流水线的数据表示上,可分为标量流水线和向量流水线。

③流水的相关处理

指令可能有对同一主存单元或同一寄存器的“先写后读”的要求,这时就出现了相关。

A.局部相关

只影响相关的两条或几条指令,影响是局部的,称为局部性相关。解决局部性相关有两种方法:推后法和通路法。

推后法是推后对相关单元的读,直至写入完成。

通路法设置相关专用通路,经过相关专用通路直接使用运算结果,以加快速度。

B.全局性相关

转移指令(尤其是条件转移指令)与它后面的指令之间存在关联,使之不能同时解释。比局部性相关的影响要严重得多,所以称为全局性相关。

解决全局性相关有3种方法:猜测转移分支、加快和提前形成条件码、加快短循环程序的处理。

C.RISC中采用的流水技术

第一,超流水线(super pipe line)技术:它通过细化流水、增加级数和提高主频,使得在每个机器周期内能完成一个甚至两个浮点操作。其实质是以时间换取空间。

第二,超标量(super scalar)技术:它通过内装多条流水线来同时执行多个处理,其时钟频率虽然与一般流水接近,却有更小的CPI。其实质是以空间换取时间。

第三,超长指令字(Very Long Instruction Word,VLIW)技术:VLIW同时执行多条指令,充分发挥软件的作用,而使硬件简化,性能提高。VLIW有更小的CPI值,但需要有足够高的时钟频率。

④吞吐率和流水建立时间

吞吐率是指单位时间内流水线处理机流出的结果数。对指令而言,就是单位时间内执行的指令数。如果流水线的子过程所用时间不一样,则吞吐率P应为最长子过程的倒数,即

流水线开始工作,需经过一定时间才能达到最大吞吐率,这就是建立时间。若m个子过程所用时间一样,均为△t,则建立时间T=m△00t。0

4.阵列处理机、并行处理机和多处理机(1)并行处理

并行性包括同时性和并发性。同时性是指两个或两个以上的事件在同一时刻发生,并发性是指两个或两个以上的事件在同一时间间隔内连续发生。

并行处理分类:

①存储器操作并行;

②处理器操作步骤并行(流水线处理机);

③处理器操作并行(阵列处理机);

④指令、任务、作业并行(多处理机、分布处理系统、计算机网络)。(2)阵列处理机

阵列处理机将重复设置的多个处理单元(PU)按一定方式连成阵列,在单个控制部件(CU)控制下,对分配给自己的数据进行处理,并行地完成一条指令所规定的操作。这是一种单指令流多数据流计算机,通过资源重复实现并行性。(3)并行处理机

SIMD有共享存储器和分布存储器两种形式。

如图1-4为具有共享存储器的SIMD结构,图1-5为分布式存储器的SIMD处理机。其中,PE为处理单元,CU为控制部件,M为共享存储器,ICN为互联网络,PEM为局部存储器。

图1-4 具有共享存储器的SIMD结构

图1-5 具有分布存储器的SIMD结构

分布存储器的并行处理机结构中有两类存储器,一类存储器附属于主处理机,另一类是分布在各个处理单元上的存储器(即PEM),这类存储器用来保存程序和数据。(4)多处理机

多处理机系统是由多台处理机组成的系统,每台处理机有属于自己的控制部件,可以执行独立的程序,共享一个主存储器和所有的外部设备。它是多指令流多数据流计算机。(5)其他计算机

集群一般是指连接在一起的两个或多个计算机(结点)。集群计算机是一种并行或分布式处理系统,由很多连接在一起的独立计算机组成,主要用来解决大型计算问题。

网格计算专门用于复杂科学计算的新型计算模式。这种计算模式类似于集群,但结点更加分散,结点的组织方式也更加灵活。

二、存储系统

1.存储器的层次结构

存储系统的层次结构如图1-6所示。其中,Cache和主存之间的交互功能全部由硬件实现,而主存与辅存之间的交互功能可由硬件和软件结合起来实现。

图1-6 存储系统的层次结构

2.存储器的分类(1)按存储器所处的位置分类

①内存

也称为主存,设在主机内或主机板上,用来存放机器当前运行所需要的程序和数据,以便向CPU提供信息。相对于外存容量小、速度快。

②外存

也称为辅存,如磁盘、磁带和光盘等,用来存放当前不参加运行的大量信息,而在需要时调入内存。(2)按存储器的构成材料分类

①磁存储器;

②半导体存储器;

③光存储器。(3)按存储器的工作方式分类

①读/写存储器(Random Access Memory,RAM)它指既能读取数据也能存入数据的存储器。

②只读存储器

工作过程中仅能读取的存储器,根据数据的写入方式,又可细分如下:

A.固定只读存储器(Read Only Memory,ROM);

B.可编程的只读存储器(Programmable Read Only Memory,PROM);

C.可擦除可编程的只读存储器(Erasable Programmable Read Only Memory,EPROM);

D.电擦除可编程的只读存储器(Electrically Erasable Programmable Read Only Memory, EEPROM);

e.闪速存储器(Flash Memory)。(4)按访问方式分类

按访问方式可分为按地址访问的存储器和按内容访问的存储器。(5)按寻址方式分类

①随机存储器(Random Access Memory,RAM)

可对任何存储单元存入或读取数据,访问任何一个存储单元所需的时间是相同的。

②顺序存储器(Sequentially Addressed Memory,SAM)

访问数据所需要的时间与数据所在的存储位置相关,磁带是典型的顺序存储器。

③直接存储器(Direct Addressed Memory,DAM)

介于随机存取和顺序存取之间的一种寻址方式。磁盘是一种直接存取存储器,它对磁道的寻址是随机的,而在一个磁道内则是顺序寻址。

3.相联存储器

相联存储器是一种按内容访问的存储器。其工作原理就是把数据或数据的某一部分作为关键字,按顺序写入信息,读出时并行地将该关键字与存储器中的每一单元进行比较,找出存储器中所有与关键字相同的数据字,特别适合于信息的检索和更新。

相联存储器的结构如图1-7所示。

图1-7 相联存储器的结构框图

4.高速缓存(1)高速缓存的特点

高速缓存用来存放当前最活跃的程序和数据,其特点是:容量一般在几千字节到几兆字节之间;速度一般比主存快5~10倍,由快速半导体存储器构成;内容是主存局部域的副本。(2)高速缓存的组成

高速缓存的组成如图1-8所示。Cache由两部分组成:控制部分和存储器部分。

图1-8 高速缓存的构成框图

Cache存储器部分用来存放主存的部分拷贝(副本)信息。控制部分的功能是判断CPU要访问的信息是否在Cache存储器中,若在即为命中,若不在则没有命中。命中时直接对Cache存储器寻址;未命中时,要按照替换原则决定主存的一块信息放到Cache存储器的哪一块里。(3)高速缓存中的地址映像方法

将主存地址转换成Cache存储器的地址,这种地址的转换称为地址映像。Cache的地址映像方法如下

①直接映像

直接映像是指主存的块与Cache中块的对应关系是固定的,如图1-9所示。

图1-9 直接映像示意图

直接映像方式的优点是地址变换很简单,缺点是灵活性差。

②全相联映像

全相联映像如图1-10所示。同样,主存与Cache存储器均分成大小相同的块。这种映像方式允许主存的任一块可以调入Cache存储器的任何一个块的空间中。

图1-10 全相联映像示意图

全相联映像的主要优点是主存的块调入Cache的位置不受限制,十分灵活。其主要缺点是无法从主存块号中直接获得Cache的块号,变换比较复杂,速度比较慢。

③组相联映像

组相联映像就是规定组采用直接映像方式而块采用全相联映像方式。

在这种方式下,通过直接映像方式来决定组号,在一组内再用全相联映像方式来决定Cache中的块号。由主存地址高位决定的主存区号与Cache中区号比较可决定是否命中。主存后面的地址即为组号。(4)替换算法

替换算法的目标就是使Cache获得尽可能高的命中率。常用算法有如下几种。

①随机替换算法:就是用随机数发生器产生一个要替换的块号,将该块替换出去。

②先进先出算法:就是将最先进入Cache的信息块替换出去。

③近期最少使用算法:这种方法是将近期最少使用的Cache中的信息块替换出去。

④优化替换算法:这种方法必须先执行一次程序,统计Cache的替换情况。有了这样的先验信息,在第二次执行该程序时便可以用最有效的方式来替换。(5)Cache的性能分析

Cache设计的目标是在成本允许的条件下达到较高的命中率,使存储系统具有最短的平均访问时间。设H为Cache的命中率,t为ccCache的存取时间,t为主存的访问时间,则Cache存储器的等效加m权平均访问时间f。为:

这里假设Cache访问和主存访问是同时启动的,其中,t为cCache命中时的访问时间,(tt)为失效访问时间。如果在Cache不m-c命中时才启动主存,则

Cache的命中率与Cache容量的关系是:Cache容量越大,则命中率越高,随着Cache容量的增加,其失效率接近0%(命中率逐渐接近100%)。但是,增加Cache容量意味着增加Cache的成本和增加Cache的命中时间。(6)多级Cache

在多级Cache的计算机中,Cache分为一级(L1 Cache)、二级(L2 Cache)等,CPU访存时首先查找L1 Cache,如果不命中,则访问L2 Cache,直到所有级别的Cache都不命中,才访问主存。

5.虚拟存储器

虚拟存储(virtual memory)技术是把很大的程序(数据)分成许多较小的块,全部存储在辅存中。运行时,把要用到的程序(数据)块先调入主存,并且把马上就要用到的程序块从主存调入高速缓存。虚拟存储器管理方式分为如下几种:(1)页式虚拟存储器

以页为信息传送单位的虚拟存储器。为实现页式管理,需建立虚页与实页间的关系表,称为页表。在页表及变换软件的控制下,可将程序的虚拟地址变换为主存的实地址。(2)段式虚拟存储器

以程序的逻辑结构形成的段(如某一独立程序模块、子程序等)作为主存分配依据的一种段式虚拟存储器的管理方法。为实现段式管理,需建立段表。在段地址变换机构及软件的控制下,可将程序的虚拟地址变换为主存的实地址。(3)段页式虚拟存储器

程序按逻辑结构分段,每一段再分成若干大小固定的页。程序的调入/调出是按页进行的,而程序又可按段实现保护。地址变换速度比较慢。

6.外存储器

外存储器用来存放暂时不用的程序和数据,并且以文件的形式存储。CPU不能直接访问外存中的程序和数据,只有将其以文件为单位调入主存才可访问。(1)磁盘存储器

在磁表面存储器中,磁盘的存取速度较快,且具有较大的存储容量,是目前广泛使用的外存储器。

①磁盘的组成

A.盘片

用来存储信息。

B.驱动器

用于驱动磁头沿盘面径向运动以寻找目标磁道位置,驱动盘片以额定速率稳定旋转,并且控制数据的写入和读出。

C.控制器

接收主机发来的命令,将它转换成磁盘驱动器的控制命令,实现主机和驱动器之间数据格式的转换及数据传送,控制驱动器的读/写操作。一个控制器可以控制一台或多台驱动器。

D.接口

主机和磁盘存储器之间的连接逻辑。

②硬盘的寻址信息

硬盘的寻址信息由硬盘驱动号、圆柱面号、磁头号(记录面号)、数据块号(或扇区号)以及交换量组成。

③磁盘容量

非格式化容量是指一个磁盘所能存储的总位数;格式化容量是指各扇区中数据区容量的总和。

计算公式分别如下:

非格式化容量=面数×(磁道数/面)×内圆周长×最大位密度

格式化容量=面数×(磁道数/面)×(扇区数/道)×(字节数/扇区)(2)光盘存储器

光盘存储器是采用聚焦激光束在盘式介质上非接触地记录高密度信息的新型存储装置。

根据性能和用途,光盘存储器可分为只读型光盘(CD-ROM)、只写一次型光盘(WORM)和可擦除型光盘。

光盘存储器的特点是记录密度高、存储容量大、采用非接触式读/写信息(光头距离光盘通常为2mm)、信息可长期保存(其寿命达10年以上)、采用多通道记录时数据传送率可超过200MB/s、制造成本低、对机械结构的精度要求不高、存取时间较长。

7.磁盘阵列技术

磁盘阵列是由多台磁盘存储器组成的一个快速、大容量、高可靠的外存子系统。现在常见的磁盘阵列称为廉价冗余磁盘阵列(Redundant Array of Independent Disk,RAID)。目前,常见的RAID如表1-3所示。

表1-3 廉价冗余磁盘阵列RAID级别说明RAID-0是一种不具备容错能力的磁盘阵列。由4个磁盘存储器组成的0级阵列,其平均故障间隔时间(MTBF)RAID-0是单个磁盘存储器的4分之一,但数据传输率是单个磁盘存储器的4倍RAID-1RAID-1是采用镜像容错改善可靠性的一种磁盘阵列RAID-2RAID-2是采用海明码进行错误检测的一种磁盘阵列RAID-3减少了用于检验的磁盘存储器的个数,从而提RAID-3高了磁盘阵列的有效容量。一般只有一个检验盘RAID-4是一种可独立地对组内各磁盘进行读/写的磁RAID-4盘阵列,该阵列也只用一个检验盘RAID-5是对RAID-4的一种改进,它不设置专门的检验RAID-5盘。同一个磁盘上既记录数据,也记录检验信息,这就解决了前面多个磁盘机争用一个检验盘的问题

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载