计算机体系结构

冯诺依曼体系结构,计算机必须具备五大基本组成部件:
运算器、控制器、存储器、输入设备、输出设备。

哈佛结构与冯诺依曼结构:
在这里插入图片描述
与冯诺曼结构处理器比较哈佛结构处理器有两个明显的特点:
1、使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存;
2、使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关联。

物理地址 Physical Address
加载到内存地址寄存器中的地址,内存单元的真正地址。在前端总线上传输的内存地址都是物理内存地址,编号从0开始一直到可用物理内存的最高端。
逻辑地址 Logical Address
CPU所生成的地址。逻辑地址是内部和编程使用的、并不唯一。例如在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于当前进程数据段的地址(偏移地址)

中央处理器:进行所有计算和逻辑操作的地方
CPU架构:CPU厂商给属于同一系列的CPU产品定的一个规范,目的是为了区分不同类型CPU的重要标示。
目前市面上的CPU指令集分类主要分有两大阵营:
一个是intel、AMD为首的复杂指令集CPU,另一个是以IBM、ARM为首的精简指令集CPU
两个不同品牌的CPU,其产品的架构也不相同
例如Intel、AMD的CPU是X86架构,IBM公司的CPU是PowerPC架构,ARM公司的CPU是ARM架构
MIPS架构(Microprocessor without interlocked piped stages architecture):一种采取精简指令集(RISC)的处理器架构,1981年由MIPS科技公司开发并授权,广泛被使用在许多电子产品、网络设备、个人娱乐装置与商业装置上。最早的MIPS架构是32位,最新的版本已经变成64位
运算器:进行信息处理。用于完成各种算术运算、逻辑运算和数据传送等数据加工处理
控制器:控制各类器件进行工作。用于控制程序的执行,是计算机的大脑
运算器和控制器组成计算机的中央处理器(CPU),控制器根据存放在存储器中的指令序列(程序)进行工作,并由一个程序计数器控制指令的执行。控制器具有判断能力,能根据计算结果选择不同的工作流程。
寄存器:进行信息存储
内部总线:连接各种器件,在它们之间进行数据的传送
外部总线:实现CPU和主板上其它器件的联系
时钟:用于CPU的内部操作和其他系部件的同步
控制单元:协调执行机器指令时各个部件的顺序
算数逻辑运算单元:执行算数运算
16位CPU运算器一次最多可以处理16位的数据
寄存器的最大宽度为16位,寄存器和运算器之间的通路为16位
8086CPU有20位地址总线,可以传送20位地址,8086CPU又是16位结构,在内部一次性处理传输暂时存储的地址为16位。8086CPU采用一种在内部用两个16位地址合成的方法来形成一个20为的物理地址,一个为段地址,另一个为偏移地址。
地址加法器采用:物理地址=段地址16+偏移地址 的方法用段地址和偏移地址合成物理地址
段地址:我们可以认为:地址10000H-100FFH的内存单元组成一个段,该段的起始地址为10000H(段地址
16),段地址为1000H,大小为100H
CS中的内容为M,IP中的内容为N,8086CPU将从内存M*16+N单元开始读取一条指令并执行
指令周期: 执行一条指令所需要的时间,指令周期常常用若干个时钟周期来表示。
时钟周期: 时钟频率的倒数
计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作
总线周期: CPU完成一次访问MEM或I/O端口操作所需要的时间。一个总线周期由几个时钟周期组成
CPU可以直接读写3个地方的数据:1.CPU内部的寄存器 2.内存单元 3.端口
各种存储器都和CPU的地址线、数据线、控制线相连。CPU在操控它们的时,把它们都当作内存来对待,把它们总的看作一个由若干个存储单元组成的逻辑存储器,这个逻辑存储器我们称其为内存地址空间
在PC机系统中,和CPU通过总线相连的芯片除各种寄存器外,还有以下3种芯片:
1.各种接口卡(如网卡、显卡)上的接口芯片,它们控制接口卡进行工作
2.主板上的接口芯片,CPU通过它们对部分外设进行访问
3.其他芯片,用来存储相关的系统信息,或进行相关的输入输出处理
在这些芯片中,都有一组可以由CPU读写的寄存器。这些寄存器,它们在物理上可能处于不同的芯片中,但是它们在一下两点上相同:
1.都和CPU的总线相连,当然这种连接是通过它们所在的芯片进行的
2.CPU对它们进行读或写的时候都通过控制线向它们所在的芯片发出端口读写命令
从CPU角度,将这些寄存器都当作端口,对它们进行统一编址,从而建立了一个统一的端口地址空间,每一个端口在地址空间中都有一个地址
访问端口时,CPU通过端口地址来定位端口,因为端口所在的芯片和CPU通过总线相连,所以,端口地址和内存地址一样,通过地址总线来传送。在PC系统中,CPU最多可以定位64k个不同的端口。则端口地址的范围为0-65535
当前CPU的两种架构:
CISC Complex Instruction Set Computer复杂指令集计算机
RISC Reduced Instruction Set Computer精简指令集计算机

