Arquitetura de Arquitetura de Sistemas Embarcados Sistemas Embarcados ������������� ������������������ ����������������������� ����
Capítulo 3 3 Processadores Processadores Capítulo de Propósito Geral Propósito Geral: : de Software Software
Introdução Introdução • Processadores de Propósito Geral – Processador projetado para uma variedade de tarefas computacionais – Baixo custo unitário (Custo NRE para grande volume) • Motorola vendeu meio bilh ão de microcontroladores 68HC05 em 1996 – Cuidadosamente projetado • Otimiza desempenho, tamanho e potência – Reduzido time-to-market (protótipo), grande flexibilidade • Usuário apenas descreve o software – “microprocessor” – “micro” usado devido a ser implementado com poucos circuitos ����������� ���������������������� �
Arquitetura Básica Básica Arquitetura • Unidade de ��������� Controle e de ������������ �������� Processamento ALU Controller ������� • Diferen ças ������� Registers – Unidade de Processamento é genérica PC IR – Unidade de controle n ão armazena ��� algoritmo ������ (memória) ����������� ���������������������� �
Operações de Opera ções de Processamento Processamento • Load ��������� – C ópia de memória ������������ �������� em registrador ALU +1 Controller ������� • Operação na ALU ������� – Valores em Registers Regist rador es s ão processados pela ALU 10 11 e armazenados em PC IR regist rador • St ore ��� ... ������ 10 – C ópia de 11 ... regist rador em memória ����������� ���������������������� �
Unidade de de Controle Controle Unidade • Unidade de Controle: configura operaç ões do datapath Sequência de operaç ões – (instru ç ões) desejadas ��������� armazenadas na memória ������������ �������� (programa) ALU • Ciclo de Instrução – várias sub- Controller ������� operações (cada uma em um ������� ciclo de relógio) Registers – Busca: armazena instrução em IR, atualiza PC – Decodificação: determina o que a instrução significa PC IR �� �� Busca de Operandos: c ópia de – dados da memória para registradores na unid. ��� Processamento ... load R0, M[500] ��� ������ 10 – Execu ção: Processa dados na ��� inc R1, R0 ��� ... ALU ��� store M[501], R1 ��� – Armazena resultados: escreve resultados de registrador na mem ória ����������� ���������������������� �
Sub- -opera ç ões opera ç ões da da Unidade Unidade de de Sub Controle Controle • Busca ��������� – C ópia da instru ção ������������ �������� ALU em IR Controller ������� ������� – PC: Contador de programa aponta Registers para próxima instrução PC IR ��� �� �� load R0, M[500] – IR: armazena instrução que foi buscada ��� ... load R0, M[500] ��� ������ 10 ��� inc R1, R0 ��� ... ��� store M[501], R1 ��� ����������� ���������������������� �
Sub- -opera ç ões da Unidade opera ç ões da Unidade de de Sub Controle Controle • Decodificação ��������� ������������ �������� – Determina ALU significado da Controller ������� ������� instrução Registers PC IR ��� �� �� load R0, M[500] ��� ... load R0, M[500] ��� ������ 10 ��� inc R1, R0 ��� ... ��� store M[501], R1 ��� ����������� ���������������������� �
Sub- -opera ç ões da Unidade opera ç ões da Unidade de de Sub Controle Controle • Busca de ��������� Operandos ������������ �������� ALU Controller – C ópia de dados ������� ������� da memória Registers para registradores no 10 datapath PC IR ��� �� �� load R0, M[500] ��� ... load R0, M[500] ��� ������ 10 ��� inc R1, R0 ��� ... ��� store M[501], R1 ��� ����������� ���������������������� �
Sub- -opera ç ões da Unidade opera ç ões da Unidade de de Sub Controle Controle • Execução ��������� ������������ �������� – Processa dados ALU na ALU Controller ������� ������� – (Para esta Registers instrução em particular nada 10 PC IR ��� �� �� load R0, M[500] acontece durante esta ��� ... sub-operação) load R0, M[500] ��� ������ 10 ��� inc R1, R0 ��� ... ��� store M[501], R1 ��� ����������� ���������������������� ��
Sub- -opera ç ões da Unidade opera ç ões da Unidade de de Sub Controle Controle • Armazena ��������� resultados ������������ �������� ALU – Escreve dado de Controller ������� registrador em ������� mem ória Registers – (Para esta instru ção em 10 PC IR particular nada ��� �� �� load R0, M[500] acontece durante esta sub-operação) ��� ... load R0, M[500] ��� ������ 10 ��� inc R1, R0 ��� ... ��� store M[501], R1 ��� ����������� ���������������������� ��
Ciclos de de uma uma Instru ção Ciclos Instrução PC= 100 ��������� Fetch Exec. Store Fetch Decode ������������ �������� ops results ALU Controller ��� ������� ������� Registers 10 PC IR ��� �� �� load R0, M[500] ��� ... load R0, M[500] ��� ������ 10 ��� inc R1, R0 ��� ... ��� store M[501], R1 ��� ����������� ���������������������� ��
Ciclos de de uma Instru ção Ciclos uma Instrução PC= 100 ��������� Fetch Decode Fetch Exec. Store ������������ �������� ops results ALU +1 Controller ��� ������� ������� PC= 101 Registers Fetch Exec. Store Fetch Decode ops results ��� 10 11 PC IR ��� �� �� inc R1, R0 ��� ... load R0, M[500] ��� ������ 10 ��� inc R1, R0 ��� ... ��� store M[501], R1 ��� ����������� ���������������������� ��
Ciclos de de uma Instru ção Ciclos uma Instrução PC= 100 ��������� Fetch Decode Fetch Exec. Store ������������ �������� ops results ALU Controller ��� ������� ������� PC= 101 Registers Fetch Decode Fetch Exec. Store ops results ��� 10 11 PC IR ��� �� �� store M[501], R1 PC= 102 Fetch Store Fetch Decode Exec. ops results ��� ... load R0, M[500] ��� ������ 10 ��� ��� inc R1, R0 ��� 11 ... ��� store M[501], R1 ��� ����������� ���������������������� ��
Considera ç ões da da Arquitetura Arquitetura Considera ç ões • ����������� �������� s ��������� – ALU, registradores, ������������ �������� barramento, interface ALU Controller de mem ória N-bits ������� ������� – Comum em aplic. emb: Registers 8-bit, 16-bit, 32-bit – Comum em Desktop/servidores: PC IR 32-bit, ou 64 • Tamanho do PC ��� determina espaço de ������ endereçamento ����������� ���������������������� ��
Recommend
More recommend