计算机系统结构发展历程及未来展望
计算机科学的发展

计算机科学的发展随着信息时代的到来,计算机科学逐渐成为人们生活中不可或缺的一部分。
计算机科学的发展,推动了社会科技发展进程和人类文明进步。
本文将就计算机领域的发展历程和未来展望进行探讨。
一、计算机科学的起源计算机科学起源于20世纪初的数学领域,随着科学技术的不断进步,人们开始思考如何将计算机技术应用到实际生产和科研当中。
1945年,由冯·诺伊曼提出的存储程序概念,奠定了现代计算机体系结构的基础。
随着计算机体积的不断缩小和性能的迅速提升,计算机科学开始迎来大发展,计算机已经成为了科技领域的核心。
二、计算机科学的关键技术现代计算机系统由一系列计算单元组成,而这些单元的不断升级优化,是计算机科学发展的核心。
计算机科学中的重要关键技术包括:1.芯片制造技术:芯片是计算机系统的核心部分,它被视为信息科技领域的晶片,决定了计算机的速度和性能等重要指标。
2.软件开发技术:软件是计算机系统的灵魂所在,良好的软件开发技术是保证计算机应用质量和效率的重要基础。
3.网络技术:现代社会大量依赖互联网和网络应用,网络技术的发展是保障社会信息交流和交流的关键。
三、计算机应用领域的拓展随着计算机科学技术的不断升级,计算机应用领域也在不断拓展,不仅涵盖了科学技术领域,也深入到了商业、文化、娱乐和社交等各个方面。
计算机科学应用领域的主要方向包括:1.信息技术:网络技术的发展和智能化系统的不断升级,大大促进了信息技术的发展,涉及到信息存储、检索、处理等方面,成为现代社会信息化进程的重要组成部分。
2.数字娱乐:游戏、音乐、电影等数字娱乐产品的不断升级和拓展,成为人们生活中不可或缺的一部分。
随着互联网的普及,数码媒体市场正在迅速扩张,其中电子阅读和数字音乐市场更是增长迅猛。
3.智能家居:智能家居通过网络技术的应用,将家庭中的各种电器、设施连接在一起,实现智能化控制,让家庭生活更加便捷舒适。
四、计算机科学的未来展望计算机科学的未来展望,将会围绕着人工智能、量子计算和生物计算等领域展开。
未来计算机系统展望

史 自计算机 的发 明 日, . 冯 诺依曼结 构的计算机系统一直
2 未来计算机 系统
.
在以摩尔定 律飞速发展 , 集成 电路的密度越来越高 , 计算机 的
运行速度越来越快 , 操作 系统越做越 庞大。摩尔定律 有其极 限, 未来 的计算机系统到底应该是个什么样子 , 恐怕也 只有 到
了未 来 人 们 才 知道 , 人 类 最 可 贵 的是 丰 富 的想 象 力 。人 们 但 正 在 进 行 除 硅 晶 体 以外 的其 他 材 料 为 基 础 的 计算 机 系 统 的研
2 1 系统设想 .
笔者对未 来计算机 系统的基本设 想如 图 2
所 示 。其 中主 控 机 同 附 属 子 系 统 之 问 通 过 统 一 接 口相 互 连
3 16 审计 策 略 . . 审 计 是 用 来 记 录 以 下 事 件 : 个 用 户 访 哪
防火墙技术作为 目前用来 实现 网络安全措施的一种重要 手段 , 它主要用来拒绝未经授权的用户存 取敏感数据 , 同时允 许用户不受阻碍地访问网络资 源, 如果 使用 得当 , 可以在很大 程度上提高 网络安全性能 , 但是没有 一种技术 可以百分 之百 解决 网络上 的信息安全问题 , 比如 防火墙虽然 能对外部 网络 的攻击进行有效的防护 , 但对来 自内部网络 的攻 击却无 能为
体 框 架 内 , 胆 对 计算 机 系统 的 发展 提 出一 些 展 望 。 斗
2 2 1 系统是简单 的 图 2的计算 机系统 的简单 性体现在 ..
软 硬 件 方 面 。硬 件 方 面 , 口规 范 统 一 , 规 范 包 含 物理 连 接 接 该
1 当 代 计 算 机 系统
机系统是个紧耦 合系统 , 系统 的各个部分相互依赖 , 附属设 各 备不能脱离主机系统 的控制而独立完成某种任务。应用软 件 依附于操作 系统 , 很难作到 跨平 台, 同样 , 硬件的驱动 程序也
计算机体系结构的发展与趋势

计算机体系结构的发展与趋势计算机体系结构是计算机系统的基础架构,它定义了计算机硬件和软件的设计方案。
它决定了计算机系统的性能、可靠性、可扩展性和成本。
随着信息技术的发展,计算机体系结构也在不断地变化和更新。
本文将探讨计算机体系结构的发展历程和未来的趋势。
1. 单处理器时代早期的计算机系统采用单处理器结构,即计算机中只有一个中央处理器(CPU)来处理所有的任务。
CPU是整个计算机系统的核心,它执行指令、控制数据流和管理系统资源。
单处理器结构的计算机系统主要用于科学计算和数据处理,它们的性能和可靠性较低,应用场景有限。
2. 多处理器时代随着计算机技术的进步,多处理器系统逐渐出现。
多处理器系统是指一台计算机中拥有多个处理器,它们可以同时处理多个任务,提高计算机系统的性能和可靠性。
多处理器系统有两种架构模式:对称多处理(SMP)和非对称多处理(ASMP)。
SMP系统中所有的处理器都共享系统资源,它们之间没有主从关系。
ASMP系统中有一个主处理器和多个从处理器,主处理器控制整个系统、调度任务和管理系统资源,从处理器负责执行任务。
多处理器系统可以分为两种类型:紧耦合(CC-NUMA)和松耦合(SC-NUMA)。
CC-NUMA系统中处理器、内存和I/O设备直接连接在同一总线上,系统吞吐量较高。
SC-NUMA系统中各个处理器、内存和I/O设备通过网络相互连接,系统扩展性较好。
3. 分布式计算时代分布式计算是指在多个计算机之间分配任务、共享资源和协同工作,实现计算机系统的集群化和分布式。
分布式计算将多个计算机集成到一个大型计算机系统中,具有强大的计算能力和扩展性。
分布式计算系统可以由多台计算机组成,这些计算机之间可以通过网络进行通信和数据共享。
分布式计算是互联网技术的基础,它在大数据处理、科学计算、人工智能等领域得到广泛应用。
分布式计算系统的体系结构复杂,需要高度的管理和维护,其中包括负载均衡、故障恢复、数据管理等方面的问题。
计算机体系结构的发展历程与趋势

计算机体系结构的发展历程与趋势计算机体系结构是指计算机硬件和软件之间的相互关系以及计算机内部各个组件之间的组织方式。
它决定了计算机的性能、可扩展性、并行性和功耗等关键特性。
计算机体系结构的发展历程经历了几个重要的阶段,而未来的趋势又将如何演变呢?在计算机体系结构的发展历程中,最早的计算机体系结构是冯·诺伊曼体系结构。
冯·诺伊曼体系结构是由冯·诺伊曼教授在20世纪40年代提出的,它以存储程序的概念为基础,将指令和数据存储在同一块存储器中,通过指令序列的控制来实现计算和数据处理。
冯·诺伊曼体系结构的提出标志着计算机体系结构的重要转折点,它为后来的计算机架构奠定了基础。
随着计算机技术和应用的不断发展,计算机体系结构也不断演化。
20世纪的60年代至70年代,计算机体系结构经历了从单核到多核、从小型机到大型机的发展阶段。
这个时期,计算机的处理性能和规模都得到了大幅增加,计算机系统逐渐进入大规模集成电路时代。
此外,存储器层次结构和缓存技术的引入提高了计算机的性能。
进入20世纪80年代,个人计算机开始流行起来,微处理器技术得到了飞速发展。
此时,计算机体系结构逐渐向着更加复杂和多样化的方向发展。
计算机体系结构设计开始注重并行计算和分布式计算,以提高计算机的并行性和处理效率。
同时,存储器容量的不断增加和存储技术的改进,使得计算机能够处理更加复杂和庞大的数据。
到了21世纪,计算机体系结构的发展趋势变得更加多样化和个性化。
首先,多核处理器和超线程技术的应用使得计算机能够同时处理多个任务和线程,提高了计算机的并行性和计算能力。
其次,计算机体系结构开始注重能效和功耗问题,提出了众多节能技术和功耗管理策略。
此外,云计算、物联网和人工智能等新兴应用的兴起,也对计算机体系结构提出了新的挑战和需求。
未来计算机体系结构的发展趋势将面临更多的挑战和机遇。
首先,人工智能的飞速发展对计算机计算能力和存储容量提出了更高的要求。
微型计算机的发展、现状及趋势

