Embodiments relate to instruction filtering. An aspect includes a computer-implemented method for instruction filtering. The method includes detecting, by a processor, a tracked instruction in an instruction stream, and storing an instruction address of the tracked instruction in a tracking array ba
Embodiments relate to instruction filtering. An aspect includes a computer-implemented method for instruction filtering. The method includes detecting, by a processor, a tracked instruction in an instruction stream, and storing an instruction address of the tracked instruction in a tracking array based on detecting and executing the tracked instruction. The method also includes accessing the tracking array based on an address of instruction data of a subsequently fetched instruction to locate the instruction address of the tracked instruction in the tracking array as an indication of the tracked instruction. The method further includes marking, by the processor, instruction text of the subsequently fetched instruction to indicate that the subsequently fetched instruction is a previously executed tracked instruction based on the indication of the tracked instruction from the tracking array. The method additionally includes preventing an action of a tracked instruction logic block based on detecting the marked instruction text.
대표청구항▼
1. A computer-implemented method for branch prediction preload filtering, the method comprising: detecting, by a processor, a tracked instruction in an instruction stream;storing an instruction address of the tracked instruction in a tracking array based on detecting and executing the tracked instru
1. A computer-implemented method for branch prediction preload filtering, the method comprising: detecting, by a processor, a tracked instruction in an instruction stream;storing an instruction address of the tracked instruction in a tracking array based on detecting and executing the tracked instruction;accessing the tracking array based on an address of instruction data of a subsequently fetched instruction to locate the instruction address of the tracked instruction in the tracking array as an indication of the tracked instruction;marking, by the processor, instruction text of the subsequently fetched instruction to indicate that the subsequently fetched instruction is a previously executed tracked instruction based on the indication of the tracked instruction from the tracking array; andpreventing an action of a tracked instruction logic block based on detecting the marked instruction text. 2. The computer-implemented method of claim 1, wherein accessing of the tracking array is performed in parallel with accessing an instruction cache prior to instruction decoding of the subsequently fetched instruction. 3. The computer-implemented method of claim 1, further comprising: selecting entries to remove from the tracking array randomly based on detecting tracked instructions; andremoving the randomly selected entries from the tracking array. 4. The computer-implemented method of claim 1, wherein the tracked instruction is a branch prediction preload instruction, the tracking array is a branch prediction preload tracking array, the tracked instruction logic block is branch prediction logic, and the action is installation of a to be preloaded branch prediction to a branch predictor. 5. The computer-implemented method of claim 4, further comprising: checking a branch type of the to be preloaded branch prediction identified in the branch prediction preload instruction; andbased on determining that the branch type is a multi-target branch, the prevented action is preventing installation of the to be preloaded branch prediction to a least recently used position of the branch predictor, and instead forcing installation of the to be preloaded branch prediction into a predetermined set of the branch predictor. 6. The computer-implemented method of claim 5, wherein the branch predictor further comprises a branch target buffer and a branch target buffer preload table, and the method further comprises: preventing movement of an entry in the branch target buffer preload table to the branch target buffer based on determining that the branch type of the entry is the multi-target branch. 7. The computer-implemented method of claim 6, further comprising: determining that a branch alias exists at a location in the branch target buffer preload table where a multi-target branch is predicted but does not exist;storing an indication of the branch alias for the location in the branch target buffer preload table; andinvalidating an entry at the location in the branch target buffer preload table based on detecting the stored indication of the branch alias on a next multi-target branch prediction, and clearing the stored indication of the branch alias. 8. A computer program product for branch prediction preload filtering, the computer program product comprising: a tangible storage medium readable by a processing circuit including a branch target buffer and storing instructions for execution by the processing circuit for performing a method comprising:detecting, by the processing circuit, a tracked instruction in an instruction stream;storing an instruction address of the tracked instruction in a tracking array based on detecting and executing the tracked instruction;accessing the tracking array based on an address of instruction data of a subsequently fetched instruction to locate the instruction address of the tracked instruction in the tracking array as an indication of the tracked instruction;marking, by the processing circuit, instruction text of the subsequently fetched instruction to indicate that the subsequently fetched instruction is a previously executed tracked instruction based on the indication of the tracked instruction from the tracking array; andpreventing an action of a tracked instruction logic block based on detecting the marked instruction text. 9. The computer program product of claim 8, further comprising: selecting entries to remove from the tracking array randomly based on detecting tracked instructions; andremoving the randomly selected entries from the tracking array. 10. The computer program product of claim 8, wherein the tracked instruction is a branch prediction preload instruction, the tracking array is a branch prediction preload tracking array, the tracked instruction logic block is branch prediction logic, and the action is installation of a to be preloaded branch prediction to a branch predictor. 11. The computer program product of claim 10, further comprising: checking a branch type of the to be preloaded branch prediction identified in the branch prediction preload instruction; andbased on determining that the branch type is a multi-target branch, the prevented action is preventing installation of the to be preloaded branch prediction to a least recently used position of the branch predictor, and instead forcing installation of the to be preloaded branch prediction into a predetermined set of the branch predictor. 12. The computer program product of claim 11, wherein the branch predictor further comprises a branch target buffer and a branch target buffer preload table, and the method further comprises: preventing movement of an entry in the branch target buffer preload table to the branch target buffer based on determining that the branch type of the entry is the multi-target branch;determining that a branch alias exists at a location in the branch target buffer preload table where a multi-target branch is predicted but does not exist;storing an indication of the branch alias for the location in the branch target buffer preload table; andinvalidating an entry at the location in the branch target buffer preload table based on detecting the stored indication of the branch alias on a next multi-target branch prediction, and clearing the stored indication of the branch alias. 13. The computer program product of claim 8, wherein accessing of the tracking array is performed in parallel with accessing an instruction cache prior to instruction decoding of the subsequently fetched instruction. 14. The computer program product of claim 11, wherein the predetermined set of the branch predictor is determined based on one or more of: a predicted branch instruction address and a thread identifier. 15. The computer-implemented method of claim 5, wherein the predetermined set of the branch predictor is determined based on one or more of: a predicted branch instruction address and a thread identifier.
Bradford, Jeffrey P.; Doing, Richard W.; Eickemeyer, Richard J.; El-Essawy, Wael R.; Logan, Douglas R.; Sinharoy, Balaram; Speght, William E.; Zhang, Lixin, Data processing system, processor and method of data processing having improved branch target address cache.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.