| 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 |
Hardware e Máquinas Virtuais
Ciência da Computação do A-Level · Tópico 15
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
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
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".
| 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).

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.

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.
| 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 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.


| 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.

| 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.

"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.
Laboratório de conceitos de computação
Classifique exemplos concretos pelo conceito de computação que eles demonstram.
| 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
Á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.
Álgebra booleana
A·B, A+B, Ā …
A álgebra booleana são apenas essas portas escritas como expressões — compare as tabelas-verdade.
Tabelas-verdade booleanas
Escolha um operador e as entradas para construir sua tabela-verdade — a álgebra por trás dos circuitos lógicos.
| 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ì |
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.

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}$.
| 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 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".

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.
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.
| 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.

"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.

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.
| 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.