微型计算机的发展、现状及趋势摘要:微机是电⼦计算机的⼀种,是根据其性能指标分类称其为即微型计算机。
它由微处理机(核⼼)、存储⽚、输⼊和输出⽚、系统总线等组成。
它的特点是体积⼩、灵活性⼤、价格便宜、使⽤⽅便。
20世纪80年代以来,微型计算机的类型越来越多,体积越来越⼩,功能越来越强。
关键字:微型计算机发展现状趋势1微机发展的标志——CPU的发展历程.⼀、第⼀代(1971~1973):4位或低档8位微处理器和微型机代表产品是美国Intel公司⾸先的4004微处理器以及由它组成的MCS-4微型计算机(集成度为1200晶体管/⽚)。
随后⼜制成8008微处理器及由它组成的MCS-8微型计算机。
第⼀代微型机就采⽤了PMOS⼯艺,基本指令时间约为10~20µS,字长4位或8位,他的特点是:指令系统⽐较简单,运算功能较差,速度较慢,系统结构仍然停留在台式计算机的⽔平上,软件主要采⽤机器语⾔或简单的汇编语⾔,其价格低廉。
⼆、第⼆代(1974~1978):中档的8位微处理器和微型机其间⼜分为两个阶段,1973-1978年为典型的第⼆代,以美国Intel公司的80和Motorola公司的MC6800为代表,集成度提⾼1~2倍,(Intel80集成度为4900管/⽚),运算速度提⾼了⼀个数量级。
1976-1978年为⾼档的8位微型计算机和8位单⽚微型计算机阶段,称之为⼆代半。
⾼档8位微处理器,以美国ZILOG公司的Z80和Intel公司的8085为代表,集成度和速度都⽐典型的第⼆代提⾼了⼀倍以上(Intel8085集成度为9000管/⽚)。
8位单⽚微型机以Intel 集成度为9000管/⽚等为代表,它们主要⽤于控制和智能仪器。
总的来说,第⼆代微型机的特点是采⽤NMOS⼯艺,集成度提⾼1~4倍,运算速度提⾼10~15倍,基本指令执⾏时间约为1~2µS,指令系统⽐较完善,已具有典型的计算机系统结构以及中断、DMA等控制功能,寻址能⼒也有所增强,软件除采⽤汇编语⾔外,还配有BASIC,FORTRAN,PL/M等⾼级语⾔及其相应的解释程序和编译程序,并在后期开始配上操作系统。
计算机体系结构的发展与趋势

需要解决相关问题
流水线技术需要解决资源冲突、数 据冒险和控制冒险等问题,以确保 流水线的顺畅运行。
指令集架构(ISA)
定义
分类
指令集架构是指计算机硬件和软件之 间的接口规范,定义了计算机可以执 行的所有指令的集合以及这些指令的 编码方式。
AI驱动的自主系统
研究基于AI的自主系统设计和实现方法,提高系统的自适应能力和 智能化水平。
绿色低碳成为关键
绿色计算技术
研究低功耗、高能效的计算技术和方法,降低计算机系统的能耗 和碳排放。
可持续性与可循环性
在计算机系统设计和实现过程中,注重可持续性和可循环性原则, 采用环保材料和可再生能源。
节能标准与政策
物联网、自动驾驶等应用对实时计算和边缘计算的需求日益增加,要求
计算机体系结构做出相应的调整。
产业生态挑战
技术更新速度
计算机体系结构的技术更新速度非常快,如何跟 上这种发展速度并保持竞争力是一大挑战。
产业链协同
计算机体系结构的发展涉及芯片设计、制造、封 装等多个环节,需要产业链上下游的紧密协同。
标准与规范
面临的挑战与机遇
挑战
计算机体系结构面临着性能提升瓶颈、能耗问题、安全性问题、可编程性等方 面的挑战。
机遇
新兴技术如量子计算、光计算、生物计算和光量子计算等为计算机体系结构的 发展带来了新的机遇。
02
传统计算机体系结构回顾
冯·诺依曼结构
存储程序概念
冯·诺依曼结构中,程序和数据都存储 在同一个存储器中,实现了存储程序 的概念,使得计算机具有通用性。
光子计算
光子器件与电路
操作系统的演化与发展趋势

