Pular para o conteúdo

Hardware e Máquinas Virtuais

Ciência da Computação do A-Level · Tópico 15

Treinar
Videoaula para este tópico Abrir a página do vídeo
15:02

RISC, Pipelines e Lógica

Dois projetistas de chips enfrentam o mesmo problema: fazer programas rodarem rápido. Um diz — construa instruções poderosas, para que cada uma faça muito trabalho. O outro diz — mantenha…

Narração em inglês · Legendas em inglês + 中文 gravadas

15.1

Processadores RISC vs CISC

Programa
Os candidatos devem ser capazes de: Notas e orientações
Demonstrar compreensão de processadores Reduced Instruction Set Computers (RISC) e Complex Instruction Set Computers (CISC) Diferenças entre RISC e CISC. Compreender o manuseio de interrupções em processadores CISC e RISC
Demonstrar compreensão da importância/usos do pipelining e registradores em processadores RISC
Demonstrar compreensão das quatro arquiteturas de computador básicas SISD, SIMD, MISD, MIMD
Demonstrar compreensão das características de computadores massivamente paralelos
Demonstrar compreensão do conceito de máquina virtual Dar exemplos do papel das máquinas virtuais. Compreender os benefícios e limitações das máquinas virtuais

Fonte: Programa Cambridge International

Dois estilos de design de CPU. A CPU em si se conecta à placa-mãe 主板, a placa principal que liga o processador, a memória e todas as outras partes do computador juntos.

CISC tem muitas instruções complexas de comprimento variável; RISC tem poucas simples de comprimento fixo
CISC tem muitas instruções complexas; RISC tem poucas simples
Uma placa-mãe de computador sobre fundo branco, mostrando o soquete quadrado da CPU no centro, os slots longos de memória, vários slots de expansão e as fileiras de portas I/O ao longo de uma borda
Uma placa-mãe conecta a CPU, a memória e outras partes entre si

CISC

Um CISC 复杂指令集 (Computers de Conjunto de Instruções Complexas) possui muitas, frequentemente complexas instruções (uma pode realizar vários acessos à memória e operações), de comprimento variável, tornando a decodificação intricada. Ele faz mais por instrução no hardware. Exemplos: Intel x86.

RISC

Um RISC 精简指令集 (Computers de Conjunto de Instruções Reduzidas) possui um pequeno conjunto de instruções simples, cada uma realizando uma operação básica, todas de comprimento fixo (rápidas para decodificar). Apenas load e store tocam na memória; tudo o resto é de register 寄存器 a register. Os programas são maiores, mas cada instrução é rápida e previsível, o que se adequa ao pipeline. Exemplos: ARM, RISC-V.

Característica CISC RISC
Conjunto de instruções muitos poucos
Comprimento da instrução variável fixo
Acesso à memória muitas instruções apenas load/store
Amigável para pipeline mais difícil naturalmente
Ciclos por instrução varia geralmente 1

O compromisso é fazer mais por instrução (CISC) vs. fazer cada instrução mais rápido e de forma mais previsível (RISC). Chips modernos da Intel traduzem instruções CISC em micro-ops mais simples semelhantes a RISC internamente.

"Identifique quatro características de um processador RISC." Quaisquer quatro de: um pequeno conjunto de instruções simples; instruções de comprimento fixo (uma palavra); a maioria das instruções conclui em um ciclo de relógio; muitos registradores de uso geral; apenas instruções load e store acessam a memória (toda aritmética é de registrador a registrador); controle hard-wired (sem microcódigo); projetado para pipeline; o compiler faz mais do trabalho, então os programas contêm mais instruções e exigem mais memória. "Identifique quatro características de um processador CISC." Quaisquer quatro de: um grande conjunto de instruções, muitas delas complexas (uma instrução pode realizar várias operações); instruções de comprimento variável; instruções que levam vários ciclos de relógio; menos registradores; instruções que podem acessar a memória diretamente; controle microprogramado; menos adequado para pipeline; programas mais curtos, permitindo um compiler mais simples e menos memória. "Descreva o que significa RISC e CISC" (dois pontos cada): nomeie a abreviação e dê a ideia definidora (poucas instruções simples monociclo; muitas instruções complexas multiciclo).

Gerenciamento de interrupções nos dois designs. Em um processador CISC, a instrução atual, por mais complexa que seja, é concluída antes que a interrupção seja atendida; o processador então salva o conteúdo de seus registradores (incluindo o ponteiro de programa) na pilha, salta para a rotina de serviço de interrupção e restaura os registradores depois. Em um processador RISC com um pipeline, várias instruções estão a meio caminho no momento em que a interrupção 中断 chega, então o processador deve ou deixar que toda instrução no pipeline termine, ou descartar (flush) as instruções parcialmente executadas e reiniciá-las após a interrupção; de qualquer forma, o pipeline é esvaziado, os registradores são salvos e a rotina de serviço roda. A formulação do exame: "o pipeline torna o gerenciamento de interrupções mais complexo, porque o conteúdo do pipeline deve ser tratado antes que a interrupção possa ser atendida".

