terça-feira, 3 de fevereiro de 2015

Tipos (modos) de Endereçamento

Modos de endereçamento de dados

Registo inerente

O modo de endereçamento registo inerente utiliza-se para os registos em que não é necessário especificar nenhum byte adicional para designar o operando.
O registo a operar é codificado no código de operação da instrução. Os registos para os quais este método de codificação é feito são os seguintes: R0 a R7, A, PSW, SP e PC.

Exemplos:

MOV R1,#25 ; coloca o valor 25 no registo R1
INC R0 ; adiciona 1 ao conteúdo do registo R0


Directo

Este modo de endereçamento utiliza-se para aceder à memória de dados interna.
A codificação da instrução é feita com um byte para o código de operação da instrução e um byte adicional para especificar o endereço a aceder.
Como a especificação do endereço se faz num único byte a gama de endereços possível é de 0 a 255.
A gama de endereçamento referida permite aceder a toda a área de memória de dados interna podendo especificar-se o acesso a um registo ou a uma variável.

Exemplos de operação sobre variáveis em RAM interna:

MOV 23H,A ; copia o conteúdo do acumulador para a posição de memória cujo endereço é 23H.
ADD A,40H ; soma o conteúdo da posição de memória 40H ao acumulador.

Exemplos de operação sobre SFRs:

MOV B0H,A ; coloca o conteúdo do acumulador à saída do porto P3.

Imediato

O modo de endereçamento imediato permite especificar um valor numérico constante.
As constantes a especificar podem ter 8 bits ou 16 bits. Os valores de 16 bits só podem ser usados em conjunto com o registo DPTR.
Em assembly os valores numéricos imediatos são precedidos do caracter ‘#’.

Exemplos:

MOV A,#22 ; carrega o acumulador com o valor 22.
ADD A,#30 ; soma 30 ao acumulador
MOV DPTR,#20F0H ; carrega o valor hexadecimal 20F0 no registo DPTR.

Indirecto

No modo de endereçamento indirecto a instrução especifica um registo que contém o endereço do operando.
Tanto a memória de dados interna como a externa podem ser endereçadas deste modo. Este modo de endereçamento é útil no acesso a arrays.
Só os registos R0, R1 e DPTR podem ser utilizados como ponteiros de dados. R0 e R1 são ponteiros de 8 bits e DPTR é um ponteiro de 16 bits. O registo a utilizar é precedido do caracter ‘@’.

Exemplos:

ADD A,@R1 ; adiciona o conteúdo da posição de memória apontada por R1 ao acumulador.
MOV @R0, A ; guarda o conteúdo do acumulador na posição de memória apontada por R0.
MOVX A,@DPTR ; copia o conteúdo da posição de memória externa apontada por DPTR para o acumulador.

Indexado

Este modo de endereçamento só é permitido para acesso à memória de programa, por isso só é utilizado para leitura.
Destina-se ao acesso a tabelas e a instruções de salto. No acesso a tabelas um registo de 16 bits (DPTR ou PC) contém o endereço base da tabela e o acumulador é carregado com o número de entrada na tabela.
O endereço da entrada na tabela é calculado somando ao valor do registo o valor do acumulador. Na instrução JMP o endereço do destino é calculado como a soma do ponteiro base (DPTR ou PC) e do valor do acumulador.

Exemplos:

JMP @A+DPTR ; coloca no registo PC o valor igual à soma do conteúdodos registos DPTR e acumulador e continua a execuçãodo programa a partir desse endereço.
MOVC A,@A+DPTR ; carrega o conteúdo da posição de memória apontada pela soma dos registos acumulador e DPTR no acumulador.
MOVC A,@A+PC ; carrega o acumulador com o conteúdo da posição de memória cujo endereço é a soma dos registos acumulador e PC.





































quinta-feira, 22 de janeiro de 2015

Tipos de Dados Processados




Tipo de Dados






Tipo de Dados Numéricos




Tipos Inteiros



Os tipos smallint, integer e bigint armazenam números inteiros, ou seja, números sem a parte fracionária.

O tipo integer é a escolha habitual, porque oferece o melhor equilíbrio entre faixa de valores, tamanho de armazenamento e desempenho. Geralmente o tipo smallint só é utilizado quando o espaço em disco está muito escasso. O tipo bigint somente deve ser usado quando a faixa de valores de integer não for suficiente, porque este último é bem mais rápido.

O tipo bigint pode não funcionar de modo correto em todas as plataformas, porque depende de suporte no compilador para inteiros de oito bytes. Nas máquinas sem este suporte, o bigint age do mesmo modo que o integer (mas ainda ocupa oito bytes de armazenamento). Entretanto, não é de nosso conhecimento nenhuma plataforma razoável onde este caso se aplique.

