Request access method and system for avoiding access conflict in short time
By dividing non-overlapping address intervals in the graphics processor and packaging requests, the problem of multiple threads repeatedly accessing the same cache block in a short time is solved, and the effect of reducing access conflicts and improving efficiency is achieved.
Patent Information
- Application Number
- CN202311698218.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-12-12
- Publication Date
- 2025-06-20
AI Technical Summary
In a graphics processor, multiple threads may repeatedly access the same cache block for a short period of time, resulting in access violations and reduced efficiency.
By dividing the address space requested to access into non-overlapping address intervals, and using the request processing module and the arbitration module to package requests for the same address interval into unique requests, the number of accesses to the cache block is reduced.
Significantly reduces the number of accesses to cache blocks, avoids access conflicts, and improves the efficiency of the graphics processor.
Smart Images

Figure CN120179374A_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the technical field of signal processing, and more specifically, relates to a request access method and system for avoiding access conflicts in a short period of time. Background Art
[0002] As a parallel processor, a Graphics Processing Unit (GPU) includes multiple cores, and these cores can execute multiple threads of the same program in parallel. In this design, multiple threads may request data from the same memory hierarchy, so there may be overlapping accesses to the same cache line. Summary of the Invention
[0003] In view of the above-mentioned defects or improvement requirements of the prior art, the present invention provides a request access method and system for avoiding access conflicts in a short period of time. When there is a situation where the same address range is repeatedly accessed within a short period (for example, several consecutive cycles), it can significantly reduce the number of accesses to cache blocks, and at the same time, while reducing the corresponding number of cache blocks, avoid access conflicts. It can be used in graphics technology and is widely used in scenarios where multiple threads request texture data or general computer buffer data.
[0004] To achieve the above object, according to one aspect of the present invention, a request access system is provided, including: multiple request modules, a crossbar switch, multiple request processing modules, multiple arbitration modules, and one or more cache blocks; The multiple request modules are used to send access requests; The crossbar switch is used to divide the address space of the request access into non-overlapping address ranges, and the multiple request processing modules correspond one-to-one to the non-overlapping address ranges divided by the crossbar switch; the crossbar switch is used to send the requests sent by the multiple request modules to the corresponding request processing modules according to the addresses to be accessed in the requests sent by the multiple request modules; The multiple request processing modules are used to collect the requests in their corresponding address ranges, and after dividing the collected requests according to the address information of the request access, pack the requests corresponding to the same address information into a unique request and output it; One or more arbitration modules correspond one-to-one to one or more cache blocks, and each arbitration module corresponds to multiple request processing modules, and is used to send the unique request output by one of its corresponding multiple request processing modules to its corresponding cache block; One or more cache blocks are used to make a response according to the received unique request.
[0005] In some embodiments, the request processing module is configured to store the address information to be accessed by a request and the request information corresponding to the address information; the request processing module can store multiple (M) pieces of address information, and for each piece of address information, the request processing module can store multiple (N) pieces of request information.
[0006] In some embodiments, the request processing module is configured to: after receiving a new request, check if there is a matching address information. If there is, and the number of request information corresponding to the address information has not reached the upper limit N, then store the request information of the new request into the first available position in the request processing module for storing the request information corresponding to the address information.
[0007] In some embodiments, the request processing module is configured to: after receiving a new request, check if there is a matching address information. If there is not, and the number of address information has not reached the upper limit M, then store the address information of the new request into the available position for storing address information, and store the request information of the new request into the first available position for storing the request information corresponding to the address information.
[0008] In some embodiments, the request processing module is configured to: after receiving a new request, check if there is a matching address information. If there is, and the number of request information corresponding to the address information has reached the upper limit N, then delete the address information and all the request information corresponding thereto, and then store the address information of the new request into the available position for storing address information, and store the request information of the new request into the first available position for storing request information.
[0009] In some embodiments, the request processing module is configured to: after receiving a new request, check if there is a matching address information. If there is not, and the number of address information has reached the upper limit M, then delete one piece of address information and the request information corresponding thereto, and then store the address information of the new request into the available position for storing address information, and store the request information of the new request into the first available position for storing request information.
[0010] In some embodiments, an address information and all the request information corresponding thereto are referred to as an entry. The request processing module is configured to: preferentially delete the earliest established entry; or, preferentially delete the entry with the most request information. When there are multiple entries with the most request information, preferentially delete the earliest established one among them.
[0011] In some embodiments, the request processing module is configured to: store the deleted request information, and output a uniquified request in units of all the request information corresponding to a single address information.
[0012] In some embodiments, the request processing module includes a first storage module, a second storage module, and a third storage module; the first storage module is used to store the address information to be accessed by the request, the second storage module is used to store the request information corresponding to the address information to be accessed by the request, and the third storage module is used to store the request information deleted from the second storage module.
[0013] In some embodiments, the deleted request information maintains its storage order in the second storage module in the third storage module; each cache block is used to return response data according to the storage order of the request information in the second storage module after receiving the uniquification request.
[0014] In some embodiments, the request processing module is further used to number the positions where the request information is stored in the third storage module, and store the request information deleted from the second storage module into the third storage module, so that each uniquification request includes all the request information corresponding to a single address information in the third storage module and its position number; each cache block is used to re-sort the response according to the position number of the request information in the uniquification request after receiving the uniquification request.
[0015] In some embodiments, the address information stored by the request processing module is the request address, and the matching address information refers to the address information that is the same as the new request address.
[0016] In some embodiments, the address information stored by the request processing module is the request address, and the matching address information refers to the address information whose predetermined number of high-order address bits is the same as the predetermined number of high-order address bits of the new request.
[0017] In some embodiments, the address information stored by the request processing module is the predetermined number of high-order address bits of the request address, and the matching address information refers to the address information whose predetermined number of high-order address bits is the same as the predetermined number of high-order address bits of the new request.
[0018] In some embodiments, the request information stored by the request processing module includes the request content, the request address, and the corresponding request module identity information.
[0019] In some embodiments, the request information stored by the request processing module includes the request content, the predetermined number of high-order address bits of the request address, and the corresponding request module identity information.
[0020] In some embodiments, the response is re-sorted according to the identity information of the request module.
[0021] In some embodiments, in the case of out-of-order return, the response is directly sent back to the request module according to the identity information of the request module.
[0022] According to another aspect of the present invention, there is provided a request access method, including: Dividing the address space to be accessed into non-overlapping address intervals; Sending multiple access requests; Receiving requests, and collecting requests corresponding to the same address interval according to the addresses to be accessed by the requests; After dividing the collected requests according to the address information to be accessed by the requests, packing the requests corresponding to the same address information into a unique request; Making a response according to the received unique request.
[0023] In some embodiments, dividing the collected requests according to the address information to be accessed by the requests includes: storing the address information to be accessed by the requests and the request information corresponding to the address information; wherein, each piece of address information can correspond to multiple pieces of request information.
[0024] In some embodiments, dividing the collected requests according to the address information to be accessed by the requests further includes: after receiving a new request, checking whether there is a matching address information. If there is, and the number of pieces of request information corresponding to the address information has not reached the upper limit N, storing the request information of the new request in the first empty position for storing the request information corresponding to the address information.
[0025] In some embodiments, dividing the collected requests according to the address information to be accessed by the requests further includes: after receiving a new request, checking whether there is a matching address information. If there is no such matching address information, and the number of pieces of address information has not reached the upper limit M, storing the address information of the new request in the empty position for storing address information, and storing the request information of the new request in the first empty position for storing the request information corresponding to the address information.
[0026] In some embodiments, dividing the collected requests according to the address information to be accessed by the requests further includes: after receiving a new request, checking whether there is a matching address information. If there is, and the number of pieces of request information corresponding to the address information has reached the upper limit N, deleting the address information and all the request information corresponding thereto, then storing the address information of the new request in the empty position for storing address information, and storing the request information of the new request in the first empty position for storing request information.
[0027] In some embodiments, dividing the collected requests according to the address information to be accessed by the requests further includes: after receiving a new request, checking whether there is a matching address information. If there is no such matching address information, and the number of pieces of address information has reached the upper limit M, deleting one piece of address information and the request information corresponding thereto, then storing the address information of the new request in the empty position for storing address information, and storing the request information of the new request in the first empty position for storing request information.
[0028] In some embodiments, packing requests corresponding to the same address information into a unique request includes: storing the deleted request information, and outputting the unique request in units of all request information corresponding to a single address information.
[0029] Generally speaking, compared with the prior art, the above technical solution conceived by the present invention has the following beneficial effects: identifying requests that access the same cache block within a short period of time. For example, when requests to access the same cache block appear in several consecutive cycles, by merging these requests and accessing the cache block once, the number of requests reaching the cache block can be significantly reduced, and while correspondingly reducing the number of cache blocks, access conflicts can be avoided. The present invention can be used in graphics technology. For example, during ray tracing, many threads need to repeatedly request data from the acceleration structure for traversal. The present invention can also be widely used in scenarios where multiple threads request texture data or general computer buffer data. BRIEF DESCRIPTION OF THE DRAWINGS
[0030] Figure 1 is a schematic structural diagram of a request access system; Figure 2 is a schematic structural diagram of a request access system for avoiding access conflicts within a short period of time according to an embodiment of the present invention; Figure 3 is a schematic flowchart of a request access method for avoiding access conflicts within a short period of time according to an embodiment of the present invention. DETAILED DESCRIPTION OF THE EMBODIMENTS
[0031] In order to make the objectives, technical solutions and advantages of the present invention clearer, the present invention will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present invention and are not used to limit the present invention. As those skilled in the art can recognize, the described embodiments can be modified in various different ways without departing from the spirit or scope of the present application. Therefore, the drawings and descriptions are considered to be exemplary in nature and not restrictive.
[0032] Figure 1 The shown request access system includes a request module, a crossbar, and cache blocks. The request module is connected to the cache blocks through the crossbar. In order to complete multiple requests in each cycle, the address space is divided into non-overlapping address ranges through hash operations, and the cache is divided into multiple cache blocks. Each cache block processes requests for an address range of the address space. Multiple request modules continuously send requests to read data from the cache hierarchy. Since any request module can access any address in the memory, similarly, any request module can access any cache block. Therefore, the crossbar is effectively used to enable any request module to access any cache block.
[0033] This structure has some defects. First, at least as many cache blocks as the number of request modules are required to ensure the efficiency of request processing. Although the cache space of the cache blocks is divided, there is duplicate management logic for each cache block, which will increase the area cost, and the higher the number of cache blocks, the higher the cost. Second, when multiple request modules access the same cache block, cache block conflicts will occur in the crossbar switch. Specifically, two request modules accessing the same cache block will cause a conflict, and only one of the request modules will be allowed to continue accessing, while the request of the other request module needs to be delayed until the first request is processed. Even with a good hash function, this situation cannot be avoided when the number of cache blocks is close to the number of request modules. When all request modules access the same data, these request modules will queue up to access a cache block in sequence, and the problem of access conflict is particularly prominent.
[0034] As Figure 2 shown, the request access system for avoiding access conflicts in a short time according to an embodiment of the present invention includes a plurality of request modules, a crossbar switch, a plurality of request processing modules, a plurality of arbitration modules, and a plurality of cache blocks. The request module is used to send an access request; the crossbar switch is used to divide the address space to be accessed by requests into non-overlapping address ranges, and send the request sent by the request module to the corresponding request processing module according to the address to be accessed in the request sent by the request module; the request processing modules correspond one-to-one to the non-overlapping address ranges divided by the crossbar switch, and are used to collect requests in its corresponding address range over time, and after dividing the collected requests according to the address information to be accessed, pack the requests corresponding to the same address information into a uniquified request (that is, one request) and pass it to the downstream module. A plurality of request processing modules correspond to one arbitration module, and the arbitration modules correspond one-to-one to the cache blocks, and are used to send the uniquified request output by one of its corresponding plurality of request processing modules to its corresponding cache block; the cache block is used to process requests in the corresponding address range of its corresponding plurality of request processing modules and make a response according to the received uniquified request.
[0035] In some embodiments, the request processing module includes a first storage module and a second storage module. The first storage module is used to store the address information to be accessed by the request, and the second storage module is used to store the request information corresponding to the address information. In some embodiments, the maximum number of address information that the first storage module can store is M. In some embodiments, for each address information, the maximum number of request information that the second storage module can store is N. In some embodiments, all request information corresponding to one address information is called a group, and one address information and its corresponding group are called an entry.
[0036] In some embodiments, the first storage module is a Context Addressable Memory (CAM), and the second storage module is a Random Access Memory (RAM).
[0037] In some embodiments, after receiving a new request, the request processing module searches in the first storage module to check if there is a matching address information. If there is, and the number of request information corresponding to this address information has not reached N, the request information is stored in the position corresponding to this address information in the second storage module. In some embodiments, the request processing module is used to count the request information corresponding to each address information and store the count value in the second storage module. In some embodiments, the request information is stored in the first available position corresponding to this address information in the second storage module in sequence, and the count value of the corresponding request information is incremented by 1.
[0038] In some embodiments, after receiving a new request, the request processing module searches in the first storage module to check if there is a matching address information. If there is, and the number of request information corresponding to this address information has reached N, the entry where this address information is located is deleted, and then a new entry is created at the position where the deleted entry is located in the first storage module and the second storage module.
[0039] In some embodiments, after receiving a new request, the request processing module searches in the first storage module to check if there is a matching address information. If there is no such matching address information, and there is an available position in the area of the first storage module where the address information is stored, a new entry is created. In some embodiments, after receiving a new request, the request processing module searches in the first storage module to check if there is a matching address information. If there is no such matching address information, and there is no available position in the area of the first storage module where the address information is stored, an entry is deleted, and then a new entry is created at the position where the deleted entry is located in the first storage module and the second storage module.
[0040] In some embodiments, creating a new entry includes: storing the address information of the new request in the available position in the area of the first storage module where the address information is stored, storing the request information of the new request in the first available position corresponding to this address information in the second storage module, and incrementing the count value of the corresponding request information by 1, that is, at this time, the count value of the request information is 1.
[0041] In some embodiments, a table entry is deleted according to the order in which the table entries are created. In some embodiments, preference is given to deleting the table entry for which the request information has reached the maximum quantity. In some embodiments, when there is no table entry for which the request information has reached the maximum quantity, preference is given to deleting the table entry with the most request information. In some embodiments, preference is given to deleting the table entry with the most request information; when there are multiple table entries with the most request information, preference is given to deleting the earliest created table entry among the table entries with the most request information.
[0042] In some embodiments, the request information includes the request content, the request address, and the corresponding request module identity information. In some embodiments, the request information included in one table entry has different request addresses. In some embodiments, the address information stored in the first storage module is the request address, and the matching address information refers to the address information that is the same as the new request address.
[0043] In some embodiments, the address information stored in the first storage module is the request address, and the matching address information refers to the address information for which a predetermined number of high-order address bits are the same as those of the new request. In some embodiments, the request information includes the request content, the request address, and the corresponding request module identity information. In other embodiments, the request information includes the request content, a predetermined number of high-order address bits of the request address, and the corresponding request module identity information, while the low-order address bits of the request address and the quantity of data requested are stored in the request content.
[0044] In some embodiments, the address information stored in the first storage module is a predetermined number of high-order address bits of the request address, and the matching address information refers to the address information for which a predetermined number of high-order address bits are the same as those of the new request. In some embodiments, the request information includes the request content, the request address, and the corresponding request module identity information. In other embodiments, the request information includes the request content, a predetermined number of high-order address bits of the request address, and the corresponding request module identity information, while the low-order address bits of the request address and the quantity of data requested are stored in the request content.
[0045] In some embodiments, the request processing module further includes a third storage module, and the groups in the deleted table entries are stored in the third storage module. In some embodiments, taking the groups in the third storage module as units, a uniquification request is sent downstream, that is, the uniquification request includes all the request information that constitutes a group.
[0046] In some embodiments, when the arbitration module receives unique requests simultaneously sent by multiple corresponding request processing modules, according to a predetermined rule, it selects one of the unique requests sent by the request processing modules and sends it to the corresponding cache block; otherwise, in the case where the requests are not sent simultaneously, the arbitration module directly sends the received unique request to the corresponding cache block.
[0047] In some embodiments, the third storage module is a First Input First Output (FIFO) memory, and all the request information in the unique request maintains the original storage order in the second storage module before. After the cache block receives the unique request, it returns the response data according to the original storage order of the request information in the unique request in the second storage module.
[0048] In some embodiments, the third storage module is a Random Access Memory (RAM). The positions storing the request information in the third storage module are numbered (ID). The request information deleted from the second storage module is stored in the third storage module, so that each unique request contains all the request information corresponding to a single address information in the third storage module and its position number. After the cache block receives the unique request, it re-orders the response according to the position number of the request information in the unique request.
[0049] In some embodiments, after the cache block returns the response data, the request processing module issues a unique request again to re-expand the response.
[0050] In some embodiments, there is one or more arbitration modules. Correspondingly, there is one or more cache blocks.
[0051] As Figure 2 shown, taking six request modules and six request processing modules as an example, assuming that each request processing module on average collects two requests from the request modules, the number of cache blocks is halved, each cache block corresponds to two request processing modules, and an arbitration module is added. The crossbar divides the address space accessed by the requests into six non-overlapping address ranges, and the six request processing modules correspond one-to-one to these six non-overlapping address ranges.
[0052] Taking the request processing module 201 as an example, the request processing module 201 includes an up and down addressable memory (CAM), a first random access memory (first RAM), and a second random access memory (second RAM). As time goes by, the request processing module 201 collects requests in its corresponding address range. The address information of the requests to be accessed is stored in the CAM, and the request information corresponding to the address information is stored in the first RAM. Referring to Table 1 below, the maximum number of address information that the CAM can store is 8, and the maximum number of request information that can be stored in the first RAM is 4, that is, one address information can correspond to at most 4 request information.
[0053] Table 1
[0054] After receiving a new request, the request processing module 201 will look up in the CAM to see if there is a matching address information. Suppose there is a matching address information 0x11111111. The request information is stored in the first empty position corresponding to this address information 0x11111111 in the first RAM, that is, the position corresponding to ID1, and the count value of the corresponding request information is incremented by 1, so that the value of Count is 2. Suppose there is a matching address information 0xFEFEFEFE. Since the number of request information corresponding to this address information has reached the maximum value of 4, the entry where this address information 0xFEFEFEFE is located is deleted, and then the address information and request information of the new request are stored in the position where this entry is located. Among them, the request information is stored in the position corresponding to ID0, and the value of Count is 1. Suppose there is no matching address information and the number of address information stored in the CAM has reached the maximum value of 8, then one entry is deleted from these 8 entries, for example, the entry with the most request information and the earliest establishment is deleted, for example, the entry where the address information 0xFEFEFEFE is located is deleted, and then the address information and request information of the new request are stored in the position where this entry is located.
[0055] The positions where the request information is stored in the second RAM are numbered, and the group in the deleted entry is stored in the second RAM. For example, the 4 request information corresponding to the address information 0xFEFEFEFE are stored in the second RAM, so that the unique request includes these 4 request information and their position numbers in the second RAM, and a unique request is sent to the downstream arbitration module 203. If the request processing module 205 does not send a unique request to the arbitration module 203 at the same time, the arbitration module 203 will send the unique request from the request processing module 201 to its corresponding cache block 207. The cache block 207 reorders the response according to the position numbers of the request information in the unique request, and finally returns the request result.
[0056] In an embodiment of the present invention, over time, request information corresponding to the same address information is collected. For each collected group, only one uniquification request is sent downstream. Therefore, when there are multiple request information in the group, the number of requests can be reduced. When there is a situation of repeated access to the same address range within a short period of time, this solution can significantly reduce the number of accesses to cache blocks, and its effectiveness can be adjusted by the size of the CAM.
[0057] As Figure 3 shown, the request access method for avoiding access conflicts within a short period of time in an embodiment of the present invention includes: Step S301: Divide the address space to be accessed by requests into non-overlapping address ranges; Step S303: Send multiple access requests; Step S305: Receive requests, and according to the addresses to be accessed by the requests, collect requests corresponding to the same address range; Step S307: After dividing the collected requests according to the address information to be accessed by the requests, pack the requests corresponding to the same address information into a uniquification request.
[0058] In some embodiments, dividing the collected requests according to the address information to be accessed by the requests includes: storing the address information to be accessed by the requests and the request information corresponding to the address information; wherein, each piece of address information can correspond to multiple pieces of request information.
[0059] In some embodiments, dividing the collected requests according to the address information to be accessed by the requests further includes: after receiving a new request, checking whether there is a matching address information. If there is, and the number of request information corresponding to the address information does not reach the upper limit N, store the request information of the new request in the first empty position for storing the request information corresponding to the address information.
[0060] In some embodiments, dividing the collected requests according to the address information to be accessed by the requests further includes: after receiving a new request, checking whether there is a matching address information. If there is no matching address information, and the number of address information does not reach the upper limit M, store the address information of the new request in the empty position for storing address information, and store the request information of the new request in the first empty position for storing the request information corresponding to the address information.
[0061] In some embodiments, dividing the collected requests according to the address information to be accessed by the requests further includes: after receiving a new request, checking whether there is a matching address information. If there is, and the number of request information corresponding to the address information reaches the upper limit N, delete the address information and all the request information corresponding thereto, then store the address information of the new request in the empty position for storing address information, and store the request information of the new request in the first empty position for storing request information.
[0062] In some embodiments, dividing the collected requests according to the address information accessed by the requests further includes: after receiving a new request, checking whether there is a matching address information. If not, and the number of address information reaches the upper limit M, then delete one address information and its corresponding request information, and then store the address information of the new request in the empty position for storing address information, and store the request information of the new request in the first empty position for storing request information.
[0063] In some embodiments, packaging the requests corresponding to the same address information into a unified request includes: storing the deleted request information, and taking all the request information corresponding to a single address information as a unit to output a unified request.
[0064] Step S309: Make a response according to the received unified request.
[0065] When the request access method of the embodiment of the present invention is further implemented, reference may be made to the description of the request access system in the foregoing embodiments, and it has the same beneficial effects, which will not be elaborated herein.
[0066] In the description of this specification, the description with reference to terms such as "one embodiment", "some embodiments", "example", "specific example", or "some examples" means that the specific features, structures, materials, or characteristics described in connection with the embodiment or example are included in at least one embodiment or example of the present application. Moreover, the specific features, structures, materials, or characteristics described may be combined in a suitable manner in any one or more embodiments or examples. In addition, without contradiction, those skilled in the art can combine and combine the different embodiments or examples described in this specification and the features of different embodiments or examples.
[0067] In addition, the terms "first" and "second" are only used for descriptive purposes, and cannot be understood as indicating or implying relative importance or implicitly specifying the quantity of the indicated technical features. Thus, the features defined with "first" and "second" may explicitly or implicitly include at least one of the features. In the description of the present application, "a plurality" means two or more, unless otherwise specifically defined.
[0068] Any process or method description shown in the flowchart or described in other ways herein can be understood as representing a module, segment, or part of code including one or more (two or more) executable instructions for implementing a specific logical function or process. And the scope of the preferred embodiments of the present application includes additional implementations, where the functions may be executed in a substantially simultaneous manner or in a reverse order according to the functions involved, rather than in the order shown or discussed.
[0069] The logic and / or steps represented in the flowchart or otherwise described herein, for example, can be considered as a definable sequence list of executable instructions for implementing logical functions, and can be specifically implemented in any computer-readable medium for use by an instruction execution system, apparatus, or device (such as a computer-based system, a system including a processor, or other systems that can fetch and execute instructions from the instruction execution system, apparatus, or device), or in combination with these instruction execution systems, apparatus, or devices.
[0070] It should be understood that each part of the present application can be implemented by hardware, software, firmware, or a combination thereof. In the above embodiments, multiple steps or methods can be implemented by software or firmware stored in a memory and executed by a suitable instruction execution system. All or part of the steps of the method in the above embodiments can be completed by a program instructing relevant hardware. This program can be stored in a computer-readable storage medium. When this program is executed, it includes one or a combination of the steps of the method embodiments.
[0071] In addition, each functional unit in various embodiments of the present application can be integrated into a processing module, or each unit can exist physically alone, or two or more units can be integrated into one module. The above integrated module can be implemented in the form of hardware or in the form of a software functional module. When the above integrated module is implemented in the form of a software functional module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. This storage medium can be a read-only memory, a magnetic disk, an optical disc, etc.
[0072] As described above, the above are only specific embodiments of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art within the technical scope disclosed in the present application can easily think of various changes or substitutions, and these should all be covered by the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.
Claims
1. A request access system, characterized in that, Comprising: A plurality of request modules, a crossbar switch, a plurality of request processing modules, one or more arbitration modules, and one or more cache blocks; The plurality of request modules are used for sending access requests; The crossbar switch is used for dividing the address space to be accessed by requests into non-overlapping address ranges, and the plurality of request processing modules correspond one-to-one with the non-overlapping address ranges divided by the crossbar switch; the crossbar switch is used for sending the requests sent by the plurality of request modules to the corresponding request processing modules according to the addresses to be accessed by the requests sent by the plurality of request modules; The plurality of request processing modules are used for collecting the requests in their corresponding address ranges, and after dividing the collected requests according to the address information to be accessed by the requests, packing the requests corresponding to the same address information into a unique request and outputting it; The one or more arbitration modules correspond one-to-one with the one or more cache blocks, and each arbitration module corresponds to a plurality of the request processing modules, and is used for sending the unique request output by one of the corresponding plurality of request processing modules to the corresponding cache block; The one or more cache blocks are used for making responses according to the received unique requests.
2. The request access system according to claim 1, characterized in that, The request processing module is used for storing the address information to be accessed by the request and the request information corresponding to the address information; the request processing module can store multiple pieces of address information, and for each piece of address information, the request processing module can store multiple pieces of request information.
3. The request access system according to claim 2, characterized in that, The request processing module is used for: after receiving a new request, checking whether there is a matching address information. If there is, and the number of the request information corresponding to the address information does not reach the upper limit N, storing the request information of the new request into the first empty position for storing the request information corresponding to the address information in the request processing module.
4. The request access system according to claim 2, characterized in that, The request processing module is used for: after receiving a new request, checking whether there is a matching address information. If there is not, and the number of the address information does not reach the upper limit M, storing the address information of the new request into the empty position for storing the address information, and storing the request information of the new request into the first empty position for storing the request information corresponding to the address information.
5. The request access system according to claim 2, characterized in that, The request processing module is used for: after receiving a new request, checking whether there is a matching address information. If there is, and the number of the request information corresponding to the address information reaches the upper limit N, deleting the address information and all the request information corresponding thereto, then storing the address information of the new request into the empty position for storing the address information, and storing the request information of the new request into the first empty position for storing the request information.
6. The request access system according to claim 2, characterized in that, The request processing module is used for: after receiving a new request, checking whether there is a matching address information. If there is not, and the number of the address information reaches the upper limit M, deleting one piece of address information and the request information corresponding thereto, then storing the address information of the new request into the empty position for storing the address information, and storing the request information of the new request into the first empty position for storing the request information.
7. The request access system according to claim 6, characterized in that, An address information and all its corresponding request information are referred to as an entry. The request processing module is configured to: preferentially delete the earliest established entry; or, preferentially delete the entry with the most request information, and when there are multiple entries with the most request information, preferentially delete the earliest established one among them.
8. The request access system according to any one of claims 5 to 7, characterized in that, The request processing module is configured to: store the deleted request information, and output a uniquified request in units of all the request information corresponding to a single address information.
9. The request access system according to claim 8, characterized in that, The request processing module includes a first storage module, a second storage module, and a third storage module; the first storage module is configured to store the address information to be accessed by a request, the second storage module is configured to store the request information corresponding to the address information to be accessed by a request, and the third storage module is configured to store the request information deleted from the second storage module.
10. The request access system according to claim 9, characterized in that, The deleted request information maintains its storage order in the second storage module in the third storage module; each cache block is configured to return response data according to the storage order of the request information in the second storage module after receiving a uniquified request.
11. The request access system according to claim 9, characterized in that, The request processing module is further configured to number the positions where the request information is stored in the third storage module, and store the request information deleted from the second storage module into the third storage module, so that each uniquified request includes all the request information corresponding to a single address information in the third storage module and its position number; each cache block is configured to reorder the response according to the position number of the request information in the uniquified request after receiving the uniquified request.
12. The request access system according to any one of claims 3 to 7, characterized in that, The address information stored by the request processing module is the requested address, and the matching address information refers to the address information that is the same as the new requested address. Alternatively, the address information stored by the request processing module is the requested address, and the matching address information refers to the address information whose predetermined number of high-order address bits is the same as the predetermined number of high-order address bits of the new request. Alternatively, the address information stored by the request processing module is the predetermined number of high-order address bits of the requested address, and the matching address information refers to the address information whose predetermined number of high-order address bits is the same as the predetermined number of high-order address bits of the new request.
13. The request access system according to any one of claims 2 to 7, characterized in that, The request information stored by the request processing module includes the request content, the requested address, and the corresponding request module identity information. Alternatively, the request information stored by the request processing module includes the request content, the predetermined number of high-order address bits of the requested address, and the corresponding request module identity information.
14. A request access method, characterized in that, Including: Dividing the address space to be accessed by requests into non-overlapping address ranges; Sending multiple access requests; Receiving a request, and collecting requests corresponding to the same address range according to the address to be accessed by the request; After dividing the collected requests according to the address information to be accessed by the requests, packing the requests corresponding to the same address information into a uniquified request; Making a response according to the received uniquified request.
15. The request access method according to claim 14, wherein, Dividing the collected requests according to the address information to be accessed by the requests includes: storing the address information to be accessed by the request and the request information corresponding to the address information; wherein, each address information can correspond to multiple request information.
16. The request access method according to claim 15, wherein, Dividing the collected requests according to the address information accessed by the requests further includes: after receiving a new request, checking whether there is a matching address information. If there is, and the number of request information corresponding to the address information does not reach the upper limit N, storing the request information of the new request in the first empty position for storing the request information corresponding to the address information.
17. The request access method according to claim 15, wherein, Dividing the collected requests according to the address information accessed by the requests further includes: after receiving a new request, checking whether there is a matching address information. If there is not, and the number of address information does not reach the upper limit M, storing the address information of the new request in the empty position for storing address information, and storing the request information of the new request in the first empty position for storing the request information corresponding to the address information.
18. The request access method according to claim 15, wherein, Dividing the collected requests according to the address information accessed by the requests further includes: after receiving a new request, checking whether there is a matching address information. If there is, and the number of request information corresponding to the address information reaches the upper limit N, deleting the address information and all the request information corresponding thereto, then storing the address information of the new request in the empty position for storing address information, and storing the request information of the new request in the first empty position for storing request information.
19. The request access method according to claim 15, wherein, Dividing the collected requests according to the address information accessed by the requests further includes: after receiving a new request, checking whether there is a matching address information. If there is not, and the number of address information reaches the upper limit M, deleting one address information and the request information corresponding thereto, then storing the address information of the new request in the empty position for storing address information, and storing the request information of the new request in the first empty position for storing request information.
20. The request access method according to claim 18 or 19, wherein, Packing the requests corresponding to the same address information into a unique request includes: storing the deleted request information, and outputting a unique request in units of all the request information corresponding to a single address information.