中央处理器(2-4)数据通路结构描述.ppt

上传人:max****ui 文档编号:10991265 上传时间:2020-04-17 格式:PPT 页数:102 大小:2.05MB
返回 下载 相关 举报
中央处理器(2-4)数据通路结构描述.ppt_第1页
第1页 / 共102页
中央处理器(2-4)数据通路结构描述.ppt_第2页
第2页 / 共102页
中央处理器(2-4)数据通路结构描述.ppt_第3页
第3页 / 共102页
点击查看更多>>
资源描述
Datapaths 1 指令周期 算术逻辑单元 状态条件寄存器 程序计数器PC 地址寄存器AR 地址总线ABUS 数据总线DBUS 累加器AC 缓冲寄存器DR ALU 指令寄存器IR 指令译码器 操作控制器时序产生器 时钟 状态反馈 取指控制 执行控制 c c c c 1 20 21 22 23 24 30 40 CLA ADD30 STA40 NOP JMP21 000006 000024 JMP21 JMP21 000024 000021 000006 000006 000025 000021 Datapaths 2 具体步骤如下 1 根据程序计数器PC的内容从内存中取出一条指令 放置于指令寄存器IR中 2 分析IR中的操作码 决定应执行的操作 3 根据IR的地址码取出参加运算的操作数 4 对操作数进行运算 5 根据IR的地址码把运算结果存入指定地址 6 本条指令执行完毕 修改PC内容决定下一条指令所在的地址 Datapaths 3 时序与控制方式控制器在时钟脉冲驱动下产生节拍 一般情况下一个节拍对应于一个时钟脉冲 如下图所示 图中用step i代表第i个节拍 其宽度与时钟周期相等 节拍电位和其他信号相互组合用于控制操作 引导数据在数据通路中流动 而在节拍的末尾处则由时钟脉冲把运算结果 或中间结果 打入寄存器 Datapaths 4 同步控制方式 Datapaths 5 有限状态机 FiniteStateMachine FSM Datapaths 6 结构描述 Datapaths 7 组合逻辑控制器 Datapaths 8 Datapaths 9 Datapaths 10 Datapaths 11 CPU设计 CPU的设计可分为三部分 数据通路datapath实现真正的数据处理 指令集instructionset实现程序和CPU之间的接口 控制器controlunit使用程序员的指令告诉数据通路做什么 数据通路 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 R3R3 R1 1表示逻辑操作 R2 R1 R2bitwiseANDR3 R0 R1bitwiseOR表示移位 R2 slR1leftshiftR2 srR1rightshift Registertransferoperations Datapaths 16 寄存器的方框图 如上表示一个n bit的寄存器 数据 当Load 1 数据输入 当Load 0 寄存器保存当前值 寄存器的输出总是有效 省去时钟信号 Datapaths 17 寄存器文件 寄存器文件 当代处理器通常将多个寄存器组织到一起称为registerfile 与RAM类似 寄存器用地址区分 右图为2kxn的寄存器文件 有2k个寄存器 寄存器的地址线为kbits长 每个寄存器存放一个n bit的字 数据输入输出为nbits宽 Datapaths 18 访问寄存器文件 假设 同时给出AA和BA 则数据同时出现在A和B输出 当WR 1 利用DA和D写入寄存器 方框图中省去了时钟信号 任何时候可以读出 但只在时钟的上升沿写入 n n n k k k Ddata Write Daddress Aaddress Baddress Adata Bdata RegisterFile 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的功能 功能选择码为5bits长定义15种不同的功能 Datapaths 22 第1个数据通路 最基本的数据通路 ALU的2个输入来自于寄存器文件 ALU计算 结果存回寄存器 WR DA AA BA FS为控制信号 决定数据通路的具体动作 如使用哪个寄存器及执行何种运算 Datapaths 23 R0 R1 R3AA 01且BA 11 R1给Adata R3给Bdata ALU功能选择码为FS 00010 A B DA 00且WR 1 在下一个时钟的上升沿 ALU结果 R1 R3 存入R0 Ddata Write Daddress Aaddress Baddress Adata Bdata RegisterFile WR DA AA BA A B ALU F Z N C V FS FS 00010 01 11 00 1 Datapaths 24 Twoquestions 需要更多的存储单元 谁来决定读写哪个寄存器及执行何种ALU功能 Datapaths 25 访问内存 在数据通路中加入RAM 写RAM 需给出地址ADRS和数据DATA 分别取自寄存器的Adata 和Bdata当MW 1时写入RAM Ddata Write Daddress Aaddress Baddress Adata Bdata RegisterFile WR DA AA BA A B ALU F Z N C V FS FS MD 1 Datapaths 26 读RAM 读RAM Adata提供地址 MW 0结果存入寄存器 Ddata有2个来源ALU或RAM 多路选择器MD选择数据源 当MD 0 ALU输出存入寄存器 当MD 1 RAM输出存入寄存器 Ddata Write Daddress Aaddress Baddress Adata Bdata RegisterFile 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的寄存器 只能使用2nxn的内存 假设RAM与CPU时钟一样快 Datapaths 28 地址为X的内存单元的内容可表示为M X 例如 RAM中的第1个字为M 0 若R1中包含内存地址 则M R1 表示该单元的内容 Datapaths 29 寄存器传送 R3 M R0 R3 R3 1M R0 R3地址为R0的RAM的数据 1 ALU只能对寄存器运算 RAM必须先装入寄存器 运算后再存回RAM 假设R0包含内存单元的地址 数据通路如何完成该操作 Datapaths 30 R3 M R0 AA 00 读R0 R0作为RAM的地址 M R0 出现在RAM的OUT MD 1 RAM输出送到寄存器 DA 11且WR 1 结果存入R3MW 0 防止意外写入RAM 没有ALU FS 和BA 1 11 00 1 0 Ddata Write Daddress Aaddress Baddress Adata Bdata RegisterFile 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结果写回到R3MW 0 避免意外写入内存没有使用BA Ddata Write Daddress Aaddress Baddress Adata Bdata RegisterFile WR DA AA BA A B ALU F Z N C V FS n QD1 D0 S RAM ADRS DATA CS WR OUT MW 5V n FS MD 1 11 11 0 0 00001 Datapaths 32 M R0 R3 将R3存回RAM中 其地址为R0 AA 00且BA 11 R0给ADRS R3给DATA MW 1 内存写 WR 0 无需写寄存器 MD和DA没有用 不使用ALU 忽略FS Ddata Write Daddress Aaddress Baddress Adata Bdata RegisterFile 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 SD1D0Q Constant MB Datapaths 34 Controlunits 数据通路的控制信号不同将执行不同的操作 谁提供控制信号 在真实的计算机中 数据通路的行为是由装入且正在执行的程序决定的 控制器controlunit负责依据程序代码为数据通路产生正确的控制信号 Datapaths 35 小结 数据通路是处理器的一部分 完成真正的计算 基本元件为ALU 寄存器文件和内存 ALU完成计算 寄存器文件和内存提供对ALU的操作数和结果的存储 不同的控制信号控制着数据通路的行为 Datapaths 36 Instructionsetarchitectures指令集体系结构 数据通路最终由程序员控制 Datapaths 37 编程与CPUs 用高级语言如C 必须编译成可执行程序 可执行程序是面向CPU的机器语言 machinelanguage 程序 可装入内存由处理器执行 机器语言是软硬件间的接口interface 讨论虚线以下的内容 Datapaths 38 高级语言 High levellanguages提供很多有用的编程结构 For while loopsIf then else函数和过程变量和数组许多语言提供一些很有用的安全性质 静态和动态类型检查垃圾收集高级语言相对来说是可移植的 理论上你可以编写一个高级语言程序 然后在不同的处理器上运行 当与低级语言比较后 你才能体会到高级语言的 高级 Datapaths 39 低级语言 每个CPU有自己的低级指令集instructionset 即机器语言 反映了CPU s的设计 这也意味着人类很难直接使用 表现在 控制流限于 jump 和 branch 必须以此为基础构造loops和conditionals 对函数和过程的支持很有限 内存寻址方式必须明确显式指出 而不能简单地声明变量然后使用它们 很少提供错误检查 很难让机器语言程序在不同的处理器上运行 Datapaths 40 汇编语言与机器语言 机器语言是二进制位串 人们使用assemblylanguage 加入助记符 助记符与机器指令有一对一的关系 汇编程序到机器程序的转换容易 Datapaths 41 数据操作类指令 对应于ALU的运算加法类似于高级语言中的R0 R1 R2操作数为寄存器 Datapaths 42 NOTR0 R1R0 R1 ADDR3 R3 1R3 R3 1SUBR1 R2 5R1 R2 5NOT只有一个操作数 表示常数 Datapaths 43 与数据通路的关系 指令反映了数据通路的设计 每条指令最多有两个数据源 因为ALU只有两个输入 两个数据源可以是两个寄存器 也可以一个是寄存器 一个是常量 复杂的操作 如 R0 R1 R2 3必须由多条指令完成 指令只有一个目的操作数 还必须是寄存器类型 Datapaths 44 RAM ALU能够直接访问的是寄存器文件 必须把RAM的内容复制到寄存文件后 才能作为ALU的操作数 ALU的结果必须经过寄存器才能存入内存 必须依赖于数据传送类指令将数据在内存与寄存器文件之间传送 Datapaths 45 从RAM中传送数据到寄存器 load指令从内存中传送数据到寄存器 LDR1 R3 R1 M R3 RAM的地址来自于寄存器 括号表示R3中存放的是一个内存单元的地址 Ddata Write Daddress Aaddress Baddress Adata Bdata RegisterFile WR DA AA BA RAM ADRS DATA CS WR OUT MW 5V MD SD1D0Q Constant MB Datapaths 46 将寄存器中的数据存入RAM store指令将寄存器中的内容传送到内存RAM ST R3 R1M R3 R1RAM地址存放在R3中 写入RAM的数据存放在R1中 MD SD1D0Q Constant MB Datapaths 47 给寄存器赋值 初始化寄存器LDR1 0R1 0ALU FS 10000 传送B 操作 Ddata Write Daddress Aaddress Baddress Adata Bdata RegisterFile WR DA AA BA RAM ADRS DATA CS WR OUT MW 5V MD SD1D0Q Constant MB Datapaths 48 常量存入内存 初始化内存 ST R3 0M R3 0 MD SD1D0Q Constant MB Datapaths 49 和 和 表明了不同的寻址方式 寻址方式决定了如何寻找操作数 数据通路的设计决定了可以采用何种寻址方式 数据通路不支持第二个例子的寻址方式 Whynot Datapaths 50 示例 M 1000 M 1000 1等价的汇编语言 需多条指令 必须先将内存地址1000装入寄存器 然后通过寄存器访问内存 受数据通路的限制 ALU只能以寄存器的常量为操作数 CISC与RISC Datapaths 51 程序由指令组成 并存于内存 每条指令有一个地址 指令顺序存放 程序计数器programcounter PC 跟踪当前指令的地址 通常 PC 1 有时需要改变程序串行执行的轨迹 需要控制流指令controlflowinstructions 控制流指令 Datapaths 52 jump指令总是修改PC的值 操作数表示应如何修改 通常用标号labels表示真正的地址 例如 例如 重复 LDR1 10LDR2 3JMPLKLDR1 20 这两条指令被跳过LDR2 4 LADDR3 R3 R2ST R1 R3 Jumps LDR1 0FADDR1 R1 1JMPF 无限循环 Datapaths 53 分支指令 branch指令可能修改PC的值 依赖于条件是否成立 LDR1 10LDR2 3BZR4 L JumptoLifR4 0KLDR1 20 这两条指令可能被跳过 依赖于R4LDR2 4 LADDR3 R3 R2ST R1 R3 Datapaths 54 分支指令 Branch条件通常根据ALU的状态 其它分支条件 如大于 等于 小于 可以从ALU运算及以上条件中得出 Datapaths 55 jumps和branches比起高级语言的控制流结构简单得多Conditionalstatements Loops 高级语言的控制流 Datapaths 56 用branch指令转换高级语言的条件语句 Cif then语句的转换 Datapaths 57 Cforloop的转换 用BGTbranch转换 Datapaths 58 小结 机器语言是软硬件的接口 有三类主要的指令 数据操作类指令数据传送类指令控制流指令指令集ISA高度依赖于CPU的设计 Datapaths 59 处理器结构 控制器controlunit连接程序和数据通路 controlunit将汇编语言的指令转换成数据通路所需的信号controlwords包括WR DA AA BA MB FS MW MD 以一种正确的顺序执行程序 为数据通路提供持续的输入 数据通路也某些信息返回给控制器 例如ALU状态位V C N Z branch指令将检测这些状态信息 以修改控制流 ControlUnit Datapath Controlsignals Statussignals Program Datapaths 60 从汇编语言到机器语言 machinelanguage 处理器支持的汇编语言的二进制表示 上述CPU支持三类指令 它们有不同的操作数 因而需要不同的表示形式 Registerformat需要两个源寄存器做操作数 Immediateformat需要一个源寄存器和一个常量操作数 Jumpandbranchformat需要一个源寄存器和一个常量地址 三种不同格式的指令使它们的二进制表示形式尽量类似 有利于使控制器的硬件设计简单 假设指令长为16位 Datapaths 61 Registerformat 例如 ADDR1 R2 R3指令格式 7 bitopcode操作码 指定操作 例如ADD 3 bitdestinationregister目的操作数DR 两个3 bitsourceregisters源操作数SA和SB 159865320 Datapaths 62 Immediateformat 例如 ADDR1 R2 3指令格式 7 bitopcode 3 bit目的寄存器DR 3 bit源寄存器SA 3 bitconstantoperand立即数OP 159865320 Datapaths 63 使用PC相对地址表示jumps和branches 即操作数表示的转移地址是相对于当前指令的 假设每条指令占一个内存字长 操作数为有符号数 jump和branch可能向前或向后转移 向后转移可用于实现循环 相对于PC的jumps和branches Datapaths 64 Jump和branchformat 例如 BZR3 24JMP18指令格式 7 bit操作码 3 bit源寄存器SA表示转移条件 6 bitaddressfield 地址域AD 保存jump或branch的偏移量 159865320 Datapaths 65 地址域AD AD被视为6 bit有符号数 转移范围为 25 1 25 AD分成两部分 以使SA在三种不同格式中占有同样的位置 159865320 Datapaths 66 指令格式的一致性 不同类型指令的格式类似 Opcode位置相同 bits15 9 DR位置相同 SA位置相同 159865320 Datapaths 67 指令格式和数据通路 指令格式与数据通路是密切相关的 由于寄存器地址 DR SA SB 是三位长 指令集只能支持8个寄存器常量OP3位长 如果ALU的I O的数据宽度超过3位 常量在送入ALU前需进行符号扩展 显然 支持更多的寄存器和更大的常量将增加机器语言指令的长度 159865320 Datapaths 68 组织指令 如何选择操作码 通常 类似 的指令应该选择类似的操作码 以简化控制器硬件的设计 指令分成八类 每类具有类似的数据通路控制信号 Datapaths 69 Registerformat的ALU操作 ADDR1 R2 R3所有的registerformatALU操作需要以下相同的控制信号 MB 0 因为操作数来自于寄存器文件 MD 0且WR 1 因为需将结果写回寄存器 MW 0 因为无需修改RAM WR1 Datapaths 70 内存写操作 ST R0 R1所有的内存写操作需要以下相同的控制信号 MB 0 因为数据源是寄存器文件 MD X且WR 0 因为无需修改寄存器 MW 1 更新RAM WR0 Datapaths 71 挑选操作码 指令分成八类 同类型的指令应具有类似的操作码 同类型指令操作码的bits15 13高三位相同 Datapaths 72 ALU与shiftinstructions 对于ALU和shift操作 用操作码的bits12 9表示ALU的功能选择码FS3 FS0 例如 基于寄存器操作的XOR指令 其操作码0001100 高三位表示000表示是基于寄存器的ALU指令 1100表示是ALUXOR操作 立即数移位指令的操作码1011000 101表示是立即数移位操作 1000表示为左移位 Datapaths 73 Branch指令 实现八种不同条件的转移指令 操作码的位11 9表示转移条件 bit12不用 例如 为0时转移指令BZ的操作码为110 x011 高3位110表示是转移指令 011表明为0时转移 Datapaths 74 操作码示例 指令集中的部分指令及其操作码 某些操作码的部分位没有使用 可用于指令集在未来的扩展 如增加新指令或新的寻址方式 Datapaths 75 汇编指令到机器码的转换 bits8 0取决于指令格式 Datapaths 76 小结 指令集到机器语言的转换 不同的指令有不同的操作数和格式 尽量一致的格式有利于简化硬件的设计 同类型的指令尽量采用相似的操作码 指令的二进制编码与数据通路密切相关 例如指令的长度限制了能够访问的寄存器的数目 一个关于如何定义机器语言的例子 Datapaths 77 Controlunits 控制器controlunit将指令的二进制代码转换成数据通路需要的控制信号 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位表示指令的类型 159865320 Datapaths 80 处理器结构 控制器controlunit连接程序和数据通路 controlunit将汇编语言的指令转换成数据通路所需的信号controlwords包括WR DA AA BA MB FS MW MD 以一种正确的顺序执行程序 为数据通路提供持续的输入 数据通路也某些信息返回给控制器 例如ALU状态位V C N Z branchinstructions将检测这些状态信息 以修改控制流 ControlUnit Datapath Controlsignals Statussignals Program Datapaths 81 程序放在哪儿 哈佛结构Harvardarchitecture 包含两种内存 指令存储器instructionmemory存放程序 数据存储器datamemory用于计算 存放数据 好处是对于指令的读和对数据的读写可以在同一时钟周期进行 省略指令RAM的WR和DATA输入信号 当代CPU的Caches通常采用类似的Harvardarchitecture 即存放程序也存放数据的内存结构 称为VonNeumannarchitecture Datapaths 82 程序计数器Programcounter 程序计数器programcounter即PC用于寻址指令内存 跟踪当前执行指令 每个时钟周期 计数器完成下列工作之一 若Load 0 PC 1 指向下一条指令 若Load 1 PC更新为Data DATA实际为jump或branch指令给定的转移地址 ADRSInstructionRAMOUT PC Load Data Datapaths 83 指令译码器 instructiondecoder是一个组合电路 输入为机器语言 输出为数据通路的控制信号 tothedatapath Datapaths 84 Jumps和branches 转移控制单元branchcontrolunit决定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 ControlUnit Datapath Datapaths 87 实现指令译码器 如何构造指令译码器 instructiondecoder是一个组合电路 输入为机器语言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 I15MD I14WR I14 I15 I13MW I15 I14I13 Datapaths 91 生成FS信号 例如 XOR的操作码0001100 000表示ALU指令 1100表示XOR功能 根据对操作码的定义 ALU sFS的控制信号可以直接取自于指令的操作码 Datapaths 92 branch指令的FS 对于loads stores和jumps等不包含ALU运算的指令 FS无关紧要 但对于branch条件转移等依赖于ALU状态的指令 需要考虑FS例如 BZR3 24R3必须经过ALU Z必须正确设置 ALU需选择功能 G A FS 00000或00111 Datapaths 93 生成DA AA BA DA AAandBA直接取自16 bit长二进制指令 bits8 6为目的寄存器 DA Bits5 3为第1个源寄存器AA Bits2 0为第2个源寄存器BA Datapaths 94 无关条件 对于immediate format指令 bits2 0保存立即数 而不是第2个源寄存器 然而 立即数指令只使用1个源源寄存器 所以BA无关 同样 jump和branch指令即不使用目的寄存器 也不使用第2个源寄存器 所以 DA2DA1DA0 I8I7I6AA2AA1AA0 I5I4I3BA2BA1BA0 I2I1I0 Datapaths 95 Branchcontrolunit Branchcontrol的输入信号 PL JB BC AD为译码器的输出信号 包含了当前指令相关的信息状态位V C N Z 当前的PC值Branchcontrol的输出信号 Load装入信号PC 当Load 1 目标地址信号targetaddress Datapaths 96 Branchcontrolunit的输入信号 译码器输出 PL JB表明指令类型 BC编码转移条件AD表示目标地址 Datapaths 97 生成PL和JB 指令译码器根据操作码生成PL和JB信号 PL I15I14JB I13 Datapaths 98 生成BC和AD BC2BC1BC0 I11I10I9AD5AD4AD3AD2AD1AD0 I8I7I6I2I1I0 Datapaths 99 Jumps 若PL 1且JB 1 当前指令必为jump 将jump的偏移量 offset AD 与当前PC相加 再存回PC branchcontrolunit应包含一个加法器 计算目标地址 AD为有符号数 实现双向跳转 Datapaths 100 Branches 如果PL 1且JB 0 当前指令必为条件转移指令 branchcontrolunit首先决定是否实现转移 检查转移类型即BC和状态位VCNZ 例如当BC 011且Z 1 则转移条件为真 应当实现转移 然后 branchcontrolunit设置PC值 如果转移为真 将AD与PC相加 与jumps一样 否则PC 1 顺序执行 Datapaths 101 小结 控制器 PC指向指令存储器 指令译码器根据指令生成数据通路的控制信号 转移控制单元处理指令执行的顺序 控制器的实现依赖于指令集的结构和数据通路仔细选择操作码和指令格式 可简化控制器的设计 Datapaths 102 组合逻辑控制器
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!