发明名称 |
Store data forwarding with no memory model restrictions |
摘要 |
Embodiments relate to loading data in a pipelined microprocessor. An aspect includes issuing a load request that comprises a load address requiring at least one block of data the same size as a largest contiguous granularity of data returned from a cache. Another aspect includes determining that the load address matches at least one block address. Another aspect includes, based on determining that there is an address match, reading a data block from a buffer register and sending the data to satisfy the load request; comparing a unique set id of the data block to the set id of the matching address after sending the data block; based on determining that there is a set id match, continuing the load request, or, based on determining that there is not a set id match, setting a store-forwarding state of the matching address to no store-forwarding and rejecting the load request. |
申请公布号 |
US8984261(B2) |
申请公布日期 |
2015.03.17 |
申请号 |
US201314059673 |
申请日期 |
2013.10.22 |
申请人 |
International Business Machines Corporation |
发明人 |
Barrick Brian D.;Krumm Barry W.;Mitchell James R.;Nelson Bradley;Tsai Aaron;Shum Chung-Lung K.;Wood Michael H. |
分类号 |
G06F7/38;G06F9/00;G06F9/44;G06F13/00;G06F13/28;G06F12/08;G06F9/38 |
主分类号 |
G06F7/38 |
代理机构 |
Cantor Colburn LLP |
代理人 |
Cantor Colburn LLP ;McNamara Margaret |
主权项 |
1. A computer program product for implementing loading data in a pipelined microprocessor, the computer program product comprising:
a non-transitory storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising:
issuing a load request that comprises a load address requiring at least one block of data, the at least one block of data the same size as a largest contiguous granularity of data returned from a cache;determining that the load address matches at least one block address in a store address queue, wherein determining that there is a match comprises using a cache index address for a comparison between the load address and an address in the store address queue;based on determining that there is an address match, performing a) through c):
a) reading a data block from a buffer register designated by the matching address in the store address queue and sending the data block along with data from the cache to satisfy the load request for a most recent entry in the store address queue that matches the load address;b) comparing a unique set id of the data block to the set id of the matching address in the store address queue after sending the data block;c) based on determining that there is a set id match, continuing the load request, or, based on determining that there is not a set id match, setting a store-forwarding state of the matching address in the store address queue to no store-forwarding and rejecting the load request; andreading a data block from a cache based on the load address and sending the data block to satisfy the load request, based on determining that there is no address match. |
地址 |
Armonk NY US |