Organização de Computadores - Aula 04 - Programa armazenado e organizações

00:20:51
https://www.youtube.com/watch?v=Y8Rqq6f_Shs

摘要

TLDRA aula explora o conceito de programa armazenado e a evolução histórica da programação de computadores, iniciando com o ENIAC. Discute o modelo de von Neumann, que introduziu a ideia de armazenar programas na memória, e seus quatro princípios: simplicidade, linearidade, sequencialidade e unicidade. A arquitetura Harvard é contrastada com a von Neumann, mostrando suas diferenças em memória e barramentos. Além disso, a aula aborda diferentes organizações lógico-aritméticas e como elas impactam o desempenho do processador e a execução de instruções. Comenta-se também sobre dispositivos embarcados e como a hierarquia de memória moderna influencia o processamento atual.

心得

  • 💡 O conceito de programa armazenado revolucionou a programação de computadores.
  • 💻 O modelo de von Neumann introduz a ideia de armazenar dados e programas na mesma memória.
  • ⚙️ Quatro princípios fundamentais: simplicidade, linearidade, sequencialidade e unicidade.
  • 🏗️ A arquitetura Harvard tem duas memórias separadas, uma para dados e outra para instruções.
  • ⏳ O acesso a memória pode gerar gargalos no desempenho do modelo de von Neumann.
  • 📊 O desempenho não depende apenas do número de instruções, mas também do tempo de ciclo.
  • 📡 Dispositivos embarcados geralmente utilizam a arquitetura Harvard para tarefas específicas.
  • 🧮 Organizações lógico-aritméticas influenciam como os operandos são manipulados.
  • 📈 Processadores modernos mesclam conceitos de Harvard e von Neumann.
  • 🔍 Hierarquia de memória é crucial para otimização e desempenho em processadores atuais.

时间轴

  • 00:00:00 - 00:05:00

    Na quarta aula de organização de computadores, introduz-se o conceito de programa armazenado, que, embora pareça natural hoje, não foi como tudo começou. O ENIAC, considerado o primeiro computador digital de grande porte, era programado conectando fios e relés. A evolução do conceito de programação se deu com a ideia de armazenar programas na memória, proposta por John von Neumann, que também abordou o modelo que define regras e princípios organizacionais essenciais para os computadores modernos, como simplicidade, linearidade, sequencialidade e unicidade das memórias.

  • 00:05:00 - 00:10:00

    A estrutura do computador moderno é fundamentada nos princípios de von Neumann, que envolve uma memória comum para dados e programas. A unidade de processamento central (CPU) é dividida em unidade de controle e unidade lógico-aritmética, responsável pela execução sequencial das instruções. A característica do acumulador é discutida, onde os resultados das operações são armazenados, além de ser mencionado o funcionamento do interpretador de instruções em um loop contínuo, executando as etapas necessárias para processar cada programa armazenado.

  • 00:10:00 - 00:15:00

    A arquitetura Harvard, surgida quase simultaneamente ao modelo von Neumann, apresenta uma distinção importante, como a presença de duas memórias separadas para instruções e dados, cada uma acessada por barramentos distintos. Isso visa evitar gargalos no desempenho que ocorrem no modelo von Neumann, que possui um único barramento para ambas as operações. As diferenças entre esses modelos são discutidas, com a observação de que a arquitetura Harvard é típica para dispositivos embarcados, enquanto os computadores modernos misturam elementos dos dois modelos.

  • 00:15:00 - 00:20:51

    Os processadores modernos utilizam uma hierarquia de memória que separa memórias de instrução e de dados, mas ainda acessam essas memórias através de um barramento comum. Além disso, diferentes organizações da unidade lógico-aritmética (ULA) são apresentadas, como pilha, acumulador e registrador-registrador, cada uma com suas particularidades e eficiências em termos de número de instruções necessárias para executar operações básicas. A discussão se encerra enfatizando que o desempenho não depende apenas do número de instruções, mas do tempo de ciclo de cada arquitetura.

显示更多

思维导图