Vocabulário Treinar
Inglês Chinês Pinyin
motherboard/ˈmʌðəbɔːd/ 主板 zhǔ bǎn
CISC/sɪsk/ 复杂指令集 fù zá zhǐ lìng jí
RISC/rɪsk/ 精简指令集 jīng jiǎn zhǐ lìng jí
register/ˈredʒɪstə/ 寄存器 jì cún qì
interrupt/ˈɪntərʌpt/ 中断 zhōng duàn
15.1

Pipeline

Um pipeline 流水线 processa instruções em estágios sobrepostos, como uma linha de montagem: Fetch → Decode → Execute (na ALU 算术逻辑单元) → Memory access → Write back. Cada estágio trabalha em uma instrução diferente ao mesmo tempo, então assim que o pipeline está cheio, uma instrução é concluída por ciclo. As instruções RISC de comprimento fixo e simples fazem com que cada estágio leve o mesmo tempo. Um pipeline pode travar em uma hazard 冒险 — uma hazard de dados (uma instrução precisa de um resultado ainda não pronto) ou uma hazard de controle (uma branch torna o próximo endereço desconhecido).

Um gráfico de Gantt dos cinco estágios do pipeline IF, ID, EX, MEM, WB ao longo de dez ciclos de relógio, com seis instruções de A a F deslocalizadas um ciclo atrasado cada, sobrepondo-se diagonalmente
O pipeline sobrepõe os estágios de seis instruções, de modo que uma termina a cada ciclo

Chips RISC mantêm dados em muitos registradores porque a memória é lenta e os registradores são rápidos; o compiler aloca valores aos registradores de forma inteligente.

"Descreva o uso do pipeline em processadores RISC" (três pontos). (1) O ciclo fetch-execute é dividido em estágios (fetch, decode, execute, memory access, write back); (2) várias instruções estão no pipeline ao mesmo tempo, cada uma em um estágio diferente, de modo que enquanto uma está sendo executada, a próxima está sendo decodificada e a seguinte está sendo buscada; (3) uma nova instrução é iniciada, e uma concluída, em todo ciclo de relógio uma vez que o pipeline está cheio, o que aumenta a throughput 吞吐量 (o número de instruções concluídas por segundo), embora cada instrução ainda leve o mesmo tempo isoladamente. Instruções RISC monociclo de comprimento fixo são o que tornam os estágios iguais e o pipeline possível.

Exemplo resolvido. Um processador usa cinco estágios de pipeline (IF, ID, OF, EX, WB). Quatro instruções entram no pipeline uma após a outra. Em qual ciclo a última instrução conclui, e quantos ciclos levariam as quatro sem pipeline?

A instrução 1 ocupa IF no ciclo 1, ID em 2, OF em 3, EX em 4 e WB em 5; a instrução 2 começa um ciclo depois e termina no ciclo 6; a instrução 3 no ciclo 7; a instrução 4 no ciclo 8. Em geral, $n$ instruções através de $k$ etapas levam $n + k - 1$ ciclos, aqui $4 + 5 - 1 = 8$. Sem pipeline, cada instrução leva todos os cinco ciclos antes que a próxima comece: $4 \times 5 = 20$ ciclos. A tabela da prova é preenchida escrevendo as etapas de cada instrução diagonalmente, uma coluna à direita da instrução anterior.

Um processador que opera nesta velocidade gera muito calor, então um heat-sink 散热器 e um ventilador ficam acima dele. As aletas metálicas espalham o calor e o ventilador o afasta, mantendo a CPU suficientemente fria para funcionar.

Um cooler de torre para CPU com um ventilador preto na frente, uma alta pilha de finas aletas de resfriamento metálicas e tubos de calor de cobre subindo da base plana que toca o processador
Um heat-sink e ventilador de CPU transportam o calor para longe do processador
Explorar

Como o pipeline enche

Passo a passo pelos ciclos de relógio. Uma vez que o pipeline está cheio, uma nova instrução termina a cada ciclo — mesmo que cada uma ainda leve várias etapas — porque as etapas de instruções diferentes se sobrepõem.

Vocabulário Treinar
Inglês Chinês Pinyin
pipeline/ˈpaɪplaɪn/ 流水线 liú shuǐ xiàn
ALU/ˌeɪ el ˈjuː/ 算术逻辑单元 suàn shù luó jí dān yuán
hazard/ˈhæzəd/ 冒险 mào xiǎn
throughput/ˈθruːpʊt/ 吞吐量 tūn tǔ liàng
heat-sink/hiːt sɪŋk/ 散热器 sàn rè qì
Flynn's taxonomy/flɪnz tækˈsɒnəmi/ 弗林分类 fú lín fēn lèi
15.1

Taxonomia de Flynn

Taxonomia de Flynn 弗林分类 classifica computadores pelo número de fluxos de instrução e dados:

  • SISD — uma instrução, um fluxo de dados (um único núcleo tradicional).
  • SIMD 单指令多数据 — uma instrução atua em muitos itens de dados ao mesmo tempo (GPUs, extensões vetoriais de CPU). Ótimo para imagens, vídeo, matrizes científicas.
  • MISD — várias operações nos mesmos dados; raro, principalmente teórico.
  • MIMD 多指令多数据 — muitos processadores executam instruções diferentes em dados diferentes (CPUs multi-core, clusters). O mais geral.

