quinta-feira, 4 de dezembro de 2014

Assembly

Assembly ou linguagem de montagem é uma notação legível por humanos para o código de máquina que uma arquitetura de computador específica usa, utilizada para programar dispositivos computacionais, como microprocessadores e microcontroladores. A linguagem de máquina, que é um mero padrão de bits, torna-se legível pela substituição dos valores em bruto por símbolos chamados mnemónicos (palavras reservadas da linguagem). Enquanto um computador sabe o que a instrução - máquina IA-21 (10110000 01100001) faz, para os programadores é mais fácil recordar a representação equivalente em instruções mnemónicas MOV AL, 61h. Tal instrução ordena que o valor hexadecimal 61 (97, em decimal) seja movido para o registrador 'AL'.

Cada arquitetura de computador tem a sua própria linguagem de máquina e, portanto, a sua própria linguagem de montagem. Essas linguagens de montagem diferem no número e tipo de operações que suportam. Também têm diferentes tamanhos e números de registradores, e diferentes representações dos tipos de dados armazenados. Enquanto todos os computadores de utilização genérica são capazes de desempenhar essencialmente as mesmas funções, o modo como o fazem é diferente.

 A seguir temos alguns exemplos de códigos utilizando a linguagem montadora assembly do 8086. A sintaxe dessa linguagem não é case sensitive (não diferencia letras maiúsculas de minúsculas). Portanto para facilitar a compreensão do texto do código sugere-se uso de letras MAIÚSCULAS para o código e minúsculas para comentários que iniciam com ponto e vírgula (;):
____________________________________________________________________
MOV AX,WORD1         ;movimenta o conteúdo da posição de memória WORD1
                                          ;para o registrador AX
 ___________________________________________________________________

Esse é um exemplo simples de comando em Assembly 8086. O mnemónico MOV, permite movimentar valores. No exemplo, o conteúdo da posição na memória WORD1 foi movido para o registrador AX.

Outro exemplo usando  mnemónico MOV:
____________________________________________________________
MOV AH,’A’                         ;transfere o caracter ASCII ‘A’ para AH
 ___________________________________________________________________


Abaixo teremos um programa completo e bem simples: a versão Assembly 8086 do famoso "Hello World":
__________________________________________________________
.MODEL SMALL
.STACK 100H
.DATA
Str1 db “HELLO WORLD”,13,10,’$’
.CODE

;atualiza o DS com o segmento que guarda STR1
    MOV AX,SEG Str1
    MOV DS, AX

;chama a INT 21 para printar a str na tela
    MOV DX, OFFSET Str1
    MOV AH, 09
    INT 21H


;encerra o programa
    MOV AX, 4c00H
    INT 21 H
END

_________________________________________________________







Tipos de Memória e Dispositivos E/S

Na informática, memória são todos os dispositivos que permitem a um computador guardar dados, temporariamente ou permanentemente. Memória é um termo genérico para designar componentes de um sistema capazes de armazenar dados e programas. O conceito de computador digital binário com programa armazenado, é sempre baseado no uso de memória, e não existiria sem a utilização destas.

Existem, basicamente, dois tipos de memória:

    Memórias RAM
  •  Memória principal: "também chamadas de memória real, são memórias que o processador pode endereçar diretamente, sem as quais o computador não pode funcionar. Estas fornecem geralmente uma ponte para as secundárias, mas a sua função principal é a de conter a informação necessária para o processador num determinado momento; esta informação pode ser, por exemplo, os programas em execução. Nesta categoria insere-se a RAM,que é uma memória de semicondutores, volátil, com acesso aleatório, isto é, palavras individuais de memória são acessadas diretamente, utilizando uma lógica de endereçamento implementada em hardware. Também pode-se compreender a memória ROM (não volátil), registradores e memórias cache." [VELLOSO:2011:38]
HD Sandisk SSD
  •  Memória secundária: memórias chamadas de “memórias de armazenamento em massa”, para armazenamento permanente de dados. Não podem ser endereçadas diretamente, a informação precisa ser carregada em memória principal antes de poder ser tratada pelo processador. Não são estritamente necessárias para a operação do computador. São não-voláteis, permitindo guardar os dados permanentemente. Como memórias externas, de armazenamento em massa, podemos citar os discos rígidos como o meio mais utilizado, e em especifico os SSDs, que tem maior velocidade e confiabilidade apesar da capacidade de armazenamento ainda reduzida. Outra exemplo são os discos óticos como CDs, DVDs e Blu-Rays,disquetes e fitas magnéticas.

Às vezes faz-se uma diferença entre memória secundária e memória terciária. A memória secundária não necessita de operações de montagem (inserção de uma mídia ou média em um dispositivo de leitura/gravação) para acessar os dados, como discos rígidos; a memória terciária depende das operações de montagem, como discos ópticos e fitas magnéticas, entre outros.




Dispositivos E/S

Mouse Gamer Razer
Dispositivos E/S (Entrada/Saída), permitem uma interface externa. São através deles que o usuário interagem com  o computador inserindo dados e recebendo informações desses dados devidamente processados. Portanto, para Realizarmos qualquer tarefa é necessário de um meio de comunicação entre o usuário e o computador e, da mesma forma, a necessidade de comunicação inversa, de maneira que o usuário possa entender o resultado do processamento, pois os periférico são os dispositivos responsáveis pela entrada e saída das informações.

Nas placas-mãe atuais os circuitos de controle dos periféricos E/S já estão incorporados. Em alguns casos, ainda se precisa de ajuda de placas auxiliares, para citar o exemplo mais popular atualmente, placas aceleradoras de vídeo. Embora as motherboards atuais já vem com placa de vídeo integrada, as placas aceleradoras permitem um melhor desempenho no que diz respeito ao processamento de gráficos o que é excelente tanto para jogos como para programas que necessitam de uma interface gráfica robusta.

Teclado Gamer Razer
Como exemplos de dispositivos der entrada podemos citar o teclado e o mouse. Os teclados utilizam dois padrões pra sua conexão: a placa mãe, o DIN de cinco pinos e MINIDIN com até 6 pinos, com o surgimento do modelo PS/2. Temos ainda alguns adaptadores caso alguma placa mãe não venha com algum dos tipos. Atualmente, além dos modelos citados, temos os teclados que se conectam à placa mãe através da conexão USB. Os Mouses é um dispositivo de entrada cujo propósito
é facilitar o trabalho do usuário em sua comunicação com o sistema. Os mouses, que podem ser do tipo ÓTICO-MECÂNICO possuem o mesmo mecanismo de esfera e rolete que os dispositivos mecânicos, sendo que os roletes são conectados a rodas vazadas e à medida que as rodas giram, elas ora bloqueiam, ora permitem a passagem de luz, que é produzida pelo LED, e estas transições são detectadas por semicondutores sensíveis à luz.

Monitor Wide Screen 21"
Como exemplo de dispositivo de saída temos o monitor, um sistema de vídeo para exibir operações realizadas e/ou seus resultados. Atualmente o padrão mais popular é o High-Definition Multimedia Interface (HDMI), uma interface condutiva totalmente digital de áudio e vídeo capaz de transmitir dados não comprimidos, representando, por isso, uma alternativa melhorada aos padrões analógicos. HDMI suporta através de um único cabo qualquer formato de vídeo TV ou PC, incluindo resoluções padrão (480i/p, 576i/p), alta definição (720p, 1080i/p) e na especificação 1.4, 4k x 2k (2160p), e até 8 canais de áudio digital.


terça-feira, 25 de novembro de 2014

O Futuro dos Processadores

                 Os processadores vem sofrendo vertiginosa mudança desde a década de 40. A primeira transformação  veio com o surgimento dos transistores que substituíram as válvulas e como consequência houve uma redução de gastos de energia, aumento no desempenho e redução de tamanho. Com a chegada dos sistemas integrados cada vez mais transistores eram usados para aumentar o poder de processamento. Como consequência mais calor a ser dissipado era gerado e cada vez mais o tamanho dos transistores era reduzido. Até certo tempo atrás, acreditava-se que seria impossível produzir transístores menores que 0.13 mícrons. Conforme a tecnologia avançava desenvolveram transístores ainda menores.Porém, atualmente já se desenvolvem transistores com tamanhos de até 0.02 mícrons e este aparentemente é o novo limite. Esse limite começa a exigir da indústria uma nova arquitetura para manter o avanço dos processadores, e esta tecnologia já está em fase de desenvolvimento (mesmo que ainda no nivel das pesquisas).
