O que é uma tabela de verdade de somador completo de 2 bits?


Melhor resposta

Uma Tabela de verdade é uma tabela que fornece a saída de uma função booleana para qualquer combinação possível de entradas. Um somador completo é uma função booleana (ou um componente de hardware que a implementa) que, dados dois inteiros de 2 bits, fornece a soma desses inteiros incluindo o transporte. (Um meio somador apenas adiciona os números, mas ignora o transporte). Se você tiver dois inteiros de 2 bits como entrada, haverá 16 entradas possíveis, portanto, sua tabela terá 16 linhas. Veja como pode parecer se suas entradas são aeb com bits, a saída é xabx 00 00 000 00 01 001 00 10 010 00 1 1 011 01 00 001 01 01 010 01 10 011 01 11 100 11 00 011 10 01 011 10 10 100 10 11 11 101 11 00 011 11 01 100 11 10 101 11 11 110

Resposta

A resposta simplista é “tudo o que o designer quiser”.

Quando comecei a estudar design de computadores no final dos anos 1970, tinha formação em matemática e, em menor grau, em programação de computadores. Alguns dos primeiros trabalhos que fiz envolviam o design e a implementação de conjuntos de instruções e em particular, das operações aritméticas. Tudo isso exigia que eu tivesse que construir uma compreensão da aritmética computacional e, por causa do background, fiz isso de um ponto de vista ligeiramente abstrato e matemático. Isso foi em contraste com o que foi apresentado em muitos livros didáticos de eletrônica e design de computador que definem funções (por exemplo, somadores) e sua implementação, mas nem sempre dão motivação.

O motivo Para implementar um somador, é preciso pegar dois conjuntos de bits (“palavras”), representando números, e produzir uma saída que represente a soma desses bits. Existem três perguntas importantes a serem feitas aqui. Primeiro, quais são os números que estamos tentando representar. Em segundo lugar, como esses números são representados como bits. E em terceiro lugar, o que deve acontecer se a soma dos dois números não puder ser representada como um conjunto de bits.

Uma situação comum (N-bits, pequeno endian, inteiro sem sinal) é que um A palavra de N bits é usada para representar os inteiros [0,2^N-1], e a palavra B[N-1]...B[0] representa o valor ΣB[i]2^i: i in [0,N-1]. A terceira pergunta é um problema – a soma das duas entradas pode estar no intervalo [0,2*(2^N-1)] e, portanto, há resultados que não podem ser representados.

A a implementação de um livro-texto simples de um “somador de N-bit” o constrói a partir de N “somadores completos de 1 bit”. Além dos 2 conjuntos de N bits de operando, há um bit carry-in (forçado para zero) e um bit carry-out. Se o resultado matemático da adição puder ser representado, então os N-bits do resultado do somador serão a representação correta do resultado, e o carry-out será 0. Se, por outro lado, o resultado matemático de a adição não pode ser representada, então os N-bits de resultado do somador serão a representação correta do módulo de resultado 2 ^ N, e o carry-out será 1. Para resumir, este somador sempre produz o módulo de resultado correto 2 ^ N e um realizar indicam que o resultado correto não é representável. Alguns sistemas de computador vão querer tratar isso como um erro, talvez registrando-o em um sinalizador ou causando uma exceção.

Outra situação comum (N-bit, little endian, número inteiro de complemento assinado de dois) é que um A palavra de N bits é usada para representar os inteiros [-2^(N-1),2^(N-1)-1], e a palavra B[N-1]...B[0] representa o valor -B[N-1]*2^N + ΣB[i]2^i: i in [0,N-1]*. Novamente, existem resultados que não podem ser representados. O somador descrito anteriormente produziu o resultado correto para todos os resultados representáveis ​​(razão pela qual a aritmética de complemento de dois é usada). No entanto, a execução não indica se o resultado é representável. (Considere -1 + 1 = 0 que produz um carry-out e 0 + 0 = 0 que não produz). Para o complemento de dois, a condição que representa um resultado não apresentável (comumente chamado de “estouro”) é que o bit de sinal (bit mais significativo) do resultado é “inesperado” – ou seja, a soma de dois números negativos parece ser positivo, ou a soma de dois números positivos parece ser negativa (exercício para o leitor para mostrar que a soma de dois números de sinais diferentes pode sempre ser representada).

Algumas outras representações podem ser capazes de usar os mesmos somadores como inteiros assinados e não assinados. Para representações fracionárias onde o valor de uma palavra é o valor da palavra, tratado como um inteiro, dividido por uma potência de dois, o somador produz o resultado correto quando o valor é representável. No entanto, em sistemas que usam essas representações, às vezes o comportamento desejado é que os resultados “saturem” – ou seja, o resultado está fora do intervalo, a soma é o valor mais positivo ou o mais negativo, conforme apropriado. Outros sistemas 2 um dos valores, (normalmente 10… 0) para uso como um valor de erro que se propagará por meio de outras operações. Nesse caso, um somador especial será necessário.

* Esta formulação torna explícita a forma de complemento de dois – o valor com sinal da palavra é o valor sem sinal da palavra menos 2 ^ N vezes o bit superior (bit de sinal). De forma equivalente, o valor pode ser escrito -B[N-1]*2^(N-1) + ΣB[i]2^i: i in [0,N-2], que corresponde ao bit superior que representa 0 ou -1 em vez de 0 ou +1.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *