有道网站收录提交入口,深圳报业集团官网,成都商铺装修设计公司,大学网站首页设计1 计算机体系结构
计算机革命发展得非常快速#xff0c;以至于使用老式计算机的很多电影现在看起来十分有年代感#xff0c;有的电影甚至无法预料后来的计算机是什么样的。
计算机各个组成部分的技术发展非常不均衡#xff0c;各部分性能差异非常大。在计算机的发展前期以至于使用老式计算机的很多电影现在看起来十分有年代感有的电影甚至无法预料后来的计算机是什么样的。
计算机各个组成部分的技术发展非常不均衡各部分性能差异非常大。在计算机的发展前期几乎没有人敢想以后居然能用上便捷式计算机。对于计算机来说老式计算机一般都要接上电源而现在的笔记本电脑、ipad基本上都可以利用外部电源来解决电源问题。
除了电源问题外功耗问题也存在。一个狭小的计算机空间如何解决处理器产生的热量是非常重要的课题尽管后来出现了多核处理器但是计算机的性能依旧上不去绝大部分原因来源于散热。
1.1 计算机系统体系结构
1.1.1 简单的计算机结构
媒体一直把一个微处理器microprocessor或者一块芯片chip叫做计算机系统。这实际上是不对的计算机系统应该包括中央处理单元cemtral processing unit,CPU保存程序和数据的存储器以及将芯片转换为实用系统的其他子系统。这些子系统会使得CPU和其他外部设备的通信变得更加容易。
计算机执行程序的部分叫做CPU也叫处理器微处理器则是在单个硅片上实现的CPU。围绕着微处理器构建的计算机被称作微机。
CPU尽管是核心但是计算机性能可不仅仅取决于此如果处理的数据来源慢处理再快又有什么用还不是等人送数据进来才能处理。在过去的几十年处理器性能持续高速增长而硬盘的性能几乎不变等到固态硬盘诞生后这种矛盾才趋于缓和。
下图描述了一个简单的计算机系统的结构 其中信息保存在存储器而存储器一般分为多种如主存、缓存、辅存、寄存器等等。这里图中出现了Cache。Cache一般指的是高速缓存在以前Cache一般位于CPU之外而在现在大多数Cache都在CPU内部。 Cache存储器电脑中为高速缓冲存储器)是位于CPU和主存储器DRAMDynamic Random Access Memory之间规模较小但速度很高的存储器通常由SRAMStatic Random Access Memory 静态存储器组成。它是位于CPU与内存间的一种容量较小但速度很高的存储器。CPU的速度远高于内存当CPU直接从内存中存取数据时要等待一定时间周期而Cache则可以保存CPU刚用过或循环使用的一部分数据如果CPU需要再次使用该部分数据时可从Cache中直接调用这样就避免了重复存取数据减少了CPU的等待时间因而提高了系统的效率。Cache又分为L1Cache一级缓存和L2Cache二级缓存L1Cache主要是集成在CPU内部而L2Cache集成在主板上或是CPU上。 需要注意的是对应的信息在适当的时刻存放在适当的存储器这点十分重要如果存放不当即使CPU再快也只能干等。
图中主存一般指的是内存、寄存器而辅存一般指外存如磁盘、CD-ROM等。而总线一般是用来传输各个子系统之间的通信确保数据能够从计算机的一个位置传输到另外一个位置。 寄存器一般处于CPU内部用来存放数据。对于常用的数据一般先放在存储器放不下了就放到高速缓冲去再放不下就转移到磁盘。 1.1.2 计算机
定义计算机时必须指明计算机的类型。冯诺依曼是最早界定计算机结构的人之一。计算机有很多种常见的有个人计算机、手机、模拟计算机、神经计算机、量子计算机等。
通用的数字计算机一般分为两部分CPU和存储器系统。CPU读程序来完成程序指定的操作。存储器系统保存两类信息程序和程序产生的数据。 程序和程序产生的数据不一定要放在同一个存储器系统内但是现在大多数计算机系统都是放在同一个存储器系统。这种计算机叫做存储程序计算机。 计算机可以看做是一个黑盒子它将信息从一个位置转移到另外一个位置并且处理这个转移的过程通常是由总线来完成CPU通过总线传来的信息读取出其中的指令然后进行处理。需要注意的是处理数据完成后可能要把数据传回存储器。
一个简单的处理数据的过程如下所示
对两个数X和Y做加法。最开始CPU会从存储器读取一条指令这条指令通过CPU的分析和解码后就获得了这条指令所需的数据。此时X和Y会从存储器中取出然后分别放于不同寄存器中当读取相加指令的时候就把两个寄存器内部的内容相加并把结果保存在第三个寄存器中最后再根据指令把数据写回存储单元。 一般来说传数据和传指令的总线只有一条数据和指令轮流使用当然也有个例比如哈佛体系结构计算机。 1.2 体系结构的构成
1.2.1 概述
在上面我们曾经提到寄存器。一般来说寄存器用来存放一个单位的数据或字数据。由于其处于CPU内部在计算机内它的访问速度远远快于CPU外的存储器。
对于体系结构的构成来说有时候体系结构和组成两个术语会交差使用但是实际上体系结构和构成是有区别的举个例子时钟的体系结构是定义在有刻度的表盘上转动指针而它的组成可以是机械钟石英钟电子钟。
上述的例子说明了组成是体系结构的子集给定的体系结构可以有不同的组成方式。
对于程序员来说计算机底层原理实际上都被屏蔽掉了我们并不关心XY是什么底层逻辑在相加而在意其结果。计算机体系结构的这个抽象视图现在通常被叫做指令集体系结构。 计算机是由二进制的0和1组成的串这串也被叫做机器码。人类可读的机器码叫做汇编语言。而能够在类型完全不同的计算机上运行和底层计算机体系结构没有关系的代码叫做高级语言。任何代码写完之后运行前都需要先通过编译器的编译转换为本地机器码之后才能运行。 指令集体系结构包括了数据类型、保存临时结果的寄存器、指令的类型和格式以及寻址方式。术语微代码是定义在芯片上的一组执行基本操作微指令的代码执行这些操作可以解释机器码。
在这门知识结构体系中我们用体系结构来代表计算机的抽象指令集体系结构而用组成来代表计算机的硬件实现。而后会用术语微体系结构来描述CPU的实现。
1.2.2 计算机系统和技术
下图的分类表明了设计计算机所要考虑的要素。 1.2.2.1 技术
20世纪70年代以来半导体技术一直遵循着摩尔定律的预测而发展。摩尔定律表明了芯片的集成度每18个月翻一番。有时候意味着处理器的性能每18月翻一番。
1.2.2.2 应用
有些计算机用于嵌入式、有些计算机用于个人工作、有些计算机用于电视、游戏机对于不同的应用场景计算机的设计也会有所不同。
1.2.2.3 工具
计算机硬件的设计软件也会影响计算机的设计你要用什么样的软件去设计硬件这取决于软件产品做的好不好精度高不高。
1.2.3 计算机体系结构在计算机科学的地位
工欲善其事必先利其器对于想要学习计算机的人不知道计算机组成原理怎么行对于想优化代码的在了解了计算机体系结构后就会思考到对应的优化方案进而付出实践。 时钟 也许你听到这个术语你第一个想到的是我们现实的时钟实际上在计算机操作系统、计算机组成原理、数字电路设计都会涉及到这个术语。在绝大多数数字电路中都带有一个时钟用来生成连续的间隔固定的电脉冲流。之所以叫做时钟无非是因为可以利用它来确定计算机的一些事件的顺序。 事件由时钟信号触发的数字电路被称作同步。有些事件则是异步的比如移动鼠标移动了他才会向计算机发送信号这是个先动后发的过程属于异步事件。然而计算机在每个时钟脉冲都会去检查一下鼠标在干嘛这是一个同步事件。 例如我们说的时钟中断在所有外部中断中时钟中断起着特殊的作用。因为计算机是以精确的时间进行数值运算的数据处理的最基本的时间单元是时钟周期。例如取指令执行指令存取内存等都依靠时钟进行时间的确定。