版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实时数字信号处理第第2章章 计算单元计算单元 概述 每个内核都有6个计算单元 两个算术/逻辑单元(alu) 两个乘/累加器(乘法器)单元 一个移位器 一套视频alu 提供定点操作 处理不同类型的操作 数据移入和移出计算单元是通过数据寄存器文件的 数据总线 高级并行机制利用多功能指令 数据地址产生 寄存器文件寄存器文件 3个寄存器组数据寄存器文件为计算单元从数据总线接收操作数并存储计算结果指针寄存器文件含有寻址操作的指针dag寄存器是专用于管理dsp操作中的零开销循环缓冲的寄存器。 数据地址产生器(dag)数据寄存器r0r0.hr0.lr1r1.hr1.lr2r2.hr2.lr3r3.hr3.l
2、r4r4.hr4.lr5r5.hr5.lr6r6.hr6.lr7r7.hr7.la0a0.xa0.wa1a1.xa1.wi0 l0 b0 m0 p0i1 l1 b1 m1 p1i2 l2 b2 m2 p2i3 l3 b3 m3 p3 p4 p5 sp fp数据寄存器文件数据寄存器文件 包含8个寄存器 每个32位宽 一对独立的16位寄存器:低半部分和高半部分 3条独立总线连接寄存器文件和l1数据存储器 2条读、1条写 32位宽 每个周期内搬移多达4个16位的有效数据 32-bit和16-bit操作 r2=r1 + r2; /* 32-bit addition */ r2.l=r1.h * r0.
3、l; /* 16-bit multiplication */累加寄存器 两个专有的40位的累加寄存器(a0和a1)的访问形式: 16位低半部分(an.l)、高半部分(an.h) 8位扩展(an.x) 低32位寄存器an.w 完全的40位结果寄存器(an) 指令操作 a0=a1; /* 40-bit move */ a1.w=r7; /* 32-bit move */ a0.h=r5.h; /* 16-bit move */ r6.h=a0.x; /* read 8-bit value and sign extend to 16 bits */指针寄存器指针寄存器 通用地址指针寄存器,也称之为p
4、寄存器 6个p寄存器文件p5:0 32位宽,主要用于地址计算 也可以在一组限定的算术操作集内用于一般的整数算术操作,譬如用作计数器,但不会影响到astat寄存器的状态标志。 1个帧指针(fp)用于指向当前进程的活动记录 1个堆栈指针(sp)用来指向运行时堆栈中最近一次使用的位置dag寄存器组寄存器组 dag寄存器组用于寻址 i3:0包含索引地址 m3:0包含修改值 b3:0包含基地址 l3:0包含长度值 32位宽 i寄存器和b寄存器包含存储器8-bit字节地址 i寄存器含有一个有效地址,m寄存器含有用于在i寄存器上进行加或减的偏移值 任意的m寄存器可和任意的i寄存器关联,比如,i0可被m3修改
5、 b寄存器和l寄存器定义循环缓冲,b寄存器存储缓冲的起始地址,l寄存器存储长度,按字节计。 l和b寄存器对是与对应的i寄存器相关联的,例如,l0和b0总是和i0相关联寄存器文件指令汇总寄存器文件指令汇总 符号的含义说明如下: allreg表示:r7:0、p5:0、sp、fp、i3:0、m3:0、b3:0、l3:0、a0.x、a0.w、a1.x、a1.w、astat、rets、reti、retx、retn、rete、lc1:0、lt1:0、lb1:0、usp、seqstat、syscfg、cycles和cycles2 an表示alu结果寄存器a0或a1之一 dreg表示任一个数据寄存器文件寄存器
6、 sysreg表示系统寄存器astat、seqstat、syscfg、reti、retx、retn、rete或rets、lc1:0、lt1:0、lb1:0、cycles和cycles2 preg表示任一pointer寄存器、fp或sp寄存器 dreg_even表示r0、r2、r4或r6 dreg_odd表示r1、r3、r5或r7寄存器文件指令汇总寄存器文件指令汇总 符号的含义说明如下: dpreg表示任一数据寄存器文件寄存器或任一pointer寄存器、fp或sp寄存器 dreg_lo表示任一数据寄存器文件寄存器低16位 dreg_hi表示任一数据寄存器文件寄存器高16位 an.l表示累加器an
7、.w的低16位 an.h表示累加器an.w的高16位 dreg_byte表示每一个数据寄存器的低8位 option (x)表示符号扩展 option (z)表示零扩展 *指示这个标志可以置位或清零、依赖于指令的计算结果 *指示这个标志清零 指示无作用表2-1 寄存器文件指令汇总表 指令指令astat 状态标志状态标志azanac0ac0_copyac1av0av0sav1av1sccvv_copyvsallreg = allreg ; 1an = an ;an = dreg ;dreg_even = a0 ;*dreg_odd = a1 ;*dreg_even = a0, dreg_odd =
8、 a1 ; *dreg_odd = a1, dreg_even = a0 ; *if cc dpreg = dpreg ;if ! cc dpreg = dpreg ;dreg = dreg_lo (z) ;*/dreg = dreg_lo (x) ;*/表2-1 寄存器文件指令汇总表续指令指令astat 状态标志状态标志azanac0ac0_copyac1av0av0sav1av1sccvv_copyvsan.x = dreg_lo ;dreg_lo = an.x ;an.l = dreg_lo ;an.h = dreg_hi ;dreg_lo = a0 ;*dreg_hi = a1 ;*d
9、reg_hi = a1 ; dreg_lo = a0 ;*dreg_lo = a0 ; dreg_hi = a1 ;*dreg = dreg_byte (z) ;*/dreg = dreg_byte (x) ;*/1 警告:不是所有的寄存器组合都是合法的。详细信息见blackfin处理器指令集参考中的搬移寄存器指令功能描述。算术状态寄存器(算术状态寄存器(astat) 指示了最近的alu、乘法器或移位器操作的状态bit31302928272625242322212019 18 17 160000000000000000复位=0 x0000 000025:vs(黏性黏性dreg溢出溢出)v的黏性
10、描述。24:v(dreg溢出溢出)0-最近从alu写入数据寄存器文件的结果没有溢出;1-最近结果有溢出。19:av1s(黏性黏性a1溢出溢出)av1的黏性描述。16:av0(a0溢出溢出)0-最近写入a0的结果没有溢出;1-最近写入a0的结果有溢出。17:av0s(黏性黏性a0溢出溢出)av0的黏性描述。18:av1(a1溢出溢出)0-最近写入a1的结果没有溢出;1-最近写入a1的结果有溢出。算术状态寄存器(算术状态寄存器(astat)bit1514131211109876543210000000000000000013:ac1(alu1进位进位)0-alu1里的操作没有产生进位。1-操作产生
11、了进位。12:ac0(alu0进位进位)0-alu0里的操作没有产生进位。1-操作产生了进位。8:rnd_mod(圆整模式圆整模式)0-无偏圆整。1-有偏圆整。6:aq(商)商位0:az(零结果零结果)0-来自alu0、alu1或移位器的最近结果不是零;1-结果是零。1:an(负数结果负数结果)0-来自alu0、alu1或移位器的最近结果不是负数;1-结果是负数。2:ac0_copy,与位12一样。3:v_copy,与位24一样。5:cc(条件码条件码)多目的标志,主要用于保存算术比较的判定。也用于一些移位器指令,保留循环移位的比特。数据类型数据类型 balckfin处理器主要是16位定点处理
12、器 大多数操作采用补码数,其它有无符号数或二进制串 一些指令支持32位整数算术、支持8位算术和块浮点 数据格式的详细情况参阅硬件参考手册附录c“数字格式” 在blackfin处理器系列算术中有符号数都是2的补码格式 处理器支持32-bit字、16-bit半字和字节 32-bit和16-bit字可以是整数或小数,但是字节总是整数 整数可以是有符号数或无符号数,但小数总是有符号数小数表示(小数表示(1.15) 对于1.15二进制格式小数算术是优化的 表示从-1到0.999969之间的值 图2-3给出了1.15数的位权重和例子 1.15 数(16进制)0x00010x7fff0xffff0x8000
13、对应小数0.0000310.999969-0.000031-1.000000202-12-22-32-42-52-62-72-82-92-102-112-122-132-142-15图2-3 1.15数的位权重 alu数据类型数据类型除了有符号除法原语(divs),每个alu操作都把操作数和结果当作16-bit或者32-bit二进制串处理 alu结果产生状态信息 把结果当作有符号数 溢出标志(av0,av1)和负数标志(an) 黏性溢出标志av0s或av1s一旦置位将保持置位状态直到直接写入而清除 v标志的置位或清除取决于从两个累加器到寄存器文件的结果的传送 黏性vs位随v位一同置位并保持置位
14、状态直到清零 溢出位(v、vs、av0、av0s、av1、av1s)逻辑都是基于补码算术如果msb的改变方式不是操作数符号位和操作本身特性所预测的方式,那么一个位或一个组合位都会置位 例如两个正数相加,结果也必为正数,符号位的改变表示溢出并使相应的溢出标志avn置位 一个正数和一个负数相加可能产生一个正数或者一个负数,但是不会导致溢出进位(ac0、ac1)逻辑是基于无符号数算术 如果是从位16(msb)产生了进位就会将进位置位,进位对于一个多字操作的低位字部分来说是非常有用的乘法器数据类型乘法器数据类型 根据指令本身给定的信息,输入被解释成不同的类型 有符号数乘以有符号数、无符号数乘以无符号数
15、、混合类型,或者是一个取整操作 32位结果假定是有符号的,也是符号扩展的,充满a0或a1寄存器的整个40-bit的宽度 处理器支持两种格式调整模式 小数模式,用于小数操作数(1.15格式) 两个1.15操作数相乘,结果是一个2.30的数 结果传送到乘法器结果累加器(a0,a1)之前左移一位得到1.31格式数,可以圆整为1.15格式数 整数模式,用于整型操作数(16.0格式) 如果操作数都是16.0格式,乘法结果将是32.0格式。 当用乘法器结果更新累加器,或将它们传送到目的寄存器文件寄存器时,将产生状态信息移位器数据类型移位器数据类型 移位器中的许多操作是明确地采用有符号(补码)或无符号数 逻
16、辑移位采用无符号数或二进制串 算术移位采用补码数 指数逻辑采用补码数,指数逻辑支持块浮点,这也是基于补码的小数 移位器结果产生状态信息 圆整乘法器结果圆整乘法器结果 持乘法器结果的圆整(rnd选项) 圆整是降低一个数的精度的一种方式 寄存器astat里的位rnd_mod 清0对应无偏圆整,该位置1对应有偏圆整 对所有算法,无偏圆整是首先的无偏圆整无偏圆整传统的有偏圆整方法是在加法器的比特位置15上加上一个1,这个方法将引起一个净正偏差,因为中间值(a0.l/a1.l=0 x8000)总是向上圆整的当检测到结果是中间点值时,通过强迫结果输出中的比特16为0,累加器可消除这个偏差累加器使用无偏圆整
17、方案 无偏圆整使alu能将40-bit的结果在比特15和比特16边界之间进行圆整,圆整可以指定为指令代码的一个部分,当选择了圆整,输出寄存器就包含了已经圆整的16-bit的结果 当原始数刚好位于两个数中间时这个方法返回最接近的偶数,最低有效位是0 例如,要圆整一个3-bit的补码小数0.25(二进制0.01)到2-bit的补码小数,其结果将是0.0(二进制0.0),因为是从0.5(二进制0.1)和0.0中选择偶数 基于附近的值向上和向下圆整,所以该方法称之为无偏圆整 强迫比特16为0有这样的作用:将奇数的a0.l/a1.l值向上圆整,将偶数值向下圆整,得到大样本偏差为0、均匀分布的数值 参见图
18、2-5和2-6 累加器内容是从不圆整的特殊的圆整指令特殊的圆整指令 提供了这样的能力 在不同的比特边界上圆整,这些选项是rnd12、rnd和rnd20,分别从比特12、16和20上提取16位的值,并执行有偏圆整,而不管astat中的rnd_mod位的状态。 指令: r3.l=r4 (rnd); 在比特16上执行有偏圆整,保存结果于一个半字中 r3.l=r4+r5 (rnd12); 执行两个32位数的加法,在比特12上执行有偏圆整,将结果保存到一个半字里 r3.l=r4+r5 (rnd20); 执行两个32位数的加法,在比特20上执行有偏圆整,将结果保存到一个半字里算术逻辑单元(算术逻辑单元(a
19、lu) 两个alu执行定点数的算术和逻辑操作 alu定点指令操作16-bit、32-bit或40-bit的定点操作数,得到16-bit、32-bit或40-bit的定点结果。 alu指令 寄存器的定点加减法、立即数的加减法、乘法结果的累加/减、逻辑(与、或、非、异或、按位异或、取反)操作、函数(取绝对值、最大值、最小值、圆整、除法原语)操作alu操作操作 alu的主要操作是在alu0中进行的,并行操作是在alu1中进行的,它执行alu0操作的一个子集 表2-8描述了每个alu可能的输入和输出 联合两个alu操作,单条指令能得到4个16-bit结果、两个32-bit结果或两个40-bit结果。a
20、lu操作操作单单16-bit操作操作 r3.h=r1.h+r2.l (ns);r1.h加到r2.l上,结果保存到r3.h中,不带饱和选项 双双16-bit操作操作 r3=r1 + | - r2 (s);r2.h加到r1.h上,饱和处理后的结果保存到r3.h里从r1.l中减去了r2.l,饱和处理后的结果保存到r3.l里 4个个16-bit操作操作 r3=r0 +|+ r1,r2=r0 | r1 (s);r1.h加上r0.h,保存结果到r3.h里,带饱和操作。r1.l加上r0.l,保存结果到r3.l里,带饱和操作。r0.h减去r1.h,保存结果到r2.h里,带饱和操作。r0.l减去r1.l,保存结
21、果到r2.l里,带饱和操作。alu操作操作 单单32-bit操作操作 r3=r1 + r2 (ns); 指令中不能混合使用指针寄存器与数据寄存器 双双32-bit操作操作 r3=r1 + r2,r4 = r1 r2 (ns); 提供给alu0和alu1的是同样的两个32-bit输入寄存器 专门形式 使用40-bit的alu结果寄存器作为操作数,得到关于a0和a1寄存器的和与差。例如指令: r3=a0 + a1,r4=a0 a1 (s); 将alu寄存器值进行加减操作,带饱和处理,并将两个32-bit的和与差转输到结果寄存器双双16-bit交叉选项交叉选项 对于双16位操作,结果可能会交叉 “交
22、叉结果”改变了计算结果在结果寄存器中的位置。 高端结果放置在目的寄存器的低半字里,低端结果放置在目的寄存器的高半字里,参见图2-9 在处理复数数学运算和快速傅立叶变换(fft)的部分操作时有用,交叉选项只适用于alu031rmrprn图2-9 双16-bit alu操作的交叉选项 alu除法支持与视频操作除法支持与视频操作 alu支持除法 两个专用的除法原语divs和divq让程序实施一个不复原的、有条件的(错误检查)加/减/除算法 除法可以是有符号的或无符号的,但是被除数和除数必须是同一类型,参见处理器指令集参考 处理器具有特殊的simd视频alu操作功能 4个8-bit视频alu使处理器能
23、够高效率地处理视频信息 每个视频alu指令可能需要1至4对8-bit的输入,输出1至4对8-bit的结果 输入是用数据寄存器文件按两个32-bit字的形式提交给视频alu的 可能的操作包括 4个8-bit数的加法或减法、4个8-bit数的平均、4个8-bit数的打包和解包、4个8-bit数的减-绝对值-累加、字节对齐 参见处理器指令集参考alu指令汇总指令汇总符号的含义说明如下dreg_lo_hi表示任何数据寄存器文件寄存器里的16-bit寄存器半字。imm7表示有符号的7-bit宽的立即数。divs表示除法符号原语。divq表示除法商原语。max表示源寄存器里的最大值,或最大的正值。min表
24、示源寄存器的最小值。abs表示一个32-bit寄存器的高或低半字的绝对值。rnd表示对一个半字圆整。rnd12表示对加法或减法结果饱和处理,并在结果的第12位上进行圆整。rnd20表示对加法或减法结果饱和处理,并在结果的第20位上进行圆整。signbits表示一个数里的符号位的个数减1。expadj表示一个数里次要的符号位的个数减一个数里次要的符号位的个数减1和一个阈值。和一个阈值。d指示aq包含被除数最高有效位与除数最高有效位的异或。 表2-9 alu指令汇总表部分指令指令astat 状态标志azanac0ac0_copyac1av0av0sav1av1svv_copyvsaqdreg =
25、max (dreg, dreg ) (v) ;*/dreg = min (dreg, dreg) (v) ;*/dreg = abs dreg (v) ;*dreg_lo_hi = dreg (rnd) ;*dreg_lo_hi = dreg dreg (rnd12) ;*dreg_lo_hi = dreg + dreg (rnd20) ;*dreg_lo = signbits dreg ;dreg_lo = signbits dreg_lo_hi ;dreg_lo = signbits an ;dreg_lo = expadj (dreg, dreg_lo ) (v) ; dreg_lo =
26、 expadj (dreg_lo_hi, dreg_lo); 本讲作业1 理解并整理指令功能(参考adsp-bf53x/bf56x blackfin processor programming reference) max min vector search vector max vector min乘累加器乘累加器 乘累加器mac0和mac1 执行定点乘法运算和乘累加操作 用于累加或累减 定点指令对16-bit数据进行操作,产生32-bit结果,它可被加到40-bit累加器里或从中减去 输入 小数或整数,无符号或补码数 指令 乘法、乘累加(带圆整选项)、乘累减(带圆整选项)、同时包含前面两种
27、操作乘法器操作乘法器操作输入 数据寄存器文件寄存器 从两个32-bit输入得到两个16-bit操作数输出 累加其结果到它的累加器寄存器a1或a0 累加器结果可饱和成32或40位 或圆整后直接写入16-bit或32-bit目的寄存器数据类型 输入都是整数类型或者是小数类型,结果的类型和输入的类型一致 对于mac0,两个输入都被当作无符号或有符号数 对于mac1,有一个混合类型选项 若两个输入都是小数形式并是有符号数,将结果左移一位,以消除冗余符号位 而对于无符号小数、整数或者混合类型,不执行符号位修正的移位操作乘法指令选项指定了输入数据的格式 参见“乘法器指令选项”乘法器操作乘法器操作 乘法器结
28、果的圆整或饱和乘法器结果的圆整或饱和 乘法结果溢出时的饱和处理乘法结果溢出时的饱和处理 乘法器指令汇总(参见整理文稿)乘法器指令汇总(参见整理文稿) 乘法器指令选项(参见整理文稿)乘法器指令选项(参见整理文稿) 不带累加的乘法不带累加的乘法 乘积结果直接存入一个数据寄存器文件寄存器或累加器寄存器 目的寄存器可以是16位的或32位的 16-bit目的寄存器,低半字则使用mac0 16-bit目的寄存器,高半字则使用mac1 32-bit目的寄存器,mac0和mac1都可以使用乘法器操作乘法器操作 特殊的32-bit整数mac指令 dreg*=dreg; 双mac操作 两个16-bit mac使m
29、ac吞吐率加倍 两个32-bit输入寄存器可提供给每一个mac单元,提供了4种可能组合的16-bit输入操作数。 矢量操作 存储样点矢量到4个输入操作数,并执行矢量计算。 例子 a1+=r1.h * r2.l, a0+=r1.l * r2.h; mac操作中4个可能的组合mac0mac0mac0mac039a31rmrpa039b31rmrpa039c31rmrpa039d31rmrpa0桶式移位器桶式移位器 提供对16-bit、32-bit或40-bit输入的移位功能,产生一个16-bit,32-bit,或40-bit的输出 功能 算术移位、逻辑移位、循环移位和各种位测试、设置、打包、解包和
30、指数检测 移位功能可以组合 实现数字格式控制,包括完整的浮点表示移位器操作移位器操作 指令 ,指令表示算术移位 lshift、指令表示逻辑移位 在16-bit单个或成对的数值上操作的指令都可以采用ashift和lshift指令 在许多dsp算法中用到,典型的3操作数指令 操作一个32-bit寄存器值并使用两个操作数的指令,可以利用和指令 算术移位、逻辑移位和循环指令 可从寄存器或直接从指令的立即数中获得移位参数两操作数移位两操作数移位 移位一个输入寄存器并将结果存入同一寄存器 立即移位立即移位 r0 contains 0000 b6a3; r0 =0 x04; 结果:r0 contains 0
31、000 0b6a 寄存器移位寄存器移位 r0 contains 0000 b6a3; r2 contains 0000 0004; r00 x04; 结果:r1 contains 0000 0b6a 寄存器移位寄存器移位 r0 contains 0000 b6a3; r2.l contains 0004; r1=r0 ashift by r2.l; 结果:r1 contains 000b 6a30 r0 contains abcd ef12; r2.l contains 0004; r1=r0 rot by r2.l; (循环移位,假设条件码位(cc)设置为0 ) 结果:r1 contains
32、 bcde f125 cc位包含在结果中,在第3位 位测试、置位、清零、切换位测试、置位、清零、切换 对一个数据寄存器中的指定位进行测试、置位、清零及切换 两个参数源寄存器和位域值 不改变源寄存器,结果保存在cc位里 例子 bitclr (r0, 6) ; bitset (r2, 9) ; bittgl (r3, 2) ; cc=bittst (r3, 0) ;域抽取和域存储域抽取和域存储 可从一个32-bit源域中的任何位置上抽取出一个1-bit到16-bit域 可以将1-bit到16-bit长度的源域存储到一个32-bit目的域中的任何位置上 使用两个寄存器参数 一个包含32-bit目的或
33、32-bit源 另一个包含要抽取/存储的值,它的长度和它在源里的位置表表2-12移位器指令汇总表移位器指令汇总表部分指令指令astat 状态标志azanac0ac0_copyac1av0av0sav1av1sccvv_copyvsdreg = deposit (dreg, dreg) ;*/dreg = extract (dreg, dreg) ;*/bitmux (dreg, dreg, a0) ;dreg_lo = ones dreg ;dreg = pack (dreg_lo_hi,dreg_lo_hi);dreg = dreg uimm4 (v) ;*/dreg = dreg uimm
34、4 (v) ;*/dreg = dreg uimm4 (v) ;dreg = dreg uimm4 (v) ;dreg = dreg uimm4 (v) ;dreg = rot dreg by imm6 ;dreg = ashift dreg by dreg_lo (v) ;dreg = lshift dreg by dreg_lo (v) ;数据地址产生器数据地址产生器 数据地址产生器数据地址产生器(dag)功能与寄存器功能与寄存器 dag产生数据地址以将数据移到存储器或从中取数 程序用dag寄存器代替绝对地址来间接寻址 支持几种功能用于减少数据访问时的开销 提供地址:在数据访问期间提供地址
35、 提供地址并后修改:在数据转移时提供地址,并为下一次转移自动增/减存储地址 提供偏移地址:提供相对于某基地址的偏移址,不增加原始地址指针 修改地址:增加或减少存储地址,不执行数据转移 位反向进位地址:在数据转移时提供位反向进位地址,而不是反转存储地址 dag子系统 两个dag算术单元、9个指针寄存器、4个索引寄存器、4套相关的变址、基址和长度寄存器dag的寻址的寻址 blackfin处理器按字节寻址,所有的数据访问必须对齐数据字节大小 32-bit取指必须对齐32位,但8位的存储可对齐任意字节 指令: r0=p3+; 取一个32位字,由p3中的值来指向,并把它放在r0中,然后p3加4以维持32位对齐访问 r0.l=wi3+; 取一个16位字,由i3中的值来指向,并把它放进目的寄存器低半部分r0.l中,然后i3加2来维持16位对齐访问 r0=bp3+(z); 取
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025四川成都武侯资本投资管理集团有限公司招聘市场管理岗等岗位笔试历年典型考点题库附带答案详解
- 2025四川广安岳池银泰酒店管理有限公司第二批招聘中国曲艺大酒店专业管理服务人员笔试历年备考题库附带答案详解
- 2025中铁长江交通设计集团有限公司公开招聘11人笔试参考题库附带答案详解
- 2025上半年浙江杭州市萧山区国有企业招聘人员笔试历年典型考点题库附带答案详解
- 2026年工业水处理公司水处理岗位分工与协作管理规定
- 2026年工业水处理公司生产辅助设施管理制度
- 2026年工业水处理公司计算机及网络设备管理制度
- 云南省部分名校2026年高考生物试题命题比赛模拟试卷(9)含解析
- 2026年上海市宝山区扬波中学高考模拟最后十套:化学试题(三)考前提分仿真卷含解析
- 河南省安阳第三十六中学2026年高三下学期阶段性练习化学试题含解析
- 2026年上海市奉贤区初三上学期一模化学试卷和答案及评分标准
- 2025 学年第一学期上海市杨浦区初三语文期末质量调研试卷附答案解析
- 2026年中国化工经济技术发展中心招聘备考题库及一套参考答案详解
- GB/Z 124.1-2025纳米技术石墨烯结构表征第1部分:石墨烯粉末及分散系
- 2025及未来5年中国鼠李糖市场调查、数据监测研究报告
- 企业信息系统操作权限管理规范
- 医患沟通培训课件
- 材料作文“各有千秋”(2024年重庆A卷中考满分作文10篇附审题指导)
- 生物测量仪的数据解读
- 村委鱼塘竞标方案(3篇)
- 企业公司“十五五”企业发展战略规划(完整模板)
评论
0/150
提交评论