Processing of self-modifying code in multi-address-space and multi-processor systems
AssigneePlatform Solutions Incorporated
InventorsGary Woffinden, Paul Leisy, Ronald Hilton
Life of this patent
Estimating the term…
Abstract
A method and system of storing to an instruction stream with a multiprocessor or multiple-address-space system is disclosed. A central processing unit may cache instructions in a cache from a page of primary code stored in a memory storage unit. The central processing unit may execute cached instructions from the cache until a serialization operation is executed. The central processing unit may check in a message queue for a notification message indicating potential storing to the page. If the notification message is present in the message queue, cached instructions from the page are invalidated.
Claims28
In a computer system, a method comprising:
- caching instructions in a first cache from a first page of primary code stored in a memory storage unit;
- executing cached instructions from the first cache using a first central processing unit until a serialization operation is executed;
- checking in a first message queue for a first notification message indicating potential storing to the first page;
- and
- if the first notification message is present in the first message queue, invalidating cached instructions from the first page.
In a computer system, a method comprising:
- storing code with a first central processing unit to a first page;
- checking a first entry of an absolute page storage map to determine if a second central processing unit is caching instructions from the first page;
- and
- sending a first notification message to the second central processing unit indicating storing to the first page.
A set of instructions residing in a storage medium, said set of instructions capable of being executed by a storage controller to implement a method for processing data, the method comprising:
- caching instructions in a first cache from a first page of primary code stored in a memory storage unit;
- executing cached instructions from the first cache using a first central processing unit until a serialization operation is executed;
- checking in a first message queue for a first notification message indicating potential storing to the first page;
- and
- if the first notification message is present in the first message queue, invalidating cached instructions from the first page.
A set of instructions residing in a storage medium, said set of instructions capable of being executed by a storage controller to implement a method for processing data, the method comprising:
- storing code with a first central processing unit to a first page;
- checking a first entry of an absolute page storage map to determine if a second central processing unit is caching instructions from the first page;
- and
- sending a first notification message to the second central processing unit indicating storing to the first page.
A computer system comprising:
- a memory unit that stores a first page of primary code
- a first central processing unit that reads caching instructions in a first cache from the first page and checks in a first message queue for a first notification message indicating potential storing to the first page;
- and
- a second central processing unit that stores code to the first page and sends the first notification message to the first central processing unit.
In a computer system, a method comprising:
- mapping in a first translation lookaside buffer entry a first virtual address to an absolute address of a first page stored in a memory storage unit;
- mapping in an absolute page storage map entry the absolute address with the first virtual address;
- executing cached instructions in a first cache from a first page using a first central processing unit;
- mapping in a second translation lookaside buffer entry a second virtual address to the absolute address;
- associating a synonym value with the absolute page storage map entry indicating whether the second virtual address matches the first virtual address;
- and
- if the synonym value indicates the second virtual address matches the first virtual address, detecting potential storing to the first page;
- if the synonym value indicates the second virtual address does not match the first virtual address, invalidating all translation lookaside buffer entries from the first page and cached instructions from the first page.
Dependencies are inferred from the claim text.