Descrever as quatro arquiteturas (dois pontos cada). SISD: um processador único executa uma instrução de cada vez em um item de dados; sem paralelismo, a máquina tradicional von Neumann. SIMD: uma instrução é aplicada simultaneamente a muitos itens de dados, por muitos elementos de processagem atuando em sincronia; usado para processamento de matrizes e gráficos. MISD: vários processadores aplicam instruções diferentes aos mesmos dados; raramente usado, por exemplo um sistema tolerante a falhas onde vários processadores verificam um único fluxo. MIMD: muitos processadores, cada um executando suas próprias instruções em seus próprios dados, independentemente; o computador multi-core e o cluster.

Uma unidade de controle única transmitindo um fluxo de instruções para quatro unidades de processamento, cada uma trabalhando em seu próprio item de dados
SIMD: muitos processadores executam a mesma instrução em dados diferentes

Uma placa de vídeo 显卡 (com sua GPU) é um exemplo real de hardware SIMD: ela tem milhares de núcleos pequenos que executam a mesma instrução em muitos pixels ou números ao mesmo tempo, é por isso que GPUs são tão rápidas para imagens, vídeo e aprendizado de máquina.

Uma placa de vídeo sobre fundo branco, mostrando o grande ventilador de resfriamento sobre a GPU e o conector dourado que se encaixa na placa-mãe
Uma placa de vídeo: sua GPU executa a mesma instrução em muitos itens de dados ao mesmo tempo (SIMD)
Quatro processadores independentes, cada um alimentado por seu próprio fluxo de instruções separado vinda de cima e seu próprio item de dados vindo de baixo
MIMD: cada processador executa suas próprias instruções em seus próprios dados
Vocabulário Treinar
Inglês Chinês Pinyin
SIMD/ˈsɪmdiː/ 单指令多数据 dān zhǐ lìng duō shù jù
MIMD/ˈmɪmdiː/ 多指令多数据 duō zhǐ lìng duō shù jù
graphics card/ˈɡræfɪks kɑːd/ 显卡 xiǎn kǎ
massively parallel/ˈmæsɪvli ˈpærəlel/ 大规模并行 dà guī mó bìng xíng
distributed memory/ˈdɪstrɪbjuːtɪd ˈmeməri/ 分布式内存 fēn bù shì nèi cún
15.1

Computadores massivamente paralelos

Um sistema massivamente paralelo 大规模并行 usa milhares de processadores em uma rede rápida, cada um com sua própria memória (memória distribuída 分布式内存), trocando dados por mensagens. É MIMD, exige software especialmente escrito (MPI, CUDA) e se adequa a simulação climática, treinamento de machine learning 机器学习 em larga escala e astrofísica. Os maiores supercomputers 超级计算机 são massivamente paralelos.

"Esboce as características de computadores massivamente paralelos" (três pontos). Um número muito grande de processadores (milhares), cada um com sua própria memória, conectados por uma rede (uma interconexão de alta velocidade ou barramento) para que possam passar mensagens uns aos outros; eles trabalham simultaneamente em partes do mesmo problema, de modo que o problema deve ser escrito como um programa que pode ser dividido em partes que executam em paralelo e combinam seus resultados. É um arrangement MIMD.

Os processadores vivem em racks de server 服务器 altos, muitas vezes enchendo uma sala inteira (um data centre 数据中心), cabeados juntos para trabalharem em um grande problema ao mesmo tempo.

Uma longa fileira de racks de servidor pretos sobre um piso branco elevado em um data center, cheios de equipamentos e cabos
Fileiras de servidores em um data center, como aqueles usados para computação massivamente paralela
Vocabulário Treinar
Inglês Chinês Pinyin
machine learning/məˈʃiːn ˈlɜːnɪŋ/ 机器学习 jī qì xué xí
supercomputers/ˌsuːpəkəmˈpjuːtəz/ 超级计算机 chāo jí jì suàn jī
server/ˈsɜːvə/ 服务器 fú wù qì
data centre/ˈdeɪtə ˈsentə/ 数据中心 shù jù zhōng xīn
virtual machine/ˈvɜːtʃuːəl məˈʃiːn/ 虚拟机 xū nǐ jī
15.1

Máquinas virtuais

Uma máquina virtual 虚拟机 (VM) é uma emulação por software de um computador inteiro — o software interno vê uma CPU, memória e discos que parecem reais, mas são gerenciados por software host.

  • uma VM de sistema executa um OS completo. Um hypervisor 虚拟机监控器 cria e gerencia VMs, cada uma inicializando seu próprio OS convidado. Usos: executar diferentes SOs em uma máquina; consolidação de servidores; sandboxing 沙箱 (software arriscado roda isolado); snapshots.
  • uma VM de processo (linguagem) executa um programa em bytecode 字节码 portátil — a JVM (Java), a CLR (.NET), CPython. Benefícios: portabilidade ("escreva uma vez, execute em qualquer lugar"), verificações de segurança em tempo de execução e just-in-time compilation 即时编译 para velocidade quase nativa. O custo é uma camada extra e precisar ter a VM instalada.
