存储元件与阵列

计组——存储系统(二)SRAM和DRAM 由于B点连接到了T1的栅极,使T1管截止,此时A点高电平,B点低电平形成稳定状态,用这个状态表示数据1。它是将存取周期加上刷新1行的时长作为新的存取周期,所以没有死区(刷新对CPU是透明的,CPU不知道什么时候刷新,死区就是CPU认为能访问DRAM,但实际不能,在存取周期里,CPU不访问)假设写入0,向位线D0和D1分别输入低电平和高电平,此时,A点的高电平被拉低为低电平,使T2管截止,B点的电平被拉高为高电平,使T1导通,A点通过T1管接地,保持可靠的低电平。刷新对CPU透明,不依赖于外部的访问。 阅读详情
下载
第9章存储元件与阵列
大多数的数字系统需要具备“记忆”二进制变量数值的能力,以对其作进一步的计算。
这种能力通过一类称为存储单元的数字电路予以实现。存储单元允许用户把二进制变量的数
值存储起来,在需要时再调用它。尽管存储单元能够被独立地使用,但它们通常以称为寄存
器的字长大小的组,或者作为能够存储成千上万位数据的巨大阵列的形式出现。
9.1 一般属性
存储元件是能够保持系统所需的二进制变量数值的电路。
在图9 - 1中,描绘了一个基本的存储单元。在最通用的术语中,
有三种操作刻画出该单元的特性。
• 写入在一个写入操作中,数据位码D的值(为0或者1)
置于输入,并被该元件
所接受。
• 保持在写入操作中所存储的D值被保持,尽管输入可能有所变化。
• 读出一个读出操作把存储位码的值提供给输出变量Q。
E n a b l e使能控制位可能存在于某个设计中, Enable = 0示意保存,而Enable = 1容许进行读
出或者写入操作。
数字系统采用不同类型的存储元件,它们的特性随应用而变化。一个分类方案基于该单
元设计提供了哪些操作。读/写存储器就是用户可以用来存储数值,保持它们一段不确定时期,
并在需要时再把该数值读出来的存储器。它可能是最一般类型的存储器,通常称为随机存取
存储器或者R A M。大多数的读/写存储器在掉电时丢失其内容。一类限制性更大的存储器称为
只读存储器(R O M)。对于R O M,信息在它置入电子系统之前就被永久地存储于器件之中。
用户可以读出R O M中的信息,但是不允许改变该数据。可编程R O M(P R O M)是R O M的一
个变种,用户可以在其中存储期望的数据,但是写入过程需要一个特别的电子装置,且它仅
能执行数次。
计算机围绕着一组称为寄存器的存储元件而设计。一个寄存器被设计来保存整个的n比特
字,而它在其他方面与R A M相同。不管具体的应用如何,所有的存储元件在数字逻辑方面有
着共同的基础。
9.2 锁存器
锁存器是能够跟随数据变化并传送这些变化到一根输出线的逻辑元件。图9 - 2是它的一个
简单表示。通常地,锁存器由两个主要的特性所刻画:
• 它是贯通的,因为输出Q(t)跟随上一时刻输入的变化;而且,
• 它使用双稳态电路实现存储,从而,不是Q = 0就是Q = 1能够在该单元中保持。
使用简单的逻辑门就可以构成几类锁存器。
输入(写)
图9-1 通用存储单元
输出(读)
使能
9.2.1 SR锁存器
置位复位( S R)锁存器是一个贯通的双稳态元件,它对于输入的变化是敏感的。SR 锁存
器具有分别标注为S与R的两个输入和一个标注为Q的输出;互补输出
-Q
也被提供。图9 - 3是其
一般的方框图表示。该元件的名称从它的两个基本操作的定义所得出。
图9-2 基本锁存器符号图9-3 SR锁存器符号
• 置位(S)操作,输出值被强制为Q = 1。
• 复位(R)操作,Q值被强制为Q = 0。
术语“置位”与“复位”十分通用,在数字系统中经常被用来描述条件。例如,如果我们说
我们想要“置位变量A”,这意味着我们强制A值为1。类似地,复位A意味着A→0。在这里,
我们将讨论两种基本S R锁存器电路。一种是基于两输入或非门N O R 2,另一种使用两输入与
非门N A N D 2逻辑。既然或非门和与非门互为对偶关系,那么它们的开关特性将是相反的。
或非门S R锁存器
S R锁存器能够由两个交叉耦合的或非门构成,如图9 - 4 a所示。“交叉耦合” 这个术语定
义了两个门的连接方式;它的意思是一个或非门的输出连接到另一个或非门的输入,反之亦
然。这在术语上也称为反馈网络,因为每一个门的输出都被“反馈”而成为另一个门的输
入。要建立一个能保存两个逻辑值的双稳态电路,反馈是必需的。图9 - 4 b中的状态表总结了
该锁存器的操作。我们必须关注其中对输入的解释,因为S R锁存器通过感知输入S和R的变
化来存储比特。这意味着,我们真正感兴趣的是S ( t )和R ( t ),以及它们对该锁存器状态的影
响。
现在,我们来分析一下S R锁存器的功能表。该状态表中的第一种输入称为保持操作,在
那里,维持着S = 0和R = 0;这意味着只要S= 0 =R,Q值就不会改变。为了理解这个性质,回
顾一下图9 - 5所示的或非门的真值表。或非门的功能可被解释为任意一个输入为1,都使得输
出为0;输出为1的唯一方式是两个输入皆为0值。现在假设S= 0与R= 0被应用到输入。如果Q =
0,那么下方的或非门(带输入S)的两个输入皆为0,这意味着
-Q
= 1。这就反过来作用到上方
244 数字系统设计基础教程
使能
输入输出
输入输出
操作
置位
复位
不使用
保持
图9-4 基于或非门的SR锁存器电路
a) 逻辑图解b) 功能表
下载
的或非门(带输入R),确保Q = 0被维持。如果代之以Q= 1,
那么仅仅是变元反向。这个分析的重要性在于这样一个事
实,保持Q值是可能的。交差耦合的或非门形成一个有两个
“稳定”状态的双稳态网络。这意味着该电路能够“保持”
数值Q = 0;对于另外一种可能性Q = 1,它同样地正确。
为了置位该锁存器,输入S从0上升到1,同时保持R = 0。
接下来,S又返回为0,使该锁存器回到保持状态。在该功能
表中,这个行为由S的一个脉冲输入表示。从或非门的真值
表可见,随着S = 1,输出
-Q
被强制为0。那么,上方的或非门有R = 0与Q = 0作用到它的输入,产
生一个输出Q = 1。这就导致了“置位”的动作。复位强制Q为0,可以用同样的方式去分析它。
在该功能表的第四种输入中, S和R的值同时设为逻辑1。从真值表可见,两个输出都被强
制为0。由于在这种情形下两输出不互补,我们就把它定义为S R锁存器“不使用”的输入组合。
这仅仅意味着,要避免两输入同时被脉冲所激励的情形。在数字系统中应用S R锁存器时,
必须考虑到它的这种行为。
与非门S R锁存器
如图9 - 6所示,也可以使用与非门构成S R锁存器。两与非门交叉耦合,产生必需的反馈而
形成双稳态网络。然而,它的性质与基于或非门的方案是相反的,保持的条件是R = 1且S = 1。
正如它的功能表指明的,使S从1下跳为0,该锁存器就可以置位Q = 1;使S回跳到1,就开始
保持。相反地,如果R从1下跳为0,该锁存器就被复位Q = 0。R再恢复为逻辑电平1,则保持
输出值。“不使用”的情形是, S与R同时下跳为0。
图9-6 基于与非门的SR锁存器
通过研究图9 - 7中与非门的真值表可以理解,为什么这
种锁存器的行为与基于或非门的电路的行为相反。与非门
的操作可以归纳为,只要有一个输入为逻辑0,就使得输出
为逻辑1。因为或非门在输入逻辑1时翻转,我们期望这两
种锁存器有类似的行为,但是这里要导致一个开关事件必
须是相反的输入电平。由于这一点发现,这种锁存器的符
号必须相对于图9 - 3所示的锁存器的符号有所修改,那里的
S和R现在都被指定为低输入有效。
第9章存储元件与阵列245
下载
图9-5 两输入或非门真值表
两输入都为1的条件可能导致一个不稳定状态,使该器件震荡。这种可能性依赖于信号通过门的延迟。
操作
不使用
置位
复位
保持
a) 逻辑图解b) 功能表
图9-7 两输入与非门真值表
9.2.2 D锁存器
D型锁存器只有单个作为输入数据位码的输入D。它的特性在于,它具有锁定D的值并追
踪其任何变化的能力。构造一个D锁存器的简单方式如图9 - 8所示。它采用了一个S R锁存器,
而用D和
-D
替换其输入。D的补是通过增加一个反相器得到的。D锁存器的操作能够用S R锁存
器的功能表来理解。当D = 0时,到下方或非门的
-D
输入为1。它强制输出Q = 0,并被交叉耦
合的网络所保持。如果D = 1,上方的或非门的输出被强制为
-Q
= 0,也就是另一个稳态。
图9-8 基本的D 型锁存器
9.3 时钟与同步
在一个复杂的数字系统中,我们必须仔细地控制数据流,确保每一部分正确的信息在需
要时能够得到。控制网络中数据传送最容易的方式,是通过一个预定义好的参考如时钟信号
来同步系统的操作。尽管在第1章中已经介绍了时钟,下面快速地回顾一下它的基本原理。
时钟是从0到1又返回0作周期性变化的控制信号,如图9 - 9所示。我们通常用符号ø(t)或
者C L K标注时钟。它最重要的特性是每T秒重复一次,即众所周知的周期。时钟的频率定义为
( 9 - 1 )
表示时钟在1秒钟内重复的次数。频率有精确的单位s-1,称为H z(赫茨)。在计算机中,
对T最常用的度量是微秒(简作ms),有
1ms = 10-6s
或者纳秒( n s),有
1ns = 10-9s
T = 1ms的频率是
( 9 - 2 )
图9-9 用于同步的时钟信号
这里, M H z读作兆赫茨,意思是每秒一百万个周期。在现代台式计算机中,它是最通用的时
钟单位。
246 数字系统设计基础教程
下载
a) 元件b) 操作c) 逻辑图解
输入输出
t[秒]
例9 - 1
假定时钟频率为5 0 0 M H z,与之对应的时钟周期T通过倒数关系计算出来
( 9 - 3 )
这是许多现代系统典型的时间量级。
使用时钟信号控制存储元件的操作,使我们能够指定把数据值存入该器件的时间。在数
据位码可载入时,产生的结果是存储元件被该部分时钟周期特性化。这涉及能以同步方式传
送数据的非常复杂的数字网络的设计。
9.3.1 时钟S R锁存器
时钟S R锁存器如图9 - 1 0 a所示。与图9 - 4相比较,时钟信号ø(t)分别同输入R、S相与,使交
叉耦合的或非门电路的输入有效值修改为
( 9 - 4 )
图9-10 时钟SR锁存器
图9-11 时钟D型锁存器
因为或非门锁存器的保持条件是( 0,0),所以,当ø = 0时,这种锁存器自动处于保持状态,
置位和复位操作仅当ø = 0时才能发生。这就定义了一个电平触发的或者电平敏感的锁存器,
在时钟ø = 1的任何时候,它允许输入。时钟S R锁存器的符号如图9 - 1 0 b所示。注意,它包含
了作为控制信号的时钟ø。
第9章存储元件与阵列247
下载
a) 逻辑图解b) 符号
a) 逻辑图解b) 符号
按照这样的处理,定义触发器为任何钟控存储元件,那它也称为触发器。
9.3.2 时钟D锁存器
时钟D锁存器能以同样的方式构成,如图9 - 11 a所示。再次,时钟信号ø和常规的输入相与,
得到有效输入为
D ' = D·ø ( 9 - 5 )
这就构成了一个电平敏感的锁存器,其符号如图9 - 11 b所示。如前面的时钟S R锁存器一样,仅
当ø = 1时,输入能起作用。由于时钟D锁存器在此期间的这种行为,经常把它称作贯通的锁
存器。时钟条件ø = 0保持输出Q和
-Q
的值。
在使数据流同步通过一个复杂系统方面,时钟锁存器是有效的。它们也赋予名称“锁存
器”以更多的意义,因为当它们被时钟信号激活时,能够形象化为“抓住”数据的电路。
9.4 主-从触发器和边沿触发器
触发器是时钟控制的非贯通的锁存器。这意味着该存储元件当前的输出值Q与当前的输入
值A无关。它有几种不同的变体,但是它们全都具有一个特性:在较早的时候由时钟电路确立
的输出Q(t)被存储起来。
主-从触发器网络的基本特征如图9 - 1 2所示。
如此命名这种存储元件,是由于它指定了两个内
部块,代表两个分离的锁存电路。主锁存器用于
接收输入数据位码A到触发器。这个值被保存在
主触发器里,在一定的时间后传送到从锁存器。
它们的输入由时钟信号ø(t)同步。
图9 - 1 3总结了主-从配置的操作。在图9 - 1 3 a
中,主电路的输入被激活, A值存储在那里。在此期间,从锁存器不活动(也就是,处于保持
状态),不能接受输入。下一操作阶段如图9 - 1 3 b所示。在此期间,主锁存器处于保持状态,而
从锁存器激活。然后,A值被从锁存器接受,该触发器输出端得到Q = A。因为此时主锁存器失
效,其输出端继续保持A值,即使输入变化为B。在此期间,该触发器是非贯通的。其重要的
特性是,输出值Q(t)与当前的输入(B)无关,而表示早些时候主锁存器激活时的输入值。
9.4.1 主-从D型触发器
主-从D型触发器(D F F)如图9 - 1 4所示。这种存储元件由层叠的两个时钟D型锁存器构成。
第一个锁存器指定为主电路,负责得到输入数据位D。第二个锁存器作为从锁存器,用来保持
它从主锁存器接收的数据位码的值。只要观察到主从电路被反相的时钟ø(t)所控制,就很
容易理解D F F的操作。因为
-ø应用到主触发器,所以当ø = 0时,主锁存器接受输入。另一方面,
从锁存器使用ø定时,这样当ø = 1时,它允许输入改变。
D F F操作的一个详细例子如图9 - 1 5所示。在图9 - 1 5 a中,当时钟ø = 0时,主锁存器激活,
输入数据位码D = 1被接受,并存储在第一个锁存器里。在此期间,从锁存器处于保持状态,
以致于它的内容在主锁存器载入时不受影响。当时钟变化到ø = 1时,主锁存器保持,它的输
出馈入现已被时钟激活的从锁存器,如图9 - 1 5 b所示。数据位码A传送到从锁存器,输出值为
Q= 1和
-Q
= 0。
248 数字系统设计基础教程
下载
图9-12 主-从结构
主从
图9-13 主-从操作
图9-14 D型触发器电路
图9-15 DFF操作细节
第9章存储元件与阵列249
下载
a) 主锁存器有效b) 从锁存器有效
主
(有效)
从
(有效)
从主
主
主
主
从
从
从
a) 载入主锁存器
b) 传送到从锁存器
图9-16 主-从DFF时序图解
现在,让我们使用时序图9 - 1 6来分析一下主-从D F F的操作。在图9 - 1 6中,时钟信号ø(t)
提供同步信息,从而ø = 0指明主锁存器接受输入D,而ø = 1意味着D F F输入失效,数据传送
到从触发器,可在输出端Q(t)处得到。
上面描述的主-从D F F被设计为在ø = 0的期间接受输入D。当时钟从ø = 0变化到ø = 1的时
刻,传送到从锁存器电路的值(这里是输出Q)就是主锁存器中的值。因为这个理由,主-从
配置被划分到边沿敏感器件一类。这意味着,当时钟从一个值跳变到另一个值时, Q值依赖于
主锁存器中的内容,对应于时钟波形的一个“边沿”。
一种相关的存储元件是边沿触发器。功能上,它似乎类似于边沿敏感的设计。然而,仅
当时钟跳变时,边沿触发器才允许载入输入数据D。这不同于主-从电路,那里,主锁存器在
半个时钟周期内是贯通的。按照我们的处理,我们不关心主-从电路和边沿触发电路之间的
内部差别。取而代之,我们认为任何触发器就像一个多路选择器一样,能够用来作为一个基
本的积木,我们仅仅分析该器件的总体特性。边沿触发D F F的符号如图9 - 1 7 a所示,时钟输
入增加了一个特别的标注,来指明一个正边沿触发行为,仅当时钟从ø = 0跳变到ø = 1 时输
入被接受。
图9-17 边沿触发DFF操作总结
图9 - 1 7 b中的总结表描述了边沿触发D F F的操作,它表明输出Q仅仅是输入D延迟一个时钟
周期后的值。该表中的标注使用时间变量t表示“当前”值,如D ( t ),这里t是时钟上升边沿的
250 数字系统设计基础教程
下载
[秒]
[秒]
[秒]
D触发器
a) 符号b) 操作总结
时刻。另一方面,输出写作Q(t+T),这里T是时钟周期。这意味着在下一个时钟周期,也就
是在(t+T)时,输出变量Q的值。该边沿触发D F F由下面的方程所表征:
Q(t+T)=D(t) ( 9 - 6 )
它表明输出值与上一时钟周期的输入相同。延迟是边沿触发D型触发器重要的一个方面,因为
它允许我们存储当前值,以在下一时钟周期使用。
对于数字设计中的许多应用,边沿触发D F F的延迟特性是足够的。然而,一些系统要求
我们具有保持一个数据位码几个时钟周期的能力。为了构建一个提供这种功能的电路,我们
必须把输出Q传送回输入D,然后用相同的值“重新载入”触发器。实现它的一个简单方式
是,使用如图9 - 1 8所示的2选1多路选择器。在这个方案中,载入信号L D控制输入,从而通
过把输出传送回输入, L D = 0 保持当前值。如果L D = 1,那么新的d值传送到D F F存储单元。
另一个时常有用的特征是触发器复位的能力,也就是强制Q为0。这个能力可以通过增加
如图9 - 1 9所示的与门来提供。在此种情形,控制信号是—R E S E T,这样
R E S E T = 0:使输入D = d,
而
R E S E T = 1:强制输入D = 0。
这里,在时钟跳变时, R E S E T的值起作用,如果想要修改逻辑,这个特征也能与载入操作相
组合。
图9-18 带数据载入控制的DFF 图9-19 带复位能力的DFF
D型存储元件的V H D L描述
对于一般的逻辑设计, D型锁存器与D型触发器是有用的。V H D L描述引入了新的思想,
值得详细解说。
首先考虑如图9 - 2 0所示的电平触发D锁存器。时钟输入用c l k表示,完全不同于ø。为描述
该锁存器的操作,我们首先必须注意到c l k的值控制着这个元
件的行为。当c l k = 0时,锁存器不允许改变Q的状态,仅当c l k
= 1时,才可以改变存储位码的值。下面的描述引入了V H D L进
程的思想。V H D L进程是一种允许包含定时关系的结构。
- - D锁存器的V H D L描述
- -结构体包含进程语句
第9章存储元件与阵列251
下载
输入
输出
输入
D触发器
图9-20 b型负存器
D锁存器
关键字p r o c e s s指明一组顺序语句的开始,它意味着命令以它们排列的顺序依次执行。这个进
程由下面的序列描述,
该序列按照它的理解准确地执行。换句话说,时钟值c l k =‘1’使得D传送到输出Q。
边沿触发器件要稍微复杂一些,因为我们必须写一个说明c l k值变化的进程。考虑图9 - 2 1
所示的正边沿触发的D F F模块。在V H D L中,描述信号变化的一个方式是使用‘ e v e n t指令。
语句
解释为一个布尔对象,其值为真或假。若c l k‘e v e n t为真,意味着信号c l k值已经改变,若c l k
没有改变,那么它返回假。为了描述正时钟边沿,它写作
因为c l k正在改变且c l k的值目前为1,它的计算结果为真。记住这样一点, D F F能够由下面的
程序清单描述。
图9-21 边沿触发DFF模块
- -边沿触发D F F的V H D L描述
- -结构体包含进程语句
252 数字系统设计基础教程
下载
如果我们希望描述负边沿触发器,那么我们只须改变进程命令来反映时钟最终的值c l k = 0。
- - D F F的V H D L描述
- -结构体包含进程语句
本章中所有其他时钟敏感元件的V H D L描述都能够使用该进程结构建立。
9.4.2 其他类型的触发器
其他的几种触发器能够使用基本逻辑门构成。每一种由一组独特的、对设计者有用的并
依赖于系统规范的特性所定义。我们将仅仅关注在时钟边沿接受输入的边沿触发器。
图9-22 SR触发器特性
S R触发器
S R触发器有着和D F F同样的基本结构,而由S R锁存器取代D F F的输入电路。它有两个独
立的输入S和R,由S = 0 = R定义它的保持状态。在S R锁存器的操作中, S和R同时为1的状态
禁用,记住这一点是重要的,以便在S R触发器中排除这种情况。边沿触发SR FF的符号如图9 -
2 2 a所示,图9 - 2 2 b是相应的操作表。它能够概述为
( 9 - 7 )
注意到,输入S ( t )和R ( t )皆等于1的情形没有定义。这是由于电路中使用了基本S R锁存器。
第9章存储元件与阵列253
下载
操作
保持
置位
复位
不使用
a) 符号b) 操作总结
J K触发器
J K触发器修改了SR FF 的电路,以使两输入同时跳变为1的情形引起切换操作
( 9 - 8 )
这意味着,若Q, - Q = R ( t ),那么该切换改变它们到(Q, - Q)=(0, 1 )。这个电路中的输入与S R
触发器是相同的,但它们有着并不相同的外部操作。图9 - 2 3总结了这些特性。J K触发器在以
往基于S S I集成电路的硬件设计中占据支配地位,目前在某些系统中,它仍然是常用的器件。
图9-23 JK触发器的特性
T触发器
切换触发器是有一个输入T的电路,在图9 - 2 4的逻辑符号中指明。T F F的操作恰如它的名
字所暗示:无论什么时候, T从0变化到1,输出就切换。这是一个相当特殊的器件,它没有上
面所讨论的触发器的多面性,但仍然很实用。
图9-24 T触发器的特性
9.5 寄存器
寄存器是一个用来存储nb i t二进制字的逻辑元件。几乎每一大型的数字系统都采用寄存器
来保持重要的数据,所以有必要对它进行详细地研究。它可以构造出几种变体,它们在数字
系统设计中各有其应用范围。
9.5.1 基本存储寄存器
我们可以并行方式简单地使用n个1 b i t存储单元,构成一个允许对全部单元同时读或者写
的寄存器。通常为了方便,以系统规范要求的字长大小来构成寄存器。
我们来测试一个8位寄存器,它能够存储一个字节的数据。为了建立这个寄存器,我们使
用如图9 - 2 5 a所示的独立存储单元来构成图9 - 2 5 b所示的电路。注意,我们选择了边沿触发存储
元件作为基本的单元。为了简单起见,我们仅仅指出了输入、输出和时钟端口。元件可能需
要的其他控制线,如载入( L D)信号,没有明确地表示出来。尽管每一位可以单独存取,该
寄存器作为所定义的一组,用于保持一个8 b i t的字,因此所有单元的读出或者写入操作同时执
254 数字系统设计基础教程
下载
a) 符号b) 操作总结
a) 符号b) 操作总结
操作
保持
置位
复位
转换
行。既然一直使用边沿触发存储单元,那么仅在时钟跳变时执行写入操作。一个简化的记号
如图9 - 2 6 a所示,这些单元简单地组合在一起,呈现为一个独立的单位。在图9 - 2 6 b中,我们把
寄存器表示为带8 b i t输入输出线和单个时钟控制的单一实体。在许多应用中,它理解为,寄存
器根据时钟信号ø(和任何其他条件)载入,即使它在图中被忽略掉。
图9-25 由独立的存储元件创建的寄存器
图9-26 用于表示8位寄存器的符号
这种类型的通用寄存器在计算机设计中被广泛地使用,在第11章计算机系统环境下,我
们将详细地讨论它。此处要记住的重要概念是,寄存器保持nb i t字作为一组,它自身能够当作
一个单独的由更小的单元所组成的数字元件来看待。
9.5.2 移位寄存器
移位寄存器被设计用于在时钟脉冲作用下传送它的位码到相邻单元。为了说明移位寄存
器的一般性质,让我们重复图9 - 2 7 a中的存储单元,建立如图9 - 2 7 b所示的串行链,在那里,每
个单元的输出作为它右边相邻单元的输入。总之,该电路有单个输入位D和单个输出位Q,组
成了一个8位移位寄存器。既然所有的单元由同一个时钟信号ø控制,因此它们同时载入。
图9-27 基本移位寄存器结构
图9-28 移位寄存器的简化符号
使用图9 - 2 8所示的简化符号,很容易理解移位寄存器的操作。这种示意图使我们可以形
第9章存储元件与阵列255
下载
输入字
输出字
输入
输出
a) 单个单元b) 8位寄存器
输入
输出
a) 独立单元b) 单个寄存器
a) 单个单元b) 串行载入移位寄存器
象地分析该单元的内容,跟踪数据在结构中的传送。即使没有明确地表示时钟ø,仍然如初始
电路一样,设定输入同步。
假设我们想要以比特序列
D0= 1,而
D1= 1,而
D2= 0,而
D3= 0,
等等载入寄存器,就如图9 - 2 9 a所示的移位寄存器的输入“ 0 , 1 , 0 , 1 , 0 , 0 , 1 , 1”。当我们使用这种
记号表示串行输入时,意味着右边的位码是将要进入部件或系统的下一位。因为在寄存器中
有8个单元,载入整个寄存器将花费8个时钟周期。根据图9 - 2 9 b中的时钟图解,就在时间7T之
后,正如前面所言,可得到第一个输入位D0= 1的输出。
图9 - 3 0提供的序列明确地表示出位码通过移位寄存器的进程。左边指出的时间隐含寄存
器在下一个载入事件发生之前的内容(因为单元由正时钟边沿触发)。数据传送笔直向前流动,
在第一个正时钟跳变时,单元d7装入T时刻
的D0= 1。下一个正时钟边沿使D0= 1移到下一
个单元d6,同时接受D1= 1进入单元d7。每个
子序列在正时钟跳变时接受下一位,使每一
个存储位码传送到右边的单元。在7T之后,
该字的末位装入单元d7,首位D0= 1在移位寄
存器的输出端得到。因为d0位先载入且先出
来,所以它称作F I F O(先进先出)电路。
对于某些类型的存储应用, F I F O极其有用。
图9-30 数据在移位寄存器内传送
256 数字系统设计基础教程
下载
F I F O按照音节读作f i - f o。
a) 内容清除
输入序列
b) 时钟周期
图9-29 串行数据输入移位寄存器
时刻输入队列
并行载入的移位寄存器允许用户在一个时钟跳变存储整个字,如图9 - 3 1所示。这个特定
的寄存器有两种移位操作,分别由信号S H R(右移)和S H L(左移)控制。两者的作用如图9 -
3 2所示。在图9 - 3 2 a中,寄存器的初始内容是字1 0 1 0 11 0 0(从左读到右)。通过设置SHR = 1启
动移位寄存器操作,每一位码向右移动一个位置(图9 - 3 2 b)。注意,最左边的位码(以斜体
表示)自动强制为0。图9 - 3 2 c表明,通过设置
控制位SHL = 1可实现左移操作。每一位码向
左移动一个位置,与右移操作恰恰相反。在这
种情形下,最右边的位码被强制为0。
在一个复杂的数据传送系统中使用移位寄
存器时,一般建立允许移动多位的电路。在
这种情形下,内容右移n个单元,命令写作如
下形式
SHR n
而
SHL m
表明内容左移m个位置的操作。
图9-32 移位操作总结
移位操作的一个直接应用是执行二进制码字的幂2乘除法。要理解它,让我们先看看二进
制字
N = 000111 0 0
它的十进制数值是2 8。我们执行一个SHL 1操作,结果为
NL 1 = 00111 0 0 0
它是十进制数5 6,也就是NL1 = 2N。以最初的字开始,调用SHL 2操作,得到
第9章存储元件与阵列257
下载
a) 初始条件
b) 在右移操作之后
c) 在左移操作之后
输入
输出
(载入)
图9-31 有并行载入功能的移位寄存器
NL2 = 0111 0 0 0 0
它等于11 21 0,于是NL2= 22N。因此,一般地,操作SHL n等价于寄存器的内容乘上2n
右移操作SHR m实现相反的效果。例如,若首先有
N = 000111 0 0
那么,SHR 1和SHR 2 操作得出
NR1 = 0000111 0
NR2 = 00000111
容易验证,
NR1 = N/ 2
NR 2 = N/22
对应于十进制数NR1= 1 4,NR2= 7。这表明SHR m能够使寄存器的内容与2m相除。
寄存器不仅有移位操作,还可以有循环操
作R O R(右循环)和R O L(左循环)的能力。
循环不丢失位码,它移出寄存器但传送到另一
边,除此之外,它们与相应的移位操作完全一
样。图9 - 3 3总结了这两种操作的结果。在图9 -
3 3 a中,显示内容1 0 1 0 11 0 0。通过设置控制位
ROR = 1,启动循环右移操作。它使每一位码
向右移动一个位置。最右边的位码被传送到寄
存器的左边。图9 - 3 3 b显示了通过置位ROL = 1
引起的循环左移操作。在这种情形下,每一位
码向左移动一个位置,左边单元的内容(最初
为1)传送到最右边的位置。对于移位操作,
通过改变组成寄存器的存储单元的接线,构建
一个允许多循环
ROR n和ROL m
的寄存器是可能的。
移位和循环操作对于许多种类的数字信号处理相当重要,它们作为基本的操作包含在所
有的计算机里。在第11章计算机体系结构的语境里,我们再详细地讨论它们。
9.6 随机存取存储器
随机存取存储器是适用于通用读/写存储单元的大型阵列的术语。R A M通常作为台式计算
机设备中的主系统存储器,它提供存储所有重要数据的能力,这些数据是计算机运行程序和
操作系统所必需的。
9.6.1 静态R A M单元
静态存储器能够保持所存储的数据位码,只要电源连接到该电子线路。
258 数字系统设计基础教程
下载
它仅仅精确地作用于十进制偶数。
a) 初始条件
b) 在右循环操作之后
c) 在左循环操作之后
图9-33 循环操作
如图9 - 3 4 a所示, S R A M 是基于两个级联的反相器所组成的闭环特性。它是一个双稳态
电路,A = 0或者A = 1皆能在环中保持。尽管乍一看它可能很陌生,但是它的操作等价于S R锁
存器。重画该电路如图9 - 3 4 b所示,使反相器交叉耦合,可以看出这一点。与图9 - 4中两输入
或非门锁存器相比较,我们看到,除单输入非门用于逻辑之外,结构是相同的。
图9-34 交叉耦合反相器形成双稳态电路
通过嵌入交叉耦合的反相器到一个与反
相器环相连的较大的网络,就构成一个存储
一位数据的静态R A M单元。图9 - 3 5表示一个
S R A M单元,它增加了两个由字线上的信号
W L控制的存取开关( S w)。这些开关由逻辑
控制, W L = 0使开关断开,而W L = 1闭合它
们。当W L = 0时,存储单元与外部影响隔离,
保存数据位码。若W L = 1,两个开关都闭合,
单元对应的两边分别与位线( D)和位线(
-D
)
连接。这就允许对单元进行写或者读。总之,
• W L = 0保存状态,而
• W L = 1允许进行读写操作。
当附加电路判定W L = 1时,执行实际的操作。
9.6.2 SRAM阵列
通常制造出S R A M,是为了可以轻易地存储nb i t二进制字,而不是单独的一位。这是一个
实用的考虑,起因于这样的事实:大多数应用的建立是如此设想的。一个m×nS R A M阵列由
m行、每行包含n个单元所组成。
让我们分析怎样才能构造一个很简单的存储8个字,每个字长8位的存储器,也就是说,
一个8×8阵列。首先,考虑一个8比特字的存储。它需要8个单元,每比特一个,如图9 - 3 6所
示。我们已经为字线使用了简化的标注,但它的意义仍然一样: W L = 0隔离单元,而W L = 1
提供存取,允许进行写或者读操作。为了保存8个字,我们再构造七个相同的电路,把它们堆
叠起来,如图9 - 3 7所示。为了选定所要求的行(字),我们包含一个3 / 8高电平有效的行译码器
电路,该译码器的输入是一个称为地址的3位二进制字
A2A1A0
因为它指明了存储器中特定字的位置。阵列的下方提供了接口电路,它们提供写入或者
第9章存储元件与阵列259
下载
S R A M读作S- ram 。
a) 基本电路b) 重画
图9-35 SRAM单元设计
位线
存储单元
位线
字线
读出阵列的每一行所必需的电路。E n a b l e是一个高电平有效的激活阵列的控制信号, R/W决定
是否进行读(R /W = 1),或者写(R/W = 0)。读/写控制信号R/W仅当E n a b l e = 1时有效。
图9-36 8位存储阵列
图9-37 8×8RAM阵列
让我们研究图9 - 3 8 a所示简化的读操作,来阐明该阵列的操作。多数连线已经被组合在一
起,以便我们能够专注于数据传送,而不被太多的细节转移目标。该图显示了每一行的内
容;图9 - 3 8 b总结了输入地址如何激活一个特定的工作线,该线反过来允许数据行被读出来。
260 数字系统设计基础教程
下载
读写操作接口电路
例如,如果地址是1 0 0,那么选定线4,结果是输出0 1 0 1 0 1 0 1。
图9-38 RAM阵列中的读操作
图9-39 64×8SRAM器件的方框图
第9章存储元件与阵列261
下载
输出
输出
行
地址
a) 简化网络
b) 功能表
地址内容
可能
地址
可能
读/写
数据
a) 内部组织b) 符号
简化的操作图解和符号提供了一个简明的方式,以这种方式,一个复杂的数字单元的重
要特性能够明显地表示出来,而不使逻辑图解散乱。它们等效于在分级结构中更高层次上观
察该单元,对于描述一个复杂系统如计算机很有用处。要创建一个符号,我们必须定义它所
有相对于“外部世界”重要的特性。尽管内部电路本身可能有令人感兴趣之处,但是大部分
与用户无关。
考虑一个S R A M阵列。在用户层次,它是一个器件,允许我们对二进制字执行写、保持
和读操作。该阵列的容量告诉我们它能够存储多少字,寻址方案提供一种方式,使我们能够
明了每一个字定位于该阵列的哪一个位置。图9 - 3 9 a中的方框图总结了一个容纳6 4个8比特字
的器件的性质。进出这个存储设备的数据作为8比特字
b7b6b5b4b3b2b1b0
传送。地址给出每一个字的位置,由选择一个存储位置的6位字
A5A4A3A2A1A0
表明。如果Enable =1 激活了该设备,那么读写操作由R/W控制选定。在这个层次, R A M的内
部结构被描绘为一组存储位置,每个存储位置有唯一的地址。这就使我们可以阐明它的内容。
一个更精简的符号如图9 - 3 9 b所示。该设备的操作在各个方面都一样,但是内部细节没有表示
出来。这使它更易于在设计分级结构的系统级中使用。
9.6.3 动态R A M
动态存储器( D R A M)阵列和S R A M阵列相似,因为它们都允许我们使用单元寻址的概
念存储数据。两者不同之处在于自身单元的内部设计。动态R A M单元要简单得多,在硅片上
只需要更少的面积。这使D R A M的存储密度比S R A M要高得多,每一位的成本要低得多。因
为较低的价格,在需要大型存储阵列,成本重要的任何时候,通常使用D R A M。D R A M最大
的应用是作为台式计算机的主系统存储。使用“动态”存储的一个障碍是, D R A M比较简单
的单元设计导致电路显著变慢;读写时间都增加,这就限定了它们如何才能在大型系统中用
来存储数据。
MOS DRAM的细节和操作在9 . 9 . 2节叙述,在那里我们将看到,位存储技术的物理学即使
得D R A M密度高,又解释了为什么它们被称为“动态的”。
9.6.4 奇偶和错误检验码
可靠的数据存储是所有数字系统的关键。即使单个的错误位码就能导致整个程序崩溃,
或者数据库文件无用,所以提供一些技术,能够检测错误的存在,以及在某些情况下能够修
正那些错误,是非常重要的。对检错码( E D C)和纠错码( E C C)的详细研究超出了本书的
范围,但是它们的原理基于一些相当简单的概念,在这里予以介绍。
首先,让我们分析这样一个问题,我们要确保从一个存储位置读出的数据字节与写入
的数据字节相同。这将要求我们在存储数据字节之前记录一些有关它的信息,然后在读出
该数据字节之时使用这些信息来检查它。实现这个的一个简单方式是,引入奇偶位P的概
念。
假设最初数据字节写作
B=b7b6b5b4b3b2b1b0 ( 9 - 9 )
262 数字系统设计基础教程
下载
因为每个bn非1即0,我们能够计算该字中1的个数,用此定义一个奇偶位P,让它记录在包含
奇偶位P的组合字节中1的个数为偶还是为奇。若我们选择偶校验方案,那么奇偶位Pe v e n有如此
特性,
选择Pe v e n,使(B +Pe v e n)有偶数个1。
例如,若B1= 0 11 0 11 0 1,则Pe v e n= 1,因为B1包含5个1,这种选择使之具有偶数个1。反之,
字节B2= 1111 0 0 0 0要求Pe v e n = 0,因为B2已经有偶数(4)个1。奇校验恰恰相反。在这种情况下,
我们引入奇校验位Po d d,这样
(B +Po d d)有奇数个1。
对于B10 11 0 11 0 1,将要求Po d d = 0,类似地,若B2= 1111 0 0 0 0,则将有Po d d = 1。
图9-40 奇偶校验生成电路
一种生成奇偶位的容易的方式是使用如图9 - 4 0所示的异或操作。回忆一下,异或门实现
了奇功能。在这个逻辑图解里,我们已经定义了输出为
P = b7Åb6Åb5Åb4Åb3Åb2Åb1Åb0 ( 9 - 1 0 )
所以,该字中如果有奇数个1,那么P = 1,如果有偶数个1,那么P = 0。所以这样选择
P = Pe v e n ( 9 - 11 )
因为该字节加上P中1的全部数量有偶校验所要求的特性。如果我们使用异或非门代之,那么
输出将是奇校验位。
为了应用奇偶性的概念到检错问题,假设我们存储最初的数据字节以及奇偶位如图9 - 4 1 a
所示。由上面的讨论, P的选择代表偶校验。注意,这个方案要求存储位置宽度为( 8 + 1)= 9
位,以适应附加位。奇偶位P提供原始数据的信息。当字节读出存储器时,如图9 - 4 1 b所示,
我们获得数据段
( 9 - 1 2 )
它被用来计算新的奇偶位Pc,为
( 9 - 1 3 )
接下来,使用异或功能比较存储的奇偶值P和Pc,产生检验位C。若P = Pc,则存储的奇偶
值与计算的奇偶值相等, C = 0 。然而,若P≠Pc,那么两个奇偶位不同, C = 1 ,指示两
者有差异。这样, C = 1 表明错误已经发生,所以不是数据字节就是存储的奇偶位不正确。
检验位C通常放置在一个特别的称为标志的存储单元里,当C = 1 时,我们说标志被置位,
一个错误已经被检测到。检验位C = 0 不保证无错误发生,它仅仅意味该电路没有检出错
误。
第9章存储元件与阵列263
下载
(输入奇数个1)
(输入偶数个1)
输入字
图9-41 错误检测电路
9.7 只读存储器
只读存储器是用作永久数据存储的存储阵列。信息由R O M的生产者或者系统程序员存储。
用户依赖于特殊的设备具有有限的编程能力(或者根本没有)。R O M提供非易失性的存储,这
意味即使切断电源连接,数据仍然保持在该存储器中。非易失性的存储设备是许多系统应用的
关键。例如,每一台个人计算机有一个R O M ,加电时提供启动系统软件所必需的二进制码。
图9 - 4 2 a中的符号显示了一个小容量R O M的重要特性。整体上,它在操作方面与R A M很
类似。先指明地址,然后使芯片操作执行读,导致数据输出。图9 - 4 2 b所示的内部模型提供了
这种设备必需的细节。被存储的数据字作为所指明的地址位置的位组被查看。该地址字为:
A5A4A3A2A1A0
图9-42 ROM的符号和用户模型
264 数字系统设计基础教程
下载
存储字
输出字
a) 写操作
b) 读操作
它称为B I O S,表示基本输入输出系统。
地址
使能
数据输出
a) 符号b) 内部组织
存储
数据
使能
被送到一个行译码器,然后通过置位合适的字线为高来激活该字的存储位置。该数据字送到
由E n a b l e控制激活的输出电路,使得该数据字为:
b7b6b5b4b3b2b1b0
输出R O M。这种设备不支持写操作,这是只读存储器显著的特征。
9.8 CD ROM
紧凑圆盘( C D)R O M是一个复杂数字系统的有趣范例,它结合了电子学和光学,提供高
密度存储介质。CD ROM的基本格式和操作基于C D音频标准,但是比那些用来再现声音的
C D有着更迫切的市场需求。
CD ROM是一个由洁净的、一面铸造成小缺口的多碳酸塑料组成的圆形盘片。其上涂有
一层铝金属,然后覆盖另外一层塑料,再把标签印在最上层。如图9 - 4 3所示,C D的顶面有标
签,而洁净的底面有存储信息。在多碳酸塑料和铝之间的界面称为信息表面,因为这是数据
存储的地方。信息被记录在始于盘片中心,螺旋向外的单个轨道之上,如图9 - 4 4 a所示。为了
从盘片读数据,盘片旋转,越过一个包含在播放机械中的固定激光源。为了便于分析,把它
看作一个固定的盘片和一个跟随轨道移动的激光束,如图9 - 4 4 b所描绘。
图9-43 紧凑圆盘的结构
图9-44 CD信息轨道
图9 - 4 5显示了从洁净的塑料往铝涂层所看到的信息表面的一个特写。该表面的大部分平
整,称为平地(l a n d)区。而大量的小缺口称为凹口( p i t s),铸造在塑料里,然后被铝所覆
盖。沿着一条称为轨道的隐含线,提供一系列凹口和平地,实现数据存储。这些轨道相互间
距1 . 6mm,可以密集地存储。一张CD ROM能够存储大约540 MB有用数据,以正常速度可播
放6 0分钟。在制造盘片时,凹口和平地被冲压入塑料,不能改变,使得它成为只读设备。
第9章存储元件与阵列265
下载
a) 紧凑圆盘b) 横截面视图
顶层标签面
底层-信息面
钻涂层可见
钻层
信息表面
a) 底视图b) 数据轨道的可视化
超始
结束
由螺旋轨道
组成的信息
存储区激光束跟随
轨道
图9-45 CD信息表面的凹口和平地
当盘片自旋时,通过把一小束激光聚焦到轨道可以实现数据的读出。对于标准( 1倍)速
度播放器,光点以一个恒定的速度v = 1 . 2 5 m / s跟随轨道运动。跟踪从信息表面反射回的激光就
读出了存储信息。图9 - 4 6显示了一个轨道和它的横截面图。当激光束照射在一个平地区时,
铝涂层提供一个强反射。另一方面,如果光束扫描一个凹口,那么由于众所周知的光的散射
和干扰,反射的光束是很微弱的。凹口的深度和相对于凹口宽度的光点的大小都是很重要的。
图9-46 激光读信息轨道
当监视反射激光束的功率Pre f时,我们发现它依赖于激光束是否照射在凹口或者平地区而
变化。图9 - 4 7说明了这一点,它显示反射功率在高低电平之间变化。尽管我们用高电平表示
逻辑1,用低电平表示逻辑0,似乎显而易见,但出于系统设计过程中的物理考虑, C D标准选
择了不同的编码方案。这种用于C D的编码称为N R Z - i。它以如下方式定义逻辑电平:
• 逻辑0 持续的高或低电平
• 逻辑1 一个从高到低或者从低到高的跳变
266 数字系统设计基础教程
下载
轨道
凹口
扫描激
光束
平地
平地
平地
平地
平地
平地平地平地
光束点
凹口
凹口
平地
塑料
弱反射
强反射
标签覆盖
激光束
凹口
a) 信息表面
b) 横截面视图
这样,当激光扫描凹口或者平地区时,恒定的反射功率强度被翻译为逻辑0。仅当光束从平地
到凹口,或者从凹口到平地传送时,逻辑1发生。使用这种编码方案提供该图所示的逻辑翻译。
注意,这种技术的关键是,为一个逻辑位定义时间间隔T。对于1倍速播放器,串行数据读出
数率大约为1 5 0 K B / s(千字节每秒)。
我们之所以使用N R Z - i编码,是因为读盘进程产生不了该图所示的精密明确的反射光束。
由于不一致的激光照明、跟踪错误、振动和物理环境中其他干扰,反射功率强度看上去更像
如图9 - 4 8所示一样。尽管光束照射在凹口或者平地区时,它的强度发生变化,但是当激光束
从凹口移向平地,或者反之时, C D系统确保有一个仍然合理的改变。因此,这个编码方案滤
及一个信号可靠的输出,虽然并不理想。
图9-47 扫描表面时的发射激光功率
应用这种编码把数据存储在轨道上的方式,导致了其他的复杂性。如果我们比较凹口的
宽度、长度和激光束的直径(大约1mm),我们发现两个1在轨道上相邻是不可能的。事实上,
当在轨道上记录时,这产生一个规则
1必定至少被两个0分隔
这暗示我们不能直接在C D的轨道上存储“标准”编码数据!取而代之,数据服从一个调制方
案,它原则上类似于编码/译码过程。
紧凑盘片使用一个8到1 4调制( E F M)技术,一个8 b i t数据字被扩展为1 4 b i t的调制当量,
它不违反1之间的间隔规则。整个方案如图9 - 4 9 a所示。记录在盘片上的是调制位流,而不是
原始数据。实际的转换使用一个查询表定义,该表的一小段已经再现于图9 - 4 9 a中。数据读出
时,必须简单地把该表用作一个字典,解调数据以产生原始的8 b i t字。
图9-48 实际的发射信号变量
C D另一个有趣的方面在于,读盘以后对数据使用了检错码( E D C)和纠错码( E C C)。
C D制造工艺固有的偏差导致有相当高的可能性得到一个数据流错误。通常,它由误码率
(B E R)表明如下:
( 9 - 1 4 )
第9章存储元件与阵列267
下载
平地平地平地
位时间
凹口凹口
平地凹口平地凹口平地
图9-49 CD 8到14调制方案
这里,Ne为不正确的位数,NT为被考虑的位的总数。在C D音频应用中(C D标准的最初使用),
指明B E R最大值为R E R= 1 0-9。计算标准更加严格,最高可接受的值为B E R= 1 0- 1 2。为了确保C D
满足该值,在记录数据之前,一套复杂的E D C和E C C应用到数据之上。这导致另外一个数据
集记录在C D上。这个思想类似于在R A M阵列中使用奇偶位的概念,但是它要强大得多,因为
该代码可以( a )检错,以及( b )通过计算起初的码字来进行纠错。C D采用了一种算法,它包含
于一大类已知的R e e d - S o l o m o n码理论中,以一些数据字块来实现任务。它们是如此强有力,
以至于你能够真正地掩盖C D上一段大约长1 m m的轨道,它不影响被处理的数据输出。
紧凑盘片系统十分复杂,但它是现实数字系统的一个优秀的样例。其他光学记录和数据
存储的途径已经发展起来,而它们都趋向于被类似的物理限定所约束,且各自有独特的方面,
通过使用基本的准则说明一个数字设计如何能够解决复杂的系统设计问题。
9.9 CMOS存储器
C M O S是所有类型的存储器芯片的主导技术。因为M O S F E T很小,创建大容量的相当快
的存储器阵列就是可能的。在这一部分,我们将简要地分析一些有关使用C M O S技术创建存
储器单元的概念。
9.9.1 CMOS SRAM
单个的CMOS SRAM单元电路如图9 - 5 0所示。它包含两个交叉耦合的反相器(M n 1,M p 1,
M n 2,M p 2),作为存储单元,使用一对N沟道晶体管存取它们。这与图9 - 3 5所示的更基本的
原理图有着相同的结构,所以它们的操作是相同的。由于它有六个晶体管,在文献里称为一
个“6 T”设计。该6 T设计可能是制作C M O S存储器最普通的方法。使用四个M O S F E T和两个
电阻创建一个“4 T”单元也是可能的。
268 数字系统设计基础教程
下载
8位字
14b字到
光盘
14b字
读出
8位字
8位字14位长效值
a) EFM记录和读出方案
b) EFM 表的一部分
用来存取单元的简单方案能够扩展到多端口静态存储器,在这里,能够使用一对以上的
输入/输出线。一个双端口静态存储器如图9 - 5 1所示。它有两个独立的数据I / O通路,用D1和D2
表示。单元存取由两个独立的标注为W L 1和W L 2的字线控制。任意一个能够用作读或写操作。
所引起的一个问题是,我们必须实施排他性,即
W L 1·W L 2= 0 ( 9 - 1 5 )
确保一个输入不干扰另一个。它可通过使用片上逻辑仲裁每一个单元的存取来实现。多端口
存储器很有用,因为它们允许把共享存储器一次硬连到几个数字逻辑单元。
图9-50 CMOS SRAM单元
图9-51 双端口SRAM单元
9.9.2 动态存储器
描绘动态存储器的特征要更加复杂,但是它们广泛地被用作主存,因为它们能以比S R A M
高得多的密度构建。形容词“动态的”反映了这样一个事实,在一个保持操作期间,单元的
内容将随着时间改变。这使得动态存储器的设计更加复杂,但是现代的芯片通常对用户屏蔽
复杂性。D R A M主要的缺点是它们没有S R A M快。D R A M主要的优势是每b i t的花费很低,使
它在需要大阵列的系统设计上具有经济上的吸引力。
第9章存储元件与阵列269
下载
(字线)
位线
反码位线
端口2
端口1
端口1
端口2
D R A M单元的电路原理图如图9 - 5 2所示。一眼看去,简单
性是明显的:整个单元由单个n F E T和一个存储电容CS组成。
这便于相当高的集成密度,使构建有数百万个单元的单一芯片
成为可能;使用现代技术,每片2 5 6 M b和1 G b大小是可能的。
D R A M市场竞争的本质使它成为技术驱动器,许多公司使用
他们最先进的工艺技术制造D R A M。
在这个基本存储电路里, n F E T作为存取器件,由字线变
量W L控制导通。当W L = 1时,n F E T作为一个闭合的开关,允
许一个写或读操作。要写该单元,一个数据电压VD应用到数据
线,产生的电流充电存储电容CS到电压VS。如图9 - 5 3所示。存储位码的值由电容上的电荷定义
( 9 - 1 6 )
如果VS= V0= 0V,那么QS= 0,对应于逻辑0的值。另一方面,如果VS= V1是高电平,那么逻
辑1的电荷存储在电容上
QS = CSV1 ( 9 - 1 7 )
使字线W L = 0可得到一个保持状态,在数据线与存储电容器之间断开直接的导电通路。
理想地,晶体管将阻塞所有的电流,电荷QS将永久地保持。然而, n F E T并不能阻塞所有的电
流。即使对一个0门电压, F E T允许一个小的漏电流IL把电荷从电容器移走。泄漏通路的电路
效果如图9 - 5 4 a所示, 9 - 5 4 b中的示意图表明了晶体管中问题的物理起源,在那里, p n结存在
一个不能排除的反向电流IR。在这种情况下,我们可以记作
IL = IR ( 9 - 1 8 )
既然电荷能够从CS泄露掉,而数据位码的值依赖于电荷,所以数据位码仅仅能够保持一个较
短的时期。
图9-53 DRAM单元中的写操作
图9-54 DRAM保持状态和泄露问题
270 数字系统设计基础教程
下载
在实际的D R A M单元中,也存在其他几种漏电流。
输入
(逻辑0)
(逻辑1)
门
断开
漏电流
逻辑1电压将
渐变为0V
a) 电路模型b) 漏电流的起源
图9-52 CMOS动态RAM(DRAM)
单元设计
预估这个值能够保持的时间间隔是有价值的。假定我们在电容器上设置逻辑1电平VS=V1,
希望计算n F E T断开时电压能够保持在该单元上的时间。这能通过使用电流的定义来实现,记
作
( 9 - 1 9 )
这里,我们在第二行中使用了基本的关系
( 9 - 2 0 )
使用负号是因为电荷随时间减少。重新排列得到
( 9 - 2 1 )
所以,两边积分得到
( 9 - 2 2 )
这里,tH是保持时间。保持时间定义为电容器能够维持Vm i n以上电压的时间间隔, Vm i n是仍然译
作逻辑1值的最小电压。右边的下限V1表示t = 0时刻的初始存储的逻辑1电压。计算该积分,
重新排列保持时间为
( 9 - 2 3 )
为了理解时间间隔的意义,我们记存储电容为5 0 f F = 5 0×1 0-1 5F的量级,漏电流为1 p A(1 0-1 2A)
的量级。因为电压为1 V的量级,保持时间就大约为
( 9 - 2 4 )
也就是5 0毫秒( m s)。这是一个很短的时期。数
据必须周期地更新以确保在系统需要它时是有效
的。这称为刷新操作,在下面描述。
如图9 - 5 5表示了一个读操作。为了从该单元
检索数据,我们使W L = 1,闭合存取晶体管,允
许电流流向位线。一个放大器在输出端提供加强
的信号。该放大器是设计的关键部分,在设计过
程中被给予更多的关注。为了对数据提供快速存
取,读电路必须适当地快。
刷新操作就是,周期地对数据执行读出、放大及回写到单元。刷新电路包含在芯片中,
使该存储器似乎有长期的保持特性。因为最大保持时间是在1 0- 3秒数量级,所以最小刷新频率
的量级为
( 9 - 2 5 )
第9章存储元件与阵列271
下载
放大器
图9-55 DRAM单元中的读操作
从而,刷新率为数千赫兹的量级。记住重要的一点,每一个单元必须周期地刷新,所以该电
路被设计为循环通过整个阵列。
现代计算机技术中的许多进展能够回朔到R A M制造工艺的技术发展。因此,那是一个吸
引人的研究领域,即使你的兴趣在其他方面。
9.9.3 ROM
C M O S技术为大量要制造的R O M电路作了准备。尽管它们归属于“只读”器件,但允许
通过特别的电路技术输入用户数据。它们通常需要施加相当高的电压电平来操作芯片。因为
该器件能被编程,有时称它们为“主要读”器件。
E P R O M
E P R O M是Erasable-Programmable ROM的首字母的缩写词。这种类型的器件允许用户编
程(输入数据)和擦除数据。
用一个高电压传送电荷到一个“浮动的”电容器,就实现了编程。电荷存储在该电容器
上,在正常环境下不能逃逸。在这种器件里,把器件放在强烈的紫外线( U V)光源之下,能
够实现擦除。电子吸收光子(光能包),使它们有能量运动返回半导体中。尽管它们从前是用
户可编程R O M的主要类型,但已经被电可擦除可编程的器件所取代。
E2P R O M
这种存储器是电可擦除的( E2),代替了E P R O M的U V技术。它有这样的优势,数据可以
使用电子电路擦除,不需要芯片物理地从系统移开。因为这个特性,它在现代数字系统设计
中非常流行。
在管脚上加一个高电压,使电荷传送到电容器面板,实现编程。要擦除单元,使电压反
向,电荷向相反的方向移动。在一个基本阵列里,限制每次擦除一个单元。然而,更加新颖
的技术允许同时擦除大量的单元。这些器件称为闪烁E P R O M,这里的“闪烁”是指整个阵列
可以擦除的速度。
9.10 传输门电路
在集成电路设计中,传输门能够用来构建C M O S存储器元件。它们非常有用,因为T G的
行为就像一个理想的开关,能够断开和闭合。在一个存储电路的输入端使用一个T G,允许以
T G控制机制来控制锁存活动。
9.10.1 基本锁存器
图9 - 5 6表示了一个基本的锁存器电路,它使用了两个传输门T G 0和T G 1来控制数据
流;两个反相器提供双稳态存储。该电路的操作由载入控制位L D和它的补
—L D实现。注意,
到传输门T G 0 和T G 1的控制信号是以相反的方式应用的;当一个T G闭合时,另一个断
开。
为了理解该锁存器的操作,让我们首先分析L D = 1时的情况。T G 0断开和T G 1闭合,如
图9 - 5 7 a所示的条件。输入数据位码D能够进入电路,使第二个反相器的输出Q = D;这允许
我们载入(写)一个数据位码到该锁存器。注意,只要L D = 1,该锁存器就是贯通的,因为
输出将跟踪输入的变化。保持条件是如图9 - 5 7 b所示的L D = 0。断开T G 0,它反过来阻挡了新
272 数字系统设计基础教程
下载
数据的进入。传输门T G 1是一个闭合的开关,
产生双稳态的交叉耦合的反相器电路,能够维
持Q值。
基本的T G锁存器归属于电平敏感的器件,
因为它在L D = 1时接受输入。通过组合一个时
钟信号ø进入控制集,它能够用作一个时钟控制
的锁存器。在图9 - 5 8中,各处的L D(和
—L D)信
号已经用ø(和-ø)取代;这就使该锁存器在时
钟状态ø = 1时接受新的数据。
图9-57 TG锁存器操作
图9-58 时钟TG锁存器电路
图9-59 带控制载入的时钟锁存器
第9章存储元件与阵列273
下载
图9-56 TG锁存器电路
闭合断开
断开闭合
a) L D = 1 b) L D = 0(保持)
当ø = 1时D认可
a) 电路图解b) 时钟
a) 电路b) 控制逻辑
图9 - 5 9表示了另一种时钟控制输入的方法。在这种情况下,输入传输门T G 0由复合信号
L D·ø和
—L D·
-ø
控制。仅当L D = 1且ø= 1为真时,允许新数据输入。从而,这种电路的行为类
似于如图9 - 5 8中的时钟方式,除了L D对数据流提供一个附加的控制之外。图9 - 6 0的波形说明
了该电路时序的一个例子。总之,时钟信号ø(t)总是用作定时参考。在这种情况下,载入
信号L D仅在第一和第四个时钟周期为高。从而,复合信号L D·ø在此期间跟随时钟,在中间
的两个时钟周期为0。观察结果是,该锁存器将仅在第一和第四个周期接受数据。
图9-60 带载入控制的时钟TG锁存器的时序图解
9.10.2 TG触发器
一个主从触发器能够由级联的两个反相T G锁存器构建,如图9 - 6 1所示。第一个锁存器
(第一级)作为主触发器,第二个锁存器(第二级)作为从触发器。通过注意输入传输门由反
相时钟控制,可以看出这一点。当ø = 0时,主触发器有效并接受数据,而从触发器的输入需
要时钟ø = 1来容许新的信息。这在操作上与正边沿敏感的D F F是相同的。通过简单地交换时
钟信号ø和-ø,可得到一个负边沿敏感的D F F。该电路如图9 - 6 2所示。
图9-61 主从DFF电路
274 数字系统设计基础教程
下载
[秒]
[秒]
[秒]
阶段1 阶段2
图9-62 负边沿主从DFF电路
9 . 11 问题
1. 下面的置位( S)和复位(R)信号应用到一个S R锁存器。描绘出这个器件的输出Q(t)
的草图。
2. 下面的信号应用到图9 - 1 0中的时钟S R锁存器。描绘出输出Q(t)的草图。
3. 下面所示的数据信号D(t)应用到一个正边沿触发D F F的输入。描绘出这个器件的输
出Q(t)的草图。
第9章存储元件与阵列275
下载
阶段1 阶段2
4. 对于D(t)应用到一个负边沿触发D F F的输入,重做前一个问题。
5. 一个基于或非门的S R锁存器的复位(R)输入跳变为1,同时S = 0。画出它发生时的电
路,并在每一个节点标注逻辑值( 0或者1)。
6. 考虑基于与非门的S R锁存器。当S和R皆为0电平时,它的输出是什么?它为什么为
“不使用”的情形?
7. 考虑一个8位移位寄存器,起初,其中有二进制字0 1 0 111 0 0。在下面的操作已经执行之
后,该寄存器的内容是什么?对于每一种情况,假设初始状态由上面给出。
(a) SHR 2
(b) SHL 1
(c) ROL 3
(d) ROR 2
8. 一个8位移位寄存器,有十进制8 6的二进制等效值存储于其中。在下面的操作已经执行
之后,该寄存器十进制的等效内容为多少?对于每一种情况,假设被赋予相同的初始状态。
(a) SHR 1
(b) SHL 1
(c) SHR 2
(d) ROR 2
9. 一个1 6位寄存器包含0 x 4 A 3 5的二进制等效值。在下述操作已经执行之后,得出该寄存
器十进制的等效内容。对于每一种情况,假设被赋予相同的初始状态。
(a) SHR 6
(b) SHR 3
(c) SHL 8
(d) SHL 16
10. 考虑图9 - 3 7中的8×8 S R A M阵列。每一行的内容由下述列表给定:
行0:1010 1111
行1:1010 1111
行2:1010 1111
行3:1010 1111
行4:1010 1111
行5:1010 1111
行6:1010 1111
行7:1010 1111
当下述地址被应用到行译码器时,输出的十进制值是多少?
(a) A2A1A0 = 101
(b) A2A1A0 = 011
(c) A2A1A0 = 100
(d) A2A1A0 = 11 0
11. 使用图9 - 3 8中的示意图作为一个基础,画出一个1 6×4 S R A M的方框图。
12. 考虑图9 - 3 9所示的6 4×8 S R A M。该器件将作为创建一个大小为6 4 b×3 2 b的大型存储
276 数字系统设计基础教程
下载
器阵列的基础。构造这个大型存储器的方框图。
13. 考虑图9 - 3 9所示的6 4×8 S R A M。你想要使用该器件来设计一个包含2 5 6个3 2 b i t字的存
储器阵列。构造该存储器阵列的方框图。你可能考虑想要给每一个器件增加一个片选输入C S,
控制每一芯片,使得C S = 0使该器件失效,而C S = 1使它有效,容许读和写数据。
14. 在最近的报纸或者计算机杂志上寻找计算机广告,找到你所能够找到的关于S R A M和
D R A M芯片或者模块的最佳价格。然后,计算每种类型的每一b i t价格。这两类存储器在价格
上的百分比差异是多少?
15. 研究杂志或者报纸上的计算机广告。你能够找到多少种S R A M在个人计算机上的具体
应用?
16. 考虑3 b i t数据字b2b1b0。各位用于生成一个偶校验位p。那么,有3 + 1 = 4位被存储在存储
器中。当从存储器中读数据时,我们得到下面所列的结果。判决该数据是否满足奇偶校验检
查,或者存在一个错误。
(a) p b 2b1b0= 0111
(b) p b 2b1b0= 11 0 1
(c) p b 2b1b0= 0100
(d) p b 2b1b0= 11 0 1
(e) p b 2b1b0= 0000
17. 假设我们想要在一个紧凑盘片的表面上存储1 0 2 4个1 6 b i t数据字。实际上,在该盘的信
息表面上将要存储多少位?
18. CD ROM强有力的纠错能力是通过记录包含足够信息的大量数据来重构任何错误的输
出而获得的。因为这不是用户可存取的数据,所以称之为开销,它减少了有用存储的数量。
C D上的信息被划分为一些数据块,使目录简单化。每一块包含2 3 5 2个字节,其中2 0 4 8个
字节是真实的数据。一张标准C D可能的最长“播放时间”是7 4分钟,对应于3 3 3 , 0 0 0个块。
(a) 对于7 4分钟的播放时间,计算用户字节的总量。
(b) 开销占全部存储数据的百分之多少?
(c) 如果播放时间减少到6 0分钟,可利用的用户字节为多少?
(该C D在存储和播放时间之间存在线性关系。)
19. 一个数据传输系统的B E R确定为1 0-1 0。假设该系统以每秒1 0 0 M b的速率传输数据。该
系统能够传输数据而不发生错误的平均时间是多少?在真实世界环境中,我们怎样才能克服
该问题?
20. 考虑一个处于保持状态的动态R A M(D R A M)单元。它的存储电容的值为CS=6 0 f F,
而漏电流估计为IL= 0 . 2 p A。对于逻辑1状态,电压特性已知为V1= 3V,Vm i n=1 . 2 V。求出该单元
的保持时间。
21. 一个动态R A M(D R A M)单元的存储电容为CS=5 5 F,漏电流估计为IL= 0 . 1 4 p A。该电
容器上的最大电压为V1=3 V,最小逻辑1的电压为Vm i n=1 V。
(a) 该单元能够保持逻辑0状态多久?
(b) 逻辑1状态的保持时间为多少?
22. DRAM中的软错误是这样的情形,一个a粒子撞击硅,导致电荷的流动。这能够改变
该单元的内容。你能否想起一个D R A M环境,在那里,它可能是特别的重要?
第9章存储元件与阵列277
下载 
寄存器、锁存器与存储器:存储元件的本质区别与工程应用 数字电路中的存储家族常让人混淆:触发器存1位,锁存器也存1位,寄存器与存储器似乎都在存数据。它们的核心差异在于电平敏感与边沿触发的时序机制——锁存器在使能期间透明,触发器仅在时钟边沿采样。理解这一原理,就能明白寄存器为何由触发器构成,以及存储器为何采用可寻址阵列而非寄存器阵列。在CPU数据通路、串并转换、总线保持等场景中,寄存器负责高速暂存,SRAM/DRAM负责大容量存储,各有不可替代的定位。结合Verilog仿真波形观察三者的行为特征,有助于在工程实践中做出正确选型。 阅读详情

相关推荐

忆阻器交叉阵列安全挑战与激光故障注入防御

忆阻器交叉阵列(MCA)作为存内计算和神经形态硬件的核心组件,通过模拟计算特性实现了高效的神经网络运算。然而,这种模拟特性也带来了独特的安全挑战,尤其是激光故障注入攻击。激光故障注入利用忆阻器的非线性电导特性,通过光电流调制权重值,实现权重窃取或篡改。这种攻击不仅成本低,而且效果显著,对AI加速器和边缘计算设备构成严重威胁。为应对这一挑战,需从物理层、电路层和系统层构建综合防御体系,包括光屏蔽方案、异常监测电路和权重保护协议。这些技术不仅提升了MCA的安全性,也为存内计算和神经形态硬件的安全设计提供了重要参

weixin_30463341的博客 317

2021年DRBD9.1学习测试脱坑指南

概要 DRBD 简介 DRBD 安装及测试 DRBD与pacemaker集成 一、DRBD 简介 1、DRBD基础 DRBD的全称为:Distributed Replicated Block Device(DRBD)分布式块设备复制。DRBD是一个基于软件的、无共享、复制存储解决方案,它在主机之间镜像块设备(硬盘、分区、逻辑卷等)的内容。可以简单的看作是一种网络RAID-1。 DRBD镜像数据 实时: 当应用程序修改设备上的数据时,数据的副本更改是连续进行的。 透明: 应用程序不会

wade1010的专栏 7054

DRAM阵列结构实战解析:开放位线与折叠位线如何影响内存性能?

本文深入解析DRAM阵列中开放位线与折叠位线结构对内存性能的影响,探讨其在噪声容限、面积效率和信号完整性方面的差异。结合现代DDR4/DDR5技术演进,分析折叠位线成为主流选择的原因,并展望未来工艺微缩下开放位线的可能回归。

weixin_30316097的博客 98

java基本语法

1.内容 JRE是java运行时环境,包含了java虚拟机,java基础类库。是java程序运行所需要的软件环境,是提供给想运行java程序的用户使用的。 JDK是java开发工具包,是程序员使用java语言编写java程序所需的开发工具包,是提供给程序员使用的。JDK包含了JRE,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具:jconsole,jvisualvm等工具软件,还包含了java程序编写所需的文档和demo例子程序。 1.1 java的加载与执行 步骤

m0_47195133的博客 7770

​​【信息科学与工程学】【数据科学】数据科学领域 第十二篇 大数据主要算法01

参数符号定义维度/类型约束条件顶点数nV边数mE顶点集合V集合边集合E集合权重函数边权重映射函数可正可负顶点属性A(v)顶点特征向量维度d边属性B(e)边特征向量维度d'矩阵乘法线性系统: Ax = b特征值问题: Ax = λx最小二乘SVD分解算法类别时间复杂度空间复杂度数据规模适用性MapReduce排序O(n log n)O(n)10TB+K-MeansO(nkId)O((n+k)d)10M样本PageRank。

