CN101243416A - 在具有至少两个处理单元和用于数据和/或指令的至少一个第一存储器或存储器区域的计算机***中存储数据和/或指令的设备和方法 - Google Patents

在具有至少两个处理单元和用于数据和/或指令的至少一个第一存储器或存储器区域的计算机***中存储数据和/或指令的设备和方法 Download PDF

Info

Publication number
CN101243416A
CN101243416A CNA2006800295393A CN200680029539A CN101243416A CN 101243416 A CN101243416 A CN 101243416A CN A2006800295393 A CNA2006800295393 A CN A2006800295393A CN 200680029539 A CN200680029539 A CN 200680029539A CN 101243416 A CN101243416 A CN 101243416A
Authority
CN
China
Prior art keywords
memory
access
port
data
memory area
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.)
Pending
Application number
CNA2006800295393A
Other languages
English (en)
Inventor
R·韦伯尔
B·米勒
E·博尔
Y·科拉尼
R·格默利克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of CN101243416A publication Critical patent/CN101243416A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0853Cache with multiport tag or data arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/845Systems in which the redundancy can be transformed in increased performance

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Static Random-Access Memory (AREA)

Abstract

用于在具有至少两个处理单元和用于数据和/或指令的至少一个第一存储器或存储器区域的计算机***中存储数据和/或指令的设备和方法,其特征在于,在所述设备中含有第二存储器或存储器区域,其中所述设备被构造为Cache存储器***并配备有至少两个分开的端口,并且至少两个处理单元通过所述端口对第二存储器或存储器区域的相同的或不同的存储器单元进行存取,其中来自第一存储器***的数据和/或指令以块的方式被缓存。

Description

