IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
US-0320162
(2002-12-16)
|
등록번호 |
US-7254687
(2007-08-07)
|
발명자
/ 주소 |
- Jeter, Jr.,Robert E.
- Potter,Kenneth H.
|
출원인 / 주소 |
|
대리인 / 주소 |
|
인용정보 |
피인용 횟수 :
18 인용 특허 :
18 |
초록
▼
A technique for controlling access to resources that may be accessed by one or more entities in a system. According to the technique, an entity accesses a shared resource by issuing a request containing an identifier that identifies the resource and an operation that specifies an operation to be per
A technique for controlling access to resources that may be accessed by one or more entities in a system. According to the technique, an entity accesses a shared resource by issuing a request containing an identifier that identifies the resource and an operation that specifies an operation to be performed on the resource. The operation is compared with one or more outstanding operations associated with the shared resource to determine if the operation conflicts with one or more of the outstanding operations. If a conflict is detected, a guard value is applied to determine if a race condition could occur. If a race condition is detected, the operation is blocked; otherwise, the operation is allowed.
대표청구항
▼
What is claimed is: 1. A method for processing a request including an enqueue operation directed to a queue, the method comprising: comparing a memory address associated with the enqueue operation to one or more memory addresses associated with outstanding requests; in response to the memory addres
What is claimed is: 1. A method for processing a request including an enqueue operation directed to a queue, the method comprising: comparing a memory address associated with the enqueue operation to one or more memory addresses associated with outstanding requests; in response to the memory address associated with the enqueue operation matching one of the one or more memory addresses associated with outstanding dequeue requests, adding a guard value to the number of elements currently in the queue, to create a sum; comparing the sum to a maximum number of elements that can be placed in the queue; if the sum is greater than the maximum number of elements, detecting a race condition and preventing the enqueue operation from executing; and if the sum is less than the maximum number of elements, determining a race condition will not occur and allowing the enqueue operation. 2. The method of claim 1, further comprising: in response to the memory address associated with the enqueue operation not matching any of the one or more memory addresses associated with outstanding requests, setting the guard value to zero and then adding the guard value to the number of elements currently in the queue, to create the sum. 3. The method of claim 1, further comprising: adding the guard value and the number of elements currently in the queue to the number of elements to be enqueued by the request, to create the sum. 4. The method of claim 3, further comprising: providing a queue descriptor table that includes entries for storing the guard value, the number of elements currently in the queue, and the maximum number of elements that can be placed in the queue. 5. A method for processing a request including a dequeue operation directed to a queue, the method comprising: comparing a memory address associated with the dequeue operation to one or more memory addresses associated with outstanding requests; in response to the memory address of the dequeue operation matching one of the one or more memory addresses associated with outstanding enqueue requests, adding a guard value to the number of elements to be dequeued by the request, to create a sum; comparing the sum to the number of elements currently in the queue; if the sum is greater than the number of elements currently in the queue, detecting a race condition and preventing the dequeue operation from executing; and if the sum is less than the number of elements currently in the queue, determining a race condition will not occur and allowing the dequeue operation. 6. The method of claim 5, further comprising: in response to the memory address associated with the dequeue operation not matching any of the one or more memory addresses associated with outstanding requests, setting the guard value to zero and then adding the guard value to the number of elements to be dequeued by the request, to create the sum. 7. The method of claim 5 further comprising: providing a queue descriptor table that includes entries for storing the guard value and the number of elements currently in the queue. 8. An apparatus for processing a request including an enqueue operation directed to a queue, the apparatus comprising: compare logic configured to compare a memory address associated with the enqueue operation to one or more memory addresses associated with outstanding requests; a memory controller configured to, in response to the compare logic signaling that the memory address associated with the enqueue operation matches one of the one or more memory addresses associated with outstanding dequeue requests, add a guard value to the number of elements currently in the queue, to create a sum; and the memory controller configured to compare the sum to a maximum number of elements that can be placed in the queue, and if the sum is greater than the maximum number of elements, to detect a race condition and prevent the enqueue operation from executing, and if the sum is less than the maximum number of elements, to determine a race condition will not occur and allow the enqueue operation. 9. The apparatus of claim 8 wherein the memory controller adds the guard value and the number of elements currently in the queue to the number of elements to be enqueued by the request, to create the sum. 10. The apparatus of claim 9, further comprising: a queue descriptor table that includes entries for storing the guard value, the number of elements currently in the queue, and the maximum number of elements that can be placed in the queue. 11. An apparatus for processing a request including a dequeue operation directed to a queue, the apparatus comprising: compare logic configured to compare a memory address associated with the dequeue operation to one or more memory addresses associated with outstanding requests; a memory controller configured to, in response to the compare logic signaling the memory address associated with the dequeue operation matches one of the one or more memory addresses associated with outstanding enqueue requests, add a guard value to the number of elements to be dequeued by the request, to create a sum; and the memory controller further configured to compare the sum to the number of elements currently in the queue, and if the sum is greater than the number of elements currently in the queue, detect a race condition and prevent the dequeue operation from executing, and if the sum is less than the number of elements currently in the queue, determine a race condition will not occur and allow the dequeue operation. 12. The apparatus of claim 11 further comprising: a queue descriptor table that includes entries for storing the guard value and the number of elements currently in the queue. 13. An apparatus for processing a request including an enqueue operation directed to a queue, the apparatus comprising: means for comparing a memory address associated with the enqueue operation to one or more memory addresses associated with outstanding requests; means for adding a guard value to the number of elements currently in the queue to create a sum, in response to the memory address associated with the enqueue operation matching one of the one or more memory addresses associated with outstanding dequeue requests; means for comparing the sum to a maximum number of elements that can be placed in the queue; means for detecting a race condition and preventing the enqueue operation from executing, if the sum is greater than the maximum number of elements; and means for determining a race condition will not occur and allowing the enqueue operation, if the sum is less than the maximum number of elements. 14. The apparatus of claim 13, further comprising: means for setting the guard value to zero and then adding the guard value to the number of elements currently in the queue, to create the sum, in response to the memory address associated with the enqueue operation not matching any of the one or more memory addresses associated with outstanding requests. 15. The apparatus of claim 13, further comprising: means for adding the guard value and the number of elements currently in the queue to the number of elements to be enqueued by the request, to create the sum. 16. The apparatus of claim 15, further comprising: means for storing the guard value, the number of elements currently in the queue, and the maximum number of elements that can be placed in the queue. 17. An apparatus for processing a request including a dequeue operation directed to a queue, the apparatus comprising: means for comparing a memory address associated with the dequeue operation to one or more memory addresses associated with outstanding requests; means for adding a guard value to the number of elements to be dequeued by the request to create a sum, in response to the memory address of the dequeue operation matching one of the one or more memory addresses associated with an outstanding enqueue requests; means for comparing the sum to the number of elements currently in the queue; means for detecting a race condition and preventing the dequeue operation from executing, if the sum is greater than the number of elements currently in the queue; and means for determining a race condition will not occur and allowing the dequeue operation if the sum is less than the number of elements currently in the queue. 18. The apparatus of claim 17, further comprising: means for setting the guard value to zero and then adding the guard value to the number of elements to be dequeued by the request, to create the sum, in response to the memory address associated with the dequeue operation not matching any of the one or more memory addresses associated with outstanding requests. 19. The apparatus of claim 17 further comprising: means for storing the guard value and the number of elements currently in the queue. 20. A computer-readable medium comprising program instructions for execution on a processor, the program instructions for performing the steps of: comparing a memory address associated with an enqueue operation on a queue to one or more memory addresses associated with outstanding requests; in response to the memory address associated with the enqueue operation matching one of the one or more memory addresses associated with outstanding dequeue requests, adding a guard value to the number of elements currently in the queue, to create a sum; comparing the sum to a maximum number of elements that can be placed in the queue; if the sum is greater than the maximum number of elements, detecting a race condition and preventing the enqueue operation from executing; and if the sum is less than the maximum number of elements, determining a race condition will not occur and allowing the enqueue operation. 21. A computer-readable medium comprising program instructions for execution on a processor, the program instructions for performing the steps of: comparing a memory address associated with a dequeue operation on a queue to one or more memory addresses associated with outstanding requests; in response to the memory address of the dequeue operation matching one of the one or more memory addresses associated with outstanding enqueue requests, adding a guard value to the number of elements to be dequeued by the request, to create a sum; comparing the sum to the number of elements currently in the queue; if the sum is greater than the number of elements currently in the queue, detecting a race condition and preventing the dequeue operation from executing; and if the sum is less than the number of elements currently in the queue, determining a race condition will not occur and allowing the dequeue operation. 22. A method comprising: comparing a request including an enqueue operation to one or more outstanding requests in a queue and to determine if the request conflicts with the one or more outstanding requests in the queue; in response to the request conflicting with the one or more outstanding requests in the queue, adding a guard value to the number of elements currently in the queue, to create a sum; comparing the sum to a maximum number of elements that can be placed in the queue; if the sum is greater than the maximum number of elements, determining a race condition will occur and preventing the enqueue operation from executing; and if the sum is less than the maximum number of elements, determining a race condition will not occur and allowing the enqueue operation. 23. The method of claim 22, further comprising: in response to the request not conflicting with the one or more outstanding requests in the queue, setting the guard value to zero and then adding the guard value to the number of elements currently in the queue, to create the sum. 24. The method of claim 22, further comprising: adding the guard value and the number of elements currently in the queue to the number of elements to be enqueued by the request, to create the sum. 25. The method of claim 24, further comprising: using a queue descriptor table to store the guard value, the number of elements currently in the queue, and the maximum number of elements that can be placed in the queue. 26. A method comprising: comparing a request including a dequeue operation to one or more outstanding requests in a queue and to determine if the request conflicts with the one or more outstanding requests in the queue; in response to the request conflicting with the one or more outstanding requests in the queue, adding a guard value to the number of elements to be dequeued by the request, to create a sum; comparing the sum to the number of elements currently in the queue; if the sum is greater than the number of elements currently in the queue, determining a race condition will occur and preventing the dequeue operation from executing; and if the sum is less than the number of elements currently in the queue, determining a race condition will not occur and allowing the dequeue operation. 27. The method of claim 26, further comprising: in response to the request not conflicting with the one or more outstanding requests in the queue, setting the guard value to zero and then adding the guard value to the number of elements to be dequeued by the request, to create the sum. 28. The method of claim 26 further comprising: using a queue descriptor table to store the guard value and the number of elements currently in the queue. 29. An apparatus comprising: compare logic configured to compare a request including an enqueue operation to one or more outstanding requests in a queue and to determine if the request conflicts with the one or more outstanding requests in the queue; a memory controller configured to, in response to the compare logic determining the request conflicts, add a guard value to the number of elements currently in the queue, to create a sum; and the memory controller configured to compare the sum to a maximum number of elements that can be placed in the queue, and if the sum is greater than the maximum number of elements, to determine a race condition will occur and prevent the enqueue operation from executing, and if the sum is less than the maximum number of elements, to determine a race condition will not occur and allow the enqueue operation. 30. The apparatus of claim 22 wherein the memory controller adds the guard value and the number of elements currently in the queue to the number of elements to be enqueued by the request, to create the sum. 31. The apparatus of claim 30 further comprising: a queue descriptor table that includes entries for storing the guard value, the number of elements currently in the queue, and the maximum number of elements that can be placed in the queue. 32. An apparatus comprising: compare logic configured to compare a request including an dequeue operation to one or more outstanding requests in a queue and to determine if the request conflicts with the one or more outstanding requests in the queue; a memory controller configured to, in response to the compare logic determining the request conflicts, add a guard value to the number of elements to be dequeued by the request, to create a sum; and the memory controller further configured to compare the sum to the number of elements currently in the queue; and if the sum is greater than the number of elements currently in the queue, determine a race condition will occur and prevent the dequeue operation from executing, and if the sum is less than the number of elements currently in the queue, determine a race condition will not occur and allow the dequeue operation. 33. The apparatus of claim 32 further comprising: a queue descriptor table that includes entries for storing the guard value and the number of elements currently in the queue.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.