反相器(非门)(1)
反相器(非门)的作用是什么?
无线电小组的同学们在了解了三极管的开关应用之后,开始进行趣味数字电路的实验与制作。这次活动的内容是采用CMOS六反相器CC4069(图1)组装音频电平指示器及仿警笛发生器电路(图5及图7)。调试成功后,由老师解答了同学们提出的问题,并组织大家进行了讨论。
同学:今天我们头一次使用CC4069六反相器集成电路,请问您反相器电路的主要功能是什么呢?
老师:提起反相器电路,大家其实并不陌生。还记得上次讲过的三极管开关电路(图2)吧?哪个同学说说三极管开关是怎样工作的?
同学:在三极管的基极加上高电位,三极管就饱和,相当于开关的接通,集电极输出为低电位。在三极管的基极加上低电位,三极管就截止,相当于开关的断开,集电极输出为高电位。如果输入的是个正的矩形脉冲,输出就是一个负的矩形脉冲。
老师:对了。不过请大家注意,这种电路中,输出脉冲信号的波形总是跟输入脉冲信号的波形相位相反,所以管它叫反相器。反相器在数字系统中是一种最基本的门电路。今天大家使用的CMOS反相器中,开关器件不是三极管,而是MOS场效应管。
同学:什么是CMOS电路呢?CMOS反相器与三极管反相器在结构上有什么不同呢?
老师:CMOS集成电路又叫互补型场效应管集成电路,它的特点是采用了两种不同导电类型的MOS场效应管,一种是增强型P沟道MOS场效应管(PMOS管),另一种是增强型N沟道MOS场效应管(NMOS管),它们组成了互补结构。在工作中,两个串联的场效应管总是处于一个管子导通,另一个管子截止的状态。CMOS反相器比起三极管反相器要简单得多,现在画出它的电路图(图3),可以看到,VT1是NMOS管,VT2是PMOS管。NMOS管是开关器件,叫输入管。PMOS管取代漏极负载电阻,叫负载管,这种负载称为有源负载。两只管子的栅极连在一起作为反相器的输入端A,漏极也连在一起作为输出端L。负载管的源极接电源正极VDD,输入管的源极接地(VSS端)。当输入信号为低电位0V时,VT1截止,VT2导通,输出为高电位VDD;当输入信号为高电平VDD时,VT1导通,VT2截止,输出为低电位0V。这就实现了输出与输入的反相功能。
同学:您刚才说反相器在数字系统中是一种最基本的门电路。我们很想了解什么是门电路呢?
老师:门电路可以看作是一种条件开关。它有一个或多个输入端和一个输出端。只有当输入信号满足一定的条件时,门才开启,信号才能通过。条件得不到满足,门就关闭,信号就不能通过。换句话说,门电路的输出和输入之间存在着一定的逻辑关系。不同的门电路,输出与输入之间的逻辑关系也不同。
同学:反相器为什么也是一种门电路呢?
老师:反相器是最简单的门电路,它只有一个输入端和一个输出端,输入和输出都只有高电位和低电位(在数字电路中称之为高电平和低电平)两种相反的状态,如果高电平用“1”表示,低电平用“0”表示,反相器输出与输入之间特定的逻辑关系就是“输入为1,则输出为0;输入为0,则输出为1”,输出总是输入的否定,所以反相器称为“非门”。任何一种门电路都可以用逻辑代数式表示输出与输入之间的逻辑关系。如果非门(反相器)的输入逻辑变量为A,输出逻辑变量为L(图4),写成逻辑代数式就是L=A,A读作A反,也就是A为“1”则A为“0”。也可以列成表格(见附表),称为真值表。
同学:在电平指示器电路(图5)中的反相器都是用来控制发光二极管点燃与熄灭的开关吗?
老师:是的。大家可以做一个简单的实验(图6)。在非门的输入端用一个可调稳压电源代替信号源,当输入为低电平“0”状态时,非门关闭,输出为高电平“1”状态,这时发光二极管不亮。当输入电压逐渐增大,达到非门的开门电平,即输入变为高电平“1”状态时,非门开启,输出变为低电平“0”状态,发光二极管被点燃发光。用CC4069的六个非门组成了音频电平指示器电路,哪位同学能分析它的工作原理?
同学:我来试试看。音频功率放大器输出到扬声器的信号电压,同时引到电平指示器输入端的电位器RP上,经RP分压后加到二极管VD1上。当输入信号的幅度逐渐增大到超过VD1的导通电压(约0?6V)时,D1(非门1)的输入端变为高电平“1”,输出端变为低电平“0”,D1开启,VD7发光,其它发光二极管仍不发光。随着输入信号的幅度继续增大,二极管VD2、VD3……依次导通,D2、D3……先后开启,VD8、VD9……逐级点燃。信号幅度大小不同,发光二极管点燃的个数也不同,直观地显示出音频电平的变化情况。
老师:分析得很正确。大家只要把握住非门的逻辑功能,分析由非门组成的各种逻辑电路就比较容易了。
同学:今天组装的仿警笛发生器电路(图7),我们还没分析出来,您能指点一下吗?
老师:这个电路是由三个多谐振荡器组成的。上次大家已经组装过三极管多谐振荡器,哪位同学还能记得多谐振荡器的原理和电路功能?
同学:多谐振荡器是由两个三极管反相器及电阻?电容充放电电路组成的。随着电容器的充电和放电,两只三极管交替地饱和与截止,使两管的集电极周期性地在高电位和低电位之间交替转换,输出连续的矩形脉冲。所以,多谐振荡器是一种矩形脉冲产生电路。
老师:回答得很好。非门(反相器)也是起开关作用的,所以用两个非门外接RC充放电电路也能组成多谐振荡器,现在我们画出它的电原理图(图8)。当电源接通瞬间,如果D1的输入端A点为低电平“0”,则D1的输出端B点为高电平“1”,经D2反相,其输出端E点为低电平“0”,电路处于暂稳状态。下一步请同学们继续分析。
同学:根据您上次讲过的脉冲电路的分析方法,由于电路中有电容C,而B点为高电平,E点为低电平,所以将有一个充电电流由B点经过R2向电容C充电。随着充电过程的进行,D点电位逐渐升高,A点电位也随之上升,经过一定的时间,UA达到非门的开门电平UTR时,D1的输出变成低电平“0”,D2的输出变成高电平“1”。
老师:是这样。电路状态翻转后,B点变成低电平,E点变成高电平,这时候,电容器C就要通过R2放电,然后再反方向充电,使D1输入端A点电位逐渐下降,直到UA<UTR时,电路状态又发生翻转,回到起始的暂稳状态。这以后电路不断重复以上的过程,产生周期性的振荡,在E点输出连续的矩形脉冲。
同学:既然是振荡器,电路的振荡频率由什么决定呢?
老师:振荡频率主要由电阻R2和电容C的大小决定,与电阻R1也有一定关系。如果取R1=2R2(图8),振荡频率近似为f=1/(1?5R2C)
同学:这种多谐振荡器也可以直接带动发光二极管闪光吗?
老师:可以直接带动一个发光二极管闪光(图8虚线支路)。
同学:现在我对由非门组成的多谐振荡器的工作原理已经清楚了。在仿警笛发生器电路(图7)里,三个多谐振荡器的振荡频率我分别计算了一下,左边的约为2Hz,右上边的为1kHz,右下边的约为330Hz,您看对吗?
老师:你计算的结果都对。由D3与D4组成的振荡器频率比较高,D5与D6组成的振荡器频率比较低,如果它们交替地工作去推动扬声器,就会发出“嘀—、嘟—”模拟警笛的双声音响。我再问问你们,由D1和D2组成的超低频振荡器在电路里起什么作用呢?
同学:从电路图(图7)上看,D1的输出端B通过二极管VD1接高音振荡器,D2的输出端E通过二极管VD2接低音振荡器。D1和D2组成的2Hz超低频振荡器在振荡时,B点和E点在低电平和高电平之间交替转换,0?5s转换一次。当B点为低电平时,E点肯定是高电平,这时VD1导通,D3的输入端被钳位在低电平上,高音振荡器不能启振;VD2截止,低音振荡器开始振荡。当B点变为高电平时,E点变为低电平,VD1截止,高音振荡器工作;VD2导通,低音振荡器停振。这样,超低频振荡器控制高、低音两个振荡器交替工作,使扬声器发出“嘀—、嘟—”仿警笛声响。
老师:很好。你们只要肯动脑筋,不断学习和实践,就能逐步掌握脉冲数字电路的分析方法。大家还有什么问题吗?
同学:请问您非门多谐振荡器(图8)的电阻R1起什么作用呢?
老师:R1叫补偿电阻,它是用来改善由于电源电压波动所引起的振荡频率的不稳定。在对频率稳定度要求不高的场合,R1也可以不用。我再给大家画一个简单电子门铃电路(图9),有兴趣的同学可以自己分析与制作。
时延方法(1)LIFO(1)数据中心(54)FIFO(41)以太网(402)
时延是数据中心以太网的一个关键性能指标。这是因为在高频率金融交易(HFT)、高性能计算(HPC)和类似的性能敏感型环境中,超低时延10GbE交换功能是处理巨大网络流量的关键,这常常意味着每天上百万次的交易。电子交易中价格和交易数据速率的不断攀升以及保持竞争力的需求推动着金融市场股东们投资最新技术,以便支持螺旋式上升的带宽要求,并降低数据流时延。
因此,现在时延测量已经成为数据中心以太网交换机供应商测试报告的一个重要部分。在评估这些系统所用的交换IC时,设计师需要明白时延测量方法有好多种,采用不正确的方法可能是一种错误,因为有些方法并不能测出真实性能。
近来在测试中使用的其中一些测量方法使得LAN交换芯片供应商声称具有超低时延。这是怎么做到的呢?使用末位进、首位出(LIFO)方法,存储转发交换机确实可以报告亚微秒的时延。然而,这不符合RFC1242,该文档建议优先采用首位进到首位出(FIFO)方法:‘理想情况下所有设备的测量都应从帧前导位之后的第一个实际位开始。’这种方法能够更精确地测量数据包穿透交换机时遇到的任何存储或处理时间。
交换机架构和时延
2006年推出的第一台低时延10GbE交换机使用直通工作模式取得了十分优异的时延性能,这种模式下交换机可以在帧被完整接收之前就开始发送。而存储转发交换机不能取得低时延,这是因为数据包在从出口发送出去之前必须完全存储在内存中。但并不是所有直通交换机都有相同的时延性能,因为它们采用的交换架构有很大的区别。
存储器存取带宽一直是交换芯片架构师心头的痛。在使用传统的交叉开关矩阵和内存设计时,将没有足够的片上带宽允许每个输入端口同时写入相同的输出队列。为了解决这种阻塞问题,芯片架构可以在每个交换输入端使用虚拟输出队列,即所谓的组合式输入/输出队列(CIQQ)架构(图1)。
图1 组合式输入/输出队列(CIQQ)架构
虚拟输出队列可以在每个输入端口为每个交换输出端口(出口)提供一个队列。如果某个特定的出口队列临时受阻,那么与之对应的入口队列将实行流控,而以其它出口为目的地的数据包可以避过这个受阻队列,将数据发送给其它无阻塞的出口。然而,对于一个N端口交换机而言,这意味着N*N输入队列和关联调度器,从而增加了很大的复杂性。同时还会增加数据包时延,因为每个数据包通过交换机时必须排队两次。鉴于VOQ和关联调度器的复杂性,许多交换机设计通过一定程度的内部阻塞来降低复杂性,这将进一步增加时延。
新的共享式内存交换技术第一次通过SRAM IP实现性能提升,使交换机能够支持具有特别低时延、完全无阻塞输出排队、共享的内存架构,见图2。通过使用专有的高带宽内存结构,交换架构可以做得更简单,进而消除入口VoQ的复杂性和所需的额外内存。另外,组播数据包只需存储一次,从而进一步降低了对片上内存的要求。由于只有一次内存入队/出队和非常低的内部阻塞,因此这种技术可以提供最低的时延。
图2 具有特别低时延的输出排队、共享内存架构
时延方法(1)LIFO(1)数据中心(54)FIFO(41)以太网(402) 时延测量方法
测量通过交换机的时延有多种方法:首位进到末位出(FILO)、末位进到首位出(LIFO)、首位进到首位出(FIFO)和末位进到末位出(LILO)。每种方法的时延测量都是在交换机入口和出口进行的。
这种方法测量的是交换机的时延加上数据包从出口发送出来的时间。虽然这种方法对于服务器群集中的应用到应用时延等的测量足够了,但不是一种非常好的交换机时延测量方法。为了更好地表明这个观点,可以想像一个电气连接器。FILO方法意味着连接器具有与数据包大小相关的时延,但事实上连接器具有零时延。
大数据包会给这些测量结果增加较大的时延,使得提取实际交换机时延变得更加困难。最后,考虑两个串联的直通交换机。当使用FILO方法时,通过两个交换机的时延不能通过累加单个交换机的测量时延计算得到。鉴于这些因素,这种方法并不是测量交换机时延的正确方法。
LIFO方法在20世纪80年代晚期和90年代早期用于测量传输单元大小固定的电信网络中的时延。一些测试报告仍参考1991年发表的RFC 1242,这个时间比直通交换技术的发明早很多。对于只提供存储和转发交换机的供应商来说,这种测量方法可以使结果看起来更好,因为这种方法不考虑数据包在转发之前被完整存储在交换机中的时间。从图3可以看出,直通交换机的时延不能用这种方法精确测量。
图3 使用FIFO和LIFO方法的测量结果
这两种方法从效果上看是相同的,是正确测量通过直通交换机的时延的唯一方法。为了说明这些方法的工作原理以及与LIFO测试的区别,让我们对最近使用Fulcrum‘Monaco’10GE交换机做的现场测试结果做一下评估。
FIFO与LIFO实际测试结果
Monaco参考平台例子包含有一个交换芯片,在1U外形尺寸内提供24个SFP+端口。这个平台中的时延包含了通过交换机的时延和通过SFP+ PHY的时延。这张图显示了交换机工作在直通模式时使用FIFO和LIFO方法的时延测量结果。
从图中可以看到,FIFO结果表明了交换机的实际直通时延,而LIFO数值是人工减去了完整接收一个帧所需的时间。对10GbE链路来说,这两种测量方法之间的关系可以用以下等式描述:
LIFO时延=FIFO时延-(帧长度+20)*0.8nS
由于LIFO测量方法可能导致像Monaco这样的直通交换机出现负时延,因此测试仪器将这种情况报告为‘零’时延。这意味着在较大数据包情况下比较直通交换机将是无意义的,因为它们都显示为零时延。
结论
在为数据中心选择网络设备时时延是一个关键参数。网络设计师可能使用测试报告比较不同供应商的交换机,但必须仔细检查这些报告,因为测试时延有多种方法,而只有比较使用相同的方法测量竞争性芯片得到的时延才有意义。直通交换机可以为数据中心提供最低时延的网络解决方案。