terça-feira, 2 de fevereiro de 2016

Ligações do microprocessador com o exterior



É preciso ler dados provenientes do teclado, mouse e outros dispositivos de entrada, bem como transferir dados para o vídeo, impressora e outros dispositivos de saída.

Essas operações são chamadas de “entrada e saída”, ou E/S (em inglês, Input/Output, ou I/O).

Portanto, além de processar dados, um processador deve ser capaz de realizar operações de entrada e saída, bem como realizar leituras e gravações na memória.

A ligação entre o microprocessador por um lado e a memória e os circuitos periféricos por outro é efectuada através de três conjuntos distintos de ligações eléctricas, denominados "bus" e que são:

  • O bus de dados, que permite a transferência de dados entre o microprocessador e quer a memória quer os periféricos;
  • O bus de endereço que permite ao microprocessador seleccionar a posição de memória sobre a qual quer efectuar uma operação de escrita ou leitura;

  • O bus de comando que permite ao microprocessador escolher entre a memória e os periféricos para operações de escrita ou leitura assim como o tipo de operação a realizar. • O bus de comando permite ainda aos periféricos interromperem a actividade normal do microprocessador de modo a que este execute as operações necessárias à satisfação do periférico que emitiu o sinal de interrupção.
Nos microprocessadores mais simples o bus de dados é constituído por quatro ou oito linhas distintas dizendo-se por isso que é um microprocessador de quatro ou oito bits, isto porque cada linha pode transportar um sinal eléctrico que só pode ter um de dois valores de tensão distintos a que correspondem os valores numéricos em numeração binária 0 e 1.


    O relógio

    O microprocessador necessita também de um sinal periódico chamado sinal de relógio, gerado externamente, que irá definir a cadência de execução do programa pelo microprocessador.



    A frequência desse sinal periódico tem de estar ajustada às especificações do microprocessador e encontram-se valores entre alguns Megahertz para os microprocessadores mais simples até alguns Gigahertz para os microprocessadores mais modernos.

    Tipos de endereçamentos do microprocessador



    • Endereçamento de registro

    Nesse modo ocorre de registro ou memória para outro registro ou memória. Ou seja, os dados saem do registro para outro registro ou para outra memória, bem como podem sair da memória para um registro ou para outro local da memória.

    • Endereçamento imediato

    Nesse modo, se transfere da fonte de forma imediata, através de um número constante em hexadecimal.
    Por exemplo: MOV AH, 2112H
    Ou seja, estamos transferindo diretamente do endereço 2112H para o registro AH (poderia ser para outro local na memória).

    • Endereçamento directo

    Move uma informação entre um endereço de memória e um registro.

    • Endereçamento indireto de registro 

    Ocorre entre registro e local da memória, onde esta é endereçada por um registro de índice ou registro de base, que são BP, BX(BH e BL), SI e DI. Usado em endereços de segmentos de dado do offset.
    Por exemplo: MOV AX, [CX]
    [CX] é o endereço de offset do segmento de dados, e em AX temos um endereço de memória.

    • Endereçamento de Base+Índice

    Igual ao modo de endereçamento indireto de registro, porém ele também usa o registro de índice (SI ou DI).
    Por exemplo: MOV [BX + DI], CH

    • Endereçamento relativo de registro 

    Também usa registro de índice ou registro de base, mas com algum deslocamento no endereço.
    Por exemplo:
    MOV AH,[BH + 2]
    MOV AH,VETOR[BL]


    • Endereçamento relativo de Base+Índice

    Igual ao caso anterior, mas usando ambos registos (de índice e de base), além do deslocamento.
    Por exemplo: MOV AX,[BX + SI + 4]

    Organização da memoria



     Qualquer sistema computacional apresenta sua memória organizada de forma hierárquica. • Uma arquitetura Intel apresenta basicamente a seguinte organização: memória primária e memória secundária. CPU ¸ CACHE ¸ RAM

    Memória Cache  É um tipo de memória de alta velocidade que fica posicionada entre o microprocessador e a memória RAM. • O tempo de acesso destas memórias geralmente é menor que 25ns. • O sistema de memória cache melhora o desempenho global dos sistemas de memória para dados que são cessados mais do que uma vez. • O tamanho da memória cache é determinado mais pela aplicação do que pelo microprocessador.


    quarta-feira, 20 de janeiro de 2016

    Tipos de dados



    Em ciência da computação tipos de variáveis ou dados é uma combinação de valores e de operações que uma variável pode executar, o que pode variar conforme o sistema operacional e a linguagem de computador.São utilizados para indicar ao compilador ou interpretador as conversões necessárias para obter os valores em memória durante a construção do programa. O tipo de dado ajuda também o programador a detectar eventuais erros envolvidos com semântica das instruções, erros esses detectados na análise semântica dos compiladores.
    Dependendo da linguagem de programação, o tipo de um dado é verificado diferentemente, de acordo com a análise léxica, sintáctica e semântica do compilador ou interpretador da linguagem. Os tipos têm geralmente associações com valores na memória ou com objectos (para uma linguagem orientada a objecto) ou variáveis.

    Tipo estático e dinâmico

    A verificação do tipo de um dado é feita de forma estática em tempo de compilação ou de forma dinâmica em tempo de execução. Em C, C++, Java e Haskell os tipos são estáticos, em Scheme, Lisp, Smalltalk, Perl, PHP, Visual Basic, Ruby e Python são dinâmicos.
    Em C uma definição estática do tipo de uma variável ficaria assim:


    Arquitectura de um sistema tipo (microprocessador).




    Do ponto de vista do programador, a Arquitetura de Computadores trata do comportamento funcional de um sistema computacional (ex. tamanho de um tipo de dados – 32 bits para um inteiro) e a Organização de Computadores trata da estrutura interna que não é visível para o programador (ex. frequência do relógio ou tamanho da memória física). Existe um conceito de níveis na arquitetura de computadores. A ideia básica é que existem muitos níveis nos quais o computador pode ser considerado, do nível mais alto, onde o usuário executa programas, ao nível mais baixo, que consiste de transistores e fios.[1] Este trabalho tem por objetivo o conhecimento e o estudo da arquitetura básica de um microprocessador hipotético tendo por base os microprocessador Z8088 e Z80 da Zilog.

    Evolução dos Microprocessadores


    O primeiro microprocessador utilizado em um computador pessoal foi o Intel 8080. Era um computador de 8 bits completo dentro de um chip e foi lançado em 1974; mas o primeiro microprocessador que se tornou realmente popular foi o Intel 8088, lançado em 1979 e incorporado a um PC IBM – que apareceu em 1982. Se conhece a história e o mercado de PCs, vai se lembrar da evolução dos processadores. O 8088 evoluiu para o 80286, depois para o 80386, 80486, Pentium, Pentium II, Pentium III e Pentium 4, Celeron, Xeon, Itanium, Core, Core Duo, Quad… Todos estes microprocessador foram produzidos pela Intel e são melhorias do design básico do 8088. Falando só da Intel. Seu principal concorrente, a AMD, evoluiu paralelamente, com o 286A, o 386, 486, 586, K5, K6-3, Athlon, Duron, Sempron, Athlon MX, AMD64, Phenom e Turion.
    Capturar

    Uma tabela com as diferenças entre os processadores que a Intel lançou nos últimos anos.
    Capturar1
    • data é o ano em que o processador foi lançado. Muitos processadores são relançados com maiores velocidades de clock anos depois do lançamento original.
    • Transístores é o número de transístores no chip. Nos últimos anos, o número de transístores em um chip cresceu bastante.
    • Mícrons é a largura, em mícrons, do menor fio do chip. Para ter uma ideia, o fio de cabelo humano tem a espessura de 100 mícrons. Os chips diminuem de tamanho e o número de transístores aumenta.
    • Velocidade do clock é a taxa máxima do clock do chip.
    • Largura de dados é a largura da Unidade Lógico-Aritmética (ALU). Uma ALU de 8 bits podem somar/subtrair/multiplicar/etc, dois números de 8 bits. Uma ALU de 32-bit pode manipular números de 32 bits. Uma ALU de 8 bits teria que executar quatro instruções para somar dois números de 32 bits, enquanto que uma ALU de 32 bits precisa de apenas uma instrução. Em muitos casos, o barramento externo de dados é da mesma largura que a ALU. O 8088 tinha uma ALU de 16 bits e um barramento de 8 bits. Os chips mais recentes procuram dados de 64 bits de uma vez para as ALUs de 32 bits.

    Principais componentes de um microprocessador



    microprocessador, geralmente chamado simplesmente de processador, é um circuito integrado que realiza as funções de cálculo e tomada de decisão de um computador. Todos os computadores e equipamentos eletrônicos baseiam-se nele para executar suas funções, podemos dizer que o processador é o cérebro do computador por realizar todas estas funções, é tornar o computador inteligente.
    Um microprocessador incorpora as funções de uma unidade central de computador (CPU) em um único circuito integrado, ou no máximo alguns circuitos integrados. É um dispositivo multifuncional programável que aceita dados digitais como entrada, processa de acordo com as instruções armazenadas em sua memória, e fornece resultados como saída. Microprocessadores operam com números e símbolos representados no sistema binário.

    Arquitetura interna de um microprocessador dedicado para processamento de imagens de ressonância magnética, a fotografia foi aumentada 600 vezes, sob luz ultravioleta para se enxergar os detalhes

    Vista inferior de um Athlon XP 1800+ núcleo Palomino, um microprocessador moderno.
    O microprocessador é um circuito integrado formado por uma camada chamada de mesa epitaxial de silício, trabalhada de modo a formar um cristal de extrema pureza, laminada até uma espessura mínima com grande precisão, depois cuidadosamente mascarada por um processo fotográfico e dopada pela exposição a altas temperaturas em fornos que contêm misturas gasosas de impurezas. Este processo é repetido tantas vezes quanto necessário à formação da microarquitetura do componente.
    Responsável pela execução das instruções num sistema, o microprocessador, escolhido entre os disponíveis no mercado, determina, em certa medida a capacidade de processamento do computador e também o conjunto primário de instruções que ele compreende. O sistema operativo é construído sobre este conjunto.
    O próprio microprocessador subdivide-se em várias unidades, trabalhando em altas frequências. A ULA(Unidade Lógica Aritmética), unidade responsável pelos cálculos aritméticos e lógicos e os registadores são parte integrante do microprocessador na família x86, por exemplo.
    Embora seja a essência do computador, o microprocessador diferente do microcontrolador, está longe de ser um computador completo. Para que possa interagir com o utilizador precisa de: memória, dispositivos de entrada/saída, um clock, controladores e conversores de sinais, entre outros. Cada um desses circuitos de apoio interage de modo peculiar com os programas e, dessa forma, ajuda a moldar o funcionamento do computador.