O padrão SQL somente especifica os tipos inteiros integer (ou int) e smallint. O tipo bigint, e os nomes de tipo int2, int4 e int8 são extensões, também compartilhadas por vários outros sistemas de banco de dados SQL.

terça-feira, 20 de janeiro de 2015

Arquitetura de Von Neumann VS. Arquitetura Harvard

A Arquitetura de von Neumann é uma arquitetura de computador que se caracteriza pela possibilidade de uma máquina digital armazenar os programas no mesmo espaço de memória que os dados, podendo assim manipular programas.

A máquina proposta por Von Neumann reúne os seguintes componentes: uma memória, uma unidade aritmética e lógica (ALU), uma unidade central de processamento (CPU), composta por diversos registadores e  uma Unidade de Controlo (CU).





A Arquitetura de Harvard é uma arquitetura de computador que se distingue das outras por possuir duas memórias diferentes e independentes em termos de barramento e ligação ao processador.
Baseia-se na separação de barramentos de dados das memórias onde estão as instruções de programa e das memórias de dados, permitindo que um processador possa acessar as duas simultaneamente, obtendo um desempenho melhor do que a da Arquitetura de von Neumann, pois pode buscar uma nova instrução enquanto executa outra.
A arquitetura Havard também possui um repertório com menos instruções que a de Von-Neumann, e essas são executadas apenas num único ciclo de relógio.



A diferença entre a arquitetura Von Neunmann e a Harvard é que a Harvard separa o armazenamento e o comportamento das instruções do CPU e os dados, enquanto a Von Neumann utiliza o mesmo espaço de memória para ambos. Nos CPUs atuais, é mais comum encontrar a arquitetura Von Neunmann, mas existem alguns CPUs com arquitetura Harvard.

 Arquitetura tipo Harvard: Caminhos de dados e de instrução distintos,
Já na arquitetura Von-Neumann, é processada uma única informação por vez, visto que nessa tecnologia, execução e dados percorrem o mesmo barramento, o que torna o processo lento em relação à arquitetura Harvard.
A tecnologia Harvard mais utilizada nos PC's e microcontroladores, pois proporcionam maior velocidade de processamento, pois enquanto a CPU processa uma informação, outra nova informação está sendo buscada, de forma sucessiva.


segunda-feira, 19 de janeiro de 2015

Evolução dos Processadores Intel


1971:
Aparece o Intel 8008 com 8 bits implementada sobre as tecnologias TTL MSI.

1973: 
O primeiro processador comercial produzido no mundo foi o Intel 4004 que foi desenvolvido para ser utilizado por uma empresa de calculadoras portáteis, a Japonesa Busicom.

1974:
A Intel lança o primeiro processador voltado para computadores pessoais. O Intel 8080 que possui um CPU de 8bits, porém , uma frequência de operação de 290.000 operações por segundo.

1978:
A Intel lança o Intel 8086 com 29.000 transistores e performance 10 vezes melhor que o antecessor . 
1979:
O Intel 8086 foi seguido em 1979 pelo Intel 8088, uma versão do 8086 com barramento de 8 bits.

1982:
A  Intel 8086 iniciada  com o lançamento do novo processador de 16 bits, o Intel 80286, mais conhecido como Intel 286. Possuía 134.000 transistores com frequência máxima de 12MHz.

1985:
A Intel lança a grande inovação da década, o processador de 32bits com 275.000 transistores, o Intel 386 que opera a 5 milhões de instruções por segundo(MIPS) Numa frequência de 33mhz.

1988:
Apesar do Intel 386 ter sido uma revolução na industrias de microprocessadores ele era muito caro e inviável para um usuário comum. Então a Intel lança o Intel 386SX, vulgarmente chamado de “386 Lite”. Esse representa um novo nível na família Intel.

1989:
A Intel lança a nova família de processadores Intel 486, com 1.200.000 transistores, agora também integrado com  cache L1 e operando Numa frequência de 50MHz.

1993:
Aparece o Pentium construído com a tecnologia CMOS de 0.8μm foi o marco do avanço tecnológico, possuindo cerca de 3.100.000 transistores, trabalhando entre 66MHz e 233MHz e executando cerca de 112MIPS .

1995:
A Intel lança o Pentium PRO com a novidade da cache L2, rodava a 200MHz e possuía 5,5 milhões de transistores, sendo o primeiro processador a ser produzido com a tecnologia de 0.35
1998:
O Intel Pentium II Xeon é concebido para satisfazer os requisitos de desempenho de médios e grandes servidores e estações de trabalho.

1999:
A Intel lança o Pentium III, que possuía 70 novas instruções, que aumentaram visivelmente o desempenho de gráficos avançados, 3D, streaming de áudio, vídeo e aplicações de reconhecimento de voz.