在具有至少两个处理单元和用于数据和/或指令的至少一个第一存储器或存储器区域的计算机***中存储数据和/或指令的设备和方法
本发明涉及一种具有高速缓冲存储器(Cache)的微处理器***,并在该上下文中说明一种双端口Cache。
现有技术
处理器配备有Cache,以便加速对指令和数据的存取。这一方面对于持续增加的数据量而言、另一方面对于利用越来越快工作的处理器的数据处理的日益增加的复杂性而言是必要的。通过Cache部分地避免对大的(主)存储器的缓慢存取,并且于是处理器不必等待数据准备就绪。无论是仅用于指令的Cache还是仅用于数据的Cache都是公知的,但“统一的Cache”也是公知的,在所述统一的Cache情况下,不仅数据、而且命令都被存放在同一Cache中。带有多等级(层级)Cache的***也是公知的。使用这种多级Cache,用以利用分级的存储器大小和Cache在不同等级上的不同类型的编址策略对处理器和(主)存储器之间的速度进行最佳匹配。
在多处理器***中常见的是,给每个处理器配备一个Cache,或者在多级Cache的情况下配备相应多个Cache。但存在多个Cache的***也是公知的,其中所述多个Cache可由不同的处理器来编址,如在美国专利4345309中所记载的那样。
如果在具有对每个处理单元固定分配的Cache的多处理器***中至少部分地使用相同的指令、程序段、程序或数据,那么每个处理单元都必须将上述相同的指令、程序段、程序或数据从主存储器加载到分配给其的Cache中。在这种情况下,如果两个或多个处理器要存取主存储器,则也许出现总线冲突。这导致多处理器***的性能损耗。如果存在多于一个的处理器分别所存取的多个公共Cache,并且两个处理器需要来自这些Cache之一的相同或也不同的数据,那么由于存取冲突而必须决定,哪一个处理器能首先存取,而另一处理器则必须不可避免地等待。如果使用总线***用于Cache,所述总线***同时允许也对不同的Cache的仅一次存取,则同样的甚至适用于不同的数据和指令。
如果处理器分别具有固定分配的Cache并且此外所述处理器可在处理器***的不同工作模式下切换,其中所述处理器或者执行不同的程序、程序段或指令(性能模式)、或者执行相同的程序、程序段或指令并对结果进行比较或者表决(比较模式),那么当在工作模式之间切换时在每个控制器的并行Cache中的数据或指令或者必须被清除,或者所述数据或指令在对Cache加载时必须被配备相应工作模式的相应信息,所述信息信息优选地与数据一起被存储。因此,在工作期间可在不同的工作模式之间切换的多处理器***中,如果只有一个公共的(必要时按等级划分的)Cache并且每个数据或每个指令仅被存放到其中一次且可同时存取该Cache,则是特别有利的。因此本发明的任务是设计这种存储器。
本发明的任务是提供装置和方法,用于优化Cache的大小。
发明优点
将Cache存储器实现为双端口Cache由于提高的硬件耗费在具有一个或多个执行单元(单核或多核)的公知处理器***中是难以设想的。在多个执行单元(核、处理器)以可变的方式、即在不同的工作模式下相互协作(如在DE 10332700 A1所记载的那样)的多处理器结构体系中,可以有利地采用双端口Cache结构体系。相比于具有多个Cache的多处理器***,主要优点在于,在多处理器***的工作模式之间切换时Cache的内容不必被清除或者被宣告无效,因为数据只被存放一次并因此即使在切换之后也保持相容(konsistent)。
在具有多种工作模式的多处理器***中的双端口Cache的优点在于:数据/指令不必多次被取到Cache中和必要时被维护,只需按硬件提供每数据/指令一个存储器位置,即使该数据或该指令被多个执行单元使用,在多处理器***的不同工作模式时不必对数据进行如下区分,即所述数据在哪种模式下被处理或取出,在变换工作模式时不必清除Cache,两个处理器可同时以读的方式存取相同的数据/指令,代替“直写(write through)”模式也可以采用“回写(write back)”模式用于Cache,所述“回写”模式特别是在写时是更时间有利的,因为不必持续地更新(主)存储器,而是只有在重写Cache中的数据时才更新;不存在相容性问题,因为用于两个处理器的Cache从相同的源提供数据。
如果在用于在具有至少两个处理单元和用于数据和/或指令的至少一个第一存储器或存储器区域的计算机***中存储数据和/或指令的设备中包含第二存储器或存储器区域,则该设备是有利的,其中该设备被构造为Cache存储器***并装备有至少两个分开的端口,并且所述至少两个处理单元通过所述端口对第二存储器或存储器区域的相同或不同的存储器单元进行存取,其中来自第一存储器***的数据和/或指令以块的方式被缓存。
此外,如果存在装置,其中所述装置如此被设计,使得通过至少两个端口同时对存储器单元进行读存取,则这种设备是有利的。
此外,如果在该设备中存在装置,其中所述装置如此被设计,使得通过至少两个端口同时对两个不同的存储器单元进行读存取,则是有利的。
此外,如果在该设备中存在装置,其中利用所述装置在通过至少两个端口同时对同一或对两个不同的存储器单元读存取时,一个端口在存取中被延迟,直至另一端口已经结束存取为止,则是有利的。
此外,如果在该设备中存在装置,其中利用所述装置可以对至少两个端口上的存取地址进行比较,则是有利的。
此外,如果在该设备中存在装置,其中所述装置识别通过第一端口对存储器单元或存储器区域的写存取,并且将通过第二端口对这些存储器单元和/或这些存储器区域的写和/或读存取阻碍或延迟,直至通过第一端口的写存取结束为止,则是有利的。
此外,如果在该设备中存在装置,其中所述装置在通过至少一个端口读存取时检验,所希望的数据是否存在于第二存储器或存储器区域中,则是有利的。
此外,如果在该设备中存在装置,用以对第一存储器或存储器区域进行编址,并且如果通过第一端口所请求的数据不存在于第二存储器或存储器区域中,则将存储器内容以块的方式从所述第一存储器或存储器区域传输到第二存储器或存储器区域中,则是有利的。
此外,如果在该设备中存在地址比较器,则是有利的,其中所述地址比较器确定,应该通过第二端口对由第一处理单元通过第一端口所请求的存储器块中的至少一个存储器单元进行存取。
此外,如果在该设备中存在装置,其中所述装置只有在第二存储器或存储器区域中的数据被更新时才能够实现对存储器单元的存取,则是有利的。
此外,如果在该设备中第二存储器或存储器区域被划分成至少两个可相互独立地被读或写的地址区域,则是有利的。
此外,如果在该设备中存在地址解码器,则是有利的,所述地址解码器产生选择信号,所述选择信号在通过多个端口对一个地址区域同时存取时仅允许一个端口存取并且特别是通过等待信号来禁止或延迟至少一个其它端口的存取。
此外,如果在该设备中设有多于两个的端口,则是有利的,其中存在选择装置,并且通过所述选择装置以多级的方式对相互独立的地址区域进行存取,并且为此通过所述级转发选择信号。
此外,如果在该设备中存在至少一个模式信号,该模式信号对不同端口的存取进行切换,则是有利的。
此外,如果在该设备中存在至少一个配置信号,该配置信号对不同端口的存取进行切换,则是有利的。
此外,如果在该设备中借助于n个不同的地址区域实现n重联合的Cache,则是有利的。
此外,如果在该设备中存在装置,所述装置在对第二存储器的存储器单元或存储器区域写存取时将待写的数据同时写入第一存储器或存储器区域中,则是有利的。
此外,如果在该设备中存在装置,所述装置在对第二存储器的存储器单元或存储器区域写存取时将待写的数据以延迟的方式写入第一存储器或存储器区域中,则是有利的。
有利的是,说明一种用于在具有至少两个处理单元和用于数据和/或指令的至少一个第一存储器或存储器区域的计算机***中存储数据和/或指令的方法,其特征在于,在设备中含有第二存储器或存储器区域,其中该设备被构造为Cache存储器***并配备有至少两个分开的端口,并且至少两个处理单元通过所述端口对第二存储器或存储器区域的相同的或不同的存储器单元进行存取,其中来自第一存储器***的数据和/或指令以块的方式被缓存。
有利的是,说明一种方法,其特征在于,为了从第二存储器或存储器区域读数据和/或为了将数据写到第二存储器或存储器区域中,处理单元通过两个端口对第二存储器或存储器区域的相同的或不同的存储器单元进行并行存取,并同时通过两个端口对相同的存储器单元进行读。
有利的是,说明一种方法,其特征在于,对施加在两个端口上的地址进行比较。
有利的是,说明一种方法,其特征在于,识别通过第一端口对第二存储器或存储器区域和/或第二存储器或存储器区域的存储器单元的写存取,并且通过第二端口对所述第二存储器或存储器区域的写和读存取被禁止和/或延迟直至通过第一端口的写存取结束为止。
有利的是,说明一种方法,其特征在于,在通过至少一个端口读存取时检验,所希望的数据和/或指令是否存在于第二存储器或存储器区域中。
有利的是,说明一种方法,其特征在于,借助于地址信息进行检验。
有利的是,说明一种方法,在通过第一端口所请求的数据不存在于第二存储器或存储器区域中的情况下,促使相应的存储器块从第一存储器装置传输到第二存储器或存储器区域中。
有利的是,说明一种方法,一旦所请求的存储器块已被传输到第二存储器或存储器区域中,关于数据和/或指令的存在的所有信息就被更新。
有利的是,说明一种方法,其特征在于,地址比较器确定,第二处理单元要对由第一处理单元所请求的存储器块中的至少一个存储器单元进行存取。
有利的是,说明一种方法,其特征在于,只有在关于数据和/或指令的存在的相关信息被更新时才能够实现对所述存储器单元的存取。
有利的是,说明一种方法,其特征在于,第二存储器或存储器区域被划分成至少两个地址区域,并且所述至少两个地址区域可以通过第二存储器或存储器区域的至少两个端口相互独立地被读或写,其中每个端口都可以对每个地址区域进行存取。
有利的是,说明一种方法,其特征在于,对地址区域的同时存取被限制于恰好一个端口,并且在第一端口的存取期间,通过其它端口对该地址区域的所有其它存取请求特别是通过等待信号被禁止或延迟。
有利的是,说明一种方法,其特征在于,在对第二存储器的存储器单元或存储器区域进行写存取时,待写的数据被同时写入第一存储器或存储器区域中。
有利的是,说明一种方法,其特征在于,在对第二存储器的存储器单元或存储器区域进行写存取时,待写的数据以延迟的方式被写入第一存储器或存储器区域中。
其它优点和有利的扩展方案由权利要求的特征以及说明书得到。
附图和表格
图1示出用于数据和/或指令的双端口Cache;
图2进一步详细地示出双端口Cache;
图3示出用于地址变换的装置和方法;
图4示出将双端口RAM划分成两个部分区域,所述两个部分区域可相互独立地被运行,并且利用每个端口的每两个单独的选择信号在存取中被控制;
图5示出通过单端口RAM借助端口切换来实现双端口RAM区域;
图6示出具有p个端口的多端口RAM被划分成可并行处理的多个部分地址区域1...q;
图7示出通过单端口RAM借助端口切换来实现多端口RAM区域;
图8示出根据***状态或配置划分用于端口的RAM区域;
图9示出根据***状态或配置通过产生相应的选择信号来将多端口RAM划分成区域;
图10示出利用多重联合存取将多端口RAM划分成区域;
表1示出通过解码由2个地址位产生4个选择信号;
表2示出在考虑***状态或配置信号M的情况下由一个地址位在每个端口上产生分别两个选择信号;
表3在另一实施方案中示出在考虑***状态或配置信号M的情况下由一个地址位在每个端口上产生分别两个选择信号。
对实施例的说明
下面,处理单元或执行单元不仅可以表示处理器/核/CPU、而且也可以表示FPU(浮点单元)、DSP(数字信号处理器)、协处理器或ALU(算术逻辑单元)。
根据图1的双端口Cache200对于重要部分由双端口RAM(dpRAM,230)组成。该dpRAM 230优选地配备有两个相互独立的地址解码器、两个数据写/读级,并且不同于简单的存储器单元矩阵,还配备有加倍的字和位线,使得至少对dpRAM的任意存储器单元的读过程可由两个端口同时进行。(但如果并非所有的存取元件都被加倍并且dpRAM因此只能有条件地同时通过两个端口来存取,那么从意义上说该布置也适用)。因此双端口RAM是每个具有两个端口231和232的RAM,所述两个端口可相互独立被使用,而无需考虑处理用于由该端口读或写的请求需要多少时间、即直至所请求的读或写过程(必要时还与另一端口的请求相互影响)结束要持续多久。dpRAM的两个端口通过信号201或202与装置210或220连接,所述装置对来自独立处理单元215和225的到达的地址、数据和控制信号211或221进行检验并可选地变换地址。数据在读时按照端口经由201通过210被输出到211上,或经由202通过220被输出到221上,或者在分别相反的方向上从执行单元被写入到Cache存储器中。dpRAM的两个端口通过信号201或202与总线存取控制装置240连接,所述总线存取控制装置与信号241连接,所述信号241建立至这里未示出的(主)存储器或至下一级的Cache的连接。
在图2中更详细地示出单元210、220和250。在存取双端口Cache时,处理单元215和225的在信号211和221中所含有的地址212和222在装置250的地址比较器251中被相互比较,并且与同样在211和221中所传输的控制信号一起被检验兼容性。在冲突的情况下,借助在信号213或223中所含有的控制信号来防止对双端口RAM 230的存取。这种冲突可能是,两个处理单元要对相同的地址写,或者一个处理单元写而另一个处理单元将要从相同的地址读。
Cache可以以部分或完全联合的方式被实施,即数据可以被存放在Cache的多个位置或者甚至任意位置上。为了能够实现对dpRAM的存取,为此必须首先确定该地址,其中通过该地址可以存取所希望的数据/指令。根据编址模式选出一个或多个块地址,借助所述块地址在Cache中搜索数据。对所有这些块读,并且对与数据一起存储在Cache中的标识与索引地址(Index-Adresse)(原始地址的一部分)进行比较。在一致的情况下并且在借助同样存储在每个块的Cache中的控制位(例如有效位、页面重写标志位(Dirty-Bit)和过程(Prozess)ID)附加地检验有效性之后,产生显示有效性的Cache命中信号(Cache HitSignal)。
为了变换地址,优选地使用表格,该表格被布置在图2所示的存储器单元214或224(寄存器或RAM,也称为TAG-RAM)中并位于单元210或220中。该表格是地址变换单元,该地址变换单元不仅将虚拟地址变换成物理地址,而且在直接映射Cache情况下提供准确的(明确的)Cache存取地址;在多重联合的Cache组织情况下起动(ansprechen)多个块,而在完全联合的Cache情况下必须读且比较Cache的所有块。例如美国专利4669043中记载了这种地址变换单元。
例如,在块的每个地址或地址组的上述表格中存储dpRAM的存取地址。以图3所示的编址方式,为此根据Cache的块大小将表格的有效地址位(索引地址)用作地址,而内容是dpRAM的存取地址(图3)。在此,将字节的数量称为块,其中如果从该区域以读的方式存取地址,所述字节在Cache未命中(Cache Miss)(Cache中的所需数据丢失)的情况下共同从存储器被取到Cache中。
为了按字节或字存取Cache,利用表格来变换对块有效的地址位,而不变地采用余下的(低值的)地址位。
对于写过程,例如为两个端口中的一个设立较高的优先权,也就是说,防止由两个端口同时写。只有当优先端口已经执行了写操作时,另一端口才允许写;而且必要时只有一个处理器具有对相应所分配的存储器区域的写权限。同样可以在对存储器单元任意写操作时防止相同的存储器单元由分别另一端口读,或者可以通过使具有读愿望的处理器中止直至写操作结束为止来延迟读操作。为此,给所有地址位的在图2中所示的地址比较器(251)设有相应的判优器252,该判优器还对处理器的控制信号进行分析并形成控制所述流程的输出信号213和223。在一种有利的实施方案中,输出信号213和223可以分别采取至少三种信号状态:使能(enable)、等待(wait)、相等(equal),其中使能允许存取,等待将引起延迟,而相等则表明,由两个端口对同一存储器区域进行存取。对于纯命令cache来说,无需写存取;在这种情况下,信号状态“相等”对于输出信号213和223来说就足够了。
在Cache未命中的情况下,数据或指令必须经由总线***从程序或数据存储器中被取出。到达的数据被转发至处理单元,并与标识和控制位一起并行地被写入Cache中。如果不存在命中却由地址比较器显示信号“相等”(213和223的组成部分或状态),则地址比较器这里也防止再次从存储器取数据。在双侧读的情况下,信号“相等”只由有效(signifikant)地址位构成,因为整个块始终从存储器中被取得。只有在块被存储在Cache中时,等待的处理单元才可以存取Cache。
在另一有利的实施方案中,为数据和指令设置两个分开的双端口Cache,其中在后者情况下通常可以不设置写过程。在这种情况下,地址比较器始终只对有效地址位的相等性进行检验,并在信号213或223中提供相应的控制信号“相等”。
此外可能的是,只有在所请求的数据存在于可实现同时存取的不同地址区域中时,两个端口的同时读存取才不受限制地起作用。由此可以在硬件实现时节省支出,因为并非存储器中的所有存取机制都必须被加倍。例如可以在可相互独立运行的多个部分存储器区域中实现Cache。每个部分存储器都可以通过选择信号仅实现一个端口的执行。在图4中示出包含两个部分存储器区域235和236的这种存储器230。在此处所示的实施例中,两个选择信号E0和E1如此由地址位Ai构成,使得E0=1且E1=0适用于情况Ai=0和E0=0且E1=1适用于情况Ai=1。于是在信号233和234中含有两个选择信号和低值的地址位Ai-1...A0
对于具有四个部分存储器的另一实施例来说,可由两个地址位产生4个选择信号,因为每个部分存储器都明确地服务于确定的地址区域。因此可以利用2个地址位Ai+1和Ai来起动四个部分存储器区域,其方式为,根据表格1的二进制值产生四个选择信号E0至E3
在图5中为图4所示的部分存储器235和236示出实施例。在那里用260表示的部分存储器在该特殊的实施方案中被实施为单端口RAM280,该单端口RAM的地址、数据和控制信号根据请求被切换。该切换通过控制电路270借助于多路复用器275根据选择信号和相应端口的其它控制信号2901或2902(例如读、写)来进行。这些信号与数据和地址一起包含在信号233或234中并经由5281或5282被输送给多路复用器275,该多路复用器视控制电路270的决定根据输出信号2701将5281或5282与信号2801连接。在该实例中,在不限制一般性的情况下,以Cache的直接编址为出发点(直接映射)。如果存在多重联合的Cache组织,则必须或者在单元275中还对有效性进行比较并将Cache命中信号转发至端口,或者将所有数据都经由端口5331和信号233转发至231或经由端口5332和信号234转发至232,在231或232中检验有效性。
在此,控制电路可以将信号5281或5282转接到2801上并由此转接至单端口RAM 280以及也可以从280在相反的方向上转发数据和其它信号。这根据有效的选择信号和信号233和234和/或以下顺序来进行,其中端口以所述顺序通过这些信号引起与存储器280的读或写操作。如果在信号233和234中这些读或写信号同时被激活,那么先前定义的端口首先***作。即使没有读或写信号被激活,该优选端口也保持与2801连接。作为替代方案,优选端口也可以动态地由处理器***优选地根据处理器***的状态信息来确定。
具有单端口RAM的这种布置要比具有并行存取可能性的双端口RAM成本低,但如果同时(也即以读的方式)存取一个部分存储器,则会延迟至少一个处理单元的执行。根据应用现在可能的是,如此对RAM部分区域进行不同的划分,使得与指令流程的设计和不同处理单元的数据存取一起尽可能少地出现对相同的部分RAM区域的同时存取。这种布置也可扩展为多于两个的处理器的存取:如果通过多路复用器分级地依次设置对地址、数据和控制信号的切换,也可以以相同的方式实现多端口RAM(图6和7)。
在图6中示出了这种多端口RAM 290。在那里,端口输入信号261、262、...、267在解码装置331、332、...、337中被解码成信号291、292、...、297。该解码产生用于存取281、282和288中的各个RAM的选择信号。在图7中更详细地示出了部分存储器28x(281、...、288)的实施例。在那里,在控制装置370的第一级中,来自控制信号291、292、...、298的选择信号和控制信号3901、3902、...、3908被处理成输出信号3701、...、3707。这些输出信号分别控制一个多路复用器375,所述多路复用器根据信号值建立总线381或382至387或388与信号481、...、488的连接。在其它级中,类似的控制装置370和多路复用器375被相应地接入,直到在最后一级中信号5901和5902被用于控制装置。于是输出信号5701使581或者582与681连接,所述681与单端口RAM连接。
与图5的多路复用器275相反,图7的多路复用器375除了地址信号、数据信号和控制信号外还连接在381、382、...、388中所含有的下级选择信号。此外在375中可以含有比较装置,所述比较装置在多重联合的编址方式情况下确定从部分区域所读出的数据的有效性。
在另一有利的实施方案中,可以使RAM区域对不同的处理单元的接通与一种或多种***状态或配置相关。为此在图8中示出了可配置的双端口Cache的实例。为此,***模式或配置信号1000在对输入信号解码时用于两个端口中的每一个。表2示出根据该信号1000来改变解码的可能性,所述信号这里用M表示。如果M=0,那么例如存在比较模式,在所述比较模式中两个端口对整个Cache进行存取。但如果M=1(例如性能模式),那么每个端口只还对Cache的一半进行存取,但每个端口可以不受限制地(不受其它端口上的活动影响)存取该区域。在这种模式下,地址位Ai不被用于(在直接映射模式下)对Cache编址,而是在编址中区别仅在于该位的数据在相同的位置被存放在Cache中。于是只有在读Cache内容时才能根据标识查明是否是所搜索的数据并相应地产生Cache命中信号。根据相应的比较器布置在何处,可以将包括标识和控制位在内的数据经由信号291、292、...、297输出给端口331、332、...、337并且继续输出信号261、262、...、267。同样可以在性能模式(M=1)下只允许端口1存取整个Cache。在表3中示出了这种实施方案。用户也可以通过多个配置信号对Cache进行任意的其它划分。在较大的Cache区域情况下,这将允许较高的命中率,并由此减少从主存储器中取数据的必要性。另一方面,如果通过不同的端口尽可能只对相互独立的Cache区域进行存取,则不妨碍不同的处理单元。因为这些条件取决于为应用所设置的程序,所以如果根据应用存在其它配置的可能性,则是有利的。另一方面,可以直接在***状态(比较模式/性能模式)转变时自动地通过模式信号1000来切换Cache。
根据模式或配置信号来切换端口的这种可能性在图9中被扩展为多端口Cache 290。在此,331、332、...、337是端口,所述端口借助于该模式或配置信号来控制不同的部分RAM区域281、282、...、288的接通。这种控制通过相应地在端口中所产生的选择信号得以保证,其中所述选择信号包含在信号291、292、...、297中。
如果存在多重联合Cache,则在图10中示出另一实施方案,其中从每个部分存储器281、282、...、288中与标识和控制位一起回读数据。然后在比较装置2811、2812、...、2817、2821、2822、...、2827、...、2881、2882、...、2887中检验有效性并据此将数据与有效性信号一起转发到信号2910、2920、...、2970上。在此可选地与图9中已经示出和描述的完全相同地能够利用模式或配置信号切换。在端口3310、3320、...、3370中对有效性信号和必要时模式和配置信号1000进行分析并将相应的有效数据与Cache命中信号或Cache未命中信号一起转发给信号2610、2620、...、2670。
代替RAM存储器,本发明的布置也可以采用诸如MRAM、FERAM等其它存储器技术来示出。

Claims (32)

1.用于在具有至少两个处理单元和用于数据和/或指令的至少一个第一存储器或存储器区域的计算机***中存储数据和/或指令的设备,其特征在于,在所述设备中含有第二存储器或存储器区域,其中所述设备被构造为Cache存储器***并配备有至少两个分开的端口,至少两个处理单元通过这些端口对第二存储器或存储器区域的相同的或不同的存储器单元进行存取,其中来自第一存储器***的数据和/或指令以块的方式被缓存。
2.如权利要求1所述的设备,其特征在于,存在装置,所述装置如此被设计,使得通过所述至少两个端口同时对存储器单元进行读存取。
3.如权利要求1所述的设备,其特征在于,存在装置,所述装置如此被设计,使得通过所述至少两个端口同时对两个不同的存储器单元进行读存取。
4.如权利要求1所述的设备,其特征在于,存在装置,利用所述装置在通过所述至少两个端口同时对相同的或对两个不同的存储器单元进行读存取时,一个端口在存取中被延迟直至另一端口已结束存取为止。
5.如权利要求1所述的设备,其特征在于,存在装置,利用所述装置可以对所述至少两个端口上的存取地址进行比较。
6.如权利要求1所述的设备,其特征在于,存在装置,所述装置识别通过第一端口对存储器单元或存储器区域的写存取,并且将通过第二端口对所述存储器单元和/或所述存储器区域的写和/或读存取阻碍或延迟直至通过所述第一端口的写存取结束为止。
7.如权利要求1所述的设备,其特征在于,存在装置,所述装置在通过至少一个端口读存取时检验,所希望的数据是否存在于所述第二存储器或存储器区域中。
8.如权利要求1所述的设备,其特征在于,存在装置,用以对所述第一存储器或存储器区域进行编址,并且如果通过第一端口所请求的数据不存在于第二存储器或存储器区域中,则将存储器内容以块的方式从所述第一存储器或存储器区域传输到所述第二存储器或存储器区域中。
9.如权利要求8所述的设备,其特征在于,存在地址比较器,该地址比较器确定,应该通过第二端口对由第一处理单元通过所述第一端口所请求的存储器块中的至少一个存储器单元进行存取。
10.如权利要求9所述的设备,其特征在于,存在装置,所述装置只有在所述第二存储器或存储器区域中的数据被更新时才可以实现对存储器单元的存取。
11.如权利要求1所述的设备,其特征在于,所述第二存储器或存储器区域被划分成至少两个可相互独立地被读或写的地址区域。
12.如权利要求11所述的设备,其特征在于,存在地址解码器,所述地址解码器产生选择信号,所述选择信号在通过多个端口对一个地址区域同时存取时仅允许一个端口存取并且特别是通过等待信号来禁止或延迟至少一个其它端口的存取。
13.如权利要求12所述的设备,其特征在于,设有多于两个的端口,其中存在选择装置并且通过所述选择装置以多级的方式对相互独立的地址区域进行存取,并且为此通过这些级转发选择信号。
14.如权利要求11、12或13所述的设备,其特征在于,存在至少一个模式信号,该模式信号对不同端口的存取可能性进行切换。
15.如权利要求11、12或13所述的设备,其特征在于,存在至少一个配置信号,该配置信号对不同端口的存取可能性进行切换。
16.如权利要求11、12或13所述的设备,其特征在于,借助于n个不同的地址区域实现n重联合的Cache。
17.如权利要求1所述的设备,其特征在于,存在装置,所述装置在对所述第二存储器的存储器单元或存储器区域进行写存取时将待写的数据同时写入所述第一存储器或存储器区域中。
18.如权利要求1所述的设备,其特征在于,存在装置,所述装置在对所述第二存储器的存储器单元或存储器区域进行写存取时将待写的数据以延迟的方式写入所述第一存储器或存储器区域中。
19.用于在具有至少两个处理单元和用于数据和/或指令的至少一个第一存储器或存储器区域的计算机***中存储数据和/或指令的方法,其特征在于,在设备中含有第二存储器或存储器区域,其中所述设备被构造为Cache存储器***并配备有至少两个分开的端口,并且至少两个处理单元通过这些端口对第二存储器或存储器区域的相同的或不同的存储器单元进行存取,其中来自所述第一存储器***的数据和/或指令以块的方式被缓存。
20.如权利要求19所述的方法,其特征在于,为了所述第二存储器或存储器区域读数据和/或为了将数据写入所述第二存储器或存储器区域中,处理单元通过所述两个端口对所述第二存储器或存储器区域的相同的或不同的存储器单元进行并行存取,并同时通过两个端口对相同的存储器单元进行读。
21.如权利要求19或20所述的方法,其特征在于,对施加在所述两个端口上的地址进行比较。
22.如权利要求19或20所述的方法,其特征在于,识别通过第一端口对所述第二存储器或存储器区域和/或所述第二存储器或存储器区域的存储器单元的写存取,并且将通过第二端口对所述第二存储器或存储器区域的写和读存取阻碍和/或延迟直至通过所述第一端口的写存取结束为止。
23.如权利要求19或20所述的方法,其特征在于,在通过至少一个端口读存取时检验,所希望的数据和/或指令是否存在于所述第二存储器或存储器区域中。
24.如权利要求23所述的方法,其特征在于,借助于地址信息进行检验。
25.如权利要求23所述的方法,其特征在于,在通过第一端口所请求的数据不存在于第二存储器或存储器区域中的情况下,促使相应的存储器块从第一存储器装置传输到所述第二存储器或存储器区域中。
26.如权利要求23所述的方法,其特征在于,一旦所请求的存储器块被传输到所述第二存储器或存储器区域中,关于数据和/或指令的存在的所有信息就被更新。
27.如权利要求23所述的方法,其特征在于,地址比较器确定,第二处理单元要对由第一处理单元所请求的存储器块中的至少一个存储器单元进行存取。
28.如权利要求27所述的方法,其特征在于,只有在关于数据和/或指令的存在的相关信息已被更新时,才能够实现对所述存储器单元的存取。
29.如权利要求19或20所述的方法,其特征在于,所述第二存储器或存储器区域被划分成至少两个地址区域,并且所述至少两个地址区域可以通过所述第二存储器或存储器区域的至少两个端口相互独立地被读或写,其中每个端口都可以对每个地址区域存取。
30.如权利要求29所述的方法,其特征在于,对地址区域的同时存取被限制于恰好一个端口,在所述第一端口的存取期间,通过其它端口对该地址区域的所有其它存取请求特别是通过等待信号被禁止或延迟。
31.如权利要求19或20所述的方法,其特征在于,在对所述第二存储器的存储器单元或存储器区域进行写存取时,待写的数据被同时写入所述第一存储器或存储器区域中。
32.如权利要求19或20所述的方法,其特征在于,在对所述第二存储器的存储器单元或存储器区域进行写存时,待写的数据以延迟的方式被写入所述第一存储器或存储器区域中。
CNA2006800295393A 2005-08-08 2006-07-25 在具有至少两个处理单元和用于数据和/或指令的至少一个第一存储器或存储器区域的计算机***中存储数据和/或指令的设备和方法 Pending CN101243416A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102005037219.8 2005-08-08
DE102005037219A DE102005037219A1 (de) 2005-08-08 2005-08-08 Vorrichtung und Verfahren zur Speicherung von Daten und/oder Befehlen in einem Rechnersystem mit wenigstens zwei Verarbeitungseinheiten und wenigstens einem ersten Speicher oder Speicherbereich für Daten und/oder Befehle

