Prévia do material em texto
Lista 1 – Arquitetura e organização de computadores Alunos: João Felipe Affonso Prieto – RA:114673 Gabriel Ganassin – RA:115826 1) Os registradores tem como papel geral o armazenamento de informações, endereços e instruções, além de também armazenarem resultados de execuções das instruções. 2) Como os registradores visíveis ao usuário são os de uso geral, normalmente carregam dados de endereço (Endereçamento) e resultados de operações. 4) 00000010 + 00000011 = 00000101 a) Carry. 0. b) Zero. 0. c) Overflow. 0. d) Sinal. 0. e) Paridade igual. 1. 5) 11110000 + 11101110 = 1 11011110 a) Carry. 1. b) Zero. 0. c) Overflow. 0. d) Sinal. 1. e) Paridade igual. 1. 6) Um processo que aloca uma repartição de memória pode executar uma instrução no OS. Isso se dá por: • O processo pode emitir uma chamada de serviço ao OS. • O processo é interrompido e o processador deixa de executar o processo, transferindo a execução interrompida ao OS. • O processo é interrompido devido a outro motivo independente. 7) Um E/S é um módulo que utiliza uma lógica para realizar as funções de comunicação entre periféricos e barramento. Com os E/S é possível identificar erros no sistema, comunicar outros dispositivos com o processador e controlar o fluxo de informações. 8) E/S mapeada: Tem um único espaço de endereçamento, que é compartilhado para as posições de memória e periféricos E/S. E/S independente: Os endereçamentos são divididos entre a memória e outros dispositivos E/S. EX: um endereçamento no E/S mapeado de 1024 bytes, teria os endereços de 0 a 511 na memória e de 512-1023 para os dispositivos E/S. Já no E/S independente esses bytes não são compartilhados. 9) E/S programada: A execução de uma instrução de E/S é enviada par outro modulo de E/S, esse módulo então executa a operação e indica o termino do carregamento nos registradores. E/S mapeada. E/S independente. 10) E/S controlada por interrupção: o hardware envia a interrupção, reconhece e armazena os valores e informações para voltar ao ponto antes da interrupção. Feito isso o software armazena as informações, processa a interrupção e retorna as informações e restaura os valores armazenados antes da interrupção. 12) acontece uma instrução a cada 1.000.000 s. O módulo DMA transfere a cada 9600 s. Sendo assim a velocidade do processador diminuirá 1/104 = 0,96%. 13) No RAID 0 os dados disponíveis são dados disponíveis são divididos em pequenos segmentos e distribuídos pelos discos. Oque significa que não tem perda de dados, porém, a performance do computador melhora. Vantagens: Alta velocidade, Baixo custo em memória. Desvantagens: Não tem espelhamento, Não faz paridade de dados. RAID 1: No RAID 1, sua base é o espelhamento de um disco em outro. Sendo assim, é como se copiasse um disco A em um disco B e o contrário. Vantagens: Segurança nos dados. Desvantagens: Tem espelhamento, não é usado paridade, custo maior de memória, é mais demorado. RAID 2: Detecta falhas em discos rígidos, e é usado para checagem de erros. Vantagens: Usa tecnologia ECC, que diminui quase a 0 as taxas de erros. Desvantagens: Os HD atuais já possuem nativamente essa tecnologia, as vezes tem desperdício de espaço. RAID 3: As funções são divididas no disco matriz. Vantagens: Lê e escreve muito rápido, possui controle de erros. Desvantagens: Sua montagem via software é mais complexa. RAID 4: Similar ao RAID3, porém os dados são divididos entre os discos em vez de apenas no disco matriz. Vantagens: Taxa de leitura rápida, é possível aumentar a área de discos físicos. Desvantagens: Taxa de gravação lenta, Tecnologia antiga comparada as novas, RAID 5: O sistema é mais complexo e a paridade é armazenada de forma alternada em vários discos. Assim, caso qualquer um deles tenha um problema, basta usar um processo para recuperar todas as informações. Vantagens: Mais rápido de identificar erros, Leitura Rápida. Desvantagens: Escrita lenta, sistema de controle de discos mais complexo. 14) 15) A) 111000 – 110011 = (111000) + (001101) = 1000101 B) 11001100 – 101110 = (11001100) + (010010) = 11011110 C) 111100001111 – 110011110011 = 1001000011100 D) 11000011 – 11101000 = (11000011) + (00011000) = 11011011 16) 18) ROM: A memória ROM tem um padrão permanente de dados que não pode ser mudado. Ela independe de eletricidade para manter os dados e é uma memória somente de leitura. Aplicações: • Programas pequenos do sistema • Tabelas de função • Bibliotecas de função de uso frequente • Firmwares PROM: Essa memória não pode ser reescrita e o processo de gravação é feito com a utilização de eletricidade, e pode ser feita pelo cliente ou fornecedor. Aplicações: • Microcontroladores EPROM: Essa memória não pode ser reescrita e pode ser escrita pelo cliente e fabricante, mas diferente do modelo acima essa permite o apagamento de dados. As células são apagadas antes de cada operação de escrita, e ocorre por exposição a luz ultravioleta. Aplicações: • Microcontroladores anteriores ao surgimento da memória flash EEPOM: Nesse tipo de memória não é necessário o apagamento de todos os blocos de dados, somente o endereço do que está sendo utilizado. Possui um tempo alto de escrita/leitura e é uma memória não volátil e permite a reescrita no local apagado. Aplicações: • Microcontroladores • Arduino ROM Flash: Possui uma velocidade que pode ser reprogramada e uma única seção pode ser apagada em uma ação. Necessita de eletricidade para o apagamento e permite apagar blocos específicos de dados. Aplicação: • cartões de memória • flash drives • USB 19) Temos a seguinte ordem hierárquica: Registradores > Memória Cache > Memória Principal > Memória Secundária. Quanto menor o nível hierárquico, menor o custo por bits e aumenta a capacidade e tempo de processo. 20) A memória virtual é uma memória reservada quando o OS é instalado e permite que o sistema aumente a memória temporária evitando travamentos. Com base na paginação a memória é dividida em blocos de bytes que contem informações que são chamadas pelo sistema. 21) O endereço virtual é gerado pela cpu e o endereço físico está na unidade de memória. Durante o método de ligação de tempo de compilação e carregamento são ligados a endereço virtual e endereço físico. 22) A diferença é na capacidade de memória, a virtual permite programas maiores e a cache só programas mais simples. Exercícios Propostos – Lista 2 Alunos: João Felipe e Gabriel Ganassin Capítulo 4: 4.1) O cache é dividido em 16 conjuntos de 4 linhas cada. Portanto, são necessários 4 bits para identificar o número definido. A memória principal consiste em 4 K = 212blocos. Portanto, o conjunto mais os comprimentos do tag devem ser de 12 bits e, portanto, o comprimento do tag é de 8 bits. Cada bloco contém 128 palavras. Portanto, 7 bits são necessários para especificar a palavra. Endereço de memória principal = TAG SET WORD 8 4 7 4.2) Há um total de 8 kbytes / 16 bytes = 512 linhas no cache. Assim, o cache consiste em 256 conjuntos de 2 linhas cada. Portanto, 8 bits são necessários para identificar o número definido. Para a memória principal de 64 MB, é necessário um endereço de 26 bits. A memória principal consiste em 64 MB / 16 bytes = 222 blocos. Portanto, o conjunto mais os comprimentos do tag devem ser de 22 bits, então o comprimento do tag é 14 bits e o comprimento do campo de palavra é 4 bits. Endereço de memória principal = TAG SET WORD 14 8 4 4.3) Endereço 111111 666666 BBBBBB a. Tag/Line/Word 11/444/1 66/1999/2 BB/2EEE/3 b. Tag /Word 44444/1 199999/2 2EEEEE/3 c. Tag/Set/Word 22/444/1 CC/1999/2 177/EEE/34.4) a. Comprimento do endereço: 24; número de unidades endereçáveis: 224; tamanho do bloco: 4; número de blocos na memória principal: 222; número de linhas no cache: 214 ; tamanho da tag: 8. b. Comprimento do endereço: 24; número de unidades endereçáveis: 224; tamanho do bloco: 4; número de blocos na memória principal: 222; número de linhas no cache: 4000 hex; tamanho da tag: 22. c. Comprimento do endereço: 24; número de unidades endereçáveis: 224; tamanho do bloco: 4; número de blocos na memória principal: 222; número de linhas no conjunto: 2; número de conjuntos: 213; número de linhas no cache: 214; tamanho da tag: 9. 4.5) Tamanho do frame do bloco = 16 bytes = 4 palavras duplas Número de quadros de bloco em cache = 16 Kbytes / 16 Bytes = 1024 N. de conjuntos = Número de quadros de bloco/Associatividade = 1024/4 = 256 conjuntos 4.6) 4.7) Um endereço de 32 bits consiste em um campo de tag de 21-bits, um campo de conjunto de 7-bits e um campo de palavra de 4-bits. Cada conjunto no cache inclui 3 bits LRU e quatro linhas. Cada linha consiste em 4 palavras de 32-bits, um bit válido e uma tag de 21-bits. 4.8) a. 8 bits mais à esquerda = tag; 5 bits do meio = número da linha; 3 bits mais à direita = número do byte b. slot 3; slot 6; slot 3; slot 21 c. Bytes com endereços 0001 1010 0001 1000 a 0001 1010 0001 1111 são armazenado no cache d. 256 bytes e. Porque dois itens com dois endereços de memória diferentes podem ser armazenados no mesmo lugar no cache. A tag é usada para distinguir entre eles. 4.9) a. Os bits são definidos de acordo com as seguintes regras com cada acesso ao conjunto: 1. Se o acesso for para L0 ou L1, B0 ← 1. 2. Se o acesso for para L0, B1 ← 1. 3. Se o acesso for para L1, B1 ← 0. 4. Se o acesso for para L2 ou L3, B0 ← 0. 5. Se o acesso for para L2, B2 ← 1. 6. Se o acesso for para L3, B2 ← 0. O algoritmo de substituição funciona da seguinte forma (Figura 4.15): Quando uma linha deve ser substituída, o cache irá primeiro determinar se o uso mais recente foi de L0 e L1 ou L2 e L3. Em seguida, o cache determinará qual par de blocos foi usado menos recentemente e o marcará para substituição. Quando o cache é inicializado ou liberado, todos os 128 conjuntos de três bits LRU são definidos como zero. b. O 80486 divide as quatro linhas em um conjunto em dois pares (L0, L1 e L2, L3). O bit B0 é usado para selecionar o par que foi usado menos recentemente. Dentro de cada par, um bit é usado para determinar qual membro do par foi usado menos recentemente. No entanto, a seleção final apenas se aproxima de LRU. Considere o caso em que a ordem de uso foi: L0, L2, L3, L1. O par menos usado recentemente é (L2, L3) e o membro menos usado desse par é L2, que é selecionado para substituição. No entanto, a linha menos usada recentemente de todas é L0. Dependendo do histórico de acesso, o algoritmo sempre escolherá a entrada usada menos recentemente ou a segunda entrada usada menos recentemente. c. A maneira mais direta de implementar o verdadeiro LRU para um conjunto de quatro linhas é associar um contador de dois bits a cada linha. Quando ocorre um acesso, o contador desse bloco é definido como 0; todos os contadores com valores inferiores ao valor original para o bloco acessado são incrementados em 1. Quando ocorre uma falha e o conjunto não está cheio, um novo bloco é trazido, seu contador é colocado em 0 e todos os outros contadores são incrementados em 1 .Quando ocorre uma falha e o conjunto está cheio, o bloco com o valor do contador 3 é substituído; seu contador é definido como 0 e todos os outros contadores são incrementados em 1. Essa abordagem requer um total de 8 bits. Em geral, para um conjunto de blocos N, a abordagem acima requer 2N bits. Um esquema mais eficiente pode ser projetado, o que requer apenas N (N – 1) / 2 bits. O esquema funciona da seguinte maneira. Considere uma matriz R com N linhas e N colunas e pegue a parte triangular superior direita da matriz, sem contar a diagonal. Para N = 4, temos o seguinte layout: R(1,2) R(1,3) R(1,4) R(2,3) R(2,4) R(3,4) Quando a linha I é referenciada, a linha I de R (I, J) é definida como 1 e a coluna I de R (J, I) é definida como 0. O bloco LRU é aquele para o qual a linha é inteiramente igual a 0 (para os bits da linha; a linha pode estar vazia) e para os quais a coluna é inteiramente 1 (para todos os bits da coluna; a coluna pode estar vazia). Como pode ser visto para N = 4, um total de 6 bits são necessários. Capítulo 5: 5.1) Eles exibem dois estados estáveis (ou semestáveis), que podem ser usados para representar 1 e 0 binários; eles podem ser gravados em (pelo menos uma vez), para definir o estado; eles são capazes de ser lidos para sentir o estado. 5.2) Uma memória na qual palavras individuais da memória são acessadas diretamente por meio da lógica de endereçamento com fio. (2) Memória principal semicondutora na qual é possível tanto ler dados da memória quanto gravar novos dados na memória de maneira fácil e rápida. 5.3) SRAM é usado para memória cache (dentro e fora do chip), e DRAM é usado para memória principal. 5.4) SRAMs geralmente têm tempos de acesso mais rápidos do que DRAMs. DRAMS são mais baratos e menores do que SRAMs. 5.5) Uma célula DRAM é essencialmente um dispositivo analógico usando um capacitor; o capacitor pode armazenar qualquer valor de carga dentro de uma faixa; um valor limite determina se a carga é interpretada como 1 ou 0. Uma célula SRAM é um dispositivo digital, no qual os valores binários são armazenados usando as configurações tradicionais de porta lógica flip-flop. 5.6) Memória da unidade de controle microprogramada; sub-rotinas de biblioteca para funções frequentemente desejadas; programas de sistema; tabelas de funções. 5.7) EPROM é lida e escrita eletricamente; antes de uma operação de gravação, todas as células de armazenamento devem ser apagadas para o mesmo estado inicial pela exposição do chip embalado à radiação ultravioleta. O apagamento é realizado lançando uma luz ultravioleta intensa através de uma janela projetada no chip de memória. EEPROM é uma memória de leitura que pode ser gravada a qualquer momento sem apagar o conteúdo anterior; apenas o byte ou bytes endereçados são atualizados. A memória Flash é intermediária entre EPROM e EEPROM em custo e funcionalidade. Como a EEPROM, a memória flash usa uma tecnologia de apagamento elétrico. Uma memória flash inteira pode ser apagada em um ou alguns segundos, o que é muito mais rápido do que a EPROM. Além disso, é possível apagar apenas blocos de memória em vez de um chip inteiro. No entanto, a memória flash não permite o apagamento em nível de byte. Como a EPROM, a memória flash usa apenas um transistor por bit e, portanto, atinge a alta densidade (em comparação com a EEPROM) da EPROM. 5.8) A0 - A1 = linhas de endereço :. CAS = seleção de endereço de coluna :. D1 - D4 = linhas de dados. NC: = sem conexão. OE: habilitação de saída. RAS = seleção de endereço de linha :. Vcc: = fonte de tensão. Vss: = solo. NÓS: habilitar gravação. 5.9) Um bit anexado a um array de dígitos binários para fazer a soma de todos os dígitos binários, incluindo o bit de paridade, sempre ímpar (paridade ímpar) ou sempre par (paridade par). 5.10) Uma síndrome é criada pelo XOR do código em uma palavra com uma versão calculada desse código. Cada bit da síndrome é 0 ou 1, dependendo se há ou não correspondência nessa posição de bit para as duas entradas. Se a síndrome contém todos os 0s, nenhum erro foi detectado. Se a síndrome contém um e apenas um bit definido como 1, então ocorreu um erro em um dos 4 bits de verificação. Nenhuma correção é necessária. Se a síndrome contiver mais de um bit definido como 1, o valor numérico da síndrome indica a posiçãodo bit de dados com erro. Este bit de dados é invertido para correção. 5.11) Ao contrário da DRAM tradicional, que é assíncrona, a SDRAM troca dados com o processador sincronizado com um sinal de relógio externo e funcionando na velocidade total do barramento processador / memória sem impor estados de espera. Capítulo 6: 6.1) Melhoria na uniformidade da superfície do filme magnético para aumentar a confiabilidade do disco. Uma redução significativa nos defeitos gerais da superfície para ajudar a reduzir os erros de leitura / gravação. Capacidade de suportar alturas de mosca mais baixas (descrito posteriormente). Melhor rigidez para reduzir a dinâmica do disco. Maior capacidade de resistir a choques e danos. 6.1) O mecanismo de gravação é baseado no fato de que a eletricidade que flui por uma bobina produz um campo magnético. Os pulsos são enviados para o cabeçote de gravação e os padrões magnéticos são registrados na superfície abaixo, com padrões diferentes para correntes positivas e negativas. Uma corrente elétrica no fio induz um campo magnético através da lacuna, que por sua vez magnetiza uma pequena área do meio de gravação. Inverter a direção da corrente inverte a direção da magnetização no meio de gravação. 6.3) O cabeçote de leitura consiste em um sensor magnetorresistivo (MR) parcialmente blindado. O material MR tem uma resistência elétrica que depende da direção da magnetização do meio que se move sob ele. Ao passar uma corrente pelo sensor MR, as mudanças de resistência são detectadas como sinais de tensão. 6.4) Para o sistema de velocidade angular constante (CAV), o número de bits por trilha é constante. Um aumento na densidade é obtido com a gravação zoneada múltipla, na qual a superfície é dividida em várias zonas, com zonas mais distantes do centro contendo mais bits do que zonas mais próximas do centro. 6.5) Em um disco magnético. os dados são organizados no prato em um conjunto concêntrico de anéis, chamados de trilhas. Os dados são transferidos de e para o disco em setores. Para um disco com vários pratos, o conjunto de todas as trilhas na mesma posição relativa no prato é denominado cilindro. 6.6) 512 bytes 6.7) Em um sistema de cabeça móvel, o tempo que leva para posicionar a cabeça na pista é conhecido como tempo de busca. Uma vez que a trilha é selecionada, o controlador de disco espera até que o setor apropriado gire para se alinhar com a cabeça. O tempo que leva para o início do setor atingir a cabeça é conhecido como retardo rotacional. A soma do tempo de busca, se houver, e o atraso rotacional é igual ao tempo de acesso, que é o tempo que leva para chegar à posição de ler ou escrever. Uma vez que o cabeçote esteja na posição, a operação de leitura ou gravação é então realizada conforme o setor se move sob o cabeçote; esta é a parte da operação de transferência de dados e o tempo para a transferência é o tempo de transferência. 6.8) RAID é um conjunto de unidades de disco físicas vistas pelo sistema operacional como uma única unidade lógica. 2. Os dados são distribuídos pelas unidades físicas de uma matriz. 3. A capacidade do disco redundante é usada para armazenar informações de paridade, o que garante a capacidade de recuperação dos dados em caso de falha do disco. 6.9) 1: Não redundante: espelhado; cada disco tem um disco espelho contendo os mesmos dados. 2: Redundante via código de Hamming; um código de correção de erros é calculado entre os bits correspondentes em cada disco de dados e os bits do código são armazenados nas posições dos bits correspondentes em vários discos de paridade. 3: paridade intercalada com bits; semelhante ao nível 2, mas em vez de um código de correção de erros, um bit de paridade simples é calculado para o conjunto de bits individuais na mesma posição em todos os discos de dados. 4: Paridade intercalada em bloco; uma faixa de paridade bit a bit é calculada através das faixas correspondentes em cada disco de dados, e os bits de paridade são armazenados na faixa correspondente no disco de paridade. 5: Paridade distribuída intercalada em bloco; semelhante ao nível 4, mas distribui as faixas de paridade em todos os discos. 6: Bloco intercalado de paridade distribuída dupla; dois cálculos de paridade diferentes são realizados e armazenados em blocos separados em discos diferentes. 6.10) O disco é dividido em tiras; essas tiras podem ser blocos físicos, setores ou alguma outra unidade. As faixas são mapeadas round robin para membros consecutivos da matriz. Um conjunto de faixas logicamente consecutivas que mapeia exatamente uma faixa para cada membro da matriz é denominado faixa. 6.11) Para RAID nível 1, a redundância é obtida por meio de duas cópias idênticas de todos os dados. Para níveis mais altos, a redundância é obtida pelo uso de códigos de correção de erros. 6.12) Em uma matriz de acesso paralelo, todos os discos membros participam da execução de cada solicitação de E / S. Normalmente, os eixos das unidades individuais são sincronizados para que cada cabeça de disco esteja na mesma posição em cada disco a qualquer momento. Em uma matriz de acesso independente, cada disco membro opera de forma independente, para que solicitações de E / S separadas possam ser atendidas em paralelo. 6.13) Para o sistema de velocidade angular constante (CAV), o número de bits por trilha é constante. A uma velocidade linear constante (CLV), o disco gira mais lentamente para acessos próximos à borda externa do que para aqueles próximos ao centro. Assim, a capacidade de uma trilha e o atraso de rotação aumentam para posições mais próximas da borda externa do disco. 6.14) 1. Os bits são compactados mais de perto em um DVD. O espaçamento entre os loops de uma espiral em um CD é 1,6 µm e a distância mínima entre os poços ao longo da espiral é 0,834 µm. O DVD usa um laser com comprimento de onda mais curto e atinge um espaçamento de loop de 0,74 µm e uma distância mínima entre as cavidades de 0,4 µm. O resultado dessas duas melhorias é um aumento de cerca de sete vezes na capacidade, para cerca de 4,7 GB. 2. O DVD emprega uma segunda camada de poços e pousa no topo da primeira camada Um DVD de camada dupla tem uma camada semirreflexiva no topo da camada reflexiva e, ajustando o foco, os lasers nas unidades de DVD podem ler cada camada separadamente. Essa técnica quase dobra a capacidade do disco, para cerca de 8,5 GB. A menor refletividade da segunda camada limita sua capacidade de armazenamento, de forma que não se consegue uma duplicação total. 3. O DVD-ROM pode ter dois lados, enquanto os dados são gravados em apenas um lado do CD. Isso traz a capacidade total de até 17 GB. 6.15) A técnica de gravação típica usada em fitas seriais é conhecida como gravação serpentina. Nessa técnica, quando os dados estão sendo gravados, o primeiro conjunto de bits é gravado ao longo de toda a extensão da fita. Ao chegar ao final da fita, as cabeças são reposicionadas para gravar uma nova faixa, e a fita é novamente gravada em toda a sua extensão, desta vez na direção oposta. Esse processo continua, indo e voltando, até que a fita esteja cheia. Capítulo 7: 7.1) Legível por humanos: Adequado para se comunicar com o usuário do computador. Legível por máquina: Adequado para comunicação com o equipamento. Comunicação: Adequado para comunicação com dispositivos remotos 7.2) O código de texto mais comumente usado é o Alfabeto de Referência Internacional (IRA), no qual cada caractere é representado por um código binário exclusivo de 7 bits; assim, 128 caracteres diferentes podem ser representados. 7.3) Controle e tempo. Comunicação do processador. Comunicação do dispositivo. Armazenamento em buffer de dados. Detecção de erro. 7.4) E / S programada: O processador emite um comando de E / S, em nome de um processo, para um módulo de E/ S; esse processo então aguarda a operação ser concluída antes de prosseguir. E / S controlada por interrupção: O processador emite um comando de E / S em nome de um processo, continua a executar as instruções subsequentes e é interrompido pelo módulo de E / S quando este conclui seu trabalho. As instruções subsequentes podem estar no mesmo processo, se não for necessário que esse processo aguarde a conclusão da E / S. Caso contrário, o processo é suspenso enquanto se aguarda a interrupção e outro trabalho é executado. Acesso direto à memória (DMA): um módulo DMA controla a troca de dados entre a memória principal e um módulo de E / S. O processador envia um pedido de transferência de um bloco de dados ao módulo DMA e é interrompido somente após a transferência de todo o bloco. 7.5) Com a E / S mapeada pela memória, há um único espaço de endereço para locais de memória e dispositivos de E / S. O processador trata o status e os registros de dados dos módulos de E / S como locais de memória e usa as mesmas instruções da máquina para acessar a memória e os dispositivos de E / S. Com E / S isolada, um comando especifica se o endereço se refere a um local de memória ou a um dispositivo de E / S. A gama completa de endereços pode estar disponível para ambos.