首页 / 网络设备

网络设备有效专利 实用

技术领域

[0001] 本实用新型涉及用于分配随机存取存储器(RAM)的块的系统。

相关背景技术

[0002] 微处理器越来越多地被要求在各种计算机架构中执行复杂的功能。这样的微处理器通常与诸如RAM之类的存储器进行通信以存储数据。
[0003] 然而,RAM通常还负责存储为微处理器提供指令以执行各种功能的计算机代码。这种将RAM用于存储数据和指令的双重用途会导致RAM容量的低效消耗、性能瓶颈以及对存储器资源的不想要的竞争。实用新型内容
[0004] 鉴于上述问题,本公开的实施例旨在解决或缓解上述问题的至少一部分。根据本公开的第一方面,提供一种网络设备,包括:第一存储器;控制器,被配置为生成存储器访问指令,所述存储器访问指令指示要访问的第一存储器的地址以进行数据传输,所述数据不是存储器访问指令;和分配器电路系统,连接在所述第一存储器和所述控制器之间并被配置为:执行至少一个存储器配置映射的初始配置,以针对所述存储器访问指令分配所述第一存储器的所选地址并且针对所述数据分配所述第一存储器的其他所选地址,在执行所述初始配置之后,重新配置所述至少一个存储器配置映射,以改变针对所述存储器访问指令以及针对所述数据的所述第一存储器的地址的分配,从而与针对所述数据所分配的所述第一存储器的数量相关地改变针对所述存储器访问指令所分配的所述第一存储器的比例,以及在重新配置所述至少一个存储器配置映射之前和之后并且基于所述至少一个存储器配置映射,在所述控制器和所述第一存储器之间路由所述存储器访问指令以及不是存储器访问指令的所述数据,仅在分配给存储器访问指令的所述第一存储器的所选地址处存储所述存储器访问指令,并且仅在分配给数据的所述第一存储器的所选地址处存储不是指令的所述数据。
[0005] 在第一方面的一些实施例中,所述分配器电路系统被配置为重新配置所述至少一个存储器配置映射,以改变针对所述存储器访问指令所分配的所述第一存储器的地址总数、以及针对不是存储器访问指令的所述数据所分配的所述第一存储器的地址总数。
[0006] 在第一方面的一些实施例中,所述多个交叉点包括配置管脚、集成可编程熔断器或配置寄存器中的至少一者。
[0007] 在第一方面的一些实施例中,所述网络设备还包括单个印刷电路板,其中所述第一存储器、所述控制器和所述分配器电路系统被安装在所述单个印刷电路板上。
[0008] 在第一方面的一些实施例中,所述网络设备还包括集成电路,所述集成电路包括所述第一存储器、所述第二存储器、所述控制器和所述分配器电路系统。
[0009] 在第一方面的一些实施例中,所述多个存储器块被实现为多个集成电路,使得所述多个存储器块中的每个存储器块是不同的存储器芯片。
[0010] 实施例涉及为具有两个分开的存储器子系统的微控制器分配RAM块。一个存储器子系统存储指令信息;另一个存储器子系统存储数据信息。微控制器的分开且不同的端口专用于处理指令信息和数据信息。
[0011] 在设计时,设计者创建了实现各种可能RAM块配置的地址映射。这些配置表示在可用的RAM块之间分配指令信息和数据信息的不同方式。
[0012] 在运行时,配置信号被接收。基于该配置信号,确定地址映射内用于存储指令信息和数据信息的特定RAM块配置。
[0013] 从微控制器的专用端口接收传入指令信号。基于配置信号和指令信号的特性,地址映射被引用到(多个)控制连接点。这种连接点的可能示例可以包括但不限于:引脚、熔断器和寄存器。
[0014] 经由已配置的连接点,指令信号被路由到已被分配以专门存储指令信息的适当存储器块。类似地,基于配置信号和地址映射,从微控制器的专用端口接收的传入数据信号被路由到被分配以专门存储数据信息的适当存储器块。
[0015] 通过使用根据本公开的实施例,可以至少部分地解决或缓解上述问题的至少一部分,并且实现相应的技术效果。例如,允许利用RAM块分配器在指令存储和数据存储目的之间对存储器块进行可配置分配。

具体实施方式

