CN103827836B - 存储数据的方法和装置 - Google Patents
存储数据的方法和装置 Download PDFInfo
- Publication number
- CN103827836B CN103827836B CN201180073248.5A CN201180073248A CN103827836B CN 103827836 B CN103827836 B CN 103827836B CN 201180073248 A CN201180073248 A CN 201180073248A CN 103827836 B CN103827836 B CN 103827836B
- Authority
- CN
- China
- Prior art keywords
- memorizer
- group
- storage system
- memorizer group
- control logic
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 22
- 238000003860 storage Methods 0.000 claims description 181
- 238000005314 correlation function Methods 0.000 claims description 36
- 238000009826 distribution Methods 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 10
- 238000013500 data storage Methods 0.000 claims description 8
- 238000000151 deposition Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 claims description 4
- 238000012544 monitoring process Methods 0.000 claims description 3
- 230000014759 maintenance of location Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 15
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000004088 simulation Methods 0.000 description 7
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 5
- 229910052710 silicon Inorganic materials 0.000 description 5
- 239000010703 silicon Substances 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 101150071746 Pbsn gene Proteins 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/41—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
- G11C11/413—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
-
- 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/023—Free address space 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/1668—Details of memory controller
- G06F13/1684—Details of memory controller using multiple buses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/253—Centralized memory
- G06F2212/2532—Centralized memory comprising a plurality of modules
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Static Random-Access Memory (AREA)
- Memory System (AREA)
- Small-Scale Networks (AREA)
Abstract
存储系统(1)包括:控制逻辑(2),用于在所述存储系统(1)中时钟信号(CLK)的时钟周期内,从输入端口接收n个写入请求(WR),从输出端口接收一个读取请求(RR),其中,n为自然数;共享存储器(3)的n+1个存储器组(4),其中,所述共享存储器(3)用于存储数据,所述控制逻辑(2)用于控制每个存储器组(4)的存储器组占用率MBOL,从而使所述存储器组(4)的存储器组占用率MBOL之间的差值最小化。
Description
背景技术
本发明涉及一种通过带有端口的装置的存储系统尤其是通过高速交换设备的存储系统高效存储数据的方法和装置。
多种应用场合中均需要使用高速多端口存储系统,特别是带有单一读端口和多个写端口的存储系统,而且所有端口可同时运行。这些应用场合的示例包括但不限于队列引擎,所述队列引擎为网络区域中交换系统或多核环境中中央处理器CPU的一部分。
存储系统的传统设计主要采用单端口或双端口存储器。每次可通过一个地址访问单端口存储器。相应地,在每个时钟周期内可对一个存储单元执行一次读/写操作。双端口存储器能够通过不同的地址同时读写不同的存储单元。但是,双端口RAM一般要消耗的硅片面积大约为具有相同存储容量的单端口RAM所占用面积的两倍。将数据复制到一些单独的单端口或双端口存储器中,便能构建成多端口存储器。但是,将数据复制到存储器时,需要使用更大容量的存储器,因此,与仅将数据存储一次的情况相比,这会耗费更大硅片面积和更高功率。
图1示出了网络系统中的一种传统交换机,其中,所述交换机具有预定数量的n个端口。图1所示的传统交换机的每个端口均是双向的,这表示每个端口均具有图1所示的、将数据传输至该交换机的专用接口以及将数据从该交换机传输出去的专用接口。
有多种不同的传统架构,可用于构建图1所示、以图2至4进行说明的交换系统。
图2示出了共享存储器的一种传统时分复用TDM交换系统。在该传统装置中,来自所有输入端口的数据流量被分成若干数据块,所述数据块通过时分复用(TDM)方法从所述输入端口传送至共享存储器。如图2所示,将数据块通过决策块或调度器块从所述共享存储器传送至输出端口,该调度器可以使用多种算法,如轮循算法、加权轮循算法或优先级算法等。
如图2所示的传统装置的限制性在于,在图2所示的复用单元和解复用单元之间的所述共享存储器需支持n倍于“端口带宽”的带宽,其中,n为端口数。由于共享存储器需支持非常高的带宽,而且通常需在与端口速率相关的极高频率下运行,因此对共享存储器的实现造成了限制。
图3示出了另一种传统装置,其中,如图1所示的交换系统采用纵横式交换矩阵。该传统装置中提供有如图3所示的栅格。借助于所述纵横式交换矩阵或栅格,每个输入端口可连接至每个输出端口。来自所有输入端口的数据流量被分成若干数据块,这些数据块在被传送至相应的输出端口之前会通过输入队列存储在每个源端口中。一旦调度器决定将流量如数据块从特定的输入端口传送至特定的输出端口,其将打开图3所示的栅格中的对应点,以使该数据流量通过。该传统存储系统使用如图3所示的纵横式交换矩阵,其劣势在于:调度器较为复杂,且需要对输入端口和输出端口进行匹配,以在每个交换周期内在输入和输出之间最大化传送量。
图4示出了另一种传统装置。图4示出了基于CLOS的交换系统,该系统包括三个或多个交换层级。每个交换层级包括多个小型交换机,这些交换机可通过上述图2和图3所示的任一传统装置实现。如图4所示的基于CLOS的传统交换系统引发了其他问题,如乱序传送数据流量至目的端口,而且,所述基于CLOS的传统交换系统相当复杂,且难以实现。
大多数单一交换设备均采用时分复用TDM方案,且具有图2所示的共享存储器。但是,由于存在同时由最多所有端口写入该存储器以及由所有端口从该存储器进行读取的情况,所以要求共享存储器支持至少双倍的带宽,这就对使用该技术的单一设备的总带宽造成了限制。
由于技术到达VLSI设计甚至是PCB板的高频位垒,因此需要使用满足带宽要求且达到存储系统所要求的访问量的存储系统和方法,而不会增加超出技术限制的频率。
发明内容
本发明的目的是提供一种高效存储数据的方法和装置,以满足高带宽要求,且无需增加超出技术限制的工作频率,从而实现通过存储系统在一个时钟周期内同时执行n次写入操作和一次读取操作。
根据本发明的第一方面,上述目的可通过一种存储系统实现,该存储系统包括:
控制逻辑,用于在所述存储系统中时钟信号的时钟周期内,从输入端口接收n个写入请求,从输出端口接收一个读取请求,其中,n代表端口数;以及包括共享存储器的n+1个存储器组,用于存储数据,
其中,控制逻辑用于控制每个存储器组的存储器组占用率,从而使存储器组的存储器组占用率之间的差值最小化。
在第一方面提供的存储系统的第一可能实现方式中,所述控制逻辑用于根据预定的关联功能将来自输入端口的写入请求分发至所述存储系统中所有可用的存储器组,以实现统一分发对所述存储器组的写入访问。
在本发明第一方面提供的存储系统的第一可能实现方式的第二可能实现方式中,将来自所述输入端口的所述写入请求分发至所述共享存储器中所有可用的存储器组,以保持随时统一分发所述存储器组的所述存储器组占用率。
在本发明第一方面提供的存储系统的第一或第二实现方式的第三可能实现方式中,所述控制逻辑包括与每个存储器组对应的一个占用率计数器,用于监控各存储器组的存储器组占用率。
在本发明第一方面提供的存储系统的第三实现方式的第四可能实现方式中,所述共享存储器中所述其中一个存储器组的所述占用率计数器随着每次写操作增加,所述写操作用于将数据写入至相应的存储器组(4)以响应所述控制逻辑(2)从所述其中一个输入端口接收到的写入请求(WR)。
在本发明第一方面提供的存储系统的第三或第四实现方式的第五可能实现方式中,所述共享存储器中所述其中一个存储器组的所述占用率计数器随着每次读操作减少,所属读操作用于从相应存储器组(4)中读取数据以响应所述控制逻辑(2)从所述输出端口接收到的读取请求(RR)。
在本发明中第一方面提供的、可以组成上述第一至第五可能实现方式的一种可能实现方式的存储系统的第六可能实现方式中,每个存储器组可由单端口SRAM组成。该实现方式在将本发明第一方面提供的存储系统集成到集成电路中时使所需的硅片面积最小化。集成单端口SRAM需要的硅片面积较小,所以无需使用通常几乎双倍于单端口SRAM大小的双端口SRAM。
在本发明第一方面提供的存储系统的第一至第六实现方式的第七可能实现方式中,由分别具有预定最大存储容量B的n+1个存储器组组成的所述存储系统的存储容量取决于所述存储系统中是否有存储器组未被全部占用,或者是否至少有一个存储器组被全部占用。
在本发明第一方面提供的存储系统的第七实现方式的第八可能实现方式中,如果所述存储系统中的存储器组均未被全部占用,则所述存储系统的总存储占用率为:MS=(n+1)xB,
其中,MS为所述存储系统的存储容量,
n+1为所述共享存储器中存储器组的数量,
B为存储器组的预定最大存储容量。
在本发明第一方面提供的存储系统的第七实现方式的第九可能实现方式中,如果至少有一个存储器组被全部占用,且在所述时钟信号的当前时钟周期内,写入请求的数量小于或等于所述存储器组的数量n+1与准备写入但被全部占用的存储器组的数量之间的差值,即#(WR)≤(n+1)–#(准备写入但已满的存储器组数量),则所述存储系统的总存储占用率为:
MS=(n+1)x(B–Min),
其中,MS为所述存储系统的存储容量,
n+1为存储器组的数量,
B为存储器组的预定最大存储容量,
Min为未全部占用的存储器组之间的最小存储器组占用率。
在本发明第一方面提供的存储系统的第一至第九实现方式的第十可能实现方式中,所述关联功能用于最小化存储器组占用率的差值。
进一步,在本发明第一方面中第一至第十实现方式提供的存储系统的第十一可能实现方式中,所述关联功能用于最小化从输入端口接收到的数据的限定符与写入至存储器组的数据的限定符之间的关联关系,其中,所述写入至存储器组(4)的数据的限定符为响应所述控制逻辑(2)接收到的写入请求(WR),所述控制逻辑(2)响应所述写入请求(WR)。
进一步,在本发明第一方面提供的存储系统的第十一实现方式的第十二可能实现方式中,所述限定符包括从输入端口接收的数据的类型。
进一步,在本发明第一方面提供的存储系统的第十一实现方式的第十三可能实现方式中,所述限定符包括从输入端口接收的数据的等级。
进一步,在本发明第一方面提供的存储系统的第一至第十三实现方式的第十四可能实现方式中,所述控制逻辑使用的所述关联功能包括随机关联功能。
进一步,在成为本发明第一方面提供的存储系统的第十四实现方式的一个实现方式的第十五可能实现方式中,所述控制逻辑用于基于存储器组的存储器组占用率,对将数据写入至的所述存储器组中所有可用的存储器组进行排序,并将所述控制逻辑接收到的所述写入请求以随机顺序关联至以具有最低存储器组占用率的存储器组开始的所述可用存储器组。
进一步,在成为本发明第一方面提供的存储系统的第十五实现方式的一个实现方式的第十六可能实现方式中,所述控制逻辑使用的所述关联功能包括随机关联历史记录的功能。
在成为本发明第一方面提供的存储系统的第十六实现方式的一个实现方式的第十七可能实现方式中,所述控制逻辑还用于保留来自每个输入端口的写入请求的历史记录,其中,针对每个写入请求,优选对所述输入端口的历史记录中未被标记的存储器组随机地执行写操作。
根据本发明的第二方面,上述目的还可以通过用于装置中存储系统高效缓冲数据的方法实现,所述装置具有端口,该方法包括以下步骤:
在所述装置中时钟信号的时钟周期内,从输入端口接收多个写入请求,从输出端口接收一个读取请求;
将所述写入请求分发至所述存储系统的存储器组,从而使所述存储器组之间的存储器组占用率差值最小化。
在第二方面提供的、通过带有端口的装置的存储系统高效缓冲数据的方法的第一可能实现方式中,所述将所述写入请求分发至所述存储器组是根据预定的关联功能执行的。
根据本发明的第三方面,上述目的还可以通过包括预定数量的端口和本发明第一方面提供的存储系统的其中一个实现方式所述的存储系统的装置实现。
在本发明第三方面提供的装置的第一实现方式中,该装置包括网桥。
在本发明第三方面提供的装置的第二实现方式中,该装置包括网络交换机。
在本发明第三方面提供的装置的第三实现方式中,该装置包括网络路由器。
在本发明第三方面提供的装置的第四实现方式中,该装置包括队列引擎。
附图说明
以下将结合附图说明存储系统的可能实施例、通过带有端口的装置的存储系统高效缓冲数据的方法以及包括预定数量的端口和根据本发明第一、第二及第三方面提供的存储系统的装置。
图1示出了一种带有端口接口的传统交换机的框图;
图2示出了一种传统的时分复用TDM交换系统的框图;
图3示出了用于说明传统纵横式交换矩阵交换系统的示意图;
图4示出了一种基于CLOS的传统交换系统的框图;
图5示出了本发明第一方面提供的存储系统的一种可能实现方式的框图;
图6示出了本发明第一方面提供的存储系统的另一种可能实现方式的另一框图;
图7示出了高带宽交换设备的一种可能实现方式的框图,其中,所述高带宽交换设备为采用本发明第一方面提供的存储系统的交换设备的一个示例;
图8示出了用于说明如图7中示意性交换设备所采用的输出队列的队列和调度的框图;
图9示出了一种如图7和图8中具有本发明第一方面提供的存储系统的示意性交换设备所采用的队列引擎的框图;
图10示出了本发明第二方面提供的、通过带有端口的装置的存储系统高效缓冲数据的方法的一种可能实现方式的流程图;
图11示出了用于说明本发明第二方面提供的、通过带有端口的装置的存储系统利用关联功能高效缓冲数据的方法的一种可能实现方式的另一流程图;
图12示出了用于说明存储系统进行非随机选择存储器组的模拟结果的示意图;
图13示出了用于说明存储器组系统不进行随机选择存储器组的模拟结果的示意图。
具体实施方式
从图5可见,其示出了本发明第一方面提供的存储系统1的一种可能实现方式。该存储系统1包括控制逻辑2和共享存储器3。所述共享存储器3包括如图5所示的预定数量n+1个存储器组4-1、4-2、4-3、……、4-(n+1)。所述共享存储器3用于存储数据。如图5的实现方式所示,所述共享存储器3包括n+1个存储器组4-i。从图5可见,所述控制逻辑2具有单独访问所述共享存储器3中每个存储器组4-i的权限,所述控制逻辑2用于控制所述共享存储器3中每个存储器组4-i的存储器组占用率MBOL。从图5可见,所述控制逻辑2用于在所述存储系统1适用的时钟信号CLK的一个时钟周期内,从输入端口接收n个写入请求WR,从输出端口接收一个读取请求RR。所述控制逻辑2用于控制所述共享存储器3中每个存储器组4-i的存储器组占用率MBOL,从而使存储器组4-i的存储器组占用率MBOL之间的差值最小化。在图5所示的实现方式中,所述控制逻辑2包括占用率计数器OLCi,其中,每个存储器组4-i对应一个占用率计数器OLCi,所述占用率计数器OLCi用于监控各存储器组4-i的存储器组占用率MBOL。在图5所示的实现方式中,将不同的占用率计数器OLC集成到所述控制逻辑2中。在一种可选的实施例中,所述控制逻辑2具有通过接口访问外部占用率计数器OLC的权限。在图5所示的存储系统1的一种可能实现方式中,所述控制逻辑2用于根据预定的关联功能AF将来自输入端口的写入请求WR分发至所述存储系统1中所有可用的存储器组4-i,以实现统一分发对所述共享存储器3中存储器组4-i的写入访问。在一种可能的实现方式中,将来自所述输入端口的所述写入请求WR分发至所述共享存储器3中所有可用的存储器组4-i,以保持随时统一分发所述共享存储器3中所述存储器组4-i的所述存储器组占用率MBOL。在所述存储系统1的一种可能实现方式中,所述共享存储器3中所述其中一个存储器组4-i的所述占用率计数器OLCi随着将数据写入至相应的存储器组4-i的每次写操作增加,所述写操作用于响应所述控制逻辑2从所述存储系统1的所述其中一个输入端口接收到的写入请求WR。在另一可能的实现方式中,所述共享存储器3中所述其中一个存储器组4-i的所述占用率计数器OLCi随着从相应存储器组4-i中读取数据的每次读操作减少,所述读操作用于响应所述控制逻辑2从所述输出端口接收到的读取请求RR。
在图5所示存储系统1的实施例的第一可能实现方式中,共享存储器3中每个存储器组4-i均由单端口SRAM组成。该实现方式的优势在于:将单端口SRAM集成到芯片上时,不需要占用太多面积。而且,单端口SRAM的功耗较低,可在较低频率下运行,且能实现所需的存储器访问带宽。将图5所示的存储系统1集成到芯片中时,使用单端口SRAM将占用最小面积。
在一种可选的实现方式中,本发明第一方面提供的存储系统1的共享存储器3还包括双端口存储器。在该实现方式中,存储器组4-i至4-(n+1)均由双端口SRAM块组成。在又一可能的实现方式中,所述共享存储器3可包括混合或组合单端口或双端口的存储器组4-i。
在图5所示的存储系统1的一种可能实现方式中,所述共享存储器3可包括可替换的存储器组4-i。在该实现方式中,通过替换各自的存储器组,便能轻松更换存储器组4-i。在一种可选的实现方式中,所述共享存储器3组成一个完整单元,包括n+1个存储器组4-1至4-(n+1),而且仅可替代或替换该完整的共享存储器3。
在图5所示的存储系统1的一种可能实现方式中,所述共享存储器3与所述控制逻辑2为不同的实体,如不同的芯片,或单一芯片,但所述共享存储器3与所述控制逻辑2都有各自的完整系统。在又一可能的实现方式中,所述完整的存储系统1由包括所述逻辑控制2与所述共享存储器3的集成芯片组成。
在本方明第一方面提供的存储系统1的一个可能实施例中,由所述共享存储器3中分别具有预定最大存储容量B的n+1个存储器组4-i提供的所述存储系统1的存储容量MS取决于所述存储系统1中是否有存储器组4-i未被全部占用,或者所述存储系统1中是否至少有一个存储器组4-i被全部占用。
如果所述存储系统1中的存储器组4-i均未被全部占用,则所述存储系统1的总存储占用率MS为:
MS=(n+1)x B,
其中,n+1为共享存储器3中存储器组4-i的数量,
B为每个存储器组4-i的存储容量。
如果所述共享存储器3中至少有一个存储器组4-i被全部占用,且在所述适用的时钟信号CLK的当前时钟周期内,写入请求WR的数量小于或等于所述共享存储器3中所述存储器组4-i的数量n+1与准备写入但被全部占用的存储器组4-i的数量之间的差值,即:
#(WR)≤(n+1)–#(准备写入但已满的存储器组数量),
则所述存储系统1的总存储占用率MS为:
MS=(n+1)x(B–Min),
其中,Min为所述存储系统1中未全部占用的存储器组4-i之间的最小存储器组占用率MBOL。
在本发明第一方面提供的存储系统1的一种可能实现方式中,所述控制逻辑2从包括存储系统1的装置的输入端口接收n个写入请求WR,每个存储器组4-i包括预定数量的可寻址存储单元。在一种可能的实现方式中,每个写入请求WR包括对应的写入地址,用于将数据写入到存储单元中。所述控制逻辑2将来自所述输入端口的写入请求WR分发至所述共享存储器3中所有可用的存储器组4-i,以保持随时统一分发所述存储器组4-i的所述存储器组占用率MBOL。所述控制逻辑2用于控制由如所述存储器组4-i的对应占用率计数器OLC所指示的每个存储器组4-i的存储器组占用率MBOL,从而使所述共享存储器3中所述存储器组4-i的存储器组占用率MBOL之间的差值最小化。所述控制逻辑2用于在所述适用的时钟信号CLK的时钟周期内从输出端口接收一个读取请求RR,其中,所述读取请求RR包括读取地址,用于从存储单元读取数据。所述读取请求RR用于从所述共享存储器3中的特定存储单元读取数据。所述控制逻辑2对所提供的读取地址进行读取访问,这表示在相同的时钟周期内,未选择对从中读取数据的所述存储器组4-i进行写操作。本发明第一方面提供的所述存储系统1在每个时钟周期内不进行或进行一次读取访问,而在每个时钟周期内会进行0至n次写入访问。
在一种可能的实现方式中,如果对所述控制逻辑2应用读取请求RR,则所述存储系统2的所述控制逻辑2将第一优先选择存储器组进行所必需的读取访问,所述控制逻辑2将在需要时第二优先选择存储器组4-i进行写入访问。所述控制逻辑2执行操作,该操作保证在所述适用的时钟信号CLK的每个时钟周期内不进行或进行一次读取访问以及进行0至n次写入访问,其中,可对任何未被所述读取访问占用的存储器组进行所述写入访问。所述控制逻辑2随时保持几乎相等的存储器组占用率MBOL,从而最大化利用存储器组4-i,尤其是在每个存储器组4-i的存储利用率几乎达到最大存储容量时,即单个存储器组4-i达到存储容量B。如果所述存储器组占用率大致不均等,则在整体存储利用率较高的情况下,有可能其中一个存储器组4-i已满,而其他存储器组未满。在这种情形下,如果选择被全部使用的特定存储器组4-i进行写入访问,则由于该存储器组空间已满,所以无法对该存储器组4-i进行所述写入访问。例如,当所述控制逻辑2在所述时钟信号CLK的相同时钟周期内接收到n个写入请求WR,而且同时接收到从存储器组4-i中的存储单元读取数据的一个读取请求RR时,便会引发上述情形。本发明第一方面提供的所述存储系统1的所述控制逻辑2避免了存储系统运行中断的情形。在某些应用场合中,有可能会丢弃写入请求WR,但是,在多数应用场中,不能丢弃写入请求WR。为避免丢弃写入请求WR,如果所述共享存储器3中至少有一个存储器组4-i被全部占用,则会将所述共享存储器3视为空间已满。例如,在所述存储系统1接收到n个写入请求WR的情形中,且在其中一个存储器组4-i已全部占满的情况下,还剩下(n+1)-1=n个可操作的存储器组,此时,仍然可以在相同的时钟周期内将所述n个写入请求WR分发至n个不同的存储器组4-i.如果该示例中有另一个存储器组4-i被全部占满,仅剩下n-1个存储器组可用于进行写入访问,此时,当所述控制逻辑2从所述输入端口接收到下一个时钟周期内的n个写入请求时,则在上述时钟周期的相同时间内,不再能够将该n个写入请求WR分发至不同的存储器组。
本发明第一方面提供的所述存储系统1的所述共享存储器3包括n+1个存储器组4-i。为保证在所述时钟信号CLK的时钟周期内的一次读取访问响应一次读取请求RR,将仅剩下n个存储器组4-i,用于分发响应写入请求WR的写入访问。相应地,如果剩余n个存储器组4-i中仅有一个存储器组4-i被全部占满,则所述控制逻辑2会将所述共享存储器3视为已满,因为所述控制逻辑2不再能够分发响应来自所述输入端口的n个写入请求WR的n次写入访问。为尽可能多地避免这种情形,所述控制逻辑2会将来自所述输入端口的所述写入请求WR分发至所述共享存储器3中所有可用的存储器组4-i,以保持随时统一分发存储器组4-i的所述存储器组占用率MBOL。所述控制逻辑2将所述存储器组的所述存储器组占用率MBOL之间的差值保持在最小程度,从而实现存储器组占用率MOBL之间的差值最小化,因此,所述控制逻辑2能够随时保持每个存储器组4-i具有大致相等的存储占用率。为保持所述存储器组4-i具有大致相等的存储器组占用率MOBL,所述控制逻辑2将来自所有写入端口的写入请求WR分发至所有存储器组4-i,从而尽可能统一分发所述存储器组的占用率。
在一个可能的实施例中,如果需对存储器组4-i进行读取访问,以响应所述控制逻辑2接收到的读取请求RR,所述控制逻辑2将基于接收到的读取地址选择一个存储器组4-i进行该读取访问。在另一步骤中,所述控制逻辑2在相同时钟周期内进行写入访问时,会从可能的存储器组中去除该选定的存储器组4-i。在一个可能的实施例中,所述控制逻辑2根据预定的关联功能AF将响应来自所述输入端口的写入请求WR的写入访问分发至所述共享存储器3中所有仍然可用的存储器组4-i。
图6示出了图5的更详细图示,其中,所示的复用器2B、2C组成所述控制逻辑2的一部分。
图6示出了本发明第一方面提供的存储系统1的一种可能实现方式,其中,所述存储系统1包括所述控制逻辑2中的控制逻辑核心2A,所述控制逻辑2具有占用率计数器OLC以及用于存储关联功能AF的数据存储器。在一种可选的实现方式中,所述控制逻辑2具有通过接口读出关联功能AF的权限。在图6所示的实现方式中,所述控制逻辑核心2A控制复用设备2B复用对所述共享存储器3中的存储器组4-i进行的写入访问。从图6可见,为每个存储器组4-i提供了一个对应的复用器2B-i,以便根据写入地址与数据将数据写入至各存储器组4-i的存储单元中,或者在所述控制逻辑2的控制逻辑核心2A的控制下,使用存储单元的读取地址从被寻址的存储单元中读取数据。所述控制逻辑核心2A将控制信号CRTL-B-1、CRTL-B-2、……、CRTL-B-(n+1)应用到如图6所示的复用器2B-1、2B-2、……、2B-(n+1)。进一步,所述控制逻辑2包括读取复用器2C,用于从存储器组4-i的被寻址存储单元中读取数据,其中,所述读取复用器2C由所述控制逻辑2的控制逻辑核心2A使用的读取控制信号CRTL-2C控制。在一种可能的实现方式中,所述关联功能AF用于最小化接收写入请求WR的输入端口与由响应该写入请求WR的控制逻辑2控制的存储器组4-i之间的关联关系。所述关联功能AF可包括所述写入请求WR、所述写入端口与可写入数据的可用存储器组4-i之间的匹配算法。在一种可能的实现方式中,所述关联功能AF用于实现统一分发所述共享存储器3中所述存储器组4-i的写入访问。进一步,所述关联功能AF可用于最小化所述写入端口与所述共享存储器3中任何存储器组4-i之间的关联关系。
在又一种实现方式中,所述关联功能AF用于最小化从特定写入端口至任何存储器组4-i的数据的限定符之间的关联关系。在另一种实现方式中,所述关联功能AF用于最小化从输入端口接收到的数据的限定符与写入至存储器组4-i的数据的限定符之间的关联关系,其中,所述存储器组4-i响应所述控制逻辑2为响应写入请求WR而接收到的所述写入请求WR。所述限定符可以包括从输入端口接收到的数据的类型。所述限定符还可以包括从输入端口接收到的数据的等级。例如,限定符为COS(服务等级)、颜色、队列或单播/多播,所述限定符可由接收到的数据包报头中的标志组成。在一个实施例中,所述限定符可从传入数据包的速率计算得出,例如,可以通过处理单元进行该计算。例如,限定符可以是具有不同值的颜色或标志,如红色、黄色或绿色(类似于交通信号灯)。
例如,所述限定符可基于传入数据包的数据速率进行计算。例如,如果流量速率超过第一门限值,所述数据包的颜色为“红色”;如果流量速率在第一门限值和第二门限值之间,所述数据包的颜色可能是,例如,“黄色”;如果流量速率小于第二门限值,所述数据包的颜色可能是“绿色”。在一种可能的实现方式中,所述关联功能AF用于最小化从输入写入端口以及从所述控制逻辑2为响应从所述写入端口接收到的写入请求WR而将数据写入至的存储器组4-i接收到的数据包的各自限定符之间的关联关系。
在一种可能的实现方式中,所述关联功能AF用于随时最小化所述存储器组4-i之间的占用率差值。不同的可能实现方式具有不同的关联功能AF。
在本发明第一方面提供的存储系统1的一种可能实现方式中,图6中的实施例所示的控制逻辑2包括随机关联功能。在一种实现方式中,所述控制逻辑2用于基于存储器组4-i的存储器组占用率MBOL,对用于将数据写入至所述存储器组4-i的所有可用存储器组4-i进行排序,并将所述控制逻辑2接收到的所述写入请求WR随机关联至以具有最低存储器组占用率MBOL的存储器组开始的所述可用存储器组4-i。
执行该随机关联的具体实现方式如下:在第一步骤中,对用于进行写入访问的所有可用存储器组4-i均基于其存储器组占用率MBOL进行排序,从占用率最小的存储器组开始至占用率最大的存储器组。如果此时不需要进行读取访问,则对所述共享存储器3中所有n+1个存储器组4-i进行排序。在另一步骤中,将所述写入请求WR关联至所述可用的存储器组4-i,从占用率最小的存储器组开始,即从具有最低存储器组占用率MBOL的存储器组开始。
如果有n个写入请求WR与一个读取请求RR,则必须访问所有(n+1)个存储器组。选定进行所述读取访问的特定存储器组将从仍然可用于进行写入访问的可用存储器组列表中去除。此时,对所述仍然可用的存储器组4-i和所述写入请求WR进行随机关联。
如果有少于n个写入请求WR同时进行写入访问,或者,如果有n个写入请求WR且没有读取请求RR,则存在某些存储器组4-i,不会被选定进行写入访问操作,而这些存储器组4-i将是数据占用率最大的存储器组。对所述选定的存储器组和所述写入请求WR进行随机关联。为进行随机关联,所述控制逻辑2可以使用能够生成随机码或伪随机码的任何机制,以实现匹配存储器组和特定写入端口的目的。
在一种可能的实现方式中,通过对任何指定输入采用伪随机二进制序列(PRBS)功能、任何循环冗余校验法(CRC)或任何HASH功能,可以生成伪随机码。在所述存储系统1的一种可能的实现方式中,所述控制逻辑2包括集成式随机码生成器或集成式伪随机码生成器。在一种可选的实现方式中,所述控制逻辑2具有通过接口从随机码生成器或伪随机码生成器接收随机码的权限。
在本发明第一方面提供的存储系统1的又一种可能的实现方式中,所述控制逻辑2使用的所述关联功能AF包括随机关联历史记录的功能。在该实现方式中,所述控制逻辑2还用于保留来自每个输入端口的写入请求WR的历史记录。该历史记录可以包括访问滑动窗口,其将保留每个端口的最后k个写入访问。在一种特定的实现方式中,所述控制逻辑2可以随机关联历史记录的方式如下:所述控制逻辑2保留每个写入端口的写入请求WR的历史记录,该历史记录用作存储器访问的滑动窗口。在一种可能的实现方式中,每个写入端口的最后k个写入访问将被保留。k的值可以为1至n,k的选定取决于所述控制逻辑2依据所述共享存储器3中存储器组4-i之间的不同存储占用率而需要实现的准确性。
从特定写入端口发出写入请求WR时,将待执行所述写入请求WR的优选存储器组4-i设置为该存储器组历史记录窗口中未标记的存储器组,将这些存储器组以优先方式从占用率最小的存储器组至占用率最大的存储器组分别列出。
一旦将所有写入请求WR关联至其优选的存储器组后,所述控制逻辑2将进行匹配操作。在一种可能的实现方式中,所述控制逻辑2进行匹配的方式如下:控制逻辑2从写入端口0开始,根据其优选的存储器组列表将其与占用率最小的存储器组进行匹配,选定的存储器组将从可用的存储器组中去除,然后对其他写入请求WR重复该步骤。
为实现更加合理、统一的分发,所述控制逻辑2会在所述时钟信号CLK的每个时钟周期内开始对不同的写入请求WR进行匹配。例如,对于具有共享存储器3和4+1个存储器组4-i的4+1存储系统1而言,在一个时钟周期内,对序列0、1、2、3进行第一匹配,在下一个时钟周期内,对下一个序列1、2、3、0等进行匹配。
在如图5和图6中示意性实现方式所示的、本发明第一方面提供的存储系统1可以组成图7所示框图中的高速交换设备的一部分。该高速交换设备5可包括N个入口处理单元6-i和M个出口处理单元7-i,每个入口/出口处理单元均可以支持一个单端口或是一组端口,具体取决于各自装置的架构。在该高速交换设备5的较佳实施例中,MESH连接组成任何入口处理单元6-i与任何出口处理单元7-i之间的连接。例如,当每个入口/出口处理单元支持一个以上的端口时,每个处理单元采用如时分复用TDM方式和共享存储器运行。
在如图7所示的高速交换设备5中,由于不同输入端口可能需要同时将数据流量发送至特定的输出端口,所以存储到达数据时需进行排队。在这种情况下,需以端口速率将一些数据流量发送出去,并存储剩余的数据流量,以便后续发送。选择输出队列时,每个输出处理块或单元包括其支持的特定输出端口的队列。
图8示出了用于高带宽交换设备5中每个出口处理单元7-i的队列引擎8和调度器9的一种实现方式。从图8可见,每个出口处理单元7-i可包括一个队列引擎8和一个调度器9,所述调度器9连接所述队列引擎8中的En-Queue单元和De-Queue单元,所述队列引擎8包括该实现方式所示的N路输入,即每个入口处理单元6-i有一路输入。相应地,该块的输入带宽为“输入块带宽”N,该块的输出速率为“输出块带宽”。如果入口处理单元6-i的数量等于出口处理单元7-i的数量,则所述队列引擎8需支持的输入带宽与输出带宽比为n:1。
由于到达数据被分成数据块,其中,每个数据块的大小等于所述共享存储器3的宽度,且每个数据块均可在一个时钟周期内写入至所述存储系统1。在每个时钟周期内,所述存储系统1支持n个写入请求WR和一个读取请求RR,以支持所需带宽。
图9示出了如图5、6实现方式所示的、本发明第一方面提供的存储系统1的实现方式中包括的队列引擎8的一种可能实现方式。在图9所示的队列引擎8的特定实现方式中,所述队列引擎8包括存储系统1以及与En-Queue单元11匹配的负荷存储器10。在该指定的示意性实现方式中,负荷存储器10连接到N=4路输入。所述En-Queue单元11的输出连接到图9所示的De-Queue单元12,所述En-Queue单元11将N=4路输入中的每路输入的更新提供给图9所示的调度器9。所述存储系统1从所述负荷存储器10接收写入请求WR,并将响应读取请求RR的数据输出至所述De-Queue单元12。在一种可能的实现方式中,所述队列引擎8可包括时钟信号生成器13,用于生成尤其适用于所述存储系统1的时钟信号CLK。
图9中实现方式所示的队列引擎8逻辑上包括存储到达数据的队列Q。在该可能的实现方式中,每个输出端口可能具有数个队列Q,每个队列Q表示数据的不同服务等级。例如,一些队列Q可能是具有高优先级以及恒定传输速率、包括实时音频或视频的队列,而其他队列Q包括较低的优先级或较低的文件传输速率。
将从全部N个块至负荷存储逻辑10的N股到达数据转移到所述存储系统1进行存储。所述存储系统1针对分发至所述存储系统1中存储器组4-i的到达流量提供进行写入操作的地址,可通过反馈接口FB向负荷存储逻辑10反馈该写入地址,如指向数据的指针。
然后,将指向数据的指针即写入地址存储在正确的队列Q中。基于一种分类方法,可确定队列Q,其中,所述分类方法在所述队列引擎8之前执行,即到达所述队列引擎8的数据已经具有附于其上的队列号。
所述En-Queue单元11用于存储所述指针,即将数据写入至正确队列Q的地址。
所述De-Queue单元12负责为所述存储系统1提供读取地址RA,以便从特定的队列Q中读出数据,此外,所述De-Queue单元12将同时更新队列数据库。
所述调度器9用于基于特定的算法,如轮循算法,为下一个读取周期选择所有非空队列中的队列Q。
从组成图7所示的高带宽交换设备5的处理单元的队列引擎8的示意性实现方式可见,在所述时钟信号CLK的每个时钟周期内,所述存储系统1最多支持N个写入请求WR和一个读取请求RR。
图10示出了本发明第二方面提供的、通过带有端口的装置的存储系统高效缓冲数据的方法的一种可能实现方式的流程图。
在第一步骤S1中,在所述装置适用的时钟信号CLK的时钟周期内,从输入端口接收多个写入请求WR,从输出端口接收一个读取请求RR。
在第二步骤S2中,将所述写入请求WR分发至所述存储系统1的存储器组4-i,从而使所述存储器组4-i之间的存储器组占用率MBOL的差值最小化。
在图2所示方法的一种可能实现方式中,所述在步骤S2中将所述写入请求WR分发至所述存储器组4-i是根据预定的关联功能AF执行的。
图11示出了如通过本发明第二方面提供的、通过带有端口的装置的存储系统高效缓冲数据的方法所采用的用于执行关联功能AF的一种可能实现方式。所述关联功能AF是写入请求WR与写入访问中可写入至的可用存储器组之间的匹配算法。
从图11可见,在步骤S11-1中,在每个时钟周期内,首先检查是否有针对所述存储系统1中所述控制逻辑2的读取请求RR。如果有读取请求RR,则所述控制逻辑2会在步骤S11-2中选择进行读取操作所需的存储器组。
然后,在步骤S11-3中,所述控制逻辑2检查是否还有写入请求WR。如果有写入请求WR,则所述控制逻辑2会在步骤S11-4中按存储器组占用率的顺序列出未被读取访问占用的所有可用存储器组4-i。所述控制逻辑2基于存储器组的占用率,按占用率最小的存储器组至占用率最大的存储器组的顺序,对用于写入访问的所有可用存储器组进行排序。
进一步,在步骤S11-5中,所述控制逻辑2从占用率最小的存储器组开始,将写入请求WR关联至可用的存储器组4-i。进一步,在步骤S11-6中,将选定的存储器组4-i从用于在各自的时钟周期内进行写入访问的可能存储器组列表中去除。进一步,在步骤S11-7中,将选定的写入请求WR去除。如图11所示,对所有写入请求WR执行这些步骤。图11实现方式所示的关联功能AF用于将写入访问统一分发至所述共享存储器3中的不同存储器组4-i,它进一步最小化输入端口与所述共享存储器3中任何存储器组4-i之间的关联关系。所述关联功能AF随时最小化存储器组4-i的存储占用率的差值。
图12示出了用于说明具有4+1个存储器组且进行非随机选择存储器组的存储系统1的模拟结果的示意图。该模拟是针对具有四个写入端口和一个读取端口的存储系统1进行的。在适用的时钟信号CLK的每个时钟周期内,该模拟包括四次写入访问和一次读取访问。由于写入带宽是读取带宽的四倍,所以该模拟会导致存储器组4-i的占用率增加。在图12所示的模拟中,存储器组是基于写入端口选择的。对写入端口和存储器组4-i进行匹配,图12所示示意图中的y轴表示存储占用率,x轴表示时间。从图12可见,存储器组4-i的占用率之间的差值与所述存储器组的占用率高度相关。图12所示图表中的“Diff”线表示最大存储器组占用率与最小存储器组占用率之间的差值。例如,如果存储器组4-i的最大存储容量包括800单元或存储单元,理论上最大可用的存储容量MS为:MS=(n+1)x B。相应地,在该实现方式中,存储容量MS为MS=(4+1)x800单元=4000单元。每个单元由所述存储器组4-i的一个存储单元组成。
从图12所示的模拟结果可见,在存储占用率约为800单元时,最大存储占用率与最小存储占用率之间的差值“Diff”约包括400单元。实际可用的存储容量由MS=(n+1)x(B–Min)得出,因此,实际可用的存储容量减少约2000单元,
其中,Min表示未全部占满的存储器组之间的最小存储器组占用率MBOL,这样,实际可用的存储容量MS=(4+1)x(800单元–400单元)=5x400单元=2000单元。在该特定的示例中,这相当于约减少所分配存储器的50%。图12示出了不带控制逻辑2的存储系统1的模拟结果,其中,所述控制逻辑2控制每个存储器组的存储器组占用率MBOL,以使所述存储器组4-i的存储器组占用率MBOL之间的差值最小化。
相反,图13示出了本发明第一方面提供的存储系统1的一种可能实现方式所述的、用于说明具有4+1个存储器组以及用于控制存储器组占用率MBOL的控制逻辑2的存储系统1的模拟结果示意图。在图13所示的模拟中,通过随机选择存储器组,实现选择进行写入访问的存储器组。图13所示的模拟结果清楚示出了所述存储的利用率有了很大的提高。在所示的模拟中,表示最大存储占用率和最小存储占用率之间的差值的差额值“Diff”平均为20,这使得存储器的最大利用率为3900单元(B=800单元,Diff=20,n+1=5)。这相当于仅减少4+1存储系统1中所分配存储器的2.5%,其中,每个存储器组4-i的最大存储容量为800单元。
本发明第一方面提供的存储系统1与本发明第二方面提供的数据缓冲方法使数据存储非常高效。
本发明提供的存储系统1适用于包括队列系统的任何交换机。在交换机中,来自多个端口的输入流量有可能被引导至特定的输出端口。因此,与该输出端口的输出速率相比,其队列需以非常高的速率吸收上述输入流量。本发明提供的存储系统1能够以比从存储器中读取数据更高的速率推动存储数据。输入速率与输出速率比可以为n:1,其中,所述存储系统1中存储器组4-i的数量为n+1。
本发明第一方面提供的存储系统1可用于广泛范围内带有端口的装置。在一种可能的实现方式中,本发明第一方面提供的存储系统1被集成到网桥中。在又一种可能的实现方式中,本发明第一方面提供的存储系统1用在网络交换机中。在本发明第一方面提供的存储系统1的又一种可能实现方式中,所述存储系统1用在网络路由器中。在本发明第一方面提供的存储系统1的另一种可能实现方式中,所述存储系统1组成队列引擎如图8、9示意性应用所示的队列引擎8的一部分。
采用本发明提供的存储系统1的交换设备可用于交换任何类型的数据,尤其是数据包,还可以是连续的数据流量。在一种可能的实现方式中,所述交换设备可包括运行为写入端口或输入端口以及读取端口或输出端口的定向端口。如果至少有一个存储器组4-i被全部占满,则认为本发明第一方面提供的存储系统1的所述共享存储器3已满。在一种可能的实现方式中,如果如各存储器组4-i的对应占用率计数器OLC所指示,至少有一个存储器组4-i被完全占满,则所述控制逻辑2可以设置对应的标志,表明所述共享存储器3已满,且可将所述标志传输到更高层,以便进行进一步评估。在图5所示的实现方式中,所述存储系统1包括控制逻辑2以及一个带有n+1个存储器组4-i的共享存储器3。在另一种可能的实现方式中,所述控制逻辑2可以连接到一个以上的共享存储器3。例如,所述控制逻辑2可以连接到图5所示的共享存储器3,还可以连接到拥塞管理块,该拥塞管理块能够在拥塞的情况下智能地丢弃流量,即丢弃优先级低的流量,而优先级高的流量将由所述存储系统接受。
图5所示的存储系统1还有其他可能的实现方式和实施例。例如,在另一种可能的实现方式中,占用率计数器OLC不在所述控制逻辑2中实现,而在各自的存储器组4-i中实现。在该实现方式中,所述控制逻辑2具有通过接口访问所述共享存储器3中各存储器组4-i的占用率计数器OLC的权限。在图5所示的实现方式中,所述控制逻辑2从外部时钟信号源获得所述时钟信号CLK。在另一种可选的实现方式中,所述控制逻辑2包括集成式时钟信号生成器,用于生成所述时钟信号CLK。在图6所示的一种可能实现方式中,所述控制逻辑2的所述控制逻辑核心2A包括预先配置的关联功能AF。在另一种可能的实现方式中,所述关联功能AF可在所述存储系统1的运行期间通过接口进行配置或重新配置。所述关联功能AF可用于最小化来自输入端口的以及响应所述控制逻辑2为响应写入请求WR而接收的写入请求WR的存储器组4-i的数据的限定符之间的关联关系。在一种可能的实现方式中,这些限定符还可通过接口进行改写和配置。在一种可能的实现方式中,所述控制逻辑2包括执行单元,用于执行带有程序代码的计算计程序,其中,所述程序代码用于执行本发明第二方面提供的方法。所述代码可存储在程序存储器中,尤其是存储在所述控制逻辑2的只读存储器中。在另一种实现方式中,所述控制逻辑2还可以通过接口从外部程序存储器中读取所述程序代码。如图5或图6所示的存储系统1可通过VLSI设计实现。就硅片面积和功耗而言,所述存储系统1可以最低的成本实现,所述存储系统1还支持在每个时钟周期内进行单次读取和多次写入。在一种可能的实现方式中,可使用VLSI设计中的单端口SRAM块实现所述存储系统1。
Claims (13)
1.一种存储系统(1),其特征在于,包括:
控制逻辑(2),用于在所述存储系统(1)中时钟信号CLK的时钟周期内,从输入端口接收n个写入请求WR,从输出端口接收一个读取请求RR,其中,n为自然数;
共享存储器(3)中的n+1个存储器组(4),用于存储数据,
其中,所述控制逻辑(2)用于控制每个存储器组(4)的存储器组占用率MBOL,从而使所述存储器组(4)的存储器组占用率MBOL之间的差值最小化。
2.根据权利要求1所述的存储系统,其特征在于,
所述控制逻辑(2)用于根据预定的关联功能AF将来自输入端口的写入请求WR分发至所述存储系统(1)中所有可用的存储器组(4),以实现统一分发对所述存储器组(4)的写入访问。
3.根据权利要求1所述的存储系统,其特征在于,
将来自所述输入端口的所述写入请求WR分发至所述共享存储器(3)中所有可用的存储器组(4),以保持随时统一分发所述存储器组(4)的所述存储器组占用率MBOL。
4.根据权利要求1所述的存储系统,其特征在于,
所述控制逻辑(2)包括与每个存储器组(4)对应的一个占用率计数器OLC,用于监控各存储器组(4)的存储器组占用率MBOL。
5.根据权利要求3所述的存储系统,其特征在于,
所述共享存储器(3)中所述其中一个存储器组(4)的所述占用率计数器OLC随着每次写操作增加,所述写操作用于将数据写入至相应的存储器组(4)以响应所述控制逻辑(2)从所述其中一个输入端口接收到的写入请求WR。
6.根据权利要求4所述的存储系统,其特征在于,
所述共享存储器(3)中所述其中一个存储器组(4)的所述占用率计数器OLC随着每次读操作减少,所属读操作用于从相应存储器组(4)中读取数据以响应所述控制逻辑(2)从所述输出端口接收到的读取请求RR。
7.根据前述权利要求1至6任一项所述的存储系统,其特征在于,
由分别具有预定最大存储容量B的n+1个存储器组(4)组成的所述存储系统(1)的存储容量通过以下等式得出,
如果所述存储系统(1)中的存储器组(4)均未被全部占用,则所述存储系统(1)的实际可用的存储容量为:
(n+1)*B,
如果至少有一个存储器组(4)被全部占用,且在所述时钟信号CLK的当前时钟周期内,写入请求WR的数量小于或等于所述存储器组(4)的数量n+1与准备写入但被全部占用的存储器组(4)的数量之间的差值,即
#(WR)≤(n+1)–#(准备写入但已满的存储器组数量),
则所述存储系统(1)的实际可用的存储容量为:
(n+1)*(B–Min),
其中,Min为未全部占用的存储器组(4)之间的最小存储器组占用率MBOL。
8.根据权利要求1至6任一项所述的存储系统,其特征在于,
所述关联功能AF用于最小化接收所述写入请求WR的所述输入端口与由响应所述写入请求WR的所述控制逻辑(2)控制的存储器组(4)之间的关联关系。
9.根据前述权利要求1至6任一项所述的存储系统,其特征在于,
所述控制逻辑(2)使用的所述关联功能AF包括随机关联功能,
其中,所述控制逻辑(2)用于基于存储器组(4)的存储器组占用率MBOL,对将数据写入至的所述存储器组(4)中所有可用的存储器组(4)进行排序,并将所述控制逻辑(2)接收到的所述写入请求WR以随机方式关联至以具有最低存储器组占用率MBOL的存储器组(4)开始的所述所有可用的存储器组(4)。
10.根据权利要求9所述的存储系统,其特征在于,
所述控制逻辑(2)使用的所述关联功能AF包括随机关联历史记录的功能,
其中,所述控制逻辑(2)还用于保留来自每个输入端口的写入请求WR的历史记录,并在所述存储器组占用率MBOL进行排序的所述存储器组(4)中,以优先的方式设置历史记录中未被标记的存储器组。
11.一种用于装置中存储系统(1)的高效缓冲数据的方法,所述装置具有端口,其特征在于,包括以下步骤:
在所述装置中时钟信号CLK的时钟周期内,从输入端口接收多个写入请求WR,从输出端口接收一个读取请求RR;
将所述写入请求WR分发至所述存储系统(1)的存储器组,从而使所述存储器组(4)之间的存储器组占用率MBOL差值最小化。
12.根据权利要求11所述的方法,其特征在于,
所述将所述写入请求WR分发至所述存储器组(4)是根据预定的关联功能AF执行的。
13.一种存储装置,其特征在于,包括预定数量的N个端口和权利要求1所述的存储系统(1)。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2011/079329 WO2013033882A1 (en) | 2011-09-05 | 2011-09-05 | A method and apparatus for storing data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103827836A CN103827836A (zh) | 2014-05-28 |
CN103827836B true CN103827836B (zh) | 2017-02-01 |
Family
ID=47831426
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180073248.5A Expired - Fee Related CN103827836B (zh) | 2011-09-05 | 2011-09-05 | 存储数据的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9281053B2 (zh) |
EP (1) | EP2754050B1 (zh) |
CN (1) | CN103827836B (zh) |
WO (1) | WO2013033882A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103955436B (zh) * | 2014-04-30 | 2018-01-16 | 华为技术有限公司 | 一种数据处理装置和终端 |
US10554572B1 (en) * | 2016-02-19 | 2020-02-04 | Innovium, Inc. | Scalable ingress arbitration for merging control and payload |
US10678718B2 (en) * | 2018-01-16 | 2020-06-09 | Marvell Israel (M.I.S.L) Ltd. | Network device and method of operation |
US10581759B1 (en) | 2018-07-12 | 2020-03-03 | Innovium, Inc. | Sharing packet processing resources |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6657955B1 (en) * | 1999-05-27 | 2003-12-02 | Alcatel Canada Inc. | Buffering system employing per traffic flow accounting congestion control |
CN1677958A (zh) * | 2004-03-29 | 2005-10-05 | 卓联半导体股份有限公司 | 使用双数率同步动态ram的紧凑包交换节点存储体系结构 |
US7594048B1 (en) * | 2007-08-14 | 2009-09-22 | Xilinx, Inc. | Determining transit time across an asynchronous FIFO memory by measuring fractional occupancy |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1980001421A1 (en) * | 1979-01-09 | 1980-07-10 | Sullivan Computer | Shared memory computer method and apparatus |
DE3853363T2 (de) * | 1988-12-23 | 1995-09-28 | Ibm | Lastausgleichstechnik in einem gemeinsamen Speicher mit verteilter Struktur. |
JP3443689B2 (ja) * | 1993-06-28 | 2003-09-08 | 日本テキサス・インスツルメンツ株式会社 | アービタ回路 |
US6144604A (en) * | 1999-11-12 | 2000-11-07 | Haller; Haggai Haim | Simultaneous addressing using single-port RAMs |
US20110113200A1 (en) * | 2009-11-10 | 2011-05-12 | Jaideep Moses | Methods and apparatuses for controlling cache occupancy rates |
WO2011075167A1 (en) * | 2009-12-15 | 2011-06-23 | Memoir Systems,Inc. | System and method for reduced latency caching |
US8959291B2 (en) * | 2010-06-04 | 2015-02-17 | Lsi Corporation | Two-port memory capable of simultaneous read and write |
-
2011
- 2011-09-05 WO PCT/CN2011/079329 patent/WO2013033882A1/en active Application Filing
- 2011-09-05 CN CN201180073248.5A patent/CN103827836B/zh not_active Expired - Fee Related
- 2011-09-05 EP EP11871959.0A patent/EP2754050B1/en not_active Not-in-force
-
2014
- 2014-03-05 US US14/198,195 patent/US9281053B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6657955B1 (en) * | 1999-05-27 | 2003-12-02 | Alcatel Canada Inc. | Buffering system employing per traffic flow accounting congestion control |
CN1677958A (zh) * | 2004-03-29 | 2005-10-05 | 卓联半导体股份有限公司 | 使用双数率同步动态ram的紧凑包交换节点存储体系结构 |
US7594048B1 (en) * | 2007-08-14 | 2009-09-22 | Xilinx, Inc. | Determining transit time across an asynchronous FIFO memory by measuring fractional occupancy |
Also Published As
Publication number | Publication date |
---|---|
US9281053B2 (en) | 2016-03-08 |
EP2754050A1 (en) | 2014-07-16 |
EP2754050A4 (en) | 2014-10-01 |
EP2754050B1 (en) | 2016-12-07 |
US20140185368A1 (en) | 2014-07-03 |
WO2013033882A1 (en) | 2013-03-14 |
CN103827836A (zh) | 2014-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101873253A (zh) | 带缓冲的纵横式交换机系统 | |
US7346067B2 (en) | High efficiency data buffering in a computer network device | |
CN1149223A (zh) | 具有可指定的多种分组丢失概率的Tbit/s级分组交换机 | |
EP1026856A2 (en) | Rate-controlled multi-class high-capacity packet switch | |
CN1149222A (zh) | 具有多信道广播带外控制的atm分组交换机 | |
CN103827836B (zh) | 存储数据的方法和装置 | |
CN101188599B (zh) | 发电厂电气监控前置系统负荷均衡设计的实现方法 | |
CN105577576A (zh) | 分布式交换机架构 | |
CN102111327B (zh) | 信元调度方法和系统 | |
CN101902390B (zh) | 一种单播和多播集成调度装置、交换系统及方法 | |
US20100067536A1 (en) | Multimodal Data Switch | |
CN105094751A (zh) | 一种用于流式数据并行处理的内存管理方法 | |
CN105656807A (zh) | 一种网络芯片多通道数据传输方法及传输装置 | |
US7675930B2 (en) | Chip circuit for combined and data compressed FIFO arbitration for a non-blocking switch | |
CN101222422A (zh) | 一种公平可扩展网络调度方法 | |
US7304949B2 (en) | Scalable link-level flow-control for a switching device | |
CN109218220A (zh) | 一种负载均衡的单组播业务混合交换方法 | |
CN101478495B (zh) | 流量限制方法和装置 | |
CN103117962A (zh) | 一种星载共享存储交换装置 | |
CN1406000A (zh) | 光突发包交换网络核心节点的信道调度器 | |
CN109495400A (zh) | 光纤网络交换机 | |
US8345701B1 (en) | Memory system for controlling distribution of packet data across a switch | |
CN101702784B (zh) | 光接入多用户居住单元嵌入式设备及多任务通信方法 | |
CN102291314B (zh) | 用于片上网络的有中心流控方法和装置 | |
CN1318980C (zh) | 多重处理环境中基于因果性的存储器访问排序 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170201 |
|
CF01 | Termination of patent right due to non-payment of annual fee |