视频问答

  • O que é o modelo de von Neumann?

    Um modelo de arquitetura de computador que definiu a ideia de armazenar tanto dados quanto programas na mesma memória.

  • Quais são os quatro princípios do modelo von Neumann?

    Os princípios são simplicidade, linearidade, sequencialidade e unicidade.

  • Qual a diferença entre as arquiteturas von Neumann e Harvard?

    A arquitetura von Neumann utiliza uma única memória para dados e programas, enquanto a Harvard possui memórias separadas para instruções e dados.

  • Qual é a função do acumulador no modelo de von Neumann?

    O acumulador armazena resultados temporariamente durante operações aritméticas.

  • Como funcionam as organizações lógico-aritméticas?

    Elas descrevem como os operandos são manipulados pela unidade lógico-aritmética, com modelos como pilha, acumulador e registrador.

  • O que é um interpretador de instruções?

    É uma estrutura que executa instruções em um loop contínuo, buscando, decodificando e executando as instruções armazenadas.

  • Quais são as desvantagens do modelo von Neumann?

    O acesso à memória pode ser um gargalo devido ao uso de um único barramento.

  • Qual o impacto da arquitetura atual nos dispositivos embarcados?

    Dispositivos embarcados frequentemente utilizam a arquitetura Harvard, otimizando para tarefas específicas.

  • Como a hierarquia de memória é estruturada em processadores modernos?

    Em processadores modernos, memória de instrução e dados são separados em níveis mais próximos da CPU, acessados através de um barramento comum.

  • Por que o número de instruções não determina necessariamente o desempenho?

    Porque o tempo de ciclo de execução pode variar entre as organizações, afetando o desempenho global.

查看更多视频摘要