操作系统的演化与发展趋势操作系统是计算机系统中的一个重要组成部分,它负责管理计算机硬件资源并提供与应用程序间的接口。
随着计算机技术的不断发展,操作系统也在不断演化和创新,以适应不断变化的需求。
本文将探讨操作系统的演化历程,并分析其发展趋势。
一、操作系统的演化历程1. 批处理操作系统早期的计算机系统中,操作系统主要以批处理方式运行。
用户需要事先将任务提交给计算机操作员,由操作员负责安排任务的执行。
在这种操作系统下,计算机能够连续地执行一系列的任务,提高了计算机的利用率,但用户体验较差。
2. 分时操作系统20世纪60年代,随着计算机技术的进步,出现了分时操作系统。
分时操作系统允许多个用户同时通过终端登录到计算机系统,并共享计算机资源。
这种方式极大地提高了用户的交互性和使用体验,成为人们日常使用计算机的常用方式。
3. 多任务操作系统随着计算机技术的发展,人们对计算机系统的要求越来越高。
多任务操作系统应运而生,它可以使多个程序同时运行,并实现任务间的切换和管理。
这种操作系统的出现,进一步提升了计算机的效率和性能,满足了多任务处理的需求。
4. 分布式操作系统为了更好地利用计算机资源和提高系统性能,分布式操作系统应运而生。
分布式操作系统将计算机集群中的多台计算机组织为一个整体,实现互联互通和资源共享。
分布式操作系统有利于实现高可用性、高性能和负载均衡,并为大规模分布式应用提供了强有力的支持。
二、操作系统的发展趋势1. 虚拟化技术的应用虚拟化技术允许将单个物理服务器虚拟化为多个逻辑服务器,每个逻辑服务器都可以独立运行操作系统和应用程序。
虚拟化技术可以提高计算机资源的利用率和可伸缩性,降低运维成本,成为未来操作系统发展的重要方向。
2. 容器化技术的兴起容器化技术是一种轻量级的虚拟化技术,它可以将应用程序及其依赖打包为一个独立的运行环境,实现应用程序的快速部署和扩展。
容器化技术具有高效率、可移植、易管理等优势,将成为未来操作系统发展的一个重要趋势。
计算机的发展现状和未来趋势

