Arquitectura de Computadores

Notas de estudo

Alberto José Proença

1997/98

EM CONSTRUÇÃO... 

 

Índice geral

 Capítulos | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

  

  1. Actividades paralelas em arquitecturas SIxD
    1. Taxonomia de Flynn
    2. Visão do ponto de vista do programador
    3. Implementação de actividades paralelas em SIxD
    4. Paralelismo ao nível da arquitectura do instruction set
    5. Computação vectorial e Array Processors
    6. Processadores superescalares
    7. Índices da bibliografia referenciada
    8.  

      A introdução de pipeline na arquitectura de processadores foi já um passo na introdução de paralelismo na execução das instruções: é uma forma de paralelismo no tempo, que não requer replicação total dos circuitos digitais. No entanto, a designação mais corrente de paralelismo na arquitectura de sistemas de computação refere-se ao paralelismo no espaço, pressupondo replicação de circuitos que processam a informação.

      A introdução a este tópico começa com a apresentação da taxonomia clássica de Flynn, onde são identificadas e analisadas as três alternativas mais comuns para a realização de actividades paralelas: (i) na ilusão de que o sistema para o qual se está a programar tem um comportamento sequencial; (ii) em sistemas que suportam paralelismo de actividades/processos, mas cujas variáveis partilham um mesmo espaço de endereçamento; e (iii) em sistemas cujas actividades/processos estão disjuntos e apenas comunicam explicitamente por mensagens. A bibliografia de referência (e em especial o Cap. 9) contém o material necessário e suficiente para a compreensão do tema; contudo, este assunto será exposto durante as aulas com recurso a outras referências que, em conjunto, apresentam uma visão mais completa do mesmo. Para quem estiver interessado nas outras referências:

      Culler, D., Singh, J., Gupta, A., Parallel Computer Architecture. A Hardware Software Approach, Morgan Kaufmann Publishers, 1998

      Henessy & Patterson, Computer Architecture: A Quantitative Approach, 2nd Ed., Morgan Kaufmann, 1996

      Hwang, K., Advanced Computer Architecture: Parallelism, Scalability, Programmability, McGraw Hill, 1993

      Kain, R.Y., Advanced Architecture: A System Design Approach, Prentice Hall, 1996

      Stallings, W., Computer Organization and Architecture: Designing for Performance, 4th Ed., Prentice Hall, 1996

      Zargham, M.R., Computer Architecture: Single and Parallel Systems, Prentice Hall, 1996

      O assunto deste capítulo tem como objectivo complementar as secções 9.1 e 9.2 do texto de referência. Adicionalmente, a organização dos tópicos sob a perspectiva de "ilusão de que o sistema para o qual se está a programar tem um comportamento sequencial" foi inspirada no livro de Kain.

       

    9. Taxonomia de Flynn
    10. · Single instruction stream, single data stream (SISD, uniprocessador)

      · Single instruction stream, multiple data stream (SIMD, comp.vectorial, array proc)

      · Multiple instruction stream, single data stream (MISD, ??)

      · Multiple instruction stream, multiple data stream (MIMD, multi-proc, multi-comp)

       

    11. Visão do ponto de vista do programador
    12. Aplicações que suportam a ilusão de single instruction stream => técnicas de paralelismo síncrono (actividades paralelas em SIxD)

      Aplicações que suportam processos com partilha de memória

      Aplicações que suportam processos que comunicam por mensagens

       

    13. Implementação de actividades paralelas em SIxD
    14. Com escalonamento estático

      - ao nível da arquitectura do instruction set

      - computação vectorial e array processors

      Com escalonamento dinâmico

      - processadores superescalares

       

    15. Paralelismo ao nível da arquitectura do instruction set
    16. Incluido no formato de instrução; exemplos

      - op aritm/lóg e de shift (MIPS)

      - move condicional (Alpha, HP-PA, MIPS, PowerPC, SPARC)

      Paralelismo de unidades funcionais

      fig 3.44 do novo livro de H&P

      Processadores VLIW

      Características:

      - versão "estática" de arquitectura superescalar

      - impõe paralelismo funcional ao nível da instrução, competindo ao compilador a extracção de paralelismo

      Inconvenientes (versus arquitecturas superescalares):

      => não permite reordenação dinâmica de instruções => desperdiça espaço de memória => penalização pesada com cache miss => dificulta evolução na microarquitectura

      fig 4.14 de Hwang

       

    17. Computação vectorial e Array Processors
    18. Características

      - unidade de controlo centralizado (acoplado a um processador escalar)

      - paralelismo ao nível dos dados, através de:

      - vários [ bancos de registos + ALU ] que actuam em paralelismo espacial e/ou temporal

      Exemplo: Fujitsu VPP

      - vários [ PE’s simples (reg + ALU) + PEM’s ] interligados por topologias específicas

      Exemplos: ILLIAC IV, com 64 proc 64-bit, interlig 2D-mesh

      CM-2 com 64k proc 1-bit, interlig Boolean 12-cube

      Exemplos

      fig 8.15 de Hwang

      fig 6.14 de Kain

      fig 9.3

      fig 8.24 de Hwang

       

    19. Processadores superescalares
    20. Estratégias de arranque/término

      fig 13.3 de Stallings

      Gestão de paralelismo com estações de reserva

      fig 6.32 de Kain

       

    21. Índices da bibliografia referenciada

 

Henessy & Patterson, Computer Architecture: A Quantitative Approach

 

1 Fundamentals of Computer Design

2 Instruction Set Principles and Examples

3 Pipelining

4 Advanced Pipelining and Instruction-Level Parallelism

5 Memory-Hierarchy Design

6 Storage Systems

7 Interconnection Networks

8 Multiprocessors

Apx A: Computer Arithmetic

Apx B: Vector Processors

Apx C: Survey of RISC Architectures

Apx D: An Alternative to RISC : The Intel 80x86

Apx E: Implementing Coherence Protocols

 

 

Hwang,K.,Advanced Computer Architecture:Parallelism, Scalability, Programmability

 

1 Parallel Computer Models

2 Program and Network Properties

3 Principles of Scalable Performance

4 Processors and Memory Hierarchy

5 Bus, Cache, and Shared Memory

6 Pipelining and Superscalar Techniques

7 Multiprocessors and Multicomputers

8 Multivector and SIMD Computers

9 Scalable, Multithreaded, and Dataflow Architectures

10 Parallel Models, Languages, and Compilers

11 Parallel Program Development and Environments

12 UNIX, Mach, and OSF/1 for Parallel Computers

 

 

Kain, R.Y., Advanced Architecture: A System Design Approach

 

1 Illusions

2 Instrution Set Design

3 Memory Organization

4 Single Stream Control

5 Object-Oriented Processing

6 Single I-Stream Parallelism

7 Parallelism By Message Passing

8 Shared-Resource Systems

9 Projection and Security

 

Apx A Sparc Summary

Apx B Alpha AXP

Apx C MC680X0

Apx D Stack-Oriented Systems

Apx E Naming Memory Objects

Apx F Memory Allocation

Apx G Associative Memories

Apx H Prolog

Apx I List Processing

Apx J Systolic Arrays

Apx K Data Flow Systems

Apx L Reasoning and Proofs

 

 

Stallings, W., Computer Organization and Architecture: Designing for Performance

 

1 Introdution

2 Computer Evolution and Performance

3 System Buses

Apx 3A Timing Diagrams

4 Internal Memory

Apx 4A Performance Charateristics Two-Level Memories

5 External Memory

6 Input/Output

7 Operating System Support

8 Computer Arithmetic

Apx 8A Number Systems

9 Instruction Sets: Charateristics and Functions

Apx 9A Stacks

Apx 9B Little-,Big-, and Bi-Endian

10 Instrution Sets: Addressing Modes and Formats

11 CPU Structure and Function

12 Reduced Instrution Set Computers (RISCs)

13 Super Processors

14 Control Unit Operation

15 Microprogrammed Control

16 Parallel Processing

Appendix Digital Logic

 

 

Zargham, M.R., Computer Architecture: Single and Parallel Systems

 

1 Classification of Designs

2 Von Neumann Architecture

3 Pipelining

4 RISC Versus CISC Architecture

5 Interconnection Networks

6 Multiprocessors and Multicomputers

7 Parallel Programming and Parallel Algorithms

8 Data Flow and Systolic Array Architectures

9 Future Horizons for Architecture

Apx A Basic Components of VLSI Design

Apx B Combinational and Sequential Circuits

Apx C Hardware Description Language: VHDL