即时访问由人工智能支持的免费 YouTube 视频摘要!
字幕
pt
自动滚动:
  • 00:00:05
    [Música]
  • 00:00:20
    Olá hoje nós temos a quarta aula de
  • 00:00:23
    organização de computadores e nós vamos
  • 00:00:26
    falar justamente do conceito de programa
  • 00:00:28
    armazenado por mais natural que possa
  • 00:00:31
    aparecer para nós no dia de hoje que o
  • 00:00:33
    computador tem os programas o que ele
  • 00:00:35
    vai executar armazenado não foi assim
  • 00:00:36
    que tudo começou se nós observarmos O
  • 00:00:39
    enac que foi considerado o primeiro
  • 00:00:41
    computador de grande porte digital
  • 00:00:44
    programar esse computador significava
  • 00:00:46
    conectar os fios e relés do painel de
  • 00:00:49
    operação Então essas duas senhoras aqui
  • 00:00:51
    estavam programando esse dispositivo e
  • 00:00:54
    esse era um trabalho muito grande até
  • 00:00:56
    que fazia com que os computadores fossem
  • 00:00:58
    pensados para fazer propósitos
  • 00:01:00
    específicos o enec especificamente fazia
  • 00:01:02
    cálculos balísticos então justamente
  • 00:01:05
    nesse conceito todo era importante
  • 00:01:07
    pensar um modelo em que a gente pudesse
  • 00:01:10
    programar o computador Afinal de contas
  • 00:01:12
    se eu já tenho memória para armazenar os
  • 00:01:14
    dados por que não também armazenar os
  • 00:01:18
    programas e justamente Nesse contexto né
  • 00:01:21
    pensando em como lidar com esse novo
  • 00:01:24
    modelo de programação em como fazer essa
  • 00:01:26
    programação é que aparece a ideia do
  • 00:01:28
    modelo de fiman o John F era um
  • 00:01:31
    matemático que teve várias contribuições
  • 00:01:33
    na área de computação Ah ele foi
  • 00:01:35
    trabalhar com o pessoal que projetou o
  • 00:01:37
    en que contribuiu nesse projeto do enica
  • 00:01:40
    depois ele foi contribuir com o projeto
  • 00:01:41
    do edvac e nesse contexto Ele propôs
  • 00:01:44
    esse conceito de programa armazenado ou
  • 00:01:47
    seja desenvolver uma maneira de
  • 00:01:49
    armazenar os programas na memória assim
  • 00:01:51
    como a gente armazena os dados é
  • 00:01:54
    importante destacar que esse conceito
  • 00:01:56
    apesar de no nas nos livros e nas
  • 00:01:58
    atribuições de arquitetura a gente vê
  • 00:01:59
    atribuído a John phoa ele também foi
  • 00:02:01
    simultaneamente pensado por Alan
  • 00:02:04
    Turin bom o que que trata o modelo de
  • 00:02:08
    Don phono ele vai falar de princípios de
  • 00:02:10
    regras de conjuntos de características
  • 00:02:13
    de como que a gente deveria projetar o
  • 00:02:15
    computador de como a gente deveria
  • 00:02:17
    projetar esse programa para ser
  • 00:02:20
    armazenado como tudo isso deveria ser
  • 00:02:22
    operado tá então é importante a gente
  • 00:02:25
    pensar nesse conjunto de regras e ter o
  • 00:02:27
    contexto histórico em que tudo isso foi
  • 00:02:29
    proposto Lembrando que isso foi no final
  • 00:02:32
    da década de 40 meados da década de 40
  • 00:02:34
    que esse contexto foi proposto então a
  • 00:02:37
    esse modelo de fona define os aspectos
  • 00:02:39
    organizacionais e também os aspectos de
  • 00:02:42
    sua
  • 00:02:44
    programação bom o que que tem nesses
  • 00:02:47
    princípios tratados por John phono Ah
  • 00:02:50
    ele trata de quatro princípios
  • 00:02:52
    principais aqui né Quatro princípios que
  • 00:02:54
    vão ser usados para esse projeto
  • 00:02:56
    primeiro deles é a simplicidade o
  • 00:02:58
    computador vai executar operações
  • 00:03:00
    básicas operações elementares com
  • 00:03:03
    operandos né Eh também operandos
  • 00:03:06
    elementares o segundo princípio é com
  • 00:03:09
    respeito à linearidade e uniformidade e
  • 00:03:12
    isso tá relacionado à memória quer dizer
  • 00:03:14
    que nós temos uma única memória né Essa
  • 00:03:16
    memória vai ter vai ser acessada de
  • 00:03:18
    maneira contínua de maneira uniforme e
  • 00:03:20
    ela vai fornecer tanto esse programa
  • 00:03:23
    armazenado quanto as unidades de dados
  • 00:03:25
    quanto os operandos que vão ser
  • 00:03:28
    utilizados para fazer os cálculos para
  • 00:03:30
    fazer as
  • 00:03:31
    operações terceiro princípio tem a ver
  • 00:03:34
    com sequencialidade e centralidade como
  • 00:03:37
    é que funciona o nosso processador essa
  • 00:03:39
    nossa unidade Central né do
  • 00:03:42
    processamento que vai cuidar dessas
  • 00:03:43
    programação dessas atividades ela vai
  • 00:03:46
    executar as instruções que foram
  • 00:03:48
    programadas instruções disponíveis na
  • 00:03:50
    memória de maneira sequencial por isso o
  • 00:03:52
    primeiro aspecto e justamente essa
  • 00:03:54
    unidade de processamento Central né Eh
  • 00:03:58
    ela é responsável por essa sequência de
  • 00:04:00
    execuções por isso a centralidade né
  • 00:04:02
    existe uma unidade de controle dentro do
  • 00:04:05
    meu processador que é responsável por
  • 00:04:08
    por essa sequência de operações por
  • 00:04:10
    buscar instrução na memória por
  • 00:04:12
    determinar como esse esse essa
  • 00:04:14
    informação essa instrução vai ser operar
  • 00:04:16
    dentro do processador e o quarto
  • 00:04:18
    princípio que a gente tem é a unicidade
  • 00:04:21
    que é uma característica extremamente
  • 00:04:22
    importante des da desse modelo de F
  • 00:04:24
    neuman ele diz que eu tenho uma única
  • 00:04:27
    memória onde eu vou armazenar tanto
  • 00:04:30
    dados quanto programas Então meus dados
  • 00:04:32
    e os meus programas compartilham o mesmo
  • 00:04:35
    espaço na minha memória nessa minha
  • 00:04:37
    memória que é linear que acessada
  • 00:04:40
    sequencialmente e é importante a questão
  • 00:04:42
    da centralidade porque o processador vai
  • 00:04:44
    ter que acessar Em alguns momentos a
  • 00:04:46
    instrução e em alguns momentos o dado
  • 00:04:48
    para poder fazer essas
  • 00:04:50
    operações Então a partir desses
  • 00:04:53
    princípios o John fon Norma propôs um
  • 00:04:56
    modelo uma para ser seguido nessa
  • 00:04:58
    implementação nesse modelo a gente já
  • 00:05:00
    vai ver alguns elementos importantes que
  • 00:05:02
    caracterizam todos os computadores
  • 00:05:04
    modernos então nós temos a memória os
  • 00:05:08
    dispositivos de entrada e saída e aqui o
  • 00:05:11
    nosso processador Esse processador que é
  • 00:05:14
    dividido tanto em unidad de controle
  • 00:05:17
    quanto em unidade lógico
  • 00:05:19
    aritmética Então essa unidade Central
  • 00:05:23
    ela é responsável justamente por essa
  • 00:05:26
    sequencialidade das instruções né ah vai
  • 00:05:29
    acessar a memória então é importante
  • 00:05:31
    observar aqui nessa figura tá
  • 00:05:34
    simplificado por dois pares de setas
  • 00:05:36
    separados mas eu tenho acesso da unidade
  • 00:05:39
    de controle à memória Essa é responsável
  • 00:05:41
    por buscar as instruções que vão ser
  • 00:05:43
    executadas e aqui eu tenho minu unidade
  • 00:05:46
    lógico aritmética acessando a memória
  • 00:05:48
    para buscar os dados sobre o quais nós
  • 00:05:51
    vamos executar as operações elementares
  • 00:05:54
    tá então é importante destacar no modelo
  • 00:05:57
    de fonoma eu tenho uma única memória com
  • 00:05:59
    instruções
  • 00:06:00
    e dados e o acesso é feito do
  • 00:06:03
    processador tanto para buscar instruções
  • 00:06:05
    e dados nessa memória uma outra
  • 00:06:08
    característica que aparece aqui
  • 00:06:10
    importante é o nosso acumulador dentro
  • 00:06:13
    da unidade lógico aritmética nós vamos
  • 00:06:15
    discutir daqui a pouco as várias
  • 00:06:17
    organizações que um processador pode ter
  • 00:06:19
    mas já foi colocado no modelo de fyan
  • 00:06:22
    que a unidade lógico aritmética opera
  • 00:06:25
    utilizando um acumulador Então essa é
  • 00:06:27
    mais uma característica desse esse
  • 00:06:31
    projeto um terceiro aspecto importante
  • 00:06:34
    aqui né a gente já falou dos princípios
  • 00:06:36
    a gente já falou dessa organização geral
  • 00:06:39
    um outro terceiro aspecto importante
  • 00:06:41
    associado ao conceito de programa
  • 00:06:42
    armazenado é como vai funcionar essa
  • 00:06:45
    operação como vai ser feita essa como o
  • 00:06:48
    computador vai lidar com as instruções e
  • 00:06:51
    é justamente o interpretador que é
  • 00:06:53
    responsável por esse acesso contínuo à
  • 00:06:56
    operação dos programas armazenados então
  • 00:06:59
    o interpretador ele é estruturado como
  • 00:07:01
    um loop contínuo se a gente pensar em
  • 00:07:03
    termos de estrutura de programação ou
  • 00:07:05
    como uma máquina de estados né se a
  • 00:07:07
    gente pensar de uma maneira um pouco
  • 00:07:09
    mais abstrata e essa máquina de estados
  • 00:07:11
    tem três estados primeiro busca da
  • 00:07:14
    instrução então o processador a unidade
  • 00:07:16
    de controle precisa acessar a minha
  • 00:07:18
    memória para buscar a instrução que vai
  • 00:07:21
    ser executada a próxima instrução que
  • 00:07:23
    vai ser executada uma vez que a
  • 00:07:25
    instrução foi buscada na memória eu
  • 00:07:27
    preciso passar pro segundo passo que
  • 00:07:30
    implica em iniciar a decodificação dessa
  • 00:07:32
    instrução para obter Quais são os
  • 00:07:35
    operandos sobre o qual eu vou Executar a
  • 00:07:37
    instrução então por isso eu tenho que
  • 00:07:39
    calcular o endereço e buscar os
  • 00:07:41
    operandos no caso do modelo de fon noan
  • 00:07:44
    se a gente voltar aqui na na nossa
  • 00:07:46
    figura eu tenho que buscar na minha
  • 00:07:49
    memória os a instrução e depois o
  • 00:07:52
    operand Então eu preciso calcular o
  • 00:07:55
    endereço para buscar esse operando uma
  • 00:07:58
    vez que eu já lei o endereço e busquei o
  • 00:08:00
    meu operando eu posso Executar a
  • 00:08:03
    instrução propriamente dita Então se
  • 00:08:05
    essa instrução é uma instrução de soma
  • 00:08:06
    por exemplo eu já tenho os operandos eu
  • 00:08:08
    vou Executar a soma e vou armazenar o
  • 00:08:11
    meu resultado no acumulador Isso é uma
  • 00:08:14
    característica do modelo de phon todos
  • 00:08:16
    os resultados são armazenados no
  • 00:08:18
    acumulador uma vez que eu preciso
  • 00:08:21
    colocar esse resultado de volta pra
  • 00:08:22
    memória vou usar uma instrução que vai
  • 00:08:24
    movimentar esse resultado do acumulador
  • 00:08:27
    paraa memória tá então esses três
  • 00:08:30
    estados contínuos permitem que eu
  • 00:08:32
    Execute um programa Vou buscar a
  • 00:08:33
    instrução fazer as etapas necessárias da
  • 00:08:36
    execução da instrução volto pro estado
  • 00:08:38
    inicial para buscar a instrução seguinte
  • 00:08:41
    E aí depois vou Executar a instrução
  • 00:08:43
    seguinte e assim continuamente por isso
  • 00:08:45
    esse loop contínuo executando esse
  • 00:08:47
    programa que tá armazenado Então essas
  • 00:08:50
    são as características do modelo de fon
  • 00:08:52
    noima ele especificou a os os princípios
  • 00:08:55
    que devem ser seguidos com o conceito de
  • 00:08:57
    programa armazenado fez um o modelo de
  • 00:09:00
    interação entre os elementos do
  • 00:09:02
    computador memória entrada e saída e o
  • 00:09:04
    nosso processador dividido unidade de
  • 00:09:06
    controle e fluxo de dados e depois
  • 00:09:09
    determinou o nosso interpretador de
  • 00:09:11
    instruções que vai permitir que a gente
  • 00:09:13
    Execute essas sequências de instruções
  • 00:09:15
    bom então a gente pode pensar o modelo
  • 00:09:18
    de fora é único não mais ou menos pela
  • 00:09:22
    mesma época um outro grupo de
  • 00:09:24
    projetistas de Engenheiros que estava
  • 00:09:27
    projetando um outro computador em
  • 00:09:28
    Harvard propôs um modelo diferente que é
  • 00:09:31
    chamado de arquitetura Harvard A grande
  • 00:09:34
    diferença que a gente vê aqui no modelo
  • 00:09:36
    continua tendo entrada e saída tenho
  • 00:09:39
    aqui meu processador unidade de controle
  • 00:09:42
    e a unidade lógico aritmética e a grande
  • 00:09:45
    diferência é que agora eu tenho dois
  • 00:09:46
    componentes de memória diferente do
  • 00:09:49
    modelo de phorma em que eu tinha uma
  • 00:09:50
    única memória acessada por um barramento
  • 00:09:53
    comum aqui eu vou ter dois duas memórias
  • 00:09:57
    separadas acessadas por dois barramentos
  • 00:10:00
    separados uma memória exclusiva para
  • 00:10:03
    memórias de instrução ou seja aqui eu
  • 00:10:06
    tenho somente o meu programa armazenado
  • 00:10:08
    e uma outra memória exclusiva pros dados
  • 00:10:11
    pros meus operandos tá então uma
  • 00:10:14
    diferença importante para a gente
  • 00:10:15
    lembrar da arquitetura Harvard do modelo
  • 00:10:17
    de fona é com relação à memória e os
  • 00:10:20
    barramentos de acesso à memória tá na
  • 00:10:23
    arquitetura Harvard Nós temos duas
  • 00:10:25
    memórias dois barramentos no modelo de
  • 00:10:28
    phono uma única memória um único
  • 00:10:31
    barramento o que isso faz o que aconteça
  • 00:10:33
    no modelo de fona é que eu possa ter um
  • 00:10:36
    gargalo no acesso ao à minha memória tá
  • 00:10:40
    então quando eu tenho que buscar a
  • 00:10:41
    instrução eu acesso esse barramento de
  • 00:10:43
    memória quando eu tenho que buscar o
  • 00:10:44
    operando eu acesso novamente o mesmo
  • 00:10:47
    barramento no modelo de phono então em
  • 00:10:49
    termos de escalabilidade de evolução
  • 00:10:51
    desse modelo ele tem algums aspectos de
  • 00:10:54
    limitação de desempenho quando a gente
  • 00:10:56
    pensa no fato de ser um único ento bom
  • 00:11:00
    então esses dois modelos foram propostos
  • 00:11:02
    lá pela década de meados da década de 40
  • 00:11:05
    mas o que que a gente tem hoje nos
  • 00:11:07
    nossos computadores o que que evoluiu
  • 00:11:09
    como é que chegou nos nossos
  • 00:11:11
    computadores modernos bom primeiro Vamos
  • 00:11:15
    pensar nos dispositivos embarcados nos
  • 00:11:17
    dispositivos específicos onde a gente
  • 00:11:19
    tem microcontroladores e dsps os
  • 00:11:22
    dispositivos que vão trabalhar com
  • 00:11:23
    processamento de sinal digital nesse
  • 00:11:25
    caso a gente usa a arquitetura Harvard
  • 00:11:28
    tipicamente esses dispositivos
  • 00:11:30
    embarcados eles vão passar a sua vida
  • 00:11:32
    toda executando uma única tarefa né
  • 00:11:35
    então não existe o dinamismo que existe
  • 00:11:37
    num desktop num servidor num computador
  • 00:11:39
    então esses dispositivos Eles vão usar a
  • 00:11:42
    memória ah home né para ter as os
  • 00:11:46
    programas vão ser programados
  • 00:11:47
    inicialmente e vão passar sua vida
  • 00:11:50
    manipulando operando esse mesmo conjunto
  • 00:11:52
    de programas eles são dificilmente
  • 00:11:54
    reprogramados e ele usa memória RAM como
  • 00:11:56
    memória flash como memória dinâmica para
  • 00:11:59
    armazenar os dados por outro lado nos
  • 00:12:01
    processadores modernos nas arquiteturas
  • 00:12:03
    arm Intel que a gente usa em maior
  • 00:12:06
    escala esses computadores misturam um
  • 00:12:10
    pouco em termos de projeto os conceitos
  • 00:12:12
    que a gente tem da arquitetura Harvard
  • 00:12:13
    com arquitetura de phono como eu
  • 00:12:16
    comentei a gente tem um gargalo quando a
  • 00:12:19
    gente pensa em acessar instrução e
  • 00:12:21
    memória com o mesmo barramento Então o
  • 00:12:24
    que a gente tem nos processadores
  • 00:12:26
    modernos é a que o primeiro nível da
  • 00:12:28
    nossa hierarquia de memória separa
  • 00:12:30
    memória de instrução de memória de dados
  • 00:12:33
    e quando a gente olha o sistema de
  • 00:12:36
    memória como um todo a nossa hierarquia
  • 00:12:38
    de memória que a gente vai discutir em
  • 00:12:39
    aulas mais para frente isso é visto como
  • 00:12:41
    uma única memória então por isso que a
  • 00:12:44
    gente fala memória principal contém
  • 00:12:46
    dados e instruções compartilho o mesmo a
  • 00:12:49
    mesma memória Ah e ela é acessada
  • 00:12:51
    através de um barramento comum a partir
  • 00:12:53
    do processador nós vamos discutir essas
  • 00:12:55
    organizações esses barramentos mas a
  • 00:12:58
    ideia nos processadores modernos é que a
  • 00:13:00
    memória mais próxima do processador é
  • 00:13:02
    separada em dados e instruções mas a
  • 00:13:06
    hierarquia de memória como um todo ela
  • 00:13:08
    acessada por um barramento único e
  • 00:13:10
    contém tanto dados quanto
  • 00:13:14
    programas um outro aspecto importante
  • 00:13:17
    pra gente comentar né pra gente tratar
  • 00:13:19
    Nesse contexto é a organização que a
  • 00:13:22
    gente tem dentro da CPU eu falei para
  • 00:13:24
    vocês que uma das características do
  • 00:13:26
    modelo de fona é que ele usa um acumul D
  • 00:13:29
    dentro da unidade de processamento de
  • 00:13:31
    dados dentro do fluxo de dados mas o que
  • 00:13:34
    que isso quer dizer né então nós vamos
  • 00:13:36
    ver aqui quatro modelos de organização
  • 00:13:39
    da nossa unidade lógico aritmética com
  • 00:13:41
    relação ao acesso à memória que são
  • 00:13:43
    modelos básicos que podem ser utilizados
  • 00:13:46
    combinados de maneiras diferentes dentro
  • 00:13:48
    de um
  • 00:13:49
    processador primeiro deles é a pilha
  • 00:13:53
    então no caso da organização em pilha eu
  • 00:13:55
    tenho aqui a minha unidade lógico
  • 00:13:57
    aritmética que ou seja fazer as
  • 00:13:59
    operações de soma subtração deslocamento
  • 00:14:02
    todas as operações lógico aritméticas e
  • 00:14:05
    ela é associada a os elementos do topo
  • 00:14:09
    da pilha Obrigatoriamente Então os meus
  • 00:14:11
    dois operandos da minha unidade de
  • 00:14:12
    lógica aritmética são elemento do topo
  • 00:14:14
    da pilha e o elemento seguinte quando eu
  • 00:14:17
    preciso buscar um elemento na memória eu
  • 00:14:19
    preciso fazer a uma instrução específica
  • 00:14:22
    que vai trazer um elemento da memória
  • 00:14:24
    pra pilha um segundo elemento da memória
  • 00:14:26
    pra pilha E aí quando eu for fazer a
  • 00:14:28
    operação de soma eu vou Obrigatoriamente
  • 00:14:30
    usar esses dois elementos então não
  • 00:14:33
    existe muita flexibilidade na maneira
  • 00:14:35
    como eu combino os meus operandos para
  • 00:14:37
    minha unidade lógico aritmética Mas é
  • 00:14:40
    uma estrutura bastante
  • 00:14:42
    simples o segundo elemento que a gente
  • 00:14:44
    tem é o acumulador o acumulador que é
  • 00:14:47
    utilizado na organização no modelo de
  • 00:14:49
    fman no caso do acumulador um dos
  • 00:14:52
    elementos Obrigatoriamente vem desse
  • 00:14:54
    registrador especial que chamado de
  • 00:14:56
    acumulador e o outro elemento a outra
  • 00:14:59
    entrada da minha ula vem diretamente da
  • 00:15:01
    memória o resultado produzido pela minha
  • 00:15:04
    unidade lógico aritmética é armazenado
  • 00:15:07
    diretamente no meu registrador
  • 00:15:09
    acumulador então aqui nesse modelo se eu
  • 00:15:12
    para eu carregar Inicialmente um valor
  • 00:15:15
    eu preciso trazer esse valor para passar
  • 00:15:18
    por uma soma com zero para chegar no meu
  • 00:15:21
    registrador para depois poder somar com
  • 00:15:23
    o segundo elemento E aí então copiar o
  • 00:15:26
    que tá no meu registrador de Volta para
  • 00:15:28
    Mim minha memória
  • 00:15:30
    principal o terceira organização que a
  • 00:15:33
    gente tem ela não usa nenhum elemento
  • 00:15:37
    entre a memória e a unidade lógico
  • 00:15:39
    aritmética é a organização memória
  • 00:15:41
    memória ela considera que os operandos
  • 00:15:42
    vem diretamente de endereços de memória
  • 00:15:45
    por minha unidade lógico aritmética ela
  • 00:15:48
    é flexível do ponto de vista que eu
  • 00:15:50
    posso ter tantos operandos quanto eu
  • 00:15:52
    tenho na memória para escolher desse meu
  • 00:15:54
    conjunto e não só um operando possível
  • 00:15:57
    fixo aqui do meu registrador como já
  • 00:15:59
    tinha nesse caso Porém uma diferença que
  • 00:16:01
    eu tenho aqui é o tempo de acesso as
  • 00:16:04
    memórias são mais lentas por causa da
  • 00:16:06
    tecnologia para serem lidas do que um
  • 00:16:09
    registrador por
  • 00:16:11
    exemplo e justamente para tentar
  • 00:16:14
    contrapor ter um pouco mais de
  • 00:16:15
    flexibilidade do que organ as
  • 00:16:17
    organizações anteriores e não ser tão
  • 00:16:20
    dependente das da do tempo de acesso da
  • 00:16:24
    memória é que a gente tem a organização
  • 00:16:26
    registrador registrador ou muitas vezes
  • 00:16:28
    chamada de de organização load Store
  • 00:16:31
    Então nesse caso eu preciso trazer os
  • 00:16:33
    elementos da memória pros registradores
  • 00:16:36
    depois eu vou selecionar dois
  • 00:16:37
    registradores quaisquer como entrada da
  • 00:16:40
    minha unidade lógico aritmética e
  • 00:16:42
    finalmente vou escolher um terceiro
  • 00:16:44
    registrador para armazenar esse meu
  • 00:16:45
    resultado Então ela é mais flexível com
  • 00:16:48
    relação à seleção dos operandos sem ter
  • 00:16:51
    o atraso que eu tenho no acesso à
  • 00:16:53
    memória para cada operação que eu vou
  • 00:16:55
    realizar na minha unidade lógico
  • 00:16:57
    aritmética e isso permite a gente pode
  • 00:17:00
    ter as organizações modernas que T
  • 00:17:02
    combinações dessas organizações o último
  • 00:17:06
    aspecto que a gente vai observar hoje é
  • 00:17:08
    como é que fica com escrever essa
  • 00:17:11
    simples instrução c = a + b para esses
  • 00:17:15
    quatro exemplos de arquitetura então
  • 00:17:17
    aqui no primeiro caso no caso da pilha
  • 00:17:19
    eu preciso trazer os elementos da
  • 00:17:21
    memória para meu pra minha pilha e pro
  • 00:17:23
    topo da pilha isso a gente faz através
  • 00:17:25
    do comando de push depois eu vou fazer a
  • 00:17:28
    soma e finalmente vou restaurar o valor
  • 00:17:30
    que foi armazenado no topo da pilha pro
  • 00:17:33
    meu endereço de memória então preciso de
  • 00:17:35
    quatro instruções dessa máquina de pilha
  • 00:17:38
    para implementar essa uma instrução de
  • 00:17:40
    código de linguagem de alto nível no
  • 00:17:43
    caso da organização de acumulador um
  • 00:17:45
    elemento meu Obrigatoriamente ao
  • 00:17:47
    acumulador Então eu preciso trazer um
  • 00:17:50
    valor de memória para o acumulador
  • 00:17:51
    através da instrução de load depois eu
  • 00:17:54
    vou somar o que está no acumulador com o
  • 00:17:57
    outro endereço de memória
  • 00:17:59
    resultado pro acumulador E aí Finalmente
  • 00:18:02
    eu copio do acumulador pra memória
  • 00:18:04
    novamente então aqui eu preciso de três
  • 00:18:06
    instruções na arquitetura de memória
  • 00:18:09
    memória é a arquitetura que eu posso
  • 00:18:11
    acessar diretamente a memória então eu
  • 00:18:13
    posso indicar Quais são os meus dois
  • 00:18:15
    operandos A e B e já armazenar em C
  • 00:18:19
    então do ponto de vista do número de
  • 00:18:21
    instruções Esse é o mais eficiente eu
  • 00:18:23
    tenho uma única instrução tá depois eu
  • 00:18:27
    tenho uma combinação registrador memória
  • 00:18:29
    que é uma arquitetura um pouco mais
  • 00:18:30
    flexível do que a a baseada em
  • 00:18:32
    acumulador já que eu tenho mais de um
  • 00:18:35
    registrador disponível Ah e eu posso
  • 00:18:38
    combinar operandos entre registrador e
  • 00:18:40
    memória Então eu tenho o mesmo número de
  • 00:18:42
    instruções instruções similares a que eu
  • 00:18:44
    tenho na organização de acumulador e
  • 00:18:46
    finalmente na organização registrador
  • 00:18:48
    registrador eu vou precisar trazer os
  • 00:18:51
    dois operandos para registradores R1 e
  • 00:18:53
    R2 para depois poder fazer a soma e
  • 00:18:56
    finalmente armazenar o valor de R3 na
  • 00:18:59
    endereço de memória dado por C então eu
  • 00:19:02
    vou precisar de quatro instruções para
  • 00:19:04
    executar essa essa instrução de soma
  • 00:19:07
    numa arquitetura numa organização
  • 00:19:09
    registrador registrador então aqui a
  • 00:19:12
    gente vê que o número de instruções é
  • 00:19:14
    variável porém é importante lembrando
  • 00:19:17
    quando a gente discutiu as questões de
  • 00:19:18
    desempenho que o tempo de ciclo para
  • 00:19:20
    cada uma dessas organizações vai ser
  • 00:19:23
    diferente então quando eu calcular o meu
  • 00:19:25
    tempo de ciclo e multiplicar isso pelo
  • 00:19:28
    produto pelo número de instruções que eu
  • 00:19:31
    tenho isso vai me resultar num tempo de
  • 00:19:33
    execução e num desempenho e não
  • 00:19:36
    necessariamente a organização que tem
  • 00:19:38
    menos instruções vai ser a mais rápida
  • 00:19:40
    vai ser a que tem menor tempo de
  • 00:19:41
    execução porque o tempo de ciclo dela
  • 00:19:43
    tende a ser maior do que as demais então
  • 00:19:46
    juntando com os conceitos de desempenho
  • 00:19:49
    eu preciso considerar as características
  • 00:19:51
    do meu fluxo de dados para saber o tempo
  • 00:19:53
    de ciclo para então definir qual delas
  • 00:19:56
    vai ter o melhor desempenho
  • 00:20:00
    bom como referências para esse assunto
  • 00:20:01
    nós temos aqui o capítulo 1 e 2 do livro
  • 00:20:03
    de arquitetura do stalins e a sessão
  • 00:20:05
    1.10 do livro do paterson e do Ren
  • 00:20:23
    [Música]
  • 00:20:28
    C
  • 00:20:38
    [Música]
标签
  • programação
  • computadores
  • modelo von Neumann
  • arquitetura Harvard
  • unidade lógico-aritmética
  • memória
  • acumulador
  • desempenho
  • dispositivos embarcados
  • história da computação