MX2012004910A - Acceso concurrente a un grupo de memoria compartida entre un dispositivo de acceso de bloque y un dispositivo de acceso de grafico. - Google Patents

Acceso concurrente a un grupo de memoria compartida entre un dispositivo de acceso de bloque y un dispositivo de acceso de grafico.

Info

Publication number
MX2012004910A
MX2012004910A MX2012004910A MX2012004910A MX2012004910A MX 2012004910 A MX2012004910 A MX 2012004910A MX 2012004910 A MX2012004910 A MX 2012004910A MX 2012004910 A MX2012004910 A MX 2012004910A MX 2012004910 A MX2012004910 A MX 2012004910A
Authority
MX
Mexico
Prior art keywords
memory
block
access
access device
peripheral
Prior art date
Application number
MX2012004910A
Other languages
English (en)
Inventor
Matthew H Klapman
Brian E Mastenbroook
Original Assignee
Wearable Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wearable Inc filed Critical Wearable Inc
Publication of MX2012004910A publication Critical patent/MX2012004910A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Systems (AREA)
  • Computer And Data Communications (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Multi Processors (AREA)
  • Storage Device Security (AREA)

Abstract

Un dispositivo de acceso de gráfico y un dispositivo de acceso de bloque pueden simultáneamente acceder a un grupo de memoria compartida entre los dispositivos. El grupo de memoria puede incluir una o más disposiciones de memoria accedidas como una memoria lógica individual. El dispositivo de acceso de bloque accede al grupo de memoria como una disposición plana de bloques de memoria, y el dispositivo de acceso de gráfico accede al grupo de memoria como un sistema de archivo jerárquico. El acceso simultáneo se logra verificando una o más operaciones de acceso de bloque de memoria realizadas por el dispositivo de acceso de bloque, mientras está accediendo al grupo de memoria. Las operaciones de acceso de bloque son traducidas a una estructura de datos de gráfico incluyendo una pluralidad de señaladores que trazan el grupo de memoria al sistema de archivo jerárquico. Un procesador regula el acceso al grupo de memoria, y está configurado para permitir que el dispositivo de acceso de gráfico tenga acceso al grupo de memoria concurrentemente con el dispositivo de acceso de bloque, de acuerdo con la estructura de datos de gráfico.

Description

ACCESO CONCURRENTE A UN GRUPO DE MEMORIA COMPARTIDA ENTRE UN DISPOSITIVO DE ACCESO DE BLOQUE Y UN DISPOSITIVO DE ACCESO DE GRAFICO RECLAMACION DE PRIORIDAD BAJO U.S.C. S 119 La presente Solicitud para Patente reclama prioridad a la Solicitud Provisional No. 61/255,002; titulada "Método, Sistemas, Aparatos, y Artículos de Fabricación para Agregar Almacenamiento, Comunicaciones, Computación, y Servicios a Uno o Más Dispositivos Electrónicos y/o Redes de Datos", presentada el 26 de octubre, 2009, e incorporada aquí expresamente para referencia en su totalidad como se describe completamente aquí.
CAMPO TECNICO La presente descripción se refiere generalmente a sistemas de datos electrónicos, y en particular, a sistemas computacionales y/o de comunicaciones que proporcionan almacenamiento de datos.
ANTECEDENTES La industria de computadora tiene varios estándares de conectividad para periféricos, los más populares en años recientes siendo el conductor común en serie universal (USB). USB y otros estándares de conectividad han migrado más allá de computadoras para permitir conectividad entre miles de dispositivos electrónicos. Algunos de los periféricos USB más utilizados han sido dispositivos que proporcionan almacenamiento de datos y conectividad inalámbrica. Existen varios "tipos" de USB comunes que además han definido protocolos de conectividad y convenciones que son específicas para un uso particular. Estas definiciones permiten a los dispositivos USB cumplir con estos protocolos para inter-operar con sistemas anfitriones sin necesitar que se agregue software especial al anfitrión. Por ejemplo, un protocolo de conectividad USB común es la especificación de Almacenamiento masivo de USB que permite al USB alojar para escribir/leer datos hacia/desde cualquier periférico de USB que sigue esa especificación.
Se conocen dispositivos periféricos multifuncionales. Por ejemplo, existen periféricos USB que contienen una unidad de procesamiento central (CPU) para permitir funciones más útiles, tales como codificación/descodificación criptográfica al almacenamiento de datos. También, se han construido combinaciones de almacenamientos de datos y conectividad inalámbrica, por ejemplo, en un periférico individual. Cuando estos periféricos multifuncionales son dispositivos USB, típicamente se comportan como dispositivos USB lógicamente separados, incluso aunque están físicamente en un dispositivo periférico individual. Cada función cumple con su perfil USB respectivo, que define interoperabilidad entre el anfitrión y cada función, pero estás dos funciones operan exclusivamente entre sí. Por ejemplo, el almacenamiento de datos utilizará independientemente el protocolo de almacenamiento masivo USB, mientras una función inalámbrica utilizaría el protocolo de red inalámbrica USB. Estas funciones independientes pueden requerir controladores de software separados para el anfitrión o requieren que el anfitrión soporte múltiples protocolos USB para acceder a las diferentes funciones en el periférico.
Arquitecturas USB existentes consisten de los siguientes tipos. La Figura 1 m uestra un sistema USB de la técnica previa típico 10 que incluye un anfitrión USB 12 conectado a un dispositivo periférico USB 14. El periférico de almacenamiento USB 14 puede ser una unidad miniatura de estado sólido, unidad dura de medios giratoria, CD, unidad DVD o similares. Existe una interfase de USB 16 que consiste de una máquina de estado para correr el protocolo de almacenamiento USB, y éste se conecta al almacenamiento de datos físicos 18, accediendo a los datos en una disposición que consisten de "bloques" de datos (por ejemplo, bloques dirigibles 512) para leer y/o escribir. El anfitrión USB 12 define las estructuras de datos de nivel superior, tales como archivos, carpetas, directorios, y disposiciones de manejo de almacenamiento (por ejemplo, tablas de distribución de archivos).
La Figura 2 muestra un sistema de comunicación USB 20 de la técnica previa, que tiene una arquitectura similar al sistema 10 de la Figura 1, excepto que el dispositivo periférico USB 22 incluye componentes electrónicos de comunicación inalámbrica o cableada 24 acoplados a la ¡nterfase USB 16. Esta disposición puede corresponder a un estándar USB o requerir un controlador de software especial en el anfitrión 12 para interconectarse apropiadamente a los componentes electrónicos de comunicación 24.
La Figura 3 ilustra un sistema 30 de la técnica previa en donde un periférico USB 32 combina dos funciones, almacenamiento de datos 18 y componentes electrónicos de comunicación inalámbrica o cableada 24, dentro de un periférico USB individual 32. El protocolo USB permite múltiples trayectorias lógicas que el anfitrión USB 12 se ve como dos periféricos USB virtualmente separados. Mientras exista alguna participación física de componentes periféricos internos por el almacenamiento y funciones inalámbricas en este ejemplo, tales como fuentes de energía de participación y el controlador esclavo USB, no hay comunicaciones directas entre el almacenamiento y las funciones inalámbricas con el periférico USB 32. Se han tratado lógicamente como dispositivos mutuamente exclusivos.
La Figura 4 muestra un sistema 40 de la técnica previa en donde un periférico USB 42 incluye una función interna al dispositivo periférico USB 42 que es transparente para el anfitrión USB 12, en este caso, codificación/de.scodificación criptográfica 44. El anfitrión USB 12 ve el almacenamiento de datos 18 como una disposición de almacenamiento de datos normal, no codificada criptográficamente, pero si la autentificación apropiada no es correcta, tal como un sensor de huella digital en el dispositivo 42 o contraseña, la descodificación criptográfica fallará y el anfitrión USB 12 no será capaz de acceder al almacenamiento de datos 18.
BREVE DESCRIPCION DE LA INVENCION Existe una necesidad de agregar funcionalidad a periféricos sin requerirá actualizaciones a un anfitrión. Es deseable reducir la necesidad de software anfitrión adicional, especialmente para dispositivos de bajo costo. También, existe una necesidad de agregar funcionalidad adicional a periféricos ya sea atender desventajas con los protocolos actuales y/o agregar funcionalidad sin agregar complejidad para el usuario. Estas necesidades y otras están dirigidas por las mejoras aquí descritas.
De acuerdo con un aspecto de esta descripción, se proporciona un método para un dispositivo de acceso de gráfico y un dispositivo de acceso de bloque para acceder simultáneamente a un grupo de memoria compartida entre los dispositivos. Un dispositivo de acceso de gráfico puede ser cualquier dispositivo electrónico, por ejemplo una computadora, que accede a datos organizados en un gráfico, por ejemplo, una estructura de sistema de archivo jerárquico, por lo cual se resuelve el gráfico en direcciones específicas dentro del grupo de memoria utilizando una estructura de datos. Un dispositivo de acceso de bloque es cualquier dispositivo electrónico que accede a una memoria utilizando direcciones de ubicación de inicio distintas y direcciones de ubicación final, en donde cualquier acceso de gráfico se ha resuelto previamente para memoria de bloque exclusiva del dispositivo. El grupo de memoria puede incluirse, al menos en parte, en un dispositivo periférico. El método incluye verificar una o más operaciones de acceso de bloque de memoria realizadas por el dispositivo de acceso de bloque mientras accede al grupo de memoria; traducir las operaciones de acceso de bloque a una estructura de datos de gráfico que incluye una pluralidad de señaladores que trazan el grupo de memoria a un sistema de archivo jerárquico; y el dispositivo de acceso de gráfico que accede al grupo de memoria concurrentemente con el dispositivo de acceso de bloque, de acuerdo con la estructura de datos de gráfico.
De acuerdo con otro aspecto, un aparato incluye un grupo de memoria compartida entre un dispositivo de acceso de gráfico y un dispositivo de acceso de bloque. El aparato también incluye medios para verificar una o más operaciones de acceso de bloque de memoria realizadas por el dispositivo de acceso de bloque mientras accede al grupo de memoria; medios para traducir las operaciones de acceso de bloque en una estructura de datos de gráfico incluyendo una pluralidad de señaladores que trazan el grupo de memoria a un sistema de archivo jerárquico; y medios para el dispositivo de acceso de gráfico que accede al grupo de memoria concurrentemente con el dispositivo de acceso de bloque, de acuerdo con la estructura de datos de gráfico.
De acuerdo con un aspecto adicional, un dispositivo periférico incluye una memoria, una primera interfase de comunicación y una segunda interfase en comunicación. La memoria se comparte entre un dispositivo de su acceso de gráfico y un dispositivo de acceso de bloque. La primera interfase de comunicación está configurada para comunicarse con el dispositivo de acceso de bloque y la segunda interfase de comunicación está configurada para comunicarse con el dispositivo de acceso de gráfico. El procesador está configurado para verificar una o más operaciones de acceso de bloque y memoria realizadas por el dispositivo de acceso de bloque mientras accede a la memoria; traducir las operaciones de acceso de bloque en una estructura de datos de gráfico incluyendo una pluralidad de señaladores que trazan la memoria a un sistema de archivo jerárquico, y permitir al dispositivo de acceso de gráfico acceder concurrentemente a la memoria, de acuerdo con la estructura de datos de gráfico, mientras el dispositivo de acceso de bloque también está accediendo a la memoria.
De acuerdo con un aspecto adicional, un dispositivo periférico se comunica con un anfitrión externo o dispositivo de cliente y hace una determinación inteligente si el dispositivo de anfitrión/cliente necesita comunicarse utilizando acceso de bloque de gráfico. El dispositivo periférico entonces se comunica con el dispositivo externo por consiguiente.
Otros aspectos, características, ventajas y variaciones de las mejoras descritas aquí serán o se volverán evidentes para un experto en la técnica con el examen de las siguientes figuras y la descripción detallada. Se pretende que tales aspectos adicionales, características, variaciones y ventajas se incluyan dentro de esta descripción y se protejan por las reivindicaciones anexas.
BREVE DESCRIPCION DE LOS DIBUJOS Se debe entender que los dibujos son únicamente para propósitos de ilustración y no definen los límites de las reivindicaciones anexas. Además, los componentes en las figuras no son necesariamente a escala. En las figuras, números de referencia similares designan partes correspondientes a través de las diferentes vistas.
Las Figuras 1-4 ilustran sistemas periféricos de la técnica previa.
La Figuras 5 es un diagrama de bloques que ilustra ciertos componentes de un sistema ilustrativo incluyendo un dispositivo periférico multif uncional que permite acceso simultáneo a una memoria.
La Figura 6 es un diagrama conceptual de los contenidos ilustrativos almacenados en la memoria incluidos en el dispositivo periférico multifuncional de la Figura 5.
La Figura 7 es un diagrama de bloques que ilustra ciertos componentes de una arquitectura de dispositivo periférico multifuncional ilustrativa, alternativa que incluye más de dos interfases de comunicación.
La Figura 8 es un diagrama de bloques que ilustra ciertos componentes de una implementación específica, ilustrativa del dispositivo periférico multifuncional mostrado en la Figura 5.
La Figura 9 es un diagrama que ilustra una arquitectura de software ilustrativa del dispositivo periférico multifuncional.
La Figura 10 es un cuadro de flujo que ilustra un método ilustrativo para permitir un dispositivo de acceso de gráfico y un dispositivo de acceso de bloque acceder simultáneamente a un grupo de memoria compartida.
La Figura 11 es un diagrama conceptual que ilustra otro ejemplo de trazar una estructura de datos de gráfico a una disposición de memoria de bloque.
La Figura 12 es un diagrama conceptual que ilustra un ejemplo para utilizar una técnica de memoria de sombra para permitir acceso de memoria simultáneo para un dispositivo de acceso de bloque y dispositivo de acceso de gráfico.
La Figura 13 es un cuadro de flujo que ilustra una memoria de sombra de método ilustrativo para permitir acceso simultáneo a un grupo de memoria.
La Figura 14 es un diagrama conceptual que ilustra un grupo de memoria distribuido en múltiples dispositivos para soportar el cómputo de nube.
La Figura 15 es un diagrama conceptual que ilustra una división ilustrativa de un grupo de memoria en áreas restringidas para ciertos usuarios.
La Figura 16 es un cuadro de flujo que ilustra un método ilustrativo para transmitir paquetes PCT/IP utilizando espacio de memoria reducido.
La Figura 17 es un diagrama conceptual que ilustra un sistema de procesamiento de pago que incluye un dispositivo periférico.
DESCRIPCION DETALLADA La siguiente descripción detallada, que hace referencia a e incorpora los dibujos, describe e ilustra una o más modalidades específicas de lo que se reclama. Estas combinaciones, ofrecidas no para limitar sino únicamente para ejemplificar y enseñar la invención, se muestran y describen en detalle suficiente para permitir a aquellos expertos en la técnica practicar la invención definida por las reivindicaciones. De esa forma, en donde sea apropiado obscurecer la invención, la descripción puede omitir cierta información conocida por aquellos expertos en la técnica.
La palabra "ilustrativo" se utiliza a través de esta descripción para significar "que sirve como un ejemplo, caso o ilustración". Cualquier modalidad o característica aquí descrita como "ilustrativa" no necesariamente va a interpretarse como preferida o ventajosa sobre otras modalidades o características.
Se describen aquí soluciones novedosas para periféricos que mejoran la utilidad de sistemas existentes mientras minimizan o eliminan actualizaciones para el sistema anfitrión y/o proporcionan nuevas características sin añadir complejidad al usuario.
Las soluciones consisten en nuevos métodos y arquitecturas para dispositivos periféricos, tales como periféricos USB, que apalancan los protocolos más utilizados para almacenamiento de datos, tales como protocolo de Almacenamiento Masivo USB, y añaden funcionalidad adicional sin requerir software anfitrión adicional o requerir otros protocolos de comunicación USB. Esta funcionalidad adicional puede incluir, pero no está limitada a, interfases de comunicación adicionales, seguridad, servidor, sincronización, y otros servicios que se unen en redes mayores, tal como Internet.
Aunque las arquitecturas ilustrativas y el método aquí descrito utilizan USB, los métodos y arquitecturas no están limitados a USB, y a su vez pueden utilizarse otros conductores comunes y protocolos de comunicaciones, por ejemplo eSATA, ¡SCSI, o similares.
Es una ventaja adicional proporcionar nuevos servicios que están permitidos como un resultado de apalancar las arquitecturas de dispositivo periférico y métodos aquí descritos. Por ejemplo, también se describen arquitecturas de sistema novedosos que incorporan redes de área más alta para proporcionar servicios a usuarios sin añadir complejidad para el usuario.
I. Arquitectura de Dispositivo Periférico La Figura 5 es un diagrama de bloques que ilustra ciertos componentes de un sistema ilustrativo 50 que incluye un dispositivo periférico multifuncional 54 que permite acceso simultáneo a una memoria 66 por un dispositivo de acceso de bloque 52 y uno o más dispositivos de acceso de gráficos 56, 58, 60. El sistema 50 incluye el dispositivo de acceso de bloque 52, el dispositivo periférico 54 y los dispositivos de acceso de gráfico 56, 58, 60. El dispositivo de acceso de bloque 52 se comunica con el periférico 54 a través de una conexión por cable (cableada), y los dispositivos de acceso de gráficos 56-60 se comunican con el periférico 54 a través de uno o más enlaces inalámbricos.
Cada dispositivo de acceso de gráficos 56-60 puede ser cualquier dispositivo electrónico, por ejemplo, una computadora, asistente digital personal (PDA), consola de videojuego de teléfono celular, o similares, que accede a datos organizados en un gráfico, por ejemplo, una estructura del sistema de archivo jerárquico, por lo cual el gráfico se resuelve en direcciones específicas dentro de la memoria 66 utilizando una estructura de datos de gráfico. La estructura de datos de gráfico define un grupo de trazados entre gráfico(s) y grupo(s) de memoria. Un grupo de memoria es una o más disposiciones de memoria accedidas como una disposición de memoria individual, lógica.
Más específicamente, la estructura de datos de gráfico incluyendo una pluralidad de señaladores que trazan la memoria 66 a un sistema de archivo jerárquico. Ejemplos de estructuras de datos de gráfico que pueden utilizarse con los periféricos 54, 70, 100 descritos aquí pueden incluir una base de datos de almacenamiento de archivo tal como el cuadro de distribución de archivo (FAT) o sus variantes (vFAT, FAT32, FAT16, exFAT, NTFS, NFS, y similares).
La memoria 66 es un grupo de memoria, o puede ser parte de un grupo de memoria mayor que incluye otras memorias físicas y/o dispositivos. La estructura de datos y contenidos de datos pueden residir en el mismo grupo de memoria, por ejemplo, el sistema de archivo de tabla de distribución de archivo (FAT) que contiene señaladores y los datos se almacenan juntos en un grupo de memoria común. Alternativamente, la estructura de datos de gráfico puede almacenarse en una memoria separada. En algunos casos, el dispositivo de acceso de gráficos 56-60 es un cliente Wi-Fi. En otros casos, un dispositivo de acceso de gráficos 56-60 puede ser un anfitrión USB.
La Figura 6 es un diagrama conceptual de alto nivel que ilustra una porción 150 ilustrativa de la memoria 66 que almacena la estructura de datos gráfica 152 y contenidos de datos 154 juntos en la memoria compartida 66. En el ejemplo mostrado, la estructura de datos gráfico 152 reside en ubicaciones de memoria 0-m, y los datos 154 residen en bloques de memoria localizados en las direcciones m + 1 a n. Aunque se muestran como estando en ubicaciones de memoria contiguas, los datos 154 y la estructura de datos de gráfico 152 no necesitan localizarse en bloques de memoria contiguos, y puede fragmentarse en la memoria 66 u otras memorias.
Regresando a la Figura 5, el dispositivo de acceso de bloque 52 puede ser cualquier dispositivo electrónico por ejemplo, una computadora, asistente digital personal (PDA), teléfono celular, consola de videojuegos, o similares, que acceden a la memoria 66 utilizando un esquema de dirección de bajo nivel, es decir, direcciones de ubicación de inicio distintas y direcciones de ubicación final, sin el uso de una estructura de datos de gráfico. En algunos casos, el dispositivo de acceso de bloque 52 es un anfitrión USB que corre el protocolo de Almacenamiento Masivo USB para acceder al periférico 54.
El dispositivo periférico 54 incluye un procesador 62, una interfase por cable 64, la memoria 66 y una interfase inalámbrica 68. El procesador 62 puede ser cualquier procesador digital adecuado, tal como un procesador o instrucciones o DSP que ejecuta instrucciones de software/firmware, circuito integrado especifico de aplicación (ASIC), máquina de estado implementada en hardware, o similares para realizar las funciones aquí descritas. La memoria 66 puede ser cualquier dispositivo de memoria adecuado, que incluye una memoria desprendible del dispositivo periférico 54, tal como una tarjeta digital segura (SD), tarjeta SDHC, tarjeta SDXC, unidad dura, o memoria de estado sólido. La comunicación por cable entre el dispositivo de acceso de bloque 52 y el periférico 54 es preferiblemente USB, y las comunicaciones inalámbricas pueden ser Wi-Fi. De esa forma, la interfase por cable 64 puede ser un módulo de interfase USB comercialmente disponible, y la interfase inalámbrica 68 puede ser un módulo de interfase Wi-Fi comercialmente disponible.
El periférico 54 contiene más de una función, en donde una de las funciones puede ser una disposición de almacenamiento de datos en la memoria 66 accesible en cualquier dispositivo de acceso de bloque 52 ó los dispositivos de acceso de gráfico 56-60. En el ejemplo mostrado, la otra función es la interfase de comunicaciones inalámbrica 68. La disposición de almacenamiento de datos se trata como una memoria compartida en el periférico 54. Se comparte entre las funciones y/o dispositivos externos soportados por el periférico 54. El procesador 62 traza cada función a la memoria 66, y controla accesos a la memoria 66 por el acceso de bloque y los dispositivos de acceso de gráfico 52, 56-60. Utilizando la memoria compartida 66, las funciones proporcionadas por el periférico 54, por ejemplo, la interfase inalámbrica 68 y la disposición de almacenamiento de datos, no necesitan comunicarse directamente entre si con el fin de comunicar o compartir datos entre el dispositivo de acceso de bloque externo 52 y los dispositivos de acceso de gráficos 56-60. A su vez, las funciones indirectamente se comunican entre sí a través de la memoria 66.
El procesador 62 está configurado para permitir acceso simultáneo a la memoria 66 por el dispositivo de acceso de bloque 52 y los dispositivos de acceso de gráfico 56-60. Esto se realiza por el procesador 62 .que verifica una o más operaciones de acceso de bloque de memoria realizadas por el dispositivo de acceso de bloque 52 mientras accede a la memoria 66. Como se describirá con mayor detalle a continuación, el procesador 62 traduce las operaciones de acceso de bloque a una estructura de datos de gráfico que incluye una pluralidad de señaladores que trazan la memoria 66 a un sistema de archivo jerárquico. Esto permite a cualquiera de los dispositivos de acceso de gráficos 56-66 acceder concurrentemente a la memoria 66 con el dispositivo de acceso de bloque 52. Uno o más de los dispositivos de acceso de gráficos 56-66 puede acceder a la memoria 66 de acuerdo con la estructura de datos de gráfico, mientras el dispositivo de acceso de bloque también está accediendo a la memoria 66.
Como se utiliza aquí, los términos "simultáneos", "simultáneamente", "concurrente" y "concurrentemente" pueden tomar sus significados ordinarios, pero también significan "aparentemente simultáneo" y "aparentemente concurrente", es decir, que los accesos de memoria parecen ser simultáneos por usuarios y/o procedimientos en el dispositivo de acceso de bloque 52 y al menos uno de los dispositivos de acceso de gráficos 56-60, incluso aunque los accesos de memoria reales dentro del dispositivo periférico 54, 70 ó 100 pueden ocurrir secuencialmente. Dos métodos prácticos para proporcionar acceso simultáneo a la memoria periférica pueden ser de acceso multiplexado a la memoria a una velocidad que aparezca como simultáneo, o acceso simultáneo verdadero al incluir una memoria de puertos múltiples en el periférico.
Aunque el dispositivo de acceso de bloque 52 se muestra en la Figura 5 como estando conectado al periférico a través de la inferíase por cable 64, el dispositivo de acceso de bloque puede estar alternativamente conectado en una conexión inalámbrica o una combinación de conexiones inalámbricas y por cable. De forma similar, cualquiera de los dispositivos de acceso de gráfico 56-60 puede ser alternativamente conectado al periférico 54 utilizando una conexión por cable, en lugar de un enlace inalámbrico, o una combinación de conexiones inalámbricas y por cable. También, existen situaciones en donde ninguno de los accesos de bloque se está realizando, únicamente acceso de gráfico.
Este periférico 54 puede extenderse a una arquitectura periférica más general como se muestra en la Figura 7. La Figura 7 es un diagrama de bloques que ilustra ciertos componentes de un dispositivo periférico multifuncional 70 ilustrativo, alternativo que incluye más de dos interfases de comunicación 72, 74, 76, 78. El dispositivo periférico 70 también incluye el p rocesador 62, memoria 66 y una fuente de energía 80, que puede ser una batería, tal como una batería recargable u otro componente de almacenamiento adecuado, tal como un súper-capacitor. Cada una de las interfases de comunicación 72-78 puede ser una interfase por cable o inalámbrica, tales como cualquiera de aquellas aquí descritas. Cada una de las interfases de comunicación 72-78 es una función diferente en el periférico 70, y el procesador 62 traza las interfases 72-78 a la memoria compartida 66. Las interfases de comunicación 72-78 pueden comunicarse y/o pasar datos entre sí a través de la memoria compartida 66 que se va a manejar por el procesador 62. Los dispositivos de acceso de bloque o dispositivos de acceso de gráfico pueden conectarse al periférico 70 a través de una o más interfases de comunicación 72-78 y pueden acceder simultáneamente a la memoria 66 utilizando los métodos aquí descritos.
La Figura 8 es un diagrama de bloques que ilustra ciertos componentes de una implementación específica, ilustrativa del dispositivo periférico multif uncional 54 mostrado en la Figura 5. El periférico 100 de la Figura 8 incluye una unidad de procesamiento central (CPU) 102 ó procesador, una memoria 104, una interfase USB 106, una interfaz inalámbrica 108, un módulo de manejo de energía 110, una fuente de energía 112, uno o más procesadores 113, una memoria de acceso aleatorio (RAM) 114, una memoria de sólo lectura (ROM) 116, y una interfase de usuario 118. La interfase de usuario 118 incluye un interruptor 120 y un indicador visual, tal como un LED 112.
La CPU 102 puede ser cualquier procesador digital adecuado, tal como un microprocesador o DSP que ejecuta instrucciones de software/firmware, circuitos integrados específicos de aplicación (ASIC), máquina de estado implementada en hardware, o similares para realizar las funciones aquí descritas. Preferiblemente, la CPU 102 es un microprocesador fuera de existencias que incluye memoria incorporada, tal como la RAM 114 y ROM 116 para almacenar instrucciones de programación y datos.
La ROM 116 puede almacenar código de inicio o arranque para el periférico. La CPU 102 utiliza la ROM 116 para arrancar y correr su código. Como una alternativa a la ROM separada 116 para este arranque, o inicio, código, también es posible utilizar una porción de la memoria 104 para el código de inicio. La RAM 114 puede almacenar datos e instrucciones de programación utilizados por la CPU 102.
La memoria 104 puede ser cualquier dispositivo de memoria adecuado, y es preferiblemente una tarjeta SD desprendible. Con una tarjeta SD, el periférico 100 puede incluir un puerto SD para recibir la tarjeta. La memoria 104 es un grupo de memoria, o puede ser parte de un grupo de memoria mayor que incluye otras memorias físicas y/o dispositivos. En otros casos la memoria puede ser memoria de estado sólido incorporada que no es removible, tal como memoria flash.
La interfase USB 106 es preferiblemente un módulo de interfase USB comercialmente disponible con conductor común digital que se interconecta con la CPU 102, y la interfase inalámbrica 108 es preferiblemente un módulo de interfase Wi-Fi comercialmente disponible con el conductor común digital interconectándose con la CPU 102.
La interfase inalámbrica de dispositivo periférico 108 puede ser una interfase Wi-Fi (802.11) presentada a través de protocolos web estándares. El dispositivo periférico 100 contiene una pila IP y un servidor HTTP. También utiliza DNS de difusión múltiple local de enlace (también conocido como ZeroConf o Bonjour) para hacer su presencia conocida para otros dispositivos en la red inalámbrica. El acceso al dispositivo periférico 100 puede controlarse a través del uso de codificación criptográfica Wi-Fi (WEP o WPA), a través de filtración de dirección MAC, y/o a través de seguridad de capa de aplicación (SSL y autentif icación HTTP).
El dispositivo periférico 100 puede coordinar acceso a archivos entre múltiples clientes inalámbricos conectados. Por ejemplo, cuando se accede a medios (video o audio) en múltiples clientes conectados, el periférico 100 puede permitir a todos los clientes solicitar un inicio de reproducción sincronizados. Esta coordinación puede hacerse a través de un programa enviado desde el dispositivo periférico 100 a clientes y correr sobre el cliente (por ejemplo, aplicación de cliente AJAX rico), o a través de protocolos de transmisión de medios estándares.
La fuente de energía 102 puede ser una batería, tal como una batería recargable u otro componente de almacenamiento de energía adecuado, tal como un súper-capacitor, que puede recargarse cuando se conecta el periférico 100 en un puerto USB. Con la fuente de energía 112 agregada al periférico 100, el periférico 100 puede funcionar después de desconectar el dispositivo periférico 100 de un anfitrión, tal como un puerto USB de anfitrión. Cuando esto ocurre, la fuente de energía 112 puede energizar el periférico. De esa forma, el periférico 100 puede funcionar como un dispositivo independiente, ya sea mientras está conectado a un anfitrión USB o cuando no está conectado al anfitrión USB. Además, la fuente de energía 112 puede energizar el periférico 100 cuando el anfitrión, incluso aunque e sté conectado, no puede proporcionar suficiente energía para que el periférico 112 funcione.
El módulo de manejo de energía 110 se interconecta con la CPU 102, interfase USB 102, fuente de energía 112 e interfase de usuario 118, generalmente a través de la CPU 102. El módulo 110 incluye componentes de software y hardware fuera de existencias para manejar la fuente de energía 112, que incluye recarga a través de la interfase USB 106, modos inactivos e señaladores de estado de energía periférico (estado de recarga, estado de baja energía, y similares) presentados por el LED 122 de la interfase de usuario 118.
Los sensores 113 pueden incluir cualquier número adecuado o tipo de sensores de contexto acoplados a la CPU 102. Por ejemplo, los sensores 113 pueden incluir un reloj en tiempo real, un módulo localizador de GPS comercialmente disponible, un acelerómetro, sensor biométrico, sensor de temperatura, o similares. La salida de los sensores 113 puede utilizarse por la CPU 102 en conjunto con métodos aquí descritos para otorgar o rechazar acceso a la memoria 104 para bloquear dispositivos de acceso de bloque y/o dispositivos de acceso de gráfico (por ejemplo, anfitrión y/o cliente).
Con el periférico 100, un anfitrión USB (por ejemplo, dispositivo de acceso de bloque 52) se comunica con la interfase USB 106. La función de comunicaciones inalámbricas de la interfase inalámbrica 108 se traza a la memoria 104, y funciona independientemente del anfitrión USB. La CPU 102 traza apropiadamente la función de comunicaciones inalámbricas y la función de almacenamiento de datos del anfitrión USB juntos en la memoria 104. Funciones adicionales pueden ser adicionalmente memoria trazada en el periférico 100, tales funciones proporcionando funciones de servidor inalámbrico y/o de manejo más sofisticadas. Con el anfitrión USB que accede al periférico 100 que utiliza el protocolo de almacenamiento masivo USB, el trazado de memoria hace que el anfitrión USB vea el periférico 100 como un dispositivo de almacenamiento USB individual, y no como un dispositivo inalámbrico lógicamente separado y dispositivo de almacenamiento, como se hace convencionalmente con periféricos USB. La funcionalidad añadida del periférico de esa forma puede ser transparente para el anfitrión. El anfitrión USB no requiere ninguno de los controladores adicionales para la funcionalidad inalámbrica. Todo lo que se necesita son las comunicaciones con la disposición de almacenamiento de datos en la memoria 104. Esto permite a los anfitriones USB apalancar los protocolos de almacenamiento USB para recibir funcionalidad añadida sin los requerimientos de software adicionales en el anfitrión.
La CPU 102 puede trazar la memoria al distribuir internamente ciertas porciones de la memoria 104 para diferentes funciones y almacenamiento masivo. Estas distribuciones se manejan por la CPU 102 y pueden ser transparentes para el anfitrión y otros dispositivos que se comunican con el periférico 100 a través de la interfase inalámbrica 108.
El trazado de memoria puede referirse al almacenamiento físico localizado en el periférico 100, o cualquier combinación de almacenamiento virtual y físico en cualquier nivel de granularidad, por ejemplo, cada carpeta o archivo reside en alguna parte diferente en el periférico, u otras partes del mismo archivo residen en diferentes memorias, o acceden a resultados de memoria en un cambio funcional a las interfases de comunicaciones 106, 108.
La CPU 102 también puede configurarse para permitir acceso simultáneo a la memoria 104 por las funciones, dispositivos de acceso de bloque, dispositivos de acceso de gráfico utilizando los métodos aquí descritos.
La arquitectura periférica, que traza múltiples funciones en un espacio de memoria común (o común múltiple), permite al dispositivo periférico 100 contener múltiples funciones, más allá de una interfase de red inalámbrica y almacenamiento de datos, que aparece como un dispositivo lógico individual para el anfitrión USB. Por ejemplo, aunque el periférico 100 puede contener una interfase inalámbrica 108, el almacenamiento de datos masivo en la memoria 104 y otras funciones, el anfitrión USB puede ver las funciones periféricas como un sistema de archivo individual. De esa forma, el anfitrión USB puede tratar todas las funciones en el periférico 100 aunque el anfitrión USB estuviera ¡nteractuando con archivos. El anfitrión por lo tanto puede interconectarse con las funciones periféricas en el nivel de capa de aplicación de software. Esto permite al anfitrión USB tratar el periférico 100 como una función mientras exista un trazado por el periférico 100 para funciones, independientes del anfitrión (aunque puede haber configuraciones directas o implícitas para controlar la segunda función establecida por el anfitrión USB a través de almacenamiento de las configuraciones en la memoria 104).
Ni el USB ni las interfases inalámbricas 106, 108 del dispositivo periférico 100 es una interfase directa proporcionada por hardware a un dispositivo/anfitrión conectado; finalmente se controlan por un software de dispositivo periférico, que permite al software determinar cómo se presenta el almacenamiento y/o funciones a través de cualquier medio. En particular, esto permite al software: 1. combinar múltiples fuentes de datos para producir un grupo lógico de almacenamiento (tal como combinar datos de ROM interno y almacenamiento de CD en la interfase inalámbrica); 2. restringir o prevenir acceso a datos basándose en autentificación u otros factores; y/o; 3. codificar criptográficamente datos en la memoria 104, tal como una tarjeta SD, que requiere una clave de un anfitrión o cliente antes de la descodificación criptográfica; y/o; 4. proporcionar funcionalidad adicional que tiene transferencia de datos independiente al grupo lógico de almacenamiento en el USB o interfase inalámbrica 106, 108.
En el ejemplo de la Figura 8, pueden ocurrir transacciones de Wi-Fi entre el periférico 100 y un servidor externo conectado al periférico 100 a través de la interfase inalámbrica 108, independiente del anfitrión USB que interactúa con el periférico 100 como un dispositivo de almacenamiento masivo, por ejemplo, lo que sea que este almacenado como archivos en la memora compartida 104 puede sincronizarse automáticamente por la CPU 102 con un servidor externo o uno o más de otros dispositivos similares, en la interfase Wi-Fi.
El periférico 100 también puede proporcionar varios métodos de control para que el anfitrión USB controle aspectos de las funciones secundarias al apalancar el almacenamiento de datos y/o los protocolos de almacenamiento de datos USB. Por ejemplo, protocolos de Almacenamiento Masivo USB típicos y se software anfitrión USB utilizan una base de datos de almacenamiento de archivo bien conocida tal como la tabla de distribución de archivo (FAT) o sus variantes (vFAT, FAT32, FAT16, exFAT, NTFS, NFS y similares). En el caso en donde una función secundaria es, por ejemplo, comunicaciones inalámbricas Wi-Fi, el nombre de volumen de la unidad de datos puede trazar directamente al nombre SSID para Wi-Fi en el anfitrión. El anfitrión USB entonces puede controlar el nombre de la SSID utilizando las funciones de renombrado de volumen bien conocidas. Alternativamente, puede haber múltiples SSID cada una que corresponde a un nombre de carpeta de archivo especializado. Esto permite a un usuario navegar a múltiples SSID cuando se elige una red Wi-F¡ como un menú simple y elegir el acceso apropiado y permitido. Los múltiples usuarios/servidores pueden acceder con diferentes niveles de seguridad a través de la SSID a las varias carpetas, como se discute en detalle adicional a continuación.
La CPU 102 también puede configurarse para proporcionar funcionalidad adicional, tal como transcodificación y/o codificación/descodificación criptográfica. Para la transcodificación, la CPU 102 puede transformar automáticamente contenido, por ejemplo, un video, audio, o archivo de documento, de un formato de datos a otro, por ejemplo, independiente del anfitrión que inicia el comando. La CPU 102 también puede codificar y/o descodificar criptográficamente los datos que entran en el almacenamiento en la memoria 104, ya sea durante una transferencia o después que se ha transferido un archivo.
Una función básica del dispositivo periférico 100 es para proporcionar acceso al almacenamiento a través de interfases inalámbricas y por cable 106, 108. Cierta configuración del dispositivo periférico 100 comprende una implementación básica de estas características para proporcionar USB 2.0 o acceso inalámbrico a a Imacenam iento SD/SDHC (memoria 104). Una descarga de firmware codificada criptográficamente puede colocarse directamente en almacenamiento SD/SDHC (memoria 104), que entonces se utiliza para mejorar la ROM incorporada 116, o alternativamente, puede descargarse directamente en la ROM incorporada 116. La descarga puede ocurrir a través de la interfase USB o la interfase Wi-Fi. El otro componente del dispositivo compuesto se presenta como un dispositivo lector de tarjeta SD de USB 2.0 estándar.
Mientras está conectado al USB, el dispositivo periférico 100 carga su fuente de energía interna 112 al extraer energía del anfitrión. Cuando no está conectado en el USB, el dispositivo periférico 100 puede encenderse o apagarse, determinado por el interruptor 120, que puede ser un botón para oprimir en el dispositivo periférico 100. Cuando se enciende, el dispositivo periférico 100 transmite una red inalámbrica 802.11 (que utiliza varios modos tal como modo ad hoc/par a par, o de infraestructura, y/o directo Wi-Fi). El nombre de la red inalámbrica puede determinarse por el nombre de la tarjeta SD insertada (si ninguna tarjeta está insertada, se elige un nombre predeterminado), y se determinan las configuraciones de codificación criptográfica por un archivo en la tarjeta (no codificado criptográficamente si no se inserta ninguna tarjeta insertada).
El acceso de archivo inalámbrico puede representarse por un servidor HTTP estándar incluido en el periférico 100. El dispositivo periférico 100 se asigna asimismo u na dirección IP local de enlace privada y responde a mensajes DNS de difusión múltiple local de enlace con el fin de soportar la capacidad de descubrimiento de clientes conectados. El servidor HTTP puede enviar una aplicación AJAX dinámica dispositivo a dispositivos iOS conectados, por ejemplo, ¡Phones/iPads, que se utiliza para acceder a archivos desde el dispositivo periférico. Otros clientes reciben una lista de archivo básica.
En configuraciones del periférico 100 en donde la memoria 104 es una SD o tarjeta de capacidad digital alta segura (SDHC), cuando se enciende el dispositivo periférico 100, escanea la inserción o la remoción de una tarjeta SD/SDHC. Cuando se inserta o remueve una tarjeta del dispositivo periférico 100, puede tomarse en respuesta un grupo de acciones. Si el dispositivo periférico 100 está conectado a través del USB cuando se inserta una tarjeta, puede notificar al anfitrión que se ha insertado una tarjeta, lo que permite al anfitrión ver y modificar los contenidos de la tarjeta. Cuando se remueve una tarjeta, el periférico 100 notifica similarmente al anfitrión. Puede utilizarse entonces información desde el almacenamiento para configurar el acceso inalámbrico. Por ejemplo, el nombre de volumen de la tarjeta puede utilizarse para establecer el SSID de la interfase inalámbrica, o pueden utilizarse archivos en la tarjeta para determinar la clave de codificación criptográfica. La inserción y la remoción de la tarjeta activa un cambio de estado en la interfase inalámbrica 108 dependiendo de la presencia de datos de configuración en la tarjeta. Ciertos archivos en la tarjeta pueden activar el periférico 100 para establecer parámetros predeterminados que aplican a todas las tarjetas, o a tarjetas que no tienen otra información de configuración principal.
En configuraciones alternativas, es posible sustituir una interfase de almacenamiento por cable, tal como ATA en serie (SATA) o una interfase de tarjeta digital segura (SD) para la interfase USB 106. También, una interfase inalámbrica alternativa para Wi-Fi puede utilizarse para la interfase inalámbrica, tal como un módem celular 3G/4G, Bluetooth, NFC, infrarrojo, variante de ZigBee, o similares, por ejemplo. Es posible soportar interfases inalámbricas múltiples (por ejemplo, Bluetooth además de Wi-Fi 802.11). Las interfases pueden proporcionar los mismos servicios en diferentes protocolos, o pueden combinarse en formas únicas. El par de Bluetooth y la proximidad pueden utilizarse como una clave para desbloquear acceso al almacenamiento codificado criptográficamente o autentificar clientes inalámbricos. El dispositivo periférico 100 puede obtener una conexión de Internet en Bluetooth (DUN) y utilizar esto para servicios de archivo. Si es asi, también pueden compartir esa conexión con otros dispositivos en Wi-Fi o USB.
En configuraciones alternativas, la memoria 104 puede localizarse en uno o más dispositivos diferentes al periférico 100, tal como el servidor de red, que se comunica en uno o más de la interfase inalámbrica por cable 106, 108. En tales configuraciones, el trazado de memoria realizado por la CPU 102 se refiere a una memoria virtual, en donde no hay disposición de almacenamiento de memoria física presente en el periférico 100, y transferencias hacia/desde esa memoria virtual requieren comunicaciones entre el periférico 100 y un servidor/unidad de almacenamiento remoto. En este caso, el periférico 102 está configurado para presentar los datos a otro anfitrión/clientes en la otra interfase inalámbrica o por cable 106, 108, como estando localizada físicamente en el dispositivo periférico 102, cuando realmente no lo está. En estas configuraciones, también es posible que la CPU 102 guarde en memoria caché algo del contenido remotamente almacenado en el almacenamiento de memoria I ocal (tal como RAM 114) en donde se ha apropiado mejor el desempeño, tal como latencia y velocidad de red cuando el anfitrión está accediendo la memoria remota. En este caso, los datos guardados en memoria caché son transparentes para el anfitrión, es decir, el anfitrión obtiene beneficios de desempeño de almacenamiento de memoria local, pero aún ver los datos guardados en memoria caché como estando almacenados en una disposición de almacenamiento en el periférico 100.
La Figura 9 es un diagrama que ilustra una arquitectura de software ilustrativa 250 del dispositivo periférico multif uncional 100. La arquitectura de software 250 del dispositivo periférico 100 está compuesta de un número de componentes en capas.
La capa más baja del software maneja la interconexión al hardware de dispositivo periférico y controla el dispositivo USB, la interfase de tarjeta SD, interfase Wi-Fi SDIO, la interfase de usuario, que incluye el LED e interruptores, control de reloj y energía, y carga de batería. La capa más baja de software incluye una interfase de conductor común de hardware U SB 276, una interfase de conductor común de hardware SD 278, controladores de memoria SD 270, entrada/salida SD (SDIO) 272, servicios de cronómetro 274, interfase(s) de sensor 280, que incluyen interfases de software, por ejemplo, para un sensor de temperatura, reloj de tiempo real, módulo de ubicación GPS, y similares, interfase de usuario 282, servicios de cronómetro 274, manejo de batería 284, y controladores Wi-Fi 268. Esta capa forma una capa de abstracción de hardware que se utiliza por el resto del software de dispositivo periférico.
Las capas superiores del software del dispositivo periférico definen las características mayores del dispositivo. Estas capas incluyen: software de protocolo de Almacenamiento Masivo USB 254, software de actualización de firmware 256, servidores de acceso de gráfico (por ejemplo, mDNS, HTTP, FTP o similares) 258, software de configuración Wi-Fi 260, una pila TCP/IP 262, software de manejo y configuración de energía 264, una estructura de datos de gráfico, tal como FAT 266, y una máquina de estado consciente de texto 252.
La máquina de estado consciente de contexto 252 puede incluir código de software para implementar los métodos aquí descritos. La máquina de estado 252 también puede incluir código de software para proporcionar servicios adicionales aquí descritos, tales como seguridad y autentificación, codificación/descodificación criptográfica, transcodificación, memoria y control de acceso de función,' control de canal de comunicaciones y similares.
El software de actualización de firmware 256 se utiliza para actualización en sistema del software de dispositivo periférico a través de la interfase de tarjeta SD 278 o inferíase USB 106. La especificación USB no es estática y las actualizaciones y extensiones, para el protocolo ocurren periódicamente. Otras actualizaciones pueden incluir nuevos perfiles para mejorar la ¡nteroperabilidad al eliminar la necesidad de actualizar el anfitrión con nuevos controladores de software, tal como un nuevo estándar para red inalámbrica.
El software de protocolo de almacenamiento masivo USB 254 presenta los contenidos de la memoria 104 (y posiblemente otros datos) a través de la interfase USB 106 a un anfitrión conectado como un disco fijo. En otro caso, pueden existir otros protocolos USB tal como un acceso de red USB que se conecta al anfitrión como un periférico de red con acceso a la memoria 104.
El software de manejo y configuración de energía 264 contrae la carga de batería y modos de ahorro de energía.
El software puede configurar el periférico 100 para funcionar como un punto de acceso Wi-Fi (AP), o alternativamente, un cliente Wi-Fi. Cuando opera como un AP Wi-Fi, el periférico 100 proporciona una red de área personal portátil (PAN) que rodea el periférico 100. En otro caso, el periférico 100 puede estar hecho para funcionar como AP simultáneo y acceso de cliente, y puede apalancar el estándar directo Wi-Fi.
En algunas configuraciones, el periférico 100 puede "acoplarse" a uno o más clientes Wi-Fi para mejorar la funcionalidad cuando opera en su modo AP de Wi-Fi. El periférico 100 se acopla a los clientes al almacenar las direcciones MAC y ciertas credenciales de registro, si es necesario, de cada cliente. El periférico 100 está en modo AT, olfatea el canal Wi-Fi para la dirección MAC de un cliente acoplado que se transmite a otra AP. El cliente acoplado difundirá su dirección MAC cuando intenta conectarse a otra AP. Cuando el periférico 100 detecta la dirección MAC difundida de cliente, entonces espera y detecta la otra dirección MAC de destino de AP difundida en respuesta a la solicitud de conexión de cliente. El periférico 100 entonces se compara en la dirección MAC de destino con credenciales de registro almacenadas correspondientes al cliente, y si es necesario se conectan a otra AP. Alternativamente, el periférico 100 pueden faltar las credenciales de registro de las transmisiones de conexión del cliente. Si el periférico 100 está dentro del rango del otro AP, puede cambiar al modo de cliente Wi-Fi y conectarse a otro AP como un cliente Wi-Fi que utiliza las credenciales de dispositivo acoplado.
Pueden implementarse arquitecturas de software alternativas para lograr el mismo resultado. También, puede hacerse reducción, sustitución, adición, y/o redistribuciones utilizando técnicas de software conocidas para implementar el software/firmware periférico.
II. Métodos para Acceder a un Grupo de Memoria La Figura 10 es un cuadro de flujo 300 que ilustra un método ilustrativo para permitir a un dispositivo de acceso de gráfico y un dispositivo de acceso de bloque acceder simultáneamente a un grupo de memoria compartido. El método puede ejecutarse por cualquiera de los periféricos 54, 70, 100 descritos aquí. Un acceso de gráfico se refiere a acceder datos organizados en un gráfico, con lo cual un , servidor o procesador recibe comandos de acceso de alto nivel y resuelve el gráfico o a los contenidos del grupo de memoria por medio de una estructura de datos, tal como una estructura de datos de gráfico. Un acceso de bloque se refiere a acceder a un grupo de memoria con una dirección de ubicación de inicio distinta y dirección de ubicación final.
En el paso 302, se detecta un intento para acceder al grupo de memoria por un dispositivo de acceso de bloque. Si el periférico otorga permiso para acceder al grupo de memoria, el procesador periférico entonces procede para verificar operaciones de acceso de bloque de memoria realizadas por el dispositivo de acceso de bloque mientras accede al grupo de memoria (paso 304). Las operaciones de acceso de bloque de memoria pueden incluir operaciones de lectura de bloque y escritura de bloque. El procesador mantiene rastros del tipo de operaciones (lectura o escritura), el número de operaciones, y ubicaciones de dirección de memoria de las operaciones durante el acceso de bloque.
Después, en el paso 306, se traducen las operaciones de acceso de bloque por el procesador en una estructura de datos de gráfico que representa el grupo de memoria. La estructura de dados de gráfico incluye uno o más señaladores que trazan el grupo de memoria a un sistema de archivo jerárquico. Ejemplos de estructuras de datos de gráfico simple se muestran en las Figuras 11-12 y 14-15. Puede utilizarse un procedimiento de resolución en el paso de traslación, es decir, que resuelve múltiples actualizaciones guardadas en memoria intermedia a la estructura de datos de gráfico. Se conocen N algoritmos de fusión de forma en la técnica que pueden utilizarse en la resolución.
La necesidad de una resolución surge debido a los accesos de bloque. En cualquier momento ocurre un acceso de gráfico en el grupo de memoria, la estructura de datos de gráfico siempre se deja en un estado bien formado. Sin embargo, cuando ocurre un acceso de bloque, la estructura de datos de gráfico puede dejarse temporalmente en un estado formado enfermo. El procesador periférico resolverá el gráfico en algún punto en el futuro.
Existen varios niveles de granularidad tal como cuando resolver/iniciar el procedimiento de resolución: 1. Granularidad menor: retrasar la resolución hasta que se cesa el acceso (bloque y gráfico, tanto lectura como escritura), es decir, retrasar la solución hasta que en el anfitrión USB expulse el dispositivo y todos los clientes Wi-F¡ se desconectan, entonces resolver. 2. Retrasar la solución hasta que se ha detenido el acceso de bloque, entonces actualizar la estructura de datos de gráfico en una forma que bloquea el acceso de gráfico hasta que ha terminado la resolución, entonces resumir el acceso de gráfico, por ejemplo, de tener comunicaciones Wi-Fi hasta que ha terminado la resolución. 3. Identificar archivos que se acceden y resolver inmediatamente archivos (pueden utilizar una memoria intermedia separada) para archivos que no se acceden simultáneamente. 4. Identificar las porciones de archivos que se acceden y resolver inmediatamente estás porciones. También es una mejora predecir que se accederán a esas porciones y se retendrán resolviendo estas porciones hasta que se reduce la probabilidad de acceso. 5. Identificar cuando el acceso de bloque ha dejado la estructura de datos de gráfico en un estado consistente, entonces aplicar el procedimiento de resolución.
El procesador de dispositivo puede resolver opcionalmente la memoria al actualizar la estructura de datos de gráfico interno del periférico para hacer el gráfico consistente con las operaciones de bloque previas y/o al mover/copiar bloques de memoria para hacer la memoria de bloque consistente con el acceso de gráfico. Cualquiera o ambas operaciones de resolución son de actualizaciones crecientes para el gráfico (estructura de datos de gráfico) que pueden ocurrir en lugar de un nuevo escaneo completo de la memoria de bloque por el procesador o el dispositivo anfitrión para resolver actualizaciones que pueden haber ocurrido. Esta resolución creciente ocurrirá después de cierto grupo de accesos de bloque ya sea por el dispositivo de acceso de gráfico o por el dispositivo de acceso de bloque que se ha completado.
En algunas situaciones, la traducción de las operaciones de acceso de bloque puede adaptar el procesador redirigiendo el bloque de memoria solicitado de dirección A a otro, por ejemplo, dirección B. Este aspecto se utiliza cuando la estructura de datos de gráfico interna del dispositivo periférico se ha actualizado y el dispositivo de acceso de bloque aún no ha actualizado su propia estructura de datos de gráfico interno. Adicionalmente el procesador puede esperar a que se completen las operaciones de acceso de bloque y reordenar subsecuentemente bloques y/o reestructurar partes de la estructura de datos de gráfico interno para mantener el bloque y la estructura de gráfico consistentes entre sí.
En el paso 308, el procesador periférico proporciona a la estructura de datos de gráfico al dispositivo de acceso de gráfico. Esto puede hacerse al almacenar la estructura de datos de gráfico actualizada en un área de memoria que es accesible al dispositivo de acceso de gráfico. El dispositivo de acceso de gráfico entonces puede acceder al grupo de memoria concurrentemente con el dispositivo de acceso de bloque, de acuerdo con la estructura de datos de gráfico.
La Figura 11 es un diagrama conceptual que ilustra un ejemplo de trazar una estructura de datos de gráfico 352 a una disposición de memoria de bloque 350. La disposición de memoria 350 puede incluirse en cualquiera de las memorias aquí descritas (por ejemplo, memoria 104), ya sea localmente o distribuidas, física o virtual. En el ejemplo mostrado, la disposición de memoria 350 incluye bloques de memoria (o grupos) B1-Bn, en donde n es cualquier valor de entero adecuado. Cada bloque puede incluir cualquier número de bytes adecuado.
Un dispositivo de acceso de bloque puede acceder a cualquiera de los bloques en la disposición 350 que se permite para acceder al proporcionar una dirección de bloque al procesador 62 ó 102, que escribe datos en el bloque dirigido o lee datos desde el bloque dirigido, dependiendo de la operación de acceso de bloque.
La estructura de datos de gráfico 352 impone una representación de gráfico jerárquico en la disposición de memoria 350. La estructura de datos de gráfico puede incluir una base de datos de almacenamiento de archivo tal como FAT o sus variantes (vFAT, FAT32, FAT16, exFAT, NTFS, NFS, y similares). En el ejemplo mostrado, la estructura de datos de gráfico 352 incluye directorio de raíz, R, archivos F,, F2, F3 y directorio Cada uno de estos elementos de la estructura de datos de gráfico incluye señaladores que identifican bloques de memoria correspondientes al elemento. Por ejemplo, el directorio Di corresponde al bloque B5; al archivo F2 corresponde a los bloques B6, B9-B10 y el archivo F3 corresponde a los bloques B105-B106.
El dispositivo de acceso de gráfico accede a la dis-posición de memoria 350 utilizando la estructura de datos de gráfico 352. El dispositivo de acceso de gráfico lo hace al leer, escribir o de otra forma manipular archivos y/o directorios en la estructura de datos 352. El procesador 62 ó 102 utiliza los señaladores en la estructura de datos de gráfico 352 para entonces acceder a los bloques de memoria correspondientes en la disposición 350.
La Figura 13 es un diagrama conceptual que ilustra una técnica de memoria de sombra ilustrativa para permitir acceso de memoria aparentemente simultáneo para un dispositivo de acceso de bloque y dispositivo de acceso de gráfico. La técnica de memoria de sombra esencialmente guarda en memoria una escritura de memoria de bloque desde un dispositivo de acceso de bloque cuando la dirección(es) se escribe en la disposición de memoria 400 que se accede simultáneamente por otro dispositivo, tal como un dispositivo de acceso de gráfico. La técnica y la disposición de memoria 400 pueden implementarse en cualquiera de los dispositivos periféricos 54, 70, 100 descritos aquí, en donde la disposición de memoria 400 puede recibir la memoria periférica 66 ó 104.
La memoria intermedia de sombra puede estar en el mismo grupo de memoria o grupo de memoria separado del dispositivo periférico. Si está en el mismo grupo de memoria, los datos guardados en memoria intermedia se almacenan en áreas no utilizadas de la disposición de memoria 400. El procesador 62 ó 100 debe actualizar la estructura de datos de gráfico 402 que muestra que el área de memoria de la memoria intermedia se reserva, o el procesador 62 ó 102 mantiene su propia tabla de memorra utilizada indicando la ubicación de la memoria intermedia de sombra. Cuando ocurre una escritura de dispositivo de acceso de gráfico o de dispositivo de acceso de bloque a la ubicación de memoria guardar en memoria intermedia temporalmente utilizada, el procesador 62 ó 102 redirigen la escritura a una porción no utilizada de la disposición de memoria 400.
En el escenario ilustrativo mostrado, el dispositivo de acceso de bloque intenta bloquear la escritura a los bloques de memoria B105-B106. El procesador 62 ó 102 detecta que un dispositivo de acceso de gráfico está accediendo actualmente a los bloques B105-B106 en el archivo F3 utilizando una estructura de datos de gráfico 402. El procesador 62 ó 102 hace que la escritura de bloque describa a bloques B115-B116 a su vez, que actúan como una memoria intermedia de sombra. Después que se ha completado el dispositivo de acceso de gráfico que accede a F3, el procesador 62 ó 102 resuelve la escritura de acceso de bloque al actualizar los señaladores en la estructura de datos de gráfico 402 para F3 para apuntar a B115-B116 en lugar de B105-B106, o alternativamente, transfiere los contenidos de B115-B116 o B105-B106, respectivamente, y entonces libera B115-B116 como bloques no utilizados.
La Figura 13 es un cuadro de flujo 450 proporcionado para ilustrar más completamente el método al utilizar memoria de sombra para permitir acceso aparentemente simultáneo a un grupo de memoria. En el paso 452, un dispositivo de acceso de bloque intenta una operación de escritura a los bloques de memoria B105-B106 de F3 de la disposición de memoria 400. Al detectar la operación de escritura, el procesador 62 ó 104 determina si un dispositivo de gráfico está accediendo actualmente a F3, que corresponde a B105-B106 (paso 454). Si no es así, el procesador 62 ó 102 permite que la escritura ocurra para los bloques B105-B106 (paso 454).
Si el dispositivo de acceso de gráfico está accediendo actualmente a los mismos bloques de memoria B105-B106, el procesador 62 ó 102 hace que el dispositivo de acceso de bloque escriba a los bloques de memoria no utilizados B115-B116 a su vez (paso 458).
En el paso 460, el procesador 62 ó 102 entonces verifica las operaciones de acceso de memoria del dispositivo de acceso de gráfico para determinar si el dispositivo de acceso de gráfico está accediendo F3. Cuando el dispositivo de acceso de gráfico ha completado su operación de acceso a los bloques, el procesador 62 ó 102 resuelve la estructura de datos de gráfico para incluir los contenidos de B115-B116 en F3. Como se discute en conexión con la Figura 12, el contenido de memoria intermedia B115-B116 se resuelve en la estructura de datos de gráfico 402 en una de dos formas: ya sea los contenidos de B115-B116 que se copian a B105-B106, o señaladores en la estructura de datos de gráfico 402 para F3 se actualizan para señalar a la memoria intermedia B115-B116 a su vez en lugar de B105-B106, y el contenido escrito de bloque permanece en las mismas ubicaciones de memoria B115-B116.
La Figura 14 es un diagrama conceptual que ilustra un grupo de memoria distribuido en múltiples dispositivos 502, 506 para soportar cómputo de nube. El grupo de memoria incluye grupo de memoria A 508, que reside en un dispositivo periférico 502. El dispositivo periférico 502 puede ser cualquiera de los dispositivos periféricos 54, 70, 100 descritos anteriormente. El grupo de memoria también incluye grupo de memoria B 510, que reside en un dispositivo en red 506. El dispositivo en red 510 está conectado al dispositivo periférico 502 a través de cualquier conexión de red adecuada, que incluye las redes inalámbricas y redes por cable (por ejemplo, USB) aquí descritas.
El dispositivo periférico 502 está configurado para presentar el grupo de memoria distribuido a otros dispositivos conectados, tal como un anfitrión USB o clientes Wi-Fi, como un grupo de memoria lógico, individual incluso aunque esté compuesto de grupos de memoria separados A y B 508, 510 físicamente localizados en dispositivos separados. El dispositivo periférico 502 lo hace al utilizar una estructura de datos de gráfico 509 que incluye señaladores que se enlazan a una segunda estructura de datos de gráfico 511 que traza el grupo de memoria B 510, consecuentemente trazando de forma lógica tanto el grupo de memoria A como B 508, 510 como una memoria lógica individual. La segunda estructura de datos de gráfico 511 puede almacenarse en el grupo de memoria B en el dispositivo de red 506, como se muestra en la Figura 14, o en alguna otra parte, siempre y cuando sea accesible para el dispositivo periférico 502 para hacer referencia al grupo de memoria B 510.
Los dispositivos de datos externos también se denominan a y pueden tratarse como grupos de memoria. Por ejemplo, un servicio agregador de noticias RSS entonces puede ser un servidor de tercera parte externo que tiene una estructura de datos de gráfico que señala a otros servidores con nuevas historias. Esta es una estructura de datos de gráfico y grupo de memoria que puede accederse por el periférico 54, 100 a través de un trazado de gráfico.
La estructura de datos de gráfico 509 del dispositivo periférico 508 puede actualizarse al: Jalar: acceder a recursos a través de acceso de bloque de gráfico puede activar datos de tracción que es un grupo de memoria físicamente separado.
Empujar: acceder al grupo del número que localiza en alguna otra parte también que causa un activador (conectar a una nueva red Wi-Fi, obtener una notificación desde un servicio, por ejemplo, actualización de Facebook, etc.) para iniciar acceso para actualizar una porción o toda la estructura de datos de gráfico 509 para el nuevo grupo de memoria localizado fuera del dispositivo periférico 508.
La Figura 5 es un diagrama conceptual que ilustra una división del grupo de memoria 550 en áreas restringidas a ciertos usuarios. La máquina de estado consciente de contexto 252 que ejecuta en el dispositivo periférico 100 puede incluir un mecanismo de seguridad que restringe a los usuarios a ciertos archivos y directorios dentro de una o más estructuras de datos de gráfico. El usuario puede autentificarse por contraseña, por ejemplo, u otros medios con el fin de obtener acceso a áreas del grupo de memoria 550. Los servicios para otorgar acceso pueden almacenarse y organizarse como parte de las estructuras de datos de gráfico.
En el ejemplo mostrado, se proporciona a los usuarios A, C, y D acceso a un primer y a una división de grupo de memoria 552, representada por una estructura de datos de gráfico 553. Unicamente al usuario B se le proporciona acceso a una tercera división de grupo de memoria 556, representada por una estructura de datos de gráfico 557. Todos los usuarios A, B, C y D tienen acceso a la segunda división del grupo de memoria 554, representada por una estructura de datos de gráfico 555, a manera de una dirección D, común para todos los usuarios.
La Figura 16 es un cuadro de flujo 600 que ilustra un método ilustrativo para transmitir paquetes TCP/IP que utilizan espacio de memoria reducido. Este método puede implementarse por software (por ejemplo, la pila TCP/IP 262 y/o máquina de estado 252) corriendo en el periférico 100. El método desventajoso ya que reduce requerimientos de almacenamiento de memoria para ejecutar el protocolo TCP/IP, que puede ser importante en dispositivos que tienen memoria y recursos limitados, tal como un dispositivo periférico.
En el paso 602, se transmite un paquete de seguridad que utiliza TCP/IP. En el contexto de periférico 100, el paquete TCP/IP puede transmitirse en la interfase inalámbrica 108, o la interfase USB 106. Al utilizar TCP/IP convencional, una copia del paquete transmitido se almacena normalmente en la memoria temporal hasta que se recibe un reconocimiento (ACK) desde el nodo TCP/IP de receptor, que indica que la transmisión fue exitosa. Sino se recibe un ACK, el remitente puede recuperar rápidamente el paquete copiado de la memoria temporal y reenviarlo. Sin embargo, la desventaja de utilizar este método TCP/IP convencional para almacenar temporalmente un paquete copiado puede consumir cantidades de memoria relativamente grandes, que pueden no ser deseables en aplicaciones en donde el espacio está restringido.
Para superar esta desventaja, el método de la Figura 16 almacena un indicador al paquete transmitido en donde existe en un grupo de memoria, sin copiar el paquete transmitido (paso 604). Después de transmitir el paquete, se hace una revisión para ver si se recibe una ACK del receptor, que utiliza pasos de protocolo TCP/IP convencional (paso 606). Si se recibe una ACK, se hace una determinación para determinar si se necesitan enviar paquetes adicionales (Paso 608). Si es así, el método regresa al paso 602, de otra forma el método termina.
Si no se recibe un ACK desde el receptor como se prescribe por el protocolo TCP/IP, el señalador se utiliza para recordar el paquete del grupo de memoria (paso 610), y el paquete se vuelve a transmitir (paso 612).
III. Seguridad de Periférico Pueden codificarse criptográficamente porciones de un grupo de memoria soportado por el periférico 54, 70, 100, en un nivel de dispositivo/división o en un nivel de archivo individual. Cuando las porciones individuales del almacenamiento se codifican criptográficamente con diferentes claves, el área de almacenamiento completa puede ser accesible utilizando una clave maestra, con las sub-claves individuales almacenadas en el área reservada (codificada criptográficamente utilizando la clave maestra); o, el área de almacenamiento completa puede codificarse criptográficamente con una clave.
El desbloqueo del almacenamiento codificado criptográficamente puede hacerse a través de interfases por cable o inalámbricas. Para autentificar el anfitrión, el dispositivo periférico 54, 70, 100 puede presentar un dispositivo de almacenamiento masivo estándar para el anfitrión, y requerir que el anfitrión escriba un archivo o cree un directorio con cierto nombre que actúa como la clave; o puede comunicarse con un programa que corre en el anfitrión. Puede utilizarse autentificación inalámbrica para desbloquear el almacenamiento para acceso inalámbrico por cable. Puede cronometrarse el acceso después de desbloqueo, puede durar hasta que el usuario asegure explícitamente el almacenamiento de nuevo, y/o puede durar hasta que se detiene la autentificación desde la red inalámbrica actual (lista blanca) o se detectan otras redes inalámbricas (lista negra). El mismo modo de control de acceso es utilizado para autentificación inalámbrica puede utilizarse. Por ejemplo, el usuario puede autentificar el acceso inalámbrico utilizando WPA2, que entonces aseguraría el acceso por cable para almacenamiento para una duración de tiempo establecida. También pueden utilizarse otros métodos de autentificación estándar NFC (comunicación de campo cercano) de par, RFID, o Bluetooth) para desbloquear el almacenamiento.
El procesador periférico también puede determinar si proporciona acceso de bloque o conectividad de acceso de gráfico. En este caso, el procesador utiliza una máquina de estado para determinar cómo bloquear cierto acceso, ya sea en ciertas tuberías (conexiones) a varias porciones del grupo de memoria. Para hacer esto, el procesador observa las solicitudes del anfitrión y determina qué tipo de acceso proporcionar con base en la solicitud, o proporciona una oferta de servicios desde una lista de prioridad conocida y de cómo responde el dispositivo, o permite la conexión basándose en una configuración previamente almacenada, o permite la conexión basándose en un estado contextual determinado, tal como tiempo, presencia de ciertas conexiones preexistentes o anfitriones identificados, ubicación periférica, tipo de datos almacenados en el grupo de memoria local, o similares.
Existen grupos de reglas que el procesador periférico puede seguir para determinar conectividad. Las reglas pueden transferir todos los varios contextos de los que está consciente el dispositivo periférico, tales como clientes conectados o clientes disponibles (presencia de red Wi-Fi), datos en el grupo de memoria, condiciones preestablecidas, datos de sensor (tiempo, temperatura, luz, ubicación), gráfico y/o comparaciones de datos (autentificaciones, etc.).
Estas comparaciones permiten sistemas de pago y similares.
Otra configuración es el periférico que se conecta a un cliente como un dispositivo de red con acceso de gráfico en lugar de acceso de bloque (actúa como un dispositivo de red a una PC que al aparecer la web, es decir, gráfico, acceso a los datos en lugar de WebDAV o dispositivo de almacenamiento masivo USB con acceso de bloque).
Los datos recibidos de un cliente conectado, ya sea a través del acceso de bloqueo gráfico, también puede activar eventos de permiso. Por ejemplo, un archivo puede escribirse que tiene un grupo de parámetros para modificar la conectividad de dispositivo de cliente, por ejemplo, un archivo de texto que enciende/apaga conectividad para Wi-F¡ contra una conexión de datos 3G/4G. Otro ejemplo está en un umbral de directorio de archivo en el gráfico para capturar alimentaciones RSS desde un servicio de red externa particular y/o grupo de memoria.
También pueden haber datos combinados y la inteligencia de conectividad en donde el procesador toma una decisión basándose en datos específicos y eventos de conectividad. Esto puede contribuir al contexto actual del dispositivo periférico en un punto en el tiempo específico IV. Trazado de acceso de gráfico de acceso a bloque El dispositivo periférico 54, 100 puede presentar almacenamiento en una interfase por cable 64, 106 que finalmente se deriva de una combinación de almacenamiento local y contenido remoto obtenido en la interfase inalámbrica 68, 108. El contenido inalámbrico puede venir de una variedad de fuentes, y puede guardarse en memoria caché asincrónicamente al almacenamiento local por el software de dispositivo periférico. Las fuentes de información ilustrativas incluyen: 1. una participación de archivo en una red local; 2. una alimentación RSS que comprende un podcast, una difusión de fotografías, u otra colección de información; y/o 3. una colección de videos de una red en línea, tal como YouTube.
Cada una de estas fuentes de información puede trazarse a un directorio individual accesible a través de la interfase por cable 64, 106. Las varias fuentes pueden combinarse juntas ya sea en un nivel de dispositivo (presentación de múltiples dispositivos de almacenamiento fijo) o en un nivel de sistema de archivo (creación de un sistema de archivo virtual y tabla FAT de múltiples fuentes de información) .
También existe la capacidad de permitir volumen/división, archivo, y/o acceso de nivel de carpeta a usuarios particulares. Una carpeta etiquetada "Bob" puede asociarse con acceso para el usuario "Bob" para tener permiso a esta carpeta cuando "Bob" está en la misma red y/o accede a través de un servidor remoto. También es una función única tener más de un periférico que está en par con otro y siempre intenta asegurarse que algunos o todos los datos se sincronizan entre los dispositivos ya sea sincronizando directamente entre Wi-Fi, por ejemplo, o a través de servidores remotos sí actúan como un proxi (substituto) y/o como almacenamiento remoto.
Cuando accede información inalámbrica, algo, nada, o t oda la información puede colocarse en la memoria 66, 104 en el dispositivo periférico 54, 70, 100 como sea apropiado. Por ejemplo, una participación de archivo puede no requerir ningún guardado de memoria caché de datos; cualquiera de las solicitudes de archivo se traduciría inmediatamente en solicitudes de participación de archivo inalámbrico. El guardado en memoria caché puede agregarse para desempeño adicional.
Una carpeta en el dispositivo periférico 54, 70, 100 puede designarse como un área de descarga para otro contenido remoto, tal como alimentaciones RSS, y el dispositivo descargará automáticamente contenido a medida que se vuelve disponible para esta carpeta.
Los cambios de estado inalámbrico también hacen que se inicien descargas. Por ejemplo, si una red inalámbrica recordada se vuelve disponible, el dispositivo periférico 54, 70, 100 puede buscar y descargar información actualizada. Otro ejemplo es sí el dispositivo periférico 54, 70, 100 está conectado al puerto USB en un estero de automóvil, cuando el automóvil regresa al camino del propietario, se conectará a la red inalámbrica doméstica y descargará los últimos podcast, o sincronizará archivos con la computadora del propietario.
Los cambios de estado inalámbrico también pueden controlar el acceso a almacenamiento. Por ejemplo, conectarse a cierta red inalámbrica puede hacer a ciertos archivos o carpetas disponibles para ver y modificar. El dispositivo periférico 54, 70, 100 también puede estar configurado para que escribir a cierto directorio o área de almacenamiento sea posible en todo momento, pero leer archivos desde esa área no es posible excepto en el rango de cierto punto de acceso, cuando está asociado a cierto punto de acceso. La presencia de redes inalámbricas también puede activar la eliminación de archivos ("limpieza remota").
También es posible que el periférico 54, 70, 100 detecte y registre SSID de red y/o direcciones MAC a medida que se encuentran para procesamiento posterior. Esto puede ayudar a rastrear en donde el dispositivo 54, 70, 100 está localizado con el tiempo y puede utilizarse en conjunto con un GPS u otra función de triangulación/ubicación para acceso permisivo o activar otras funciones.
También es una configuración posible para el dispositivo 54, 70, 100 conectarse a un anfitrión en USB con el periférico que emula un perfil de red USB. El anfitrión observará el periférico 54, 70, 100 como una conexión de red, iniciará un navegador o aplicación similar, entonces transmitirá datos como si accedieran a un servidor. El periférico 54, 70, 100 entonces actúa como un servidor que alimenta interactivamente el contenido al navegador ya sea que el contenido esté en el dispositivo periférico y/o esté recolectando desde un servidor remoto. Esto puede permitir la entrega de contenido en una forma segura en una forma similar al contenido que se entrega en el Internet desde un servidor remoto.
Cuando está presente un archivo específico en el almacenamiento (encontrado por nombre, contenido, u otros factores), el dispositivo puede cambiar el modo de acceso presentado al anfitrión. Si una imagen de CD o DVD o con un nombre particular se encuentra en el almacenamiento, el dispositivo periférico 54, 70, 100 puede presentarse al anfitrión como un lector de CD o DVD de USB fijo, con el archivo que determina los contenidos de un disco óptico virtual insertados en la unidad. Esta función particular hace fácil instalar sistemas operativos en computadoras que ausentes en una unidad óptica real.
Puede reservarse una porción del almacenamiento para funcionalidad de dispositivo periférico. Esta área puede reservarse ya sea en un nivel de dispositivo o división, o al distribuir un archivo del tamaño deseado en el mismo dispositivo. Cuando se altera o elimina un archivo desde el dispositivo periférico 54, 70, 100, sus contenidos pueden copiarse al área reservada para permitir que el usuario recupere los datos posteriormente.
V. Servicios de nube Puede utilizarse una combinación de la interfase por cable y la interfase inalámbrica para proporcionar servicios adicionales al propietario de dispositivo periférico. Cuando la interfase inalámbrica está conectada a Internet, varias acciones tomadas con el almacenamiento a través de las interfases p or cable o inalámbricas pueden traducirse a o complementarse con almacenamiento desde Internet.
El dispositivo periférico 54, 70, 100 puede proporcionar funcionalidad de respaldo en línea. Al verificar que partes del almacenamiento se han cambiado por el usuario, y al marcar esas porciones como "sucias" en una tabla mantenida en el área de memoria reservada, el dispositivo periférico 54, 70, 100 sabe que porciones del almacenamiento deben respaldarse para un usuario en Internet. El contenido de datos transferido puede codificarse criptográficamente por el dispositivo periférico 54, 70, 100 antes de transmisión al servidor. Si el dispositivo 54, 70, 100 se pierde, un comando puede enviarse desde Internet al dispositivo 54, 70, 100 para iniciar una limpieza de almacenamiento en el dispositivo 54, 70, 100, y puede programarse un nuevo dispositivo periférico con el contenido de los datos desde el dispositivo perdido. De forma similar si se cambia el respaldo en línea, puede aplicar este procedimiento a la inversa para asegurarse que el dispositivo periférico coincide con los cambios en el respaldo en línea.
El dispositivo periférico 54, 70, 100 puede tomar acciones basándose en manipulación de archivos en una interfase de comunicaciones y traducir estás acciones en almacenamiento de Internet a través de la misma y otra interfase de comunicaciones. Por ejemplo, puede designarse una carpeta particular en el dispositivo 54, 70, 100 como un área de participación de archivo, con acceso dado a ciertos usuarios basándose en una política. Mover o copiar un archivo en esta carpeta iniciará una transferencia de ese archivo utilizando la interfase inalámbrica al almacenamiento remoto, en donde entonces sería accesible para otros usuarios. Puede designarse una carpeta como un cuadro desplegable para recepción de archivos desde otro usuario, en cuyo caso el dispositivo periférico 54, 70, 100 puede consultar y buscar información desde almacenamiento remoto y colocarla en la carpeta en el dispositivo 54, 70, 100. Si todos los archivos en el dispositivo 54, 70, 100 se codifican criptográficamente con claves individuales únicas, el archivo puede transferirse en forma codificada criptográficamente, y la clave para desbloquear el archivo compartido con el otro usuario a través de medios seguros.
El servicio de Internet puede tomar acciones basándose en manipulaciones de archivo que resultan en archivos adicionales que se agregan al almacenamiento de dispositivo periférico, u otras acciones que se toman. Por ejemplo, colocar un archivo en cierto directorio puede activar que el archivo se envíe como un anexo de correo electrónico a una dirección de correo electrónico determinada. Colocar un archivo de video en otro directorio puede activar una conversación de formato que se lleva a cabo en el servicio de Internet, con el archivo convertido entonces descargado a un director en el dispositivo 54, 70, 100.
En otra configuración, el dispositivo periférico 54, 70, 100 presenta una disposición de datos mayor al anfitrión que realmente está presente en el periférico 54, 70, 100. En este caso, el almacenamiento de archivo aparece para el anfitrión normalmente, pero al almacenamiento de datos realmente está en un dispositivo en red en una ubicación diferente, pero se guarda en memoria caché por el periférico.
El dispositivo periférico 54, 70 100 también puede configurarse para permitir guardado caché de nube en uno o más usuarios, utilizando el grupo de memoria soportado por el periférico como una memoria caché. Para hacer esto, el dispositivo periférico está incluido en la trayectoria de comunicación de red entre uno o más servidores de nube en línea y el dispositivo de usuario (por ejemplo, anfitrión o cliente).
Si baja la conexión al servidor de nube, el dispositivo de usuario aún está conectado al periférico 54, 70, 100. El periférico 54, 70, 100 guarda en memoria caché los datos que se transfieren al servidor(es) de nube. El periférico 54, 70, 100, que está actuando como un periférico de almacenamiento de datos, entonces sincroniza al servidor(es) de nube cuando de nuevo está disponible en el futuro el acceso.
Alternativamente, cuando existen demasiados usuarios que utilizan el ancho de banda a los servidores de nube, el periférico 54, 70, 100 puede guardar en memoria caché/pre-buscar para cada usuario, mientras accede secuencialmente a servidores de nube para distribuir tiempo de ancho de banda a través de usuarios.
El periférico 54, 70, 100 también puede configurarse para actuar como una memoria caché de red de cliente delgado o Google Gears incorporado en AP. En esta configuración, el periférico 54, 70, 100 simula recursos de red, para uno o más usuarios, que no están presentes con caída a recursos de red cuando la conectividad de red se vuelve d isponible. El propósito de está configuración es mejorar al tiempo de respuesta con redes congestionadas y/o proporcionar acceso a funcionalidad de red/nube con conectividad de red intermitente. Como un ejemplo de utilizar está función, un usuario puede enviar correo electrónico al periférico 54, 70, 100 cuando está en un modo AP de Wi-Fi, mientras exista acceso de red/internet. Cuando el acceso de Internet se vuelve disponible, el periférico 54, 70, 100 se vuelve un cliente, conecta, envía correo electrónico en Internet, utilizando, por ejemplo Google Gears.
El periférico 54, 70, 100 también puede configurarse para insertar anuncios almacenados en su memoria local o desde un servidor de red basándose en olfateo y/o información de ubicación (Skyhook, GPS, o similares). Cuando el periférico 54, 70, 100 tiene AP simultáneo y modo de cliente puede desprender anuncios y reemplazarlos con anuncios desde su almacenamiento de memoria local. Estos anuncios pueden rastrearse si se da clic y los datos pueden almacenarse en la estructura de datos de gráfico del periférico.
También, cuando el periférico 54, 70, 100 está en modo AP, puede proporcionar varios SSID. Por ejemplo, se puede ser "Vimeo". Si se selecciona y el AP percibe iPhone, entonces Vimeo puede engañarse como YouTube para utilizar el reproductor de YouTube de iPhone.
VI. Sistema de procesamiento de pago La Figura 17 es un diagrama conceptual que ilustra un sistema de procesamiento de pago 700 que incluye un dispositivo periférico 702, que puede ser uno de los periféricos 54, 70, 100 descritos aquí. El sistema de procesamiento de pago 700 incluye el periférico 702, un teléfono inteligente o PDA 704, una tienda o punto de acceso inalámbrico de comerciante (AP), tal como un AP Wi-Fi, una terminal de punto de venta (POS) 708, y un servidor de procesamiento de pago 7 10. El periférico 702 se c omunica con el teléfono inteligente 704 y almacena AP 706 utilizando canales inalámbricos, tales como conexiones Wi-Fi. El periférico 702 también puede utilizar comunicación inalámbrica, tal como Wi-Fi, para comunicación con la terminal POS 708, o alternativamente, una conexión por cable, tal como cualquiera de esas aquí descritas. La terminal POS 708 se comunica con el servidor 710 a través de una red de datos. El servidor 710 y el AP de almacenamiento 706 están conectados en red al Internet 712.
Preferiblemente, el sistema 700 permite el procesamiento de pago en conexiones Wi-Fi desde un consumidor que posee el teléfono inteligente 704 y el periférico 702. El sistema 700 puede soportar al menos dos tipos de transacciones de pago. En el primer tipo de transacción, el sistema 700 utiliza el siguiente procedimiento: 1. El periférico 702 escanea los canales Wi-Fi para el teléfono inteligente 704 y forma pares de manera segura con éste cuando se encuentra. 2. Un cajero de la tienda cobra la transacción en la terminal POS 708. 3. La terminal POS 708 envía la cantidad de transacción total al periférico 702 a través de una conexión Wi-Fi, que a su vez, lo envía al teléfono inteligente 704 a través de Wi-Fi. 4. El consumidor a prueba la transacción a través del teléfono inteligente 704. 5. El periférico 702 transmite a la terminal POS 708 una indicación que la transacción ha sido aprobada por el consumidor. 6. El periférico 702 entonces se desconecta del teléfono inteligente 704.
Con el segundo tipo de transacción, el sistema utiliza el siguiente procedimiento: 1. El teléfono inteligente 704 corre una aplicación que identificación M AC t ransmitida en la red Wi-Fi por el periférico 702 como teniendo un rango válido. 2. Al identificar la dirección MAC de valor, el teléfono inteligente 704 entonces inicia una conexión Wi-Fi al periférico 702. 3. El periférico 702 se comunica con la terminal POS 708 ó el AP de almacenamiento 706 para obtener información sobre la cuenta del consumidor, por ejemplo, lealtad, cupones, o similares. La comunicación puede ocurrir en el canal inalámbrico B o a través de la terminal POS 708 a través del servidor 710 y/o internet 712. 4. El procedimiento entonces ejecuta los pasos 3-6 del primer tipo de transacción, anterior.
En sistemas de pago de múltiples carriles, tales como carriles de salida múltiples en un supermercado, puede existir una confusión de hacer pares entre el cliente, por ejemplo, teléfono inteligente 704 y el servidor, por ejemplo, el periférico 702. Existen varios métodos para resolver este problema de carriles múltiples. Un método es utilizar la triangulación RF. Otro método es variar el rango de la señal inalámbrica emitida desde el periférico 702 para prevenir comunicaciones de un carril a otro. Para revisar esto, el periférico 702 puede configurarse para ejecutar el siguiente procedimiento: 1. El periférico 702 limita el rango Wi-F¡ de su transmisión a varios centímetros (canal A en la Figura 17), hasta que la comunicación comienza con el teléfono inteligente 704 que está en un rango cercano. El periférico hace esto al reducir su energía de transmisión de Wi-Fi. El teléfono inteligente 704 entra dentro del rango por el consumidor que sostiene el periférico 702 y el teléfono inteligente 704 cerca. 2. Una vez que se establece comunicación Wi-Fi con el teléfono inteligente 704, el rango de transmisión del dispositivo periférico 702 puede aumentar para permitir al cliente sostener el teléfono normalmente. La interferencia entre los carriles no ocurrirá una vez que se establece la sesión Wi-Fi entre el periférico 702 y el teléfono inteligente 704. 3. El periférico 702 necesita comunicarse al AP y Wi-Fi 706 de la tienda para conexiones WAN/de Internet remotas, el rango puede cambiar (canal B en la Figura 17) en una forma multiplexada desde el rango corto al teléfono inteligente 704 del consumidor a un rango largo al AP Wi-Fi de la tienda 706. El periférico también puede cambiar entre modo de punto de acceso y un modo de cliente como sea necesario. 4. Una vez que complete el procedimiento de pago, el procedimiento regresa el paso 1.
Pueden agregarse características adicionales al periférico para mejorar utilidad. Tales funciones, pueden incluir seguridad, sincronización de reproducción de medios, combinar múltiples archivos en un archivo individual (por ejemplo, compartir fotografías en tv), transcodificación automática de archivos, por ejemplo archivos de audio y/o video, documentos, por ejemplo, de doc a .pdf, y similares.
Esta descripción presenta nuevos métodos y arquitecturas para un dispositivo periférico para crear nueva funcionalidad mejorada que proporcionará la funcionalidad tanto como un periférico USB como un dispositivo independiente. Ciertas configuraciones de la arquitectura involucran tener la misma función como un dispositivo de almacenamiento masivo USB tradicional, pero son novedosos al agregar funcionalidad adicional que no interconecta directamente a través del puerto USB sino más bien a través de un esquema de memoria de participación que involucra almacenamiento de datos incluida en el periférico. La funcionalidad adicional puede ser comunicaciones, tales como un módem inalámbrico tal como Wi-Fi, módem celular 3G/4G, Bluetooth, NFC, infrarrojo, o comunicación por cable, tal como USB, Ethernet o similares. En un método adicional, una máquina de estado complejo, tal como un procesador, proporciona operaciones funcionales con o independientes del puerto USB. Estas operaciones funcionales incluyen arbitraje de bajo nivel del acceso de memoria entre el puerto USB y las otras funciones, tales como funciones de comunicaciones, acceso de archivo o base de datos al almacenamiento de datos, o funciones de nivel superior, tal como un servidor web, procesador de sincronización de datos, codificación/descodificación criptográfica, autentificación, y otras funciones de estado complejo.
La funcionalidad de los sistemas, dispositivos, y sus componentes respectivos, así como los pasos y bloques de método aquí descritos pueden implementarse en hardware, software o firmware ejecutado por un procesador, o cualquier combinación adecuada de los mismos. El software/firmware pueden ser uno o más programas que tienen grupos de instrucciones (por ejemplo, segmentos de código) ejecutables por uno o más circuitos o procesadores digitales, tales como microprocesadores, DSP, controladores incorporados, núcleos de propiedad intelectual (IP). Si se implementan en software/firmware, las instrucciones o código pueden almacenarse en uno o más medios legibles por computadora. El medio legible por computadora incluye tanto medio de almacenamiento por computadora como medio de comunicación, que incluye cualquier medio que facilita transferencia de un programa de computadora de un lugar a otro. Un medio de almacenamiento puede ser cualquier medio disponible que puede accederse por una computadora. A manera de ejemplo, y no de limitación, tal medio legible por computadora puede comprender RAM, ROM, EEPROM, NAND/NOR flash, CD-ROM, u otro almacenamiento de estado sólido, almacenamiento de disco óptico, almacenamiento de disco magnético u otros dispositivos de almacenamiento magnético, o cualquier otro medio que puede utilizarse para transportar o almacenar código de programa deseado en la forma de instrucciones y estructuras de datos y que puede accederse por una computadora. El disco, como se utiliza aquí, incluye disco compacto (CD), disco láser, disco óptico, disco versátil digital (DVD), disco flexible y disco Blue-ray en donde los discos usualmente reproducen datos magnéticamente, mientras los discos reproducen datos ópticamente con láseres. Combinaciones de los anteriores también deben incluirse dentro del alcance de medio legible por computadora.
Otras modalidades y modificaciones de los métodos, sistemas de dispositivo y aparatos descritos anteriormente se les ocurrirán fácilmente para aquellos expertos de la técnica en vista de estas enseñanzas. De esa forma, la descripción anterior es ilustrativa y no restrictiva. La invención no está limitada únicamente por las siguientes reivindicaciones, que cubren todas esas modalidades y modificaciones, cuando se observan en conjunto con la especificación anterior y los dibujos anexos. El alcance de la invención, por lo tanto, no debe limitarse a la descripción anterior, sino a su vez debe determinarse con referencia a las reivindicaciones anexas junto con su alcance completo de equivalentes.

