# US 7,610,464 B2 · Methods and apparatus for providing independent logical address space and access management

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

- Number: US 7,610,464 B2
- Document ID: US7610464B2
- Status: Granted
- Kind: B2
- Application number: 11/550,096
- Filed: 2006-10-17
- Published: 2007-09-06
- Granted: 2009-10-27
- Earliest claimed: 2006-02-22
- Assignees: Sony Computer Entertainment Inc.
- Inventors: Katsushi Otsuka
- Web page: https://patentgrep.com/patent/US7610464B2

## CPC

- G06F 12/1483: {using an access-table, e.g. matrix or list}
- G06F 12/0804: with main memory updating (G06F12/0806 takes precedence)
- G06F 12/145: {the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A command receiver receives, from an external access requesting entity, a command with which to access data, together with an address to be accessed and IOID to identify the access requesting entity. Based on the IOID, the access decision unit determines whether or not an access is one that is to be permitted for an access requesting entity to access a region of access destination. The access decision unit determines whether access of the access requesting entity is permitted or not, for each page that serves as the basic management unit of logical address in the processor space.

## Claims

### Claim 1

An I/O access control apparatus, comprising:
a command receiver which receives, from an external access requesting entity, a command for controlling data in a memory space of a processor, together with address information used to specify an address to be accessed and ID information used to identify the access requesting entity;
an access decision unit which determines whether access of the access requesting entity to an address specified by the address information is permitted or not, by referring to an access permission/denial determination table that associates an address in the memory space with ID information on an access requesting entity which is to be permitted to access a region specified by the address; and
an access processing unit which executes access of the access requesting entity to the memory space, on the condition that the access has been permitted by said access decision unit,
wherein said access decision unit determines, per page which is a unit of basic management in the memory space, whether access of the access requesting entity is permitted or not, and
wherein in a case where plurality of access requesting entities transmit commands to access different pages, said access processing unit is capable of executing accesses to the different pages by the plurality of access requesting entities parallely in time.

### Claim 2 (depends on 1)

An I/O access control apparatus according to claim 1, wherein the access permission/denial determination table is set by software that controls the access requesting entity and said apparatus in a unified manner.

### Claim 3 (depends on 1)

An I/O access control apparatus according to claim 1, wherein the access requesting entity is a direct memory access (DMA) requester that controls data, in a memory space of a processor, by a DMA transfer.

### Claim 4 (depends on 1)

An I/O access control apparatus according to claim 1, wherein said access decision unit is capable of using a plurality of pages with different sizes.

### Claim 5 (depends on 1)

An I/O access control apparatus according to claim 1, wherein pages to which different access requesting entities are accessible can be set in the access permission/denial determination table.

### Claim 6

An I/O access control apparatus, comprising:
a command receiver which receives, from an external access requesting entity, a command for controlling data in a memory space of a processor, together with address information used to specify an address to be accessed and ID information used to identify the access requesting entity;
an access decision unit which determines whether access of the access requesting entity to an address specified by the address information is permitted or not, by referring to an access permission/denial determination table that associates an address in the memory space with ID information on an access requesting entity which is to be permitted to access a region specified by the address;
an access processing unit which executes access of the access requesting entity to the memory space, on the condition that the access has been permitted by said access decision unit;
an address translation table storage which stores an address translation table to translate a logical address into a physical address, wherein the address information is information indicative of the logical address which is a virtual address converted from an address of the memory space into a predetermined format;
an address translation unit which translates the logical address specified by the address information into a physical address by referring to the address translation table; and
a cache processing unit which loads beforehand a partial translation table which is a part corresponding to a predetermined logical address range in the address translation table, into a cache memory from said address translation table storage, prior to address translation by said address translation unit,
wherein said access processing unit executes the access of the access requesting entity based on the physical address identified by said address translation unit,
wherein when data necessary for converting a logical address specified by the address information into a physical address is contained in the loaded partial translation table, said address translation unit performs address translation by referring to the partial translation table, and
wherein when the data necessary for converting a logical address specified by the address information into a physical address is not contained in the loaded partial translation table, said cache processing unit loads a new partial translation table into the cache memory from said address translation table storage.

### Claim 7 (depends on 6)

An I/O access control apparatus according to claim 6, wherein the address translation table is set by software that controls the access requesting entity and said apparatus in a unified manner.

### Claim 8 (depends on 6)

An I/O access control apparatus according to claim 6, wherein the address translation table includes, as part of contents thereof, table data corresponding to the access permission/denial determination table and is formed as a data table that associates the logical address and physical address with ID information on an access requesting entity which is to be permitted to access a region specified by the address.

### Claim 9 (depends on 6)

An I/O access control apparatus according to claim 6, wherein the address translation table is set so that a plurality of access requesting entities are capable of accessing an identical physical address region through pages of different logical addresses, respectively.

### Claim 10 (depends on 6)

An I/O access control apparatus according to claim 6, wherein when the data necessary for converting a logical address specified by the address information into a physical address is not contained in the partial translation table loaded beforehand prior to execution of the address translation, said cache processing unit loads a new partial translation table into the cache memory in a state where the partial translation table is being held in the cache memory.

### Claim 11

A command transmit auxiliary apparatus, comprising:
an ID adding unit which assigns ID information to identify a predetermined access requesting entity, to a command for controlling data, in a memory space of a processor, sent from the access requesting entity together with address information used to specify an address to be accessed in the memory space of a processor;
a command transmitter which transmits the command to which the ID information has been assigned, to an external device, wherein the external device determines whether access of the access requesting entity to the address specified by the address information is to be permitted or not, by referring to an access permission/denial determination table that associates an address of the memory space and ID information on an access requesting entity whose access to a region specified by said address of the memory space is permitted; and
a segment address generator which generates a segment address in a manner that a unique ID for the access requesting entity is converted by use of a predetermined segment generation table,
wherein said ID adding unit produces the ID information in a manner that a unique ID for the access requesting entity is converted by use of a predetermined ID generation table, and
wherein said command transmitter transmits the command in a manner that the segment address is contained in part of the address information.

### Claim 12 (depends on 11)

A command transmit auxiliary apparatus according to claim 11, wherein a conversion rule of the ID generation table is capable of being set by software that controls the access requesting entity and the external device in a unified manner.

### Claim 13 (depends on 11)

A command transmit auxiliary apparatus according to claim 11, wherein the ID information is assigned, for each access requesting entity, by software that controls the access requesting entity and the external device in a unified manner.

### Claim 14 (depends on 11)

A command transmit auxiliary apparatus according to claim 11, wherein the segment generation table is capable of being set by software that controls the access requesting entity in a unified manner.

### Claim 15

A method for controlling I/O access, comprising:
receiving, from an external access requesting entity, a command for controlling data in a memory space of a processor, together with address information used to specify an address to be accessed and ID information used to identify the access requesting entity;
determining whether access of the access requesting entity to an address specified by the address information is permitted or not, by referring to an access permission/denial determination table that associates an address in the memory space with ID information on an access requesting entity which is to be permitted to access a region specified by the address;
executing access of the access requesting entity to the memory space, on the condition that the access has been permitted by said determining;
translating a logical address specified by the address information into a physical address by referring to an address translation table to translate the logical address into the physical address wherein the address information is information indicative of the logical address which is a virtual address converted from an address of the memory space into a predetermined format; and
loading beforehand a partial translation table which is a part corresponding to a predetermined logical address range in the address translation table, into a cache memory, prior to the execution of address translation,
wherein said determining is such that whether access of the access requesting entity is permitted or not is determined per page which is a unit of basic management in the memory space,
wherein the access of the access requesting entity is executed based on the physical address identified by the address translation table,
wherein when data necessary for converting a logical address specified by the address information into a physical address is contained in the loaded partial translation table, the address translation is performed by referring to the partial translation table, and
wherein when the data necessary for converting a logical address specified by the address information into a physical address is not contained in the loaded partial translation table, a new partial translation table is loaded into the cache memory.

### Claim 16 (depends on 15)

A method for controlling I/O access according to claim 15, wherein a different size of page is capable of being used per page.

### Claim 17 (depends on 15)

A method for controlling I/O access according to claim 15, wherein the address translation table includes, as part of contents thereof, table data corresponding to the access permission/denial determination table and is formed as a data table that associates the logical address and physical address with ID information on an access requesting entity which is to be permitted to access a region specified by the address.

### Claim 18 (depends on 15)

A method for controlling I/O access according to claim 15, wherein the address translation table is set so that a plurality of access requesting entities are capable of accessing an identical physical address region through pages of different logical addresses, respectively.

### Claim 19 (depends on 15)

A method for controlling I/O access according to claim 15, wherein when the data necessary for converting a logical address specified by the address information into a physical address is not contained in the partial translation table loaded beforehand prior to execution of the address translation, a new partial translation table is loaded into the cache memory in a state where the partial translation table is being held in the cache memory.

### Claim 20

A command transmit auxiliary method, comprising:
assigning ID information to identify a predetermined access requesting entity, to a command for controlling data, in a memory space of a processor, sent from the access requesting entity together with address information used to specify an address to be accessed in the memory space of a processor;
transmitting the command to which the ID information has been assigned, to an external device, wherein the external device determines whether access of the access requesting entity to the address specified by the address information is to be permitted or not, by referring to an access permission/denial determination table that associates an address of the memory space and ID information on an access requesting entity whose access to a region specified by said address of the memory space is permitted, and
generating a segment address in a manner that a unique ID for the access requesting entity is converted by use of a predetermined segment generation table,
wherein the ID information is produced in a manner that a unique ID for the access requesting entity is converted by use of a predetermined ID generation table, and
wherein the command is transmitted in a manner that the segment address is contained in part of the address information.

### Claim 21

A computer-readable recording medium which stores a computer product for controlling I/O access, the product comprising:
a receiving code module for receiving, from an external access requesting entity, a command for controlling data in a memory space of a processor, together with address information used to specify an address to be accessed and ID information used to identify the access requesting entity;
a determining code module for determining whether access of the access requesting entity to an address specified by the address information is permitted or not, by referring to an access permission/denial determination table that associates an address in the memory space with ID information on an access requesting entity which is to be permitted to access a region specified by the address; and
an accessing code module for executing access of the access requesting entity to the memory space, on the condition that the access has been permitted by the determining code module,
wherein the determining code module determines, per page which is a unit of basic management in the memory space, whether access of the access requesting entity is permitted or not, and
wherein in a case where a plurality of access requesting entities transmit commands to access different pages, the accessing code module is capable of executing accesses to the different pages by the plurality of access requesting entities parallely in time.

### Claim 22

A computer-readable recording medium which stores a computer product for assisting the transmission of commands, the product including:
a assigning code module for assigning ID information to identify a predetermined access requesting entity, to a command for controlling data, in a memory space of a processor, sent from the access requesting entity together with address information used to specify an address to be accessed in the memory space of a processor;
a transmitting code module for transmitting the command to which the ID information has been assigned, to an external device, wherein the external device determines whether access of the access requesting entity to the address specified by the address information is to be permitted or not, by referring to an access permission/denial determination table that associates an address of the memory space and ID information on an access requesting entity whose access to a region specified by said address of the memory space is permitted; and
a segment-address-generating code module which generates a segment address in a manner that a unique ID for the access requesting entity is converted by use of a predetermined segment generation table,
wherein the ID information is produced in a manner that a unique ID for the access requesting entity is converted by use of a predetermined ID generation table, and
wherein said transmitting code module transmits the command in a manner that the segment address is contained in part of the address information.
