Endianness - Arquitetura de computadores

O que é Endianness? Como funciona a ordenação e organização dos bytes nos "data word"? Quando o Endianness interfere na migração entre plataformas?

[ Hits: 7.570 ]

Por: Carlos Henrique Y Furushima em 28/07/2014 | Blog: http://dbafurushima.com.br/index.html


Introdução



Há diversos sistemas computacionais existentes no mercado. É de extrema importância destacar um ponto de diferenciação entre eles, que são as plataformas e arquiteturas.
  • Plataforma: é um conjunto de elementos físicos e lógicos que constroem um sistema computacional, esses elementos são hardware, sistema operacional e biblioteca de tempo de execução (aplicação).
  • Exemplo: Plataforma RISC IBM PPC (IBM PowerPC), Plataforma Intel Itanium, Plataforma CISC Intel X86, etc.

  • Arquitetura: é uma característica de uma determinada plataforma, que descreve a arquitetura de uma CPU e ULA baseadas em registradores e barramentos de dados, ou seja, isso refere-se no poder de endereçamento entre processador x memória principal.
  • Exemplo: 32 bits e 64 bits

  • Plataforma x Arquitetura: é a característica do sistema computacional como um todo, esse casamento ditará o funcionamento do computador em relação a software e hardware.
  • Exemplo: IBM PPC PowerPC 64 bits, Intel X86 32 bits, Oracle SPARC M-Series 64 bits, etc.

O que é Endianness?

É uma convenção usada por uma plataforma computacional, cujo objetivo é interpretar um conjunto de bytes que formam um data word, que, por sua vez, é armazenado de forma temporária na memória principal e de forma permanente em disco.

Os dados são temporariamente armazenados em memória principal em forma de dados binários organizados em unidades de 8 bits, chamado de bytes. Ao ler ou escrever um data word, a ordem dos bytes armazenados em memoria principal determina a interpretação de um data word, ou seja, é neste cenário que nos deparamos com incompatibilidade entre plataformas.

Por exemplo, um banco de dados que está instalado em GNU/Linux com Intel 64 bits e deve migrar para um AIX PowerPC 64 bits.

A ideia de um sistema computacional é semelhante a uma função matemática, implicando várias situações de entrada e saída de resultados. Para atingir um determinado objetivo, dois tipos de entrada e saída são primordiais quando falamos de Endianness, são eles:

Entrada e saída de dados entre registradores de CPU e memória principal:

- Denomina-se Load/Store:
  • O registrador é destino no Load e a memória principal é origem.
  • O registrador é origem no Store e a memória principal é destino.

Entrada e saída entre memória principal e disco:

- Denomina-se Disk Read/Write (I/O):
  • A memória principal é destino no Read (input) e o disco é origem.
  • A memória principal é origem no Write (output) e o disco é destino.


Neste cenário, a forma de ordenar e organizar os dados, é crucial para o processamento de entrada e saída. Podemos presumir, então, que uma conversão de plataforma implica em uma nova forma de ordenação e organização dos bytes.

Assim, conversões de plataformas sem o devido tratamento, implica inevitavelmente na corrupção dos dados ou na ininteligência na interpretação dos data word a serem processados.

    Próxima página

Páginas do artigo
   1. Introdução
   2. Funcionamento / Interferência entre migração
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Instalando driver ATI RADEON 9200SE no Slackware 10.0 com OpenGL

Guia definitivo para resolver problemas do chipset Ac97 Intel (intel8x0) presente nas placas mãe Asus k8u-x (Ali 5455)

Configurando o scanner Epson Perfection 610 USB

Instalando o OSS4 no Ubuntu 11.04

MAC Flood! E agora?

  
Comentários
[1] Comentário enviado por phoemur em 28/07/2014 - 12:40h

Muito bom.

Para saber seu endianness eu uso:

lscpu | grep -i byte

ou em python:

python -c 'import sys; print(sys.byteorder)'


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts