Estudando Microcontroladores

Bom dia.

Num pdf que baixei chamado “Introdução aos microcontroladores pic microchip 16f84a” de 136 páginas, no tema de item 1.3 Bus da página 5 tem o seguinte parágrafo:

“Este “caminho” designa-se por “bus” . Fisicamente ele corresponde a um grupo de 8, 16 ou mais fios.
Existem dois tipos de bus: bus de dados e de endereço. O número de linhas do primeiro depende da quantidade de memória que desejamos endereçar e o número de linhas do outro depende da largura da palavra de dados, no nosso caso é igual a oito. O primeiro bus serve para transmitir endereços do CPU para a memória e o segundo para ligar todos os blocos dentro do microcontrolador.”

No trecho “Existem dois tipos de bus: bus de dados e de endereço.” Os termos “dados” e “endereço” parecem estar com suas ordens invertidas quando lê-se o restante do parágrafo. Vocês entendem assim também quando o Lê? Ou a referência está correta como descrito no parágrafo?

Eu fico na dúvida por dois motivos, o primeiro é que realmente me parece que inverteram a ordem, segundo que isso pode realmente acontecer durante o processo de tradução, o que é comum embora inconveniente.

Link do PDF

Realmente está invertido, vou colocar aqui o que tenho nas minhas anotações:

  • De Endereços
    • Permite que se acesse determinada palavra na memoria da maquina
    • O numero de linhas depende do espaço de endereçamento de memória
  • De Dados
    • Tem diversas linhas de conexão
    • Cada linha transporta 1 bit por vez
    • O numero de linhas de conexão depende do tamanho das palavras utilizadas pelo computador (32bits, 64 bits)

Muito obrigado por me ajudar.

O “Bus” tratado aqui refere-se ao barramento. Correto?

Quando se fala em “tamanho da palavra” é referente ao número de bits que a ULA opera? Usando o seu exemplo, é quando dizemos que um processador é de 32 ou 64 bits.
Nesse caso o pic é um 16f84a de 8 bits, portanto o barramento de dados é de 8 vias.

Outra coisa, o Registro tem o mesmo tamanho da Palavra e portanto a memória?
Por exemplo, um pic pode ter 12 registros de 8 bits de capacidade.

Juntando tudo pode-se dizer que o um pic de 12 registros tem portanto um barramento de endereços de 12 vias (uma via de endereço para cada registro), e um barramento de dados de 8 vias (uma via para cada bit da Palavra ou Registro)?

Se assim for, então cada bit individualmente não é endereçado mas somente a palavra?

Mesmo que essa análise esteja completamente equivocada julguei conveniente descrevê-la pra vc entender melhor os pontos em que estou fazendo confusão e poder me ajudar melhor.

Tipo o ditado: “perguntas bem elaboradas, respostas bem elaboradas”.

Rapaz, tu me fez voltar aqui e estudar um pouco kkkkkk

Isso mesmo, bus = barramento

Exatamente. Quando o processo é maior do que a ULA aguenta, o processador quebra em várias palavras do tamanho correto: o da arquitetura da ULA

Ok, vamos por partes aqui:

  • Registradores vão ter o mesmo tamanho da ULA (8bits, no seu caso)
  • A memória é dividida em vários setores (células), normalmente de 4bytes, mas nesse caso depende do particionamento da memória (fixo ou dinâmico)

Então, o que sai da memória não vai ter, necessariamente, o mesmo tamanho do que chega no processador; mas o próprio processador faz o trabalho sujo de dividir os processos em tamanhos corretos

Essa parte é interessante:

  • O cálculo de quantas vias do bus de endereço é feito assim:
    • 2^n = N (onde n = número de bits necessários no bus de endereços; e N = número de registradores que você quer endereçar)
    • Então, para calcular o número de barramentos ficaria assim: n = log2(N) ; que no seu caso é n=log2(12) ≈ 3,58 = 4 vias
  • A parte das 8 vias está certa: uma via para cada bit de dados, para garantir que a palavra inteira será transportada de uma vez só

