跳转至

第一章:计算机系统概论

1.1 计算机的分类

该节内容围绕计算机的分类展开,从不同角度介绍计算机分类方式,具体如下:

  • 按输入输出信号形式分类
    • 电子模拟计算机:采用模拟信号输入输出,通过模拟电压信号计算,数值由连续模拟量表示,运算过程连续。但因其精度和解题能力有限,应用范围较小 。
    • 电子数字计算机:用数字信号表示数值大小,按二进制位运算,计算过程不连续 。其具有精度高、数据存储量大、逻辑判断能力强等特点,是以近似人类“思维过程”工作,也被称为电脑,是现代广泛应用的计算机类型,也是习惯上所称的电子计算机 。
  • 早期按体系结构等分类:早期电子数字计算机依据体系结构、运算速度、结构规模、适用领域等,或根据体积、简易性、功率损耗等分为超级计算机、大型机、服务器、PC机和单片机等类型,其结构规模和性能指标依次递减 。1989年,IEEE科学巨型机委员会将计算机分为个人计算机、工作站、小型计算机、主机、小巨型计算机和巨型计算机6类 。但随着计算机技术发展,这种分类方式因无法适应技术变化而失去意义。
  • 按应用中心分类
    • 通用计算机:具有计算机标准形态,不专门针对某种应用,通过装配不同应用软件,可应用于社会各方面,适应性强,但牺牲了效率、速度和经济性 。
    • 专用计算机针对某一类特定任务设计,结构相对简单,主要以嵌入式计算机形式出现,隐藏于各种装置、产品和系统中。对特定应用场景而言,是最有效、最经济和最快速的计算机,但适应性差,一般不能用于设计目标以外场景 。

1.2 计算机的发展简史

1.2.1 计算机的五代变化

该节主要围绕计算机的发展历程及变化展开,从世界上第一台电子数字计算机讲起,介绍了计算机发展的五代变化以及摩尔定律等相关内容,具体如下:

  1. 第一台电子数字计算机:1946 年,世界上第一台电子数字计算机在美国宾夕法尼亚大学制成,其使用 18000 多个电子管,占地 170m²,重 30t,运算速度每秒 5000 次。虽有诸多不足,但奠定了电子计算机基础。
  2. 计算机的五代变化
    • 第一代(1946~1957 年)电子管计算机,运算速度每秒几千次至几万次,特点是体积庞大、成本高、可靠性低。此期间形成计算机基本体系和程序设计基本方法,数据处理机开始应用
    • 第二代(1958~1964 年)晶体管计算机,运算速度提升至每秒几万次至几十万次,可靠性提高,体积缩小,成本降低工业控制机开始应用
    • 第三代(1965~1971 年)中小规模集成电路计算机可靠性进一步提升,体积和成本进一步下降,运算速度达每秒几十万次至几百万次。出现机种多样化、生产系列化、使用系统化小型计算机开始出现
    • 第四代(1972~1990 年)大规模集成电路(LSI)和超大规模集成电路(VLSI)计算机可靠性、体积和成本方面进一步优化,运算速度提升到每秒 1000 万次至 1 亿次,由几片大规模集成电路组成的微型计算机开始出现
    • 第五代(1991 年开始)巨大规模集成电路(ULSI)计算机,运算速度达每秒 10 亿次以上,由一片巨大规模集成电路实现的单片计算机开始出现
  3. 集成电路技术与摩尔定律:计算机从第三代起与集成电路技术紧密相关,大规模、超大规模、巨大规模集成电路的元件放置数量不断增多。1965 年高登·摩尔提出摩尔定律,即芯片上的晶体管数量大约每年翻一番,1970 年减慢为每 18 个月翻一番。但随着半导体工艺发展,晶体管尺寸缩减接近物理极限,摩尔定律正走向终结,自 2015 年起单核处理器性能提升比例大幅降低。未来,基于量子、光子、碳基电子等技术的新型芯片可能打破限制,产生运算速度更快的计算机。

1.2.2 半导体存储器的发展

