Objetivos
Memória
O 68K possui um barramento de memória de 24-bits, o que permite o
endereçamento de locais que vão da posição 0 até 16.777.216 ou 0x000000 a 0xFFFFFF em
notação hexadecimal.
A memória do 68K armazena dados em formato Big-Endian, pode ser paginada
e como não possui instruções de entrada e saída, utiliza registradores mapeados em memória.
A memória principal do 68K também é utilizada pela pilha(Stack), essa tem seu
endereço predefinido
no vetor de interrupções, vetor #0.
Os dados armazenados em memória pelo 68K utiliza o formato Big-endian(BE)
que significa que um valor
têm seu Byte 0 mais significativo(MSB) armazenado primeiro,
seguido dos byte menos significativos. O que foi discutido é válido para os tipos de
dado word e longword.
Tab.1: Longword em memória
Tamanho |
Byte 0 |
Byte 1 |
Byte 2 |
Byte 3 |
Longword (32-bits) |
01 |
AB |
CD |
EF |
Tab.2: Word em memória
Tamanho |
|
|
Byte 0 |
Byte 1 |
Word (16-bits) |
-- |
-- |
01 |
23 |
Tab.3: Byte em memória
Tamanho |
|
|
|
Byte 0 |
Byte (8-bits) |
-- |
-- |
-- |
01 |
Para melhor compreensão, abaixo uma tabela que abstrai a memória do 68K armazenando dados de tamanho
Byte, Word e Longword armazenados no formato Big-Endian.
Tab. 4: Trecho de memória
Endereço |
00 |
01 |
02 |
03 |
(...) |
0C |
0D |
0E |
0F |
000000 |
01 |
12 |
23 |
45 |
(...) |
- |
12 |
-- |
- |
000010 |
- |
- |
- |
- |
(...) |
- |
- |
12 |
34 |
Nos endereços de memória mostrados acima, temos os endereços 0x000000, 0x00000D e 0x00001E com seus
respectivos valores 0x123456, 0x12 e 0x1234.
O 68000 possui uma restrição quando precisamos acessar valores dos tamanhos Word e Longword. Esse acesso
só pode ser realizar em endereços pares de memória. Caso essa restrição não seja levada em consideração, uma
interrupção de erro será gerada.
Tab. 5: Trecho de memória
Endereço |
00 |
01 |
02 |
03 |
04 |
(...) |
0D |
0E |
0F |
000000 |
-- |
01 |
12 |
23 |
45 |
(...) |
-- |
-- |
- |
000010 |
-- |
-- |
-- |
-- |
-- |
(...) |
12 |
34 |
-- |
Na tabela acima temos os endereços ímpares 0x000001 e 0x00001D contendo valores Longword e Word
respectivamente. Ao acessar esses endereços de memória para leitura, por exemplo, a interrupção
Address error será executada.
A memória do 68K, para separação e responsabilidades, pode ser divida em partes. Essas partes são mapeadas
com outros componentes do hardware para leitura e escrita de dados por intermédio do processador. Tendo
todas as partes definidas, temos o tão conhecido mapeamento de memória.
Tab. 6: Exemplo de mapeamento
Endereço de memória |
Tamanho |
Uso |
000000–$0FFFFF |
1MB |
Banco 1: ROM |
$100000–00FFFF |
64KB |
RAM |
(...) |
- |
- |
$200000–2FFFFF |
1MB |
Banco 2: ROM |
(...) |
- |
- |
$400000–401FFF |
8KB |
Paleta de cores |
(...) |
- |
- |
$800000–BFFFFF |
8MB |
Cartão de memória |
$C00000–CFFFFF |
128KB |
BIOS |
(...) |
- |
- |
O uso, definição do mapeamento é de total responsabilidade do hardware que utiliza o 68K como processador
principal. O 68K não possui nenhum mapeamento nativo.
Registrador mapeado em memória
O 68000 não possui instruções de Input e Output que utilizam portas para comunicação.
A forma de se comunicar ou trocar informações com periféricos ligados ao processador é via
registradores mapeados em memória que são endereços fixos destinados à leitura e escrita de dados.
Abaixo, alguns exemplos de dispositivos e outros processadores que podem utilizar registradores mapeados em memória.
Dispositivos
- Mouse
- Teclado
- Joystick
- Áudio
- Vídeo
Como exemplo real de registradores mapeados em memória, temos os registradores
abaixo destinados à comunicação com um processadores vídeo.
Tab. 7: Exemplo de mapeamento
Endereço do Registrador |
Tamanho |
Uso |
$3C0000 |
Word |
Endereço de destino |
$3C0002 |
Word |
Dado para leitura ou escrita |
$3C0004 |
Word |
Incremento automático após leitura/escrita |
Na tabela acima, o processador "ligado" ao 68K irá realizar a leitura dos dados nos registradores acima
e processar seus dados de acordo com o uso a qual estão destinado.
O uso, definição de endereço e outras configurações é de total responsabilidade do hardware
que utiliza o 68K como processador principal.
Histórico de atualizações
- 05/09/2024 - Revisão 1 - Correção de erros gramaticais e ajustes em tabelas
- 01/04/2024 - versão inicial
Os cursos oferecidos nesta página são cursos fornecidos por parceiros. Ao comprar um curso clicando
em seu banner, você está ajudando a manter o projeto TutorialDev vivo. Os sites dos cursos parceiros utilizam cookies.