IP Library Granted Patent US 8,719,542
Granted Patent B2
US 8,719,542 · App. 12/550,936 · Granted May 6, 2014

Data transfer apparatus, data transfer method and processor

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,719,542
App. No.
12/550,936
Granted
May 6, 2014
Kind
B2
Abstract

A processor includes a CPU core which executes a user program, and a data transfer apparatus. The CPU core stores a transfer request from a user program in a specific area of a main memory, in which the transfer request specifies the virtual addresses of a transfer source and a transfer destination in a memory space allocated to the user program. The data transfer apparatus refers to the specific area of the main memory and acquires a transfer request asynchronously to processing performed by the CPU core. The data transfer apparatus then identifies physical addresses corresponding to virtual addresses specified in the transfer request. After that, the data transfer apparatus transcribes original data stored in a storage area indicated by the physical address of the transfer source, to a storage area in a cache memory related to the virtual address or physical address of the transfer destination.

Claims (35)

1. A data transfer apparatus for transferring data in a storage area to another storage area, the apparatus comprising:

a CPU core, which executes a plurality of user programs;

an acquisition unit, which acquires a plurality of transfer requests from the plurality of user programs executed by the CPU core asynchronously with processing performed by the CPU core, wherein the transfer requests for each of the plurality of user programs are respectively stored in a predetermined dedicated memory area as a program memory space allocated for a respective requesting user program, and wherein a transfer request specifies at least a virtual address of a transfer source and a virtual address of a transfer destination in the program memory space into which the transfer request is to be stored for the respective requesting user program;

an identification unit, which identifies a physical address corresponding to a virtual address specified in each of the plurality of transfer requests; and

a transcription unit, which transcribes original data stored in a storage area indicated by a physical address of a transfer source specified by the identification unit, to a storage area indicated by a virtual address or a physical address of a transfer destination, wherein:

when a transfer request, from a given one of the user programs that is currently being executed by the CPU core, is stored in a respective program memory space allocated to the currently-executed user program, then the acquisition unit refers to the respective program memory space allocated to the currently-executed user program first, so as to acquire the transfer request from the currently-executed user program first, and

when no transfer request from the currently-executed user program is stored in a respective program memory space allocated to the currently-executed user, then the acquisition unit refers, in a time-sharing manner, to different program memory spaces allocated, respectively, to other user programs, so as to acquire existing transfer requests from each of the other user programs.

2. The data transfer apparatus of claim 1 , wherein the transcription unit transcribes the original data to a storage area in a cache memory related to the virtual address or physical address of the transfer destination.

3. The data transfer apparatus of claim 2 , wherein the transcription unit transcribes the original data to the storage area in the cache memory related to the virtual address or physical address of the transfer destination, access to the storage area being restricted from other than the data transfer apparatus.

4. The data transfer apparatus of claim 1 , wherein:

the transfer request contains a transcription ID with which the transcription unit relates the transfer request to another transfer request and processes the transfer request; and

the transcription unit sequentially processes a plurality of transfer requests containing a transcription ID, in accordance with the order in which the requests are placed.

5. The data transfer apparatus of claim 1 , further comprising a notification unit, which stores, in the respective program memory space, a transfer notification for notifying, when the transcription unit has transcribed the original data, the user program of the completion of processing of the transfer request, so that the CPU core executing the user program acquires the transfer notification asynchronously.

6. The data transfer apparatus of claim 5 , wherein:

the transfer request contains a notification ID with which the notification unit relates the transfer request to another transfer request and processes the transfer request; and,

when the transcription unit has processed all of a plurality of transfer requests containing a notification ID, the notification unit stores, as the transfer notification, a notification that processing for the notification ID is completed, in the respective program memory space.

7. A data transfer method for transferring data in a storage area to another storage area, the method comprising:

acquiring a plurality of transfer requests from a plurality of user programs executed by a CPU core asynchronously with processing performed by the CPU core,

wherein the transfer requests for each of the plurality of user programs are respectively stored in a predetermined dedicated memory area as a program memory space allocated for a respective requesting user program and wherein a transfer request specifies at least a virtual address of a transfer source and a virtual address of a transfer destination in the program memory space into which the transfer request is to be stored for the respective requesting user program;

the data transfer method further comprising:

identifying a physical address corresponding to a virtual address specified in each of the plurality of transfer requests; and

transcribing original data stored in a storage area indicated by a physical address of a transfer source specified by the identifying, to a storage area indicated by a virtual address or a physical address of a transfer destination, wherein:

when a transfer request, from a given one of the user programs that is currently being executed by the CPU core, is stored in a respective program memory space allocated to the currently-executed user program, then the acquisition step includes referring to the respective program memory space allocated to the currently-executed user program first, so as to acquire the transfer request from the currently-executed user program first, and

when no transfer request from the currently-executed user program is stored in a respective program memory space allocated to the currently-executed user program, then the acquisition step includes referring, in a time-sharing manner, to different program memory spaces allocated, respectively, to other user programs, so as to acquire existing transfer requests from each of the other user programs.

8. A processor, comprising:

a CPU core, which executes a plurality of user programs; and

a data transfer apparatus, which transfers data in a storage area to another storage area,

wherein the CPU core stores a plurality of transfer requests from each of the plurality of user programs respectively in a predetermined dedicated memory area as a program memory space allocated for a respective requesting user program,

wherein the transfer requests specify at least a virtual address of a transfer source and a virtual address of a transfer destination in the program memory space into which the transfer request is to be stored for the respective requesting user program; and

the data transfer apparatus includes:

an acquisition unit, which refers to program memory spaces and acquires the plurality of transfer requests asynchronously with processing performed by the CPU core;

an identification unit, which identifies a physical address corresponding to a virtual address specified in each of the plurality of transfer requests; and

a transcription unit, which transcribes original data stored in a storage area indicated by a physical address of a transfer source specified by the identification unit, to a storage area indicated by a virtual address or a physical address of a transfer destination, wherein:

when a transfer request, from a given one of the user programs that is currently being executed by the CPU core, is stored in a respective program memory space allocated to the currently-executed user program, then the acquisition unit refers to the respective program memory space allocated to the currently-executed user program first, so as to acquire the transfer request from the currently-executed user program first, and

when no transfer request from the currently-executed user program is stored in a respective program memory space allocated to the currently-executed user program, then the acquisition unit refers, in a time-sharing manner, to different program memory spaces allocated, respectively, to other user programs, so as to acquire existing transfer requests from each of the other user programs.

Assignments (6)
CHANGE OF NAME Recorded Sep 6, 2017
From: SONY COMPUTER ENTERTAINMENT INC.
To: SONY INTERACTIVE ENTERTAINMENT INC.
Reel/Frame 043761/0577 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2017
From: SONY CORPORATION
To: SONY INTERACTIVE ENTERTAINMENT INC.
Reel/Frame 043761/0975 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2014
From: SONY COMPUTER ENTERTAINMENT INC.
To: SONY CORPORATION
Reel/Frame 032194/0029 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 27, 2011
From: SONY NETWORK ENTERTAINMENT PLATFORM INC.
To: SONY COMPUTER ENTERTAINMENT INC.
Reel/Frame 027449/0546 →
CHANGE OF NAME Recorded Dec 26, 2011
From: SONY COMPUTER ENTERTAINMENT INC.
To: SONY NETWORK ENTERTAINMENT PLATFORM INC.
Reel/Frame 027448/0794 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2009
From: KAWAMURA, YUJI; YAMAZAKI, TAKESHI
To: SONY COMPUTER ENTERTAINMENT INC.
Reel/Frame 023414/0646 →