发明名称 Transparent code patching including updating of address translation structures
摘要 Code is modified by an optimizer executing in the same or different address space as the application being modified. The modified code is stored in memory regions separate from the memory regions of the unmodified or pre-existing code. This allows instruction fetches by the application to access the modified code, while data accesses by the application access the unmodified code. An optimizer may also access the code, but accesses by the optimizer are considered data accesses, and therefore, such accesses would be to the unmodified code, instead of the modified code. Thus, an address mapping capability is provided in which the optimizer may access the modified code by having multiple addresses point to the same physical memory location. One address is used by the application in an instruction fetch and the other address is used by the optimizer in a data access to access the modified code.
申请公布号 US9256546(B2) 申请公布日期 2016.02.09
申请号 US201414231635 申请日期 2014.03.31
申请人 INTERNATIONAL BUSINESS MACHINES CORPORATION 发明人 Gschwind Michael K.
分类号 G06F12/10;G06F9/45 主分类号 G06F12/10
代理机构 Heslin Rothenberg Farley & Mesiti P.C. 代理人 Bennett, Esq. Steven L.;Schiller, Esq. Blanche E.;Heslin Rothenberg Farley & Mesiti P.C.
主权项 1. A computer program product for facilitating processing within a computing environment, said computer program product comprising: a non-transitory computer readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising: obtaining, by a processor, an address translation mapping, wherein the address translation mapping comprises: a first address to be translated to a second address, the first address being of a first type and the second address being of a second type, the second address of the second type indicating a memory location that includes modified code of an application, the modified code accessible via an instruction fetch of the application;the first address to be translated to a third address, the third address being of the second type and indicating a memory location that includes unmodified code corresponding to the modified code, the unmodified code accessible via data accesses of the application; anda fourth address to be translated to the second address, the fourth address being of the first type, and wherein the modified code located at the memory location indicated by the second address is accessible via a data access by a component different from the application; andaccessing the memory location indicated by the second address by at least one of the application using an instruction fetch or the component using a data access, the accessing including using the address translation mapping.
地址 Armonk NY US