已阅读5页,还剩97页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Datapaths,1,指令周期,算术逻辑单元,状态条件寄存器,程序计数器PC,地址寄存器AR,地址总线ABUS,数据总线DBUS,累加器AC,缓冲寄存器DR,ALU,指令寄存器IR,指令译码器,操作控制器 时序产生器,时钟,状态反馈,取指控制,执行控制,c,c,c,c,+1,20,21,22,23,24,30,40,CLA,ADD 30,STA 40,NOP,JMP 21,000 006,000 024,JMP 21,JMP 21,000 024,000 021,000 006,000 006,000 025,000 021,Datapaths,2,具体步骤如下: 1)根据程序计数器PC的内容从内存中取出一条指令,放置于指令寄存器IR中; 2)分析IR中的操作码,决定应执行的操作; 3)根据IR的地址码取出参加运算的操作数; 4)对操作数进行运算; 5)根据IR的地址码把运算结果存入指定地址; 6)本条指令执行完毕,修改PC内容决定下一条指令所在的地址。,Datapaths,3,时序与控制方式 控制器在时钟脉冲驱动下产生节拍,一般情况下一个节拍对应于一个时钟脉冲,如下图所示。图中用step_i 代表第i个节拍,其宽度与时钟周期相等。节拍电位和其他信号相互组合用于控制操作,引导数据在数据通路中流动;而在节拍的末尾处则由时钟脉冲把运算结果(或中间结果)打入寄存器。,Datapaths,4,同步控制方式,Datapaths,5,有限状态机(Finite State Machine, FSM),Datapaths,6,结构描述,Datapaths,7,组合逻辑控制器,Datapaths,8,Datapaths,9,Datapaths,10,Datapaths,11,CPU 设计,CPU 的设计可分为三部分: 数据通路datapath 实现真正的数据处理. 指令集 instruction set 实现程序和CPU之间的接口. 控制器 control unit 使用程序员的指令告诉数据通路做什么。 数据通路: ALU. 寄存器. 可读写的内存.,Datapaths,12,CPU?,处理器是一个很大规模的时序电路. 寄存器保存值,组成系统的状态 ALU 对存储在寄存器中的数据,进行数据处理.,结构描述,Datapaths,13,寄存器传送,本质上,处理器只是在寄存器间传送数据,可能在ALU 中做一些计算. 引入 寄存器传送语言. 对象为寄存器. 基本的操作为 传送, 将数据从一个寄存器复制到另一个寄存器. 在传送中,利用ALU 做运算.,Datapaths,14,用两个字符表示寄存器, 如 R0, R1, DR, 或 SA. 箭头表示 数据传送. 如在一个时钟周期内复制 源寄存器 R2 到 目标寄存器 R1 : R1 R2 条件传送 : 仅当条件满足时进行传送如 K = 1: 传送 R3 至 R2 表示 为 K=1: R2 R3 在同一时钟周期内进行的多个传送. R1 R2, K: R2 R3,寄存器传送语言,Datapaths,15,表示 算术操作 : R1 R2 + R3 R3 R1 - 1 表示 逻辑操作 : R2 R1 R2 bitwise AND R3 R0 R1 bitwise OR 表示移位: R2 sl R1 left shift R2 sr R1 right shift,Register transfer operations,Datapaths,16,寄存器的方框图,如上表示一个 n-bit 的寄存器. 数据: 当 Load = 1, 数据输入. 当 Load = 0, 寄存器保存当前值。 寄存器的输出总是有效. 省去时钟信号.,Datapaths,17,寄存器文件,寄存器文件: 当代处理器通常将多个寄存器组织到一起称为register file. 与RAM类似, 寄存器用地址区分。 右图为 2k x n 的寄存器文件: 有2k 个寄存器,寄存器的地址线为k bits 长. 每个寄存器存放一个n-bit 的字, ,数据输入输出为 n bits 宽.,Datapaths,18,访问寄存器文件,假设: 同时给出 AA 和 BA ,则数据同时出现在 A 和 B 输出; 当WR = 1 ,利用DA 和 D 写入寄存器; 方框图中省去了时钟信号: 任何时候可以读出. 但只在时钟的上升沿写入,n,n,n,k,k,k,D data,Write,D address,A address,B address,A data,B data,Register File,D,WR,DA,AA,A,B,BA,Datapaths,19,寄存器文件的内部,4个 n 位的寄存器文件,Datapaths,20,ALU,ALU的方框图: A / B 是2个 n-bit 的数值输入. FS 是 m-bit 的功能选择码, 可表示 2m 个功能. F 为 n-bit 的计算结果. 状态位 表示对应当前输出F 的附加状态: V = 1 溢出 . C 进位. N = 1 结果为负. Z = 1 结果 为0.,Datapaths,21,ALU 的功能,功能选择码为5 bits 长 定义15种不同的功能。,Datapaths,22,第1个数据通路,最基本的数据通路: ALU 的2个输入来自于寄存器文件. ALU 计算,结果存回寄存器. WR, DA, AA, BA ,FS 为控制信号 , 决定数据通路的具体动作,如使用哪个寄存器及执行何种运算.,Datapaths,23,R0 R1 + R3 AA = 01 且 BA = 11. R1 给 A data, R3 给 B data. ALU 功能选择码 为 FS = 00010 (A + B). DA = 00 且 WR = 1. 在下一个时钟的上升沿,ALU 结果 (R1 + R3) 存入 R0.,D data,Write,D address,A address,B address,A data,B data,Register File,WR,DA,AA,BA,A,B,ALU,F,Z,N,C,V,FS,FS,00010,01,11,00,1,Datapaths,24,Two questions,需要更多的存储单元? 谁来决定读写哪个寄存器及执行何种ALU 功能?,Datapaths,25,访问内存,在数据通路中加入RAM. 写 RAM, 需给出地址ADRS和数据DATA ,分别 取自寄存器的A data. 和B data 当 MW = 1 时写入 RAM.,D data,Write,D address,A address,B address,A data,B data,Register File,WR,DA,AA,BA,A,B,ALU,F,Z,N,C,V,FS,FS,MD,1,Datapaths,26,读RAM,读RAM, A data 提供地址. MW = 0 结果存入寄存器. D data 有2个来源 ALU 或 RAM. 多路选择器 MD 选择数据源: 当 MD = 0, ALU 输出存入寄存器. 当 MD = 1, RAM 输出存入寄存器.,D data,Write,D address,A address,B address,A data,B data,Register File,WR,DA,AA,BA,A,B,ALU,F,Z,N,C,V,FS,RAM,ADRS,DATA,CS,WR,OUT,MW,+5V,n,n,FS,MD,0,Datapaths,27,数据可在内存与寄存器文件之间传送. ALU 不能直接访问内存. 内存的容量受寄存器的限制。对于 字长为n-bit 的寄存器,只能使用2n x n 的内存. 假设RAM 与CPU 时钟一样快,Datapaths,28,地址为X的内存单元的内容可表示为MX. 例如: RAM 中的第1个字为 M0. 若 R1 中包含内存地址, 则MR1 表示 该单元的内容.,Datapaths,29,寄存器传送: R3 MR0 R3 R3 + 1 MR0 R3 地址为 R0 的 RAM 的数据+1. ALU 只能对寄存器运算, RAM 必须先装入寄存器,运算后再存回RAM. 假设R0 包含内存单元的地址. 数据通路如何完成该操作?,Datapaths,30,R3 MR0,AA = 00, 读 R0. R0 作为 RAM 的地址, MR0 出现在 RAM 的 OUT. MD =1, RAM 输出送到寄存器. DA = 11 且 WR = 1 ,结果存入R3 MW =0,防止意外写入 RAM. 没有ALU (FS) 和BA.,1,11,00,1,0,D data,Write,D address,A address,B address,A data,B data,Register File,WR,DA,AA,BA,A,B,ALU,F,Z,N,C,V,FS,RAM,ADRS,DATA,CS,WR,OUT,MW,+5V,n,n,FS,n,MD,Datapaths,31,R3 R3 + 1,AA = 11, R3 送入 ALU 的A 输入端. FS = 00001,实现 A + 1. R3 + 1 出现在ALU 输出端 F. MD =0, ALU 输出送回寄存器. DA = 11 且 WR = 1 结果写回到R3 MW =0 ,避免意外写入内存 没有使用BA.,D data,Write,D address,A address,B address,A data,B data,Register File,WR,DA,AA,BA,A,B,ALU,F,Z,N,C,V,FS,n,Q D1,D0,S,RAM,ADRS,DATA,CS,WR,OUT,MW,+5V,n,FS,MD,1,11,11,0,0,00001,Datapaths,32,MR0 R3,将R3 存回 RAM 中,其地址为 R0. AA = 00 且 BA = 11. R0 给ADRS, R3 给 DATA. MW =1,内存写. WR =0,无需写寄存器, MD 和 DA 没有用. 不使用 ALU, 忽略 FS,D data,Write,D address,A address,B address,A data,B data,Register File,WR,DA,AA,BA,A,B,ALU,F,Z,N,C,V,FS,RAM,ADRS,DATA,CS,WR,OUT,MW,+5V,n,n,FS,MD,0,00,1,11,Datapaths,33,加入常量,加入 常量 ,增加控制信号 MB. 这样可以用任意值初始化寄存器和内存.,MD,S D1 D0 Q,Constant,MB,Datapaths,34,Control units,数据通路的控制信号不同将执行不同的操作。 谁提供控制信号? 在真实的计算机中,数据通路的行为是由装入且正在执行的程序决定的. 控制器 control unit 负责依据程序代码为数据通路产生正确的控制信号,Datapaths,35,小结,数据通路是处理器的一部分,完成真正的计算: 基本元件为ALU, 寄存器文件和内存。 ALU 完成 计算,寄存器文件和内存提供对ALU 的操作数和结果的存储. 不同的控制信号控制着数据通路的行为,Datapaths,36,Instruction set architectures指令集体系结构,数据通路最终由程序员控制,Datapaths,37,编程与CPUs,用高级语言如C+,必须编译成可执行程序. 可执行程序是面向 CPU的 机器语言(machine language) 程序,可装入内存由处理器执行。 机器语言是软硬件间的接口interface,讨论虚线以下的内容。,Datapaths,38,高级语言,High-level languages 提供很多有用的编程结构: For, while, loops If-then-else 函数和过程 变量和数组 许多语言提供一些很有用的安全性质: 静态和动态类型检查 垃圾收集 高级语言相对来说是可移植的。理论上你可以编写一个高级语言程序,然后在不同的处理器上运行。 当与低级语言比较后,你才能体会到高级语言的“高级”.,Datapaths,39,低级语言,每个CPU有自己的低级指令集 instruction set, 即机器语言, 反映了 CPUs 的设计。 这也意味着人类很难直接使用。 表现在: 控制流限于 “jump” 和 “branch” ,必须以此为基础构造loops 和 conditionals. 对函数和过程的支持很有限. 内存寻址方式必须明确显式指出,而不能简单地声明变量然后使用它们。 很少提供错误检查。 很难让机器语言程序在不同的处理器上运行。,Datapaths,40,汇编语言与机器语言,机器语言是二进制位串。 人们使用 assembly language: 加入助记符. 助记符与机器指令有一对一的关系,汇编程序到机器程序的转换容易。,Datapaths,41,数据操作类指令,对应于ALU 的运算 加法 类似于高级语言中的 R0 = R1 + R2 操作数为寄存器.,Datapaths,42,NOT R0, R1 R0 R1 ADD R3, R3, #1 R3 R3 + 1 SUB R1, R2, #5 R1 R2 - 5 NOT只有一个操作数. #表示常数,Datapaths,43,与数据通路的关系,指令反映了数据通路的设计. 每条指令最多有两个数据源,因为ALU 只有两个输入. 两个数据源可以是两个寄存器,也可以一个是寄存器,一个是常量. 复杂的操作,如: R0 R1 + R2 - #3 必须由多条指令完成. 指令只有一个目的操作数,还必须是寄存器类型.,Datapaths,44,RAM?,ALU 能够直接访问的是寄存器文件。 必须把RAM 的内容复制到寄存文件后,才能作为ALU的操作数。 ALU 的结果必须经过寄存器才能存入内存。 必须依赖于数据传送类指令将数据在内存与寄存器文件之间传送。,Datapaths,45,从RAM中传送数据到寄存器,load 指令从内存中传送数据到寄存器。 LD R1,(R3) R1 MR3 RAM 的地址来自于寄存器。 括号表示R3中存放的是一个内存单元的地址。,D data,Write,D address,A address,B address,A data,B data,Register File,WR,DA,AA,BA,RAM,ADRS,DATA,CS,WR,OUT,MW,+5V,MD,S D1 D0 Q,Constant,MB,Datapaths,46,将寄存器中的数据存入RAM,store 指令将寄存器中的内容传送到内存 RAM. ST (R3),R1 MR3 R1 RAM 地址存放在 R3 中。 写入RAM 的数据存放在R1 中。,MD,S D1 D0 Q,Constant,MB,Datapaths,47,给寄存器赋值,初始化寄存器 LD R1, #0 R1 0 ALU (FS=10000) “传送 B” 操作。,D data,Write,D address,A address,B address,A data,B data,Register File,WR,DA,AA,BA,RAM,ADRS,DATA,CS,WR,OUT,MW,+5V,MD,S D1 D0 Q,Constant,MB,Datapaths,48,常量存入内存,初始化内存: ST (R3), #0 MR3 0,MD,S D1 D0 Q,Constant,MB,Datapaths,49,# 和 ( ) !,# 和 ( ) 表明了不同的寻址方式. 寻址方式决定了如何寻找操作数: 数据通路的设计决定了可以采用何种寻址方式. 数据通路不支持第二个例子的寻址方式. Why not?,Datapaths,50,示例,M1000 M1000 + 1 等价的汇编语言: 需多条指令! 必须先将内存地址1000装入寄存器,然后通过寄存器访问内存。 受数据通路的限制。ALU只能以寄存器的常量为操作数。 CISC与RISC。,Datapaths,51,程序由指令组成,并存于内存: 每条指令有一个地址; 指令顺序存放。 程序计数器 program counter (PC) 跟踪当前指令的地址. 通常 ,PC+1 . 有时需要改变程序串行执行的轨迹,需要控制流指令 control flow instructions.,控制流指令,Datapaths,52,jump 指令总是修改 PC的值。 操作数表示应如何修改. 通常用标号labels表示真正的地址。 例如: 例如 :重复,LD R1, #10 LD R2, #3 JMP L K LD R1, #20 / 这两条指令被跳过 LD R2, #4 / L ADD R3, R3, R2 ST (R1), R3,Jumps,LD R1, #0 F ADD R1, R1, #1 JMP F / 无限循环!,Datapaths,53,分支指令,branch 指令可能修改PC的值,依赖于条件是否成立。,LD R1, #10 LD R2, #3 BZ R4, L / Jump to L if R4 = 0 K LD R1, #20 / 这两条指令可能被跳过,依赖于R4 LD R2, #4 / L ADD R3, R3, R2 ST (R1), R3,Datapaths,54,分支指令,Branch 条件通常根据 ALU 的状态. 其它分支条件 (如大于/等于/小于) 可以从ALU运算及以上条件中得出。,Datapaths,55,jumps 和 branches 比起高级语言的控制流结构简单得多 Conditional statements . Loops,高级语言的控制流,Datapaths,56,用branch 指令转换高级语言的条件语句.,C if-then 语句的转换,Datapaths,57,C for loop 的转换,用 BGT branch 转换.,Datapaths,58,小结,机器语言是软硬件的接口. 有三类主要的指令: 数据操作类指令 数据传送类指令 控制流指令 指令集ISA高度依赖于CPU的设计,Datapaths,59,处理器结构,控制器control unit 连接程序和数据通路. control unit 将汇编语言的指令转换成数据通路所需的信号control words 包括 WR, DA, AA, BA, MB, FS, MW, MD. 以一种正确的顺序执行程序. 为数据通路提供持续的输入. 数据通路也某些信息返回给控制器,例如 ALU 状态位 V, C, N, Z, branch 指令将检测这些状态信息,以修改控制流.,Control Unit,Datapath,Control signals,Status signals,Program,Datapaths,60,从汇编语言到机器语言,machine language :处理器支持的汇编语言的二进制表示 . 上述 CPU 支持三类指令,它们有不同的操作数,因而需要不同的表示形式: Register format 需要两个源寄存器做操作数. Immediate format 需要一个源寄存器和一个常量操作数. Jump and branch format 需要一个源寄存器和一个常量地址. 三种不同格式的指令使它们的二进制表示形式尽量类似: 有利于使控制器的硬件设计简单. 假设指令长为16位.,Datapaths,61,Register format,例如: ADD R1, R2, R3 指令格式: 7-bit opcode 操作码, 指定操作 (例如 ADD). 3-bit destination register 目的操作数 DR. 两个 3-bit source registers 源操作数 SA 和 SB.,15 9 8 6 5 3 2 0,Datapaths,62,Immediate format,例如: ADD R1, R2, #3 指令格式: 7-bit opcode. 3-bit 目的寄存器 DR. 3-bit 源寄存器 SA. 3-bit constant operand立即数 OP.,15 9 8 6 5 3 2 0,Datapaths,63,使用 PC相对 地址表示jumps 和 branches, 即操作数表示的转移地址是相对于当前指令的. 假设每条指令占一个内存字长. 操作数为有符号数: jump 和 branch 可能 向前或向后转移。 向后转移可用于实现循环。,相对于PC 的 jumps 和 branches,Datapaths,64,Jump 和 branch format,例如: BZ R3, -24 JMP 18 指令格式: 7-bit 操作码。 3-bit 源寄存器 SA 表示转移条件. 6-bit address field, 地址域AD, 保存jump 或 branch 的偏移量.,15 9 8 6 5 3 2 0,Datapaths,65,地址域 AD,AD 被视为6-bit 有符号数,转移范围为(25-1)(-25). AD分成两部分,以使SA 在三种不同格式中占有同样的位置。,15 9 8 6 5 3 2 0,Datapaths,66,指令格式的一致性,不同类型指令的格式类似: Opcode 位置相同(bits 15-9). DR 位置相同. SA 位置相同。,15 9 8 6 5 3 2 0,Datapaths,67,指令格式和数据通路,指令格式与数据通路是密切相关的: 由于寄存器地址 (DR, SA , SB) 是三位长, 指令集只能支持8个寄存器 常量OP 3位 长。如果ALU 的I/O 的数据宽度超过3位 ,常量在送入ALU 前需进行符号扩展 。 显然,支持更多的寄存器和更大的常量将增加机器语言指令的长度。,15 9 8 6 5 3 2 0,Datapaths,68,组织指令,如何选择操作码? 通常, “类似” 的指令应该选择类似的操作码,以简化控制器硬件的设计 。 指令分成八类,每类具有类似的数据通路控制信号 。,Datapaths,69,Register format 的ALU 操作,ADD R1, R2, R3 所有的 register format ALU 操作需要 以下相同的控制信号: MB = 0, 因为操作数来自于寄存器文件. MD = 0 且 WR = 1, 因为需将结果写回寄存器. MW = 0 ,因为无需修改 RAM .,WR 1,Datapaths,70,内存写操作,ST (R0), R1 所有的内存写操作需要以下相同的控制信号: MB = 0, 因为数据源是寄存器文件。 MD = X 且 WR = 0, 因为无需修改寄存器. MW = 1, 更新 RAM.,WR 0,Datapaths,71,挑选操作码,指令分成八类,同类型的指令应具有类似的操作码。 同类型指令操作码的bits 15-13高三位相同.,Datapaths,72,ALU 与 shift instructions,对于 ALU 和 shift 操作, 用操作码的bits 12-9 表示ALU的功能选择码FS3-FS0. 例如, 基于寄存器操作的XOR 指令,其操作码0001100. 高三位表示 000 表示是基于寄存器的ALU 指令. 1100 表示是 ALU XOR 操作. 立即数移位指令的操作码1011000. 101 表示是立即数移位操作。 1000 表示为左移位.,Datapaths,73,Branch 指令,实现八种不同条件的转移指令。 操作码的位 11-9 表示转移条件. ( bit 12不用.) 例如, 为0时转移指令 BZ 的操作码为 110x011. 高3位 110 表示是转移指令. 011 表明为0时转移.,Datapaths,74,操作码示例,指令集中的部分指令及其操作码. 某些操作码的部分位没有使用,可用于指令集在未来的扩展,如增加新指令或新的寻址方式。,Datapaths,75,汇编指令到机器码的转换: bits 8-0 取决于指令格式。,Datapaths,76,小结,指令集到机器语言的转换: 不同的指令有不同的操作数和格式,尽量一致的格式有利于简化硬件的设计。 同类型的指令尽量采用相似的操作码。 指令的二进制编码与数据通路密切相关。例如指令的长度限制了能够访问的寄存器的数目。 一个关于如何定义机器语言的例子。,Datapaths,77,Control units,控制器control unit将指令的二进制代码转换成数据通路需要的控制信号。,Datapaths,78,数据通路,WR = 1 写入寄存器. DA 写入寄存器的地址. AA 和 BA 选择源寄存器. MB 选择寄存器或常量. FS 选择 ALU 的功能. MW = 1 写入内存. MD 选择ALU 的结果或RAM 输出. V, C, N , Z 状态位.,Datapaths,79,指令格式review,三种指令格式, 指令16位长。7 位操作码,9位操作数. 指令的高3位表示指令的类型。,15 9 8 6 5 3 2 0,Datapaths,80,处理器结构,控制器control unit 连接程序和数据通路. control unit 将汇编语言的指令转换成数据通路所需的信号control words 包括 WR, DA, AA, BA, MB, FS, MW, MD. 以一种正确的顺序执行程序. 为数据通路提供持续的输入. 数据通路也某些信息返回给控制器,例如 ALU 状态位 V, C, N, Z, branch instructions 将检测这些状态信息,以修改控制流.,Control Unit,Datapath,Control signals,Status signals,Program,Datapaths,81,程序放在哪儿?,哈佛结构 Harvard architecture, 包含两种内存. 指令存储器 instruction memory 存放程序. 数据存储器 data memory 用于计算,存放数据. 好处是对于指令的读和对数据的读写可以在同一时钟周期进行. 省略指令RAM 的WR 和 DATA 输入信号. 当代CPU 的Caches 通常采用类似的Harvard architecture . 即存放程序也存放数据的内存结构,称为 Von Neumann architecture.,Datapaths,82,程序计数器Program counter,程序计数器 program counter 即 PC 用于寻址指令内存,跟踪当前执行指令. 每个时钟周期, 计数器完成下列工作之一: 若 Load = 0, PC +1, 指向下一条指令. 若 Load = 1, PC 更新 为 Data, DATA 实际为 jump 或 branch 指令给定的转移地址.,ADRS Instruction RAM OUT,PC,Load,Data,Datapaths,83,指令译码器,instruction decoder 是一个组合电路,输入为机器语言,输出为数据通路的控制信号。,(to the datapath),Datapaths,84,Jumps 和 branches,转移控制单元 branch control unit 决定 PC 的下一个值: 对于 jumps, PC 装入指令中给出目标地址. 对于 branch 指令, 当相应的状态位满足条件时, PC 装入指令中的目标地址。 对于其它指令, PC +1.,Datapaths,85,控制器的基本结构,在每个时钟周期: 1. 从指令内存中读入指令. 2. 指令译码器产生对应该指令数据通路所需的控制字. 3. 数据通路的寄存器读入 ALU 或数据内存. 4. ALU 或 RAM 的输出写回到寄存器. 5. 修改 PC ,PC+1 或依据 branches 或 jumps 指令装入新值.,Datapaths,86,processor,Control Unit,Datapath,Datapaths,87,实现指令译码器,如何构造指令译码器? instruction decoder 是一个组合电路,输入为机器语言16-bit 长的二进制指令 ,输出为数据通路的控制信号。 译码器的输出称为控制字,包括: WR, DA, AA, BA, MD. FS. MW. MB,Datapaths,88,MB, MD, WR 和 MW,不同类型指令的MB, MD, WR 和 MW 信号:,Datapaths,89,八类指令,表中,可看出:. MW = 1 仅当内存写入时. MB = 1 仅对立即数指令有效. MD 无用,当 WR = 0时. Jumps 和 branches 指令即不修改寄存器,也不修改内存.,Datapaths,90,生成 MB, MD, WR, MW信号,MB = I15 MD = I14 WR = I14 + I15 I13 MW = I15 I14 I13,Datapaths,91,生成 FS 信号,例如: XOR的操作码 0001100. 000 表示 ALU 指令 . 1100 表示XOR 功能. 根据对操作码的定义, ALUs FS 的控制信号可以直接取自于指令的操作码。,Datapaths,92,branch 指令的FS,对于loads, stores 和 jumps等不包含ALU运算的指令, FS 无关紧要. 但对于 branch 条件转移等依赖于AL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 猪小弟课件教学课件
- 2024年广西体育馆大院体育用品销售合同
- 2024年建筑工程分包及劳务承包协议
- 2024年度石油天然气开采与销售合同
- 2024年度船舶修造安装工程分包协议
- 2024年度深圳晚辅老师招聘合同
- 2024年布匹交易协议规定
- 04年国际货物买卖合同
- 2024期房购买合同范本
- 2024年度施工现场食品安全管理合同
- 非传统水源利用率计算书
- 废弃电器电子产品拆解处理综合管理系统使用手册
- 颈椎病护理查房 (3)PPT
- 02《文字下乡》课件13张-统编版高中语文必修上册
- 某集团公司战略地图
- 《线性代数》教案完整版教案整本书全书电子教案
- 旅游管理信息系统教材课件汇总完整版ppt全套课件最全教学教程整本书电子教案全书教案合集最新课件汇编
- 三年级下册美术课件-第4课 瓜果飘香丨赣美版
- 绿电制绿氢及其综合利用技术PPT
- JJG646-2006移液器检定规程-(高清现行)
- 【课题研究】-《普通高中英语阅读课文教学研究》结题报告
评论
0/150
提交评论