Claims (21)

REIVINDICACIONES
1.- Un método para un dispositivo de acceso de gráfico y un dispositivo de acceso de bloque para acceder simultáneamente a un grupo de memoria compartida entre los dispositivos, que comprende: verificar una o más operaciones de acceso de bloque de memoria realizadas por el dispositivo de acceso de bloque mientras accede al grupo de memoria; traducir las operaciones de acceso de bloque a una estructura de datos de gráfico que incluye una pluralidad de señaladores que trazan el grupo de memoria a un sistema de archivo jerárquico; y el dispositivo de acceso de gráfico accede al grupo de memoria concurrentemente con el dispositivo de acceso de bloque, de acuerdo con la estructura de datos de gráfico.
2.- El método de acuerdo con la reivindicación 1, que además comprende: el dispositivo de acceso de bloque que intenta escribir a un primer bloque de memoria en el grupo de memoria; determinar si el dispositivo de acceso de gráfico está accediendo actualmente al primer bloque de memoria; si el dispositivo de acceso de gráfico está accediendo actualmente al primer bloque de memoria, el dispositivo de acceso de bloque escribe a un segundo bloque de memoria en lugar del primer bloque de memoria; resolver la estructura de datos de gráfico para indicar al menos una ubicación de nnemoria de la escritura realizada por el dispositivo de acceso de bloque.
3. - El método de acuerdo con la reivindicación 2, en donde resolver la estructura de datos del gráfico incluye cambiar un indicador en la estructura de datos de gráfico de indicar el primer bloque de memoria para indicar el segundo bloque de memoria.
4. - El método de acuerdo con la reivindicación 2, en donde resolver la estructura de datos de gráfico incluye copiar los contenidos del segundo bloque de memoria al primer bloque de memoria subsecuente al dispositivo de acceso de gráfico que completa su acceso al primer bloque de memoria.
5. - El método de acuerdo con la reivindicación 1, en donde el grupo de memoria es una memoria lógica individual.
6. - El método de acuerdo con la reivindicación 1, en donde el grupo de memoria está incluido en un dispositivo periférico.
7. - El método de acuerdo con la reivindicación 1, en donde el grupo de memoria está distribuido entre una pluralidad de dispositivos en red separados.
8. - El método de acuerdo con la reivindicación 1, en donde el dispositivo de acceso de gráfico incluye un cliente inalámbrico configurado para acceder al grupo de memoria a través de un enlace inalámbrico.
9. - El método de acuerdo con la reivindicación 1, en donde el dispositivo de acceso de bloque incluye un anfitrión USB configurado para acceder al grupo de memoria a través de una conexión USB.
10. - El método de acuerdo con la reivindicación 1, en donde el dispositivo de acceso de bloque proporciona una dirección de memoria de ubicación de inicio distinto y una dirección de memoria de ubicación de fin distinto, cada una localizada en el grupo de memoria, para acceder al grupo de memoria durante las operaciones de acceso de bloque de memoria.
11. - El método de acuerdo con la reivindicación 1, en donde la verificación incluye: determinar si las operaciones de acceso de memoria de bloque están escribiendo a ubicaciones de memoria en el grupo de memoria que almacena la estructura de datos de gráfico; y determinar si las operaciones de acceso de memoria de bloque están escribiendo a ubicaciones de memoria en el grupo de memoria que almacena contenido de datos.
12.- El método de acuerdo con la reivindicación 11, en donde la traducción incluye actualizar la estructura de datos de gráfico basándose en ubicaciones de memoria escritas por el dispositivo de acceso de bloque durante las operaciones de acceso de memoria de bloque.
13.- El método de acuerdo con la reivindicación 1, en donde la traducción incluye actualizar la estructura de datos de gráfico basándose en un conteo de operaciones de acceso de memoria de bloque que acceden a ubicaciones de dirección de memoria predeterminadas en el grupo de memoria.
14.- Un aparato, que comprende: un grupo de memoria compartida entre un dispositivo de acceso de gráfico y un dispositivo de acceso de bloque; medios para verificar una o más operaciones de acceso de bloque de memoria realizadas por el dispositivo de acceso de bloque mientras accede al grupo de memoria; medios para traducir las operaciones de acceso de bloque a una estructura de datos de gráfico que incluye una pluralidad de señaladores que trazan el grupo de memoria a un sistema de archivo jerárquico; y medios para el dispositivo de acceso de gráfico que accede al grupo de memoria concurrentemente con el dispositivo de acceso de bloque, de acuerdo con la estructura de datos de gráfico.
15.- Un dispositivo periférico, que comprende: una memoria compartida entre el dispositivo de acceso de gráfico y un dispositivo de acceso de bloque; una primera interfase de comunicación configurada para comunicarse con el dispositivo de acceso de bloque; una segunda interfase de comunicación configurada para comunicarse con el dispositivo de acceso de gráfico; un procesador, operativamente acoplado a la memoria, y las primeras y las segundas ¡nterfases de comunicación, configuradas para: verificar una o más operaciones de acceso de bloque de memoria realizadas por el dispositivo de acceso de bloque mientras accede a la memoria; traducir las operaciones de acceso de bloque a una estructura de datos de gráfico que incluye una pluralidad de señaladores que trazan la memoria a un sistema de archivo jerárquico; y permitir que el dispositivo de acceso de gráfico acceda concurrentemente a la memoria, de acuerdo con la estructura de datos de gráfico, mientras el dispositivo de acceso de bloque también está accediendo a la memoria.
16. - El dispositivo periférico de acuerdo con la reivindicación 15, en donde la memoria está incluida en un grupo de memoria que está distribuido entre el dispositivo periférico y al menos otro dispositivo separado.
17. - El dispositivo periférico de acuerdo con la reivindicación 15, en donde la segunda interfase de comunicación está configurada para comunicarse con una pluralidad de dispositivos de acceso de gráfico y la memoria se comparte entre el dispositivo de acceso de bloque y la pluralidad de dispositivos de acceso de gráfico.
18. - El dispositivo periférico de acuerdo con la reivindicación 15, en donde el procesador está configurado para codificar criptográficamente contenido almacenado en la memoria.
19 - El dispositivo periférico de acuerdo con la reivindicación 15, en donde el procesador está configurado para transcodificar contenido almacenado en la memoria.
20.- El dispositivo periférico de acuerdo con la reivindicación 15, en donde el procesador está configurado para autentificar el dispositivo de acceso de bloque y otorgar acceso a la memoria únicamente a un dispositivo de acceso de bloque apropiadamente autentificado.
21.- El dispositivo periférico de acuerdo con la reivindicación 15, en donde el procesador está configurado para autentificar el dispositivo de acceso de gráfico y otorgar acceso a la memoria únicamente a un dispositivo de acceso de gráfico apropiadamente autentificado.
MX2012004910A 2009-10-26 2010-10-26 Acceso concurrente a un grupo de memoria compartida entre un dispositivo de acceso de bloque y un dispositivo de acceso de grafico. MX2012004910A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US25500209P 2009-10-26 2009-10-26
PCT/US2010/054172 WO2011056612A2 (en) 2009-10-26 2010-10-26 Concurrent access to a memory pool shared between a block access device and a graph access device

