版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、嵌入式系统设计:软硬件统一嵌入式系统设计:软硬件统一第四章第四章 通用处理器:软件通用处理器:软件什么是通用处理器?什么是通用处理器? 通用处理器的基本结构通用处理器的基本结构通用处理器中的运算通用处理器中的运算 123概概 述述从程序员的角度来看通用处理器从程序员的角度来看通用处理器 456ASIP 通用处理器的开发环境通用处理器的开发环境 7设计通用处理器设计通用处理器 通用处理器简介通用处理器简介v通用处理器通用处理器 可执行多种计算任务的处理器可执行多种计算任务的处理器 低廉的单位成本:通过生产大量的成品来分散低廉的单位成本:通过生产大量的成品来分散NRE成本成本 Motorola半导
2、体生产的半导体生产的68HC05单片机仅单片机仅96年一年年一年 就卖出就卖出5亿个。亿个。 若规划付出较高的若规划付出较高的NRE成本,则将谨慎设计,以求获得成本,则将谨慎设计,以求获得性能更好,面积更小,功耗更低的产品性能更好,面积更小,功耗更低的产品 嵌入式系统设计者负担的嵌入式系统设计者负担的NRE成本更低,设计的上市时成本更低,设计的上市时间更短,灵活性更高间更短,灵活性更高 通常说微处理器,通常说微处理器,“微微”是指处理器被用于单片或几个是指处理器被用于单片或几个片上的情况。片上的情况。基本结构基本结构v控制单元和数据路控制单元和数据路径径 单用途处理器的相单用途处理器的相似点似
3、点v不同点不同点 通用的数据路径通用的数据路径 控制单元中不存储控制单元中不存储算法,算法程序通算法,算法程序通常都是存储在存储常都是存储在存储器中器中ProcessorControl unitDatapathALURegistersIRPCControllerMemoryI/OControl/Status数据路径数据路径v加载数据 将存储单元的值读入数据路径内的寄存器中vALU的运算 将特定寄存器的值传到ALU中,再将经计算后得到的值返回到寄存器中v存储数据 将ALU寄存器中的读入存储单元ProcessorControl unitDatapathALURegistersIRPCControl
4、lerMemoryI/OControl/Status10.10+11111控制单元控制单元v控制单元:为数据路径配置合适的操作控制单元:为数据路径配置合适的操作 目标操作(指令)的运行时序以程序的形式存储在Memory中v指令周期:可将指令周期分解成很多个子操作,也可使每个子操作对应一个时钟周期 取指令:将下一条指令传到IR中 解码:解析指令蕴含的意义 取操作数:将Memory中的数据传输到数据路径中的寄存器 执行:使数据在ALU中移动 存储结果:将数据路径寄存器中运算结果返回到Memory控制单元控制单元ProcessorControl unitDatapathALURegistersIRP
5、CController MemoryI/OControl/Status10.load R0, M500500501100inc R1, R0101store M501, R1102R0R1控制单元中的子操作控制单元中的子操作v取指令 将下一条指令传到IR中 程序计数器程序计数器PC,总是指向下一条指总是指向下一条指令令 IR:保存取到的:保存取到的指令指令ProcessorControl unitDatapathALURegistersIRPCController MemoryI/OControl/Status10.load R0, M500500501100inc R1, R0101stor
6、e M501, R1102R0R1100load R0, M500控制单元中的子操作控制单元中的子操作v解码 解析指令的意义ProcessorControl unitDatapathALURegistersIRPCController MemoryI/OControl/Status10.load R0, M500500501100inc R1, R0101store M501, R1102R0R1100load R0, M500控制单元中的子操作控制单元中的子操作v取操作数 将Memory中的数据传输到数据路径的寄存器中ProcessorControl unitDatapathALURegis
7、tersIRPCController MemoryI/OControl/Status10.load R0, M500500501100inc R1, R0101store M501, R1102R0R1100load R0, M50010控制单元中的子操作控制单元中的子操作v执行 使数据在ALU中移动 这个子操作中的这条指令的作用不太明显ProcessorControl unitDatapathALURegistersIRPCController MemoryI/OControl/Status10.load R0, M500500501100inc R1, R0101store M501, R
8、1102R0R1100load R0, M50010控制单元中的子操作控制单元中的子操作v存储结果 将数据路径寄存器中运算结果返回到Memory 这个子操作中的这条指令的作用不太明显ProcessorControl unitDatapathALURegistersIRPCController MemoryI/OControl/Status10.load R0, M500500501100inc R1, R0101store M501, R1102R0R1100load R0, M50010指令周期指令周期ProcessorControl unitDatapathALURegistersIRPC
9、Controller MemoryI/OControl/Status10.load R0, M500500501100inc R1, R0101store M501, R1102R0R1PC=10010Fetch opsExec.Store resultsclkFetchload R0, M500Decode100指令周期指令周期ProcessorControl unitDatapathALURegistersIRPCController MemoryI/OControl/Status10.load R0, M500500501100inc R1, R0101store M501, R1102
10、R0R110PC=100FetchDecodeFetch opsExec.Store resultsclkPC=101inc R1, R0FetchFetch ops+111Exec.Store resultsclk101Decode指令周期指令周期ProcessorControl unitDatapathALURegistersIRPCController MemoryI/OControl/Status10.load R0, M500500501100inc R1, R0101store M501, R1102R0R11110PC=100FetchDecodeFetch opsExec.St
11、ore resultsclkPC=101FetchDecodeFetch opsExec.Store resultsclkPC=102store M501, R1FetchFetch opsExec.11Store resultsclkDecode102架构考虑架构考虑vN-bits处理器 N-bitsALU,寄存器,总线,存储器数据接口 嵌入式中常用:8bits,16bits,32bits 台式机/服务器:32bits,64bitsvPC的大小决定地址空间的的大小ProcessorControl unitDatapathALURegistersIRPCControllerMemoryI/OC
12、ontrol/Status架构考虑架构考虑v时钟频率 周期的倒数 必须满足处理器中最长的存储器间数据传输时间 存储器的存取往往是哪个最长的ProcessorControl unitDatapathALURegistersIRPCControllerMemoryI/OControl/Status流水线流水线提高指令的效率提高指令的效率12345678123456781234567812345678Fetch-instr.DecodeFetch ops.ExecuteStore res.1234567812345678123456781234567812345678WashDryTimeNon-p
13、ipelinedPipelinedTimeTimePipelinedpipelined instruction executionnon-pipelined dish cleaningpipelined dish cleaningInstruction 1超标量和超长指令字结构超标量和超长指令字结构v提高性能的途径提高性能的途径 加快时钟(有很大的局限性) 流水线:将指令分段,是某些段在时间上可以并行处理 加入额外的ALU来及时处理两个或两个以上的指令流 超标量:将数据路径寄存器中运算结果返回到 标量:不带方向 按批取指令,并使单次执行的指令数达到最大 (这种方式需要额外的硬件来检测独立指令)
14、 超长指令字:存储器的每个字中存有多个独立指令 依赖编译器来检测和调度指令两种存储器结构两种存储器结构v普林斯顿结构 数据和程序共享同一个存储空间 较少的存储器连接线v哈佛结构 分别存入程序存储空间和数据存储空间 程序和数据分别使用存取线ProcessorProgram memoryData memoryProcessorMemory(program and data)HarvardPrinceton高速缓冲存储器(高速缓冲存储器(Cache)v存储器访问速度慢vCache是处理器附近容量小、速度快的存储空间 存储处理器最新用过存储器地址和它临近的地址 有命中率和失误率,要考虑这两者的比率Pr
15、ocessorMemoryCacheFast/expensive technology, usually on the same chipSlower/cheaper technology, usually on a different chip程序员的观点程序员的观点v程序员无需了解处理器的结构和运算的细节程序员无需了解处理器的结构和运算的细节 只需了解指令和它们执行的操作即可v两种不同层次的语言指令两种不同层次的语言指令 汇编语言 结构化语言(C,C+,Java等)v现有的很多程序开发都是使用结构化语言现有的很多程序开发都是使用结构化语言 但汇编语言依然非常必要 当需要对硬件设备直接作用时
16、,汇编语言就显得更有优势,能更好对应硬件的时序约束和逐比特的操作汇编指令集汇编指令集v指令集指令集 为处理器制定合法的指令集为处理器制定合法的指令集 数据传输:数据在数据传输:数据在memory/register, register/register, I/O间的传输间的传输 算术算术/逻辑:在逻辑:在ALU和寄存器间的数据传输与返回和寄存器间的数据传输与返回 分支:在下一条指令不是简单的用分支:在下一条指令不是简单的用PC+1就能取到时,决就能取到时,决定其确定的定其确定的PC值值opcodeoperand1operand2opcodeoperand1operand2opcodeoperan
17、d1operand2opcodeoperand1operand2.Instruction 1Instruction 2Instruction 3Instruction 4一个简单的指令集一个简单的指令集 opcode operandsMOV Rn, directMOV Rn, RmADD Rn, Rm0000Rndirect0010Rn0100RmRnRn = M(direct)Rn = Rn + RmSUB Rn, Rm0101RmRn = Rn - RmMOV Rn, #immed.0011RnimmediateRn = immediateAssembly instruct.First b
18、yteSecond byteOperationJZ Rn, relative0110RnrelativePC = PC+ relative (only if Rn is 0)RnMOV direct, Rn0001RndirectM(direct) = RnRmM(Rn) = Rm寻址方式寻址方式DataImmediateRegister-directRegisterindirectDirectIndirectDataOperand fieldRegister addressRegister addressMemory addressMemory addressMemory addressDa
19、taDataMemory addressDataAddressingmodeRegister-filecontentsMemorycontents程序实例程序实例int total = 0;for (int i=10; i!=0; i-) total += i;/ next instructions.C programMOV R0, #0; / total = 0MOV R1, #10; / i = 10JZ R1, Next; / Done if i=0ADD R0, R1; / total += iMOV R2, #1; / constant 1JZ R3, Loop; / Jump al
20、waysLoop:Next:/ next instructions.SUB R1, R2; / i-Equivalent assembly programMOV R3, #0; / constant 00123567v程序和数据存储空间程序和数据存储空间 嵌入式处理器的空间是非常有限的嵌入式处理器的空间是非常有限的e.g., 64 Kbytes program, 256 bytes of RAM (可扩展可扩展)v处理器中有多少寄存器?处理器中有多少寄存器? 这是汇编程序员要非常注意的问题这是汇编程序员要非常注意的问题vl/O 处理器怎样和外设通信呢?处理器怎样和外设通信呢?v中断和中断程序中
21、断和中断程序程序员的考虑程序员的考虑v我们学习过的微机原理,单片机,使用的智能手机,我们学习过的微机原理,单片机,使用的智能手机,这里面的微处理器,我们了解它们的结构吗?这里面的微处理器,我们了解它们的结构吗?微处理器的体系结构微处理器的体系结构实例:驱动并行端口实例:驱动并行端口v利用汇编程序,我们可以配置利用汇编程序,我们可以配置PC并行端口实并行端口实现数字现数字I/O的应用的应用 通过读通过读/写三个特殊寄存器来完成下面表中并行端写三个特殊寄存器来完成下面表中并行端口的引脚和相应寄存器口的引脚和相应寄存器 并行端口监测器监测端口并控制相应并行端口监测器监测端口并控制相应LED灯的开灯的
22、开关关LPT Connection PinI/O DirectionRegister Address1Output0th bit of register #22-9Output0th bit of register #214,16,17Output1,2,3th bit of register #210,11,12,13,15Input6,7,5,4,3th bit of register #1PCParallel portPin 13Pin 2SwitchLED实例:驱动并行端口实例:驱动并行端口; This program consists of a sub-routine that re
23、ads; the state of the input pin, determining the on/off state; of our switch and asserts the output pin, turning the LED; on/off accordingly.386CheckPortprocpushax; save the contentpushdx; save the contentmovdx, 3BCh + 1; base + 1 for register #1inal, dx; read register #1and al, 10h; mask out all bu
24、t bit # 4cmpal, 0; is it 0?jneSwitchOn; if not, we need to turn the LED onSwitchOff:movdx, 3BCh + 0; base + 0 for register #0inal, dx; read the current state of the portandal, f7h; clear first bit (masking)outdx, al; write it out to the portjmpDone ; we are doneSwitchOn:movdx, 3BCh + 0; base + 0 for
25、 register #0inal, dx; read the current state of the portoral, 01h; set first bit (masking)outdx, al; write it out to the portDone: popdx; restore the contentpopax; restore the contentCheckPortendpextern “C” CheckPort(void);/ defined in / assembly void main(void) while( 1 ) CheckPort();LPT Connection
26、 PinI/O DirectionRegister Address1Output0th bit of register #22-9Output0th bit of register #214,16,17Output1,2,3th bit of register #210,11,12,13,15Input6,7,5,4,3th bit of register #1PCParallel portPin 13Pin 2SwitchLED操作系统操作系统v为应用程序提供低级服务的软件为应用程序提供低级服务的软件 文件管理、硬盘存取文件管理、硬盘存取 键盘、显示器接口键盘、显示器接口 调度多种程序使其并
27、行执行,或单一程序的多线程执行调度多种程序使其并行执行,或单一程序的多线程执行 编写程序使系统调用操作系统编写程序使系统调用操作系统DB file_name “out.txt” - store file nameMOV R0, 1324 - system call “open” idMOV R1, file_name - address of file-nameINT 34 - cause a system callJZ R0, L1 - if zero - error . . . read the fileJMP L2 - bypass error cond.L1: . . . handle
28、 the errorL2:开发环境开发环境v开发处理器开发处理器 此处理器可满足我们编写和调试程序的要求常用在常用在PCv目标处理器目标处理器 可支持嵌入式系统的处理器,处理器上的程序可在嵌可支持嵌入式系统的处理器,处理器上的程序可在嵌入式系统中运行入式系统中运行与开发处理器有许多的不同之处与开发处理器有许多的不同之处Development processorTarget processor软件开发环境软件开发环境v编译程序 交叉编译:程序在一个处理器上运行,但代码在另一处理器上生成v汇编程序v链接程序链接程序v调试程序调试程序v解析程序解析程序CompilerLinkerC FileC Fi
29、leAsm. FileBinary FileBinary FileBinary FileExec. FileAssemblerLibraryImplementation PhaseDebuggerProfilerVerification Phase运行一个程序运行一个程序v如果开发处理器和目标处理器不同,怎样才能运如果开发处理器和目标处理器不同,怎样才能运行此编译代码?行此编译代码? 将代码下载到目标处理器 仿真v仿真仿真 硬件描述语言缺点是速度很慢,且经常需要反复调试 指令集仿真程序程序在开发处理器上运行,但指令在目标处理器上执行一个简单处理器的指令集仿真程序一个简单处理器的指令集仿真程序#
30、include typedef struct unsigned char first_byte, second_byte; instruction;instruction program1024; /instruction memoryunsigned char memory256; /data memoryvoid run_program(int num_bytes) int pc = -1; unsigned char reg16, fb, sb; while( +pc 4 ) case 0: regfb & 0 x0f = memorysb; break; case 1: mem
31、orysb = regfb & 0 x0f; break; case 2: memoryregfb & 0 x0f = regsb 4; break; case 3: regfb & 0 x0f = sb; break; case 4: regfb & 0 x0f += regsb 4; break; case 5: regfb & 0 x0f -= regsb 4; break; case 6: pc += sb; break; default: return 1; return 0;int main(int argc, char *argv) FIL
32、E* ifs; If( argc != 2 | (ifs = fopen(argv1, “rb”) = NULL ) return 1; if (run_program(fread(program, sizeof(program) = 0) print_memory_contents();return(0); else return(-1);测试和调试测试和调试Implementation PhaseImplementation PhaseVerification PhaseVerification PhaseEmulatorDebugger/ ISSProgrammerDevelopment
33、 processor(a)(b)External toolsvISS 让我们能够更好的控制时间:设置断点,查看寄存器的值,让我们能够更好的控制时间:设置断点,查看寄存器的值,逐步执行逐步执行. 但其和真实的环境无法相互作用但其和真实的环境无法相互作用v下载到板子下载到板子 利用器件编程器利用器件编程器 在真实的环境中运行,但无法控制运行的步骤在真实的环境中运行,但无法控制运行的步骤v仿真器仿真器 在真实的环境中以和期望的速度相当的速率运行在真实的环境中以和期望的速度相当的速率运行 可以通过可以通过PC实现对运行的局部可控实现对运行的局部可控测试和调试测试和调试v通用处理器通用处理器 有时因为其
34、通用性导致不能有效执行目标应用有时因为其通用性导致不能有效执行目标应用e.g., 音频处理器需要很多的音频缓存区,需要处理大型数据阵列音频处理器需要很多的音频缓存区,需要处理大型数据阵列 但使用单用途处理器来完成需耗费高昂的但使用单用途处理器来完成需耗费高昂的NRE成本,且其成本,且其不可编程不可编程vASIPs专为某些特殊的应用而设计专为某些特殊的应用而设计 包含专为特定应用而设计体系结构包含专为特定应用而设计体系结构e.g., 嵌入式控制,数字信号处理,音频处理,网络处理,嵌入式控制,数字信号处理,音频处理,网络处理,通信通信. 可编程可编程专用指令集处理器(专用指令集处理器(ASIP)常
35、见的常见的ASIP:微控制器:微控制器v专用于嵌入式控制应用专用于嵌入式控制应用 读传感器,设置驱动器读传感器,设置驱动器 采用事件触发的模式采用事件触发的模式 数码相机、微波炉、洗衣机数码相机、微波炉、洗衣机.v微控制器特点微控制器特点 可在处理器所在的可在处理器所在的IC芯片上集成多个外设芯片上集成多个外设定时器、数模转换器、串行通信接口等等定时器、数模转换器、串行通信接口等等对程序员来说微控制器是一个整体对程序员来说微控制器是一个整体 某些程序和数据存储器也可以集成在片上某些程序和数据存储器也可以集成在片上 程序员可以直接访问片上的许多引脚程序员可以直接访问片上的许多引脚 可以为嵌入式系
36、统常用的操作提供专用指令(比如位处理)可以为嵌入式系统常用的操作提供专用指令(比如位处理)常见的常见的ASIP:数字信号处理(:数字信号处理(DSP)v专用于数字信号处理专用于数字信号处理 处理大量数字信号,一般为数据流的处理处理大量数字信号,一般为数据流的处理 快速实现数据传输快速实现数据传输 音频数据包,数字电视,音乐合成器音频数据包,数字电视,音乐合成器vDSP的特点的特点 几个指令执行单元几个指令执行单元 乘并累加单周期指令乘并累加单周期指令 快速有效的向量运算快速有效的向量运算其它的定制化其它的定制化ASIPv从前,微处理器被做成芯片供开发者使用从前,微处理器被做成芯片供开发者使用v
37、现在,微处理器被认为是现在,微处理器被认为是IP核核 如可综合的如可综合的VHDL程序模块程序模块v有时,将定制的数据路径和一些专用指令结合,或有时,将定制的数据路径和一些专用指令结合,或裁减一些指令裁减一些指令 可能会优化性能、功耗和尺寸可能会优化性能、功耗和尺寸 定制的定制的ASIP需要编译程序和调试程序需要编译程序和调试程序 许多开发需要用结构化语言许多开发需要用结构化语言 使用自动生成编译程序和调制程序使用自动生成编译程序和调制程序 使用编译器使用编译器选择微处理器选择微处理器v 注意事项注意事项 速度、功耗、尺寸、花费速度、功耗、尺寸、花费 其它:开发环境,之前需具备的知识、许可其它
38、:开发环境,之前需具备的知识、许可.v 速度:怎样评估一个处理器的速度?速度:怎样评估一个处理器的速度? 时钟速度时钟速度但指令可能会有不同的周期但指令可能会有不同的周期 每秒指令数每秒指令数但每个指令的复杂度不同,执行也不同但每个指令的复杂度不同,执行也不同 Dhrystone基本程序,基本程序,1984年由年由Reinhold发明,专门用于性能比较发明,专门用于性能比较 MIPS: 1 MIPS = 1757 Dhrystones per second (Digitals VAX 11/780). A.k.a. Dhrystone MIPS. So, 750 MIPS = 750*1757
39、 = 1,317,750 Dhrystones per second SPEC:可执行的基准程序集,以台式机为方向:可执行的基准程序集,以台式机为方向 EEMBC:5套基准程序对应于日常中套基准程序对应于日常中5个嵌入式系统应用领域个嵌入式系统应用领域通用处理器通用处理器 ProcessorClock speedPeriph.Bus WidthMIPSPowerTrans.PriceGeneral Purpose ProcessorsIntel PIII1GHz2x16 KL1, 256KL2, MMX3290097W7M$900IBMPowerPC750X550 MHz2x32 KL1, 2
40、56KL232/6413005W7M$900MIPSR5000250 MHz2x32 K2 way set assoc.32/64NANA3.6MNAStrongARMSA-110233 MHzNone322681W2.1MNAMicrocontrollerIntel805112 MHz4K ROM, 128 RAM,32 I/O, Timer, UART810.2W10K$7Motorola68HC8113 MHz4K ROM, 192 RAM,32 I/O, Timer, WDT,SPI8.50.1W10K$5Digital Signal ProcessorsTI C5416160 MHz
41、128K, SRAM, 3 T1Ports, DMA, 13ADC, 9 DAC16/32600NANA$34LucentDSP32C80 MHz16K Inst., 2K Data,Serial Ports, DMA3240NANA$75设计通用途处理器设计通用途处理器 v不是嵌入式系统设计者通常做的事 可以从整体看出是如何从顶到底进行设计的 事实上不采用这事实上不采用这种方法进行处理种方法进行处理器的设计器的设计Declarations: bit PC16, IR16; bit M64k16, RF1616;Aliases: op IR15.12 rn IR11.8 rm IR7.4 di
42、r IR7.0 imm IR7.0 rel IR7.0ResetFetchDecodeIR=MPC;PC=PC+1Mov1RFrn = MdirMov2Mov3Mov4AddSubJz011001010100001100100001op = 0000Mdir = RFrnMrn = RFrmRFrn= immRFrn =RFrn+RFrmRFrn = RFrn-RFrmPC=(RFrn=0) ?rel :PCto Fetchto Fetchto Fetchto Fetchto Fetchto Fetchto FetchPC=0;from states belowFSMD简单微处理器的体系结构简单微处理器的体系结构v 为每个声明过的变量设置存储 寄存器文件保留每个变量v 功能模块实现FSMD的运算 每个ALU计算出每个要求的运算v 根据根据FSM增加每个端增加每个端口间的连接线口间的连接线v 为每个控制信号创建为每个控制信号创建唯一的标识唯一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026福建龙岩长汀县实验幼儿园夏季拟向社会招聘编外人员1人备考题库及答案详解参考
- 2026山东枣庄市台儿庄区张山子粮油购销有限公司招聘4人备考题库参考答案详解
- 2026上海复旦大学附属妇产科医院招聘绩效办科员1人备考题库及答案详解1套
- 2026年山东轻工职业学院公开招聘备考题库(15人)参考答案详解
- 2026广东广州市荔湾区劳动人事争议仲裁院就业见习工作人员招聘2人备考题库及一套参考答案详解
- 2026新疆阿勒泰地区选聘社会保险基金社会监督员备考题库及参考答案详解
- 2026江苏南京鼓楼医院人力资源服务中心第三批岗位招聘14人备考题库及1套参考答案详解
- 2026浙江宁波市东钱湖公用事业发展有限公司招聘备考题库带答案详解
- 2026广东佛山南海区桂江二中招聘教师备考题库及完整答案详解一套
- 川北幼儿师范高等专科学校2026年公开引进高层次人才的备考题库(10人)及答案详解参考
- 江苏南通中远海运川崎船舶工程有限公司招聘笔试题库2026
- 2026广东广州市黄埔区大沙街姬堂经联社招聘财务人员1人考试备考题库及答案解析
- 2026年养老护理员测试卷附参考答案详解【达标题】
- 小升初语文古诗文综合专项练习(冲刺提升)
- 2022年湖南省长沙市中考物理真题及答案解析
- 2025广西广投产业链服务集团有限公司招聘24人笔试历年参考题库附带答案详解
- 2025年内蒙古赤峰市地理生物会考考试试题及答案
- 2025年广西继续教育公需科目考试试题和答案2025年公需科目考试试题及答案
- 2026版考评员国家职业技能鉴定考试题库(附答案)
- (交安C证)公路工程施工企业安全生产管理人员考试试题含答案
- 2025北京东城区五年级(下)期末语文试题及答案
评论
0/150
提交评论