Publications (1)

Publication Number Publication Date
CN101243416A true CN101243416A (zh) 2008-08-13

Family

ID=37027584

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2006800295393A Pending CN101243416A (zh) 2005-08-08 2006-07-25 在具有至少两个处理单元和用于数据和/或指令的至少一个第一存储器或存储器区域的计算机***中存储数据和/或指令的设备和方法

Country Status (6)

Country Link
US (1) US20100005244A1 (zh)
EP (1) EP1915694A1 (zh)
JP (1) JP2009505180A (zh)
CN (1) CN101243416A (zh)
DE (1) DE102005037219A1 (zh)
WO (1) WO2007017373A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102713868A (zh) * 2010-01-14 2012-10-03 高通股份有限公司 存取二级存储器的一部分及一级存储器的***及方法
CN107077400A (zh) * 2014-06-05 2017-08-18 美光科技公司 使用感测电路进行奇偶确定的设备及方法

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201017421A (en) * 2008-09-24 2010-05-01 Panasonic Corp Cache memory, memory system and control method therefor
FR2954539B1 (fr) * 2009-12-23 2014-08-29 Thales Sa Procede et dispositif de detection de transferts errones pour microcontroleur ou microprocesseur en vue de garantir le partitionnement.
US9268722B1 (en) * 2012-05-31 2016-02-23 Marvell International Ltd. Sharing memory using processor wait states
US9208870B2 (en) * 2012-09-13 2015-12-08 Adesto Technologies Corporation Multi-port memory devices and methods having programmable impedance elements
US9990649B2 (en) * 2013-10-09 2018-06-05 Selligent, Inc. System and method for managing message campaign data
US9455020B2 (en) 2014-06-05 2016-09-27 Micron Technology, Inc. Apparatuses and methods for performing an exclusive or operation using sensing circuitry
JP2019057336A (ja) * 2017-09-19 2019-04-11 株式会社東芝 半導体集積回路

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS537108B2 (zh) * 1972-09-29 1978-03-14
US4345309A (en) * 1980-01-28 1982-08-17 Digital Equipment Corporation Relating to cached multiprocessor system with pipeline timing
US5247649A (en) * 1988-05-06 1993-09-21 Hitachi, Ltd. Multi-processor system having a multi-port cache memory
JPH01280860A (ja) * 1988-05-06 1989-11-13 Hitachi Ltd マルチポートキヤツシユメモリを有するマルチプロセツサシステム
JP2965043B2 (ja) * 1990-04-10 1999-10-18 三菱電機株式会社 デュアルポートメモリ
JPH0485788A (ja) * 1990-07-27 1992-03-18 Toshiba Corp 多ポートキャッシュメモリ
DE4129614C2 (de) * 1990-09-07 2002-03-21 Hitachi Ltd System und Verfahren zur Datenverarbeitung
US6101589A (en) * 1998-04-01 2000-08-08 International Business Machines Corporation High performance shared cache
US20040221112A1 (en) * 2003-04-29 2004-11-04 Zvi Greenfield Data storage and distribution apparatus and method
DE10332700A1 (de) * 2003-06-24 2005-01-13 Robert Bosch Gmbh Verfahren zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit sowie entsprechende Prozessoreinheit
US7363436B1 (en) * 2004-02-26 2008-04-22 Integrated Device Technology, Inc. Collision detection in a multi-port memory system
US7747828B2 (en) * 2004-11-17 2010-06-29 Integrated Device Technology, Inc. Systems and methods for monitoring and controlling binary state devices using a memory device

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102713868A (zh) * 2010-01-14 2012-10-03 高通股份有限公司 存取二级存储器的一部分及一级存储器的***及方法
CN102713868B (zh) * 2010-01-14 2015-11-25 高通股份有限公司 存取二级存储器的一部分及一级存储器的***及方法
CN107077400A (zh) * 2014-06-05 2017-08-18 美光科技公司 使用感测电路进行奇偶确定的设备及方法
CN107077400B (zh) * 2014-06-05 2020-04-07 美光科技公司 使用感测电路进行奇偶确定的设备及方法
US10839867B2 (en) 2014-06-05 2020-11-17 Micron Technology, Inc. Apparatuses and methods for parity determination using sensing circuitry

Also Published As

Publication number Publication date
JP2009505180A (ja) 2009-02-05
WO2007017373A1 (de) 2007-02-15
DE102005037219A1 (de) 2007-02-15
US20100005244A1 (en) 2010-01-07
EP1915694A1 (de) 2008-04-30

Similar Documents

Publication Publication Date Title
CN101243416A (zh) 在具有至少两个处理单元和用于数据和/或指令的至少一个第一存储器或存储器区域的计算机***中存储数据和/或指令的设备和方法
US4736293A (en) Interleaved set-associative memory
JP2008507034A5 (zh)
EP0706133A2 (en) Method and system for concurrent access in a data cache array utilizing multiple match line selection paths
KR100295187B1 (ko) 순서에따르지않고판독및기입명령을실행하는메모리제어기
US7398362B1 (en) Programmable interleaving in multiple-bank memories
US12019555B2 (en) Cache with set associativity having data defined cache sets
US11360777B2 (en) Cache systems and circuits for syncing caches or cache sets
US11010288B2 (en) Spare cache set to accelerate speculative execution, wherein the spare cache set, allocated when transitioning from non-speculative execution to speculative execution, is reserved during previous transitioning from the non-speculative execution to the speculative execution
CN1201233C (zh) 带有可编程存储体选择的具有不同数据缓冲区容量的多层存储体
EP1381957A2 (en) Data processing apparatus and system and method for controlling memory access
US11194582B2 (en) Cache systems for main and speculative threads of processors
US20210034521A1 (en) Data defined caches for speculative and normal executions
US20030236947A1 (en) Prevention of conflicting cache hits without an attendant increase in hardware
JP2002055879A (ja) マルチポートキャッシュメモリ
KR101645003B1 (ko) 메모리 제어기 및 그 메모리 제어기가 탑재된 컴퓨팅 장치
US6629219B1 (en) Method and apparatus for providing highly programmable memory mapping and improved interleaving
KR20040073167A (ko) 시퀀셜 버퍼를 내장하여 디에스피의 데이터 억세스 성능을향상시키는 컴퓨터 시스템 및 그 컴퓨터 시스템의 데이터억세스 방법
CN101243404A (zh) 用于在具有至少两个处理单元和用于数据和/或指令的至少一个第一存储器或存储器区域的计算机***中存储数据和/或指令的设备和方法
US7181575B2 (en) Instruction cache using single-ported memories
CN101243415A (zh) 用于在具有至少两个处理单元和用于数据和/或指令的至少一个第一存储器或存储器区域的计算机***中存储数据和/或指令的方法和设备
JPH0836525A (ja) 多重アクセスキャッシュ記憶装置
JP2636485B2 (ja) キャッシュ記憶装置
JP2007109199A (ja) バッファ装置、、バッファ装置の制御方法、情報処理装置
KR920003845B1 (ko) 개인용 컴퓨터의 사용자를 위한 rom의 영역 확장 시스템

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20080813