Publications (1)

Publication Number Publication Date
MX2012004910A true MX2012004910A (es) 2013-06-28

Family

ID=43970673

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2012004910A MX2012004910A (es) 2009-10-26 2010-10-26 Acceso concurrente a un grupo de memoria compartida entre un dispositivo de acceso de bloque y un dispositivo de acceso de grafico.

Country Status (10)

Country Link
US (2) US8527719B2 (es)
EP (1) EP2494452A4 (es)
JP (1) JP2013508885A (es)
KR (1) KR20120099239A (es)
CN (1) CN102870101A (es)
AU (1) AU2010315476A1 (es)
CA (1) CA2778969A1 (es)
IL (1) IL219413A0 (es)
MX (1) MX2012004910A (es)
WO (1) WO2011056612A2 (es)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102870101A (zh) * 2009-10-26 2013-01-09 韦尔埃布尔股份有限公司 对在块存取设备和图形存取设备之间共享的存储器池的并行存取
US20110181396A1 (en) * 2010-01-25 2011-07-28 Hilla Jr Ralph Rfid information data on external memory
US8789146B2 (en) * 2011-04-14 2014-07-22 Yubico Inc. Dual interface device for access control and a method therefor
US20120278806A1 (en) * 2011-04-29 2012-11-01 Quantum Corporation Data control system for virtual environment
KR101955976B1 (ko) * 2011-08-25 2019-03-08 엘지전자 주식회사 제한된 사용자 인터페이스를 가진 장치의 활성화
KR20130028349A (ko) * 2011-09-09 2013-03-19 삼성전자주식회사 메모리 장치, 메모리 시스템 및 그 데이터 저장 방법
US20130097135A1 (en) * 2011-10-17 2013-04-18 Pie Digital, Inc. Method and system for generating domain specific in-memory database management system
US20130117580A1 (en) * 2011-11-07 2013-05-09 Kien Hoe Daniel Chin Compact universal wireless adapter
GB2497314A (en) * 2011-12-06 2013-06-12 St Microelectronics Grenoble 2 Independent blocks to control independent busses or a single combined bus
CN103186359B (zh) * 2011-12-30 2018-08-28 南京中兴软件有限责任公司 硬件抽象数据结构、数据处理方法及系统
US9116809B2 (en) 2012-03-29 2015-08-25 Ati Technologies Ulc Memory heaps in a memory model for a unified computing system
US20140019565A1 (en) * 2012-07-13 2014-01-16 Samsung Electronics Co., Ltd. Apparatus and method for selecting multiple files in an electronic device
US9053248B2 (en) 2012-08-31 2015-06-09 Nxp B.V. SRAM handshake
US9514067B2 (en) * 2012-08-31 2016-12-06 Nxp B.V. Interface arbitration for a wired tag
CA2900762C (en) * 2013-02-08 2019-10-15 Schlage Lock Company Llc Control system and method
US9509688B1 (en) 2013-03-13 2016-11-29 EMC IP Holding Company LLC Providing malicious identity profiles from failed authentication attempts involving biometrics
JP5850874B2 (ja) * 2013-03-27 2016-02-03 京セラドキュメントソリューションズ株式会社 電子機器およびファームウェア更新プログラム
US9317520B2 (en) 2013-07-30 2016-04-19 International Business Machines Corporation State scope data file sharing
JP5900456B2 (ja) * 2013-10-09 2016-04-06 コニカミノルタ株式会社 画像処理システム、画像形成装置、中継装置、管理方法、および制御プログラム
US9384722B2 (en) * 2014-01-10 2016-07-05 Fishman Transducers, Inc. Method and device for rechargeable, retrofittable battery pack
US9547553B1 (en) 2014-03-10 2017-01-17 Parallel Machines Ltd. Data resiliency in a shared memory pool
US9781027B1 (en) 2014-04-06 2017-10-03 Parallel Machines Ltd. Systems and methods to communicate with external destinations via a memory network
US9462469B2 (en) * 2014-04-21 2016-10-04 Arm Limited Systems and methods for short range wireless data transfer
US9477412B1 (en) 2014-12-09 2016-10-25 Parallel Machines Ltd. Systems and methods for automatically aggregating write requests
US9690713B1 (en) 2014-04-22 2017-06-27 Parallel Machines Ltd. Systems and methods for effectively interacting with a flash memory
US9529622B1 (en) 2014-12-09 2016-12-27 Parallel Machines Ltd. Systems and methods for automatic generation of task-splitting code
KR101607773B1 (ko) * 2014-10-27 2016-04-11 삼성에스디에스 주식회사 데이터 송신 장치 및 이를 이용하는 데이터 통신 방법
US9753873B1 (en) 2014-12-09 2017-09-05 Parallel Machines Ltd. Systems and methods for key-value transactions
US9690705B1 (en) 2014-12-09 2017-06-27 Parallel Machines Ltd. Systems and methods for processing data sets according to an instructed order
US9639473B1 (en) 2014-12-09 2017-05-02 Parallel Machines Ltd. Utilizing a cache mechanism by copying a data set from a cache-disabled memory location to a cache-enabled memory location
US9781225B1 (en) 2014-12-09 2017-10-03 Parallel Machines Ltd. Systems and methods for cache streams
JP6786164B2 (ja) * 2014-12-26 2020-11-18 フェリカネットワークス株式会社 情報処理装置、および、情報処理方法、プログラム、並びに情報処理システム
US10698878B2 (en) * 2015-03-06 2020-06-30 Hewlett Packard Enterprise Development Lp Graph update flush to a shared memory
WO2016195704A1 (en) * 2015-06-05 2016-12-08 Hewlett Packard Enterprise Development Lp Data block write mapped to memory bank
KR102521639B1 (ko) * 2016-01-27 2023-04-14 (주)엠아이웨어 카메라 및 멀티미디어의 데이터 처리를 위한 공유 메모리 제어 방법
US10628296B1 (en) 2016-04-04 2020-04-21 Omni Ai, Inc. Data composite for efficient memory transfer in a behavorial recognition system
US20190034361A1 (en) * 2017-07-28 2019-01-31 Action Star Technology Co., Ltd. Peripheral device controlling method by using storage device and storage device capable of controlling peripheral devices
CN109308272A (zh) * 2017-07-28 2019-02-05 同星科技股份有限公司 通过数据储存装置控制外围装置的方法与可控制外围装置的数据储存装置
CN110247937B (zh) * 2018-03-07 2021-08-13 中移(苏州)软件技术有限公司 弹性存储系统共享文件管理、访问方法及相关设备
US11086733B2 (en) * 2018-12-19 2021-08-10 Micron Technology, Inc. Reporting control information errors
JP2020201561A (ja) * 2019-06-06 2020-12-17 アイティアクセス株式会社 情報処理システム、ネットワークサービス接続用デバイス、情報処理方法、及び情報処理プログラム
US11388000B2 (en) * 2019-06-19 2022-07-12 Innotek, Inc. Systems and methods to facilitate data security in a portable storage device
EP4102378A1 (de) * 2021-06-11 2022-12-14 Data Transformer GmbH Verfahren zur neuorganisation und/oder transformation von daten
US11947501B2 (en) * 2021-10-21 2024-04-02 Dell Products L.P. Two-hierarchy file system

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995015525A1 (en) * 1993-11-30 1995-06-08 Vlsi Technology, Inc. Method and apparatus for providing and maximizing concurrent operations in a shared memory system
US5682522A (en) * 1995-07-18 1997-10-28 Silicon Integrated Systems Corp. Shared memory architecture of graphics frame buffer and hard disk cache
US8713641B1 (en) * 1998-12-08 2014-04-29 Nomadix, Inc. Systems and methods for authorizing, authenticating and accounting users having transparent computer access to a network using a gateway device
US6469703B1 (en) * 1999-07-02 2002-10-22 Ati International Srl System of accessing data in a graphics system and method thereof
KR100390120B1 (ko) * 1999-09-08 2003-07-04 마츠시타 덴끼 산교 가부시키가이샤 신호 처리 장치
US6779063B2 (en) * 2001-04-09 2004-08-17 Hitachi, Ltd. Direct access storage system having plural interfaces which permit receipt of block and file I/O requests
US6864896B2 (en) * 2001-05-15 2005-03-08 Rambus Inc. Scalable unified memory architecture
US7873700B2 (en) * 2002-08-09 2011-01-18 Netapp, Inc. Multi-protocol storage appliance that provides integrated support for file and block access protocols
US20040117836A1 (en) * 2002-12-11 2004-06-17 Jeyhan Karaoguz Method and system for network storage in a media exchange network
JP4104586B2 (ja) * 2004-09-30 2008-06-18 株式会社東芝 ファイル管理機能を備えたファイルシステム及びファイル管理方法
FR2880444B1 (fr) * 2005-01-06 2007-03-09 Gemplus Sa Dispositif de stockage de donnees
US7653832B2 (en) * 2006-05-08 2010-01-26 Emc Corporation Storage array virtualization using a storage block mapping protocol client and server
US8098598B1 (en) * 2007-11-27 2012-01-17 Sprint Communications Company L.P. Emulating a removable mass storage device
US8352750B2 (en) * 2008-01-30 2013-01-08 Hewlett-Packard Development Company, L.P. Encryption based storage lock
CN102870101A (zh) * 2009-10-26 2013-01-09 韦尔埃布尔股份有限公司 对在块存取设备和图形存取设备之间共享的存储器池的并行存取

