An example embodiment of the present invention relates generally to wireless communication technology and more particularly, relates to an apparatus, a method and a computer program product for enabling dynamic device detection and selection of content for transfer between devices.
The modern communications era has brought about a tremendous expansion of wireline and wireless networks. Computer networks, television networks, and telephony networks are experiencing an unprecedented technological expansion, fueled by consumer demand. Wireless and mobile networking technologies have addressed related consumer demands, while providing more flexibility and immediacy of information transfer.
Current and future networking technologies continue to facilitate ease of information transfer and convenience to users. Due to the now ubiquitous nature of electronic communication devices, people of all ages and education levels are utilizing electronic devices to communicate with other individuals or contacts, receive services and/or share information, media and other content. One area in which there is a demand to increase ease of information transfer relates to services for transferring large amounts of data between communication devices.
For instance, currently, transferring large amounts of data between communication devices via Near Field Communication (NFC) is quite common. For instance, close proximity between the memories of communication devices is typically required for the exchange of data across very short distances via near field communication and the nature of this data exchange generally occurs in a fast and adhoc manner. Given the fast and adhoc manner of the data exchange, data of interest typically needs to be located fast so that when it is identified, a communication device may retrieve the data and transfer it to a memory of another communication device.
However, a problem may arise in an instance in which communication devices desire to transfer large amounts of content between memories of each other. For instance, communication devices implementing Near Field Communication may utilize data interfaces for transferring large data files, which may require multiple different bit rates to facilitate the transfer. However, currently NFC technology is typically limited with respect to the bit rate and the capacity (e.g., kilobits/sec, one or more megabits (Mbits) in tags. For example, these multiple different bit rates may be utilized to perform one task serially such as, for example, selecting a proper data interface for the transfer of the data files. This means the communication devices may need to change from one low bit rate to a high bit rate and vice versa in a fast manner to facilitate the transfer of the data via a Near Field Communication. For instance, in an instance in which a “high speed” NFC exists, the change from a low bit rate to a high bit rate may occur within the NFC. On the other hand, in an instance in which a low to high-speed occurs from a NFC to alternate high speed carriers, such change may be performed with a NFC handover.
Although existing communication devices utilizing NFC are typically capable of implementing static handover to facilitate change from one low bit rate to a high bit rate, such as for example, to current high speed carriers, such as Wireless Local Area Network (WLAN), and Bluetooth (BT), the communication devices may be unable to activate an alternative carrier circuit during an existing handover process to facilitate the data transfer to a memory of another communication. As such, the data transfer may fail and/or bottlenecks in the data transfer may occur which may result in dissatisfaction to a device user.
In view of the foregoing drawbacks, it may be beneficial to provide a more efficient and reliable mechanism of transferring data between memories of devices within a close proximity.
A method, apparatus and computer program product are therefore provided that may enable an efficient and reliable manner for facilitating a direct memory copy of data among devices. An example embodiment of the invention may organize one or more items of content of one or more memory blocks of a local memory such as, for example, of a RF memory tag (also referred to herein as an embedded tag (for example, an embedded tag of a device)) for direct transfer to one or more other remote memories of devices (e.g., tags of communication devices). In this regard, an example embodiment may provide wirelessly bonded lines between at least two memories.
An example embodiment may facilitate negotiation of the transfer of at least one of the items of content via a fast Wireless Data Interface (WDI) such as, for example, an 8 GHz WDI. The negotiation information may include control memory data, as well as any other suitable data, for facilitating the negotiation among devices for the transfer of the content. For example, a negotiation for a direct memory copy may include part of the memory content for a copy, an entire one-to-one memory copy, and/or a memory erasing negotiation. In an example embodiment, the memory erasing negotiation may relate to an instance of a direct memory erase which may be opposite to a direct memory copy. Additionally, an example embodiment may facilitate the transfer of at least one of the items of content to a remote memory via a dedicated WDI (e.g., a 60 GHz WDI). In this regard, by streamlining some negotiations for transfer of items of content of memory blocks that are available for remote access via a first interface (e.g., a WDI (e.g., a 8 GHz WDI)) and facilitating the actual transfer of the negotiated data via a dedicated second interface (e.g., a WDI (e.g., a 60 GHz WDI)) an example embodiment may enable selection of large amounts of data for transfer from one memory device directly to one or more other memory devices in a short period of time. As such, an example embodiment may minimize bottlenecks and data management traffic associated with transfer of data among devices.
In one example embodiment, a method of facilitating a direct memory copy among devices is provided. The method may include exchanging content with at least one device via a near field communication in response to entering a proximity of the device and detecting one or more items of data of one or more corresponding memory blocks or areas of local memory. The memory blocks or areas of local memory are available for remote access. The method may also include negotiating, via one or more communications across a first interface, with the at least one device to determine whether the device desires receipt of at least one of the items of data. The method may also include enabling provision, via a second interface, of the at least one item of data to the device. The at least one item of data may be provisioned, via the second interface, to the device, while within the proximity of the device, in response to receipt of an indication from the device requesting the item of data in order to enable the device to store the item of data in one or more agreed upon memory blocks or areas of remote memory.
In another exemplary embodiment, an apparatus for facilitating a direct memory copy among devices is provided. The apparatus may include a processor and memory including computer program code. The memory and the computer program code are configured to, with the processor, cause the apparatus to at least perform operations including exchanging content with at least one device via a near field communication in response to entering a proximity of the device and detecting one or more items of data of one or more corresponding memory blocks or areas of local memory. The memory blocks or areas of local memory are available for remote access. The computer program code may further cause the apparatus to negotiate, via one or more communications across a first interface, with the at least one device to determine whether the device desires receipt of at least one of the items of data. The computer program code may further cause the apparatus to enable provision, via a second interface, of the at least one item of data to the device. The at least one item of data may be provisioned to the device, via the second interface, while within the proximity of the device, in response to receipt of an indication from the device requesting the item of data in order to enable the device to store the item of data in one or more agreed upon memory blocks or areas of remote memory.
In another exemplary embodiment, a computer program product for facilitating a direct memory copy among devices is provided. The computer program product includes at least one computer-readable storage medium having computer-executable program code portions stored therein. The computer-executable program code instructions may include program code instructions configured to exchange content with at least one device via a near field communication in response to entering a proximity of the device and detecting one or more items of data of one or more corresponding memory blocks or areas of local memory. The memory blocks or areas of local memory are available for remote access. The program code instructions may also negotiate, via one or more communications across a first interface, with the at least one device to determine whether the device desires receipt of at least one of the items of data. The program code instructions may also enable provision, via a second interface, of the at least one item of data to the device. The at least one item of data may be provisioned, via the second interface, while within the proximity of the device, in response to receipt of an indication from the device requesting the item of data in order to enable the device to store the item of data in one or more agreed upon memory blocks or areas of remote memory.
In another example embodiment, an apparatus for facilitating a direct memory copy among devices is provided. The apparatus may include means for exchanging content with at least one device via a near field communication in response to entering a proximity of the device and means for detecting one or more items of data of one or more corresponding memory blocks or areas of local memory. The memory blocks or areas of local memory are available for remote access. The apparatus may also include means for negotiating, via one or more communications across a first interface, with the at least one device to determine whether the device desires receipt of at least one of the items of data. The apparatus may also include means for enabling provision, via a second interface, of the at least one item of data to the device. The at least one item of data may be provisioned, via the second interface, while within the proximity of the device, in response to receipt of an indication from the device requesting the item of data in order to enable the device to store the item of data in one or more agreed upon memory blocks or areas of remote memory.
An example embodiment of the invention may provide a better user experience since a communication device may more efficiently and reliably facilitate transfer of data to memory of devices. As a result, the communication device may conserve resources and may perform in an improved manner.
Having thus described the invention in general terms, reference will now be made to the accompanying drawings, which are not necessarily drawn to scale, and wherein:
Some embodiments of the present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all embodiments of the invention are shown. Indeed, various embodiments of the invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Like reference numerals refer to like elements throughout. As used herein, the terms “data,” “content,” “information” and similar terms may be used interchangeably to refer to data capable of being transmitted, received and/or stored in accordance with embodiments of the present invention. Thus, use of any such terms should not be taken to limit the spirit and scope of embodiments of the present invention.
Additionally, as used herein, the term ‘circuitry’ refers to (a) hardware-only circuit implementations (e.g., implementations in analog circuitry and/or digital circuitry); (b) combinations of circuits and computer program product(s) comprising software and/or firmware instructions stored on one or more computer readable memories that work together to cause an apparatus to perform one or more functions described herein; and (c) circuits, such as, for example, a microprocessor(s) or a portion of a microprocessor(s), that require software or firmware for operation even if the software or firmware is not physically present. This definition of ‘circuitry’ applies to all uses of this term herein, including in any claims. As a further example, as used herein, the term ‘circuitry’ also includes an implementation comprising one or more processors and/or portion(s) thereof and accompanying software and/or firmware. As another example, the term ‘circuitry’ as used herein also includes, for example, a baseband integrated circuit or applications processor integrated circuit for a mobile phone or a similar integrated circuit in a server, a cellular network device, other network device, and/or other computing device.
As defined herein a “computer-readable storage medium,” which refers to a non-transitory, physical storage medium (e.g., volatile or non-volatile memory device), can be differentiated from a “computer-readable transmission medium,” which refers to an electromagnetic signal.
As referred to herein, a direct memory copy (also referred to herein as wireless innercopy) may be a copy or transfer of one or more items of data of a memory block(s), area(s), section(s) or the entire memory content, or the like of memory from one device to another device. In some example embodiments, the connectivity and control operations associated with the transfer of the items of data from one device to one or more other devices may be facilitated, based in part, by a first interface and the actual transfer of the items of data may be facilitated, based in part, by a second interface.
Additionally, some example embodiments may facilitate operation of one or more wireless innercopies between the memory management platforms of two or more devices. In this regard, an example embodiment may create one or more wireless bonding lines between two or more memories (e.g., memories of chips (e.g., RF memory tags)), integrating these memories, or memory areas that are partially integrated, which may be overlapping during wireless bonding. Additionally, as referred to herein low level memory access may denote a lowest level of memory access, which may be utilized for a direct memory copy, to read and/or write content to one or more corresponding areas or block of memory.
The network 30 may include a collection of various different nodes (of which the second and third communication devices 20 and 25 may be examples), devices or functions that may be in communication with each other via corresponding wired and/or wireless interfaces. As such, the illustration of
One or more communication terminals such as the mobile terminal 10 and the second and third communication devices 20 and 25 may be in communication with each other via the network 30 and each may include an antenna or antennas for transmitting signals to and for receiving signals from one or more base sites. The base sites could be, for example one or more base stations (BSs) that is a part of one or more cellular or mobile networks or one or more access points (APs) that may be coupled to a data network, such as a Local Area Network (LAN), Wireless Local Area Network (WLAN), a Wi-Fi Network, a Metropolitan Area Network (MAN), and/or a Wide Area Network (WAN), such as the Internet. In turn, other devices such as processing elements (for example, personal computers, server computers or the like) may be coupled to the mobile terminal 10 and the second and third communication devices 20 and 25 via the network 30. By directly or indirectly connecting the mobile terminal 10 and the second and third communication devices 20 and 25 (and/or other devices) to the network 30, the mobile terminal 10 and the second and third communication devices 20 and 25 may be enabled to communicate with the other devices or each other. For example, the mobile terminal 10 and the second and third communication devices 20 and 25 as well as other devices may communicate according to numerous communication protocols including Hypertext Transfer Protocol (HTTP) and/or the like, to thereby carry out various communication or other functions of the mobile terminal 10 and the second and third communication devices 20 and 25, respectively.
Furthermore the mobile terminal 10 and the second and third communication devices 20 and 25 may communicate in accordance with, for example, Universal Serial Bus (USB), Radio Frequency (RF), Cellular, Near Field Communication (NFC), Bluetooth (BT), Infrared (IR) or any of a number of different wireline or wireless communication techniques, including Local Area Network (LAN), Wireless LAN (WLAN), Worldwide Interoperability for Microwave Access (WiMAX), Wireless Fidelity (Wi-Fi), Ultra-Wide Band (UWB), Wibree, Bluetooth Low Energy (LE) techniques and/or the like. As such, the mobile terminal 10 and the second and third communication devices 20 and 25 may be enabled to communicate with the network 30 and each other by any of numerous different access mechanisms. For example, mobile access mechanisms such as Wideband Code Division Multiple Access (W-CDMA), CDMA2000, Global System for Mobile communications (GSM), General Packet Radio Service (GPRS) and/or the like may be supported as well as wireless access mechanisms such as WLAN, WiMAX, and/or the like and fixed access mechanisms such as Digital Subscriber Line (DSL), cable modems, Ethernet, RF over fiber and/or the like.
According to some example embodiments, the first communication device (for example, the mobile terminal 10) may be a mobile communication device such as, for example, a wireless telephone or other devices such as a personal digital assistant (PDA), mobile computing device, camera, video recorder, audio/video player, positioning device, game device, television device, radio device, or various other like devices or combinations thereof. The second communication device 20 and the third communication device 25 may be mobile or fixed communication devices. However, in one example, the second communication device 20 and the third communication device 25 may be servers, remote computers or terminals such as personal computers (PCs) or laptop computers.
According to some example embodiments, the network 30 may be an ad hoc or distributed network arranged to be a smart space. Thus, devices may enter and/or leave the network 30 and the devices of the network 30 may be capable of adjusting operations based on the entrance and/or exit of other devices to account for the addition or subtraction of respective devices or nodes and their corresponding capabilities.
According to some example embodiments, the mobile terminal as well as the second and third communication devices 20 and 25 may employ an apparatus (for example, the apparatus 50 of
Referring now to
According to some example embodiments, the display 85 may be a touch screen display. The memory device 76 may include, for example, volatile and/or non-volatile memory. For example, the memory device 76 may be an electronic storage device (for example, a computer readable storage medium) comprising gates configured to store data (for example, bits) that may be retrievable by a machine (for example, a computing device like processor 70). In some example embodiments, the memory device 76 may be a tangible memory device that is not transitory. The memory device 76 may be configured to store information, data, files, applications (e.g., Web applications, etc.), instructions or the like for enabling the apparatus 50 to carry out various functions in accordance with example embodiments of the invention. For example, the memory device 76 could be configured to buffer input data for processing by the processor 70. Additionally or alternatively, the memory device 76 could be configured to store instructions for execution by the processor 70. As yet another alternative, the memory device 76 may be one of a plurality of databases that store information and/or media content (for example, pictures, videos, images, etc.).
The apparatus 50 may, according to some example embodiments, be a mobile terminal (for example, mobile terminal 10) or a fixed communication device or computing device configured to employ example embodiments of the invention. According to some example embodiments, the apparatus 50 may be embodied as a chip or chip set. In other words, the apparatus 50 may comprise one or more physical packages (for example, chips) including materials, components and/or wires on a structural assembly (for example, a baseboard). The structural assembly may provide physical strength, conservation of size, and/or limitation of electrical interaction for component circuitry included thereon. The apparatus 50 may therefore, in some cases, be configured to implement embodiments of the invention on a single chip or as a single “system on a chip.” As such, in some cases, a chip or chipset may constitute means for performing one or more operations for providing the functionalities described herein. Additionally or alternatively, the chip or chipset may constitute means for enabling user interface navigation with respect to the functionalities and/or services described herein.
The processor 70 may be embodied in a number of different ways. For example, the processor 70 may be embodied as one or more of various processing means such as a coprocessor, microprocessor, a controller, a digital signal processor (DSP), processing circuitry with or without an accompanying DSP, or various other processing devices including integrated circuits such as, for example, an ASIC (application specific integrated circuit), an FPGA (field programmable gate array), a microcontroller unit (MCU), a hardware accelerator, a special-purpose computer chip, or the like. In some example embodiments, the processor 70 may be configured to execute instructions stored in the memory device 76 or otherwise accessible to the processor 70. As such, whether configured by hardware or software methods, or by a combination thereof, the processor 70 may represent an entity (for example, physically embodied in circuitry) capable of performing operations according to embodiments of the invention while configured accordingly. Thus, for example, when the processor 70 is embodied as an ASIC, FPGA or the like, the processor 70 may be specifically configured hardware for conducting the operations described herein. Alternatively, as another example, when the processor 70 is embodied as an executor of software instructions, the instructions may specifically configure the processor 70 to perform the algorithms and operations described herein when the instructions are executed. However, in some cases, the processor 70 may be a processor of a specific device (for example, a mobile terminal or network device) adapted for employing embodiments of the invention by further configuration of the processor 70 by instructions for performing the algorithms and operations described herein. The processor 70 may include, among other things, a clock, an arithmetic logic unit (ALU) and logic gates configured to support operation of the processor 70.
In some example embodiments, the processor 70 may be configured to operate a connectivity program, such as a browser (e.g., Web browser) or the like. In this regard, the connectivity program may enable the apparatus 50 to transmit and receive Web content, such as for example location-based content or any other suitable content (e.g., applications), according to a Wireless Application Protocol (WAP), for example. It should be pointed out that the processor 70 may also be in communication with the display 85 and may instruct the display to illustrate any suitable information, data, content (e.g., media content) or the like.
The communication interface 74 may be any means such as a device or circuitry embodied in either hardware, a computer program product, or a combination of hardware and software that is configured to receive and/or transmit data from/to a network and/or any other device or module in communication with the apparatus 50. In this regard, the communication interface 74 may include, for example, an antenna (or multiple antennas) and supporting hardware and/or software for enabling communications with a wireless communication network (for example, network 30). In fixed environments, the communication interface 74 may alternatively or also support wired communication. As such, the communication interface 74 may include a communication modem and/or other hardware/software for supporting communication via cable, digital subscriber line (DSL), universal serial bus (USB), Ethernet or other mechanisms.
The user interface 67 may be in communication with the processor 70 to receive an indication of a user input at the user interface 67 and/or to provide an audible, visual, mechanical or other output to the user. As such, the user interface 67 may include, for example, a keyboard, a mouse, a joystick, a display, a touch screen, a microphone, a speaker, or other input/output mechanisms. In some example embodiments in which the apparatus is embodied as a server or some other network devices, the user interface 67 may be limited, remotely located, or eliminated. The processor 70 may comprise user interface circuitry configured to control at least some functions of one or more elements of the user interface, such as, for example, a speaker, ringer, microphone, display, and/or the like. The processor 70 and/or user interface circuitry comprising the processor 70 may be configured to control one or more functions of one or more elements of the user interface through computer program instructions (for example, software and/or firmware) stored on a memory accessible to the processor 70 (for example, memory device 76, and/or the like).
As shown in
In an example embodiment, the NFC module 71 may interrogate and communicate data with a device (e.g., another tag 27 of an apparatus 50) in an instance in which the apparatus 50 enters a proximity of the device. In this regard, when the NFC module 71 detects that it is within the proximity of the device (e.g., another apparatus 50), the NFC module 71 may wakeup and may provide a continuous wave (CW) signal indicating a clock reference of the apparatus 50 to the other device (e.g., an NFC module of another apparatus 50) during an interrogation phase. In response to completion of the interrogation phase, the NFC module 71 may provide an indication to an interface (e.g., primary WDI 51) that the interrogation phase is complete. Upon receipt of the indication from the NFC module 71 that the interrogation phase is complete, the interface (e.g., primary WDI 51) may facilitate negotiations for transfer of memory to the device (e.g., another apparatus 50), as described more fully below.
The primary WDI 51 may be any means such as a device or circuitry embodied in either hardware, a computer program product, or a combination of hardware and software that is configured to receive and/or transmit data from/to any other primary WDI 51 (e.g., 8 GHz WDI) of another device (e.g., another apparatus 50) in communication with the apparatus 50. In this regard, the primary WDI 51 may include, for example, an antenna (or multiple antennas) and supporting hardware and/or software for enabling communications with devices. Additionally, the primary WDI 51 may include a memory controller 54, an interface 55 and a memory 52. The interface 55 may be any means such as a device or circuitry embodied in either hardware, a computer program product, or a combination of hardware and software that is configured to receive and/or transmit data from/to the primary WDI 51. The primary WDI 51 may communicate with other electronic devices according to RF, BT, IR or any other suitable short range or near field communication techniques. The primary WDI 51 may communicate with apparatuses (e.g., tags 27 of respective apparatuses 50) when the primary WDI 51 is within a proximity, range or distance of the apparatuses. In this regard, the primary WDI 51 may send one or interrogation signals to a respective apparatus 50 when the apparatus 50 is within the proximity of another apparatus 50. The interrogation signals may excite or trigger the apparatuses 50 to read data (e.g., RF/NFC data signals (e.g., data transfer signals)) from a tag (e.g., a tag 27) of an apparatus.
The memory controller 54 may be a processor, coprocessor, controller, microprocessor or other processing element including integrated circuits (e.g., embodied as an ASIC or FPGA) or circuitry configured to execute instructions, which may be stored in the memory 52, or perform other logical functions or corresponding portions described herein. For example, the memory controller 54 may determine whether one or more blocks of memory that are available for remote access and/or for transferring of data stored in the blocks to other devices (e.g., tags 27 of other apparatuses) upon entering a proximity of the other devices. The memory controller 54 may facilitate communication of data via a Near Field Communication when the apparatus 50 is within the proximity of the other devices.
In an example embodiment, the memory controller 54 of the primary WDI 51 may perform a data transfer negotiation with another device (e.g., another apparatus 50) that is detected within a proximity of the apparatus 50, as described more fully below. For instance, the primary WDI 51 may negotiate with the detected device for direct transfer of data of the apparatus 50 to the other device. The memory controller 54 may facilitate storage of the negotiation information in the memory 52. Upon completion of the data transfer negotiation, the memory controller 54 of the primary WDI 51 may also provide an indication of the completion of the data transfer negotiation to the RF memory tag server 36 via the interface 55.
The RF memory tag server 36 may include a processor 44, a memory 45, and an interface 42. The interface 42 may be an interface for communicating with the primary WDI 51, the memory manager 73 and the secondary WDI 41 as well as any other device or network, as described more fully below. The memory 45 may store the data transfer negotiation information provided to the RF memory tag server 36 by the primary WDI 51 as well as any other suitable information. In some example embodiments, the processor 70 may be embodied as, or otherwise control the processor 44 of the RF memory tag server 36. The processor 44 may be any means such as a device or circuitry operating in accordance with software or otherwise embodied in hardware or a combination of hardware and software (for example, processor 70 operating under software control). In some other example embodiments, the processor 44 may be a coprocessor, controller, microprocessor or other processing element including integrated circuits (for example, embodied as an ASIC or FPGA) or circuitry configured to execute instructions, which may be stored in the memory 45, or perform other logical functions or corresponding operations described herein.
The processor 44 of the RF memory tag server 36 may negotiate with a device (e.g., a RF memory tag server of another apparatus 50) to determine at which frequency (e.g., 60 GHz) one or more areas (also referred to herein as memory blocks) of memory of the apparatus 50 may be available for remote access by another device (e.g., another apparatus 50). Additionally, the processor 44 of the RF memory tag server may facilitate a direct memory copy or transfer of data via the secondary WDI 41 (e.g., a 60 GHz WDI) to a device (e.g., a tag 27 of another apparatus 50) that the primary WDI 51 previously negotiated with for transfer of the data.
The memory manager 73 may be any means such as a device or circuitry operating in accordance with software or otherwise embodied in hardware or a combination of hardware and software (for example, processor 70 operating under software control). In some other example embodiments, the memory manager 73 may be a processor, coprocessor, controller, microprocessor or other processing element including integrated circuits (for example, embodied as an ASIC or FPGA) or circuitry configured to execute instructions, which may be stored in a memory (e.g., memory device 76), or perform other logical functions or corresponding operations described herein. Optionally, the memory manager 73 may be a standalone device, in some example embodiments. In some alternative example embodiments, the memory manager 73 may optionally be included within the RF memory tag server 36. The memory manager 73 may be part of a memory management infrastructure and may facilitate the performance of one or more memory management functions. In one example embodiment, the memory manager 73 may communicate negotiation information to the RF memory tag server 36. The negotiation information communicated to the RF memory tag server 36 by the memory manager 73 may be received by the memory manager 73 from the primary WDI 51. The memory manager 73 may manage the buffering, memory handling and may provide information to one or more memory controllers (e.g., memory controller 54, memory controller 43) corresponding to the allocation and/or de-allocation of one or more blocks or areas of memory. Additionally, the memory manager 73 may execute one or more commands received from the RF memory tag server 36.
The secondary WDI 41 may communicate with other electronic devices according to RF, BT, IR or any other suitable short range or Near Field Communication techniques. The secondary WDI 41 may communicate with apparatuses (e.g., respective tags 27 of apparatuses 50) when an apparatus 50 is within a given proximity, range or distance of the apparatuses. In this regard, the secondary WDI 41 may send data of identified memory blocks (for example, of the memory 47) to another apparatus 50 (e.g., a tag 27 of the apparatus 50) when the apparatus 50 is within a proximity of the apparatus and in response to receipt of an indication from the primary WDI 51 and/or the RF memory tag server 36 that the transfer of data has been negotiated with the other apparatus 50.
The secondary WDI 41 may include a processor 43 (also referred to herein as memory controller 43). The processor 43 may be a coprocessor, controller, microprocessor or other processing element including integrated circuits (e.g., embodied as an ASIC or FPGA) or circuitry configured to execute instructions, which may be stored in memory or perform other logical functions or corresponding operations of the primary WDI 41 described herein. The processor 43 of the secondary WDI 41 may facilitate the direct memory copy of the data by providing the data to another device (e.g., a tag 27 of another apparatus 50) based in part on analyzing the data transfer negotiation information which may be stored in the memory 45 or by being provided the data transfer negotiation information from the processor 44 of the RF memory tag server 36. The data for transfer (also referred to herein as direct memory copy) may be obtained from the memory 47 by the processor 43 and may be provided, by the processor 43 of the secondary WDI 41, to a memory (e.g., a non-volatile memory of another tag 27) of another apparatus 50 that the primary WDI 41 and/or the RF memory tag server 36 negotiated with for transfer of data, as described more fully below. In order to enable the secondary WDI 41 to access the area(s) of the memory 47 of the secondary WDI 41 negotiated for transfer of the data by the primary WDI 41, the processor 44 of the RF memory tag server 36 may provide one or more tokens to the secondary WDI 41. The token(s) may indicate and may authorize access to the area(s) (e.g., one or more blocks) of the memory 47 by secondary WDI 41 for transfer of the data in the area(s) of memory 47 to a memory of another device (e.g., a memory of another tag 27 of another apparatus 50) negotiated with by the primary WDI 51 and/or by the RF memory tag server 36. The memory 47 may be non-volatile memory or any other suitable memory. In an alternative example embodiment, the memories 45, 47 and 52 may be a single memory. In another alternative example embodiment, a single memory device may include the memories 45, 47 and 52.
By utilizing an NFC communication protocol 32, one or more messages related to memory management may be implemented by the memory manager 73 instead of transferring all of the messages between one or more higher layers (e.g., one or more applications being executed by a processor(s) (e.g., processor 70). By combining the NFC module 71 and the WDI 31, the memory manager 73 may generate one or more memory management messages to be transferred over a NFC link 35 (also referred to herein as NFC Logical Link Control Protocol (LLCP) 35) that may be routed directly to a RF memory tag MAC layer 39 (or another memory manager). The memory manager 73 may be integrated directly on top of (or parallel with) the RF memory tag server MAC layer 39, with a bridge to a NFC stack. As a result, one or more notifications may be forwarded to upper layers (e.g., to a processor (e.g., a processor 70)) whereas the memory manager 73 may handle the direct memory copy between devices (e.g., apparatuses 50).
Referring now to
In an instance in which the initiator device 102 and target device 104 are within a proximity (e.g., within 10 cm, etc.) of each other, the NFC module 116 of the initiator device 102 may wakeup (e.g., power up) and may exchange information such as, for example, continuous (CW) clock reference information as well as any other suitable information with the NFC module 126 of the target device 104 during an interrogation phase. The primary WDI 118 may communicate with the primary WDI 128 of the target device 104 to negotiate the data detected by the primary WDI 118 of the initiator device 102 that are available for remote access or data transfer to the target device 104. In an example embodiment, a user of initiator device 102 may, but need not, designate or specify that data is available for remote access. In another example embodiment, an application (e.g., a memory application executed by memory controller 54) may, but need not, designate or specify that data is available for remote access. In this regard, a memory controller (e.g., memory controller 54) of the primary WDI 118 may determine the available memory blocks for remote access by analyzing the memory 112. The memory controller (e.g., memory controller 54) of the primary WDI 118 may determine the available memory blocks in an instance in which the initiator device 102 and the target device 104 are close to each other such as, for example, within a predetermined proximity. The memory controller of the primary WDI 118 may also determine that there are overlapping memory areas between the initiator device 102 and the target device 104 when the devices 102, 104 are within the proximity. In this regard, the memory controller of the primary WDI 118 may determine that there are overlapping memory areas in an instance in which the memory controller determines that the memory 122 of the target device 104 has adequate memory available to store the data of the available memory blocks identified by the memory controller (e.g., memory controller 54) of the primary WDI 118 and when the primary WDI 118 determines that the target device has a secondary WDI (e.g., secondary WDI 124) available for reception of the data. In an example embodiment, a memory controller (e.g., memory controller 54) of the secondary WDI 128 of the target device 104 may provide data to the memory controller of the primary WDI 118 indicating whether it has adequate memory available for storing the data to be transferred and whether it has a secondary WDI (e.g., a 60 GHz WDI) available to receive the data.
In this example embodiment, the memory controller of the primary WDI 118 may determine that the memory blocks 39 and 40 are available for remote access and for direct copying or transfer to one or more memory blocks of the memory 122 of target device 104. The memory controller of the primary WDI 118 may provide this information to the primary WDI 128 during the negotiation and may specify to the primary WDI 128, an indication of the visibility of the available memory blocks. In this regard, the indication may include data specifying that the available memory blocks are part of the memory 112 of the secondary WDI 114.
The processor 44 of the RF memory tag server 110 may provide a token(s) to the secondary WDI 114 of the initiator device 102 indicating and allowing access to the memory blocks 39 and 40 by the secondary WDI 114 to enable the secondary WDI 114 to transfer the data of the memory blocks 39 and 40 to one or more memory blocks (e.g., blocks 1-N) of the memory 122 of the target device 104.
Referring now to
In addition, the memory controller 225 (e.g., memory controller 54) of the primary WDI 228 (e.g., primary WDI 51) may access the memory 222 (e.g., memory 47) via an RF memory tag server (not shown) of a memory manager (not shown) and via the secondary WDI 224 (e.g., secondary WDI 41).
The memory controller 215 may analyze the memory 212 and the memory controller 225 may analyze the memory 222 and may determine whether the memories 212, 222 have one or more memory blocks or areas with data available for remote access. In response to determining that there are one more blocks or areas of memory available for access, the memory controllers 215, 225 may, but need not, generate one or more pointers to the corresponding blocks or areas of memory and may identify the addresses of the blocks or areas of memory. The data associated with the pointers and/or the addresses may be stored in a memory (e.g., memory 52) by the memory controllers 215, 225. During negotiation of data for direct memory copy, the memory controllers 215, 225 may indicate the amount of data that is accessible for transfer. Alternatively, in an instance in which the memory controllers 215, 225 may negotiate to receive data for direct memory copy, the memory controllers 215, 225 may request the addresses and/or the pointers corresponding to the data that is available for transfer. In some example embodiments, the memory controllers 215, 225 may negotiate that only one memory controller (e.g., memory controller 215) performs the request for the addresses and/or pointers corresponding to the data.
In response to analyzing the memory 212, the memory controller 215 may identify one or more memory blocks 217 having content for direct memory copy to another device (e.g., memory 222). Similarly, in response to analyzing the memory 222, the memory controller 225 may identify one or memory blocks 227 having content for direct memory copy to another device (e.g., memory 212).
The memory controllers 215, 225 may negotiate the pointers for direct memory copy. For purposes of illustration and not of limitation, the memory controller 215 may negotiate with the memory controller 225 for transfer of data located at a memory block(s) associated with a pointer(s) and/or address(es). Additionally, the memory controllers 215, 225 may specify the manner in which to segment or divide one or more memory blocks, that are determined to be available for remote access, from different areas. For purposes of illustration and not of limitation, the memory controller 215 of device 203 may segment one or more memory blocks from a first area of memory 212 for transfer to another memory block or area of memory 222 of device 205. In this regard, the memory controller 215 may negotiate with the memory controller 225 regarding the manner in which to divide the content of the memory blocks during a memory access (also referred to herein as low level memory access (LLMA)) in which the data may be transferred via the secondary WDI 214 to the secondary WDI 224 for inclusion in the memory 222.
For instance, in this example embodiment, in response to analyzing the memory 212, the memory controller 215 may determine that the memory 212 has one or more memory blocks 217 available for remote access and for direct memory copy (e.g., transfer) to the memory 222. Similarly, in this example embodiment, in response to analyzing the memory 222, the memory controller 225 may determine that the memory 222 has one or more memory blocks 227 available for remote access and for direct memory copy (e.g., transfer) to the memory 212.
As another example, the memory controller 215 may inform the memory controller 225 from which physical memory area(s) one or more memory blocks may be read via a low level memory access path via the secondary WDI 214. In response, the memory controller 225 may request the memory 222 to read the data from that received physical memory area(s) directly to obtain and store the data in one or more memory block areas of memory 222.
Referring now to
In an instance in which the NFC module 316 detects that the initiator device 302 is within a proximity of the target device 304, the NFC module 316 may wakeup and trigger an interrogation phase with the NFC module 326. During the interrogation phase, the NFC module 316 may send a continuous wave signal to the NFC module 326 in which the continuous wave signal may include clock reference information of the initiator device 302. Upon completion of the interrogation phase, a memory controller (e.g., memory controller 54) of the primary WDI 318 may analyze the memory 312 of a tag (e.g., tag 27 (e.g. a RF memory tag)) and may determine whether the memory 312 has one or more memory blocks with data that are available for direct memory copy to the memory 322 of a tag (e.g., tag 27) of the target device 304. When the initiator device 302 and target device 304 are within a given proximity of each other, the primary WDI 318 may initiate a negotiation regarding available data of one or more memory blocks for transfer. For instance, in response to determining that the memory 312 has one or more blocks of memory with data available for transfer, the memory controller of the primary WDI 318 may negotiate with the primary WDI 328 and may send information to the primary WDI 328 indicating the data and the block(s) of memory available for transfer. In response to the primary WDI 318 receiving an indication that the primary WDI 328 desires to receive the data of the memory blocks, the memory controller of primary WDI 318 may complete the negotiation for set up of the data transfer. In this regard, the memory controller of the primary WDI 318 may send a message to the RF tag memory server 310 indicating that the negotiation is complete pertaining to the setup. In an alternative example embodiment, in an instance in which the primary WDI 328 sends the primary WDI 318 a message indicating that the primary WDI 328 would not like to receive the data of the memory blocks, the memory controller of the primary WDI 318 may end the negotiation and the data of the memory blocks may not be transferred to the target device 304.
In response to receipt of an indication that the negotiation between the primary WDI 318 and the primary WDI 328 is complete and that the primary WDI 328 sends a request to receive the available data of one or more memory blocks of the memory 312, the RF memory tag server 310 may negotiate at which frequency (e.g., 60 GHz), which memory blocks are available for remote access. In this regard, the processor (e.g., processor 44) of the RF memory tag server 310 may manage with a file system, for example, the manner in which the local blocks of memory are controlled. The RF memory tag server 310 may, but need not, direct that all or part of the corresponding data of the memory blocks is transformed to one local memory block 1 or from one local memory block 1 to another local memory block 4 during a memory cleanup technique 5. The RF memory tag server 310 may control the memory cleanup and may clean all the memory blocks 1 to 4 of the memory 312. In an example embodiment, the memory cleanup may be performed by the RF memory tag server 310 by moving the data of a memory block to another memory block and deleting the data from the memory block in which the data was originally moved as well as by performing any other suitable mechanisms of transferring data among memory blocks.
In some example embodiments, the RF memory tag server 310 may perform one or more local memory operations such as, for example, one or more memory cleanups and/or content organization at a local memory (e.g., memory 312) before registration. As referred to herein, before registration may denote before direct copy of overlapping memory areas is allowed.
In this example embodiment, when the initiator device 302 and the target device 304 are within a predefined proximity to each other, the RF memory tag server 310 may determine whether one or more memory blocks/areas of the memories 312 and 322 are overlapping to enable the transfer or direct copying of the data of the available blocks of memory from the memory 312 to the memory 322. The RF memory tag server 310 may determine whether one or more memory blocks are overlapping during registration in an instance in which the RF memory tag server 310 determines that direct copy of overlapping memory areas is allowed. The RF memory tag server 310 may determine that one or more memory blocks/areas are overlapping in an instance in which the RF memory tag server 310 determines that the memory (e.g., memory 322) in which the available data is to be transferred has sufficient space and capacity to store the full block of data in the memory (e.g., memory 322) and upon detection that a target device (e.g., target device 304) has a secondary WDI (e.g., secondary WDI 324) available to facilitate the reception of the data for storage in the memory (e.g., memory 322). In an example embodiment, the RF memory tag server 310 may determine whether the memory 322 has space and capacity to store the available data of the blocks and whether target device has a secondary WDI (e.g., secondary WDI 324) available for facilitating reception of the data by analyzing information obtained from the secondary WDI 318 during the negotiation with the secondary WDI 328 of the target device 304.
In the example embodiment of
Referring now to
In this manner, the secondary WDI 314 may wirelessly bond memory blocks 1 and 4 of memory 312 to corresponding memory blocks 1 and 4 of memory 322. By wirelessly bonding the memory blocks 1 and 4 of memory 312 with the corresponding memory blocks 1 and 4 of memory 322, the secondary WDI 314 may integrate these areas of the memories 312 and 322, as shown in
In an alternative example embodiment, another communication device (e.g., an apparatus 50, a second communication device 20, etc.) may instruct devices 302 and 304 to facilitate a direct memory copy between the devices 302 and 304. In this alternative example embodiment, the communication device may facilitate copying of data from a tag (e.g., tag 27 (e.g., a RF memory tag)) to another tag (e.g., tag 27). In this regard, the communication device may be an initiator/controller device in this alternative example embodiment.
Additionally, in an alternative example embodiment, the primary WDI 318 may provide or facilitate the direct memory copy with the primary WDI 328 instead of the secondary WDI 314 and the secondary WDI 324. In this regard, frequency negotiation may not be needed and as such preregistration (e.g., memory pointer negotiations) for transfer of one or more blocks or memory (e.g., memory 312) may be performed or executed by the primary WDI 318 and the primary WDI 328. The information associated with the preregistration may specify where the block(s) of memory starts and where the block(s) is to be transferred to (e.g., memory 322) within the same frequency (e.g., 8 GHz). In an instance in which the primary WDI 318 facilitates the transfer of the block(s) of memory to the primary WDI 328, the primary WDI 328 may send an acknowledgement to the primary WDI 318 acknowledging successful receipt of the transferred data associated with the block(s) of memory (e.g., memory 312).
Referring now to
In the example embodiment of
As such, the secondary WDI 414 may transfer the data of blocks 1 and 4 of memory 412 to the secondary WDI 424 which may provide the data to memory block 3 of memory 422. The RF memory tag server 410 may send a message to the secondary WDI 424 (for example, via the memory manager (MM) 417 in one example embodiment) indicating that the data transfer of memory blocks 1 and 4 of memory 412 is complete. In response, the processor of the secondary WDI 424 may send a message to the RF memory tag server 410 acknowledging successful receipt of the data. In an alternative example embodiment, the secondary WDI 414 may combine block 1 and block 4 of the memory 412 and may negotiate with device 404 for a low level memory access (LLMA) transfer of integrated block 4 of memory 412 to block 3 of the memory 422 of device 402. Additionally, in an example embodiment, the memory transfer with LLMA may be partially completed. In this regard, the secondary WDI 414, may set a mark (e.g., within the RF memory tag server 36 and/or memory controllers (e.g., memory controller 54)), that, for example, a block 1 of memory 412 was transferred but that transfer of block 4 is still pending and is waiting for the free memory area of memory 422 to become available. The RF memory tag servers 110 and 120 may negotiate regarding the manner in which to deal with this partially transferred block of memory (e.g., memory block 4. For example, an RF memory tag server (e.g., RF memory tag server 120) may free some memory blocks in the future, transfer block 4 to some other memory or set a timer that additional transfers should occur between the devices 402 and 404 within a certain time period.
Referring now to
In an instance in which the device 802 enters within a proximity of the devices 803, 804 and 805, the memory controller 824 of the primary WDI 818 (e.g., an 8 GHz WDI) may be linked or connected to (also referred to herein as chained) to the memory controller 834 of the primary WDI 828 (e.g., an 8 GHz WDI), the memory controller 844 of the primary WDI 838 (e.g., an 8 GHz WDI) and/or the memory controller 854 of the primary WDI 848 (e.g., an 8 GHz WDI). In this regard, the memory controller 824 of the primary WDI 818 may negotiate with the primary WDI 828, the primary WDI 838 and/or the primary WDI 848 for direct transfer of data available via one or more memory blocks 814 of the memory 810. Presume in this example embodiment that the memory controllers 834, 844 and 854 may send a message to the memory controller 824 of the primary WDI 818 requesting transfer of the available data of the memory block(s) of memory 810 to one or more blocks 818, 815, and 826 of their respective memories 816, 811 and 825. In this regard, the memories 810, 816, 811 and 825 may be linked or chained together by the memory controller 824. In some example embodiments, a memory controller (e.g., memory controller 824) or chain origin device (not shown) and one or more target controllers (not shown) may handle the negotiation and one or more intermediate controllers (e.g., memory controller 834) may be bypassed, or the linking of the memories may be generated one chain at a time.
In an instance in which a processor (e.g., processor 43) of the secondary WDI 812 (e.g., a 60 GHz WDI) receives an instruction from an RF memory tag server (e.g., RF memory tag server 36) to transfer the data of one or more memory blocks 814, the secondary WDI 812 may facilitate transfer of the data to the secondary WDI 822 (e.g., a 60 GHz WDI), the a secondary WDI 832 (e.g., 60 GHz WDI), and/or the a secondary WDI 842 (e.g., a 60 GHz WDI) to enable the secondary WDI 822, the secondary WDI 832 and/or the secondary WDI 842 to provide the data to respective memories 816, 811 and/or 825. In an example embodiment, the chained direct memory copy performed by the secondary WDI 812 for transferring the data of one or more blocks 814 to the memories 816, 811 and/or 825 may conform to a Universal File Storage (UFS) system. As such, the secondary WDI 812, the secondary WDI 822, the secondary WDI 832 and the secondary WDI 842 may be linked to each other and wirelessly bonded via one or more UFS lines between the memories 810, 816, 811 and/or 825.
Referring now to
In this example embodiment, in an instance in which the RF memory tag server 910 may negotiate with the RF memory tag server 920 (via the MM 917 and the MM 927 in an example embodiment), for example, for the frequency (e.g., 60 GHz) at which one or more memory blocks may be available for remote access, the RF memory tag server 910 may also send one or more parameters such as, for example, one or more power tokens and/or one or more memory tokens to the RF memory tag server 920 during the negotiation. In an example embodiment, the power token(s) may include data specifying that the initiator device 902 may power the memory 922 during the transfer of data to the target device 904 or for some other predefined time period or duration. In this regard, the target device 904 may conserve energy. This approach of powering the memory 922 may be beneficial in an instance in which the memory manager 927 is part of a passive tag (e.g., a passive RF tag, a passive NFC tag) in which the passive tag may not have its own power source.
As an example, in an instance in which the RF memory tag server 910 of the initiator device 902 provides a power token(s) to the RF tag memory server 920 of the target device 904, the RF memory tag server 910 may be able facilitate power to the memory area of the memory 922 and as such the target device 904 may shut down its peak power to the memory 922 and may save power.
Additionally, in an example embodiment, the memory token(s) may include data specifying the target device 904 to give the initiator device 902 some data (e.g., a file, etc.). As an example, in an instance in which the RF memory tag server 910 provides the memory token(s) to the RF memory tag server 920 during a negotiation, the RF memory tag server 920 may evaluate the data (e.g., a file) associated with the memory token(s) requesting the RF memory tag server 920 to facilitate transfer, via the secondary WDI 924, of requested data (e.g., a file, etc.) in one or more available memory blocks of memory 922 to the initiator device 902. In an example embodiment, the RF memory tag server 920 may instruct the secondary WDI 924 to transfer the requested data to the initiator device 902 in response to receipt of the data in one or more memory blocks of memory 912 which may be sent via the secondary WDI 914 to the target device 904.
Referring now to
In this example embodiment, in an instance in which the RF memory tag server 510 may negotiate with the RF memory tag server 520, for example, for the frequency (e.g., 60 GHz) at which one or more memory blocks may be available for remote access, the RF memory tag server 510 may send one or more parameters such as, for example, one or more items of privacy data (also referred to herein as privacy enabler data) to the RF memory tag server 520. The privacy data may relate to one or more privacy rules, privacy instructions or the like restricting or prohibiting access to specified data of one or more memory blocks/areas during a direct memory copy, or any other time period, in which some content is provided from available memory blocks of the memory 512 to the memory 522.
For purposes of illustration and not of limitation, the RF memory tag server 510 may send a message including data to the RF memory tag server 520, during a negotiation, indicating that the data of memory block 1 is available for transfer at a specified frequency (e.g., 60 GHz) and may also include privacy data in the message indicating to the RF memory tag server 520 that data of memory block 4 of the memory 512 is restricted or prohibited from being copied or provided to the memory 522 of the target device 504. In this regard, the secondary WDI 524 of the target device 504 is unable or prohibited to access the data of memory block 4 during the receipt of data of memory block 1 of the memory 512.
Referring now to
At operation 1115, an apparatus (e.g., apparatus 50 (e.g., initiator device 102)) may enable provision, via a second interface (e.g., secondary WDI 41 (e.g., secondary WDI 124 (e.g., a 60 GHz WDI))), of the at least one item of data to the device, while within the proximity of the device. The apparatus may enable the provision via the second interface in response to receipt of an indication from the device requesting the item of data in order to enable the device to store the item of data in one or more agreed upon memory blocks or areas of remote memory (e.g., memory 122 (e.g., memory 47)).
It should be pointed out that
Accordingly, blocks of the flowchart support combinations of means for performing the specified functions. It will also be understood that one or more blocks of the flowchart, and combinations of blocks in the flowchart, can be implemented by special purpose hardware-based computer systems which perform the specified functions, or combinations of special purpose hardware and computer instructions.
In some example embodiments, an apparatus for performing the method of
Many modifications and other embodiments of the inventions set forth herein will come to mind to one skilled in the art to which these inventions pertain having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the inventions are not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Moreover, although the foregoing descriptions and the associated drawings describe example embodiments in the context of certain example combinations of elements and/or functions, it should be appreciated that different combinations of elements and/or functions may be provided by alternative embodiments without departing from the scope of the appended claims. In this regard, for example, different combinations of elements and/or functions than those explicitly described above are also contemplated as may be set forth in some of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/FI2011/050767 | 9/7/2011 | WO | 00 | 2/28/2014 |