BR112016005368B1 - Sistema de armazenamento flash universal, método de controle de um sistema de memória e sistema de memória do controlador multimídia embutido - Google Patents

Sistema de armazenamento flash universal, método de controle de um sistema de memória e sistema de memória do controlador multimídia embutido Download PDF

Info

Publication number
BR112016005368B1
BR112016005368B1 BR112016005368-0A BR112016005368A BR112016005368B1 BR 112016005368 B1 BR112016005368 B1 BR 112016005368B1 BR 112016005368 A BR112016005368 A BR 112016005368A BR 112016005368 B1 BR112016005368 B1 BR 112016005368B1
Authority
BR
Brazil
Prior art keywords
transfer request
completion
bit
register
bell
Prior art date
Application number
BR112016005368-0A
Other languages
English (en)
Other versions
BR112016005368A2 (pt
Inventor
Dolev Raviv
Tatyana Brokhman
Maya Haim
Assaf Shacham
Original Assignee
Qualcomm Incorporated
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 Qualcomm Incorporated filed Critical Qualcomm Incorporated
Publication of BR112016005368A2 publication Critical patent/BR112016005368A2/pt
Publication of BR112016005368B1 publication Critical patent/BR112016005368B1/pt

Links

Images

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/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • 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
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1014One time programmable [OTP] memory, e.g. PROM, WORM

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)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)
  • Retry When Errors Occur (AREA)
  • Read Only Memory (AREA)
  • Telephone Function (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Storage Device Security (AREA)
  • Bus Control (AREA)
  • Communication Control (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Memory System (AREA)

Abstract

CONCLUSÃO DE COMANDO DE VERIFICAÇÃO EM MEMÓRIAS FLASH. Trata-se da conclusão de comando de verificação em memórias flash. Um aspecto exemplificativo inclui eliminar o bloqueio de software e a variável de solicitações pendente e substituir os mesmos por um registro de conclusão de solicitação de transferência. O registro de conclusão de solicitação de transferência pode ser mapeado para os intervalos de Lista de Solicitação de Transferência de Protocolo de Transferência (UTP) ( UTRL) de Armazenamento Flash Universal (UFS). O controlador do hospedeiro um componente de hardware pode definir o bit no registro de conclusão de solicitação de transferência na conclusão de solicitação de transferência ao mesmo tempo em que o registro de campainha é liberado. Após esse bit ter sido lido, o bit no registro de conclusão de solicitação de transferência é liberado.

Description

REIVINDICAÇÃO DE PRIORIDADE
[0001] O presente pedido reivindica prioridade ao Pedido de Patente Provisória no de série US 61/875.907 depositado em 10 de setembro de 2013, e intitulado “SYSTEMS AND METHODS FOR ASCERTAINING COMMAND COMPLETION IN FLASH MEMORIES”, que é incorporado ao presente documento a título de referência em sua totalidade.
[0002] O presente pedido também reivindica prioridade ao Pedido de Patente no de série US 14/467.404 depositado em 25 de agosto de 2014, e intitulado “ASCERTAINING COMMAND COMPLETION IN FLASH MEMORIES”, que é incorporado ao presente documento a título de referência em sua totalidade.
ANTECEDENTES I. CAMPO DA REVELAÇÃO
[0003] A tecnologia da revelação refere-se, em geral, a memória flash e comandos de processamento para a memória flash.
II. ANTECEDENTES
[0004] A memória flash é comum em muitos tipos de dispositivos de computação que incluem terminais móveis como câmeras, reprodutores de áudio, telefones inteligentes, computadores do tipo tablet, e semelhantes. A memória flash pode ser uma dentre dois tipos gerais - removível ou embutida - e diversos padrões existem para ambos os tipos. Um padrão inicialmente projetado para situações embutidas é o padrão de Armazenamento Flash Universal (UFS) estabelecido pelo Conselho Conjunto para Engenharia de Dispositivos de Elétrons (JEDEC). Um outro padrão comum é o padrão de Controlador Multimídia embutido (eMMC).
[0005] No padrão UFS, um hospedeiro se comunica com um dispositivo que retém os elementos de memória. O hospedeiro emite comandos para o dispositivo executar tarefas de “solicitação de transferência” como o registro de dados nos elementos de memória, a leitura de dados a partir dos elementos de memória, e a sincronização de cache. Por projeto, o UFS suporta diversas solicitações de transferência concorrentes. As solicitações de transferência são acionadas por software no controlador do hospedeiro e usam um registro chamado de um registro de campainha e uma variável de software referida como (pelo menos dentro de uma implantação LINUX) uma variável de solicitações pendente. Embora o termo “variável de solicitações pendente” seja especificado para LINUX, outros sistemas operacionais usam variáveis semelhantes e todas são referidas no presente documento como variável de solicitações pendentes. Cada solicitação de transferência ocupa um intervalo e um bit correspondente no registro de campainha e na variável de solicitações pendente. Quando se envia uma nova solicitação de transferência, o software define um bit que corresponde ao intervalo no registro e a variável. Definir o bit no registro notifica o controlador de que uma nova solicitação de transferência está pronta. Quando uma solicitação de transferência for concluída, o hardware limpa o bit que corresponde ao intervalo no registro, e o software então compara o bit no registro aos bits na variável de solicitações pendente para encontrar solicitações concluídas. Nota-se que eMMC é semelhante, embora os elementos específicos possam ter nomes diferentes.
[0006] Se o hospedeiro receber uma interrupção antes de definir o registro de campainha e após atualizar a variável de solicitações pendente, o hospedeiro pode reconhecer que a solicitação é concluída antes de a solicitação ser enviada. Em tal situação, o software pode concluir a solicitação, mas com um erro. Alternativamente, se o hospedeiro receber uma interrupção após definir o registro e a solicitação ser concluída antes de atualizar a variável de solicitações pendente, a solicitação pode ser perdida. Ainda uma outra situação pode atrasar as solicitações até que chegue uma outra interrupção de conclusão de solicitação de transferência. Tal situação atrasa a solicitação causando, desse modo, a degradação do desempenho, faz com que o atraso dure indefinidamente ou até que um erro ocorra, o qual aborta o comando. Atualmente, tais situações são evitadas através do uso de um bloqueio de software. No entanto, tais bloqueios de software são lentos e podem excluir outras solicitações de transferência. Ademais, tais bloqueios de software ou exclusões aumentam, em geral, a latência que resulta em uma degradação do desempenho, especialmente em processadores de múltiplos núcleos.
SUMÁRIO DA REVELAÇÃO
[0007] Os aspectos revelados na descrição detalhada incluem a conclusão de comando de verificação em memórias flash. Um aspecto exemplificativo inclui eliminar o bloqueio de software e a variável de solicitações pendente e substituir os mesmos por um registro de conclusão de solicitação de transferência. O registro de conclusão de solicitação de transferência pode ser mapeado para os intervalos de Lista de Solicitação de Transferência de Protocolo de Transferência (UTP) (UTRL) de Armazenamento Flash Universal (UFS) . O controlador do hospedeiro - um componente de hardware - pode definir o bit no registro de conclusão de solicitação de transferência na conclusão de solicitação de transferência ao mesmo tempo em que o registro de campainha é limpo. Após esse bit ter sido lindo, o bit no registro de conclusão de solicitação de transferência é limpo. Embora a UFS seja especificamente contemplada, outros padrões de memória flash como Controlador Multimídia embutido (eMMC) também podem se beneficiar dos aspectos da presente revelação (por exemplo, o eMMC tem uma Lista de Descritor de Tarefa (TDL) que é funcionalmente equivalente à UTRL). Substituir o bloqueio de software e a variável de solicitações pendente aprimora o desempenho reduzindo-se a latência e eliminando as exclusões de solicitação de transferência que podem ocorrer com o uso de tais bloqueios de software. Em particular, a conclusão e a emissão de contextos podem funcionar simultaneamente. As solicitações de transferência podem ser emitidas de múltiplos contextos ao mesmo tempo. O uso desses diversos contextos aprimora o desempenho, especialmente em dispositivos de múltiplos núcleos como telefones inteligentes.
[0008] Nesse sentido, em um aspecto, um sistema de UFS é revelado. O sistema de UFS inclui um registro de campainha tendo uma quantidade de bits que correspondem a uma UTRL. O sistema de UFS também compreende um registro de conclusão que tem um mesmo número de bits. O sistema de UFS compreende adicionalmente um sistema de controle acoplado de modo operativo ao registro de campainha e ao registro de conclusão. O sistema de controle é configurado para definir um bit de campainha no registro de campainha para o início de solicitação de envio. Declarado de outro modo, quando um bit no registro de campainha for elevado, o mesmo assinala ao controlador que uma solicitação de transferência está pronta e pode ser processada (isto é, começa a transferência dos dados). O sistema de controle também é configurado para definir um bit de conclusão no registro de conclusão na conclusão de solicitação de transferência. O sistema de controle também é configurado para limpar o bit de campainha na conclusão de solicitação de transferência.
[0009] Em um outro aspecto, um sistema de memória é revelado. O sistema de memória inclui um registro de campainha tendo uma quantidade de bits. O sistema de memória também inclui um registro de conclusão que tem um mesmo número de bits. O sistema de memória também inclui um sistema de controle de modo operativo acoplado ao registro de campainha e ao registro de conclusão. O sistema de controle é configurado para definir um bit de campainha no registro de campainha para um início de solicitação de envio. O sistema de controle também é configurado para definir um bit de conclusão no registro de conclusão na conclusão de solicitação de transferência. O sistema de controle também é configurado para limpar o bit de campainha na conclusão de solicitação de transferência.
[0010] Em um outro aspecto, um método de controle de um sistema de memória é revelado. O método inclui gerar uma solicitação de transferência em um hospedeiro. O método também inclui definir um bit em um registro de campainha no hospedeiro que identifica a solicitação de transferência. O método também inclui passar a solicitação de transferência para um dispositivo através de uma interface de comunicação. O método também inclui concluir uma transferência associada à solicitação de transferência. O método também inclui limpar o bit no registro de campainha. O método também inclui definir um bit de conclusão em um registro de conclusão.
[0011] Em um outro aspecto, um sistema de memória de Controlador Multimídia embutido (eMMC) é revelado. O sistema de memória inclui um registro de campainha que tem números bits que correspondem a uma Lista de Descritor de Tarefa de eMMC. O sistema de memória também inclui um registro de notificação de conclusão que tem um mesmo número de bits. O sistema de memória também inclui um sistema de controle acoplado de modo operativo ao registro de campainha e ao registro de notificação de conclusão e configurado para definir um bit de campainha no registro de campainha para um início de solicitação de envio. O sistema de controle também é configurado para definir um bit de conclusão no registro de notificação de conclusão na conclusão de solicitação de transferência. O sistema de controle também é configurado para limpar o bit de campainha na conclusão de solicitação de transferência.
BREVE DESCRIÇÃO DAS FIGURAS
[0012] A Figura 1 é um diagrama em bloco de uma conexão exemplificativa entre um hospedeiro e um dispositivo sem os aspectos exemplificativos da presente revelação;
[0013] A Figura 2A ilustra uma primeira condição de corrida que pode surgir em um sistema de memória sem bloqueios ou aspectos de sincronização da presente revelação;
[0014] A Figura 2B ilustra uma segunda condição de corrida que pode surgir em um sistema de memória sem bloqueios ou aspectos de sincronização da presente revelação;
[0015] A Figura 3 ilustra um fluxograma de um processo de fluxo de dados convencional com o uso de um bloqueio para impedir as condições de corrida como aquelas ilustradas nas Figuras 2A e 2B;
[0016] A Figura 4 é um diagrama em bloco de uma conexão exemplificativa entre um hospedeiro e um dispositivo com os registros de hospedeiro de acordo com aspectos exemplificativos da presente revelação;
[0017] A Figura 5 é um fluxograma que ilustra um processo exemplificativo do fluxo de dados entre o hospedeiro e o dispositivo da Figura 4; e
[0018] A Figura 6 é um diagrama em bloco de um sistema baseado em processador exemplificativo que pode empregar o hospedeiro e o dispositivo ilustrados na Figura 4.
DESCRIÇÃO DETALHADA
[0019] Com referência às Figuras dos desenhos, diversos aspectos exemplificativos dos aspectos da presente revelação são revelados. A palavra “exemplificativo” é usada no presente documento para significar “que serve como um exemplo, ocorrência ou ilustração”. Qualquer aspecto descrito no presente documento como “exemplificativo” não tem que ser necessariamente interpretado como preferencial ou vantajoso sobre outros aspectos.
[0020] Os aspectos revelados na descrição detalhada incluem a conclusão de comando de verificação em memórias flash. Um aspecto exemplificativo inclui eliminar o bloqueio de software e a variável de solicitações pendente e substituir os mesmos por um registro de conclusão de solicitação de transferência. O registro de conclusão de solicitação de transferência pode ser mapeado para os intervalos de Lista de Solicitação de Transferência de Protocolo de Transferência (UTP) (UTRL) de Armazenamento Flash Universal (UFS) . O controlador do hospedeiro - um componente de hardware - pode definir o bit no registro de conclusão de solicitação de transferência na conclusão de solicitação de transferência ao mesmo tempo em que o registro de campainha é limpo. Após esse bit ter sido lido, o bit no registro de conclusão de solicitação de transferência é limpo. Enquanto o UFS é especificamente contemplado, outros padrões de memória flash como Controlador Multimídia embutido (eMMC) também podem se beneficiar dos aspectos da presente revelação (por exemplo, o eMMC tem uma Lista de Descritor de Tarefa (TDL) que é funcionalmente equivalente à UTRL). A substituição do bloqueio de software e da variável de solicitações pendente aprimora o desempenho reduzindo-se a latência e eliminando- se as exclusões de solicitação de transferência que podem ocorrer com o uso de tais bloqueios de software. Em particular, a conclusão e a emissão de contextos podem funcionar simultaneamente. As solicitações de transferência podem ser emitidas a partir de múltiplos contextos ao mesmo tempo. O uso desses diversos contextos aprimora o desempenho, especialmente em dispositivos de múltiplos núcleos como telefones inteligentes.
[0021] Antes de lidar com os aspectos da presente revelação, uma visão geral de sistemas convencionais e questões que surgem com a mesma com referência às Figuras 1 a 3. Os aspectos exemplificativos da presente revelação começam abaixo com referência à Figura 4.
[0022] Nesse sentido, a Figura 1 é o diagrama em bloco de um hospedeiro 10 acoplado a um dispositivo 12 por meio de condutores 14. As comunicações entre hospedeiro 10 e dispositivo 12 estão de acordo com o padrão UFS v2.0 publicado em setembro 2013. Embora a presente discussão foque em UFS, outros padrões flash também podem se beneficiar dos aspectos da presente revelação que incluem o Controlador Multimídia embutido (eMMC). O hospedeiro 10 inclui um controlador de hospedeiro 16 que é um sistema baseado em hardware acoplado de modo operativo a uma interface de comunicação adequada 18. O controlador de hospedeiro 16 interopera com o software de hospedeiro 20. Coletivamente, o controlador de hospedeiro 16 e o software de hospedeiro 20 são um sistema de controle.
[0023] Com referência continuada à Figura 1, o dispositivo 12 inclui um controlador 22 que é um sistema baseado em hardware acoplado de modo operativo a uma interface de comunicação adequada 24. O dispositivo 12 inclui adicionalmente uma unidade de memória 26 (por exemplo, um dispositivo de armazenamento em Flash Negated E ou NOT E (NAND)). O dispositivo 12 inclui adicionalmente uma fila de tarefas 28. Coletivamente, o controlador 22 e qualquer software associado à operação do controlador 22 são um sistema de controle.
[0024] O hospedeiro 10 inclui adicionalmente um registro de campainha 30 (UTRLDBR). O registro de campainha 30 é um componente baseado em hardware com uma quantidade de bits igual a um número de intervalos de solicitação de transferência manipulados pelo controlador de hospedeiro 16. Ou seja, o registro de campainha 30 tem uma quantidade de bits que correspondem a uma lista de Solicitação de Transferência de Protocolo Padrão UFS.
[0025] Com referência continuada à Figura 1, em um sistema de UFS convencional, o elemento de computação que incorpora o hospedeiro 10 pode precisar ler ou gravar os dados na unidade de memória 26. Dessa maneira, uma solicitação de transferência que esboça a transferência de dados solicitada pode ser enviada para o controlador de hospedeiro 16. O software de hospedeiro 20 atribui, então, um intervalo à solicitação de transferência. O controlador de hospedeiro 16 pode ter diversos intervalos (não mostrados) para manusear diversas solicitações de transferência. Diversas solicitações de transferência são comuns, especialmente em processadores de múltiplos núcleos. Quando o software de hospedeiro 20 tiver preparado a solicitação de transferência para o dispositivo 12, o software de hospedeiro 20 define um bit no registro de campainha 30 que corresponde ao intervalo com o qual a solicitação de transferência é atribuída. A definição do bit no registro de campainha 30 assinala ao controlador de hospedeiro 16 para enviar a solicitação de transferência para o dispositivo 12 através da interface de comunicação 18.
[0026] O dispositivo 12 trata a solicitação de transferência de acordo com as regras bem documentadas dentro do padrão UFS. A transferência de dados ocorre, e uma vez que a transferência de dados for concluída, o controlador de hospedeiro 16 notifica o software de hospedeiro 20 ao limpar o bit no registro de campainha 30. Em operação, o hospedeiro 10 pode receber uma interrupção de solicitação de transferência. O software de hospedeiro 20 verifica o registro de campainha 30 para ver quais tarefas são finalizadas e quais intervalos já estão atribuídos. No entanto, com mais informações ausentes, o software de hospedeiro 20 não pode discriminar entre bits definidos em zero para as tarefas concluídas e bits definidos em zero para uma solicitação que ainda não foi enviada. Dessa maneira, o software de hospedeiro 20 mantém uma variável de solicitações pendente (não mostrada), que indica quais intervalos foram atribuídos.
[0027] A variável de solicitações pendente é atualizada uma vez que as preparações para enviar uma solicitação de transferência começaram e foram limpas de uma vez a resposta para a solicitação de transferência é recebida do dispositivo 12. O software de hospedeiro 20 compara a variável de solicitações pendente com o registro de campainha 30 para saber quais têm solicitações concluídas. Com o controle adicionalmente ausente, o sistema de UFS pode ter condições de corrida que causam erros, atrasos, comandos abortados ou a perda de comandos. Duas tais condições de corrida são ilustradas nas Figuras 2A e 2B.
[0028] Nesse sentido, a Figura 2A ilustra, através de um processo 34, o que acontece quando uma solicitação de envio para a corrida antes de a variável de solicitações pendente ser atualizada. Deve-se observar que o processo 34 pode ser implantado através de diferentes elementos que incluem software e hardware e podem ser componentes separados e distintos (por exemplo, sub-rotinas diferentes, módulos de software diferentes, IC diferente, ou semelhantes). Em particular, e conforme definido acima, quando o software de hospedeiro 20 da Figura 1 tiver preparado a solicitação de transferência para o dispositivo 12, o software de hospedeiro 20 define um bit no registro de campainha 30 (bloco 36) que corresponde ao intervalo com o qual a solicitação de transferência está associada. O contexto do hospedeiro 10 muda (bloco 38) em correspondência ao hospedeiro 10 que processa alguma outra solicitação de transferência ou processa alguns dados de entrada. O dispositivo 12 processa a solicitação de transferência (bloco 40). O dispositivo 12 pode precisar de algum tempo para processar a solicitação de transferência. Embora o dispositivo 12 esteja processando a solicitação de transferência, um comutador de contexto, enviar o “processo de comando de envio” para o repouso pode ocorrer. Quando o dispositivo 12 concluir a solicitação de transferência, o dispositivo 12 envia uma notificação de tarefa concluída. O hospedeiro 10 então levanta uma interrupção de conclusão (bloco 42). Nesse ponto, devido ao fato de o contexto ter mudado, a variável de solicitações pendente nunca foi atualizada. Assim, na interrupção de conclusão, o hospedeiro 10 verifica o registro de campainha 30 (bloco 44) e lê a variável de solicitações pendente (bloco 46). No entanto, conforme notado acima, a variável de solicitações pendente não foi atualizada e então, a solicitação concluída não é reconhecida (bloco 48) e o comando é abortada ou esgotada (bloco 50).
[0029] Semelhantemente, a Figura 2B ilustra um processo 52 onde a atualização da variável de solicitações pendente ocorre antes da atualização do registro de campainha 30 (o oposto da ordem descrita acima e feita para evitar a condição de corrida estabelecida no processo 34). Deve-se observar que o processo 52 pode ser implantado por diferentes elementos que incluem software e hardware e podem ser componentes separados e distintos (por exemplo, sub-rotinas diferentes, módulos de software diferentes, IC diferente, ou semelhantes). No entanto, o processo 52 leva à uma outra condição de corrida (isto é, dois processos estão competindo pelo mesmo recurso) onde o comando é concluído, mas com erros. Em particular, o processo 52 inicia no ponto no tempo quando a variável de solicitações pendente é atualizada (bloco 54). Uma interrupção de conclusão para uma outra solicitação de transferência é levantada (bloco 56). No entanto, a interrupção ocorre antes da atualização do registro de campainha 30. Assim, quando o registro de campainha 30 é lido (bloco 58), o bit não é definido. No entanto, quando a variável de solicitações pendente for lida (bloco 60), o software de hospedeiro 20 vê a solicitação de transferência e reconhece uma solicitação concluída (bloco 62). Assim, o software de hospedeiro 20 irá concluir a solicitação, mas com um erro (bloco 64).
[0030] Os sistemas convencionais impedem essas condições de corrida através do uso de um bloqueio de software. Os bloqueios de software aumentam a latência. No sentido de conclusão, a Figura 3 ilustra os processos de fluxo associados a um contexto de solicitação de envio 66 e um contexto de conclusão de solicitação 68. O processo associado ao contexto de solicitação de envio 66 começa com um início de contexto de solicitação de envio (bloco 70). O hospedeiro 10 prepara os dados de transação (bloco 72). O software de hospedeiro 20 define, então, um bloqueio e desabilita as interrupções (bloco 74). O software define a variável de solicitações pendente (bloco 76) e, então, o registro de campainha 30 é definido (bloco 78). Após o registro de campainha 30 ser definido, o bloqueio é desabilitado e as interrupções habilitadas (bloco 80). Após o bloqueio ser removido, o contexto de solicitação de envio acaba (bloco 82).
[0031] Com referência continuada à Figura 3, o contexto de conclusão de solicitação 68 começa (bloco 84). O controlador de hospedeiro 16 limpa o(s) bit(s) no registro de campainha 30 (bloco 85). A interrupção de conclusão de solicitação ocorre e um bloqueio é criado pelo software de hospedeiro 20 (bloco 86). O hospedeiro 10 lê a variável de solicitações pendente (bloco 88) no software de hospedeiro 20. O hospedeiro 10 lê então o registro de campainha 30 (bloco 90) e determina as solicitações concluídas com referência ao registro de campainha 30 e à variável de solicitações pendente (bloco 92). Para cada solicitação concluída (bloco 94), uma sub-rotina é realizada em que o código de resposta é lido (bloco 96), quaisquer erros são tratados (bloco 98) e uma camada superior (por exemplo, o software que emitiu a solicitação na primeira ocasião) é notificada da conclusão de solicitação (bloco 100). Quando todas as solicitações concluídas tiverem sido processadas no bloco 94, os bits correspondentes da variável de solicitações pendente são limpos (bloco 101), e então, o software de hospedeiro 20 remove o bloqueio e sai (bloco 102) resultando no fim do contexto de conclusão de solicitação (bloco 104). A existência dos bloqueios tanto no contexto de solicitação de envio 66 quanto no contexto de conclusão de solicitação 68 é realçada pela sequência bloqueada de designação (bloco 106).
[0032] Em oposição aos processos de contexto de solicitação de envio 66 e de contexto de conclusão de solicitação 68, os aspectos da presente revelação permitem a eliminação do bloqueio, e as desvantagens do atendedor são aliviadas. Nesse sentido, a Figura 4 ilustra um hospedeiro 10’ que inclui um registro de conclusão de comando (UTRLCNR) 32 (às vezes, também referido como um registro de notificação de conclusão). Nota-se que, na maioria das outras solicitações, o hospedeiro 10’ tem elementos idênticos ao hospedeiro 10 da Figura 1. Quanto ao registro de campainha 30, o registro de conclusão de comando 32 é baseado em hardware e tem uma quantidade de bits igual a quantidade de intervalos tratados pelo controlador de hospedeiro 16. Ou seja, o uso do registro de conclusão de comando 32 permite uma solução de hardware em vez dos bloqueios. Através do uso da solução de hardware, o envio e a conclusão das solicitações pode começar em qualquer ponto. A habilidade de ter diversos contextos que operam concorrentemente aprimora as eficiências operacionais para os processadores de múltiplos núcleos.
[0033] Nesse sentido, a Figura 5 fornece o contexto de solicitação de envio 108 e o contexto de conclusão de solicitação 110. O contexto de solicitação de envio 108 inicia (bloco 112) e o software de hospedeiro 20 prepara os dados de transação (bloco 114). O software de hospedeiro 20 ajusta o registro de campainha 30 (bloco 116) e a solicitação de envio termina (bloco 118). Devido ao fato de não haver necessidade de ajustar a variável de software para as solicitações pendentes, não há preocupação quanto à ocorrência de uma interrupção.
[0034] Com referência continuada à Figura 5, o contexto de conclusão de solicitação 110 inicia (bloco 120). Inicialmente, o hardware limpa o registro de campainha 30 e ajusta o registro de conclusão de comando 32 (bloco 122). Uma interrupção ocorre (bloco 124). O software de hospedeiro 20 lê o registro de conclusão de comando 32 (bloco 126) para verificar quais tarefas são concluídas. Para cada tarefa concluída, uma sub-rotina começa (bloco 128) onde o código de resposta é lido (bloco 130), quaisquer erros são tratados (bloco 132) e o software de hospedeiro 20 limpa o registro de conclusão de comando 32 (bloco 134). Após o software de hospedeiro 20 limpar o registro de conclusão de comando 32, uma camada superior (por exemplo, o software que emitiu a solicitação) é notificado da conclusão de solicitação (bloco 136). Após a liberação e a notificação, o intervalo no registro de conclusão de comando 32 que corresponde ao bit pode ser invertido conforme necessário ou definido. Quando todas as solicitações concluídas tiverem sido processadas (bloco 128), o contexto de conclusão de solicitação 110 termina (bloco 138). Em oposição ao período de tempo quando o bloqueio desabilita as interrupções (realçado por 106 na Figura 3), o bloco 139 realça que as interrupções podem ocorrer em qualquer ponto e, em particular, podem ocorrer durante os tempos que os sistemas convencionais impuseram o bloqueio. Conforme notado acima, a eliminação do bloqueio aprimora o desempenho e a adição do novo hardware (isto é, o registro de conclusão de comando 32) é visto como uma compensação aceitável para o desempenho aprimorado.
[0035] A conclusão de comando de verificação em memórias flash de acordo com os aspectos revelados no presente documento pode ser fornecida em qualquer dispositivo baseado em processador ou integrado a qualquer um do mesmo. Os exemplos, sem limitação, incluem um decodificador, uma unidade de entretenimento, um dispositivo de navegação, um dispositivo de comunicações, uma unidade de dados de localização fixa, uma unidade de dados de localização móvel, um telefone móvel, um telefone celular, um computador, um computador portátil, um computador do tipo desktop, um assistente pessoal digital (PDA), um monitor, um monitor de computador, uma televisão, um sintonizador, um rádio, um rádio por satélite, um reprodutor de música, um reprodutor de música digital, um reprodutor de música portátil, um reprodutor de vídeo digital, um reprodutor de vídeo, um reprodutor de disco de vídeo digital (DVD) e um reprodutor de vídeo digital portátil.
[0036] Nesse sentido, a Figura 6 ilustra um exemplo de um sistema baseado em processador 140 que pode empregar o hospedeiro 10’ e o dispositivo 12 ilustrado na Figura 4. Nesse exemplo, o sistema baseado em processador 140 inclui um ou mais unidades de processamento central (CPUs) 142, sendo que cada uma inclui um ou mais processadores 144. A(s) CPU(s) 142 pode(m) ser um dispositivo mestre e incluir o hospedeiro 10’. A(s) CPU(s) 142 pode(m) ter memória cache 146 acoplada ao(s) processador(s) 144 para o rápido acesso aos dados temporariamente armazenados. A(s) CPU(s) 142 é acoplada a um barramento de sistema 148. Conforme é bem-conhecido, a(s) CPU(s) 142 se comunica com esses outros dispositivos ao trocar informações de endereço, controle e dados através do barramento de sistema 148. Por exemplo, a(s) CPU(s) 142 pode(m) comunicar as solicitações de transação de barramento para um sistema de memória 150 que pode incluir o dispositivo 12. Embora não mostrado na Figura 6, diversos barramentos de sistema 148 poderiam ser fornecidos, em que cada barramento de sistema 148 constitui uma malha diferente.
[0037] Outros dispositivos mestres e subordinados podem ser conectados ao barramento de sistema 148. Conforme ilustrado na Figura 6, esses dispositivos podem incluir o sistema de memória 150, que pode ter diversas unidades de memória (não especificamente ilustradas), um ou mais dispositivos de entrada 152, um ou mais dispositivos de saída 154, um ou mais dispositivos de interface de rede 156, e um ou mais controladores de exibição 158, como exemplos. O(s) dispositivo(s) de entrada 152 pode(m) incluir qualquer tipo de dispositivo de entrada, inclusive, mas sem limitação, chaves de entrada, comutadores, processadores de voz, etc. O(s) dispositivo(s) de saída 154 podem incluir qualquer tipo de dispositivo de saída, inclusive, mas sem limitação, áudio, vídeo, outros indicadores visuais, etc. O(s) dispositivo(s) de interface de rede 156 pode(m) ser quaisquer dispositivos configurados para permitir a troca de dados para e a partir de uma rede 160. A rede 160 pode ser qualquer tipo de rede, inclusive, mas sem limitação, uma rede com ou sem fio, uma rede privada ou pública, uma rede de área local (LAN), uma rede de área local ampla (WLAN) e a Internet. O dispositivo(s) de interface de rede 156 pode ser configurado para suportar qualquer tipo de protocolo de comunicação desejado.
[0038] A(s) CPU(s) 142 também podem ser configuradas para acessar o(s) controlador(es) de exibição 158 através do barramento de sistema 148 para controlar informações enviadas para um ou mais visores 162. O(s) controlador(es) de exibição 158 envia(m) informações para o(s) visor(es) 162 para serem exibidas através de um ou mais processadores de vídeo 164, que processam as informações a serem exibidas em um formato adequado para o(s) visor(es) 162. O(s) visor(es) 162 pode incluir qualquer tipo de exibição, inclusive, mas sem limitação, um tubo de raio de catodo (CRT), um visor de cristal líquido (LCD), um visor de plasma, etc.
[0039] Aqueles versados na técnica irão observar adicionalmente que os vários blocos lógicos, módulos, circuitos e algoritmos ilustrativos descritos em conjunto com os aspectos revelados no presente documento podem ser implantados como hardware eletrônico, instruções armazenadas em memória ou em um outro meio legível por computador e executados por um processador ou outro dispositivo de processamento ou combinações de ambos. O(s) dispositivos descritos no presente documento podem ser empregados em qualquer circuito, componente de hardware, circuito integrado (IC), ou placa de IC, como exemplos. A memória revelada no presente documento pode ser qualquer tipo e tamanho de memória e pode ser configurada para armazenar qualquer tipo de informações desejadas. Para ilustrar claramente essa intercambialidade, vários componentes, blocos, módulos, circuitos e etapas ilustrativos foram descritos acima em termos gerais de sua funcionalidade. O quanto tal funcionalidade é implantada depende da aplicação específica, escolhas de projeto e/ou restrições de projeto impostas ao sistema geral. Os indivíduos versados podem implantar a funcionalidade descrita em modos variados para cada aplicação específica, mas tais decisões de implantação não devem ser interpretadas como causando um afastamento do escopo da presente revelação.
[0040] Os vários blocos lógicos, módulos e circuitos ilustrativos descritos em conjunto com os aspectos revelados podem ser implantados ou realizados com um processador, um Processador de Sinal Digital (DSP), um Circuito Integrado de Aplicação Específica (ASIC), um Arranho de Porta Programável em Campo (FPGA) ou outro dispositivo lógico programável, lógica de transistor ou porta discreta, componentes de hardware discretos ou qualquer combinação dos mesmos projetados para realizar as funções descritas no presente documento. Um processador pode ser um microprocessador, mas alternativamente, o processador pode ser qualquer processador, controlador, microcontrolador ou máquina de estado convencional. Um processador também pode ser implantado como uma combinação de dispositivos de computação, por exemplo, uma combinação de um DSP e um microprocessador, uma pluralidade de microprocessadores, um ou mais microprocessadores em conjunto com um núcleo de DSP ou qualquer outra tal configuração.
[0041] Os aspectos revelados no presente documento podem ser incorporados em hardware e em instruções que são armazenadas em hardware, e podem residir, por exemplo, na Memória de Acesso Aleatório (RAM), memória flash, Memória Apenas de Leitura (ROM), ROM Eletricamente Programável (EPROM), ROM Eletricamente Programável e Apagável (EEPROM), registros, um disco rígido, um disco removível, um CD-ROM ou qualquer outra forma de meio legível por computador conhecida na técnica. Um meio de armazenamento exemplificativo é acoplado ao processador de tal modo que o processador possa ler as informações a partir do meio de armazenamento e gravar as informações no mesmo. Alternativamente, o meio de armazenamento pode ser integral ao processador. O processador e o meio de armazenamento podem residir em um ASIC. O ASIC pode residir em uma estação remota. Alternativamente, o processador e o meio de armazenamento podem residir como componentes discretos em uma estação remota, estação de base ou servidor.
[0042] Nota-se também que as etapas operacionais descritas em qualquer um dos aspectos exemplificativos no presente documento são descritos para fornecer exemplos e discussão. As operações descritas podem ser realizadas em inúmeras sequências diferentes além das sequências ilustradas. Ademais, as operações descritas em uma única etapa podem ser, de fato, realizadas em inúmeras etapas diferentes. Adicionalmente, uma ou mais etapas operacionais discutidas nos aspectos exemplificativos podem ser combinadas. Deve-se compreender que as etapas operacionais ilustradas nos diagramas de fluxograma podem ser submetidas a inúmeras modificações diferentes conforme será prontamente evidente para um versado na técnica. Aqueles versados na técnica irão compreender que as informações e os sinais podem ser representados com o uso de qualquer um dentre uma variedade de tecnologias e técnicas diferentes. Por exemplo, os dados, instruções, comandos, informações, sinais, bits, símbolos e placas que podem ser referenciados ao longo de toda a descrição acima podem ser representados por tensões, correntes, ondas eletromagnéticas, campos ou partículas magnéticos, campos ou partículas ópticos ou qualquer combinação dos mesmos.
[0043] A descrição anterior da revelação é fornecida para possibilitar que qualquer pessoa versada na técnica reproduza ou use a revelação. Várias modificações na revelação serão prontamente evidentes para aqueles versados na técnica e os princípios gerais definidos no presente documento podem ser aplicados a outras variações sem se afastar do espírito e do escopo da revelação. Assim, a revelação não é destinada a ser limitada aos exemplos e projetos descritos no presente documento, mas deve ser acordada com o mais amplo escopo consistente com os princípios e recursos inovadores revelados no presente documento.

Claims (22)

1. Sistema de armazenamento flash universal (UFS), caracterizado pelo fato de que compreende: um registro de campainha (30) tendo uma quantidade de bits que corresponde a uma Lista de Solicitação de Transferência (UTRL) de protocolo de transferência de UFS (UTP); um registro de notificação de conclusão (32) tendo a mesma quantidade de bits; e um sistema de controle (16, 20) acoplado de modo operativo ao registro de campainha (30) e ao registro de notificação de conclusão (32) e configurado para: definir um bit de campainha no registro de campainha (30) para um início de solicitação de envio; definir um bit de conclusão no registro de notificação de conclusão (32) na conclusão de solicitação de transferência; e limpar o bit de campainha na conclusão de solicitação de transferência.
2. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que o sistema de controle (16, 20) é adicionalmente configurado para emitir uma solicitação de transferência para um dispositivo.
3. Sistema, de acordo com a reivindicação 2, caracterizado pelo fato de que o início de solicitação de envio é associado à solicitação de transferência.
4. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente uma interface de comunicação (18) configurada para acoplar um hospedeiro (10’) a um dispositivo (12).
5. Sistema, de acordo com a reivindicação 2, caracterizado pelo fato de que o sistema de controle (16, 20) é adicionalmente configurado para limpar o bit de conclusão após processar a conclusão da solicitação de transferência.
6. Sistema, de acordo com a reivindicação 5, caracterizado pelo fato de que o sistema de controle (16, 20) é adicionalmente configurado para reutilizar um intervalo associado ao bit de conclusão após limpar o bit de conclusão.
7. Sistema, de acordo com a reivindicação 2, caracterizado pelo fato de que a solicitação de transferência inclui um comando de escrita para gravar dados no dispositivo.
8. Sistema, de acordo com a reivindicação 2, caracterizado pelo fato de que a solicitação de transferência inclui um comando de leitura para ler dados a partir do dispositivo.
9. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que é integrado em um dispositivo selecionado a partir do grupo que consiste em um decodificador, uma unidade de entretenimento, um dispositivo de navegação, um dispositivo de comunicações, uma unidade de dados de localização fixa, uma unidade de dados de localização móvel, um telefone móvel, um telefone celular, um computador, um computador portátil, um computador do tipo desktop, um assistente pessoal digital, PDA, um monitor, um monitor de computador, uma televisão, um sintonizador, um rádio, um rádio por satélite, um reprodutor de música, um reprodutor de música digital, um reprodutor de música portátil, um reprodutor de vídeo digital, um reprodutor de vídeo, um reprodutor de disco de vídeo digital, DVD, e um reprodutor de vídeo digital portátil.
10. Método de controle de um sistema de memória, o sistema de memória sendo um sistema de armazenamento flash universal, UFS, ou um sistema de memória do Controlador Multimídia embutido, eMMC, o sistema UFS compreendendo um registro de campainha (30) tendo uma quantidade de bits que correspondem a uma Lista de Solicitação de Transferência (UTRL) de protocolo de transferência de UFS (UTP), o sistema de memória de eMMC compreendendo um registro de campainha (30) tendo uma quantidade de bits que correspondem a uma Lista de Descritor de Tarefa (TDL) de Controlador Multimídia embutido (eMMC), o método caracterizado pelo fato de que compreende: gerar (112) uma solicitação de transferência em um hospedeiro; definir (116) um bit em um registro de campainha (30) no hospedeiro identificando a solicitação de transferência; passar a solicitação de transferência para um dispositivo através de uma interface de comunicação; concluir uma transferência associada à solicitação de transferência; limpar (122) o bit no registro de campainha (30); e definir (122) um bit de conclusão em um registro de conclusão.
11. Método, de acordo com a reivindicação 10, caracterizado pelo fato de que a geração da solicitação de transferência compreende gerar um comando de leitura para ler dados a partir do dispositivo.
12. Método, de acordo com a reivindicação 10, caracterizado pelo fato de que a geração da solicitação de transferência compreende gerar um comando de escrita para gravar dados no dispositivo.
13. Método, de acordo com a reivindicação 10, caracterizado pelo fato de que compreende adicionalmente tratar interrupções à solicitação de transferência sem a necessidade de um bloqueio de software.
14. Método, de acordo com a reivindicação 10, caracterizado pelo fato de que compreende adicionalmente limpar o bit de conclusão após a conclusão de processamento da solicitação de transferência; e reutilizar um intervalo associado ao bit de conclusão após limpar o bit de conclusão.
15. Sistema de memória do Controlador Multimídia embutido (eMMC) caracterizado pelo fato de que compreende: um registro de campainha (30) tendo uma quantidade de bits que corresponde a uma Lista de Descritor de Tarefa (TDL) do eMMC; um registro de notificação de conclusão (32) tendo a mesma quantidade de bits; e um sistema de controle (16, 20) acoplado de modo operativo ao registro de campainha (30) e ao registro de notificação de conclusão (32) e configurado para: definir um bit de campainha no registro de campainha (30) para um início de solicitação de envio; definir um bit de conclusão no registro de notificação de conclusão (32) na conclusão de solicitação de transferência; e limpar o bit de campainha na conclusão de solicitação de transferência.
16. Sistema, de acordo com a reivindicação 15, caracterizado pelo fato de que o sistema de controle (16, 20) é adicionalmente configurado para emitir uma solicitação de transferência para um dispositivo.
17. Sistema, de acordo com a reivindicação 16, caracterizado pelo fato de que o início de solicitação de envio é associado à solicitação de transferência.
18. Sistema, de acordo com a reivindicação 15, caracterizado pelo fato de que compreende adicionalmente uma interface de comunicação (18) configurada para acoplar um hospedeiro (10’) a um dispositivo (12).
19. Sistema, de acordo com a reivindicação 16, caracterizado pelo fato de que o sistema de controle (16, 20) é adicionalmente configurado para limpar o bit de conclusão após processar a conclusão da solicitação de transferência.
20. Sistema, de acordo com a reivindicação 19, caracterizado pelo fato de que o sistema de controle (16, 20) é adicionalmente configurado para reutilizar um intervalo associado ao bit de conclusão após limpar o bit de conclusão.
21. Sistema, de acordo com a reivindicação 16, caracterizado pelo fato de que a solicitação de transferência inclui um comando de escrita para gravar dados no dispositivo.
22. Sistema, de acordo com a reivindicação 16, caracterizado pelo fato de que a solicitação de transferência inclui um comando de leitura para ler dados a partir do dispositivo.
BR112016005368-0A 2013-09-10 2014-08-26 Sistema de armazenamento flash universal, método de controle de um sistema de memória e sistema de memória do controlador multimídia embutido BR112016005368B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361875907P 2013-09-10 2013-09-10
US61/875,907 2013-09-10
US14/467,404 US9348537B2 (en) 2013-09-10 2014-08-25 Ascertaining command completion in flash memories
US14/467,404 2014-08-25
PCT/US2014/052667 WO2015038325A1 (en) 2013-09-10 2014-08-26 Ascertaining command completion in flash memories

Publications (2)

Publication Number Publication Date
BR112016005368A2 BR112016005368A2 (pt) 2017-08-01
BR112016005368B1 true BR112016005368B1 (pt) 2022-09-27

Family

ID=52626699

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112016005368-0A BR112016005368B1 (pt) 2013-09-10 2014-08-26 Sistema de armazenamento flash universal, método de controle de um sistema de memória e sistema de memória do controlador multimídia embutido

Country Status (19)

Country Link
US (1) US9348537B2 (pt)
EP (2) EP4177764A1 (pt)
JP (2) JP6173603B2 (pt)
KR (1) KR101754545B1 (pt)
CN (1) CN105556497B (pt)
AU (1) AU2014318238B2 (pt)
BR (1) BR112016005368B1 (pt)
CA (1) CA2920748C (pt)
CL (1) CL2016000555A1 (pt)
HK (1) HK1222239A1 (pt)
MX (1) MX350915B (pt)
MY (1) MY177952A (pt)
NZ (1) NZ717400A (pt)
PH (1) PH12016500339B1 (pt)
RU (1) RU2016107810A (pt)
SA (1) SA516370693B1 (pt)
SG (1) SG11201600764RA (pt)
TW (1) TWI570568B (pt)
WO (1) WO2015038325A1 (pt)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9881680B2 (en) 2014-06-03 2018-01-30 Qualcomm Incorporated Multi-host power controller (MHPC) of a flash-memory-based storage device
US9632953B2 (en) * 2014-06-03 2017-04-25 Qualcomm Incorporated Providing input/output virtualization (IOV) by mapping transfer requests to shared transfer requests lists by IOV host controllers
US9690720B2 (en) * 2014-06-03 2017-06-27 Qualcomm Incorporated Providing command trapping using a request filter circuit in an input/output virtualization (IOV) host controller (HC) (IOV-HC) of a flash-memory-based storage device
RU2610681C1 (ru) * 2016-02-18 2017-02-14 Акционерное общество "Научно-исследовательский институт вычислительных комплексов им. М.А. Карцева" (АО "НИИВК им. М.А. Карцева") Способ сохранения информации в аварийных регистраторах
KR20180045103A (ko) * 2016-10-24 2018-05-04 삼성전자주식회사 적응형 인터럽트를 생성하는 데이터 저장 장치 및 그것의 동작 방법
US10466903B2 (en) 2017-03-24 2019-11-05 Western Digital Technologies, Inc. System and method for dynamic and adaptive interrupt coalescing
US10452278B2 (en) 2017-03-24 2019-10-22 Western Digital Technologies, Inc. System and method for adaptive early completion posting using controller memory buffer
US10725835B2 (en) 2017-05-03 2020-07-28 Western Digital Technologies, Inc. System and method for speculative execution of commands using a controller memory buffer
US10509569B2 (en) 2017-03-24 2019-12-17 Western Digital Technologies, Inc. System and method for adaptive command fetch aggregation
DE112018000230T5 (de) * 2017-03-24 2019-09-05 Western Digital Technologies, Inc System und Verfahren zur spekulativen Befehlsausführung unter Verwendung des Steuerungsspeicherpuffers
US10296249B2 (en) 2017-05-03 2019-05-21 Western Digital Technologies, Inc. System and method for processing non-contiguous submission and completion queues
KR20190051530A (ko) 2017-11-07 2019-05-15 에스케이하이닉스 주식회사 데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법
JP6954864B2 (ja) 2018-04-13 2021-10-27 ルネサスエレクトロニクス株式会社 半導体装置およびufsシステム
KR102075689B1 (ko) * 2018-08-16 2020-02-10 주식회사 넥스트칩 태스크의 기능 안전을 보장하기 위한 방법 및 장치
KR20210016938A (ko) * 2019-08-06 2021-02-17 에스케이하이닉스 주식회사 데이터 처리 시스템 및 그것의 동작방법
WO2022021372A1 (zh) * 2020-07-31 2022-02-03 华为技术有限公司 一种处理器、ufs控制方法及计算机系统
KR20220105304A (ko) * 2021-01-20 2022-07-27 에스케이하이닉스 주식회사 시스템 및 시스템의 동작 방법
KR20220165128A (ko) 2021-06-07 2022-12-14 에스케이하이닉스 주식회사 메모리 시스템 및 데이터 처리 시스템
CN114296639B (zh) * 2021-12-10 2024-02-20 深圳大普微电子科技有限公司 命令处理方法及闪存设备
CN117012267B (zh) * 2023-06-30 2024-03-19 珠海妙存科技有限公司 对ufs所写入数据的验证方法、控制器及介质

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3783255A (en) * 1972-07-12 1974-01-01 Gte Automatic Electric Lab Inc Data handling system maintenance arrangement for processing system trouble conditions
US5870758A (en) * 1996-03-11 1999-02-09 Oracle Corporation Method and apparatus for providing isolation levels in a database system
US6353845B1 (en) * 1998-06-25 2002-03-05 International Business Machines Corporation Computer system, program product and method for tracking asynchronous I/O with timeout support
US6434637B1 (en) * 1998-12-31 2002-08-13 Emc Corporation Method and apparatus for balancing workloads among paths in a multi-path computer system based on the state of previous I/O operations
US6275876B1 (en) * 1999-05-21 2001-08-14 International Business Machines Corporation Specifying wrap register for storing memory address to store completion status of instruction to external device
US6587893B1 (en) 2000-04-28 2003-07-01 Hewlett-Packard Development Company, L.P. Method and apparatus to determine when all outstanding fetches are complete
US6341367B1 (en) * 2000-07-25 2002-01-22 Lsi Logic Corporation Hardware realized state machine
US7328304B2 (en) * 2004-02-27 2008-02-05 Intel Corporation Interface for a block addressable mass storage system
US7219178B2 (en) * 2004-09-30 2007-05-15 Arm Limited Bus deadlock avoidance
JP2006195746A (ja) * 2005-01-13 2006-07-27 Oki Electric Ind Co Ltd マルチレイヤバスシステム
US7853957B2 (en) 2005-04-15 2010-12-14 Intel Corporation Doorbell mechanism using protection domains
JP4848562B2 (ja) * 2005-08-22 2011-12-28 新世代株式会社 マルチプロセッサ
JP4814617B2 (ja) * 2005-11-01 2011-11-16 株式会社日立製作所 ストレージシステム
US7587543B2 (en) * 2006-01-23 2009-09-08 International Business Machines Corporation Apparatus, method and computer program product for dynamic arbitration control
GB2440758B (en) * 2006-08-08 2011-03-30 Advanced Risc Mach Ltd Interconnect logic for a data processing apparatus
US8156273B2 (en) * 2007-05-10 2012-04-10 Freescale Semiconductor, Inc. Method and system for controlling transmission and execution of commands in an integrated circuit device
US7657682B2 (en) * 2007-09-14 2010-02-02 Freescale Semiconductor, Inc. Bus interconnect with flow control
US9208459B2 (en) * 2009-07-10 2015-12-08 Certicom Corp. System and method for performing serialization of devices
US8549204B2 (en) * 2010-02-25 2013-10-01 Fresco Logic, Inc. Method and apparatus for scheduling transactions in a multi-speed bus environment
US8677068B2 (en) * 2010-06-18 2014-03-18 Lsi Corporation Scalable storage devices
JP2012073851A (ja) * 2010-09-29 2012-04-12 Sony Corp バスシステムおよびそのデッドロック回避回路
TWI521343B (zh) * 2011-08-01 2016-02-11 Toshiba Kk An information processing device, a semiconductor memory device, and a semiconductor memory device
US8700834B2 (en) * 2011-09-06 2014-04-15 Western Digital Technologies, Inc. Systems and methods for an enhanced controller architecture in data storage systems
EP3438839A1 (en) * 2011-09-30 2019-02-06 Intel Corporation Presentation of direct accessed storage under a logical drive model
US8370567B1 (en) * 2012-03-23 2013-02-05 DSSD, Inc. Storage system with self describing data
US8301832B1 (en) * 2012-03-23 2012-10-30 DSSD, Inc. Storage system with guaranteed read latency
US8341342B1 (en) * 2012-03-23 2012-12-25 DSSD, Inc. Storage system with incremental multi-dimensional RAID

Also Published As

Publication number Publication date
TW201523267A (zh) 2015-06-16
PH12016500339A1 (en) 2016-05-02
CN105556497A (zh) 2016-05-04
JP2016539429A (ja) 2016-12-15
SG11201600764RA (en) 2016-03-30
EP4177764A1 (en) 2023-05-10
PH12016500339B1 (en) 2016-05-02
MX2016002983A (es) 2016-06-02
CN105556497B (zh) 2017-11-07
BR112016005368A2 (pt) 2017-08-01
US9348537B2 (en) 2016-05-24
KR20160054494A (ko) 2016-05-16
MY177952A (en) 2020-09-28
JP6599397B2 (ja) 2019-10-30
WO2015038325A1 (en) 2015-03-19
JP2017152041A (ja) 2017-08-31
KR101754545B1 (ko) 2017-07-19
EP3044687A1 (en) 2016-07-20
SA516370693B1 (ar) 2018-10-04
AU2014318238A1 (en) 2016-03-17
AU2014318238B2 (en) 2017-06-08
HK1222239A1 (zh) 2017-06-23
JP6173603B2 (ja) 2017-08-02
TWI570568B (zh) 2017-02-11
US20150074338A1 (en) 2015-03-12
CA2920748C (en) 2017-09-05
RU2016107810A3 (pt) 2018-06-25
CL2016000555A1 (es) 2016-11-18
NZ717400A (en) 2017-06-30
RU2016107810A (ru) 2017-10-16
CA2920748A1 (en) 2015-03-19
MX350915B (es) 2017-09-25

Similar Documents

Publication Publication Date Title
BR112016005368B1 (pt) Sistema de armazenamento flash universal, método de controle de um sistema de memória e sistema de memória do controlador multimídia embutido
JP6165342B2 (ja) エンベデッドメモリへのコマンドキューイングの提供
US10503405B2 (en) Zero copy memory reclaim using copy-on-write
US6735642B2 (en) DMA doorbell
US20150205646A1 (en) Context aware synchronization
US20170052723A1 (en) Replicating data using remote direct memory access (rdma)
BR112017002518B1 (pt) Método implementado por computador e sistema de computador para acesso de dados seguro após falha de armazenamento
JP5583849B2 (ja) ポート共有ハードウェアを介した記憶装置への帯域外アクセス
US11422698B2 (en) Method, electronic device, and computer program product for storage management
US20140281429A1 (en) Eliminating redundant synchronization barriers in instruction processing circuits, and related processor systems, methods, and computer-readable media
WO2015199909A1 (en) Accelerating boot time zeroing of memory based on non-volatile memory (nvm) technology
ES2674546T3 (es) Método, aparato y chip para implementar una operación mutuamente excluyente de múltiples hilos
CN104104705B (zh) 分布式存储系统的接入方法和设备
JP2016512361A (ja) デュアルホスト組込み共有デバイスコントローラ
WO2011137769A1 (zh) 一种多核在线补丁方法和装置
US9489173B2 (en) Resizable and relocatable queue
JP2019185544A (ja) 半導体装置およびufsシステム
WO2016197870A1 (zh) 一种处理关系型数据库中ddl语句的方法与设备
US11023250B2 (en) Resetting a peripheral device
CN112579384B (zh) 一种sas域的节点监控方法、装置、系统及节点
US9798479B2 (en) Relocatable and resizable tables in a computing device
WO2019219021A1 (zh) 一种流式文件系统中的索引数据更新方法、装置
US10762011B2 (en) Reflective memory bridge for external computing nodes
CN114741214A (zh) 一种数据传输方法、装置及设备

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 26/08/2014, OBSERVADAS AS CONDICOES LEGAIS