完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
1. 时序逻辑
布尔芯片和算数芯片都是组合芯片,组合芯片计算那些"输出结果仅依赖于其输入变量的排列组合"的函数,这些相关的简单的芯片提供很多重要的功能(像ALU那样),但是他们不能维持自身的状态; 计算机不仅要能计算值,而且还要存取数据,因而这些芯片还必须配置记忆单元来保存数据,这些记忆单元是由时序芯片组成的; 记忆单元的实现设计到同步,时钟和反馈回路,其中大部分能被封装到称为触发器的底层时序门中; 2. 基本构建 记住一些东西这个行为本质上是具有时间依赖性的 现在记住的东西一定是之前的记忆,因此为了构建能够记忆信息的芯片,必须要有标准的方法来表示时间的进程 2.1 时钟 在大多数计算机里,时间的流逝是用主时钟(master clock)来表示的,它提供连续的交变信号序列。其精确的硬件实现通常基于振荡器(oscillator); 主时钟在两个信号值0-1(低电平-高电平)之间交替变化,两个相邻的上升沿之间的时间间隙称为时钟的周期(cycle),每个时钟周期模塑一个离散时间单元;通过使用硬件电路,这个信号同时被传送到计算机平台的每个时序芯片中 对于上面的not门是组合芯片,时间t的输出是对时间t的输入的响应:out[t] = function(in[t]) 而对于顺序芯片来说我们希望时间t的输出取决于时间t-1的输入out[t] = function(in[t-1]) 2.2 触发器 计算机里最基本的时序单元是触发器,它有几个种变体,例如数据触发器(DFF)的变体
和Nand门一样,DFF门在计算机体系中非常底层,可以说,计算机中的所有时序芯片(寄存器,内存,计数器)都基于大量的DFF门; 所有的这些DFF门都连接同一个主时钟,形成巨大的分布式合唱阵容(计算机系统中的所有时序芯片都在主时钟频率这个总指挥的协调统一下共同工作); 在每个时钟周期的起始点,计算机所有DFF的输出都要被赋予他们上个时钟周期的输入,在其他时间,DFF被锁存,这意味着他们的输入将暂时不会影响他们的输出,这个传导性操作将影响到组成系统的上百万个DFF门,大约每秒十亿次(依据计算机的时钟频率而定); 通过同时向系统中所有DFF提供统一的主时钟信号来实现计算机硬件对时间的相关性; 如何实现一个触发器: SR锁存器为什么可以实现存储的功能? 如何理解RS触发器?在或非门构成的RS触发器中,为什么R和S都是0的时候触发器状态不变? 触发器是所有计算机硬件维持自身状态的基础,从二进制单元到寄存器到RAM皆是如此 左边或非门的输出是右边或非门的输入,右边或非门的输出是左边或非门的输入(或非门:只要有一个输入为1输出就为0) 一开始,只有左边或非门的输出有电流,因为它的两个输入均为 0。 现在闭合上面的开关,左边或非门的输出变为 0,于是右边或非门的输出变为1,灯泡点亮: 当你断开上面的开关时,由于或非门的输入中只要有一个为 1,其输出就是 0,因而左边或非门的输出不变,灯泡仍然亮着 现在闭合下面的开关。由于右边或非门的输入中有一个是 1,则其输出变为0,灯泡熄灭。 左边或非门的输出此刻变为1 再断开下面的开关,灯泡仍旧不亮: 电路的奇特之处是:有时当两个开关都断开时,灯泡亮着;而有时,当两个开关都断开 时,灯泡却不亮。当两个开关都断开时,电路有两个稳定状态,这样的一个电路称为触发器。 触发器电路可以保持信息,换句话说,它有记忆性。它可以“记住”最近一次是哪个开 关先闭合的。如果你遇到这样一个触发器,它的灯泡亮着时,你可以确定最近闭合的是上面 的开关;而灯泡灭着时则是下面的开关。 触发器和跷跷板很像。跷跷板有两个稳定状态,它不会长期停留在不稳定的中间位置。 你只要一看跷跷板就知道哪边是最近被压下来的 触发器赋予电路记忆,使其知道以前曾有过的状态,触发器有很多种,刚才所看到的是最简单的一种,称为 R - S(或 Reset - Set,复位/置位) 触发器。下面以对称的方式把它重新绘出来:
2.3 寄存器 寄存器是具有记忆功能的设备,它能够储存(记忆)某一时刻的值,实现经典的存储行为out(t)=out(t-1) DFF仅能够输出它前一时钟周期的输入,也就是out(t) = in(t-1),可以通过DFF来实现寄存器,只需将后面的输出反馈到它的输入就可以了,如此一来,在任何时刻t,这个设备的输出都会重现它在时刻t-1的值 为了实现这个,我们需要做到两点
一旦实现了保存1比特位的基本机制,就可以轻松地构建任意位宽的寄存器,这可以通过由多个1比特位寄存器构成的阵列来实现,以构建可保存多比特位值的寄存器,此类寄存器的基本设计参数是它的宽度,即它所保存比特位的数量—比如16,32或64,此类寄存器的多位容量通常用字(word)来表示 下图考虑时钟信号的输入 DFF:存储并输出一个比特,但只有当时钟信号从0变为1时才改变输出的比特
2.4 内存 一旦具备了表示字的基本能力,就可以构建任意长度的存储块了 可以通过将很多寄存器堆叠起来形成随机存取RAM单元来实现,在RAM上能够随机访问被选择的字而不会受限于访问顺序,也就是说,我们要求内存中的任何字(无论具体物理位置在哪里)都能以相等的速度被直接访问 典型的RAM设备接收三种输入:数据输入、地址输入和加载位
输入
2.5 计数器 计数器是一种时序芯片,它的状态是整数,每经过一个时间周期该整数就增加1个单位,执行函数out(t)=out(t-1)+c。 计数器在数字系统中担当非常重要的角色,比如,典型的CPU包括一个程序计数器,它的输出就是当前程序中下一步将要执行的指令地址 计数器芯片可以通过将标准的寄存器的输入/输出逻辑和附加的常数组合逻辑相结合来实现,一般来说,计数器必须配一些附加的功能块,比如将技术置零,加载新的计数值,或者使用减操作取代增操作; 图中的nand和inv是为了生成一个“1”使能位 |
||
|
||
只有小组成员才能发言,加入小组>>
4508个成员聚集在这个小组
加入小组3334 浏览 0 评论
航顺(HK)联合电子发烧友推出“近距离体验高性能Cortex-M3,免费申请价值288元评估板
4262 浏览 1 评论
4289 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 13:18 , Processed in 0.648335 second(s), Total 74, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号