返回入门教程首页 主页 | 开发工具 | 应用芯片 | 核心模块  
 
   
 

MuP21 :一个高性能的 MISC 处理器

原作者: Chen-hanson Ting and Charles H. Moore , Offete Enterprises, Inc. 3/17/95

1. 比较: MISC RISC CISC

在 RISC 和 CISC 体系结构之间的论战已经有了结论: RISC 现在是大获全胜了。最近开发的更加强大的处理器全是 RISC 体系结构处理器,比如 SPARC 、 MIPS 、 Alpha 、 PA RISC, POWER PC 等。然而, CISC 仍在坚守着它的阵地,比如 x86 家族,因为在微控制器领域,原始的速度并不是一个重要的因素。

RISC 所基于的基本原理是:

•  简单的指令集更快;

•  复杂的、用于存储器访问的指令是不必要的;

•  一个大的寄存器文件能够为软件带来便利;

•  复杂的功能最好用编译器实现;

•  简单的处理器更容易设计和生产;

然而, RISC 实在是一个优秀的思想被错误地处理的结果。曾经强调的简单性被完全丢弃了,我们今天见到的 RISC 处理器比 CISC 还要复杂,高速度被无情地推向了血腥。 RISC 体系结构存在的一些问题是非常明显的:

•  RISC 处理器天生就很慢,因为每个指令的执行仍然需要很多个机器周期。指令流水线可以加快执行的速度,但是当遇到分支指令的时候,流水线必须清空和重新填满;

•  增加 RISC 处理器的速度在处理器和慢速的存储器之间产生了巨大的差异,为了提高存储器的访问速度,需要使用 CACHE 来缓冲指令和数据流。 CAHCE 带来了许多问题,使系统设计更加复杂并使系统更加昂贵;

•  RISC 在处理子程序调用时非常低效。高效率的子程序机制对于处理器支持高级语言的性能至关重要,许多 RISC 使用很大的寄存器文件并通过窗口来方便子程序的调用和返回,但是寄存器窗口必须足够大以处理子程序输入、输出和局部参数。大量的寄存器窗口浪费了 RISC 处理器的宝贵资源,大的寄存器文件在上下文切换时也减慢了系统的速度,因为中断服务程序进入和退出时有大量的寄存器需要保存和恢复。

我们认为,在 RISC 处理器中,精简指令集能够减少处理器的复杂度,提高它的性能,但是简单性的原理并没有被强化以便从中取得全部的收益。而在 MISC 体系结构中,我们会把简单性扩展到极限,看看我们在利用 CMOS 技术构建计算机系统时,在降低成本和提高性能方面可以走得多远。

我们愿意回答以下这些问题:

•  什么是一个微处理器解决实际编程问题的最小指令集?

•  这种最小指令集的微处理器的性能如何?

•  为了降低复杂性和系统成本,一个微处理器需要怎样进行简化?

•  利用现有的 CMOS 技术,如何最优化地实现这样的 MISC 处理器?

2.MISC 指令集

什么是一个实用微处理器的最小指令集呢? CISC 有 100 条以上的指令, RISC 有大约 50 条指令。在我们的研究中,明显感到 16 条指令不足以有效地支持一个微处理器所需要的功能,60 条指令又太多了,那么最小的指令数大约在 16 到 32 之间。一个方便的选择是把指令数限制在 32 以内,这样实现的处理器其指令码就只有 5 位。

下面是在 MuP21 中实现的指令:

转移指令 : JUMP, CALL, RET, JZ, JCZ

存储器指令 : LOAD, STORE, LOADP, STOREP, LIT

ALU 指令 : COM, XOR, AND, ADD, SHL, SHR, ADDNZ

寄存器指令 : LOADA, STOREA, DUP, DROP, OVER, NOP

到目前为止,我们只实现了24条指令,留有未来扩展的空间。这个 MISC 指令集在我们的编码中看起来是足够了,包括一个精心编制的操作系统和示范程序。

特别有趣的是我们只有加法指令而没有减法指令,只有 XOR 指令而没有 OR 指令,只有 OVER 而没有 SWAP 。很明显,减法可以通过求补码和加法合成, OR 可以通过求补码、与、 XOR 合成。 OVER 和 SWAP 相似,它们允许访问数据栈的栈顶,但是在一个堆栈处理器中,很难区分哪一个是更基本的。

3.MuP21 体系结构

MuP21 是 MISC 系统的第一个成员。设计这个处理器的最初限制是 40 引脚的 DIP 封装以及硅面积小于 100 平方密尔。我们认为在这样的限制下,可以实现一个 20 位的微处理器,没有足够的 I/O 引脚支持更多的地址和数据线。

MuP21 必须使用 DRAM 作为它的原始存储器,因为 DRAM 提供了最好的位密度和最低的位价格。但是必须用 ROM 或者其它 8 位存储器来引导,还必须寻址不同的 I/O 设备。因此,我们需要一个存储器协处理器来处理总线并为存储器和 I/O 设备产生适当的控制信号。

MuP21 有一个非常独特的能力,它可以产生 NTSC 信号以驱动一个彩色电视机的监控器,因为这个芯片的目标是那些以电视为主要显示设备的应用。一个视频协处理器与主处理器并行工作,后者用来显示存储在主 DRAM 中的帧。

MuP21 的主处理器包括了以下的组件:

•  一个返回栈用于嵌套子程序返回地址;

•  一个数据栈在子程序之间传递参数;

•  一个 T(TOP) 寄存器用于保存栈顶元素;

•  一个 ALU 从 T 寄存器和数据栈栈顶得到操作数,并将结果写入 T 寄存器;

•  一个 A( 地址寄存器 ) 用于保存访问存储器数据的地址;

•  一个 PC( 程序计数器)保存下一个指令的地址;

•  一个指令锁存器保存顺序执行的 4 个 5 位指令;

存储器和数据总线的宽度都是 20 位,指令宽度是 5 位。这样 4 个指令可以打包到一个 20 位的存储器字中。这是一个天然的流水线。当 4 个指令执行之后,慢速的外部存储器已经准备好提供接下来的 4 个指令了。这样处理器可以比存储器速度快四倍,高速的 CACHE 以及相应的控制电路就不需要了。

由于采用了简单的指令集和双堆栈的体系结构, MuP21 的执行速度非常快。 ALU 指令的执行速度极快:从栈顶和 T 寄存器得到操作数,结果返回到 T 寄存器,不需要对源和目的寄存器进行解码。实际上, ALU 是连续操作的,一但 T 寄存器和数据栈顶稳定, ALU 就自然地从 COM 、 SHL SHR XOR AND ADD 和条件 ADD 中产生结果,而ALU 指令仅仅需要从这些输出中选择结果送回到 T 寄存器中。

MuP21 处理器的操作可以归纳成二步:

•  从存储器中读入 20 位的字,并锁存到指令锁存器中;

•  执行 5 位指令并将结果存入 T 寄存器中;

我们可以看到, MuP21 比 RISC 更快,因为 RISC 为了执行一条指令需要下列步骤:

•  从存储器读入指令并锁存;

•  对指令译码并选择操作数寄存器;

•  执行指令;

•  把结果写回到选定的目的寄存器;

基于堆栈的处理器比基于寄存器的处理器更有优势,因为源操作数和目的操作数都是由硬件定义的,不需要译码。

MuP21 以每个指令 10ns 的速度执行,峰值执行速度为 100MIPS 。得到这样引人注目的性能主要是因为简单性和 MISC 指令集,仅仅采用了 1.2um CMOS 工艺。访问低速的 DRAM 将使它的速度降低到 80MIPS.

4. 视频协处理器

MuP21 有一个与主处理器并行运行的协处理器。与主处理器类似,视频协处理器从 DRAM 中读出一个 20 位的字并作为 4 个 5 位的指令来解释。然后,视频协处理器指令改变 VIDEO 输出引脚上的电压以产生适合电视机的 NTSC 彩色信号。

为保证视频输出的精确定时,视频处理器被同步到 14.93MHz 的外部时钟上。当它需要从 DRAM 存储器读出一个新字时,它总是可以没有延时地通过存储器协处理器立即得到。因为视频协处理器比主 CPU 的优先级高,存储器协处理器总是尽可能满足它的请求。在视频协处理器从 DRAM 中取出一个字之后和在读取下一个字之前,将执行 4 条指令。在此期间,主 CPU 可以向存储器协处理器请求存储器访问。因此,一但运行视频协处理器,它就会消耗 25% 的 MuP21 带宽。

图 视频协处理器的指令集如下:

