organização e arquiteturas de computadores 2009 cap 1
TRANSCRIPT
Janeiro de 2005A MELHOR FACULDADE TECNOLÓGICA DE FORTALEZA.
Prof. AristidesProf. Aristides
Organização Organização
e Arquitetura e Arquitetura
de de
ComputadoreComputadore
ss
Janeiro de 2005
HARDWARE (O Computador)HARDWARE (O Computador)
DADOS (Informações)DADOS (Informações)
SOFTWARE(Programas)SOFTWARE(Programas)
PESSOAS(Usuários)PESSOAS(Usuários)
Evolução dos Computadores; Linguagem de Máquina; Organização Interna, Análise de
Desempenho; Organização de Memória e
Dispositivos de Entrada e Saída.
Janeiro de 2008
BROOKSHEAR, J. Glenn. Ciência da Computação - Uma Visão Abrangente. Porto Alegre: Bookman, 2000.
• Organização e Projeto de Computadores - A Interface Hardware/Software, J L Hennessy, D A Patterson;
• Arquitetura e Organização de Computadores, W Stallings, trad da 5a. Ed, Pearson-Prentice Hall, 2002.
• Bibliografia Complementar:Bibliografia Complementar:
• Bibliografia Básica:Bibliografia Básica:
Capitulo 1:Capitulo 1:
Componentes do Computador.Componentes do Computador.
1.1 1.1 Computador e o Processamento Computador e o Processamento
da Informação.da Informação.
A InformaçãoA InformaçãoEstamos vivendo a Era da Informação.
Mas, afinal, o que é INFORMAÇÃOINFORMAÇÃO?
Claude Shannon (autor de "The Mathematical Theory of Communication") define que informação está presente sempre que um sinal é transmitido de um ponto a outro.
São informações:•palavras,•um quadro (sinais visuais na forma de ondas de luz),•os impulsos elétricos através dos quais nossos olhos transmitem imagens ao cérebro, música, etc.
Além de transmitidas e recebidas, informações podem ser armazenadas e depois reproduzidas: em livros, em discos, em fotografias, e na memória humana. Desta forma, uma informação original pode ser reproduzida (transmitida muitas vezes).
Processamento da informação Processamento da informação -- refere-se ao armazenamento, transmissão, combinação e comparação da informação.
•Alguns agentes contribuíram de forma expressiva para estarmos hoje vivendo a Era da Informação.
•A escrita iniciou este processo, a imprensa foi um passo muito importante, e recentemente as telecomunicações difundem informação instantânea por todo o planeta.
•O mais recente dos agentes fundamentais que propiciaram esta onda de informações é também o mesmo agente da tecnologia que mais nos auxilia a lidar com ela, um agente que nos permite armazenar, classificar, comparar, combinar e exibir informações acuradamente e com velocidade: este agente tecnológico é o COMPUTADORCOMPUTADOR.
1.1.1 Sistema Binário e Hexadecimais1.1.1 Sistema Binário e HexadecimaisRevisão.Revisão.
Número Número
Coisa banal que usamos no nosso dia-a-dia.
O que é número?O que é número?
Bem, pode ser dito que é um símbolo que representa uma coleção de objetos iguais.
Seja, por exemplo, o objeto representado por ☺.
Assim a coleção ☺ ☺ ☺ seria representada por 3
☺, a coleção ☺ ☺ ☺ ☺ ☺ por 5 ☺, etc.
Simples não?
Existem duas maneiras de representar uma informação:
• analogicamente
• digitalmente. 11 11 11 110 0
• Os símbolos elementares são os dígitos ou algarismos e a quantidade deles é a base do sistema de numeração.
• Portanto, um sistema de numeração permite representar qualquer coleção com uma quantidade finita de símbolos elementares.
• E o nosso sistema de uso corrente é o decimal por ter a base 10.
• Mas podemos ter sistemas de qualquer base, desde que maior que 1.
Janeiro de 2005
A - COLEÇÃO B - DECIMAL C - OCTAL D - HEXADECIMAL E - BINÁRIO
0 0 0 0
* 1 1 1 1
** 2 2 2 10
*** 3 3 3 11
**** 4 4 4 100
***** 5 5 5 101
****** 6 6 6 110
******* 7 7 7 111
******** 8 10 8 1000
********* 9 11 9 1001
********** 10 12 A 1010
*********** 11 13 B 1011
************ 12 14 C 1100
************* 13 15 D 1101
************** 14 16 E 1110
*************** 15 17 F 1111
**************** 16 20 10 10000
***************** 17 21 11 10001
****************** 18 22 12 10010
A designação de decimal para este sistema numérico, advém de usar a base 10 e usa os algarismos:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
4631
1 x 100 = 1
3 x 101 = 306 x 102 = 6004 x 103 = 4000
Resultado = 4631
• Sistema numérico decimalSistema numérico decimal
• Como o próprio nome diz, um sistema binário
contém apenas dois elementos ou estados.
• Num sistema numérico isto é expresso como uma
base dois, usando os dígitos 0 e 1.
• Esses dois dígitos têm o mesmo valor básico de 0 e 1
do sistema numérico decimal.
• Sistema numérico binário:Sistema numérico binário:
• Devido a sua simplicidade, microprocessadores usam o sistema binário de numeração para manipular dados;
• Dados binários são representados por dígitos binários chamados "bits“;
• O termo "bit" é derivado da contração de "binary digit". Microprocessadores operam com grupos de "bits" os quais são chamados de palavras;
• O número binário 1 1 1 0 1 1 0 1 contém oito "bits".
10011011
1 x 20 = 11 x 21 = 20 x 22 = 01 x 23 = 81 x 24 = 160 x 25 = 00 x 26 = 01 x 27 = 128
Resultado = 155
10111 = 1 x 24 + 0 x 23 + 1 x 22 + 1 x 21 + 1 x 20 = 23
Palavras binárias recebem nomes especiais conforme a quantidade de bits utilizada pelas mesmas:
• Nibble = 4 bits (24 = 16 variações);
• Byte = 8 bits (28 = 256 variações);
• Word = 16 bits (216 = 65.536 variações);
• Double Word = 32 bits (232 = 4.294.967.296 variações);
• Quad Word = 64 bits (264 = 18.446.744.073.709.600.000 variações).
Janeiro de 2005
Sufixo Quantidade
Kilo (K) 210 = 1.024
Mega (M) 220 = 1.048.576
Giga (G) 230 = 1.073.741.824
Tera (T) 240 = 1.099.511.627.776
Peta (P) 250 = 1.125.899.906.843.624
Exa (E) 260 = 1.152.921.504.607.870.976
Zeta (Z) 270 = 1.180.591.620.718.458.879.424
Yotta (Y) 280 = 1.208.925.819.615.701.892.530.176
O sufixo K (kilo), que, em decimal, representa 1.000 vezes como em Km e Kg), em binário representa 210 vezes (1.024). Logo, 1 Kbyte representa 1.024 bytes, 2 Kbytes = 2.048 bytes.
• Sistema numérico hexadecimalSistema numérico hexadecimal
Desde os primeiros microprocessadores, as palavras binárias de dados manipuladas por eles eram múltiplos de nibble. Com isso uma outra base numérica passou a ser amplamente utilizada, a base 16 (hexadecimal).
“0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F”.
As letras A, B, C, D, E e F correspondem respectivamente aos decimais 10, 11, 12, 13, 14 e 15.
Geralmente, os números hexadecimais são escritos com um prefixo “$” ou “0x”, ou com o sufixo “h”, para realçar o sistema numérico que estamos a utilizar.
Assim, o número hexadecimal A37E, pode ainda ser mais corretamente escrito como $A37E, 0xA37E ou A37Eh.
0000 = 00001 = 10010 = 20011 = 3
0100 = 40101 = 50110 = 60111 = 7
1000 = 81001 = 91010 = A1011 = B
1100 = C1101 = D1110 = E1111 = F
$A37E = 1010001101111110
A 3 7 E ▼ ▼ ▼ ▼
14 x 160 = 14
10 x 163 = 40960 3 x 162 = 768 7 x 161 = 112
Resultado = 41854
Binário 1 1 1 1 1 0 1 0 1 0 1Operação 1x210+1x29+1x28+1x27+1x26+0x25+1x24+0x23+1x22+0x21+1x20
Decimal 1024 +512 + 256 +128 + 64 + 0 + 16 + 0 + 4 + 0 + 1 = 2005
Octal 3 7 2 5Operação 3x83 + 7x82 + 2x81 + 5x80
Decimal 1536 + 448 + 16 + 5 = 2005
Decimal 2 0 0 5Operação 2x103 + 0x102 + 0x101 + 5x100
Decimal 2000 + 0 + 0 + 5 = 2005
Hexadecimal 7 D 5 Operação 7x162 + 13x161 + 5x160
Decimal 1792 + 208 + 5 = 2005
O Número 2005 em:
• Binário
• Octal
• Hexadecimal
1.2 1.2 A Evolução dos ComputadoresA Evolução dos Computadores
• ÁbacoÁbacoA primeira calculadora que se tem notícias é o ábaco, de origem chinesa, do século V a.C. capaz de efetuar operações algébricas elementares.
• Calculadoras mecânicasCalculadoras mecânicasAnteriormente à década de 40 já existiam calculadoras mecânicas, dentre elas, pode se destacar: a calculadora de Charles Babbage
Atribui-se a Blaise Pascal (1623-1662) a construção da primeira calculadora mecânica capaz de fazer somas e subtrações.
• A primeira máquina de verdade foi construída por Wilhelm Schickard (1592-1635);
• somar, subtrair, multiplicar e dividir;
• perdida durante a guerra dos trinta anos;
• Durante muitos anos nada se soube sobre essa máquina, por isso, atribuía-se a Blaise Pascal (1623-1662) a construção da primeira máquina calculadora, que fazia apenas somas e subtrações.
• Em 1801, Joseph Marie Jacquard inventou um tear mecânico dotado de uma leitora de cartões perfurados, os quais representavam os desenhos do tecido;
• portanto um processador das informações relativas à padronagem do tecido;
• o tear funcionava tão bem que este é o primeiro exemplo prático de desemprego provocado pela automação.
TEAR PROGRAMÁVELTEAR PROGRAMÁVEL
• Charles Babbage (1792-1871) concebeu um Computador Analítico dotado de um dispositivo a que chamou de MOINHO (uma máquina de somar com precisão de até 50 casas decimais), e um dispositivo de entrada (inspirado no tear de Jacquard) que leria cartões perfurados contendo não somente números (os dados) mas também INSTRUÇÕES (o que fazer com os dados).
• Imaginou ainda um dispositivo de memória que chamou de ARMAZÉM para guardar os números, um banco com 1000 "registradores" cada qual capaz de armazenar um número de 50 dígitos.
• Finalmente, incluiu um dispositivo impressor para dar saída aos resultados.
As instruções (gravadas em cartões) possíveis de ser implementadas pelo moinho eram:•entrar com um número no armazém•entrar com um número no moinho•mover um número do moinho para o armazém•mover um número do armazém para o moinho•comandar o moinho para executar uma operação•sair com um resultado.
Para construir um dispositivo a partir destas idéias, Babbage contou com a colaboração inestimável da matemática Ada Augusta Byron, Lady Lovelace, filha do poeta Lord Byron. Ada desenvolveu séries de instruções para o calculador analítico, criando conceitos tais como sub-rotinas, loops e saltos condicionais.Babbage é considerado o precursor do computador. Ada é considerada a precursora do software.
Herman Hollerith (1860-1929) também inspirou-se nos cartões de Jacquard para criar uma máquina para acumular e classificar informações - a Tabuladora de Censo.Aplicação: processamento dos dados do censo.
1941- Konrad Zuse (Alemanha) Primeiro computador digital, automático, programável, de propósito geral, completamente funcional (eletromecânico).
John V. Atanasoff / Clifford Berry (EUA)Primeiro protótipo de calculador eletrônico que funcionou nos EUA.Construído entre 1937 e 1942 na Univ. do Estado de at Iowa.
John V. Atanasoff Clifford Berry
ABC Computer ABC Computer (Atanasoff-Berry Computer)(Atanasoff-Berry Computer)
Colossus, desenvolvido na Inglaterra no período de 1939 a 1943 com a intenção de quebrar o código da máquina de criptografia alemã denominada Enigma, que gerava seqüências aleatórias com período de 1019 caracteres.
Deste projeto, tomou parte Alan Turing. Após a guerra, esse projeto foi descontinuado, mas permaneceu secreto até 1973.
1944 - Howard Aiken (Universidade de Harvard - EUA) Primeiro computador eletromecânico automático de grande porte.
Howard Hathaway Aiken
• Na década de 40 surgiram as primeiras válvulas eletrônicas;
• Cada válvula era capaz de representar um bit de informação;
• Os bytes eram compostos por oito válvulas.
• Primeira geração – ENIAC (Eletronic Numerical Integrator and Computer), projetado durante a Segunda Grande Guerra com a finalidade de calcular tiros de artilharia. Quando ele ficou pronto, em 1946, a guerra já havia acabado. Seu peso era de 30 t, consumia 140 kW e tinha 19.000 válvulas.
Primeiro computador eletrônico digital de grande porte. John Mauchly e J. Presper Eckert.
Mauchley e Eckert - ENIAC – 1946:Mauchley e Eckert - ENIAC – 1946:•18mil válvulas, 1500 relés e 6mil chaves;•Marco da história do computador moderno;•Fundaram uma empresa (hoje, Unisys).
Para 2 KB de memória seriam necessárias 16.384 válvulas e para três circuitos 16.384 x 3 = 49.152 válvulas.
Como não se tinha muita confiança nos resultados, devido à constante queima de válvulas, cada cálculo era efetuado por três circuitos diferentes e os resultados comparados.
Comemora-se na Universidade da Pensylvania os cinqüenta anos do ENIAC, e para tal foi montado o ENIAC num chip, com as mesmas funções do original.
CHIP ENIAC desenvolvido para as comemorações dos 50 anos do ENIAC
Surgem os grandes computadores e, por detrás deles, as grandes empresas: IBM, Bourroughs, NCR, etc..
É a era de máquinas grandes, acessadas por uma multidão de terminais burros.
Chegou-se a prever que no mundo haveria cinco grandes computadores, um para cada continente.
Era a visão de homens simples perante máquinas maravilhosas e as vezes fatais, como conta Arthur Clark em "2001“.
A seguir veremos quatro marcos interessantes sobre esse passado.
O termo “bug”, que sempre foi usado pelos engenheiros para indicar pequenas falhas em suas máquinas. Em 1947, os engenheiros que trabalhavam com o Harvard Mark I encontraram uma traça entre seus circuitos, prenderam-na no livro de registro e rotularam-na como o “primeiro bug” encontrado.
O primeiro "bug", 1947
O computador IAS, de 1952, que foi construído segundo orientação de von Newmann e muito influenciou o projeto do IBM 701, o primeiro computador eletrônico comercializado pela IBM.
Computador IAS, 1952.
Janeiro de 2005
O UNIVAC, projetado pelos idealizadores do ENIAC.
Modelo do UNIVAC, 1954
PDP-8, primeiro computador com preço acessível, tendo sido uma máquina da série PDP onde Ken Thompson e Dennis Ritchie desenvolveram o UNIX.
Início do domínio da IBM
Minicomputador PDP-8, 1965Barramento únicoSurgimento dos minicomputadores
• Segunda GeraçãoSegunda Geração
• Foi em 1947 que surgiu o primeiro transistor,
produzido pela Bell Telephone Laboratories; • Os transistores eram e são muito mais confiáveis que as
válvulas;• São feitos de cristal de silício, o elemento mais
abundante na Terra;• Em 1954 a Texas Instruments iniciou a produção
comercial de transistores;
• Da mesma forma os transistores, nos
circuitos digitais foram utilizados para
representar os dois estados:
ligado/desligado, ou seja, zero/um;
• Nos anos 60 e 70 devido ao emprego do
transistor nos circuitos, se deu a
explosão, o boom do uso de
computadores. Ocupavam menos
espaço e tinham um custo satisfatório.
Primeiro projeto de transistor
• Em 1968 chegou o primeiro computador da UNICAMP, um IBM 1130, com 16KB de memória e um disco de 1 MB, foi um acontecimento, ele trabalhava com cartões perfurados. Rodava programas em ASSEMBLER, Fortran, e PL1;
• Para dar partida, se utilizava da console e cartões perfurados especialmente codificados, denominados “ cold start cold start ”, funções executadas hoje pela ROM e o BIOS.
• Terceira geraçãoTerceira geração
• Nos anos 60, iniciou-se o encapsulamento de mais de um transistor num mesmo receptáculo, surgiu assim o Circuito Integrado - CI, os primeiros contavam com cerca de 8 a 10 transistores por capsula ( chip ).
Em novembro de 1971, a Intel introduziu o primeiro microprocessador comercial, o 4004, inventado por três engenheiros da Intel. Primitivo aos padrões de hoje, ele continha somente 2.300 transistores e executava cerca de 60.000 cálculos por segundo. Nos dias de hoje, vinte e sete anos depois, um microprocessador é o produto mais complexo produzido em massa, com mais de 5.5 milhões de transistores, executando centenas de milhões de cálculos por segundo.
• Quarta geraçãoQuarta geração
Já na área dos microcomputadores, perguntamo-nos: qual foi o primeiro ? Em 1975 a Revista “Popular Electronics” apresentou o projeto e anunciou a venda do “kit” do primeiro microcomputador. Era o Altair 8800, baseado no microprocessador 8008 da Intel. Foi para esse microcomputador que a dupla Paul Allen e Bill Gates vendeu um de seus primeiros produtos: um interpretador BasicBasic.
O Altair 8800 aberto.
Integração de Circuitos em Escala muito Alta (1980 - ?)•Circuitos integrados VLSI;•Milhões de transistores em um único chip;•Surgimento dos microcomputadores;•Apple e Apple II – Machintosh;•IBM PC;•Início da computação pessoal.
• Quinta GeraçãoQuinta Geração
Ainda em estudo, poderá utilizar Biochips.
Os computadores serão então capazes de entender a linguagem
natural do homem, e a Inteligência Artificial será a fonte de
diversos avanços.
Janeiro de 2005
Quadro Comparativo de Características de microprocessadores
Microprocessador Data de Lançamento
Palavra de Dados
Endereçamento Máximo de MP
Intel 4004 1971 4 1 K Bytes
Intel 8080 1973 8 64 K Bytes
Intel 8088 1980 16 1 K Bytes
Intel 80286 1982 16 16 M Bytes
Intel 80386 1985 32 4 G Bytes
Intel 80486 1989 32 4 G Bytes
Intel Pentium 1993 32 4 G Bytes
Motorola MC 6800 1974 8 64K Bytes
MC 68000 1979 32 16 M bytes
MC 68010 1983 32 16 M Bytes
MC 68020 1984 32 4 G Bytes
MC 60030 1987 32 4G bytes
MC 68040 1989 32 4 G bytes
Zilog Z80 1974 8 64 K bytes
Zilog Z80 1979 16 1M Bytes
Leitura Recomendada:Leitura Recomendada:
Tanembaum – Capítulo 1;
Stallings – Capítulo 1 e 2;
Henessy e Patterson – Capítulo 1.
1.3 1.3 Modelo Hipotético de um Modelo Hipotético de um
Computador.Computador.
MODELO HIPOTÉTICO DE UM COMPUTADORMODELO HIPOTÉTICO DE UM COMPUTADOR
• Operador - só faz o que for ordenado, não toma
decisões;
• Conjunto de escaninhos - com capacidade para um
cartão cada;
• Máquina de calcular - executa as operações;
• Caixa de entrada - para receber cartões de fora;
• Máquina de escrever - para dar saída às
informações / resultados.
Para que este modelo funcione, deve existir em cada cartão uma INSTRUÇÃO. O operador segue de escaninho em escaninho, fazendo exatamente o que está escrito em cada cartão, até encontrar um cartão contendo uma instrução que manda que ele PAREPARE.
Conjunto de escaninhos
Caixa de entrada
Máquina de calcular
Máquina de escrever
EXERCÍCIO 1:EXERCÍCIO 1:
Obs.: Utilizaremos a notação (E10) significando "o conteúdo do escaninho E10", isto é, o valor que está agora armazenado no escaninho E10 (ou, mais formalmente, o valor corrente daquela posição de memória).E1 : armazene o valor 1 no E10E2 : leia o conteúdo de E11 (externo - a caixa de entrada)E3 : multiplique E10 com E11 (usando a máquina de calcular) e armazene o resultado em E10E4 : subtraia o valor 1 de E11E5 : se o valor de E11 > 0, volte para E3, senão continueE6 : imprima o conteúdo de E10 (usando a máquina de escrever)E7 : PAREE8 :E9:A partir de um sinal externo do tipo COMECECOMECE, este modelo inicia do E1 daí por diante prossegue até E8 (o final).
Resolva o exercício; o que faz este algorítmo?
ALGORITMOALGORITMO E1E10 0
E1E111
AÇÃOAÇÃO
E1- armazene o valor 1 no E10E1- armazene o valor 1 no E10 11 -- --
E2 - leia (E11) (caixa de entrada - p.ex: 4)E2 - leia (E11) (caixa de entrada - p.ex: 4) -- 44 --
E3 - (E10) x (E11); armazene resultado em E3 - (E10) x (E11); armazene resultado em E10E10
44 -- --
E4 : subtraia o valor 1 de (E11)E4 : subtraia o valor 1 de (E11) -- 33 --
E5 : se (E11) > 0, volte para E3, senão E5 : se (E11) > 0, volte para E3, senão continuecontinue
-- -- Volta p/E3Volta p/E3
E3E3 1212 -- --
E4E4 -- 22 --
E5E5 -- -- Volta p/E3Volta p/E3
E3E3 2424 -- --
E4E4 -- 11 --
E5E5 -- -- Volta p/E3Volta p/E3
E3E3 2424 -- --
E4E4 -- 00 --
E5E5 -- -- Segue Segue p/E6p/E6
E6 : imprima o conteúdo de E10E6 : imprima o conteúdo de E10 -- -- Imprime Imprime 2424
E7 : PAREE7 : PARE -- -- PARAPARA
Este programa calcula o FATORIAL de um número.Este programa calcula o FATORIAL de um número.
EXERCÍCIO 2:EXERCÍCIO 2:
No mesmo algoritmo acima, avalie as conseqüências das seguintes alterações:a) E5 : se o valor de E11 > 0, volte para E3,b) E5 : se o valor de E11 >= 0, volte para E3; senão continue,c) E7 : XXX-----------------------------------------------------------------------------------Num modelo real - o COMPUTADOR- só faz aquilo que ele recebe instrução para realizar.
Um computador funciona a partir de um programa que o instrui sobre o que deve fazer.
"O problema dos computadores é que eles fazem exatamente "O problema dos computadores é que eles fazem exatamente aquilo que você os instruiu a fazer e não aquilo que você aquilo que você os instruiu a fazer e não aquilo que você realmente queria que eles fizessem."realmente queria que eles fizessem."
Um programador frustrado.Um programador frustrado.
Resposta - Exercício 2:Resposta - Exercício 2:
a) E5 : se o valor de E11 > 0, volte para E3, (eliminar "senão continue"), o modelo não saberia o que fazer quando o valor de E11 chegasse a zero.
b) E5 : se o valor de E11 >= 0, volte para E3,
Haveria mais um passo no loop, multiplicando o conteúdo de E10 por 0 (zero) e o resultado do processamento do algorítmo seria SEMPRE ZERO.
c) E7 : XXX
Quando o modelo chegasse até E7, poderia encontrar qualquer coisa. No caso de encontrar código válido (por exemplo, o "lixo" deixado por um programa anterior) com algum significado, ele executaria a instrução (fosse esta o que quer que fosse), chegando a um resultado imprevisível (poderia dar um resultado errado, poderia travar, poderia entrar em um loop, etc.).
Caso o conteúdo de E8 fosse um valor sem significado (por exemplo, um dado), o modelo não saberia o que fazer e pararia.
Portanto, num modelo real - o COMPUTADOR- só faz aquilo que ele recebe instrução para realizar. Um computador funciona a partir de um programa que o instrui sobre o que deve fazer.
PROGRAMAPROGRAMA é uma seqüência de instruções (no modelo hipotético, os cartões);O programa deve ser escrito numa LINGUAGEM DE LINGUAGEM DE PROGRAMAÇÃOPROGRAMAÇÃO - as linguagens naturais têm ambigüidades e podem dar margem a diferentes interpretações;HARDWAREHARDWARE (significa originalmente "ferragens“, em inglês - hardware store significa originalmente "loja de ferragens") é o conjunto de dispositivos físicos do computador, o equipamento;SOFTWARE SOFTWARE (em analogia a hardware, a parte "soft", macia, são os programas que permitem que o equipamento saiba o que realizar, que ele funcione;Depois surgiram outros termos, aproveitando as mesmas analogias, tais como firmwarefirmware (indicando programação gravada em dispositivos físicos e não modificável pelo usuário);PROCESSAMENTO AUTOMÁTICO DE DADOS:PROCESSAMENTO AUTOMÁTICO DE DADOS:Um computador é capaz de executar um programa sozinho, desde que o programa seja previamente armazenado nele, de forma que ele tenha as indicações de onde procurar as instruções.
MEMÓRIAMEMÓRIA – (os escaninhos) - Dispositivo físico para armazenar programas e dados;PROCESSADORPROCESSADOR – (operador e máquina de calcular) - Dispositivo que realiza o processamento;DISPOSITIVOS DE ENTRADA E SAÍDA DISPOSITIVOS DE ENTRADA E SAÍDA – (caixa de entrada, caixa de saída, máquina de escrever) - Formas de comunicação entre o usuário e o computador;SISTEMASISTEMA - Um conjunto interligado de programas (e, eventualmente, também de equipamentos);LINGUAGEM DE MÁQUINA LINGUAGEM DE MÁQUINA - é a linguagem que o computador entende, cujo "alfabeto" é composto apenas de "11's" e "00's" (linguagem binária);LINGUAGEM DE PROGRAMAÇÃO LINGUAGEM DE PROGRAMAÇÃO - é uma linguagem formal, utilizando termos que se aproximam da linguagem humana, que pode ser traduzida por programas especiais em linguagem de máquina.
1.4. 1.4. Componentes do ComputadorComponentes do Computador
A arquitetura básica de um computador moderno segue ainda de forma geral os conceitos estabelecidos pelo Professor da Universidade de Princeton, John Von Neumann (1903-1957), um dos construtores do EDVAC.
Von Neumann propôs construir computadores que:
1.Codificassem instruções que pudessem ser armazenadas na memória e sugeriu que usassem cadeias de uns e zeros (binário) para codificá-los;2.Armazenassem na memória as instruções e todas as informações que fossem necessárias para a execução da tarefa desejada;3.Ao processarem o programa, as instruções fossem buscadas diretamente na memória.
Este é o conceito de PROGRAMA ARMAZENADO.PROGRAMA ARMAZENADO.
MEMORIA MEMORIA
PRINCIPALPRINCIPAL
DISPOSITIVOS DISPOSITIVOS DE ENTRADA DE ENTRADA
E SAIDAE SAIDA
UCUC
DMA – deixa a UCP disponível para outro processamento em paralelo.
UCPUCP
ULAULA
Troca de informações (Troca de informações (dados ou instruçõesdados ou instruções) – fluxo bidirecional.) – fluxo bidirecional.
Sinais de controle Sinais de controle – fluxo unidirecional.– fluxo unidirecional.
Diagrama em bloco de um computadorDiagrama em bloco de um computador
• Toda a lógica dos computadores é construída a partir de chaves liga / desliga.
• Inicialmente foram usados chaves mecânicas, depois relés eletro-mecânicos - o Z-1 construído por Konrad Zuse em 1941 e o MARK 1 de Howard Aiken em 1944 (capazes de executar até 5 chaveamentos por segundo).
• Posteriormente, foram substituídos pelas válvulas no ENIAC em 1946 (capazes de 100.000 de chaveamentos por segundo), e finalmente pelos transistores (semicondutores) inventados em Stanford em 1947.
• Os circuitos integrados (ou CI's) são encapsulamentos compactos (LSI - Large Scale Integration e VLSI - Very Large Scale Integration) de circuitos constituídos de minúsculos transistores.
Comentario:Comentario:
UNIDADE CENTRAL DE PROCESSAMENTO (UCP):UNIDADE CENTRAL DE PROCESSAMENTO (UCP):
A Unidade Central de Processamento é a responsável pelo processamento e execução de programas armazenados na MPMP.Funções:Funções:Executar instruções - realizar aquilo que a instrução determina.Realizar o controle das operações no computador.
Formada de duas unidades:Formada de duas unidades:
•Unidade Lógica e Aritmética (ULA) Unidade Lógica e Aritmética (ULA) - responsável pela realização das operações lógicas (E, OU, etc) e aritméticas (somar, etc);
•Unidade de Controle (UC) Unidade de Controle (UC) - envia sinais de controle para toda a máquina, de forma que todos os circuitos e dispositivos funcionem adequada e sincronizadamente.
Representação gráfica da UCP com seus quatro componentes principais destacados. A unidade de entrada e saída é formada, nesta representação, pelos registradores REM e RDM e por suas ligações com os demais elementos (logo veremos as funções de cada um deles).
MEMÓRIA PRINCIPAL (MP):MEMÓRIA PRINCIPAL (MP):
A Memória Principal tem por finalidade armazenar toda a informação que é manipulada pelo computador - programas e dadosprogramas e dados. .
Para que um programa possa ser manipulado pela máquina, ele primeiro precisa estar armazenado na memória principalmemória principal.
OBS.: os circuitos da Memória Principal não são combinatoriais, eles tem capacidade de armazenar bits. Os circuitos usados são do tipo "flip-flop", conforme veremos em Circuitos Lógicos.
DISPOSITIVOS DE ENTRADA E SAÍDA (E/S):DISPOSITIVOS DE ENTRADA E SAÍDA (E/S):
Tem por finalidade permitir a comunicação entre o usuário e o computador.
OBS.: Para executar um programa, bastaria UCP e MP; no entanto, sem os dispositivos de E/S não haveria a comunicação entre o usuário e o computador.
PROCESSAMENTO AUTOMÁTICO DE DADOS:PROCESSAMENTO AUTOMÁTICO DE DADOS:
O programas são armazenados na MP e a UCP é capaz de executar um processamento inteiro sem a intervenção do usuário, mesmo que haja vários desvios no programa.
PASSOS:PASSOS:•armazenar o programa na MP;
•indicar à UCP onde o programa está armazenado.
Estas operações são realizadas pelo SISTEMA OPERACIONAL:SISTEMA OPERACIONAL:
Aplicativo AAplicativo A Aplicativo BAplicativo B Aplicativo CAplicativo C
Drivers de DispositivosDrivers de Dispositivos
HARDWAREHARDWARE
GerenciamentoGerenciamento de Processosde Processos
E/S E/S ArquivosArquivos
GerenciamentoGerenciamento de Memoriade Memoria
E/S E/S DispositivosDispositivos
Sistema Operacional dá suporte aos aplicativos.Sistema Operacional dá suporte aos aplicativos.(Sustenta o ambiente no qual os aplicativos são executados).
1.5 1.5 MemóriaMemória
• MemóriaMemória
• Local onde os dados e os programas são armazenados (na forma de bits) para imediata execução (memória Principal - MP) ou para uso posterior (memória secundária - MS);
• A memória é dividida em pequenas áreas, chamadas endereços;
• Armazenar consiste em guardar uma informação (ou um conjunto de informações) na memória e a operação é denominada escrita ou gravação (“ write”);
• Recuperar uma informação (ou um conjunto de informações) da memória é copiá-la para uma outra posição na memória ou para outro componente do sistema. Esta operação é denominada leitura (‘read’).
No sistema de computador existe uma variedade grande de tipos de memória, cada uma com sua finalidade e característica especificas, mas que interligam e se integram para o funcionamento do sistema.
Registradores
Cache
Principal
Secundária
Custo alto Velocidade alta
Baixa capacidade
Custo baixo Velocidade baixaAlta capacidade
Pirâmide Hierárquica de tipos de memória
Discos
Fitas
• Os registradores são unidades de memória que
armazenam, temporariamente, na UCP, os dados a
serem manipulados por uma instrução ou seus
resultados parciais ou finais de um processamento;
• Sendo um resultado parcial, armazenado em um
registrador, este será transferido para a memória
principal (externa à UCP).
• RegistradoresRegistradores
• volátil - perde o conteúdo armazenado quando não energizada. (RAM – Random Access Memory).
Tipos de RAM
a) Estática - a gravação é estável, só se alterando através de operações de escrita (consome mais energia);
b) Dinâmica - a gravação do bit "1" se descarrega com o tempo, precisando ser "refrescada" periodicamente (ciclo de refresh).
• Memória PrincipalA memória principal é formada por dois tipos:RAM (Randomic Acess Memory) ROM (Read Only Memory)
• Tipos de Memória
FPM x EDO x SDRAM
• não volátil - não perde o conteúdo armazenado. (ROM, PROM, EPROM, EEPROM)
c) ROM - Read Only Memory (gravada de fábrica - permanente);d) PROM - Programable ROM (pode ser gravada uma única vez
pelo usuário, através de equipamentos especiais);e) EPROM - Erasable PROM (pode ser apagada através de raios
ultravioletas);f) EEPROM - Electrical EPROM (pode ser apagada através de
sinais elétricos);g) Memória Flash - é uma memória que pode ser utilizada como
apenas de leitura ou como de leitura e gravação, dependendo do driver utilizado. Geralmente é utilizada como um disco em pastilhas (chips), SSD - Solid State Disk.
• ROM - ROM - Read Only MemoryRead Only Memory
• Quando ligamos um microcomputador, podemos ver que sempre é executado o teste e a contagem de memória;
• Este programa pode ser armazenado em ROM, que é uma memória de apenas leitura onde os dados não são apagados quando desligamos a alimentação;
• O programa armazenado em ROM, recebe o nome de firmware que é um programa inalterável e que será sempre executado.
Na ROM do microcomputador há basicamente três Na ROM do microcomputador há basicamente três firmwares:firmwares:
1. BIOS (Basic Input/Output System) – “ensina” o processador a trabalhar com os periféricos mais básicos do sistema, como ckt de apoio, unidade de disquete e o vídeo em modo texto;
2. POST (Power-On Self-Test – Autoteste ao Ligar) – sempre que o micro é ligado o POST executa as seguintes rotinas:
• Identifica a configuração instalada;
• Inicializa os chipset da placa mãe;
• Inicializa o vídeo;
• Testa a memória;
• Testa o teclado;
• Carrega o sistema operacional para a memória;
• Entrega o controle do microprocessador ao sistema operacional.
3. Setup – programa de configuração de hardware do microcomputador.
Atualmente há duas tecnologias básicas para construção Atualmente há duas tecnologias básicas para construção de circuitos de memória ROM:de circuitos de memória ROM:
• Mask ROM Mask ROM – é programada de fábrica e não há
como reprograma-la, a não ser trocando o chip. – é
usada até o lançamento das primeiras placa-mãe
soquete 7;
• Flash ROM Flash ROM – tecnologia mais moderna que permite
reprogramação através de firmware. – upgrade de
BIOS.
• A memória secundária , também chamada
de auxiliar ou memória de massa, tem a
finalidade de armazenar de forma
permanente as informações (dados e
programas) necessários ao processamento.
• A memória secundária é eletromecânica e
por esta razão, seu tempo de acesso é
relativamente alto, se comparado com outros
tipos de memória.
• Memória SecundáriaMemória Secundária
• Uso da Memória.Uso da Memória.
• O 8088 só podia enxergar 1 MB de memória que é
dividida em áreas menores de 64KB. – 64KB x 16 =
1 MB.
• Por motivos de compatibilidade, os micros atuais
mantém a mesma estrutura dos micros antigos no
primeiro megabyte de memória. Essa área é
dividida da seguinte forma:
Área de Memória Endereços Conteúdo
0 a 640 KB 00000h a 9FFFFh
Banco 0 ao banco 9
Memória convencional
640 a 704 KB A0000h a AFFFFh Banco 10: Mem. De vídeo
704 a 768 KB B0000h a BFFFFh Banco 11: Mem. De vídeo
768 a 832 KB C0000h a CFFFFh Banco 12: ROM da interface de vídeo
832 a 896 KB D0000h a DFFFFh Banco 13: Firmware de interfaces
896 a 960 KB E0000h a EFFFFh Banco 14: Firmware de interfaces
960 a 1.024 KB F0000h a FFFFFh Banco 15: BIOS (e Basic residente, caso haja)
• Durante a execução de uma instrução, a UCP realiza um ou mais acessos à memória principal, para buscar a instrução e transferi-la a um dos registradores, a fim de transferir os dados para a ULA (Unidade Lógica e Aritmética) ou para armazenar o resultado de operação que se encontra em um registrador;
• A CACHE é uma memória construída com tecnologia similar à da UCP, consequentemente, com velocidade de transferência compatível, reduzindo consideravelmente o tempo de espera da UCP por instruções e dados.
• Memória CacheMemória Cache
• Tecnologia de Memória para VídeoTecnologia de Memória para Vídeo
O controlador de vídeo lê o conteúdo da memória de vídeo
(presente na placa de vídeo), convertendo os dados armazenados
em sinais que sejam compreensíveis pelo monitor.
Novas tecnologias relacionadas a memória de vídeo, surgiram afim
de aumentar o desempenho de interface de vídeo.
Para armazenar a imagem a ser exibida no vídeo, a placa utiliza-se
de um tipo especial de memória, chamada de memória de vídeo.
O conteúdo desta memória é constantemente atualizado pela placa
de vídeo, seguindo as ordens transmitidas pelo processador.
Barramento PCIBarramento PCIControlador
de vídeo
Memória Memória de vídeode vídeo
Funcionamento da placa de vídeoFuncionamento da placa de vídeo
• Arquitetura Unificada de Memória (UMA – Arquitetura Unificada de Memória (UMA – Unified Memory Unified Memory ArchitetureArchiteture))
A interface de vídeo utiliza parte da memória RAM do micro, com a finalidade de baratear o micro e aumentar o desempenho do vídeo.
Depende do chipset da placa-mãe e geralmente é onboard.
Em alguns casos o controlador de vídeo está dentro do processador – diminui custos. Ex.: Cyrix MediaGX;
Em outros, o processador de vídeo está integrado no chipset. – SIS 5598 (TX PRO II).
• Tipos de memórias de vídeoTipos de memórias de vídeo
As placas de vídeo utilizam memória RAM para
armazenar as imagens que serão mostradas no monitor.
Apesar de poderem usar memórias FPM, EDO ou
SDRAM comuns, o uso de memórias otimizadas para
vídeo, aumenta bastante sua performance.
Os principais tipos de memória de vídeo usados
atualmente são o VRAM, SGRAM e WRAM.
• VRAM (Vídeo RAM)VRAM (Vídeo RAM)
A VRAM é um tipo de memória especialmente desenvolvido para o uso em placas de vídeo. Sua principal vantagem é que pode ser acessada simultaneamente por dois componentes. Isso permite que a placa de vídeo use os dados contidos na VRAM para atualizar a exibição das imagens, ao mesmo tempo que o processador inclui novos dados.
O uso de memórias VRAM aumenta perceptivelmente o desempenho da placa, o problema é que este tipo de memória é bem mais caro que as memórias convencionais, fazendo com que muitos fabricantes optem por utilizar memórias EDO comuns em seus modelos de placas de vídeo mais baratas.
Barramento PCI
Controlador de vídeo
Memória VRAM
Funcionamento de uma placa de vídeo com VRAMFuncionamento de uma placa de vídeo com VRAM
• WRAM (Windows RAM)WRAM (Windows RAM)
Como o nome sugere, a Windows RAM é um tipo de memória de vídeo otimizada para sistemas gráficos como o Windows.
Aperfeiçoamento sobre a VRAM criado pela Samsung, que possui um desempenho cerca de 50% superior (segundo a Samsung).
Apesar da melhora no desempenho, a WRAM é mais barata que as memórias VRAM comuns, tendo obtido uma enorme aceitação no mercado.
• Memória Rambus (RDRAM)Memória Rambus (RDRAM)
Criada pela empresa Rambus;
A memória é conectada ao controlador de vídeo através de um barramento estreito, porém rápido (Rambus);
Este barramento de 8 bits, consegue transmitir dois bytes por pulso de clock: um na ativação do clock e outro na desativação;
O clock é totalmente independente do barramento PCI e tem freqüência de 250 MHz;
Segundo a empresa, essa tecnologia é dez vezes mais rápida que as memórias tradicionais de vídeo e de três a cinco vezes mais rápida que a VRAM.
Barramento PCI Barramento RAMBUSControlador de vídeo
Memória de vídeo
Funcionamento de uma placa de vídeo Rambus.Funcionamento de uma placa de vídeo Rambus.
• SGRAM (Synchronous Graphic Ramdom Access Memory)SGRAM (Synchronous Graphic Ramdom Access Memory)
A SGRAM é um tipo de memória SDRAM otimizada para o uso
em placas de vídeo, que apesar de possuir apenas uma entrada de
dados, pode ser dividida em duas páginas de memória. Como
ambas as páginas podem ser acessadas ao mesmo tempo,
simulamos uma dupla entrada de dados.
Atualmente as memórias SGRAM vêm sendo cada vez mais usadas
em placas de vídeo de baixo e médio desempenho, pois apesar do
desempenho levemente inferior às memórias VRAM são muito
mais baratas, sendo substitutas ideais para as memórias EDO.
1.5.11.5.1Memória PrincipalMemória Principal
•Memória Principal é a parte do computador onde programas e dados são armazenados para processamento;
• A informação permanece na memória principal apenas enquanto for necessário para seu emprego pela UCP, sendo então a área de MP ocupada pela informação pode ser liberada para ser posteriormente sobregravada por outra informação;
• Quem controla a utilização da memória principal é o Sistema Sistema OperacionalOperacional.
Estrutura da Memória Principal - CÉLULAS E ENDEREÇOSEstrutura da Memória Principal - CÉLULAS E ENDEREÇOS
A memória precisa ter uma organização que permita ao computador guardar e recuperar informações quando necessário. Portanto, não basta transferir informações para a memória. É preciso ter como encontrar essa informação mais tarde, quando ela for necessária, e para isso é preciso haver um mecanismo que registre exatamente onde a informação foi.
CélulaCélula é a unidade de armazenamento do computador. A memória principal é organizada em células. Célula é a menor unidade da memória que pode ser endereçada e tem um tamanho fixo (para cada máquina). As memórias são compostas de um determinado número de células ou posições. Cada célula é composta de um determinado número de bits. Todas as células de um dado computador tem o mesmo tamanho, isto é, todas as células daquele computador terão o mesmo número de bits.
Cada célula é identificada por um endereço único. As células são numeradas seqüencialmente, uma a uma, de 0 a (N-1), chamado o endereço da célula.
EndereçoEndereço é o localizador da célula, que permite identificar univocamente uma célula. Assim, cada célula pode ser identificada pelo seu endereço.
Unidade de transferência Unidade de transferência é a quantidade de bits que é transferida da memória em uma única operação de leitura ou transferida para a memória em uma única operação de escrita. O tamanho da célula poderia ser igual ao da palavra, e também à unidade de transferência, porém por razões técnicas e de custo, são freqüentemente diferentes.
PalavraPalavra é a unidade de processamento da UCP. Uma palavra deve representar um dado ou uma instrução, que poderia ser processada, armazenada ou transferida em uma única operação.
Janeiro de 2005
AcessoAcesso - ação de armazenar ou recuperar uma informação em uma memória;
No end. 5h temos o armazenamentode um dado de 8 bits
Numa memória de 1 MB, tem1 M endereços que armazenam1 byte cada.Como 1 M = 1.048.576 teremos essa quantidade de endereçosPara armazenarmos um dadoDe 8 bits em cada um.
Número de bits para representar um Número de bits para representar um endereço:endereço:Expressão geral MP com endereços de 0 a (N-1):
N = 2x logo:x = log2 N
0
1
2
3
N-1
Nº
de
end
ereç
os
Estrutura da MPEstrutura da MP
sendo x = nº de bits para representar um endereço e N o número de endereços.
CAPACIDADE DA MEMÓRIA PRINCIPALCAPACIDADE DA MEMÓRIA PRINCIPALA capacidade da MP em bits é igual ao produto do nº de células pelo total de bits por célula.
T = N x MT = capacidade da memória em bitsN = nº de endereços (N=2x sendo x = nº de bits do endereço)M = nº de bits de cada célula
10111101
10110101
10110001
10110111
1.61.6Unidade Central de ProcessamentoUnidade Central de Processamento
A Unidade Central de Processamento - UCP Unidade Central de Processamento - UCP (em inglês, Central Processing Unity - CPU) é a responsável pelo processamento e execução dos programas armazenados na MP. As funções da UCP são: executar as instruções e controlar as operações no computador.A UCP é composta de duas partes:UAL - Unidade Aritmética e Lógica UAL - Unidade Aritmética e Lógica - tem por função a efetiva execução das instruções
ACCACC
REGsREGs
Unidade de Unidade de ControleControle
ULAULA
Barramento InternoBarramento Interno
Diagrama Esquemático da ULADiagrama Esquemático da ULA
Barramento de ControleBarramento de Controle
UC - Unidade de Controle UC - Unidade de Controle - tem por funções a busca, interpretação e controle de execução das instruções, e o controle dos demais componentes do computador
ACCACC
REGsREGs
UCUCULAULA
CLOCKCLOCK
RDMRDM
REMREM
CICI
RIRI
DECODER DECODER INST.INST.
MemóriaMemóriaPrincipalPrincipal
Unidade Lógica e Aritmética
Diagrama Funcional da UCPDiagrama Funcional da UCP
Unidade de Controle
Barramento de DadosBarramento de Dados
Barramento de EndereçosBarramento de Endereços
Bar
ram
ento
In
tern
oB
arra
men
to I
nte
rno
Registradores Importantes na UCPRegistradores Importantes na UCP
• Na UCUC - CI - Contador de Instruções CI - Contador de Instruções (em inglês: PC - Program Counter) - armazena o endereço da próxima instrução a ser executada - tem sempre o mesmo tamanho do REM.
• Na UCUC - RI - Registrador de Instrução RI - Registrador de Instrução (em inglês: IR - Instruction Register) - armazena a instrução a ser executada.
• Na ULAULA - ACC Acumulador ACC Acumulador (em inglês:ACC - Accumulator) - armazena os dados (de entrada e resultados) para as operações na ULA; o acumulador é um dos principais elementos que definem o tamanho da palavra do computador - o tamanho da palavra é igual ao tamanho do acumulador.
InstruçõesInstruções
• Para que um programa possa ser executado por um computador, ele precisa ser constituído de uma série de instruções de máquina e estar armazenado em células sucessivas na memória principal;
• A UCP é responsável pela execução das instruções que estão na memória;
• Quem executa um programa é o hardware; • Programa em linguagem de máquina (uma seqüência de
instruções de máquina em código binário);• A linguagem de máquina é composta de códigos binários,
representando instruções, endereços e dados e está totalmente vinculada ao conjunto ("set") de instruções da máquina.
• O programa elaborado pelo programador (o código-fonte, composto de instruções complexas) precisa ser "traduzido" em pequenas operações elementares executáveis pelo hardware.
• Cada uma das instruções tem um código binário associado, que é o código da operação.
Formato geral de uma InstruçãoFormato geral de uma Instrução
Código de operação (OPCODE)Código de operação (OPCODE) Operando (s) (OP)Operando (s) (OP)
OPCODE OPCODE - identifica a operação a ser realizada pelo processador. É o campo da instrução cuja valor binário identifica a operação a ser realizada. Este código é a entrada no decodificador de instruções na unidade de controle.OP - é ou são o(s) campo(s) da instrução cujo valor binário sinaliza a localização do dado (ou é o próprio dado) que será manipulado (processado) pela instrução durante a operação. Em geral, um operando identifica o endereço de memória onde está contido o dado que será manipulado, ou pode conter o endereço onde o resultado da operação será armazenado. Finalmente, um operando pode também indicar um Registrador (que conterá o dado propriamente dito ou um endereço de memória onde está armazenado o dado). Os operandos fornecem os dados da instrução.Obs: Existem instruções que não tem operando. Ex.: Instrução HALT (PAREPARE).
Conjunto de InstruçõesConjunto de Instruções
Quando se projeta um hardware, define-se o seu conjunto ("set") de instruções - o conjunto de instruções elementares que o hardware é capaz de executar. O projeto de um processador é centrado no seu conjunto ("set") de instruções. Quanto menor e mais simples for este conjunto de instruções, mais rápido pode ser o ciclo de tempo do processador.
Um processador precisa possuir instruções para:•operações matemáticas:1. aritméticas: +, - , × , ÷ ...;2. lógicas: and, or, xor, ...;3. de complemento;4. de deslocamento.•operações de movimentação de dados: (memória <--> UCP, reg <--> reg);•operações de entrada e saída (R/W em dispositivos de E/S);•operações de controle (desvio de seqüência de execução, parada).
As estratégias de implementação de processadores são:As estratégias de implementação de processadores são:
•CISC - Complex Instruction Set Computer Exemplo: PC, Macintosh; um conjunto de instruções maior e mais complexo, implicando num processador mais complexo, com ciclo de processamento mais lento; ou
•RISC - Reduced Instruction Set Computer Exemplo: Power PC, Alpha, Sparc; um conjunto de instruções menor e mais simples, implicando num processador mais simples, com ciclo de processamento rápido.
Obs.: adotaremos o termo instrução para as instruções de máquina ou em linguagem Assembly e comando para linguagens de alto nível.
O projeto de um processador poderia ser resumido em:O projeto de um processador poderia ser resumido em:
a) Definir o conjunto de instruções (todas as possíveis instruções que o processador poderá executar):
• definir formato e tamanho das instruções;• definir as operações elementares.
b) Projetar os componentes do processador (UAL, UC, registradores, barramentos, ...)
Duas estratégias são possíveis na construção do decodificador de Duas estratégias são possíveis na construção do decodificador de instruções da UC:instruções da UC:
•wired logic - as instruções são todas implementadas em circuito);•Microcódigo - apenas um grupo básico de instruções são implementadas em circuitos; as demais são “montadas” através de microprogramas que usam as instruções básicas.
Ciclo de InstruçõesCiclo de Instruções
As instruções são executadas sequencialmente uma a uma. (a não ser pela ocorrência de um desvio).O CI indica a seqüência de execução, isto é, o CI controla o fluxo de execução das instruções.
Descrição do processamento de uma instrução na UCP:
•a UC lê o endereço da próxima instrução no CI;•a UC transfere o endereço da próxima instrução, através do barramento interno, para o REM.
INICIO
TÉRMIO
Buscar próximaInstrução
Interpretar aInstrução
Buscar os Dados
Executar aInstrução
Ciclo de InstruçõesCiclo de Instruções
COMUNICAÇÃO ENTRE MEMÓRIA PRINCIPAL E UCPCOMUNICAÇÃO ENTRE MEMÓRIA PRINCIPAL E UCP
BARRAMENTOSBARRAMENTOS
•Os componentes dos computadores se comunicam através de barramentos;
•Barramento é um conjunto de condutores elétricos que interligam os componentes do computador e de circuitos eletrônicos que controlam o fluxo dos bits;
•Para um dado ser transportado de um componente a outro, é preciso emitir os sinais de controle necessários para o componente-origem colocar o dado no barramento e para o componente-destino ler o dado do barramento. Como um dado é composto por bits (geralmente um ou mais bytes) o barramento deverá ter tantas linhas condutoras quanto forem os bits a serem transportados de cada vez.
REGISTRADORES UTILIZADOSREGISTRADORES UTILIZADOS
A comunicação entre MP e UCP usa dois registradores da UCP:
•Registrador de Endereços de Memória - REM ou, em inglês, Memory Address Register (MAR); •Registrador de Dados da Memória - RDM ou, em inglês, Memory Buffer Register (MBR).
Barramentos UCP / MP:Barramentos UCP / MP:
•Barramento de endereços – unidirecional (só a UCP envia dados - write - ou lê dados - read - da MP);•Barramento de dados – bidirecional;•Barramento de controle – bidirecional:UCP ---> MP (controles ... - r/w)MP -----> UCP (wait ... )
PALAVRA (UNIDADE DE INFORMAÇÃO)PALAVRA (UNIDADE DE INFORMAÇÃO)
Palavra é a unidade de informação do sistema UCP / MP.A conceituação mais usada (IBM, Digital) define palavra como sendo a capacidade de manipulação de bits do núcleo do computador (UCP e MP). Pressupõe-se aqui que todos os elementos do núcleo do computador (o que inclui o tamanho da UAL, do acumulador e registradores gerais da UCP e o barramento de dados) tenham a mesma largura (processem simultaneamente o mesmo número de bits), o que nem sempre acontece. Muitas vezes encontram-se computadores em que o tamanho da UAL e do acumulador (e registradores gerais) não é o mesmo tamanho dos barramentos. Desta forma, encontram-se especificações de "computadores de 64 bits" mesmo quando seu barramento de dados é de 32 bits, nesse caso referindo-se exclusivamente à capacidade de manipulação da UCP de 64 bits (isto é, sua UAL e acumulador tem 64 bits).
TEMPO DE ACESSOTEMPO DE ACESSO
Tempo de acesso - tempo decorrido entre uma requisição de leitura de uma posição de memória e o instante em que a informação requerida está disponível para utilização pela UCP. As memórias DRAM (Dynamic RAM ) - tempo de acesso - 60 ns.
Tempo de ciclo - tempo decorrido entre dois ciclos sucessivos de acesso à memória. As memórias dinâmicas perdem seu conteúdo em alguns instantes e dependem de ser periodicamente atualizadas (refresh). No caso das SRAM (Static RAM ou memórias estáticas), que não dependem de "refresh", o tempo de ciclo é igual ao tempo de acesso. As memórias dinâmicas, no entanto, requerem ciclos periódicos de "refresh", o que faz com que a memória fique indisponível para novas transferências, a intervalos regulares necessários para os ciclos de "refresh". Assim, as memórias DRAM tem ciclo de memória maior que o tempo de acesso.
ACESSO À MEMÓRIA PRINCIPALACESSO À MEMÓRIA PRINCIPAL
O acesso à MP é ALEATÓRIO, portanto qualquer que seja o endereço (a posição) de memória que se queira acessar, o tempo de acesso é o mesmo (constante).
A MP pode ser acessada através de duas operações:A MP pode ser acessada através de duas operações:
1 - LEITURA: LER da MEMÓRIASignifica requisitar à MP o conteúdo de uma determinada célula (recuperar uma informação). Esta operação de recuperação da informação armazenada na MP consiste na transferência de um conjunto de bits (cópia) da MP para a UCP e é não destrutiva, isto é, o conteúdo da célula não é alterado.SENTIDO: da MP para a UCP
PASSOS EXECUTADOS PELO HARDWARE:PASSOS EXECUTADOS PELO HARDWARE:
1.a UCP armazena no REM o endereço onde a informação requerida está armazenada;2.a UCP comanda uma leitura;3.o conteúdo da posição identificada pelo endereço contido no REM é transferido para o RDM e fica disponível para a UCP.
2 - ESCRITA: ESCREVER na MEMÓRIA2 - ESCRITA: ESCREVER na MEMÓRIASignifica escrever uma informação em uma célula da MP (armazenar uma informação). Esta operação de armazenamento da informação na MP consiste na transferência de um conjunto de bits da UCP para a MP e é destrutiva (isto significa que qualquer informação que estiver gravada naquela célula será sobregravada).SENTIDO: da UCP para a MP
PASSOS EXECUTADOS PELO HARDWARE:PASSOS EXECUTADOS PELO HARDWARE:
1.a UCP armazena no REM o endereço de memória da informação a ser gravada e no RDM a própria informação;2.a UCP comanda uma operação de escrita;3.a informação armazenada no RDM é transferida para a posição de memória cujo endereço está contido no REM.
SINCRONIZAÇÃO DE OPERAÇÃO DO SISTEMASINCRONIZAÇÃO DE OPERAÇÃO DO SISTEMA
•Imagine um barco a remo em uma competição, em que a plena velocidade e direção somente é atingida porque todos os remadores fazem seus movimentos de forma coordenada, regidos por um "patrão" - geralmente o timoneiro que indica o ritmo das remadas.
•As diversas partes de um computador comportam-se aproximadamente desta forma: instruções e dados, após sofrerem algum processamento em um determinado componente, devem trafegar para o próximo estágio de processamento (através de condutores - um barramento ou um cabo), de forma a estarem lá a tempo de serem processados.
SINCRONIZAÇÃO DE OPERAÇÃO DO SISTEMASINCRONIZAÇÃO DE OPERAÇÃO DO SISTEMA
•O computador envia a todos os seus componentes um sinal elétrico regular - o pulso de "clockclock" – que fornece uma referência de tempo para todas as atividades e permite o sincronismo das operações internas.
•O pulso de clockclock indica que um ciclo (um "estado") terminou, significando que o processamento deste ciclo está terminado e um outro ciclo se inicia, determinando a alguns circuitos que iniciem a transferência dos dados nele contidos (abrindo a porta lógica para os próximos estágios) e a outros que recebam os dados e executem seu processamento.
ClockClock
O clock é um pulso alternado de sinais de tensão alta ("high") e baixa ("low"), gerado pelos circuitos de relógio (composto de um cristal oscilador e circuitos auxiliares).
O clock é o sinal de controle no barramento, mais importante, pois é um sinal de sincronismo.
É o clock que determina o momento exato para troca de informações entre os circuitos.
Todos os processadores a partir do 486DX2 possuem multiplicação de clock.
Período
1 0
Conforme vimos ao analisar a comunicação entre UCP e memória, as instruções, os dados e os endereços "trafegam" no computador através dos barramentos (de dados, de endereços e de controle), sob a forma de bits representados por sinais elétricos.
Periodicamente, uma nova configuração de bits é colocada nos circuitos, e tudo isso só faz sentido se pudermos de alguma forma organizar e sincronizar essas variações, de forma a que, num dado instante, os diversos circuitos do computador possam "congelar" uma configuração de bits e processá-las.
Para isso, é preciso que exista um outro elemento, que fornece uma base de tempo para que os circuitos e os sinais se sincronizem. Este circuito é chamado clockclock - o relógio interno do computador. Cada um dos estados diferentes que os circuitos assumem, limitados pelo sinal do clock, é chamado um ciclo de operaçãociclo de operação.
O clockclock é um pulso alternado de sinais de tensão, gerado pelos circuitos de relógio (composto de um cristal oscilador e circuitos auxiliares).
Ciclo de OperaçãoCiclo de Operação
Cada um do intervalos regulares de tempo é delimitado pelo início da descida do sinal, equivalendo um ciclo à excursão do sinal por um "low"e um "high" do pulso.O tempo do ciclo equivale ao período da oscilação. Período é o inverso da freqüência. Ou seja,P = 1 / f.P = 1 / f.A freqüência ff do clockclock é medida em hertzhertz. Inversamente, a duração de cada ciclo é chamada de período, definido por P=1/f (o período é o inverso da freqüência).Por exemplo:se f = 10 hz logo P = 1/10 = 0,1 s.
1 Mhz (1 megahertz) equivale a um milhão de ciclos por segundo. Sendo a freqüência de um processador medida em megahertz, o período será então medido em nanosegundos, como vemos no exemplo abaixo:
f = 10 Mhz = 10 x 106 hzP = 1 / 106 = 0,000001s = 100 nanosegundos.
Quando se diz que um processador é de 200 Mhz, está-se definindo a freqüência de operação de seu processador (seu clock), significando que o processador pode alternar seus estados internos 166 milhões de vezes por segundo.
Isto acarreta que cada ciclo de operação dura:1 / 200.000.000 s = 0,000000005s = 5 x 10-9 s ou seja,5 nanosegundos.
Como podemos ver pelo exemplo a seguir, o processador com o clock ilustrado em (B) teria um tempo de ciclo cinco vezes menor que o (A) e portanto teria (teoricamente) condições de fazer cinco vezes mais operações no mesmo tempo.
http://venus.rdc.puc-rio.br/rmano/comp0clk.html.
Bibliografia:Bibliografia: