Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Tecnologia industrial

Tabelas de consulta


Tendo aprendido sobre dispositivos de memória digital no último capítulo, sabemos que é possível armazenar dados binários em dispositivos de estado sólido. Essas “células” de armazenamento dentro dos dispositivos de memória de estado sólido são facilmente endereçadas ao direcionar as linhas de “endereço” do dispositivo com os valores binários apropriados.

Suponha que tenhamos um circuito de memória ROM escrito, ou programado, com certos dados, de forma que as linhas de endereço do ROM sirvam como entradas e as linhas de dados do ROM sirvam como saídas, gerando a resposta característica de uma função lógica particular. Teoricamente, poderíamos programar este chip ROM para emular qualquer função lógica que quiséssemos, sem ter que alterar nenhuma conexão de fio ou portas.

Considere o seguinte exemplo de uma memória ROM de 4 x 2 bits (uma memória muito pequena!) Programada com a funcionalidade de meio somador:







Se este ROM foi escrito com os dados acima (representando uma tabela verdade de meio somador), conduzir as entradas de endereço A e B fará com que as respectivas células de memória no chip ROM sejam habilitadas, emitindo assim os dados correspondentes como o Σ ( Soma) e C out bits. Ao contrário do circuito meio-somador construído com portas ou relés, este dispositivo pode ser configurado para executar qualquer função lógica com duas entradas e duas saídas, não apenas a função meio-somador.

Para alterar a função lógica, tudo o que precisamos fazer é gravar uma tabela de dados diferente em outro chip ROM. Poderíamos até usar um chip EPROM que poderia ser reescrito à vontade, dando a máxima flexibilidade em funções.



É de vital importância reconhecer a importância desse princípio aplicado aos circuitos digitais. Considerando que o meio-somador construído a partir de portas ou relés processos os bits de entrada para chegar a uma saída específica, a ROM simplesmente lembra quais devem ser as saídas para qualquer combinação de entradas.

Isso não é muito diferente das "tabelas de tempos" memorizadas na escola primária:em vez de ter que calcular o produto de 5 vezes 6 (5 + 5 + 5 + 5 + 5 + 5 =30), os alunos são ensinados a lembrar que 5 x 6 =30, e então esperava recuperar este produto da memória conforme necessário. Da mesma forma, ao invés da função lógica dependendo do arranjo funcional de portas ou relés com fio (hardware), ela depende exclusivamente dos dados gravados na memória (software).

Um aplicativo tão simples, com saídas definidas para cada entrada, é chamado de tabela de consulta , porque o dispositivo de memória simplesmente “procura” quais devem ser as saídas para qualquer combinação de estados de entrada.

Esta aplicação de um dispositivo de memória para executar funções lógicas é significativa por vários motivos:

A utilidade de uma tabela de consulta torna-se cada vez mais evidente com o aumento da complexidade da função. Suponha que queremos construir um circuito somador de 4 bits usando um ROM. Exigiríamos uma ROM com 8 linhas de endereço (dois números de 4 bits a serem somados), mais 4 linhas de dados (para a saída assinada):







Com 256 localizações de memória endereçáveis ​​neste chip ROM, teríamos uma boa quantidade de programação para fazer, informando qual saída binária gerar para cada combinação de entradas binárias.

Também correríamos o risco de cometer um erro em nossa programação e fazer com que ela gerasse uma soma incorreta, se não tivéssemos cuidado. No entanto, a flexibilidade de ser capaz de configurar essa função (ou qualquer função) por meio de software sozinho geralmente supera esses custos.



Considere algumas das funções avançadas que poderíamos implementar com o "somador" acima. Sabemos que quando adicionamos dois conjuntos de números na notação com sinal de complemento de 2, corremos o risco de ter o estouro de resposta.

Por exemplo, se tentarmos adicionar 0111 (decimal 7) a 0110 (decimal 6) com apenas um campo de número de 4 bits, a resposta que obteremos é 1001 (decimal -7) em vez do valor correto, 13 (7 + 6), que não pode ser expressa com 4 bits assinados. Se quiséssemos, poderíamos evitar as respostas estranhas dadas em condições de estouro programando este circuito de tabela de consulta para produzir outra coisa em condições onde sabemos que ocorrerá estouro (ou seja, em qualquer caso em que a soma real exceda +7 ou -8).

Uma alternativa pode ser programar o ROM para emitir a quantidade 0111 (o valor positivo máximo que pode ser representado com 4 bits assinados), ou qualquer outro valor que determinamos ser mais apropriado para a aplicação do que o valor de "erro" transbordado típico que um circuito somador regular produziria. Depende do programador decidir o que ele quer que este circuito faça, porque não somos mais limitados pelas restrições das funções da porta lógica.

As possibilidades não param nas funções lógicas personalizadas. Adicionando mais linhas de endereço ao chip ROM 256 x 4, podemos expandir a tabela de consulta para incluir várias funções:







Com mais duas linhas de endereço, o chip ROM terá 4 vezes mais endereços do que antes (1024 em vez de 256). Esta ROM poderia ser programada de forma que quando A8 e A9 estivessem baixos, os dados de saída representassem a soma dos dois números binários de 4 bits inseridos nas linhas de endereço A0 a A7, assim como fizemos com o circuito ROM 256 x 4 anterior.

Para os endereços A8 =1 e A9 =0, ele poderia ser programado para gerar a diferença (subtração) entre o primeiro número binário de 4 bits (A0 a A3) e o segundo número binário (A4 a A7). Para os endereços A8 =0 e A9 =1, poderíamos programar a ROM para gerar a diferença (subtração) dos dois números na ordem reversa (segundo - primeiro em vez de primeiro - segundo) e, finalmente, para os endereços A8 =1 e A9 =1, o ROM pode ser programado para comparar as duas entradas e emitir uma indicação de igualdade ou desigualdade.

O que teremos então é um dispositivo que pode realizar quatro operações aritméticas diferentes em números binários de 4 bits, todas “procurando” as respostas programadas nele.



Se tivéssemos usado um chip ROM com mais de duas linhas de endereço adicionais, poderíamos programá-lo com uma variedade mais ampla de funções para executar nas duas entradas de 4 bits. Há uma série de operações peculiares aos dados binários (como verificação de paridade ou ORing exclusivo de bits) que podemos achar útil ter programado em tal tabela de consulta.

Dispositivos como este, que podem realizar uma variedade de tarefas aritméticas ditadas por um código de entrada binário, são conhecidos como Unidades Lógicas Aritméticas (ALUs) e constituem um dos componentes essenciais da tecnologia informática. Embora as ALUs modernas sejam mais frequentemente construídas a partir de circuitos de lógica combinacional (porta) muito complexos por razões de velocidade, deve ser reconfortante saber que a mesma funcionalidade exata pode ser duplicada com um chip ROM "burro" programado com a tabela de consulta apropriada (s).

Na verdade, essa abordagem exata foi usada pelos engenheiros da IBM em 1959 com o desenvolvimento dos computadores IBM 1401 e 1620, que usavam tabelas de consulta para realizar a adição, em vez de circuitos somadores binários. A máquina era carinhosamente conhecida como “CADET”, que significava “ C e não A dd, D não E ven T ry. ”

Uma aplicação muito comum para ROMs de tabelas de consulta é em sistemas de controle onde uma função matemática customizada precisa ser representada. Tal aplicação é encontrada em sistemas de injeção de combustível controlados por computador para motores de automóveis, onde a proporção adequada da mistura ar / combustível para uma operação eficiente e limpa muda com várias variáveis ​​ambientais e operacionais.

Testes realizados em motores em laboratórios de pesquisa determinam quais são essas relações ideais para condições variáveis ​​de carga do motor, temperatura do ar ambiente e pressão barométrica do ar. As variáveis ​​são medidas com transdutores de sensor, suas saídas analógicas convertidas em sinais digitais com circuitos A / D e os sinais digitais paralelos usados ​​como entradas de endereço para um chip ROM de alta capacidade programado para emitir o valor digital ideal para a relação ar / combustível para qualquer uma dessas condições.

Às vezes, ROMs são usados ​​para fornecer funções de tabela de consulta unidimensional, para "corrigir" valores de sinais digitalizados para que representem com mais precisão seu significado no mundo real. Um exemplo de tal dispositivo é um transmissor termopar , que mede o sinal de milivoltagem gerado por uma junção de metais diferentes e emite um sinal que deve diretamente correspondem a essa temperatura de junção.

Infelizmente, as junções de termopar não têm respostas perfeitamente lineares de temperatura / tensão e, portanto, o sinal de tensão bruto não é perfeitamente proporcional à temperatura. Ao digitalizar o sinal de tensão (conversão A / D) e enviar esse valor digital para o endereço de um ROM programado com os valores de correção necessários, a programação do ROM poderia eliminar parte da não linearidade da relação temperatura-milivoltagem do termopar, de modo que a saída final do dispositivo seria mais precisa.

O termo de instrumentação popular para essa tabela de consulta é um caracterizador digital .







Outra aplicação para tabelas de consulta é a tradução de código especial. Um 128 x 8 ROM, por exemplo, pode ser usado para traduzir o código ASCII de 7 bits para o código EBCDIC de 8 bits:









Novamente, tudo o que é necessário é que o chip ROM seja adequadamente programado com os dados necessários para que cada entrada ASCII válida produza um código de saída EBCDIC correspondente.



PLANILHA RELACIONADA:

Tecnologia industrial

  1. Termos e conceitos de memória digital
  2. Memória somente leitura (ROM)
  3. Microprocessadores
  4. C Alocação de Memória Dinâmica
  5. O Cervoz atualiza a memória DDR4-2666 de próxima geração
  6. AI pode usar magnetismo para alcançar a eficiência humana
  7. C - Gerenciamento de Memória
  8. Memória Dinâmica C++
  9. Java 10 - Alocação de heap
  10. Lógica Ladder 202:Organização da Memória