适用于微处理器的装置及方法制造方法及图纸

技术编号:4006970 阅读:195 留言:0更新日期:2012-04-11 18:40
一种适用于微处理器的装置和方法,其中所述装置用以自微处理器的指令字节串流中提取指令,该微处理器的指令集架构具可变长度指令,该装置包含:队列,该队列的每一项目用以储存该指令字节串流的各指令字节列及相应于该指令字节列的每一指令字节的累积前置消息,其中该队列具有底部项目;及控制逻辑单元,耦接该队列,用以检测一情形;储存该指令的起始部分的长度,且将该指令字节列的第二列移入该底部项目;自该底部项目的该第二列提取尚未提取的该指令的指令字节,且提取该累积前置消息以置换从该队列移出的该指令的起始部分的前置字节;计算先前尚未提取的该指令的长度;及自该底部项目的该第二列提取先前尚未提取的该指令以外的指令。

【技术实现步骤摘要】

本专利技术是有关微处理器领域,特别是关于从一种具有可变长度指令的指令集架构 的微处理器的指令字节串流中取得指令。
技术介绍
微处理器包含一或多个执行单元,用以进行实际的指令执行。超纯量 (superscalar)微处理器可于每一时钟周期内发出多个指令至各个执行单元,因而得以增 进总处理能力或增进每一时钟周期内的平均指令。然而,微处理器管线上端的指令提取及 解码功能必须以有效率的速度来提供一指令串流给执行单元,藉以有效地使用执行单元及 增进总处理能力。x86架构由于其指令长度并非固定,因此使得此工作更加困难,在此架构 下,其每一指令的长度是变动的,此将于以下详述。因此,x86微处理器必须包含很多的逻 辑电路以处理进来的指令字节串流,以决定指令的开始及结束位置。因此,必须增进x86微 处理器解析指令字节串流以得到各个指令的处理速率。
技术实现思路
根据本专利技术特征之一,本专利技术提供一种适用于微处理器的装置,用以自微处理器 的一指令字节串流中提取指令,该微处理器的指令集架构具可变长度指令。该装置包含一 队列及一控制逻辑单元。该队列的每一项目用以储存该指令字节串流的各指令字节列及相 应于该指令字节列的每一指令字节的累积前置消息,其中该队列具有一底部项目。该控制 逻辑单元,耦接该队列,用以检测一情形,该情形包含储存于该底部项目的该指令字节列 的第一列的一指令的起始部分尚未自该队列提取,其中该指令的起始部分的指令字节均为 前置字节;根据该检测情形,储存该指令的起始部分的长度,将该底部项目的该第一列移出 该队列,且将该指令字节列的第二列移入该底部项目;自该底部项目的该第二列提取尚未 提取的该指令的指令字节,并且自该底部项目的该第二列提取该累积前置消息以置换从该 队列移出的该指令的起始部分的前置字节;根据储存的该指令的起始部分的长度,计算先 前尚未提取的该指令的长度;及根据该计算的长度,自该底部项目的该第二列提取先前尚 未提取的该指令以外的指令。根据本专利技术特征之一,本专利技术提供一种适用于微处理器的方法,用以自微处理器 的一指令字节串流中提取指令,该微处理器的指令集架构具可变长度指令,该微处理器包 含一队列,该队列的每一项目用以储存该指令字节串流的各指令字节列及相应于该指令字 节列的每一指令字节的累积前置消息,且该队列具有一底部项目。该方法包含检测一情 形,该情形包含储存于该底部项目的该指令字节列的第一列的一指令的起始部分尚未自该 队列提取,其中该指令的起始部分的指令字节均为前置字节;根据该检测情形,储存该指令 的起始部分的长度,将该底部项目的该第一列移出该队列,且将该指令字节列的第二列移 入该底部项目;自该底部项目的该第二列提取尚未提取的该指令的指令字节,并且自该底 部项目的该第二列提取该累积前置消息以置换从该队列移出的该指令的起始部分的前置字节;根据储存的该指令的起始部分的长度,计算先前尚未提取的该指令的长度;及根据 该计算的长度,自该底部项目的该第二列提取先前尚未提取的该指令以外的指令。附图说明图1显示本专利技术实施例的微处理器的方块图。图2显示图1的指令格式器的L级的方块图。图3显示图2的累积前置消息238。图4显示图1的微处理器的操作。图5显示图1的指令格式器的部分L级和M级方块图。图6显示图5所示的微处理器元件的操作流程图,用以自指令字节串流中取出指 令(在一实施例中最多可取出三指令),其不会产生时间延迟且与指令中的前置字节数目无关。图7显示图1的指令格式器的一部分的方块图。图8a和图8b显示图7的部分指令格式器的操作流程图。图9显示图5的多工队列的详细方块图。图10显示图1的指令格式器的部分M级的方块图。图11显示图5的M级控制逻辑单元的方块图。图12显示图1的指令格式器的部分M级的操作流程图。图13显示图5的多工队列于连续两个时钟周期的内容,以例示M级的操作。图14显示图5的多工队列于连续两个时钟周期的内容,以例示M级的操作。图15显示图14中指令格式器于一时钟周期内,将含有最多四十个指令字节的三 个指令取得并传送出去。图16显示图1的BTAC作了不良预测因而造成微处理器的分支错误,亦即,图1的 分支发生指示为逻辑真值但非为指令的操作码。图17显示涟波逻辑单元输出的组成信号。图18显示图1的微处理器的操作流程图。图19显示图2的长度解码器的详细方块图。图20显示十六个长度解码器的配置。图21显示图20的长度解码器的操作流程图。100微处理器102指令高速缓存104x86指令字节队列106指令格式器108格式化指令队列112指令转译器114转译指令队列116暂存器别名表118保留站122执行单元124引退单元126提取单元128分支目标地址高速缓存132指令字节134指令字节136x86指令串流142目前提取地址144加法器146预测目标地址148执行目标地址152下一个连续提取地址154分支发生指示202长度解码器204涟波逻辑单元208控制逻辑单元212长度解码器的输出214涟波逻辑单元的输出218操作数及地址尺寸222指令长度224解码任一前置指示符226解码LMP指示符228受LMP影响指示符229前置消息232开始位234结束位236有效位238累积前置消息252预设操作数及地址尺寸302OS304AS306REX出现308REX. ff312REX. R314REX. X316REX. B318REP322REPNE324LOCK326片段超出出现328编码段超出332任一前置出现402-414步骤502多工队列50411多工器50612多工器50813多工器512M级控制逻辑单元514控制信号516控制信号518控制信号524第一指令11526第二指令12528第三指令13534,536,538 有效指示符602-608步骤702XIBQ 控制逻辑单元802-824步骤1002累积前置阵列10041104 LEN11108置 END011141118 度LEm1201-1222 BTAC 位1802-1816 逻辑阵列(PLA)19041912号1916值2102-2116 具体实施例方式图1显示本专利技术实施例的微处理器100的方块图。微处理器100包含由多 级或多个功能单元所组成的管线(pipeline),其包含四级指令高速缓存(four-stage instruction cache) 102、x86指令字节队列(x86 instructionbyte queue,XIBQ) 104、指令 格式器(instruction formatter) 106 (其包含三级L、M及F)、格式化指令队列(formatted instruction queue) 108、才旨令转 i華器(instruction translator) 112、转 i華才旨令队歹lj (translatedinstruction queue) 114、暂存器另lj名@ (register alias table) 116、{呆留 站(reservation station) 118、执行单元(execution units) 122 及弓| 退单元(retire unit) 124。微处理器100还包含提取单元(fetch本文档来自技高网...

【技术保护点】
一种适用于微处理器的装置,用以自微处理器的一指令字节串流中提取指令,该微处理器的指令集架构具可变长度指令,该装置包含:一队列,该队列的每一项目用以储存该指令字节串流的各指令字节列及相应于该指令字节列的每一指令字节的累积前置消息,其中该队列具有一底部项目;及一控制逻辑单元,耦接该队列,用以:(a)检测一情形,该情形包含储存于该底部项目的该指令字节列的第一列的一指令的起始部分尚未自该队列提取,其中该指令的起始部分的指令字节均为前置字节;(b)根据该检测情形,储存该指令的起始部分的长度,将该底部项目的该第一列移出该队列,且将该指令字节列的第二列移入该底部项目;(c)自该底部项目的该第二列提取尚未提取的该指令的指令字节,并且自该底部项目的该第二列提取该累积前置消息以置换从该队列移出的该指令的起始部分的前置字节;(d)根据储存的该指令的起始部分的长度,计算先前尚未提取的该指令的长度;及(e)根据该计算的长度,自该底部项目的该第二列提取先前尚未提取的该指令以外的指令。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:汤玛斯C麦当劳约翰L唐肯
申请(专利权)人:威盛电子股份有限公司
类型:发明
国别省市:71[中国|台湾]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1