该节内容主要围绕半导体存储器的发展展开,介绍了从磁芯存储器到半导体存储器的发展历程,以及半导体存储器发展带来的影响和变化,具体如下:

  1. 磁芯存储器(20世纪50~60年代):当时所有计算机存储器由微小铁磁体环(磁芯)制成,每个磁芯直径约1mm,通过三条细导线穿过网格板放置在计算机内。磁芯的不同磁化方向代表不同数值,一个方向代表1,另一个方向代表0 。其优点是速度较快,读一位只需1μs,但也存在价格昂贵、体积大的问题,且读出是破坏性的,需要读出后立即重写数据的电路,更重要的是工艺复杂,甚至需手工制作
  2. 半导体存储器的出现(1970年)仙童半导体公司生产出第一个较大容量的半导体存储器,一块芯片相当于单个磁芯大小,却包含256位的存储器 。该芯片的读写是非破坏性的,且读写速度比磁芯快得多,读出一位只要70ns,不过价格比磁芯更高
  3. 半导体存储器的发展及影响(1974年及以后):1974年起,每位半导体存储器的价格开始低于磁芯。此后,存储器价格持续快速下跌,但存储密度不断增加 。这使得新机器在性能和成本上有了显著提升,变得更小、更快、存储容量更大、价格更便宜 。在不到10年的时间里,存储器技术与处理器技术的发展推动计算机进入个人计算机时代 。如今,半导体存储器单芯片的容量已从20世纪70年代的几KB提升至TB级,存储密度不断提高,同时每位半导体存储器的价格和存取时间都在下降

1.2.3 微处理器的发展

该节围绕微处理器的发展展开,以英特尔公司微处理器为例,介绍了微处理器从诞生到如今的发展历程及性能变化,具体如下:

  1. 微处理器的诞生:1971年,英特尔公司开发出Intel 4004,这是首个将CPU所有元件集成在同一块芯片内的产品,标志着微处理器诞生。它集成了2300个晶体管,能进行两个4位二进制数相加,还可通过重复相加完成乘法运算,虽按如今标准较简单,但为微处理器发展奠定基础。
  2. 微处理器的早期发展
    • 1972年,Intel 8008出现,是第一个8位微处理器,比Intel 4004复杂一倍
    • 1974年,Intel 8080诞生,是第一个通用微处理器,此前的Intel 4004和Intel 8008为特殊用途设计。Intel 8080同样是8位微处理器,与Intel 8008相比,速度更快,指令系统更丰富,寻址能力更强
  3. 后续发展阶段
    • 大约同一时期,16位微机被开发,但强大的通用16位微处理器到20世纪70年代末才出现,如Intel 8086
    • 1981年,贝尔实验室和HP公司开发出32位单片微处理器;1985年,Intel公司推出32位微处理器Intel 80386;1995年,Intel推出64位的Pentium Pro处理器
  4. 如今的微处理器通用处理器目前仍为64位字长,但性能和功能日新月异,处理器单芯片容纳的晶体管数量可达数百亿甚至上千亿个

1.2.4 国产处理器技术的发展历程

该节围绕国产处理器技术的发展历程展开,介绍了国产处理器技术的发展背景、当前的主要厂商及其产品特点、产业现状及发展前景,具体如下:

  1. 发展背景:中国电子计算机科研和应用始于20世纪50年代中后期,当时自主设计的计算机系统与国际水平差距不大,但因国际国内环境因素,国产计算机技术逐渐落后。全球计算技术生态长期被国外巨头把持,如“Wintel”联盟统治桌面通用计算领域,“A-A”联盟占据移动计算市场。从21世纪初,在国家产业政策和重点研发计划支持下,国产处理器技术开始追赶国际水平,一批设计单位和研究机构快速成长。
  2. 主要厂商及产品特点
    • 海光、兆芯海光信息技术股份有限公司和上海兆芯集成电路有限公司采用x86架构IP内核授权模式,产品性能强、产业生态壁垒低,但因依赖海外企业技术授权,自主可控风险偏高
    • 龙芯中科龙芯中科技术股份有限公司多年基于MIPS架构自主研发处理器,2021年推出自主LoongArch架构产品。龙芯处理器面向高端嵌入式、个人计算机、服务器和高性能计算等场景,在政企、安全、金融、能源等领域广泛应用。
    • 申威申威系列处理器最早基于Alpha架构开发,后过渡到自研指令集。在超算领域性能强大,搭载申威处理器的神威太湖之光超级计算机曾位列全球超算TOP500榜单第一名。
    • 飞腾天津飞腾信息技术有限公司的飞腾处理器由国防科技大学研究团队研发,采用Arm指令集,集成全自主研发的处理器内核,形成覆盖桌面、服务器和嵌入式等领域的完整产品线。
    • 华为鲲鹏华为旗下海思半导体有限公司的鲲鹏920处理器片上系统,是自主设计的高性能服务处理器片上系统,集成最多64个自研处理器内核,兼容ARMv8-A指令集。其集高性能、高吞吐率、高集成度和高能效于一身,通过优化设计解决单核算力问题,攻克芯片及单板可靠性难题,还集成多种芯片功能提升系统集成度,能效比超主流处理器30%。
  3. 产业现状及发展前景:当前以龙芯、兆芯、飞腾、鲲鹏等为代表的国产处理器已解决从无到有的问题,正从可用向好用进化,力求突破国外市场垄断和技术“卡脖子”问题。虽面临产业生态可控性差、生态小众、产品制造受限等短板,但已有不少产品实现国产替代,部分厂商技术在局部处于国际领先水平。在国际环境、产业政策、市场需求的驱动下,国内厂商不断突破,有望建立自主可控的信息产业体系。

