# US 5,710,903 A · Data processing system provided with an address translation lookaside buffer capable of quick partial purge operation

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 5,710,903 A
- Document ID: US5710903A
- Status: Granted
- Kind: A
- Application number: 08/401,745
- Filed: 1995-03-09
- Granted: 1998-01-20
- Earliest claimed: 1994-03-10
- Assignees: Hitachi, Ltd.; Hitachi Computer Engineering Co., Ltd.
- Inventors: Taiji Horiuchi; Kuniki Toubaru; Hiromichi Kainou
- Web page: https://patentgrep.com/patent/US5710903A

## CPC

- G06F 12/1027: using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A data processing system capable of simultaneously processing a plurality of partial purge requests stored in a purge address stack and of reducing the effective time necessary for carrying out a partial purge process for the partial purging of an address translation lookaside buffer is disclosed. The data processing system comprises a purge address stack (106) having a plurality of registers (106a to 106d) for storing a plurality of partial purge requests, a plurality of comparators (109a to 109d) associated with the registers of the purge address stack respectively and functioning for both gaining normal access to an address translation lookaside buffer and carrying out a partial purge process, and a comparator (110) to be used when an address translator (107) operates. The partial purge process is started when the purge address stack becomes full or when a real address portion determined by the address translator (107) coincides with any one of the real address portions stored in the registers of the purge address stack.

## Claims

### Claim 1

A data processing system provided with an address translator for translating logical addresses into corresponding real addresses and an address translation lookaside buffer for storing a plurality of entries each of an address translation pair of a logical address portion and a real address portion determined by the address translator, comprising a purge address stack for storing a plurality of real addresses to be invalidated for the entries of the address translation lookaside buffer to execute a plurality of cycles of partial purge process for the partial purging of the address translation lookaside buffer collectively for partial purge requests accumulated in the purge address stack.

### Claim 2 (depends on 1)

A data processing system according to claim 1, wherein the partial purge process is started when the purge address stack becomes full.

### Claim 3 (depends on 1)

A data processing system according to claim 1, wherein a decision means is provided to compare the real address portion read from the address translation lookaside buffer with the contents of the purge address stack and decide whether or not the accessed entry is that specified previously by a partial purge request, when gaining normal access to the address translation lookaside buffer, and the accessed entry of the address translation lookaside buffer is invalidated when the decision means decides that the accessed entry is that specified previously by a partial purge request.

### Claim 4 (depends on 1)

A data processing system according to claim 1, wherein a decision means is provided to compare, when registering an address translation pair of a logical address portion and a real address portion determined by the address translator in the address translation lookaside buffer, the determined real address portion with the contents of the purge address stack and decide whether or not the real address portion to be stored in the address translation lookaside buffer is that specified previously by a partial purge request, and a plurality of cycles of the partial purge process are executed collectively for the partial purge requests accumulated in the purge address stack before registering a new entry in the address translation lookaside buffer, when the decision means decides that the real address portion to be stored in the address translation lookaside buffer is that specified previously by a partial purge request.

### Claim 5 (depends on 3)

A data processing system according to claim 3, wherein a decision means is provided to decide whether or not each entry of the address translation lookaside buffer is that has been registered before each purge request stored in the purge address stack and storing the decision, and, when gaining normal access to the address translation lookaside buffer, the entry of the address translation lookaside buffer is decided to be valid when it is decided that the entry of the address translation lookaside buffer is that registered after a purge request requesting the partial purge of the address translation lookaside buffer, even if it is decided that the real address portion of the entry of the address translation lookaside buffer is that specified by the partial purge request.

### Claim 6 (depends on 1)

A data processing system according to claim 1, wherein a decision means is provided to compare, when registering a pair of a logical address portion and a real address portion determined by the address translator in the address translation lookaside buffer, the determined real address portion with the contents of the purge address stack and decide whether or not the real address portion to be stored in the address translation lookaside buffer is that specified by a partial purge request, and, when it is decided that the real address portion to be stored in the address translation lookaside buffer is that specified by the partial purge request, a fact that a new entry of the address translation lookaside buffer to be registered is that registered after the partial purge request stored in the purge address stack.

### Claim 7 (depends on 5)

A data processing system according to claim 5, wherein, in the partial purge process in which the all the entries of the address translation lookaside buffer are searched one by one for real addresses portion specified by partial purge requests, the entry of the address translation lookaside buffer is not invalidated when it is decided that the entry of the address translation lookaside buffer is registered after the partial purge request stored in the purge address stack, even if the real address portion read from the address translation lookaside buffer is that specified by the partial purge request.

### Claim 8

An address translation lookaside buffer controller in a data processing system which issues a partial purge request with a partial purge requested real address portion to an address translation lookaside buffer which has a plurality of entries each containing a logical address portion and a real address portion as an address translation pair, the system purging address portion pairs in response to a partial purge request which contain the same real address portion with the partial purge request, the controller comprising;
purge address stack having a plurality of registers each of which receives a partial purge requested real address portion;
means for successively reading the real address portion from the buffer;
a plurality of comparators connected to said registers respectively and to said buffer, whereby the comparators simultaneously receive and compare real address portions from the registers and the buffer;
means in response to result of the comparators for purging address translation pairs each of which is detected to contain the same real address portion that one of the registers stores.

### Claim 9 (depends on 3)

A data processing system according to claim 3, wherein a decision means is provided to compare, when registering a pair of a logical address portion and a real address portion determined by the address translator in the address translation lookaside buffer, the determined real address portion with the contents of the purge address stack and decide whether or not the real address portion to be stored in the address translation lookaside buffer is that specified by a partial purge request, and, when it is decided that the real address portion to be stored in the address translation lookaside buffer is that specified by the partial purge request, a fact that a new entry of the address translation lookaside buffer to be registered is that registered after the partial purge request stored in the purge address stack.
