① 并行处理计算机系统的结构特点
parallel computer system
并行处理计算机
并行处理计算机主要指以下两种类型的计算机:①能同时执行多条指令或同时处理多个数据项的单中央处理器计算机;②多处理机系统。
并行处理计算机的结构特点
随着电子器件的发展 ,计算机的处理能力有显着提高。但是,仅仅依靠器件的进展而达到的速度提高,远不能满足现代科学、技术、工程和其他许多领域对高速运算能力的需要。这就要求人们改进计算机结构,采用各种并行处理技术,以便大幅度地提高处理速度和解题能力。
并行处理计算机的结构特点主要表现在两个方面:①在单处理机内广泛采用各种并行措施;②由单处理机发展成各种不同耦合度的多处理机系统。并行处理的主要目的是提高系统的处理能力。有些类型的并行处理计算机系统(如多处理机系统)还可以提高系统的可靠性。由于器件的发展,并行处理计算机系统具有较好的性能价格比,而且还有进一步提高的趋势。
② 一个典型的编译程序通常由哪些部分组成各部分的主要功能是什么
通常由七个部分组成。分别是:词法分析、语法分析、语义分析和中间代码生成、优化、目标代码生成以及表格和表格管理、出错处理。
各自功能是:
1.词法分析:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个单词(也称单词符号,或简称符号)。在词法分析阶段工作所依循的是语言的词法规则;描述词法规则的有效工具是正规式和有限自动机。
2.语法分析:在词法分析的基础上,根据语言的语法规则,把单词符号串组成各类语法单位。具体的说,语法分析是在单词流的基础上建立一个层次结构——建立语法树。
3.语义分析和中间代码生成:语义分析利用语法分析阶段确定的层次结构来识别表达式和语句中的操作信息及类型信息;中间代码生成阶段将产生的源程序的一个显式中间表示,这种中间表示可以看成是某种抽象程序,通常是与平台无关的,(可用三地址码和四元式表示)。
4.优化:试图改进中间代码,以产生执行速度较快的机器代码。
5.目标代码生成:生成可重定位的机器代码或汇编代码。
6.表格和表格管理:编译程序在工作过程中需要保持一系列的表格,以登记源程序的各类信息和编译各阶段的进展情况。
7.出错处理:编译程序对源程序中的错误进行处理,应最大限度地发现源程序中的各种错误,准确地指出错误的性质和发生错误的地点,并且将错误所造成的影响限制在尽可能小的范围内,使得源程序的其余部分能继续被编译下去,以便进一步发现其他可能的错误。通常编译过程中每个阶段都可能检测出错误,其中,绝大多数数错误可以在编译的前三阶段检测出来。且源程序中的错误通常分为语法错误和语义错误两大类。出错处理就是为了处理以上的错误情况。
③ 计算机的体系结构,组成和实现各自处理哪些方面的问题
电脑的体系结构分为硬件系统和软件系统两个部分。
多媒体技术个人电脑的硬件设备包括:
主机:主机是整个电脑的主体,可以说用电脑来工作的时候,工作是在它内部完成的。主机外观上分为立式和卧式两种。立式机箱的结构更利于散热,更受人们欢迎一些。
键盘:是电脑中不可缺少的输入设备,用户可以通过键盘输入命令和数据,并可通过它控制电脑的运行。常见的键盘大多是101或104键的,一些较为新颖的104键盘往往带有两个Windows键和一个应用程序键,以提高在Win7操作系统上操作电脑的效率。这些键可以分为大键盘区、编辑键区、功能键区和小键盘区。
显示器:是电脑基本的输出设备,是整个电脑硬件系统中不可缺少的部分。我们现在常用的是液晶显示器,与传统的阴极射线管显示器相比,辐射比较低、体积小,耗电少。它利用液晶的特性,通电时排列变得有秩序,使光线容易通过,不通电时排列混乱,阻止光线通过,通过电路控制,显示图像。
打印机也是一种常用的输出设备。因为显示器上显示的内容一旦关机就看不见了,也不方便把显示器搬来搬去给别人阅读,所以我们还是需要用打印机把自己的工作成果打印出来。
鼠标:电脑中重要的输入设备,它能方便地把鼠标指针准确定位在我们指定的屏幕位置,很方便地完成各种操作。按其工作原理,鼠标分为机械鼠标、光电鼠标和光机鼠标。目前我们常常用的鼠标是光电鼠标。光电鼠标的下面是两个平行放置的小光源,这种鼠标只能在特定的鼠标垫上移动,光源发出的光经过鼠标垫反射后由鼠标接收为移动信号,送入电脑,使屏幕上的鼠标指针随之移动。鼠标指针和鼠标的移动方向是一致的,移动距离也成比例。光电鼠标使用时比较灵活,故障率比较低。
音箱:相当于电脑的嘴巴和喉咙,有了它电脑才能发出悦耳的声音。音箱的外壳有木质和塑料两种,两只音箱一左一右摆放在电脑两侧,与显示器有一定距离,才能得到立体声效果。
麦克风:相当于电脑的耳朵,有了它电脑才能把外部的声音传送到电脑中,变换成数字波形,输入到文件或多媒体图像中。
摄像头:可以分为数字摄像头和模拟摄像头两大类,数字摄像头可以直接捕捉影像,通过串口、并口或USB接口传到电脑里。根据摄像头的形态,可以分为桌面底座式、高杆式和液晶挂式。摄像头还可以分为有驱动和无驱动型的摄像头。
软件分为系统软件、应用软件。
系统软件是负责管理计算机系统中各种独立的硬件,使得它们可以协调工作。系统软件使得计算机使用者和其他软件将计算机当作一个整体而不需要顾及到底层每个硬件是如何工作的。
操作系统是一管理计算机硬件与软件资源的程序,同时也是计算机系统的内核与基石。操作系统身负诸如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让使用者与系统交互的操作接口。目前多媒体个人电脑的主要操作系统是Windows 7。
应用软件是为了某种特定的用途而被开发的软件。它可以是一个特定的程序,比如一个图像浏览器。也可以是一组功能联系紧密,可以互相协作的程序的集合,比如微软的Office软件。也可以是一个由众多独立程序组成的庞大的软件系统,比如数据库管理系统。多媒体个人电脑的应用软件主要有酷狗音乐、腾讯视频、PPTV、Office 2007等。
④ 什么是计算机体系结构中的并行性
并行处理(Parallel Processing)是计算机系统中能同时执行两个或更多个处理机的一种计算方法。处理机可同时工作于同一程序的不同方面。并行处理的主要目的是节省大型和复杂问题的解决时间。为使用并行处理,首先需要对程序进行并行化处理,也就是说将工作各部分分配到不同处理机中。而主要问题是并行是一个相互依靠性问题,而不能自动实现。此外,并行也不能保证加速。但是一个在 n 个处理机上执行的程序速度可能会是在单一处理机上执行的速度的 n 倍。
计算机体系结构(ComputerArchitecture)是程序员所看到的计算机的属性,即概念性结构与功能特性。按照计算机系统的多级层次结构,不同级程序员所看到的计算机具有不同的属性。一般来说,低级机器的属性对于高层机器程序员基本是透明的,通常所说的计算机体系结构主要指机器语言级机器的系统结构。经典的关于"计算机体系结构(computerarchitecture)"的定义是1964年C.M.Amdahl在介绍IBM360系统时提出的,其具体描述为"计算机体系结构是程序员所看到的计算机的属性,即概念性结构与功能特性" 。
利用计算机语言进行并行性描述的时候主要有三种方案:
1.语言扩展方案:也就是利用各种语言的库函数来进行并行性功能的扩展。
2.编译制导法:也称为智能编译,它是隐式并行策略的体现,主要是由并行编译系统进行程序表示、控制流的分析、相关分析、优化分析和并行化划分,由相关分析得到方法库管理方案,由优化分析得到知识库管理方案,由并行化划分得到程序重构,从而形成并行程序。
3.新的语言结构法:这是显式并行策略的体现。也就是建立一种全新的并行语言的体系,而这种并行语言通过编译就能直接形成并行程序。
⑤ 计算机系统性能评价方面的资料
硕士论文你都不舍得给钱?真不应该.悬赏分:0
Linpack:最早的评测系统计算能力的Benchmark之一,linpack(LINear algebra PACKages)主要功能是解线性方程组和线性最小二乘问题,最早的矩阵大小为100x100,300x300,后来以1000x1000为标准;随着MPP、CC-NUMA、Cluster等大型并行计算机的出现,不再限定矩阵的规模。Linpack问题在大多数系统上很容易向量化,厂商进行精心优化,提高cache命中率,得到的计算饱和峰值常常是实际应用不可能达到的。
NAS:由美国NASA的NAS(Numerical Aerodynamic Simulation)研究组开发的科学计算性能评价标准,包含8个空气动力学计算类应用,其中含5个核心程序和3个伪应用,核心应用分别是EP、多重网格求解、共轭梯度方程求解、三维FFT、和整数排序。
开始NAS只是纸上标准,由厂商自行按最优方法编制程序,早期的巨型机和向量机都采用NAS Benchmark。随着并行机的出现,又有了并行版本NPB,厂商需要针对自己系统的体系结构,在并行粒度、数据结构、通信机制、处理器映射、内存分配、底层优化上下功夫。最近又有了NPB2标准,统一提供MPI语言编制的并行程序。
Perfect:即PERFormance Evatuation for Cost-effective Transformations评测程序,是由HPCG组织开发的用于评测传统的向量巨型机的标准。
SPLASH:Stanford大学开发的用于评测共享存储系统性能的测试程序。现在已发展到SPLASH-2,包含7个完整的应用和5个计算核心程序,它们都是科学与工程计算和计算机图形学方面的并行程序,主要用于评价SMP、CC-NUMA、DSM等共享存储类体系结构的计算机系统的性能。
ParkBench:用于评价大型可扩展系统的科学计算性能,有Fortran加消息传递、HPP多个版本,包括micro-benchmark, Kernel, Compact Application,Compiler四类Benchmark。底层的micro-benchmark用于测量单节点性能,目的是获取单处理器的有关体系结构和编译器的基本性能参数,以便更好地理解上层测试的结果。测试内容包括时钟调用、算术运算、内存带宽和延迟、通信延迟和带宽、全局同步操作性能等。核心测试包括矩阵运算、FFT、偏微分方程、NAS核心,和一个I/O Benchmark。简化应用测试包括气候模型、计算流体动力学、财务模型、分子动力学、等离子物理、量子化学、水库模型等。编译器测试主要是评价HPF编译器优化的效果。ParkBench很庞大,用于评价计算机系统支持各种具有不同需求的科学计算应用的性能。
⑥ 51单片机内部包含哪些主要功能部件各功能部件的主要作用是什么
51单片机内部包含的功能组件及作用主要有:
1、cpu主芯片(内部通过总线连接扩展的设备)
2、时钟电路(为单片机提供震荡脉冲)
3、电源电路(为单片机提供电源)
4、内部数据存储器RAM(包括通用数据寄存器和专用寄存器SFR,主要是数据存储区。)
5、程序存储器ROM(主要是存储程序,51系列有4K内部程序ROM,可以外扩64K。)
6、并行端口4*8位(P0,P1,P2,P3主要是数据交换接口。)
7、串行口(TXD,RXD用于串口通信。)
8、中断系统(外中断0,定时计数T0,外中断1,定时计数T1,串口中断。)
9、定时/计数器(16位用于外部的计数和定时功能。)
(6)并行编译系统的功能和结构扩展阅读
Proteus 自从有了单片机也就有了开发系统,随着单片机的发展开发系统也在不断发展。 keil是一种先进的单片机集成开发系统。它代表着汇编语言单片机开发系统的最新发展,首创多项便利技术,将开发的编程、仿真、调试、写入、加密等所有过程一气呵成,中间不须任何编译或汇编。
功能特性
1、可以仿真63K程序空间,接近64K 的16位地址空间。
2、可以仿真64Kxdata 空间,全部64K 的16位地址空间。
3、可以真实仿真全部32 条IO脚。
4、完全兼容keilC51 UV2 调试环境,可以通过UV2 环境进行单步,断点, 全速等操作。
5、可以使用C51语言或者ASM汇编语言进行调试。
6、可以非常方便地进行所有变量观察,包括鼠标取值观察,即鼠标放在某 变量上就会立即显示出它此的值。
7、可选 使用用户晶振,支持0-40MHZ晶振频率。
8、片上带有768字节的xdata,您可以在仿真时选 使用他们,进行xdata 的仿真。
9、可以仿真双DPTR 指针。
10、可以仿真去除ALE 信号输出。
11、自适应300-38400bps 的所有波特率通讯。
12、体积非常细小,非常方便插入到用户板中.插入时紧贴用户板,没有连接电缆,这样可以有效地减少运行中的干扰,避免仿真时出现莫名其妙的故障。
13、仿真插针采用优质镀金插针,可以有效地防止日久生锈,选择优质园脚IC插座,保护仿真插针,同时不会损坏目标板上的插座. 。
14、仿真时监控和用户代码分离,不可能产生不能仿真的软故障。
15、RS-232接口不计成本采用MAX202集成电路,串行通讯稳定可靠,绝非一般三极管的简易电路可比。
参考资料网络--51单片机
⑦ 计算机体系结构的发展和硬件变化的关系
软件体系结构最底层的应该是指令集,CPU的结构发展就是更有效,在最短的执行这些指令。从单个程序运算方面,从最初的单条流水线,到乱序指令执行的并行多条流水线,分支预测,分支预测执行,超标量(同周期发射数条指令到后端流水线)都是属于指令集方面的并行,从386到P4包括AMD ATHLOTON系列都是使用与上述结构相同的架构。IA 64 独辟蹊径的有一个叫VLIW的纯编译器完成的流水线,不依赖于硬件结构与上述结构有所不同。但是作为服务器,响应的不是单条程序,而是非常多同时到达又没有相关性的交易,每个交易可以被看作是一个相互近似独立的THREAD,所以服务器对指令集执行的是执行基于THREAD 的并行,这样就可以运用虚拟机等技术。在PC 上,P4当年所谓的HYPER THREADING 是利用流水线在不同的THREAD 中做切换,最大限度的使用所有后端流水线的资源。到了多核时代,随着指令集并行被开发到了尽头,AMD 和 INTEL 都认为不可能将单核做得更快了,能提到CPU 的唯一途径是使用THREAD 并行,这就要不同的核之间有通信,而且对程序员的要求很高。在指令集并行年代,程序员不用知道硬件的结构,只需按照串行的思路编写就行。但到了多核时代,为了更好地运用硬件资源,指令的PC(PROGRAM COUNTER)需要在不同的程序中切换,增加的编写程序的难度。像CELL 架构本身是个非常强悍的结构,可惜程序别写过于困难,导致开发费用很大,这也是XBOX360能超过PS3销量的原因之一。其次,INTEL 宣布的多核X86 通用CPU-GPU LARABEE 基于X86的原因之一就是INTEL 认为虽然他们图形技术不行,但是基于X86的CPU 更容易使用当前的编译器,减少程序员的负担。 以上均为原创,参考PATTERSON 和 HENNESSY 的computer architecture 和 computer orgnization and desgin , 把分为我吧,thanks
⑧ 急!!!!急!!!!!!!!!急!!!!!计算机体系结构这门课所解决的问题以及解决的方法在线等
计算机体系结构(ComputerArchitecture)是程序员所看到的计算机的属性,即概念性结构与功能特性。按照计算机系统的多级层次结构,不同级程序员所看到的计算机具有不同的属性。一般来说,低级机器的属性对于高层机器程序员基本是透明的,通常所说的计算机体系结构主要指机器语言级机器的系统结构。经典的关于“计算机体系结构(computerarchitecture)”的定义是1964年C.M.Amdahl在介绍IBM360系统时提出的,其具体描述为“计算机体系结构是程序员所看到的计算机的属性,即概念性结构与功能特性”
基本概念
计算机体系结构就是指适当地组织在一起的一系列系统元素的集合,这些系统元素互相配合、相互协作,通过对信息的处理而完成预先定义的目标。通常包含的系统元素有:计算机软件、计算机硬件、人员、数据库、文档和过程。其中,软件是程序、数据结构和相关文档的集合,用于实现所需要的逻辑方法、过程或控制;硬件是提供计算能力的电子设备和提供外部世界功能的电子机械设备(例如传感器、马达、水泵等);人员是硬件和软件的用户和操作者;数据库是通过软件访问的大型的、有组织的信息集合;文档是描述系统使用方法的手册、表格、图形及其他描述性信息;过程是一系列步骤,它们定义了每个系统元素的特定使用方法或系统驻留的过程性语境。 计算机体系结构
8种属性
1•机内数据表示:硬件能直接辨识和操作的数据类型和格式 计算机体系结构
2•寻址方式:最小可寻址单位、寻址方式的种类、地址运算 3•寄存器组织:操作寄存器、变址寄存器、控制寄存器及专用寄存器的定义、数量和使用规则 4•指令系统:机器指令的操作类型、格式、指令间排序和控制机构 5•存储系统:最小编址单位、编址方式、主存容量、最大可编址空间 6•中断机构:中断类型、中断级别,以及中断响应方式等 7•输入输出结构:输入输出的连接方式、处理机/存储器与输入输出设备间的数据交换方式、数据交换过程的控制 8•信息保护:信息保护方式、硬件信息保护机制。
编辑本段发展历程
计算机系统已经经历了四个不同的发展阶段。 计算机体系结构
第一阶段
60年代中期以前,是计算机系统发展的早期时代。在这个时期通用硬件已经相当普遍,软件却是为每个具体应用而专门编写的,大多数人认为软件开发是无需预先计划的事情。这时的软件实际上就是规模较小的程序,程序的编写者和使用者往往是同一个(或同一组)人。由于规模小,程序编写起来相当容易,也没有什么系统化的方法,对软件开发工作更没有进行任何管理。这种个体化的软件环境,使得软件设计往往只是在人们头脑中隐含进行的一个模糊过程,除了程序清单之外,根本没有其他文档资料保存下来。
第二阶段
从60年代中期到70年代中期,是计算机系统发展的第二代。在这10年中计算机技术有了很大进步。多道程序、多用户系统引入了人机交互的新概念,开创了计算机应用的新境界,使硬件和软件的配合上了一个新的层次。实时系统能够从多个信息源收集、分析和转换数据,从而使得进程控制能以毫秒而不是分钟来进行。在线存储技术的进步导致了第一代数据库管理系统的出现。计算机系统发展的第二代的一个重要特征是出现了“软件作坊”,广泛使用产品软件。但是,“软件作坊”基本上仍然沿用早期形成的个体化软件开发方法。随着计算机应用的日益普及,软件数量急剧膨胀。在程序运行时发现的错误必须设法改正;用户有了新的需求时必须相应地修改程序;硬件或操作系统更新时,通常需要修改程序以适应新的环境。上述种种软件维护工作,以令人吃惊的比例耗费资源。更严重的是,许多程序的个体化特性使得它们最终成为不可维护的。“软件危机”就这样开始出现了。1968年北大西洋公约组织的计算机科学家在联邦德国召开国际会议,讨论软件危机课题,在这次会议上正式提出并使用了“软件工程”这个名词,一门新兴的工程学科就此诞生了。
第三阶段
计算机系统发展的第三代从20世纪70年代中期开始,并且跨越了整整10年。在这10年中计算机技术又有了很大进步。分布式系统极大地增加亍计算机系统的复杂性,局域网、广域网、宽带数字通信以及对“即时”数据访问需求的增加,都对软件开发者提出了更高的要求。但是,在这个时期软件仍然主要在工业界和学术界应用,个人应用还很少。这个时期的主要特点是出现了微处理器,而且微处理器获得了广泛应用。以微处理器为核心的“智能”产品随处可见,当然,最重要的智能产品是个人计算机。在不到10年的时间里,个人计算机已经成为大众化的商品。 在计算机系统发展的第四代已经不再看重单台计算机和程序,人们感受到的是硬件和软件的综合效果。由复杂操作系统控制的强大的桌面机及局域网和广域网,与先进的应用软件相配合,已经成为当前的主流。计算机体系结构已迅速地从集中的主机环境转变成分布的客户机/服务器(或浏览器/服务器)环境。世界范围的信息网为人们进行广泛交流和资源的充分共享提供了条件。软件产业在世界经济中已经占有举足轻重的地位。随着时代的前进,新的技术也不断地涌现出来。面向对象技术已经在许多领域迅速地取代了传统的软件开发方法。
总结
软件开发的“第四代技术”改变了软件界开发计算机程序的方式。专家系统和人工智能软件终于从实验室中走出来进入了实际应用,解决了大量实际问题。应用模糊逻辑的人工神经网络软件,展现了模式识别与拟人信息处理的美好前景。虚拟现实技术与多媒体系统,使得与用户的通信可以采用和以前完全不同的方法。遗传算法使我们有可能开发出驻留在大型并行生物计算机上的软件。
编辑本段基本原理
计算机体系结构解决的是计算机系统在总体上、功能上需要解决的问题,它和计算机组成、计算机实现是不同的概念。一种体系结构可能有多种组成,一种组成也可能有多种物理实现。 计算机体系结构
计算机系统结构的逻辑实现,包括机器内部数据流和控制流的组成以及逻辑设计等。其目标是合理地把各种部件、设备组成计算机,以实现特定的系统结构,同时满足所希望达到的性能价格比。一般而言,计算机组成研究的范围包括:确定数据通路的宽度、确定各种操作对功能部件的共享程度、确定专用的功能部件、确定功能部件的并行度、设计缓冲和排队策略、设计控制机构和确定采用何种可靠技术等。计算机组成的物理实现。包括处理机、主存等部件的物理结构,器件的集成度和速度,器件、模块、插件、底板的划分与连接,专用器件的设计,信号传输技术,电源、冷却及装配等技术以及相关的制造工艺和技术。
编辑本段分类
Flynn分类法
1966年,Michael.J.Flynn提出根据指令流、数据流的多倍性(multiplicity)特征对计算机系统进行分类,定义如下。 •指令流:机器执行的指令序列 计算机体系结构
•数据流:由指令流调用的数据序列,包括输入数据和中间结果 •多倍性:在系统性能瓶颈部件上同时处于同一执行阶段的指令或数据的最大可能个数。 Flynn根据不同的指令流-数据流组织方式把计算机系统分为4类。 1•单指令流单数据流(,SISD) SISD其实就是传统的顺序执行的单处理器计算机,其指令部件每次只对一条指令进行译码,并只对一个操作部件分配数据。 2•单指令流多数据流(,SIMD) SIMD以并行处理机为代表,结构如图,并行处理机包括多个重复的处理单元PU1~PUn,由单一指令部件控制,按照同一指令流的要求为它们分配各自所需的不同的数据。 3•多指令流单数据流(,MISD) MISD的结构,它具有n个处理单元,按n条不同指令的要求对同一数据流及其中间结果进行不同的处理。一个处理单元的输出又作为另一个处理单元的输入。 4•多指令流多数据流(,MIMD) MIMD的结构,它是指能实现作业、任务、指令等各级全面并行的多机系统,多处理机就属于MIMD。(2)
冯式分类法
1972年冯泽云提出用最大并行度来对计算机体系结构进行分类。所谓最大并行度Pm是指计算机系统在单位时间内能够处理的最大的二进制位数。设每一个时钟周期△ti内能处理的二进制位数为Pi,则T个时钟周期内平均并行度为Pa=(∑Pi)/T(其中i为1,2,…,T)。平均并行度取决于系统的运行程度,与应用程序无关,所以,系统在周期T内的平均利用率为μ=Pa/Pm=(∑Pi)/(T*Pm)。用最大并行度对计算机体系结构进行的分类。用平面直角坐标系中的一点表示一个计算机系统,横坐标表示字宽(N位),即在一个字中同时处理的二进制位数;纵坐标表示位片宽度(M位),即在一个位片中能同时处理的字数,则最大并行度Pm=N*M。 由此得出四种不同的计算机结构: ①字串行、位串行(简称WSBS)。其中N=1,M=1。 ②字并行、位串行(简称WPBS)。其中N=1,M>1。 ③字串行、位并行(简称WSBP)。其中N>1,M=1。 ④字并行、位并行(简称WPBP)。其中N>1,M>1。
编辑本段技术革新
计算机体系结构以图灵机理论为基础,属于冯•诺依曼体系结构。本质上,图灵机理论和冯•诺依曼体系结构是一维串行的,而多核处理器则属于分布式离散的并行结构,需要解决二者的不匹配问题。 首先,串行的图灵机模型和物理上分布实现的多核处理器的匹配问题。图灵机模型意味着串行的编程模型。串行程序很难利用物理上分布实现的多个处理器核获得性能加速.与此同时,并行编程模型并没有获得很好的推广,仅仅局限在科学计算等有限的领域.研究者应该寻求合适的机制来实现串行的图灵机模型和物理上分布实现的多核处理器的匹配问题或缩小二者之间的差距,解决“并行程序编程困难,串行程序加速小”的问题。 计算机体系结构
在支持多线程并行应用方面,未来多核处理器应该从如下两个方向加以考虑。第一是引入新的能够更好的能够表示并行性的编程模型。由于新的编程模型支持编程者明确表示程序的并行性,因此可以极大的提升性能。比如Cell处理器提供不同的编程模型用于支持不同的应用。其难点在于如何有效推广该编程模型以及如何解决兼容性的问题。第二类方向是提供更好的硬件支持以减少并行编程的复杂性。并行程序往往需要利用锁机制实现对临界资源的同步、互斥操作,编程者必须慎重确定加锁的位置,因为保守的加锁策略限制了程序的性能,而精确的加锁策略大大增加了编程的复杂度。一些研究在此方面做了有效的探索。比如,SpeculativeLockElision机制允许在没有冲突的情况下忽略程序执行的锁操作,因而在降低编程复杂度的同时兼顾了并行程序执行的性能。这样的机制使得编程者集中精力考虑程序的正确性问题,而无须过多地考虑程序的执行性能。更激进的,(TCC)机制以多个访存操作(Transaction)为单位考虑数据一致性问题,进一步简化了并行编程的复杂度。 主流的商业多核处理器主要针对并行应用,如何利用多核加速串行程序仍然是一个值得关注的问题。其关键技术在于利用软件或硬件自动地从串新程序中派生出能够在多核处理器上并行执行的代码或线程。多核加速串行程序主要有三种方法,包括并行编译器、推测多线程以及基于线程的预取机制等。在传统并行编译中,编译器需要花费很大的精力来保证拟划分线程之间不存在数据依赖关系。编译时存在大量模糊依赖,尤其是在允许使用指针(如C程序)的情况下,编译器不得不采用保守策略来保证程序执行的正确性。这大大限制了串行程序可以挖掘的并发程度,也决定了并行编译器只能在狭窄范围使用。为解决这些问题,人们提出推测多线程以及基于线程的预取机制等。然而,从这种概念提出到现在为止,这个方向的研究大部分局限于学术界,仅有个别商业化处理器应用了这种技术,并且仅仅局限于特殊的应用领域。我们认为动态优化技术和推测多线程(包括基于线程的预取机制)的结合是未来的可能发展趋势。 冯•诺依曼体系结构的一维地址空间和多核处理器的多维访存层次的匹配问题。本质上,冯•诺依曼体系结构采用了一维地址空间。由于不均匀的数据访问延迟和同一数据在多个处理器核上的不同拷贝导致了数据一致性问题。该领域的研究分为两大类:一类研究主要是引入新的访存层次。新的访存层次可能采用一维分布式实现方式。典型的例子是增加分布式统一编址的寄存器网络。全局统一编址的特性避免了数据一致性地考虑。同时,相比于传统的大容量cache访问,寄存器又能提供更快的访问速度。TRIPS和RAW都有实现了类似得寄存器网络。令另外,新的访存层次也可以是私有的形式。比如每个处理器和都有自己私有的访存空间。其好处是更好的划分了数据存储空间,已洗局部私有数据没有必要考虑数据一致性问题。比如Cell处理器为每个SPE核设置了私有的数据缓冲区。另一类研究主要涉及研制新的cache一致性协议。其重要趋势是放松正确性和性能的关系。比如推测Cache协议在数据一致性未得到确认之前就推测执行相关指令,从而减少了长迟访存操作对流水线的影响。此外,TokenCoherence和TCC也采用了类似的思想。程序的多样性和单一的体系结构的匹配问题。未来的应用展现出多样性的特点。一方面,处理器的评估不仅仅局限于性能,也包括可靠性,安全性等其他指标。另一方面,即便考虑仅仅追求性能的提高,不同的应用程序也蕴含了不同层次的并行性。应用的多样性驱使未来的处理器具有可配置、灵活的体系结构。TRIPS在这方面作了富有成效的探索,比如其处理器核和片上存储系统均有可配置的能力,从而使得TRIPS能够同时挖掘指令级并行性、数据级并行性及指令级并行性。 多核和Cell等新型处理结构的出现不仅是处理器架构历史上具有里程碑式的事件,对传统以来的计算模式和计算机体系架构也是一种颠覆 2005年,一系列具有深远影响的计算机体系结构被曝光,有可能为未来十年的计算机体系结构奠定根本性的基础,至少为处理器乃至整个计算机体系结构做出了象征性指引。随着计算密度的提高,处理器和计算机性能的衡量标准和方式在发生变化,从应用的角度讲,讲究移动和偏向性能两者已经找到了最令人满意的结合点,并且有可能引爆手持设备的急剧膨胀。尽管现在手持设备也相对普及,在计算能力、可扩展性以及能耗上,完全起步到一台手持设备应该具备的作用;另一方面,讲究性能的服务器端和桌面端,开始考虑减少电力消耗赶上节约型社会的大潮流。 Cell本身适应这种变化,同样也是它自己创造了这种变化。因而从它开始就强调了不一样的设计风格,除了能够很好地进行多倍扩展外,处理器内部的SPU(SynergisticProcessorUnit协同处理单元)具有很好的扩展性,因而可以同时面对通用和专用的处理,实现处理资源的灵活重构。也就意味着,通过适当的软件控制,Cell能应付多种类型的处理任务,同时还能够精简设计的复杂。
⑨ 软件系统有哪些部分组成说明其功能并试举几个实例
软件系统
软件系统(Software Systems)是指由系统软件、支撑软件和应用软件组成的计算机软件系统,它是计算机系统中由软件组成的部分。它包括操作系统、语言处理系统、数据库系统、分布式软件系统和人机交互系统等。操作系统用于管理计算机的资源和控制程序的运行。语言处理系统是用于处理软件语言等的软件,如编译程序等。数据库系统是用于支持数据管理和存取的软件,它包括数据库、数据库管理系统等。数据库是常驻在计算机系统内的一组数据,它们之间的关系用数据模式来定义,并用数据定义语言来描述;数据库管理系统是使用户可以把数据作为轴象项进行存取、使用和修改的软件。分布式软件系统包括分布式操作系统、分布式程序设计系统、分布式文件系统、分布式数据库系统等。人机交互系统是提供用户与计算机系统之间按照一定的约定进行信息交互的软件系统,可为用户提供一个友善的人机界面。操作系统的功能包括处理器管理、存储管理、文件管理、设备管理和作业管理。其主要研究内容包括:操作系统的结构、进程(任务)调度、同步机制、死锁防止、内存分配、设备分配、并行机制、容错和恢复机制等。
语言处理系统的功能是各种软件语言的处理程序,它把用户用软件语言书写的各种源程序转换成为可为计算机识别和运行的目标程序,从而获得预期结果。其主要研究内容包括:语言的翻译技术和翻译程序的构造方法与工具,此外,它还涉及正文编辑技术、连接编辑技术和装入技术等。
数据库系统的主要功能包括数据库的定义和操纵、共享数据的并发控制、数据的安全和保密等。按数据定义模块划分,数据库系统可分为关系数据库、层次数据库和网状数据库。按控制方式划分,可分为集中式数据库系统、分布式数据库系统和并行数据库系统。数据库系统研究的主要内容包括:数据库设计、数据模式、数据定义和操作语言、关系数据库理论、数据完整性和相容性、数据库恢复与容错、死锁控制和防止、数据安全性等。
分布式软件系统的功能是管理分布式计算机系统资源和控制分布式程序的运行,提供分布式程序设计语言和工具,提供分布式文件系统管理和分布式数据库管理关系等。分布式软件系统的主要研究内容包括分布式操作系统和网络操作系统、分布式程序设计、分布式文件系统和分布式数据库系统。
人机交互系统的主要功能是在人和计算机之间提供一个友善的人机接口。其主要研究内容包括人机交互原理、人机接口分析及规约、认知复杂性理论、数据输入、显示和检索接口、计算机控制接口等。
软件 系统
分布式软件系统(Distributed Software Systems)是支持分布式处理的软件系统,是在由通信网络互联的多处理机体系结构上执行任务的系统。它包括分布式操作系统、分布式程序设计语言及其编译(解释)系统、分布式文件系统和分布式数据库系统等。
分布式操作系统负责管理分布式处理系统资源和控制分布式程序运行。它和集中式操作系统的区别在于资源管理、进程通信和系统结构等方面。
分布式程序设计语言用于编写运行于分布式计算机系统上的分布式程序。一个分布式程序由若干个可以独立执行的程序模块组成,它们分布于一个分布式处理系统的多台计算机上被同时执行。它与集中式的程序设计语言相比有三个特点:分布性、通信性和稳健性。
分布式文件系统具有执行远程文件存取的能力,并以透明方式对分布在网络上的文件进行管理和存取。
分布式数据库系统由分布于多个计算机结点上的若干个数据库系统组成,它提供有效的存取手段来操纵这些结点上的子数据库。分布式数据库在使用上可视为一个完整的数据库,而实际上它是分布在地理分散的各个结点上。当然,分布在各个结点上的子数据库在逻辑上是相关的。
⑩ 请问指令系统的作用以及在计算机体系结构中的位置
计算机体系结构”定义是1964年C. M. Amdahl在介绍IBM 360系统时提出:计算机体系结构是机器语言程序员或编译程序编写者所看到的外特性。所谓外特性,即概念性结构与功能特性。
基础概念:
操作系统的基本概念
从资源管理角度看,操作系统具有以下五大功能:
1) 进程管理, 2) 存储器管理, 3) 设备管理, 4) 文件管理, 5) 作业管理
操作系统的性能指标是:RSA(可靠性、可用性、可维修性)、系统吞吐率、系统响应时间、系统资源利用率、可移植性。
其中,可靠性R(Reliability)指的是系统能发现、诊断和恢复硬件、软件故障的能力,通常用平均无故障时间MTBF(Mean Time Before Failure)来度量,它指系统能正常工作的时间的平均值。
可维修性S(Serviceability)通常用平均故障修复时间MTRF(Mean Time Repair a Fault)来度量,它是指从故障发生到故障修复所需要的平均时间。
可用行A(Availablity),其计算式为:A = MTBF / (MTBF + MTRF),它是指系统在执行任务的任意时刻能正常工作的概率。
系统吞吐率(Throughput)指的是系统在单位时间内所处理的信息量。
系统响应时间(Response Time)指的是从系统接受数据到输出结果的时间间隔。
系统资源利用率(Utility)是指系统中各个部件、各种设备的使用程度。
可移植性(Transplantable)是指将一个操作系统从一个硬件环境转移到另外一个硬件环境仍能正常工作的能力。
传统机器级以上的所有机器都称为虚拟机,它们是由软件实现的机器。软硬件的功能在逻辑上是等价的,即绝大多部分硬件的功能都可用软件来实现,反之亦然。
计算机系统结构的外特性,一般应包括以下几个方面(这也就是我们要分章学习的几个章节)把这几个方面弄清了,系统结构也就基本明确了:
(1)指令系统 (2)数据表示 (3)作数的寻址方式 (4)寄存器的构成定义 (5)中断机构和例外条件 (6)存储体系和管理 (7)I/O结构 (8)机器工作状态定义和切换 (9)信息保护。
所以在以后的学习中常回头想想这是系统结构的哪一方面,这对把握全局有好处。
这里提一下计算机系统结构的内部特性,计算机系统结构的内特性就是将那些外特性加以"逻辑实现"的基本属性。所谓"逻辑实现"就是在逻辑上如何实现这种功能,比如"上帝"给鸡设计了一个一定大小的胃,这个胃的功能是消化食物,这就是鸡系统的某一外特性,那怎么消化呢,就要通过鸡喙吃进食物和砂石,再通过胃的蠕动、依靠砂石的研磨来消化食物,这里的吃和蠕动等操作就是内特性。
还有一个就是计算机实现,也就是计算机组成的物理实现。它主要着眼于器件技术和微组装技术。拿上面的例子来说,这个胃由哪些组织组成几条肌肉和神经来促使它运动就是"鸡实现"。
据此我们可以分清计算机系统的外特性、内特性以及物理实现之间的关系。 在所有系统结构的特性中,指令系统的外特性是最关键的。因此,计算机系统结构有时就简称为指令集系统结构。我们这门课注重学习的是计算机的系统结构,传统的讲,就是处在硬件和软件之间接口的描述,也就是外特性。
这些不恰当的比喻只是帮助理解,不可强求对应,不然会有损科学的严密性。
计算机系统结构的分类
按"流"分类的方法,这是Flynn教授提出的按指令流和数据流的多倍性概念进行分类的方法。共有四大类,即:(S-single 单一的 I-instruction 指令 M-multiple 多倍的 D-data 数据)
SISD 单指令流单数据流,传统的单处理机属于SISD计算机。
SIMD 单指令流多数据流,并行处理机是SIMD计算机的典型代表。我国的YH-I型是此类计算机型。
MISD 多指令流单数据流,实际上不存在,但也有学者认为存在。
MIMD 多指令流多数据流,包括了大多数多处理机及多计算机系统。我国的YH-II型计算机是这种类型的计算机。
一般将标量流水机视为SISD类型,把向量流水机视为SIMD类型。
按"并行级"和"流水线"分类:这是在计算机系统中的三个子系统级别上按并行程度及流水线处理程度进行分类的方法。
--------------------------------------------------------------------------------
二、计算机系统的设计准则
1.只加速使用频率高的部件
这是最重要也是最广泛采用的计算机设计准则。因为加快处理频繁出现事件对系统的影响远比加速处理很少出现事件的影响要大。
2.阿姆达尔(Amdahl)定律
这个定律就是一个公式:即
应会运用此公式做一些计算或分析,所以要记住并理解其意义。
3.程序访问的局部性规律
程序访问的局部性主要反映在时间和空间局部性两个方面,时间局部性是指程序中近期被访问的信息项可能马上将被再次访问,空间局部性指那些在访问地址上相邻近的信息项很可能被一起访问。
三、计算机系统结构的发展
冯·诺依曼计算机的主要特点是:存储程序方式;指令串行执行,并由控制器加以集中控制;单元定长的一维线性空间的存储器;使用低级机器语言,数据以二进制表示;单处理机结构,以运算器为中心。
改进后的冯·诺依曼计算机使其从原来的以运算器为中心演变为以存储器为中心。 从系统结构上讲,主要是通过各种并行处理手段高提高计算机系统性能。
软件、应用和器件对系统结构发展的影响
软件应具有可兼容性,即可移植性。为了实现软件的可移植性,可用以下方法:
模拟:用软件方法在一台现有的计算机上实现另一台计算机的指令系统,这种用实际存在的机器语言解释实现软件移植的方法就是模拟。
仿真:用A机(宿主机)中的一段微程序来解释实现B机(目标机)指令系统中每一条指令而实现B机指令系统的方法称仿真,它是有部份硬件参与解释过程的。
一般将两种方法混合作用,对于使用频率高的指令用仿真方法,而对于频率低而且难于仿真实现的指令使用模拟的方法加以实现。
采用系列机的方法,可以这么说,系列机的系统结构都是一致的,如我们使用的INTEL 的80X86微机系列及其兼容机,系统结构都是一致的,当然在发展过程中它的系统结构可以得到了新的扩充,比如原来的586机器不支持MMX多媒体扩展指令集,但是后来的芯片中扩充了这些指令,使指令系统集扩大,但它们仍是同一系列的机器。这种系列机的方法主要是为了软件兼容。如上面的扩展指令,将使得以后针对这些指令优化的软件不能在以前的机子上运行(或不能发挥相应功能)导致向前兼容性不佳。但重要的是保证做到向后兼容,也就是在按某个时期推到市场上的该档机上编制的软件能不加修改地在它之后投入市场的机器上运行。
在系列机上,软件的可称植性是通过各档机器使用相同的高级语言、汇编语言和机器语言,但使用不同的微程序来实现的。
统一标准的高级语言
采用与机器型号无关的高级程序设计语言标准如FORTRAN、COBOL等,这种方法提供了在不同硬件平台、不同操作系统之间的可移植性。
开放系统:是指一种独立于厂商,且遵循有关国际标准而建立的,具有系统可移植性、交互操作性,从而能允许用户自主选择具体实现技术和多厂商产品渠道的系统集成技术的系统。
应用需求对系统结构发展的影响
计算机应用对系统结构不断提出的基本要求是高的运算速度、大的存储容量和大的I/O吞吐率。(我们要更快的主板CPU和内存、我们要更大的硬盘我们要更大的显示器更多的色彩更高的刷新频率...这就是需求)
计算机应用从最初的科学计算向更高级的更复杂的应用发展,经历了从数据处理、信息处理、知识处理以及智能处理这四级逐步上升的阶段。
器件对系统结构发展的影响
由于技术的进步,器件的性能价格比迅速提高,芯片的功能越来越强,从而使系统结构的性能从较高的大型机向小型机乃至微机下移。
综上所述:
软件是促使计算机系统结构发展的最重要的因素(没有软件,机器就不能运行,所以为了能方便地使用现有软件,就必须考虑系统结构的设计。软件最重要)
应用需求是促使计算机系统结构发展的最根本的动力(机器是给人用的,我们追求更快更好,机器就要做得更快更好。所以需求最根本)