计算机的发展现状和未来趋势钟鹏(江西省赣州市赣州南13报社网络中心,江西赣州341000)喃要]本文介绍围绕当代已经广泛应用于各个领域的计算机系统,分霁j有计算机的发展历史,迅速发展的原因,发展理状以及未来发展。
趋势的展望。
良键词】计算机;发展历史;发展原因;发展现状;发展趋势:?,计算机技术是指进行硬件设计及制造和软件开发,并广泛应用于各个领域的技术,它是信息化时代的杨濑术。
现在,计算机技术已经渗透到社会生产和生活方方面面,由此,不但是改变了人类进行生产和生活的方式,也决定了许许多多学科的未来的发展状况。
本文按照下图的思路进行介绍。
计茸机的历史,‘计茸机为什么会迅逸发展的原因一计簋机白勺发展现状一计算机未来的发展趁势一1计算机发展历史上世纪40年代,宾夕法尼亚大学出现了世界上第一台计算机(叫肯尼亚克),是为弹道计算而设计的。
到了50年代,由于计算机成本很高,也较复杂,计算机主要是在军事部门应用。
随著计算机成本的下降。
等到80年代前期,许多政府部门和科研机构,甚至一些大型企业开始使用计算机。
80年代中后期,因特尔四位CP U微处理器的研制和发展催生了世界上第一台个人计算机(PC),从而导致了计算机成本的急速下降,到90年代,—般的小公司和家庭也开始使用计算机来进行工作和生活。
计算机向两个方向发展:一是往微、小、便宜方向发展,并普遍进入普通家庭;再就是向高、难、大方向发展,多应用于军事科学技术等领域。
由计算机的发展历史可知,计算机技术是一个快速成长、快速更新和高速发展,且很有生命力和发展前景的一门科学技术。
2计算机迅速发展的原因概述1)社会需求的强大驱动力。
二战时期对信息的紧迫需求为创造提供了十分有利的契机,促进了计算机在军事领域的应用技术的发展。
由于高超的运算能力,使得计算机从研究所和政府部门迅速地转为民用,而且随着在尖端科学领域的普遍应用,对计算机的性能和容量也提出了更高的要求,进而促进了计算机工业的发展。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机系统结构发展历程及未来展望一、计算机体系结构什么是体系结构经典的关于“计算机体系结构(computer A按照计算机系统的多级层次结构,不同级程序员所看到的计算机具有不同的属性。
一般来说,低级机器的属性对于高层机器程序员基本是透明的,通常所说的计算机体系结构主要指机器语言级机器的系统结构。
计算机体系结构就是适当地组织在一起的一系列系统元素的集合,这些系统元素互相配合、相互协作,通过对信息的处理而完成预先定义的目标。
通常包含的系统元素有:计算机软件、计算机硬件、人员、数据库、文档和过程。
其中,软件是程序、数据库和相关文档的集合,用于实现所需要的逻辑方法、过程或控制;硬件是提供计算能力的电子设备和提供外部世界功能的电子机械设备(例如传感器、马达、水泵等);人员是硬件和软件的用户和操作者;数据库是通过软件访问的大型的、有组织的信息集合;文档是描述系统使用方法的手册、表格、图形及其他描述性信息;过程是一系列步骤,它们定义了每个系统元素的特定使用方法或系统驻留的过程性语境。
体系结构原理计算机体系结构解决的是计算机系统在总体上、功能上需要解决的问题,它和计算机组成、计算机实现是不同的概念。
一种体系结构可能有多种组成,一种组成也可能有多种物理实现。
计算机系统结构的逻辑实现,包括机器内部数据流和控制流的组成以及逻辑设计等。
其目标是合理地把各种部件、设备组成计算机,以实现特定的系统结构,同时满足所希望达到的性能价格比。
一般而言,计算机组成研究的范围包括:确定数据通路的宽度、确定各种操作对功能部件的共享程度、确定专用的功能部件、确定功能部件的并行度、设计缓冲和排队策略、设计控制机构和确定采用何种可靠技术等。
计算机组成的物理实现。
包括处理机、主存等部件的物理结构,器件的集成度和速度,器件、模块、插件、底板的划分与连接,专用器件的设计,信号传输技术,电源、冷却及装配等技术以及相关的制造工艺和技术。
主要研究内容1·机内数据表示:硬件能直接辨识和操作的数据类型和格式2·寻址方式:最小可寻址单位、寻址方式的种类、地址运算3·寄存器组织:操作寄存器、变址寄存器、及专用寄存器的定义、数量和使用规则4·:指令的操作类型、格式、指令间排序和控制机构5·:最小编址单位、编址方式、容量、最大可编址空间6·中断机构:中断类型、中断级别,以及中断响应方式等7·输入输出结构:输入输出的连接方式、处理机/存储器与间的数据交换方式、数据交换过程的控制8·信息保护:信息保护方式、信息保护机制。
根据指令流、数据流进行分类1·单指令流单数据流(SISD)SISD其实就是传统的顺序执行的单处理器计算机,其指令部件每次只对一条指令进行译码,并只对一个操作部件分配数据。
2·单指令流多数据流(SIMD)SIMD以并行处理机为代表,结构如图,并行处理机包括多个重复的处理单元PU1~PUn,由单一指令部件控制,按照同一指令流的要求为它们分配各自所需的不同的数据。
3·多指令流单数据流(MISD)MISD的结构,它具有n个处理单元,按n条不同指令的要求对同一数据流及其中间结果进行不同的处理。
一个处理单元的输出又作为另一个处理单元的输入。
4·多指令流多数据流(MIMD)MIMD的结构,它是指能实现作业、任务、指令等各级全面并行的多机系统,多处理机就属于MIMD。
二、计算机体系结构发展历程计算机体系结构已经经历了四个不同的发展阶段。
第一阶段60年代中期以前,是计算机体系结构发展的早期时代。
在这个时期通用硬件已经相当普遍,软件却是为每个具体应用而专门编写的,大多数人认为软件开发是无需预先计划的事情。
这时的软件实际上就是规模较小的程序,程序的编写者和使用者往往是同一个(或同一组)人。
由于规模小,程序编写起来相当容易,也没有什么系统化的方法,对软件开发工作更没有进行任何管理。
这种个体化的软件环境,使得软件设计往往只是在人们头脑中隐含进行的一个模糊过程,除了程序清单之外,根本没有其他文档资料保存下来。
第二阶段从60年代中期到70年代中期,是计算机体系结构发展的第二代。
在这10年中计算机技术有了很大进步。
多道程序、多用户系统引入了人机交互的新概念,开创了计算机应用的新境界,使硬件和软件的配合上了一个新的层次。
实时系统能够从多个信息源收集、分析和转换数据,从而使得进程控制能以毫秒而不是分钟来进行。
在线存储技术的进步导致了第一代数据库管理系统的出现。
计算机体系结构发展的第二代的一个重要特征是出现了“软件作坊”,广泛使用产品软件。
但是,“软件作坊”基本上仍然沿用早期形成的个体化软件开发方法。
随着计算机应用的日益普及,软件数量急剧膨胀。
在程序运行时发现的错误必须设法改正;用户有了新的需求时必须相应地修改程序;硬件或操作系统更新时,通常需要修改程序以适应新的环境。
上述种种软件维护工作,以令人吃惊的比例耗费资源。
更严重的是,许多程序的个体化特性使得它们最终成为不可维护的。
“软件危机”就这样开始出现了。
1968年北大西洋公约组织的计算机科学家在联邦德国召开国际会议,讨论软件危机课题,在这次会议上正式提出并使用了“软件工程”这个名词,一门新兴的工程学科就此诞生了。
第三阶段计算机体系结构发展的第三代从20世纪70年代中期开始,并且跨越了整整10年。
在这10年中计算机技术又有了很大进步。
分布式系统极大地增加计算机系统的复杂性,局域网、广域网、宽带数字通信以及对“即时”数据访问需求的增加,都对软件开发者提出了更高的要求。
但是,在这个时期软件仍然主要在工业界和学术界应用,个人应用还很少。
这个时期的主要特点是出现了微处理器,而且微处理器获得了广泛应用。
以微处理器为核心的“智能”产品随处可见,当然,最重要的智能产品是个人计算机。
在不到10年的时间里,个人计算机已经成为大众化的商品。
第四阶段在计算机系统发展的第四代已经不再看重单台计算机和程序,人们感受到的是硬件和软件的综合效果。
由复杂操作系统控制的强大的桌面机及局域网和广域网,与先进的应用软件相配合,已经成为当前的主流。
计算机体系结构已迅速地从集中的主机环境转变成分布的客户机/服务器(或浏览器/服务器)环境。
世界范围的信息网为人们进行广泛交流和资源的充分共享提供了条件。
软件产业在世界经济中已经占有举足轻重的地位。
随着时代的前进,新的技术也不断地涌现出来。
面向对象技术已经在许多领域迅速地取代了传统的软件开发方法。
软件开发的“第四代技术”改变了软件界开发计算机程序的方式。
专家系统和人工智能软件终于从实验室中走出来进入了实际应用,解决了大量实际问题。
应用模糊逻辑的人工神经网络软件,展现了模式识别与拟人信息处理的美好前景。
虚拟现实技术与多媒体系统,使得与用户的通信可以采用和以前完全不同的方法。
遗传算法使我们有可能开发出驻留在大型并行生物计算机上的软件。
二、未来展望现在的计算机体系研究中,愈来愈多的问题被发现计算机体系结构以图灵机理论为基础,属于冯·诺依曼体系结构。
本质上,图灵机理论和冯·诺依曼体系结构是一维串行的,而多核处理器则属于分布式离散的并行结构,需要解决二者的不匹配问题。
而且冯·诺依曼的核心只有3个:二进制、存储模型和一个时候只有一个操作的串行机制。
这在长久以来推动了计算机体系的发展和革新,但也就是这3个核心,阻碍了计算机的进一步发展。
首先,串行的图灵机模型和物理上分布实现的多核处理器的匹配问题。
图灵机模型意味着串行的编程模型。
串行程序很难利用物理上分布实现的多个处理器核获得性能加速.与此同时,并行编程模型并没有获得很好的推广,仅仅局限在科学计算等有限的领域.研究者应该寻求合适的机制来实现串行的图灵机模型和物理上分布实现的多核处理器的匹配问题或缩小二者之间的差距,解决“并行程序编程困难,串行程序加速小”的问题。
在支持多线程并行应用方面,未来多核处理器应该从如下两个方向加以考虑。
第一是引入新的能够更好的能够表示并行性的编程模型。
由于新的编程模型支持编程者明确表示程序的并行性,因此可以极大的提升性能。
比如Cell处理器提供不同的编程模型用于支持不同的应用。
其难点在于如何有效推广该编程模型以及如何解决兼容性的问题。
第二类方向是提供更好的硬件支持以减少并行编程的复杂性。
并行程序往往需要利用锁机制实现对临界资源的同步、互斥操作,编程者必须慎重确定加锁的位置,因为保守的加锁策略限制了程序的性能,而精确的加锁策略大大增加了编程的复杂度。
一些研究在此方面做了有效的探索。
比如,Speculative Lock Elision机制允许在没有冲突的情况下忽略程序执行的锁操作,因而在降低编程复杂度的同时兼顾了并行程序执行的性能。
这样的机制使得编程者集中精力考虑程序的正确性问题,而无须过多地考虑程序的执行性能。
更激进的,Transactional Coherenceand Consistency(TCC)机制以多个访存操作(Transaction)为单位考虑数据一致性问题,进一步简化了并行编程的复杂度。
主流的商业多核处理器主要针对并行应用,如何利用多核加速串行程序仍然是一个值得关注的问题。
其关键技术在于利用软件或硬件自动地从串新程序中派生出能够在多核处理器上并行执行的代码或线程。
多核加速串行程序主要有三种方法,包括并行编译器、推测多线程以及基于线程的预取机制等。
在传统并行编译中,编译器需要花费很大的精力来保证拟划分线程之间不存在数据依赖关系。
编译时存在大量模糊依赖,尤其是在允许使用指针(如C程序)的情况下,编译器不得不采用保守策略来保证程序执行的正确性。
这大大限制了串行程序可以挖掘的并发程度,也决定了并行编译器只能在狭窄范围使用。
为解决这些问题,人们提出推测多线程以及基于线程的预取机制等。
然而,从这种概念提出到现在为止,这个方向的研究大部分局限于学术界,仅有个别商业化处理器应用了这种技术,并且仅仅局限于特殊的应用领域。
我们认为动态优化技术和推测多线程(包括基于线程的预取机制)的结合是未来的可能发展趋势。
冯·诺依曼体系结构的一维地址空间和多核处理器的多维访存层次的匹配问题。
本质上,冯·诺依曼体系结构采用了一维地址空间。
由于不均匀的数据访问延迟和同一数据在多个处理器核上的不同拷贝导致了数据一致性问题。
该领域的研究分为两大类:一类研究主要是引入新的访存层次。
新的访存层次可能采用一维分布式实现方式。
典型的例子是增加分布式统一编址的寄存器网络。
全局统一编址的特性避免了数据一致性地考虑。
同时,相比于传统的大容量cache访问,寄存器又能提供更快的访问速度。
TRIPS和RAW都有实现了类似得寄存器网络。