DMA Direct Memory Access直接内存存取
DMA是指外部设备不通过CPU而直接与系统内存交换数据的接口技术
  要把外设的数据读入内存或把内存的数据传送到外设,一般都要通过CPU控制完成,如CPU程序查询或中断方式。利用中断进行数据传送,可以大大提高CPU的利用率。
  系统的总线是由CPU管理的。DMA传输前,CPU要把总线控制权交给DMA控制器,而在结束DMA传输后,DMA控制器应立即把总线控制权再交回给CPU。

DMA控制器必须有以下功能:
1. 能向CPU发出系统保持(HOLD)信号,提出总线接管请求;
2. 当CPU发出允许接管信号后,负责对总线的控制,进入DMA方式;
3. 能对存储器寻址及能修改地址指针,实现对内存的读写操作;
4. 能决定本次DMA传送的字节数,判断DMA传送是否结束
5. 发出DMA结束信号,使CPU恢复正常工作状态。

DMA传输过程:
在这里插入图片描述

总线

内部总线实现CPU内部各个器件之间的联系,外部总线实现CPU和主板上其他器件的联系
CPU通过总线对存储器读写
总线(Bus):计算机各种功能部件之间传送信息的公共通信干线,它由导线组成的传输线。
按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号
地址总线
CPU是通过地址总线来指定存储器单元的,地址总线上能传送多少个不同的信息,CPU就可以对多少个存储单元进行寻址(一个CPU的地址总线宽度为10,那就可以寻址1024个内存单元)
在电子计算机中,一根导线(地址线)可以传送的稳定状态只有两种,高电平或是低电平,用二进制表示就是0或1。假设一个CPU有10根地址线,可以传送10位二进制数据(0-1023)
最多可以寻址2的N次方个内存单元
数据总线
CPU与内存或其他器件之间的数据传送是通过数据总线来进行,数据总线的宽度决定了CPU和外界的数据传送速度,8根数据总线一次可传送一个8位二进制数据,16根数据总线一次可传送一个16位二进制数据
控制总线
CPU对外部器件的控制是通过控制总线来进行的。在这里控制总数是个总称,控制总线是一些不同控制线的集合。有多少根控制总线,就意味着CPU提供了对外部器件的多少中控制。所以,控制总线的宽度决定了CPU对外部器件的控制能力
CPU对存储器进行读或写的时候都通过控制线发出内存读写命令

CPU寻址
8086CPU有20位地址总线,可以传送20位地址,达到1MB的寻址能力。
8086CPU又是16位结构,在内部一次性处理、传输、暂时存储的地址为16位。从8086CPU内部结构来看,如果将地址从内部简单地发出,那么它只能送出16位的地址,表现出的寻址能力只有64kb
8086CPU采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址

总线上的设备一般分为总线主设备总线从设备
总线主设备是指具有控制总线能力的模块,通常是CPU或以CPU为中心的逻辑模块,在获得总线控制权之后能启动数据信息的传输;
总线从设备,是指能够对总线上的数据请求做出响应,但本身不具备总线控制能力的模块。在早期的计算机系统中,一条总线上只有一个主设备,总线一直由它占用,技术简单,实现也比较容易。
随着应用的发展,主要是工业控制、科学计算的需求,多个主设备共享总线的情况越来越多,这对总线技术提出了新的要求。根据这类系统的特点,需要解决各个主设备之间资源争用等问题,这使得总线的复杂性大为增加。
总线仲裁就是在多个总线主设备的环境中提出来的。在多处理机系统中,每个处理机都可以作为总线主设备,都要共享资源,它们都必须通过系统总线才能访问其它资源,总线也可视为是一种重要的公共资源。由于每个处理机都会随机地提出对总线使用的要求,这样就可能发生总线竞争现象。为了防止多个处理机同时控制总线,就要在总线上设立一个处理上述总线竞争的机构,按优先级次序,合理地分配资源,这就是总线仲裁问题。用硬件来实现总线分配的逻辑电路称为总线仲裁器(Bus Arbiter)。它的任务是响应总线请求,通过对分配过程的正确控制,达到最佳使用总线。

内存地址空间
CPU在操纵和控制各类物理存储器的时候,把它们都当作内存来对待,把它们总的看作一个由若干个存储单元组成的逻辑存储器(即内存地址空间)
每个物理存储器在这个逻辑存储器中占有一个地址段(即一段地址空间)。CPU在这段地址空间中读写数据实际上就是在相对应的物理存储器中读写数据

