Este documento descreve os componentes internos do processador z14. Ele discute os estágios de fetch, parsing, decode e issue de instruções, bem como as unidades de execução fixa, load/store, vetor e flutuante. O documento também fornece diagramas ilustrando o fluxo de dados e instruções entre esses componentes.
Gerenciamento de TI - Métodos Ágeis por Prof. Me Valdir Morales (Faculdades O...
z14 PU Detalhes Internos
1. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
14 de Maio de 2.019
LUIZ CARLOS ORSONI
Detalhes ‘internos’ da z14
2. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Abstract + Agenda
Esta Palestra procurará mostrar alguns dos
“detalhes internos” dos Cores da z14, tais como:
Fetch,
Parsing,
Decode,
Grouping e
Issue ‘Out of Order’ das Instruções às várias
Execution Units, terminando por suas
Retiradas ‘In Order’ nas Completion Queues,
apoiando-se nos Manuais:
z14 Technical Guide e no
z14 Journal of Research and Development.
Como sempre, convidamos a Otimizar Códigos.
3. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
1 = Caveats
IBM J. RES. & DEV.
VOL. 62 NO. 2/3
PAPER 8
MARCH/MAY 2018
4. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
2 = PU Chip com 10 Cores [DecaCore] + SC
5. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
2 = Comparando PU da z13 com z14
L2DL2I
XU +
TLB2
LSU
L1D
ICM
L1I
PC + TP
BTB + BHT
+ PHT + . . .
IFU
RU
ISU
VFU
Vector
DecPk
FltPnt
FXU
Q
U
E
U
E
S
IFB
I
D
U
VBU
C
O
P
LEGENDA: VERMELHO Dados
VERDE Instruções
CIAN Intermediários
AMARELO Execution Units
BRANCO Auxiliares
6. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
3 = ‘Selfie’ da PU (Core) da z14!
LEGENDA: VERMELHO Dados
VERDE Instruções
CIAN Intermediários
AMARELO Execution Units
BRANCO Auxiliares
L2DL2I
XU + TLB2
LSUL1D
ICM
L1I
PC + TP
BTB + BHT
+ PHT + . . .
IFU
RU
ISU
VFU
VectorDecPk
FltPnt
FXU
Q
U
E
U
E
S
IFB IDU
VBU
C
O
P
7. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
4 = L2D + L1D = Data Caches
L2DL2I
XU + TLB2
LSUL1D
ICM
L1I
PC + TP
BTB + BHT
+ PHT + . . .
IFU
RU
ISU
VFU
VectorDecPk
FltPnt
FXU
Q
U
E
U
E
S
IFB
ID
U
VBU
C
O
P
LEGENDA: VERMELHO Dados
VERDE Instruções
CIAN Intermediários
AMARELO Execution Units
BRANCO Auxiliares
LEGENDA: VERMELHO Dados
VERDE Instruções
CIAN Intermediários
AMARELO Execution Units
BRANCO Auxiliares
L2D= 4M
L1D=128K
L3 envia
ou recebe
32 bytes
por Ciclo
para/do
L2D
L2D envia
ou recebe
64 bytes
por Ciclo
para/do
L1D
8. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
4 = L2I + L1I = Instruction Caches
L2DL2I
XU + TLB2
LSUL1D
ICM
L1I
PC + TP
BTB + BHT
+ PHT + . . .
IFU
RU
ISU
VFU
VectorDecPk
FltPnt
FXU
Q
U
E
U
E
S
IFB
ID
U
VBU
C
O
P
LEGENDA: VERMELHO Dados
VERDE Instruções
CIAN Intermediários
AMARELO Execution Units
BRANCO Auxiliares
LEGENDA: VERMELHO Dados
VERDE Instruções
CIAN Intermediários
AMARELO Execution Units
BRANCO Auxiliares
L2I= 2M
L1I=128K
L3 envia
32 bytes
por Ciclo
para o L2I
L2I envia
64 bytes
por Ciclo
para o L1I
Conferir
com o
CPUMF o
rendimento
dos
Caches!
Embora sejam Dados,
os conteúdos das
Region, Segment e
Page Tables, bem
como Dicionários de
Compressão e Tabelas
de Criptografia, suas
Lines vão para os
Caches L2I e L1I
uma vez que não são
alteradas!!!
9. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
4 = XU = Translation Unit
L2DL2I
XU + TLB2
LSUL1D
ICM
L1I
PC + TP
BTB + BHT
+ PHT + . . .
IFU
RU
ISU
VFU
VectorDecPk
FltPnt
FXU
Q
U
E
U
E
S
IFB
ID
U
VBU
C
O
P
LEGENDA: VERMELHO Dados
VERDE Instruções
CIAN Intermediários
AMARELO Execution Units
BRANCO Auxiliares
LEGENDA: VERMELHO Dados
VERDE Instruções
CIAN Intermediários
AMARELO Execution Units
BRANCO Auxiliares
Não há
mais
TLB1
junto de
cada
Cache de
Nível 1: o
seu
conteúdo
é colocado
no próprio
Diretório,
que é a
ASCE, o
Endereço
da Region
ou
Segment
Table,
para o
DAT.
10. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
4 = ICM + IFB = Fetch & Branch + VBU
L2DL2I
XU + TLB2
LSUL1D
ICM
L1I
PC + TP
BTB + BHT
+ PHT + . . .
IFU
RU
ISU
VFU
VectorDecPk
FltPnt
FXU
Q
U
E
U
E
S
IFB
ID
U
VBU
C
O
P
LEGENDA: VERMELHO Dados
VERDE Instruções
CIAN Intermediários
AMARELO Execution Units
BRANCO Auxiliares
LEGENDA: VERMELHO Dados
VERDE Instruções
CIAN Intermediários
AMARELO Execution Units
BRANCO Auxiliares
Observar o
aumento
(33%) no
número de
Branches
‘lembrados’
(via as
Estatísticas
da VBU) e
são
previstos
até 9
Branches
por Ciclo
(na z13
eram 13:
12 Not
Taken e 1
Taken).
11. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
4 = IDU = Decodification Unit
L2DL2I
XU + TLB2
LSUL1D
ICM
L1I
PC + TP
BTB + BHT
+ PHT + . . .
IFU
RU
ISU
VFU
VectorDecPk
FltPnt
FXU
Q
U
E
U
E
S
IFB IDU
VBU
C
O
P
LEGENDA: VERMELHO Dados
VERDE Instruções
CIAN Intermediários
AMARELO Execution Units
BRANCO Auxiliares
LEGENDA: VERMELHO Dados
VERDE Instruções
CIAN Intermediários
AMARELO Execution Units
BRANCO Auxiliares
Através do
Instruction
Cache and
Merge, a
Iinstruction
Fetch and
Branch
Unit
recebe 32
bytes por
ciclo, o
que dá
origem a 2
Grupos
de 3
Instruções
por Ciclo.
A IDU
‘entrega’ 6
Instruções
por Ciclo.
12. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
4 = ISU = Sequencing Unit + Queues
L2DL2I
XU + TLB2
LSUL1D
ICM
L1I
PC + TP
BTB + BHT
+ PHT + . . .
IFU
RU
ISU
VFU
VectorDecPk
FltPnt
FXU
Q
U
E
U
E
S
IFB IDU
VBU
C
O
P
LEGENDA: VERMELHO Dados
VERDE Instruções
CIAN Intermediários
AMARELO Execution Units
BRANCO Auxiliares
LEGENDA: VERMELHO Dados
VERDE Instruções
CIAN Intermediários
AMARELO Execution Units
BRANCO Auxiliares
A ISU
recebe da
IDU até 6
Instruções
por Ciclo,
faz o
Register
Renaming,
detecta
dependência
agrupa e
coloca numa
Fila de até
72
Instruções,
de onde
pode enviar
até 10, às
Execution
Units OoO!
13. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
4 = LSU = Load & Store Units
L2DL2I
XU + TLB2
LSUL1D
ICM
L1I
PC + TP
BTB + BHT
+ PHT + . . .
IFU
RU
ISU
VFU
VectorDecPk
FltPnt
FXU
Q
U
E
U
E
S
IFB IDU
VBU
C
O
P
LEGENDA: VERMELHO Dados
VERDE Instruções
CIAN Intermediários
AMARELO Execution Units
BRANCO Auxiliares
LEGENDA: VERMELHO Dados
VERDE Instruções
CIAN Intermediários
AMARELO Execution Units
BRANCO Auxiliares
Além de
executar
as
Instruções
de
Movimento
de Dados
(Loads e
Stores), a
LSU
Carrega e
Armazena
todos os
Operandos
de
Memória.
14. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
4 = FXU = Fixed Point Units
L2DL2I
XU + TLB2
LSUL1D
ICM
L1I
PC + TP
BTB + BHT
+ PHT + . . .
IFU
RU
ISU
VFU
VectorDecPk
FltPnt
FXU
Q
U
E
U
E
S
IFB IDU
VBU
C
O
P
LEGENDA: VERMELHO Dados
VERDE Instruções
CIAN Intermediários
AMARELO Execution Units
BRANCO Auxiliares
LEGENDA: VERMELHO Dados
VERDE Instruções
CIAN Intermediários
AMARELO Execution Units
BRANCO Auxiliares
Quase
sempre o
“gargalo”, a
z14 tem 2
FXUs para
Instruções
que não
alterem
Registrador
Geral
(Compare,
Store, etc.)
e mais 2
FXUs para
Instruções
que alteram
(Load, Add,
etc.).
Instruções de Branch RX, por
usarem Reg.Geral, demandam
FXUs, os Jumps Relativos não!
15. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
4 = VFU = VECTOR + Floating Point Units
L2DL2I
XU + TLB2
LSUL1D
ICM
L1I
PC + TP
BTB + BHT
+ PHT + . . .
IFU
RU
ISU
VFU
VectorDecPk
FltPnt
FXU
Q
U
E
U
E
S
IFB IDU
VBU
C
O
P
LEGENDA: VERMELHO Dados
VERDE Instruções
CIAN Intermediários
AMARELO Execution Units
BRANCO Auxiliares
LEGENDA: VERMELHO Dados
VERDE Instruções
CIAN Intermediários
AMARELO Execution Units
BRANCO Auxiliares
Dentro da
VFU foram
colocadas,
além das
Execution
Units de
Vector,
também as
de Floating
Point,
Decimal
Packed,
String,
Divisão e
Multiplicação
como
mostrado em
Slide mais
adiante.
16. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
4 = COP + PC + TP
L2DL2I
XU + TLB2
LSUL1D
ICM
L1I
PC + TP
BTB + BHT
+ PHT + . . .
IFU
RU
ISU
VFU
VectorDecPk
FltPnt
FXU
Q
U
E
U
E
S
IFB IDU
VBU
C
O
P
LEGENDA: VERMELHO Dados
VERDE Instruções
CIAN Intermediários
AMARELO Execution Units
BRANCO Auxiliares
LEGENDA: VERMELHO Dados
VERDE Instruções
CIAN Intermediários
AMARELO Execution Units
BRANCO Auxiliares
O Co-
Processador
executa as
Instruções de
Criptografia e
Compressão
de Dados.
Fica próximo
ao L1I pela
demanda por
Lines de
Tabelas e
Dicionários.
PC=Core
Pervasive,
coleta Erros
e faz
Instrumenta-
ção, TP=?.
17. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
4 = RU + Completion Queue
L2DL2I
XU + TLB2
LSUL1D
ICM
L1I
PC + TP
BTB + BHT
+ PHT + . . .
IFU
RU
ISU
VFU
VectorDecPk
FltPnt
FXU
Q
U
E
U
E
S
IFB IDU
VBU
C
O
P
LEGENDA: VERMELHO Dados
VERDE Instruções
CIAN Intermediários
AMARELO Execution Units
BRANCO Auxiliares
LEGENDA: VERMELHO Dados
VERDE Instruções
CIAN Intermediários
AMARELO Execution Units
BRANCO Auxiliares
Recovery
Unit coleta
eventuais
Erros de
HardWare,
monitora
eventual
Recupera-
ção e
mantém o
Estado de
todo o
Sistema.
Das até 10
Instruções
enviadas
OoO pela
ISU, até 10
podem
terminar,
por Ciclo.
18. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
5 = Quantas Execution Units existem?
Cada Processor Unit, ou
Core, é Super Escalar e
Out-of-Order, tendo as
seguintes Execution Units:
2xFXa, 2xFXb, 2xLSU,
2xVBU e 2xVFU e cada
VFU tem nove Execution
Units ‘dentro’ dela: 2xBFU,
DFU, DFx, FPd, VXx, VXs,
VXp e VXm, um total of 26
execution units por core.
DFU
DFU
BFU
BFU
DIV
DIV
REG
REGREG
REG
DFX
DFX
Vect
FXU
Vect
FXU
STRING
STRING
permute
BFU
BFU
19. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
5 = Contando nas PipeLines
Cada linha horizontal Azul=LSU, FXU, BFU, DFU, SIMD é uma Pipeline!
Cada linha vertical Amarela=IDU, Ocre=ISU e Púrpura=RU também são Pipelines!
IFB=4 Estágios, ICM=3 Estág., IDU=6 Estág., ISU=3+3+4 Estág., RU=5 Estágios
Dentro
da VFU
20. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
5 = Kevin Shum enfatiza detalhes da VFU
21. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
5 = Detalhe “físico” da VFU da z13 + z14
22. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
6 = Extra Pauta: I E Protection
POP z14, Páginas 1-16 e 1-17
Instrução Instrução Devem vir de Bibliotecas de Programas,
serem Consistidas e, eventualmente, Executadas
Dado Dado Devem vir de Arquivos de Dados via
Métodos de Acesso e, eventualmente, Atualizados
Dado DadoInstrução CRIME? EXECUTABLE=NO na Macro IARV64
Instruções vêm de Arquivos/Rede?!?
Instruções ParmList Instruções ParmList Instruções
Pgm com MACROs
‘bagunçam’ L1I+D
I
D
E
A
L
R
E
A
L
23. Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
6 = Conclusões:
1 = A z14 tem mais capacidade que a z13
2 = A z14 tem muitas novas Features
3 = A z14 depende da Qualidade dos Códigos
4 = Atenção às Opções dos Compiladores
5 = Vamos Otimizar os Programas?
Não misturar Códigos=Instruções com Operandos=Dados
Não misturar Frequente com Eventual (Códigos e Dados)
Ficar longe de SIIS = Stores Into the Instruction Stream
(e muito cuidado com certas Macros que o fazem!)