高性能32位移位寄存器单元的设计

发布者:qinghong最新更新时间:2013-10-31 来源: 21ic关键字:移位寄存器  CPU  CISC指令集 手机看文章 扫描二维码
随时随地手机看文章
  1 引言

  本文给出了一种可用于32位以上CPU执行单元的移位寄存器电路,并针对CISC指令集INTEL X86进行了优化(由于RISC指令集中移位类指令实现比较简单,故没有在文中讨论);采用指令预处理的技术和通过冗余位,能很方便的实现带进位标志 CF移位和设置CF位,并使得每条移位指令的平均执行速度为两个指令周期。它有效地提高了CPU对移位类指令的执行性能,并且作为一个基本的内核单元能很方便地移植到不同指令集(RISC或 CISC)的CPU设计之中。

  2 32位CPU中执行单元总体结构

  我们所设计的32位CPU的执行部分采用双总线结构,数据总线(Abus,Bbus)的宽度是32位。由于移位类指令如果用ALU进行实现的话,必然会耗费太多的CPU周期,为实现在一个指令周期内对32位数据进行任意位的移位操作,因此有必要在执行单元中设计专用硬件移位寄存器,在执行移位类指令时由它进行32位数据的移位。

  图1给出了32位CPU执行单元总体结构数据流结构简图,并省略了所有控制信号。图中Abus为双向32数据总线,Bbus为单向32位数据总线。由于考虑到要实现INTEL X86系列所有的移位类指令(RCR,RCL,ROR,ROL等),所以移位寄存器在设计时采用双输入端,即实际该移位寄存器最大能实现64位移位。通过特殊的指令预设置方法,并通过增加冗余位实现标志位的设置。

 

  3 移位寄存器单元的设计

  3.1 矩阵移位器和树状移位器

  在CPU中移位寄存器单元的设计一般采用的是矩阵结构和树状结构的移位器。

  3.1.1 矩阵结构(Matrix Style)移位器

  它的结构为一传输门组成的阵列。行数等于操作数据宽度,列数等于最多能移位数如图2所示(以4位举例)。

 

  其中A3~A0是4位数据输入线,sh3~sh0是 4根控制信号线。每次进行N位移位操作,对应的shN为高,其它控制信号为低。

  这种结构的优点是:(1)数据传输的速度快,每个信号到达输出端只经过了一级传输,不受移位器位数限制;(2)版图很规整。缺点是:(1)每根控制信号的负载太大,如32位移位器,每根信号线(sh0,sh1,……sh31)都要驱动32个开关管;(2)所需晶体管数目太多,如n位移位器所需晶体管数为2× n×n=2n2 (传输门部分采用CMOS实现),所带来的功耗和芯片面积也会增加;(3)每一移位操作只需一根控制线为1,所以需辅以额外的译码单元。[page]

  3.1.2 树状结构(Tree Style)移位器

  这种结构M位移位器所需的级数是log 2M每一级都由两根信号线(shn和sh n#)控制数据的传输,数据在第i级要么移动2 i位或者不移动。 树状移位器如图3所示。

 

  这种结构的优点是:(1)晶体管数目少, n位移器所需晶体管数目为2×n×log n(传输门部分采用CMOS实现),版图面积小于矩阵移位器;(2)控制信号shN~sh0本身就是二进制表示,不需要额外的译码单元。缺点是:数据通路所需经过的开关管数目太多,M位移位器所需的级数是log 2M,因此导致延时太大。

  3.2 矩阵-树状结构移位器

  由上面的分析我们可以看出,如果所设计的处理器为16位以下CPU,那其移位器不管采用上述哪种方案都能达到要求,但当数据宽度到32位以上,从功耗,速度及版图面积考虑以上方案的固有缺点就会显得非常突出。在本设计中,移位寄存器的实际输入为64位,为结合矩阵结构的优点(速度快、版图规整)和树状结构的优点(晶体管数目少、译码简单),我们在设计中采用矩阵-树状结构整个移位寄存器的是由双总线输入,即输入64位,表1中列举了不同级别比例的矩阵-树状结构所需晶体管数目(n1为tree的级数,n2为matrix的控制线,n3为matrix中用的晶体管数目)。经过综合考虑,我们采用第2行的矩阵-树状级别比例,即矩阵部分最大能实现8位移位,树状部分最大能实现4位移位。

  经过各方面综合考虑,我们所设计的移位寄存器的前级为矩阵结构部分(输入数据为64位,控制信号8位),由这一部分形成一36位的数据送入下一级树状结构(输入数据为36位,控制信号2位)部分再完成剩余的4位移位,形成32位输出数据。结构简图如图4所示。

        在这个结构中,后级的树状移位器最高实现3 位移位。输入的2bit信号为2进制码,这两位由移位计数器sh4~sh0直接将最低两位送入(在后一节将介绍)。前级的矩阵结构完成64位输入36位输出,我们设64位数据输入由Abus,Bbus提供,如图5所示。每一小格代表4位数据。这64位数据送入矩阵移位器后,根据计数器的高三位sh4~sh2 进行译码对其进行4,8,12,16,20,24,28,32中的一种移位(对应8bits中的一位为高)。形成36位的数据输出送入下级树状移位器以完成剩余位数的移位。36位数据输出格式如图6所示。其中COUNT表示总共移位数。

 

 

  4 指令的预处理及移位类指令的实现

  在我们设计的这片CPU中,需要对INTEL的 X86系列移位类指令进行兼容。因此移位寄存器单元需要在周围译码和锁存单元的配合下,要能在一个指令节拍内实现ROL,ROR,RCL,RCR, SHL,SHR,SAR,其中RCL,RCR实现了带标志位C的移位(指令说明见文献[4])。因此需由处理器的控制单元在每类移位指令移位之前进行指令的预处理。[page]

  4.1 移位寄存器单元总体结构

  最终设计出的移位寄存器单元总体结构如图7 所示,其中其核心部分的矩阵-树状结构的移位寄存器就是使用上一节所描述的结构。记数器中的数据(sh4~sh0)在移位上一拍由Bbus写入,并进行译码,其中低两位(sh1,sh0)直接送树状结构移位部分,高三位(sh4,sh3,sh2)经过译码产生8位控制信号送入矩阵移位部分。Abus和Bbus输入锁存器能锁存32位数据输入,并根据不同指令的要求进行操作,对指令进行预处理。移位结果送ALU输出锁存器,并对CF寄存器进行设置。

 

  4.2 指令的预处理

  由于要对实现带进位CF的移位并在移位操作后对CF进行设置,在一般情况下这需要CPU的控制单元提供多周期指令节拍来实现。在本设计中,将 Abus和Bbus输入锁存器设计为能根据不同的指令实现清0和带CF左移一位或右移一位的操作,以便为移位做好数据上的准备,使输入数据的0~32位移位能在一个指令周期内完成。对不同的指令具体设置情况如图8所示。图中CF表示为进位标志位;len为操作数长度(如32位数据); n为移位数;DATA表示输入锁存输出的数据为操作数据本身; 0表示输入锁存输出的数据为0;CF:DATA(-1)表示输入锁存输出的数据为操作数带CF右移一位;DATA(-1):CF表示输入锁存输出的数据为操作数带CF左移一位;SIGN_EXT表示输入锁存输出的数据为操作数带符号扩展。横线下为移位前Abus和Bbus锁存器中数据预处理完后的格式,横线上方位移位完成后数据输出及进位CF所处位置。

 

  例:RCL AX , CL 指令

  设AX=0001H , CL="3" , CF="1"

  Abus锁存器输出数据为操作数本0001H; Bbus锁存器输出的数据为操作数带CF右移一位为1000H;

  在输出中,CF在输出结果的最左端为0。

  5 验证及结论

  通过verilog的行为仿真及starsim的时序仿真显示,性能完全符合要求。对比INTEL X86指令集中移位类指令标准执行周期为4~7个机器周期,本设计移位类指令平均执行时间为2个指令周期,因此大大提高了移位类指令执行效率。移位寄存器作为CPU中执行单元的专用硬件,其性能的好坏直接影响到CPU处理移位类指令的速度和效率。本文采用的矩阵-树状结构移位寄存器,配合指令预处理技术,能有效实现32位数据的移位操作,并兼容INTEL X86系列的所有移位类指令还可作为通用硬件方便地移植到其他指令级别的CPU设计之中。

关键字:移位寄存器  CPU  CISC指令集 引用地址:高性能32位移位寄存器单元的设计

上一篇:单片机常见的报警方式有几种?基本原理分别是什么?
下一篇:接口电路中的滤波、抑制方法

推荐阅读最新更新时间:2024-03-16 13:29

疯狂打脸龙芯,这家CPU公司真有这实力?
  日前,《国产 CPU 入驻全球第一PC厂商:疯狂打脸 龙芯 》一文在网络上广为流传,但文章中存在诸多事实性错误,而且文章的标题和内容对 龙芯 、君正这样自主设计微结构和 CPU 的公司多有不合理的贬低,特别是把 龙芯 和上海汉芯并列的做法非常不妥当。对于惠普采用瑞芯微的SoC用于一款笔记本,以及对于瑞芯微这家企业,这篇文章实在有捧杀之嫌疑。下面就随嵌入式小编一起来了解一下相关内容吧。      疯狂打脸龙芯,这家CPU公司真有这实力?    mp4时代瑞芯微的表现并不好   该文章声称:“早在mp4时代,瑞芯微就体现出其精明眼光:虽然它没有高大上的‘自研架构’,但在笔者记忆中,瑞芯微主控是当年视频格式兼容性最好的主控,
[嵌入式]
锐龙7000系列CPU发力:AMD成为台积电5nm工艺第二大客户
通过与台积电的深度合作,AMD 成功地从长期竞争对手英特尔那里攫取了更多的市场份额。得益于这个能够及时出货先进产品的可靠供应链合作伙伴,DigiTimes 认为 AMD 即将推出的全新一代 Zen 4 处理器,将让它成为台积电 5nm 工艺的第二大客户 —— 仅次于总部位于加州库比蒂诺的苹果公司。 (via WCCFTech) 最新报道指出,AMD 将迎来相当忙碌的几个月份,因为该公司希望在包括数据中心、台式机和笔记本在内的各个领域,都提供全面升级的新一代产品阵容。 按照计划,AMD 应该会先在本月底发布 Zen 4“Raphael”锐龙 7000 台式处理器。 6 月,AMD 高级副总裁兼客户端总经理 Saeid
[家用电子]
锐龙7000系列<font color='red'>CPU</font>发力:AMD成为台积电5nm工艺第二大客户
晶芯科技推出AX65,首款乱序架构的CPU IP
新CPU采用该公司首个乱序架构设计,可实现更高的指令吞吐量、更好的性能和更快的处理速度。 尽管 RISC-V 最初只是一个学术项目,但开源指令集架构 (ISA) 现在已成为全行业的风向标,由数百名开发了高性能 IP 的成员组成。晶心科技也于最近宣布全面推出符合 AX65 RISC-V 标准的 CPU IP。 AndesCore AX65 64位多核CPU。 图片由晶心科技提供 让我们更深入地了解 AX65 的性能、架构和设计应用。 晶心AX65 AX65是一款64位多核CPU IP,旨在满足计算、网络和高端控制器的应用处理器插槽的需求。 该器件符合 RISC-V RVA22 配置文件,支持 RISC-V 标准“
[嵌入式]
晶芯科技推出AX65,首款乱序架构的<font color='red'>CPU</font> IP
CES 2022:英特尔发布一颗5.5GHz的CPU
1月7日上午消息,CES 2022大会期间,英特尔正式发布了多款12代酷睿芯片,其中参数最猛的当属i9-12900KS,一款台式机CPU。它是继9900KS之后的又一款“KS”结尾的酷睿产品,最高加速频率可以达到5.5GHz,一个非常惊人的数字。   5.5GHz相比于i9-12900K主频提高了300MHz,它可以在不大幅加电压的情况下达到更高频率,功耗也能控制在一个合理的水平。   但这颗芯片可能不会单独出售。英特尔执行副总裁格雷戈里·布莱恩特(Gregory Bryant)在演讲中提到,CPU将交付给“OEM客户”,也就是跟电脑整机一起出售。
[手机便携]
谷歌推出第二代TPU:性能比传统CPU高出30倍
在今天凌晨举行的谷歌I/O大会上,谷歌除了宣传了安卓8.0之外,更为重要的是着重谈到了人工智能,于是第二代TPU也就应运而生。TPU是谷歌自主研发的一种转为AI运算服务的高性能处理器,其第一代产品已经在AlphaGo这样的人工智能当中使用,主攻运算性能。下面就随嵌入式小编一起来了解一下相关内容吧。 谷歌推出第二代TPU:性能比传统CPU高出30倍 第二代TPU相比较于初代主要是加深了人工智能在学习和推理方面的能力,至于性能的话,全新的谷歌TPU可以达到180TFLOPs的浮点性能,和传统的GPU相比提升15倍,更是CPU浮点性能的30倍。 另外谷歌还推出了一款叫做TPU pod的运算阵列,最多可以包含64颗二代TPU,也就是
[嵌入式]
苹果成功迈入了7nm时代
在本季苹果秋季新品发布会上,苹果公布的三款新iPhone都采用了苹果最新研发的全新的苹果A12 Bionic芯片,这款芯片也是继华为的麒麟980之后第二款商用SoC芯片,也是标志着苹果成功迈入了7nm时代。 这款全新的A12 Bionic芯片是苹果第一款7nm芯片,包含一个6核CPU核一个4核GPU,CPU的处理速度相较前代提升了15%,GPU的提升也达到了50%,性能相较去年的A11处理器大幅提升。并搭载了人工智能神经引擎Neural Engine的最新版本,新版神经引擎每秒可以处理5万亿次运算。 从硬件性能上看苹果的A12 Bionic芯片仍处于行业的顶尖位置,苹果也对于此款芯片充满信心,苹果高级副总裁Phil S
[嵌入式]
Intel CPU漏洞祸乱全球 老黄神补刀:NVIDIA显卡没事
这两天Intel正为Meltdown、Spectre两个漏洞而焦头烂额,它们影响了Intel二十年来的几乎所有X86处理器,波及了Windows、Linux、Mac OS甚至Android系统,影响之大实属罕见。 更悲剧的是,这次曝光的漏洞中,内核级的Meltdown漏洞是Intel处理器才有的,尽管Intel把AMD以及ARM也拉下水了,说他们也受到影响了,但是AMD已经多次表态他们的处理器没受到Meltdown漏洞影响,因为双方的架构不同。 现在甩锅的不光是AMD,就连NVIDIA都出来“补刀”了,表示他们的GPU处理器不会受到漏洞影响。 这次的漏洞事件闹得很大,对Intel来说尤为严重,破坏了自家处理器的安
[半导体设计/制造]
TMS320C31和80C196双CPU构成的高速实时控制系统
    摘要: 介绍了采用TMS320C31和80C196双CPU构成的高速实时控制系统的基本构成,给出了TMS320C31、80C196与双口RAM IDT7140之间的接口电路,IDT公司双口RAM系列的中断逻辑设计以及DPS与80C196之间采用双口RAM进行高速数据通信的软件实现。该控制系统可应用于对实时性要求很高的系统中。     关键词: DSP 双口RAM 高速实时 中断 DSP也称数字信号处理器。TMS320C31是TI公司的第三DSP芯片,它的基本结构包括:(1)程序文凭间与数据空间分开的总线结构,可以对程序存储器和数据存储器这两个独立的存储器进行独立编址、独立访问;(2)流水线结
[传感技术]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved