时间:2024-05-04
文章编号:1672-5913(2009)10-0072-02
摘要:长期以来,国内流行的某些计算机组成原理方面的教材存在两个错误,其一是相联存储器不按地址寻址的问题,其二是多模块交叉编址存储器带宽的计算问题。本文对这两个错误进行分析和探讨。指出了(1)按地址寻址是相联存储器不可缺少的功能;(2)交叉存储器的带宽约为顺序存储器带宽的m倍,m为模块数。
关键词:错误;相联存储器;寻址;交叉编址;带宽
中图分类号:G642
文献标识码:A
长期以来,由著名出版社出版、发行量大、多次再版印刷且获得过省部级以上奖项的计算机组成原理方面的优秀教材对我国高校的计算机教育具有重要的贡献。但是这些优秀教材也难免出现一点错误,其错误哪怕是很小的也会误导读者,这样的错误还被其它书籍引用或在一些考试中出现。下面对出现在这些优秀教材中的两个错误进行分析和探讨。
1相联存储器不按地址寻址的问题
文献[1]对相联存储器的描述是:“相联存储器不按地址访问存储器,而按所存数据字的全部内容或部分内容进行查找(或检索)”。有书籍一字不差地引用这个描述。文献[2]有这样的描述:“相联存储器又称联想存储器。它不是根据地址而是根据所存信息的全部特征或部分特征进行存取的,即一种按内容寻址的存储器。”
在一些考试中也有关于相联存储器寻址的试题,例如2006年11月系统分析师试题(国家软考办)和2008年12月西南大学网络教育学院计算机组成原理试题:
单项选择题:关于相联存储器,下面的论述中,错误的是(A) 。
(17) A.相联存储器按地址进行并行访问
B.相联存储器的每个存储单元都具有信息处理能力
C.相联存储器能并行进行各种比较操作
D.在知识库中应用相联存储器实现按关键词检索
单项选择题:相联存储器是按(③)进行寻址的存储器。
①地址指定方式 ②堆栈存取方式 ③内容指定方式 ④地址指定与堆栈存取方式结合
上述观点一致认为相联存储器不按地址寻址,但是相联存储器是可以按地址寻址的。文献[3]从电路原理给予了分析,即当相联存储器的屏蔽寄存器置全1时输出一个标志信号,该信号选择地址译码器,并禁止匹配寄存器输出,此时按地址访问相联存储器中的存储字。文献[4]中有这样的描述:“相联存储器既可按地址寻址,又可按内容(通常是某些字段)寻址,……,相联存储器有三种基本操作:读、写、检索(比较)。读、写操作与传统存储器相同,检索只能按内容进行”。
2按地址寻址是相联存储器不可缺少的功能
相联存储器可按地址寻址的前提是相联存储器中设置了地址译码器。我们知道相联存储器是一种随机读写式的半导体存储器,这样的存储器在加电的初始时刻其每个存储位取相同的初态(0或1)。设相联存储器的存储空间为n×k位,即每个字有k位共有n个存储字。现有含m(<n)个字的数据块要写入相联存储器中该如何写入呢?如果相联存储器中没有地址译码器就只能采用随机写入法或匹配写入法。随机写入法不能保证该数据块所含的m个字一个不少地写入相联存储器,因为当第一字写入相联存储器后,第二字写入时存在1/n的概率覆盖第一字,同理第三字写入时存在2/n的概率覆盖已写入的字,……。匹配写入法也是不可取的,设数据块中的m个字有l(<k)位关键词段key完全相同,key非全0亦非全1。但是加电的初始时刻相联存储器的存储空间一片空白,依靠什么进行匹配写入呢?即使第一个字已写入,由于第二字与第一字因key而匹配,则第二字写入一定覆盖第一字。如果按key不匹配来写入,设数据块中m个字的key完全不相同,则存在后写入的字覆盖已写入字的可能性,这样写入与随机写入法等价。还有一种写入法那就是顺序写入,顺序写入法总得要一个计数器来指示要写入的存储位置吧,那么其本质就是按地址寻址了。
如果相联存储器中没有地址译码器,设数据块已写入,要将新的若干个字添加到相联存储器中又如何操作呢?若按匹配写入则原数据块中的字将被覆盖,如果按不匹配写入则不能寻址,那只能随机写入,随机写入又可能产生覆盖,所以相联存储器中必需地址译码器。由于相联存储器中有地址译码器,可以用编程来解决这个问题。将屏蔽寄存器置全1,用通用寄存器A存放已写入数据块的关键词段key,用通用寄存器B作为地址计数器,使其从0开始计数,并通过地址总线送相联存储器的地址译码器,读取对应位置的存储字。若取出存储字的对应字段与key相同,则B加1读取下一个存储字,否则将一个新的字写入B所指示的存储位置。
地址译码器是一种简单的组合逻辑电路,因该电路半导体存储器很方便地实现按地址寻址。难道相联存储器的开发设计者会放弃这一功能模块,那么设计者采用什么电路来解决上述一系列问题?一种说法是相联存储器的“各个存储单元除了有存储信息的功能外,还应有信息处理的能力,也就是说每个存储单元必须有一个处理单元”。姑且不论这样的电路具体是如何实现的,但是可以肯定这将以大量的硬件开销为代价。即使如此,也不必排斥在相联存储器中集成地址译码电路而实现按地址寻址。
3关于多模块交叉编址存储器带宽的计算
文献[5]第102页有一道计算存储器带宽的例题如下,文献[6,7]]也有类似解法的例题或习题解答。
[例4]设存储器容量为32字,字长64位,模块数m= 4,分别用顺序方式和交叉方式进行组织。存储周期T= 200ns,数据总线宽度为64位,总线周期τ= 50ns。问顺序存储器和交叉存储器的带宽各是多少?
解:顺序存储器和交叉存储器连续读出m= 4个字的信息总量都是:q=64位×4=256位
顺序存储器和交叉存储器连续读出4个字所需时间分别是:t2= mT = 4×200ns= 8×10-7s ,
t1= T+(m-1)τ = 200ns+3×50ns= 3.5×10-7s 。
顺序存储器和交叉存储器的带宽分别是:W2=q/t2= 256÷(8×10-7)= 32×107[位/s] ,
W1= q / t1= 256÷(3.5×10-7)=73×107[位/s] 。
如果顺序存储器和交叉存储器连续读出8个字,根据例4的计算方法求得顺序存储器的带宽W2不变,而交叉存储器的带宽变为93×107位/s 。如果交叉存储器连续读出16个字,则其带宽变为108×107位/s ,如果交叉存储器连续读出32个字,则其带宽变为117×107位/s 。交叉存储器的带宽随连续读出字数的多少而变说明例4的计算方法是错误的,因为存储器的带宽是反映存储器特性的一个物理量,与存储器是否传送数据或传送数据的多少无关。
设多模块交叉编址存储器的每个模块的存储周期为T,总线传送周期为τ,交叉模块数为m(m为2的整幂),且T= mτ,则这样组织的存储器是一种按流水方式访问的存储器。若要连续传送n个字,则第一个存储周期T传送第一个字,以后每经过一个总线周期τ传送一个字。于是顺序存储器和交叉存储器连续传送n个字所需时间分别是:t2= nT = nmτ,t1= T+(n-1)τ = mτ +(n-1)τ。
t2/ t1= nmτ / [mτ +(n-1)τ] = m / [1 +(m-1)/ n]
当n >>m时,t2/ t1≈m ,说明顺序存储器所需时间约为交叉存储器所需时间的m倍,即交叉存储器的带宽约为顺序存储器带宽的m倍。可以说交叉存储器的带宽是指连续不断访问时的数据传输率。所以例4中的交叉存储器的带宽约为128×107位/s 。
参考文献:
[1] 王爱英. 计算机组成与结构[M]. 4版. 北京:清华大学出版社,2007:257.
[2] 罗克露,单立平,刘辉,等. 计算机组成原理[M]. 北京:电子工业出版社,2004:244.
[3] 蒋万君. 相联存储器的逻辑机理[J]. 高师理科学刊,2008(4):34-36.
[4] 唐朔飞. 计算机组成原理[M]. 北京:高等教育出版社,2000:148,149.
[5] 白中英. 计算机组成原理[M]. 3版.北京:科学出版社,2001:102.
[6] 文德雄,李向饶,王石.计算机组成原理习题与解析[M]. 3版.北京:清华大学出版社,2006:128,187.
[7] 陈书开,王毅,成云,等.计算机组成与系统结构[M]. 武汉:武汉大学出版社,2005:386.
Two Misconceptions in Domestic Text Books on the Principles of Computer Organization
JIANG Wan-jun
(Department of Computer Science, Chongqing Three Gorges College, Wanzhou 404000, China)
Abstract: Too long-term misconceptions have been introduced by some popular domestic text books on the principles of computer organization. One is that the associative memory is not addressed via address, another concerns the calculation of the bandwidth of multi-module cross addressing memory. This article attempts to initiate discussions on these two misconceptions by verifying two points: 1) being addressable via address is an indispensable function of the associative memory, and 2) the bandwidth of multi-module cross addressing memory is m times larger than that of sequential memory, in which m is the number of the modules.
Key words: misconception; associative memory; addressability; cross addressing; bandwidth
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!