高性能可扩展指令集计算.doc

高性能可扩展指令集计算.doc

ID:29139526

大小:80.00 KB

页数:6页

时间:2018-12-16

高性能可扩展指令集计算.doc_第1页
高性能可扩展指令集计算.doc_第2页
高性能可扩展指令集计算.doc_第3页
高性能可扩展指令集计算.doc_第4页
高性能可扩展指令集计算.doc_第5页
资源描述:

《高性能可扩展指令集计算.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、高性能可扩展指令集计算H.LEE韩国先进数字芯片公司(AdvancedDigitalChipsInc.)摘要在这篇论文中,我们提出了一种新的体系结构EISC(即可扩展指令集计算机),并且讨论了在嵌入式微处理器系统中存储器容量大小和性能的关系。这中结构使用一套高效、定长的16位指令集,使用短偏移量和立即数,并且通过扩展标志位的操作,这种短偏移量和立即数能扩展到32位。EISC指令集的代码密度和它的存储器数据传送性能大大优于现存的结构。因此EISC结构非常适和下一代嵌入式计算机系统。1.序言自从七十年代以来,微处理器已应用在许多嵌入式系统中,这样的产品多种多样,从家用

2、自动化、工业控制到现在的PDA产品和网络计算机[1]。在八十年代,RISC结构【2】的出现使得微处理器能够进入小型计算机应用领域。随后,半导体技术进一步发展,微处理器的操作速度也有了更大的提高【4-7】,并且同时引入了超标量结构【3】。尽管已取得这么多的进步,程序的执行仍然需要从存储器中读取程序和数据。近年来存储器的存储容量大幅增加,读写时间也大大缩短,但是它们的性能增长速度还是不能满足微处理器对其的需要。如:在1980年,DRAM的存取时间为250nsec;到1988年,它的运行频率达到300MHz——快了70倍。但是在同期间,微处理器核却从8M(8086系列)

3、增至到500MHz(Pentium2系列)。如果P2的超标量特性也算在内,它的性能实际上可达到1GHz——快了120倍。很明显,微处理器的瓶颈既在存储器和CPU的速度差异上,又在连接CPU和存储器的总线结构的物理特性上(从位宽和吞吐量方面分析)【8】。并且在集成了存储器、微处理器和I/O电路的微处理器单片系统中,芯片的价格主要取决于其尺寸大小。由于存储器电路(RAM和ROM)占了大部分区域,所以芯片的价格受存储器容量大小的影响。在这篇文章中,提出了可扩展指令计算机结构(EISC)。这种EISC结构有一套高效、定长的指令集,并采取短偏移量和小立即数。它能有效地解决存

4、储容量和带宽这个问题,它们的短偏移量和立即数也能够通过扩展标志位(e—flag)扩展到32位。这样能提高32位微处理器的代码密度。同时还提出了一套方案来解决e-flag对深度管道和超标量结构的影响。在文章中,我们同时也拿MIPS-R3000与可扩展指令集结构(EISC)进行比较,从而说明这种结构引出的原因和实现的方法。2.嵌入式微处理器近年来在嵌入式微处理器这个领域,对总线带宽和存储容量这对矛盾已经做了很多工作。一种方法是按照不同的结构形式进行代码压缩(【9】,【10】,【11】)。如:在文【12】中,提出了一种软件方法【13】。它采用一个代码字来作为一系列指令序

5、列的索引,并用这个索引代替经常用的指令序列。另外一种方法是指在32位RISC结构中所采用的一套压缩16位指令集。ARM-7TDMI【14】是指ARM-7的16位压缩指令集版本;TR4101是指MIPS-R3000(【1】,【14】)的16位压缩指令结构。这些带16位压缩指令集的RISCs结构很复杂因为它们需要与现在的RISC兼容,并且这种版本只能寻址8个寄存器,从而减弱了其性能。1.扩展指令集为了详述EISC的指令集,我们先从现有的一些处理器(特别是MIPS-R3000)的指令集分析开始,为此我们采用了EGCS-1.1【15】、NEWLIB-1.8.1C语言库【1

6、6】、LIBSTDC++-2.8.1C++语言库【17】和各种测试例程。这样分析能得出嵌入式微处理器系统的一般特性(其中某些特性是这些处理器共有的)。如:。16个通用寄存器一般能达到最优。。Load和Store指令使用频繁,并且大部分采用短偏移量寻址。小常数使用频率高为了更有效地支持这些特性,EISC结构使用16位定长指令系统并且通过扩展偏移量和常数来构造32位指令系统。同时采取了两项技术来增加代码密度:构造专用寄存器表来执行push和pop指令;使用硬件互锁来解决深度管道问题(不再需要使用许多NOP指令)。下面,我们分析MIPS-R3000来说明EISC主要体系

7、结构的特点。3.1EISC寄存器MIPS-R3000有34个32位寄存。其中2个专门用来“乘和除”;5个是专用寄存器,用来进行堆栈操作、帧指针和条件码操作;其余的27个是通用寄存器。为了研究代码长度和使用的寄存器数目的关系,我们采用不同数量的寄存器,运用EGCSC/C++编译器产生基于C/C++库和测试例程的代码,并且进行比较。从表1里,我们能看到随着通用寄存器数量越来越少,代码也变得越来越大(我们把使用27个寄存器的例子定位标准,为100),Load和Store指令的使用频率也在增长。由于Load和Store指令使用存储器和总线,它们直接影响发送数据的位宽。我们

8、可以看到当

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。