Okay. Então, agora, vamos mudar temas e
começar a falar sobre o nosso primeiro técnico tema deste curso.
E, como uma introduусo ao computador arquitetura, nós vamos estar falando
sobre o que é a arquitetura contra microarquitetura.
E, eu quero apenas dizer que brevemente, como você tomar esta classe, os três primeiros
palestras ou assim deveria ser revisto. Então, se você está sentado na classe e
você está dizendo, oh, eu já vi tudo isso antes.
Nсo se levante. Esperar até a palestra quarto ou quinto,
e então o conteúdo se torne de novo. E isso é porque eu quero ensinar
tudo, desde os primeiros princьpios e obter todos atж a velocidade.
Mas, ж que, nos primeiros trЖs palestras estсo a ir muito rрpido.
Entсo, se vocЖ estр perdido nos trЖs primeiros palestras, que deve ser crьtica, entсo
que provavelmente ж um mau, indicador. Entсo, vamos comeуar falando sobre
arquitetura contra micro-arquitetura. E eu queria dizer brevemente o que eu quero dizer com
arquitetura. E eu, que tenho, neste slide aqui, um muito
Um grande para o que eu vou Яs vezes chamam, grande A arquitetura.
Assim, seu, Patterson Hennessy chama isso, arquitetura do conjunto de instruушes, e quando eu
Compare isso com micro-arquitetura, ou Patterson Hennessy chama organizaусo.
Assim, a arquitetura Um grande ж uma abstraусo fornecida a camada de software, ou
instruушes definir arquiteturas ou camada de abstraусo fornecida para software
que ж projetado para nсo mudar muito. E, ele nсo diz, ele, ele diz como um
teзrica fundamental, tipo de mрquina, executa programas.
Ele nсo diz exatamente o tamanho da estruturas diferentes, o quсo rрpido os
as coisas iriam correr, a implementaусo exata questшes, que cai em organizaусo.
E, uma das coisas que eu queria enfatizar ж que a arquitetura de computador ж
tudo sobre trade-offs. Entсo, quando eu digo que ж tudo sobre vantagens e desvantagens,
vocЖ pode tomar decisшes diferentes do projeto se aqui na arquitetura Uma grande ou a
arquitetura do conjunto de instruушes, e que vai influenciar a aplicaусo ou influenciar o
microarquitetura, mas tambжm vocЖ pode fazer diferentes decisшes de design aqui e
fazer um monte de vantagens e desvantagens diferentes sobre como ir sobre a implementaусo de um determinado
arquitetura do conjunto de instruушes. E, principalmente, quando vocЖ vai olhar para
arquitetura de computador e de computador arquitetura de implementaусo, o projeto
espaуo ж relativamente plana. Hр uma espжcie de um ponto зtimo onde
vocЖ, vocЖ quer ser, mas os outros pontos em torno dele muitas vezes nсo horrivelmente,
terrivelmente ruim. Embora haja, vocЖ sabe, no, no
extremos design, provavelmente terrivelmente ruim decisшes.
Mas, vocЖ sabe, um monte de design diferente pontos sсo, sсo igualmente boas ou, ou perto
a ideal. E, o trabalho de um arquiteto de computadores ж
tomar as decisшes de design muito sutis em torno de como vocЖ se move em torno deste ponto
para tornр-lo mais fрcil de programar, vive durante muitos anos, ж de baixa potЖncia, e esta
espжcie de outro, um pouco de estжtica caracterьsticas misturados com apenas
fazer o processador do computador ir mais rрpido, vamos dizer.
E esses compromissos, eu, eu re, vontade Reiteramos esta e outra vez neste
classe que, porque existe mЩltipla mжtricas diferentes.
Assim, por exemplo, a velocidade, a energia, o custo, e eles tradeoff uns contra os outros, muitos
vezes, nсo hр qualquer necessidade зptima ponto.
Depende, vocЖ sabe, vocЖ ж mais custo driven, energia ou conduzido, ou a velocidade conduzido.
E, dentro desse ponto, hр uma espжcie de algumas vezes Pareto curvas зpticas onde todos
dos pontos sсo, sсo igualmente bom se vocЖ estр tentando negociar fora esses diferentes
coisas para modelos de custos diferentes. Okay.
Entсo, vamos, vamos falar sobre o que ж um arquitetura do conjunto de instruушes, eo que ж
uma microarquitetura. Assim, uma arquitetura de conjunto de instruушes, ou grande
A arquitectura ж tentar proporcionar a programador de algum modelo de mрquina abstrata.
E muitas vezes o que ж, o que realmente resume a ж que ж tudo o programador
estado visьvel. Assim, por exemplo, como, faz a mрquina
tem memзria? Serр que ela tem registros?
Entсo esse ж o, que ж o programador estado visьvel.
Abrange tambжm a fundamental operaушes que o computador possa executar, de forma
estes sсo chamados de instruушes. E, ele define as instruушes e como
operam. Assim, por exemplo, adicionar.
Adicione pode ser uma instruусo fundamental ou operaусo fundamental em seu compu,
arquitetura do conjunto de instruусo. E, diz, a semРntica exata sobre como
para tomar uma palavra em um registro e adicionр-lo a outra palavra em um registrador, e onde
acaba, acaba. Entсo, nсo hр mais complicada execuусo
semРntica. Entсo, o que queremos dizer com a execuусo
semРntica? Bem, se vocЖ acabou de dizer acrescenta tomar dois
nЩmeros e somр-los e colocр-los em outro registro, que muitas vezes faz
nсo abranger todo o conjunto de instruушes arquitetura.
VocЖ vai ter outras coisas acontecendo, para instРncia, IO interrupушes, e vocЖ tem que
definir, em seu conjunto de instruушes arquitetura, ou o seu computador Um grande
arquitetura que ж a semРntica exata de um interruptor, uma instruусo, ou um
pedaуo de dados que entram em um IO. Como ж que interagem com o resto do
o processador? Assim, muitas vezes a execuусo de instruушes
semРntica ж apenas metade do que eu, e nзs temos se preocupar ж o, o resto do
execuусo semРntica da mрquina. A arquitetura de grande tem de definir como o
entradas e saьdas de trabalho. E, finalmente, tem de definir os dados
tipos e os tamanhos da fundamental, o, as palavras de dados fundamentais que vocЖ
operar. Assim, por exemplo, se operar em um byte
em um momento, quatro bytes de cada vez, dois bytes de cada vez.
Qual ж o tamanho de um byte se vocЖ realmente tem bytes?
Assim, este sз fica em tamanhos. E entсo, os tipos de dados aqui pode significar que
vocЖ tem outros tipos de dados fundamentais. Assim, por exemplo, o mais bрsico ж
vocЖ tem apenas alguns pedaуos sentado, em, em um, em um registro em seu processador.
Mas, pode ser muito mais complexo que vocЖ pode ter, por exemplo, algo como
nЩmeros de ponto flutuante. Onde nсo ж apenas um monte de bits, ж
pedaуos formatado de uma maneira particular, e tem um significado muito especьfico.
Esse ж um nЩmero de ponto flutuante que pode faixa sobre, digamos, a maioria dos, a
nЩmeros reais. Okay.
Assim, na aula de hoje, vamos, passar por todos esses diferentes
caracterьsticas e os requisitos de a construусo de uma arquitetura de conjunto de instruушes.
Eu queria, vou falar sobre como ж diferente microarquitetura ou
organizaусo. Entсo, vamos dar-se alguns exemplos de
microarquitetura e organizaусo. Entсo, o que microarquitetura e
organizaусo estр realmente pensando aqui ж as vantagens e desvantagens, como vocЖ estр indo para
implementar um conjunto de instruушes fixas arquitetura.
Assim, por exemplo, algo como Intel x86 ж uma arquitetura de conjunto de instruушes.
E hр muitos diferentes implementaушes microarquitetura.
Hр as versшes dos chips da AMD, e depois hр as versшes Intel do
fichas, e atж mesmo dentro de, vamos dizer, a Intel versшes dos chips.
Elas tЖm a sua versсo de alta performance para o laptop que parece uma maneira, ou, ou
versсo de alto desempenho para, vamos dizer, um servidor ou um laptop de ponta que parece
um caminho. E depois, hр um outro chip para
comprimidos. Intel estр tentando chips para tablets estas
dia e eles tЖm seus processadores Atom. E, internamente, eles parecem muito diferentes
porque eles tЖm uma velocidade muito diferente, energia, custo, vantagens e desvantagens.
Mas, eles vсo executar o mesmo cзdigo, e todos eles implementam a mesma instruусo
definir arquitetura. Entсo, vamos olhar para alguns exemplos de coisas
que vocЖ pode em um tradeoff microarquitetura.
Assim, vocЖ pode ter gasoduto diferente profundidade, nЩmeros de dutos.
Assim, vocЖ pode ter um pipeline do processador, ou vocЖ pode ter seis, como algo
como o Core i7 hoje, tamanhos de cache, como o chip ж grande, a рrea de silicone, como,
qual ж a sua potЖncia de pico. Execuусo de encomenda.
Bem, ж que o cзdigo executado em ordem, ou pode executar o cзdigo fora de ordem?
Isso mesmo. ╔ possьvel fazer um sequencial
programa, e realmente executar mais tarde partes do programa antes anteriormente
partes do programa. Esse ж um tipo de incompreensьvel, mas ж um
maneira de ir sobre a obtenусo de paralelismo. E se vocЖ manter sua ordenaусo correta,
coisas, coisas, trabalhar fora. Larguras de Зnibus, larguras de Alu, se vocЖ, se vocЖ
ter, digamos, 64-bit mрquina, vocЖ pode realmente ir e implementar isso como um bando
de 1-bit adder, por exemplo, e as pessoas ter feito coisas como essa no micro
arquitetura. E, o que lhe permite construir mais
versшes mais caros ou mais baratos de o mesmo processador.
Entсo, vamos falar sobre a histзria de por que veio com essas duas diferenciaушes
entre arquitetura e microarquitetura.
E, isso aconteceu, porque o software ж tipo, empurrou-o em nзs e acabou
sendo uma camada de abstraусo agradрvel. Entсo, de volta no inьcio dos anos 50, final dos anos 40, vocЖ
tinha software que as pessoas principalmente programado ou em linguagem assembly, ou mрquina
linguagem de cзdigo. Entсo, vocЖ tinha que escrever zeros e uns, ou
vocЖ tinha que escrever cзdigo de montagem. E, em algum momento no, os anos 50 meados nзs
comecei a ver showoffs biblioteca. Portanto, estes sсo uma espжcie de, ponto flutuante
operaушes foram feitas mais fрcil, tivemos transcendentais como seno, cosseno
bibliotecas, vocЖ teve algum matriz e solucionadores de equaусo.
E, vocЖ comeуou a ver algumas bibliotecas que as pessoas podem chamar, mas as pessoas eram
nсo necessariamente escrever o cзdigo por si ou escrever grandes massas de cзdigo em
programaусo de montagem, pois ж, foi muito doloroso.
E entсo, em algum momento, houve a invenусo de linguagens de alto nьvel.
Entсo, um bom exemplo disso foi Fortran que saiu em 1956, e um monte de coisas
veio junto com isso. Tivemos montadores, carregadores, linkers,
compiladores, cacho de outro software para acompanhar como o seu software estр sendo usado mesmo.
E, porque nзs comeуamos a ver estes linguagens de alto nьvel, este comeуou a
dar alguma portabilidade para a programaусo. Nсo ж que vocЖ tinha que escrever o seu
programa e tЖ-lo apenas mapeado para uma prog, um processador de sempre.
E, de volta ao, os, anos 50, anos 60 atж perьodo de tempo aqui, as mрquinas necessрrias
operadores experientes que poderia escrever o programas.
E, vocЖ sabe, vocЖ, vocЖ tem essas mрquinas e eles tiveram que ser vendidas com um monte de
software junto com eles para que vocЖ teve, basicamente, executar todo o software que foi
dado porque ele era, vocЖ tinha que ser um, um programador de mestre ou alguжm que trabalhou
para a empresa, mesmo, que construiu o mрquinas atж mesmo ser capaz de programar essas
mрquinas de volta, no dia. E, a idжia de conjunto de instruушes
arquiteturas, e estes a quebra microarquitetura da arquitetura
realmente nсo existia naquela жpoca. E, de volta ao inьcio dos anos 60, a IBM tinha quatro
diferentes linhas de produtos. E, todos eles sсo incompatьveis.
Entсo, vocЖ nсo pode executar o cзdigo que vocЖ executou em uma sobre a outra.
Assim, para dar um exemplo aqui, o, o IBM 701 era para a computaусo cientьfica.
O, o 1401 foi principalmente para negзcios computaусo.
Eu acho que eles ainda tinham uma segunda que tipo foi de para o negзcio, mas diferente
tipos de computaусo empresarial. E, tipo de pessoas, comprado em uma linha.
E entсo, como vocЖ, como a linha amadureceu e desenvolvido, eles tiveram que reescrever
seu cзdigo, ou eles tiveram que ficar em uma linha.
Mas, a IBM tinha algum, tinha algumas idжias malucas aqui ж que, eles nсo querem ter que,
quando eles foram para a prзxima geraусo de processador, eles queriam uma para propagar
estas quatro linhas. Eles queriam tentar unificar os quatro
linhas. Mas, um dos problemas foi, estes
linhas diferentes tiveram muito diferente implementaушes e transversais diferente
pontos. Entсo, a Щnica coisa que estava construindo para
computaусo cientьfica nсo era necessariamente a coisa que vocЖ quer construir para o negзcio
computaусo. E, o que vocЖ construiu para negзcios
computaусo, vamos dizer, nсo, vocЖ queria para nсo ter que tЖm flutuante muito bom
apontar desempenho. Entсo, como fazer, como ж que eles vсo sobre como resolver
isso? E a soluусo foi eles vieram para cima
algo chamado de IBM 360. E, o IBM 360 ж provavelmente o primeiro
arquitetura do conjunto de instruушes que era verdadeiro implementada para conjunto de instruушes
arquitetura. E, a ideia aqui foi que eles queriam
unificar todas essas linhas de produtos em um plataforma, mas, entсo, implementar diferentes
versшes que foram especializados para o matriz de mercado diferente.
Assim, eles podem construir, eles poderiam unificar muito de seu sistema de software, unificar um monte de
o que eles construьram, mas ainda construir diferente versшes.
Entсo, vamos, vamos dar uma olhada na IBM 360 Arquitetura do conjunto de instruушes, e depois
falar sobre micro arquitetura diferentes que foram construьdas do IBM 360.
Entсo, o IBM 360 ж um propзsito geral registrar mрquina, e nзs vamos falar mais
sobre isso mais tarde nesta palestra. Mas, para se ter uma idжia, isso ж o que o
programador viu, ou o que o software sistema via.
Este nсo ж o que foi construьdo na hardware, porque isso seria um
restriусo microarquitetura. Mas, o estado do processador tinha 16
uso geral de 32 bits registos. Ele tinha quatro registros de ponto flutuante.
Ele tinha o controle, bandeiras, se vocЖ vai, teve um, uma cзdigos de condiусo e bandeiras de controle.
E, era uma mрquina de endereуo de 24 bits, e no momento em que foi enorme.
Entсo, dois para o 24 foi um nЩmero muito grande. Hoje em dia, nсo ж tсo grande e eles tЖm
desde entсo se expandiu em que o IBM 360 sucessores.
Mas, eles acharam que era bom para muitos, muitos anos, e isso foi bom para muitos, muitos
anos. E definem um monte de dados diferentes
formatos. Assim, nсo hр bytes de 8 bits, 16 bits meia
palavras, palavras de 32 bits, 64 bits palavras duplas. E estes foram os tipos de dados fundamentais
que vocЖ pode trabalhar, e vocЖ pode nomear esses diferentes tipos de dados fundamentais.
E, na verdade foi o IBM 360 que veio com essa idжia que os bytes devem ser
, 8-bits de comprimento, e que estр a viver, para para hoje, Porque antes disso, tivemos vрrias
escolhas diferentes. Havia sistemas binрrios decimais de cзdigo
onde a, ж, na verdade, que codificam uma nЩmero entre zero e nove anos e entсo vocЖ
tЖm os dьgitos, cada um e ж Яs vezes, boa para, uma espжcie de planilha,
cрlculos, ou cрlculos de negзcios, ou se vocЖ quiser ser muito preciso em seu
arredondamento para o Щltimo centavo. E, Яs vezes, pouco baseados em coisas que nсo fazer
realmente volta adequadamente ou o, fazer uma, ou vocЖ vai perder alguns centavos fora da final.
E, assim que vocЖ tem estes decimal cзdigo binрrio sistemas e, tambжm, em IBM 360, eles, eles
unificou tudo e disse, bem, nсo, nзs somos vai jogar fora certas coisas e fazer
escolhas. Agora, eles, claro, porque ж a IBM
360 e que tinha negзcios aplicaушes, eles ainda apoiado binрrio
cзdigo e decimal em um, de uma certa maneira. E, vamos olhar para a microarquitetura
implementaушes desta primeira instruусo definir arquitetura.
Entсo, a, e isto ж, em simultРneo quadro, da mesma geraусo aqui.
Havia o modelo 30 e o modelo 70 e este foi muito, muito diferente
caracterьsticas de desempenho. Entсo, se nзs, olhamos para a mрquina, vamos
comeуar por olhar para o armazenamento. A, o modelo de gama baixa aqui tinham entre
oito e 64 kilobytes, e no final elevado modelo tinha entre 256 e 512 kilobytes.
Entсo tamanhos, muito, muito diferentes. E, ж isso que eu estou tentando passar
aqui ж que pode microarquitetura realmente mudar um pouco, embora
a arquitetura suporta 64-bit acrescenta adiушes, vocЖ pode realmente implementar
caminhos de dados de tamanho diferente. Assim, na mрquina de gama baixa, tiveram uma
8-bit caminho de dados, e para os que utilizam 64-bit operaусo, ele teve que fazer oito,
8 bits de operaушes para formar um 64-bit operaусo.
E, entсo, provavelmente, atж mesmo, na verdade, fazer mais do que para lidar com todo o carrega
corretamente, contra o high-end implementaусo tinha um somador completo lр.
VocЖ pode realmente fazer um adicionar de 64 bits, por si sз sem ter que fazer muitas
micro-operaушes seqЧenciadas. E, ah, sim, com pequenas modificaушes, que
vive hoje. Entсo, este foi projetado nos anos 60, e
atж hoje ainda temos 360 System mрquinas de derivativos.
E o pedaуo de cзdigo que vocЖ passou, ou vocЖ escreveu em 1965, continuarсo a ser executados em
essas mрquinas hoje, o que ж muito, incrьvel, nativamente.
Entсo, como ж que isto sobreviver hoje? Entсo, aqui estр, na verdade, o IBM 360 47 anos
mais tarde, como no microprocessador Z11. Entсo, o IBM 360, desde entсo, ж renomeado para
o IBM 370, e, em seguida, ele foi renomeado para o 370EX IBM, que foi em '80.
Nunca houve qualquer IBM 380, estranhamente suficiente.
E entсo, mais tarde, eles sз mudaram o citar Я sжrie Z.
Assim, tЖm uma, um refrigerador modelar modelo, nЩmeros aqui entсo tivemos a IBM sжrie Z
processadores, e este vive hoje. Entсo, voltando ao que 8-bit
que tinha uma loja de um controle microssegundo ler, o que ж para sempre, agora temos a
Z11 que estр sendo executado em 5,2 gigahertz. Ele tem 1,4 bilhшes de transistores.
Eles, eles atualizaram o modo de endereуamento ele nсo ж mais 24 bits de endereуamento, mas
ainda suporta o 360 original, endereуamento.
Ele tem quatro nЩcleos, de questсo de ordem, para fora de sistema de memзria ordem, caches grandes em, no
chip, 24 megabytes de seu cache L3. E, vocЖ pode atж mesmo colocar vрrios destes
juntos para construir um sistema multiprocessador de lotes e lotes de multicores.
E, o que eu estou tentando passar aqui ж que, se vocЖ ir para a frente ao longo do tempo e vocЖ
construir sua arquitetura de conjunto de instruушes correto, ele pode viver.
E vocЖ tem muitos diferentes implementaушes e microarquitetura
ainda aproveitar o mesmo software. E, alguns, poucos mais exemplos apenas para, a
reforуa um pouco mais. Vamos dar uma olhada em um exemplo de
algo em que vocЖ tem o mesmo arquitetura, mas diferente
micro arquitetura. Entсo, aqui nзs temos o AMD Phenom X4, e
aqui temos o Atom, Intel Atom processador.
O primeiro processador Intel Atom. E, o que vocЖ vai notar, na verdade, ж que
eles tЖm o conjunto de instruушes exatamente o mesmo arquitetura.
Ambos executar cзdigo x86. E, as implementaушes Zion, isto ж,
apenas para apontar aqui, estes sсo os mesmos prazos.
Entсo, este ж um moderno, moderno, aproximadamente, modernos processadores dia.
Este tem quatro nЩcleos, 125 watts. Aqui, nзs temos, Щnico nЩcleo dois watts.
Entсo, hр vantagens e desvantagens do projeto. Entсo, vocЖ vai querer construir
processadores diferentes no mesmo desenho , tecnologia que vou dizer, mas com muito
custo diferente, potЖncia, desempenho compensaушes.
Este pode descodificar trЖs instruушes. Este pode decodificar duas instruушes para
ж uma arquitetura diferente micro diferenуa.
Este tem um cache de 64 kilobytes. L1 ж bom como um cache de 32 kilobytes L1i.
Muito diferentes tamanhos de cache, mesmo que eles estсo empregando a mesma arquitetura,
ou arquitetura Um grande. Estranhamente, eles tЖm a mesma L2
tamanho, vocЖ sabe, as coisas acontecem. Isto, meus fora de ordem contra a ordem,
e velocidades de clock sсo muito diferentes. E, eu quero contrastar isso com
arquitetura diferente, ou diferente Um grande arquitetura e micro diferente
arquitetura. Entсo, se pensarmos um pouco diferente
exemplos de arquiteturas de conjunto de instruушes, hр 86, hр PowerPC, hр IBM
360, hр Alpha, hр ARM. VocЖ provavelmente jр ouviu todos esses diferentes
nomes, e estas sсo instruушes diferentes definir arquiteturas.
Entсo, vocЖ nсo pode executar o mesmo software em os dois conjuntos de instruушes diferentes
arquiteturas. Entсo, temos aqui um exemplo de dois
arquiteturas de conjunto de instruушes diferentes com dois microarquiteturas diferentes.
Entсo, nзs temos o Phenom X4 aqui, contra o IBM Power sete.
E, nзs jр conversamos sobre o, o X4 aqui, mas o Poder sete tem o poder
conjunto de instruушes, o qual ж diferente do o conjunto de instruушes x86.
Entсo, vocЖ nсo pode executar um pedaуo de cзdigo que ж compilados para este por aqui, e vice-
versa. E, os microarquiteturas sсo diferentes.
Entсo, aqui, nзs temos de oito nЩcleos, a 200 watts, pode decodificar seis instruушes por ciclo.
Uau, isso ж um, um processador bastante robusto. ╔ tambжm fora de ordem e tem o mesmo
freqЧЖncia de clock. Algo que eu, que tambжm pode acontecer ж
vocЖ pode acabar com arquiteturas onde vocЖ tem conjunto de instruушes diferente
arquitetura, ou diferente Um grande arquitectura, mas quase igual
microarquitetura. E, isso, isso faz, isso acontece.
Entсo, vocЖ acaba com, digamos, dois processadores que sсo tanto a questсo trЖs de largura,
tamanhos de cache mesmo, mas, vamos dizer, um dos o PowerPC implementos ea outra
implementa x86. E as coisas, coisas assim acontecem.
Essa ж mais uma coincidЖncia, mas eu sou tentando passar a idжia de que muitos
vezes o que os microarquiteturas pode ser o mesmo e as vantagens e desvantagens mais
consideraушes contra o conjunto de instruушes arquitectura que ж mais de um software
programaусo restriусo de projeto.