************************************** ********** CDG2 - Resumo P2 ********** ************************************** Data : 26/11/2003 a 27/11/2003 Versão : 04/07/2007 Professor: Ricardo Caneloi dos Santos Autor : Leandro Salvador ( leandrosalvador.com.br ) * Memórias - em termos de memórias pode-se dizer que - F.F. "lembra" 1 bit - registrador (conjunto de F.F.) lembra uma palavra - normalmente, deseja-se armazenar milhares ou dezenas de milhares de palavras - os componentes que armazenam essas palavras são denominados "memórias" * RAM - RAM = Random Access Memory = Memória de Acesso Aleatório - designação dos pinos a uma memória de 8 endereços e palavras de 4 bits (8 x 4) ____o____ | We | 1º 2º 3º 4º bit ---|I0 O0|--- 1ª palavra |¯¯|¯¯|¯¯|¯¯| ---|I1 O1|--- 2ª palavra |¯¯|¯¯|¯¯|¯¯| ---|I2 O2|--- 3ª palavra |¯¯|¯¯|¯¯|¯¯| ---|I3 O3|--- 4ª palavra |¯¯|¯¯|¯¯|¯¯| ---| | 5ª palavra |¯¯|¯¯|¯¯|¯¯| ---|A0 | 6ª palavra |¯¯|¯¯|¯¯|¯¯| ---|A1 | 7ª palavra |¯¯|¯¯|¯¯|¯¯| ---|A2 | 8ª palavra |¯¯|¯¯|¯¯|¯¯| | Cs | ¯¯ ¯¯ ¯¯ ¯¯ ¯¯¯¯|¯¯¯¯ - esta memória consta de 8 registradores selecionados aleatoriamente pelos pinos de endereço A0, A1, A2 - gravação - coloca-se as entradas em I0, I1, I2, I3 - seleciona-se os endereços de gravação - We' = 0 - Cs = 1 - leitura - seleciona-se o endereço para leitura - Cs = 1 - We' = 1 - OBS: pode-se acessar qualquer registrador aleatoriamente (para escrita ou leitura), portanto: RAM - ligação de circuito em paralelo - quando o número de palavras não é adequado - ou quando o número de bits da palavra não é adequado - ou ambos - formando um CI de 8 palavras de 8 bits (8 x 8), aumentando o tamanho da palavra A2 ---------------*-----------------------------------------. | | A1 ------------*--)--------------------------------------. | | | | | A0 ---------*--)--)-----------------------------------. | | _____|__|__|____ _____|__|__|____ | A0 A1 A2 | | A0 A1 A2 | I0 ---|I0 O0|--- O0 I4 ---|I4 O4|--- O4 I1 ---|I1 O1|--- O1 I5 ---|I5 O5|--- O5 I2 ---|I2 O2|--- O2 I6 ---|I6 O6|--- O6 I3 ---|I3 O3|--- O3 I7 ---|I7 O7|--- O7 | We Cs | | We Cs | ¯¯¯¯¯|¯¯¯¯¯|¯¯¯¯ ¯¯¯¯¯|¯¯¯¯¯|¯¯¯¯ We ---------*-----)-----------------------------------' | | | Cs ---------------*-----------------------------------------' _____|___|___|___|___|___|___|___|_____ | I0 I1 I2 I3 I4 I5 I6 I7 | ---|We A0|--- | A1|--- ---|Cs A2|--- | O0 O1 O2 O3 O4 O5 O6 O7 | ¯¯¯¯¯|¯¯¯|¯¯¯|¯¯¯|¯¯¯|¯¯¯|¯¯¯|¯¯¯|¯¯¯¯¯ - formando uma memória de 16 posições por 4 bits (16 x 4), aumentando o número de posições We ---------------------------------*------------------------------------. | | I3 -------------------------*-------)----------------------------. | I2 ----------------------*--)-------)-------------------------. | | I1 -------------------*--)--)-------)----------------------. | | | I0 ----------------*--)--)--)-------)-------------------. | | | | | | | | | | | | | | _____|__|__|__|____ | _____|__|__|__|____ | | I0 I1 I2 I3 | | | I0 I1 I2 I3 | | ,-------|A0 We|o-' ,-------|A0 We|o-' | ,----|A1 | | ,----|A1 | | | ,-|A2 Cs|--. | | ,-|A2 Cs|--. | | | | O0 O1 O2 O3 | | | | | | O0 O1 O2 O3 | | | | | ¯¯¯¯¯|¯¯|¯¯|¯¯|¯¯¯¯ o | | | ¯¯¯¯¯|¯¯|¯¯|¯¯|¯¯¯¯ | | | | | | | | / \ | | | | | | | | | | | | | | | ¯|¯ | | | | | | | | A0 --*--)--)-------)--)--)--)-------)-----* | | | | | | | A1 -----*--)-------)--)--)--)-------)--------* | | | | | | A2 --------*-------)--)--)--)-------)-----------* | | | | | A3 ----------------)--)--)--)-------*-------------------)--)--)--)-------' | | | | | | | | O0 ----------------*--)--)--)---------------------------' | | | O1 -------------------*--)--)------------------------------' | | O2 ----------------------*--)---------------------------------' | O3 -------------------------*------------------------------------' - ligando 4 circuitos em paralelo, formando uma memória de 32 posições por 4 bits (32 x 4) /¯¯¯¯| / I0|-- Cs1 As --|A0 I1|-- Cs2 A4 --|A1 I2|-- Cs3 \ I3|-- Cs4 \____| * ROM - ROM = Read Only Memory = Memória Somente de Leitura - pode-se ler, porém não é possível escrever - conteúdo fica inalterado, conhecido na fase de fabricação - também é de acesso aleatório - alguns tipos permitem que o usuário programe (PROM) - existem aquelas quepodem ser alteradas (EPROM) - não podem ser gravadas e apagadas no sistema digital - deve ser removida - algumas são apagadas e gravadas no circuito digital (EEPROM) - os bits armazenados na ROM não podem ser removidos - podem ser implementados por circuitos combinacionais - mas não por F.F. - essas memórias são conversores de código - tabela posição endereço palavra -- A2 A1 A0 D3 D2 D1 m0 0 0 0 0 0 0 m1 0 0 1 0 1 0 m2 0 1 0 1 0 0 m3 0 1 1 1 1 0 m4 1 0 0 1 1 0 m5 1 0 1 0 0 1 m6 1 1 0 0 0 1 m7 1 1 1 0 1 1 - D3 = A2.A1'.A0 + A2.A1'.A0'+ A2'.A1.A0 D2 = A2'.A1.A0 + A2'.A1.A0 + A2.A1'.A0' + A2.A1.A0 D1 = A2.A1'.A0 + A2.A1.A0' + A2.A1.A0 - circuito lógico A2 A1 A0 | | | *--)--|--o|¯¯¯\ m2 | *--)---| |--. | | *--o|___/ | | | | | *--)--|--o|¯¯¯\ m3'------\¯¯¯\ | *--)---| |----------| |--- D3 | | *---|_ _/ ,------/___/ | | | | *--)--|---|¯¯¯\ m4| | *--)--o| |--' | | *--o|___/ | | | . . . --- D2 . . . . . . --- D1 * Diodo - diretamente polarizado - fecha + ---|>|--- - - abre + ---|<|--- - - porta OR A ---\¯¯¯\ A ---|>|---. | |--- S ==> | B ---/___/ B ---|>|---*--- S | '---/\/\/---. | ¯¯¯ ¯ - implementação de um codificador de ROM | | | | | | | | | | *.. *.. *.. | | | | | | . | . | . | | | ---|---|---|-*-|-*-|-*-|---|---|--- D3 | *.. | *.. *.. | | *.. | | . | | . | . | | | . ---|---|-*-|---|-*-|-*-|---|---|-*- D2 | | | | | *.. *.. *.. | | | | | | . | . | . ---|---|---|---|---|---|-*-|-*-|-*- D1 m0 m1 m2 m3 m4 m5 m6 m7 OBS: *...* representa um diodo *...* = *--|>|--* * Implementação de Memória ROM (na fabricação) - funcionamento especificação tabela --> "entrada" --> decodificador --> codificador --> "dados" - tabela posição endereço palavra -- A2 A1 A0 D4 D3 D2 D1 D0 m0 0 0 0 0 0 0 0 1 m1 0 0 1 0 0 0 1 0 m2 0 1 0 0 0 1 0 0 m3 0 1 1 0 1 0 0 0 m4 1 0 0 1 0 0 0 0 m5 1 0 1 1 1 1 1 1 m6 1 1 0 1 1 1 1 1 m7 1 1 1 1 1 1 1 1 - lógica ROM (decodificador 3 x 8) --\¯¯¯\ | |--- D0 --/___/ |¯¯¯¯¯¯¯¯¯¯¯| --\¯¯¯\ |A0 SO|-- c | |--- D1 |A1 S1|-- o --/___/ |A2 S2|-- n --\¯¯¯\ | S3|-- e | |--- D2 | S4|-- x --/___/ | S5|-- õ --\¯¯¯\ | S6|-- e | |--- D3 | G S7|-- s --/___/ |___o_______| --\¯¯¯\ | | |--- D4 --/___/ - física ROM (codificador de ROM) |¯¯¯¯¯¯¯¯¯¯¯| |A0 SO|------------------------------. |A1 S1|--------------------------. | |A2 S2|----------------------. | | | S3|------------------. | | | | S4|--------------. | | | | | S5|----------. | | | | | | S6|------. | | | | | | | G S7|--. | | | | | | | |___o_______| | | | | | | | | | | | | | | | | | GND *. *. |. | | | | *. ---/\/\/-------|-*-|-*-|-*-|---|---|---|---|-*- D0 *. *. *. | | | *. | | ---/\/\/-------|-*-|-*-|-*-|---|---|---|-*-|--- D1 *. *. *. | | *. | | | ---/\/\/-------|-*-|-*-|-*-|---|---|-*-|---|--- D2 *. *. *. | *. | | | | ---/\/\/-------|-*-|-*-|-*-|---|-*-|---|---|--- D3 *. *. *. *. | | | | | ---/\/\/-------|-*-|-*-|-*-|-*-|---|---|---|--- D4 OBS: *.* representa um diodo *.* = *--|>|--* - em uma RAM precisamos de F.F. para armazenar um bit 0 ou 1 - já em uma ROM, o diodo ou a falta dele determinará se o bit é 0 ou 1 - neste caso os bits são definidos permanentemente * PROM - PROM = Programmable ROM = ROM Programável - neste caso o fabricante inclui conexões entre todas as linhas de endereços e dados - nesta conexão existe um fusível em série com o diodo - decodificador de endereço m0 m1 m2 m3 | | | | *#. *#. *#. *#. .--/\/\/---|-*-|-*-|-*-|-*--- d0 | *#. *#. *#. *#. *--/\/\/---|-*-|-*-|-*-|-*--- d1 | | | | | R | GND OBS: *#.* representa um fusível e um diodo __ *#.* = *--| |--|>|--* ¯¯ - inicial - final (desejável) d0 d1 d0 d1 m0 1 1 m0 0 0 m1 1 1 m1 1 0 m2 1 1 m2 0 1 m3 1 1 m3 1 1 - através de equipamentos adequados os fusíveis podem ser queimados e a conexão deixa de existir - podem existir milhares de conexões * Volatilidade de Memória - RAM - na RAM as informações são armazenadas em F.F. - caso haja uma queda de energia, perde-se a informação - deve haver um sistema backup, garantindo a integridade da informação - portanto, a RAM é denominada de memória volátil - ROM - na ROM a memória depende da posição dos diodos, retornando após uma queda de energia - portanto, a ROM é denominada de memória não-volátil * Tempos de Chaveamento de Memória - leitura da memória ________|________|________|________|________|________|________ endereço X x x x x X y y ¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯ | | | | | | seleção ________|________|________|________|________|________|________ circuito circ. não selec. X circuito selecionado ¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯ | | | | | | saída ________|________|________|________|________|________|________ dados dados inválidos X dados válidos do end. x X dados válidos do end. y ¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯ |<------Taa------>| |<-Taa-->| T0 T1 T2 T3 T4 |---T'---|--Tce---| - efeitos da mudança de endereço - T0 --> instante da seleção do endereço - T1 --> instante da seleção do circuito - T2 --> apresenta dados válidos - T3 --> troca de endereço - T4 --> deixa de haver dados válidos - Taa --> T2 - T0 --> tempo de acesso após endereço - T' --> T1 - T0 --> tempo de ativação da seleção - Tce --> T2 - T1 --> tempo de habilitação do circuito - escrita na memória seleção ________| | | | | |________ circuito \ | | | | / |¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯| ________|________|________|________|________|________|________ endereço X X ¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯ entrada ________|________|________|________|________|________|________ dados X X ¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯ ________|________|________|_ _|________|________|________ we' \ / ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯/¯|¯¯¯¯|¯\¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ / | | \ / |-TW-| \ /TWSD| |TWHD\ |---TWSA---| |---TWHA---| |-------TWSCS-------| |-------TWHCS-------| - TWSCS --> tempo de preparação de escrita para seleção do circuito - TWSA --> tempo de preparação de escrita para endereço - TWSD --> tempo de preparação de escrita para dados - TW --> largura do pulso de clock - TWHD --> manutenção de escrita para dados - TWHA --> manutenção de escrita para endereço - TWHCS --> manutenção de escrita para seleção do circuito * RAM Dinâmica - diferentemente do primeiro tipo discutido (armazena F.F.), este tipo armazena bits em capacitores - tal implementação tem como vantagem a capacidade de armazenamento maior de bits - entretanto, este possui uma grande desvantagem de precisar de um circuito de refresh (refrescamento) - tipicamente, os circuitos devem sofrer esta operação a no máximo 2 ms - para justificar tal complexidade no circuito, a memória dinâmica é utilizada quando é requerida grande quantidade de memória - RAM's estáticas têm comprimento de 8, 4 e 1 bit, enquanto as dinâmicas têm, normalmente, 1 bit - capacitor - carga - descarga N.L. ^ N.L.^ | ,´¯¯¯¯¯ |\ 1 | ´ 1 | \ | / | \ | / | `.______ 0 |___________> t 0 |___________> t * ULA 74181 - ULA = Unidade Lógica e Aritmética - a ULA é um circuito combinatório responsável pela execução das operações aritméticas e lógicas num sistema digital (S.D.) - a ULA a ser utilizada num sistema digital é função da complexidade deste - portanto, quanto mais complexo o S.D., mais sofisticada deve ser a ULA - possui 2 entradas com palavras de 4 bits - A e B podem ser números ou informações - a entrada M determina se a operação é lógica ou aritmética - S0 a S3 determinam a operação a ser realizada - F0 a F3 apresentam a resposta da operação selecionada - lógica - aritmética - Cn e Cn+4 são os bits de "vai-um" dos estágios n-1 (entrada) e n+4 (saída) - G e T permitem a expansão da palavra manipulada, através da utilização do 74182 look-ahead carry generator - a ULA possibilita 16 operações lógicas e 16 operações aritméticas (cou ou sem "vai-um") - na ULA 74181 a operação de subtração é realizada em complemento de dois - pinagem física (22 pinos) - representação lógica |¯¯¯¯¯¯¯¯¯¯¯¯| | | -o|Cn' Vcc|-- v v --|A0 | \¯¯A¯¯¯\ /¯¯¯B¯¯/ --|A1 Cn+4|-- \ \/ / --|A2 | \ / --|A3 | -->\S ULA / --|B0 F0|-- \ / --|B1 F1|-- \___F__/ --|B2 F2|-- | --|B3 F3|-- v --|S0 | --|S1 T|-- --|S2 G|-- --|S3 |-- --|M GND|-- |____________| - exercício 1) Com a tabela de funções de ULA, determine o código para as seguintes operações: A = 5 = 0101 B = 8 = 1000 S3 S2 S1 S0 M Cn' F3 F2 F1 F0 Cn+4' A or B 1 1 1 0 1 x 1 1 0 1 x A (+) B 0 1 1 0 1 x 1 1 0 1 x A . B 1 0 1 1 1 x 0 0 0 0 x (A or B)' 0 0 0 1 1 x 0 0 1 0 x A + B 1 0 0 1 0 1 1 1 0 1 1 A - 1 1 1 1 1 0 1 0 1 0 0 0 A + A + 1 1 1 0 0 0 0 1 0 1 1 1 A - B 0 1 1 0 0 0 1 1 0 1 1 2) S = (A . B) (+) C A = 5 = 0101 B = 6 = 0110 C = 3 = 0011 S3 S2 S1 S0 M Cn' Cn+4' comentário F <- 0 0 0 1 1 1 x x limpa a saída A <- 5 definir A B <- 6 definir B F <- A . B 1 0 1 1 1 x x A <- F salva F (resultado) em A B <- C fazer B = C (definir C) F <- A (+) B 0 1 1 0 1 x x F = 0111 3) S = [(A + B) - C] . 2 A = 5 = 0101 B = 6 = 0110 C = 3 = 0011 S3 S2 S1 S0 M Cn' Cn+4' comentário F <- 0 0 0 1 1 1 x x limpa a saída A <- 5 definir A B <- 6 definir B F <- A + B 1 0 0 1 0 1 1 F = 11 A <- F salva F (resultado) em A B <- C fazer B = C (definir C) F <- A - B 0 1 1 0 0 0 0 F = 8 A <- F salva F (resultado) em A F <- A . A 1 1 0 0 0 1 0 F = 16 * Associando a ULA aos componentes Memória e Registradores - neste caso as operações são sempre realizadas entre o conteúdo do acumulador (ACC) e os dados na via - circuito |¯¯¯¯¯| .------| ACC |<-----. | | |_____| | v v ^ | \¯¯B¯¯¯\ /¯¯¯A¯¯/ | | \ \/ / | | |¯¯¯¯¯| \ / | | | MEM |---------->\S ULA / | | |_____| \ / | | ^ \___F__/ | | | | | | | '--------------' | clock |¯¯¯¯¯¯¯¯¯¯| | ----*-->| CONTADOR | | | |__________| | | | '------------------------------------------------------' - exercício 1) S = (A.B) (+) C A = 2 = 0010 B = 3 = 0011 C = 4 = 0100 S3 S2 S1 S0 M Cn' B ACC <- 0 0 0 1 1 1 x x ACC <- A 1 0 1 0 1 x A ACC <- ACC . B 1 0 1 1 1 x B ACC <- ACC(+)C 0 1 1 0 1 x C 2) S = [(A + B) - C] . 2 A = 5 = 0101 B = 6 = 0110 C = 3 = 0011 S3 S2 S1 S0 M Cn' B ACC <- 0 0 0 1 1 1 x x ACC <- A 1 0 1 0 1 x A ACC <- ACC + B 1 0 0 1 0 1 B ACC <- ACC - C 0 1 1 0 0 0 C ACC <- ACC . 2 1 1 0 0 0 1 x * Conversão Analógico/Digital (CAD) - CAD = Conversão Analógico Digital - CD - taxa de amostragem - 44100 Amostras/segundo - gradações - 65536 gradações - 2 ^ 16 gradações - 16 bits de resolução - 2 Bytes de resolução - capacidade de 1 CD (sistema estéreo) - capacidade = 783.216.000 Bytes - 44100 * 2 * 2 * 74 * 60 - Amostras/(canal * segundo) * Bytes/A * canais * minutos * segundos/minuto - 1 segundo de música - 44100 * 16 = 705600 bits - 44100 * 2 = 88200 Bytes ----------//----------