CN101341473A - 具有共享存储体的多处理器电路 - Google Patents
具有共享存储体的多处理器电路 Download PDFInfo
- Publication number
- CN101341473A CN101341473A CNA2006800478996A CN200680047899A CN101341473A CN 101341473 A CN101341473 A CN 101341473A CN A2006800478996 A CNA2006800478996 A CN A2006800478996A CN 200680047899 A CN200680047899 A CN 200680047899A CN 101341473 A CN101341473 A CN 101341473A
- Authority
- CN
- China
- Prior art keywords
- processor
- memory bank
- address
- memory
- circuit
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 253
- 238000000034 method Methods 0.000 claims description 15
- 238000013507 mapping Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 11
- 230000002596 correlated effect Effects 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 2
- 238000001514 detection method Methods 0.000 claims 1
- 239000012634 fragment Substances 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 4
- 230000000875 corresponding effect Effects 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000011079 streamline operation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
多处理器电路中的多个处理器(10)通过连接电路(14)耦接至多个可独立寻址的存储体(12)。连接电路用于将地址从处理器(10)的组合传递到由地址选择的存储体(12)的寻址输入。连接电路(14)提供了冲突解决方案,其中,至少一个处理器(10)作为相关处理器与存储体(12)中的一个相关存储体相关。连接电路(14)保证了相关处理器对存储体(12)中的一个相关存储体的最小保证访问频率高于对不是存储体(12)中的相关存储体的存储体(12)中的另一个存储体的最小保证访问频率。磁盘碎片整理装置(16)检测与相关处理器(10)上运行的任务相关的数据,该数据存储在存储体(12)的另一个存储体中,在任务的执行过程中,将所述数据移动到存储体(12)中的相关存储体中。在所述移动之后,磁盘碎片整理装置使相关处理器(10)进行的数据寻址从所述存储体(12)的另一个存储体重新映射到存储体的相关存储体中,优选随着数据进程运动而增加。
Description
技术领域
本发明涉及多处理器电路。
背景技术
存储器访问冲突来源于多处理器电路的问题。在简单的多处理器系统中,每个处理器均被提供了只有它可以访问的它自己的存储体。从而,不会发生访问冲突,但是,必须确定存储体的大小以支持最需要的任务,这意味着其他任务的可观的开销。而且,不能通过存储体执行处理器间通信,这是因为这些存储体只对单个处理器是可访问的。
一种可替换的方案是采用所有处理器的共享存储器。然而,这在访问冲突情况下降低了多处理器系统的速度。通过提供高速缓冲存储器可以缓和这个问题,其中每个高速缓冲存储器位于各个处理器和主存储器之间。然而,高速缓冲存储器极大地降低了系统的最坏状况下的性能(取决于处理器所执行的任务的组合,可能出现长响应时间)。这使得高速缓冲存储器对于运行多个实时任务没有吸引力,多个实时任务必须具有最小保证的最坏情况性能。当必须保持不同的高速缓冲存储器之间的兼容性时,采用高速缓冲存储器还使存储器设计变得复杂。
发明内容
本发明的一个目的是向多处理器系统提供改善的最坏情况性能,这使得可以有效地利用存储器。
根据一个方面,提供了根据权利要求1的多处理器电路。这里,多个处理器具有到同一存储体的并行访问。采用一种差异化的冲突解决方案,以便可以使处理器对至少一个存储体的最小保证访问频率高于其对其他的存储体的最小保证访问频率。优选地,对各个处理器给予了对于各自的存储体比对其他存储体更高的最小保证访问频率。提供了磁盘碎片整理装置(defragmenter),其与处理器所执行的任务并行操作,以检测与在处理器上运行的任务相关的存储在不是该处理器的相关体的存储体中的数据。随着数据被移动,在运行中改变地址映射。从而,改善了最坏情况性能,例如,在不干扰实时需要的情况下产生更多的空间以添加新的任务。
优选地,提供了存储元件以存储用于区分在所述重新映射之前和之后根据各个映射而被映射到的阈值地址。在数据被移动时,这个阈值地址被逐步改变,从而允许任务可以在数据块的移动过程中继续对数据寻址。
在典型的实施例中,处理器用来对它的相关存储体以及作为单个地址空间的各个部分的其他存储体进行寻址,其至少与另一个处理器的地址空间重叠。从而,处理器可以利用相同指令类型和相同地址类型对它的相关存储体中的和其他存储体(磁盘碎片整理装置从中移动数据)中的存储器位置进行寻址。这使得可以将存储体用作一个用于存储器需求任务的更大的存储器,同时采用同一存储器来改善用于只需要访问一个存储体内的地址的其他任务的性能。
优选地,磁盘碎片整理装置提供了横向的磁盘碎片整理,根据执行任务的处理器,根据执行任务的处理器,数据从一个存储体移动到另一个存储体(反之亦然)来改善性能,以便数据被移动到与该处理器相关的存储体中。从而,可以以改善了的性能并行地执行多个任务。
通常,磁盘碎片整理装置与处理器并行地耦接至存储体,但是,它被授予了对存储体的访问权限,该访问权限的访问优先级比处理器的访问权限的访问优先级低。
在一个实施例中,采用了简单的地址映射电路,其根据来自处理器的地址是在阈值地址(到达该阈值地址时,数据已经被移动)的一侧或另一侧,将不同的基地址加到来自处理器的地址。磁盘碎片整理装置更新基地址和阈值地址。可以提供存储器映射电路来限定用于不同地址范围的多个映射。在这种情况下,磁盘碎片整理装置更新在存储器映射单元中的地址。
有利地,提供多处理器电路,其中,处理器的地址空间(连续地址范围内的地址)在存储体上分布地映射,来自不同处理器的地址所映射到的存储体彼此重叠。优选地,连接电路基于访问地址分配访问优先级别,以便对于每一个存储体,为处理器定义了一组相对优先级,该相对优先级组对于不同的存储体是不同的。
附图说明
从采用下图的示范性实施例的描述中,本发明的这些和其他目的以及有利方面将变得清楚:
图1示出了数据处理电路,
图2、2a示出了地址控制部件,
图3示出了到磁盘碎片整理装置的连接,
图4示出了另一个地址控制部件。
具体实施方式
图1示出了数据处理电路,其包括多个处理器10、多个存储体12、连接电路14以及磁盘碎片整理装置16。处理器10和磁盘碎片整理装置16通过连接电路14耦接至存储体12。连接电路14包括交叉开关电路140和地址仲裁器142。处理器10以及磁盘碎片整理装置16的地址输出和数据输入/输出耦接至交叉开关电路140。存储体12的地址输入和数据输入/输出耦接至交叉开关电路140。处理器10和磁盘碎片整理装置16的地址输出耦接至地址仲裁器142,地址仲裁器142具有耦接至交叉开关电路140的开关控制输入的输出端(只示出了一个),并确认处理器10的输入。优选地,磁盘碎片整理装置16作为类似于处理器10的处理器耦接至存储体12,磁盘碎片整理装置16具有对所有存储体的访问权限,但他的优先级较低。虽然示意性地示出了单个仲裁器142,应当理解的是,仲裁器142可以由用于各个存储体12的分布式仲裁器电路组成。类似地,磁盘碎片整理装置16可以包括例如用于各个处理器10的分布式磁盘碎片整理装置电路。连接电路14可包括用于通常在应用于仲裁器142和交叉开关电路140之前转换来自处理器10的地址的地址转换电路(未示出)。
在操作中,处理器10执行定义处理任务的指令程序。通常,同时执行多个任务。至少一些诸如读和写(装载/存储)指令之类的指令使处理器10访问存储体12。连接电路14和存储体12在连续访问周期中操作,在每个访问周期中,可以采用不同的地址组合。当处理器10在一个访问周期中访问存储体12时,处理器10向连接电路14提供地址。连接电路14确定该地址映射到哪一个存储体12,并至少将该地址的一部分发送到它的一个耦接至所寻址出来的用于该访问周期的地址存储体12的输出端。相应地,在用于该访问周期的所寻址出来的的存储体和处理器10之间发送数据(在写操作的情况下,从处理器10发送到存储体12,在读操作的情况下,从存储体12发送到处理器10)。同时,可以用该地址发送用于该访问周期的相应数据,但是可替换地,可以采用某种形式的流水线操作,当提供和/或发送地址以用于随后的访问周期时发送该数据。
至少一些处理器10能够对同一个存储体12进行寻址。在一个实施例中,所有的存储器10可以对所有的存储体12进行寻址。在另一个实施例中,每一个存储器10均可以对N个存储体12的子集(例如,N=2或3)进行寻址,各个处理器的子集例如以逐链(chain-wise)的方式彼此部分地重叠。交叉开关电路140提供了地址和数据在这些可以对存储体12进行寻址的处理器10和存储体12之间的路线。
在一个实施例中,每一个处理器10均采用邻近的地址对多个连续的存储体12进行寻址,在第一存储体12外部的第一连续地址对下一个连续存储体12中的第一个地址进行寻址。从而,每个存储器10均将它的多个存储体有效地“看”作为一个较大的存储器空间,不同处理器10的存储器空间至少部分地互相重叠。
如果只有一个处理器10在一个访问周期中对特定的存储体12进行寻址,仲裁器电路142将该访问周期内对特定的存储体12的访问权限授予该处理器10。但是因为处理器10可以对同一存储体12进行寻址,所以存在多个处理器10在同一访问周期中试图向同一个存储体12提供地址的可能,从而发生组冲突。地址仲裁器142通过授予各个处理器10到各个存储体12的访问权限来解决这些冲突。地址仲裁器142定义了处理器10和存储体12之间的相关。与存储体12相关的处理器10是可以对存储体12进行寻址的处理器10中的一个。在一个示例中,每个处理器10均与各个存储体12相关,以及可选地,有一个或多个不与任何一个处理器10相关的存储体12。
在访问周期的至少预定部分中,例如,在每两个周期或每三个周期中,当多于一个的处理器10(包括与存储体12相关的处理器10)对存储体12进行寻址时,仲裁器142总是对与存储体12相关的处理器10授予访问权限。在所述部分外的访问周期中,仲裁器142采用一些类似循环选择的防止不足的选择机制,从而在多于一个处理器10对存储体12进行时选择任意一个处理器10,即使这些处理器10包括与存储体12相关的处理器10。在访问周期的所述部分中,仅仅在相关处理器10不对存储器12进行寻址时,地址仲裁器142才能授予另一个处理器(非相关处理器)对存储体的访问权限。当多于一个的非相关处理器10可以同时对存储体进行寻址是可行的时,可以采用另一种机制来解决这些冲突。例如,地址仲裁器142可以为处理器10分配对存储体12进行寻址的等级,最高等级的处理器10对存储体进行寻址是被授权的访问。在另一个示例中,地址仲裁器142以循环的方式授予非相关处理器访问权限。
地址仲裁器142控制交叉开关电路140,以便路由存储体12和已经被授予访问权限的处理器10之间的地址和数据,向该处理器10发送一个确认信号以指示已经被授予了访问权限,并拒绝到已经对存储器12进行寻址但没有被授予权限的处理器10的确认信号。
可以理解的是,这种方案保证了每个处理器10均将至少可以以预定的最小保证频率访问存储体12,针对相关存储体12的预定的最小保证频率比针对非相关存储体12的预定的最小保证频率高。例如,如果相关处理器在N个访问周期中的每M(0<M<N)个访问周期中得到绝对的优先级,并在其他的访问周期中P个其他处理器具有以相等循环为基础的优先级,那么对相关存储体12的最小保证访问频率Fa是Fa=(M+(N-M)/P)/N,而对其他存储体12的最小保证访问频率Fn是Fn=(N-M)/(P*N)。应当理解的是,可以采用各种可替换方案来实现不同的最小保证访问频率,例如,对存储体12进行寻址的处理器10的循环选择,其中,存储体12的相关处理器10在循环序列中比非相关处理器10具有更多次轮回。例如,如果N(N>2)次轮回的循环序列与用于相关处理器10的Q(Q>1)次轮回以及用于非相关处理器10的R(0<R<Q)次轮回(例如R=1)一起使用,那么,对相关存储体12的最小保证的访问频率为Fa=Q/N,而对其他存储体12的最小保证的访问频率是Fn=R/N。在执行非实时任务的情况下,可以采用可替换的优先级方案,这种方案不保证对非相关存储体12的最小保证的访问频率大于零。
连接电路14和/或处理器10提供了从处理器10到存储体12中的地址的可变地址映射。优选地,地址所映射到的存储体12和地址所映射到的存储器中的位置都是可调节的。
图2示出了连接电路14的部分的实施例,其提供了来自处理器10的地址的地址映射。为了清楚起见,省略了数据连接。连接电路具有用于从处理器10接收地址A的输入A。连接电路包括地址映射电路30,该地址映射电路30包括比较器20、阈值寄存器21、第一基础寄存器2、第一加法器23、第二基础寄存器24、第二加法器25以及多路复用器20a。
当处理器10输出被转换为存储体12中的物理地址的逻辑地址时,采用连接电路的这个部分。比较器20对来自处理器10的逻辑地址A和指示过渡地址的阈值进行比较。该阈值来自阈值寄存器21。当逻辑地址小于阈值时,第一基础寄存器22和第一加法器23通过对基值和来自处理器10的逻辑地址进行相加来计算物理地址。类似地,当逻辑地址等于或大于阈值时,第二基础寄存器24和第二加法器25通过对基值和来自处理器10的逻辑地址进行相加来计算第二存储体12b中的物理地址。根据逻辑地址是否小于阈值,比较器20控制多路复用器20a传递来自第一或第二加法器23、25的物理地址。然后,产生的地址被仲裁器(未示出)使用,并被交叉开关(未示出)传递,以便对存储体12进行寻址。
可以为每个处理器10采用类似的电路。例如,每当处理器10从一个任务切换至另一个任务时,或者在磁盘碎片整理装置16的控制下,寄存器21、22、24的内容可以被更新。在另一个实施例中,存储器映射单元可以和具有代替寄存器21、22、24的多个存储器位置的存储器(未示出)一起使用,在逻辑地址和/或任务识别的控制下,从这个存储器中选择阈值和基值。从而,可以实现颗粒形式的存储器映射。
在处理器10对作为较大存储器空间的连续部分的存储体12进行寻址的实施例中,简单的加法器23、25足够了。可替换地,可以根据地址,例如由比较器20产生存储体选择信号。
图2a示出了连接电路14的部分的可替换实施例,其提供了来自处理器10的地址的地址映射。为了清楚起见,省略了数据连接。连接电路包括地址映射电路30,该地址映射电路包括比较器20、阈值寄存器21、第一基础寄存器22、第一加法器23、第二基础寄存器24、第二加法器25、多路复用器26以及仲裁器27。
当处理器10输出被转换为第一和第二存储体(12,12b)中的物理地址的逻辑地址时,采用连接电路的这个部分。比较器20对来自处理器10的逻辑地址A和对存储在第一存储体中的最高逻辑地址进行指示的阈值进行比较。该阈值来自阈值寄存器21。第一基础寄存器22和第一加法器23通过对基值和来自处理器10的逻辑地址进行相加来计算第一存储体12中的物理地址。类似地,第二基础寄存器24和第二加法器25通过对基值和来自处理器10的逻辑地址进行相加来计算第二存储体12b中物理地址。
对邻近的处理器10a采用类似的电路29a。仲裁器27从比较器20接收输出,并接收用于邻近的处理器10a的类似输出。仲裁器27控制多路复用器26,该多路复用器26从用于相邻的处理器10a的第一加法器23和第二加法器25接收输入。多路复用器26向第一存储体输出一个地址。当比较器20的输出指示两个处理器10、10a都对第一存储体进行寻址时,仲裁器27对选择的一个处理器10授予访问权限并相应地控制多路复用器26。采用优先级机制,该优先级机制保证在其第一加法器23处产生地址的处理器10得到至少具有预定最小保证频率的访问权限,该预定的最小保证频率比对于其他处理器的对应最小保证频率高。另外,仲裁器27通过确认线(未示出)向处理器10、10a发送信号,以使邻近的处理器10a(未得到访问权限)等待。仲裁器27控制多路复用器26来向第一存储器12发送来自第一加法器23的地址。
当比较器20的输出指示只有一个处理器10、10a对第一存储体12进行寻址时,仲裁器27控制多路复用器26从第一加法器23或用于邻近的处理器10a的第二加法器发送用于对应的处理器10、10a的地址。没有发送信号,从而使处理器10、10a等待。当没有处理器10、10a对第一存储体12进行寻址时,仲裁器27优选地禁止第一存储体12。
当比较器20指示逻辑地址A对第二存储体12b中的位置进行寻址时,这被指示给图中所示类型的另一个电路29b。现在,当另一个邻近的处理器10b不对第二存储体12b进行寻址时,来自第二加法器25的地址被传递到第二存储体12b。
虽然在图2中示出了用于单个阈值的电路,应当理解的是,该电路可以适于提供与不同的任务相关的多个阈值,例如,可选地,每个任务均具有它自己的基础地址。另外,虽然示出了具有两个加法器(其后接多路复用器或连接到存储器)的实施例,应当理解的是,在可替换实施例中,可以采用单个加法器,根据比较结果,一个基础地址或另一个基础地址被提供到该加法器上,或者,在另一个可替换实施例中,一个基础地址总是被置为零,从而根本就不需要用于该基础地址的加法器。
如图所示,处理器10、10a、10b优选地只对局部存储体12和一个邻近的存储器12b进行寻址,他们对局部存储体12具有优先级。这简化了这个电路。然而,在变型的电路中,可以从处理器10对在两侧的邻近存储体12a、12b或者更大数量的存储体进行寻址。而且,对于不存在单个处理器总是获得优先级(例如,在循环的基础上,不同的处理器被授予优先级)的存储体,可以对存储体进行相加。
随着任务开始执行,在分配用于该任务的存储器空间之后,存储器映射电路30中的基础寄存器等的内容优选地被动态设置。当任务已经完成执行或者被停止时,释放存储器。磁盘碎片整理装置16操作来在执行过程中在存储体12之间移动数据。例如,磁盘碎片整理装置16被实现为另一个处理器,其可以对所有的存储体12进行寻址,或者被实现为用于这个目的专用电路。
图3示出了磁盘碎片整理装置16和多个存储器映射电路30之间的连接的示例。磁盘碎片整理装置16检测与处理器10所执行的任务的执行相关的数据何时被存储在与该处理器10不相关的存储体12中(即,在处理器10并总是得到优先级的存储体中)。这个存储体将被称为旧的存储器。如果用于处理器的数据被存储在旧的存储体中,磁盘碎片整理装置16测试在与处理器10相关的存储体中(即,该处理器总是得到优先级的存储体中)是否存在一个未使用的存储器12。这个存储体将被称为新的存储体。如果发现了未使用的存储器,磁盘碎片整理装置16将数据从旧的存储体中移动到新的存储体中,并为被移动的数据更新地址映射。
磁盘碎片整理装置16稳定地增大地址与之比较的阈值。每当磁盘碎片整理装置16根据阈值读取用于映射到存储体(旧的存储体)的第一逻辑地址的数据时,在新的存储体12中的逻辑地址最新映射到的物理地址处存储这个数据,然后,磁盘碎片整理装置16增大该阈值。重复这个操作,直至所有可能的数据都已经被移动到第一存储体12(即,直至所有的数据已经被移动,或直至逻辑地址到了未使用的存储器的极限)。磁盘碎片整理的这种形式具有这样的优点:在处理器10继续操作的同时,它可以进行。
在一个实施例中,由磁盘碎片整理装置进行的移动和更新是在同一个周期中实现的,以便防止介入在从旧位置读取数据、向新位置写入数据、以及更新阈值之间的来自处理器10的读和写。可替换地,磁盘碎片整理装置16用来监测对其中正在移动数据的旧存储器的写入寻址。如果磁盘碎片整理装置检测到对已经被读取以将数据从旧存储器移动到新存储器(即,在阈值被相应地增大之前)的旧存储器的位置的写入,磁盘碎片整理装置16纠正这种影响。在一个实施例中,磁盘碎片整理装置16通过重新读取数据来完成这项功能。在另一个实施例中,磁盘碎片整理装置16捕捉写入数据,并利用这个数据来写入新的存储体。
虽然在图3中没有示出,磁盘碎片整理装置16优选地耦接至仲裁器电路142(或者所有存储体12的仲裁器电路32),该一个或多个仲裁器电路优选地向磁盘碎片整理装置16分配比处理器10低的优先级。可替换地,可以向磁盘碎片整理装置16提供对存储体12的单独的访问端口。
磁盘碎片整理装置16优选地通过在存储器映射电路30中检查基础地址(例如通过检查基础寄存器的内容等)来执行检测和搜索。可替换地,可以提供用来被磁盘碎片整理装置16使用的映射信息的副本。
图4示出了另一个具有处理器10、存储器映射电路30和仲裁器32的地址控制部件。存储器映射电路30将来自处理器10的逻辑地址映射到不同的存储体(未示出),例如,以存储器线作为基础(例如采用具有用于地址的线地址部分的不同值的入口,该入口存储了存储体ID以及在该体中的地址的偏移)。存储器映射电路30根据逻辑地址的映射,向不同的体输出地址数据和请求。仲裁器32从存储器映射电路30接收不同处理器的请求,并在冲突的情况下授予优先级,将来自已经被授予了优先级的处理器的地址发送到存储体12。多个仲裁器32(只示出了一个)总是向对应的预定处理器授予优先级。优选地,多个仲裁器32中的每一个均被布置成至少一个仲裁器用于每一个处理器10,以便这些仲裁器32中的每一个均可以与一个处理器10相关,它总是对该处理器授予优先级。但是可替换地,某些处理器10可能没有这种相关的处理器10。而且优选地,每个这种仲裁器均具有相同数量的输入端,以用于来自处理器10的访问,但这也是不必要的:可以提供具有相互不同数量的输入端的仲裁器32。
在图4的实施例中,没有阈值被用于映射(块被整个映射到一个存储体或另一个存储体)。当采用这个实施例时,磁盘碎片整理装置16用于采用内部阈值(进程计数器),该内部阈值指示磁盘碎片整理装置16对数据副本处理到什么程度。磁盘碎片整理装置16采用进程计数器来确定在处理器10写入之后是否需要校正,该处理器10“拥有”被磁盘碎片整理装置16移动的数据。在磁盘碎片整理过程中,该处理器10被允许对旧的存储体继续寻址。磁盘碎片整理装置16检测对旧存储体进行寻址的处理器10所进行的写操作。一旦检测到这种写操作,磁盘碎片整理装置16对该写地址和进程计数器进行比较,如果写地址已经对已经被复制的位置进行了寻址,磁盘碎片整理装置现在用最新写入的数据来重复用于该写地址的复制。当整个块都已经被移动时,磁盘碎片整理装置16将块的映射转换至在新的存储体中的被复制的块。
在这个实施例中,磁盘碎片整理装置16优选地工作在逐行的基础上,检测被(存储器映射电路30)映射到与该存储器映射电路30的处理器不相关的存储体上的存储器线,并搜索存储器映射单元30没有映射到的存储器线。当发现了这种组合时,磁盘碎片整理装置16将这些线从旧的存储体中复制到新的存储体中。优选地,在复制操作过程中,处理器10继续操作。当磁盘碎片整理装置16检测到处理器10所进行的写入时,磁盘碎片整理装置对该线的写地址和进程计数器进行比较,如果其结果为处理器写入线中的已经被复制了的位置的地址,磁盘碎片整理装置再次从该位置复制数据。每当磁盘碎片整理装置16完成对存储线的移动,则使存储器映射电路30更新线的映射。
可以以很多种方式执行写地址和线中的地址的比较。在一个实施例中,提供多路复用器来对写地址从一个可选的处理器到磁盘碎片整理装置16进行路由,磁盘碎片整理装置控制该多路复用器。在这种情况下,当磁盘碎片整理装置16选择处理器10来移动数据时,磁盘碎片整理装置控制多路复用器来对来自被选的处理器的写地址进行路由。在另一个实施例中,每个存储器映射电路30均可以用来从磁盘碎片整理装置16接受对受保护存储器的指示,从而在受保护的线中检测(写)寻址,并将这种寻址用信号通知给磁盘碎片整理装置16。
虽然已经示出了多个实施例,其中多个处理器10具有到与一个处理器10相关的存储体12的访问权限(这里,处理器总是得到优先级),应当理解的是,在简单的替换方案中,只有相关的处理器10具有到它的相关的存储体12的访问权限(这可以应用于所有或部分处理器)。从而,非相关的、共享的存储体起用于相关存储体12的溢出的作用,磁盘碎片整理装置16在可能的情况下移回数据。
虽然只详细讨论了磁盘碎片整理,应当理解的是,相反地,还可能出现分段数据移动。例如,对已经被悬置的任务的数据或在对实时任务的数据进行分段时不需要实时性能的任务执行这些操作。在这种情况下,磁盘碎片整理装置16首先将数据从相关的存储体移出,为将(实时任务的)其他数据移入该存储体腾出空间。优选地,对至少部分任务进行编程,或者用资源信息数据伴随至少部分任务,以便指示哪些数据已经对任务是实时可用的以及什么时候可用。优选地,磁盘碎片整理装置16被用来读取这种指示或接收这些指示,以选择用于磁盘碎片整理的指示数据(移动到与相关处理器相关的存储体)。
在典型示例中,不同的实时任务在不同的时间开始。在这个任务开始之前,确定这个任务是否可以以针对该任务而指定的预定的保证速度来运行。如果在任务要在其上开始的处理器的相关存储体上是可能的,但在另一个存储体中是不可能的(如果在相关的存储体中没有足够的存储器),考虑到已经运行的任务和为任务分配的存储器,针对该任务的最小保证速度是确定的。而且,检查其他的新任务的添加是否会将它们的最小保证速度降低到低于它们的规定保证速度。
如果满足了保证的速度,采用用于任务的自由存储器来开始任务。如果自由存储器不在相关的存储体内,而且稍后停止了另一个任务,那么,相关存储体上的存储器空间被释放,在进程继续的同时,用于任务的数据被移动到相关的存储体中。这增大了最小保证速度和规定的保证速度之间的富余,为开始其他任务制造了更多的空间。
而且,虽然已经假定了简单的示例,其中,每个任务由一个处理器10执行,但是应当理解的是,实际上,可以由多个处理器一起执行更复杂的任务。在这种情况下,用于任务的数据可以一部分是只在一个处理器中需要的数据,而一部分是由比一起执行这些任务的处理器更多的处理器所需要的共享数据。在这种情况下,优选地对每个处理器10进行编程,以显示哪些数据是实时可用的以及何时可用。优选地,磁盘碎片整理装置16被用来读取这种指示,或者用来接收这些指示,并选择用于磁盘碎片整理的指示数据(移动到与相关处理器10相关的存储体中)。
而且,虽然已经示出了其中地址映射是在处理器外执行的方案,应当理解的是,可替换的地址映射可以是程序控制的。在这种情况下,程序可以采用例如基础寄存器来定义地址。在这种情况下,磁盘碎片整理装置向处理器发送信号以通知处理器在什么时候必须采用的什么样的更新的映射。
优选地,至多一个处理器10与一个存储体12相关,以便它得到对该相关的存储体12的相对高的最小保证访问频率。从而,由于相关的存储体12不作为相关的存储体而被其他的具有对该存储体12的访问权限的处理器10所共享,对于相关处理器10,可以实现高的最小保证访问频率,该访问频率高于对与该处理器10不相关的其他存储体12的最小保证访问频率。然而,应当理解的是,在又一个实施例中,多于一个的处理器10可以与同一存储体相关,以便这些相关的相关处理器的每一个对该同一相关存储体12的最小保证访问频率均高于对其他存储体12的最小保证访问频率。因为相关存储体12是共享的,该相关处理器的最小保证访问频率将典型地低于该相关存储体不是共享的情况,但仍然高于对其他的存储体12的访问频率。
Claims (11)
1.一种多处理器电路,所述电路包括:
多个处理器(10),每一个处理器均具有寻址输出;
多个可独立寻址的存储体(12),每个存储体均具有寻址输入;
连接电路(14),其耦接在所述寻址输出和所述寻址输入之间,并被用来将地址从处理器(10)的组合运送至由该地址所选择的存储体(12)的寻址输入,所述连接电路(14)提供了冲突解决方案,其中,至少一个处理器(10)作为相关处理器与相关的一个存储体(12)相关,所述连接电路(14)被用来保证所述相关处理器对所述相关的一个存储体(12)的最小保证访问频率高于对不是相关存储体(12)的另一个存储体(12)的最小保证访问频率;
磁盘碎片整理装置(16),其被用来检测与运行在所述相关处理器(10)上的任务相关的被存储在另一个存储体(12)上的数据,在任务的执行过程中,响应于所述检测,将所述数据移动到相关的一个存储体(12)中,并在所述移动之后,使由所述相关处理器(10)进行的对所述数据的寻址从所述另一个存储体(12)重新映射到相关的一个存储体(12)。
2.根据权利要求1所述的多处理器电路,其包括存储元件(21),用以存储阈值地址,该阈值地址用于区分在所述重新映射之前和之后根据各自的映射所映射到的地址,其中,磁盘碎片整理装置(16)被用来:
在任务的执行过程中,通过连续移动块中的连续地址的各自的数据项目,从而移动数据项目的块;而且
每当已经移动了一个连续的数据项目时,使所述存储元件(21)中的阈值地址更新。
3.根据权利要求1所述的多处理器电路,其中,相关处理器(10)被用来对作为单个地址空间的各个部分的相关的一个存储体(12)和另一个存储体(12)进行寻址,该单个地址空间至少与不是相关的一个处理器(10)的至少一个处理器(10)的地址空间重叠。
4.根据权利要求1所述的多处理器电路,其中,每一个处理器(10)均被用来对所有的作为单个地址空间的各个部分的存储体(12)进行寻址。
5.根据权利要求1所述的多处理器电路,其中,所述连接电路(14)被用来为多个处理器的每一个提供对相关的一个存储体(12)和另一个存储体(12)的访问,相关的一个处理器(10)和多个其他处理器(10)对相关一个的存储体(12)的保证访问频率之比高于它们对另一个处理器(10)的保证访问频率之比。
6.根据权利要求1所述的多处理器电路,其中,所述连接电路(14)被用来保证另一个处理器(10)对另一个存储体(12)的最小保证访问频率高于对相关的一个存储体(12)的最小保证访问频,磁盘碎片整理装置被用来检测与在另一个处理器(10)上运行的另一个任务相关的存储在相关的一个存储体(12)中的另一个数据,在另一个任务的执行过程中,将所述数据移动到另一个存储体(12),并在另一个数据的移动之后,使由另一个处理器(10)进行的对数据的寻址从所述相关的一个存储体(12)重新映射到另一个存储体(12)。
7.根据权利要求1所述的多处理器电路,其中,所述磁盘碎片整理装置(16)通过与所述处理器(10)并联的所述连接电路(14)耦接至所述存储体(12),所述连接电路对从磁盘碎片整理装置(16)到存储体(12)的访问分配了比从磁盘碎片整理装置(16)到所述处理器(10)的访问低的访问优先级。
8.根据权利要求1所述的多处理器电路,其中,其包括耦接至所述相关的一个处理器(10)的存储器映射电路(30),该存储器映射电路(30)被用来根据存储在所述存储映射电路(30)中的映射信息将各个地址范围映射到存储器位置的各个范围,以及其中,磁盘碎片整理装置(16)被耦接至存储器映射电路(30),以便在所述移动后更新所述映射信息。
9.一种操作多处理器电路的方法,该多处理器电路包括多个处理器(10),该多个处理器(10)耦接以提供到多个可独立寻址的存储体(12)的并行访问,该方法包括:
解决处理器(10)到存储体(12)的访问冲突,以便每个处理器均对处理器(10)访问的存储体(12)具有最小保证访问频率,至少相关处理器(10)得到对相关的一个存储体(12)的最小保证访问频率,该最小保证访问频率比对不是相关的一个存储体(12)的另一个存储体(12)的高;
检测与在相关处理器(10)上运行的任务相关的存储在另一个存储体(12)上的数据;
在所述任务的执行过程中,将所述数据移动至相关的一个存储体(12)中;以及
在所述移动之后,使由相关处理器(10)进行的对所述数据的寻址从所述另一个存储体(12)重新映射到相关的一个存储体(12)中。
10.根据权利要求9所述的方法,其中,所述电路包括存储元件(21),用以存储阈值地址,该阈值地址用以区分在所述重新映射之前和之后根据各个映射所映射到的地址,所述方法包括:
在任务的执行过程中,通过连续移动块中的连续地址的各自的数据项目,从而移动数据项目的块;而且
每当已经移动了一个连续的数据项目时,使所述存储元件(21)中的阈值地址更新。
11.一种多处理器电路,该电路包括:
多个处理器(10),每一个处理器均具有寻址输出;
多个可独立寻址的存储体(12),每个存储体均具有寻址输入;
连接电路(14),其耦接在所述寻址输出和所述寻址输入之间,并被用来将地址从处理器(10)的组合运送至由该地址所选择的存储体(12)的寻址输入,所述连接电路映射各个处理器的地址空间,所述地址空间中的每个均分布在多个存储体(12)上,不同的处理器(10)的地址空间映射到存储体(12)的重叠的组上,所述连接电路(14)提供了基于优先级的冲突解决方案,其中,所述连接电路(14)根据被存储器访问寻址的部分地址空间来将优先级别给予来自各个处理器(10)的存储器访问中的每一个存储器访问,以便所述处理器(10)的相对优先级别对于到各个不同的存储体(12)的存储器访问是不同的。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP05112468 | 2005-12-20 | ||
EP05112468.3 | 2005-12-20 | ||
PCT/IB2006/054807 WO2007072324A2 (en) | 2005-12-20 | 2006-12-13 | Multi-processor circuit with shared memory banks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101341473A true CN101341473A (zh) | 2009-01-07 |
CN101341473B CN101341473B (zh) | 2010-11-17 |
Family
ID=38093565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800478996A Expired - Fee Related CN101341473B (zh) | 2005-12-20 | 2006-12-13 | 具有共享存储体的多处理器电路 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8074031B2 (zh) |
EP (1) | EP1966708A2 (zh) |
JP (1) | JP2009520295A (zh) |
CN (1) | CN101341473B (zh) |
WO (1) | WO2007072324A2 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105874440A (zh) * | 2014-01-02 | 2016-08-17 | 高通股份有限公司 | 用于对存储器进行碎片整理的系统和方法 |
CN105897543A (zh) * | 2016-05-31 | 2016-08-24 | 陈专 | 一种网络并联及信息叠加显示系统 |
CN108496160A (zh) * | 2016-01-25 | 2018-09-04 | 超威半导体公司 | 用于增强系统性能的自适应值范围剖析 |
WO2020135209A1 (zh) * | 2018-12-24 | 2020-07-02 | 安谋科技(中国)有限公司 | 减少存储体冲突的方法 |
CN112037115A (zh) * | 2013-08-08 | 2020-12-04 | 大卫·莫洛尼 | 计算成像管线 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8621138B2 (en) * | 2007-12-27 | 2013-12-31 | Sandisk Enterprise Ip Llc | Flash storage controller execute loop |
US8484418B2 (en) * | 2010-10-22 | 2013-07-09 | Intel Corporation | Methods and apparatuses for idle-prioritized memory ranks |
US8799510B2 (en) * | 2011-07-05 | 2014-08-05 | Cisco Technology, Inc. | Managing host routes for local computer networks with a plurality of field area routers |
US9177177B1 (en) * | 2012-10-04 | 2015-11-03 | Symantec Corporation | Systems and methods for securing storage space |
US20140136793A1 (en) * | 2012-11-13 | 2014-05-15 | Nvidia Corporation | System and method for reduced cache mode |
US20140269690A1 (en) * | 2013-03-13 | 2014-09-18 | Qualcomm Incorporated | Network element with distributed flow tables |
JP6195342B2 (ja) * | 2013-03-27 | 2017-09-13 | キヤノン株式会社 | 情報処理装置およびメモリアクセス制御方法 |
KR102346629B1 (ko) * | 2014-12-05 | 2022-01-03 | 삼성전자주식회사 | 메모리 접근 제어 방법 및 장치 |
JP6712052B2 (ja) * | 2016-06-29 | 2020-06-17 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
CN111149166B (zh) | 2017-07-30 | 2024-01-09 | 纽罗布拉德有限公司 | 基于存储器的分布式处理器架构 |
US11360934B1 (en) | 2017-09-15 | 2022-06-14 | Groq, Inc. | Tensor streaming processor architecture |
US11114138B2 (en) * | 2017-09-15 | 2021-09-07 | Groq, Inc. | Data structures with multiple read ports |
US11243880B1 (en) | 2017-09-15 | 2022-02-08 | Groq, Inc. | Processor architecture |
US11868804B1 (en) | 2019-11-18 | 2024-01-09 | Groq, Inc. | Processor instruction dispatch configuration |
US11170307B1 (en) | 2017-09-21 | 2021-11-09 | Groq, Inc. | Predictive model compiler for generating a statically scheduled binary with known resource constraints |
JP6531927B1 (ja) * | 2018-08-17 | 2019-06-19 | 株式会社エルアミーナ | 高位合成マルチプロセッサシステム等 |
US11204976B2 (en) | 2018-11-19 | 2021-12-21 | Groq, Inc. | Expanded kernel generation |
CN111858463B (zh) * | 2020-07-17 | 2024-04-02 | 上海科技大学 | 一种基于dvfs的优化重配置方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6965974B1 (en) * | 1997-11-14 | 2005-11-15 | Agere Systems Inc. | Dynamic partitioning of memory banks among multiple agents |
US6226726B1 (en) * | 1997-11-14 | 2001-05-01 | Lucent Technologies, Inc. | Memory bank organization correlating distance with a memory map |
DE60316197T2 (de) | 2002-04-04 | 2008-04-10 | Infineon Technologies Ag | Verfahren und System zum Teilen eines Speichermoduls |
JP2005522773A (ja) * | 2002-04-08 | 2005-07-28 | ユニバーシティー・オブ・テキサス・システム | 非均等型キャッシュ装置、システム及び方法 |
-
2006
- 2006-12-13 CN CN2006800478996A patent/CN101341473B/zh not_active Expired - Fee Related
- 2006-12-13 WO PCT/IB2006/054807 patent/WO2007072324A2/en active Application Filing
- 2006-12-13 US US12/158,316 patent/US8074031B2/en active Active
- 2006-12-13 EP EP06842481A patent/EP1966708A2/en not_active Withdrawn
- 2006-12-13 JP JP2008546742A patent/JP2009520295A/ja not_active Withdrawn
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112037115A (zh) * | 2013-08-08 | 2020-12-04 | 大卫·莫洛尼 | 计算成像管线 |
CN105874440A (zh) * | 2014-01-02 | 2016-08-17 | 高通股份有限公司 | 用于对存储器进行碎片整理的系统和方法 |
CN105874440B (zh) * | 2014-01-02 | 2017-09-26 | 高通股份有限公司 | 用于对存储器进行碎片整理的系统和方法 |
CN108496160A (zh) * | 2016-01-25 | 2018-09-04 | 超威半导体公司 | 用于增强系统性能的自适应值范围剖析 |
CN108496160B (zh) * | 2016-01-25 | 2020-12-22 | 超威半导体公司 | 用于增强系统性能的自适应值范围剖析 |
CN105897543A (zh) * | 2016-05-31 | 2016-08-24 | 陈专 | 一种网络并联及信息叠加显示系统 |
WO2020135209A1 (zh) * | 2018-12-24 | 2020-07-02 | 安谋科技(中国)有限公司 | 减少存储体冲突的方法 |
Also Published As
Publication number | Publication date |
---|---|
US8074031B2 (en) | 2011-12-06 |
US20080301354A1 (en) | 2008-12-04 |
CN101341473B (zh) | 2010-11-17 |
WO2007072324A3 (en) | 2007-10-18 |
JP2009520295A (ja) | 2009-05-21 |
WO2007072324A2 (en) | 2007-06-28 |
EP1966708A2 (en) | 2008-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101341473B (zh) | 具有共享存储体的多处理器电路 | |
CN101071398B (zh) | 多处理器系统上的分散-收集智能存储器体系结构 | |
US7793038B2 (en) | System and method for programmable bank selection for banked memory subsystems | |
US7330935B2 (en) | Set associative cache system and control method for cache memories | |
US5960455A (en) | Scalable cross bar type storage controller | |
US20210286755A1 (en) | High performance processor | |
CN102629221B (zh) | 用于分布式共享存储的任务同步方法、装置及系统 | |
US8595443B2 (en) | Varying a data prefetch size based upon data usage | |
US6950909B2 (en) | System and method for reducing contention in a multi-sectored cache | |
CN103729306A (zh) | 经由地址范围检查的多cpu块无效操作绕过 | |
CN111860804B (zh) | 分形计算装置、方法、集成电路及板卡 | |
JPWO2011148920A1 (ja) | マルチプロセッサシステム、実行制御方法、実行制御プログラム | |
US20100088473A1 (en) | Vector computer system with cache memory and operation method thereof | |
Chiou | Extending the reach of microprocessors: Column and curious caching | |
TW201820151A (zh) | 以複數個引擎作資源與互連結構的分散式分配以支援指令序列的執行 | |
US6560676B1 (en) | Cache memory system having a replace way limitation circuit and a processor | |
JP4617282B2 (ja) | 負荷発生装置及び負荷試験方法 | |
EP2104042A1 (en) | Information processing device, memory control method, and memory control device | |
JPH02207352A (ja) | 中央処理装置を持った多プロセッサーシステムのシステム制御装置をインターフェースする方法及び装置 | |
US20070266199A1 (en) | Virtual Address Cache and Method for Sharing Data Stored in a Virtual Address Cache | |
CN100552647C (zh) | 具有多阶快取架构的处理模块 | |
US20080005726A1 (en) | Methods and systems for modifying software applications to implement memory allocation | |
JP2006520044A (ja) | データフローアプリケーションを処理するために最適化されるキャッシュを備えるデータ処理システム | |
US6704820B1 (en) | Unified cache port consolidation | |
JP5245349B2 (ja) | 登録先ウェイの固定方法、プロセッサ、及び情報処理装置 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20101117 Termination date: 20111213 |