指令集Instruction

COD: Introduction to Synchronous Digital Systems
J. Wawrzynek
October 8, 2007声索国
Reading:P&H, Appendix B
1 指令集Instruction Set Architecture
到目前为止,我们主要学习的是下面的重要思想. 高级语言(如C或C++)编写的程序转换为一系列汇编语言指令,然后这些指令转换成一些机器指令.
C 语言语句/数据结构
汇编语言描写的CPU指令 (with memory references)
机器语言二进制机器指令
这些指令如何执行的?机器指令会出现什么?一种做法是将指令指令读入仿真器(如MARS或 SPIM). 但更多的时候,我们对指令如何在实际的硬件中执行更有兴趣,硬件如何执行指令。这是下半学期的主题.
处理器可以执行的指令及处理器状态(用户可见的寄存器)的描述,称为指令集(ISA).
软件
Instruction Set Architecture
硬件
这是一种有利于软件的硬件抽象.准确的说是软件硬件之间的双向协议.
硬件承诺它将严格实现ISA,而软件承诺它将只做ISA支持的操作。
软件设计师可以编写操作系统、编译器及应用程序,而不必耽心其软件在新的硬件上不能运行。同样,软件不知道硬件如何实现ISA。因此,硬件设计师可以按自己的认为合适的方式自由设计并优化
处理器的实现。处理器可根据最新的技术进行裁剪,或者适应某种专门的市场需求 (如某种价格或者性能),只要设计严格实现ISA的要求,随着新的、更高级的实现的出现,所有的旧程序及操作系统应都能工作。
ISA是一种抽象,并不指定指令执行实现的细节。其结果是有多种方式来设计处理器。我们将学习处理器设计的一些基本概念.
2 物理硬件
首先,我们来看一下微处理器的图,这是几年前的图,但同样可以代表当今的处理器.
这个处理器是powerPC (和苹果电脑中的处理器相似).当然,大多数处理都和上图相似,甚至是不同指令集的处理器,如MIPS.
请注意图中标记的各种块.后面我们将讨论.下面是该处理器的特征:
.“超标量 (3 instructions/cycle)”
.6个执行单元(2个整数1个双精度IEEE浮点)
.32K字节指令和32K字节数据L1 caches
.带有翻译查缓冲区(TLB)的双内存管理单元 (MMU)
.带有集成控制器和CACHE标记的外部二级缓存接口,最多支持1M二级外部缓存
从上图中,我们可以看到各种子模块的相对复杂性
在集成电路的设计中,面积=价格. 面积大的芯片比面积小的芯片要贵很多,设计师努力使每个功能尽量小,而又不损害总体性能。
如果用显微镜进行放大,每一小块都和其他相像,因为所有都是由同样的基本组件构成,晶体管和连
线.(事实上,我们称其为“集成电路”的原因是他们将多个晶体管和必要的连线连接在一起。早期的芯片只有一两个晶体管而没有连线。当今最新的IC技术晶体管数多达1千万到1亿个).我们不打算学习晶体管工作的细节。只要知道,少量晶体管放在一起产生简单功能块,这些功能块合在一起产生更大的功能块就够了。我们将停留在最简单的功能块逻辑门和翻转器下面是一个简单单元的例子。我们将只讨论右边的表示,而不是晶体管细节.
环绕在芯片内部核心之外的是一组通向外部世界的连线。通常,他们会通过一些在塑料或者陶瓷封装下的线连到印刷电路板(PCB).对于大多数计算机来说,这些PCB就是主板。其中一些连线会连到内存和系统总线。相当数量针会连到电源。电源将墙上插头中的220V交流电压转换成直流低电压(通常是1到5伏)。直流电压是相对于地的。电源连接到芯片的电压有两种类型,其一是GND地,其二
是直流电源DC(标记为“Vdd”).
由电源提供的能量驱动处理器运转。能量用于将电流从电路的一处运往另一处,在此过程中以热的形式进行扩散。今天的处理器通常使用10W,和不很亮的灯光相似.
3 信号和波形
另一个连接芯片的是时钟输入信号。时钟信号在主板上产生并发送到芯片上,然后分布到处理器内部线路。时钟信号是系统的心跳。它控制整个处理器及其外的内存和系统总线电流流动(及相关信息)的时间.如果有非常小的探针,我们可以通过查看连线上的电压观察时钟线上的信号。我们能看到振动,因为时钟信号以极高的频率振动(约每秒10亿或1GHz).如果能记录到极短时间的信号,并记录下来,其结果将如下所示:
注意, 时钟信号非常规则.它就是重复的“方波”.一个时钟周期(一次心跳tick),就是从方
波中某个位置开始到下一个波形同样位置的时间.本学期,我们将总是测量从信号的上升沿到下一个上升沿.(上升和下降沿的观点来源于,想像信号始于低电压,然后升到高电压,停在那里半个周期,然后降到低电压,然后再停半个周期等等) 正如我们以后将看到的,时钟信号是非常重要的信号并将出现在所有同步数字系统中。
沉沦堕落如果用显微镜继续观察,我们可能会寻另一个有趣的位置来放置探针。例如,我们会加法器,毫无疑问,在处理器的某个地方有一两个加法器.假定我们到加法器电路(如何知道它是加法器呢?). 我们可以把记录探针放在其输入上,并会看到如下所示的波形.如果有两个探针,我们可以同时观察两个信号.假定,将探针放到加法器一个输入最低两位。.
从以上的波形记录,我们可以观察到如下现象.
我是凡客1.大多数时间,信号处于以下两种状态: 低电压或高电压.
2.当信号在高低电平时,并不总是在最高或者最低处.
xm2010>祥龙烧星乐园3.电平变化对应于时钟信号的变化(但,电平并不是每个时钟周期都会变).
氯霉素搽剂
下面事实可以解释观察的结果:
1.通常低电压用于表示二进制0,高电压用于表示二进制1.在不同的时间点,加法器的指定位为0,在其他时间其值为1.
2. 构建加法器及其子电路的晶体管电路对于电压的微小波动是鲁棒的.如果信号在高电压附近,其被解释为1,同样如果其在0伏附近,被解释为逻辑0. 因此当信号在电路中传递时误差(或者与理想电压的差别)不会积累.电路具有下列特性,其输入信号可能不理想,即不是正好位于电压最值, 但却能产生极限位置的电压. 这种恢复特性是数字电路的关键特性。
3. 在同步系统中,所有变化都发生在时钟沿上.正如后面我们将看到的,时钟将用于整个系统中以控制信号何时取得新值。
信号线通常会组合在一起,以发送一个字的数据,如下图所示:
图中显示一组4线用于传送4位字. 波形表明导线上信号如何随时间变化.小写字母用于表示每个导线(和信号),而对应的大写字母用于标记一组导线(有时也称为总线).在一个波形上画出总线上的所有信号是困难的,因为,在任何时刻,每个导线都可能有不同的值。如果我们希望表示总线上信号随时间
的变化,可以如图所示进行. 这里,总线信号同时画出高低,并在封闭块中标记上总线在该时候的值.除了总线的值外,上图中的重要信息是信号随时间变化.
4 电路延时
假定有一个电路,对2个4位数进行加运算,如下图所示:

本文发布于:2024-09-25 02:26:30,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/231474.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:信号   处理器   时钟
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议