weixin_49199313的博客 1142

27、内存内处理技术:原理、挑战与设计考量

本文详细探讨了内存内处理技术的原理、设计挑战与优化考量,重点分析了DRAM、NVM和SRAM在计算集成中的差异与局限性。文章讨论了存储元件配置、阵列大小、并行激活行/列数、输入传递方式等关键设计因素,并提出了优化建议。此外,还介绍了脉冲宽度调制在输入激活中的应用,以及未来内存内处理技术的发展方向。

motor的博客 80

Oracle 学习笔记,,,经验总结整理的。。。

cmd进入: 1. D:\oracle\ora92\bin> 2. sqlplus /nolog 3. conn sys/sys as sysdba sqlplus进入: username:sys password:sys HostString: test as sysdba 重复 用户管理 创建用户,设定权限 create user fusp id...

fushaoping2008的博客 5701

16、硬件存储元件与有限状态机实用指南

本文深入探讨了数字系统设计中的核心概念——硬件存储元件与有限状态机(FSM)。从状态与时间的基本理论出发,介绍了状态图的构建方法、有限状态机的形式化模型及其在软硬件中的实现方式。文章详细分析了存储寄存器和移位寄存器的设计原理,并通过4位右移寄存器的Verilog RTL与结构化建模实例展示了具体实现过程。同时涵盖了有限状态机的应用场景与测试策略,为嵌入式系统与数字电路开发者提供了系统的理论指导与实践参考。

