计算机系统结构在计算机中的重要性
计算机系统结构也称为计算机体系结构,它是由计算机结构外特性,内特性,微外特性组成的。计算机系统结构就是计算机的机器语言程序员或编译程序编写者所看到的外特性。所谓外特性,就是计算机的概念性结构和功能特性。经典计算机系统结构概念的实质:计算机中软硬件界面的确定,其界面之上是软件的功能,界面之下是硬件和固件的功能。
韩寒妻子计算机系统结构研究的主要内容是计算机系统各级之间界面的定义及其上下功能的分配。即由机器语言设计者或编译程序设计者所看到的机器物理系统的抽象或定义。它是机器语言程序设计者或编译程序生成系统为使其所设计或生成的程序能在机器上正确运行,所需看到和遵循的计算机属性。它不包括机器内部的数据流和控制流、逻辑设计或器件设计等。
联通光纤猫
  1964年GM.Amdahl在介绍IBM360系统时指出:计算机体系结构是站在程序员的角度所看到的计算机属性,即程序员要能编写出可在机器上正确运行的程序所必须了解的概念性结构和功能特性。这是关于体系结构的早期定义,从此,计算机体系结构(computer architeture)词便广泛地使用起来。
朱时茂个人资料简介及
1982年,梅尔斯在他所著《计算机体系结构的进展》一书中,定义了组成计算机系统的若千层次,每一层都提供一定的功能支持它上面的一层,并把不同层之间的界面定义为某种类型的体系结构。Myers的定义发展了Amdahl的概念性结构的思想,明确了传统体系结构就是指硬件与软件之间的界面,即指令集体系结构。根据这个层次模型,我们可以进一步引入虚拟机的概念,例如,系统虚拟机就是把操作系统提供的命令和功能调用当作该虚拟机的机器语言。又如,高级语言虚拟机就是把某种高级语言当作它的机器语言。从Myers的定义可以看出,计算机系统组织包括了各种体系结构,因此指令集体系统构就成为计算机系统组织的一个子集
黄日华个人资料简介1984年拜尔(JLBaer)在一篇题为“计算机体系结构”(Computer Architecture)的文章中,给出了一个含义更加广泛的定义:体系结构是由结构、组织、实现、性能四个基本方面组成。其中,结构指计算机系统各种硬件的互连微博运营组织指各种部件的动态联系与管理实现指各模块设计的组装完成性能指计算机系统的行为表现。这个定义发展了Amdahl的功能特性思想。显然,这里的计算机系统组织又成为体系结构的一个子集。
    目前,国内流行的几本体系结构的教材,大多采用Myers的说法。因而,常对计算机体系结构、计算机组织、计算机实现三者的关系加以区别:(1)计算机体系结构(computer archi
tecture)是指计算机的概念性结构和功能属性(2)计算机组织(computer organization)是指计算机体系结构的逻辑实现,包括机器内的数据流和控制流的组成以及逻辑设计等。我们平常也把它称为计算机组成原理(3)计算机实现(computer implementation)是指计算机组织的物理实现。
计算机体系结构是程序员所看到的计算机的属性,即计算机的逻辑结构和功能特征,包括其各个硬部件和软部件之间的相互关系。对计算机系统设计者,计算机体系结构是指研究计算机的基本设计思想和由此产生的逻辑结构对程序设计者是指对系统的功能描述(如指令集、编制方式等)
计算机系统结构指软、硬件的系统结构,有两方面的含义一是从程序设计者的角度所见的系统结构,它是研究计算机体系的概念性结构和功能特性,关系到软件设计的特性二是从硬件设计者的角度所见的系统结构,实际上是计算机体系的组成或实现,主要着眼于性能价格比的合理性。
概念性结构与功能特性,这是从程序设计者角度所看到的计算机属性。它包括机器内的数据表示、寻址方式以及对这些数据的运算和控制这些运算的执行等(即指令系统)。对于通
用型机器,一般包括数据表示、寻址规则、寄存器定义、指令系统、中断机构、机器工作状态的定义和状态切换、机器级的输入、输出结构以及对信息保护的支持等。
计算机体系结构解决的是计算机系统在总体上、功能上需要解决的问题,它和计算机组成、计算机实现是不同的概念。一种体系结构可能有多种组成,一种组成也可能有多种物理实现。计算机系统结构的逻辑实现,包括机器内部数据流和控制流的组成以及逻辑设计等。其目标是合理地把各种部件、设备组成计算机,以实现特定的系统结构,同时满足所希望达到的性能价格比。一般而言,计算机组成研究的范围包括:确定数据通路的宽度、确定各种操作对功能部件的共享程度、确定专用的功能部件、确定功能部件的并行度、设计缓冲和排队策略、设计控制机构和确定采用何种可靠技术等。计算机组成的物理实现包括处理机、主存等部件的物理结构,器件的集成度和速度,器件、模块、插件、底板的划分与连接,专用器件的设计,信号传输技术,电源、冷却及装配等技术以及相关的制造工艺和技术。
计算机系统结构、计算机组成和计算机实现是三个互不相同的概念,但它们是互相联系和相互影响的。计算机系统结构是计算机系统的软、硬件分界面,是机器语言程序设计者或
者编译程序生成系统为使其设计或生成的程序能在机器上运行所看到的计算机属性计算机组成是计算机系统结构的逻辑实现计算机实现是计算机组成的物理实现。
具有相同系统结构的计算机可以采用不同的组成。例如,具有相同指令系统的计算机,指令的取出、译码、取操作数、运算、存结果既可以采用顺序方式进行解释,也可以采用流水方式让它们在时间上重叠进行来提高速度。又如,乘法指令可以利用专用乘法器来实现,也可以通过加法器重复相加、移位来实现,这主要取决于对速度的要求、乘法指令出现的频度和所采用的乘法运算方法。显然,前一种方法可以有效地提高乘法运算速度,而后一种方法则可以降低系统的价格。
    一种系统结构可以有多种计算机组成,同样,一种计算机组成可以采用多种不同的计算机实现。例如,在CPU的选择上,同一类型的CPU般都有多个不同的工作频率,从速度及价格等角度考虑,可以选择工作频率较高的CPU来实现较高的运算速度,也可以选择工作频率较低的CPU来保证系统的价格相对较低。又如,在主存器件的选择上,可以选择TTL型的器件, 也可以采用MOS型器件既可以采用单片VLSI集成电路,也可以采用多片LSI或MSI集成电路组成既可以选择响应速度较快的芯片,也可以选择响应速度较慢的芯片。实际上,这也是在速度、价格等因素之间进行选择。换句话说,采用什么样的实现技