A nova tecnologia CMOS Integrated Silicon Nanophotonics

Em 2010, a IBM anunciou o desenvolvimento de uma nova tecnologia para a construção de processadores que integra componentes elétricos e ópticos na mesma pastilha de silício. A tecnologia, chamada de CMOS Integrated Silicon Nanophotonics, permite que os chips de computador comuniquem-se usando pulsos de luz em vez de sinais elétricos. Os novos processadores "nanofotônicos" poderão ser construídos em pastilhas de silício 10 vezes menores do que os atuais e consumirão muito menos energia ao trocar a eletricidade pela luz, permitindo que eles funcionem em clocks chegando a uma velocidade mil vezes maior do que a alcançada pelos computadores atuais.

Processador quântico D-Wave One
Os processadores quânticos, outra arquitetura em desenvolvimento,  usam átomos no lugar de transistores. Ao invés de bits temos bits quânticos, ou qubits. Num átomo, a rotação de cada elétron pode ser controlada caso o átomo seja colocado sobre uma superfície magnética sensível. Enquanto um transístor permite apenas dois estados, ou seja, ligado ou desligado, cada qubit possui três estados diferentes. Dois  são determinados pela rotação dos elétrons (horário ou anti-horário), enquanto no terceiro eles podem girar simultaneamente nos dois sentidos. Isso permite um poder de processamento exponencialmente maior do que se é alcançado atualmente. O problema dos computadores quânticos atualmente é que é preciso grande aparato para eles funcionarem. A dissipação de calor deve chegar a uma temperatura próxima do zero absoluto e se utilizam aparelhos de ressonância de custo elevado para manipular os átomos. Superados esses desafios, a computação quântica certamente chegará para revolucionar a indústria.

Aqruitetura de Computadores: Tipos de hardware em um Computador

John Von Neumann

              Podemos dizer que um computador é uma máquina capaz de variados tipos de tratamento automático de informações ou processamento de dados. Ele é composto por peças e circuitos também conhecidos como hardwares, quem vem sofrendo vertiginosa atualização desde os primórdios da informatização.

    Apesar da tecnologia usada nos PCs ter mudado bastante desde as primeiras máquinas digitais nos anos 40, boa parcela dos computadores modernos ainda são produzidos de acordo com a arquitetura de Von Neumann proposta por John Von Neumann, um dos mais importantes matemáticos do século 20. De acordo com essa arquitetura, computadores podem ser divididos em quatro partes principais:

  • a unidade lógica e aritmética;
  • a unidade de controle;
  • a memória;
  • dispositivos de entrada e saída.

Essas partes estão interconectadas através de barramentos presentes na placa-mãe. A unidade lógica e aritmética, a unidade de controle, os registradores e a parte básica de entrada e saída também são conhecidos como CPU que é uma das principais partes da arquitetura. É ela que executa os cálculos, através de uma unidade lógica e aritmética (ULA) e a Unidade de Controle que armazena posições na memória que contém as instruções que o computador está executando. Além desses o CPU ainda conta com os Registradores, que são células de memória que podem ser acessadas mais rapidamente.

A memória pode ser dividida em memória primária e secundária. Entre as primarias temos a memoria RAM, que pode ser de leitura e escrita, que armazenam instruções de forma temporária e a memoria ROM que é apenas de leitura e cujo seus dados são armazenados de forma permanente. Entre as memórias secundárias temos os diversos dispositivos de armazenamento como Hard Disks, CD-ROMs e DVDs, que permitem guardar dados por longos períodos de tempo.

O dispositivos de entrada e saída (E/S) são utilizados para a interação entre usuário e maquina. Num PC tradicional, dispositivos comuns de entrada abrangem teclado, mouse, web cam. Dispositivos de entrada, como o nome sugere serve para o usuário inserir dados para o computador processar. Já os dispositivos de saída servem para transmitir ao usuário o resultado dos processamentos. Exemplos mais comuns são o Monitor, Impressoras e caixas de som.