1.3 计算机的硬件

数字计算机的主要组成结构.jpeg

1.3.1 硬件组成要素

该节以用算盘计算 \(y=ax+b–c\) 为例,类比阐述数字计算机的硬件组成要素,具体内容如下:

  1. 算盘计算过程:使用带横格且编有序号的纸记录原始数据(将 \(a、b、c、x\) 分别写在第 9、10、11、12 行)和解题步骤(每一步占一行,如第 1 行“取数 (9)→算盘” ,第 2 行“乘法 (12)→算盘” 等) ;算盘用于数据的算术运算;用来记录原始数据、解题步骤以及输出计算结果;通过脑和手控制整个计算过程,按步骤操作直至运算完成。
  2. 数字计算机硬件组成类比:电子数字计算机解题过程与算盘计算相似,不过由电子线路和设备自动完成。其中,运算器相当于算盘,负责数据的算术运算;存储器如同记录数据和步骤的纸,具备“记忆”功能,存储原始信息;输入设备输出设备类似于笔,分别用于将原始解题信息送入计算机以及显示运算结果;控制器则相当于人的大脑,能够自动控制整个计算过程 。 解题步骤和数据记录在横格纸上.jpg

1.3.2 运算器

该节围绕运算器及二进制数相关内容展开,具体如下:

  1. 运算器概述:运算器如同由电子线路构成的算盘,其主要功能是进行加、减、乘、除等算术运算,还能进行逻辑运算,通常称为ALU(算术逻辑运算部件)
  2. 计算机采用二进制数的原因:人们习惯十进制数运算,但考虑到电子器件特性,计算机通常采用二进制数。二进制数以2为基数计数,“逢二进一”,只有0和1两个数字,1和0可用电压高低、脉冲有无来表示,这种表示在电子器件中容易实现且设备最省
  3. 二进制数的运算规律:二进制数运算规律简单,加法:0 + 0 = 0,0 + 1 = 1,1 + 0 = 1,1 + 1 = 10(等号右边的“1”表示向上一位的进位);乘法:0 × 0 = 0,0 × 1 = 0,1 × 0 = 0,1 × 1 = 1 。正是因为其运算规律简单,在电子器件中比较容易实现,所以在电子数字计算机中广泛采用
  4. 二进制数的位数与运算器长度二进制数和十进制数一样,运算中数的位数越多,计算精度越高,理论上数的位数可以任意多。但位数越多,所需电子器件也越多,所以计算机的运算器长度一般是8位、16位、32位、64位

1.3.3 存储器

该节围绕存储器展开,介绍了其功能、存储方式、结构、容量、分类等内容,具体如下:

  1. 存储器的功能:存储器用于保存或“记忆”解题的原始数据和解题步骤,在运算前需通过输入设备将数据和步骤以二进制代码(0或1表示)形式存入其中 。
  2. 存储器的存储方式:采用半导体器件存储二进制代码。一个半导体触发器可记忆一个二进制代码,存储一个16位二进制数就需要16个触发器,这16个触发器组成一个存储单元。存储器由众多存储单元构成,每个存储单元都有地址编号存数或取数时需按地址寻找对应存储单元
  3. 存储器的容量存储器所有存储单元的总数称为存储容量,常用单位有KB、MB、GB等,如64KB、128MB 。存储容量越大,计算机能记忆和储存的信息越多。
  4. 存储器的分类
    • 按性能与用途分:分为内存储器(内存,memory)外存储器(外存或辅存,storage)内存由半导体器件构成,访问速度快、容量小、成本高外存多由磁盘、磁带、光盘等存储介质或半导体介质的固态外存储器构成,速度相对较慢,但容量大、成本低 。
    • 内存进一步细分:在高性能计算机系统中,内存又可分为主存cache(高速缓冲存储器)cache容量更小、速度更快,用于保存主存中当前正在访问信息的副本,以提升数据访问效率 。此外,狭义的存储器仅指内存储器

1.3.4 控制器

该节围绕控制器展开,详细介绍其功能、指令相关内容、基本任务及指令流和数据流等,具体如下:

  1. 控制器的功能:控制器是计算机中发号施令的部件,控制各部件有序工作。其任务是从内存取出解题步骤(程序)加以分析,然后执行操作。
  2. 计算程序与指令
    • 计算程序:运算器只能完成基本运算,复杂计算需化为基本操作(指令),解算某一问题的一串指令序列称为计算程序(程序) 。程序和数据需事先按地址存入存储器,指令通常按顺序执行。
    • 指令的形式:指令内容由操作码地址码组成。操作码指出操作种类(如加、减等),用二进制代码编码;地址码表示数据的取存单元 。指令数码化后可与数据一样存入存储器,存储程序并按地址顺序执行是冯·诺依曼型计算机的设计思想,也是机器自动化工作的关键。一台计算机的基本指令构成指令系统,它是衡量计算机性能的重要标志 。
  3. 控制器的基本任务:控制器按程序指令序列,先从存储器取一条指令到控制器,经译码器分析判别操作码后,根据指令性质执行指令。接着取第二条指令执行,如此循环。取指令的时间为取指周期,执行指令的时间为执行周期,控制器交替处于这两个周期中。指令计数器在每取出一条指令后加1,以便取下一条指令。在计算机系统中,运算器和控制器组合为中央处理器(CPU)
  4. 指令流和数据流:计算机最小信息单位是“位(bit)”,工作时常用“字节(B)”和“字(W)”等单位,字长是组成一个字的二进制位数。计算机字可代表指令或数据,分别称为指令字数据字取指周期从内存读出的信息流是指令流,流向控制器;执行周期从内存读出的信息流是数据流,流向运算器 。部分指令执行时需两次访问内存,分别取指令和取数据。

1.3.5 适配器与输入/输出设备

该节围绕适配器与输入/输出设备展开,介绍了输入/输出设备的定义、种类、作用、与主机的连接方式,以及适配器和总线的相关内容,具体如下:

  1. 输入/输出设备的定义与统称:计算机的输入/输出设备通常统称为外围设备(外设)或 I/O 设备
  2. 输入设备
    • 常用设备:包括键盘、鼠标、麦克风、数字扫描仪及模数转换器等
    • 作用:将人们熟悉的信息形式转换为机器内部能接收和识别的二进制信息形式
    • 更便捷设备:具备“会看”和“会听”功能,能把人们用文字或语言表达的问题直接送计算机内部处理,借助OCR(光学字符识别)设备和语音识别技术实现,且相关系统已普遍应用。
  3. 输出设备
    • 作用:把计算机处理结果转换为人或其他机器设备能接收和识别的信息形式,实现“会写”和“会讲”功能 。
    • 实现方式:“会写”通过打印机、绘图仪、显示器、投影仪等设备实现;“会讲”由音箱等多媒体设备实现。
  4. 输入/输出设备与主机的连接:输入/输出设备种类多、速度各异,有高速低速之分,有机电结构和全电子式之别,不直接与高速主机相连,而是通过适配器部件与主机联系
  5. 适配器
    • 作用:相当于转换器,保证外围设备按计算机系统特性要求的形式发送或接收信息 。
    • 意义:典型计算机系统有多种外围设备,对应多种适配器,使外围设备通过系统总线与主机联系,让主机和外围设备并行协调工作
  6. 总线系统总线是构成计算机系统的骨架,是多个系统部件间数据传送的公共通道,借助它计算机在各系统部件间实现传送地址、数据和控制信息的操作
  7. 总结目的:对计算机硬件组成的概述,目的是让读者对计算机整体有粗略印象,为后续学习各章提供便利。

1.4 计算机的软件

1.4.1 软件的组成与分类

该节内容围绕计算机软件的组成与分类展开,具体如下:

  • 硬件与软件的概念:现代电子计算机由运算器、存储器等硬件设备组成,这些设备由元器件构成,是有形物体。而计算机要实现高速自动运算,需要计算程序,因其无形,被称为软件。以算盘为例,算盘是硬件,运算法则和解题步骤则是软件。
  • 软件系统的定义:利用计算机进行计算、控制等工作时,需要各种用途的程序,用于一台计算机的各种程序统称为这台计算机的程序或软件系统
  • 软件的分类
    • 系统软件:用于简化程序设计和使用方法,提高计算机使用效率,发挥和扩大计算机功能及用途 。主要包括服务性程序(如诊断、排错、练习程序)、编程语言程序(汇编、编译、解释程序)、操作系统以及数据库管理系统
    • 应用软件:是用户为解决特定问题而编制的软件 ,如工程设计、数据处理、自动控制、企业管理等程序。随着计算机应用的普及,应用软件的种类日益丰富。

1.4.2 软件的发展演变

该节以系统程序为例,介绍了计算机软件的发展演变过程,具体内容如下:

  1. 手编程序阶段:早期计算机直接使用机器语言(机器指令代码)编写程序(手编程序),这种程序计算机可直接“识别”执行,也叫目的程序。但编写过程繁琐,耗费人力时间且易出错,严重限制计算机使用
  2. 汇编语言阶段:为简化编程、提高机器使用效率,汇编语言(用约定文字、符号和数字按规定格式表示指令的符号语言)出现,它便于记忆,但计算机无法直接识别。汇编器作为“翻译员”,能将汇编语言程序翻译成机器语言目的程序,实现程序设计部分自动化 。不过,汇编语言仍是初级语言且面向具体机器,使用时需熟悉对应机器指令系统,仍存在不便。
  3. 算法语言阶段:为进一步实现程序自动化、方便程序交流,算法语言(接近数学语言,规定基本符号及程序构成规则)诞生 。其直观通用,与具体机器无关,便于学习掌握和推广,如BASIC、FORTRAN、C等都是有影响的算法语言。用算法语言编写的源程序需编译程序或编译器翻译成机器语言目的程序后,计算机才能执行 。
  4. 操作系统阶段:随着计算机技术发展,原始操作方式不再适应,用户直接使用大型机器存在效率低、不方便等问题,计算机也常处于闲置状态。为解决这些问题,操作系统出现,它是管理计算机资源、自动调度用户作业程序,使多个用户有效共用计算机系统的软件系统 ,能大幅提高计算机使用效率、方便用户使用,常见类型有批处理、分时、实时操作系统等。
  5. 数据库管理系统阶段:随着计算机在信息处理等领域的应用发展,为方便处理和检索大量数据及表格,数据库出现,它是有组织、动态存储大量相关数据,方便多用户访问的软、硬件资源系统。数据库与数据库管理软件组成数据库管理系统,目前许多计算机都配有该系统。
  6. 未来发展趋势:目前高级语言编写程序复杂、开发成本高,计算机语言未来将朝着标准化、积木化、产品化方向发展,最终目标是向自然语言演进,实现自动生成程序

1.5 计算机系统性能评价

1.5.1 计算机的性能指标

该节围绕计算机的性能指标展开,从处理能力、可用性等方面介绍衡量计算机性能的多种指标,并通过例题说明相关计算,具体如下:

  1. 计算机性能的衡量方面:考查计算机性能通常涉及处理能力和可用性两个方面。
  2. 处理能力相关指标
    • 吞吐量、响应时间和利用率吞吐量表征计算机在某一时间间隔内处理的信息量;响应时间是从输入有效到系统产生响应的时间度量;利用率指系统在给定时间间隔内被实际使用的时间比率,资源利用率高则吞吐量越大。
    • 处理器字长和系统主频处理器字长指处理机一次能完成的二进制运算位数,字长越长精度越高;系统主频是处理器单位时间内发出的脉冲数目,单脉冲时间长度为CPU时钟周期(主频的倒数),主频很大程度上决定计算机运行速度。
    • CPU执行时间:计算一段程序的CPU执行时间,等于执行该程序所需的所有CPU时钟周期数CPU时钟周期长的乘积,即CPU执行时间=CPU时钟周期数×CPU时钟周期长
    • 每条指令所需周期数(CPI)CPI可指某类特定指令或一段程序中所有指令的平均时钟周期数。当各条指令执行周期数不同时,CPI等于执行某段程序所需的CPU时钟周期数除以指令条数
    • 平均运算速度:为确切估算计算机处理能力,根据不同类型指令在典型计算中出现的比率,对每种指令执行时间加权求和,得到运算速度统计平均值。平均运算速度通常表示为单位时间内可执行的指令条数,定点运算用MIPS(百万指令每秒)表示,浮点运算用FLOPS(浮点指令每秒)衡量,浮点运算常用MFLOPS、GFLOPS、TFLOPS或PFLOPS为单位。
  3. 综合指标考量:一台计算机的性能由多项技术指标综合确定,不能片面强调某一项指标,系统可靠性和可维护性等参数也是衡量性能的指标。
  4. 例题计算
    • 例1.1:给出给定程序中tCPU、CPI、MIPS、NC四种参数的表达式,涉及指令总数、CPU时间、时钟周期、时钟频率、CPU时钟周期数等变量的关系计算。
    • 例1.2:通过一台50MHz处理器执行标准测试程序的混合指令数和相应平均时钟周期数,计算有效CPI、MIPS速率、处理器程序执行时间tCPU,展示了相关指标的具体计算过程和应用。

1.5.2 计算机系统的测试基准

该节内容围绕计算机系统的测试基准展开,介绍了测试基准的作用、常见基准测试程序、不同测试基准的侧重点,以及 SPEC CPU 测试基准的详细情况,具体如下:

  1. 测试基准的作用:计算机性能指标可衡量处理能力,但真实评价计算机处理能力通常需使用测试基准工具。当用户难以建立真实业务应用的压力测试环境时,借助测试基准工具测算响应时间、吞吐量等指标,能相对客观地评估计算机性能 。基准测试程序集成典型负载,是性能度量的有力工具,通过有代表性的程序评估系统性能,更能代表用户负载状况,以程序运行时间或单位时间内完成的操作数量为度量,且会给出系统分数(通常是运行时间的函数)。
  2. 常见的性能测试基准:在计算机工业标准基准测试体系中,有众多性能测试基准,如TPC、SPEC、SAP SD、Linpack 和 HPCC 等,可从不同层面给出量化参考评价指标,且不同测试基准侧重点不同。例如,TPC 侧重在线处理和数据库查询能力Linpack 侧重于系统浮点峰值运算能力测试,是全球超级计算机 500 强评测基准STREAM 关注系统数据访问能力定量评价SPEC CPU 测试基准和 SPEC Web 测试基准分别针对单 CPU 性能及作业吞吐能力、Web 服务器性能
  3. SPEC CPU 测试基准
    • 组织介绍SPEC(标准性能评估机构)是由超 60 家世界知名计算机厂商支持的全球性非营利性第三方应用性能基准测试组织,旨在确立和认定服务器应用性能评估标准。
    • 测试基准特点SPEC CPU 测试基准体系针对运算密集工作负载的计算机系统性能度量,支持多系统比较,重点关注处理器、存储子系统和编译器,不涉及硬盘、输入/输出和网络等部件。
    • 版本及测试项:经历 SPEC CPU 92、SPEC CPU 95 等多个版本。2006 版包含针对定点数运算的 SPECint 测试(12 个基准测试项,使用 C 或 C++语言,不使用 CPU 浮点运算单元)针对浮点数运算的 SPECfp 测试(19 个基准测试项,使用 FORTRAN 77/90 语言和 C 语言)
    • 测试方式:SPEC 在官网发布 CPU 测试基准的测试程序源代码,用户编译生成可执行代码后完成测试,可实现跨平台测试,且大部分源代码来源于真实应用场景和开源项目。
    • 实例:以华为鲲鹏 920 - 6426 处理器(2.6GHz,64 核)为例,运行 SPECint_rate_base2006 Benchmark 评估程序得分超 930,比同档次主流 CPU 性能高 25%;48 核的鲲鹏 920 - 4826 处理器在单位功耗 SPECint 性能测评分中高达 5.03,体现了国产高性能处理器在多 CPU 系统任务处理能力和系统能效方面的优势 。

1.6 计算机系统的层次结构

结构.jpeg

1.6.1 冯诺依曼体系结构

该节内容围绕冯·诺依曼体系结构展开,介绍了其提出背景、基本原则、基本特点、核心思想及对现代计算机的影响,具体如下:

  1. 提出背景:1945 年 6 月,美籍匈牙利人约翰·冯·诺依曼在《EDVAC 报告书的第一份草案》中提出将存储设备与中央处理器分开的存储程序概念,依此概念设计的计算机称冯·诺依曼计算机,其理论模型构成当今主流计算机结构框架,该结构参考模型也被称为冯·诺依曼体系结构、冯·诺依曼模型或普林斯顿结构
  2. 基本原则:冯·诺依曼体系结构提出设计制造计算机的三个基本原则,即采用二进制形式表示数据和指令、采用存储程序方式以及由五大部件组成计算机系统
  3. 基本特点
    • 数据和指令表示:在机器内部,指令和数据均以二进制码表示
    • 计算机组成部件及功能
      • 运算器:能进行算术和逻辑运算以及附加操作
      • 控制器:能自动执行指令
      • 存储器(内存):不仅能存放数据,也能存放指令,二者都是由 0 和 1 组成的代码序列,对存储器本身无区别 。
      • 输入/输出设备:保证人与计算机的相互通信
    • 指令组成:指令由操作码地址码组成 。
    • 存储程序方式:采用存储程序方式,指令序列在存储器中按执行顺序存放,由程序(指令)计数器 PC 指明要执行的指令所在的单元地址,一般按顺序递增。事先编制好的程序(包含指令和数据)被存放在同一存储器中,计算机能在无人干预下自动完成逐条取出指令和执行指令的任务
  4. 核心思想:冯·诺依曼体系结构的核心是存储程序。因存储设备与中央处理器分离,可通过修改存储器中的指令改变计算机功能,而无需更改机器线路、结构或重新设计计算机,使计算机真正成为可编程机器
  5. 对现代计算机的影响:冯·诺依曼体系结构奠定了现代计算机的基础,目前大部分计算机仍保持或基本保持该体系结构,虽计算机工作机制不断改进,但未从根本上突破该体系结构 。

