A general delay channel (delay cache) solution is widely applied in various application scenarios such as CPU design and cache. A basic idea is to put a releasable cache into a delay release channel, and when a delay expires, the cache is released and data is written into an off-chip memory. However, in network application, different flows have different bandwidths, the number of the flows is random, and the service processing time is uncertain, which result in that the general delay cache solution is not used any longer. Specifically, a requirement for the cache in the network application is that a flow greater than a configured bandwidth can surely hit the cache, which prevents high-bandwidth flows from accessing an off-chip memory frequently. This requires that every cache has approximately equal time from occupation to release (stay time), and in this period, if a same type of flow is received, the flow may hit the cache and is processed directly. In a mechanism used in a traditional delay cache, a cache that finishes processing enters a delay channel. Due to the uncertainty of the processing time, the stay time varies sharply between caches, thereby causing a certain impact on the network application.
USPTO Backgrounds
USPTO Backgrounds