2000:
Aparece o Pentium 4, com 42 milhões de transistores.

2001 a 2006:
No período de 2001 a 2006, surgem diversas novas tecnologias e processadores. Contudo, a partir de 2001, após o lançamento de novas versões do Pentium 4, a indústria já podia construir processadores com transistores tão pequenos (tecnologia de 0.13μm) que tornou-se muito difícil aumentar o clock por limitações físicas.
2006:
A Intel lança sua nova linha de processadores multi core e deixa o Athlon 64 X2 para traz. Essa nova linha abandona a marca Pentium e passa a utilizar a Core2, trazendo também algumas melhorias que tornariam a Intel novamente a líder de mercado.





























































































































































































segunda-feira, 12 de janeiro de 2015

Módulo 9 – Arquitetura de Microprocessadores nº2



MMX (Multimedia Extensions)

Designa o conjunto de 57 instruções introduzidas nos processadores Intel e outros processadores compatíveis no início de 1997 para a consulta de dados multimédia. Permitem um uso eficaz do processador para operações específicas de multimédia como processamento digital de sinal. 
Apenas software escrito para chamar especificamente essas instruções pode fazer uso dessa potencialidade e, com efeito, não foi feito um grande esforço por parte de empresas criadoras de compiladores de várias linguagens para a plataforma x86 em adaptar os seus produtos para fazer uso extensivo destas instruções. Muito recentemente a Intel admitiu tratar-se de um flop o lançamento destes chips visto não terem tido um suporte em termos de software comercial como pano de fundo.


Overclocking

O overclock é um processo no qual a velocidade de componentes específicos de um computador são manualmente aumentadas, através de configurações e instruções diretas para o hardware. A melhora de desempenho que é atingida após o processo pode variar, mas entusiastas conseguem fazer componentes antigos funcionarem como os últimos lançamentos, assim como fazem as peças mais modernas superarem os limites da tecnologia atual.

Hyper-Threading 

É uma tecnologia de virtualização de cores. O processador core i3 tem 2 cores físicos, com a tecnologia hyper threading ativada, o sistema operacional passa a reconhecer o processador como tendo 4 cores, isso ocorre pois a tecnologia hyper threading virtualiza a cada 1 core físico mais 1 core porem lógico. Essa tecnologia possibilita um aumento de desempenho de até 30% a mais nas execuções de threads.

CISC

O nome CISC (Complex Instruction Set Computer) advém do fato de se considerar complexo um conjunto constituído de grande quantidade de instruções, com múltiplos modos de endereçamento, entre outras críticas. Numa época inicial da computação em que a memória era cara e pequena e, por isso, os códigos gerados pelos compiladores deveriam ser compactos e eficientes na execução. Dessa forma, os projetistas precisavam obter boa densidade do código de máquina, ou seja, cada instrução deveria fazer muito, de modo que o programa completo tivesse poucas instruções.

RISC

RISC (Reduced Instruction Set Computing) são muito mais velozes do que os processadores comuns (CISC). O termo RISC refere-se ao número de ciclos de clock que o processador leva para selecionar uma instrução. Processadores comuns levam vários ciclos de clock para selecionar uma única instrução. Um chip RISC, por outro lado, pode selecionar e executar uma instrução a cada ciclo de clock.




CISC vs RISC 

Armazenamento e memória
A memória, hoje em dia, é rápida e barata; qualquer pessoa que tenha instalado recentemente um programa da Microsoft sabe que muitas das companhias que desenvolvem software já não têm em consideração as limitações de memória. Assim, as preocupações com o tamanho do código que deram origem ao vasto conjunto de instruções da arquitectura CISC já não existem. De facto, os processadores da era pós-RISC têm conjuntos de instruções cada vez maiores de um tamanho e diversidade sem precedentes, e ninguém pensa duas vezes no efeito que isso provoca no uso da memória.

Compiladores
O desenvolvimento dos compiladores sofreu um tremendo avanço nos últimos anos. De facto, chegou a um ponto tal que a próxima geração de arquitecturas (como o IA-64 ou Merced da Intel) dependem apenas do compilador para ordenar as instruções tendo em vista a máxima taxa de instruções executadas. Os compiladores RISC tentam manter os operandos em registos por forma a poderem usar simples instruções registo-registo. Os compiladores tradicionais, por outro lado, tentam descobrir o modo de endereçamento ideal e o menor formato de instrução para fazerem os acessos à memória. Em geral, os programadores de compiladores RISC preferem o modelo de execução registo-registo de forma que os compiladores possam manter os operandos que vão ser reutilizados em registos, em vez de repetirem os acessos à memória de cada vez que é necessário um operando. Usam, por isso, LOAD’s e STORE’s para aceder à memória para que os operandos não sejam, implicitamente, rejeitados após terminada a execução de uma determinada instrução, como acontece nas arquitecturas que utilizam um modelo de execução memória-memória.


