CN1668999A - 具有共享存储器的改进结构 - Google Patents
具有共享存储器的改进结构 Download PDFInfo
- Publication number
- CN1668999A CN1668999A CNA038067447A CN03806744A CN1668999A CN 1668999 A CN1668999 A CN 1668999A CN A038067447 A CNA038067447 A CN A038067447A CN 03806744 A CN03806744 A CN 03806744A CN 1668999 A CN1668999 A CN 1668999A
- Authority
- CN
- China
- Prior art keywords
- processor
- memory
- memory module
- processors
- storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
描述了一种具有共享单个存储模块的多个处理器的系统,其中没有显著的性能恶化。将存储模块划分为n个可独立访问的存储体,其中n至少为2,并且对其进行映射,从而在存储体之间对顺序地址进行循环。这样的映射导致将顺序数据字节存储在交替存储体中。每一个存储体还可以划分为多个存储块。通过对处理器进行交错或同步以执行计算机程序从而使每一个处理器在相同的周期内访问不同的存储块,这些处理器可以同时访问存储器。另外,设置了高速缓存器,使处理器能够从不同的存储体中提取来自存储器的多个数据字,以减小由存储器竞争所引起的存储器等待时间。
Description
技术领域
本发明通常涉及一种集成电路(IC)。更具体地,本发明涉及具有共享存储器的改进结构。
背景技术
图1示出了诸如数字信号处理器(DSP)的传统芯片上系统(SOC)100的一部分的方框图。如图所示,所述SOC包括通过总线180与存储模块160相连的处理器110。所述模块存储了包括一系列指令的计算机程序。在SOC的操作期间,处理器检索并执行来自存储器的计算机指令以进行所需的功能。
SOC可以配备有诸如执行相同程序的多个处理器。根据应用,处理器可以执行不同的程序或共享相同的程序。通常,每一个处理器与其自身的存储模块相关联以改善性能,这是由于存储模块在一个时钟周期内可以仅由一个处理器访问。因此,利用其自身的存储器,处理器不必等待存储器空闲,这是由于仅该处理器是将访问其相关的存储模块的唯一处理器。然而,由于每一个处理器需要双份的存储模块,因此,牺牲了芯片尺寸而实现了改进的性能。
如从以上讨论中显而易见,需要提供其中处理器能够共享存储模块以减小芯片尺寸而不会引起传统设计中的性能代价的系统。
发明内容
在一个实施例中,本发明涉及一种在多个处理器之间共享存储模块的方法。将所述存储器模块划分为n个存储体,其中n=2(至少)。每一个存储体在任一时刻能够由一个或多个处理器访问。对所述存储模块进行映射,以便将顺序地址分配给存储器中的交替存储体,其中,由于存储器的映射,将顺序数据存储在交替存储体中。在一个实施例中,将存储体划分为x个存储块,其中x=1(至少),其中,在任一时刻,每一个存储块可以由多个处理器之一来进行访问。在另一实施例中,所述方法还包括对处理器进行同步以在任一时刻访问不同的存储块。在另一实施例中,在存储模块和处理器之间设置了第一和第二信号路径。第一信号路径将高速缓存器与处理器和存储模块相连,以使处理器能够从不同的存储体中同时提取多个数据字。这减小了由存储器竞争所引起的存储器等待时间。第二信号路径将存储模块直接与处理器相连。
附图说明
图1示出了传统SOC的方框图;
图2示出了根据本发明一个实施例的系统;
图3-5示出了根据本发明不同实施例的FCU的流程;
图6示出了根据本发明另一实施例的系统;
图7-8示出了根据本发明的不同实施例的判优单元的流程图;以及
图9-10示出了根据本发明的不同实施例的存储模块。
具体实施方式
图1示出了根据本发明一个实施例的系统200的一部分的方框图。例如,所述系统包括:针对单个芯片上的多端口数字订户线(DSL)应用的多个数字信号处理器(DSP)。所述系统包括m个处理器210,其中m是等于或大于2的整数。作为示例,该系统包括第一和第二处理器210a-b(m=2)。在系统中设置多于两个的处理器也是有用的。
这些处理器通过各个存储总线218a和218b与存储模块260相连。例如,所述存储总线为16比特宽。也可以根据每一个数据字节的宽度,使用其他尺寸的总线。将由处理器访问的数据字节存储在存储模块中。在一个实施例中,数据字节包括程序指令,由此,这些处理器从存储模块中提取指令用于执行。
根据本发明的一个实施例,在处理器之间共享存储模块,而没有显著的性能恶化,消除了针对每一个处理器提供双份存储模块的需要。通过将存储模块分离为n个独立操作的存储块265,避免了显著的性能恶化,其中n是大于或等于2的整数。优选地,在系统中,n=处理器的数量(即,n=m)。由于存储体独立地操作,因此,在相同的时钟周期内,处理器能够同时访问存储模块的不同存储体。
在另一实施例中,将存储体细分为x个可独立访问的存储块275a-p,其中x是大于或等于1的整数。在一个实施例中,将每一个存储体细分为8个可独立访问的存储块。通常,存储块的数量越多,则竞争的可能性越低。在一个实施例中,选择存储块的数量以优化性能并减少竞争。
在每一个实施例中,每一个处理器(210a或210b)具有与每一个存储体相连的总线(218a或218b)。存储阵列的存储块的每一个均具有诸如控制电路278,以将数据适当地放置在去往处理器的总线上。例如,控制电路包括复用电路或三态缓冲器,以便将数据引导到正确的处理器。例如,将每一个存储体细分为8个存储块。通过在存储体内设置独立的存储块,有利地,处理器可以访问不同的存储块,而与其是否来自相同的存储体无关。这通过减小处理器之间的可能冲突而进一步增强了系统性能。
此外,对存储器进行映射,从而在不同的存储体之间循环相邻的存储地址。例如,在双存储体的存储模块(例如,存储体0和存储体1)中,将偶地址分配给一个存储体(存储体0),而将奇地址分配给另一存储体(存储体1)。这将导致在顺序地址中的数据字节被存储在交替存储体中,例如,数据字节1存储在存储体0中,数据字节2存储在存储体1中,数据字节3存储在存储体0中,依此类推。在一个实施例中,数据字节包括程序中的指令。由于除了跳跃(例如,分支和循环指令)之外顺序地执行程序指令,因此,在程序执行期间,处理器将通常在每一个周期之后访问存储模块的不同存储体。通过对处理器进行同步或交错来执行程序从而使处理器在相同的周期内访问不同的存储体,多个处理器可以同时访问在存储模块260中所存储的相同程序。
流程控制单元(FCU)245对处理器进行同步以访问不同的存储块,从而防止存储器冲突或竞争。在存储器冲突的情况下(例如,两个存储器同时访问相同的存储块),FCU锁定一个处理器(例如,插入等待状态或周期),同时允许另一处理器访问存储器。这应该对这些处理器进行同步以在下一个时钟周期访问不同的存储体。一旦已同步,则两个处理器可以在相同的时钟周期内访问存储模块,直到发生了由诸如跳跃指令引起的存储器冲突为止。如果两个存储器(210a和210b)尝试在相同的周期内访问存储块275a,则在一个周期内,将等待状态插入到处理器210b中,从而处理器210a首先访问存储块275a。在下一个时钟周期,处理器210a访问存储块275b,并且处理器210b访问存储块275a。因此,对处理器210a和210b进行同步,以在随后的时钟周期内访问不同的存储体。
可选地,处理器可以配备有各自的关键存储模块215。例如,所述关键存储模块小于主要存储模块260,并且用于由处理器经常访问的程序或子程序(例如,关键的MIPS)。使用关键存储模块通过减小存储器冲突增强了系统性能,而不会达到显著增加芯片尺寸的程度。设置了控制电路214。所述控制电路与总线217和218相连,以适当地复用来自存储模块260或关键存储模块215的数据。在一个实施例中,所述控制电路包括三态缓冲器,以便去连接和连接适当的总线与处理器。
在一个实施例中,将FCU实现为状态机。图3示出了根据本发明一个实施例的FCU状态机的一般处理流程。如图所示,FCU控制由处理器(例如,A或B)进行的访问。在步骤310,对FCU进行初始化。在操作期间,处理器在下一个时钟周期内发布与存储器访问相对应的各个存储地址(AAdd和BAdd)。在步骤320,FCU比较AAdd和BAdd,以确定是否存储存储器冲突(例如,这些处理器是正在访问相同的存储块还是不同的存储块)。在一个实施例中,FCU检查这些地址以确定是否对任何关键存储模块进行寻址(未示出)。如果或者处理器A或者处理器B正在访问其各自的本地关键存储器,则不会发生冲突。
如果不存在任何冲突,则在步骤340,这些处理器在相同的周期内访问存储模块。如果存在冲突,则在步骤350,FCU确定由处理器所进行访问的优先级。如果处理器A具有更高的优先级,则在步骤360,FCU允许处理器A访问存储器,而处理器B执行等待状态。如果处理器B具有更高的优先级,则在步骤370,处理器B访问该存储器,而处理器A执行等待状态。在步骤340、360或370之后,FCU返回到步骤320,以便针对由处理器所进行的下一个存储器访问,对地址进行比较。例如,如果诸如在步骤360处存在冲突,则针对处理器B插入等待状态,而处理器A在地址AAdd处访问存储器。因此,对两个处理器进行同步以在后续周期内访问不同的存储块。
图4示出了根据本发明另一实施例的FCU的处理流程401。在冲突的情况下,在步骤460处,FCU通过检查处理器A以确定其是否已经执行了跳跃,分配访问优先级。在一个实施例中,如果处理器B已经执行了跳跃,则锁定处理器B(例如,执行等待状态),而向处理器A准予访问优先级。否则,锁定处理器A,并且向处理器B准予访问优先级。
在一个实施例中,在步骤440,FCU对处理器A和处理器B的地址进行比较以确定这些处理器是否正在访问相同的存储块。在这些处理器正在访问不同的存储块(例如,无冲突)的情况下,在步骤430,FCU允许两个处理器同时访问存储器。如果存在冲突,则例如,在步骤460,FCU比较处理器A的当前和前一个地址的最低有效位以确定访问优先级。如果最低有效位并不相等(即,当前和前一个的地址是连续的),则处理器B可能通过执行跳跃而已经引起了冲突。由此,FCU进行到步骤470,锁定处理器B而允许处理器A访问存储器。如果最低有效位相等,则在步骤480,锁定处理器A,并且处理器B访问存储器。
图5示出了根据本发明的可选实施例的FCU 501。在操作之前,在步骤510,对FCU进行初始化。在步骤520,FCU对处理器的地址进行比较以确定其是否访问了不同的存储块。如果这些处理器正在访问不同的存储块,则在步骤530,同时允许两个处理器访问。然而,如果处理器正在访问相同的存储块,则存在冲突。在冲突期间,FCU确定哪一个处理器引起了冲突,例如,进行了跳跃。在一个实施例中,在步骤550和555处对处理器的当前和前一个地址的最低有效位进行比较。如果处理器A引起了跳跃(例如,处理器A的前一个和当前地址的最低有效位是相等的,而处理器B的前一个和当前地址的最低有效位是不相等的),则FCU进行到步骤570。在步骤570,FCU锁定处理器A而允许处理器B访问存储器。如果处理器B引起了跳跃,则在步骤560,FCU锁定处理器B,而允许处理器A访问存储器。
可能发生两个处理器同时进行跳跃的情况。在这样的情况下,FCU进行到步骤580,并且检查优先级寄存器,所述优先级寄存器包括了表示哪一个处理器具有优先级的信息。在一个实施例中,触发优先级寄存器以在处理器之间更替优先级。如图5所示,在步骤580,FCU在确定哪一个处理器具有优先级之前触发优先级寄存器。可选地,可以在已经确定优先级之后触发优先级寄存器。在一个实施例中,在优先级寄存器中的1表示处理器A具有优先级(步骤585),而0表示处理器B具有优先级(步骤590)。利用1表示B具有优先级而利用0来表示A具有优先级也是有效的。在发生了其中任一个处理器未进行跳跃的冲突(例如,处理器A或处理器B的当前和前一个地址的最低有效位不是相同的)的情况下,也可以进行相同的处理。
在可选实施例中,还可以由FCU使用其他类型的判优方案以对处理器进行同步。在一个实施例中,可以向这些处理器赋予相对于其他处理器的特定优先级。
图6示出了根据本发明的一个实施例的系统600的一部分的方框图。例如,所述系统包括针对单个芯片上的多端口数字订户线(DSL)的多个数字信号处理器(DSP)。所述系统包括m个处理器610,其中m是等于或大于2的整数。作为示例,该系统包括第一和第二处理器610a-b(m=2)。设置多于两个的处理器也是有效的。
设置存储模块660,用于在处理器之间进行共享。将由处理器访问的数据字存储在存储模块中。数据字包括比特组(例如32比特)。在一个实施例中,所述数据字包括程序指令,由处理器通过存储总线(例如618a和618b)从存储模块中访问以便执行。所述数据字还可以包括应用程序数据。
根据本发明的一个实施例,在处理器之间共享存储模块,而没有显著的性能恶化,消除了针对每一个处理器设置双份存储模块的需要。通过将存储模块分离为n个可独立操作的存储体(例如665a和665b),避免了显著的性能恶化,其中n是大于或等于2的整数。优选地,n=系统中处理器的数量(即,n=m)。由于存储体可以独立地操作,因此,在相同的时钟周期内可以同时访问不同的存储体。
在另一个实施例中,还可以将存储体细分为x个可独立访问的存储块675a-p,其中x是大于或等于1的整数。例如,将存储体细分为8个可独立访问的存储块。通常,存储块的数量越大,则竞争的可能性越低。在一个实施例中,选择存储块的数量以优化性能并减小竞争。
例如,存储阵列的存储块具有控制电路668,以便将数据适当地放置在去往处理器(610a或610b)的存储总线(例如,618a或618b)上。例如,所述控制电路包括复用电路或三态缓冲器以便将数据引导到各个处理器。通过在存储体内设置独立的存储块,有利地,处理器可以同时访问不同的存储块,而与其是否来自相同的存储体无关。这通过减小处理器之间的可能冲突而进一步增强了系统性能。
此外,对存储器进行映射,从而在不同的存储体之间循环相邻的存储地址。例如,在双存储体的存储模块(例如,存储体0和存储体1)中,将给一个存储体(存储体0)赋予偶地址,而给另一存储体(存储体1)赋予奇地址。这将导致在顺序地址中的数据字节被定位在交替存储体中,例如,数据字节1存储在存储体0中,数据字节2存储在存储体1中,数据字节3存储在存储体0中,依此类推。在一个实施例中,数据字节包括程序中的指令。由于除了跳跃(例如,分支和循环指令)之外顺序地执行程序指令,因此,在程序执行期间,处理器将通常访问存储模块的不同存储体。通过对处理器进行同步或交错来执行程序从而使处理器在相同的周期内访问不同的存储体,多个处理器可以同时执行在存储模块660中所存储的相同程序。
设置了通过数据总线与处理器相连并通过存储总线与存储模块相连的判优控制单元(ACU)。所述ACU控制由处理器对存储器的访问。在存储器竞争的情况下(例如,两个处理器同时访问相同的存储体),则ACU确定哪一个处理器具有访问存储模块的优先级,而锁定其他处理器(通过执行等待状态或周期)。这通常对处理器进行同步以在后续的时钟周期为访问不同的存储体。
在一个实施例中,设置了优先级寄存器以表示哪一个处理器具有优先级。在具有两个处理器的系统的情况下,优先级寄存器可以包括一个比特(P比特)。可以包括另外的比特以容纳另外数量的处理器。在发生竞争之后更新优先级寄存器以在处理器之间循环优先级。例如,在P比特中的值“1”表示第一处理器具有优先级,而“0”表示第二处理器具有优先级。在发生竞争的每一个周期内,对P比特进行触发,从而触发处理器的优先级。其他类型的判优方案也是有效的。
可选地,这些处理器可以配备有各自的关键存储模块615。例如,所述关键存储模块小于主要存储模块660,并且用于由处理器经常访问的程序或子程序(例如,关键的MIPS)。使用关键存储模块通过减小存储器冲突增强了系统性能,而不会达到显著增加芯片尺寸的程度。
ACU 645与n个控制逻辑单元(CLU)相连,一个控制逻辑单元针对n个处理器中的每一个。作为示例,ACU包括分别针对第一处理器610a和第二处理器610b的第一CLU 648a和第二CLU 648b。当激活CLU时,允许其相应的处理器对存储模块进行访问。在一个实施例中,CLU与处理器相连,并且与存储模块的n个存储体相连,使处理器能够同时访问n个存储体。由于处理器的带宽等于存储体的带宽,因此,CPU允许处理器从存储器中提取比需要更多的字。在一个实施例中,处理器可能会提取为所需的两倍的数据字。
在一个实施例中,CLU包括第一(高速缓存)和第二(正常)信号路径。例如,所述高速缓存信号路径包括高速缓存寄存器(633a或633b)和复用器(636a或636b)。当选择了高速缓存路径时,与CLU相连的处理器访问第一和第二存储体(665a-b)。在一个实施例中,访问由处理器所指定的当前地址位置(Addr)和下一个地址(Addr+1)。复用器选择在(Addr+1)处的数据字,并且将其存储在高速缓存器中,而将当前地址(Addr)处的当前地址传递到处理器。例如,将高速缓存器中所存储的数据字的地址存储在高速缓存地址寄存器(640a或640b)中。如果选择了第二路径(正常),则处理器访问当前的存储位置。CPU通过第二路径将当前存储位置处的数据字传递到处理器。通过设置高速缓存器来存储后续地址处的数据,降低了从存储器中的数据访问的可能性,因此减小了由存储器竞争所引起的存储器等待时间。
处理器可以配备有各自的关键存储模块615a和615b。例如,所述关键存储模块小于主要存储模块660,并且用于由处理器经常访问的数据(例如,程序或子程序)(例如,关键的MIPS)。使用关键存储模块通过减小存储器冲突增强了系统性能,而不会达到显著增加芯片尺寸的程度。
图7示出了根据本发明的一个实施例的ACU状态机的处理流程。如图所示,ACU控制由第一和第二处理器(A或B)所进行的访问。对ACU系统进行初始化(710),例如,在系统操作(例如,系统上电)之前。例如,初始化包括设置表示在存储器竞争的情况下哪一个处理器具有优先级的优先级位。例如,设置优先级寄存器以便向处理器A提供优先级。
在系统的操作期间,处理器在下一个时钟周期中发布与存储器访问相对应的各个存储地址(AAddr和BAddr表示当前由处理器A和处理器B发布的存储地址)。ACU在步骤720和722处确定是否存在存储器竞争,例如,这些处理器是否正在访问相同的存储范围。在一个实施例中,存储范围与存储块相一致。在另一实施例中,存储范围与不同存储体中的存储块相一致,所述存储块包括连续的地址。如果不存在任何竞争,则在步骤750,处理器A和B访问存储模块的各自的存储体。在一个实施例中,利用所选择的正常信号路径激活处理器A和B的CLU。因此,每一个处理器从各自的存储体中检索在地址AAddr和BAddr处的数据字。
如果发生了竞争,则在步骤726,ACU评估优先级寄存器以确定哪一个处理器具有访问优先级。在步骤728,允许具有访问优先级的处理器P对存储器进行访问,而具有较低优先级的另一处理器P’(例如,处理器B)执行等待状态。因此,如果处理器在下一个周期中随后访问顺序位置中的数据字,则将访问不同的存储体而不执行等待状态。通过对处理器进行同步或交错以执行程序从而使处理器在相同的周期内访问不同的存储体,多个处理器可以无竞争地同时执行在存储模块660中所存储的相同程序。
在一个实施例中,在步骤730,利用高速缓存信号路径来激活处理器P的CLU。从存储体中提取来自当前地址PAddr和下一个连续地址PAddr+1的数据。将当前地址PAddr中的数据传递到处理器P以便访问,而将下一个地址PAddr+1中的数据存储在高速缓存寄存器中。在步骤322,ACU针对在步骤722处的下一个竞争评估来更新优先级。
在步骤734,ACU确定由处理器P在下一个周期中所指定的新地址PAddr是否与高速缓存数据相匹配(即,高速缓存命中)。如果发生了高速缓存未中,则通过在步骤720评估由处理器A和B针对竞争所指定的地址来重复该处理。在一个实施例中,丢弃与处理器P相关的高速缓存寄存器中的数据。
高速缓存命中通过从高速缓存器而不是存储器中检索数据,将允许处理器P继续执行,从而避免在步骤736处插入等待状态。在一个实施例中,在步骤734处,利用高速缓存信号路径来激活处理器P’的CLU。从存储体中提取来自当前地址P’Addr和下一个地址P’Addr+1的数据。在当前地址P’Addr中的数据传递到处理器P’以便访问,而将下一个地址P’Addr+1中的数据存储在与P’相关的高速缓存寄存器中。如果在下一个周期中存在针对处理器P’的高速缓存命中,则在步骤740,由处理器P’访问高速缓存数据。由处理器访问在处理器P的当前地址PAddr中的数据,而将下一个地址PAddr+1中的数据存储在与P相关的高速缓存寄存器中。当仅有一个处理器正在访问存储器时,不需要对竞争进行检查。在步骤734重复针对处理器P的高速缓存命中的确定。如果在步骤738发生了针对P’的高速缓存未中,则ACU重复在步骤处的整个处理。
在图8所示的另一实施例中,ACU包括针对每一个处理器的高速缓存信号路径,所述高速缓存信号路径允许从存储器中提取比由处理器所请求的更多的数据字。例如,高速缓存信号路径包括高速缓存寄存器和复用器。在系统的操作期间,在步骤820和822处,针对竞争来评估由处理器A和B所发布的地址。如果存在竞争,则评估优先级,并且如先前在图7中所描述的,针对具有较低优先级的处理器插入等待状态。
如果不存在竞争,则在步骤852,针对高速缓存命中评估与两个处理器相关的高速缓存器。如果未发现高速缓存命中,则在步骤850,处理器A和B通过各自的高速缓存信号路径来访问存储模块的各个存储体。在一个实施例中,利用所选择的高速缓存路径来激活处理器A和B的CLU。将当前存储地址(AAddr和BAddr)传递到各个处理器以便访问,并且将下一个连续地址(AAddr+1和BAddr+1)中的数据存储在各个高速缓存寄存器中。如果针对两个处理器检测到高速缓存命中,则在步骤862,由这些处理器访问各自的高速缓存器的内容,并且在步骤820,重复该处理。
如果仅针对处理器之一发现了高速缓存命中,则可以针对另一处理器继续存储器访问,而由于仅有一个处理器正在访问存储器,无需对竞争进行测试。例如,如果针对处理器A检测到高速缓存命中,而针对处理器B检测到高速缓存未中,则在步骤854,访问与处理器A相关的高速缓存器中的内容,而由处理器B访问来自当前存储地址BAddr的数据。将来自存储器的下一个位置BAddr+1处的数据存储在与处理器B相关的高速缓存器中。在下一个周期中,针对高速缓存命中再次监控针对处理器B的高速缓存器。如果发生了高速缓存命中,则在步骤856检索针对处理器B的高速缓存器的内容。将针对处理器A提取来自处理器的地址AAddr处的数据。在步骤858处的高速缓存未中将引起处理从步骤820开始重复。
图9到10示出了根据本发明的不同实施例的存储器的映射。参考图9,示出了具有2个存储体(存储体0和存储体1)的存储模块260,每一个存储体细分为8个存储块(存储块0-7)。作为示例,假定存储模块包括具有16位宽度的512Kb的存储器,向每一个存储块分配了2K的可寻址位置(2K×16比特×16存储块)。在一个实施例中,将偶地址分配给存储体0(即,0、2、4、……32K-2),并且将奇地址分配给存储体1(即,1、3、5、……32K-1)。存储体0的存储块0将具有地址0、2、4、……4K-2;存储体1的存储块1将具有地址1、3、5……4K-1。
参考图10,示出了具有4个存储体(存储体0-3)的存储模块,每一个存储体细分为8个存储块(存储块0-7)。假定存储模块为具有16比特宽度的512Kb的存储器,则向每一个存储块分配了1K的可寻址位置(1K×16比特×32存储块)。在存储模块包括4个存储体的情况下,如图10所示,将按照以下方式来分配地址:
存储体0:从0开始的每一第四地址(即,0、4、8等)
存储体1:从1开始的每一第四地址(即,1、5、9等)
存储体2:从2开始的每一第四地址(即,2、6、10等)
存储体3:从3开始的每一第四地址(即,3、7、11等)
针对n个存储体,对存储器映射作如下总结:
存储体0:从0开始的每一第n地址(即,0、n、2n、3n等)
存储体1:从1开始的每一第n地址(即,1、1+n、1+2n、1+3n等)
存储体n-1:从n-1开始的每一第n地址(即,n-1、n-1+n、n-1+2n、等)
尽管已经参考各种实施例中具体示出和描述了本发明,但是本领域的技术人员将会意识到,在不脱离本发明的精神和范围的情况下,可以对本发明进行修改和改变。因此,本发明的范围不应参考以上描述来确定,而应该参考所附权利要求及其等价物的完全范围来确定。
Claims (34)
1.一种在多个处理器之间共享存储模块的方法,包括:
将存储模块划分为n个存储体,其中n=至少2,其中,在任一时刻可以由一个或多个处理器来访问每一个存储体;
对存储模块进行映射以将顺序地址分配给存储器中的交替存储体;以及
将数据字节存储在存储器中,其中,由于存储器的映射,将顺序地址中的所述数据字节存储在交替存储体中。
2.根据权利要求1所述的方法,其特征在于还包括步骤:将每一个存储体划分为x个存储块,其中x=至少1,其中,在任一时刻可以由多个处理器之一来访问每一个存储块。
3.根据权利要求1或2所述的方法,其特征在于还包括步骤:确定是否已经发生了存储器访问冲突,其中在任一个时刻,两个或多个处理器正在访问相同的存储块。
4.根据权利要求1、2或3所述的方法,其特征在于还包括步骤:对处理器进行同步,以便在任一时刻访问不同的存储块。
5.根据权利要求4所述的方法,其特征在于还包括步骤:当发生了存储器访问冲突时,确定处理器的访问优先级。
6.根据权利要求5所述的方法,其特征在于确定访问优先级的步骤包括给已经引起了存储器冲突的处理器赋予较低的访问优先级。
7.根据权利要求5所述的方法,其特征在于确定访问优先级的步骤包括给进行了跳跃的处理器赋予较低的访问优先级。
8.根据权利要求4、5、6或7所述的方法,其特征在于对处理器进行同步的步骤包括:当发生了存储器访问冲突时,在一个或多个周期内锁定具有较低优先级的处理器。
9.一种系统,包括:
多个处理器;
包括n个存储体的存储模块,其中n=至少2,其中在任一时刻可以由一个或多个处理器访问每一个存储体;
存储映射,用于将顺序地址分配给存储模块的交替存储体;以及
存储在存储器中的数据字节,其中根据存储映射,将顺序地址中的所述数据字节存储在交替存储体中。
10.根据权利要求9所述的系统,其特征在于:每一个存储体包括x个存储块,其中x=至少1,其中在任一时刻可以由多个处理器之一来访问每一个存储块。
11.根据权利要求9或10所述的系统,其特征在于还包括流程控制单元,用于对处理器进行同步以在任一时刻访问不同的存储块。
12.根据权利要求9、10或11所述的系统,其特征在于还包括优先级寄存器,用于存储每一个处理器的访问优先级。
13.根据权利要求9到12任一个所述的系统,其特征在于:所述数据字节包括程序指令。
14.根据权利要求10到13所述的系统,其特征在于还包括多个关键存储模块,用于存储针对每一个处理器的多个数据字节,以减小存储器访问冲突。
15.一种在多个处理器之间共享存储模块的方法,包括:
将存储模块划分为n个存储体,其中n=至少2,能够由一个或多个处理器同时访问所述存储模块;
对存储模块进行映射以将顺序地址分配给存储器中的交替存储体;
将数据字存储在存储器中,其中,由于存储器的映射,将顺序地址中的所述数据字存储在交替存储体中;以及
设置了第一信号路径,当被选择时,所述第一信号路径将高速缓存器与处理器和存储模块相连,所述高速缓存器使处理器能够同时从不同的存储体中提取多个数据字。
16.根据权利要求15所述的方法,其特征在于还包括步骤:将所述存储体划分为x个存储块,其中x=至少1,其中,在任一时刻可以由多个处理器之一来访问存储块。
17.根据权利要求15或16所述的方法,其特征在于还包括步骤:确定是否已经发生了竞争,其中在任一个时刻,两个或多个处理器正在访问相同的地址范围。
18.根据权利要求17所述的方法,其特征在于:所述地址范围与至少一个存储块相一致。
19.根据权利要求15到18任一个所述的方法,其特征在于还包括步骤:对处理器进行同步,以便当已经发生了竞争时,访问不同的存储体。
20.根据权利要求15到19任一个所述的方法,其特征在于还包括步骤:设置第二信号路径,当被选择时,所述第二信号路径将处理器与存储模块相连。
21.根据权利要求15到20任一个所述的方法,其特征在于还包括步骤:当未发生竞争时,激活第二信号路径。
22.根据权利要求15到21任一个所述的方法,其特征在于还包括步骤:对处理器进行同步,以便当已经发生了竞争时,访问不同的存储体。
23.根据权利要求15到22任一个所述的方法,其特征在于还包括步骤:当已经发生了竞争时,确定处理器的访问优先级。
24.根据权利要求23所述的方法,其特征在于确定访问优先级的步骤包括:给已经引起了竞争的处理器分配较低的访问优先级。
25.根据权利要求19到24任一个所述的方法,其特征在于同步处理器的步骤包括:当发生竞争时,针对具有较低优先级的处理器插入等待状态。
26.根据权利要求15到25任一个所述的方法,其特征在于当已经发生了竞争时,激活第一信号路径。
27.一种系统,包括:
多个处理器;
包括n个存储体的存储模块,其中n=至少2,其中在任一时刻可以由一个或多个处理器访问存储体;
存储映射,用于将顺序地址分配给存储模块的交替存储体;
存储在存储器中的数据字,其中根据存储映射,将顺序地址中的所述数据字存储在交替存储体中;以及
多个控制逻辑单元,用于使处理器能够从不同的存储体中访问多个数据字。
28.根据权利要求27所述的系统,其特征在于:所述控制逻辑单元包括第一和第二信号路径,所述第一信号路径将高速缓存器与处理器和存储模块相连,所述第二信号路径将处理器与存储模块相连。
29.根据权利要求27或28所述的系统,其特征在于所述第一信号路径包括高速缓存寄存器和复用器。
30.根据权利要求27到29任一个所述的系统,其特征在于所述粗体包括x个存储块,其中x=至少1,其中在任一时刻可以由多个处理器之一访问存储块。
31.根据权利要求27到30任一个所述的系统,其特征在于还包括流程控制单元,用于对处理器进行同步以便在任一时刻访问不同的存储块。
32.根据权利要求27到31任一个所述的系统,其特征在于还包括优先级寄存器,用于存储处理器的访问优先级。
33.根据权利要求27到32任一个所述的系统,其特征在于还包括多个关键存储模块,用于存储针对处理器的多个数据字以减小竞争的可能性。
34.根据权利要求27到33任一个所述的系统,其特征在于还包括第一信号路径,所述第一信号路径将高速缓存器与处理器和存储模块相连。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/117,668 | 2002-04-04 | ||
US10/117,668 US20030088744A1 (en) | 2001-11-06 | 2002-04-04 | Architecture with shared memory |
US10/133,941 US7346746B2 (en) | 2002-04-26 | 2002-04-26 | High performance architecture with shared memory |
US10/133,941 | 2002-04-26 | ||
PCT/EP2003/003547 WO2003085524A2 (en) | 2002-04-04 | 2003-04-04 | Improved architecture with shared memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1668999A true CN1668999A (zh) | 2005-09-14 |
CN1328660C CN1328660C (zh) | 2007-07-25 |
Family
ID=28793881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB038067447A Expired - Fee Related CN1328660C (zh) | 2002-04-04 | 2003-04-04 | 具有共享存储器的改进结构 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20060059319A1 (zh) |
EP (2) | EP1628216B1 (zh) |
KR (1) | KR100701800B1 (zh) |
CN (1) | CN1328660C (zh) |
DE (1) | DE60316197T2 (zh) |
WO (1) | WO2003085524A2 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101369464A (zh) * | 2007-05-17 | 2009-02-18 | 三星电子株式会社 | 非易失性存储器件、系统及其操作方法 |
CN101867833A (zh) * | 2010-06-12 | 2010-10-20 | 北京东方艾迪普科技发展有限公司 | 一种视频图像格式转换方法和装置 |
WO2011063720A1 (zh) | 2009-11-25 | 2011-06-03 | 惠州Tcl移动通信有限公司 | 一种嵌入式文件系统的跨区访问方法 |
CN103201725A (zh) * | 2010-11-25 | 2013-07-10 | 国际商业机器公司 | 用于在多个处理器之间共享的存储器的存储器访问设备及其访问方法 |
CN104794065A (zh) * | 2015-05-04 | 2015-07-22 | 常州工学院 | 一种多分组定长数据循环存取方法 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7174437B2 (en) * | 2003-10-16 | 2007-02-06 | Silicon Graphics, Inc. | Memory access management in a shared memory multi-processor system |
US7631132B1 (en) * | 2004-12-27 | 2009-12-08 | Unisys Corporation | Method and apparatus for prioritized transaction queuing |
KR100688537B1 (ko) | 2005-03-16 | 2007-03-02 | 삼성전자주식회사 | 다수개의 프로세서들에 억세스 가능한 메모리 장치를 갖는시스템 |
KR100728650B1 (ko) * | 2005-07-26 | 2007-06-14 | 엠텍비젼 주식회사 | 복수 경로를 통한 다중 분할된 메모리 공유 방법 및 장치 |
KR100658588B1 (ko) * | 2005-11-16 | 2006-12-15 | 엠텍비젼 주식회사 | 메모리 공유 시스템 및 그 방법 |
KR100658591B1 (ko) * | 2005-11-23 | 2006-12-15 | 엠텍비젼 주식회사 | 공유 메모리를 이용한 디스플레이 제어 방법 및 장치 |
CN101341473B (zh) | 2005-12-20 | 2010-11-17 | Nxp股份有限公司 | 具有共享存储体的多处理器电路 |
KR100740635B1 (ko) * | 2005-12-26 | 2007-07-18 | 엠텍비젼 주식회사 | 휴대형 단말기 및 휴대형 단말기에서의 공유 메모리 제어방법 |
KR100700040B1 (ko) * | 2006-03-08 | 2007-03-26 | 엠텍비젼 주식회사 | 공유 메모리를 구비한 장치 및 공유 메모리 억세스 상태정보 제공 방법 |
KR100748191B1 (ko) | 2006-04-06 | 2007-08-09 | 엠텍비젼 주식회사 | 공유 메모리를 구비한 장치 및 공유 메모리 억세스 상태정보 제공 방법 |
KR100843580B1 (ko) * | 2006-05-24 | 2008-07-04 | 엠텍비젼 주식회사 | 접근 권한 레지스터 로직을 갖는 다중 포트 메모리 장치 및그 제어 방법 |
KR100834373B1 (ko) * | 2006-06-05 | 2008-06-02 | 엠텍비젼 주식회사 | 다중 포트 메모리 장치 및 그 접근 권한의 제어 방법 |
KR100855701B1 (ko) * | 2007-01-26 | 2008-09-04 | 엠텍비젼 주식회사 | 복수의 프로세서 코어가 통합된 칩 및 데이터 처리 방법 |
US8239566B2 (en) * | 2008-02-28 | 2012-08-07 | Silicon Graphics International, Corp. | Non-saturating fairness protocol and method for NACKing systems |
KR20150139718A (ko) | 2014-06-03 | 2015-12-14 | 에스케이하이닉스 주식회사 | 불휘발성 메모리를 제어하는 컨트롤러 및 그것을 포함하는 반도체 장치 |
KR101772921B1 (ko) | 2016-11-25 | 2017-08-30 | 전남대학교 산학협력단 | 메모리 경합 인지를 통한 그래픽 처리 장치의 전력관리 기법 및 그 기법을 수행하는 전력관리 유닛, 그래픽 처리 장치 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3931613A (en) * | 1974-09-25 | 1976-01-06 | Data General Corporation | Data processing system |
US4918587A (en) * | 1987-12-11 | 1990-04-17 | Ncr Corporation | Prefetch circuit for a computer memory subject to consecutive addressing |
US5617575A (en) * | 1991-03-19 | 1997-04-01 | Hitachi, Ltd. | Interprocessor priority control system for multivector processor |
US5412788A (en) * | 1992-04-16 | 1995-05-02 | Digital Equipment Corporation | Memory bank management and arbitration in multiprocessor computer system |
US5809533A (en) * | 1993-02-18 | 1998-09-15 | Unisys Corporation | Dual bus system with multiple processors having data coherency maintenance |
US20030088744A1 (en) * | 2001-11-06 | 2003-05-08 | Infineon Technologies Aktiengesellschaft | Architecture with shared memory |
-
2003
- 2003-04-04 EP EP05025037A patent/EP1628216B1/en not_active Expired - Fee Related
- 2003-04-04 DE DE60316197T patent/DE60316197T2/de not_active Expired - Fee Related
- 2003-04-04 US US10/507,408 patent/US20060059319A1/en not_active Abandoned
- 2003-04-04 WO PCT/EP2003/003547 patent/WO2003085524A2/en not_active Application Discontinuation
- 2003-04-04 CN CNB038067447A patent/CN1328660C/zh not_active Expired - Fee Related
- 2003-04-04 EP EP03745789A patent/EP1490764A2/en not_active Withdrawn
- 2003-04-04 KR KR1020047014737A patent/KR100701800B1/ko not_active IP Right Cessation
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101369464A (zh) * | 2007-05-17 | 2009-02-18 | 三星电子株式会社 | 非易失性存储器件、系统及其操作方法 |
WO2011063720A1 (zh) | 2009-11-25 | 2011-06-03 | 惠州Tcl移动通信有限公司 | 一种嵌入式文件系统的跨区访问方法 |
CN101867833A (zh) * | 2010-06-12 | 2010-10-20 | 北京东方艾迪普科技发展有限公司 | 一种视频图像格式转换方法和装置 |
CN103201725A (zh) * | 2010-11-25 | 2013-07-10 | 国际商业机器公司 | 用于在多个处理器之间共享的存储器的存储器访问设备及其访问方法 |
CN103201725B (zh) * | 2010-11-25 | 2015-12-09 | 国际商业机器公司 | 用于在多个处理器之间共享的存储器的存储器访问设备 |
US9268721B2 (en) | 2010-11-25 | 2016-02-23 | International Business Machines Corporation | Holding by a memory controller multiple central processing unit memory access requests, and performing the multiple central processing unit memory requests in one transfer cycle |
US9460763B2 (en) | 2010-11-25 | 2016-10-04 | International Business Machines Corporation | Holding by a memory controller multiple central processing unit memory access requests, and performing the multiple central processing unit memory request in one transfer cycle |
CN104794065A (zh) * | 2015-05-04 | 2015-07-22 | 常州工学院 | 一种多分组定长数据循环存取方法 |
CN104794065B (zh) * | 2015-05-04 | 2018-01-09 | 常州工学院 | 一种多分组定长数据循环存取方法 |
Also Published As
Publication number | Publication date |
---|---|
DE60316197D1 (de) | 2007-10-18 |
EP1628216B1 (en) | 2007-09-05 |
KR20040093167A (ko) | 2004-11-04 |
EP1490764A2 (en) | 2004-12-29 |
EP1628216A2 (en) | 2006-02-22 |
US20060059319A1 (en) | 2006-03-16 |
EP1628216A3 (en) | 2006-06-21 |
WO2003085524A2 (en) | 2003-10-16 |
CN1328660C (zh) | 2007-07-25 |
KR100701800B1 (ko) | 2007-04-02 |
WO2003085524A3 (en) | 2004-08-19 |
DE60316197T2 (de) | 2008-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1668999A (zh) | 具有共享存储器的改进结构 | |
US6185654B1 (en) | Phantom resource memory address mapping system | |
US5329629A (en) | Apparatus and method for reading, writing, and refreshing memory with direct virtual or physical access | |
US20100169578A1 (en) | Cache tag memory | |
US20070094450A1 (en) | Multi-level cache architecture having a selective victim cache | |
CN1746867A (zh) | 使用核心指示符的高速缓存过滤 | |
US8751751B2 (en) | Method and apparatus for minimizing cache conflict misses | |
CN1652092A (zh) | 不同高速缓存级上具有关联集重叠同余组的多级高速缓存 | |
US6473835B2 (en) | Partition of on-chip memory buffer for cache | |
CN1328659C (zh) | 具有共享存储器的改进结构 | |
US6745291B1 (en) | High speed LRU line replacement system for cache memories | |
JPH08227380A (ja) | データ処理システム | |
US5761714A (en) | Single-cycle multi-accessible interleaved cache | |
EP0745940B1 (en) | An apparatus and method for providing a cache indexing scheme less susceptible to cache collisions | |
US20080016282A1 (en) | Cache memory system | |
JP2561261B2 (ja) | バッファ記憶アクセス方法 | |
KR20020013772A (ko) | 멀티포트 캐쉬 메모리 | |
CN101046775A (zh) | 可锁定码的快取及其处理器、控制器与控制方法 | |
US20020108021A1 (en) | High performance cache and method for operating same | |
US9146874B2 (en) | Dual access for single port cache | |
CN1924833A (zh) | 具有多阶快取架构的处理模块 | |
US7028142B2 (en) | System and method for reducing access latency to shared program memory | |
US7346746B2 (en) | High performance architecture with shared memory | |
US6493792B1 (en) | Mechanism for broadside reads of CAM structures | |
US20050071574A1 (en) | Architecture with shared memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |