异步低功耗80C51单片机外文翻译资料

 2022-09-01 17:53:53

英语原文共 12 页,剩余内容已隐藏,支付完成后下载完整资料


异步低功耗80C51单片机

Hans van Gageldo Kees van Berkel, Ad Peeters

埃因霍芬理工大学 飞利浦研究实验室

埃因霍芬,荷兰 埃因霍芬, 荷兰

hansg@win.tue.nl berkel,apeeters@natlab.research.philips.com

Daniel Baumann, Daniel Gloor, Gerhard Stegmann

飞利浦半导体

苏黎世,瑞士

摘 要

本文介绍了80C51单片机的异步低功耗实现。它是在一个0.5mu;的CMOS工艺上实现的,在同样的科技水平下,相比同步执行,它在四个方面有着有力的优势。该芯片是与同步执行完全兼容位兼容,并定时访问外部存储器。

该电路是一个已编译的VLSI程序,使用Tangram作为VLSI的编程语言和Tangram工具集自动编译设计一个标准单元的网表。这种设计方法被证明了足够强大去描述单片机,并且可以得出一个有效的执行。此外,它提供了设计者去探索设计空间的各种替代方案的可能性。

1引言

VLSI电路的功耗变得越来越重要,特别是对于电池供电的应用。对于这些应用,具有较低的功耗可以使电池寿命更长。事实上低功耗还有更多的优点,例如:较便宜的IC封装,发热少的生产过程,还可以减少电磁辐射。

异步CMOS电路具有非常低的功耗,因为它们只在需要的时候消耗。另一方面,在门级来设计这些异步电路是相当困难的。因此,在飞利浦研究实验室,一个高层次的语言,Tangram,被定义了。一个Tangram程序可以自动使用所谓握手电路作为中间架构编译成门级网表,[8]。握手电路是由一组使用握手信令通信的30个基本元件组成。工具提供关于握手电路级电路的绩效反馈,从而使快速的设计周期成为可能。

在过去,Tangram编译电路的功耗优势已经在一个DCC播放器[9,10]的误差校正和寻呼机译码器[5]的待机电路上得到了论证。提高20%的开销成本,对DCC误差校正达到五倍功效,作为其同步的对应。

在本文中,我们表明,Tangram有足够的表达能力来设计一般单片机内核,并且它可以获得高效的实现。为此,我们采取了80C51单片机作为一个例子。它是一个应用在许多(嵌入)的应用中的8位单片机。它的指令集允许通用可编程性。

VLSI的编程是与传统意义上的编程不同。不仅仅是功能,而且还有定时,功耗,面积和可测试性,在设计一个VLSI程序时发挥着作用。一个VLSI程序到一个网表的透明汇编使得在Tangram水平上推理电路特性成为可能。握手电路级的性能分析器提供给程序员有关Tangram文本本身的反馈。转化Tangram程序可导致一个有相同功能,但区域,速度和能耗特性不同的电路。

在全球单片机市场,8位单片机占有相当大的份额:1995年全球共生产8位单片机1200多万台[1]。在订购数量巨大时,一些8位单片机的成本低于$1。单片机在许多产品中,例如录像机和电视机,手持电话和寻呼机的便携式应用中特别广泛。尤其是对于便携式产品,能耗是一个重要问题。

大多数飞利浦半导体的8位单片机是基于流行的80C51架构。这种架构起源于英特尔,自推出以来,已经由不同厂商生产出许多衍生物。

2低功耗来临的机遇

图1:80C51单片机的全局结构

80C51单片机的全局结构由CPU和外设[2]组成。图1给出了单片机和各个模块之间的连接的一个抽象的视图。CPU参与取址,译码并执行指令。外围设备包括定时器,中断控制器(INTR),端口逻辑块(I/O),以及一个模式块(MODE),它确定系统是否处于运行,空闲或睡眠模式。振荡器(OSC)和上电复位信号(POR)是外部信号模式块。内置有程序ROM和数据RAM。外部存储器可以通过端口逻辑被访问。

2.1指令集

设置80C51的指令包含255条指令,支持各种寻址模式。它可以被认为是一个复杂指令集,因此,80C51可以被分类为是CISC(复杂指令集计算机)。该指令集被分成五类:算术,逻辑,数据传送,布尔和跳转指令。此外,有六个寻址模式,例如直接寻址和间接寻址。某些指令直接访问寄存器(如指令操作码的编码)。指令也可以使用即时的常量。80C51是一个通用寄存器架构[4]。

图2:同步80C51的体系结构。

完整指令集表在表1中给出。在此表中,行表示四个标志位指令操作码,而列表示最后一个标志位。因此,PiZj的指令具有十六进制码i,j。列Z8到ZF组合成一列,因为这些指令只在最后三位不相同,这在寄存器组指定寄存器不同。类似的去操作列6和7:最后一个比特位指示间接地址是否在寄存器0或1。请注意,只有一个在矩阵(PA Z5)项不包含指令。指令的编码长度可变,可以使用一个,两个或三个字节。

2.2同步架构

80C51 CPU的同步执行围绕IB总线建立,它充当任何两个寄存器[2]之间的通信信道。ALU还输出到总线上。特殊功能寄存器(SFR)是照顾CPU和外设之间通讯的寄存器;它可以是状态寄存器和数据寄存器。例如,计时器和中断寄存器是SFR寻址空间的一部分。它有用于传送和接收的4个双向端口。同步架构见图2。

表1:80C51指令集

表2:指令执行方案

每个指令在一个,两个或四个机器周期执行。乘法和除法指令(MUL和DIV)只在4个机器周期执行。每个机器周期被划分成6段,在每个时段中,一些通信或计算动作发生。每个时段在一个时钟周期中执行[2]。因此,6 MHz的内部时钟频率性能将远低于1 MIPS(每秒百万指令)。

在执行方案的每个时段,有具体行动(数据通讯或ALU操作)发生。执行方案的设计中,每个指令执行适合这种方案,如表2所示。单周期指令执行第一个机器周期C1这样的方式,而双周期指令执行C1和C2连续的方式。指令执行过程中会造成大量的冗余行动是因为不是所有的操作都只需要一个指令。

总之,80C51指令集的CISC特性:

  • 不同的寻址模式;
  • 指令代码的可变长度;
  • 非均匀寄存器结构;
  • 执行指令的时钟周期的数目可变。

通常情况下,RISC处理器用一个加载存储体系结构,如DLX [4],有固定长度指令编码,均匀的寄存器结构(结构是围绕一个寄存器文件建立),和固定数目的时钟周期来执行指令。RISC处理器寻址是基于寄存器的文件。在RISC指令执行中,不同的步骤使用处理器的数据路径的更多或更少的独立的部分,这可能造成重叠的指令的执行,例如流水线的实施。80C51的CISC架构中,每个指令执行使用总线的时段,意味着指令执行的顺序性。

2.3电源观测

当我们在仔细考虑同步架构与功耗的观点时,大家注意以下事项:

1.IB-总线具有在同步体系结构的核心的作用。因为每个寄存器连接到总线上,它具有很高的容性负载。在指令执行的每个时隙,是总线切换的导线的平均一半。作为总线在执行计划的每个时隙所使用的,总线将切换6或12次,用于传输不相关的数据。

2.一些同步80C51实现的数据通路是基于触发器在寄存器中的每一位。有时有可能重新安排计算流,使用单一的锁存器,而不是触发器。

3.时钟能同步执行所有寄存器(触发器或锁存器),除非这些寄存器是时钟门控。指令执行的顺序性使得时钟有必要在每个指令产生至少6个,有时12个标记。当所有的寄存器以这样的速度主频,许多寄存器时钟的刻度是多余的。出于这个原因,一些同步执行可实现多个时钟域。

4.符合国家编码紧凑型组合的集中控制意味着控制电路具有高开关活动。

5.对于外设我们观察到,它们的开关活性比时钟频率低很多。例如一个计时器,CPU处于运行模式时,执行指令计数:它不需要被时钟频率触发。此外,外设的活性一般是不规则的。中断控制器就是一个很好的例子:只在发生中断时,它可以是一个罕见的事件甚至不用立刻激活。

6.空闲模式是在同步执行一个特殊的省电模式。它断开CPU的时钟,但有些外设仍在计时,以便对一个中断立即响应。附加掉电模式运行,振荡器停振,但结果是,它需要很长的时间(几毫秒),以重新启动系统。