术主要考虑所要达到的性能价格比及器件技术的现状。
    反过来,计算机实现是计算机系统结构和计算机组成的基础,其技术的发展对计算机系统结构有着很大的影响,而计算机组成也会影响计算机系统结构。例如,器件的发展使系统结构由大型机下移到小型机及微机中的速度加快,早期用于大型机的各种数据表示、指令系统、操作系统很快被应用到小型机及微机中。例如,在目前的PC机中使用的CPU,都普遍采用了在早期大型机中才使用的超标量技术,并引入了VLIW技术,有些机器还使用了超流水线技术。
    系统结构的设计必须结合应用考虑,为软件和算法的实现提供更多、更好的支持。同时,还要涉及可能采用和准备采用的组成技术。即计算机系统结构的设计应考虑减少对各种组成及实现技术的使用限制,在种系统结构中,应允许有多种不同的组成和实现技术,既能方便地在低档机器上用简单、低成本的组成实现,也能在高档机器上以较高的成本、复杂的组成实现。例如,在IBM370系列机中,由低到高有不同档次的机器,它们的中央处理器都具有相同的基本指令系统,只是指令的分析、执行方式不同,可以选择在低档机器上用顺序方式处理,在高档机器上用并行方式处理。又如,在数据通路宽度的组成和实现上,不同档次机器可以分别采用8位、16位、32位和64位。IBM370系列机采用通道方
式进行输入/输出,可以选择在低档机器中采用的结合型通道和在高档机器中采用的独立型通道。
    在不同时期,系统结构、组成和实现所包含的内容会有所不同,在某些计算机系统中作为系统结构的内容,在另一些计算机系统中可能是组成和实现的内容。随着各种新技术的出现和发展,特别是器件技术的发展,各种功能都集成到一个芯片上,使系统结构、组成和实现融合于一体,系统结构、组成和实现三者之间的界限变得越来越模糊。