1.6.2 哈佛结构和改进的哈佛结构

该节围绕哈佛结构和改进的哈佛结构展开,介绍了冯·诺依曼体系结构的不足,引出哈佛结构和改进的哈佛结构,并阐述了它们的特点、优缺点及应用,具体如下:

  1. 冯·诺依曼体系结构的不足:冯·诺依曼体系结构将程序指令和数据存于同一存储器,取指令和存取操作数在同一系统总线通过分时复用方式进行。当计算机系统想并行完成取指令和执行指令操作以提升性能时,内存储器和系统总线会成为数据传输瓶颈
  2. 哈佛结构
    • 结构特点将存放程序指令和操作数据的存储区域分开,有独立的程序存储器空间和数据存储器空间,各自独立编址并使用独立系统总线,有4套总线(程序数据总线、程序地址总线、数据数据总线、数据地址总线)
    • 性能优势属于并行体系结构,可让取指令(访问程序存储器)和存取操作数(访问数据存储器)在同一时间并行执行,提高数据吞吐率
    • 缺点以提升硬件复杂度为代价
  3. 改进的哈佛结构
    • 结构特点仍使用分离的程序存储器和数据存储器,但将4套总线合并为2套,即地址总线用于程序和操作数的地址传输,数据总线用于程序和操作数的数据传输,2套总线由程序存储器和数据存储器分时复用
  4. 应用情况冯·诺依曼体系结构、哈佛结构和改进的哈佛结构在现有的计算机系统中都有应用,采用哪种结构取决于性能和成本等因素的平衡 。例如,在现代高性能计算机系统中,很多将冯·诺依曼体系结构和哈佛结构混合使用,cache采用哈佛结构,主存采用冯·诺依曼体系结构

1.6.3 非诺依曼化

该节围绕非诺依曼化展开,介绍了冯·诺依曼体系结构的局限,引出非诺依曼化概念,阐述了其研究方向及现状,具体如下:

  1. 冯·诺依曼体系结构的局限:冯·诺依曼体系结构奠定现代计算机运行基础,但也制约了计算机发展。哈佛结构虽性能提升,但未完全突破该体系架构。冯·诺依曼机工作方式是串行顺序处理的控制流(指令流)驱动方式,即按指令顺序取指令、存取数据,即使数据准备好也需逐条执行指令,数据流被动被调用处理
  2. 非诺依曼化的概念:在计算机发展中,尝试突破传统冯·诺依曼体系结构束缚的努力被称为非诺依曼化 。目前非诺依曼化计算机未广泛应用,但相关研究正朝不同方向推进。
  3. 非诺依曼化的研究方向
    • 在冯·诺依曼体系结构内改造:在该体系结构范畴内对传统诺依曼机改造以支持并行化处理,如采用多个处理部件形成流水线,利用时间重叠提高处理效率;或由多个处理器构成系统,形成单指令流多数据流或多指令流多数据流架构支持并行算法结构
    • 改变控制流驱动方式:尝试从根本上改变冯·诺依曼机的控制流驱动方式,设计数据流驱动的计算机,使数据准备好时相关指令可并行执行
    • 重新定义基础硬件:随着摩尔定律走向终结,从基础物理、材料科学视角重新定义计算机基础硬件,跳出电子范畴,以其他物质作为信息载体和计算部件 。例如,光计算机、量子计算机、生物计算机等是当前计算机基础硬件发展的可能方向

1.6.4 多级组成的计算机系统

