计算机分级存储体系
计算机分级存储体系目前最常用的是三级存储体系。
CPU——CaChe(高速缓存)——主存——辅存
其中 Cache 是用于解决存取速度不够快,辅存是用于解决存储容量不够大,二者结合可在容量和速度实现提升的情况下尽可能的减少价格和成本。
DMA 成组数据传送方式
DMA(Direct Memory Access)方式,也称成组数据传送方式,或直接内存操作。
一个设备接口试图通过总线直接向另一个设备发送数据(一般是大批量的数据)的步骤包括:
(1)外设通过 DMA 的一种专门接口电路——DMA 控制器(DMAC)向 CPU 提出接管总线控制权的总线请求。
(2)CPU 收到该请求,在当前的总线周期结束后,会按 DMA 信号的优先级和提出 DMA 请求的先后顺序响应 DMA 信号,并让出总线控制权。
(3)外设获得总线控制权,并在 DMA 控制器的管理下实现外设和存储器数据的直接交换,而不需 CPU 干预。
(4)数据传送完毕后,外设接口向 CPU 发送 DMA 结束信号,并交还总线控制权。
内存按字节编址怎么计算
参考:
内存按字节编址,地址从A4000H到CBFFFH,共有多少个字节呢?_内存按字节编址,地址从a4000h到cbfffh,共有多少字节-CSDN博客
CaChe 高速缓冲存储器
在计算机存储系统的层次结构中,介于中央处理器和主存储器之间的高速小容量存储器。它和主存储器一起构成一级的存储器。
高速缓冲存储器和主存储器之间信息的调度和传送是由硬件自动进行的。
CaChe 的容量一般只有主存储器的几百分之一,但它的存取速度能与中央处理器相匹配。
根据程序局部性原理,正在使用的主存储器某一单元邻近的那些单元将被用到的可能性很大。因而,当中央处理器存取主存储器某一单元时,计算机硬件就自动的将包括该单元在内的那一组单元内容调入高速缓冲存储器,中央处理器即将存取的主存储器单元很可能就在刚刚调入到高速缓冲存储器的那一单元内。
于是,中央处理器就可以直接对高速缓冲存储器进行存取。在整个处理过程中,如果中央处理器绝大多数存取主存储器的操作能为存取高速缓冲存储器所代替,计算机系统处理速度就能显著提高。
显然,CaChe 可以显著提高 CPU 数据输入输出的速率。
CPU 响应中断的时间
CPU 在同时满足下列两个条件时,响应中断:
(1)IF=1(对非屏蔽中断,没有此项要求);
(2)现行指令执行完。
CPU 在每一个指令周期的最终一个总线周期的最终一个时钟周期的开始采样中断请求输入线,若有中断请求,则下一步不进入取指令周期,而进入中断响应周期。
之所以把一条指令执行完作为响应中断的条件,是因为中断响应周期以及中断服务程序要占用 CPU 资源。
如果在执行一条指令的中间响应中断,则指令的当前状态既不能保存也无法加以恢复。
与此相对比,DMA 操作是在 DMA 控制器的作用下进行的,不占用 CPU 资源,所以在一条指令执行中间,当前总线周期结束即可进入 DMA 周期。
总线周期计算
参考:
https://blog.csdn.net/Cynthiavlili/article/details/130596132
Flynn 分类法
Flynn 于 1972 年提出了计算平台的 Flynn 分类法,主要根据指令流和数据流来分类,共分为四种类型的计算平台。
(1)单指令流单数据流机器(SISD)
SSID 机器是一种传统的串行计算机,它的硬件不支持任何形式的并行计算,所有的指令都是串行执行。并且在某个时钟周期内,CPU 只能处理一个数据流。因此这种机器被称作单指令流单数据流机器。早期的计算机都是 SSID 机器,如冯诺.依曼架构,如 IBM PC 机,早期的巨型机和许多 8 位的家用机等。
(2)单指令流多数据流机器(SIMD)
SIMD 是采用一个指令流处理多个数据流。这类机器在数字信号处理、图像处理、以及多媒体信息处理等领域非常有效。Intel 处理器实现的 MMXTM、SSE(Streaming SIMD Extension)、SSE2 及 SSE3 扩展指令集,都能在单个时钟周期内处理多个数据单元。也就是说我们现在用的单核计算机基本上都属于 SIMD。
(3)多指令流单数据流机器(MISD)
MISD 是采用多个指令流来处理单个数据流。由于实际情况中,采用多指令流处理多数据流才是更有效的方法,因此 MISD 这是作为理论模型出现,没有投入到实际应用之中。
(4)多指令流多数据流机器(MIMD)
MIMD 机器可以同时执行多个指令流,这些指令流分别对不同数据流进行操作。最新的多核计算平台就属于 MIMD 的范畴,例如 Intel 和 AMD 的双核处理器等都属于 MIMD。
主存储器组成
主存储器一般由地址寄存器、数据寄存器、存储体、控制线路和地址译码电路等部分组成。
(1)地址寄存器(MAR)
用来存放要访问的存储单元的地址码,其位数决定了其可寻址的存储单元的个数 M,即 M=2N。
(2)数据寄存器(MDR)
用来存放要写入存储体中的数据或从存储体中读取的数据。
(3)存储体系:存放程序和数据的存储空间。
(4)译码电路:根据地址译码器中的地址码在存储体中找到相应的存储单元。
(5)控制线路:根据读写命令控制主存储器各部分的相应操作。