取指:从内存读取指令字节,地址为程序计数器(PC)的值 译码:从寄存器文件读入最多两个操作数得到值valA和/或valB。 执行:ALU要么执行指令指明的操作,计算内存引用的有效地址,要么增加或减少栈指针。 访存:将数据写入内存或从内存读取数据。 写回:最多可以写两个结果到寄存器文件。 更新PC:将PC设置成下一条指令的地址。 加载/使用数据冒险【处理用加载互锁和转发技术结合起来】 处理ret【流水线停顿三个时钟周期,直到ret指令经过访存阶段,读出返回地址】 预测错误的分支【控制逻辑在译码和执行阶段插入气泡】 异常 【解决方法如下: 程序员要编写清晰简洁的代码,编写高效程序需要做到以下两点: 优化程序性能的步骤如下: 【关键路径是在循环的反复执行过程中形成的数据相关链】 最简单的优化控制是指定优化级别,编译器对程序只使用安全的优化。 妨碍优化的因素包括内存别名使用和函数调用。【两个指针指向同一个内存位置的情况】 度量标准每元素的周期数CPE可作为一种表示程序性能并指导代码改进的方法,表示执行了多少条指令。 消除不必要的工作,方法如下: 代码移动指识别要执行多次但计算结果不会改变的计算,可将计算移动到代码前面不会被多次求值的部分。 利用处理器微体系结构的优化 程序的最大性能描述: 循环展开是一种程序变换,通过增加每次迭代计算的元素的数量,减少循环的迭代次数。提高并行性,使用多个累计变量,重新结合变换。 重新结合变换能减少计算中关键路径上的操作数量,通过更好地利用功能单元的流水线能力得到更好的性能。 寄存器溢出 分支预测和预测错误处罚 分支预测通用原则: 程序剖析运行程序的一个版本,其中插入了工具代码,以确定程序的各个部分需要多少时间。可以使用剖析程序来指导优化。 Unix系统提供了一个剖析程序GPROF,这个程序产生两种形式的信息, GPROF的属性: 时间局部性:被引用过一次的内存位置可在不远的将来再被多次引用。 空间局部性:如果一个内存位置被引用了一次,那么程序可能在不远的将来引用附近的一个内存位置。 评价局部性原则: 组织存储器系统的方法: 存储器层次结构的中心思想: 对于每个k,位于k层的更快更小的存储设备作为位于k+1层的更大更慢的存储设备的缓存。 缓存不命中的种类: 高速缓存可分为:直接映射高速缓存、组相联高速缓存、全相联高速缓存 抖动是指高速缓存反复地加载和驱逐相同的高速缓存块的组。 有关写的问题: 直写高速缓存通常是非写分配的,写回高速缓存通常是写分配的。 衡量指标:不命中率、命中率、命中时间、不命中惩罚 代码高速缓存友好的方法: 编写高速缓存友好代码的重要问题: 地址空间是一个非负整数地址的有序集合。 地址空间区分了数据对象(字节)和它们的属性(地址)。 虚拟内存为每个进程提供了一个大的一致的和私有的地址空间。 虚拟内存的作用: 它将主存看成是一个存储在磁盘上的地址空间的高速缓存。 为每个进程提供了一致的地址空间。 保护了每个地址空间不被其他进程破坏。 SRAM缓存是CPU和主存之间的L1L2L3高速缓存。 DRAM缓存是虚拟内存系统的缓存,在主存中缓存页。【因为大的不命中惩罚,DRAM缓存是全相联的,任何物理页都可以包含任何虚拟页】 页表将虚拟地址页映射到物理页,每次地址翻译硬件将一个虚拟地址转换为物理地址时都会读取页表。 缺页:DRAM缓存不命中称为缺页。 交换页面调度:在磁盘和内存之间传送页的活动。 虚拟内存作为内存管理的工具 1.简化链接 2.简化加载 3.简化共享 4.简化内存分配 虚拟内存作为内存保护的工具 地址翻译是一个虚拟地址空间到物理地址空间之间的映射。 内存映射是将一个虚拟内存区域与一个磁盘上的对象关联起来,以初始化这个虚拟内存区域的内容。 每个可重定位目标模块m都有一个符号表,包含m定义和引用的符号的信息,在链接器的上下文中,有三种不同的符号: 符号表是由汇编器构造的,使用编译器输出到汇编语言.s文件中的符号。.symtab节记录符号表信息,是一个结构数组。 符号解析: 符号解析指把代码中的每个符号引用和与它输入的可重定位目标文件的符号表中的一个确定的符号定义关联起来。 函数和已初始化的全局变量是强符号,未初始化的全局变量是弱符号。通 过符号解析可以了解到目标模块中的代码节和数据节的确切大小。 根据强弱规则的定义,使用下列规则处理多重定义的符号名: 规则1:不允许有多个同名的强符号。 规则2:如果有一个强符号和多个弱符号同名,那么选择强符号。 规则3:如果有多个弱符号同名,那么从这些弱符号中任意选择一个。 重定位 重定位将合并输入模块,并为每个符号分配运行时地址。 由两步组成:重定位节和符号定义。 链接器将所有相同类型的节合并为同一类型的新的聚合节,并将运行时内存地址赋给新的聚合节。 重定位节中的符号引用,链接器修改代码节和数据节中对每个符号的引用,使它们指向正确的运行时地址。重定位的主要类型有PC相对地址和绝对地址。 加载:加载器将可执行目标文件中的代码和数据从磁盘复制到内存汇总,然后通过跳转到程序的第一条指令或入口点来运行该程序。这个将程序复制到内存并运行的过程叫做加载。 1. 异常是控制流中的突变,用来响应处理器状态中的某些变化。 2. 异常可以分为中断、陷阱、故障和终止, 3. 中断是异步发生的,是来自处理器外部的I/O设备的信号的结果,硬件中断的异常处理程序被称为中断处理程序。 4. 其他三个是同步发生的,是执行当前指令的结果,我们把这类指令叫做故障指令。 5. 陷阱是有意的异常,最重要的用途是在用户和程序中提供一个像过程一样的接口,叫系统调用。 6. 故障由错误情况引起,经典示例是缺页异常,处理程序要么重新执行当前指令,要么终止。 7. 终止是不可恢复的致命错误造成的结果。 8. 进程是一个执行中程序的实例,进程轮流使用处理器,可抽象为它在独立使用处理器的假象, 9. 多个流并发地执行的一般现象被称为并发, 10. 进程有运行、停止、终止三种状态。 当内核选择一个新的进程运行时,我们说内核调度了这个进程,调度后抢占当前进程,并使用一种称为上下文切换的机制来将控制转移到新的进程。 信号是一种软件中断的形式,允许进程和内核中断其他进程,一个信号就是一条小消息,它通知进程系统中发生了一个某种类型的事件,信号提供了一种机制,通知用户发生了这些异常。 传送一个信号到目的进程是由两个不同步骤组成的: 发送信号。内核通过更新目的进程上下文中的某个状态,发送一个信号给目的进程。 ① 用/bin/kill程序可以向另外的进程发送任意的信号; ② 从键盘发送信号; ③ 进程通过调用kill函数发送信号给其他进程(包括它们自己); ④ 进程可以通过调用alarm函数向它自己发送SIGALRM信号。 接受信号。当目的进程被内核强迫以某种方式对信号的发送做出反应是,它就接收了信号。进程通过执行信号处理程序捕获这个信号。每个信号类型都有一个预定义的默认行为:进程终止、进程终止并转储内存、进程停止(挂起)直到被SIGCONT信号重启、进程忽略该信号。 信号量是具有非负整数值的全局变量,只能由两种特殊的操作来处理,这两种操作称为P和V, P(s):如果s是非零的,那么P将s减1并立即返回。如果s为零那么就挂起这个进程直到s变为非零,而一个V操作会重启这个线程。 V(s):V操作将s加1。 可以使用信号量来实现互斥、来调度资源 并发:逻辑控制流在时间上重叠,并发的好处: 并发程序:使用应用级并发的应用程序,三种构造并发程序的方法: 基于进程的并发编程 基于I/O多路复用的并发编程 基于线程的并发编程 基于进程的并发编程 基于I/O多路复用的并发编程 基于线程的并发编程, 互斥:每个线程在执行它的临界区域中的指令是拥有对共享变量的互斥的访问。 共享变量:当且仅当有多个线程引用这个变量的某个实例时,这个变量是共享的。 不安全区:两个临界区的交集形成的状态空间区域称为不安全区。 其他并行问题: 四个线程不安全函数类: 可重入性的属性:当他们被多个函数调用时不会引用任何共享数据。 竞争:一个程序的正确性依赖于一个线程要在另一个线程到达y点之前到达它的控制流中的x点时,就会发生竞争。 死锁:一组线程被阻塞了,等待一个永远也不会为真的条件。 文件都有一个类型来表明它在系统中的角色:普通文件、目录、套接字。 文件操作 内核用描述符表、文件表、v-node表三个数据结构表示打开的文件。 每个进程都有它自己单独的描述符表。 打开文件的集合是由一张文件表来表示的,所有的进程共享同一个打开文件表。 所有的进程共享一张v-code表。 共享文件指多个描述符可以通过不同的文件表表项来引用同一个文件。 所有的网络应用都是基于相同的基本编程模型,有相似的整体网络逻辑结构,并且依赖相同的编程接口。 主机序:主机字节顺序,小端法存放。网络序:大端法存放。 最低有效字节在地址排序最前面的方法叫小端法, 最高有效字节在地址排序最前面的方法叫大端法。 模型由一个服务器进程和一个或多个客户端进程组成。 服务器管理某种资源,并且通过操作这种资源来为它的客户端提供某种服务。 模型中的基本操作是事务,事务由发送请求、处理请求、发送响应、处理响应四步组成。 IPv4和IPv6:因特网协议版本4,采用32位地址。因特网协议版本6,采用128位地址。 套接字接口是一组函数,用以创建网络应用。 客户端和服务器通过使用套接字接口建立连接。 一个套接字就是通信的一个端点,从程序角度套接字就是一个有相应描述符的打开文件。 HTTP请求组成如下:一个请求行,后面跟随零个或更多个请求报头,再跟随一个空的文本行来终止报头列表。 HTTP响应组成如下:一个响应行,后面跟随0或者更多的响应报头,在跟随一个终止报头的空行,在跟随一个响应主体。 Web客户端和服务器之间的交互用的是一个基于文本的应用级协议HTTP, Web内容是与一个MIME类型相关的字节序列。 Web服务器以两种不同的方式向客户端提供内容:文章目录
一、处理器体系结构
1.CPU中的时序电路
2.单周期处理器的设计
3.流水线处理器的基本原理
4.Data Hazard的处理
5.流水线设计中的其他问题
二、优化程序性能
1.优化程序性能
2.优化编译器的能力和局限性以及表示程序性能
3.特定体系结构或应用特性的性能优化
4.限制因素
5.确认和消除性能瓶颈
三、存储器结构及虚拟存储器
1.局部性
2.存储器层级结构
3.计算机高速缓存器原理
4.高速缓存对性能的影响
5.地址空间
6.虚拟存储器
7.虚拟内存的管理
8.翻译和映射
9.TLB
10.动态存储器分配和垃圾收集
四、链接、进程及并行编程
1.静态链接
2.目标文件
3.符号和符号表
4.重定位和加载
5.动态链接库
6.异常与进程
7.进程控制和信号
8.进程间的通信
9.进程间信号量的控制
10.信号量
11.各种并发编程模式
12.共享变量和线程同步
13.其他并行问题
五、系统及I/O和网络编程
1.I/O相关概念
2.文件及文件操作
3.共享文件
4.网络编程
5.客户端-服务器模型
6.套接字接口
7.HTTP请求
8.Web服务器
六、补充知识
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算