Uma pilha de máquina virtual: o hardware físico na base, o sistema operacional host acima dele, depois o hipervisor e, acima disso, três máquinas virtuais, cada uma contendo um sistema operacional convidado com seus próprios aplicativos
Um computador real, vários aparentes: o sistema operacional host e o hipervisor compartilham o hardware, e cada sistema operacional convidado roda como se tivesse sua própria máquina

"Descreva o que se entende por máquina virtual" (duas marcas). Uma emulação (implementação) de software de um sistema computacional que roda em um computador host e se comporta, para os programas rodando dentro dele, como um computador físico separado com seu próprio processador, memória e armazenamento. O sistema operacional host 宿主操作系统 roda no hardware real, gerencia os recursos reais e (através do hipervisor) cria e controla as máquinas virtuais; cada sistema operacional convidado 客户操作系统 roda dentro de uma máquina virtual, gerencia os aplicativos nele, e não tem consciência de que seu hardware é virtual.

Benefícios (dê dois). Vários sistemas operacionais diferentes podem rodar em uma mesma máquina ao mesmo tempo; software pode ser testado em muitos sistemas sem comprar o hardware; um novo sistema computacional pode ser emulado e testado antes de ser construído; cada VM está isolada, então uma falha ou malware em uma não afeta a host ou as outras; VMs podem ser copiadas, movidas e fazer backup como arquivos, e um servidor pode ser compartilhado entre muitos usuários, reduzindo o custo de hardware. Limitações (dê duas). Uma VM roda mais devagar que o hardware real porque cada instrução passa pela camada de emulação; consome a memória e potência de processamento da host, então a host deve ser poderosa; alguns recursos ou dispositivos de hardware não são emulados exatamente, então o software testado pode se comportar diferente na máquina real; licenças são necessárias para cada OS convidado, e configurar o sistema exige experiência.

Explorar

Laboratório de conceitos de computação

Classifique exemplos concretos pelo conceito de computação que eles demonstram.

Vocabulário Treinar
Inglês Chinês Pinyin
hypervisor/ˌhaɪpəˈvaɪzə/ 虚拟机监控器 xū nǐ jī jiān kòng qì
sandboxing/ˈsændbɒksɪŋ/ 沙箱 shā xiāng
bytecode/ˈbaɪtkəʊd/ 字节码 zì jié mǎ
just-in-time compilation/dʒʌst ɪn taɪm ˌkɒmpɪˈleɪʃn/ 即时编译 jí shí biān yì
host operating system/həʊst ˈɒpəreɪtɪŋ ˈsɪstəm/ 宿主操作系统 sù zhǔ cāo zuò xì tǒng
guest operating system/ɡest ˈɒpəreɪtɪŋ ˈsɪstəm/ 客户操作系统 kè hù cāo zuò xì tǒng
Boolean algebra/ˈbuːlɪən ˈældʒɪbrə/ 布尔代数 bù ěr dài shù
15.2

Álgebra booleana

Programa
Os candidatos devem ser capazes de: Notas e orientações
Produzir tabelas-verdade para circuitos lógicos incluindo meio somadores e somadores completos Pode incluir portas lógicas com mais de duas entradas
Demonstrar compreensão de um flip-flop (SR, JK) Desenhar um circuito lógico e derivar uma tabela-verdade para um flip-flop. Compreender o papel dos flip-flops como elementos de armazenamento de dados
Demonstrar compreensão da álgebra booleana Compreender as leis de De Morgan. Realizar álgebra booleana usando as leis de De Morgan. Simplificar um circuito/expressão lógica usando álgebra booleana
Demonstrar compreensão de mapas de Karnaugh (K-map) Compreender os benefícios do uso de mapas de Karnaugh. Resolver problemas lógicos usando mapas de Karnaugh

Fonte: Programa Cambridge International

O meio somador: XOR + AND soma dois bits

Álgebra booleana 布尔代数 simplifica expressões booleanas 布尔表达式, que também podem ser descritas por tabelas-verdade 真值表. Símbolos: + para OR, · para AND (muitas vezes omitido), barra superior para NOT.

As leis principais incluem comutativa, associativa e distributiva (como na álgebra comum), além de:

  • identidade $A + 0 = A$, $A \cdot 1 = A$; nula $A + 1 = 1$, $A \cdot 0 = 0$.
  • idempotente $A + A = A$; inversa $A + \overline{A} = 1$, $A \cdot \overline{A} = 0$.
  • Leis de De Morgan 德摩根定律: $(A + B)' = A' \cdot B'$; $(A \cdot B)' = A' + B'$ — negue todo o termo, troque AND/OR, negue cada operando.
  • absorção 吸收律: $A + AB = A$.

A simplificação reduz o número de termos, então o circuito lógico resultante tem menos portas. Exemplo: $Z = AB + A\overline{B} = A(B + \overline{B}) = A$.