Luís Martins nº14 12ºF
Pedro Silva nº18 12ºF

terça-feira, 6 de janeiro de 2015

Funcionamento do microprocessador

Funcionamento do microprocessador


Unidade de Controlo - controla o funcionamento da ULA (Unidade Lógica e Aritmética) e da memória. É responsável também por distribuir e organizar tarefas, transferir informações da entrada para a memória e da memória para a saída.

ULA - é responsável pelas operações elementares (soma, subtração, multiplicação e divisão), e pelas decisões lógicas, ou seja, pelas comparações entre informações. Por exemplo, decidir se 8 > 4 ou 8 >=4.

Resgitador – Contida na CPU, o registador é um tipo memória com pequena capacidade, porém muito rápida. É utilizada no armazenamento temporário durante o processamento. Os registradores estão no topo da hierarquia de memória e são considerados o meio mais rápido e caro de ser armazenar um dado.

Unidade de vírgula flutuante -  Tem a capacidade de processamento de números inteiros (sem vírgula), sendo necessário implementar esse processo ao nível de software, com a consequente degradação de desempenho e de aumento da complexidade de software. Assim, foi desenvolvido o co-processador, que permite a interligação com o processador e realiza por este as operações relacionadas com números com vírgula.

Unidade de memória cache interna - é uma pequena porção de memória estática presente dentro do processador. Em alguns tipos de processador, como o Pentium 2, o L1 é dividido em dois níveis: dados e instruções (que "dizem" o que fazer com os dados).O primeiro processador da Intel a ter o cache L1 foi o i486 com 8KB. Geralmente tem entre 16KB e 128KB; hoje já encontramos processadores com até 16MB de cache.

Unidade de ligação com o BUS - permite a ligação com componentes externos ao processador apartir através do Bus ou Barramento.

Unidade de Pré-escolha - requisita à memória cache uma lista de instruções a executar, armazena essas instruções, de modo a prepará-las para serem enviadas à Unidade de Descodificação.

Unidade de Segmentação e Unidade de Paginação - convertem endereços lógicos (contidos nos programas) em endereços físicos (consoante a gestão de memória usada).

Unidade de Descodificação - tem como objetivo descodificar as instruções e as informações vindas da Cache para o CPU as processar.

Barramentos internos - também chamados de LPC, são utilizados na comunicação com a BIOS e com o chip Super I/O.



















http://infocila.blogspot.pt/p/componentes-de-um-computador_24.html
http://pt.wikipedia.org/wiki/Cache
http://www.cursosdeinformaticabasica.com.br/tag/o-que-e-unidade-de-controle/

segunda-feira, 20 de outubro de 2014

Slots




Slots de Expansão





Slot AGP


O slot AGP foi criado para optimizar a performance das placa de vídeo. A entrada AGP só pode ser usada por placas de vídeo de aceleração 3D. Também aceita placas de vídeo. 










Slot PCI-Express


Utilizadas com placas de vídeo mais modernas, ela varia de 1X até 32X.
O PCI Express usa uma arquitetura de baixa tensão eletrica nas suas conexões, chamadas de linhas LVDS (Low Voltage Differential Signalling). Devido isso, permite grande imunidade ao ruído e também permite aumentar a largura de banda. Isso foi possível graças à redução de atrasos nas linhas de transmissão (timing skew)

Slot PCI


Diversos componentes utilizam o slot PCI como: placas de vídeo antigas, de rede, de áudio, modems, controladoras de E/S, adaptadores seriais (inclusive USB) e paralelos.

Estes slots são os mais usados e uma placa mãe sempre tem mais de 5 entradas PCI






Slot ISA



(Industry Standard Architecture): Que é utilizado para conectar periféricos lentos, como a placa de som e fax modem. (16 bits baixa velocidade).


Os slots ISA são os aparecem antes dos slots PCI, mesmo assim ainda existem placas mãe que são fabricadas com esses slots. Ela é mais lenta que a entrada PCI mas como muita gente ainda tem placas com esse slots ainda fabrica.






Socket do processador

O socket do processador é responsável pela conexão do processador à placa-mãe. Alguns possuem minúsculos “buracos” onde os pinos do processador entram, outros possuem pinos, que fazem o contato com processadores sem pinos. O socket do processador muda de marca para marca de processador, além da diferença de uma marca para a outra, também há a evolução dos processadores.




Socket PGA 370 IntelSocket 478 - IntelSocket 7 - Intel




Slot Memória RAM

Memória de acesso aleatório (RAM) é de dados de hardware de armazenamento na placa-mãe do computador.