多任务操作系统:可以同时运行多个任务,一个任务可以是一个程序(进程)或者一个执行线程

指令的编码与指令的译码
指令分为操作码+操作数两个部分
操作码即代表指令功能,如ADD、SUB等,其在CPU中就代表某种具体的电路,如ADD就代表加法电路,SUB代表减法电路;
操作数是代表功能的输入和输出,对应电路的输入和输出。
假设现在共有4种功能,那至少需要2个比特来进行编码,如00代表ADD,01代表SUB,10代表MOV,11代表LDR;
假设寄存器共有8个,Rd,Rs,Rn都是其中的一个,即d,s,n的范围是0到7,那至少需要3个比特来编码,如000代表R0,001代表R1,以此类推,111代表R7.
因此总共需要2+3+3+3=11个比特进行编码。如SUB R6,R1,R2,即R1减去R2的值赋给R7,其编码就是01 110 001 010
译码, 即根据最先的两个比特01送入译码器,选择为减法电路;110即译码选择为R6,001译码选择R1,010译码选择R2.
再接着的就是指令的执行了,执行就是减法单元电路对两个输入(R1,R2)进行运算,将结果赋给R6.
取指:从存储单元取出所要执行的指令的过程
取指和译码都是CPU的控制单元(CU)完成的,执行是ALU(逻辑运算单元)完成,可以将ALU看作是很多种电路的集合。CPU指令的设计和指令编码息息相关
内存的读取周期
周期一:内存操作数的地址位被放到地址总线上
周期二:读取线设为底0以通知存储器要读一个值
周期三:CPU等待一个周期,给寄存器一些时间做出响应。在这个时钟周期内,内存控制器把数据放在数据总线上
周期四:读取线变为1,通知CPU在数据总线上读取数据
指令执行周期
取指令,解码,取操作数,执行,存储输出操作数
指令的执行过程
通常,计算机执行一条指令的步骤如下:
① 把指令指针IP中的指令地址送存储器,从该地址取出指令送指令寄存器IR;
② 地址计算部件,根据IR中的地址码形成操作数地址送存储器,从该地址取出数据,送到运算器中的寄存器(或寄存器组);
③ 将IR中的操作码OP送指令译码器进行译码;
④ 在控制器发出的操作信号的控制下,计算机各有关部件执行操作码OP规定的操作;
⑤ 指令指针IP加1,形成下一条指令地址。如遇到转移指令,则按转移指令对状态标志寄 存器测试的结果,决定是否将转移指令中指出的指令地址送指令指针IP。
寻址方式
处理器根据指令中给出的地址信息来寻找物理地址的方式,是确定本条指令的数据地址以及下一条要执行的指令地址的方法
1.立即寻址方式:立即数包含在指令中,作为指令的一部分。
如 MOV AX 1234H
2.直接寻址方式:操作数在寄存器中,指令直接包含操作数的有效地址(偏移地址)。
操作数一般存放在数据段(DS)。
如 MOV AX,[8054H]
若(DS)=2000H,则物理地址=20000H(低四位为0)+8054H=28054H
则(AX)=物理地址28054H上的字
主要用于变量。
3.寄存器寻址方式:操作数在CPU内部的寄存器中,指令指定寄存器号
16位操作数,寄存器可以是:AX,BX,CX,DX,SI,DI,SP和BP
8位操作数,寄存器可以是:AL,AH,BL,BH,CL,CH,DL,DH
如 MOV AX,BX
寄存器间接寻址方式:将指定的寄存器内容为地址,由该地址所指定的单元内容作为操作数
MOV A,[R0],其中R0内容为65H;将内部RAM的65H单元内容(47H)送A
4.寄存器相对寻址方式
操作数在存储器中,操作数的有效地址是一个基址寄存器(BX,BP)或变址寄存器(SI,DI)内容加上指令中给定的位移量。
默认段值同上。
如 MOV AX,[DI+1223H], 默认段值为DS
5.基址加变址寻址方式
操作数有有效地址由基址寄存器(BX,BP)之一的内容与变址寄存器(DI,SI)之一的内容相加。
默认段值DS。
MOV AX,[BX+DI] ==> MOV AX,[BX][DI]
也可采用段跨越前缀如:
MOV DS:[BP+SI],AL
MOV AX,ES:[BX+SI]
这种寻址方式适用于数组或表格地处理
相对基址加变址寻址方式
[bx+idata+si]

SDR DDR

SDR Single Data Rate 单倍数据速率
DDR Double Data Rate SDRAM双倍速率同步动态随机存储器
DDR技术实现了一个时钟周期内进行两次读/写操作,即在时钟的上升沿和下降沿分别执行一次读/写操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

春夏与冬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值