As leis com seus nomes (cite o nome em cada passo quando for pedido "mostre todo o desenvolvimento").

Lei Forma OR Forma AND
identidade $A + 0 = A$ $A \cdot 1 = A$
nula (anulação) $A + 1 = 1$ $A \cdot 0 = 0$
idempotente $A + A = A$ $A \cdot A = A$
complemento (inversa) $A + \overline{A} = 1$ $A \cdot \overline{A} = 0$
comutativa $A + B = B + A$ $A \cdot B = B \cdot A$
associativa $A + (B + C) = (A + B) + C$ $A(BC) = (AB)C$
distributiva $A + BC = (A + B)(A + C)$ $A(B + C) = AB + AC$
absorção $A + AB = A$ $A(A + B) = A$
De Morgan $\overline{A + B} = \overline{A} \cdot \overline{B}$ $\overline{A \cdot B} = \overline{A} + \overline{B}$
dupla negação $\overline{\overline{A}} = A$

Exemplo resolvido. Simplifique $X = \overline{\overline{(A \cdot B)} \cdot \overline{(A + B)}}$, mostrando todo o desenvolvimento.

$X = \overline{\overline{(A \cdot B)}} + \overline{\overline{(A + B)}}$ (De Morgan na barra externa) $= A \cdot B + A + B$ (dupla negação) $= A + B$ (absorção, $A + AB = A$, aplicado com $A + B$ absorvendo $AB$).

Exemplo resolvido. Simplifique $(\overline{A + B}) \cdot (\overline{A} + B)$.

$= \overline{A} \cdot \overline{B} \cdot (\overline{A} + B)$ (De Morgan) $= \overline{A}\,\overline{B}\,\overline{A} + \overline{A}\,\overline{B}\,B$ (distributiva) $= \overline{A}\,\overline{B} + 0$ (idempotente, complemento) $= \overline{A}\,\overline{B}$.

Exemplo resolvido. Simplifique $Y = \overline{A}\,\overline{B}\,\overline{C} + \overline{A}\,\overline{B}\,C + A\,\overline{B}\,C$.

$= \overline{A}\,\overline{B}(\overline{C} + C) + A\,\overline{B}\,C$ (distributiva) $= \overline{A}\,\overline{B} + A\,\overline{B}\,C$ (complemento, identidade) $= \overline{B}(\overline{A} + AC)$ (distributiva) $= \overline{B}(\overline{A} + C)$, usando $\overline{A} + AC = (\overline{A} + A)(\overline{A} + C) = \overline{A} + C$. Aplicar De Morgan a um termo de três entradas funciona da mesma forma: $\overline{A + B + C} = \overline{A} \cdot \overline{B} \cdot \overline{C}$.

Soma-de-produtos a partir de tabela-verdade. Pegue todas as linhas cuja saída seja 1, escreva o AND de suas entradas (uma variável com barra onde for 0) e OR os termos: uma linha com $A = 1, B = 0, C = 1$ resulta em $A\,\overline{B}\,C$. Esta é a forma soma-de-produtos 积之和 que o exame pede, e é o ponto de partida tanto para simplificação algébrica quanto para mapa de Karnaugh.

Explorar

Álgebra booleana

A·B, A+B, Ā …

A álgebra booleana são apenas essas portas escritas como expressões — compare as tabelas-verdade.

Explorar

Tabelas-verdade booleanas

Escolha um operador e as entradas para construir sua tabela-verdade — a álgebra por trás dos circuitos lógicos.

Vocabulário Treinar
Inglês Chinês Pinyin
Boolean/ˈbuːlɪən/ 布尔 bù ěr
truth tables/truːθ ˈteɪblz/ 真值表 zhēn zhí biǎo
De Morgan's laws/də ˈmɔːɡənz lɔːz/ 德摩根定律 dé mó gēn dìng lǜ
absorption/əbˈsɔːpʃn/ 吸收律 xī shōu lǜ
sum-of-products/sʌm ɒv ˈprɒdʌkts/ 积之和 jī zhī hé
Karnaugh map/ˈkɑːnɔː mæp/ 卡诺图 kǎ nuò tú
half adder/hɑːf ˈædə/ 半加器 bàn jiā qì
Assistir aula
15.2

Mapas de Karnaugh

Um mapa Karnaugh 卡诺图 (K-map) simplifica uma expressão Booleana agrupando 1s adjacentes de uma tabela verdade. Colunas e linhas usam ordem Gray code 格雷码 (00, 01, 11, 10) para que células adjacentes diferem em uma variável.

Coloque um 1 em cada célula onde a saída é 1. Encontre grupos retangulares de 1s cujos lados sejam potências de 2 (1, 2, 4, 8), voltando nas bordas se isso criar um grupo maior. Quanto maior o grupo, mais simples o termo: um grupo de 2 elimina uma variável, um grupo de 4 elimina duas, e assim por diante — variáveis que mudam dentro do grupo desaparecem. Some os termos dos grupos para a expressão simplificada. Cubra todos os 1s usando o menor número possível de grupos, mas os maiores possíveis.