在下一节中,我们将展示如何设计一个VLSI的程序去描述80C51单片机。第4节介绍了如何利用异步以节省能耗。

3 VLSI编程

Tangram,就像其他高层次的编程语言,被证明是足够描述80C51单片机的完整功能的。VLSI编程提供技术来探索,以搜索一个解决方案,在面积和性能方面可接受的设计空间。本节将展示其中的一些技术。对于我们的异步执行80C51的一个重要限制是它必须在外部存储器访问时,与同步版本位兼容和定时兼容。类似的约束在设计Amulet2e,一个异步执行ARM微处理器[3]的设计过程中得到了处理。

3.1全局结构和CPU

Tangram程序被写入如图1的80C51系统中的每个块,,除了集成在CPU中的模式块。Tangram程序并行执行并在必要时彼此通信。该通信本质上实现了图(图1)中的箭头所示。

在本节中,我们观察取得并执行指令的80C51的CPU的VLSI编程。我们取指令集的表,如上一节中所介绍,作为起点。

在执行指令之前,必须有一个检查,看看是否发生了异常。这些异常可分为两类:中断和特殊情况。特殊情况的例子是复位,上电复位,掉电和空闲模式。

Tangram程序的CPU的主循环的形式如图3。

图3:Tangram程序CPU的主循环

如果没有发生特别情况或中断,CPU可以进行读取和执行下一条指令的片段作为表示:

FetchOp() ; Execute()

取指令涉及发送一个地址到程序存储器,接到相应的指令操作码,递增程序计数器:

ROMaddr!pc

; ROMdata?ir || pcInc()

VLSI项目更有趣的部分是程序执行。它解码指令操作码,存储在寄存器,并执行与该指令有关的语句。

我们可以采取指令集的部分规律进行解码。例如列Z8到ZF,每一行具有相同的指令,仅操作数Rn的指数不同。类似的去操作列6和7。看到该指令矩阵左边,不规则增加。这些观察导致了先解码列指令,在这之后,我们可以行解码,以确定要执行的指令。解码指令的操作码可以直接使用Tangram case语句来实现。

我们可以利用更多指令集的规律性。当我们在指令集看一看行,我们看到,在表的右手侧,每个行只包含一个具有多种操作数的指令。例如,在第一行中,我们有INC指令,第二行中的DEC指令等等。这种“规律”的部分有如下结构:

ReadOperands()

; Operation()

; WriteResult()

在一般情况下,过程ReadOperands()收集来自寄存器的操作数并将它们存储在寄存器T1和T2。过程Operation()执行该指令(例如增量或附加)相关联的操作,WriteResult()将结果存储在目的寄存器。此方案可被实现在表3中的右手侧的指令集的常规部分。

表中的左手侧包含不能被以直接的方式组合在一起的指令,因此被认为是指令集的不规则部分。

要确定指令操作码是否属于正常或不正常的指令集的部分,我们定义一个布尔b,可以表示为八个位的功能。执行指令,然后由Tangram片段表达:

if b

then Regular()

else Irregular()

fi

表3:80C51指令集中正常(右)和不规则(左)的一部分

3.2外设接口

CPU和外设之间的接口是使用握手通道来实现的。图1中的各块应自主地运行,并且应该仅在必要时发生通信。 CPU在网络的中心,与外围设备通过读取和写入特殊功能寄存器(SFR)进行通信。 SFR空间由包含所有正常工作的外设信息的控制寄存器和数据寄存器组成。访问SFR的主动权主要在于CPU;在CPU上执行的程序确定SFR有什么被读取或写入。

外围的Tangram程序包含在外设的特殊功能寄存器。指示哪个SFR的CPU要访问以及CPU是否要读取或写出来,一个额外的通道编码被介绍。

假设我们有两个SFR(F0和F1),都可以读出,并且由CPU写入外围。下面的Tangram程序表示了SFR的读写:

forever

do code?lt;lt;b0,b1gt;gt;

; case lt;lt;b0,b1gt;gt;

is lt;lt;0,0gt;gt; then SAB?F0 ; SA

or lt;lt;1,0gt;gt; then SAB?F1 ;

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[147692],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。