发明名称 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