CN106716336B - 在多处理器系统中的存储器管理 - Google Patents
在多处理器系统中的存储器管理 Download PDFInfo
- Publication number
- CN106716336B CN106716336B CN201580050855.8A CN201580050855A CN106716336B CN 106716336 B CN106716336 B CN 106716336B CN 201580050855 A CN201580050855 A CN 201580050855A CN 106716336 B CN106716336 B CN 106716336B
- Authority
- CN
- China
- Prior art keywords
- microprocessor
- circuit
- memory
- mode
- coupled
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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
- G06F13/1657—Access to multiple memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Multi Processors (AREA)
- Hardware Redundancy (AREA)
Abstract
在一实施例中,一种对第一和第二微处理器(102、104)之间的存储器进行管理的电路(100),第一和第二微处理器中的每一个均被耦接至控制电路(106),该电路包括:第一和第二存储器电路(112、114);和开关电路(110),其被耦接至第一和第二存储器电路、以及第一和第二微处理器的存储器接口(210‑0、210‑1),开关电路具有作为输入的模式信号。开关电路被配置为基于模式信号选择性地以第一模式或第二模式中的一个进行操作,以使得在第一模式中,开关电路将第一存储器电路耦接至第一微处理器的存储器接口,且将第二存储器电路耦接至第二微处理器的存储器接口,在第二模式中,开关电路将第一或第二存储器电路选择性地耦接至第一或第二微处理器的存储器接口。
Description
技术领域
本公开的实施例大体涉及多处理器系统,更具体地,涉及在多处理器系统中的存储器的管理。
背景技术
多重处理或多处理器系统涉及在单个系统中使用两个或多个中央处理单元(CPU)。例如,诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)等集成电路(IC)可以具有嵌入其中的能够用于多重处理的多个微处理器。所述的微处理器可以是多个不同的微处理器,或单个微处理器的多个核。微处理器具有用于发送和接收信息的各种接口,包括存储器接口。
微处理器可以具有连接到各种类型的存储器的存储器接口,存储器包括缓存存储器、本地存储器、主存储器等,其中可以通过等待时间和/或功能来区分不同类型的存储器。例如,缓存存储器是用于对存储在主存储器中的信息进行缓存的低等待时间存储器,以使得更容易被微处理器访问。主存储器是能够存储比缓存存储器更大量的信息的更高等待时间的存储器。本地存储器可以是具有低等待时间的存储器(类似于缓存存储器),但没有作为缓存存储器进行操作。例如,具有架构的一些微处理器包括可用于访问低等待时间(非高速缓存)存储器的所谓的“紧密耦合存储器”接口。在多处理器系统中,诸如存储器之类的资源需要被有效地管理,以避免对其低效或浪费地利用。
发明内容
描述了在多处理器系统中对存储器的管理。在一个实施例中,一种对第一微处理器和第二微处理器之间的存储器进行管理的电路,所述第一和第二微处理器中的每一个均被耦接至控制电路,所述电路包括:第一存储器电路和第二存储器电路;以及开关电路,其被耦接至所述第一存储器电路、第二存储器电路以及所述第一和第二微处理器的存储器接口,所述开关电路具有作为输入的模式信号;其中,所述开关电路被配置为基于所述模式信号选择性地以第一模式或第二模式中的一个进行操作,以使得在所述第一模式中,所述开关电路将所述第一存储器电路耦接至所述第一微处理器的存储器接口,并且将所述第二存储器电路耦接至所述第二微处理器的存储器接口,在所述第二模式中,所述开关电路将所述第一或第二存储器电路选择性地耦接至所述第一或第二微处理器的存储器接口。
在另一实施例中,一种集成电路包括:第一和第二微处理器;控制电路,其被耦接至所述第一和第二微处理器;第一和第二存储器电路;以及开关电路,其被耦接至所述第一、第二存储器电路和所述控制电路,所述开关电路具有作为输入的模式信号。所述开关电路被配置为基于所述模式信号选择性地以第一模式或第二模式中的一个进行操作,以使得在所述第一模式中,所述开关电路将所述第一存储器电路耦接至所述第一微处理器的存储器接口,并且将所述第二存储器电路耦接至所述第二微处理器的存储器接口,在所述第二模式中,所述开关电路将所述第一或第二存储器电路选择性地耦接至所述第一或第二微处理器的存储器接口。
在另一实施例中,一种用于对第一微处理器和第二微处理器之间的存储器进行管理的方法,所述第一和第二微处理器中的每一个均被耦接至控制电路,所述方法包括:将所述第一微处理器和第二微处理器配置为处于第一模式,在所述第一模式中,所述第一和第二微处理器中的每一个均没有独立地进行操作;将与所述第一微处理器相关联的第一存储器和与所述第二微处理器相关联的第二存储器配置为具有组合地址空间的组合存储器;以及当所述第一或第二微处理器访问所述组合存储器时,将所述第一或第二存储器选择性地耦接至所述第一或第二微处理器。
其它特征将从下面的详细描述和权利要求的考虑中得到了解。
附图说明
为使上述特征可以被详细地理解,通过引用实施例(部分实施例在附图中示出)可以给出比上文的简要概括更为具体的描述。然而,需要注意的是,附图仅示出了典型的实施例,因此不应被认为是对本申请范围的限制。
图1是示出了根据一个实施例的处理系统的框图;
图2是示出了根据一个实施例的图1的处理系统的更详细部分的框图;
图3是示出了根据一个实施例的集成电路的框图;
图4是示出了根据一个实施例的对在第一和第二微处理器之间的存储器进行管理的一种方法的流程图;
图5是示出了根据一个实施例的对在第一和第二微处理器之间的存储器进行管理的另一种方法的流程图。
为了便于理解,在可能的情况下,使用相同的附图标记来表示附图中共同的相同元件。可以预期的是,某一实施例中的元件可以被有益地结合到其它实施例。
具体实施方式
本申请描述了在多处理器系统中对存储器的管理。在一个示例中,提供了一种用于对第一微处理器和第二微处理器之间的存储器进行管理的电路,第一微处理器和第二微处理器中的每一个均被耦接至控制电路。该电路包括第一和第二存储器电路,以及开关电路,该开关电路将第一和第二存储器电路耦接至第一和第二微处理器的存储器接口。该开关电路可以以两种不同的模式进行操作:在第一模式中,开关电路将第一存储器电路耦接至第一微处理器的存储器接口,并且将第二存储器电路耦接至第二微处理器的接口。在第二模式中,开关电路将第一或第二存储器电路选择性地耦接至第一或第二微处理器的存储器接口。当微处理器独立地进行操作时,可以使用开关电路的第一模式,微处理器可中的每一个均能够访问与其相关联的存储器中的各自的一个。当微处理器以非独立模式进行操作时,例如在锁步(lockstep)模式或单处理器模式下,可以使用开关电路的第二模式。在第二模式中,两个存储器电路被组合以形成具有组合地址空间的单个组合存储器。不管哪个微处理器均可以通过开关电路访问组合存储器,该开关电路根据需要选择性地耦接第一或第二存储器电路。以这种方式,当微处理器在锁步或单处理器模式下进行操作时,即使在第一存储器电路通常与第一微处理器相关联且第二存储器电路通常与第二微处理器相关联的情况下,也可利用两个存储器电路。
图1是示出了根据一个实施例的处理系统100的框图。处理系统100包括微处理器102和104、控制电路106、开关电路110以及本地存储器电路112和114(也被称作“存储器电路”)。微处理器102可以被称作“微处理器0”,微处理器104可以被称作“微处理器1”。同样地,本地存储器电路112可以被称作“本地存储器0”,并且本地存储器电路114可以被称作“本地存储器1”。微处理器102和104中的每一个均包括耦接至控制电路106的接口。本地存储器电路112和114中的每一个均包括耦接至开关电路110的接口。开关电路110包括耦接至控制电路106的接口。控制电路106包括用于接收处理器模式选择信号的接口。开关电路110包括被配置为接收本地存储器模式选择信号的接口。控制电路106的接口还可以耦接至缓存存储器116和主存储器118。缓存存储器116可以包括分别由微处理器102和104专用的特定存储器116-0和116-1。同样地,主存储器118可以包括存储器118-0和118-1。本文所使用的术语“耦接”意在包括元件之间的直接连接(例如,微处理器102和控制电路106之间的连接)和元件之间的通过至少一个中间元件的通信(例如,微处理器102和本地存储器112之间的通信)。
微处理器102和104中的每一个均可以是接受数字数据作为输入、根据指令集的指令处理数字数据、并提供结果作为输出的可编程器件。本文所使用的术语“微处理器”意在包括任何这样的可编程器件,包括微控制器或其它片上系统(SoC,system-on-chip)器件。微处理器102和104中的每一个均可以是独立的器件,包括单独的集成电路(IC)或嵌入在IC中的单独的器件。可选地,微处理器102和104可以是单个器件的两个微处理器“核”。在非限制性的示例中,微处理器102和104可以是精简指令集计算(RISC,reduced instructionset computing)器件,诸如双核ARM R5处理器,或具有架构的类似类型的处理器。应当理解的是,微处理器102和104可以是包括本文描述的功能的其它类型的器件。
控制电路106被耦接至微处理器102和104的输入/输出(IO)接口。控制电路106包括比较和同步逻辑108以及路由和仲裁逻辑109。控制电路106可以将微处理器102和104配置为以各种处理器模式进行操作。控制电路106可以基于被提供作为输入的模式选择信号来选择微处理器102和104的模式。
在一个处理器模式中,控制电路106将微处理器102和104配置为锁步地运行(“锁步处理器模式”)。当锁步地运行时,微处理器中的一个可以被用作冗余处理器,并且两个微处理器根据相同的指令处理相同的数据。比较和同步逻辑108在处于锁步模式时将微处理器102和104进行同步,并在操作期间比较每个处理器的输出。路由和仲裁逻辑109将在锁步模式中进行操作的微处理器102和104之间的对缓存存储器116、主存储器118和开关电路110的访问进行同步。
在另一模式中,当微处理器102和104中的一个在操作时,控制电路106禁用另一个微处理器(“单处理器模式”)。在单处理器模式中,路由和仲裁逻辑109向微处理器102或104中正在操作的那个微处理器提供对缓存存储器116、主存储器118和开关电路110的访问。
在另一模式中,控制电路106将微处理器102和104配置为独立地进行操作,每个微处理器根据独立指令处理独立的数据(“独立处理器模式”)。微处理器102和104中的每一个均可以通过路由和仲裁逻辑109访问缓存存储器116、主存储器118和开关电路110。路由和仲裁逻辑109将微处理器102和104之间的对缓存存储器116、主存储器118和开关电路110的访问进行同步。在一个示例中,路由和仲裁逻辑109可以提供微处理器102和104与缓存存储器116和主存储器118的各自部分之间的直接链路。同样地,开关电路110可以包括用于微处理器102和104中的每一个的单独部分,从而使得当以独立模式进行操作时,微处理器102和104之间的资源不存在共享或竞争。
微处理器102和104可以具有若干类型的存储器接口,诸如耦接至本地存储器(例如,本地存储器112/114)的本地存储器接口,耦接至缓存存储器116的缓存存储器接口,以及耦接至主存储器118的主存储器接口。存储器接口可以划分级别(例如,L1、L2、L3等,以及主存储器)。L1、L2、L3等存储器包括对存储于主存储器的信息进行缓存的缓存存储器。也就是说,缓存存储器116被主存储器118支持(backed)。为了简单起见,以一般的方式示出了缓存存储器116,但是应当理解的是,缓存存储器116可以包括针对微处理器102和104中的每一个的、用于指令和数据缓存的单独的存储器电路。存储器的级别指示等待时间,其中L1存储器具有比L2更短的等待时间,L2存储器具有比L3更短的等待时间,以此类推,而主存储器具有最长的等待时间。
微处理器102和104的本地存储器接口能够以缓存级别(例如,L1)进行操作,但是却被用于访问非缓存的本地存储器。也就是说,本地存储器112和114不被主存储器118支持,并且没有以显式缓存存储器进行操作。相反,本地存储器112和114中的每一个均形成存储器的连续区域,当由微处理器102和104使用时,该存储器的连续区域始终有效(与显式缓存存储器相反)。当然,本地存储器112或114可以存储恰巧被存储在主存储器118中的数据,但不作为显式缓存。本地存储器电路112和114可以具有比主存储器118低得多的等待时间(例如,与L1缓存类似)。例如,-R5处理器和类似的型处理器包括紧密耦合存储器(TCM,tightly-coupled memory)接口,其可以用于访问以非缓存存储器进行操作的本地存储器。
在处理系统100中,路由和仲裁逻辑109将微处理器102和104的本地存储器接口耦接至开关电路110。大体来说,微处理器102与本地存储器112相关联,而微处理器104与本地存储器114相关联。开关电路110根据不同模式(取决于输入的本地存储器模式选择信号),将本地存储器112和114耦接至微处理器102和104。
在第一模式中,开关电路110将本地存储器112耦接至微处理器102,并将本地存储器114耦接至微处理器104(“独立本地存储器模式”)。在独立本地存储器模式中,微处理器102和104中的每一个均具有独立的本地存储器。当微处理器102和104在独立模式下运行时,开关电路110可以调用独立本地存储器模式。据此,微处理器102和104中的每一个分别访问其自己的本地存储器112和114。
在第二模式中,开关电路110选择性地将本地存储器112或本地存储器114耦接至微处理器102和104中的一个(“组合本地存储器模式”)。在组合本地存储器模式中,开关电路110允许微处理器102或微处理器104访问由本地存储器112和114两者形成的组合存储器。当微处理器102和104没有独立地进行操作时,例如当微处理器102和104操作于锁步处理器模式或单处理器模式中时,开关电路110可以调用该组合本地存储器模式。当微处理器102和104操作于锁步处理器模式或单处理器模式时,通过选择性地形成组合存储器,两个本地存储器112和114都可以被利用。如果本地存储器112和114被直接耦接至它们各自的微处理器102和104,那么在锁步模式中,本地存储器112和114中的一个将不能被利用并且将成为未被使用的资源。
在一个示例中,可以彼此独立地设置处理器模式和存储器模式。例如,可以将处理器模式设置为在独立模式中进行操作,而将存储器模式设置为组合本地存储器模式,从而使得处理器中只有一个能够访问所有存储器。
图2是示出了根据一个实施例的处理系统100的更详细部分的框图。图2中与图1相同或相似的元件具有相同的附图标记,并且在上文详细描述过。微处理器0包括高速缓存接口202-0、其它接口204-0、本地存储器寄存器206-0、中央处理单元(CPU)208-0和本地存储器接口210-0。类似地,微处理器1包括高速缓存接口202-1、其它接口204-1、本地存储器寄存器206-1、CPU 208-1和本地存储器接口210-1。本地存储器112包括至少一个随机存取存储器(RAM)电路220,并且本地存储器114包括至少一个RAM电路222。RAM电路220和222可以包括任何类型的RAM,诸如静态RAM(SRAM)等。在一个示例中,本地存储器112和114中的每一个均可以实施纠错码(ECC,error-correcting code)存储器,以与微处理器102和104中的ECC逻辑一起使用。
高速缓存接口202-0和202-1可以被耦接至缓存存储器(例如,缓存存储器116)。其它接口204-0和204-1可以被耦接至各种组件,例如主存储器118和控制电路106。CPU 208-0和208-1包括微处理器0和1的处理元件。本地存储器接口210-0和210-1可以被耦接至本地存储器。本地存储器寄存器206-0和206-1可以包括一个或多个寄存器,以便对本地存储器进行寻址。本地存储器接口210-0和210-1通过路由和仲裁逻辑109被耦接至开关电路110。
RAM电路220和RAM电路222均可以被划分为多组存储器,例如A组和B组。本地存储器接口210-0和210-1可以包括用于每个组的接口,例如,用于访问A组的A接口和用于访问B组的B接口。不同的组可以用于存储不同种类的信息,诸如数据与指令。在下面的描述中,RAM电路220和222的组被讨论为用于本地存储器112的存储器的单个逻辑单元和用于本地存储器114的存储器的单个逻辑单元。
在一个示例中,开关电路110包括多路复用器/解多路复用器电路(MUX/DMUX电路)212和三态缓冲器218。图2所示的开关电路110的具体逻辑配置意图展示开关电路110的逻辑操作。应当理解的是,基于本文所描述的开关电路110的逻辑操作,本领域技术人员可以设计逻辑门和类似组件的各种配置,以实现这样的逻辑操作。
MUX/DMUX电路212提供微处理器0和本地存储器112和114之间的多路复用和解多路复用。MUX/DMUX电路212可以包括多路复用器/解多路复用器214和多路复用器216。多路复用器/解多路复用器214的输出被耦接至路由和仲裁逻辑109。多路复用器/解多路复用器214的输入被耦接至本地存储器112和114。多路复用器/解多路复用器214的控制输入被耦接至多路复用器216的输出。多路复用器216的一个输入被配置为接收本地存储器模式选择信号。多路复用器216的另一输入被配置为接收从本地存储器接口导出的信号。三态缓冲器218的输出被耦接至路由和仲裁逻辑109。三态缓冲器218的输入被耦接至本地存储器114。三态缓冲器218的控制输入被耦接以接收本地存储器模式选择信号。
在操作过程中,多路复用器/解多路复用器214在多路复用器216的控制下选择性地将本地存储器112或本地存储器114耦接至路由和仲裁逻辑109。如果多路复用器216以逻辑“0”驱动多路复用器/解多路复用器214的控制输入,那么多路复用器/解多路复用器214将本地存储器112耦接至路由和仲裁逻辑109。相反,如果多路复用器216以逻辑“1”驱动多路复用器/解多路复用器214的控制输入,那么多路复用器/解多路复用器214将本地存储器114耦接至路由和仲裁逻辑109。取决于本地存储器模式选择信号,多路复用器216使用恒定的逻辑“0”或以从本地存储器接口210-0的信号导出的逻辑值来驱动多路复用器/解多路复用器214的控制输入。
例如,如果模式选择信号指示出开关电路110应当以独立本地存储器模式(例如,是逻辑“1”)进行操作,那么多路复用器216被控制以提供恒定的逻辑“0”,以作为多路复用器/解多路复用器214的控制输入。MUX/DMUX 212仅将本地存储器112耦接至路由和仲裁逻辑109,并且没有选择性的耦接。此外,三态缓冲器218将本地存储器114耦接至路由和仲裁逻辑109。因此,本地存储器112和114中的每一个均可由微处理器0和1独立地访问。当微处理器处于独立处理器模式时,独立本地存储器模式可以被配置。
如果模式选择信号指示出开关电路110应当以组合本地存储器模式(例如,是逻辑“0”)进行操作,那么多路复用器216被控制以提供从本地存储器接口的信号导出的逻辑值。在一个示例中,来自本地存储器接口210-0和210-1中的每一个的地址部分的信号被用作存储体选择(bank select),在该存储体选择中,逻辑“0”访问本地存储器112,逻辑“1”则访问本地存储器114。因此,在第二模式中,开关电路110基于本地存储器接口210-0的存储体选择信号,选择性地将微处理器0或微处理器1耦接至本地存储器112或本地存储器114。本地存储器112和114的组合可由微处理器中的任意一个访问。没有将本地存储器112和114作为独立的存储器进行访问。当微处理器处于非独立模式时,例如锁步模式或单处理器模式,组合本地存储器模式可以被配置。
图3是示出了根据一个实施例的集成电路300的框图。图3中与图1相同或相似的元件具有相同的附图标记,并且在上文详细描述过。集成电路300包括处理器模块302、本地存储器模块304、控制模块306和各种其它模块308。处理器模块302包括微处理器102、微处理器104和控制电路106。本地存储器模块304包括本地存储器112、本地存储器114和开关电路110。控制模块306向处理器模块302提供处理器模式选择信号,并且向本地存储器模块304提供本地存储器模式选择信号。其它模块308可以包括各种其它电路,诸如其它处理器模块或其它电路系统。在一个示例中,集成电路300可以是可编程器件,这使得其它模块308包括可编程电路。例如,集成电路可以是现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)等。
图4是示出了根据一个实施例的在第一和第二微处理器之间对存储器进行管理的方法400的流程图。可以参考图1的处理系统来理解方法400。方法400开始于步骤402,在步骤402中,控制电路106将第一微处理器102和第二微处理器104配置为处于第一模式(例如,锁步处理器模式或单处理器模式),在第一模式中,第一和第二微处理器102和104中的每一个均没有独立地进行操作。在步骤404,开关电路110将与第一微处理器相关联的第一存储器(例如,本地存储器112)和与第二微处理器相关联的第二存储器(例如,本地存储器114)配置为具有组合地址空间的组合存储器。在步骤406,当第一微处理器102或第二微处理器104访问组合存储器时,开关电路110将第一或第二存储器选择性地耦接至第一微处理器102或第二微处理器104。
图5是示出了根据一个实施例的在第一和第二微处理器之间对于存储器进行管理的方法500的流程图。可以参考图1的处理系统来理解方法500。方法500开始于步骤502,在步骤502,控制电路106将第一微处理器102和第二微处理器104配置为处于第二模式(例如,独立处理器模式),在第二模式中,第一微处理器102和第二微处理器104中的每一个均独立地进行操作。在步骤504,开关电路110配置第一存储器(例如,本地存储器112),以使其与第一微处理器一起使用,并且配置第二存储器(例如,本地存储器114),以使其与第二微处理器一起使用。在步骤506,开关电路110将第一存储器耦接至第一微处理器102,并且将第二存储器耦接至第二微处理器104。
下面描述在多处理器系统中对存储器进行管理的一些示例。在一个示例中,提供一种对第一微处理器和第二微处理器之间的存储器进行管理的电路,所述第一和第二微处理器中的每一个均被耦接至控制电路。所述电路包括:第一存储器电路和第二存储器电路;以及开关电路,其被耦接至所述第一存储器电路、第二存储器电路以及所述第一和第二微处理器的存储器接口,所述开关电路具有作为输入的模式信号;其中,所述开关电路被配置为基于所述模式信号选择性地以第一模式或第二模式中的一个进行操作,以使得在所述第一模式中,所述开关电路将所述第一存储器电路耦接至所述第一微处理器的存储器接口,并且将所述第二存储器电路耦接至所述第二微处理器的存储器接口,在所述第二模式中,所述开关电路将所述第一或第二存储器电路选择性地耦接至所述第一或第二微处理器的存储器接口。
在一些这样的电路中,当所述控制电路锁步地将所述第一微处理器与所述第二微处理器进行同步时,所述开关电路以第二模式进行操作。
在一些这样的电路中,所述开关电路包括多路复用/解多路复用电路,其被耦接在所述控制电路与所述第一和第二存储器电路之间。
在一些这样的电路中,所述多路复用/解多路复用电路包括控制输入,其被耦接至从所述第一或第二微处理器的存储器总线导出的信号,其中在所述第二模式中,所述开关电路基于所述控制输入将所述第一或第二存储器电路选择性地耦接至所述第一或第二微处理器的存储器接口。
在一些这样的电路中,所述第一和第二存储器电路中的每一个均包括:至少一个随机存取存储器(RAM)电路。
在一些这样的电路中,RAM电路中的每一个均形成存储器的连续区域,当被所述第一或第二微处理器中的一个使用时,所述存储器的连续区域始终有效。
在一些这样的电路中,所述第一和第二存储器电路中的每一个均包括:纠错码(ECC)存储器电路。
在另一个实施例中,一种集成电路,包括:第一和第二微处理器;控制电路,其被耦接至所述第一和第二微处理器;第一和第二存储器电路;以及开关电路,其被耦接至所述第一、第二存储器电路和所述控制电路,所述开关电路具有作为输入的模式信号。所述开关电路被配置为基于所述模式信号选择性地以第一模式或第二模式中的一个进行操作,以使得在所述第一模式中,所述开关电路将所述第一存储器电路耦接至所述第一微处理器的存储器接口,并且将所述第二存储器电路耦接至所述第二微处理器的存储器接口,在所述第二模式中,所述开关电路将所述第一或第二存储器电路选择性地耦接至所述第一或第二微处理器的存储器接口。
在一些这样的集成电路中,当所述控制电路锁步地将所述第一微处理器与所述第二微处理器进行同步时,所述开关电路以第二模式进行操作。
在一些这样的集成电路中,所述第一和第二存储器电路中的每一个均包括:至少一个随机存取存储器(RAM)电路。
在一些这样的集成电路中,RAM电路中的每一个均形成存储器的连续区域,当被所述第一或第二微处理器中的一个使用时,所述存储器的连续区域始终有效。
在一些这样的集成电路中,所述第一和第二存储器电路中的每一个均包括:纠错码(ECC)存储器电路。
一些这样的集成电路还可以包括:控制逻辑,其被配置为将所述模式信号提供给所述开关电路。
在另一个实施例中,可以提供一种管理存储器的方法。
例如,一种用于对第一微处理器和第二微处理器之间的存储器进行管理的方法,所述第一和第二微处理器中的每一个均被耦接至控制电路,所述方法包括:将所述第一微处理器和第二微处理器配置为处于第一模式,在所述第一模式中,所述第一和第二微处理器中的每一个均没有独立地进行操作;将与所述第一微处理器相关联的第一存储器和与所述第二微处理器相关联的第二存储器配置为具有组合地址空间的组合存储器;以及当所述第一或第二微处理器访问所述组合存储器时,将所述第一或第二存储器选择性地耦接至所述第一或第二微处理器。
在一些这样的方法中,在所述第一模式中,所述第二微处理器与所述第一微处理器一起锁步地进行操作。
在一些这样的方法中,所述选择性地耦接的步骤包括:基于由所述第一或第二微处理器对所述组合存储器的每次访问的地址的一部分,选择所述第一存储器或第二存储器。
在一些这样的方法中,所述第一和第二存储器中的每一个均包括:至少一个随机存取存储器(RAM)电路。
在一些这样的方法中,RAM电路中的每一个均形成存储器的连续区域,当被所述第一或第二微处理器中的一个使用时,所述存储器的连续区域始终有效。
在一些这样的方法中,所述第一和第二存储器中的每一个均包括:纠错码(ECC)存储器电路。
一些这样的方法还可以包括:将所述第一微处理器和第二微处理器配置为处于第二模式,在所述第二模式中,所述第一和第二微处理器中的每一个均独立地进行操作;配置所述第一存储器,以使其与所述第一微处理器一起使用,以及配置所述第二存储器,以使其与所述第二微处理器一起使用;以及将所述第一存储器耦接至所述第一微处理器,将所述第二存储器耦接至所述第二微处理器。
虽然前述内容集中于本公开的实施例,但是在不脱离本公开的基本范围的情况下,可以设计本公开的其它的和进一步的实施例,本公开的范围由所附权利要求确定的。
Claims (14)
1.一种对第一微处理器和第二微处理器之间的存储器进行管理的电路,所述第一和第二微处理器中的每一个均被耦接至控制电路,其特征在于,所述电路包括:
第一本地存储器电路和第二本地存储器电路;
开关电路,其被耦接至所述第一本地存储器电路、第二本地存储器电路以及所述第一和第二微处理器的存储器接口,所述开关电路接收作为输入的模式信号;以及
控制电路,其被配置成将所述第一微处理器和第二微处理器选择性地耦接至主存储器电路、缓存存储器电路和所述开关电路,所述控制电路接收作为输入的处理器模式选择信号;
其中,所述开关电路和所述控制电路被配置为基于所述模式信号选择性地以第一模式或第二模式中的一个进行操作,以使得在所述第一模式,所述开关电路和所述控制电路将所述第一本地存储器电路耦接至所述第一微处理器的存储器接口,并且将所述第二本地存储器电路耦接至所述第二微处理器的存储器接口,而在所述第二模式,所述开关电路和所述控制电路将所述第一或第二本地存储器电路选择性地耦接至所述第一或第二微处理器的存储器接口。
2.根据权利要求1所述的电路,其特征在于,当所述控制电路锁步地将所述第一微处理器与所述第二微处理器同步时,所述开关电路以所述第二模式进行操作。
3.根据权利要求1或2所述的电路,其特征在于,所述开关电路包括多路复用/解多路复用电路,其被耦接在所述控制电路与所述第一和第二本地存储器电路之间。
4.根据权利要求3所述的电路,其特征在于,所述多路复用/解多路复用电路包括控制输入接口,其被耦接以接收从所述第一或第二微处理器的存储器总线导出的信号,其中在所述第二模式中,所述开关电路基于由所述控制输入接口接收的信号将所述第一或第二本地存储器电路选择性地耦接至所述第一或第二微处理器的存储器接口。
5.根据权利要求1所述的电路,其特征在于,所述第一和第二本地存储器电路中的每一个均包括至少一个随机存取存储器(RAM)电路。
6.根据权利要求5所述的电路,其特征在于,RAM电路中的每一个均形成存储器的连续区域,当被所述第一或第二微处理器中的一个使用时,所述存储器的连续区域始终有效。
7.根据权利要求1所述的电路,其特征在于,所述第一和第二本地存储器电路中的每一个均包括纠错码(ECC)存储器电路。
8.一种用于对第一微处理器和第二微处理器之间的存储器进行管理的方法,所述第一和第二微处理器中的每一个均被耦接至控制电路,其特征在于,所述方法包括:
将所述第一微处理器和第二微处理器配置为处于第一模式,在所述第一模式中,所述第一和第二微处理器中的每一个均没有独立地进行操作;
将控制电路配置成将所述第一微处理器和所述第二微处理器选择性地耦接至开关电路或者至主存储器电路或者缓存存储器电路中的至少一个;
将与所述第一微处理器相关联的第一本地存储器和与所述第二微处理器相关联的第二本地存储器配置为具有组合地址空间的组合存储器;以及
当所述第一或第二微处理器访问所述组合存储器时,通过所述开关电路的操作将所述第一或第二本地存储器选择性地耦接至所述第一或第二微处理器。
9.根据权利要求8所述的方法,其特征在于,在所述第一模式中,所述第二微处理器与所述第一微处理器锁步地操作。
10.根据权利要求8或9所述的方法,其特征在于,所述选择性地耦接的步骤包括:基于由所述第一或第二微处理器对所述组合存储器的每次访问的地址的一部分,选择所述第一本地存储器或所述第二本地存储器。
11.根据权利要求8所述的方法,其特征在于,所述第一和第二本地存储器中的每一个均包括至少一个随机存取存储器(RAM)电路。
12.根据权利要求11所述的方法,其特征在于,RAM电路中的每一个均形成存储器的连续区域,当被所述第一或第二微处理器中的一个使用时,所述存储器的连续区域始终有效。
13.根据权利要求8所述的方法,其特征在于,所述第一和第二本地存储器中的每一个均包括纠错码(ECC)存储器电路。
14.根据权利要求8所述的方法,其特征在于,所述方法进一步包括:
将所述第一微处理器和所第二微处理器配置为处于第二模式,在所述第二模式中,所述第一和第二微处理器中的每一个均独立地进行操作;
配置所述第一本地存储器以使其与所述第一微处理器一起使用,以及配置所述第二本地存储器以使其与所述第二微处理器一起使用;以及
将所述第一本地存储器耦接至所述第一微处理器,并且将所述第二本地存储器耦接至所述第二微处理器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/493,081 | 2014-09-22 | ||
US14/493,081 US9990131B2 (en) | 2014-09-22 | 2014-09-22 | Managing memory in a multiprocessor system |
PCT/US2015/051216 WO2016048892A1 (en) | 2014-09-22 | 2015-09-21 | Managing memory in a multiprocessor system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106716336A CN106716336A (zh) | 2017-05-24 |
CN106716336B true CN106716336B (zh) | 2018-09-11 |
Family
ID=54325659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580050855.8A Active CN106716336B (zh) | 2014-09-22 | 2015-09-21 | 在多处理器系统中的存储器管理 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9990131B2 (zh) |
EP (1) | EP3198455B1 (zh) |
JP (1) | JP6757717B2 (zh) |
KR (1) | KR102390397B1 (zh) |
CN (1) | CN106716336B (zh) |
WO (1) | WO2016048892A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2553010B (en) | 2017-01-16 | 2019-03-06 | Imagination Tech Ltd | Efficient data selection for a processor |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1732444A (zh) * | 2001-11-14 | 2006-02-08 | 英特尔公司 | 适合向多处理器提供专用或共享存储器的存储器及其方法 |
WO2010012566A1 (de) * | 2008-07-28 | 2010-02-04 | Robert Bosch Gmbh | Speicheranordnung und speicherarchitektur |
US8028144B2 (en) * | 2006-05-02 | 2011-09-27 | Rambus Inc. | Memory module with reduced access granularity |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS619738A (ja) * | 1984-06-26 | 1986-01-17 | Fuji Electric Co Ltd | アドレスマツピング方式 |
JPH0731662B2 (ja) * | 1986-07-15 | 1995-04-10 | 富士通株式会社 | マルチプロセッサシステム |
JPH03142534A (ja) * | 1989-10-28 | 1991-06-18 | Nec Corp | メモリ二重書き方式 |
EP0608663B1 (en) * | 1993-01-25 | 1999-03-10 | Bull HN Information Systems Italia S.p.A. | A multi-processor system with shared memory |
US5794062A (en) * | 1995-04-17 | 1998-08-11 | Ricoh Company Ltd. | System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization |
JP2001344222A (ja) * | 2000-05-31 | 2001-12-14 | Oki Electric Ind Co Ltd | コンピュータ・システム |
US6516387B1 (en) * | 2001-07-30 | 2003-02-04 | Lsi Logic Corporation | Set-associative cache having a configurable split and unified mode |
US6950910B2 (en) * | 2001-11-08 | 2005-09-27 | Freescale Semiconductor, Inc. | Mobile wireless communication device architectures and methods therefor |
US7404044B2 (en) * | 2004-09-15 | 2008-07-22 | Broadcom Corporation | System and method for data transfer between multiple processors |
US7769942B2 (en) * | 2006-07-27 | 2010-08-03 | Rambus, Inc. | Cross-threaded memory system |
JP5449686B2 (ja) | 2008-03-21 | 2014-03-19 | ピーエスフォー ルクスコ エスエイアールエル | マルチポートメモリ及びそのマルチポートメモリを用いたシステム |
US20120317356A1 (en) | 2011-06-09 | 2012-12-13 | Advanced Micro Devices, Inc. | Systems and methods for sharing memory between a plurality of processors |
US9563597B2 (en) | 2012-03-19 | 2017-02-07 | Rambus Inc. | High capacity memory systems with inter-rank skew tolerance |
US9472248B2 (en) * | 2014-03-28 | 2016-10-18 | Intel Corporation | Method and apparatus for implementing a heterogeneous memory subsystem |
-
2014
- 2014-09-22 US US14/493,081 patent/US9990131B2/en active Active
-
2015
- 2015-09-21 KR KR1020177010119A patent/KR102390397B1/ko active IP Right Grant
- 2015-09-21 EP EP15781180.3A patent/EP3198455B1/en active Active
- 2015-09-21 CN CN201580050855.8A patent/CN106716336B/zh active Active
- 2015-09-21 WO PCT/US2015/051216 patent/WO2016048892A1/en active Application Filing
- 2015-09-21 JP JP2017515721A patent/JP6757717B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1732444A (zh) * | 2001-11-14 | 2006-02-08 | 英特尔公司 | 适合向多处理器提供专用或共享存储器的存储器及其方法 |
US8028144B2 (en) * | 2006-05-02 | 2011-09-27 | Rambus Inc. | Memory module with reduced access granularity |
WO2010012566A1 (de) * | 2008-07-28 | 2010-02-04 | Robert Bosch Gmbh | Speicheranordnung und speicherarchitektur |
Also Published As
Publication number | Publication date |
---|---|
JP2017532671A (ja) | 2017-11-02 |
US20160085449A1 (en) | 2016-03-24 |
EP3198455B1 (en) | 2019-05-22 |
KR20170062477A (ko) | 2017-06-07 |
US9990131B2 (en) | 2018-06-05 |
EP3198455A1 (en) | 2017-08-02 |
JP6757717B2 (ja) | 2020-09-23 |
KR102390397B1 (ko) | 2022-04-22 |
WO2016048892A1 (en) | 2016-03-31 |
CN106716336A (zh) | 2017-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI656533B (zh) | 用於在資料路徑中計算之裝置及方法 | |
CN102375800B (zh) | 用于机器视觉算法的多处理器片上系统 | |
KR101475171B1 (ko) | 메모리 내 cpu 캐시 아키텍처 | |
CN108780432A (zh) | 用于高速缓存无效的设备及方法 | |
JP6791522B2 (ja) | インデータパス計算動作のための装置及び方法 | |
US20130067156A1 (en) | Double data rate controller having shared address and separate data error correction | |
CN103744644A (zh) | 采用四核结构搭建的四核处理器系统及数据交换方法 | |
CN101925881A (zh) | 多处理器系统以及多处理器系统的同步方法 | |
EP3910488A1 (en) | Systems, methods, and devices for near data processing | |
CN104407997A (zh) | 带有指令动态调度功能的与非型闪存单通道同步控制器 | |
US10545894B2 (en) | Information processor with tightly coupled smart memory unit | |
US20110289256A1 (en) | Memory banking system and method to increase memory bandwidth via parallel read and write operations | |
CN100573488C (zh) | 一种基于同步访问模式的多端口存储器 | |
KR20220113818A (ko) | 비휘발성 듀얼 인라인 메모리 모듈에 대한 커맨드 리플레이 | |
CN104679670A (zh) | 一种面向fft和fir的共享数据缓存结构及管理方法 | |
CN106716336B (zh) | 在多处理器系统中的存储器管理 | |
US7099913B1 (en) | Speculative directory writes in a directory based cache coherent nonuniform memory access protocol | |
CN103294638A (zh) | 确定性高整体性多处理器片上系统 | |
US8806102B2 (en) | Cache system | |
CN117120992A (zh) | 用于多队列存储器控制器的信用方案 | |
US9454482B2 (en) | Duplicate tag structure employing single-port tag RAM and dual-port state RAM | |
TW202349207A (zh) | 存取最佳化的部分快取記憶體折疊 | |
WO2019006119A1 (en) | COMBINING DATA IN A RECONFIGURABLE MATRIX |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |