A memory interface-oriented arbitration method

By detecting the memory interface status and configuring access strength, the problem that existing arbitration mechanisms cannot effectively arbitrate requests of different priorities is solved, enabling flexible arbitration during memory idle and busy times, and enhancing the functionality and real-time performance of the arbitration mechanism.

CN115391246BActive Publication Date: 2026-05-15HUNAN GREAT WALL GALAXY TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202211056575.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-08-30
Publication Date
2026-05-15
Estimated Expiration
2042-08-30

AI Technical Summary

Technical Problem

Existing arbitration mechanisms cannot effectively arbitrate requests of different priorities when memory is idle or busy, and a single arbitrator cannot support arbitration of transfer requests with variable priorities.

Method used

An arbitration method for memory interfaces is designed. By detecting the memory interface status and combining the host's built-in priority and the software-configurable access strength, arbitration is achieved for requests of different priorities. This includes prioritizing the highest priority request when the memory is idle, and controlling the response of other hosts or allowing higher priority requests to preempt the request when the memory is busy by using access strength and consecutive request blocking bits.

Benefits of technology

It achieves effective arbitration of requests with different priorities when the memory is idle or busy, enhances the functionality of the arbitration mechanism, and has real-time and flexible features, enabling it to quickly serve user needs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115391246B_ABST
    Figure CN115391246B_ABST
Patent Text Reader

Abstract

The application discloses a kind of arbitration methods for memory interface, including detecting the state of memory interface;If the state of memory interface is idle state, when receiving at least one host sent access request, according to the priority level of each host self, the request of highest priority is executed first, after executing current access request, if there is other access request, the state of memory interface is converted from idle state to non-idle state;If the state of memory interface is non-idle state, for each host's access request, in addition to the priority of host self, there is also a software configurable access intensity that drops with access time, according to the continuous request blocking bit selected by user, the request of host currently executed, the access intensity corresponding to access request blocks the response of other host and / or allows to be higher priority request of other host to be robbed. So that arbitration mechanism function is more powerful, with real-time, more easily meet user demand.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention belongs to the field of integrated circuit arbitration mechanisms, and in particular relates to an arbitration method for memory interfaces. Background Technology

[0002] Currently, there are several arbitration mechanisms on the market. The first is the common priority arbitration, which involves configuring a static priority for each port. When multiple requests with different priorities arrive at the same time, the one with the higher priority is transmitted first. When two requests with the same priority arrive simultaneously, the one connected to request 0 is assigned the higher priority. The second is first-come, first-served arbitration, which involves no priority; the request with the longest waiting time has the highest priority. When requests arrive simultaneously, the one with the lowest index has the highest priority. The third is two-layer arbitration, also known as equal-level fair arbitration. Each layer is equivalent to priority arbitration, but this priority is externally assigned. The second layer uses a first-come, first-served arbitration mechanism when requests have the same priority, and the internal priority is updated with each transmission. First-come, first-served arbitration has a lower frequency than priority arbitration, but it requires recording the arrival time of requests, is resource-intensive and complex, and multiple combinations of the above three arbitration mechanisms are needed to achieve a variable priority state.

[0003] Typical arbitrators only support round-robin arbitration and fixed-priority arbitration. A single arbitrator cannot support arbitration of transmission requests with variable priorities, nor can it arbitrate another higher-priority request during the transmission of a request. Therefore, there is an urgent need for an arbitration mechanism that can arbitrate requests of different priorities when memory is idle and when memory is busy, making the arbitration mechanism more powerful and supportive. Summary of the Invention

[0004] To address the above technical problems, this invention provides an arbitration method for memory interfaces.

[0005] The technical solution adopted by this invention to solve its technical problem is:

[0006] An arbitration method for a memory interface, characterized by comprising the following steps:

[0007] Step S100: Detect the state of the memory interface, wherein the state of the memory interface is idle or non-idle;

[0008] Step S200: If the memory interface is in an idle state, when an access request is received from at least one host, the priority level of each host is used to determine the priority. The request with the highest priority is executed first. After the current access request is executed, if there are other access requests, the state of the memory interface changes from idle to non-idle. Otherwise, after the current access request is executed, the state of the memory interface remains idle.

[0009] Step S300: If the memory interface is in a non-idle state, for each host's access request, in addition to the host's built-in priority, a software-configurable access strength that decreases with access time is also set. Based on the user-selected continuous request blocking bit, the currently executing host's request, and the access strength corresponding to the access request, the response of other hosts is blocked and / or the request is allowed to be interrupted by higher priority requests from other hosts.

[0010] Preferably, step S100 includes:

[0011] Step S210: Detect whether there are read requests and / or write requests in the memory;

[0012] Step S220: If no read or write requests are detected in the memory, the state of the memory interface is determined to be idle; otherwise, it is non-idle.

[0013] Preferably, step S300, based on the user-selected continuous request blocking bit, the request of the currently executing host, and the access strength corresponding to the access request, blocks the response of other hosts or allows it to be preempted by higher-priority requests from other hosts, includes:

[0014] When the user selects the continuous request blocking bit as 0, and a request A from a host is currently being executed, and the memory interface receives a higher priority access request B from another host, the memory access request will be changed from the currently executing request A to the higher priority request B from the other host. The currently executing request A will be executed first after the higher priority request B from the other host has been executed, regardless of the priority of the access request from the other host.

[0015] When the user selects the continuous request blocking bit as 1, and a request A from a host is currently being executed while other hosts are accessing it, a blocking signal will be sent to other hosts through the access strength that can be configured by the software. As the access time increases, the access strength of the currently executing host request A will decrease to a preset value until the currently executing host request A is interrupted by the highest priority request B from other hosts, and the memory will then respond to the highest priority request B from other hosts.

[0016] Preferably, when the user selects a continuous request blocking bit of 0, and a request A from a host is currently being executed, and the memory interface receives a higher-priority access request B from another host, the memory access request will be changed from the currently executing host's request A to the higher-priority request B from the other host. The currently executing host's request A will be executed first after the higher-priority request B from the other host has been completed, regardless of the priority of the other host's access request, including:

[0017] When a request A from a host is currently being executed, and the memory interface receives a higher-priority access request B from another host, the memory access request will be changed from the currently executing request A to the higher-priority request B from the other host, and the progress of the currently executing request A will be saved.

[0018] After a higher-priority request B on another host has been executed, the memory will prioritize executing the currently executing request A on the host based on the saved progress, regardless of the priority of other hosts.

[0019] Preferably, when the user selects the continuous request blocking bit as 1, the method further includes: when the currently executing request A on the host is interrupted by the highest priority request B on another host, the progress of the currently executing request A on the host is saved. When the currently executing request A on the host finishes executing the highest priority request B on another host, or when the access strength of the highest priority request B on another host drops to a preset value, the memory will prioritize continuing to execute the currently executing request A on the host according to the saved progress, regardless of the priority of other hosts; if the highest priority request B on another host has not finished, and the currently executing request A on the host continues to execute with the previous progress, as the access strength of the currently executing request A on the host decreases, the currently executing request A on the host will be interrupted again by the highest priority request B on another host, until the currently executing request A on the host or the highest priority request B on another host finishes executing, at which point the blocking of other host requests will be released.

[0020] Preferably, when the number of times the current host's request is executed reaches a preset number, it indicates that the access strength of the currently executing host request A has decreased to a preset value.

[0021] The aforementioned arbitration method for memory interfaces supports arbitration of requests from different hosts with different priorities when the memory bank is idle and when the memory bank is not idle. This makes the arbitration mechanism more powerful, real-time, and able to provide rapid service, making it easier to meet user needs. Attached Figure Description

[0022] Figure 1 This is a flowchart of an arbitration method for a memory interface according to the present invention. Detailed Implementation

[0023] To enable those skilled in the art to better understand the technical solution of the present invention, the present invention will be further described in detail below with reference to the accompanying drawings.

[0024] In one embodiment, such as Figure 1 As shown, an arbitration method for a memory interface includes the following steps:

[0025] Step S100: Detect the state of the memory interface, wherein the state of the memory interface is idle or non-idle.

[0026] In one embodiment, step S100 includes:

[0027] Step S210: Detect whether there are read requests and / or write requests in the memory;

[0028] Step S220: If no read or write requests are detected in the memory, the state of the memory interface is determined to be idle; otherwise, it is non-idle.

[0029] Step S200: If the memory interface is in an idle state, when an access request is received from at least one host, the request is judged according to the priority level of each host. The request with the highest priority is executed first. After the current access request is executed, if there are other access requests, the state of the memory interface changes from idle to non-idle. Otherwise, after the current access request is executed, the state of the memory interface remains idle.

[0030] Step S300: If the memory interface is in a non-idle state, for each host's access request, in addition to the host's built-in priority, a software-configurable access strength that decreases with access time is also set. Based on the user-selected continuous request blocking bit, the currently executing host's request, and the access strength corresponding to the access request, the response of other hosts is blocked and / or the request is allowed to be interrupted by higher priority requests from other hosts.

[0031] In one embodiment, step S300, which involves blocking responses from other hosts or allowing higher-priority requests from other hosts to preempt responses based on the user-selected continuous request blocking bit, the currently executing host's request, and the access strength corresponding to the access request, includes:

[0032] When the user selects the continuous request blocking bit as 0, and a request A from a host is currently being executed, and the memory interface receives a higher priority access request B from another host, the memory access request will be changed from the currently executing request A to the higher priority request B from the other host. The currently executing request A will be executed first after the higher priority request B from the other host has been executed, regardless of the priority of the access request from the other host.

[0033] When the user selects the continuous request blocking bit as 1, and a request A from a host is currently being executed while other hosts are accessing it, a blocking signal will be sent to other hosts through the access strength that can be configured by the software. As the access time increases, the access strength of the currently executing host request A will decrease to a preset value until the currently executing host request A is interrupted by the highest priority request B from other hosts, and the memory will then respond to the highest priority request B from other hosts.

[0034] Specifically, the corresponding continuous request blocking bit is selected according to user needs. This continuous request blocking bit, combined with access strength, blocks other responses. It can also be preempted by other hosts, ensuring that each host can access the memory, rather than the memory being continuously preempted by high-priority host requests. In this embodiment, the more progress a currently executing host's request makes, the lower its access strength becomes. When the number of times a currently executing host's request is executed reaches a preset number, it indicates that the access strength of currently executing host request A has decreased to a preset value.

[0035] In one embodiment, when the user-selected continuous request blocking bit is 0, and a request A from a host is currently being executed, and the memory interface receives a higher-priority access request B from another host, the memory access request will be changed from the currently executing host's request A to the higher-priority request B from the other host. The currently executing host's request A will be executed first after the higher-priority request B from the other host has been completed, regardless of the priority of the other host's access request, including:

[0036] When a request A from a host is currently being executed, and the memory interface receives a higher-priority access request B from another host, the memory access request will be changed from the currently executing request A to the higher-priority request B from the other host, and the progress of the currently executing request A will be saved.

[0037] After a higher-priority request B on another host has been executed, the memory will prioritize executing the currently executing request A on the host based on the saved progress, regardless of the priority of other hosts.

[0038] In one embodiment, when the user selects the continuous request blocking bit as 1, the method further includes: when the currently executing request A on the host is interrupted by the highest priority request B on another host, the progress of the currently executing request A on the host is saved. When the currently executing request A on the host finishes executing the highest priority request B on another host, or when the access strength of the highest priority request B on another host drops to a preset value, the memory will prioritize continuing to execute the currently executing request A on the host according to the saved progress, regardless of the priority of other hosts; if the highest priority request B on another host has not finished executing, and the currently executing request A on the host continues to execute with the previous progress, as the access strength of the currently executing request A on the host decreases, the currently executing request A on the host will be interrupted again by the highest priority request B on another host, until the currently executing request A on the host or the highest priority request B on another host finishes executing, at which point the blocking of other host requests will be released.

[0039] This invention designs an arbitration method for memory interfaces, supporting arbitration of requests of different priorities when the memory bank is idle or busy, making the arbitration mechanism more powerful. A single continuous request blocking bit is introduced into the global controller of the arbitration component to determine the arbitration mode of service requests. When this bit is 0, it indicates that the requester controls the component until a higher-priority request occurs; when a higher-priority request occurs, it is immediately interrupted. When this bit is 1, it indicates that when a higher-priority requester requests control of the component, the higher-priority request will only be allowed to respond when the access intensity of the currently accessing request decreases to a preset value.

