架构和组织
计算机体系结构处理计算机、数据存储设备和网络组件的设计,这些组件存储和运行程序,传输数据,并驱动计算机之间、网络之间以及与用户之间的交互。计算机架构师使用并行性和各种内存组织策略来设计性能非常高的计算系统。计算机体系结构要求计算机科学家和计算机工程师之间有很强的交流,因为他们都从根本上关注硬件设计。
在最基本的层面上,计算机是由控制单元,一个算术逻辑单元(ALU)内存单位,输入/输出(I / O)控制器。ALU执行简单的加、减、乘、除和逻辑操作,如OR和and。内存存储程序的指令和数据.控制单元从内存中获取数据和指令,并使用ALU的操作来使用这些数据执行这些指令。(控制单元和ALU一起被称为控制单元中央处理器(CPU))。当遇到输入或输出指令时,控制单元在存储器和指定的I/O控制器之间传输数据。CPU的运算速度主要决定了计算机整体的运算速度。所有这些组件——控制单元、ALU、内存和I/O控制器——都是通过晶体管电路。
计算机还有另一种叫做a的内存缓存,体积小,速度极快(与主存或随机存取存储器相比[内存可以用来储存紧急或经常需要的信息的单元。目前的研究包括缓存设计和算法它可以预测接下来可能需要哪些数据,并将其预加载到缓存中以提高性能。
I/O控制器将计算机连接到特定的输入设备(如键盘和触摸屏显示器),以将信息馈送到存储器,以及输出设备(如打印机和显示器),以将信息从存储器传输到用户。附加的I/O控制器将计算机连接到网络通过端口提供管道当计算机与计算机连接时,数据通过它流动互联网.
连接到I/O控制器的是次要存储设备,例如磁盘驱动器,它比主存储器或高速缓存存储器速度更慢,容量更大。磁盘驱动器用于维护永久数据。它们可以永久地或临时地以文件的形式连接到计算机光盘(CD),数码视像光碟(DVD),或记忆棒(也称为闪存驱动器).
电脑的操作,一次一次程序和一些数据已经加载到RAM,发生如下。第一条指令从RAM传输到控制单元,并由硬件电路解释。例如,假设指令是一串位代码LOAD 10。这条指令将内存位置10的内容加载到ALU中。下一条指令,比如ADD 15,被取出。然后,控制单元将内存位置15的内容加载到ALU中,并将其与已经存在的数字相加。最后,指令STORE 20将把总和存储到位置20。在这个层面上,计算机的操作与袖珍计算器的操作没有太大的不同。
一般来说,程序不仅仅是LOAD、STORE和算术操作的冗长序列。最重要的是,计算机语言包括条件指令——本质上,规则说:“如果内存位置n满足条件一个,做指令号x接下来,否则做指令y这使得程序的进程可以由之前操作的结果来决定——这是一种至关重要的能力。
最后,程序通常包含重复多次的指令序列,直到某个预定条件变为真为止。这样的序列称为循环。例如,需要一个循环来计算第一个的和n整数,n是一个价值存储在单独的内存位置。能够执行指令序列、条件指令和循环的计算机体系结构被称为“图灵完成”,这意味着它们可以执行任何算法这是可以定义的。图灵完备性是任何计算机组织的基本特征。
逻辑设计是计算机领域吗科学利用逻辑学的基本原理和特性来设计电子电路。看到布尔代数)来执行控制单元、ALU、I/O控制器和其他硬件的操作。每个逻辑函数(AND, OR, AND NOT)是由一种叫做门的特殊类型的设备来实现的。例如,ALU的加法电路的输入与待加的两个数的所有位相对应,输出与求和的位相对应。连接输入和输出的导线和门的排列是由加法的数学定义决定的。控制单元的设计提供了解释指令的电路。由于需要效率逻辑设计还必须优化电路以最大速度运行,并具有最少的门和电路数量。
与建筑相关的一个重要领域是设计微处理器,这是一个完整的cpu控制单元,ALU,和内存集成电路芯片。附加的存储器和I/O控制电路连接到这个芯片上,形成一个完整的计算机。这些缩略图大小的设备包含数百万个晶体管那实现现代计算机的处理和存储单元。
超大规模集成微处理器的设计分为许多阶段,包括创建初始的功能或行为规范,将该规范编码为硬件描述语言,并将设计分解为模块,并为最终的芯片组件生成大小和形状。它还涉及芯片规划,其中包括建立一个“平面图”,以指示芯片上每个组件应该放置的位置以及与其他组件连接的位置。计算机科学家也参与了创建计算机辅助设计(CAD)工具,可以在芯片设计的各个阶段支持工程师,并开发必要的理论结果,例如如何有效地设计一个满足给定约束的面积接近最小的平面图。
的进步集成电路技术太不可思议了。例如,1971年第一个微处理器芯片(英特尔公司1993年,英特尔(Intel)的奔腾(Pentium)芯片上有超过300万个晶体管,到2000年,这种芯片上的晶体管数量约为5000万个。Power7芯片于2010年由IBM包含大约10亿个晶体管。晶体管数量的现象集成电路每两年翻一倍广为人知摩尔定律.
容错能力是指计算机在一个或多个部件发生故障时仍能继续运行的能力。为了确保容错性,通常复制关键组件,以便在需要时备份组件可以接管。像飞机控制和制造过程控制这样的应用程序运行在备份处理器的系统上,备用处理器可以在主处理器出现故障时接管,并且备份系统通常并行运行,因此过渡是平稳的。如果系统的关键在于它们的故障可能是灾难性的(如飞机控制),那么从并行运行在不同机器上的复制进程中收集到的不兼容结果将通过投票机制解决。计算机科学家参与这种复制系统的分析,提供理论方法来估计由给定配置和处理器实现的可靠性参数,例如平均故障间隔时间和修复处理器所需的平均时间。容错在分布式系统和网络中也是一个理想的特性。例如,一个分布式的优势数据库在不同的网络主机上复制的数据可以在一台主机故障时提供自然的备份机制。
计算科学
计算科学应用计算机模拟、科学可视化、数学建模、算法、数据结构、网络、数据库设计、符号计算和高性能计算,以帮助推进各种目标学科.这些学科包括生物学,化学,流体动力学,考古,金融,社会学,取证.计算科学发展迅速,特别是由于科学仪器传输的数据量急剧增长。这种现象被称为“大数据”问题。
计算科学所需要的数学方法要求方程和函数从连续到离散的转换。例如,计算机集成一个函数在一个区间内的变化不是通过应用来完成的积分微积分而是通过近似函数下的面积图作为从函数求值得到的面积的和离散点。类似地,a的解微分方程得到的序列离散点确定的近似真解曲线由切向行段。当以这种方式离散化时,许多问题可以被重铸为一个方程涉及矩阵(数字的矩形数组)可以用线性代数.数值分析就是研究这样的计算方法。在应用数值方法时,必须考虑几个因素:(1)该方法产生解的条件,(2)解的精度,(3)求解过程是否稳定(即,不显示错误增长)和(4)计算复杂度(在上述意义上)获得所需精度的解。
大数据科学问题的要求,包括解决越来越大的方程组,涉及使用大型和强大的处理器阵列(称为多处理器或超级计算机),通过将多个计算分配给不同的处理元素,可以并行进行多个计算。这些活动引发了人们对并行计算机体系结构和算法的浓厚兴趣,这些并行计算机体系结构和算法可以在这样的机器上有效地执行。
图形与视觉计算
图形和视觉计算是处理在计算机屏幕上显示和控制图像的领域。这一领域包括高效实现四个相互关联的计算任务:渲染,建模,动画,以及可视化。图形技术结合了线性代数、数值的原理集成、计算几何、专用硬件、文件格式和图形用户界面(gui)来完成这些复杂的任务。
图形学的应用包括CAD、美术、医学成像,科学数据可视化,以及视频游戏.CAD系统允许计算机通过提供交互式绘图来设计从汽车零件到桥梁到计算机芯片等各种对象工具和一个工程接口模拟还有分析工具。美术应用程序允许艺术家使用计算机屏幕作为媒介来创建图像,电影特效动画片和电视广告。医学成像应用涉及从诸如x射线和磁共振成像(核磁共振成像)来协助医生诊断病情。科学可视化使用大量的数据来定义科学现象的模拟,例如海洋建模,以产生比数字表格更能洞察现象的图片。图形还为视频游戏、飞行模拟和其他现实或幻想的表现提供了逼真的可视化效果。这个词虚拟现实被创造出来指与计算机模拟虚拟世界的任何互动。
计算机图形学面临的一个挑战是开发有效的算法来操纵图像无数组成计算机图像的线、三角形和多边形。为了在屏幕上呈现逼真的图像,每个对象必须渲染为一个集平面单位。边缘必须被平滑和纹理,以便他们的底层建设从多边形是不明显的肉眼。在许多应用中,静止图像是不够的,需要快速显示实时图像。实现实时动画需要极其高效的算法和最先进的硬件。(有关图形显示的更多技术细节,请看到计算机图形学.)
人机交互
人机交互(HCI)涉及设计用户与计算机之间有效的交互,以及构建支持这种交互的界面。HCI发生在包含两者的接口上软件和硬件.用户界面设计影响生命周期软件,所以它应该出现在设计过程的早期。因为用户界面必须适应各种各样的用户风格和功能,HCI研究借鉴了几个学科,包括心理学,社会学,人类学,工程.在20世纪60年代,用户界面由允许操作的计算机控制台组成操作符直接键入可以立即或在将来某个时间执行的命令。20世纪80年代,随着更加人性化的个人电脑的出现,用户界面变得更加复杂,以至于用户可以“点击”向计算机发送命令操作系统.
因此,人机交互领域的出现是为了建模、开发和测量计算机应用程序和访问其服务的人之间的各种类型的接口的有效性。图形用户界面使用户能够通过简单的方式与计算机通信,例如用图标指向一个图标鼠标或触碰用触控笔或食指。该技术还支持窗口环境在电脑屏幕上,允许用户同时使用不同的应用程序,每个窗口一个。