lg888的博客 28

一个4体低位交叉的存储器_无晶体管存储器技术

来源:创芯老字号世界上生产的绝大多数晶体管都被用于存储单元,既可以用作闪存、SRAM,也可以用DRAM。然而,并不是每个存储器单元中都要有晶体管。2015年,首个基于无晶体管内存单元的主要产品3D XPoint发布。Crossbar也在同年披露了自己的无晶体管存储单元的细节。是什么让晶体管替代具有吸引力?这些发展背后的驱动力是内存单元面积的减少。存储器元件可以直接堆叠在一个 "选择器 "...

weixin_36080653的博客 1059

20、数字硬件存储元件与有限状态机实用指南

本博客深入探讨了数字硬件中的存储元件与有限状态机的实用设计方法,涵盖可选测试指令、状态与时间概念、寄存器与计数器设计、时序分析及实际应用案例。通过丰富的示例和流程图,详细解析了Mealy与Moore状态机、同步与异步电路、扫描测试技术等内容,并结合Verilog建模与仿真,帮助读者掌握数字系统设计中的核心原理与工程实践。

lg888的博客 37

30、纳米空间中的并行计算与容错计算

本文探讨了纳米空间中的并行计算与容错计算技术,重点介绍了细胞阵列和脉动阵列在并行计算中的特性与应用,以及纳米电路中噪声和故障的容错机制。文章分析了并行计算和容错计算的相互关联性,并结合数字信号处理、图像处理、密码学和人工智能等场景进行了应用分析。最后,文章展望了未来技术融合、跨学科发展以及性能优化的趋势,为纳米技术在高效能计算领域的创新应用提供了参考。