层次结构.jpeg 该节内容主要介绍了多级组成的计算机系统,涵盖系统的层级构成、各级功能特点以及分级设计的意义,具体如下:

  • 计算机系统的层级构成:计算机是由复杂硬件和软件结合而成的整体,通常由五个以上不同的级组成,且每一级都能进行程序设计
  • 各级的功能与特点
    • 第1级:微程序设计级(逻辑电路级):属于实在的硬件级,由硬件直接执行。若应用程序直接用微指令编写,可在该级运行 。
    • 第2级:一般机器级(机器语言级):同样为硬件级,通过微程序解释机器指令系统
    • 第3级:操作系统级:由操作系统程序实现,指令由机器指令和广义指令组成,广义指令是操作系统定义和解释的软件指令,因此该级也被称为混合级
    • 第4级:汇编语言级:为程序人员提供符号形式语言,降低程序编写复杂性,由汇编程序支持和执行。应用程序若采用汇编语言编写,机器必须具备该级功能;反之,则可省略 。
    • 第5级:高级语言级面向用户,便于用户编写应用程序,由各种高级语言编译程序支持和执行
  • 各级之间的关系与支持:除第1级外,其他各级都得到下级的支持,同时也受到运行在下面各级上程序的支持 。其中,第1 - 3级编写程序采用二进制数字化语言,便于机器执行和解释;第4、5级采用符号语言,以英文字母和符号表示程序,方便不了解硬件的用户使用计算机。
  • 分级设计的意义:采用多级组成计算机的概念和技术,为理解计算机的组成提供了良好的结构和体制,并且从分级观点设计计算机,有助于保证产生良好的系统结构

1.6.5 软件与硬件的逻辑等价性

该节围绕软件与硬件的逻辑等价性展开,主要内容如下:

  1. 软硬件界限模糊的现象:随着大规模集成电路技术发展和软件硬化趋势,计算机系统软硬件界限变得模糊。因为任何操作和指令的执行,既可用软件实现,也可用硬件实现。某机器功能采用硬件还是软件方案,取决于器件价格、速度、可靠性、存储容量和变更周期等因素
  2. 硬件功能范围的扩大:研制计算机时,设计者需明确各级任务及软硬件使用情况。早期在一般机器级由软件实现的操作(如整数乘除法指令、浮点运算指令等),如今大多由硬件完成。大规模集成电路和计算机系统结构发展,使实体硬件机功能范围不断扩大,第一级和第二级边界向更高级扩展。一方面,大容量、低价、小体积、可改写的只读存储器为软件固化提供条件,出现固件,其功能是软件,形态是硬件;另一方面,硅单晶芯片上制作复杂逻辑电路成为可能,为指令功能扩展奠定物质基础,原本软件实现的功能可由硬件直接解释执行,甚至出现面向高级语言的计算机,能直接执行高级语言语句而无需编译。
  3. 软硬件的特点与协同:计算机系统执行软件依靠中央处理器执行指令,受硬件限制,软件虽编程灵活、便于修改、成本低,但指令串行执行,处理重复任务效率低;硬件速度快,适合并行处理。因此,计算机系统需实现软硬件协同,以发挥各自优势。
  4. 硬件加速技术及应用:近年来,很多计算机系统采用硬件加速技术提升性能,通过增加硬件加速协处理器(专门针对特定功能设计优化,可与中央处理器并行工作),以硬件复杂度换取性能大幅提升。硬件加速器不仅能高速完成特定计算处理,还能释放中央处理器处理其他任务。例如,华为鲲鹏920处理器片上系统设计多种自研硬件加速引擎(加密算法加速引擎、SSL加速引擎、压缩/解压缩加速引擎等),通过队列管理模块与软件交互,助力上层应用系统实现大数据应用、Web应用及数据加密等多种应用场景。

1.6.6 计算机系统结构、计算机组成与计算机实现

该节围绕计算机系统结构、计算机组成与计算机实现展开,介绍了这三个术语的含义、关注视角及相互关系,具体如下:

  1. 概念总述:在研究计算机硬件系统时,常涉及计算机组成、计算机系统结构与计算机实现这三个相互关联的术语,是观察计算机组成的不同角度。
  2. 计算机组成:也叫计算机组织,指计算机硬件系统的逻辑实现,涵盖构成计算机系统的各操作部件、工作原理、逻辑实现、设计方法以及连接各部件成整机的方法,像各种控制信号、计算机和外设的接口等都属于其范畴,是计算机硬件设计者观察计算机的视角。
  3. 计算机系统结构:也称计算机体系结构、计算机结构,表征计算机系统的硬件系统概念结构、功能特性和系统属性,即硬件实现的功能以及为软件提供的硬件支持。系统程序员和用汇编语言编写程序的用户更关心其功能特性,特别是从硬件与软件交界面看到的硬件功能特性,例如计算机系统的指令系统、各种数据类型所占的比特数、I/O机制、内存的寻址技术等。
  4. 计算机实现:指计算机组成的物理实现,关注处理器、主存等部件的物理结构,器件的集成度、速度和信号,模块和插件的划分与连接,乃至电源、冷却、装配等技术
  5. 三者关系计算机系统结构是在计算机系统的软、硬件界面上看到的系统概念结构与功能特性;计算机组成是计算机系统结构的逻辑实现;计算机实现是计算机组成的物理实现。三者观察计算机的侧重点不同,但又明显相互关联。