Exemplo resolvido. Um mapa Karnaugh para $A$ e $B$ tem 1s nas células $\overline{A}B$ e $AB$. Simplifique. Os dois 1s são adjacentes - eles compartilham a coluna $B=1$ - então agrupe-os como um retângulo de 2. Dentro desse grupo $B$ permanece 1 durante todo o tempo enquanto $A$ muda de 0 para 1, e qualquer variável que mude dentro de um grupo desaparece. Então o grupo deixa apenas $X = B$. Compare isso com a soma de produtos lida diretamente da tabela, $\overline{A}B + AB$: o mesmo circuito, duas portas a menos. Duas regras fazem a maior parte do trabalho - faça cada grupo o maior possível (um grupo de 2 elimina uma variável, 4 elimina duas, 8 elimina três), e lembre-se de que o mapa volta em suas bordas, então as colunas mais à esquerda e mais à direita são adjacentes. Esse retorno é o agrupamento que a maioria dos candidatos perde.

Dois mapas de Karnaugh: um mapa de três variáveis para uma expressão de seis termos com um loop vermelho de quatro descendo pelas primeiras duas colunas dando not A e um loop azul de quatro envolvendo as colunas externas dando not B; e um mapa de quatro variáveis cujos quatro uns nos cantos formam um loop envolvente dando not B e not D
Loops de 1, 2, 4 ou 8 uns; o termo para um loop mantém apenas as variáveis que não mudam dentro dele. As bordas se conectam, então um loop pode envolver-se, e os quatro cantos contam como adjacentes

Construindo e lendo um mapa K. Rótule as colunas $AB$ e as linhas $C$ (ou $CD$) em ordem Gray-code 00 01 11 10, para que células vizinhas diferem em apenas uma variável. Coloque um 1 em cada célula cujo mintermo aparece na expressão (ou cuja linha da tabela verdade produz 1). Então desenhe os menores, maiores laços que cobrem todos os 1s: cada laço deve ser um retângulo de $1, 2, 4$ ou $8$ células, losos podem se sobrepor, podem voltar através das bordas esquerda-direita e topo-fundo, e os quatro cantos juntos formam um laço. Para cada laço, escreva as variáveis que são constantes dentro dele (barreadas se 0), e some os termos do laço: essa é a soma-de-produtos ótima. Por que usar um? Ele fornece a expressão mais simples sem álgebra, em poucos passos, com menos chance de erro, e o mesmo mapa serve para três ou quatro variáveis.

Exemplo resolvido. $Z = \overline{A}\,\overline{B}\,\overline{C} + \overline{A}\,\overline{B}\,C + \overline{A}\,B\,\overline{C} + \overline{A}\,B\,C + A\,\overline{B}\,\overline{C} + A\,\overline{B}\,C$.

No mapa de três variáveis, os 1s preenchem as colunas 00, 01 e 10 em ambas as linhas. O laço de quatro sobre as colunas 00 e 01 tem $A = 0$ em toda parte e $B$, $C$ variando: termo $\overline{A}$. O laço de quatro sobre as colunas 00 e 10 (envolvendo) tem $B = 0$ em toda parte: termo $\overline{B}$. Então $Z = \overline{A} + \overline{B}$, o que a álgebra booleana confirma: $\overline{A}(\overline{B} + B) + \ldots = \overline{A} + \overline{B}$. Dois laços de dois também seriam corretos, mas não ótimos; um laço é tão grande quanto os 1s permitem.

Exemplo resolvido (quatro variáveis). Um mapa tem 1s apenas nos seus quatro cantos: $\overline{A}\,\overline{B}\,\overline{C}\,\overline{D}$, $A\,\overline{B}\,\overline{C}\,\overline{D}$, $\overline{A}\,\overline{B}\,C\,\overline{D}$ e $A\,\overline{B}\,C\,\overline{D}$. Como as linhas superior e inferior são adjacentes e assim são as colunas externas, os cantos formam um único laço de quatro; $B = 0$ e $D = 0$ em todos eles enquanto $A$ e $C$ variam, então $Z = \overline{B}\,\overline{D}$.

Vocabulário Treinar
Inglês Chinês Pinyin
Gray code/ɡreɪ kəʊd/ 格雷码 gé léi mǎ
15.2

Somador meio e somador completo

Um somador meio 半加器 soma dois bits únicos $A$ e $B$, dando uma soma $S$ e um carry 进位 $C$:

A B S C
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1

Então $S = A \text{ XOR } B$ e $C = A \text{ AND } B$. Ele ignora qualquer carry-in — daí "meio".

Um bloco de somador meio com entradas A e B e saídas sum e carry, ao lado de seu circuito onde A e B alimentam uma porta XOR dando a soma e uma porta AND dando o carry
Um somador meio, como um bloco e como um circuito de uma porta XOR e uma porta AND

Um somador completo 全加器 soma três bits ($A$, $B$, carry-in), dando uma soma e um carry-out: $S = A \text{ XOR } B \text{ XOR } C_{\text{in}}$. Pode ser construído de dois somadores meios mais uma porta OR. Encadear somadores completos (cada carry-out alimentando o next carry-in) faz um somador multi-bit "ripple-carry".