t1u2v的博客 85

架构师之路(八)计算机组成原理(存储元件)

存储设备也是高度集成化的电子元件,架构师对于存储这块发挥的空间也不大,但是需要掌握存储有哪些类型、不同接口的区别等。也有个特性需要注意的就是:服务器的磁盘和pc的不能兼容。

KK6521的专栏 1064

O r a c l e与X M L

前 言 1999年3月,Philip Greenspun在Oracle公司总部举行了一次讲座,正是这次讲座给了作者写作本书的灵感。他的讲座涵盖了Internet、XML以及怎样生成以数据库为后端的Web站点。为什么Oracle数据库的使用在业界如此流行,以及为什么他认为Oracle开发组成员应该多为Oracle出版社写一些书等。作者由图书提纲开始,该提纲是关于他们在Oracle公司所做的XML方面的工作;然后编写各个章节。他们尽可能地听从了Philip的建议,把本书按问题域组织起来,而不是按技术或部门体系。时间很快过去了一年,到了2000年中旬,他们最终完成了本书。在此期间,他们在对Oracle的工作投入大量时间的同时尽可能保持着本书的进度,经历了一段真正的紧张生活。真的,任何一位作者,他们的家庭,以及Oracle出版社的编辑们,都不会忘记这段经历的。XML万岁!注意 本书的一部分销售收入将资助ArsDigita基金会和America誷 Promise两组织,以支持他们尝试推动教育进步的可敬事业。他们的Web站点分别是http://arsdigita.org和http://www.americaspromise.org。应用中的XML 你之所以阅读本书,目的可能是计划在现实的应用中使用XML。这种想法很好,因为XML并不是应用,它只是一种使能性的技术。为帮助你建立具有XML功能的应用,我们在合适之处介绍了大量不同的应用背景、特定的代码实例以及XML和XSL实例文件。你可以自由地使用这些代码,我们希望它可以引导你有效地使用XML来增强你的应用。注意 如果你对本书或CD要发表评论或在其中发现了错误,请不要犹豫,务请发e-mail到oraclexmlhandbook@yahoo.com。本书面向的读者本书是Oracle XML组件的用户指南。它并不是完全参考手册,因为所有的组件API文档都可以通过电子版得到,而且,如果把这些文档加进来,会使本书的规模加倍。参考文档可以在Oracle技术网络(Oracle Technology Network)上得到。本书的读者对象主要有两类:一类是使用Oracle进行应用开发并且需要开始使用XML的程序员;另一类是有兴趣学习怎样在Oracle产品中使用XML的读者。书中许多例子使用了Java,通过使用组件的命令行接口和简单的可以编辑XML、XSL、XSQL文件的文本编辑器,就可以试验XML的大量功能。怎样使用本书不必按顺序阅读本书。本书的第1、2章是XML和Oracle的XML技术的介绍性材料,如果你熟悉这些,可以跳过这两章。那些对建立具有XML功能的Oracle8i数据库应用感兴趣的读者,可以阅读第3、7章,以及第8章中对OTN应用的深入解释。如果你打算使用Oracle应用服务器、Internet文件系统(Internet File System)、以及interMedia Text(一种文本搜索引擎),那么请阅读第4章、第5、第6章。第9章展望了XML的未来。附录A给出了一些基本的W3C定义。各章的概要如下:第1章介绍了Oracle在XML工业技术方面做出的努力,解释了XML的基本概念与术语、XML存在的原因以及Oracle在业界的XML战略。同时本章也给出了Oracle技术网络及其XML链接、Oracle的具有XML功能的产品和XML组件的一览表,最后是一个具有XML功能的关于书籍出售的应用实例。第2章介绍了Oracle的XML开发包(XML Developer's Kit,XDK)组件,回顾了Java/C/C++/ PLSQL等语言的XML解析器及XSLT处理程序、Java/C++语言的类生成器、以及Java TransViewer组件。用于访问及处理XML/XSL文件的可工作代码也包括在本章中。第3章涵盖了Oracle8i内建的Java虚拟机和Oracle的Java XML组件。同时也介绍了怎样利用XDK的XSQL Servlet存储XML数据到数据库中或从数据库中获取XML数据。最后,介绍了具有XML功能的售书应用的设计与实现。第4章涵盖了Oracle应用服务器的体系结构及其与XML和XDK组件的联系。介绍了把书店应用作为QAS Servlet进行生成的实现。第5章介绍了Oracle的下一代文件系统—iFS。这一章涵盖了iFS的体系结构,它作为XML文件系统的行为特性,以及它怎样在内部使用XML来把文件数据映射到关系模式。本章中还包括了关于通用文件操作的几个代码实例。第6章涵盖了Oracle8i的文本搜索引擎—interMedai Text,回顾了其体系结构及搜索已存储的XML文档的能力。本章中的实例代码用于扩展书店应用,如产生索引并进行基于XML的搜索。第7章涉及到怎样把XML组件组装到端到端解决方案中。本章介绍了一个具有XML功能的数据库应用的设计,其中包括用XML增强的Web站点和由商家到客户(business-to-client,B2C)的消息传递系统。上述XML和XSL实例文件以及实例代码都包含在本章中。第8章介绍了Oracle技术网络(OTN)的关于XML的Web站点及其提供的XML示范。本章涉及怎样安装和运行这些示例,其中包括每个例子所示范的特定XML特性和能力方面的细节。第9章回顾了W3C和OASIS在XML标准上所做的努力,并基于这些组织已有的工作推测了XML未来的发展方向。同时本章注意到了业界的几家主要公司使用XML及其相关技术的方式。附录涵盖了主要的XML规范。它对W3C关于XML文档接口的两个主要标准—OM和SAX进行了讨论,同时也涉及到其他相关的XML技术标准如名字空间、XPath以及XSL变换等。随书光盘与Web站点你可以在随书光盘上找到Oracle XDK的产品版,它是相应于Java组件的,其中包括XML解析器、XSL处理程序、TransView Java beans以及XSQL Servlet等,还有许多富于说明性的示范。你还可以找到另外一些产品的试用版,如Oracle8i Release 2、JDeveloper 3.1以及Oracle的具有XML功能的Java开发环境的最早版本等。最后,我们把相应于Java和Web-to-Go Web服务器的业务组件也加入在内,来协助你开发端到端的商务应用。