[0040] The aforementioned arbitration method for memory interfaces supports arbitration of requests of different priorities when the memory bank is idle and when the memory bank is not idle. This makes the arbitration mechanism more powerful, real-time, and able to provide rapid service, making it easier to meet user needs.

[0041] The above provides a detailed description of an arbitration method for a memory interface provided by this invention. Specific examples have been used to illustrate the principles and implementation methods of this invention. The descriptions of the embodiments above are merely for the purpose of helping to understand the core ideas of this invention. It should be noted that those skilled in the art can make various improvements and modifications to this invention without departing from its principles, and these improvements and modifications also fall within the protection scope of the claims of this invention.

Claims

1. An arbitration method for a memory interface, characterized in that, The method includes the following steps: Step S100: Detect the state of the memory interface, wherein the state of the memory interface is idle or non-idle; Step S200: If the state of the memory interface is idle, when an access request is received from at least one host, the priority level of each host is used to determine the priority level. The request with the highest priority is executed first. After the current access request is executed, if there are other access requests, the state of the memory interface changes from idle to non-idle. Otherwise, after the current access request is executed, the state of the memory interface remains idle. Step S300: If the state of the memory interface is not idle, for each host's access request, in addition to the host's built-in priority, a software-configurable access strength that decreases over time is also set. Based on the user-selected continuous request blocking bit, the currently executing host's request, and the access strength corresponding to the access request, the response of other hosts is blocked and / or preemption by higher-priority requests from other hosts is allowed. Step S300, based on the user-selected continuous request blocking bit, the currently executing host's request, and the access strength corresponding to the access request, blocks the response of other hosts or allows preemption by higher-priority requests from other hosts, including: When the user selects the continuous request blocking bit as 0, and a request A from a host is currently being executed, and the memory interface receives a higher priority access request B from another host, the memory access request will be changed from the currently executing request A to the higher priority request B from the other host. The currently executing request A will be executed first after the higher priority request B from the other host has been executed, regardless of the priority of the other host's access request. When the user selects the continuous request blocking bit as 1, and a request A from a host is currently being executed while other hosts are accessing the site, a blocking signal will be sent to the other hosts through the access strength configurable by the software. As the access time increases, the access strength of the currently executing host request A will decrease to a preset value until the currently executing host request A is interrupted by the highest priority request B from the other hosts, and then the memory will respond to the highest priority request B from the other hosts.

2. The method according to claim 1, characterized in that, Step S100 includes: Step S210: Detect whether there are read requests and / or write requests in the memory; Step S220: If no read or write request is detected in the memory, the state of the memory interface is determined to be idle; otherwise, it is non-idle.

3. The method according to claim 2, characterized in that, When the user selects a continuous request blocking bit of 0, and a request A from a host is currently being executed, and the memory interface receives a higher-priority access request B from another host, the memory access request will be changed from the currently executing host's request A to the higher-priority request B from the other host. The currently executing host's request A will be executed first after the higher-priority request B from the other host has been completed, regardless of the priority of the other host's access request. This includes: When a request A from a host is currently being executed, and the memory interface receives a higher-priority access request B from another host, the memory access request will be changed from the currently executing request A to the higher-priority request B from the other host, and the progress of the currently executing request A will be saved. After the other host's higher-priority request B is completed, the memory will prioritize executing the currently executing host's request A according to the saved progress, regardless of the priority of the other hosts.

4. The method according to claim 2, characterized in that, When the user selects the continuous request blocking bit as 1, the following further applies: When the currently executing request A on the host is interrupted by the highest priority request B on another host, the progress of the currently executing request A on the host is saved. The currently executing request A on the host will continue to execute the currently executing request A on the host according to the saved progress when the highest priority request B on another host has finished executing, or when the access strength of the highest priority request B on another host drops to a preset value, regardless of the priority of other hosts. If the highest priority request B on another host has not finished executing, and the currently executing request A on the host continues to execute at its previous progress, as the access strength of the currently executing request A on the host decreases, the currently executing request A on the host will be interrupted again by the highest priority request B on another host. The blocking of other host requests will only be lifted when the currently executing request A on the host or the highest priority request B on another host finishes executing.

5. The method according to claim 4, characterized in that, When the number of times the current host's request is executed reaches the preset number, it indicates that the access strength of the currently executing host request A has decreased to the preset value.