Arquitectura de Computadores
Alberto José Proença
1997/98
EM CONSTRUÇÃO...
Capítulos | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
Actividades paralelas em arquitecturas SIxD
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.
·
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)
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
Com escalonamento estático
- ao nível da arquitectura do instruction set
- computação vectorial e array processors
Com escalonamento dinâmico
- processadores superescalares
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
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
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
Henessy & Patterson, Computer Architecture: A Quantitative Approach
1
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