Skip to content

DataBusControlRegister

Carlos Delfino edited this page Mar 26, 2021 · 8 revisions

Data Bus Control Register (0h0100-0000 -- 0H0100-0014)

O Registrador do Controlador de Barramento de Dados, ajuda a identificar o que está acontecendo no barramento de que gerencia tanto a memória de dados, como o barramento que dá acesso aos periféricos, ele não contem nenhuma informação sobre algum periférico específico, apenas sobre a sinalização e fatos ocorridos no barramento.

Por exemplo, qual o tamanho da ultima leitura ou gravação realizada, qual o valor do ultimo dado transportado, se o ultimo endereço de 16, 32, 64, ou 128 bits estava alinhado.

Como tal registrado ainda está sendo especificado ele pode vir a sofrer alterações com o aprendizado da especificação e também com novas descobertas.

0h0100-0000 - 0h0100-0003
32 BITS (UMA WORD)
00|| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
     |           |   |   |   |   +--- DBC is busy 
     |           |   |   |   +------- Address-misaligned exception
     |           +---+---+----------- Tamanho da última leitura  (000 -> Byte, 001 -> Half, 010 -> Word)  veja abaixo para detalhes em (1)
     +------------------------------- Not Used Address Exception, veja detalhes em (2)
01|| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |  RESERVADO
02|| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |  RESERVADO
03|| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |  RESERVADO
0h0100-0004 - 0h0100-0014
04|| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |    Último dado gravado (byte, half, word, dual, quadword), 
05|| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
06|| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
07|| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
------------------------------------
08|| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |    Último dado gravado (byte, half, word, dual, quardword), 
09|| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
0A|| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
0B|| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
------------------------------------
0C|| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |    Último dado gravado (byte, half, word, dual, quardword), 
0E|| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
0F|| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
10|| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
------------------------------------
11|| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |    Último dado gravado (byte, half, word, dual, quardword), 
12|| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
13|| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
14|| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |

[1] https://github.com/DuinOS/riscuinho/blob/c381de6d73ca697dbf96287e4b8ba7b0c4a64dff/InstructionDecoder.v#L62-L70 [2] https://github.com/DuinOS/riscuinho/issues/11#issuecomment-805183368

Clone this wiki locally