计算机系统层次结构:计算机系统由硬件和软件两大部分构成,按功能可以分为7个层次。第零级是硬联逻辑级,这是计算机的硬件,由由存储器、控制器、中央处理器和输入输出设备组成。第一级是微程序级。这级的机器语言是微指令集,程序员用微指令编写的微程序,一般是直接由硬件直接执行的。第二级是传统机器级,这级的机器语言是该机的指令集,程序员用机器指令编写的程序可以由微程序进行解释。第三级是操作系统级,从操作系统的基本功能来看,一方面它要直接管理传统机器中的软硬件资源,另一方面它又是传统机器的延伸。第四级是汇编语言级,这级的机器语言是汇编语言,完成内汇编语言翻译的程序叫做汇编程序。第五级是高级语言级,容这集的机器语言就是各种高级语言,通常用编译程序来完成高级语言翻译的工作。第六级是应用语言级,这一级是为了使计算机满
足某种用途而专门设计的,因此这一级语言就是各种面向问题的应用语言。
csgo无法连接任意官方服务器把计算机系统按功能划分为多个层次结构后,对各机器级的程序员而言,只要熟悉和遵守该级语言的规范准则,所编写的程序就总能在此机器级上运行并得到结果,而不用了解该机器级是如何实现的。各机器级的实现主要靠翻译或解释,或者是这两者的结合。翻译是先用转换程序将高级机器级上的程序整个地变换成低一级机器级上可运行的等效程序,然后再在低级机器级上实现的技术。解释则是在低一级机器级上用它的一串语句或指令来仿真高级机器级上的一条语句或指令的功能,通过对高级程序中的每条语句或指令逐条解释来实现的技术。计算机系统采用何种实现方式,要从效率、速度、价格、资源状况、可靠性等多方面因素全盘考虑,对软件、硬件及固件的取舍进行综合平衡。
    软件和硬件在逻辑功能上是等效的,同一逻辑功能既可以用软件也可以用硬件或固件实现。从原理上讲,软件实现的功能完全可以用硬件或固件完成同样,硬件实现的逻辑功能也可以由软件的模拟来完成,只是性能、价格以及实现的难易程度不同而已。例如,在计算机中实现十进制数乘法这一功能,既可以用硬件来实现,也可以用软件来完成。用硬件实现,需要设计十进制数乘法机器指令,其特点是完成这一功能的速度快,但需要更多的器件。而用软件来实现这个功能,则要采用加法、移位等指令通过编程来实现,其特点
是实现的速度慢,但不需要增加器件。
    软、硬件的功能分配比例可以在很宽的范围内变化,这种变化是动态的。软、硬件功能分配的比例随不同时期以及同一时期的不同机器的变化而变化。由于软、硬件是紧密相关的,软、硬件界面常常是模糊不清的,因此在计算机系统的功能实现上,有时候很难分清哪些功能是由硬件完成的,哪些功能是由软件完成的。在满足应用的前提下,软、硬件功能分配比例的确定主要看能否充分利用硬件、器件技术的现状和进展,使计算机系统达到较高的性能价格比。对于计算机系统的用户,还要考虑他所直接面对的应用语言所对应的机器级的发展状况。
从目前软硬件技术的发展速度及实现成本上看,随着器件技术的高速发展,特别是半导体集成技术的高速发展,以前由软件来实现的功能越来越多地由硬件来实现。总的来说,软件硬化是目前计算机系统发展的主要趋势。
从概念和功能上把一个复杂的计算机系统看成由多个机器级构成的层次结构,可以有如下的好处。首先,有利于理解软件、硬件和固件在系统中的地位和作用。从系统层次的划分中可以看出,微程序机器级、传统机器级、操作系统机器级不是为应用程序员解题设计的,
而是为运行支持更高层次机器级程序所必须的解释程序和翻译程序而设计的,以便能设计和实现新的虚拟机器级在这之上的机器级则主要是为应用程序设计人员解决各类实际应用问题而设计的。其次,有利于理解各种语言的实质和实现途径。计算机各层次的语言总是通过低一级的语言翻译或解释来实现,这说明相邻机器级之间的语义差别不能太大。再次,有利于推动计算机系统结构的发展。例如,可以重新分配软、硬件的比例,为虚拟机器的各个层次提供更多更好的硬件支持,改变硬件及器件快速发展而软件却日益复杂、开销过大的状况。又如,可以用硬件和固件来实现高级语言和操作系统,从而形成高级语言机器和操作系统机器。再如,用真正的机器来取代各级虚拟机,摆脱各级功能都在同一台实际机器上实现的状况,发展多处理机系统、分布处理系统、计算机网络等系统结构。最后,有利于理解计算机系统结构的定义。把计算机按功能划分成多个不同的层次结构,从各个层次的功能划分和实现去了解计算机系统,有助于更深入地了解系统结构的定义。
计算机体系结构以图灵机理论为基础,属于冯·诺依曼体系结构。本质上,图灵机理论和冯·诺依曼体系结构是一维串行的,而多核处理器则属于分布式离散的并行结构,需要解决二者的不匹配问题。
首先,串行的图灵机模型和物理上分布实现的多核处理器的匹配问题。图灵机模型意味着串行的编程模型。串行程序很难利用物理上分布实现的多个处理器核获得性能加速与此同时,并行编程模型并没有获得很好的推广,仅仅局限在科学计算等有限的领域.研究者应该寻求合适的机制来实现串行的图灵机模型和物理上分布实现的多核处理器的匹配问题或缩小二者之间的差距,解决“并行程序编程困难,串行程序加速小”的问题。