转型中的全闪阵列

2015-07-08 当前的全闪存储阵列产品已不再一味以高I/O性能为诉求,开始讲求扩展性、数据服务与更多样化的应用,朝向高性能通用存储设备发展。以往,完全以Flash闪存储器组成的全闪存储阵列(All Flash Array),只有一个单纯任务——提供最高I/O性能的存储空间。因此全闪存储阵列供应商们的竞争焦点,也放在性能上,竞相以提供更高的IOPS性能为目标,对其他面向的需求着墨不多。由于定

changtao381的专栏 1704

机械臂速成小指南(八):标准DH法实战——从连杆坐标系到运动学方程

本文详细介绍了机械臂运动学建模中的标准DH法,从连杆坐标系的建立到运动学方程的求解,提供了实用的操作步骤和代码示例。通过DH参数表和变换矩阵的构建,帮助读者快速掌握机械臂运动学建模的核心技术,并解决实际应用中的常见问题。

oo7890的博客 211

2024年全国青少年信息素养大赛复赛真题(算法创意实践挑战赛C++试卷:带解析)

2024年全国青少年信息素养大赛复赛真题(算法创意实践挑战赛C++试卷:带解析)

王老师青少年编程 4785

FPGA架构解密:从LUT到CLB的工程艺术与设计哲学