Isso mesmo, o que é endereçado é a palavra na memória e os registradores. Por que isso? Não faz sentido gastar trabalho endereçando cada bit, se ele não vai ser usado individualmente, mas em grupo com outros bits - por isso é endereçado já todos os bits de uma vez só.
Só lembrando, o endereço é o identificador único da palavra, para que a CPU possa encontrá-la na memória. O barramento de endereços SELECIONA qual palavra ou registrador será acessado.

Concordo contigo, quanto mais detalhes melhor. Valeu por perguntar até, foi ótimo pesquisar e reforçar um pouco.
Isso é a base, e o que vai fazer diferença entre realmente conhecer algo ou não, é se você tem essa base consolidada. Bons estudos, cara

1 curtida

Se você quiser dar uma olhada, no youtube tem os videos da Univesp, de Sistemas Computacionais, mas, como aluno, te digo já que os videos ficam bem no raso - os livros que vão te dar mais detalhes.

Se conseguir ter acesso, da uma olhada no livro “Organização Estrutural de Computadores”, Andrew Tanenbaum. Os primeiros capítulos

Rapaz que bom sinal. Realmente estou entendendo como funciona.
O cálculo do log é bem intuitivo, abrindo a formula do log fica:

Aqui tem 16 possibilidades de endereçamento:

0 - 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
1 - 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
2 - 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
3 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Ou seja, para uma memória com até 16 registradores não precisa mais que 4 vias para endereça-las, isso é mais que suficiente.

O que corrobora o que vc falou sobre não fazer sentido endereçar apenas 1 bit, já que a informação básica é constituída pelo conjunto de dados. Faz todo sentido.

Por exemplo: 1 caractere tem 1 byte, portanto representar um só bit desse caractere não vai formar a figura que é a unidade da informação para o usuário comum do sistema. Isso é, 1 bit solto não significa nada em termos de informação. Só mesmo para os sinais de controle. Aliás, um pouco mais adiante talvez precisarei de alguma explicação sobre isso.

Isso vale até para o endereçamento, 1 bit só do endereço não vai dar localização de nada, é preciso dos 4 bits para formar a identidade do registrador.

Eu comecei estudar pela playlist do Wagner Rambo, e já aprendendo em hexadecimal.
Eu perguntei pra ele e ele até me respondeu confirmando mas apenas isso. Em rede social não dá pra desenvolver o assunto igual a um fórum como esse.

Eu já tenho alguns livros anotados aqui para comprar, mas esse q vc indicou eu não vi ainda, já anotei aqui. Valeu pela dica.

Perfeito! É isso mesmo. Dificilmente 1bit vai trazer toda a informação necessária, mas também não tem motivo para ter 8 vias se vai usar só 4: otimização de recursos

Esse caso já é muito particular de cada arquitetura, pois é organizado por função (leitura/escrita, barramento habilitado ou não, modo de operação, etc)
Quanto mais funções forem controladas, mais bits são usados para esse controle. Funciona como uma fórmula mesmo. Exemplo: o primeiro bit, se for 0 está em modo de leitura, se for 1 está no modo escrita; e assim vai.

Esses livros acadêmicos costumam ter disponíveis na internet, pelo menos uma parte deles. Artigos científicos ajudam bastante também, e se acha bastante material gratuito

É o barramento de controle que usa 1 bit como informação, neste caso como estado se é para ler ou gravar dados nos registros. Mas só nesses casos que 1 bit individual constitui uma informação pelo que entendi. Se for 1 então o no endereço especificado deve ser lido, se for 0 dever escrito.

Eu vou procurar um pdf do livro que vc indicou, senão eu compro ele.

Estou usando o curso da playlist do Wagner (WR-Kits) pra estudar, mas preciso pausar de vez em quando para tirar dúvidas como nesse post que fiz ou complementar/aprofundar algo específico, então volto para a playlist. Isso é, eu uso o curso dessa playlist como o eixo do estudo para manter a coerência e saber o quê devo estudar em seguida.

Na internet tem muita coisa mas se não souber pelo quê começar estudar acaba por se frustrar e até desistir pq não chega a lugar nenhum andando em círculos.

Olha, de coração, muito obrigado pela disposição e boa vontade.

Agora só me fala como encerro/finalizo a discussão. kkkkk

1 curtida