以互斥位模式比较进行的存储器地址解码方法及相关装置的制作方法

文档序号:6444130阅读:222来源:国知局
专利名称:以互斥位模式比较进行的存储器地址解码方法及相关装置的制作方法
技术领域
本发明涉及一种进行存储器初步地址解码的方法及相关装置,特别涉及一种利用互斥位模式比较进行存储器初步地址解码的方法及相关装置。
背景技术
在现代社会中,能快速处理、管理各种数字数据、文件、资料及影音信息的微处理机系统,已成为信息社会最重要的基础配备之一。一般来说,为了实现各种复杂、多样化的功能,微处理机系统会设置暂存数据的存储装置(像是随机存取存储器),以暂存微处理机运作期间所需的程序及数据。微处理机读取并执行暂存于存储装置中的程序、数据,就能操控微处理机系统完成各种各样的功能。因此,微处理机存取存储装置的速度及效率,也就影响了微处理机整体运作的速度及效率。尤其是在现代,存储装置的存储容量越来越大,如何使微处理机系统能快速有效地存取高容量的存储装置,也成为现代信息厂商研发的重点之一。
请参考图1。图1为一典型计算机10的功能方块示意图。计算机10做为一微处理机系统,其中设有一中央处理器12、一芯片组14、一存储装置16、一显示卡18、一显示器20、一周边装置22及一基本输出入系统24。中央处理器12用来处理数据、资料,以主控计算机10的运作;存储装置16即用来以易失性的方式暂存中央处理器12运作期间所需的程序、数据。显示卡18用来处理影像讯号,以将计算机10运作的情形在显示器20上显示为影像画面;周边装置22则可包括键盘、鼠标等人机介面、用来以非易失性方式储存数据的硬盘机、光盘机、用来使计算机10连接于网路的网路卡或是处理声音讯号的音效卡等等。基本输出入系统(BIOS,basic input/outputsystem)24则用来储存计算机10开机时一些基本检查程序进行的设定及程序码等等。而芯片组14即用来管理中央处理器12与存储装置16、显示卡18、周边装置22、基本输出入系统24间的数据往来传输。芯片组14中可设有北桥电路26A及南桥电路26B;北桥电路26A用来管理中央处理器12与存储装置16、显示卡18间较高速的数据传输,南桥电路26B则用来管理中央处理器12与周边装置22、基本输出入系统24间较低速的数据传输。为了管理对存储装置16的存取,北桥电路26A中还设有一控制电路28。
在现代的计算机架构下,存储装置16通常由数个存储模块共同组成,像图1中就绘出了四个存储模块30A至30D作为代表。每个存储模块30A至30D中各包含有多个存储单元34,各存储单元34用来记录一位(bit)的数字数据;集合所有存储模块30A至30D中所有的存储单元34,就是存储装置16总共能提供的存储容量。在现行技术下,存储模块多半被做成独立的电路,可通过计算机10中的插槽连接于计算机10以形成存储装置16;不同的存储模块可具有不同数量的存储单元(也就是说,各存储模块可具有不同的存储容量),使用者可依需要选购不同容量的存储模块,装备存储装置16。一般而言,存储模块中的存储单元分布于两个直列(rank)存储阵列;举例来说,像图1中所示,存储模块30A即具有两直列存储阵列32A、32B。而控制电路28则会分别以一控制讯号来控制对一直列存储阵列的数据存取。就如图1中所示,控制讯号CSp0、CSp1即分别对应存储模块30A中的两个直列存储阵列32A、32B;而控制讯号CSp2至Csp7则分别对应于存储模块30B、30C及30D的直列存储阵列。
一般来说,存储装置16都能支援随机存取(random access)的功能,也就是能任意存取存储装置16中任何一个存储单元34中的数据;为了管理对存储装置16中各存储单元34的随机存取,存储装置16中的各存储单元34会被指派(assign)到一个独一无二的地址,做为单元地址。当中央处理器12要存取存储装置16中某一特定存储单元34的数据时,中央处理器12就可向控制电路28提示该特定存储单元34的地址,由控制电路28依据该地址解码出该特定存储单元34实际所在的存储模块,以实际对该特定存储单元34进行数据存取。也就是说,当控制电路28接收到对应一特定存储单元的给定地址(像是由中央处理器12指定的)时,控制电路28就要解码出该给定地址所在的存储模块,甚至是该给定地址所在的直列存储阵列,再以该直列存储阵列对应的控制讯号去触发该直列存储阵列,以配合该特定存储单元所在的存储模块,存取到该特定存储单元的数据(通常每个存储模块中会有自己的地址解码电路,可进一步解码出该给定地址对应的特定存储单元)。
关于存储装置16中各存储单元地址指派的情形,请先参考图2(并一并参考图1)。图2即为已知技术下,在存储装置16中对各存储单元进行地址指派的示意图。如图2所示,假设存储模块30A至30D分别具有225(二的二十五次方)、227、228以及226个存储单元,也就是说,存储模块30A至30D的存储容量分别为32百万位、128百万位、256百万位以及64百万位。这里的一百万位(Megabit)也就代表有220个位,也就是220个各储存一位的存储单元。当计算机开机后,控制电路28就会将数值线性递增的地址,依序分配给存储模块30A至30D中的每个存储单元。当然,在数字电路中,二进位是最基本的数值表示方式,各存储单元的对应地址也以二进位来表示。举例来说,如图2中所示,各存储单元的对应地址皆以二进位下的32个位来表示,以第0位为最不重要的位,第31位为最重要的位。在地址指派后,存储模块30A中的第一个存储单元会被指派为地址36A,其值为二进位的“000…0”,也就是所有的位皆为“0”。接下来的各个存储单元的对应地址就会依序递增,像是第二个存储单元的地址为36B,其值为“00…01”(仅第0位为“1”);而第三个存储单元的地址为36C,其值继续由地址36B递增1而变成为“0…010”(仅第1位为“1”),以此类推。到了存储模块30A中的倒数第二个存储单元(也就是第225+1个存储单元),其对应地址36D的值就会递增至二进位的“0…01…10”(由第1至第24位为“1”,余为“0”);而存储模块30A中最后一个存储单元(也就是第225个存储单元),其对应地址36E也由地址36D再递增1而成为“0…01…1”(第0至第24位为“1”,余为“0”)。
控制电路28在指派地址时,会将存储装置16中所有存储模块的所有存储单元视为一整体;所以当控制电路28在将地址指派至存储模块30B时,其地址的值会由地址36E(也就是存储模块30A中值最大的地址)继续递增。如图2中所示,存储模块30B中第一个存储单元会被对应至地址38A,其值会由地址36E的值递增1,而成为二进位的“0…010…0”(仅第25位为“1”),代表这个存储单元会被视为存储装置16中的第225+1个存储单元,也就是由存储模块30A第一个存储单元(地址36A对应的存储单元)算来的第225+1个存储单元。同理,存储模块30B中第二个存储单元会被视为存储装置16中的第225+2个存储单元,其对应地址38B会再由地址38A递增1,成为二进位的“0…010…01”(仅第0及第25位为“1”)。由于存储模块30B中有227个存储单元,所以到了存储模块30B中的最后两个存储单元,就分别成为存储装置16中第(225+227-1)及第(225+227)个存储单元,而其对应的地址38C、38D则分别递增至二进位的“0…01001…10”(第1至第24位、第27位为“1”,余为“0”)及“0…01001…11”(第0至第24位、第27位为“1”,余为“0”)。
依照上述的原则类推,到了存储模块30C(也就是第三个存储模块),其第一个存储单元的对应地址42A(也就是存储模块30C中其值最小的地址)会由地址38D的值递增1,成为二进位的“0…01010…0”(仅第25及第27位为“1”),也代表此一存储单元为存储装置16中,由地址36A的存储单元数来的第(225+227+1)个存储单元。到了存储模块30C中的第228个地址42B(也就是存储模块30C中其值最大的地址),其值就会递增至二进位的“0…011001…1”(第0至第24、第27、第28位为“1”,余位为“0”),代表其为地址36A依序递增以来第(225+227+228)个地址。同理,到了第四个存储模块30D,其第一个存储单元对应的地址44A即继续由地址42B递增1,成为二进位的“0…011010…0”(第25、第27及第28位为“1”),而存储模块30D最后一个存储单元的地址44B,也就继续递增至“0…011101…1”(第26至第28、第0至第24位为“1”,余位为“0”),代表其为地址36A以来,第(225+227+228+226)个地址。
在地址指派后,由各存储模块中第一个地址(也就是第一个存储单元对应的地址)及最后一个地址,就可以针对每一存储模块订出一结尾(ending)地址。如图2所示,由于存储模块30A中分配到的所有地址均小于存储模块30B中的第一个地址38A,故地址38A可视为存储模块30A对应的结尾地址46A。同理,存储模块30B(及存储模块30A)中各个存储单元被指派到的地址均小于存储模块30C中其值最小的地址42A,故地址42A可视为存储模块30B对应的结尾地址46B。而存储模块30C连同存储模块30A、30B中被分配到的地址均小于存储模块30C对应的结尾地址46C(也就是存储模块30D的最小地址44A)。最后,存储模块30D中的所有地址均小于结尾地址46D。请注意,各个结尾地址46A至46D也就是以二进位表示各存储模块容量累加的结果。如结尾地址46A代表的是二进位的225,也就是存储模块30A的存储容量(即存储模块30A存储单元的数量);结尾地址46B代表的是二进位的(225+227),代表存储模块30A、30B存储容量的总和;结尾地址46C代表的是二进位的(225+227+228),也就是存储模块30A、30B及30C存储容量累加的结果。最后,结尾地址46D代表的是二进位的(225+227+228+226),也就是累加存储模块30A至30D存储容量的结果。
由上述描述可知,即使存储装置16中的各个存储单元可能分属不同的存储模块,控制电路28还是会将各存储单元视为一整体,将连续递增的地址指派至各个存储单元,方便计算机10中的其他电路将各存储模块提供的存储单元视为一整体以进行存取。不过,如前所述,当中央处理器12(或其他电路)要以一给定地址存取一对应存储单元的数据时,控制电路28就要进行初步的地址解码,先确定该存储单元所在的存储模块(甚至是存储单元所在的直列存储阵列),才能在后续的过程中进一步实际存取到该存储单元。
请继续参考图3(及图1、2)。图3即为已知技术中,控制电路28进行初步地址解码功能的功能方块示意图。在控制电路28中,设有一存取模块51、多个减法模块48A至48D及一逻辑模块50。存取模块51用来暂存中央处理器12(或其他电路)传至控制电路28的给定地址54;而控制电路28即会对此给定地址进行初步的地址解码。在已知技术中,当控制电路28要进行初步的地址解码而判断一给定地址54属于哪一个存储模块时,控制电路28可用软件或硬件的方式,实现出减法模块48A至48D以及逻辑模块50的功能。减法模块48A至48D分别用来将给定地址54与结尾地址46A至46D相减(请一并参考图2),以减运算结果的正负分辨出给定地址与各结尾地址46A至46D的相对大小。减法器得出的结果会由逻辑模块50进一步整合,以实际判断出给定地址54所属的存储模块,并产生对应的解码结果,像是以指示讯号HPA至HPD来代表给定地址54所属的存储模块。举例来说,若给定地址54属于存储模块30A,给定地址54就会小于各结尾地址46A至46D。若给定地址54属于存储模块30B,给定地址54就会小于结尾地址46B至46D,但不小于结尾地址46A。同理,当给定地址54对应的存储单元属于存储模块30D时,给定地址54只会小于结尾地址46D,但不小于结尾地址46A至46C。像是在图3中所绘出的,若给定地址54为“0…010010…0”(仅第25、第28位为“1”),则其不小于结尾地址46A、46B但小于结尾地址46C、46D,由此逻辑模块50就可判断此给定地址54对应于存储模块30C中的存储单元。而逻辑模块50就可使指示讯号HPC的电压升高为代表数字“1”(或逻辑“真”)的高电平,以表示给定地址54属于存储模块30C;而其他指示讯号HPA、HPB及HPD的电压则为代表“0”(或逻辑“伪”)的低电平,以分别表示给定地址54不属于存储模块30A、30B及30D。
总结控制电路28的运作,当计算机10开机后,控制电路28会扫描存储装置16中各存储模块的存储容量大小,并对各存储单元进行地址指派,此时控制电路28也能计算出初步地址解码所需的结尾地址。等到后续有其他电路要存取某个给定地址的存储单元时,控制电路28就能依据结尾地址,利用其减法模块、逻辑模块进行初步的地址解码,求出该给定地址所属的存储模块,并在后续的过程中配合该给定地址所属的存储模块,实际存取到该给定地址对应的存储单元。
不过,不管图3中的已知技术是以硬件电路来实现减法模块,或是以北桥电路26A的微控制器执行软件程序来实现减法模块的功能,其运作的效率皆不高。以硬件电路的实施方式来说,要实现减法模块而将两个二进位数相减,可将其中一数取补数(像是1的补数,或是2的补数),形成该数的负数,再以二进位的加法器将该数的负数和另一数相加。由于二进位的加法器在将两个二进位数相加时,要由两数最不重要的位(LSB,也就是第0位)开始,进行位对位的相加,再进位到下一位,才能一个位一个位地逐渐完成两数的相加。举例来说,有两个二进位数A1、A2分别为“101”与“011”;当两数要相加而得出一和(sum)S时,要先从两数的第0位相加,由“1”+“1”得出“0”成为和S的第0位,并要进位“1”至下一个位。得到进位后,接下来才能进行两数第1位相加的计算,由数A1的第1位“0”加数A2的第1位“1”,再加上由两数第0位相加而进位的“1”,故得出和S的第一位为“0”,又要进位“1”至次一位。得到两数第一位相加的进位后,才能继续进行数A1、A2第2位的相加,由数A1的第2位“1”加数A2的第2位“0”,再加上由两数第1位进位而来的“1”,得出和S的第2位为“0”,进位“1”,最后得出和S为“1000”。
由上述描述可知,由于在进行二进位数的加法时,不仅两数的对应位要相加,还要等待前一位进位而来的结果,才能得出正确的加运算结果;而两数加运算所需的时间,就是各对应位分别进行加运算累计所需时间之和。也就是说,加法中二进位数的位越多,加法运算所需的时间也就会累增。而上述加运算时间消耗的特性会直接反映于已知的初步地址解码技术中;当图3中的已知技术要以减法模块进行的减运算来分别比较给定地址54与各结尾地址46A至46D的大小关系时,就会消耗相当的时间在减运算上,并导致已知控制电路28进行初步地址解码的效率低落,无法快速地解码出给定地址所属的存储模块。一旦地址解码的效率低落,中央处理器12(见图1)就不能快速有效率地存取存储装置16的存储资源,使整个计算机10运作的效率也无法有效提升。

发明内容
因此,本发明的主要目的,在于提供一种以互斥位模式直接比较进行的地址解码方法及相关装置,能快速有效率地进行给定地址的初步地址解码,克服已知技术的缺点。
在已知技术中,当要对一给定地址进行初步的地址解码而判断该给定地址属于哪一个存储模块(或是哪一个直列存储阵列)时,是以减运算(等效上也就是加运算)的结果来比较该给定地址与各项设的结尾地址间的大小关系,以判断出该给定地址属于哪一个存储模块,完成初步地址解码。然而,由于加运算要以逐位累加进位的方法,一个位一个位依序地先后进行,才能得出正确的加运算结果。因此,已知技术中以减运算为比较基础的初步地址解码方式,其运作的速度及效率较低,导致计算机不能快速有效率地存取存储资源。
在本发明中,则是以互斥位模式比较的方式来进行初步地址解码。经由本发明披露的排序技术,就可根据各存储模块存储容量的大小使不同存储单元对应于不同的地址,并使得属于各存储模块中的各个地址具有特定的互斥位模式。换句话说,在属于同一存储模块的所有地址中,必定有某几个特定的位为固定的值,形成该存储模块中各地址所共有的共同地址,而不同存储模块对应的共同地址则为互斥的(也就是说,两不同存储模块的共同地址中必定有至少一位为相异)。比较给定地址是否符合各存储模块的共同地址(也就是此给定地址中特定的位是否符合固定的预设值),就能判断给定地址属于那个存储模块,解码出给定地址所属的存储模块。由于模式比较是直接比较给定地址与共同地址间对应位的值是否相符,不需要像加运算中一般在不同位间进行累算、进位,故本发明的技术能快速有效率地完成初步地址解码,提升计算机存取存储装置资源的速度及效率,进而改善计算机整体的运作效能。


图1为一典型计算机的功能方块示意图。
图2为图1中计算机对存储装置中各存储单元地址指派的示意图。
图3为图1中计算机以一已知方法进行初步地址解码的功能方块示意图。
图4为本发明中计算机的功能方块示意图。
图5为本发明对图4中各存储单元进行地址指派的示意图。
图6为图4中控制电路的功能方块示意图。
图7为图6中比较单元的功能方块示意图。
图8A、8B为本发明于另一种存储模块配置下以不同排序方式进行地址指派的示意图。
图9A至9D为本发明于第三种存储模块配置下以不同排序方式进行地址指派的示意图。
图式的符号说明10、60计算机12、62中央处理器14、64芯片组16、66存储装置18、68显示卡20、70显示器22、72周边装置24、74基本输出入系统26A、76A北桥电路26B、76B南桥电路28、78控制电路30A-30D、80A-80D存储模块32A-32B、82A-82B直列存储阵列34、84存储单元36A-36E、38A-38D、42A-42B、44A-44B、86A-86D、88A-88C、90A-90C、92A-92C、132A-132E、136A-136F、151A-151B、152A-152B、153A-153B、
154A-154B地址46A-46D结尾地址48A-48D减法模块50、100逻辑模块51、101存取模块96A-96D、134A-134D、138A-138D、161A-161D、162A-162D、163A-163D、164A-164D位模式98A-98D标准地址99A-99D遮罩111比较模块112A-112D比较单元116排序模块118A-118H、122“与”门120A-120H“同”门CSp0-CSp7、CS0-CS7控制讯号HPA-HPD指示讯号119解码结果具体实施方式
请参考图4。图4为本发明中的计算机60的功能方块示意图。计算机60做为一微处理机系统,其设有一中央处理器62、一芯片组64、一存储装置66、一显示卡68、一显示器70、一周边装置72及基本输出入系统74。中央处理器62用来主控计算机60的操作,存储装置66用来以易失性的方式暂存中央处理器62运作期间所需的程序及数据、资料;显示卡68用来处理影像讯号,使计算机60运作的情形能以图形画面显示于显示器70上。周边装置72可包括让使用者输入操控指令的键盘、鼠标、用来以非易失性的方式储存数据的硬盘机、光盘机,用来处理声音讯号的音效卡或是用来将计算机60连接于网路的网路卡等等。基本输出入系统74中则储存了计算机60开机后进行初始化的设定值及相关程序。而芯片组64用来管理显示卡68、存储装置66、周边装置72、基本输出入系统74与中央处理器62间数据的往来传输。芯片组64中可设有一北桥电路76A、南桥电路76B;北桥电路76A用来主控存储装置66、显示卡68与中央处理器62间较高速的数据传输,南桥电路76B用来主控周边装置72、基本输出入系统74与中央处理器62间较低速的数据传输。在本发明中,存储装置66可沿用典型的配置,以多个存储模块(图4中绘出四个存储模块80A至80D做为代表)来组合出存储装置66的总存储容量。各存储模块80A至80D中分别设有多个存储单元84,各存储单元84用来暂存1单位(像是一位)的数据;集合各存储模块的所有存储单元,就构成存储装置66的总存储容量。就像典型的配置一样,各存储模块的多个存储单元也可分布于两个直列存储阵列(rank);以存储模块80A为例,存储模块80A中的各存储单元就分设于两个直列存储阵列82A、82B。为了控制计算机60中各电路对存储装置66的存取,北桥电路76A中设有一控制电路78,并以控制讯号CS0至CS7分别控制各存储模块80A至80D中不同直列存储阵列的存取。就像现行技术下的作法,控制电路78也会将不同的地址(也就是单元地址)分别指派给存储装置66中的各存储单元84,以对存储装置66进行随机存取;当然,当中央处理器62(或其他电路)要存取一给定地址的存储单元时,控制电路78就要进行初步的地址解码,计算出该给定地址对应存储单元是属于哪一个存储模块(或进一步地,属于哪一个直列存储阵列),进而以对应的控制讯号触发该直列存储阵列,实际存取该存储单元的数据。
请参考图5(并一并参考图4)。图5即为本发明进行地址指派时各存储模块中地址分布的示意图。为了方便和图2中的已知技术作比较,图5中也假设本发明中的存储模块80A至80D分别具有32百万、128百万、256百万及64百万位的存储容量,也就是分别具有225、227、228及226个存储单元;而本发明也会将线性递增的32位二进位地址指派至每一存储单元。不过,本发明会依据各存储模块中的容量多少,来进行地址指派。本发明的基本原则是,存储容量越大的存储模块,其所被指派的地址就越小。所以,就像图5中所显示的,在以本发明的技术进行地址指派时,会依据存储容量由大到小的顺序,依序由存储模块80C、80B、80D及80A指派递增的地址。换句话说,存储容量最小的存储模块80A,其所被分配到的地址的值最大,存储模块80D的地址值居次,存储模块80B被指派到的地址值又小于存储模块80D中各个地址值,而存储容量最大的存储模块80C,其所被分配到的地址值反而最小。如图5中所示,存储模块80C中的第一个存储单元会被指派到地址86A,其值为二进位的“0…0”(各位均为“0”),而存储模块80C中其他的地址则由地址86A递增,像是地址86B是由地址86A递增1而成为“0…01”(仅第0位为“1”)。在依序将递增的地址指派给存储模块80C的256百万个存储单元后,其最后两个存储单元所被分配到的地址86C、86D也就分别递增至二进位的“00001…10”(第1至第27位为“1”)及“00001…1”(第0至第27位为“1”)。
在本发明进行地址指派时,也会将各存储模块的存储单元视为一整体,故对存储容量仅次于存储模块80C的存储模块80B来说,其所被分配到的第一个地址88A(也就是存储模块80B中值最小的地址),其值也是由地址86D递增1而成为二进位的“00010…0”(仅第28位为“1”);存储模块80B中的其他地址则是由地址86D持续递增。像是第二个地址88B就是由地址88A递增1而成为“00010…01”(仅第0、第28位为“1”)。到了存储模块80B中其值最大的地址88C,就已经递增至二进位的“000101…1”(第0至第26、第28位为“1”),代表地址88C是从地址86A以来,第384百万(256百万+128百万)个地址。同理,对存储容量又小于存储模块80B的存储模块80D来说,其所被指派到的第一个地址90A也是由存储模块80B中的地址88C递增1,而成为二进位的“000110…0”(第27、第28位为“1”)。而存储模块80D中的其他地址则由地址90A递增,像是地址90B就是由地址90A递增1而成为二进位的“000110…01”(第0、第27、第28位为“1”)。到了存储模块80D中最后一个地址90C(也就是存储模块80D中最大的地址),就会递增至二进位的“0001101…1”(第0至第25、第27、第28位为“1”),代表地址90C是从地址86A算来第448(256+128+64)百万个地址。
依据本发明的精神,到了存储容量最小的存储模块80A,其所被分配到的地址是最大的。存储模块80A中的第一个地址92A,其值就是由存储模块80D中的地址90C递增1,而成为二进位的“0001110…0”(第26至第28位为“1”),存储模块80A中其他的地址则由地址92A递增,像是地址92B就是由地址92A递增1而成为二进位的“0001110…01”(第0、第26至第28位为“1”)。到了存储模块80A中的最后一个地址92C(也就是最大的地址),其值也就递增至二进位的“00011101…1”(第0至第24、第26至第28位为“1”),代表其为地址86A以来,第480百万个地址。
由以上描述可知,在本发明根据存储容量排序而进行地址指派后,在存储单元较多的存储模块中,其存储单元被指派到的地址也会比较小。而在经过本发明上述排序后的地址指派之后,各存储模块中的地址也会具有特定的位模式。如图5所示,对属于存储模块80C的各个地址(像是地址86A至86D)来说,虽然各地址的第0至第27位会在“0”与“1”之间改变,但各地址中第28至第31位都会维持为“0”。换句话说,对存储模块80C中的各个地址来说,在各地址的32个位中,第28至第31位等效上就形成了一共同地址,而第0至第27位则可视为一个别地址。对存储模块80C中的不同地址来说,其个别地址都是相异的,但共同地址则是相同的。而这也就导引出对应于存储模块80C的位模式96A。在位模式96A中,第0位至第27位以“x”记号标示,代表在存储模块80C中的各地址,其第0至第27位可能会分别是“0”或“1”,其值不固定,不同的地址会有不同的值;而这些位也就形成互异的个别地址。相对地,在位模式96A中,第28至第31位则都有“0”的固定值,代表存储模块80C中的各个地址,其第28至第31位必定为“0”;即使在存储模块80C中的不同地址,其第28至第31位都固定为“0”,而这也就是存储模块80C中各地址的共同地址。总的来说,在存储模块80C中,各地址会具有位模式96A的形式,虽然第0至第27位会在不同的地址中改变,但第28至第31位均固定为“0”。
同理,观察图5中分配至存储模块80B的地址(像是地址88A至88C)可看出,各地址中第31至第27位固定皆为“00010”,仅第0至第26位会随地址不同而改变。而这也就形成了对应于存储模块80B的位模式96B。在位模式96B中,第0至第26位会随地址不同而改变而形成个别地址,但第31至第27位会有固定值“00010”而成为存储模块80C中各地址的共同地址;换句话说,存储模块80C中的各个地址均会符合位模式96B,在第31至第27位固定为“00010”,而位模式96B的第0位至第26位以“x”记号标示,代表在存储模块80B中的各地址,其第0至第26位可能会分别是“0”或“1”。
而如图5所示,存储模块80D中的各个地址(像是地址90A至90C)会符合位模式96C,其第31至第26位会有固定值“000110”,代表在指派给存储模块80D的64百万个地址中,其第31至第26位皆固定为“000110”。以此类推,在存储模块80A中的32百万个地址均符合位模式96D,其第31至第25位固定为“0001110”。
综上所述,本发明可针对每一存储模块中地址分布的情形得到对应的位模式,就像在图5的例子中,存储模块80A至80D会分别具有对应的位模式96D、96B、96A及96C,各位模式就代表各存储模块中不同地址所共同具有的特性。而当本发明要进行初步地址解码而判断一给定地址所属的存储模块时,就可比较该给定地址是否符合位模式96A至96D,以判断给定地址所属的存储模块。举例来说,若给定地址的第28至第31位皆为“0”而符合位模式96A,就代表给定地址属于存储模块80C。同理,若给定地址的第31至第25位为“0001110”,就代表给定地址属于存储模块80A。请注意,经过本发明的排序而根据各存储模块的容量大小来指派地址后,各存储模块对应的位模式也是互斥的,也就是说,若给定地址符合一位模式,就必定不符合其他的位模式。如图5所示,若有一给定地址符合位模式96A而在第31至第28位为“0000”,则该给定地址必定不符合位模式96B至96D,因为位模式96B至96D的第28位均为“1”。同理,若给定地址符合位模式96B而在第31至第27位为“00010”,则该给定地址必定不符合位模式96A及96C、96D。这是因为位模式96A的第28位为“0”,而位模式96C、96D的第27位则均为“1”。同样地,符合位模式96D的给定地址必定不符合位模式96A至96C,因为位模式96A中第28位为“0”,而位模式96D的第28位为“1”;位模式96B中的第27位为“0”而位模式96D的第27位为“1”;而位模式96C中的第26位为“0”,位模式96D的第26位则为“1”。
上述这种位模式互斥的性质,其实就是因为本发明依据各存储模块的存储容量大小来指派地址的缘故。首先,由对应各存储模块的各个位模式可看出,各位模式中不具有固定值的位(也就是以“x”记号标记的位),其位个数和对应存储模块的存储容量有直接的关系。因为地址序列在由同一存储模块中的最小地址递增至最大地址时,各地址中必定要有一定个数个位在变化,才能使不同存储单元对应于不同的地址。像是在图5中的存储模块80C,其总共有256百万(228)个存储单元,故其对应的位模式96A中,第0位至第27位就要改变,才能组合出(228)种不同的地址。同理,在存储容量最小的存储模块80A中,由于存储模块80A只有32百万(225)位的存储容量,所以在其对应的位模式96D中,只要第0至第24位变动,就能组合出225个相异的地址,分配给存储模块80A中的不同存储单元。上述的特性再加上位模式中递增而进位的“1”,即可用来使不同位模式互斥。举例来说,在地址模式96A、96B之间,两者互斥的特性来自于第28位的值的差异,但地址模式96B中位于第28位的“1”其实是由地址86D的第27位进位而来的(请比较地址86D、88A),故地址模式96B中第28位的“1”其实就代表了存储模块80C的存储容量,而存储模块80C中的各个地址,都不会进位至第28位,故存储模块80C对应的位模式96A,其第28位就固定为“0”。另一方面,由于存储模块80B的存储容量小于存储模块80C的存储容量,故对应的位模式96B只要在第0位至第26位变动即可组合出存储模块80B中的不同地址,故位模式96B中位于第28位的“1”就会固定下来不会变动,成为存储模块80B中各地址的共同地址;而位模式96A、96B间的互斥性也就因此而建立。同理,在位模式96C中,其第27位中的“1”是由位模式96B中的地址88C递增进位而得,存储模块80B中的各个地址都不会进位至第27位;而位模式96C对应的存储模块80D仅有64百万位的存储容量,故仅需在第0位至第25位间变动,即可组合出64百万个地址。因此,位模式96C位于第27位中的“1”,也就让位模式96C和位模式96B互斥。以此类推,位模式96D中在第26位由地址90C递增而进位的“1”,也就能让位模式96D和位模式96C互斥。
利用本发明得到的互斥位模式,就能经由位模式的比较唯一地确定出一给定地址所属的存储模块,因为符合一位模式的给定地址,必不符合其他存储模块对应的位模式。若没有经由上述本发明披露的排序过程就进行地址指派,各存储模块中的地址虽然还是会有共同地址,但不同存储模块间的共同地址则不会是互斥的。举例来说,由图2中的地址指派情形其实也可归纳出在图2中,存储模块30A的各地址在第25至第31位固定为“0”,而存储模块30B中各地址在第28至第31位也固定为“0”。但即使一给定地址的第28至第31位为“0”而符合存储模块30B的共同地址,该给定地址还是有可能是属于存储模块30A,而非存储模块30B。
为了方便实际实施时的应用,由各位模式中可衍生出对应的标准地址及遮罩。像是图5中列出的标准地址98A至98D,就分别对应于位模式96A至96D;配合各标准地址98A至98D的应用,各标准地址98A至98D也分别有一对应的遮罩99A至99D。在各遮罩中,其值为“0”的位用来代表位模式中不具有固定值的位,也就是位模式中以记号“x”标示的位;相对地,其值为“1”的位,则用来代表对应位模式中具有固定值的位。至于地址模式中具有固定值的位其值为何,则记录于与各遮罩对应的标准地址的对应位中。举例来说,像是在对应于位模式96B的遮罩99B中,其第0至第26位皆为“0”,代表在位模式96B中的第0至第26位是不具有固定值的;而遮罩99B中第27至第31位的“1”,则代表位模式96B中的第27至第31位是具有固定值的。至于位模式96B中第27至第31位的值分别为何,则记录于对应的标准地址98B的第27至第31位中。换句话说,标准地址98B与位模式96B的第27至第31位分别相等,而标准地址98B的其他位则可以是任意值(像是在图5中,各标准地址未对应于遮罩中位“1”的位皆填入“0”)。再举一例,位模式96D有对应的遮罩99D及标准地址98D;因为在遮罩99D中的第31至第25位为“1”,代表位模式96D的第31至第25位为固定值,其值就是标准地址98D中第31至第25位的“0001110”。如前所述,因为各存储模块对应的位模式中,不具有固定值的位个数和对应存储模块的存储容量有关,而对应各存储模块的遮罩也就可以用存储模块的存储容量来产生。举例来说,存储模块80C有256百万的存储容量,其存储容量的值以32位的二进位数来表示即为“00010…0”(仅第28位为“1”)。将存储容量值减1后成为二进位的“00001…1”(第0至第27位为“1”),再将各位反相成为“11110…0”(第28至第31位为“1”),也就得出了存储模块80C的遮罩99A。
请参考图6(一并参考图5)。图6即为本发明控制电路78中用来实现初步地址解码功能的功能方块示意图。控制电路78中设有一存取模块101、一排序模块116、一比较模块111及一逻辑模块100。比较模块111中设有四个各对应于一存储模块的比较单元112A至112D。其中存取模块101用来暂存中央处理器62(或其他电路)传来的给定地址104,比较模块111中的各个比较单元112A至112D就是分别用来检查给定地址104是否符合各存储模块对应的位模式;根据各比较单元112A至112D的比较结果,逻辑模块100就能提供一解码结果119,用来反映给定地址104是否属于存储模块80A至80D。控制电路78运作的情形可描述如下。当计算机60开机时,控制电路78就会扫描存储装置66中的各个存储模块80A至80D,以判断各存储模块的存储容量。接下来排序模块116就能按照本发明的排序原则(亦即图5及相关讨论所述及的),根据各存储模块的存储容量,决定地址指派的顺序;而控制电路78就能根据排序模块116决定的顺序,使各存储模块中的存储单元对应于一地址。同时排序模块116也能根据排序、地址指派的结果,决定出各存储模块相对应的位模式(以及遮罩、标准地址),并据以设定各比较单元112A至112D以及逻辑模块100。这样一来,在后续运作的过程中,当中央处理器62(或其他电路)要存取存储装置66中某一存储单元时,就可将该存储单元的地址暂存至存取模块101做为给定地址104,而控制电路78就会对给定地址104进行初步地址解码,由比较模块111中的各个比较单元112A至112D将给定地址104和各存储模块对应的位模式比较,看看给定地址104符合那个位模式;而逻辑模块100就能根据各比较单元112A至112D比较的结果,提供解码结果119,反映初步地址解码的结果。
为了要更实际说明控制电路78初步地址解码进行的过程,图6也沿用了图5中的实例,故比较单元112A至112D分别用来比较给定地址104是否符合位模式96A至96D;由于在排序后,位模式96A至96D分别对应于存储模块80C、80B、80D及80A(请一并参考图5),故逻辑模块100即用来将比较模块112A至112D的比较结果,而判断给定地址104是否属于存储模块80A至80D之中的一个。在图6中,也实际假设了给定地址104为“000110…01”(第0、第27及第28位为“1”)。在各比较单元运作后,可发现此给定地址104符合位模式96C,其第31至第26位为“000110”,故比较单元112C可输出一“真”的结果(像是以高电平的电压),反映给定地址104是属于存储模块80D的。相对地,举例来说,图6中实例的给定地址104不会符合位模式96D,因其第31至第25位为“0001100”,而位模式96D的第31至第25位则为“0001110”;故比较单元112D会输出一“伪”的结果(像是低电平的电压),代表给定地址104不属于存储模块80A。事实上,图6中的实例给定地址104即是图5中属于存储模块80D的地址90B。
请参考图7,图7是以图6中的比较单元112B为例,显示本发明中比较单元功能方块的示意图;比较单元112B的功能即是用来比较给定地址104和位模式96B是否相符。如图5中曾描述的,由各位模式可导出对应的标准地址和遮罩,而在实际实现比较单元112B时,就能利用位模式96B对应的遮罩99B及标准地址98B。如图7所示,在比较单元112B中可设有多个“与”门及“同”门。各“与”门分别用来将给定地址104的一个位和遮罩99B的一个位作“与”运算,像是“与”门118A至118G就是用来将给定地址104的第31至25位分别和遮罩99B中的第31至第25位作“与”运算。而“同”门则用来将各“与”门运算的结果进一步和标准地址中的一个位作“同”运算,像是图7中的“同”门120A至120G即分别用来将“与”门118A至118G的输出结果和标准地址98B中的第31至第25位作“同”运算。各“同”门输出的结果会再经由一“与”门122作“与”运算,由“与”门122输出比较器112B的比较结果。在各“与”门将遮罩各个位和给定地址104的位作“与”运算时,就能将给定地址104中不需比较的位“遮住”,而将需要比较的地址的值传输至“同”门;而“同”门将各“与”门传来的结果和标准地址中的每一位作“同”运算,就是在比较给定地址104中需比较的位其值是否和标准地址中对应位的值相等;“与”门122则整合各“同”门的输出。就图7中的实例来说,遮罩99B中的第27至第31位为“1”,代表其对应的位模式96B在第27至第31位有固定值,而比较单元112B就要检查给定地址104中第27至第31位是否分别等于标准地址98B中的第27至第31位。在遮罩99B第31至第27位的“1”,会使“与”门118A至118E的输出结果分别由给定地址104中的第31至第27位决定,相当于将给定地址104的第31至第27位的值分别传输至“同”门120A至120E。而“同”门120A和120E进行的“同”运算就相当于比较给定地址104的第31至第27位是否分别和标准地址98B中的第31至第27位相等。若相等的话就输出“真”至“与”门122。相对地,像是遮罩99B中第26、第25位的“0”,就会使“与”门118F、118G的输出必定为“伪”,不论给定地址104中第26、第25位的值为何;而这也就相当于将给定地址104中的第26、第25位遮住。“与”门118F、118G输出的“伪”再分别配合上标准地址98B中被填入“0”的第26、第25位,就会使“同”门120F、120G的输出恒为“真”,让“与”门122输出的结果由“同”门120A至120E来主控。图7中也假设了给定地址104的值就和图6中的一样;在此情况下,由于给定地址104于第27位的值为“1”,与标准地址98B的第27位的“0”不符,故“同”门120E的输出为“伪”,使得比较模块112B于“与”门122的输出结果也是“伪”。
在图6、图7中各个用来实现本发明的功能方块均可以用硬件,或是以微控制电路中执行软件程序来实现,或甚至是用混合的方式来实现。举例来说,图6中的排序模块116、逻辑模块100可用软件来实现,而各比较单元112A至112D则可用硬件的逻辑电路来实现。虽然图7中是以“与”门、“同”门来实现本发明中的比较单元,但比较单元的功能也可以用软件的方式来实现。在以执行软件方式来实现图6、7中的功能方块时,可将软件程序码储存于基本输出入系统74中(请见图4)。
由上述对本发明实施方式的讨论可知,由于本发明是以位模式比较的方式来进行初步地址解码,故本发明能快速有效率的实施。因为在各比较单元进行位模式比较时,是比较位模式中具有固定值的位和给定地址104中对应位是否相符,可以同时、平行地对每个欲比较的位进行比较,再迅速地整合出比较的结果。举例来说,在图7中的比较单元112B运作时,可同时检查给定地址104的第25至第31位是否分别符合标准地址98B的对应位,再将各位比较的结果作“与”运算,得到比较的结果。以数字电路的运作时间来说,在本发明中,各比较单元可在同一时间中同时完成对给定地址1 04中各位的遮罩运算,再同时完成各对应位的比较,并将各对应位比较的结果做“与”运算,得出比较单元最后比较的结果。进行上述过程所需的时间,大致上就是单一位于“与”门进行遮罩运算所需的时间,于“同”门进行一位比较所需时间,再加上“与”门统合各“同”门输出结果的时间。在上述的三种不同运算中,每一种运算都相当简单,甚至能用单一逻辑门来实现,故本发明能够十分快速地完成整个比较模块的运作。相较之下,已知技术中以减法(等效上为加法)来进行初步地址解码,在各位进行加运算时,还要等待次一位加运算的进位,故其所需的时间是各位加运算所需时间累计总和的结果;以三十二位的地址解码来说,一般若取31至25位间至少需要7个别位运算所需时间(也就是7个门延迟)才能完成。很明显地,本发明的初步地址解码方法能更快速有效率地进行。
如前所述,本发明是基本上是先针对各存储模块的存储容量进行排序,以按照各存储模块的存储容量来决定分配至各存储模块的地址,使得存储容量较大的存储模块,其存储单元被指派的地址比较小;并因此能从不同存储模块所被分配到的地址推导出对应于各存储模块的互斥位模式,以作为初步地址解码的依据,当然若有2个存储模块大小相同时,其顺序并不限前后。此外,当各存储模块中有一个或多个存储模块(为讨论方便,以下将这些存储模块归类为存储模块B)存储容量之和等于另一存储模块(称为存储模块A)的存储容量(或一些存储模块的总容量,在此亦称为存储模块A)时,存储模块A中的地址应和各存储模块B的地址连续排列,但存储模块A的地址可以大于或小于各存储模块B的地址。不论存储模块A中各存储单元的地址是大于或小于各存储模块B的地址,都可产生出互斥的位模式。关于此情形,请参考图8A、8B。图8A、8B为本发明在同一存储模块配置下,以不同排序方式进行地址指派的示意图。在图8A、8B中,均假设存储模块80A至80D分别具有32百万、32百万、64百万及512百万的存储容量。在图8A中,各存储模块地址分配的情形就是按照本发明的基本排序原则,依照各存储模块的存储容量大小来指派地址,故各存储模块中的地址会依循存储模块80D、存储模块80C、存储模块80A及存储模块80B的顺序递增,使存储容量最大的存储模块80D,其所被分配到的地址最小。图8A中也标示出了各存储模块中最大及最小的地址(像是地址132A至132E)以及衍生出来的位模式134A至134D。由各位模式134A至134D可看出,各位模式间的确是互斥的。
不过,在图8A、8B的存储模块配置中,可发现存储模块80C的存储容量64百万位刚好等于存储模块80A、80B两存储模块存储容量(各32百万位)的和。此时可将存储模块80C视为一存储模块A,其存储容量等于两存储模块B(也就是存储模块80B、80A)存储容量之和。在这种情况下,即使存储模块80C的各地址大于存储模块80A、80B的各地址,也还是能产生互斥的位模式。如图8B所示,图8B中的排序方式是将连续递增的地址依照存储模块80D、80A、80B及80C的顺序依序指派给各存储模块中的存储单元。图8B中也显示出了在此种排序下各存储模块最大及最小的地址(像是地址136A至136F),以及衍生出来的对应位模式138A至138D。由图8B中可看出,虽然存储模块80C的存储容量比存储模块80A、80B个别存储容量都来得多,但图8B中的排序方式还是能使各存储模块对应的位模式为互斥的。
一般来说,在现行技术下,各存储模块的存储容量均为2的乘幂,故当数个存储模块B存储容量之和等于一存储模块A的存储容量时,若使地址序列由各存储模块B递增至存储模块A,就会在存储模块A中造成额外的进位,且这进位的“1”会成为存储模块A中各地址的固定值,进而使得存储模块A的对应位模式得以和各存储模块B的位模式互斥。就像图8B中的例子所示,当地址序列由存储模块80B的地址136D递增至存储模块80C的地址136E时,会在地址136E的第26位造成进位的“1”,且这个第26位的“1”会形成存储模块80C中各地址的固定值,而存储模块80C对应的位模式138D也就因这个第26位的“1”而与存储模块80A、80B对应的位模式138B、138C互斥。相对地,若在图8B的排序中,存储模块80C的存储容量不是64百万位而是128百万位,且存储模块80C的地址还是由地址136D递增,则存储模块80C对应的位模式应该是“0010x…x”(仅第31至第28位为固定值“0010”),此位模式就不会和存储模块80A、80B的对应位模式138B、138C互斥了。
换句话说,只要某几个存储模块B的存储容量总和等于存储模块A(存储模块A可为一个或多个存储模块所构成),不论地址序列是由存储模块A的地址递增至各个存储模块B的地址(像图8A的情形),或是由各存储模块B的地址递增至存储模块A的地址(像图8B的情形),只要各存储模块B和存储模块A的地址是连续排列的,就能形成互斥的位模式。在这里所谓的连续排列,其条件为(1)各存储模块B的地址连续排列,除了第一个存储模块B(也就是地址值最小的存储模块B)外,其他的存储模块B的地址都是由另一存储模块B的地址递增而来。举例来说,像在图8A、8B的例子中,存储模块80A、80B的地址形成不间断的连续递增地址序列。(2)存储模块A中最小的地址由各存储模块B中最大的地址开始继续递增(像是图8B中的情形),或者是,各存储模块B中最小的地址是由存储模块A中最大的地址开始继续递增(像是图8A中的情形)。
关于上述原则的进一步应用,请参考图9A至9D。图9A至9D为本发明在另一种存储模块配置下,以不同排序情形进行地址指派的示意图;图9A至9D中分别显示了各存储模块在地址指派下最大及最小的地址(像是地址151A至151B、152A至152B、153A至153B及154A至154B),以及各存储模块对应的位模式161A至161D、162A至162D、163A至163D与164A至164D。在图9A至图9D的例子中,均假设存储模块80A至80D的存储容量分别为32百万、32百万、64百万及128百万位。在此种配置中,存储模块80C的存储容量等于存储模块80A、80B存储容量的总和,存储模块80D的存储容量又等于存储模块80A至80C存储容量的总和。故存储模块80C的地址可以连续排列于存储模块80A、80B之前或之后,而存储模块80D的地址也可连续排列于存储模块80A至80C之前或之后,总共有四种不同的排序情形,皆可产生出互斥的位模式;图9A至9D就分别显示了这四种排序下的地址指派情形及对应的位模式,若再考虑相同大小存储模块(存储模块80A、80B)的顺序互换,则会有8种变化,在此不再一一指出。像在图9A中的排序结果,即是依照本发明的基本原则,根据存储容量由大到小的顺序,使地址序列依循存储模块80D、存储模块80C以及存储模块80A、80B的顺序递增。不过,就像上一段落所讨论到的,因为存储模块80D的存储容量为存储模块80A至80C存储容量的总和,故存储模块80D的地址也可以大于存储模块80A至80C的地址。就像图9B所示,即使地址序列是依照存储模块80C、80A、80B至80D的顺序递增,也能形成互斥的位模式162A至162D。另外,由于存储模块80C的存储容量等于存储模块80A、80B存储容量的总和,故图9A中存储模块80C及存储模块80A、80B排序的顺序也可相反,成为图9C中的情形,让地址序列依照存储模块80D、存储模块80A、存储模块80B及存储模块80C的顺序递增。而图9B中存储模块80A至80C的排序也可重排为图9D中的情形,使地址序列依照存储模块80A、80B、80C及80D的顺序递增。请注意图9A及图9D的排序情形刚好相反,但由于各存储模块间存储容量总和相等的关系,图9D中的排序还是可以产生互斥的位模式164A至164D。
不论是图8A、B或是图9A至9D中的情形,皆可使用图6中显示的控制电路78来实现本发明的初步地址解码。举例来说,要在图9D的排序情形下实现初步地址解码,可由图6中的比较单元112A至112D比较给定地址104是否分别符合图9D中的位模式164A至164D,而图6中的逻辑模块100则由比较单元112A至112D的比较结果产生解码结果。
总结本发明的排序原则,基本上是依循存储模块的存储容量由大到小的顺序,依序指派渐增的地址。但若某些存储模块B的存储容量总和等于另一(些)存储模块A的存储容量,则存储模块A的地址可连续排列于各存储模块B地址之前或之后,此外还可扩大说只要符合“某个存储模块的前面的存储模块容量总和为该存储模块的整数倍”,此排列顺序的互换是成立的。依照本发明的排序原则,就能使不同的存储模块对应于互斥的位模式,而能以位模式比较的方式进行初步地址解码。虽然前述的图5至图9D都是讨论本发明如何以位模式来判断给定地址属于哪一个存储模块,但上述的讨论也可一般化,将存储模块视为存储单元组成的区段,而本发明的精神即可由各区段导出对应的位模式(以及对应的遮罩、标准地址),以位模式比较的方式来判断一给定地址所属的区段。举例来说,只要将各存储模块中的直列存储阵列视为一区段,则本发明也可进一步用来判断给定地址属于哪一个直列存储阵列。
在已知的地址解码技术中,是将给定地址与各结尾地址相减,以判断出给定地址与结尾地址之间的大小关系,并进一步判断出给定地址属于哪一个存储模块(或直列存储阵列),以完成初步的地址解码。但在将给定地址于结尾地址相减而进行二进位的加运算时,由于各位的加运算必需等待前一位的进位,故整个将给定地址于结尾地址相减的运算只能针对两地址中的每一位一个接着一个地一进行加运算,其所消耗的时间,也就是各位加运算所需时间的累计结果。故已知技术中进行初步地址解码所需消耗的时间较长,因此效率较低。相较之下,本发明则是以位模式比较的方式来进行初步地址解码;以本发明披露的技术,可由不同的存储模块中推导出互斥的对应位模式;只要给定地址符合某一位模式,就能判断给定地址属于该位模式对应的存储模块。由于在位模式比较时,可同时比较位模式中具有固定值的多个位是否与给定地址中的对应位相同,不论要比较几个位,其所需的时间基本上就跟比较单一位所需的时间相同。故本发明能快速地进行初步地址解码,以较高的效率比较出给定地址属于哪一个存储模块或是直列存储阵列,并进而提升整个计算机系统对存储资源存取的效率。
以上所述仅为本发明的较佳实施例,凡依本发明权利要求书所做的均等变化与修饰,均应属本发明专利的涵盖范围。
权利要求
1.一种存储器地址解码的方法,以判断一给定地址是否属于该存储器的多个区段之一,每一区段设有多个存储单元,且所有存储单元的不同对应地址为二进位排列方式,该方法包含有使具有存储单元数量多的区段的对应地址,小于存储单元数量少的区段的对应地址;由这些对应地址,对每一区段分别取得一位模块;以及比较该给定地址的至少一比较位与任一位模块是否相符,并根据比较的结果,判断该给定地址落于这些区段之一。
2.如权利要求1的存储器地址解码方法,其中这些区段为多个存储模块。
3.如权利要求1的存储器地址解码方法,其中对每一区段分别取得一位模块,是分别由每一区段内对应地址的全部相同位,作为这些位模块。
4.如权利要求1的存储器地址解码方法,其中这些比较位不符合任一区段的该位模块,则表示该给定地址未落于该区段内,反之则表示该给定地址落于该区段内。
5.如权利要求1的存储器地址解码方法,其中具有存储单元数量相同的区段可互换其顺序。
6.如权利要求1的存储器地址解码方法,其中每一区段中,依序将不同的存储单元的对应地址以线性递增或递减方式,使一对应地址的值和前一对应地址的值相差一定值。
7.如权利要求1的存储器地址解码方法,其中各区段中存储单元的数量为2的乘幂。
8.一种存储器地址解码的方法,以判断一给定地址是否属于该存储器的多个区段之一,每一区段设有多个存储单元,且所有存储单元的不同对应地址为二进位排列方式,该方法包含有进行这些区段的存储单元数量大小排列,使存储单元数量多的区段的对应地址,小于存储单元少数量的区段的对应地址,若排列后至少一第一区段的存储单元数量大小等于至少一第二区段的存储单元数量大小时,则该第一区段与该第二区段的顺序可进行互换;由这些对应地址,对每一区段分别取得一位模块;以及比较该给定地址的至少一比较位与任一位模块是否相符,并根据比较的结果,判断该给定地址落于这些区段之一。
9.如权利要求8的存储器地址解码方法,其中这些区段为多个存储模块。
10.如权利要求8的存储器地址解码方法,其中对每一区段分别取得一位模块,是分别由每一区段内对应地址的全部相同位,作为这些位模块。
11.如权利要求8的存储器地址解码方法,其中这些比较位不符合任一区段的该位模块,则表示该给定地址未落于该区段内,反之则表示该给定地址落于该区段内。
12.如权利要求8的存储器地址解码方法,其中每一区段中,依序将不同的存储单元的对应地址以线性递增或递减方式,使一对应地址的值和前一对应地址的值相差一定值。
13.如权利要求8的存储器地址解码方法,其中各区段中存储单元的数量为2的乘幂。
14.一种存储器地址解码的控制电路,以判断一给定地址是否落于该存储器的多个区段之一,每一区段设有多个存储单元,且所有存储单元的不同对应地址为二进位排列方式,该控制电路包含有一存取模块,接收该给定地址;一排序模块,使存储单元数量多的区段的对应地址,小于存储单元少数量的区段的对应地址,若至少一第一区段的存储单元数量大小等于至少一第二区段的存储单元数量大小时,则该第一区段与该第二区段的顺序可进行互换;以及一比较模块,由这些对应地址,对每一区段分别取得一位模块,与接收到该给定地址的至少一比较位进行比较是否相符后,送出多个比较信号。
15.如权利要求14的存储器地址解码的控制电路,更包括一逻辑模块,接收这些比较信号,送出一解码结果,以判断该给定地址落于这些区段之一。
16.如权利要求14的存储器地址解码的控制电路,其中这些区段为多个存储模块。
17.如权利要求14的存储器地址解码的控制电路,其中比较模块中,每一区段分别取得一位模块,是取这些区段内对应地址的全部相同位,作为这些位模块。
18.如权利要求14的存储器地址解码的控制电路,其中该比较模块是由多个比较单位构成,每一比较单元包括多个第一级“与”门、多个“异或”门与一第二级“与”门构成,每一第一级“与”门具有两输入端分别接收这些位模块所产生的一遮罩位与对应到该给定地址的一位,每一该“异或”门具有两输入端分别接收这些第一级“与”门之一的输出与这些位模块所产生的一标准地址,该二级“与”门的输入端连接到这些“异或”门输出端,并送出该比较信号。
全文摘要
本发明提供一种在一存储装置中进行地址解码的方法及相关装置,以判断一给定地址属于该存储装置中的那个区段。该存储装置中设有多个区段,各区段中设有多个存储单元;而该方法首先是根据各区段中存储单元的数量,将不同的存储单元对应于不同的二进位单元地址,并使各单元地址中有部分位形成一共同地址,同一区段的不同存储单元具有相同的共同地址,且不同区段存储单元的共同地址为互斥。而当要判断该给定地址所属的区段时,比较各区段对应的共同地址是否与该给定地址中的对应位相符。
文档编号G06F7/38GK1438578SQ0310851
公开日2003年8月27日 申请日期2003年3月28日 优先权日2003年3月28日
发明者刘明熙 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1