本文深入解析FPGA架构的核心单元CLB(可配置逻辑块),探讨其如何通过LUT(查找表)、SLICE(逻辑切片)等组件的协同设计,实现性能、功耗与面积的极致平衡。文章从工程美学视角剖析FPGA底层设计哲学,为硬件工程师和架构师提供深入的技术洞察和实用优化策略。

a0b1c2d3的专栏 876

YOLOv8改进策略【卷积层】| ECCV-2024 小波卷积WTConv 增大感受野,降低参数量计算量,独家创新助力涨点

本文记录的是利用模块优化的目标检测网络模型。的目的是在不出现过参数化的情况下有效地增加卷积的感受野,从而解决了在感受野扩展中的参数膨胀问题。本文将其加入到深度可分离卷积中,有效降低模型参数量和计算量,并二次创新C2f,使模块更好地捕捉低频特征,增强网络性能。Wavelet Convolutions for Large Receptive Fields小波卷积及其改进的实现代码如下: 四、创新模块 4.1 改进点1⭐ 模块改进方法:加入(第五节讲解添加步骤)。添加后如下:模块改进方法:基于的(第五节讲解添加

Limiiiing的博客 1092

脉动阵列设计中的5个常见误区与避坑指南(以FIR滤波器为例)

本文以FIR滤波器为例,深入剖析数字IC设计中脉动阵列的五个常见误区,包括过度追求理论最优映射、混淆时空概念、忽视边界PE特殊性、误解延时单元作用及验证策略单一。文章提供了基于VLSI工程实践的避坑指南,强调在硬件开销、时序规划和动态验证间取得平衡,旨在帮助工程师设计出高性能且稳健的脉动阵列系统。

weixin_29188043的博客 301

主流几个JDK版本:JDK 8、JDK 11、JDK 17 和 JDK 21 的区别

主流几个JDK版本:JDK 8、JDK 11、JDK 17 和 JDK 21 的区别

技术分享 1725

自顶向下与自底向上编程思想的对比

一、核心定义与本质差异自顶向下编程思想如同绘制一幅完整的地图,从整体轮廓逐步细化到局部细节。其本质是从系统的整体目标出发,通过逐层分解将复杂问题简化为可实现的子问题,强调先定义 “做什么”,再考虑 “如何做”。自底向上编程思想则类似于搭建积木,从基础组件开始逐步构建复杂系统。其本质是从现有资源和基础功能出发,通过组合和扩展简单组件来实现复杂功能,强调先解决 “如何做” 的细节,再整合为 “做什么” 的整体。二、设计起点与逻辑流程对比设计起点:以系统的整体目标和业务需求为起点。例如设计一个电商平台,首先明确

二进制君 834

【FPGA学习笔记】(一)什么是FPGA?和单片机ARM有什么区别?

目录注意及引用FPGA整体概述新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 注意及引用 由于本人学习FPGA尚处于初级阶段,大部分资料学习来源于 Xilinx暑期学校以及《Xilinx FPGA原理与实践》,故部分内容引

weixin_46817156的博客 919

私家侦探如何追踪难以找到的人,掌握几个很少人知道的在线免费查询网站,搜索人名、电话号码以及地址的开源网站

私家侦探如何追踪难以找到的人,掌握几个很少人知道的在线免费查询网站,搜索人名、电话号码以及地址的开源网站。

代码讲故事 6487

FPGA - 7系列 FPGA内部结构之CLB -02- CLB功能详解

本文翻译自UG474第二章,主要对7系列FPGAs CLB结构进行详细介绍。这些细节对设计优化和验证很有帮助。

Vuko_Coding Zone 3671

Docker Desktop 从 C 盘迁移到 D 盘的正确方法

本文介绍了三种将Docker数据目录从C盘迁移到D盘的方案。方案1针对WSL2用户,通过导出/导入虚拟磁盘实现迁移;方案2采用软链接方式,适合所有Docker模式;方案3则建议重装Docker到D盘。其中WSL2迁移方案(方案1)最为稳定可靠,推荐使用。文章详细说明了各方案的操作步骤及注意事项,并提供了迁移后常见问题的解决方法,帮助用户彻底解决Docker占用C盘空间的问题。

sg_knight的专栏 2178

为什么 ADT 在 SAP BTP ABAP environment 里认证成功却无法登录 Service Instance:根因拆解与一站式修复路线

摘要 ADT报错"认证成功但Service Instance登录失败"通常源于ABAP租户的权限或用户映射问题,而非账号密码错误。常见原因包括:1) ABAP租户内未创建对应业务用户;2) 业务用户缺少开发角色(如SAP_BR_DEVELOPER);3) BTP角色集合未分配或IdP组映射缺失;4) 浏览器会话混淆身份;5) 连接了非开发租户(如Customizing Tenant);6) 实例休眠导致误判。 解决方法:检查ABAP业务用户及角色分配,确认BTP角色集合映射,使用隐身窗口

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 254
上一篇: 逻辑部件
下一篇: 时序逻辑网络
menuconfig
博客等级 码龄19年 713粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值