IP Library › Granted Patent US 10,003,648
Granted Patent B2
US 10,003,648 · App. 14/601,228 · Granted Jun 19, 2018

Mechanism for universal parallel information access

Inventor: Siamack Haghighi (Sunnyvale, CA)
Assignee: SAMSUNG ELECTRONICS CO., LTD.
H04L67/1097H04L67/1095H04L69/14
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 10,003,648
App. No.
14/601,228
Granted
Jun 19, 2018
Kind
B2
Abstract

Inventive aspects include one or more local servers each including a local universal access logic section, one or more remote servers each including a remote universal access logic section, and a coherency node to provide coherent access to first data that is stored on the one or more local servers to the one or more remote servers, and to provide coherent access to second data that is stored on the one or more remote servers to the one or more local servers. Embodiments of the inventive concept herein can use hardware and/or software mechanism to unify direct and remote attached devices via command, data, status, and completion memory queues. Applications and operating systems can be presented with a uniform access interface for sharing data and resources across multiple disparately situated servers and nodes.

Claims (34)

1. A universal parallel information access system, comprising: one or more local servers each including a local universal access logic section, the one or more local servers being configured to communicate with one or more remote servers; and a coherency node communicatively coupled to the one or more local servers and configured to coordinate with the local universal access logic section of the one or more local servers, and to provide coherent access to first data that is stored on one or more local data-persistent storage devices of the one or more local servers to the one or more remote servers, wherein each of the one or more local servers includes: one or more local processors;

an operating system configured to control the one or more local processors; one or more local applications configured to execute on the operating system; a network interface card (NIC);

a plurality of local write data queues associated with the one or more local processors, wherein the plurality of local write data queues are configured to queue local write data for the one or more local applications;

one or more local incoming data queues associated with the NIC, wherein the one or more local incoming data queues are configured to queue the local write data for writing to the one or more local servers, by one or more remote applications;

a plurality of local read data queues associated with the one or more local processors, wherein the plurality of local read data queues are configured to queue local read data for the one or more local applications;

one or more local outgoing data queues associated with the NIC, wherein the one or more local outgoing data queues are configured to queue the local read data for the one or more remote applications; and

a plurality of local memory channels accessible by the one or more remote applications and by the one or more local applications via the local universal access logic section;

wherein the coherency node is referred to as a first coherency node, the system further comprising a second coherency node including a second consistency table configured to provide, in the event of a failure of the first coherency node, the coherent access to the first data and second data between the one or more local servers and the one or more remote servers, wherein:

the one or more remote servers each includes: a remote universal access logic section; one or more remote processors;

an operating system configured to control the one or more remote processors; the one or more remote applications configured to execute on the operating system of the one or more remote servers; a network interface card (NIC);

a plurality of remote write data queues associated with the one or more remote processors, wherein the plurality of remote write data queues are configured to queue remote write data for the one or more remote applications;

one or more remote memory arrays, each including a plurality of remote write storage queues and a plurality of remote read storage queues;

one or more remote incoming data queues associated with the NIC of the one or more remote servers, wherein the one or more remote incoming data queues are configured to queue the remote write data for writing to the one or more remote servers, by the one or more local applications;

a plurality of remote read data queues associated with the one or more remote processors, wherein the plurality of remote read data queues are configured to queue remote read data for the one or more remote applications;

one or more remote outgoing data queues associated with the NIC of the one or more remote servers, wherein the one or more remote outgoing data queues are configured to queue the remote read data for the one or more local applications;

a plurality of remote memory channels accessible by the one or more remote applications and by the one or more local applications via the remote universal access logic section; and

one or more remote data-persistent storage devices, wherein: a first subset of the plurality of remote write storage queues is associated with each of the plurality of remote write data queues that are associated with the one or more remote processors;

a first subset of the plurality of remote read storage queues is associated with each of the plurality of remote read data queues that are associated with the one or more remote processors;

a second subset of the plurality of remote write storage queues is associated with the one or more remote outgoing data queues that are associated with the NIC of the one or more remote servers;

a second subset of the plurality of remote read storage queues is associated with the one or more remote incoming data queues that are associated with the NIC of the one or more remote servers;

the one or more remote data-persistent storage devices are communicatively coupled to the first subset of the remote write storage queues and to the first subset of the remote read storage queues, and configured to write the remote write data received from the first subset of the remote write storage queues, read the remote read data stored on the one or more remote data-persistent storage devices, and provide the remote read data to the first subset of the remote read storage queues;

each of the one or more local servers includes one or more local memory arrays, each including a plurality of local write storage queues and a plurality of local read storage queues; the first coherency node is communicatively coupled to the one or more remote servers; the first coherency node is configured to coordinate with the remote universal access logic section of the one or more remote servers;

the first coherency node is configured to provide coherent access to the second data that is stored on the one or more remote data-persistent storage devices of the one or more remote servers to the one or more local servers;

the first coherency node includes a first consistency table configured to provide the coherent access to the first data and the second data between the one or more local servers and the one or more remote servers;

a first subset of the plurality of local write storage queues is associated with each of the plurality of local write data queues that are associated with the one or more local processors;

a first subset of the plurality of local read storage queues is associated with each of the plurality of local read data queues that are associated with the one or more local processors;

a second subset of the plurality of local write storage queues is associated with the one or more local outgoing data queues that are associated with the NIC of the one or more local servers;

a second subset of the plurality of local read storage queues is associated with the one or more local incoming data queues that are associated with the NIC of the one or more local servers;

the one or more local data-persistent storage devices are communicatively coupled to the first subset of the local write storage queues and to the first subset of the local read storage queues, and configured to write the local write data received from the first subset of the local write storage queues, read the local read data stored on the one or more local data-persistent storage devices, and provide the local read data to the first subset of the local read storage queues;

the one or more local outgoing data queues associated with the NIC of the one or more local servers are configured to receive the remote write data from the second subset of the plurality of local write storage queues, and to send the remote write data to the one or more remote servers;

the one or more local incoming data queues associated with the NIC of the one or more local servers are configured to receive the remote read data from the one or more remote servers, and to send the remote read data to the second subset of the plurality of local read storage queues;

the one or more local memory arrays include a semaphore locking section configured to lock individual data files on the one or more local data-persistent storage devices responsive to the first coherency node;

the one or more remote outgoing data queues associated with the NIC of the one or more remote servers are configured to receive the local write data from the second subset of the plurality of remote write storage queues, and to send the local write data to the one or more local servers; and

the one or more remote incoming data queues associated with the NIC of the one or more remote servers are configured to receive the local read data from the one or more local servers, and to send the local read data to the second subset of the plurality of remote read storage queues.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2015
From: HAGHIGHI, SIAMACK
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 034779/0669 →
Continuity (2)
Provisional Application 62059141 · Oct 2, 2014
Related Publication 20160100027A1 · Apr 7, 2016