Dois somadores meios encadeados com uma porta OR para somar A, B e um carry-in: o primeiro somador meio pega A e B, o segundo adiciona o carry-in, e a porta OR combina os dois carries no carry-out
Um somador completo é construído de dois somadores meios e uma porta OR

Tabela-verdade do somador completo. Com entradas $A$, $B$ e o carry-in $C_{\text{in}}$: a soma $S$ é 1 quando um número ímpar de entradas é 1, e o carry-out é 1 quando dois ou mais entradas são 1.

$A$ $B$ $C_{\text{in}}$ $S$ $C_{\text{out}}$
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

As questões de circuito que o exame propõe. Dado um circuito de uma porta XOR e uma porta AND compartilhando duas entradas, ou dois somadores meios e uma porta OR, "complete a tabela-verdade (mostre seu desenvolvimento)" significa adicionar uma coluna para cada saída de porta intermediária e preencher as linhas em ordem; "affe o nome do circuito" é somador meio ou somador completo; "affe o propósito de cada saída" é a soma dos bits e o carry para a próxima coluna. Soma-de-produtos para o somador meio: $S = \overline{A}B + A\overline{B}$, $C = AB$. Uma cadeia de somadores completos, cada um passando seu carry-out para o next carry-in, soma dois números multi-bit.

Explorar

As portas dentro de um somador

O bit de soma de um half-adder é uma porta XOR e seu carry é uma porta AND — alterne A e B e veja a linha da tabela-verdade acender.

Vocabulário Treinar
Inglês Chinês Pinyin
carry/ˈkæri/ 进位 jìn wèi
full adder/fʊl ˈædə/ 全加器 quán jiā qì
15.2

Flip-flops

Um flip-flop 触发器 é um circuito bistável 双稳态 — dois estados estáveis (0 e 1) — que lembra seu estado. Armazena um bit e é o elemento básico de registradores e SRAM.

Flip-flop SR

Um flip-flop SR SR触发器 tem entradas S (set) e R (reset) e saídas Q e $\overline{Q}$. S=1,R=0 define Q para 1; S=0,R=1 o reseta para 0; S=0,R=0 mantém; S=1,R=1 é inválido. Construído de duas portas NOR acopladas cruzadamente.

Um flip-flop SR construído de duas portas NOR acopladas cruzadamente, com S alimentando uma porta e R a outra, a saída de cada porta retroalimentada na entrada da outra, e sua tabela-verdade: hold, set, reset e o estado inválido
O flip-flop SR: duas portas NOR alimentando uma à outra. Com ambas as entradas 0, as saídas mantêm o que eram, que é a memória; S define Q para 1, R o reseta, e S = R = 1 não é permitido

"Desenhe um circuito lógico para um flip-flop SR e rotule as entradas." Dois portas NOR (ou duas portas NAND), a saída de cada uma conectada de volta a uma entrada da outra; a entrada livre de uma porta é S, da outra R; as saídas são $Q$ e $\overline{Q}$. O feedback é o que vale pontos: sem ele não há memória. "Explique o propósito de um flip-flop." Armazenar um bit de dados; é o elemento básico de memória do qual registros e RAM estática são construídos, e mantém seu valor até ser intencionalmente alterado. A entrada inválida $S = R = 1$ faz com que ambas as saídas fiquem 0, de modo que $\overline{Q}$ já não seja o complemento de $Q$, e o estado após ambas as entradas retornarem a 0 é imprevisível, que é a fraqueza do flip-flop SR.

Flip-flop JK

Um flip-flop JK JK触发器 melhora isso ao usar a entrada anteriormente inválida 1,1 como toggle 翻转 (a saída inverte). Isso o torna ideal para construir contadores 计数器 (uma cadeia de flip-flops com toggle). Geralmente é com clock — as entradas atuam apenas na borda do clock, mantendo os flip-flops sincronizados.

Um símbolo de bloco de flip-flop JK com entradas J, K e relógio e saídas Q e Q-barra, ao lado de sua construção com quatro portas NAND cruzadas com as saídas Q e Q-barra retroalimentadas nas portas de entrada
Um flip-flop JK: seu símbolo e uma construção a partir de portas NAND

Flip-flops são os blocos construtivos de registros (n bits = n flip-flops), contadores e células de SRAM 静态RAM.

Tabela-verdade do flip-flop JK. A entrada clock 时钟 decide quando as entradas J e K são lidas, de modo que a saída muda apenas em um pulso de clock: com $J = K = 0$ a saída é mantida; $J = 1, K = 0$ define $Q$ para 1; $J = 0, K = 1$ zera para 0; $J = K = 1$ inverte (Q torna-se $\overline{Q}$). A última linha é exatamente a entrada proibida do flip-flop SR transformada em útil, pelo qual o JK é preferido: toda combinação de entradas é válida, e a operação com clock o torna o bloco construtivo de contadores e registros de deslocamento.

Vocabulário Treinar
Inglês Chinês Pinyin
flip-flop/flɪp flɒp/ 触发器 chù fā qì
bistable/baɪˈsteɪbl/ 双稳态 shuāng wěn tài
toggle/ˈtɒɡl/ 翻转 fān zhuǎn
counters/ˈkaʊntəz/ 计数器 jì shù qì
SRAM/ˈesræm/ 静态RAM jìng tài RAM
clock/klɒk/ 时钟 shí zhōng
SR flip-flop/ˌes ˈɑː flɪp flɒp/ SR触发器 SR chù fā qì
JK flip-flop/ˌdʒeɪ ˈkeɪ flɪp flɒp/ JK触发器 JK chù fā qì
15.2

Definições aceitas pelo examinador

Uma questão de definição é avaliada contra wording fixo. Aprenda estas exatamente, e dê apenas uma resposta.

Termo Definição
RISC um processador com um pequeno conjunto de instruções simples, de comprimento fixo, executadas na maioria em um ciclo de clock, usando muitos registros e pipeline
CISC um processador com um grande conjunto de instruções complexas, de comprimento variável, muitas levando vários ciclos de clock e acessando memória diretamente
pipeline dividir o ciclo de busca-execução em estágios para que várias instruções sejam processadas simultaneamente, cada uma em um estágio diferente
SISD / SIMD / MISD / MIMD uma instrução em um item de dados; uma instrução em muitos itens de dados; muitas instruções em um item de dados; muitas instruções em muitos itens de dados
computador massivamente paralelo milhares de processadores, cada um com sua própria memória, conectados por uma rede e trabalhando simultaneamente em um único problema
máquina virtual uma emulação de software de um sistema de computador rodando em um computador host e comportando-se como um computador físico separado
hipervisor o software que cria máquinas virtuais e compartilha o hardware do host entre elas
tabela-verdade uma tabela listando todas as combinações de entradas de um circuito lógico com a(s) saída(s) resultante(s)
soma-de-produtos uma expressão booleana escrita como a OR de termos AND, um termo para cada combinação de entrada que resulta em 1
mapa de Karnaugh uma grade das saídas da tabela-verdade, organizadas em ordem de Gray, em que laços de 1s adjacentes fornecem a expressão simplificada
somador parcial um circuito que soma dois bits, produzindo uma soma e um acarretar
somador completo um circuito que soma dois bits e um acarretar de entrada, produzindo uma soma e um acarretar de saída
flip-flop um circuito bistável que armazena um bit, mantendo sua saída até que suas entradas a alterem
15.2

Dicas de prova

  • RISC e CISC são respondidos como listas de características: simples, fixo, um ciclo, muitos registros, carga/armazenamento, pipeline contra complexo, variável, multi-ciclo, menos registros, acesso direto à memória, microcódigo. Quatro de cada.
  • Pipeline: estágios, várias instruções ao mesmo tempo, uma concluída por ciclo, maior taxa de transferência; $n + k - 1$ ciclos para $n$ instruções através de $k$ estágios; interrupções devem esvaziar o pipeline.
  • As quatro categorias de Flynn são "quantas correntes de instrução" por "quantas correntes de dados"; diga o que roda no quê. Massivamente paralelo: muitos processadores, memória própria, rede, mesmo problema.
  • Máquina virtual: emulação de um computador em um host; SO host no hardware, hipervisor compartilhando-o, SO convidado dentro. Dois benefícios e duas limitações, cada um uma frase completa.
  • Álgebra booleana: nomeie cada lei conforme a usa; De Morgan troca o operador e nega cada termo; verifique com uma tabela-verdade se tiver dúvidas.
  • Mapa-K: ordem de Gray, maiores laços de 1/2/4/8, envolvimento permitido, um termo por laço com as variáveis inalteradas. Diga o porquê: expressão mais simples sem álgebra.
  • Somador parcial dá soma e acarretar; somador completo também leva acarretar de entrada; flip-flop SR tem duas portas NOR/NAND cruzadas e armazena um bit; JK com entrada 1,1 inverte.

Erros comuns

  • Inverter as listas de características RISC e CISC, ou oferecer "mais rápido" como característica; dê as características de projeto, não um veredito.
  • Descrever pipeline como "executar instruções em paralelo em vários núcleos"; são estágios de um processador sobrepostos.
  • Confundir SIMD (uma instrução, muitos dados) com MIMD (muitos de ambos), ou descrever MISD como o caso comum.
  • Definir máquina virtual como "uma cópia de um computador" sem a palavra emulação ou o host e o convidado.
  • Aplicar De Morgan apenas a parte de uma expressão sob uma barra longa, ou remover a barra sem trocar AND por OR.
  • Fazer um laço de um grupo de três, ou um grupo não retangular, em um mapa-K; ordenar as colunas 00, 01, 10, 11 em vez de código Gray.
  • Escrever o acarretar de um somador parcial como XOR e a soma como AND.
  • Desenhar um flip-flop SR como duas portas sem feedback, ou omitir o estado inválido de sua tabela-verdade.

Aulas interativas sobre este tópico

Passe por ele passo a passo, com exercícios de verificação instantânea.

Provas Anteriores

Mais tópicos em Ciência da Computação do A-Level

Entrar ou criar conta

IGCSE, A-Level & AP