[0021] 本实用新型涉及分配RAM的系统和方法。根据实施例,提供了优化对RAM的访问的方法和设备。
[0022] 图1图示了根据实施例的包括RAM块分配器102的系统100的简化框图,该系统100与包括指令端口106和数据端口108的微控制器104通信。
[0023] 在这里,微控制器包括专用于处理以下内容的分开的基础设施:·用于执行编程的指令,或
[0024] ·由该编程进行处理(存储、检索、修改)的数据。
[0025] RAM块分配器和微控制器经由两个分开的通道进行通信:
[0026] ·与相应的指令端口106和112通信的指令通道110;和
[0027] ·与相应的数据端口108和116通信的数据通道114。
[0028] 指令通道和数据通道经由(可配置的)RAM块分配器的相应RAM端口120间接耦合到至少两个RAM块118(一个块专门用于指令,一个块专门用于数据)。
[0029] 与指令通道通信的存储器块的存储容量可以被逻辑组合以用作微控制器的指令存储器。与数据通道通信的存储器块的容量可以被逻辑组合以用作数据存储器。
[0030] 程序指令通常被存储在指令存储器中,而它对其进行操作的数据通常被存储在数据存储器中。通常,与数据通道相连的存储器块不能被用来存储程序指令,并且与指令通道相连的存储器块也不能被用来存储程序数据。
[0031] 然而,一些应用可能需要更大量的数据,而其他应用可能涉及更大的程序大小。因此,设计者可能难以提前预测,应该将多少存储器物理连接到指令与数据通道。设计者的这种预先决定可能会在以后不合需要地导致一种类型的存储器空间分配不足,而另一种类型的多余存储器则被闲置。
[0032] 因此,本实用新型的实施例允许利用RAM块分配器在指令存储和数据存储目的之间对存储器块进行可配置分配。具体地,通过引用经由配置线124发送并在配置端口126处接收的传入配置信号122,RAM块分配器的分配引擎128可以在产品部署时被配置为:
[0033] ·将可用存储器块中的至少一个与指令通道在逻辑上相关联;
[0034] ·将剩余可用存储器块中的至少一个与数据通道在逻辑上相关联。
[0035] 该配置允许设计者在部署时确定为这两个(数据、指令)目的分配多少可用存储器。这实现了灵活性以及高性能。特别地,专用于指令和数据的分开的通道可以防止一次仅使用单个通道进行一次存储器访问时可能出现的瓶颈。
[0036] 图2是图示了根据实施例的分配引擎202的操作环境200的简化框图。
[0037] 在运行时,配置信号204被接收。该配置信号由设计者发送并在RAM分配器的配置端口处被接收。该配置信号指示要被专门分配用于存储指令信息的存储器,以及要被专门分配用于存储数据信息的存储器。
[0038] 分配引擎处理配置信号,并作为响应生成206地址映射208,该地址映射208包含用于路由传入指令和数据以便存储在分配给它们的适当存储器块中的特定细节。地址映射被存储在分配器引擎可访问的非瞬态存储介质210中,以供以后引用。
[0039] 由分配引擎接收传入指令信号250。该指令信号可以是读取或写入。
[0040] 分配引擎引用252地址映射208,并作为响应向连接点256发出控制信号254。结果,指令信号通过连接点被路由到已被分配以专门存储指令信息的存储器块258。
[0041] 同样在运行时,由分配引擎接收传入数据信号260。该指令信号同样可以是读取或写入。
[0042] 分配引擎引用252地址映射208,并作为响应向不同的连接点264发出控制信号262。结果,数据信号通过连接点被路由到已被分配以专门存储数据信息的存储器块266。
[0043] 图3图示了根据实施例的RAM分配器的详细视图。从微控制器的端口发出的指令通道350和数据通道352被示出在图的顶部。
[0044] 这些(指令、数据)通道中的每一个通常可以包括地址总线354、有效负载总线356和读/写(R/W)信号358。R/W信号确定读(READ)访问还是写(WRITE)访问将被执行。
[0045] 作为示例,图3中仅示出了三个RAM存储器块310‑312。每个存储器块可以具有其自己的地址、有效负载和R/W信号。
[0046] 注意,如果处理器/存储器复合体被实现在系统板上,则每个这样的存储器块可以是被焊接到印刷电路板(PCB)上的分立存储器芯片的形式。替代地,如果处理器/存储器复合体被实现为集成芯片,则存储器块可以是存储器“小芯片”或RAM宏块的形式。
[0047] 为了便于说明,指令/数据通道和存储器块的组合的地址、有效负载和R/W信号在图3的中间被表示为宽总线303。
[0048] 图中的粗黑圆圈表示可配置的交叉点305。这些交叉点可以在部署时被激活,以便选择性地将每个存储器块适当地耦合到指令通道或数据通道。
[0049] 例如,存储器块310可以被配置为耦合到指令通道,以使得指令访问被路由到存储器块310。存储器块311和312可以被耦合到数据通道,以使得数据访问被路由到那些RAM块。
[0050] 可配置地址映射单元320、321、322确保每个存储器块响应(并且仅响应)分配给该块的地址。例如,如果存储器块311具有2K字(word)的容量,而312具有1K字的容量,则RAM块分配器可以被配置为将其数据存储器的前2K字映射到311,并将接下来1K字映射到312。
[0051] 随后,当接收到对字地址“2176”的数据通道读访问时,地址映射321可以防止存储器块311响应。地址映射322使存储器块312返回其物理位置“128”的内容(因为“2176”‑“2048”=“128”)。
[0052] 图3中所示的可配置的交叉点305、地址映射单元320、321、322和其他元件的这种描述,表示了本实用新型的一个可能示例性实施例。RAM块分配器的示例可以通过一种或多种不同的机制来实现,包括但不限于:
[0053] ·配置引脚,
[0054] ·集成可编程电子熔断器,
[0055] ·简单的配置寄存器,或
[0056] ·其他相关机制。
[0057] 对于复杂的CPU,RAM块分配可以利用简单的微控制器、微定序器或一些查找表(LUT)来实现,以提供操作中的灵活性。
[0058] 图4是示出了根据实施例的方法400的简化流程图。在设计时间401期间,接收来自设计者的设计输入402。
[0059] 在403处,创建并存储地址映射。该地址映射包括用于在可用存储器块之间分配指令信息和数据信息的多个配置。
[0060] 在运行时间404期间,配置信号被接收406。该配置信号确定用于在可用存储器块之间分配指令信息和数据信息的特定配置。
[0061] 在407处,传入指令信号被接收。在408处,基于配置信号和指令信号的特性来参考地址映射。
[0062] 在410处,基于地址映射来控制连接点(例如,引脚、熔断器、寄存器)。在412处,指令信号被路由到已被分配来专门存储指令信息的适当存储器块。
[0063] 在414处,传入数据信号被接收。返回到408,再次基于数据信号的特性来参考地址映射。
[0064] 返回到410,然后基于对地址映射的参考来控制不同的连接点。在416处,数据信号被路由到已被分配来专门存储数据信息的不同存储器块。
[0065] 根据实施例的RAM分配器的实施例可以提供一个或多个益处。例如,实施例为设计者在部署时为不同目的分配可用存储器提供一定程度的灵活性。在仍然利用具有多个独立(数据、指令)存储器通道所带来的性能的同时允许这种灵活性。
[0066] 示例
[0067] 为了说明用于根据示例性实施例的RAM块分配的映射,考虑以下简化场景。系统具有三个RAM块,大小分别为64KB、32KB和16KB。
[0068] 在设计时,在地址映射中包括以下两种可能的示例性配置。
[0069]
[0070]
[0071] 在这里,在配置#A中,有96KB的指令存储器。该指令存储器可以经由诸如0x0_0000–0x0_5FFF(假设每个位置为32位宽)等地址范围而可访问。
[0072] 在配置#A中,还有16KB的数据存储器。该数据存储器可以经由诸如0x8_0000–0x8_0FFF(再次假设每个位置32位)等另一地址范围而可访问。
[0073] 上面刚刚提及的这些特定地址仅作为示例给出,仅用于说明目的。超出这些映射范围的访问具有未定义的行为,因为那是所有可用的存储器。
[0074] 在这种情况下,当指令访问经由指令通道而从专用微控制器端口进入时,存储器分配器需要在给定地址处进行查看,并将其路由到RAM块#1或#2之一。例如,可能会是将0x0_0000–0x0_03FFF(16Kx 32位=64KB)映射到RAM#1,而将0x0_4000–0x0_5FFF映射到RAM#2。
[0075] 让我们假设传入地址是0x0_4001。分配器将使RAM#2的第二位置由此请求访问,RAM#2的第一位置被映射到0x0_4000。
[0076] 类似地,如果使用配置#B,则分配器将在数据访问时针对RAM#2和RAM#3执行对应的映射。
[0077] 为了实现,可用存储器可以包括多于以上简单示例中描述的三个RAM块。而且,在设计时创建的地址映射内所实现的各种配置可以允许分配这些RAM块的不同组合。
[0078] 具体地,在设计时,可用存储器块的数量可以被确定和固定,并且设计者可以选择多个支持的配置{A、B、C、D…}。设计者可以选择支持在可用存储器块之间分配指令/数据的所有可能组合以获得完全的灵活性,或者支持其子集以降低设计复杂性。
[0079] 那些被选择的配置(及其对应的映射)被设计到地址映射(例如,图2中的208)中,并且使其为软件程序员所知。
[0080] 在部署时,程序员通过提供配置信号(例如,图2中的204)而从所支持的配置之中进行选择。没有规定程序员选择在设计时尚未设计到地址映射中的不受支持的配置。
[0081] 虽然以上是具体实施例的完整描述,但是可以使用各种修改、替代构造和等效物。鉴于本文所述的各种应用和实施例,以上描述和说明不应被视为限制由所附权利要求限定的本实用新型的范围。
[0082] 可以使用以下条款进一步描述实施例:
[0083] 1.一种设备,包括:
[0084] 第一端口,通过指令通道与微控制器的指令端口通信;
[0085] 第二端口,通过数据通道与所述微控制器的数据端口通信;
[0086] 第三端口,与第一存储器块通信;
[0087] 第四端口,与第二存储器块通信;
[0088] 非瞬态计算机可读存储介质,包括地址映射;
[0089] 多个连接点,用于引导在所述第一端口与所述第三端口和所述第四端口之间、以及在所述第二端口与所述第三端口和所述第四端口之间的通信;和
[0090] 分配引擎,
[0091] 在第五端口处接收配置信号以指定所述地址映射中的多个配置中的一个配置,[0092] 从所述第一端口接收传入指令信号,
[0093] 引用所述配置信号和所述地址映射处理所述指令信号,以控制第一连接点将所述指令信号路由到所述第三端口以用于存储在所述第一存储器块中,
[0094] 从所述第二端口接收传入数据信号,
[0095] 引用所述配置信号和所述地址映射处理所述数据信号,以控制第二连接点将所述数据信号路由到所述第四端口以用于存储在所述第二存储器块中。
[0096] 2.根据条款1所述的设备,其中所述分配引擎:
[0097] 接收来自设计者的设计输入;
[0098] 响应于所述设计输入,生成包括所述多个配置的所述地址映射;以及[0099] 将所述地址映射存储在所述非瞬态计算机可读存储介质中。
[0100] 3.根据条款1所述的设备,其中所述第一连接点包括引脚。
[0101] 4.根据条款1所述的设备,其中所述第一连接点包括熔断器。
[0102] 5.根据条款1所述的设备,其中所述第一连接点包括寄存器。
[0103] 6.根据条款1所述的设备,其中所述第一存储器块包括随机存取存储器(RAM)。
[0104] 7.根据条款1所述的设备,其中所述第一存储器块是RAM宏块的一部分。
[0105] 8.根据条款1所述的设备,其中所述第一存储器块是焊接到印刷电路板(PCB)上的分立芯片。
[0106] 9.根据条款1所述的设备,其中所述第一存储器块是集成处理器的一部分,所述集成处理器还包括所述微控制器。
[0107] 10.根据条款1所述的设备,其中所述第一存储器块是小芯片的一部分。
[0108] 11.一种方法,包括:
[0109] 接收配置信号,所述配置信号指定地址映射中的配置;
[0110] 在第一专用指令端口处接收指令信号,所述指令信号从专用指令微控制器端口接收;
[0111] 基于所述配置信号和所述指令信号,引用存储在非瞬态计算机可读存储介质中的地址映射;
[0112] 基于所述地址映射来控制第一连接点;
[0113] 将所述指令信号路由通过所述第一连接点;以及
[0114] 将所述指令信号传送到第一存储器块,所述第一存储器块被分配用以专门存储指令信息。
[0115] 12.根据条款11所述的方法,还包括在接收所述指令信号之前:
[0116] 接收来自设计者的设计输入;
[0117] 响应于所述设计输入,生成包括所述多个配置的所述地址映射;以及[0118] 将所述地址映射存储在所述非瞬态计算机可读存储介质中。
[0119] 13.根据条款11所述的方法,其中所述指令信号包括写信号。
[0120] 14.根据条款11所述的方法,其中所述第一存储器块包括随机存取存储器(RAM)。
[0121] 15.根据条款11所述的方法,其中所述连接点包括引脚、熔断器或寄存器。
[0122] 16.根据条款11所述的方法,还包括:
[0123] 在第二专用指令端口处接收数据信号,所述数据信号从专用数据微控制器端口接收;
[0124] 基于所述配置信号和所述数据信号,引用在非瞬态计算机可读存储介质中的所述地址映射;
[0125] 基于所述地址映射来控制第二连接点;
[0126] 将所述数据信号路由通过所述第二连接点;以及
[0127] 将所述数据信号传送到第二存储器块,所述第二存储器块被分配用以专门存储数据信息。
[0128] 17.根据条款16所述的方法,其中所述数据信号包括写信号。
[0129] 18.根据条款16所述的方法,还包括在接收所述指令信号之前:
[0130] 接收配置信号;
[0131] 基于所述配置信号来创建所述地址映射;以及
[0132] 将所述地址映射存储在所述非瞬态计算机可读存储介质中。
[0133] 19.根据条款11所述的方法,其中所述连接点包括引脚、寄存器或熔断器。
[0134] 20.根据条款11所述的方法,其中所述第一存储器块包括小芯片、焊接到印刷电路板(PCB)上的分立芯片或RAM宏块。
[0135] 21.一种分配和控制对网络设备中的第一存储器的访问的方法,所述方法包括:
[0136] 在控制器处生成存储器访问指令,所述存储器访问指令指示要访问的第一存储器的地址以进行数据传输,所述数据不是存储器访问指令;
[0137] 使用所述分配器电路系统在所述控制器和所述第一存储器之间路由所述存储器访问指令和不是存储器访问指令的所述数据;
[0138] 使用所述分配器电路系统执行至少一个存储器配置映射的初始配置,以针对所述存储器访问指令分配所述第一存储器的所选地址并且针对所述数据分配所述第一存储器的其他所选地址;
[0139] 在执行所述初始配置之后,重新配置所述至少一个存储器配置映射,以改变针对所述存储器访问指令以及针对所述数据的所述第一存储器的地址的分配,从而与针对所述数据所分配的所述第一存储器的数量相关地改变针对所述存储器访问指令所分配的所述第一存储器的比例;以及
[0140] 在重新配置所述至少一个存储器配置映射之前和之后并且基于所述至少一个存储器配置映射,在所述控制器和所述第一存储器之间路由所述存储器访问指令和不是存储器访问指令的所述数据,仅在分配给存储器访问指令的所述第一存储器的所选地址处存储所述存储器访问指令,并且仅在分配给不是指令的数据的所述第一存储器的所选地址处存储不是指令的所述数据。
[0141] 22.根据条款21所述的方法,还包括:在重新配置所述至少一个存储器配置映射之前和之后,基于所述存储器访问指令在所述控制器和所述第一存储器之间传输所述数据。
[0142] 23.根据条款21所述的方法,还包括:
[0143] 在所述分配器电路系统处经由第一通道从所述控制器接收所述存储器访问指令,其中所述网络设备包括第一端口和第二端口,所述第一端口限定了专用于传输所述存储器访问指令的第一通道,所述第二端口限定了专用于传输所述数据的第二通道;
[0144] 基于所述存储器访问指令在所述控制器和所述分配器电路系统之间经由所述第二通道传输所述数据;以及
[0145] 基于所述至少一个存储器配置映射在所述分配器电路系统和所述第一存储器之间传输所述数据。
[0146] 24.根据条款21所述的方法,还包括:在所述分配器电路系统处从与所述网络设备分开的配置设备接收第一配置信号,并且基于所述第一配置信号来配置所述至少一个存储器配置映射,以针对所述存储器访问指令分配所述第一存储器的选择性地址,并针对所述数据分配所述第一存储器的其他选择性地址。
[0147] 25.根据条款24所述的方法,还包括:基于所述第一配置信号来分配所述第一存储器的第一数量以用于存储所述存储器访问指令,并且分配所述第一存储器的第二数量以用于存储所述数据,所述第一配置信号指示所述第一存储器的所述第一数量和所述第一存储器的所述第二数量。
[0148] 26.根据条款24所述的方法,还包括从所述配置设备接收第二配置信号,并且基于所述第二配置信号来重新配置所述至少一个存储器配置映射,以改变针对所述存储器访问指令所分配的所述第一存储器的数量、并改变针对所述数据所分配的所述第一存储器的数量。

当前第1页 第1页 第2页 第3页