在cpu指令周期期中cpu需要完成多少次记忆才能完成这个指令

噢哦,这个页面找不到了
下载作业帮可以找到更多答案指令周期,最全面的指令周期文章 - 电子工程世界网
在电子工程世界为您找到如下关于“指令周期”的新闻
指令周期资料下载
教学定时器(TTMR) 6.8.4 特殊功能定时器(STMR) 6.8.5 循环表近路径循环控制(ROTC) 6.8.6 斜坡信号(RAMP) 6.8.7 脉冲密度测量(SPD) .6.8.8 固定周期脉冲输出(PLSY) 6.8.9 脉宽调制(PWM) .6.8.10 矩阵输入(MTR) 7. 应用指令7.1 逻辑操作指令.7.1.1 16位和32位数据的逻辑乘积(WAND,WANDP,DAND...
计算机问答总汇1.&甚么是计算机指令周期?答:&计算机按特定的次序逐步执行贮存于主存贮器的一套指令去运作,执行这些指&令的过程称为指令周期。2.&中央处理器作用是甚么?分为那几个部份?答: &作用是提取及执行贮存在主存贮器内的指令。&分为两个主要部份: 1.控制部件 2.算术及逻辑运算部件。3.&甚么是控制部件?说出其功能?答...
单片机指令周期:时序是用定时单位来描述的,MCS-51的时序单位有四个,它们分别是节拍、状态、机器周期和指令周期,接下来我们分别加以说明。节拍与状态:我们把振荡脉冲的周期定义为节拍(为方便描述,用P表示),振荡脉冲经过二分频后即得到整个单片机工作系统的时钟信号,把时钟信号的周期定义为状态(用S表示),这样一个状态就有两个节拍,前半周期相应的节拍我们定义为1(P1),后半周期对应的节拍定义为2...
提高是通过增加时钟频率和减少指令执行周期实现的。 1 时钟频率的提高 ARM7处理器采用3级流水线,而ARM9采用5级流水线。增加的流水线设计提高了时钟频率和并行处理能力。5级流水线能够将每一个指令处理分配到5个时钟周期内,在每一个时钟周期内同时有5个指令在执行。在同样的加工工艺下,ARM9TDMI处理器的时钟频率是ARM7TDMI的1.8~2.2倍。 2 指令周期的改进...
Altera 的Nios 嵌入式处理器中,用户可以在Nios 指令系统中增加用户自定义指令,
以增强起对强实时软件算法的处理能力。用户自定义指令可以通过单周期,或多周期操作来
完成复杂的处理任务。另外,增加的用户自定义指令同样可以访问存储器,或Nios 系统外
的逻辑。采用用户自定义指令,用户可以把一个复杂的标准指令序列,简化为一条用硬件实
现的单个指令。这一特性可以用于多种情况...
大多数为单指令周期ATtiny10/11/12特点1. AVR RISC 结构2. AVR 高性能低功耗RISC 结构90 条指令大多数为单指令周期32 个8 位通用工作寄存器工作在 8MHz 时具有8MIPS 的性能3. 数据和非易失性程序内存1K字节的FLASHQuickFlashTM ATtiny10ISP ATtiny12擦除次数 1000 次ATtiny11/1264 字节在线可编程...
单片机指令周期_机器周期_状态周期_振荡时钟周期之间的关系 - 副本...
& 伺服单元、驱动装置和测量装置伺服单元和驱动装置主轴伺服驱动装置和主轴电机进给伺服驱动装置和进给电机测量装置& 位置和速度测量装置。以实现进给伺服系统的闭环控制。作用& 保证灵敏、准确地跟踪CNC装置指令:进给运动指令:实现零件加工的成形运动(速度和位置控制)。主轴运动指令,实现零件加工的切削运动(速度控制)第一节& 数控机床简介&PLC、机床I...
频率或外部输入时钟频率&&&&& 振荡周期=& 振荡频率的倒数机器周期& 机器周期是单片机应用中衡量时间长短的最主要的单位& 在多数51系列单片机中:指令周期—— 执行一条指令所需要的时间&&&&&&& 单位:机器周期& 51单片机中:单周期...
06菜鸟入门之六:时钟周期、机器周期和指令周期的区别...
指令周期相关帖子
EEPROM接口的FPGA实现工程说明AT93C46在DI接收到读指令时,地址被解码,数据在DO引脚上串行输出。写周期是完全自主调时的,在写入之前不需要单独的擦除周期。本项目要求AT93C46完成读和写功能的混合功能。 案例补充说明本案例要求实现一个AT93C46的接口能够根据命令,实现EWEN、WRITE和READ功能,在这里我们提供了具体的设计思路:1.& &&nbsp...
简介& n) M% K3 }- q) I8 Q& y* Y
& & TMS320F28335采用176引脚LQFP四边形封装,其功能结构参见参考文献。其主要性能如下:
& & 高性能的静态CMOS技术,指令周期为6.67 ns,主频达150 MHz;) }7 m/ Q' e/ \
& & 高性能的32位CPU...
选择晶振为时钟源时,时钟周期就是晶振周期。一个机器周期 =一个时钟周期,即430每个动作都能完成一个基本操作; 一个指令周期 = 1~6个机器周期,具体根据具体指令而定。 如果选择8M晶振,则一个机器周期为125ns。51单片机选择12M晶振,它的机器周期是时钟周期/12,一个机器周期为1us,可见 MSP430的的速度是51的8倍。2、使用方法概述2.1 程序架构& & 一般在...
,即直接内联为C6000的函数。
& && &&&例如,在上例的源代码中没有使用intrinsics,每一行C代码需多个指令周期,在改编后的代码中,每一行代码仅需一个指令周期。
& && &&&例如,“aReg_ll = (Word40)_mpyu(L_var1...
;&--- 写有效。有效时为低电平。写选通信号是每个区域操作的基础,由XTIMINGX寄存器的前一周期、当前周期和后一周期的值确定XRD`& &--- 读有效。低电平读选通。读选通信号是每个区域操作的基础,由xTIMINGX寄存器的前一周期、当前周期和后一周期的值确定。注意:XRD`和XWE`是互斥信号XR/W` --- 通常为高电平,当为低电平时表示处于写周期,当为...
问:用C55设计一个低功耗图像压缩/解压和无线传输的产品,同时双向传输遥控指令和其他信息,要求图像30帧/秒,TFT显示320*240,不知道能否实现?若能,怎样确定性能?选择周边元器件?确定最小的传输速率?能否提供开发的解决方案?软件核?
答:1.有可能,要看你的算法。2.建议先在模拟器上模拟。
问:用DSP开发MP3,比较专用MP3解码芯片如何,比如成本、难度、周期?谢谢...
MISO将一位数据发送给主机。这样,当SCK八个周期后,主机中的SPDR的数据全部移出了而被从机发送来的数据填充,从机则反之,这样,在一字节的通信结束后再读取SPDR,所返回的数据也就是从机发送来的数据。
解决了这个问题后与nRF24L01P的通信也就变得简单了,先将SS拉低,告知nRF24L01P即将启动SPI通信,当通过MOSI第一次向射频芯片写入任何字节时,MISO上都会有一个字节传...
单片机上电后,如果不对时钟系统进行设置,默认800 kHz的DCOCLK为MCLK和SMCLK的时钟源,LFXTl接32768 Hz晶体,工作在低频模式(XTS=O)作为ACLK的时钟源。CPU的指令周期由MCLK决定,所以默认的指令周期就是1/800 kHz=&1&.25μs。要得到lμs的指令周期需要调整DCO频率,即MCLK=1 MHz,只需进行如下设置:BCSCTLl...
时钟源选择内部指令周期时钟(Fosc/4)
& & PSA=0;& && && && && &&&//预分频器分配给TMR0模块
& & PS0=0;& && && &nbsp...
最大特点在于它的通用性,反应在指令集和寻址模式中。DSP与MCU的结合是DSC,它终将取代这两种芯片。
1.对密集的乘法运算的支持
GPP不是设计来做密集乘法任务的,即使是一些现代的GPP,也要求多个指令周期来做一次乘法。而DSP处理器使用专门的硬件来实现单周期乘 法。DSP处理器还增加了累加器寄存器来处理多个乘积的和。累加器寄存器通常比其他寄存器宽,增加称为结果bits的额外bits来避免溢出...
指令周期视频
你可能感兴趣的标签
热门资源推荐>> 12条MIPS指令多周期CPU设计【ISE实现】
12条MIPS指令多周期CPU设计【ISE实现】
所属分类:
下载地址:
Multiple_Clock.rar文件大小:1.10 MB
分享有礼! 》
请点击右侧的分享按钮,把本代码分享到各社交媒体。
通过您的分享链接访问Codeforge,每来2个新的IP,您将获得0.1 积分的奖励。
通过您的分享链接,每成功注册一个用户,该用户在Codeforge上所获得的每1个积分,您都将获得0.2 积分的分成奖励。
12条MIPS指令多周期CPU设计 9条基本指令 额外加上了jar,lui,jr三条指令联系邮箱【ISE实现】
Sponsored links
源码文件列表
温馨提示: 点击源码文件名可预览文件内容哦 ^_^
1.10 kB29-05-14 15:04
1.08 kB27-05-14 11:38
1.91 kB27-05-14 10:15
fuse.log3.20 kB17-09-14 21:29
fuse.xmsgs1.27 kB17-09-14 21:29
fuseRelaunch.cmd214.00 B17-09-14 21:29
coregen.cgp236.00 B17-09-14 19:32
coregen.log183.00 B17-09-14 21:10
1.25 kB17-09-14 19:23
1.10 kB17-09-14 21:09
7.54 kB18-12-12 12:57
8.12 kB17-09-14 19:31
pg058-blk-mem-gen.pdf74.01 kB18-12-12 12:57
memory_exdes.ucf2.71 kB17-09-14 19:30
5.02 kB17-09-14 19:30
memory_exdes.xdc2.66 kB17-09-14 19:30
10.27 kB17-09-14 19:30
1.05 kB17-09-14 19:30
1.03 kB17-09-14 19:30
2.62 kB17-09-14 19:30
2.52 kB17-09-14 19:30
3.05 kB17-09-14 19:30
xst.prj41.00 B17-09-14 19:30
xst.scr221.00 B17-09-14 19:30
4.42 kB17-09-14 19:30
12.42 kB17-09-14 19:30
6.06 kB17-09-14 19:30
5.63 kB17-09-14 19:30
5.04 kB17-09-14 19:30
2.67 kB17-09-14 19:30
3.00 kB17-09-14 19:30
114.00 B17-09-14 19:30
simulate_mti.do3.06 kB17-09-14 19:30
114.00 B17-09-14 19:30
3.04 kB17-09-14 19:30
2.90 kB17-09-14 19:30
ucli_commands.key67.00 B17-09-14 19:30
3.50 kB17-09-14 19:30
wave_mti.do1.12 kB17-09-14 19:30
wave_ncsim.sv740.00 B17-09-14 19:30
8.98 kB17-09-14 19:30
4.54 kB17-09-14 19:30
4.12 kB17-09-14 19:30
2.67 kB17-09-14 19:30
2.92 kB17-09-14 19:30
114.00 B17-09-14 19:30
simulate_mti.do3.09 kB17-09-14 19:30
114.00 B17-09-14 19:30
3.21 kB17-09-14 19:30
2.85 kB17-09-14 19:30
ucli_commands.key67.00 B17-09-14 19:30
3.51 kB17-09-14 19:30
wave_mti.do1.12 kB17-09-14 19:30
wave_ncsim.sv738.00 B17-09-14 19:30
memory.asy697.00 B17-09-14 19:32
memory.gise1.32 kB25-12-14 14:21
memory.mif952.00 B17-09-14 19:32
&memory.ncf&0.00 B17-09-14 21:26
memory.ngc15.74 kB17-09-14 19:31
memory.sym1.96 kB17-09-14 19:32
5.72 kB17-09-14 19:31
memory.veo4.23 kB17-09-14 19:31
memory.xco3.22 kB17-09-14 19:30
memory.xise4.66 kB17-09-14 20:34
1.87 kB17-09-14 19:32
11.02 kB17-09-14 19:32
summary.log630.00 B17-09-14 19:32
memory.lso6.00 B17-09-14 19:31
xil_32.in4.11 kB17-09-14 21:09
xil_32.out2.52 kB17-09-14 21:10
pn_parser.xmsgs761.00 B17-09-14 19:32
xst.xmsgs34.76 kB17-09-14 19:31
cg.xmsgs445.00 B17-09-14 21:10
pn_parser.xmsgs753.00 B25-12-14 14:13
Multiple_Clock.projectmgr9.41 kB25-12-14 14:21
top.xreport19.85 kB25-12-14 14:13
1.65 kB17-09-14 21:41
pn_info6.00 B17-09-14 21:29
&isimcrash.log&0.00 B17-09-14 21:29
ISimEngine-DesignHierarchy.dbg62.81 kB17-09-14 21:29
isimkernel.log569.00 B17-09-14 21:41
libPortability.dll880.00 kB05-12-12 10:38
netId.dat92.00 B17-09-14 21:41
test_isim_beh.exe232.56 kB17-09-14 21:29
_156.13 kB17-09-14 21:29
4.97 kB17-09-14 21:29
m_3896982.didat2.56 kB17-09-14 21:29
m_3896982.nt64.obj1.87 kB17-09-14 21:29
3.35 kB17-09-14 21:29
m_7726008.didat2.65 kB17-09-14 21:29
m_7726008.nt64.obj1.87 kB17-09-14 21:29
3.35 kB17-09-14 21:29
m_4641903.didat2.67 kB17-09-14 21:29
m_4641903.nt64.obj1.87 kB17-09-14 21:29
4.97 kB17-09-14 21:29
m_0967550.didat2.31 kB17-09-14 21:29
m_0967550.nt64.obj1.91 kB17-09-14 21:29
4.96 kB17-09-14 21:29
m_2284750.didat2.32 kB17-09-14 21:29
m_2284750.nt64.obj1.91 kB17-09-14 21:29
12.83 kB17-09-14 21:29
m_1027795.didat2.68 kB17-09-14 21:29
m_1027795.nt64.obj5.91 kB17-09-14 21:29
6.50 kB17-09-14 21:29
m_5558087.didat3.60 kB17-09-14 21:29
m_5558087.nt64.obj2.90 kB17-09-14 21:29
45.52 kB17-09-14 21:29
m_3007873.didat22.31 kB17-09-14 21:29
m_3007873.nt64.obj9.00 kB17-09-14 21:29
5.46 kB17-09-14 21:29
m_8064266.didat2.82 kB17-09-14 21:29
m_8064266.nt64.obj2.09 kB17-09-14 21:29
35.91 kB17-09-14 21:29
m_1048451.didat4.54 kB17-09-14 21:29
m_1048451.nt64.obj14.20 kB17-09-14 21:29
12.15 kB17-09-14 21:29
m_1107508.didat3.72 kB17-09-14 21:29
m_1107508.nt64.obj3.81 kB17-09-14 21:29
1.23 kB17-09-14 21:29
m_1739659.didat9.00 kB17-09-14 21:29
m_1739659.nt64.obj699.00 B17-09-14 21:29
5.15 kB17-09-14 21:29
m_8174382.didat2.38 kB17-09-14 21:29
m_8174382.nt64.obj2.86 kB17-09-14 21:29
5.80 kB17-09-14 21:29
m_2856314.didat2.48 kB17-09-14 21:29
m_2856314.nt64.obj1.61 kB17-09-14 21:29
6.29 kB17-09-14 21:29
m_2259138.didat2.46 kB17-09-14 21:29
m_2259138.nt64.obj1.65 kB17-09-14 21:29
11.98 kB17-09-14 21:29
m_5559894.didat2.53 kB17-09-14 21:29
m_5559894.nt64.obj3.42 kB17-09-14 21:29
7.79 kB17-09-14 21:29
m_3120511.didat5.41 kB17-09-14 21:29
m_3120511.nt64.obj2.76 kB17-09-14 21:29
5.42 kB17-09-14 21:29
m_1345626.didat2.24 kB17-09-14 21:29
m_1345626.nt64.obj1.92 kB17-09-14 21:29
2.34 kB17-09-14 21:29
test_isim_beh.exe_main.nt64.obj2.78 kB17-09-14 21:29
370.50 kB17-09-14 21:29
m_1874445.didat32.19 kB17-09-14 21:29
m_1874445.nt64.obj69.25 kB17-09-14 21:29
29.62 kB17-09-14 21:29
m_6445512.didat6.12 kB17-09-14 21:29
m_6445512.nt64.obj4.90 kB17-09-14 21:29
13.91 kB17-09-14 21:29
m_0358945.didat19.76 kB17-09-14 21:29
m_0358945.nt64.obj4.19 kB17-09-14 21:29
2.23 kB17-09-14 21:29
m_6793922.didat3.86 kB17-09-14 21:29
m_6793922.nt64.obj1.18 kB17-09-14 21:29
alu.sdb3.62 kB17-09-14 21:29
alu_ctr.sdb2.74 kB17-09-14 21:29
display.sdb5.42 kB17-09-14 21:29
glbl.sdb5.05 kB17-09-14 21:29
memory.sdb7.16 kB17-09-14 21:29
mux11.sdb1.75 kB17-09-14 21:29
mux32.sdb1.84 kB17-09-14 21:29
mux4_1.sdb2.39 kB17-09-14 21:29
mux4_1_5bits.sdb2.40 kB17-09-14 21:29
pbdebounce.sdb2.21 kB17-09-14 21:29
pc.sdb2.14 kB17-09-14 21:29
regfile.sdb4.02 kB17-09-14 21:29
sign_ext.sdb1.90 kB17-09-14 21:29
state_ctrl.sdb19.82 kB17-09-14 21:29
test.sdb3.50 kB17-09-14 21:29
timer_1ms.sdb1.92 kB17-09-14 21:29
timer_1s.sdb1.87 kB17-09-14 21:29
top.sdb14.62 kB17-09-14 21:29
isim.cmd44.00 B17-09-14 21:29
isim.log2.14 kB17-09-14 21:41
lab9.ucf794.00 B29-05-14 15:17
lab9.ucf.lnk472.00 B30-05-14 20:59
memory.coe372.00 B27-05-14 10:58
memory.mif952.00 B17-09-14 19:32
4.64 kB27-05-14 10:59
memory_add.coe372.00 B10-06-14 10:00
Multiple_Clock.gise16.06 kB25-12-14 14:21
Multiple_Clock.xise42.71 kB17-09-14 20:34
668.00 B29-05-14 15:02
693.00 B29-05-14 15:03
819.00 B29-05-14 15:01
833.00 B29-05-14 15:03
3.91 kB17-09-14 21:27
826.00 B29-05-14 15:00
793.00 B27-05-14 10:16
&Read&0.00 B100% 10-06-14
1.14 kB27-05-14 11:37
768.00 B29-05-14 15:04
8.08 kB05-06-14 15:17
1.32 kB17-09-14 21:29
test_beh.prj526.00 B17-09-14 21:29
test_isim_beh.exe92.50 kB17-09-14 21:29
test_isim_beh.wdb66.32 kB17-09-14 21:41
774.00 B27-05-14 10:16
885.00 B29-05-14 14:59
top.bgn9.00 kB17-09-14 20:28
top.bld995.00 B17-09-14 21:26
top.cmd_log1.88 kB17-09-14 21:27
top.lso6.00 B17-09-14 21:26
top.ncd47.13 kB17-09-14 21:27
top.ngc64.19 kB17-09-14 21:26
top.ngd112.78 kB17-09-14 21:26
top.ngr766.72 kB17-09-14 21:26
top.pad14.95 kB17-09-14 21:27
top.par9.01 kB17-09-14 21:27
top.pcf216.00 B17-09-14 21:27
top.prj418.00 B17-09-14 21:26
top.ptwx17.36 kB17-09-14 21:27
&top.stx&0.00 B17-09-14 21:26
top.syr269.87 kB17-09-14 21:26
top.twr6.03 kB17-09-14 21:28
top.twx22.58 kB17-09-14 21:28
top.unroutes156.00 B17-09-14 21:27
top.ut742.00 B17-09-14 20:28
4.75 kB17-09-14 20:59
top.xpi46.00 B17-09-14 21:27
top.xst1.06 kB17-09-14 21:26
17.41 kB25-12-14 14:13
top_guide.ncd47.13 kB17-09-14 21:27
top_map.map16.27 kB17-09-14 21:27
top_map.mrp25.39 kB17-09-14 21:27
top_map.ncd30.21 kB17-09-14 21:27
top_map.ngm186.17 kB17-09-14 21:26
top_map.xrpt32.08 kB17-09-14 21:27
top_ngdbuild.xrpt10.19 kB17-09-14 21:26
top_pad.csv14.98 kB17-09-14 21:27
63.22 kB17-09-14 21:27
top_par.xrpt158.52 kB17-09-14 21:27
16.89 kB25-12-14 14:13
408.00 B17-09-14 21:27
14.01 kB17-09-14 21:27
top_xst.xrpt16.10 kB17-09-14 21:26
2.89 kB17-09-14 21:27
16.00 B17-09-14 21:29
cst.xbcd340.00 B17-09-14 21:26
work.sdbl58.97 kB17-09-14 21:26
work.sdbx290.00 B17-09-14 21:26
netlist.lst76.00 B17-09-14 21:26
bitgen.xmsgs1.74 kB17-09-14 20:28
map.xmsgs13.08 kB17-09-14 21:27
ngdbuild.xmsgs367.00 B17-09-14 21:26
par.xmsgs1.53 kB17-09-14 21:27
pn_parser.xmsgs3.04 kB25-12-14 14:13
trce.xmsgs1.12 kB17-09-14 21:28
xst.xmsgs416.37 kB17-09-14 21:26
&functional&0.00 B19-09-14 16:51
&timing&0.00 B19-09-14 16:51
&_dbg&0.00 B19-09-14 16:51
&doc&0.00 B19-09-14 16:51
&example_design&0.00 B19-09-14 16:51
&implement&0.00 B19-09-14 16:51
&simulation&0.00 B19-09-14 16:51
&_cg&0.00 B19-09-14 16:51
&_xmsgs&0.00 B19-09-14 16:51
&tmp_save&0.00 B19-09-14 16:51
&work&0.00 B19-09-14 16:51
&xilinxcorelib_ver&0.00 B19-09-14 16:51
&top.prj&0.00 B17-09-14 19:33
&memory&0.00 B19-09-14 16:51
&tmp&0.00 B19-09-14 16:51
&xlnx_auto_0_xdb&0.00 B17-09-14 19:32
&_xmsgs&0.00 B19-09-14 16:51
&test_isim_beh.exe.sim&0.00 B19-09-14 16:51
&work&0.00 B19-09-14 16:51
&dump.xst&0.00 B19-09-14 16:51
&projnav.tmp&0.00 B17-09-14 21:26
&work&0.00 B19-09-14 16:51
&ipcore_dir&0.00 B19-09-14 16:51
&iseconfig&0.00 B19-09-14 16:51
&isim&0.00 B19-09-14 16:51
&xlnx_auto_0_xdb&0.00 B19-09-14 16:51
&xst&0.00 B19-09-14 16:51
&_ngo&0.00 B19-09-14 16:51
&_xmsgs&0.00 B19-09-14 16:51
&Multiple_Clock&0.00 B25-12-14 14:13
(提交有效评论获得积分)
评论内容不能少于15个字,不要超出160个字。
tsce刚好在做这方面的东西。下载看看
aerl正需要这个代码 做毕业设计没思路了 很需要
评价成功,多谢!
下载Multiple_Clock.rar
CodeForge积分(原CF币)全新升级,功能更强大,使用更便捷,不仅可以用来下载海量源代码马上还可兑换精美小礼品了
您的积分不足,优惠套餐快速获取 30 积分
10积分 / ¥100
30积分 / ¥200原价 ¥300 元
100积分 / ¥500原价 ¥1000 元
订单支付完成后,积分将自动加入到您的账号。以下是优惠期的人民币价格,优惠期过后将恢复美元价格。
支付宝支付宝付款
微信钱包微信付款
更多付款方式:、
您本次下载所消耗的积分将转交上传作者。
同一源码,30天内重复下载,只扣除一次积分。
鲁ICP备号-3 runtime:Elapsed:411.998ms - init:0.1;find:0.6;t:0.4;tags:0.2;related:368.8;comment:3.2; 27.69
登录 CodeForge
还没有CodeForge账号?
Switch to the English version?
^_^"呃 ...
Sorry!这位大神很神秘,未开通博客呢,请浏览一下其他的吧对超标量cpu中多个并发调度的指令流建模的方法和装置的制作方法
专利名称对超标量cpu中多个并发调度的指令流建模的方法和装置的制作方法
技术领域在这里公开并要求权利的本发明总体上涉及一种方法和装置,用于使用特定的计算机语言,建模超标量(super scalar)中央处理单元(CPU)。更具体地,本发明涉及一种上述类型的方法,其中CPU操作的特征是并发调度的指令流,以及该特定语言是顺序语言,例如C或C++。更具体地,本发明涉及一种上述类型的方法,其中包含在CPU中的多个并发操作功能单元分别与虚拟模型主时钟或基准时钟同步。
背景技术 如本领域中熟练的技术人员所知道的,精简指令集计算机(RISC)是设计用来执行精简数量的计算机指令类型的微处理器。这使微处理器能以较高的速度运行。在目前的超标量RISC CPU设计环境中,一个主要的问题是对多个调度的信号指令多数据(SIMD)指令流的确认。更具体地,典型的超标量RISC CPU包括复杂的并发操作机,其中每一个块单元同时运行。而且,RISC CPU的内部定时典型地与多阶段流水线操作相一致。
非常希望能够使用顺序语言,例如C或C++,对RISC CPU的多个调度的指令流进行建模。这将提供一种用于多个调度的SIMD指令流确认的有用工具。但是,这些编译语言的顺序特性使得很难以使用它们对发生于超标量CPU内的并发事件进行建模。加入浮点指令流,使并发问题复杂化,这是因为,CPU中浮点单元(FPU)具有分离的指令队列和执行引擎。另外,由于RISC CPU的内部定时运行于多阶段流水线操作模式,如上所述,例如C或C++等编译模型语言的顺序执行特性不能够正确地对CPU操作进行建模,具有可接受的时钟标准精度或准确度。
本发明的各实施方式,基于内部同步时钟机制的产生,提供了上述问题的解决方法。RISC CPU包括多个并发操作的功能单元或功能块,其中每一个单元依照其自身时钟操作,包括多阶段的完全非同步的时钟。借助于本发明,虚拟内部主时钟可以插入到多个流水线机器周期中,其用于对上述RISC CPU功能单元的操作进行建模。在一个有用的实施方式中,本发明专注于一种处理器,其包括多个配置成并发操作的功能单元,以处理指令流。该实施方式包括一种方法,用于使得可以使用例如C或C++等顺序计算机语言对指令处理操作进行建模。该方法包括,生成具有一个时钟周期的虚拟模型主时钟,以及在各个相应的处理周期开始时,初始化功能单元的每一个。该方法进一步包括,在各个相应的处理周期期间,操作每一个功能单元,以实现关于所述指令的一个的任务,以产生结果。在由该时钟周期的一个的特定位置定义的时间上,同时对由各个功能单元提供的所有结果进行评估。将由功能单元提供的评估结果的每一个,连同由该特定的时钟周期位置定义的时间,写入相应的寄存器。
所附权利要求书阐述了被认为是本发明之特征的新颖特征。然而,通过连同附图一起阅读说明性的实施方式的下述详细描述,将更好地理解该发明本身、其优选使用方式、其它目的及其优点,其中图1示出了关于本发明的一个实施方式使用的超标量CPU的框图。
图2示出了用于图1中CPU的执行单元的框图。
图3示出了说明图1中CPU操作的多阶段流水线操作顺序的示意图。
图4示出了根据本发明的一个实施方式,由虚拟模型主时钟生成的同步时钟周期的示意图。
图5示出了用于本发明的一个实施方式的流水线阶段各个步骤的流程图。
图6示出了用于实现本发明的一个实施方式的简化布置的框图。
具体实施例方式
参照图1,其示出了一个作为并发操作功能块或功能单元布置实现的超标量RISC CPU 100。该功能单元包括指令读取器102,多路复用器/分配器104和执行单元106。重排序缓冲器108和完成单元输入重排序缓冲器110共同作为完成缓冲器。图1中功能单元102-110之间的交互,连同总线接口单元112和寄存器文件114在后面进行详述。
进一步参照图1,其示出了定时器116和指令调度单元118,连接到多路复用器104,用于调度指令。还示出了装载/存储单元124,与指令缓存/数据缓存126互连,以及地址翻译单元128,以及协处理器130和缓存132。RISC CPU 100进一步包括分支处理单元134、指令保留站136和内部总线138。
图1中所示实现的功能单元或块的划分基于功能分离。另一个考虑是处理器内部总线边界。由于这些考虑,将处理器微结构划分为整数执行单元IEU、浮点单元FPU、总线接口单元BIU、指令读取单元IFU、浮点寄存器文件FPRF,以及整数寄存器文件IRF,以及图1中所示的其它一些块。
由于加入浮点指令流,使得并发问题变得复杂,这是因为,FPU具有分离的指令队列和执行引擎。这在图2中说明,其示出了一个典型的浮点或整数执行单元200。更具体地,图2示出了执行单元202,从保留队列和调度/寄存器文件204接收输入,并且向完成缓冲器单元206提供输出。图2还示出了包括指令读取器的功能组208,以及功能组210,这两个功能组都连接到单元204。
图1所示RISC CPU中指令的执行是依照多阶段流水线操作顺序进行的。参照图3,其中示出了流水线阶段1-5,其中为了简单,将阶段数目限制为五个(5)。而且,在执行顺序中,可以在同时处理多个指令。因此,图3示出了三个分离的流水线操作302-306,其中,这三个流水线操作用于并发处理三个不同的指令流,分别称为指令流1-3。
进一步参照图3,其示出了在流水线顺序的每一个阶段1期间执行指令读取操作。这一功能由RISC CPU 100的指令读取器单元102实现。在每一个阶段2期间,对在先前阶段1期间读取的指令进行调度和预解码。这一功能由多路复用器/分配器实现。
在阶段3,借助于RISC CPU 100的执行单元106,执行在先前阶段调度的每一个指令。在阶段4期间,将每次执行所得结果输入到包括功能单元108和110的完成缓冲器中。在阶段5期间,借助于总线接口单元112,将缓冲器结果写回到寄存器114中。
在上面的流水线操作中,RISC处理器100内部的每一功能单元可以依照其自身时钟并发运行,而且,多个阶段的时钟相互间可以是非同步的。而且,在多阶段流水线布置中,多指令类型指令流输入到RISC CPU 100中并发操作的功能单元或功能块中。但是,如上所述,例如C或C++等编译模型语言的顺序执行特性不能够正确地对CPU操作进行建模,具有充分的时钟标准精度或准确度。因此,本发明的一个实施方式定义了一个虚拟模型基准或主时钟。有用地,模型主时钟定义为50%占空比的周期时钟,并且其频率等于包括在RISCCPU 100中各个功能单元的最高时钟频率或其整数倍。
参照图4,其示出了具有时钟周期402的模型主时钟。而且,为了简单,示出了流水线顺序的各个阶段,每一个阶段具有主时钟一个时钟周期的时间段。从而,在阶段1-5的每一个期间可操作的、CPU 100的每一个功能单元,同样具有一个时钟周期的时间段。如下文中所详述,主时钟周期的上升沿用于初始化相关功能单元,而下降沿用于评估该功能单元所产生的结果。
尽管在流水线操作顺序的不同阶段执行不同的功能或任务,在每一个阶段期间,实现相同的程序步骤集合。这些步骤包括(1)初始化;(2)任务执行;(3)评估;以及(4)结果输入。在图5的流程图中分别以功能块502-508表示这些步骤。
在阶段N的初始化时,从流水线寄存器读取由先前阶段提供的输出或结果。如上所述,每一个阶段的初始化与主时钟脉冲的上升沿相一致。如果从寄存器读取的输出被看出是错误的,将进行重启操作,以冲洗或清除流水线。
在任务执行步骤504中,依照与特定阶段N相关的功能单元,处理先前步骤的输出。之后,将评估功能506应用于任务执行步骤的结果或输出。如上所述,评估是并发的,或是同步的,与主时钟脉冲的下降沿。
进一步参照图5,其示出了功能块508,该功能块指示阶段N评估的输出被写入到流水线寄存器中。所写入的信息包括评估,并由此与主时钟同步。
在每一个阶段期间,通过在主时钟的下降沿调用每一个功能单元的评估功能,根据不同阶段时钟运行的所有不同功能单元根据模型主时钟同步。结果,可以依照指令流的执行或调度顺序,用顺序计算机语言建模各个功能单元或功能块。
参照图6,其示出了一个简化的处理系统600,用于实现本发明的一个实施方式。系统600总体上包括处理器602、存储设备604,例如数据库等,以及计算机可读介质606。处理器可选择性地是与图1中所示处理器100相同的处理器,或者可以是不同的处理器。
提供本发明的说明书的目的是为了说明和描述,而不是用来穷举或将本发明限制为所公开的形式。对本领域的一般技术人员而言,许多修改和变更都是显而易见的。选择并描述实施方式是为了更好地解释本发明的原理,其实际应用,并使本领域的其他一般技术人员理解带有各种修改的各种实施方式的本发明同样适用于设想的特定用途。
1.一种在包括多个配置成并发操作以处理指令流的功能单元的处理器中,用于使得可以使用顺序计算机语言,对所述指令的处理进行建模的方法,所述方法包括下列步骤生成具有一个时钟周期的模型主时钟;在各个相应处理周期的开始,初始化所述功能单元中的每一个;在其相应的处理周期期间,操作每一个功能单元,以实现关于所述指令的一个的任务,以产生结果;在由所述时钟周期的一个的特定位置所定义的时间上,对分别由所有所述功能单元产生的结果进行评估;以及将由所述功能单元产生的所述评估结果中的每一个,连同由所述特定时钟周期位置所定义的所述时间,写入各个相应的寄存器。
2.根据权利要求1所述的方法,其中依照多阶段流水线机器周期,所述功能单元并发操作,以处理所述指令流。
3.根据权利要求2所述的方法,其中在所述时钟周期的一个的下降沿,并发实现所述评估步骤。
4.根据权利要求3所述的方法,其中所述处理器适用于每一个依照多个并发多阶段流水线操作中的一个处理多个指令流每一个。
5.根据权利要求3所述的方法,其中所述初始化步骤包括读取分别对应于所述功能单元的流水线寄存器。
6.根据权利要求5所述的方法,其中在对所述流水线寄存器进行读取之后,所述方法选择性地包括寄存器清除操作。
7.根据权利要求5所述的方法,其中所述处理器包括精简指令集计算机处理器。
8.根据权利要求7所述的方法,其中所述计算机语言选择性地包括C或C++。
9.一种计算机可读介质中的计算机程序产品,用于使得可以使用顺序计算机语言,对指令流的处理进行建模,其中借助于包括多个并发操作的功能单元的处理器对所述指令进行处理,所述计算机程序产品包括第一指令,用于生成具有一个时钟周期的模型主时钟;第二指令,用于在各个相应处理周期的开始,初始化所述功能单元中的每一个;第三指令,用于在其相应处理周期期间,操作每一个功能单元,以实现关于所述指令的一个的任务,以产生结果;第四指令,用于在由所述时钟周期的一个的特定位置所定义的时间上,对分别由所有所述功能单元产生的结果进行评估;以及第五指令,用于将由所述功能单元产生的所述评估结果的每一个,连同由所述特定时钟周期位置所定义的所述时间,写入各个相应的寄存器。
10.根据权利要求9所述的计算机程序产品,其中依照多阶段流水线机器周期,所述功能单元并发操作,以处理所述指令流。
11.根据权利要求10所述的计算机程序产品,其中在所述时钟周期的一个的下降沿,并发实现所述评估。
12.根据权利要求11所述的计算机程序产品,其中所述处理器适用于每一个依照多个并发多阶段流水线操作的一个处理多个指令流每一个。
13.根据权利要求12所述的计算机程序产品,其中所述处理器包括精简指令集计算机处理器。
14.根据权利要求13所述的计算机程序产品,其中所述计算机语言选择性地包括C或C++。
15.一种计算机系统,包括处理器,包括多个配置成并发操作以处理指令流的功能单元;以及计算机可读介质,连接到该处理器,所述介质还包括处理器指令,其配置成可由所述处理器读取,并由此使所述处理器生成具有一个时钟周期的模型主时钟;在各个相应处理周期的开始,初始化所述功能单元的每一个;在其相应处理周期期间,操作每一个功能单元,以实现关于所述指令流的所述指令的一个的任务,以产生结果;在由所述时钟周期的一个的特定位置所定义的时间上,对分别由所有所述功能单元产生的结果进行评估;以及将由所述功能单元产生的所述评估结果的每一个,连同由所述指定时钟周期位置所定义的所述时间,写入各个相应的寄存器,使得可以使用顺序计算机语言对所述指令流的处理进行建模。
16.根据权利要求15所述的系统,其中依照多阶段流水线机器周期,所述功能单元并发操作,以处理所述指令流。
17.根据权利要求16所述的系统,其中在所述时钟周期的一个的下降沿,并发实现对结果的所述评估。
18.根据权利要求17所述的系统,其中所述处理器适用于每一个依照多个并发多阶段流水线操作的一个处理多个指令流。
19.根据权利要求18所述的系统,其中所述处理器包括精简指令集计算机处理器。
20.根据权利要求19所述的系统,其中所述计算机语言选择性地包括C或C++。
本发明提供了一种方法,其中使用了关于RISCCPU的虚拟内部主时钟。该RISC CPU包括多个并发操作的功能单元,其中每一个单元依照其自身时钟运行,以处理指令流,而时钟包括多阶段完全非同步时钟。该方法包括生成具有一个时钟周期的虚拟模型主时钟,以及在各个相应处理周期的开始,初始化功能单元的每一个。该方法进一步包括,在各个相应的处理周期期间,操作每一个功能单元,以实现关于所述指令的一个的任务,以产生结果。借助于该主时钟,以同步的方式评估所有的结果。这使得可以使用例如C或C++等顺序计算机语言对指令处理操作进行建模。
文档编号G06F15/76GK
公开日日 申请日期日 优先权日日
发明者奥利弗·克伦·班恩 申请人:国际商业机器公司

我要回帖

更多关于 指令周期 的文章

 

随机推荐