当 5 位视频指令的最高有效位置 1 时,该指令引起视频信号发生器产生特殊动作。当该位为 0 时。另外的 4 位指示一个像素的颜色。这些位的格式是: 0 I R G B ,这里 R G B 分别表示红、绿、兰, I 表示亮度。

首先使用视频指令在 DRAM 中构造视频帧,当把配置寄存器的最低有效位置 1 之后,视频协处理器运行并依次读取指令执行,结果是在 VIDEO 端口引脚上输出连续的模拟信号流。当这些引脚连接到视频监视器的输入时,就会在监视器上形成图像。主处理器可以改变视频帧的像素指令,以动态地改变图像。

因为视频帧完全是在 DRAM 存储器中构建的,它就很容易产生 NTSC 格式和 PAL 格式。这个特点使 MuP21 成为一个强大的和通用的 TV 信号产生器,可以很好地适应那些需要视频输出的应用。

5. 存储器协处理器

MuP21 的存储器协处理器是用户不可见的,它在后台执行以下任务:

a. 仲裁视频协处理器和主处理器的 DRAM 访问请求,来自视频协处理器的请求比主 CPU 有更高的优先级;

b. 它为 DRAM SRAM 存储器产生适当的控制信号,为 I/O 设备产生使能信号。一个 DRAM RAS 周期是 50ns , SRAM 和 I/O 有两种访问速度:慢速的是 250ns ,快速的是 15ns. 存储器协处理器允许 MuP21 在不增加接口电路的情况下与各种存储器和 I/O 器件相连。

c. 它控制存储器和 I/O 设备的地址复用。当访问 DRAM 存储器时, 20 位地址在 A0-A9 引脚上复用,数据总线包括 D0-D9 和 AD10-AD19 。在 BOOT 期间访问 SRAM 时,地址总线包括 A0-A9 和 AD10-AD19 ,同时 8 位数据线是 D0-D7 。当访问 I/O 设备时,地址是 A0-A9 ,数据在 D0-D9 和 AD0-AD19.

存储器和 I/O 设备的访问是由地址线和配置寄存器的 2 个位来控制的。存储器和 I/O 设备映射为:

MuP21 内部包含 21 位的地址数据总线。最高有效位 BIT20 是 ALU 操作的进位位,当它为低的时候选择 DRAM 存储器,为高的时候选择 SRAM 或者 I/O 。根据上面的存储器映射, MuP21 只能直接访问 256K 字节的 SRAM 。然而,配置寄存器的 18-19 位在读写 SRAM 时强制置位,这种分页机制使 MuP21 可以直接访问 1MB 的外部 SRAM.

6. 应用

MuP21 由于极快的速度和巨大的寻址空间而成为一个功能强大的处理器,而它的功耗却非常小,所以特别适合于那些把高速度、低功耗和大寻址空间作为重要因素的应用中。以下是 MuP21 潜在的应用

先进的视频游戏

电视信号

视频测试模式发生器

CAD 设计系统

电话交换系统

手提电脑

高速通信系统

智能硬盘控制器

机器人控制

7. 结论

MuP21 是基于 MISC 原理的微处理器家族的第一个成员,它证明了 RISC 体系结构仍有发展的空间。通过强调指令的最小,微处理器可以更加简化而性能得以提高。我们惊奇地看到,使用已经过时的 1.2um CMOS 工艺, MuP21 的峰值速度可以达到 100MIPS ,使用更先进的 0.8um 工艺, MuP21 可以达到 200MIPS 。使用 0.5um 工艺,可以毫不费力达到 300MIPS 。

MuP21 由于 40 DIP 引脚封装限制,只是一个 20 位的处理器。使用更多引脚的封装方式,设计可以简单地扩展到 32 位以上。更宽的地址和数据总线将增加吞吐量,并为处理大量数据提供更大的寻址空间 -- 这是 MISC 体系结构的另一个发展方向。

使用一个更简单和更有效的体系结构, MISC 处理器在制造时可以占用更小的硅面积,比复杂的 RISC 和 CISC 取得更大的收益。运行在同等的速度下, MISC 也消耗更少的电能, MISC 处理器可以比 RISC 和 CISC 更加便宜,以更好的性能 / 价格比与它们竞争。

Forth 芯片 相关文章

堆栈计算机的原理和实现

 

 
   

(C) ForthChina.com 版权所有 2004-2010
Email:forthchina@163.com