术语体系结构的3种用法
指令集体系结构(ISA): 描述了程序员看到的计算机的抽象视图,并且定义了汇编语言和编程模型。 之所以说它是抽象的,是因为它并没有考虑计算机的实现。 微体系结构:描述了一种指令集体系结构的实现方式。微体系结构关注计算机的内部设计 系统体系结构:关注包括处理器、存储器、总线、和外设在内的整个系统
什么是计算机体系结构
·计算机系统包括读取并执行程序的中央处理单元(CPU),保存程序和数据的存储器,以及输入输出子系统,这些子系统会使CUP与显示器、打印机等外部设备之间的通信变得更加容易。 ·计算机中实际执行程序的部分叫做CPU,或者更简单地被称为处理器。微处理器则是在单个硅片上实现的CPU。围绕着微处理构建的计算机被称为微机 ·尽管CPU是计算机的核心,计算机的性能既取决于CPU,也取决于其他子系统的性能。如果不能高效进行数据传输,仅仅提高CPU的性能是毫无意义的。、
简单通用计算机结构
信息(即程序和数据)保存在存储器中,为了实现不同的目标,计算机会使用不同类型的存储器,如Cache、主存、辅存等多个存储层次,大多数处理器都在CPU内集成了片上Cache。 Cache 是存放常用数据的高速、专用存储器。主存中存放了大量的工作数据。辅存是指磁盘和CD-ROM,能够存储海量数据。 组成计算机的各个子系统通过总线连接在一起,数据通过总线从计算机中的一个位置传递到另外一个位置。 数字计算机的结构,可以被分为两部分:中央处理单元和存储器系统。CPU读程序并完成程序指定的操作。存储器系统保存两类信息:程序,程序处理或产生的数据 寄存器是CPU内部用来存放数据的存储单元 时钟提供了脉冲流,所有内部操作都在时钟脉冲的触发下进行。时钟频率是决定计算机的一个因素
计算机指令
尽管计算机能够执行上百种不同的指令,但下面的6条基本指令可以将所有计算机指令进行分类: MOV A,B 将B的值复制到A LOAD A,B 将存储单元B的值复制到寄存器A中 STORE A,B 将寄存器B的值复制到存储单元A中 ADD A,B A与B相加,结果保存到A中 TEST A 测试A的值是否为0 BEQ Z 若最后一次测试结果为TRUE,执行地址Z处的代码,否则继续执行
寄存器
寄存器是用来存放一个单位的数据或字数据的存储单元。寄存器通常用它所保存数据的位数来描述,典型的有8位、16位、32位和64位。 寄存器与存储器中的字存储单元没有本质区别。二者的实际差别在于,寄存器位于CPU内,它的访问速度远远快于访问CPU外的存储器。
时钟
绝大多数数字电子电路都带有一个时钟,用以生成连续的间隔固定的电脉冲流。之所以被称作时钟,是因为可用这些电脉冲来计时或确定计算机内所有事件的顺序。如,处理器可能会在每一个时钟脉冲到来时执行一条新指令。
RISC(精简指令集计算机) 体系结构
设计策略:是使用少量的指令完成最少的简单操作 缺点:程序设计更难,复杂指令需要用简单指令模拟 应用: ARM处理器 例如:3*3 = 3+3+3
CISC(复杂指令集计算机)体系结构
设计策略:是使用大量的指令,包括复杂指令 有点:程序设计更容易,因为每个简单的或复杂的任务都有一条对应的指令。程序员不需要写一大堆的指令去完成复杂的任务 缺点:指令集的复杂性使得CPU和控制单元电路非常复杂 应用:英特尔公司开发的奔腾系列CPU 例如:3*3 直接实现乘法指令
存储器
存储数据和程序,一个存放信息的表格或者目录
存储系统
处理器将一个放在地址总线上的地址以及一个用于选择读操作或写操作(也被称为读或写周期)的控制信号发送给存储器。 在读周期中,存储器将数据放在数据总线上供CPU读取。 写周期中,放在数据总线上的数据被写入存储器。 信息进入或离开存储器的位置叫做端口
寄存器传输语言(RTL)
由于使用文字描述计算机的操作很不方便,使用RTL可以更加容易的定义计算机内发生的操作
RLT符号
区分存储单元的地址和它的内容非常重要。 在RTL语言中,用方括号[]表示存储单元的内容,如 [15]=Max_Run 含义是:地址为15的存储单元保存了变量Max_Run的值 左箭头符号表示数据传送操作,如 15<–[15]+1 含义是:将地址为15的存储单元的值加1,并将结果写回地址为15的的存储单元
存储程序的概念
下面伪代码描述了存储程序计算机的基本操作: 存储程序计算机 程序计数器指向存储器中的第一条指令 REPEAT 从程序计数器所指的存储单元中读出指令 修改程序计数器,使之指向下一条指令 将从存储器中取出的指令解码 执行指令 FOREVER END 执行一条指令需要至少两次访存,第一次访存是读取指令,第二次访存要么从存储器读出指令需要的数据,要么将它之前的指令产生的或修改过的数据写回存储器。
指令格式
存储程序计算机的一种直观合理的指令格式可以用下面的形式表示: operation Address1 ,Address2,Address3(操作码+操作数) Operation表示要执行的指令的动作 Address1、Address2和Address3分为是3个操作数在存储器中的位置。在这条指令中,操作数为数据的地址,而不是数据本身。 例:ADD P,Q,R是一条典型的三操作数指令,P、Q、R是三个存储单元地址的符号名。 这个三操作数指令格式用RTL表示为: [Address1] ←[Address2] Operation [Address3]
两地址指令
有些计算机实现了两地址指令,其格式为 Operation Address1,Address2 Address2为源操作数,Address1既是源操作数也是目的操作数。 指令ADD P,Q的RTL定义为: [P]←[P]+[Q] 两地址指令会破坏它的一个操作数,也就是说,会用结果替换源操作数P,本书大部分章节约定两地址指令格式为: Operation destination , source 在实际计算机中,一般不允许同一条指令中使用两个存储地址,大多数计算机都规定一个地址是存储器地址,另外一个地址是寄存器
单地址指令
有些计算机实现单地址指令,其格式为: Operation address 指令中只提供了一个操作数地址,而指令却需要至少两个地址,处理器不得不使用一个不需要显示地址的第二操作数,第二个操作数来自CPU内一个叫累加器的寄存器
计算机分类
可以按照计算机的指令处理数据的方式对计算机分类 存储器-存储器型:一条指令能够从存储器中读出源操作数,对数据完成某个操作,并将结果保存在存储器中 寄存器-存储器型:能够处理两个数据,其中一个位于存储器中,另一个位于寄存器中,结果要么被写回存储器,要么被写回寄存器,如Intel IA32 CPU体系结构 寄存器-寄存器型:只能对寄存器中的内容进行操作,这些计算机必须通过LOAD指令将数据读入寄存器病使用STORE指令将数据从寄存器送回存储器。由于LOAD和STORE操作是仅有的存储器访问指令,这些计算机也被称为load/store型计算机,如ARM和MIPS CPU体系结构
计算机系统概览
存储层次:由于CPU和存储器的性能之间的差距不断加大,通过在使用数据之前将它们从存储器中取出来消除相对慢速的存储器的影响,以降低延迟 寄存器:存放处理器的工作数据 Cache:缓存常用数据的快速存储器 DRAM(内存):存放工作数据 硬盘:保存程序和数据 注意,硬盘的容量是寄存器的4000万倍,但速度却比寄存器慢2000万倍
Cache高速缓存
经常被用到的数据保存在Cache中,Cache的访问时间比主存短得多。Cache保存主存中经常使用的数据的副本。Cache系统与计算机的地址总线和数据总线相连,监听CPU与存储器之间的事务。 只要Cache注意到CPU发出的地址与它保存的某个数据元素地址相同,就把这个数据发送个CPU,而不会去主存中取数据。 一级缓存(集成在CPU中)&二级缓存&三级缓存
总线
总线将计算机的两个或多个功能单元连接在一起并允许它们相互交换数据。总线还将计算机与外设连接在一起 通过公共总线将所有单元连接在一起的好处,此时只有一条高速数据通路,每个单元通过一个接口与这条通路相连。 缺点:每次只有唯一一个设备能够与其它设备通信,因为这里只有一条信息通路。如果两个设备同时请求使用总线,它们不得不去竞争总线的控制权。用术语仲裁来描述多个设备竞争同一资源的过程。 宽度:一般用并行数据通路的数量来定义总线的宽度。一条64位宽的总线一次能传送64位(8个字节)信息 带宽:总线带宽是衡量信息在总线上的传输速率的一项指标。带宽的单位要么是B/s,要么是b/s。要保持数据传输率不变的情况下增加总线宽度,可以提高带宽。 延迟:延迟是从发出数据传输请求到实际数据传输的事件间隔。总线延迟通常包括传输开始之前进行总线仲裁的时间
多总线系统
现代计算机中有多条总线,包括片内总线、功能单元件(如CPU和存储器间)的总线以及总线间的总线, (1) 多总线运行并发执行 (2)总线可能具有完全不同的特点和操作速度
|