|||
2003年CAQA第三版的RISC综述的另一个大的特点是加入了嵌入式RISC处理器的总结,一共选择了当时3个处理器,ARM、SH3、M32R/D,我认为MIPS32/64+MIPS16都应该算嵌入式,因为后来MIPS32/64退出了高性能计算市场,主攻嵌入式市场了。Thumb也是ARM的16位指令集。我们来看看下图。
之前没有写MIPS是因为MIPS在教科书中写的非常详细了,MIPS的特点是简单,但不像ALPHA那么“极简”,但也用delay slot技术(到了2010年代才去掉),之前讲过这个的问题了。MIPS在1990年代曾经有过辉煌,计算机公司SGI(Silicon Graphics Inc.)当时用MIPS后来还把MIPS收购了。但是到了2000年代,MIPS比起其他处理器的劣势就明显了,所以SGI转而用Intel Itanium。而MIPS专攻嵌入式市场,据说曾经世界上3个RISC处理器就有一个是MIPS。所以现在一提MIPS大家都认为是嵌入式处理器,但MIPS之前也是做过高性能的,MIPS R10000很轰动的,很有影响力的。MIPS后来卖给了英国做GPU IP的公司,后来又买回给了美国公司,现在也要学RISC-V开源了,早干嘛去了。MIPS和ARM几乎同时开始做IP核市场,ARM成功了,因为 更开放。
ARM在1995年IEEE Micro杂志上发表了第一篇文章,讲嵌入式处理器的代码密度问题。ARM是英国公司,主要在英国国内生产处理器,最早是为Apple设计Acorn处理器生产PC机。后来远在大洋彼岸,将ARM处理器做成IP核,其他公司集成,这个概念在当时很超前的。
嵌入式首先就是要低功耗,所以片上存储资源要小。这篇文章在介绍完嵌入式应用后,马上就提出关键问题,嵌入式市场用CISC还是RISC。结论是由于资源有限,所以必须RISC,简单功耗可以很低。然后马上提出代码密度的问题,认为RISC的代码密度不好,所以ARM提出了Thumb技术,16位指令,处理器可以在32/16位指令系统间进行模式切换。ARM的一个特色是所有指令都是条件执行的,另一个特色是支持移位后计算指令,还有一个特色是寻址模式特别全。所以ARM指令系统一直以代码密度非常高为特色。但是真正使ARM独领风骚的还是和TSMC等芯片代工企业共创的硬核授权、按量收钱的开放式商业模式,极大的降低了设计生产SoC系统芯片的门槛,使得很多初创公司都可以设计生产销售芯片了。
下面日本公司出场了,日本家电等消费类电子产品当时独霸世界,其控制器等嵌入式芯片需求量极大,因此各大公司纷纷开始推出自己的指令系统。过了10几年又都的不好了(估计是中国的家电起来了),就将各个公司集成电路业务合成了一个那就是renesas公司,这个公司目前有好几个指令系统。下面这篇文章和上一篇是一期发表的。
日立公司的SH系列开宗明义就是要代码密度低,所以SH3指令系统所有指令都是16位的,根本没有32位指令。但是这样带来的问题是指令编码空间小了,只能16个通用寄存器,只能采用两地址格式,目的寄存器地址和一个源操作数地址必须一样,最关键是立即数只有8位,比较短。所有的指令总条数就会增加,虽然总的程序大小降低了,但是性能还需经受住考验才行啊。
三菱的M32R论文发表在1997年的IEEE Micro杂志,也是非常重视代码密度,特点是设计了混合32/16位指令,与MIPS和ARM的双模式不同,M32R是一个执行模式下两种长度的指令。这个有点像CISC变长指令系统了,或者和IBM System/360一样叫做混合指令系统吧,多个固定长度。而RISC-V也是采用的这种形式,只不过是采用指令压缩的概念设计RVC的。
代码密度的问题我们已经讲了好多次了,CAQA第三版专门开辟了一小节讲代码密度。其实在高性能处理器也存在这个问题,IBM PowerPC就曾经为了多事务商业应用,为这个事情困扰过,提出了硬件实时指令压缩的概念,直接对指令序列上压缩算法了。当前对于很多数据中心的程序而因,由于大量使用可复用软件和生产力更高的编程语言,程序大小问题又得到了很多关注,L1 I-Cache根本装不下了,程序二进制太大了,又兴起关于指令Cache和指令预取方面的一大堆研究。RISC-V在代码密度这方面有所考量,是合乎潮流的。
到了1998年IEEE Computer上才出现了对嵌入式处理器的综述文章,在2000年代以后嵌入式处理器和系统芯片设计大爆发,当然最赚钱的还是Intel(桌面和服务器芯片贵啊)。别看以ARM为代表的嵌入式芯片数量多,价钱便宜啊,所以总的销售额和Intel无法比的。
【1】Segars, S., et al. 1995. "Embedded control problems, Thumb, and the ARM7TDMI." IEEE Micro 15(5): 22-30.
【2】Hasegawa, A., et al. 1995. "SH3: high code density, low power." IEEE Micro 15(6): 11-19.
【3】Nunomura, Y., et al. 1997. "M32R/D-integrating DRAM and microprocessor." IEEE Micro 17(6): 40-48.
【4】Schlett, M. 1998. "Trends in embedded-microprocessor design." Computer 31(8): 44-49.
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-1 10:08
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社