Also Published As

Publication number Publication date
WO2011056612A3 (en) 2011-08-11
US20140059316A1 (en) 2014-02-27
IL219413A0 (en) 2012-06-28
EP2494452A2 (en) 2012-09-05
AU2010315476A1 (en) 2012-06-07
US8527719B2 (en) 2013-09-03
CA2778969A1 (en) 2011-05-12
JP2013508885A (ja) 2013-03-07
US20110113210A1 (en) 2011-05-12
CN102870101A (zh) 2013-01-09
EP2494452A4 (en) 2012-11-07
KR20120099239A (ko) 2012-09-07
WO2011056612A2 (en) 2011-05-12

Similar Documents

Publication Publication Date Title
US8527719B2 (en) Concurrent access to a memory pool shared between a block access device and a graph access device
KR101693174B1 (ko) 바이오메트릭 클라우드 통신 및 데이터 이동
US8769131B2 (en) Cloud connector key
KR101548574B1 (ko) 통신 네트워크들에 대한 네트워크 접속된 미디어 게이트웨이
US20110078375A1 (en) Data storage
KR101533427B1 (ko) 대용량 가상저장공간을 제공하는 이동식 저장장치 및 그 제공방법
WO2015103762A1 (zh) 一种发送、接收用户数据的方法及终端设备
TW201216733A (en) Method and system for multi-stage device filtering in a Bluetooth low energy device
CN103763368B (zh) 一种跨数据中心的数据同步方法
CN102394935A (zh) 无线共享存储系统及其无线共享存储方法
WO2015106511A1 (zh) 一种移动终端的虚拟存储的实现方法及装置
TWM462408U (zh) 具自主備份能力的無線儲存裝置與無線儲存系統
WO2017097106A1 (zh) 一种文件差量的传输方法以及装置
CN102427476A (zh) 一种无线云存储模块
CN109451079A (zh) 一种云u盘及其存储方法和存储系统
CN102427477A (zh) 一种无线云存储装置
CN104038544A (zh) 一种远程访问和远程共享无线存储的方法和系统
KR101876822B1 (ko) 메타 정보 기반의 클라우드 서비스 방법
TWI840288B (zh) 設備接入方法及其裝置、資料交換方法及其裝置、聯網設備、服務端及存儲介質
CN106878453B (zh) 共享云存储方法及系统
CN102497426A (zh) 一种无线云存储卡
CN103957210B (zh) 智能卡及其安全控制方法、装置和系统
KR20130024434A (ko) 데이터 중계기와 공유기를 이용한 통신망상에서의 외장형 저장장치 구동시스템
WO2019104989A1 (zh) 终端和通信方法
KR20120073799A (ko) 클라우드 스토리지 기반의 데이터 동기화 및 서비스 제공 장치와 방법

Legal Events

Date Code Title Description
FA Abandonment or withdrawal